Studio: wrap in new subsymbol

Hey,

Sometimes I’ve built some functionality within a symbol and later decide it would be better to have it as a separate subsymbol. It would be awesome if I could take a hierarchy selection and ‘export’ it into a new subsymbol via the right-click menu. I guess it could work exactly like the wrap in group feature except it would define a new subsymbol containing the selection, remove the currently selected nodes and replace them with an instance of the new subsymbol.

As far as I know, to do this now I would have to export the symbol containing my selection, import it back in and delete everything else inside it. If I’m wrong and there is already an easier way, please let me know! :upside_down_face:

1 Like

Hi,

I love all your feature suggestions. They’re great power-user thoughts, and many of them are already things on our internal ticketing system.

“Wrap in Subsymbol” is a thought we’d had internally but there’s quite a lot of complexity involved in doing it well - for example if one of the child nodes has a property animated in a timeline, you’d need to move that timeline into the subsymbol, reference it out, and animate it through the reference in the parent symbol. As different properties might be overridden in different timelines, you’d have to effectively clone all of the controllers that reference properties under the group you’re wrapping into the subsymbol. Not impossible, but a chunk of work, and making it undoable is also challenging.

Right now internally we use the method you mention of importing the whole symbol as a subsymbol and removing anything unneeded from it.

Perhaps “Export as Subsymbol” on a group is reasonable half-way house here - it wouldn’t change the scene at all, but would effectively make a zpp that strips out anything not referenced by that group and it’s children.

There’s actually way more complexity than I just mentioned though - it’s not just about the hierarchy nodes and controllers, but also other references, such as media files. One of the nodes might also be set relativeTo a node from elsewhere in the hierarchy, not in the group being wrapped. All in all it seems like it could get pretty complicated… :scream:

Hey Simon,

Thanks for replying! You’re totally right that this feature probably requires way more deep changes than it first seems like… Perhaps it’s doable sometime in the future! :sweat_smile:

What you described there as a half-way house would already be lovely and helpful. The user could manually take care of replacing the group with the new subsymbol and fixing references / linkage problems.