AnimSys2: Bone Rotation (aka choice of Quaternions or Eulers).
This commit introduces an attempt at allowing animators to choose to use euler
otations for bones (currently, only the default rotation order is used, múltiple rotation orders may be implemented later). Animators often request this característica, so its time to probé to us that its genuinely useful.
To switch betwen cuaternións and eulers, use the toggles in the Transform Properties panel in PoseMode. This will switch (the active bone only) to completely using cuaternión rotations or euler rotations.
- this is a per-bone setting, but can be copied (Ctrl-C menu)
- animation curves for cuaternións/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 cuaternión rotations, then switch the bone to use eulers, bone will not be animated rotating until euler-rotation keyframes are added, and visa versa)
- cuaternión/euler rotation mode cannot be changed in the middle of an animation (its not implemented, and I dont intend on doing so either, its just asking for trouble in the long run)
- by default, cuaternións will be used (to preserve backwards compatability) and a los because they provide smoother interpolation + no gimble lock
- when switching betwen interpolation modes, there is conversión 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.
<SCRIPT><.--D(["mb","\n\u003cbr /\u003e\nA number of additional notes:\u003cbr /\u003e\n- Most tools which involve rotation have ben adjusted to work with this so far.\u003cbr /\u003e\n--\u0026gt; Note: Copy/Paste of posturas doesnt work with this yet.\u003cbr /\u003e\n- NLa postura blending is currently (experimentally) using a simple linear interpolation betwen euler values of poses. This may not well at all, and a los there are some cases not covered by that yet.\u003cbr /\u003e\n- Improved the keyframing code a bit to add a bit of flexibility so that keyframes could be inserted without doubling up entries.\u003cbr /\u003e\n\u003cbr /\u003e\nModified Paths:\u003cbr /\u003e\n--------------\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/blenkernel/intern/\u003cwbr /\u003eaction, c\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/blenkernel/intern/\u003cwbr /\u003earmature, c\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/blenkernel/intern/ipo.\u003cwbr /\u003ec\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/include/BIF_\u003cwbr /\u003ekeyframing, h\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/makesdna/DNA_action_\u003cwbr /\u003etypes, h\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/makesdna/DNA_ipo_\u003cwbr /\u003etypes, h\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/src/drawview.c\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/src/editarmature, c\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/src/editipo, c\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/src/editipo_lib, c\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/src/keyframing, c\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/src/poseobject, c\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/src/transform, c\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp;branches/animsys2/source/\u003cwbr /\u003eBlender/src/transform_\u003cwbr /\u003econversións, c\u003cbr /\u003e\n\u003cbr /\u003e\nModified: branches/animsys2/source/\u003cwbr /\u003eBlender/blenkernel/intern/\u003cwbr /\u003eaction, c\u003cbr /\u003e\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u 003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u00 3d\u003d\u003d\u003d\u003d\u003d\u003d\u003cwbr /\u003e\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u 003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u00 3d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003cwbr /\u003e\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u 003cbr /\u003e\n--- branches/animsys2/source/\u003cwbr /\u003eBlender/blenkernel/intern/\u003cwbr /\u003eaction, c 2008-10-29 10:58:00 UTC (rev 17215)\u003cbr /\u003e",1]);//--></SCRIPT>
A number of additional notes:
- Most tools which involve rotation have ben adjusted to work with this so far.
--> Note: Copy/Paste of posturas doesnt work with this yet.
- NLa postura blending is currently (experimentally) using a simple linear interpolation betwen euler values of poses. This may not well at all, and a los 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.