Physics Substepping - Ragdoll not preserving momentum when initiated ("SetAllBodiesBelowSimulatePhysics")

Started experimenting with physics substepping in my project to improve ragdoll physics. With substepping off, ragdoll physics become unreliable at low framerates, and often get caught on objects, causing horrible stretching. With substepping enabled, this problem goes away, and ragdoll physics acts smoothly at low framerates.

However, a new issue has shown up. When substepping is enabled, and the framerate drops below the max substep delta time (such that physics substeps are utilized), the function used to initiate a ragdoll “SetAllBodiesBelowSimulatePhysics” no longer preserves the momentum of the skeletal mesh when called. Instead, the mesh comes to a dead stop, as in all physics linear/angular velocity instantly becomes zero, and just drops to the ground. Afterward, the ragdoll physics act as expected. This is only the case when substeps are used. As in if substepping is on, but your framerate is high enough that substepping is not needed, then this problem does not happen.

To verify this, you can download Advanced Locomotion System V4 for the ragdolling feature, enable Substepping in the project settings, and ensure your framerate is below the max substep delta time so substeps are used (either cap your FPS to a low value, or set a max substep delta time above your expected fps). Then run around and activate ragdoll mode.

Anyone have some ideas on what the cause is, or how I might be able to get around this issue?

Thanks

1 Like