home

[ ComponentsConstructionHistory 1.0 ]

This tool provides a simple UI for managing of groupParts nodes. Using these nodes you can store groups of components ( sets of vertices, faces, edges, CV's, etc. ) as construction history elements. These elements can feed data to modifiers, deformers and in fact everything that accepts geometry/components structures as input.
Dont worry, there is nothing extraordinary here. This is a 100% common graph functionality, but is not covered by the default UI.

Still unclear ?
Let me give you an example for what i'm talking you about:
Select couple of polyFaces, extrude them. If you want to go back and to change the polyFaces set being extruded - you cant, i mean - you can, but it requires custom work in the hypergraph editor and some scripting in addition. ... The same for all geometry modifiers. This often forces you to delete, create, connect, tweak nodes ... again and again. Not productive, not good.

Clear now ? ... Good.
Using groupParts nodes to deal with components across the construction history, you can proceduralize your geometry generation and modification workflow. This brings mutch better controll over the input-output geometry data flow, with ability to override it at any step.

At last, but not least, you can easily avoid the nasty bug when completelly empty-up a deformerSet - in this case Maya runs optimization procedures and deletes bunch of stuff from the graph without any reason. As result, the deformers are not working anymore. "Beautiful".
You can easily avoid that mess, if you directly edit the inputComponents in the upstream located groupParts nodes.

I think most people coming from other 3D applications to Maya can easily recognise this groupParts functionality. It is the same as Houdini's group SOPs, XSI's clusters and 3DS MAX's stack selection modifiers.

Ok, enough theory. Watch this screen captured video - i am having some fun time with that stuff: [ CCH.MOV ]

And let's see how it works.

[ TOP ]

[ UI ]
 


  UI consists of a simple dialog box containing next elements:
button "Insert groupParts node" - insert new groupParts node at the pointed by you place in the graph.
"groupParts node" - serve to point to a groupParts node you want to deal with.
"Select" - select all the components stored in a groupParts node ( to where points the "groupParts node" text field ).
"Replace" - replace the contents of a groupParts node with selected components in the scene.
"Add" - add to the contents of a groupParts node selected components in the scene.
"Remove" - remove stored components in a groupParts node which match selected components in the scene.
 
[ TOP ]

[ WORKFLOW ]
 
Start with a simple polySphere.
You can deletete the history, to keep the things clear for this first test.
 
Select couple of faces.
 
Extrude them.
 
NOTE: this script supports only the default hypergraph editor. You will need to tweak the code to make it work with your custom hypergraph editors. I'm lazy, sorry.
So, open hypergraph window, and let Maya show you all the auxillary nodes ( hypergraph window -> Show -> Auxillary Nodes ). Then expand the input and output connections. The graph network should look like this:
 
Now select the connection between polySurfaceShape1 ( intermediate object ) and polyExtrudeFace1. NOTE: Does not matter what kind of nodes you are dealing with, you are always going after connections between attributes transferring geometry data - outMesh, inMesh, inputPolymesh, worldMesh, worldSpace, etc.
 

In the componentsConstructionHistory UI press the "Insert groupParts node" button. You should get something like the picture below. You will notice that the extrusion dissapeared. This is becase the first time you create a groupParts node it is empty. You need to reselect again your faces ( or before inserting a groupParts node, to store them in a set or variable, to can easily invoke them later ) and to press the "Replace" or "Add" buttons. Extrusion appears again. From that point you can always go back and without any problem change the inputComponents list of the polyExtrudeFace1 node.
NOTE: You can of course, deal and with already exising groupParts nodes created by the default Maya tools.

 

Select any faces on the polySphere1 surface and press "Replace" or "Add" buttons.

 
[ TOP ]

[ DOWNLOAD ]