Тёмный

Smart Enemy AI | (Part 4: EQS) | Tutorial in Unreal Engine 5 (UE5) 

Ali Elzoheiry
Подписаться 29 тыс.
Просмотров 52 тыс.
50% 1

In this Unreal Engine Game development Tutorial you will learn the following:
- EQS: How to create Environment Queries to position your AI in a more advanced and smart way
- Run EQS: How to run the EQS in your behavior tree
- Strafing: How to make the enemy AI strafe around the player using the EQS
- Taking Cover: How to make the enemy AI find cover where the player can't see them
Link to my Patreon (Thank you for your support)
/ alizoh
Link to part 1 of the "Smart Enemy AI" tutorial:
• Smart Enemy AI | (Part...
Link to the "Damage System" tutorial:
• How to Build a Combat ...
Link to the "Projectile System" tutorial:
• How to Shoot Projectil...
Link to my "AOE Damage & Healing" tutorial:
• How to do AOE damage a...
About me:
I've been learning game development for over a year now, I do have a background in software engineering, but I've always wanted to create my own game.
I am currently working on this 3rd person action adventure game as a hobby, but I am also trying to build a community, thus I am creating RU-vid tutorials to find others who are interested in game development and design.
If you are interested in learning more or if you are interested in working together, please let me know in the comments.
Join my Discord server to chat and mingle with the community
/ discord
If you would like to support me on Patreon, you will get access to all the source code from every video I post as well as any custom assets that I create. Also I would be forever thankful to my early adopters
/ alizoh
Checkout my other tutorials on my channel:
/ @alielzoheiry
Chapters:
00:00 Outcome of this part
00:59 Recap of the last part
01:36 Animation Setup
04:49 Explanation of the EQS
06:06 Using Testing Pawn to Visualize the EQS
06:56 Continue Explanation of the EQS
09:39 Creating the Strafe EQS
14:46 Running the EQS in the Behavior Tree
17:16 First Test of the Strafe EQS
18:29 Fixing problems with the Strafe EQS
21:23 Testing the Fix
22:45 Combine Strafe with Attack
25:10 Ensuring the Enemy is Within Ideal Range From Player
42:28 Creating the FindCover EQS
48:44 FindCover Sequence in Behavior Tree
51:15 Next Up in Part 5
#unrealengine #unrealengine5 #ue5 #gamedev #smart #enemy #combat #AI #blueprint #tutorial #behavior #tree #perception #state

Игры

Опубликовано:

 

22 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 383   
@andrews8110
@andrews8110 4 месяца назад
Awesome tutorial as always. One thing I got stuck on for awhile that is not mentioned but done very quickly is at 31:37 he sets ideal range and attack target variables to instance editable which allows you to change the blackboard key values in the behavior tree. Took me a while to figure out why I was unable to change those values so I figured I'd mention it in case anyone else has the same problem.
@AliElZoheiry
@AliElZoheiry 4 месяца назад
Hey there, glad you found it helpful! and thanks for sharing your experience, hopefully it helps someone
@professoroake6107
@professoroake6107 2 месяца назад
thanks
@blacksage81
@blacksage81 Месяц назад
This just caught me, thanks for the save.
@KensynPortha
@KensynPortha Год назад
Just wanna say thank you man, this EQS part was exactly what I was wanting to learn. Thank you for the good content.
@AliElZoheiry
@AliElZoheiry Год назад
My pleasure, happy to hear you found it helpful
@Shizuma450
@Shizuma450 Год назад
Incredible tutorial quality. I'm truly amazed by the quality of the explanations. Maybe I'm not good at finding good tutorials on AI in unreal engine, because so far I haven't had any conclusive lessons. But now I feel really lucky to have come across your RU-vid channel. (Sorry to repeat myself, I know I have a similar comment in the part #3 before, but I'm so bluffed by the quality that I feel the need to express it haha) Thank you for taking the time to share your knowledge with us, in a pedagogical way and with a really excellent quality.
@AliElZoheiry
@AliElZoheiry Год назад
Thank you again Eurg for the support and kind words, It really makes me happy to hear that it is helping you, and feel free to repeat that anytime you like, it really motivates me
@mebessusn
@mebessusn 4 месяца назад
This is the most informative and thorough series on AI on youtube without question. It's well edited, you don't waste time, it's well-thought out and doesn't involve a bunch of rework in subsequent videos like some people end up doing. You cover best practices, you give tips when needed...you are just so helpful. Thank you for this. I plan to do all of this series and can't wait to see what you put out next.
@AliElZoheiry
@AliElZoheiry 4 месяца назад
Thank you so much for your kind words! I'm happy to hear that you found the series so helpful. I appreciate your support and look forward to bringing you more valuable content in the future!
@hendra_winata13
@hendra_winata13 Год назад
It's a great tutorial to understanding EQS and Behavior Tree together. Hardly understand other EQS tutorial until i found this one. Hope you can create more tutorial about Unreal Engine. Thanks for the content!
@AliElZoheiry
@AliElZoheiry Год назад
Thank you Hendra, Really happy that you found it useful and I will definitely continue with creating new tutorials
@BlenderYouko
@BlenderYouko 4 месяца назад
New week, new part of the series. Thank you for all this qualitative content. Won't forget to donate you once I got my first pay. Cheers
@AliElZoheiry
@AliElZoheiry 4 месяца назад
Hey, thanks for the kind words and support! I'm glad you're enjoying the series and finding it helpful. Looking forward to your continued support and good luck with your first paycheck! Cheers!
@twelvegrain1111
@twelvegrain1111 26 дней назад
This, truly, is a fantastic series. You're explanation is so well thought out and easy to follow, especially for someone like me who is just getting started. Between blackboards, AnimBPs, AI states, EQS, there are so many ways to get lost and overwhelmed when trying to follow along with the logic. You are making this possible to understand. I'd be totally lost without this series. Thank you, many time over!
@AliElZoheiry
@AliElZoheiry 17 дней назад
Thank you so much for your kind words! I'm thrilled to hear that you're finding the series helpful and that it's making the learning process more approachable. Your support means a lot, and I'm glad I can help you navigate through these complex concepts. Keep up the great work!
@scienceandtorah7668
@scienceandtorah7668 27 дней назад
I've been really enjoying the tutorials. The thing I like about them is that you explain everything very well, unlike some other tutorials that don't really explain what they're doing in their code. Keep up the good work!
@AliElZoheiry
@AliElZoheiry 17 дней назад
I'm so glad to hear you've been enjoying the tutorials! That's exactly what I aim for - to explain everything clearly. Thanks for the support and encouragement! 🙏
@user-pn3ut7rw6c
@user-pn3ut7rw6c 5 месяцев назад
These are the greatest AI tutorials on youtube. Thank you.
@AliElZoheiry
@AliElZoheiry 5 месяцев назад
Thank you for your kind words! I'm glad you found the tutorials helpful. Happy to help!
@HusmanGames
@HusmanGames 5 месяцев назад
Another one, damn feels good to get these long videos done, appreciate the great content!
@AliElZoheiry
@AliElZoheiry 5 месяцев назад
And I appreciate you for watching and commenting. Really happy that you're finding this helpful 🙏
@tomerhertz8502
@tomerhertz8502 7 месяцев назад
another AMazing tutorial from Ali, great content & information...and you deliver it with in such a way, that everything is explained in great detail !!!
@AliElZoheiry
@AliElZoheiry 7 месяцев назад
Thanks a million Tom! I really appreciate you 🙏
@ericwoot2
@ericwoot2 8 месяцев назад
These are the greatest AI tutorials on youtube
@AliElZoheiry
@AliElZoheiry 8 месяцев назад
Wow, thank you for saying that. I appreciate you 😊🙏
@MrBontA-cs1ue
@MrBontA-cs1ue 4 месяца назад
I love how you explained this, awesome tutorial!
@AliElZoheiry
@AliElZoheiry 4 месяца назад
Thank you for your positive feedback! I'm glad you found the tutorial helpful :)
@Moridagnir.G.P
@Moridagnir.G.P 2 месяца назад
yet again great video! Something that people can do is add in a Tester Actor, which I added in a bool to allow easy testing, just toggle the instance editable. Then GetActorOfClass TesterActor, grab the bool value for Testing, then use that in a branch to either print and display the EQS markers, or to real AIC to player. Very simple but stops you having to reopen the file and reconfig it every time. **EDIT** This is for inside the EQS_Context_AttackTarget class :)
@AliElZoheiry
@AliElZoheiry 2 месяца назад
Hey, thanks for sharing your tip! It's always great to find ways to streamline the testing process. Keep up the good work! 🙌
@RhyzzG
@RhyzzG Месяц назад
Loving this so far!
@AliElZoheiry
@AliElZoheiry 28 дней назад
Glad to hear you're enjoying it! Thanks for the feedback 🙏
@cliffianson4146
@cliffianson4146 Год назад
Brilliant, been looking forward to this.😊
@AliElZoheiry
@AliElZoheiry Год назад
Hope you enjoyed it!
@deltacake3809
@deltacake3809 2 месяца назад
Another great tutorial, cant wait to implement the knowledge to my game
@AliElZoheiry
@AliElZoheiry 2 месяца назад
And thank you for watching and for all the comments. I really appreciate it
@Storypaintings
@Storypaintings 18 дней назад
This has helped me a lot! Thank you so much for your effort ❤ This is all really well explained.
@AliElZoheiry
@AliElZoheiry 17 дней назад
I'm thrilled to hear that this video has been helpful for you. Thank you for your kind words and glad you found it well explained! 😊
@beppolaut605
@beppolaut605 8 месяцев назад
Hey Ali, good Video. And if you play around with the context height offset and your testing EQS is higher as the player, you'll see the enemy is running to a place with higher Cover.
@AliElZoheiry
@AliElZoheiry 8 месяцев назад
Thank you, glad you liked it 🙏☺️
@g0dk1ller123
@g0dk1ller123 10 месяцев назад
I don't know if I missed something in the video or if this is later adressed but I was constantly getting a runtime error: "Blueprint Runtime Error: "Accessed None trying to read property CallFunc_GetBlackboardValueAsActor_ReturnValue". Node: Return Node Graph: PerformConditionCheckAI Function: Perform Condition Check AI Blueprint: BTD_IsWithinIdealRange" in the decorator function. I found out this was happening because the enemy at the beggining wasn't seeing me so the value of Attack Target would be null when the node was being called thus printing out the above error constantly. I fixed it by simply adding an Is Valid node to determine if the value of the Attack Target variable is a valid one or not and that pretty much fixed the issue. Amazing series by the way! I've been learning a lot regarding AI in Unreal Engine and this has been especially helpful for me since I'm changing engines from Unity (you you probably know why 😅) .
@AliElZoheiry
@AliElZoheiry 10 месяцев назад
Hey, glad you’re finding this series useful so far, and indeed I have an idea why you’re switching from Unity :D I’m not sure why you’re facing the null pointer, since the AttackTarget should always be valid if the enemy is in an attacking state, but nonetheless it’s always good to add validation checks anyway
@TheVorlecGame
@TheVorlecGame 8 месяцев назад
Hey man, where did you place the IS VALID NODE? im having the same issue
@g0dk1ller123
@g0dk1ller123 8 месяцев назад
@@TheVorlecGame Sorry for the late answer. I basically went into "Perform Condition Check AI" decorator function and placed a "Is Valid" node connected to the "Get Blackboard Value as Actor" node and then to the return node.
@brianworden7022
@brianworden7022 6 месяцев назад
​@@g0dk1ller123Thanks, I also was having that issue.
@misfire8771
@misfire8771 5 месяцев назад
thankyou, this error has been killing me
@garyeponge
@garyeponge Месяц назад
Awsome tutorial as usual!!
@AliElZoheiry
@AliElZoheiry Месяц назад
Thank you so much! I'm glad you found it helpful 🙏
@JonWith1n
@JonWith1n 2 месяца назад
Thank you, I can't believe this is free, best UE tutorials on youtube I think (or at least easy top 3 ... maybe there is some great stuff out here I don't know about yet ^^)
@AliElZoheiry
@AliElZoheiry 2 месяца назад
Thank you so much for your kind words! I'm really glad you find the tutorials helpful. Your support means a lot to me!
@InnerspaceX
@InnerspaceX Год назад
Another great part. Thank you!
@AliElZoheiry
@AliElZoheiry Год назад
Thank you for the continued support Imr! Really happy you enjoyed it
@treetime6766
@treetime6766 Год назад
i just LOVE youre content please continue this series !
@AliElZoheiry
@AliElZoheiry Год назад
Thank you treetime, glad you found it helpful. I'll surely continue the series
@treetime6766
@treetime6766 Год назад
@@AliElZoheiry THX SO MUCH FOR CONTINUING I LOVE THE SERIES
@matka5130
@matka5130 7 месяцев назад
Great stuff as always...Just confirming everything works...Thanks
@AliElZoheiry
@AliElZoheiry 7 месяцев назад
You're welcome Matka 🙏 thank you for watching ☺️
@Wisco-Titan
@Wisco-Titan Месяц назад
Well thanks for the tutorials so far, they've been great! Not sure doing this one would be worth it until I learn animations so I shall be back at some point.
@AliElZoheiry
@AliElZoheiry Месяц назад
You're very welcome! I'm glad you found the tutorials helpful. Take your time with learning animations, and feel free to return whenever you're ready to dive into this topic!
@kellowattentertainment
@kellowattentertainment 11 месяцев назад
Alright, so I ended up fixing the issue. In the video, you mentioned that the context offset should be zero because it doesn't do anything. However, when I ran the debugger with the Apostrophe key and Numpad 3 on the keyboard, I realized that with the context offset at zero, for some reason the engine was showing the AI that the best place to be is where he was standing already which was right before the player, so I added 200 to the context offset, and now the engine was showing the player that the best place to be is behind the wall so the AI now goes behind the wall when he sees the player. Issue resolved. Still, I wouldn't have learned any of this without your tutorials, so you are awesome. Thank you.
@AliElZoheiry
@AliElZoheiry 11 месяцев назад
Great to hear that it's fixed! For reference, the context height adds to the z axis of the context of your query, and item height adds to the z axis of the point which the trace is being drawn towards
@dustanschutte8724
@dustanschutte8724 10 месяцев назад
Your a Legend, was stuck with the same issue. Thanks
@mathieuvandenbremt2724
@mathieuvandenbremt2724 5 месяцев назад
5 month later and you're still saving people, i was stuck until i saw your comment
@kellowattentertainment
@kellowattentertainment 5 месяцев назад
​@@mathieuvandenbremt2724 You're welcome. It's a good thing you read the comments lol.
@user-wb6ue6qc3w
@user-wb6ue6qc3w 2 месяца назад
I think I'm having the same issue -- what context offset is this referring to?
@user-do3zr1it5v
@user-do3zr1it5v 7 месяцев назад
Thank you so much for making these great tutorials❤
@AliElZoheiry
@AliElZoheiry 7 месяцев назад
Glad you like them! Thank you for watching 🙏
@itsroachtime5243
@itsroachtime5243 7 месяцев назад
I'll recommed you to all my UE friends! Thank you and happy coming Christmas!))))
@AliElZoheiry
@AliElZoheiry 7 месяцев назад
I really appreciate that. Thank you and happy Christmas 🙏
@oerealrap
@oerealrap 11 месяцев назад
bro ur a genious the way you teach things and make it so easy to understand ur approuch to game Ai is insane bro so good man have u released any games i would be real keen to play one
@AliElZoheiry
@AliElZoheiry 11 месяцев назад
Thank you so much 😀 I really appreciate your kind words. I am currently working on a game but I haven't released anything yet, I will definitely let you know when I do
@oerealrap
@oerealrap 11 месяцев назад
Yesssss definitely bro keen as aha I'll help spread the word hear in aus bro
@unrealdevop
@unrealdevop 4 месяца назад
Bro, your content is hands down the best Ai content available. Very well explained, and very well executed. Thanks for the videos Note: You can also setup a 'Blueprint Interface' to pass that 'actor variable' and have that variable be 'instance editable' so that you can simple select the targets you want from that instance of the Test Pawn and at least for me it works. (Seems to be an update bug where you have to change it back to Querier and then back to your custom one for it to update in the viewport and show those points)
@AliElZoheiry
@AliElZoheiry 4 месяца назад
Hey there! Really glad you found it useful, and thanks for your support. That’s a great idea with the testing pawn, I’ll definitely do that in the future
@unrealdevop
@unrealdevop 4 месяца назад
@@AliElZoheiry yeah I did that but later realized that my Ai controller was going to be the one with the target reference so really you would still need two branches so it really just prevents you from needing to cast to it.
@blueslothvfx7174
@blueslothvfx7174 8 месяцев назад
Thank you so much for the tutorials, I’ve learnt so much from you in the past few days! I was wondering if you have any plans on covering some sort of water AI or water navigation, it’s something I’m really struggling with right now and I couldn’t find a good tutorial that covers this aspect at all. Cheers!
@AliElZoheiry
@AliElZoheiry 8 месяцев назад
Hey, im glad you found this content useful 😊🙏 I didn't plan on making any water AI, but I imagine it's quite similar to flying AI, I might be covering something like that in the future, but I'll add your suggestion to my list 👍
@sajjadmirshabi
@sajjadmirshabi Год назад
It was amazing, Nice tutorial thanks Ali
@AliElZoheiry
@AliElZoheiry Год назад
You're welcome Sajjad, and thank you for the support 🙏
@sajjadmirshabi
@sajjadmirshabi Год назад
@@AliElZoheiry I'm really happy you are growing so fast, I'm awaiting for the next tutorials, can you please add navigation linkers to the project as well? Which makes an AI be able to climb up a wall or climb down etc. It would be awesome
@YS-tw2ce
@YS-tw2ce 5 месяцев назад
I am a beginner. You have led the lectures well with the learners in mind so that even beginners can easily follow lectures 1 to 3. While listening to your lectures, I thought you made really good tutorial lectures. However, I was a little disappointed that the animation settings part of this lecture was missing. I understand that it is missing because it is an AI lecture. But I liked learning by following the directions you taught. I watched a lot of completed projects and other paid lectures, but even if I received a completed project, it was often of no use because I didn't know how it was created. I wanted to understand the learning process one by one and assemble it, but this lecture left something to be desired. You can sponsor me and receive the completed project, but I am so sorry that I have to move on from the project that I am very attached to and move on to the completed project, which I have been following through your lectures and taking notes to help me understand. I think even beginners like me will learn a lot if you proceed without any omitted parts from next time. I am writing this from the perspective of a beginner who is learning. Thank you for creating a great lecture. You've done a great job up to this point :) Moving on to the next video :D Thank you for the tutorial!
@AliElZoheiry
@AliElZoheiry 5 месяцев назад
Hey there! I really appreciate your feedback and I'm glad to hear that you've found the lectures helpful. I understand your disappointment about the omitted parts, and I will definitely take your feedback into account for future tutorials. I strive to make the learning process as comprehensive as possible, and your input is valuable in helping me achieve that goal. Thank you for your support and I hope the next videos prove to be as helpful as the previous ones. Keep learning and enjoying the process! 😊
@YS-tw2ce
@YS-tw2ce 5 месяцев назад
@@AliElZoheiry Thank you for understanding my opinion :) Currently, I found another tutorial and solved the missing part, and then I'm studying by copying all your tutorials. You proceed by explaining the tutorial really well so that the learners understand it well. Best tutorial I've ever seen! I look forward to more tutorials in the future :D
@josephzhou5026
@josephzhou5026 Год назад
Awesome tutorial, thank you!
@AliElZoheiry
@AliElZoheiry Год назад
Glad it was helpful!
@erksp7961
@erksp7961 16 дней назад
Remember to make the BTD_IsWithinIdealRange blackboard variable "IdealRange" instance editable. Great tutorial as always!
@AliElZoheiry
@AliElZoheiry 13 дней назад
I'm glad you enjoyed the tutorial and found it helpful. 🙏 Thanks for sharing the tips ;)
@erksp7961
@erksp7961 13 дней назад
@@AliElZoheiry It helps the AI;))
@KvltWitch
@KvltWitch 6 месяцев назад
Another great tutorial! Thanks
@AliElZoheiry
@AliElZoheiry 6 месяцев назад
You're welcome! Glad you enjoyed it
@user-xu6jj1sw7q
@user-xu6jj1sw7q 29 дней назад
Awesome tutorial and series. Just FYI I spent hours on this EQS find cover on UE 5.4.. while the testing pawn was fine with the query my IA didn't like it, just stayed there on starting point. all fixed after i set item and context offset to 0. in the end i resolved with '60' which i think is a good compromise for now.
@AliElZoheiry
@AliElZoheiry 28 дней назад
Glad to hear you were able to resolve the issue! Setting the item and context offset can make a big difference in how the AI interprets the query. Sounds like you found a good compromise for now. Keep up the great work!
@johnp3103
@johnp3103 3 месяца назад
Hi Ali. Firstly, thank you for being so generous with your time and sharing your knowledge in such an easy to understand, and yet very complete way. As many others have stated, these tutorials are well thought-out, and your teaching style is thorough and easy to follow. I am working through this series with a view to two types of enemies... one is a bipedal enemy, but the other is a flying enemy (like an attack drone). Navmesh does not seem to work well with flying enemies. Is this something you will be covering in future? Or could i encourage you to develop some content for flying enemies? 😉
@AliElZoheiry
@AliElZoheiry 3 месяца назад
Hey there, thank you for your kind words and feedback, I really appreciate it! Your suggestion is noted, and I'll definitely consider creating content for flying enemies in the future. Keep an eye out for it!
@user-rr8jc6is2d
@user-rr8jc6is2d 4 месяца назад
I Reeeeeeeaaaaaallly love this tutorial. LITERALLLY THE BEST
@AliElZoheiry
@AliElZoheiry 4 месяца назад
Thank you so much for your kind words! I'm really glad you enjoyed the tutorial and found it helpful!
@AdamWoolnough1981
@AdamWoolnough1981 3 месяца назад
i found context height offset was good for me, it could see over half height walls but not directly behind the wall where a player might be crouching
@AliElZoheiry
@AliElZoheiry 3 месяца назад
I'm glad to hear that the context height offset worked well for you! It's great for providing visibility over walls while still allowing for strategic gameplay.
@crs11becausecrs10wastaken
@crs11becausecrs10wastaken Месяц назад
Great series man, delving into areas of the engine I had yet touched upon. One thing that did break for me, is when I deleted the move to actor node in the attack sequence and replaced it with move to ideal range node, the sequence breaks. It quickly skips over the move to ideal range node as if the enemy AI is already in the attack radious of 150 and does the attack montage, no matter what distance it is from my character. I've gone over this video five times now, step by step, and this problem continues to persist.
@AliElZoheiry
@AliElZoheiry Месяц назад
If it skips over the node instead of failing on it, that means the node is succeeding, so if it isn't doing the expected behavior, you might want to see why it reaches the success function without moving
@crs11becausecrs10wastaken
@crs11becausecrs10wastaken Месяц назад
@@AliElZoheiry After two days of exhaustingly going over my node structure, I just found the issue. On the decorator, the execution line was coming out of the execution out pin of the node instead of the success out pin of the node. >.< Sometimes blueprint muscle memory works against you. Thank you so much for taking the time to reply.
@Zoykzmc
@Zoykzmc 6 месяцев назад
Wow, this tutorial is great! One question, how would I go about having the strafe always be in one direction? Since both points would be at equal distance is there a way to prefer one side?
@AliElZoheiry
@AliElZoheiry 6 месяцев назад
Glad you enjoyed it! I haven't tested strafing in a single direction, but theoretically, you can add a dot product test from the enemy to the player to filter out all points facing a certain direction
@hype._.
@hype._. Месяц назад
Thank you for the video! I have a question at 29:26, is it okay if I don't connect anything to the 'target' in the 'Get Ideal Range' function?
@AliElZoheiry
@AliElZoheiry Месяц назад
Hey there! You need to connect the correct actor to the Target of the "GetIdealRange" function, because if you don't connect anything it will use "Self" which is a reference to the class you are currently in (Which is the AIC_EnemyBase) so you will be calling "GetIdealRange" on the AI controlller that doesn't implement the interface, thus will always return 'null'
@occy999
@occy999 10 месяцев назад
So great tutorial even if i did spend twice as long trying to work out why it wasnt working, getting super annoyed, restarting and eventually realising that i needed to check the box to inverse condition on BTD_isWithinIdealRange... sometimes i hate computers lol
@AliElZoheiry
@AliElZoheiry 10 месяцев назад
Thank you, glad you liked it. Hahah these small issues can be the most annoying indeed, but the more you make these mistakes, the less likely you are to make them in the future, so that's progress ;)
@user-xj2pf4pl9p
@user-xj2pf4pl9p 6 месяцев назад
very helpful as well, ty
@AliElZoheiry
@AliElZoheiry 6 месяцев назад
Hey there! I'm glad to hear that you found it helpful. Thank you for watching and for your kind words!
@wertyqwer7986
@wertyqwer7986 4 месяца назад
Hey just wanted to say great video! Your videos have been of tremendous help to me. I just had one question for the find cover eqs. In my game I do shots from the player as a line trace on the visibility channel and when i try to use the find cover eqs on an ai that is supposed to be shot by the player. The ai chooses the place right behind himself which is the closest out of sight spot. Do you have any workarounds for this? Thank you for everything. Keep up the good work!
@AliElZoheiry
@AliElZoheiry 4 месяца назад
Hey! Thank you for the kind words and I'm glad my videos have been helpful to you. What I understand is that you're trying to have the enemy walk a certain path to go behind the player (obviously by not walking infront of the player), that you can't do with EQS, because EQS can only give you the location where you need to go (and you can get a location behind the player easily using the "dot test" in the EQS), but then to get the enemy to take a specific path to get there, then you need to play around with custom navigation, or dynamic nav mesh modifiers
@oliver7garcia31
@oliver7garcia31 5 месяцев назад
Thank you very much for everything you do so well
@AliElZoheiry
@AliElZoheiry 5 месяцев назад
You're very welcome! I'm truly grateful for your kind words and support. Thank you for watching and commenting 🙏
@sjrulz14
@sjrulz14 Год назад
Great tutorial 😍
@AliElZoheiry
@AliElZoheiry Год назад
Thank you! Glad you enjoyed it and hope you found it useful
@Arctan95
@Arctan95 Месяц назад
@41:30 interestingly, the behaviour I'm seeing is the enemy runs up, attacks and THEN begins strafing. As far as I can tell our networks are the same and logically I can see why mine is doing that, I don't understand why your unit would start strafing before the end of the attack player sequence? There's no abort that would affect it and the move to ideal range eventually returns success, the only reason it eventually moves onto the strafe is because of the cooldown right? Which returns false, dropping us out of the AttackPlayer Sequence. Why is yours failing right after the custom move to node we wrote?
@AliElZoheiry
@AliElZoheiry 28 дней назад
The only thing I can think of is the cooldown node working differently for different versions of Unreal. So if you're not on 5.2, that may be a reason
@osworil3914
@osworil3914 3 месяца назад
Hello i have a problem on the animation and blend by bool. my problem is that it does not detect the focus path and does not set the boolean variable which changes the animation to strafe can you know how to fix that ? Thank
@AliElZoheiry
@AliElZoheiry 3 месяца назад
Make sure you correctly created the "IsFocusing" variable I showed at 03:25
@Restart-Gaming
@Restart-Gaming 5 месяцев назад
In the prosses of making my own game thanks to you question what works better or am i missing something EQS or navigation invokers is there a difference?
@AliElZoheiry
@AliElZoheiry 5 месяцев назад
Hey there, they are actually quite different. Navigation invokers are mainly to avoid using a nav mesh, because it can be difficult for very big levels, where as EQS is independent of navigation, it can be used even without a navmesh to collect information about the environment
@Xsabino1
@Xsabino1 11 месяцев назад
perfeto meu querido. que aula linda
@AliElZoheiry
@AliElZoheiry 11 месяцев назад
Thank you 🙏 really glad you enjoyed it
@WiseThoughts3
@WiseThoughts3 7 месяцев назад
hi how did you made the blend space? cuz im not expierenced in animation stuff
@AliElZoheiry
@AliElZoheiry 7 месяцев назад
Hey, it's quite simple, you just drag and drop animations on your blendspace depending on the speed and rotation (which will be the 2 axis of your blendspace) just search for any tutorials on how to create a 2D blendspace locomotion/strafe
@ciberus
@ciberus 6 месяцев назад
Thanks a lot, great tutorial
@AliElZoheiry
@AliElZoheiry 6 месяцев назад
You're welcome! Glad you enjoyed it 🙏
@hernanferreira1537
@hernanferreira1537 9 месяцев назад
Thanks bro! Really useful
@AliElZoheiry
@AliElZoheiry 9 месяцев назад
You're welcome Hernan, glad you liked it 🙏
@KerryCronic
@KerryCronic 2 месяца назад
for anyone who may run into this problem in the future. I found some issues that could occur with the find cover EQS. I had my enemy ai set to blocking visibility in its collision which was making the EQS grid consider it's current location as the single best location. Changed the visibility collision to overlap and it fixed the issue. Spent hours trying to figure this one out cause my enemy wasn't running away xD
@AliElZoheiry
@AliElZoheiry 2 месяца назад
Hey, thanks for sharing this! I'm sure it'll be helpful to others who might encounter a similar issue in the future 😄
@handoffear4262
@handoffear4262 9 месяцев назад
@AliElZoheiry I have something weird happening. After adding the Ideal Range branch my enemy now runs up to me and attacks without the weapon, then draws the sword and starts strafing. I downloaded the project file from your Patreon and can't see what I've missed.
@AliElZoheiry
@AliElZoheiry 9 месяцев назад
Hey, I can't really tell what the problem is just from your description. But feel free to join the Discord server, there's a channel where people ask for help there
@billysatkowski6938
@billysatkowski6938 Год назад
Getting a floating motion (on ground) that wonders ai off course when rotating around player. Ai stuck in move to player in combat state? Any clue why this is happening?
@AliElZoheiry
@AliElZoheiry Год назад
Hey Billy, I'm not sure what the problem is, it could be a number of things, make sure to debug your behavior tree while the game is running and try adding print/debug statements in your tasks/events to check the values you expect to be there, and narrow down the problem from there
@ravenclaw3613
@ravenclaw3613 2 месяца назад
can someone help me with the blendspace animation since i am trying to make a custom character an enemy and am findind it difficult to understand the application of blendspace and creation of the blendspace since i am new to UE
@AliElZoheiry
@AliElZoheiry 2 месяца назад
Hey there, in my new series i go over the creation of a blendspace here. Check it out ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-se8gkySUfi4.htmlsi=_UPZnPPrYLK24LaS&t=319
@kmtsvetanov
@kmtsvetanov 2 часа назад
Is there an option to do something on EQS fail (when there are no acceptable points) ?
@muntasirdawlut
@muntasirdawlut 8 месяцев назад
For Those whose Enemy is not going to hide at the 50:00 I've found out that the issue is the line trace channel in the EQS_FIndCover, Click on the Trace and you will see channel, normally by default it's selecting VISIBILITY by default. Now click on you enemy and ignore the visibility channel Under collision and everything should work, normally if you have an enemy the visibility channel is not much of a use because you will create custom trace channel to make your enemy more receptive to various trace that may occur in the game such as getting Hits etc. hope this helps Someone facing this issue
@AliElZoheiry
@AliElZoheiry 8 месяцев назад
Very good addition, thank you 🙏
@Cjoudan
@Cjoudan 6 месяцев назад
didn't work for me, all values for the find cover EQS are 0.00.
@muntasirdawlut
@muntasirdawlut 6 месяцев назад
make sure you have set those value in the EQS correctly like Ali did@@Cjoudan
@Cjoudan
@Cjoudan 6 месяцев назад
@@muntasirdawlut I meant nodes on the preview area. I have the same EQS values in editor.
@elhasaman
@elhasaman 2 месяца назад
Youre the goat! Worked for me
@Kykyhaaa
@Kykyhaaa Месяц назад
Thanks for your video. But I have some spoblem. I don't know why, but my enemy don't whant to hide if I choose test trase as contex_AttackTarget. It's what you chose in the video, but for me working only Contex_Querier.
@AliElZoheiry
@AliElZoheiry Месяц назад
We choose the attack Target because we are doing a trace from the querier (the enemy) to the attack target (the player) and checking if we hit anything in between. If we do, that means there is something between the enemy and the player and we can hide there. If you do from the querier to the querier, then you are doing a trace from yourself to yourself, which as you can tell, doesn't do much. if setting AttackTarget is not working, then I suggest looking at the "Collision settings" for both the player and enemy "Mesh", they should both "Ignore" the "Visibility" channel. Otherwise the line trace will think that hitting a player is a hiding spot
@rezaj.mousavi7310
@rezaj.mousavi7310 Год назад
hi I have a question , do you know how can I grab enemy and then use that enemy ? for example I grab a drone and use that enemy's gun for firing to other enemy? If you know, would you like to make a video tutorial for understanding subject?
@AliElZoheiry
@AliElZoheiry Год назад
Very interesting idea, I know how to implement that indeed, it's not simple to get it to look good because it requires aligned animations from both the player and the enemy, but the functionality itself is not very difficult to implement, I'll consider it for sure ;)
@muhammadammar8507
@muhammadammar8507 Год назад
Thanks man for this amazing tutorial, literally couldn't find it anywhere, I have an issue can we make AI to use specific actors for cover to crouch for cover then fire , or can we ignore actors in level if they reach maximum height.
@AliElZoheiry
@AliElZoheiry Год назад
You're very welcome man, glad you found it helpful. And if you want your AI to search for specific actors, then in your EQS query, you can do a query for specific actor types instead of just a grid of points
@muhammadammar8507
@muhammadammar8507 Год назад
​@@AliElZoheiry thanks bro , it worked
@thomasrodriguez7587
@thomasrodriguez7587 8 месяцев назад
is there a way you can make the transition between the walking to idle animation smoother?
@AliElZoheiry
@AliElZoheiry 8 месяцев назад
You can ay around with the blend duration between states in your anim graph
@hidezen387
@hidezen387 Месяц назад
Hey, thank you for your AI series! I don't really know why but I have issue with IsWithinIdealRange, I did every step from your video but I don't have Ideal Range option in details panel. What can be the problem?
@hidezen387
@hidezen387 Месяц назад
Nevermind, I forgot to set blackboard key selector variables as public :D
@AliElZoheiry
@AliElZoheiry Месяц назад
Hey, glad you figured it out 🙏
@edgarbartolomeu551
@edgarbartolomeu551 3 месяца назад
Thank you very much for the great tutorials. I have 3 issues: 1- my AI enemy circles my player but doesn't do the strafe animation, just normal walk. 2- The AI akes cover but when I come around it doesn't run away 2 - The AI takes cover and then comes back to attack and doesn't get cover again. Any idea on what I may have done wrong?
@AliElZoheiry
@AliElZoheiry 3 месяца назад
Hey there, thanks for your comment! To properly debug your issue, I recommend having the behavior tree open while the game is running and see if it's following the branches as you'd expect, and where it goes wrong. I also recommend adding lots of print statements and break points to follow the execution of the code. That's the only way to figure out what's happening. I have a video on how to fix bugs on my channel if you want to learn more about the process of finding and fixing bugs
@HandsOnKnowledge
@HandsOnKnowledge 10 месяцев назад
I have run into an issue and can't seem to solve it maybe you can help? I added the AttackRadius and DefendRadius in blackboard and the value was being set by the interface just like you showed but what ends up happening is that my enemy character never seems to leave the "isWithinIdealRange" Sequence and gets stuck there and then switches between Attack and isWithinIdealRange sequence and never seems to get to Strafing? Could you help me with that?
@HandsOnKnowledge
@HandsOnKnowledge 10 месяцев назад
Wow as soon as I posted this comment I went back to look at the code while the game is paused and on the bottom right hand side you can see the values of the blackboard variables and I saw AttackRadius and DefendRadius were both 0 then I went to AIC_Enemy_Base and saw that I forgot to connect the SetValueAsFloat functions after GetIdealRange function, silly me :)
@HandsOnKnowledge
@HandsOnKnowledge 10 месяцев назад
One question I would like to ask that I couldn't figure out is that when I run EQS it displays an error in debug that says "Failed test: Distance: to Querier (between 150 and 500, prefer greater 1x). "Value 633.770996 is out of range". Why am I getting this error?
@AliElZoheiry
@AliElZoheiry 10 месяцев назад
Hmm.. not really sure why you're seeing this. Where are you seeing it exactly?
@jhonsommer9330
@jhonsommer9330 24 дня назад
Thanks for the tutorial. I had the Problem that my AI still moved to the acceptable Radius before strafing even though the Branch it self was aborted because the distance was to big. What worked for me was on the Event Receive Abort AI use the Stop Movement Node. Then the AI really stops how i wanted. I have a different Behavior tree so that's maybe why it didn't work like in the tutorial
@AliElZoheiry
@AliElZoheiry 17 дней назад
Thank you for sharing your solution! It's great to hear how you adapted the tutorial to fit your specific behavior tree. Keep up the good work! 🙏
@samo4209
@samo4209 День назад
how do i make the blend space
@songwonseok2137
@songwonseok2137 10 месяцев назад
Hello Ali I have a question regarding the Behavior Tree. For the BTD_ISwithinIDeal Range, on details there is no Default button popping up my screen for some reason. Do you know any reason why that is so? As Always Thank you for your tutorials your awesome!
@songwonseok2137
@songwonseok2137 10 месяцев назад
Hi now I see that it isn't in detail but the default option is on the property matrix option on the upper right button in the detail tab, if I implement the changes in the property matrix will it still work?
@AliElZoheiry
@AliElZoheiry 10 месяцев назад
Hey, I'm not sure what "Default" button you are referring to. But feel free to join the Discord server and ask your question there (Link in the description)
@songwonseok2137
@songwonseok2137 10 месяцев назад
@@AliElZoheiry Thank you Very much! Fortunately I solved the problem that I was having I just forgot to make it visible xD btw is there any way to remove the health bar of the enemy after they die? Thank you as always!
@nicbleu
@nicbleu 10 месяцев назад
don't forget to click on the eye for the variable
@user-dt4uh4np9u
@user-dt4uh4np9u 5 месяцев назад
선생님은 최고야!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@AliElZoheiry
@AliElZoheiry 5 месяцев назад
"너무 감사합니다! 도움이 되어서 기쁩니다. 고맙습니다!" 🙏
@MrMeat570
@MrMeat570 3 месяца назад
Hey, i have a problem and am hoping u can respond but when ever my enemy goes into strafing instead of playing the left and right strafe animations it plays the walk backward instead but if i remove the walk backward animation from the blendspace then it plays the strafing correctly, how can i use the backward animation and play the correct anims. btw ur tutorials r amazing
@AliElZoheiry
@AliElZoheiry 3 месяца назад
Hey there MrMeat. Make sure you setup your strafe blendspace correct, where the walk back animation is set when the direction -180 and 180. In my latest tutorial I go over how to create a blendspace from scratch ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-se8gkySUfi4.html Check it out and make sure you're blendspace and direction variable are setup correctly
@MrMeat570
@MrMeat570 3 месяца назад
@@AliElZoheiry alright, thanks, will check it out
@DaddyDonskie
@DaddyDonskie 5 месяцев назад
Hi Ali, I'm a total noob so this might be a silly question: at 2:49 mark, in the Set Direction part, where did you get the "velocity" variable plugged in the Calculate Direction, is it the same as "Get Velocity" from Get Owning Actor? THANKS A LOT
@AliElZoheiry
@AliElZoheiry 5 месяцев назад
Hey there, not a silly question at all, it's not very clear in this video because I'm using the default Manny ABP, and this "Velocity" variable is indeed set based on a "Get Velocity" from the owning actor.
@DaddyDonskie
@DaddyDonskie 5 месяцев назад
@@AliElZoheiry Ah, I see, was scratching my head for a minute, thought I missed something in the previous videos 😆 Thanks a lot man! these tutorials are the best!
@alex-qn5xp
@alex-qn5xp 3 месяца назад
For some reason at 40:30 my ai moves to the world origin when performing BTTask_MoveToIdealRange in the attacking state, I have it set up the same as in the video so I'm not sure what isn't working. EDIT: The behaviour tree wasn't set up right after all. I had set attack target to attack radius, which caused the AI to not be able to find an actor and to move to the world origin.
@AliElZoheiry
@AliElZoheiry 3 месяца назад
Hey! Glad you fixed the issue 💪
@thanasisantonakoudis7353
@thanasisantonakoudis7353 Месяц назад
I loved spending an hour trying to learn blend space
@AliElZoheiry
@AliElZoheiry Месяц назад
If you are having trouble learning blendspaces, I explain it simply in this tutorial here ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-se8gkySUfi4.htmlsi=BnerrvG4Xlgh6FtA&t=322
@petersad64
@petersad64 4 месяца назад
Ali, I´m trying to make an enemy who sneak behind player, but I can´t figure out how to use EQS to make enemy walk to the back of the player.
@AliElZoheiry
@AliElZoheiry 4 месяца назад
If you're trying to have the enemy walk a certain path to go behind the player (obviously by not walking in front of the player), that you can't do with EQS, because EQS can only give you the location where you need to go (and you can get a location behind the player easily using the "dot test" in the EQS), but then to get the enemy to take a specific path to get there, then you need to play around with custom navigation, or dynamic nav mesh modifiers
@osmanbaba1485
@osmanbaba1485 4 месяца назад
Hi, Great stuff btw you rock. Quick Question do I need to create the Blend Space manually because when I download the stuff from Patreon and open the Blend Space it has no animations set
@Relentlessdiver
@Relentlessdiver 4 месяца назад
Hey, you have to download the animations that go along with the bland space. I downloaded all the animations just to save time in the future and it fixed that problem for me
@osmanbaba1485
@osmanbaba1485 4 месяца назад
I've downloaded the animations but still get same issue, is it possible this is because of the Engine versions differing? I'm currently using 5.3.2@@Relentlessdiver
@AliElZoheiry
@AliElZoheiry 4 месяца назад
Hey there! Everything should be working out of the box from Patreon, you don't need to recreate anything. Just make sure you are running the same engine version the project was made using (which is v5.2)
@V2dragon
@V2dragon Год назад
Somehow i get "Accessed None trying to read property CallFunc_GetAIController_ReturnValue" error in AnimBP. Anyone knows how to solve it?
@AliElZoheiry
@AliElZoheiry Год назад
This means that you are calling "GetAiController" on a "null" element, make sure that you are calling "GetOwningActor" first and call "GetAiController" on that. and also make sure you are calling this in the right palce (Which is in the "Event Blueprint Update Animation" Node in the Anim BP)
@davulpz6941
@davulpz6941 2 месяца назад
Hello there. I encounter a very weird issue. For some reason ( i did not change anything) my eqs points stopped showing. even in a very basic setup, aka grid only no tests its not showing anymore. Do you by any chance have any idea what could cause that? I tried all the common things such as checking projectsetting/editor preferences. All i did was close my project and restarted it today morning trying to follow ur tuts. so... like i said. NOTHING changed. xD
@AliElZoheiry
@AliElZoheiry Месяц назад
Hey there. Unfortunately I don't know what could have caused this, I never encountered it before :(
@oscblade1691
@oscblade1691 2 месяца назад
Hey Ali love the tutorials. Just I have a question, I have been in game development for a few years now I have a degree in game design. But I still find my self needing tutorials like these to make anything. I am curious how you learned this for this video did you watch tutorials and take notes? Are you just a programmer with a great understanding of code or did you put a few weeks of trial and error until you figured it out before making this? Because though I love these I don't want to be reliant on tutorials for my games code. Even though I can code simple things on my own these more complex systems end making me need to use others work to get my stuff running. Thanks in advance and sorry for the long message.
@AliElZoheiry
@AliElZoheiry 2 месяца назад
Hey there! I'm glad to hear that you're finding the tutorials helpful. Whether you are a beginner or experienced, learning from tutorials is a common and valuable practice for any software engineering discipline. Regarding how I learned. I do have a background as a software engineer, so I've been writing code for the past 12 years, but game development is fairly new for me (2+ years), and everything I learned was following RU-vid tutorials, watching GDC talks, talking to experienced game devs, attending meetups and tech talks, and just playing games also :D
@oscblade1691
@oscblade1691 2 месяца назад
@@AliElZoheiry awesome thanks for the reply. Ya I enjoy the tutorials and they help me understand the concepts of what goes into making them. But I always find myself drawing a blank when I try to build my own system without following along.
@Procedural_Minds
@Procedural_Minds 3 месяца назад
EQS is great, thanks for teaching this! Quick question - When my IsWithinRange is not inverted, the AI strafes but doesn't run to me. But when it is inverted like you have it, they'll chase me, but never start strafing. I have the IsWithinRange to be
@Procedural_Minds
@Procedural_Minds 3 месяца назад
I found the problem, I was plugging the distance check into the controller, instead of the pawn. It's the small details that always get ya.
@AliElZoheiry
@AliElZoheiry 3 месяца назад
Glad you're finding the EQS tutorial helpful! Great that you found the problem! Well done. Indeed it's always the small details, but they will become easier and easier to find as you encounter them more often
@occy999
@occy999 10 месяцев назад
Hey did you ever change the btd_movetoIdealRange after this in the tutorial series?
@AliElZoheiry
@AliElZoheiry 10 месяцев назад
Hmmm.. don't think I changed the decorator itself no, are you having issues with it?
@occy999
@occy999 10 месяцев назад
I think I may have not really paying attention and did it wrong when I was going through this tutorial, cause mine was different when I was checking it to bug fix it… so wanted to check if I did it wrong or it changes later
@moistieiswet
@moistieiswet 6 месяцев назад
Loving the tutorials! Though I am running into an issue with the behaviour trees at around 40:30 where the sequences with cooldowns are automatically failing on first try and waiting until the cooldown ends in order to play. I thought it wan an issue with aborting but I tried removing that and it's still the same, if I remove the cooldown it does play but of course repeats over and over. It didn't do this until after I added the BTT Move to Ideal Range, but I don't know why that would change it? Not sure what to do :(
@AliElZoheiry
@AliElZoheiry 6 месяцев назад
Hey, unfortunately I don't know what the issue is. I suggest joining the Discord server where we have a great community eager to help, you may find your answer there
@Renaiuss
@Renaiuss 2 месяца назад
InverseCondition True for Strafe > BTW_IsWithinIdealRange, its not True in default idk why, i checked it and it fixed that
@Da-Bolt
@Da-Bolt 2 месяца назад
sir why the player always chase me even im aout of eye sight range ??? i dont know if i miss any where can you reply me about that
@AliElZoheiry
@AliElZoheiry 2 месяца назад
Hey there, what you are referring to is additional functionality that is added in part 9, allowing the enemy to forget the player when they are out of range or line of sight
@freyaniczdigitalartist2303
@freyaniczdigitalartist2303 Год назад
These tutorials are great Ali! Hope you do lots more. Quick issue with the hiding enemy I am hoping you can help - I think as soon as they turn to hide, the state aborts and they don't finish the action. Any ideas why this is different from what you've done? I followed it exactly as best I could.
@AliElZoheiry
@AliElZoheiry Год назад
It sounds like the value of your decorator changes before the enemy is actually hidden, so try debugging the decorator and see when it returns false and true
@POPCORNGameMovia
@POPCORNGameMovia Год назад
@@AliElZoheiry ​ Been doing this for 16h stright :)) Same issues here, and the debugging states that the "The item selected #14 is invalid and returns false and was expecting true". I think is because of the line trace and the collisions we set on the actors in the level, just a guess. At least for me the valid points sometimes goes just in front of my character, not good :)) I am more of a visual learner than listener, I also changed the Generate Around Context on the "PontsGrid" from Query to AttackTarget. I will go with the flow for now and see if it will be better later (altho' is not the way to go but I need to feel some progression :)) )
@POPCORNGameMovia
@POPCORNGameMovia Год назад
@AliElzoheiry @freyaniczdigitalartist2303 So just after I wrote the comment below, I was messing with the last few options I had :)) So The setting are like this for me: - Points: Grid - Context is AttackTarget - Trace - Context is Querier but I unchecked the box "Trace From Context". This is the only way I managed to make it work. - All others (Pathfinder, Distance) Context is Querier All other setting are like in the video. Hope this helps someone who will see the video. Unreal Version used: 5.2
@Atl3m
@Atl3m Год назад
@@POPCORNGameMovia Works Better. must be a ue5.2 Thing . still not Perfect but Better it Works . no i can continue the sesion :) thanks alot
@freyaniczdigitalartist2303
@freyaniczdigitalartist2303 10 месяцев назад
@@AliElZoheiry Sorry I never got a notification for this reply - I actually went through this course again and got up to this point with the same issue. After a little debugging (not sure if this was the issue the first time) I found that the trace was being blocked where the enemy stood meaning the best/closest place to hide from the player was where he already was.
@sxcylla4438
@sxcylla4438 9 месяцев назад
Hey guys!! This is really a cool video very helpful..but I am facing an issue in the cover system. The AI hides at a point but If I chase the AI then again it moves back and crosses the player to reach another point. I dont want it to happen. I want the AI to move to the next point without crossing the player
@AliElZoheiry
@AliElZoheiry 9 месяцев назад
That's gonna be a bit tricky to do in this specific case, because the find cover EQS will choose the shortest path, which could sometimes be crossing the player and some other times not. So you'll have to keep playing around with the EQS to get your desired behavior
@alexpoc
@alexpoc 2 месяца назад
My eqs Find cover trace does not see behing the enemy so it will always choose to just go to the closes point in his back. what i'm doing wrong ?
@AliElZoheiry
@AliElZoheiry 2 месяца назад
It could be that the trace is hitting the enemy themselves. Make sure that the enemy Mesh collision settings are set to "ignore" on the "visibility" channel
@alexpoc
@alexpoc 2 месяца назад
@@AliElZoheiry that was it tank you verry much
@eddr6124
@eddr6124 4 месяца назад
Bro , suddenly EQS trace in FindCover stopped working for me. Its working good till path finding, as i add trace test, every dot turns blue, it was working fine till yesterday. Please help!!
@AliElZoheiry
@AliElZoheiry 4 месяца назад
Hey there, double check your trace settings and also the collision settings of the objects you are tracing to to make sure they are all the same as I have them. Hopefully that fixes it
@ZimMabu_GameDev.
@ZimMabu_GameDev. 10 месяцев назад
KING! THANKS!
@AliElZoheiry
@AliElZoheiry 10 месяцев назад
You're very welcome!
@zumat9586
@zumat9586 Год назад
Hey ALI, i have a question, in the past in u4 they told that EQS is just for test, never for make a real game, now in u5 its ok to implement for create a game? Can this be used to have 10 npc on the map and that the FPS does not drop?
@AliElZoheiry
@AliElZoheiry Год назад
Hey Zumat, the EQS system can be used in production, though it is classified as an "Experimental feature" it just means that it is subject to change in the future and backwards compatibility is not guaranteed, though I found it to be quite performant with tens of enemies, as long as you don't have very expensive queries with lots of points running very frequently
@zumat9586
@zumat9586 Год назад
@@AliElZoheiry Ok, I get it, in that case I'm going to try to implement enemies with EQS, thanks, I appreciate your answer.
@oerealrap
@oerealrap 2 месяца назад
my BT i stuck in attack mode it doesnt leave it no matter how far away i get once it sees me
@AliElZoheiry
@AliElZoheiry 2 месяца назад
Moving away doesn't automatically cause the enemy to forget that player. That functionality was added in Part #9
@kylehitch1421
@kylehitch1421 7 месяцев назад
I've had no trouble up until the running and hiding.. I've done it over multiple times. My AI Wont find Cover... pulls out sword and stands there (Changed the the grid to around attacktarget Fixed it) but now he only hides once before attacking... he starts to hide (taking one step) then stops. then continues to attack..
@AliElZoheiry
@AliElZoheiry 7 месяцев назад
Hey Kyle, there could be a lot of things happening here. The best way to find out, is to debug your tree, by openning it side by side with the game window, and watching the flow of execution, and try to pinpoint where it's going wrong
@Kevmo_
@Kevmo_ Месяц назад
Hello, how can I get this Ai to sense a VR Pawn with a tag?
@AliElZoheiry
@AliElZoheiry Месяц назад
Hey there! You can modify the perception settings of the AI to include VR Pawns with a specific tag. Check out the perception component in the AI controller and check for actor tag before doing any actions
@DaviesMurphy
@DaviesMurphy Месяц назад
I failed the project for the second time and had the same problem in both cases. Even though I added cooldown, the attack occurred before and the strafe occurred afterwards. I tried to fix it a lot, but I couldn't fix it and I ignored it and continued, but in the idealrange section, instead of running in the ideal range, the moment I go outside the sight sense radius, the enemy actor starts to freeze and the behaivor tree starts to lock. Receiving the same error twice makes me think that the problem is caused by the unreal engine version. I am using the 5.4 version of unreal engine. Could there be a problem with this?
@AliElZoheiry
@AliElZoheiry Месяц назад
I honestly haven't tried 5.4 yet, so I am not aware of any specific issues there. But it could also be the EQS itself failing to find a valid point so the enemy freezes, that's a common issue if the EQS was setup incorrectly. Specifically if the grid is being generated around the incorrect actor (e.g that querier instead of the attack target, or vice versa)
@buga125
@buga125 2 месяца назад
Hey! As always an amazing tutorial and I've been pretty much able to follow through with some bumps in the way as I don't use the default assets from TP template :) I have a weird problem though with the eqs - specifically with the AI MoveTo task, but I wonder if it's not the animation blueprint setup that's wrong here. The enemy strafes correctly to each point, but the BT seems to linger on the MoveTo task for about 5 seconds after the enemy reaches the point, which causes the enemy to stand in one place for 5 seconds and only then go to the next point. I noticed that in the animation blueprint the Speed value goes down to 0 when the enemy reaches the point so I thought maybe it was a problem with the Idle animation being too long, but I changed this idle animation to be one frame only and it still happens. Any ideas on what to check so the enemy doesn't stop? The MoveTo shouldn't wait for that long until it loops back to the beginning I guess? I fixed it temporarily with a Time limit on the MoveTo task (5 sec), but I don't know if this is not going to break something else and I feel like it will :) Appreciate the content tho, I'm learning a lot!
@AliElZoheiry
@AliElZoheiry 2 месяца назад
Hey there! Thank you for the feedback and I'm glad to hear you've largely been able to follow the tutorial. The issue you are mentioning is quite strange, because the MoveTo task completes when the enemy reaches their destination, so if they stand still for 5 seconds and then completes, it means that they were already at the destination 5 seconds ago. So unless there is a manual delay in the MoveTo task before calling Finish Execute in the BT Task, then I don't really know what's happening 😅 and indeed a manual time limit is definitely gonna break later on
@buga125
@buga125 2 месяца назад
@@AliElZoheiry Thanks for the reply, I'm gonna do some brainstorming then, we'll see :) Can't be that hard to figure out!
@buga125
@buga125 2 месяца назад
@@AliElZoheiry Oh god damn I just figured this out, spent like 7 hours - it was a problem with the navmesh, but I couldn't locate it directly so after searching for a solution and trying different things, I deleted the navmesh bounds volume and the recastnavmesh etirely from the level and added them again. Now the AI MoveTo works as intended. I have no clue what could have happened, but I might or might not have tampered with the Z axis when I was trying to get the enemy AI to react to the player character when the player character flies above them (I have a flying bird character). If someone has a similar problem - this seems to be a solution :)
@AliElZoheiry
@AliElZoheiry 2 месяца назад
Hey Bogdan! That's great to hear, well done fixing the bug 💪
@user-cq7jd5ho2v
@user-cq7jd5ho2v 5 месяцев назад
Thanks for the video, but I have a problem, My character instead of going and strafing aroung the player correctly, turns with his back to the player(in a very haugty manner) and starts strafing aroung him without facing him. Please help because I am a complete noob.
@AliElZoheiry
@AliElZoheiry 5 месяцев назад
Make sure you implemented the "Focus Target" task correctly, that should ensure your enemy is facing the player. Also make sure that in your enemy class default settings, the "Use controlled desired rotation" is checked (set to true)
@atovfx
@atovfx 11 месяцев назад
i have issue with cooldown when i'm try to change obsorver it's only none there lower priority doesn't exist can you help me with this?
@AliElZoheiry
@AliElZoheiry 11 месяцев назад
There should be "lower priority" as long as there is a branch to the right of cooldown, otherwise there isn't anything that's of lower priority
@atovfx
@atovfx 11 месяцев назад
@@AliElZoheiry okay i figure out the problem that was my mistake i connect with sequence not selector when i connect with selector as combat state it’s fixed thank you
@morphe1467
@morphe1467 7 месяцев назад
Thank you for your great video. I have one question, if the AI has its own base, how give more EQS scores to the direction toward base in case AI need to retreat, and give a lower score to the opposite side of the enemy base. In summary, I would like to know how to measure scores based on something outside the radius of EQS. How is that possible?
@AliElZoheiry
@AliElZoheiry 7 месяцев назад
You're welcome, glad you liked it. If you just want to have an EQS that moves in the direction closer to another actor then instead of generating a grid of points, you can generate points around specific actor types, you'll find that as an option in the EQS called ActorsOfClass. But that just gives you the location of these specific actors, what you want is to move closer to the base and not further away Unfortunately you can't combine the information from 2 EQS queries without some manual work in the middle, but what you can do is simply have the actor face the direction you want them to go, and then generate points Infront of them only
@morphe1467
@morphe1467 7 месяцев назад
Then, How about if I spawn an actor that is invisible and has no collision, and measure the score for that actor by always keeping the actor's position as far away from the character as the EQS range and pointing towards the base? Do you think there's something wrong with this approach?
@AliElZoheiry
@AliElZoheiry 7 месяцев назад
When doing an EQS on actors you can specify "No range" meaning wherever the actor is in the world, the EQS will find it@@morphe1467
Далее
ПОЮ НАРОДНЫЕ ПЕСНИ🪗
3:19:41
Просмотров 1,9 млн
10 Unreal Engine 5 PLUGINS I can't live without!
9:37
Просмотров 491 тыс.
Ownership in Unreal Engine
13:41
Просмотров 621
Why Unreal Engine 5.4 is a Game Changer
12:46
Просмотров 1,1 млн
Motion Matching - My Thoughts [UE5]
14:28
Просмотров 12 тыс.
The Right Way to Spawn Objects in Unreal Engine | UE5
18:03
How I Remade Dune in 24 Hours using VFX
14:10
Просмотров 473 тыс.
Can AI code Flappy Bird? Watch ChatGPT try
7:26
Просмотров 9 млн
ОПА😲 А ЧТО ЗА ПРАЗДНИК?
13:22
Просмотров 315 тыс.
⛓️CHAINED TOGETHER⛓️ ft. Kai Cenat
11:34:19
Просмотров 7 млн