Sunday, November 23, 2008

Maya’s Muscle Solutions are very versatile and are comprised of three main Components (Figure 4). These components are the CAPSULE, Geometry used as Bone, and Muscles (normally NURBS surfaces). Each of these components can be used separately to deform geometry or in combination with one another.

The Capsule is used to incorporate base level bone type of interaction replaces Maya’s default bone systems. Capsules control simple sliding from the capsules shape translated to the skin geometry by sliding only. Conveniently traditional Maya bone rigs can be converted directly into Capsules which carries over traditional IK/ FK functionality for animation. The use of IK relationships can’t be directly incorporated into Capsule without this conversion. A Displacement distance value known as “Fat” can be adjusted to allow for larger sliding changes to be made from the capsules location.

Geometry used as bone can replace the Capsule by using actual geometry to affect the sliding of skin. This will be of extreme value to an anatomically correct facial rig because there are only two actual moving bones in the face; the skull, and the lower jaw bone. By creating geometry that is dimensionally correct to these bones it will be possible to use geometry as the Bone objects instead of Capsules which cannot take the shape of complex geometry.

Finally the Muscle Object in Maya is extremely powerful and versatile tool that can interact with capsule or bone geometry to perform, sliding, sticking, bulging, and reactions to gravity and motion to achieve highly realistic and predictable movements below the skin geometry. The motion and bulging of muscles is determined by constraining locators at each end of the muscle to positions on Capsules or bone geometry and then morphing the muscle shape between different angles of bone movements. To determine how the skin geometry reacts to the muscle specifically, one can paint vertices to respond to the underlying muscle and bone. Attributes that one can paint into each vertex are jiggle, sliding, sticking, among many others (See Figure 5). With these three components in the Muscle Toolset a fully interacting and complex muscle system can be achieved.

Thankfully the toolset allows for “Smart Collisions” both between Muscles and Capsule/Bones, but also with the Skin and the muscles. This huge because the muscles of the face in particular overlap and intersect each other. So if one to were picture the face below the skin, the layers interacting with each other are Skull and Jaw bone, muscles attached both to the bone and to each other, fat incorporated with the bone and muscle for distance displacement between bone and skin, and then the skin polygonal geometry interacting with everything below it. That interaction is decided by the various attributes which are controlled on a 0 to 1 scale by painting the values directly onto the geometry. All of these relationships then react to the movement of the bones driven by the animator and also the gravity in the scene. Additionally, once the animation has become acceptable and the settings for the geometry reactions are satisfactory, one can “Bake” the vertex movements into a separate .txt file to speed up viewport playback and rendering. Baking references external data to speed up calculations at render and during viewport playback because the software no longer needs to recalculate each vertex position by its painted weights, muscle reaction, or bone driven animation.

All of these tools make for a very high set up time, but more importantly a toolset that is versatile enough to create an anatomically correct muscle driven rig.

Saturday, November 22, 2008

So back at it again... I have been researching Maya and Max's ability to successfully simulate muscle level of detail with animation. Today we discuss Max's tools.

Angle Deformers:

Used to fix problem areas or enhance deformation by morphing when two bones corresponding angle’s change. Apply this deformer within the Skin modifier and you can morph selected vertices with a simple lattice when the corresponding angles of two bones change value (See Fig 1). This is simple solution to give simplistic muscle deformations. But it is very rigid and does not offer jiggle, response to gravity, or reaction from speed changes in joints.

This Method of using bone angles to morph specific vertices could be very advantageous to cartoony and stylistic characters but can’t be relied on to offer simulations involving gravity, and “jiggle.” In humans, muscle and fat play key roles by sliding and bulging beneath the skin. The Joint Angle Deformer does not offer the ability to slide both beneath the skin and on top of bone like human muscle mass does. (Fig. 2)

To achieve an illusion of this “Sliding” the closest technique available in max to simulate mass reacting to gravity would be the FLEX modifier which controls vertex reactions based on gravity and speed of the vertices affected through the main skin’s animation. One could, in theory, apply an Angle deformer and Flex Modifier to specific vertices that were desired to move like muscle and fat, but this would be an illusion as there would be no actual mass that can be edited visually or react with bones beneath the characters geometric skin. Furthermore, the FLEX modifier offers no way of BAKING information into external files to save memory during viewport playback. The Flex Modifier only works with selected vertices and even better when the vertices are soft selected that way the bounces are applied heavier to some vertices and soften out towards the edges of the selection. To do this one needs to ADD a Edit Poly modifier on top of the Skin modifier that way you can select vertices after they are animated with bones.

To achieve accurate and easily editable muscle simulations one needs to be able to manipulate 3 types of objects. (1) Bones for animation and rough vertex control of skin. (2) Muscles in the Form of NURBS based geometry to slide on top of bone objects, react to gravity and movement, and to control skin geometry. (3) Skin geometry to both look like human skin and deform to bone and muscle simulations accurately. As of yet 3ds Max can not accurately simulate the interactions between these 3 types of objects nor do they offer comprehensible tools to do so.

Here are some other awesome links I have found that other people are discussing!

I am in contact with this university and they have an awesome face solution based on a huge library of facial animation... But no Muscle implementation....

The Institute of Animation a division of the Filmakademie Baden-Wuerttemburg in Germany is currently working on a project deemed “Dynamic Real-Time Animation” (2006-2010). They have developed a toolset that is available to download for Maya called the Facial Animation Toolset 1.2. The team accepts outside college research in the form of collaborative projects. Their input may be of use. Their tool implements the:

“Adaptable Facial Setup which is capable of driving any humanoid geometry, drawing from an extensive, FACS-based library of facial movement components. The process of fitting the head skeleton to the individual geometry is simplified by offering a standard set of skin weights that accommodates the typical deformation regions of the face. Any skin weights may be cloned topology-independent from one head to another utilizing the Geometry Matching Tool. The Corrective Blendshape Manager offers a useful way to add subtle deformations to a skinned mesh. Blendshape targets can be created and edited, and are computed with respect to the bind pose of the skinned mesh.”

The weakness (and strengths) of their toolset is that the motion is derived independently from a Library of Motion Capture files that are stratified and grouped by the F.A.C.S. which was developed in the late seventies by Friedman whom classified the entire movement capability of the face by muscle. Their goal is to use Motion Capture animation to classify movements based on the F.A.C.S. system first and then mix together each F.A.C.S. animation to achieve a believable face. A rather good ideal but it doesn’t use muscle technologies to achieve gravity and inertia simulation during CG character movements.

Therefore it is still crucial to see if a fully anatomically correct muscle rigged system can be implemented and achieved.

Maya will be next, I can already guarantee I will be using their muscle tools based on Mike Comet's work!!!!

Tuesday, November 11, 2008

So I am coming up on the end of my Graduate career. Next semester will be a doosy. I am now involved with a team of individuals for a short animation project. I wrote the story and have been named project manager. The project is slated for completion in Spring of 2010 (almost a year after my graduation.)

I will also be designing and completing my Directed project which will be documented in this area as fully as possible. Without getting into to many details I will be creating a anatomically correct human face that (in all hopes) moves correctly as well displaying emotion, phonemes, and will cause reaction from an audience. It will be driven by CG muscles. It will not have any motion capture like many facial movement solutions these days.

I am currently experimenting with toolsets from many softwares but have already started leaning towards Maya 2008 + because of its specified tools. Autodesk Max is my #1 software but I am comfortable elsewhere as well.

I will post some tests with old geometry and simple tests as well very soon.