Sprint 1 Contributions
1. Research and Development for Yarn Character Rig
Our cinematic, "In Plain Sight", has a character that is a ball of yarn with a loose string. Since it has no facial features, arms, or legs, it needs to be able to move and emote the way we want it to. As such, figuring out how to rig the character has proved challenging, as there is little to no reference for this type of character.
The yarn character will move by rolling itself, simple enough. However, due to the loose string it has, I need to figure out how the yarn needs to be modeled and consequently rigged so that the loose string, which will act as its limbs and means of expressing itself, needs to move with the rest of the yarn "body" (the ball part).
In this sprint, I created an iteration of the yarn character 3D model and identified the requirements for the yarn rig. The yarn character is scaled to its proper size according to our reference sheet and in the engine.
The plan moving forward is to start testing different kinds of control rigs using this proxy model; however, I expect to use a ribbon-based control rig for the yarn character, so I want to write a script that makes ribbon-based controls faster to iterate.
2. Shader Research
I will also be doing the shader for this cinematic. Our team settled on an outlined, cell-shader, inspired by the game "Dispatch."
Here is what I learned so far from my research:
Shader Initial Observation:
Cell/Toon Shading
Banded shadows
Outlines
Western mixed with anime look
Requirements
3D models:
Reduce polygon noise. Remove minute details and surface complexity that would fight the stylized shader
Flat UVs. The texture should be large, flat color zones. Preferably non-photorealistic materials, using hand-painted textures,
Normal map. Either bake very minimal normals (subtle, stylized) or skip normal maps entirely on characters (probably not the best idea though). No complex normals.
Shader:
Toon Shading.
Using the banded diffuse lighting method:
Get the dot product of world normal vs. the main light vector
3 main bands: Shadows, Midtones, Highlights
Using the “posterize” node
Should be able to customize band amount, light amount,
Outline post-processing material.
Using inverted backface culling
Samples the scene's depth buffer and normal buffer, detects edges, and draws black lines
(depth edges = silhouettes, normal edges = folds and details in the character)
(Fake) Rim Light. Dispatch doesn’t necessarily have a fake rim light but we might as well explore this just in case we need to separate the characters from the background more
Controlled, bright (highlight) outlining the character based on light direction
Compositing:
Handrawn Background. Dispatch’s backgrounds are all entirely hand-drawn then composited with the 3D characters. If we want to get closer to their style as much as we can we need to:
Render out the 3D model with the cell shader via the Movie Render Queue in UE
Composite the hand-drawn background and 3D movie render in After Effects
Add a texture overlay
Color Grade both of them together
Full UE Pipeline.
Banded lighting (per material)
Edge detection outline pass
Screen space noise/grain texture
Color grade to flatten and desaturate (low contrast, muted mid-tones)
Use Unreal's Render Targets to composite hand-painted background images as flat plane behind the scene instead
Apply chromatic aberration and film grain in the post-process volume.
Conclusion:
3D models will need a cell-shaded material on them. The material should be affected by the cell shader based on the scene depth node, replacing the PBR lighting to create a more flat-shaded look.
A post-processing material will need to be layered on top of the scene that extracts the scene’s depth and normals to create the outline effect
We can add another post-processing volume to create a more film-grain effect or go crazier with the color grading to avoid needing to composite outside of UE.
More Resources:
3 banded Cell shader: https://www.youtube.com/watch?v=lOOs74MLxec
Cell shader with outlines: https://www.youtube.com/watch?v=YwZH4jCO4ZM&pp=ygUZY2VsbCBzaGFkZXIgdW5yZWFsIGVuZ2luZQ%3D%3D
Advanced Material cell shader: https://www.youtube.com/watch?v=HDyswSWIdY0&t=1768s&pp=ygUZY2VsbCBzaGFkZXIgdW5yZWFsIGVuZ2luZQ%3D%3D
HLSL Custom Nodes: https://www.youtube.com/watch?v=TqZKf8tMphU&t=11s
Anime Shader: https://www.youtube.com/watch?v=xf21CBx8rYs&t=1192s
SDF Toon Mapping for the face (It’s in Korean): https://www.youtube.com/watch?v=T-bfBUhjCVc



