How to make a single rotation edit in a global axis but across the entire animation?

Hey, I have a mocap animation which is wrongly placed and rotated; the root bone is located at X= -184 and so on, and is at about 30 degrees in the global Z axis in the starting frame, which is frame #2.

I’ve fixed the position through the graph editor, so the location is not an issue, but I don’t know how to fix the rotation so that it is aligned with the Y axis for the love of my life.

The solution would be to simply rotate the root bone in pose mode by -30 degrees in global Z; the problem is, how do you do that across all frames?

You can manipulate the local rotation values in graph editor, but not the global ones.

Also, is bad starting rotation and location a common motion capture problem? If so, what’s the term for that?

Here’s the blend file if you want to take a look: https://pasteall.org/blend/452db145f94a41c9a650c3438ecde929

Hi, you can either create a parent to the root bone and rotate it in place, or adjust the rotation fcurves (I mean all keyframes) until it looks right.
I took a look at your file and shifting the x-rotation fcurve does the trick.

1 Like

I can imagine the parenting trick as a workaround and I’ll try it as a last resort, but the F-curves adjust the local rotation transforms, not the global ones - so how exactly did you shift that X rotation curve? Unless you shifted the fcurve of something else than the “hips” root bone?
If I move the X-rotation fcurve in the Y axis of the graph editor (so that’s simply adjusting values), I can align the armature with the scene’s Y axis, sure, but then the feet are gonna be off the ground and the hands are gonna dig into it:

Do you need to be absolutely accurate ? If not, just fiddling with the curves will get you there. The mocap data seems rather janky anyway : you’d have to fix the hands and feet in place, and so on, so I don’t expect such an approximation to be a dealbreaker ?

No, full accuracy is not required; I only need to have that bone rotated in global Z by -30 degrees, so that it looks more or less aligned with Y+ axis.
The jank will be cleaned up in the curve editor once this is resolved.

you can download anim aide: https://github.com/aresdevo/animaide

and activate anim offset and voila ! :slight_smile:
it’ll maintain all of your animations and just rotate/translate/scale the whole rig

2 Likes

You won’t be able to fix the hands and feet unless you use additional ik bones and constrain the mocap biped to these. That’s my advice anyway

Animaide is a horribly underrated addon. I never hear people about it yet the anim offset feature alone (and it has a lot more to offer) should already be reason enough to install it.

Great suggestion. :+1:

2 Likes

Animaide was the solution indeed - I activated anim offset, rotated the root bone in global Z, and that applied the change across the entire animation without changing the pose mode or anything like that; only the first two frames had to be manually rotated back.

The only thing that Animaide seems to be lacking is a setting specifying the frame range across which I want to apply my changes. E.g. I don’t see an option to use anim offset ONLY from frames 400 to 800 - let me know if there is such an option actually.

@Hadriscus Hands and feet are not a problem, I’ll be cleaning them up in graph editor now, and accuracy isn’t the primary goal in what I’m trying to do (that being a mix of two mocap animations that’s reasonably convincing for the first time)

Right under the activate button there is a mask button which allows you to set the range on the timeline where you want the offset to be applied. The cogwheel to the right of it allows you to choose different interpolation modes for how the animation surrounding the segment you offset will blend into it.

:slight_smile:

2 Likes

Alright, I’ll keep that in mind for the next time I’ll be playing with it.

Thanks for all the help!

Oh I had used the mask a few times, but never explored the cogwheel… it’s pretty cool to have that… thankyou for pointing this out ! :beers: :slight_smile: