Has the dismemberment situation improved since 2011 or is the suggested method still having the parts you wish to sever as separate objects, matching seams and hiding the object you wish to sever?
What I described above is what we’re doing right now. But if someone else has a better suggestion I would like to hear about it.
Quite a forum topic when you’ve just woken up and you’re having your morning coffee.
Originally I tried “dismemberment” but apparently it was too short for a topic.
The only other way I could think of might be too big a project depending on your timelines. Attempting to figure out a way to dynamically update your mesh dynamically.
Other projects (not sure if in JME) have done this. But it’s not necessarily the easiest route.
It’s not impossible to do though.
Here’s a “slice” system that someone implemented in Unity.
Makes sense. I was just having fun with it.
Not at all my field of expertise, but that sounds about right for achieving that effect. The other thing I thought of is maybe having internal faces on the model where the cut line would be. Then you could use a transparency mask to hide the part that was severed. Eliminating seams with that method would be tricky though. Might be able to use multiple texture coordinates for the vertices that overlap the hidden part and the external part.
Yeah, something like that would be great. But I don’t really know how to approach the issue.
I’d be looking up on articles about dynamic mesh fracturing or destruction. You can find all sorts of threads and white papers on those topics. It is something I’m curious to try out in my game, but I also have no real timeline for achieving that goal. So ya. Can’t really help beyond giving you the keywords to find articles on how to do this stuff.
Thank you. That should be helpful.
Those pauses after slicing the more complicated meshes though… eeeeee not cool if that’s lag.
I’ve only implemented a very simple version and yeah I used the separate object method.
Although if a completely free form slashing is not required (and it really isn’t unless the main thing in the game is some sort of free form physics slashing thing) you could just precalculate those cut-off points based on current gear. Then you simply select the one best fitting cut-off point for the attack which ends up cutting stuff.
The advantage would be that any delays could be avoided completely. It would still look awesome for the players and save the developers a lot of headaches that you get from using a “separate objects” based design.
In border cases where you’ve just put on new armor/clothing and the calculations for the default cut-off points are still being made and you get attacked - you could just simply check if the calculations are finished and if they are not then the attack simply would not slice through. Problem solved.
I think we will go this route with Rituals of the old… I’ll trash the current character designs and move over to singular unified meshes. And if the dynamic mesh fracturing turns out to be too difficult a challenge I suppose we can always just drop the feature or have another go at it at a later time.
I think “seperate objects” is much easier than cutting arbitrary slices in given meshes.
The most troublesome parts would be correct uv’s, adding faces and especially:
When you slice a humanoid, you expect to see bones and flesh, exactly where they are in a body.
It’s much easier, from an artistic standpoint, to have seperate objects, so when you cut the head off, you can see the neck.
From a performance standpoint however, a much unified mesh would help, so you might batch them upon loading if possible and use culling for the seperate objects (which however isn’t ram saving). Also I’m not sure how well animation goes with all of this (you’d still need all the bones for just the head).
If you guys come up with a good solution I’d be happy to read some form of devlog, if you do these kind of things.
It’s not a high priority at this point, might take a year or so until we get around to it (one coder short) but I’ll try to keep you posted if we figure out a working a solution.
For links to dev log, forums etc. Most active on Discord and Twitter. Lazy with the blogs.