Selectively kill Root motion rotation or translation

I have Root motion animations playing in a state machine. I need the ability to selectively turn off rotation/translation/both of the character’s capsule while the root animation is still playing.

Is there a way I can access the rotation or translation being applied to a capsule in the current frame from a Root motion animation? Can I modify it before it is applied?

Is there a way I can “read” the the rotation and translation data from a Root motion animation and analyze the data before the animation is actually played? So I can know which way the character will turn/move before it happens.

I’ve built a Root motion based state machine based on animations in the marketplace Unreal Engine 4 Character Controller WIP 2 - YouTube but I am completely dependent on the provided animations. Getting a new animation for every case is not possible, I need more fine grained programmatic control.

How can I do this? Can it be done at all?

Should anyone be interested CharacterMovementComponent.h has a public property RootMotionParams which contains the required data. UCharacterMovementComponent::PerformMovement(float DeltaSeconds) has code showing how to get the root motion transform which can then be manipulated. Seems like will need to override PerformMovement to make this work.