NavMesh Off Mesh Link

LethDavidson

New member
Howdy!

This might be more of a behavior designer question, but given how this is very tied up with the ability system i figured i'd ask here. I want a werewolf AI to use abilities i'll create that do things like play a Leap Through Window aniamtion when trying to get in there, switch to a run on wall behavior, ect. Alot of abilities that the AI more or less needs to choose ot navigate to the spot of, trigger, then keep going afterwards. SO if like, an AI needs to use an Interact button to open a door, i'm not sure how to work with the UCC value systems to get it to do that.

I think i'd get how to do this in my own code, but i'm not sure how to fedangle with the MoveTowards and the object idetidiers and ability start locations when i'm doing BD behavior trees. the UCC stuff has speicific ways that it wants to approeach objects to ensure it's in the right spot to use thme and i'm not sure how to work with those. The BD UCC demo has some abilitiy stuiff in the tree, but none of it requires positoning. I know that htis is more of a GOAP sorta deal, but i want to to be able to have an AI have a colleciton of navigation points akin to off-navmesh links or special ways to get around the envriornment, and i'm really not sure how to use the Ability Pack's included systems with AI navigation to start learning how this works.

Thanks!
 

LethDavidson

New member
Okay after thinking about this more clearly and poking around more, i guess the quesiton is thus. I notice that the Jump command can be used on offmesh navlinks that are set to the Jump area. How would i go about utilizing somehting similar for navigation utilizng vault, ledge shimmying, crawls, ect? Would similarly named areas in other offmesh navs allow for the AI to decide to use their Valut ability, is it naming+ setting the auot/manual end settings properly?

Any future navigation-focused aiblities that i want the AI to use would benefit from this knoweldge, Jump mostly works, how would other simialr things work?
 

LethDavidson

New member
Howdy again,

Whenever using an offlink navmesh, the character will not just translate to the position like many of the examples and tutorials i've followed. Would i need to have speicifc triggers near the off mesh areas that constrain movement of some kind, something to turn off gravity for a bit? I'm really quite uncertain about this one.

Also, is there any way to adjust the speed of these things? Such as, when the AI Jumps, instead of jumping straight up, can i have them jump AT the thing they're trying to land on? I'm not certain how much of these issues are baked into the animation, the controller, or just my misunderstanding of how ot use some systems. Thanks!
 

Justin

Administrator
Staff member
Would similarly named areas in other offmesh navs allow for the AI to decide to use their Valut ability, is it naming+ setting the auot/manual end settings properly?

Any future navigation-focused aiblities that i want the AI to use would benefit from this knoweldge, Jump mostly works, how would other simialr things work?
You are on the right track. A lot of this is game specific so I would subclass the NavMeshAgentAbility and then override the UpdateOffMeshLink method. This will then allow you to start any ability when it enters a custom offmesh link.

Would i need to have speicifc triggers near the off mesh areas that constrain movement of some kind, something to turn off gravity for a bit?
When a specific ability is active you could disable gravity, but I don't think that's necessary.

Also, is there any way to adjust the speed of these things? Such as, when the AI Jumps, instead of jumping straight up, can i have them jump AT the thing they're trying to land on? I'm not certain how much of these issues are baked into the animation, the controller, or just my misunderstanding of how ot use some systems. Thanks!
Specific to jumping, the NavMeshAgentAbility will continue to move the character in the direction of the off mesh link. When you override UpdateOffMeshLink you could also override UpdatePosition within the ability to provide a new direction based on the off mesh link type.
 
Top