#gameplay-ai
1 messages · Page 179 of 1
I do wonder what method pubg is using specifically
it used to be a problem that loot didn't spawn at the start
took a while before it started popping up
although that could have been some kind of latency issue as well
hmm, if something is spawned in UE it should arrive to client on next network update
it shouldnt be a visible latency
Yeah
what do you wanna know?
a good tutorial to tell me how to apply sight sense with damage sense ?
out of curiosity but why anya does not have pink hair though
cos she's a spy
girly color maybe ?
what the heck is damage sense? point damage and stuff?
so spies get attraction these days ?

surprisingly the anime seemed to be interesting
i watched the 1st season
I also liked it
so anya is in profile picture does not like girly colors? 
she is disguised
disguised but still Anya lol
perception
what cant you understand in this?
i was trolling this is the only image i could get this day the anime was now so i could not find one 😄
sight radius is till what distance it can detect enemies
lose sight, when will it lose its sight from the enemy
etc
i want to implement the on perception update right because most tutorials on utube make the basic things
what special do you wanna do?
i control 2 players
so i want enemy to focus on the first one to see
until enemy kills him then go to the next character and so on
it's simple, make a local variable for an actor you want to attack
i did
but at multiple sense the on perception update event get complecated so i need a tutorial did something like that to get hints about the implementation
at multiple sense?
sight, hearing, damage etc
you mean things getting sensed again and again?
but you are locking your target with sight sense right?
yes
sight sense is the dominante
but what if someone hit me
i want to check the location (damage sense location) then oh this one attacked me so move on to the sight sense
haven't used that one yet
but 1 moment
This episode we fix a few bugs discovered since the last episode before adding the damage sensing config to our AI. So when we punch the AI, he notices us and gives chase.
Support me on Patreon and get access to videos early, join our developer community on Discord, get exclusive behind the scenes videos on my projects and much more over at htt...
maybe this can help
i watched it
then you have to ask help from AI gurus here
okay thanks for help and ur time
@celest python btw do you think there's a use of two BT for a character?
yes
Alien Isolation runs two different BTs for its Alien character
one for head, one for body
they communicate a lot though
ikr
saw it too late buddy
@peak oxide because both think they are not a real family
who ?
forger and the woman
r u trolling ?
didnt you ask why they call anya-san but not anya-daughter and remove later on lmao
couldnt respond in time
anya-san (son), i was trolling lol
u did not even understand the joke
but understandable 🤬
sup. OnInstanceCreated isn't getting called for one of my BTServices. likely because... well... i'm not creating an instance of it. how can i run something to only happen once when the service initially starts and never again? i'd rather not keep a boolean that keeps track of this.
OnNodeCreated?
there's also OnBecomeRelevant but it gets called quite a bit, so not exactly what i want
oh actually i think what i'm looking for is InitializeMemory
BecomeRelevant is what the Blueprint version of Service uses to call ReceiveActivation*.
It's when the service is "logically" initialized. I.e. When the BT starts evaluating the subtree your Service is attached to.
InitializeMemory does look like the place for a one time ever call, but the way "non instanced" nodes work is strange, so look out for that.
yeah actually this won't do
because it happens before the pawn is controlled by the AI (as far as i can tell)
oh actually, no. i'm wrong
it's already possessed but the value i need is set at a later time
hm
yeah, it's unfortunate. looks like i'll just have to set a boolean. oh well
Anyone have words of wisdom on when a state tree should be considered vs a behavior tree? I am but a plebian
I am coming across state tree because I am using MassEntity and it seems to have integration with State Tree
Noob question: struggling to find a decent spider AI navigation system to traverse walls, ceilings for an internal project. Thinking of writing one myself and wondering if there's a demand for this kind of plugin in UE marketplace?
Hi! How would I set up shared memory between multiple instances of a behavior tree? Like, say I want multiple AI controllers to know about each other’s positions. How can I do that
Would I use NodeMemory for that? Or the Blackboard?
I specifically want to group certain characters together
Statetree just has selectors from BT
never tried but BB has sync modes
might be what you are looking for
fantastic tY!
There's a line trace on navmesh function you can use to get distance to navmesh edges
I don't know about you guys.. but in this kind of thing, I'd switch off physics collisions for the duration of the takedown and then switch back on
Just in case you get some clipping through geom
How would someone build navmesh that is super large by few km x few km?
Not talking about nav invokers
My space is constantly occupied by agents in at least 300m x 300m
I probably wouldn't use a navmesh for a large area currently
What would you use?
Navmesh is 11years old but seem powerful. No idea what's new after 11 years now
I'd use a grid based pathfinder, or roll my own sparse navmesh
it does depend a lot on the world though, how dense it is, if we care about collisions etc
Hmm even the ground is always uneven and slopes a lot?
it very much depends on the world you're creating.. if you have to run physics etc.. lots of different factors
That's a solution too. My basic check is mostly fine, only when the attacker and victim is moving a lot outside the path I was checking, they collide with obstacles just a bit. Wouldn't hurt much for a game to clip a bit through objects. Better then letting the player rarely use the Takedown ability since there is no perfect space available.
Yeah, bit of clipping is fine for games imho.. you see it in tons of games
As long as you have a good rough pass to position as you've described, I think it'd be a decent tradeoff
yeah
Only two person managed to build 8km x 8km navmesh as far i know
Well, navmeshes aren't precise to geometry either.. so its always about how acceptable different solutions are
Yeah, I wouldn't use the Recast navmesh system.. I'd make my own cell based navmesh
Hmm
Using only bounds boxes for distant buildings
Yeah, its not "easy" 🙂
naah, its not THAT advanced
Having said that, it'd be interesting to generate a bunch of recast based navmeshes and then stitch them together.. but really, the navmesh invokers thing is build for this scenario
Does it make sense to invoke 300m x 300m every seconds player moves?
Most use case are so small
for 300mx300m no, just use a dynamic navmesh
Or you mean a larger area? navmesh invokers build navmesh around the invoking objects
Larger area. The whole map could be few km x few km. The play area is where the player is at* but constantly occupied by agents in large meter area up to 500m x 500m max
have a look at the navmesh invokers, see if those are useful..
Noted. Thank you for the advice.
https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Plugins/Runtime/SmartObjects/Source/SmartObjectsModule/Private/SmartObjectCollection.cpp#L40
Anyone knows why SmartObjectCollection is disabled on client and how it is supposed to be used in networked games at all given it's neither replicated nor loaded on client?
Hello,
For a map which is really huge. similar to Pubg, what would be the best for integrating Navmesh
it's quite huge so Navmesh takes time to build
heard of navmesh invoker but I have heard it's quite buggy
any suggestions?
are they stable btw?
I haven't encountered any issues yet. I've tested in PIE and packaged builds.
You can also go with an older approach, and use a static navmesh instead of a dynamic one. Maybe coupled with a ZoneGraph for long range navigation.
My maps may not be 300x300 though 😅
What are some ways an AI might calculate the probability of a successful melee attack? seems like there are a lot of ways to do it, wondering what others have tried
Depends 100% on how the attack would be performed and what factors affect its likelihood of success
If it's a pure dice roll then the probability is just a simple calculation based on the odds
but if it's not then it's pretty hard to say without knowing how exactly the attack works
trying to debug some NPC AI. was wondering about why simulation is not active for some of my pawns, and how to force them to simulate. That seems to be the difference between the NPCs that do work and the NPCs that don't. Added a picture of the debugger for comparison. The NPCs are set to walk and move around to different points, which has worked in the past but after some world partition shenanigans and tweaking of navigation settings many of my NPCs' pathfinding just broke.
^ my dumb ass only just found the "max agents" option in project settings :/
hahaha.. yeah, that's an important one
Trying to think of something fun for my graphics class next year
I guess getting them to look at metahumans might be fun
I guess some kind of animation thing
maybe Parkour? that'd be a nice theme...
MASS PARKOUR
Construct a scene where at least 1000 characters display some form of parkour through an environment you construct
I guess I could make it more of a challenge, give them marks based on how many they can get to parkour
But metahumans are too heavy for most PC though. Unless your school PC is powerful
Well, they're not that bad.. but yeah, part of the point is to see if the students figure out a way to make them more performant
Thought I'd share this on here.. seeing as its ML stuff.. neural painting experiment 1 on my YT
Testing out some workflow details for Neural Painting, basically taking a text prompt and painting an image of it using a neural painter machine learning models. This prompt was "a beautiful illustration of a rift in time, contained within a cube in space by hubert robert and lee madgwick and Noah Bradley and jan urschel, unreal engine, 4k hd wa...
Is there a way to optimize perception checks against irrelevant sources? Like don't check vision between teammates? Is that what the team settings do?
yeah
Thanks
Ok, here's todays fun...
AI generative art. Text based prompt, painted by an AI painter. The workflow isn't as smooth as it could be yet. Have some issues with resolutions and FFMPeg not wanting to create the video sometimes. But I'll get that sorted. All created in python. Rendered on an NVIDIA A6000 and an AMD 5950X box using Ubuntu. Hope you enjoy the final image.
Very cool!
i like the parkour idea, what kind of stuff have you taught in graphics class before?
All sorts really. Whatever comes to mind at the time. Things like crowds, materials, dissolving etc.
what course is it actually? Sounds like generalist game dev course
I teach a bunch of modules on a game programming degree
I teach graphics, advanced graphics (MSc), procedural content generation, big data, cloud development, ai, game programming, game engine architectures.. stuff like that
doing a new Game AI degree next year, will do some trad AI and ML in that.
learn.unrealengine.com is probably not a bad place to start
Hey!
I set up some basic right-click walking on a navmesh and I ran into a problem. I'm using Characters and CharacterMovementComponents with bUseAccelerationForPaths=false for the Agents. The agents move correctly but they don't stop directly on top of the mouse cursor. It seems this is affected by the size of the collision component on the agents but I wasn't able to find it in the engine code yet. Obviously I don't want to set my CollisionCapsule radius to 1.0 but I still want my agents to reach the exact destination. I'm sure this is a problem that people have ran into before. Any help would be really appreciated.
EDIT: Managed to solve it by switching from UAIBlueprintHelperLibrary::SimpleMoveToLocation to AAIController::MoveToLocation
Good afternoon! My task is to do it this way! I have two artificial intelligence objects, a fly and a frog, a fly appears with random sizes outside the camera and moves to a random point on the map, the task is like this: smaller flies are closer to the frog, larger flies are farther away from the frog. How can I do this?I need to state everything as clearly as possible so that I understand. Thanks)
simple linear algebra?
Are you telling me that?
yes?
I need to do it any way I can. 1) A fly flies into an area determined by its size. 2) So that it does not fly out of it. 3)In this area, it also moves randomly but does not fly out of it
Sounds like you have an algorithm in mind - might as well try to code it up no?
I have problems with English, do I understand correctly that you think I have something in mind?No I don't even have any ideas how to do it
Hey Guys, very stupid question, but how can I reorder variables in a Blackboard?
is there some sort of a shortcut or else to move a variable?
Oh well...found it
it's the most F*up way to reorder
for the future people that are wondering how to ...
Do you want bigger flies to stay away from the frog?
do you have the info of minimum and maximum size of them?
do you have the info of how big is the area etc?
you can create a simple formula based on those infos
Open the blackboard with the property matrix, open the Propery Editor and here you have a list of Key with all the variables
you can reorder it there!
the star is my frog, the yellow circle is where the flies of different sizes appear, the lines are how they should fly depending on the size, the inner circle of the fly usually has a size from 0.1 to 0.5, from 0.5 to 1 size in the outer circle
okay, so you just need to map those numbers to radius of circle
try to get random point in navigable radius, then spawn small flies in the radius of half of that circle
and for bigger flies, provide the full radius of circle but dont accept values closer to the frog that is lower than half size of the circle radius
Hey folks! My dynamic navmesh starts rebuilding in a worse resolution if I increase the camera height, very similar to an LOD. I searched the web and went through the project settings and I have to have missed the settings, but I need it to keep "LOD0" all of the time. Can someone please help me?
I'm using the UE5 mannequins and the anim blueprint works fine for my player characters but my AI just glide without animating when the behavior tree tells them to move to a location. What am I missing?
I've never heard of that happening. Also, is it just a visual thing, or does it actually impact pathing?
What's the best AI decorator/service method to use as a selector for checking values in the gamestate? For example I want the AI to keep checking if it's someone else's turn in the gamestate. I'd prefer to be able to check values from the gamestate as opposed to specifically setting blackboard values for the AI Controller
You have to write your own decorators and such for that
Oh ok, i didn't even realize you could do that...now i see the "New Decorator" button 😄
Nah, nanite has nothing to do with the navmesh.
You sure you're not using invokers or something?
I started using invokers, but it was happening before as well and it even has issues in editor @ocean wren
Hm maybe it's an issue of my landscape, I'm using the Voxel Plugin
Will have to look more into that
I will, thanks for the suggestion!
yeah, 99% going to be that
Anyone know why my AI would be gliding instead of running with the Move tasks?
animation issue
hey there. i'm trying to populate my level with characters without placing explicit spawn points.
my high level idea is to just randomly pick points on the navmesh and plop them down.
i'm only using blueprints, though, and i'm struggling to implement it.
i found this node, but i'm not really sure what i need to feed into the Nav Data pin. the navmesh, essentially, i guess? is there a way for me to get it somehow?
you dont need to feed it
if you let it stay as nullptr, function feeds it with default nav data on its own for you
in C++ side
oh sweet, thanks! when you say "default" nav data, what does that mean?
i'm assuming it means the entire navmesh?
what is the best path finding algorithm?
RecastNavmesh thing
you can see it on world outliner
engine spawns it for you
any version is still the best, i tried almost all of them so far
can you compare A* with vector field?
what feature you want to compare? Both are fast, the vector field mostly 8 directions limit only unless you write it differently
are there any feature than performance? are there other factors to compare?
efficiency, accuracy, extension use like influence paths or prediction etc, better memory as well but memory is subjective as that requires skill
What do efficiency and accuracy mean in this case? don't they just find a a shortest path?
because there are pathfinding that waste a lot of extra calculation to find path that are not necessary and some usage can be use to make it less robotic
either way, it don't matter for whatever pathfinding you choose
unless you have some specific use case
time to learn EQS i guess
Thnx
I don't see how to set Vectors in EQS, the way I do it atm, is that I set 3 floats, one for each axes, is there a proper way to do it? (in c++)
Nope!
EQS' parametrization is one of the weird design quirks in it... it marshalls everything as floats, so you can't really give it a vector because that's three floats
Best for what?
Ok lol 🤣
I've seen also a way to link to a blackboard, but I can't find a way to implement it
I'm using the Manny and Quinn mannequins included. It works fine when I move around as a player but they just glide when AI use move.
Your best bet would be to create an EQS context which returns the position you want as a vector
That's probably the most straightforward way to go about it - and a context can access a blackboard as well
for ai characters to find path
yeah i've done that for some of them, but I also need to be able to just test out positions
So I"m ending up with that ugly thing there:
guys
how can i make it so when my ai gets blocked from reaching the path point it goes onto the next
cuz when i close one door, it runs all the way round to the other
how can i fix that
I'm having the same issue, it look like the agent is outside the available navmesh and get stuck because of that
on my side if the AI push the pilar here, and get outside the navmesh, it get stuck
ah
i want to release my first game by the weekend but this bug is just... eh
idk how to fix it
or is it possible to make the ai not collide with other ai's so they dont block each others paths
you can set up the collision channels on them so they ignore or overlap each other
Is it possible to add your own interrupts to AI Tasks?
Maybe interrupt isn't the right word, but like a custom event that can be executed if the task is currently running?
Has anyone worked with generating complete new navmeshes at runtime? For me, it costs around 15ms for "Nav Tick Time"/"Nav Tick: Mark Dirty". I already tried using "Do Fully Async Nav Data Gathering" and reducing "Dirty Areas Update Freq" from 60 to 30. Any ideas on how to reduce the frame time for the nav mesh building?
(Using UE5)
i often dont talk in this discord, but recently i have been encountering something weird. My AI used to work with AI MoveTo in the BP as testing. then one day as i was finishing level design it stopped working. I have deleted the nav mesh and recast and made a new one and still no luck. I even finished the Tree for the AI (Followed Unreal's documentation) and it also does not work. any advice?
the AI moves a few inches, then fails
I'd check your CMC, level settings, see if something very basic is all jacked up.
Guyssss!
the perception system is not detecting buildings. I checked the colliders. There are colliders attached on the static mesh. What could be the issue?
What do you mean it's not detecting them?
Are the buildings supposed to produce perception events? Or do you mean they don't block sight and lets you see things through them?
yes, the bot should know that it has a building in its vision
if you press F8 and click on your AI to move it slightly
does it work?
I thought it would detect any actor in its perception but it seems like I will have to do something else to achieve it
Only pawns will be detected by default
There is a component called sense stimulus source or something like this which you can add to other actors, or manually register with the perception system
I think it can detect the guns as well in the game. Just a moment
If the gun is a pawn (or you have the aforementioned comp on them) then yes :)
it has been derived from Actor class
let me check sense stimulus source
bro, yes here it is
the bigger problem is that the buildings and stuff are done in BPs and I don't know much BPs xD
heh
@round sand yeah just add the comp in the BP it should work more or less the same way :)
It may be a good idea to consider refactoring your system so you have a C++ baseclass for your buildings
yeah, i have told that to my teammates
anyways, thanks it worked
how to make navigation mesh applied to flying pawns that can fly over the obstacles?
Only move with the X/Y parts. Just keep the Z.
Other option is to build a 3D nav system
Hello guys, little issue with a target location. My AI can hear my radio sound and get it location, the problem is the AI can go there. Is there a way to give a walkable location near this point? I tried getRandomPointINavigableRadius and GetRandomReachablePointInRadius but of course the first place is not reachable. Any idea?
project to navigation can be used to project a point to the closest position in the navmesh
you mean basically simulating gameplay and moving the pawn incase its stuck?
No while the game run inside the editor, you press f8 to eject from the player pawn, and then click on the actor stuck and slightly move it.
it isnt stuck
the aimove to doesnt work, but moving to location does
the ai is also detecting random locations alright also
One thing you can do, is printing the name of the actors with the positions you have
it see's random locations, but the aimove to constantly fails. both in BP and in the tree
https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/ArtificialIntelligence/BehaviorTrees/BehaviorTreeQuickStart/ this was what i followed in the tree
Yeah but print the name of the agent you never know
Also there is a setting that says to the ai to move, even if the path is not complete, have you activated it?
yeah this works entirely
whilst this doesnt
and the same issue happens inside of the tree which is more confusing
No this is normal
One is to simply move the pawn
While the other is to move along a path on a navmesh
If the navmesh isn't baked or not even there, if will not work
nav mesh exists, i changed the agent at one point due to the ai bumping into walls
but even when i changed it
it worked for a while after that
When you press p on the keyboard you can see the navmesh?
yea
Btw, why are you doing it that way?
You could assign a random vector in the blackboard, and then link the "move to" to the blackboard
there are a lot of areas where the vector can be chosen out of bounds
its a map full of hallways basically
and there are large gaps between hallways
That not what I'm saying
Instead of finding a vector and assigning it in the "move to" in a blueprint,
it isnt assigned in the bp
its done inside the tree
the only reason its in the bp was originally just to have it working for testing while i was finishing level design
But that's a bp no?
^
it doesnt work in the tree either
it gets the position, but also fails the moveto
it gets aborted
Sorry I'm on mobile, hard to be as responsive haha
If you simplify the environment or do a new empty scene with that ai actor, does it work?
no
making a new level, the ai still just stands still
when executing the aimoveto in the BP method, the ai moves about a foot then stops moving saying it was aborted
but in the tree, no movement at all
not even slightly
Don't you have new colliders inside the agent?
the only modified thing in the agent was its size
Like idk you've added a shield and didn't realize it has collider...
Can you restore it as it was?
the only thing on the ai is a trigger
it didnt work when i tried it yesterday
but the size never caused a issue when i did it
it properly resized and all
and the ai moved then
Can you remove temporarily the trigger?
still no movement
how would i go about testing that
i made a cube and set its movability to moveable and the nav didnt update if thats how
In play mode, press f8
Then p to display the navmesh
If it's red, or if there is cutout around your character...
There is an issue
this is the agent settings
Is your character spawning or it's there when the level load?
it was coded to spawn in originally
i have the pawn already hooked up for possession on create and load
Can you delay the spawn of it?
Or at least delay the time it start to move
Also there is a AI debug view you can enable
But don't remember the shortcut
To enable AI Debugging, while your game is running, press the ‘ (apostrophe)
that just opens my console lmao
all apostrophe does is this
I think you can change the key binding in the preference...
Cause that's what you need to debug
yea apparently its not smth set by default
lmao
move target is invalid inside of the tree
the “apostrophe” key (next to enter) while the game is running and the debug screen should show up.
I'm going to sleep, I wish you good luck :)
So another question about this node (not well documented)
it returns me 0 0 0 as projected location. And I don't really understant what is Query Extent
Query extent is how far from Point it will try to look
If it can't find a valid location to project to within the extents, the Return Value bool will be false which you should check
it returns me false
let me try to extend the query
hmm I extended the query to 1000 but still false
for X Y and Z?
yup
That's 10 meters so if the point isn't further than that it seems like it should work
Hmm 🤔 I think that looks like it should do it
Yeah that definitely looks like it should be within 1000 units from the navmesh
:/
😄 is there a good way to make ai's communicate with each other?
Or interaction between them.
For example reviving or healing each other , etc etc
depends on what exactly you need to happen, but in most cases you'd call functions on the target you're doing something with to inform it about it
Question: I have a BP_MainCharacter (not the real name but the idea) and an ABP that contains my main locomotion system, which is the same for both the player's character and AIs. For the AIs, should I duplicate this BP_MainCharacter or Copy it or can I just set the AI Controller setting in the BP_MainCharacter to my new AIC? What's the best practice?
I just make a child of my main ABP and then override the states. It works for my game because the only thing that is different is the animation's that they play.
So I have ABP_Main and set up my event graph logic/state machine. Then I make a child of that, so like ABP_Grunt or w/e. In that ABP, there is a new window panel called "Asset Overrides" and you can change the animation stuff you play in the state machine.
states can be overiddden??
Yeah
i thought only anim instance was allowed to inherit from - not the graph itself
Thank you! Is there a way to remove the camera and camera boom components on that child Blueprint so that they don't appear in the editor? Is that a problem to have them appear? The BP_MainCharacter has them of course.
I don't understand the question.
Just delete the components and you won't have them anymore.
I've tried and that doesn't seem to work in a child Blueprint...
Thanks for your help on the other aspects though!
That's what I thought, and I was just asking then if that's the case in your project as well, whether that's an issue?
I don't have my enemies as a child of my BP player
Ah sorry I read your reply wrong...
They all inherit from a base character class.
I thought you said you just had a child of your BP_Main
I understand I think you misunderstood what I was initially asking and I read your reply wrong, my apologies
Yeah - I read it wrong. Mentioning the ABP is what threw me off.
Just make a base character class, then inherit from that
If you want shared functionality that is
But if I didn't read it wrong, @celest python would've never learned that you could override the state machine assets 😛
So yay, more learning
yaay 
A group/party manager of some sort seem fitting for this imo
FMessageEndpoint 🙂
Anyone here have experience with UE5 Smart Objects?
I have knowledge of Smart Objects, but primarily with Mass.
Hi guys I enabled detour crowd avoidance and it works fine but bots don't avoide player (I registered player as agent). Any ideas?
guyss helpppppppppp
the stairs are not getting navigable. What needs to be done?
Hey guys, I’ve this very simple problem. Basically this character with pawn sensing. is able to follow me without problems in each part of the map. But somehow, he’s not able to climb stairs like this. He’s always get stuck on that position. Any idea of what could be the cause of the problem?
i followed this
but still it looks whacky
Don't have the collision of the stairs actually represented as stairs, do a simple slope as collision surface
Yeah, been looking at some different versions of this
Project website: https://ajayj.com/dreamfields
Paper (arXiv): https://arxiv.org/abs/2112.01455
We combine neural rendering with multi-modal image and text representations to synthesize diverse 3D objects solely from natural language descriptions. Our method, Dream Fields, can generate the geometry and color of a wide range of objects without 3D...
The basic idea is that you represent 3D as signed distance fields or neural radiance fields.. and learn some optimization from usually multi-view stuff
but that zero shot paper adds clip guidance to the generation, in much the same manner as the text->image generators you're seeing now
i.e. the model is trying to optimize for the "teapotness" of the object and produces a teapot
using clip guidance (clip is basically trained on millions of image->text pairs, so it understands correlations between words and image representations
you mean there's an issue with the model?
skiggz: potentially yeah.. it could just be getting hung up on collision
yea it's acting weird. One moment
Are you aware of any bugs when finding smart objects in the scene using the "Find Smart Objects" function?
BTTask Move to returns InProgress as the Result. It happens to me when the AI tries to move to a location where there is no path available. What is the meaning of "InProgress"? What use has this result?
inprogress is handled by the behavior tree component as an indication that the task is working and has not finished
But the tree "finishes" the node. It continues to the next node.
My AI thinks he reaches the goal because the MoveTo finishes with "InProgress" which happens when there is no path to the goal. How should I work with this? 😅
I mean I can create a decorater which checks if their is a path available, it's just weird to me that the MoveTo finishes positive when there is no path. There is probably a reason behind that, which I don't understand the concept of it yet.
Try disabling "allow partial paths" on your moveto. That will fail if it can't get within AcceptanceRadius units of the goal.
Right, thanks epigraph!
Not specifically I believe. I know in the past editor-placed smart objects did not register properly with the smart object subsystem. This could cause them to not be detected while using FindSmartObjects. I'm not sure if it was patched as I simply spawn them during runtime now.
Thank you, I've figured it out...Now to figure out how to use the Slot Transform to orient the AI away from the object to sit...
Emma Watson has been ruined for me thanks hahaha
I saw this clip the other day pretty interesting. Would be very neat if we could systematically change an entire art style of a video game using something like this
Ahh this is all part of stylegan stuff, neat
I'd play a joker theme game lol
Hi all, I am working on a large open world milsim. I know how to pathfind for vehicles that are going from town to town - I can either use A* on my roads (USplineComponent), or use ZoneGraph.
However, when the player engages the vehicles, the vehicles should be able to scatter & take cover, pursue, or some other local navigation. How could this part be done? The terrain is at least 30x30km, so I assume it is too large to build a navmesh 🙂
Check out Navigation invokers.
Anyone here know how to open the AI Debugger on a german keyboard?
I'm pressing every imaginable key combination in UE5 and nothing
Hey, as soon as I enter the right branch for cover and the condition is no longer true, the entire behaviour tree stops and does not return to the left branch. Why?
Hi guys, I have a level in UE4.27, and I have grouped a load of static meshes together. Is there a way to turn these all into a navmesh (as well as the static mesh they are now)? Thanks!
I guess it depends, I'd probably build a heirarchical pathfinder that used different representations depending on where I was on the map. For large open worlds, there's usually a good deal of open space where nothing can collide, so I'd probably build my own navigation system based on a quadtree. What I would probably do, is essentially hook the navmesh generation and build a higher level representation, probably based on loading each tile of the terrain in the world, build a local navmesh, then store that in an octree. Then use the navmesh representation to do heirarchical paths though.
The navmesh system as-is does a pretty decent job of rasterizing objects into a polygon soup for navigation, so I'd try and leverage that, but just accept a greater memory footprint and cache it all in my own data structure.
essentially, build a bunch of NavData "tiles" and cache them. Rebuild the tile cache when stuff moves etc.
Hey all!
On the topic of navigation: I want to be able to specify which AI agents can use a certain nav link proxy. E.G.:
In this example, we'll say the wooden guy can jump and should therefore use the nav link proxy here, while the white guy who can't jump should look for another path or just give up. In other words: White guy should never try going to this nav link proxy in the first place
My preferred solution would be to have an overridable function in the nav link proxy that takes in an agent (actor or AIC) and returns a bool telling whether or not the agent in question can use the nav link proxy (E.G. this agent can't jump --> Return false). UE's navigation system should then be able to use this function when creating/checking a path for an AI (E.G. by calling the AIMoveTo node) to avoid selecting a path with any nav link proxies that aren't relevant for the agent in question. Is something like this possible with UE's existing navigation system? Or is it possible to modify it to add this functionality?
.
.
Alternatively, a less-optimal potential solution would be to have certain actor types be able to cross the nav link proxies. To this end, I see that the nav link proxy's smart link allows you to specify "Supported Agents". So I made two of these types under Project Settings --> Navigation, and I can specify which of them ("Jumper" or "NotJumper") are supported in the nav link proxy's smart link
However, I can't figure out how to specify what type of agent my AI characters are. How do I specify that my AI agent is a "Jumper" or "NotJumper" in this system?
.
Apologies for the wall of text, and thank you for your time!
No problem, I think the MassSample will come in handy as they have a smart object for sitting on a bench I believe
@ocean wren so I have a few bots in the game. The area is huge since it's a game like PUBG.
What I am facing is - The bots seem to be stationary but when i inspect the position of the bots it seems to be changing but not changing on the screen.
My guess was that the area is huge and it could be some issue with things not getting replicated properly because the bots are far off.
If my main character is near the real position of the bots then they seem to be moving correctly but far off they seem to be stationary but actually moving when i look it into the details window
I am playing it as client
any guess what this could be?
here's the video for reference. You can see the bot is standing there but if you see the details tab, you can see the position is changing. Any idea what this could be?
Probably some kind of network thing unrelated to AI, I think there's a checkbox on the character or controller that tells UE to not bother rendering updates if the character is far enough away
like "don't update skelton something...." as usual its a checkbox 🙂
hey guys, never done any kind of AI before, is it hard to make an AI with the same level of complexity as far cry 3 enemies for example?
If you've never done it before, yes 🙂
Well, there's plenty of info out there.. I'd probably start by watching some stuff from GDC on YouTube
If I recall, Crysis 3 was mostly done by Matthew Jack, so look for his stuff, I know he did some papers on the positioning system that inspired Unreal Engine's EQS for CryEngine for instance
The navmesh system in UE is written by Mikko Mononen, who also worked for Crytek I believe
You might also want to check out info by the Guerilla guys.. who did a lot of tactical positioning stuff, a guy called William Van Der Sterren and another guy called Remco Strattman
alright, thanks!
I would recommend just trying to build some basic AI stuff tbh
That too
nothing wrong with just using some UE tutorials, but theres a looooot of crap out there.
Highly recommend reading about stuff from people who know what they're doing, even if its not in UE you know?
I thought UE inspired from CryEngine's "TPS" 🤔
for EQS
(tactical position system)
Other people to look out for are guys like Damian Isla, who started off a lot of the behaviour tree stuff while on Halo
Yeah, Mieszko was inspired by Matthew's talk about the CryEngine tps
and hence the EQS
Whats the guys name from Ubisoft.. damn I've forgotten.. did some streams about BT's recently?
people in here really liked them, but I'm blanking on the name
ah yeah, bobby
Bobby was more of an animation guy, but that's not a bad thing to think about for this kind of thing
I realized animations and AI tools are just same behind the scenes
resource locking, states etc
Well, choosing how to make the different things cooperate takes some experience
But as indies, we don't always have the animations to really do things well anyway 🙂
Yeah, Bobby's stuff is really good for getting a sense of how to organize your behaviours.
Even if he does think Behaviour Trees are useless.
Running Disco Diffusion on my local machine now, and dear god, this is so much more interesting in what it generates than midjourney/Dall-e.
Also, what a wild underlying theory. "What if we train a neural network to reverse the process of iteratively reducing an image to gaussian noise"
Midjourney is pretty boring in its output tbh
It seems to do characters and some other types of things ok but other than that it's pretty meh :D
Yeah, it does some really amusing things when you use well known characters/people, but it doesn't seem very good outside of that domain.
Hi guys, I have a level in UE4.27, and I have grouped a load of static meshes together. Is there a way to turn these all into a navmesh (as well as the static mesh they are now)? Thanks!
I don't understand what you're asking exactly? Do you want the meshes you've created to act as a custom navmesh? Or do you want a navmesh to be generated that helps navigate on/around your static mesh?
Silly question, I'm building an autonomous drone system for my game. Should I use a Sequence with the Decorator "Don't Move" (just a bool variable on the blackboard) and then call EnableFloatingMoviment or will this keep doing this task until the decorator changes?
Can nav meshes handle swimming or flying or do I need eqs for that?
Hi all, beginner question here, how could i get a behaviour tree sequence to reset when a variable of a pawn changed? Thank you in advance!
if i learn tensorflow or pytorch am i able to use them fully in unreal or just few ? is blueprint enough or i need to implement in cpp ?
thank you. I'll look into it
Well tensorflow and pytorch are generally used in python. I guess if you're a masochist you could do it in c++
, but idk why you would do that
What exactly are you trying to do
If you train a model you'll likely need to know some c++ to send the models prediction back and forth between python and unreal engine
Getting data out of unreal, run it through your learned model and send it back to unreal
My approach is to run my ML models as REST api's and call them via the Unreal Engine web requests code..
Using FastAPI, Cog and Kubernetes
Hello guys
Got a strange bug ...
LogTemp: Error: ABaseEnemyPawn::OnTargetPerceptionUpdated() Active: 1 / Sensed: 1 / Expired: 0
LogTemp: Error: ABaseEnemyPawn::OnTargetPerceptionUpdated() Active: 0 / Sensed: 0 / Expired: 0
My AI enemy keeps updating it's perception of the player pawn like a crazy old man
alternating between active / sensed 1 and 0
I am not even moving ...
any idea why ?
well, reparenting fixed the issue
how to make ai to not sight a dead character ?
switch its actor type to something else.. basically spawn in a "dead body" actor, delete the enemy character you were perceiving
u did not understand me i think
enemy killed a player character, so the mesh still exist (dead as ragdoll for example)
how to make the sight of the enemy to false
to go back to petrol for example
You can do the same thing.. spawn in a dead body, move the player character under the level temporarily.. then when you're ready, respawn the player in its respawn position once you're ready
i think moving the character under level will make an issue
Why?
yeah, but if you teleport the player when they die.. the last position will be the last percieved position
i.e. the last location they were seen at.. they won't be percieved under the level
there is no way to ignore the sight tracing ?
k
yeah, there's probably some way of disabling.. checkbox or whatever.. but its pretty common to do this to stop other issues
i tried to make mesh visibility to ignore but it did not work
no, it'll still have collision
it works but the enemy will wait till the character finish its death animation
it would not attack the 2nd character till it disappear under map as u said
No, as soon as it dies, you teleport it under the level.. meanwhile you spawn the dead version in the same pose as the character, with ragdoll switched on
and with the same velocities etc
what is the type of the dead version ?
if it is a character it will make an issue
You just need to make an actor with the skeletal mesh
and copy the pose and velocity from your player to it when you spawn it
so 1) switch off physics on your player 2) spawn the dead body with the same pose+velocity for each bone 3) teleport the player under the level 4) switch the camera to temporarily view the dead body and 5) restart the player after some timeout
I'm recording my exact inputs on my player controller, and trying to have them played back by the AI controller using the data I've collected. However, nothing seems to work. I know the data is recorded properly. I suspect it has something to do with the movement component, but I'm at a loss. Any suggestions?
It's a bit vague as to what exactly is the problem you're seeing
Because record and playback of inputs can have various problems caused by various different things
such as?
Well even something like framerate can affect it depending on how you're playing the inputs back, potentially causing different amounts of movement
I"m trying to create a playback of my character based on inputs alone. I record the inputs of my controller on every tick, then spawn a new actor, give it a controller, and have it play back all input data, advacing one "frame" of data per tick
Right, so what exactly is the problem with it? Is it moving a different amount compared to the player or something else?
It's not moving at all, unfortunately
Oh 🤔
it plays back the data (printing it do screen) as expected.
but the character isn't acting on the input
It sounds like it's just an issue with how you're feeding it the input I guess
Are you possessing it with the player controller when doing playback?
Yes, i spawn a new actor, new controller, then posses the new actor with the new controller
Hmm, yeah I'm just wondering if that's somehow the issue here, because you're sending inputs into a player controller, so not sure if that'd work with whatever you're spawning for it
I'm not sure what class your logic for it is, since it just says Target self - so maybe you need to make sure you do YourSpawnedActor->GetController and send the inputs off there, or try sending them directly to your actor
I'll try that and see if it helps. Glad to know i'm not the only one this kinda stumped. haha
tried both, neither work
does anyone know how to make Nav Mesh work with level streaming?
how do I get the "Does path exist" decorator to respect my custom nav data?
You may be better off creating a custom decorator if you struggle to get the default ones to behave as you like
i found it bro, you can register and unregister perception for specific character.
you can even unregister from specific sense too
Makes sense
damn I need this presentation so much
it was something I was expecting for a long time in gdc
Sounds interesting
Has anyone managed to make Touch Perception sense work? I am not sure how to approach the issue. I want to inform an ai that someone is really close to them
I've never tried that one, but one simple method would be to give your AI a separate collision sphere which is just used to detect things near it
Yeah, I saw that idea floating around, I just wanted to see how easy to use the integrated function is
For the life of me I can not get my zonegraph to connect
Does anyone see what I'm doing wrong?
anyone know why the function FinishLatentTask would cause a runtime error in my code only thing it tells me is my auto const cont = Cast<AZombieController>(owner_comp.GetAIOwner()); variable is null and when I check the behaviortreecomponeont and blackboardcomponent are both unreadable memory for some reason
nvm
figured it out
I may as well post this here
Does anyone know why my movement animation is not working when i use "Simple move to location" but it works when i use "Add movement input"?
I'm using one default actor inheriting from "character"
hello guys, when NPC try to reach player they move without the walking animation does anyone know why ?
character and npc have the same animation BP
i am guessing not the same class, and your BlueprintUpdateAnimation does a cast that fails for them
nope
acceleration always 0 zero
so shouldmove always false
idk why it is equal to zero
those solve the problem make the ai use acceleration (in movement component), i do not know why this issue in UE5
is there a way to make the NPC reach me smarter and avoid obstacles ? i use DetourCrowdAIController, and there is something weird too at the end of the video when i open the start menu and the fps of the game is reduced the NPC walk to me very smartly and reach me
should i reduce the tick of something ?
Yeah, nothing built-in for that. You could use a custom navigation filter, maybe? Somebody in this channel worked out how to create those about a month ago to alter the path costs based on whatever you want. They were trying to increase the cost of returning through the same door the ai arrived from.
Normal filters do, but the underlying class just asks "what is the cost between A and B". You can fill in any logic you want in the middle.
The main thing that probably wouldn't work is that without volumes, you aren't guaranteed to have polygons that split at your landscape layer boundry.
I'll save you a bit of time :D. I have some code that works you can modify to see if it helps.
Headers:
UCLASS()
class MYTACTICSGAME_API UTestNavigationQueryFilter : public UNavigationQueryFilter
{
GENERATED_BODY()
UTestNavigationQueryFilter();
virtual void InitializeFilter(const ANavigationData& NavData, const UObject* Querier, FNavigationQueryFilter& Filter) const override;
};
#include <Runtime/Navmesh/Public/Detour/DetourNavMesh.h>
/**
*
*/
class MYTACTICSGAME_API FTestRecastQueryFilter: public FRecastQueryFilter
{
public:
FTestRecastQueryFilter(bool bIsVirtual = true);
~FTestRecastQueryFilter();
TWeakObjectPtr<const UObject> WorldHandle;
virtual FVector::FReal getVirtualCost(const FVector::FReal* pa, const FVector::FReal* pb, const dtPolyRef prevRef, const dtMeshTile* prevTile, const dtPoly* prevPoly, const dtPolyRef curRef, const dtMeshTile* curTile, const dtPoly* curPoly, const dtPolyRef nextRef, const dtMeshTile* nextTile, const dtPoly* nextPoly) const override;
};
The important bit of setup (which determines which recast filter to use)
#include "TestNavigationQueryFilter.h"
#include "TestRecastQueryFilter.h"
UTestNavigationQueryFilter::UTestNavigationQueryFilter()
{
bIsMetaFilter = false;
bInstantiateForQuerier = true;
}
void UTestNavigationQueryFilter::InitializeFilter(const ANavigationData& NavData, const UObject* Querier, FNavigationQueryFilter& Filter) const
{
Filter.SetFilterType<FTestRecastQueryFilter>();
Super::InitializeFilter(NavData, Querier, Filter);
INavigationQueryFilterInterface* FilterImpl = Filter.GetImplementation();
FTestRecastQueryFilter* MyFilterImpl = static_cast<FTestRecastQueryFilter*>(FilterImpl);
if (MyFilterImpl != nullptr)
{
MyFilterImpl->WorldHandle = TWeakObjectPtr<const UObject>(Querier);
}
}
FTestRecastQueryFilter::FTestRecastQueryFilter(bool bIsVirtual): FRecastQueryFilter(bIsVirtual)
{
bIsVirtual = true;
}
FVector::FReal FTestRecastQueryFilter::getVirtualCost(const FVector::FReal* pa, const FVector::FReal* pb, const dtPolyRef prevRef, const dtMeshTile* prevTile, const dtPoly* prevPoly, const dtPolyRef curRef, const dtMeshTile* curTile, const dtPoly* curPoly, const dtPolyRef nextRef, const dtMeshTile* nextTile, const dtPoly* nextPoly) const
{
auto Cost = dtQueryFilter::getVirtualCost(pa, pb,
prevRef, prevTile, prevPoly,
curRef, curTile, curPoly,
nextRef, nextTile, nextPoly);
auto Handle = WorldHandle.Get();
// your cost modification code here
}
Nope, haven't looked at performance at all. I think that would come down to what your custom code does. This filter will be called for each path segment during the A* execution.
So you need to be pretty quick here. Anything you can cache will help.
hi. what is defference between SERVICE and SIMPLE PARALEL in behavior tree?
A service runs at an interval when it is "relevant". Often, services are used to update the blackboard, but you can do anything you want with them.
Simple parallel lets you run a single task node in parallel with a tree and handles a variety of ways of dealing with what happens when one side of the tree finishes first.
Both can be used to create some sort of parallel logic, but Simple parallel is often a faster and more readable way to do it when you meet its requirements.
any guidance, blogs or anything how to get the detour crowds to work? i have the UCrowdFollowingComponent constructor thing done in a class based on AAIController, but the enemies arent avoiding eachother and changing any variables in the UCrowdFollowingComponent hasnt had any result, so I can assume its not working? no clue what to do and ive wasted like 5 hours already figuring out wtf to do Edit: idk what setting i touched but started working 😛
Are there any implementations out there for pathfinding using zone graph?
It looks like the Mass Traffic system in the city sample just randomly switches lanes based off of traffic density as opposed to picking a location far away and figuring out what lanes to turn at to get there
teehee
We are ancient, dino people who are rotting with ancient AI systems of UE here 
: D
look what I found 😍
Line 158, ZoneGraphTestingActor, has a pathfinding implementation
WOOOO
NOW THIS IS PODRACING
🎉
They still move along the spline only? I kinda hope they can cover entire world and not spline-ny everywhere.
Is AI Behavior tree multithreaded for agents?
don't think so
Hey guys! Are there any recommended values for crowd avoidance? They hug each other way too much with the default settings :P
Was there an option to disallow single islands on top of static meshes for the nav mesh?
I don't want to add a nav modifier to the BP, cause that creates very blocky holes instead of following the mesh
Aka this crap
As long as that exists I need to add additional "Is there a path to the NavMesh" check
And I don't want to manually add NavMod Volumes outside the BP itself.
Is there a way to update MoveToLocationorActor in a way which doesn't cause a jitter with an actor's movement? I've got my AI set to update their goal location if their target moves too far away from it, but it produces an effect where the actor will stop and rotate for a tick before continuing on the new route.
"Is Dynamic Obstacle" in the static mesh screen
How does Request pawn prediction event stuff work?
I'm trying to use it to tell my Ai where to aim a projectile
Can't find any good info on the use of it
So after playing around with all the settings for the detour crowd thing, it feels like completely unusable for enemies? Enemies trying to bruteforce walk through any obstacle looked much smarter than detour on any settings at least in my project, just so much dumb/glitchy behavior it feels like a waste of time to even try to figure this out. Reading through the discord comments, sounds like everyone writes their own systems for avoiding stuff and I should start working on that right away instead of trying to get this mess to work? (as context, I'm making topdown ARPG that can have hundred melee enemies trying to attack you in screen example). Just wondering whether anyone has actually managed to make it work
I am sure detour tries not to walk through obstacle.
i meant a really dumb AI looks smarter when trying to walk through everything, it looked more "shippable"
i did variables of all of these detour settings and tried random values for everything and it didnt look like any videogame pathing to me lol no matter what settings
one major problem was that sometimes enemies go into walk mode (or just become really slow) whenever they choose to walk around something, which when I searched around google nobody knew how to fix in my searches
im sure thats fixable somehow, but like, any combat encounter i did as testing, enemies all the time take silly paths, get stuck not knowing which direction to choose and all kinds of clunk lol
Hey guys,
Does anyone know about a working "Spider Navigation" in UE 4.27.2 or UE5 ? There was a plugin spider navigation but it supported until 4.21 maybe I cannot add to the project.
Thank you for any info 🙂
Any recommendations on where to learn how achieve AI Dialogue? Is there a way to actually animate the face when the audio is played if the AI is a MetaHuman?
Is anyone aware of a way to make a simple grid in EQS take in an account the rotation of the context you are providing?
Fairly sure it should do that at least for rotation around the Z axis 🤔
How do those AAA games implement AI hiding and shooting from behind walls?
guys can anyone help me with this issue ?
AI steps:
- NPC check if he is visible to Player
- if NPC is visible to player, NPC search for the nearest hiding location (4 sided box, a wall, etc..)
- if NPC found the place he go hide else he attacks for example
4.if NPC hided he attacks from hiding position
these are the head lines u can think for idk if the full impelemntation exist on utube or not, but if u can implement the steps u will get something near from what u want
interesting thanks
how does your navmesh looks like in that scene?
How do I get my navmesh to play well with ramps? It doesn't seem to matter what my project settings are, any sort of slope just breaks navigation.
There was a setting to adjust the slope tolerance iirc
Ah, that did the trick. Thanks homie.
it looks.. quite wrong though 😅 ensure collisions properly setup
it is dynamic and the characters create the nave volume around them
normally it would create the navmesh properly, looks like you have a cube collision rather than a proper one
too high usually it will mess up on other mesh that are higher
Cube collision?
he meant your navmesh stair's shape
you have to set it properly, unless your other nav regions are fine then go for it
did u saw the last 5 seconds ? when the fps low when i opend the start menu to stop recording the NPC reached me as i want so it is weird
Ah, you are both correct. Setting the collision to complex did the trick.
hard to see if there is a path between the bridge and that floating thing. Maybe you have to increase the agent capsule radius for the Nav system?
there is no path between them and i increased the size to 40 (equal to npc radius size) and same issue
it is very weird when fps is getting low he moves very smart
wow, seems like some internal code function triggered if FPS low
that's the weirdest one i ever seen, ai gets smarter when FPS is low?
did you setuped your Characters to be a Navigation obstacle?
they might block themselves
yes the orange nav under him
yes they do, you r right, i where using it to prevent collision between characters
thank you very much
nav mesh system is really bad, u got scared from changing and value that might fk up the AI
Hey there, I have a large open level (multiplayer game) and I want to spawn in AI occasionally near the players when necessary and despawn them if they move too far a way. Does anyone have any good ideas on methods for this, I dont want AI running rampant cause that will be a big hit to performance.
Use World Partition for that. You can set it up to unload Actors when there to far away. If you are using UE5 of course.
implement a rule-based subsystem that manages spawning/despawning, would be a typical approach
Hello, i'm having an issue with a custom AIcontroller, I want to get a variable from the controlled character to see if it has to take the action or not, but when i try to access the character trough the AiController i encounter crashes. i'm doing all in cpp btw, thanks in advance if someone can send me into the right direction
You need to show code I think
Sounds like you may be accessing a nullptr if you're crashing
but hard to say without knowing exactly what's going on in the code
In general GetController()->GetControlledPawn or somesuch should work
i was redying a copy paste of the code but maybe this answered my question, i'm checking
where did you meant to use this? because i cannot use GetControlledPawn inside the AIController
I don't remember if it's called GetControlledPawn, but the controller should have a function something like that
maybe it's called just GetPawn
oh yeah, i wasn't actually getting the pawn but something else, fixed now, thanks
now it works but i have a crash when i spawn a new character controlled by the same controller
if i place them in editor it works fine
a single controller can't control more than one at a time unless you build some kind of custom system to do it
What is the best way to introduce "true" AI to unreal? The one that can be learned what do to, not the one that use behaviour trees
we slightly talked about it here @stark hamlet
It also really depends on what kind of task you're trying to load into unreal
whether it's image classification, chat bots using NLP, planning and/or behaviors using RL, or something else
Can anyone point me in the right direction for making AI that can play an rts? Everything I try to search just comes up with unit movement ai, but that isn't what I need. I need an AI that understands what to build, buy, etc, to play against the player as an opponent.
Soren has a talk about the civ4 AI. Doesnt go into depth about how to, but brings about some interesting aspects to consider atleast
hello guys
so i am working on a battle royale game. The area would be 8*8km. I have decide what would be the best for navigation. With Navmesh invokers there are issues like finding a point in safe zone and also there will be atleast 20 bots so invokers can be expensive
with suggestions being posted online, it says I should use dynamic runtime generation of Navmesh. Is there anyone who has experience related to this and could suggest what would be the best for such big maps?
@ocean wren Hi! Sorry for the ping, I was watching your tutorials about crowd avoidance on Youtube and browsing through some discussions on discord. I saw you mentioning that the default values of crowd manager was not optimal. Do you have a few recommended tweaks for it or it will depend on what kind of avoidance behavior I am looking for.


