UDKOSC
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.
Contents
- 1 Github Repo and Installer
- 2 Overview
- 3 Pieces
- 4 Papers and other Writings
- 5 Projects and Links
- 6 Custom Functionalities
- 7 Custom Classes and Files
- 8 Helpful Console Commands
- 9 UDKOSC Exec Methods
- 10 OSC Output and Input
- 11 Getting Started
- 12 Timeline
- 13 random notes
- 14 Links
- 15 OSCControl Gestures
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:
- Concert video: http://www.ustream.tv/recorded/31968509
- demo render: http://www.youtube.com/watch?v=Tbr9IISxl3Q
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.
- Teleharmonium: http://vimeo.com/15792555
CMMR 2013 UDKOSC paper:
- Musical Sonification of Avatar Physiologies, Virtual Flight and Gesture: hamilton_CMMR_2013.pdf
NIME 2013 UDKOSC paper:
- "Sonifying Game-Space Choreographies With UDKOSC": https://ccrma.stanford.edu/~rob/papers/hamilton_NIME_2013.pdf
An overview of UDKOSC and its usage at the MiTo festival can be found in this Springer Journal paper:
- "Multi-modal musical environments for mixed-reality performance": https://ccrma.stanford.edu/~rob/papers/springer_jmui_hamilton.pdf
ICMC 2011 UDKOSC paper:
- "UDKOSC: An Immersive Musical Environment": https://ccrma.stanford.edu/~rob/papers/udkosc-an-immersive-musical-environment.pdf
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
- ToggleScreenShotMode
- SetRes 1920x1080w (w=windowed, f=fullscreen)
- reald togglestereo (from http://forums.epicgames.com/threads/909651-RealD-3D-Support-Thread)
- 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 July version of the UDK from: July 2010 UDK Beta (777 MB .exe)
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
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
Scripting
http://okita.com/alex/?page_id=474
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://udn.epicgames.com/Three/GameStateReplication.html
http://udn.epicgames.com/Three/NetworkingOverview.html#Projectiles
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:
class reference:
http://forums.epicgames.com/showthread.php?t=739124&highlight=actor+tag+instance
general location:
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).
- Thread on programmatically moving limbs: http://forums.epicgames.com/threads/734592-Making-a-Skeletal-Control-to-move-an-arm
- Skeletal Mesh and sockets: http://udn.epicgames.com/Three/SkeletalMeshSockets.html#Using sockets
- Windows multitouch example: http://msdn.microsoft.com/en-us/windows7trainingcourse_win7multitouchmfc_topic2.aspx
- Windows multitouch home: http://msdn.microsoft.com/en-us/gg464993
- Sample Code from Intel: http://software.intel.com/en-us/articles/touch-samples
- UDK Gesture tracking example: http://forums.epicgames.com/threads/949758-Source-Guide-Gesture-Recognition
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
DEV NOTES
Video Card Issues (ASUS)
http://btoforums.com/showthread.php?p=15112#post15112
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.