x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

[Closed] UE4 General AI questions

  • Navmesh:
    • Runtime navmesh generation. - What are the runtime limits to this system? It sounds like having a smaller tiles size helps. But I was wondering how far you have pushed the system - How do you handle offmesh link generation. I see you have "proxy links" (I think you call them that). Do you have a way to regenerate those? - I imagine this is game specific, so you might not tackle this problem. But do you have a hook for devs to do some work during or after the dynamic generation allow us to generate these links.

    • I've heard mention of a large-scale navmesh solution for very large environments. Where can I find some documentation on how that works or where should I look in the code?

  • What do you use for avoidance and navigation? - Do you use Detour for that? or have a home grown solution?

  • EQS - We have a very similar solution. Good to hear others have close to the same design. - Sounds like you can override the context, generators and scoring functions. Am I correct? - I think you mentioned EQS being shared across agents. Can you explain how these are shared across.

  • BT Can you explain what services are? Sounds like this is a like a sensor you can control in the BT?

Sorry for the formatting! Not sure how to indent with the bullet point thingy

-Troy

Product Version: Not Selected
Tags:
more ▼

asked Jun 17 '16 at 08:16 PM in Using UE4

avatar image

Answers.Archive STAFF
1.9k 209 316 689

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

The question has been closed Jun 17 '16 at 08:21 PM by AndrewHurley for the following reason:

The question is answered, right answer was accepted


1 answer: sort voted first

Hey Troy,

Thanks for posting this list of interesting questions! :D

Navmesh

  • Runtime navmesh generation.

What are the runtime limits to this system? It sounds like having a smaller tiles size helps. But I was wondering how far you have pushed the system

The only generic limit of the system I can think of is the amount of CPU and memory you're willing to give it. Have you played Fortnite? It rebuilds significant parts of navmesh all the time - with every wall, ramp, roof players build or gets destroyed. You'll have to give it a try yourself, but it should work well with most crazy scenarios :D

How do you handle offmesh link generation. I see you have "proxy links" (I think you call them that). Do you have a way to regenerate those?

NavLinkProxy actors are just a demonstration how one can supply navigation system with navigation links information. Fortnite for example does it a bit differently, we have custom StaticMesh derived class that implements INavLinkHostInterface interface and links are defined per static mesh asset in static mesh editor.

I imagine this is game specific, so you might not tackle this problem. But do you have a hook for devs to do some work during or after the dynamic generation allow us to generate these links.

If you want your actor to have a custom control over it's representation to navigation system implement INavRelevantInterface interface and override GetNavigationData. You can very precisely control what will get passed to navigation system then. ANavLinkProxy is a simple example of implementation of both interfaces I've mentioned so far.

I've heard mention of a large-scale navmesh solution for very large environments. Where can I find some documentation on how that works or where should I look in the code?

Yeah, it's the Navigation Invokers, and there's no documentation on it at the moment. ​

What do you use for avoidance and navigation? Do you use Detour for that? or have a home grown solution?

We have both a wrapper for Detour crowds as well as a simple RVO implementation. To use detour you need to use UCrowdFollowingComponent for your AI (there's already a class in the engine that does that, ADetourCrowdAIController). To enable RVO you need to set its flags on CharacterMovementComponent (that's on the pawn). Needless to say both solutions do not cooperate.

EQS

We have a very similar solution. Good to hear others have close to the same design.

Glad you like it :) It's actually UE4's reimplementation of the original solution I've created for Bulletstorm :D I love when ideas live on even if the code is dead.

Sounds like you can override the context, generators and scoring functions. Am I correct?

Yes, you can create your own generators, contexts, and tests (that are being used both for scoring and/or filtering).

I think you mentioned EQS being shared across agents. Can you explain how these are shared across.

Once you get query result from EQS manager you can reuse it :) Also, EQS queries are defined as assets in the editor, and then at runtime some of the "query template"'s details get reused to save memory. Not sure if that's what you're asking though :)

BT - Can you explain what services are? Sounds like this is a like a sensor you can control in the BT?

The services are our way of having "background tasks/behaviors/services" be controlled by BT. A service will be active only as long as it's part of the active BT branch, and during that time will "tick" on a regular basis (controlled by exposed bt node parameters). Common use case it putting one on a root (or somewhere) that will re-evaluate enemy selection every .5 seconds or so.

Cheers,

--mieszko

more ▼

answered Jun 17 '16 at 08:16 PM

avatar image

Answers.Archive STAFF
1.9k 209 316 689

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question