Website powered by

NPR Breakdown

This breakdown objective is to explain in a simple, comprehensive way how to achieve an anime look to a 3D character.
This can be done using a variety of software, and for this case, the 3D model is made in Blender, and the rendering is done both in Unreal and Unity.
All of the textures where done using Photoshop.
The character is an original one, developed for a fighting game.

Animation test

Unreal material

Unreal material

Unreal shader overview

Unreal shader overview

1_ The shader gets the light direction to calculate which areas will be shaded on the model. 
A custom Vector3 could be use to give a different light direction to each character.

1_ The shader gets the light direction to calculate which areas will be shaded on the model.
A custom Vector3 could be use to give a different light direction to each character.

2_ The skin color variation is added, using the blue channel of the detail mask and the UV channel 01.
The shadow color is also added by multiplying the default color with a shading color.

2_ The skin color variation is added, using the blue channel of the detail mask and the UV channel 01.
The shadow color is also added by multiplying the default color with a shading color.

3_ The calculated shadow is hardened, and other sources of shadows are added, such as the ambient occlusion from the channel G of the ILM texture, and the back side of the polygons.

3_ The calculated shadow is hardened, and other sources of shadows are added, such as the ambient occlusion from the channel G of the ILM texture, and the back side of the polygons.

4_ The highlights are calculated using the base shadow calculation from step 1, and the channels R and B of the ILM texture. Then the hair area of the UV is masked to add a custom highlight from the G channel of the Details texture.

4_ The highlights are calculated using the base shadow calculation from step 1, and the channels R and B of the ILM texture. Then the hair area of the UV is masked to add a custom highlight from the G channel of the Details texture.

5_ The inner lineart of the character is added combining the Alpha channel of the ILM texture, and the R channel of the Detail texture. The result is used as a mask to apply the lineart color.

5_ The inner lineart of the character is added combining the Alpha channel of the ILM texture, and the R channel of the Detail texture. The result is used as a mask to apply the lineart color.

6_ As an extra step, a rim light is added, but the face area is masked because it has modified normals which would affect the effect.
The same is done for the edges outline.

6_ As an extra step, a rim light is added, but the face area is masked because it has modified normals which would affect the effect.
The same is done for the edges outline.

The same shader can be replicated in Unity, following the exact same structure.

The same shader can be replicated in Unity, following the exact same structure.

Unity rendering front

Unity rendering front

Unity rendering side

Unity rendering side

Blender render

Blender render

Blender overview

Blender overview

For the model to have the desired shadows, the vertices normals needs to be customized in the 3D editor.

For the model to have the desired shadows, the vertices normals needs to be customized in the 3D editor.

A custom tool was used to modify the vertices normals, and with it normals groups were created.

A custom tool was used to modify the vertices normals, and with it normals groups were created.

Main UV channel contains the UV islands in a rectangular shape in almost all cases. This is to ensure the textures will not pixelate on the mesh.

Main UV channel contains the UV islands in a rectangular shape in almost all cases. This is to ensure the textures will not pixelate on the mesh.

A secondary UV channel can be created, with commonly unwrapped islands to be used in with the Details texture, which doesn't have the need for square UVs.

A secondary UV channel can be created, with commonly unwrapped islands to be used in with the Details texture, which doesn't have the need for square UVs.

Base Color texture

Base Color texture

ILM texture
R: Specular Intensity
G: AO
B: Specular Size
A: Lineart

ILM texture
R: Specular Intensity
G: AO
B: Specular Size
A: Lineart

Details texture
R: Detail lineart
G: Hair reflections
B: Skin variation gradient

Details texture
R: Detail lineart
G: Hair reflections
B: Skin variation gradient