AnimSys2 - Euler rotations in Blender

This was discussed during Blender Conference but it is really surprising how fast Blender coders are.

Euler rotations will be in Blender and first commits were posted - there is even new branch for experimental animation tools.

Basic informations from http://cia.vc/stats/project/Blender

         AnimSys2: Bone Rotation (aka choice of Quaternions or Eulers)

This commit introduces an attempt at allowing animators to choose to use ‘euler’ rotations for bones (currently, only the default rotation order is used… multiple rotation orders may be implemented later). Animators often request this feature, so it’s time to prove to us that it’s genuinely useful!

To switch between quaternions and eulers, use the toggles in the Transform Properties panel in PoseMode. This will switch (the active bone only) to completely using quaternion rotations or euler rotations.

  • this is a per-bone setting, but can be copied (Ctrl-C menu)
  • animation curves for quaternions/eulers will only animate the bone when their respective rotation mode is active for that bone (i.e. if you insert keyframes for a bone using quaternion rotations, then switch the bone to use eulers, bone will not be animated rotating until euler-rotation keyframes are added, and visa versa)
  • quaternion/euler rotation mode cannot be changed in the middle of an animation (it’s not implemented, and I don’t intend on doing so either… it’s just asking for trouble in the long run)
  • by default, quaternions will be used (to preserve backwards compatability) and also because they provide smoother interpolation + no gimble lock
  • when switching between interpolation modes, there is conversion of the current rotation from quat<->euler (whichever direction is applicable) to avoid pops
  • euler rotations here use standard euler interpolation. In other words, these are not quats masquerading as eulers under a fancy skin. A number of additional notes:
  • Most tools which involve rotation have been adjusted to work with this so far. --> Note: Copy/Paste of poses doesn’t work with this yet.
  • NLA pose blending is currently (experimentally) using a simple linear interpolation between euler values of poses. This may not well at all, and also there are some cases not covered by that yet.
  • Improved the keyframing code a bit to add a bit of flexibility so that keyframes could be inserted without doubling up entries.

Big thank to Aligorith and Theeth. This is really great news to animators. Also welcomed by animators used for Maya or XSI rotation systems :slight_smile:

I just saw that 5 minutes ago in CVS, cool news!.. Blender devs are awesome!

Aligorith has also started cleaning up the IPO code
http://lists.blender.org/pipermail/bf-blender-cvs/2008-October/016426.html

And has the new rotation stuff working now with copying and pasting poses
http://lists.blender.org/pipermail/bf-blender-cvs/2008-October/016427.html

There’s tons of goodies being done for animators in Blender right now, for me I hope lightcuts, texture nodes, and the volumetrics get into trunk.

AFAIK, Euler rotation need the possibility to define the order of the rotation to get out the gimble lock cases. Will it be possible?

I guess it is on Aligorith’s schedule " … multiple rotation orders may be implemented later … ".

So I hope so. Having rotations order possibility is really “a must” for Euler your are right.

Stupid me! LOL

I didn’t read the preamble, just the points…

J.

:yes:This is GREAT news.:yes:

that’s an awesome news : Blender coder are faster than light !!!
a little question : will it have a gimbal-mode on the widget to see when we are close to those sort of issues?

I guess that gimbal lock will be visually noticeable in Blender. As the first Euler implementation seems to be in SVN we just have to wait for some build to test it :slight_smile:

What does this mean in layman’s terms? How are the rotations different in Euler vs. Quaternion? And why is this such an upgrade for animators? Thanks for the help, I’m just trying to absorb all things animation these days.

The objects use Euler rotations right now, and the bones the quaternions. Compare the IPOs of each type and you will immediately notice that the four IPOs of the latter are really difficult to tweak using their IPO curves.

J.

errrr… what are Euler Rotations?

X, Y, Z rotations, the commons sort.

This video may help:

Wow…that’s cool !
In a random thread on CGTalk i’ve seen poeple saying that the absence of Euler rotations in Blender was holding them back (this and the interface, of course…)

So congrats coders !

Ok, Euler is coming, UI will be great with 2.50 so looking forward to all CGTalk members :slight_smile: (and maybe some XSI who cannot bear the Autodes takeover :-/)

in this case eulers pretty much are a part of the interface, as their just a way to visualize quaternions differently(more easily?)…
as has been stated before by others on these boards(not in the thread though). :smiley:

Oh ok…must’ve misunderstood, since I don’t understand completly how Euler rotations works. I may need an extra-simplified explication :yes:

If you read the quote from the original message Felix, you’ll see, at the sixth point of the list, that for this implementation we have real Eulers, not just quaternion visualization.

J.