john mariella

johm

About Me

Connect

LOCATION
Not Specified
WEBSITE

Houdini Skills

Availability

Not Specified

My Tutorials

obj-image Masterclass
Muscles Overview | H16 Masterclass

Recent Forum Posts

muscle end constraint issue Houdini 20 April 25, 2024, 5:23 p.m.

from that snapshot, it looks like your MusclePaint node is upstream from the MuscleConstraintProperties node.
So what I assume is happening is:
  • MusclePaint is not painting values in the muscletobonemask attribute. It's getting initialized to 0.0.
  • MuscleConstraintProperties is detecting an existing muscletobonemask attribute and not overwriting it out of an abundance of caution.

The result is a zero-weighted muscle-to-bone constraint.

You should either move the MusclePaint node downstream, and thereby let the MuscleConstraintProp node do the initializing, or, enable the MuscleConstraintProp>Mask Falloff toggle to force it to overwrite the muscletobonemask attribute via the parameters.

Muscle Vellum issues/questions April 25, 2024, 5:10 p.m.

jmbrodsky
... What's the best way to get the muscles to stiffen up and look less goopy?
With the constraints setup as they are in the MuscleSolverVellum node, we can't get perfectly rigid muscles. A built-in ShapeMatch constraint would have been one way to do that, but in practicality it would serve more fringe use cases. Maybe something to include in the future?
Nevertheless, in your hip file, it would be advisable to include "some amount" of MuscleToBone constraint. This will help the constraint system hold muscles in place and not flop around.
The modified hipfile below manages to ungoop your muscles without the help of the muscletobone constraint, and with fairly low substeps. The main problem was the muscle Damping wasn't low enough to get a response from the shape stiffness. More substeps and constraint iterations could also help.
This, and other changes are commented in the attached modified hip file.

jmbrodsky
What's the correct way to attach the muscle to bones? It seems I can use the MusclePaint> Muscle End Mask or I can use the Muscle to bone mask. Also, when you use a MusclePaint SOP does that override any distance threshold that is set in the MuscleConstraintPropertiesVellum SOP?
Ideally the MusclePaint node should come after MuscleConstraintProperties. ie, use the parameters to get your constraint masks as far as you can, then use MusclePaint to refine.
In your specific case, the paint node was upstream, and muscletobonemask was being initialized to zero. The downstream MuscleConstraintProperties node was not overwriting this value because Mask Falloff wasn't toggled on. The zero value was just passing through.
MusclePaint does not affect the muscletobonedistance attribute.

jmbrodsky
When I use the Muscle To Muscle constraints. The Muscle attachments cause spikes in the muscle geo like every other vertex is being pulled. I've found Muscle Glue Mask yields a cleaner result I'll attach some pics as well
With weaker material properties and low substeps, MuscleToMuscle will potentially pull points into spikes. Internally, MuscleToMuscle uses Vellum Stitch, and MuscleGlue uses Vellum Glue. (The difference being one uses a point-to-prim attachment, and the latter uses a one point to multiple other points attachment -with no sliding).


jmbrodsky
Is there a way to sculpt a custom flexed shape for muscles? It looks like in the file Mio_muscle_setup from the Unreal demo the artist used an Edit and Femdeform SOP to achieve this on the bicep but it's not clear to me how it works or to set this up in my own file.

Yes. The workflow is described in this example available from the SideFX content library.
https://www.sidefx.com/contentlibrary/muscle-target-shape/ [www.sidefx.com]

muscle end constraint issue Houdini 20 April 24, 2024, 10:37 p.m.

You don't have to use the MuscleEnd constraint. In fact, there's a toggle on the MuscleSolver that allows you to bypass it altogether if you needed to do that.

If you do paint it out or disable MuscleEnds, then you need to make sure the MuscleToBone constraint is set up properly. That will be the only constraint remaining that will hold muscles and bones together.

If you turn on the MuscleToBone visualizer on the MuscleSolverVellum>Guides, do you see any constraint vectors? If not, does the muscle attribute: @muscletobonemask contain non-zero values? In the MuscleConstraintProperties node you should see a heatmap/mask for muscletobone.