1) Install vJoy (http://headsoft.com.au/index.php?category=vjoy), make
sure the configuration program is installed too.
2) Download the SC Joystick Mapper
(http://www.burri-web.org/cassini/SCJMapper.html) and the Universal
Joystick Remapper
(http://evilc.com/joomla/articles/9-code/autohotkey/1-ujr-universal-joystick-remapper)
3) Open the vJoy configuration program and add a joystick, 2 axes are
enough.
Basic Axes: X, Y (only 2 are needed)
Buttons: 1
POVs: 0
Target Device: any
Action: Configure
Click Apply and wait for the program to finish. Remember the Target
Device number on the right, then close the window.
4a) Run the Universal Joystick Remapper and on the "Axis 1" tab, top
left at "vJoy Stick ID" set the Target Device number from the
configuration program. Depending on how you set up the virtual
joystick, you will have a set of axes that you can set (the same axes
your virtual joystick has, typically X and Y).
4b)In the X Axis line, choose the Physical Stick ID corresponding to
your EDTracker (you can find it by trial-and-error or by going to
windows' Gamecontroller window (if for example the EDTracker is in the
4th position, its Physical Stick ID will be 4)). Choose Physical Axis
1. The Slider in the "State" column will move when the EDTracker is
moved.
4c) Do the same for the Y Axis line, but choose Physical Axis 2. All other
lines can be left set to "none".
4d)I had a few problems at this step. When the UJR shows error
messages try creating a new virtual joystick in the vJoy Configuration
Program with a Target Device number of 15 or 16. I also found that a
virtual joystick with 0 buttons might not work.
4e) DO NOT CLOSE UJR. UJR must be running when you play or set up the
mappings.
5) Run SC Joystick Mapper. Joystick 1 should be named "vJoy Device".
6) If you use a HOTAS (X-55, Warthog, G940 or X52) or any other
joystick, go to \StarCitizen\CitizenClient\Data\Controls\Mappings and
copy your respective mapping file to, e.g., C:/layout_hotas_x55.xml.
If you use Mouse and Keyboard only, go to step 7.
6a) Open the .xml file you copied with any text editor (windows
editor, Notepad++, ...). In the default Mappings, the Stick is always
js1 and the Throttle Unit (if you have a separate one) is always js2,
but because vJoy is the first entry on the list, you have to change
all "js2" to "js3" and all "js1" to "js2". You can use find and
replace for this. Save the file when you are done.
6b) In SC Joystick Mapper, right click the large, empty text box on
the right and click "open", choose the .xml file you just copied.
Click the "<-- Grab XML" button on the bottom to load the mappings
from the .xml file.
6c) Cycle through the "Joystick 1 - x" tabs to find out which device
has which Joystick number (e.g. 1 - vJoy, 2 - Stick, 3 - Throttle, 4 -
EDTracker)
6d) In my case after adding the virtual joystick the stick did no
longer control the spaceship's jaw, pitch, roll and primary weapon. If
this happens to you, you can fix this by either of these two steps:
6d1) On the left side of the SC Joystick Mapper window, find the
following entries and assign the appropriate joystick movements /
button presses (your Stick's tab must be the active tab):
at "spaceship_movement"
v_pitch
v_jaw
v_roll
v_newtonian_yaw
v_newtonian_pitch
at "spaceship_weapons"
v_attack_group1
If the program does not pick up the correct axis/button, assign it
anyway, this will be solved later.
6d2) Open the .xml file with any text editor and insert the following
lines:
after <actionmap name="spaceship_movement">:
<action name="v_pitch">
<rebind device="joystick" input="js#_y" />
</action>
<action name="v_yaw">
<rebind device="joystick" input="js#_rotz" />
</action>
<action name="v_roll">
<rebind device="joystick" input="js#_x" />
</action>
<action name="v_newtonian_yaw">
<rebind device="joystick" input="js#_x" />
</action>
<action name="v_newtonian_pitch">
<rebind device="joystick" input="js#_y" />
</action>
after <actionmap name="spaceship_weapons">:
<action name="v_attack1_group1">
<rebind device="joystick" input="js#_button1" />
exchange the # in the 4 lines for your joystick number.
Save the file and load it into SC Joystick Mapper.
7a) In SC Joystick Mapper, on the left side, under "spaceship_view",
find the entry "v_view_yaw" with the joystick icon next to it. Click
it, select the "Joystick 1" tab on the top and move the EDTracker.
Cmd. should read "v_view_yaw"; Ctrl. should read "js1_x" or "js1_y".
Click assign. Don't worry if the Program picks up the wrong axis, this
will be corrected later.
7c) Do the same for the "v_view_pitch" entry.
7d) Finally, click the "Dump XML -->" button. Right-Click the text box
on the right and choose "save as", save the XML file where it is
easily accessible (e.g. C:/layout_hotas_x55_ed.xml)
8) Open the xml file with any text editor. Find the entries
<action name="v_view_yaw">
<rebind device="joystick" input="js1_x" />
</action>
<action name="v_view_pitch">
<rebind device="joystick" input="js1_y" />
and make sure the correct axes are assigned (v_view_yaw = js1_x,
v_view_pitch = js1_y). If you have gone through step 6d1), check
<action name="v_pitch">
<rebind device="joystick" input="js2_y" />
</action>
<action name="v_yaw">
<rebind device="joystick" input="js2_rotz" />
</action>
<action name="v_roll">
<rebind device="joystick" input="js2_x" />
</action>
<action name="v_newtonian_yaw">
<rebind device="joystick" input="js2_x" />
</action>
<action name="v_newtonian_pitch">
<rebind device="joystick" input="js2_y" />
</action>
<action name="v_attack1_group1">
<rebind device="joystick" input="js2_button1" />
</action>
as well. Save the file.
9) Start Star Citizen Arena Commander. Once ingame, open the console
(see the Keyboard layout in options to find the key) and use the
pp_rebindKeys command to load the new keybindings, e.g.:
pp_rebindKeys C:/layout_hotas_x55_ed.xml
10) You can adjust the EDTracker's sensitivity in the Universal
Joystick Remapper tool.
11) I experienced that headtracking would randomly not work after
entering a (drone sim) game. This is a bug of the game, head look can
be activated by moving the mouse a little.