Graph
The graph system should be editable for both traversal on the ground and climbing traversal.
Climb Graph
Requirements for climbing:
- Spline Edges
- Flow control
- Transition between wall splines
- Transition from ground graph to climb graph
- Transition from climb graph to ground graph
- Animation Transitions
- Animations for moving on single spline
- Animations for transition between different splines
- Animations for transition between ground graph to climb graph
- Animations for transition between climb graph to ground graph
- Character Movement
- Climbing movement
- Movement transition between climbing and not climbing
- AI Weights
- Variable that can be used by the AI path finding algorithm
- Type Filter
- Actor filter for allowing only certain actors to traverse graph
Ground Graph
Requirements for ground:
- Spline Edges
- Flow Control
- Transition between graph system and regular nav mesh traversal
- Animation Transitions
- Character Movement
- Basic movement
- Nav Links
- AI Weights
- Variable that can be used by the AI path finding algorithm
- Dynamic Environment changes weights
- Enemy locations changes weights
- Variable that can be used by the AI path finding algorithm
- Type filter
- Actor filter for allowing only certain actors to traverse graph
Level Designer Tool
Currently I am looking into utilizing the Unreal Editor Utility Widget and/or Slate to create an easier way to customize graph instances inside the level. However, this may be out of scope for this project. Thus, the implementation of the traversal itself will be created first. Until then, values will be exposed through the blueprint details window to be edited per instance. Once the traversal and the AI have been successfully created, then returning to create a tool may be possible. I will keep the possibility of creating this tool in mind during development. This will hopefully increase the likely hood of having the time to develop it.
Things to consider:
- Selecting how graphs connect to one another
- Storing edges (splines) instead of nodes
- Flow of movement between edges
- Types of movement between edges (Animations)
- Weight values between splines (AI decision making)
- Spline Filters