Spline Controllers And Constraints :
Once you've got your IK's all set up, we can begin setting up spline controllers for our bone mesh. So the Main Skin will react to the bones, and the bones will react to our splines. That way, we will be able to hide the Bone Mesh in our scene, and work directly with the main skin animation, which is very handy, as it helps you to see just what your actions are influencing. A good alternative is to use some Spline controllers, and a few bits of broken mesh too. But I won't be going this route, I'd like to have everything externally controlled.
This is completely optional though, with IK's in place and the broken mesh all linked up you can quite easily skip to the Skinning section and animate your character now. But I do recommend sticking through it if you don't know much about Constraints in Max. You will also miss out on the Wire Parameters section, in which I will use the Spline Controllers.
We'll start off with the eyes. Go to the ' Create ' tab and click on Splines. Create a shape of your choosing ( I recommend something that can be easily grabbed from all angles ) and position it in front of the face, and exactly in the centre along which ever axis will align it right in between the eyes, It's the X Axis for me, but your model might be orientated differently ( Exact positions of objects can easily be done via the Move Transform Type In ). Name it accordingly also.
 |
Next up we'll create a '
Look At ' constraint on both of the eyes, and set the constraint itself to the spline. You'll find the Look At Constraints under the Animation menu in 'Constraints'. To set it up, just click on one eye, then select '
LookAt Constraint ' from the Constraints menu, and then drag the cursor to your spline, and click.
You'll notice that the Motion menu will now make itself visible. Within it, Tick the '
Keep Initial Offset ' Box (
This will put the eye back to its original position ) and I find it easier to work with if I change the '
Viewline Length ' to 0 (
Gets rid of that blue line ).
Repeat this method for the other eye, and now you will have a spline that will control the movement of the eyes. You move the spline, and the eyes will follow it. In my example, where my eye mesh is not a full sphere, It's a good idea to have placed the pivot point of the eye further back, as keeping it centre to my mesh will result in odd movements.
Next up, we'll give the head the same treatment as the eyes. Make a new spline in a similar location to your eye-spline (
whilst keeping to the previously mentioned alignment rules ). And then with the head selected, go to the Constraints menu under animation, select '
LookAt Constraint ' and apply it to your new spline. Now in the Motion tab, scroll down to where it says '
Select Upnode ', untick 'World' and then using the button labelled 'None' pick your head spline. This will allow us to tilt our head from side to side, whereas before we could not do this. We also want the eyes to follow the head as it moves, and have the eyes move independently once the head has been moved. To do this we need to link our eye spline, to our head spline. By linking the eye spline to the head spline (
and not vice-versa ) the head spline becomes the parent, and eye spline becomes the child.
We also want our neck to move with the head, so set up a '
LookAt Constraint ' from the neck to the same spline that our head bone is set to look at. Again you may need to tick the '
Keep Initial Offset ' box. (
We will also be creating another ' Look At Constraint ' for the neck later on for a more realistic movement )
Moving lower down, we'll create spline controllers for the arms and the legs. It's all relatively simple, except we will be adding an '
Orientation Constraint' to the ankles, this will allow us to keep our feet straight when we lower the character, instead of them rotating below the floor line. We will also take advantage of the IK's Swivel function, using splines to not only move the IK Goals themselves (
thus moving the body parts ) but having separate splines to control the rotation of the elbows and knees.
Start off by creating just two splines for the arm. We want to position one where the IK Goal is, and another behind the elbow. This can be done with accuracy using the
Align tool (
See : Useful Shortcuts ). With your splines made, select one and enable '
Align ' then select the object you wish to align the spline to, and when the window pops up, ensure that all three Axis' are selected, and that you also have the Current and Target objects set to 'Pivot Point'.
This will place your selected object at the target objects pivot point, based on the position of your selected objects pivot point. (
If that confuses you, think it over... you'll see that it really is quite simple )
Bear in mind that the elbow joint is usually the pivot point of your characters forearm, placing your elbow spline at the pivot point of your upper arm will more than likely place it at the shoulder area. After you have aligned your elbow spline, move it behind the character slightly, like so:
Once you have created these two splines for the arm. Select them both and holding down Shift on your keyboard, drag them to the other side of the character, when the clone options window pops up, ensure the objects are set to
copy . You now need to align these 2 new copies to the other IK Goal and Elbow of your character. It is also a wise idea to name them. I usually start the names of my controllers off with '
A_ ' this way, they always come first in the Hierarchy/Selection menu. So for example, one of my elbow controllers is called '
A_RightElbow '. As I have said before... “
Organisation Is Key ”
Now select an IK Goal itself and go into the Motion tab, scroll down to the 'IK Solver Properties' roll-out and click the 'None' button underneath where it says 'Pick Target' for your Swivel Angle. The target of course, will be our elbow spline. When you select your elbow spline, your characters arm might tilt slightly, if it doesn't no worries... if it does, just move the elbow spline up or down until you can get the arm back to as close to its original position as possible. Lastly, we need to link the splines that are positioned on the IK Goals, to the Goals themselves. We also need the Spline to be the Parent in this little hierarchy. So the linking goes from the IK Goal, to the Spline, not the other way around. Do this with both IK Goals. The elbow splines don't need to be linked to anything.
Once that is done, we will finalise by adding an '
Orientation Constraint ' from the palm of the hand, to the hand spline. This will allow us to rotate our hand around, as well as move its position. If your hand moves out of place once the constraint has been applied, scroll down the Motion menu and find the '
Keep Initial Offset ' check box, and tick it.
Continuing down the body, I'm going to create another spline to be used in conjunction with my chest area. I can't directly link my chest to this spline though, as that will break the hierarchy that my chest is currently a part of. Instead I'm going to use another '
Look at Constraint ' to control the movement and rotation of my chest. This stage is exactly the same as creating the controller for the head, so instead of me repeating myself, just use the knowledge you've already gained. You should end up with something like this:
 |
I have also put a ' LookAt Constraint ' from the neck to this chest spline. Now the necks influence is split 50/50 between the head and the chest. ( This is quite important )
You'll notice that I have a circular spline around my characters hip area in the above animation. Create one for your character as well, and align it to the pivot point of your characters hip. Or whichever bone you're using that controls both the lower half and the upper half of your character.
I'm able to link the hip bone to the spline, because unlike the chest area we just covered, my hip bone is not linked to anything. The bone above it, and the bone below it are linked to it instead.
Next up is the legs, which will be given the same treatment as the arms, we will also be adding an ' Orientation Constraint ' to the ankle, to prevent the foot from rotating downward when the character is lowered.
 |
Set everything up the same as we did for the arms. Swivel target objects are the knee splines, link IK Goals to the ankle splines, and put on an ' Orientation Constraint ' from the ankle bone, to the ankle spline, ensuring the ' Keep Initial Offset ' check box is ticked . If you need more details, refer back to how we set up the arm controllers. ( Note: If you're not already doing so, name these controllers appropriately! )
I have also created another spline, and linked it to my characters sword. And to finalise, I have created one last spline controller, set to the absolute root of the world, 0 on all Axis' ( via the Move Transform Type In ) and linked all of my splines to this final spline. It will act as a master object, and the easiest way to link all of your splines to it is to change the selection method to 'Shapes'
Then select all of your splines (
Excluding splines linked to other splines and the one we will link them all to ) and using the '
Select and Link ' tool, simply click and drag to the final spline, and release. We now have a Master controller, for all of our controllers.
16 Spline Controllers... one hell of a lot easier to keep under control than the 70+ bones my character has. Glad you agree. It's also recommended that you put these spline controllers in their own 'Layer '. And that concludes Spline Controllers and Constraints. Next up, Wire Parameters.
[I'm A Disclaimer]
You may notice there are 2 more splines in the above image, these are my "Foot Roll" controllers, and I originally wrote them in with this section, but I covered the Reaction Manager whilst creating them, and now that the Reaction Manager section is following, it made no sense to have that particular "Foot Roll" segment in this section, instead... it is now on the next page.
[/End I'm A Disclaimer]
Next up... in the correct order this time, Reaction Manager!