Welcome back! Hopefully last week’s insights into the Texturing process have produced some spectacular looking models for you. This week we’re moving right along with the next aspect of Asset Creation, the wonderful process of giving your meshes a skeleton! It’s also known as Rigging, and even if we’re not creating a literal skeleton, we’re still working with bones, skinning, and other fun biology-adjacent concepts. But that’s only Rigging as it applies to human or organic meshes. There’s a whole other side of Rigging that looks at mechanical movements, where things have to “click” and “link” and “track” in big complex machinery.
Both organic and mechanical rigging have the same concepts at heart, but the means in which we get to them differs, as always. So lets start with an overview before diving straight into the wonderful technical art of Rigging!
Controlling 3D Movements
Before we can employ our stellar animation chops, we need to give structure to our newly created 3D models. Rigging takes it’s inspiration from biology, specifically the ways in which things move. Humans move in very specific directions, which means we are only concerned with re-creating those specific movements. With some caveats that is (which we’ll talk more about next week).
As such, we’re able to borrow the concept of a skeleton from biology and use it to guide how our models move. We call it a “rig” and not a skeleton because we’re not constrained by biological movements. Each rig is made up of “bone” segments that inherit movements from a parent or root bone in a hierarchy. Finally, we can tack on any number of additional parameters that control how our mesh moves in a 3D space.
A Quick Aside
Not all movement in 3D is accomplished by rigging. For chaotic movements, “simulations” are used. Much of the technical side of creating in 3D is determining what should be rigged and what should be simulated. Clothing and fabric movements are often chaotic enough that simulating them provides the best means of recreation.
There isn’t going to be a Blender Basics article on Simulation since Blender isn’t built for it. While there are simulation tools within Blender, they are woefully lacking in both quality and features compared to other DCCs like Marvelous Designer (for cloth) or Houdini (for particles).
Rigging Key Concepts
Skeletons / Rigs
At the core of all of Rigging lies the rig itself! As mentioned above, each rig is a collection of bones that are arranged in a hierarchy. Moving a bone further up the hierarchy influences the bones further down the hierarchy. There are exceptions to this, as we’ll get to later in the list, but hierarchy is the defining relationship for how rigs work.
Bone Roll
Bone Roll is the amount of unintentional rotation that a bone has. When you’re manually adjusting rigs you wind up positioning one end of the bone while leaving the other stationary. This may cause the bone to “roll” involuntarily as the one end moves around. The base rotation of the bone is altered by this, even if you haven’t intentionally rotated it. Therefore, adjusting the Bone Roll value corrects the orientation of the bone back to normal.
Quaternions
So if you’re like me, before getting involved in 3D you thought to yourself “there’s no way I need to learn any more complicated math, I’m making art!” Quaternions are here to tell you that you were wrong. So, so wrong.
While Euler Rotation consists of your X, Y, and Z rotations spanning 360 degrees each, Quaternion Rotations consists of an X, Y, Z, and W rotations spanning from 0 to 1. Where does the W rotational value come from? The fourth dimension. No really. If you think of the X, Y, and Z rotations as being a 3D concept, then think of the W value as an additional dimension controlling the orientation of that 3D concept.
We relate this back to Rigging as each bone in a rig has an orientation relative to it’s parent bone. When we move onto Animating the rig, we need to be able to properly track how all of the bone rotations are setup so that the DCC doesn’t misinterpret a rotation value and send an arm spinning off in a random direction.
In practicality, you probably won’t need to deal with Quaternions until you move away from a DCC like Blender and into a Game Engine like Unreal or Unity. But it’s useful to be aware of in case things start to move strangely.
Skin Weights / Weight Painting
With the complex math out of the way, how does a rig actually move a mesh? By moving the vertices of the mesh. Remember, a model is just a collection of vertices connected by edges that form faces. Moving either an edge or a face affects more than one vertex, which we might not always want. Therefore the vertex is the component that we apply movement to.
Much like UVs and Vertex Painting, we can attach a Skin Weight value to each vertex on a mesh that tells the DCC how much the movement of a bone affects a particular vertex. The Skin Weight value is assigned to a Vertex Group, which can be assigned to specific bones within the rig. Like Vertex Painting, this value can be painted onto a mesh manually, or we can let Blender do it’s best to assign each vertex to the right vertex group. Usually a combination of both is needed for a complex character.
Deformations
Deformations are how the model’s topology stretches and squashes under the influence of a rig or other constraints. Sometimes you want more deformation to accentuate a particular aesthetic or image, while other times you just want an object to deform as it would in the real life.
To adjust your Deformations, you have to go back in and adjust the Skin Weights of your model, ensuring that the topology moves as you intend it to. Remember as well that UVs are statically projected images. If a selection of faces projected over a small area in the UV grid is stretched out, the projected image gets stretched out as well.
Rest / Pose Positions
To make everyone’s lives easier, artists will create a character mesh with a specific pose known as the Rest Position. 99% of the time, it’ll either be a T-pose or an A-pose. Both are used specifically because they are symmetrical (allowing Skin Weights, UVs, and Rigs to be mirrored across the mesh) and give the most amount of flexibility when it comes to managing Skin Weights. As you’ll come to see in next week’s issue, transferring animations between characters is considerably easier when they’re posed in a T or A pose.
When we’re actively working with a character or object that has had movement applied to the rig and bones, we’re working in the Pose Position. Depending on your DCC, you’ll have the option to switch between viewing a rig’s Rest and Pose position. Adjusting the rig is easiest in Rest Position, but we can’t animate in Rest Position. Therefore we actively animate and move the rig in Pose Position, while adjusting rig elements in Rest Position.
Bone Collections
Often times rigs will get complicated. If you imagine all of the major bones in your body, you can quickly get overwhelmed in trying to keep track and manage all of them. 3D rigs can get even more complex as additional sets of bones can be used to control the way a mesh deforms. If we know that a grouping of bones aren’t going to be animated, then we can assign them to a Bone Collection and hide them away from sight.
Shape Keys
Rigs are great for getting the general movement looking the way we want. Unfortunately, for smaller details it isn’t always practical to try and add them via rigs and bones. Sometimes we just want to manually go in and move around a small area without creating a more complex rig.
Shape Keys are the solution. Much like Skin Weights, Shape Keys are collections of vertices that have specific motions attached to a value between 0 and 1. If the Shape Key is set to 1, then the specified movement is fully influential on the vertices. If it’s set somewhere between 0 and 1, then you end up with a corresponding amount of influence.
IK / FK
How do you think of moving your arm? Is it your hand guiding your elbow? Or are you moving your elbow which in turn guides your hand? Depending on your answer, you’re thinking in terms of either IK (Inverse Kinematics) or FK (Forward Kinematics).
Rigs are created via hierarchy, where bones below are influenced by movement from those above. However, we don’t always want this type of motion. Imagine you have a character dangling from an edge, where their hand is stationary but the rest of their body is swaying back and forth. Since the default mode is Forward Kinematics, you’d have to manually move the hand back each frame to make sure that the character is still hanging onto the same point. This is because the hierarchical influence of motion determines the overall movements.
Inverse Kinematics reverses that situation and places the hand as an independent actor that doesn’t receive any influence from bones up the hierarchy. We could place our dangling character’s hand in one spot and leave it there for as long as it’s needed. But now we have a new set of problems. Instead of dealing with manually readjust one arm every frame, now we have several appendages that we have to move otherwise they won’t move at all. This is the tradoff between IK and FK rigs. It is possible to make a hybrid rig, where you can even animate which setting is active, but those typically aren’t found on the average rig.
Constraints
Constraints are more of a category of concepts rather than physical options to activate. Blender has a category specifically called Constraints, but those are a curated selection of modifiers that behave in a specific way. A Constraint is simply anything that acts or influences the motion of an object in a particular way. For the average user, you’ll be more than satisfied with Blender’s collection of Constraint modifiers, but for those looking for more control and depth, then let’s get into Drivers.
Drivers
Take everything you just read and previously know about rigging within Blender. Imagine that amount of power and influence over the way objects move, and multiply it by a lot. That is the power of Drivers.
Blender works through Properties, adjustable values that affect the look and movement of objects. Through turning every property into a Driver, you can create functions that apply some amount of logic and outputs that information into any other property. It’s hard to adequately describe the applications of Drivers because they are just so ubiquitous. This is also the downside of Drivers. There really is no practical way of learning how to use them without just using them. Familiarizing yourself with programming logic and the actual code of Blender would be the first tangible steps to harnessing Drivers, even if those are going way beyond what you need to use the program.
Resources & Tutorials
Blender Rigging Basics
Mechanical Rigging
Rig Optimization
Weight Painting
Shape Keys
Outro
Rigging is often under-appreciated compared to both animation and modeling. It’s not as glamorous, or as rewarding, but if you are technically minded then it’s really just a complex puzzle that changes with every puzzle. It’s also a great gateway into becoming a Technical Artist, someone that links the worlds of coding and art together to make wildly impressive stuff. (They’re also the generally the higher paid career since they’re the IT techs of the 3D world, but don’t tell them I said that.)
Next week marks the end of the Blender Basics as we finish on Animation, the big kahuna of Blender. Stay tuned!
- Adam