cMuscleSystem node
 
 
 

This is a deformer node that implements the main skin deformer node. It supports multiple connections from cMuscleObject, cMuscleDirection and cMuscleSmartCollide nodes for basic skinning and Sliding. It can also operate standalone for Caching, Relax, Jiggle, Self Collision and so on.

Related topics

Main attributes

The Muscle skin deformer has several important attributes that are not all directly tied to any specific feature.

Envelope

The common Maya envelope setting that specifies the resulting amount of deformation applied by the deformer. Setting this to 0 has the same effect as disabling the nodeState setting, and effectively turns the deformer off.

Cache

Sets the state of the caching algorithm.

disabled

The cache feature is not used.

write-file

Writes out the cache to a separate ASCII file each time the frame is changed.

read-file

Reads in the cache from external files.

write-node

Writes cache data directly onto the Muscle deformer node each time the frame is changed.

read-node

Reads cache data from the Muscle deformer node.

Show Warnings

This option turns on the display of warning messages output to the script editor. This is an important option, as it lets you know if you have sticky weights set for muscles that were not bound properly to the points. When this occurs, Muscle deformation can slow down. To see if you have invalid bindings, turn on showWarnings and examine the script editor. You can then select Muscle > Skin Setup > Auto-Fix Invalid Sticky Bind Points from the main menu bar to correct them.

User Scale XY/Z

These attributes let you connect the master scaling node for your rig into the deformer. This way distance-based values, like force items, can work properly when the rig is scaled up or down.

Sticky attributes

Related topics

The Muscle deformer includes the following attributes that affect how Sticky deformation works:

Enable Sticky

Enables and disables sticky deformation.

Relative Sticky

Lets you select whether Relative Sticky mode is on or off.

off

Turns Relative Sticky mode off. Sticky weights move the point on the mesh fully, like a skinCluster.

relative

Turns Relative Sticky mode on. cMuscleObjects are deformed in such a way that you do not get a double-transform when a skinCluster is used below Muscle.

For more information, refer to Relative Sticky deformation.

Force Normalize

Since Muscle Objects can have their Sticky values affected by their Sticky Strength attribute, and because you can choose not to normalize weights with Relative Sticky mode, you can force normalization of the weighting during deformation. When on, all Sticky weight values are normalized to 1.0 during deformation.

Sticky A/B/C

These attributes determine which set of Sticky weights you are using. These values can be blended, although you typically have only one set on at a time. The values for these attributes are internally normalized so that you do not get a double transform. For example, setting stickyA/B/C to 1, 1, 0, actually results in a 0.5 0.5 0 result.

Sliding attributes

Related topics

The following are the basic Sliding settings on the Muscle deformer:

Enable Sliding

When set to 1.0, sliding is enabled if you have painted Sliding weights for the object you want to slide.

Paint weights only where sliding is needed for that object. You can also paint Direction weights as described earlier to get more control over the direction of the slide.

Quality

Sets the quality of the sliding calculations. Higher values look better but are slower.

Full

True capsule, polygon bone and NURBS muscle sliding is calculated.

Medium

Any NURBS muscles are slightly lowered in quality to give faster performance. Often, you can use Medium quality and get an acceptable level of sliding. Polygon bones are not changed by Medium quality.

Low

All objects including both polygon meshes and NURBS objects are converted to capsules internally. This provides some idea of what sliding looks like, although it is not very accurate. For best results, your geometry of any polygon objects should have the length of the geometry down the object’s local Y-axis. This gives the most accurate capsule replacement.

Shrink Wrap

Normally, sliding only occurs when a capsule/bone/muscle pushes outward farther than the surface of the mesh. The Shrink Wrap attribute lets sliding occur even if the objects are lower than the skin. In effect, it causes the skin to look not only outside but also inside, and moves the skin mesh to the object that is the farthest out. This can be useful to get tighter muscle definition, or even as a modeling tool. If there is no object to slide onto, the point is left where it is.

Use Bind

Stores the fat offset of the skin mesh to the closest bone/muscle and uses that offset throughout the deformation, even if the point is slid by another muscle.

See Set a constant fat offset for Sliding deformation for more information.

Allow Neg Fat

This is used when useBind is on. When active, this allows points to stay below any muscle/bone if the muscle/bone was originally intersecting the model when the fat was bound. If off, the mesh is always on the surface. If useBind is off, this attribute has no effect.

Displace attributes

Related topics

Force attributes

Related topics

Jiggle attributes

Related topics

The following are the Muscle deformer settings for Jiggle:

Enable Jiggle

When off, the jiggle calculation is disabled for speed. When on, per point skin jiggle is calculated.

Jiggle Collisions

Allows sliding collision to be handled during jiggle effects. This way, if a point hits something it would normally slide or push out from, it still slides. The enableSliding option must be on for this to work. Note that jiggle does not do self-collision.

Reset Frame

Sets the base frame at which (and earlier), Jiggle has no effect and is reset. This can be useful if you are animating more than one shot in a file, and the character moves rapidly from one frame to the next. You can key this value with a stepped keyframe to adjust it to reset at the start of each shot.

Jiggle Min/Jiggle Max

Once you have painted Jiggle weights, this sets the actual amount or strength of Jiggle applied on those points.

Cycle Min/Cycle Max

Once you have painted Cycle weights, this sets the frame time it takes for each point to bounce based on the painted weights.

Rest Min/Rest Max

Once you have painted rest weights, this sets the frame time it takes for each point to stop moving and come to rest.

Relax attributes

Related topics

The following are the Muscle deformer settings for Relax:

Enable Relax

When off, this disables the Relax calculations for speed. When on, Relax is enabled.

Relax Mode

Sets the type of Relax calculation applied.

normal

Sets up Relax to wrinkle when points are compressed and pull when points are stretched. The amount of wrinkle is less than with Wrinkle mode.

pull

With this mode, wrinkling does not occur at all, and relax only operates when the points are pulled farther apart or stretched.

wrinkle

Operates like "pull", with both wrinkling or pull effects affecting the mesh, however the amount of wrinkle is increased. Wrinkle weights affect the wrinkle section, Relax weights affect the pull effects.

Relax Collisions

When on, collisions with sliding bones or muscles occur during relax calculations. This often gives the desired result of Relax when sliding is used. The enableSliding attribute must be on for this to work. Collisions also occur with displace nodes if collisionDisplace is on and displacement is in use.

Relax Iterations

Sets the number of calculations performed for Relax. Higher values are more accurate and stable, but take longer. Values in the range from 8 to 64 usually work well. Often, a middle value of 24 or 36 provides enough stability and deformation. If increasing the number only changes the mesh slightly, using the lower value usually suffices.

Relax Strength

Sets the overall strength of the Relax. This is an easy way to lower the effect of the entire Relax calculation instead of repainting weights. If your mesh flies apart, lowering this value can help.

Wrinkle Strength

For the Wrinkle mode, sets the amount of wrinkling that occurs as the mesh compresses. Values over 1 are allowed.

Relax Compress

Like Relax Strength, but applied only to points as they compress.

Relax Expand

Like Relax Strength, but applied to points as they expand or are pulled farther apart.

Smooth attributes

Related topics

The following are the Muscle deformer settings for Smooth:

Enable Smooth

When off, this disables the smooth calculations for speed. When on, the Smooth feature is enabled.

Smooth Collisions

When on, collisions with sliding bones or muscles occur during Smooth calculations. This often gives the desired result of Smooth when sliding is used. The enableSliding attribute must be on for this to work. This also collides with the cMuscleDisplace node if Displace mode is active and collisionsDisplace is on.

Smooth Iterations

Sets the number of calculations performed for smooth. Higher values cause more smoothing, but take longer. Values in the range from 8 to 64 usually work well. A middle value of 24 or 36 often provides enough stability and deformation. If increasing the number only changes the mesh slightly, using the lower value usually suffices.

Smooth Strength

Sets the overall strength of the Smooth. This is an alternative way to lower the effect of the entire Smooth calculation without repainting weights.

Smooth Compress

The Smooth operation can change the look of the default mesh. Using Smooth Compress instead of Smooth Strength causes painted points to be smoothed only if that part of the mesh is undergoing compression. This can be used to help with areas that pinch.

Smooth Expand

The Smooth operation can change the look of the default mesh. Using Smooth Expand instead of Smooth Strength causes painted points to be smoothed only if they are pulled farther apart.

Smooth Hold

Normally, Smooth causes a mesh to lose volume since it smooths in all three directions. Applying Smooth Hold makes the smooth occur less in the direction of the normal of the point. This means that points can still smooth out, but lose less volume. Values between 0.5 and 0.8 are recommended.

Collision attributes

Related topics

The following attributes on the Muscle deformer let you adjust how Self Collision works:

Self Collison

Enables or disables the Self Collision calculation. Can be set to off for speed, then turned on before render or final checking.

Self Tolerance

Sets the internal tolerance used by the computations. This is multiplied by other values internally, and does not need to be adjusted.

Self Falloff

When a collision occurs, the points around are bulged out to preserve volume. This value represents the distance that the points falloff to zero over for the volumization effect. Larger values mean a larger area is volumized.

Self Volumize

Sets the amount or strength of points that are volumized/bulged out to preserve volume.

Self Blur Iterations

When a collision occurs, points are moved/flattened to resolve the collision. This effect can be blurred out to affect other points surrounding the collision to result in a more smooth/soft look. This sets how many iterations occur for this calculation.

Self Relax Iterations

After self collision, points within the falloff region can be relaxed with the Relax algorithm. This sets how many iterations are used.

Self Relax Strength

After self collision, points within the falloff region can be relaxed with the Relax algorithm. This sets how strong the relax effect is.

Self Smooth Iterations

After self collision, points within the falloff region can be smoothed with the Smooth algorithm. This sets how many iterations are used.

Self Smooth Strength

After self collision, points within the falloff region can be relaxed with the Relax algorithm. This sets how strong the relax effect is.

Self Smooth Hold

For the self collision smoothing, this sets the amount of smooth hold during the smooth operation. At higher values, points are not allowed to smooth along their normal and retain volume more.