Download

root motion overrides "SetWorldLocation" of capsule component

I’mnot sure if this might be a bug or intended behaviour, but why does the root motion overrides capsule position set by “SetWorldLocation”?

My scenario: I have a walk forward animation loop, that uses root motion. When I go into ragdoll for example after half of the animation, I set the position of the CapsuleComponent to follow the hip bone of my mesh (using a SetWorldLocation" node). This works and I see that the capsule stays with the hip bone.

However: When I recover from ragdoll, the capsule jumps to that point, where it would have been if the root motion animation would have played through, without going into ragdoll.

Any ideas on how to prevent this?

okay, basically the title is a bit misleading I guess. I understand that this is intnded behaviour, since the root animation drives the capsule. However: Is there a way to stop the root motion extraction while the character is in full physics simulation (ragdoll). At this point as far as I understand it doesn’t make sense that the root motion is still extracted and applied to the capsule movement. When I get out of ragdoll all the accumulated root motion from the animation gets added at once and my character jumps a huge distance.

Is there a way to disable root motion at runtime and activate it again?

I know this question is dated now… but before you disable ragdoll you can call GetMesh()->ConsumeRootMotion(); and it’ll get rid of all the stored up root motion.