Shin Megami Tensei V (Nintendo Switch) is the latest in the "Shin Megami Tensei" series, which boasts strong popularity among game fans. Released last November, this time we focus in particular on the creation of the characters. From the main character to the demons, we will show you the making of the characters that Atlus is so particular about.
This article is a partial re-edited version of the article in CGWORLD Issue 283 (March 2022). [Original web source]
3D expression that is typical of "Megaten" pushed through with UE4
Shin Megami Tensei V, the latest version of the popular RPG series that has been supported by many fans since the release of the first "Shin Megami Tensei" in 1992, was released last November, UE4 was adopted as the development environment for this title for Nintendo Switch. The goal in creating the characters for this title was to recreate the original character illustrations in 3DCG while maintaining the dark atmosphere typical of the "Shin Megami Tensei" series. By adding the physical-based rendered expressions of 3DCG to the illustration-like expressions, we sought to create expressions appropriate for a game played on the current generation of game consoles. I think UE4 is the best game engine for this kind of expression," said Takumi Yoshihara, lead modeling designer.
The characters were modeled mainly with Maya and ZBrush, and textures were created using Substance 3D Painter and Photoshop. Once the development environment was ready, the look-development process proceeded with a policy of pushing the range of expression on UE4 in order to reproduce the atmosphere of the original illustrations as game characters. In the original illustrations, the designers gave us detailed instructions on materials and details, but if we overdid it, it would become too realistic and not faithful to the original illustrations, so we decided on the look while moderately removing detail information to avoid information overload. Designer Miyuki Hariya successfully combined UE4's PBR and illustrative expressions to create a look that is different from that of typical 3DCG game characters. In this issue, we will introduce the detailed making of this work.
The modeling and look-dev process started with the mission of faithfully reproducing the original illustrations on UE4. After completing the models and textures, we poured our heart and soul into the look-dev process by bringing them into UE4.
Character models that pursue the reproduction of the original illustrations
Original drawing of the main character
Original "Nahobino" drawing of the main character and "Aogami" merged together.
The models of both characters are displayed in UE4. This look beautifully embodies the concept of "faithfully reproducing the original illustrations as 3DCG game characters". The look of each character was developed using these materials as a basis for verification.
Models and textures adjusted for optimal visibility in UE4
Models and textures for "Aogami." Character models are basically created in Maya or ZBrush, and their outlines and silhouettes are fine-tuned to look optimal in UE4. It is said that about 2 to 3 months are spent on the production of each character model.
Wireframe of the model displayed in Maya
Gray model sculpted in ZBrush
Rendered image by UE4
A group of textures created in Substance 3D Painter. Basically consists of 5 textures, including textures for albedo, normal, pseudo-gloss, Fresnel mask, and metallic, specular, and roughness masks assigned to each channel of RGB.
Changes in the look due to angles and motion are the fate of 3D games. Nevertheless, in this work, repeated adjustments were made to maintain the look of the original illustrations, creating a unique "Megaten" look.
Baking shades into the albedo with a shader
Simply assigning PBR shaders to a character with a look similar to the original illustration would result in a doll-like look. As a workaround, shaders are burned into the albedo in advance. The shader uses the Fresnel information obtained from the inner product of the pixel's normal and the camera's vector as a mask to add shading and rim light.
Original illustration
[A] Albedo only
[B] Shaders applied
Lighting added to [C] and [B]
Texture for pseudo-gloss is turned off in [B] above
Also in [B], with the Fresnel mask texture turned off. By partially turning off the Fresnel, it is possible to control the areas where shadows easily penetrate and areas where shadows do not penetrate as much.
Normal line adjustment to improve the eyes
Normals adjustment in Maya.
Left: before adjustment, right: after adjustment
Texture with baked normals adjusted in Maya
[Left] Directly adjusted vertex normals displayed in UE4.
[Right] Adjusted with normals baked into the texture. Nose line is beautifully straight.
Angel rings drawn with shaders
The character models in this work have very impressive highlights in the head hair, the so-called angel ring. The hair is not rendered using a dedicated texture, but is drawn with a shader using the normals of the hair mesh. The jagged and uneven angel rings are also not textured, but stripes are generated from the UV information of the mesh. Taking the processing load into consideration, these effects are expressed by shaders as much as possible.
Angel rings appearing on the head
Blueprint for generating a stripe mask from the UVs of a mesh
Closed eyelid shading is avoided with textures.
The character's shader is designed to bake shading against albedo. This is very effective for shading on the body and other parts of the body, but it also causes shading to appear in areas where we do not want the shading to appear, for example, when eyelids are closed. Therefore, a mask texture is applied to pinpoint such areas.
No issues as long as the eyelids are open
Mask textures for areas where you do not want shadows when the eyelids are closed
[Left] Before applying the texture, shadows are displayed on the eyelids.
[Right] After applying the texture. Shading is no longer displayed.
Hair strands are normals and corrected
Especially for characters with voluminous hairstyles, it was difficult to express their hair bundles. Simply creating and applying a normal map resulted in a tentacle-like shape. Therefore, instead of using vertex normals in the normal map as in the past, we decided to create spherical normal information in the shader and blend it to express the hair tufts. The hair strands were also blended with a tiling texture of the hair strand pattern to increase the amount of information.
The character's long, voluminous hair
Before [left] and after [right] correction of normals by shader
Streaky tiling textures used to increase information
Without [left] and with [right] tiling texture blending
Bright highlights that come in according to the curve of long hair, classified by setting the vertex color in Maya and setting a separate shader for each vertex color.
"Kawaii Physics" plugin for natural hair movement
As for the voluminous hair, if it is simply moved using physics simulation, the hair tends to get out of control. Therefore, the pseudo-physical hone shaking plug-in "Kawaii Physics" (github.com/pafuhana1213/), which can be used in UE4 and was developed by Kazuya Okada, a domestic developer, was used to create the hair. This allows the user to add intentional forces based on realistic physics laws, such as applying a diagonal pulling force when moving at a high speed, to freely produce hair movement.
How the hair behaves when the character is running
While jumping
"Kawaii Physics" work screen
Demons, sometimes enemies and sometimes allies, are an important element of this series. We went through a process of trial and error and adjustment to find the optimum solution for each demon's unique form and look.
Demon production flow
The production flow for demon characters is basically the same as for the humanoid characters introduced on the previous pages. However, since demons have many unique and irregular elements, from shape to texture, we spent a lot of time on trial and error to find the optimal shape.
Mesh of the demon Hydra. Before the bone deformation, the body branches off from the torso as shown in the figure. The number of vertices is about 40,000. Other demons are within 40,000 vertices as well.
The finished Hydra displayed in UE4. The body pattern was created with tiling to achieve resolution.
LOD is prepared in one step
High polygon character data is about 40,000 vertices, but partial LOD is also prepared and used.
Screenshot of a battle with Zeus
The area indicated in red is the part of the [left image] that has been replaced by LOD. Normally, it is rare to switch to LOD at such a distance, but characters whose appearance does not deteriorate in quality by lowering the LOD by one level are displayed with the LOD lowered even in battle stages such as this one.
Expression using demon-specific materials
Due to the wide variety of demons, many materials were prepared specifically for each demon. Shaders are used to represent these materials, and the modelers themselves create these individual shaders with the goal of directly reflecting their ideas upon the characters.
An example of Anahita. When using transparency to express hair with a water-like texture, the process becomes very heavy, so texture mapping is used to distort the hair to make it look as if the water is transparent.
An example of Anahita's hair movement. The undulating motion of water is achieved with bones and vertex animation.
An example of Amon. The eye patterns move in a hypnotic manner.
Texture of the eyes. This is animated.
Diving movement is represented by shaders
Mermaid uses a special effect. When she appears on the surface of the water, she sits on a rock, but when she moves, the rock disappears and she dives and swims, displaying a shadow like a fish.
Mermaid out of the water, sitting on a rock.
In-game screenshot
When diving and moving underwater, the rocks disappear and fish shadows appear
Mask material used for movement. This is decaled on the ground to express shadows when diving.
Variety of deaths staged
Eight variations exist for each character's death during battle. A single general-purpose effect is provided, and material functions have been incorporated to allow variations to be set by adjusting the position and color of the beginning of the disappearance.
General purpose effects
Blueprint node for material function that performs death production
This is a death effect called "freezing". A model of shattered ice is added to the generic effect, and the model is momentarily replaced to create the effect of shattering and disappearing.
The "Dark Skill kill". The character is set to disappear from the top down.
Light Skills. The effect is the opposite of the one on the left, as if disappearing from the bottom to the top. The effect settings are changed according to the attribute of each death.
Expressing attack evasion by Demons
When a demon character suddenly evades an attack, a distinctive effect is displayed.
Nuwa's normal state
Nuwa with the evasion effect added in the shader.
Inside the evasion effect. A mask like this is created from the position of a pixel in world space, and then a force is applied to the mask to randomly stretch the pixel.
TEXT_大河原浩一(ビットプランクス)
EDIT_海老原朱里 / Akari Ebihara(CGWORLD)、山田桃子 / Momoko Yamada
English language version edited and formatted by Ishaan Sahdev.