Q

jelenedrake asked:

I was wondering if you could talk about "body sliders" and why games with lots of armor/clothing variation might shy away from custom body shapes and instead use set body types.

A

askagamedev:

There are two main issues with visualization when it comes to adjustible meshes (the “body sliders”). The way that all of the customizable character data is stored isn’t actually a body at all, but a common default mesh with offsets for each adjustible value. So if you spent your time to customize a specific look for hair, eyes, lips, mouth, and skin color, that would actually get stored as hair 5, eyes 3, lips 15, mouth 8, skin color 7. When the game decides it needs to display your character, the engine asks “Hey, what are my values?” and gets told “5, 3, 15, 8, 7”. The engine gives the thumbs up and the model with those values gets rendered.

image

The problems with these adjustable values is that you need to clamp them to certain maximum/minimum amounts, because of visualization artifacts. Remember, these changes only affect the mesh, but won’t affect things like textures for that mesh, which can result in UV stretching or other weirdness. Things that used to look good can get stretched in an ugly fashion, seams can stop matching up, and other various visual problems can occur. 

It gets worse with animations, too. The animation skeleton doesn’t change when you make adjustments to the body, so significant changes to the mesh  (bulky armor, oversized body parts, etc.) can cause self-clipping and other graphical weirdness. It gets especially noticeable when the characters need to touch things precisely - picking up objects, grabbing someone or something, touching, etc. Since we have to accommodate all possibilities, there will likely be some interpenetration and clipping when that occurs, and some animations may end up looking screwed up. Here’s my favorite (rather extreme) example of when body parts and animation skeletons don’t match up properly:

It really depends on what sort of actions the characters will be doing though. If they tend to be viewed at a distance with minimal touching up close, you can get away with some UV stretching or interpenetration. But if you’re doing things with a cinematic camera and a lot of character detail, these effects can become magnified since the player will spend so much time looking at them.

image

This is the primary reason we use preset body types - to minimize the effects of these visual issues. This way the artists can clamp the maximum adjustment amounts for each body type to smaller values, and then allow the different base body types to pick up the slack. When developers provide options to the players, we usually don’t want to give complete freedom, but rather enough choices that the player can feel a sense of ownership. While there are always those who will demand more, too many options usually has the opposite effect on many players - they get overwhelmed by too many choices and give up. Giving direction, such as with varying body types, usually helps make the choices less daunting.