
Wonder Woman
Middle-earth: Shadow of War

Wonder Woman
Monolith Productions
January 2015 - March 2025
I started at Monolith in January 2015 as an intern for the Pipeline team. I was offered a full time position at Monolith - in January 2016 - after finishing my internship with the company. I continued to work with the pipeline team as a full time engineer while also finishing my degree at DigiPen Institute of Technology. Throughout my time at Monolith I have contributed to many areas of the tool set but the three major areas can be described as the effects editor, the facial animation batch pipeline and various additions to the world editor.
Effect Editor
Most of Monolith's tools - including the effect editor - is propriety technology made in-house. With this in mind there are features that were vital to success and quick iteration for the FX team on Middle-earth: Shadow of War. My first major task was replacing the current system for referencing existing FX files (from a different FX file) to reduce bloat when performing asset creation. The task was to set up a new system to allow users to leverage existing FX work rather than being forced to copy/paste existing data. After supporting references in Monolith's effects editor I eventually went on to add other features such as the ability to influence a resulting FX file with data that only exists within the final game.
​
Allowing users to leverage gameplay data during FX creation is critical to cutting down on the total number of duplicate assets. For example, one of the most duplicated assets during Middle-earth: Shadow of War - given it is a Mature rated game - was blood. A factor in determining location of blood effects was based on the joint the Player strikes on an Orc; thus a new asset had to be created for every joint. This does not include any other gameplay features that needed to be taken into account. With FX expressions we are able to take data from the game and modify it - using a graph editor - to produce a final effect. Throughout my time at Monolith I have also added many other minor features to the effects editor.
I was able to acquire a good deal of experience working with stakeholders and delivering new features to help improve the usability of the tool and decrease iteration time. These features include but are not limited to:
* FX Sequences : Support for users to have a looping effect with customizable intro and outro sequences.
* Integration of Material Data: This includes the ability to view and override data within a material being used in an FX file.
​
Facial Animations
In addition to supporting the FX team I also work with the facial animation team. My responsibilities included integrating the facial animation pipeline into Monolith's existing batch file processing tool, AssetConverter; setting up and managing the build machine responsible for performing nightly batches on these animation data - which consisted of over 16 Terabytes worth of data; adding features to Monolith's character previewing tool to have the Montreal WarnerMedia QA team test over 25,000 facial animations in a timely manner; adding tools to the Windows Shell to decrease iteration time for the artists to fix any facial animation data that needed additional polish.
I worked with the facial animation stakeholders to integrate their existing program (written in Python) into Monolith's in-house batch processing tool. This allowed for users to automatically process facial animations either at their workstation or by waiting for the dedicated build machine to process any new assets - on a nightly basis. The facial animation pipeline used a variety of different tools to acquire the resultant data for the characters. These included Faceware - for analyzing the facial animation video and re-targeting the data to existing character models. Annosoft which used the text data to create the correct tongue positions. The team used Python within the Autodesk Maya toolset to create the data - needed for re-targeting - as well as other data to apply to the final model and create the final animation to use in engine.
HLODs
I spent a great deal of time supporting, automating and creating new features to support Level of detail and a system called hierarchical level of details....
​