Back to search

How does CIG use vertex-painted regions on the character mesh to cull sections of the body under clothing?

TL;DRZone culling uses vertex colors marked in Maya to split character meshes into zones, then hides lower-layer zones per attachment via DataForge records, mainly to prevent clipping from mismatched topology.

Sean TracyTechnical Director of Content

He kind of answered his own question while he was asking it. So to give the full idea of the workflow, we call it zone culling. And it's not really culling, and it's not really zones, but that's what we call it. What it is, is we have some tools in Maya for the characters specifically. So when we make a character asset, we've got some tools that will allow us to project the vertex colors that we need for all the given zones, and I think there's something like 32, 38, it changes. So we've got a lot of the different zones that need to cull out depending on the attachment that is attached. So whether you're putting a jacket on top of a shirt, on top of a body, we've got to cull all the lower layers. And the reason for this is a little bit performance, and actually much more clipping. Because when you have dissimilar topology, for example, shoulder is a good example, or elbow is an even better example: if you've got an edge here, an edge here and an edge here for a shirt, and then you put a jacket on and it's only got an edge here and an edge here, you're still going to get deformation coming through. And there is no way you can fix this. The only way you can really fix it without actually culling some pieces out would be to keep the exact same topology between all the assets. And that would have required that a long time ago, four or five or six years ago, whenever they started making some of these character assets, everybody just followed the same topology, and that's super restrictive for artists. So it's really hard to work with and it's really hard to maintain that all the way through. So what we came up with instead was an ability to mark these areas up with vertex colors in Maya. Now, that doesn't go all the way to the engine. That just tells the tool within Maya, separate this mesh chunk, this mesh chunk, this mesh chunk. And then within our DataForge records, we tell a whole bunch of different areas to hide depending on the attachment or the removal of an attachment. And there's also partial layers and things like this. But the tech artists deal with this generally. But it's a lot faster than it sounds. We've got a really nice tool that Gage Hallman has been working on. Actually, he's working on it today, even, to make it faster for the character artists to do it. But what we really need, and Josh and you character artists: stop changing the zones. Stop changing the zones, because then we've got to update all the assets every time we do it. But yeah, the zones should be pretty good at this point, I think. So that's how we do it. And I know a lot of other games do it the same way. I just don't know how they necessarily put their meshes together. For example, I've seen bugs in GTA where I'm like, oh, hey, they're doing the same thing. That's cool. I just don't know how they actually marked up their assets or whatever.

Reverse the Verse›LIVE - It's Bender and Tracy Time·
Published on this date.27 Apr 2018