3DConnextion SpaceNavigator v10 for Second Life

I was told to copy the 3D mouse template. I have no idea which template that is. There isn’t one named 3D Mouse… So, I am playing with the 3DxSDKTemplate.xml and JoystickTemplate.xml files. As best I can deduce the same changes are needed in either file.

Copy the file JoystickTemplate.xml to the folder:

C:\Users\[Win_Login_ID]\AppData\Roaming\3Dconnexion\3DxWare\Cfg

Rename it to SecondLifeViewer.xml or whatever viewer name you want to use with it. This name is for you. You can make as many profiles as you use viewers. But, only one per viewer.

You need to look in the viewer’s install folder for the viewer’s main file. You’ll need that file’s name in the next steps. If you have an icon on your Desktop or pinned to your Task Bar right-click it, select properties, and look on the Shortcut tab for the program’s name. Two examples:

  • Firestorm 64: Firestorm-bin.exe
  • SL Viewer: SecondLifeViewer.exe

I suggest a filename like: Firestorm-bin.xml or  SecondLifeViewer.xml.

Now open the file and find the line starting with: <AppCfgTemplate Default=”true”

Change it to read: <AppCfg Default=”false”… I’ve omitted the remainder of the line.

Now, jump to the end of the file and change </AppCfgTemplate> to </AppCfg>. Then go back the beginning of the file.

A line or two down find and change the <Name> tag to read: <Name>Second Life</Name>

Change <ExecutableName> to read: <ExecutableName>SecondLifeViewer.exe</ExecutableName> or change it for other viewers, e.g., <ExecutableName>Firestorm-bin.exe</ExecutableName>. Remember. Get the name of your viewer’s executable as described above. This name must be an exact match. I don’t know whether capitalization matters, so I assume it does.

The value <InheritsFrom> can be changed to: <InheritsFrom />. There is a space after the ‘m’.

I am not sure about this InheritsFrom one. So, I’m just guessing for this entry. I tried different values as I experimented. This one worked.

Next change the Transport type. Legal types are:

  • KMJ (Keyboard, Mouse, Joystick emulation)
  • HID (HID API from Microsoft)
  • RawInput (Microsoft Raw Input API)
  • DirectInput (the Microsoft DirectInput API)
  • S80 (current 3DxWare SDK API)
  • MWM (ancient 3Dconnexion API)

Find the line with  <Transport> and change the value to read: <Transport>DirectInput</Transport>

So far all these changes have been made in the <Settings> section of the file.

Next I think we need to add our changes for how we want things to work. Look through the file for <Devices>. Make sure these next changes are made in the part of this file for your device. The SpaceNavigator comes in several different versions. Find the section for your version. In my case it is SpaceNavigator.

Working v10 - Showing Macro Editor

Working v10 – Showing Macro Editor

In that section find <ActionID>HIDButton_1</ActionID>. In the following <Output> section change <ActionID>HIDJoystick_1</ActionID> or whatever is there to <ActionID>Driver_ShowDriverGUI</ActionID>. This will set the left-SN-button to open the SN configuration panel.

The right-hand button is <ActionID>HIDButton_2</ActionID>. This is the one I want to program. Leave it alone for now. Test the changes made so far and then continue on.

Save these changes. This updates the file in the \Roaming\… folder. Theoretically we should be able to go into Services and restart the 3Dconnexion driver service and have things update. In my experience so far, that only works sometimes. So, I reboot now.

When the computer is up open your viewer. See if the SpaceNavigator is working. If so, press the left-SN-button. You should get the configuration panel that looks very much like the first image in this article except with the name Second Life. If not, you did something wrong. I’ve posted my changes to the file below.

My Settings section of the file looks like:

<AppCfg Default="false" xmlns="" CfgFormatVersion="1.1" ThisFileVersion="1.0">
   <AppInfo>
   <Name>Second Life</Name>
   <VersionRange>
      <Min>1.0.0.0</Min>
      <Max>1.0.0.0</Max>
   </VersionRange>
   <ExecutableName>SecondLifeViewer.exe</ExecutableName>
   <InheritsFrom />
   <ApplicationIcon>3Dx.ico</ApplicationIcon>
   <Transport>DirectInput</Transport>
</AppInfo>
<Settings>
   <ResponseCurve>1.00</ResponseCurve>
</Settings>

My device section of the file has this in it:

<ButtonBank Default="true">
   <Name>STR_DEFAULT_BUTTONBANK</Name>
   <ID>Default</ID>
   <Button>
      <Input>
         <ActionID>HIDButton_1</ActionID>
     </Input>
     <Output>
        <ActionID>Driver_ShowDriverGUI</ActionID>
     </Output>
   </Button>

This is all that needs to change. With these changes the SN will recognize the profile and open the configuration panel. You can then use that to program the right-SN-button, which is way easier then manually building a macro.

Problems

If you cannot get your profile to work, read the SN log. It will give you clues as to what is wrong.

Read the log file in: %appdata%/3dconnexion/3dxware/3dxservice.log

Going Beyond

Someone always wants to do more. In my digging I came across more information than I ultimately did not need. But, if you start to write custom macros, you will want to know this stuff.

Buttons & Keys

To program the buttons we have to deal with Microsoft’s idea of how to create a Human Input Device. They use integers to number buttons and keys and then reference them by those numbers. We have to understand those numbers. If you run into that challenge you can find the list of them here: USB HID usage table.

What can we program?

There is no published manual for working with the profile files in SN. This post will be the most comprehensive document I’ll have seen in all my searching. But, you can signup as a developer at the 3Dconnexion site and get a SDK. I assume it has manuals and explains more.

The keywords you can use in the XML profiles are all contained in files installed with SN. Look in:

C:\Program Files\3Dconnexion\3DxWare\3DxWinCore64\Cfg

Find the file base.xml. If a keyword is in this file then SN knows what to do with it. We just have to figure it out. The file base.xml is said by 3DConnexions to be the master list of words.

Global_def.xml is the master settings for the SN. The values placed in it affect all the profiles. Add settings in your profile to override these values, otherwise they are used.

Key Definitions

See the SN file en-US_def.xml. This is where all the keys and buttons are defined. If they are not defined here, you can’t use them. The file is with the other XML files in the Cfg folder.

SL Viewer Values

These are listed as the Debug Settings label, its description, default value and whether it is persistent or not.

  • AutoLeveling – Preferences: Auto Level – Keep Flycam level. – True – Persistent
  • FlycamAbsolute – Treat Flycam values as absolute positions (not deltas). – False –  “
  • FlycamAxisDeadZone0 – 6 – ? – 0.1 –  “
  • FlycamAxisScale0 – 6 – ? – 0.1 –  “
  • FlycamBuildModeScale – Scale factor to apply to flycam movements when in build mode.  – 1.0 –  “
  • FlycamFeathering – Flycam feathering (less is softer – Feathering = smoothing and easing) – 16.0 –  “
  • FlycamZoomDirect – Map flycam zoom axis directly to camera zoom. – False –  “
  • JoystickAvatarEnabled – JoystickAvatarEnabled – True –  “
  • JoystickAxis0-6 – Flycam hardware axis mapping for internal axis 0-6 ([0, 5]). – 1 –  “
  • JoystickBuildEnabled – Enables the Joystick to move edited objects. – False –  “
  • JoystickEnabled – Enables Joystick Input. – False –  “
  • JoystickFlycamEnabled – Enables the Joystick to control the flycam. – True –  Not Persistent
  • JoystickInitialized – Whether or not a joystick has been detected and initialized. – T/F Read Only
  • JoystickMouselookYaw – Pass joystick yaw to scripts in Mouselook. – True
  • JoystickRunThreshold – Input threshold to initiate running – 0.25 – Persistent
  • Alt+Shift ⇧+F  – Flycam on/off

 

39 thoughts on “3DConnextion SpaceNavigator v10 for Second Life

  1. About three years ago i updated my 3D mouse software which broke it, i had to downgrade to a legacy driver. The 3D mouse changed how i use SL for building, for making machinema. It empowers you with an ability to direct every moment of your SL experience like a cinematic movie. I can’t use SL without it.

  2. I picked-up a Space Navigator last week. the KMJ Emulator is a pain; as it spawns multiple devices whih can attempt to claim control of other hardware – such as a USB keyboard., any other gaming joystick installed, and so on.

    Not only did the KMJ emulator put itself at the head of the device driver table, thus making it the default when being detected by SL, I found that it also persistently threw-up a dialogue box asking me to configure it for use with Firefox, whether or not the latter was also running, and regardless as to whether I’d previously set the buttons …

    I also found the simplest solution was to de-install v 10 and install the 3.18 drivers. Everything is running fine now; all I needed to do was tweak SL’s SN defaults, which perhaps don’t give the best sensitivity when using the SN for filming.

  3. For me, just plugging the SpaceNavigator in and not installing any software or drivers for it (and uninstalling anything that it pulls in), was enough to get it working in SL and Blender. I believe these two applications have SN support built in, and don’t need anything else. to make it work.

    • Mine showed sign of life without the driver. But, I really wanted the flycam button working.

      • Is Flycam mode activated in the joystick settings? The latest 3D mouse may be somewhat different than earlier versions? Are you using the wireless version? Mine is hardwired.

        • Wired.

          Flycam can be activated by the keyboard shortcut Alt-Shift-F. That will happen whether you have a 3D mouse or not. It just works better with a 3D mouse. It is sort of active when we Alt-left-click and cam around.

  4. … you’re kidding me, right? SN no longer supports SL?
    This merits a thousand #facepalm tags. Ugh.
    Thank goodness I haven’t updated my drivers in forever.
    And thank you for posting the workaround.
    Keep up the good work.

    -ls/cm

    • Amazingly… and with new virtual worlds coming.

      There are about 6 lines that have to change to get one of the templates recognized by a SL viewer so a user can make use of their new GUI. I would expect them to have the files where a person could download them. I thought about putting the base file here in the blog, but they are fully copyrighted. So, I would need to chase down permission.

  5. I bought my SN very early on. I found it downright hazardous when building. Great for fly- abouts. Probably would be essential for machinima if I made any. I find it most effective for keeping my headphones from falling off the desk when I am not using them 🙂

  6. Strange. On mine that works without any additional work. Left button, Flycam; right button, jump.

  7. I have been using the SN for about 3+ years and found the best method is to not install any drivers or software with it. In that case the blue light will not work which is fine with me as the device works. Then you need to enable it in the Joystick Configurations in the viewer. The only tweak I make is to move the feather slider under “flycam” farthest to the left. I would not recommend using it to build although you can use the build mode in Machinima using this technique https://www.youtube.com/watch?v=4JfCBY-EqbM .

    • SN does work without a driver. But, I REALLY wanted to use the right-button to go in and out of Flycam mode.

      • Left button (flycam) works for me but I have a 3 yr+ mouse and no drivers installed in a multitude of viewers (probably a dozen). I don’t have any other applications I use it with and I have no other devices other than the regular mouse. Have you tried plugging it into a different USB port?

  8. works here and i updated drivers too.
    mine activate if i click on its left button and all the viewers seam not to need any special magic to use it. SN might be a bit difficult to guide the cam in default but its worth and putting zoom-mapping on roll is wonderful(even if it jumps after ALT-tab), also one could just use SN as a kind of focus-puller.

  9. I appreciate it already been said, but I use the Sopace navigator in all recent viewers (LL, Firestorm, CtlAltStudio and others) without installing any SN software or special drivers at all.

    But I do ensure I only have one joystick device plugged in at once (so Xbox 360 and a flight stick are not connected when I use my SN). And I have not wanted to use the SN with other tools to require their special s/w features.

    Just plug in, and under the Prteferences -> Move and View for the \Other Devices\ tick the \Enable joystick: spacenavigator\ and allow it to use the default settings for the SpaceNavigator.

    SN then controls avatar movement initially. Left clicker toggles to FlyCam or back to avatar movement. Right clicker activates jump. It all works great and very smoothly. I especially use it when making machinima.

    • I tried SN without drivers. The buttons were inactive. I don’t know why some people have working buttons and some don’t without the driver.

      I also wanted to have control of the SN and its buttons in other games and apps. As best I can tell the v10 driver makes the SN much more usable in a large variety of apps.

  10. Thanks for this advice.

    I had to reload my PC after a crash, and struggled with the SN re installation.

    Followed the post, and now have a fully working install again.

    Respects, and thanks again.

    Fuzzy

  11. Pingback: Second Life Photography 2015-05 | Nalates' Things & Stuff

  12. One piece of good news for legacy version 3.18 users. I notice that Maya 2015 still recognizes the driver and is usable. I also think that because Linden Labs encouraged utilization of the Space Navigator resulting many users purchasing and adopting it , that they have responsibility to ensure subsequent viewer versions are coded to work with the current drivers. This is just as important as texture or marketplace integration improvements within the viewer. LINDENS PLEASE LISTEN!

  13. Just wanted to say thanks for your help with this matter. I felt really bad when I saw that this expensive piece of hardware didnt work out of the box with SL and others softwares. Now I am trying to fight with the template matter. Really apreciate your help.
    PS: I leave a message for you in facebook 😉

  14. To go through the devices, right-click on each one in turn and select Properties. Then click the Details tab. Then in the Properties drop down select Hardware ID’s. That is where you will see a 3DXKMJ device name if you have one. Disable it.

    does not work for me , there is NOWERE to disable this:(

    • Mine always worked then I had it unplugged and then it couldn’t find the device. But…if I plugged it into a different usb port it worked immediately so try different ports.

  15. A new environment.
    – Windows 10
    – About 3DxWare
    3DxWare 10 version
    10.2.9
    3DxWinCore version
    17.2.9.11812
    Devices
    SpaceNavigator (firmware v.4.35)

    Recognizes Firestorm as an App and there seems to be no connection to SL.

    I have opened:
    http://jira.phoenixviewer.com/browse/FIRE-17001
    and…,
    3Dconnexion has yet to respond to my trouble report.

  16. https://www.3dconnexion.com/forum/viewtopic.php?f=25&t=15815

    here is a working solution with latest 3dconnexion drivers. Works fine with my SpaceMouse Enterprise.

  17. Pingback: SpaceNavigator, Windows 10, and Second Life | Nalates' Things & StuffNalates’ Things & Stuff

  18. I know this post was from 3 years ago but has anyone found a fix for the newest? I have a SN wireless.. i can get it to work everywhere but Firestorm, I can sometimes get it to zoom in and out and that’s it. I’ve about gotten to the point of tossing it across my house because nothing seems to make it work. I’m frustrated with it

Leave a Reply

Your email address will not be published. Required fields are marked *