Support applying a flipped pose, useful when animating symmetrical rigs.
This is similar to "Apply Visual Transform to Pose" with additional
features useful when flipping a pose.
- Optionally use the 3D cursor as an origin:
to flip root poses that aren't located near the objects origin
which would otherwise flip them along the objects local X axis.
- Optionally flip custom properties.
- Skip constraints so unmodified values are copied,
needed for some rigs to work properly.
This can be accessed from the Apply menu, as well as the RNA function:
`object.pose.apply_pose_visual_flip()`
----
### Motivation
This patch adds functionality to flip an entire pose on the X axis using a symmetrical rig.
Currently the only way to do this is to copy the pose, then use paste-flipped, while this can work, it doesn't give much control and isn't as convenient to integrate into other tools.
This was written so the asset manager can load flipped poses.
**Alternative Solutions**
An alternative approach could be to flip input values directly,
It's more involved to flip transform channels (it could behave like copy/paste flipped), while this can work, visual-keying was simper to implement.
**Limitations**
When testing, I found flipping with constraints made the main rig from `sprint.blend` fail.
There is an option to disable constraints to workaround this. It's an example where only flipping input values could be better.
**Open Topics**
- Custom property handling could be reconsidered.
Currently this flips all custom properties, which could cause problems if some of these are used for purposes other than controlling bone animation.
We could:
- Only flip keyed/driver properties (or properties that are part of a keying set).
- Only flip numeric properties (float/bool/int).
- Support alternate pivot points/spaces (low priority)