paint a vertex map for Muscle Constraint Properties weight?
1443 2 0-
- bergj
- Member
- 4 posts
- Joined: Aug. 2012
- Offline
Does anyone know how I can paint a (vertex) map to further dial in the areas I want the Muscle Constraint Properties Vellum SOP to affect, like a layers system in photoshop? For example, I only want the Right SIDE of the sphere to have the specific muscle constraint, like a black / white weight of 1 for on or 0 for off. The Muscle Paint SOP doesnt let you define the regions that connect, it seems to do this automatically. Like, you can't select verts on the muscle and then verts on the bone and then have only those connect, if that makes sense. This is what I want to happen, though, at least for selecting verts on the muscle.
I tried selecting some verts on the side that I want the attachment to connect to (as shown on the right side of the included image) and creating a new Model->Group, but I cant get this new group (grp1....base group 2 4-5 8-9 13-14 etc ) it to "work" with my other group that is the whole primitive (grp2......base group 0-319) to show up under muscleID even after I add it, as either Points or Vertices. Only my "entire object" group2 shows
I tried selecting some verts on the side that I want the attachment to connect to (as shown on the right side of the included image) and creating a new Model->Group, but I cant get this new group (grp1....base group 2 4-5 8-9 13-14 etc ) it to "work" with my other group that is the whole primitive (grp2......base group 0-319) to show up under muscleID even after I add it, as either Points or Vertices. Only my "entire object" group2 shows
Edited by bergj - Jan. 15, 2024 21:20:09
-
- bergj
- Member
- 4 posts
- Joined: Aug. 2012
- Offline
To clarify, From the documentation, of muscle constraint [www.sidefx.com] it says under the Muscle to Bone section that :
The muscle and bone regions that participate in the muscle to bone attachments are determined by proximity (in Houdini units).
However, I need further control. I need to be able to attach arbitrary regions, for example as illustrated in the attached image, on the right side. I would like to be able to attach the "right" side and not the closest in proximity, here the top center. This is how I work in another muscle solver package and it is essential for my work. How can I accomplish this?
The muscle and bone regions that participate in the muscle to bone attachments are determined by proximity (in Houdini units).
However, I need further control. I need to be able to attach arbitrary regions, for example as illustrated in the attached image, on the right side. I would like to be able to attach the "right" side and not the closest in proximity, here the top center. This is how I work in another muscle solver package and it is essential for my work. How can I accomplish this?
-
- johm
- Member
- 138 posts
- Joined: Dec. 2010
- Offline
While you can influence the MuscleToBone attachments somewhat, you cannot be entirely explicit with the points and primitives being constrained. The target primitives can be declared in a group, or multiple groups, but the muscle points rely on a muscle_id and a weight/mask.
When constraints use the Attachment Candidates parameter, they build a dictionary attribute that uses a {index:value} structure. The index must be a valid muscle_id, and the value can be any primitive group, ad-hoc or explicit. You can look at the candidates dictionary in the detail attributes of the geometry spreadsheet to help debug if you feel it's misbehaving. One frequently overlooked setting is to make sure your declare a valid muscle_id in the Group Parameter on the MuscleConstraintProperties tab(s). This is where the index key is acquired.
If you want to be more "specific" about which area of a muscle connects to which bone primitives, I suppose you could rely on Frankenmuscles to give you multiple muscle_ids within a single muscle tet mesh. But admittedly, this isn't a perfect solution.
When constraints use the Attachment Candidates parameter, they build a dictionary attribute that uses a {index:value} structure. The index must be a valid muscle_id, and the value can be any primitive group, ad-hoc or explicit. You can look at the candidates dictionary in the detail attributes of the geometry spreadsheet to help debug if you feel it's misbehaving. One frequently overlooked setting is to make sure your declare a valid muscle_id in the Group Parameter on the MuscleConstraintProperties tab(s). This is where the index key is acquired.
If you want to be more "specific" about which area of a muscle connects to which bone primitives, I suppose you could rely on Frankenmuscles to give you multiple muscle_ids within a single muscle tet mesh. But admittedly, this isn't a perfect solution.
Edited by johm - Jan. 17, 2024 13:50:55
-
- Quick Links