An Essential Introduction to Maya Character Rigging 9780367694067, 9781138777989, 9781315771403, 0367694069

While some rigging books focus too much on the theory of rigging and provide little instruction, others do the exact opp

908 128 51MB

English Pages 474 [475]

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

An Essential Introduction to Maya Character Rigging
 9780367694067, 9781138777989, 9781315771403, 0367694069

Table of contents :
Cover
Half Title
Title Page
Copyright Page
Dedication
Table of Contents
Preface
Acknowledgments
About the Author
Introduction
Overview of the Interface
Navigation
Keyboard with Highlighted Hotkeys
Setting Up Your Project Folder and Scene Files
Setting User Preferences
Chapter 1 Skeleton Setup
Former Student Spotlight: David Bokser
Biography
Workflow
Introduction
Analyzing Motion
Identifying Pivot Points and Rotations
File Referencing [File > Create Reference…]
Changing the Referenced File [File > Reference Editor]
Setting Up Your Work Area
Working with Joints
The Joint Tool [Skeleton > Create Joints]
Display Size [Display > Animation > Joint Size…]
Local Rotational Axes
Placing Joints
Repositioning Joints
Moving Joints (also Known as – Translating Joints)
Rotating and Scaling Joints
Reorienting Joints [Skeleton > Orient Joint □ ]
Mirroring Joints [Skeleton > Mirror Joint □]
Additional Thoughts about Joint Placement
Summary
Chapter 2 Control Rig Setup
Former Student Spotlight: Ryan Yokley
Biography
Workflow
Introduction
Kinematics
Forward Kinematics
Inverse Kinematics
Attribute Control
Rotation Order and Gimbal Lock
Connection Editor [Windows > General Editors > Connection Editor]
Expressions [Windows > Animation Editors > Expression Editor]
Set Driven Key [Key > Set Driven Key > Set...]
Constraints
Parent [Constrain > Parent]
Point [Constrain > Point]
Orient [Constrain > Orient]
Scale [Constrain > Scale]
Aim [Constrain > Aim]
Pole Vector [Constrain > Pole Vector]
Rivet [Constrain > Rivet]
Geometry [Constrain > Geometry]
Normal [Constrain > Normal]
Group Nodes or Null [Edit > Group]
Clusters [Deform > Clusters]
Combining Curves
Summary
Chapter 3 Bipedal Legs and Feet
Former Student Spotlight: Ben Willis
Biography
Workflow
Introduction
Joint Placement for the Leg and Foot Skeleton
Verifying the Joint Local Rotation Axis
Creating a Control System for the Leg and Foot Rig
Cleanup for the Legs and Feet
Simplifying the Foot Controls
Chapter 4 Bipedal Spine and Neck
Workflow
Introduction
Creating a Ribbon Spine for a Biped
Creating the Back Ribbon
Creating a Control System for the Ribbon
Cleanup for the Back Ribbon
Creating a Ribbon Neck for a Biped
Creating the Neck Ribbon
Creating a Control System for the Ribbon
Cleanup for the Neck Ribbon
Creating an IK Spline Spine and Neck for a Biped
Joint Placement for a Spine and Neck Skeleton
Verifying the Joint Local Rotation Axis
Creating a Control System for the IK Spline Spine and Neck
Cleanup for the Back IK Spline
Cleanup for the Neck IK Spline
Chapter 5 Bipedal Arms and Hands
Workflow
Joint Placement for the Arm Skeleton
Creating the Joints for the Arms and Clavicles
Verifying the Joint Local Rotation Axis
Control System for the Arm Rig
Creating a Control System for the Clavicle.
Creating a Control System for the Arm.
Cleanup for the Arm Setup
Joint Placement for the Hand Skeleton
Verifying the Joint Local Rotation Axis
Control System for the Hand Rig
Creating a Control System for the Finger Joints
Cleanup for the Hand Setup
Wings
Chapter 6 Quadruped Legs and Feet
Workflow
Introduction: Hoofs, Paws, and Claws
Joint Placement for the Leg and Paw Skeleton
Verifying the Joint Local Rotation Axis
Control System for the Leg and Paw Rig
Cleanup for the Leg and Paw Setup
Control System for the Leg and Claw Rig
Verifying the Joint Local Rotation Axis
Additional Functionality for the Talons and Toes
Verifying the Joint Local Rotation Axis
Cleanup for the Leg and Claw Setup
Control System for the Leg and Hoof Rig
Cleanup for the Leg and Hoof Setup
Chapter 7 Quadruped Spine and Neck
Former Student Spotlight: Dana Corrigan
Biography
Workflow
Introduction
Creating a Ribbon Spine for a Quadruped
Creating the Back Ribbon
Creating a Control System for the Ribbon
Cleanup for the Back Ribbon
Creating a Ribbon Neck for a Quadruped
Creating the Neck Ribbon
Creating a Control System for the Ribbon
Cleanup for the Neck Ribbon
Creating an FK Tail
Verifying the Joint Local Rotation Axis
Cleanup for the FK Tail Setup
Creating a Ribbon Tail
Creating the Tail Ribbon
Creating a Control System for the Ribbon
Cleanup for the Tail Ribbon
Adding a Scapula for a Quadruped
Joint Placement of the Scapula
Creating a Control System for the Scapula.
Cleanup for the Scapula Setup
Chapter 8 Head
Workflow
Introduction
Joint Placement for the Biped Head
Creating the Joints for the Head, Hat, and Hair Skeleton
Verifying the Joint Local Rotation Axis
Control System for the Head, Hat, and Hair Skeleton
Cleanup for the Biped Head Setup
Joint Placement for the Quadruped Head
Creating the Joints for the Ears and Collar
Verifying the Joint Local Rotation Axis
Control System for the Head, Collar, and Ear Skeleton
Cleanup for the Ear Setup
Dynamic Joint Chains: Antennae
Creating the Joints for the Antennae
Verifying the Joint Local Rotation Axis
Creating a Control System for the Antennae.
Cleanup for the Antenna Setup
Chapter 9 Facial Rigging
Workflow
Introduction
Blend Shapes as an Approach to Creating Facial Expressions
Tools Used for Modeling Blend Shapes
Soft Modification Tool [Deform > Soft Modification Tool □ ]
Sculpt Geometry Tool [Surfaces > Sculpt Geometry Tool □ ]
Add blend shapes [Deform > Create Blend Shape]
In-Between Blend Shapes
Update topology on blend shapes [Deform > Edit Blend Shape > Bake Topology To targets]
Deformation Order
Creating Facial Expression Blend Shapes
Flipping a Blend Shape Using the Shape Editor
Corrective Blend Shapes
Joints as an Approach to Creating Facial Expressions
Creating a Control System for Facial Expressions
Creating the Jaw and Tongue
Creating a Control System for the Jaw
Creating the Tongue Ribbon
Creating a Control System for the Ribbon
Cleanup for the Tongue Ribbon
Creating the Eye Controls
Cleanup for the Eye Control
Summary
Chapter 10 Props
Workflow
Introduction
Deformers
Nonlinear Deformers [Deform > Nonlinear]
Creating a Simple Basic Prop Rig
Creating a Prop Rig with Squash and Stretch
Cleanup for the Prop Rig
Summary
Chapter 11 Wrapping Up the Setup
Former Student Spotlight: Tim Keebler
Biography
Workflow
Introduction
Cleaning Up the Scene File for Animation
Preparing the Scene File for Skinning
Creating a Bridge Shape
Creating Additional Tools for Animation
Adding Squash and Stretch to the ikSpline Spine
Expression Solution for Squash and Stretch
Utility Node Solution for Squash and Stretch
Summary
Chapter 12 Skinning Your Character
Former Student Spotlight: Tonya Payne
Biography
Workflow
Introduction
Skinning Tools in Maya
Creating the Skin Deformer [Skin > Bind Skin □ ]
Adding influences [Skin > Edit Influences > Add Influence]
The Component Editor [Window > General Editors > Component Editor]
Smooth Skin Weights [Skin > Smooth Skin Weights]
Paint weights – [Skin > Edit Smooth Skin > Paint Skin Weights Tool]
Mirror weights – [Skin > Mirror Skin Weights □ ]
Skinning a Character
Adding Influence Joints
Fixing Skin Weights Using the Component Editor
[Window > General Editors > Component Editor]
Fixing Skin Weights Using Smooth Skin Weights
[Skin > Smooth Skin Weights]
Fixing Skin Weights Using Paint Skin Weights
[Skin > Paint Skin Weights □ ]
Mirroring Skin Weights
[Skin > Mirror Skin Weights □ ]
Creating a geoLevel Switch for Polygonal Characters
Final Cleanup of the Scene File
Testing Rig Relocation
Making Geometry Unselectable
Colorizing the Controllers
Summary
Index

Citation preview

An Essential Introduction to Maya Character Rigging

An Essential Introduction to Maya Character Rigging Second edition

Cheryl Briggs

second edition published 2021 by CRC Press 6000 Broken Sound Parkway NW, Suite 300, Boca Raton, FL 33487-2742 and by CRC Press 2 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN © 2021 Taylor & Francis Group, LLC First edition published 2008 by CRC Press CRC Press is an imprint of Taylor & Francis Group, LLC Reasonable efforts have been made to publish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials or the consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained. If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint. Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers. For permission to photocopy or use material electronically from this work, access www. copyright.com or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. For works that are not available on CCC please contact [email protected] Trademark notice: Product or corporate names may be trademarks or registered trademarks and are used only for identification and explanation without intent to infringe. ISBN: 978-0-367-69406-7 (hbk) ISBN: 978-1-138-77798-9 (pbk) ISBN: 978-1-315-77140-3 (ebk) Typeset in Myriad Pro by Deanta Global Publishing Services, Chennai, India

Access the companion website www.cherylcreates.com

To my students

Contents Preface���������������������������������������������������������������������������������������������������������������������� xiii Acknowledgments������������������������������������������������������������������������������������������������� xv About the Author �������������������������������������������������������������������������������������������������xvii Introduction������������������������������������������������������������������������������������������1 Overview of the Interface����������������������������������������������������������������������������1 Navigation ��������������������������������������������������������������������������������������������������������5 Keyboard with Highlighted Hotkeys��������������������������������������������������������5 Setting Up Your Project Folder and Scene Files����������������������������������7 Setting User Preferences������������������������������������������������������������������������������8 Chapter 1: Skeleton Setup������������������������������������������������������������������������������������11 Former Student Spotlight: David Bokser����������������������������������������������12 Biography��������������������������������������������������������������������������������������������������12 Workflow����������������������������������������������������������������������������������������������������������12 Introduction����������������������������������������������������������������������������������������������������12 Analyzing Motion������������������������������������������������������������������������������������������15 Identifying Pivot Points and Rotations ������������������������������������������16 File Referencing [File > Create Reference…]��������������������������������������20 Changing the Referenced File [File > Reference Editor]����������21 Setting Up Your Work Area������������������������������������������������������������������������23 Working with Joints ������������������������������������������������������������������������������������26 The Joint Tool [Skeleton > Create Joints]��������������������������������������26 Display Size [Display > Animation > Joint Size…]����������������������27 Local Rotational Axes ��������������������������������������������������������������������������28 Placing Joints ������������������������������������������������������������������������������������������33 Repositioning Joints������������������������������������������������������������������������������33 Moving Joints (also Known as – Translating Joints)��������������������33 Rotating and Scaling Joints��������������������������������������������������������������� 34 Reorienting Joints [Skeleton > Orient Joint □ ]��������������������������35 Mirroring Joints [Skeleton > Mirror Joint □]��������������������������������37 Additional Thoughts about Joint Placement��������������������������������37 Summary����������������������������������������������������������������������������������������������������������38 Chapter 2: Control Rig Setup����������������������������������������������������������������������������� 41 Former Student Spotlight: Ryan Yokley������������������������������������������������42 Biography��������������������������������������������������������������������������������������������������43 Workflow��������������������������������������������������������������������������������������������������������� 44 Introduction��������������������������������������������������������������������������������������������������� 44 Kinematics ����������������������������������������������������������������������������������������������������� 44 Forward Kinematics������������������������������������������������������������������������������47 Inverse Kinematics ������������������������������������������������������������������������������� 48 Attribute Control������������������������������������������������������������������������������������������51 vii

Contents Rotation Order and Gimbal Lock������������������������������������������������������52 Connection Editor [Windows > General Editors > Connection Editor]��������������������������������������������������������������������������57 Expressions [Windows > Animation Editors > Expression Editor]����������������������������������������������������������������������������58 Set Driven Key [Key > Set Driven Key > Set...]������������������������59 Constraints������������������������������������������������������������������������������������������������61 Parent [Constrain > Parent]����������������������������������������������������������62 Point [Constrain > Point] ��������������������������������������������������������������63 Orient [Constrain > Orient] ����������������������������������������������������������63 Scale [Constrain > Scale]��������������������������������������������������������������� 64 Aim [Constrain > Aim]��������������������������������������������������������������������65 Pole Vector [Constrain > Pole Vector] ��������������������������������������65 Rivet [Constrain > Rivet]����������������������������������������������������������������65 Geometry [Constrain > Geometry]��������������������������������������������65 Normal [Constrain > Normal]����������������������������������������������������� 66 Group Nodes or Null [Edit > Group]����������������������������������������� 68 Clusters [Deform > Clusters]��������������������������������������������������������69 Combining Curves����������������������������������������������������������������������������������������69 Summary����������������������������������������������������������������������������������������������������������73 Chapter 3: Bipedal Legs and Feet��������������������������������������������������������������������� 75 Former Student Spotlight: Ben Willis����������������������������������������������������75 Biography��������������������������������������������������������������������������������������������������75 Workflow����������������������������������������������������������������������������������������������������������76 Introduction����������������������������������������������������������������������������������������������������76 Joint Placement for the Leg and Foot Skeleton ��������������������������������76 Verifying the Joint Local Rotation Axis ������������������������������������������79 Creating a Control System for the Leg and Foot Rig������������������������81 Cleanup for the Legs and Feet ����������������������������������������������������������93 Simplifying the Foot Controls������������������������������������������������������������������95 Chapter 4: Bipedal Spine and Neck ��������������������������������������������������������������� 103 Workflow������������������������������������������������������������������������������������������������������� 103 Introduction������������������������������������������������������������������������������������������������� 103 Creating a Ribbon Spine for a Biped��������������������������������������������������� 103 Creating the Back Ribbon ��������������������������������������������������������������� 105 Creating a Control System for the Ribbon ��������������������������������� 108 Cleanup for the Back Ribbon ����������������������������������������������������������114 Creating a Ribbon Neck for a Biped�����������������������������������������������������115 Creating the Neck Ribbon ����������������������������������������������������������������115 Creating a Control System for the Ribbon ��������������������������������� 120 Cleanup for the Neck Ribbon ����������������������������������������������������������124 Creating an IK Spline Spine and Neck for a Biped ������������������������� 125 Joint Placement for a Spine and Neck Skeleton ����������������������127 Verifying the Joint Local Rotation Axis ��������������������������������������� 128 Creating a Control System for the IK Spline Spine and Neck��������129 viii

Contents Cleanup for the Back IK Spline ������������������������������������������������������� 136 Cleanup for the Neck IK Spline ������������������������������������������������������� 140 Chapter 5: Bipedal Arms and Hands ������������������������������������������������������������� 143 Workflow������������������������������������������������������������������������������������������������������� 143 Joint Placement for the Arm Skeleton����������������������������������������������� 143 Creating the Joints for the Arms and Clavicles ������������������������� 143 Verifying the Joint Local Rotation Axis ��������������������������������������� 146 Control System for the Arm Rig������������������������������������������������������������ 146 Creating a Control System for the Clavicle. ������������������������������� 146 Creating a Control System for the Arm.��������������������������������������� 148 Cleanup for the Arm Setup�������������������������������������������������������������� 167 Joint Placement for the Hand Skeleton��������������������������������������������� 168 Verifying the Joint Local Rotation Axis ��������������������������������������� 172 Control System for the Hand Rig ����������������������������������������������������������175 Creating a Control System for the Finger Joints������������������������175 Cleanup for the Hand Setup ����������������������������������������������������������� 185 Wings������������������������������������������������������������������������������������������������������������� 186 Chapter 6: Quadruped Legs and Feet����������������������������������������������������������� 193 Workflow������������������������������������������������������������������������������������������������������� 193 Introduction: Hoofs, Paws, and Claws ����������������������������������������������� 193 Joint Placement for the Leg and Paw Skeleton������������������������������� 193 Verifying the Joint Local Rotation Axis ��������������������������������������� 198 Control System for the Leg and Paw Rig�������������������������������������������200 Cleanup for the Leg and Paw Setup����������������������������������������������213 Control System for the Leg and Claw Rig ������������������������������������������215 Verifying the Joint Local Rotation Axis ����������������������������������������218 Additional Functionality for the Talons and Toes��������������������������� 237 Verifying the Joint Local Rotation Axis ��������������������������������������� 243 Cleanup for the Leg and Claw Setup ������������������������������������������� 246 Control System for the Leg and Hoof Rig ����������������������������������������� 248 Cleanup for the Leg and Hoof Setup ������������������������������������������� 260 Chapter 7: Quadruped Spine and Neck��������������������������������������������������������� 261 Former Student Spotlight: Dana Corrigan ��������������������������������������� 261 Biography����������������������������������������������������������������������������������������������� 262 Workflow������������������������������������������������������������������������������������������������������� 262 Introduction������������������������������������������������������������������������������������������������� 262 Creating a Ribbon Spine for a Quadruped���������������������������������������264 Creating the Back Ribbon�����������������������������������������������������������������264 Creating a Control System for the Ribbon ��������������������������������� 267 Cleanup for the Back Ribbon����������������������������������������������������������� 272 Creating a Ribbon Neck for a Quadruped����������������������������������������� 275 Creating the Neck Ribbon ��������������������������������������������������������������� 275 Creating a Control System for the Ribbon ��������������������������������� 278 Cleanup for the Neck Ribbon ��������������������������������������������������������� 283 ix

Contents Creating an FK Tail�������������������������������������������������������������������������������������284 Verifying the Joint Local Rotation Axis ��������������������������������������� 286 Cleanup for the FK Tail Setup���������������������������������������������������������� 289 Creating a Ribbon Tail������������������������������������������������������������������������������� 289 Creating the Tail Ribbon ������������������������������������������������������������������� 289 Creating a Control System for the Ribbon ��������������������������������� 293 Cleanup for the Tail Ribbon ������������������������������������������������������������� 297 Adding a Scapula for a Quadruped�����������������������������������������������������300 Joint Placement of the Scapula �����������������������������������������������������300 Creating a Control System for the Scapula.�������������������������������300 Cleanup for the Scapula Setup������������������������������������������������������� 302 Chapter 8: Head���������������������������������������������������������������������������������������������������305 Workflow������������������������������������������������������������������������������������������������������� 305 Introduction������������������������������������������������������������������������������������������������� 305 Joint Placement for the Biped Head��������������������������������������������������� 305 Creating the Joints for the Head, Hat, and Hair Skeleton�����������305 Verifying the Joint Local Rotation Axis ���������������������������������������308 Control System for the Head, Hat, and Hair Skeleton������������������� 309 Cleanup for the Biped Head Setup������������������������������������������������311 Joint Placement for the Quadruped Head ����������������������������������������312 Creating the Joints for the Ears and Collar ���������������������������������312 Verifying the Joint Local Rotation Axis ����������������������������������������313 Control System for the Head, Collar, and Ear Skeleton������������������314 Cleanup for the Ear Setup������������������������������������������������������������������317 Dynamic Joint Chains: Antennae����������������������������������������������������������317 Creating the Joints for the Antennae ������������������������������������������318 Verifying the Joint Local Rotation Axis ����������������������������������������318 Creating a Control System for the Antennae.��������������������������� 320 Cleanup for the Antenna Setup����������������������������������������������������� 332 Chapter 9: Facial Rigging����������������������������������������������������������������������������������� 335 Workflow������������������������������������������������������������������������������������������������������� 335 Introduction������������������������������������������������������������������������������������������������� 335 Blend Shapes as an Approach to Creating Facial Expressions ������������������������������������������������������������������������������������� 338 Tools Used for Modeling Blend Shapes��������������������������������������������� 341 Soft Modification Tool [Deform > Soft Modification Tool □ ] ����������������������������������������������������������������������������������������������������������� 343 Sculpt Geometry Tool [Surfaces > Sculpt Geometry Tool □ ]��������������������������������������������������������������������������������������������������� 343 Add blend shapes [Deform > Create Blend Shape] ��������������� 345 In-Between Blend Shapes ��������������������������������������������������������� 347 Update topology on blend shapes [Deform > Edit Blend Shape > Bake Topology To targets] ��������������������������������� 349 Deformation Order����������������������������������������������������������������������������������� 350 Creating Facial Expression Blend Shapes ����������������������������������������� 351 Flipping a Blend Shape Using the Shape Editor����������������������������� 354 x

Contents Corrective Blend Shapes������������������������������������������������������������������������� 355 Joints as an Approach to Creating Facial Expressions ����������������� 357 Creating a Control System for Facial Expressions��������������������������� 359 Creating the Jaw and Tongue���������������������������������������������������������������366 Creating a Control System for the Jaw�����������������������������������������366 Creating the Tongue Ribbon ���������������������������������������������������������368 Creating a Control System for the Ribbon ��������������������������������� 371 Cleanup for the Tongue Ribbon������������������������������������������������������374 Creating the Eye Controls��������������������������������������������������������������������� 375 Cleanup for the Eye Control ����������������������������������������������������������� 377 Summary ��������������������������������������������������������������������������������������������������� 377 Chapter 10: Props������������������������������������������������������������������������������������������������� 379 Workflow ��������������������������������������������������������������������������������������������������� 379 Introduction ���������������������������������������������������������������������������������������������380 Deformers �������������������������������������������������������������������������������������������������380 Nonlinear Deformers [Deform > Nonlinear]����������������������������� 381 Creating a Simple Basic Prop Rig������������������������������������������������������� 382 Creating a Prop Rig with Squash and Stretch������������������������������� 387 Cleanup for the Prop Rig������������������������������������������������������������������� 389 Summary ��������������������������������������������������������������������������������������������������� 391 Chapter 11: Wrapping Up the Setup��������������������������������������������������������������� 393 Former Student Spotlight: Tim Keebler������������������������������������������ 393 Biography����������������������������������������������������������������������������������������������� 394 Workflow ��������������������������������������������������������������������������������������������������� 394 Introduction ��������������������������������������������������������������������������������������������� 394 Cleaning Up the Scene File for Animation������������������������������������� 398 Preparing the Scene File for Skinning��������������������������������������������� 399 Creating a Bridge Shape����������������������������������������������������������������������� 401 Creating Additional Tools for Animation ��������������������������������������� 402 Adding Squash and Stretch to the ikSpline Spine�����������������������404 Expression Solution for Squash and Stretch �����������������������������405 Utility Node Solution for Squash and Stretch���������������������������408 Summary ����������������������������������������������������������������������������������������������������413 Chapter 12: Skinning Your Character ����������������������������������������������������������� 415 Former Student Spotlight: Tonya Payne������������������������������������������415 Biography������������������������������������������������������������������������������������������������416 Workflow ����������������������������������������������������������������������������������������������������416 Introduction ����������������������������������������������������������������������������������������������416 Skinning Tools in Maya��������������������������������������������������������������������������418 Creating the Skin Deformer [Skin > Bind Skin □ ] ������������������418 Adding influences [Skin > Edit Influences > Add Influence]����������������������������������������������������������������������������������������419 The Component Editor [Window > General Editors > Component Editor]����������������������������������������������������������������������������� 420 Smooth Skin Weights [Skin > Smooth Skin Weights]������������� 421 xi

Contents Paint weights – [Skin > Edit Smooth Skin > Paint Skin Weights Tool]���������������������������������������������������������������������������������������� 422 Mirror weights – [Skin > Mirror Skin Weights □ ] ������������������� 422 Skinning a Character ����������������������������������������������������������������������������� 423 Adding Influence Joints��������������������������������������������������������������������������� 425 Fixing Skin Weights Using the Component Editor������������������������� 434 [Window > General Editors > Component Editor] ����������������� 434 Fixing Skin Weights Using Smooth Skin Weights��������������������������� 435 [Skin > Smooth Skin Weights] ������������������������������������������������������� 435 Fixing Skin Weights Using Paint Skin Weights��������������������������������� 437 [Skin > Paint Skin Weights □ ] ������������������������������������������������������� 437 Mirroring Skin Weights ���������������������������������������������������������������������������440 [Skin > Mirror Skin Weights □ ]�����������������������������������������������������440 Creating a geoLevel Switch for Polygonal Characters �����������������440 Final Cleanup of the Scene File�������������������������������������������������������������443 Testing Rig Relocation ���������������������������������������������������������������������444 Making Geometry Unselectable ���������������������������������������������������445 Colorizing the Controllers�����������������������������������������������������������������446 Summary������������������������������������������������������������������������������������������������������� 447 Index ������������������������������������������������������������������������������������������������������������������������������������ 449

xii

Preface When I began teaching 3D character animation almost twenty years ago, there were few resources available to help students learn and understand the fundamentals of the character rigging process. Because of this, I put my classroom materials together and presented them in the first edition of this book. That was thirteen years ago. Many techniques evolved and new practices emerged, but many of the foundations have remained the same. This new edition is an almost complete rewrite. Most of the tools covered in the first edition remain updated along with their menu changes. I removed other tools that have phased out of the software and incorporated many of the new tools. Included in this edition are Quadruped rigging and Prop rigging since there is still little information available about these topics. This edition focuses only on rigging, taking feedback from the first edition to remove the design and modeling content. I also introduce some more advanced topics, such as MEL expressions and Node-based rigging solutions, giving just a taste to those who crave more than the basics. Understanding these tools and procedures is a critical component of animation in the 3D environment. The technical vocabulary of rigging characters is necessary for animators to communicate their needs to technical artists. Still, this knowledge is also invaluable to anyone who may find themselves in a position where rigging becomes part of their job description. My goal is to provide a strong foundation in character rigging for anyone who wants to pursue 3D animation or more advanced rigging topics. Essential tips and potential problems are in boxes throughout this book. However, because new issues come up with every student and version of the software, I have added a section to my website to support this book with FAQs and other postings along with resource files. Please make sure to visit and check things out: www.cherylcreates.com For the best understanding of rigging in Maya, work through this book from beginning to end. If more information is necessary or if you have any further questions, please contact me via this form: https://www.cherylcreates.com/ contact

xiii

Acknowledgments Merci Gracias Mahalo Danke schön Grazie Yokoke Thank You … I want to thank the following for their help during the long process of book writing. In reflecting on this process, I have realized I have been writing books steadily for the past 14 years. The next one will be a memoir. Thank you, God, for Your continued guidance and the ability to live my life with strength and grace. I want to thank my students. This book is written for them. Thank you, Kenna Hornibrook, for the use of the Percy model that adorns many of the pages of this book. The work she did modeling all of the facial Blend Shapes saved me hours of work. Thanks to Ashley Luparriello, for the use of her Lucy model. To the following former students and friends in particular, for contributing their artwork and words of wisdom: David Bokser, Bryan Colvin, Dana Corrigan, John Doromal, Jason Fronczek, Wesley Gordon, Noel Isham, Victoria Jones, Timothy Keebler, Judy Malloch, Drew Merrit, Sanne Methorste, Alina Morales, Tonya Payne, Crissy Peters, Ida McKenna Phillips, Genesis Rivera, Damian Thorn-Hauswirth, Charlie Tong, Haley Vallandingham, Marchand Venter, Ben Willis, and Ryan Yokley. And an extra special thanks to the BFA and BA students of the Character Animation and Visual Language degree programs at the University of Central Florida and all my former students from the Savannah College of Art and Design. Their hard work helped develop, test, and illustrate the many concepts covered in this book. A special thanks to Sean Connelly, the Executive Editor at Taylor & Francis. Sean did not give up on my hectic schedule as a professor and understood the complications involved in working a full-time job, giving me confidence and motivation to keep going! Also, to Jessica Vega, editorial assistant, for working with me on a due date that I could finally meet. Thank you to my husband, Robert, who has been so supportive and understanding, especially during the last two months of my writing non-stop during a pandemic while we were both working in the same room. Thank you to my children, Alex, Taylor, Nathanael, and Ian, and my adopted niece, Heather, who give me a reason to wake up every morning and never give up. Thanks to my eldest son and my ex-husband, Michael Cabrera, for helping Nathanael survive and thrive in Algebra II Honors, which allowed me to focus my energy and efforts on completing this manuscript. A special thanks to Nathanael for the extra encouragement and hugs you gave me, especially toward the end, helping to see me through to the finish line. A special thanks to all of my family and friends who have encouraged me throughout the years to pursue my dreams, including special recognition xv

Acknowledgments of my teachers and mentors who have also instilled in me the curiosity of learning and fostered my ability to problem solve. An extra special thanks to Randy and Ann Asprodites, Marlene and Eugene Cookmeyer, Susan and Ben Eble, June and Bill Hackworth, Lucilla and Mark Hoshor, Lauren LaPointe and Dave Kaul, Sue Dee Lazzerini, Jeanna McCulla, Darlene Marr and Bob Owens, Tom Mavor, Hal and Nancy Miles, Heidi Poché, Chyrl Savoy, David Thibodaux, Dickie Wagner, Paul Werner. Thank you to the faculty, staff, and administration of the School of Visual Arts and Design and the College of Arts and Humanities at the University of Central Florida, and the Florida Interactive Entertainment Academy. Extra special thanks to my colleagues and mentors, Dr. Rudy McDaniel, Ben Noel, John Rotolo, JoAnne Adams, Jason Burrell, Rich Grula, Darlene Hadrika, Waheeda Illasarie, Joe Muley, Ilenia Colon Mendoza, Wanda Raimundi-Ortiz Klotz, Phil Peters, Carla Poindexter, Dr. M.C. Santana, and Dr. Stella Sung.

xvi

About the Author Cheryl Briggs (formerly Cabrera) is an award winning animated short film director who has advised and guided aspiring animators, game artists, and visual effects artists for 20 years. Since 2009, she has taught all aspects of animation production at the undergraduate and graduate levels in the School of Visual Arts and Design at the University of Central Florida. She has also taught as Professor of Animation at the Savannah College of Art and Design from 2001 to 2009. Her award-winning students have been featured in animation festivals worldwide, and many have gone on to work within the entertainment industry at studios such as Dreamworks, Disney, PIXAR, Blue Sky, Industrial Light and Magic (ILM), Moving Picture Company (MPC), Rhythm & Hues, Digital Domain, Blizzard, Epic, and Hi-Rez. Cheryl is currently on the Board of Directors for the Animation Hall of Fame, a voting member of the International Animated Film Society (ASIFAHollywood), and a member of the Special Interest Group on Computer Graphics and Interactive Techniques (SIGGRAPH), Women in Animation, Women in Film and Television, and the Society for Animation Studies. Cheryl holds a B.A. and M.Ed. in Education and an M.F.A. in Computer Art: 3D Animation from the Savannah College of Art and Design (2001). She is a native of New Orleans and is proud to bring her Cajun and Creole heritage with her wherever she goes by cooking up a gumbo and making pralines for all, happily sharing “Joie de Vivre” with the world.

xvii

Introduction There is something to be said for learning from your mistakes. Throughout my twenty years as a professor of 3D character animation, I have seen many students make the same mistakes over and over again. I must say that much of what I have learned about Maya, I have learned because of the mistakes that my students or I have made. Hopefully, our loss will be your gain, and you will be able to avoid the same mistakes that we have previously made. I am going to show you a streamlined way of creating a character in Maya. The method that I am going to show you is an evolved and simplified process, and it is one that works for my students and me. It is one that has developed as an amalgamation of a variety of approaches that I have learned from different people and my own added techniques. It is not the only way to accomplish the end result. As with anything in Maya, there is more than one way to do the same task. There is no “right way” to achieve your goal. As an artist and a student, you should explore different approaches and assimilate what works best for you into your own approach. The workflow, or production pipeline, is extremely important. There are some things that must occur before others and some things that can be done simultaneously throughout the production. Throughout each chapter, I will be listing the tasks that will be accomplished and specifying an order. You should pay close attention to the workflow because it will save you valuable time in the long run.

Overview of the Interface There are many aspects to the Maya User Interface, and it can be pretty overwhelming for a new user. This book does not cover everything that Maya has to offer. If you want more information, make sure to utilize the Maya help files, which can be easily accessed by hitting (F1) on your keyboard. This book does assume that you understand 3D space and the XYZ coordinate system of establishing points in that space. This section explains some of the interface areas that we will frequently be using. Each section in the image below is outlined in white and numbered in red. The corresponding number that follows below describes that area of the interface. (Figure 0.1)

1

An Essential Introduction to Maya Character Rigging

FIGURE 0.1 The Maya user interface.

1. Menu Sets. A dropdown to choose which menu you are currently working, corresponding with the following hotkeys on the keyboard: (F1) Help (Maya Help Files – Read through them when you have spare time) (F2) Modeling (F3) Rigging (F4) Animation (F5) FX (F6) Rendering 2. Menus. The Menu bar displays seven common dropdown menu items (File, Edit, Create, Select, Modify, Display, and Windows), and the remaining menu items change based on the current menu set. The current menu set can be changed using the hotkeys (above). Some tools in the menus have little boxes next to their name on the right. These are called option boxes, and clicking on one will open an options window where settings can be changed for that tool. As I refer to menu items, they will appear in brackets as follows: [Menu > Submenu > Submenu – Option Box] (Figure 0.2) Menu items can also be chosen from the Hotbox, which appears when you hold down the spacebar. The Hotbox is a quick method for accessing all menu items and tools wherever your cursor is located. Simply press and hold down the Space bar on the keyboard for it to appear. You can customize the Hotbox: press and hold the spacebar, press the LMB, and drag the mouse to the Hotbox Controls menu on the right. While still holding the LMB down (a marking menu will appear), drag your mouse to the option you want to enable or disable, such as SHOW ALL, then release the LMB. Show All will allow all menu systems to appear. The Hotbox saves time and frees up valuable 2

Introduction

FIGURE 0.2 Menu items with option boxes to the right.

FIGURE 0.3 The Hotbox.

screen space if you hide the menu bar by customizing your settings/ preferences, which will be done later in this section. (Figure 0.3) The Marking Menu is a quick method for accessing a subset of menu choices of the most commonly used tools for a particular object. Simply place your cursor over an object, RMB and hold for the Marking Menu to appear. To select an option from a Marking Menu, while still holding the RMB down, drag your mouse to the option you want, and then release the RMB. 3. Status Line. The Status Line, or toolbar, contains shortcuts to many of the commonly used tools in Maya. We will be using the menu sets, selection masks, and sidebar buttons. There are small icon buttons for New Scene/ Open/Save/Undo/Redo. This is followed by Selection Masks by Hierarchy/ 3

An Essential Introduction to Maya Character Rigging Object/Component, which has a keyboard shortcut of (F8) that toggles between Object mode and Component mode. There are more tools on the status line, and I recommend reading the help files to learn more. 4. User Account menu. Here, you can log in to your Autodesk Account. 5. Shelves. The Shelves hold commonly used actions and tools, allowing them to be accessed by clicking an icon. If you double click on an icon, the options window will open. These can help save time if you are using the menu bar, but the Hotbox is usually faster. You can create a custom shelf by holding down old ⌘ (command) + shift (MAC), or ctrl + shift (PC), then select any menu item to add it to the shelf. 6. Workspace selector. Workspace layout option, which has great options for specialized screen layouts of different tasks to increase productivity. This book stays with Maya classic. 7. Sidebar icons. Buttons to quickly change between the following: Modeling Toolkit, HumanIK window (for use with Motion Capture Data Cleanup), Attribute Editor, and Tool Settings. 8. Channel Box. The Channel Box is usually the first tool for editing object attributes. The information displayed in the Channel Box changes depending on what kind of object or component you have selected. If nothing is selected, then the Channel Box is blank. Click in a field to type in attribute values, or you can click on a word and middle-mouse-button click and drag in the viewport area to change the value. 9. Layer Editor. The Layer Editor is useful for organizing your Maya scene file. We will be using display layers. Objects can be assigned to a layer that can then be labeled and set for display options. Referencing the layer allows an object to be viewed normally, but not selectable. Templating the layer allows the objects to be viewed as a wireframe, but not selectable. You can also turn the visibility of a layer on and off. Animation Layers are for adding changes to base animation. 10. View Panel (Viewport). This is the main Maya window where you work and see what you are working on in three dimensions. There are different camera views, and, by default, there is a top, front, side, and perspective view. If you tap the spacebar, with your cursor over the view panel, your view will change from all four to only the one where your cursor is located. There are Panel Toolbars that have the following menus: View, Shading, Lighting, Show, Renderer, Panels. The most commonly used menu items are on the Panel Toolbar, which is the series of icons. 11. Tool Box. The tools used to select and transform objects and components can be found here in a button format. These tools align with the QWERTY hotkeys: (q) Select (w) Move (w) Rotate (r) Scale (t) Show Manipulators (y) Last tool used. 12. Quick Layout/Outliner Buttons. These buttons give you quick access to the Perspective view, the four views, and the front/perspective two-panel layout. The bottom button shows or hides the Outliner. There are more parts of the interface that align more with animation than with rigging. Please see the Maya help files for more information. Two more areas that may interest you for rigging are labeled in the image above and are: 4

Introduction

FIGURE 0.4 Common Maya hotkeys used in this book.

Command Line. Area for entering MEL commands. Help Line. Shows information if your cursor hovers over a button and also prompts with some steps for certain tools.

Navigation To navigate in Maya, you need a three-button mouse. Holding down the Alt/ option key and pressing the LMB in the perspective view panel will tumble your view. Holding down the Alt/option key and pressing the middle mouse button (MMB) in the view panel will track your view. Holding down the Alt/ option key and pressing the right mouse button (RMB) in the view panel or viewport will dolly your view. The track and dolly movements also work in most Maya windows, such as the Node Editor and Graph Editor – not only in the view panels.

Keyboard with Highlighted Hotkeys Maya is consistent across all platforms. The only difference is that when on a Macintosh a tool calls for using the Command key (⌘), on a Windows PC, the same would be the Control key (Ctrl). Be aware that Maya is case sensitive. This is particularly important when using hotkeys. Throughout this book, hotkeys, or keyboard shortcuts, will appear bold in parenthesis (). The following are the hotkeys that will be used in this book: (Figure 0.4) F1 Help (Maya Help Files – Read through them when you have spare time) F2 Modeling F3 Rigging F4 Animation F5 FX F6 Rendering 5

An Essential Introduction to Maya Character Rigging

F8 toggles Object mode/Component mode 1 No Smooth Preview 2 Smooth Preview with Wireframe Cage 3 Smooth Preview 4 Wireframe Preview 5 Shaded Preview 6 Textured Preview 7 Light Preview Q Select W Move E Rotate R Scale T Show Manipulators Y Last tool used P parent, [shift+p] unparent A frame-all with the cursor over D (hold) Move pivot [ctrl+d] duplicate selected F frame selected with the cursor over G repeats last command [ctrl+G] group or create Null Z undo X (hold) snap to grid C (hold) snap to curve V (hold) snap to point B soft select toggle B (hold) change artisan brush size _−decrease manipulator size + = increase manipulator size { [ undo camera movement } ] redo camera movement Spacebar (tap) display toggle changes Viewport when the cursor is over Spacebar (hold) shows Hotbox Insert/home toggle move pivot

6

Introduction

FIGURE 0.5 The Project Window.

Setting Up Your Project Folder and Scene Files Before you begin working, it is best to develop a file system for storage and organization. Maya has a built-in folder system for storing different aspects of your project. If you are organized, you will save valuable time during the entire production process. This folder system must be the first thing you create when you begin a project. By placing all of your files and related resources into this folder and subfolders, you can be assured that Maya will be able to find your project assets. To create a new project folder, do the following: 1. Once Maya is open, go to [File > Project Window], the New Project window opens. (Figure 0.5) 2. Enter the name of the new project in the Name text box [a], for example, MayaCharacterRigging. 3. In the Location: text box, enter or browse to the directory that will contain the new project by clicking on the folder icon. 4. Click Accept . 5. Maya then creates a default folder structure for your project.

7

An Essential Introduction to Maya Character Rigging

FIGURE 0.6 The Set Project window.

Next, you will want to tell Maya where the project folder is located by doing the following: 1. Go to [File > Set Project…]. The Set Project window opens. (Figure 0.6) 2. Browse to the folder on your computer. 3. Click Set .

Setting User Preferences Preferences in Maya are, well, preferences. Everyone prefers to do things in a different way. The reason why Maya is such a powerful program is that it is fully customizable. You can configure the interface to your particular likes and dislikes. My suggestions are what works for me. I will be writing this book with these suggestions in place. To change your settings/preferences: 1. With Maya open, go to [Window > Settings/Preferences > Preferences]. 2. Click on Animation and set the following: a. Default in tangent: choose “linear.” b. Default out tangent: choose “linear” (these settings are best for rigging). 3. Click on Undo and set the following: a. Queue: choose “Infinite” (a must, unless you have a slow computer that crashes often). b. If you have a slow computer: choose “Finite” with a Queue size of 100. 4. Click Save . (Figure 0.7) 8

Introduction

FIGURE 0.7 The Preferences window.

9

ChaptER 1

Skeleton Setup • • • • • • • •

Former Student Spotlight: David Bokser Workflow Introduction Analyzing Motion File Referencing Setting Up Your Work Area Working with Joints Summary

FIGURE 1.1 Power-up! Concept art illustration for Lucy Furr by Sanne Methorst, 2019.

11

An Essential Introduction to Maya Character Rigging

Former Student Spotlight: David Bokser Short films are tough. They always take way longer than expected and always require more work than planned for. No matter how small in scope, a short film is always a large collection of moving parts involving every aspect of CG production – from writing and concept to modeling, animation, lighting, and rendering. The rigger/tech artist is a bit of the unsung hero of the production phase. While modeling, animation, and lighting often get a lot of the love, the tech artist is often the one in the rafters making sure the scaffolding doesn’t fall onto the stage and that the lights turn on. Rigging and Tech Art is primarily about problem solving, not just putting joints into characters and painting skin weights. While working on personal short films and professional productions, the technical skills that I learned by starting with rigging have expanded to almost all other areas of production. I’ve had to write tools to help modelers convert meshes into dynamic hair curves, joint-based muscle systems because the rendering engine didn’t support deformers, and back-end software that allowed artists to automatically check their work for errors as they send their assets through the pipeline. There are a million tiny cracks in CG production that a technical artist can fill throughout the course of their careers. Making short films helps with getting your hands dirty in all of the details of a full CG production. It has helped me find those cracks that I could explore in parts of production that otherwise never held my interest, and it has helped me expand my knowledge and skill sets. If you do decide to make one, my suggestion would be to keep it simple. Don’t try to create an epic with your first film; a 30–60 second short would be great. Try to use it as a learning process instead of “your great contribution to the art world.” You might end up finding a niche that you didn’t expect.

Biography David Bokser graduated from the Savannah College of Art and Design with a BFA in Computer Art and a minor in Animation. His short films have been screened at numerous festivals including the SIGGRAPH Electronic Theater, the Palm Springs International Shorts Festival, and the SCAD Film Festival. He has animated and rigged on commercials for Coca-Cola, Apple, and AMC and has directed commercial and interactive media projects for Nintendo, PopCap, and Ubisoft. His interests are currently in VR experiences. His work can be seen at www.davidbokser.com (Figure 1.2).

Workflow Figures 1.3 and 1.4

Introduction The first character you choose to rig should be simple. Keep it SIMPLE. This rule applies to anything in life. You will encounter many obstacles while 12

Skeleton Setup

FIGURE 1.2 Love in the Time of Advertising 2015, directed by David Bokser.

FIGURE 1.3 Joint Placement Workflow part 1.

13

An Essential Introduction to Maya Character Rigging

FIGURE 1.4 Joint Placement Workflow part 2.

learning, so why complicate the situation, unless, of course, you thrive on challenges and have no problem tackling these obstacles on your own. Generally, however, this leads to frustration and a strong desire to quit. Begin simple, then build on that knowledge with practice and add additional challenges later. 14

Skeleton Setup

FIGURE 1.5 Biped model by Kenna Hornibrook, design by Crissy Peters, and Quadruped model by Ashley Lupariello, design by Alina Morales, 2019.

A biped is a great character for beginning riggers to start with because of the varied problems that will be addressed during the process. It is also one of the easiest of which to gather research since you are bipedal. When you have a question about how something moves, you simply have to study your own physical mechanics. Many of the rigging solutions that are used for a biped can be reused with other types of creatures and props. A quadruped can be easier to rig because you may not have to necessarily worry about IK/FK switching, fingers, or other features that are needed for bipedal motion. It is important to stick to simple and stylized design ideas when learning. The more realistic and detailed the character becomes, the more difficult it is to set up for animation (Figure 1.5).

Analyzing Motion The most important thing you need to remember about rigging is to analyze the character for the motion that will be necessary and create only the controls that are needed for movement. Too many people spend way too much time creating rigging features that are not needed or necessary for a particular character or prop. The best way to go about analyzing the motion for a character is to create or acquire reference video to study. Of course, you then have to already know what action will be needed; otherwise, you have to consider all possible motions that a character can do and create a rig that can do everything, which could be a waste of time. On the flip side, you may miss adding something to a rig that is needed during production. In some cases, you can add these features later to a rig. This is a great example of why preproduction is necessary for whatever project you are working on. The more you plan, 15

An Essential Introduction to Maya Character Rigging

FIGURE 1.6 Still frames from reference video can be used to analyze motion.

FIGURE 1.7 Still frames from reference video can be used to identify pivot points of rotation and movement.

the more you know what you will need, and the less time you will waste in all aspects of production (Figure 1.6).

Identifying Pivot Points and Rotations After you acquire reference video, take a look at the motion of your reference actor. Reference video can be created or found. From this video, you can advance frame by frame and take notes about what is moving and what is staying still. Pay attention to where the pivot locations occur during rotational movements. Notice where the center of gravity is located during the motion (Figure 1.7). Each character or prop will have a center of gravity from which all other parts radiate. This center of gravity becomes the root of our character. We can compartmentalize a character or prop into specific independent rigs that are eventually connected together during the animation process. This way, we can break apart complicated movements into smaller, more manageable sections. Every bipedal human has a center of gravity that usually exists in the pelvic area. From here, we can radiate outwards and list the sections that need to be created. Going up: torso, neck, head, clavicles, arms, and hands. Going down: hips, legs, and feet. It is helpful to begin with a drawing of the character, like the character model sheet, so that you can make notations of where pivot points are located for the necessary rotations. This information becomes extremely helpful when creating the underlying skeleton. A screen-capture of the geometry can also work well for this (Figures 1.8 and 1.9).

16

Skeleton Setup

FIGURE 1.8 Character Model Sheets can be used for initially marking major pivot locations. Character Model Sheet for Persephone by Crissy Peters, 2019.

FIGURE 1.9 Screen captures of the model can be used to mark major pivot locations. Persephone biped model by Kenna Hornibrook, design by Crissy Peters, 2019.

A character modeled in the T-pose is the easiest to rig. As a beginner rigger, it is recommended to only work with characters modeled in a T-pose. The reason for this is because the rigging tools were programmed to assume perpendicular and parallel grid systems. A-pose characters are more difficult and require additional steps.

17

An Essential Introduction to Maya Character Rigging

FIGURE 1.10 Joints are connected visually with a bone.

FIGURE 1.11 The hierarchy of a joint chain as seen in the Hypergraph.

A skeletal structure is the support system for our bodies, and the same type of structure is needed for our digital characters. This structure is built in Maya using joints. Joints are connected visually with bones, but bones do not physically exist as objects in Maya. They are simply a visual connection from one joint to the next. If you select a bone, you are selecting the joint above that bone in the hierarchy (Figure 1.10). As joints are created, each subsequent joint is automatically connected as part of a hierarchy (unless you hit enter, which ends the joint chain). This hierarchical system looks much like your family tree. The main difference is that there are only single parents in the Maya environment. While a joint can have many children, the children, however, can only have one parent. When you create two joints, the first joint is considered the parent, and the second joint is considered the child of that parent. Each additional joint created becomes a child to the preceding joint. A series of connected joints is called a joint chain (Figures 1.11 and 1.12). The hierarchical system is present in Maya in other ways as well, not just with the joint chains. For example, when objects are grouped, the group node that is created becomes the parent of all the objects in that group. 18

Skeleton Setup

FIGURE 1.12 The hierarchy of a joint chain as seen in the Node Editor.

FIGURE 1.13 Human and canine skeletons.

Before creating your joint chains, your character geometry should be as finished as possible. It is unnecessary to complete fine details in the geometry, but the main proportions of the character should be in place before beginning the joint placement process. If modeling with polygons, it is important not to smooth the finished model at this point in the rigging process as this will create extra geometry which will slow down the entire process of rigging and skinning. When placing joints in your character’s geometry, it is important to study the physical shape of the character that you will be rigging. Depending on the type of character design for which you are creating controls, the first place to start would be to research the skeletal structure to ensure proper joint placement. For a biped character, this is a simple process since you are sitting in the best research available, which is your skeleton. If you need to know how something moves or bends, you simply have to look at yourself (Figure 1.13). 19

An Essential Introduction to Maya Character Rigging

FIGURE 1.14 Dragon skeleton illustration by Drew Merritt. Skeletal influences from reptile, bats, and birds are

clearly defined. If the character is a creature or something that may not exist in real life, it sometimes takes multiple existing animal parts to create a skeletal structure that may work for the creature that you are setting up. For example, a dragon is part reptile, bat, and bird, so you may want to study the skeletal structures of all three to create a basis for the dragon (Figure 1.14). When you are placing joints in your character, think about each appendage as an individual joint chain. Create separate chains for each leg, arm, finger, torso, and head. These will all be connected as a single skeletal structure. You can also add chains for other body parts such as ears, tails, or antennae. You can even add joints and joint chains for articles of clothing or props, such as neckties or skirts, for better control when animating.

File Referencing [File > Create Reference…] File Referencing can be found in all menu sets under the File menu. Many times during the production process, the geometry for a character is not finished when it is time to begin the rigging process. Perhaps the textures are not completed or the blend shapes have not been modeled yet. In my classroom, the students have only 15 short weeks to learn how to create a character. Once their character geometry is finished, we begin the rigging process in class, while outside of class they work on retopologizing their character models, UVing, and creating their blend shapes and textures. Because of the overlapping workflow, file referencing is utilized, so that the latest version of the character model can easily be updated in the rig file. 20

Skeleton Setup Creating a “File Reference” does not make the file data part of the current scene. Referencing files only point Maya to a different file by creating a path and saving the path information. When your current scene file is saved, it is not including any data from the referenced file. It just tells Maya where to look when you open the file again. This reference can easily be removed or replaced as you are working. It can even be imported into the scene, so that it eventually does become part of the scene file. File referencing can be used during the creation of assets (we will be using it during rigging and skinning), but it can also be used when animating. If your character model scene file is large (2000 KB), your rig scene files can be very small in size, sometimes under 100 KB, if file referencing is used. This can be helpful if your disk space is limited and you are following the practice of saving versions of your files as you work. Instead of resaving the geometry every time you save, the only thing Maya is saving is the rig information. It is extremely important to always work in a structured and organized way to avoid time-consuming problems later. A project folder should be used to organize your files and create relative paths within your project folder. A relative path points to a folder or file within the project folder. This allows the ability to move a project folder from one computer to another and still maintain a working path structure. Before creating a reference file, be sure to have a project folder created and set your project. Go to [File > Set Project…] and browse to the created project folder. To create a referenced file, open a new scene in Maya and go to [File > Create Reference...□ ] In the option box under “Namespace Options,” make sure there is a checkmark in the box next to “Use Namespaces.” This will ensure that the names of the nodes of the referenced file will not conflict with any that already exist in the current file, which is extremely important when creating a reference for several characters in your animation file. It is good to get in the habit of using namespaces. Maya will use a colon (:) in front of the node name to signify that the node is from another file. The default setting is to use the filename. So, if you are referencing a file named “model.ma” and there is a node called “Left_Arm,” the referenced name will look like “model:Left_ Arm.” If you set “Use selected namespace as parent and add new namespace string:” you can type something inside of the available box instead of using the lengthy name of a file. This also allows you to create references to multiple versions of the same file. It is a good idea to keep your filenames short, otherwise, the namespaces become very confusing (Figure 1.15). Keep filenames short, especially when using a file for file referencing.

Changing the Referenced File [File > Reference Editor] If you make changes to your model and need to replace the referenced file, go to [File > Reference Editor]. A dialog box will appear. Click on the filename to highlight it, then go to [Reference > Replace Reference]. This will open a dialog box that will allow you to browse for a new file, temporarily 21

An Essential Introduction to Maya Character Rigging

FIGURE 1.15 Create Reference can be found under the File menu. The Create Reference options window.

FIGURE 1.16 The reference editor.

remove the reference from your scene, and then reload the new referenced file into the scene. By clicking [Reference > Remove Reference], you can permanently remove the reference from your scene. By clicking [File > Import Objects from Reference], you can permanently import the reference file into your scene. Be sure to delete construction history, once the objects are imported. You can also adjust the path if it is necessary to change an absolute path to a relative one (Figure 1.16). The proper way to start Maya is to set your project before you begin working for the day. You should never double-click directly on a scene file to open Maya, as this will change the relative paths to absolute paths when saving your files. An absolute path looks for the specific computer on which it was created. This will cause problems, especially with larger scene files and in larger productions, when moving a project from one computer to the next, or placing a file onto a renderfarm. 22

Skeleton Setup

FIGURE 1.17 Proper character placement for rigging. Persephone biped model by Kenna Hornibrook, design by Crissy Peters, 2019.

Setting Up Your Work Area Before placing joints, make sure your character is facing front in the front view; in the top view, he should be facing down. This may sound obvious, but it is my experience that some students do not pay attention to the direction their character is facing. The tools in Maya were created with the assumption that the character is facing forward in the front view, in other words, toward the positive Z-axis in three-dimensional space. If for some reason, your character is not facing forward in the front view panel, you will need to rotate the geometry. You will need to make a group of your geometry if your character is made up of multiple pieces of geometry before being able to rotate them together. This should be done in the model file, not in the rig file, when the geometry is file referenced. Remember, all changes to the geometry should be done in the model file. If you are working on a team, you should communicate this with the modeler (Figure 1.17). The scale of your character is another important consideration. One square on the Maya grid is 1 cm by default. I have had students model their entire character to fit inside a single 1 cm grid square. Many of the tools used in Maya are based on mathematical calculations. The problem with keeping your character so small is that these tools must calculate results using fractions in the thousandths or smaller. This creates a greater margin for error. My general rule is to keep the character arm span the width of the entire grid in the perspective window, at a minimum. If, for some reason, your character does not have an arm span that is the width of the perspective window grid, you will need to scale the geometry. Again, you will need to make a group of your geometry if your character is made up of multiple pieces of geometry 23

An Essential Introduction to Maya Character Rigging

FIGURE 1.18 The image of the character on the left looks similar in scale to the image of the character on the right. However, on a closer look, the character on the left is the scale of the image in the middle. Make sure that your character is not too small, as it will cause problems with some tools and when rigging and animating. Persephone biped model by Kenna Hornibrook, design by Crissy Peters, 2019.

before being able to scale them together. (If you had to group them for rotational purposes, you can scale the same group, another group is not necessary.) Again, this should be done in the model file. It is important to note that once skeletal placement and rigging begins, any changes to the scale of the character should happen after the rigging is completed. A good rig is scalable and allows a character to be scaled to match the environment in which it will exist. It is also a good idea to freeze transformations on all geometry or groups in your model scene file at this point (Figure 1.18). It is a good idea to delete the construction history on your geometry before you place any joints or bring in your model file as a reference, if you are still working on the geometry. This will ensure that the geometry is free of extra and unnecessary information that slows the scene file down. Once the geometry construction history has been deleted, open your Outliner or Hypergraph, and take the time to label everything in your scene file. You can also group body geometry if you have multiple pieces. Keeping your scene file organized and clean always saves time later. DO NOT parent geometry pieces to other geometry pieces unless you have done so to create the blend shapes for the face, which I do not recommend because it creates some irritating problems that make it difficult to achieve desirable results. Parenting geometry pieces to other geometry pieces causes double transformations after the skinning process. Remember that when your character is facing you, his left side is your right side. This is important so that as you label all of your joints, you label the left and right sides correctly. Make sure to label all joints as this will make an organized and clean workflow and save time later. As you work, save versions of your work and save often. When using a tool in Maya, always open the Option Box and reset the tool when using it for the first time that day. This ensures that the tool is working appropriately and is not based on the tool settings when it was last used. 24

Skeleton Setup

FIGURE 1.19 Shading set to X-Ray. Persephone biped model by Kenna Hornibrook, design by Crissy Peters, 2019.

It is a good idea to place the geometry for your character on a display layer. Set the layer to reference, so that you are unable to select the geometry by mistake when working. Again, this should be done in the model file. I recommend working with shading options set to X-Ray so that you can still see your geometry volume. This is a personal preference, as others like working in wireframe (Figure 1.19). • • •

• • •

The model should be constructed of quadrilateral polygons with good edge flow. Avoid non-manifold geometry, T-intersections, n-gons, concave polygons, double vertices, back-facing polygons, and hidden polygons. Character faces should be built with concentric edge flow around the eyes and mouth. The character should be in the classic T-pose, ready for rigging. The arms should be aligned with the X-axis. The feet should be toes forward with feet apart. Arms should be modeled palms down with fingers spread.

Below is a quick checklist that can be used on the model file to prepare it for rigging (before you create a File Reference). Remember, once you hand your model off to someone else or reference in your file to begin rigging, do not freeze transformations or scale the model. Model file checklist: •

Delete construction history on the geometry (with the geometry selected, go to [Edit > Delete by type > History]). 25

An Essential Introduction to Maya Character Rigging

FIGURE 1.20 Optimize Scene Size Options.





• • • • •

• •

Run [Mesh > Cleanup…] (operation: select matching polygons: faces with more than 4 sides; Lamina faces; non-manifold geometry: geometry only). Fix any problems selected; delete construction history again; repeat and continue until problems solved. Sometimes you must change the operation to Cleanup matching polygons to remove all problems. Make sure your Normals face outward (conform if necessary, then reverse). Delete construction history again on the geometry. With the geometry selected, go to [Edit > Delete by type > History]. Clean your OUTLINER – delete any unnecessary or extra nodes. Rename all nodes remaining in the OUTLINER so that the nodes make sense. Freeze transformations on your geometry to return Translations and Rotations to 0 and Scale to 1. With the geometry selected, go to [Modify>Freeze Transformation]. Optimize scene size. Go to [File> Optimize Scene Size □] box, CHECK everything and click Optimize  Be sure that there is only one node remaining in the OUTLINER. Select all the geometry, [ctrl+g] to group them, and rename the group (Figure 1.20).

Working with Joints The Joint Tool [Skeleton > Create Joints] The Joint Tool can be found in the Animation menu set (F4) under the Skeleton menu. The joint tool allows you to create joints by clicking on a grid. For this reason, you should always use the orthographic view panel (front, side, or top) when 26

Skeleton Setup

FIGURE 1.21 The long bone radius changes the size of the joint based on the distance it is from the following joint. Changing the long bone radius to 0.5 will prevent this.

placing your joints. You can create a joint by moving your mouse cursor where you would like to position the joint and clicking with the LMB (left mouse button). A single joint appears as a circle with a crosshair in the center. A new joint is created every time you click the mouse. Subsequent joints are connected with bones, which look like a triangle with a line down the center pointing toward the new joint. To complete a chain of joints, simply hit the (enter or return) key on your keyboard. If you would like to create another chain, select the joint tool again by pressing the (y) key. Remember, a bone does not exist in Maya. It is simply a visual connection of one joint to the next. You will notice that the closer you click the joints to each other, the smaller the joints appear. The further away the joints are from each other, the larger the joints appear. This can cause visual clutter in your scene file. This setting can be changed by opening the OPTION BOX on the tool and changing the long bone radius to 0.5000. By changing the long bone radius to equal the short bone radius, all of the joints will be created as the same display size (Figure 1.21).

Display Size [Display > Animation > Joint Size…] Display Size can be found in all menu sets under the Display menu. As you are drawing your joints, you might notice that they are small or large compared to the size of your character model. You can change the display size of the joints to see what you are doing more clearly. First, you may want to click out a few joints in one of the orthographic view panels. Then after opening in the joint display scale window, you can enter any numeric value or use the adjustable slider to interactively change the size of the joints. 27

An Essential Introduction to Maya Character Rigging

FIGURE 1.22 Display > Animation > Joint Size.

FIGURE 1.23 The Cartesian coordinate system and its point of origin.

Adjusting the display size of the joint will not affect how the joint works. You will notice that the position of the center point of the joint does not change regardless of the display size (Figure 1.22).

Local Rotational Axes To understand the local rotation axis, it is important to understand the 3D coordinate system and the differences between world space, object space, and local space. It is time to think back to math class when you were first introduced to the Cartesian coordinate system. In the Cartesian coordinate system, there are three intersecting perpendicular lines called axes. A point in the coordinate system is defined by three real numbers (an infinite decimal representation) and each number reveals the position of the point on each axis, X, Y, and Z. The point of their intersection is referred to as the origin, and it is at the position of 0 0 0. In Maya, we use a right-handed Cartesian coordinate system, where the X-axis points left to right on your screen, the Y-axis points up and down, and the Z-axis points forward and backward. This coordinate system is considered world space (Figure 1.23). If you create an object in Maya, such as a sphere, it is placed in world space at the origin. Imagine the XYZ axes lines sticking to the sphere (Figure 1.24). 28

Skeleton Setup

FIGURE 1.24 A sphere that has been created at the origin and is in World space.

FIGURE 1.25 A sphere (left) that has been moved from the origin and rotated with its parent shows a different coordinate system called Object space. The same sphere (right) showing Parent space.

Now imagine the sphere is moved away from the world space origin and rotated. The XYZ axes of the object (sphere) would be pointing in a different direction and no longer aligning with the world. This coordinate system is referred to as object space. The origin is at the object’s pivot point (currently at the center of the sphere), and its axes are rotated with the object. The origin can be moved by using the move pivot mode (select the move tool (w) and then press the (insert) or (d) key). Object space changes for each object in Maya, based on its rotation and translation values. If the object’s transformations are frozen, the axes will return to align with world space, but the origin remains where it is currently located, still in object space. If an object is the child of another and its parent is transformed, the object uses the origin and axes of its parent for its position in parent space. This is especially important for translation values, as you can move an object based on its object, parent, or world space, and it is particularly noticeable if the object has been rotated separately from its parent (Figure 1.25). The local rotation axis is a separate coordinate system for joints. The local rotation axis of a joint is determined by the position of its child. If a joint does 29

An Essential Introduction to Maya Character Rigging

FIGURE 1.26 Local rotation axis set to XYZ on a vertical joint chain, where the axis does not line up from one joint to the next.

not have a child, its local rotation axis aligns with world space. If a joint has a child, by default its X-axis points toward that child and the Y-axis will point upward (or as close to up as it can, based on its relationship to the X-axis). We do have to be concerned when the joint chain is vertical or semi-vertical because the X-axis points toward up or down (depending on the direction of the children), therefore the Y-axis cannot point up at the same time. Maya will arbitrarily point the Y in any direction, and the joint chain does not have the same local rotation axis throughout (Figure 1.26). When do you worry about the local rotation axis? To ensure that joints rotate uniformly and predictably when using IK (inverse kinematics, will be covered in Chapter 2), any joint chain created should be oriented properly for IK. This means that the X-axis should be pointing toward the child joint, and the Y and Z-axes are the same throughout the chain. This ensures that the IK tools will work as the creators defined them (Figure 1.27). However, to ensure that joints rotate correctly using FK, (forward kinematics, will also be covered in Chapter 2) the joint orientation must align closely to world space. For the arms, we can achieve this alignment when drawing out the joints, but for the spine, neck, and head, we will run into trouble (and for the ankles and feet, but we will not be setting up FK in the legs for this rig). It is impossible to have the X and Y-axes pointing in the same direction. This means that the Y-axis should be pointing toward the child (up in the spine), and the Z-axis should be pointing forward. To solve this problem, we create multiple joint chains for the different types of control systems needed and switch between the two. We must reorient the FK chain to match world axis (Figure 1.28). 30

Skeleton Setup

FIGURE 1.27 A spine chain prepared for Inverse Kinematic control.

FIGURE 1.28 A spine chain prepared for Forward Kinematic control.

The last joint of any chain will not rotate; therefore, the local rotation axis position does not matter for that joint. Placing joints with the default orientation set to primary axis X, secondary axis Y, and secondary axis world orientation to Y + will always ensure the X-axis points toward the child joint, but the direction of the Y-axis depends on the direction of the child joint, especially in vertical or semi-vertical chains. If the X-axis is going up or down, then the Y-axis is unable to do so as well. This confuses Maya, and it is not sure which direction to place the Y. Sometimes the Y-axis will be flipped in different directions. You will need 31

An Essential Introduction to Maya Character Rigging to ensure that they are all pointing in the same direction so that the joints are aligned. To solve this unpredictable behavior, change the tool settings whenever creating vertical joint chains so that the joints are created with the primary axis orientation as X and secondary axis orientation is Z. Secondary Axis World Orientation would also be Z +. (You could also reorient the joints after positioning them.) Use this handy guide to help you choose the proper settings when drawing joint chains: Joint chains that will be controlled by IK: draw on the:

Primary Axis

Secondary Axis / Secondary Axis World Orientation

X-axis (horizontal: left to right)

X

Y or Z

Y-axis (vertical)

X

Z

Z-axis (horizontal: front to back)

X

Y

Joint chains that will be controlled by FK (Figure 1.29): draw on the:

Primary Axis

Secondary Axis / Secondary Axis World Orientation

X-axis (horizontal: left to right)

X

Y or Z

Y-axis (vertical)

Y

X or Z

Z-axis (horizontal: front to back)

Z

X or Y

FIGURE 1.29 Joint Tool Options set for vertical IK chain creation.

32

Skeleton Setup

FIGURE 1.30 Display the Local Rotation Axes in Component Mode by right-mouse clicking over the question mark. Be sure to select the root of the joint hierarchy before switching to Component Mode (F8) to display the Local Rotation Axes for that hierarchy.

There are two ways to check the directions of the local rotation axes in your character’s joints: 1. Component mode: press (F8) to change to component mode or click on the component mode button. In the selection mask toolbar, place your cursor over the “?” button, RMB (right mouse button) click and hold, then select Local Rotation Axes from the pop-up menu that appears. In the perspective view panel, select the root of the chain you would like to display. Every joint in the selected hierarchy will display its local rotation axis (Figure 1.30). 2. Object mode: select the joints you would like to display then go to [Display > Transform Display > Local Rotation Axes]. I do not recommend displaying the LRA this way for beginners. It can be frustrating because to hide them again you have to reselect the same joints and repeat the command. Any joints you accidentally add to this selection will display the LRA when the others are hidden. This can become what seems to be a never-ending cycle of frustration.

Placing Joints The joint transforms around the position of its center point. It is important to make sure that the joint is positioned in the exact place to control your character appropriately. As you begin to place joints, you may find that you have misplaced them in the process. You can [Edit > Undo] or press (z) and continue to recreate joints. While placing joints, you can click and hold the LMB (left mouse button), then drag the joint into the correct position.

Repositioning Joints Once you place joints in one of the orthographic views, such as the side, front, or top, it is important to look at the perspective view panel to ensure correct and proper placement in 3D space. You may notice that the joints are not in the proper place and need to be repositioned. Repositioning the joints can be done by using the move, rotate, or scale tools.

Moving Joints (also Known as – Translating Joints) The move tool – keyboard shortcut (w) – will move the selected joint and any joints below it in the hierarchy. If the selected joint is the first chain in the 33

An Essential Introduction to Maya Character Rigging

FIGURE 1.31 Moving a joint into place will also move any joints below it in the hierarchy (left), unless the move pivot mode is toggled on by pressing the Insert key (right).

hierarchy, then the entire chain will move. To move an individual joint, you must first select the move tool by pressing (w) and then press the (insert) key to toggle into the move pivot mode. The move pivot mode will allow you to move only the selected joint (Figure 1.31). If you use the move tool to move joints into position, the local rotation axis of the translated joint stays at the orientation in which it was created. This means that it will no longer be aligned with the child joint. If you must move a joint, make sure to reorient the joints.

Rotating and Scaling Joints The rotate tool – keyboard shortcut (e) – and the scale tool – keyboard shortcut (r) – can be used to rotate or scale a joint into place. If a joint is rotated or scaled, you MUST freeze transformations on the joint to reset rotation values back to zero and scale values back to one. To do this, select the top joint of the hierarchy and go to [Modify > Freeze Transformations] (Figure 1.32). Translate values will not freeze on joints. There will always be a value in one or all translation channels for a joint. Maya must have translation 34

Skeleton Setup

FIGURE 1.32 Rotating or scaling joints into place requires the Freeze Transformation command to reset the values to Rotate: 0 and Scale: 1. Joints always retain translation information.

FIGURE 1.33 Warning signs for non-zero rotations appear during the reorientation process if the joint’s transformations have not been frozen.

values for a joint so that it knows where that joint is located in world space or in relation to its parent joint.

Reorienting Joints [Skeleton > Orient Joint □ ] After you have finished placing your joints, I recommend displaying your local rotational axes and reorienting them if necessary. There will be special circumstances (such as the thumb joints) that will require rotating the local rotational axis into position. Also, if you used the move tool to reposition the joints into place, the local rotational axis of the translated joint is no longer aligned with its child. If you must move a joint, make sure to reorient them. It is not necessary to reorient a joint if the entire joint chain was moved. Remember, if you rotated a joint into place, you must first freeze transformation [Modify > Freeze Transformations] on that joint before you reorient. Omitting this step will result in an error message during some commands “Warning: Cannot perform joint orientation,” and sometimes the joint will be skipped when trying to reorient (Figure 1.33). To reorient a joint or joint chain, select the joint in object mode OR select the axis in component mode and go to [Skeleton > Orient Joint □]. UNCHECK □ Hierarchy to orient only one joint, or CHECK Hierarchy to orient that joint and ALL child joints (this option only affects the entire hierarchy in object mode; in component mode, you must shift-select each joint axis that needs to be reoriented). Choose the orient joint 35

An Essential Introduction to Maya Character Rigging

FIGURE 1.34 Orient joint OPTION BOX.

FIGURE 1.35 Manual rotation of a joint’s Local Rotation Axis is possible for fine-tuning joint rotation.

options and then choose the second axis orientation. Click Apply . If you are in component mode, make sure to press (F8) to change back to object mode or click on the component mode button in the Status Line (Figure 1.34). If necessary, you can manually rotate the local rotational axis into position when you are in component mode. Select the desired axis with the rotate tool by pressing the (e) and adjust in place. When finished, press (F8) to change back to object mode or click on the component mode button (Figure 1.35). You can also change the rotational axis by MEL (Maya Embedded Language) command. In component mode, select the desired axis and enter in the Command Line the following command (change the numbers and axis as necessary) 36

Skeleton Setup

FIGURE 1.36 A MEL command can be used for precise rotation of the axis.

rotate -r -os 0 180 0 (these particular values will rotate the axis exactly 180 degrees in Y) where -r stands for relative, -os stands for object space, and 0 180 0 are the values of X Y Z coordinates. Press (enter or return) (Figure 1.36).

Mirroring Joints [Skeleton > Mirror Joint □] To save some time with joint placement, you can mirror joints from one side to the other. The Maya rigging tools are created in a way that the defaults assume that you are building the character’s left side and mirroring to the character’s right. This is the best route for making sure that the rig is created as easily as possible. The default settings on the Mirror Joint options are set to mirror across the XY axis, which means that the actual Mirror happens on the Z-axis. This can be slightly confusing at first. An easier way to think about the direction is to establish a line on the missing axis (X in this case) and that is the direction of your mirrored skeleton. Another way is to imagine a flat plane created by the stated axis YZ – up and down PLUS front to back (hey … imagine a mirror … like a full-length one that you have on your wall). The mirrored skeleton is the reflection on that axis (or in that mirror). When we choose the Mirror Function behavior, mirroring your joints with “behavior” allows for the animator to choose both elbows and rotate them simultaneously in the same direction. This usually means that the X-axis is rotated 180 degrees, pointing away from the child joint. Mirroring your joints with orientation keeps the X-axis pointing toward the child joint. Either will give you the results needed, but behavior seems to be most popular with animators because it speeds up the posing process when animating in FK. My recommendation is to always work on the left side of the character’s body, then mirror to the right. If any changes need to be made, simply delete the right side, change the left, and re-mirror (Figure 1.37).

Additional Thoughts about Joint Placement There are two ways to tackle this part of the process. One way, which is the way this book has been written, is to place joints in each area of the body (spine, head, neck, legs, arms, and hands), and then create the control system for those joints, treating each area as a mini-rig which will then be combined with all parts of the body to function as a whole. I find that when learning this process, it is helpful to break the body into individual areas. The other way 37

An Essential Introduction to Maya Character Rigging

FIGURE 1.37 Establishing the mirror direction as a reflection. Mirroring on the XY (left), mirroring on the YZ (middle), and mirroring on the XZ (right). A simple way to remember this is: whatever axis is missing from the mirror direction is the direction that the mirror will occur. Mirroring with the YZ option will mirror joints on the X-axis. Lucy Furr biped model by Ashley Lupariello, design by Alina Morales, 2019.

to approach joint placement is to place all joints inside your character, then bind the skin (See Chapter 12 for this process). Doing this allows you to see any inherent problems with the model before continuing in the rig control setup. This may be the way you choose to work, once you are familiar with the rigging process. In the next chapter, we will be taking a look at various techniques to create a control system for the joints in a character’s skeleton.

Summary 1.1 1.2 1.3 1.4

1.5

1.6

1.7 1.8

38

A skeletal structure is built in Maya using joint hierarchies. Bones are visual connections from one joint to the next but do not physically exist in the Maya scene file. The main proportions of the character geometry should be in place before beginning the skeletal structure. If a character is made of polygons, it is important not to smooth the geometry at this point, as it adds unnecessary problems later in the skinning process. A character’s skeletal structure should be based on reality. Research is crucial for proper motion. Sometimes it is necessary to combine skeletal structures from multiple animals to create a skeleton that works for your character. Each appendage should be considered as a separate control system, so separate joint chains should be created for each leg, arm, finger, torso, head, ears, or tails. File referencing is a tool that can be used to expedite workflow. File referencing provides the ability to overlap areas of the production pipeline. Files that are referenced into another scene file are not physically part of the current scene. Instead, a path is made that points to the referenced scene file so that Maya can display it.

Skeleton Setup 1.9 When using file referencing, make sure to utilize the name clash options so that multiple nodes with the same name are not confused. 1.10 Files that are referenced can be removed, replaced, or even imported into the current scene file. 1.11 Remember that when your character is facing you, his left side is your right side. This is important so that you label the left and right sides correctly. 1.12 Make sure to always open the tool OPTION BOX to reset the tool before using it for the first time every day. 1.13 Geometry should be placed on a layer so that it can be referenced. This makes it more difficult to accidentally select the geometry, making it easier to work with joints. 1.14 Using X-Ray in the shading options of each view panel provides the ability to see through your geometry. 1.15 Joints can only be created on a grid, and, for this reason, joints should be placed only in orthographic view panels. 1.16 Joints can be displayed at different sizes without affecting their functionality. 1.17 Maya uses a right-handed Cartesian coordinate system to define the position of objects in world space, where the X-axis points left to right, the Y-axis points up and down, and the Z-axis points forward and backward. 1.18 Object space is a coordinate system based on the translation and rotation of a particular object. Each object exists in its own object space. 1.19 Local space is a coordinate system that determines an object’s position based on its position and how it relates to the position of its parent. 1.20 Local rotation axis is a separate coordinate system that applies to joints. The local rotation axis of a joint is determined by the position of its child. 1.21 The default setting of the local rotation axis is XYZ, where X points to the child joint, and Y points in an upward direction. 1.22 The local rotation axis for joints being controlled by an IK chain must have X pointing toward the child. 1.23 The local rotation axis for joints being controlled by FK must have the local rotation axis matching closely to world space. 1.24 You can display the local rotational axes in object mode or component mode. 1.25 If a mistake is made when positioning joints, simply undo the mistake and continue with the placement. 1.26 Joints can be moved, rotated, or scaled into place. If rotated or scaled, joint transformations must be frozen. If moved, joint orientation must be reoriented. 1.27 A warning sign is displayed when reorienting if a joint’s rotations are not frozen at zero. 39

An Essential Introduction to Maya Character Rigging 1.28 Manual rotation of the local rotational axis must sometimes occur. This can be accomplished in component mode using the rotate tool. 1.29 The following MEL command can be used for precise rotations of the local rotation axis: rotate -r -os X Y Z (where X Y Z numerical values are plugged in, i.e., 0 180 0) 1.30 Mirroring joints can help speed up your workflow.

40

ChaptER 2

Control Rig Setup • • • • • • •

Former Student Spotlight: Ryan Yokley Workflow Introduction Kinematics Attribute Control Combining Curves Summary

FIGURE 2.1 Persephone and Lucy Control Rig Biped model by Kenna Hornibrook, design by Crissy Peters, and Quadruped model by Ashley Lupariello, design by Alina Morales, 2019.

41

An Essential Introduction to Maya Character Rigging

Former Student Spotlight: Ryan Yokley In 2005 I finished my graduate degree in animation and headed out into the workforce. I was an animator and quasi technical artist for nearly ten years and became a lead animator in charge of a small team. After being a lead for a short while, I eventually succumbed to the siren call of process and moved into an organizational role in the art department. In my time across these multiple roles, I’ve learned a few things about the process of creating art in the game industry and I’d like to share one that I think is important to career success and, frankly, the sanity of any artist in a production environment – planning. Oh good. Planning – everyone’s favorite topic. We all love process, right? Yeah, not really, that’s why producers are a rare bunch. But there are few things as important as planning in game development, particularly as teams expand. Not having a plan in place can generate lots of confusion about expectations, especially on large projects with hundreds of features and requirements. Not knowing what to work on or when to work on it can cause unnecessary log jams. An informed plan creates predictability, which means less crunch and less stress. Games are also interactive media, and creating them is an interactive process. Not every feature is just going to work the first time it goes into the game, so a plan needs flexibility to support the changes inherent in the process. So how do you make an informed plan? In my definition, an informed plan takes into account three things: defining the need, understanding your capacity, and accounting for the unknown. The first thing you need to do is define the need. This means understanding the requirements of an asset or feature, and this is often, even early on, where things start to go sideways in my experience. Let’s say we want to introduce a new feature in our fantasy action game: the main character can now ride a horse. What are the requirements for a horse-riding feature in our game? Does that mean a new set of animations for the characters? What can the horse do? Do the horses change their gait and speed? Are there different sizes of horse? Can they interact in combat? Design will usually come to the table with a list of needs, but it is critical for the art team to dig into that design and really examine it for the requirements that will generate effort for them; otherwise there could be a lot of surprise work coming down the pipe. Ask questions. Find the needs. Once you understand what has to get done, you need to understand your capacity to do it – the team needs to know how much work it can do. That means you as an artist need to learn how long it takes to deliver things. Every asset is a little different, but if you’re an animator, it is important for you to have an overall sense of how long it takes to make a typical movement set in the context of your game. In our example, the animator estimates it will take about five days to create the move set for that new horse feature as defined in our plan. If everyone has a general sense of his or her own capacity, it is much easier to generate an informed strategy of how long something is going to take to deliver. 42

Control Rig Setup Lastly, you need to account for the unknown – it is important when making a plan to leave room for the inefficiencies of game development and the randomness of life. If we think that first horse is going to take twelve days to make, are we accounting for that Friday team meeting, that group lunch that’s going to take more than the usual hour, or the fact that the technical artist is taking Thursday off? My advice in general is to not sweat the specifics unless there’s something major affecting your team’s delivery. If the animator is going to be out of town on vacation for two weeks of your four-week development timeline, maybe a new fully animated character in this release is an unreasonable goal, but usually a blanket increase to account for the unknown is close enough for me (that buffer is typically 25%–30%). Whatever you do, for goodness sake, don’t assume you are 100% efficient. That is fantasy and will almost certainly lead to crunch time. So, you’ve got a plan for the next release. The goals are defined as clearly as possible; the team has an idea of how long it is going to take and you have a game plan for how you’re going to deliver it on time. Now comes the real test. It is time to execute. Here’s the rub. The thing that you have to learn to accept. It is a great truth that every young project planner learns to live with: your plan isn’t going to be right. And that’s okay! An informed plan is almost always going to at least be in the ballpark, and that’s where we want to be. Over time, a seasoned team is going to be better at defining their requirements, understanding their capacity, and adjusting for the unknown. It is not something you nail out of the starting gate. Also accept that sometimes requirements might change. Turns out, the initial tests of the horse feature show that we need to add three more animations and a rig change that weren’t accounted for. Design isn’t perfect either and they might need to change things to make the game feel right. That’s game development. Sometimes it is messy. There are methodologies, like agile and kanban, that teams can put into place to help protect them from too much rapid change, but having a positive and practical attitude when dealing with pivots and design changes will help lower everyone’s stress levels. I know I wasn’t very prescriptive here, and it wasn’t entirely for the sake of being concise. Every team I’ve worked for has operated with its own special style, estimated a little differently, and communicated requirements across disciplines in unique ways. It is a growth process, and I can’t tell you exactly how it is done. But if you can construct a plan that clearly defines requirements, learn your own capacity and account for mystery as well as accept that change is going to happen in any plan, you’re on your way to a much smoother development process.

Biography Ryan has been involved in art creation in the game industry since 2005, contributing to games like The Sims, Disney/Pixar’s Cars, NERF N: Strike Elite, Star Wars: Galaxy of Heroes, and many others – on every system from PS2 43

An Essential Introduction to Maya Character Rigging to PC to mobile. During his stint in the industry, he has been an animator, a rigger, technical artist, and producer and is currently a development director at Electronic Arts. He received his Bachelor’s degree in Studio Art with a focus in Graphic Design and a minor in Computer Science from Florida State University and an MFA in Animation from Savannah College of Art and Design.

Workflow Figures 2.2 and 2.3

Introduction A skeletal structure inside of the character is the foundation for building the control system needed to make the animation process easier. Setting a keyframe directly on joints while animating can be cumbersome, making productive animation both difficult and time-consuming. Maya has a series of tools that can be used to build this customizable control system, also known as a “rig.” The goal of a good character rig is to give animators simplified, intuitive control over their character’s skeleton, so that the character can be posed and animated easily. This chapter will introduce several approaches and discuss how they are commonly used to create the character rig. It is important to remember that the approaches shown in this book are not the only way to create a rig. My goal is to give you a variety of approaches that can be adapted for different needs. Before you can explore more advanced control systems, I hope to provide a good foundation necessary for a more complex rig later. Before we can create controls, however, there needs to be a basic understanding of how things work during the animation process. Animation, by definition, is the ability to make something appear alive through movement. Movement can be created by calculating a change from one position in space to another, using translate, rotate, and scale. Joints are usually rotated to achieve a natural motion when animating a skeleton. When a hierarchy exists, such as with a joint chain, these rotations must be calculated not only for the joint rotated but for the rest of the hierarchy as well. There are two methods for calculating the positions of the hierarchy during animation – forward kinematics or inverse kinematics. Each method affects the hierarchy differently.

Kinematics In a nutshell, kinematics is the study of motion. More specifically, it is the section of physics that deals with motion without any application of force and mass. Kinematics is not only movement but the consideration of how things move. In animation, there are two kinematical systems in place – forward kinematics and inverse kinematics.

44

Control Rig Setup

FIGURE 2.2 Control Rig Workflow part 1.

45

An Essential Introduction to Maya Character Rigging

FIGURE 2.3 Control Rig Workflow part 2.

46

Control Rig Setup Forward Kinematics Forward kinematics, or FK, is a method where a hierarchy of joints (or objects) is rotated one at a time to create a pose. A key is then set on the rotation channels for each joint (or object). The position of a joint in the hierarchy is calculated based on the positions of each and every joint above. For example, in order to position the wrist, the animator must first consider the position of the torso, the shoulder, and the elbow (from the top of the hierarchy down, in a forward direction). If a character’s arm is moving, the wrist is affected by the elbow, which is affected by the shoulder. Any movement in the character’s spine would also affect the position of the entire arm (Figure 2.4). One of the biggest challenges for FK is that it is pretty much impossible to fix a joint in space (also known as stickiness), as any movement above that joint in the hierarchy would move the joint out of place. Because it is difficult to select joints when animating, a control system is created to make the selection easier. A NURBS curve is usually used, and the curve is used to control the joint. There are several tools available (discussed later in this chapter) that allow the curve to control the joint. The best way that I have come across, however, is to use a MEL command to parent the shape of a NURBS curve to the transform node of a joint. (I first heard of this during Jason Schliefer’s Maya Masterclasses on Animator Friendly Rigging, but I have done some research and found multiple sources for this approach, so I am not actually sure where this idea originated. Check out his DVD series available on Autodesk’s website, a great step after understanding this book!) This MEL script actually makes the NURBS curve the shape node of the joint (joints do not have shape

FIGURE 2.4 Rotating the spine from one pose (left image) to another (right image) with an FK arm repositions the entire arm. Viktor model by Marchand Venter, 2016.

47

An Essential Introduction to Maya Character Rigging nodes associated with them, so we have the ability to assign one with the MEL command). The MEL command is as follows: parent -add -shape nurbsCircleShape1 joint1; where nurbsCircleShape1 is the name of the NURBS curve and joint1 is the name of the joint.

Inverse Kinematics Inverse kinematics, or IK, is a mathematical system that calculates the rotations of a joint chain from the identified start joint all the way to the established end joint of the chain. An IK handle is created at the end of the chain that allows the animator to position the location of the end of a limb. Because of this, IK is a more intuitive way of positioning a character, much like a digital puppet. Once the handle is positioned, the calculations then occur to position the rest of the chain based on the location of the end joint, all the way back up to the start joint (from the bottom of the hierarchy up, or in an inverse direction). IK enables a character the ability to plant its feet on the ground and remain there when moving the body. This is commonly referred to as stickiness, which is very difficult to achieve using FK. When animating, IK is used when stickiness is needed or when movement is driven from the bottom of the limb; that is, feet planted on the ground (feet stick because of the IK solver in the legs and feet), character pushing against something (hands stick because of the IK solver in the arms and hand), a character throwing a ball (a wristdriven motion with IK in the arms), or anytime a character interacts with an object (Figure 2.5). Because IK solvers have a tendency to break, or stop solving, while animating, IK handles should never be keyframed directly. Always control IK handles indirectly with a control system. The single chain (SC) or rotate plane (RP)

FIGURE 2.5 IK in the legs and feet provide the ability to keep the feet planted on the ground when moving the torso down. Viktor model by Marchand Venter, 2016.

48

Control Rig Setup solvers can be controlled by constraining or parenting the IK handle to an object, such as a group node, locator, or a NURBS curve. The Spline IK curve can be controlled using deformers, such as joints or clusters, which can also be parented to a NURBS controller. These approaches will be explored during the assignment chapters. When creating IK handles, Maya automatically creates an IK/FK blend system, which allows you to switch back and forth between IK and FK while animating. This built-in blend system is not 100% reliable and sometimes causes awkward flipping of the joint chain during the blend. We will not be covering the built-in system in this edition. Instead, we will look at building a three joint chain blend, which is a much more traditional and reliable way of switching between IK and FK (Figure 2.6). Usually, a series of IK chains are used through a single joint hierarchy in order to create the control necessary for a limb. For example, a single IK chain from the hip to the toe would not work for the control needed in the leg and foot. The toes, the ankle, and the leg need to be able to move independently from each other. In order to accomplish this, three separate IK chains need to be created and then parented into a hierarchy for maximum control. The most commonly used IK solvers in Maya for biped setup are the SC solver, the RP solver, and the Spline IK solver. It is important to understand the differences as well as when and why to use each solver. The SC and the RP solvers are similar in that they both calculate the rotations of all of the joints in an IK chain. The major difference is that the RP solver includes additional control for the ability to change the orientation of the joint chain from the start joint. To demonstrate the difference, imitate the pictures below. Hold your arm out straight and parallel to the floor (the beginning joint chain). Bend your elbow so that your wrist moves toward your shoulder, keeping your elbow parallel to the floor (this demonstrates the rotations of the joint chain for both SC and RP solvers). Now rotate your shoulder and bring your elbow down (this demonstrates the change in the orientation of the joint chain for the RP solver by rotating the plane from the shoulder – the start joint of the chain). The SC solver is usually used in the hands and feet, while the RP solver is usually used in the arms and legs (Figure 2.7).

FIGURE 2.6 A “three joint chains” blend. The image on the left is the inverse kinematics (IK) control, the image in the middle is the mid-blend position, and the image on the right is the forward kinematics (FK) control. The geometry is controlled by the third joint chain, which blends between the IK and the FK control arms. Viktor model by Marchand Venter, 2016.

49

An Essential Introduction to Maya Character Rigging

FIGURE 2.7 The character’s right leg (your left) has a single chain (SC) solver running through the joint chain. The character’s left leg (your right) has a rotate plane (RP) solver, which provides the additional ability to rotate the leg from the hip joint. Viktor model by Marchand Venter, 2016.

Make sure to set preferred angles in joints where you are running Single Chain or Rotate Plane IK. A preferred angle tells Maya which direction the joint should bend when an IK solver runs through it. If you do not, when you move the IK handle, the joint will bend in the wrong direction or not bend at all. To set a preferred angle, select the joint in the center of the chain (such as an elbow or knee), rotate the joint in the direction it should bend, choose the joint ABOVE that joint in the hierarchy, then go to [Skeleton > Set Preferred Angle]. You can then return the rotated joint back to zero by clicking on it and typing 0 in the rotation channels of the CHANNEL BOX. The Spline IK solver is a completely different solver than the RP or SC. The Spline IK handle does NOT directly control the position of the chain. Instead, a NURBS spline curve runs through the identified joint chain. By moving the curve, or control vertices (CVs) on the curve, the solver then positions the joints based on the new shape or position of the curve. This solver has been used for long joint chains, such as those needed in the neck, spine, tail, and many prop rigs. There is, however, an inherent problem with the Spline IK. The Spline IK causes the joint chain to flip during extreme rotations, usually past 180°. This flipping is usually unavoidable (Figure 2.8). Because of this, if the object or character is expected to rotate more than 180°, my preferred method for rigging is using a technique called the Ribbon method. Most commonly referred to as the Ribbon Spine because it was developed to use as a spine control, this method can be used to control anything that would normally be controlled using a Spline IK. This technique is a bit more complex than the Spline IK and uses hair system follicles to help calculate the rotations of the joints in lieu of a mathematical solver found in

50

Control Rig Setup

FIGURE 2.8 The character’s spine controlled by an IK spline solver. Farmer Glorp model by Bryan Colvin and Timothy Keebler, 2015.

FIGURE 2.9 The character’s spine controlled by the Ribbon method. Viktor model by Marchand Venter, 2016.

the Spline IK. It also can take a longer time to set up, especially if there are large numbers of joints to control (Figure 2.9).

Attribute Control Creating controllers from NURBS curves seems to be the most popular way to control a character rig. By using all NURBS curves, it is possible to drag-select all controllers simultaneously, which can speed up the keyframing process when animating. Additional attributes can be added to the curves for customizable control. There are several ways of creating and linking the NURBS curves with attributes that need control. With a bit more setup time, geometry, such as polygons, can be used

51

An Essential Introduction to Maya Character Rigging as controllers, but, to keep things simple, we will be only using NURBS curves (Figures 2.10, 2.11, 2.12, 2.13, and 2.14). Make sure that all curves are connected and act as one shape; otherwise, the animator will get frustrated when selecting and keyframing. Follow the tutorial at the end of this chapter in order to have multiple curves act as one object.

Rotation Order and Gimbal Lock Before beginning any discussion about creating associations for control, there really needs to be an understanding of rotation order. Having the correct rotation order on controllers is probably the most important thing when it comes to animating a control rig. To ensure sure that everything is working properly, the rotation order needs to be established by the rigger for joints and FK controls during the setup process. FK control should always be set up before IK, especially if it is an FK/IK control system. The reason for this is that IK begins to place rotations on the joints the moment the solver is placed. This can lead to problems with the FK control setup. So, what exactly is rotation order, and why is it so important? Objects in a 3D environment rotate in either a quaternion rotation method or Euler (pronounced Oiler) rotation method. The default method (which is

FIGURE 2.10 The character’s controllers are all made with NURBS curves. An animator can use the selection masks (shown within the red box) to only select curves when drag-selecting, making the animation process faster. Viktor model by Marchand Venter, 2016.

52

Control Rig Setup

FIGURE 2.11 The easiest curve to use is Create > NURBS Primitives > Circle. This curve can be reshaped using (F8) to manipulate the points.

FIGURE 2.12 Use Create > Curve Tools > EP Curve Tool to draw any shape in one connected curve.

53

An Essential Introduction to Maya Character Rigging

FIGURE 2.13 Use Create > Curve Tools > EP Curve Tool with the Curve degree set to 1 Linear to draw any shape in one connected curve with straight lines.

FIGURE 2.14 To create one NURBS curve controller from several NURBS shapes, select the shape nodes of all additional curves and the transform node of the main controller and use the parent -r -s command. Follow the tutorial at the end of this chapter to learn how to accomplish this task.

commonly used for intuitive curve manipulation and is the method we will be using) is Independent Euler-Angle Curves, which calculates the rotation according to the degree set along the X, Y, and Z-axes but evaluates the rotation based on the chosen rotation order. The rotation order establishes how the object orients when rotating the object from one position to the next. The default rotational order on all objects in Maya is XYZ. In order to see how the rotations work, you must change your rotate tool mode to Gimbal by double-clicking on the rotate tool button to open the 54

Control Rig Setup

FIGURE 2.15 The rotate tool settings window.

FIGURE 2.16 After rotating the character in World axis Orientation on the Y-axis, further rotation on the X-axis also causes the Y and Z axes to rotate. Viktor model by Marchand Venter, 2016.

tool settings window and set the rotate tool Axis Orientation to “Gimbal.” The rotate tool options have five rotation modes: Object, World, Component, Gimbal, and Custom. When an object is selected, the rotate tool allows interactive rotation by click-holding on a colored ring and dragging the mouse to rotate. The selected axis turns yellow (Figure 2.15). However, in Object, World, and Component modes, this rotation is not accurately aligned with the specified colored rings. We don’t always truly rotate along the specified axis for that color (X: red, Y: green, Z: blue). Sometimes more than one rotational value of the object being rotated may change in the XYZ channels in the CHANNEL BOX. When animating, this can be a serious problem and cause all kinds of unpredictable rotational behavior. In Gimbal mode, only a single X, Y, or Z rotation axis value in the CHANNEL BOX will change when clicking on the specified color ring. Gimbal mode is the ONLY mode that shows you exactly what happens (Figure 2.16). 55

An Essential Introduction to Maya Character Rigging To see what on earth I am talking about, create a sphere in Maya. With the sphere selected, change your rotate tool Axis Orientation to Gimbal and click on the X-axis (red ring) of the rotate tool ring and rotate it. You will notice that nothing is affected. The rotate tool looks exactly the same as before we rotated the X-axis. Because X is first in the rotation order, it does not affect any of the other axes (Figure 2.17). If you rotate the Z-axis (blue ring), it carries both the X and Y axes with it because it is last in the rotation order, so it affects both of the other axes (Figure 2.18). Now, if you rotate the Y-axis (green ring) you will notice that the X is carried with the Y, and if the Y-axis is rotated 90 degrees, the X-axis now lines up with the Z-axis. At this point, you are now unable to rotate the sphere toward the front or back of 3D space because both the X and Z axes rotate the sphere side to side. This is what is referred to as Gimbal lock, and it can cause some pretty huge frustrations for an animator. Changing the tool back to Local

FIGURE 2.17 Rotating the sphere in Gimbal mode on the X-axis.

FIGURE 2.18 Rotating the sphere in Gimbal mode on the Z-axis carries both the X and Y-axis rings with it.

56

Control Rig Setup or World mode seems to solve the ability to rotate, but then we are back to inaccurate rotations in multiple axes, which causes crazy flipping during the animation and much more frustration for the animator (Figure 2.19). So what is an animator to do? Knowing what to do to fix the issue is helpful, but here is where workflow is a huge concern. The correct rotation order must be chosen while the FK controls are being set up; otherwise, the other tools (like constraints, Set Driven Keys, and IK) that were used to make the rig easier to work with simply will not work anymore. FK Rotational Orders must be established before the other things are set up. So when you create your FK controls, it is important to think about how that control will be used during animation then set the joint and controller appropriately. The easiest way to figure out which order you will need is to try it out on a sample skeleton and change the orders around. There really is no “only” way of setting these; there is simply preference. In my opinion, the most important rotation should go last (all the way to the right), since it carries the other two rotations with it. The first axis (all the way to the left) should be the least important as it affects only itself. So, think about which direction the object moves the most. For example, a head turns left to right most often, so that would be rotating on the Y-axis. Then I would say for the next motion, the head goes up and down most frequently (or rotating on the X-axis). Lastly, the head tilts left to right, rotating along the Z-axis. So I would choose a rotation order of ZXY for the head controller. Do not worry too much if this is getting a bit confusing. This is one concept that does take some time to sink into your brain and understand. I have included my preferences in the assignments, but feel free to change them as you deem necessary.

Connection Editor [Windows > General Editors > Connection Editor]

The connection editor allows you to take one attribute (referred to as the INPUT or upstream) to control one or more attributes of any objects (referred to as the OUTPUT or downstream) in the scene. An easy way to think about

FIGURE 2.19 Rotating the sphere in Gimbal mode on the Y-axis (left image) carries the X-axis with it – all the way to Gimbal lock when both the X and Z axes are aligned (right).

57

An Essential Introduction to Maya Character Rigging how the connection editor works is to think about how toy car wheels rotate. By moving the toy car (translate), the wheels rotate. If the same motion would be duplicated in the Maya environment, the connection editor could be used to connect the input translation value on the Z-axis (if the car faced toward +Z) to the output rotate X value of the wheels. It is important to make sure that the objects that are going to be connected have frozen transformations because making a connection forces the output value to match the input value. A connection places a yellow rectangle in front of the attribute channels that it controls in the CHANNEL BOX (Figure 2.20). However, this means for every one Maya unit translated in Z, the wheel will rotate only one degree in X. The wheels rotate very slowly with this direct connection. So this is probably not the best way to create this control system. During character setup, the connection editor can be used to connect the NURBS curve controller rotations to the joint or object rotations that they are controlling. In more advanced rigging work, the connection editor is used to connect utility nodes to each other (Figure 2.21).

Expressions [Windows > Animation Editors > Expression Editor]

The expression editor also offers the ability to control attributes but provides even greater control using expressions that contain specific mathematical equations, conditional statements (if, then), or MEL commands. An expression places a purple rectangle in front of the attribute channels that it controls in the CHANNEL BOX. If we return to our car example, an expression can be created that gets exactly the same result in a mathematical equation using MEL: wheel.rotateX = car.translateZ However, the great thing here is that we can add more math to make the wheel rotate faster. We can add a multiplier that allows us to increase the speed of the rotation: wheel.rotateX = car.translateZ * 45

FIGURE 2.20 The connection editor can be used to make a direct connection from one attribute to another. Clown Car model by John Doromal, 2013.

58

Control Rig Setup

FIGURE 2.21 The connection editor can be found under the Windows menu in the General Editors submenu.

FIGURE 2.22 The expression editor can use mathematical equations to create attribute control.

This equation now rotates the wheel 45 degrees for every Maya unit that the car is translated. The above example is just a taste of what can be done with expressions. During character setup, expressions can be used to automate motion, such as a character’s breathing (Figures 2.22 and 2.23).

Set Driven Key [Key > Set Driven Key > Set...]

Set Driven Key is another tool that creates a control relationship between attributes in a scene file. The difference here is that a range of motion can be 59

An Essential Introduction to Maya Character Rigging

FIGURE 2.23 The expression editor can be found under the Windows menu in the Animation Editors submenu.

established by using keyframes. Set Driven Key is usually used for repetitive motion so that these motions do not need to be animated by hand every time they are needed. Much like the animation process, key poses can be created and keyframed. However, Set Driven Key creates keys that are not dependent on time. Instead, these keys are dependent on the relationship between two attributes. These keys can be manipulated in the Graph Editor. A Set Driven Key places a cyan-blue rectangle in front of the attribute channels that it controls in the CHANNEL BOX. If an attribute has more than one Driver, a yellow rectangle will appear in front of the channel. An easy way to think of this relationship is the comparison of a car and a Driver. When driving down the street and coming to the corner where the car needs to turn, the Driver does not stick his arm out of the window to turn the wheels! Instead, when a Driver gets behind the wheel of a car to steer, the Driver turns the steering wheel, which is connected to the tire rotation of the car. By turning the steering wheel, the Driver can then control the car wheels and their direction. Set Driven Key works in a similar way. You must first identify the Driver (the object that is doing the controlling – also referred to as the Driver in Maya), the steering wheel (the specific attribute that will be the controller), the tires (the object, or objects, that are being controlled – referred to as the “driven” in Maya), and the rotation of the direction of the tires (the specific attribute or attributes being controlled). During character setup, Set Driven Key is usually used for foot control, finger control, and hand motion (Figures 2.24 and 2.25). When creating Set Driven Keys, it is important to first make sure that your tangents are set in the Preferences to “clamped.” To do this, go to [Windows > Settings/Preferences > Preferences] and click on the Animation category. In the TANGENTS section, choose “clamped” from the dropdown menu for “Default in” and “Default out.” 60

Control Rig Setup

FIGURE 2.24 Set Driven Key can be used to create animated motion linked to other attributes. In the car example, I have added the ability to steer the front wheels by turning the steering wheel on the Y-axis. Clown Car model by John Doromal, 2013.

FIGURE 2.25 Set Driven Key can be found in the Animation menu set by pressing (F4) and under the Key menu in the Set Driven Key submenu.

Constraints Constraints are yet another way to control attributes. One of the benefits of a constraint is that it can be turned off, which proves to be beneficial when creating multiple control options and switching between them. Another benefit is that it can have multiple leaders. A constraint restricts the attributes of one object (follower) to the attributes of another (leader). A constraint places a light blue rectangle in front of the attribute channels that it controls in the CHANNEL BOX. If a keyframe is set on the object constrained, the rectangle will turn green, and the constraint will no longer work. For this reason, group nodes (discussed in the next section) are used to hold the constraint. 61

An Essential Introduction to Maya Character Rigging

When creating Constraints, it is important to open your OPTION BOX and make sure to adjust the options based on what you are trying to accomplish. Maintain offset is an option that should be CHECKED if you want the object being constrained to stay in its current position, or UNCHECKED □ if you want the object being constrained to adjust its spatial and rotational position to that of the target object (leader). There are several different constraints available, but only the following will be used in the setup of the character controls (Figure 2.26).

Parent [Constrain > Parent]

A parent constraint constrains both the translation and rotation values of an object (follower) to another object (leader). The rotational axis for a parent constraint is based on the world axis, not the local axis, as with the orient constraint. Because of this, the follower acts as if it were a child to the leader, without actually being part of the hierarchy. Multiple leaders provide the workability of providing multiple parents, which is impossible in a true parent-child relationship. The ability to turn the constraint off provides the keyframing option of “unparenting” during the animation process, which is also impossible in a true parent-child relationship. “Maintain offset” is on by default for this constraint. During character setup, parent constraints are often used to create parenting relationships (as defined in Chapter 1) that need to be switched during animation (such as having the ability to choose whether the hands follow the body during movement, or stay in place to create stickiness). During the animation process, parent constraints are also used for object interactivity (such as when a character picks up an object). Parent constraints are also used to keep the child object unselected whenever the parent object is selected (Figure 2.27).

FIGURE 2.26 Constraints can be found in the Rigging menu set by pressing (F3) or in the Animation menu set by pressing (F4) and under the Constrain menu.

62

Control Rig Setup

FIGURE 2.27 A direct parent relationship causes the child object to be highlighted when the parent is selected (left image). A Parent Constraint prevents this from happening but still creates a parenting relationship between the objects, matching both the translations and world rotations of the child (follower) to the pivot of the parent (right image).

FIGURE 2.28 A point constraint created with Maintain offset UNCHECKED □ will move the follower (cone) to the same position of the leader (sphere) by matching the position of their pivot points (top image). A point

constraint created with Maintain offset CHECKED creating the constraint (bottom image).

will keep the follower (cone) in its current position prior to

Point [Constrain > Point]

A point constraint constrains the translation values of an object (follower) to another object (leader). Once the constraint is applied, the pivot of the follower will move to the exact position as the pivot of the leader. To avoid any repositioning, open the OPTION BOX and choose “Maintain offset” before applying the constraint. Once the constraint has been applied, when the leader is moved, then the follower moves also. During character setup, point constraints are often used to control IK handles (Figures 2.28 and 2.29).

Orient [Constrain > Orient] An orient constraint constrains the rotation values of an object (follower) to another object (leader). Once the constraint is applied, the rotation of the 63

An Essential Introduction to Maya Character Rigging

FIGURE 2.29 A point constraint matches the translations between leader and follower, but not the rotations.

FIGURE 2.30 An orient constraint matches the local object rotations between leader and follower.

follower will match the current rotation values of the leader. To avoid any repositioning, either freeze transformations on both leader and follower or open the OPTION BOX and choose “Maintain offset” before applying the constraint. Once the constraint has been applied, when the leader is rotated, then the follower rotates along its local axis also. During character setup, orient constraints are often used with a multiple joint chain control system to control joint rotations during the FK/IK switch (this will be explored in the assignments for the arm control rig). Orient constraints can also be used to control the rotations of joints using NURBS curves (leader) and joints (follower) (Figure 2.30).

Scale [Constrain > Scale] A scale constraint constrains the scale values of an object (follower) to another object (leader). Once the constraint is applied, the scale of the follower will scale to the exact size as the leader. To avoid any resizing, open the OPTION 64

Control Rig Setup

FIGURE 2.31 A scale constraint matches the scale between leader and follower. The left image is an original scale of 1, and the right image shows both objects scaled together proportionally.

BOX and choose “Maintain offset” before applying the constraint. Once the constraint has been applied, when the leader is scaled, then the follower also scales proportionally to the scale of the leader (Figure 2.31).

Aim [Constrain > Aim] An aim constraint constrains the rotation values of an object (follower) to the translation position of another object (leader) by establishing an aim vector in the options. To avoid any flipping of the object during the constraining process, open the OPTION BOX and choose “Maintain offset” before applying the constraint; however, it is best to adjust the options for the direction of the constraint. Once the constraint has been applied, when the leader is translated, then the follower rotates along its local axis in order to follow the leader’s position. During character setup, aim constraints are often used for creating eye control (Figure 2.32).

Pole Vector [Constrain > Pole Vector] A pole vector constraint constrains the pole vector values of an RP solver (follower) to the translation position of another object or controller (leader). Once the constraint has been applied, when the leader is translated, then the follower will rotate the joint chain through which the IK solver is running. This makes the control of the IK solver interactive and intuitive. During character setup, a pole vector constraint is used only with an RP IK solver (Figure 2.33).

Rivet [Constrain > Rivet] The Rivet command creates a locator and attaches it directly to a selected UV point. This allows you to do things such as attach a rigid object to a deforming piece of geometry, such as a button to a shirt. It can also be used to attach a prop to a character’s hand during the animation process (Figure 2.34).

Geometry [Constrain > Geometry] A geometry constraint constrains the translation position of an object (follower) to a NURBS surface, NURBS curve, or polygonal surface (leader). It 65

An Essential Introduction to Maya Character Rigging

FIGURE 2.32 An aim constraint created with Maintain offset UNCHECKED □ between the eye_anim (leader) and the eyeball (follower). The Aim vector has been changed to Z (0.00 0.00 1.00). Thin cylinders have been positioned to illustrate the direction of the vector. Viktor model by Marchand Venter, 2016.

FIGURE 2.33 A pole vector constraint created with the IK_elbow_anim (leader) and the left_arm_ikHandle RP solver pole vector (follower). Viktor model by Marchand Venter, 2016.

does not lock the translation values of the follower, as other constraints do, so this allows the ability to add a point constraint to follow another leader. Once the constraint has been applied, when the follower is translated, then the follower slides across the geometry (leader). During character setup, geometry constraints can be used with normal constraints for creating eye control for eyes that have separate pupils (Figures 2.35 and 2.36).

Normal [Constrain > Normal] A normal constraint constrains the rotation, or orientation, of an object (follower) to a NURBS surface or polygonal surface (leader). Once the constraint has been applied, when the follower is translated, then the follower rotates with the alignment of the normal vectors of the surface 66

Control Rig Setup

FIGURE 2.34 A rivet locator is created by selecting a UV point in the character’s hand and going to Constrain > Rivet. This allows an animator or rigger to directly parent or use a parent constraint on an object to the palm (using the locator as a parent or leader). Viktor model by Marchand Venter, 2016.

FIGURE 2.35 A geometry constraint created with the white part of the eye (leader) and the black pupil (follower) and a point constraint created between the eye_anim (leader) and the black pupil (follower).

FIGURE 2.36 A point constraint is used to control the movement of the pupil between the eye_anim (leader) and the black pupil (follower). When moving too far, the pupil penetrates through the white part of the eye.

67

An Essential Introduction to Maya Character Rigging geometry (leader). During character setup, normal constraints are used most effectively with geometry constraints for objects that need to slide across a surface, such as pupils that slide across a non-spherical eyeball, or a teardrop rolling down the cheek (Figure 2.37).

Group Nodes or Null [Edit > Group]

A group node in Maya is a transform node that becomes the parent of the items grouped. It allows you to move, scale, or rotate multiple objects at the same time. However, it can be used for much more. Most objects in Maya are made of two nodes: transform and shape. A Group Node is a stand-alone Transform Node. When we think of a group, we usually think about a collection of items or people, such as a group of desks or a group of children. In Maya, however, a group can be multiple objects, one object, or nothing at all. I like to think of a group node as an invisible box. The “box” can be empty, contain one item, or multiple items. When animating, the “box” can be animated, and the items inside will move along with it. The objects inside the “box” can be animated as well while inside the “box” itself (Figure 2.38). Whenever an object is parented to a joint, group nodes provide a buffer transform node between the joint and the object. Joints, by nature, always contain transform information so that Maya knows where they are positioned in 3D space. When an object is parented to a joint, the object inherits this transform information. This can be a problem, especially when you want to keep transform information frozen on the object. By placing a group node above the object before parenting at the joint, the group node inherits the information from the joint instead of the object. This is especially important when parenting with NURBS curve controllers to joints. By keeping translation and rotation attributes at zero, it is easy to position the character back where they started in the T-pose. Whenever constraints are used, group nodes provide the ability to continue animating the object constrained. Usually, the constraint is placed on the

FIGURE 2.37 A normal constraint is used between the white part of the eye (leader) and the black pupil (follower) to prevent the pupil from penetrating the white part of the eye.

68

Control Rig Setup

FIGURE 2.38 An empty group, a group of one object, or a group of several objects, as seen in the Hypergraph.

group node, which is the parent of the object being constrained. This way, the object itself does not have any of the translation or rotation channels locked and can still be animated. If a mistake has been made while setting up attribute controls, simply click on the word of the attribute in the CHANNEL BOX, hold down the right mouse button (RMB) and choose “break connections.” This will remove the link between the attribute controller and the attribute.

Clusters [Deform > Clusters]

A cluster deformer provides the ability to control individual or groups of points (CVs, vertices, or lattice points). By creating the cluster node, it is then possible to create a more intuitive control system. During character setup, clusters are usually used to control a single or group of vertex or CV points. This gives them the ability to be keyframed and edited in the graph editor. They can be used by riggers and animators alike.

Combining Curves Follow these steps to create a controller using text consisting of multiple NURBS curves. 1. Create your text by doing the following: a. Go to [Create > Type] (See Figure 2.39). b. In the Geometry tab, Choose your font and enter your desired text. i. Under [> Extrusion], UNCHECK □ Enable Extrusion ii. Under [> Mesh Settings] c.

iii. Click Create Curves fromType . In the OUTLINER, delete typeMesh1. 69

An Essential Introduction to Maya Character Rigging

FIGURE 2.39 Clusters can be found in the Rigging menu set by pressing (F3) or in the Animation menu set by pressing (F4) and under the Deform menu.

FIGURE 2.40 Create > Type options.

Shift + click on the + to the left of typeMesh1Curves. Select all curves within the viewport and unparent them from the typeMesh1Curves1 transform group node [shift + p] (See Figure 2.40). f. Delete typeMesh1Curves1. g. Select all the curves. h. Rotate all Curves -90 in X. i. [Create > NURBS Primitives > Circle]. j. Scale, move, and rotate text curves near or around Circle (See Figure 2.41). 2. If you want to shape the letters around the circle, select all of the text curves first and add a [Deform > Nonlinear > Bend], then adjust the Curvature (See Figure 2.42). d. e.

70

Control Rig Setup

FIGURE 2.41 Shift + click on the + to the left of typeMesh1Curves1 and select all curves within the viewport to unparent them from the typeMesh1Curves1 transform group node by pressing [shift + p].

FIGURE 2.42 Positioning the text curves below and near the nurbsCircle1.

3. [Edit > Delete By Type > History] and then [Modify > Freeze Transformations] on all of the curves and nurbsCircle1. 4. Within OUTLINER go to [Display > Shapes] to show the shapes (See Figure 2.43). 5. Holding down (ctrl PC or ⌘ MAC), left mouse button (LMB) click to select first all curve shapes and then the transform group node of nurbsCircle1 last. 6. Combine these curves by typing “parent -r -s” within MEL command line at the bottom of the Maya window (See Figure 2.44). Press (enter or return) (Figure 2.45). 7. Delete any empty transform groups. 8. Rename nurbsCircle1 to all_anim. 9. In the OUTLINER, go to [Display > Shapes] to hide the shapes. 10. Now, if you select the character text or the circle, the curves act as one object (Figure 2.46). 71

An Essential Introduction to Maya Character Rigging

FIGURE 2.43 Using a bend deformer to curve the text around the circle.

FIGURE 2.44 Displaying shapes in the OUTLINER

FIGURE 2.45 Selecting all curve shapes in the OUTLINER first, then the nurbsCircle1 transform group node. Type “parent -r -s” in the MEL command line to combine the curves after selecting.

72

Control Rig Setup

FIGURE 2.46 Selecting the all_anim curve shows that the curves all act as one object after using the “parent -r -s” command.

Summary 2.1

2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11

2.12 2.13 2.14

The purpose of a control rig is to simplify the animation process, making it easier for animators to pose their characters in a 3D environment. Animation, by definition, is the ability to bring something to life through movement. Kinematics is the study of motion. FK is a method where a hierarchy of joints or objects is rotated into a position and keyframed at every point of the hierarchy. IK is a mathematical system that calculates the rotations of joints in a predefined chain. When animating, IK provides the ability for stickiness. Maya has three different IK solvers: the SC solver, the RP solver, and the spline solver. Since IK solvers have a tendency to break and stop solving, a control system is used so that keyframes are not lost during animation. It is common to create multiple control chains for different areas of the body for maximum control. Using NURBS curves for controllers provides a faster workflow for animators when selecting controllers for keying. Maya uses an Euler rotation method when calculating the rotations of joints during an animation. When evaluating a joints rotation from one position to the next, the rotations are considered by a specific order dependent on the X, Y, or Z-axis. Gimbal lock occurs when two of the axes align during a rotation causing the inability to rotate in a particular direction. It is important to animate in Gimbal mode so that you know exactly what type of rotations are occurring. The connection editor is a tool that allows you to create a direct connection from one attribute to another. 73

An Essential Introduction to Maya Character Rigging 2.15 The expression editor provides a place where MEL programming language can be used to create mathematical expressions within the scene environment. 2.16 Set Driven Key is a powerful tool unique to Maya that provides attribute control using keyframes set on one or more attributes as they relate to the value of the attribute in control. 2.17 Constraints are a leader and follower relationship, where one object’s attribute leads while another object’s attributes follow. Constraints can be keyframed on and off. 2.18 A point constraint controls the translation values of an object. 2.19 An orient constraint controls the rotation values of an object. 2.20 A parent constraint controls both the translation and rotation values based on the world axis. 2.21 An aim constraint controls the rotational values of an object and points them toward another object using an aim vector. 2.22 A pole vector constraint controls the pole vector values of an RP IK solver. 2.23 A rivet creates a locator and attaches it directly to a selected UV point. 2.24 A geometry constraint constrains the translation position of an object to the surface of another. 2.25 A normal constraint constrains the rotation orientation of an object to the surface of another. 2.26 A group node is an empty transform node, or a transform node above one or more objects in a hierarchy. Think about group nodes as invisible boxes that can be empty or have one or more objects inside. 2.27 Group nodes can be placed above any object when constraints are used. 2.28 Clusters are deformers that provide the ability to control CVs or vertices. In character setup, they are used to help control the Spline IK solver.

74

Chapter 3

Bipedal Legs and Feet • • • • • •

Former Student Spotlight: Ben Willis Workflow Introduction Joint Placement for the Leg and Foot Skeleton Creating a Control System for the Leg and Foot Rig Simplifying the Foot Controls

Former Student Spotlight: Ben Willis You are a storyteller. Even as a rigger, you are a storyteller. Arguably, characters are more important than the story itself. It is the characters that we identify with and learn to love. How we empathize with these characters is by their outward display of their inward reality. The way they emote to us. This is where you come in to define them. You control their limits and their freedoms to express. Whether skinning or modeling, take your time to build the character right. Understand what the character needs. If you take the time now, you will see and feel the difference through the performances down the road. Your short will be that much richer for it. The greatest piece of advice I could ever think to give a first-time short film maker is keep things simple. Find that one idea with the most potential for expression in a short amount of time and dedicate all your efforts to that endeavor. Give yourself the best opportunity to see a project from conception to completion. There will always be time to be more ambitious. You WILL make mistakes. Nothing will ever turn out exactly as you intended. But in those “flaws” comes the beauty of making a film. You will learn and you will grow.

Biography Ben Willis graduated from the Savannah College of Art and Design with a BFA in Animation. He worked for a short time at Charlex as an animator on a short film entitled “One Rat Short,” which won Best in Show and People’s Choice at SIGGRAPH ‘06 Electronic Theater. He currently works for DreamWorks

75

An Essential Introduction to Maya Character Rigging Animation as an Animation Supervisor and has contributed to films such as Kung Fu Panda, Shrek Forever After, and Trolls.

Workflow Figure 3.1

Introduction As stated in Chapter 1, we will be placing joints in each area of the body (spine, head, neck, legs, arms, and hands) and then creating the control system for those joints, treating each area as a mini-rig which will then be combined with all parts of the body to function as a whole. This chapter will create the skeleton and a basic IK control system for the legs and feet of a bipedal character. This gives basic functionality for a character to walk, run, and move around while standing. A more complicated setup is needed for stretchy limbs and crawling around on the knees. At the introductory level, the tasks needed to create those abilities can be overwhelming; therefore, we will stick to simplicity for this book.

Joint Placement for the Leg and Foot Skeleton 1. Set up your work environment by doing the following: a. Once Maya is open, go to [File > Set Project…] and browse to the project folder. Click Set . b. Go to [File > Open] and select your model file. (Alternatively, you could use File Referencing if the model is not finished being detailed or UV’d. See Chapter 1 for more details on creating a File Reference.) c. In the TOP, FRONT, SIDE, and PERSPECTIVE view panels go to [Shading > X-Ray]. d. In the OUTLINER, make sure that your geometry is organized into one node, select that node, and then create a new display layer by clicking the button on the far right. Change the layer to R for reference in the third column so that you are unable to select the geometry by mistake when working (Figure 3.2). 2. Create the leg joint hierarchy by doing the following: a. Press F3 to change to the Rigging Menu Set. b. Select [Skeleton > Create Joints □]. i. Under Orientation Settings keep Primary Axis set to X, change Secondary Axis to Z, and change Secondary Axis World Orientation to Z + ii. Under Bone Radius Settings change Long bone radius to 0.5000. iii. In the SIDE orthographic view, place 5 joints for the leg as follows (see Figure 3.3).

76

Bipedal Legs and Feet

FIGURE 3.1 Bipedal legs and feet workflow.

c. d.

Rename these joints hip_skin_jnt, knee_skin_jnt, ankle_skin_jnt, ball_skin_jnt, and toe_skin_jnt. In the FRONT orthographic view, select hip_skin_jnt and move the joint chain along the X-axis (the red arrow) into the left leg of your character’s geometry. Remember, it is not necessary to reorient a joint chain if it is moved in its entirety. 77

An Essential Introduction to Maya Character Rigging

FIGURE 3.2 Placing geometry on a layer and setting it to reference.

FIGURE 3.3 Placing and renaming the leg joints. Persephone model by Kenna Hornibrook, 2019.

e.

f.

For some characters, it is necessary to rotate in the Z-axis the hip_ skin_jnt to align the joint chain with the slight inverted V shape of the legs. You must then [Modify > Freeze transformations] with the hip_skin_jnt selected to reset the rotate Z to 0. (Figure 3.4) Rename your leg chain to include left_ prefix by selecting the hip_ skin_jnt joint, then go to [Modify > Prefix Hierarchy Names…]. Enter left_ in the text field and click OK . This indicates the character’s left but your screen right.

78

Bipedal Legs and Feet

FIGURE 3.4 Repositioning the leg joints in the FRONT orthographic view panel and adding the prefix left_. Persephone model by Kenna Hornibrook, 2019.

3. Save your scene file. A good naming convention would be to label the file at the bottom of each book page with the page number, such as chapter_03_page_24.ma. This will always show where the save point of the file is exactly. Another naming convention would be the version number and a small description of the file. For example, 01_legSkeleton.ma would be a good name here. Remember to reorient joints if they need to be moved. Only move leg joints in the SIDE orthographic view, with the exception of the top joint of the hierarchy. The leg joint chain must be STRAIGHT in the FRONT view for the IK solver to work properly.

Verifying the Joint Local Rotation Axis It is important to make sure that the local rotational axis of the joints are aligned. For an IK controlled joint chain, the x-axis must point to the child joint, while the other two axes must be aligned. For an FK controlled joint chain, the axes should align as closely as possible with world orientation. The last joint of any chain will always align with world axis orientation. 1. Continue working or open your last saved version of the file. 2. Evaluate the axes and determine if any need to be fixed. 79

An Essential Introduction to Maya Character Rigging

FIGURE 3.5 Pressing F8 (Select By Component type) choose “?” to display [Local Rotation Axes].

FIGURE 3.6 Verifying the local rotation axes in the leg joints. The leg should have the X-axis pointing toward the child and the Z-axis coming forward. The last joint of the chain will align with the World axes. Persephone model by Kenna Hornibrook, 2019.

FIGURE 3.7 Pressing F8 again toggles back (Select By Object type).

Select all joints by going to [Select > All By Type > Joints]. Press F8 (Select By Component type) choose “?” to display [Local Rotation Axes] (Figure 3.5). c. The leg should have the X-axis pointing down toward the child and the Z-axis coming forward (Figure 3.6). 3. If there is a problem with the axis orientation of the leg: a. Press (F8) to return to Object type (Select By Object Type) and open the OUTLINER [Windows > Outliner] (Figure 3.7). b. Select the top of the joint chain (left_hip_skin_jn_jnt). c. Reorient by going to [Skeleton > Orient Joint □]. i. Under Orientation Settings, keep Primary Axis set to X, change Secondary Axis to Z, and change Secondary Axis World Orientation to Z + (Figure 3.8). a. b.

ii. Click Orient . 4. [File > Save As] Save a copy of your scene file. 80

Bipedal Legs and Feet

FIGURE 3.8 The Orient Joint Options for the left leg joints.

Creating a Control System for the Leg and Foot Rig For the leg control, we will only be setting up an IK control system since, most of the time, our characters will be walking on something. If you think you need an FK control system, you can follow the setup for the arms and adapt it to the legs. 1. Continue working or open your last saved version of the file. 2. To make selection easier, open your OUTLINER by going to [Windows > Outliner]. 3. Create the IK in the leg by doing the following: a. Set a preferred angle in the left leg by doing the following i. Select the left_knee_skin_jnt joint in the CHANNEL BOX set the following: RotateY: type “60.” ii. Select the left_hip_skin_jnt joint, then go to [Skeleton > Set Preferred Angle]. iii. Select the left_knee_skin_jnt joint and, in the CHANNEL BOX, set the following: RotateY: type “0” (this will make the knee straight again). (We must first set a preferred angle in the leg so that Maya knows which direction to bend the leg when we run the IK solver through the joints.) (Figure 3.9) b. Go to [Skeleton > Create IK Handle □] and set the following: i. Click Reset Tool then, under IK Handle Settings, change the following: ii. Current solver: should be “Rotate-Plane Solver” c.

iii. Place a CHECKMARK in the box next to Sticky. In the PERSPECTIVE window, click on the left_hip_skin_jnt joint (to define the start of the IK joint chain) then click on the left_ankle_ skin_jnt joint (to define the end of the chain; an IK handle appears at the end of the chain). 81

An Essential Introduction to Maya Character Rigging

FIGURE 3.9 Setting a preferred angle on the legs by selecting the left_hip_skin_jnt with the knee rotated. Persephone model by Kenna Hornibrook, 2019.

Alternatively, with the IK Handle tool, you can select the starting joint in the OUTLINER and (ctrl PC or ⌘ MAC) click on the end joint to create the ikHandle. d.

e. f.

In the OUTLINER, double-click on ikHandle1 and rename it left_ leg_ikHandle. Rename effector1 as left_leg_ikHandle_effector (this chain will control the leg movement) (Figure 3.10). It is a great idea to check to make sure the IK handle moves correctly along the Y-axis. You can do this by doing the following: Select the left_leg_ikHandle and move the IK handle upward along the Y-axis (green arrow) toward the hips to confirm that the leg bends in the correct direction. Be sure to press the (z) key to undo the move.

The direction that the IK handles point toward is irrelevant. Its direction does not have any effect on the solver. g.

h.

i.

82

Go to [Skeleton > Create IK Handle □] and set the following: i. Under IK Handle Settings, change the current solver: choose “Single-Chain Solver.” Keep a CHECKMARK in the box next to Sticky. In the PERSPECTIVE window, click on the left_ankle_skin_jnt joint (to define the start of the IK joint chain) then click on the left_ball_skin_ jnt joint (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ ankle_ikHandle. (This chain will control the ankle movement.) Rename effector1 to left_ankle_ikHandle_effector (Figure 3.11).

Bipedal Legs and Feet

FIGURE 3.10 Creating a Rotate-Plane IK solver in the left leg. Persephone model by Kenna Hornibrook, 2019.

j. k.

l.

m.

Press the (y) key to select the last tool used – in this case, the IK Handle tool. In the PERSPECTIVE window, click on left_ball_skin_jnt (to define the start of the IK joint chain) then click on left_toe_skin_jnt (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ toe_ikHandle. (This chain will control the toe movement.) Rename effector1 to left_toe_ikHandle_effector (Figure 3.12) Mirror the left hip to create the right hip by selecting left_hip_skin_ jnt, then go to [Skeleton > Mirror Joints □]. i. Change Mirror across: YZ. Change Search for: left_. Change Replace with: right_. ii. Click Mirror (Figure 3.13).

4. [File > Save As] Save a copy of your scene file. 5. Create a control system for the IK leg by doing the following: Be sure to turn off interactive creation. Go to [Create > NURBS Primitives] and make sure to UNCHECK □ the box next to Interactive Creation. a.

Create the foot controllers by doing the following: i. Go to [Create > NURBS Primitives > Circle]. 83

An Essential Introduction to Maya Character Rigging

FIGURE 3.11 Creating a Single-Chain IK solver in the left ankle. Persephone model by Kenna Hornibrook, 2019.

FIGURE 3.12 Creating a Single-Chain IK solver in the left toe. Persephone model by Kenna Hornibrook, 2019.

ii. In the CHANNEL BOX, rename the circle left_ikFoot_anim. iii. In the PERSPECTIVE view, select the move tool by pressing (w) and reposition the curve around the foot. DO NOT make it even with the sole of the foot, as the animator will have a hard time seeing it through the floor plane. iv. Make sure the pivot of the controller is in the ankle by doing the following: With the left_ikFoot_anim selected, shift-select the 84

Bipedal Legs and Feet

FIGURE 3.13 Mirroring the left_hip_skin_jnt to create the right leg joints and ikHandles. Persephone model by Kenna Hornibrook, 2019.

v.

vi.

vii.

viii.

ankle joint and then go to [Modify > Match Transformation > Match Pivots] to move the pivot of the left_ikFoot_anim into place in the ankle (Figure 3.14). Use the scale tool by pressing (r) and resize the circle if necessary. (This control should be scaled large enough that it is OUTSIDE of the character’s foot to make it easy to select.) With the left_ikFoot_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1). Select the left_ikFoot_anim and reshape the curve around the foot by doing the following: 1. Choose the “select by component type” button in the Status Line or press the (F8) hotkey. 2. Using the move tool by pressing (w), click and drag around the Control Vertex points of the circle and position them to reshape the curve into a shoeprint shape (Figure 3.15). Change the rotation order for the left_ikFoot_anim by doing the following: 1. With the left_ikFoot_anim selected, open the ATTRIBUTE EDITOR by pressing [ctrl+a]. 2. Select the left_ikFoot_anim tab. 3. Under Transform Attributes set the following: Rotate order: choose ZYX. 85

An Essential Introduction to Maya Character Rigging

FIGURE 3.14 Creating and positioning the left_ikFoot_anim with the pivot location in the ankle joint. Persephone model by Kenna Hornibrook, 2019.

FIGURE 3.15 Top View. Hiding the upper body geometry (if separate pieces) can give an easier view when shaping the foot controller. Simply select the objects in the OUTLINER and press (h) to hide. Pressing (h) again with the object selected will make it visible again. Persephone model by Kenna Hornibrook, 2019.

The rotation order is changed to avoid Gimbal Lock. Remember that Gimbal Lock is impossible to avoid completely, but changing the rotation order on a controller helps keep it away. ix. Duplicate the left_ikFoot_anim by going to [Edit > Duplicate] or press (ctrl+d). x. In the OUTLINER, double-click on left_ikFoot_anim1 and rename it right_ikFoot_anim. xi. In PERSPECTIVE view, select the move tool by pressing (w), hold down the (v) key, position your cursor over the 86

Bipedal Legs and Feet







right_ankle_skin_jnt, and click the MMB (middle mouse button) and drag it slightly to snap the right_ikFoot_anim into place. xii. With the right_ikFoot_anim selected, set the following in the CHANNEL BOX: ScaleX: type “-1” (this will flip the controller over the right foot). xiii. With the right_ikFoot_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1). b. Create knee controllers by doing the following: i. Go to [Create > NURBS Primitives > Circle □]. 1. Change Normal axis: Z.

2. Click Create . ii. In the CHANNEL BOX, rename the circle left_ikKnee_anim. iii. In PERSPECTIVE view, with the left_ikKnee_anim selected, select the move tool by pressing (w), hold down the (v) key, position your cursor over the left_knee_skin_jnt, and click the MMB, and drag it slightly to snap the left_ikKnee_anim into the knee joint. iv. With the move tool, click on the Z axis (blue arrow) and move the controller in front of the character. DO NOT leave the controller inside the knee. v. With the left_ikKnee_anim selected, set the following in the CHANNEL BOX: RotateX: type “90.” vi. Use the scale tool by pressing (r) and resize the circle if necessary. vii. With the left_ikKnee_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1). viii. The rotation order does not need to be changed on this controller because rotations are not necessary for control. ix. Duplicate the left_ikKnee_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). x. In the OUTLINER, double-click on left_ikKnee_anim1 and rename it right_ikKnee_anim. xi. In FRONT view, select the move tool by pressing (w) and click on the X-axis (red arrow), hold down the (v) key, position your cursor over the right_knee joint, and click the LMB (left mouse button) and drag it slightly to snap the right_ikKnee_anim into place. (By selecting the X-axis first, the move is constrained to that axis only.) xii. With the right_ikKnee_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1) (Figure 3.16). 6. You may notice that we have created three separate IK chains for the leg and foot. A biped is capable of moving their toes, their ankle, and their leg independently from each other. Because of this, one single IK chain from the hip to the toe would not work for the control needed. We are now going to create a hierarchal system that provides maximum control and protect the animator from losing their work if an IK handle stops solving. Create control between the controllers and the IK handles by doing the following:

87

An Essential Introduction to Maya Character Rigging

FIGURE 3.16 Creating and positioning the left_ikKnee_anim and right_ikKnee_anim. The ikKnee_anim will control the pole vectors of the leg_ikHandle, which in turn rotates the leg from the hip left to right. Persephone model by Kenna Hornibrook, 2019.

a.

Go to [Create > NURBS Primitives > Circle]. i. In the CHANNEL BOX, rename the circle left_ikHeel_pivot_anim. ii. In PERSPECTIVE view, select the move tool by pressing (w) and move the circle so that the pivot is at the base of the heel of your character’s foot or shoe geometry. Use the scale tool by pressing (r) and resize the circle if necessary. iii. Duplicate the left_ikHeel_pivot_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). iv. In the OUTLINER, double-click on left_ikHeel_pivot_anim1 and rename it right_ikHeel_pivot_anim. v. In the CHANNEL BOX, make the right_ikHeel_pivot_anim Translate X value negative. This will move the right_ikHeel_pivot_ anim behind the right foot. vi. With the left_ikHeel_pivot_anim and right_ikHeel_pivot_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1) (Figures 3.17, 3.18, and 3.19).

Remember, you can choose the “select by component type” button in the Status Line or press the (F8) hotkey, use the move tool by pressing (w), click and drag around the Control Vertex points of the circle, and position them to reshape the curve into a different shape. b.

88

Repeat this again. Go to [Create > NURBS Primitives > Circle]. i. In the CHANNEL BOX, rename the circle left_ikToe_pivot_anim. ii. Make sure the pivot of the controller is in the correct place by doing the following: With the left_ikToe_pivot_anim selected, shift-select the left_toe_skin_jnt joint and then go to [Modify > Match Transformation > Match Pivots] to move the pivot of the left_ikToe_pivot_anim into place in the left_toe_skin_jnt.

Bipedal Legs and Feet

FIGURE 3.17 Creating and positioning the left_ikHeel_pivot_anim and right_ikHeel_pivot_anim with the pivot at the base of the heel. Persephone model by Kenna Hornibrook, 2019.

FIGURE 3.18 Reshaping the left_ikHeel_pivot_anim and right_ikHeel_pivot_anim. Persephone model by Kenna Hornibrook, 2019.

FIGURE 3.19 The pivot location of the left_ikHeel_pivot_anim. Persephone model by Kenna Hornibrook, 2019.

89

An Essential Introduction to Maya Character Rigging iii. If desired, choose the “select by component type” button in the Status Line or press the (F8) hotkey, use the move tool by pressing (w), click and drag around the Control Vertex points of the circle, and position them to reshape the curve into a different shape. iv. Duplicate the left_ikToe_pivot_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). v. In the OUTLINER, double-click on left_ikToe_pivot_anim1 and rename it right_ikToe_pivot_anim. vi. In the CHANNEL BOX, make the right_ikToe_pivot_anim Translate X value negative. This will move the right_ikToe_pivot_anim to the toe of the right foot. If the shape is not symmetrical, you can also make the Scale X value negative. vii. With the left_ikToe_pivot_anim and right_ikToe_pivot_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 3.20) c. Repeat this again. Go to [Create > NURBS Primitives > Circle]. i. In the CHANNEL BOX, rename the circle left_ikBall_pivot_anim. ii. Move the controller into the correct place by doing the following: With the left_ikBall_pivot_anim selected, shift-select the left_ball_skin_jnt joint and then go to [Modify > Match Transformation > Match Translation] to move the left_ikToe_ pivot_anim into place in the left_toe_skin_jnt. iii. If desired, choose the “select by component type” button in the Status Line or press the (F8) hotkey and use the move tool by pressing (w), click and drag around the Control Vertex points of the circle, and position them to reshape the curve into a different shape. iv. Duplicate the left_ikBall_pivot_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC).

FIGURE 3.20 Creating and reshaping the left_ikToe_pivot_anim and right_ikToe_pivot_anim with the pivot in the toe_skin_jnt. Persephone model by Kenna Hornibrook, 2019.

90

Bipedal Legs and Feet v. In the OUTLINER, double-click on left_ikBall_pivot_anim1 and rename it right_ikBall_pivot_anim. vi. In the CHANNEL BOX, make the right_ikBall_pivot_anim Translate X value negative. This will move the right_ikBall_pivot_anim to the toe of the right foot. If the shape is not symmetrical, you can also make the Scale X value negative. vii. With the left_ikBall_pivot_anim and right_ikBall_pivot_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1) (Figure 3.21). d. Repeat this again. Go to [Create > NURBS Primitives > Circle □] i. Change Normal axis: Y. e. f.

g.

h. i. j.

ii. Then click Create . In the CHANNEL BOX, rename the circle left_ikToe_wiggle_anim. Move the controller into the correct place by doing the following: With the left_ikToe_wiggle_anim selected, shift-select the left_ball_skin_jnt joint and then go to [Modify > Match Transformation > Match Translation] (to move the left_ikToe_ wiggle_anim into place in the left_toe_skin_jnt). If desired, choose the “select by component type” button in the Status Line or press the (F8) hotkey, use the move tool by pressing (w), click and drag around the Control Vertex points of the circle, and position them to reshape the curve into a different shape. Duplicate the left_ikToe_wiggle_anim by going to [Edit > Duplicate] or pressing (ctrl+d PC or ⌘+d MAC). In the OUTLINER, double-click on left_ikToe_wiggle_anim1 and rename it right_ikToe_wiggle_anim. In the CHANNEL BOX, make the right_ikToe_wiggle_anim Translate X value negative. This will move the right_ikToe_wiggle_anim to the toe of the right foot. If the shape is not symmetrical, you can also make the Scale X value negative.

FIGURE 3.21 Creating and reshaping the left_ikBall_pivot_anim and right_ikBall_pivot_anim with the pivot in the ball_skin_jnt. Persephone model by Kenna Hornibrook, 2019.

91

An Essential Introduction to Maya Character Rigging

FIGURE 3.22 Creating and reshaping the left_ikToe_wiggle_anim and right_ikToe_wiggle_anim with the pivot in the ball joint. Persephone model by Kenna Hornibrook, 2019.

k.

l.

m.

n.

o.

p.

92

With the left_ikToe_wiggle_anim and right_ikToe_wiggle_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1) (Figure 3.22). In the OUTLINER, click on the left_toe_ikHandle, hold down the ctrl (PC) or pp⌘ (MAC) key and click on the left_ikToe_wiggle_anim, and then press (p) on the keyboard. (This makes the left_toe_ikHandle child to the left_ikToe_wiggle_anim.) Repeat for the right leg. In the OUTLINER, click on the left_leg_ikHandle, hold down the ctrl (PC) or pp⌘ (MAC) key and click with the MMB on the left_ikBall_ pivot_anim, and then press (p) on the keyboard. (This makes the left_leg_ikHandle child to the left_ikBall_pivot_anim.) Repeat for the right leg. In the OUTLINER, click on the left_ikBall_pivot_anim, hold down the ctrl (PC) or pp⌘ (MAC) key and click on the left_ikToe_wiggle_ anim, click on the left_ankle_ikHandle, click on the left_ikToe_ pivot_anim, and then press (p) on the keyboard. (This makes the left_ikBall_pivot_anim, the left_ikToe_wiggle_anim, and the left_ ankle_ikHandle child to the left_ikToe_pivot_anim.) Repeat for the right leg. In the OUTLINER, click on the left_ikToe_pivot_anim, hold down the ctrl (PC) or pp⌘ (MAC) key and click on the left_ikHeel_pivot_anim, and then press (p) on the keyboard. (This makes the left_ikToe_ pivot_anim child to the left_ikHeel_pivot_anim.) Repeat for the right leg. In the OUTLINER, click on the left_ikHeel_pivot_anim, hold down the ctrl (PC) or pp⌘ (MAC) key and click on the left_ikFoot_anim, and then press (p) on the keyboard. (This makes the left_ikHeel_pivot_ anim child to the left_ikFoot_anim.) Repeat for the right leg.

Bipedal Legs and Feet

FIGURE 3.23 The OUTLINER hierarchy before and after parenting the IK handles with the controllers to make the foot hierarchy.

In the OUTLINER, click on the left_ikKnee_anim hold down the ctrl (PC) or pp⌘ (MAC) key and click on the left_ikFoot_anim, and then press (p) on the keyboard. (This makes the left_ikKnee_anim child to the left_ foot_anim.) Repeat for the right leg. (Figure 3.23) r. In the PERSPECTIVE window, click on the left_ikKnee_anim (the leader, or target), hold down the (ctrl) key and click on the left_ leg_ikHandle (the follower, or object), then go to [Constrain > Pole Vector]. Repeat for the right leg (Figure 3.24). 7. [File > Save As] Save a copy of your scene file. q.

Cleanup for the Legs and Feet 1. Clean up each controller in the table below by doing the following: \ a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the channel is a dark gray, hold down the right mouse button (RMB) and choose “lock and hide selected.” If the rectangle before the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. If you are very new to rigging, I recommend locking the channel only to make sure mistakes are not made. It is easier to right mouse buttong (RMB) click to unlock later if necessary. A hidden channel can be made visible again, but it is a time-consuming process. 93

An Essential Introduction to Maya Character Rigging

FIGURE 3.24 Creating a pole vector constraint between the left_ikKnee_anim (the leader, or target) and the left_leg_ikHandle (the follower, or object). Persephone model by Kenna Hornibrook, 2019.

CONTROL NAME

LOCK (select in CHANNEL BOX, RMB)

right & left_ikFoot_anim

scaleX, scaleY, scaleZ, and visibility

right & left_ikHeel_pivot_anim, right & left_ikToe_pivot_anim, right & left_ikBall_pivot_anim, right & left_ikToe_wiggle_anim

translateX, translateY, translateZ, scaleX, scaleY, scaleZ

right & left_ikKnee_anim

rotateX, rotateY, rotateZ, scaleX, scaleY, scaleZ, and visibility

b.

Hide IK so that during the animation process, they are not accidentally selected and keyframed. Select the right & left_leg_ ikHandle, right & left_ankle_ikHandle, right & left_toe_ikHandle, and press (h) to hide them. c. Select the right & left_ikFoot_anim. d. [ctrl+g] to group and rename the group leg_anim_grp. e. Select the right & left hip_skin_jnt. f. [ctrl+g] to group and rename the group leg_jnt_grp. 2. [File > Save As] Save a copy of your scene file with the page number or as 04_leg_rig.ma. You can now test out some of your leg controls. Select the left_ikFoot_ anim and move it around toward the body so that the knee bends. You can also rotate this controller to control the ankle. Select the left_ikKnee_ anim and move it left to right to control the position of the knee. Be sure to press the (z) key several times to undo the moves, or simply re-open your last save.

94

Bipedal Legs and Feet

Simplifying the Foot Controls What follows is a different way of setting up the foot control that continues building on what we completed in the previous section. Some animators prefer fewer controls. In the previous section, we created a Foot control with five different controllers. This next section will reduce the number of controls for the foot to one with added attributes for the different foot movements. It is a simplified version of the foot rig with some limitations. Please note that if you continue working through this next section, the controllers created in the previous section will not be able to be keyframed when animating because we will use Set Driven Keys and Connections to control specific rotation attributes. Maya does not allow timeline keys on top of or in addition to Set Driven Keys or Connections. 1. To REDUCE the number of controls for the foot to one, first, add custom attributes to the foot control by doing the following: a. Select the right_ikFoot_anim, hold down the (shift) key and select left_ikFoot_anim, then go to [Modify > Add Attribute] and enter the following: i. Long name: enter “footRoll” ii. Under the Numeric Attribute Properties iii. Minimum: enter “−5” iv. Maximum: enter “10”

v. Click Add vi. Long name: enter “heelTwist” Click Add (There are NO minimum or maximums for “heelTwist”) vii. There are NO minimum or maximums for



viii. Long name: enter “toeTwist” Click Add (There are NO minimum or maximums for “toeTwist”)



ix. Long name: enter “toeWiggle” Click OK (There are NO minimum or maximums for “toeWiggle”) (Figure 3.25) By selecting both left and right controls, attributes are added to both curves at the same time, which adds to syntax consistency. Attributes added to an object, such as a control curve, appear in the CHANNEL BOX when the object is selected.

2. Make the footRoll attribute function using Set Driven Key by doing the following: a. With the animation menu set (F4) chosen, in the OUTLINER, select the left_ikHeel_pivot_anim control curve, hold down the (ctrl PC or ⌘ MAC) key and click the left_ikToe_pivot_anim control curve and the left_ikBall_pivot_anim control curve, then go to [Key > Set Driven Key > Set…□]. (This loads the selection into the Driven portion of the window.)

95

An Essential Introduction to Maya Character Rigging

FIGURE 3.25 Adding custom attributes to the left_ikFoot_anim and right_ikFoot_anim using [Modify > Add Attribute]. Persephone model by Kenna Hornibrook, 2019.

b. c. d.

e. f.

Select the left_ikFoot_anim and click Load Driver in the Set Driven Key window. In the Driver section of the Set Driven Key window, choose “Foot Roll” in the right column. In the Driven section of the Set Driven Key window, click on the left_heel_pivot_anim, hold down the (ctrl PC or ⌘ MAC) key, and click the left_ikToe_pivot_anim and left_ikBall_pivot_anim to select them. In the Driven section of the Set Driven Key window, choose “Rotate X” in the right column. In the Set Driven Key window, click Key . (This sets a default position of the foot at the footRoll value of “0.”) (Figure 3.26)

When you are using Set Driven Key, remember to change the driver first, then the driven, then set a key (you are changing the pose for each keyframe, much like you do in the timeline when animating, but this is an attribute value instead of a time position). g.

h.

i.

96

In the Driver section of the Set Driven Key window, click on left_ ikFoot_anim to select it and in the CHANNEL BOX, change footRoll to “-5” In the Driven section of the Set Driven Key window, click on left_ ikHeel_pivot_anim to select it and in the CHANNEL BOX, change rotateX to “-25” In the Set Driven Key window, click Key . (This sets the key for the first pose of the foot roll: the heel contacting the ground with the toe raised.) (Figure 3.27)

Bipedal Legs and Feet

FIGURE 3.26 Loading the Set Driven Key window and setting the first key so that, when the footRoll attribute is set to “0,” the foot is in the default (original) position. Persephone model by Kenna Hornibrook, 2019.

FIGURE 3.27 Setting the second key so that, when the footRoll is set to “−5,” the heel is planted on the ground and the toe is in the air. This image shows the geometry being deformed by the joints using the SKIN deformer as discussed in Chapter 12. This deformation is to show a better visual of what is happening, but only your joints will be moving at this point. Persephone model by Kenna Hornibrook, 2019.

j. k.

In the Driver section of the Set Driven Key window, click on left_ikFoot_ anim to select it and, in the CHANNEL BOX, change footRoll to “5.” In the Driven section of the Set Driven Key window, click on left_ ikBall_pivot_anim to select it and, in the CHANNEL BOX, change rotateX to “40.” (This is a suggested number that may need to be changed based on your character’s model. For example, Persephone is wearing boots, so I needed to change this number to 25 since her boots have a limited range of motion.) 97

An Essential Introduction to Maya Character Rigging

l.

m.

n.

o.

In the Set Driven Key window, click Key . (The second pose is already keyed at the default position, so this is the third pose of the foot roll – the heel leaving the ground with the ball on the ground.) In the Driven section of the Set Driven Key window, click on left_ ikToe_pivot_anim to select it and, in the Set Driven Key window, click Key . (This sets a key on the left_ikToe_pivot_anim to hold its current position.) (Figure 3.28) In the Driver section of the Set Driven Key window, click on left_ ikFoot_anim to select it and, in the CHANNEL BOX, change footRoll to “10.” In the Driven section of the Set Driven Key window, click on left_ ikToe_pivot_anim, hold down the (ctrl PC or ⌘ MAC) key and click left_ikBall_pivot_anim to select them, and, in the CHANNEL BOX, change rotateX to “20.”

In the Set Driven Key window, click Key . (This sets the key for the fourth pose of the foot roll – the ball leaving the ground with the tip of the toe on the ground.) (Figure 3.29) 3. Test the foot roll to make sure that it works properly. a. In the Driver section of the Set Driven Key window, click on left_ ikFoot_anim to select it. b. In the CHANNEL BOX, click on the words Foot Roll. c. Place your cursor in the PERSPECTIVE window, click and hold your middle mouse button (MMB), and drag left to right to see the foot roll. d. Click [ctrl+z] once to undo. e. [File > Save As] Save a copy of your scene file. f. Repeat for the right leg. p.

FIGURE 3.28 Setting the third key so that when the footRoll is set to “5,” the ball is planted on the ground, and the heel is in the air. Persephone model by Kenna Hornibrook, 2019.

98

Bipedal Legs and Feet

FIGURE 3.29 Setting the fourth key so that when the footRoll is set to “10,” the ball lifts off of the ground with the heel in the air. Persephone model by Kenna Hornibrook, 2019.

Remember, if you make a mistake, you can start all over again by breaking the connections in the CHANNEL BOX. In the OUTLINER, select the left_ heel_pivot locator, hold down the (ctrl) key, click the left_toe_pivot locator and the left_ball_pivot locator, then click on the word RotateX in the CHANNEL BOX, RMB, and choose “break connections” which will delete the keyframes – and you can start again. Alternatively, you can open your last saved file if you saved before beginning. 4. Make the remaining attributes function using the Connection Editor. Do the following: a. Go to [Window > General Editors > Connection Editor]. b. In the OUTLINER, select the left_ikFoot_anim and click

c.

Reload Left . On the left side of the window, scroll down to the bottom of the list and choose “heelTwist.” In the OUTLINER, select the left_ikHeel_pivot_anim and click

d.

Reload Right . On the right side of the window, scroll down to Rotate and click on the (+) to open the values. Choose “rotateY” to make the connection (Figure 3.30). On the left side of the window, choose “toeTwist.”

e.

f. g.

Select the left_ikToe_pivot_anim and click Reload Right Scroll down to Rotate and click on the (+) to open the values. Choose “rotateY” to make the connection (Figure 3.31). On the left side of the window, choose “toeWiggle.” Select the left_ikToe_wiggle_anim and click Reload Right Scroll down to Rotate and click on the (+) to open the values. Choose “rotateX” to make the connection (Figure 3.32). 99

An Essential Introduction to Maya Character Rigging

FIGURE 3.30 Using the connection editor to create a direct relationship between the left_ikFoot_ anim.heelTwist attribute and the left_heel_Pivot.rotateY attribute.

FIGURE 3.31 Using the connection editor to create a direct relationship between the left_ikFoot_anim.toeTwist attribute and the left_toe_Pivot.rotateY attribute.

100

Bipedal Legs and Feet

FIGURE 3.32 Using the connection editor to create a direct relationship between the left_ ikFoot_anim.toeWiggle attribute and the left_toe_wiggle.rotateX attribute.

5. Select the left_ikHeel_pivot_anim and press [ctrl+h] to hide it. 6. Test the attributes to make sure that it works properly by doing the following: a. In the OUTLINER, click on left_ikFoot_anim to select it. b. In the CHANNEL BOX, click on the words Heel Twist. c. Place your cursor in the PERSPECTIVE window, click and hold your middle mouse button (MMB), and drag left to right to see the heel twist. d. Click [ctrl+z] once to undo. 7. Repeat the test for Toe Twist and Toe Wiggle. 8. Repeat the connections for the right leg. 9. [File > Save As] Save a copy of your scene file. Of course, these are minimal controls. You may want to add additional control using either the connection editor or Set Driven Key. An example would be: Long name: enter “footTilt” (There are NO minimum or maximums for “footTilt”) and connect to left_heel_pivot RotateZ Just make sure you are not making a connection over the RotateX values of the left_ikHeel_pivot_anim, left_ikToe_pivot_anim, or left_ikBall_pivot_ anim, since they are being controlled by the left_ikFoot_anim.footRoll or the Set Driven Key will no longer work. Alternatively, you could use individual attributes instead of one footRoll attribute to control those rotations instead. 101

Chapter 4

Bipedal Spine and Neck • • • • •

Workflow Introduction Creating a Ribbon Spine for a Biped Creating a Ribbon Neck for a Biped Creating an IK Spline Spine and Neck for a Biped

Workflow Figure 4.1

Introduction A human spine (also known as the backbone) is made up of 33 vertebrae, which begins at the base of the skull and stretches to the pelvis. Fortunately, our digital characters do not need as many joints to create believable motion in the spine. For simplified rigging purposes, we divide the spine into two parts: the back and the neck. The neck area is equivalent to the cervical spine, and the back is equivalent to the thoracic and lumbar spine. It is a good idea to study and gain a basic understanding of the musculoskeletal system anatomy, which can really help a rigger and an animator understand the bend points within the body and how to create plausible motion in digital characters.

Creating a Ribbon Spine for a Biped Traditionally, spines are created using IK splines; however, the spline IK awkwardly flips at 180°, so many animators and riggers like to work with the ribbon spine method. In a nutshell, the ribbon spine uses a NURBS plane with hair follicles to control the vertebrae running through the spine, with an overlying FK joint system to control the NURBS plane. A combination of FK and Ribbon Spine gives a more natural motion with fewer and easier pose controls for the animator.

103

An Essential Introduction to Maya Character Rigging

FIGURE 4.1 Bipedal Spine and Neck Workflow.

104

Bipedal Spine and Neck Creating the Back Ribbon 1. Continue working or open your last saved version of the file. 2. Continue working in X-ray mode. 3. Create a Ribbon Spine by doing the following: a. Go to [Create > Nurbs Primitives > Plane □ ] i. change the Axis to Z-axis ii. change Length to 9 iii. change Surface degree to 1 Linear iv. change V patches to 9 v. click Create (Figure 4.2) The number of V patches will correspond with the number of joints in the spine. If the character has a shorter spine, fewer than nine can be used. For a fluid, moving spine, a minimum of five or six joints is necessary. By the same token, if the spine is longer, more can be used. b.

c. d. e. f.

Scale and move into geometry starting at the pelvis to the collarbone (you can reshape the plane on the CV level (F8) choosing the top CV and using the rotate tool with soft selection to match the shape of the geometry from the side if it is not straight, and repeating with the bottom CV to make an “S” curve. The width of the plane should remain straight and equal when looking at the front). With the NURBS plane selected, [Modify > Freeze Transformations] and [Edit > Delete by Type > History] Rename the NURBS plane to back_spine_ribbon_plane [File > Save As] Save the file before continuing to the next step (Figure 4.3). Choose the FX Menu Set (F5) or use your Hotbox (spacebar)

FIGURE 4.2 Creating a NURBS plane for the spine ribbon. Persephone model by Kenna Hornibrook, 2019.

105

An Essential Introduction to Maya Character Rigging

FIGURE 4.3 Rotating CVs of a NURBS plane using the soft select to reshape the spine ribbon.

With the back_spine_ribbon_plane selected, go to [nHair > Create Hair □ ] i. change the Output to NURBS curves ii. change U count to 1 iii. change V count to 9

g.

h.

i. j. k.

l. m. n. o. 106

iv. click Create Hairs (Figure 4.4) In the OUTLINER, i. delete hairSystem1 ii. delete hairSystem1OutputCurves iii. delete nucleus1 shift left mouse button (LMB) and click on the [+] on the left of hairSystem1Follicles group Select and delete all curve group nodes. Rename hair follicles starting at the bottom in the VIEWPORT (should be top of the list in the OUTLINER) to backSpineFollicle1, backSpineFollicle2, backSpineFollicle3, backSpineFollicle4, backSpineFollicle5, backSpineFollicle6, backSpineFollicle7, backSpineFollicle8, backSpineFollicle9. Rename hairSystem1Follicles group to back_spine_follicles_grp (Figure 4.5). Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). Go to [Skeleton > Create Joints] Use default settings in the OPTION BOX. Click Reset Tool . Create a joint by clicking once onto the grid (It does not matter where you click on the grid).

Bipedal Spine and Neck

FIGURE 4.4 Creating nHair for the ribbon spine.

FIGURE 4.5 Deleting objects and groups that are not needed and renaming the follicles and follicles group.

p. q. r. s. t. u.

Rename the joint to back_spine_skin_jnt_1. [ctrl+d] 8 times to duplicate this joint (for a total of 9 joints). Select all of the joints and [ctrl+g] to group. Rename the group back_spine_skin_jnt_grp. shift LMB click on the [+] on the left of back_spine_skin_jnt_grp to expand (Figure 4.6). In the OUTLINER, 107

An Essential Introduction to Maya Character Rigging

FIGURE 4.6 Creating and renaming nine back_spine_skin joints. Persephone model by Kenna Hornibrook, 2019.

shift LMB click on the [+] on the left of back_spine_follicles_grp to expand. w. Select backSpineFollicle1 (the leader, or target) and (ctrl PC or ⌘ MAC) i. LMB click on back_spine_skin_jnt_1 (the follower, or object) ii. go to [Constrain > Parent □ ] iii. UNCHECK Maintain offset: □ iv. click Add (this moves the joint to the position of the follicle) x. Repeat for backSpineFollicle2, backSpineFollicle3, backSpineFollicle4, backSpineFollicle5, backSpineFollicle6, backSpineFollicle7, backSpineFollicle8, backSpineFollicle9 and their corresponding joints. Once you have the Follicle and Joint selected, you can press the (g) key to repeat the last command to create the parent constraint. 4. [File > Save As] Save a copy of your scene file (Figure 4.7). v.

Creating a Control System for the Ribbon 1. Continue working or open your last saved version of the file. 2. Create control joints for the Ribbon Spine by doing the following: a. In the OUTLINER or VIEWPORT, select the back_spine_skin_jnt_1, back_spine_skin_jnt_5, and back_spine_skin_jnt_9 (bottom, middle, and top joints). b. [ctrl+d] once to duplicate these joints. c. [shift+p] to unparent the duplicate joints. d. In the CHANNEL BOX with the duplicated joints still selected, change the radius for the three duplicated joints to .8 or larger so you can see these joints larger than the others. e. In the OUTLINER, shift LMB click on the [+] on the left of each joint and delete the duplicated constraints. f. Rename the joints back_spine_hip_anim_jnt, back_spine_ middle_anim_jnt and back_spine_shoulder_anim_jnt. 108

Bipedal Spine and Neck

FIGURE 4.7 Parent constraining the joints (followers) to the follicles (leaders). Remember to select the leader (follicle) first, then select the corresponding joint. Once the first constraint has been created, pressing (g) after selecting a new leader and a new follower will repeat the parent constraint command. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.8 Creating joints that will control the ribbon spine and changing their Rotation Order to ZXY in the ATTRIBUTE EDITOR. Persephone model by Kenna Hornibrook, 2019.

g.

In the ATTRIBUTE EDITOR, change the rotation order for all three joints to ZXY (Figure 4.8). h. Choose the Modeling Menu Set (F2) or use your Hotbox (spacebar). i. Select the back_spine_ribbon_plane. j. Go to [Surfaces > Rebuild □ ]. i. change Direction: ◉V ii. change Number of U spans: 1 iii. change Number of V spans: 9 iv. click Rebuild . This creates a more fluid spline (Figure 4.9). k. Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). 109

An Essential Introduction to Maya Character Rigging

FIGURE 4.9 Rebuilding the NURBS plane for more fluid motion. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.10 Using a deformer to control the NURBS plane by skinning the control joints to the plane. Persephone model by Kenna Hornibrook, 2019.

l. m. n.

In the OUTLINER, select back_spine_hip_anim_jnt, back_spine_ middle_anim_jnt and back_spine_shoulder_anim_jnt In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click back_spine_ribbon_plane. Go to [Skin > Bind Skin □ ]. i. change Bind to: to Selected joints ii. change Max influences: to 3

iii. click Bind Skin (Figure 4.10). In the OUTLINER, select back_spine_ribbon_plane. Go to [Skin > Paint Skin Weights □ ]. (Paint skin weights will smooth out influence drop-off for each joint.) q. Under Influences, select back_spine_middle_anim_jnt. i. change Paint operation: ◉Smooth ii. click the Flood button twice (Figure 4.11). o. p.

110

Bipedal Spine and Neck

FIGURE 4.11 Using Paint Skin Weights tool to smooth the drop-off of the joint influence. Persephone model by Kenna Hornibrook, 2019.

3. [File > Save As] Save a copy of your scene file. 4. Create or import controllers for creating a control system for the Spine by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a provided control. Rename the curve hip_spine_anim. b. Move, scale, and rotate the controller around the base of the spine, moving the pivot into the back_spine_hip_anim_jnt. (In object mode, with the move tool selected, hold down the (d) key, and also hold down the (v) key, click on the center of the pivot and drag into the joint.) c. With the hip_spine_anim selected, go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. d. In the ATTRIBUTE EDITOR, change the rotation order for the hip_ spine_anim to “ZXY.” e. Repeat a-d to create the middle_spine_anim and shoulder_spine_anim. f. Duplicate the middle_spine_anim and rename to middle_fkSpine_anim. g. Scale middle_spine_anim down slightly. h. With the middle_spine_anim selected, go to [Modify > Freeze Transformations] (Figures 4.12 and 4.13). i. Parent constrain each control joint to the controllers. j. In the OUTLINER, select hip_spine_anim (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on back_spine_hip_anim_jnt (the follower, or object). k. Go to [Constrain > Parent □ ]. i. CHECK Maintain offset: l.

ii. click Add Go to [Constrain > Scale □ ]. i. CHECK Maintain offset: ii. click Add 111

An Essential Introduction to Maya Character Rigging

FIGURE 4.12 If your joints are not aligned with the world, and you want the controller to align with the joint chain, simply group the controller, parent the group to the joint, move the pivot into the joint, and enter “0” in the rotations of the group. Then unparent the group from the joints and rename the group. This rotates the controller to align with the shape of the geo but keeps the controller rotations frozen. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.13 Creating and positioning NURBS curve shapes for the spine controllers. Be sure the pivot location of each controller is in the correct place. Persephone model by Kenna Hornibrook, 2019.

Repeat for middle_spine_anim and shoulder_spine_anim and their corresponding joints. Speed up the process by selecting the _anim first, then (ctrl PC or ⌘ MAC) LMB click the _jnt second, and press (g) to repeat the last command (Figure 4.14). 5. Create or import controllers for creating a control system for the Centerof-Gravity by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve COG_anim. b. Move, scale, and rotate the controller around the base of the spine, moving the pivot into the back_spine_hip_anim_jnt. (with the move tool selected, hold down the “d” key, and also hold down the “v” key, click on the center of the pivot and drag into the joint). m.

112

Bipedal Spine and Neck

FIGURE 4.14 Parent constraining the back_spine_hip_anim_jnt (follower) to the hip_spine_anim (leader). Remember to select the leader (controller) first, then select the corresponding joint. Once the first constraint has been created, press (g) after selecting a new leader and a new follower to repeat the parent constraint command. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.15 Positioning NURBS curve shapes for the center-of-gravity (COG) control. Be sure the pivot location is in the base of the spine. Persephone model by Kenna Hornibrook, 2019.

c. d. e. f. g. h. i. j.

With the COG_anim selected, go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. In the ATTRIBUTE EDITOR, change the rotation order for the COG_ anim to “ZXY” (Figure 4.15). Select the middle_spine_anim. In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click middle_fkSpine_ anim and press (p) to parent. Select the shoulder_spine_anim. In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click middle_fkSpine_ anim and press (p) to parent. Select the hip_spine_anim and middle_fkSpine_anim. In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click COG_anim and press (p) to parent (Figure 4.16). 113

An Essential Introduction to Maya Character Rigging

FIGURE 4.16 Parenting the spine controllers into a functional hierarchy. Persephone model by Kenna Hornibrook, 2019.

Cleanup for the Back Ribbon 1. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the channel a dark gray, hold down the RMB (right mouse button) and choose “lock and hide selected.” If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. If you are very new to rigging, I recommend only locking the channel to make sure mistakes are not made. It is easier to right-click to unlock later if necessary. A hidden channel can be made visible again, but it is a time-consuming process. CONTROL NAME middle_spine_anim,

visibility

hip_spine_anim, middle_fkSpine_anim, shoulder_spine_anim, COG_anim

scaleX, scaleY, scaleZ, and visibility

b.

c. d. e. f.

114

LOCK (select in CHANNEL BOX, RMB)

Select back_spine_shoulder_anim_jnt, back_spine_middle_ anim_jnt, back_spine_hip_anim_jnt and [ctrl+g] to group, and rename it back_spine_anim_jnt_grp. Select back_spine_skin_jnt_grp and back_spine_anim_jnt_grp and [ctrl+g] to group, and rename it back_jnt_grp. Select back_spine_ribbon_plane, back_spine_follicles_grp, and [ctrl+g] to group, and rename it spine_doNotTouch_grp. Select the spine_doNotTouch_grp, and in the ATTRIBUTE EDITOR [ctrl+a] UNCHECK □ Inherits Transform. Hide follicles and joints so that, during the animation process, they are not accidentally selected and keyframed:

Bipedal Spine and Neck i. In the OUTLINER, shift LMB click on the [+] on the left of the spine_doNotTouch_grp, select the back_spine_follicles_grp, and press (h) to hide it. ii. In the OUTLINER, shift LMB click on the [+] on the left of the back_jnt_grp, select the back_spine_anim_jnt_grp and press (h) to hide it. 2. [File > Save As] Save a copy of your scene file (Figure 4.17).

The back_jnt_grp should be parented to the COG_anim; however, to show what happens when a rig explodes at the end of Chapter 12, it is not being parented at this time. Make sure to parent back_jnt_grp to the COG_anim now if you are not working through the entire book.

Creating a Ribbon Neck for a Biped The cervical section of the spine begins at the clavicle area (or base of the neck) and stops at the base of the skull, just below the ear. This section is created separately to ensure independent movement of the head and neck from the rest of the spine.

Creating the Neck Ribbon 1. 2. 3.

Continue working or open your last saved version of the file. Continue working in X-ray mode. Create a Ribbon Spine by doing the following: a. Go to [Create > Nurbs Primitives > Plane □ ] i. change the Axis to Z-axis ii. change Length to 5 iii. change Surface degree to 1 Linear iv. change V patches to 5

v. click Create (Figure 4.18). The number of V patches will correspond with the number of joints in the neck. If the character has a shorter neck, fewer than five can be used. In the same token, if the spine is longer (such as a giraffe), more could be used.

b. Scale and move into geometry starting at the collarbone to the base of the ear (you can reshape the plane on the CV level (F8) choosing the top CV and using the rotate tool with soft selection to match the shape of the geometry from the side if it is not straight, and repeating with the bottom CV to make a curve. The falloff radius may need to be adjusted. Holding down the (b) key and left mouse dragging is an interactive way of adjusting the falloff radius of the soft selection option. Tapping the (b) key will toggle the soft selection on and off. The width of the plane should remain straight and equal when looking at the front) 115

An Essential Introduction to Maya Character Rigging

FIGURE 4.17 The OUTLINER showing the hierarchy of the back spine ribbon setup.

116

Bipedal Spine and Neck

FIGURE 4.18 Creating a NURBS plane for the neck ribbon. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.19 Rotating CVs of a NURBS plane using the soft select to reshape the spine ribbon. Persephone model by Kenna Hornibrook, 2019.

c. d. e. f. g.

With the NURBS plane selected, [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. Rename the NURBS plane to neck_spine_ribbon_plane. [File > Save As] Save the file before continuing to the next step (Figure 4.19). Choose the FX Menu Set (F5) or use your Hotbox (spacebar). With the neck_spine_ribbon_plane selected, go to [nHair > Create Hair □ ] 117

An Essential Introduction to Maya Character Rigging i. change the Output to NURBS curves ii. change U count to 1 iii. change V count to 5 h.

i. j. k.

l. m. n. o. p. q. r. s. t. u. v.

iv. click Create Hairs (Figure 4.20). In the OUTLINER, i. delete hairSystem1 ii. delete hairSystem1OutputCurves iii. delete nucleus1. Shift LMB click on the [+] on the left of hairSystem1Follicles group. Select and delete all curve group nodes. Rename hair follicles starting at the bottom in the VIEWPORT (should be top of the list in the OUTLINER) to neckSpineFollicle1, neckSpineFollicle2, neckSpineFollicle3, neckSpineFollicle4, neckSpineFollicle5. Rename hairSystem1Follicles group to neck_spine_follicles_grp (Figure 4.21). Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). Go to [Skeleton > Create Joints] Use default settings in the OPTION BOX. Click Reset Tool . Create a joint by clicking once onto the grid (It does not matter where you click on the grid). Rename the joint to neck_spine_skin_jnt_1. [ctrl+d] 4 times to duplicate this joint (for a total of 5 joints). Select all of the joints and [ctrl+g] to group. Rename the group neck_spine_skin_jnt_grp. Shift LMB click on the [+] on the left of neck_spine_skin_jnt_grp to expand (Figure 4.22). In the OUTLINER, shift LMB click on the [+] on the left of neck_spine_ follicles_grp to expand. Select neckSpineFollicle1 (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on neck_spine_skin_jnt_1 (the follower, or object).

FIGURE 4.20 Creating nHair for the ribbon neck. Persephone model by Kenna Hornibrook, 2019.

118

Bipedal Spine and Neck

FIGURE 4.21 Deleting objects and groups that are not needed and renaming the follicles and follicles group.

FIGURE 4.22 Creating and renaming five neck_spine_skin joints. Persephone model by Kenna Hornibrook, 2019.

119

An Essential Introduction to Maya Character Rigging

FIGURE 4.23 Parent constraining the joints (followers) to the follicles (leaders). Remember to select the leader (follicle) first, then select the corresponding joint. Once the first constraint has been created, press (g) after selecting a new leader and a new follower to repeat the parent constraint command. Persephone model by Kenna Hornibrook, 2019.

w.

x.

y.

Go to [Constrain > Parent □ ]. i. UNCHECK Maintain offset: □ ii. click Add (this moves the joint to the position of the follicle). Repeat for neckSpineFollicle2, neckSpineFollicle3, neckSpineFollicle4, neckSpineFollicle5 and their corresponding joints. Once you have the Follicle and Joint selected, you can press the (g) key to repeat the last command to create the parent constraint. [File > Save As] Save a copy of your scene file (Figure 4.23).

Creating a Control System for the Ribbon 1. Continue working or open your last saved version of the file. 2. Create control joints for the Ribbon Spine by doing the following: a. In the OUTLINER, select the neck_spine_skin_jnt_1 and neck_ spine_skin_jnt_5 (bottom and top joints) b. [ctrl+d] once to duplicate these joints. c. [shift+p] to unparent the duplicate joints. d. In the CHANNEL BOX with the duplicated joints still selected, change the radius for the two duplicated joints to .8 or larger so you can see these joints larger than the others. e. In the OUTLINER, shift LMB click on the [+] on the left of each joint and delete the duplicated constraints. f. Rename the joints neck_spine_anim_jnt (bottom) and head_ spine_anim_jnt (top). g. In the ATTRIBUTE EDITOR, change the rotation order for all three joints to ZXY (Figure 4.24). h. Choose the Modeling Menu Set (F2) or use your Hotbox (spacebar). i. Select the neck_spine_ribbon_plane. 120

Bipedal Spine and Neck

FIGURE 4.24 Creating joints that will control the neck ribbon and changing their Rotation Order to ZXY in the ATTRIBUTE EDITOR. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.25 Rebuilding the NURBS plane for more fluid motion. Persephone model by Kenna Hornibrook, 2019.

j.

Go to [Surfaces > Rebuild □ ] i. change Direction: ◉V ii. change Number of U spans: 1 iii. change Number of V spans: 5

iv. click Rebuild This creates a more fluid spline (Figure 4.25). Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). In the OUTLINER, select neck_spine_anim_jnt and head_spine_anim_jnt. n. In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click neck_spine_ribbon_plane. o. Go to [Skin > Bind Skin □ ]. i. change Bind to: to Selected joints ii. change Max influences: to 3

k. l. m.

iii. click Bind Skin (Figure 4.26) 121

An Essential Introduction to Maya Character Rigging

FIGURE 4.26 Using a deformer to control the NURBS plane by skinning the control joints to the plane. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.27 Using Paint Skin Weights tool to smooth the drop-off of the joint influence. Persephone model by Kenna Hornibrook, 2019.

In the OUTLINER, select neck_spine_ribbon_plane. Go to [Skin > Paint Skin Weights □ ]. Paint skin weights will smooth out influence drop-off for each joint. r. Under Influences, select neck_spine_anim_jnt i. change Paint operation: ◉Smooth ii. click the Flood button twice s. Under Influences, select neck_spine_anim_jnt and head_spine_anim_jnt i. change Paint operation: ◉Smooth ii. click the Flood button twice 3. [File > Save As] Save a copy of your scene file (Figure 4.27). 4. Create or import controllers for creating a control system for the Spine by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a provided control. Rename the curve head_anim. b. Move, scale, and rotate the controller around the base of the head, moving the pivot into the head_spine_anim_jnt by first selecting p. q.

122

Bipedal Spine and Neck

FIGURE 4.28 Creating and positioning NURBS curve shapes for the head and neck control. Be sure the pivot location of the controller is in the same place as the head_spine_anim_jnt. Persephone model by Kenna Hornibrook, 2019.

f.

head_anim, then the head_spine_anim_jnt and go to [Modify > Match Transformation > Match Pivots]. With the head_anim selected, go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. In the ATTRIBUTE EDITOR, change the rotation order for the head_ anim to “ZXY” (Figure 4.28). Parent constrain the control joints to the controllers: In the OUTLINER, select head_anim (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on head_spine_anim_jnt (the follower, or object). Go to [Constrain > Parent □ ]

g.

ii. click Add Go to [Constrain > Scale □ ]

c. d. e.

i. CHECK Maintain offset:

i. CHECK Maintain offset: h.

i.

ii. click Add In the OUTLINER, select shoulder_spine_anim (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on neck_spine_anim_jnt (the follower, or object) Go to [Constrain > Parent □ ] i. CHECK Maintain offset:

j.

ii. click Add Go to [Constrain > Scale □ ] i. CHECK Maintain offset:

k. l.

ii. click Add (Figure 4.29) In the OUTLINER, select the head_anim, then [ctrl+g] to group. Rename this group head_anim_constraint_grp Move, scale, and rotate the controller around the base of the head, moving the pivot into the head_spine_anim_jnt by first selecting head_anim_constraint_grp, then the head_spine_anim_jnt and go to [Modify > Match Transformation > Match Pivots]. 123

An Essential Introduction to Maya Character Rigging

FIGURE 4.29 Parent and scale constraining the head_spine_anim_jnt (follower) to the head_anim (leader). Remember to select the leader (controller) first, then select the corresponding joint. Repeat for neck_spine_anim_jnt (follower) to the shoulder_spine_anim (leader). Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.30 Parent constraining the head control to keep it out of the direct hierarchy, preparing for further setup in Chapter 8. Persephone model by Kenna Hornibrook, 2019.

m.

n.

In the VIEWPORT, select shoulder_spine_anim (the leader, or target) and in the OUTLINER (ctrl PC or ⌘ MAC) LMB click on head_anim_ constraint_grp (the follower, or object). Go to [Constrain > Parent □ ] i. CHECK Maintain offset:

ii. click Add 5. [File > Save As] Save a copy of your scene file (Figure 4.30).

Cleanup for the Neck Ribbon 1. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the 124

Bipedal Spine and Neck channel is dark gray, hold down the RMB and choose “lock and hide selected.” If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. If you are very new to rigging, I recommend only locking the channel to make sure mistakes are not made. It is easier to right-click to unlock later if necessary. A hidden channel can be made visible again, but it is a time-consuming process. CONTROL NAME

LOCK (select in CHANNEL BOX, RMB)

head_anim

scaleX, scaleY scaleZ, and visibility

Select head_spine_anim_jnt and neck_spine_anim_jnt [ctrl+g] to group, and rename it neck_spine_anim_jnt_grp. c. Select neck_spine_skin_jnt_grp and neck_spine_anim_jnt_grp, and [ctrl+g] to group, and rename it neck_jnt_grp. d. In the OUTLINER, select neck_spine_follicles_grp and neck_spine_ ribbon_plane (ctrl PC or ⌘ MAC) LMB click on spine_doNotTouch_ grp, and press (p) to parent. e. Hide follicles and joints so that during the animation process, they are not accidentally selected and keyframed: i. in the OUTLINER, shift LMB click on the [+] on the left of the spine_doNotTouch_grp, select neck_spine_follicles_grp, and press (h) to hide it ii. in the OUTLINER, shift LMB click on the [+] on the left of the neck_jnt_grp, Select the neck_spine_anim_jnt_grp and press (h) to hide it f. Select head_anim_constraint_grp, back_jnt_grp, neck_jnt_grp, and spine_doNotTouch_grp, [ctrl+g] to group, and rename it spine_grp. g. Select the spine_grp, and in the ATTRIBUTE EDITOR [ctrl+a] UNCHECK □ Inherits Transform. 2. File > Save As] Save a copy of your scene file (Figure 4.31). b.

The neck_jnt_grp should be parented to the COG_anim; however, to show what happens when a rig explodes at the end of Chapter 12, it is not being parented at this time. Make sure to parent neck_jnt_grp to the COG_anim now, if you are not working through the entire book. Also, the spine_grp should have kept the CHECKMARK

Inherits Transform in the ATTRIBUTE EDITOR.

Creating an IK Spline Spine and Neck for a Biped As stated earlier in this chapter, traditionally, spines are created using IK splines. Even though the spline IK awkwardly flips at 180°, many animators and riggers still prefer to work with IK Spline spines; therefore, the following section explains how to create this setup. The following would be followed INSTEAD of setting up a Ribbon Spine and Neck. 125

An Essential Introduction to Maya Character Rigging

FIGURE 4.31 The OUTLINER showing the hierarchy of the neck ribbon setup.

In a nutshell, the spine joints are controlled by an IK Spine, which uses a NURBS curve to control the vertebrae running through the spine, with an overlying FK joint system to control the NURBS curve. A combination of FK and IK Spine gives a more natural motion with fewer and easier pose controls for the animator. See Chapter 2 for more information and potential uses for the IK Spline. 126

Bipedal Spine and Neck Joint Placement for a Spine and Neck Skeleton 1. Continue working from Chapter 3 or open your last saved version of the file from the end of Chapter 3. 2. Continue working in X-ray mode. 3. Create the spine joint hierarchy by doing the following: a. Press (F3) to change to the Rigging Menu Set. b. In the SIDE orthographic view, place five joints for the leg as follows: c. Select [Skeleton > Create Joints □ ] i. Under Orientation Settings keep Primary Axis set to X change Secondary Axis to Z and change Secondary Axis World Orientation to Z + ii. Under Bone Radius Settings change Long bone radius to 0.5000 d. In the SIDE orthographic view, click at the base up the spine and hold down the shift key to place a total of 9 straight joints for the spine, ending at the clavicle area as follows (Figure 4.32): e. Rename these joints back_spine_skin_jnt_1, back_spine_ skin_jnt_2, back_spine_skin_jnt_3, back_spine_skin_jnt_4, back_spine_skin_jnt_5, back_spine_skin_jnt_7, back_spine_ skin_jnt_8, and back_spine_skin_jnt_9. f. In the SIDE orthographic view, place five joints for the neck as follows (Figure 4.33): g. Rename these joints neck_spine_skin_jnt_1, neck_spine_skin_ jnt_2, neck_spine_skin_jnt_3, neck_spine_skin_jnt_4, and neck_spine_skin_jnt_5 4. [File > Save As] Save your scene file.

FIGURE 4.32 Placing and renaming the spine joints. Placing the joints in an S curve is possible but not advised for someone new to rigging. When running the IK through curved joints, the solver will move the joint positions; therefore, it is best to keep the joints straight for the neck and spine when using Spline IK. Persephone model by Kenna Hornibrook, 2019.

127

An Essential Introduction to Maya Character Rigging

FIGURE 4.33 Placing and renaming the neck joints. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.34 Verifying the local rotation axes in the spine and neck joints. The spine and neck should have the X-axis pointing toward the child (up) and the Z-axis coming forward. The last joint of the chain will align with the World axes. Persephone model by Kenna Hornibrook, 2019.

Verifying the Joint Local Rotation Axis 1. Continue working or open your last saved version of the file. 2. Evaluate the axes and determine if any need to be fixed. a. Select the back_spine_skin_jnt_1 and neck_spine_skin_jnt_1. b. Press (F8) (Select By Component type) choose “?” to display [Local Rotation Axes] c. The spine and neck should have the X-axis pointing up toward the child and the Z-axis coming forward (Figure 4.34). 128

Bipedal Spine and Neck 3. If there is a problem with the axis orientation of the spine or neck: a. Press (F8) to return to Object type (Select By Object Type) and open the OUTLINER [Windows > Outliner]. b. Select the top of the joint chain (back_spine_skin_jnt_1 or neck_spine_skin_jnt_1). c. Reorient by going to [Skeleton > Orient Joint □ ] i. Under Orientation Settings keep Primary Axis set to X change Secondary Axis to Z and change Secondary Axis World Orientation to Z + ii. click Orient 4. [File > Save As] Save your scene file.

Creating a Control System for the IK Spline Spine and Neck For the leg control, we will only be setting up an IK control system since, most of the time, our characters will be walking on something. If you think you need an FK control system, you can follow the setup for the arms and adapt it to the legs. 1. Continue working or open your last saved version of the file. 2. To make selection easier open your OUTLINER by going to [Windows > Outliner]. 3. Create an FK joint chain and an IK joint chain for the back spine by doing the following: a. Select the back_spine_skin_jnt_1 joint. b. Add IK_prefix to the chain by selecting [Modify > Prefix Hierarchy Names…] and set the following: i. enter prefix: “IK_” ii. click OK c. Duplicate the IK chain by going to [Edit > Duplicate] or press (ctrl+d). d. Select the IK_spine7 joint chain and rename the hierarchy by going to [Modify > Search and Replace Names…] and set the following: i. search for: “IK” ii. replace with: “FK” iii. click Apply e. Select the IK_spine7 joint chain and rename the hierarchy by going to [Modify > Search and Replace Names…] and set the following: i. search for: “skin” ii. replace with: “anim” iii. click Replace f. Select FK_back_spine_anim_jnt_10 and in the CHANNEL BOX, rename it to FK_back_spine_anim_jnt_1. g. Select the IK_back_spine_skin_jnt_1 joint chain and press (h) to hide the chain. h. Select the FK_back_spine_anim_jnt_2, FK_back_spine_anim_jnt_4, FK_back_spine_anim_jnt_7, and FK_back_spine_anim_jnt_8 and go to [Skeleton > Remove Joints]. 129

An Essential Introduction to Maya Character Rigging

FIGURE 4.35 Repositioning and renaming the FK spine joints. Persephone model by Kenna Hornibrook, 2019.

Rename FK_back_spine_anim_jnt_1 to hip_fkSpine_anim_jnt, FK_back_spine_anim_jnt_3 to lower_fkSpine_anim, FK_back_spine_ anim_jnt_5 to middle_fkSpine_anim, FK_back_spine_anim_jnt_9 to shoulder_fkSpine_anim_jnt (the lower and middle joints do not have_jnt suffix because they will become the actual control to be keyframed). j. Select the move tool by pressing (w), press the (d) key on the keyboard, and reposition (if necessary, only moving the translation of X) the FK_back_spine_anim_jnt_3 joint so that it is level at the waist of your character (bellybutton). Reposition the FK_back_spine_anim_jnt_5 joint (up or down) so that it is level at the base of where your character’s rib cage would be located (Figure 4.35). 4. Create or import a controller for creating a control system for the Centerof-Gravity by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve COG_anim (if imported, you may need to delete the namespace [Windows > General Editors > Namespace Editor], i.

then select delete , and Merge with root . ). Move, scale, and rotate the controller around the base of the spine, moving the pivot into the hip_fkSpine_anim_jnt (with the move tool selected, hold down the “d” and the “v” keys at the same time, click on the center of the pivot, and drag into the joint). c. With the COG_anim selected, go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. d. In the ATTRIBUTE EDITOR, change the rotation order for the COG_ anim to ZXY. 5. [File > Save As] Save your scene file (Figure 4.36). 6. Create controls for the FK spine by doing the following: a. Reorient the FK spine by selecting the hip_fkSpine_anim_jnt and going to [Skeleton > Orient Joint □ ]. b.

130

Bipedal Spine and Neck

FIGURE 4.36 Positioning NURBS curve shapes for the center-of-gravity (COG) control. Be sure the pivot location is in the base of the spine. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.37 The Orient Joint Options for the FK spine joints.

b. c.

d. e.

f.

i. Orientation Primary Axis: choose “Y” ii. Secondary Axis: choose “Z” iii. Secondary axis world orientation: choose +Z (Figure 4.37) Go to [Create > NURBS Primitives > Circle]. Move the circle to where the lower_fkSpine_anim joint is located and scale and rotate if necessary (make sure the pivot is located inside the joint that it will control). Move the circle to fit around your character’s geometry by going into component mode: [Modify > Freeze Transformations □ ] i. UNCHECK Freeze: □ Translate ii. click Freeze Transform Move the circle back to the origin by typing 0 0 0 in the Translate XYZ of the CHANNEL BOX. 131

An Essential Introduction to Maya Character Rigging g.

h.

j.

k.

l. m.

n. o.

In the MEL command line, type (or copy/paste) the MEL script below:parent -add -shape nurbsCircleShape1 lower_fkSpine_anim. Change the rotation order for the lower_fkSpine_anim to ZXY. i. in the OUTLINER, go to [Display] and make sure there is a CHECKMARK next to Shapes In the OUTLINER, hold down the shift key and click on the plus sign [+] next to the hip_fkSpine_anim_jnt to open the hierarchy and display the children. Double click on nurbsCircleShape1 and rename it lower_fkSpine_ animShape. (Since this is an instanced object, we must rename the nurbsCircleShape1so that Maya does not get confused if we create more NURBS circles later.) In the OUTLINER, select nurbsCircle1 hit the delete key (Figure 4.38). Repeat this process for the middle_fkSpine_anim: i. go to [Create > NURBS Primitives > Circle] ii. move the circle to where the middle_fkSpine_anim joint is located and scale and rotate if necessary (make sure the pivot is located inside the joint that it will control) iii. [Modify > Freeze Transformations □ ] 1. UNCHECK Freeze: □ Translate 2. Click Freeze Transform iv. move the circle back to the origin by typing 0 0 0 in the Translate XYZ of the CHANNEL BOX v. in the MEL command line, type (or copy/paste) the MEL script below: parent -add -shape nurbsCircleShape1 middle_fkSpine_anim Change the rotation order for the middle_fkSpine_anim to ZXY. In the OUTLINER, hold down the shift key and click on the plus sign [+] next to the hip_fkSpine_anim_jnt to open the hierarchy and display the children.

FIGURE 4.38 Renaming nurbsCircleShape1 to lower_fkSpine_animShape in the OUTLINER.

132

Bipedal Spine and Neck

FIGURE 4.39 Renaming nurbsCircleShape1 to middle_fkSpine_animShape in the OUTLINER. Persephone model by Kenna Hornibrook, 2019.

Double click on nurbsCircleShape1 and rename it middle_fkSpine_animShape. q. In the OUTLINER, select nurbsCircle1 hit the delete key. r. In the OUTLINER, go to [Display] and make sure that you UNCHECK □ Shapes. s. Select the hip_fkSpine_anim_jnt and press (h) to hide it. 7. [File > Save As] Save your scene file (Figure 4.39). 8. Create IK in the spine by doing the following: a. In the OUTLINER, select the IK_back_spine_skin_jnt_1 hierarchy and press (h) to display the chain. b. Go to [Skeleton > Create IK Spline Handle □ ] and click “reset tool” then click close. c. In the PERSPECTIVE window, click on the IK_back_spine_skin_jnt_1 (the bottom spine IK joint) to define the start of the IK joint chain, then click on the IK_back_spine_skin_jnt_9 (the top spine IK joint) to define the end of the chain; an IK handle appears at the end of the chain. d. In the OUTLINER, double-click on ikHandle1 and rename it back_spine_ikHandle. e. Rename effector1 to back_spine_ikHandle_effector. f. Rename curve1 to back_spine_curve. (Curve1 is the spline curve that controls the IK solver.) 9. [File > Save As] Save your scene file (Figure 4.40). 10. Create a control system for the IK spine by doing the following: a. In the OUTLINER, select the hip_fkSpine_anim_jnt and shoulder_fkSpine_anim_jnt. b. [Edit > Duplicate] or press (ctrl+d) then press (shift+p). c. In the OUTLINER, click on the [+] next to hip_fkSpine_anim_jnt1 and delete the children. p.

133

An Essential Introduction to Maya Character Rigging

FIGURE 4.40 Creating and renaming an IK Spline handle solver in the spine. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.41 Creating, renaming, and skinning IK spine joints to the back_spine_curve. Persephone model by Kenna Hornibrook, 2019.

d. e. f. g.

Rename hip_fkSpine_anim_jnt1 to hip_ikSpine_jnt. Rename the duplicated shoulder_fkSpine_anim_jnt to shoulder_ikSpine_jnt. In the OUTLINER, select the back_spine_curve. Then hold down (ctrl PC or ⌘ MAC) and select hip_ikSpine_jnt and shoulder_ikSpine_jnt. Go to [Skin > Bind Skin □ ]. i. change Bind to: to Selected joints ii. change Max influences: to 3

iii. click Bind Skin 11. [File > Save As] Save your scene file (Figure 4.41). 12. Import controllers for creating a control system for the top of the spine or create one by [Create > NURBS Primitives > Circle]. a. Rename the curve shoulder_spine_anim. 134

Bipedal Spine and Neck

FIGURE 4.42 Creating and positioning the shoulder_spine_anim and hip_spine_anim. Persephone model by Kenna Hornibrook, 2019.

b.

Move, Scale, and Translate and make sure the pivot is in the same place as IK_back_spine_skin_jnt_9. c. With the shoulder_spine_anim selected, go to [Modify > Freeze Transformations]. d. Change the rotation order for the shoulder_spine_anim to ZXY. 13. Import controllers for creating a control system for the top of the spine or create one by [Create > NURBS Primitives > Circle]. a. Rename the circle hip_spine_anim. b. Move, Scale, and Translate and make sure the pivot is in the same place as IK_back_spine_skin_jnt_1. c. With the hip_spine_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1). d. Change the rotation order for the hip_spine_anim to ZXY (Figure 4.42). e. Select the back_spine_ikHandle and press (ctrl+a) to open ATTRIBUTE EDITOR. f. Scroll down to the IK Solver Attributes and click on the arrow (>) to open the section. g. Scroll down to the Advanced Twist Controls and click on the arrow (>) to open the section. i. Under Advanced Twist Controls section, put a CHECKMARK to “Enable Twist Controls” and set the following: ii. World Up Type: choose “Object Rotation Up (Start/End)” iii. Up Axis: choose “Negative Z” iv. Up Vector: type “0” “0” “-1” v. Up Vector 2: type “0” “0” “-1” vi. World Up Object: type “hip_spine_anim” vii. World Up Object 2: type “shoulder_spine_anim” 14. [File > Save As] Save your scene file (Figure 4.43).

next

135

An Essential Introduction to Maya Character Rigging

FIGURE 4.43 Advanced twist options for the back_spine_ikHandle.

Cleanup for the Back IK Spline 1. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the channel is dark gray, hold down the RMB and choose “lock and hide selected.” If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. If you are very new to rigging, I recommend only locking the channel to make sure mistakes are not made. It is easier to right-click to unlock later if necessary. A hidden channel can be made visible again, but it is a time-consuming process. CONTROL NAME

LOCK (select in CHANNEL BOX, RMB)

middle_fkSpine_anim, lower_fkSpine_anim

translateY, scaleX, scaleY scaleZ, visibility, Radius

hip_spine_anim, middle_fkSpine_anim, shoulder_spine_anim, COG_anim

scaleX, scaleY, scaleZ, and visibility

b.

Integrate the IK spine into the existing spine controls by doing the following: i. in the OUTLINER, select hip_ikSpine_jnt and (ctrl PC or ⌘ MAC), LMB, click hip_spine_anim, and press (p) to parent ii. in the OUTLINER, select shoulder_ikSpine_jnt and (ctrl PC or ⌘ MAC), LMB, click shoulder_spine_anim, and press (p) to parent iii. select the hip_fkSpine_anim_jnt and press (h) to unhide iv. Hold down the shift key and click on the plus sign [+] next to the hip_fkSpine_anim_jnt to open the hierarchy and display the children (if necessary) c. Select the shoulder_spine_anim and press (ctrl + g) to group it.

136

Bipedal Spine and Neck

FIGURE 4.44 The OUTLINER hierarchy before and after grouping and parenting to make the IK Spline spine hierarchy.

Rename the group node shoulder_spine_anim_pad (this group node will act as a buffer between the joint transformations and the controller so that the controller translations and rotations zeroed). e. Select the shoulder_spine_anim_pad and (ctrl PC or ⌘ MAC) LMB, click shoulder_fkSpine_anim_jnt, and press (p) to parent. f. Select the hip_spine_anim_pad and (ctrl PC or ⌘ MAC), LMB, click COG_anim, and press (p) to parent. g. Select the hip_fkSpine_anim_jntp and (ctrl PC or ⌘ MAC), LMB, click COG_anim, and press (p) to parent. h. Select back_spine_curve and in the ATTRIBUTE EDITOR [ctrl+a] UNCHECK □ Inherits Transform. i. Select back_spine_ikHandle, back_spine_curve, and IK_ back_spine_skin_jnt_1 pp [ctrl+g] to group, and rename it spine_doNotTouch_grp. j. Select the spine_doNotTouch_grp, and in the ATTRIBUTE EDITOR [ctrl+a] UNCHECK □ Inherits Transform. 2. [File > Save As] Save your scene file (Figure 4.44). 3. Create IK in the neck by doing the following: a. Go to [Skeleton > Create IK Spline Handle □ ] and click “reset tool” then click close. b. In the PERSPECTIVE window, click on the neck_spine_skin_jnt_1 (the bottom neck IK joint) to define the start of the IK joint chain then click on the neck_spine_skin_jnt_5 (the top neck IK joint) to define the end of the chain; an IK handle appears at the end of the chain). d.

137

An Essential Introduction to Maya Character Rigging

FIGURE 4.45 Creating and renaming an IK Spline handle solver in the neck. Persephone model by Kenna Hornibrook, 2019.

In the OUTLINER, double-click on ikHandle1 and rename it neck_spine_ikHandle. d. Rename effector1 to neck_spine_ikHandle_effector. e. Rename curve1 to neck_spine_curve. (Curve1 is the spline curve that controls the IK solver.) 4. [File > Save As] Save your scene file (Figure 4.45). 5. Create a control system for the IK neck by doing the following: a. In the OUTLINER, select the neck_spine_skin_jnt_1 and neck_spine_skin_jnt_5. b. [Edit > Duplicate] or press (ctrl+d) then press (shift+p). c. In the OUTLINER, click on the [+] next to neck_spine_skin_jnt_6 and delete the children. d. Rename neck_spine_skin_jnt_6 to neck_ikSpine_jnt. e. Rename the duplicated neck_spine_skin_jnt_5 to head_ikSpine_jnt. f. In the OUTLINER, select the back_spine_curve. Then hold down (ctrl PC or ⌘ MAC) and select hip_ikSpine_jnt and shoulder_ikSpine_jnt. g. Go to [Skin > Bind Skin □ ]. i. change Bind to: to Selected joints ii. change Max influences: to 3 c.

iii. click Bind Skin 6. [File > Save As] Save your scene file (Figure 4.46). 7. Import controllers for creating a control system for the top of the spine or create one by [Create > NURBS Primitives > Circle]. a. Rename the curve head_anim. 138

Bipedal Spine and Neck

FIGURE 4.46 Creating, renaming, and skinning IK neck joints to the neck_spine_curve. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.47 Creating and positioning the head_anim. Persephone model by Kenna Hornibrook, 2019.

b. c. d. e. f.

Move, Scale, and Translate and make sure the pivot is in the same place as head_ikSpine_jnt (Figure 4.47). Select the neck_spine_ikHandle and press (ctrl+a) to open ATTRIBUTE EDITOR. Scroll down to the IK Solver Attributes and click on the arrow (>) to open the section. Scroll down to the Advanced Twist Controls and click on the arrow (>) to open the section. Under Advanced Twist Controls section, put a CHECKMARK next to “Enable Twist Controls” and set the following: i. World Up Type: choose “Object Rotation Up (Start/End)” ii. Up Axis: choose “Negative Z” 139

An Essential Introduction to Maya Character Rigging

FIGURE 4.48 Advanced Twist options for the neck_spine_ikHandle.

iii. Up Vector: type “0” “0” “-1” iv. Up Vector 2: type “0” “0” “-1” v. World Up Object: type “shoulder_spine_anim” vi. World Up Object 2: type “head_anim” 8. [File > Save As] Save your scene file (Figure 4.48).

Cleanup for the Neck IK Spline 1. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the channel is dark gray, hold down the RMB and choose “lock and hide selected.” If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. If you are very new to rigging, I recommend only locking the channel to make sure mistakes are not made. It is easier to right-click to unlock later if necessary. A hidden channel can be made visible again, but it is a time-consuming process.

b.

c. d.

140

CONTROL NAME

LOCK (select in CHANNEL BOX, RMB)

head_anim

scaleX, scaleY, scaleZ, and visibility

Integrate the IK neck into the existing spine controls by doing the following: i. in the OUTLINER, select neck_ikSpine_jnt and (ctrl PC or ⌘ MAC) LMB click shoulder_spine_anim and press (p) to parent ii. in the OUTLINER, select head_ikSpine_jnt and (ctrl PC or ⌘ MAC), LMB, click head_anim, and press (p) to parent Select the head_anim, then [ctrl+g] to group. Rename this group head_anim_constraint_grp. Move the pivot of the group into the top joint of the neck (with the move tool selected, hold down the “d” and the “v” keys, click on the center of the pivot, and drag into the joint).

Bipedal Spine and Neck

FIGURE 4.49 Point and Orient constraining the head control to keep it out of the direct hierarchy, preparing for further setup in Chapter 8. Persephone model by Kenna Hornibrook, 2019.

FIGURE 4.50 The OUTLINER hierarchy before and after grouping and parenting to make the IK Spline spine hierarchy.

e.

f.

In the VIEWPORT, select shoulder_spine_anim (the leader or target) and in the OUTLINER (ctrl PC or ⌘ MAC), LMB, and click on head_ anim_constraint_grp (the follower or object). Go to [Constrain > Point □ ]. i. CHECK Maintain offset:

g.

ii. click Add Go to [Constrain > Orient □ ] iii. CHECK Maintain offset:

iv. click Add (Figure 4.49) Select neck_spine_curve and in the ATTRIBUTE EDITOR [ctrl+a] UNCHECK □ Inherits Transform. i. Select neck_spine_ikHandle, neck_spine_curve, neck_spine_ skin_jnt_1 and spine_doNotTouch_grp then press (p) to parent. 2. [File > Save As] Save your scene file (Figure 4.50). h.

141

Chapter 5

Bipedal Arms and Hands • • • • • •

Workflow Joint Placement for the Arm Skeleton Control System for the Arm Rig Joint Placement for the Hand Skeleton Control System for the Hand Rig Wings

Workflow Figure 5.1

Joint Placement for the Arm Skeleton Creating the Joints for the Arms and Clavicles 1. Continue working or open your last saved version of the file. 2. Continue working in X-ray mode. 3. Create the arm joint hierarchy by doing the following: a. Select [Skeleton > Create Joints □ ]. i. Under Orientation Settings keep Primary Axis set to X change Secondary Axis to Z and change Secondary Axis World Orientation to Z + ii. Under Bone Radius Settings change Long bone radius to 0.5000 b. In the FRONT orthographic view, place five joints for the arm as follows (Figure 5.2): c. Rename these joints shoulder_jnt, elbow_jnt, forearm_jnt, wrist_ jnt, and palm_jnt. d. Select the shoulder joint and adjust the position in the arm geometry if necessary (moving, in the FRONT view the shoulder ONLY in any axis and rotating in the Y-axis only, and/or from the TOP view, rotating the elbow in the Y-axis only). e. Rename your arm chain to include the left prefix by selecting the shoulder joint, then go to [Modify > Prefix Hierarchy Names…].

Enter left_in the text field and click OK . f. Freeze transformations by selecting the left_shoulder joint and go to [Modify > Freeze Transformations]. 143

An Essential Introduction to Maya Character Rigging

FIGURE 5.1 Bipedal Arms and Hands Workflow.

g.

h. 144

Reorient the left_shoulder joint, go to [Skeleton > Orient Joint □ ]. Orientation Settings change Secondary Axis to Z and change Secondary Axis World Orientation to Z + Place 2 joints for the clavicle. Rename these joints left_clavicle_ skin_jnt and left_clavicle_end_jnt.

Bipedal Arms and Hands

FIGURE 5.2 Placing and renaming the arm joints. Turn on [Shading > Wireframe on Shaded] to see where to place the joints. Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.3 Placing, repositioning, orienting, and renaming the clavicle joints. Persephone model by Kenna Hornibrook, 2019.

i.

j.

k.

Select the left_clavicle_skin_jnt, then select the left_clavicle_ end_jnt. Go to [Modify > Match Transformation > Match Translation] to move the left_clavicle_skin_jnt into the same place as the left_clavicle_end_jnt. Reorient the clavicle joint, go to [Skeleton > Orient Joint □ ]. Orientation Settings: Primary Axis X Secondary Axis Z and Secondary Axis World Orientation to Z +. [File > Save As] Save a copy of your scene file (Figure 5.3). 145

An Essential Introduction to Maya Character Rigging

FIGURE 5.4 Verifying the local rotation axes in the arm joints. The arm should have the X-axis pointing toward the child and the Z-axis coming forward. The last joint of the chain will align with the World axis. In fact, all of the arm joints align with the World axis. Persephone model by Kenna Hornibrook, 2019.

Verifying the Joint Local Rotation Axis 1. Continue working or open your last saved version of the file. 2. Continue working in X-ray mode. 3. Evaluate the axes and determine if any, need to be fixed. a. Select all joints by going to [Select All By Type > Joints]. Press (F8) (Select By Component type) choose ? to display Local Rotation Axes]. c. The arm should have the X-axis pointing toward the child and the Z-axis coming forward (Figure 5.4). 4. If there is a problem with the axis orientation of the arm: a. Press (F8) (Select By Object Type) and open the OUTLINER [Window > Outliner]. b. Select the top of the joint chain (left_shoulder_jnt). c. Reorient by going to [Skeleton > Orient Joint □ ]. i. Under Orientation Settings keep Primary Axis set to X ii. change Secondary Axis to Z and iii. change Secondary Axis World Orientation to Z + b.

iv. click ORIENT . 5. [File > Save As] Save a copy of your scene file.

Control System for the Arm Rig Creating a Control System for the Clavicle. 1. Continue working or open your last saved version of the file. 2. Create IK for the clavicle by doing the following: a. Select the left_shoulder_jnt joint chain then press (h) to hide the chain so that it is not in the way as we set up the arm. 146

Bipedal Arms and Hands

FIGURE 5.5 Creating, renaming, and mirroring a Single-Chain IK solver in the left clavicle. Persephone model by Kenna Hornibrook, 2019.

b.

Go to [Skeleton > Create IK Handle □ ] and set the following: Click

Reset Tool then under IK Handle Settings change the following:

c. d.

e.

Choose: “Single-Chain Solver”; place a check mark in the box next to Sticky. First click on the left_clavicle_skin_jnt and then on the left_clavicle_end_jnt. In the OUTLINER, double-click on ikHandle1 and rename it left_ clavicle_ikHandle. (This chain will control the ankle movement.) Rename effector1 to left_clavicle_ikHandle_effector. Mirror the left clavicle to create the right clavicle by selecting the left_clavicle_skin_jnt, then go to [Skeleton > Mirror Joints] and change Mirror across to YZ, and, under Replacement names for duplicated joints, enter Search for left_ and Replace with right_. This mirrors the joints and the ikHandles.

f. Then click Mirror to execute the command. 3. [File > Save As] Save a copy of your scene file (Figure 5.5). 4. Create or import controllers for creating a control system for the clavicle by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve left_clavicle_anim. b. Move, scale, and rotate the controller above the clavicle, moving the pivot into the left_clavicle_end_jnt joint by first selecting left_ clavicle_anim, then the left_clavicle_end_jnt, and go to [Modify > Match Transformation > Match Pivots]. c. Go to [Modify > Freeze Transformations □ ]. Go to [Edit > Reset Settings]. d. Duplicate the left_clavicle_anim and rename it right_clavicle_anim. e. Group [ctrl+g] the right_clavicle_anim with the pivot at the origin (default settings). 147

An Essential Introduction to Maya Character Rigging

FIGURE 5.6 Creating and positioning the left_clavicle_anim with the pivot location in the left_clavicle_end_jnt, then duplicating for the right side. The OUTLINER, after parenting the IK handles with the controllers, to make the clavicle hierarchy. Persephone model by Kenna Hornibrook, 2019.

f. g. h.

In the CHANNEL BOX, make the group −1 in ScaleX. Go to [Edit > Ungroup]. Select right_clavicle_anim and go to [Modify > Freeze Transformations].

Scaling –X of a group with the pivot at the origin is another way of mirroring geometry or controls from one side to the other. Parent the left_clavicle_ikHandle to the left_clavicle_anim. In the OUTLINER, click on the left_clavicle_ikHandle, hold down the ctrl (PC) or pp⌘ (MAC) key and click on the left_clavicle_anim, and then press (p) on the keyboard. (This makes the left_clavicle_ikHandle child to the left_clavicle_anim control curve.) j. Parent the right_clavicle_ikHandle to the right_clavicle_anim. In the OUTLINER, click on the right_clavicle_ikHandle, hold down the ctrl (PC) or pp⌘ (MAC) key and click on the right_clavicle_anim, and press (p) on the keyboard. (This makes the right_clavicle_ikHandle child to the right_clavicle_anim control curve.) k. In the OUTLINER, select the left_clavicle joint, hold down the (ctrl PC or ⌘ MAC) key and click the right_clavicle_jnt joint, the left_clavicle_ anim, the right_clavicle_anim, the shoulder_spine_anim, and press (p) to parent. l. Select the left_shoulder_jnt joint chain and press (h) to display. 5. [File > Save As] Save a copy of your scene file (Figure 5.6). i.

Creating a Control System for the Arm. 1. Continue working or open your last saved version of the file. 148

Bipedal Arms and Hands 2. Duplicate the joint chains. a. Select the left_shoulder_jnt. b. Duplicate it by pressing [ctrl+d]. c. In the OUTLINER, with the left_shoulder_jnt1 selected, add FK_ prefix by selecting [Modify > Prefix Hierarchy Names…] and set the following: i. Enter prefix: FK_ d. e.

f. g. h. i.

j. k.

l.

ii. click OK Rename the chain to FK_left_shoulder_jnt (removing the 1 from FK_left_shoulder_jnt1). In the OUTLINER, hold down the shift key and click on the plus sign (+) next to the FK_left_shoulder_jnt to open the hierarchy and display the children. Select the FK_left_forearm_jnt joint, go to [Skeleton > Remove Joints]. Your joint chain should be left with only four joints: FK_left_shoulder_ jnt, FK_left_elbow_jnt, FK_left_wrist_jnt, and FK_left_palm_jnt. Select the FK_left_shoulder_jnt joint, press [ctrl+d]. Select the FK_left_shoulder_jnt1 joint and rename the hierarchy by going to [Modify > Search and Replace Names…] and set the following: Search for: “FK” Replace with: “IK.” Rename to IK_left_shoulder_jnt (removing the 1 from IK_left_shoulder_jnt1). Rename the left_shoulder_jnt chain by using search and replace: Select the left_shoulder_jnt joint and rename the hierarchy by going to [Modify > Search and Replace Names…] and set the following: change Search for: to jnt and change Replace with: to skin_jnt click Replace left_shoulder_skin_jnt, left_elbow_skin_jnt, left_forearm_skin_jnt, left_wrist_skin_jnt, left_palm_skin_jnt Mirror the left skin arm to create the right skin arm by selecting the left_shoulder_skin_jnt joint, then go to [Skeleton > Mirror Joints □ ]. change Mirror across: to YZ change Search for: to left_ and change Replace with: to right_ click Replace

m. Select the IK_left_shoulder_jnt joint chain then press (h) to hide. n. Select the left_shoulder_skin_jnt joint chain then press (h) to hide. 3. [File > Save As] Save a copy of your scene file (Figure 5.7). 4. Create controllers for the left FK arm by doing the following: a. Go to [Create > NURBS Primitives > Circle □ ] Change the Normal axis: Y This curve should be created at the origin with the pivot centered. b.

In the OUTLINER, go to [Display] and make sure there is a box next to Shapes. If not, click on the word Shapes.

in the 149

An Essential Introduction to Maya Character Rigging

FIGURE 5.7 Duplicating, renaming, and mirroring left_shoulder_skin_jnt arm joints. The left FK and IK joint chains will be duplicated for the right side AFTER their controls are created. Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.8 Adding a nurbsCircleShape1 to the FK_left_shoulder_jnt. In COMPONENT MODE (F8), resize the circle if necessary around your character’s upper arm geometry. Persephone model by Kenna Hornibrook, 2019.

c.

d. e.

f. 150

In the OUTLINER, hold down the shift key and click on the plus sign (+) next to nurbsCircle1 to open the hierarchy and display the children. Ensure that the shape node is named nurbsCircleShape1 and rename if necessary. In the MEL command line, type the MEL script below: parent -add -shape nurbsCircleShape1 FK_left_shoulder_jnt; Press the (F8) key to go into COMPONENT MODE and, using the scale tool, resize the curve to fit around your character’s upper arm geometry if necessary. Press the (F8) key to go back into object mode (Figure 5.8).

Bipedal Arms and Hands g. h.

i. j. k. l.

m.

Select the FK_left_shoulder_jnt, and in the CHANNEL BOX, rename FK_left_shoulder_jnt to FK_left_shoulder_anim. In the OUTLINER, hold down the shift key and click on the plus sign (+) next to the FK_left_shoulder_anim to open the hierarchy and display the children. Double click on nurbsCircleShape1 and rename it FK_left_shoulder_animShape. In the ATTRIBUTE EDITOR, keep the rotation order for the FK_left_ shoulder_anim as XYZ. In the OUTLINER, delete nurbsCircle1 (the curve at the origin). Repeat this process for the elbow and wrist joints (Change the shape to left_elbow_animShape and the rotation order for the FK_left_elbow_anim to “ZXY”) (Change the shape to left_wrist_jnt_ animShape and the rotation order for the FK_left_wrist_anim to ZYX.) Mirror the left FK arm to create the right FK arm by selecting the FK_left_shoulder_anim joint, then go to [Skeleton > Mirror Joints] and change Mirror across to YZ, and, under Replacement names for duplicated joints, enter Search for left_ and Replace with right_. Then

click Mirror to execute the command (Figures 5.9 and 5.10). 5. Because there still might be problems with Gimbal lock, we can add one more control above the shoulder to add another level of control to position the FK arm. Create or import controllers for creating a control system for the Gimbal helper by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve FK_left gimbal_helper_anim.

FIGURE 5.9 Adding and renaming nurbsCircleShape1 to the FK arm joints then and mirroring FK_left_shoulder_anim arm joints to the right side. Be sure to rename the nurbsCircleShape1 and delete the nurbsCircle1 before creating a new nurbsCircle1 and adding nurbsCircleShape1 to the next arm joint. Persephone model by Kenna Hornibrook, 2019.

151

An Essential Introduction to Maya Character Rigging

FIGURE 5.10 Setting the rotation orders for the FK arm anim joints. To do this, select the joint node in the OUTLINER, not the curve shaped node. Persephone model by Kenna Hornibrook, 2019.

b.

Move, scale, and rotate the controller above the clavicle, moving the pivot into the FK_left_shoulder_anim by first selecting FK_left gimbal_helper_anim then the FK_left_shoulder_anim, and go to [Modify > Match Transformation > Match Pivots]. c. Duplicate the FK_left gimbal_helper_anim and rename the duplicate FK_right gimbal_helper_anim. d. Move the FK_right gimbal_helper_anim to the right shoulder joint. Scale the controller smaller than the FK_left_shoulder_anim. e. With the FK_left gimbal_helper_anim and FK_right gimbal_helper_ anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1). f. In the OUTLINER, select the FK_left_shoulder_anim, hold down the (ctrl PC or ⌘ MAC) key and click the FK_left gimbal_helper_anim, and then press (p) to parent. Repeat for the right arm. g. Select the FK_left gimbal_helper_anim and ctrl-g to group. Name this group FK_left_arm_grp. h. Repeat for the right FK arm. i. Select the FK_left_arm_grp then press (h) to hide it. j. Select the left_shoulder_skin_jnt and the left_clavicle_skin_jnt – then press (h) to hide them. k. Select the IK_left_shoulder_jnt joint chain, then press (h) to display the chain. 6. [File > Save As] Save a copy of your scene file (Figure 5.11). 7. Create the left IK arm by doing the following: a. Set a preferred angle in the left leg by doing the following: i. Select the IK_left_elbow_jnt joint and rotate it forward (in the CHANNEL BOX set the following: rotateY: −40), then select the IK_left_shoulder_jnt joint, go to [Skeleton > Set Preferred Angle] 152

Bipedal Arms and Hands

FIGURE 5.11 Creating, duplicating, renaming, and grouping the left and right FK_gimbal_helper_anim. Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.12 TOP view setting a preferred angle on the arms by selecting the IK_left_shoulder_jnt with the elbow rotated. We must first set a preferred angle in the arm so that Maya knows which direction to bend the arm when we run the IK solver through the joints. Be sure to straighten the arm again afterward. Persephone model by Kenna Hornibrook, 2019.

b.

ii. Select the IK_left_elbow_jnt and in the CHANNEL BOX set the following: rotateY: type “0” (Figure 5.12) Go to [Skeleton > Create IK Handle □ ] and set the following: Click

reset tool , then under IK Handle Settings change the following: Current solver: Rotate-Plane Solver. c.

d.

Place a in the box next to Sticky. In the OUTLINER, click on the IK_left_shoulder_jnt joint, then (ctrl PC or ⌘ MAC) click on the IK_left_wrist_jnt joint. Double click on ikHandle1 and rename it left_arm_ikHandle. Rename effector1 as left_arm_ikHandle_effector. Select the left_arm_ikHandle and move the IK handle along the X-axis (red arrow) toward the body to confirm that the arm bends in 153

An Essential Introduction to Maya Character Rigging

FIGURE 5.13 Creating a Rotate-Plane IK solver in the shoulder-to-wrist. Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.14 Creating a Single-Chain IK solver in the wrist-to-palm. Persephone model by Kenna Hornibrook, 2019.

e.

the correct direction. Be sure to press the (z) key to undo the move (Figure 5.13). Go to [Skeleton > Create IK Handle □ ] and set the following: Click

Reset Tool then under IK Handle Settings change the following: Choose: “Single-Chain Solver”; f.

154

in the box next to Sticky. In the OUTLINER, click on the IK_left_wrist_jnt joint, then (ctrl PC or ⌘ MAC) click on the IK_left_palm_jnt joint. Double click on ikHandle1 and rename it left_wrist_ikHandle (Figure 5.14).

Bipedal Arms and Hands

FIGURE 5.15 Mirroring the IK_left_shoulder_jnt to create the right arm joints and ikHandles. Persephone model by Kenna Hornibrook, 2019.

g.

Mirror the left IK arm to create the right IK arm by selecting the IK_left_shoulder_jnt, then go to [Skeleton > Mirror Joints], change Mirror across to YZ, and, under Replacement names for duplicated joints, enter Search for left_ and Replace with right_. This mirrors the joints and the ikHandles.

Then click Mirror to execute the command. (you must rename the mirrored effectors to the right side). i. Select the FK_left_arm_grp, hold down the (ctrl PC or ⌘ MAC) key and select the left_shoulder_skin_jnt and left_clavicle_skin_jnt, then press (h) to display them (Figure 5.15). 8. Create or import controllers for creating a control system for the IK arm by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve IK_left_hand_anim. b. Move, scale, and rotate the controller around the wrist or hand, moving the pivot into the IK_left_wrist_jnt by first selecting IK_ left_hand_anim then the IK_left_wrist_jnt, and go to [Modify > Match Transformation > Match Pivots]. (Figure 5.16) c. In the ATTRIBUTE EDITOR, change the rotation order for the IK_left_ hand_anim to “ZXY.” d. Duplicate the IK_left_hand_anim, rename it IK_right_hand_anim. e. Move the IK_right_hand_anim to the right wrist joint. f. With the IK_left_hand_anim and IK_right_hand_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1). g. Group [ctrl+g] the IK_left_hand_anim with the pivot at the origin (default settings). h. Rename this group IK_left_hand_anim_const. (This group is used when the IK hand needs to be constrained to interact with objects when animating.) h.

155

An Essential Introduction to Maya Character Rigging

FIGURE 5.16 Importing [File > Import]and positioning the IK_hand_anim.ma with the pivot location in the center of IK_left_wrist_jnt. Be sure to remove the namespace [Windows > General Editors > Namespace Editor] once imported. Then rename the controller IK_left_hand_anim. Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.17 Creating or importing and positioning the IK_left_elbow_anim behind the character with the pivot location in the center of IK_left_elbow_anim. Persephone model by Kenna Hornibrook, 2019.

i. j. k. l. m. n.

156

Group [ctrl+g] the IK_right_hand_anim with the pivot at the origin (default settings). Rename this group IK_right_hand_anim_const. Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve IK_left_elbow_anim. Move, scale, and rotate the controller behind the elbow (the pivot should be in the center of the IK_left_elbow_anim) (Figure 5.17). Duplicate the IK_left_elbow_anim, rename it IK_right_elbow_anim. In the CHANNEL BOX, make the IK_right_elbow_anim Translate X value negative. This will move the IK_right_elbow_anim to the right wrist joint.

Bipedal Arms and Hands

FIGURE 5.18 Grouping the right and left IK hand controllers to make a transform node will hold any constraints needed when the character is animated to pick up or interact with objects. Persephone model by Kenna Hornibrook, 2019.

With the IK_left_elbow_anim and IK_right_elbow_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1). 9. [File > Save As] Save a copy of your scene file (Figure 5.18). 10. Create connections using constraints between the controllers and the IK handles by doing the following: a. Select the IK_left_hand_anim (the leader, or target), hold down the (shift) key, and click on the left_arm_ikHandle (the follower, or object). Then go to [Constrain > Point □ ] and set the following: UNCHECK □ the box next to Maintain Offset and o.

click Add Note: Look in the CHANNEL BOX, making sure that the Translate X values of the ikHandle are the same as before creating the constraint (Undo (z) and redo the command to compare). If not, the pivot of your controller is in the wrong place. Undo and then move the pivot before you try again (Figure 5.19). This point constraint constrains the arm IK handle’s translations to the controller so that, when you move the controller, the IK handle follows it, BUT, when you rotate the controller, the IK handle does not. This is important in the arm setup because we do not want the entire arm to rotate when we rotate the hand. b.

Select the left_wrist_ikHandle first (child) and the IK_left_hand_ anim second (parent) and press (p) to parent. 157

An Essential Introduction to Maya Character Rigging

FIGURE 5.19 Creating a point constraint between the IK_left_hand_anim (leader) and the left_arm_ikHandle (follower). Persephone model by Kenna Hornibrook, 2019.

In the OUTLINER, click on the IK_left_elbow_anim (the leader, or target), hold down the (ctrl PC or ⌘ MAC) key and click on the left_ arm_ikHandle (the follower, or object), then go to [Constrain > Pole Vector]. 11. Repeat Step 12 a, b, and c to create the constraints and parenting for the right arm. 12. Integrate the IK elbow controls into the existing spine controls by doing the following: a. Select the IK_left_elbow_anim, shift-select the IK_right_elbow_anim, the shoulder_spine_anim, and press (p) to parent. 13. [File > Save As] Save a copy of your scene file (Figure 5.20). 14. The next part will create an integrated arm where the joint chain that will eventually control the geometry has a switch to choose between the FK control arm and the IK control arm. Do the following: a. In the OUTLINER, select the FK_left_arm_grp, and while holding down the (ctrl PC or ⌘ MAC) key, select the IK_left_shoulder_jnt and left_shoulder_skin_jnt. b. Press [ctrl+g] to create a group of the three arms to make it easier to select. c. Rename the group left_arm_grp. d. Repeat for the right side. e. In the OUTLINER, hold down the shift key and click on the plus sign (+) next to the left_arm_grp to open the hierarchy and display the children. f. In the OUTLINER, click first on the FK_left_shoulder_anim and, while holding down the (ctrl PC or ⌘ MAC) key, click second on the IK_left_shoulder_jnt and click third on the left_shoulder_skin_jnt. Then go to [Constrain > Orient □ ] and set the following: c.

158

Bipedal Arms and Hands

FIGURE 5.20 The OUTLINER hierarchy after creating the IK controllers for the wrist and elbow and a point and pole vector constraint between the leaders (controllers) and followers (ikHandle). Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.21 Creating an orient constraint between the FK_left_shoulder_anim, the IK_left_shoulder_jnt (both leaders) and the left_shoulder_skin_jnt (follower). Persephone model by Kenna Hornibrook, 2019.

Make sure it is UNCHECKED □ in the box next to Maintain Offset and g.

h.

click add (Figure 5.21) In the OUTLINER, click first on the FK_left_elbow_anim and, while holding down the (ctrl PC or ⌘ MAC) key, click second on the IK_ left_elbow_jnt and click third on the left_elbow_skin_jnt. Then press the (g) key to repeat the last command (Figure 5.22). In the OUTLINER, click first on the FK_left_wrist_anim and, while holding down the (ctrl PC or ⌘ MAC) key, click second on the IK_ left_wrist_jnt and click third on the left_wrist_skin_jnt. Then press the (g) key to repeat the last command (Figure 5.23). 159

An Essential Introduction to Maya Character Rigging

FIGURE 5.22 Creating an orient constraint between the FK_left_elbow_anim, the IK_left_elbow_jnt (both leaders) and the left_elbow_skin_jnt (follower). Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.23 Creating an orient constraint between the FK_left_wrist_anim, the IK_left_wrist_jnt (both leaders) and the left_wrist_skin_jnt (follower). Persephone model by Kenna Hornibrook, 2019.

i.

In the OUTLINER, click first on the FK_left_wrist_anim and, while holding down the (ctrl PC or ⌘ MAC) key, click second on the IK_ left_wrist_jnt and click third on the left_forearm_skin_jnt. Then go to [Constrain > Orient □ ] and set the following: Constraint axes: place a

in the box next to X.

Click add . Repeat the constraints on the right arm. Be sure to reset the settings on the Orient constraint or change the Constraint axes to ALL! 15. [File > Save As] Save a copy of your scene file (Figure 5.24). j. k.

The rotations on the Skin Arm joints should remain Zero (or very close to Zero) once the orient constraint is created. If not, there is a problem with the joint system. Either the Local Rotational Axes do not align, or there is 160

Bipedal Arms and Hands

FIGURE 5.24 Creating an orient constraint between the FK_left_wrist_anim, the IK_left_wrist_jnt (both leaders) and the left_forearm_skin_jnt (follower). Be sure to only constrain the X-axis for this one! The forearm joint acts as the radius and Ulna, so it should only rotate for the twisting direction. Persephone model by Kenna Hornibrook, 2019.

an existing rotation on the joint chain that should have been frozen with [Modify>Freeze Transformations]. Undo or reopen the last saved file, fix the problem, and then try again. 16. Create a switch to change the leader between the FK control arm and the IK control arm. To set this up, do the following: Create or import controllers for creating a control system for the IK arm by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve left_arm_settings_anim. b. Move, scale, and rotate the controller in the wrist joint. c. With the move tool, click on the Y-axis (green arrow) and move the controller slightly above the wrist. d. Duplicate the left_arm_settings_anim and rename it right_arm_settings_anim. e. In the CHANNEL BOX, make the right_arm_settings_anim Translate X value negative. This will move the right_arm_settings_anim to the right wrist joint. f. Parent the left_arm_settings_anim to the left_wrist_skin_jnt. g. Parent the right_arm_settings_anim to the right_wrist_skin_jnt. h. Select the left_arm_settings_anim and right_arm_settings_anim and go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1). i. With the left_arm_settings_anim and right_arm_settings_anim selected, go to [Modify > Add Attribute]. Using the default settings, enter the following: Long name: IK/FK; Data Type: Float; Minimum: 0 Maximum: 1 j.

Then click OK . (Figure 5.25) 161

An Essential Introduction to Maya Character Rigging

FIGURE 5.25 Creating and positioning the left_arm_settings_anim near the wrist joint. Parenting to the wrist_skin_jnt and adding the custom attribute “IK/KF.” Persephone model by Kenna Hornibrook, 2019.

17. Make the switch function. To set this up, we will use Set Driven Key to turn the constraints on and off. To sum things up, when the IK/KF switch is set to 0, the FK constraints will be turned on, and the IK constraints will be turned off, so that the arm will follow the FK control arm. When the IK/KF switch is set to 1, the IK constraints will be turned on, and the FK constraints will be turned off, so that the arm will follow the IK control arm. a. In the OUTLINER, select the left_shoulder_skin_jnt_orientConstraint1 and in the Animation menu set (F4) and go to [Key > Set Driven Key > Set… □ ]. b. c. d.

e. f. g.

h. i. j. 162

Select the left_arm_settings_anim and click Load Driver in the Set Driven Key window. In the Driver section of the Set Driven Key window, choose “IK/KF” in the right column. In the Driven section of the Set Driven Key window, choose “FK_left_ shoulder_animW0” in the right column, hold down the (shift) key, and also click on “IK_left_shoulderW1.” In the Driven section of the Set Driven Key window, click on left_ shoulder_skin_jnt_orientConstraint1 to select it. In the CHANNEL BOX, change IK_left_shoulder_jntW1 to “0.” In the Set Driven Key window, click Key . (This click changes the Driven attributes to blue in the CHANNEL BOX, indicating a key has been set on the shoulder constraint.) (Figure 5.26) In the Driver section of the Set Driven Key window, click on left_arm_ settings_anim to select it. In the CHANNEL BOX, change IK/KF to “1.” In the Driven section of the Set Driven Key window, click on left_ shoulder_jnt_orientConstraint1to select it.

Bipedal Arms and Hands

FIGURE 5.26 Loading the Set Driven Key window and setting the first key so that, when the IK/KF switch is set to “0,” the shoulder will follow the FK controlled shoulder.

FIGURE 5.27 Setting the second key so that when the IK/KF switch is set to “1,” the shoulder will follow the IK controlled shoulder.

k.

In the CHANNEL BOX, change FK_left_shoulder_animW0 to “0” and IK_left_shoulder_jntW1 to “1.”

l. m.

In the Set Driven Key window, click Key (Figure 5.27) Repeat these steps for the DRIVEN: left_elbow_skin_ jnt_orientConstraint1, the left_wrist_skin_jnt_orientConstraint1, and the left_forearm_skin_jnt_orientConstraint1. The DRIVER remains the same: left_arm_settings_anim 163

An Essential Introduction to Maya Character Rigging Note: the left_wrist_skin_jnt_orientConstraint1 and the left_forearm_ skin_jnt_orientConstraint1 can be loaded into the Driven window at the same time and keyed together since both constraints are named the same: FK_left_wrist_animW0 and IK_left_wrist_jntW1 When working in the Set Driven Key window, always work from top to bottom, changing the Driver and then the Driven before setting the next Key. 18. Make the switch also control the visibility of the FK controllers. a.

b. c. d. e.

f. g. h. i.

Select the FK_left_arm_grp, and then click Load Driven in the Set Driven Key window. (We only need the FK_left_arm_grp since it is the parent of the other FK controls) The left_arm_settings_anim remains the Driver with “IK/KF” chosen in the right column. In the CHANNEL BOX, change IK/KF to “0” In the Driven section of the Set Driven Key window, click on FK_left_ arm_grp to select it, and choose “visibility” in the right column. In the Set Driven Key window, click Key (visibility is on already, so we are keying the visibility of the FK arm on when the settings_anim is set to 0 because FK will be working) (Figure 5.28). In the Driver section of the Set Driven Key window, click on left_arm_ settings_anim to select it. In the CHANNEL BOX, change IK/KF to “1.” In the Driven section of the Set Driven Key window, click on FK_left_ arm_grp to select it. In the CHANNEL BOX, change visibility to “0” which turns the visibility off.

FIGURE 5.28 Changing the Driven of the Set Driven Key window to FK_left_arm_grp and setting the first key so that, when the IK/KF switch is set to “0,” the FK controls are visible.

164

Bipedal Arms and Hands

In the Set Driven Key window, click Key (visibility is on already, so we are keying the visibility of the FK arm on when the settings_anim is set to 0 because FK will be working) k. Repeat making the switch function for the right arm. 19. [File > Save As] Save a copy of your scene file (Figure 5.29). 20. Make the switch also control the visibility of the IK controllers. a. Select the IK_left_hand_anim, hold down the (ctrl PC or ⌘ MAC) j.

b. c.

d. e. f. g. h. i.

j.

key, and click IK_left_elbow_anim, then click Load Driven in the Set Driven Key window. The left_arm_settings_anim remains the Driver with “IK/KF” chosen in the right column. (It should already be set to “1”; if not, change IK/KF to “1.”) In the Driven section of the Set Driven Key window, click on IK_left_ hand_anim, hold down the (shift) key, and also click on IK_left_ elbow_anim to select them. In the Driven section of the Set Driven Key window, choose “visibility” in the right column (the visibility should already be “on”). In the Set Driven Key window, click Key (Figure 5.30) In the CHANNEL BOX, change visibility to “0.” In the Driver section of the Set Driven Key window, click on left_arm_ settings_anim to select it. In the CHANNEL BOX, change IK/KF to “0.” In the Driven section of the Set Driven Key window, click on IK_left_ hand_anim, hold down the (shift) key, and also click on IK_left_ elbow_anim to select them. In the CHANNEL BOX, change visibility to “0.”

k. In the Set Driven Key window, click Key . l. Repeat to make the switch function for the right arm. 21. [File > Save As] Save a copy of your scene file (Figure 5.31).

FIGURE 5.29 Setting the second key so that, when the IK/KF switch is set to “1,” the FK controls are hidden.

165

An Essential Introduction to Maya Character Rigging

FIGURE 5.30 Changing the Driven of the Set Driven Key window to IK_left_hand_anim and IK_left_elbow_anim then setting the first key so that, when the IK/KF switch is set to “1,” the IK controls are visible.

FIGURE 5.31 Setting the second key so that, when the IK/KF switch is set to “0,” the IK controls are hidden.

166

Bipedal Arms and Hands Cleanup for the Arm Setup 22. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the channel is white, hold down the RMB (right mouse button) and choose lock selected. If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. Later, these channels can be hidden. CONTROL NAME

LOCK and HIDE (select in CHANNEL BOX, RMB)

IK_left_hand_anim, IK_right_hand_ anim, left_clavicle_anim, right_clavicle_anim

scaleX, scaleY, scaleZ (hide only the visibility)

IK_left_elbow_anim, IK_right_elbow_anim,

rotateX, rotateY, rotateZ, scaleX, scaleY, and scaleZ (hide only the visibility)

left_arm_settings_anim, right_arm_settings_anim

translateX, translateY, translateZ, rotateX, rotateY, rotateZ, scaleX, scaleY, scaleZ, and visibility

FK_right_gimbal_helper_anim, FK_left gimbal_helper_anim, FK_left_shoulder_anim, FK_right_shoulder_anim, FK_left_elbow_ anim, FK_right_elbow_anim, FK_left_wrist_anim, FK_right_wrist_anim

translateX, translateY, translateZ, scaleX, scaleY, scaleZ, and visibility

23. Integrate the FK and IK arms into the existing shoulder controls by doing the following: a. Select the left_arm_settings_anim, hold down the (shift) key, and click the right_arm_settings_anim. In the CHANNEL BOX, make sure the IK/KF attribute is set to “0” to turn IK off. b. In the OUTLINER, click on the left_arm_grp, hold down the (shift) key, and, in the VIEWPORT window, click on the left_clavicle_anim and press (p) to parent them. c. In the OUTLINER, click on the rightArm_grp, hold down the (shift) key, and, in the VIEWPORT window, click on the right_clavicle_anim and press (p) to parent them. d. In the OUTLINER, click on the left_clavicle_anim, hold down the (ctrl PC or ⌘ MAC) key, and click right_clavicle_anim, left_clavicle_skin_ jnt, and right_clavicle_skin_jnt, then hold down the (shift) key and, in the VIEWPORT window, click on the shoulder_spine_anim and press (p) to parent them. e. In the OUTLINER, click on the left_arm_ikHandle, hold down the (ctrl PC or ⌘ MAC) key and click right_arm_ikHandle, 167

An Essential Introduction to Maya Character Rigging IK_left_hand_anim_const, IK_right_hand_anim_const, and then [ctrl+g] to group them. Rename the group IK_arm_grp. 24. Hide IK so that, during animation, they are not accidentally selected and keyframed. a. Select the left_clavicle_ikHandle, left_arm_ikHandle and left_wrist_ ikHandle and press (h) to hide them. b. Repeat for the right arm. 25. [File > Save As] Save a copy of your scene file (Figure 5.32).

Joint Placement for the Hand Skeleton Hands are an expressive part of the body, so it is important to take the time to rig them in a way that provides the most functionality for the animator. The setup that follows is a pretty basic setup that allows for personalization for specific character movements using custom attributes and Set Driven Keys. 1. Continue working or open your last saved version of the file. 2. Continue working in X-ray mode. 3. Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). 4. It may be helpful to lower the joint display size since the fingers are usually small [Display > Animation > Joint Size…]. 5. It may also be helpful to hide the IK and FK arms [select IK and FK shoulder joints and (h). Or if the visibility is locked, put them on a layer and turn off the later visibility V (Figure 5.33). 6. Create the hand joint hierarchy by doing the following: a. Select [Skeleton > Create Joints □ ]. i. Under Orientation Settings keep Primary Axis set to X change Secondary Axis to Z and change Secondary Axis World Orientation to Z + ii. Under Bone Radius Settings change Long bone radius to 0.5000 b. In the TOP orthographic view, place joints for the hand as follows: i. Click FIRST on the palm_jnt to begin a new chain for a finger that is branching from the palm_jnt. ii. Place four joints for the middle finger. Rename the finger joints as follows: middle1_jnt, middle2_jnt, middle3_jnt, middle_end_jnt. c. Repeat this process for the index and ring finger, if your character has them: i. Press the (y) key to choose your last tool – the joint tool. Click FIRST on the palm_jnt, and then place four joints for the index finger. Rename the finger joints as follows: index1_jnt, index2_ jnt, index3_jnt, index_end_jnt ii. Press the (y) key to choose our last tool, click FIRST on the palm_jnt, and then place four joints for the ring finger. Rename the finger joints as follows: ring1_jnt, ring2_jnt, ring3_jnt, ring_ end_jnt. (Figure 5.34) 168

Bipedal Arms and Hands

FIGURE 5.32 The OUTLINER, showing the hierarchy of the arm setup.

To speed up the process, duplicate [ctrl+d] the middle1_jnt and use [Modify > Search and Replace Names…] for the ring and index fingers. Then simply rotate and move the joints in place. Be sure to [Modify > Freeze Transformations] and [Skeleton > Orient Joint]. 169

An Essential Introduction to Maya Character Rigging

FIGURE 5.33 Adjusting the joint size and hiding the IK and FK arms using a layer. Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.34 Placing and renaming the middle, index, and ring finger joints. Persephone model by Kenna Hornibrook, 2019.

d.

e.

170

Press the (y) key to choose our last tool, click FIRST on the palm_jnt, and then place five joints for the pinky finger. The pinky needs a metacarpal joint placed in the palm near the wrist. Rename the finger joints as follows: pinky_palm_jnt, pinky1_jnt, pinky2_jnt, pinky3_jnt, pinky_end_jnt. Press the (y) key to choose our last tool, click FIRST on the palm joint, and then place four joints for the thumb. The thumb needs a metacarpal joint placed in the palm near the wrist. Rename the finger joints as follows: thumb_palm_jnt, thumb1_jnt_jnt, thumb2_ jnt, thumb_end_jnt. (Figure 5.35)

Bipedal Arms and Hands

FIGURE 5.35 Placing and renaming the pinky and thumb joints. Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.36 Repositioning the finger joints in the PERSPECTIVE window. Persephone model by Kenna Hornibrook, 2019.

f.

In the PERSPECTIVE view, move or rotate the finger joints so that they line up on the top edge of the geometry. By doing this, your character’s geometry will bend and deform more realistically. The first knuckle of each finger should be set back slightly in the hand. Look at your own hand for reference and notice where the knuckles are (Figure 5.36).

DO NOT MOVE THE PALM JOINT. It is important that the palm stays in line with the wrist so that the hand works predictably with the control rig. g.

h.

i.

If you rotated any of the joints, you should freeze transformations on the rotations. Select the first joint of each finger chain and go to [Modify > Freeze Transformations]. Reorient the finger joints. Select the first joint of each finger chain, go to [Skeleton > Orient Joint □ ]. Orientation Settings change Secondary Axis to Z and change Secondary Axis World Orientation to Z +. Rename your finger chains to include the left prefix by selecting the first joint of each finger chain, then go to [Modify > Prefix Hierarchy Names…]. Enter left_ in the text field and click OK . 171

An Essential Introduction to Maya Character Rigging

FIGURE 5.37 Mirroring the finger joints by first unparenting them from the palm joint [shift+p]. Once mirrored, reparent the left finger joints to the left palm joint and reparent the right finger joints to the right palm joint. Persephone model by Kenna Hornibrook, 2019.

7. [File > Save As] Save a copy of your scene file. 8. To mirror the fingers for the other side, the fingers must first be unparented (otherwise they are not in the correct place). Select the first joint of each finger chain and (shift+p) to unparent. 9. Then select the first joint of each finger chain (one at a time), and go to [Skeleton > Mirror Joints], change Mirror across to YZ, and, under Replacement names for duplicated joints, enter Search for left_ and Replace

10. 11.

12.

13. 14.

with right_. Then click Mirror to execute the command. Wait to mirror the thumb until completing step 20 in the next section after adjusting the Local Rotational Axis. Repeat for each finger chain pressing (g) to repeat the last command (Figure 5.37). Select the first joint of each left finger chain, then add the left_palm_ skin_jnt to the selection and press (p) to reparent the left finger joints to the palm. Select the first joint of each right finger chain, then add the right_palm_ skin_jnt to the selection, and press (p) to parent the mirrored right finger joints to the palm. Make your FK and IK left arm joints visible again. [File > Save As] Save a copy of your scene file.

Verifying the Joint Local Rotation Axis 1. Continue working or open your last saved version of the file. 2. Evaluate the axes and determine if any need to be fixed. a. Select the left_palm_skin_jnt. b.

172

Press (F8) (Select By Component type) and choose ? to display Local Rotation Axes].

Bipedal Arms and Hands

FIGURE 5.38 Verifying the local rotation axes in the finger joints. The left fingers should have the X-axis pointing toward the child and the Z-axis coming forward. The last joint of the chain will align with the World axis. Persephone model by Kenna Hornibrook, 2019.

c.

The left fingers should have the X-axis pointing toward the child and the Z-axis coming forward. The right fingers are mirrored on behavior, and therefore the X-axis should be pointing away from the child (-X), and the Z-axis should be pointing backward (−Z) (Figure 5.38). 3. If there is a problem with the axis orientation of the fingers: d. Press (F8) (Select By Object Type) and open the OUTLINER [Window > Outliner]. e. Select the first joint1 of each finger chain. f. Reorient by going to [Skeleton > Orient Joint □ ]. i. Under Orientation Settings keep Primary Axis set to X change Secondary Axis to Z and change Secondary Axis World Orientation to Z + click ORIENT . 4. If you needed to reorient the fingers, you would need to delete the right side and re-mirror. 5. [File > Save As] Save a copy of your scene file. 6. The thumb is a different angle than the fingers, and those joints will need to be adjusted manually as follows: a. Select the left_thumb_palm_jnt. b. Press (F8) to change to COMPONENT MODE or click on the COMPONENT MODE button. In the selection mask toolbar, LMB click

c.

on the points button to turn it off, and LMB then click the ? button and the Local Rotation Axes appear in the Viewport. Starting with the left_thumb_palm_jnt, use the selection tool (q) to click on the left_thumb_palm_jnt axis (you must click directly in the center or click-drag around the center to select). Holding down the shift key, click the left_thumb1_jnt axis and the left_thumb2_jnt axis. Rotate (e) the axes using the red ring of the rotate tool so that the 173

An Essential Introduction to Maya Character Rigging Y-axis is intersecting the joint in the direction the bend will occur. d.

Make sure your rotate tool Axis Orientation is set to Object . Delete the right side and re-mirror, or manually adjust, but make sure the Y is pointing in the negative direction (Figures 5.39, 5.40, and 5.41)

To visualize this, hold your hand in the same position that your character’s hand is modeled. Pick up a pen or pencil and IMAGINE – do not really do this – IMAGINE that pen or pencil goes through your thumb knuckle and is coming out of the other side. That pen would be the Y-axis.

FIGURE 5.39 Rotating the thumb Local Rotation Axis into position. Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.40 The right thumb should have the Y-axis pointing in the negative direction, but in the same angle as the left thumb. It is easiest to mirror the right side once the left axis has been adjusted. Persephone model by Kenna Hornibrook, 2019.

174

Bipedal Arms and Hands

FIGURE 5.41 Visualizing the direction of the Y-axis by using a pen.

Control System for the Hand Rig Creating a Control System for the Finger Joints 1. Continue working or open your last saved version of the file. 2. Create or import controllers for creating a control system for the IK arm by doing the following: Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve left_fingers_anim. 3. Move, scale, and rotate the controller in the wrist joint. 4. With the move tool, click on the Y-axis (green arrow) and move the controller slightly above the wrist. 5. Duplicate the left_fingers_anim and rename it right_fingers_anim. 6. In the CHANNEL BOX, make the right_fingers_anim Translate X value negative. This will move the right_fingers_anim to the right wrist joint. 7. Parent the left_fingers_anim to the left_arm_settings_anim. 8. Parent the right_fingers_anim to the right_arm_settings_anim. 9. Select the left_fingers_anim and right_fingers_anim, then go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1). 10. [File > Save As] Save a copy of your scene file (Figure 5.42). 11. Add attributes to the finger control for the finger movements by doing the following (If you imported my fingers_anim.ma, the attributes have already been added, so you can skip the next steps of adding the finger attributes.): a. With the left_fingers_anim and right_fingers_anim selected, go to [Modify > Add Attribute…] and, using the default settings, enter the following: i. Long name: “indexFlexCurl” Minimum: “−10” Maximum: “10” click Add ii. Long name: “middleFlexCurl” Minimum: “−10” Maximum: “10” click Add 175

An Essential Introduction to Maya Character Rigging

FIGURE 5.42 Creating and positioning the left_finger_anim, then duplicating, renaming, and repositioning for the right side. Persephone model by Kenna Hornibrook, 2019.

iii. Long name: “ringFlexCurl” Minimum: “−10” Maximum: “10” click Add iv. Long name: “pinkyFlexCurl” Minimum: “−10” Maximum: “10” click Add v. Long name: “thumbFlexCurl” Minimum: “−10” Maximum: “10” click Add vi. Long name: “thumbSpread” Minimum: “−10” Maximum: “10” click Add vii. Long name: “fingerSpread” Minimum: “−10” Maximum: “10” click Add viii. Long name: “relax” Minimum: “0” Maximum: “10” click OK . 12. Add any other attributes you may need to personalize your character as well. 13. [File > Save As] Save a copy of your scene file (Figures 5.43 and 5.44). When creating the poses for the fingers using Set Driven Key in the next part, you can do all the selecting and manipulating in the work area (PERSPECTIVE window) or use the OUTLINER if selecting the joints in the VIEW PANEL becomes too tedious. The joints can be selected from inside the Set Driven Key editor as well, but make sure to reselect them all in the “Driven” section before pressing the KEY button in the set driven window. 14. Use Set Driven Key to add functionality to the indexFlexCurl attribute by doing the following: a. In the OUTLINER, select the left_index1_jnt, hold down the (ctrl) key and click left_index2_jnt and left_index3_jnt, and go to [Key > Set Driven Key > Set… □ ]. 176

Bipedal Arms and Hands

FIGURE 5.43 Adding custom attributes to the fingers_anim using [Modify > Add Attribute].

FIGURE 5.44 The left_fingers_anim in the CHANNEL BOX with all of the finger attributes added.

177

An Essential Introduction to Maya Character Rigging

b. c. d.

e. f. g. h. i.

j. k. l. m.

Select the left_fingers_anim and click Load Driver in the Set Driven Key window. In the Driver section of the Set Driven Key window, choose “indexFlexCurl” in the right column. In the Driven section of the Set Driven Key window, click on left_ index1_jnt, hold down the (ctrl) key and click left_index2_jnt, and left_index3_jnt to select them. In the Driven section of the Set Driven Key window, choose “rotate Z” in the right column In the Set Driven Key window, click Key (this sets a default finger pose position at attribute value of 0) (Figure 5.45). In the Driver section of the Set Driven Key window, click on left_ fingers_anim to select it. In the CHANNEL BOX, change indexFlexCurl to “10.” In the PERSPECTIVE window, select the rotate tool by pressing the (e) key and rotate the index finger joints (index1_jnt, index2_jnt, and index3_jnt) along the Z-axis (the blue ring) into a curled bent position. (Notice how your finger bends when you make a fist and try to mimic the position. These positions can be adjusted later after skinning (Chapter 12) and re-keyed if necessary.) In the Set Driven Key window, click Key (this sets a keyed pose of the finger in a bent position at attribute value of “10”) (Figure 5.46). In the Driver section of the Set Driven Key window, click on left_ fingers_anim to select it. In the CHANNEL BOX, change indexFlexCurl to “−10” In the PERSPECTIVE window, select the rotate tool by pressing the (e) key, rotate the index finger joints (index1_jnt, index2_jnt, and index3_jnt) along the Z-axis (the blue ring) into a flexed position. (Notice how your finger flexes when you stretch your hand and try to mimic the position.)

FIGURE 5.45 Loading the Set Driven Key window and setting the first key so that when the indexFlexCurl attribute is set to “0,” the index finger is in the default (original) position. Persephone model by Kenna Hornibrook, 2019.

178

Bipedal Arms and Hands

FIGURE 5.46 Setting the second key so that, when the indexFlexCurl is set to “10,” the index finger is in the curled position. Persephone model by Kenna Hornibrook, 2019.

In the Set Driven Key window, click Key (this click changes the Driven attributes to red in the CHANNEL BOX, indicating a key has been set) (Figure 5.47). o. To test and see if the control works, click on the word indexFlexCurl in the CHANNEL BOX, then in the PERSPECTIVE window, MMB (middle mouse button) click and drag your mouse left to right. You should see your character’s index finger flex and curl. p. In the CHANNEL BOX, change indexFlexCurl to “0.” q. Repeat these steps for the middleFlexCurl attribute, the ringFlexCurl attribute, the pinkyFlexCurl attribute and the thumbFlexCurl attribute. Note: thumbFlexCurl is thumbPalm, thumb1_jnt, and thumb2_jnt. 15. [File > Save As] Save a copy of your scene file. 16. Use Set Driven Key to add functionality to the thumbSpread attribute by doing the following: a. In the Driver section of the Set Driven Key window, choose “thumbSpread” in the right column. b. Select the select the left_thumb_palm_jnt, hold down the (ctrl) key n.

c.

and click left_thumb1_jnt, left_thumb2_jnt, then click Load Driven in the Set Driven Key window. In the Driven section of the Set Driven Key window, click on left_ thumb_palm_jnt, hold down the (ctrl) key and click left_thumb1_jnt, and left_thumb2_jnt to select them. 179

An Essential Introduction to Maya Character Rigging

FIGURE 5.47 Setting the third key so that, when the indexFlexCurl is set to “−10,” the index finger is in the flexed position. Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.48 Loading the Set Driven Key window and setting the first key so that, when the thumbSpread attribute is set to “0,” the thumb is in the default (original) position. Persephone model by Kenna Hornibrook, 2019.

d.

In the Driven section of the Set Driven Key window, click “rotate Y,” then hold down the (ctrl) key and click “rotate Z” in the right column.

e.

In the Set Driven Key window, click Key (this sets a default finger pose position at attribute value of 0) (Figure 5.48). In the Driver section of the Set Driven Key window, click on left_ fingers_anim to select it.

f. 180

Bipedal Arms and Hands

FIGURE 5.49 Setting the second key so that, when the thumbSpread is set to “10,” the thumb is near the index finger and in a spread position. Persephone model by Kenna Hornibrook, 2019.

g. h.

In the x CHANNEL BOX, change thumbSpread to “10.” In the PERSPECTIVE window, select the rotate tool by pressing the (e) key and rotate the thumb finger joints (thumb_palm_jnt and thumb1_ jnt) along the Y or Z-axis into a position away from the index finger.

i.

In the Set Driven Key window, click Key (this sets a keyed pose of the thumb in a cupped position at attribute value of “10”) (Figure 5.49). In the Driver section of the Set Driven Key window, click on left_ fingers_anim to select it. In the CHANNEL BOX, change thumbSpread to “−10.” In the PERSPECTIVE window, select the rotate tool by pressing the (e) key and rotate the thumb finger joints (thumb_palm_jnt and thumb1_jnt) along the Y or Z-axis into a position next to the index finger.

j. k. l.

In the Set Driven Key window, click Key (this sets a keyed pose of the thumb in a cupped position at attribute value of “−10”). n. To test and see if the control works, click on the word thumbSpread in the CHANNEL BOX, then in the PERSPECTIVE window, MMB click and drag your mouse left to right. o. In the CHANNEL BOX, change thumbSpread to “0.” 17. [File > Save As] Save a copy of your scene file (Figure 5.50). 18. Use Set Driven Key to add functionality to the fingerSpread attribute by doing the following: a. In the Driver section of the Set Driven Key window, choose “fingerSpread” in the right column. b. Select the select the left_index1_jnt, hold down the (ctrl) key and click the left_middle1_jnt, the left_ring1_jnt, and the left_pinky1_jnt, m.

then click Load Driven in the Set Driven Key window. 181

An Essential Introduction to Maya Character Rigging

FIGURE 5.50 Setting the third key so that, when the thumbSpread is set to “−10,” the thumb is away from the index finger and in a closed position. Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.51 Loading the Set Driven Key window and setting the first key so that, when the fingerSpread attribute is set to “0,” the fingers are in the default (original) position. Persephone model by Kenna Hornibrook, 2019.

c.

d. e. f. g. h. 182

In the Driven section of the Set Driven Key window, click the left_ index1_jnt, hold down the (ctrl) key and click the left_middle1_jnt, the left_ring1, and the left_pinky1_jnt to select them. In the Driven section of the Set Driven Key window, choose “rotate Y” in the right column. In the Set Driven Key window, click Key (Figure 5.51) In the Driver section of the Set Driven Key window, click on left_ fingers_anim to select it. In the CHANNEL BOX, change fingerSpread to “10.” In the PERSPECTIVE window, select the rotate tool by pressing the (e) key, rotate the finger joints (left_index1_jnt, left_middle1_jnt,

Bipedal Arms and Hands

FIGURE 5.52 Setting the second key so that, when the fingerSpread is set to “10,” the fingers are in a spread position. Persephone model by Kenna Hornibrook, 2019.

left_ring1_jnt, and left_pinky1_jnt) along the Y-axis (the green ring) into a squeezed spread open position. i. j. k. l.

In the Set Driven Key window, click Key (Figure 5.52). In the Driver section of the Set Driven Key window, click on left_ fingers_anim to select it. In the CHANNEL BOX, change fingerSpread to “−10.” In the PERSPECTIVE window, select the rotate tool by pressing the (e) key, rotate the finger joints (left_index1_jnt, left_middle1_jnt, left_ ring1_jnt, and left_pinky1_jnt) along the Y-axis (the green ring) into a closed position where all of the fingers would be touching.

In the Set Driven Key window, click Key . To test and see if the control works, click on the word fingerSpread in the CHANNEL BOX, then in the PERSPECTIVE window, MMB click and drag your mouse left to right. You should see your character’s fingers spread and close. o. In the CHANNEL BOX, change fingerSpread to “0.” 19. [File > Save As] Save a copy of your scene file (Figure 5.53). 20. Use set driven key to add functionality to the relax attribute by doing the following: a. In the Driver section of the Set Driven Key window, choose “relax” in the right column. b. Select all of the joints in the hand (except for the end joints) and click m. n.

c. d.

Load Driven in the Set Driven Key window. In the Driven section of the Set Driven Key window, click on all of the finger joints to select them. In the Driven section of the Set Driven Key window, click “rotate X,” then hold down the (ctrl) key and click “rotate Y” and “rotate Z” in the right column. 183

An Essential Introduction to Maya Character Rigging

FIGURE 5.53 Setting the third key so that, when the fingerSpread is set to “−10,” the fingers are in a closed position. Persephone model by Kenna Hornibrook, 2019.

FIGURE 5.54 Loading the Set Driven Key window and setting the first key so that, when the relax attribute is set to “0,” the fingers are in the default (original) position. Persephone model by Kenna Hornibrook, 2019.

e. f. g. h.

184

In the Set Driven Key window, click Key (this sets a default finger pose position at attribute value of 0) (Figure 5.54). In the Driver section of the Set Driven Key window, click on left_ fingers_anim to select it. In the CHANNEL BOX, change relax to “10.” In the PERSPECTIVE window, select the rotate tool by pressing the (e) key and rotate the finger joints along the X, Y, or Z-axis into a relaxed position. (The goal is to make it so that the hand looks relaxed, the index finger is straightest, the other fingers get progressively more curled, and the thumb is curled inward.)

Bipedal Arms and Hands

FIGURE 5.55 Setting the second key so that, when the relax is set to “10,” the fingers are in a relaxed position. Persephone model by Kenna Hornibrook, 2019.

In the Set Driven Key window, click Key (this sets a keyed pose of the fingers in a cupped position at attribute value of “10”). j. To test and see if the control works, click on the word relax in the CHANNEL BOX, then in the PERSPECTIVE window, MMB click and drag your mouse left to right. k. In the CHANNEL BOX, change relax to “0.” l. Save your scene file. [File > Save As] Save a copy of your scene file (Figure 5.55). Repeat adding functionality to the attributes for the right fingers. Additional functionality can be added for poses that your character will be doing repetitively, such as holding a pen, making the peace sign, or a fist. [File > Save As] Save a copy of your scene file. i.

21. 22. 23. 24.

Cleanup for the Hand Setup 25. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the channel is white, hold down the RMB and choose “lock selected.” If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. Later, these channels can be hidden.[File > Save As] Save a copy of your scene file. CONTROL NAME left_fingers_anim, right_fingers_anim

LOCK and HIDE (select in CHANNEL BOX, RMB) translateX, translateY, translateZ, rotateX, rotateY, rotateZ, scaleX, scaleY, and scaleZ, visibility

26. [File > Save As] Save a copy of your scene file. 185

An Essential Introduction to Maya Character Rigging

Wings Fundamentally, the wings of birds and bats are similar to the anatomical structure of bipedal arms. For this reason, I have included a short discussion on wings in this chapter. There are many different types of flying creatures, both real and fantasy, so it is important to understand the basic differences before setting up rigs to control wings in animated characters. As with anything, do your research. Study the movement and articulation of the character you are rigging in order to create the best control system for the movement needed (Figure 5.56). It is important to distinguish the difference between flying and gliding when it comes to movement. Flying for an animal or insect is the ability to generate lift and thrust while gliding is basically falling, or as Woody in Toy Story describes it “falling with style.” Birds and Bats fly with a motion similar to the butterfly stroke in swimming. They rotate their wings (arms) and drag them through the air (or water if a human swimming). Scientifically, bats and birds are vertebrates, so their skeletal structure is similar. Birds have an elongated arm with a single finger and a tiny thumb. Bats have a fully flexible and articulated hand as part of their wings. Birds have wings covered in feathers, while bats wings are covered with skin membranes and thin lines of muscle, which allow them to change the shape of their wings during flight (Figure 5.57). The wings (or arms) of birds have feathers attached either to the bone or to their skin (like hair). There are three sections of flight feathers that follow the bones of the arms: primaries, secondaries, and tertials. Most birds have between nine and sixteen primary feathers that are attached to the finger, or hand section and are connected to the bone. These feathers are not very mobile. The secondaries are attached to the Ulna bone in the bird’s forearm and can range between nine and 25 and have more mobility. The tertials are attached to the humerus bone, or upper arm, and usually number three to four. In addition, there are several layers of covert feathers that help smooth airflow and cover the flight feathers (Figure 5.58).

FIGURE 5.56 Mallard flight sequence for reference. Photo sequence by Robert Briggs, 2020. Used with permission.

186

Bipedal Arms and Hands

FIGURE 5.57 Bats have elliptical wings and are very much like a human arm, with a fully articulated hand, covered in skin membrane, muscle, and hairs. Photo by Jason Fronczek, 2017. Used with permission.

FIGURE 5.58 The flight feathers of birds are attached to the bones of the arm. Primaries are attached to the hand/finger area, while secondaries are attached to the Ulna in the forearm. Photo by Jason Fronczek, 2017, altered by the author with permission.

187

An Essential Introduction to Maya Character Rigging According to the Cornell Lab of Ornithology, there are four general wing shapes common in birds: soaring wings, elliptical wings, high-speed wings, and hovering wings. Soaring wings are long and narrow, and broken down into two different types: active and passive. Active soaring wings rely on air current while passive soaring wings have gaps in between the primary flight feathers, allowing the bird to soar without reliable wind (Figures 5.59 to 5.67). Insect wings are in a different category altogether. Scientifically insects are classified as arthropods, and their wings are an outgrowth of their segmented body and controlled by muscles attached at the base of the wing. Generally, insect wings are made up of two pairs, the forewings and hind wings, and they emerge from the second and third thoracic segments. It is important to note that some insects only have one pair of wings (Figures 5.68 to 5.70).

FIGURE 5.59 A seagull (left) has active soaring wings while the wood stork (right) has passive soaring wings. Photos by Robert J. Briggs, 2020. Used with

permission.

FIGURE 5.60 The elliptical wings of the mockingbird allow high bursts of speed, fast takeoffs, and tight maneuvering. Photo by Robert J. Briggs, 2020. Used with permission.

188

Bipedal Arms and Hands

FIGURE 5.61 High speed wings are long and thin and allow birds, such as the killdeer (left) and swallow-tail kite (right), the ability to maintain a high speed for long distances and to outrun their predators. Photos by Robert J. Briggs, 2020. Used with permission.

FIGURE 5.62 A hummingbird has hovering wings that are small and rotate in a full circle while flapping. They beat their wings about 70 times per second while hovering. Photo by Judy Lynn Malloch, naturestapestryjlm.com, ©jlm 2020. Used with permission.

189

An Essential Introduction to Maya Character Rigging

FIGURE 5.63 The design for this character calls for both arms and wings. Gan Vough model by Ida McKenna

Phillips, 2013.

FIGURE 5.64 Similar to the arm rig, the wing rig is set up with a skinnable arm, along with FK and IK control arms, and an IK/KF switch for the animator to choose. The image shows the placement for the wing’s shoulder_jnt, elbow_jnt, forearm_jnt, wrist_jnt, and palm_jnt. A prefix of left_wing_ should be used to distinguish the wing from the character’s arm. Additional joints should be added to the top of every feather to control their splay with Set Driven Key. Group and parent them to the appropriate parent joint that aligns with the flight feathers. GanVough model by Ida McKenna Phillips, 2013.

FIGURE 5.65 Swan stretching and refolding their wings. Photo sequence by Robert Briggs, 2020. Used with permission.

190

Bipedal Arms and Hands

FIGURE 5.66 A majestic swan stretching their soaring wings. In this image, you can clearly see the articulation of the feathers and sections of the upper arm (tertials), forearm (secondaries), and wrist/finger (primaries). Photo by Robert Briggs, 2020. Used with permission.

FIGURE 5.67 A joint placement for the swan model without feathers. The image shows the placement for the wing’s shoulder_jnt, elbow_jnt, forearm_ jnt, wrist_jnt, and palm_jnt. A prefix of left_wing_ should be used to distinguish the wing from the character’s arm. Additional joints should be added to the top of every feather to control their splay with Set Driven Key. Group and parent them to the appropriate parent joint that aligns with the flight feathers. Swan model by Damian Thorn-Hauswirth, 2020.

FIGURE 5.68 Insects such as the dragonfly and butterfly have two pair of wings which are connected to their body with muscles at the base of the wing that controls its movement. Photos by Robert J. Briggs, 2020. Used with permission.

191

An Essential Introduction to Maya Character Rigging

FIGURE 5.69 Rigging moth wings can be done without joints. The pivot of the geometry can be placed at the base of the wing. Set Driven Key is used to create five positions of folding and unfolding the wings. Luna model by Haley Vallandingham, 2015.

FIGURE 5.70 The hierarchy of the wings for the character, Luna. Group nodes and attributes are used for an expression that automates the flapping and speed of the wings.

192

Chapter 6

Quadruped Legs and Feet • • • • • • •

Workflow Introduction: Hoofs, Paws, and Claws Joint Placement for the Leg and Paw Skeleton Control System for the Leg and Paw Rig Control System for the Leg and Claw Rig Additional Functionality for the Talons and Toes Control System for the Leg and Hoof Rig

Workflow Figure 6.1

Introduction: Hoofs, Paws, and Claws Quadruped animals are similar to Bipeds, but there is one significant difference, quadrupeds do not put weight on their heel when they walk. Animals with paws and claws walk on the balls of their feet (digitigrade) while animals with hoofs walk on their toe tip (unguligrade). The exception to this rule would be the bear. A bear is a plantigrade just like a human. Digital characters can be approached in any way, based on the design of the character, but it is best to base your characters on reality. This chapter takes a look at how to build a leg and control system for these different types of animal legs (Figure 6.2).

Joint Placement for the Leg and Paw Skeleton Just as we did for the Biped, we will be placing joints in each area of the body (spine, head, neck, legs, and paws) and then creating the control system for those joints, treating each area as its own mini-rig; this will then be combined together with all parts of the body to function as a whole. This chapter will create the skeleton and a simple basic IK control system for the legs and feet of a quadruped. This gives basic functionality for a four-legged character to walk, run, and move around while standing. For this example, we will be looking at the skeletal setup of a dog, much like a Rottweiler or Doberman. It is helpful to look at the skeletal structure of a breed similar to the style of the character that you are rigging to help with joint placement. 193

An Essential Introduction to Maya Character Rigging

FIGURE 6.1 Quadruped Legs and Feet Workflow.

1. Set up your work environment by doing the following: a. Once Maya is open, go to [File > Set Project…] and browse to the b.

194

project folder. Click Set . Go to [File > Open] and select your model file. (Alternatively, you could use File Referencing if the model is not finished, being detailed, or UV’d. See Chapter 1 for more details on creating a File Reference.)

Quadruped Legs and Feet

FIGURE 6.2 Lucy Furr model by Ashley Lupariello, 2019.

c.

In the TOP, FRONT, SIDE, and PERSPECTIVE view panels, go to [Shading > X-Ray]. d. In the OUTLINER, make sure that your geometry is organized into one node, select that node, and then create a new display layer by clicking the button on the far right. Change the layer to R for reference in the third column so that you are unable to select the geometry by mistake when working (Figure 6.3). 2. Create the back leg joint hierarchy by doing the following: a. Press (F3) to change to the Rigging Menu Set. b. Select [Skeleton > Create Joints □ ]. i. Under Orientation Settings keep Primary Axis set to X change Secondary Axis to Z and change Secondary Axis World Orientation to Z + ii. Under Bone Radius Settings change Long bone radius to 0.5000 c. In the SIDE orthographic view, place six joints for the leg as follows (Figure 6.4): d. Rename these joints hip_skin_jnt, knee_skin_jnt, ankle_skin_jnt, ball_skin_jnt, toeBase_skin_jnt, and toeTip_skin_jnt. e. In the PERSPECTIVE orthographic view, select hip_skin_jnt and move (w) using Axis Orientation: World the joint chain along the X-axis (the red arrow) into the left hind leg of your character’s geometry. Remember, it is not necessary to reorient a joint chain if it is moved in its entirety. 195

An Essential Introduction to Maya Character Rigging

FIGURE 6.3 Placing geometry on a layer and setting it to reference.

FIGURE 6.4 Placing and renaming the hind leg joints. Sometimes, the design is not quite anatomically correct, so a rigger must find the best location for joints to be positioned. In this case, Lucy’s paws are stylistically different from an actual dog’s paws. Lucy Furr model by Ashley Lupariello, 2019.

f.

g.

For some characters, it is necessary to rotate in the Z-axis the hip_ skin_jnt to align the joint chain with the slightly inverted V shape of the legs. You must then [Modify > Freeze transformations] with the hip_skin_jnt selected to reset the rotateZ to 0. Rename your leg chain to include left_hind_ prefix by selecting the hip_skin_jnt joint, then go to [Modify > Prefix Hierarchy

Names…]. Enter left_hind_ in the text field and click OK . This indicates the character’s left but your screen right or left if looking from behind (Figure 6.5). 3. [File > Save As] Save a copy of your scene file. 196

Quadruped Legs and Feet

FIGURE 6.5 Repositioning the leg joints in the PERSPECTIVE orthographic view panel and adding the prefix left_hind_ Lucy Furr model by Ashley Lupariello, 2019.

Remember to reorient joints if they need to be moved. Only move leg joints in the SIDE orthographic view, with the exception of the top joint of the hierarchy. The leg joint chain must be STRAIGHT in the FRONT view for the IK solver to work properly. 4. Create the front leg joint hierarchy by doing the following: a. Press (F3) to change to the Rigging Menu Set. b. Select [Skeleton > Create Joints □ ]. i. Under Orientation Settings keep Primary Axis set to X change Secondary Axis to Z and change Secondary Axis World Orientation to Z + ii. Under Bone Radius Settings change Long bone radius to 0.5000 c. In the SIDE orthographic view, place six joints for the leg as follows (Figure 6.6): d. Rename these joints shoulder_skin_jnt, elbow_skin_jnt, ankle_ skin_jnt, ball_skin_jnt, and toeBase_skin_jnt, and toeTip_skin_jnt. e. In the PERSPECTIVE orthographic view, select shoulder_skin_jnt and move (w), using Axis Orientation: World, the joint chain along the X-axis (the red arrow) into the left leg of your character’s geometry. Remember, it is not necessary to reorient a joint chain if it is moved in its entirety. For some characters, it is necessary to rotate in the Z-axis the shoulder_skin_jnt to align the joint chain with the slightly inverted V shape of the legs. You must then [Modify > Freeze transformations] with the hip_skin_jnt selected to reset the rotateZ to 0. 197

An Essential Introduction to Maya Character Rigging

FIGURE 6.6 Placing and renaming the front leg joints. Lucy Furr model by Ashley Lupariello, 2019.

f.

Rename your leg chain to include left_front_ prefix by selecting the shoulder_skin_jnt, then go to [Modify > Prefix Hierarchy

Names…]. Enter left_front in the text field and click OK . This indicates the character’s left but your screen right or left if looking from behind (Figure 6.7). 5. [File > Save As] Save a copy of your scene file. Remember to reorient joints if they need to be moved. Only move leg joints in the SIDE orthographic view, with the exception of the top joint of the hierarchy. The leg joint chain must be STRAIGHT in the FRONT view for the IK solver to work properly.

Verifying the Joint Local Rotation Axis It is important to make sure that the local rotational axis of the joints are aligned. For an IK controlled joint chain, the X-axis must point to the child joint, while the other two axes must be aligned. For an FK controlled joint chain, the axes should align as closely as possible with world orientation. The last joint of any chain will always align with world axis orientation. 6. Continue working or open your last saved version of the file. 7. Evaluate the axes and determine if any need to be fixed. a. Select all joints by going to [Select > All By Type > Joints]. b. Press (F8) (Select By Component type) and choose “?” to display [Local Rotation Axes] (Figure 6.8). 198

Quadruped Legs and Feet

FIGURE 6.7 Repositioning the front leg joints in the PERSPECTIVE orthographic view panel and adding the prefix left_front_. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 6.8 Pressing (F8) (Select By Component type) and choose “?” to display [Local Rotation Axes].

c.

The leg should have the X-axis pointing down toward the child and the Z-axis coming forward (Figure 6.9). 8. If there is a problem with the axis orientation of the leg: a. Press (F8) to return to Object type (Select By Object Type) and open the OUTLINER [Windows > Outliner] (Figure 6.10). b. Select the top of the joint chain (left_hind_hip_skin_jn_jnt) c. Reorient by going to [Skeleton > Orient Joint □ ]. i. Under Orientation Settings keep Primary Axis set to X change Secondary Axis to Z and change Secondary Axis World Orientation to Z + ii. Click Orient . (Figure 6.11) 9. [File > Save As] Save a copy of your scene file. The six joints in each leg are the minimum amount of joints needed for a simplified setup. As mentioned earlier, additional FK control can be added, much like the arm setup in Chapter 5. Individual joints can also be added for the individual toes. The instructions on adding these joints can be found later in this chapter within the tutorial for the Claw Rig. 199

An Essential Introduction to Maya Character Rigging

FIGURE 6.9 Verifying the local rotation axes in the leg joints. The leg should have the X-axis pointing toward the child and the Z-axis coming forward. The last joint of the chain will align with the World axes. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 6.10 Pressing (F8) again toggles back (Select By Object type).

FIGURE 6.11 The Orient Joint Options for the left leg joints.

Control System for the Leg and Paw Rig For the leg control, we will only be setting up an IK control system since, most of the time, our quadrupeds will be walking on something. If you think you need an FK control system, you can follow the setup for the biped arms and adapt it to the legs. What follows is a simplified leg and paw setup. 200

Quadruped Legs and Feet 1. Continue working or open your last saved version of the file. 2. To make selection easier, open your OUTLINER by going to [Windows > Outliner]. 3. Create the IK in the leg by doing the following: a. Set a preferred angle in the front left leg by doing the following: i. Select the left_front_elbow_skin_jnt joint in the CHANNEL BOX set the following: RotateY: type “-60.” ii. Select the left_front_shoulder_skin_jnt joint, then go to [Skeleton > Set Preferred Angle]. iii. Select the left_front_elbow_skin_jnt joint, and in the CHANNEL BOX set the following: RotateY: type “0” (this will make the knee straight again). b. Set a preferred angle in the left hind leg by doing the following: i. Select the left_hind_knee_skin_jnt joint in the CHANNEL BOX set the following: RotateY: type “60.” ii. Select the left_hind_hip_skin_jnt joint, then go to [Skeleton > Set Preferred Angle]. iii. Select the left_hind_knee_skin_jnt joint, and in the CHANNEL BOX set the following: RotateY: type “0” (this will make the knee straight again). (We must first set a preferred angle in the legs, so that Maya knows which direction to bend the leg when we run the IK solver through the joints. The front leg bends forward, and the hind leg bends backward.) (Figure 6.12)

FIGURE 6.12 Setting a preferred angle on the legs by selecting the left_hind_hip_skin_jnt with the knee rotated. Lucy Furr model by Ashley Lupariello, 2019.

201

An Essential Introduction to Maya Character Rigging c.

Go to [Skeleton > Create IK Handle □ ] and set the following: Click Reset Tool then, under IK Handle Settings, change the following: Current solver should be “Rotate-Plane Solver” UNCHECK □ the box next to Solver enable

d.

e.

f. g.

h.

Place a CHECKMARK in the box next to Sticky In the PERSPECTIVE window, click on the left_hind_hip_skin_jnt joint (to define the start of the IK joint chain) then on the left_hind_ball_ skin_jnt joint (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ hind_leg_ikHandle. Rename effector1 as left_hind_leg_ikHandle_ effector (this chain will control the leg movement). Press the (y) key to select the last tool used – in this case, the IK Handle tool. In the PERSPECTIVE window, click on the left_front_shoulder_skin_jnt joint (to define the start of the IK joint chain) then on the left_front_ ball_skin_jnt joint (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ front_leg_ikHandle. Rename effector1 as left_front_leg_ikHandle_ effector (This chain will control the leg movement.) (Figure 6.13)

Alternatively, with the IK Handle tool, you can select the starting joint in the OUTLINER and (ctrl PC or ⌘ MAC) click on the end joint to create the ikHandle.

FIGURE 6.13 Creating a Rotate-Plane IK solver in the front and left hind leg. Lucy Furr model by Ashley Lupariello, 2019.

202

Quadruped Legs and Feet

Because we created the IK handle in the leg without Solver Enabled, it will not work. We did this is because of the position of the leg joints and the fact that we ran the IK chain through the ball joint. If the solver was enabled, it would begin to rotate the joints out of position. We will enable the solver later, once the control system is in place. i. i.

Go to [Skeleton > Create IK Handle □ ] and set the following: Under IK Handle Settings change the following: Current solver: choose “Single-Chain Solver” Keep a CHECKMARK

j.

k.

l. m.

in the box next to Solver enabled

Keep a CHECKMARK in the box next to Sticky In the PERSPECTIVE window, click on the left_front_ball_skin_jnt joint (to define the start of the IK joint chain), then on the left_front_ toeBase_skin_jnt (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ front_paw_ikHandle. (This chain will control the ankle movement.) Rename effector1 to left_front_paw_ikHandle_effector (Figure 6.14). Press the (y) key to select the last tool used – in this case, the IK Handle tool. In the PERSPECTIVE window, click on left_hind_ball_skin_jnt (to define the start of the IK joint chain) then on left_hind_toeBase_skin_jnt (to define the end of the chain; an IK handle appears at the end of the chain).

FIGURE 6.14 Creating a Single-Chain IK solver in the front and left hind paw. Lucy Furr model by Ashley Lupariello, 2019.

203

An Essential Introduction to Maya Character Rigging n.

o. p.

q.

r. s.

t.

u.

In the OUTLINER, double-click on ikHandle1 and rename it left_ hind_paw_ikHandle. (This chain will control the toe movement.) Rename effector1 to left_hind_paw_ikHandle_effector. Press the (y) key to select the last tool used – in this case, the IK Handle tool. In the PERSPECTIVE window, click on the left_front_toeBase_skin_jnt joint (to define the start of the IK joint chain) then on the left_front_ toeTip_skin_jnt joint (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ front_toe_ikHandle. (This chain will control the ankle movement.) Rename effector1 to left_front_toe_ikHandle_effector. Press the (y) key to select the last tool used – in this case, the IK Handle tool. In the PERSPECTIVE window, click on left_hind_toeBase_skin_jnt (to define the start of the IK joint chain) then on left_hind_toeTip_skin_jnt (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ hind_toe_ikHandle. (This chain will control the toe movement.) Rename effector1 to left_hind_toe_ikHandle_effector (Figure 6.15). Mirror the left hip to create the right hip by selecting left_hind_hip_ skin_jnt, then go to [Skeleton > Mirror Joints □ ]. i. change Mirror across: YZ change Search for: left_ change Replace with: right_ ii. Click Mirror

FIGURE 6.15 Creating a Single-Chain IK solver in the front and left hind toe. Lucy Furr model by Ashley Lupariello, 2019.

204

Quadruped Legs and Feet

FIGURE 6.16 Mirroring the left_hind_hip_skin_jnt and left_front_shoulder_skin_jnt to create the right_hind leg joints and ikHandles. If the mirrored leg is not straight, you may have to delete the mirrored IK, zero the Rotations of the mirrored joints, and recreate the IK handles for the right legs. Lucy Furr model by Ashley Lupariello, 2019.

v.

Mirror the left hip to create the right hip by selecting left_front_ shoulder_skin_jnt, then go to [Skeleton > Mirror Joints □ ]. i. change Mirror across: YZ change Search for: left_ change Replace with: right_

ii. Click Mirror (Figure 6.16) 4. [File > Save As] Save a copy of your scene file. 5. Create a control system for the IK leg by doing the following: Be sure to turn off interactive creation. Go to [Create > NURBS Primitives] and make sure to remove the CHECKMARK Interactive Creation. a.

b. c.

d.

in the box next to

First create [Create > NURBS Primitives > Circle] or import the paw controllers. If importing the controllers, make sure to delete the namespace [Windows > General Editors > Namespace Editor]. In the CHANNEL BOX, rename the circle left_hind_ikLeg_anim. In the PERSPECTIVE view, select the move tool by pressing (w) and reposition the curve around the paw. DO NOT make it even with the bottom of the paw as the animator will have a hard time seeing it through the floor plane. Make sure the controller is in the toe by doing the following: Select the left_hind_ikLeg_anim then the left_hind_toe_ikHandle 205

An Essential Introduction to Maya Character Rigging

FIGURE 6.17 Creating and positioning the left_hind_ikLeg_anim with the pivot location in the toeTip joint. Lucy Furr model by Ashley Lupariello, 2019.

and go to [Modify > Match Transformation > Match Translations]. This will move the left_ikLeg_anim into the left_ toeTip_skin_jnt. (Figure 6.17) e. Use the scale tool by pressing (r) and resize the circle if necessary. (This control should be scaled large enough that it is OUTSIDE of the character’s paw to make it easy to select.) f. With the left_hind_ikLeg_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) g. Change the rotation order for the left_hind_ikLeg_anim by doing the following: i. With the left_hind_ikLeg_anim selected, open the ATTRIBUTE EDITOR by pressing [ctrl+a]. ii. Select the left_hind_ikLeg_anim tab. iii. Under Transform Attributes set the following: Rotate order: choose “ZXY.” The rotation order is changed to avoid Gimbal Lock. Remember that Gimbal Lock is impossible to avoid completely, but changing the rotation order on a controller helps keep it away. h. i. j. 206

Duplicate the left_hind_ikLeg_anim by going to [Edit > Duplicate] or press [ctrl+d]. In the OUTLINER, double-click on left_hind_ikLeg_anim1 and rename it right_hind_ikLeg_anim. Select the right_hind_ikLeg_anim then the right_hind_toe_ ikHandle and go to [Modify > Match Transformation > Match

Quadruped Legs and Feet

FIGURE 6.18 Duplicating the left_hind_ikLeg_anim and renaming and positioning the left_front_ikLeg_anim with the pivot location in the toeTip joint. Duplicate both the left_hind_ikLeg_anim and left_front_ikLeg_anim and move to the right side, renaming them right_hind_ikLeg_anim and right_front_ikLeg_anim, respectively. Lucy Furr model by Ashley Lupariello, 2019.

k.

l.

m. n. o. p. q.

r.

s.

Translations]. This will move the right_hind_ikLeg_anim into the right_hind_toeTip_skin_jnt. With the right_hind_ikLeg_anim selected set the following in the CHANNEL BOX: ScaleX: type “-1” (this will flip the controller over the right_hind paw). With the right_hind_ikLeg_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) Duplicate the left_hind_ikLeg_anim and the right_hind_ikLeg_anim by going to [Edit > Duplicate] or press [ctrl+d]. In the OUTLINER, double-click on left_hind_ikLeg_anim1 and rename it left_front_ikLeg_anim. In the OUTLINER, double-click on right_hind_ikLeg_anim1 and rename it right_front_ikLeg_anim. In the PERSPECTIVE view, select the move tool by pressing (w), move both controllers forward in Z to the correct location. Select the left_front_ikLeg_anim then the left_front_toe_ ikHandle and go to [Modify > Match Transformation > Match Translations]. (This will move the left_front_ikLeg_anim into the left_front_toeTip_skin_jnt.) Select the right_front_ikLeg_anim then the right_front_toe_ ikHandle and go to [Modify > Match Transformation > Match Translations]. (This will move the right_front_ikLeg_anim into the right_front_toeTip_skin_jnt.) With the right_front_ikLeg_anim and the left_front_ikLeg_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 6.18) 207

An Essential Introduction to Maya Character Rigging 6. [File > Save As] Save a copy of your scene file. 7. Create [Create > NURBS Primitives > Circle] or import a controller. If importing the controllers, make sure to delete the namespace [Windows > General Editors > Namespace Editor]. a. In the CHANNEL BOX, rename the circle left_hind_ikPaw_anim. b. Select the left_hind_ikPawPivot_anim then the left_hind_leg_ ikHandle and go to [Modify > Match Transformation > Match Translations]. This will move the left_hind_ikPaw_anim into place into the left_hind_ball_skin_jnt. c. If desired, choose the “select by component type” button in the Status Line or press the (F8) hotkey and use the move tool by pressing (w), click and drag around the Control Vertex points of the circle, and position them to reshape the curve into a different shape or position. d. Change the rotation order for the left_hind_ikPaw_anim by doing the following: e. With the left_hind_ikPaw_anim selected, open the ATTRIBUTE EDITOR by pressing [ctrl+a]. f. Select the left_hind_ikPaw_anim tab. g. Under Transform Attributes set the following:Rotate order: choose “ZXY.” h. Duplicate the left_hind_ikPawPivot_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). i. In the OUTLINER, double-click on left_hind_ikBall_pivot_anim1 and rename it right_hind_ikBall_pivot_anim. j. Select the right_hind_ikPawPivot_anim then the right_hind_leg_ ikHandle and go to [Modify > Match Transformation > Match Translations]. This will move the right_hind_ikPawPivot_anim to same location as the right_hind_ball_skin_jnt. If the shape is not symmetrical, you can also make the Scale X value negative. k. With the left_hind_ikPawPivot_anim and right_hind_ikPawPivot_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) l. Duplicate the left_hind_ikPawPivot_anim and the right_hind_ ikPawPivot_anim by going to [Edit > Duplicate] or press [ctrl+d]. m. In the OUTLINER, double-click on left_hind_ikPawPivot_anim1 and rename it left_front_ikPawPivot_anim. n. In the OUTLINER, double-click on right_hind_ikPawPivot_anim1 and rename it right_front_ikPawPivot_anim. o. In the PERSPECTIVE view, select the move tool by pressing (w), move both controllers forward in Z to the correct location. p. Select the left_front_ikPawPivot_anim then the left_front_leg_ ikHandle and go to [Modify > Match Transformation > Match Translations]. This will move the left_front_ikLeg_anim into the left_front_ball_skin_jnt. q. Select the right_front_ikPawPivot_anim then the right_front_leg_ ikHandle and go to [Modify > Match Transformation > Match Translations]. This will move the right_front_ikLeg_anim into the right_front_ball_skin_jnt. 208

Quadruped Legs and Feet

FIGURE 6.19 Creating and reshaping the left_hind_ikPawPivot_anim and right_hind_ikPawPivot_anim with the pivot in the ball_skin_jnt. Lucy Furr model by Ashley Lupariello, 2019.

With the right_front_ikPawPivot_anim and the left_front_ikPawPivot_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 6.19) 8. Create [Create > NURBS Primitives > Circle] or import a controller. If importing the controllers, make sure to delete the namespace [Windows > General Editors > Namespace Editor]. a. In the CHANNEL BOX, rename the circle left_hind_ikToeWiggle_anim. b. Select the left_hind_ikToeWiggle_anim then the left_hind_paw_ ikHandle and go to [Modify > Match Transformation > Match Translations]. This will move the left_hind_ikToeWiggle_anim into place into the left_hind_toe_skin_jnt. c. If desired, choose the “select by component type” button in the Status Line or press the (F8) hotkey and use the move tool by pressing (w), click and drag around the Control Vertex points of the circle and position them to reshape the curve into a different shape or position. d. Change the rotation order for the left_hind_ikToeWiggle_anim by doing the following: e. With the left_hind_ikToeWiggle_anim selected, open the ATTRIBUTE EDITOR by pressing [ctrl+a]. i. Select the left_hind_ikToeWiggle_anim tab. ii. Under Transform Attributes set the following: iii. Rotate order: choose “ZXY.” f. Duplicate the left_hind_ikToeWiggle_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). g. In the OUTLINER, double-click on left_hind_ikToeWiggle_anim1 and rename it right_hind_ikToeWiggle_anim. h. Select the right_hind_ikToeWiggle_anim then the right_hind_leg_ ikHandle and go to [Modify > Match Transformation > Match Translations]. This will move the right_hind_ikToeWiggle_anim to r.

209

An Essential Introduction to Maya Character Rigging the same location as the right_hind_toe_skin_jnt. If the shape is not symmetrical, you can also make the Scale X value negative. i. With the left_hind_ikToeWiggle_anim and right_hind_ikToeWiggle_ anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) j. Duplicate the left_hind_ikToeWiggle_anim and the right_hind_ ikToeWiggle_anim by going to [Edit > Duplicate] or press [ctrl+d]. k. In the OUTLINER, double-click on left_hind_ikToeWiggle_anim1 and rename it left_front_ikToeWiggle_anim. l. In the OUTLINER, double-click on right_hind_ikToeWiggle_anim1 and rename it right_front_ikToeWiggle_anim. m. In the PERSPECTIVE view, select the move tool by pressing (w) and move both controllers forward in Z to the correct location. n. Select the left_front_ikToeWiggle_anim then the left_front_leg_ ikHandle and go to [Modify > Match Transformation > Match Translations]. This will move the left_front_ikToeWiggle_anim into the left_front_toeBase_skin_jnt. o. Select the right_front_ikToeWiggle_anim then the right_front_leg_ ikHandle and go to [Modify > Match Transformation > Match Translations]. This will move the right_front_ikLeg_anim into the right_front_toeBase_skin_jnt. p. With the right_front_ikToeWiggle_anim and the left_front_ ikToeWiggle_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 6.20) 9. Create [Create > NURBS Primitives > Circle] or import the knee controllers. If importing the controllers, make sure to delete the namespace [Windows > General Editors > Namespace Editor]. a. In the CHANNEL BOX, rename the curve left_ikKnee_anim.

FIGURE 6.20 Creating and reshaping the left_hind_ikToe_wiggle_anim and right_hind_ikToe_wiggle_anim with the pivot in the toe joint. Lucy Furr model by Ashley Lupariello, 2019.

210

Quadruped Legs and Feet Select the left_ikKnee_anim then the left_hind_knee_skin_jnt and go to [Modify > Match Transformation > Match Translations]. This will move the left_ikKnee_anim into the left_hind_knee_skin_jnt. c. Use the scale tool by pressing (r) and resize the curve if necessary. d. The rotation order does not need to be changed on this controller because rotations are not necessary for control. e. Duplicate the left_ikKnee_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). f. In the OUTLINER, double-click on left_ikKnee_anim1 and rename it right_ikKnee_anim. g. Select the right_ikKnee_anim then the right_hind_knee_skin_ jnt and go to [Modify > Match Transformation > Match Translations]. This will move the right_ikKnee_anim into the right_hind_knee_skin_jnt. h. Select the right_ikKnee_anim and left_ikKnee_anim and with the move tool, click on the Z-axis (blue arrow) and move the controllers in front of the character’s knees. DO NOT leave the controllers inside the knees. i. With the right_ikKnee_anim and left_ikKnee_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 6.21) 10. Duplicate the left_ikKnee_anim and the right_ikKnee_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). a. In the OUTLINER, double-click on left_ikKnee_anim1 and rename it left_ikElbow_anim. b.

FIGURE 6.21 Creating and positioning the left_ikKnee_anim and right_ikKnee_anim. The ikKnee_anim will control the pole vectors of the hind leg_ikHandle, which in turn rotates the hind leg from the hip left to right. Lucy Furr model by Ashley Lupariello, 2019.

211

An Essential Introduction to Maya Character Rigging In the OUTLINER, double-click on right_ikKnee_anim1 and rename it right_ikElbow_anim. c. Select the left_ikElbow_anim then the left_front_elbow_skin_ jnt and go to [Modify > Match Transformation > Match Translations]. This will move the left_ikElbow_anim into the left_front_elbow_skin_jnt. d. Select the right_ikElbow_anim then the right_front_elbow_ skin_jnt and go to [Modify > Match Transformation > Match Translations]. This will move the right_ikElbow_anim into the right_front_elbow_skin_jnt. e. Select the left_ikElbow_anim and right_ikElbow_anim, with the move tool (w) click on the Z-axis (blue arrow), and move the controllers behind the character’s elbows. DO NOT leave the controllers inside the elbows. f. With the left_ikElbow_anim and right_ikElbow_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 6.22) 11. You may notice that we have created three separate IK chains for the leg and paw. A quadruped is capable of moving their toes, their paw, and their leg independently from each other. Because of this, one single IK chain from the hip to the toe would not work for the control needed. We are now going to create a hierarchal system that provides maximum control and protect the animator from losing their work if an IK handle stops solving. Create control between the controllers and the IK handles by doing the following: b.

FIGURE 6.22 Creating and positioning the left_ikElbow_anim and right_ikElbow_anim. The ikElbow_anim will control the pole vectors of the front leg_ikHandle, which in turn rotates the front leg from the shoulder left to right. Lucy Furr model by Ashley Lupariello, 2019.

212

Quadruped Legs and Feet a. In the OUTLINER, click on the left_hind_toe_ikHandle, hold down the (ctrl PC or ⌘ MAC) key and click on the left_hind_ikToeWiggle_anim, and then press (p) on the keyboard. (This makes the left_hind_toe_ ikHandle child to the left_hind_ikToeWiggle_anim.) Repeat for the right hind leg and the front legs. b. In the OUTLINER, click on the left_hind_paw_ikHandle, hold down the (ctrl PC or ⌘ MAC) key and click on the left_hind_ikToeWiggle_anim, then on the left_hind_ikPawPivot_anim, and then press (p) on the keyboard. (This makes the left_hind_paw_ikHandle and left_hind_ ikToeWiggle_anim child to the left_hind_ikPawPivot_anim.) Repeat for the right hind leg and the front legs. c. In the OUTLINER, click on the left_hind_leg_ikHandle, hold down the (ctrl PC or ⌘ MAC) key and click on the left_hind_ikPawPivot_ anim, then on the left_hind_ikLeg_anim, and then press (p) on the keyboard. (This makes the left_hind_leg_ikHandle and the left_ hind_ikPawPivot_anim child to the left_hind_ikLeg_anim.) Repeat for the right hind leg and the front legs. d. In the OUTLINER, click on the left_ikElbow_anim, hold down the (ctrl PC or ⌘ MAC) key and click on the left_front_ikLeg_anim, and then press (p) on the keyboard. (This makes the left_ikElbow_anim child to the left_front_ikLeg_anim.) Repeat for the right front leg. e. In the OUTLINER, click on the left_ikKnee_anim, hold down the (ctrl PC or ⌘ MAC) key and click on the left_hind_ikLeg_anim, and then press (p) on the keyboard. (This makes the left_ikKnee_anim child to the left_hind_ikLeg_anim.) Repeat for the right hind leg (Figure 6.23). f. In the PERSPECTIVE window, click on the left_ikKnee_anim (the leader, or target), hold down the (ctrl) key and click on the left_hind_ leg_ikHandle (the follower, or object), then go to [Constrain > Pole Vector]. Repeat for the right hind leg. g. In the PERSPECTIVE window, click on the left_ikElbow_anim (the leader, or target), hold down the (ctrl) key and click on the left_front_ leg_ikHandle (the follower, or object), then go to [Constrain > Pole Vector]. Repeat for the right hind leg (Figure 6.24). 12. [File > Save As] Save a copy of your scene file.

Cleanup for the Leg and Paw Setup 1. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during animation for that controller. If the channel is dark gray, hold down the RMB and choose “lock and hide selected.” If the rectangle before the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. If you are very new to rigging, I recommend only locking the channel to make sure mistakes are not made. It is easier to right-click to unlock later if necessary. A hidden channel can be made visible again, but it is a time-consuming process. 213

An Essential Introduction to Maya Character Rigging

FIGURE 6.23 The OUTLINER hierarchy before and after parenting the IK handles with the controllers to make the paw hierarchy.

FIGURE 6.24 Creating a pole vector constraint between the left_ikKnee_anim (the leader, or target) and the left_hind_leg_ikHandle (the follower, or object) as well as the left_ikElbow_anim (the leader, or target) and the left_front_leg_ikHandle (the follower, or object). Lucy Furr model by Ashley Lupariello, 2019.

214

Quadruped Legs and Feet

CONTROL NAME

LOCK (select in CHANNEL BOX, RMB)

right_front, left_front, right_hind & left_hind_ikLeg_anim

scaleX, scaleY, scaleZ, and visibility

right_front, left_front, right_hind & left_hind_ikPawPivot_anim, right_front, left_front, right_hind & left_hind_ikToeWiggle_anim

translateX, translateY, translateZ, scaleX, scaleY, scaleZ, and visibility

right_front, left_front ikElbow_anim right_hind & left_ikKnee_anim

rotateX, rotateY, rotateZ, scaleX, scaleY, scaleZ, and visibility



b. Hide IK so that during animation, they are not accidentally selected and keyframed. Select the, right_front, left_front, right_hind and left_hind_leg_ikHandle, right_front, left_front, right_hind and left_hind_paw_ikHandle, and right_front, left_front, right_hind and left_hind_toe_ikHandle and press (h) to hide them. c. Select the right_front, left_front, right_hind and left_hind_ikLeg_anim. d. [ctrl+g] to group and rename the group leg_anim_grp. e. Select the right_front and left_front shoulder_skin_jnt right_hind and left_hind hip_skin_jnt. f. [ctrl+g] to group and rename the group leg_jnt_grp. 2. [File > Save As] Save a copy of your scene file (Figure 6.25). We still have not enabled the Leg ikHandles. If you want to test out some of your leg controls, first save your file, then select the left_hind_ leg_ikHandle, right_hind_leg_ikHandle, left_front_leg_ikHandle, and right_front_leg_ikHandle. In the CHANNEL BOX, change the IK Blend attribute to “1.” You may see your leg joints move. Select the left_hind_ ikPaw_anim and move it around toward the body so that the knee bends. You can also rotate this controller to control the ankle. Select the left_ikKnee_anim and move it left to right to control the position of the knee. Be sure not to save this. Simply re-open your last save before continuing to work.

Control System for the Leg and Claw Rig The joint placement for the legs of a bird or an animal (with claws even a mythical one, such as a Gryphon) is pretty much the same, with the addition of the individual talon joints. While animals with paws also have claws, the additional control is not necessarily needed unless you are going for realism in motion. This following tutorial will build upon the leg joints created earlier in this chapter and can be used for both claws and paw toes (Figure 6.26). For the leg control, we will still only be setting up an IK control system, but the following setup is similar to the control system for the Paws and can be used for both paws and claws when additional animation control is needed for the legs and for the individual toes or talons of the animals. 215

An Essential Introduction to Maya Character Rigging

FIGURE 6.25 The OUTLINER hierarchy before and after parenting the grouped controllers and the joints for organizational purposes.

FIGURE 6.26 Priscilla model by Charlie Tong, 2014.

1. Continue working or open your last saved version of the file after the earlier tutorial of adding joints for the leg. If you have not yet added joints for the leg, then please go back to the beginning of this chapter and do so. 2. To make selection easier, open your OUTLINER by going to [Windows > Outliner]. 3. Create the claw joint hierarchy by doing the following: a. Select [Skeleton > Create Joints □ ]. i. Under Orientation Settings keep Primary Axis set to X change Secondary Axis to Y and change Secondary Axis World Orientation to Y + ii. Under Bone Radius Settings change Long bone radius to 0.5000

216

Quadruped Legs and Feet

FIGURE 6.27 Placing and renaming the middle, index, and pinky talon joints. Priscilla model by Charlie Tong, 2014.

b. c.

d.

e.

In the PERSPECTIVE view, create the talon joints: one in palm, one in first knuckle, one in tip of the talon. Place three joints for the middle talon: one in palm, one in first knuckle, one in tip of the talon. Rename the joints as follows: middlePalm_jnt, middleStart_jnt, middleEnd_jnt. Repeat this process for the other talon joints, renaming as needed indexPalm_jnt, indexStart_jnt, indexEnd_jnt, pinkyPalm_jnt, pinkyStart_jnt, indexEnd_jnt. If necessary, move or rotate the palm joint of the talons into position, freeze transformations, and reorient [Skeleton > Orient Joint]. Make sure to change the Orient Joint options to match the Create Joint options: Primary Axis: Z; Secondary Axis: Y; Secondary Axis World Orientation: Y+. (Figure 6.27)

To speed up the process, duplicate [ctrl+d] the middlePalm_jnt and use [Modify > Search and Replace Names…] for the ring and index fingers. Then simply rotate and move the joints in place. Be sure to [Modify > Freeze Transformations] and [Skeleton > Orient Joint]. Make sure to change the Orient Joint options to match the Create Joint options: Primary Axis: Z; Secondary Axis: Y; Secondary Axis World Orientation: Y+. f.

g.

Press the (y) key to choose your last tool – the joint tool. Place three joints for the thumb talon: one in palm, one in first knuckle, one in tip of the talon. Rename the joints as follows: thumbPalm_jnt, thumbStart_jnt, thumbEnd_jnt. (Figure 6.28) Select pinkyPalm_jnt, middlePalm_jnt, indexPalm_jnt, thumbPalm_jnt, shift-select toeBasev_skin_jnt and press (p) to parent.

217

An Essential Introduction to Maya Character Rigging

FIGURE 6.28 Placing and renaming the thumb talon joints. Priscilla model by Charlie Tong, 2014.

Repeat for the hind legs if necessary. In this example, the Gryphon character has paws in the hind legs, so individual joints can be added for each toe in the same way as the talons. For a bird character, there are only clawed feet and wings. Wings are similar to arms, which is covered in Chapter 5. If the bird’s feet are webbed, they can be set up like a paw, with or without individual toe joints. 4. [File > Save As] Save a copy of your scene file.

Verifying the Joint Local Rotation Axis It is important to make sure that the local rotational axis of the joints are aligned. For an IK controlled joint chain, the x-axis must point to the child joint, while the other two axes must be aligned. Continue working or open your last saved version of the file. 1. Evaluate the axes and determine if any need to be fixed. a. Select all joints by going to [Select > All By Type > Joints]. b. Press (F8) (Select By Component type) choose “?” to display [Local Rotation Axes]. (Figures 6.29 and 6.30) 2. If there is a problem with the axis orientation of the legs: a. Press (F8) (Select By Object Type) and open the OUTLINER [Window > Outliner]. b. Select the first of the joint1 of each leg chain. c. Reorient by going to [Skeleton > Orient Joint □ ]. i. Under Orientation Settings keep Primary Axis set to X change Secondary Axis to Z and change Secondary Axis World Orientation to Z + Click ORIENT . 218

Quadruped Legs and Feet

FIGURE 6.29 Verifying the local rotation axes in the leg joints. The legs are on the Y-axis and should have the X-axis pointing toward the child and the Z-axis coming forward. The paws and claws are on the Z-axis, so those should have the X-axis pointing toward the child and the Y-axis pointing upward. The last joint of the chain will align with the World axes. Priscilla model by Charlie Tong, 2014.

FIGURE 6.30 Verifying the local rotation axes in the paw and claw joints. The paws and claws are on the Z-axis, so those should have the X-axis pointing toward the child and the Y-axis pointing upward. The last joint of the chain will align with the World axes. Priscilla model by Charlie Tong, 2014.

Re-orienting the legs will reorient the toes and talons. Be sure to doublecheck the alignment of the toes and talons after reorienting the legs, then reorient them if necessary. 3. If there is a problem with the axis orientation of the toes or talons: a. Press (F8) (Select By Object Type) and open the OUTLINER [Window > Outliner] b. Select the first joint of a toe or talon chain. c. Reorient by going to [Skeleton > Orient Joint □ ]. 219

An Essential Introduction to Maya Character Rigging i. Under Orientation Settings, keep Primary Axis set to X change Secondary Axis to Y, and change Secondary Axis World Orientation to Y + Click ORIENT . 4. Repeat for each toe or talon chain. 5. [File > Save As] Save a copy of your scene file. 6. Create the IK in the leg by doing the following: a. Set a preferred angle in the front left leg by doing the following: i. Select the elbow_skin_jnt joint in the CHANNEL BOX set the following: RotateY: type “-60.” ii. Select the shoulder_skin_jnt joint, then go to [Skeleton > Set Preferred Angle]. iii. Select the elbow_skin_jnt joint, and in the CHANNEL BOX set the following: RotateY: type “0” (this will make the knee straight again). b. Set a preferred angle in the left hind leg by doing the following: i. Select the knee_skin_jnt joint, and in the CHANNEL BOX set the following: RotateY: type “60.” ii. Select the hip_skin_jnt joint, then go to [Skeleton > Set Preferred Angle]. iii. Select the knee_skin_jnt joint, and in the CHANNEL BOX set the following: RotateY: type “0” (this will make the knee straight again) (Figure 6.31).

FIGURE 6.31 Setting a preferred angle on the legs by selecting the hip_skin_jnt with the knee rotated. Priscilla model by Charlie Tong, 2014.

220

Quadruped Legs and Feet

We must first set a preferred angle in the legs so that Maya knows which direction to bend the leg when we run the IK solver through the joints. The front leg bends forward, the hind leg bends backward. c.

d.

Rename your leg chain to include left_front_prefix by selecting the shoulder_skin_jnt, then go to [Modify > Prefix Hierarchy Names…]. Enter left_front in the text field and click OK . This indicates the character’s left but your screen right or left if looking from behind. Rename your leg chain to include left_hind_prefix by selecting the hip_skin_jnt, then go to [Modify > Prefix Hierarchy Names…].

Enter left_hind in the text field and click OK . This indicates the character’s left but your screen right or left if looking from behind. 7. Go to [Skeleton > Create IK Handle □ ] and set the following: a.

b.

c.

d. e.

f.

Click Reset Tool then under IK Handle Settings change the following: i. Current solver should be “Rotate-Plane Solver” ii. Place a CHECKMARK in the box next to Sticky In the PERSPECTIVE window, click on the left_hind_hip_skin_jnt joint (to define the start of the IK joint chain) then click on the left_hind_ ankle_skin_jnt joint (to define the end of the chain; an IK handle appears at the end of the chain.) In the OUTLINER, double-click on ikHandle1 and rename it left_ hind_leg_ikHandle. Rename effector1 as left_hind_leg_ikHandle_ effector (This chain will control the leg movement.) Press the (y) key to select the last tool used – in this case, the IK Handle tool. In the PERSPECTIVE window, click on the left_front_shoulder_skin_jnt joint (to define the start of the IK joint chain) then on the left_front_ ankle_skin_jnt joint (to define the end of the chain; an IK handle appears at the end of the chain.) In the OUTLINER, double-click on ikHandle1 and rename it left_ front_leg_ikHandle. Rename effector1 as left_front_leg_ikHandle_ effector (This chain will control the leg movement.) (Figure 6.32)

Alternatively, with the IK Handle tool, you can select the starting joint in the OUTLINER and (ctrl PC or ⌘ MAC) click on the end joint to create the ikHandle. g. h.

It is a great idea to check that the IK handle moves correctly along the Y-axis. You can do this by doing the following: Select and move the IK handle upward along the Y-axis (green arrow) toward the hips or shoulder to confirm that the leg bends in the correct direction. Be sure to press the (z) key to undo the move. 221

An Essential Introduction to Maya Character Rigging

FIGURE 6.32 Creating a Rotate-Plane IK solver in the front and left hind leg. Priscilla model by Charlie Tong, 2014.

The direction that the IK handle points are irrelevant. Its direction does not have any effect on the solver. i.

j.

k.

l. m.

n.

o. p.

222

Go to [Skeleton > Create IK Handle □ ] and set the following: i. Under IK Handle Settings change the following: Current solver: choose “Single-Chain Solver” Keep a CHECKMARK in the box next to Sticky In the PERSPECTIVE window, click on the left_hind_ankle_skin_jnt joint (to define the start of the IK joint chain) then on the left_hind_ ball_skin_jnt joint (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ hind_ankle_ikHandle. (This chain will control the ankle movement.) Rename effector1 to left_hind_ankle_ikHandle_effector Press the (y) key to select the last tool used – in this case, the IK Handle tool. In the PERSPECTIVE window, click on the left_front_ankle_skin_jnt joint (to define the start of the IK joint chain) then on the left_front_ ball_skin_jnt joint (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_front_ ankle_ikHandle. (This chain will control the ankle movement.) Rename effector1 to left_front_ankle_ikHandle_effector (Figure 6.33) Press the (y) key to select the last tool used – in this case, the IK Handle tool. In the PERSPECTIVE window, click on left_hind_ball_ skin_jnt (to define the start of the IK joint chain) then on

Quadruped Legs and Feet

FIGURE 6.33 Creating a Single-Chain IK solver in the front and left hind ankle. Priscilla model by Charlie Tong, 2014.

q.

r. s.

t.

u. v. w.

x.

y. z.

left_hind_toeBase_skin_jnt (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ hind_paw_ikHandle. (This chain will control the toe movement.) Rename effector1 to left_hind_paw_ikHandle_effector. Press the (y) key to select the last tool used – in this case, the IK Handle tool. In the PERSPECTIVE window, click on left_front_ball_skin_jnt (to define the start of the IK joint chain) then on left_front_toeBase_skin_ jnt (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ front_paw_ikHandle. (This chain will control the toe movement.) Rename effector1 to left_front_paw_ikHandle_effector (Figure 6.34) Delete the toeEnd joints These are not needed for the talons or paws with this setup. [Skeleton > IK Handle Tool], create a Single-Chain IK solver from the start joint to the end joint of each talon, including the thumb. Rename each IK handle to left_front_pinky_ikHandle, left_front_middle_ikHandle, left_front_index_ikHandle, and left_front_thumb_ikHandle. Rename each effector to left_front_pinky_ikHandle_effector, left_front_middle_ikHandle_effector, left_front_index_ikHandle_ effector, and left_front_thumb_ikHandle_effector. Repeat for the left_hind leg if necessary (Figure 6.35). Mirror the left hip to create the right hip by selecting left_hind_hip_ skin_jnt, then go to [Skeleton > Mirror Joints □ ] 223

An Essential Introduction to Maya Character Rigging

FIGURE 6.34 Creating a Single-Chain IK solver in the front and left hind paw. Priscilla model by Charlie Tong, 2014.

FIGURE 6.35 Creating a Single-Chain IK solver in the front talons. Priscilla model by Charlie Tong, 2014.

i. change Mirror across: YZ ii. change Search for: left_ iii. change Replace with: right_ aa.

iv. Click Mirror Mirror the left hip to create the right hip by selecting left_front_ shoulder_skin_jnt, then go to [Skeleton > Mirror Joints □ ] i. change Mirror across: YZ ii. change Search for: left_ iii. change Replace with: right_ iv. Click Mirror (Figure 6.36)

224

Quadruped Legs and Feet

FIGURE 6.36 Mirroring the left_hind_hip_skin_jnt and left_front_shoulder_skin_jnt to create the right_hind leg joints and ikHandles. Adding ikHandles for the toes and talons, and renaming the effectors. Priscilla model by Charlie Tong, 2014.

This time, mirroring the leg only mirrors the leg ikHandles, but not those in the toes or talons. The ikHandles in the toes and talons for the right side will need to be recreated. Delete the mirrored effectors in the toes and talons first. Be sure to rename the mirrored effectors for the left leg to the right. This can be done using [Modify > Search and Replace Names…]. 8. [File > Save As] Save a copy of your scene file. 9. Create a control system for the IK leg by doing the following: Be sure to turn off interactive creation. Go to [Create > NURBS Primitives] and make sure to remove the CHECKMARK Interactive Creation. a.

b. c.

in the box next to

First, create [Create > NURBS Primitives > Circle] or import the paw controllers. If importing the controllers, make sure to delete the namespace [Windows > General Editors > Namespace Editor]. In the CHANNEL BOX, rename the circle left_hind_ikPaw_anim. In the PERSPECTIVE view, select the move tool by pressing (w) and reposition the curve around the paw. DO NOT make it even with the bottom of the paw as the animator will have a hard time seeing it through the floor plane. 225

An Essential Introduction to Maya Character Rigging

FIGURE 6.37 Creating and positioning the left_hind_ikPaw_anim with the pivot location in the ankle joint. Priscilla model by Charlie Tong, 2014.

d.

Make sure the pivot of the controller is in the ankle by doing the following: Select the left_hind_ikPaw_anim, then the left_hind_ ankle_skin_jnt, and go to [Modify > Match Transformation > Match Pivots]. This will move the pivot of the left_hind_ikPaw_anim into the left_hind_ankle_skin_jnt (Figure 6.37). e. Use the scale tool by pressing (r) and resize the circle if necessary. (This control should be scaled large enough that it is OUTSIDE of the character’s paw to make it easy to select.) f. With the left_hind_ikPaw_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) g. Change the rotation order for the left_hind_ikPaw_anim by doing the following: i. With the left_hind_ikPaw_anim selected, open the ATTRIBUTE EDITOR by pressing [ctrl+a]. ii. Select the left_hind_ikPaw_anim tab. iii. Under Transform Attributes set the following: Rotate order: choose “ZXY.”

The rotation order is changed to avoid Gimbal Lock. Remember that Gimbal Lock is impossible to avoid completely, but changing the rotation order on a controller helps keep it away.

226

Quadruped Legs and Feet h. Duplicate the left_hind_ikPaw_anim by going to [Edit > Duplicate] or press [ctrl+d]. i. In the OUTLINER, double-click on left_hind_ikPaw_anim1 and rename it right_hind_ikPaw_anim. j. Make sure the pivot of the controller is in the ankle by doing the following: Select the right_hind_ikPaw_anim, then the right_hind_ ankle_skin_jnt, and go to [Modify > Match Transformation > Match Pivots]. This will move the pivot of the right_hind_ikPaw_anim into the right_hind_ankle_skin_jnt. k. With the right_hind_ikPaw_anim selected, set the following in the CHANNEL BOX: ScaleX: type “-1” (this will flip the controller over the right_hind paw). l. With the right_hind_ikPaw_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) m. Duplicate the left_hind_ikPaw_anim and the right_hind_ikPaw_anim by going to [Edit > Duplicate] or press [ctrl+d]. n. In the OUTLINER, double-click on left_hind_ikPaw_anim1 and rename it left_front_ikPaw_anim. o. In the OUTLINER, double-click on right_hind_ikPaw_anim1 and rename it right_front_ikPaw_anim. p. In the PERSPECTIVE view, select the move tool by pressing (w) and move both controllers forward in Z to the correct location. q. Make sure the pivot of the controller is in the ankle by doing the following: Select the left_front_ikPaw_anim, then the left_front_ ankle_skin_jnt, and go to [Modify > Match Transformation > Match Pivots]. This will move the pivot of the left_front_ikPaw_anim into the left_front_ankle_skin_jnt. r. Select the right_front_ikPaw_anim then the right_front_ankle_skin_ jnt and go to [Modify > Match Transformation > Match Pivots]. This will move the pivot of the right_front_ikPaw_anim into the right_ front_ankle_skin_jnt (Figure 6.38). 10. [File > Save As] Save a copy of your scene file. 11. Go to [Create > NURBS Primitives > Circle]. a. In the CHANNEL BOX, rename the circle left_hind_ikHeel_pivot_anim. b. In the PERSPECTIVE view, select the move tool by pressing (w) and move the circle so that the pivot is at the base of the heel of your character’s paw geometry. Use the scale tool by pressing (r) and resize the circle if necessary. c. Duplicate the left_hind_ikHeel_pivot_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). d. In the OUTLINER, double-click on left_hind_ikHeel_pivot_anim1 and rename it right_hind_ikHeel_pivot_anim. e. In the CHANNEL BOX, make the right_hind_ikHeel_pivot_anim Translate X value negative. This will move the right_hind_ikHeel_ pivot_anim behind the right hind paw.

227

An Essential Introduction to Maya Character Rigging

FIGURE 6.38 Duplicating the left_hind_ikPaw_anim, renaming, and positioning the left_front_ikPaw_anim with the pivot location in the ankle joint. Duplicate both the left_hind_ikPaw_anim and left_front_ikPaw_anim and move to right side, renaming them right_hind_ikPaw_anim and right_front_ ikPaw_anim, respectively. Priscilla model by Charlie Tong, 2014.

f.

g. h. i. j. k.

With the left_hind_ikHeel_pivot_anim and right_hind_ikHeel_pivot_ anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) Duplicate the left_hind_ikHeel_pivot_anim and the right_hind_ ikHeel_pivot_anim by going to [Edit > Duplicate] or press [ctrl+d]. In the OUTLINER, double-click on left_hind_ikHeel_pivot_anim1 and rename it left_front_ikHeel_pivot_anim. In the OUTLINER, double-click on right_hind_ikHeel_pivot_anim1 and rename it right_front_ikHeel_pivot_anim. In the PERSPECTIVE view, select the move tool by pressing (w), move both controllers forward in Z to the correct location. Move the circle so that the pivot is at the base of the foot (not the tip of the thumb talon) of your character’s foot geometry. Use the scale tool by pressing (r) and resize the circle if necessary (Figures 6.39 and 6.40).

Remember, you can choose the “select by component type” button in the Status Line or press the (F8) hotkey and use the move tool by pressing (w), click and drag around the Control Vertex points of the circle, and position them to reshape the curve into a different shape if desired. 12. Repeat this again. Go to [Create > NURBS Primitives > Circle]. a. In the CHANNEL BOX, rename the circle left_hind_ikToe_pivot_anim. b. In the PERSPECTIVE view, select the move tool by pressing (w) and move the circle so that the pivot is at the tip of your character’s toe or talon geometry. Use the scale tool by pressing (r) and resize the circle if necessary. 228

Quadruped Legs and Feet

FIGURE 6.39 Creating and positioning the left_hind_ikHeel_pivot_anim and right_hind_ikHeel_pivot_anim with the pivot at the base of the paw. Duplicating and positioning the left_front_ikHeel_pivot_anim and right_front_ikHeel_pivot_anim with the pivot at the base of the front foot. Priscilla model by Charlie Tong, 2014.

FIGURE 6.40 The pivot location of the front_ikHeel_pivot_anim is not behind the talon, but similar to the hind_ikHeel_pivot_anim for the paw, at the base of the foot geometry. Priscilla model by Charlie Tong, 2014.

c.

d. e.

If desired, choose the “select by component type” button in the Status Line or press the (F8) hotkey and use the move tool (w) to click and drag around the Control Vertex points of the circle and position them to reshape the curve into a different shape. Duplicate the left_hind_ikToe_pivot_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). In the OUTLINER, double-click on left_hind_ikToe_pivot_anim1 and rename it right_hind_ikToe_pivot_anim. 229

An Essential Introduction to Maya Character Rigging In the CHANNEL BOX, make the right_hind_ikToe_pivot_anim Translate X value negative. This will move the right_hind_ikToe_ pivot_anim to the toe of the right hind paw. If the shape is not symmetrical, you can also make the Scale X value negative. g. With the left_hind_ikToe_pivot_anim and right_hind_ikToe_pivot_ anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) h. Duplicate the left_hind_ikToe_pivot_anim and the right_hind_ikToe_ pivot_anim by going to [Edit > Duplicate] or press [ctrl+d]. i. In the OUTLINER, double-click on left_hind_ikToe_pivot_anim1 and rename it left_front_ikToe_pivot_anim. j. In the OUTLINER, double-click on right_hind_ikToe_pivot_anim1 and rename it right_front_ikToe_pivot_anim. k. In the PERSPECTIVE view, select the move tool by pressing (w), move both controllers forward in Z to the correct location. l. Move the circle so that the pivot is at the tip of the longest toe or of your character’s foot geometry. Use the scale tool by pressing (r) and resize the circle if necessary (Figure 6.41). 13. Repeat this again. Go to [Create > NURBS Primitives > Circle]. a. In the CHANNEL BOX, rename the circle left_hind_ikBall_pivot_anim. b. Select the move tool by (w), hold down the (v) key, then position the curve where you would like it to be, near the ankle. c. Select the left_hind_ikBall_pivot_anim then the left_front_ball_ skin_jnt and go to [Modify > Match Transformation > Match Pivots]. This will move the pivot of the left_hind_ikBall_anim into the left_front_ball_skin_jnt. d. If desired, choose the “select by component type” button in the Status Line or press the (F8) hotkey and use the move tool (w), then click and drag around the Control Vertex points of the circle and position them to reshape the curve into a different shape. f.

FIGURE 6.41 Creating and reshaping the left_hind_ikToe_pivot_anim and right_hind_ikToe_pivot_anim with the pivot at the tip of the toe. Duplicating and positioning the left_front_ikToe_pivot_anim and right_front_ikToe_pivot_anim with the pivot at the tip of the talon. Priscilla model by Charlie Tong, 2014.

230

Quadruped Legs and Feet Duplicate the left_hind_ikBall_pivot_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). f. In the OUTLINER, double-click on left_hind_ikBall_pivot_anim1 and rename it right_hind_ikBall_pivot_anim. g. Select the right_hind_ikBall_pivot_anim then the right_hind_ ball_skin_jnt, and go to [Modify > Match Transformation > Match Translations]. This will move the right_hind_ikBall_anim into place with the pivot in the right_hind_ball_skin_jnt. h. With the left_hind_ikBall_pivot_anim and right_hind_ikBall_pivot_ anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) i. Duplicate the left_hind_ikBall_pivot_anim and the right_hind_ikBall_ pivot_anim by going to [Edit > Duplicate] or press [ctrl+d]. j. In the OUTLINER, double-click on left_hind_ikBall_pivot_anim1 and rename it left_front_ikBall_pivot_anim. k. In the OUTLINER, double-click on right_hind_ikBall_pivot_anim1 and rename it right_hind_ikBall_pivot_anim. l. In the PERSPECTIVE view, select the move tool (w), move both controllers forward in Z to the correct location. m. Select the left_front_ikBall_pivot_anim then the left_front_ball_ skin_jnt, and go to [Modify > Match Transformation > Match Translations]. This will move the left_front_ikBall_anim into place with the pivot in the left_front_ball_skin_jnt. n. Select the right_front_ikBall_pivot_anim then the right_front_ ball_skin_jnt, and go to [Modify > Match Transformation > Match Translations]. This will move the right_front_ikBall_anim into place with the pivot in the right_front_ball_skin_jnt (Figure 6.42). 14. Repeat this again. Go to [Create > NURBS Primitives > Circle □ ]. e.

a.

Change Normal axis: Y then click Create

FIGURE 6.42 Creating and reshaping the left_hind_ikBall_pivot_anim and right_hind_ikBall_pivot_anim with the pivot in the ball_skin_jnt. Duplicating and positioning the left_front_ikBall_pivot_anim and right_front_ikBall_pivot_anim with the pivot in the ball_skin_jnt. Priscilla model by Charlie Tong, 2014.

231

An Essential Introduction to Maya Character Rigging b. In the CHANNEL BOX, rename the circle left_hind_ikToe_wiggle_anim. c. Select the move tool (w), hold down the (v) key, then position the curve where you would like it to be, near the toe. d. Select the left_hind_ikToe_wiggle_anim then the left_hind_ toeBase_skin_jnt and go to [Modify > Match Transformation > Match Pivots]. This will move the pivot of the left_hind_ikToe_ wiggle_anim into the left_hind_toeBase_skin_jnt. e. If desired, choose the “select by component type” button in the Status Line or press the (F8) hotkey and use the move tool (w), click and drag around the Control Vertex points of the circle, and position them to reshape the curve into a different shape. f. Duplicate the left_hind_ikToe_wiggle_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). g. In the OUTLINER, double-click on left_hind_ikToe_wiggle_anim1 and rename it right_hind_ikToe_wiggle_anim. h. Select the right_hind_ikToe_wiggle_anim then the right_hind_ toeBase_skin_jnt and go to [Modify > Match Transformation > Match Translations]. This will move the right_hind_ikToe_wiggle_ anim into the right_hind_toeBase_skin_jnt. i. With the left_hind_ikToe_wiggle_anim and right_hind_ikToe_wiggle_ anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) j. Duplicate the left_hind_ikToe_wiggle_anim and right_hind_ikToe_ wiggle_anim by going to [Edit > Duplicate] or press [ctrl+d]. k. In the OUTLINER, double-click on left_front_ikToe_wiggle_anim1 and rename it left_front_ikToe_wiggle_anim. l. In the OUTLINER, double-click on right_front_ikToe_wiggle_anim1 and rename it right_front_ikToe_wiggle_anim. m. In the PERSPECTIVE view, select the move tool (w) and move both controllers forward in Z to the correct location. n. Select the left_front_ikToe_wiggle_anim then the left_front_toeBase_ skin_jnt and go to [Modify > Match Transformation > Match Translations]. This will move the left_front_ikToe_wiggle_anim into place with the pivot in the left_front_toeBase_skin_jnt. 0. Select the right_front_ikToe_wiggle_anim then the right_front_ toeBase_skin_jnt, and go to [Modify > Match Transformation > Match Translations]. This will move the right_front_ikToe_wiggle_ anim into place with the pivot in the right_front_toeBase_skin_jnt (Figure 6.43). 15. Repeat this again. Go to [Create > NURBS Primitives > Circle □ ]. i. Change Normal axis: Y then click Create a. In the CHANNEL BOX, rename the circle left_hind_ikPaw_pivot_anim. b. Select the move tool (w), hold down the (v) key, then position the curve where you would like it to be, near the toe. c. Select the left_hind_ikPaw_pivot_anim, then the left_hind_ toeBase_skin_jnt, and go to [Modify > Match Transformation > Match Pivots]. This will move the pivot of the left_hind_ikPaw_ pivot_anim into the left_hind_toeBase_skin_jnt. 232

Quadruped Legs and Feet

FIGURE 6.43 Creating and reshaping the left_hind_ikToe_wiggle_anim and right_hind_ikToe_wiggle_anim with the pivot in the toeBase joint. Duplicating and positioning the left_front_ikToe_wiggle_anim and right_front_ikToe_wiggle_anim with the pivot in the toeBase joint. Priscilla model by Charlie Tong, 2014.

d.

e. f. g.

h.

i. j. k. l. m.

n.

If desired, choose the “select by component type” button in the Status Line or press the (F8) hotkey and use the move tool (w) to click and drag around the Control Vertex points of the circle and position them to reshape the curve into a different shape. Duplicate the left_hind_ikPaw_pivot_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). In the OUTLINER, double-click on left_hind_ikPaw_pivot_anim1 and rename it right_hind_ikPaw_pivot_anim. Select the right_hind_ikPaw_pivot_anim, then the right_hind_ toeBase_skin_jnt, and go to [Modify > Match Transformation > Match Translations]. This will move the right_hind_ikPaw_pivot_ anim into the right_hind_toeBase_skin_jnt. With the left_hind_ikPaw_pivot_anim and right_hind_ikPaw_pivot_ anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) Duplicate the left_hind_ikPaw_pivot_anim and right_hind_ikPaw_ pivot_anim by going to [Edit > Duplicate] or press [ctrl+d]. In the OUTLINER, double-click on left_front_ikPaw_pivot_anim1 and rename it left_front_ikPaw_pivot_anim. In the OUTLINER, double-click on right_front_ikPaw_pivot_anim1 and rename it right_front_ikPaw_pivot_anim. In the PERSPECTIVE view, select the move tool (w) and move both controllers forward in Z to the correct location. Select the left_front_ikPaw_pivot_anim then the left_front_toeBase_ skin_jnt and go to [Modify > Match Transformation > Match Translations]. This will move the left_front_ikPaw_pivot_anim into place with the pivot in the left_front_toeBase_skin_jnt. Select the right_front_ikPaw_pivot_anim then the right_front_ toeBase_skin_jnt and go to [Modify > Match Transformation > 233

An Essential Introduction to Maya Character Rigging

FIGURE 6.44 Creating and reshaping the left_hind_ikPaw_pivot_anim and right_hind_ikPaw_pivot_anim with the pivot in the toeBase joint. Duplicating and positioning the left_front_ikPaw_pivot_anim and right_front_ikPaw_pivot_anim with the pivot in the toeBase joint. Priscilla model by Charlie Tong, 2014.

Match Translations]. This will move the right_front_ikPaw_pivot_ anim into place with the pivot in the right_front_toeBase_skin_jnt (Figure 6.44). 16. Create [Create > NURBS Primitives > Circle] or import the knee controllers. If importing the controllers, make sure to delete the namespace [Windows > General Editors > Namespace Editor]. a. In the CHANNEL BOX, rename the curve left_ikKnee_anim. b. Select the left_ikKnee_anim then the left_hind_knee_skin_jnt and go to [Modify > Match Transformation > Match Translations]. This will move the left_ikKnee_anim into the left_hind_knee_skin_jnt. c. With the move tool (w), click on the Z-axis (blue arrow) and move the controller in front of the character’s knee. DO NOT leave the controller inside the knee. d. Use the scale tool (r) and resize the curve if necessary. e. With the left_ikKnee_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) f. The rotation order does not need to be changed on this controller because rotations are not necessary for control. g. Duplicate the left_ikKnee_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). h. In the OUTLINER, double-click on left_ikKnee_anim1 and rename it right_ikKnee_anim. i. Select the right_ikKnee_anim then the right_hind_knee_skin_jnt and go to [Modify > Match Transformation > Match Translations]. This will move the right_ikKnee_anim into the righta_hind_knee_skin_jnt. j. With the move tool (w), click on the Z-axis (blue arrow) and move the controller in front of the character’s knee to align with the left controller. DO NOT leave the controller inside the knee. 234

Quadruped Legs and Feet

FIGURE 6.45 Creating and positioning the left_ikKnee_anim and right_ikKnee_anim. The ikKnee_anim will control the pole vectors of the hind leg_ikHandle, which in turn rotates the hind leg from the hip left to right. Priscilla model by Charlie Tong, 2014.

With the right_ikKnee_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 6.45) 17. Duplicate the left_ikKnee_anim and the right_ikKnee_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). a. In the OUTLINER, double-click on left_ikKnee_anim 1 and rename it left_ikElbow_anim. b. In the OUTLINER, double-click on right_ikKnee_anim 1 and rename it right_ikElbow_anim. c. Select the left_ikElbow_anim then the left_front_elbow_skin_ jnt and go to [Modify > Match Transformation > Match Translations]. This will move the left_ikElbow_anim into the left_front_elbow_skin_jnt. d. Select the right_ikElbow_anim then the right_front_elbow_ skin_jnt and go to [Modify > Match Transformation > Match Translations]. This will move the right_ikElbow_anim into the right_front_elbow_skin_jnt. e. Select the left_ikElbow_anim and the right_ikElbow_anim. With the move tool, click on the Z-axis (blue arrow) and move the controller behind the character’s elbow. DO NOT leave the controller inside the elbow. f. With the left_ikElbow_anim and right_ikElbow_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 6.46) 18. You may notice that we have created separate IK chains for the leg and paw and toes/talons. A quadruped is capable of moving their toes, ankles, and legs independently from each other. Because of this, one single IK chain from the hip to the toe would not work for the control needed. We are now going to create a hierarchal system that provides maximum control and protect the animator from losing their work if an IK handle k.

235

An Essential Introduction to Maya Character Rigging

FIGURE 6.46 Creating and positioning the left_ikElbow_anim and right_ikElbow_anim. The ikElbow_anim will control the pole vectors of the front leg_ikHandle, which in turn rotates the front leg from the shoulder left to right. Priscilla model by Charlie Tong, 2014.

stops solving. Create control between the controllers and the IK handles by doing the following: a. In the OUTLINER, click on the left_hind_pinky_ikHandle, left_hind_ middle_ikHandle, left_hind_index_ikHandle, hold down the (ctrl PC or ⌘ MAC) key and click on the left_hind_ikToe_wiggle_anim, and then press (p) on the keyboard. (This makes the left_hind_pinky_ikHandle, left_hind_middle_ikHandle, and left_hind_index_ikHandle child to the left_hind_ikToe_wiggle_anim.) Repeat for the right hind leg, as well as the left and right front legs. b. In the OUTLINER, click on the left_hind_leg_ikHandle, hold down the (ctrl PC or ⌘ MAC) key and click on the left_hind_ikBall_pivot_anim, and then press (p) on the keyboard. (This makes the left_hind_leg_ ikHandle child to the left_hind_ikBall_pivot_anim.) Repeat for the right hind leg, as well as the left and right front legs. c. In the OUTLINER, click on the left_hind_ikBall_pivot_anim, hold down the (ctrl PC or ⌘ MAC) key and click on the left_hind_paw_ikHandle, then click on the left_hind_ikPaw_pivot_anim, and press (p) on the keyboard. (This makes the left_hindPaw_pivot_anim and the left_ hind_paw_ikHandle child to the left_hindPaw_pivot_anim.) Repeat for the right hind leg, as well as the left and right front legs. d. In the OUTLINER, click on the left_hind_ikPaw_pivot_anim, hold down the (ctrl PC or ⌘ MAC) key and click on the left_hind_ikToe_ wiggle_anim, click on the left_hind_ankle_ikHandle, click on the left_ hind_ikHeel_pivot_anim, and press (p) on the keyboard. (This makes the left_hind_ikPaw_pivot_anim, the left_hind_ikToe_wiggle_anim, and the left_hind_ankle_ikHandle child to the left_hind_ikHeel_pivot_ anim.) Repeat for the right hind leg, as well as the left and right front legs. e. In the OUTLINER, click on the left_hind_ikHeel_pivot_anim, hold down the (ctrl PC or ⌘ MAC) key and click on the left_hind_ikToe_pivot_anim, 236

Quadruped Legs and Feet and press (p) on the keyboard. (This makes the left_hind_ikHeel_pivot_ anim child to the left_hind_ikToe_pivot_anim.) Repeat for the right hind leg. f. In the OUTLINER, click on the left_front_ikHeel_pivot_anim, hold down the (ctrl PC or ⌘ MAC) key and click on the left_front_thumb_ ik_handle, click on the left_front_ikToe_pivot_anim, and then press (p) on the keyboard. (This makes the left_front_ikHeel_pivot_anim and left_front_thumb_ik_handle child to the left_front_ikToe_pivot_ anim.) Repeat for the right front leg. g. In the OUTLINER, click on the left_hind_ikToe_pivot_anim, hold down the (ctrl PC or ⌘ MAC) key and click on the left_hind_ikPaw_anim, and then press (p) on the keyboard. (This makes the left_hind_ikToe_ pivot_anim child to the left_hind_ikPaw_anim.) Repeat for the right hind leg. h. In the OUTLINER, click on the left_ikKnee_anim, hold down the (ctrl PC or ⌘ MAC) key and click on the left_hind_ikPaw_anim, and then press (p) on the keyboard. (This makes the left_ikKnee_anim child to the left_hind_ikPaw_anim.) Repeat for the right hind leg. i. In the OUTLINER, click on the left_ikElbow_anim, hold down the (ctrl PC or ⌘ MAC) key and click on the left_front_ikPaw_anim, and press (p) on the keyboard. (This makes the left_ikElbow_anim child to the left_front_ikPaw_anim.) Repeat for the right front leg (Figure 6.47). j. In the PERSPECTIVE window, click on the left_ikKnee_anim (the leader, or target), hold down the (ctrl) key and click on the left_hind_ leg_ikHandle (the follower, or object), then go to [Constrain > Pole Vector]. Repeat for the right hind leg. k. In the PERSPECTIVE window, click on the left_ikElbow_anim (the leader, or target), hold down the (ctrl) key and click on the left_front_ leg_ikHandle (the follower, or object), then go to [Constrain > Pole Vector]. Repeat for the right hind leg (Figure 6.48). 19. [File > Save As] Save a copy of your scene file.

Additional Functionality for the Talons and Toes 1. Go to [Create > NURBS Primitives > Circle]. a. In the CHANNEL BOX, rename the circle left_front_pinkyTalon_anim. b. Make sure the controller is in the toe tip by doing the following: Select the left_front_pinkyTalon_anim, then the left_front_ pinkyEnd_jnt, and go to [Modify > Match Transformation > Match Translations]. This will move the left_front_pinkyTalon_anim into the left_front_pinkyEnd_jnt. c. If desired, choose the “select by component type” button in the Status Line or press the (F8) hotkey and use the move tool (w) to click and drag around the Control Vertex points of the circle and position them to reshape the curve into a different shape. 237

An Essential Introduction to Maya Character Rigging

FIGURE 6.47 The OUTLINER hierarchy before and after parenting the IK handles with the controllers to make the paw hierarchy.

238

Quadruped Legs and Feet

FIGURE 6.48 Creating a pole vector constraint between the left_ikKnee_anim (the leader, or target) and the left_hind_leg_ikHandle (the follower, or object) as well as between the left_ikElbow_anim (the leader, or target) and the left_front_leg_ikHandle (the follower, or object). Priscilla model by Charlie Tong, 2014.

With the left_front_pinkyTalon_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) e. Duplicate the left_front_pinkyTalon_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). f. In the OUTLINER, double-click on left_front_pinkyTalon_anim1 and rename it left_front_middleTalon_anim. g. Make sure the controller is in the toe tip by doing the following: Select the left_front_middleTalon_anim, then the left_front_ middleEnd_jnt, and go to [Modify > Match Transformation > Match Translations]. This will move the left_front_middleTalon_ anim into the left_front_middleEnd_jnt. h. With the left_front_middleTalon_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) 2. Duplicate the left_front_middleTalon_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). a. In the OUTLINER, double-click on left_front_middleTalon_anim1 and rename it left_front_indexTalon_anim. b. Make sure the controller is in the toe tip by doing the following: Select the left_front_indexTalon_anim, then the left_front_ indexEnd_jnt, and go to [Modify > Match Transformation > Match Translations]. This will move the left_front_indexTalon_anim into the left_front_indexEnd_jnt. c. With the left_front_indexTalon_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) d.

239

An Essential Introduction to Maya Character Rigging 3. Duplicate the left_front_indexTalon_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). a. In the OUTLINER, double-click on left_front_indexTalon_anim1 and rename it left_front_thumbTalon_anim. b. Make sure the controller is in the toe tip by doing the following: Select the left_front_thumbTalon_anim, then the left_ front_thumbEnd_jnt, and go to [Modify > Match Transformation > Match Translations]. This will move the left_front_thumbTalon_ anim into the left_front_thumbEnd_jnt. c. With the left_front_thumbTalon_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) 4. Select left_front_pinkyTalon_anim, left_front_middleTalon_anim, left_front_indexTalon_anim, and left_front_thumbTalon_anim and go to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). a. Rename the left_front_pinkyTalon_anim1 to right_front_pinkyTalon_anim. b. Rename the left_front_middleTalon_anim1 to right_front_middleTalon_anim. c. Rename the left_front_indexTalon_anim1 to right_front_indexTalon_anim. d. Rename the left_front_thumbTalon_anim1 to right_front_thumbTalon_anim. e. Select the right_front_pinkyTalon_anim, then the right_front_ pinkyEnd_jnt, and go to [Modify > Match Transformation > Match Translations]. f. Select the right_front_middleTalon_anim, then the right_front_ middleEnd_jnt, and go to [Modify > Match Transformation > Match Translations] or press (g) to repeat the last command. g. Select the right_front_indexTalon_anim, then the right_front_ indexEnd_jnt, and go to [Modify > Match Transformation > Match Translations] or press (g) to repeat the last command. h. Select the right_front_thumbTalon_anim, then the right_front_ thumbEnd_jnt, and go to [Modify > Match Transformation > Match Translations] or press (g) to repeat the last command. 5. Select left_front_pinkyTalon_anim, left_front_middleTalon_anim, left_front_indexTalon_anim, right_front_pinkyTalon_anim, right_ front_middleTalon_anim, and right_front_indexTalon_anim and go to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). a. With the duplicates selected, go to [Modify > Search and Replace Names…] and Search For: Talon Replace With: Toe click Apply then Search for: anim1 and Replace with: anim click Apply then search for: front and replace with: hind then click Apply . b. Select left_hind_pinkyTalon_anim, then the left_hind_pinkyEnd_jnt, and go to [Modify > Match Transformation > Match Translations]. c. Select left_hind_middleTalon_anim, then the left_hind_ middleEnd_jnt, and press (g) to repeat the last command. 240

Quadruped Legs and Feet d. Select left_hind_indexTalon_anim, then the left_hind_indexEnd_ jnt, and press (g) to repeat the last command. e. Select right_hind_pinkyTalon_anim, then the right_hind_ pinkyEnd_jnt, and press (g) to repeat the last command. f. Select right_hind_middleTalon_anim, then the right_hind_ middleEnd_jnt, and press (g) to repeat the last command. g. Select right_hind_indexTalon_anim, then the right_hind_ indexEnd_jnt, and press (g) to repeat the last command. h. Select all the Talon_anims and go to [Modify > Freeze Transformations]. 6. Parent ikHandles to controllers. a. Select left_front_pinky_ikHandle, then left_front_pinkyTalon_ anim, and press (p) to parent. b. Select left_front_middle_ikHandle, then left_front_middleTalon_ anim, and press (p) to parent. c. Select left_front_index_ikHandle, then left_front_indexTalon_ anim, and press (p) to parent. d. Select left_front_thumb_ikHandle, then left_front_thumbTalon_ anim, and press (p) to parent. e. Select left_front_pinkyTalon_anim, left_front_middleTalon_ anim, left_front_indexTalon_anim, then left_front_ikToe_wiggle_ anim, and press (p) to parent. f. Select left_front_thumbTalon_anim, then left_front_ikToe_pivot_ anim, and press (p) to parent. g. Repeat for the right front, left hind, and right hind feet. 7. Add joints for each talon and toe for additional FK control like fingers. a. Create the talon joint hierarchy by doing the following: b. Select [Skeleton > Create Joints □ ]. i. Under Orientation Settings keep Primary Axis set to Z change Secondary Axis to Y and change Secondary Axis World Orientation to Y + ii. Under Bone Radius Settings change Long bone radius to 0.5000 c. In the PERSPECTIVE orthographic view, place joints for the front left talons as follows: i. Click FIRST on the palm_jnt to begin a new chain for a finger that is branching from the palm_jnt. ii. Place four joints for the middle talon. Rename the talon joints as follows: middle1_skin_jnt, middle2_skin_jnt, middle3_jnt, middle_end_jnt. Not all of the joints are skin joints. The third joint will be used to rotate the claw from the talon. The end joint is only present to allow the third joint to rotate. d. Repeat this process for the index, pinky, and thumb talon, if your character has them. The thumb talon would have only three joints, 241

An Essential Introduction to Maya Character Rigging

FIGURE 6.49 Placing and renaming the middle, index, pinky, and thumb talon joints. Priscilla model by Charlie Tong, 2014.

FIGURE 6.50 Repositioning the talon joints in the PERSPECTIVE window. Priscilla model by Charlie Tong, 2014.

e.

f.

g.

242

instead of four. To speed up the process, duplicate [ctrl+d] the middle1_skin_jnt and use [Modify > Search and Replace Names…] for the ring and index fingers. Then simply rotate and move the joints in place. Be sure to [Modify > Freeze Transformations] and [Skeleton > Orient Joint]. (Figure 6.49) In the PERSPECTIVE view, move or rotate the talon joints so that they line up on the top edge of the geometry. The third talon joint should be centered in the base of the claw as it will be used to retract the claw in and out (Figure 6.50). If you rotated any of the joints, you should freeze transformations on the rotations. Select the first joint of each finger chain and go to [Modify > Freeze Transformations]. Reorient the finger joints. Select the first joint of each finger chain, go to [Skeleton > Orient Joint □ ]. Orientation Settings change Primary Axis to Z Secondary Axis to Y, and change Secondary Axis World Orientation to Y +.

Quadruped Legs and Feet

FIGURE 6.51 Mirroring the talon joints. Once mirrored, parent the left talon joints to the left start joints and the right talon joints to the right start joints. Priscilla model by Charlie Tong, 2014.

h.

Rename your talon chains to include the left_front_ prefix by selecting the first joint of each finger chain, then go to [Modify > Prefix Hierarchy Names…]. Enter left_front_ in the text field and

click OK . i. Repeat for the left hind toes. 8. [File > Save As] Save a copy of your scene file. 9. To mirror the talons for the other side, select the first joint of each joint chain (one at a time), go to [Skeleton > Mirror Joints], change Mirror across YZ, and, under Replacement names for duplicated joints, enter Search for left_ and Replace with right_. Then click Mirror to execute the command. a. Repeat for each talon chain pressing (g) to repeat the last command. b. Select the first joint of each left finger chain, then add the corresponding start_jnt to the selection, and press (p) to reparent the left talon joints to the palm. (For example, left_front_pinky1_ skin_jnt will be parented to left_front_pinkyStart_jnt). Repeat for the right side (Figure 6.51). 10. [File > Save As] Save a copy of your scene file.

Verifying the Joint Local Rotation Axis It is important to make sure that the local rotational axis of the joints are aligned. For an FK controlled joint chain facing the Z-axis, the Z-axis must point to the child joint, while the other two axes must be aligned with the world. Continue working or open your last saved version of the file. 1. Evaluate the axes and determine if any need to be fixed. a. Select all joints by going to [Select > All By Type > Joints]. 243

An Essential Introduction to Maya Character Rigging

FIGURE 6.52 Verifying the local rotation axes in the talon joints. The talons are on the Z-axis and, for FK control, they should have the Z-axis pointing toward the child and the Y-axis pointing upward. Make sure to check the Palm_jnts of the talon, such as the left_front_pinkyPalm_jnt, and reorient them if necessary. Priscilla model by Charlie Tong, 2014.

b. c. d. e. f.

Press (F8) (Select By Component type) choose “?” to display [Local Rotation Axes]. If there is a problem with the axis orientation of the talons: Press (F8) (Select By Object Type) and open the OUTLINER [Window > Outliner]. Select the first of the joint1 of each leg chain. Reorient by going to [Skeleton > Orient Joint □ ]. i. Under Orientation Settings keep Primary Axis set to Z change Secondary Axis to Y and change Secondary Axis World Orientation to Y +

click ORIENT . g. Repeat for each toe or talon chain that needs to be reoriented. 2. [File > Save As] Save a copy of your scene file (Figure 6.52). If reorienting the left talons, delete the right joints and re-mirror the reoriented left joints by first unparenting the left chain. 3. Add attributes to the talons control for the talon movements by doing the following: a. Select the left_front_ikPaw_anim, and right_front_ikPaw_anim (and the hind_leg_ikPaw_anims, if necessary), go to [Modify > Add Attribute…], and, using the default settings, enter the following: i. Long name: “indexFlexCurl” Minimum: “−10” Maximum: “10” click Add ii. Long name: “middleFlexCurl” Minimum: “−10” Maximum: “10” click Add 244

Quadruped Legs and Feet

FIGURE 6.53 Loading the Set Driven Key window and setting the first key so that when the pinkyFlexCurl attribute is set to “0,” the pinky finger is in the default (original) position. Priscilla model by Charlie Tong, 2014.

iii. Long name: “pinkyFlexCurl” Minimum: “−10” Maximum: “10” click Add iv. Long name: “thumbFlexCurl” Minimum: “−10” Maximum: “10” click Add Additional attributes can be added for extra control. For this example, we will be only adding one attribute for the FlexCurl motion for each talon. 4. Use Set Driven Key to add functionality to the FlexCurl attribute by doing the following: a. In the OUTLINER, select the left_front_pinkyPalm_jnt, hold down the (ctrl) key, click left_front_pinky1_skin_jnt and left_front_pinky2_skin_ jnt, and go to [Key > Set Driven Key > Set… □ ] b. c. d.

e. f. g. h.

Select the left_front_ikPaw_anim and click LoadDriver in the Set Driven Key window. In the Driver section of the Set Driven Key window, choose “pinkyFlexCurl” in the right column. In the Driven section of the Set Driven Key window, click on left_front_ pinkyPalm_jnt, hold down the (ctrl) key, and click left_front_pinky1_ skin_jnt and left_front_pinky2_skin_jnt to select them. In the Driven section of the Set Driven Key window, choose “rotate X” in the right column. In the Set Driven Key window, click Key (This sets a default finger pose position at attribute value of 0) (Figure 6.53) In the Driver section of the Set Driven Key window, click on left_front_ ikPaw_anim to select it. In the CHANNEL BOX, change pinkyFlexCurl to “10.”

245

An Essential Introduction to Maya Character Rigging

FIGURE 6.54 Setting the second key so that when the pinkyFlexCurl is set to “10,” the pinky finger is in the curled position. The geometry has been skinned here to make it easier to see the example. Priscilla model by Charlie Tong, 2014.

i.

j. k. l.

In the PERSPECTIVE window, select the rotate tool by pressing the (e) key, rotate the pinky talon joints along the X-axis (the red ring) into a curled bent position. In the Set Driven Key window, click Key (this sets a keyed pose of the talon in a bent position at attribute value of “10”). (Figure 6.54) In the Driver section of the Set Driven Key window, click on left_front_ ikPaw_anim to select it. In the CHANNEL BOX, change pinkyFlexCurl to “−10.” In the PERSPECTIVE window, select the rotate tool by pressing the (e) key and rotate the pinky joints along the X-axis (the red ring) into a flexed position.

In the Set Driven Key window, click Key . (Figure 6.55) To test and see if the control works, click on the word indexFlexCurl in the CHANNEL BOX then, in the PERSPECTIVE window, MMB click and drag your mouse left to right. You should see your character’s index finger flex and curl. o. In the CHANNEL BOX, change indexFlexCurl to “0.” p. Repeat these steps for the middleFlexCurl, pinkyFlexCurl, and thumbFlexCurl attributes (thumbFlexCurl is thumbPalm and thumb1_jnt). 5. [File > Save As] Save a copy of your scene file. m. n.

Cleanup for the Leg and Claw Setup 1. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during animation for that controller. If the channel is dark gray, hold down the RMB and choose “lock and hide selected.” If the rectangle before the channel is orange, blue, yellow, or purple, 246

Quadruped Legs and Feet

FIGURE 6.55 Setting the third key so that when the indexFlexCurl is set to “−10,” the index talon is in the flexed position. The geometry has been skinned here to make it easier to see the example. Priscilla model by Charlie Tong, 2014.

do not lock, as locking can break the incoming connection. If you are very new to rigging, I recommend only locking the channel to make sure mistakes are not made. It is easier to right-click to unlock later if necessary. A hidden channel can be made visible again, but it is a time-consuming process. CONTROL NAME

LOCK (select in CHANNEL BOX, RMB)

left_front, right_front, right_hind & left_hind_ikPaw_anim

scaleX, scaleY, scaleZ, and visibility

left_front, right_front, right_hind & left_hind_ikHeel_pivot_anim, left_front, right_front, right_hind & left_hind_ikToe_pivot_anim, left_front, right_front, right_hind & left_hind_ikBall_pivot_anim, left_front, right_front, right_hind & left_hind_ikPaw_pivot_anim, left_front, right_front, right_hind & left_hind_ikToe_wiggle_anim

translateX, translateY, translateZ, scaleX, scaleY scaleZ,

left_front, right_front, right_hind & left_hind_pinkyTalon_anim left_front, right_front, right_hind & left_hind_middleTalon_anim left_front, right_front, right_hind & left_hind_indexTalon_anim right_front & left_front_thumbTalon_anim right & left_ikKnee_anim right & left_ikElbow_anim

rotateX, rotateY, rotateZ, scaleX, scaleY scaleZ, and visibility

247

An Essential Introduction to Maya Character Rigging b.

Hide IK so that, during animation, they are not accidentally selected and keyframed. Go to [Select > All by Type > IK Handles] and press (h) to hide them. c. Select the left_front, right_front, right_hind & left_hind_ikPaw_anim. d. [ctrl+g] to group and rename the group leg_anim_grp. e. Select the left_front, right_front, right_hind & left_hind hip_skin_jnt. f. [ctrl+g] to group and rename the group leg_jnt_grp. 2. [File > Save As] Save a copy of your scene file. You can also simplify the paw controls as we did in Chapter 3 for the foot using set driven keys. Doing so will require duplicate control above the ikBall_pivot_anim in the hierarchy. The pivot of this control (name ikPaw_ straighten_anim) would be in the same place as the ikBall_pivot_anim.

Control System for the Leg and Hoof Rig 1. Continue working or open your last saved version of the file after the earlier tutorial of adding joints for the leg. If you have not yet added joints for the leg, then please go back to the beginning of this chapter and do so (Figures 6.56 and 6.57). 2. Create the IK in the leg by doing the following: a. Set a preferred angle in the left leg by doing the following: i. Select the elbow_skin_jnt joint in the CHANNEL BOX set the following: RotateY: type “-60.” ii. Select the shoulder_skin_jnt joint, then go to [Skeleton > Set Preferred Angle]. iii. Select the elbow_skin_jnt joint and in the CHANNEL BOX set the following: RotateY: type “0” (this will make the knee straight again) (Figure 6.58).

FIGURE 6.56 Clove model by Wesley Gordon, 2020.

248

Quadruped Legs and Feet

FIGURE 6.57 Placing and renaming the leg joints on a hoofed character. This character is actually a bipedal Faun, but most hoofed characters are quadrupeds. Hoofed characters are unguligrade, which means they have one toe, and they walk on the tip. The hoof is basically a thick toenail. Clove model by Wesley Gordon, 2020.

FIGURE 6.58 Setting a preferred angle on the legs by selecting the hip_skin_jnt with the knee rotated. Clove model by Wesley Gordon, 2020.

249

An Essential Introduction to Maya Character Rigging

We must first set a preferred angle in the legs so that Maya knows which direction to bend the leg when we run the IK solver through the joints. b.

c.

Rename your leg chain to include left_prefix by selecting the hip_ skin_jnt, then go to [Modify > Prefix Hierarchy Names…]. Enter left_ in the text field and click OK . This indicates the character’s left but your screen right or left if looking from behind. If you have a fourlegged character, you might want to add left_hind_ or left_front_ depending on the leg being rigged. Go to [Skeleton > Create IK Handle □ ] and set the following: i. Click Reset Tool then under IK Handle Settings change the following: Current solver should be “Rotate-Plane Solver”

d.

e.

f. i.

Place a CHECKMARK in the box next to Sticky In the PERSPECTIVE window, click on the left_hip_skin_jnt joint (to define the start of the IK joint chain) then on the left_ankle_skin_jnt joint (to define the end of the chain; an IK handle appears at the end of the chain.) In the OUTLINER, double-click on ikHandle1 and rename it left_leg_ ikHandle. Rename effector1 as left_leg_ikHandle_effector. (This chain will control the leg movement.) (Figure 6.59) It is a great idea to check that the IK handle moves correctly along the Y-axis. You can do this by doing the following: Select and move the IK handle upward along the Y-axis (green arrow) toward the hips or shoulder to confirm that the leg bends in the correct direction. Be sure to press the (z) key to undo the move.

FIGURE 6.59 Creating a Rotate-Plane IK solver in the left leg. Clove model by Wesley Gordon, 2020.

250

Quadruped Legs and Feet g.

h.

i.

j. k.

l.

m. n.

o.

Go to [Skeleton > Create IK Handle □ ] and set the following: ii. Under IK Handle Settings change the following: Current solver: choose “Single-Chain Solver” Keep a CHECKMARK in the box next to Sticky In the PERSPECTIVE window, click on the left_ankle_skin_jnt joint (to define the start of the IK joint chain) then on the left_ball_skin_jnt joint (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ankle_ikHandle. (This chain will control the ankle movement.) Rename effector1 to left_ankle_ikHandle_effector. (Figure 6.60) Press the (y) key to select the last tool used – in this case, the IK Handle tool. In the PERSPECTIVE window, click on left_ball_skin_jnt (to define the start of the IK joint chain) then on left_toeBase_skin_jnt (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ ball_ikHandle. (This chain will control the toe movement.) Rename effector1 to left_ball_ikHandle_effector (Figure 6.61) Press the (y) key to select the last tool used – in this case, the IK Handle tool. In the PERSPECTIVE window, click on left_toeBase_skin_jnt (to define the start of the IK joint chain) then on left_toeTip_skin_jnt (to define the end of the chain; an IK handle appears at the end of the chain). In the OUTLINER, double-click on ikHandle1 and rename it left_ toe_ikHandle. (This chain will control the toe movement.) Rename effector1 to left_toe_ikHandle_effector (Figure 6.62)

FIGURE 6.60 Creating a Single-Chain IK solver in the left ankle. Clove model by Wesley Gordon, 2020.

251

An Essential Introduction to Maya Character Rigging

FIGURE 6.61 Creating a Single-Chain IK solver in the left ball. Clove model by Wesley Gordon, 2020.

FIGURE 6.62 Creating a Single-Chain IK solver in the left toe. Clove model by Wesley Gordon, 2020.

p.

Mirror the left hip to create the right hip by selecting left_hip_skin_ jnt, then go to [Skeleton > Mirror Joints □ ] i. change Mirror across: YZ ii. change Search for: left_ iii. change Replace with: right_ iv. click Mirror (Figure 6.63)

252

Quadruped Legs and Feet

FIGURE 6.63 Mirroring the left_hip_skin_jnt to create the right leg joints and ikHandles. Clove model by Wesley Gordon, 2020.

If you have a four-legged character, you will need to repeat all of the steps in this tutorial for the front and left hind leg, then mirror both the left and right leg. 3. [File > Save As] Save a copy of your scene file. 4. Create a control system for the IK leg by doing the following: a. First, create [Create > NURBS Primitives > Circle] or import the paw controllers. If importing the controllers, make sure to delete the namespace [Windows > General Editors > Namespace Editor]. b. In the CHANNEL BOX, rename the circle left_ikHoof_anim. c. In the PERSPECTIVE view, select the move tool (w) and reposition the curve around the hoof. If it is a single curve, DO NOT make it even with the bottom of the paw as the animator will have a hard time seeing it through the floor plane. d. Make sure the pivot of the controller is in the ankle by doing the following: Select the left_ikHoof_anim, then the left_ankle_skin_jnt, and go to [Modify > Match Transformation > Match Pivots]. This will move the pivot of the left_ikHoof_anim into the left_ankle_skin_ jnt (Figure 6.64). e. Use the scale tool (r) and resize the circle if necessary. (This control should be scaled large enough that it is OUTSIDE of the character’s paw to make it easy to select.) f. With the left_ikHoof_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) 253

An Essential Introduction to Maya Character Rigging

FIGURE 6.64 Creating and positioning the left_ikHoof_anim with the pivot location in the ankle joint. Clove model by Wesley Gordon, 2020.

g.

Change the rotation order for the left_ikHoof_anim by doing the following: i. With the left_ikHoof_anim selected, open the ATTRIBUTE EDITOR by pressing [ctrl+a]. ii. Select the left_ikHoof_anim tab. iii. Under Transform Attributes set the following: Rotate order: choose “ZXY.”

The rotation order is changed to avoid Gimbal Lock. Remember that Gimbal Lock is impossible to avoid completely, but changing the rotation order on a controller helps keep it away. h. i. j.

k.

l.

254

Duplicate the left_ikHoof_anim by going to [Edit > Duplicate] or press [ctrl+d]. In the OUTLINER, double-click on left_ikHoof_anim1 and rename it right_ikHoof_anim. Make sure the controller is in the ankle by doing the following: Select the right_ikHoof_anim then the right_ankle_skin_jnt and go to [Modify > Match Transformation > Match Translation]. If the controller is not symmetrical, with the right_ikHoof_anim selected, set the following in the CHANNEL BOX: ScaleX: type “−1” (to mirror the controller over the right paw). With the right_ikHoof_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 6.65)

Quadruped Legs and Feet

FIGURE 6.65 Duplicating the left_ikHoof_anim, renaming, and positioning the right_ikHoof_anim with the pivot location in the ankle joint. Clove model by Wesley Gordon, 2020.

5. [File > Save As] Save a copy of your scene file. 6. Repeat this again. Duplicate the Hoof anim or create a new one. In the CHANNEL BOX, rename the circle left_ikBall_pivot_anim. a. Select the move tool (w), hold down the (v) key, then position the curve where you would like it to be, above the hoof and near the ankle. b. Select the left_ikBall_pivot_anim then the left_front_ball_ skin_jnt and go to [Modify > Match Transformation > Match Pivots]. This will move the pivot of the left_ikBall_anim into the left_front_ball_skin_jnt. c. Duplicate the left_ikBall_pivot_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). d. In the OUTLINER, double-click on left_ikBall_pivot_anim1 and rename it right_ikBall_pivot_anim. e. Select the right_ikBall_pivot_anim then the right_ball_skin_jnt and go to [Modify > Match Transformation > Match Translations]. This will move the right_ikBall_anim into place with the pivot in the right_ball_skin_jnt. f. With the left_ikBall_pivot_anim and right_ikBall_pivot_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 6.66) 255

An Essential Introduction to Maya Character Rigging

FIGURE 6.66 Creating and reshaping the left_ikBall_pivot_anim and right_ikBall_pivot_anim with the pivot in the ball_skin_jnt. Duplicating and positioning the left_front_ikBall_pivot_anim and right_front_ikBall_ pivot_anim with the pivot in the ball_skin_jnt. Clove model by Wesley Gordon, 2020.

Advanced tip: If you want your controller to visually align to the joints, first center the pivot of the controller object, freeze transformation, parent it to the joint that you want it to align with, type “0” in the rotations of the controller object, then unparent and freeze transformations again. If you want the controller to retain the rotation direction, simply group the controller before unparenting that group from the joint. The controller remains frozen, and the group will hold the transform changes. Make sure, however, that the group remains the parent of the controller. 7. Repeat this again. Duplicate the Hoof anim or create a new one. In the CHANNEL BOX, rename the circle left_ikToe_wiggle_anim. a. Select the scale tool by pressing (r), and scale this controller smaller than the hoof_anim. b. Select the left_ikToe_wiggle_anim, then the left_toeBase_skin_jnt, and go to [Modify > Match Transformation > Match Pivots]. This will move the pivot of the left_ikToe_wiggle_anim into the left_toeBase_skin_jnt. c. Duplicate the left_ikToe_wiggle_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). d. In the OUTLINER, double-click on left_ikToe_wiggle_anim1 and rename it right_ikToe_wiggle_anim. e. Select the right_ikToe_wiggle_anim then the right_toeBase_ skin_jnt and go to [Modify > Match Transformation > Match Translations]. This will move the right_ikToe_wiggle_anim into the right_toeBase_skin_jnt.

256

Quadruped Legs and Feet

FIGURE 6.67 Creating and reshaping the left_ikToe_wiggle_anim and right_ikToe_wiggle_anim with the pivot in the toeBase joint. Clove model by Wesley Gordon, 2020.

With the left_ikToe_wiggle_anim and right_ikToe_wiggle_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 6.67) 8. Create [Create > NURBS Primitives > Circle] or import the knee controllers. If importing the controllers, make sure to delete the namespace [Windows > General Editors > Namespace Editor]. a. In the CHANNEL BOX, rename the curve left_ikKnee_anim. b. Select the left_ikKnee_anim then the left_knee_skin_jnt and go to [Modify > Match Transformation > Match Translations]. This will move the left_ikKnee_anim into the left_knee_skin_jnt. c. With the move tool, click on the Z-axis (blue arrow) and move the controller in front of the character’s knee. DO NOT leave the controller inside the knee. d. Use the scale tool (r) to resize the curve if necessary. e. With the left_ikKnee_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) f. The rotation order does not need to be changed on this controller because rotations are not necessary for control. g. Duplicate the left_ikKnee_anim by going to [Edit > Duplicate] or press (ctrl+d PC or ⌘+d MAC). h. In the OUTLINER, double-click on left_ikKnee_anim1 and rename it right_ikKnee_anim. i. Select the right_ikKnee_anim, then the right_knee_skin_jnt, and go to [Modify > Match Transformation > Match Translations]. This will move the right_ikKnee_anim into the righta_knee_skin_jnt. f.

257

An Essential Introduction to Maya Character Rigging

FIGURE 6.68 Creating and positioning the left_ikKnee_anim and right_ikKnee_anim. The ikKnee_anim will control the pole vectors of the leg_ikHandle, which in turn rotates the leg from the hip left to right. Clove model by Wesley Gordon, 2020.

With the move tool, click on the Z-axis (blue arrow) and move the controller in front of the character’s knee to align with the left controller. DO NOT leave the controller inside the knee. k. With the right_ikKnee_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) (Figure 6.68) 9. We are now going to create a hierarchal system that provides maximum control and protects the animator from losing their work if an IK handle stops solving. Create control between the controllers and the IK handles by doing the following: a. In the OUTLINER, click on the left_toe_ikHandle, hold down the (ctrl PC or ⌘ MAC) key and click on the left_ikToe_wiggle_anim, and then press (p) on the keyboard. Repeat for the right leg. b. In the OUTLINER, click on the left_leg_ikHandle, hold down the (ctrl PC or ⌘ MAC) key and click on the left_ikBall_pivot_anim, and then press (p) on the keyboard. Repeat for the right leg. c. In the OUTLINER, click on the left_ikBall_pivot_anim, hold down the (ctrl PC or ⌘ MAC) key and click on the left_ikToe_wiggle_anim, click on the left_ ankle_ikHandle, click on the left_ball_ikHandle, click on the left_ikHoof_ anim and then press (p) on the keyboard. Repeat for the right leg. d. In the OUTLINER, click on the left_ikKnee_anim, hold down the (ctrl PC or ⌘ MAC) key and click on the left_ikHoof_anim, and then press (p) on the keyboard. Repeat for the right leg (Figure 6.69). e. In the PERSPECTIVE window, click on the left_ikKnee_anim (the leader, or target), hold down the (ctrl) key and click on the left_ leg_ikHandle (the follower, or object), then go to [Constrain > Pole Vector]. Repeat for the right leg (Figure 6.70). 10. [File > Save As] Save a copy of your scene file. j.

258

Quadruped Legs and Feet

FIGURE 6.69 The OUTLINER hierarchy before and after parenting the IK handles with the controllers to make the hoof hierarchy.

FIGURE 6.70 Creating a pole vector constraint between the left_ikKnee_anim (the leader, or target) and the left_leg_ikHandle (the follower, or object). Clove model by Wesley Gordon, 2020.

259

An Essential Introduction to Maya Character Rigging Cleanup for the Leg and Hoof Setup 1. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during animation for that controller. If the channel is dark gray, hold down the RMB and choose “lock and hide selected.” If the rectangle before the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. If you are very new to rigging, I recommend only locking the channel to make sure mistakes are not made. It is easier to right-click to unlock later if necessary. A hidden channel can be made visible again, but it is a time-consuming process. CONTROL NAME



LOCK (select in CHANNEL BOX, RMB)

right & left_ikHoof_anim

scaleX, scaleY, scaleZ, and visibility

Right & left_ikBall_pivot_anim, right & left_ikToe_wiggle_anim

translateX, translateY, translateZ, scaleX, scaleY, scaleZ,

right & left_ikKnee_anim

rotateX, rotateY, rotateZ, scaleX, scaleY, scaleZ, and visibility

b. Hide IK so that during animation, they are not accidentally selected and keyframed. Go to [Select > All by Type > IK Handles] and press (h) to hide them. c. Select the right & left_ikHoof_anim. d. [ctrl+g] to group and rename the group leg_anim_grp. e. Select the left_front, right_front, right & left_hip_skin_jnt. f. [ctrl+g] to group and rename the group leg_jnt_grp. 2. [File > Save As] Save a copy of your scene file.

260

Chapter 7

Quadruped Spine and Neck • • • • • • • •

Former Student Spotlight: Dana Corrigan Workflow Introduction Creating a Ribbon Spine for a Quadruped Creating a Ribbon Neck for a Quadruped Creating an FK Tail Creating a Ribbon Tail Adding a Scapula for a Quadruped

Former Student Spotlight: Dana Corrigan If there’s one thing I would recommend to young technical artists, it is that sometimes less is more. It can be tempting to try and make your rig capable of doing everything and anything. However, if you over-complicate your rig, not only does it run the risk of making your character less stable, it can also make your rig more cumbersome to animate. What might work better is to have a basic rig for your character and, depending on the needs of your project, having different versions of that same rig for different scenes. This is especially helpful if the scenes cut from one to another. For example, when working on CubeDog, there was a scene where the dog gets stuck in the doggy door, a scene where the dog lands on his face, and another where the dog smacks into a door and bounces back. All of these required different COGs (center of gravity). I had looked into creating a moveable COG before, and, while I could get it to work in this case, it was just much simpler to use a modified version of the rig for each of those instances. I had my base rig, that would be used for most of the scenes, then the modified rigs labeled by which scenes they belonged to. Also, a big part of the rigging process is making life easier for your animators. If you have an animator struggling with a scene, it can be helpful to take a look and see what small rigs could be built within the scene to make it easier to work with. For example, there’s a scene in CubeDog where the dog gets stuck in the doggy door, and a man walks up and pulls the dog out of the door. To save the animator the pain and struggle of floating the dog within the door and later within the human’s hands, I went into the scene file and built Constraints with the door and the human with a slider that the animator could control, so that the dog could effortlessly shift from one area to the 261

An Essential Introduction to Maya Character Rigging

FIGURE 7.1 CubeDog, a character from the short film “Fit,” rigged by Dana Corrigan (2015). www.danacorrigan.com

other. Ultimately, our job is to help animators spend less time dealing with cumbersome mechanics, so they can focus on the character performance.

Biography Dana Corrigan is an Animation instructor who’s been teaching at the university level since 2011, along with after school programs, tutoring, and online video instruction. Outside of teaching, she works as a freelancer primarily in 2D production in e-cards, TV pilots, animated short films, instructional videos, advertisements, and games. She has an MFA in Animation from Savannah College of Art and Design, where she worked as a Rigger for the 3D Animated short “Fit” (2010). A practical-minded animator, Dana tends to focus on the technical side of a production aiming to find the most efficient ways to fulfill the needs of a project (Figure 7.1).

Workflow Figure 7.2

Introduction A quadruped spine and neck rig is similar to a biped spine, but the main difference is the axis the spine is created on. Where a biped’s spine is vertical, along the Y-axis, the quadruped’s spine is generally rigged horizontally, on the Z-axis. As stated earlier in Chapter 4 of this book, traditionally, spines are created using IK splines. Even though the spline IK awkwardly flips at 180°, many animators and riggers still prefer to work with IK. See Chapters 2 and 4 for more information and potential uses for the IK Spline. This chapter will explain how to set up three Ribbons to control the Spine, Neck, and Tail of a Quadruped. 262

Quadruped Spine & Neck

FIGURE 7.2 Quadruped spine and neck workflow.

263

An Essential Introduction to Maya Character Rigging

Creating a Ribbon Spine for a Quadruped Creating the Back Ribbon 1. Continue working or open your last saved version of the file. This could be the Paw, Claw, or Hoof rig. 2. Continue working in X-ray mode. 3. Create a Ribbon Spine by doing the following: a. Go to [Create > Nurbs Primitives > Plane □ ]. i. change the Axis to Y-axis ii. change Length to 9 iii. change Surface degree to 1 Linear iv. change V patches to 9 v. click Create (Figure 7.3) The number of V patches will correspond with the number of joints in the spine. If the character has a shorter spine, fewer than nine can be used. For a fluid moving spine, a minimum of five or six joints is necessary. In the same token, if the spine is longer, more could be used. b.

c.

Scale and move into geometry starting at the hind legs and ending at the front legs (you can reshape the plane on the CV level (F8), choosing the top CV and using the rotate tool with soft selection to match the shape of the geometry from the side, if it is not straight, and repeating with the bottom CV to make a slight curve. Most quadrupeds have a relatively straight spine. The width of the plane should remain straight and equal when looking from the top). With the NURBS plane selected, [Modify > Freeze Transformations] and [Edit > Delete by Type > History].

FIGURE 7.3 Creating a NURBS plane for the spine ribbon. Lucy Furr model by Ashley Lupariello, 2019.

264

Quadruped Spine & Neck Rename the NURBS plane to back_spine_ribbon_plane. [File > Save As] Save the file before continuing to the next step (Figure 7.4). f. Choose the FX Menu Set (F5) or use your Hotbox (spacebar). g. With the back_spine_ribbon_plane selected, go to [nHair > Create Hair □ ]. i. change the Output to NURBS curves ii. change U count to 1 iii. change V count to 9

d. e.

iv. click Create Hairs (Figure 7.5)

FIGURE 7.4 Rotating CVs of a NURBS plane using the soft select to reshape the spine ribbon. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.5 Creating nHair for the ribbon spine. Lucy Furr model by Ashley Lupariello, 2019.

265

An Essential Introduction to Maya Character Rigging h.

i. j. k.

l. m. n. o. p. q. r. s.

In the OUTLINER: i. delete hairSystem1 ii. delete hairSystem1OutputCurves iii. delete nucleus1 Shift left mouse button (LMB) click on the [+] on the left of hairSystem1Follicles group. Select and delete all curve group nodes. Rename hair follicles starting closest to neck VIEWPORT (should be top of the list in the OUTLINER) to backSpineFollicle1, backSpineFollicle2, backSpineFollicle3, backSpineFollicle4, backSpineFollicle5, backSpineFollicle6, backSpineFollicle7, backSpineFollicle8, backSpineFollicle9. Rename hairSystem1Follicles group to back_spine_follicles_grp (Figure 7.6). Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). Go to [Skeleton > Create Joints] Use default settings in the OPTION BOX. Click Reset Tool . Create a joint by clicking once onto the grid (it does not matter where you click on the grid). Rename the joint to back_spine_skin_jnt_1. [ctrl+d] 8 times to duplicate this joint (for a total of 9 joints). Select all of the joints and [ctrl+g] to group. Rename the group back_spine_skin_jnt_grp.

FIGURE 7.6 Deleting objects and groups that are not needed and renaming the follicles and follicles group. Lucy Furr model by Ashley Lupariello, 2019.

266

Quadruped Spine & Neck Shift LMB click on the [+] on the left of back_spine_skin_jnt_grp to expand (Figure 7.7). u. In the OUTLINER, shift LMB click on the [+] on the left of back_ spine_follicles_grp to expand. v. Select backSpineFollicle1 (the leader, or target) and (ctrl PC or ⌘ MAC) left. i. LMB click on back_spine_skin_jnt_1 (the follower, or object) ii. go to [Constrain > Parent □ ] iii. UNCHECK Maintain offset: □ t.

iv. click Add (this moves the joint to the position of the follicle) Repeat for backSpineFollicle2, backSpineFollicle3, backSpineFollicle4, backSpineFollicle5, backSpineFollicle6, backSpineFollicle7, backSpineFollicle8, backSpineFollicle9, and their corresponding joints. Once you have the Follicle and Joint selected, you can press the (g) key to repeat the last command to create the parent constraint. x. [File > Save As] Save a copy of your scene file (Figure 7.8).

w.

Creating a Control System for the Ribbon 1. Continue working or open your last saved version of the file. 2. Create control joints for the Ribbon Spine by doing the following: a. In the OUTLINER or VIEWPORT, select the back_spine_skin_jnt_1, back_spine_skin_jnt_5, and back_spine_skin_jnt_9 (bottom, middle, and top joints). b. [ctrl+d] once to duplicate these joints. c. [shift+p] to unparent the duplicate joints. d. In the CHANNEL BOX with the duplicated joints still selected, change the radius for the three duplicated joints to .8 or larger so you can see these joints larger than the others. e. In the CHANNEL BOX, type “0” in Rotate X for all three joints.

FIGURE 7.7 Creating and renaming nine back_spine_skin joints. Lucy Furr model by Ashley Lupariello, 2019.

267

An Essential Introduction to Maya Character Rigging

FIGURE 7.8 Parent constraining the joints (followers) to the follicles (leaders). Remember to select the leader (follicle) first; then select the corresponding joint. Once the first constraint has been created, pressing (g) after selecting a new leader and a new follower will repeat the parent constraint command. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.9 Creating joints that will control the ribbon spine and changing their rotation order to ZYX in the ATTRIBUTE EDITOR. Lucy Furr model by Ashley Lupariello, 2019.

f. g. h. i. j. k.

In the OUTLINER, shift LMB click on the [+] on the left of each joint and delete the duplicated constraints. Rename the joints back_spine_shoulder_anim_jnt, back_spine_ middle_anim_jnt, and back_spine_hip_anim_jnt. In the ATTRIBUTE EDITOR, change the rotation order for all three joints to ZYX (Figure 7.9). Choose the Modeling Menu Set (F2) or use your Hotbox (spacebar). Select the back_spine_ribbon_plane. Go to [Surfaces > Rebuild □ ]. i. change Direction: ◉V ii. change Number of U spans: 1 iii. change Number of V spans: 9 iv. click Rebuild

268

Quadruped Spine & Neck

FIGURE 7.10 Rebuilding the NURBS plane for more fluid motion. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.11 Using a deformer to control the NURBS plane by skinning the control joints to the plane. Lucy Furr model by Ashley Lupariello, 2019.

l. m. n. o. p.

This creates a more fluid spline (Figure 7.10). Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). In the OUTLINER, select back_spine_hip_anim_jnt, back_spine_ middle_anim_jnt and back_spine_shoulder_anim_jnt. In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click back_spine_ribbon_plane. Go to [Skin > Bind Skin □ ]. i. change Bind to: to Selected joints ii. change Max influences: to 3

iii. click Bind Skin (Figure 7.11) In the OUTLINER, select back_spine_ribbon_plane. Go to [Skin > Paint Skin Weights □ ]. (Paint skin weights will smooth out influence drop-off for each joint.) s. Under Influences, select back_spine_middle_anim_jnt i. change Paint operation: ◉Smooth ii. click the Flood button twice (Figure 7.12) 3. [File > Save As] Save a copy of your scene file. q. r.

269

An Essential Introduction to Maya Character Rigging

FIGURE 7.12 Using the Paint Skin Weights tool to smooth the drop-off of the joint influence. Lucy Furr model by Ashley Lupariello, 2019.

4. Create or import controllers for the Spine by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a provided control. Rename the curve hip_spine_anim. b. Move, scale, and rotate the controller around the base of the spine, moving the pivot into the back_spine_hip_anim_jnt by first selecting hip_spine_anim, then the back_spine_hip_anim_jnt, and go to [Modify > Match Transformation > Match Pivots]. c. With the hip_spine_anim selected, go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. d. In the ATTRIBUTE EDITOR, change the rotation order for the hip_ spine_anim to ZYX. e. Repeat a-d to create the middle_spine_anim and shoulder_spine_anim. f. Duplicate the middle_spine_anim and rename to middle_fkSpine_anim. g. Scale middle_spine_anim down slightly. h. With the middle_spine_anim selected, go to [Modify > Freeze Transformations] (Figure 7.13). i. Parent constrain each control joint to the controllers. j. In the OUTLINER, select hip_spine_anim (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on back_spine_hip_anim_jnt (the follower, or object). k. Go to [Constrain > Parent □ ]. i. CHECK Maintain offset: l.

ii. click Add Go to [Constrain > Scale □ ]. i. CHECK Maintain offset:

m.

270

ii. click Add Repeat for middle_spine_anim and shoulder_spine_anim and their corresponding joints. Speed up the process by selecting the _anim first, then (ctrl PC or ⌘ MAC), LMB click the _jnt second, and press (g) to repeat the last command (Figure 7.14).

Quadruped Spine & Neck

FIGURE 7.13 Creating and positioning NURBS curve shapes for the spine controllers. Be sure the pivot location of each controller is in the correct place and that the rotation order is set to ZYX. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.14 Parent constraining the back_spine_hip_anim_jnt (follower) to the hip_spine_anim (leader). Remember to select the leader (controller) first, then select the corresponding joint. Once the first constraint has been created, pressing (g) after selecting a new leader and a new follower will repeat the parent constraint command. Lucy Furr model by Ashley Lupariello, 2019.

5. Create or import controllers for the Center-of-Gravity by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve COG_anim. b. Move, scale, and rotate the controller around the base of the spine, moving the pivot into the back_spine_shoulder_anim_jnt by first selecting shoulder_spine_anim then the back_spine_shoulder_ anim_jnt and go to [Modify > Match Transformation > Match Pivots]. c. With the COG_anim selected, go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. d. In the ATTRIBUTE EDITOR, change the rotation order for the COG_ anim to ZYX (Figure 7.15). 271

An Essential Introduction to Maya Character Rigging

FIGURE 7.15 Positioning NURBS curve shapes for the center-of-gravity (COG) control. Be sure the pivot location is in the base of the spine. Lucy Furr model by Ashley Lupariello, 2019.

A quadruped’s static center of gravity is generally in the center of the spine, between the shoulders and the hips. This point moves forward once the animal is in motion and generally resides in the chest between the front two legs. This is the spot from which the animal generates the most power in their movement. Because of this, it is best to put the COG_ anim in the top area of the spine, as opposed to the base, as in a biped. e. f. g. h. i. j.

Select the middle_spine_anim In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click middle_fkSpine_ anim and press (p) to parent. Select the hip_spine_anim. In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click middle_fkSpine_ anim and press (p) to parent. Select the shoulder_spine_anim and middle_fkSpine_anim. In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click COG_anim and press (p) to parent (Figure 7.16).

Cleanup for the Back Ribbon 1. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the channel is dark gray, hold down the RMB and choose “lock and hide selected.” If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. If you are very new to rigging, I recommend only locking the channel to make sure mistakes are not made. It is easier to right-click to unlock later 272

Quadruped Spine & Neck

FIGURE 7.16 Parenting the spine controllers into a functional hierarchy. Lucy Furr model by Ashley Lupariello, 2019.

if necessary. A hidden channel can be made visible again, but it is a time-consuming process. CONTROL NAME

LOCK (select in CHANNEL BOX, RMB)

middle_spine_anim,

visibility

hip_spine_anim, middle_fkSpine_anim, shoulder_spine_anim, COG_anim

scaleX, scaleY, scaleZ, and visibility

Select back_spine_shoulder_anim_jnt, back_spine_middle_ anim_jnt, back_spine_hip_anim_jnt, and [ctrl+g] to group and rename it back_spine_anim_jnt_grp. c. Select back_spine_skin_jnt_grp and back_spine_anim_jnt_grp, and [ctrl+g] to group and rename it back_jnt_grp. d. Select back_jnt_grp, shift-select the COG_anim and press (p) to parent. e. Select back_spine_ribbon_plane, back_spine_follicles_grp, and [ctrl+g] to group and rename it spine_doNotTouch_grp. f. Select the spine_doNotTouch_grp, and, in the ATTRIBUTE EDITOR, [ctrl+a] UNCHECK □ Inherits Transform. g. Hide follicles and joints so that during the animation process, they are not accidentally selected and keyframed: i. In the OUTLINER, shift LMB click on the [+] on the left of the spine_doNotTouch_grp, select the back_spine_follicles_grp, and press (h) to hide it. ii. In the OUTLINER, shift LMB click on the [+] on the left of the back_jnt_grp, select the back_spine_anim_jnt_grp, and press (h) to hide it. 6. [File > Save As] Save a copy of your scene file (Figure 7.17). b.

273

An Essential Introduction to Maya Character Rigging

FIGURE 7.17 The OUTLINER, showing the hierarchy of the back spine ribbon setup.

274

Quadruped Spine & Neck

Creating a Ribbon Neck for a Quadruped The cervical section of the spine for a quadruped begins at the scapula area (or base of the neck) and stops at the base of the skull, just below the ear. This section is created separately to ensure the independent movement of the head and neck from the rest of the spine, just like a biped.

Creating the Neck Ribbon 1. Continue working or open your last saved version of the file. 2. Continue working in X-ray mode. 3. Create a Ribbon Spine by doing the following: a. Go to [Create > Nurbs Primitives > Plane □ ]. i. change the Axis to Z-axis ii. change Length to 5 iii. change Surface degree to 1 Linear iv. change V patches to 5 v. click Create (Figure 7.18) The number of V patches will correspond with the number of joints in the neck. If the character has a shorter neck, fewer than five can be used. By the same token, if the spine is longer (such as a giraffe), more could be used. b.

Scale and move into geometry starting at the collarbone to the base of the ear (you can reshape the plane on the CV level (F8) choosing the top CV and using the rotate tool with soft selection to match the shape of the geometry from the side if it is not straight, and repeating with the bottom CV to make a curve. The falloff radius may need to

FIGURE 7.18 Creating a NURBS plane for the neck ribbon. Lucy Furr model by Ashley Lupariello, 2019.

275

An Essential Introduction to Maya Character Rigging

FIGURE 7.19 Rotating CVs of a NURBS plane using the soft select to reshape the spine ribbon. Lucy Furr model by Ashley Lupariello, 2019.

c. d. e. f. g.

iv. h.

i. j. k.

l. m. 276

be adjusted. Holding down the (b) key and left mouse dragging is an interactive way of adjusting the falloff radius of the soft selection option. Tapping the (b) key will toggle the soft selection on and off. The width of the plane should remain straight and equal when looking at the front). With the NURBS plane selected, [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. Rename the NURBS plane to neck_spine_ribbon_plane. [File > Save As] Save the file before continuing to the next step (Figure 7.19). Choose the FX Menu Set (F5) or use your Hotbox (spacebar). With the neck_spine_ribbon_plane selected, go to [nHair > Create Hair □ ]. i. change the Output to NURBS curves ii. change U count to 1 iii. change V count to 5 click Create Hairs (Figure 7.20) In the OUTLINER, i. delete hairSystem1 ii. delete hairSystem1OutputCurves iii. delete nucleus1 Shift LMB click on the [+] on the left of hairSystem1Follicles group. Select and delete all curve group nodes. Rename hair follicles starting at the bottom in the VIEWPORT (should be top of the list in the OUTLINER) to neckSpineFollicle1, neckSpineFollicle2, neckSpineFollicle3, neckSpineFollicle4, neckSpineFollicle5. Rename hairSystem1Follicles group to neck_spine_follicles_grp (Figure 7.21). Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar).

Quadruped Spine & Neck

FIGURE 7.20 Creating nHair for the Ribbon Neck. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.21 Deleting objects and groups that are not needed and renaming the follicles and follicles group.

n. o. p. q. r. s. t. u.

Go to [Skeleton > Create Joints] Use default settings in the OPTION BOX. Click Reset Tool . create a joint by clicking once onto the grid (It does not matter where you click on the grid). Rename the joint to neck_spine_skin_jnt_1. [ctrl+d] 4 times to duplicate this joint (for a total of 5 joints). Select all of the joints and [ctrl+g] to group. Rename the group neck_spine_skin_jnt_grp. shift LMB click on the [+] on the left of neck_spine_skin_jnt_grp to expand (Figure 7.22). In the OUTLINER, shift LMB click on the [+] on the left of neck_ spine_follicles_grp to expand. 277

An Essential Introduction to Maya Character Rigging

FIGURE 7.22 Creating and renaming five neck_spine_skin joints. Lucy Furr model by Ashley Lupariello, 2019.

v. w.

x.

y.

Select neckSpineFollicle1 (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on neck_spine_skin_jnt_1 (the follower, or object). Go to [Constrain > Parent □ ]. i. UNCHECK Maintain offset: □ ii. click Add (this moves the joint to the position of the follicle) Repeat for neckSpineFollicle2, neckSpineFollicle3, neckSpineFollicle4, neckSpineFollicle5 and their corresponding joints. Once you have the Follicle and Joint selected, you can press the (g) key to repeat the last command to create the parent constraint. [File > Save As] Save a copy of your scene file (Figure 7.23).

Creating a Control System for the Ribbon 1. Continue working or open your last saved version of the file. 2. Create control joints for the Ribbon Spine by doing the following: a. In the OUTLINER, select the neck_spine_skin_jnt_1 and neck_ spine_skin_jnt_5 (bottom and top joints). b. [ctrl+d] once to duplicate these joints. c. [shift+p] to unparent the duplicate joints. d. In the CHANNEL BOX with the duplicated joints still selected, change the radius for the two duplicated joints to .8 or larger so you can see these joints larger than the others. e. In the OUTLINER, shift LMB click on the [+] on the left of each joint and delete the duplicated constraints. 278

Quadruped Spine & Neck

FIGURE 7.23 Parent constraining the joints (followers) to the follicles (leaders). Remember to select the leader (follicle) first then select the corresponding joint. Once the first constraint has been created, pressing (g) after selecting a new leader and a new follower will repeat the parent constraint command. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.24 Creating joints that will control the neck ribbon and changing their rotation order to ZXY in the ATTRIBUTE EDITOR. Lucy Furr model by Ashley Lupariello, 2019.

f. g. h. i. j.

k.

Rename the joints neck_spine_anim_jnt (bottom) and head_ spine_anim_jnt (top). In the ATTRIBUTE EDITOR, change the rotation order for all three joints to ZXY (Figure 7.24). Choose the Modeling Menu Set (F2) or use your Hotbox (spacebar). Select the neck_spine_ribbon_plane. Go to [Surfaces > Rebuild □ ]. i. change Direction: ◉V. ii. change Number of U spans: 1. iii. change Number of V spans: 5. iv. click Rebuild . This creates a more fluid spline (Figure 7.25). 279

An Essential Introduction to Maya Character Rigging

FIGURE 7.25 Rebuilding the NURBS plane for more fluid motion. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.26 Using a deformer to control the NURBS plane by skinning the control joints to the plane. Lucy Furr model by Ashley Lupariello, 2019.

l. m. n. o.

Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). In the OUTLINER, select neck_spine_anim_jnt and head_spine_anim_jnt. In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click neck_spine_ribbon_plane. Go to [Skin > Bind Skin □ ]. i. change Bind to: to Selected joints ii. change Max influences: to 3

iii. click Bind Skin (Figure 7.26) In the OUTLINER, select neck_spine_ribbon_plane. Go to [Skin > Paint Skin Weights □ ]. (Paint skin weights will smooth out influence drop-off for each joint.). r. Under Influences, select neck_spine_anim_jnt.

p. q.

280

Quadruped Spine & Neck

FIGURE 7.27 Using the Paint Skin Weights tool to smooth the drop-off of the joint influence. Lucy Furr model by Ashley Lupariello, 2019.

i. change Paint operation: ◉Smooth. ii. click the Flood button twice s. Under Influences, select neck_spine_anim_jnt and head_spine_anim_jnt. i. change Paint operation: ◉Smooth ii. click the Flood button twice (Figure 7.27) 3. [File > Save As] Save a copy of your scene file. 4. Create or import controllers for the Spine by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a provided control. Rename the curve head_anim. b. Move, scale, and rotate the controller around the base of the head, moving the pivot into the head_spine_anim_jnt by first selecting head_anim, then the head_spine_anim_jnt, and go to [Modify > Match Transformation > Match Pivots]. c. With the head_anim selected, go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. d. In the ATTRIBUTE EDITOR, change the rotation order for the head_ anim to ZXY (Figure 7.28). e. Parent constrain the control joints to the controllers: In the OUTLINER, select head_anim (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on head_spine_anim_jnt (the follower, or object). f. Go to [Constrain > Parent □ ]. i. CHECK Maintain offset: g.

ii. click Add Go to [Constrain > Scale □ ]. i. CHECK Maintain offset:

h.

ii. click Add In the OUTLINER, select shoulder_spine_anim (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on neck_spine_anim_jnt (the follower, or object). 281

An Essential Introduction to Maya Character Rigging

FIGURE 7.28 Creating and positioning NURBS curve shapes for the head and neck control. Be sure the pivot location of the controller is in the same place as the head_spine_anim_jnt. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.29 Parent and scale constraining neck_spine_anim_jnt (follower) to the head_anim (leader). Remember to select the leader (controller) first, then select the corresponding joint. Repeat for neck_spine_anim_jnt (follower) to the shoulder_spine_anim (leader). Lucy Furr model by Ashley Lupariello, 2019.

i.

Go to [Constrain > Parent □ ]. i. CHECK Maintain offset:

j.

ii. click Add Go to [Constrain > Scale □ ]. i. CHECK Maintain offset:

k. l. 282

ii. click Add (Figure 7.29) In the OUTLINER, select the head_anim then [ctrl+g] to group. Rename this group head_anim_constraint_grp. Move, scale, and rotate the controller around the base of the head, moving the pivot into the head_spine_anim_jnt by first selecting

Quadruped Spine & Neck

FIGURE 7.30 Parent constraining the head control to keep it out of the direct hierarchy, preparing for further setup in Chapter 8. Lucy Furr model by Ashley Lupariello, 2019.

m.

n.

head_anim_constraint_grp, then the head_spine_anim_jnt, and go to [Modify > Match Transformation > Match Pivots]. In the VIEWPORT, select shoulder_spine_anim (the leader, or target) and, in the OUTLINER, (ctrl PC or ⌘ MAC) LMB click on head_anim_ constraint_grp (the follower, or object). Go to [Constrain > Parent □ ]. i. CHECK Maintain offset: ii. click Add (Figure 7.30)

Cleanup for the Neck Ribbon o.

p. q.

Clean up each controller in the table below by doing the following: In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the channel is dark gray, hold down the RMB and choose “lock and hide selected.” If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. If you are very new to rigging, I recommend only locking the channel to make sure mistakes are not made. It is easier to right-click to unlock later if necessary. A hidden channel can be made visible again, but it is a time-consuming process. CONTROL NAME

LOCK (select in CHANNEL BOX, RMB)

head_anim

scaleX, scaleY, scaleZ, and visibility

Select head_spine_anim_jnt and neck_spine_anim_jnt, [ctrl+g] to group, and rename it neck_spine_anim_jnt_grp. Select neck_spine_skin_jnt_grp and neck_spine_anim_jnt_grp, [ctrl+g] to group, and rename it neck_jnt_grp. 283

An Essential Introduction to Maya Character Rigging r. Select neck_jnt_grp, shift-select the COG_anim, and press (p) to parent. s. In the OUTLINER, select neck_spine_follicles_grp and neck_ spine_ribbon_plane, (ctrl PC or ⌘ MAC) LMB click on spine_ doNotTouch_grp, and press (p) to parent. t. Hide follicles and joints so that during the animation process, they are not accidentally selected and keyframed: i. In the OUTLINER, LMB click on the [+] on the left of the spine_ doNotTouch_grp, select neck_spine_follicles_grp, and press (h) to hide it. ii. In the OUTLINER, shift LMB click on the [+] on the left of the neck_jnt_grp, Select the neck_spine_anim_jnt_grp and press (h) to hide it. u. Select head_anim_constraint_grp, back_jnt_grp, neck_jnt_grp, and spine_doNotTouch_grp, [ctrl+g] to group, and rename it spine_grp. v. Select the spine_grp, and, in the ATTRIBUTE EDITOR [ctrl+a] UNCHECK □ Inherits Transform. 5. [File > Save As] Save a copy of your scene file (Figure 7.31).

Creating an FK Tail The FK tail is preferred by my student animation teams because it is the most versatile and easiest to pose. A minimum of nine joints should be used for the best articulation. 1. Continue working or open your last saved version of the file. 2. Continue working in X-ray mode. 3. Create the tail joint hierarchy by doing the following: a. Select [Skeleton > Create Joints □ ]. i. Under Orientation Settings keep Primary Axis set to Z change Secondary Axis to Y and change Secondary Axis World Orientation to Y + ii. Under Bone Radius Settings change Long bone radius to 0.5000 b. In the TOP orthographic view, place 12 joints for the tail (Figure 7.32). c. Rename these joints jnt_1, jnt_2, jnt_3, jnt_4, jnt_5, jnt_6, jnt_7, jnt_8, jnt_9, jnt_10, jnt_11, and end_jnt. d. In the OUTLINER, with the left_shoulder_jnt1 selected, add FK_tail_ spine_skin_ prefix by selecting [Modify > Prefix Hierarchy Names…] and set the following: i. Enter prefix: FK_tail_spine_skin_ ii. click OK e. Select the FK_tail_spine_skin_ jnt_1 and in the PERSPECTIVE view panel adjust the position in the tail joints if necessary. f. Reorient the tail joints and go to [Skeleton > Orient Joint □ ]. Orientation Settings: Primary Axis Z Secondary Axis X and Secondary Axis World Orientation to X + . g. [File > Save As] Save a copy of your scene file (Figure 7.33). 284

Quadruped Spine & Neck

FIGURE 7.31 The OUTLINER showing the hierarchy of the neck ribbon setup. Lucy Furr model by Ashley Lupariello, 2019.

285

An Essential Introduction to Maya Character Rigging

FIGURE 7.32 Placing and renaming the tail joints. Turn on [Shading > Wireframe on Shaded] to see where to place the joints. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.33 Placing, repositioning, orienting, and renaming the tail joints. Lucy Furr model by Ashley Lupariello, 2019.

Verifying the Joint Local Rotation Axis 1. Continue working or open your last saved version of the file. 2. Continue working in X-ray mode. 3. Evaluate the axes and determine if any, need to be fixed. a. Select all joints by going to [Select All By Type > Joints]. 286

Quadruped Spine & Neck

FIGURE 7.34 Verifying the local rotation axes in the tail joints. The tail should have the Z-axis pointing toward the child and the Y-axis pointing up. The last joint of the chain will align with the World axis. In fact, all of the arm joints align with the World axis. Lucy Furr model by Ashley Lupariello, 2019.

Press (F8) (Select By Component type) and choose ? to display [Local Rotation Axes]. c. The tail should have the Z-axis pointing toward the child, and the Y-axis should be pointing up (Figure 7.34). 4. If there is a problem with the axis orientation of the arm: a. Press (F8) (Select By Object Type) and open the OUTLINER [Window > Outliner]. b. Select the top of the joint chain (FK_tail_spine_skin_ jnt_1). c. Reorient by going to [Skeleton > Orient Joint □ ]. i. Under Orientation Settings keep Primary Axis set to Z change Secondary Axis to Y and change Secondary Axis World Orientation to Y + b.

click ORIENT 5. [File > Save As] Save a copy of your scene file. 6. Create controllers for the FK tail by doing the following: a. Go to [Create > NURBS Primitives > Circle □ ], Change the Normal axis: Z. This curve should be created at the origin with the pivot centered. b. c.

d. e.

f.

In the OUTLINER, go to [Display] and make sure there is a in the box next to Shapes. If not, click on the word Shapes. In the OUTLINER, hold down the shift key and click on the plus sign (+) next to nurbsCircle1 to open the hierarchy and display the children. Ensure that the shape node is named nurbsCircleShape1; rename if necessary. In the MEL command line, type the MEL script below: parent -add -shape nurbsCircleShape1 FK_tail_spine_skin_jnt_1; Press the (F8) key to go into component mode and, using the scale tool (r), resize the curve to fit around your character’s tail geometry if necessary. Press the (F8) key to go back into object mode (Figure 7.35). 287

An Essential Introduction to Maya Character Rigging

FIGURE 7.35 Adding a nurbsCircleShape1 to the FK_tail_spine_skin_ jnt_1. In component mode (F8), resize the circle if necessary around your character’s tail geometry. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.36 Adding and renaming nurbsCircleShape1 to the FK tail joints. Be sure to rename the nurbsCircleShape1 and delete the nurbsCircle1 before creating a new nurbsCircle1 and adding nurbsCircleShape1 to the next tail joint. Lucy Furr model by Ashley Lupariello, 2019. Lucy Furr model by Ashley Lupariello, 2019.

g. h.

i. j. k. l. 288

Select the FK_tail_spine_skin_ jnt_1, and, in the CHANNEL BOX, rename FK_tail_spine_skin_ jnt_1 to FK_tail_anim_ jnt_1. In the OUTLINER, hold down the shift key and click on the plus sign (+) next to the FK_tail_anim_ jnt_1 to open the hierarchy and display the children. Double-click on nurbsCircleShape1 and rename it FK_tail_anim_ jnt_1Shape. In the ATTRIBUTE EDITOR, keep the rotation order for the FK_left_ shoulder_anim as ZYX. In the OUTLINER, delete nurbsCircle1 (the curve at the origin). Repeat this process for the remaining tail joints, except the end joint (Figure 7.36).

Quadruped Spine & Neck Cleanup for the FK Tail Setup 5. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the channel is white, hold down the RMB, and choose lock selected. If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. Later, these channels can be hidden. CONTROL NAME

LOCK and HIDE (select in CHANNEL BOX, RMB)

FK_tail_anim_ jnt_1, FK_tail_anim_ jnt_2, FK_tail_anim_ jnt_ FK_tail_anim_ jnt_3, FK_tail_anim_ jnt_4, FK_tail_anim_ jnt_5, FK_tail_anim_ jnt_6, FK_tail_anim_ jnt_7, FK_tail_anim_ jnt_8

translateX, translateY, translateZ, scaleX, scaleY, scaleZ, and visibility

6. Integrate the FK tail into the existing spine hierarchy by doing the following: a. Select FK_tail_anim_ jnt_1 and [ctrl+g] to group, and rename it tail_jnt_grp. b. Select tail_jnt_grp, and then hip_anim and press (p) to parent. 7. [File > Save As] Save a copy of your scene file.

Creating a Ribbon Tail Creating the Tail Ribbon 1. Continue working or open your last saved version of the file. 2. Create a Ribbon Tail by doing the following: a. Go to [Create > Nurbs Primitives > Plane □ ]. i. change the Axis to Y-axis ii. change Length to 7 iii. change Surface degree to 1 Linear iv. change V patches to 7

v. click Create (Figure 7.37)

If the tail is longer or more articulated, such as a cat’s tail, additional patches can be used. More patches equal more joints, which give greater flexibility to the tail.

b. Scale and move into geometry starting at the hips legs and ending at the tip of the tail (you can reshape the plane on the CV level (F8) by choosing the top CV, using the rotate tool with soft selection to match the shape of the geometry from the side (if it is not straight), and repeating with the bottom CV to make a slight curve, if needed, at the base of the spine. The tail should be modeled relatively 289

An Essential Introduction to Maya Character Rigging

FIGURE 7.37 Creating a NURBS plane for the tail ribbon. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.38 Rotating CVs of a NURBS plane using the soft select to reshape the tail ribbon. Lucy Furr model by Ashley Lupariello, 2019.

c. d. e. f. g. 290

straight. The width of the plane should remain straight and equal when looking from the top). With the NURBS plane selected, [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. Rename the NURBS plane to tail_spine_ribbon_plane. [File > Save As] Save the file before continuing to the next step (Figure 7.38). Choose the FX Menu Set (F5) or use your Hotbox (spacebar). With the tail_spine_ribbon_plane selected, go to [nHair > Create Hair □ ].

Quadruped Spine & Neck

FIGURE 7.39 Creating nHair for the ribbon tail. Lucy Furr model by Ashley Lupariello, 2019.

i. change the Output to NURBS curves ii. change U count to 1 iii. change V count to 7 h.

i. j. k.

l. m. n. o. p. q. r. s. t. u.

iv. click Create Hairs (Figure 7.39) In the OUTLINER, i. delete hairSystem1 ii. delete hairSystem1OutputCurves iii. delete nucleus1 shift LMB click on the [+] on the left of hairSystem1Follicles group. Select and delete all curve group nodes. Rename hair follicles starting closest to neck VIEWPORT (should be top of the list in the OUTLINER) to tailSpineFollicle1, tailSpineFollicle2, tailSpineFollicle3, tailSpineFollicle4, tailSpineFollicle5, tailSpineFollicle6, tailSpineFollicle7, tailSpineFollicle8, tailSpineFollicle9 Rename hairSystem1Follicles group to tail_spine_follicles_grp (Figure 7.40). Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). Go to [Skeleton > Create Joints] Use default settings in the OPTION BOX. Click Reset Tool . Create a joint by clicking once onto the grid (it does not matter where you click on the grid). Rename the joint to tail_spine_skin_jnt_1. [ctrl+d] 8 times to duplicate this joint (for a total of nine joints). Select all of the joints and [ctrl+g] to group. Rename the group tail_spine_skin_jnt_grp. shift LMB click on the [+] on the left of tail_spine_skin_jnt_grp to expand (Figure 7.41). In the OUTLINER, Select tailSpineFollicle1 (the leader, or target) and (ctrl PC or ⌘ MAC) LMB 291

An Essential Introduction to Maya Character Rigging

FIGURE 7.40 Deleting objects and groups that are not needed and renaming the follicles and follicles group.

FIGURE 7.41 Creating and renaming seven tail_spine_skin joints. Lucy Furr model by Ashley Lupariello, 2019.

click on tail_spine_skin_jnt_1 (the follower, or object) Go to [Constrain > Parent □ ] UNCHECK Maintain offset: □ click Add (this moves the joint to the position of the follicle) Repeat for tailSpineFollicle2, tailSpineFollicle3, tailSpineFollicle4, tailSpineFollicle5, tailSpineFollicle6, tailSpineFollicle7, tailSpineFollicle8, tailSpineFollicle9, and their corresponding joints. Once you have the Follicle and Joint selected, you can press the (g) key to repeat the last command to create the parent constraint. [File > Save As] Save a copy of your scene file (Figure 7.42).

i. ii. iii. iv. v.

w. 292

Quadruped Spine & Neck

FIGURE 7.42 Parent constraining the joints (followers) to the follicles (leaders). Remember to select the leader (follicle) first then select the corresponding joint. Once the first constraint has been created, pressing (g) after selecting a new leader and a new follower will repeat the parent constraint command. Lucy Furr model by Ashley Lupariello, 2019.

Creating a Control System for the Ribbon 1. Continue working or open your last saved version of the file. 2. Create control joints for the Ribbon Spine by doing the following: a. In the OUTLINER or VIEWPORT, select the tail_spine_skin_jnt_1, tail_spine_skin_jnt_4, and tail_spine_skin_jnt_7 (bottom, middle, and top joints). b. [ctrl+d] once to duplicate these joints. c. [shift+p] to unparent the duplicate joints. d. In the CHANNEL BOX with the duplicated joints still selected, change the radius for the three duplicated joints to .8 or larger so you can see these joints larger than the others. e. In the CHANNEL BOX, type “0” in Rotate X for all three joints. f. In the OUTLINER, shift LMB click on the [+] on the left of each joint and delete the duplicated constraints. g. Rename the joints tail_spine_base_anim_jnt, tail_spine_middle_ anim_jnt, and tail_spine_tip_anim_jnt. h. In the ATTRIBUTE EDITOR, change the rotation order for all three joints to ZYX (Figure 7.43). If the tail is longer or more articulated, such as a cat’s tail, additional control joints can be used. More control joints equal more control. Alternatively, a simple FK chain can be used for control, much like how the fingers were created earlier in this book in Chapter 5. Attributes can be added to a controller, and Set Driven Key can be used to create whatever animated motion is desired. i. j.

Choose the Modeling Menu Set (F2) or use your Hotbox (spacebar). Select the tail_spine_ribbon_plane 293

An Essential Introduction to Maya Character Rigging

FIGURE 7.43 Creating joints that will control the ribbon spine and changing their rotation order to ZYX in the ATTRIBUTE EDITOR. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.44 Rebuilding the NURBS plane for more fluid motion. Lucy Furr model by Ashley Lupariello, 2019.

k.

Go to [Surfaces > Rebuild □ ]. i. change Direction: ◉V ii. change Number of U spans: 1 iii. change Number of V spans: 7

iv. click Rebuild This creates a more fluid spline (Figure 7.44). Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). In the OUTLINER, select tail_spine_base_anim_jnt, tail_spine_ middle_anim_jnt, and tail_spine_tip_anim_jnt. o. In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click tail_spine_ribbon_plane. p. Go to [Skin > Bind Skin □ ]. i. change Bind to: to Selected joints ii. change Max influences: to 3

l. m. n.

294

Quadruped Spine & Neck

FIGURE 7.45 Using a deformer to control the NURBS plane by skinning the control joints to the plane. Lucy Furr model by Ashley Lupariello, 2019.

FIGURE 7.46 Using the Paint Skin Weights tool to smooth the drop-off of the joint influence. Lucy Furr model by Ashley Lupariello, 2019.

iii. click Bind Skin (Figure 7.45) In the OUTLINER, select tail_spine_ribbon_plane. Go to [Skin > Paint Skin Weights □ ]. (Paint skin weights will smooth out influence drop-off for each joint.) s. Under Influences, select tail_spine_middle_anim_jnt. i. change Paint operation: ◉Smooth ii. click the Flood button twice (Figure 7.46). 3. [File > Save As] Save a copy of your scene file. 4. Create or import controllers for the tail by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a provided control. Rename the curve tail_tip_anim. b. Move the controller around the tip of the tail into the tail_ spine_tip_anim_jnt by first selecting tail_tip_anim then q. r.

295

An Essential Introduction to Maya Character Rigging

c. d. e. f. g. h.

the tail_spine_tip_anim_jnt and go to [Modify > Match Transformation > Match Translation]. Scale the controller if necessary. With the tail_tip_anim selected, go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. In the ATTRIBUTE EDITOR, change the rotation order for the tail_tip_ anim to ZYX. Repeat a-d to create the tail_middle_anim. Duplicate the tail_middle_anim and rename to fkTail_middle_anim. Scale tail_middle_anim down slightly. With the tail_middle_anim and fkTail_middle_anim selected, go to [Modify > Freeze Transformations] (Figure 7.47).

If the tail is longer or more articulated, such as a cat’s tail, additional controllers will be needed to control additional middle control joints as suggested above. Adding a double control, like the middle and middle FK control, will provide more ability to pose the tail. i. j.

k.

Parent constrain each control joint to the controllers. In the OUTLINER, select tail_tip_anim (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on tail_spine_tip_anim_jnt (the follower, or object). Go to [Constrain > Parent □ ] i. CHECK Maintain offset: ii. click Add

FIGURE 7.47 Creating and positioning NURBS curve shapes for the spine controllers. Be sure the pivot location of each controller is in the correct place and that the rotation order is set to ZYX. Lucy Furr model by Ashley Lupariello, 2019.

296

Quadruped Spine & Neck

FIGURE 7.48 Parent constraining the tail_spine_tip_anim_jnt (follower) to the tail_tip_anim (leader). Remember to select the leader (controller), first then select the corresponding joint. Once the first constraint has been created, pressing (g) after selecting a new leader and a new follower will repeat the parent constraint command. Lucy Furr model by Ashley Lupariello, 2019.

l.

m. n. x. y. z. aa. bb.

Go to [Constrain > Scale □ ]. i. CHECK Maintain offset: ii. click Add Repeat for tail_middle_anim and the corresponding tail_spine_middle_anim_jnt. Repeat for hip_spine_anim and the corresponding tail_spine_base_ anim_jnt (Figure 7.48). Select the tail_middle_anim. In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click fkTail_middle_anim and press (p) to parent. Select the tail_tip_anim. In the OUTLINER, (ctrl PC or ⌘ MAC) LMB click fkTail_middle_anim and press (p) to parent. Select the fkTail_middle_anim, and then the hip_spine_anim, and press (p) to parent (Figure 7.49).

Cleanup for the Tail Ribbon 1. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the channel a dark gray, hold down the RMB (right mouse button) and choose “lock and hide selected.” If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. If you are very new to rigging, I recommend only locking the channel to make sure mistakes are not made. It is easier to right-click to unlock later if necessary. A hidden channel can be made visible again, but it is a time-consuming process. 297

An Essential Introduction to Maya Character Rigging

FIGURE 7.49 Parenting the spine controllers into a functional hierarchy. Lucy Furr model by Ashley Lupariello, 2019.

CONTROL NAME

LOCK (select in CHANNEL BOX, RMB)

tail_middle_anim,

rotateX, rotateY, rotateZ, scaleX, scaleY, scaleZ, and visibility

tail_tip_anim, fkTail_middle_anim

scaleX, scaleY, scaleZ, and visibility

If the tail is longer or more articulated, such as a cat’s tail, any center double control, like the tail_middle_anim, should retain its ability to rotate. This gives better control for the animator. Select tail_spine_base_anim_jnt, tail_spine_middle_anim_jnt, tail_spine_tip_anim_jnt, and [ctrl+g] to group, and rename it tail_spine_anim_jnt_grp. c. Select tail_spine_skin_jnt_grp, tail_spine_anim_jnt_grp, and [ctrl+g] to group, and rename it tail_jnt_grp d. Select tail_spine_ribbon_plane, tail_spine_follicles_grp, then spine_doNotTouch_grp, and press (p) to parent. e. Hide follicles and joints so that during the animation process, they are not accidentally selected and keyframed: i. In the OUTLINER, shift LMB click on the [+] on the left of the spine_doNotTouch_grp, select the tail_spine_follicles_grp, and press (h) to hide it. ii. In the OUTLINER, shift LMB click on the [+] on the left of the tail_jnt_grp, select the tail_spine_anim_jnt_grp, and press (h) to hide it. f. Select tail_jnt_grp, then spine_grp, and press (p) to parent. 5. [File > Save As] Save a copy of your scene file (Figure 7.50). b.

298

Quadruped Spine & Neck

FIGURE 7.50 The OUTLINER showing the hierarchy of the tail ribbon setup. Lucy Furr model by Ashley Lupariello, 2019.

299

An Essential Introduction to Maya Character Rigging

FIGURE 7.51 Adding joints for the scapula. Lucy Furr model by Ashley Lupariello, 2019.

Adding a Scapula for a Quadruped Joint Placement of the Scapula 1. Place two joints for the scapula. The first joint should be close to the spine, and the second joint should be in the same location as the shoulder joint. Using the move tool, move the first joint into position near the spine. Rename these joints left_scapula_skin_jnt and left_scapula_end_jnt. 2. Select the left_scapula_end_jnt, then the left_front_shoulder_skin_jnt, and go to [Modify > Match Transformation > Match Translation] (both the left_scapula_end_jnt and the left_shoulder_jnt joints will be in the same place). 3. Reorient the scapula joint and go to [Skeleton > Orient Joint □ ]. Orientation Settings: Primary Axis X, Secondary Axis Z, and Secondary Axis World Orientation to Z + (Figure 7.51).

Creating a Control System for the Scapula. 1. Continue working or open your last saved version of the file. 2. Create IK for the scapula by doing the following: a. Select the left_front_shoulder_skin_jnt joint chain then, in the OUTLINER, press (f) to frame it. This will make finding it later easier. Press (h) to hide the chain, so that it is not in the way as we set up the arm. b. Go to [Skeleton > Create IK Handle □ ] and set the following: Click

Reset Tool then under IK Handle Settings change the following: Choose: “Single-Chain Solver”; Place a CHECKMARK next to Sticky. 300

in the box

Quadruped Spine & Neck

FIGURE 7.52 Creating, renaming, and mirroring a single-chain IK solver in the left scapula. Lucy Furr model by Ashley Lupariello, 2019.

c.

d.

In the OUTLINER, double-click on ikHandle1 and rename it left_ scapula_ikHandle. (This chain will control the ankle movement.) Rename effector1 to left_scapula_ikHandle_effector. Mirror the left scapula to create the right scapula by selecting the left_scapula_skin_jnt, then go to [Skeleton > Mirror Joints], change Mirror across to YZ, and, under Replacement names for duplicated joints, enter Search for: left_ and Replace with: right_. This mirrors the joints and the ikHandles.

e. Then click Mirror to execute the command. 3. [File > Save As] Save a copy of your scene file (Figure 7.52). 4. Create or import controllers for the scapula by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve left_scapula_anim. b. Select the left_scapula_anim, then the left_scapula_end_jnt, and go to [Modify > Match Transformation > Match Pivots], moving the pivot into the left_scapula_end_jnt joint. Go to [Modify > Freeze Transformations □ ], then go to [Edit > Reset Settings]. c. Duplicate the left_scapula_anim and rename it right_scapula_anim. d. Select the right_scapula_anim, then the right_scapula_end_jnt, and go to [Modify > Match Transformation > Match Pivots], moving the pivot into the right_scapula_end_jnt joint. e. Select right_scapula_anim and go to [Modify > Freeze Transformations]. f. Parent the left_scapula_ikHandle to the left_scapula_anim. (In the OUTLINER, click on the left_scapula_ikHandle, hold down the ctrl (PC) or pp⌘ (MAC) key and click on the left_scapula_anim, and then 301

An Essential Introduction to Maya Character Rigging

FIGURE 7.53 Creating and positioning the left_scapula_anim with the pivot location in the left_scapula_end_jnt. Duplicating for the right side. Lucy Furr model by Ashley Lupariello, 2019.

press (p) on the keyboard. (This makes the left_scapula_ikHandle child to the left_scapula_anim control curve.) g. Parent the right_scapula_ikHandle to the right_scapula_anim. (In the OUTLINER, click on the right_scapula_ikHandle, hold down the ctrl (PC) or pp⌘ (MAC) key and click on the right_scapula_anim, and then press (p) on the keyboard. (This makes the right_scapula_ ikHandle child to the right_scapula_anim control curve.) h. In the OUTLINER, select the left_shoulder_jnt joint chain and press (h) to display. 5. [File > Save As] Save a copy of your scene file (Figure 7.53). 4. File > Save As] Save a copy of your scene file.

Cleanup for the Scapula Setup 7. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during the animation process for that controller. If the channel is white, hold down the RMB and choose “lock selected.” If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. Later, these channels can be hidden.

302

Quadruped Spine & Neck

CONTROL NAME left_scapula_anim, right_scapula_anim

LOCK and HIDE (select in CHANNEL BOX, RMB) scaleX, scaleY, scaleZ (hide only the visibility)

8. Integrate the front legs into the scapula’s by doing the following: a. In the OUTLINER, click on the left_front_shoulder_skin_jnt, hold down the (shift) key and, in the VIEWPORT window, click on the left_scapula_anim, and press (p) to parent them. b. In the OUTLINER, click on the right_front_shoulder_skin_jnt, hold down the (shift) key and, in the VIEWPORT window, click on the right_scapula_anim, and press (p) to parent them. c. In the OUTLINER, click on the left_scapula_anim, hold down the (ctrl PC or ⌘ MAC) key and click right_scapula_anim, left_scapula_skin_ jnt, and the right_scapula_skin_jnt; then hold down the (shift) key and, in the VIEWPORT window, click on the shoulder_spine_anim, and press (p) to parent. 9. Hide IK so that during the animation process, they are not accidentally selected and keyframed. a. Select the left_scapula_ikHandle and right_scapula_ikHandle and press (h) to hide them. 10. Integrate the hind legs into the spine by doing the following: a. In the PERSPECTIVE WINDOW, click on the left_hind_hip_skin_jnt, hold down the (shift) key, and, in the VIEWPORT window, click on the right_hind_hip_skin_jnt, then the hip_spine_anim, and press (p) to parent. 11. [File > Save As] Save a copy of your scene file (Figure 7.54).

303

An Essential Introduction to Maya Character Rigging

FIGURE 7.54 The OUTLINER, showing the hierarchy of the scapula setup.

304

Chapter 8

Head • • • • • • •

Workflow Introduction Joint Placement for the Biped Head Control System for the Head, Hat, and Hair Skeleton Joint Placement for the Quadruped Head Control System for the Head, Collar, and Ear Skeleton Dynamic Joint Chains: Antennae

Workflow Figure 8.1

Introduction This chapter covers anything that must be rigged on the head but does not include facial expressions or interior head parts, such as the tongue and eyes (covered in Chapter 9). This chapter’s approach works for all types of heads on any type of character, biped, quadruped, or whatever. We will be looking at a simple rig for Persephone’s hair and hat, along with Lucy’s ears and collar. In addition, we will look at dynamically rigging antennae in the lunar moth character, Luna. The simplified rig for Persephone’s hair includes one FK joint chain to control the bulk of her hair and then a few FK chains to control the strands of her curls. Those chains could also be made dynamic using the same process that will be explained in rigging Luna’s antennae later in this chapter.

Joint Placement for the Biped Head Creating the Joints for the Head, Hat, and Hair Skeleton 1. Open your last saved version of the biped file from the end of Chapter 5. 2. Continue working in X-ray mode.

305

An Essential Introduction to Maya Character Rigging

FIGURE 8.1 Biped or Quadruped Head Workflow.

306

Head

FIGURE 8.2 The Joint Tool settings do not matter when adding a joint for the head and hat, since each joint is placed individually and therefore aligns with the world. Persephone model by Kenna Hornibrook, 2019.

3. Create a head joint by doing the following: a. Select [Skeleton > Create Joints □ ] and, in the SIDE orthographic view, place one joint in the center top of the head. The Joint Tool settings do not matter, since placing only one joint is going to align that joint with the world. b. Rename this joint head_skin_jnt. 4. Create a hat joint by doing the following: a. Press (y) to select the Joint Tool again and, in the SIDE orthographic view, place one joint in the center top of the hat. Be careful not to click directly on the head_skin_jnt. b. Rename this joint hat_anim_jnt. (Figure 8.2) 5. Create the hair joint hierarchy by doing the following: a. Select [Skeleton > Create Joints □ ]. i. Under Orientation Settings keep Primary Axis set to Y change Secondary Axis to X and change Secondary Axis World Orientation to X + ii. Under Bone Radius Settings change Long bone radius to 0.5000 b. In the SIDE orthographic view, place five joints in the back of the head following the hair. c. Rename these joints hair_skin_jnt_1, hair_skin_jnt_2, hair_skin_ jnt_3, hair_skin_jnt_4, and hair_skin_jnt_end. d. In the SIDE or FRONT orthographic view, place three to six joints for each part of the hair curls, following the shape of hair. Place joints only for the curls that would appear to move. e. Rename these joints curl1_skin_jnt_1, curl1_skin_jnt_2, curl1_ skin_jnt_3, curl1_skin_jnt_4, and curl1_skin_jnt_end. Then the next strand joints curl2_skin_jnt_1, curl2_skin_jnt_2, curl2_ skin_jnt_3, curl2_skin_jnt_4, and curl2_skin_jnt_end. Continue renaming each strand in the same way. 307

An Essential Introduction to Maya Character Rigging

To speed up the process, duplicate [ctrl+d] the curlN_skin_jnt_1 and use [Modify > Search and Replace Names…] to replace curlN (where N is the number of the current curl joint chain, such as curl1, curl2, curl3, etc.) with the number of the next hair curl. Then simply rotate and move the joints in place. Be sure to [Modify > Freeze Transformations] and [Skeleton > Orient Joint] in the next steps below. f. g.

h.

i.

In the PERSPECTIVE view, move or rotate the hair joints so that they line up on the center of the geometry. If you rotated any of the joints, you should freeze transformations on the rotations. Select the first joint of each hair chain and go to [Modify > Freeze Transformations]. Reorient the hair joints. Select the first joint of each finger chain, and go to [Skeleton > Orient Joint □ ]. Orientation Settings change Primary Axis to Y, change Secondary Axis to X, and change Secondary Axis World Orientation to X +. You can add the prefix, left_ or right_ to help organize the many different curls. by selecting the first joint of each hair chain and then going to [Modify > Prefix Hierarchy Names…]. Enter left_ (or

right) in the text field and click ok . 6. File > Save As] Save a copy of your scene file (Figure 8.3).

Verifying the Joint Local Rotation Axis 1. Continue working or open your last saved version of the file. 2. Evaluate the axes and determine if any need to be fixed. a. Select the first joint of each joint chain, for example: left_curl1_skin_jnt_1. b.

Press (F8) (Select By Component type) and choose ? to display [Local Rotation Axes].

FIGURE 8.3 Placing the joints for the hair and curls, renaming, reorienting, and adding the prefix for left_or right_. Persephone model by Kenna Hornibrook, 2019.

308

Head

FIGURE 8.4 Verifying the local rotation axes in the hair curl joints. Each joint chain should have the Y-axis pointing toward the child and the X-axis pointing screen right (your character’s left). Persephone model by Kenna Hornibrook, 2019.

c.

The hair should have the Y-axis pointing toward the child and the X-axis going to screen right (character left) (Figure 8.4). 3. If there is a problem with the axis orientation of the fingers: d. Press (F8) (Select By Object Type) and open the OUTLINER [Window > Outliner]. e. Select the first of the joint1 of each hair curl chain. f. Reorient by going to [Skeleton > Orient Joint □ ]. i. Under Orientation Settings keep Primary Axis set to Y change Secondary Axis to X, and change Secondary Axis World Orientation to X + click ORIENT . 1. [File > Save As] Save a copy of your scene file.

Control System for the Head, Hat, and Hair Skeleton 1. Continue working or open your last saved version of the file. 2. Select the joint head_skin_jnt then select head_anim and press (p) to parent. 3. Create a controls for the hat by doing the following: a. Go to [Create > NURBS Primitives > Circle □ ] Change the Normal axis: Y This curve should be created at the origin with the pivot centered. b. Rename the circle to hat_anim. c. In the OUTLINER, select the hat_anim and select the hat_anim_jnt and go to [Modify > Match Transformation > Match Translation]. d. Using the scale tool (r), resize the curve to fit around your character’s hat geometry if necessary. e. With the hat_anim selected, go to [Modify > Freeze Transformations]. 309

An Essential Introduction to Maya Character Rigging

FIGURE 8.5 Adding a hat_anim to control the hat_anim_jnt. In COMPONENT MODE (F8), resize the circle if necessary around your character’s hat geometry. Group the hat_anim to create a place to hold a constraint, so that the hat_anim can still be keyframed if constrained to a character’s hand during animation. Persephone model by Kenna Hornibrook, 2019.

In the ATTRIBUTE EDITOR [ctrl+a], keep the rotation order for the hat_anim as XYZ. g. Select the joint hat_anim_jnt then select hat_anim and press (p) to parent. h. Select hat_anim then select head_anim and press (p) to parent. i. Select hat_anim then select head_anim and press (p) to parent. j. Select hat_anim [ctrl+g] to group and rename the group hat_ anim_const_grp (This group is to hold a constraint so that the hat_anim can still be keyframed if constrained to a character’s hand during animation) (Figure 8.5). 4. Create a controller for the hair by doing the following: k. Go to [Create > NURBS Primitives > Circle □ ] Change the Normal axis: X This curve should be created at the origin with the pivot centered. f.

l. m.

n. o.

310

In the OUTLINER, go to [Display] and make sure there is a in the box next to Shapes. If not, click on the word Shapes. In the OUTLINER, hold down the shift key and click on the plus sign (+) next to nurbsCircle1 to open the hierarchy and display the children. Ensure that the shape node is named nurbsCircleShape1, rename if necessary, or adjust the MEL script in the next step. In the MEL command line, type the MEL script below: p parent -add -shape nurbsCircleShape1 hair_skin_jnt_1. Press the (F8) key to go into COMPONENT MODE and using the scale tool, resize the curve to fit around your character’s hair geometry if necessary.

Head

FIGURE 8.6 Adding a nurbsCircleShape1 to the hair_skin_jnt_1. In COMPONENT MODE (F8), resize the circle if necessary around your character’s hair geometry. Persephone model by Kenna Hornibrook, 2019.

Press the (F8) key to go back into object mode. Select the hair_skin_jnt_1, and in the CHANNEL BOX, rename hair_ skin_jnt_1to hair1_anim. r. In the OUTLINER, hold down the shift key and click on the plus sign (+) next to the hair1_anim to open the hierarchy and display the children. s. Double-click on nurbsCircleShape1 and rename it hair1_animShape. t. In the ATTRIBUTE EDITOR [ctrl+a], change the rotation order for the hair1_anim to XZY. u. In the OUTLINER, delete nurbsCircle1 (the curve at the origin) (Figure 8.6). v. Repeat this process for all of the hair joints and curl joints. w. Select hair1_anim, left_curl1_1_anim, and all of the remaining curl_ anims, then select the head_anim and press (p) to parent. 5. [File > Save As] Save a copy of your scene file (Figure 8.7). p. q.

The hair could also be controlled using Set Driven Key similarly to the setup for the fingers. Adding attributes to the head_anim, such as hairBounce, curl1Bounce, and curl1Fall, then using a min/max to key various desired poses. Alternatively, a dynamic setup, like the one that follows for the antennae, can also be used.

Cleanup for the Biped Head Setup 6. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during animation for that controller. If the channel is white, hold down the RMB and choose lock selected. If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. Later, these channels can be hidden. 311

An Essential Introduction to Maya Character Rigging

FIGURE 8.7 The left_curl1 completed with five controls. This process must be repeated for each curl that needs individual control. Adding a nurbsCircleShape1 to the hair and curl joints is a tedious process, but gives great control to the animator. This process could also be used in the fingers for more direct manipulation and control. Persephone model by Kenna Hornibrook, 2019.

CONTROL NAME All hair and curl anim controllers

LOCK and HIDE (select in CHANNEL BOX, RMB) translateX, translateY, translateZ, scaleX, scaleY, scaleZ, and visibility

7. Integrate the hair anim controllers into the existing head controls by doing the following: a. In the OUTLINER, select all hair and curl anim controllers and then [ctrl+g] to group them. Rename the group hair_jnt_grp. b. With the hair_jnt_grp selected, shift-select head_anim, in the PERSPECTIVE view, and press (p) to parent. c. Select the hat geometry and group it [ctrl+g], then rename the group hat_geo_grp. d. Select the hat_anim, shift-select the hat_geo_grp, and go to [Constrain > Parent] then [Constrain > Scale]. 8. [File > Save As] Save a copy of your scene file.

Joint Placement for the Quadruped Head Creating the Joints for the Ears and Collar 1. Open your last saved version of the quadruped file from the end of chapter seven. 2. Continue working in X-ray mode. 3. Create a head joint by doing the following: a. Select [Skeleton > Create Joints □ ] and, in the SIDE orthographic view, place 1 joint in the center top of the head. The Joint Tool settings do not matter, since placing only one joint is going to align that joint with the world. b. Rename this joint head_skin_jnt. 312

Head

FIGURE 8.8 Placing joints for the head, collar, and ears of the quadruped. Quadruped model by Ashley Lupariello, 2019.

4. Create a collar joint by doing the following: a. Press (y) to select the Joint Tool again and, in the SIDE orthographic view, place 1 joint in the center top of the collar. b. Rename this joint collar_anim_jnt. 5. Create the ear joint hierarchy by doing the following: c. Select [Skeleton > Create Joints □ ]. i. Under Orientation Settings keep Primary Axis set to Y change Secondary Axis to X, and change Secondary Axis World Orientation to X + ii. Under Bone Radius Settings change Long bone radius to 0.5000 c. In the SIDE orthographic view, place three joints in the ear. If you want a floppier ear, then you can add additional joints. d. Rename these joints ear1_skin_jnt, ear2_skin_jnt, and ear_end_jnt. e. In the PERSPECTIVE view, move or rotate the hair joints so that they line up on the center of the ear geometry. f. If you rotated any of the joints, you should freeze transformations on the rotations. Select the first joint of each hair chain and go to [Modify > Freeze Transformations]. g. Reorient the ear joints. Select the first joint of the ear chain and go to [Skeleton > Orient Joint □ ]. Orientation Settings: change Primary Axis to Y, change Secondary Axis to X, and change Secondary Axis World Orientation to X +. h. [Skeleton > Mirror Joints] for the right side. 6. File > Save As] Save a copy of your scene file (Figure 8.8).

Verifying the Joint Local Rotation Axis 1. Continue working or open your last saved version of the file. 2. Evaluate the axes and determine if any need to be fixed. a. Select the first joint of each joint chain, for example: left_ear1_skin_jnt. b.

Press (F8) (Select By Component type) and choose ? to display [Local Rotation Axes]. 313

An Essential Introduction to Maya Character Rigging

FIGURE 8.9 Verifying the local rotation axes in the ear joints. The character’s left ear joint chain should have the Y-axis pointing toward the child and the X-axis pointing screen right (your character’s left). The mirrored right chain has the Y-axis pointing away from the child joint and the X-axis pointing screen left (your character’s right). Quadruped model by Ashley Lupariello, 2019.

c.

The ear should have the Y-axis pointing toward the child and the X-axis going to screen right (character left). The mirror will be in the reverse direction (Figure 8.9). 3. If there is a problem with the axis orientation of the fingers: a. Press (F8) (Select By Object Type) and open the OUTLINER [Window > Outliner]. b. Select the first of the joint1 of each hair curl chain. c. Reorient by going to [Skeleton > Orient Joint □ ]. i. Under Orientation Settings keep Primary Axis set to Y change Secondary Axis to X and change Secondary Axis World Orientation to X + click ORIENT . 4. Delete the right side and re-mirror. 5. [File > Save As] Save a copy of your scene file.

Control System for the Head, Collar, and Ear Skeleton 1. Continue working or open your last saved version of the file. 2. Select the joint head_skin_jnt then select head_anim and press (p) to parent. 3. Create a controller for the collar by doing the following: a. Go to [Create > NURBS Primitives > Circle □ ] Change the Normal axis: Y This curve should be created at the origin with the pivot centered. 314

Head

FIGURE 8.10 Adding a collar_anim to control the collar_anim_jnt. In COMPONENT MODE (F8), resize the circle if necessary around your character’s upper arm geometry. Group the collar_anim to create a place to hold a constraint, so that the collar_anim can still be keyframed if constrained to a character’s hand during animation. Rotate the group to align the controller with the collar. Quadruped model by Ashley Lupariello, 2019.

Rename the circle to collar_anim. In the OUTLINER, select the collar_anim and shift-select the collar_ anim_jnt and go to [Modify > Match Transformation > Match Translation]. d. Using the scale tool (r), resize the curve to fit around your character’s collar geometry if necessary. e. With the collar_anim selected, go to [Modify > Freeze Transformations]. f. In the ATTRIBUTE EDITOR [ctrl+a], keep the rotation order for the collar_anim as XYZ. g. Select the joint collar_anim_jnt, then select collar_anim, and press (p) to parent. h. Select collar_anim, then select head_anim, and press (p) to parent. i. Select collar_anim [ctrl+g] to group and rename the group collar_ anim_const. (This group is to hold a constraint so that the collar_anim can still be keyframed if constrained to a character’s hand during animation. You can also rotate this group node to align the controller with the collar, keeping the collar_anim rotations zero, but first be sure to [Modify > Center Pivot] with the group node selected.) (Figure 8.10) 4. Create controllers for the ears by doing the following: a. Go to [Create > NURBS Primitives > Circle □ ] and change the Normal axis: Y This curve should be created at the origin with the pivot centered. b. c.

b. c.

In the OUTLINER, go to [Display] and make sure there is a in the box next to Shapes. If not, click on the word Shapes. In the OUTLINER, hold down the shift key and click on the plus sign (+) next to nurbsCircle1 to open the hierarchy, and display the children. Ensure that the shape node is named nurbsCircleShape1, rename if necessary, or adjust the MEL script in the next step. 315

An Essential Introduction to Maya Character Rigging d. e.

f. g. h.

i. j. k. l. m.

n.

In the MEL command line, type the MEL script below: parent -add -shape nurbsCircleShape1 hair_skin_jnt_1; Press the (F8) key to go into COMPONENT MODE and, using the scale tool, resize the curve to fit around your character’s hair geometry if necessary. Press the (F8) key to go back into object mode. Select the hair_skin_jnt_1 and, in the CHANNEL BOX, rename hair_ skin_jnt_1 to left_ear1_anim. In the OUTLINER, hold down the shift key and click on the plus sign (+) next to the hair1_anim to open the hierarchy, and display the children. Double-click on nurbsCircleShape1 and rename it left_ear1_animShape. In the OUTLINER, delete nurbsCircle1 (the curve at the origin) (Figure 8.11). Repeat this process for the left_ear2_skin_jnt and any additional ear joints (except the end joint). Delete the right_ear1_skin_jnt. Select left_ear1_anim and go to [Skeleton > Mirror Joints] for the right side. You may need to go to COMPONENT MODE (F8) to adjust the position of the controllers if they were not symmetrical. Select left_ear1_anim, left_ear2_anim, then select head_anim, and press (p) to parent.

The ears could also be controlled using Set Driven Key similarly to the setup for the fingers. Adding attributes to the head_anim such as earFlexCurl, earOrbit, earFall then using a min/max to key various desired poses. Alternatively, a dynamic setup, like the one that follows for the antennae, can also be used for really floppy ears.

FIGURE 8.11 Adding a nurbsCircleShape1 to the left_ear1_skin_jnt. In COMPONENT MODE (F8), resize the circle if necessary around your character’s ear geometry. Quadruped model by Ashley Lupariello, 2019.

316

Head Cleanup for the Ear Setup 1. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during animation for that controller. If the channel is white, hold down the RMB and choose lock selected. If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. Later, these channels can be hidden. CONTROL NAME Right & left_ear1_anim, right & left_ear2_anim

LOCK and HIDE (select in CHANNEL BOX, RMB) translateX, translateY, translateZ, scaleX, scaleY, scaleZ, and visibility

2. Integrate the hair anim controllers into the existing head controls by doing the following: a. Select right & left_ear1_anim, shift-select head_anim in the PERSPECTIVE view, and press (p) to parent. 3. [File > Save As] Save a copy of your scene file.

Dynamic Joint Chains: Antennae Figure 8.12

FIGURE 8.12 Creating a control rig for antennae using an FK/IK/Dynamic Joint system. Luna model by Haley Vallandingham, 2015.

317

An Essential Introduction to Maya Character Rigging Creating the Joints for the Antennae 1. Open your last saved version of the biped or quadruped file with a character that has antennae. You should have completed through Chapter 5 or 7 before adding the head and antennae. 2. Continue working in X-ray mode. 3. Create a head joint by doing the following: a. Select [Skeleton > Create Joints □ ] and, in the SIDE orthographic view, place one joint in the center top of the head. The Joint Tool settings do not matter, since placing only one joint is going to align that joint with the world. b. Rename this joint head_skin_jnt. c. Select the joint head_skin_jnt, then select head_anim, and press (p) to parent. 4. Create the antenna joint hierarchy by doing the following: a. Select [Skeleton > Create Joints □ ]. i. Under Orientation Settings, keep Primary Axis set to X change Secondary Axis to Z, and change Secondary Axis World Orientation to Z + ii. Under Bone Radius Settings change Long bone radius to 0.5000 b. In the FRONT orthographic view, place seven joints for the arm as follows: c. Rename these joints antenna_skin_jnt_1, antenna_skin_jnt_2, antenna_skin_jnt_3, antenna_skin_jnt_4, antenna_skin_jnt_5, antenna_skin_jnt_6, antenna_skin_jnt_end. d. In the PERSPECTIVE view, move or rotate the antenna joints so that they line up on the center of the geometry. e. If you rotated any of the joints, you should freeze transformations on the rotations. Select the first joint of the antenna chain and go to [Modify > Freeze Transformations]. f. Reorient the antenna joints. Select the first joint and go to [Skeleton > Orient Joint □ ]. Orientation Settings change Secondary Axis to Z and change Secondary Axis World Orientation to Z + . g. Rename your arm chain to include the left prefix by selecting the antenna_skin_jnt_1 joint, then go to [Modify > Prefix Hierarchy Names…]. Enter left_in the text field and click ok. h. [File > Save As] Save a copy of your scene file (Figure 8.13).

Verifying the Joint Local Rotation Axis 1. 2. 3.

Continue working or open your last saved version of the file. Continue working in X-ray mode. Evaluate the axes and determine if any need to be fixed. a. Select all joints by going to [Select All By Type > Joints].

b. Press (F8) (Select By Component type) choose ? to display [Local Rotation Axes]. c. The antenna should have the X-axis pointing toward the child and the Z-axis coming forward (Figure 8.14). 318

Head

FIGURE 8.13 Placing, repositioning, orienting, and renaming the antenna joints. Luna model by Haley Vallandingham, 2015.

FIGURE 8.14 Verifying the local rotation axes in the antenna joints. The antenna should have the X-axis pointing toward the child and the Z-axis coming forward. The last joint of the chain will align with the World axis. Luna model by Haley Vallandingham, 2015.

4. If there is a problem with the axis orientation of the antenna: a. Press (F8) (Select By Object Type) and open the OUTLINER [Window > Outliner]. b. Select the top of the joint chain (left_antenna_skin_jnt_1). c. Reorient by going to [Skeleton > Orient Joint □ ]. i. Under Orientation Settings keep Primary Axis set to X change Secondary Axis to Z, and change Secondary Axis World Orientation to Z + click ORIENT . 5. [File > Save As] Save a copy of your scene file. 319

An Essential Introduction to Maya Character Rigging Creating a Control System for the Antennae. 1. Continue working or open your last saved version of the file. 2. Duplicate the joint chains. a. Select the left_antenna_skin_jnt_1. b. Duplicate it by pressing [ctrl+d]. c. In the OUTLINER, with the left_antenna_skin_jnt_7 selected, add FK_ prefix by selecting [Modify > Prefix Hierarchy Names…], and set the following: i. Enter prefix: FK_ d. e.

f. g.

h. i.

j.

ii. click OK Rename the chain to FK_left_antenna_skin_jnt_1 (replacing the 7 with a 1 from FK_left_antenna_skin_jnt_7). Select the FK_left_antenna_skin_jnt_1 joint and rename the hierarchy by going to [Modify > Search and Replace Names…], and set the following: Search for: “skin_jnt” Replace with: “jnt” (this removes the “skin_” from the name). Select the FK_left_antenna_jnt_1 joint, press [ctrl+d]. Select the FK_left_antenna_jnt_7 joint, rename the hierarchy by going to [Modify > Search and Replace Names…], and set the following: Search for: “FK” Replace with: “IK.” Rename to IK_left_antenna_jnt_1 (replacing the 7 with a 1 from IK_left_antenna_jnt_7). Mirror the left skin antenna to create the right skin antenna by selecting the left_antenna_skin_jnt_1 joint, then go to [Skeleton > Mirror Joints □ ]. i. change Mirror across: to YZ ii. change Search for: to left_ and iii. change Replace with: to right_ iv. click Apply Mirror the left skin antenna to create the right skin antenna by selecting the IK_left_antenna_jnt_1 joint, then go to [Skeleton > Mirror Joints □ ]. i. change Mirror across: to YZ ii. change Search for: to left_ and iii. change Replace with: to right_

iv. click Replace k. Select the IK_left_antenna_jnt_1 joint chain, then press (h) to hide. l. Select the left_antenna_skin_jnt_1 joint chain, then press (h) to hide. 3. [File > Save As] Save a copy of your scene file (Figure 8.15). 4. Create controllers for the left FK antenna by doing the following: a. Go to [Create > NURBS Primitives > Circle □ ] Keep the Normal axis: X. This curve should be created at the origin with the pivot centered. b. c.

320

In the OUTLINER, go to [Display] and make sure there is a in the box next to Shapes. If not, click on the word Shapes. In the OUTLINER, hold down the shift key and click on the plus sign (+) next to nurbsCircle1 to open the hierarchy and display the children.

Head

FIGURE 8.15 Duplicating, renaming, and mirroring left_antenna_skin_jnt_1 and IK_left_antenna_jnt_1 antennae joints. The left FK joint chains will be duplicated for the right side AFTER their controls are created. Luna model by Haley Vallandingham, 2015.

d. e.

f. g. h.

i. j. k. l.

m.

Ensure that the shape node is named nurbsCircleShape1 and rename the script below to match if necessary. In the MEL command line, type the MEL script below: parent -add -shape nurbsCircleShape1 FK_left_antenna_jnt_1; Press the (F8) key to go into COMPONENT MODE and, using the scale tool, resize the curve to fit around your character’s antennae geometry if necessary. Press the (F8) key to go back into object mode (Figure 8.16). Select the FK_left_antenna_jnt_1 and, in the CHANNEL BOX, rename FK_left_antenna_jnt_1 to FK_left_antenna_1_anim. In the OUTLINER, hold down the shift key and click on the plus sign (+) next to the FK_left_antenna_1_anim to open the hierarchy and display the children. Double-click on nurbsCircleShape1 and rename it FK_left_antenna_1_animShape. In the ATTRIBUTE EDITOR [ctrl+a], change the rotation order for the FK_left_antenna_1_anim as XZY. In the OUTLINER, delete nurbsCircle1 (the curve at the origin). Repeat this process for the antenna joints (For each joint, change the shape node name and the rotation order to XZY) This can get rather tedious, so riggers usually start learning how to MEL script to speed up repetitive tasks. Mirror the left FK antenna to create the right FK antenna by selecting the FK_left_antenna_1_anim joint, then go to [Skeleton > Mirror 321

An Essential Introduction to Maya Character Rigging

FIGURE 8.16 Adding a nurbsCircleShape1 to the FK_left_shoulder_jnt. In COMPONENT MODE (F8), resize the circle if necessary around the base of the antenna geometry. Luna model by Haley Vallandingham, 2015.

FIGURE 8.17 Adding and renaming nurbsCircleShape1 to the FK antenna joints then mirroring the FK_left_antenna_1_anim antenna joints to the right side. Be sure to rename the nurbsCircleShape1 and delete the nurbsCircle1 before creating a new nurbsCircle1 and adding nurbsCircleShape1 to the next antenna joint. Luna model by Haley Vallandingham, 2015.

Joints], change Mirror across to YZ, and, under Replacement names for duplicated joints, enter Search for left_ and Replace with right_. Then click mirror to execute the command. n. In the OUTLINER, select FK_left_antenna_1_anim then press (h) to hide. o. Select FK_right_antenna_1_anim, then press (h) to hide. p. Select right_antenna_skin_jnt_1, then press (h) to hide. q. Select IK_left_antenna_jnt_1, then press (h) to unhide. 9. [File > Save As] Save a copy of your scene file (Figure 8.17). At this point you will want to close Maya then download and install the Maya Bonus Tools from the Autodesk website. I have been writing this book about 322

Head

FIGURE 8.18 The Maya Bonus Tools menu item appears in the main menu after installation. In the next section, we will be working with [Bonus Tools > Rigging > Make Joints Dynamic…].

Maya in 2020, but this particular tool that we will be using has been around for at least seven versions of Maya. I have provided a link below for Maya 2017–2020, but you can simply Google Maya Bonus Tools and the version of Maya you are using to find it. Once the Bonus Tools have been downloaded and installed, re-launch Maya. You should see a new menu item appear to the left of Arnold and Help. Autodesk Maya Bonus Tools 2017-2020 | Autodesk App Store http://apps.aut odesk.com/en/Detail/Index?id=8115150172702393827&appLang=en&os=Ma c&autostar t=true (Figure 8.18) 10. Create the left IK antenna by doing the following: a. Go to [Bonus Tools > Rigging > Make Joints Dynamic…]. b. In the PERSPECTIVE view, first click on IK_left_antenna_jnt_1 then

c.

shift-click on IK_left_antenna_jnt_end and press Apply in the Make Joints Dynamic window. Select dynJoint_HairStuff1 and go to [Modify > Prefix Hierarchy

d.

Names…] and Enter prefix: left_antenna_ then OK . In the OUTLINER, select hairSystem1Follicles and go to [Modify > Prefix Hierarchy Names…] and Enter prefix: left_antenna_ then

e.

click OK . Rename effector1 to left_antenna_effector (find effector1 as a child of the head_skin_jnt). 323

An Essential Introduction to Maya Character Rigging f.

In the PERSPECTIVE view, first click on IK_right_antenna_jnt_1 then

g.

shift-click on IK_right_antenna_jnt_end and press Apply in the Make Joints Dynamic window. Select dynJoint_HairStuff1 and go to [Modify > Prefix Hierarchy

h.

Names…] and Enter prefix: right_antenna_ then click OK . In the OUTLINER, select hairSystem1Follicles, go to [Modify > Prefix Hierarchy Names…], and Enter prefix: right_antenna_ then click

OK . Rename effector1 to right_antenna_effector (find effector1 as a child of the head_skin_jnt). 11. Create controllers for the IK antenna by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve IK_left_antenna_anim. b. Move, scale, and rotate the controller around the base of the antenna, moving the pivot into the IK_left_antenna_jnt_1 by first selecting IK_left_antenna_anim, then the IK_left_antenna_jnt_1, and go to [Modify > Match Transformation > Match Pivots]. (Figure 8.19) c. In the ATTRIBUTE EDITOR [ctrl+a], change the rotation order for the IK_left_antenna_anim to XZY. d. Duplicate the IK_left_antenna_anim and rename it IK_right_antenna_anim. e. Move, rotate, and scale the IK_right_antenna_anim to the IK_right_ antenna_jnt_1 joint. f. With the IK_left_antenna_anim and IK_right_antenna_anim selected, go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) g. Select left_antenna_hairSystem1Follicles, then IK_left_antenna_ anim, and press (p) to parent. h. Select right_antenna_hairSystem1Follicles, then IK_right_ antenna_anim, and press (p) to parent. i.

FIGURE 8.19 Creating and positioning the IK_left_antenna_anim with the pivot location in the center of IK_left_antenna_jnt_1 then duplicating for the right side. Luna model by Haley Vallandingham, 2015.

324

Head Select left_antenna_dynJoint_HairStuff1, left_antenna_ dynJoint_HairStuff1, and nucleus1, then [ctrl+g] and rename the group antennae_grp. j. With the antennae_grp selected, in the OUTLINER (ctrl PC or ⌘ MAC) click head_anim, and press (p) to parent. k. With the antennae_grp selected, in the ATTRIBUTE EDITOR [ctrl+a], UNCHECK □ Inherits Transform. l. Select IK_left_antenna_anim and IK_right_antenna_anim, in the OUTLINER (ctrl PC or ⌘ MAC) click head_anim, and press (p) to parent. 12. [File > Save As] Save a copy of your scene file (Figures 8.20 and 8.21). i.

If you want to test the dynamic motion, first change your timeline to 5000 frames. Then press (F5) to switch to the FX menu set. Go to [Fields/ Solvers > Interactive Playback]. You can then select the Head_anim and move or rotate to see the dynamics in action. Stop the timeline playback when finished, return to the first keyframe, and return head_anim to the default position by typing “0” in the translations and rotations of the CHANNEL BOX before continuing. 13. The next part will create an integrated antenna where the joint chain that will eventually control the geometry has a switch to choose between fully FK control antenna and the IK control antenna, or a blend in the middle to have the maximum control for the animator. Do the following:

FIGURE 8.20 Creating the Dynamic Joint chain IK for both antenna with [Bonus Tools > Rigging > Make Joints Dynamic…]. Luna model by Haley Vallandingham, 2015.

325

An Essential Introduction to Maya Character Rigging

FIGURE 8.21 You may notice the antennae are pretty floppy. Making a few adjustments on the left_antenna_hairHandle1 and the left_antenna_ hairSystem1 will change how bouncy and floppy the chain is when responding to movement. Adjusting just the Start Curve Attract on the left_antenna_ hairSystem1 to a value of “1” helps tremendously, but you can also adjust the many other attributes as seen on the left image of the CHANNEL BOX. The most commonly adjusted attributes have been connected (indicated by yellow) to added attributes on the left_antenna_hairHandle1 to make it easy to find by selecting the ikHandle in the VIEWPORT as seen in the right image of the CHANNEL BOX. Be sure to read the Maya help files (F1) for more information.

k.

In the OUTLINER, select FK_left_antenna_1_anim` then press (h) to unhide. Select FK_right_antenna_1_anim, then press (h) to unhide. Select right_antenna_skin_jnt_1, then press (h) to unhide. Select left_antenna_skin_jnt_1, then press (h) to unhide. In the OUTLINER, select the FK_left_antenna_1_anim and, while holding down the (ctrl PC or ⌘ MAC) key, select the IK_left_ antenna_jnt_1 and left_antenna_skin_jnt_1. Press [ctrl+g] to create a group of the three arms to make it easier to select. Rename the group left_antenna_grp. Repeat for the right side. In the OUTLINER, hold down the shift key and click on the plus sign (+) next to the left_antenna_grp to open the hierarchy and display the children. In the OUTLINER, click first on the FK_left_antenna_1_anim, and, while holding down the (ctrl PC or ⌘ MAC) key, click second on the IK_left_antenna_jnt_1 and click third on the left_antenna_skin_jnt_1, then go to [Constrain > Orient □ ] and set the following: Make sure it is UNCHECKED □ in the box next to Maintain Offset.

l.

click apply (Figure 8.22)

a. b. c. d. e.

f. g. h. i.

j.

326

Head

FIGURE 8.22 Creating an orient constraint between the FK_left_antenna_1_anim, the IK_left_antenna_jnt_1 (both leaders), and the left_antenna_ skin_jnt_1 (follower). Luna model by Haley Vallandingham, 2015.

Repeat for the remaining antenna joints selecting first the FK, then IK, then skin joint, and pressing (g) to repeat the last command of adding an orient constraint. There is no need to do the end joint (the last joint of the chain). n. Repeat the constraints on the right antenna. 14. [File > Save As] Save a copy of your scene file. m.

The rotations on the Skin Arm joints should remain Zero (or very close to Zero) once the orient constraint is created. A low rotation is expected due to the dynamic joints rotating through the ikHandle. If rotations are about the number 5 or below −5, there is a problem with the joint system. Either the Local Rotational Axes do not align, or there is an existing rotation on the joint chain that should have been frozen with [Modify>Freeze Transformations]. Undo or reopen the last saved file, fix the problem, and then try again. 15. Create a switch to change the leader between the FK control antenna and the IK dynamic chain antenna. To set this up, create or import controllers for the IK arm by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a control. Rename the curve antennae_settings_anim. b. Move, scale, and rotate the controller behind the head, between the antennae. c. Select the antennae_settings_anim and go to [Modify > Freeze Transformations]. (To return both translate and rotate values to 0 and the scale values to 1.) d. Parent the antennae_settings_anim to the head_anim. 327

An Essential Introduction to Maya Character Rigging

FIGURE 8.23 Creating and positioning the antennae_settings_anim behind the antennae. Parenting to the head_anim and adding the custom attribute “FKIK.” Luna model by Haley Vallandingham, 2015.

e.

With the antennae_settings_anim selected, go to [Modify > Add Attribute]. Using the default settings, enter the following: Long name: FKIK; Data Type: Float; Minimum: 0 Maximum: 1.

f. Then click OK . (Figure 8.23) 16. Make the switch function. To set this up, we will use Set Driven Key to turn the constraints on and off. To sum things up, when the FKIK switch is set to 0, the FK constraints will be turned on and the IK constraints will be turned off so that the skin antenna will follow the FK control antenna. When the FKIK switch is set to 1, the IK constraints will be turned on, and the FK constraints will be turned off, so that the arm will follow the IK control arm. Anything in between will give the animator partial FK/IK control. a. In the OUTLINER, select the left_shoulder_skin_jnt_orientConstraint1 and, in the Animation menu, set (F4) go to [Key > Set Driven Key > Set… □ ]. b. c. d. e. f.

328

Select the antennae_settings_anim and click Load Driver in the Set Driven Key window. In the Driver section of the Set Driven Key window, choose “FKIK” in the right column. In the Driven section of the Set Driven Key window, click on left_anten na_skin_jnt_1_orientConstraint1 to select it. In the CHANNEL BOX, change IK Left Antenna Jnt 1W1 to “0.” In the Driven section of the Set Driven Key window, choose “FK Left Antenna 1 Anim W0” in the right column, hold down the (shift) key and also click on “IK Left Antenna Jnt 1W1.”

Head

FIGURE 8.24 Loading the Set Driven Key window and setting the first key, so that when the FKIK switch is set to “0,” the shoulder will follow the FK controlled shoulder.

g.

h. i. j. k. l. m. n.

In the Set Driven Key window, click Key (This click changes the Driven attributes to blue in the CHANNEL BOX, indicating a key has been set on the constraint.) (Figure 8.24) In the Driver section of the Set Driven Key window, click on antennae_ settings_anim to select it. In the CHANNEL BOX, change FKIK to “1.” In the Driven section of the Set Driven Key window, click on left_anten na_skin_jnt_1_orientConstraint1 to select it. In the CHANNEL BOX, change FK Left Antenna 1 Anim W0 to “0” and IK Left Antenna Jnt 1W1 to “1.” In the Set Driven Key window, click Key (Figure 8.25) Repeat these steps for the remaining constraints on the left antenna. Repeat for the right antenna.

When working in the Set Driven Key window, always work from top to bottom, changing the Driver and then the Driven before setting the next Key. 17. Make the switch also control the visibility of the FK controllers. a. Select the FK_left_antenna_1_anim, FK_left_antenna_2_anim, FK_ left_antenna_3_anim, FK_left_antenna_4_anim, FK_left_antenna_5_ anim, and FK_left_antenna_6_anim and then click Load Driven in the Set Driven Key window. 329

An Essential Introduction to Maya Character Rigging

FIGURE 8.25 Setting the second key so that when the FKIK switch is set to “1,” the skin antenna will follow the IK controlled antenna joints, which are the dynamic joint chain.

b. c. d.

e.

f. g. h.

i. j.

k. 330

The left_arm_settings_anim remains the Driver with “FKIK” chosen in the right column. In the CHANNEL BOX, change FKIK to “0.” In the Driven section of the Set Driven Key window, select the FK_ left_antenna_1_anim, FK_left_antenna_2_anim, FK_left_antenna_3_ anim, FK_left_antenna_4_anim, FK_left_antenna_5_anim, and FK_left_antenna_6_anim, and choose “visibility” in the right column. In the Set Driven Key window, click Key (visibility is on already, so we are keying the visibility of the FK arm on when the settings_anim is set to 0 because FK will be working) (Figure 8.26) In the Driver section of the Set Driven Key window, click on antennae_ settings_anim to select it. In the CHANNEL BOX, change FKIK to .”9” In the Driven section of the Set Driven Key window, select the FK_ left_antenna_1_anim, FK_left_antenna_2_anim, FK_left_antenna_3_ anim, FK_left_antenna_4_anim, FK_left_antenna_5_anim, and FK_left_antenna_6_anim. In the CHANNEL BOX, keep visibility to “1” on. In the Set Driven Key window, click Key . (This way the animator can see the FK controls unless the antenna is fully dynamic.) In the Driver section of the Set Driven Key window, click on antennae_ settings_anim to select it.

Head

FIGURE 8.26 Changing the Driven of the Set Driven Key window to the six FK_left_antenna anim joints and setting the first key so that when the FKIK switch is set to “0,” the FK controls are visible.

l. m.

n.

In the CHANNEL BOX, change FKIK to “1.” In the Driven section of the Set Driven Key window, select the FK_ left_antenna_1_anim, FK_left_antenna_2_anim, FK_left_antenna_3_ anim, FK_left_antenna_4_anim, FK_left_antenna_5_anim, and FK_left_antenna_6_anim. In the CHANNEL BOX, change visibility to “0,” which turns the visibility off.

o. In the Set Driven Key window, click Key . p. Repeat making the switch function for the right antenna. 18. [File > Save As] Save a copy of your scene file (Figure 8.27). 19. Make the switch also control the visibility of the IK controllers. a. b.

c. d.

e. f.

Select the IK_left_antenna_anim then click Load Driven in the Set Driven Key window. The antennae_settings_anim remains the Driver with “FKIK” chosen in the right column. (It should already be set to “1,” but if not, change FKIK to “1.”) In the Driven section of the Set Driven Key window, click on IK_left_antenna_anim. In the Driven section of the Set Driven Key window, choose “visibility” in the right column. (The visibility should already be “on.”) In the Set Driven Key window, click Key . In the Driver section of the Set Driven Key window, click on left_arm_ settings_anim to select it. 331

An Essential Introduction to Maya Character Rigging

FIGURE 8.27 Setting the second and third key so that when the FKIK switch is set to “1,” the FK controls are hidden but still visible up to .9.

g. h. i.

j. k. l. m. n.

In the CHANNEL BOX, change FKIK to .”1” (this will allow the animator to use the IK controller, unless the IK controller is fully IK). In the Driven section of the Set Driven Key window, click on IK_left_antenna_anim. In the Driven section of the Set Driven Key window, choose “visibility” in the right column. (The visibility should already be “on.”) In the Set Driven Key window, click Key (Figure 8.28) In the Driver section of the Set Driven Key window, click on antennae_ settings_anim to select it. In the CHANNEL BOX, change FKIK to “0.” In the Driven section of the Set Driven Key window, click on IK_left_ antenna_anim to select it. In the CHANNEL BOX, change visibility to “0.”

o. In the Set Driven Key window, click Key . p. Repeat making the switch function for the right antenna. 20. [File > Save As] Save a copy of your scene file (Figure 8.29).

Cleanup for the Antenna Setup 21. Clean up each controller in the table below by doing the following: a. In the CHANNEL BOX, click on the words of the channel(s) that are not used during animation for that controller. If the channel is white, hold 332

Head

FIGURE 8.28 Changing the Driven of the Set Driven Key window to IK_left_antenna_anim then setting the first key so that when the FKIK switch is set to “1,” the IK controls are visible.

down the RMB and choose lock selected. If the channel is orange, blue, yellow, or purple, do not lock, as locking can break the incoming connection. Later, these channels can be hidden. CONTROL NAME

LOCK and HIDE (select in CHANNEL BOX, RMB)

IK_left_antenna_anim, IK_right_antenna_anim,

scaleX, scaleY, scaleZ (hide only the visibility)

antennae_settings_anim

translateX, translateY, translateZ, rotateX, rotateY, rotateZ, scaleX, scaleY, scaleZ, and visibility

FK_left_antenna_1_anim, FK_left_ antenna_2_anim, FK_left_antenna_3_anim, FK_left_antenna_4_anim, FK_left_ antenna_5_anim, and FK_left_antenna_6_anim FK_right_antenna_1_anim, FK_right_ antenna_2_anim, FK_right_antenna_3_ anim, FK_right_antenna_4_anim, FK_right_antenna_5_anim, and FK_right_antenna_6_anim

translateX, translateY, translateZ, scaleX, scaleY, scaleZ, and visibility

333

An Essential Introduction to Maya Character Rigging

FIGURE 8.29 Setting the second key so that when the FKIK switch is set to “0,” the IK controls are hidden.

22. Integrate the FK and IK arms into the existing shoulder controls by doing the following: a. Select the antennae_settings_anim. In the CHANNEL BOX, make sure the FKIK attribute is set to “0” to turn IK off. b. In the OUTLINER, click on the left_antenna_grp, hold down the (shift) key and in the VIEWPORT window, click on the right_antenna_grp, and then [ctrl+g] to group them. Rename the group antennae_jnt_grp. 23. Hide IK so that, during animation, they are not accidentally selected and keyframed. a. Select the, left_antenna_hairHandle1 and right_antenna_hairHandle1 and press (h) to hide them. 24. [File > Save As] Save a copy of your scene file.

334

Chapter 9

Facial Rigging • • • • • • • • • • • • •

Workflow Introduction Blend Shapes as an Approach to Creating Facial Expressions Tools Used for Modeling Blend Shapes Deformation Order Creating Facial Expression Blend Shapes Flipping a Blend Shape Using the Shape Editor Corrective Blend Shapes Joints as an Approach to Creating Facial Expressions Creating a Control System for Facial Expressions Creating the Jaw and Tongue Creating the Eye Controls Summary

Workflow Figure 9.1

Introduction This chapter covers facial expressions and interior head parts, such as the tongue and eyes. The approach in this chapter works for all types of faces on any type of character. In this chapter, we will be looking at the creation of facial expressions using blend shapes and joints or a combination of both. In addition, we will be adding controls for the facial expressions, eyes, jaw, teeth, and tongue (Figures 9.2 and 9.3). Facial expressions are a crucial part of your character’s ability to communicate. Most of what your character feels will be articulated by using facial expressions. Face language is universal. For example, we can instantly tell when someone is worried, happy, or sad based on the position of their eyebrows, cheeks, and mouth, no matter what language is spoken. Depending on the amount of time allotted to preparing your character’s facial expressions, you can create different levels of complexities. For example, you could create a worried face with eyebrows that are pinched together and lowered, and lips that are slightly pursed. Instead of creating 335

An Essential Introduction to Maya Character Rigging

FIGURE 9.1 Facial Rigging Workflow.

336

Facial Rigging

FIGURE 9.2 The many faces of Persephone, by Kenna Hornibrook, 2019.

FIGURE 9.3 A few facial expressions of Persephone in the animated film, Delivery, 2020, modeled by Kenna Hornibrook.

337

An Essential Introduction to Maya Character Rigging a single worried expression, you could separate the eye and eyebrows as a separate shape from the mouth shape. For even further control, you could create asymmetrical poses for the left and right sides, ending up with four separate shapes that, when combined, create the worried expression. Now, you might be thinking to yourself, “Why should I spend time separating these single expressions into four or more partial shapes that need to be combined to achieve a single expression?” Well, the answer is fairly simple. When you create independent pieces, you can assemble those pieces with others to create new facial expressions that were not necessarily planned. The following facial expressions are the ones that I recommend you create. This is a list that I feel gives you the most possibilities with a minimum amount of work. I have divided them into eye, nose, and mouth areas. The eyebrows should be broken into left and right, for greater control. In reality, all of the blend shapes should be broken into left and right shapes. Later in this chapter, I will show you how to mirror a blend shape so that you only need to create one side (Figures 9.4 and 9.5). As with anything, planning is a key component in creating facial expressions. Because of this, it is a good idea to consider what emotions your character will be exhibiting in your animation. This will inform the number and type of blend shapes that need to be created (Figure 9.6). Since we chose to make our film reminiscent of classic cartoons in some scenes, and heartfelt and moving in others, we needed Persephone to be able to clearly express a wide array of emotions. This way, we were best able to sell her character and personality to our audience without the use of dialogue. I created this expression sheet as a guide for our blend shape modeler as an idea of what kind of emotions would likely be most prominent in our film. Noel Isham, facial animation lead for Delivery, 2020

Blend Shapes as an Approach to Creating Facial Expressions There are two common approaches primarily used when creating facial expressions: blend shape driven poses and joint driven poses. In this section, we will be focusing on Blend Shapes. A blend shape is a deformer that changes the shape of one piece of geometry to look like the shape of another. This deformer has also been referred to as a morph because its concept is based upon a metamorphosis. Blend shapes can be used for pretty much any type of morphing. This section will focus on facial expressions. Later in this chapter, we will explore their use in the rest of the body, such as muscle movement and making sure the body geometry bends appropriately in areas, such as elbows and knees – a process known as corrective blend shapes. 338

Facial Rigging

FIGURE 9.4 The first image at the top left is the hero head shape, also known as the base shape. The other eight are the basic minimum needed for facial expressions. This assumes there is no dialogue in your animation. A more complicated setup is required for more complicated scenarios, which include lip curls for pronouncing letters such as b or f. Wireframe on shaded is on the model in the image so that the changes to the model can be seen. Persephone’s bangs are hidden so you can see the eyebrows more clearly. Persephone model by Kenna Hornibrook, 2019.

339

An Essential Introduction to Maya Character Rigging

FIGURE 9.5 Asymmetrical shapes allow for more personality in your character. It is best to create the left and right shape for all blend shapes. Persephone model by Kenna Hornibrook, 2019.

FIGURE 9.6 Planning the facial shapes on the Persephone expression sheet by Noel Isham, 2020.

Once you do understand joints and the skinning process, you can actually use joints to create your blend shapes. This process will be explained later in this chapter, while the skinning process is covered in Chapter 12. Before creating blend shapes, it is extremely important to finalize the geometry and UVs. Your finished geometry is considered your base shape. The base shape is duplicated into the target shapes (as many times as necessary), and each target shape is remodeled (with certain limitations) to reflect the desired facial expressions. The base shape can be all one mesh, but it should be an exact duplicate. Do not delete any of the geometry in 340

Facial Rigging the duplicated copies. Designing your character to have a separate head and neck mesh will help keep the file size lower, but it is not necessary. The creation of a blend shape is actually done by the same techniques used in modeling of pushing and pulling points and edges. Blend shapes work by comparing the positions based on the order of individual points on the surface (points such as vertices or CVs). Each point is numbered so, if you alter the geometry by adding or subtracting points, the blend shape will no longer work, and an error message will be given. For this reason, you must finish the face model before creating blend shapes. The more refined and detailed the facial expression, the more geometry is needed in the area (more isoparms or edges are necessary to provide more CVs or vertices that can be pushed and pulled). However, you can get some basic facial expressions from very simple geometry. NEVER FREEZE TRANSFORMATIONS on blend shapes. You can freeze the base shape BEFORE creating your target shapes. However, once the target shapes are created, DO NOT freeze transformations on the base or target shapes. If you do, the base shape will fly back to the origin when animating.

When modeling your face, it is always best to have geometry that is modeled along the muscle lines of the face. If you did not spend enough time during the modeling process, you might want to devote a little more time now to add adequate geometry before trying to make your facial expressions. It is also important to understand the movement of facial muscles and what effects they have on the face. Be sure to refer to anatomy books for images to study these patterns of muscle placement. The closer you can mimic these patterns, the more accurate your character’s facial expressions will be, providing a level of believability even to the most stylized characters (Figure 9.7).

Tools Used for Modeling Blend Shapes Any tool used to push and pull points during the modeling process can also be used to create blend shapes. This section focuses on the tools that can simplify much of this process. The most commonly used tools for modeling blend shapes are the Move Tool (keyboard shortcut (w)), Rotate Tool (keyboard shortcut (e)), and the Scale Tool (keyboard shortcut (r)). You can use these tools in COMPONENT MODE RMB (right mouse button) over the surface or hit (F8) for pushing and pulling points around, just as you would when modeling, to create the desired shape. The (b) key will toggle soft select on and off, plus you can hold down the (b) key and LMB (left mouse button) click and drag to resize the area of influence and adjust the drop-off interactively. Make sure to rename each target shape as they are created. Renaming the target shape must happen before the blend shape deformer is created, so remembering to do this at this point will save time later (Figure 9.8). 341

An Essential Introduction to Maya Character Rigging

FIGURE 9.7 This polygonal face needs an adequate number of edges to create a more believable series of facial expressions. Understanding facial muscle structure will assist in making these expressions. Following the muscle structure will allow your character to deform properly when facial expressions are created. Persephone model by Kenna Hornibrook, 2019.

FIGURE 9.8 Using the move tool to create a smile with the lips for a target blend shape. Persephone model by Kenna Hornibrook, 2019.

You cannot create a blend shape by scaling or moving on the object level. A change on the object level of the target shape does not affect the base shape. Changes to the geometry must happen on the component level (Figure 9.9). The other useful modeling tools are described as follows. 342

Facial Rigging

FIGURE 9.9 Simply scaling your geometry does not make a deformable object. You must make changes on the component level by selecting the vertices or CVs first, then scale them. Persephone model by Kenna Hornibrook, 2019.

Soft Modification Tool [Deform > Soft Modification Tool □ ] The soft modification tool is a deformer that allows you to click on an area and push and pull points, much like you do with the move tool and soft select as it affects the surrounding points as well as the point initially clicked. The greatest effect is on the area clicked, and the gradual drop-off can be adjusted for greater control. Color feedback is turned on by default, which is visually helpful when adjusting the drop-off rate. You can also select an area of points (vertices or CVs) and then apply the soft modification, which limits the deformers to only those points. Make sure to open the OPTION BOX and turn on Preserve history so that you can modify changes later if necessary. This leaves an “s” visible in the VIEWPORT, which can also be keyframed or deleted (Figures 9.10 and 9.11).

Sculpt Geometry Tool [Surfaces > Sculpt Geometry Tool □ ] This tool is a much more artistic approach to modeling geometry. Using the artisan brush, you can paint on a surface wherever points exist to sculpt it by pushing, pulling, erasing, and smoothing. This tool is much more effective if using a pressure-sensitive display/tablet and pen. However, it is helpful for constructing noses and eye sockets, even with a mouse. This tool also affects polygonal and subdivision surfaces and is helpful for creating additional facial expressions (Figure 9.12). 343

An Essential Introduction to Maya Character Rigging

FIGURE 9.10 The Soft Modification tool can be found in the Modeling (F2), Rigging (F3), and Animation (F4) toolsets under the Deform menu.

FIGURE 9.11 Using the soft modification tool to create an eyebrow raise. Image A: clicking the little blue icon (called the cycling index) allows an interactive adjustment by clicking and dragging on the red ring, then clicking again on the blue icon to turn off the interactive adjustment. Image B: Selecting a set of vertices first ensures that only those vertices are affected by the tool. Image C: Make sure to turn Preserve History ON in the OPTION BOX before using the tool so that you can adjust the position of the Soft Modification deformer later if necessary. Persephone model by Kenna Hornibrook, 2019.

344

Facial Rigging

FIGURE 9.12 The sculpt geometry tool found under the Modeling Menu set (F2) can be used to help shape the cheeks into a puffy shape, which could be needed for blowing a trumpet. Holding down the “b” key and left mouse clicking and dragging will allow an interactive adjustment of the brush size. The Operation: Pull and Smooth can be used to sculpt the desired look. Persephone model by Kenna Hornibrook, 2019.

FIGURE 9.13 The Blend Shape deformer can be found on the Rigging shelf.

Add blend shapes [Deform > Create Blend Shape] Once the target shapes (facial expressions) have been created, you must apply them to your base shape (neutral pose, also known as the hero head) using the blend shape deformer. Holding down the shift key, click select on each target shape(s) then select your Base Shape. (Make sure they have been renamed appropriately, i.e., smile, frown, left_eyebrow_raise, etc., BEFORE applying the deformer.) When defining a blend shape, the base shape MUST be selected last. To test your blend shapes, open the blend shape animation editor. [Window > Animation Editors > Shape Editor] This will open up the shape editor which has a slider for controlling the movement between the shapes. The shape editor also has a built-in menu item that creates a flipped blend shape for creating asymmetrical shapes [Shapes > Flip Target]. You can also access the blend shape by clicking on the input node in the CHANNEL BOX and changing the value of the field. This attribute is accessible through the ATTRIBUTE EDITOR [ctrl+a] as well. It is also a really good idea to set up another control system for you to blend shape sliders, which will be covered later in this chapter so that they can be animated more easily (Figures 9.13–9.16). 345

An Essential Introduction to Maya Character Rigging

FIGURE 9.14 The Blend Shape deformer can be found in the Modeling (F2), Rigging (F3), and Animation (F4) toolsets under the Deform menu.

FIGURE 9.15 Creating the blend shape deformer. Select the target shapes first (highlighted in white in the image), then your base shape last (highlighted in green in the image). [Deform > Create Blend Shape] The target shapes must be named BEFORE applying the deformer. Persephone model by Kenna Hornibrook, 2019.

Make sure to rename each target shape BEFORE applying the deformer. If you relabeled them afterward, Maya would not recognize them, and your target shapes would not affect the base shape. Do NOT delete history on the geometry after the blend shape deformer has been created. Doing so will delete the blend shape deformer. If this happens, you will have to recreate the deformer again. Have I mentioned? NEVER freeze transformations on blend shapes! 346

Facial Rigging

FIGURE 9.16 To test your blend shapes, open the blend shape animation editor [Window > Animation Editors > Shape Editor]. This will open up the Blend shape editor which has a slider for controlling the movement between the shapes. During the animation process, you can keyframe them from this editor as well. You can also access the blend shape by clicking on the input node in the CHANNEL BOX and changing the value of the field. Blend shapes have an attribute range of 0–1.

In-Between Blend Shapes In-Between Blend Shapes [Window > Animation Editors > Shape Editor] [Create > Add In-Between Target] There are times when a blend shape needs an adjustment as it slides between zero and one so that the animation performs properly. For example, many times, the eyelid will clip through the eyeball as it is closing. Traditionally, modelers would need to create several shapes that act as an animation in-between to make sure the arc was correct. Now, with the shape editor, this process is much simpler and more intuitive. 1. Once the blend shape deformer has been applied, open the shape editor [Window > Animation Editors > Shape Editor]. 2. In the SHAPE EDITOR, drag the slider for the target shape to the position where an in-between needs to be created. This value can be anything except for 1. 3. With the target shape Name selected in the SHAPE EDITOR, go to [Create > Add In-Between Target]. 4. Click the Edit button to adjust the base shape to “fix” the in-between target. 5. Click the Edit button to turn off once adjustments are made. 6. Repeat with as many in-betweens needed for the blend shape target to work appropriately (Figure 9.17). 347

An Essential Introduction to Maya Character Rigging

FIGURE 9.17 Creating in-between blend shapes to fix the eyelid penetrating the eyeball. Persephone model by Kenna Hornibrook, 2019.

348

Facial Rigging

FIGURE 9.18 Bake Topology to Targets can be found in the Modeling (F2), Rigging (F3), and Animation (F4) toolsets under the Deform menu.

FIGURE 9.19 Adding additional edge loops around the eyes adds construction history. Persephone model by Kenna Hornibrook, 2019.

Update topology on blend shapes [Deform > Edit Blend Shape > Bake Topology To targets] This tool allows for topology changes to the base shape to be updated on the preexisting target shapes. For example, if more edges needed to be added to create a particular expression, the existing target shapes would need to be applied to the base shape using [Deform > Create Blend Shape] Once the existing target shapes work, the base model can be modified (i.e., more geometry added). Then [Deform > Blend Shape > Bake Topology to Targets] is applied to the base shape. This command will then pass the modifications to the geometry on to the target shapes (Figures 9.18–9.20). 349

An Essential Introduction to Maya Character Rigging

FIGURE 9.20 Bake Topology to Targets updates the target shapes and removing the associated construction history. Persephone model by Kenna Hornibrook, 2019.

Not all changes to the geometry will work reliably. Therefore, make sure to incrementally save your work in case of unpredictable results. Bake topology to targets works best with polygonal geometry.

Deformation Order When working with deformers, especially for use with animation, it is important to know that construction history affects how a particular deformer affects the geometry. Multiple deformers can be applied to the same piece of geometry, and some deformers have to be applied before others, to get the desired result. The order in which deformers are created makes up the deformation order for that object, and Maya evaluates them in that order. Creating deformers out of order is not a problem, as the deformation order can be changed. When creating characters for animation using blend shapes, the blend shape deformer should be the first deformer created, since Maya must evaluate blend shapes before any other deformer. If not, bizarre things happen, like your character’s geometry will fly off of its skeleton. Remember, if you apply blend shapes after skinning, you must change the deformation order so that the blend shapes are evaluated first. To change the deformation order, with the geometry selected, RMB over the base shape geometry and, from the popup marking menu, select [Inputs > All Inputs…]. This opens up a window name List of Input Operations that shows you a list of the deformers currently affecting this surface. Use the MMB (middle mouse button) to click and drag the Blend Shape below any other deformers listed or to the bottom of the list. This reorders the deformers. Maya evaluates the deformers on the list from the bottom up (Figure 9.21). 350

Facial Rigging

FIGURE 9.21 The List of Input Operations that shows the correct order for the skin deformer and blend shape inputs. Display this list by selecting the geometry, RMB over the geometry, and, from the popup marking menu, select [Inputs > All Inputs…]. Persephone model by Kenna Hornibrook, 2019.

Just in case you forgot, NEVER FREEZE TRANSFORMATIONS on blend shapes! Have you figured out how important this is yet? Sometimes, changing the deformation order does not work predictably. For this reason, it is best to create a bridge shape for your blend shapes. A bridge shape acts as, well, a bridge. The hero head is duplicated. The hero head with the blend shapes applied is renamed bridge. The duplicate is renamed as the hero. The bridge is then applied as a target to the hero head and turned on to 1 in the CHANNEL BOX. The blend shapes now travel through the bridge to the hero head. This process and the benefits of using a bridge will be discussed further in Chapter 12 before skinning the character (Figure 9.22).

Creating Facial Expression Blend Shapes Your finished geometry is your Base Shape. (This is the neutral pose for your face) This can be one entire piece of geometry (the whole body) or a separate head. If your head is separated, do NOT combine it (if polygonal) after making your blend shapes, as this will make your blend shape targets not work any longer. It is also best not to parent geometry to geometry. Keep it all separate and group [ctrl+g] if necessary. 351

An Essential Introduction to Maya Character Rigging

FIGURE 9.22 The bridge is applied as a target to the hero head and turned on to 1 in the CHANNEL BOX. The blend shapes now travel through the bridge to the hero head. Persephone model by Kenna Hornibrook, 2019.

1. Duplicate your Base Shape 10 times for the minimum amount of blend shapes needed for basic animation. Remember, you can add more based on the specific needs of your animation. 2. Create your target shapes using the techniques described in this chapter. 3. Move them above or below your base shape. 4. Rename the ten target shapes appropriately as follows: eyebrow target shapes: 1. browScrunch 2. left_browMidDown 3. left_browUp eye target shapes: 1. left_squint 2. left_wink (this may need additional in-between shapes) nose target shapes: 3. left_noseScrunch mouth target shapes: 4. 5. 6. 7. 352

left_narrow (like a kiss) left_wide left_frown left_smile (which includes raising the cheeks) (Figures 9.23–9.26)

Facial Rigging

FIGURE 9.23 The minimum blend shapes recommended for basic animation are shown in this image. Persephone model by Kenna Hornibrook, 2019.

FIGURE 9.24 Seven different brow shapes for additional control. Persephone model by Kenna Hornibrook, 2019.

FIGURE 9.25 Four eye shapes and one nose shape. Persephone model by Kenna Hornibrook, 2019.

353

An Essential Introduction to Maya Character Rigging

FIGURE 9.26 Nine different mouth shapes. Persephone model by Kenna Hornibrook, 2019.

Flipping a Blend Shape Using the Shape Editor This section will show you how to mirror or flip, your blend shapes from one side of your characters face/body to the other, using the Shape Editor. Remember that your geometry should be finalized, and the UVs should be done. There is a MEL script that most people use to mirror blend shapes called abSymMesh.mel created by Brendan Ross back in 2004. This script works on perfectly symmetrical models and is a wonderful tool for speeding up the process; however, Maya now has a built-in tool that does the job in a quicker and simpler process. This section assumes that your mesh is symmetrical and that you have sculpted the blend shapes for either the right or left side. The following expects the left shapes are already created, and we will be creating the right shapes. 1. Select the left target shapes and duplicate them. 2. Rename all your duplicate target shapes to right. The duplicated target shapes look identical to the left ones. 3. Select your left and right target shapes and then shift select your base shape. 4. Create the blend shape deformer [Deform > Create Blend Shape] (Figure 9.27) 354

Facial Rigging

FIGURE 9.27 Creating the blend shape deformer with duplicated left shapes to make the right shapes. Persephone model by Kenna Hornibrook, 2019.

5. Select [Window > Animation Editors > Shape Editor] This will open up the shape editor which has a slider for controlling the movement between the shapes. 6. In the SHAPE EDITOR, click on a right shape Name. In this example, right_ Smile is selected. Turn the Weight/Drivers slider to 1.00. 7. In the SHAPE EDITOR, go to [Shapes > Flip Target]. The target shape itself does not change, but, if you should see the base shape with the flipped target, return the slider to 0. 8. Repeat for each right shape. Select the shape Name, move the slider to 1.0, then go to [Shapes > Flip Target]. (Figure 9.28) Once a target shape is connected to the base shape using the blend shape deformer, changes can be made as necessary to the target shapes. You can update them as needed, and they will automatically update the deformer. To make it easier to make changes, move the target shape right next to your base shape, and make the changes with the slider turned on. This does not work on the flipped right side, so it is better to just fix the left, delete the right from the shape editor by selecting the name and RMB clicking over to select DELETE, duplicate the new fixed left and rename to right, then add a new target for the right side, and finally re-flip the target (Figure 9.29). Once the right side has been flipped, you can create the physical shape by pushing the slider to 1, duplicating the base shape, deleting the old right shape, and renaming the new duplicate. Once that has been completed, delete the blend shape deformer and then recreate the blend shape deformer with the physical left and right shapes.

Corrective Blend Shapes Blend shapes can be used in other applications outside of facial expression. One of the most common uses is to fix geometry deformations that 355

An Essential Introduction to Maya Character Rigging

FIGURE 9.28 Flipping the right_Smile shape so that it deforms the base properly. Persephone model by Kenna Hornibrook, 2019.

FIGURE 9.29 If you push the slider to “1” on the original non-flipped target, you can adjust the target shape and see the changes automatically on the base shape. This image shows an exaggerated change on the ear lobe to illustrate the point. This only works for the original target, not the flipped target. Alternatively, you can click the Edit button to the right of the slider and make changes on the base. Editing this way does not, however, adjust the original target. Persephone model by Kenna Hornibrook, 2019.

otherwise cannot be done with skinning fixes. In Persephone’s case, corrective blend shapes were used to keep the shape in her knees and elbows when bending, along with fixes for her shorts, shirt, and shoes. Set Driven Key can be used to make the blend shape slider automatically move when the skin joints are rotated (Figure 9.30). Each body part should have a bridge shape, and then the corrective blend shapes can continue to be added throughout the animation pipeline by the rigger as additional problem deformations surface (Figures 9.31 and 9.32). 356

Facial Rigging

FIGURE 9.30 Persephone’s left shoe (furthest from the camera) has a corrective blend shape to hold the shape of the boot when she sits on the floor. Compare to the right shoe (closest to camera) that stretches awkwardly without the correction. Persephone model by Kenna Hornibrook, 2019.

FIGURE 9.31 Persephone’s corrective blend shapes. The yellow objects are the bridge shapes. Persephone model by Kenna Hornibrook, 2019.

Joints as an Approach to Creating Facial Expressions An alternative to blend shape driven facial expressions would be using joints to drive the geometry mesh. Joints are actually a common approach, especially for the use in game engine animation. While some game engines do support morph target animations, this process is generally actually a 357

An Essential Introduction to Maya Character Rigging

FIGURE 9.32 Corrective blend shapes can be automatically triggered using Set Driven Key. Notice the red box as Persephone’s knees bend the knee_fix and the shape slider moves. In addition, notice that the yellow boxes show the shorts also have corrective blend shapes that are driven by this movement. Persephone model by Kenna Hornibrook, 2019.

time-consuming process and, therefore, rather expensive. As of the writing of this book, joint driven facial expressions are still the most commonly used process for game animation. It is important to note, however, that there is usually a limit to the number of joints that can be used in a game engine. One game rigger that I spoke with said 26 for the face is their preference. Be sure to confirm that number before proceeding. If the rig is going to be used for film, the number of joints used is not a concern. The key to placing joints in the face is to follow the geometry edge loops, which should also align with the muscle structure. These joints will be skinned, and the skin deformer can only deform the mesh where there are vertex points. Once the joints are placed, named appropriately, and skinned properly (see Chapter 12), a control rig can be set up, which we will be covering in the next section (Figure 9.33). It is important to note here that joints can be used to help create the blend shapes for the facial expressions. Simply place the joints, skin, and paint the skin weights for proper deformation as shown in Chapter 12. Painting the skin weights takes the most time. Then select all of the joints and keyframe them on frame 1 for a starting point. Move the timeline to frame 5 and key the starting pose, repeating for 10, 15, 20, 25, etc. Then move the timeline to frame 6. Move, rotate, and scale the joints into the position for the first facial expression, and set a key on all of the joints. Then move the timeline to frame 11, create the next facial expression, and set a key on all of the joints. 358

Facial Rigging

FIGURE 9.33 Persephone with added facial joints. The character’s left has eyelid joints parented to a parent joint for ease in creating the blinking motion. All of the joints are oriented to the world as individual joints. Persephone model by Kenna Hornibrook, 2019.

Then move the timeline to frame 16, create the next facial expression, and set a key on all of the joints. Do this until all of the facial expressions are created. Then go back to each keyed pose and duplicate the skinned geometry. You will need to unlock the channels on the duplicated mesh, move the shape to the side, and rename to the appropriate facial expression name. Repeat for all of the facial expressions. You can group and hide the skinned joint mesh and joints, and, if additional facial shapes need to be created and added later, doing so becomes a simpler process. The duplicated face shapes are then added to the bridge as a blend shape deformer (Figure 9.34).

Creating a Control System for Facial Expressions Creating a control system for the facial expressions is similar to the simplified control system we created for the foot in Chapter 3 using Set Driven Key. There are more complicated setups available and can be found on the internet, of course; but keeping it simple, when new to rigging, is the best scenario. The simplest system would be to create a single face_anim and add the attributes needed. The section that follows will include the ten minimum facial blend shapes created in this chapter. 1. Open your last saved version of the file. This could be the biped file or the quadruped file from the end of Chapter 8. 2. Continue working in X-ray mode. 3. Create or import a controller for the face by doing the following: a. Go to [Create > NURBS Primitives > Circle] or import a provided control. Rename the curve face_anim. b. Move, scale, and rotate the controller to the right of the head. 359

An Essential Introduction to Maya Character Rigging

FIGURE 9.34 Using the joint driven method to assist in creating facial expression blend shapes. Keyframing the poses provides the rigger the ability to quickly make adjustments or additions. Duplicating the pose and renaming the duplicated mesh to the appropriate blend shape name, then adding them as a blend shape deformer. The images show four examples, but the timeline shows many more were created. Persephone model by Kenna Hornibrook, 2019.

With the face_anim selected, go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. d. With the face_anim selected, shift select the head_anim and press (p) to parent. 4. With the face_anim selected, go to [Modify > Add Attribute] and enter the following: a. Long name: enter “browScrunch” i. Under the Numeric Attribute Properties ii. Minimum: enter “0” iii. Maximum: enter “1” c.

b.

c.

iv. Click Add Long name: enter “leftBrowDownUp” i. Under the Numeric Attribute Properties ii. Minimum: enter “-1” iii. Maximum: enter “1” iv. Click Add Long name: enter “rightBrowDownUp” i. Under the Numeric Attribute Properties ii. Minimum: enter “−1” iii. Maximum: enter “1” iv. Click Add

360

Facial Rigging d. Long name: enter “leftSquint” i. Under the Numeric Attribute Properties ii. Minimum: enter “0” iii. Maximum: enter “1” iv. Click Add e. Long name: enter “rightSquint” i. Under the Numeric Attribute Properties ii. Minimum: enter “0” iii. Maximum: enter “1” iv. Click Add f. Long name: enter “leftWink” i. Under the Numeric Attribute Properties ii. Minimum: enter “0” iii. Maximum: enter “1” iv. Click Add g. Long name: enter “rightWink” i. Under the Numeric Attribute Properties ii. Minimum: enter “0” iii. Maximum: enter “1” iv. Click Add h. Long name: enter “leftNoseScrunch” i. Under the Numeric Attribute Properties ii. Minimum: enter “0” iii. Maximum: enter “1” iv. Click Add i. Long name: enter “rightNoseScrunch” i. Under the Numeric Attribute Properties ii. Minimum: enter “0” iii. Maximum: enter “1” iv. Click Add j. Long name: enter “leftNarrowWide” i. Under the Numeric Attribute Properties ii. Minimum: enter “–1” iii. Maximum: enter “1” iv. Click Add k. Long name: enter “rightNarrowWide” i. Under the Numeric Attribute Properties ii. Minimum: enter “–1” iii. Maximum: enter “1” iv. Click Add l. Long name: enter “leftSmileFrown” i. Under the Numeric Attribute Properties ii. Minimum: enter “–1” iii. Maximum: enter “1” iv. Click Add 361

An Essential Introduction to Maya Character Rigging

FIGURE 9.35 Loading the blendShape1 node into the Set Driven Key window by first selecting the base shape head geo and then clicking on the node in the CHANNEL BOX. Persephone model by Kenna Hornibrook, 2019.

m.

Long name: enter “rightSmileFrown” i. Under the Numeric Attribute Properties ii. Minimum: enter “–1” iii. Maximum: enter “1”

iv. Click Add 5. [File > Save As] Save a copy of your scene file. 6. Make the browScrunch attribute function using Set Driven Key by doing the following: a. With the animation menu set (F4) chosen, in the PERSPECTIVE select the base shape head geometry and, in the CHANNEL BOX under the INPUTS, click on blend shape1, then go to [Key > Set Driven Key > Set…□ ]. This loads the blend shape1 node into the Driven portion of the window (Figure 9.35). b. c. d. e. f.

Select the face_anim and click Load Driver in the Set Driven Key window. In the Driver section of the Set Driven Key window, choose “Brow Scrunch” in the right column. In the Driven section of the Set Driven Key window, click on the blend shape1to select it. In the Driven section of the Set Driven Key window, choose “browScrunch” in the right column. In the Set Driven Key window, click Key . (This sets a default position of the browScrunch blend shape at the browScrunch attribute value of “0.”) (Figure 9.36)

When you are using Set Driven Key, remember to change the Driver first, then the driven, then set a key (you are changing the pose for each keyframe, much like you do in the timeline when animating, but this is an attribute value instead of a time position). 362

Facial Rigging

FIGURE 9.36 Loading the Set Driven Key window and setting the first key so that when the Brow Scrunch attribute is set to “0,” the browScrunch blend shape is in the default (original) position. Persephone model by Kenna Hornibrook, 2019.

FIGURE 9.37 Setting the second key so that when the Brow Scrunch attribute is set to “1,” the browScrunch blend shape is in the active or on position (1 on the slider). Persephone model by Kenna Hornibrook, 2019.

g. h.

i.

j.

k.

In the Driver section of the Set Driven Key window, click on face_anim to select it and in the CHANNEL BOX, change Brow Scrunch to “1.” In the Driven section of the Set Driven Key window, click on blend shape1 to select it and, in the CHANNEL BOX, change browScrunch to “1.” In the Set Driven Key window, click Key . (This sets a position of the browScrunch blend shape to “1” at the browScrunch attribute value of “1.” In the Driver section of the Set Driven Key window, click on face_anim to select it and, in the CHANNEL BOX, change Brow Scrunch back to “0.” (Figure 9.37) In the Driver section of the Set Driven Key window, choose “Left Brow Down Up” in the right column. 363

An Essential Introduction to Maya Character Rigging

FIGURE 9.38 Loading the Set Driven Key window and setting the first key so that when the Left Brow Down Up attribute is set to “0,” the left_brow_Up and left_browMid_Down blend shape is in the default (original) position. Persephone model by Kenna Hornibrook, 2019.

l. m. n.

In the Driven section of the Set Driven Key window, click on the blend shape1to select it. In the Driven section of the Set Driven Key window, choose “left_ brow_Up” and “left_browMid_Down” in the right column. In the Set Driven Key window, click Key . (This sets a default position of the browScrunch blend shape at the browScrunch attribute value of “0.”) (Figure 9.38)

When you are using Set Driven Key, remember to change the Driver first, then the driven, then set a key (you are changing the pose for each keyframe, much like you do in the timeline when animating, but this is an attribute value instead of a time position). o.

p.

q.

r.

364

In the Driver section of the Set Driven Key window, click on face_ anim to select it and, in the CHANNEL BOX, change Left Brow Down Up to “1.” In the Driven section of the Set Driven Key window, click on blend shape1 to select it and, in the CHANNEL BOX, change left_brow_Up to “1.” In the Set Driven Key window, click Key . (This sets a position of the left_brow_Up blend shape to “1” at the Left Brow Down Up attribute value of “1.” (Figure 9.39) In the Driver section of the Set Driven Key window, click on face_ anim to select it and, in the CHANNEL BOX, change Left Brow Down Up to “−1.”

Facial Rigging

FIGURE 9.39 Setting the second key so that when the Left Brow Down Up attribute is set to “1,” the left_brow_Up blend shape is in the active or on position (1 on the slider). Persephone model by Kenna Hornibrook, 2019.

FIGURE 9.40 Setting the second key so that when the Left Brow Down Up attribute is set to “−1,” the left_browMid_Down blend shape is in the active or on position (1 on the slider). Persephone model by Kenna Hornibrook, 2019.

s.

In the Driven section of the Set Driven Key window, click on blend shape1 to select it and in the CHANNEL BOX, change left_browMid_ Down to “1.”

In the Set Driven Key window, click Key . (This sets a position of the left_brow_Up blend shape to “1” at the Left Brow Down Up attribute value of “−1.” (Figure 9.40) 7. Repeat for the remaining face_anim attributes and blend shapes. 8. [File > Save As] Save a copy of your scene file (Figure 9.41). t.

365

An Essential Introduction to Maya Character Rigging

FIGURE 9.41 A more complicated face_anim can be used for more interactive control. Advanced techniques use MEL expressions to control the sliders, but Set Driven Keys work also using the translation of the circle as the Driver instead of a custom attribute. This example is included with the files for this book.

Creating the Jaw and Tongue If you plan on opening your character’s mouth for any facial expressions or plan to have your character speak, you will need to have teeth and tongue geometry. Some prefer to use blend shapes to control the tongue, teeth, and jaw opening. This setup uses joints for those, but you can create blend shapes if you prefer. 1. Open your last saved version of the file. 2. Continue working in X-ray mode. 3. Create the jaw joint hierarchy by doing the following: a. Select [Skeleton > Create Joints]. b. In the SIDE orthographic view, place two joints for the jaw as follows: a. Click the first joint at the base of the ear where the jaw hinges and the second joint in the chin. Hit enter to finish the chain. 4. Rename these joints jaw_skin_jnt and chin_skin_jnt. 5. Save your scene file (Figure 9.42).

Creating a Control System for the Jaw 1. Continue working or open your last saved version of the file. 2. Create IK for the jaw by doing the following: a. Go to [Skeleton > Create IK Handle □ ] and set the following: Click

Reset Tool then under IK Handle Settings change the following: 366

Facial Rigging

FIGURE 9.42 Placing and renaming the jaw and chin joints, adding an ikHandle and control for the jaw. Persephone model by Kenna Hornibrook, 2019.

b. c.

Choose: “Single-Chain Solver”; Place a CHECKMARK in the box next to Sticky. First, click on the jaw_skin_jnt and then on the chin_skin_jnt. In the OUTLINER, double-click on ikHandle1 and rename it jaw_ ikHandle. (This chain will control the ankle movement.) Rename effector1 to jaw_ikHandle_effector.

d. Then click Mirror to execute the command. 3. Create or import controllers for creating a control system for the Clavicle by doing the following: a. Go to [Create > NURBS Primitives > Circle □ ]. i. change Normal axis: Z b. c. d. e. f.

ii. then click Create Rename the curve jaw_anim. With jaw_anim selected, shift select chin_anim_jnt and go to [Modify > Match Transformation > Match Translation]. In COMPONENT MODE (F8), move, scale, and rotate the points of the controller around the base of the chin. With the jaw_anim selected, go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. Parent the jaw_ikHandle to the jaw_anim. (In the OUTLINER, click on the jaw_ikHandle, hold down the ctrl (PC) or ⌘ (MAC) key and click on the jaw_anim, and then press (p) on the keyboard. (This makes the jaw_ikHandle child to the jaw_anim control curve.) 367

An Essential Introduction to Maya Character Rigging In the OUTLINER, select jaw_skin_jnt, hold down the (ctrl PC or ⌘ MAC) key and jaw_anim, then the and then head_anim press (p) to parent. h. Select the jaw_skin_jnt joint and jaw_ikHandle chain and press (h) to display. 4. [File > Save As] Save a copy of your scene file. g.

Creating the Tongue Ribbon 1. Continue working or open your last saved version of the file. 2. Continue working in X-ray mode. 3. Hide the head and teeth geometry by selecting them in the OUTLINER and pressing (h). 4. Create a Ribbon Spine by doing the following: a. Go to [Create > Nurbs Primitives > Plane □ ] i. change the Axis to Y-axis ii. change Length to 5 iii. change Surface degree to 1 Linear iv. change V patches to 5 v. click Create (Figure 9.43) Scale and move into geometry starting at the base of the tongue to the tip of the tongue (you can reshape the plane on the CV level to match the shape of the geometry from the side or front if it is not straight, but the width of the plane should remain equal). c. With the NURBS plane selected, [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. d. Rename the NURBS plane to tongue_ribbon_plane. 5. [File > Save As] Save the file before continuing to the next step. a. Choose the FX Menu Set (F5) or use your Hotbox (spacebar). b. With the tongue_ribbon_plane selected, go to [nHair > Create Hair □ ]. i. change the Output to NURBS curves ii. change U count to 1 b.

FIGURE 9.43 Creating a NURBS plane for the tongue ribbon. Persephone model by Kenna Hornibrook, 2019.

368

Facial Rigging iii. change V count to 5 c.

d. e. f.

g. h. i. j. k. l. m. n. o. p. q.

iv. click Create Hairs (Figure 9.44) In the OUTLINER, i. delete hairSystem1 ii. delete hairSystem1OutputCurves iii. delete nucleus1 Shift left mouse button click on the [+] on the left of hairSystem1Follicles group. Select and delete all curve group nodes. Rename hair follicles starting at the back of the tongue in the VIEWPORT (should be top of the list in the OUTLINER) to tongueFollicle1, tongueFollicle2, tongueFollicle3, tongueFollicle4, and tongueFollicle5. Rename hairSystem1Follicles group to tongue_follicles_grp. (Figure 9.45) Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). Go to [Skeleton > Create Joints] Use default settings in the OPTION BOX. Click Reset Tool . create a joint by clicking once onto the grid (It does not matter where you click on the grid). Rename the joint to tongue_skin_jnt_1. [ctrl+d] 4 times to duplicate this joint (for a total of 5 joints). Select all of the joints and [ctrl+g] to group. Rename the group tongue_skin_jnt_grp. shift left mouse button click on the [+] on the left of tongue_skin_ jnt_grp to expand (Figure 9.46) In the OUTLINER, shift left mouse button click on the [+] on the left of tongue_follicles_grp to expand. Select tongueSpineFollicle1 (the leader, or target) and (ctrl PC or ⌘ MAC) left. i. mouse button click on tongue_skin_jnt_1 (the follower, or object) ii. Go to [Constrain > Parent □ ] iii. UNCHECK Maintain offset: □

FIGURE 9.44 Creating nHair for the ribbon tongue. Persephone model by Kenna Hornibrook, 2019.

369

An Essential Introduction to Maya Character Rigging

FIGURE 9.45 Deleting objects and groups that are not needed and renaming the follicles and follicles group.

FIGURE 9.46 Creating and renaming five tongue_skin joints. Persephone model by Kenna Hornibrook, 2019.

iv. click Add (this moves the joint to the position of the follicle) r. Repeat for tongueFollicle2, tongueFollicle3, tongueFollicle4, tongueFollicle5, and their corresponding joints. Once you have the Follicle and Joint selected, you can press the (g) key to repeat the last command to create the parent constraint. 6. [File > Save As] Save a copy of your scene file (Figure 9.47). 370

Facial Rigging

FIGURE 9.47 Parent constraining the joints (followers) to the follicles (leaders). Remember to select the leader (follicle) first then select the corresponding joint. Once the first constraint has been created, pressing (g) after selecting a new leader and a new follower will repeat the parent constraint command. Persephone model by Kenna Hornibrook, 2019.

Creating a Control System for the Ribbon 1. Continue working or open your last saved version of the file. 2. Create control joints for the Ribbon Spine by doing the following: a. In the OUTLINER or VIEWPORT, select the tongue_skin_jnt_1, tongue_skin_jnt_3, and tongue_skin_jnt_5 (back and front joints). b. [ctrl+d] once to duplicate these joints. c. [shift+p] to unparent the duplicate joints. d. In the CHANNEL BOX with the duplicated joints still selected, change the radius for the three duplicated joints to .8 or larger so you can see these joints larger than the others. e. In the OUTLINER, shift LMB click on the [+] on the left of each joint and delete the duplicated constraints. f. Rename the joints tongue_tip_anim_jnt, tongue_middle_anim_ jnt, and tongue_base_anim_jnt. g. In the ATTRIBUTE EDITOR [ctrl+a], change rotate order for all three joints to ZYX (Figure 9.48) h. Choose the Modeling Menu Set (F2) or use your Hotbox (spacebar). i. Select the tongue_ribbon_plane. j. Go to [Surfaces > Rebuild □ ]. i. change Direction: ◉V ii. change Number of U spans: 1 iii. change Number of V spans: 5 iv. click Rebuild k. l.

This creates a more fluid spline. Choose the Rigging Menu Set (F3) or use your Hotbox (spacebar). In the OUTLINER, select tongue_tip_anim_jnt, tongue_middle_ anim_jnt and tongue_base_anim_jnt. 371

An Essential Introduction to Maya Character Rigging

FIGURE 9.48 Creating joints that will control the tongue spine and changing their Rotation Order to ZYX in the ATTRIBUTE EDITOR [ctrl+a]. Persephone model by Kenna Hornibrook, 2019.

FIGURE 9.49 Using a deformer to control the NURBS plane by skinning the control joints to the plane. Persephone model by Kenna Hornibrook, 2019.

m. n.

In the OUTLINER, (ctrl PC or ⌘ MAC) left mouse button click tongue_ribbon_plane. Go to [Skin > Bind Skin □ ]. i. change Bind to: to Selected joints ii. change Max influences: to 3

iii. click Bind Skin (Figure 9.49) In the OUTLINER, select tongue_ribbon_plane. Go to [Skin > Paint Skin Weights □ ]. (Paint skin weights will smooth out influence drop-off for each joint.) q. Under Influences, select tongue_middle_anim_jnt. i. change Paint operation: ◉Smooth ii. click the Flood button twice 3. [File > Save As] Save a copy of your scene file (Figure 9.50). o. p.

372

Facial Rigging

FIGURE 9.50 Using Paint Skin Weights tool to smooth the drop-off of the joint influence. Persephone model by Kenna Hornibrook, 2019.

4. Create controllers for the control system for the tongue by doing the following: a. Go to [Create > NURBS Primitives > Circle □ ]. i. change Normal axis: Z b. c. d. e. f. g. h. i.

j.

ii. then click Create Rename the curve tongue_base_anim. With tongue_base_anim selected, shift select tongue_base_anim_ jnt and go to [Modify > Match Transformation > Match Translation]. Move, scale, and rotate the controller around the base of the tongue. With the tongue_base_anim selected, go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. In the ATTRIBUTE EDITOR [ctrl+a], change the rotation order for the tongue_base_anim to “ZYX.” Repeat a-f to create the tongue_middle_anim and tongue_tip_ anim. (Figure 9.51) Parent constrain each control joint to the controllers. In the OUTLINER, select tongue_base_anim (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on tongue_base_anim_jnt (the follower, or object). Go to [Constrain > Parent □ ]. i. CHECK Maintain offset:

k.

ii. click Add Go to [Constrain > Scale □ ] i. CHECK Maintain offset:

ii. click Add Repeat for tongue_middle_anim and tongue_tip_anim and their corresponding joints. Speed up the process by selecting the _anim first, then (ctrl PC or ⌘ MAC) LMB click the _jnt second, and press (g) to repeat the last command. 5. [File > Save As] Save a copy of your scene file. l.

373

An Essential Introduction to Maya Character Rigging

FIGURE 9.51 Creating and positioning NURBS curve shapes for the tongue controllers. Be sure the pivot location of each controller is in the correct place. Persephone model by Kenna Hornibrook, 2019.

Cleanup for the Tongue Ribbon 1. Clean up each controller in the table below by doing the following:

b. c. d. u.

CONTROL NAME

LOCK (select in CHANNEL BOX, RMB)

tongue_base_anim, tongue_middle_ anim, and tongue_tip_anim

scaleX, scaleY, scaleZ, and visibility

Select the tongue_tip_anim then tongue_middle_anim, and press (p) to parent. Select the tongue_middle_anim then tongue_base_anim, and press (p) to parent. Select the tongue_base_anim and, in the VIEWPORT, [ctrl+g] to group, then rename the group tongue_grp. Parent constrain the tongue_grp to the head_anim controller. i. In the OUTLINER, select head_anim (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on tongue_grp (the follower, or object) ii. Go to [Constrain > Parent □ ] iii. CHECK Maintain offset:

iv. click Add Select tongue_tip_anim_jnt, tongue_middle_anim_jnt and tongue_base_anim_jnt and [ctrl+g] to group, and rename it tongue_anim_jnt_grp. w. Select tongue_skin_jnt_grp and tongue_anim_jnt_grp and [ctrl+g] to group, and rename it tongue_jnt_grp. x. Select tongue_ribbon_plane, tongue_follicles_grp, and [ctrl+g] to group, and rename it tongue_doNotTouch_grp. v.

374

Facial Rigging

FIGURE 9.52 Placing, renaming, and mirroring the eye joint. Persephone model by Kenna Hornibrook, 2019.

Select the tongue_doNotTouch_grp, and in the ATTRIBUTE EDITOR [ctrl+a] UNCHECK □ Inherits Transform z. Hide follicles and joints so that during the animation process, they are not accidentally selected and keyframed: i. In the OUTLINER, shift LMB click on the [+] on the left of the tongue_doNotTouch_grp, select the tongue_follicles_grp, and press (h) to hide it. ii. In the OUTLINER, shift LMB click on the [+] on the left of the tongue_jnt_grp, select the tongue_anim_jnt_grp and press (h) to hide it. aa. Select tongue_jnt_grp and tongue_doNotTouch_grp, then shift select spine_grp and press (p) to parent. bb. Select tongue_grp, then shift select spine_grp, and press (p) to parent. cc. Upper teeth get parented (or parent constrained) to the head and bottom teeth get parented (or parent constrained) to the jaw. 2. [File > Save As] Save a copy of your scene file. y.

Creating the Eye Controls 1. Open your last saved version of the file. 2. Continue working in X-ray mode. 3. Create the eye control by doing the following: a. Select [Skeleton > Create Joints]. b. In the SIDE orthographic view, place one joint in the center of the eye geometry. c. In the FRONT orthographic view, move the joint into the center of the left eye geometry. 4. Rename the joint left_eye_jnt. 5. Mirror the left_eye_jnt to create the right eye by selecting the left_eye_ jnt, then go to [Skeleton > Mirror Joints] change Mirror across to YZ and under Replacement names for duplicated joints enter Search for left_ and Replace with right_. (Figure 9.52) 375

An Essential Introduction to Maya Character Rigging 6. Create or import controllers for a control system for the Eyes by doing the following: a. Go to [Create > NURBS Primitives > Circle □ ]. i. change Normal axis: Z ii. then click Create b. Rename the curve left_eye_anim. c. With left_eye_anim selected, shift select left_eye_jnt and go to [Modify > Match Transformation > Match Translation]. d. Move, scale the controller in front of the left eye. e. With the left_eye_anim selected, [ctrl+d] and left_eye_anim the duplicate right_eye_anim. f. Move the right_eye_anim controller in front of the right eye. g. Select both the left_eye_anim and right_eye_anim and go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. h. Aim constrain the left_eye_jnt to the left_eye_anim controller. i. In the OUTLINER, select left_eye_anim (the leader, or target) and (ctrl PC or ⌘ MAC) LMB click on left_eye_jnt (the follower, or object) ii. Go to [Constrain > Aim □ ] iii. UNCHECK Maintain offset: □

iv. Change Aim Vector: 0.0000 0.0000 1.0000

v. click Add i. Repeat Aim constraint for right eye. j. Go to [Create > NURBS Primitives > Circle □ ]. i. change Normal axis: Z ii. then click Create k. Rename the curve eye_anim. l. Move and scale the controller around the left_eye_anim and right_ eye_anim and go to [Modify > Freeze Transformations] and [Edit > Delete by Type > History]. m. In the OUTLINER, select the left_eye_anim and right_eye_anim, hold down the (ctrl PC or ⌘ MAC) key, then click the eye_anim press (p) to parent. n. Select the eye_anim, left_eye_jnt, and right_eye_jnt then the and head_anim and press (h) to display. o. Select the left_eye geometry, and group it [ctrl+g], then rename the group left_eye_geo_grp. p. Select the right_eye geometry and group it [ctrl+g], then rename the group right_eye_geo_grp. q. Select the left_eye_jnt, shift select the left_eye_geo_grp and go to [Constrain > Parent] then [Constrain > Scale]. r. Select the right_eye_jnt, shift select the right_eye_geo_grp, and go to [Constrain > Parent] then [Constrain > Scale]. 7. [File > Save As] Save a copy of your scene file.

376

Facial Rigging

FIGURE 9.53 Creating the eye controllers. Persephone model by Kenna Hornibrook, 2019.

Cleanup for the Eye Control Clean up each controller in the table below by doing the following (Figure 9.53): CONTROL NAME left_eye_anim, right_eye_anim, and eye_anim

LOCK (select in CHANNEL BOX, RMB) scaleX, scaleY, scaleZ, and visibility

Summary 9.1 9.2

9.3 9.4 9.5 9.6 9.7 9.8 9.9

Facial expressions are crucial for your character's ability to communicate. It is best to divide each facial expression into parts that create the expression. Separating each expression into eyes, nose, and mouth areas provides a palette of options that can be combined while animating. There are two basic approaches for creating facial expressions: blend shapes and joint driven. Blend shapes are a deformer that change geometry shapes using a morph process. Once you understand joints and skinning, you can use joints to create the blend shapes. Before creating blend shapes, it is extremely important to finalize the UVs and geometry. You can get basic facial expressions from very simple geometry. Never freeze transformations on blend shapes! Research muscle structure for facial expressions as an aid to creating believable motion.

377

An Essential Introduction to Maya Character Rigging 9.10 The same tools used for modeling your character can be used to create the blend shapes. 9.11 All geometry changes must be on the component level when creating blend shapes. 9.12 The most common tools for modeling blend shapes are the following: the move tool (to move components, such as points), the soft modification tool, the lattice deformer, and the sculpt geometry tool. 9.13 Be sure to label each target shape as they are created. 9.14 Deleting history on target shapes is unnecessary. 9.15 To create a blend shape, first select all target shapes, then shift select the base shape. 9.16 Do not delete history on that base shape geometry after the blend shape (the former) has been created. Doing so will delete the blend shape deformer. 9.17 If there is a need for more geometry while creating the blend shapes, it is possible to add more divisions to the base shape and then update the topology to blend shapes that have already been applied. However, this process is not always reliable. Therefore, be sure to finalize your geometry before modeling your blend shapes. 9.18 As always, there is a certain workflow in order of operations that exists. Blend shapes should be applied before the skinning (the former) is applied. However, there is a list of input operations that allows the change in deformation order, if necessary.

378

ChaptER 10

Props • • • • • •

Workflow Introduction Deformers Creating a Simple Basic Prop Rig Creating a Prop Rig with Squash and Stretch Summary

Workflow Figure 10.1

FIGURE 10.1 Prop Rigging Workflow.

379

An Essential Introduction to Maya Character Rigging

Introduction A prop, by definition, is a shortened version of “theatrical property” and is an item used by an actor on the stage or screen during their performance. In animation, props are considered to be any object a character will interact with (pick up or move in some way), but it can also include anything that needs to deform or be animated with a move, rotation, or scale. This can include parts of the environment (such as a pendulum of a clock that swings) or part of a character’s costume (such as a button or a hat). If you followed the section for rigging Persephone’s hat in Chapter 8, then you have already created the basic prop rig (except for getting the geometry to move along with it, which will be covered in Chapter 11). Props are not part of a character’s rig; however, if a character interacts with a prop, it essentially becomes connected to that character. Because of this, it is important that they are rigged in a way so that a prop can be constrained to the character to move along with their hand or head (or whatever), but at the same time, the prop can still be animated. Characters themselves can also become a prop if they are going to ride on or in something, like the back of a horse or inside of a spaceship. The techniques you have used to rig the character up to this point can also be used in prop rigging. In addition, other deformers, such as nonlinear deformers, can be used (which we will take a look at in this chapter). Most props can be rigged using deformers: the ribbon technique (covered in Chapter 4), stretchy IKspline ( spline IK covered in Chapter 4 and stretchy covered in Chapter 11), Set Driven Key (covered in Chapter 3), single chain or rotate plane IK joint chains (covered in Chapter 3), and controllers. The use of expressions can help create animations on props over time, such as a random shake of an alarm clock or a propeller spinning over time, but that is a technique and topic slated for another book. Each prop you will encounter will need to be analyzed for what motion is needed and a plan developed, then rigged, tested, and adjusted. Before rigging, the geometry should be finalized for the object, and the UVs should be mapped. Your finished geometry should be scaled properly, with history deleted, and transformations are frozen at the origin. This chapter will explain how to rig a basic prop with the addition of a few set driven key attributes. In addition, we will cover how to rig a prop using a stretchy spline IK. Please realize there are unlimited ways of rigging an unlimited number of props. Try using the different techniques shown in this book and apply what you have learned. Some props are pretty complicated and will take several attempts until a satisfactory result is achieved.

Deformers A deformation is a distortion or change in the shape of an object. A deformer is a tool that is used to change the shape of an object and can be used during modeling to speed up the process of all types of geometry. Deformers can 380

Props also be used during the rigging process and animation. We have already talked about the use of Blend Shape deformers, soft modification, and clusters. This section will look at additional deformers that can help the rigger add functionality to a prop. It is important to note that geometry responds differently to applied deformers when the transformations have not been frozen. If the deformer is not producing the desired effects, delete the deformer, freeze transformations, and apply the deformer again to the geometry. Additionally, if the deformer is still not working predictably, construction history should be deleted.

Nonlinear Deformers [Deform > Nonlinear] There are six different nonlinear deformers available in Maya: Bend, Flare, Sine, Squash, Twist, and Wave. For prop rigging, Bend and Squash are the two that are used most often, so those are the ones that are covered in this chapter. Feel free to explore the others and search the help files for more information. To apply a deformer, select the geometry and go to [Deform > Nonlinear] then choose the desired deformer. The Bend deformer is used for objects that, well, bend or curl. Flower stems, petals, or paper scrolls that need to roll up are a few examples. By clicking on the bend1 input of the bend1Handle in the CHANNEL BOX, one can adjust the Curvature, Low Bound, and High Bound to achieve the desired look. The bend1Handle can also be translated, rotated, and scaled to affect the geometry shape. These elements can be keyframed, but it is awkward for an animator to go into the CHANNEL BOX and difficult to keep it all organized. Because of this, riggers will create a curve controller and then connect both the transform attributes and any added attributes that are then connected using the CONNECTION EDITOR or SET DRIVEN KEY to the attributes on the bend1Handle and bend1 input node. It is also important to note that the geometry itself can be translated, rotated, and scaled, resulting in even more deformation changes (Figure 10.2).

FIGURE 10.2 A bend deformer added to a sphere that has been scaled AFTER the deformer was applied to the sphere. Adjusting the curvature, then moving and, finally, rotating the bend1Handle produces different results.

381

An Essential Introduction to Maya Character Rigging

FIGURE 10.3 A squash deformer added to a sphere. Adjusting the Factor negatively and positively gives the object squash and stretch.

The Squash deformer is used for objects that need to squash and stretch. This can pretty much be anything in animation. By clicking on the squash1 input of the squash1Handle in the CHANNEL BOX, one can adjust the Factor, Expand, Max Expand Pos, Start Smoothness, End Smoothness, Low Bound, and High Bound to achieve the desired look. The squash1Handle can also be translated, rotated, and scaled to affect the geometry shape. Again, riggers will create a curve controller and then connect both the transform attributes and any added attributes that are then connected using the CONNECTION EDITOR or SET DRIVEN KEY to the attributes on the squash1Handle and squash1 input node. The geometry itself can be translated, rotated, and scaled, resulting in even more deformation changes (Figure 10.3).

Creating a Simple Basic Prop Rig For each prop, create its own Maya project folder. Once fully rigged and finished, it can then be placed in your animation project’s asset folder. This section is a very simple and basic rig for an object that needs to be picked up by a character. 1. Set up your work environment by doing the following: a. Once Maya is open, go to [File > Set Project…] and browse to the b. 382

project folder. Click Set . Go to [File > Open] and select your model file. (Alternatively, you could use File Referencing if the model is not finished being

Props

FIGURE 10.4 A NURBS circle is placed where the object would pivot. In this case, the character would hold the flashlight around the handle, so this is where the pivot location should be positioned. Flashlight model created by Genesis Rivera, 2019.

2. 3. 4. 5.

6.

7.

8.

detailed or UV’d. See Chapter 1 for more details on creating a File Reference.) c. In the TOP, FRONT, SIDE, and PERSPECTIVE view panels go to [Shading > X-Ray]. d. In the OUTLINER, make sure that your geometry is organized into one node, select that node and then create a new display layer by clicking the button on the far right. Change the layer to R for reference in the third column so that you are unable to select the geometry by mistake when working. First, create [Create > NURBS Primitives > Circle]. In the CHANNEL BOX, rename the circle prop_anim (replace the word prop with the name of your prop, in this case, flashlight_anim). In the PERSPECTIVE view, select the move tool by pressing (w) and reposition the curve around the object. Make sure the controller pivot is in the correct place for the pivot on your object. Think about how this object would rotate and place the pivot there. If the object has multiple pivot points, adding controllers with different pivots can be done – much like in the foot_anim hierarchy in Chapter 3 (Figure 10.4). Use the scale tool by pressing (r) and resize the circle if necessary. (This control should be scaled large enough so that it is OUTSIDE of the object’s geometry for easy selection.) With the flashlight_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1). Change the rotation order if necessary for the flashlight_anim by doing the following: a. With the flashlight_anim selected, open the ATTRIBUTE EDITOR by pressing [ctrl+a]. 383

An Essential Introduction to Maya Character Rigging

FIGURE 10.5 The finished basic prop rig. Flashlight model created by Genesis Rivera, 2019.

Select the flashlight_anim tab. Under Transform Attributes set the following: Rotate order: choose “whatever rotation order is needed,” in this case, YZX. (Consider the direction the object would rotate when being used.) 9. Select flashlight_anim [ctrl+g] to group, then rename the group flashlight_anim_const_grp (this group is to hold a constraint so that the flashlight_anim can still be keyframed if constrained to a character’s hand during animation). 10. Parent the flashlight geometry to the flashlight_anim (or create a parent constraint with the flashlight_anim as the leader and the geometry group as the follower). 11. [File > Save As] Save a copy of your scene file (Figure 10.5). b. c.

This finishes the basic rig. Any object that simply needs to be picked up by your character or animated for move, rotation, or scale can now be done so. Any constraint should be added to the flashlight_anim_const_grp so that the flashlight_anim can still be keyframed, assuming you want the object to follow a leader and move at the same time. The next steps will add a Set Driven Key attribute to control the button push of the flashlight. 1. First, add custom attributes to the flashlight_anim by doing the following: a. Select the flashlight_anim, then go to [Modify > Add Attribute], and enter the following: 384

Props

FIGURE 10.6 Adding a custom attribute, Button Push, to the flashlight_anim using [Modify > Add Attribute]. Flashlight model created by Genesis

Rivera, 2019.

i. ii. iii. iv.

Long name: enter “buttonPush” Under the Numeric Attribute Properties Minimum: enter “0” Maximum: enter “5”

v. Click Add (Figure 10.6) 2. Make the buttonPush attribute function using Set Driven Key: a. With the animation menu set (F4) chosen, in the OUTLINER, select the button geometry then go to [Key > Set Driven Key > Set…□ ]. This loads the selection into the Driven portion of the window. b. c. d. e. f. g.

h.

Select the flashlight_anim and click Load Driver in the Set Driven Key window. In the Driver section of the Set Driven Key window, choose “Button Push” in the right column. In the Driven section of the Set Driven Key window, click on the button geometry to select it. In the Driven section of the Set Driven Key window, choose “Translate Z” in the right column. In the Set Driven Key window, click Key (this sets a default position of the button at the buttonPush value of “0”). (Figure 10.7) In the Driver section of the Set Driven Key window, click on flashlight_anim to select it and, in the CHANNEL BOX, change buttonPush to “5.” In the Driven section of the Set Driven Key window, click on the button geometry to select it and, using the move tool (w), translate the button geometry on the Z-axis to the desired position.

In the Set Driven Key window, click Key . (This sets the key for the first pose of the buttonPush: the button is “pushed” in as if the flashlight was being turned on.) 12. [File > Save As] Save a copy of your scene file (Figure 10.8). i.

385

An Essential Introduction to Maya Character Rigging

FIGURE 10.7 Loading the Set Driven Key window and setting the first key so that when the buttonPush attribute is set to “0,” the button geometry is in the default (original) position. Flashlight model created by Genesis Rivera, 2019.

FIGURE 10.8 Setting the second key so that when the buttonPush is set to “5,” the button geometry is “pushed” in as if turned on. Flashlight model created by Genesis Rivera, 2019.

Pretty much anything can be controlled in Maya using Set Driven Key. You could even have the buttonPush attribute also control a digital light by keyframing the intensity of the light from 0 to the desired value for the brightness of the flashlight. Create a spotlight and parent to the geometry. Simply go into the ATTRIBUTE EDITOR and RMB (right mouse 386

Props button) click and hold over the name of the attribute. A pop-up marking menu appears, and Set Driven Key is an option to choose which then loads that attribute as the Driven. Keyframe the buttonPush at 0 and 5 the corresponding spotLight intensity of 0 and a value chosen for the intensity of the light on.

Creating a Prop Rig with Squash and Stretch 1. Set up your work environment by doing the following: a. Once Maya is open, go to [File > Set Project…] and browse to the project folder. Click Set . b. Go to [File > Open] and select your model file. (Alternatively, you could use File Referencing if the model is not finished being detailed or UV’d. See Chapter 1 for more details on creating a File Reference.) c. In the TOP, FRONT, SIDE, and PERSPECTIVE view panels, go to [Shading > X-Ray]. d. In the OUTLINER, make sure that your geometry is organized into one node, select that node, and then create a new display layer by clicking the button on the far right. Change the layer to R for reference in the third column so that you are unable to select the geometry by mistake when working. 2. Follow the first section of this chapter to create the basic prop rig and add custom attributes to control any features. You will substitute “elevator” for whatever you named your prop (Figure 10.9). 3. [File > Save As] Save a copy of your scene file. 4. Add squash and stretch by doing the following: a. Select elevator_geo (if you have multiple pieces of geometry such as this elevator, you can group it all and then select the group node). b. Go to [Deform > Nonlinear > squash]. c. Rename the squash1Handle to elevator_squash.

If you change the factor attribute on the squash deformer, you can see that the elevator will squash and stretch while maintaining volume; by changing the translation, you can make the elevator squash and stretch from the bottom or top, while rotating will change the angle. d. Create [Create > NURBS Primitives > Circle]. e. In the CHANNEL BOX, rename the circle squash_anim. f. In the PERSPECTIVE view, select the move tool (w) and reposition the curve around the base or center of the object. g. Use the scale tool (r) and resize the circle if necessary. (This control should be scaled large enough that it is OUTSIDE of the object’s geometry for easier selection.) h. With the squash_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1). 387

An Essential Introduction to Maya Character Rigging

FIGURE 10.9 This example is an elevator from the short film, Delivery. The team wanted the elevator to stretch as it plummeted through the air to “Heck” and squash when it landed in a thump. Elevator model created by Victoria Jones, 2019.

Change the rotation order if necessary for the squash_anim: i. With the squash_anim selected, open the ATTRIBUTE EDITOR [ctrl+a]. ii. Select the squash_anim tab. iii. Under Transform Attributes set the following: Rotate order: choose “whatever rotation order is needed,” in this case XZY. j. Select squash_anim in the OUTLINER, [Modify > Add attribute] and enter the Long name: squashStretch. k. Go to [Window > General Editors > Connection Editor]. l. Select elevator_squash, then in the CHANNEL BOX select the squash1 node (under INPUTS) and click Reload Right in the connection editor. m. Scroll down on the left to click select squashStretch, then click select factor on the right. n. Select elevator_squash, then (ctrl+d PC or ⌘+d MAC) click in the OUTLINER or shift-select in the VIEWPORT squash_anim, and press (p) to parent. o. Select squash_anim, [ctrl+g] to group, and rename the group squash_grp. p. Select the elevator_anim, (ctrl+d PC or ⌘+d MAC) click in the OUTLINER to select squash_grp, then [Constrain > Point], and [Constrain > Scale]. 5. [File > Save As] Save a copy of your scene file (Figures 10.10 and 10.11). i.

388

Props

FIGURE 10.10 Adding the Squash deformer, a custom attribute, and using the connection editor to control the squash1Handle.factor. Elevator model created by Victoria Jones, 2019.

FIGURE 10.11 You may want to add a minimum/maximum on this attribute, but this can be done after rigging so that you can see what range is needed using [Modify > Edit Attribute]. This example uses −.2 minimum and .2 maximum. Elevator model created by Victoria Jones, 2019.

Cleanup for the Prop Rig 1. Clean up each controller in the table below by doing the following: CONTROL NAME

LOCK (select in CHANNEL BOX, RMB)

squash_anim

scaleX, scaleY, scaleZ, and visibility

2. Select elevator_squash and control+h to hide it. 3. Select elevator_geo or, if you have separate pieces of geometry, select each one at a time and do the following: 4. In the ATTRIBUTE EDITOR (ctrl+a), click on the elevator_geo tab, open the Display dropdown arrow, scroll down and open the Drawing Overrides dropdown arrow, place a

in Enable Overrides, and change 389

An Essential Introduction to Maya Character Rigging

FIGURE 10.12 Limiting the ability to select geometry in the VIEWPORT (left image) and changing the display color of a NURBS controller (right image).

FIGURE 10.13 The finished elevator rig hierarchy. Elevator model created by Victoria Jones, 2019.

Display Type to Reference (this prevents the ability to select the geometry of the elevator in the VIEWPORT, more discussion on this will be found in Chapter 11) 5. Select elevator_anim and change the color by changing the Color Index to yellow in the Drawing Overrides dropdown of the ATTRIBUTE EDITOR [ctrl+a] under the Display section. (This helps organize the controllers by color and helps the animator work more efficiently; more discussion on this is in Chapter 11) (Figure 10.12) 6. Select the squash_grp, then (ctrl+d PC or ⌘+d MAC) click in the OUTLINER, the elevator_anim_const_grp and press (p) to parent. 7. [File > Save As] Save a copy of your scene file (Figure 10.13). 390

Props

Summary 10.1 A prop, by definition, is a shortened version of “theatrical property” and is an item used by an actor on the stage or screen during their performance. 10.2 In animation, props are considered to be any object a character will interact with (pick up or move in some way), but it can also include anything that needs to deform or be animated with a move, rotation, or scale. 10.3 Characters themselves can also become a prop if they are going to ride on or in something, like the back of a horse or inside of a spaceship. 10.4 The techniques you have used to rig the character up to this point can also be used in prop rigging. 10.5 Each prop you will encounter will need to be analyzed for what motion is needed, a plan developed, then rigged, tested, and adjusted. 10.6 There are unlimited ways of rigging an unlimited number of props. 10.7 A deformation is a distortion or change in the shape of an object. 10.8 There are six different nonlinear deformers available in Maya: Bend, Flare, Sine, Squash, Twist, and Wave. 10.9 The Bend deformer is used for objects that bend or curl. 10.10 The Squash deformer is used for objects that need to squash and stretch.

391

Chapter 11

Wrapping Up the Setup • • • • • • • • •

Former Student Spotlight: Tim Keebler Workflow Introduction Cleaning Up the Scene File for Animation Preparing the Scene File for Skinning Creating a Bridge Shape Creating Additional Tools for Animation Adding Squash and Stretch to the ikSpline Spine Summary

Former Student Spotlight: Tim Keebler Rigging is very technical, meticulous, and tedious work. So if that is the type of mindset you have and that's where you flourish, then it’s the right place for you! I know for myself I struggled for quite some time when I went to school trying to figure out exactly what I was good at. I was never really that good at traditional art, so when I took Cheryl’s Intro Rigging course, I absolutely loved it! From then on, I knew that’s what I wanted to do. If I were to give any advice to a beginning rigger starting out, it would have to be to “take things slow.” It is a tremendous amount of work in the beginning because it really is so entirely different from most other professions within the animation world. You have constraints (which tripped me up forever), FK/IK systems, set driven keys, and many other methods of how you can rig something. Patience is huge. You will most likely find yourself repeating steps many, many times in the beginning. That is okay! Another word of advice that I would give out is to “start learning how to script as soon as you can!” Especially in your own time. Python! Python! Python! I cannot recommend learning this scripting language enough! It can potentially be the difference between getting or not getting a job. One of the things I love most about rigging though, aside from its technical aspects, is where you sit in the production pipeline. We are in a very unique position where we get to work with almost the entire department. We work very closely with concept and modeling artists, animators, technical artists, FX artists, and more. It is such a blast! I hope you continue down the path of rigging! You will not regret it! Good luck!

393

An Essential Introduction to Maya Character Rigging Biography Tim Keebler graduated from the University of Central Florida in 2016 with a BFA in Character Animation. He has been a technical animator at Hi-Rez Studios for over three years.

Workflow Figure 11.1

Introduction Before this control rig can be considered complete, there must be some time spent in cleaning up the scene file. Making sure that everything is labeled properly is an ideal place to start, but it is also important to group or organize all of the elements into one node so that bringing the character into an environment ready for animation is a neat and tidy process. It is rather frustrating for a production team to have a messy scene file. There are times that you will need to resize, move, or rotate your character into place before you begin animating. Creating a master control can make this simple, as well as organize your objects in the scene file. Now that you are finishing up the character rig, go back over the controls and make sure they are optimized for animation. Hide any channels that the animator should not keyframe if you have not done so already. In most cases, this includes the scale and visibility channels. For some, it will include rotations or translations. It is also a good idea to lock those channels so that the animator cannot alter the locked and hidden channels. Any channel that has color should only be hidden so that they are not keyframed (colored channels are controlled by constraints, set driven keys, expressions, etc.). If you have been following along, step-by-step, this should already be done. It is a good idea to double-check your work. The process of hiding a channel is quite simple. Simply go to the CHANNEL BOX, click on the attribute name that you would wish to hide, hold down the RMB (right mouse button) on top of those words, and choose either “lock and hide selected” or “hide selected.” If a mistake is made while hiding attributes, it is a bit more difficult to bring them back to the CHANNEL BOX. This does sometimes happen and is usually noticed during animation tests of the rig. To make an attribute visible again, you must go to [Window > General Editors > Channel Control] and do the following: Click on the Keyable tab. Select the attributes in the middle column that you want to place into the Keyable list, and click on the > button on the bottom left. This moves them into the Non Locked list, and the grey boxes should also disappear in the CHANNEL BOX. 396

Wrapping Up the Setup

FIGURE 11.4 Making a locked attribute Non Locked (unlocked) again in the Channel Control window.

Repeat this for every controller attribute that needs to be fixed (unlocked and unhidden) (Figure 11.4). IK handles and IK spline curves should also be hidden so that the animator does not accidentally keyframe them during the animation process. This is also an easy process. Simply go to [Select > All By Type > IK Handles] and press (h) to hide them. Again, if you have been following step-by-step, this should already be done. If you need to unhide them, repeating this process will do so. The last part of the actual character setup is adding the skin deformer so that, when the joints move and rotate, the geometry moves and deforms with it. Since there are multiple joint chains for the spine and the arms, it is unnecessary to add all of the joints to the skin deformer. In fact, this would actually create more problems because the multiple joints would share the deformation and stretch the geometry between them, creating undesirable results. To avoid this and expedite the skinning process, which is covered in Chapter 12, we will create a set that contains only the joints needed to deform the geometry when skinned. It is also helpful to add some control to speed up the process of animating. There are several techniques that help the keyframing process. The two most common are the use of character sets and MEL shelf buttons to select controllers. While character sets seems to be a popular tool, I personally do not like the way it works. The character set is simply a defined set of attributes, which when the keyframe is placed on one controller, all of the other attributes that are part of the set are also keyframed. To create a character set, you simply select all of the controllers and go to the menu item [Character > Create Character Set]. 397

An Essential Introduction to Maya Character Rigging While this approach sounds wonderful, I have found that it does cause major confusion with beginning animators. Because Maya is setting keyframes on many attributes, the amount of keyframed data can easily become overwhelming. So my advice to a beginning animator is to make sure you are completely aware of all keyframes being set and not let the computer do the work for you. This brings me to my preferred method: creating Mel script buttons on a shelf that allows for ease in the selection of all of the controllers or a specified area of controllers. A button that allows you to select all of the controllers gives you the ability to key the entire character on your key poses. Additional buttons that specify all of the controls in an arm, a leg, or the spine provide the animator a method of keying specific areas quickly. This process is used for setting all full keys, and then I recommend using Autokey for adding in-betweens and spacing keys.

Cleaning Up the Scene File for Animation 1. Open your last saved version of your character file from Chapter 9. This could be a biped or quadruped. 2. Continue working in X-ray mode. 3. First, create [Create > NURBS Primitives > Circle] or import the paw controllers. If importing the controllers, make sure to delete the namespace [Windows > General Editors > Namespace Editor]. 4. In the CHANNEL BOX, rename the control all_anim. (You can replace the word all with your character’s name or a shortened version of the name. For example, my character’s name is Percy, so I would rename the circle Percy_anim or PE_anim). 5. In the PERSPECTIVE view, select the move tool by pressing (w) and reposition the curve around the feet of the character. 6. In the PERSPECTIVE view, select the scale tool by pressing (r) and scale the curve around the feet of the character. (This control should be scaled large enough that it is OUTSIDE of the character’s feet to make it easy to select.) 7. With the all_anim selected, go to [Modify > Freeze Transformations] (to return both translate and rotate values to 0 and the scale values to 1.). (Figure 11.5) 8. Integrate the legs into the existing spine controls by doing the following: a. In the OUTLINER, select the leg_jnt_grp, hold down the (shift) key, and, in the PERSPECTIVE window, click the hip_spine_anim, and press (p) to parent. 9. Parent all rig controls and geometry to the all_anim by doing the following: a. In the OUTLINER, select all of the top nodes of the rig and geometry first, then the all_anim, and press the (p) key to parent. (This makes the all_anim parent to all of the other selections.) 10. Group [ctrl+g] the all_anim with the pivot at the origin (default settings). 398

Wrapping Up the Setup

FIGURE 11.5 Creating and positioning the all_anim around the base of the character. The pivot should remain at the origin. Persephone model by Kenna Hornibrook, 2019.

11. Rename this group all_anim_const_grp (this group is used when the character needs to be constrained an object, such as a spaceship or car). 12. [File > Save As] Save a copy of your scene file (Figure 11.6).

Preparing the Scene File for Skinning 1. Open your last saved version of the file or continue working. 2. Continue working in X-ray mode. 3. Prepare the character for skinning. Create a set of joints by doing the following: a. Go to [Edit > Select all by Type > Joints]. b. Go to [Create > Sets > Quick Select Sets…]. i. Enter Quick Select Set name: skinJoints ii. Click “OK” (Figure 11.7) 4. Remove any non-skinnable joints from this set of joints by doing the following: a. In the Input Box of the Status Line, use Select by Name and search for the following: *anim_jnt (the * is a wildcard search term. Placing the * before and/or after the text allows any object with those letters to be selected). b. c. d.

In the OUTLINER, shift-click + next to skinJoints to open the selection. RMB click and hold over one of the highlighted joints and choose “remove from current set.” Repeat for *FK*, and *IK* (Figure 11.8). 399

An Essential Introduction to Maya Character Rigging

FIGURE 11.6 The OUTLINER hierarchy, after parenting everything to the all_anim and creating a constraint group. Be sure to parent to the all_anim, NOT the all_anim_const_grp.

FIGURE 11.7 Creating a Quick Select Set for the skinnable joints. Persephone model by Kenna Hornibrook, 2019.

Not every joint is a skinnable joint; therefore, we must remove any anim joints, as well as FK and IK joints from the quick select set. 5. Turn IK off in the arms before binding. This is important since IK rotates the joints immediately. Because the arm position can be altered by the IK solver, it is best to key FK position in the arms for skinning. In the PERSPECTIVE window, click on the left_FKIK_switch, hold down the (shift) key, and click the right_FKIK_switch. In the CHANNEL BOX, make sure the FKIK attribute is set to “0” to turn IK off. 6. [File > Save As] Save a copy of your scene file (Figure 11.9). 400

Wrapping Up the Setup

FIGURE 11.8 Using the wildcard select by name to remove unwanted joints from the skin set. Persephone model by Kenna Hornibrook, 2019.

FIGURE 11.9 Ensuring IK is turned off in the arms for skinning. Persephone model by Kenna Hornibrook, 2019.

Creating a Bridge Shape 1. Open your last saved version of the file or continue working. 2. Continue working in X-ray mode. 3. Select the Hero head geometry and duplicate it [ctrl+d]. This is the base shape head we applied the blend shapes to earlier in Chapter 9. 4. Move the Hero head geometry above the duplicated head geometry. 5. Rename the Hero head as bridge_head_geo and rename the duplicated head as hero_head_geo. 6. In the PERSPECTIVE viewport, select bridge_head_geo, then shift-select hero_head_geo, and go to [Deform > Create Blend Shape]. 7. In the CHANNEL BOX, with the hero head selected, turn the INPUTS blendShape2 bridge_head_geo value to “1.” (Figure 11.10) 401

An Essential Introduction to Maya Character Rigging

FIGURE 11.10 Creating a bridge shape by duplicating the head geo and applying a Blend Shape deformer. Persephone model by Kenna Hornibrook, 2019.

FIGURE 11.11 Creating a new shelf.

Creating Additional Tools for Animation 1. Open your last saved version of the file or continue working. 2. Continue working in X-ray mode. 3. Create selection MEL buttons by doing the following: a. In the shelf area, click on the gear icon and choose “New Shelf.” Enter new shelf name: your character’s name (Figure 11.11) b. Go to [Select > All by Type > NURBS Curves]. c. Go to [Create > Sets > Quick Select Sets…]. i. Enter Quick Select Set name: all ii. Click “Add to Shelf” 402

Wrapping Up the Setup

FIGURE 11.12 Creating a quick select shelf button and removing any anim controls that are not needed in the set.

FIGURE 11.13 Creating a customized selection shelf with buttons.

d.

Remove the all_anim from this set of joints by doing the following:

i. In the OUTLINER, click + next to all to open the selection. ii. Select the all_anim iii. RMB click and hold over the all_anim and choose remove from current set e. Remove any anim controls that are being used with Set Driven Key in the foot (if you simplified the foot controls) from this set of joints by doing the following: i. In the OUTLINER, click + next to all to open the selection. ii. Select the left and right ikBall_pivot_anim, ikToe_pivot_anim, ikToe_wiggle_anim, and ikHeel_pivot_anim. iii. RMB click and hold over one of the highlighted selections and choose remove from current set. (Figure 11.12) 4. These steps can be repeated for different sections of the body controls. For example, the FK and IK controls, along with the FKIK switch, can be made into a shelf button for each arm. The spine, neck, and head controls should be a button also, as well as each IK arm and elbow, in addition to the IK foot and knee. Just remember to remove any controls that might have set driven key controlling the selection set. 5. [File > Save As] Save a copy of your scene file (Figure 11.13). 403

An Essential Introduction to Maya Character Rigging

FIGURE 11.14 Creating customized shelf icons in Photoshop from a resized screen capture and .4 Arial type font.

As an added challenge (which will impress all of your friends), you can create your own shelf icons in a graphics software package such as Photoshop. The images must be pixel dimensions of 32 X 32 pixels and must be saved as a bitmap image (BMP). These are then placed in the icons folder of your Maya preferences. In the shelf editor to [Windows > Settings/Preferences > Shelf Editor], click on Change Image to browse to the icons folder in your preferences (Figures 11.14 and 11.15). If you are not sure where the icons are stored on your computer, go to [Windows > Settings/Preferences > Preferences] and click the save button. Then go to [Windows > General Editors > Script Editor]. The script editor will give you the path to the directory where your preference folder is located.

Adding Squash and Stretch to the ikSpline Spine If you are working with a spline IK spine, you may want to add squash and stretch. There are two ways of doing this. The first way is using an expression (math using MEL programming language – don’t worry, I’m going to give you the code), and the second way is using utility nodes (packaged modules of 404

Wrapping Up the Setup

FIGURE 11.15 Using the shelf editor [Windows > Settings/Preferences > Shelf Editor] to change the icon image. Be sure to delete the icon label if you added your own text to the image, or if you do not want the text there.

programming code that can be edited). This section will show both ways of achieving the same result.

Expression Solution for Squash and Stretch 1. Open your last saved version of the ikSpline file from Chapter 11. 2. Continue working in X-ray mode. For this to work, your objects MUST BE LABELED according to the naming convention that preceded in Chapter 4. To double-check your objects, use the following guide: For the IK spine joints: IK_back_spine_skin_jnt_1 IK_back_spine_skin_jnt_2 IK_back_spine_skin_jnt_3 IK_back_spine_skin_jnt_4 405

An Essential Introduction to Maya Character Rigging

IK_back_spine_skin_jnt_5 IK_back_spine_skin_jnt_6 IK_back_spine_skin_jnt_7 IK_back_spine_skin_jnt_8 For the IK spline curve: back_spine_curve For the top node controller of the hierarchy in the OUTLINER: all_anim

1. In the OUTLINER, select the back_spine_curve. 2. Type the following command into the script editor, or MEL line, and press enter on the keyboard: arclen -ch 1; (Figure 11.16) 3. With the back_spine_curve selected, in the ATTRIBUTE EDITOR [ctrl+a], click on the curveInfo1 tab. It is the last tab to the far right. Click the white arrow until you see the tab. Make a note of the number shown for Arc Length attribute. 4. [File > Save As] Save your scene file (Figure 11.17). 5. Copy the following into the [Windows > Animation Editors > Expression Editor], replace the numbers highlighted below with your arcLength value noted earlier and the highlighted word “all_anim” with the name of your character’s all_anim created earlier in this chapter, then press Create . 6. Change the Expression Name to Back SquashStretch Expression and click

Edit . 7. [File > Save As] Save your scene file.

FIGURE 11.16 Typing arclen -ch 1 in the MEL line. This turns on a node that displays the curve information, adding a tab in the ATTRIBUTE EDITOR [ctrl+a] called curveInfo1.

406

Wrapping Up the Setup

// Back SquashStretch Expression // // Determine the scale of the back // The original length of the back is: 5.296 $scale = (curveInfo1.arcLength / 5.296) / all_anim.scaleX; // get the inverse scale so we can maintain // volume $invScale = 1/sqrt($scale); // Now apply that scale to the scaleX attributes // on the joints. ScaleX is the attribute // that points down the curve. IK_back_spine_skin_jnt_1.scaleX = $scale; IK_back_spine_skin_jnt_2.scaleX = $scale; IK_back_spine_skin_jnt_3.scaleX = $scale; IK_back_spine_skin_jnt_4.scaleX = $scale; IK_back_spine_skin_jnt_5.scaleX = $scale; IK_back_spine_skin_jnt_6.scaleX = $scale; IK_back_spine_skin_jnt_7.scaleX = $scale; IK_back_spine_skin_jnt_8.scaleX = $scale; // Inverse scale for volume preservation IK_back_spine_skin_jnt_1.scaleY = $invScale; IK_back_spine_skin_jnt_1.scaleZ = $invScale; IK_back_spine_skin_jnt_2.scaleY = pow($invScale, 1.25); IK_back_spine_skin_jnt_2.scaleZ = pow($invScale, 1.25); IK_back_spine_skin_jnt_3.scaleY = pow($invScale, 1.5); IK_back_spine_skin_jnt_3.scaleZ = pow($invScale, 1.5); IK_back_spine_skin_jnt_4.scaleY = pow($invScale, 2); IK_back_spine_skin_jnt_4.scaleZ = pow($invScale, 2); IK_back_spine_skin_jnt_5.scaleY = pow($invScale, 1.75); IK_back_spine_skin_jnt_5.scaleZ = pow($invScale, 1.75); IK_back_spine_skin_jnt_6.scaleY = pow($invScale, 1.5); IK_back_spine_skin_jnt_6.scaleZ = pow($invScale, 1.5); IK_back_spine_skin_jnt_7.scaleY = pow($invScale, 1.25); IK_back_spine_skin_jnt_7.scaleZ = pow($invScale, 1.25); IK_back_spine_skin_jnt_8.scaleY = $invScale; IK_back_spine_skin_jnt_8.scaleZ = $invScale; 407

An Essential Introduction to Maya Character Rigging

FIGURE 11.17 The curveInfo1 tab in the ATTRIBUTE EDITOR [ctrl+a] is found on the back_spine_curve to the far right. Make a note of the Arc Length value.

This completes the stretchy spline IK. In a nutshell, the code is making the joints scale when the length of the curve is changed. In addition, it is keeping the volume by scaling the joints in different amounts based on the location of the joint in the hierarchy. Once you have skinned your character and you move the controllers around, you should see the joints drive the geometry to squash and stretch. You can delete the section of volume preservation from the expression above if you only want to have stretch if using this setup for a prop. If you want to learn more about expressions and MEL scripting, there are several good books out there, and you can find them listed in the resource appendix (Figure 11.18).

Utility Node Solution for Squash and Stretch Alternatively, you can use Utility Nodes instead of Expressions to create the same effect. The benefit is that Utility Nodes are faster and, therefore, cheaper. Expressions need to be calculated every frame, including during rendering; Utility Nodes do not. Use the following method as an alternative to expressions, not as an addition. 1. 2. 3. 4.

Open your last saved version of the ikSpline file from Chapter 11. Continue working in X-ray mode. In the OUTLINER, select the back_spine_curve. Type the following command into the script editor, or MEL, line and press enter on the keyboard: arclen -ch 1. 5. With the back_spine_curve selected, in the ATTRIBUTE EDITOR [ctrl+a], click on the curveInfo1 tab. It is the last tab to the far right. Click the white arrow until you see the tab. Make a note of the number shown for Arc Length attribute. Mine is 5.296. 408

Wrapping Up the Setup

FIGURE 11.18 Typing the expression into the Expression Editor. If you type this in a document, you can save the document so that in the future you can simply copy and paste.

6. With nothing selected, go to [Windows > Node Editor] to open the Node Editor. Clear the graph if necessary by pressing on the Clear Graph button. 7. With your cursor over the graph area, press (tab) and type: Multip (then select Multiply Divide to create a multiplyDivide1 node (Figure 11.19). 8. Select the multiplyDivide1 node and in the ATTRIBUTE EDITOR [ctrl+a] set Operation to Divide . 9. Select the back_spine_curve and in the CHANNEL BOX under OUTPUTS click on curveInfo1. 409

An Essential Introduction to Maya Character Rigging

FIGURE 11.19 Opening the Node Editor, clearing the graph, and creating a multiplyDivide1 node.

FIGURE 11.20 Changing the multiplyDivide1 Operation to Divide in the ATTRIBUTE EDITOR [ctrl+a] and loading curveInfo1 into the node editor graph.

10. Add to the graph by pressing on the Add selected nodes to graph button (Figure 11.20). 11. Click on the white dot on the right side of the curveInfo1 node, click on ArcLength, drag the yellow connection line to the white dot on the left of the multiplyDivide1 node, click Input1, then drag the mouse over arrow > to then click on Input1X (Figure 11.21). 12. Double click the multiplyDivide1 node to open the ATTRIBUTE EDITOR [ctrl+a]. 13. Set the value of the multiplyDivide1.input2X to the current value of curveInfo1.arcLength (this is the number you noted prior, but it should match the Input 1 value. 410

Wrapping Up the Setup

FIGURE 11.21 Connecting the ArcLength of curveInfo1 to Input1X of multiplyDivide1 in the node editor graph.

14. With your cursor over the graph area, press (tab) and type: Multip (then select Multiply Divide to create a multiplyDivide2 node. 15. Select the multiplyDivide2 node and in the ATTRIBUTE EDITOR [ctrl+a] set Operation to Divide . 16. Click on the white dot on the right side of the multiplyDivide1, click Output, then drag the mouse over arrow > to then click on OutputX, drag the yellow connection line to the white dot on the left of the multiplyDivide2 node, click Input1, then drag the mouse over arrow > to then click on Input1X (Figure 11.22). 17. Select the all_anim and add to the graph by pressing on the Add selected nodes to graph button. 18. Click on the white dot on the right side of the all_anim, click Scale, then drag the mouse over arrow > to then click on Scale, and drag the yellow connection line to the green dot on the left of the multiplyDivide2 node. It automatically connects to input2. 19. Clear the graph by pressing the Clear Graph button. 20. In the OUTLINER, select IK_back_spine_skin_jnt_1, IK_back_spine_skin_ jnt_2, IK_back_spine_skin_jnt_3, IK_back_spine_skin_jnt_4, IK_back_ spine_skin_jnt_5, IK_back_spine_skin_jnt_6, IK_back_spine_skin_jnt_7, and IK_back_spine_skin_jnt_8, and press on the Add selected nodes to graph button. 21. In the Input Box of the Status Line, use Select by Name and search for the following: multiplyDivide2 22. Press on the Add selected nodes to graph button. 23. Click on the white dot on the right side of the multiplyDivide2, click Output, then drag the mouse over arrow > to then click on OutputX, drag the yellow connection line to the white dot on the left of the IK_back_ spine_skin_jnt_1, click Scale, then drag the mouse over arrow > to then click on Scale X. 411

An Essential Introduction to Maya Character Rigging

FIGURE 11.22 Connecting the OutputX of multiplyDivide1 to Input1X of multiplyDivide2 in the node editor graph.

FIGURE 11.23 Connecting the Output X of the multiplyDivide2 node to the Input Scale X of the IK back spine joints.

24. Click on the green dot on the right side of the multiplyDivide2, click Other… then click on the + next to output in the Output Selection window. Click on OutputX, drag the yellow connection line to the white dot on the left of the IK_back_spine_skin_jnt_12, click Scale, then drag the mouse over arrow > to then click on Scale X. 25. Repeat for IK_back_spine_skin_jnt_3, IK_back_spine_skin_jnt_4, IK_ back_spine_skin_jnt_5, IK_back_spine_skin_jnt_6, IK_back_spine_skin_ jnt_7, and IK_back_spine_skin_jnt_8 (Figure 11.23) 412

Wrapping Up the Setup

Summary 11.1 After all the controls have been created, it is important to take time to organize a scene file so that it can be used efficiently during production. 11.2 Make sure that everything is labeled properly in the scene file. 11.3 Create a master control that provides the ability to move, rotate, and scale the character prior to animation. 11.4 Go through every control and optimize them for animation by hiding and locking (if necessary) any attributes that will not be animated. 11.5 You can also go through the scene file and hide any objects that are not necessary, such as IK handles, so that they are not keyframed accidentally during the animation process. 11.6 Creating selection buttons for the controllers is one way to speed up the animation workflow and can be easily done and customized. This provides the animator a quick way of selecting groups of controllers that need to be keyframed. 11.7 Character sets can be used for the same purpose, but can cause more work with the amount of keyframe data that is created. 11.8 A bridge shape is helpful to keep Blend Shapes working properly.

413

Chapter 12

Skinning Your Character • • • • • • • • • • • • •

Former Student Spotlight: Tonya Payne Workflow Introduction Skinning Tools in Maya Skinning a Character Adding Influence Joints Fixing Skin Weights Using the Component Editor Fixing Skin Weights Using Smooth Skin Weights Fixing Skin Weights Using Paint Skin Weights Mirroring Skin Weights Creating a geoLevel Switch for Polygonal Characters Final Cleanup of the Scene File Summary

Former Student Spotlight: Tonya Payne The skinning process is probably the easiest part of character rigging. This statement comes with some caveats. If you are new to character rigging and have managed to muddle through your first rig and are now confronted with skinning the character to your newly created rig, you may think that the first sentence there is crazy. Skinning, as a process, can be very formulaic, with some deviations from the formula sometimes required depending upon the complexity of the character. Low poly characters will obviously be the easiest to skin simply because they have the fewest vertices. After skinning a few dozen characters, you will get a feel for what the weights should be on most characters. Now for the caveats. If your character has bad edge looping, no amount of weight adjustment or painting will fix bad design. One of the worst places for bad edge looping is on the shoulders. Edge looping should follow muscle structure. The algorithm that calculates the initial skinning favors this flow of edges. The closer your topology is to actual musculature, the fewer weights you may have to tweak. Practice makes perfect. If you expect perfection on your first character, you are probably setting unrealistic goals for yourself. My first character was atrocious. And that is being gracious. 415

An Essential Introduction to Maya Character Rigging

FIGURE 12.1 Mr. Hyde – Bat rig by Tonya Payne.

Poor design can cause skin weight headaches. Characters that have multiple layers that overlap will have to be weighted vertex by vertex. An example of this was on a bat character that I rigged when I was in school. When the wings folded up, the geometry became a tangled mess. We overcame this by adjusting the skin weights a pair at a time. We made sure that each set of vertices on the front and back of the wings had identical weight values. This made the vertices deform exactly the same way when the wing moved, thereby eliminating the interpenetration of geometry. This process is sped up if your software package allows you to copy and paste the skin weight values themselves from one vertex to another. Skinning and painting weights can be a little tedious, but it is not a difficult process if you have been careful and planned ahead in the design and creation of your character.

Biography Tonya Payne graduated from the Savannah College of Art and Design with a BFA in Animation. She worked for several years in Corpus Christi, TX for BreakAway Games on a project for the Office of Naval Research on the campus of Texas A&M – Corpus Christi. She has also taught animation and character rigging at Northwest Vista College and the University of the Incarnate Word in San Antonio, TX. She currently lives in the Texas Hill Country and works remotely for BreakAway Games as a contract animator (Figure 12.1).

Workflow Figure 12.2

Introduction The final step in character creation is the process of skinning. Skinning is another type of deformer, which means it is a tool that changes the shape of the geometry. This deformer takes points from the geometry and assigns 416

Skinning Your Character

FIGURE 12.2 Skinning Workflow.

417

An Essential Introduction to Maya Character Rigging them to one or more joints in the skeleton so that when the joints translate, rotate, or scale, the geometry bends and moves with them. Skinning can become a tedious and arduous task. Many times, problems that arise during the skinning process are caused by problematic or inadequate geometry or inaccurate joint placement. This is why it is a good idea to test bind after joint placement. If problems exist in the geometry or joint placement, it is good to see it at that point during the workflow and much easier to make changes. Now that you understand the rigging process, you can place all of the joints as a single hierarchy, bind the skin, and rotate the joints to check placement before continuing with the rigging process. Maya has several tools to help make the skinning process less painful and more productive. Knowing what tools to use, and in which order to use them, also speeds up and refines the skinning process. This chapter will explain this workflow.

Skinning Tools in Maya Creating the Skin Deformer [Skin > Bind Skin □ ] When skinning your character, first select your joints by going to [Select > Quick Select Sets… > skinJoints] then (ctrl PC or ⌘ MAC) click on the geometry to be skinned in the OUTLINER, or shift-select the geometry in the VIEWPORT. This would include anything that deforms, but not everything. For example, Percy’s hat is a prop that will be part of a rig and not part of the skin deformer, along with her eyes, earrings, and teeth. Those objects do not deform. Then go to [Skin > Bind Skin □ ]. For best results, the bind skin options will need to be adjusted before the deformer has been applied. I have found that some of these options work fine in the default setting for testing the skin binding. However, for the final bind, it is best to adjust some of the options in this window. Most of the default suggestions work great. The following settings are the changes that I suggest: Bind to: Selected Joints (This will only bind the geometry to the joints you select, which is important when you have multiple joint chains in each area, like the arms and spine. This is why we created the Quick Select Set: skinJoints). Max influences: 3 (This means that no more than three joints will share the influence over a single point. I find that more than three usually creates too many problems for beginners) (Figure 12.3). If you have a more powerful computer, and a cleanly modeled character, you can use the Geodesic Voxel bind method instead of Closest distance. This is my preferred binding method. This method uses voxels (three-dimensional pixels, or cubes, that fill the volume), and then the deformer’s influence weights are calculated based on the distance between the voxels and the joints within the geometry mesh. For this method to work effectively, you 418

Skinning Your Character

FIGURE 12.3 The Bind Skin Options box with suggested settings for Closest Distance binding.

must have placed all joints inside of the mesh, and you must also make sure the normals are pointing outward for this method to work. It is calculation heavy, but the results are worth the time if you have a strong enough computer. If using this bind method, utilize the default settings, but change the following: Bind to: Selected Joints Bind method: Geodesic Voxel Resolution: 512 (the higher the resolution, the longer it takes to process, the better the result.) (Figure 12.4) Make sure that the only history on your geometry is your blend shape input. Geometry construction history can cause all types of problems during the skinning process. [Edit > Delete by Type > Non-deformer History]

Adding influences [Skin > Edit Influences > Add Influence] Once the skin deformer has been applied, there may be areas that pinch when rotating the joint (such as the elbows and knees). First, make sure that there is adequate geometry in the area. If a lack of geometry is not a problem, additional joints may be added as influences to help keep the shape from 419

An Essential Introduction to Maya Character Rigging

FIGURE 12.4 The Bind Skin Options box with suggested settings for Geodesic Voxel binding.

FIGURE 12.5 The Add Influence Options. Adding a joint in the bicep holds the shape better when the elbow bends. Persephone model by Kenna Hornibrook, 2019.

pinching when the joint bends the geometry. Influence objects can also be used to create muscle bulges and breathing motion. If adding influences to a Geodesic Voxel bind, it is best to Unbind the skin, add the influences to the skinJoints Quick Select Set, then rebind (Figure 12.5).

The Component Editor [Window > General Editors > Component Editor] Once the skin deformer has been applied, there will probably be joints that pull on areas of geometry where those joints clearly should have no influence. For example, when moving the left foot control, it will probably pull on the geometry of the right foot, leg, or, in Percy’s case, inner thigh 420

Skinning Your Character

FIGURE 12.6 The component editor showing several vertices and which joints affect them. Removing the left leg influence from the right leg geometry is easy in the component editor. Simply select the values and type “0.” You can select them all at once by going to the top, selecting the first value, then scrolling down to the bottom and shift-selecting the last value, then type “0.” Persephone model by Kenna Hornibrook, 2019.

section of her shorts. This is actually a pretty simple problem to fix when using the component editor. Simply select the CVs or vertices in question and open the component editor. Choose the Smooth Skins tab. Here you will see a list of the selected points in the left-hand side of the window, and across the top, you will see all of the joints that affect those points. The values total 1 for full influence. LMB (left mouse button) click and shift-select all of the values for the joints in question. This highlights the values in the columns for the joints where you can type “0” to remove the influence. On occasion, the column may not disappear because the value may be “1,” indicating that joint has full influence on a point. If this happens, simply type “1” on a joint that should influence the point. (For example, if the left toe joint is affecting a point in the right foot toe area, type “1” on the right toe joint column for that point. You would first need to go to [Options > Hide Zero Columns] to UNCHECK and show all joints.) (Figure 12.6)

Smooth Skin Weights [Skin > Smooth Skin Weights] Once the skin deformer is applied, there will probably be areas that push in or pull out of the geometry when the joints are rotated. The most common areas where this occurs are under the arm in the armpit region, around the 421

An Essential Introduction to Maya Character Rigging

FIGURE 12.7 After smooth binding, you may have undesirable deformation under the armpit (left). After applying the smooth skin weights, the results are much better (right). Persephone model by Kenna Hornibrook, 2019.

waist in the pelvic area, and at the top of the thigh. To fix this problem, select the vertices in question and go to [Skin > Smooth Skin Weights]. This feature does a pretty good job of fixing those faulty areas. You can also try [Skin > Hammer Skin Weights]. Any remaining issues can be adjusted with the Paint Skin Weights Tool (Figure 12.7).

Paint weights – [Skin > Edit Smooth Skin > Paint Skin Weights Tool] Additional skin deformation problems can be addressed interactively with this tool. The approach to use is adding influence to joints (that should be affecting a particular area) as opposed to removing influence from joints that affect the area incorrectly. Replacing with a “0” influence will only give Maya the ability to assign the weight wherever it feels like, which means a vertex in the shoulder could be assigned to the foot. I have seen this happen before, so it is best to add that point to a joint instead of removing it from another. Do this by selecting the joint that SHOULD be influencing it, then using the Paint Operation: Add to paint influence. This tool works remarkably well with a pen tablet instead of a mouse (Figure 12.8).

Mirror weights – [Skin > Mirror Skin Weights □ ] For solid pieces of geometry (like the torso, or a seamless character), you only need to paint weights on one side (left OR right, but be consistent). This tool can be used to mirror the skin weights to the other side. For this tool to work properly, the character must be completely centered at the origin on the X-axis, and the geometry must be identical on both halves. The default settings work fine; just make sure you are choosing the correct direction. (default Positive to negative if you have been fixing weights on your character’s right side (screen left) or UNCHECKED if working on your character’s left side (screen right)) (Figure 12.9). 422

Skinning Your Character

FIGURE 12.8 The Paint Skin Weight Tool. Persephone model by Kenna Hornibrook, 2019.

FIGURE 12.9 The Mirror Skin Weights options.

Skinning a Character Because this process can be a long and tedious one, it is a good idea to save your work often. In case there is a problem, you can simply reopen the latest file. Many times, depending on the power of your computer, the undo command does not work as expected during the skinning process. 1. Open your last saved version of your character file from Chapter 11. This could be a biped or quadruped. 2. Continue working in X-ray mode. 3. Make sure that history has been deleted from the geometry, except for the blend shape deformer. To do this, go to [Edit > Delete by Type > Non-Deformer History]. 423

An Essential Introduction to Maya Character Rigging

FIGURE 12.10 Skinning your character. Persephone model by Kenna Hornibrook, 2019.

4. If you did not do this before, take time now to go through the OUTLINER and rename your geometry nodes as appropriate. 5. To make selection easier open your OUTLINER by going to [Windows > Outliner] 6. Skin your character by doing the following: a. Select the skinnable joints [Select > Quick Select Sets > skinJoints] (or open the + next to skinJoints in the OUTLINER and drag-select all joints). b. Hold down the shift key, and in the VIEWPORT, click on the character geometry piece(s). Do not forget the tongue! c. PREFERRED METHOD: Go to: [Skin > Bind Skin □ ] and reset the settings. Then change the following: i. Bind to: Selected Joints ii. Bind method: Geodesic Voxel iii. Resolution: 512 d. ALTERNATE METHOD: Go to: [Skin > Bind Skin □ ] and reset the settings. Then change the following: i. Bind to: Selected Joints ii. Max influences: 3 e. Click Bind Skin . 7. [File > Save As] Save a copy of your scene file (Figure 12.10). 8. If the all_anim is moved at this point, the body geometry explodes out of the rig because it has two inputs of control: the skin deformer and the all_anim (acting as a parent node). This leads to double transformations in the geometry (moving twice as far as everything else) (Figure 12.11). 9. To solve this problem, do the following: 424

Skinning Your Character

FIGURE 12.11 Geometry moving with double transformations. The skin deformer is telling the geometry to move, and the all_anim is telling the geometry to move. Since the joints are driving the skin deformer and are also parented to the all_anim along with the geometry, the geometry moves twice as far as the all_anim. Persephone model by Kenna Hornibrook, 2019.

10. In the PERSPECTIVE window, select the geometry that is moving away from the control rig. (If your geometry was already in a group, like mine is, make sure to find the group in the OUTLINER and select that instead.) 11. Press [ctrl+a] to open the ATTRIBUTE EDITOR. a. Select the first tab. b. Under Transform Attributes set the following: i. Remove the CHECKMARK in the box next to inherits transform. (This makes the geometry free from the parent all_anim transformations.) 12. [File > Save As] Save a copy of your scene file. If your character has multiple pieces of geometry, it is possible to skin each piece separately instead of all at one time. This usually provides for cleaner binds and fewer problems to fix. To skin individual pieces, select only the joints in the area of the piece of geometry (plus one additional joint beyond), then select the piece of geometry, and then apply the Smooth Bind procedure. (For the head, I would select the neck, skull, chin, jaw, AND the top IK spine joint.)

Adding Influence Joints You can use influence objects (additional joints or geometry) to help the knees and elbows hold their shape when bending. You can also add an influence object in the character’s chest cavity and create a control for breathing. Influence objects can also be used to create simulated muscleflexing, such as in the biceps. 425

An Essential Introduction to Maya Character Rigging If your character’s knees and/or elbows are pinching when they bend, and you have ruled out that it is a geometry issue causing the problem (too few polys or bad edge flow), then extra joints can be placed in those areas and added as influence objects to help hold the shape. 1. Open your last saved file or continue working. Continue working in X-ray mode. 2. Test the movement of your character by selecting controllers and translating or rotating them around. 3. Determine if the geometry is pinching in the elbows and/or knees. 4. For the knees: In the SIDE view panel, use the joint tool [Skeleton > Create Joints] and click a single joint behind the knee at the top of the calf, and, in the OUTLINER, rename this joint left_calf_inf_skin_jnt. 5. In the FRONT view panel, use the move tool by pressing (w) on your keyboard and position the left_calf_inf_skin_jnt and align it with the left leg. 6. Go to [Skeleton > Mirror Joint]. (Figure 12.12) 7. In the OUTLINER, MMB (middle mouse button) click and drag both joints left_calf_inf_skin_jnt and right_calf_inf_skin_jnt on top of skinJoints. This will add the two joints to the Quick Select Set. Open the + next to skinJoints to confirm. 8. Select the left_calf_inf_skin_jnt, shift-select the left_knee_skin_jnt, and press (p) on your keyboard to parent. Repeat for the right side. 9. For the elbows: In the TOP view panel, use the joint tool [Skeleton > Create Joints] and click a single joint in front of the elbow at the bottom of the biceps, and, in the OUTLINER, rename this joint left_bicep_inf_skin_jnt. 10. In the FRONT view panel, use the move tool by pressing (w) on your keyboard to position the left_bicep_inf_skin_jnt and align it with the left arm.

FIGURE 12.12 Creating and positioning the knee influence joints. Persephone model by Kenna Hornibrook, 2019.

426

Skinning Your Character 11. Go to [Skeleton > Mirror Joint]. (Figure 12.13) 12. Select the left_bicep_inf_skin_jnt, shift-select the left_shoulder_skin_ jnt, and press (p) on your keyboard to parent. Repeat for the right side. 13. If you used the Closest Distance skin bind method, to add new joint influences, do the following: a. Select the geometry (if there are multiple pieces, select only the geometry in the area of one influence joint), select all influence joints (you can select them easily in the OUTLINER in the skinJoints set, scroll to the bottom), and then go to [Skin > Edit Influences > Add Influence □ ]. b. UNCHECK Geometry: □ Use geometry. c. Click Add . (Figure 12.14) 14. Alternatively, if you used the Geodesic Voxel skin bind method to add new joint influences, do the following: a. Select the geometry that is going to be affected by the new joints and go to [Skin > Unbind Skin]. b. Select the skinnable joints [Select > Quick Select Sets > skinJoints] This assumes you already added the new skin influence joints to the Quick Select Set, as described above. c. Hold down the shift key, and in the VIEWPORT, click on the character geometry piece(s) that are being affected. d. Go to: [Skin > Bind Skin □ ] and make sure the settings are as follows: i. Bind to: Selected Joints ii. Bind method: Geodesic Voxel iii. Resolution: 512 15. [File > Save As] Save a copy of your scene file (Figure 12.15). 16. For the breathing influence, go to [Create > NURBS primitives > Sphere] and rename the sphere breathing_inf. 17. Using the move tool by pressing (w) on the keyboard, reposition the sphere into the chest cavity of your character. Using the scale tool by pressing (r) on the keyboard, resize the sphere so that it fills the chest

FIGURE 12.13 Creating and positioning the elbow influence joints. Persephone model by Kenna Hornibrook, 2019.

427

An Essential Introduction to Maya Character Rigging

FIGURE 12.14 Adding new joints as influence objects. If your geometry is separate meshes, you only need to select the meshes that are affected by the newly added skin joints. Persephone model by Kenna Hornibrook, 2019.

FIGURE 12.15 Adding new joints as influence objects if using the Geodesic Voxel bind method, you must first select the affected geometry and go to [Skin > Unbind Skin] then re-skin the geometry with the skinnable joints Quick Select Set, ensuring the new influence joints were already added to the set. Alternatively, for the best calculations, unbind all the geometry if separate pieces and re-skin all of the geometry with the skinnable joints and the added influence joints. Persephone model by Kenna Hornibrook, 2019.

cavity of your character, but does not extend outside of the character’s geometry. You can also go into COMPONENT MODE (F8) to reshape the sphere. 18. To add the breathing influence, if you used the Closest Distance skin bind method, to add new geometry influences, do the following: a. Select the breathing_inf sphere, then the geometry it will affect, and then go to [Skin > Edit Influences > Add Influence □ ].

428

b.

CHECK Geometry:

c.

Click Add . (Figure 12.16)

Use geometry.

Skinning Your Character

FIGURE 12.16 Adding a piece of geometry as an Influence Object. Persephone model by Kenna Hornibrook, 2019.

19. Alternatively, if you used the Geodesic Voxel skin bind method, to add new geometry influences, do the following: a. Select the breathing_inf sphere, then the geometry it will affect, and then go to [Skin > Edit Influences > Add Influence □ ]. b.

CHECK Geometry:

Use geometry.

c.

CHECK Weight locking:

Lock weights.

d. Click Add . (Figure 12.17) 20. In the OUTLINER, select the breathing_inf and the breathing_infBase that is created. Press [ctrl+g] to group them and rename the group breathing_inf_grp. (Figure 12.18) 21. With the group still selected, shift-click on the nearest spine joint (mine was back_spine_skin_jnt_7). Then press (p) to parent the group to the joint. 22. Create a control for the breathing influence by doing the following: a. Select the COG_anim and go to [Modify > Add Attribute] and enter the following: b. Attribute name: type “breathe” c. Under Numeric Attribute Properties i. Minimum: type “−1” ii. Maximum: type “1” iii. Click OK 23. Select the breathing_inf and go to [Key > Set Driven Key > Set…]. (This places breathing_inf as the driven in the Set Driven Key window.) 24. Select the COG_anim and click “Load Driver” in the Set Driven Key window. 25. In the Driver section of the Set Driven Key window, choose “Breathe” in the right column. 26. In the Driven section of the Set Driven Key window, choose “ScaleX” in the right column, hold down the shift key, and click on “ScaleY” and “ScaleZ.” 429

An Essential Introduction to Maya Character Rigging

FIGURE 12.17 Adding a piece of geometry as an Influence Object to a Geodesic Voxel bind requires locking the weights, then unlocking and painting the influence using Paint Skin Weights. Persephone model by Kenna Hornibrook, 2019.

27. In the Set Driven Key window, click Key to set a default pose at “0.” (Figure 12.19) 28. Select the COG_anim and in the CHANNEL BOX, change Breathe to “1.” 29. In the Driven section of the Set Driven Key window, click on breathing_ inf to select it. 30. With the scale tool (r), scale the breathing_inf until the chest looks inflated with air, as when inhaling. 31. Do not worry if the inhaling does not look correct. You can fix this using [Skin > Smooth Skin Weights] or the [Skin > Paint Skin Weights Tool □ ] All influences will appear in the Influence section of the paint weights options. The weights will be painted later in this chapter. 32. In the Set Driven Key window, click Key (Figure 12.20) 33. In the Driver section of the Set Driven Key window, click on COG_anim to select it. 34. In the CHANNEL BOX, change Breathe to “−1.” 35. In the Driven section of the Set Driven Key window, click on breathing_ inf to select it. 430

Skinning Your Character

FIGURE 12.18 Grouping the influence object and base.

FIGURE 12.19 Loading the Set Driven Key window and setting the first key so that when Breathe is set to “0,” the breathing influence is in the default (original) position. Persephone model by Kenna Hornibrook, 2019.

36. With the scale tool (r) scale the breathing_inf until the chest looks slightly deflated as when exhaling. 37. In the Set Driven Key window, click Key (Figure 12.21) 38. Hide the breathing_inf by selecting it in the PERSPECTIVE window or the OUTLINER and pressing (h). 39. Test the Breathe attribute by selecting the COG_anim. In the CHANNEL BOX, click on the word Breathe. In the PERSPECTIVE window, MMB and drag the mouse left to right to test the breathing motion. 431

An Essential Introduction to Maya Character Rigging

FIGURE 12.20 Setting the second key so that when Breathe is set to “1,” the breathing influence is scaled for inhaling. Persephone model by Kenna Hornibrook, 2019.

FIGURE 12.21 Setting the second key so that when Breathe set to “−1,” the breathing influence is scaled for exhaling. Persephone model by Kenna Hornibrook, 2019.

40. [File > Save As] Save a copy of your scene file. You can now make your character’s chest rise and fall by keying the breathe attribute on the timeline, but would it not be much better for your character breathe automatically without having to keyframe the rise and fall itself? This can be done by creating a MEL expression. Next, we will create an expression to automate the breathing animation. 41. Open your last saved file or continue working. This could be a biped or quadruped. 42. Continue working in X-ray mode. 43. Create a control for the breathing influence by doing the following: 432

Skinning Your Character

FIGURE 12.22 The syntax for COG_anim breathe attribute can be found in the Expression Editor.

d. e. f.

g. h.

Select the COG_anim and go to [Modify > Add Attribute] and enter the following: Attribute name: type “breathSpeed.” Under Numeric Attribute Properties i. Minimum: type “0” ii. Maximum: type “5” iii. Click Add Attribute name: type “breathDepth.” Under Numeric Attribute Properties i. Minimum: type “0” ii. Maximum: type “1”

iii. Click OK 44. In the CHANNEL BOX, click the breathe attribute and in the CHANNEL BOX go to [Edit > Expressions…] The Expression Editor window opens up. You will see the attribute you just selected in the CHANNEL BOX is listed in the Selected Object and Attribute: section of the Expression Editor. Highlight it and copy it. The syntax should look like the following: COG_anim.breathe (Figure 12.22) 45. Paste or retype COG_anim.breathe in the bottom section Expression: where you will type the MEL expression. Then type an equal sign (=). 46. Add in the following text after the equal sign (without the quotes): “sin(time);” and click the Create button at the bottom of the window. Your expression should look something like this: COG_anim.breathe = sin(time); 47. If you play back the timeline, your character will breathe using a sign function to fluctuate −1 to 1 (the min/max of the breathe attribute) as time plays. 48. In the Expression Editor, change the script to the following: COG_anim.breathe = sin (time * COG_anim.breathSpeed) * COG_anim.breathDepth; 49. Click the Edit button at the bottom. 50. Now you have two controls that handle the breathing of your character. By multiplying time by the breathSpeed, we can control how fast the character breathes, and by multiplying formula by the breathDepth, 433

An Essential Introduction to Maya Character Rigging

FIGURE 12.23 A MEL expression can be created in the Expression Editor using custom attributes that are adjustable by the animator so that, as the timeline plays, the character breathes automatically.

we can control how deep or shallow the character breathes. Also, if either control has the value of 0, no breathing occurs. 51. Select the Breathe attribute in the CHANNEL BOX, RMB (right mouse button) and “Hide Selected.” Since the channel is purple, we do not want to lock it as it would break the expression. 52. [File > Save As] Save a copy of your scene file (Figure 12.23).

Fixing Skin Weights Using the Component Editor [Window > General Editors > Component Editor] 1. Open your last saved file or continue working. Continue working in X-ray mode. 2. Test the movement of your character by selecting controllers and translating or rotating them around. 3. Determine if joints are affecting the wrong area of geometry. (For example, when the left foot moves, does any of the right leg geometry move?) 4. The main areas for shared weights are usually in the legs and feet, the head and shoulder, or the fingers. Basically, anywhere when you have parallel areas of geometry and joints (Figure 12.24). 434

Skinning Your Character

FIGURE 12.24 In this example, the inner thigh geometry is being affected by both the left and the right leg joints, so there is a pulling of the geometry when the feet move. Persephone model by Kenna Hornibrook, 2019.

5. In the view panels, go to [Show > None], then go to [Show > Polygons] (this way you do not accidentally select joints or controllers while making corrections). 6. Select the vertices that are being affected incorrectly, [RMB > Vertices] to display them, and then drag your mouse around to select them. (Figure 12.25). 7. Go to [Window > General Editors > Component Editor] and click on the Smooth Skin tab. 8. In the top list, find the joints that are affecting these points and should not be. Click on the box in the very top row, scroll down to the bottom of the list, hold down the shift key and click on the bottom row, and type “0” to remove the influence. (For example, the left toe joint should not be affecting the right foot geometry) (Figure 12.26). 9. Repeat this for other affected areas. 10. In the view panels, go to [Show > NURBS Curves], then return the controllers back to their default position by selecting them and typing “0” in the CHANNEL BOX for the translations. 11. [File > Save As] Save a copy of your scene file.

Fixing Skin Weights Using Smooth Skin Weights [Skin > Smooth Skin Weights] 1. Open your last saved file or continue working. Continue working in X-ray mode. 2. Test the movement of your character by selecting controllers and translating or rotating them around. 435

An Essential Introduction to Maya Character Rigging

FIGURE 12.25 In this example, the inner thigh geometry vertices are selected. Work only on one area at a time to avoid confusion. Persephone model by Kenna Hornibrook, 2019.

FIGURE 12.26 Highlighting the column of influence on the joint that should NOT be affecting the area and typing “0” to remove the influence.

436

Skinning Your Character

FIGURE 12.27 In this example, the movement of the shoulder control is pulling the points from under the armpit. Select the points in the problem area. Persephone model by Kenna Hornibrook, 2019.

3. Determine if joints are affecting the geometry too much. (For example, the arm rotation causes the underarm area to indent too far, or the leg translation causes the pelvis area to collapse.) (Figure 12.27). 4. The main areas for collapsing weights are usually in the pelvic region, the buttock area, and the underarm area. 5. If you want, in the view panels, make sure only polygons are seen. If not, go to [Show > None], then go to [Show > Polygons] (this way you do not accidentally select joints or controllers). 6. Select the vertices that are being affected incorrectly. RMB to display them, and then drag your mouse around to select them. 7. Go to [Skin > Edit Smooth Skin > Smooth Skin Weights]. (Figure 12.28) 8. Repeat this for other affected areas. 9. [File > Save As] Save a copy of your scene file. Be sure to save every time you have one area adjusted and fixed in case another area gives results that are not desired.

Fixing Skin Weights Using Paint Skin Weights [Skin > Paint Skin Weights □ ] This is optional because you will probably be able to solve most of your weight issues with the tools that we have already used. 1. Open your last saved file or continue working. Continue working in X-ray mode. 2. Test the movement of your character by selecting controllers and translating or rotating them around. 437

An Essential Introduction to Maya Character Rigging

FIGURE 12.28 The results look MUCH better! Persephone model by Kenna Hornibrook, 2019.

FIGURE 12.29 In this example, the movement of the COG_anim downward shows that the shirt geometry is not moving evenly with the hip rotation of both legs, causing an unappealing result with the shirts and shorts. Persephone model by Kenna Hornibrook, 2019.

3. Identify the problem areas that could not be corrected using the component editor or the smooth skin weights tool (Figure 12.29) 4. In the view panels, turn X-ray OFF [Shading > X-Ray]. 5. A great tip is to select all of your controllers and set a keyframe (Keys can be set by pressing (s) on the keyboard) on all of the controllers on frame one. You can use your shelf button to select them. Move the timeline to frame 10 and rotate or move the controllers to place the character into a pose where the problem areas can be seen. Key the controllers 438

Skinning Your Character

FIGURE 12.30 Painting skin weights in a problem area. Be sure to work on both pieces of geometry if there are separate pieces in the problematic area. Persephone model by Kenna Hornibrook, 2019.

6. 7.

8. 9.

10. 11. 12.

13.

again on frame ten, then move to frame twenty, and pose the character again where you can see different problems, and key this pose. MAKE SURE TO DELETE THE KEYFRAMES WHEN YOU ARE FINISHED. To do this, select all of the controllers and, in the CHANNEL BOX, click on the top attribute name, and shift-click on the bottom attribute name. Then RMB and choose break connections or go into the [Windows > Animation Editors > Graph Editor] and drag-select all of the curves and press the (delete) key on the keyboard. In the view panels, go to [Show > None], then go to [Show > Polygons] (this way you do not accidentally select joints or controllers). You can select the entire piece of geometry, or you can select the vertices that are being affected incorrectly, RMB to display them, and then drag your mouse around to select them. Go to [Skin > Paint Skin Weights □ ]. In the Influences section of the Paint Skin Weights □ OPTION BOX, select the joint or influence that SHOULD be affecting the area more (in this case, for the top of the shorts, the right_hip_skin_jnt and left_hip_skin_jnt joints). In the Paint Weights section, use the ADD paint operation and change the value to about 0.1. To adjust the size of the brush, hold down the (b) key, place your brush over your model, and LMB click and drag left to right. Begin painting (single clicks on top of the cross areas of your geometry lines) or click and drag on the geometry. If you have a pen tablet or pen display, this process is more interactive and intuitive (Figure 12.30). You may need to check the surrounding joints and add a little influence there (For example, for the front of the shorts, in addition to the hip joints, the first 2 or 3 spine joint above and below the one you originally chose to paint, if working on the spine). 439

An Essential Introduction to Maya Character Rigging 14. Scrub your timeline (click on the indicator in the timeline and drag your mouse left to right) to see how it looks, if keys were set on the controls. If keys have not been set, test the deformation of your character by selecting controllers and translating or rotating them around. 15. You may need to change the Paint operation section to Smooth and paint the joint that should NOT be affecting that area (in this example, the shoulder joint), then also smooth the other joints in the area. Pressing the Flood button with Smooth Paint operation selected can do wonders, but it can also mess things up, so I would save beforehand. It is worth trying, however. 16. Repeat this for other affected areas. 17. REMEMBER, you only need to paint the left side or the right side as we can mirror the weights to the other side in the next section. 18. [File > Save As] Save a copy of your scene file. Be sure to save every time you have one area adjusted and fixed, in case another area gives results that are not desired. 19. MAKE SURE TO DELETE THE KEYFRAMES on the controllers if you created them. To do this, select all of the controllers (click your Select All shelf button) and in the Go to [Windows > Animation Editors > Graph Editor], press (f) with your cursor over the graph editor to frame all, click drag-select the curves, and press the (delete) key on the keyboard.

Mirroring Skin Weights [Skin > Mirror Skin Weights □ ] 1. Open your last saved file or continue working. Continue working in X-ray mode. 2. Select the geometry that needs to have the skin weights mirrored. Go to [Skin > Mirror Skin Weights □ ] and set the following: a. Mirror across: YZ axis (on the X-axis). b. UNCHECK □ positive to negative only IF you painted on the character’s right side and need to mirror to the left (your left to right – character’s right to left) (Figure 12.31). 3. [File > Save As] Save a copy of your scene file. This tool will only work predictably if the UVs are unwrapped correctly. You may have to go back and paint weights here and there if not, but it does generally save you a lot of time.

Creating a geoLevel Switch for Polygonal Characters

440

1. Open your last saved file or continue working. Continue working in X-ray mode. 2. Select the polygonal geometry and go to [Mesh > Smooth]. (If any geometry is parented to other geometry, this will not work for the children. You must smooth the parent, then smooth the children.)

Skinning Your Character

FIGURE 12.31 Mirroring the Skin Weights from positive X (your right, character’s left) to negative X. Persephone model by Kenna Hornibrook, 2019.

FIGURE 12.32 Adding the attribute “geoLevel” to the all_anim. Enum data types create a dropdown selection menu for the attribute.

3. Select the all_anim and go to [Modify > Add Attribute] and enter the following: a. Attribute name: type “geoLevel.” b. Under Data Type choose “Enum” c. Under Enum Names, select Green. d. Under New name: change Green to lowRez. e. Under Enum Names, select Blue. f. Under New name: change Blue to highRez. 4. Click OK (Figure 12.32) 5. Select each piece of polygonal geometry in the INPUTS section of the CHANNEL BOX, click on polySmoothFaceN (where N is the number you see, this will actually select and load all of the selected object’s polySmoothFace nodes), and then go to [Key > Set Driven Key >

441

An Essential Introduction to Maya Character Rigging

FIGURE 12.33 Loading the Set Driven Key window and setting the first key so that, when the Geo Level is set to “highRez,” the Polygonal Mesh is smoothed. A division level of “1” is kept, but you may find your geometry should be at level 2. Make sure to change this, if needed. Persephone model by Kenna Hornibrook, 2019.

Set…□ ]. (This places the geometry as the driven in the Set Driven Key window.) 6. Select the all_anim and click Load Driver in the Set Driven Key window. 7. In the Driver section of the Set Driven Key window, choose “Geo Level” in the right column. 8. In the CHANNEL BOX, change Geo Level to “highRez.” 9. In the Driven section of the Set Driven Key window, click on all polySmoothFaceN to select them. 10. In the Driven section of the Set Driven Key window, choose “divisions” in the right column. 11. In the Set Driven Key window, click Key , to set a key (Figure 12.33). 12. In the Driver section of the Set Driven Key window, click on all_anim to select it. 13. In the CHANNEL BOX, change Geo Level to “lowRez.” 14. In the Driven section of the Set Driven Key window, click on polySmoothFace1to select it. 15. In the CHANNEL BOX, change divisions to “0.” 16. In the Set Driven Key window, click Key . 17. [File > Save As] Save a copy of your scene file (Figure 12.34). This provides an easy way of switching the display of the low-resolution polygonal mesh Geo Level is at “lowRez,” and the higher resolution for rendering when Geo Level is set to “highRez.” 442

Skinning Your Character

FIGURE 12.34 Loading the Set Driven Key window and setting the first key so that when the Geo Level is set to “lowRez,” the Polygonal Mesh is not smoothed. Persephone model by Kenna Hornibrook, 2019.

Final Cleanup of the Scene File At this point, your rig is almost complete. There should only be one node in the hierarchy, the all_anim_const_grp. However, there may be a few loose ends that need to be tied up. The first is making sure any non-skinned, or non-deformable geometry is parented or constrained into the hierarchy. 1. Open your last saved file or continue working. Continue working in X-ray mode. 2. Select the all_anim and, with the move tool (w), move your character slightly away from the origin. 3. See if anything is left behind. In my case, I have earrings that are not moving with the rig. Select anything and with your cursor over the OUTLINER, press (f) to frame the selection (Figure 12.35). 4. Return the all_anim back to the origin by entering “0” in the CHANNEL BOX for the translations. 5. Group the geometry bits and rename the group. In my case, earings_ geo_grp is the name to use. For Lucy, her rocks and bones are not deformable, so those should be grouped by section (forearm, upper arm, calf, thigh, etc.). 6. Select the nearest controller, (head_anim makes sense for me), then the geometry group earings_geo_grp, then go to [Constrain > Parent] and [Constrain > Scale] 7. Repeat as needed. 8. [File > Save As] Save a copy of your scene file. 443

An Essential Introduction to Maya Character Rigging

FIGURE 12.35 Moving the all_anim will reveal if any objects are not following the rig, such as Persephone’s earrings. Persephone model by Kenna Hornibrook, 2019.

Testing Rig Relocation Secondly, to help ensure that the rig is capable of being animated away from the origin and in a different scene file, it is important to move, rotate, and scale the rig to extreme numbers and test to see if anything “breaks” the rig. A good test is then to try to pose the character at that location. 1. Open your last saved file or continue working. Continue working in X-ray mode. 2. You can do each of these one at a time to isolate where the problem occurs. Select the all_anim and, in the CHANNEL BOX, enter the following: a. Translate X: 5000 b. Rotate Y: 145 c. Scale X, Y, and Z: 3 3. With the all_anim selected, hold your cursor over the PERSPECTIVE window and press (f) to frame the selection. 4. We can see there are some problems. In this case, it is with the scaling. 5. In the CHANNEL BOX, type “0” for Translate X and Rotate Y, then “1” for Scale X, Y, & Z. 6. With the all_anim selected, hold your cursor over the PERSPECTIVE window and press (f) to frame the selection. 7. As you can see, we have a bit of a problem (Figure 12.36). 8. Troubleshoot the rig to find the problem, then fix it. In this case, the following needs to be done: a. Select the back_jnt_grp and the neck_jnt_grp, then shift-select the COG_anim, and press (p) to parent. 444

Skinning Your Character

FIGURE 12.36 Problems can be revealed when moving, rotating, and scaling the all_anim. Sometimes it is easier to determine the cause by doing one at a time. Persephone model by Kenna Hornibrook, 2019.

b.

Select the spine_grp and, in the ATTRIBUTE EDITOR [ctrl+a], place a

CHECKMARK in the box for Inherits Transforms. 9. Recheck the rig by entering the values above and framing the selection. 10. Troubleshooting comes with experience. As a new rigger, if those two fixes did not solve your rig issues, you may want to go back and redo the steps. I know that this is not the solution you wanted to hear, but, if you cannot fix the problem, you will learn more by redoing. When I began, I had to redo something up to thirty times before it made sense to me. Alternatively, you can ask on a forum, ask a rigging friend, or teacher. 11. If rigging a quadruped, now would be the time to turn the ikHandle on if you followed the first “Control System for the Leg and Paw Rig” in Chapter 6. Do this by selecting the left_hind_leg_ikHandle and, in the ATTRIBUTE EDITOR [ctrl+a], change IK Blend to “1.” 12. Repeat for the right_hind_leg_ikHandle, left_front_leg_ikHandle, and right_front_leg_ikHandle. 13. [File > Save As] Save a copy of your scene file.

Making Geometry Unselectable Thirdly, a rigger may want to help an animator by preventing them from selecting the character’s geometry in the viewport. This helps make the animation workflow more efficient. Additionally, once you know how this is done, you can undo this on a rig you may be working with if the need arises. 1. Open your last saved file or continue working. 2. Continue working in X-ray mode. 445

An Essential Introduction to Maya Character Rigging

FIGURE 12.37 Limiting the ability to select geometry in the VIEWPORT prevents animators from accidentally selecting and keyframing geometry. Persephone model by Kenna Hornibrook, 2019.

3. Select your character’s body geometry (or if you have separate pieces of geometry, select one and do the following, repeating for each piece). 4. In the ATTRIBUTE EDITOR [ctrl+a], click on the first tab, open the Display dropdown arrow, scroll down and open the Drawing Overrides dropdown arrow, place a in Enable Overrides, and change Display Type to Reference (this prevents the ability to select the geometry of the elevator in the VIEWPORT, much like assigning the geometry to a layer and setting it to reference). 5. Repeat as needed. 6. [File > Save As] Save a copy of your scene file (Figure 12.37).

Colorizing the Controllers Using color to organize the controllers also helps the animators by making their workflow more efficient. It helps them distinguish what area of the character a controller is controlling. Generally, red is used for the right side of the character’s body, while blue is for the left, and yellow for the spine. 1. Open your last saved file or continue working. 2. Continue working in X-ray mode. 3. Select all_anim. If the controller is a parent to other controllers, the color change will happen to all of the curves. It is best to down-arrow first to select the shape node, then change the color on the shape node instead of the transform node. 4. Change the color by changing the Color: Index by moving the slider to yellow in the Drawing Overrides dropdown of the ATTRIBUTE EDITOR [ctrl+a] (under the Display section). 5. If you want to choose a different color, you can change Color: RGB and use the color picker to choose any color you would like. 6. [File > Save As] Save a copy of your scene file (Figure 12.38). 446

Skinning Your Character

FIGURE 12.38 Changing the display color of a NURBS controller helps an animator visually organize a character rig.

That is it. The End. Well, actually, it is only the beginning of a journey toward the love of rigging and what it can do for you as a digital artist and animator. There are many more advanced concepts out there. My desire in writing this book is to give you a strong foundation in the workings of a character rig, so that you can become a better animator or rigger – or both!

Summary 12.1 12.2

Skinning is a deformer that controls geometry points with joints. Smooth bind assigns each point to one or more joints in the skeleton. Smooth bind allows a single point to be shared across multiple joints. Because of this, smooth bind provides smoother deformations. 12.3 Geodesic Voxel bind method uses voxels (three-dimensional pixels, or cubes, that fill the volume), and then the deformer’s influence weights are calculated based on the distance between the voxels and the joints within the geometry mesh. 12.4 Geodesic Voxel bind method is calculation heavy, but the results are worth the time if you have a strong enough computer. 12.5 The component editor provides a quick and easy way to edit individual points on the smooth skin. 12.6 The total amount of influence that a point can have must equal one. This can be spread out on several joints or found on a single joint. 12.7 Smooth skin weights provides a quick easy way to spread the weights of selected points to joints nearby. 12.8 Influence joints can be added to a smooth skin to help obtain the results of a particular shape during the deformation process when joints are rotating. 12.9 Influence objects can be used to mimic muscle contractions and breathing. 12.10 The paint skin weights tool is an interactive approach to adjusting how the joints influence the points in the geometry. 447

An Essential Introduction to Maya Character Rigging 12.11 Correcting the skin weights on the geometry is a tedious and timeconsuming process. 12.12 The mirror skin weights command provides the ability to reflect the corrections from one side of a character to the other. Because of this, the time correcting skin weights can be reduced by half. The UVs on the model must be finalized for this tool to work. 12.13 It is important to remember to save often during the skinning process. It is a good idea to save versions of your files and save often.

448

Index Add Attribute, 95, 161, 175, 244, 328, 360, 384, 388, 429, 433, 441 Add Influence, 420, 427, 428, 429 Add selected nodes to graph button, 411 Aim constraint, 65 Animation, 8, 26, 27, 168 defined, 44 Animation Editors, 58, 345, 347, 355, 406, 439, 440 Antennae cleanup for the antenna setup, 332–334 creating a control system for, 320–332 creating the joints for, 318 Arc Length attribute, 406, 410 Arm rig, control system for, 146 cleanup for the arm setup, 167–168 creating a control system for arm, 148–166 creating a control system for clavicle, 146–148 Arm skeleton, joint placement for, 143 creating joints for arms and clavicles, 143–145 joint local rotation axis, verifying, 146 Asymmetrical shapes, 340, 345 Attribute control, 51 constraints, 61 aim constraint, 65 cluster deformer, 69, 70 geometry constraint, 65–66, 67 group node, 68–69 normal constraint, 66–68 orient constraint, 63–64 parent constraint, 62–63 point constraint, 63, 64, 67 pole vector constraint, 65, 66 Rivet command, 65 scale constraint, 64–65 rotation order and Gimbal mode, 52 connection editor, 57–58, 59 expression editor, 58–59, 60 Set Driven Key, 59–61 Axis Orientation, 55, 56, 174 Backbone, see Spine Back IK Spline, cleanup for, 136–140 Bake Topology to Targets, 349–350 Base shape, 339, 340, 345, 347, 349, 351, 352, 355 Bats, wings of, 186, 187 Bend deformer, 381 Bind Skin, 110, 121, 134, 138, 269, 280, 294, 372, 418, 419, 420, 424, 427 Bipedal arms and hands, 143 arm rig, control system for, 146

cleanup for arm setup, 167–168 creating a control system for the arm, 148–166 creating a control system for the clavicle, 146–148 arm skeleton, joint placement for, 143 creating the joints for the arms and clavicles, 143–145 joint local rotation axis, verifying, 146 hand rig, control system for cleanup for hand setup, 185 creating a control system for the finger joints, 175–185 hand skeleton, joint placement for, 168 joint local rotation axis, verifying, 172–175 wings, 186–192 workflow, 144 Bipedal legs and feet, 75 creating control system for leg and foot rig, 81 cleanup for the legs and feet, 93–94 foot controls, simplifying, 95–101 joint placement for leg and foot skeleton, 76 joint local rotation axis, verifying, 79–81 workflow, 77 Bipedal spine and neck, 103 IK Spline spine and neck creation for a biped, 125 back IK Spline, cleanup for, 136–140 control system, creating, 129–136 joint local rotation axis, verifying, 128–129 neck IK Spline, cleanup for, 140–141 ribbon neck creation for a biped, 115 creating control system for ribbon, 120–124 neck ribbon, cleanup for, 124–125 neck ribbon, creating, 115–120 ribbon spine creation for a biped, 103 back ribbon, cleanup for, 114–115 back ribbon, creating, 105–108 creating control system for ribbon, 108–114 workflow, 104 Biped head, joint placement for creating the joints for head, hat, and hair skeleton, 305–308 joint local rotation axis, verifying, 308–309 Birds, wings (or arms) of, 186, 187 Blend Shape, 349 as an approach to creating facial expressions, 338–341 tools used for modeling, 341 add blend shapes, 345–348 sculpt geometry tool, 343–345 soft modification tool, 343, 344 update topology on blend shapes, 349–350

449

Index Bokser, David, 12 biography, 12 Bone Radius Settings, 76, 127, 143, 168, 195, 197, 216, 241, 307, 313, 318 breathDepth, 433 Breathe attribute, 431–434 breathSpeed, 433 Bridge shape, creating, 351, 401–402 browScrunch, 360, 362 Brow Scrunch, 362, 363 ButtonPush attribute function, 385 Cartesian coordinate system, 28 Center-of-gravity (COG) control, 112–113, 131, 271, 272 CG production, 12 Channel Box, 4 Channel Control, 394, 396 Character geometry, 19, 20 Character model sheet, 16, 17 Character sets, 397 Claws, 193 Cleanup matching polygons, 26 Closest Distance skin bind method, 427, 428 Cluster deformer, 69, 70 COG control, see Center-of-gravity control Collar control system for, 314–315 creating joints for, 313 Color feedback, 343 Color Index, 390 Command Line, 5, 36 Component Editor, 420–421 fixing skin weights using, 434–435 Component Mode, 33, 35, 36, 173 Connection Editor, 57–58, 59, 99, 381, 388 Connections, 95 Constraints, 61 aim constraint, 65 cluster deformer, 69, 70 geometry constraint, 65–66, 67 group node, 68–69 normal constraint, 66–68 orient constraint, 63–64 parent constraint, 62–63 point constraint, 63, 64, 67 pole vector constraint, 65, 66 Rivet command, 65 scale constraint, 64–65 Construction history, deleting, 25–26 Control rig setup, 41 attribute control, 51 constraints, 61–69 rotation order and Gimbal lock, 52–61 curves, combining, 69–73 kinematics, 44 forward kinematics (FK), 47–48 inverse kinematics (IK), 48–51

450

workflow, 45, 46 Control Vertex points of the circle, 85, 90, 91, 208, 209, 232, 237 Control vertices (CVs), 50 Corrective blend shapes, 338, 355–357 Corrigan, Dana, 261 biography, 262 Create Blend Shape, 345, 349, 354, 366, 401 Create Character Set, 397 Create Hair, 106, 117, 265, 276, 290, 291, 368–369 Create IK Handle, 81, 82, 147, 153–154, 202, 203, 221, 222, 250–251, 300, 366 Create Joints, 26, 76, 118, 127, 143, 195, 216, 241, 277, 284, 307, 313, 318, 375, 426 Create Reference, 20, 21, 22 CubeDog, 261, 262 Curves, combining, 69–73 Curve Tools, 53, 54 CVs, see Control vertices Deform, 69, 70, 343, 345, 349, 381, 387, 401 Deformation order, 350–351 Deformers, 380 multiple, 350 nonlinear, 381–382 Display Size, 27–28 Double transformations, geometry moving with, 424–425 Dragon skeleton, 20 Drawing Overrides dropdown arrow, 389, 390, 446 Driver, 60 Duplicate, 86, 90, 91, 133, 138. 206, 207, 208, 210, 211, 227, 231, 232, 234, 239, 240, 254, 256 Dynamic joint chains, 317 cleanup for the antenna setup, 332–334 creating a control system for antennae, 320–332 creating the joints for antennae, 318 joint local rotation axis, verifying, 318–319 Ear, control system for, 315–316 Ear joint hierarchy, creating, 313 Ear setup, cleanup for, 317 Edit Influences, 419, 427, 428, 429 Elbow influence joints, 427 Elliptical wings, 188 Enable Overrides, 389, 446 EP Curve Tool, 53, 54 Euler rotation method, 52 Expression Editor, 58–59, 60, 433 Eye controls cleanup for, 377 creating, 375 Facial expressions, 335 blend shapes as an approach to creating, 338–341 creating a control system for, 359–366 joints as an approach to creating, 357–359 Facial rigging, 335

Index blend shapes, tools used for modeling, 341 add blend shapes, 345–348 sculpt geometry tool, 343–345 soft modification tool, 343, 344 update topology on blend shapes, 349–350 corrective blend shapes, 355–357 creating facial expression blend shapes, 351–354 deformation order, 350–351 eye controls cleanup for, 377 creating, 375 jaw and tongue, creating, 366 cleanup for the tongue ribbon, 374–375 creating a control system for the jaw, 366–368 creating a control system for the ribbon, 371–374 creating the tongue ribbon, 368–371 Shape Editor, flipping a blend shape using, 354–355 workflow, 336 File Referencing, 20, 21, 76, 194, 382, 387 changing the referenced file, 21–22 Finger joints, creating a control system for, 175–185 FingerSpread attribute, 181–182 FK, see Forward kinematics FK tail creation, 284 cleanup for the FK tail setup, 289 verifying the joint local rotation axis, 286–288 Flip Target, 345, 355 Flood button, 110, 122, 269, 281, 295, 372, 440 Foot controls, simplifying, 95–101 footRoll attribute function, 95, 97, 101 footTilt, 101 Forward kinematics (FK), 30, 31, 44, 47–48 FK Rotational Orders, 57 FRONT orthographic view, 77, 143, 307, 318, 375 General Editors, 57, 99, 130, 205, 208, 209, 210, 225, 253, 257, 388, 394, 398, 434 Geo Level, 442 geoLevel switch creation for polygonal characters, 440–443 Geometry constraint, 65–68 Gimbal lock, 56, 57, 151 Gimbal mode, 54–55 rotating the sphere in, 56, 57 Graph Editor, 5, 60, 439, 440 Group node, 68–69 Hair, control system for, 310–311 Hammer Skin Weights, 422 Hand rig, control system for finger joints, creating a control system for, 175–185 hand setup, cleanup for, 185 Hand skeleton, joint placement for, 168 joint local rotation axis, verifying, 172–175 Hat control system for, 309–310 creating the joints for, 307

Head, 305 biped head setup, cleanup for, 311–312 collar, control system for, 314–315 control system for, 309, 314 dynamic joint chains, 317 cleanup for the antenna setup, 332–334 creating a control system for the antennae, 320–332 creating the joints for the antennae, 318 verifying the joint local rotation axis, 318–319 ear, control system for, 315–316 ear setup, cleanup for, 317 hair, control system for, 310–311 hat, control system for, 309–310 joint placement for biped head creating the joints for head, hat, and hair skeleton, 305–308 joint local rotation axis, verifying, 308–309 quadruped head, joint placement for creating the joints for ears and collar, 312–313 joint local rotation axis, verifying, 313–314 workflow, 306 heelTwist, 95, 99 Help Line, 5 Hero head, 345, 351, 401 Hide Selected, 394, 434 High-speed wings, 188 History, 25–26, 71, 105, 111, 113, 117, 123, 130, 264, 270, 271, 276, 281, 368, 373 Hoofs, 193 Hotbox, 2, 3 Hotbox Controls menu, 2 Hovering wings, 188, 189 Human and canine skeletons, 19 Hummingbird, wings of, 189 Hypergraph, 18, 24, 69 IK, see Inverse kinematics IK Blend, 215, 445 IK Handles, 48–49, 63, 248, 260, 397 IkSpline Spine adding squash and stretch to, 404 expression solution, 405–408 Utility Node solution, 408–412 and neck creation for a biped, 125 back IK Spline, cleanup for, 136–140 control system, creating, 129–136 joint local rotation axis, verifying, 128–129 neck IK Spline, cleanup for, 140–141 Import Objects from Reference, 21 Independent Euler-Angle Curves, 54 Influence joints, adding, 425–434 Influence Object, 425, 429, 430 Influences, 110, 122, 269, 280, 281, 295, 372 Inherits Transform, 114, 125, 137, 141, 273, 284, 325, 375, 445 Insect wings, 188, 191 Interface, 1–5

451

Index Inverse kinematics (IK), 30, 31, 48–51 Jaw and tongue, creating, 366 cleanup for the tongue ribbon, 374–375 creating a control system for the jaw, 366–368 creating a control system for the ribbon, 371–374 creating the tongue ribbon, 368–371 Joint chain, 18, 19, 20, 32, 50 Joint placement, 38 for arm skeleton, 143–146 for biped head, 305–309 for hand skeleton, 168–175 for leg and foot skeleton, 76–81 for leg and paw skeleton, 193–200 for quadruped head, 312–314 of scapula, 300 for a spine and neck skeleton, 127–128 workflow, 13, 14 Joints, 146, 286 Display Size, 27–28 Joint Tool, 26–27 local rotational axes, 28–33 mirroring, 37 moving, 33–34 placing, 33, 37–38 reorienting, 35–37 repositioning, 33 rotating, 34–35 scaling, 34–35 Joint Size…, 27, 28, 168 Joint Tool, 26–27, 307, 312, 313, 318 Keebler, Tim, 393 biography, 394 Keyable list, 394 Keyboard with highlighted hotkeys, 5–6 Killdeer, wings of, 189 Knee influence joints, 426 Layer Editor, 4 leftBrowDownUp, 360 leftNarrowWide, 361 leftNoseScrunch, 361 leftSmileFrown, 361 leftSquint, 361 leftWink, 361 Leg and claw rig, control system for, 215 joint local rotation axis, verifying, 218–237 Leg and hoof rig, control system for, 248 cleanup for leg and hoof setup, 260 Leg and paw rig, control system for, 200–213 cleanup for leg and paw setup, 213–215 Leg joint hierarchy, creating, 76–79 Legs and feet of bipedal character, see Bipedal legs and feet List of Input Operations, 350, 351 Load Driven, 164, 165, 178, 181, 329, 331

452

Load Driver, 162, 178, 362, 385, 429, 442 Local rotational axes, 28–33, 35, 172, 173, 308 Lock and hide selected, 93, 114, 125, 246, 260, 272, 283, 297, 394 Locked tab, 396 Long bone radius, 27 Love in the Time of Advertising 2015, 13 Macintosh, 5 Maintain offset, 62–65, 66, 282 Marking Menu, 3 MEL (Maya Embedded Language) command, 36, 37, 47–48, 58 MEL shelf buttons, 397 Menu bar, 2–3, 4 Menu sets, 2 Mesh, 26, 440 Mirror Function behavior, 37 Mirroring Skin Weights, 440 Mirror Joints, 37, 83, 147, 149, 151, 155, 172, 204, 223–224, 252, 301, 316, 320, 375, 426, 427 Mirror Skin Weights, 422, 423, 440 Mirror weights, 422–423 Mockingbird, wings of, 188 Motion, analyzing, 15 pivot points identification and rotations, 16–20 Move Tool, 341 Moving joints, 33–34 Namespace Editor, 130, 205, 208, 210, 225, 234, 253, 257, 398 Namespace Options, 21 Name text box, 7 Navigation, 5 Neck creation for a biped, 115 creating control system for ribbon, 120–124 neck ribbon, cleanup for, 124–125 neck ribbon, creating, 115–120 for a quadruped, 275 cleanup for the neck ribbon, 283–284 creating a control system for the ribbon, 278–283 creating the neck ribbon, 275–278 Neck IK Spline, cleanup for, 140–141 Neck ribbon cleanup for, 124–125 creating, 115–120 Neutral pose, 345, 351 New Project window, 7 nHair, 106, 107, 118, 265, 290, 368 Node Editor, 5, 19, 410 Non-Deformer History, 423 Nonlinear deformers, 381–382 Non Locked list, 396 Normal constraint, 66–68 NURBS circle, 383

Index NURBS curve, 47, 49, 51, 52, 54, 58, 64, 65, 106, 118, 123, 126, 435 NURBS plane, 105, 106, 117, 121, 122, 265, 276 NURBS spline curve, 50 Object space, 29 Object type, 80, 129 Optimize Scene Size, 26 Orient constraint, 63–64, 158, 160 Orient Joint, 80, 130, 144, 145, 146, 171, 173, 219, 244, 284, 300, 309, 313 Paint operation, 122, 269, 281, 295 Paint Skin Weights, 110, 111, 122, 269, 280, 295, 423, 439 fixing skin weights using, 437–440 Paint weights, 422 Parent constraint, 62–63 Parent ikHandles, 241 Parent space, 29 Paws, 193 Payne, Tonya, 415 biography, 416 Pivot points identification and rotations, 16–20 Plane, 105, 115, 153, 275 Point constraint, 63, 64, 67 Pole Vector, 93, 213 Pole vector constraint, 65, 66 Polygonal characters, geoLevel switch creation for, 440–443 Polygons, 435, 437, 439 polySmoothFaceN, 441, 442 Preferences window, 8, 9 Prefix Hierarchy Names…, 78, 129, 143, 149, 171, 196, 221, 243, 250, 284, 308, 323 Project folder, 7–8, 21 Props, 379 deformers, 380 nonlinear, 381–382 simple basic prop rig, creating, 382–387 squash and stretch, creating a prop rig with, 387 cleanup for prop rig, 389–390 workflow, 379 Quadruped, 15 Quadruped head, joint placement for creating the joints for ears and collar, 312–313 joint local rotation axis, verifying, 313–314 Quadruped legs and feet, 193 hoofs, paws, and claws, 193 joint placement for leg and paw skeleton, 193 joint local rotation axis, verifying, 198–200 leg and claw rig, control system for, 215 joint local rotation axis, verifying, 218–237 leg and hoof rig, control system for, 248 cleanup for leg and hoof setup, 260 leg and paw rig, control system for, 200–213 cleanup for leg and paw setup, 213–215

talons and toes, additional functionality for, 237 cleanup for leg and claw setup, 246–248 joint local rotation axis, verifying, 243–246 workflow, 194 Quadruped spine and neck, 261 FK tail, creating, 284 cleanup for the FK tail setup, 289 verifying joint local rotation axis, 286–288 ribbon neck creation for a quadruped, 275 cleanup for the neck ribbon, 283–284 creating a control system for the ribbon, 278–283 creating the neck ribbon, 275–278 ribbon spine creation for a quadruped, 264 cleanup for the back ribbon, 272–274 creating a control system for the ribbon, 267–272 creating the back ribbon, 264–267 ribbon tail, creating, 289 cleanup for the tail ribbon, 297–300 creating a control system for the ribbon, 293–297 creating the tail ribbon, 289–293 scapula addition for a quadruped, 300 cleanup for the scapula setup, 302–303 creating a control system for the scapula, 300–302 joint placement of the scapula, 300 workflow, 263 Quaternion rotation method, 52 Quick Layout, 4 Quick Select Sets, 399, 402, 418, 424, 427 Real numbers, 28 Rebuild, 109, 121, 268, 279, 294, 371 Referenced file, creating, 21 Reference Editor, 21, 22 Remove Joints, 129, 149 Remove Reference, 21 Ribbon method, 50, 51 Ribbon neck creation for a biped, 115 creating control system for ribbon, 120–124 neck ribbon, cleanup for, 124–125 neck ribbon, creating, 115–120 for a quadruped, 275 creating a control system for ribbon, 278–283 neck ribbon, cleanup for, 283–284 neck ribbon, creating, 275–278 Ribbon Spine, 50, 115, 278 Ribbon spine creation for a biped, 103 back ribbon, cleanup for, 114–115 back ribbon, creating, 105–108 creating control system for ribbon, 108–114 for a quadruped, 264 back ribbon, cleanup for, 272–274 back ribbon, creating, 264–267 creating a control system for the ribbon, 267–272 Ribbon tail creation, 289 creating a control system for the ribbon, 293–297

453

Index tail ribbon, cleanup for, 297–300 tail ribbon, creating, 289–293 Rig, defined, 44 Rigging, 12 facial, see Facial rigging proper character placement for, 23 Rigging Menu Set, 76, 106, 109, 127, 168, 195, 266 rightBrowDownUp, 360 rightNarrowWide, 361 rightNoseScrunch, 361 rightSmileFrown, 362 rightSquint, 361 rightWink, 361 Rig scene files, 21 Rivet command, 65 Rotate plane (RP), 48 Rotate-Plane IK solver, 83, 202, 222, 250 Rotate-Plane Solver, 81, 153, 221, 250 Rotate tool, 34, 54, 55, 56, 115, 174, 341 rotateX, 99 Rotation order and Gimbal mode, 52 connection editor, 57–58, 59 expression editor, 58–59, 60 Set Driven Key, 59–61 RP, see Rotate plane RP solver, 49 Scale constraint, 64–65 Scapula addition for a quadruped, 300 cleanup for the scapula setup, 302–303 creating a control system for the scapula, 300–302 joint placement of the scapula, 300 Scene file cleaning up scene file for animation, 398–399 preparing scene file for skinning, 399–401 Screen-capture of the model, 16, 17 SC, see Single chain SC solver, 49 Sculpt geometry tool, 343–345 Seagull, wings of, 188 Search and Replace Names…, 129, 149, 240 Select By Component type, 80, 85, 90, 91, 208, 209, 232, 233, 237, 244, 287, 313, 318 Select by Name, 399, 411 Select By Object Type, 80, 219, 244, 287, 314, 319 Set Driven Key, 59–61, 95–98 Set Preferred Angle, 50, 81, 152, 201, 220 Set Project window, 8 Shading, 387, 438 Shading options set to X-Ray, 25 Shape Editor, 345, 347, 354–355 Shelf Editor, 404, 405 Shelves, 4 Shoulder joint, 143 Sidebar icons, 4 SIDE orthographic view, 76, 127, 195, 307, 312

454

Single chain (SC), 48, 50 Single-Chain IK solver, 84, 203, 204, 223, 224, 251, 252 Single-Chain Solver, 82, 147, 154, 203, 251, 300, 367 Skeleton setup, 11 File Referencing, 20 changing the referenced file, 21–22 joints, working with additional thoughts about joint placement, 37–38 Display Size, 27–28 Joint Tool, 26–27 local rotational axes, 28–33 mirroring joints, 37 moving joints, 33–34 placing joints, 33 reorienting joints, 35–37 repositioning joints, 33 rotating and scaling joints, 34–35 motion, analyzing, 15 pivot points identification and rotations, 16–20 setting up the work area, 23–26 workflow, 13, 14 Skin, 110, 121, 122, 269, 418, 422, 424, 428, 429 Skinning a character, 415, 423–425 Component Editor, fixing skin weights using, 434–435 geoLevel switch creation for polygonal characters, 440–443 influence joints, adding, 425–434 Mirroring Skin Weights, 440 Paint Skin Weights, fixing skin weights using, 437–440 scene file, final cleanup of, 443 colorizing the controllers, 446–447 making geometry unselectable, 445–446 testing rig relocation, 444–445 Smooth Skin Weights, fixing skin weights using, 435–437 workflow, 417 Skinning tools in Maya, 418 adding influences, 419–420 component editor, 420–421 creating the skin deformer, 418–419 mirror weights, 422–423 paint weights, 422 smooth skin weights, 421–422 Skin weights, fixing using Component Editor, 434–435 using Paint Skin Weights, 437–440 using Smooth Skin Weights, 435–437 Smooth Paint operation, 440 Smooth Skins tab, 421 Smooth Skin Weights, 421–422 fixing skin weights using, 435–437 Soaring wings, 188, 191 Soft modification tool, 343, 344 Spine, 103 controlled by IK spline solver, 50, 51

Index controlled by Ribbon method, 50, 51 movement in, 47 Spine chain, 31 Spine creation for a biped, 103 back ribbon, cleanup for, 114–115 back ribbon, creating, 105–108 creating control system for ribbon, 108–114 for a quadruped, 264 back ribbon, cleanup for, 272–274 back ribbon, creating, 264–267 creating a control system for the ribbon, 267–272 Spline IK curve, 49 Spline IK solver, 49, 50 Squash and stretch creating a prop rig with, 387 prop rig, cleanup for, 389–390 expression solution for, 405–408 Utility Node solution for, 408–412 Squash deformer, 382 Status Line, 3–4 Stickiness, 47, 48 Surfaces, 121, 268, 278, 294, 343 Swallow-tail kite, wings of, 189 Swan, wings of, 190, 191 Tail creation, 289 cleanup for the tail ribbon, 297–300 creating a control system for the ribbon, 293–297 creating the tail ribbon, 289–293 Talons and toes, additional functionality for, 237 cleanup for leg and claw setup, 246–248 joint local rotation axis, verifying, 243–246 Tech Art, 12 Three joint chain blend, 49 toeTwist, 99 toeWiggle, 99 Tongue ribbon

cleanup for, 374–375 creating, 368–371 Tool Box, 4 Toy Story, 186 Translating joints, see Moving joints Type options, 70 Unbind Skin, 427 Unlock Selected, 396 Use Namespaces, 21 User Account menu, 4 User interface, 1–2 User preferences, setting, 8–9 Utility Node solution for squash and stretch, 408–412 Vertices, 343, 435 View Panel, 4 Voxels, 418 Willis, Ben, 75 biography, 75–76 Wings, 186–192 Workspace selector, 4 World space, 28–30 Wrapping up the setup, 393 additional tools creation for animation, 402–404 bridge shape, creating, 401–402 cleaning up scene file for animation, 398–399 ikSpline Spine, adding squash and stretch to, 404 expression solution, 405–408 Utility Node solution, 408–412 preparing scene file for skinning, 399–401 workflow, 395 X-Ray, 76, 312, 387, 438 shading options set to, 25 Yokley, Ryan, 42 biography, 43–44

455