Release 1.2.1: Xbox 360 Controller Support

New this release is Xbox 360 controller support. With it you can walk your avatar, fly your avatar, use mouselook, use flycam, orbit about points in 3rd person view, click on objects and use objects’ context menus … with normal, stereoscopic 3D, and Oculus Rift display output.

Xbox 360 Controller

[By Alphathon (Own work) [CC-BY-SA-3.0 or GFDL], via Wikimedia Commons]

The following control scheme is provided:

  • Back: Toggle flycam on/off.
  • Start: Toggle between moving avatar and moving cursor.
  • Back + Start: Toggle Rift or 3D stereoscopic 3D on/off.
  • In avatar movement mode:
    • Left stick: Move forwards / backwards and left / right.
    • Right stick: Change camera pitch and roll.
    • Left & right triggers: Fly down / up.
  • In cursor movement mode:
    • Left stick: Move cursor up / down and left / right.
    • Right stick: Scroll mouse wheel forwards / backwards (i.e., zoom view).
    • Left & right triggers: No action.
  • Left stick click: Jump up / stop flying.
  • Right stick click: Toggle 1st person view.
  • Left bumper: Left or right mouse click. *
  • Right bumper: Right or left mouse click. *
  • Y key: Escape
  • X key: Control
  • A key: Alt
  • B key: Shift
  • D-pad: Not used
  • * There’s a preferences option to swap bumper buttons.

With your Xbox 360 controller connected — wired or wireless — enable it in Preferences > Move & View > Movement. Then you can adjust its configuration using the associated Joystick Configuration button. Xbox 360-specific defaults are provided. You should also calibrate your controller, e.g., using the device’s properties provided via Windows’ Devices and Printers folder. (To date it has only been tested on Windows.)

Other changes this version:

  • Updated to Firestorm 4.6.5 codebase. Lots of good stuff there.
  • Miscellaneous enhancements and bug fixes. See the Release Notes for details.

Downloads:

UPDATE: The 41169 version is a minor update that fixes some Xbox controllers not being recognized; it is otherwise identical to the original 41167 version. You don’t need to update unless you are encountering the problem.

Comments (15) Leave a comment

  1. Timberwoof

    Hi! I want to experiment with using a game controller to fly proper Newtonian spacecraft in Second Life. So I acquired an Xbox 360 controller and found this viewer.
    The first step is just to get the controller working with my avatar. The viewer knows the controller’s name and suggests some defaults, but they don’t seem to make sense for controlling the avatar. When I use them, I just spin around and fly up.
    I tried remapping the rotations and translations to controls that made sense. However, when I set up X Axis, my avatar just sits down instead of walking forwards or backwards. I tried more mappings one axis at a time, but every once in a while the controller just stops working.
    The Joystick Monitor only works when the []Avatar checkbox is checked. I wish it would work all the time so I can check out whether the viewer is getting messages from the controller and so I can tell which control has which number.
    Is there a mapping from these actions to the control constants provided by LSL? (I will build a box that I sit on that just reports what control inputs its getting.) What about all the rest of the controls? Will there be a way to map them into LSL?

    1. David Rowe Post author

      Hi … It sounds like your Xbox controller may not be installed or calibrated correctly.

      What should happen if you start the viewer with your Xbox controller connected is this … Preferences > Move & View > Movement > Enable joystick: tick this and then the “Joystick Configuration” button should open a dialogue box with the first line being ticked and saying “Enable Joystick: Xbox controller” or similar (depends on the exact version of the Xbox controller that you have). And the button towards the lower right of this dialogue box should say “Xbox 360 Defaults”. Use this button to set defaults suitable for use with the Xbox controller.

      To check that your Xbox controller drivers have been installed OK, go to Windows Device and Printers and there should be an entry, “Xbox Controller”. If you right-click on this, there should be a “Game Controller Settings” item, and if you select this you’ll get a small dialogue box listing your Xbox controller. Click on its entry then click the “Properties” button and you’ll get a new dialogue box with “Settings” and “Test” tabs. In the “Settings” tab there’s a “Calibrate…” button which starts up a calibration Wizard. You can use the “Test” to see the results of your calibration (except that the “Z Axis” bar doesn’t move with the triggers as it should – a bug).

      Hopefully this helps get you up and running.

      I don’t know whether or not the control values are available are available in LSL but I imagine that they’re probably not.

  2. Hacsa Karillion

    Hello! First I want to thank you for the wonderful job with your viewer! I’m loving! I write in blogs Brazilians among them one on tutorials. I made a video explaining how to use the joystick in CtrlaltStudio. If you want to check (Portuguese as the default language), is:
    https://www.youtube.com/watch?v=6K6-5mL-vvc

    Thank you! Keep keeping us updated! I wish much success to you in your project! :)

  3. Techgeek20

    Hi and thank you for all you’re doing for us rift users in SL. I’m just curious if you’ve tried the Linden Lab project viewer? I ask because there’s a UI of sorts in rift mode that allows you to use huds and interact with objects and such. I’m wondering how hard it would be to have something like that in your viewer, and if you plan on adding it in future builds or not?

    1. David Rowe Post author

      Hi. Yes, I’ve tried the LL Rift viewer. The low resolution of the current Rift doesn’t help.

      Some limited UI is also available in the CtrlAltStudio Viewer: use keyboard shortcuts to hide / show windows, e.g., Ctrl-T to toggle the Converstations Window. You can also right-click on objects in world and use their context menus.

      Third party viewers will pick up Linden Lab’s Rift support incl. UI in due course, once LL release their code. I also have some alternative UI ideas I’d like to try out; just a matter of finding the time!

      UI in general will work / display better with the better resolution of the Rift DK2 and onwards. Can’t wait!

  4. Dalek Hax

    I’ve just acquired a wired-X-box360 controller (though no Xbox ;-) ) to try the 41169 version out. Firstly the stability and performance seem good so far, I did have some problems with a haywire Firestorm bridge in the prior version, but this was probably unrelated to anything CtrlAltStudio added.

    Even with this latest version, it picked up my webcam as a joystick(!) in preference to the Xbox pad, but this was easily fixed by yanking the webcam out. Calibration seems fine, but when I go to walk the viewpoint floats upwards behind me lnstead of remaining level as with mouse/cursors. Turning requires both analog sticks for rotational movement so this still effectively requires two hands, so I’m not sure if there’s an advantage to using the pad for movement in SL. Perhaps if the D-pad (“hat”) control could be enabled to emulate the cursors, and thus enable rotation movement of the avatar, then at least the keyboard could be dispensed with for everything but text chat.

    The option to use it in cursor mode is extremely clumsy for clicking poses and menus compared with a mouse. Perhaps with a Rift, there might be little option – I’m not sure how bad using a mouse with the Rift is.

    Where the Xbox pad excels however is flying and view-cam modes where it becomes positively cinematic – I can see this being very useful for Machinima fans. Which reminds me, are the any capture solutions for 3D that work with this viewer? The option to do a 3D snapshot would be very welcome – the screen image is still captured in 2D at the minute. Even the Windows screendump doesn’t capture the line-interleave for me, so I release this might be an OpenGL limitation.

    1. David Rowe Post author

      Thanks very much for your feedback, Dalek. That’s bizarre about your webcam!

      Viewpoing floating while moving: it shouldn’t do this; it should stay “level” just the same as using cursor keys for movement. It sounds like your right joystick may be a little “sensitive”? Perhaps it’s altering the view to look down a little? … You could try increasing the Pitch Dead Zone and / or recalibrating your controller.

      Turning: I’m wondering whether perhaps there should be an option whereby the left joystick turns the view rather than strafes.

      D-pad: Unfortunately, with the current library used, the D-pad isn’t accessible in the viewer software.

      Cursor mode: Yes, it is clumsy compared with a mouse. But it’s very useful if you’re using a Rift, especially if you’re standing away from your keyboard. A wireless controller is a good option for this use case.

      3D screenshots and video capture: These could in theory be done if you have suitable harare and / or software that can capture OpenGL stereoscopic 3D or 3DTV; however, I don’t have any experience in doing so. I do intend to add a side-by-side stereo option one day (after swapping the code over to using Linden Lab’s Rift code when it’s available).

      Re Firestorm bridge: it normally fixes itself but if it’s causing problems you can (a) recreate it via Avatar > Avatar Health > Recreate LSL Bridge, or (b) disable it via Avatar > Preferences > Firestorm > General > Enable LSL-Client Bridge option.

      1. Dalek Hax

        Thanks David, solved the camera viewpoint problem by:
        Advanced->Show Debug Settings, type “CameraOffsetRearview”, then click Reset to Default
        Advanced->Show Debug Settings, type “FocusOffsetRearview”, then click Reset to default

        No doubt some garbage got read in when it thought the webcam was a joystick and this hung around – even after I stopped using the pad! I had been worried as I very much suspect my eBay Xbox pad is a cheap fake but it performs fine it seems.

        I was also probably a little harsh on Cursor mode too once I discovered you’ve got to *uncheck* the default(!) of Swap left and right Bumpers buttons – it’s a lot less clumsy when you’re not clicking the right mouse button instead of the left ;-)

        Is there any possibility of adding the dual-shock style xbox vibrate functions to collision detection etc.? I can see the etc. especially being particularly popular in many adult sims, ;-)))))

    2. David Rowe Post author

      The view “floating up” while walking may also be just the view gradually changing to the default camera position as you move (same as if you press Esc). I’ve actually changed this behaviour in the next release: the view won’t revert to the default camera position if you’re moving with a controller.

  5. Pingback: Loki: using the Xbox Controller with the Oculus Rift | Living in the Modem World

  6. David Rowe Post author

    Released a minor update — 1.2.1.41169 as opposed to 1.2.1.41167 — that fixes some Xbox controllers not being recognized.

  7. Pingback: CtrlAltStudio adds Xbox 360 controller support - Hypergrid Business

  8. Pingback: CtrlAltStudio 1.2.1: Xbox 360 Controller support | Living in the Modem World

Comments are closed.