Thank you for always providing great tutorials. The reason "LaunchCharacter" does not work properly in version 5.3 is because the "BrakingDecelerationFalling" value of "Character Movement" is set to 1500. If you change the value to 0, it will behave as in the tutorial. I'm looking forward to more great tutorials from you in the future. ^^
omg, this comment saved both the jump and nav link problems, launch character issue ! thank you so much for sharing this, and thank you Ali for pinning the comment
Bone depth will share the blending across a certain chain of bones defined by the depth. For example, if you are blending from spine01 and set a depth of 3, that means that your blending will be smoothed over 3 bones starting at the origin, so spine1, spine2 and spine3. A value of zero will make the blending happen in the requested bone only and a negative value will remove that bone from the blending.
Afaik setting the blend depth to 0 will affect all Bones in the hierarchy of the chosen Bone. E.g. if you choose Spine_01 and set the depth to 0, it will affect the whole upper body. you can find more Information in the unreal Documentation under blend nodes.
Thanks for a great tutorial! For anybody curious about the debug slomo / time dilation, and how to do make yourself - look for console command "slomo X" (it makes the time in the game go X times faster then normal). You can put it into "execute console command" block and assign that to a key press/release.
So glad that you've mentioned boss fight at the end. I've finally managed to catch up with the videos (still got the spin one tho). Can't wait for the boss fight!!!! Keep it up!
You said to click XY override on the Launch Character node, but I checked it, the AI character doesn't actually move towards the target, it only jumps and attack. When I leave it unchecked, it worked perfectly. It took me this long to figure out that this is an issue with the animation itself. If the animation wasn't made specifically for the skeleton, the root motion functionality will technically operate in reverse. Or it can work properly in some things and in other things it may not. So for those who are having the same issues, consider this.
Hey, thanks for sharing your experience and the findings! It's great that you were able to troubleshoot and identify the issue with the animation affecting the AI's movement. Your insight can definitely help others who might be experiencing similar issues. Good job on figuring it out and thanks for the heads-up!
@@AliElZoheiry You're welcome. One more thing. If the animation was imported via FBX for the Skeleton, (SK_Mannequin for example), the root motion should work perfectly. However, if the animation was retargeted inside the Engine to or from a different skeleton, you may have the "issue". There are cases where even if the animation was imported via FBX, you may to have the same issue although, this is not very often.
I would've been searching for this all night if it werent for you lol. My character still doesn't jump very far so I may need to increase the X & Y values some more rather than just passing them to the arc node, but at least this is a good start. Thanks a lot!
@@mebessusn the reason why they don't move as far is because of arc value itself and not the XY value per se. if the set the arc value to 0.99, it will jump right to the player character. Be careful though, because if the AI is right next to the character and it jumps near the player, it will look weird. The higher the arc value, the further away AI would need to be when he jumps... or else
your videos are great, I wrote about 600 words explaining that I am going to Austria for some months and I have downloaded your videos and assets needed for each video, but I clicked the back button on my mouse when I went to move my mouse, and I CBA writing it again, im going to study AI Development, and Game Development as majors in university in 7 months, your videos are the start of a long journey to me I enjoy coding so much, but I must say sometimes I get stuck scrolling on youtube shorts, they are a parasite to the brain.
Thank you for the kind words! It's fantastic to hear how the videos have helped kickstart your journey into game development. Best of luck with your studies and future endeavors!
Thank you so much for your incredibly kind words! I'm truly honored to receive such high praise. Your support means a lot to me, and I'm glad you find my content helpful. If there's anything specific you'd like to see in future videos, just let me know!
Another great tutorial! thanks so much for all this content. Cant wait to see what series you do after this one. Hoping for inventory and NPCs/quest system :)
Hey, I love these Tutorial. I couldnt help but notice that you have a Kurzgesagt Immune system book reflecting off the mirror, i have one too, Kurzgesagt makes amazing videos.
It doesn't work when i connected "Owner Controller" In BTS_UpdateDistanceToTarget( When the enemy's position is printed out, it is fixed, but the enemy is still moving. ) but when i connected "Controlled pawn" it works. why happen this issue??
It should be off of the pawn indeed, because we want to get the location of the pawn (I mentioned that here at this timestamp ua-cam.com/video/NB79H4XmQSw/v-deo.htmlsi=Nm3sU_TyPEhrsFcf&t=2069 on screen
For ppl using 5.3 and having problems with the "launch character" - i had to add a "multiply" node the x,y,z to get the needed effect (like x3,x3,x0.5). I checked all the gravity stuff etc. and didnt find why my character wont move without - but kinda fixed it for me. Same with the jump on the "Nav-Jump". But perhaps i got something wrong on the way since i remember the nav-jump did work at the beginning. Well - maybe ppl can use this fix if you got the same problem ;)
I chuckled when you said you didn't have a full understanding of blend depth... neither do I ... I was hoping YOU did.... it's very hard to correlate that value to what actually happens in the blend, it's weird.
JumpToAttackTarget make the enemy jump in place, but if i multiply the OutLauchVelocityX and OutLauchVelocityY with 2 before feeding in the LaunchCharacter, the enemy can jump to me. Have they changed some default settings in the engine. I'm using ue5.3.2
Ali, great videos, you are helping me a lot. Btw i have an issue with my behavior tree. My mele enemy does first a short attack and then does always de jump attack. I fixed the problem you had with the selector and if i check the Call Tick on Search Start, the enemy starts with the jump attack and continues with it, never uses the short attack. I have checked if is something about the defense radius and i dont know what im doing wrong. I need your help ;) Anyways you're the best, thanks a lot!
Hey Sergio, glad you're enjoying the content. Make sure that your condition for using the jump Attack is that the distance is "greater than" a certain number NOT "less than" this can be a common simple mistake. Also make sure the distanceToTarget variable is actually updating (try printing it in your service to see) If you still can't fix the issue, feel free to join the Discord server and ask your question there
Not sure if you already solved this but I was also having this problem. I figured out that in the BTS_UpdateDistanceToTarget I had plugged in the Get Actor location into the owner Controller when it seems to only work when plugged into the Controlled Pawn.
This video series is amazing, one of the best tutorials I ever seen on UA-cam. So, you encouraged me to do youtube myself too. For the starting I'm thinking of converting this whole system (Damage, Projectile, AOE, AI) fully replicated. Maybe someday I might start, but have 1 question: Will there be any copyright issue regarding the content? Because this is how I wants to try to make the content. This is also a suggestion for you, if you want to make these fully replicated :p. Btw great content and Thank you
Thank you so much for your kind words! I'm thrilled that the series has inspired you to start your own content. As for copyright concerns, if you are using content from my videos, you can simply mention that this is not your own content and link to me channel/videos, then you're free to do whatever else you'd like with it ;) Good luck!
Thank you so much for your awesome tutorials! They have helped me a lot. What I would still find super exciting would be a function where wounded enemies are pulled into cover by uninjured enemies. What do you think? I look forward to many more great tutorials from you. Thank you for your work!
Great suggestion! I was thinking of having the mage enemy also act as a support, and heal injured team mates. but pulling them to cover would require synced animations, which would be out of scope of this series, but definitely a cool idea
Ali that would be great...to add a functionality so the mage can heal his team members accordingly to set/ changing parameters (i was actually just thinking about it...a wonderful ability, especially if someone wants to develop an rpg combat system)@@AliElZoheiry
Hey Ali! I m following along this series :) Excellent job as always! I have come across a wierd issue where I m not understanding where went wrong; I m using the same jump attack animation with Root Motion Mixamo character retargetted to UE5 Manny. The animation works well, with root motion and when using root lock, it also locks the jump up the animation had. So its pretty much locked in place in all aspects. I have no idea what caused this. It is also fair to mention that its the same situation from the source as well. Ie. if I lock root motion on the mixamo character I use as a source; it locks it in place totally
Small update; Managed to make it work! Had to set the root and pelvis bone chains to transform mode -> Absolute and it worked! Still everything happening in place with no upwards movement like yours though. But end result is the same so goodie ^^
Hey there! Glad you fixed the issue. I've been hearing that v5.3 of unreal has made some changes to how "Launch character" works, so if you're on that version you might want to checkout some of the comments
Blend Depth is the "falloff" . Blend Depth of 4 would reduce the influence of the pose by 25% for the next 4 joints. ua-cam.com/video/ffuq5k-j0AY/v-deo.html
Thank you for the video. I am planning an AI vs AI game. Even when encountering an enemy, I am curious about how to create an AI that calculates whether it is superior to the enemy and takes aggressive action if it is advantageous, and takes defensive action such as maintaining distance or running away if it is disadvantageous. If you get the chance, please do a tutorial on this as well.
You're welcome, glad you liked it. Thank you for the suggestion, I will be thinking of defensive vs aggressive attacks in coming tutorials, which can be used to create defensive or agressive behaviors, which you can switch from based on the current state of the fight
For choosing based on range from target - wouldnt it be less expensive to just make a custom decorator that checks the distance on demand rather than having it happen repeatedly in the service? My understanding is that determining distance is one of the more expensive vector math functions.
Hey there! Not sure where you heard that, but determining distance is done through subtracting the length of the 2 vectors, which is an incredibly quick operation and has almost no impact on performance
@@AliElZoheiry It's getting the magnitude of the vectors that used to, at least, be a heavy operation due to the necessity of a square root. That's why the Carmack fast square root was revolutionary back in the 90s.
@@lorenfulghum2393 we've come a long way since the 90s 😅 dont worry about the performance of any mathematical operation, these all run in O(1) and are negligible on even a 15 year old GPU
hey! So I'm almost at the end of the tutorial, but my enemy does on hit, then goes back to strafing again. I clicked the tick on the service and have the different attacks based on distance as well. I drawing blanks here because i don't know exactly why it stopped working
Hey there, I don't really understand what you mean, but just try to keep debugging the issue by adding print statement and breakpoints at critical points of the execution flow. You can check my video on how to fix bugs if you're stuck
@@AliElZoheiry weirdly enough it works. it seemed to be something with the token system, although im still testing things. I'm still check out the video!
A small query: while following your (excellent/awesome) trainings, it is easy to miss the "erratum captions" you nicely add when you spot a mistake in your video. Could you considere to add a sound (a kind of "timestamp noise") to make us aware of such caption? For my example, while I am following your training, I can focus on my second screen while listening and actually missing your erratum. It has happened with the "BTS_UpdateDistanceToTarget" and the controlled spawn instead of the owner controller. Thus, I had to rewatch two episods (which is still good for understanding) without knowing why my enemy was Jumping in Kriss Kross style.
For my setup I need to know how long it will take the character to actually land at the destination after launching. Is there any ways to calculate the time it will take?
Unfortunately to do that, you’ll have to calculate the launch velocity yourself by doing some parabolic math calculations for arc velocity, because that velocity equation takes time as one of the variables, so you can either set a specific time or get the time based on a specific distance
Amazing tutorial. Just one issue, my sword (hand socket) doesn't move with the enemy) upperbody slot anim montage, but works on the default one. Any solution to this?
Hey, glad you're enjoying the series. If your socket is moving the sword should move as well. It sounds like you either attached it to a non-moving socket (not attached to the bones of the skeleton) or it isn't attached to the mesh at all
One question II have a lot of melee enemy AI, but they have different animations, how can I do it? They had one behavior tree, but the melee AI animations were different? I should copy pasting or Inheritance?
If only the animations are different, but the functionality itself is the same, then I suggest keeping everything in one class, and have the animations as variables, so you can change the value of those variables per instance
Can you do a video covering root motion moving the player toward the enemy when attacking. For example, in the "witcher 3" and in "Zelda BOTW" if the player is not near an enemy and attacks they will move forward only a little bit, but if an enemy is near the player and the player does the same attack it launches the player towards the enemy.
If the same character animation moves differently in different situations, then it's most likely not root motion, but a similar calculation to what we did here for the jump, so you can follow the same approach, using montage notifies to move the character forward a certain amount
not sure what I'm doing wrong but at 11:57 i added a new slot for upper body since my custom enemy character doesn't come with one and after the whole process and picking the upper body slot in the anim montage my enemy runs up just stands and look but the attach sphere still happens meaning the anim notify happened so the animation trigged it but it doesn't play the animation unless i switch back to default group which dosnt achieve what we want any guess to why this happens ? Thanks
@@AliElZoheiry thanks ,i didn't seem to work either ways but it worked on a different model for some reason no idea what caused it not to work on the other character model , thanks anyways 🤝
Hey when you making damage system for player? I am mean not projectile. My character not have projectile function. Only melee weapons. Or make little tutorial how to connect melee weapons your damage system.
I'll most likely add a few melee attacks to the player in the coming tutorials, but I won't be going deep into a player combat system in the AI series because it's mainly about enemies
My another question. I am making so much behavior tree for enemies it's bad or good? Yeah enemies work's fine but, I have so much behavior tree? It's not freezing game?
Many behavior trees shouldn't have impact on performance, the amount of behavior trees is not an issue on game speed at all, but might be a bit more difficult to maintain if you have many trees
does someone know why when I check the boxes on XOverride or YOverride, then during the character's jump, he stops moving along all coordinates except the Z coordinates in launch character? at 30:16? when i disable check function start working, how could this even happen
Make sure your debug sphere is being drawn in the correct place, because if not, that would mean the location you are trying to jump to is incorrect. Also make sure that the "Arc" value on the "Suggest projectile velocity" function is 0.5
on 22:59 the enemy should jump into me but it only jump at place and doesnt launch into me ,i changed the ideal range , but it still the same problem, also with the nav links the enemies jump at place and cant launch them forward into the nav link
(SOLVED)I have this issue, when the enemy jumps they stay in place. I made the animation in cascaduer. I dont think they are root animations. They seem to also jump in place for the navlink jumps as well. which makes me think it has something to do with launch character node, Any ideas on what could be causing this? (I made changes to the Movement Component in the Enemy_Base Blueprint, All I had to do was go through that and reset the values I was tweaking)
Not sure, but here are some things to check: - Is your CalculateFutureLocation function returning the right location? - If so, then make sure "Enable root motion" is NOT checked in your animation - If that's also the case, I heard someone mention that they had an issue with the jump functionality in v5.3 when they switched the AI controller parent from regular AI controller to "DetourCrowdAIController", not sure if you're using that as well - Finally, try just adding arbitrary values in your "LaunchCharacter" function and see if that works, if it doesn't then you're either trying to launch the wrong character, or something else is preventing your character from moving.
what would be causing the NAV-Links to also make the character jump incorrectly? The NavLink jump and the Sword Jump Attack are both exhibiting the same behavior. However, I have the debug sphere at the correct location, launch character is functioning on the correct actor, i have used just 500 on the z in the "launch character" vector. that functioned correctly, Changing the Ai controller in the AIC_Enemy_Base back to AIController from the detrourCrowdAI hasnt fixed the issue. Im going to explore different animation s and see if that is the cause. Thank you for your time, ive been stuck with this for a few days. @@AliElZoheiry
Another Weird Factor is, when multiplying the "Out Launch Velocity by something small like 2, I get them to launch with decent results. Why would I need to multiply my velocity, when you do not have to, to achieve the same results? this is puzzling me.@@AliElZoheiry
Thank you for always providing great tutorials. The reason "LaunchCharacter" does not work properly in version 5.3 is because the "BrakingDecelerationFalling" value of "Character Movement" is set to 1500. If you change the value to 0, it will behave as in the tutorial. I'm looking forward to more great tutorials from you in the future. ^^
Thank you for the valuable insight! I appreciate you sharing this fix I wasn't aware of that, this is really helpful 🙏
That has been bothering me since the navlink tutorial, thank you so much for solving this.
Also thank you Ali for your amazing tutorials!!
THIS SAVED ME AN ISSUE JUST NOW! THANK YOU!
Thank you, i was having the exact same problem with version 5.4
omg, this comment saved both the jump and nav link problems, launch character issue ! thank you so much for sharing this, and thank you Ali for pinning the comment
Bone depth will share the blending across a certain chain of bones defined by the depth.
For example, if you are blending from spine01 and set a depth of 3, that means that your blending will be smoothed over 3 bones starting at the origin, so spine1, spine2 and spine3.
A value of zero will make the blending happen in the requested bone only and a negative value will remove that bone from the blending.
Ahh great explanation, thank you for that, I'm always learning new things 😇🙏
Afaik setting the blend depth to 0 will affect all Bones in the hierarchy of the chosen Bone.
E.g. if you choose Spine_01 and set the depth to 0, it will affect the whole upper body.
you can find more Information in the unreal Documentation under blend nodes.
Thank you for doing this great service to allow amateur game devs do so really cool stuff. Your hard work is not going unnoticed!
Thanks for a great tutorial!
For anybody curious about the debug slomo / time dilation, and how to do make yourself - look for console command "slomo X" (it makes the time in the game go X times faster then normal). You can put it into "execute console command" block and assign that to a key press/release.
So glad that you've mentioned boss fight at the end. I've finally managed to catch up with the videos (still got the spin one tho). Can't wait for the boss fight!!!! Keep it up!
Thank you! Glad you're liking everything so far. The boss fight indeed will be the climatic finale of this series, let's see how it goes 😇🙏
You said to click XY override on the Launch Character node, but I checked it, the AI character doesn't actually move towards the target, it only jumps and attack. When I leave it unchecked, it worked perfectly. It took me this long to figure out that this is an issue with the animation itself. If the animation wasn't made specifically for the skeleton, the root motion functionality will technically operate in reverse. Or it can work properly in some things and in other things it may not. So for those who are having the same issues, consider this.
Hey, thanks for sharing your experience and the findings! It's great that you were able to troubleshoot and identify the issue with the animation affecting the AI's movement. Your insight can definitely help others who might be experiencing similar issues. Good job on figuring it out and thanks for the heads-up!
@@AliElZoheiry You're welcome. One more thing. If the animation was imported via FBX for the Skeleton, (SK_Mannequin for example), the root motion should work perfectly. However, if the animation was retargeted inside the Engine to or from a different skeleton, you may have the "issue". There are cases where even if the animation was imported via FBX, you may to have the same issue although, this is not very often.
Thanks, you solved my issue too
I would've been searching for this all night if it werent for you lol. My character still doesn't jump very far so I may need to increase the X & Y values some more rather than just passing them to the arc node, but at least this is a good start. Thanks a lot!
@@mebessusn the reason why they don't move as far is because of arc value itself and not the XY value per se. if the set the arc value to 0.99, it will jump right to the player character. Be careful though, because if the AI is right next to the character and it jumps near the player, it will look weird. The higher the arc value, the further away AI would need to be when he jumps... or else
your videos are great, I wrote about 600 words explaining that I am going to Austria for some months and I have downloaded your videos and assets needed for each video, but I clicked the back button on my mouse when I went to move my mouse, and I CBA writing it again,
im going to study AI Development, and Game Development as majors in university in 7 months, your videos are the start of a long journey to me
I enjoy coding so much, but I must say sometimes I get stuck scrolling on youtube shorts, they are a parasite to the brain.
Thank you for the kind words! It's fantastic to hear how the videos have helped kickstart your journey into game development. Best of luck with your studies and future endeavors!
Do you realize that, as far as I know, you might be the best UA-cam instructor for Unreal Engine? 😅
Thank you so much for your incredibly kind words! I'm truly honored to receive such high praise. Your support means a lot to me, and I'm glad you find my content helpful. If there's anything specific you'd like to see in future videos, just let me know!
Another great tutorial! thanks so much for all this content. Cant wait to see what series you do after this one. Hoping for inventory and NPCs/quest system :)
Thank you again Patrick! Glad you enjoyed it ☺️🙏
Very Interesting. I predict this will be the meta in a few games
Hahah it definitely is in a lot of games indeed
Hey, I love these Tutorial. I couldnt help but notice that you have a Kurzgesagt Immune system book reflecting off the mirror, i have one too, Kurzgesagt makes amazing videos.
Hey there! Glad you're enjoying the tutorials! Yes, Kurzgesagt is amazing, and their Immune Book is a great addition to any bookshelf!
you are always the best
Thank you Flexsa 🙏 I appreciate your kindness
It doesn't work when i connected "Owner Controller" In BTS_UpdateDistanceToTarget( When the enemy's position is printed out, it is fixed, but the enemy is still moving. ) but when i connected "Controlled pawn" it works. why happen this issue??
It should be off of the pawn indeed, because we want to get the location of the pawn (I mentioned that here at this timestamp ua-cam.com/video/NB79H4XmQSw/v-deo.htmlsi=Nm3sU_TyPEhrsFcf&t=2069 on screen
perfect, thanks! I already liked it without even watching the video
Thank you as always for your support 🙏💖
It was just what I had in mind Thk Ali
Excellent! Glad to hear it's what you were looking for 🙏
For ppl using 5.3 and having problems with the "launch character" - i had to add a "multiply" node the x,y,z to get the needed effect (like x3,x3,x0.5). I checked all the gravity stuff etc. and didnt find why my character wont move without - but kinda fixed it for me. Same with the jump on the "Nav-Jump". But perhaps i got something wrong on the way since i remember the nav-jump did work at the beginning. Well - maybe ppl can use this fix if you got the same problem ;)
Hey, thanks for sharing your workaround! It's always helpful to have different approaches to tackling issues. Glad you were able to figure it out!
hey, can you be a bit more specific on how you implemented it? or if you have found why it didnt work in the first place?
I chuckled when you said you didn't have a full understanding of blend depth... neither do I ... I was hoping YOU did.... it's very hard to correlate that value to what actually happens in the blend, it's weird.
Hahaha I have a better understanding now thanks to the comments on this video ;)
JumpToAttackTarget make the enemy jump in place, but if i multiply the OutLauchVelocityX and OutLauchVelocityY with 2 before feeding in the LaunchCharacter, the enemy can jump to me. Have they changed some default settings in the engine. I'm using ue5.3.2
Hey Quân, not really sure about the behavior in 5.3, because I use 5.2 and the values work fine for me
thx bro i was searching 2 hours for this bug, i think there are bugs in the node
This is very helpful! thank you!!
Similar issue here as well. Thanks for posting this Aeterrno!
Ali, great videos, you are helping me a lot. Btw i have an issue with my behavior tree. My mele enemy does first a short attack and then does always de jump attack. I fixed the problem you had with the selector and if i check the Call Tick on Search Start, the enemy starts with the jump attack and continues with it, never uses the short attack. I have checked if is something about the defense radius and i dont know what im doing wrong.
I need your help ;)
Anyways you're the best, thanks a lot!
Hey Sergio, glad you're enjoying the content.
Make sure that your condition for using the jump Attack is that the distance is "greater than" a certain number NOT "less than" this can be a common simple mistake.
Also make sure the distanceToTarget variable is actually updating (try printing it in your service to see)
If you still can't fix the issue, feel free to join the Discord server and ask your question there
Not sure if you already solved this but I was also having this problem. I figured out that in the BTS_UpdateDistanceToTarget I had plugged in the Get Actor location into the owner Controller when it seems to only work when plugged into the Controlled Pawn.
This video series is amazing, one of the best tutorials I ever seen on UA-cam. So, you encouraged me to do youtube myself too. For the starting I'm thinking of converting this whole system (Damage, Projectile, AOE, AI) fully replicated. Maybe someday I might start, but have 1 question: Will there be any copyright issue regarding the content? Because this is how I wants to try to make the content. This is also a suggestion for you, if you want to make these fully replicated :p. Btw great content and Thank you
Thank you so much for your kind words! I'm thrilled that the series has inspired you to start your own content. As for copyright concerns, if you are using content from my videos, you can simply mention that this is not your own content and link to me channel/videos, then you're free to do whatever else you'd like with it ;) Good luck!
@@AliElZoheiry Perfect Thanks
Thank you so much for your awesome tutorials!
They have helped me a lot.
What I would still find super exciting would be a function where wounded enemies are pulled into cover by uninjured enemies. What do you think?
I look forward to many more great tutorials from you. Thank you for your work!
Great suggestion! I was thinking of having the mage enemy also act as a support, and heal injured team mates. but pulling them to cover would require synced animations, which would be out of scope of this series, but definitely a cool idea
Ali that would be great...to add a functionality so the mage can heal his team members accordingly to set/ changing parameters (i was actually just thinking about it...a wonderful ability, especially if someone wants to develop an rpg combat system)@@AliElZoheiry
Hey Ali!
I m following along this series :) Excellent job as always!
I have come across a wierd issue where I m not understanding where went wrong;
I m using the same jump attack animation with Root Motion Mixamo character retargetted to UE5 Manny.
The animation works well, with root motion and when using root lock, it also locks the jump up the animation had. So its pretty much locked in place in all aspects.
I have no idea what caused this. It is also fair to mention that its the same situation from the source as well. Ie. if I lock root motion on the mixamo character I use as a source; it locks it in place totally
Small update; Managed to make it work! Had to set the root and pelvis bone chains to transform mode -> Absolute and it worked! Still everything happening in place with no upwards movement like yours though. But end result is the same so goodie ^^
Hey there! Glad you fixed the issue. I've been hearing that v5.3 of unreal has made some changes to how "Launch character" works, so if you're on that version you might want to checkout some of the comments
Blend Depth is the "falloff" . Blend Depth of 4 would reduce the influence of the pose by 25% for the next 4 joints. ua-cam.com/video/ffuq5k-j0AY/v-deo.html
Excellent! Thank you for explaining that. I have a lot to learn when it comes to animations still :D
Thank you for the video.
I am planning an AI vs AI game.
Even when encountering an enemy, I am curious about how to create an AI that calculates whether it is superior to the enemy and takes aggressive action if it is advantageous, and takes defensive action such as maintaining distance or running away if it is disadvantageous.
If you get the chance, please do a tutorial on this as well.
You're welcome, glad you liked it. Thank you for the suggestion, I will be thinking of defensive vs aggressive attacks in coming tutorials, which can be used to create defensive or agressive behaviors, which you can switch from based on the current state of the fight
For choosing based on range from target - wouldnt it be less expensive to just make a custom decorator that checks the distance on demand rather than having it happen repeatedly in the service? My understanding is that determining distance is one of the more expensive vector math functions.
Hey there! Not sure where you heard that, but determining distance is done through subtracting the length of the 2 vectors, which is an incredibly quick operation and has almost no impact on performance
@@AliElZoheiry It's getting the magnitude of the vectors that used to, at least, be a heavy operation due to the necessity of a square root. That's why the Carmack fast square root was revolutionary back in the 90s.
@@lorenfulghum2393 we've come a long way since the 90s 😅 dont worry about the performance of any mathematical operation, these all run in O(1) and are negligible on even a 15 year old GPU
@@AliElZoheiry that's pretty much what I figured... lmao here I am dating myself 😅
hey! So I'm almost at the end of the tutorial, but my enemy does on hit, then goes back to strafing again. I clicked the tick on the service and have the different attacks based on distance as well.
I drawing blanks here because i don't know exactly why it stopped working
Hey there, I don't really understand what you mean, but just try to keep debugging the issue by adding print statement and breakpoints at critical points of the execution flow. You can check my video on how to fix bugs if you're stuck
@@AliElZoheiry weirdly enough it works. it seemed to be something with the token system, although im still testing things. I'm still check out the video!
A small query: while following your (excellent/awesome) trainings, it is easy to miss the "erratum captions" you nicely add when you spot a mistake in your video. Could you considere to add a sound (a kind of "timestamp noise") to make us aware of such caption?
For my example, while I am following your training, I can focus on my second screen while listening and actually missing your erratum. It has happened with the "BTS_UpdateDistanceToTarget" and the controlled spawn instead of the owner controller. Thus, I had to rewatch two episods (which is still good for understanding) without knowing why my enemy was Jumping in Kriss Kross style.
Hey! That’s an excellent suggestion, I really appreciate the feedback, I’ll make sure to do that in my newer videos
For my setup I need to know how long it will take the character to actually land at the destination after launching. Is there any ways to calculate the time it will take?
Unfortunately to do that, you’ll have to calculate the launch velocity yourself by doing some parabolic math calculations for arc velocity, because that velocity equation takes time as one of the variables, so you can either set a specific time or get the time based on a specific distance
Amazing tutorial. Just one issue, my sword (hand socket) doesn't move with the enemy) upperbody slot anim montage, but works on the default one. Any solution to this?
Hey, glad you're enjoying the series. If your socket is moving the sword should move as well. It sounds like you either attached it to a non-moving socket (not attached to the bones of the skeleton) or it isn't attached to the mesh at all
bros the best
Thank you very much, I appreciate your kind words!
One question II have a lot of melee enemy AI, but they have different animations, how can I do it? They had one behavior tree, but the melee AI animations were different?
I should copy pasting or Inheritance?
If only the animations are different, but the functionality itself is the same, then I suggest keeping everything in one class, and have the animations as variables, so you can change the value of those variables per instance
Can you do a video covering root motion moving the player toward the enemy when attacking. For example, in the "witcher 3" and in "Zelda BOTW" if the player is not near an enemy and attacks they will move forward only a little bit, but if an enemy is near the player and the player does the same attack it launches the player towards the enemy.
If the same character animation moves differently in different situations, then it's most likely not root motion, but a similar calculation to what we did here for the jump, so you can follow the same approach, using montage notifies to move the character forward a certain amount
not sure what I'm doing wrong but at 11:57 i added a new slot for upper body since my custom enemy character doesn't come with one and after the whole process and picking the upper body slot in the anim montage my enemy runs up just stands and look but the attach sphere still happens meaning the anim notify happened so the animation trigged it but it doesn't play the animation unless i switch back to default group which dosnt achieve what we want any guess to why this happens ? Thanks
Hey there, make sure you have the new slot in your anim graph, otherwise animations on that slot won't play
@@AliElZoheiry thanks ,i didn't seem to work either ways but it worked on a different model for some reason no idea what caused it not to work on the other character model , thanks anyways 🤝
Elon Musk right about AI. AI can be scary.... it's crazy.....
Hey when you making damage system for player?
I am mean not projectile.
My character not have projectile function.
Only melee weapons.
Or make little tutorial how to connect melee weapons your damage system.
I'll most likely add a few melee attacks to the player in the coming tutorials, but I won't be going deep into a player combat system in the AI series because it's mainly about enemies
My another question. I am making so much behavior tree for enemies it's bad or good?
Yeah enemies work's fine but, I have so much behavior tree? It's not freezing game?
Many behavior trees shouldn't have impact on performance, the amount of behavior trees is not an issue on game speed at all, but might be a bit more difficult to maintain if you have many trees
My force root lock isnt working when i have retargeted the animation to another character, am I forgetting something?
Depends on your animation and your character, both should have a root bone for root lock to work
does someone know why when I check the boxes on XOverride or YOverride, then during the character's jump, he stops moving along all coordinates except the Z coordinates in launch character? at 30:16? when i disable check function start working, how could this even happen
Make sure your debug sphere is being drawn in the correct place, because if not, that would mean the location you are trying to jump to is incorrect.
Also make sure that the "Arc" value on the "Suggest projectile velocity" function is 0.5
Ali I have one enemy melee but, how can I am copy pasting so much melee enemies but, different animations?
When Animation of another melee enemy does not work. My enemy is freezing.?
I am already fixed. Thank to me
Excellent! Glad you managed to fix it 😉
on 22:59 the enemy should jump into me but it only jump at place and doesnt launch into me ,i changed the ideal range , but it still the same problem, also with the nav links the enemies jump at place and cant launch them forward into the nav link
Hey there, I heard some people having issues with the jump function in 5.3, but in 5.2 it work correctly for me. Are you on v5.3 by any chance?
@AliElZoheiry yeah I fixed it , just need to multipy the value of the launch vector , it's some issue with the node
Did you find a fix for the nav links? this didnt work for me with them but works for the jump to enemy@@JabrobLamez
@@JabrobLamez hey there, i have the same issue, I cant seem to resolve it
(SOLVED)I have this issue, when the enemy jumps they stay in place. I made the animation in cascaduer. I dont think they are root animations. They seem to also jump in place for the navlink jumps as well. which makes me think it has something to do with launch character node, Any ideas on what could be causing this? (I made changes to the Movement Component in the Enemy_Base Blueprint, All I had to do was go through that and reset the values I was tweaking)
Not sure, but here are some things to check:
- Is your CalculateFutureLocation function returning the right location?
- If so, then make sure "Enable root motion" is NOT checked in your animation
- If that's also the case, I heard someone mention that they had an issue with the jump functionality in v5.3 when they switched the AI controller parent from regular AI controller to "DetourCrowdAIController", not sure if you're using that as well
- Finally, try just adding arbitrary values in your "LaunchCharacter" function and see if that works, if it doesn't then you're either trying to launch the wrong character, or something else is preventing your character from moving.
what would be causing the NAV-Links to also make the character jump incorrectly? The NavLink jump and the Sword Jump Attack are both exhibiting the same behavior. However, I have the debug sphere at the correct location, launch character is functioning on the correct actor, i have used just 500 on the z in the "launch character" vector. that functioned correctly, Changing the Ai controller in the AIC_Enemy_Base back to AIController from the detrourCrowdAI hasnt fixed the issue. Im going to explore different animation s and see if that is the cause. Thank you for your time, ive been stuck with this for a few days. @@AliElZoheiry
Another Weird Factor is, when multiplying the "Out Launch Velocity by something small like 2, I get them to launch with decent results. Why would I need to multiply my velocity, when you do not have to, to achieve the same results? this is puzzling me.@@AliElZoheiry
very strange, i dont really know why that is, unless you're overriding the default gravity values, which i dont think you are
right, im not sure what the heck I did. but it broke the effect "launch character" is having on the capsule.@@AliElZoheiry
미친 튜토리얼
Glad you liked it :)
😊🙏😄👍