Maniphest T54650

Multi-Object-Mode: Pose Tools
Closed, Resolved

Assigned To
Joshua Leung (aligorith)
Authored By
Campbell Barton (campbellbarton)
Apr 16 2018, 12:58 PM
Tags
  • Code Quest
Subscribers
Campbell Barton (campbellbarton)
Dalai Felinto (dfelinto)
Joshua Leung (aligorith)

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_OT_paths_clear rB478446e3a45c5eff7aed238b92e5d3d7cf671c7a
  • POSE_OT_paths_calculate rB478446e3a45c5eff7aed238b92e5d3d7cf671c7a
  • POSE_OT_paths_update rB478446e3a45c5eff7aed238b92e5d3d7cf671c7a
  • POSE_OT_flip_names
  • POSE_OT_autoside_names rBc7bbcfe95444e730eacf655fd982f5091d5e2ff6
  • POSE_OT_rotation_mode_set rB3b9b6a80ba6311281bb90e2a2e63a8c34a0b575d
  • ARMATURE_OT_armature_layers rB3a8b56ce24c9228a885d3c44f4c22d90be04ae4c
  • POSE_OT_bone_layers rBbb7f4f5714430beda44403f0bd75c368e8f86a39
  • POSE_OT_hide rBc9d1082a2c17162ea6d23415e3560dabfc6e22e1
  • POSE_OT_reveal rBc9d1082a2c17162ea6d23415e3560dabfc6e22e1
  • POSE_OT_quaternions_flip rB7560aabf71dd4c7687ff0110e722287d66358bbd

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

  • VIEW3D_OT_select_border
  • VIEW3D_OT_select_circle
  • POSE_OT_select_all
  • POSE_OT_select_mirror
  • POSE_OT_select_constraint_target rB374a8b9da50bdc3c40cef9394065d5394bb91f33
  • POSE_OT_select_linked
  • POSE_OT_select_hierarchy rBd95bb08f395ace3fdfed71058658b7acef458ded
  • POSE_OT_select_groupedrBcaad2d7528bc38934a90bb30b417068b71076bcd

pose_transform.c

  • POSE_OT_visual_transform_apply rB4376bb64054cb8de0b71f85d4faa832d4ec736cd
  • POSE_OT_armature_apply
  • POSE_OT_copy - [To be ported by @Joshua Leung (aligorith)] (*1)
  • POSE_OT_paste - [To be ported by @Joshua Leung (aligorith)] (*1)
  • POSE_OT_transforms_clear rBe0478ae92fbefbc648bfb5a5f8370a53af1c6679
    • POSE_OT_loc_clear
    • POSE_OT_rot_clear
    • POSE_OT_scale_clear
  • POSE_OT_user_transforms_clear rB4529192157135bfdc5f5fb48c798f7b205f25570

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

  • NLA_OT_bake rBf10bc11061cf rB39ad5c3ef1ea (though undo doesn't seem to be working well).
  • POSE_OT_breakdown rB3c61efcf206dcce904570baef1d5e209415d0ea9
  • POSE_OT_relax rB3c61efcf206dcce904570baef1d5e209415d0ea9
  • POSE_OT_push rB3c61efcf206dcce904570baef1d5e209415d0ea9
  • POSE_OT_propagate rB3c61efcf206dcce904570baef1d5e209415d0ea9

Others

  • POSE_OT_ik_clearrBf3153f1c7f57c054ecc7d0f986c6afc1d70ffb7d
  • POSE_OT_ik_add rB7baa8d2e8f07328fbb187e82f477e56950c25c46
  • POSE_OT_constraints_clear rB647218af07dab9d3abd9c3a058701ea36c87930d
  • POSE_OT_constraints_copy rB418c16bd3b799a95f9dc4d458213c60fba42626c
  • POSE_OT_constraint_add_with_targets rB7baa8d2e8f07328fbb187e82f477e56950c25c46
  • POSE_OT_select_parent rBdcf1210c44cb1e46bf387f326c5ee9daa2a53004

Revisions and Commits

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
Campbell Barton (campbellbarton) created this task.
Campbell Barton (campbellbarton) updated the task description.Apr 16 2018, 2:02 PM
Campbell Barton (campbellbarton) updated the task description.Apr 17 2018, 11:27 AM
Campbell Barton (campbellbarton) updated the task description.Apr 18 2018, 7:03 PM
Campbell Barton (campbellbarton) updated the task description.
Campbell Barton (campbellbarton) updated the task description.Apr 18 2018, 7:13 PM
Joshua Leung (aligorith) moved this task from Tasks to Short Term Backlog on the Code Quest board.Apr 23 2018, 12:48 PM
Joshua Leung (aligorith) added a subscriber: Joshua Leung (aligorith).
Joshua Leung (aligorith) claimed this task.Apr 23 2018, 1:14 PM
Joshua Leung (aligorith) updated the task description.
Joshua Leung (aligorith) updated the task description.Apr 23 2018, 2:24 PM
Joshua Leung (aligorith) updated the task description.Apr 24 2018, 2:33 PM
Joshua Leung (aligorith) updated the task description.Apr 24 2018, 2:58 PM
Joshua Leung (aligorith) updated the task description.Apr 24 2018, 3:03 PM
Joshua Leung (aligorith) updated the task description.
Joshua Leung (aligorith) moved this task from Short Term Backlog to Doing on the Code Quest board.Apr 25 2018, 10:55 AM
Joshua Leung (aligorith) updated the task description.Apr 30 2018, 4:46 PM
Joshua Leung (aligorith) updated the task description.Apr 30 2018, 6:25 PM
Campbell Barton (campbellbarton) updated the task description.May 1 2018, 2:29 PM
Joshua Leung (aligorith) updated the task description.May 1 2018, 2:32 PM
Joshua Leung (aligorith) updated the task description.May 1 2018, 4:58 PM
Joshua Leung (aligorith) updated the task description.May 2 2018, 6:30 PM
Joshua Leung (aligorith) updated the task description.May 3 2018, 6:08 PM
Dalai Felinto (dfelinto) updated the task description.May 9 2018, 12:54 PM
Dalai Felinto (dfelinto) updated the task description.
Dalai Felinto (dfelinto) updated the task description.May 14 2018, 2:30 PM
Joshua Leung (aligorith) updated the task description.May 15 2018, 2:41 PM
Joshua Leung (aligorith) updated the task description.May 28 2018, 8:28 PM
Brecht Van Lommel (brecht) moved this task from Doing to Tasks on the Code Quest board.Aug 13 2018, 11:49 AM
Dalai Felinto (dfelinto) updated the task description.Oct 12 2018, 8:29 PM
Dalai Felinto (dfelinto) updated the task description.Oct 12 2018, 10:31 PM
Dalai Felinto (dfelinto) mentioned this in rB3ffc2a8330fd: Multi-Objects: POSE_OT_paths_*.Oct 12 2018, 10:45 PM
Dalai Felinto (dfelinto) updated the task description.Oct 12 2018, 10:45 PM
Dalai Felinto (dfelinto) updated the task description.Oct 13 2018, 12:41 AM
Dalai Felinto (dfelinto) updated the task description.Oct 13 2018, 12:54 AM
Dalai Felinto (dfelinto) updated the task description.Oct 13 2018, 1:07 AM
Dalai Felinto (dfelinto) updated the task description.Oct 17 2018, 12:46 AM
Dalai Felinto (dfelinto) updated the task description.Oct 17 2018, 2:11 AM
Dalai Felinto (dfelinto) updated the task description.Oct 19 2018, 2:43 PM
Dalai Felinto (dfelinto) updated the task description.Oct 19 2018, 8:48 PM
Dalai Felinto (dfelinto) updated the task description.Oct 19 2018, 9:54 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.
Dalai Felinto (dfelinto) added a subscriber: Dalai Felinto (dfelinto).

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.
Dalai Felinto (dfelinto) changed the task status from Unknown Status to Resolved.Oct 20 2018, 2:34 AM