I love playing pinball in VR.
I don't like switching tables via Steam-shortcuts, because you can't do it with your cabinet-keys. You have to use your vr-controllers in order to select a table. In most cases vpx loses focus and cabinet-controls don'work until you set focus to vpx (outside vr) again. For me it was very fustrating to handle the navigation that way. I tried to find a solution for a couple of weeks.
Now i will show you my solution - the progress of my project.
I want to use the software we have to use. Here this is the vr-port of vpx. I've downloaded the c++ sources of Visual Pinball VR at sourceforge and expanded the functionality I needed.
BTW c++ is not the language of my choice!
1) VPX must show a menu in VR when you start it.
2) The Menu must be able to open a table staying in VR.
3) If you exit this table, vpx should not idle -> menu must be shown again and so on.
I've compiled these functions in my version of VPinballX_GL.EXE.
4) I need a menu in VR. How to realize this with c++?!?
Some days ago, I had a great idea.
I build a small table as a menu. I named it "menu.vpx". But the table script needs to communicate with my VPX-version:
5) I build a ScriptGlobalTable-extension that writes the selected table in the vpx-registry ("menu","NextTable") and quits the menu-table. -> point 2
6) In the vb-script of the tables there are 2 new functions as ScriptGlobalTable methods.
GetNextTable // get active table to show at start
PlayNextTable("example.vpx") // set active table to allow vpx to load and start it & quit menu-table
With these extensions we can build menutables.
My menu.vpx is a working demonstration.
You can see it running in this unprofessional screen grab of my oculus mirror software:
https://youtu.be/PNuFOQ8N_AY (please mute it!)
How to configure your own Menu based on my menu.vpx:
1) Open it in Visual Pinball.
2) Open the script-editor.
3) Edit this part in the header of the table script:
MyTables = Array (_
"VR ROOM AC-DC_Premium-1.5 (VRR 1.0).vpx",_
"Medieval Madness (Williams 1997)v1.1R2.5-[D&N][FSS][DMD][TOP][CCX+PGI][SHD].vpx",_
"Attack from Mars (Bally 1995) v1.1R2.6[D&N][FSS][DMD][FF][CCX+PGI][SHD].vpx",_
"VR ROOM Indiana Jones The Pinball Adventure (Williams 1993) V11.vpx",_
"Batman Dark Knight (Stern 2008)v1.0R2.6-[D&N][FSS][DMD][FF][CCX+PGI][SHD][10.6].vpx",_
"VR ROOM Diner VPX V11.vpx"_
MyTables_previews = Array (_
MyTables is the filename-arrray.
MyTables_previews are the Spinner-Images. They must be added in the Tables Media-Manager. You can export one of my demonstartation images as your new image-template.
Now you can start it with my special VPinballX_GL.EXE.
(In this special version, the new plunger.PullbackandRetract function of mfuegemann is allready included.
For this, you need to use the Scripts/core.vbs.)
The changed sources are in cpp_src.zip. If you don't want to compile your own exe, you don't need them.
Important Info 2020-02-24:
Dont't use the new vpvr 10.7 - it's buggy and only for alpha testing.
Please stay at the good working 10.6 version: VPVR.zip
You can rename the original exe, so you can use this as a fully working editor next to my player.
A new approach
I want to get rid of compiling the VPVR, if great updates arriving for this. So i build a new loader to get the same result from outside VPVR.
Now you only need two files:
1) The loader (vpx-vrlauncher.exe)
2) The menu-table (vpx-vrlauncher.vpx)
You only need to configure your vr-tables path in the vpx script. Just edit and save it with VPX.
The loader starts "VPinballX_GL.exe" automatically, so you only have to start the vpx-vrlauncher.exe - not the VPXEditor. It's necessary to put the vpx-vrlauncher.exe and the vpx-vrlauncher.vpx in the same directory as the "VPinballX_GL.exe".
Performance-hint: If you select a table, the table will be loaded and autoloader will be paused, till table is closed again.
If you exit a table, the menu-table will be shown again for selecting the next table. Same procedure as before.
If you quit the menu, autoloader will be closed too.
For the "VPinballX_GL.exe" i'm using the fantastic new version of Rob Ross, you can find in the VR-VPX Group on facebook.
It's very stable and the loading speed is amazing with it.
The project ultimately continued to develop here: