Proposal: Swing-twist Rotation Mode for Objects/Bones

– edit –
Please refer to this thread for further discussion on this topic, thanks
– end edit –

I’ve worked on a patch to add a new Rotation Mode for objects and bones. This new mode, Swing-twist, is already available in Blender for constraints and drivers.

Why a new rotation mode? Because I think that Swing-twist is a more intuitive way to animate organic creatures than existing modes.

Comparison with existing modes
Euler:

  • 3 components :+1:
  • can easily edit values in GUI :+1:
  • can have same final rotations for different angles :-1:

Quaternion:

  • different (normalized) quaternions correspond to different rotations :+1:
  • 4 components :-1:
  • cannot easily edit value in GUI, because of normalization and no single “twist” component :-1:

Axis-angle:

  • 4 components :-1:
  • difficult to predict final rotation when editing using GUI :-1:

Swing-twist:

  • 3 components :+1:
  • can edit values in GUI :+1:
  • twist component to easily handle, for example, supination and pronation of the forearm :+1:
  • different angles correspond to different final rotations :+1:

Demo

Disclaimer: character not mine

11 Likes

Looks interesting, I wonder what is the behaviour when rotating on Z component. Can the leg rotate as if rotating on the global Y axis?

Hi, sorry for the late reply. I will upload a Windows build in about 20 minutes, if you want to try it yourself :slight_smile:
You can check this other thread on devtalk for further discussion on this topic.
Anyway, regarding your question, if you use Y for twist, then Z and X components will be used for swinging the bone. Starting from rest pose, depending on the roll angle, changing the Z component can result in a rotation about the Y global axis.

1 Like

I personally dream of a rotation mode that avoids gimbal lock and is easy to use in the GUI both using direct values form or graph editor (graph editing is yet another big failure for axis angle and qwaternions).

Does such a magic exist?

In my dreams at least…

Hi, I have uploaded a new build for Windows with the latest patch if you want to test it, you can download it from here.
Please let me know if you find the swing-twist rotation mode more convenient than euler, quaternion and axis-angle when animating your characters.

@sybren I have read the notes of the Animation & Rigging Meeting of October, 14. Do you think it would be a good idea to keep working on this? I would gladly work on some other ideas to improve Blender if adding this new rotation mode is considered not a priority.

I think the new rotation mode is unknown to most animators using Blender, so they also don’t know what kind of priority this would have. Of course trying things out should help in figuring out how/when to use the new mode, and how much work it would take off their hands.

If you want to help out with other work, check out the Short Term Goals first, and TODO tasks second, on the module workboard. And of course there are plenty of bug reports. Having an extra pair of hands to help out would be very welcome!

1 Like

Ok, I will check the module workboard to see if there is anything I can work on

1 Like

I did a very quick test, the Gizmo doesn’t orient itself with the object :o

Ah, thanks for pointing that out, I’ll try to fix this in the coming days