steering desires - target desires

- target desires need targets to work, this can be any type of geometry (except subdivision surfaces)
- connect geometry to the steering desire node using the Connection Editor you can call with the buttons in the Attribute Editor
- note if you choose to use field of view, this will be only used for bug <-> assigned target point (does not need to be the whole geometry!) relations

Target Desire Attributes
Target Type enum "point", "curve", "surface", "mesh"
- items only active if matching geometry is connected
Sub Targets enum

"uniform"
- targets are placed equidistant on curve or surface
- if you experience that targets are not uniformly placed on the specific geometry, then try to 'Rebuild Curve / Surface' and be sure to check radiobutton 'uniform'
- if 'Input Selection' is 'All Connected' targets will be distributed on connected curves / surfaces with respect to the different curve lengths / surface areas

"knots / vertices"
- all knots / vertices of curve / surface / mesh will be used as targets

Input Selection enum "index"
- only one geometry (defined by "input index") will be used for computation

"all connected"
- use all geometry connected to steering desire for computation
Input Index short - specifies which input geometry is to be used, provide the index at which the desired geometry is attached to the respective array attribute
Tolerance double - the amount of error (epsilon value) in the calculation, this is used when calculating points / distances to nurbs curves and surfaces

 
 seek

- seek desire causes the bug to align its orientation towards the specified target
- if a bug continues to seek, it will pass through the target, then turn back to seek it again
- produces zero result if 'Desired Speed'=0 or target not in field of view



 moth seek

- moth seek desire is the same as seek, except that the bug is moving in orbital paths around the target, much like a moth buzzing around a light bulb
- produces zero result if 'Desired Speed'=0 or target not in field of view

 arrival

- arrival is identical to seek behaviour when the bug is far away from the target, but if the target is in a predefined distance (Stopping Radius), the bug will try to slow down and eventually stop at the target
- produces zero result if 'Desired Speed'=0 or target not in field of view

Arrival Attributes
Stopping Range double - active if steering desire is arrival
- predefined distance at which the bug will try to slow down and stop at the target

 
 pursuit

- pursuit is identical to seek behaviour except the bug tries to predict where its target is moving and tries to intercept the targtes path
- this will only produce visible result, if the target is moving
 

 shadow

- shadow is identical to seek behaviour when the bug is far away from the target, but if the target is in a predefined distance (Shadow Range), the bug will try mimic the movement of the target
- produces zero result if 'Desired Speed'=0 or target not in field of view

Shadow Attributes
Shadow Range double - active if steering desire is shadow
- predefined distance at which the bug will try to mimic the movement of the target

 

 follow

- bug estimates its future position on its current heading, then seeks the closest point on the curve / surface / mesh to this future position
- 'Probe Length' serves as scaling factor for the current velocity to calculate the future position
- bugs do (currently) follow the curve in no predefined direction
- field of view is currently not available with this steering desire
- produces zero result if bug inside space defined by 'Target Radius'

Follow Attributes
Target Radius double - active if steering desire is following
- defines area around curve / surface in which a bug thinks it is following the path and does not change its direction
Probe Length double - scaling factor for the current velocity to calculate the future position
Tolerance double - defines the maximum error used in the calculation, the bigger the value, the faster the computation

 
 obstacle avoidance

- obstacle avoidance prevents the bugs from bumping into obstacles (which can be any mesh or nurbs surface)
- every bug has got a probe of a specified length attached at its front, if this probe touches one of the specified obstacles, then the bug will try to steer away from this predicted collision point
- though you can use nurbsSurfaces as obstacles, it is recommended to use meshes as the collision point calculation can be performed much faster with this type of geometry

Follow Attributes
Probe Length double - probe length to check for obstacles
Tolerance double - defines the maximum error used in the calculation, the bigger the value, the faster the computation