Little Kaiju
Contributions:
Shot assembly in Unreal’s sequencer
Look development
R&D + technical implementation of hair groom pipeline with alembic files
Environment shaders
Lighting
Post processing configuration in Unreal (color adjustments, exposure, etc.)
Screenshots
Click to expand
About the project
For this animated short, rendered in Unreal 4, I was involved in a number of areas. It was a fun series of projects because we used a mix of 3d assets and 2d images to create the environments and lighting. This gave us a high degree of freedom for art direction on a per-shot basis. It also involved a fair amount of R&D with the use of the hair system, which was still in alpha at the time.
On this project we used a variety of techniques to achieve a playful animated feel and match the concept art and art direction as closely as possible. This meant that lighting wasn’t a simple matter of just placing some lights and calling it a day! It involved iterating with the 2d artists and creating materials that would allow everything to come together in a cohesive way.
2d and 3d
One thing we did was take a screenshot from a particular camera and then have the 2d artists do a paintover with all the layers separated.
We would then import these layers into separate cards in Unreal and use them to assemble the environment for things like skies, mountains, clouds, etc. As such, the materials these images got plugged into were just as important for lighting as the 3d lights themselves.
Hand painted light
In some cases we even hand-painted the lighting itself. We did this by having the artist paint over a screenshot, and then plug that layer into a projector that would apply the lighting to the 3d environment. This was extremely effective because the projector could then be moved around freely, colors and emissive could be adjusted, reused in other shots, etc.
Challenges - Hair System and Lighting
This was among the first projects to make use of Unreal 4’s hair groom system, which was still in alpha at the time. This posed a number of challenges.
Fur import and setup
The kaiju character (named “Jinji”) was exported as an alembic file since this allowed for advanced character animations. Grooms technically worked on alembic files, but lighting them was a huge issue because the groom system used a voxel grid of limited size for lighting the fur, but the grid was located at the character’s origin. This was a problem because when the animation took the character outside the grid, all shadowing was lost (this was due to the alembic animation being vertex animation).
To solve this, I came up with a clever solution where in Maya we would remove the root motion from the character animation, transfer it it to a separate node, export both animations separately, and then combine them back again in Sequencer by parenting the alembic animation to the root motion node FBX file. End result was that the alembic animation always stayed at its actor’s origin point, and then the actor got moved by the actor with the root motion animation.
Soft lighting
Another big challenge with the fur is that Unreal’s Skylight wasn’t fully supported by the hair system (at the time). This was a big problem because the art style we were targeting required the fur to have a soft look. Everything we tried gave us harsh shadows on the fur, too much contrast.
Eventually the solution I came up with was what we internally nicknamed “The Flower”, which was a blueprint with an array of something like 16 directional lights aiming in all directions. This gave us the visual aesthetic of a Skylight while simultaneously having control over the strength of the lighting from different directions. It was a bit of a brute force approach and somewhat performance intensive, but it got the job done.