I recently completed work on a major corporate presentation. This post discusses some of the technical details as well as a video that showcases the functionality.
The presentation is powered by Unity 3D and runs on Windows 7 using Win7 Gestures. The display is a Next Window 55″ touch display.
In order to route input from Unity to Windows, I used the uniTUIO framework developed by Sandor Roza and Ben Britten.
I then used a Windows7 to TUIO bridge to translate the uniTUIO input commands so that it would work with Unity’s Input framework.
I then wrote a simple batch script that would allow me to run both the Unity exe and TUIO exe with the necessary arguments with a single click.
I used Luxology’s modo to create the 3D models such as the trays, buttons and globe models. Modo was also used extensively in the early test phases for mockups and to simulate 3D effects.
I used UIToolkit by Prime 31 to create the UI elements such as the navigation buttons at the bottom of the UI.
The touchable images are quad polygons. I ended up writing a custom sprite tool by extending the Unity Editor. This tool allowed me to quickly add a new sprite to the scene and offset the UV coords. By offsetting the UV coords, I was able to utilize the a single material and texture sheet in order to cut down in the draw calls.
There are several excellent sprite tools in the Unity asset store, however, I didn’t want to add additional scripts to my project that could possibly interfere with the uniTUIO framework. I ran into this issue with UIToolKit and ended up having to make some small modifications to UIToolKit so it would build without errors when the uniTUIO package was added.
In order for the sales team to take the presentation on the road or to remote locations, I used Unity’s multi-platform authoring capabilities to create an iPad version. By using Platform directives, I was able to run code snippets on specific platforms that project was targeted for. This allowed me to maintain a single code base for both the iPad and Windows Desktop versions in a single Unity project.
The project is complete, but it’s only a phase one rollout. There are several updates I will be added an new functionality that I have slated for phase two that I’m really excited about.
More to come!