While working on The Woodsman I have developed shaders, tools, rigs, baked animation, and procedural animation.
This page provides a look at my process for solving problems on this project.
- The eyes in the game were scripted to track the character's position.
- On cursor hover, the eyes were scripted to blink.
- The blink plays a flipbook opacity mask animation.
- The pupils have wiggle offset movement to simulate life.
- The custom flat water shader was designed to maintain the stylized aesthetic of the game.
- The shader tiles over worldspace, allowing the water plane to be lengthened or shortened without effect on the size of the highlights.
- The water highlights were created using scrolling checkerboard masks that were added and subtracted over each other.
- To simulate the reflected highlights across water (seen as driving by bodies of water) the highlights were faded toward the edges of screen space.
Spline mesh trees
- Unreal spline meshes were used to place trees in the level.
- The tree class holds variables to control the tree width, how much thinner the trees become further up the spline, tangent, and how much the tangent intensifies up the spline.
- The spline meshes could also be animated in the level to "grow" along the spline.
- The foliage was created applying opacity masks to planes.
- Subtle vertex animation was applied to the foliage using X world location as well as painted RGB channel masks for randomization.
- Foliage color is calculated by depth, allowing further foliage to appear as if fading or being lit in the distance.
- The tree joints use procedural animation to reach toward the character at random intervals and speed.
- The hands were rigged and animated in Maya and baked on the mesh.
Game development & UI
- Point and click movement: The characters move along splines in the world toward mouse click.
- Interactive actors: Meshes in the world can be interacted with. After clicked, characters will walk within a certain distance of the actor and the dialogue manager is called.
- Branching dialogue: The interactive dialogue UI allows multiple branches of dialogue.
- CSV dialogue: The dialogue system takes csv files as input to determine branching lines and whether to expand the dialogue box.