Above is an example of what I would typically consider the holy grail of character customization. This man can age, become fit, skinny, or fat. The face can of course be changed, but that's what is being demoed here. Throw in some hair, facial hair, another gender, facial customization, and the option to change skin color, and you've got yourself a character creation system to rival most AAA games.
The question is, how do you do that?
Let's start with the body. How do you change a character from skinny to fat, or any other body type for that matter?
In Skyrim there are four versions of every piece of armor. Male, and female of course, but for each those there are a skinny version, and a large version. When you choose your character's body shape at the beginning of the game you fall somewhere between the skinniest body type, and the largest body type. The game blends between the skinniest body and the largest body in order to allow you to choose that body type. The same process occurs with all the armor and clothing in the game.
The current body type of that guy in the video can be derived from a few values. Lets say that a player is always somewhere between Slim and Heavy, and they are simultaneously also somewhere on the spectrum of Fit vs Unfit. There are now at least four character models: Slim, Heavy, Fit, and Unfit. Based on where you fall in these two spectra your character's final look will be the result of combing these models. These extra models are called blend shapes, or morph targets. These can also be used for facial animation, but we'll come back to that later. The important thing to note here is that all of these body types can exist on one skeleton. This significantly reduces the amount of work required from animators, and allows for a more dynamic system in the game. The jiggle to the man's chest and stomach can be accomplished with what is often called a spring joint. In most engines (and I happen to know this is the case for this particular game) these spring joints can be activated or deactivated to have physics work on them. So once a character has reached enough bulk, the spring joint gets activated and out come the jiggles. Character height can be accomplished by scaling multiple parts of the characters body in proper proportion. A uniform scale could be used, but this has a chance to come out looking like a scaled down person instead of a shorter person. It usually makes more sense to scale down the legs, spine, and arms at slightly different ratios. Insert the Vitruvian man here for the maths on the golden ratio of scaling a peoples.
A few examples brought to you by Exanima:
Now that we've covered how to make a dynamic body type, it's time to discuss aging. Once we accept the reality that an older person can be muscular, skinny, or bulky, then we realize the changes only need to happen in a couple of places. The face, and the textures for the skin. Using dynamic materials, it's very simple to scale between youthful and old skin. I would use Substance for this, but one could just as easily use their engine's built-in material systems to procedurally insert the wrinkles into their textures. This works for the face as well, but if you really needed to sell the age you could also use blendshapes here to actually change the geometry of the face too. In most cases, changing the material should suffice however.
I will edit this post later to add Part 2, which will Face Customization. We'll take a look at Skyrim's facial system, and alternatives methods of accomplishing the same goals.
Posted Nov 15, 17
· Last edited Nov 15, 17by Sorrien