利用者:Mstram/Improved Foot Rig
目次
Enhanced Ryan Dale Rig
These are some minor enhancements to the rig in Ryan Dale - Introduction to Character Animation.
Any comments can be posted in the support thread at BlenderArtists.org (I post as Mike_S). http://blenderartists.org/forum/showthread.php?p=746717
The foot IK is altered slightly, so that the character can "jump" up by just moving the "Spine1" bone, and IK arm controls are added, and some other minor changes that I prefer.
Here's the finished "enhanced rig" :
http://mediawiki.blender.org/uploads/e/e0/Enhanced_Bsod_Intro_to_Charar.blend
IK Arm setup
For IK arms :
- Turn off Auto IK if you have it on, we wont' be using it.
Select the armature, switch to EDIT mode:
- Select upper_arm.r and turn on it's Con(nected) switch to connect it to the shoulder, do the same for upper_arm.l
Add two more bones, not connected to anything, and parented either to nothing, the MASTER bone, or the "SPINE1" bone, depending on your preferences. Call them something like IKHand.R/L. Position them near each hand.
Parenting them to nothing / MASTER bone will have similar effect (assuming you don't move / animate the MASTER bone), while if they are parented to the SPINE1 they will be "carried along" if you move the spine1 bone. Start off with them parented to nothing, after everything is setup in the next couple of steps, you can try animating the arms and see which parenting you prefer.
Switch to POSE mode (CTR-TAB), select one of the IKHand bones, then SHIFT-select it's respective lower_arm bone, press SHIFT-I and accept "to active bone". Press "a" to deselect all, then select one of the lower_arm bones and in the EDIT buttons / Constraint panel change the Chainlen to 2. Do the same for the other lower_arm / IKHand combination.
To animate the arms using IK, you grab the IKHand.L/.R bone (or both) and move them around, the arms will follow. You can turn off the IK by changing the Influence slider to 0.0 in the IK Solver constraint for the respective IKHand bone.
Knee Targets "carried with rig"
- Change the knee.l/knee.r "target" bones to be children of spine1, makes it easier to anmiate walks, as those bones will be "carried along with the spine *
Jumping ability
If you try to have the character jump into the air, by translating the 'spine1 bone, his foot bones, get "left behind" and the legs stretch out, ... (which might be desirable I suppose for a cartoony type effect).
http://mediawiki.blender.org/uploads/f/f3/Mstram-Improved-Footrig-Oops-Trying-to-Jump1.jpg
It is possible to translate the spine1 bone until the legs are at maximum extension and then animate the 'master' bone, I honestly haven't tried that yet, so I don't really know if there is any problem in animating that way. I just think it's simpler to use the spine1 bone for most animating and the master for only special circumstances (character lying down / falling
I did some experimenting and came up with a fairly simple way to keep the feet and legs together and still have IK on the legs.
- I made the toes, foot.L/R and lower_leg bones all connected, and changed the IK target for the lower leg bones from the "foot" bones, to the "leg.l/r" bones (I also renamed those to IKF.l / IKF.r).
(The quickest way to change/assign bone parents is to select the "child" bone, then shift select the "parent" bone and press CTR-P and click on Connnected)
- Change toe.L/R parent from leg.R/L to foot.R/L
- Change foot.L/R parent from leg.R/.L to lower_leg.R/L
Foot Rotation Copy Constraints
If you add a copy rotatation constraint to each foot, you can then rotate the IK_Foot.L/R. bone and the foot will follow. This gives you "two" controls in one. I.E. the IK_Foot controls will move the legs and control the rotation of the (heels) of the feet.
First we need to either 1)rotate the existing leg.L/R bones to match the foot bones or 2)delete them and create new ones. You might find #2 quicker. The reason to align the IK bones with the foot bones, is so that when you press ALT-R in POSE mode (with the IKFoot.L/R bones selected), the feet will return to a default flat position. (Once you add the rotation constraints). (You can position the IK bones any way you want if you don't want the default position of the feet to be flat !)
I'll describe the delete-bones method, as it's quicker and easier.
Switch to EDIT mode.
- Delete leg.R/L (create new IK bones aligned to foot bones by duplicating)
The easiest way to align the leg.L/R bones with the feet is .... to delete the leg.L/R bone, then select each foot.L/.R bone and press SHIF-D (duplicate bone), and move the new bones slightly away from the foot bones. Rename the new bones to IKFoot.L/R (or whatver you prefer. I like to use IK as the prefix to remind myself that the bones are IK control bones.
- Reset IK constraints to use new IK target bones
After deleting the leg.L/R bones and adding the two new IK bones, switch to POSE mode and select the lower_leg.L and change the bone name in the IK solver (F9 Buttons / Constraints) to be IKFoot.L .. and do the same for the lower_leg.R (IKFoot.R)
Add Copy Rotation Constrataint
- Switch to POSE mode
Select the foot.L bone. In the EDIT (F9) buttons panel, under constraints, add a Copy Rotation constraint. Under OB: fill in the name of your armature, then the BO: field will show up, enter the name of the bone (IKFoot.L). Do the same for the foot.R bone.
(Extra optional step: Since the IKFoot.R/.L bones are almost in the same spot, you can hide the foot.L/R bones, since you won't be manipulating them anwyay. Select foot.L and press 'm' then 2. This will move the bone to "bone layer" 2. Do the same for foot.R.
After doing that, when the spine1 bone is translated down, the feet stay in place and don't rotate (as they did with the original rig), and the foot bones also "come along for the ride) if the spine1 bone is translated upwards enough to straighten the legs and beyond.
Master / spine1 repositioning
I also moved the 'master' bone down in front of the character, and rotated the 'spine1' bone so that it sticks out behind him, making it easier to grab. (disconnect spine2 from spine1 so that spine1's tip can point out backwards.)
I also renamed "spine1" to PELVIS and 'master' to MASTER, just so that they show up more predominantly in the bone list.
http://mediawiki.blender.org/uploads/1/19/Mstram-Improved-Footrig-He_can_jump1.jpg