#gameplay-ai
1 messages ยท Page 169 of 1
Then for some weird reason a ton of people seem to want flying AI
There's not a lot of AI toolchain stuff. I know there's statetree now, but there really should be a planner properly supported, along with a Utility system and if we're being real, there needs to be an ML setup now
Basically, if AI got the love that Graphics got, or even a fraction of it, the toolchain would be far more developed
Did not Epic added the gym ML last year or 2 years ago?
I forgot where. I was sure i saw it
Yeah i definitely agree with the smartlink and especially doorways. Heard too many complains about stuck in doors here
In google search too regards the door.
I would like to try to make an ai moving around areas with door sometime later
Ah too bad
Yeah doors are a bit annoying depending on how you want them to work
In my fps project doors just don't exist on navmesh and if npc's bump into them they just automatically open lol
Yeah, we did that too ๐
Yeah that's smart way to design it. However, many cases i think people want to have it "realistic" lock
Interesting one to play around
Yeah my other project would kinda need something like that ideally
Ie. the AI doesn't know the door is locked until it walks up to it to try it
Is there any games with AI and "realistic" door lock? It would be nice to see what are they doing
I think Fortnite's ai open doors automatically
I don't think I've ever noticed it in any game
Make sense people tend to avoid this kind of complex door and ai combination
I think even in my other game you might not notice it so it might be kinda pointless for it to exist as a complicated feature :P
Agree
Simply having the AI not go through locked doors is easy enough, just change the navlink area class
They'll stop trying to pathfind through the link, now you have a locked door
(assuming you've set up your nav query filters correctly)
But what if is it a dynamic lock/unlock door?
Just toggle it at runtime, at least with dynamic navmesh it should just regenerate and work
Navlink area class can be toggled?
Yeah you can change it to something else, say you have two nav areas NavArea_Normal and NavArea_LockedDoor or something
You can just switch between the two depending on whether it's locked or not
Oh interesting. I thought that would confuse/break the ai by having 2 different Navlink area in same location.
I've not tested it a lot but at least with the testing I did it basically just does the same as if you change it in editor (with runtime navmesh generation enabled)
Thanks for the letting me know. Appreciate the additional details
You could probably also just disable it altogether, but with this method you can optionally have certain npc types that are allowed to navigate through locked doors (perhaps they have keys)
https://youtu.be/qC5KtatMcUw?t=411 do you mean a lever or sorts?
I don't think it is about improvement. It is more about the need of hour type of thing. For instance, the latest Crowd AI is a novel introduction.
ML should be on priority list, in my POV, but they are just tooo reluctant to learn from limited or special cases.
they need large number of test cases to learn which is already annoying for real time
I did not meant that. But after seeing that, i want to try that too for Ai lol.
other than Atari type games which can run loops in berserk mode
Crowd type of Ai. I find that even the old cpu can run 100 ai easily. Moving only, i never tested beyond that. I suppose by crowd you all want above 10,000 ai?
I haven't explored UE's take on that
but I'd like to imagine something like Boids Algorithm
Simple rules for large number of entities to generate controlable complex behaviors
I see. Complex behavior surely has high added cost
yeah tell me about that
that not only introduces unpredictability (which is desired in some cases) but self-harming tendencies
that is unacceptable
Hi everyone, quick conceptual question: what is the main difference between hierarchical path finding and regular path finding? I noticed that using EPathFindingMode::Hierarchical is significantly faster than EPathFindingMode::Regular, but I'm assuming there must be a trade-off? Currently using hierarchical for everything, but not sure if I'm missing a trick in doing that
There is a way to generate navmesh runtime on a spawned mesh? Is pretty expensive to activate navmesh rebuild runtime, so I just want to rebuild it on a small part of the map.
Invokers could do that i believe
Hello!
I'm testing the new StateTree outside mass and I have two questions:
- Does anybody know about any documentation or thread explaining how to use EStateTreeStorage? or at least the difference between internal and external?
- I can't see any way to check what a state tree is doing that is not set a breakpoint in code or use the visual logger. Does anybody know if there anything else?
Is there an event that you can call when navmesh has finished loading?
There are delegates on the navigation system for it
Including for when the navmesh has been regenerated if using runtime generation
You have some in the RecastNavMesh.h
Anyone have any idea what is the intended usage of the perception Team sense?
My guess would be that it'd only be useful if you have teams already configured (which requires C++ IRC). Then it'd only notice pawns on the "Blue" team for example.
It doesn't seem to really "notice" anything per se, it just receives events
It'd only get those events if w/e team triggers it though, no?
Is it just for coordinating team stuff? Like if you had a team leader call for everyone to advance
I'm trying to get a character to move to location (current position Y + 100), but he just does not move...I have a NavMeshBoundsVolume which encompasses the entire map. If i use Set Actor Location I can instantly move the character, but I want him to walk/run there....any ideas what I'm doing wrong?
Note that I'm using the ThirdpersonCharacter template. The character is spawned in but not yet possessed by any controller. (I've tried using Get AI Controller instead of player controller, but that also does not work)
loaded in the map yes. I discovered that when using streamed levels the level streams load faster and complete sooner and navmesh takes a bit more time to calculate. (I set navmesh to dynamic)
Seems like i got some replies but if possible i'd like to know if i can access delegates using blueprints too or not..
Highly doubt you can
Not sure about specific to navmesh, but FWorldDelegates has a delegate firing when assets loaded or spawned in map
Or at least when map loaded
hmm.. okay.
I figured out my problem...I needed to set "Auto Possess AI" to "Spawned" on the character, so that when I spawn it in, it gets an AI controller, then plugin the Get AI Controller into the Move to Location
Now I have the problem that the character moves, (rotates correct and moves), but his walk animation does not play? I've tried with both "Move to Location or Actor" and "Simple Move to Location". But when i possess him with player controller and run around the animation works fine
@ocean wren I guess you were right
EQS only returns items if you select "All Matching", and just returns one in others
๐
Needs to be possessed to have a BT work
Hello! I've a problem with my AI. Another person made a level and the AI would not move. I've done debug, they have target as character, all the keys are correct in BB, but they fail the move to task and just stand there.
the logic inside BT is correct and on any other levels they move just fine
Nav mesh is there and i see no issues
what might be the cause?
Check visual logger
what is that?
the BT flow or debug in game?
i googled it and i never used it before XD
ye i found it, gone run it in a sec
hm
so it's navmesh...
i though so , but idk why
this how it goes on the other level
same AI same nav mesh options
(just fresh nav mesh all defaults)
i kinda find a fix
still confused what causes this
but smaller navmesh volume works
she made big level with several flores and 1 huge mesh around it
if i put a smaller one into a room it works
No idea tbh ๐คทโโ๏ธ you gotta provide more context and info. What visual logger says is your location is either invalid or not on nav mesh
the key is there, it just fail to use pathfinding
all i can say is that both bot and player were in same 'room' inside of navmesh
idk why this happened, but using smaller nav meshes seem to help
Is there a way to determine if a character is actively pathfinding or not? I.e. on route via Simple Move To location
You can get the controller, then get the path following component to query it
Anyone know why these two uses of a "Move To Location Or Actor" give very different results?
The second one shows it going to an actor I've placed in the level - this works completely fine.
The first one is going to a location (the exact location of the actor I used in the second one)! So it should go to the same spot.
FYI gravity is off, it's in flying mode. (Vertical movement in a 2d platform game)
I ideally need to use the first one, i.e. a calculated Vector for the AI character to move to. I suppose every time I want to do this I could spawn an object where I want it to go to and use the second example, so it actually gets there.
I just can't fathom how they are different (not being able to see the code as I'm in blueprints).
Is the issue that the first example isn't going to that same location that the actor is placed in world space even though you manually entered the position?
yep exactly that
Can you give me a ring to stream the test example?
I've also tried giving it a vector + another vector that's way above, but it doesn't help it get any further. Sorry... a ring?
Call me..? Like ring the phone..?
Ah - i don't have a headset atm + didn't realise you could do that in Discord!
I can show a video clip of it occuring if that helps
You don't need to talk per se, just stream your computer screen to me so I can see what's going on. It really helps.
Thanks. I'll make a clip - 1 mo.
Streaming allows me to interact real time when I see an issue.
I understand - I can't really do that atm. But I can make 2 quick clips which will show the issue
We can try
This is when i'm telling it to go to the object:
(which is way above where he should go (he's supposed to be climbing the ladder))
And this is the one where i tell it to go the position of the spawned object way above:
It looks like he's getting stuck on the platform, but considering the only change I am making is the goal location to a goal actor (both the same world pos), I can't see how
Do the videos help?
I wish there was a way to have vertical navmesh up my ladders, this would be so much easier. I'm having to blueprint hack my way of telling AI to do eveything through blueprint... i.e. if the player is above and it can't get there, but there is a ladder, find the base, go to it, move up in flying mode, etc etc
@abstract ember Do the vids help?
Break down the actor component and get actor location. Try again.
Sorry. Don't know what else to say.
np - thanks for looking. Do you think there's a chance that any of the code runs differently based on whether you choose location rather than actor?
hmm just had a thought of something to try...
bah - didn't work.
I really wish you could stream it.
Wouldn't it be easier to spline it and lerp its location moving upwards?
Setting up platforms and ladders in a graph, and suddenly its just about applying a regular pathfinding algorithm
Or a navlink proxie might work
Never used those so not sure how usable it is for this scenario
@misty gale Sorry i was away. Navlink proxies don't work consistently from what I've found. I also have objects in the world (e.g. a rope) that you can create a new up/down path with, so whateverI do it needs to be realtime nav.
Setting it up in a graph is realtime
(I can get navlinks to wrok fine in 3D - they are much more problematic in 2D at a small scale from what I've found
Adding new paths/ladders at runtime, no problem
how do you mean? In a graph? Sounds intriguing
Sorry I haven't heard of this before. Is a "graph" a sort of network of splines?
A graph is a set of nodes and edges, connecting the nodes together
A node in your case would be a platform, and an edge would be a traversal method from one node to another
thanks - is this a feature of UE4 or would it require a lot of non-BP code?
It would be some extra work to set up, for sure
I guess it can be overkill for this, depending on complexity of the levels
@misty gale I think given my design it's not overkill - it's more complex than my example shows.
do you know of any tutorials or examples out there?
Yep - I can code enough in C++ to probably do a bit of it... but i'm from a Scripting and Design industry background. If it was in LUA or similar i would be fine :0
What would this be referred to as? "Building your own navigation graph"?
thanks that reddit post looks illuminating!
Thanks. So why might i ask can the UE4 system not do this? Is it just it can't do vertical navmesh?
Sounds about right yes
But
In your case
I would almost think it'd be easier to just have your world flat?
And use the flat navmesh
Tradeoff would probably be worth it, not needing to implement your own path algo etc
!
that's a clever idea
thank you very much indeed. Need to ponder all of this
trying to think of a reason why the world can't be flat...
what if the nav was flat, but the world was normal - could i transform the numbers?
hmm no forget that one
gravity is already "not normal" - so faking it wouldn't be a bad thing - i'm not happy with my character movement atm anyway
Thanks a lot I really appreciate the advice. I shall have to investigate which path to take... ironic eh ๐
Heh , served on a silver platter :p
Honestly, I think this kind of case would be better if you just wrote your own navigation graph system.. Its already a tile based world after all.. so you know where tiles are etc.
Probably, but there is a certain ease using built in systems :p
So build it in then ๐
the engine and editor is freely extensible
in fact, its pretty good for that kind of thing to be honest..
aside from the lack of documentation
Im doing my own nav system, it was just an alternative suggestion that one can get away with without to much trouble :)
I'm not sure on the implications yet for pursuing the "flat world" approach. I'm using Pixel2D which also uses Tilemaps (their own i think).
would this kinda work?
A static site pulled from the internet archive
instead of jumping I would have walking
would it make going up/down valid in pathfinding?
(assume it is done in flying movement mode)
@ocean wren @misty gale What about a Flying Navmesh?
There appears to be some in the store
e.g.
or maybe SVON?
I use it if it makes sense for what I'm trying to do
BT might not be able to handle it
BTs are all about prioritizing (why English is so difficult to write
) behaviors
You can not jump from a node to another node
So you have to evaluate that blocking behaviors condition in everything and thats not suitable
You can either make a very minimalistic state logic in (or outside of the) BTs or handle this outside of the BT
yeah i kinda got something working with bt but it seems a pain to handle this stuff with it
Have a const function in character class that determines if AI can dodge or not
And handle blocking logic inside the character if BT gets too complex
Dodge looks like a "reaction" rather than a behavior
If your AI had some specific sequence of actions to do when dodging and if it would be easy enough to handle with BT elements (selector, sequence, decorators etc) you could do it in BT
But for a simple reaction-like action, you just disable BT for a while and enable it again when you are done
Like after dodge anim finished etc
You can do state-machine logic for this in character class but dont do it in BT
make sense
And dont communicate with BT directly
BT should gather data on its own from environment and character
alright thank you
If you would do that in BT; you would use simple parallel and check for these conditions in a child BT
and on the second task (the right one, non-pink output) you would handle the behavior
its a mess
If it's not a very dynamic system its not a problem
If you can cover everything in a single child BT, its alright
If the behaviors does not rely/change on game progression or environment its alright imo
i tried with something similar but as i said, it became a mess once the ai got more complex
Gotcha, then do it in character class
Some studios I've joined was strictly trying to do everything in BT so slowly I decayed towards "try keep everything in BT" mode ๐
It really depends tbh
idk - I find that I don't have much issue doing pretty much everything in BT. Even super simple stuff. I like the workflow more personally.
Real problem is you can not cover everything in BT, it's very static and declarative
Execution flow makes you create thousands of nodes
But if you really organize everything properly it can be a workable workflow
thats true, it does have the power to do almost everything i think
I feel like @misty wharf and I are like the only ones here who appreciate the BT's sometimes ๐
lol
Sorry I just cant stop hating some parts of the engine sometimes 
well at least has enough stuff so you can actually complain about something ๐
You gotta write so much things to make AI module serve at its %100 potential/capacity
Its only thing I'm blaming in this server
Didnt even blamed hot reload yet 
hot reload is not that bad
It's pretty bad. Live++ on the other hand...
lol
My initial way of solving the dodge thing in BT would be as such. Seq2 would have a decorator on it making sure it could only be entered if a BB value was set, bShouldDodge or something. Then sele3 would have a decorator where it would only enter if that value is not set, and will abort immediately when the value is changed. Simple.
Could even just replace Sele3 with a RunBT node and have your non-evasive stuff be in another BT entirely.
That's what I would try to avoid though
It's a fine approach, its just you have to repeat this for all behavior sequences once you do it
Not really.
But on the other hand Sele1 is root selector so yeah not
Yeah, at scale, something like this could be a nightmare, but so could most other things. So I'm still in the camp of, just do what works best for you.
I prefer BT's because they're quite descriptive and easily reusable when done right. At least, the way I do things. Don't know about others.
I'm working on a BT that I must implement states (hopefully zoombapup wont kill me at night), and having logics like this forces me to place seq2 to everywhere
That's why I mostly avoid reaction-like things
Half the time I just feel like people care too much about perfection. If it solves the problem and gives acceptable performance, ship it.
"Oh this detail has a flaw in it!" - who cares. It works. Problem solved. Move on.
You're right
can you increase the senstitvity of the hearing of an Ai or only radius of the the hearing
yeah this is the kind of issue im facing
Then either dont do states or avoid it, in your situation you dont have a choice except having a confusing BT
(assuming your BT is big enough, otherwise go brrr)
i cant stare at more then two sequences and two selectors without getting confused
throw a simple parallel in and im lost
i guess its just preference anyway
lol it shouldnt be that confusing
Here's the BT for The Division ๐
you can do it but not out of the box, at least i think
There is even worse in this graph
They are right to left (logic starts from right, reverse of the BP execution flow)
at this point you dont even look at it, thats not confusing anymore
right? ๐ฌ
how would i do it? is it very complicated ?
I wonder what happens here
ahahha
begin play
i remember doing something similar with sight using curves as "sight strength" and playing with the float thing(i think its strength(in the report sound event i mean)) im not too confident with ai tho
BT's are my favorite way to write AI currently. I'm interested in HTN stuff as well. But just don't have the time ๐ญ
alright
BT + Utility + FSM โค๏ธ
as a combo
I'm very interested in the HTN plugin on the marketplace, it's just overkill for like...all of my games ๐
what is this Lo SHearing
Its LoSHearing but UE parsed the variable name incorrectly
Probably hearing radius specifically for the things in line of sight
i see
thanks
this node makes the singal for hearing right ?
like even if sound is playing ai wont hear unless this is used
yes
i used loudness for doing the custom hearing stuff. i have no idea if is intended to be used in another way but worked for me
you have the location the loudness and the instigator
you can do your stuff
I think loudness is related to the range it can be heard on , and at what strength(?)
Pretty sure i just altered it for sneaking, which reduced the range i was noticed at
Is there any way for me to just make a character move for longer? It looks pretty artificial when they move a lil bit and then stop and idle
I'm using Behavior Trees
Move longer than what?
If you're using MoveTo or something then if you want them to move longer.. just move them further
Maybe they need easing function introduction.
iirc there's a timeout on Move to, and you should use Observe Blackboard value on that so it continuously updates instead of going to where the target was when the moveto started
probably the latter that is your issue
Thank you!
It's a randomized location
you could use EQS to get a position that's at least a minimum distance away, or select a new position if it's too close
yeah if the position changes then observe Blackboard value will be helpful. If it does not change, then it won't be helpful.
by the way, as a reminder to any aspiring behaviortree developer out there-- seriously make sure your actors are valid when you run move to actor-- unless things have improved since 4.27, the whole game crashes when the actor reference on the blackboard is invalid, and its rather difficult to understand this
of particular import is when the pointer is valid, but the actor is destroyed
(which happens, if say, it dies)
Really ๐ค
I've never ran into that and I'm pretty sure I've tried to move to booleans and all kindsa things lol
specifically what plagued me was Move To with Blackboard Key set to a value of type Object, passing an Actor in to that, when the actor is destroyed prior when the Move To starts, it crashes
Interesting, seems strange they wouldn't have handled target actor being nullptr
i agree. i would hope this has been fixed by now
in my case i fixed it by ensuring that I maintain the blackboard values that point to actors properly -- if you destroy said actor, the other actor should probably stop "pursuing" him according to the blackboard
(ie just unset so its unambiguously invalid) [lol at my edit chain]
that is way too careless if true
so what be the true reason for crash?
Who mentioned states in behaviour trees? <sharpens knives>
I don't mind reacting TO states in BT's btw.. having a state machine elsewhere etc
but states IN BT's I have a strong objection to.. usually because people trying to do it are mixing mental models and are going to shoot themselves in the foot with it
Client wants an AI that requires to have states but also hired me for a short time so not have time to build a FSM framework from scratch 
I had to commit this crime
burn the heretic! ๐
Afternoon all, I've been searching for something all morning and I'm either using the wrong terms or this isn't a thing.
Is it possible to tell my AI to run an EQS from an arbitrary location?
I'm basically trying to get my AI to look behind walls. I have an initial EQS query that I want to get my AI to look at and I want to build a second EQS query to find a location near to that where my AI should stand in order to see that hidden location.
EQS queries don't have a location per-se, it depends on which contexts you use within your query. So if you want it to query from an arbitrary point, the easiest way to do that would be to save the point into a variable in your AI, and create a new EQS context which casts the querier into your AI class, and returns the variable as the location value
Yeah, it feels like it should be possible to just send this as a parameter to the query, but it's not (except with great great difficulty)
yeah it feels very much like the whole EQS system is actually quite hindered by this and I don't know why
It seems to have been designed kind of half-way through :)
Is it possible to get EQS to pump out two locations?
It works quite well but you have to sometimes work around these kinds of strange API choices
Yeah, you can have it return the entire set of items that are valid
That might work - perhaps it's even more streamlined
rather than having two EQS queries one after the other
I guess this is what I need
Yep
You can create a custom context (even in BP's) and just have it return whatever point you want
Looks like I can pull the location of my first point by hardcoding a grab from the actor's blackboard inside the context which feels a little weird but should technically work
are you doing this for a client?
No, just learning ๐
Works though - EPSPawn on the right, a test pawn on the left
(ignore my unfinished EQS query)
test stuff at the bottom
so gauge the redundancy
hmm?
the nodes at the bottom are just for testing in editor at the moment, will be replaced by the blackboard entries at the top when i get my query working
which seems to be now...
Hi all. Is multiple navmesh agent types (ie Supported Agents) a broken, missing, or hidden feature? I can create multiple agent types easily enough in settings but can't find a single place to set an actor's agent type or Agent Name. A solution in either C++ or Blueprint will do.
I've tried googling but all I can find are people asking this question and never getting an actual answer.
I vaguely remember fiddling with it in my other project
Look at the C++ interfaces and classes used for navigation, it's somewhere in there
like.. NavAgent something or other
iirc there's a function which returns the nav agent properties for an actor or the ai controller, something like that
Trying to use tags in EQS
tag check
my problem is I cant just say has to match this
which it asks for
I need more like doesnt match mine
cause mine will always be different based on who played me
usually but not for this and it asks for what tags to match
i was hoping I could just leave it at dont match but
requires input
im just creating my own
same onjective through a service
no that is decorators in a bt
EQS gameplay tag checker has reject incompatible
But I need to be able to change what is rejecting based on what I am
Ohh right the EQS one
Yeah sounds like it should be a fairly trivial custom test
No idea why they wouldn't support that out of the box
yeah bummer
woould work great if everything was set
like check for an enemy type or object type thats always the same
but for checking if it matches my own which could always be differnet as well has nothing
I got it working through a service
You could probably literally just copypaste the existing tag check test and flip the condition inside it :D
I dont need to flip the condition I need to have it be changeable
If if player one do my tags match
if im player two do my tags match that
but im not always just player one or 2
so unless I want to make seperate bts per player
lol
service worked all the same
Ahh right
Guys. I need your help. I am for a quite while trying something stupid and have looked on forums, tried what exist etc etc etc. But THIS is not working at all.
What I am trying to do: When the player overlaps the overlap thing it should spawn a AI. And this AI should follow and shoot the player.
Whats happening: The AI is being spawned, but player cant see the AI and shoots are working fine. Just the AI itself is not being shown tot he player.
The location and rotation of AI and the shooting is fine. But he is a invisible object to player.
help
i am using report noise event but it doesnt work. what could be the reason
Incorrectly configured hearing sense or too far from whoever is supposed to hear it
would it show the noise sphere in the debug menu if regarless of ai setup ?
im in the yellow circle
for hearing
if you haven't set up the team stuff you need to set it to hear all the teams
that might also affect it
this was it thankksss
nice
its a shame they didnt exposed this to bp, i heared more then one people say that is bugged when it actually just need to be setted up
how do i make the instigator in report noise the actor holding the gun. im making the sound on the gun class. is there a way i can set the character holding the gun the noise target? like for player i would just do get player character but if its another AI character shooting the gun then waht @cedar dust @misty wharf
i think get attached parent actor worked
it depens on how you have setup stuff. you need a reference to who is holding the gun
@cedar dust how do i switch between the debug info for actors? like i want to see the hearing and vision circles for enemy but it shows for my ai partner not enemy
i have to remove partner for it to show enemy
can i like switch between them or show all ?
i dont know if you can switch
if you look directly at who you want to debug it should debug that one
how would i do that
you point your camera at it and press the debug keu
ah
ok
thanks
it doesnt seem to work tho only works if the enemy is the only ai in the map
ill try to look around tho
see if i can get it to work
is EQS important in the grand scheme of things? I was following a course that had an EQS section but I found it tough to understand and resulted in many weird bugs (like viewport eqs visualization being broken among other things).
I wonder, what can EQS do that cannot be done with BT/C++?
YOu can switch
its like Shift ]
or something like that
im pretty sure it says on the debug screen for ai
to cycle through
@rugged talon
i tried to look for it i couldnt find it but ill check again
right bracket and then 6 is for perceptoin and shift + ] should work to switch between them but it should say
did you do the C++ setup for your perception?
#include "CoreMinimal.h"
#include "AIController.h"
#include "GenericTeamAgentInterface.h"
#include "TeamPerceptionAIController.generated.h"
UCLASS()
class POLYGOD_ALPHA_API ATeamPerceptionAIController : public AAIController
{
GENERATED_BODY()
ATeamPerceptionAIController();
public:
ETeamAttitude::Type GetTeamAttitudeTowards(const AActor& Other) const override;
};
what wrong wit this ai team perception thing
always says build failed
In this article Iโll go down the rabbit hole, showing how to setup and use the AI perception system. The official documentation about this topic is good but I had to scrape other needed information from various forum threads, Unreal-Answers posts and a lot of try-fail attempts. This article will condense my experience and findings into a single ...
this guys tutorial never works to set it up
"Tutorial" ๐ hahaha
FYI you can change the AI being debugged by selecting it from the dropdown in the BT editor
Hey all, Im doing my first attempt at ai and im a bit stuck and cant seem to find an answer anywhere. Basically i have some ai doing a standard roam and when they are activated they chance the player. Most of the time their pathing works fine but they cant seem to work out the ramp. Any ideas on how i can fix this?
are you sure the navmesh is on the ramp? have you fixed the step height of the agent? Have you used the visual debugger to have a look? Have you created some test cases to work out the problem?
Anybody set up the AI Team perception successfully yet?
I'd like to imagine collective sense, in the sense, look what I did here, where, for instance, if a member or entity of patrolling team senses intruder, then entire team of entities start executing a sequence of actions. Making formation to strike down the intruders by making formations and whatnot.
But yeah I don't think it would need special Engine side work. I have been wrong before though ๐
Yeah, its really not that hard. There was a bug where the team wasn't being properly set, so the Id was set and then being overwritten by some CDO or something. I fixed that in my code, but don't know if anyone fixed it in the actual code.
Do you have a base class that I could inherhit my AI from to get it working?
lmk โค๏ธ
Hello, is there a reason why UE not creating navmesh on some parts on landscape? Tried to change tile size, slope angle and other settings
Hard to see, but it looks like your Nav Mesh Bounds Volume needs to be taller
I tried to make it any size, but nothing helps.
I can see that ignored area has exact size as our landscape tile, so it basically ignores some of our tiles. We do not use world composition or something else, just standard landscape.
Also navmesh works ok on roads that were creating using landscape spline tool
is somebody can give me base class for AI to use for proper Team Detection lmk
wow thank you
its from like 5 years ago tho you know it works ?
and no cpp file do I just create this and inherhit from it?
so still not what I need?
It will be what you need if you implement the GetTeamAttitudeTowards function
That's what gets called to determine the attitude towards other perceived actors
thats the one I inherhit from?
what do I do with this one?
It already has an implementation doesn't it? don't you need to just call SetTeamID or some such? been a while
is that why when I build the AI controller with that function it never builds?
@ocean wren no, the default implementation returns everything as neutral
im no C++ pro
ah, ok, so you need to implement the attitude function and set the different team id's
The team attitude function gets called with the other actor that's being perceived
So you need to check what it is and determine what the attitude should be (eg. hostile, neutral or friendly)
Once you've done that you then just return the appropriate attitude value
If you don't have a complicated system, you could check for example if the target is the player pawn and then return it as hostile
And return everything else as friendly or neutral
But if you need a more complex team system then your checks will need to be more complex
I just need if not matched team ID is enemy
its really just an integer comparison
and I need to be able to set the ID by who spawned that actor
yeah
Implement a function that lets you set the team ID, and save it in a variable in your class
I believe I need that function set up through a Parent for my AI controller in a custom class
Then you can compare that to the team ID value on what is being perceived
my problem is getting the enemy detection set up
yeah I need to be able to get perceived hostiles instead so less time weeding out
my tag system works which I did the C++ for
Tbh you could just do it in BP's too :)
but it could be btter
Simply have everyone neutral and check in your perception function what the pawn was
it won't work with the team values in perception, but the implementation is easier if you don't know C++
Gaps?
where they are cycling through none enemies
waiting to get to th e proper one
to act on it
well it's not going to be magically fixed if you implement it in C++
no its not but doesnt change the fact that I still need to do that part
well the only benefit from the C++ implementation is that it saves you some linetraces
which is not really a problem unless you have a lot of AI's trying to perceive everything
Was reminded about this and thought of Mass system: https://www.youtube.com/watch?v=biYOHAEbn40
The bitrate took a hammering in this video :)
Support this channel on:
https://www.patreon.com/worthabuy
Paypal: macksgamingworld@gmail.com
https://www.subscribestar.com/worthabuy
Greenman Gaming Link - https://greenmangaming.sjv.io/WDEJk3
Streaming channel
https://www.twitch.tv/worthabuy
Merchandise Shop:
http://www.redbubble.com/people/wor...
That's a lot of AI
fixed it \
Man o Man! The implications are profound!
Hi! Is there a simple way to move some pawns with a Move To Location node, but using different paths on the nav mesh? (by default all pawn controllers are calculating the same path)
I want that each pawn moves to the player but using different paths
example: https://youtu.be/id2FfoIF5KE?t=280
Vampire Survivors on Steam: https://store.steampowered.com/app/1794680/Vampire_Survivors/
This came from my stream on January 12th, 2022. Catch me live from 9AM-2PM every weekday: http://twitch.tv/Northernlion
Vampire Survivors is a retro-looking roguelite/autobattler that is deceptively addictive. Check it out!
If you enjoyed the video, ple...
what is the ideal place to put a selector in a behaviour tree? if my AI has 3 states whihc are shootig player , losing sight of player and following when spotting player where would i use a selector or should i just put it all in 1 sequence? would the shooting part come under a selector ?
show me your Behaviour tree
try using sequence
i was gonna add the shooting next
ok
so right on the left of these
so if enemy is not spotted then i go to the rest of the tree
If enemy seen then shoot ?
basically im making this for an AI partner
if it sees the enemy ai it shoots it
i did it with alot of branches but it got v messy so wanted to implement using tree
Add new sequence and try adding Decorder
Add Sequence and then add Decorator
and select condition if seen == true then
your program
alright thanks
i will ty it
@dry oxide if i add 2 decorators then it will go into tree if both conditions are met right
I think so, if both decorators agree.
yeah i would say the same
ok thankyou
what is the diff bw these 2 pins. the first one is the controller bp? and the second one the actor the controller is controlling ?
Controlled Pawn is the Pawn / Character which is being controlled by the controller
in this case its probably your ai character
ahhh
so which one is normally used
for the thing im doing rn
cuz ive been using controller then casting to ai character
it works
๐ค
So the pin you use depends on which object you need. If you need the AI controller, you use the controller pin, if you need the pawn the AI controls, you use the other
I don't really know how casting the controller into a character works but... :D
i see. so if there are soem variables i want to use in task from controller then i do the first pin and cast
right
Yep
ok thanks
so ive gotten the thing to work but i have 2 ai in my level atm. one is friendly and 1 is enemy. the friendly does shoot enemy ai but as soon as it senses me it starts shooting me. how do i get it to only sense and shoot the enemy from everyone it is sensing
@misty wharf @dry oxide
yes
yes
so bascially when focus is set it starts shooting
my focus fucntion call is in the tree
branch
like in the pic
it shoot the focused player ?
try setting the sensed actor
you want the friendly ai to shoot your enemy ai ?
i set the sensed actor right after perception
yes
should i make 2 variables? one for me and one for enemy so if it sees enemy then set it to enemy or if it sees me then set it to me
@celest python you seen this?
aiming sets the char to start shooting
show me the start shooting code
you must copy this for the friendly ai
and change the target to enemy
I haven't
this is in the controller class
You want your pawns to move offsets to target players location?
im casting to get variables from the class controller is controlling
isn't that... your game?
A very slow-paced version of it
ok
fair, but looks interesting
i wil try
Yes, horde mechanics and reward system(?) looks promising to study on
@dry oxide i have this bool set from the sensing stimulus. so when it senses it sets it and when it doesnt sense it un sets its ?
or i have to unset it manually
Vampire Survivors is only like $2. Has a very long progression/upgrade system. Reminds me of the flash games era. It's definitely compelling but I'm not sure I'd describe it exactly as fun? I think it's been very successful, though.
Definitely worth playing if you're making something similar. Lessons to learn in both directions.
Ah ๐
But I think there are some mechanics I could cherry pick
It's more similar to my game in sense of being horde survival
That game is clone of some Korean developer's mobile game.
Surprisingly that game is more popular when the original was released few years ago on mobile
It is called Magic Survivor i think. On mobile store
can i do an OR condtion before going into a task in a behaviour tree
composite decorator
ok im there how do i make the conditions like OR
o i think i found it
this right
omg nobody can help?
Unreal Engine 4โs pathfinding and navigation system gives all users a robust and easy to use system for adding AI controlled characters into their games. With the default settings, navigation is static preventing changes at runtime. Dynamically generating the nav mesh (Navigation Mesh) and adjusting it during runtime has very little documentatio...
if the pawns are also obstacles for the others pawns...I think it would work like in vampire survivor, using dynamic pathfinding
@mint sundial ??
That wont work
You have to use RVO Avoidance
Yeah I don't think the enemies in that video are really doing any kind of fancy pathfinding
they're literally just moving directly towards the player
Probably boxes are not even doing pathfinding
They couldnt move while being an obstacle
There isnt any path at their origin
You may want to look into the source. I hope there be relevant parameters to introduce variations. My wishful thinking be something like
https://en.wikipedia.org/wiki/Lyapunov_exponent
I love it though
Anyone knows if path velocity overrides impulse or force in CMC? i.e. pending forces
yeah but in unreal....they are calculating the exact path findind....in vampire survivor, each pawn has its own path towards the player
Do they? It looks like they're literally just moving in a straight line towards the player
for example....in unreal....they follow the player in straight line one after the other...is a pity
that never hapens in vampire survivor
You might have better luck if you enable RVO avoidance
I will do it thanks!
They probably have a tile based A* for pathfinding tbh
Engine difference
There's plenty of information out there on pathfinding
But yeah, A* and its variants like HPA* are pretty standard
Yeah, pretty sure Vampire Survivors is just using 'Go straight toward player' + RVO + rigid body collision. You can see it when you get a big wave and bats/mini beholders fly through.
There are other avoidance approaches than RVO btw ๐
I use (but have absolutely no understanding of) Detour. But it seems to do a much higher quality job than RVO (and never seems to push characters off the navmesh).
yeah, honestly RVO is a bit.. crap ๐
it was one of the first "popular" avoidance algorithms in games. But its been ages since it came out. So there's plenty of better options
Even though the games industry tends to move as fast as a glacier with things like that ๐
And UE is a very fancy engine with various implementations to not make people lack modern algoritms coughs blood
Well, they are algorithms, just not always complete ones ๐
None of them are ๐
It'a beautiful 
I wonder what would feel like leading edge for stuff like AI in UE you know?
I mean sure, the nanite stuff is good, but lumen is just now being on par with cryengine and frostbite from maybe 4-5 years back
Would be interesting to see what the state of the art in AI is for all these engines. I suspect not particularly user friendly ๐
id Tech still using FSM 
I must say, this new modelling toolset in UE5 is pretty nice
especially the block modelling thingy..
I mean for blockout levels its amazing!
Hi guys! Why is this not valid?
Did you look at the inputs (blackboard, key) and verify they're as expected?
Pretty simple debug stuff.. print out the values.. check they're not null etc.
i set the enemy key in blackboard. how can i check the blackboard itself
Guys I have an Event dispatcher in my Base Ability, which is called in OnEndAbility, but sometimes it never reaches this finishExecute
and therefore it hangs in there infinitely. Does someone know what could it be? 
Also I'm using non instanciated abilities
i have a friendly ai and multiple enemy AIs. how do i get the friendly AI to start shooting next target after the first one is dead
you have to clear the target of your AI when it is not valid, and then set a new target
i set the character to get destroy itself when it dies
also which one should i be using
Is an AI Controller+BehaviorTree more efficient than using just straight Blueprints for ordering separate AI characters around?
(Context, Units in an RTS game, ordering them to move, attack, etc)
Because doing it with BPs seems way more straight forward, but I don't want there to be a ton of overhead, since there could possibly be hundreds on screen at a time depending.
It depends entirely on what kind of logic you're running and how... behavior trees tick and can have overheads of their own
Essentially, and bear with my inexperience here, all any given unit needs to do is move to a location, attack a target, perform an ability, and auto attack any enemy within range (if it passes an enemy for example). I have found one way using the "Move AI to actor or location" node in BP, and another that assigns a blackboard value for a vector location, then has the behavior tree do "move to location" with a variety of checks.
I see the way the behavior tree is doing it, and it just seems way more complicated. But I don't want to be making myself more work in the long run not using an AI system or something.
If you don't feel like you get any benefit from using BT's then don't use them :)
Doing AI logic without it is entirely fine if it works for what you need to do
Is there a way for the sight sense to see through pawns?
Trying to get my AI to see through the pawn in front of them, so they can still see the player.
Pawns don't auto register as a stimuli
I'd imagine tagging the player and feeding that into the sensing condition.
Hello, there. I'm trying to develop a simple project, based on the Third Person Tutorial, that involves collecting coins (which are meant to be AI-controlled pawns that travel around the stage.) However, when I load the project, the coins don't move. https://imgur.com/a/5gD9COy Here's the AI Controller, Behavior Tree, BT service, and Blackboard. Is there something wrong in how I'm planning on executing?
Ok let me get this straight, pawn and player have different affiliations?
I'm not sure what the confusing part is to be honest. Enemy B is standing behind enemy A. Enemy B's sight is not detecting the player because it cannot see through Enemy A; even though it enemies are not a stimuli source.
You talkin' about showing the perception stuff?
And even more clear picture of what is happening.
I'd first try with single AI and enemy setup.
Why on Earth would I try a single AI setup when the issue is DIRECTLY with more than one?
dude, that is basic debuggin procedure. You do ground-up debugging
maybe something is not getting stored properly
Once that is done, by process of elimination, you can be sure that pawn in front is essentially blocking
show me the screen
Because the issue is specifically that the AI is being blocked by the other AI
Yes. And it is the only pawn in the entire game that has it.
would you mind posting the relevant section
And I have turned off pawns auto registering as source, as explained initially
That video is useless in my situation
I have 2 ai
The one in the front works as expected
The one in the back has his sight blocked by the one in the front, not detecting the player
hmm
I legitimately do not understand what part you are lost on
I get the picture. I didn't write the ai perception
I don't know if it sends raycasts or something else
if raycasting is being done, then the ai pawn in front needs to be insensitive to raycasts
you know the collision PRESETS
Hey, has anyone else had the issue of UE4's hearing sense not detecting team affiliation properly? It treats every noise as friendly regardless of instigator's team, sight sense however is detecting fine.
woow, I love this channel
Question, how would I go by doing this, in run time the player ( you ) draws out a path for the AI to follow ?
Interesting direction!
I did monkey with that in UT2004
tentatively though
basically it is a series of "hold this position" commands
now I think you can do that with unreal script to store the so generated "nodes".
So I figured out the issue. If you're using the sight config, they have it configured to use visibility trace channel for doing things. In the UAISystem class, there is a field for DefaultSightCollisionChannel. So, mess with the visibility channel. For anyone in the future who may be curious.
Oops - didn't mean to reply to you ๐คฃ
Simple solution would be to just have the player add it's current location periodically to a list that the AI can access. Then iterate through that.
Yeah I have something like that but the ai stops at all the points making it looks rough
I tried using the array of the locations to make a spline
But couldn't get it to work
OK, so now I changed the Pawn to a Character and gave it an AIMoveTo after setting a mesh, but it isn't moving now either!
I have the coin I'm trying to move set as a Third Person Character, and gave it this algorithm, but yet the item I'm trying to move won't move! Please help...
I really need to figure this out because I procrastinated for a school project, and this needs to be figured out by tomorrow...
Guess you could call me a real Unreal Slacker there.
Or is this better in #blueprint?
Your radius is 0, you are also every tick trying to move it which is cancelling itself over and over
Oh. I see.
OK, now I've adjusted the radius and took away the Event Tick, but it's still not moving.
Do you have a navmesh bounds volume in your level covering the area?
Yes, I do.
Is your character being possessed by AI?
yes
Do I give it an AI Controller Class?
Yes
OK! Now it moves, but it gets to a point and just stops. I want it to go all around, so what would I do next?
All around where? What you have here just gets a random point in a radius and goes there on beginplay, do you want it to keep doing this or go around the entire map in a route?
I was hoping for it to go all around the map.
Well that's more complicated and would probably be better fit for something other than AI
OK.
I could probably tell my professor that the objective is to chase after the coin and collect it.
The idea is once you collect it, the game will spawn another that you have to go find and collect.
Now the trick is to make it collectable, and then do the whole "Spawn another coin upon collection" thing.
@fossil sentinelTo collect the coin use on hit component, then you spawn an actor, to get a random point you use the function get random point in radius and then you use the function destroy actor.
if im setting up a prediction sense how and where would i implement it in the behaviour tree
how do i make an AI go arround an obstacle
right now hes just going into the obstacle but he can easily go arround it
Where would I put the Get Random Point in Radius? Would it connect to the Spawn Actor? And if so, where?
No, wait, I've got it.
How can i have an actor be owned by the player and also an ai? I need to get line traces from the actor but i only get it from one or the other owner
Explain what you are trying to do
Trying to make ai and player combat but my weapon is using a bp class and it gets confused who owns it
I mean this is a complex topic
It really isn't. Spawn an instance of the BP class per actor, set the owner if necessary.
An actor shouldn't be owned by multiple actors. As a matter of fact, I'm pretty sure it isn't even allowed.
Yeah
So, without more information, that's about the most accurate answer you'll get.
Okay i got it somewhat working. Now the problem is when the player and ai traces touch they activate at the same time.
I'm using the same characterbp for the ai
Anyone knows a cool trick to select a random sequence from selector without having tons of BB keys to randomize indexes?
you could probably create a decorator or service to force a specific child node execution
I think that's doable in C++, ie. similar to how the loop nodes work
a simple way to do it would also be to use a service to generate a random number and assign it to a BB key and select based on that
A decorator that just fails randomly (attach it to each node except the rightmost) would work, but it'd be a headache to control the relative prob of the nodes.
zomg's simple way would be a better solution than that epigraph imo
Oh agreed. Was just trying to find a way to avoid adding to the BB.
Be the change you want to see in the world.
I made one but couldn't solve the slate part
Not sure how can I make multiple outputs like in the simple parallel
Source code is terrible to read btw ๐
It's a very bad implementation with no comments
Barely understood some parts of it
@ocean wren is there any possibility you know anything about this?
Since you are also familiar with slate black magic
its a function in FEdGraphNode you'll need to override
So you're trying to create a node with multiple outputs?
its basically just a set of SGraphPin ... pins being the input output connectors
How can I tell composite to select a specific pin
have you got an edgraphnode derived class?
I got aUBTCompositeNode derived class only
It's essentially same with sequence composite
hmm, whats the base class of that?
UBTNode
which is derived from?
It's the abstract BT Node, derives from UObject
All nodes derive from UBTNode in BT
From task nodes to decorators, services etc
With some extra layers like UBTAuxilaryNode etc
ah right.. yeah, thats the "logical" node, not the visible one
Yep
it'll be wrapped in a slate version somewhere
but there'll be a list of inputs and outputs in UBTNode right?
Can't really see anything relevant
This project claims to work, it doesn't seem to have much magic at all. https://github.com/bretvincent/UnrealBehaviorTreeExtension
Oh god 
kind of surprised it doesn't inherit from FGraphNodeBase
Think I'm having a seizure, state machine selector.... ugh... <dies>
Haha. Sorry, didn't mean to summon unthinkable horrors into the channel.
I just thought about you when I see that
I'd say use it just so you can see zoom's eye twitch in any screenshots you post with it ๐คฃ
That's just mean ๐
Thing is, I'm actually a fan of FSM, but mixing them with BT sets me off ๐
I love FSM too but until it gets a sphagetti hell
Usually pretty quick ๐
actually, no, I tell a lie. Statecharts could get quite complex and still maintain usability
but nobody uses them ๐
hey would anybody have any ideas on how I can make the detection animation smooter and somehow turn towards the player when he moves?
Why do my MoveTo nodes not show all my blackboard options
my two other keys show but not the new object one I made
I have a object and vector I can choose from and selfactor
but my new object wont show unless its a custom move too or a different node
only on the simple moveto does it not appear as a optoin
try specifying that the object's type is actor
Has anyone seen the Visual Logger record to file (-EnableAILogging) getting capped? Seems like maybe there's a ~1GB file size limit...
thanks @misty wharf i felt like I missed that let me double check that
yeah was forgetting that thanks
you know why Icant get my custom move tos to ever finish execution? I have it fail or succeed depedning on the outcome of the moveto and it always just runs forever.
what is the benefit of pawn sensing over AI perception
It's older. AI perception replaces it. https://forums.unrealengine.com/t/pawn-sensing-vs-ai-perception/361144/3
touche, almost!
@ocean wren what do you think about this issue?
Pawn Sensing was... not great. If AIPerception is half baked, Pawn Sensing was quarter baked
I mean the pawn sensing guys. I hear Tom has it in his tutorials
Tom?
Who Tom?
But yeah, pawn sensing was superceded pretty quickly by the perception system. Which needs a good rewrite at this stage.
Looman iirc
hey guys I've got a question regarding AI behaviour. So my blueprint coder has suggested to me that a hostile AI circling around the player controller will be difficult and I should consider 'smoke and mirrors' methods to trick players into believing what is happening is happening, but in reality it's a trick
the desired mechanic involves a barrier or area around the player that project which stops the AI pawn from getting closer, so they will circle around waiting until they can get at you
how would one go about doing this? how difficult, and what measures would need to be taken for multiplayer open world compatibility?
circle strafing the player is something you'd do with EQS pretty easily. They used that approach for a Square Enix title.. sadly the presentation online is in Japanese, but I saw the english one and using EQS queries would work fine.
I didn't know WHICH Tom ๐
I think only one Tom has pawn sensing tutorial
in entire universe
or even multiverse
ah, possibly.. I haven't seen it
it is on udemy
oh right, probably why then
Not always, but I'm suspicious of it ๐
so I'm not a coder I'm just the boss trying to do my own research and better word my requests to my guys, could you explain what a EQS is>?
its the environment query system.. so the example was that you use that to select a position around the player, using EQS you can get the player relative positions on a circle and move to that
it is about sensing stimulus generated within the environment of a pawn
I am invisible
just so it is clear
if you look for environment query system on the UE docs you'll see some examples of what it does
okay that makes sense, and how costly would that be in a large open world multiplayer project?
just to throw this out there on the mechanic itself so whatever is suggested would suit the needs;
player has a torch and shadow monsters cannot come within the radius of the light. it's not a hard block on the radius they can still come into it, for example to 'test' how much it hurts or make a quick swipe at the character even if it means taking damage, or being forced into a corner and then the torch light shined on them.
otherwise when not being hostile they will circle the player and wait for an opening like a predator circling a group of prey in a defensive position
light in general modifies where the AI pawn can and can't go, so environmental lights as well or the sun BP
There's an example of this in action if you look for the EQS might be pinned in this channel. You won't understand the logic, but you'll maybe understand what its doing
I can grasp what I'm visually presented, yea
I'll look up the EQS documents right now, if you'd be able to provide any point to said pinned note that would be wonderful
There was a square enix presentation, by Eric.... can't remember his name. If you're around later I'll dig it out for you
you may need to redefine how shadows are produced
Eric Johnson I think?
might be on youtube, but I'm not at my PC right now
in meeting at work ๐
I'm on graveyard shift for the next 8 1/2 hours, I have all the time in the world ๐
Well, give me about 4 hours ๐
sitting here all night I may as well manage and research for my project know what I'm saying? aside from catching up on my books haha
I'll hold you to that! just flick ya a quick DM so you can find me easily
fairy nuff
you are?
semi transparent?
actually there is a material which can make character semi-transparent
I may provide its link to you zoombapup
You can make characters do all sorts of fun rendering stuff..
-> Create a circle either with EQS or just pure math by projecting points to navigation
-> Store locations in an array
-> Move to each location and when you reach increment the index integer and move to next location in array
-> Before you move do a path finding test by FindPathSync function, if path is not reachable skip the index and increment again to move to next circle point
-> If index is > length - 1 set the index to 0 and loop again
hehe yeah
That's how I did it a few weeks ago for my client
Pretty much same mechanic
?
i've got my my AI to follow the player effectively but they will just stand still every second or so for some reason, the screenshot below fixes the stopping problem but then makes the movement of the AI extremely jittery, is it easy enough to add "Move To" code to a task or is there a better solution?
define jittery
How do you define shadows?
the character literally shakes left and right which i'm guessing is due to the find player task running twice
mhmmm
I tried just connecting move to and the task with a parallel but then they don't move at all
No idea what you are talking about, I replied to "circle around player controller" question
is that so
I think that was original question
but if you wanna ignore, your choice
ยฏ_(ใ)_/ยฏ
which is weird because surely if i'm making the find location task the priority in the parallel then it should work fine
right so the question is why isn't the move to node working in this scenario?
well check the blackboard
hy everyone ,
im having here a problem with my random ai spawn code :
glad if i cant get some help
thats my code who is i made inside the level blueprint and somehow it doesnt work
It's a bit difficult to say without more details, but my guess is that your player pawn is not a SimpleAI
How does dominant sense in ai perception work
Pretty sure its just a sort index, so that if you get competing senses there's a tiebreaker value for which one has priority? vague memory of it though, so check the code.
ok thanks
also im trying to get my ai zombie to go towards the target thats closest to it. how would i set that up
i already have set up the logic for the zombie to only detect friendlies and store them in a variable
friendlies??
you want it to eat other zombies?
Anyway, that question is the kind of thing you'll find in literally every AI tutorial on YouTube, so suggest you avail yourself of those. It'll be easier.
Question. Is the EQS system an alternative to Behavior Trees?
Not really. It's used to get data about the environment. It's more of a compliment to AI systems overall.
Ok thanks.
Does it require a navmesh? Or could it detect objects that are not in a navmesh environment? like a vehicle, or aircraft?
It depends on what generators and tests you're using
Some of them make use of navigation data, but many don't
Has anyone figured out how to force an update on AI perception if the FGenericTeamId of some actor changes?
Eg. I want certain actions to make the player to be perceived as hostile
It seems the only way to do it is to unregister the player from the entire perception system, and then re-register? Seems kinda iffy to do that :P
Ah, looks like you can do
PerceptionComp->ForgetActor(ActorWhoIsNowHostile);
PerceptionComp->RequestStimuliListenerUpdate();
Oh. Actually you don't even need to ForgetActor, just request the stimuli listener update
I thought I tried it and it didn't work but it would appear to be working now :P
Is it possible to have a navmesh on land and a navmesh on a boat and link the two while the boat moves so enemies can go between land and boat (if the boat is nearby)?
Or have a baked navmesh on a moving object?
@ocean wren Can you add me to your friend list if possible? I've mentioned a studio about you and would like to send their message to you, I remember you were interested in job offers a few weeks ago
morning all
It says you're not accepting friend requests
You can add me apparently ๐ its what my students usually do
goddam it, its python time again ๐ฆ
Parsing imdb data from a zip file, turns out the imdb scraping library I was using was waaaaay too slow. I've got thousands of movies to get through
So, its back to zip file unpacking json files because there's the same info in the archive. But now I need to add a MovieNet import settings dialogue in PyQT so it isn't quite so goddam poor usability wise
Sorry, still couldnt figure out that functionality of Discord. I've sent you one
Is this for your actor AI 