Character Customisation

Basic Info:
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.

 

 

2, Eyes:

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.

Four Nomads – Shaders

Subdivision Shader:

A shader that looks at the texture, and based on the image, subdivides itself to create depth diverences in the used mesh. The shader looks at the brightness of the image and bases the depth on the level of light tints used in the image. This could be used to bake depthmaps fast and flexible making it a fast way to create depth contrast in your floors or ground. The shader can be changed with a slider to change the level of subdiving the shader is able to do. The more the slider is moved to the right, the more subdivision you allow the shader to make. This comes in handy when you don’t want to have too much polygons. The topology isn’t that clean though, this is something I want to come back to on a later time. The animation at the top of this text is captured real time in Unity.

 

Semi Flat Shader + Models:

A shader that combines flat shading with the light in the scene. I always like flat shaded games or scenes, but most of the time these scenes lack good readability for the lack of effect the lighting has in the scene. This is why I created a shader that combines the flat shading technique with the lighting in the scene. This way a semi flat look is created that is usable for low poly scenes. The shader calculates the light intensity per polygon and looks at the color of the light that is effecting the polygon. Based on these calculations the shader blends the vertex colors or texture with a soft version of the light that is hitting the object.

 

Ground Color Gradient Shader:

This shader is created to make the transition between the ground and the foilage on the ground smoother. Before I made this shader, Survive & Thrive had a clear edge dividing the ground and foilage models from eachother. This was bothering me because it destroyed a big part of the immersion.

The shader observes the (world) position of every polygon. If the polygon is closer to a 0 in the Y coordination it will blend more with the chosen “ground color” color. This way a small transition between ground and the model is created on the bottom of the mesh, creating a smoother transition. The distance from which a mesh starts to blend with the chosen “ground color” color is editable with the use of a slider.

 

Distance Alpha Shader:

The trees were in front of the player during playtest of Survive & Thrive. This was really disorientating for the player and needed to be fixed. Especially when the player was walking through thick jungle landscapes. I designed a solution in form of a shader that would make objects like trees and other plants become more transparant if they came to close to the camera. This needed to happen in a transition. We didn’t want any popping to be seen on the screen.

The shader hugely increased the readability of the game and as a bonus created an intriguing effect.

The shader observes the (world) position of every polygon and the (world) position of the camera. It than calculates the distance between the camera’s (world) position and every polygons (world) position. When the distance reaches a certain “variable” of distance the object start transitioning to a transparant object (by using the alpha channel). The shader looks at the given “variable” of thickness (how fast the object needs to become transparant when it comes closer by the camera) and accordingly changes the transparancy. This happens on a polygonal level, creating a disolving effect from top to bottom of the mesh. Making the transition between solid and transparant smoother.

 

Sun Rays Particle:

A particle effect instead of a shader. This particle effect is created to make more “feel” in the game. We couldn’t use the sun shadts effect in Survive & Thrive because the perspective was turned down, towards the player. We wanted to make the light more present, especially when you walked through thick jungle landscapes where sun shafts are common. I faked the sun shafts by creating a particle effect that spawn planes which pivot point are placed on the top. These planes are rotated, this way they rotate around the particle emitter with the top op the sun shaft (plane) still on the emitters position and the bottom on a random position. Creating an illusion of light shining through a pack of leaves.

Four Nomads – Animations

Basic Info:

For Survive & Thrive (project of Four Nomads) I became the animator after the main animator started to take to much time per animation. I used to animate for my first internship so I was familiar with animation.

Follow up movement:
I’ve always been a fan of the follow up movement rule. Once a muscle or object stops a motion, it’s always met with a counter motion to stop the original motion. A good example is the bouncing of objects. But this technique is also applied to living creatures. Motion can’t be stopped imidiatly and must be slowed down or be counterd.

With the arrow shot the follow up movement is most noticeable with the knockback of the bow. The bow builds up tension. This tension is released in forward motion. When this tension is released the string arm will automatically create a counter motion because both forces need to balance eachother out to be neutral. Thus when the string is realeased, the string and the arm both take their original force without being balanced out by the other force.
This all sounds very “sciency” for some artist. But I’m convinced that an animator should know these things to create more pleasing animations