State machine
The state machine module builds a state machine network for the group agents. It also handles state changes during the simulation.
Attributes
Attributes | Type | Overridable | Description |
---|---|---|---|
behave3d | bool | no | If true, the agents will move freely in 3D as if they were particles. |
fixLegStretch | bool | no | If true, compensate the leg stretching. |
frameRate | string | yes | The frame rate used for playing the agent animation. |
gravityField | string | no | The name of the gravity field. |
heightField | string | no | The name of the height field. |
heightFieldOffset | double | no | An extra offset applied to your agent heights from the ground. |
seed | int | no | Seed random value. |
startFrame | double | yes | The start frame of the state machine clips. If set to a value lower than 0, a random value is used instead. |
frameOffset | int | yes | A frame offset |
state | int | yes | The current state. |
debug | bool | no | Enables module debug drawing. |
stateRandomDelay | vector2 | yes | This attribute accept a range (by default is 0,0). If you put a range of 5, 20 then every agent will have a random delay between 5 to 20 frames when changing state. If you want a specific delay without the random, use the same value in both the vector components, i.e. 5,5. |
adjustHeightOnAgentCreationOnly | bool | no | If on, the agent heights are adapted only on the first frame. |
rayCastGravityField | bool | no | If set to true samples the gravity field using a ray cast, otherwise it uses the closest point |
setStateOnAgentCreationOnly | bool | no | Sets the state on agent creation only |
setFrameRateOnAgentCreationOnly | bool | no | Sets the frame rate on agent creation only |
allowPathSearch | bool | no | if on, the state machine will search a path to reach the new state if it is not directly connected to the current state. If a path is found all the states in between are played as well as the new state. |
disableFootLock | bool | yes | Disables the foot lock |
maxUpAxisAngle | double | yes | Maximum up axis rotation angle in degrees |
alignUpAxisTresholdAngle | double | yes | Threshold angle used to realign the agent up axis with the global up axis |
sitAdaptation | bool | yes | If on, the agent will adapt to the height field when playing sitting clips. The sitting factor must be properly configured for the clip being played. |
softIkDistance | double | yes | The soft ik distance used by the IK algorithm. Set this value to 0 to disable the soft IK. |
maxAngularAcceleration | double | yes | Maximum angular acceleration per frame (degrees). Only used with Locomotion states. |
maxLinearAcceleration | double | yes | Maximum linear acceleration per frame. Only used with Locomotion states. |
angularAverageNumFrames | int | yes | Number of frames used to compute the angular velocity as the average of the previous n values. Only used with Locomotion states. |
linearAverageNumFrames | int | yes | Number of frames used to compute the linear velocity as the average of the previous n values. Only used with Locomotion states. |
forceUnsyncedClips | bool | yes | If on, the module will play unsynced clip if the linear and angular velocities of the current frame match one (the average is ignored). Only used with Locomotion states. |
disableFootLockOnLegStretch | bool | yes | Disables the foot lock when leg stretches too much compared to the bind leg length. |
legStretchMaxRatio | double | yes | When disableFootLockOnLegStretch is on, this value provides the maximum ratio between the current leg length and the bind leg length. The foot lock is disabled when the ratio is greater than the given value. |
Copyright © 2017, Toolchefs LTD.