Thanks. I'm very happy to hear that. The door thing will probably be the next thing I'll fix and in this recording the result was way funnier than usual, so I included it. Often they just stand in front of the door being stuck and keeping the door stuck until they time-out and move back to their "home"-location.
Nice work, this reminds me about the good old days back in 2005 with F.E.A.R. 1 :P, just curious but what solution are you using for UI and HUD? HTML? Flash?
+Highflex The first F.E.A.R. is probably one of the games that left a huge impression on me. As for UI, I'm using UE4s build in UI solutions. Mostly UMG, but I'm also extending UMG using Slate (in C++) if there is any functionality I need. At the moment UMG is far from perfect (has aliasing issues and lacks some effects I'd like), but it gets the job done and I can be certain that it will work in the future, because it's made by epic.
I would appreciate a tutorial series on this whole fantastic game concept :D ^^ it would really contribute to the allround ue4 cmmunity and the learning process of each individuum or on short terms it just looks so awesom :D XD
Wow great video ^^ , but i have a question for you, how can i set enemy hit animation? and when the enemys die u use Unposses node? Because when i kill enemys they follow me with death animation lol
As for the Hit Animation I just play an random Hit Animation from Kubolds Anim Pack as an AnimMontage. When a Pawn dies it's best to also deactivate it's MovementComponent. This way no movement happens. Unpossesssing is also a good idea. For AI it might also be sufficient to destroy the controller since it's not needed anymore, unless the AI is replacing a player and has to be treated that way. You should also add checks to most of your Pawns action so that they can only performend when alive. For example before firing, check if the pawn is alive.
Enemies are using the same CharacterBlueprint that the player is using. So they also share the same skeleton and anim blueprint. Also make sure that the anim blueprint you are using has a slot for that montage. (Look for the slot animation node in your anim graph)
Supetarska Draga Use a montage, get your mesh, then get anim instance, then montage play and select your hit montage. if your animation isnt a montage yet right click, then create montage
Thanks for all answers ^^ the only problem at the moment is this.. when i duplicate the enemies, they start patrol, but if i shoot one of them, they follow me togheter.. i have try to duplicate with child actor.. but dont work :/
Could you maybe explain how you created the logic behind the ui? I'm specifically talking about the tabs (UWidgetSwitcher?) and the submenu in each tab. What happens when you e.g. click on video settings in your settings tab. Do you hide the settings tab and add the new widget to the viewport? And how do you create the navigation widget (Play->Settings->Audio) and add the buttons to it to navigate through each menu?
Sadly I can't look it up anymore, because I now have only one layer and I've reset my version control so I cannot switch back to this version. From my memory, the Menu -> Submenu -> ... bar, basically read data from an struct array. Based on changes in the array it will add or remove buttons or completly rebuild itself. Each element has a text label and a reference to the widget class they should link to. Whenever you click on the button the animation is played that moves the panel out of the screen. Then the widget inside that panel is destroyed and the new menu is created inside the now empty panel. Then it is moved into the screen with another animation. Most of the time it is very clear how the whole thing should look like since there is only one layer (Menu -> SubMenu) with the options menu being an exception, though the sub-submenus could only be reached once you were within Menu -> Options. So it was mostly just a matter of adding a new element to the array and let the widget rebuild itself. Once you left the submenus it was most likely easier to just see where you go to and completely repopulate the array, since it was either just "Menu" or "Menu -> Submenu" depending on which sub menu you went into. You don't need to overcomplicate it though. Often you have so few menus that it might be easier to just manually create this kind of nav-bar. The number one rule of programming is "Keep it simple, stupid". Think about how complicated you want to make it and what would be easier to maintain over time. As you see I've decided against the system that I had in here and made it simpler.
@@TomuraDev Thanks for the detailed answer as always, really appreciating it! Trying my best to replicate it right now with the new knowledge. The KISS rule is very important but I really like the approach with the navigation-bar you made because it enables you to navigate very fast between each widget but i also want to see what you come up with once you focus more on ui stuff instead of gameplay(which is of course far more important). Waiting for new content ;)
Thanks. A lot of it was inspired from what I've seen in the Battlefront beta and it looked like a UI that would work well with both mouse & keyboard and a virtual cursor controlled by the gamepad. I'm still not sure about keeping the gamepad cursor, but it makes adding gamepad support to menus a lot easier.
What IK/physics model are you using for the ai movement? Especially when they're shot and they seem to dynamically stumble around, I'd really like to know.
Did you make the animations yourself? And if so, can you make them available for download? (If you do make it for download, I know money is a good thing but, I am piss-poor right now)
+Open Minded The animations are from Kubolds Rifle Animset Pro pack + a bit of proceduality added by me for good measure. They are very cheap for mocap animations, so if you need them it's probably a good idea to save up for it. Obviously I don't know about your current life situation, so I can't offer any better advice. BTW the animations that Epic does provide are also very sufficient. It lacks reloads and some other advanced stuff, but the essentials should be there. And creating a couple of animations yourself shouldn't be too hard. It's a skill that you need anyways.
Hope it's meant as an compliment. What I used were just the default settings the epic mannequin comes with. The thing I did was to turn the physics on at a random time during the death animation this way all body parts have a bit of momentum and you have a more spectacular motion. Also it's important to fine tune the forces you apply to the ragdoll upon turning the phyiscs on. For the shotgun it's especially cool, because you apply forces to multiple body parts at once. If you just ragdoll from standing the body will just collapse in itself, this looks a bit weird in an action packed combat scene, because it takes out the momentum out of the situation.
I don't. Might a good optimization probably, if that works properly (don't know if it works) There area a couple of thoughts though why I don't. The AI sometimes (it is performed within a Behavior Tree Service) looks for new targets using its perceptions. When it is distant from the player, obviously it won't perceive anything, thus it should be pretty effortless (nothing to iterate through, nothing where I need to figure out the priority for the AI). Since it also doesn't have an target, the only thing the AI would do is wait (guard) or patrol. The footages here is pretty bad in terms of frame rate anyways, because I was a poor student at the time.
@@TomuraDev I'm making a game for my final thesis project and wanted to make it as good on performance as possible (supposed to run for a larger target audience). I have a pretty good rig but I wanted it to run on lower specs as well. Games do optimize by capping the number of ai running in game at a time right? spawning them only when the player is near or reducing their tickrate
@@vegitoblue2187 At least this is one way to do it, as far as I know. I'm far from a professional game dev, let alone a AI game dev though. In general performance optimization consists of reducing the amount of operations performed. Before optimizing you should also look at what actually needs a lot of performance. It might not be your AI but maybe you animation system, etc. For AI use "Stat AI" this way you see how much time your stuff is taking.
@@TomuraDev the ai it is just a simple patrol logic where the player dies if the ai sees it. but having 20 of these in a full level without optimization could be a problem. one way i was thinking was to load them with a streamed level. so when the level unloads the ai is unloaded as well. the problem with this approach is that it can limit how you place ai. the tick was the other approach where all ai are in persistent layer and tickrate differes with proximity which robo recall seems to use based on what devs said in the talk
C++, but I'm also using blueprints. Both are different tools. In C++ I'm basically building the basic functionality as in the building blocks that handle the complex stuff. In Blueprint I then do the specific implementation. So for AI for example I do things like sorting/preparing data (perception). In Blueprint I do the decision finding, etc.
There should be a Forum post somewhere in the unreal engine forum. The basic principle behind this is to create a circular gradient (in photoshop for example). Then you create a material that masks out the circle and using an if condition you can then draw parts of the gradient white (or any other color) that are of lower value than a scalar parameter. And parts black that are of a greater value than the parameter. Since the gradient is circular the boundary will also move in this way. Using this principle you can actually create any kind of shape that fills up, if the gradient follows the path of that shape.
Sadly the answer is no. I'd like to, but between work and doing this + other activities in my freetime I don't have any time left for making tutorials.
Hey Tomura! I enjoyed watching your video and I think there might be a project of interest where your skills can be used. The game is called "Harsh Doorstop" being developed by the Bluedrake42 community. It's an open to all project that requires developers. Here is the link to the front page where you can find more information including the development forums. forum.bluedrake42.com/index.php?/topic/244-harsh-doorstop-february-roadmap/ If you are interested in joining the link above has further details on how you can help. If not than thank you for your time and keep up the good work!
I have been following you for years. You are a disturbing person for me. I would like to hire you in my video game company. I would like to know your discord!
dude is amazing !! the dead animations, the hit reaction, the menu looks gorgeous too !
*gets shot with 15000 bullets* "status: OK"
Doctor Gibuz you would like that very much won't you 😄
I dont remember writing this
You should do a tutorial on how to make this, I think it would be awesome
woa.. the effects and the bullet time.... everything looks cool! nice. ...the door trap at the end is lol
Thanks. I'm very happy to hear that.
The door thing will probably be the next thing I'll fix and in this recording the result was way funnier than usual, so I included it. Often they just stand in front of the door being stuck and keeping the door stuck until they time-out and move back to their "home"-location.
would love to get my hands on this to see what you've done behind the scenes
Nice work, this reminds me about the good old days back in 2005 with F.E.A.R. 1 :P, just curious but what solution are you using for UI and HUD? HTML? Flash?
+Highflex The first F.E.A.R. is probably one of the games that left a huge impression on me.
As for UI, I'm using UE4s build in UI solutions. Mostly UMG, but I'm also extending UMG using Slate (in C++) if there is any functionality I need. At the moment UMG is far from perfect (has aliasing issues and lacks some effects I'd like), but it gets the job done and I can be certain that it will work in the future, because it's made by epic.
Tomura F.E.A.R. is one of my all time favorites. Please for the love of god, dont stop developing this.
I would appreciate a tutorial series on this whole fantastic game concept :D ^^ it would really contribute to the allround ue4 cmmunity and the learning process of each individuum or on short terms it just looks so awesom :D XD
Particle effects are awesome
thats very good progress , good luck and well done .
Looks good. Love the effects
this is so cool dude you are amazing
This looks amazing!
Wow great video ^^ , but i have a question for you, how can i set enemy hit animation? and when the enemys die u use Unposses node? Because when i kill enemys they follow me with death animation lol
As for the Hit Animation I just play an random Hit Animation from Kubolds Anim Pack as an AnimMontage.
When a Pawn dies it's best to also deactivate it's MovementComponent. This way no movement happens. Unpossesssing is also a good idea. For AI it might also be sufficient to destroy the controller since it's not needed anymore, unless the AI is replacing a player and has to be treated that way.
You should also add checks to most of your Pawns action so that they can only performend when alive. For example before firing, check if the pawn is alive.
Thanks for answer, but have u create a Skeletal Mesh or have u use the Mesh in EnemeyBP? Because if i use Skeletal Mesh, i cant play anim montage
Enemies are using the same CharacterBlueprint that the player is using. So they also share the same skeleton and anim blueprint. Also make sure that the anim blueprint you are using has a slot for that montage. (Look for the slot animation node in your anim graph)
Supetarska Draga Use a montage, get your mesh, then get anim instance, then montage play and select your hit montage. if your animation isnt a montage yet right click, then create montage
Thanks for all answers ^^ the only problem at the moment is this.. when i duplicate the enemies, they start patrol, but if i shoot one of them, they follow me togheter.. i have try to duplicate with child actor.. but dont work :/
very nice work. Planning on any breakdowns?
Tomura can you do a tutorial on this game Cuz i want to try it out
how much do u want for this system?
Could you maybe explain how you created the logic behind the ui? I'm specifically talking about the tabs (UWidgetSwitcher?) and the submenu in each tab. What happens when you e.g. click on video settings in your settings tab. Do you hide the settings tab and add the new widget to the viewport? And how do you create the navigation widget (Play->Settings->Audio) and add the buttons to it to navigate through each menu?
Sadly I can't look it up anymore, because I now have only one layer and I've reset my version control so I cannot switch back to this version.
From my memory, the Menu -> Submenu -> ... bar, basically read data from an struct array. Based on changes in the array it will add or remove buttons or completly rebuild itself.
Each element has a text label and a reference to the widget class they should link to.
Whenever you click on the button the animation is played that moves the panel out of the screen. Then the widget inside that panel is destroyed and the new menu is created inside the now empty panel. Then it is moved into the screen with another animation.
Most of the time it is very clear how the whole thing should look like since there is only one layer (Menu -> SubMenu) with the options menu being an exception, though the sub-submenus could only be reached once you were within Menu -> Options. So it was mostly just a matter of adding a new element to the array and let the widget rebuild itself. Once you left the submenus it was most likely easier to just see where you go to and completely repopulate the array, since it was either just "Menu" or "Menu -> Submenu" depending on which sub menu you went into.
You don't need to overcomplicate it though. Often you have so few menus that it might be easier to just manually create this kind of nav-bar.
The number one rule of programming is "Keep it simple, stupid". Think about how complicated you want to make it and what would be easier to maintain over time. As you see I've decided against the system that I had in here and made it simpler.
@@TomuraDev Thanks for the detailed answer as always, really appreciating it! Trying my best to replicate it right now with the new knowledge. The KISS rule is very important but I really like the approach with the navigation-bar you made because it enables you to navigate very fast between each widget but i also want to see what you come up with once you focus more on ui stuff instead of gameplay(which is of course far more important). Waiting for new content ;)
So awesome. Love your menu!
Thanks.
A lot of it was inspired from what I've seen in the Battlefront beta and it looked like a UI that would work well with both mouse & keyboard and a virtual cursor controlled by the gamepad. I'm still not sure about keeping the gamepad cursor, but it makes adding gamepad support to menus a lot easier.
I love the gamepad cursor. Its unique. I would say keep it.
I probably will. Thinking about it, It might also work well the touchpad on the steam controller, so there might be some potential there.
I would love to play your game someday...
How to make the Shooting AI Character?
This is great all the mechanics .. I would like to know how is your programming in blueprints
Most of it is in C++, but you can probably do a lot of it in Blueprints if you want to. It's matter of preference.
C ++ I do not know :( I can help make that effect .. since I am creating a video game and I would like to include that process
Could you help me do that
What IK/physics model are you using for the ai movement? Especially when they're shot and they seem to dynamically stumble around, I'd really like to know.
It's just animations, no physics or IKs
@@TomuraDev Thank you so much for the reply.
dude this was badass, was it made from a marketplace e kit or from scratch?
Did you make the animations yourself? And if so, can you make them available for download? (If you do make it for download, I know money is a good thing but, I am piss-poor right now)
+Open Minded The animations are from Kubolds Rifle Animset Pro pack + a bit of proceduality added by me for good measure. They are very cheap for mocap animations, so if you need them it's probably a good idea to save up for it. Obviously I don't know about your current life situation, so I can't offer any better advice.
BTW the animations that Epic does provide are also very sufficient. It lacks reloads and some other advanced stuff, but the essentials should be there. And creating a couple of animations yourself shouldn't be too hard. It's a skill that you need anyways.
+Tomura Thanks, and good luck with this project.
Great work! I'm curious though, how did you manage to use the third person animations on a first person arms mesh?
Akhilesh Patalay it's originally a third person player controller that has had the camera modified and attached to the head socket. True first person
These ragdoll physics are soooo fucking good!!
Hope it's meant as an compliment. What I used were just the default settings the epic mannequin comes with. The thing I did was to turn the physics on at a random time during the death animation this way all body parts have a bit of momentum and you have a more spectacular motion. Also it's important to fine tune the forces you apply to the ragdoll upon turning the phyiscs on. For the shotgun it's especially cool, because you apply forces to multiple body parts at once.
If you just ragdoll from standing the body will just collapse in itself, this looks a bit weird in an action packed combat scene, because it takes out the momentum out of the situation.
Yep its a compliment ;) They just looked real natural and had a great flow!
What kind of project type u use? Third person or First person?
I have a question. do you change the tickrate of the AI based on distance?? if so when and where is the tick function called
I don't. Might a good optimization probably, if that works properly (don't know if it works)
There area a couple of thoughts though why I don't.
The AI sometimes (it is performed within a Behavior Tree Service) looks for new targets using its perceptions. When it is distant from the player, obviously it won't perceive anything, thus it should be pretty effortless (nothing to iterate through, nothing where I need to figure out the priority for the AI). Since it also doesn't have an target, the only thing the AI would do is wait (guard) or patrol.
The footages here is pretty bad in terms of frame rate anyways, because I was a poor student at the time.
@@TomuraDev I'm making a game for my final thesis project and wanted to make it as good on performance as possible (supposed to run for a larger target audience). I have a pretty good rig but I wanted it to run on lower specs as well.
Games do optimize by capping the number of ai running in game at a time right? spawning them only when the player is near or reducing their tickrate
@@vegitoblue2187 At least this is one way to do it, as far as I know. I'm far from a professional game dev, let alone a AI game dev though.
In general performance optimization consists of reducing the amount of operations performed. Before optimizing you should also look at what actually needs a lot of performance. It might not be your AI but maybe you animation system, etc.
For AI use "Stat AI" this way you see how much time your stuff is taking.
@@TomuraDev the ai it is just a simple patrol logic where the player dies if the ai sees it. but having 20 of these in a full level without optimization could be a problem.
one way i was thinking was to load them with a streamed level. so when the level unloads the ai is unloaded as well. the problem with this approach is that it can limit how you place ai. the tick was the other approach where all ai are in persistent layer and tickrate differes with proximity which robo recall seems to use based on what devs said in the talk
Wow, that was awesome!!!!
the blood is a particle with subUv?
great work !
it is a c++ project or blueprint for ai and character controller ?
C++, but I'm also using blueprints. Both are different tools. In C++ I'm basically building the basic functionality as in the building blocks that handle the complex stuff. In Blueprint I then do the specific implementation.
So for AI for example I do things like sorting/preparing data (perception). In Blueprint I do the decision finding, etc.
Nice work!
WOW good job there.
Download?
please tell me where to get the same animation?
Look for Rifle Anim Set Pro by Kubold in the UE4 Marketplace.
amazing AI
Hi, how did you make the circular countdown ?
There should be a Forum post somewhere in the unreal engine forum. The basic principle behind this is to create a circular gradient (in photoshop for example). Then you create a material that masks out the circle and using an if condition you can then draw parts of the gradient white (or any other color) that are of lower value than a scalar parameter. And parts black that are of a greater value than the parameter.
Since the gradient is circular the boundary will also move in this way. Using this principle you can actually create any kind of shape that fills up, if the gradient follows the path of that shape.
Why you not upload tutorials
Impressive.
were downolaod ?
give a link to download can not wait to play
1 question
tutorial?
Sadly the answer is no. I'd like to, but between work and doing this +
other activities in my freetime I don't have any time left for making
tutorials.
Nice
wow just wow awsome upgrading your skill ,cool composition and enemy ai setup some day i might to getting it started for my project let's hope...
Damn!
Hey Tomura!
I enjoyed watching your video and I think there might be a project of interest where your skills can be used. The game is called "Harsh Doorstop" being developed by the Bluedrake42 community. It's an open to all project that requires developers. Here is the link to the front page where you can find more information including the development forums.
forum.bluedrake42.com/index.php?/topic/244-harsh-doorstop-february-roadmap/
If you are interested in joining the link above has further details on how you can help. If not than thank you for your time and keep up the good work!
where to download
I have been following you for years. You are a disturbing person for me. I would like to hire you in my video game company. I would like to know your discord!
teach me!!
Robocop