Answered

How to rotate / translate the whole animation (all key frames) globally (additive layer not in global coordinates)

Robert 4 years ago updated by Peter - Soxware Developer 4 years ago 1

Hi,

I have a number of motion capture animations that start with a T-Pose that's oriented in-line with one of the depth cameras used for motion capture, which determines the orientation of the global coordinates. These animations then include some exercise animations that are performed diagonally and offset from the origin, based on the location of an exercise mat, and maximising visibility from multiple cameras.

I have a number of these animations which I want to have a consistent origin and rotation that corresponds to the center of an exercise mat.

I've seen others asking similar questions and I have experimented with the possibility of using an additive layer or translating the x/y/z position key frames and converting the pelvis rotations to euler and translating the euler component key frames.


The problem with those options is that they are applying the rotations in the wrong coordinate space - the coordinates of the pelvis, but I'm simply trying to rotate everything in global coordinates.


I want to effectively rotate/translate the root bone, not add a local-coordinate rotation to the pelvis for every frame.


Currently I can manage the translation with an additive layer ok, but if I try and rotate everything then I end up tilting my whole animation instead of rotating everything in global/world coordinates.


This feels like it must be a common requirement to be able to rotate an animation to fixup its orientation so I'm hoping there's some trick I'm missing here?

Any help much appreciated!



UMotion Version:
1.20p08
Unity Version:
2019.2.20f1

Answer

Answer
Answered

Hi,
thank you very much for your support request.

Yes a rotation that is applied to the hips/pelvis does not rotate the translation of the hips/pelvis (that's due to the order how Unity applies those transformations).

The easiest way to rotate the whole animation is via the inspector of your animation:

If you change this setting before you import the animation to UMotion, UMotion is going to bake the offset into the animation.

When exporting to *.FBX (from UMotion) you can also use the "Rotation Offset" shown in the "Export Settings". For further information, please refer to the manual (click on the question mark in the UI).

Please let me know if you have any follow-up questions.

Best regards,
Peter

GOOD, I'M SATISFIED

Thanks, yeah, handling this via Unity's import settings seems practical here. Thanks again!

Satisfaction mark by Robert 4 years ago
Answer
Answered

Hi,
thank you very much for your support request.

Yes a rotation that is applied to the hips/pelvis does not rotate the translation of the hips/pelvis (that's due to the order how Unity applies those transformations).

The easiest way to rotate the whole animation is via the inspector of your animation:

If you change this setting before you import the animation to UMotion, UMotion is going to bake the offset into the animation.

When exporting to *.FBX (from UMotion) you can also use the "Rotation Offset" shown in the "Export Settings". For further information, please refer to the manual (click on the question mark in the UI).

Please let me know if you have any follow-up questions.

Best regards,
Peter