Member Since []
[OP] 127 views 0 replies Posted by Unknown 7 years ago Mar 29, 2:49 am

IAWBNcf.pngI've been working with @Dfox for the past week to get the 3Dconnexion Space Navigator to work with Star Citizen without having to use any vJoy drivers or AutoHotkey scripts. This morning I made a bit of a breakthrough that got this to a good working state with

For many months now most everyone working with the Space Navigator has been focused on using AutoHotkey scripts to map axis and control input levels. One of the things we were all doing was mapping the natural axis of the SN to that actions we wanted them to perform in SC. Earlier in the week I posted some of my first attempts at an XML file for control mapping that used the native KMJ (keyboard/mouse/joystick) driver from 3Dconnexion. The biggest problem still remaining was that I was finding that getting the sensitivities to a decent point was nearly impossible. Too many of the curve and exponent settings in Star Citizen's control mapping xml were not and still are not fully implemented.

The breakthrough was realizing that the KMJ driver could map the axis to what the game expects rather than doing the mapping within the SC xml. This is a big deal because setting curves and exponents works for the default axis (x, y and z). The rotX, rotY and rotZ axis have the plumbing in place but the code isn't applying the settings yet.

3Dconnexion Driver Setup

97Rime0.pngThe 3Dconnexion drivers include support for setting up a windows KMJ driver and configuring how the 3d mouse behaves in each program. Once running, the driver will put an icon in your task bar that looks like the one in the middle of the image on the right. If you don't see that then you can start it by going to Windows Start -> Programs -> 3Dconnexion -> Driver -> Start Driver.

To configure the driver for Star Citizen you need to create an xml file with the settings to use when the StarCitizen.exe is the active program.

Create the a file in the "C:\Users\[user]\AppData\Roaming\3Dconnexion\3DxWare\Cfg" folder called "StarCitizen.xml". Make sure the file is not saved as a text document. If it is then in File Explorer go to the View tab and click the Options button. Select the View tab again and uncheck the "Hide extensions for known file types". Then rename the file.

You can make sure these settings are being loaded when StarCitizen starts by opening the driver properties (right click the task bar icon and open the properties). The name at the top of the window will show "Star Citizen" when it loads the xml. You may want to leave the properties open where you can see the name and then run SC in windowed mode.

See the second post for the contents of the StarCitizen.xml file.

Star Citizen's pp_rebindkeys XML file

Go to directory you installed Star Citizen into and locate the folder, "StarCitizen\CitizenClient\Data\Controls\Mappings". In this folder create a new file called "sn.xml". Again make sure it is a file type of XML Document and not a Text Document. If it is then in File Explorer go to the View tab and click the Options button. Select the View tab again and uncheck the "Hide extensions for known file types". Then rename the file.

See the third post for the contents of the sn.xml file.

Load these settings by opening the command window in Star Citizen with the ` key and type the following:

pp_rebindkeys sn

Then go play Arena Commander.

It's not working what went wrong?

If your Space Navigator is not the first joystick you may need to change all the js1 references in the sn.xml file to js2 or js3.

If your using a Space Pilot or other 3D mouse from 3Dconnexion, then you'll need to look in the "C:\Program Files\3Dconnexion\3DxWare\3DxWinCore64\Cfg\JoystickTemplate.xml" file and update the device section of the KMJ drivers' "StarCitizen.xml" file that you created.

Tweaking the settings

My recommendation is to use the Deadband setting in the input side of the KMJ driver settings file instead of the deadzone in the sn.xml file. The rest of the settings can be done in the sn.xml file.

I have a fairly large deadzone for all axis except pitch and yaw. Those two have none so that very fine control can be made. Having larger deadzones on the rest keep axis bleed from getting crazy.

The thottle is tied to strafe longitudinal. This allows you to control your speed in coupled mode. If you move throttle to your mouse then clear the setting for v_throttle_rel.