No announcement yet.

Improvements to AddImpulse (BP) for RootMotion

  • Filter
  • Time
  • Show
Clear All
new posts

    [FEATURE REQUEST] Improvements to AddImpulse (BP) for RootMotion

    Based on this bug report and the discovery that AddImpulse is working as designed for RootMotion by ignoring impulses on X and Y, I'm submitting a change request.

    In general the RootMotion of the active animation should probably override character component velocity on X and Y. But even this assumption is worth questioning as it would seem to be useful to optionally apply external forces or combine existing velocity with the RootMotion contribution in an additive or blended manner.

    For example, imagine a character doing a lunging knife attack as RootMotion - she takes a couple of steps and drives the knife home. A spell or gust of wind applied as AddImpulse might should cause her to slide back a short distance all while continuing the attack animation. This seems like a decision best left to the game dev but right now AddImpulse is simply not an option while RootMotion is enabled.

    Of course we want to maintain animation integrity when using RootMotion. But when circumstances call for the dev to knock back a character or to apply an impulse on specific bones that might have physics enabled / ragdoll blended - having AddImpulse and AddImpulse (Mesh) behaving as NOP is frustrating and limiting.



    To add

    In a blueprint you can add a Rotate Root Bone node to rotate the player model with out the need for root motion animation and find it strange there there is not a Translate Root Bone node that could be used to accomplish the above.

    Our need is with such a node our coder could place the player where it needs to be and when it needs to be there.
    Clarke's third law: Any sufficiently advanced technology is indistinguishable from magic.
    Custom Map Maker Discord
    Urban Terror


      I revived this feature request here:


        Need to override few methodes like ConstrainAnimRootMotionVelocity() on UCharacterMovementComponent in C++