*-----**-----**-----**-----**-----**-----**-----**-----**-----**-----* Unity3d + OpenTSPS Example project Created by James George art: http://www.jamesgeorge.org/ | com: http://www.flightphase.com *-----**-----**-----**-----**-----**-----**-----**-----**-----**-----* November 24th 2010 This project provides a template and example project for combining the Toolkit for Sensing People In Spaces (http://www.opentsps.com) with Unity3d Game Engine (http://www.unity3d.com) a video example of the project is on my vimeo page http://vimeo.com/17177478 INSTRUCTIONS *-----**-----**-----**-----**-----* Step 1: Download the Unity example in this repository https://github.com/obviousjim/OpenTSPS_Unity3d_Extension Step 2: Download a compiled binary of openTSPS from openTSPS.com Step 3: Set up your video camera to track some people. This requires some pretty specific and stable lighting. If it's not convenient see below for alternatives for prototyping applications with OpenTSPS/Unity3d Step 4: Start up OpenTSPS and configure the OSC communication to send to appropriate host/port. Most likely you're running these on the same computer, so you can specify IP of localhost and use the default OpenTSPS port 12000 Step 5: Double click the OpenTSPSExample.unitypackage project. This will import the example scene into your current Unity Project if you have one open. Double click the openTSPSReceiver scene to check out the example. Hit play. If are people in your TSPS scene you should see little cubes moving around tracing their position. Now you can take it from here! SCENE SET UP *-----**-----**-----**-----**-----* The example project creates a cube for each person in the scene and moves it along as the person moves across a 3d platform. OpenTSPSUnityListener.cs script is attached to an empty object. This object begins listening for OpenTSPS messages on game start up and then instantiates / moves / destroys cubes as they are received. INCLUDED SOURCE FILES *-----**-----**-----**-----**-----* OpenTSPSUnityListener.cs An example script that can be added to the an empty game object that will then receive TSPS messages. This is an implementation of the OpenTSPSListener interface class This object also moves the cubes around within the scene. OpenTSPSListener.cs Interface for TSPS listeners. Classes implementing this interface can listen to TPSP messages. OpenTSPSReceiver.cs Internal code that handles OSC messages and calls back to attached OpenTSPSListeners OpenTSPSPerson.cs Container class for an OpenTSPS Person object which is created for each person in the scene OSC.NET/ includes an OSC implementation for Unity3d in C# WEB CAM ALTERNATIVES: *-----**-----**-----**-----**-----* If access to a good people tracking set up isn't convenient there is a great program called CamTwist for OS X that can play quicktime movie as a WebCam. This lets OpenTSPS use a movie file as input instead of a live camera. http://allocinit.com/index.php?title=CamTwist You'll need a good video to test it with. Theo Watson has some test videos that work well with people tracking. Any of the overhead ones will do http://muonics.net/cvMovies/ here are some more security-camera movies that work fairly well with TSPS: http://homepages.inf.ed.ac.uk/rbf/CAVIARDATA1/ ACKNOWLEDGMENTS *-----**-----**-----**-----**-----* The OSC implementation for Unity+TSPS is taken from the OSCuMote project: http://forum.unity3d.com/threads/21273-OSCuMote-Wiimote-support-for-the-free-version Which builds upon some code from the Unity/TUIO project Big props to the OpenTSPS project for leading the way. from the TSPS page: "TSPS was started as a collaboration between the LAB at Rockwell Group and the LABS at IDEO. It began as an initiative between Dave Vondle (IDEO) and Joshua Walton (LAB at Rockwell Group) with many of the key components generated through the hard work of James Tichenor, Brett Renfer, and James George who in turn also used components from the openframeworks community, who in turn built upon many open source projects. Special thanks to the teams that develop Openframeworks, OpenCV, and the many individuals who are all working on creating better computer vision systems." community contributors include: Joshua Walton & James Tichenor (http://lab.rockwellgroup.com) Brett Renfer (http://robotconscience.com/) myself (http://www.jamesgeorge.org) Zack Boka (http://www.zackboka.com) Jeff Crouse (http://www.jeffcrouse.info/) ...and others