This post is gonna be a bit ranty and mildly off topic.
I have been considering switching to another engine. At least just to see what it's like to do this there. We've already seen how it goes with unreal, there are ways, but ultimately it all boils down to how much research and work we're willing to put into it. How far we're willing to dig into c++ code or what other features we're willing to sacrifice. We always have to sacrifice something for this, be it months of time developing in c++ to get the perfect result, or sacrificing good collisions or something along those lines...
If some incompetent moneygrubbers managed to make a game that does all this stuff in unity (virt-a-mate), I wonder how hard it can really be to do it there. I'm not so deep into my project htat I can't switch engines yet so it's worth a try actually. I really like the workflow in unreal tho... I like blueprints, i hated them at first but they grew on me fast.
-----------------------------
The other decent option would be to use an older version of unreal. Maybe even unreal 4. Or some particular older version of unreal 4 even.
I mean if you've been keeping track there is a growing list of reasons to avoid unreal 5. I'm sure you've noticed the stuttering, even in a template project you'll get stuttering! Most ue5 games stutter a lot, epic games blames devs for it (but fortnite stutters a lot too lol);
A video explaining that nanite ain't all it's cracked up to be, channel also has
You must be registered to see the links
explaining how bad (fake even) optimization in modern games such as TAA is destroying graphics. You can't just turn TAA off in unreal 5, I mean you can but it breaks a shitload of features. You need to leave it on, turning it off costs too much. I'm sure you guys have noticed the ghosting when you're playing in the editor, TAA is the primary culprit. And lumen relies heavily on it.
The thing about TAA is that it looks good on still frames. Screenshots. It breaks fast in motion, ghosting and smearing galore.
TAA dependence and Stuttering are the main reasons to avoid UE5 in general (although I think ue4 might have had the TAA issue as well, i think maybe there was an option to use fxaa or something instead though, fxaa is ass, but it still looks better than TAA).
In our context however, it's per poly collision. Finding a version of the engine (or just a way in any version really) where per poly collision works properly... Would probably solve our most difficult issue. No matter what technique we use for jiggle, if we're modifying the body with morphs, something like this is the only way to have accurate collisions. I remember playing with it and giving up on it before but I don't remember the details.
But also an older version of ue will support tesselation which means we could try using the methods we have deduced might have been used by the nauaghty sandbox dev for the softbody effect.
Edit: Unity has a function called mesh colliders, it's similar to per-poly collision, it can be finicky to get working on rigidbodies (unity for skeletal mesh) but seems people tend to get it working by setting it to convex. As for per-poly collision in unreal,, I read somewhere that a guy managed to get it working by editing the blueprint via a text editor (e.g. ticking it in the editor didn't actually enable it in the code so he ediited the actor directly via text editor or something like that to enable it; do note you need to be using a pawn actor and not a character actor to use this cuz of the capsule collider that comes with the character actor getting in the way otherwise), which is worth looking into.
As for softbody, they are probably just using a similar bone based approach as darkevilhum, they're just not as good at it as he is (as I mentioned, they're incompetent) but it still looks ok. They might also be using a plugin like
You must be registered to see the links
.
This took minutes of research so I suppose I was right about doing it in unity being uncomplicated.
Bone based jiggle is the standard way to do things for a reason I guess, reaching the same conclusion as darkevilhum on that one here. There might be better ways but this is the well travelled path. The real tricky part is always going to be collisions on morphable skeletal meshes; and jiggle adjustments based on the meshe's modified proportions.
I think the only way to have those collisions using unreal's traditional physics asset colliders would be to generate them on the fly by somehow measuring the model's dimensions and creating the colliders dynamically. Which I am not inclined to do. (engine already has a function for this but we'd have to finetune it and optimize it to death to make it work like we need).
Edit2: Did some more digging into unity, if you need reasons to consider unity.
You must be registered to see the links
has them.
Some of those things I can't even think of how to implement in unreal. Like
You must be registered to see the links
and
You must be registered to see the links
(I mean we've played with that a bit ago, we even got somewhere with it, but getting it to that level? I just don't see how, don't see how in unity either, but at least it's been done there apparently). He also apparently does make tutorials, but
You must be registered to see the links
.