Different ways of setting up navigation

Golaem provides various way of making your characters navigate in a scene. This page provides an overview of the different methods and redirect you to the in-details tutorials.

Navigation & Goto behaviors

The Navigation and Goto behaviors rely on Golaem path-finding & avoidance technologies to make your characters find their way in your scene and avoid other characters. They are very quick to setup and can be easily customized (e.g speed, targets, ...).

This is the "standard" way of setting up navigation with Golaem. Other methods are generally fitted to a few particular use case.

Pros & cons:

  • quick and easy to setup
  • requires using the Locomotion Behavior for animation (which is not a problem in itself, but in some cases it is easier to just use a Motion Behavior, see alternative method below)

For an example, see Populating city streets with Golaem


Vector fields

While the Navigation and Goto behaviors are very handy, sometimes you want to control very precisely the trajectories in a given location of your environment. In these cases, Vector Fields can be a useful addition to a Navigation/Goto behaviors setup.

For an example, see Driving Entities with Vector Fields

SetFormation Behavior

The Navigation/Goto Behavior will make your characters navigate individually, but if you need them to navigation as a group, you need a bit of extra work. The SetFormation Behavior enables you to benefit from Navigation/Goto Behaviors while forcing characters to respect a given shape (global or per small groups). 

Pros & cons:

  • Keep benefits of Navigation/Goto
  • Can even take multiple shapes in input and make characters transition from one shape to another.
  • A bit more complex to setup than AdaptPosition (see below)
  • Does not handle very well obstacles in the middle of the formation shapes

For examples, see Keep a formation using the SetFormation Behavior or  Create your logo with crowds

AdaptPosition Behavior

The AdaptPosition Behavior snaps your characters to another object (polygon, particles...). It is very useful when you want to keep a precise control over the character position, and may be an easier way to create a formation.

Pros & cons:

  • Super easy to setup
  • Can be used with emitters on particles

For example, see Keeping a formation using AdaptPositionBehavior


Maya tools (fields, particle goals, nParticles)

Golaem characters are linked to a standard Maya particle (or nParticle) system. It means that you can control the move of these particles (hence of your characters) by using all the usual Maya tools.

Pros & cons:

  • If you are an FX specialist, you may be familiar with this way of working
  • You may get a better result if you are looking for a very continuous or timed motion (a nParticle does not really stop on obstacles, it slides on it)
  • But if you look at individual characters, the result will probably be less realistic than with our navigation algorithms.

For examples, see Drive Entities with nParticles or Driving Entities with Maya Fields

Character Controller

Sometimes you do not really care about your character finding their paths (e.g you just want to play a "run forward" motion), but you still want them to avoid people in front of them. The character controller approximates Entities to capsules, then detects and resolves collisions the same way it would be done with nParticles. The very difference is that nParticles drive your character. Character Controller only reacts to collision but lets the Motion Behavior drive characters.

Pros & cons:

  • Usable when the Motion Behavior needs to drive the character
  • Enables to get a very packed crowd
  • However, even if your character is totally blocked it will still play the Motion Behavior (this is the advantage of Locomotion Behavior => adapting the motion to the speed of the character)

For an example, see Using the CharacterController Behavior for avoidance

Flock Behavior

The flock behavior is more suited to spaceships, birds or fishes. It makes your characters navigate in 3D, not just on a ground and computes the trajectories of your characters so that they can avoid each others while staying together as a pack.

Pros & cons:

  • Suited to navigation in 3D space

For examples, see Flocking Tutorials