Technical Art

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.


Eye shaders

  • 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.


Water shader

  • 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.

tree Hands

  • 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.