ndee85 / coa_tools

COA Tools is a 2D Animation Suite for blender. It offers a 2D cutout animation workflow similar to programs like spine or spriter.
GNU General Public License v3.0
908 stars 139 forks source link

Z-order translation when multiple sprites are selected #17

Open IBwWG opened 8 years ago

IBwWG commented 8 years ago

Just a feature suggestion, which would be really handy for z-order editing, especially with multiple characters who are interacting.

It would be great if, when you select multiple sprites, changing the Z-order changes the Z-order of each sprite by that relative amount, rather than resetting all sprites' Z-order to what you tell it.

E.g. I have an arm with patches, and it currently looks right--the Z-depths are set correctly. I want to make it interact with another character, but it should go behind the other character.

Currently I have to change each Z-depth individually for one of the characters for it to work, because changing them as a group sets them all to the same value, which breaks the original z-ordering...I'm having trouble imagining a context where this is exactly what someone would want...but maybe there is one?

The new way I would just select all parts of the arm, set the Z-depth to a very low value, and it would add that Z-depth to all parts of the arm--making them go behind the other character, but still stay correct relative to each other so that patches look right and so on.

Hopefully I explained it well enough. I imagine such a change wouldn't take too many lines of code, but be very useful in some situations. :)

IBwWG commented 8 years ago

A workaround:

On the first keyframe, select the sprites you want to z-depth-change together. Select their SpriteObject (or make an empty and select that?). Click the chainlink icon at the top of the right hand side bottom panel to open the constraints panel. Add Object Constraint, Child Of, and select only Location Y. Select only the parent (SpriteObject or empty, whatever you just made everything a child of), make a Location keyframe. Then on another frame you can simply open the Transform panel and mess with the Y value of the parent, and all of your relative z-depths (Z is actually Blender's "Y" here, and negative, and a different scale) are kept intact while they move as a group.