Hello, fellow devs 
Ive made a little dll for my thesis, so i though i shared it with you(i wanted to see if it works on other 3DConnexion mice).
http://matrix-bf.ic.cz/dll/DI3dCnnxn.dll (i hope the site doesnt crash, suggest alternative sites though)
put it in your UDK/Binaries/Win32/UserCode
This dll uses directInput, so it should work without driver of the mouse.
DLL polls the mouse, so if your fps goes down, you probably get too sensitive input.
Buttons arent supported yet, so you will have to use 3Dx drivers for getting button presses.
Heres UScript Code
In your gameinfo:
In your controller:
In your playerInput
note: tested on SpacePilot pro
note: I am using UDK November 2012

Ive made a little dll for my thesis, so i though i shared it with you(i wanted to see if it works on other 3DConnexion mice).
http://matrix-bf.ic.cz/dll/DI3dCnnxn.dll (i hope the site doesnt crash, suggest alternative sites though)
put it in your UDK/Binaries/Win32/UserCode
This dll uses directInput, so it should work without driver of the mouse.
DLL polls the mouse, so if your fps goes down, you probably get too sensitive input.
Buttons arent supported yet, so you will have to use 3Dx drivers for getting button presses.
Heres UScript Code
In your gameinfo:
Code:
class YourGame extends UTGame; DefaultProperties { PlayerControllerClass = class'YourProject.YourPlayerController' }
Code:
class YourPlayerController extends UTPlayerController; DefaultProperties { InputClass=class'YourProject.YourPlayerInput' }
Code:
class YourPlayerInput extends UDKPlayerInput within YourPlayerController DLLBind(DI3dCnnxn); //these are not necessary, i added them for my project var input float aPitch; var input float aYaw; var input float aRoll; var float PitchRotationSpeed; var float YawRotationSpeed; var float RollRotationSpeed; //-----------------3D Mouse definitions-------------------- var int SelectedDevice; var bool b3DMouseConnected; //--------------------------------------------------------- //------------------DLLBind definitions-------------------- struct SPACEPILOTSTATE { var float TX; /* x-axis position */ var float TY; /* y-axis position */ var float TZ; /* z-axis position */ var float RX; /* x-axis rotation */ var float RY; /* y-axis rotation */ var float RZ; /* z-axis rotation */ var int rglSlider[2]; /* unnecessary, does nothing */ var int rgdwPOV[4]; /* unnecessary, does nothing */ var byte rgbButtons[32]; /* 32 buttons not supported yet */ }; const R_OK = 0; const R_FAILED = -1; dllimport final function int Init3dCnnxn(); dllimport final function int Exit3dCnnxn(); dllimport final function int GetData(out SPACEPILOTSTATE state); dllimport final function int GetSelectedDevice(); dllimport final function int SetDeadzone(float translationDZ, float rotationDZ); dllimport final function int GetNumberOfDevices(); dllimport final function int GetTestNumber(); //----------------DLLBind definitions end------------------ //--------------------------------------------------------- function InitInputSystem() { super.InitInputSystem(); b3DMouseConnected = false; if(Init3dCnnxn() == R_OK){ b3DMouseConnected = true; } } function CloseSystem() { } function Destroy() { CloseSystem(); } event PlayerInput( float DeltaTime ) { local float TimeScale, DeltaT; local SPACEPILOTSTATE sps; local int num; DeltaT = DeltaTime; DeltaTime /= WorldInfo.TimeDilation; if (Outer.bDemoOwner && WorldInfo.NetMode == NM_Client) { DeltaTime /= WorldInfo.DemoPlayTimeDilation; } num = GetData(sps); //Add to axis you want. I added 3 for rotation. if(num == R_OK) { aBaseY += sps.TX/3200; aStrafe += sps.TY/3200; aUp += sps.TZ/3200; aRoll += sps.RX/5000; aPitch += sps.RY/5000; aYaw += sps.RZ/5000; } //GetALocalPlayerController().ClientMessage("TX"@sps.TX@"TY"@sps.TY@"TZ"@sps.TZ@"RX"@sps.RX@"RY"@sps.RY@"RZ"@sps.RZ); // Scale to game speed TimeScale = 100.f*DeltaTime; aPitch *= TimeScale * PitchRotationSpeed; aYaw *= TimeScale * YawRotationSpeed; aRoll *= TimeScale * RollRotationSpeed; Super.PlayerInput(DeltaT); } DefaultProperties { PitchRotationSpeed = 1200 YawRotationSpeed = 1200 RollRotationSpeed = 1200 SelectedDevice = 0 }
note: I am using UDK November 2012