Snuggles the Unicorn
Snuggles the Unicorn was a Unity action game in development at Left Turn Studios. I was lead Technical Artist with a second TA joining partway through. The project was eventually canceled, but it produced two pieces of technical work worth documenting: a vertex shader system that replaced an expensive bone rig, and an animation retargeting system built to preserve the team's existing animation investment across a major model change.
Wing Vertex Shader System
Each enemy type had wings — and the original rigged solution used 32 bones per enemy to animate the flap. At low enemy counts this was fine. As the design expanded to include larger waves, the rig cost became a real performance problem. The bones also produced synchronized flapping: every enemy in a group moved identically, which looked mechanical even at small counts.
The replacement was a vertex shader that drives the wing flap entirely in the GPU without bone evaluation. The flap motion is a sine wave applied to wing vertices, with parameters for frequency, amplitude, and phase. The key piece was using Unity's Material Property Blocks to set a randomized phase offset per enemy instance at spawn time. This meant every enemy in a wave had its wings moving out of sync with every other enemy — the same shader, zero additional draw calls, genuinely independent motion.
The result: bone evaluation cost for wings dropped to zero, enemy counts could scale without performance regression, and the motion looked more natural than the rigged version had at any count.
Puppet Rig Retargeting System
Mid-production, the player character model was redesigned. The new model had different proportions and a different skeleton hierarchy than the original. The existing animation library — representing a significant time investment — was built for the old model. Recreating those animations from scratch wasn't an option on the schedule.
The solution was a constraint-based retargeting system: the new model's bones are driven by constraints that read the old model's animation data in real time. The old skeleton runs the animation; the new skeleton follows via constraints, with per-bone offsets to account for proportion differences. The full existing animation library worked on the new model immediately, with targeted manual adjustments only where the proportion differences produced visible artifacts.
The more important part was what happened next. Every time the new model was updated — which happened multiple times during production — the constraint connections broke and had to be rebuilt. I scripted the constraint reconnection so it could be run as an editor utility, rebuilding the full rig from a saved configuration in a few seconds rather than manually reconnecting each bone. The script meant the rig survived model updates without requiring tech art involvement every time.
Other VFX Work
The project also included a range of gameplay VFX: enemy spawn effects, collectible pickups, ability triggers, and character celebration states. A few samples below.