Multi-Object-Mode: Pose Tools
Closed, ResolvedPublic

Description

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.

pose_edit.c

pose_group.c

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

pose_lib.c

  • 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). (done rBc462c43c1a05).
  • 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

pose_select.c

pose_transform.c

(*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.

pose_slide.c

Others

Related Objects

Campbell Barton (campbellbarton) triaged this task as Normal priority.
Dalai Felinto (dfelinto) closed this task as Resolved.

You are hereby closed.

Dalai Felinto (dfelinto) updated the task description. (Show Details)
Dalai Felinto (dfelinto) closed this task as Resolved.Sat, Oct 20, 2:34 AM