#gameplay-ai

1 messages Β· Page 15 of 1

quaint radish
#

Am i able to adjust the amount of nav mesh that gets removed per actor?

#

I have ai that does melee damage and right now they come around to the side of this camera because it is the closest the ai can get to path toward the center of its target.

#

Ai spawned on the opposite side of the tower, then circles around for the closest spot I am guessing

minor kindle
#

They missed the obvious difference

#

One has a clock symbol the other does not. Which clock symbols have a specific meaning in UE

#

If u use the clock one then the BTTask will complete once it reaches its destination, but if use the other it may not, depending on how u structure ur task. Which could be a nice feature or unintended

#

I use the non clock version so I can make it do some extra stuff during the pathing

harsh storm
#

Huh - so you can't use the parallel node with the Run Behavior Dynamic task. Lame.

hearty niche
#

Any cpp exclusive AI functions worth exposing to BP? Have to task a junior dev

misty wharf
#

Depends on what you're doing... Perception system probably has some, like the ability to set the sight angle

hearty niche
#

Plus, junior is idle and I am running out of orders to give

#
GetStimulusLocation
ForgetSensedActor

these are currently exposed which were cpp exclusive

magic herald
#

Hi, I am currently challenging with 'Ensure condition failed: ObservedKeyNames.Num() > 0' error on opening project and building it.
on [/Engine/Source/Runtime/AIModule/Private/BehaviorTree/Decorators/BTDecorator_BlueprintBase.cpp] [Line: 67]
Does anyone knows what did I wrong?

misty wharf
#

I vaguely recall I might have gotten that at one point as a result of deleting a blackboard key which was being observed by a decorator

misty wharf
#

Kind of curious how would you even expose that to BP without rewriting a custom version of it πŸ€”

#

Since it depends on the interface which you can't implement in BP

winged cargo
#

any good blogs or articles on creating ai with c++ ... combat

celest python
#

prefer generic knowledge first about tools then dive into specifics like combat, and i'd say push your luck with BP first since combat AI specifically requires many iterations

#

Doom, Spider Man and Division games has GDCs and slides about their combat AIs

hearty niche
#

Yep order passed any recommendations on how to keep dependencies minimal?

hearty niche
uneven cloud
quaint radish
#

Is it possible to create new senses? Id like to have sight sense make AI move toward target, then an engagement sense to start firing ranged weapon. This would allow me to expose the radius for engagement to other designers for balance.

#

Engagement would trigger other behaviors too like using cover, but Id like AI to close the gap first. Right now, sight triggers shooting.

#

I cooould use a simple sphere collider component and expose that radius.. but ive seen issues where overlap events stutter or dont register. AI senses seem to be more reliable.

harsh storm
#

Yes, it is possible.

quaint radish
harsh storm
#

C++ is within engine.

quaint radish
#

no that is in visual studio lol

harsh storm
uneven cloud
#

There's a difference between the Editor and the Engine

quaint radish
#

I see unreal engine is the program we use to put all the parts together. One of the parts being code from visual studio. Although my understanding is that vs allows programmers to get access to libraries specific to Unreal Engine, I would not say that visual studio is the engine lol

#

but basically youre saying c++ is required for this new sense idea?

uneven cloud
#

I think you can make new senses in BP. I've never done it, but I remember seeing a sense BP base class.

quaint radish
#

ah found them

celest python
#

yeah there seems to be a UAISense_Blueprint

uneven cloud
#

The Editor is the set of tools you use to put the game together. This is not shipped with the game.

The Engine is the set of tools to drive the game. This is shipped with the game.

quaint radish
#

Ah I like that. Makes sense. so technically, we cant develop anything in the engine lol. We develop everything in the editor.

#

I also remember seeing a .exe at some point called UEEditor.exe or something like that

uneven cloud
quaint radish
#

What is the difference between senses with the config word appended to it and the ones without?

uneven cloud
#

You need a sense class and a config class for each sense. The config is what you use to configure the sense. Whatever variables you want to set on a per AI basis.

night wave
#

does this mean we can have sixth sense

harsh storm
#

Hey Luthage - what are some of your favorite things to use EQS for? Some words of wisdom if you would. I am just now getting into using it.

#

Just kind of want to drum up some ideas.

#

Right now I'm using it as a way for an enemy to attack and then flee somewhere out of sight if possible.

quaint radish
#

Ah so config basically establish parameters.. and then the stim source basically gets or relies on those values. I see that stim source component does not use config

uneven cloud
harsh storm
#

Picking a target with EQS does sound like a nice approach actually. I might look into that as well. Kind of like a little aggro system πŸ€”.

uneven cloud
harsh storm
#

Yeah, I mostly work in C++. Just started dipping my toes into EQS last night though. Was surprisingly straight forward to get things up and going.

#

Need to improve the AI so I can have varied behaviors πŸ˜…

opal crest
uneven cloud
celest python
#

Do you use CDO to check their data

opal crest
#

Oh, that's very cool. I can see how data based techniques could allow for a wide range of abilities (like AoE vs single target) with that setup, all using the same tree.

uneven cloud
#

I separate out the data from the ability so they can be reused. So it's just finding the correct data for the ability class in a data asset.

celest python
#

Ah, so data asset references the GA

uneven cloud
#

Yep

uneven cloud
steep ermine
#

this may be a stupid question but how do you use variables from your blueprint within your AI controller?
essentially i want to check if the ai character is hurt and then play an animation, as well as cancel all current actions and do something else

celest python
#

how do you use variables from your blueprint within your AI controller?
from where? and, are you asking how its done technically or how people prefer it?

usual way is locking the braincomponent which will pause tick of BT and its elements to play animation, and then depending on how you execute behaviors, it'll change how you can switch to next desired action since if you are using BTs you can do this by just setting up a more prior tree branch and evaluating BT to it by setting a boolean in blackboard

reef imp
#

I'm trying to get a simple flying AI working, was wondering if there's a way to set a "minimum height above ground" while using AI MoveTo?

quaint radish
#

to not run on tick, you could have that trace check run a timer by event that loops every 1 or .5 seconds depending on the agility and speeds of your game.

celest python
#

AI Move to compares distance to current goal

#

or separate actor's root transform and add offset to mesh body etc

steep ermine
celest python
#

Is your 2nd Blueprint screenshot belongs to this task?

steep ermine
#

ah no, that's in the ai_controller

celest python
#

it'll basically start executing BTTask_MoveRandom after you set the boolean - whats the error you are getting?

#

also you have a empty space* in your field

#

"Name" variables shouldnt have empty spaces - they get broken

#

your BB key doesnt have an empty space so it probably wont compare correctly either

steep ermine
#

even after i fixed that

celest python
#

Check visual logger

#

and observe your blackboard keys in gameplay debugger

#

it'll show why

steep ermine
#

how do i do that xd

#

never used either of those

celest python
#

Gameplay debugger activates with tilde key by default

#

and for visual logger check docs

steep ermine
#

from what i can see gameplay debugger is only for c++? is that correct?

#

im having trouble making sense of the visual logger but maybe this is an issue ?

celest python
celest python
#

try removing this

steep ermine
#

that didn't do anything

#

i wish i could explain what's happening a bit better lol

#

or even understand a bit more

celest python
#

maybe you cancel the task because radius is zero

#

continue to debug, i cant see any obvious errors

steep ermine
#

im having a lot of trouble figuring this out :/ a weird bug has appeared where after the first time the ai attacks, the ai just continually gets stuck in a hurt animation whenever it is at me (i basically turn into a hitbox that doesn't do any damage)

#

i have no idea what could be causing this

#

also i dont know how to make the ai avoid it's own attack hitbox

uneven cloud
uneven cloud
# steep ermine also i dont know how to make the ai avoid it's own attack hitbox

Recommend reading up on collision filtering: https://www.unrealengine.com/en-US/blog/collision-filtering

Unreal Engine

Choosing what collides is obviously very important, but it can be tricky, and it’s a problem that we have spent quite a while discussing while developing UE4. The system we have can seem a little complex at first, but it is very powerful and consistent, so I wanted to give a little background on how we arrived at it. We’ll talk about the differe...

lyric flint
#

My AI when it sees a target is supposed to move to it, but when there is no target in its field of view it goes back to the last place it saw a target rather than continuing roaming

#

wouldnt it set the target variable to invalid when theres no entity in field of view?

#

if so it should fail and go back to randomly roaming

#

anyone got an idea on what should be done?

#

kinda baffled rn

#

even if it dosnt set it to invalid when the actor leaves its fov it dosnt make sense cuz it should just continue to follow it

#

i dont understand why it would go back to the last place it saw the enemy

winged cargo
#

When getting ai to move does it require a 1d blendspace which variable to u need so it moves?

#

I found the issue...

minor kindle
minor kindle
# lyric flint

One thing I don’t see is a task for clearing the blackboard, are u clearing it? Otherwise the condition for if it is set will always be true

lyric flint
#

I'm trying to make an AIActionComponent as an "action layer" that allows the AI to interact with the world, similar to Bobby Anguelov's pinned YouTube AI stream. The idea is that an action can be called on an actor with the AIActionComponent. These actions could be Move To, Play Animation, Play Sound, etc. Anything that effects the world. The component would keep track of the running actions and have the ability to cancel and prioritize them.

I would like the actions to be asynchronous, so I've been looking at AITasks. These seem to be what I want and there are already AI tasks for Move To and other things built-in. My stumbling block, however, is being able to call these AITasks asynchronously from my component.

For example, the AITask_MoveTo is called via the static function UFUNCTION(BlueprintCallable, Category = "AI|Tasks", meta = (AdvancedDisplay = "AcceptanceRadius,StopOnOverlap,AcceptPartialPath,bUsePathfinding,bUseContinuosGoalTracking,ProjectGoalOnNavigation", DefaultToSelf = "Controller", BlueprintInternalUseOnly = "TRUE", DisplayName = "Move To Location or Actor")) static UAITask_MoveTo* AIMoveTo(...);.

Is there a way for me to have the same asynchronous function (with multiple output exec pins) that calls AITask_MoveTo, but within my component?

glad horizon
#

Do you mean you are in the blueprint logic for your component and you cannot call the async function?

lyric flint
#

No, sorry I didn't explain it very well. I can call async AITasks in BP, but I have to do that using each of their static functions. I want to call an AITask with my own UFUNCTION in my component while still having it be asynchronous, if that makes sense.

uneven cloud
lyric flint
#

I think the GameplayTasksComponent is actually what I want... I suppose my reasons were the following:

  1. How do I get the currently ticking AI tasks (which the above seems to have baked in)?
  2. How do I write a wrapper around the Move To AITask (and others) so that a designer can use that task without worrying about updating their state machine if we swap out the underlying navigation?
  3. How do I let a designer easily find all available AITasks? I assumed dragging the functions off a component would be best, but I think this is me only having a hammer for every problem.
uneven cloud
#

The gameplay tasks component already does that. You can also extend that component if you want more functionality. The gameplay ability system component is actually a subclass of the gameplay tasks component.

When the pawn is possessed, the AI controller adds a gameplay tasks component, if it doesn't already have one.

#
  1. You really don't want that to be on the component as it'll bloat the class. If you name them all AITask, designers can easily find them all.
lyric flint
#

Sorry, I keep writing this and erasing as I read about the GameplayTasksComponent. That's definitely what I want (a way to track tasks), and I was just reinventing the wheel. Thank you!

uneven cloud
#

You're welcome!

lyric flint
#

I'm having a weird issue where my behavior tree is invalid on my character. I have auto possess ai set to placed in world or spawned. I have auto possess player disabled. In my ai controller I set to run my behavior tree on spawn. Am I missing a step here? In my begin play I set a timer every 2 seconds that is checking if the AI controller (not even the behavior tree is valid), and it's printing invalid every time. I don't get it

#

Event on possess does run in the ai controller as well

#

Which makes it more confusing?

celest wing
#

If random wandering position behind agent I wonder how to make agent try to u turn instead of instant look back and walk straight to destination point ? any idea or keyword thank you πŸ˜„

#

my agent is crocodile so it's weird when him instantly turn

lyric flint
#

@celest wing yeah go into your pawn and set "Use controller rotation yaw" to false, and set "use controller desired rotation" to true, and orient rotation to movement to "false"

uneven cloud
lyric flint
#

The call to start the behavior tree is on the ai controller that is attached to the pawn @uneven cloud

lyric flint
#

Specifically in the On Possess event in the ai controller

#

It's there a setting that would not attach the ai controller?

uneven cloud
#

Do you have the correct AI controller set on the character?

lyric flint
#

The OnPossess event is being run, because I can print a string from there.

#

Yeah I even tried using another ai controller to test if it was a problem with that specific ai controller

#

None of them will work

#

I have my player controller sending an event on click. When I click, i check to see whether the controlled pawn has a valid ai controller and its always false

uneven cloud
#

Single player or multiplayer?

lyric flint
#

I am using a custom character class from a plugin, so I'm guessing there is something set on it that is messing up the ai controller working, because I had it working on my original pawns

#

In client mode. I did also try it on standalone and listen server

uneven cloud
#

AI controllers are only spawned on the server. How are you spawning your AI?

lyric flint
#

The pawn is being spawned on the controller in the game mode

uneven cloud
#

On what controller? Is it spawned on the server or the client?

lyric flint
#

Yeah I'm running it in dedicated mode. So when I check if the ai controller is valid, I get both the client and server messages saying its false

#

Sorry, the pawn is being spawned on the game mode. Then I have the reference to it being sent to the player controller

uneven cloud
#

Is the character set to replicate?

lyric flint
#

Yeah the settings on. You can use multiple clients and they will work correctly (without the ai controller)

uneven cloud
#

I would verify that the AI controller and BT isn't actually working using the vislog, but it sounds like something is weird with that plugin character.

lyric flint
#

Yeah I'm messaging the owner of the plugin now. He's usually decently quick to respond. I was assuming this was something on my end, but honestly behavior trees aren't hard to setup, and I've been trying to troubleshoot this for a couple of hours

uneven cloud
#

You might also want to try to add a call to the parent function in the event possess. I don't remember which type of event that one is, but sometimes not calling the parent can break things.

harsh storm
#

Pretty sure the OnPossess function in BP is a K2 version. So the native OnPossess function calls it by default, without needing the super call. Kind of like how Begin Play is.

#

That said - couldn't hurt!

uneven cloud
#

Yeah, I think it's a blueprint native event, but I'm not 100% on that.

lyric flint
#

How do you call super functions in blueprints btw?

harsh storm
#

Right click on the event -> Call Parent Function

#

Or Add Parent Call

#

Can't remember the exact terminology

lyric flint
#

Ah okay.

#

Yeah still doesnt work :/

#

Lol, working with plugins can be such a pain... well this is my first time but yeah

harsh storm
#

It's a BIE.

#

pawn.h

uneven cloud
#

Yeah. Working with other people's stuff when you can't yell at them could be frustrating.

uneven cloud
harsh storm
#

Thought that's the one he binded too

lyric flint
#

Yeah and it's a new plugin so the docs aren't completely thorough. Although he has been pretty responsive with my questions and helpful, but I basically have had to rework my game within the confines of how the plugin works

harsh storm
#

But controller is the same pattern

#

BIE

lyric flint
#

It seems weird to me that the possess even gets called correctly, but then the ai controller is immedially invalid afterwards

uneven cloud
#

You can always breakpoint on destroyed.

#

Are you setting the owner after you spawn it by chance?

lyric flint
#

after i spawn the character or the controller?

uneven cloud
#

After you spawn the character

lyric flint
#

Well the plugin is. I am then manually setting a reference variable to it in the player controller so that I can send commands to it

uneven cloud
#

Oh. You shouldn't do that. The owner of a pawn, especially in a multiplayer game, has to be the controller

lyric flint
#

Wait I shouldn't have a reference to the controlled pawn?

harsh storm
#

Controllers already do when they possess them

uneven cloud
#

You shouldn't set the owner of the AI pawn.

lyric flint
#

I'm not setting the owner though

#

It's more im setting a reference to the "owned pawn"

#

in the player controller

#

Well the variable is called "Hero" but you get the idea

#

So in the player controller when I get a move command, I go "Hero -> Get AI Controller -> Get Blackboard -> Set value" etc

#

Which was working fine with my own custom implementation

harsh storm
#
  1. In the pawn, set "Auto Possess AI" to "Placed in World or Spawned"
  2. In the pawn, set the AI Controller Class to your desired AI controller
  3. Spawn the AI on the server

That's really all you need to do.

lyric flint
#

Yeah I have all of that so I'm guessing the custom character class that the plugin is providing has some weird bug in it

#

Because yeah, I set it up before with the basic character class and it was really simple

#

Anyway thanks for your guys' insights @uneven cloud @harsh storm , much appreciated

#

Also, I just made another pawn that didn't use the plugin character class, and attached an ai controller and it is completely valid

tawny raven
#

Someone said here in the chat the navmesh modifiers now support concave polygons to modify the navmesh. But I tried it out and when i add a polygon to the brush it seems to split it into several smaller polygons based on a random vertex

#

btw, in case somebody hasn't noticed, you can now have concave nav area modifier volumes

#

that seems wrong

#

I googled and all i found was an old (pre ue5) post in the forums that said that the polys have to be convex and there is a limit of 8 vertices per poly

#

The oddest thing is that the splitting only happens after a while apparently. I can see my polygon correctly at first, but after some seconds randomly partitions appear

#

Fig. 1: what i input, looks right at first
Fig. 2: i enter brush editing mode, it splits on its own ( i didnt press anything)
Fig. 3: going back to selection mode, the splits are apparent

#

The splits produce convex polygons, they can have an arbitrary amount of vertices it seems

#

Is this intentional or a bug?

cedar bough
#

any idea why this nav link might not be working? the AI path's to it but when it gets there it just starts flipping 180 degrees rapidly

tawny raven
uneven cloud
cedar bough
#

ah, you were correct!

#

i was running off tick. good catch. thanks!

tawny raven
# tawny raven I tried more complex cases and this automatic partitioning of my brush geometry ...

I think I have noticed a bug though. So I mentioned this splitting happens only in brush editing mode of the editor, namely exactly when I click the mesh. I noticed that also everytime i move the camera with right-click and then release, on release it rebuilds the navigation. Every single time. And it seems to be the case only with a brush mesh that it wants to split into concave sub-polygons. This happens with my custom modifier derived from AVolume and INavRelevantInterface, so I will later check if I can replicate this behavior with the almost identical NavModifierVolume which the UE ships with. I will report when i tested it

celest python
#

It really is like that sometimes, though enduring the sarcasm pays well most of the time because even though sometimes some people are annoying, half of the chat is insanely experienced but expect questions to keep their interests when answering - so I still love #cpp a lot

#

I just wanna say I appreciate your answers.
and I'm glad to help - #gameplay-ai is more chill than #cpp and we have some very experienced here in UE tools and game ai in general so you probably can find better help for #gameplay-ai specific things

#

Embrace the sarcasm πŸ˜‚

#

be one of us

#

The thing is, in UE you either do tons of unit tests or literally never do .. from my experience if you are a solo dev you never do
this specific thing is never your problem working with BTs because low-level things already covered for you - and I'm generally not much familiar with unit tests but there is a good talk about of Sea of Thieves did their testing https://youtu.be/KmaGxprTUfI iirc they also cover AI and BTs in that talk with the context of automated testing

BT has its own pitfalls but during development you grow invulnerable to those and get used to quick workarounds or some little ugly code etc

#

respect salute
lol

#

oh wait

#

i linked the wrong talk

#

this is the correct oneblobsweat

uneven cloud
#

Functional tests are far more important with AI than unit tests.

tawny raven
quiet dove
#

Anyone has an idea why my AI refuses to be launched in XY by a LaunchCharacter event in a NavMeshLink I'm working on? I'm confirmed and my XY values of the velocity it receives are non-zero, I even tried setting the X to something stupid like 5000.0 and I see the AI jerk forward for a brief moment before the X movement is nulled again

#

It's currently running a very simple AI of getting the Player's Location and trying to MoveTo my location

#

This is my current launch code

uneven cloud
quiet dove
#

The AI is very far from the ledge currently

quiet dove
#

The link is nowhere close to a collision

#

Even better view

uneven cloud
quiet dove
#

Even setting the max speed to 3000 doesn't change anything

cold trout
# quiet dove

i mean, it looks like its launching to its own location, maybe double check the destination

quiet dove
#

I figured it out. The problem was Braking Friction

tawny raven
wispy marsh
#

https://forms.gle/hrV8yyscsNxsn9PU7
a survey on "human and virtual influencers affecting attitudinal outcomes" is being conducted. Please participate by answering the questions in the survey form. It would take about 6 to 8 minutes to fill out the questionnaire.

celest python
minor kindle
#

funny bit of history, iirc links were added as a feature either due to or in inspiration from the team that made "Brink", a pretty revolutionary but forgotten game of its time

gilded tree
#

Whats the best way to find the closest player? Dont wanna use GetAllActors and FindNearestActor on every sense tick pref. πŸ€”

uneven cloud
lyric flint
#

can anyone explain to me why the ai seems to lose sight of the player even though the player is still within the "lose sight radius" ?

#

if was my understanding that the ai should continue to maintain sight of a player its seen aslong as that player is still within the lose sight radius
but in practice it loses sight as soon as it exits the normal sight radius

mossy hamlet
#

does anyone have a solid behavior tree tutorial, no tutorial really helps me wrap my head around the whole idea

harsh storm
#

The best video out there about BTs in UE

https://www.youtube.com/watch?v=iY1jnFvHgbE

In this presentation, Epic's Paulo Souza uses Unreal Engine's built-in AI features to build smart enemy behaviors for a game with stealth-like mechanics.

By relying on the Gameplay Framework in Unreal, we're able to quickly create convincing AI using Behavior Trees. Behavior Trees are great for creating complex AI that can be presented in a way...

β–Ά Play video
torn acorn
#

Hey does anyone know why when i call Perform Condition Check AI and Get Blackboard Value as Actor (which is set for sure) that returns null?

#

however if i do OwnerController -> Blackboard -> GetValueAsObject -> CAst to Actor it isnt null :/

misty wharf
#

Trying to get the wrong bb value?

#

I don't think there should be any difference between the methods there, so if it doesn't work doublecheck all values and print all outputs to be sure what's going on

torn acorn
#

I did, but for some reason the problem persists... ill continue with the workaround

glad horizon
#

I am evaluating State Trees for my project. It appears they are not formally coupled to a blackboard. I think I want to make a blackboard and store all my information in there anyway. Does anyone have thoughts whether I would have any problems with this approach?

celest python
#

just extra effort to fill BB values from an evaluator and another extra effort to bind data from it

#

I wouldnt do that tbh

harsh storm
#

ST's are meant to bind to their actor's data for the most part. Take advantage of that.

outer bear
#

I seem to be reaching the max agents limit (100) for crown manager after spawning my 100th consecutive pawn
Even when most of those 100 total pawns were already destroyed
At that point all AIs stop working
Is there some additional step besides destroying pawns I'm missing?

verbal shore
#

Hey everyone, I'd like to get your thoughts on something. Would you rather have AIs spawned into the open world using a spawner, or always have them on the map but adjust their tick rate based on their relevance? I've always gone with the first method, but I still adjust the tick rate of AIs based on distance and visibility. However, I'm wondering if it might be better to always keep them on the map. Spawning can sometimes cause slight frame rate drops, but it's not really a good enough reason to abandon this approach. Anyway, I'd love to hear your thoughts on this.

celest python
#

Spawning can sometimes cause slight frame rate drops
use a volume and serialize spawner's spawnable actor array to it, and when player enters/leaves specific areas load/unload actors async

this should help to reduce the spawning overhead

#

if it doesnt probably you have too many components or BP only components that cause overhead

#

Would you rather have AIs spawned into the open world using a spawner, or always have them on the map but adjust their tick rate based on their relevance?
assuming your game is open world mars exploration, i'd say both - flying, big looking or important ones should be around map all the time, others should be spawned/despawned

#

not sure if i recall correctly but i guess thats also how horizon zero dawn was doing it

glad horizon
#

I go through a spawner (and other structures) 100% of the time. There are many benefits:

  • keeps the hard asset reference out of the map
  • decouples the AIs from the map, so you can reuse the map for many missions
  • each AI may only be present when certain conditions are met (schedules, progression, etc.)
  • ability to respawn AIs
  • entities far away can be culled or not spawned until you approach
  • the exact thing you spawn can be different based on any condition, like difficulty level, or random selection
  • etc.
verbal shore
# celest python > Spawning can sometimes cause slight frame rate drops use a volume and seriali...

Thanks, I'm going to implement what you suggested then. What made me question this was when I was listening to Todd Howard's talk and he mentioned that they were reducing the tick rate of their NPCs but always keeping them on the map. But it's understandable since their NPCs kind of have routines and I'm sure they use spawners for creatures, etc. I love how Guerilla games share a lot of stuff about their game btw.

verbal shore
celest python
verbal shore
celest python
#

I was almost sure Skyrim was despawning enemies after playing it for years.. damn πŸ˜‚

verbal shore
#

Haha maybe they still do, I think he was referring to story related NPCs but I'm not sure. It wasn't really too specific

sacred shale
#

is it possible to run an EQS query and tell it any points outside a radius are unreachable? I'm just wondering how I would effectively tell my AI to patrol only around a specific radius while using EQS πŸ€”

#

I know I have a function called GetRandomPointInNavigableRadius but I'm wondering how I could compare one with one generated by an EQS query

harsh storm
#

You would use EQS to find the point to move to.

#

So you could write a query to find a random point in X radius. You wouldn't use the GetRandomPointInNavigableRadius anymore.

sacred shale
sacred shale
#

that's why I'm moving to EQS

harsh storm
#

I'm too noob to EQS to remember the exact query off the top of my head, but you would want to use the one where it generates points in a radius.

#

You'd have to supply it with a specific actor if you want it to be in radius of a specific spot.

sacred shale
#

ohh ok

harsh storm
#

Don't know if you can just say radius around a specific vector. (You could if you enter C++ land. Make whole new types πŸ˜…)

#

Using an actor would be easier anyway πŸ˜…

sacred shale
#

yeah more than likely, I already have a radius actor

#

since on a behavior tree it always generates the query around the actor

harsh storm
#

You should be able to parameterize it and then pass in the actor from the BB

sacred shale
#

oh really?

harsh storm
#

At least, I saw something that could be parameterized when I was messing with it πŸ˜…

sacred shale
#

I think I'd have to run the EQS query on the radius actor itself

#

then just get the value from there

harsh storm
#

You mark something as a parameter from inside the query

#

Not the task

sacred shale
#

ohhh

harsh storm
#

So mess around and try & find that part out.

#

I genuinely don't remember though πŸ˜…

sacred shale
#

but I don't think I can access the owning behavior tree's blackboard anyways

harsh storm
#

You mark it as a parameter and then in the task it becomes available, which you can then set it to a BB key

#

It might not be available for the Generator though

#

Β―_(ツ)_/Β―

#

Might be C++ land from here

haughty coral
#

I also wonder about stuff like sequencer, level scripting and other stuff. You then can not animate or reference specific enemy actor.

glad horizon
#

You can bind actors into sequencer with a little blueprint logic. Though I forget the exact functions to do it.

For properties, there are several patterns.

  • you can use subclasses. So there's a MonsterBase, then GoblinGrunt derives from that with certain properties. And GoblinKing derives from MonsterBase and uses other properties.
  • you can echo those properties on the spawner and set them via blueprint or native after you spawn the object, or before the FinishSpawning call.
  • you can do a variation on this where you offload that logic into a helper object too.

I use a little of both.

haughty coral
#

Okay, cool, thanks for the answer. I might look into converting my AIs later too.

misty wharf
#

fwiw one fairly easy way to achieve above is to offload props on your actors into data assets, so you can just assign the desired asset directly into the spawner or whatever

#

it's just one way of many and whether it's good depends on how your system works overall, but thought I'd mention since data assets can be pretty handy

haughty coral
#

I was thinking of also using instance uobjects as I need to reference waypoints and other actors placed in the level. That feels cleaner when put in the level / spawner details instead of separate asset.

#

@crystal hatch Hey, sorry for pinging. I am not sure if you are owner of GameplayBehaviors. I really like them there is just one thing I think is missing. Triggering gameplay behavior (UGameplayBehaviorSubsystem::TriggerBehaviorImpl) returns true if the behavior started and is running. False is returned if the triggering failed or triggering succeeded but immediately ended (UGameplayBehavior::EndBehavior() was called during triggering). Because of this, I think it is impossible to distinguish between failure and success based on the return value.

I think even built-in UAITask_UseGameplayBehaviorSmartObject is having hard time because of it as bBehaviorFinished is false when the behavior triggering returns false. That could falsely indicate the the behavior did not finish but maybe it did .. just that it happened during the triggering. I don't think it is causing any issue for this AITask but still... it could be handy to know precisely what happened from the return value.

sacred shale
haughty coral
#

To elaborate on my case.

I run a sequence of gameplay behaviors. Just like BT sequence, this sequence ends as soon as a behavior fails to trigger. Because of the above, I am not able to distinguish between successful trigger which ended synchronously and failed triggering.

keen crow
#

How is bCreateNodeInstance supposed to work? For a very long time I believed that when I am not instancing a BT node, only one object is created for this task/service/decorator for all behavior trees and all behavior tree components running them. I thought that due to this reason I can't store variables in the object itself and instead I have to use node memory. However I'm doing some testing now and it seems... it doesn't work this way? I've made a BT service in CPP that changes object variable from a uproperty variable. I have this service placed in 2 different trees which are ran on 2 different NPCs. I was expecting that the object would be the same (have the same address) and on every consequent breakpoint stop I'd see previously set values in local variable but this is not the case - the objects are different all the time of course object-level variables are untouched πŸ€” So what does the bCreateNodeInstance actually do?

harsh storm
sacred shale
#

never mind, in the code it says QueryConfig is long deprecated :p

#

no wait nvm it says everything EQS-related is deprecated in BTTask_RunEQSQuery.h

uneven cloud
sacred shale
#

i feel like i'm overcomplicating this, all I really want is to run a basic EQS query and eliminate the points outside a radius actor, would I have to save that radius actor on a blackboard and pass it in through Query Config params on Run EQS Query??

haughty coral
keen crow
#

not only per BT asset its created per occurance in BT

haughty coral
keen crow
#

the code

#

the tree

haughty coral
#

Ah right, yeah. Sorry, misunderstood it and thought you mean also per enemy.

uneven cloud
#

You use contexts to generate points around things. And Params for data that needs to be sent in, like how big the radius is.

uneven cloud
verbal shore
sacred shale
#

is query config the way I'd pass in params to an EQS on the Run EQS Query node?

#

can't seem to find any other way

#

being this here

uneven cloud
#

The context is for a variable called Center. That means the center of the generator. You just need to make a new subclass of EQS context.

uneven cloud
harsh storm
#

World subsystem baby!!!

sacred shale
#

I dunno, I think I need to leave the query context as querier (since I do want the EQS to run around the querier) but somehow once it runs pass in the sphere actor's location, and measure the distance of the points away from that actor, and either set their score to 0 or make them unreachable

#

I might be overcomplicating what I'm thinking of doing

#

but I'm on the right track

crystal hatch
uneven cloud
haughty coral
verbal shore
celest python
#

um...

#

Pooling can cause you to refactor an entire system too, though

#

not how you implement it but more like setupping, initting AI etc

uneven cloud
#

Yeah, that's why you should pool early in a project. Still worth it.

verbal shore
#

I'll definitely need to make some changes to my spawners. It shouldn't be too difficult, I can just replace a few functions. Resetting the behavior tree should be straightforward as well. The GAS should be easy too. The only potential issue I see is with the perception system and couple of custom stuff, but I'm not sure. I'll worry about this whole pooling thing after I'm done with the demo I guess.

celest python
#

When is demo?

verbal shore
#

Late February hopefully πŸ˜„

celest python
#

nice

lethal helm
#

is there a way to prevent certain classes of actors from using certain classes of navlinks without dealing with multiple agent types?

lethal helm
#

huh

#

that was suprisingly easy

still shoal
#

Is it possible to get an AI to walk on a wall/ceiling procedurally while using the nav mesh gen?

lethal helm
#

and it even provides the solution to my other problem of making my different types of navlinks be different colors

lethal helm
#

if you just want a climbing system for getting between horizontal surfaces at different vertical levels you can do that with navlinks

#

but actually treating walls/ceilings as navigation surfaces is a no

still shoal
#

So no possible way to make something like a licker from Resident Evil? I figured cause they could do that back in 2006 it should be easier now a days. But every code and engine is different

lethal helm
#

sure just write your own navigation system

still shoal
#

Oh you can do that with blueprints?

lethal helm
#

no

#

c++

#

okay well you can do anything in blueprints

#

but in this case it would be a terrible idea

still shoal
#

Ah that's where the trouble comes I have no idea about c++

#

Maybe theres a way to fake it?

#

Like flipping the uI upside down and having a line trace to align the character?

lethal helm
#

if your ai can truly move on any surface

#

floor/wall/ceiling

#

you could turn navigation off

still shoal
#

I'm tryin to make somethin like a spider AI

lethal helm
#

yeah

#

we have navigation because we generally have to walk around obstacles

#

but if you have a spider movement system you could just walk over obstacles like this

#

though if you want a spider movement system for your AI. again you will probably have to do that in c++

uneven cloud
#

I would make the spiders with Niagara and use the built in BOIDS

harsh storm
#

I figured cause they could do that back in 2006
More like '98, back in RE2 lol

still shoal
#

So even without navigation I can still have AI chase the player if is sees it?

harsh storm
#

Yeah

still shoal
#

I currently have a semi smart AI

#

Ah awesome

harsh storm
#

Navigation is just a tool that helps avoid the environment

still shoal
#

I thought you HAD to have navigation for AI move to to work

lethal helm
#

nope

#

you have "move directly to" nodes

harsh storm
#

Well - navigation is a bit less than that. But generally speaking people include collision avoidance when talking about navigation.

still shoal
#

Awesome that helps. My ai has a patrol path already

lethal helm
#

course that again fails if you have something like lava pools in your level lol

uneven cloud
#
  1. It's far more performant to have a group of spiders as Niagara particles.
  2. You're going to have character movement component issues with the shape, especially if you don't know C++.
  3. Spiders aren't exactly smart and don't really need an in-depth AI
lethal helm
#

since while your spider doesn't care about collision avoidance it probably cares about not immolating itself

still shoal
#

Only water but not even the player character is allowed to go into water

#

The spiders more like a normal NPC ai but can crawl on the walls and ceilings

lethal helm
#

if your player is on the other side of the water the spooder will try to walk through the water if you use direct move

still shoal
#

Ah the only time you'll ever get on the otheraide of the water is when you beat the level

#

By that point AI should already be despawnd

#

Think like the demon from the exorcist to give you a better idea how the ai for the spider type works it's a person but can crawl on the walls and ceilings

harsh storm
#

Pretty sure everyone here is familiar with a spider

stiff mural
#

seems pawn sensing will see you even if you're set this->SetActorHiddenInGame(true) on the server, and can't be seen by other clients? Is this accurate or am I misconfigured?

#

just interesting because I see this line and yet... they DO see me...

uneven cloud
silk mortar
#

ue5: Hey - I am experiencing pawns (using the ol'3rd person character bp) slowing down waaay too much as they reach EQS goals. I tried setting max acceleration but it doesn't really seem to work. They are 'walking' as per the ue5 dummy anims... do I need to set them to a diff mode?

#

BTs are typically 'weighted' by setting the most important actions first in the tree

celest python
#

damn I'm terrible at writing

celest python
#

PathFollowingComponent can slow the movement down if you are using acceleration for paths

silk mortar
celest python
#

when you reach the path, PFC slows you down if you are using acceleration

#

instead of velocity

silk mortar
#

lol is it fixed path braking distance?

celest python
#

I'm not sure - naming seems relevant though

celest python
#

its not enabled by default

stiff mural
#

@uneven cloud What should I be using instead? Sorry I stepped away

silk mortar
#

that's why I was trying to set max path acceleration

celest python
#

Hmm, I think CMC should have a setting to tweak it but I'm not sure

silk mortar
#

thanks πŸ™‚

celest python
#

but can confirm PFC causing it

silk mortar
#

right right

silk mortar
uneven cloud
silk mortar
uneven cloud
silk mortar
#

oh so there's no way to see it in the blueprint viewport?

uneven cloud
#

No

silk mortar
#

Aha ok just wanted to make sure I wasn't missing an option

uneven cloud
#

Most of the time you want the perception component on the controller and not the pawn. The controller has no physical representation so it doesn't make sense to have it visualized in BP.

still shoal
#

With pawn sensing how can I make it so enemies know enemies from the player or to be more accurate how can I make it so the enemy AI sees my player as an enemy?

#

With these
So far AI will only detect a player if all 3 are checked

stiff mural
#

made my first ai, now he dies plays a montage, ( unclicked looping ) is there something I need to tell it to stay in this frame other than that? it runs I see the pawn "die" but when its over its back to pre-playing of the death montage ( ie: standing ) ?

echo yarrow
#

Is AIMoveTo node an async function? And in general, how can you tell if a funciton is Async or not in UE blueprints?

celest python
#

by checking if they have πŸ• icon on their right top corner

#

and yes its a latent node

hearty niche
#

what would be a good approach to store team affiliation centrally preferably in UDeveloper settings? I feel it would be cumbersome to set it per controller what a certain faction will be to the active controller.

#

I don't want to have it hard coded so that the code remains scalable. I was thinking of getting something similar to collision configs.

still shoal
#

How can I optimize my AI? I did the AI tutorial and it seems that having even more than 10 begins to cause a massive fps decrease. Is there something I am doing wrong or is there a better way to make the AI? I need something like a bunch of zombies that randomly roam

#

With 30 AI FPS dropped to 20-29

Without any AI in level FPS is at max 60

elder perch
#

What is the best way to get nav mesh to generate with level streaming? I've got a nav mesh in the persistent level, which doesn't generate, a nav mesh in the nested level, which does have nav data, but only when that level is open. How do I get the navigation to generate for streaming levels?

misty wharf
dawn schooner
keen crow
#

is UCrowdFollowingComponent much more preferable than CMC's RVO? we're experiencing some obnoxious jittering with the crowd following component which do not occur when using RVO instead πŸ€”
I know that crowd following component handles a problem when RVO can essentially make an AI walk off the navmesh but in my case it will hardly happen as the surface is big enough so that it'd never happen

grand marsh
#

Does anyone know why the "GetPlayerPawn()" function returns a nullptr?

glad horizon
#

The result goes into the query's internal data list.

#

Sorry, that doesn't answer your question.

#

You may have no player controllers present at the time this logic runs. Or the controller has not possessed a pawn yet.

grand marsh
#

but how could I get the players location?

tawdry yew
#

I subclassed AAIController and noticed that it already has 2 components attached:
UPawnActionsComponent and
PathFollowingComponent

I could not find much about these in code / comments. Are these exclusively used with behavior trees?

quaint radish
#

Would anyone be open to making a video on how to create a sense (like AISense_Danger) in unreal editor from a preexisting sense (like AISense_Sight) and hookup the same as you would showing that it works?
I think I have an idea but there are too many c++ base senses to choose from, not sure of the right choice, and I can't find anything online that provides direction for how to do this.
I tried hooking up a 2nd sight sense with a shorter distance/range. That didn't work because then I just had 2 sight results in the TargetInfoUpdated event. Then also a 2nd aiperception component... Just seems messy with same results.

#

Currently, I'm checking distance between all seen actors until DangerDistance (close range) and thats just a lot of unnecessary checks. Plus I imagine there are people that may be curious about adding senses.

#

This is for a tower defense (lots of sensed or "perceived" actors) and supports my work on our multiplayer drone shooter game.

#

Also thought about just using a sphere collider but setting up collision profiles is another area I'm not familiar with AND there's just a lot of different systems in the live game that could get interference if that is not setup properly.

misty wharf
#

I don't know if you can extend senses in BP's πŸ€”

#

If you need two sight ranges then using two perception comps one for each range is how you'd have to do it... I wouldn't worry about it too much as long as it works, same with any sphere thing

gilded tree
#

Hey guys, with this BT setup once the AI has attacked once, it's essentially reached it's destination. If I move to the side of the AI while it's attacking, the AI will think it's still at the correct location, and thus attacks again. How do I ensure it always rotates towards the player, without using RInterp logic which runs every tick?

still shoal
# dawn schooner AIs themselves don't cost that much, I have 2k actors with AIControllers and it ...

I think iv actually figured the idea out. I made a big rookie mistake and am using the same high poly mesh I use for the player character for the enemies insted of using a proxy to lower the verts down. It's also because too many ais had complex behavior trees. So I'm going to isolate it down to be pretty simple AIs. I'm not sure why I tried to make them so smart they are just zombies lol the AI sense should still be able to detect everything and I can use less of my Smarter AI for patrolling and more of the simple ai for free roaming AI

#

And Iv made it so my AI only use Invokers and not just generating the Navmesh

#

For example heres what I am doing now which sould save me processing power

Mesh on left is the Player Model Mesh on Right is for Enemy models

Iv tested it out between my Smart Ais and Simple AIs

With 28 Smart Ais FPS drops to 20ish

With 28 Simple AI FPS stays at 40-50

north oriole
#

how to make moveTo go to the closest point of target if unreachable instead of just stopping?

still shoal
#

How can I make it so when my enemies aren't culled they stop moving?

#

Also the proxy/Simple Ai defo worked I am now able to get up to almost 80 Ai not that I'll ever need 80 Ai at the same time.

dawn schooner
storm sail
storm sail
still shoal
storm sail
harsh storm
#

Still 60+ FPS

still shoal
#

With 80Ai once again not that I will ever be using 80Ai at the same time still gets me around 30 fps

#

Having it stop ittgs movement when culled will drastically increase the fps I believe cause. They are still moving when they arnt seeing causing the tick and character movement to go off

storm sail
harsh storm
#

This was on a first gen Ryzen 1700 and 16GB RAM

#

I've never had an issue with getting my zombies functional at high FPS. I'm always surprised when people do.

#

Just do some basic optimization stuff and it is quite sufficient.

dawn schooner
storm sail
#

Pretty interesting. Call of duty managed around 25 zombies up to like 50 I believe now because of how performance heavy it is. Dayzgone also had big problems with zombie performance iirc

#

I mean idle zombies aren't a problem sure

harsh storm
#

Yeah, I'm talkin' about moving around.

storm sail
#

But moving through navmesh with cmc and collision is definitely going to hurt

dawn schooner
storm sail
#

Even 100 in multiplayer feels like a stretch

harsh storm
#

Yeah, CMC & skeletal meshes are definitely expensive.

dawn schooner
#

25 to 50 is totally doable

storm sail
#

I have never made a single player zombie game so maybe I am underestimating things

dawn schooner
harsh storm
#

If you do network managers for unimportant stuff, you can probably do greater numbers.

storm sail
#

I think you could get away with thousands of zombies provided you use your own movement solution. Unreal is just too designed for general purpose

silk mortar
#

I would look at making simplified proxies that can be swapped for interaction friendly zombies when in range

harsh storm
#

Look - if Dead Rising can do this back in '05 or DR2 in like '10, surely we can come up with a solution πŸ˜…

storm sail
silk mortar
#

Haha yeah

still shoal
#

I guess I should be able to set the AIs movement to none using disable movement.

Now a question I do need answered is does the culling react with the sceen component Visiblity? If the mesh is not being culled or not being rendered will Is Visable react to the branch or does the full use a different variable?

storm sail
#

Tbf I think dead rising had some of the most idle zombies in any game I've ever played

silk mortar
#

Because do they need to collide? Do they need to pathfind?

storm sail
#

They probably didn't even have collision until you got close

silk mortar
#

Yeah DR was impressive.the parking garage had so many

harsh storm
dawn schooner
harsh storm
#

Doing direct P2P is less costly than server-client

storm sail
#

I actually don't know much about thay

dawn schooner
harsh storm
#

I've legit thought about making a "ZombieMovementComponent". And make it be like as lighweight-of-cmc as possible πŸ˜…

silk mortar
#

it sucks that UE strong arms noobs into using very heavy components

#

but rolling your own movement component is not that difficult for simple behaviours

harsh storm
#

I'm always making zombie games...surely that would pay for itself dividends over, right?

harsh storm
#

But alas - I typically only need like 30 zombies at most....so CMC is fine 🀣

storm sail
#

Cmc is great though all things considered

silk mortar
#

oh absolutely

#

if yo'ure making a typical shooter unreal is amazing

harsh storm
#

A typical 1st/3rd person character-driven game*

#

Most of these kinds of games actually don't really have more than like 15 characters on screen if you really look at them.

#

Let alone moving around.

ocean wren
#

You're all zombie mad πŸ™‚

harsh storm
#

Join us zoomba

ocean wren
#

NEVER

#

I ain't no zombie lover

harsh storm
ocean wren
#

you ZL's need to get a room together πŸ™‚

silk mortar
ocean wren
#

to be fair, this IS that room πŸ™‚

harsh storm
ocean wren
#

I do have need for a large crowd renderer though, might have a look at a setup for it

#

Hoping to generate some crowd meshes using NeRF's soon..

#

I wonder how all your zombies are going to work when Epic works out a way to use Nanite on skeletal meshes πŸ™‚

silk mortar
#

there's also ways to generate full billboards that look amazing now too

harsh storm
#

I just wish they'd work on instanced skeletal meshes. That would help a lot with skinning costs.

ocean wren
#

Yeah, I want a slightly more complex setup than those.. mainly because of how the behaviours are specified

dawn schooner
dawn schooner
#

when looking at some of their docs

ocean wren
#

Mine have to do some social interactions (i.e. not just eating each other) that involve a lot of physical contact points

ocean wren
#

Its the no zombie curse πŸ™‚

dawn schooner
#

well skeletal meshes will be fine unless you have crazy numbers

ocean wren
#

oh I will πŸ™‚ crazy to the max πŸ™‚

#

going full glassbeaver on it πŸ™‚

silk mortar
#

some good ideas here

still shoal
#

I guess alternatively insted if trying to get the cull distance I can just get the distance from the player to the enemies and if they are far enough away they wont move until in distance

silk mortar
#

I believe yo'ud want to check distance squared

dawn schooner
civic hull
#

hello, I have a question, duos anyone know if Epic Games working on an Ai for blueprints and shader graph?

uneven cloud
harsh storm
uneven cloud
quaint radish
civic hull
uneven cloud
uneven cloud
harsh storm
civic hull
harsh storm
#

Because it's useless in like 99% of games.

#

You're not using actual AI in games for the most part.

#

There is some AI stuff for deformations that they're experimenting with

uneven cloud
harsh storm
#

Game AI doesn't really rely on AI in the way you're thinking.

civic hull
harsh storm
#

Stable diffusion is not useful for realtime AI like a videogame.

#

Game AI and AI like stable diffusion is hardly what you actually want in a game.

storm sail
uneven cloud
civic hull
harsh storm
#

Oh - in that case. Definitely not working on that.

#

Much bigger fish to fry and more useful fish at that.

celest python
#

BP context is smaller than copilot's scope so i bet it would be way easier to achieve something.. but you couldnt steal data since BPs arent available on public as text code so it would never happen Evil_Patrick

civic hull
storm sail
#

There's a reason why World war Z is so damn boring

still shoal
#

The calculation method I can confirm works. I can now have up way more Ais it I really need I currently now have as a test 50 AI with invokers and a distance calc that will allow them to move or stop moving depending on how close you are

storm sail
#

they have the appearance of thousands of zombies and it looks great until you throw a grenade into the crowd and kill 90% of them lol

#

I'm pretty sure most of their zombies are fake and pretty much just share the same health, movement, animations, skeletons, and everything else πŸ€”

harsh storm
#

Shoot them in the toe and they die

#

Straight snooze fest

celest python
#

i enjoyed world war z a lot

still shoal
#

And just for testing purposes it works even with 100AI

storm sail
#

I don't believe they can afford to do it any other way

harsh storm
#

It's enjoyable yeah, but still pretty boring once you beat it like once.

celest python
#

yeah i deffo have no courage to play it 2nd time

storm sail
#

and a lot of them are guaranteed the same instance of one real zombie

celest python
#

wwz has single entity only in the level

#

for all zombies

storm sail
#

figures, I assumed it would be maybe like 20 real zombies in the crowd

#

and the rest were just copies

celest python
#

based on what they say there arent even a real zombie

#

its just a glassbeaver'ed engine

#

that fakes everything

harsh storm
#

If the gunplay was better as well, it'd be more fun as well; but even that was 😴

storm sail
#

I'll give it to them though, I couldn't pull it off

harsh storm
#

Neither could I πŸ˜…. But I can be a consumer 🀣

north oriole
celest python
#

it has tests related with navmesh

uneven cloud
#

And generators can project onto the navmesh.

north oriole
#

But it works even without it right?

harsh storm
#

Environment Query System. Not Navigation Query System πŸ˜…

storm sail
#

I think it is ticked on by default to only generate inside of nav meshes right? You can turn it off though iirc

lyric flint
#

When I use GetRandomReachablePointInRadius, it returns False. I have added a NavMeshBoundsVolume and pressing 'P' displays it as a green nav mesh. I have also set 'IsWorldPartitionedNavMesh' as True for the RecastNavMesh. Any idea why that function would return false otherwise?

ocean wren
#

Did you check that your starting point is within radius of the navmesh? I usually draw a debug sphere at my start point

lyric flint
#

Yes, it's right in the center of it (although possibly there's an issue with the Z coordinate, maybe?)...

ocean wren
#

yeah, its often the height difference causing issues

lyric flint
#

Ah, I will double-check that then, thanks!

keen crow
#

when I create custom supported agent types in nav system settings, how do I actually assign these agent types to characters? Say I have small enemy with default humanoid capsule radius and height and a big guy with a bigger capsule radius. So how do I tell the big guy to use nav mesh for the plus size enemies? Or does the navigation system picks the most suitable recast navmesh actor based on the agent parameters and actual NPCs parameters?

uneven cloud
verbal shore
#

Is there a way to get detailed information about what's blocking AI Move To?

celest python
#

VisLog is best you can get

verbal shore
#

Alright thanks!

verbal shore
#

Came across something weird but didn't dig deeper yet. I basically enabled spawners to spawn all AIs without considering relevancy because I was simulating the game and wanted to see animals' neutral behaviors in the environment. After around 50 AI characters, AI Move To started to fail for some AI pawns. I'm not sure if there is a connection but I basically disabled almost everything and there was nothing wrong in the navmesh, because some of the AIs were working properly. Might be something completely different though. Anyway maybe there is something I don't know about so just wanted to post this if there is any

harsh storm
#

By default 50 is the max that can be used. You can change it in the settings.

#

@verbal shore

#

I forget exactly where it is, but just search for "Max agents"

verbal shore
#

Oh didn’t know there was a limit, thanks! Wish they print some sort of warning though, I don’t know how long it would take to figure this out otherwise. I will check it out first thing in the morning. Thanks again!

golden scarab
#

Is it possible to tweak detour crowd system to avoid jittering? When AI agents gets close to another agent it starts to rapidly turn left and right slightly while trying to avoid them. Thought it was something to do with character rotation rate, but overall rotations are smooth, so this seems not to be the case. Detour avoidance is good and all but this jitter is annoying af.

celest python
#

some functions exist in C++ and there are some properties in projec settings

golden scarab
celest python
#

well that disables crowd directly πŸ˜„

golden scarab
celest python
#

crowd is fine and works better than rvo

#

you gotta tweak it right

#

and not use both at the same time

golden scarab
#

btw, will it affect performance much if i increase crowd's max agents to, say, 300-400?

celest python
#

likely

#

to be precise if you spawn that amount of agents it will affect

#

not the value itself

rose forge
#

anyone hre good with rvo avoidance

#

had a nuanced question

hearty niche
#

would it be a good idea to store teams as gameplay tags? All examples use int 32 which i doubt would be a good idea.

harsh storm
#

Sure, that'd be fine. Depending on how my needs, a simple enum would be more than sufficient as well.

dapper python
#

New to AI behaviour. I have a char (rabbit) with its blackboard and behaviour tree set up. When the char sees the main char, it passes the information to a key on the blackboard and the behaviour tree works as well. Well, now I'm stuck trying to get it to work with multiple rabbits. Does each rabbit need his own blackboard and ai_controller? There must be a better solution I'm not seeing. Any help is appreciated.

timber plaza
dapper python
#

@timber plaza I mean my the Ai char is seeing my char and everything works. My question is how would I do that for multiple of my AI chars.

#

As I am passing the bool (seeingChar) to the blackboard

#

But when I have multiple Ai chars there are mutiple of those bools right?

#

multiple AIs <-> 1 blackboard

#

or do all of those things get instanced

#

controller, pawn, bb, behaviour..

timber plaza
timber plaza
dapper python
#

Okay, so they all get their own instances, right? I had perception on the AI chars and not on the controller, I just changed that.

#

They are all placed in the level but I will probably spawn them yea.

timber plaza
dapper python
#

what you do mean run the behaviour tree?

timber plaza
timber plaza
dapper python
#

yes, all that is working. thx!

#

I will try my best and come back if needed. thank you !

haughty coral
#

Anybody knows an answer to AITasks vs Gameplay Behaviors? I would like to better understand which is for what and how I should fundamentally think about them.

river goblet
#

I have a climbing/vaulting movement, how can I better modify the navigation so that the character continues to move through the hills? I can't just increase the MaxAgentStepHeight parameter because I need to jump on the wall before continuing to move, and not all creatures can climb.

dapper python
#

Hey I am back. I got my AI working, but in my build it the AIchars won't move. Any tips?

haughty coral
#

I just yesterday discovered that MoveTo AITask are pausing each other/stacking automatically even when running from BP. So running two AITask_MoveTo at the same time will pause the first one and resume it when the second one ends. It is cool but is anybody taking advantage of it? I wonder also if there are any AITasks which rely on priorities and overlap/stacking behavior by default.

#

@crystal hatch I noticed AITasks usually hide their delegates like OnFInished/OnMoveFinished/OnRequestFailed as protected memebers. Because of it, it is not that easy to use them from C++ as you need to listen task ending on its owner and then doing the logic from there. I think it would be easier to work with if I could just bind my function to these delegates just the way I do in BP. Do you think moving these delegates to public: is something what could potentially be accepted as PR or is going against some concept behind AITasks?

#

I think also UAITask_UseGameplayBehaviorSmartObject would benefit from it in the future as it would not need to listen for move to task ending in UAITask_UseGameplayBehaviorSmartObject::OnGameplayTaskDeactivated() and check stuff like MoveToTask->IsFinished(), MoveToTask->WasMoveSuccessful()

sweet ibex
#

hello, have a question about player controlled pawn, is it possible to add component Pawn sensing or does that only work for Ai controllers ?

harsh storm
tight lark
#

hey guys, do you reuse code between player and AI functions ?

#

like how often and with what hierarchy

silk mortar
#

The harder way is interfaces

#

Or function libraries

tight lark
#

we have many systems explicitly asking for a player controller class so I'm not sure what would be the best way to kinda retrofit all this for bots too

#

it seems I should abstract away the common functions and change all the calls

silk mortar
#

I would personally prefer this over inheritance anyway

sacred shale
#

should EQS generally be used for chasing a player? in the Tom Looman course I took it's only ever used for wandering (from what I remember)

#

but in another project I did I was mainly using the default pathfinding and setting the move to location to be the player

harsh storm
#

You can use it for w/e really

#

It's just a way to ask the environment questions.

#

Luthage uses it to select the appropriate ability to use for example.

deep bramble
#

@lyric flint ask here instead

lyric flint
#

@deep bramble ok thanks

deep bramble
#

Might want to edit copy paste it so the mods don’t get mad

#

And delete the other one

lyric flint
#

k

#

hey guys, Im trying to get some clarification on Epics guide "Behavior Tree Quick Start"

#

How does the connection from BP variables to BB Keys work? Is it just the name that tells UE what key to populate?

harsh storm
#

Yeah

lyric flint
#

I dont seem to be getting any data sent to Keys

#

and I cant find much documentation on it

harsh storm
#

What you show is the correct way to do it. But you are also not showing much

#

Maybe the BT isn't set correctly

#

Maybe the AIController isn't the correct one

#

Maybe you're not running the BT

#

Many possibilities

lyric flint
#

the controller is setting. not sure what you mean by not running the BT - it is active and default to the left-most branch when the game is running

harsh storm
#

Show your entire controller setup

lyric flint
#

ok one second

#

you want details screenshots?

#

or anything else

harsh storm
#

Have you validated that the perception is working?

#

What happens when you set the value as bool after running the BT?

#

so do a small delay after you Run BT and set that value.

lyric flint
#

im not sure how to validate that. My knowledge of BT only goes as far as that quickstart guide

#

this help?

harsh storm
#

This is unrelated to BT

#

Take that set value as bool node and put it after you call the run BT node

#

That's what I'm telling you to do

lyric flint
#

ok i think i under stand one sec

#

i think this is what you are telling me to do. and i get the same result - bool is false even though set value is true

harsh storm
#

What is the value of the FName you're putting in?

#

Show that

lyric flint
#

sorry idk all the jargon yet. this?

harsh storm
#

There's the problem.

#

You're passing in a value of "None"

#

There is no key called "None"

lyric flint
#

So thats were i need to set the correct names to link to BTs

harsh storm
#

Yes.

lyric flint
#

Thank you very much

harsh storm
#

The variable name is not the same as the variable value.

#

Variable name is for us to be able to reference and all that jazz. Variable value is what is actually stored in the variable.

#

You should cover BP basics before messing around with BT honestly.

lyric flint
#

yea that makes sense. BB is new to me and I was following a guide. I overlooked it

#

πŸ‘

deep bramble
# lyric flint yea that makes sense. BB is new to me and I was following a guide. I overlooked ...
Epic Developer Community

In this presentation, Epic's Paulo Souza uses UE's built-in AI features to build smart enemy behaviors for a game with stealth-like mechanics. Using the...

harsh storm
#

That's the best overview of it on the internet period.

lyric flint
#

@lyric flint watched it:)

deep bramble
#

helps with debugging AI problems

lyric flint
#

nice thank you

sudden cairn
#

Is there a way to get navigation working on Hierarchical Instanced Static Meshes?
I get no navmesh on it.

north oriole
#

I'm not so sure how should i use EQS together with navmesh and regular pathfinding. How would you use EQS to follow player?would you each time find the closest point in the local grid, go there and then run EQS again until you reach it?

uneven cloud
lyric flint
uneven cloud
verbal shore
#

Is there a cheap way to add cost to navmesh at runtime? It would be a nice addition if I could change AIs path and make them prefer other ways if the player is around.

lyric flint
celest python
uneven cloud
uneven cloud
verbal shore
#

I'm using Nav Mesh modifiers but it hurts the performance

#

I update it every three seconds, I will play with couple of settings. There might be something that reduce frame drops

uneven cloud
verbal shore
#

I want AIs to avoid player, make them prefer alternative paths

#

This actually does the job, but it's expensive

uneven cloud
#

It would probably be cheaper to use the EQS and use some tests that do that instead. Updating the navigation under a constantly moving object is going to be incredibly expensive.

verbal shore
#

Yeah it seems like it's going to be really expensive. I might subdivide the path somehow and use EQS to keep them avoid the player, but it won't be as easy as this one

#

Thanks!

haughty coral
#

Yeah, I would not use nav mesh for that too. Modifier has to rebuild the nav mesh to put there polygons in that shape, so that it can assign the cost to it.

celest python
verbal shore
#

Yeah that can do the job, I could even interrupt the task if the player is too close and do some EQS to let AI prefer a better way.

#

I'm really tired of dealing with AI. Why nothing is easy haha

#

There is a bug in 5.0 that prevents foliages from affecting the nav mesh and I have to upgrade to 5.1

#

It's literally nightmare lol

celest python
#

if its going to help you feel better I also spent around 1 year for my own AI and at least half of it was radical changes after I discovered a better/new stuff to do it better πŸ˜„

verbal shore
#

Haha, that must have hurt

harsh storm
#

And Eren is doing zombies πŸ˜…

still shoal
#

Just had a quick question with level streaming if I have AI and I enter a streaming level and unload the previous level can that AI if they have seen me enter the house also still be able to enter the house even after the level has been unloaded?

#

I'm using invokers on my AI and have left the Navgen mesh on the persistent level. I was just curious if the AI still moves around and stuff even when the level isnt loaded if they do this is great news for me

thin field
#

Pretty new to Unreal Engine: I am trying to make the player character automatically move towards enemies in Idle settings, made the enemies move towards player, but I cant seem to make player move towards enemies

Googled a lot, but did not found a correct solution, just a lot of how to make enemy AI and thats something I kinda already have

round sand
#

Does anyone has an idea about how should i approach if I want custom movement mode to an agent for flying

haughty coral
#

StateTree guys, what is your Context Actor? Controller or Pawn?

#

Ok nevermind, I was wondering why one tree has Controller as Context and other tree has Pawn as Context

#

even if it was using same sceme

#

but it is set dynamically depending on this class

ancient sonnet
#

How can we provide our own Test Conditions from the evaluator to a condition blueprint that we want to use for a transition ?(For State Tree Schema Component)

#

ah looks like we can bind them to exposed evaluator variables.

silk mortar
#

you'd need a transition effect that notes which AI's were intending on entering the house (or could) and a time to spawn them in, plus carry over their state

#

health, buffs/debuffs etc

north oriole
#

is there a way to use a nav filter (that i made with blueprint) in c++ with findPathToLocationSynchronously?

misty wharf
#

A custom UDeveloperSettings subclass is often used to allow you to easily assign assets for C++ usage

uneven cloud
uneven cloud
uneven cloud
lyric flint
#

I'm using the Get Sense Class for Stimulus function in Blueprints which returns a variable of type AISenseClass. I want to pass this as input to a function I write in blueprints that takes as input a variable of type AISenseClass. However, it seems that I only have AISenseBlueprintClass available, which doesn't let me pass in an AISenseClass. Am I doing something ultra weird here? Is the best solution to inherit from AISenseClass and make that type accessible in BP?

still shoal
#

Is there anyway to get the AI to follow you into a map not a streaming map?

#

Originally I was trying to get the Ai to follow into a stream level which will work but I found that this sort of makes it increasingly hard to save the states of the streamed levels insted of saving normal levels

#

unless there is someway to actually save stream level data? All I really need is to save if a item has or hasnt been picked up

somber coral
#

So, I made this really simple code following a tutorial that made an AI follow me and attack me (if it sees me). Works great, I migrate it to another project, it doesn't work but I thought meh, must be the animations. So I setup the animations and some other stuff, this AI will not move in this other project. No compiling errors, comparing the two I see zero difference. Anyone know what I should check next?

#

using Blueprint.

#

UE5.1

#

Could it be something in the animation blueprint? That's not something I setup in the other project where it works.

#

I setup a simple idle/walk/run animation, that's all it is.

lyric flint
#

Did you add a nav mesh?

queen olive
#

not sure if this will be correct place but is there any good resources on making a 3d navmesh for flying ai? or some resources on how to make an ai that can fly. be it in a plane/as a bird. t.i.a. found this.... may have to buy it https://www.youtube.com/watch?v=5y0tZY_xjC8

Flying AI marketplace package - $40, comes with behaviour tree templates, setup in a few minutes: https://www.unrealengine.com/marketplace/en-US/product/flying-ai

Link to part 2: https://gumroad.com/jacksonnexhip?sort=newest#EbIfB

In part 2 we cover step by step:

  • Random roaming flying behavior
  • Patrol point flying behavior
  • AI awareness ...
β–Ά Play video
somber coral
somber coral
# lyric flint Did you add a nav mesh?

I can't believe I forgot to add a fucking nav mesh hahahaha Thank you so much dude. I was way overcomplicating the situation since I'm new to learning Blueprint

#

but my animation code is legit now 🀣 🀣 🀣

queen olive
#

fyi navmesh will auto regenerate every time you move/place things that may/may not affect navigation. thankfully it can be only a single small area but it may corrupt if you cancel early (i did this a lot as i had 2mil points) and ai then again stop moving. i lost days to that. so i built it once then disabled auto build navigation data in project nav settings (somewhere)

somber coral
#

I'll keep that in mind real now though

#

thank you

queen olive
#

about the time you should have turned it off and gone 2 sleep i bet

somber coral
#

I did

#

I just woke up

queen olive
#

XD

somber coral
#

hahahaha

#

well hey half a day isn't bad

#

could have been much worse thank you!

queen olive
#

yeah

#

a week or so in my case over 3 projects.

#

but its all learning,

somber coral
#

Yeah, things like this the more it hurts the more we learn

#

or better we remember it rather

queen olive
#

yesterday this is about the time i gave up realising i needed sleep. i dont even know where to begin any more. its a mess

queen olive
somber coral
#

yeah that's normally how i'd do things but I've been going slow, careful and documenting things

queen olive
#

i should do this.

somber coral
#

so I was super confused, WHY ISNT MY CODE THROWING AN ERROR!?

queen olive
#

XD

somber coral
#

lol

queen olive
#

adamant it was a your code err

#

not just user err

#

should say "no nav mesh detected"

somber coral
#

I thought for sure it was my animations because that's something i'm not used to doing yet

#

or the code in my animations

queen olive
somber coral
#

or something, but I tested the above a million times node by node with To String lol

queen olive
#

bugger i was sure that was mp4 my bad

somber coral
#

I use vlc it's fine

queen olive
#

yeah i am sure id remuxed from obs but nope

somber coral
#

looks like you're preparing for some crazy karate/kung fu stuff

#

with that leg work haha

queen olive
#

XD

somber coral
#

the legs are just so long

#

gotta be kick boxing at least

queen olive
#

yeah its what you get not knowing anatomy and using some character addons.

#

its an anime dude i guess.....

somber coral
#

hahaha best reason ever

queen olive
#

but yeah hes lanky

somber coral
#

sent you a friend add

#

i need coffee brb

queen olive
#

πŸ‘

#

mines on step so il go smoike

somber coral
#

too cold to smoke outside right now

queen olive
#

it is bad out there for sure,

somber coral
#

yeah haha

lyric flint
thin field
lone stump
unborn jungle
#

How can you make an EQS test that scores locations in the middle (not too close, not too far) the highest?

#

It seems all of the scoring equations favor either near or far but not middle

ocean wren
#

set them to score only and not filter change the scores for highest from near then highest from far and use the sum of those two

versed maple
vernal plinth
#

I want it so the AI can walk up the block from any angle. My current solution is to put a bunch of nav links one each side of the block, but it feels very crude. Does anyone know of a better solution?

brittle trellis
#

Hey Guys, RTS game, each unit is ACharacter, how can I move 200 units without any stutter ? Is there any recommendation to not use Character as a Base class for units and use something else ? Thanks

ocean wren
#

Definitely worth considering building your own base, the character movement component is overkill for an RTS for instance.. I'd start from my own base to be honest

lyric flint
lavish carbon
#

Does anyone know How to change AI character speed in C++ using Task?

minor pawn
#

We're having a huge problem with the navigation system.
It's generating too much space for our objects and even for this box it does not shrink, after set to a size of 20.
We found several tutorials which had no effect. Changes to the project settings to shrink the size of the agent has no effect.
Is there a proper way to create a satisfiying nav mesh with a correct distance to the objects? Our characters need to be able to walk up to a chair and sit on it. Because of this navigation mess, they sit in air

dreamy sedge
#

Maybe a super basic question, but unsure how to phrase it for google: In my Behavior Tree, I'm adding a decorator to a sequence node. I'm trying to see if one of my blackboard keys (float value) is greater than the other... but the only options I see in the operator drop down are "is equal to" and "is not equal to". I see references and guides mention that "greater than" should be a viable option for float values, but I don't see it... Am I missing something obvious?

uneven cloud
uneven cloud
minor pawn
uneven cloud
viral saddle
#

(Prompt) _ lightning falling, behind snow rain, waterfall ice, 4k (doing test, UE5.1, StableDiffusion) 😍πŸ”₯

celest python
#

nice work

charred lava
#

State Tree Parameters
... For example, a user could define an animation asset parameter that can be passed externally to the tree for use during gameplay.
How can I modify the parameters defined inside my State Tree externally?

cold trout
harsh storm
#

To do it through the editor, in the ST asset, you just add in the parameters on the left side of the screen

ocean wren
#

Had a meeting yesterday and it looks like I'm not allowed to talk about the current project until we've done some bids for follow-on work, which is fair enough

#

so I'll be doing a seperate demo for voice control stuff over the next week or two.. figured out some really nice ideas for developing something funky

#

Anyone ever looked at piping live data into Unreal Engine btw? I did some datatables but honestly the usability and accessibility is trash (you can't link it to a spreadsheet interface anyway, its all kind of static loaded etc)

lament atlas
#

Hi, I'm trying to make an interaction system on unreal 5.1 but when I try to run an EQS on a client, I get the following error

LogEQS: Warning: Missing EQS manager!

. I went to unreal and that's what's failing:

Has anyone had this problem before?
But in the server it works

ocean wren
#

Never tried running it on a client, as AI is usually server only

north oriole
#

Does findPathToLocation project the point on the floor first if it's z is higher?

meager bobcat
#

is there a way to avoid having a billion variables in a blackboard?

#

i have distinct states that each variable is associated with but its not possible to like, have blackboards inside blackboards is it?

ocean wren
#

You could have the variables on a blueprint actor and then just read them from it? And mentioning states suggests you're thinking about it wrong, but who knows πŸ™‚

#

You can always add an actor/uobject with data in it into the BB and read data from that?

meager bobcat
#

oooh that sounds like a good idea

ocean wren
#

Generally, you wouldn't have THAT many bb variables in my experience, but then I build a lot of my systems as systems of systems πŸ™‚

#

i.e. have utility and BT's and action queues and the like

dreamy sedge
meager bobcat
#

whats an action queue?

stiff mural
#

should death be in your behavior tree of the AI or should you just stop it at that point? My dead sheep is still tracking ( rotationally only ) lol.

ocean wren
#

action queue is a queue of actions.. actions are things for the AI to do

#

I use the BT to decide how to add actions to the queue

#

but the queue (actually its a stack of queues) is the thing that executes actions

#

so you can perform parallel actions without having parallels in the BT because the Epic implementation isn't really parallel

uneven cloud
uneven cloud
verbal shore
#

I was experiencing frame rate drops when spawning AI and while implementing a pooling system, I discovered that Navigation Invokers were causing significant frame rate drops. The pooling system was not effective because every time an AI was moved to new location, a new navigation mesh was generated around the AI, which resulted in frame rate drops. Additionally, I found that having at least one actor present in the map also greatly reduces frame rate drops. If anyone else is experiencing frame rate drops when spawning, it may be beneficial to remove Navigation Invokers and ensure that at least one actor is present in the map. But some people might not effort not to have Nav Invokers, I could so I did.

#

Anyway I wanted to share this, it might help others.

harsh storm
#

Luthage has mentioned in the past that invokers are quite expensive

verbal shore
#

Yeah, long time ago I was using Voxel Plugin and since I was creating procedural worlds, I had to use nav invokers. Also it was nice not to generate navmesh every time open the map. So it became a habit and I completely forget about how costly the thing was.

harsh storm
#

Haven't dealt with proc worlds in UE yet. I'd imagine you could create the world and then create the navmesh though, no?

#

It'll still take a hot minute, I know, but runtime should be better

verbal shore
#

If the world was infinite it probably wouldn't work

harsh storm
#

Oh, infinite - yeah, it wouldn't

#

I wonder what actually is a solid way to handle those kinds of situations πŸ€”

celest python
uneven cloud
dreamy sedge
verbal shore
deep bramble
#

Quick question about nav links. Does the AI have to follow the exact nav link path from A to B or can it choose to jump from any location along the two connected nav meshes? Say for example you have two long rectangle cubes with a nav link placed at the middle of each one. Can it jump from any point of rectangle A to rectangle B?

#

What if the nav link path is too large for the character to jump. Ex: from the ground to the rooftop of a building.

uneven cloud
deep bramble
#

But the character’s jump Z is default.

harsh storm
#

At this point, I just feel like Luthage's default position is, "practically anything is better than invokers" lol

uneven cloud
deep bramble
#

Ahh okay thanks, good to know. I should treat the nav links like β€œAi is allowed to go from A to B” but it’s up to the CMC if it can actually jump that gap.

#

But they’ll probably try jumping and fall into the pit of doom like lemmings

uneven cloud
#

You'll get a lot of problems or unintended behavior if they don't actually try to jump.

uneven cloud
deep bramble
#

But they could have some extra momentum from a nearby explosion or something

#

Thanks I understand them a bit more now.

verbal shore
#

Anyway I'm glad I'm not using it anymore

stiff mural
#

if your AI perception component is on your AIController can you still visualize its traces and stuff in the viewport?

dreamy sedge
celest python
#

ah its about the node you are using

#
UENUM()
namespace EBlackBoardEntryComparison
{
    enum Type
    {
        Equal            UMETA(DisplayName="Is Equal To"),
        NotEqual        UMETA(DisplayName="Is Not Equal To")
    };
}
dreamy sedge
#

ohh... hmm is there some other decorator that I should use to compare BB values?

celest python
#

not that I know

stiff mural
#

some days I feel real stupid, but does anyone have any advice on this topic? trying to see my debug options, but as of yet been unable to get this info? is there a command you can type in the commandline instead?

#

the apostrophe key doesnt do anything for me? where is this binding setup I guess?

#

no one else has ever had this problem?

#

I will paypal a mf'er 20 bucks right now for any help lol

rigid tulip
#

How can I reduce this FPS drops due to "Nav tick time" - already using dynamic nav mesh with invokers

stiff mural
#

Can get all the other weird info, but I cant get the info I want .. ( the most basic AI info known to man ) cries Hour 4... lol

uneven cloud
rigid tulip
uneven cloud
celest python
#

Epic never told anyone outside of UDN how to use nav streaming.
πŸ₯²

celest python
#

the key on top of the "tab" button enables it by default

stiff mural
celest python
#

yeah its tilde on EN keyboard

stiff mural
#

i have this keyboard? i've never had a problem like this before

#

when I do hit the ' key, it still says in the viewport 'apostrophe' so its like what the hell?

celest python
#

Β―_(ツ)_/Β―

stiff mural
#

dont let me fib, it says "Apostrophe" but its really ' ( on my keyboard )

#

Anyways yeah super weird wasted ton of time, started just hitting keys and that popped up with ' and I nearly broke my monitor

#

I also cant use 0-1-2-3-4-5 options like it says, for I assume the same reason ( my keyboard doesnt have a numpad )

rigid tulip
#

What are the implications of enabling "Do Fully Async Nav Data Gathering"?

uneven cloud
celest python
stiff mural
#

lol me too in my brain

#

and I kept literally like an insane person pressing the wrong button all day

#

so how about the second thing, of since I dont have number key 0-1-2-3-4-5 can I re-map these or.. ?

stiff mural
#

lol.. onscreen keyboard doesnt work tried that..

cosmic gulch
#

does enabling that make EQS work on client in packaged builds?

hearty niche
uneven cloud
hearty niche
charred lava
crystal hatch
celest mauve
#

i have box with (visible rendering turn off), and how to ignore this box from pawn sensing? so the AI still can sense a character behind this box invisible wall?

charred lava
# celest mauve i have box with (visible rendering turn off), and how to ignore this box from pa...

Actors still have their collision on when their hidden in game and probably also when Visibility is turned off. Not sure for pawn sensing but the AI Perception component traces with the "Visibility" channel if the Target doesn't inherit from the IAISightTargetInterface Interface.
Since your box / wall is invisible, turn the "Visibility" response to Ignore in the boxes collision settings for the components. That's probably enough.

celest mauve
charred lava
slow crescent
#

hello guys hope you are doing well , my bot flies away, I know its collision problem but I have used all collision settings but it never works

rigid tulip
slow crescent
#

thanks but already disabled that still doesn't work

rigid tulip
slow crescent
slim cedar
#

I'm trying to make a moving pawn, I went with FloatingPawnMovement and it works well, but I'd like for it to fall or be effected by gravity at some point, is there a way to make it so it's effected by gravity?

night wave
#

it makes sense that a floating pawn would float, have you tried using character movement

#

an alternative is to just apply your own gravity impulse downwards on tick

slim cedar
#

I'm very new to UE so I'm not sure what all my options are but i'll try to do the character movement one, where can I find it? I can't find it in Add Component

slim cedar
#

ah I see thank you so much for explaining everything to me!

celest python
#

@harsh storm ChillBar_wave

#

Did you ever check Context.GetExternalData()

#

or Context.SetExternalData()

#

to modify ST parameters?

#

if you haven't, check FMassLookAtTask

#

if you did - didnt they work out for you and why did you prefer custom method instead

harsh storm
#

I did not

#

At least, I don't recall doing so

golden cove
#

Hey guys! Im an ai researcher working towards 0 shot( high poly) text to 3d synthesis with textures
Q: do y'all prefer a volumetric rendering or a polygon mesh of your 3d mesh??
Q2: would it be benifitial if say yiu generate a 3d mesh of a person that the polygon mesh has all clothes and body fused together? Could that be seperated later on if not is it still usefull? Will it be usefull if you can generate clothes/body seperately?
Q3: does the mesh generally need to contain physics/material details or is that added later on?

ocean wren
#

high poly text? πŸ™‚

#

just kidding, I know what you mean

#

ideally for games, I'd say you want clothing seperated.. so you can sell the clothing as additional content

#

physics - its currently done as an artist pass, but its a lot of work, so improvement would be if it was captured properly (not so easy though)

#

and almost all of them want poly meshes

#

You really want watertight high poly, fully textured meshes with decent UV layouts

#

at stupid high resolutions

#

although, I think that is a bit open for discussion as we transition from traditional rendering to meshlets and eventually to raytracing and nerfs

#

a 20 million poly mesh that is vertex coloured tends to look pretty sweet πŸ™‚

golden cove
#

Thats amazing thanks a ton for your insights
Ill research into trying to seperate parts of a 3d mesh

golden cove