Page MenuHome

Armature > Symmetrize doesn't symmetrize Inverse Kinematics constraints correctly
Needs Information from Developers, NormalPublic

Description

System Information
Operating system: macOS-10.14.6-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon Pro 560 OpenGL Engine ATI Technologies Inc. 4.1 ATI-2.11.21

Blender Version
Broken: version: 2.93.0, branch: master, commit date: 2021-06-02 11:21, hash: rB84da05a8b806
Worked: non

Short description of error
When one Armature > Symmetrize a bone, the IK constraints aren't correctly symmetrized. For example, IK constraint Limit Z (Min -180°, Max 10°) is symmetrized as (Min -180°, Max 10°), while the proper symmetrized result should be (Min -10°, Max 180°). Note that this behavior is inconsistent with how Limit Rotation constraint works. When using Armature > Symmetrize, Limit Rotation Z (Min -180°, Max 10°) is symmetrized as (Min -10°, Max 180°), which in my opinion, is the correct result.

Exact steps for others to reproduce the error

  1. Create an armature
  2. Create a bone at (1, 0, 0)
  3. Set Bone Properties > Inverse Kinematics > Limit Z (Min -180°, Max 10°)
  4. Enter Edit Mode
  5. Armature > Symmetrize

Event Timeline

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Needs Information from Developers.Thu, Jul 8, 11:19 AM

Can confirm constraints themselves get more love than Posebone settings (ik_min_XXX / ik_max_XXX) here.
Would need some handling like updateDuplicateConstraintSettings / updateDuplicateLocRotConstraintSettings or maybe BKE_pose_channel_copy_data could be tweaked to handle mirrored/symmetrized bones.

That being said, this is just not implemented, so this would not classify as bug in my opinion, but maybe @Sebastian Parborg (zeddb) would like to keep this as TODO?

To be honest, I always feel it's very weird that IK constraint is not a constraint (like Limit Rotation). I know it's beyond the scope of a bug report, just saying.

@Philipp Oeser (lichtwerk) I will not have time to work on this, but if anyone else want to do it, nobody is stopping them.