UDKOSC

From CCRMA Wiki
Revision as of 06:33, 18 October 2013 by Rob (Talk | contribs) (Pieces, Projects & Papers)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

UDKOSC is an implementation of the Unreal3 engine built using the Unreal Development Kit(UDK) with an integrated OscPack Windows dll linked to custom UnrealScript classes.

By linking UDKOSC's UnrealScript classes to a customized oscpack Open Sound Control c++ implementation, actions and motions taken by virtual actors in the Unreal3 game engine are encapsulated as OSC messages over UDP and can be used to control dynamic systems - music and sound synthesis systems or any other OSC-enabled system - in a manner similar to q3osc.

UDKOSC takes OSC input as well, allowing external OSC control of the main Player, "Bot" Pawns, the player Camera and projectile targeting as well.


UDKOSC Valkordia in flight in Echo::Canyon
UDKOSC Seeking projectiles tracking Target projectiles


Github Repo and Installer

Source for UDKOSC and helper applications can be downloaded from github:


The 2012-12 UDKOSC installer package and the udkosc .dll can be downloaded from:


Overview

UDKOSC is the fourth project in a lineage of integrating virtual worlds and environments with interactive audio and music servers. Each of these projects has shared a common goal of creating shared and distributed musical performance spaces. Like our custom Sirikata implementation for the 2009 MiTo festival, q3osc and Maps & Legends before, UDKOSC combines a game-based virtual world implementation (in this case the Unreal Development Kit or UDK) with customized classes to stream game-data to interactive sound-servers using Open Sound Control messages over UDP. In this manner, gestures, motions and actions from actors in virtual space can be transformed in real-time into control messages for complex audio and musical software systems.

While the UDK offers only free access to the engine's UnrealScript programming layer (leaving the core C++ engine accessible only through significant financial investment) UnrealScript has a provision for binding Windows Win32 .dll's to UnrealScript classes, enabling code such as a C++ implementation of Open Sound Control (in this case OSCPack) to provide bi-directional communication between game engine and sound-server. By then creating mirrored data structures both in UnrealScript classes and in the Windows .dll, data can be passed back and forth between the UDK and any OSC-enabled control system or software, including ChucK, Supercollider, Pure Data (PD) and Max/MSP.

For UDKOSC, a custom Windows oscpack_1_0_2.dll was compiled with specific extern methods and mirrored data structures to communicate with the game engine, both to stream specific game data out as OSC over UDP (including Pawn XYZ coordinate positioning, XYZ coordinate tracking for in-game projectiles, state and XYZ coordinate info for Static Mesh and Interp actor classes) and to send control data from iPad controllers and from OSC-generating scripting languages (or even the audio-engine itself) back into the game to control pawn, camera and game parameters, including specific positioning information for projecties, bots and actors.


Currently, OSC output from game engine includes:

  • Player and Bot X, Y and Z coordinate data
  • Player Pitch, Yaw and Roll rotation
  • Projectile X, Y and Z coordinate data
  • Static mesh objects X, Y and Z coordinate data
  • Static mesh "bump" event
  • Static mesh "takedamage" event

UDKOSC can receive OSC control input in the following ways:

  • Player and Bot X, Y, Z movement vector data
  • Player and Bot Rotation
  • Player and Bot Speed
  • Player and Bot Jump + Jump Height
  • Player and Bot teleport coordinates (X, Y, Z)
  • Camera X, Y, Z movement vector data
  • Camera Pitch, Yaw, Roll control data
  • Camera Speed
  • Camera mode messages
  • "Large" Projectile homing-target coordinates

Custom engine features include:

  • Player and Camera motion control over OSC
  • User-controlled camera mode switching (static, folllow, mouse-controlled 3D rotation)
  • User-controlled player mesh switching
  • Custom flight controls and pawn animation integration (speed of animation, banking, etc)
  • Mouse-turn smoothing
  • bouncing projectiles (customized OSCProj_ShockBall and OSCProj_LinkPlasma)
  • global projectile destructor exec command
  • homing/seeking projectiles (OSCProj_SeekingShockBall and OSCProj_SeekingRocket)
  • projectiles tracking projectiles
  • projectiles tracking OSC Input vector coordinates
  • OSC Interp Actor and Trigger classes to send OSC on move and trigger events

Pieces

Echo::Canyon was premiered at the 2013 CCRMA Music and Games concert:


Papers and other Writings

The Music In Virtual Worlds blog holds a number of posts detailing processes in UDKOSC:


UDKOSC was first used in performance at the 2010 September 7,8 performances of Tele-Harmonium and Perkussionista in Milano, Italy at the 2010 MiTo (Milano-Torino) Festival.


CMMR 2013 UDKOSC paper:

  • Musical Sonification of Avatar Physiologies, Virtual Flight and Gesture: hamilton_CMMR_2013.pdf


NIME 2013 UDKOSC paper:


An overview of UDKOSC and its usage at the MiTo festival can be found in this Springer Journal paper:


ICMC 2011 UDKOSC paper:


Projects and Links

Interview and Procedural Audio demo by Graham Gatheral:

Custom Functionalities

  • Player Pawn outputs location, landed, crouch events over OSC
  • Homing projectiles (ShockBalls, SeekingShockBalls)
    • Can be assigned to track other projectiles (ShockBalls), UTVolumes or targeted locations (via left-mouse fire trigger)
    • Can be resized; size param is sent over OSC
    • Bounce and Destroyed events tracked over OSC
    • Instance numbering and class name/type tracked over OSC
    • ShockBall projectiles can target XYZ coordinates input via OSC
  • InterpActors track position deltas over OSC
    • takeDamage, bump and touch events output OSC
  • Triggers fire triggeron, triggeroff events over OSC
  • Gravity and GameSpeed can be set via OSC
  • OSC can be used to control player movement (X, Y, Z vector directions, Speed and Jump)
  • OSC can be used to control camera movement (X, Y, Z, Pitch, Yaw, Roll, Speed)


Custom Classes and Files

UDK\UDK-2010-07\Binaries\Win32\UserCode

oscpack_1_0_2.dll

UDK\UDK-2010-07\UDKGame\Config

DefaultGame.ini
DefaultOSC.ini
DefaultUT3OSC.ini
DefaultEngine.ini
DefaultInput.ini 
NOTE: Default .ini files generate UDK*.ini files when the engine runs.  As such, make sure to delete UDK*.ini files after an svn update.

UDK\UDK-2010-07\Development\Src\UT3OSC\Classes

ActorFactoryOSCInterpActor.uc
ActorFactoryOSCKActor.uc
ActorFactoryOSCKActorFromStatic.uc
ActorFactoryOSCStaticMeshActor.uc
DefaultGame_QT3OSC.ini
OSCInterpActor.uc
OSCKActor.uc
OSCKActorFromStatic.uc
OSCParams.uc
OSCPawn.uc
OSCPlayerController.uc
OSCPlayerControllerDLL.uc
OSCProj_LinkPlasma.uc
OSCProj_ShockBall.uc
OSCProj_SeekingShockBall.uc
OSCProj_SeekingRocket.uc
OSCSeekingShockBallLight.uc
OSCStaticMeshActor.uc
OSCTrigger.uc
OSCWeap_LinkGun.uc
OSCWeap_ShockRifle.uc
OSCWeap_RocketLauncher_Content.uc
OSCWeap_SeekingShockRifle.uc
OSCWorldInfo.uc
ut3osc.uc


Helpful Console Commands

From: http://udn.epicgames.com/Three/ConsoleCommands.html

  • spawnpawnbot
  • OscCheckPawnBots
  • OscPawnMove


UDKOSC Exec Methods

Exec methods can be run from the UDK command-line in-game. The command-line can be accessed by pressing "~" for the full drop-down terminal window or by pressing "TAB" for the single-line window-bottom command-line. These are the custom UT3OSC exec methods that have been implemented to this point:

  • setAudioGroupVolume Master 0
  • behindview
  • changeplayermesh <1-4>
  • sidetrace <float distance>
  • pawntrace <float distance>
  • behindviewset 15 0 -90
  • spawnpawnbot
  • OscCheckPawnBots
  • OscPawnMove
destroyAllProjectiles
destroyAllShockBalls (optional bool)
destroyShockball (#, optional bool)
OSCStartOutput
OSCStopOutput
OSCStartInput
OSCSendDeltas
setOSC [string, int]
setOSCHostname [string]
setOSCPort [int]
getOSC
getOSCHostname
getOSCPort
setLockHomingTargets
setSpeedSeekingShockBall
setSpeedSeekingRocket
setSpeedShockBall
freezeShockBall
setGroundSpeed [float]
getGroundSpeed
setAirSpeed [float] default:440.0
getAirSpeed 
initOSCFingerTouches [bool]
setSeekingShockBallTargetClassName [int] (1=ShockBalls, 2=UTVolumes)
increaseSizeSeekingShockBall [float]
decreaseSizeSeekingShockBall [float]
setSeekingTurnRate [float] ~ 1.0 -> 30.0
*setSpeedSeekingRocket [float]
*setRadiusSeekingRocket
*setRangeSeekingRocket

*=doesn't work


Key Binds

moveallprojectiles 0 0 3000
setSpeedSeekingShockBall 0, 300, 700, 1000 [map to number-pad horizontals]
setProjectileTargets X Y Z


Adding key-bindings to UDKGame\Config\DefaultInput.ini:

;-----------------------------------------------------------------------------------------
; UDKOSC Bindings
;-----------------------------------------------------------------------------------------
.Bindings=(Name="one",Command="OSCStartOutput",Control=False,Shift=False,Alt=True)
.Bindings=(Name="two",Command="OSCStopOutput",Control=False,Shift=False,Alt=True)
.Bindings=(Name="three",Command="OSCStartInput",Control=False,Shift=False,Alt=True)
.Bindings=(Name="four",Command="OSCSendDeltas",Control=False,Shift=False,Alt=True)
.Bindings=(Name="nine",Command="DestroyAllShockballs True",Control=True,Shift=False,Alt=True)
.Bindings=(Name="nine",Command="DestroyAllShockballs",Control=False,Shift=False,Alt=True)
.Bindings=(Name="zero",Command="DestroyAllProjectiles",Control=False,Shift=False,Alt=True)
.Bindings=(Name="F",Command="FlyWalk",Control=True,Shift=False,Alt=False)
.Bindings=(Name="seven",Command="freezeShockBall",Control=False,Shift=False,Alt=True)
.Bindings=(Name="BackSlash",Command="setSeekingShockBallTargetClassName 2",Control=False,Shift=False,Alt=True)
.Bindings=(Name="BackSlash",Command="setSeekingShockBallTargetClassName 1",Control=True,Shift=False,Alt=False)
.Bindings=(Name="Equals",Command="increaseDrawScaleSeekingShockBall .01",Control=False,Shift=False,Alt=True)
.Bindings=(Name="Underscore",Command="decreaseDrawScaleSeekingShockBall .01",Control=False,Shift=False,Alt=True)

OSC Output and Input

Pawn output:

/pawn 1 85.474144 -48.000000 -479.850006 0 

<tag> <player-id> <X float> <Y Float> <Z float> <crouch int>

Player output:

/player "bob" 85.474144 -48.000000 -479.850006 [True] 
<tag> <player-name> <X float > <Y float > <Z float> <crouch bool>

Projectile output:

/projectile "OSCProj_ShockBall_3" "shockball" 0 -1830.275513 -19.010612 1.015289 1 0 
<projectile-name_instanceCount string> <projectile-type string> <instance-count int> <X float> <Y float> <Z float> <Bounce int> <Destroyed int>

current projectile-names: OSCProj_LinkPlasma, OSCProj_SeekingRocket, OSCProj_ShockBall
current projectile-types: "plasma", "seekingrocket" "shockball" "seekingshockball"

/gameGravity <value float>
/gameSpeed <value float>

iPad finger targeting for ShockBall homing OSC Input

/fingers <X1 float> <Y1 float> <Z1 float> <on1 float> ... <X5...

Static Mesh/Interp Actor output:

/mesh "OSCInterpActor_2" "mesh" "touch" 202.886230 -111.999939 -543.306702 

Trigger output (name is set as "Tag" in editor

/trigger "Trigger"

OSC INPUT Coding Notes:

- OSCProj_ShockBall.uc executes code where incoming OSC messages are polled from the oscpack dll
- OSCPawn.uc contains the calls for incoming OSC
- struct OSCFingerController is a 20 value (float) struct that is populated from the dll for FingerTouch data
- dll import calls for input made in OSCPawn:

dllimport final function OSCFingerController getOSCFingerController();
dllimport final function initOSCReceiver();
dllimport final function OSCGameParams getOSCGameParams();
dllimport final function float getOSCGameSpeed();
dllimport final function float getOSCGameGravity();

- game speed is polled each tick from getOSCGameSpeed()


- in osc.cpp of the oscpack .dll, gravity is set with:

__declspec(dllexport)float getOSCGameGravity()
{
  return OSCGameParamsStruct.gameGravity;
}

- value is set with:

}else if( strcmp( m.AddressPattern(), "/gameGravity" ) == 0 ){
  osc::ReceivedMessageArgumentStream args = m.ArgumentStream();
  float a1;
  args >> a1 >> osc::EndMessage;
  OSCGameParamsStruct.gameGravity = a1;
 
- struct is defined in osc.h

struct OSCGameParams
{
 float gameGravity;
 float gameSpeed;
};

To Turn on OSC Input:

- Alt+3
- prints Testing messages and Hello World to Terminal for confirmation
- initOSCFingerTouches [bool] will start osc data streaming in (port 7001) to IP from iPad controller

Maybe can repurpose getOSCGameGravity in OSCPawn.uc and dll:

- comment out gravity use in OSCPawn:
	if( localOSCGameParamsStruct.gameGravity != lastGameGravity ) 
	{
		setGrav(localOSCGameParamsStruct.gameGravity);
	}

Getting Started

Install UDK

Install UDKOSC

  • Follow the Subversion installation instructions below to install files to the correct locations.

There are only 4 locations where files need to be instlled:

  • UDK-2010-07\Development\Src\UT3OSC: these are the custom OSC UnrealScript classes
  • UDK-2010-07/Binaries/Win32/UserCode: the oscpack windows dll
  • UDK-2010-07/UDKGame/Config: the custom default config files
  • UDK-2010-07/UDKGame/Content/Maps: custom maps go here

Open UnrealFrontend to compile UT3OSC

  •  ?game=UT3OSC.UT3OSC should be pasted into the "Extra Options" field
  • check the "show log" check box to see debug messages in the console
  • in 2012-05 sometimes baking is required to run project (not sure why)

Launch UDKOSC

  • DETAILS COMING SOON

Launch Map

  • DETAILS COMING SOON

Supercollider

  • Default input port 57120

SETUP OSC CLIENT FOR MONITORING

  • DETAILS COMING SOON

Timeline

UDKOSC Development Timeline

random notes

Shortcuts

Link to Disable Windows key:

http://support.microsoft.com/?id=216893
Hide HUD and Weapon: togglescreenshotmode
http://udn.epicgames.com/Three/CharactersTechnicalGuide.html#Inventory and Weapons: WeaponFired [weapon] [bViaReplication] [hitLocation]
http://www.moddb.com/games/unreal-tournament-3/tutorials/unreal-learning-1-my-first-unreal-tournament-3-mutator
default gravity (game specific) - set in defaultgame.ini
Default value: -520.0
ProjectileList http://wiki.beyondunreal.com/UE3:WorldInfo_internal_variables_(UDK)

Moving to July UDK

Add UT3OSC references to UDKGame\Config\DefaultGame.ini

[Engine.GameInfo]
DefaultGame=UT3OSC.UT3OSC
DefaultServerGame=UT3OSC.UT3OSC
PlayerControllerClassName=UT3OSC.OSCPlayerControllerDll
DefaultGameType="UT3OSC.UT3OSC";


Add ModEditPackages line to section in UDKGame\Config\DefaultEngineUDK.ini

[UnrealEd.EditorEngine]
+EditPackages=UTGame
+EditPackages=UTGameContent
+EditPackages=CastleGame
ModEditPackages=UT3OSC

Exposed OSC Methods

Adding Hostname and Port param to structs to allow for multiple/dynamic OSC targets

sendOSCPlayerState(PlayerStateStruct)
- OSCPawn::Tick

- Hostname   (string)
- Port       (int)
- PlayerName (string)
- Location X (float)
- Location Y (float)
- Location Z (float)
- Crouch     (bool)

sendOSCpointClick(PointClickStruct)

- Hostname                 (string)
- Port                     (int)
- TraceHit                 (string)
- TraceHit_class           (string)
- TraceHit_class_outerName (string)
- Location X               (float)
- Location Y               (float)
- Location Z               (float)
- HitInfo_material         (string)
- HitInfo_physmaterial     (string)
- HitInfo_hitcomponent     (string)

DLL Binding

"A single UnrealScript class can bind to only a single DLL. The DLL to bind to is specified with the DLLBind directive, and the DLL name to bind to is specified in parentheses. Do not include a path or .DLL extension. DLLs can only be loaded from the Binaries\Win32\UserCode folder."
- http://udn.epicgames.com/Three/DLLBind.html

Also TCP/IP Link:

http://forums.epicgames.com/showthread.php?t=740321

Network Latency overview from Valve

http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

http://blogs.valvesoftware.com/abrash/latency-the-sine-qua-non-of-ar-and-vr/

My Posts

http://forums.epicgames.com/showthread.php?p=27580921#post27580921

http://forums.epicgames.com/showthread.php?p=27580950#post27580950

http://forums.epicgames.com/showthread.php?t=742848

http://forums.epicgames.com/threads/927220-Remote-Actor-and-Camera-control-with-UDKOSC-and-OSCControl?p=30740607#post30740607

Scripting

http://okita.com/alex/?page_id=474

http://okita.com/alex/?p=444

http://forums.epicgames.com/showthread.php?t=736141

http://forums.epicgames.com/forumdisplay.php?f=367&order=desc&page=19

Trace location distance (Pawn to surface/object)

http://forums.epicgames.com/threads/893500-Trace-length

Graphic Settings:

http://forums.epicgames.com/showthread.php?t=721052&highlight=Video+settings+menu

UDK dev environment

http://udn.epicgames.com/Three/ExecFunctions.html#Debugging

http://forecourse.com/unreal-tutorials/

http://forecourse.com/unreal-tutorials/#UnrealScript%21

http://wiki.pixelminegames.com/index.php?title=Tools:nFringe


http://forums.epicgames.com/showthread.php?t=722792

http://forums.beyondunreal.com/showthread.php?p=2405761

SKELETON/BONES w/Unrealscript (for Kinect):

http://udn.epicgames.com/Three/UsingSkeletalControllers.html


BOTS/AI:

http://www.moug-portfolio.info/udk-ai-pawn-movement/


VIDEO CAPTURE:

http://udn.epicgames.com/Three/CapturingCinematicsAndGameplay.html


SPAWNING: http://forums.epicgames.com/threads/884933-Placing-Static-Mesh-Actor-into-map-via-UnrealScript

REPLICATION:

http://forums.epicgames.com/showthread.php?t=743111&highlight=class+member+function

http://forums.epicgames.com/showthread.php?t=741953&highlight=replication

http://law3d.blogspot.com/

http://udn.epicgames.com/Three/GameStateReplication.html

http://udn.epicgames.com/Three/NetworkingOverview.html#Projectiles

http://wiki.beyondunreal.com/User:Wormbo/Everything_you_ever_wanted_to_know_about_replication_%28but_were_afraid_to_ask%29

http://forums.epicgames.com/threads/877704-Networking-and-understanding-multiplayer-in-UDK

http://udn.epicgames.com/Three/ReplicationHome.html

http://8pointfont.blogspot.gr/2012/02/replication-of-variables-in-udk.html

http://forums.epicgames.com/threads/719871-TUTORIAL-Replicating-a-flashlight-s-state


Overview:

http://www.theballthegame.com/tutorialudk.htm

http://www.hourences.com/book/tutorialsindex.htm

Adding Classes to World Editor:

http://forums.epicgames.com/showthread.php?t=715530

Windows Multithreading c++:

http://www.cppgameprogramming.com/cgi/nav.cgi?page=multithreading

http://www.devarticles.com/c/a/Cplusplus/Multithreading-in-C/


Weapon Modding:

http://forums.epicgames.com/showthread.php?t=716665

http://udn.epicgames.com/Three/WeaponsTechnicalGuide.html

http://forums.epicgames.com/showthread.php?t=708422

Unreal Script calling Windows dll:

http://udn.epicgames.com/Three/DLLBind.html

OSC dlls:

http://www.frieder-weiss.de/OSC/OSC-DLL.htm

http://www.bespokesoftware.org/wordpress/?page_id=69

http://www.3dvia.com/forums/topic/opensoundcontrol-osc-bb-s-released-under-gpl/page/3

Windows OSC utilities:

http://www.frieder-weiss.de/OSC/

Creating Windows C++ dlls:

http://msdn.microsoft.com/en-us/library/1ez7dh12.aspx

http://www.tutorialspoint.com/dll/dll_writing.htm

UDK Tutorials (video):

http://www.3dbuzz.com/vbforum/sv_videonav.php?fid=292838127fecccd8b151c72003546386

http://utmapping.wikidot.com/how-to-build-a-simple-cube-map

Basic Level Building Tutorials:

Windows VS2010 stuff:

http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/ea11890e-247b-4640-82a9-d6f657c36afa

http://social.msdn.microsoft.com/forums/en-US/vclanguage/thread/d8c0ba83-a619-443f-b194-20a1fbbf7bd7

http://msdn.microsoft.com/en-us/library/28d6s79h(VS.80).aspx

Linker Settings for VS2010 (necessary to compile):

http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/ea11890e-247b-4640-82a9-d6f657c36afa

http://www.gamedev.net/community/forums/topic.asp?topic_id=185053

(right-click project > Properties > Linker > Input > add to "Additional Dependencies" Ws2_32.lib;WINMM.lib; )

Homing Missles:

http://board.flashkit.com/board/archive/index.php/t-175556.html

Packaging:

http://forums.epicgames.com/showthread.php?t=734728&highlight=PACKAGE+GAME&page=2

Overall Process:

http://developer.download.nvidia.com/udk/Whizzle_Creation_Document_1_2.pdf

Keyboard input overview:

http://okita.com/alex/?p=740

class reference:

http://forums.epicgames.com/showthread.php?t=739124&highlight=actor+tag+instance

general location:

http://okita.com/alex/?p=787

vectors:

http://chimeric.beyondunreal.com/tutorials/vectors.php

http://chortle.ccsu.edu/VectorLessons/vectorIndex.html#01

http://wiki.ioquake3.org/Vectors

http://wiki.beyondunreal.com/Legacy:UnrealScript_Vector_Maths

http://wiki.beyondunreal.com/Legacy:Useful_Maths_Functions

ShuttlePro Drivers:

http://retail.contourdesign.com/?/products/23


MOUSE LOOK (for smoothing): http://utforums.epicgames.com/showthread.php?t=743907

ROTATION IN WORLD SPACE:

http://forums.epicgames.com/archive/index.php/t-763361.html

http://forums.epicgames.com/archive/index.php/t-929612.html

http://allarsblog.com/blog/2010/03/31/creating-a-third-person-camera/

Links

UDKOSC on github: https://github.com/robertkhamilton/udkosc

Chris Platz's website: http://www.chrisplatz.com

Gram Gatheral interview about his work with UDKOSC: http://designingsound.org/2011/06/audio-implementation-greats-11/

Grahm Gatheral's website: http://www.gatheral.co.uk/

OSCControl Gestures

# Single-pawn circle
playermove teleport 0 1000 1 0
playermove x 1 0
playermove yaw 0 0 0
playermove speed 400 0
playermove yaw 360 2000 0
playermove stop 0
# Single-pawn square
playermove teleport 0 1000 1 0
playermove x 1 0
playermove yaw 0 0
playermove speed 400 0
wait 1000
playermove yaw 90 0
wait 1000
playermove yaw 90 0
wait 1000
playermove yaw 90 0
wait 1000
playermove yaw 90 0
playermove stop 0
#37 pawn "NIME" 
playermove teleport 2000 600 1000 36
playermove teleport 2000 700 1000 35
playermove teleport 1850 600 1000 34
playermove teleport 1850 700 1000 33
playermove teleport 1700 600 1000 32
playermove teleport 1700 700 1000 31 
playermove teleport 1700 800 1000 30
playermove teleport 1800 800 1000 29
playermove teleport 1900 800 1000 28
playermove teleport 2000 800 1000 27
playermove teleport 1700 1000 1000 26
playermove teleport 1800 1000 1000 25
playermove teleport 1900 1000 1000 24
playermove teleport 2000 1000 1000 23 
playermove teleport 1750 1050 1000 22
playermove teleport 1800 1100 1000 21 
playermove teleport 1850 1150 2000 20
playermove teleport 1800 1200 1000 19
playermove teleport 1750 1250 1000 18 
playermove teleport 1700 1300 1000 17
playermove teleport 1800 1300 1000 16
playermove teleport 1900 1300 1000 15
playermove teleport 2000 1300 1000 14 
playermove teleport 1700 1500 1000 13
playermove teleport 1800 1500 1000 12
playermove teleport 1900 1500 1000 11
playermove teleport 2000 1500 1000 10
playermove teleport 1700 1700 1000 9
playermove teleport 1800 1700 1000 8
playermove teleport 1900 1700 1000 7
playermove teleport 2000 1700 1000 6
playermove teleport 1900 1800 1000 5
playermove teleport 1800 1900 1000 4
playermove teleport 1700 2000 1000 3
playermove teleport 1800 2000 1000 2
playermove teleport 1900 2000 1000 1
playermove teleport 2000 2000 1000 0

Gesture Notes

  • "playermove teleport" won't succeed if Z value is "0"; needs to be at least 1 to avoid collision with floor (in simple demo room map).

http://research.microsoft.com/en-us/um/people/hoppe/proj/dance/


OSC Notes

  • /oscplayer.rb localhost 57120 false < ./yml/pawn_0_spiral.yml
  • ./sendOSC -h 127.0.0.1 57120 '/udkosc/script/playermove,.1,.2,.3,.4'


Oculus Rift UDK Integration Notes

UDKOSC and Oculus Rift


DEV NOTES

UDKOSC_DEV


Video Card Issues (ASUS)

http://btoforums.com/showthread.php?p=15112#post15112

http://support.asus.com/faq/detail.aspx?SLanguage=en&p=3&m=G73Jh&s=252&hashedid=8je5Ot4HBnKOdT81&os=30&no=4A5AE8E2-F82C-944C-C3E2-817A69A68922


http://answers.microsoft.com/en-us/windows/forum/hardware/no-overscanscaling-options-for-amdati-drivers/420ee84a-07df-47a1-9128-876734df2884
Same problem too, no CCC now so you neet to open Regedit and go to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentContr…
Then, you will see some random numbers like {00112233445566778899AABBCCDDEE}
Check all of them, then, on the ones that have the Subkey 0000 or 0001 There will be a string named  
something like: DALR6 DFP1920x1080x0x60
That is my resolution right now (1920 x 1080 at 60 fps)
That will be filled with 00 00 00 zeroes and if it have a 08, change it to 00.
Look for that key on both 0000 and 0001.

Final key is something like:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentContr… DFP1920x1080x0x60

Look for the 08 bit inside the string and change to 00. Remember to backup your registry, restart and    
bars should be gone.