What part? The slicing?
EDIT:
Watched the whole video and it’s not the hard. You could do real-time fracturing with Havok Destruction for example.
Optimizing it is the hard part.
Yep, mostly likely Havok Destruction or something similar. We’ve started using it in our video game. But we only use it for environment objects. Geometry fracturing isn’t new but the way they’re using it is pretty new. Doing that to skinned characters is very cool and I haven’t seen it before but now that they’re doing it, I think we’ll be seeing it more and more.
yea I saw http://www.youtube.com/user/HavokDestruction, and I know that the MGS video is a “tech demo” which probably includes magic video tricks, but the quality in this video looks MUCH better than say, the farmhouse video.
The havoc test is awesome, but the metal gear video is INSANE
BAH! I wrote along post and accidentally hit the back button on my mouse! So here I go again…
You can’t really judge Havok Destruction by looking at their visuals, as they don’t have any artists and an old render engine. It would of course help their marketing if they updated it. Look at BF3 for a better visual quality of something built on Havok Destruction. What they do have though is a good code base and when you have a license you get access to it to implement your own specific needs for you project based on it.
Back to the demo, having worked some with Havok Destruction I don’t think they use it and I’ll get back to why.
So how is it done?
Well, the splitting part is easy. As they only use a flat plane it’s simple math and it works just like Maya’s “Cut Faces Tool”, but capping it and triangulating the new faces.
UV coordinates are transfered for the cut plane, and materials/textures can either be transfered from the cut plane, or (as I think they do here) it could be assigned to the entity data per entity which material/texture to use on the cut surface for better content control on the art team as they don’t need to create new cut planes for each entity.
Updating the collision shape is simply just recalculating the convex hull shape based on the new meshes. Weight is calculated based on the weight of the original collision shape, usually but comparing percentage of volume.
I’m not saying this is without costs to do run-time, but it is possible and optimization is the trickiest part of it, not the actual functionality. Allowing the player to do more fancy cutting with curvy patterns would not have been totally different but just much more expensive for example.
So why don’t I think it’s Havok?
Havok doesn’t have support for fracturing skinned meshes… (at least not yet) This is definently the trickiest part of what is seen in the demo, but when you look at the problem it shouldn’t be that hard to transfer the the skin weights of course. It’s probably harder to run-time custom split the skeleton and handle what that can do to the skinning of a character. But then again, it’s just a ragdoll after the cutting from what I’ve seen so far, so there are some shortcuts that can be made based on that.
Than again they could still be using Havok Destruction as a base with heavy modifications, or simply Havok Physics with their own destruction system built on top. But as a Japanese company which usually develop their own tech, I still guess they have made their own in-house system, physics and up.
Sounds like a real time version of Maya’s shatter effect.
As for the skeleton I wonder how do they handle cutting through the rig.
Specially knowing that you can “slice” the rig multiple times and at different places.
I’m not a fan of the MGS series. I think the storyline is cool, but I’ve always hated the gameplay. That being said, this tech demo looks insanely awesome.
Knowing nothing about how their engine works and going only off of what I know in Maya I actually think that how their removing the skeleton is actually quite “simple” - not really and I’m assuming a lot with this. I’ve written this idea 3 times now and it sounded dumb each time when I tried to explain it so here goes the 4th: The joints are in local space relative to certain other joints (assume it’s a double hierarchy - 1 for animation, 1 for dynamics) and when the plane penetrates within a range of that joint, it then switches the joint chain to world space and the dynamic joint chain takes over because it’s been unparented and switched to global space for the entire chain. I’m oversimplifying it A TON because local space != world space however I hope that somewhat illustrates the concept I think they’d use for that.
Looks like a fancy fruit ninja. :D:
I think there was an old aliens game that you could do that in as well.
yeah havoc part is really awesome.