Caused by rBa6a9a12e8f32: Fix T75142: No autokeying with pose mode X-Mirror
Other relevant commits:
rBb8ca806b7798e2f8dd6effca8f0d081b3cd8c23f
rBde530a95dc7b482dc22c933b9b8b2a98c79b5663
The issue is caused by some leftover BONE_TRANSFORM_MIRROR flags on a
bone from previous runs (file in the report had the flag still on
forearm.R).
With these false leftover flags still set, pose_grab_with_ik() cannot
work correctly.
Culprit commit above removed the early clearing of this flag on all
bones, this should be restored [and happens in
count_set_pose_transflags()].
This should only be done in the beginning of the transform process [when
called from createTransPose()] -- see below.
In the process of transforming, BONE_TRANSFORM_MIRROR is set/cleared at
other places as well:
- recalcData_objects / pose_transform_mirror_update (clears flags on
all bones again)
- recalcData_objects / pose_transform_mirror_update (set flags on
relevant bones -- see comment /* Set flag to let autokeyframe know to
keyframe the mirrred bone. */)
- special_aftertrans_update via count_set_pose_transflags()
So as we can see count_set_pose_transflags() is called again very late
in the process -- in special_aftertrans_update -- and this time we
should not clear the flag on the bones.
Otherwise autokeyframe_pose() will not pick them up for keyframing
correctly.
Revert "Fix T75810: Child bone frozen when both Auto IK and X-Axis mirror are used"
This reverts commit fa83bbe5b5899a76c77b991d0756d986b5440471.
Fix T75810: Child bone frozen when both Auto IK and X-Axis mirror are used
Caused by rBa6a9a12e8f32: Fix T75142: No autokeying with pose mode X-Mirror
Other relevant commits:
rBb8ca806b7798e2f8dd6effca8f0d081b3cd8c23f
rBde530a95dc7b482dc22c933b9b8b2a98c79b5663
The issue is caused by some leftover BONE_TRANSFORM_MIRROR flags on a
bone from previous runs (file in the report had the flag still on
forearm.R).
With these false leftover flags still set, pose_grab_with_ik() cannot
work correctly.
Culprit commit above removed the early clearing of this flag on all
bones, this should be restored [this happened in
count_set_pose_transflags()].
This should only be done in the beginning of the transform process, so
now still clear the flags early in 'createTransPose()' [but dont restore
this in 'count_set_pose_transflags()' -- this will be called from
special_aftertrans_update again, so placing the clearance here only
complicates things (autokeyframe_pose() still needs to work as well)...]