Copy visual pose and paste over frame range #57003

Open
opened 2018-10-02 13:46:49 +02:00 by Brecht Van Lommel · 26 comments

Two features requested by animators:

  • Copy Visual Pose: a combination of existing functionality to copy visual poses between bones and copy pose that works between frames.
  • Paste Pose over frame range: when pasting a pose, it can be useful to paste it over a specified range of frames.

Both of these features can be done in a relatively simple way, however in general with rigs just copying and pasting the matrix after constraints and parenting are applied does not necessarily lead to the same resulting pose. At least parenting should be taken into account intelligently (pasting in order from parent to child), for constraints or IK it may be very hard to do well.

See comment #57003#1077474 for some design questions, with the summary of the answers in #57003#1089566.

Two features requested by animators: * Copy Visual Pose: a combination of existing functionality to copy visual poses between bones and copy pose that works between frames. * Paste Pose over frame range: when pasting a pose, it can be useful to paste it over a specified range of frames. Both of these features can be done in a relatively simple way, however in general with rigs just copying and pasting the matrix after constraints and parenting are applied does not necessarily lead to the same resulting pose. At least parenting should be taken into account intelligently (pasting in order from parent to child), for constraints or IK it may be very hard to do well. See comment #57003#1077474 for some design questions, with the summary of the answers in #57003#1089566.
Author
Owner

Added subscribers: @brecht, @PabloFournier

Added subscribers: @brecht, @PabloFournier

Added subscriber: @dr.sybren

Added subscriber: @dr.sybren

Reclassifying this task from TODO to Design, as the task is not concrete enough to actually start implementation.
See the 2020-11-12 module meeting notes for more information.

Reclassifying this task from TODO to Design, as the task is not concrete enough to actually start implementation. See the [2020-11-12 module meeting notes](https://devtalk.blender.org/t/2020-11-12-animation-rigging-module-meeting/16092) for more information.

I've described my ideas below, and clearly indicated which questions still need answering. I hope this'll make discussions easier.

Terminology

  • Transform: the combination of location, rotation, and scale.
  • Visual Transform: the transform after the effects of animation and constraints has been applied. It can be expressed in local or world space.
  • (Visual) Pose: a mapping from bone name to its (visual) transform.

Scope

This proposal is about a copy-paste workflow of Visual transforms and poses only. This means that it excludes animation data like keyframe slopes, interpolation types, FCurve extrapolation settings, and FCurve modifiers. The effect of these is taken into account, of course, but these settings themselves are not copied.

Design Principles

  1. If possible, it's nice to have the data as text on the clipboard. This allows pretty much anything to act as the source or the target of the copy/paste operation, including copying to/from an instant messenger. More importantly, it is trivial to support a workflow where you would copy a matrix, close Blender, open another Blender, and then paste it.
  2. Copying a visual pose excludes keyframe slopes, interpolation types, FCurve extrapolation settings, and FCurve modifiers.

Different Functionalities & Design Questions

Copy-paste of single pose to another frame or another character

This is how I envision copy-pasting single poses:

  • Select multiple bones to copy,
  • click the "Copy Visual Pose" button,
  • go to a different frame, or select a different rig as the active object, and
  • click the "Paste Pose" button.

In this case, Blender will use the bone names to map from the copied data to the new rig.

Design Question A: should the pose that is stored on the clipboard contain the bone transforms in local space (so relative to the parent bone) or in world space? The former keeps the copied data closer to what Blender (and artists) are used to. However, the latter can be beneficial in certain workflows, when pasting onto a rig that has a slightly different topology (for example a bone was inserted between the copied bone and its parent). Possible answers to this question are:

  1. Always do local space,
  2. Always do world space,
  3. Let the user decide (for example with a checkbox next to the "Copy Pose" button),
  4. Other (please elaborate)

Copy-paste of Visual Transform

This is how I envision copy-pasting visual transforms of single bones/objects:

  • Select the bone or object to copy,
  • click the "Copy Visual Pose" button,
  • go to a different frame, or select a different bone or object as active, and
  • click the "Paste Pose" button.

In this case, Blender will ignore the object/bone names, and simply apply the copied transform onto the active object/bone.

Design Question B: here Blender decides to simply ignore the bone name and apply the transform to the active bone because there is only a single transform on the clipboard. Is this intuitive? Or should there be explicit "Copy Visual Pose" and "Copy Visual Transform" buttons? Possible answers to this question are:

  1. Blender making this choice based on whether one or multiple bones were copied is fine, and a single button is fine.
  2. Blender making this choice based on whether one or multiple bones were copied is fine, but the button label should read either "Copy Visual Pose" or "Copy Visual Transform" depending on what Blender will do.
  3. This choice should be made by the artist, and there should be two buttons "Copy Visual Pose" and "Copy Visual Transform".
  4. Other (please elaborate)

Copy-paste over multiple frames

  • Select the bone or object to copy,
  • select a frame range (either by typing numbers in a panel, or by using the scene preview range),
  • click the "Copy Visual Animation" button,
  • go to a different frame, or select a different rig as the active object, and
  • click the "Paste Animation" button.

Design Question C: Should this work as a "bake animation" operation, where each frame is evaluated, and thus when pasting it's going to be animated on ones? Possible options I see are:

  1. Baking on ones is enough.
  2. Baking on regular keyframes is enough, but the artist should have control over the step size (on twos, threes, etc.)
  3. Poses should only be copied for those frames that already have a key. On every frame where any of the copied bone has a key, the entire pose should be copied.
  4. Poses should only be copied for those frames that already have a key. On every frame where any animation data exists (so this includes keys on unselected bones, constraint targets, etc.) , the entire pose should be copied.
  5. Poses should only be copied for those frames that already have a key. A bone's visual transform should only be copied where that bone has a key.
  6. Other (please elaborate).

Design Question D: What frame range should be pasted over? Given that an animator copied frames 10-20, with frame 13 as the current scene frame, and then moved to frame 113 and pasted, pasting should place the pasted animation at frames

  1. Original frames: 10-20
  2. Start at current frame: 113-123
  3. Current frame at copy time should go to current frame at paste time: 110-120
  4. Other (please elaborate).

Design Question E: What should happen with the existing animation that is pasted over?

  1. Insert pasted frames, pushing existing animation to the right on the timeline.
  2. Overwrite existing animation, leaving the animation data after the last pasted frame untouched.
  3. Both, and let the animator choose.
  4. Other (please elaborate).

Blending Pasted Poses

This applies pretty much to all the above.

Design Question F: How desirable is it to have a slider to blend between the original pose and the pasted pose?

I've described my ideas below, and clearly indicated which questions still need answering. I hope this'll make discussions easier. ### Terminology * **Transform**: the combination of location, rotation, and scale. * **Visual Transform**: the transform after the effects of animation and constraints has been applied. It can be expressed in local or world space. * **(Visual) Pose**: a mapping from bone name to its (visual) transform. ### Scope This proposal is about a copy-paste workflow of **Visual** transforms and poses only. This means that it excludes animation data like keyframe slopes, interpolation types, FCurve extrapolation settings, and FCurve modifiers. The **effect** of these is taken into account, of course, but these settings themselves are not copied. ### Design Principles 1. If possible, it's nice to have the data **as text on the clipboard**. This allows pretty much anything to act as the source or the target of the copy/paste operation, including copying to/from an instant messenger. More importantly, it is trivial to support a workflow where you would copy a matrix, close Blender, open another Blender, and then paste it. 2. Copying a visual pose **excludes keyframe slopes, interpolation types, FCurve extrapolation settings, and FCurve modifiers**. ### Different Functionalities & Design Questions **Copy-paste of single pose to another frame or another character** This is how I envision copy-pasting single poses: - Select multiple bones to copy, - click the "Copy Visual Pose" button, - go to a different frame, or select a different rig as the active object, and - click the "Paste Pose" button. In this case, Blender will use the bone names to map from the copied data to the new rig. **Design Question A**: should the pose that is stored on the clipboard contain the bone transforms in local space (so relative to the parent bone) or in world space? The former keeps the copied data closer to what Blender (and artists) are used to. However, the latter can be beneficial in certain workflows, when pasting onto a rig that has a slightly different topology (for example a bone was inserted between the copied bone and its parent). Possible answers to this question are: 1. Always do local space, 2. Always do world space, 3. Let the user decide (for example with a checkbox next to the "Copy Pose" button), 4. Other (please elaborate) **Copy-paste of Visual Transform** This is how I envision copy-pasting visual transforms of single bones/objects: - Select the bone or object to copy, - click the "Copy Visual Pose" button, - go to a different frame, or select a different bone or object as active, and - click the "Paste Pose" button. In this case, Blender will ignore the object/bone names, and simply apply the copied transform onto the active object/bone. **Design Question B**: here Blender decides to simply ignore the bone name and apply the transform to the active bone because there is only a single transform on the clipboard. Is this intuitive? Or should there be explicit "Copy Visual Pose" and "Copy Visual Transform" buttons? Possible answers to this question are: 1. Blender making this choice based on whether one or multiple bones were copied is fine, and a single button is fine. 2. Blender making this choice based on whether one or multiple bones were copied is fine, but the button label should read either "Copy Visual Pose" or "Copy Visual Transform" depending on what Blender will do. 3. This choice should be made by the artist, and there should be two buttons "Copy Visual Pose" and "Copy Visual Transform". 4. Other (please elaborate) **Copy-paste over multiple frames** - Select the bone or object to copy, - select a frame range (either by typing numbers in a panel, or by using the scene preview range), - click the "Copy Visual Animation" button, - go to a different frame, or select a different rig as the active object, and - click the "Paste Animation" button. **Design Question C**: Should this work as a "bake animation" operation, where each frame is evaluated, and thus when pasting it's going to be animated on ones? Possible options I see are: 1. Baking on ones is enough. 2. Baking on regular keyframes is enough, but the artist should have control over the step size (on twos, threes, etc.) 3. Poses should only be copied for those frames that already have a key. On every frame where any of the copied bone has a key, the entire pose should be copied. 4. Poses should only be copied for those frames that already have a key. On every frame where any animation data exists (so this includes keys on unselected bones, constraint targets, etc.) , the entire pose should be copied. 5. Poses should only be copied for those frames that already have a key. A bone's visual transform should only be copied where that bone has a key. 6. Other (please elaborate). **Design Question D**: What frame range should be pasted over? Given that an animator copied frames 10-20, with frame 13 as the current scene frame, and then moved to frame 113 and pasted, pasting should place the pasted animation at frames 1. Original frames: 10-20 2. Start at current frame: 113-123 3. Current frame at copy time should go to current frame at paste time: 110-120 4. Other (please elaborate). **Design Question E**: What should happen with the existing animation that is pasted over? 1. Insert pasted frames, pushing existing animation to the right on the timeline. 2. Overwrite existing animation, leaving the animation data after the last pasted frame untouched. 3. Both, and let the animator choose. 4. Other (please elaborate). **Blending Pasted Poses** This applies pretty much to all the above. **Design Question F**: How desirable is it to have a slider to blend between the original pose and the pasted pose?
Author
Owner

Quick answers based on how I understand the use case the Blender Studio animators had in mind. But you'll have to check with them or artists in the module.

A: (1)
B: Seems like solving a different problem that the one this task was created for, no opinion on the importance of that other problem.
C: This is for animators who want to continue modifying the animation, not bake it. Which goes against design principle (2) as you do want to preserve all that info, and probably (1) as well since it may be impractical to encode all that into text.
D: (3)
E: (2)
F: Quite desirable.

Quick answers based on how I understand the use case the Blender Studio animators had in mind. But you'll have to check with them or artists in the module. A: (1) B: Seems like solving a different problem that the one this task was created for, no opinion on the importance of that other problem. C: This is for animators who want to continue modifying the animation, not bake it. Which goes against design principle (2) as you do want to preserve all that info, and probably (1) as well since it may be impractical to encode all that into text. D: (3) E: (2) F: Quite desirable.

Thanks for your answers, @brecht.

In #57003#1077482, @brecht wrote:
C: This is for animators who want to continue modifying the animation, not bake it. Which goes against design principle (2) as you do want to preserve all that info, and probably (1) as well since it may be impractical to encode all that into text.

This is an important remark. As far as I understood, "visual pose" means "after evaluation". As a result, the info you want to preserve is no longer there. The current visual pose may not even be on a keyframe at all. We can also look at this from the perspective of a "non-visual" pose copy, i.e. the original animation data, but that's not what was written in the patch description (at least not with how I understand "visual" in this case).

Thanks for your answers, @brecht. > In #57003#1077482, @brecht wrote: > C: This is for animators who want to continue modifying the animation, not bake it. Which goes against design principle (2) as you do want to preserve all that info, and probably (1) as well since it may be impractical to encode all that into text. This is an important remark. As far as I understood, "visual pose" means "after evaluation". As a result, the info you want to preserve is no longer there. The current visual pose may not even be on a keyframe at all. We can also look at this from the perspective of a "non-visual" pose copy, i.e. the original animation data, but that's not what was written in the patch description (at least not with how I understand "visual" in this case).
Sybren A. Stüvel self-assigned this 2020-12-18 11:12:19 +01:00
Author
Owner

It's probably best to ask the Blender Studio animators at this point.

It may be that these two features requests are really separate things, and that ""copy visual animation" is not even what is being requested.

It's probably best to ask the Blender Studio animators at this point. It may be that these two features requests are really separate things, and that ""copy visual animation" is not even what is being requested.
Member

Added subscriber: @BClark

Added subscriber: @BClark
Member

Design Question A: should the pose that is stored on the clipboard contain the bone transforms in local space (so relative to the parent bone) or in world space? Let the user decide (for example with a checkbox next to the "Copy Pose" button).
While we are talking about pasting pose and blending the thing I really wish I could control is WHERE the pose aligns when it pastes because there are times when I want the pose to paste exactly in the same location and orientation/rotation as the current pose and other times I wish it would paste in another location, based on selection or where the 3d cursor is located and oriented. Instead of paste, then having to move it by hand and rotate it to where I wanted or need it. Example a loop cycle that is translating, copy the pose from the first frame and paste, puts the root translate back at the start of the move but I need it translated forward to the end of the animation and aligned with the foot on the ground instead of exactly where I copied it. I bring this up because of the talk about storing the pose parent relative or in world space.
Design Question B: I am okay with either but maybe it is better to be clear "Blender making this choice based on whether one or multiple bones were copied is fine, but the button label should read either "Copy Visual Pose" or "Copy Visual Transform" depending on what Blender will do."

Copy-paste over multiple frames(Right now the only way to "propagate poses" is to existing frames, you have to sample the curve first instead of give it a frame range to paste over and it only works with ONE pose, so being able to grab a range of poses and paste them or have one pose and paste it over a range without existing keys would be nice. Right now I do this by either turning on AUTO key and paste pose, and move one frame forward for each frame to key over, or sample and propagate poses)
IF we are talking about copy a range of pure poses, then I would expect it to store each frame as a full pose, key or not... as this is diffrent than copy/paste existing keyframes on the controls.
Then I would want control over how it pastes that range, say on ones or twos.

Design Question D: What frame range should be pasted over?2- current frame shouldn't any thing to do with the copy, you are picking a range, and then when you paste, expected result would be start frame of animation range to paste starting at current frame.

Design Question E: What should happen with the existing animation that is pasted over? 3"Both, and let the animator choose." There are times were you want to do both, push the data or replace it and should be a setting or choice and this would work similar to other software pate choices or editing of time in clips. replace or offset.

**Design Question F: How desirable is it to have a slider to blend between the original pose and the pasted pose?**YES great to have

**Design Question A: should the pose that is stored on the clipboard contain the bone transforms in local space (so relative to the parent bone) or in world space?** Let the user decide (for example with a checkbox next to the "Copy Pose" button). While we are talking about pasting pose and blending the thing I really wish I could control is WHERE the pose aligns when it pastes because there are times when I want the pose to paste exactly in the same location and orientation/rotation as the current pose and other times I wish it would paste in another location, based on selection or where the 3d cursor is located and oriented. Instead of paste, then having to move it by hand and rotate it to where I wanted or need it. Example a loop cycle that is translating, copy the pose from the first frame and paste, puts the root translate back at the start of the move but I need it translated forward to the end of the animation and aligned with the foot on the ground instead of exactly where I copied it. I bring this up because of the talk about storing the pose parent relative or in world space. **Design Question B:** I am okay with either but maybe it is better to be clear "Blender making this choice based on whether one or multiple bones were copied is fine, but the button label should read either "Copy Visual Pose" or "Copy Visual Transform" depending on what Blender will do." **Copy-paste over multiple frames**(Right now the only way to "propagate poses" is to existing frames, you have to sample the curve first instead of give it a frame range to paste over and it only works with ONE pose, so being able to grab a range of poses and paste them or have one pose and paste it over a range without existing keys would be nice. Right now I do this by either turning on AUTO key and paste pose, and move one frame forward for each frame to key over, or sample and propagate poses) IF we are talking about copy a range of pure poses, then I would expect it to store each frame as a full pose, key or not... as this is diffrent than copy/paste existing keyframes on the controls. Then I would want control over how it pastes that range, say on ones or twos. **Design Question D:** What frame range should be pasted over?2- current frame shouldn't any thing to do with the copy, you are picking a range, and then when you paste, expected result would be start frame of animation range to paste starting at current frame. **Design Question E: What should happen with the existing animation that is pasted over?** 3"Both, and let the animator choose." There are times were you want to do both, push the data or replace it and should be a setting or choice and this would work similar to other software pate choices or editing of time in clips. replace or offset. **Design Question F: How desirable is it to have a slider to blend between the original pose and the pasted pose?**YES great to have

Added subscriber: @Rikstopher

Added subscriber: @Rikstopher

Design Question A: 1
Design Question B: 1
Design Question C: 5
Design Question D: 2
Design Question E: 3
Design Question F: Yes

**Design Question A:** 1 **Design Question B:** 1 **Design Question C:** 5 **Design Question D:** 2 **Design Question E:** 3 **Design Question F:** Yes

kinda agree with Rik in most

A:1
B:1
C:2-5
D:2
E:3
F: yes, please

kinda agree with Rik in most A:1 B:1 C:2-5 D:2 E:3 F: yes, please

Added subscriber: @LucianoMunoz

Added subscriber: @LucianoMunoz

I tend to agree with all of what the guys have said but there is one which is C that i want to dive into.

A:1
B:1

C: 6
The option 2 and 5 are the closest to desirable, but I think we'd like the entire range "selected" to be copied even if there aren't keys on it, and then at pasting decide whether pasting on existing keys or baking or pasting original keys, kind of like right now you can copy a pose (in the viewport) that is in between 2 other poses even if at that particular point in time it doesn't have keys.

D: 2
E: 3
F: yes, please

I tend to agree with all of what the guys have said but there is one which is C that i want to dive into. A:1 B:1 C: 6 The option 2 and 5 are the closest to desirable, but I think we'd like the entire range "selected" to be copied even if there aren't keys on it, and then at pasting decide whether pasting on existing keys or baking or pasting original keys, kind of like right now you can copy a pose (in the viewport) that is in between 2 other poses even if at that particular point in time it doesn't have keys. D: 2 E: 3 F: yes, please

Added subscriber: @Josephbburg

Added subscriber: @Josephbburg

Sorry this took me so long :
A: 3, but default to Local Space (and change with Adjust Last Operator/F9 menu)
B I agree with brecht here, and I think that Visual Pose and Visual Transform are very confusing names. Anyhow I think consistency is most important, it's better for Blender to never make a decision than for it to ever make a wrong decision. So I think it's best to avoid a situation where a heuristic is required to choose which bones to paste the data from > to... anyhow: "here Blender decides to simply ignore the bone name and apply the transform to the active bone because there is only a single transform on the clipboard. Is this intuitive?" -- the answer is "Yes, as intuitive as selected/active is... which is not entirely intuitive."
C 2, but seems like it should be its own bake/smart bake operator.
D 1 is the only consistent
E 3, default to overwriting, use f9 menu as before, what about putting it on the NLA stack, though?
F 100% desirable!

Sorry this took me so long :\ A: 3, but default to Local Space (and change with Adjust Last Operator/F9 menu) B I agree with brecht here, and I think that Visual Pose and Visual Transform are very confusing names. Anyhow I think consistency is most important, it's better for Blender to never make a decision than for it to ever make a wrong decision. So I think it's best to avoid a situation where a heuristic is required to choose which bones to paste the data from > to... anyhow: "here Blender decides to simply ignore the bone name and apply the transform to the active bone because there is only a single transform on the clipboard. Is this intuitive?" -- the answer is "Yes, as intuitive as selected/active is... which is not entirely intuitive." C 2, but seems like it should be its own bake/smart bake operator. D 1 is the only consistent E 3, default to overwriting, use f9 menu as before, what about putting it on the NLA stack, though? F 100% desirable!

Added subscriber: @StanislavOvcharov

Added subscriber: @StanislavOvcharov

Paste Pose over frame range - Isn't it how Propagate pose tool work?

Paste Pose over frame range - Isn't it how Propagate pose tool work?

Added subscriber: @ChrisLend

Added subscriber: @ChrisLend

In #57003#1080913, @Josephbburg wrote:
I think that Visual Pose and Visual Transform are very confusing names.

I agree, which is why I started with a definition of terms. Did that help?

Anyhow I think consistency is most important,

I agree

it's better for Blender to never make a decision than for it to ever make a wrong decision.

Here I generally disagree. "Never make a decision" can result in complex operators with too many parameters. I think it's better for Blender to have limitations, and accept that it's going to be imperfect in certain cases, if that means that copy/pasting is easy to use, predictable, and usable in the major workflows (like character animation). I think we both agree on the "it should be predictable" part ;-)

E 3, default to overwriting, use f9 menu as before, what about putting it on the NLA stack, though?

I think that's for a much-desired Animation Layers project, and out of scope for this task.

In #57003#1089342, @StanislavOvcharov wrote:
Paste Pose over frame range - Isn't it how Propagate pose tool work?

Propagate Pose is more limited. The copy/paste described in this task should also work between blend files, different scenes, and maybe even have a text representation for the data so that poses can be shared via instant messengers, email, etc.

Summary of the answers so far

Copy-paste of single pose to another frame or another character

Design Question A: should the pose that is stored on the clipboard contain the bone transforms in local or world space?
1. Always local: @Rikstopher, @PabloFournier, @LucianoMunoz
3. Let user decide: @BClark, @Josephbburg (but default to local)

Excellent. Here there are no conflicts. I can just implement local space first, and extend that by world space + a choice later.

Copy-paste of Visual Transform

Design Question B: When there is only a single transform on the clipboard, ignore the bone name and apply the transform to the active bone
1. Fine. @Rikstopher, @PabloFournier, @LucianoMunoz, @Josephbburg
2. As above, but change the button label from "... pose" to "... transform": @BClark

I'll start implementing the first option. If it turns out it's not as clear as people thought, changing the label of the button should be relatively easy to add.

Copy-paste over multiple frames

Design Question C: Should this work as a "bake animation" operation, where each frame is evaluated, and thus when pasting it's going to be animated on ones?
2. Baking on regular keyframes is enough, artist controls step size: @PabloFournier, @Josephbburg (but make baking > separate thing)
5. Only copy on keyed frames, only for keyed bones: @Rikstopher, @PabloFournier
6. Copy everything, so local, world, and info about keyed or not; decide what to paste upon pasting: @LucianoMunoz

This is the question with the most different answers. I agree with @Josephbburg that baking is probably better kept for a separate operator.
As for the implementation, I'll probably start making option 5, after which I could look into @LucianoMunoz's suggestion.

Design Question D: What frame range should be pasted over?
1. Original frames: 10-20, @Josephbburg
2. Start at current frame: 113-123, @BClark, @Rikstopher, @PabloFournier, @LucianoMunoz

Here I'll implement option 2. It has the most votes, and it would still allow option 1. (but would require you to change the current frame to the original one).

Design Question E: What should happen with the existing animation that is pasted over?
3. Both, and let the animator choose. @BClark, @Rikstopher, @PabloFournier, @LucianoMunoz, @Josephbburg

Excellent, unified opinions makes things simple.

Blending Pasted Poses

Design Question F: How desirable is it to have a slider to blend between the original pose and the pasted pose?
1. YES @BClark, @Rikstopher, @PabloFournier, @LucianoMunoz, @Josephbburg

For this I really want to use #81785 (Implementation: Modal Key Manipulation Operators). @ChrisLend has already implemented a lot of patches, and I'll give them priority when reviewing.

> In #57003#1080913, @Josephbburg wrote: > I think that Visual Pose and Visual Transform are very confusing names. I agree, which is why I started with a definition of terms. Did that help? > Anyhow I think consistency is most important, I agree > it's better for Blender to never make a decision than for it to ever make a wrong decision. Here I generally disagree. "Never make a decision" can result in complex operators with too many parameters. I think it's better for Blender to have limitations, and accept that it's going to be imperfect in certain cases, if that means that copy/pasting is easy to use, predictable, and usable in the major workflows (like character animation). I think we both agree on the "it should be predictable" part ;-) > E 3, default to overwriting, use f9 menu as before, what about putting it on the NLA stack, though? I think that's for a much-desired [Animation Layers](https://wiki.blender.org/wiki/Modules/Animation-Rigging/Bigger_Projects#Animation_Layers) project, and out of scope for this task. > In #57003#1089342, @StanislavOvcharov wrote: > Paste Pose over frame range - Isn't it how Propagate pose tool work? Propagate Pose is more limited. The copy/paste described in this task should also work between blend files, different scenes, and maybe even have a text representation for the data so that poses can be shared via instant messengers, email, etc. ### Summary of the answers so far **Copy-paste of single pose to another frame or another character** > **Design Question A**: should the pose that is stored on the clipboard contain the bone transforms in local or world space? > `1`. Always local: @Rikstopher, @PabloFournier, @LucianoMunoz > `3`. Let user decide: @BClark, @Josephbburg (but default to local) Excellent. Here there are no conflicts. I can just implement local space first, and extend that by world space + a choice later. **Copy-paste of Visual Transform** > **Design Question B**: When there is only a single transform on the clipboard, ignore the bone name and apply the transform to the active bone > `1`. Fine. @Rikstopher, @PabloFournier, @LucianoMunoz, @Josephbburg > `2`. As above, but change the button label from "... pose" to "... transform": @BClark I'll start implementing the first option. If it turns out it's not as clear as people thought, changing the label of the button should be relatively easy to add. **Copy-paste over multiple frames** > **Design Question C**: Should this work as a "bake animation" operation, where each frame is evaluated, and thus when pasting it's going to be animated on ones? > `2`. Baking on regular keyframes is enough, artist controls step size: @PabloFournier, @Josephbburg (but make baking > separate thing) > `5`. Only copy on keyed frames, only for keyed bones: @Rikstopher, @PabloFournier > `6`. Copy everything, so local, world, and info about keyed or not; decide what to paste upon pasting: @LucianoMunoz This is the question with the most different answers. I agree with @Josephbburg that baking is probably better kept for a separate operator. As for the implementation, I'll probably start making option 5, after which I could look into @LucianoMunoz's suggestion. > **Design Question D**: What frame range should be pasted over? > `1`. Original frames: 10-20, @Josephbburg > `2`. Start at current frame: 113-123, @BClark, @Rikstopher, @PabloFournier, @LucianoMunoz Here I'll implement option 2. It has the most votes, and it would still allow option 1. (but would require you to change the current frame to the original one). > **Design Question E**: What should happen with the existing animation that is pasted over? > `3`. Both, and let the animator choose. @BClark, @Rikstopher, @PabloFournier, @LucianoMunoz, @Josephbburg Excellent, unified opinions makes things simple. **Blending Pasted Poses** > **Design Question F**: How desirable is it to have a slider to blend between the original pose and the pasted pose? > `1`. YES @BClark, @Rikstopher, @PabloFournier, @LucianoMunoz, @Josephbburg For this I really want to use #81785 (Implementation: Modal Key Manipulation Operators). @ChrisLend has already implemented a lot of patches, and I'll give them priority when reviewing.
Contributor

Added subscriber: @RedMser

Added subscriber: @RedMser

Added subscriber: @JohanTriHandoyo

Added subscriber: @JohanTriHandoyo
Member

Now that the pose system is in the asset browser, has there been any more work or discussion on this to allow expanded control over the paste either from the asset browser or while in Blender?
Thank you :)

Now that the pose system is in the asset browser, has there been any more work or discussion on this to allow expanded control over the paste either from the asset browser or while in Blender? Thank you :)

I've just landed (d737f2016d) an expanded version of my Copy Visual Transform add-on (which I renamed to Copy Global Transform because "visual" is not a very clear term), it'll be bundled in Blender 3.1. It can copy-paste global transforms, and also do the pasting over multiple frames (either "smart bake" to only adjust existing keys, or "regular bake" to create keys on 1s, 2s, etc.)

I've just landed (d737f2016d) an expanded version of my Copy Visual Transform add-on (which I renamed to Copy Global Transform because "visual" is not a very clear term), it'll be bundled in Blender 3.1. It can copy-paste global transforms, and also do the pasting over multiple frames (either "smart bake" to only adjust existing keys, or "regular bake" to create keys on 1s, 2s, etc.)

Added subscriber: @Njesper

Added subscriber: @Njesper

In #57003#1273720, @dr.sybren wrote:
I've just landed (d737f2016d) an expanded version of my Copy Visual Transform add-on (which I renamed to Copy Global Transform because "visual" is not a very clear term), it'll be bundled in Blender 3.1. It can copy-paste global transforms, and also do the pasting over multiple frames (either "smart bake" to only adjust existing keys, or "regular bake" to create keys on 1s, 2s, etc.)

I have a request for your brilliant Copy Global Transform: Could you make 3 checkboxes for location, rotation, and scale, so the user can choose to copy paste only part of the transform?
Otherwise thanx for the coolest animation stuff.
Best, Jesper

> In #57003#1273720, @dr.sybren wrote: > I've just landed (d737f2016d) an expanded version of my Copy Visual Transform add-on (which I renamed to Copy Global Transform because "visual" is not a very clear term), it'll be bundled in Blender 3.1. It can copy-paste global transforms, and also do the pasting over multiple frames (either "smart bake" to only adjust existing keys, or "regular bake" to create keys on 1s, 2s, etc.) I have a request for your brilliant Copy Global Transform: Could you make 3 checkboxes for location, rotation, and scale, so the user can choose to copy paste only part of the transform? Otherwise thanx for the coolest animation stuff. Best, Jesper
Philipp Oeser removed the
Interest
Animation & Rigging
label 2023-02-09 14:36:43 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
11 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#57003
No description provided.