How to keep the current velocity of the character when switching to dynamics?
The physicalization/dephysicalization of an Entity only happens when the Physicalize behavior is stopped. Depending on the use case, a delay between the starting and the stopping of this behavior (with the Behavior Mode set to Physicalize and the Physicalize Mode set to Dynamic Rigid Body) should be respected:
- If you need to keep the velocities from previous frames, the Physicalize Behavior should be stopped at least 2 frames after its start (use the Behavior Time Trigger to let the behavior stop after X frames).
- If you do not care about previous speed (maybe because characters are not moving), you can start and stop the behavior at the same frame (use the True Trigger to let the behavior stop at the same frame than its start).
In the following example:
- Green Characters have their Physicalize behavior which starts and stops at the same frame: speeds are not taken into account and they just fall on the floor.
- Blue Characters have their Physicalize behavior which stops one frame after it starts: speeds are taken correctly into account, but acceleration is wrong which results into an unwanted force being generated. This is definitely not what you want.
- Yellow Characters have their Physicalize behavior which stops two frames after it starts: speeds and accelerations are correctly taken into account