“Smile” short film case study part 2, Rigging

January 1, 2009 by  

Welcome to part 2 of the case study for my short film that was completed by a team-mate (Philip Zarcilla) and I for the final year of my degree in 3D animation. This part will be a brief overview of the techniques I used when rigging the main character.

Intro

The first thing I do when I am rigging is to write down everything that the character needs to be able to do. For instance I didn’t need to do an elaborate foot setup because the animation didn’t call for any complicated foot work, which is why it only has a foot roll attribute on the foot control. Its good to also write down everything that needs to be rigged so you can have a check list, It could cost a lot of time if you forget to rig a certain control. Once I have made my plan I start laying out joints, then I move onto making control objects and so on.

Here is a look at the finished rig. It took me a few days to complete and I must say that is was the most challenging rig I have ever made. There was a lot of very tricky controls that needed to be made and I didn’t go into it in the beginning knowing how I was going to do them. Because its a robot that doesn’t have any parts that deform like something organic would it meant that I didn’t have to skin it and paint weights. Which was a good thing because that would have made the rigging time so much longer.

The Rig

You will have noticed that the controls are colour coded based on their placement on the character. This is standard practice and very helpful for the animator. By having a colour coded system of controls the animator and easily differentiate between similar controls on different body parts, this means the animator won’t have to keep clicking around trying to find the controller he/she is looking in a complicated pose.

Organisation

I would say organisation is the most important feature of a rig. Things need to be set out logically and in a tidy manner so it can be easily adjusted if necessary. It also makes it far more difficult for the animator to break the rig if everything is tidy.

As is shown in the pictures of the “Outliner” and “display layers”, everything is organised. I put things like the joints, IK handles, clusters, wire deformers etc on the “DO NOT TOUCH” layer. this is simply to let the animator know that he/she doesn’t need to go fiddling with anything on that layer. I also put the controls for different body parts on different layers, this is because the animator may wish to work on one particular part at a time and doesn’t need to adjust other controls.

As is shown in the picture of the hypergraph there was alot of nodes. from geometry to joints, controls objects, constraints etc. Absolutely everything was named with a logical naming convention and then put into the appropriate groups as seen in the picture of the outliner.

The process of putting everything into groups normally takes place towards the end of the entire process because it can be impossible to know exactly what groups I am going to need as I’m going along and if you get hung up on grouping everything as you go along it could mess with some parts of the rig in ways you don’t want it to.

Features

The hand and feet controls are pretty standard. The foot setup is what’s known as the “Classic reverse foot setup”, as opposed to the group based reverse foot setup. the difference being that the classic version is based on a separate small joint hierarchy under the feet to get the “foot roll” control which is used when a character is walking. the grouped based version used a set of empty group nodes to achieve the same control and more if needed. We didn’t see the need to have many controls for the feet as we didn’t want the character to walk with the same movement as a human, because its a machine. We wanted it to have an awkward look to the way it walks as if it is imitating someone walking.

The hand controls are pretty standard also. The animator can access all the finger controls by selecting the little box that is just above the hand and then adjust them in the channel box. You can see how simple it is to get a pose by just adjusting the parameters, the animator could even select multiple attributes in the channel box and middle mouse click and drag to adjust them. It was made using maya’s “set driven key” tool.

The facial rig is rather simple also. It is a blend shape based system where the blend shapes are linked through set driven keys to the face controls. There wasn’t many blend shapes need since the character is a robot it wouldn’t have the emoting capabilities of a human. The controls are designed to give out subtle indications of emotions and because it doesn’t have a mouth it only has the eyes to convey emotion.

There are many cogs placed throughout the character. These are in place to create interesting secondary animation, since the character is a robot it needs to some kinda of complicated looking moving parts to add a more interesting look to it. It was rigged so the animator could use one control to control all cogs at once, the idea being that if the character was thinking or feeling sad the animator could adjust the speed of the cogs accordingly to create a deeper sense of emotion. The setup for the cogs was rather simple.

Procedural Animation


I used a series of very simple expressions to control each the speed of each cog with one control. For instance the line “Robot_MouthCog02_L_Geo.rotateX = time * Robot_Head_Ctrl.Cog_Speed * -2;” simply means. The rotateX attribute for the specific cog is equal to time multiplied by the main cog control speed attribute which is then multiplied by minus two. Its the minus 2 part which is where I could add a lot of randomness to the cogs. Each cog has a different number at the end of the expression so no two cogs are going at the same speed. and because this particular cog is multiplied by minus two then that means it will be going in the opposite direction to cogs where the number is positive. Video of cog animation

By far the trickiest body parts to rig were the spine and neck. I originally planned to use a “spline IK” setup with joints for the spine and neck but there were too many undesirable bi-products when using spline ik for these thing. For instance when using a spline ik for something like the spine of a character, often the joints above where the spine ik ends follow the motion of the spline ik’d bones below in an annoying fashion. I did not want this so I sought to find an alternative. after thinking and experimenting with different techniques I came up with a way to have the control I wanted without any annoying bi-products. I basically use wire deformers attached to control objects using clusters and constraints and It gave me all the control I needed.

Rigging Cables

As you can see the the spine and neck react exactly the way I intended. This setup also allowed for me to add controls in the centre of the wire if I wasn’t happy with the deformation and it was setup so the middle control would always be in the middle of the end controls. Its probably the thing I am most proud of about this rig because I thought it up from scratch and it works perfectly for what is needed.

The final tricky thing to rig was the dynamically simulated wires around the spine which attach at the hips and torso. It was simulated using maya’s new Ncloth dynamics system which proved to be quite fast and stable. It was simulated in much the same fashion as you would simulate clothing for a character. The animation was done first without any simulation then once the animation was finished I would drag the time slider the frame -100 or something around that number. which is where I would have the robots Bind pose already keyed at that frame and then It would slowly move towards its first pose the nearer the time slider got to frame 0. In other words I had to give the wires time to relax and ease into the first pose before the animation begins.

That concludes part 2 in this case study. I hope you enjoyed a brief look into the techniques used on my film and leanred something interesting in the process.

Enter Google AdSense Code Here

Comments

Comments are closed.