October 29, 2008, 11:40 (GMT) |
AnimSys2 - Copy/Paste Poses now works with the new rotation options |
October 29, 2008, 11:25 (GMT) |
AnimSys2: IPO Drawing-Code (Part 1 of Cleanup) Started cleaning up the drawing-code for IPO-curves. * draw_ipocurves() has been cleaned up, with the inner loops being split out into two separate helper functions. The same will need to be done with some of the other functions too. * Removed the ugly global pickselcode. This was only used in this file under certain conditions, so it seems fine to remove it. * Usual formatting and commenting tweaks to make this code less intimidating. This is in preparation for some future work on IPO-curves... |
October 29, 2008, 11:20 (GMT) |
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. |
|