Skip to content
Chris edited this page Nov 2, 2020 · 20 revisions

UESVON (UnrealEngine Sparse Voxel Octree Navigation)

Overview

This plugin provides 3D navmesh generation, and pathfinding capabilities in UnrealEngine. It uses an octree data structure for the navigation data, and an A*-based pathfinding algorithm.

The plugin is based on the article "3D Flight Navigation Using Sparse Voxel Octrees" by Daniel Brewer in Game AI Pro 3, and his related GDC talk.

Game AI Pro 3 - Flight Navigation Using Sparse Voxel Octrees

GDC Vault - Getting Off The Navmesh

Status

The plugin is in alpha state. It is working and you can use it now, but there may be some bugs. If you find any, please create an Issue.

Some code needs cleaning up, and a profiling/optimization pass. While in alpha state, I may break the API. If you stick to using the gameplay/BT tasks you shouldn't have any problems though.

Basic Usage (Blueprint)

  1. Install the plugin (either in your project or engine Plugins/ folder)
  2. Enable Gameplay Tasks in your Project Settings
  3. Add an SVONVolume to your level (this is the navigable bounds)
  4. Add a SVONNavigationComponent to your AI Controller
  5. Call the task AI Task AITask_SVONMoveTo, or Behavior Tree Task SVON Move To

Code Usage

  1. Install the plugin (either in your project or engine Plugins/ folder)
  2. Add an SVONVolume to your level (this is the navigable bounds)
  3. Create an instance of SVONPathFinderSettings (see here for settings)
  4. Create an FSVONNavPathSharedPtr to a new FSVONNavigationPath
  5. Create an instance of SVONPathFinder, passing an SVONVolume, and SVONPathFinderSettings in the constructor
  6. Use the static method SVONMediator::GetLinkFromPosition to find valid SVONLinks (for your start and end position)
  7. Call SVONPathFinder::FindPath, passing in the arguments you created in previous steps.

Detailed Configuration

SVONVolume

SVONNavigation Component

BTTask SVON Move To