Lesson 10 Skinning

Posted on Posted in AutoDesk Maya, Foundation 2008, Tutorials

Parent Binding

The simplest type of binding is to parent geometry to joints. Parenting geometry to joints is very fast and needs no tweaking, but requires the pieces of a model to be separate. Ex: An arm would be split into an upper part and lower part. There are scenarios where this is appropriate for example a ring on a finger or the eyes of a character.

  1. Create a Simple Scene
    • – Open a new scene and change to the top view.
    • – Draw three joints defining an arm.
    • – Change to perspective view
    • – Create two polygonal cylinders and place them over the joints. see img.
  2. Parent the Geometry
    • – Select the left cylinder, then SHFT + SELECT the left joint.
    • – Parent the objects: Press “p”
    • – Repeat the process by parenting the right cylinder to the right joint
    • Note: The geometry is now a child of the joints
  3. Test the Joint Rotations
    • – Select the bones and rotate them to see the results.
    • Note: Selecting bones have a higher selection than geometry. This is true if the joints are not parented to the geometry otherwise both will be selected.

Rigid Binding

Rigid Binding works like parent binding except it affects the geometry.  Rigid binding works, by the vertices closer to a certain joint, will be more inclined o follow that joint.

  1. Create a Simple Scene
    • – Change to the top view
    • – Draw three joints defining an arm.
    • – Select the first joint and duplicate and move them side by side.
    • – Switch to perspective view.
    • – Create a polygonal cylinder and a NURBs cylinder
    • – Place each cylinder so it entirely covers each joint chain.
    • – Set the polygonal cylinder’s Subdivision Height: 10
    • – Set the NURBs cylinder’s Span:10
  2. Rigid Bind
    • – Select the first joint chain, then SHFT + SELECT the polygonal cylinder.
    • – Apply Rigid Bind. ANIMATION || Skin > Bind Skin > Rigid Bind.
    • – Select the second joint chain, then SHFT+SELECT the NURBs Cylinder.
    • – Apply Rigid Bind. ANIMATION || Skin > Bind Skin > Rigid Bind.
  3. Test the Joint’s Rotations
    • – Select the joints for each and compare the joint’s rotations.
    • Note: The polygonal cylinder folds in on itself while the NURBs cylinder looks much smoother.
    • Also Note: The geometry is not parented in the outliner
    • Below img: polygon on the lft. NURBs on the rt.
  4. Edit Membership Tool
    • Change the rigid binding defaults so certain points follow a joint. The Edit Membership Tool allows you to specify the points on a geometry that are affected by the joint.
    • – Select ANIMATION || Edit Deformers > Edit > Membership Tool
    • – Click on the middle joint of the polygonal cylinder.
    • Note: you will see all the highlighted vertices affected by the joint.
    • – Remove points: CTRL + CLICK DRAG MARQUEE OVER POINTS
    • – Add Points: SHFT + CLICK DRAG MARQUEE OVER POINTS

Flexors

Flexor is a type of deformer used with rigid bound surfaces. A flexor can smooth out the binding region between the bones, preventing the geometry from cracking. Flexor points can be keyed to modify their positions as bones rotate. Ex: you can modify an elbow shape when an elbow bends.

  1. Create a Flexor
    • – Reset the previous bones to their default positions.
    • – Select the middle joint for the first joint chain.
    • ANIMATION || Skin > Edit Rigid Skin > Create Flexor
    • (Option window pops up)

      • Create Flexor Options
      • Flexor Type: Lattice
      • Position the Flexor: On
      • – Click [CREATE]
      • (The flexor is created at the joint’s position and is selected so you can position it correctly.)

      – Translate and scale the flexor to cover the bending region

  2. Test the Joint Rotations
    • – Select the middle bone and rotate it to see the result of the flexor on the geometry.
    • (Notice: the bending area is much smoother)
    • Hide a flexor: STAGE || Show > Deformers
  3. Set Driven Keys
    • – Zero the rotation of the bones.
    • – Select ANIMATION || Set Driven Key >Set
    • Notice: A window with two section appears.
    • – Select the middle joint. This joint will be the driver. The driver modifies whatever it is connected to. In this case it would be called the driven.
    • In the Driver section, while the joint is still selected, load the middle joint by clicking on load driver. This assigns the middle joint as the driver. Next, highlight/select the Rotate Y attribute on the right.
    • Note:This says when the middle joint’s RotateY-axis is modified, also modify the driven objects. MAKE SURE YOU HAVE THE RIGHT ATTRIBUTE HIGHLIGHTED FOR YOUR DRIVER TO MODIFY THEN DRIVEN.
    • – Assign the driven objects to be affected by the middle joints Y-rotation. Select the flexor and press F8 to go into component mode.
    • – Select ALL the flexor’s lattice points and click [LOAD DRIVEN] in the Set Driven Window.
    • – Highlight all the driven attributes in the Driven section.
    • – Click [KEY] button to set normal position
    • – Return to Object mode. Rotate the middle joint on the Y-axis by about 80 degrees
    • – Select the flexor and press F8 to go back to component mode.
    • – Move the flexor point to make a nice elbow shape on the cylinder.
    • – Select all the points on for the lattice.
    • – Click [KEY] to set the bent position.
    • (Note: The points may not move exactly as expected since they are using local space of the middle bone)
  4. Test Joint Rotations
    • – Select the middle bone and rotate it.
    • Notice you can achieve a much better crease by using a driven flexor.

Lattice Binding

Lattice binding is another option to achieve nice skinning. Lattice binding can create a very smooth binding using the simplicity of rigid binding.

  1. Detach the Skin
    • – Select the polygon cylinder from the previous exercise.
    • ANIMATION || Skin > Detach Skin
    • Notice: If your joint was bent, the geometry will snap back to a straight cylinder once you detach the skin from the joint.
    • – Select the middle joint and zero it’s rotation back to default.
    • – Delete a flexor. Select the flexor and press delete.
  2. Create a Lattice
    • – Select the polygonal cylinder.
    • – Create a Lattice: ANIMATION || Create Deformers > Lattice.
    • Note: A lattice is created and fits the geometry perfectly, so it may appear as if nothing is present.
    • With the lattice selected, display your Channel Box. Change he value of he T Divisions to 9. CHANNEL BOX || Shapes > T Divisions: 9.
  3. Rigid Bind the Lattice
    • – With the lattice still selected, SHFT + SELECT the first bone in the joint chain.
    • – Rigid Bind the selection: ANIMATION || Skin > Bind Skin > Rigid Bind.
  4. Test Joint Rotations
    • – Select the middle bone and rotate to see the effects of the lattice on the geometry.
    • Note: Right now it is not much different than a normal rigid bind.
  5. Adjust the Lattice
    • – Select the lattice object.
    • – In the Outputs section of the Channel Box, highlight the ffd1node.
        • ffd1 Node Options:
        • – Local Influences S: 4;
        • – Local Influences T: 4;
        • – Local Influences U: 4;

       

      • The deformation should be much smoother.
      • before
      • after
  6. Edit The Membership
    • It is now much easier to adjust the membership of the lattice points rather than adjusting the vertices of the geometry.
  7. Driven Lattice
    • If the Edit Membership Tool doesn’t provide enough control over the deformation of a geometry, you can use driven keys to achieve a much better deformation. See Flexors.

Smooth Binding

Most advanced type of skinning is smooth binding. Smooth binding allows a geometry’s vertex or CV to be affected by multiple bones according to a percentage.

MY NOTES:

  1. Set-up the Scene
    • – Switch to top view.
    • – Create a joint with three points to resemble an arm.
    • – Create a polygon cylinder.
    • – Position the elements so the joint resides inside the polygon.
    • – Select the joint’s first point and SHFT+SELECT the polygon.
    • ANIMATION || Skin > Bind Skin > Smooth Bind.
    • – Rotate the second joint’s Y-axis 90.
    • – Select the polygon and apply Paint Weights tool. ANIMATION || Skin > Edit Smooth Skin Bind > Paint Skin Weights Tool > □.
    • – My Settings: Mostly default.
    •  Hopefully, this solves the problem. You should see this.

UPDATE:

  1. Restarting Maya and recreating a polygon with a joint. Seemed to have fixed it.  IMPORTANT: If you delete all by type > history,  This will disable paint weights tool. Also, NURBs seem to have a better tolerance to the paint weights tool.

 

Book’s Notes:

  1. Set-up the Scene
    • – Switch to top view.
    • – Create a joint with three points to resemble an arm.
    • – Create a polygon cylinder.
    • – Position the elements so the joint resides inside the polygon.
  2. Smooth Bind
    • – Select the joint’s first point and SHFT+SELECT the polygon.
    • ANIMATION || Skin > Bind Skin > Smooth Bind.
  3. Test Joint Rotations
    • – Select the middle joint and rotate to see it’s influence.
    • – Rotate the joint to y-axis 90 degrees
  4. Edit Smooth Bind Influence
    • – Select the polygon
    • STAGE || Shading > Smooth Shade All
    • – Bring up the Paint Weights Tool. ANIMATION || Skin > Edit Smooth Skin > Paint Skin Weight’s Tool > .
    • The polygon should look like the below:

 

Binding the Penguin

Since the penguin is composed of deformable objects, you will bind it’s geometry using Smooth Binding. You will also bind the eyes and claws.

  1. Open The Last Scene
    • – Open a scene with just the penguin geometry and the skeleton chain.
    • – Save file as Skinning.
  2. Set Preferred Angle
    • When binding geometry to a skeleton, you need to test the rotations. By doing so you should be able to return the skeleton to it’s default position quickly. MAYA has two commands called Set Preferred Angle and Assume Preferred Angle. These commands allow you to set the default skeleton pose then return to that pose whenever you want.
    • Note: The preferred Angle also defines the bending angle for IK handles.
    • – Select the pelvis joint.
    • – RMB over the pelvis joint > (window pop)
    • – Select Set Preferred Angle.
    • NOTE: These Commands are also available in the Skeleton Menu.
  3. Assume Preferred Angle
    • – Rotate several joints.
    • – Select the pelvis joint
    • – (on the stage) RMB over the pelvis > (window pop)
    • – Select Assume Preferred Angle
    • Notice: The skeleton returns to it’s preferred angle.
  4. Bind The Body
    • – Select the Smooth Bind Options window. ANIMATION || Skin > Bind Skin > Smooth Bind > .
      • Smooth Bind Options
      • Bind To: Selected Joints;
      • Note: It is recommended that you select the joints to which you want to bind the geometry, in order to prevent unwanted influence from other bones.
      • – Select all the following joints below using SHFT + CLICK
        • NOTE: I noticed I was missing a joint for the second eye. So I added a joint using : ANIMATION || Skeleton > Insert Joint Tool.
        • pelvis, spine, spine1, neck, neck1, head, jaw, tail, lClavicle, lShoulder, lElbow, lWrist, rClavicle, rClavicle, rShoulder, rElbow, rWrist, lHip, lKnee, lAnkle, lToes, rHip, rKee, rAnkle, rToes.
      • – SHFT + SELECT the body geometry.
      • – Click  [BIND SKIN]
      • Notice: Skeleton chain changed to a multiple colored joint chain. See below.
    • – Rotate the pelvis joint to see if it’s attached.
  5. Smooth Bind the  Eyeballs
    • – Select the lEyeball geometry.
    • – SHFT + SELECT the lEye joint.
    • ANIMATION || Skin > Bind Skin > Smooth Bind.
    • – Repeat to the other eye.
    • – Rotate the eye joints to see if they follow.
  6. Rigid Bind the Eye Lids
    • – Select the lEyelid and rEyelid geometry.
    • – SHFT + SELECT the head joint.
    • – Rigid Bind the eyelids to the head joint: ANIMATION || Skin > Bind Skin > Rigid Bind > .
      • Rigid Bind Options:
      • Bind To: Selected Joints
      • – Click [BIND SKIN]
    • – Rotate the head joints to see if the eyeLids follow.
    • – Repeat this step with the hair geometry.
  7. Make Sure Everything is Bound
    • – Select the pelvis  joint and rotate it. You will notice if geometry is let behind.
    • – Pose the character and keep note of any problematic areas.
    • Note: Do not translate any joints except the pelvis. Assume Preferred angle only keeps rotation values.
  8. Reset The Skeleton Position
    – Undo to bring the skeleton back to it’s original position.
    – Or… Select the pelvis joint, then ANIMATION || Skeleton > Assume Preferred Angle.
  9. Save
    • – 030512_10-skinning_02.ma
  10. Paint Skin Weights Tool
    • Once the geometry is bound to the skeleton, you’ll need to refine the weighting so every joint bends the geometry as expected. Use the Paint Weights Skin Tool. This tool works like a paint brush. You paint white to symbolize the geometry being fully influenced by the joint and black not being influenced at all.

 

Joint Degrees Of Freedom and Limits

Your character is unable to achieve every possible. Similar to a human body, a joint has restrictions on being able to rotate or limits to how far a joint can rotate. You can control how far a joint can rotate.

  1. Degrees of Freedom
    • By default all three joints are free to rotate. If you can you can limit the degrees of freedom on a joint. In this case of your model we can’t have your elbows and knees bending in all three directions.
    • – Select the lElbow joint.
    • Note: Which axis should be allowed to bend?
    • – In the case of your penguin’s elbow it should rotate on the Y-axis.
    • ( Note:The Rotate Tool must be in Local Mode.)
    • – Open the Attribute Editorand scroll down to the joint section.

      • CHANNEL BOX || Joint > Degrees of Freedom Options:
      • Degrees of Freedom: Turn off X and Z.
      • (Notice: In the Channel Box, X and Y rotation are locked.)
  2. Joint Limits
    • A joint limit allows you to set i min and max value for a joints to rotate. In the elbows case. we need to stop rotation when the arm is extended and when it is fully bent.
    • – Select the lElbow joint.
    • – Rotate the joint to bend it on the Y-axis and stop right before the geometry penetrates the upper arm.
    • ATTRIBUTE EDITOR || Limit Information (tab)
      • – Rotate: Turn on Rot Limit Y Min; Check the box.
      • – Click on the < to set the Rot Limit Y Min
      • – Rotate the joint to extend the arm on the Y-axis and stop when the arm is straight.
      • – Rotate: Turn on Rot Limit Y Max; Check the box.
      • – Click on the > to set the Rot Limit Y Max
  3. Remainder of Skeleton Limits
    • – Set the freedom and limitations for the rest of the skeleton.
  4. Save Your Work
    • Books File: 10-bigzSkinning_03.ma
    • myFile: 030612_10-skinning_03.ma