This weekend was the first real opportunity I have had to start working on a rig I am planning to make for a character modeled by Nicolas Collings. The character’s name is Trarch and is an awesome piece of work, I can’t wait to start making some progress on this project.
Anyways, if you’ve checked out Nicolas’s website you will have seen Trarch in his side banners, 3d works section, and making of section and noticed that he is a very muscular character. Being the quick one that I am, I realized this would be a good chance to play around with some muscles.
I found a technique outlined on Chris Evan‘s website for creating muscle systems in Maya and thought it would be cool to try in Max.
The basic idea is to go ahead and create the rig for your character and skin it as you normally would. After you have finished you can begin modeling some muscles that will go behind your character’s geometry mesh. You need to add a morpher modifier and create morph targets for the other poses of the muscle and then determine what should drive the value of the morph target (I used an expose transform helper monitoring how much the elbow joint has bent) and wire the parameters.
Then we need to add several modifiers to our main geometry mesh to get the final effect. A volume select modifier is added to create a selection of vertices based off how close the mesh we created for our muscle is to the main mesh. Then we pass this selection up the stack to a push modifier and flex modifier. The push modifier is there to simulate the bulging of the muscle, and flex is to create some minor skin jiggle.
To the right you can see an animated gif of what the arm looks like in the viewport
with the volume select changing the colour of the vertices. A rendered version of this same animation can be found at the bottom of the page.
There are a few drawbacks I can see coming up down the road with this method, however. First and foremost is that it took a total of 4 modifiers being added to the stack to achieve the result. That is only for one muscle and a volume select modifier can only detect one mesh at a time. That means that for every muscle I want to add I am going to have to add another volume select modifier and my stack is going to get quite congested.
Secondly, there is not a great deal of control over what muscles affect what areas of the character’s mesh. You can create the muscles at the perfect size, shape, and position and it appears to be working great, but then you can easily get the muscle too close to another part of the body and it will volume select that area and apply the bulge and jiggle there as well. I already started to notice this slightly putting this arm together with the size of the character’s forearm and it intersecting with the bicep. This can probably be minimized a lot and brought under control quite a bit by spending more time fine tuning the settings on the modifiers.
This was put together rather quickly since it was just a test for when I get to building the actual rig so the skinning is by no means final and the settings on the modifiers are just good enough to get it working at this point, but overall I think the technique works quite well! I am planning to take a bit of time looking into what it might take to create a scripted plugin to replace volume select that will allow multiple meshes to be selected.


