Simulating muscle bulge with bones.
 

Step 1
Usually you would simulate the bulging of muscles with the Morph Angle Deformer in the Skin modifier, or a Reactor controller used with a Morpher modifier. With those techniques you can usually get more control over exactly how you want the muscles to deform as the character bends its arm, but there are times when this bone setup is preferred. First, it's easy to set up and you can quickly assign the vertices when skinning to get good results. Second, some game engines don't support using the Morph Angle Deformer or any modifiers to move the vertices of the mesh. Everything depends on assigning the vertex weighting to one or more bones. If this is the case, then your only option when it comes to bulging muscles is using a extra bone or more.

We'll start by using the arm rig from the first lesson.

Add a bone in front of the upper arm bone to represent the biceps. Max will automatically add the nub bone when you right-click after creating the biceps bone.

Step 2
Link the biceps bone to the upper arm bone.

Step 3
Create a point helper

Step 4
Move this helper to about the upper quarter of the lower arm bone. This more or less represents where the biceps connect into the lower arm. Make sure it sits inside the lower arm bone widthwise, and not off to the side.

Step 5
Link the point helper to the lower arm bone.

Step 6
Now go into the Position Controller of the nub bone on the biceps bone, and click on the Assign Controller button.

Step 7
We're going to assign a Position Constraint to this bone.

Step 8
Use the Point you created as the Position Target.

Step 9
Turn on Keep Initial Offset.

Step 10
Now go into the Rotation Controller of the biceps bone and click on the Assign Controller button.

Step 11
Assign a LookAt Constraint to this bone.

Step 12
Use the point helper as the LookAt Target.

Step 13
Turn on Keep Initial Offset and dial down the Viewline Length to 0. You don't need to set the Viewline Length to 0 for this to work, it just cleans up the viewport because we don't need that extra line there for any reason.

Step 14
This is an extremely important step because this is where we tell Max to make this particular bone scalable. If you try moving the IK Goal right now you'll notice that the biceps bone doesn't really do anything except move with the arm, it doesn't squash and stretch like a muscle would.

Go into the Character menu on top and bring up the Bone Tools window. Turn off Freeze Length, which will let the bone scale along its length as the arm bends. And change Stretch to Squash which will force it to keep it's volume as it scales. Try bending the arm with the Scale option turned on to see the difference.

Step 15
That's all folks. I've added some fins onto the biceps bone here so you can see how it squashes as the arm is bent. And below I whipped up a quick arm shape and applied it to the bones so you can see how an actual mesh would deform once skinned to the bones.

You can add more bones using the same steps to simulate the squashing and stretching of the forearm and triceps. Do some research into anatomy and find out where the actual bones you're trying to simulate lie on the arm, and where they're connected. And then put the bones in approximately the same place. Here's an excellent site to learn more about anatomy: Anatomy of the Human Body.

It's also easy to make adjustments to the muscle bones with this setup. If you find that the mesh isn't deforming like you want, try adjusting the position of the main bone, as well as the position of the point helper along the forearm. Where they're placed will have a big impact on how the mesh deforms.

I've found that the Skin modifier works better with these muscle bones than the Physique modifier. But that makes sense because Skin is meant to be used with Max bones, while Physique was made to be used with Character Studio's Biped.

Click here to go back to the "Arm" page...