2
$\begingroup$

This is a mesh created by an addon called X-Muscle System.

This question is not about how to use X-Muscle System. It's "how to implement this effect in Blender, without using modifiers." It'ts to explore the possibilities of Blender. The addon is a working example I found.

enter image description here

I can drag the control point (an empty) around, and the mesh will deform along with it.

enter image description here

But it doesn't have an armature or any kind of deform modifier. Actually, I removed all the modifiers/shapekeys/vertex groups. And I uninstalled the addon itself. But it still works! What's the magic behind it?

enter image description hereenter image description here enter image description here

$\endgroup$
4
$\begingroup$

It's just the bone.

You can parent a mesh to a bone and the mesh will follow the bone. That is, the bone controls the location, rotation, and scale of the mesh. It's good for armor, or make a bone control an eyeball to follow a target. It's also good for amination actions.

The magic here is the scale. If you scale the bone, it scales the mesh. Bones can have Bone Contraints, like the Stretch To constraint. This bone constraint stretches the bone along its Y-axis which lengthens or shortens the bone.

The object on the left in your screenshot is an Empty that is the Stretch To target. The thing on the right side is the armature with some bones and custom shapes. The muscle mesh in the middle is parented to one of the bones (XMSL_Muscle_bone.L) and this one has the Stretch To constraint (with a few others).

The magic bone (XMSL_Muscle_bone.L) is tiny and hidden in Object mode. Select the armature and switch to Edit mode and hide the big ones or uncheck Bone Properties > Viewport Display > [_] Hidden in Object mode.

Remove the bone constraint in Pose mode and the magic is gone ;-)

$\endgroup$
3
  • $\begingroup$ sure, I was faster, but you thought to try edit mode while I was confusing myself in pose mode. $\endgroup$ Sep 30 '21 at 17:09
  • $\begingroup$ I've noticed he use Stretch To etc, but I don't understand why the mesh doesn't have Armature modifier, nor vertex group. I thought they're needed for bone deformation? $\endgroup$ Sep 30 '21 at 19:57
  • $\begingroup$ Ok, I finally get it. It's not a "bone deformation" (like how we usually make animation), but a simple parenting relationship. It's just that simple, but somehow I forget you can parent an object to a single bone instead of the whole armature. $\endgroup$ Oct 1 '21 at 4:55
3
$\begingroup$

It does have an armature. The shape on the right is a custom shape for an armature XMSL_Muscle SystemAmt specifically the bone XMSL_Muscle_flexor_bone.

The vendor of the add-on has gone to lengths to conceal what techniques they are using, but they are using a combination of drivers and constraints to maintain volume. They are probably also using a hook to make the controller work in object mode.

$\endgroup$
1
  • $\begingroup$ Oh, you were faster :D $\endgroup$
    – Blunder
    Sep 30 '21 at 17:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.