2
$\begingroup$

In short, I am looking for a way how to change (or update) material (highlight) based on stretching of the object. We currently have a 3D model of skeleton with muscles (Human Anatomy 3D model), rigged, using vertex groups, each bone and muscle we needed is a separate object. We have animations of different exercises and I am wondering, if there is any way in Blender to, sort of, autohighlight those objects representing muscles, based on how they are used in the exercise - so basically I guess based on some values of stretching the vertices, or some relative change with threshold, I am not sure where to look in Blender to possibly achieve such a feat, or whether it is possible at all in some way. Thanks.

$\endgroup$

1 Answer 1

3
$\begingroup$

One approach would be a tension map, which will display some function of rest-edge-length and current edge-length. Some are out there as tutorials or add-ons for Blender ( a search on 'tension map' will throw up some examples )

Using Geometry Nodes, you could make your own:

enter image description here

At the top of your modifier stack, you could store rest edge-lengths, as above. Various attributes are stored, here implicitly interpolated onto vertices.

After any deformation, you could store the lengths again.. here, they're stored by a slightly different modifier, under different names, for flexibility..

enter image description here

In this case, it's left up to the shader to decide how to use the data. In both cases displayed as color, for illustration. In the bottom case the ratios of lengths interpolated on individual points are displayed, in the top one, the ratio of sum of lengths across the whole object is used:

enter image description here

but you might want a metric of your own.. say, using absolute rather than signed differences in length.

enter image description here

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .