Yeah in the L4D2 system you would have to just spawn those things as static meshes separately.
So yeah that’s I guess the part I was wondering about as well, though it seems answered this already.
Ahhh right, so if I understand completely, it doesn’t have the full functionality of the partial weight swapping
Kind of. The main thing their shader did was mask out part of the character via the material in an ellipse shape. What I have now does the same, though it doesn’t yet use the ellipse, just a sphere.
So you’re able to feed in a 3D hit position and that area will be masked out in a sphere.
Aside from that, it was all about spawning a gore mesh into the wound cavity. They pre-prepared a bunch of low res wound meshes based on a high-res internal organs setup, and then spawn those into the hole made by the ellipse-mask. The wound meshes are also weighted to the skeleton so that they would deform right. Their wound meshes covered, AFAIK, the entire inside of the body cavity, so that they can mask any area out and have it work properly. That’s for the torso, at least. Legs/arms and the head were different and used caps.
Not being an artist, doing the wound meshes is not something I think I can do with any quality, and there are places I can make more progress on my project, so that’s why I just uploaded it as is.
As far as extending it to use the ellipse, that’s not a huge deal to get a proof of concept working, but it’s not hard either, it’s just a matter of passing in the forward/right/up vectors and size parameters for the ellipse instead of just leaving it as a circle/sphere.
After going through the white paper and also finding some slides that showed the art side of it, ultimately IMO the real “magic” of the L4D2 system is all in the wound meshes themselves, the masking, which is really all the shader seems to do, is actually really really simplistic.
Edit: The last thing is that for skinned meshes there’s a bug with my implementation such that the mask-sphere doesn’t follow the skeletal mesh animation, which of course is a problem.