Crushing An Armature
Methodical annihlation of armature creation by M.P. Guidry
Preface
This tutorial is going to be like firing a KSG with a 14 round capacity. I'm going to supply you with maximum shells and you are going to keep pulling the trigger (pressing buttons) til it's time to reload. We will repeat this process til we are done. Their are certain shells (keyboard shortcuts) that we will be firing a lot.
SHELLS: ( NAME_I_WILL_USE: PRESS|HOLD+(KEY|MOUSE)|PRESS,PRESS /menu select/option (explanation)):
All commands are finalized with LMB or ENTER
CLEAR_ROLL: CNTRL+N /Clear Roll(Z-Axis up)
TP_PANEL: N (transform properties panel)
VP_PANEL: /view/view properties
GRAB_(X,Y,Z): G,(X,Y,Z),CNTRL+MOUSE MOVE
SCALE_WIDTH: ALT+S,MOUSE MOVE
(DE)SELECT_ALL: A
SD_MULTI: W /subdivide multi
PARENT_KO: CNTRL+P /keep offset *ex1
PARENT: CNTRL+P /connected *ex1
CUR>SEL: SHIFT+S /cursor to selection
SEL>CUR: SHIFT+S /selection to cursor
EDIT: TAB (tab into edit mode)
POSE: TAB (tab into pose mode)
DUPLICATE: SHIFT+D
COPY_TRANSFORM: (pose mode) CNTRL+ALT+C /copy location, CNTRL+ALT+C /copy rotation (yes, do all of that) *ex2
FRONT|SIDE|TOP NUMPAD 1|3|7 (orthographic)
IK: SHIFT+I /to active bone *ex2
*ex1 - PARENT(_KO):child-parent
select the child bone, shift+select the parent bone, perform the keyboard shortcuts
*ex2 - COPY_TRANSFORM|IK:selected-active
select the "selected" bone, shift+select the "active" bone, perform the keyboard shortcuts
There are also menus that you will use constantly. Below is a list of what you are expected to do when I say any of the following:
Armature Bones Panel F9
CHILD_OF: bone name
Change the name in the "child of" list to the one specified
SEGMENTS: num
Change the segments control to the number specified
INpose mode) num
set the in value to the specified amount
OUTpose mode) num
set the out value to the specified amount
Transform Properties Panel (armature/transform properties | N)
ROLL: num
self explanatory
NAME: some name
type the given name in the Bone: text field.
View Properties Panel (view/view properties)
CLEAR CURSOR
set the cursors x,y and z coordinates to 0
CURSOR_(X,Y,Z): num
set the designated property to the specified amount
Armature Panel
(UN)LAYER: num | num,num,num
(de)select the specified layer(s). These are armature specific layers and do not correspond to the world layers
SET_LAYER: - M /layer
BBONE|STICK|ETC set the bones display type to this type
Menu Bar
TP_MEDIAN set the transformation point to median point
TP_CURSOR set the transformation point to cursor
There are a handful of shortcuts that I will throw out on-the-fly, with no explanation as to what they do. If you see something like the following, type each character and then press enter.
RX90
SX-1
That should just about cover it. It is highly recommended that you perform the shortcuts exactly as I have defined them. For instance: NOT holding control while doing GRAB_(XYZ) will just make your job more complicated in the end. These shortcuts are the backbone of the entire tutorial. It is in your best interest to memorize everything I just wrote.
1 Bone To Make Them All
in object mode with nothing selected
FRONT
CLEAR CURSOR
/Add/Armature
spine:
EDIT
SELECT_ALL
BBONE
SCALE_WIDTH - really thin but selectable
SZ2
arm:
DUPLICATE
RY90 ENTER G and move the bone off to the right
DESELECT_ALL
SELECT the vertical bone
leg:
DUPLICATE
SZ-1 ENTER G and move the bone off to the right and down
SELECT the spine bone
SD_MULTI:4
SELECT the arm bone
SD_MULTI:3
SELECT the leg bone
SD_MULTI:3
start at the topmost bone of the spine and NAME in this order. head / neck / chest / spine / hip
start at the leftest bone of the arm and NAME in this order. shoulder.L / bicep.L / forearm.L / hand.L
start at the topmost bone of the leg and NAME in this order. thigh.L / shin.L / foot.L / toe.L
SELECT neck
SEGMENTS: 3
SELECT spine
SEGMENTS: 5
!MAKE SURE!
hip CHILD_OF [blank]/nothing
spine CHILD_OF hip
chest CHILD_OF spine
neck CHILD_OF chest
head CHILD_OF neck
shoulder.L CHILD_OF [blank]/nothing
bicep.L CHILD_OF shoulder.L
forearm.L CHILD_OF bicep.L
hand.L CHILD_OF forearm.L
thigh.L CHILD_OF [blank]/nothing
shin.L CHILD_OF thigh.L
foot.L CHILD_OF shin.L
toe.L CHILD_OF foot.L
Early Control Rig
Create Control Rig
EDIT
SELECT_ALL
CLEAR_ROLL
DUPLICATE
SET_LAYER: 2
LAYER: 2
SELECT_ALL
SCALE_WIDTH - noticeably bigger than the other rig
Name everything
start at the topmost bone of the spine and NAME in this order. con_head , con_neck , con_chest , con_spine , con_hip
start at the leftest bone of the arm and NAME in this order. con_shoulder.L , con_bicep.L , con_forearm.L , con_hand.L
start at the topmost bone of the leg and NAME in this order. con_thigh.L , con_shin.L , con_foot.L , con_toe.L
Rewire some connections - hand and foot will be IK controllers so they can't be connected to the chain they are going to control. We connect the hand to the hip so dipping/moving the torso will force the hands to follow. However if you rotate a bone above the hip the hands will not follow but the shoulders still will. This is why we parent the shoulder to the chest. Wherever the chest goes the shoulders go, with offset.
con_hand.L CHILD_OF con_hip
con_foot.L CHILD_OF [blank]/nothing
con_shoulder.L CHILD_OF con_chest
Constrain Yourself
At this point we have an inner and outer rig. The inner rig is our deform rig and the outer is our control rig. Let's mass-disconnect deformity for the entire control rig.
POSE
LAYER: 2
SELECT_ALL
SHIFT+W /deform
quick adjustment. We want the forearm to act with falloff in a twist so we give the deform rig 5 segments but leave the control rig alone. Setting the in/out to zero forces the deform bone to only twist (never bend)
SELECT forearm.L
SEGMENTS: 5
IN: 0
OUT: 0
Add transform constraints.
LAYER: 1,2
go to every bone and do this
COPY_TRANSFORM:boneName(.L)-con_boneName(.L)
POSE
Add IK constraints
IK:con_hand.L-con_forearm.L
Constraints panel - ChainLen 2
IK:con_foot.L-con_shin.L
Constraints panel - ChainLen 2
More Controls
EDIT
SELECT the exposed end of the hip or con_hip bone
CUR>SEL
Hip rocker
SPACEBAR /add/bone
GRAB_Z the end that is not on the cursor and shorten the bone
SELECT the entire bone
SCALE_WIDTH - wider than the control rig bones
Knee:
DUPLICATE
FRONT
G move bone in front of knee joint
SIDE
G move bone about a "foot" from the knee joint
Elbow:
DUPLICATE
FRONT
G move bone to elbow joint
SIDE
G move bone about a "foot" behind the elbow joint
Rename
NAME each to con_hip_rot, con_elbow.L, con_knee.L
Rewire - We child the elbow to the hip controller so the elbow doesn't get lost in space as the rig moves away from it. The same goes for the knee and toe connection. The thigh is connected to con_hip_rot so we can rock the hips.
hip_rot CHILD_OF [blank]/nothing
con_elbow.L CHILD_OF con_hip
con_knee.L CHILD_OF con_toe.L
con_thigh.L CHILD_OF con_hip_rot
Turn off deform
SELECT con_hip_rot + con_elbow.L + con_knee.L
SHIFT+W /deform
Constraints
We force con_hip_rot to follow around con_hip but only when con_hip changes location. This way, con_hip_rot can have full control over the rocking of the hips cause, the thighs are only influenced by the movement of con_hip_rot. However if con_hip changes location it will drag con_hip_rot with it and consequentially the thighs will follow. This is realistic, the thighs go where the hips go.
POSE
SELECT con_hip, SHIFT+SELECT hip_rot CNTRL+ALT+C /copy location
IK:con_elbow.L-con_bicep.L
Constraints panel - ChainLen 1
IK:con_knee.L-con_thigh.L
Constraints panel - ChainLen 1
Finger Rig
control bones:
EDIT
LAYER 2
SELECT the exposed end of con_hand.L
E, CNTRL+MOUSE MOVE - extrude the bone out til it is roughly as long as the hand and perfectly laying on the x-axis
E, CNTRL+MOUSE MOVE - extrude a little nub perfectly laying on the x-axis
SELECT both bones
SHIFT+W /deform
SCALE_WIDTH - small enough to fit in a finger but bigger then the deform rig
In the order that you created the bones NAME them con_finger.L, con_fing.IK.L
deform bones:
LAYER 1
SELECT the exposed end of hand.L
E, CNTRL+MOUSE MOVE - extrude the bone out til it is exactly the same length as con_finger.L (you may need to turn on layer 2 for a second)
SD_MULTI:2
from the root of the finger to the tip NAME them fing1.L, fing2.L, fing3.L
SELECT fing2.L and drag it upward just a hair (this will serve as a hint for our IK)
getting a thumb out of all of that
LAYER 1,2
SELECT every finger related bone
DUPLICATE
Move it above the original finger
RY-90
Maybe adjust it once more so it isn't overlapping any other bones
Now we have to get rid of a joint
SELECT fing1.L.001
X (delete it)
SELECT the lowest end of con_finger.L.001
CUR>SEL
SELECT the lowest end of fing2.L.001
SEL>CUR
grab the only joint on the thumb deform rig and move it down(g,z) a bit. make sure it maintains a very slight bend though
Starting from the base of the thumb to the tip on the deform rig, NAME the bones in this order thumb1.L, thumb2.L
From base to tip on the control rig NAME the bones in this order con_thumb.L, con_thumb.IK.L
SELECT all finger/thumb bones
CLEAR_ROLL
note: it would be smart to check the roll of each bone individually, even after performing CLEAR_ROLL. The roll for everything should be zero
Adding constraints
COPY_TRANSFORM:con_thumb.L-thumb1.L
COPY_TRANSFORM:con_finger.L-fing1.L
IK:con_thumb.IK.L-thumb2.L
Constraints panel - ChainLen 2
IK:con_finger.IK.L-fing2.L
Constraints panel - ChainLen 3
Finally we can copy the left to the right and auto configure names
CLEAR_CURSOR
TP_CURSOR
SELECT all .L bones
DUPLICATE
SX-1
TP_MEDIAN
Make sure the entire right side of your armature is selected
W /flip left-right names
CLEAR_ROLL
note: even though you just did CLEAR_ROLL the fingers/thumb on the right probably have a roll other than zero. You should check them individually. With the fingers this is happening because we have a bend in them, but this does not mean that the other bones remained at zero. You should look at your armature in wireframe mode to see if you notice any bones that don't seem perfectly orthographic and correct them.
End Of Part 1
In part 2 I will show you how to adjust this rig to match a model and give you a brief on how the controls work. Stay tuned.
edit: I noticed some of my images are a little fubard. They still show you what I want you to see but they were pasted sloppily in my editor so, I will fix that later and upload some cleaner images.
Methodical annihlation of armature creation by M.P. Guidry
Preface
This tutorial is going to be like firing a KSG with a 14 round capacity. I'm going to supply you with maximum shells and you are going to keep pulling the trigger (pressing buttons) til it's time to reload. We will repeat this process til we are done. Their are certain shells (keyboard shortcuts) that we will be firing a lot.
SHELLS: ( NAME_I_WILL_USE: PRESS|HOLD+(KEY|MOUSE)|PRESS,PRESS /menu select/option (explanation)):
All commands are finalized with LMB or ENTER
CLEAR_ROLL: CNTRL+N /Clear Roll(Z-Axis up)
TP_PANEL: N (transform properties panel)
VP_PANEL: /view/view properties
GRAB_(X,Y,Z): G,(X,Y,Z),CNTRL+MOUSE MOVE
SCALE_WIDTH: ALT+S,MOUSE MOVE
(DE)SELECT_ALL: A
SD_MULTI: W /subdivide multi
PARENT_KO: CNTRL+P /keep offset *ex1
PARENT: CNTRL+P /connected *ex1
CUR>SEL: SHIFT+S /cursor to selection
SEL>CUR: SHIFT+S /selection to cursor
EDIT: TAB (tab into edit mode)
POSE: TAB (tab into pose mode)
DUPLICATE: SHIFT+D
COPY_TRANSFORM: (pose mode) CNTRL+ALT+C /copy location, CNTRL+ALT+C /copy rotation (yes, do all of that) *ex2
FRONT|SIDE|TOP NUMPAD 1|3|7 (orthographic)
IK: SHIFT+I /to active bone *ex2
*ex1 - PARENT(_KO):child-parent
select the child bone, shift+select the parent bone, perform the keyboard shortcuts
*ex2 - COPY_TRANSFORM|IK:selected-active
select the "selected" bone, shift+select the "active" bone, perform the keyboard shortcuts
There are also menus that you will use constantly. Below is a list of what you are expected to do when I say any of the following:
Armature Bones Panel F9
CHILD_OF: bone name
Change the name in the "child of" list to the one specified
SEGMENTS: num
Change the segments control to the number specified
INpose mode) num
set the in value to the specified amount
OUTpose mode) num
set the out value to the specified amount
Transform Properties Panel (armature/transform properties | N)
ROLL: num
self explanatory
NAME: some name
type the given name in the Bone: text field.
View Properties Panel (view/view properties)
CLEAR CURSOR
set the cursors x,y and z coordinates to 0
CURSOR_(X,Y,Z): num
set the designated property to the specified amount
Armature Panel
(UN)LAYER: num | num,num,num
(de)select the specified layer(s). These are armature specific layers and do not correspond to the world layers
SET_LAYER: - M /layer
BBONE|STICK|ETC set the bones display type to this type
Menu Bar
TP_MEDIAN set the transformation point to median point
TP_CURSOR set the transformation point to cursor
There are a handful of shortcuts that I will throw out on-the-fly, with no explanation as to what they do. If you see something like the following, type each character and then press enter.
RX90
SX-1
That should just about cover it. It is highly recommended that you perform the shortcuts exactly as I have defined them. For instance: NOT holding control while doing GRAB_(XYZ) will just make your job more complicated in the end. These shortcuts are the backbone of the entire tutorial. It is in your best interest to memorize everything I just wrote.
1 Bone To Make Them All
in object mode with nothing selected
FRONT
CLEAR CURSOR
/Add/Armature
spine:
EDIT
SELECT_ALL
BBONE
SCALE_WIDTH - really thin but selectable
SZ2
arm:
DUPLICATE
RY90 ENTER G and move the bone off to the right
DESELECT_ALL
SELECT the vertical bone
leg:
DUPLICATE
SZ-1 ENTER G and move the bone off to the right and down
SELECT the spine bone
SD_MULTI:4
SELECT the arm bone
SD_MULTI:3
SELECT the leg bone
SD_MULTI:3
start at the topmost bone of the spine and NAME in this order. head / neck / chest / spine / hip
start at the leftest bone of the arm and NAME in this order. shoulder.L / bicep.L / forearm.L / hand.L
start at the topmost bone of the leg and NAME in this order. thigh.L / shin.L / foot.L / toe.L
SELECT neck
SEGMENTS: 3
SELECT spine
SEGMENTS: 5
!MAKE SURE!
hip CHILD_OF [blank]/nothing
spine CHILD_OF hip
chest CHILD_OF spine
neck CHILD_OF chest
head CHILD_OF neck
shoulder.L CHILD_OF [blank]/nothing
bicep.L CHILD_OF shoulder.L
forearm.L CHILD_OF bicep.L
hand.L CHILD_OF forearm.L
thigh.L CHILD_OF [blank]/nothing
shin.L CHILD_OF thigh.L
foot.L CHILD_OF shin.L
toe.L CHILD_OF foot.L
Early Control Rig
Create Control Rig
EDIT
SELECT_ALL
CLEAR_ROLL
DUPLICATE
SET_LAYER: 2
LAYER: 2
SELECT_ALL
SCALE_WIDTH - noticeably bigger than the other rig
Name everything
start at the topmost bone of the spine and NAME in this order. con_head , con_neck , con_chest , con_spine , con_hip
start at the leftest bone of the arm and NAME in this order. con_shoulder.L , con_bicep.L , con_forearm.L , con_hand.L
start at the topmost bone of the leg and NAME in this order. con_thigh.L , con_shin.L , con_foot.L , con_toe.L
Rewire some connections - hand and foot will be IK controllers so they can't be connected to the chain they are going to control. We connect the hand to the hip so dipping/moving the torso will force the hands to follow. However if you rotate a bone above the hip the hands will not follow but the shoulders still will. This is why we parent the shoulder to the chest. Wherever the chest goes the shoulders go, with offset.
con_hand.L CHILD_OF con_hip
con_foot.L CHILD_OF [blank]/nothing
con_shoulder.L CHILD_OF con_chest
Constrain Yourself
At this point we have an inner and outer rig. The inner rig is our deform rig and the outer is our control rig. Let's mass-disconnect deformity for the entire control rig.
POSE
LAYER: 2
SELECT_ALL
SHIFT+W /deform
quick adjustment. We want the forearm to act with falloff in a twist so we give the deform rig 5 segments but leave the control rig alone. Setting the in/out to zero forces the deform bone to only twist (never bend)
SELECT forearm.L
SEGMENTS: 5
IN: 0
OUT: 0
Add transform constraints.
LAYER: 1,2
go to every bone and do this
COPY_TRANSFORM:boneName(.L)-con_boneName(.L)
POSE
Add IK constraints
IK:con_hand.L-con_forearm.L
Constraints panel - ChainLen 2
IK:con_foot.L-con_shin.L
Constraints panel - ChainLen 2
More Controls
EDIT
SELECT the exposed end of the hip or con_hip bone
CUR>SEL
Hip rocker
SPACEBAR /add/bone
GRAB_Z the end that is not on the cursor and shorten the bone
SELECT the entire bone
SCALE_WIDTH - wider than the control rig bones
Knee:
DUPLICATE
FRONT
G move bone in front of knee joint
SIDE
G move bone about a "foot" from the knee joint
Elbow:
DUPLICATE
FRONT
G move bone to elbow joint
SIDE
G move bone about a "foot" behind the elbow joint
Rename
NAME each to con_hip_rot, con_elbow.L, con_knee.L
Rewire - We child the elbow to the hip controller so the elbow doesn't get lost in space as the rig moves away from it. The same goes for the knee and toe connection. The thigh is connected to con_hip_rot so we can rock the hips.
hip_rot CHILD_OF [blank]/nothing
con_elbow.L CHILD_OF con_hip
con_knee.L CHILD_OF con_toe.L
con_thigh.L CHILD_OF con_hip_rot
Turn off deform
SELECT con_hip_rot + con_elbow.L + con_knee.L
SHIFT+W /deform
Constraints
We force con_hip_rot to follow around con_hip but only when con_hip changes location. This way, con_hip_rot can have full control over the rocking of the hips cause, the thighs are only influenced by the movement of con_hip_rot. However if con_hip changes location it will drag con_hip_rot with it and consequentially the thighs will follow. This is realistic, the thighs go where the hips go.
POSE
SELECT con_hip, SHIFT+SELECT hip_rot CNTRL+ALT+C /copy location
IK:con_elbow.L-con_bicep.L
Constraints panel - ChainLen 1
IK:con_knee.L-con_thigh.L
Constraints panel - ChainLen 1
Finger Rig
control bones:
EDIT
LAYER 2
SELECT the exposed end of con_hand.L
E, CNTRL+MOUSE MOVE - extrude the bone out til it is roughly as long as the hand and perfectly laying on the x-axis
E, CNTRL+MOUSE MOVE - extrude a little nub perfectly laying on the x-axis
SELECT both bones
SHIFT+W /deform
SCALE_WIDTH - small enough to fit in a finger but bigger then the deform rig
In the order that you created the bones NAME them con_finger.L, con_fing.IK.L
deform bones:
LAYER 1
SELECT the exposed end of hand.L
E, CNTRL+MOUSE MOVE - extrude the bone out til it is exactly the same length as con_finger.L (you may need to turn on layer 2 for a second)
SD_MULTI:2
from the root of the finger to the tip NAME them fing1.L, fing2.L, fing3.L
SELECT fing2.L and drag it upward just a hair (this will serve as a hint for our IK)
getting a thumb out of all of that
LAYER 1,2
SELECT every finger related bone
DUPLICATE
Move it above the original finger
RY-90
Maybe adjust it once more so it isn't overlapping any other bones
Now we have to get rid of a joint
SELECT fing1.L.001
X (delete it)
SELECT the lowest end of con_finger.L.001
CUR>SEL
SELECT the lowest end of fing2.L.001
SEL>CUR
grab the only joint on the thumb deform rig and move it down(g,z) a bit. make sure it maintains a very slight bend though
Starting from the base of the thumb to the tip on the deform rig, NAME the bones in this order thumb1.L, thumb2.L
From base to tip on the control rig NAME the bones in this order con_thumb.L, con_thumb.IK.L
SELECT all finger/thumb bones
CLEAR_ROLL
note: it would be smart to check the roll of each bone individually, even after performing CLEAR_ROLL. The roll for everything should be zero
Adding constraints
COPY_TRANSFORM:con_thumb.L-thumb1.L
COPY_TRANSFORM:con_finger.L-fing1.L
IK:con_thumb.IK.L-thumb2.L
Constraints panel - ChainLen 2
IK:con_finger.IK.L-fing2.L
Constraints panel - ChainLen 3
Finally we can copy the left to the right and auto configure names
CLEAR_CURSOR
TP_CURSOR
SELECT all .L bones
DUPLICATE
SX-1
TP_MEDIAN
Make sure the entire right side of your armature is selected
W /flip left-right names
CLEAR_ROLL
note: even though you just did CLEAR_ROLL the fingers/thumb on the right probably have a roll other than zero. You should check them individually. With the fingers this is happening because we have a bend in them, but this does not mean that the other bones remained at zero. You should look at your armature in wireframe mode to see if you notice any bones that don't seem perfectly orthographic and correct them.
End Of Part 1
In part 2 I will show you how to adjust this rig to match a model and give you a brief on how the controls work. Stay tuned.
edit: I noticed some of my images are a little fubard. They still show you what I want you to see but they were pasted sloppily in my editor so, I will fix that later and upload some cleaner images.
Comment