hi LaylaLDP
Unfortunately the cheetah asset is not freely available to test with since a full Ziva license is required.
Maybe you could zip up a small sequence of files output from the bone animation as well as your source muscle surfaces?
Also, it looks like you have FileCache nodes upstream in your muscle configuration that are reading sequeces of geo files? The chain of sops that process your muscles should *not* be time-dependent.
Found 68 posts.
Search results Show results as topic list.
Technical Discussion » Muscle Vellum Solver no caching sim (houdini 19)
-
- johm
- 114 posts
- Offline
Houdini Indie and Apprentice » Deprecated muscle system vs New
-
- johm
- 114 posts
- Offline
Hi Lucas, sorry but the old system is no longer available. The Inflate SOP (muscle displace) is still alive though.
Technical Discussion » Need Help Ensuring Cohesive Deformation of Anatomical Models
-
- johm
- 114 posts
- Offline
When you say "...anatomical components are starting to separate..." are you still referring to the refitting process on the initial static model? Or are you point-deforming using an animated target mesh?
...ie is your initial refit used to generate a static output => which is then used as the source mesh in your animated deform? Or are you doing the refit and animation all in one step?
In some cases you may get better results by using two separate PointDeform SOPs. One to do *only* the Capture step, and the other to do only the Deform.
Another trick you might use would be to use the outer skin to deform only the skeletal bones. And if that's looking acceptable, then combine your skin and bones, and use them together as your deformation mesh. This would sandwich all the other anatomical elements inbetween. -sort of a simpler, stripped-down volumetric approach.
...ie is your initial refit used to generate a static output => which is then used as the source mesh in your animated deform? Or are you doing the refit and animation all in one step?
In some cases you may get better results by using two separate PointDeform SOPs. One to do *only* the Capture step, and the other to do only the Deform.
Another trick you might use would be to use the outer skin to deform only the skeletal bones. And if that's looking acceptable, then combine your skin and bones, and use them together as your deformation mesh. This would sandwich all the other anatomical elements inbetween. -sort of a simpler, stripped-down volumetric approach.
Edited by johm - Oct. 20, 2023 13:48:30
Technical Discussion » Musculoskeleton and character mesh are different
-
- johm
- 114 posts
- Offline
I hope I understand your question...
If you have an animation skeleton (a joint hierarchy) refit to match your target character, and you have the anatomical skeleton (the modeled bone surfaces) also refit to match your target character, then the joint transforms should drive the bone surfaces as you'd expect. Re-weighting should not be necessary.
If you have an animation skeleton (a joint hierarchy) refit to match your target character, and you have the anatomical skeleton (the modeled bone surfaces) also refit to match your target character, then the joint transforms should drive the bone surfaces as you'd expect. Re-weighting should not be necessary.
Technical Discussion » Musculoskeleton and character mesh are different
-
- johm
- 114 posts
- Offline
you would need to use a combination of TopoTransfer and PointDeform like in the following diagram.
TopoTransfer will conform your source skin topology to the shape of your variant models. You would use landmark locations to ensure feature correspondence is maintained.
Once you have generated a transferred topology (probably best to stash the output as it may be expensive to regenerate), then this will serve as a target, ie Deformed Point Lattice, for the PointDeform SOP to operate on the muscle, bones, or kinefx skel geometry.
Some cleanup may still be necessary, but this approach will get you most of the way there.
TopoTransfer will conform your source skin topology to the shape of your variant models. You would use landmark locations to ensure feature correspondence is maintained.
Once you have generated a transferred topology (probably best to stash the output as it may be expensive to regenerate), then this will serve as a target, ie Deformed Point Lattice, for the PointDeform SOP to operate on the muscle, bones, or kinefx skel geometry.
Some cleanup may still be necessary, but this approach will get you most of the way there.
Edited by johm - Oct. 6, 2023 11:44:30
Technical Discussion » Some advice about muscle and scale of character?
-
- johm
- 114 posts
- Offline
Technical Discussion » Rigging in the muscle system
-
- johm
- 114 posts
- Offline
acdum1857
1. In the muscle system, where should the rigging be on the body or on the bones?
In a full simulation of muscle and tissue these are the broad steps:
-rigging and animation is applied to the skeletal bones surfaces only.
-muscles are made solid from your muscle surfaces in a static rest position.
-The solid muscles are then constrained to the animated bones (bone surfaces) and cached to disk as a sequence of geometry files.
-the Muscle Solver is run to perform the simulation
-Tissue is built as a solid from your creature surface.
-the solid tissue is constrained to your muscle and bone geometry in a static rest position.
-The Tissue Solver is run to simulate the tissue which is constrained to the cached muscle and bone animation.
So the short answer is, you animate the bones. The bones drive everything else.
acdum1857
2. Is it possible to import geometry (body/bones) from a rigged object without rigging errors?
If so, where should this import be? Is it the 'Object Merge' at the start of the muscle pass?
Short answer is, yes. It's possible.

The Object Merge named: Import_Animated_Bone_Surfaces should point to the sop that displays the animated bones.
And question 3 is probably answered in #1 above.
The video tutorial is also not applicable to the SOP based workflow we've had since Houdini 19. That video demonstrates the outdated Object-Level workflow.
Technical Discussion » Muscle Constaints, Muscle to Bones
-
- johm
- 114 posts
- Offline
MuscleToBone Tangent Stiffness should now be working correctly as of Houdini 19.5.585.
Technical Discussion » Muscle Constaints, Muscle to Bones
-
- johm
- 114 posts
- Offline
A fix for this issue has been recently been made. However, unfortunately, it may not be available until H20.0.
MuscleToBone Tangent Stiffness should now be working correctly as of Houdini 19.5.585.
MuscleToBone Tangent Stiffness should now be working correctly as of Houdini 19.5.585.
Edited by johm - April 13, 2023 13:21:04
Technical Discussion » [Muscles & Tissue] Fast moving character
-
- johm
- 114 posts
- Offline
It seems like you've tried just about everything I'd suggest. Could you perhaps file a bug with a hip file for us to investigate?
Are the muscles gradually being left behind? Or are you describing what happens immediately on the init frame? If it's the latter, are you using a MusclePreroll SOP to blend your bone animation from tpose to init pose?
Thanks
Are the muscles gradually being left behind? Or are you describing what happens immediately on the init frame? If it's the latter, are you using a MusclePreroll SOP to blend your bone animation from tpose to init pose?
Thanks
Technical Discussion » Trying 19.5 muscle system
-
- johm
- 114 posts
- Offline
It doesn't look like you have any MuscleToBone constraints?
Do you have a MuscleConstraintProperties node in your setup? Is the MuscleToBone constraint stiffness too low?
Do you have a MuscleConstraintProperties node in your setup? Is the MuscleToBone constraint stiffness too low?
Technical Discussion » Muscle sim - how to control skin attachment
-
- johm
- 114 posts
- Offline
On TissueSolidify, use the Outliers Visualization Guide to help with setting the layer depth correctly. Or at least to highlight where problem areas exist. This may be a case of having the Surface Offset value pushing the outer surface of the tissue into the muscles.
Technical Discussion » Muscle sim - how to control skin attachment
-
- johm
- 114 posts
- Offline
Hi Ritchy
You'll need to paint a mask for the area, and use the mask with a TissueProperties node. In the TissueProperties node, set the Surface and Solid Layer Attach Stiffness values to zero. You should also probably set the Sliding Limit Stiffness to zero to have the tissue completely detached.
Future versions of TissueProperties may include parameters that would cull attach costraints that exceed a maximum distance.
But for now, you'll have to rely on zero stiffness attachments.
Also:
Looking at your screen captures, it looks like the tissue and muscle geometries are not aligned. ie, I would expect to *not* see any muscle geometry poking through to the outside of the tissue.
You might need to look at your tpose positions and make sure the muscles and bone are situated within the tissue.
Note that constraints are built with your tissue and muscles and bones all positioned according to their tpose. Once the constraints are established they are the transformed to your start frame.
You'll need to paint a mask for the area, and use the mask with a TissueProperties node. In the TissueProperties node, set the Surface and Solid Layer Attach Stiffness values to zero. You should also probably set the Sliding Limit Stiffness to zero to have the tissue completely detached.
Future versions of TissueProperties may include parameters that would cull attach costraints that exceed a maximum distance.
But for now, you'll have to rely on zero stiffness attachments.
Also:
Looking at your screen captures, it looks like the tissue and muscle geometries are not aligned. ie, I would expect to *not* see any muscle geometry poking through to the outside of the tissue.
You might need to look at your tpose positions and make sure the muscles and bone are situated within the tissue.
Note that constraints are built with your tissue and muscles and bones all positioned according to their tpose. Once the constraints are established they are the transformed to your start frame.
Technical Discussion » simulating flesh- vellum
-
- johm
- 114 posts
- Offline
The VellumPostProcess node can be used to weld the fractured seams.
Edited by johm - May 16, 2022 15:06:22
Technical Discussion » simulating flesh- vellum
-
- johm
- 114 posts
- Offline
The SkinSolver in Houdini 19.0 treats skin as a softbody encased in a layer of triangles. This gives you maximum flexibility in driving different looks. ie, your skin can buckle and fold and preserve volume without necessarily looking like a thin garment. The ability to tear or break skin/tissue apart is not currently supported out-of-the-box with the Tissue and Skin nodes. However, they are released as HDAs, so they could be opened up and customized.
Technical Discussion » Deform Tissue With Custom Force?
-
- johm
- 114 posts
- Offline
hi, and welcome!
In H19.0 the core is treated simply as a means of attachment -in two senses. The core attaches to your input animation (muscles and bones), and, your tissue attaches to the core. Beyond the simple attachment constraints, the core doesn't really contribute in any dynamic way.
In regards to "inward" forces, there are a couple acting on the tissue layers:
-The core and tissue solids respond to the Shrinkage parameters on the Tissue Properties node and affect the Rest Scale of the tets. ie, shrinking the rest scale will effectively pull the tissue surface inward.
-The outer surface points on the tissue have an attachment rest scale (attaching to muscles and bones) that can also be adjusted to pull the outer surface inward. This constraint can offer the most when it comes to producing muscle definition.
The poly lines you referred to are used to generate the weight value that the core-to-animated_geometry attachment relies on. ie, core points closer to the reference lines will have a stronger attachment weight. There are Distance and Falloff parameters to control the weights on the Tissue Solidify Node.
What the quoted excerpt from the docs implies is that when you shrink the core rest scale, the points with a stiffer attachment weight will be constrained more rigidly, and the weaker weighted points will have more freedom to move and respond to the shrinking effect.
In H19.0 the core is treated simply as a means of attachment -in two senses. The core attaches to your input animation (muscles and bones), and, your tissue attaches to the core. Beyond the simple attachment constraints, the core doesn't really contribute in any dynamic way.
In regards to "inward" forces, there are a couple acting on the tissue layers:
-The core and tissue solids respond to the Shrinkage parameters on the Tissue Properties node and affect the Rest Scale of the tets. ie, shrinking the rest scale will effectively pull the tissue surface inward.
-The outer surface points on the tissue have an attachment rest scale (attaching to muscles and bones) that can also be adjusted to pull the outer surface inward. This constraint can offer the most when it comes to producing muscle definition.
The poly lines you referred to are used to generate the weight value that the core-to-animated_geometry attachment relies on. ie, core points closer to the reference lines will have a stronger attachment weight. There are Distance and Falloff parameters to control the weights on the Tissue Solidify Node.
What the quoted excerpt from the docs implies is that when you shrink the core rest scale, the points with a stiffer attachment weight will be constrained more rigidly, and the weaker weighted points will have more freedom to move and respond to the shrinking effect.
Technical Discussion » Creating Muscles in new Muscles System
-
- johm
- 114 posts
- Offline
tarincamarena
HI does anyone know a good way to fix minor intersections of the muscles? Also I cant get the skin pass to work at all. It just falls straight down and doesn't collide with the tissue pass?
At the present time you need to rely on a Boolean SOP to detect intersections and address fixes that way. You can also try moving muscles and bones into a non-intersecting state, and then simulating them back into position with collisions.
And please provide us with a hip file for the skin pass issue.
Technical Discussion » Creating Muscles in new Muscles System
-
- johm
- 114 posts
- Offline
geordiemartinez
Does the forgiveness have a radius or scale or attribute that can be modded? I have some finger tendons that are not intersecting the finger bones. On frame 1 they look like this:
Collision Radius can be visualized on the Guides tab of the Muscle Solver. Points in a state of intersection at the t-pose will be disabled. But this looks like something else is going on. Please submit a bug or hip file so we can take a closer look.
Technical Discussion » Creating Muscles in new Muscles System
-
- johm
- 114 posts
- Offline
Yes, the workflow is built around the notion that your muscle surfaces will already exist.
While manifold, non-intersecting surfaces are strongly encouraged, they aren't a strict requirement. There is a certain amount of forgiveness built into the vellum MuscleSolver. ie, intersecting points will have collisions automatically disabled at startup to prevent explosions.
While manifold, non-intersecting surfaces are strongly encouraged, they aren't a strict requirement. There is a certain amount of forgiveness built into the vellum MuscleSolver. ie, intersecting points will have collisions automatically disabled at startup to prevent explosions.
Technical Discussion » Is vellum scale dependent?
-
- johm
- 114 posts
- Offline
Hi Martin, this is mostly an issue having to do with the mass being calculated per point based on the size (volume) of the tet mesh and the supplied Density value. The smaller object effectively has a total mass of 0.001 times the larger box. Try setting your Mass Density to 1000 and increasing Substeps. Try at least 4 substeps for the sim to converge properly. This should get you in the ballpark where you can start adjusting stiffness values.
-j
-j
-
- Quick Links