Now Open up the outliner… right Click somewhere in the right and turn off show DAG objects (این متنیه که چند روز پیش در مورد بلند کردن کاراکتر سر گفته بودم .اگه بتونید این متون رو ترجمه کنید و به فارسی بنویسید!)
only and make sure that show Shapes is checked
create a poly cube and name it "torso_high"…
This next part it a bit of MEL… (oh quit whining… its good for you ☺)
Type the following into the Command Line (the white box under the time slider… also as a note
MEL is case sensitive, so watch your caps..)
createNode polySmoothFace -n “torsoSmoother”
after you have that typed in press enter… the command will be executed and a smooth node will
be created… (feel proud yet?)
In the outliner your newly created smooth node entitled “torsoSmoother” will be at the bottom of
the list…
Ok here is what happened…. scripting languages are languages that are basically a bunch of
commands that can usually be used at the command line one at a time… this allows for a bunchof commands to be executed in a row just by running the script… Granted the scripting languages
allow for runtime decisions to be made and to add logic to commands also but for this example the
script is simple. This little bit of MEL works like this:
the “createNode” part is a command… this command takes certain options called arguments… if
you look in Maya’s Docs you can find all of the argument options for every MEL command that
exists… The options used here are the node type and the new node name…
createNode is run and it is given the node type which is in this case the “polySmoothFace” node..
the “-n” says name the node what is in quotes after the ‘-n’… so the resulting node in this case
will be called “torsoSmoother”
Congrats you have just made a new node ☺
This new node needs some data to be fed into it so it can smooth it and pass the data back out
through its outputs….
Open the connection editor…
Open the outliner…
In the outliner find "torso_low"…
hit the plus next to it and select the “torso_lowShape”…
In the connection editor press reload left…
Now the shape node for the "torso_low" object is loaded…
Now in the outliner find the "torsoSmoother" node…
Press reload right…
In the left pane select “outMesh” and in the right pane select “inputPolyMesh”…
(if you don’t see these attributes make sure that “show hidden” is checked in the "rightSideFilters"
menu of the connection editor… and also make sure that you have the shape node selected for
the torso and not the whole torso object…now load the "torsoSmoother" into the left pane and the "torso_highShape" into the right pane..
select “Output” in the left pane and “In Mesh” in the right pane….
this takes the output geometry from the smoothNode and pipes it into the mesh of the duplicate…
Now all we have to do is tell the smooth node which component to smooth…
In the command line type the following:
setAttr torsoSmoother.inputComponents -type componentList 1 "f[*]"
this sets the "inputComponents" attribute of the smooth node to faces and says to smooth all (the*)
of the faces…
now you should have a high and low version sitting on top of each other… put the high poly
version on the "torso_High" layer…
Do the same for the other parts of the character except for the head… Actually you may want
to hold off on doing the rest of the body, because you may like the way the head is done and
use that method for the entire character… (see previous “note”)
NOTE: As a note there is a method for fixing geometry when the joints bend by using blend shapes driven by joint rotation on the geometry… so for an elbow a blend shape can be
used to pull the parts of the arm out that collapse from the weighting… simply drive the
blend shape slider with the rotation of the elbow joint… (use driven keys)… if you are
going to use this method instead of influence objects then read the section about the head
before doing the rest of the character….
Pretty sweet huh? Now whatever you do to the lowPoly version will happen to the highPoly
version… so that means that whatever happens to the vertices on the lowRes version will
move the vertices on the highRes version. So what we are going to do is bind the lowRes
version to the skeleton. This will allow a very quick response when animating and will
severely cut down on the number of vertices that need to be weighted…
Next we are going to do the same thing for the head… but we are going to do a slightly modified
version of what we did for the body…However the principal is still exactly the same…
The difference is that we want to be able to add blend shape targets (morph targets) to the head
at any time during production and also do the UV unwrapping at any time during production…
If you have ever tried to add a blend shape to a piece of geometry after it has been bound you will
find that Maya will not be able to do it… It complains that a blend shape node cannot be found…
this is because that the blendNode is below the smoothBind nodes in the history… therefore the
target cannot be added because Maya can’t find the node to add the target to…
Sooooooo…. what this means is that we are going to need 3 different heads…
1 head to add the blend shapes to… 1 head to bind to the Skeleton and 1 head to be the final
high poly version…
Basically what this means is that we do the process twice… however the link from the
blend shape head to the lowRes head will not have a polySmoothFace node between them…
Ok enough blabber (seriously though… it is good to really understand what you are doing… so
when you run into problems you can fix them… or come up with your own methods) lets
do it!
NOTE:A quick note about making morph targets… always make a blank one… that is an
exact untouched copy of the original head… and just sit it up by the rest of the targets…
This blank head is good if something bad happens to your blendHead and it shifts on you
or other bad things happen… just trust me.. it will come in handy later.. ☺
Ok.. Make a duplicate of the "head_low" object… move it to the left, off of the original head and
add it to the same layer that your morph targets are on… (you do have them on a separate layer
don’t you?)
Name this head “blend_head”… This is going to be used as the head that has the blendShape node
on it… It is going to drive the “low_head” object…
The “blend_head” will also be the object that you would want to do your UV unwrapping on.
Now select the "head_low" object again and one more duplicate it… this time don’t move the
duplicate at all… Name this new head “high_head”. This is going to be the final head or the
result of all of the deformations (blending and binding)….I moved the head just to show you the three heads… remember the only head you are going to
move is the blend head… leave the head that is going to be the highPoly Head where it is…
Now open the outliner and the connection editor…
In the outliner make sure that “show DAG objects only” is not checked and that
“Show Shapes” is checked…
Now find the “blendHead” object and click the plus next to it.. this will
allow you to select the “blendHeadShape” node…
Select it and press Reload left in the connection editor…
Now find the “head_low” object and press the plus sign and select the
“head_lowShape” and press Reload Right in the connection editor…
In the left side find “Out Mesh”… there will be a lot of things to look through…
mine usually end up being between the long lists of stuff Like edges and vertices…Once you find it select it…
In the right side of the connection editor find “In Mesh” and select that…
Remember if you can’t see them… make sure that “Show Hidden” is checked in the
Left and Right side menus…
Now the two meshes are connected.. whatever happens the vertices of the
"blendHead" will now change the vertices of the "low_head"
Now we need to drive the “high_head” with the “low_head”.
This part works just like the body does.
First make a new smooth node:
createNode polySmoothFace -n “headSmoother”
Open the connection editor…
Open the outliner…
In the outliner find "low_head"…
hit the plus next to it and select the “low_headShape”…
In the connection editor press reload left…
Now the shape node for the "low_head" object is loaded…
Now in the outliner find the "headSmoother" node…
Press reload right…In the left pane select “outMesh” and in the right pane select “inputPolyMesh”…
(if you don’t see these attributes make sure that “show hidden” is checked in the "rightSideFilters"
menu of the connection editor… and also make sure that you have the shape node selected for
the torso and not the whole torso object…
now load the "headSmoother" into the left pane and the "high_headShape" into the right pane..
select “Output” in the left pane and “In Mesh” in the right pane….
this takes the output geometry from the smoothNode and pipes it into the mesh of the duplicate…
Now all we have to do is tell the smooth node which component to smooth…
In the command line type the following:
setAttr headSmoother.inputComponents -type componentList 1 "f[*]"
Cool… so lets try what we have been working towards…
Make some morph targets if you haven’t already (duplicate the “blank_head” to
make them)
Now select a morphTarget and shift select the “blend_head” and
Deform -> Create BlendShape
Cool.. now test out the blending… turn on the “high_head” layer and turn off the
“low_head” layer… Now move the blendShape sliders around… the high head
should deform properly… If not, undo then blendShape deform and retrace your
steps… good luck!Ok.. now you know the two methods that I use the most… so why don’t you plan
out what you want to do and then decide which method is right for your
character, and finish up making the highPoly versions of the model…