Forum Discussion
steam25
11 years agoExplorer
multi purpose output device (wind, vibration)
hello crew,
got this idea long ago and want ask a question to the programming guys out there:
does the different engines have the possibility to lets say "trigger" actions via USB port?
some examples what i mean:
- riding a rollercoaster, put a fan in front of you and link it with the speed from your ride. standing still, fan is off, start the ride, fan turn on slowly, going down fast fan on full power ect.
- driving a racecar around the track with your new fancy G27 steering wheel, make the chair vibrate when hitting curbs in corners or driving over grass when leave the track ect.
i cant belive thats still not out there. i tested the concept and put a fan in front of my friends when they are in a rollercoaster. everybody agree that the experience is much more cool. but i feel stupid to turn that thing on and off all time.
is it difficult or simple to trigger effects like that via software you have?
got this idea long ago and want ask a question to the programming guys out there:
does the different engines have the possibility to lets say "trigger" actions via USB port?
some examples what i mean:
- riding a rollercoaster, put a fan in front of you and link it with the speed from your ride. standing still, fan is off, start the ride, fan turn on slowly, going down fast fan on full power ect.
- driving a racecar around the track with your new fancy G27 steering wheel, make the chair vibrate when hitting curbs in corners or driving over grass when leave the track ect.
i cant belive thats still not out there. i tested the concept and put a fan in front of my friends when they are in a rollercoaster. everybody agree that the experience is much more cool. but i feel stupid to turn that thing on and off all time.
is it difficult or simple to trigger effects like that via software you have?
11 Replies
- aparsons671Honored GuestAll of what you say is possible using force feedback effects for the chair rumble and by reading the forward velocity, you can control the fan speed. If wind is programmed into the roller coaster simulator, then you'd use the ambient wind direction and velocity. As the coaster speeds up, the ambient direction becomes more in front than from a crosswind point of view, but for the slow ascent up the initial hill, you might get a gusty breeze now and again.
If the data is there, such as is the tire on a rough surface, skidding or what have you and that information can be read by an external program that controls your hardware, anything is possible, with or without direct control by the original program.
The base program wouldn't control the hardware though, directly. You'd have to read the data and pass that information you need to the hardware you design. If you have a program that reads the memory information of the roller coaster program, then connects via Serial to an Arduino with a fan plugged into it's analog outputs, the Arduino would read messages from the serial port it makes. Your intermediate program would read the speed and convert it to a scalar (0mph would be 0, 65mph or whatever the coaster's top speed would be 1023 - analog axes have a max of 1023 for arduino). It would then write this "speed" out to the serial port. The Arduino software would read the serial port number and send it to the analog output, thus actuating the fan. The rumble would be similar where you'd read the surface/tire combination, figure out a rumble speed (slow, medium, fast) and send it to the Arduino and tell it to start. When the rumble action was no longer needed, it would tell the Arduino to stop the rumble.
I wrote a program that reads the Air Traffic Control chat history from Flight Simulator X by reading the active memory map of the program itself. It's basically hacking the program, but I've mapped different memory locations where the variables I want get stored and I query them when I need to. FSX has no support for what I'm doing and has made it a bit harder to get what I need from it since it has no direct variables that shares the data I want, unlike so much other data it DOES share such as current speed, heading, pitch, bank, yaw and everything else you could imagine, but one 2 or 3 variables for the ATC information which are useless to me.
If the ATC window didn't have the "show chat log" feature where it showed the last messages, the data would be lost once it was output to the screen. The chat log stores the information I need for future reading, which allows my external program to find it.
This is just an example of "where there's a will, there's a way, but the programmer of the app can make your life pretty easy sometimes if they choose". - steam25Explorerthanks for that detailed answer!
exactly what i mean. so why nobody made that long time ago?
any rift simulation would be so much better if you have another detail to bring the "reality" of that experience a little closer to real.
a simple ardu was in my mind too.
but how to make it compatible with the different engines? and of course not many people want to fiddle around with ardus at home. a nice little plug and play solution for lets say wind and vibration would be enough. i got many other things in mind.
heated wind for special locations if you stand in a volcano for example
or infrared heating lights from top if you walk in a virtual desert and "feel" the sunshine on your skin.
my god with a simple interface like that i get 20 more things in my mind...
i am from germany, but living in china. to develope something like that and let a factory nearby produce that would be awesome. :idea: - ImeleonExpert ProtegeThere is a program out there already for simulating road vibrations and bumps called simvibe. It drives transducers.
Also on the xSimulator forum there are guys using arduionos to drive fans from the game telemetry output.
But I'd definitely buy a nice already made version if someone made it. - steam25ExplorerYES. a nice plug and play module would be great right?
- JohnyXHonored Guest
"aparsons671" wrote:
All of what you say is possible using force feedback effects for the chair rumble and by reading the forward velocity, you can control the fan speed. If wind is programmed into the roller coaster simulator, then you'd use the ambient wind direction and velocity. As the coaster speeds up, the ambient direction becomes more in front than from a crosswind point of view, but for the slow ascent up the initial hill, you might get a gusty breeze now and again.
If the data is there, such as is the tire on a rough surface, skidding or what have you and that information can be read by an external program that controls your hardware, anything is possible, with or without direct control by the original program.
The base program wouldn't control the hardware though, directly. You'd have to read the data and pass that information you need to the hardware you design. If you have a program that reads the memory information of the roller coaster program, then connects via Serial to an Arduino with a fan plugged into it's analog outputs, the Arduino would read messages from the serial port it makes. Your intermediate program would read the speed and convert it to a scalar (0mph would be 0, 65mph or whatever the coaster's top speed would be 1023 - analog axes have a max of 1023 for arduino). It would then write this "speed" out to the serial port. The Arduino software would read the serial port number and send it to the analog output, thus actuating the fan. The rumble would be similar where you'd read the surface/tire combination, figure out a rumble speed (slow, medium, fast) and send it to the Arduino and tell it to start. When the rumble action was no longer needed, it would tell the Arduino to stop the rumble.
I wrote a program that reads the Air Traffic Control chat history from Flight Simulator X by reading the active memory map of the program itself. It's basically hacking the program, but I've mapped different memory locations where the variables I want get stored and I query them when I need to. FSX has no support for what I'm doing and has made it a bit harder to get what I need from it since it has no direct variables that shares the data I want, unlike so much other data it DOES share such as current speed, heading, pitch, bank, yaw and everything else you could imagine, but one 2 or 3 variables for the ATC information which are useless to me.
If the ATC window didn't have the "show chat log" feature where it showed the last messages, the data would be lost once it was output to the screen. The chat log stores the information I need for future reading, which allows my external program to find it.
This is just an example of "where there's a will, there's a way, but the programmer of the app can make your life pretty easy sometimes if they choose".
Thanks for sharing ! - konstantin_lozeExplorer
"steam25" wrote:
thanks for that detailed answer!
my god with a simple interface like that i get 20 more things in my mind...
Well, I think there is a loooot of room for haptics and similar things. I am sure you have seen the sims that would tilt your whole chair to simulate acceleration/braking. Just don't think of haptics on bullet hits :) - steam25Explorerof course saw it. love that flying wooden thing where you lay down and "flap your wings" to fly.
but thats all too fancy. about bullet hits: i dont think there would be a big need for that. dont get me wrong, i love the idea to get feedback with a vest and "feel" from what directions people shoot at you. but think about how many egoshooters are out there and how many other games which fit the VR world much better than a shooter? exactly! i play only 1 egoshooter with the DK2 yet. and that made me sick like hell...
i am thinking much more easy. get something cheap and simple like a fan device to improve everybodys experience. car simulators are most impressive i think. and try to imagine windlands with a fan in front of you, make you feel really going fast or fall deep.
but there should be a way where ALL developers implement that in there games/demos without much trouble.
how to make a "standard" for all game designers ?
where to start? just develope a device and let the programmer figure out later how to access there functions?
or start to talk a way set up the software first? - konstantin_lozeExplorerI think it will come some day when there will be a standardised input/output for VR on all games, e.g. "DirectVR", but it's not now. It will have a huge benefit to all the kickstarter input ideas out there, but it will mean a whole new approach in designing games. The way I imagine it is - the game detects the available hardware, leaves all the known inputs to that hardware and scritpts out the rest. I give you an example - separate head/gun tracking. If you present two IMUs as input devices - you will have decoupled aiming in the game. If not - your look will always be followed by your gun, basically tying the two to one IMU. Or, to go further - a gun with only orientation tracking vs gun with positional and orientation tracking. If you have positional and orientation tracking gun, you will be able to move it freely around your view, but if you have only orientation tracking gun, you will still have an iron sights button that would script the positional tracking from your hip to your eyes.
Similarly, for output the game could output a standard set of environment variables that could then be used by any third party haptic device - steam25Explorerthanks for your answer,
that day seems to be faaaar away...
for egoshooter i always have the "moving" as main problem in my mind.
even there will be a device for head and gun tracking which sounds awesome! how to move? you have such realistic feeling to use and aim your gun. but still have to move around with curser key buttons. we all saw the first ideas how to move around with these corded "slippers" on your feet. looks a little clunky for me.
well, thanks nevertheless. always happy to throw some ideas in the room and really get some actual answers.
i think its not the right time yet.
i will buy a racing seat with G27 tomorrow and start to do something about that fan idea. already bought a really powerful industrial fan here. that thing on full power shaking your head while driving :mrgreen:
i will make a video and post it here if somebody is interested. arduino is already on the way. - konstantin_lozeExplorerCool, just don't try and simulate haptics for actual crashes :)
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device