Answered

Locking rotation axis for specific bones

GamerXP 3 years ago updated by Peter - Soxware Developer 3 years ago 3

Hello. There is a neat feature that allows you to lock some rotations while editing animations, but issue is that I want to lock them only for specific bones, not globally. For example - allow knees and elbows rotate only at single axis, so you won't accidentally rotate them, resulting later in weird interpolations.

Is it possible to implement somehow? Or it can't be done without modifying sources?

UMotion Version:
1.25p01
Unity Version:
2021.1.10f1

Answer

Answer
Answered

Hi,

thank you very much for your support request.

While there is no feature to lock the rotation axis, you could use "euler rotation mode" for the bones you mentioned (e.g. the lower leg bone). As you only rotate the knee around one axis (if the rig is setup correctly), you're not going to suffer from gimbal lock (gimbal lock is the downside of euler). In euler mode you would see it in the curves view if you've accidentally rotated around a wrong axis axis (onle one axis should contain actual data, the other 2 should be completely flat).


More information on the different rotation modes can be found in this video tutorial:


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


Best regards,
Peter

GOOD, I'M SATISFIED
Satisfaction mark by GamerXP 3 years ago
Answer
Answered

Hi,

thank you very much for your support request.

While there is no feature to lock the rotation axis, you could use "euler rotation mode" for the bones you mentioned (e.g. the lower leg bone). As you only rotate the knee around one axis (if the rig is setup correctly), you're not going to suffer from gimbal lock (gimbal lock is the downside of euler). In euler mode you would see it in the curves view if you've accidentally rotated around a wrong axis axis (onle one axis should contain actual data, the other 2 should be completely flat).


More information on the different rotation modes can be found in this video tutorial:


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


Best regards,
Peter

Hi, thanks for you reply. Yeah, I know about euler stuff since I used unity animations before trying UMotion. And even though I tried to avoid it - I still somehow managed to rotate limbs using impossible angles. That's why I thought having a lock feature will simple get rid of even possibility of this occurring.

Will implementing individual bone locking be too complicated to bother?

Will implementing individual bone locking be too complicated to bother?

In my personal opinion I think it's not worth the development effort as the euler curves would make the wrong rotations very obvious and easy to fix. As mentioned before, the problems that usually come with using euler aren't present in cases where you just rotate around one axis so you're safe to use them. When a character's rig is setup correctly (a good rigger defines the initial bone rotations in such a way that gimbal lock is avoided), I would even go further and would say that using euler for all bones is best practice as euler provides you most control over the animation curves.

My tip to avoid wrong rotations in the first place: Make sure to be on "local" pivot mode before rotating the lower arm or the knee (rotating in world space usually means that you introduce rotations around the other axis).

Best regards,
Peter