Technical Art

Figma


Figma2Godot: A custom plugin to automate export from Figma to Godot. Design prorotypes are rebuilt using an Animation Library to share clips across UI elements.

GenerateDesignTokens: A custom plugin to create and manage variables inside Figma. Easily assign tokens across your design and share to your team’s library. Export tokens to a theme in Godot.

Sync design tokens between Figma and Godot.

Blender


Toggle Material: A custom Blender add-on written in Python to toggle materials on unselected objects.

Isolate Selected: A custom Blender add-on written in Python to isolate selected and hidden objects.

Maya



Custom pose tool – scripted with python for storing per-rig animation poses. Mirror pose, flip pose, update selection, set keyframes.

Custom pose tool – mirror pose.

Mirror pose.

Custom rigging tool – scripted with python for creating custom animation rigs. Supports FK/IK blending and matching, IK chain bending, squash and stretch, automatic hierarchy creation and mirroring, helper tools, dynamic and wave chains, multi-rig scene management, automatic selection with non-linear CV control editing, and presets.

Custom rigging tool – IK bend.

IK bend.

Custom rigging tool – Dynamic wave chains.

Dynamic chains
Wave chain.

Custom rigging tool – FK/IK blending and matching. IK bend and IK stretching included in setup.

FK/IK blending and matching.

Custom rigging tool – Blending used on custom character.

Custom character rig.

Custom rigging tool – squash and stretch.

Squash and stretch.

Custom rigging tool – non-linear CV controls.

Non-linear CV control editing.

Custom rigging tool – direct blending.

Rotation only blending.

SH Edit Shapes: Maya tool to assist character artists with making quick changes to blendshapes. Scripted in Python.

Quickly edit blendshapes.

Copy Animation: Maya tool to assist animators with quickly copying animation between skeletons. Scripted in Python.

Copy animation between skeletons.

Pipeline Improvements


Startup Scripts: Art and animation pipeline organization and maintenance, custom main menu and shared shelf for tools and snippets. Initialization of required preferences and scene settings on startup. Scripted in Python.

Custom menu and shelf for production tools.

OpenMaya API: Implementation of layer contents selection with the OpenMaya module per team request. Scripted in Python.

Layer contents selection.

PySide2 and Qt Designer: Pipeline integration for quick UI development, .ui files easily loaded in Maya, Motionbuilder, and Substance Painter. Scripted in Python.

Qt Designer.
PySide2 for UI creation.

Gather Textures: Desktop application to search recursively for image files by format. Images could be moved to a target directory for processing with Photoshop batch actions, and then moved back to their original locations. These locations were backed up via JSON to the user’s temp folder so they could be reloaded if necessary. Scripted in Python.

Gather dispersed textures for processing.

Motion Builder


SH Keys: MotionBuilder tool to cleanup motion capture data and operate on keys. Scripted in Python.

Key operations

SH Mirror Animation: MotionBuilder tool to rotate and mirror animation takes. Scripted in Python.

Rotate and mirror animation takes.

Substance Painter


SH Substance Directory: Substance Painter tool to assist with browsing and bookmarking the Substance python API. Scripted in Python.

Substance API browsing.

Unity


Editor Extension: Expanding on engine UI to give more detailed information to the user, including adding supplemental directories for visual reference. Scripted in C#.

Project tab details.

Prefab Clipboard: Unity tool to assist users with object organization and bookmarking. Instantiate and move objects across large hierarchies more easily. Scripted in C# using UI Toolkit.

Bookmarking objects.
Traverse hierarchy.

Animation Preview: Unity tool to assist animators with quickly previewing animation. Scripted in C# using UI Toolkit.

Quickly preview animations.

Rename Selected: Unity tool to assist users with naming objects, adding prefix, suffix, numbering, and auto-suffix by type. I designated the asterisk (*) as a special character to allow replacement of multiple unique substrings. Scripted in C# using UI Toolkit.

Rename selected objects.

Bounding Box Wizard: Unity tool to quickly set bouding box values. Scripted in C# using UI Toolkit.

Automate bounding boxes for selected meshes.

Prefab Layout: Unity tool to assist users with visualizing prefabs in the project. Scripted in C# using UI Toolkit.

Layout prefabs by name and type.

Shaders


Sticker Shader: Scripted in Shaderlab.

Wrinkle Map Shader: Utilizing RGB masking for isolated blending of detail normal maps. A placeholder scar was created to test the blending on top of required secondary normal maps.

Wrinkle map shader graph.
Normal map details.
RGB masking.

Technical R&D


AI Integration: Research for new methodologies, including AI generation of internal concept and design materials.

Generated concept assets.

Technical Presentations


Team Presentations: Concepts and workflows presented to the art team to expand technical knowledge and improve production adherence to platform standards.

Normal map presentation slide.
Unity prop presentation slide.