34a18c7608ba4390c97828e6a8f76648dbbcc967
This adds the "Merge Animation" (`ANIM_OT_merge_animation`) operator to the 3D viewport. It merges the animation of all selected objects into the animation of the active object. On a technical level this moves the `ChannelBag` of the source action into a new slot on the target action. The Slot name is copied but might differ due to name clashes. Due to this, the operator is named "Merge Animation" and not "Merge Actions" since it might not merge the complete actions but only the slots actually used by the selection in the 3D viewport This operator will find all related IDs to the selection, i.e. object data, shape keys etc. and merge those as well. That means this operator can also be used to JUST merge the actions of the active object and its data. ### Caveats Because there may be more than 1 slot user this might reassign an object that isn't actually selected. The other option is that when there is more than 1 slot user, the `ChannelBag` is copied instead of moved. That means moving objects that share a slot one by one would result in a loss of slot sharing and data duplication. I think it's better to respect the artist decision of "these things use the same animation" in this case. (open to opinions though) Design task: #126937 Pull Request: https://projects.blender.org/blender/blender/pulls/127414
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
