Modification of MuscleStrand – part 1
I attract your attention to the description of the techniques which I used at work CAT MuscleStrand in 3dsmax, creating Veda, and also additional instruments, what I specially worked out for this purpose.
MuscleStrand is composed of a number of spheres, that forms an object that look like strand like muscle, while MuscleStrand isn’t a muscle as such and doesn’t have physical properties of real muscle. MuscleStrand works in two modes: Bones and Mesh. I use these two modes depending on muscle disposition and the way it will affect body model.
Bones mode turns the MuscleStrand object in the chain of interconnected spherical objects interacting with the model of the body through the Skin modifier. Each sphere delivers its transformation in the space to the given in the Skin vertexes of the body model. Dimensions of spheres in this chain are given with the help of curve, and by this action muscles forms are formed, and parameters of Squash/Stretch additionally change shape of the muscle at tension and compression. In this mode I used MuscleStrand for deformation of shoulders, thighs and wrists where using only bones didn’t give acceptable result.
Mesh mode unites a chain of spherical objects in single object. Using SkinWrap modifier or SkinFX plugin you can transfer the shape change of MuscleStrand muscle to body model. Unlike Bones mode MuscleStrand in Mesh mode is not intended for work with Skin modifier.
Also MuscleStrand in Mesh mode can be used to achieve slide effect. Unfortunately in 3dsmax there is no built-in modifier which allows to achieve side effect for the whole body model (it is partially implemented in CAT Muscle).
The lack of Mesh mode is an outward appearance of muscle, its ribbed form and presence of the superfluous vertices, which hinder visual perception both of muscles in rig and of it’s functionality.
Modified by myself MuscleStrand muscles significantly improved deformation of some parts of Veda body: her neck, back, hands and legs. For connection of these muscles with body I used StickyBind mode out of SkinFX plugin (similar at work to SkinWrap modifier)
Modification of the MuscleStrand object in 3ds max
The purpose of the modification MuscleStrand – give the object a form to work properly, slide effect, as well as get rid of superfluous vertices. For this purpose I used Editable Mesh modifier.
Poly structure in 3dsmax provides much more tools for modeling objects than Mesh structure. Choosing between Poly and Mesh for modeling definitely worth to choose Poly. But, nevertheless, there are tasks, where the use of Mesh more justified than Poly.
Despite the fact that Poly is essentially the evolution of Mesh, it has a number of significant differences and limitations in their work.
In the figure you can see that if you change the form of Poly-Edit object/Editable Poly rebuilds the internal edges of polygon shown by a dotted line in a way that would prevent them from crossing. And when you work with a Mesh object (Edit/Editable Mesh) rebuilding does not occur. Additional calculations resulted in Poly objects deform slower than Mesh objects.
Increase the performance of the Skin modifier if you convert base object from Editable Poly Editable Mesh, and only then apply the Skin Modifier.
When you rebuild the object MuscleStrand model you want to use the Edit Mesh modifier to avoid “jumps” the edges of the object.
After modification the MuscleStrand object has the right form of the muscle and does not contain superfluous vertexes. As such it is more suitable for creation of slide effect and easy to work with SkinWrap/SkinFX.
Restrictions on work with modified MuscleStrand:
Problem: when you create a rig muscle object is not deformed when you use Select and Link The reason is the Edit Mesh modifier.
Fix 1: Instead of Link use Position Constraint.
Fix 2: Use written by me scripted modifier – MuscleStrand Mod (unpublished)
Problem: when applying any modifier to MuslceStrand, including the Edit Mesh, MuscleStrand not properly deformed (in versions of 3dsmax 2013+)
FIX: Using Tools -> Snapshot make copy of main part of MuscleStrand object. Using the Edit Mesh modifier to modify the copy. Bind the copy to the main part of MuscleStrand using SkinWrap modifier.