Red Ninja Cubie™ #3 – Rigging & Inverse Kinematics

Spread the love

With the Red Ninja’s construction and texturing complete, the next step is to add a skeletal control system comprising an "Armature" Object that when manipulated, articulates and deforms the mesh, a procedure that can be further improved through the strategic inclusion of "Inverse Kinematics" to make movement more intuitive. Setting up a system of control over a mesh or meshes in this way is typically referred to as "Rigging".

Download: Red Ninja™ source file (c. 900 KB | *.blend, *.tga).

The following discusses this process, of rigging the Red Ninja character with the aforementioned control system. A basic understanding of Blender is preferable, but not required, to gain the most from the material below, which can also be read in conjunction with the "Make a simple animated Snowman character" and "Make a simple animated Gingerbread character" tutorials.

Design note: much of the below is discussed with the mesh typically in "Wireframe" display mode to make it easier to see what’s being explained (the mesh by default displays in "Solid" mode but may also be in "Texture" mode depending upon the last action prior to the rigging process). Similarly bones are typically referenced throughout using their final nomenclature for clarity instead of Blenders default nondescript naming conventions.

Mesh Preparation

Before starting the rigging process it’s important to double-check the mesh to make sure it’s positioned correctly relative to the grid floor; symmetry is critical, so too is a centralised position across which the left/right divide functions equally. Right-click either half of the character in Object Mode ("Tab" to exit Edit Mode) and check its "Location:", "Rotation:" and "Scale:" values in Properties ("N" or "View » Properties"); the latter should be "1.000", the former two "0.00000" and "0°" respectively, and relative to the characters physical location – its feet sit on the horizontal ("X/Y" axis), the two halves meeting exactly on the vertical centerline ("Z" axis) (cf. illus. 3 & 4).

Design note: if not, use the Ortho views ("NumPad5" toggle Ortho/Persp, then "NumPad1" and "NumPad3") to adjust the position of the mesh as needed before resetting the Origin – this can also be done in Object Mode as an alternative; check the cursors position in "(View) Properties » 3D Cursor" is set to "0,0,0", select the mesh, then under the "Tools" tab of the Tool Shelf click "Set Origin" and select "Origin to 3D Cursor". If doing this repositions either/or/both halves of the model unexpectedly, click "Object » Undo" (or press "Ctrl+Z") to revert the action, then right-click select the duplicate side and from the "Object" menu in the 3D View Header select "Make Single User » Object & Data" (or press "U" to access the "Make Single User" popup, left- click "Object & Data"). Click "Selected Objects" to confirm if the "Make Single User" popup appears. Repeat the reset process. This happens as a result of the linked duplicate data originally used to build the model, the duplication of data to make the mirrored copy of the mesh prevents certain functions being performed until each is made ‘unique’ and editable in its own right. The procedure also avoids the "… duplicate mesh data…" error that can happen when resetting the mesh ("Ctrl+A" or "Object » Apply » Rotation & Scale" to set the "Rotation and Scale" of the mesh using the "Apply" options).

Make Object "Single User"

[illustration: 1] The duplicate side of the model may need converting to a "Single User" before continuing to ensure data associated with it is ‘unique’ and localised to the object – this helps with rigging and later animation [14b_cubie.blend]

Centre the 3D Cursor

[illustration: 2] Ensure both halves are ‘reset’ so their respective "Origin" points are correctly located at the characters base-line centre, i.e. the inner edge of each half. This may mean adjusting the Origin and/or mesh relative to Blenders grid floor and its "0,0,0" centre where the "X", "Y" and "Z" axes cross

Check mesh 'transform' dataBefore starting the character must be centred at "0,0,0"

[illustration: 3 & 4] Before making a start on rigging make sure both meshes are properly ‘zeroed’ and their scales set ("Ctrl+A") relative to grid-centre, i.e. the character should be positioned so it sits centred directly over the grid floor at "0,0,0" [15_cubie.blend]

A Bit About Inverse Kinematics

The basic principle behind the use of "Inverse Kinematics", commonly referred to as "IK", is to augment the articulation of the skeletal structure that manipulates the character mesh by changing the default behaviours and relationships between individual, or groups, of bones (cf. illus. 5). Once assigned complex arrangements can be made simply by including or excluding bones within the influence of a given IK instance. For example an IK property might be assigned to the hand bone of the characters skeleton allowing it to act as a control mechanism for the entire arm, when it moves the entire arm moves in relation to it. Alternatively an extra bone might be included to specifically hold an IK property, in this case when it moves the entire arm, plus hand, moves. In both instances, the presence of the Inverse Kinematics provides a more intuitive. means to pose the character during the animation process (cf. illus. 6).

Design note: Inverse Kinematics are assignable properties, they need to be applied to something to have an affect.

For the Red Ninja tutorial, Inverse KInematics will be assigned to the same bones used to articulate the mesh (hand, feet etc.), i.e. the former of the two examples above.

Adding a bone Modifier

[illustration: 5] Example of a typically "Inverse Kinematics" property applied to an individual bone allowing it to act as a manipulation control for a larger chain of bones – these are set as simple mechanisms to efficiently control the rig for animation, negating the need to move bones individually

[illustration: 6] The basic difference between bones with and without IK – with, a single bone can control many others; without, only the selected bone can be manipulated. Used strategically an entire Armature can be posed and articulated using just a few control points

Different elements of a fully rigged character

[illustration: 7] The different elements of a completed Armature with ‘IK’ bones, bones assigned the Inverse Kinematics property, highlighted a different tint than standard bones, which follow the general structure (shape and form) of the mesh

A Bit About Bones

By default bones are displayed as "Octahedral" shapes with a sphere either end ("control node", or just "node"); that is a "Body", the main geometrical shape; a "Head" node at the broad end; and a "Tail" node at the narrow end (cf. illus. 8). To manipulate a bone in a general sense the body is right-clicked, whereas selecting either one of the ends nodes will perform an operation using either/or unselected node as a pivot-point.

Design note: each element responds differently to the standard "Grab/Move", "Rotate" and "Scale" operations; "Scale" changes the entire bone when the ‘body’ element is selected, using a mid-point (default); "Rotate" changes the ‘tail’ node and ‘body’, rotating around the Head node if the Tail is selected, or a mid-point where Body is selected; "Grab/Move" alters the entire bone if ‘body’ is selected, or manipulates the bone relative to the unselected node acting as a pivot.

Typically animated characters or objects use a single Armature with at least one bone (the default state of the Armature Object when added to the Scene). Beyond this a majority of the editing process, that is adding, removing and modifying bones, happens in "Edit Mode".

The basic componants of a bone

[illustration: 8] The general structure of a typical Bone, containing a "Head", "Tail" and "Body" – note that although both ‘Head’ and ‘Tail’ can be selected independently of each element, the body cannot

Armature and bone type display

[illustration: 9] The different ‘display’ types for Bones – the default "Octahedral", "Stick", "B-Bone", "Envelope" and "Wire". Some display types are indicative of special relationships between bones and mesh (not covered in this tutorial but useful to mention nonetheless)

What Sort of Rig is Needed

The initial skeleton is built by either duplicating or extruding bones from the primary bone available once an Armature object is added to the Scene. This is done in Edit mode. Before doing so however, two points should be considered;

  1. Which sections of the mesh are to articulate and to what degree (how much).
  2. What type of animations are needed for the character.

For the purposes of this tutorial, and to answer the two points above, the character rig will be created relative to a typically set of ‘base’ animations, i.e. run, walk, jump, death etc. Before proceeding check the mesh to ensure it is sufficiently structured to bend, move and deform without too much issue (cf. illus. 10).

Design note: in practice this means checking the structure of the mesh to make sure loop-cuts, faces etc. are positioned to accommodate a degree of free articulation without collapsing in on itself, the arms and legs should bend freely for example without the shoulder or under-arm collapsing or deforming at their extremes.

Inverted "Y" pose"T" pose"Y" pose

[illustration: 10-12] One of the primary reasons for constructing the character with its arms out to the side is to minimise mesh deformation issues at the extremes of a given pose – raising the arms over-stretches the underside of the arm and crimps or collapses the upper arm and vice versa. However, the pose used is generally determined by preference and/or design

Edge loops as articulation points

[illustration: 13] When rigging a character thought needs to be given to joints and mesh deformation and articulate in additional to the expected range of movement for highly mobile elements like arms and legs

What Does a Basic Character Rig Contain

The goal is to produce a relatively simple articulated skeleton bound to the character mesh, essentially an "Armature" comprising a central spine with a pair of arms and legs anchored to a root bone. In practice this typically means the Armature has several sections comprising individual bones, or groups of, arranged along "Child » Parent" chain as follows;

» torso
» » top-knot » top-knot end
» » shoulder/hip » upper arm » lower arm » hand
» » shoulder/hip » upper leg » lower leg » foot

Each bone is uniquely name and controls corresponding sections of the character mesh through use of vertex groupings. Once the basic structure is in place specific, strategic, bones are then further assigned an Inverse KInematics property to modify the respective behaviour to produce a rig that’s easily controlled and manipulated (cf. illus. 14).

Design note: at any point during the following if a mistake is made use "Ctrl+Z" to "Undo" an action to the previous step. Alternatively use "Ctrl+Alt+Z" to access the "Undo History" list.

What basic contents of the Armature

[illustration: 14] The characters skeleton showing different bones, bone chains and their respective relationships with each other; not all need to be physically connected (touching), but they do need to be linked together for proper articulation of the skeleton (and mesh) [28b_cubie.blend]

Add an Armature

Once the mesh is ready, press "NumPad5" then "NumPad1" to exit "Perspective" mode into "Front" orthogonal. Check the 3D Cursor is (still) located at "0,0,0", then from the 3D View Header left-click the "Add" menu option and select "Armature » SIngle Bone" (or press "Shift+A" to access the "Add" menu, select "Single Bone" – only option available). A new item will appear at the 3D Cursor. This is an "Armature" Object comprising and single Bone element from which the entire skeleton for the character can be built (cf. illus. 15).

Design note: if the cursor is not at grid-centre, in (3D View) Properties ("N") scroll down to the "3D Cursor" subsection, change the "X:", "Y:" and "Z:" coordinate values to precisely relocate the cursor to "0,0,0". To help manipulate the Scene the camera/view can be focused on the new Object selecting "View » View Selected" or pressing "NumPad.". This can be done at any point during production generally to centre the camera/view on a selection making subsequent manipulation easier to do.

Add an "Armature" object

[illustration: 15] Add an "Armature" object to the Scene from "Add » Armature » SIngle Bone" from which the characters skeleton is built [16_cubie.blend]

The ‘Root’ or ‘Master’ Bone

With the Armature added, the bone that’s immediately available will be used as the root or master bone for the skeleton; its essentially an origin, a point to which all subsequent bones will be linked based on their position and importance in the overall structure.

Design note: the initial bone is set up as the ‘root’ because it sits at the very top of the Armature hierarchy, all other bones sit below.

Bone hierarchy

[illustration: 16] Skeletons have a hierarchical structure, each bone is part of a "Child » Parent‘ relational structure that forms the basis around which joints articulate

For game related characters the root bone serves a number of purposes; 1) it generally determines the position and/or location of the object in the game world (the whole character – mesh, armature and other associated items/attachments); and 2) is what the game world uses to physically move the character around whilst animation sequences play when triggered by player input (pressing a key or button). For ease of use making the remainder of the skeleton, the root bone will be left as placed, pointing up (cf. illus. 18).

Design note: the root bones orientation needs to be checked with the destined game world before rigging to ensure its pointing in the correct direction. For game character creation it’s generally important to establish this before making any significant headway, and certainly prior to animating, because the root bone determines the characters general orientation, pose coordinates for animation, and position in game – errors here can mean the model facing the wrong way or being malformed when sequences are played.

Initial bone orientation

[illustration: 17] The root bone may need to rest on its back rather than standing upright depending on the requirements of the project, or game engine in which the character may be used – this should be checked beforehand to avoid errors later in the process

Root bone in place centred on grid

[illustration: 18] When an Armature is added to the Scene an ‘Object’, i.e. a particular type of data block (datablock), appears represented by a single bone by default – the bone is not the Armature, rather a ‘seed’ from which other bones can be generated or added to [16_cubie.blend]

[illustration: 19] The root bone is important because its literally ‘roots’ the entire character in the Scene and often serves as attachment point between asset and environment for user-based input and movement

Making the Characters ‘spine’ Bone Chain

The next bone to add covers the body, and along with the root bone, forms a central axis across which the left and right halves balance. For the Red Ninja this single bone is sized to approximately the same height as the mesh section it represents. To add, with the Armature selected, "Tab" into Edit Mode and right-click select the root bone. In the (3D) views Header click the "Armature" menu option and left-click "Duplicate" ("Armature » Duplicate", or press "Shift+D") (cf. illus. 21). A new bone appears moving with the mouse (cf. illus. 22). Whilst still active hold "Ctrl" to engage grid-snap and reposition the bone inside the main body of the mesh with the Head (larger end of the bone) close to the base of the section. Left-click ("LMB") to confirm (or press "Enter").

Design note: when duplicating bones "Shift+D" (what would otherwise be "Duplicate Unlinked") is the only ‘duplicate’ option available, i.e. "Alt+D" ("Duplicated Linked"), available for general Object editing, is not presented as an option.

Or alternatively once the new bone appears press "Esc" or right-click (RMB) to release and reset the bone to its initial creation point, then holding down "Ctrl" to grid-snap, left-click+drag the blue Widget handle upwards repositioning the selection as per the above so the Head sits at the base of the torso. Release to confirm (alternatively, press "G" to initiate "Grab/Move", hold "Ctrl" and reposition, then left-click to confirm). To alter the bones size so if fits inside the torso, right-click the Tail node to select (sphere at the thin end) and left-click drag the "Transform" widgets blue handle, and bone node, upwards towards the top of the torso section. Release to confirm (alternatively right-click select, press "G", press "Ctrl" and move, left-click confirm). The Armature now has two bones, the root and body (cf. illus. 23).

Design note: although grid-snap ("Ctrl"+ action) is primarily defined by the Grid Floors "Scale:" and "Subdivision:" settings, the action is also sensitive to the zoom level of the Scene, i.e. how close the camera is to a selection determines the granularity of snap increments (distance between subdivisions). It’s also important to use snap as a means to keep Transform actions aligned to the grid as deviations can cause issues later during animation.

Grid settings for snapping

[illustration: 20] Using "Ctrl" whilst moving objects around the Scene engages "Snap", the increments of which are determined by the "Scale:" and "Subdivision:" settings of "Display" Properties. And secondarily by the zoom level, i.e. how close the camera is to an object or element – closer equals smaller increments, zoomed out equals larger increments [16b_cubie.blend]

Duplicate a pre-existing boneDuplicated bone (unlink)

[illustration: 21 & 22] The characters skeleton can be built up using the default bone provided by the Armature object, simply select and "Duplicate" to create then immediately move to position, or right-click to reset then move – place the new bone inside the main body of the mesh

Duplicated bone covers 'torso' area of mesh

[illustration: 23] The duplicate bone is resized by manipulating the "Head" and "Tail" nodes at either end rather than through a "Scale" transform action. The end result should then be the new bone occupying the height of the mesh section corresponding to the characters ‘body’, and be properly centred [17_cubie.blend]

Adding a Bone Cchain: Arm

Once the initial spine is in place the next elements to add are the arms and legs. As briefly discussed above limbs are typically linked subsections within the overall Armature and typically not physically connected to their immediate parent. This allows the first bone in a chain the freedom to act as a local pivot point that can be positioned to fit the structure of the mesh (whose arms and legs in this instance are some distance from the main body). The first bone to define is the shoulder.

Design note: in this particular instance the ‘shoulder’ also doubles as the ‘hip’ to which the legs will later be linked. In addition, bone name(s) are subject to change once the skeleton is complete; bones are typically identified as "Bone.[n]" but at this point there is little risk associated with trying to determine at a glance which bone(s) represent what sections of the mesh because there are so few in use, although they are shown in the illustrations as ‘named’ for clarity. (If bone names are not visible, left-click "Object Data" properties and left-click the "Names" checkbox under "Display" – this can be done in both Edit Mode and Object Mode so long as the Armature is selected).

Before continuing make sure the Scene is set to "Orthogonal" view pressing "NumPad5" then "NumPad1" for "Front" view – when laying out an Armatures structure it helps to be looking at a flat Scene to avoid alignment issues presented by Perspective. In Edit Mode, "Tab", right-click the ‘spine’ bone and from the "Armature" menu click "Duplicate" (or press "Shift+D"). A new bone appears. Whilst still active reposition the bone so the Head node sits approximately centre-of-mass between the very top and bottom of the shoulder section (inset slightly from the outer edges of the main body). Left-click to confirm. Next, right-click the Tail node of the same bone and reposition it at approximately 45° to the Head node to create a diagonal alignment, Tail bottom left to Head top-right (cf. illus. 24).

Design note: when needing to move selections ‘freely’, i.e. not specifically locked to an axis as they are when using the Transform Widget, initiating "Grab/Move" using the shortcut, "G", is typically more effective and intuitive because the selection can be manipulated along multiple axes at the same time – simply right-click to select the element, press "G" then move, left-clicking to confirm the action when done. Alternatively using the "Transform" widget, left-click drag the "X" and "Z" coloured handles, moving the bone into position (as described above) releasing the left-mouse button after each manipulation to confirm.

With the shoulder in place, right-click the body of the bone to select the entire object and "Duplicate", "Shift+D". Reposition this so the Head of the new element is located at the edge-loop where the upper arm meets the shoulder section. Left-click to confirm. Then right-click select the Tail node, press "G" and move it to the elbow of the mesh. Left-click to confirm. This forms the upper arm bone (cf. illus. 25).

Design note: this new bone corresponds to the actual shoulder in practice because the Head node forms the point around which the entire arm will pivot and rotate, i.e. the actual shoulder joint.

Next right-click the Tail of the bone and from the "Armature" menu in the 3D View Header select "Extrude". A new bone will appear with its Tail node active. Reposition this at the wrist edge-loop of the mesh. Left-click to set in place. This is the lower arm bone. Then again right-click the Tail node of this bone and once more select "Armature » Extrude", positioning the new element so its Tail aligns to the characters fingertips (cf. illus. 26). Left-click confirm. This is the hand bone. The result should be a separate shoulder bone plus a linked three-bone chain for the arm – shoulder : upper arm » lower arm » hand (cf. illus. 27 & 28).

Placing and positioning the shoulder bone

[illustration: 24] The first bone to place for the arm is the shoulder, the point around which rotation occurs – this bone also substitutes for the hip to which the leg will be joined next. Duplicate the body bone, move it approximately into position and then manipulate the bone nodes to orientate it at about 45° to the horizontal [17c_cubie.blend]

Adding the upper arm bone

[illustration: 25] For the arm, duplicate the shoulder bone, readjust so it sits inside the upper arm section of the mesh, again manipulating the Head and Tail bone nodes – the Head sits at the edge-loop that joins the shoulder, the Tail should sit at the elbow loop [17d_cubie.blend]

Exruding a new boneExtruding a bone chain

[illustration: 26 & 27] Generate the remaining arm bones by selecting the ‘Tail’ node of the preceding bone and using "Extrude" to pull another instance into the chain – this should be done twice to produce a ‘lower arm’ and ‘hand’ bones [17e_cubie.blend]

Completed bone chain

[illustration: 28] The completed bone chain for the arm comprising three bones, plus shoulder, positioned so their respective Head/Tail nodes are located at corresponding edge loops to form logical pivot points around which the mesh will articulate when the Armature is manipulated [17f_cubie.blend]

Adding a Bone Chain: Leg

To create the leg it’s simplest to just duplicate the arm. This is possible because both limbs use the same three-bone chain. To do this "Shift+RMB" multi-select the three horizontal bone of the arm then from the "Armature" menu select "Duplicate". When the new chain appears move the mouse slightly below the arm and left-click to temporarily set it in place.

Design note: temporarily positioning the duplicated bone-chain away from the original makes it easier to select the correct nodes for manipulation – remaining in place, right-clicking is likely to select a node belonging to the original chain rather than from the new.

From here right-click each node in turn press "G" to free-translate and align them with the loop-cuts representing the joints of the leg; what was the upper arm will now be the upper leg – the Head node placed at the hip; the lower arm the lower leg – the Tail/Head node at the knee; the hand now the foot – Tail/Head node at the ankle; finishing with the foot Tail node temporarily below foot. Left-click after each manipulation to confirm (cf. illus. 29-31).

Design note: rather than attempting to be precise with placement from the start, it’s usually more effective to make a first pass and approximately position nodes, then make additional passes to further adjust and align as needed to fit the mesh.

Once the leg is roughed in, toggle between the major view orientations, "Front", "Right" and "Top" using "NumPad1", "NumPad3" and "NumPad7" respectively, making adjustments to the nodes – select, press "G", reposition, left-click confirm – so they better align to the mesh – this should also result in a kink at the knee.

Design note: for this type of adjustment it’s preferable to toggle "Perspective" (3D) and "Orthogonal" (flat) modes, "NumPad5", as screen depth can unduly influence positional perception (where items appear to be located on-screen).

Once the leg has been updated, repeat the process for the arm, toggle "Front", "Right" and "Top" reposition the shoulder, elbow, wrist and fingers nodes so they too match the corresponding sections of the mesh they represent – select, press "G", reposition, left-click confirm – this should similarly kink the bone chain at the elbow giving the arm a slight forward aspect (cf. illus. 32 & 33).

Design note: final adjustments to the arm could have been done immediately after creation but as the chain was to be duplicated for the leg, and they too require further adjustment, it’s often simpler to use the bone chains ‘as is’, adjusting both once the leg is done. This is generally a matter of personal preference however.

Duplicating the arm bone chainTemporary placement of chain so it can be repositioned as the legUsing the bone node to reposition the bone chain

[illustration: 29-31] To create the leg bone chain simply duplicate the arm chain and place it to one side temporarily whilst then similarly manipulating the bone nodes into place at the ‘hip’, ‘knee’, ‘ankle’ and below the ‘foot’ – it’s preferable to manipulate nodes that than rotating bones [17g »17i_cubie.blend]

Default initial position of each bone in the chainRepositioning bone nodes to fit mesh structure

[illustration: 32 & 33] Using "Front", "Right" and "Top" (orthogonal) views adjust the position of each arm and leg bone to match the mesh, each node being placed at a corresponding joint/edge-loop – done correctly this typically results in a kink at the elbow and knee [18 & 19_cubie.blend]

Add a Single Bone: Top-Knot

Whilst the duplication of pre-existing bones is a convenient way to create bone-chains within an Armature, individual bones can still be added where needed using the cursor as a point of origin. To do this the cursor first needs to be positioned. This can be done by left-clicking anywhere on-screen, using "3D Cursor" coordinate properties, or by snapping the cursor to a given selection or element, for example as the final set of bones to add covering the top-knot are not specifically connected to any other bones, a simple cursor based placement works just as well as duplication in this instance.

Design note: an advantage of duplication has new bones linked to their immediate parent (in this context, the bone that served as the source). Adding on the other hand does not do this, each new instance is treated as separate to other bones so no relationship is formed between them, which can be addressed later.

To place the cursor, "Tab" out of editing the Armature and into Edit Mode for the mesh. Switch "Mesh Select Mode" to "Edge" pressing "Ctrl+Tab » [mode]") then "Shift+RMB" multi-select the upper and lower inner edge of the top-knot (cf. illus. 34 & 35). From the 3D View Header click "Mesh" then "Snap » Cursor to Selected". The 3D cursor will snap into position between the two elements.

Design note: because alignment is being made to suit the mesh, toggling back and forth between edit modes for the mesh and Armature is necessary.

Exit mesh Edit Mode, "Tab", select the Armature then "Tab" into Edit Mode. Without doing anything else, from the "Add" menu in the 3D View Header left-click "Single Bone" ("Add » Single Bone"). A bone object appears with its Head node snapped to the cursor. Next right-click the Tail node of this new bone and from "Armature" select "Extrude" (or press "E"). Immediately upon its appearance press "Z" to lock the axis ensuring the bone remains centred and upright, then move the mouse upwards a short distance and left-click to set into place. This creates a two bone chain from the cursor positioned bone.

Design note: to make the selection for cursor alignment it may be prudent to toggle "View Ortho/Persp" to make the process easier, "NumPad5". When extruding the new bone its alignment is more important than its size as this will be adjusted.

Finally, use "Right", "Front" and "Top" views ("NumPad1", "NumPad3" and "Numpad7") to move each bones Tail and Head nodes into position inside the top-knot mesh section
so the lower bone corresponds to the first loop of faces – Tail/Head node at the first edge-loop, the second bone occupying the remainder of the section – Tail node at the outer edge (cf. illus. 36). Once done the basic structure of the Armature is complete and ready for the next steps.

Selecting edges to snap cursor

[illustration: 34] Snapping the cursor to selected elements is an easier way to reposition the 3D Cursor to a specific location when its "XYZ" coordinates are, or might be, otherwise unknown – simply select the elements in question, edges belonging to the top-knot in this instance, and from "Mesh" select "Snap » Cursor to Selected" (mesh shown in Edit Mode and two edges selected)

Adding a new bone at the 3D Cursor

[illustration: 35] Once the cursor is placed where it needs to be a new bone can be added from the "Add" menu (Armature needs to be selected and in Edit Mode) [19b & 19c_cubie.blend]

Using bone node to position bones for topknot

[illustration: 36] The added bone is extruded to create a short chain then manipulated into position following the general structure of the top-knot section of the mesh with the joint positioned at the first edge loop [20_cubie.blend]

Naming Bones

Now the skeleton is structurally complete, before continuing each bone needs to be given an appropriate name or ‘ID’ to distinguish it from its neighbours. Although each bone has been shown throughout properly named for illustrative purposes (explanatory clarity), they are more typically going to be named "Bone" with a numerical append by default, i.e. "Bone.001", "Bone.009" etc. (cf. illus. 37). This needs to be changed as follows;

– Bone -› root
– Bone.001 -› torso
– Bone.002 -› shoulder.R
– Bone.003 -› upperarm.R
– Bone.004 -› lowerarm.R
– Bone.005 -› hand.R
– Bone.006 -› upperleg.R
– Bone.007 -› lowerleg.R
– Bone.008 -› foot.R
– Bone.009 -› topknot1
– Bone.010 -› topknot2

Design note: the ".R" append is important for the next step (append is not case-sensitive but shown uppercase/capitalised for clarity). Note also, names may differ from the above based upon the order in which they were created.

There are several ways bone names can be changed; 1) using the "Item" property, 2) using "Bone" Properties, and 3) using the "Outliner" Editor view. To use "Item" properties; with the Armature in Edit Mode, right-click a bone then in (View) "Properties" ("N") scroll down to the "Item" subsection. Left-click the input field to the right of the bone icon and type a new name. Press "Enter" to confirm and/or select another bone and repeat (cf. illus. 38).

Design note: changes made using "Item" are selection based, only the selected object can be amended, or where a group is selected, only the ‘active’ item (last object selected).

To use "Bone" Properties; with the Armature in Edit Mode, right-click select an individual bone then left-click the "Bone" Properties icon (image of a small bone). At the very top of the section is a text input field, left-click to highlight then type a new name. Press "Enter" to confirm and/or right-click select another bone and repeat (cf. illus. 39).

Design note: similarly to "Item" properties, only individual bones can be amended using the "Bone" Properties input field, or where a group selection is made, the active item within the group (the last object selected).

Or to use the "Outliner" Editor; click the "Current editor type for this area" button in an area Header to switch editors. In the list that appears simply expand the "Armature" listing (if not already accessible/visible) and double-left-click an entry corresponding to a bone to highlight and type a new name. Press "Enter" to confirm and/or double-click another entry to repeat (cf. illus. 40).

Design note: if the Armature is in Edit Mode the listing will be expanded and any selected bones highlighted. As with other approaches bones can only be changed individually – double-clicking automatically deselects any group selections in favour of the selected item.

Typical bone names; "Bone" plus numerical append

[illustration: 37] Bone names will typically appear as "Bone" plus an incremental numerical append, i.e. ".001" ("Bone.001" etc.) when more than one is created or used – the Armatures bones will be named such rather than the context naming used throughout the tutorial, in place for clarity (if names are not visible activate "Names" in the "Display" subsection of "Object Data" Properties) [20f_cubie.blend]

Renaming bones using "Item" properties

[illustration: 38] Individual bone names can be changed using "Item", a subsection of (View) Properties, "N"…

Bone name in "Bone" properties

[illustration: 39] … or from within "Bone" Properties using the element ‘ID’ input field at the top of the panel …

Editing bone names in "Outliner" editor

[illustration: 40] … or from within the "Outliner" Editor, editing each entry listed. In all instances simply right-click select the bone to be edited then in the respective input field click to highlight and type (for the Outliner, double-click an entry to activate for editing)

Adjusted bone names

[illustration: 41] Bones names should generally reflect their function, the upper arm bone being "armupper", "uprarm" or similar distinguishing name to allow for immediate visual or editor identification – make sure bone associated with the arms and leg are appended "*.R" indicating they are on the RIGHT side of the model

Mirroring an Armature

Once bones are named the skeleton can be completed by mirroring the limbs so both left and right side have an arm and leg. The most straightforward approach to doing this is to "Duplicate" a selection, the available arm and leg, and manually "Mirror" them across a pivot point located at grid-centre.

Design note: the default pivot is "Median Point", an averaged location based on one or more item being selected.

Before mirroring it’s important to check the Armature is centred on the grid and the cursor location is zeroed. For the former in (View) Properties check the the Objects "Location:" data in Object Mode to ensure each "X:", "Y:" and "Z:" value reads "0.00000". Similarly for the cursor. To checks its position, again in (View) Properties scroll down to the "3D Cursor" subsection and check each of its "X:", "Y:" and "Z:" coordinates are set to "0.00000", forcing the cursor to grid centre. Then In the 3D View Header left-click the "Pivot Center for rotating/scaling" button and left-click "3D Cursor" from the list of options (cf. illus. 42). The manipulator Widget will immediately snap to the cursor (if not already there) confirming the change.

Design note: because items are being mirrored across a central point, discrepancies between left and right may occur if the Armature and/or its Origin are not properly positioned relative to the grid-centre. To fix an Armature Origin location issue, in Edit Mode right-click the Head node of the root bone and snap the cursor to it ("Armature » Snap » Cursor to Selected". Exit Edit Mode, "Tab", and from the "Object" menu select "Transform » Origin to 3D Cursor". This resets the Armature Origin to the correct position at the base of the Armature Object. Once (re)set the Armature itself can then be correctly centred on the grid – set the "3D Cursor" properties to zero (as explained in the above paragraph), then snap the Armature to it, "Object » Snap » Selection to Cursor". Note also that "NumPad." does not set the Cursor as the pivot point but instead zooms the camera to view selected items. To revert the cursor to the default press "," (Comma).

Once the Armature and cursor position have been checked, in Edit Mode "Shift+RMB" multi-select the arm and leg bones, including the shoulder. Then from the "Armature" menu in the 3D Header left-click "Duplicate" ("Armature » Duplicate" or press "Shift+D") to generate a new set of bones. Right-click (or press "Esc") to release and reset the new group, then from the "Armature" menu again, left-click "Mirror » X Global" ("Armature » Mirror » X Global"). The selection immediately mirrors to the other side of the Armature. Left-click to confirm (cf. illus. 43-45). The Armature is now complete with matching left and right sides (cf. illus 46).

Design note: mirroring can also be initiated using "Ctrl+M" then pressing "X", "Y" or "Z" to lock the action to an axis ("Ctrl+M » X" in this instance). Additionally, so long as the mesh and Armature are properly centred relative to the grid (see above), being in Orthogonal view is optional because the transformation is performed across a fixed axis rather than the orientation of the view.

Centring the 3D Cursor

[illustration: 42] Mirroring uses the 3D Cursor as a pivot so its position relative to the overall character is important – use "3D Cursor" properties to position it at the grid floors centre, "0,0,0" ("X:0.00000", "Y:0.0000" and "Z:0.00000") [20_cubie.blend]

Duplicating the arm and leg

[illustration: 43] Group select the available arm and leg bone-chains including the shoulder – right-click holding "Shift" to multi-select, or holding "Ctrl" left-click drag a lasso selection around the bones to be selected for mirroring then "Duplicate" to create a new set of bones [20d_cubie.blend]

Mirroring across the "X" axisMirrored bones using cursor as pivot point

[illustration: 44 & 45] With the cursor position set, bones duplicated and selected, from the "Armature" menu click "Mirror » X-Global" to flip the items across the pivot (3D Cursor). Left-click to confirm and set in place [20e_cubie.blend]

Armature with right and left side mirrored

[illustration: 46] The entire Armature (shown in Edit Mode) with the original arm, leg and shoulder bones duplicated (shown selected) and mirrored across the pivot point located at grid zero (centre of the grid floor) [21_cubie.blend]

Mirroring Bones – Flip Names

Once the Armature is mirrored the names auto-generated for each duplicate bone by the process needs to be amended to fit the "*.L" and "*.R" convention i.e., the upper arm being named "upperarm.L" and "upperarm.R" respectively representing the same bone on either side of the skeleton. This can be done manually by individually editing the auto-assigned numerical append as outlined above, or automatically as a batch using the "Flip Names" function.

Design note: what makes mirroring bones possible is the fact that duplicating a bone creates a unique instance of that original i.e., a duplicate of "Bone" becomes "Bone.[n]" a completely independent instances of the original. Without this it’s not possible to mirror and have each side act independently from the other.

To use "Flip Names", with the Armature in Edit Mode press "Shift" and right-click the mirrored bones just created (if not already selected) and from the "Armature" menu left-click "Flip Names". Providing the original bones were left in their default ‘duplicate’ state – each bone being append a numerical value – they will update to show "[bone].L" instead of "[bone].R.001", a duplication of "[bone].R" (cf. illus. 47 & 48). Once done the Armature is essentially complete and ready for the next step in the rigging process; creating links and associations so the mesh articulates when a bone moves.

Design note: bone names can be appended ".L" or ".R", ".l" or ".r", or ".Left" or ".Right" (not generally case sensitive) to indicate which side of the Armature they represent – note that they don’t need to be on the actual left or right of the pivot point, they simply act as markers to determine groupings and general association.

Bone name auto-append a numberUsing "Flip Names" to quickly adjust bone names

[illustration: 47 & 48] Although bone names can be manually updated after duplication, a quicker way is to use "Flip Names" – so long as one side is properly appended a ".R" or ".L" depending on which side is being edited, the flip names feature will automatically adjust the duplications with the appropriate matching append [21b_cubie.blend]

All the bones correctly set up

[illustration: 49] Once the Mirror operation is complete the Armature will have a ‘left’ and ‘right’ side with each bone being appropriately name relative to the its side of the character [21c_cubie.blend]

Final ArmatureArmature shown in "X-Ray" with mesh drawn in "Texture" display

[illustration: 50 & 51] The completed Armature shown with mesh in "Wireframe" and "Texture" display mode with "X-Ray" active for clarity (activate "X-Ray" in "Object Data" Properties) [22_cubie.blend]

Making & Assigning Vertex Groups

Once the Armature has a left and right side, and individual bones are appropriately identified, its ready for linking to the mesh. To work so the model articulates when bones are manipulated, it’s necessary to create a two-tiered association between Armature and mesh; one between OBJECTS, the other between ELEMENTS. What this does is; 1) define which Armature has control over which mesh (which object/s), and 2) which areas or sections of the mesh are influenced by which bone or bones (which element/s) of the Armature. Latterly, this is done through the use of "Vertex Groups" (cf. illus. 52), essentially mesh vertices collected together into ‘groups’, given specific names to match corresponding bones. It’s this latter aspect, the naming, that creates the associative link, or binding, which is why bone names need to be unique.

Design note: object and element relationships be defined because it’s possible for a single Armature to control and influence multiple meshes and vice versa.

To create a vertex group, with the mesh selected in either Object Mode or Edit Mode, left-click the "Object Data" properties button and in the "Vertex Groups" subsection below, left-click the "+" button to the immediate right of the blank aperture. A listing appears titled "Group" (cf. illus. 53). This is a Vertex Group, essentially an empty listing to which elements of the mesh will be assigned/associated. There needs to be enough groups to cover the available bones so left-click the "+" button another nine times creating a total of ten groups – "Group" through to "Group.009" (cf. illus. 54). Once created the groups need to be renamed to correspond to a named bone belonging to the Armature that has control over the mesh, so double-left-click a listing to highlight for editing and type a name that matches one of the Armatures bones. Press "Enter" to confirm. Repeat for the remaining entries resulting in the following groups;

– torso
– shoulder
– topknot1
– topknot2
– armUpper.R
– armLwr.R
– hand.R
– legUpper.R
– legLwr.R
– foot.R

Design note: "root" is not needed in this instance because all groups will be assigned to their respective mesh elements, none will be left unused so there will be nothing to assign to "root". The names assigned should match the Armatures bones names and be relative to the half of the mesh each is to be associated i.e., naming a group "armLwr.R" covers mesh elements on the right-hand side of the mesh. Names are caSe-SensITive.r.

Next, each entry needs to be associated with corresponding areas of the mesh by selective assignment to groups of vertexes. For this, with the mesh selected "Tab" into Edit Mode and left-click the "Vertex" select icon in the 3D View Header. Press "A" to clear any active selections then holding down the "Ctrl" button, left-click drag a selection-lasso around the area of the mesh corresponding to the hand, up-to and including the wrist edge-loop. Release the "Ctrl" key and mouse button to confirm. In the "Vertex Groups" list on the right under "Object Data" Properties, left-click select the "hand.R" group entry then click the "Assign" button below. This assigns the vertex selection to the vertex group (cf. illus. 55). Repeat the clear, select and assignment process for the remaining groups so each is defined as (cf. illus 56);

  • "armLwr.R": wrist edge loop to elbow loop.
  • "armUpper.R": elbow to shoulder (edge loop at the top of the arm).
  • "foot.R" – entire foot up to and including the ankle edge loop.
  • "legLwr.R" – ankle edge loop to knee loop.
  • "legUpper.R" – knee loop to upper leg (edge loop top of the leg).
  • "shoulder.R" – upper arm and upper leg to torso (end of arm and leg to torso).
  • "torso" – entire torso (upper, lower, bandanna, mouth and eyes).
  • "topknot1" – edge loop where top-knot join torso to first loop of hair.
  • "topknot2" – from first loop of hair and remainder of section.

Design note: it’s common for there to be overlap between groups so individual vertices may end up belonging to two or more vertex groups. When this occurs the influence, or "Weight", a particular vertex has in relation to the groups it belongs to is divided equally between them, reducing the strength of any mesh deformation – 1 group = 100% influence, two groups = 50% influence across the two groups and so on.

Once the vertex groups have been set up, their assignments can be tested to checked for errant vertex inclusion/exclusion. To do this, press "A" to clear any current selections then in the "Vertex Groups" subsection of "Object Data", select an entry in the Vertex Groups list and click the "Select" button below. The chosen group should highlight the appropriate mesh vertices. Press "A" to clear, or click the "Deselect" button and repeat, selecting each group and clicking the "Select" and "Deselect" buttons to verify assignments.

Design note: if an errant vertex(es) is included in a group, "Deselect" to clear then right-click the wayward vertices in the 3D View (this ensures only the unwanted vertex(es) are chosen). Next left-click the "Remove" button. Press "A" to clear and check the group again. Conversely if an individual vertex is missing from a group, simply right-click select it, highlight the Vertex Group to which is should belong and click "Assign". Clear, "A", and test, "Select".

Once the right-hand side of the character is done, exit Edit Mode and right-click select the left-hand side, this too needs to be set up in the same way but relative to the left i.e., vertex groups need to be appended "*.L". In "Vertex Groups" under "Object Data" again, click the "+" ten times to create another set of groups – "Bone" through to "Bone.009". Rename as follows;

– torso
– shoulder
– topknot1
– topknot2
– armUpper.L
– armLwr.L
– hand.L
– legUpper.L
– legLwr.L
– foot.L

Design note: again "root" is not needed.

In Edit Mode, make the same regional selections as were performs for the right-hand side but now on the left-side. So again, hold "Ctrl" and left-click drag the mouse cursor in a loop around the left hand section of the mesh, up to and including the wrist edge-loop of vertices. Left-click "hand.L" in the "Vertex Groups" list and then click the "Assign" button below. Repeat the process for each of the remaining groups so each is assigned to the corresponding area of the mesh like so;

  • "armLwr.L": wrist edge loop to elbow’ loop.
  • "armUpper.L": elbow to shoulder (edge loop at the top of the arm).
  • "foot.L" – entire foot up to and including the ankle edge loop.
  • "legLwr.L" – ankle edge loop to knee loop.
  • "legUpper.L" – knee loop to upper leg (edge loop at the top of the leg).
  • "shoulder.L" – upper arm and upper leg to torso (end of arm and leg to torso).
  • "torso" – entire torso (upper, lower, bandanna, mouth and eyes).
  • "topknot1" – edge loop where top-knot join torso to first loop of hair.
  • "topknot2" – from first loop of hair and remainder of section.

Design note: no “root” group or assignments needed as before.

Once done both halves of the character have a left and right side version of the same Vertex Groups and vertex selections/assignments ensuring the mesh will articulate evenly when animated.

Empty "Vertex Groups" list

[illustration: 52] Managing "Vertex Groups" is done in "Object Data" properties when the mesh is selected and in either Object Mode or Edit Mode [23b_cubie.blend]

Adding a "Vertex Group" called "Group" by default

[illustration: 53] Groups can be created in both Object Mode and Edit Mode because the groups themselves are essentially data reference points which allow for quick creation/deletion and general management between meshes where several are available and need to be set up – select the mesh in Object Mode and click the "+" button to the right of the aperture, "Group" will appear… [23c_cubie.blend]

Renaming vertex groups in the "Vertex Groups" list

[illustration: 54] … then click the "+" button a further nine times, creating a number of additional groups, one entry per bone – group names are automatically appended an incremental numerical value to make each unique, double-click an entry to highlight for editing and type a name corresponding to an Armature bone [23d_cubie.blend]

Assinging a named vertex groups to a vertex selection

[illustration: 55] For Vertex groups to work, once an entry is available it needs to be assigned to a section of the mesh – in Edit Mode make a selection, the ‘hand’ for example, then click the "Assign" button under the groups list. This associates the selection with the group [23_cubie.blend]

Mesh colour tinted to show different vertex group regions

[illustration: 56] Repeat the selection and assignment process so each region of the mesh shown above is associated with its corresponding Vertex Group – press "A" to clear selections before making new ones to avoid over-assignment of vertices

Both left and right side of the character with vertex groups

[illustration: 57] Both halves of the model set up with their respective Vertex Groups, each given a name that corresponding bone, to context, and the side of the character it resides, i.e., appended ".L" or ".R" [23e_cubie.blend]

Assigning an ‘Armature’ Modifier

As briefly mentioned above rigging essentially requires Blender know which OBJECTS are linked and which ELEMENTS; for the latter (Elements), "Vertex Groups" are associated with specific regions of the mesh (cf. "Making and Assigning Vertex Groups"); for the former (Objects), linking is done through the use of a "Modifier" that allows for a particular Armature to be set as having control over the character.

Design note: using the "Armature" modifier replaces the semi-legacy need to "Parent" mesh to Armature which creates a slightly different type of association between objects types.

To do this right-click one of the two half sides of the character in Object Mode (exit Edit Mode, "Tab") and click on the "Modifiers" button (icon illustrated with a spanner/wrench). Left-click "Add Modifier" and select "Armature" from the list. A properties and options panel appears below. (cf. illus. 58).

Design note: the "Armature" Modifier can actually be assigned whilst the mesh is in Edit Mode but only for the active item. To assign the modifier to multiple objects Edit Mode would need to be exited and a new object selected.

Here under "Object:" click the orange cube, "Armature object to deform with", and select the entry corresponding to the Armature that’s being rigged to the model, in this instance "Armature". Under "Bind To:" make sure "Vertex Groups" is selected (check/tick in the checkbox). Repeat for the remaining half of the model; right-click select then in "Modifiers" click "Add Modifier". Select "Armature" from the list, setting the "Object:" property to "Armature" (the name of the Armature object). Then finally in "Bind To:" check "Vertex Groups" is active, left-click the checkbox, to ensure each bone binds to its mesh-based vertex group name sake ensuring proper deformation (cf. illus. 59).

Design note: the "Armature object to deform with" lists all currently available Armatures in the Scene, so attention will need to be paid to the name/ID of the actual Object to be paired to the mesh when more than one is available. If this is unknown or not visible, select the Armature then in the "Display" subsection of "Object" Properties, activate "Name" to display the items name – useful where multiple objects are visible in the Scene. Or simply select the Armature and read the "Object datablock" input field at the top of the same panel ("Object" properties). For simple skeletons "Bind to:" should be set ("Vertex Groups" is typically active by default) as this defines what type of binding is created between individual bones and the mesh.

Assigning a "Armature" modifier to the mesh

[illustration: 58] Assigning an "Armature" modifier to the meshes so Blender knows which Armature object is to control the behaviour of the meshes (useful in instances where more than one Armature or mesh may be available) – select the mesh then in "Modifiers" Properties select "Armature" from the "Add Modifier" list

Setting the 'Armature' "Object:" to "Armature"

[illustration: 59] Once an Armature modifier has been assigned, set its "Object:" property to "Armature", the default name given with the Armature Object being set up to control the character (the name is assigned automatically when the object is added to the Scene) [24_cubie.blend]

Bone Relationships

Before adding the final component to the Armature the relationship between bones should be checked to make sure they are linked corrected, if not done and bones remain dislocated, they won’t articulate properly when manipulated, causing problems for animation. To visually confirm connections when looking at the Armature in Object Mode a dashed line should be visible, if not it indicates a failed or incomplete connection that needs to be addressed (cf. illus. 60 & 61).

Design note: the dashed connecting, or relationship, line appears in Edit Mode as a dark-grey line, in Object Mode highlighted orange when the Scene is in "Wireframe" mode, otherwise it is not displayed (is not shown in "Solid", "Textured" or other material based display modes).

To do this, in Edit Mode right-click select the bone to link (the one being linked to another bone) then in the "Relations" subsection of "Bone" Properties, left-click the bone icon under "Parent:" to access the "Parent edit bone (in same Armature)" bone list. Select the bone being linked to, e.g. right-click "shoulder.R" and from the bone list select "torso" to link the two together, shoulder to torso (cf. illus. 61). Repeat the process checking the "Parent:" properties for blank entries, linking bones together as outlined below ("«" indicates the direction of the relationship, child bone to parent bone in the hierarchy. cf. illus. 62);

« torso
« « topknot1 « topknot2
« « shoulder.L/.R « armUpper.L/.R « armLwr.L/.R « hand.L/.R
« « legUpper.L/.R « legLwr.L/.R « foot.L/.R

Design note: the only bone that should have a blank entry in "Parent:" when selected is the "root" bone, as its at the very top of the hierarchy there is nothing above it to link to.

Linked bone are indicated by a dashed lineLinking bone together in "Bone" properties

[illustration: 60 & 61] Bone should be checked to make sure their respective "Relationships" are correctly set up, indicated by a broken (dashed) line in Blender – if the line is missing between two bones it typically means the Child » Parent relationship chain is broken, which will affect the way bones behave. Fix this in "Bone" Properties by updating the "Parent:" association – select the bone being linked to from the bone list [25b_cubie.blend]

Previously unlinked bones now linked

[illustration: 62] The ‘shoulder’ and ‘torso’ bones properly linked together, as indicated by the appearance of the broken (dashed) line (the line displays more clearly in Object Mode than it does in Edit Mode) [25c_cubie.blend]

Inverse Kinematics Modifier

Once bone relationships have been checked and adjusted as appropriate the rig, that is the Armature and mesh(es) as a unit, could be animated in its current state. At this point however, that entails manipulating individuals bones, for example the character needing to raise a knee, requires the upper leg being adjusted, then lower, then foot. For complex animation this is incredible time consuming. An alternative to this is to adjust the Armature so certain bones control the behaviour of others along a chain. This is done through the use of an "Inverse Kinematics" ("IK") Modifier, a selection based property that can be altered and set to override a given bone or bones default behaviour. Continuing with the example of raising the knee, with an "IK" assigned to the foot it then becomes possible to manipulate the entire leg using that single bone rather then manually editing each in-turn to achieve the same pose.

Design note: although "Inverse KInematics"
are applied and used in a simplistic form in this tutorial, the property itself is designed to be flexible, it can be used in conjunction with other Modifiers and properties to create complex articulations and movement not otherwise possible through bones alone.

To assign "Inverse Kinematics" first switch to "Pose Mode"; right-click select the Armature whilst its in Object Mode and from the "Sets the object interaction mode" selector in the 3D View Header click "Pose Mode" (or use "Ctrl+Tab"). Select the right hand (right-click) bone. It will outline pale-blue confirming selection and the Armature being in Pose Mode (cf. illus. 63).

Design note: when switching from Object Mode to Pose Mode, aside from the mode switch being indicated in the "Sets the object interaction mode" selector and Armature typically appearing to deselect, nothing of significance happens to confirm the change. Note also switching to Pose Mode can also be done whilst in Edit Mode – when toggling between the two the same bone or bones remain selected relative to each mode.

Next left-click "Bone Constraints" Properties (icon displaying a bone a link of chain) and click "Add Bone Constraints" to access the options menu. Under "Tracking" (second column from the right) select "Inverse Kinematics" (cf. illus. 64). A panel will appear in "Bone Constraints" and in the 3D View the bone will tint pale-orange accompanied by a dashed line between the selected bones Tail node and the root bones Head node confirming assignment (cf. illus. 65).

Design note: this basic application of an "Inverse Kinematics" to a bone always tints using pale orange; the colour indicates an IK property assignment, and the type behaviour the IK is set to use (different tones indicate different IK behaviours, especially when used in combination with other ‘solver’ properties).

In the new panel is a property, "Chain Length:", an input field with an arrow on either side of the heading, click the right-hand arrow three times to increase the default value "0" to "3", i.e. "Chain Length: 3". This creates a chain of bones that can now be moved as a unit rather than individually, a single bone controlling and manipulating the entire arm (cf. illus. 65 & 66).

Design note: left at "0", manipulating the hand bone causes the entire Armature to articulate because absent a terminal bone, the IK defaults to the Armatures root bone (cf. illus. 65), meaning every bone between it and the control assigned the IK is taken into account when the latter is moved. This default behaviour is avoided by limiting the "Chain Length:" to; "1", self – IK stops at wrist; "2" second bone in chain – IK stops at elbow; or "3" third bone in chain – IK stop at shoulder.

For each arm then, "hand.R" and "hand.L" are assigned an "Inverse Kinematics" property with a respective "Chain Length:" set to "3" ("Chain Length: 3"). Similarly for "foot.R" and "foot.L"; right-click to select each in turn and add an "Inverse Kinematics" modifier. Again set their respective "Chain Length:" properties to "3". The hand bones controlling the entire arm, the foot controlling the legs. In addition, right-click select "topknot2" and assign an IK, setting its "Chain Length:" to "2". Once done the rig is set up with IK solvers ready to be animated (cf. illus. 67).

Switching to Pose mode

[illustration: 63] To assign "Inverse Kinematics", with the Armature selected switch to "Pose Mode" using the mode selector in the 3D View’s Header… [26_cubie.blend]

Assigning an "Inverse Kinematic" to the 'hand' bone

[illustration: 64] … select the hand bone and in "Bone Constraint" click "Add Bone Constraint" and select "Inverse Kinematics" from the list. The bone changes colour indicating assignment [27_cubie.blend]

The default '"Chain Length:" when IK are assignedChanging the "Chain Length" property alters linked bones behaviour

[illustration: 65 & 66] For simple use Inverse Kinematics can be set up to interact with a specific number of bones by altering the "Chain Length:" – setting the value to "3" means the ‘hand’, ‘lower arm’ and ‘upper arm’ bones will be included in an articulation chain else the modifier defaults to using ‘root’ which doesn’t work properly for limited movement [26c & 26d_cubie.blend]

Strategic bones assigned IK controlling limbs

[illustration: 67] As the skeleton used to control the character is relatively simple only five bones need to be set up as ‘controls’, the hands, feet and the end bone of the top-knot. Once in place the skeleton is ready for testing then animation [26e_cubie.blend]

Testing Armature & Mesh Articulation

With Inverse Kinematics in place the character is ready for animation. Before doing that however, the entire rig should be tested and checked to make sure everything works as expected, that bones articulate as they should with respect to IK assignments, and the mesh follows suit. To do this, whilst still in "Pose Mode" ("Ctrl+Tab" if not), select the hand and foot bones in turn and pressing "G", move each back and fourth, side to side, watching for any unexpected deformation of the mesh – moving each respective hand and foot should only manipulate bones in their respective chain, and deform the mesh relative to the bones actually moving. Press "Esc" or right-click to cancel the action and reset the selected bone (cf. illus. 68).

Design note: when manipulating the bones if left-click is accidentally used a "Pose" will be set. To clear and reset the Armature, press "A" to select all bones (more than one will have been posed when manipulating a bone assigned an IK), then from the "Pose" menu in the 3D View Header left-click "Clear Transform » All", or use "Alt+G" and "Alt+R" to clear location (transform) and rotation.

For the remaining none IK bones, test these by similarly selecting and pressing "G" to move, each again should move its respective section of the mesh, and bones below it in the hierarchy. Press "Esc" or right-click again to cancel the action (cf. illus. 69).

Design note: because the foot and hand bones are the only elements assigned an IK they can move relatively freely, in other words pressing "G" will allow each of these special-case bones to articulate unrestricted subject to bones in the chain, whereas bones without IK won’t – these will move freely when not linked or connected to other bones, or rotate around their own axes when part of a chain ("R" rotates bone regardless).

IK articulation testStandard bone test

[illustration: 68-70] The final step is to test the Armatures articulation by manipulating the control bones assigned the Inverse Kinematics properties to ensure they deform as expected – select and press "G" to ‘free translate’ each bone chain, checking the mesh for errors e.g., wayward vertex assignments [28_cubie.blend]

Spread the love