Using the entityVelocity channel
If the Locomotion Behavior is not reacting as you want, or if you need more control, you can use a the entityVelocity Channel to control a network of Motion Behaviors.
Let's see how we can start a behavior only if the velocity magnitude is greater than 0.5:
- Double-Click on the Start Trigger in the Behavior Editor
- Add an Expression Trigger
- Right-click on it, as choose "set as root"
In the attribute editor
- Enter this.entityVelocity in the expression field
- Set the wanted operator
- Enter the value to which you want to compare the speed of your character (beware of units)
Note: because at simulation init values can be strange, it may sometimes help to protect the trigger with a Frame Trigger, so that the entityVelocity trigger is only activated once the simulation values are stabilized
You can use this with multiple motions in parrallel with different start/stop conditions, in order to play the walk, run, idle motion based on the particle speed.