Page MenuHome

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

StatusSubtypeAssignedTask
ConfirmedTO DONone
ResolvedJoshua Leung (aligorith)

Event Timeline

Campbell Barton (campbellbarton) lowered the priority of this task from 90 to Normal.Apr 16 2018, 12:58 PM
Dalai Felinto (dfelinto) changed the task status from Unknown Status to Resolved.Oct 20 2018, 2:23 AM
Dalai Felinto (dfelinto) updated the task description. (Show Details)

You are hereby closed.

Dalai Felinto (dfelinto) changed the task status from Resolved to Unknown Status.Oct 20 2018, 2:24 AM
Dalai Felinto (dfelinto) updated the task description. (Show Details)
Dalai Felinto (dfelinto) changed the task status from Unknown Status to Resolved.Oct 20 2018, 2:34 AM