Download

World-space bone transform smoothing?

I’m looking for a procedural way to interpolate the rotation of bones in world-space across time to make motions look more fluid. For example, if a character rotates sharply to the right, I want the torso to interpolate to the new desired world space pose faster than the upper arm, and the upper arm to interpolate to the new desired world space pose faster than the forearm, etc. This makes the character sort of ease into his new position with the extremities following the core.

I considered a way to do this would be using a string of RInterpTo nodes that took the value of the desired pose every Tick and tried to change a variable to it, with staggered Interp speeds, but that would involve a pretty hefty number of rotator variables so before I did it I was wondering if there was some easier way of smoothing a bone’s position over time within UE4.

Maybe IK is suitable for this?
https://docs.unrealengine.com/latest/INT/Engine/Animation/IKSetups/index.html

[Edit]
For clarification: maybe you can have some kind of node that slowly follows a socket, like lerp-ing from nodes-position to socket position by some float in range [0.0 to 1.0] and feed that to the IK.
That should make for a node that moves toward a goal with easing.
Could be tricky to make it get the same results for different framerates tho, so maybe make that part run at fixed delta time by accumulating deltaTime in a variable and call a function that performes the update and decreases the accumulation variable.

Tho, this is more of a C++ solution and could look like spaghetti in BP. :confused: