Friday, February 6, 2015

IK/FK setup tutorials

Overview of the process - https://vimeo.com/86868121

Creating duplicate arm chains for the IK and FK controls - https://vimeo.com/86868124

Setting up orient constrains on the real arm - https://vimeo.com/86868126

Using set driven key to blend contsraint weights - https://vimeo.com/86868127

Constraining the new joints and controls to the real skeleton - https://vimeo.com/86868128

Friday, January 30, 2015

circle control script

Circle control script

This script creates a series of circle controls and circle control groups for every joint selected.

Notes:
  1. All joints MUST be named with a "JT_" prefix, as we have been doing in class.
  2. Joints must be selected starting in a parent-child descending order; in other words, select the top-most parent joint first, then the next child joint, then the next child joint, etc
  3. The selection set for the spinal column would in the following order:
    1. JT_spine_lumbar
    2. JT_spine_thoracic
    3. JT_neck
    4. JT_head
  4. The script will create a control for each joint, and connect the rotation channels of the joint to the control. The control is then grouped by itself. If it is controlling a joint that is the child of another joint in the current selection, it will parent the control's group to the controller of the parent. 
How to use:

Copy the script below the dashed line into the Python tab of your script editor. Select the joints you want to add controls to, making sure to select the joints in a parent-child descending order. In the script editor, choose command > execute.


-------------------------------------------------------------------------------------------------------------------

import maya.cmds as cmds

sl = cmds.ls(sl=1)
count = 0
lastS = None

for s in sl:
    ctrlName = s.replace("JT_", "CTL_")
    ctrl = cmds.circle( nr=(1, 0, 0), r=1, n=ctrlName)[0]
    offset = cmds.group(ctrl, n="GRP_" + ctrl )
    cmds.parentConstraint(s, offset, mo=0)
    cmds.delete(cmds.parentConstraint(s, offset))
    cmds.parentConstraint(ctrl, s, mo=0)
    if count > 0 :
        cmds.parent( offset, lastS )
    count = count + 1
    global lastS
    lastS = ctrl

finger attributes

Go to modify>add attribute

Add all above attributes.

All attributes are:

min: -10
max: 10
default: 0


finger setup videos

Apologies in advance - last video lacks sound, but if you paid attention in class, you should be able to follow along. Will update soon with sound.

https://vimeo.com/93653030

https://vimeo.com/93656646

https://vimeo.com/93653031


finger joint names

JT_fingerIndex_R_1
 JT_fingerIndex_R_2
  JT_fingerIndex_R_3
   JT_fingerIndex_R_end

JT_fingerMiddle_R_1
 JT_fingerMiddle_R_2
  JT_fingerMiddle_R_3
   JT_fingerMiddle_R_end

JT_fingerRing_R_1
 JT_fingerRing_R_2
  JT_fingerRing_R_3
   JT_fingerRing_R_end

JT_fingerPinky_R_1
 JT_fingerPinky_R_2
  JT_fingerPinky_R_3
   JT_fingerPinky_R_end

JT_fingerThumb_R_1
 JT_fingerThumb_R_2
  JT_fingerThumb_R_3
   JT_fingerThumb_R_end

Friday, January 23, 2015

IK foot roll videos

5 part series showing IK and foot roll setup on the legs.

Setting up the IK handles and naming them - https://vimeo.com/86867762

Creating a controller and parenting the IK to it - https://vimeo.com/86867763

Creating groups for the IK handles and foot roll - https://vimeo.com/86867764

Using set driven key for the foot roll - https://vimeo.com/86867765

Setting up the pole vector control for the knee - https://vimeo.com/86867768

Foot roll SDK ref


Friday, January 16, 2015

base mesh download

left click the link below to download (do NOT right click):

rig link

Project 1 – Simple Biped Rig - due week 2

Project 1 – Simple Biped Rig - due week 2 – 15% of final grade

Rig a simple biped character. The rig should include the following (all _R joints and controls should have a _L mirror):

  • Skeleton hierarchy:
    • JT_pelvis (root)
      • JT_leg_R
        • JT_knee_R
          • JT_ankle_R
            • JT_ball_R
              • JT_toe_R
      • JT_spine_lumbar
        • JT_spine_thoracic
          • JT_clav_R
            • JT_arm_R
              • JT_elbow_R
                • JT_wrist_R
          • JT_neck
            • JT_head
  • Smooth bind on mesh

Syllabus

The Art Institute of California – San Francisco

Course Syllabus
Course Number: GA3314
Course Title: 3D Character Rigging
Class Meetings:
Friday 1pm – 5pm Room 401
Session/Year: Spring 2015
Instructor Name: Greg Lemon
Email Address: glemon@edmc.edu
Instructor Availability Outside of Class: email me!

Course Description:
This is a beginner/intermediate grad level course in 3d character rigging. The course will focus on the demonstration and application of industry-standard character rigging techniques.

Course Length: 11 Weeks
Contact Hours: 44 Hours
Lecture:22 Hours
Lab: 22 Hours
Credit Values: 3 Credits

Course Goals: Students should enter the class with a basic understanding of animation concepts and good grasp of basic skills for creative animation design. Students will finish the class with a solid understanding of the various techniques and methodologies used in the field of 3d character rigging.

Course Competencies:
Upon successful completion of this course, the student should be able to:
Understand and incorporate various industry-standard rigging techniques into their own work

Course Prerequisite(s): None

Text(s): Suggested:
Maya Secrets of the Pros, Edition 2.
The Art of 3-D Computer Animation and Effects, Third Edition ; Isaac Victor Kerlow

Materials and Supplies: Storage medium , notebook and sketchbook and drawing materials.

Estimated Homework Hours: 4 Hours

Technology Needed:
Hardware: PC Linux / Windows, (Mac as applicable)
Software: Maya or other 3D software, After Effects, Shake, Renderer (Mental Ray / Renderman Mtor & Slim), Photoshop.

Grading Scale:
All assignments must have clear criteria and objectives to meet. All students shall be treated equitably. It will be that student’s right to know his/her grade at any reasonable point that information is requested by that student. The criteria for determining a student’s grade shall be as follows (on a percentage of total points basis):

CCAD Grading Scale
October 23, 2014

Grades: Calculating, Recording, and Distributing
Effective January 1, 2015. To ensure consistent grade calculations, recording, and distribution across the CCAD campuses, all campuses will follow the grading scale required below and indicate it on the course syllabi. This scale is a system-wide scale as well as being established at Argosy University.

Grade
Grading Scale
Grade Calculations
A
100 – 93
4.0 points
A-
92 – 90
3.7 points
B+
89 – 87
3.4 points
B
86 – 83
3.0 points
B-
82 – 80
2.7 points
C+
79 – 77
2.4 points
C
76 - 73
2.0 points
C-
72 – 70
1.7 points
D+
69 – 65
1.4 points
D
64 – 60
1.0 points
F
59 and below
0.0 points



Process for Evaluation:
Class participation – 10% of final grade
Project 1 – Simple Biped Rig - due week 2 – 15 % of final grade
Project 2 – Intermediate Biped Rig - due week 4 – 20% of final grade
Project 3 – Advanced Biped Rig - due week 7 – 25% of final grade
Project 4– Final Project - due week 11 – 30% of final grade

Student Evaluation/Grading Policies:
Class time will be spent in a productive manner.
Grading will be done on a point system.
Points for individual activities will be announced.
All work must be received by the set deadlines.
Late work receives a grade of zero.

ABSOLUTELY NO WORK WILL BE ACCEPTED AFTER THE FINAL CLASS MEETS WEEK 11.

Classroom Policy:
No food allowed in class or lab at any time. Drinks in recloseable bottles allowed in classroom.
Edible items brought to class or lab must be thrown out.
If student elects to eat/drink outside class or lab door, missed time is recorded as absent.
Attendance is taken hourly. Tardiness or absence is recorded in 15-minute increments.
Break times are scheduled by the instructor at appropriate intervals.
No private software is to be brought to lab or loaded onto school computers.
No software games are allowed in lab (unless in course curriculum).
Headphones are required if listening to music during lab. No headphones are allowed in lecture.
Any student who has special needs that may affect his or her performance in this class is asked to identify his/her needs to the instructor in private by the end of the first day of class. Any resulting class performance problems that may arise for those who do not identify their needs will not receive any special grading considerations.

Disability Policy Statement:
It is our policy not to discriminate against qualified students with documented disabilities in its educational programs, activities, or services. If you have a disability-related need for adjustments or other accommodations in this class, contact the Disability Coordinator, Suzanne Raffeld, at 415 276 1060 or see her at at Room 609.”


Project Breakdown

The projects for this class will be based around rigging and binding biped characters. Students will use a designated, pre-built human mesh for their rigging. Students who wish to use a different mesh must have it approved by the instructor before rigging begins.

Project 1 – Simple Biped Rig - due week 2 – 15% of final grade
Rig a simple biped character. The rig should include the following (all _R joints and controls should have a _L mirror):

  • Skeleton hierarchy:
    • JT_pelvis (root)
      • JT_leg_R
        • JT_knee_R
          • JT_ankle_R
            • JT_ball_R
              • JT_toe_R
      • JT_spine_lumbar
        • JT_spine_thoracic
          • JT_clav_R
            • JT_arm_R
              • JT_elbow_R
                • JT_wrist_R 
          • JT_neck
            • JT_head...end
  • Smooth bind



Project 2 – Intermediate Biped Rig - due week 4 – 20% of final grade
Create a more advanced biped rig. Rig should include previous features, along with the following:

Finger and thumb joints
Finger SDK controls
IK leg controls with foot roll SDK, ball twist, and knee pole vector controller
Curve controls for all non-finger/non IK joints
Curve controls for all additional controls


Project 3 – Advanced Biped Rig - due week 7 – 25% of final grade
Create a more advanced biped rig. Rig should include previous features, along with the following:

Previous skeleton, with the following additions:
  • 11 – joint spine
  • jaw bone
  • eyelid bones
IK/FK arm controls + switches + pole vector CTLs
IK stretchy spline control for spine
Face blendshapes for:
  • wide mouth (L + R)
  • purse mouth (L + R)
  • brow raise (L + R)
  • brow purse (L + R)
Face GUI
Character Set
All node


Project 4– Final Biped Rig - due week 11 – 30% of final grade
Rig a new bipedal character OR create an autorig system using MEL/python





Suggested Course Outline

Week 1:
Lecture: Course overview
Introduction to rigging concepts – hierarchies, skinning.
Naming conventions.
Creating, organizing and parenting joints.
Joint quantity/placement strategy.
Understanding and fixing joint orientation.
  • Modify>Freeze transformations
  • Skeleton>orient joint
  • Flipping local rotation axis in the script editor.
Mirroring skeletons.
Skinning and weight painting.
Exporting, importing and mirroring skin weights.
Homework: Create skeleton and bind character. Correct skinning issues with weight painting.


Week 2: Project 1 – Simple Biped – DUE TODAY
Lecture:
FK vs. IK.
Setting up IK for feet.
Grouped IK structure + foot controls
IK pole vector setup
Freezing transforms to zero out controllers. 
Locking and hiding attributes.

Lab: Continue working on rig.
Homework: Work on rig.

Week 3:
Lecture:
Adding finger joints.
Adding influences with locked weights.
Finger SDK controls.
Using curve controls to drive joints.
Lab: Continue working on rig.
Homework: Work on rig.

Week 4: Project 2 - Intermediate Biped Rig - DUE TODAY – 20% of final grade
Lecture:
IK/FK control + switches switches for arms
Lab: Continue working on rig.
Homework: Work on rig.

Week 5:
Lecture:
Adding jaw and eyelid bones.
Facial blendshapes for:
  • wide mouth (L + R)
  • purse mouth (L + R)
  • brow raise (L + R)
  • brow purse (L + R)
Facial rig + GUI
Lab: Continue working on rig.
Homework: Work on rig.


Week 6:
Review, help session
adding new spine joints
IK stretchy spline control for spine
Character Set
All node
Lab: Continue working on rig.
Homework: Work on rig.

Week 7: Project 3 - Advanced Biped Rig – DUE TODAY – 20% of final grade
Lecture:
Creating joints at odd angles
Lab: Continue working on rig.
Homework: Work on final.


Week 8:
Lecture:
Facial rigging continued.
SDK- based muscle simulation blendshapes for bicep and hamstring
Character set with sub-character sets for body and face
Lab: Continue working on rig.
Homework: Work on final.

Week 9:
Lecture:
Twist joints for arms and forearms
Scalable “all” node
Lab: Students will Work on an area of interest in their chosen project.
Homework: Finish character rig, cleanup for submission.

Week 10:
Lecture: work on final
Lab: work on final
Homework: Relax!

Week 11:
Lecture: Final Presentation of final character rigs.
Lab: Project presentation and evaluation.
Homework: Relax!

Joint placement reference






Project submission

Instructions:

  1. Submit all projects via the dropittome link below
  2. Projects should be submitted as either a .mb, .ma, or if the file is over 75 mb, a compressed .zip file.
  3. Projects MUST BE NAMED according to the naming convention listed below. Projects named incorrectly will NOT BE GRADED and will receive an "F" grade.

File naming convention:

Rigging_lastname_firstname_projectNumber

Ex:

Rigging_lemon_greg_project2.mb
Rigging_smith_john_project1.zip (use a compressed zip if the maya file is over 75 mb)

Upload link:

http://www.dropitto.me/greglemon

Password: lemon

Naming conventions

Naming conventions

NOTE: I will be referencing your rigs into an animation file to check your deformations and control structure. 

YOU MUST ADHERE TO THE NAMING CONVENTIONS USED IN CLASS OR YOUR RIGS WILL BREAK WHEN I REFERENCE THEM!!!!

NNOI (Node type, name, orientation, iteration)


Nodetype: describes the category of the node (Polysurface, joint, control, etc)
  • CTL – controller - if something is a controller in the rig, it is always prefixed with this.
  • PS – polySurface
  • NC – nurbs curve
  • NS – nurbs surface
  • PS – polySurface
  • LOC – locator
  • JT – joint
  • IK – ik handle

Name: describes the functionality or location of the node (arm, head, ikFkSwitch)

JT_spine_1 : first spine joint
JT_leg_R : right leg joint

Orientation: describes which side of the body the node is on

Iteration: describes numbered node iterations 

Hippydrome

http://hippydrome.com/

Excellent reference site for articulation and deformations. If you're wondering how a certain area of a mesh should deform, this is a great place to go...

Grading breakdown


Grading breakdown

Rig functionality  - 30%
  • zero broken/buggy features 
  • all required features 
  • completely symmetrical architecture
  • animator-proof file structure
    Rig performance - 20%
    • rig can be manipulated in real-time
    • zero selection latency
    • animation plays back smoothly at close to real time

    Naming conventions - 20%


    Rig architecture - 30%
    • Correct and consistent joint orientation (x points towards child bone)
    • Proper joint location
    • Controls have zeroed transformations
    • Character mesh has zero non-deformer history, aside from the tweak node.
    • Proper skin weighting and deformation