With a large number of incredibly detailed characters at once, both NPC and player, what's the design plan to keep this from blowing up client resources within the persistent world game?asked by Kyran
TL;DRChris Roberts says the team cut face mesh and texture memory roughly tenfold and uses a runtime rig with far fewer inputs than controllers, aiming to keep many detailed characters affordable.
We've thrown a bunch of numbers around like the tier zero's got 40,000 polygons for the face. It's got 440 blend shapes, the mesh itself I think with all the blendshapes is about 300 megabytes without LOD's.
Really, really expensive before.
Yeah and so you could have maybe one of two heads on the screen and we had like 44 different areas of blended wrinkles and blended diffuse and the texture was really high, so we used to have 96 megabytes of blend textures which is quite a lot, and then we had the diffuse normal spec, transmittance, and the scattering mask which were all these extra layers that we baked the stuff in.
So we had about 150 megabytes of texture memory per head at the resolution we're doing at for these characters, that's all. That was a big focus of the graphics crew and how to bring that down. So we brought both the mesh data down and also the texture data down. So we basically reduced the 300 megabyte mesh stuff down to about 30 megabytes. So that was more about the base mesh and how we were going to delta it and some clever compression stuff they're working on.
We also took the cost of all the textures down, you know from some I think for, we did a special thing for the wrinkle and the blend maps and stuff where we went from 72 megabytes just for those down to six. So essentially we've done a 10x saving which makes it much more viable to have a lot of these heads and that detail in the game which is good and then the last sort of segment that worked on was of course, when you have 440 blend shapes and I think there's something like 175 joints or whatever, I don't think I put this on my cliff notes, but that's a lot of control.
So we have the blend shapes, we have the joints and I believe there's also some other controllers for the wrinkle maps and the diffuse map, so in all ended up with very close to 1000 controllers to animate a face so that's kind of the equivalent of animation a 1000 joints and if you have 10 characters, that's 10,000. If anyone knows about game animation that's a lot of joints to do.
A lot
So one of things that's quite nice is we've been working with Three Lateral and they have a rig logic that has a lot fewer inputs that's sort of more about the facial poses of position and that gets translated into where to move what blendshape to fire or where the joint is, or what normal map or diffuse maps, wrinkle maps firing, and that's what we call the runtime rig technology and it's also very critical because we use that, that's how we're going to be able to have all these different heads and faces and be able to blend them and stuff. It doesn't matter, we can play the same dialogue on whatever head, doesn't matter. It can be Mark Hamill, Gary Oldman, it could be a custom character one because it goes through this rig logic that takes the inputs and puts it out to the appropriate blend shape, joint and everything like that.
That also has the advantage of… it has about 183 inputs versus about 1000 controllers, so it's a lot less data that's going to go through in our animation data for the facial which is…
Another big savings too.
So those are all the things that we're trying to keep the planned resources down and we you know, have a few other plans, but I think we're going to be able to live a high quality that you would normally see in pre-rendered cinematics, but you would actually see it in the game, live, in real time.