Custom Spline Path Tool
Using Unity’s powerful editor scripting capabilities, I designed and programmed a tool which allowed us to animate a car driving along a spline path. The car’s wheels would automatically turn using accurate steering geometery, complete with realistic spring suspension.
Dynamic Vehicle Steering
The vehicle controller keeps track of car movement along a spline, and simulates steering by rotating the wheels using the Ackermann steering technique. This technique involves pointing the two front wheels at the center of the vehcile’s turning circle.
In order to solve this problem, I looked at what information I had available to me. Most useful is the car’s XZ position at three points: the current frame, and the two previous frames.
This gives us two line segments: one between the current frame and first previous frame, and one between the first and second previous frames. If we imagine these lines as two chords on a circle, we get the following:
Remebering highschool geometry, we know that a perpendicular bisector of a chord will pass through the center of a circle. Using the two chords from the previous step, the point where each chord’s bisectors intersect is the center point of the circle.
By doing this every frame, we’re able to determine the instantanious position of the turning circle over the past few frames. The final step is to just point the front wheels at the center.
One of the primary goals was for the app to run well on lowish-end mobile devices. For the cutscene ending, we used heavy texture optimization and atlasing, which combines multiple textures into one single file in order to reduce the number of texture requests to the GPU.
Male Zombie Atlas
Textures larger than 1024px are stored as separate bitmaps, along with each vehicle part’s separate bitmap and normal map.
The ending cinematic features a crowd of 50 zombies, with about 20 different outfits! This would be hard to render even on a PC, not to mention a mobile device.
Out of the box, each zombie’s outfit is made of five separate meshes. By using a mesh combining algorithm, we’re able to reduce each unique zombie down to one single mesh. We then combine the zombies that share outfits into a single mesh.
While testing this algorithm, amusing bone glitches were common:
A zombie-themed car-customization app built for Hyundai in partnership with Skybound Comics and The Walking Dead.
For over 8 months of design and development time, I lead a small team of developers using the Unity3D game engine to produce both mobile and tablet-targeted apps from a single codebase, for both iOS and Android.
We also worked closely with the 3D team at Bigblock LA and Hornet Inc. to develop and animate the car parts, props, and environments. The culmination of the project is a 30-second dynamically-generated cutscene of your custom vehicle attempting to escape the zombie horde.
- ADC: Behind The Cube
- 2014 Webby: Mobile Experience
- Silver Effie: Engagement
- IAC: Social Media Best In Show
- Studio: Bossa Digital
- Executive Producer: Hans Weiss
- Producer: Nic Santana
- CD: Andrezza Valentin
- Lead Developer: Jeremy Abel
- Lead Developer: Jeramy Morril
- Developer: Jeff Soldan
- Developer: Matt Greene
- Art Director: Sarah Skapik
- Art Director: Marcel Slottke
- Designer: Geetha Pedapati