Multi-Object-Mode: Pose Tools
Open, NormalPublic


Notes about notation

  • Excluded from Multi-Object Editing - Everything in (parentheses)
  • Priority items (i.e. for Spring migration) - Everything in bold

Notes about approach (25/5)

Talking with the animators here in the studio, it seems that most of the time, animators don't actually want most tools to work with "full" multi-object posing behaviour. So, what we might do here instead is that by default, pose operators still work in the old (single active object) way, with just a few specific exceptions added on a case-by-case basis (as/when desired by animators). Examples here include mouse select tools and basic loc/rot/scale transform tools. Many other tools may be best left as single-object for now.



Note: With these ones, we made the decision to only allow supporting the "active object" as displayed in the UI (where these operators appear). As a result, multi-object editing doesn't actually function with these operators. But also, no further changes are required

  • (POSE_OT_group_add)
  • (POSE_OT_group_remove)
  • POSE_OT_group_unassign
  • POSE_OT_group_assign
  • (POSE_OT_group_move)
  • (POSE_OT_group_sort)
  • POSE_OT_group_select
  • POSE_OT_group_deselect


  • Most operators here are fine, as they don't use the context iterators to loop over bones, and it doesn't make sense to apply Pose Libraries (defined for a single armature) across multiple selected armatures.
  • The one exception here is the POSELIB_OT_pose_add operator, as it needs to use the Whole Character (selected) KeyingSet to determine what bones get added to the library. The one problem with this though is that this keyingset uses the context.selected_pose_bones iterator, which includes bones from multiple active armatures. We'll need a solution here to allow restricting keyingsets without also losing all filtering capabilities in the iterator (i.e. we'd lose the name-filtering used to determine what bones should/shouldn't get included)
  • POSELIB_OT_action_sanitize
  • POSELIB_OT_apply_pose
  • POSELIB_OT_browse_interactive
  • POSELIB_OT_new
  • POSELIB_OT_pose_move
  • POSELIB_OT_pose_remove
  • POSELIB_OT_pose_rename
  • POSELIB_OT_unlink


  • VIEW3D_OT_select_border
  • VIEW3D_OT_select_circle
  • POSE_OT_select_all
  • POSE_OT_select_mirror
  • POSE_OT_select_constraint_target
  • POSE_OT_select_linked
  • POSE_OT_select_hierarchy
  • POSE_OT_select_grouped


(*1) Copy/Paste - These currently don't have any problems working with multi-objects (i..e you don't get wrong bones getting copied/pasted). The only problem is that you can only from and paste to whatever armature is active at the time the operator is invoked. (So, you can copy a pose from one armature and paste it into another without leaving pose mode, as long as both objects are in posemode). So, currently marking these as working.



Campbell Barton (campbellbarton) triaged this task as Normal priority.