pyblish / pyblish-magenta

Magenta kit for Pyblish
GNU Lesser General Public License v3.0
10 stars 9 forks source link

Concatenate pointcache hierarchies #38

Open mottosso opened 9 years ago

mottosso commented 9 years ago

The output of a rig is quite large, with a lot of empty parents.

image

One option is making the root of the hierarchy the same as what is coming in from modeling. In this case ben01_:ben_GRP.

That way, hierarchies are preserved and rigging can't accidentally add or remove anything. The downside is that sometimes rigging does need additional output, like collision meshes or guide locators for, say, tracking in After Effects.

An alternative is making output_GRP the root. This way, the original modeling hierarchy can be preserved, an artist has control over what is ultimately outputted without a giant parent hierarchy.

BigRoy commented 8 years ago

I think it would be possible to do an alembic cache where you define the root nodes and as such it would skip its parent hierarchy. I do think it's important then to enable the worldSpace setting so that if any of the parent groups were moved that movement is preserved.

In that scenario I would also recommend not taking the "output_GRP" but the "ben_GRP" underneath. Purely because otherwise what's imported will be named "outputGRP" and might be confusing. At the same time if namespaces are there of the item (e.g. `ben01:`) then it shouldn't be too much of a problem.

I'm only in doubt whether the taking the closest root node should become the default behavior for the extractor or pointcache family, since it really alters how it behaves.

That would also mean it's up to the artist to define the "top" group they want to extract with their children as opposed to the "shapes" they want to collect including its parent hierarchy. So what you put in the objectSet for Magenta to recognize would be somewhat altered.

@mottosso what do you think?

mottosso commented 8 years ago

I would include the contents of output_GRP (that is, not the group itself), which I'd expect to be just meshes. If there's a group in there, so be it, it'd be up to the artist/td to decide whether it belongs or not.

BigRoy commented 8 years ago

Sure. What about defaut behavior?

mottosso commented 8 years ago

I would expect a family of pointcache to only apply to instances containing a directory called output_GRP and only pointcache the contents, regardless of what it is.