martedì 28 ottobre 2014

dynamic skins in MAYA

dynamic skin in MAYA

SOUP dynamic skin destruction in MAYA from Federico Cascinelli on Vimeo.

Dynamic skins has been a personal challenge for a long time and this tutorial represent the final result of my studies based on both on Maya and Houdini experience.
I found a couple of different ways to simulate dynamic skins and what I present here is the one I think it's easier to apply in any circumstance.

The accidental meet with Peter Shipkov's SOUP plug-in for Maya (thanks to an ex-collegue Maurizio Giglioli) changed my way to approach Maya in general giving a more Houdini like workflow in a familiar environment, at least to me. The research did in Houdini also allowed me to have a different point of view of all the nodes connections.

Trying to cut as much as possible of what it should be a very long tutorial, if started from scratch, it came out as an advanced technical lecture so that you should already have a good knowledge of Maya, hypershde and/or node editor, connection editor and, of course, SOUP.

Here enclose at the bottom you find a Maya scene file with a very simple example so that you might be able to better understand the nodes connections. in any case feel free to contact me if something doesn't have sense or does not work.

used nodes:

. SOUP attributeTransfer
. SOUP point
. Maya arrayMapper
. Maya nComponents (look for it in the cloth network)

how I did it:

1. create a polygonal cylinder
2. make a copy and break it (both using Maya procedure SplitVertex or Soup's shatter or any other way you like)
3. make the broken cylinder a cloth object
4. constraint the original cylinder and the cloth one with nConstraint component to component.
5. skin the original cylinder.

in the hypershade or the node editor:

6. load the cloth network and add the extra nodes
7. set up the SOUP nodes to pass weights
8. attach a B&W 2d ramp to the arrayMapper
9. Connect the SOUP point passing the outWeightPP to vCoordPP of the arrayMapper
10. connect the arrayMapper to the nComponents (note that the nConstraint has created two nComponents... you have to use the cloth one) passing the outValuePP to nComponent glueStrengthPerVertex - weightPerVertex - strengthPerVertex (3 connections)
11. create a bounding object for the SOUP attributeTransfer node

in the attribute editor:

11. set up the nComponent node by setting the glue strength, weight and strength  to "per vertex"
12. set the bounding object weight value to constant 1
13. set the dynamicConstraint glue value less then one (0.99 would be fine)

all should be fine by now!

few notes… 
. be sure to set up all the nodes correctly!!!
. try to leave the glue value to 1… fun effect!!!
. combinations are almost infinite… try using more then one bounding object… or play with glue, force and strength values… have fun!!!
. connecting the dynamic skin chain to the cloth object after the nClothShape you will use the actual skin as object to apply the effect to… if you link the cloth before it you will use the original object as reference… this is a very important step to understand and linking one or the other is the same just depend on the kind of effect you want to achieve
. I'm working on an old mac air 11… so all the self collisions and other setting that require good memory are disabled 
. you can change the cloth geo by simply connecting the new geo to the cloth shape node and the attribute transfer node.

. not sure is a bug… but to me, every time I reopen the file I have to reset the bounding object weight!! You should do it also on the file attached.

that's all folks!!!

I hope this might be useful and understandable... feel free to contact me...


Nessun commento: