Actually, this asset pack was firstly released in July. After a round of feedback collection, the 2nd version is updated now:
Stylized rendering is also very popular in games to archive some artistic pursuits. Anime/Manga style is one of the basic and typical non-photorealistic rendering (NPR) styles.
The cel shading used is a layered model: two layers for basic color and one layer for highlight, which is commonly used in anime. The light-shade boundaries can be specified by the custom threshold. The global brightness and shade falloff can be specified accordingly.
The outline drawing covers the features of silhouettes, creases, and boundaries. In the legacy version 1, the three types of outlines are separately extracted. In version 2, creases and general silhouettes are covered by one extraction method; silhouettes with suggestive contour is an extension which is suitable for characters.
Procedural and texture hatching are also supported. The hatching density, direction, threshold, and pattern can be specified.
Generally, it can be compatible with common shading materials used in the photo-realistic rendering, that is, no specific texture or extra material is necessary. The style rendering can be switched by the custom stencil values of the target meshes.
Project settings > Engine -> Rendering -> Postprocessing -> Custom depth-stencil pass, choose Enabled with Stencil.
Add mesh objects and set light sources.
Add a post process volume, then Rendering features -> Post Process Material -> Array + -> Asset Reference, drag the material/instance into the blank.
For each mesh object, set the custom stencil value, default value 7 ( = 1 + 2 + 4) for enabling all basic effects. For a character, setting 15 for enabling all effects.
Note that the effect impact can be switched on or off individually for each object by setting the custom stencil value, so that the hybrid rendering effects can also be realized in the same scene (as shown in the following figure).
- Face light supplement (FLS): just drag the BP_FaceLight into the scene, and specify the default skeletal mesh variable to the target character. This effect is optional by users preference.
The effects comparison between FLS on and off is shown in the figure below.
- For auto global light intensity estimation, please refer to the sample BP_Light_Intensity_Estimation. The parameter value of (global) light intensity can be set manually as well.
To switch on the expected effect, the custom stencil needs to be set to the sum of the necessary mask values for each object.
In version 1, the default stencil masks are [TABLE=“border: 1, cellpadding: 1”]
For example, setting custom stencil = Cel + silhouette + boundary + character = 1 + 2 + 8 + 32 = 43, is suitable for a character mesh.
In version 2, the default stencil masks are simplified: [TABLE=“border: 1, cellpadding: 1”]
Outline (crease + boundary)
Silhouette (suggestive contours)
Commonly, setting custom stencil = 7 for each object is OK. For a character, 15 is recommended to enable the suggestive contour for better details conveying.
The stencil masks can also be customized, if the default values are used for other things and the rules are commanded.
For using mobile version (V3), please first drag BP_MainLightInfo into the scene. As mobile post-process materials cannot acquire the g-buffers, a full PP solution does not work well. Thus, some base-pass materials are made as the solution. Since the variety of base-pass materials can be divergent, the materials provided in the pack can be regarded as templates. You could customize your own material by modifying them.
Introduction to mobile materials/material templates:
- M_Anime_Template_Cel, cel shading only, recommended to use with MI_LineDraw_PP, compatible with OpenGL ES2
- M_Anime_Template_Dithered, cel shading with dithered alpha mask, compatible with OpenGL ES2
- M_Anime_Template_ES2, cel shading with silhouette drawing; the quality may not as good as M_LineDraw_PP, compatible with OpenGL ES2
- M_Anime_Template_ES3, cel shading with silhouette drawing; the quality may not as good as M_LineDraw_PP, compatible with OpenGL ES3
Limitations of V3:
- Only support 1 main directional light
- Outlines may not always work as same good quality as the PC version for arbitrary geometries.