Character
As always, there are two main approaches to forming a character: drawing with vertices or modifying a basic mesh shape (ie. cube or uv sphere). Drawing with vertices is more challenging and time consuming. It can allow for more realism/complexity when used properly. Using a basic mesh (or multiple meshes) and subdividing, extruding & etc. can be faster and easier. While you can choose whatever approach makes the most sense for your character and the amount of time, it is highly recommended to start with a cube.
- Create a new, separate file for each character
- Name the character file with your first name, the initial of your last name, and the name of your character (ie. JohnS_George.blend)
- Create a new collection for your character
- In the Outliner, right-click on "Scene Collection"
- Double-click on the name of the new collection and give it a new, descriptive name (ie. Character, George, Squirrel)
- Using the cube as a starting point:
- Drag the default cube into the character collection if it will be the base of your character
- With the cube selected, enter "Edit" Mode (tab)
- Edit the cube to create your character:
- Subdivide to get some initial geometry:
- 3 cuts is often a great starting point
- Try upping the smoothness to get a more rounded form to start with (up the smooth value all the way to 1 for a sphere with better geometry than the UV sphere)
- Adjust the overall scale of the cube as needed - for a humanoid, size the cube to work as a torso (quad view is helpful → ctrl+opt+Q | ctrl+alt+Q)
- Select loops (opt+right-click | alt+right-click) and move and/or scale bigger or smaller as needed
- Slide loops or vertices along the perpendicular edges with "G G"
- Add more loop cuts to add detail to targeted areas
- Use proportional editing to adjust vertices/faces as needed
- Use the mirror modifier to keep the sides symmetrical (and apply it if you need to switch to being asymmetrical)
- Extrude faces as needed
- Use the subdivision surface modifier as needed for extra smoothness (keep in mid the amount of subdvision/loop cuts locations can drastically change the appearance)
- Join with other objects only if needed - make sure to thoughtfully consider how one object or limb connects or transitions into one another
- Drawing with Vertices:
- Delete the cube (X)
- Move the pivot point to the world origin (Shift+S → "Cursor to World Origin")
- With the character collection selected in the Outliner, add a plane (Shift+A → Mesh → Plane)
- In "Edit" Mode (tab), select the entire plane (A)
- Delete the plane (X → Vertices)
- Switch to the top view (numpad 7 or the blue Z in the view widget)
- Draw with the vertices:
- Ctrl+left-click to add a vertex
- With vertex select active, select groups of 4 vertices to make faces (F)
- Use "Quads"
- Only make faces with groups of 4 vertices - otherwise many features like subdivide and loopcuts will not work properly
- Use the mirror modifier (for symmetrical characters)
- Look in Quad View (Ctrl+alt+Q) occasionally to make sure everything is lined up correctly
- Occasionally make sure to remove overlapping vertices
- In Edit Mode, select all (A)
- Use the shortcut "M"
- Select "By Distance"
- Use loop cuts in joint areas to allow arms/legs & etc. to bend
- Pack external data if using image textures
Rigging
The process of creating a skeletal structure or armature is called rigging. Make sure to pay close attention to the mode while working on the armature. Also name your bones descriptively with .L or .R at the end of the names! Several automated features rely on the names in combination with the direction and origin of the character. It will take you significantly longer overall if you skip this step.
- If your character's mesh is not already in its own collection, create a new collection for your character in the Outliner and drag the character's mesh into it
- If your character is not already in the center of the grid, reposition it:
- Make sure the pivot is set to "3D Cursor" (. → "3D Cursor")
- Move the cursor to the world origin (Shift+S → "Cursor to World Origin")
- Select the character
- Move the character to the cursor (Shift+S → "Selection to Cursor - Keep Offset")
- Make sure your character is facing forwards in the "Front View":
- Switch to the Front view (numpad 1 or the green circle in the view widget)
- Select and rotate the character as needed (ie. "R", "Z", "90" to rotate 90 degrees along the Z axis)
- Apply any changes in scale and rotation with CMD+A | CTRL+A
- Create and setup the start of an armature:
- In "Object" mode, add an armature (Shift+A → Armature) - this will creates an armature with a single bone
- In the "Armature" tab of properties, under "Viewport Display" enable "In Front" so you can see the armature through the mesh
- In the "Bone" tab of properties, name the bone descriptively (ie. Lower Torso) - make sure to press enter to keep the new name
- Switch to "Edit" mode (tab)
- Line up the bone with the lower torso area
- To move the entire bone, click on the middle of the bone
- Use the shortcut "G" or the move/transform widgets to reposition
- In a side view (numpad 3 or red circle in the view widget) make sure that the bone is inside of the mesh, in the lower torso area
- Resize the bone if needed to take up the lower half of the torso:
- Select tip of the bone (right-click) and use either the shortcut "G" or the move/transform widget to resize
- Switch back to the front view
- Add the rest of the spine:
- Add the upper torso:
- Select the tip of the bone
- Extrude (E) along the Z-axis (Z) to add the next segment, ending about at the shoulder (left-click to keep the size/position)
- In the bone properties, rename the bone descriptively (ie. Upper Torso)
- Select the joint between the 2 bones and press "G" then "Z" to adjust the bone sizes if needed
- Add the head bone:
- Select the tip of the upper torso bone
- Extrude one more time to create a bone for the head (E) along the Z axis (Z)
- Rename the bone descriptively
- From a side view, make sure the bones are lined up properly - make adjustments as needed
- Add the left arm:
- Switch back to the Front view
- Move the pivot point to the left shoulder (left-click)
- Still in "Edit" mode, add the upper arm bone (Shift-A)
- Grab the tip of the bone (G) and move it to the elbow area of the arm
- Rename the bone descriptively, with .L at the end of the name (ie. Upper Arm.L)
- Extrude down from the elbow (E) to the wrist area
- Extrude again from the wrist (E) to the palm
- In a side view and the top view, make sure the arm bones are positioned properly - adjust as necessary
- Return to the front view
- Add the left leg:
- Move the pivot point to the left hip area (left-click)
- Still in "Edit" mode, add the thigh bone (Shift-A)
- Grab the tip of the bone (G) and move it to the knee area of the leg
- Rename the bone descriptively, with .L at the end of the name (ie. Upper Arm.L)
- Extrude down from the elbow (E) to the ankle area
- From the ankle joint, extrude a bone for the foot, ending at the toe area
- In a side view (numpad 3 or the red circle in the view widget), make sure the leg bones are positioned properly - adjust as necessary
- In Edit mode, duplicate the arm & leg bones:
- Select all of the arm and leg bones (including the IK and target bones)
- In the "Armature" menu, choose "Symmetrize"
This command copies the bones, pastes them on the other side of the Y axis and renames all of the bones to use .L on the left or .R on the right.
- If the symmetrize command didn't work:
- Make sure the armature/character is centered on the World Origin
- Make sure the character/armature is facing front in the front view
- Apply any transforms in "Object Mode" (CMD+A | Ctrl+A)
- Make sure the arm/leg bones & etc. have .L or .R at the end of the name
- Add the ability to crouch:
- Select both upper leg bones
- Add the lower torso bone to the selection last by using shift+right-click to select it
- Press "Ctrl+P" and choose "Keep Offset"
- Select both upper arm bones
- Add the upper torso bone to the selection last by using shift+right-click to select it
- Press "Ctrl+P" and choose "Keep Offset"
- Add a control bone to move the entire armature at once:
- Create the bone:
- Left-click between the character's feet to move the pivot point there
- Press "Shift+A" to add a bone
- Position/scale the bone so that it is easy to grab from multiple angles
- Rename the bone to something like "Control"
- Use parenting to make the control bone control the position of the entire armature:
- Select the lower torso bone, the IK bones, and the target bones
- Add the control bone to the selection last by using shift+right-click to select it
- Press "Ctrl+P" and choose "Keep Offset"
Weight Painting
Weight Painting allows individual bones from the armature to move/deform specific areas of a connected mesh. For humanoid characters with an expected anatomy, weight painting automatically works well. For unexoected anatomy, manual corrections may need to be made.
- In "Object Mode", select the character's mesh
- Apply any mirror modifiers:
- In the property panel's Modifiers tab, click on downward arrow to the far right of the modifier name
- Choose "Apply"
- Select the character and then the armature with shift+right-click
- Press "Ctrl+P" and choose "With Automatic Weights"
- With the armature selected, go into "Pose Mode" and see how well the mesh moves with the armature
- Make corrections as needed by weight painting manually
At this stage, if the automatic weight painting worked correctly, the mesh will move when the armature moves. We just need to make sure the armature and mesh move as expected.
- Switch the mode to "Pose Mode"
- Select an IK bone and press "G"
- Move the cursor to see how the bones move
- Right-click to cancel the change
- Test the other bones to make sure they move as expected
Bone Heat Weighting Failed: Failed to find solution for one or more bones:
If you see this warning notification, it means you have to manually create the weight painting for part or all of the armature. Follow the steps on the "Make Corrections with Standard Weight Painting" subsection below.
The character's mesh is distorted in Pose/Object modes:
- Go into the armature's "Pose Mode"
- Select one of the yellow/green bones
- In the "Bone Constraints" tab of the properties panel, try adjusting the pole angle value forwards and backwards until the distortion is improved (often multiples of 90 work well)
- Repeat for each yellow/green bone as needed
The arm/leg bends the wrong way:
- In "Edit Mode", select the joint between the upper and lower arm or leg
- Move the joint to add a slight bend in the arm or leg, in the direction it should bend
Unpredictable/uncontrollable movement when moving an IK bone:
- Make sure the target bones are far enough away from the body:
- Go into the armature's "Edit Mode"
- Select the target bones (knees and elbows)
- In a side view, move the target bones further away from the body with "G"
- Make sure the IK constraints for the lower arms and legs are setup as expected:
- In Pose mode, select the lower arm or leg bone
- In the properties panel, go to the the "Bone Constraints" tab
- Make sure the "Target", "Bone", "Pole Target", "Bone", and "Chain Length" values are correct
The IK bone doesn't move the entire limb:
Make sure the IK constraints for the lower arms and legs are setup as displayed above - especially the "Chain Length". The number for the chain length, is the number of bones that should move with the IK bone (not including hand/foot bones). For a standard humanoid structure, that means the chain length should be set to "2" to move the upper and lower arm bones.
Parts of the mesh move with the wrong bone — or don't move with the correct bone:
Follow the steps on the "Make Corrections with Standard Weight Painting" subsection or the "Make Corrections with Vertex Weight Painting" subsection.
The control bone doesn't move the entire skeleton:
- In "Pose Mode", move the control bone & see what bones are not moving
- If an upper arm/leg isn't moving, parent it to the lower torso:
- Switch into "Edit mode"
- Select the upper arm/leg and then the lower torso with shift+right-click
- Use "Ctrl+P" and choose "Keep Offset"
- If an IK or target bone isn't moving, parent it to the control bone:
- Switch into "Edit mode"
- Select the IK or target bone and then the control bone with shift+right-click
- Use "Ctrl+P" and choose "Keep Offset"
Parts of the mesh are stuck in place when the Control Bones moves
Follow the steps on the "Make Corrections with Standard Weight Painting" subsection or the "Make Corrections with Vertex Weight Painting" subsection.
Keyframes save data about the state of an object or setting on a specific frame. When there are multiple keyframes, Blender will automatically create a smooth transition from one state to another. This might be a change in position, size, color, or etc. The action of setting keyframes and letting the computer create the transition is called "tweening".
Animating
- Select the object in "Object Mode"
- Move the object into it's intial position/rotation or etc. as needed
- Make sure "Frame 1" is selected in the Timeline
- Press "I" to insert a keyframe for the selected object
- Choose the keyframe type - in most cases "Location & Rotation" (if the size of the object will change too, choose "Location, Rotation & Scale")
- Move to a different frame - ie. frame 36
- Turn on "Automatic Keyframing" by clicking on the record button in the Timeline (or manually press "I" every time you want to add a keyframe)
- Make changes to the position/rotation or etc. as needed
- Use the playback controls in the Timeline to see the tween (the animated transition)
- Add more keyframes as needed on other frames
- Select the armature for your character and head into "Pose mode"
- Make sure the pivot point is set to "Median Point" (.)
- Move the armature into the starting position for the walk (or other movement) — "G" to move and/or "R" to rotate
- Make sure "Frame 1" is selected in the Timeline
- Press A to select all of the bones and then press "I" to add an initial keyframe (transition point):
- Choose the keyframe type - in most cases "Location & Rotation" (if the size of the character will change too, choose "Location, Rotation & Scale")
- Switch to another keyframe - ie. frame 32
- Turn on "Automatic Keyframing" by clicking on the record button in the Timeline (or manually press "I" every time you want to add a keyframe)
- Adjust the pose as needed
- Use the playback controls in the Timeline to see the tween (the animated transition)
- Add more keyframes as needed on other frames:
- Save time by copying (CMD+C | Ctrl+C) and pasting (CMD+V | Ctrl+V) poses from one frame to another as needed:
- Selecting the whole armature before copying/pasting copies the entire pose
- Selecting a single bone copies the pose for just that bone
- If the character is oriented properly, with the correct name format for the bones, you can paste the flipped/inverse version of a copied pose with (Shft+CMD+V | Shft+Ctrl+V)
A traditional walk cycle uses a variety of standard poses to recreate a believable walk. In a walk cycle, the character is posed to walk in place so that the walk can be looped any number of times. Changes in location/orientation are added later to make the character actually look like they are walking. This can save a lot of time.
The keyframes here are based upon a 32 frame walk cycle. Your walk could take place over a different number of frames as long as the 9 poses are in the correct order and equally spread (ie. positioned every __# of frames). Order goes as follows: Contact - Descent - Passing - High Point - Inverse Contact - Inverse Descent - Inverse Passing - Inverse High Point - Contact
The inverse version of a pose is a mirror of the original — arms and legs go the opposite direction and in some poses the shoulders twist towards the other direction.
Walk cycles are usually animated out of order - contact poses first, then passing poses, then descent and high point poses last. This allows the computer to do more of the work, leaving the animator to refine the later poses where they are incorrect.
- With frame 1 selected (the very start of the walk), go to "Pose Mode" and position your character into the Contact Pose:
- This is mid-step
- Arms and legs go opposite directions diagonally
- Upper torso should rotate slightly towards the front upper arm
- Make sure the heel of one foot and the toes of the other touch the ground but don't sink below it
- Select all of the bones (A) and add a keyframe (I) for "Location & Rotation"
- Turn on auto-keyframing by pressing the record button (otherwise keyframes need to be inserted manually each time a pose is changed → I → "Location & Rotation")
- Copy and paste a "flipped" version of the keyframes to create an Inverse Contact Pose at the midway point:
(This is a mirror to the initial "Contact Pose" - limbs and shoulders go the opposite directions)
- Select all of the bones (A) in the 3D window
- In the "Dope Sheet" or "Action Editor", select all of the keys for the selected bones on Frame 1
- Copy the selected keys (CMD+C | CTRL+C)
- Change to frame 16 - 1/2 way
- Paste flipped versions of the keys (Shift+CMD+V | Shift+Ctrl+V)
(Pasting flipped keyframes works on the assumption that the character was originally orientated to face forwards in the front view, where the Y-axis divides the body in half)
- If the pasted pose is not flipped:
- Check the orientation of the character - if it is not facing forwards in the front view (numpad 1 or -Y), rotate the armature to face the right way
- Apply transforms for the mesh and armature in "Object mode" (CMD+A | CTRL+A → "Rotation & Scale")
- In "Pose mode", recreate the Contact pose keyframes and copy/paste flipped again
- As a last resort, manually position the bones into the "Inverse Contact Pose"
- Copy and paste the keys for all of the bones on "frame 1" for another "Contact Pose" on frame 32
(This allows the cycle to loop)
- On frame 8 - 1/4 of the way, adjust the pose as needed to make keyframes for the "Passing Pose"
- One foot is flat on the ground
- One foot is slightly raised with the toes pointing down
On frame 24 - 3/4 of the way, paste the flipped pose to make the Inverse Passing Pose
- On frame 4 - 1/8 of the way, adjust the pose as needed to make a keyframe for the Descent pose
- The back leg is bent so that it's lower leg is almost parallel to the ground
- The other foot is flat on the ground
- The lowest torso bone is slightly lowered
On frame 20 - 5/8 of the way, paste the flipped pose to make the Inverse Descent Pose
- On frame 12 - 3/8 of the way, adjust the pose as needed to make keyframes for the High Point Pose
- The upper leg of the front leg is raised so that the foot is at it's highest point in the air
- The toes of the other foot are on the ground
- The lowest torso bone is slightly raised
On frame 28 - 7/8 of the way, paste the flipped pose to make the Inverse High Point Pose
- Use the playback controls to see the walk cycle and make adjustments to the keyframes as needed for a smooth, believable movement
- Add additional steps to the cycle using actions + the NLA Editor
Groups of keyframes can be saved as reusable, repositionable, and repeatable (looped) actions. This can save a lot of time.
- If you haven't already, adjust the Animattion workspace to have an "Action Editor" and "Nonlinear Animation" (NLA Editor) panel instead of the default layout
- In the "Action Editor", give the action a descriptive name (ie. walk)
- Add keyframes for the action as needed (ie. follow the walk cycle steps)
- Click on "Push Down" to send the action to the NLA editor for use as an action
- Make sure to leave the ☆ star icon next to the name unchecked/unfilled (this toggles on/off a solo mode where you can see only the current action and all others get muted)
- Click on the "+ New" button to create additional actions - always name them descriptively
- Add keyframes as needed
- If transitioning from a different action, make sure the starting keyframes are the same as the ending keyframes from the previous action
- Push down the action to the NLA editor when done refining
- In the NLA editor, use the following shortcuts:
- Right-click: select a track
- Right-click+drag: reposition/reorder selected tracks
- If multiple actions target the same keyframe data (ie. all pose keyframes for a specific character), organize them into the same track - otherwise there will be playback issues. This means any actions with keyframes from Pose mode for a specific character should be on a single track.
- Keep actions that target different keyframe data on separate, vertical tracks - ie. all location/rotation keyframes for a moving ball object go in one track, location/rotation keyframes for a character's object mode go in a different track, while pose keyframes made for the same character in pose mode go in a third track
- S: to slow down or speed up the action (higher numbers = slower, lower numbers = faster)
- tab: show/hide action keyframes back in the action editor (make any edits to keyframes in this mode where the action displays in green - NOT by changing to the action manually in the Action Editor)
- To loop an action:
- Select the action in the NLA editor
- Open the N-panel (N)
- Change to the "Strip" tab
- Click on the triangle to expand the "Action Clip" section
- Increase the repeat value as needed
Changes in location are best animated in the final animation file (with the environment and any other objects). If the character is not already there, append the character collection into the animation file (actions, materials, and keyframes all append with the collection).
- Save a copy of your finished environment as an animation file (File → Save-As)
- Name the file with your first name, and initial of your last name as part of the name - ie. JenS_animation.blend
- Append your character collection into the file:
- Set the pivot point to the "3d cursor" (. → 3d Cursor)
- Left-click where you want the character to be placed
- Go to "File" → "Append"
- Choose your character file, go to the collection folder and choose the character collection (actions, keyframes, and materials all append over
- Click on "Append"
- Add other props and characters to the animation file by appending as needed
- Adjust and position objects/characters as needed to their starting position/rotation/scale
After appending over any characters, set them in their starting location. Then in Object mode, you can animate changes in location/overall rotation:
- In Object mode, move the character's armature into the starting location/rotation/scale
- Add keyframes to change the armature's position as they walk:
- Switch into "Object Mode" and select the armature
- On "Frame 1", add a keyframe for the starting location ("I" → "Location & Rotation") → in some cases you may need to set a keyframe for "Location, Rotation & Scale" - but only if your character grows/shrinks as part of the plot
- On the ending frame for the walk, move the armature to the new location to create a keyframe
- Use the playback controls to see the walk
- Add additional location/rotation keyframes between the first and last keyframe as needed for a more complex path
- Make other adjustments to optimize the walk as necessary:
- If the feet sink through the ground: move the vertical position of the armature up to add a keyframe & make the feet rest on the ground
→
- If the feet are hovering over the ground: move the vertical position of the armature down to add a keyframe & make the feet rest on the ground
→
- If the steps are too slow for the distance covered (the character looks like they are gliding):
- Add more steps
- Or move the character a shorter distance (in Object mode)
- Or adjust the scale/playback speed of the walk cycle action in the NLA Editor
- If the steps are too fast for the distance covered:
- Remove some steps
- Or move the character a larger distance (in Object mode)
- Or adjust the scale/playback speed of the walk cycle action in the NLA Editor
- To control the overall pace/interpolation over the course of the walk (or between specific keyframes), try adjusting the curve for the armature object in the Graph Editor