Hey, /wip/. Shoulder guy here: >>939151
I figure since my thread is on its last legs, I would bring my work here. Especially since my pursuit of good shoulder deformation has taken a huge detour into geometry node craziness.
Well, I've made some progress. I couldn't figure out the ray hit detection thing(I think I was getting pretty close) so I went back to the previous idea of manipulating empties inside of the mesh in order to create a kind of mass. Well I made some big headway there.
Basically, I created about 24 empties, and scattered them underneath the mesh. Arranging them near the to where certain anatomical groups would be. Like shoulder, bicep, forearm, breast, abs, back, hips, etc. And then using geometry node magic, I sampled the mesh's position to the nearest empty. Essentially parenting the mesh to an empty. Then, I did some math to figure out the average of every mesh group. Because the true center of mass is actually slightly different from the empties I placed. I then store the difference between the mesh groups and their respective mass centers.
Then, using a copy of the empties that are parented to the bones, I move the mesh any way I like, and then once again get the difference between the mesh groups and their respective mass centers. Since the mesh moved, some vertices might be farther from their center mass, other vertices might be closer to their center mass. And some are neither closer nor farther. But what I did here, is focus on the vertices that got close to center of their mass after the move. Using some math, I figured out the exact difference between resting distance and posed distance. And then scaled the the vertices that are close, back out, using the center of mass as the point to scale out from.
The result? A form of volume preservation. Volume preservation that acts as if the mesh it bulging out from a center mass. Right now, it's still ugly. Because the bulging mass is not interacting with its neighbors.