Gyroscope and accelerometer from controllers

#1

Hello everyone. Got stuck with an idea for some time, and couldn’t find a solution for it for some reasons.
Idea : what about using the gyroscope and accelerometer sensor from some controllers (DS5, DS4, Steam controller, Switch controller, etc) as inputs for rotational movements ?

Example : 1 axis of rotation (pitch)

  • set a default angle comfortable for player (20 degrees)
  • set a ± (P from pitch) angle where the input will work as an analog input
  • if you rotate the controller on pitch axis over that angle you will have a maximum digital input (is like having the pitch up bind to a keyboard button)
  • a button to toggle the sensor will be needed (in some cases like DS5 could be a touch, or some combination of buttons, maybe voice comand ?_?,etc )

Benefits :

  • free some buttons for controller user
  • 1 stick button will be use for 2 translation movement and 1 axis from the other stick will be used for the remaining translation. All 6 axis of movement available on a controller with analog input style for a better control of the ship.
  • make use of these sensor (it is underused)

Possible problems :

  • interference with Steam API (or other software like ReWASD, etc)
  • It need DirectInput style, and maybe a cable will be necessary (don’t know if it will be possible to send all the information via Bluetooth)
  • others that I didn’t think of yet

Well, for some time I’ve just tried to make use of the gyro in this way, but couldn’t found a good solution for the implementation presented above. Or some rotation axis couldn’t be analog, or some interference because the game doesn’t support mixed inputs (controller and mouse - etc), or the options aren’t detailed enough to make this possible.

For some references you could take a look at how Steam, ReWASD, JoysShockMapper (for FPS games mostly) made those implementations. Tried all of them, couldn’t find a combination that make all the inputs analog.

Have a great day/night/rotation around the big Hydrogen ball, and stay safe.
Best regards,
Daniel.

#2

Hello Daniel

I can imagine that in a couch gaming setting it might be a bit unwieldy to use the sensors for real input. Usually you want to hold the controller in a comfortable position and all the moving around is accidental at best.
It makes me think of an easy way to implement VR Motion controllers to games that don’t support them though.

For such an idea I:B is the right choice to test though. The Input Mapping is one of the best altogether in all of gaming.
I don’t know what you mean with no support with mixed input, that’s certainly not the case.

I suggest to you to try to use FreePie (https://andersmalmgren.github.io/FreePIE/) in combination with vJoy (http://vjoystick.sourceforge.net/site/).
I think what you just described should be possible to implement in a few hours in I:B.

Feel free to ask for specifics concerning these programms and I:B. I have some experience setting up my preferred setup with these.
I personally use a 3D “space” mouse and normal mouse to play I:B.

#3

Thanks for your response.

I’ve just saw I:B yesterday on some random video, watch a little bit of older dev streams, and searched how you managed input from different devices (mixed input).
For example, Star Wars Squadrons doesn’t work well using a mouse and a controller in the same time. I’ve tried to use the gyro for 2 rotations (pitch and yaw) but as using a mouse (see steam gyro inputs style (mouse, mouse like joystick, etc)), but I couldn’t find a way to bind just the gyro for all 3 rotations in such a way that these game see it as a controller.

Anyway, thanks for suggestion (I’ll try them out asap), and most likely in weekend in I:B.

Best regards,
Daniel.

#4

Oh Steam has that as built in functionality?
After I posted I checked integration of DualShock gyros in FreePie and it doesn’t seem like there’s any ready made integration / plugin yet.

I have a Steam Controller and could try out the Steam Gyro Solution.
I don’t know all the options but from what I saw in a video I would suggest setting the Gyro as additional axis instead of mouse mode.
Then in I:B select the Dualschock as one of the four additional devices and bind the axis the way you want them.

#5

Steam has some limitations regarding Gyro :
you can use only 2 out of 3 rotation axis as analog in some way or another ( emulating a joystick, a mouse, a mouse like joystick in case the game doesn’t support both controller and mouse in the same time - see star wars squadrons). For a 3rd axis it has only some binding option (lean left / right) and this function has a digital input (you can set it for a left stick movement for example, but it will be a full input of 1, nothing between 1 and 0.

From what I know that feature (to have full analogical control over all 3 rotation axis) was asked for years (5-6 maybe), but nothing happened yet, and maybe never… (talking about steam)…

If you’ll give it a try please don’t forget to inform me about the results.