You could set up your camera to fit a resting place of your cat in background into it, because people love small details unrelated to the videos topic :) Other channels I follow have it that way. Having some cat-video-bombs into serious topics is awesome!
This series is absolutely Phenomenal! I would love to see a series from you about a leveling, stats/attribute system, classes and all rpg related stuff souly based on the player character. I would praise it like no tomorrow!
I'm a web developer, and recently started my journey in the world of game developer. I'm still in the part 3 and testing some things, learning and taking notes, but I like to see what is coming on, and I'm so excited to get at this point. You're a very good teacher and developer, I notice the good practices you are implementing. Good job in all senses!
Very cool you made the jump to game dev from web dev, I did the same as well. Happy to hear that my tutorials are helping you 🙏☺️ I hope you enjoy the rest
Hi Ali Elzoheiry, there is a tutorial on the channel teaching how to put combat sound when combat starts, and when you eliminate enemies the combat sound ends and returns to ambient sound, and program enemies to appear when the player reaches a certain point . I would really like to learn this. Your channel is incredible, keep up the great work. Hugs.
Thank you for your kind words and your suggestion! I'll definitely consider creating a tutorial on adding combat sounds and programming enemy appearances. I'm glad you're enjoying the content on the channel. Stay tuned for more tutorials! 🙏
7 місяців тому
@@AliElZoheiry Your teaching is excellent, keep up the great work, and I look forward to your new videos.
Awesome tutorial Ali. Before the boss, if you're out of ideas. 1 - A wizard villain who can spawn enemies, (I imagine a type of creature that running with a normal attack or something that you want to adapt in the mechanics. (This could also be something from the boss if you don't want to create another enemy. 2- Or Create the squire enemy that throws axes. Or creating both enemies all seem very promising for the series.
The Tutorials just keeps getting better and better !!!...can you please add a spell/attack bar to the system...so one might be able to choose the attack/spell by licking with the mouse ?
Hey Tom, I've been considering a combat system series, more focus on player attacks, and it would surely include an action bar in that series, so I will keep it in mind 👍
Cool tutorial. What could be cool it would be flying ennemies who fly arround the player and shoot at him some projectiles or come to melee attack him but from the airs
Hey Kasper, thank you, glad you're still enjoying it. I indeed start to do things faster the more repeated it becomes because people should already be familiar with these things by part 18 😂
Hey! Thank you for your kind words about the series 🙏 I did the spinning mesh in blender by editing the animation itself to add some frames of the mesh spinning
Hey there, i got a question, i dont want to do a spinning attack for my enemy, if i just skip the spinning attack part in this episode and the spinning attack episode, it shouldnt effect the boss fight right? cuz i know the boss has an axe that spins so will i need it for that or am i chillin?
Hey! If the spinning attack doesn't fit into your boss fight, you should be good skipping that part. You won't need it for the boss with the spinning axe. Go ahead and adjust the tutorial to fit your needs!
Please, can u help me? How can i make to several AI walk in random points, and whet i press 2, closest one starts to chase me? P.S. I made first part, with walking on random points, but can't understand how to make second
to get the closest enemy, you can get all actors of a specific class, using "GetActorsOfClass" node. Then use "GetDistance" node to calculate the closest one
First You're an amazing teacher! Second for some reason both the basic attack and barrage are only performing once and then he doesnt move. but debugging myself i see that the ground slam works fine hooked up as the only attack but none of the others. and i think i found out why (the attack variable is false everytime after the first time and idk why) all code seems correct and was working.. If you have a sec please help
Hey Adam, thank you, I'm glad you found this useful. If you're having issues with just some attacks, make sure that you're calling AttackEnd correctly and at the right time, and that you are passing the correct AttackTarget to the attackEnd function
@@AliElZoheiry Wow Thank you I had my "Attack Target" and "Target" on the "Attack End" that is hooked to the "Get Owner" switched so "Attack End" wasn't getting called so you were right!! Wow I am so stoked now i can finally move on to the next video but i also want to tell you that you are by far the best at explaining the meaning and flow of what is happening in the code and to the point that i feel like i understand and that's a good feeling so please never stop teaching and helping us dreamers... :)
You can make a new task called BTT spin mesh, cast it to melee AI and then call the spin mesh Custom event, and then call that task in the Melee Behaviour tree, it worked for me.😁
@@nwhajlawn6224 at what point did you called the new BTT_Spin? calling it independently doesn't connect it to the BTT_MeleeAttack that the spin is connected to
Hey Ali! Thank you for updating the attack system, it's going to be so much easier creating new enemies after I finish this tutorial. I am having an issue that I have been stumped on for about an hour. For the ground smash attack, it works for the melee enemy but not the mage enemy. I get an error pointing me towards the "BTT_MageAttack" "Ground Smash Attack" function, so I placed a print string and that works fine. Also, in the Behaviour Tree, it gets stuck on the "Ground Smash Attack" unless I hit the enemy. Would you have any ideas what's happening with the mage enemy?
Hey there! Thank you for your comment and your support! Unfortunately I don't really know the reason for your error, but I'm sure you'll figure it out with a bit more debugging
Thank you for your awesome tutorial videos. If the player character uses the ground smash attack skill, I would like to implement a smart behavior where the enemy recognizes the skill range in advance and runs outside if it is already within the skill range, and does not go inside if it is outside the skill range. How should I implement this? I've been thinking about it, but I think it would be better to create an actor with the same shape as the skill range before the skill is cast, remove the actor's collision and make it invisible, but the enemy recognizes it in EQS and runs away. I would be happy to hear your opinion.
Hey Morphe, You're very welcome, glad you liked it! Regarding your question, I haven't tried implementing that, but he's how I would go about doing it: - First, I'd try to make the behavior of the enemy generic and not tied to a specific attack - I'd do that by having 2 additional blackboard keys (or just one struct) something like "DangerRadius" & "DangerCenter" - This will mark any area that the enemy should avoid for example - Then, in the behavior tree, I'd have a blackboard decorator that checks if the value of DangerRadius and DangerCenter are valid then there's danger to avoid - I'd need another decorator to tell me if the enemy is currently inside the danger area - If true, then find a point outside the danger area and run out - Then, the last thing to do, is just set the values of DangerRadius & DangerCenter when the player does an AOE attack - My preferred way for doing that, is dispatching a custom event from the player that contains all the info of the AOE attack - Then I'd bind to that event in the AI controller of the enemy and set the blackboard values when it is dispatched, and unset the values when it's over This is all speculative though, I haven't tested any of it
Awesome stuff! Do you think you'll add status effects? I think it will pair really well with the new attacks like applying shock to the player if hit with the lightning attack
Hmmm... Haven't really considered it, since that will be purely related to a combat system and not really enemy AI, so might be part of a separate series, or a tutorial on its own
@@AliElZoheiry Thanks for considering. Awesome work, sorry if I sounded demanding, but I want you to take your time. I love to see how other people implement different systems. Thank you again for your awesome content
@@sayayuuki127no worries at all, you didn't sound demanding. I've gotten some very demanding comments before, people go as far as asking me to do something specific before a specific date because they have a deadline 😅 and they get upset if I say i cant. now that's demanding 😂
erbut in the project there is only the animantion for the anemy or ther is also something for the player because i have dowload it but there is only the movement for the enemy or boss the player has nothing
Please help.if i want to make a new melee enemy,i make a child from the melee enemy ok? I make a spider enemy everything good. But when i attack him there are moment that looses health from my attacks and other times that not loose.what can be the problem?
@@AliElZoheiry thank you very much Ali, your youtube tutorials definitely help me so much to understand Unreal Engine as I started just like a month, hope more people can discover your channel.
Hey there, this wasn't done in engine, this was just done by editing the animation itself in Blender. I am not a 3D artist nor an animator, so I didn't add that part in the tutorial, but it was very simple, if I can do it, anyone can ;) I just opened up the animation in blender, copied the last frame, rotated it multiple times and pasted it a few frames later to make the animation longer
You don't need to use blender, I simply moved the timeline to the base enemy for the spin, cast to base in bpc enemyattacks, start the timeline and let the base spin the mesh, then call stop timeline from the bpc enemy attacks on the stop spinning function, and go about it that way. The only thing is that you can't also use this spin, but u could fix that in other ways but I was lazy and didn't want to use this ability anyways on my own character.
You're welcome 🙏 There's a blueprint node you can use called "Run EQSQuery". This is an async node though, so you have to bind to it's finish execution task and get your result. Here's an example in this screenshot prnt.sc/yWUOyvwOYpZ8
@@PiPiCatStudio because it's an async function, meaning that it doesn't finish instantly and takes sometime, so you need to bind to the event that is dispatched when that time is done and the locations are ready
I don't know how you don't have 150,000 subscribers. These are literally the best tutorials on youtube.
Thank you so much for your kind words! I'm really glad to hear that you find my tutorials helpful. Your support means a lot to me 🙏
You are and absolute LEGEND, so glad I found your channel. Thank you for putting up this intense work!
Thank you Cosmic 🙏 I'm very happy to have you as a supporter
yes,this is The best lesson in UA-cam.
If anyone likes cats, you can see mine popup at 42:02 😹
That cat is so serene!
@@diliupg Hahaha she is indeed!
You could set up your camera to fit a resting place of your cat in background into it, because people love small details unrelated to the videos topic :) Other channels I follow have it that way. Having some cat-video-bombs into serious topics is awesome!
@@gregorte Hahaha thanks for the suggestion, that's a great idea!
Best UE tutorials on UA-cam! Thanks for your work!
You're very welcome man, thank you for the support 🙏
This series is absolutely Phenomenal! I would love to see a series from you about a leveling, stats/attribute system, classes and all rpg related stuff souly based on the player character. I would praise it like no tomorrow!
Hey! Thank you so much for your kind words and your suggestions. I’ll definitely consider it for future videos. Stay tuned! 🙏
I'm a web developer, and recently started my journey in the world of game developer. I'm still in the part 3 and testing some things, learning and taking notes, but I like to see what is coming on, and I'm so excited to get at this point. You're a very good teacher and developer, I notice the good practices you are implementing. Good job in all senses!
Very cool you made the jump to game dev from web dev, I did the same as well. Happy to hear that my tutorials are helping you 🙏☺️ I hope you enjoy the rest
Loved the cat cameo. Amazing video as always, Ali!!
Haha, glad you enjoyed the surprise appearance 🐱 Thank you for your support and kind words!
Great job, as always !
Thank you as always Pizatol 😊🙏
Oleee Ali as always impeccable, congratulations!
Thank you so much for your kind words! I really appreciate your support and I'm glad you found the content helpful. Cheers!
内容がまとまっていてわかりやすいです!最高のチュートリアルをありがとう!!
Thank you! I'm glad it was helpful 🙏
Hi Ali Elzoheiry, there is a tutorial on the channel teaching how to put combat sound when combat starts, and when you eliminate enemies the combat sound ends and returns to ambient sound, and program enemies to appear when the player reaches a certain point . I would really like to learn this. Your channel is incredible, keep up the great work. Hugs.
Thank you for your kind words and your suggestion! I'll definitely consider creating a tutorial on adding combat sounds and programming enemy appearances. I'm glad you're enjoying the content on the channel. Stay tuned for more tutorials! 🙏
@@AliElZoheiry Your teaching is excellent, keep up the great work, and I look forward to your new videos.
Awesome tutorial Ali.
Before the boss, if you're out of ideas.
1 - A wizard villain who can spawn enemies, (I imagine a type of creature that running with a normal
attack or something that you want to adapt in the mechanics. (This could also be something from the
boss if you don't want to create another enemy.
2- Or Create the squire enemy that throws axes. Or creating both enemies all seem very promising for the series.
Hey Jo, indeed I'm thinking of making the spawn enemies as a boss ability, still thinking about the details
Damn, this is the best episode😸
Hey, thank you so much for your kind words! I'm thrilled to hear that you enjoyed the episode 😸 Your support means a lot!
I am learning a lot from this tutorials, thank you for making them😁❤
I will recommend this tutorials to my friends✌
I'm really happy to hear that! Glad you're liking them so far 🙏
The Tutorials just keeps getting better and better !!!...can you please add a spell/attack bar to the system...so one might be able to choose the attack/spell by licking with the mouse ?
Hey Tom, I've been considering a combat system series, more focus on player attacks, and it would surely include an action bar in that series, so I will keep it in mind 👍
@AliElZoheiry man that would be awesome. I'm struggling a bit with adjusting the enemy AI attacks to work with the main player.
Cool tutorial. What could be cool it would be flying ennemies who fly arround the player and shoot at him some projectiles or come to melee attack him but from the airs
Thank you for the suggestion! That could be an interesting addition to explore in a future tutorial. Appreciate your input!
@@AliElZoheiry Hello ali, A flying enemie could be very interesting, please take this @fyren9522 comment with consideration, thanks a lot !
You speak, click and switch windows so fast. Awesome content as always.
Hey Kasper, thank you, glad you're still enjoying it. I indeed start to do things faster the more repeated it becomes because people should already be familiar with these things by part 18 😂
Amazing videos! Great job :)
Thank you! Glad you like them 🤗🙏
great as always!
and thank you as always Patrick 🙏🙏
protect this person
Thank you Amar ☺️🙏
Hello sir
first of all , thanks for this epic series
please help me how did you made this keep spinning mesh at specific pose in this montage ?
42:43
Hey! Thank you for your kind words about the series 🙏 I did the spinning mesh in blender by editing the animation itself to add some frames of the mesh spinning
Thank you so much. You're amazing. i wish you could also share sounds for free
You're very welcome! I appreciate your kind words 🙏 All the sounds I got from freesounds.org
Hey there, i got a question, i dont want to do a spinning attack for my enemy, if i just skip the spinning attack part in this episode and the spinning attack episode, it shouldnt effect the boss fight right? cuz i know the boss has an axe that spins so will i need it for that or am i chillin?
Hey! If the spinning attack doesn't fit into your boss fight, you should be good skipping that part. You won't need it for the boss with the spinning axe. Go ahead and adjust the tutorial to fit your needs!
Please, can u help me? How can i make to several AI walk in random points, and whet i press 2, closest one starts to chase me?
P.S. I made first part, with walking on random points, but can't understand how to make second
to get the closest enemy, you can get all actors of a specific class, using "GetActorsOfClass" node. Then use "GetDistance" node to calculate the closest one
First You're an amazing teacher! Second for some reason both the basic attack and barrage are only performing once and then he doesnt move. but debugging myself i see that the ground slam works fine hooked up as the only attack but none of the others. and i think i found out why (the attack variable is false everytime after the first time and idk why) all code seems correct and was working.. If you have a sec please help
Hey Adam, thank you, I'm glad you found this useful.
If you're having issues with just some attacks, make sure that you're calling AttackEnd correctly and at the right time, and that you are passing the correct AttackTarget to the attackEnd function
@@AliElZoheiry Wow Thank you I had my "Attack Target" and "Target" on the "Attack End" that is hooked to the "Get Owner" switched so "Attack End" wasn't getting called so you were right!! Wow I am so stoked now i can finally move on to the next video but i also want to tell you that you are by far the best at explaining the meaning and flow of what is happening in the code and to the point that i feel like i understand and that's a good feeling so please never stop teaching and helping us dreamers... :)
Great as always Ali. Can you please tell us how did you manage to make the animation itself to spin?
You're very welcome 🙏 I just edited the animation in Blender to make it spin
You can make a new task called BTT spin mesh, cast it to melee AI and then call the spin mesh Custom event, and then call that task in the Melee Behaviour tree, it worked for me.😁
@@nwhajlawn6224 at what point did you called the new BTT_Spin? calling it independently doesn't connect it to the BTT_MeleeAttack that the spin is connected to
Hey Ali! Thank you for updating the attack system, it's going to be so much easier creating new enemies after I finish this tutorial. I am having an issue that I have been stumped on for about an hour. For the ground smash attack, it works for the melee enemy but not the mage enemy. I get an error pointing me towards the "BTT_MageAttack" "Ground Smash Attack" function, so I placed a print string and that works fine. Also, in the Behaviour Tree, it gets stuck on the "Ground Smash Attack" unless I hit the enemy. Would you have any ideas what's happening with the mage enemy?
Hey there! Thank you for your comment and your support! Unfortunately I don't really know the reason for your error, but I'm sure you'll figure it out with a bit more debugging
Thank you
You're welcome! I'm glad you found the content helpful. Thank you for the comment! 🙏
Thank you for your awesome tutorial videos. If the player character uses the ground smash attack skill, I would like to implement a smart behavior where the enemy recognizes the skill range in advance and runs outside if it is already within the skill range, and does not go inside if it is outside the skill range. How should I implement this? I've been thinking about it, but I think it would be better to create an actor with the same shape as the skill range before the skill is cast, remove the actor's collision and make it invisible, but the enemy recognizes it in EQS and runs away. I would be happy to hear your opinion.
Hey Morphe, You're very welcome, glad you liked it!
Regarding your question, I haven't tried implementing that, but he's how I would go about doing it:
- First, I'd try to make the behavior of the enemy generic and not tied to a specific attack
- I'd do that by having 2 additional blackboard keys (or just one struct) something like "DangerRadius" & "DangerCenter"
- This will mark any area that the enemy should avoid for example
- Then, in the behavior tree, I'd have a blackboard decorator that checks if the value of DangerRadius and DangerCenter are valid then there's danger to avoid
- I'd need another decorator to tell me if the enemy is currently inside the danger area
- If true, then find a point outside the danger area and run out
- Then, the last thing to do, is just set the values of DangerRadius & DangerCenter when the player does an AOE attack
- My preferred way for doing that, is dispatching a custom event from the player that contains all the info of the AOE attack
- Then I'd bind to that event in the AI controller of the enemy and set the blackboard values when it is dispatched, and unset the values when it's over
This is all speculative though, I haven't tested any of it
Best UE AI tutorials .....make a grab, please
Thanks Roger, I appreciate you. I'll consider your suggestion ☺️🙏
Awesome stuff! Do you think you'll add status effects? I think it will pair really well with the new attacks like applying shock to the player if hit with the lightning attack
Hmmm... Haven't really considered it, since that will be purely related to a combat system and not really enemy AI, so might be part of a separate series, or a tutorial on its own
@@AliElZoheiry Thanks for considering. Awesome work, sorry if I sounded demanding, but I want you to take your time. I love to see how other people implement different systems. Thank you again for your awesome content
@@sayayuuki127no worries at all, you didn't sound demanding. I've gotten some very demanding comments before, people go as far as asking me to do something specific before a specific date because they have a deadline 😅 and they get upset if I say i cant. now that's demanding 😂
erbut in the project there is only the animantion for the anemy or ther is also something for the player because i have dowload it but there is only the movement for the enemy or boss the player has nothing
The project contains everything in these tutorials, i uploaded the same files i worked on in the videos, so all the player stuff is there as well
Please help.if i want to make a new melee enemy,i make a child from the melee enemy ok? I make a spider enemy everything good. But when i attack him there are moment that looses health from my attacks and other times that not loose.what can be the problem?
Hmm... not really sure, it could be anything 😅 I suggest adding some print statements in that flow and see what points it prints and where it fails
I want to ask where did you get the sound effects for the mage enemy ground smash attack? Any good websites recommendation?
Hey there, most sound effects I get from freesound.org/
@@AliElZoheiry thank you very much Ali, your youtube tutorials definitely help me so much to understand Unreal Engine as I started just like a month, hope more people can discover your channel.
You're very welcome @@tenvyyap9051 and thank you for the support 🙏☺️
At 42:35 how did you make the mesh spin in anim montage? i tried looking for a tutorial but couldn't find anything, Pls Help
Hey there, this wasn't done in engine, this was just done by editing the animation itself in Blender. I am not a 3D artist nor an animator, so I didn't add that part in the tutorial, but it was very simple, if I can do it, anyone can ;)
I just opened up the animation in blender, copied the last frame, rotated it multiple times and pasted it a few frames later to make the animation longer
@@AliElZoheiry you should’ve mentioned it in the vid before deleting the spin mesh 💀, but its alright no big deal.
You don't need to use blender, I simply moved the timeline to the base enemy for the spin, cast to base in bpc enemyattacks, start the timeline and let the base spin the mesh, then call stop timeline from the bpc enemy attacks on the stop spinning function, and go about it that way. The only thing is that you can't also use this spin, but u could fix that in other ways but I was lazy and didn't want to use this ability anyways on my own character.
Thank you for your tuts! I have a question about how to use the EQSresult in blueprint without using behavior tree?
You're welcome 🙏 There's a blueprint node you can use called "Run EQSQuery". This is an async node though, so you have to bind to it's finish execution task and get your result. Here's an example in this screenshot prnt.sc/yWUOyvwOYpZ8
@@AliElZoheiry Great thanks, why must bind the event?i just use the return value to get results but it seemed not working
@@PiPiCatStudio because it's an async function, meaning that it doesn't finish instantly and takes sometime, so you need to bind to the event that is dispatched when that time is done and the locations are ready
@@AliElZoheiry i see isee !!!great thanks!!!
hi, how did you made the spinning to be part of the spinning attack animation montage?
I just edited the animation in Blender, repeating the last frame for a few seconds and making it rotate, so now it's part of the animation itself
@@AliElZoheiry can i just use the spin functionality we did in the spinning attack tutorial
🙏🤗👋☺️😊🐱🙂
Please make a boss fight like souls games
I'll try 🙏
ما عندك قناه عربيه
Thank you for your comment! I appreciate your interest. I'm currently focused on providing content in English, but I appreciate your feedback.
thank you so much
You're very welcome 🤗