I can’t wait to see what you come up with!
Here is a short video of the first results of how it would look like in the end.
I tested if the new gore meshes work correct, and if the blood mask is triggered after dismembering.
I tested also how a slowdown effects after a headshot would look like.
Looks fun but if this makes it into the game only as an option like you have in zombie army to deactivate this or show less often.
Seems like all is working as i want to. Just some more work on the look of the textures and the blood mask needet.
Next thing i need to do is some much better impact effects with niagra to spawn the parts who are dismembered.
Edit:
A final function test with activated hitzones for the belly and different meshes displayed after headshots. Quiet happy this works now as intendet. I slowed all way down to see the head meshes better.
I think i will change the middle belly mesh, looks somehow wrong and strange to me. almost like a quader.
FX is still the old, the next update will have also parts of the body and head flying around.
A test with splitted head as nanite sm parts what could happen to the head after a headshot.
I cutted the head into 20 pices for this test.
The first part was without slowdown, the second part with slowdown. Right now i do not know why the result looks so different.
But as i know most people will go for the head i need to make this more fun to watch. Something is missing, not really sure but i guess adding brains and eyes flying around could look better even if it is very hard to see with normal speed.
Maybe someone else have an idea.
Edit:
I added more depth to the inside of the head model.
Again a try to use nanite only with vertex colors only. The painting needs more love before i can use it, but i am happy the first results show i can use vertex colors for this.
- No UV´s or textures used for this.
- Vertex painting done with ZBrush
- 1 part is around 150k polys.
Edit 2:
Replaced Video for → The same test as in the other video. Only with the new head model.
The new video shows an almost finished gore system.
I deactivated the impact effects for better visibility. Not finished yet with some errors but basicly the system is very close to be finished.
I replaced the old head models now and use only vertex colors. Only one of 8 heads are used for this test. And the exploding head is also only one of more to come to fit the head model.
Oh yes since the very beginning of game dev. But implement all the gore you want really, modern games and even some old games (think The Suffering. Dead Space, Saw) had no issues with it.
Same to me. In an earlier update I thought the rib skeleton was just too tiny as if it wasn’t part of the body. with the new update you can see the edges (blood) of where a hole is going to be before you shoot it which is not quite right. If you do those blood edges to blur out UVs or something I can suggest other ways. Have you tried blood decals? Fluid leaking? Maybe it would look less strange if the torso doesn’t just disappear. It doesn’t have to be realistic lol that would probably be less fun but well… in rl things don’t disappear or really blow up unless you shoot someone with a cannon ball or explosive.
The mesh slices seem to work pretty well already :). Kind of the same thoughts I wrote above, if you’d shoot a jaw I’d not expect to break the head in a shape like a porcelain head, probably at first (realistic way) it would just deform, put a hole in it, lose the lower jaw, nose, or make the eyes pop out but not break it like porcelain.
Will there be a skull? Just flesh would flipflop in a funny way .
Thank you so much @Roy_Wierer.Seda145 for your suggestions. This helps again to get new ideas.
- Yes i will do now what i want with the gore, but it is really hard to understand sometimes based on what they decide what kind of gore is to much. I just do it as i already have somthing in place to simply shut all down with a bool.
- With the middle i am not sure now how to handle. I think L4D again is a perfect example how to do this. Not realistic but every time nice to watch. Best example would be shoot the belly from the front but the bones move towards the front. Makes no sence but looks very good.
- For the blood around the wounds i use a single blood texture and display it with selecting the mask (they are not finished because i am not sure atm if it will stay this way). Was also thinking about decals and slow spreading blood. I scraped this idea because of performance.
- And yes looks strange if there is just a hole after the shoot. Just not finished the effects for this. Was testing with niagra and only 1 mesh spawned a few time with rnd numbers. But this looked much to strange.
- It is really hard to decide if something is to unreal to use like hitting the belly with a clock and there is a hole (very unrealistic) i just search a way so a player can see this very good. Maybe i will add some sort of guts i guess is the word.
- I was thinking also about the head and the impact there. I know it is way to much at the moment. Maybe i try to add more hitzones for this. As i can use Nanite models with vertex colors there are endless possibilitys for this in theorie. Not easy to see where you cross the line with this so it would get boring.
- Integrate skulls is a great idea i really like this
I build a quick one for a first test. If you destroy also a part of this you could diplay the brain an much more realistic way as the one i wanted to use. This will then also need new models to fit better but this is kinda easy and fast to do.
Edit:
I was curios how this will look like. And i LOVE it
And this is only a first test after about 30 minutes of work.
This skull adds so much to this for me, its almost unbelievable how much small changes can have of an impact. Thanks again @Roy_Wierer.Seda145 for the suggestion.
The first is slow motion and then ingame. Looks like i really need an option to activate headshot slowmotion. You can barly see this with normal speed.
A longer video all slow motion with different distances and angels.
sweeet looks epic with the skull
The explosion effect is absolute insanity. Seems really fun to play around with Hope to see more!
Yeah @Roy_Wierer.Seda145 one of the best ideas i did not hade myself , thank you again for this. I am glad you ask about the skull, this showed me what i missed.
Hope you enjoyed to watch this @PresumptivePanda, and yes it is a hell lot of fun playing around with this system and testing what can be done
Now that i decidet to do what i want with the gore, i will try to create this for all parts. Specially for the middle part. I will try to build some of the inner guts of the body to just fall out if hitted and redo the model with some flesh attached.
Not sure how to do it really, need to test first what is better to use, Nanite or Niagara first.
Here is another video with a test. I use now 3 head as base, left/right/middle and select them random at the moment. I also addet some more stuff for flying around after a hit. Maybe you can see what it is
Does not really fit the models and makes almost no sence but looks funny and it was more to test how this could look.
If it’s something that spawns for X time as a special effect then Niagara. With particles you can change visuals over time (color, intensity, texture, scale, lifetime etc) to make some nice transitions.
This sounds right. I was trying to do the head with Niagara (dont know much Niagara), this endet up in having every mesh in the Niagara system spawn as there own. Did not test it in deep, but i guess this is to heavy in performance terms having 20 meshes spawned … and i dont know if Nanite models are to heavy also.
But i guess spawning the flesh as i test this before could work as you mentiont. Need to find out how to break them up into single parts after spawning. Looked just weird as i have tested this.
At the moment i try to find a good way to use a few base models as attachments like in the picture below without build this for each model seperate. This would be an insane ammount of work. Looks a little strange at the moment but i think i am on the right way.
Seems like the upper gore part needs to be sk, only the lower gore part could be attached used as nanite if i just destroy the bones above. Still testing though.
This just dont work with a single gore model. I think having to of them is minimum needet. The overlap looks to strong without a top, but not enough and kinda silly with a top. I could live with 4 base models times two for top naked/with cloth.
I always appreciated the Soldier of Fortune 2 G.H.O.U.L System. It’s a controlled pre-fractured system that is worthy of revisit.
Old Video (poor resolution)
Thank you for the video @TechLord, it is always good to have input like this .
I know SoF2, was one of the first games i played mid 90´s with dismembering and i loved it. This system is pretty simple and would be easy to do. I tested something similar but i did not like it, just does not look good to me for modern standarts.
This is why i build this “shoot the flesh of the zombie” in place instead of some simple dismembering. The goal would be L4D2 gore. But i almost study this and this would need to do a completly different approach. I can not do this for now with this project.
Hopfully the next one then and if i figured out how to do this as a whole from the ground up.
I also did a test today what would be needet to use Nanite models without textures again, just using polypaint.
In this test i did the other way around and used the models i have with the textures and bake the polypaint out of it. Seems like this could work, but it is not doable for now.
The models are simply to big.
The one i tested without the lose of quality ended up with 26 million polys and a hard drive size of ~500MB. This is only 1 model, so this is way to big to be used in a game with a lot of them.
Edit:
I also started to finalize the headshot models and fit the exploding part to the heads so this makes more sence based of an impact instead of using every time the same complete head.
Edit:
This is one of the headshot models. Seems to work to use only a about 5 base models and a single one for the explosion if i only spawn the parts i need for the model.
Looks a little like frankenstein
After testing a lot, it seems like using only PolyPaint aka Vertex Colors can really work.
In this video you can see a test of this. It feels like there is no deforming or losing quality of the colors. Not the same quality as the textured models right now but i think after a few more tests this can work.
Both sides of the pillar models are Nanite versions.
Left models data:
~800k polys (1 mesh), normal shader with use of textures, normal and ORM maps.
Right models data:
~6 million polys (1 mesh), no textures, only vertex colors shader
The vertex colors are baked out of the textures from the left models with ZBrush using simply “PolyPaint from Textures” without any changes made after this (so there is potential to improve this)
After doing the math the much bigger 64MB, 6 million poly models are still smaller in total as the 800k models with textures, normal and ORM maps wich is as 4k textures about 80MB in total.
I hope this turns out to be really usable as this would hopfully give a big improvement for performance and you could run this with lower GPU´s.
Seems like all this testing again and again finally pays out. Not sure yet before not running a lot of more tests. But at the moment i am happy it seems like to work.
Just wondering, what platforms / hardware does this target? Seems a bit heavy for only the pillars. Maybe it’s not, I haven’t worked with nanite yet. Don’t forget that adding a few super detailed objects make less detailed objects look less nice than when everything is at the same level. With the pillars in place the background area just looks less nice.
Yes that´s true. Normaly i work with texel density to have all models at the same quality.
And this is why i did not mixed the Nanite with the normal models in the demo.
This pillar for example was also a normal mesh. I did rebuild the poly count for Nanite and keep the UV´s to use the old textures. At the start this was a test if this works a easy way. Turned out works perfekt.
The models you are walk over are normal meshes just used as nanite at the moment. I will change them the same way as the other models. I just always try to find a good workflow for things like this before i start.
6 million and even 800k poly sounds insane, but it is only the drive space size and high res textures what makes it heavy. I tested a small graveyard scenes with around 40-50 million polys. The only thing what maked this bad in performance terms was the use of a lot of normal 4k textures for each model seperate.
The pillar is part of a set. All share the same texture.
No trimsheet used, just bending the models to be usable as i want.
I did also test a little more with painting color islands at the pillar to see how much the model will change with Nanite LOD. After this i think PolyPaint can be used at some meshes, but mostly things like stones big cliffs or meshes that are just far away.
Not very good to use if you go for real life models or if they have much details.
Just testing at the moment how i can improve the performance.
- The target OS is Windows 10 at the moment
- Minimum hardware should be an I5 and 1060 GPU (Maxwell GPU, DX 12 because of Nanite)
I do not have much hardware to test on and all people i ask to test this have hardware above this. The lowest hardware i can test this myself is an Notebook W10, I7 2.6k, 16GB ram, GTX 860M GPU. It runs at the lowest settings with 50-60 FPS.
Edit:
That all said … i just noticed i made a mistake with the models and the used textures. I wasted half the UV space, The models are almost the same but with different textures. So this can be paked into one texture.
Sometimes it is strange how you find mistakes you did
Oh and this is why i love Nanite. You dont need the normal maps with high poly meshes and can have more details on them.
This is based on 4k for all textures (wich you would not use for all)
- Texture sizes: Albedo 25MB, Normal 46MB, Emissive 250KB, ORM 12MB
- Resource size: Albedo 11MB, Normal 22MB, Emissive 10MB, ORM 10MB
You could get rid of the 46MB normal map at least with Nanite and have a mesh with better quality.
What i think about - PolyPaint - so far
The positive about using PolyPaint:
- You would need no textures at all
- Rendering cost almost nothing
- No UV´s needet (everybody hates UV mapping and retoplogie )
- Easy to use later textures with vertex paint to have more variation for each model wich can simply painted over then
The downside of PolyPaint (vertex colors) as far as i can see till now:
- You need a very good topo to get a good result with painting.
- The resolution depends directly on the ammount of polys you paint on. So more polys is equal to better resolution like normal texture resolution.
- With the Nanite LOD system the model looks sometimes strange and lose or just simply does not display colors if far away (this means takes a lot of testing if it works as you want and this is bad for the time you will need).
- And of course the disk size. This can be get very high if you use many polys (wich you need for better resolution)
My biggest concern is the LOD system with Nanite and the deforming of the topo of the meshes. This change often the looking of the meshes a lot because PolyPaint need much polys to look good.
Thanks for the info I might deep dive into Nanite myself in the next year, for now I first have to program a lot of other stuff. By the time I get there it might be on Vulkan too haha. This PolyPaint got my interest. I too got tired of UV mapping and texturing things in GIMP. Quixel was an improvement cause I could generate textures very easily and paint them, I only needed to UV properly to get the same detail everywhere, fix seams and fix lighting. But this, could be even better. I can’t tell you how to deal with the Nanite LOD but I’d definitely want to at least be able to override a LOD if required. Take a Clock shape for example, at the bare minimum you’d want to respect the base shapes which make a clock recognizable:
if Nanite were to “deduplicate” the clock hands into a blob then well… gone clock. If this happens for texts you paint on walls, then the texts are gone. Maybe you can set a minimum resolution for the LODs somewhere and just hide some meshes in the distance behind other objects to cull them. Funnily in older games (many before 2010) billboard textures were used for distant LOD replacements, because they were tiny and easy to customize at distances were lighting was lacking and 3D details were hard to see. You can always find some hybrid technique to match the environment design.
I guess you mean the Quixel Mixer, i tested this also and it is a great tool. I use Substance Painter for years now so because of this i will stick with it.
I spend almost the whole day to test this PolyPaint approach more deep again. Sadly i think i will put it on hold again. This just needs way to much time to test, and mostly it turns out it is not usable this way.
I did a last test for today and this result makes me just sad. I painted also a little clock on the mesh (just for fun to see haw this look) you can clearly see some models are just not usable this way in the video.
And this tombstone have 1.5 milllion polys, i also added more details to a test version to see if it is about the more flat parts, seems like it is not about this … as far as i am aware Nanite LOD´s work automatic only so no chance to change this. But i will try to gather more informations about this tomorrow.
Here is a video about the last function test for the headshots.
It is still random selected. I am not sure how to the best way will be to add hitzones to the head. At the moment i try to add within PhaT colliders to the eyes l/r in combination with PhysMat for each zone. But still just testing this.
But as the gore effects are the most fun part in such games i will add much more models for this and need to figure out how to use hitzones (beside getting hitted bones). Also i need now to deep dive into Niagara to have much better splatter effects.
Edit:
An update to the other video. Here i debug the impacts. Only headshots should trigger the slow motion effect (successfuly). And this is how it could look like if finished. Not sure about the time and how the curve for the timeline is set up at the moment, but i think looks already pretty good.
And as it is just fun to watch the next thing i will do is try to use some sort of bullet fly with folowing camera before the impact into the head. Maybe a little to much for this game but this way you could see this also with far away enemies if you want to use it.
And i forgett to mention. I use only PolyPaint on the gore models, at least i found something where i can use it for now
Sounds cool, like Sniper Elite.
Looks fine to me, can’t tell it’s selected by random. If you do want to add hitzones I don’t think you have to implement anything new. Could be something like this:
- Bone is hit, hit event reports impact point as a 3D vector.
- You have a TMap<FName, FGoreEffect> of socket to gore effect.
- FGoreEffect maps FVector (impact offsets to the bone) to a gore mesh / particles etc.
- You get the effect for the socket from the map.
- You loop over the vector array and see which vector is closest to the impact point.
- you pick that closest vector and read its effect from the array.
Could work quite nicely with things like grenades if you loop over the sockets and vectors like that
Love how the guy is flopping like a salmon at 0:38 with half his back left The only thing that slightly bothers me now is that you can shoot all the muscle of an arm and the lower arm will still move. But eh the more quality stuff you add the more you notice lol, haven’t noticed it before. I wonder if it would be (somewhat) easy to turn off animation for such a bone hierarchy and let it “salmon flip flop” through IK or physics, would be nasty in a good way.
Yes how they do this is fun to watch. And i figured i need to do something similar. I did a test with gameplay, and if i just use the time diletion it almost destroys the whole gameplay. It is fun to watch but because all slows down it is getting way to easy. Using it only on the hitted enemy looks stupid. Take the controle like disable the movement of the crosshair is also a bad idea.
This is a great idea thank you @Roy_Wierer.Seda145 . This sounds like it could work. I will test this also.
Yes you are also right with this, looks not very natural. I will try to do it with blendweights.
I already use this for all kind of hit reactions.
It is just a much easier and cheaper solution to have all animations look a little different.
This is one reason why i do so much videos about it at the moment. I often just watch it a long time to see what is wrong or can improved. And the more i see how the belly hit looks the more i know i need to change this also. It is clear to see (as i wanted) but somehow looks very wrong and need much more love. Even if this means i need to build a whole inside of a body to make it look right.
I really appreciate your input @Roy_Wierer.Seda145 this helps alot.