Dev Portfolio
While much of my work on proprietary tools is under NDA, I can share general information about functionality and workflows.
• Unity Timeline Extensions (C#):
My team mainly focuses on creating conversation-based simulations, with an average of 2.5 minutes of animation sequenced per animator per day, including lipsync. To do this efficiently, we built an extension of Unity's Timeline to support automated sequence setup and numerous editing tools. Characters are separated into standardized body layers, allowing for easy retargeting and reuse of animation libraries between projects, while being limited enough to stay optimized for web and mobile. We can also add custom layers or use the same system to define animated props and environments. Animation clips can be scaled and blended to better adapt to the audio. This was an extensive collaboration with an internal developer, and I assisted by pitching and testing core feature requirements while contributing code for additional tools described below. I wrote a character animation controller generator, FBX animation importer/splitter, a multi-track copy-paste tool with an optional time offset, and I provided guidance for a "last event" checker to quickly spot continuity errors, a batch phoneme emotion swapper, and an animation controller cleanup tool. Editor load times are now near-instantaneous for average-length sequences. The previous sequencing system we used would take upwards of 30 seconds to load a sequence for editing and required this load each time changes were saved.
• Blender Batch FBX Exporter (Python):
I updated our previous developer's code to optimize FBX exports of character rigs and animations. By baking to a game-ready rig and only exporting deformation bones, file sizes were reduced by 50% while also speeding up exports by 50%. Previous modifications to the base FBX addon were no longer supported and required the exporter to be rebuilt from scratch for Blender 4.x.
• Checkout Exporter (Python/C#):
Parses a project's JSON logic files to generate a spreadsheet for tracking animation status. Each row lists a sequence name, highlights special activity nodes, and shows what possible sequences it can flow to next. Sequences that don't require character animation are grayed out. Initially a standalone executable, a developer migrated my code into our logic tool, allowing one-click access to all users.
• Audio Checker (Python):
This script runs as a standalone tool and verifies that a folder of audio contains all the files needed for sequencing in Unity. The script checks against the JSON logic files of a given project, which helps save Instructional Designers from having to download and import an entire project into Unity. It can also catch audio files that do not meet standard naming conventions and offer the user to rename them. Note: in the above image, "empty" is a placeholder audio name often used to denote motion graphics placed inside a non-dialogue sequence.
• Profession's Toolbox (Unity/C# Prototype):
A solo internal game jam prototype for mobile, meant to help onboard for a given healthcare or emergency services profession via a customizable list of employer equipment, locations, and regulations. Centers around an interactive 3D model viewer, to help familiarize new hires with their workplaces. 3rd Place winner.
• AR Conversation (Unity/C# Protoype):
AR mobile prototype to test triggering animation sequences via voice recognition.