The fourth of several excerpts from the book, Inspired 3D Character Setup.
All images from Inspired 3D Character Setup by Michael Ford and Alan Lehman, series edited by Kyle Clark and Michael Ford. Reprinted with permission. Rick Grandy
This is the latest in a number of adaptations from the new Inspired series published by Premier Press. Comprised of four titles and edited by Kyle Clark and Michael Ford, these books are designed to provide animators and curious moviegoers with tips and tricks from Hollywood veterans. The following is excerpted from Inspired 3D Character Setup.
A Brief Introduction
Rick is currently a character setup artist at Rhythm & Hues in Marina Del Ray, California. Ricks approach to building characters is finding that fine line between too simple and too complex. Here Rick talks about his approach to character setup and problem solving.
Michael Ford: Give us a little background on your career.
Rick Grandy: I guess it pretty much started when I decided not to pursue a degree in mechanical engineering. I was working part-time for Ohio State University, helping maintain the computer labs for the Industrial Design department, and one of the professors encouraged me to think about changing directions. I had never before thought that I could actually make a living as an artist; I saw drawing as a hobby, something I had always done for fun. I applied to the program and was lucky enough to get accepted. My next lucky break was getting an internship at a small production company.
I was in my first year of the design program (third year overall) and found myself as the second shift Paintbox artist for Mills-James Prods., doing mainly 2D elements for use in edit sessions. This led to a staff position creating graphics for the Business Theatre Group and eventually starting an interactive multimedia group. I believe this was around 1994 before the medium exploded with things like Java and Flash. As time went on, I kept my ties with Ohio State and my evenings were spent at the Advanced Computing Center for Art and Design, where I had access to an SGI with various software packages. I took an introductory programming class and then a RenderMan programming class while teaching myself Alias PowerAnimator and Wavefront Visualizer. At work, we had just purchased a new 3D platform, TDI Explore, and I switched from multimedia graphics back to post-production and became the primary 3D artist. Ive been doing 3D work ever since.
[Figure 1] Rick helped create the rigging for Imhotep and the priest mummies for the 1999 release of The Mummy. All The Mummy images © 2002 by Universal Studios. Courtesy of Universal Studios Publishing Rights, a Division of Universal Studios Licensing Inc. All rights reserved.
I left Mills-James in 1996 and took a position with Industrial Light & Magic (ILM) and focused on skin weighting. I found that to properly skin a character, you need to know how it works, how to fix it and how to rebuild it. I was fortunate to sit next to and work with Dennis Turner, an amazing animator and character rigger that taught me more than I could have ever hoped for. Working with him on many projects (see Figure 1), as well as with Tim McGlaughlin (see Chapter 17 of this book for an interview with Tim), Kevin Reuter, James Tooley, Doug Smith and others gave me an appreciation that you rig for the artist, the animator not for the rocket scientist technical director.
In the spring of 2000, I was offered a position at DreamWorks Feature Animation to help set up a 3D character pipeline. It sounded like a great opportunity, and I left ILM for sunny Los Angeles. I got my first dose of Maya after being in the world of proprietary software and Softimage at ILM. I helped set up a bunch of character standards and workflow for the 3D aspects of the pipeline. We were making 3D characters to be rendered to look like 2D animation. The results were beautiful, and I got to work with some wonderful people. Overall, the environment was a bit overwhelming for me, and I decided to look for a position at a smaller company. Ive been at Rhythm & Hues since the fall of 2001.
MF: Can you describe the first thing that you do when you get geometry from a modeler or after you have created the model itself? How do you begin the process of creating a character setup?
RG: The first issue with geometry is resolution. How does it need to move? Where is it going to change its shape the most, and do I have enough resolution in those areas to get the shapes I need? You need more resolution in the elbow than in the sections of the arm above and below the elbow, because the elbow exhibits the most change. After I think the resolution is adequate, I build the skeleton and work with the lead animator to fine-tune the points of rotation. Then we can begin skinning the model and building the control system for it. Put time into thinking what controls are needed and how they are oriented. Once animation has begun, you can modify the skin and skeleton all you want and the animation will still work if you dont change the animation controls.
MF: Are there any rules or guidelines that you always use when designing a setup?
RG: Keep it simple, as simple as possible. Complex characters tend to be slower, harder to fix, harder to understand, and have limitations that may be harder to overcome. I also try not to reinvent the wheel every time.
MF: That being said, when is it a good idea to break from your methodologies and try something new or innovative?
RG: Well, with each new system, you hope to improve upon your previous work (see Figures 2 and 3), but try to limit your improvements to where previous solutions failed to perform to meet your expectations. I also like trying techniques I hear other people are using. If I see a difference in what I have built, I go ahead and start using that technique. But one thing to keep in mind is that you should understand what you build, how it works and what each part does. Building some fancy new hand control can kill you in the end when it doesnt allow for accurate motion, the skinning looks terrible, and you have no idea how the system works. I have seen this so many times in peoples rigs, especially students.
MF: When you have a problem with your character that you just cannot solve, what is your process of trying to get the solution?
RG: The first thing to do is find the problem. I ask around if someone else has seen the problem or run across problems like it. Where does it first become obvious? A lot of times we dont see the problems until the character is rendered with textures. Other issues you can see in the rough animation model. Note that with a few possible shader issues, most problems are related to the character rig in one way or another. Many skinning issues are more a matter of where the joints are situated in the model than of the skin weights falloff. You need to understand how both the rig and the skin contribute to the deformation to know which one to fix.
MF: Whats a typical scenario for a problem like this on a character and how do you solve it?
RG: A good example would be in the shoulder. For effective animation and posing, youll generally want to place the upper-arm joint in the center of the shoulder. When you skin it with a nice smooth falloff over the top of the shoulder, a lot of times you get the shoulder caving in when the arm lifts. This happens because joints act like a seesaw with the pivot of the joint acting as the fulcrum. The majority of the geometry for the arm is on one side of the joint and it rotates up with it when the joint rotates. The geometry on the opposite side of the joint is like the person on the other end of the seesaw. When one end goes up, the other end goes down. To correct for this, you need to recognize why it happens and develop a solution to correct it, like adding an extra joint with a rotation point above the shoulder, or you can create sculpt or lattice fixes, etc.
MF: When is it better to fix the problem on a shot-by-shot basis versus on a global show level?
RG: Id say it depends on how often it occurs. Its all about efficiency. If the problem happens to come up in lots of shots, fix it in the master rig or develop a fix that can be automatically run on those shots that need it. If the problem is isolated to just a couple shots, just fix the individual shots. But make a note or script it, because it could crop up again.
MF: Apart from these types of changes, how do you manage change within a character pipeline?
RG: One of the first things I consider when putting together a character is the full breadth of what it will need to do. Next, I try to keep it as simple and modular as possible. Maintaining a simple organized hierarchy goes a long way toward tracking down a problem. The geometry, skeleton, deformers and controls are all separate pieces, and changing one should hopefully have minimal effect on the others. If you build simple and consistent rigs, a fix to one character should be easy to transfer to the others, usually with the help of simple scripts. Most of my rigs are easy to pick apart because I place nodes of similar function together (see Figure 4). All my geometry lives under one node, my skeleton under another, controls, etc. I also use a lot of constraints in my models, so the skeleton hierarchy could actually have 12-20 constraints riding under its hierarchy. This gives me easy access to all the parts of the rig and allows me to change a specific section of the rig without worrying about unwanted propagation throughout the model. I can also easily strip and replace sections too.
MF: How do your scripts and methodologies adapt to quick changes by the client or your own needs?
RG: Once a character is completed and shots have begun, you want to try to avoid making changes to the geometry and to the controls. Geometry changes can affect texture, lighting and, of course, skinning. Changing the animators controls doesnt allow their animation to transfer from old models to new models. Realistically everything else is up for grabs. Having a system of standards helps tremendously everything from naming of nodes to the organization of the hierarchy. If I build a human and a horse, the structure of their hierarchies is very similar. Scripts can exploit these standards and apply to more situations. They allow you to make a fix in one shot and apply it to another shot. Dont duplicate the work if you dont need to. But, if writing the script takes more time than it would take to just go in and fix the problem, the script may not be the way to go.
MF: Lets talk math. What are the most important areas of study that you use everyday, and can you give us some examples of problems you have solved using simple math and higher-level thinking?
RG: Well, Im a big fan of people who have knowledge different from my own. Im not a math wiz by any stretch of the imagination, but most programmers are. The key is to figure out what result you need to get, and what you have to work with, and then find someone who can help you. Most problems in characters are geometric, so the solutions can sometimes be really simple. I think I first realized the potential of math when I was looking at a solution developed for animating a wheel on a horse-drawn cart. At the time I probably would have just animated the translation of the cart then gone back and rotated the wheel so it looked like it had the proper speed rolling over the ground. The drawback is that you need to change all your rotations if you adjust the speed or distance the cart travels. This automated wheel solution eliminated the need for keyframing the wheel by calculating its rotation based on the distance traveled and the radius of the wheel. It didnt matter how you changed the movement of the cart, the expression gave you the correct solution for the rotation of the wheel. The whole setup is quite simple if you understand what information you have to begin with and what result you wish to achieve.
MF: Can you show us how to do that?
Basic Wheel Tutorial
This tutorial walks you through the process of creating a wheel that automatically rolls as you animate its translation in a scene. It works by using one mathematical equation:
rot= (dist* 180)/( rad* pi) or Rotation=( DistanceTraveled* 180) / (RadiusOfTheWheel* Pi)
1. Create a locator.
2. Create a spline curve to use as a motion path. Rename the curve path.
3. Make a wheel:
Start by choosing Create > Polygon > Cylinder.
- Select a default radius to 1, height to .2, and alignment down the z-axis. Choose Create and then rename the new object wheel (see Figure 6).
4. Change the wheel size by entering scale values of 1.5 in X, Y and Z.
5. Parent the wheel to the locator. Select the locator and Shift+ select the wheel and press p on your keyboard.
6. Put the value of the wheels Y scale in its Y translation channel (see Figure 7).
- This should move the wheel from center of the locator to sitting on top of the locator (see Figure 8).
[Figure 5] The locator, wheel and spline path in the view panel. [Figure 6] The locator, wheel and spline path in the Outliner. [Figure 7] Copy the Y scale value of your wheel and paste it into the Y translation.
Basic Wheel Tutorial cont'd [Figure 8] The wheel and the locator in the correct position.
- 7. Select the locator, then Shift- select the curve path.
8. Set your Timeline to read 1-100, as in Figure 9. Choose Animate > Motion Paths > Attach to Motion Path r.
9. Select the following options: Follow = ON and Parametric length = OFF, Front Axis = X, Up Axis = Y, World UpType = Scene Up (see Figure 10).
10. Click Attach and scrub through your frames. You should see the wheel attached to path and animate along it for the duration on your timeline (see Figure 11).
[Figure 9] The Timeline set from 1-100. [Figure 10] Attach to Motion Path Options menu. [Figure 11] As you scrub the timeline, your locator that is the parent of the wheel should be moving along the path.