Description

When creating an Actor, and placing them inside of a geometric obstacle. GetRandomReachablePointInRadius is giving only non reachable points. The behavior happens when we set our navigational mesh bounds volume to a specific value (X:30000, Y:30000), and when our "Actor" is placed inside of a geometric shaped obstacle. (Such as the cube mesh made into a square shaped pen), and when we give GetRandomReachablePointInRadius a radius of 6000 or greater.

Sometimes this behavior will also have the opposite effect, if the Actor is placed outside of the geometric obstacle. (I.E Points will be drawn inside of the obstacle, even if our actor is outside of it.)

These videos provided by the user, also give a deeper insight to the behavior of the bug.

Behavior when it is inside the room: [Link Removed]

Behavior when it is outside the room: [Link Removed]

Steps to Reproduce

User Example Project is attached to allow for easier replication and reproduction(See RandomPointBug.zip)

  1. Open Unreal Engine 4.20 and create a blank project.
  2. On the default floor mesh, change the scale to be X:30, Y:30.
  3. Add a navigation mesh bounds volume and change it's brush size to X: 30000, Y:30000
  4. Create a square shaped obstacle out of cubes.
  5. Create a new Actor Blueprint named "Bp_Actor"
  6. Off of the Event Play Node, Create a for Loop with an index of 0 to 100.
  7. Off of the Loop Body, Create a "Draw Debug Sphere", change it's duration to 10000.
  8. Get a reference to Default Scene Root comp.
  9. Off of Default Scene Root Comp, Call "Get World Location" node.
  10. Off of the return vector, Call "GetRandomReachablePointinRadius" node.
  11. Change the radius to 6000 or 8000 (Inside GetRandomReachablePointInRadius node)
  12. Off of the Random Location Vector, plug the return value into the Center parameter inside of the Draw Debug Sphere node
  13. Put "Bp_Actor" inside of the square wall obstacle.
  14. Play in Editor

Result: Debug Spheres will be drawn outside of the walled off "cube mesh room". If the Actor is inside of the room.

Expected: Debug Spheres would be drawn inside of the walled of "cube mesh room"

Additional Notes: When the Bp_Actor is outside of the cube mesh room, sometimes the spheres will show inside of the cube mesh room. This behavior is not consistent, however when the Bp_Actor is inside the cube mesh room, the behavior of the spheres being drawn outside of the room is consistent through multiple "Plays in editor"

User also provided some youtube links to observe the behavior below:

Behavior when it is inside the room: [Link Removed]

Behavior when it is outside the room: [Link Removed]

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-66058 in the post.

4
Login to Vote

Fixed
ComponentUE - AI
Affects Versions4.194.204.21
Target Fix4.23
Fix Commit6674755
Main Commit6835252
CreatedOct 31, 2018
ResolvedMay 30, 2019
UpdatedJun 4, 2019