I made a character customisation scene in Unity for my graduation project. The focus of the project was to make a character customisation where the player or developer was able to create characters freely with wide ranging options. The final character (with all customisations applied on it) will be baked on a new mesh. This way the character can be used in game withouth overhead of the blendshapes used for the customisation. This was an important issue for me. It doesn’t matter if your character customisation works flawelessly if you can’t use the characters themself.
1, Research, Research & Research
I started my project with the usual research phase. My research concisted of ethnotype research, other character customisations and anatomy transfering into topology. After these steps (especially the last one I mentioned) I was able to start my project and start modelling my base face mesh.
2, First Prototype:
When the research was done, I was able to start my first prototype. The first question I needed to anwser was if my character customisation is going to be a “Addable” character customisation (a character customisation where the player or developer is able to add certain thing to a character, but never being able to really change the face mesh. The player or developer is able to change the shape of things like the nose into other shapes, but isn’t able to change certain parts of the nose for the nose is a loose object placed on the face).
or a “Addjustable” character customisation (a character customisation where the player or developer is able to change very specific points in a face of a character. Things like the size of the nostrils or other small details. The whole mesh is able to be changed and therefor this way of character customisation has more depth).
I chose for the last one, this choice was based on the idea that I will be able to create more parts of a character customisation this way. Another big influence was that I wanted the players of developers to make characters they wanted to make. It’s important that they can change as much as they like for that would increase the players enjoyment while using the character customisation.
My first prototype used joints to change the basic shapes in the face based on the “addable” character creation system. The mesh is weight painted and reacts on the joints when they are moved around using a rigidbody drag system.
I started to implement the same system on a more detailed mesh based on the “addjustable” character creation system. This was the moment I figured out that joints weren’t the way I wanted to go. The joints were producing to much strange artefacts or stretching when they were used on a higher detailed mesh.
I found out there was a better way, using blendshapes. This resulted in a smoother, visually better changeable mesh.
I started creating the eyes. Most people I asked said that they think the eyes are the most important part of a character. The first eye shader was made in Maya. This shader had procedural generated stripes in the iris. The player or developer was able to change the number of stripes and the density of those stripes.
When implementing in Unity I wanted to create a customisation option for the color of the eyes. I found out that for a smooth looking result it’s better to use 2 change able colors for the eyes. The first is the center of the iris and the second is the ring of the iris giving it a more divers look. Eyes in real life are never just one plain color, this is something that needs to be reconsiderd when making eyes in 3d.
3, Skin Shading:
After completing the eyes I started to work on the skin shader (well, actually I started modelling the face, but the modelling part wasn’t really innovative compared to other models so I won’t be talking about it in this entry).
For the skin I wanted to create a system that made it able for the player to change the color of certain spaces of the face.
The project can be found here.