has anybody got experience with implementing a gore system in godot? it doesnt need to be ultra realistic what im looking for is skinned decals and dismemberable zones of characters(ragdolled or not) something like the first SOF game would be ideal.

No, I don't have much experience with this. I think those old games used separate meshes for each body part and then just detached them from the the skeleton (and swapped them with a bloody version of the texture) when they were shot. Should be possible in Godot, but I haven't tried it.

I think in Godot 3 you would have to have separate models with the same animation set saved as a scene and then change scenes. There is going to be animation retargeting in godot 4. That's assuming this is 3d. You can use bone attachment for weapons. I have zero experience in it though. Changing textures to one invisible might work.

Yes, it may be easier to just make that part of the body invisible, and then spawn a RigidBody object with the bloody version of the body part at the same position. Probably the easier thing.

I remember seeing it in r/godot. Someone posted a video of 3D player chopping npc's head off, including ragdoll. Maybe you could ask him, but you gotta dig for it though as I don't remember the title. ( I think from 2-3 months ago)

@cybereality said: No, I don't have much experience with this. I think those old games used separate meshes for each body part and then just detached them from the the skeleton (and swapped them with a bloody version of the texture) when they were shot. Should be possible in Godot, but I haven't tried it.

the old games had indeed precut meshes wich they hided based on the place that was hit. > @fire7side said:

I think in Godot 3 you would have to have separate models with the same animation set saved as a scene and then change scenes. There is going to be animation retargeting in godot 4. That's assuming this is 3d. You can use bone attachment for weapons. I have zero experience in it though. Changing textures to one invisible might work.

that isnt very effecient imo> @Gowydot said:

I remember seeing it in r/godot. Someone posted a video of 3D player chopping npc's head off, including ragdoll. Maybe you could ask him, but you gotta dig for it though as I don't remember the title. ( I think from 2-3 months ago)

ill look for it

i could do it the lazy way by scaling the bones to zero and spawning a gib mesh but i would still need a skinned decal system

For decals you could use a second shader pass with gore texture and just blit shapes into its mask/alpha texture.

i used to help testing out a gore system for unity

it was never finished unfortunately but it was fully dynamic and had its own editor for use and setup of models.> @xyz said:

For decals you could use a second shader pass with gore texture and just blit shapes into its mask/alpha texture.

just blit? thats quantum physics to me ;) i would need to get the vertex position of the animated mesh and pass that to the shader somehow.

@DJM said: just blit? thats quantum physics to me ;) i would need to get the vertex position of the animated mesh and pass that to the shader somehow.

I was thinking about a simple system where each body part has a gore mask. Depending on which collider was hit, blit that part's mask into the gore mask texture. Blitting would be one off operation done on cpu side. No shaders involved at al. It's even easier if skinned mesh is already in separate surfaces.

@Gowydot said: https://reddit.com/r/godot/comments/qfg3a4/good_morning_how_do_you_guys_handle_3d/

Found it. Not sure if this is what you're after (no ragdoll actually sorry about that). He used the detach mesh from bone and reattach it to rigidbody method. There is some good info on there as well.

that s easy to do looking at the video. he/she is just hiding the head and spawning a new head with rigidbody at the same place and activate a particle system. thats what i meant by the "lazy way" , just scaling a skinned meshes bone to zero on all axises and spawning the gib mesh. im looking for something more advanced.

What exactly do you need to do that is more advanced than spawning a new mesh?

@cybereality said: What exactly do you need to do that is more advanced than spawning a new mesh?

ideally it would be a procedural setup in the godot editor , like a voronoi fracturing of the skinned mesh into chunks wich can be shot away(its actually also just hiding the part ;) ) combined with decal textures. i can do all the fx work and models, its the system im interested in. im sure a good coder could make it and it would save me huge amounts of work of doing all the precut meshes in a 3d app and make the skinning work(ive found that skinning all those chunks without visible seams is really hard to do mannually) i guess i ll have to go with scaling the bones and spawning a gib mesh. and focus on the decals and particle fx to cheat my way out of it.

Well the procedural mesh can be generated with a tool script, so you don't have to do it manually in a DCC app. This is how voronoi works, very few games (if any) actually generate this dynamically as it's probably too slow while playing the game. So in whatever case, you will be working with pre-made meshes (it's just a matter if you have to do it or the computer does it for you).

If you want to go the easy way, I would recommend modeling stumps (like for the elbow, with a bloody texture or bone sticking out). If you just scale the skeleton, you will have extreme stretching and shrinking on the texture UV and it won't look realistic. But you can create the stumps by hand (for example, the elbow, the neck, ankle, etc.) and have them be high quality. Then when a body part is shot off, you display the stump as a bone attachment (this works in Godot, no special code needed) and spawn a RigidBody at the same transform and give it some velocity (according to the bullet direction). This honestly should look okay.

@cybereality said:

If you want to go the easy way, I would recommend modeling stumps (like for the elbow, with a bloody texture or bone sticking out). If you just scale the skeleton, you will have extreme stretching and shrinking on the texture UV and it won't look realistic. But you can create the stumps by hand (for example, the elbow, the neck, ankle, etc.) and have them be high quality. Then when a body part is shot off, you display the stump as a bone attachment (this works in Godot, no special code needed) and spawn a RigidBody at the same transform and give it some velocity (according to the bullet direction). This honestly should look okay. thats exactly what im used to do in unity. it affirms my approach was correct. an accurate skinned mesh decal system would be nice tho,i know i cant make it

AFAIK Godot does not support decals unless you code them yourself.

Godot 4.0 will have decals, but in Godot 3.X there is no built-in decal system. I'm not sure if the decal system in Godot 4.0 works with skinned meshes, as I think it's projection based.

@TwistedTwigleg said: Godot 4.0 will have decals, but in Godot 3.X there is no built-in decal system. I'm not sure if the decal system in Godot 4.0 works with skinned meshes, as I think it's projection based.

Godot 4.0's decal system does not rely on mesh generation – it applies decals onto materials in real-time (with no visible offset between the decal and the underlying material). This makes it perform well even when decals are applied to complex, dynamic meshes.