Navigational Area Classes for HISMs?

Hey all!

I use HISMs to procedurally generate my levels. I’ve been re working some stuff and started messing with the are class settings in the navigation part of the mesh editor.

I wanted some meshes to be able to be obstacles so the ai won’t go through them unless necessary, but they just ignore it and will walk right through anyways. They really don’t seem to care and when I view navigation they have the same navigation “cost” as the areas around them.

There are no settings to change an hism’s navigational area in a bp, only the mesh editor. Is there a way to use a meshes’s area class when created an an instance?

Any help appreciated, thanks.

HISMs instances have normal navigation area such as static meshes have you turned on “update navigation area on runtime”?

Yup, I have a dynamic nav mesh with invokers on the pc.

I have the meshes set to “obstacle” in the static mesh editor, however when generated in the level they do not act as an obstacle and ai will walk right through them.

Show me their settings

And then it is being added in at runtime as an instanced mesh, so the collision settings itself are setup in the master bp. But, they are the exact same and there are no options for how nav mesh data is treated in there.

Alright, first of all, I never added a box collision like that to my mesh so I just always ticked on “Can Ever Affect Navigation” (in the collision of HISMs most likely this is your fix) in the master bp and added normal collision to the HISMs (once you needed to turn on NavMesh Rebuild Realtime but now it’s on by default), except that you don’t really need to add something complex like you trying to do.

PS: Facepalm I know what’s up, an obstacle nav area is not something that blocks a path its something bad as a trap or a slowing field your AI will try to go around it but if it calculates that it worth to go truth it or there no other path it will go through it like nothing, add a null area if you want but I still think you should use normal collision.

Right I knew that about the obstacle, does it not calculate the “value” or something? Surely if there is an obstacle and the ai is able to go around they always would, correct?

I don’t want normal collisions because I’m trying to make my ai smart enough to avoid obstacles and hazards.

I see, yeah there is a value bias, create a child actor from NavArea_Obstacle and try to crank up the default cost and fixed area entering cost that should do the job(of course place the new actor instead of the NavArea_Obstacle in your static mesh).

Okay so for every created instance I need to also place a nav area? It doesn’t auto do that from it’s parent mesh? Wouldn’t that kill my fps?

What? No, you need only a few nav areas or even one that follows player by time or distance how did you even get to this? My last comment talks about NavArea_Obstacle not NavArea_Default…

Okay I don’t know what this means then; “of course place the new actor instead of the NavArea_Obstacle in your static mesh).”

My nav area is already setup how I want it to be, why would I then “place” it into a static mesh, that doesn’t make sense.

Okay, There are no settings to change an hism’s navigational area in a bp, only the mesh editor. Is there a way to use a meshes’s area class when created an an instance?

I am really confuse where you losing me, follow my steps. 1.Create a custom actor and when creating it in all classes look for NavArea_Obstacle. 2.In class defaults change the “Default Cost” and “Fixed Area Entering Cost” to your liking. 3.Go to the static mesh that you using in the HISM and add a Box Collision in Navigation, change the Area Class to the new class that you just created and change its Extent to your liking. There no 4 that’s it…

No, you do it to the static mesh only, after that each instance you add already using the static mesh so you don’t need to add any more collision because it’s using the collision of the static mesh, oh and this is not a collision this is navigation field that create for your purpose you can call it collision but physics will go through it only your AI will try to avoid it until they can’t.

Okay so that’s where the confusion happened, so for every created instance I need to also place a collision? It doesn’t auto do that from it’s parent mesh? Wouldn’t that kill my fps?

Is what I meant to type.