Joints

A joint is a basic animation control. It is essentially a point in space and when two joints are created they are connected by a bone. The bone is symbolised by an elongated pyramid. Joints will normally be bound to geometry in a process called skinning. The skinned geometry will deform when ever a joint is manipulated. Joints don't have to be skinned to geometry and can often be used to animate geometry that is just parented to it.

You create joints using the Create Joints tool (from the Rigging menu set, choose Skeleton ➢ Create Joints). A simple wire sphere is created which represents the joint. When one joint is connected to another, the space between the two joints is bridged with a bone. The broad end of the bone is placed next to the parent joint, and the pointed end of the bone is pointed toward the child joint.

Joints are most often animated by rotating the parent joint or using inverse kinematics, which orients the joints based on the position of a goal called an end effector. Joints can also be animated by placing keyframes on Translate or Scale channels. This approach, however, is slightly less common and not recommended.

Joints are usually placed in a hierarchical relationship known as a joint chain. Joint chains can have many branches and numerous controls, depending on the complexity of the model. A series of joint chains is known as a skeleton.

Skeleton

In your body, your muscles move the bones of your skeleton, and as your bones move, parts of your body move. In Maya a skeleton is an armature built into a model that drives the geometry when the bones are moved. You insert a skeleton into a model and skin it to the geometry. When the skeleton’s bones are animated it animates the parts of the geometry to which they’re attached. A skeleton is useful for character animations, but skeletons have many other uses, they could be used to model a tree bending in the wind or used to drive locomotive wheels on a train.

Skeletons rely on hierarchies. Bones are created in a hierarchical manner, resulting in a root joint that is the parent of all the joints beneath it in the hierarchy. For example, a hip joint can be the root joint of a leg skeleton system in which the knee joint is the leg’s child, the ankle joint belongs to the knee, and the five toe joints are the ankle’s children. 

Kinematics

Kinematics is the study of the motion of objects. This is related to, but distinguished from, dynamics in that kinematics studies only the way in which objects move and not the cause of the objects’ motion. In Maya the term kinematics describes how joints can be moved to animate objects and characters. There are two main types of kinematics: forward kinematics and inverse kinematics.

The term forward kinematics refers to a situation in which each joint in the chain inherits the motion of its parent joint. So if you have four joints in a chain, when you rotate the root, the three child joints move based on the rotation of the root. When you rotate the second joint, the third and fourth joints inherit the motion of the second.

Forward kinematics can be useful in many situations; for instance, it is often used for basic arm animation for characters. However, they can be tedious and difficult to work with for other types of animation, particularly when you are animating the legs of a character walking or jumping. Constant adjustments have to be made to ensure that as the root joints are animated, the limbs of the character do not penetrate the floor or slide during a walk cycle.

Inverse kinematics (IK) cause the joints in a chain to orient themselves based on the position of a goal known as the end effector. The effect is as if someone grabbed your hand and moved it. The person holding your hand is similar to an IK handle. Moving your hand causes the bones in your arm to rotate around the shoulder, elbow, and wrist, the animation flows up the hierarchy and is therefore called inverse kinematics.

Inverse kinematics can be a more intuitive technique than forward kinematics in many situations. When used on legs, the Sticky option for inverse kinematics can prevent joints from penetrating the floor or sliding during a walk cycle. When animating an IK chain, you can simply change the position of the end effector using the IK Handle tool (from the Rigging menu set, choose Skeleton ➢ Create IK Handel) and all of the joints in the chain will orient themselves based on the position of the end effector. The end effector itself is positioned using the IK Handle; the end effector is not actually visible or selectable in the viewport (it can be selected in the Hypergraph window).

There are controls for blending between forward and inverse kinematics known as FK/IK Blend. You can switch between forward and inverse kinematics and even blend between the two.


Follow Along

The first rule when drawing skeletons in Maya is: do NOT draw skeletons in the perspective window. It will only draw the skeleton flat on the grid and not how you want it. The best way to draw a skeleton is facing the bisecting axis of the bend. When you draw the joint, you want to draw it in the window that faces the main rotation angle. For example, if creating legs on a character facing Z, you would build them in the side window so that you see the knee bend. The same holds true when drawing a spine. Arms held out in a T pose would be made in the top window since they hinge in the Y axis. As we go through these types of joint creations together, take careful notice of what window the skeletons are drawn in. For now, though, let’s simply get used to the joint tool and then we’ll delve deeper into how to use it.

In any window (except perspective), select Create Joints Tool (from the Rigging menu set, choose Skeleton ➢ Create Joints) and click a couple of times to draw some joints.

For each click you see a small ball appear. After the second click, a bone connects the two joints that you have created. You can see in the outliner that each ball is called joint1, joint2 etc. and they are children of one another. You can unparent them and reparent them in any manner that you want. The topmost joint is the root or the parent. If you select it you can move the whole joint chain around. The root is the only joint that is meant to be translated; all other joints are meant to be rotated.

If you break the joints’ hierarchy apart by MMB drag them out from underneath each other in the outliner, the bone connections will go away and you would be left with the ball portion of the joint. You can manually parent them back together by MMB dragging them on top of each other in the outliner. Remember that the top joint is the parent and rotates everyone underneath. That is important when making a skeleton for a rig.

Note: You can adjust the visible size of the skeleton with the Joint Size tool(from the Standard menu set, choose Display ➢ Animation ➢ Joint Size) It is just a viewing attribute and does not make a difference to the behavior of the joint.

If you were to make the skeleton backwards, meaning that you create a spine from the neck down to the tailbone, the main rotate for the spine would be at the neck. This would work if you were rigging a rubber chicken that has to be held by its neck, or some other doomed rig that must be hung from its neck. But, for normal living beings the body’s spine rotation starts at the base of the spine. To fix this type of issue you would select the base of the spine, the tailbone, and select the ReRoot Skeleton tool(from the Rigging menu set, choose Skeleton ➢ ReRoot Skeleton)

Now to look at how joints rotate other joints. It is important to note that every joint rotates its children. If one joint has three children, it will rotate those children. If those children have no children, they are at the tips; they do not rotate anyone and generally do not do anything. A thing to keep in mind is to remember to put in a joint where you need something to rotate, it is a common mistake.

Where to place joints

You want to place them so that they bend well with the model’s edgeloops. If you have great edgeloops but put the skeleton in the wrong spot, your rig can move poorly.

Joint orientation

Make a skeleton again. When you make the first click of the skeleton it draws a joint: joint1. When you click for the second time, if you drag the mouse around a little until you find the right spot for your second joint, watch what happens to joint1 when you let go of the mouse button to draw joint2. Joint1 rotates to line up with joint2. Try it again: click and drag around joint3, let go, and watch joint2 rotate to line up. Why?

What it is doing is it is rotating the X axis to follow down that bone. If you rotate the bone in X it should rotate as if it were a screw, around itself. If you move the joint it will mess up that X axis.

Note: You can hold down d and move the joint itself and none of its children will follow.

If you try to rotate the bone you will see that the rotation in X is not lined up at all. When you are first creating the skeleton, unless you draw joints perfectly in the right spot, you’ll need to move them to adjust them. Most of the time you will mess up the rotational axis of the skeletons as you create them. You won’t translate joints when you are animating them, only in the creation process. So we’ll need to learn how to fix those joint rotational axes.

Anatomy

This section will cover the foundations of joints in human anatomy. With out joints the human body would be unable to move, joints are responsible for holding our bones in place while also allowing for movement between them. The following are a number of joint types found in the human body which will help us understand what type of movement to create in our rigs. 

Fibrous Joints: are held together tightly by fibrous tissue and are normally immoveable, the skull structure for example is fixed by fibrous joints.

Cartilaginous Joints: are connected by cartilage and allow limited movement, for example the cartilage between the ribs and the sternum are cartilaginous joints allowing the chest to swell slightly during breathing.

Synovial Joints: are joint cavities that are filled with synovial fluid, most of what we consider joints are this type and they are the most manoeuvrable in the body.

Synovial joints can be broken down into three specific type of joints which are divined by the type of movement they allow.

Synovial Joints Uniaxial: this joints allows for movement around one axis. Hinge and pivot joints are the two main types of uniaxial joints:

Hinge Joints are when the articulating ends of the bone create a hinge shaped joint. This type of joint is limited to a single axis of motion such as the elbow.

Pivot Joints are are when a round bone rotates around another bone. the cervical vertebrae is a good example where it allows the head to turn from side to side.

Synovial Joints Biaxial: this joint allows for movement around two axis. Saddle and Condyloid joints are the two main types of biaxial joints;

Saddle Joints is found in only one place in the human body and is well known as it creates the opposable thumb. 

Condyloid Joints are where the articular surface of the bone which inserts into the joint and the cavity are oval in shape allowing for flexion, extension, abduction, adduction and rotation movement. The knuckles (metacarpophanlangeal joints) are a good example of this type of joint.

Synovial Joints Multiaxial: this joint allows for movement in three or more axis. Ball & Socket joints and Gliding joints are the two main types of multi axial joints;

Ball & Socket Joints are where a ball shaped articulating surface of a bone which inserts into a concave cup on another bone. This allows for the greatest range of movement of any of the joints, The shoulder (glenohumeral joint) is an example of this type of joint.

Gliding Joints are joints that have flat articulating surfaces which allow for limited sliding movements. The radiocarpel joint is a good example which is used when waving your hand.