Muscle
The muscle system is based on actual muscle objects that you can shape based on their length and then add a Deformer MSkin, which will affect the geometry of your character. The logic is the same as the connection between Joint and Skin, the combination of both deforming the geometry of an object. It gives you more control over what the muscle objects should deform.
Muscles can slide under the mesh and push it, as before, but can also pull it to take into account loss of volume (particularly useful when the muscle is stretched). Additionally, muscles can now have dynamics applied to them (no collisions, though), so they can react to gravity, motion and emulate their mass better.
These muscle objects can be anchored to other objects, joints or whatever you want so they can be stretched and squeezed the way you need them to.
Adding muscles to your character is fairly straightforward:
- add a Muscle object and an MSkin object
- place the Muscle object anywhere in your hierarchy, but make sure MSkin is placed below any Skin object(so that muscles deformations can be calculated after the joints deformations)
- position the anchors of the muscles
- link each anchor to a joint or object (for example, thigh muscle anchors linked to the leg and shin joints)
- set the rest length
That's it. From there, you can start creating your different muscle shapes for each state (or let the Muscle object calculate the volumes automatically) and adjust various settings if you want more control or dynamic behavior.
The Muscle objects themselves can be rendered, so make sure you hide them if you don't need to see them in your final render.
This is a great way to refine the way your muscles affect your mesh.
Keep in mind that muscle objects need their own Weight tag, and not be mixed with joints or other objects, otherwise their influence will be normalized, instead of added on top of existing weights.