[Bf-animsys] Testing Quaternion Interpolation Modes

Jack Andersen jackoalan at gmail.com
Sun May 1 09:39:36 CEST 2016


Hello!

I'm currently working on a fork of Blender with added SLERP/SQUAD
Quaternion rotation modes.

https://developer.blender.org/D1929

Operational quaternion interpolation is invoked whenever a rotation
matrix is needed for Objects and PoseChannels. The scene provides the
master time source, with all of the NLA stack being traversed to
compose several quaternion interpolation-regions together from
actions.

My first priority is to avoid breaking existing workflows and general
Blender behaviors, so all new functionality is strictly kept to the
new rotation modes. Rather than write the interpolated result into the
RNA 'rotation_quaternion' property, the interpolation exists only as
the internally evaluated matrix. The quaternion property itself is not
interfered with, so the F-Curve / NLA default interpolation is allowed
to write into the property without getting clobbered.

In order to prevent the interpolation from locking transform
editability from the user, it's only applied on OB_RECALC_TIME
dependency flags, so scrubbing / changing frames will "refresh" the
interpolation and override temporary edits, much like Blender's normal
animation behavior. The new quaternion modes will fall back to the
exact behavior of the normal quaternion mode, so transform edits will
behave as they already do for quaternions.

I'm not much of an animator myself, so I feel like my workflow
wouldn't be enough to fully test these modes. I'm particularly
concerned about driver-based rigs and complex datablock
relationships/sharing.

If anyone's willing to test this patch in their own workflow, or knows
where I can find some good "conformance rigs", it would be much
appreciated!



More information about the Bf-animsys mailing list