Can matching transform with a button/shortcut be done?
Hi Spine Team!
I'm currently working on a character that's requiring regular replacement of hands, arms, upper bodies and more.
I find having duplicate bones placed on top of each other controlling substitute slots to be intensely deceptive as there's no visual cue if you turned off a slot or an attachment. In my case: I am be needing to do both, excessively often. This is resulting in a ton of lost time when selecting the wrong asset, or selecting the correct asset but a slot instead of an attachment, etc, so on, and more.
My solution is to have all the assets I need to be set outside of the action area and replaced as necessary like a toy with spare body parts which I duplicate as needed. The way to do this is to have the core idle pose for the character set up as the main rig while replaceable joints will have a "joint null" (bone) that holds the bone chains of things that need parenting. (wrist, shoulder, and more). This way I can easily confirm the visibility of messily-named chains at a glance while animating/doing setup. This removes a vast number of errors.
However, I'm finding it to be quite the annoyance to have to click on the system that needs parenting to the null, parent it, click parent transform, and enter 0, 0 for translate, 1 for scale every time - but it's still leagues faster than everything listed previously.
The point - TL;DR:: I feel like a "match transform" button/shortcut would be an amazing tool for not only this but snapping IK/constraint positions (especially since constraints don't duplicate), path starting/end points, and possibly more. I'm fairly certain it doesn't exist in Spine yet but I'd like to request a "Match Transform" be considered for the near future sometime.
Thanks for all your hard work!
Hello! I'll try to summarize what you wrote because it was a bit confusing.
you received a skeleton that has duplicate bones layered on top of each other
the duplicates are hard to select because their position matches
you need to deactivate slot and attachment visibility
as a workaround you move the duplicate out of the way, but then need to set it back to where it was
you wish there was a way to quickly match a path, bone, etc. to the position of another bone
If this information is correct, then you are in luck! Spine already has a way of copying transforms:
Tools - Spine User Guide: Transform copy
It works on bones and on vertices, as long as you select the same amount of items while in world or local axis.
Another suggestion to speed up your work is this:
You can select the first bone of a long chain of duplicates, then right-click its visibility dot in the tree. This will hide the bone and all of its children, as well as turn off the children slots. To reverse it, simply right-click that bone again!
Don't forget you can use selection groups to quickly retrieve up to 10 stored selections:
Tools - Spine User Guide: Selection groups
And you can navigate your previous selections using PagUp
and PagDown
.
Supposedly, if you can hide quickly entire chains of bones, you shouldn't need to set them aside, therefore also not need to put them back in place, bt let me know if there's anything else you have a problem with that we may already have a solution for!
Thanks for taking the time Erika!
You got everything in the summary except one of the most important parts:
- you need to deactivate slot and attachment visibility
- The correction is: I need to be able to differentiate whether I'm selecting the slot or attachment at a glance.
Hiding bones doesn't solve a problem at all. If anything, it only makes things worse as the work gets more involved. The wrong bone sets that are similar to each other get hidden so the wrong set gets worked on. The issues are rooted in the lack of clarity between toggling slot visibility (which cannot be keyed and affects default visibility) and attachment visibility (which can be keyed, but cannot be chain selected via shortcut or chain selection).
Often, it's necessary to use the filter set to just slots and bones without attachments because I actually just want things to be not visible for comparison rather than not visible as a keyed function. Additionally, selecting all children of a bone doesn't select the attachment, which is what I need to select more often than a slot in order to swap assets on frames.
So until slot and attachment selection becomes more clear and available, I have to use the move and replace method of animating complex characters. Keep in mind too, I'm working on characters with upwards of 100+ slots. At that point, shortcut keys and selecting the proper assets in a bone chain predictably become critical.
Another suggestion to speed up your work is this:
You can select the first bone of a long chain of duplicates, then right-click its visibility dot in the tree. This will hide the bone and all of its children, as well as turn off the children slots. To reverse it, simply right-click that bone again!
This would solve my current problem if it also toggled visibility on the nested attachments (not only slots) and keyed them. Currently it's more of a trap as there's only the illusion that it's keyed
until I go back over other animation sets to find a ton of blinking asset chains which take hours to track down and select individual attachments, set their beginning and end keys in 10+ animations as well as fix the spots that were keyed in error because it was just toggling a slot.
Spine already has a way of copying transforms:
Tools - Spine User Guide: Transform copy
Thank you, however this is also not so good because it's about as many extra steps as my current method of selecting the bone, setting scale to 1, transforms to 0,0 to place the parented object where I need it.
It'd be a huge help to be able to be able to select the top parented bone I need to move, press a shortcut button, and select where I want it to jump without needing to override what's in the clipboard to do it.
Just a thought regarding the slot/attachment selection clarity - Toonboom uses an alpha over assets when selecting them and depending on whether you're altering the 'drawing'(attachment) or the 'Peg'(slot), the bounding box is a different color. Purple for attachment, Green for peg. An indication like that might be an easy enough way to add clarity
stikkanimate wroteI need to be able to differentiate whether I'm selecting the slot or attachment at a glance.
If you select an image in the viewport, you will always select the attachment, unless you have a filter on attachments active in the tree, in which case slots will automatically be selected instead.
If you want to quickly verify if a slot is accidentally inactive instead of the attachments inside, you can either open the preview view, which will show a different result with always all slots active; or you can filter the tree on slots and check if there are inactive slots that should be reactivated.
If you need to select all attachments you can either select them in the viewport or filter the tree on attachments.
stikkanimate wroteselecting the bone, setting scale to 1, transforms to 0,0 to place the parented object where I need it.
I was thinking that maybe you could let Spine do some math for you if you decide to use a set number:
Tools - Spine User Guide: Numeric entry
Basically if you type a +
followed by the number you want to shift your asset by, Spine will add that number to the asset position calculating a new translation position. To reverse it you just type +-
followed by that number again. It's not a button, but it's reasonably quick.
For example you can get a bone plus children out of the way by typing +1000
in the trnaslation numeric entry, do your animation, then put it back using +-1000
(or deleting the extra key if you did this in Animate mode.
By the way we recently added several shortcuts that you can customize to add your own keys in the hotkeys file:
Settings - Spine User Guide: Hotkeys
I think they may also be a huge help for your case!
Select - Bones:
Select - Child Bones:
Select - Descendant Bones:
Select - Slots:
Select - Draw Order:
Also note you can press ctrl+H
to show all hidden bones and slots. I use this when I open someone's project which has a lot of things hidden (which can be confusing!).
Thanks for all the info and sorry to bother you both with this request! I found a good enough workaround with the select Parent and Child shortcut. I was using select Child/Parent Bone, rather than adding Parent/Child into the mix. I'll get it into muscle memory to just use those shortcuts to select the attachment and hit parent once to ensure slot selection.
Though just a side-note if you ever decide it's quick and good enough of an idea, the Select - Slots doesn't select the slot housing an attachment when the attachment is selected. That would be a nice function to have working, but it's not critical by any means.
Thanks again for your time and for adding those shortcuts: Select descendants, slots, and draw order are indispensable to my process now!
Glad you found a good workflow?
If I select an attachment, then do Select - Slots
, the slot is selected. Can you provide step-by-step instructions on how to see the problem?
My bad Nate. Spine just needed to be closed and reopened. All's good now