TLDR: What would be the recommended way to blend out an animation which has a root transform that leaves it away from it’s starting position and orientation
I am new here but have been using threeJs for a long time and have some finished projects with it. In my latest project I am having some difficulties that I have been unable to solve and need to ask for help from people who know more than me.
I have a skinned mesh for which I have downloaded animations in Mixamo. Many of the Mixamo animations involve root bone transforms, that is to say, the final position and orientation of the model may be different at the end of the animation than the beginning, they do not necessarily animate in place (the technique I am used to). I could delete these tracks and animate in place but some animations will be impossible this way, I would like to try and use that data instead.
In other projects I have blended in and out my animations by manually adjusting the weight of the animation action in my hero object animation class. However when I blend out a Mixamo animation it slowly returns to its starting position as the weight drops off.
I have tried a number of approaches with varying degrees of success, but never total success, to update the parent objects position as I call update on the mixer, including extracting the root bone animation tracks from the clip and manually applying them to the parent object instead, but it is proving very difficult to mimic the animation system manually this way - although I’ve gotten close (the quaternion animation track took some learning!) every approach I have tried has some problem or bug I’ve not been able to resolve.
So I thought it is time to take a step back and rethink, perhaps I have taken the wrong approach - and maybe I’m so deep in the rabbit hole that I have stupidly overlooked a simpler approach that would make more sense.
Is it possible to redirect the root bone animation tracks to the .position and .quaternion properties of the parent mesh?
PS: I am using default interpolation: InterpolateLinear.