Engines and Technical Art
Unreal Engine 5 - Project Wells (Cancelled)
At Crop Circle Games, I led the Tech Art team as we discovered how to utilize the newest technologies of the day. We dove deep into Lumen, Nanite, and World Partition and found new pipelines and workflows for artists that leveraged these amazing new systems, while also upholding the vision and methods of the artists.
As part of those new workflows, I helped establish import pipelines to take in and set up metadata on assets, to reduce the time artists needed to spend setting the same parameters over and over. I also wrote editor scripts to simplify or automate actions for the art team. For example, combining static meshes to a basic actor asset while maintaining the ability for artists to edit Custom Primitive Data was very important. I also leveraged asset import tasks to set up the appropriate retarget sources and preview meshes on animations, since we were sharing many animations and skeletons (to reduce the number of needed animations) this helped keep things clean in engine.
My individual contributions also focused on building and maintaining Animation BPs for all characters and creatures, utilizing a structure that was both flexible and sharable. Animations were exposed as variables for easy access by animators to create new locomotion sets as child AnimBPs, and I utilized stride and orientation warping rather than blendspaces to maintain better foot planting. I also set up IK foot snapping, foot syncing, curves for various features, and worked closely with animation and design to implement motion warping where needed. I also initiated and directed the construction of the animation pipeline from scratch.
To better understand the scope and complexity of this project, you can view the work of some of our talented artists here:
Arman Abounourinejad, Environment Art
Chris Nirenberg, Character Artist
More detail on my contributions can be found on the Recruiter’s page for Tech Art and Tech Anim.
Oculus Quest
After the launch of Luna (see below) I worked on two different Oculus Quest titles. Both projects were shipped to the client/publisher, but were unreleased by them. In March 2020 I gave a Virtual GDC talk about making art assets for the Quest with performance in mind. The Quest has unique rendering challenges, and after digging into what was possible and what looked good I decided to put together a guide for artists who were new to the platform.
On my Quest projects I took on a more technical role, focusing on performance and the art overall. I developed shaders, created FX, made and maintained animation controllers, and adjusted the overall scenes to keep performance up. I was responsible for the establishing the modeling style, creating character models, rigs, and some environment modeling. I also contributed some C# code, largely for art importing and animation behaviors.
NEVERBOARD
My work for Neverboard focused on VR UI design and implementation, as well as general assistance optimizing the art for the Quest. I provided feedback and guidance to artists creating 3D assets for the games on optimized asset set up for the Quest, and handled importing a their assets and animations. I also designed implementations more difficult art pieces and FX and provided the Blueprints and Actors with easy hooks so the engineering team so they could use them as needed.
One of my favorite contributions to this project was a “3D 9 slice ” tool, written in Blueprints, which allowed other designers to quickly iterate on UI by providing a range of styles and the ability to adjust the size of “tablets” and “buttons” for the 3D UI. The set up largely involved shaders driven by vertex colors on specially set up meshes.
Personal WIP
Some work from a personal project. Mostly in-engine gifs of tech art implementations for the planets. I wrote a “planet builder” script in C# to set up the different planets without having to adjust many things by hand. Each planet has a unique texture, but I use parameters to drive rings and moons, rotation speeds, text color etc. The placement of the face and placement of the planet’s “camera” are generated based on the size of the planet without need for hand-tuning, but any hand tuning can be saved.
I am also working on concepts for VFX, text looks, cards and other visuals.
I worked on a solo project around 2019 to learn C# better.
I developed a garden game where you had free reign to design the garden grid and plant or move plants, and over time or in certain configurations they would spawn new plant types.
The main focus of this project was getting familiar with better C# coding practices, patterns and structures. It was built for Android in Unity.
LUNA
For my work on Luna I was responsible for a majority of art and in-engine (Unity) art set up. I modeled and textured assets, often assisted in rigging, imported assets into engine, set up materials, created shaders, adjusted prefabs for functionality, created FX, optimized lighting, and generally maintained the look and functionality of the game across different scenes. While I didn't contribute code, I was able to read through C# scripts and find where problems were occurring, or understand better how systems functioned or utilized assets.
See more at https://luna.funomena.com/
Unreal Engine 4 Rendering
These three videos are of "high poly game play" for advertising purposes. I took or created high poly assets and mocked up the game-play as closely as possible for trailers and cinematic shots. I adjusted environments from the original to increase texture quality and mesh density. Because the original game was not built in UE4, I also set up AI and animations blueprints for the characters so that they did not have to be manually moved around in Matinee in order to duplicate game play scenarios. I recreated most FX, and expanded the environment in many places. Rendering done in UE4.
Maya Tools - PYthon and Mel scripts
Over the years I have made a number of small tools in Maya, mainly to support animation and rigging tasks. Either automating a retargeting workflow, or compiling much used actions into a single space, I helped speed up the rigging and animation processes at several studios.
Below are a few I made much earlier on in my career that are free to download.
Joint Controller. Quickly takes the selected joint/bone and adds the selected curve as a controller via a parent constraint. Creates a null group above the curve at the location and orientation of the joint, passing it to the curve which maintains zero rotation, translation, and scale. Python.
Rotate Special. Designed to quickly grab Vertices or CVs on the selected object or curve so you can rotate them a specific amount. Great for adjusting controllers positions on rigs. Python.