Animation is the corner stone to most successful video games. Without it we would still be stuck in text based games, or flat picture montages (Captain Pugwash ( for older readers)). So understanding it, and how to create them, is essential for any potential game designer, not to mention film maker.
Maya has a good animation sub program. Which allows the user to animate any mesh created. Just like using clay the director can manipulate the mesh into any shape desired. With these tools available this would make the animator one of the most powerful tools out there.
For a start I found some videos to help me get to grips with the animator in Maya.
The first is a falling ball that begins a chain reaction.
The second gets into the controls and procedure of animating a moving object.
For help with the IK additions to models I found a video by Maya demi god Mike Hermes. He explains precisely how the use of an IK handle can simplify the animation process of suitable objects.
A nice introduction to the Kinematics tool in Maya.
The next video shows how to connect many IK handles to animate a complex model, in this case a person.
I know that this is a video for a full character rig but the information included will teach any body how to combine IK handles, along with their separate control rigs. Having this knowledge is essential, even for simple models like these.
I see the IK handle, once added, as a string. When you pull the middle of the string the model is also pulled from each end (where the IK handles attach). When the ends are pulled the model folds across it’s joints. Bending into a new shape. I know the control for the handle is moved via the move tool but the actual movement of the model is as if the IK handle was a bow string and it had been drawn.
One more video is left to see. Another basic skeletal and IK rig and how to bind it to the models skin. This one runs quickly through the whole process again and could be useful in finding any understanding missed in the first two.
Animation
Today we learned how to simply animate a sphere. Turning it into a ball that bounced.
Navigating to the animation tool set in Maya, then opening the graph editor ( Windows, Animation Editor, Graph Editor). The graph editor allows you to manipulate any of the translations, rotations, and scales individually. Pressing ‘S’ to add a keyframe sets all these at once. Making any other movements difficult, you would need to amend any changes across all physical translations.
Using the channel box and inputting the individual transformation to each box allows a greater control of the animation. If you require a change of translation on the z axis you would simply type in the new co-ord’s, right click, and select key selected. Now move to the next key in the chain and add the next. This simplifies the whole process. Allowing you to perfect the movement along one transform before moving on to the next. Adding a separate key chain along a new axis independently.
Once happy with the basic movement I then needed to add extra animations to make the ball appear as normal. This can easily be achieved through the graph editor, located under windows, animation editor, graph editor. When accessed it should look like this:
The yellow bar is the frame scale and moves left to right as the video plays. You can also click drag the yellow tab at the top to move each frame individually. Leaving it on a particular frame allows you to manipulate the assets and keyframe accurately. This allows an animator to add chains of movement along one orientation at a time. Building a set of movements for one asset.
After animating the base movement of a ball the graph looked like this:
The highest point, on the left, is the starting point of the ball. The second point is placed to stop the ball deforming too much before it comes into contact with the floor. At first the only markers were at the highest and lowest points of each peak or trough. All other references are where the shape of the ball flexes after impact. This aids in keeping the object within a desired animation likeness. Not having these points can distort the natural movement as the program is trying to fit the metamorphosis between any two points of reference. So if you have a shape that is whole, normal, that impacts on a surface, distorting its height to half the original, the program will calculate the transition between the two points and animate this over the allotted time frame. The truth is an impact is sudden so the object would not compress until the moment of impact. Adding the same reference as the first just before the impact point creates an illusion of the objects integrity as it falls before the impact occurs.
Instead of morphing the bottom of the ball, as an impact would, I decided to place the concerned area below the horizon, again giving the illusion that the ball had compressed on the floor. As this was a practice I am not that concerned but when I do this for real I will reflect all movements of the object under it’s stresses. Unless instructed otherwise.
When I was happy with the overall movement of the ball bouncing I moved on to the next step of animating the balls compression’s and flexes, before and after impact. This was achieved by moving the slider in the graph editor to a desired point of time and scaling the ball to a shape that best fit its real life action. When done the balls resizing attributes appeared like this in the graph editor:
Leaving me with a bouncing ball that deforms upon impact:
I know the balls movements are not precise but I can see how the process works. Keeping the graph flow as smooth as possible aids in the animation. A smooth curve allows for a longer, smoother animation. Where a sharp peak,or trough gives a much sharper transition.
Another important fact is that between two points a wave, if the object is sized differently at each point, the asset will begin to morph toward the other point at the moment of leaving the first. This can be fine if the asset, like a ball, stretches naturally but if it doesn’t then you must add another keyframe of the assets true size and shape just before the transitional one. This will give the illusion that the ball has suddenly hit a hard surface and deformed.
Evaluation
I found this software fairly easy to understand as it follows the natural process of the real world. To better understand how to animate correctly I could find scientific data of objects movements presented in graphical forms. Doing this would allow me to better see an objects transitional state under certain conditions, allowing me to more easily translate it into the graph flow within Maya.
This unit required seven more animated assets. So I created them.
As I was building them I found a tutorial on Youtube. It showed how to create controllers for animation. The job of the controller is to speed up the animation process by grouping parts of the asset together and assigning them to a separate, new, mesh. In this case a nurbs circle, selected because it doesn’t show up in renders. When assigned the the nurb it allows the animator to select this rather than all the parts of the mesh required to move in the animation.
For example I made this digger:
Before I started I made sure all parts of the asset had not been combined, this helps with the animation process.
I needed it’s bucket to move up and down, the arm to flex, and the body to turn. As these need to move from their own control I needed to add a rig to certain aspects. The bucket required none but the arm required to flex like an arm. This is achieved by two bones, one in each segment of the arm and an IK (Inverse Kinetics) handle. When you move the IK handle it’s contraction and stretching cause the two bones to pivot from their adjoining axis, much like a bow flexes when you pull the drawstring.
With that done all I needed for the body was a single bone, which I could rotate with the tool.
Next came assigning them all to their own control’s.
When doing this you must work from the last point backwards. With this in mind I placed the first control over the IK handle manipulation point (end of the arm before the bucket). As this was going to control both the arm and bucket I selected the IK handle , then the control circle, then parented them to it (press P). In the outliner I dragged the bucket ( hold middle mouse) into the control. Finally i named the controller bucket control. To test I selected the control and moved it. The arm flexed. I then selected the bucket and rotated it with the tool. With both functioning correctly I moved on to the body.
This was much simpler, requiring only the single bone to be parented to it’s controller. After testing I dragged the arm control into the body control in the outliner and tested again. When I selected the two controls, one at a time, in the viewport I could move them as desired. I named this digger control.
The final control goes at the base of the asset ensuring it can easily be seen, this is the main control. In her I placed the digger control along with all other unused pieces of the asset and tested it. this control allows you to select and move the entire asset along with it’s controllers. Because they are all in her you can also resize or rotate the entire asset as if it was one asset.
The last step is to limit the movements of each control. This is done in the controls attribute editor, under limit information. Here you can limit any of the translate, rotate, and scale attributes of the control. For example, the digger control, I rotated it to the point I required, across the Y rotation. In the translate attributes the corresponding numbers were displayed under the rotate header, all I needed to do was click on the arrow on the max side of these numbers and tick the box. With the max rotation set all I needed to do was rotate the digger to the opposite side and set these numbers in the same way for the min. I couldn’t do this to the arm as the movement require it to travel across both negative and positive coordinates on both the Y and Z axis to function.
Having completed one I made the rest.
As you can see my chest required four controls. One for each of the ankhs, for rotation. One for the lid which contained the ankh controllers as well as being able to slide the lid backwards. All of which were assigned to the main control.
Rotating doors only require one bone, like the digger control above but I could limit the transforms to the Y rotate attributes.
A door only requires an IK triangle just like the diggers arm. Limiting it’s transforms to the X translate.
A pedal bin was a little more difficult as it rquired two IK handles, one for the lid and one for the pedal. The action was again the same as the door for both but one was inverted.
The lamps arm and head was the same format as the arm and bucket on the digger.
The bow was the most complex of them all.
I required the bow to flex as the drawstring was pulled backwards, away, from it. At first I made a half bow shape, starting from the centre of the grip and ending halfway down the drawstring. This worked well for half a bow so I added made a mirror of this for the bottom. This is where I ran into problems. There was no way to attach both halves of the bow to the one bow mesh. After a lot of trial and error I looked on you tube for help. Where I found a grainy video with no sound but was able to see that they, like me, started at the centre of the grip, moving around the bow, to the drawstring, which they ended just above the centre, probably for the hand to fit beneath. For the lower half they clicked on the first bone, centre of the grip. From here they proceeded in the opposite direction. Around the lower half of the bow, finishing on the drawstring in the opposing position from the above one. After this they clicked on the centre of the grip again, selecting the rig, then the bow’s mesh. Then bind skin. This bound the rig to the bow. All I needed to do now was add an IK handle from the last bone, on the string, to one on the edge of the grip, where the bow does not flex. I repeated the same for the lower bow across the corresponding bones. My bow now worked.
I will post videos of my animated assets when I work out how to on this blog.
Evaluation
Adding controls to animate is much easier than selecting each part separately. My rigging needs more understanding, especially when to parent and when to bind to skin. Also I have become aware of another method using expressions.
Setting up a control rig is a mind bending task at times. Requiring the programmer to visualise the movement and how it effects the model into the model in the correct manner. Getting the IK handle the wrong way around was fairly common in my process.
In order for me to progress with this I need more practice, something that is difficult on a course with so many moving parts to both assimilate and refine. I will come back to this in the future when I need to produce a working rig.
As far as fine tuning my skills practice is the key. I think that all, or most, of the key knowledge has been covered in this unit.
The next step is to learn the basic application and use of FK handles ( Forward Kinetics).