Hi everyone. This little overview sheet is designed to let you know of the new tools (and some old ones too) that r4 has for character animators. So, let's get to it.
R4 has a new bone object design. Basically, what this means is that bones in r4 are standard geometric primitives. The bone object ias a parametric object with automatic hierarchical assignement implemented. It means that when you create several bone objects, they are already linked and ready for FK manipulation. This design also allows you to use ANY geometric object as a bone object. This means that you can use a linked character's limbs as bones and apply IK solvers directly to them (no more auto-boning or linkig geometry to bones!). Also, bone objects now have squash and stretch, and scaling built into them. If you need a cartooney character to stretch its arms, you can do it just by assigning a sqush property to the affected bones. I'll work into some tutorials to explain this more clearly as my schedule permits.
These are new 'controllers' that allow you to use IK in your bones (I'll referr to any bone object/hierarchy as 'bones' from now on). With R4 we have three IK solvers:
HISTORY DEPENDANT IK SOLVER
This is the solver used in previous versions of max. What it does is calculate limb rotations through the solver's history. This means each time you animate the IK end effector, it looks back into previous keyframes and calculates the limbs rotations based on that. This causes that the futher you go in time, the longer the solver takes to get an IK solution. Therefore, animating becomes a slower process over time.
HISTORY INDEPENDENT IK SOLVER
This is a new solver included in R4. This solver doesn't depend on history, it solves rotations as it goes over time. Animating remains a very fast task. This is the best solver to use when animating characters. It also has a rotate plane helper, which helps us define the orientation of the plane used to place the bones when solving IK. More on this later.
This solver is primarly geared towards game development. It can only be used on two-bone chains. I haven't really used it, so I can't really comment on it.
Constraints are very powerful tools to establish certain relationships between objects. They allow animators to easily animate objects based on other objects transformations. max4 includes the following constraints (from the help file):
attaches an object's position to a face on another object.
restricts an objects position along the surface of another object.
restricts an objects movement along a path. Position constraint causes the constrained object to follow the position of another object.
links the constrained object from one object to another.
constrains an object's orientation so that it's always looking
at another object.
causes the rotation of the constrained object to follow the rotation of another object.
Most of these constraints were available in previous versions as controllers. The main difference (and a huge one, for that matter), is that constraints are weighted. That is, they allow more than one object to influence the constrained object, and each 'controlling' object has a certain weight (the amount of influence it has) that influences the constrained object. Therefore, any object can react to the influence of several objects.
Wiring is a very user-friendly to a kinda expression-wizard interface. However, it goes beyond expressions. How? First, wiring controllers support bi-directional control, as opposed to expression controllers's uni-directional control. Also, they fully support the whole expression syntax, functions and operators, so they allow complex operations to be set. The workflow is pretty easy to set up. Just select one of the objects, bring up the wiring parameters dialogue (or the wire parameters command, either in the animation menu or your quad menu), select the controller to wire "from", select the second object, select the controller to wire "to", select a wiring direction ("to" and "from" becom relative), and hit the "connect" button. There you are. You can alter the expression in the expression window, and hit "update" when you're done. We'll be using a lot of wiring throughout this tutorial.
Reactor controllers have been available since R3, but I decided to include them here because we'll also be using them a lot. Basically, a reactor controller is a controller that will generate certain pre-set motion when something else happens in the scene.
ADD CUSTOM ATTRIBUTES
This is one of the features I've enjoyed the most with R4's arrival. The ability to add any kind of attribute to an object. This, combined with wiring, provides a combo of unlimited power (ok,ok. To much Locomotion last week...). We'll add lotsa custom attributes to our characters to be able to control them more efficiently.
Skin has been enhanced a lot in R4. Envelopes provide better initial deformation, shaded views display bone fallofs, and we have new deformers. There are three types of deformers. Joint angle deformers (for areas such as elbows, hips and shoulders),
bulge angle deformers (for areas like biceps), and morph angle deformers (a new in-skin morphing system).