Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.
X
Video

Corporate Presentation Driven by Unity 3D

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.

Unity Input to Windows 7 Gestures

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.

Creating Assets

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.

Two Versions, One Build

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!

Post to Twitter

  • Anonymous

    Thanks Alex.

    Well, the lag you are seeing has to do with the TUIO and windows connection. It’s definitely not Unity. When using the display, the lag isn’t noticeable when you are actually touching and working with it.

    I think that Unity will probably support Windows 7 gestures eventually. This will make things much more smooth.

    -Wes

  • Alex Lovett

    Nice, but seemed to be lagging to the gestures which is a shame, is that down to Unity, Windows or the display?, the instant feedback and fast framerate is what gives iOS the unshakable feeling you’re interacting with the object for real versus just interacting with a computer. Im sure the presentations will make them waay more productive (sarcasm) but hey people want this stuff then hey :-)