Environment Profiles – Store and Swap VR Boundaries
What’s an Environment Profile and why it’s needed? The SynthesisVR Environment Profiles cover headset variables such as boundaries, button states, scheduled HMD restarts, and other configuration and environment adjustments. With the growth of the LBVR segment and the VR industry in general, we do see more and more standalone HMDs released for business purposes. As of March 2023, there are multiple established platforms and HMD models: What SteamVR has been great at for so many years is providing a unification between all the PCVR HMDs. Regardless if you go for HTC Vive, Valve Index, Oculus, PiMax, or another PCVR HMD, they always get linked to SteamVR and become a viable LBVR option. With the growth of standalone HMDs, this has dramatically shifted. The manufacturers bundle their products with custom software and functionalities that cannot be used on a competitive brand. This all creates a bit of chaos and not to make it any easier – all of the standalone HMDs have the option to operate as Wireless PCVR HMDs (as a way to fuel more power / stunning visuals). Getting familiar with the specifics of all manufacturers and making them part of your daily operations can be challenging. SynthesisVR is the first LBVR platform to unify the environment variables into Environment Profiles in a simple yet powerful interface. Setting up a new Environment Profile: Step 1) Find the Environment Profiles page Head to “my.synthesisvr.com >> Administration >> Devices” and switch to the brand new “Environment Profiles” tab: Step 2) Creating an Environment Profile There are a few simple concepts behind the Environment Profiles: Example Configurations: Room-Scale: Free-Roam: Room-Scale profile for PCVR->HMD streaming: Free-Roam profile for PCVR->HMD streaming: Step 3) Specify the hardware platform that will be used for the specific Environment Profile: Please note that upon applying your selection, you no longer would be able to change it for the current Environment Profile. Luckily, deleting a Profile and creating a new one is quick enough. Upon defining the hardware platform, the next step is to define platform-specific actions. Examples: An HTC Focus 3 profile that disables the Focus 3 popup menu and, if there are any boundary changes (like switching between room-scale and free-roam spaces) – then the HMD gets restarted. Once the session is over, the Focus 3 popup menu is re-enabled and the HMD is shut down to save battery: A Pico profile that automatically turns on the screen at the start of the session and disables the screen upon the session ends. During session, the screen will be always on, regardless if the HMD is actually in use: Disable the 2D menu for Free-Roam sessions: Step 4) Export and Sync the boundaries: Click the boundary icon right from the Environment Profiles page: The pop-up will guide you through what devices(=HMDs) are online and which ones match the hardware platform: As can be seen on the screenshot, the Environment Profile won’t let you export SteamVR chaperone data from a PC streaming to an HMD. In that case, you have to run Synthesis on the HMD and use an Environment Profile with the appropriate Hardware Platform. Upon clicking the Save button, the export signal is submitted to the HMD: Please wait until you see a confirmation popup: Your boundary data is saved in two locations: Known Limitations: HTC Focus 3: Pico 4 Enterprise: Meta Quest 2:
Synthesis VR Proxy – Cloud Proxy for VR Arcades – Amazon / AWS
1. Obtain your Proxy Activation Code 2. Subscribe for the SynthesisVR Proxy Image on the AWS Marketplace and launch your instance We do recommend the Medium General Purpose AWS instances (t2.medium ; t3.medium ; t3a.medium). As with any other AWS Windows-based instances, make sure your RDP port allows external connections or you could be unable to connect to your instance. 3. Complete your installation Upon RDP connecting to your instance for the first time, the “Local Manager” app will automatically launch in full-screen mode and will ask for the Activation Code from step 1. Enter the code and wait for the installation process to complete. It could take a couple of minutes. 4. Finalize Your Proxy installation is done and your SynthesisVR Access Point instances would automatically detect and connect to your newly installed Cloud Proxy. Note: The Cloud Proxy installation process is streamlined, but it also may not be straightforward for businesses who do not have previous experience with AWS. Please do not hesitate to seek assistance from hundreds of certified AWS professionals or hire a SynthesisVR engineer as well. You don’t know what a SynthesisVR Proxy is or looking for self-hosted options? Find out here:
Synthesis VR Proxy – Troubleshooting
How to troubleshoot the SynthesisVR Proxy? 1) Access the “Run” prompt by press the Windows key + R 2) Type: services.msc 3) Scroll down the list until you find SynthesisVR – Proxy 4) If the service is not running, click on the “Start” option on the left side (or the Restart button). You should see the following popup:When the popup disappears, the service status should be changed to “Running”. 5) If the status remains empty (meaning – not running) or you don’t have permission to start the service, you could simply restart the computer. By default, SynthesisVRMainService is configured to start automatically along with Windows. 6) If SynthesisVR – Proxy still isn’t starting, please reach to us at info@synthesisvr.com
localmanifest.json Cheatsheet
“pauseSessionCountdownWhenNoPID”: true, The session clock would automatically pause when there is no any running game. May not be suitable for multiplayer sessions “dontPauseIdlePlaybackOnPID”: true, The idle playback wont pause automatically upon starting a session and/or a game. Suitable for KIOSK installations. “disableAPGameChange”: true, Disable the ability to start games through the Desktop Menu of the Access Point “disableAPSessionStart”: true, Disable the ability to start sessions through the Desktop Menu of the Access Point “disableKeyboardControl”: true, Disable the keyboard control for the VR menu (arrows, Enter, Backspace) customAnnouncementInSeconds: { “30”: “Custom Message 30 seconds before the end” }, Add precise (in seconds) text-to-speech support “nfc_shared”: “shared”, Fine tune your NFC integration. The default value is “shared” and your other options are “direct” and “exclusive”. You don’t have to set this up unless your NFC documentation hints otherwise “nfc_protocol”: “T1″, Fine tune your NFC integration. The default selection is “T1” and other options are: “default” ; “raw” ; “t0” ; “tx” ; “undefined” “preferredMac”: “000000000000”, In the case of multiple connected network adapters, define the MAC address of the primary one KATVR custom locomotion – https://synthesisvr.com/knowledge-base/kat-i-o-custom-locomotion-settings-for-non-kat-i-o-games/ “disableFTDI”: true, disable the default FTDI coin-op integration. This could be needed for third party FTDI based integrations “singlePerSessionLaunch”: [1,15], A comma-separated list of games that can be launched only once per session. This can be used to prevent non-PPM content to be launched multiple times when you are charging your customers per minute. “dontDownloadTrailers”: true, makes sure the Access Point won’t be trying to download and synchronize any trailers. Usually to be used in the case when you manage your own folder of playback videos.
Multiple networks
Required SynthesisVR version: 3.12.4 In some setups, you may have Synthesis running on a VR station having 2 or more network adapters. In those cases, Synthesis will use the first connected adapter to determinate its settings. If you would like to change that, you have to add the following line to both your Access Point and Server Mode (Proxy): “preferredMac”: “001122334455”, where 001122334455 is the MAC address of the adapter you would like to default to. For the “Access Point” app, add that line to: %localappdata%\SynthesisVR\app\Resources\localmanifest.json For the Server Mode (Proxy): C:\Users\synthesisvr\AppData\Local\SynthesisVR\op.json
The SynthesisVR Engine
The “SynthesisVR – Engine” is a set of tools, purposed to unify different game functionalities without limiting the VR studios to specific scopes. This is one of the most important innovations in LBVR. “SVR Engine” can be described the “glue” between: · The games launcher · Advanced game settings · Scripting language · Network discovery · Provisioning tool At this moment, the Engine is supposed by only handful of titles, but we sees huge interest in our technology by a significant number of studios. Scripting variables We uses XML with the <svr> tag being the one specifying a custom action. The tags can be of two types: · static – performs custom actions or returns the same result across all PCs ü SynthesisVRNetworkNegotiation § timeout — specifies how long the system will be looking for players § start_delay – a delay in milliseconds. Helps in the cases where the game server have to be started before the actual client PCs ü pcs ü server_ip · condition – defines a condition and returns a text based on the condition result ü pcs § min – minimum number of stations § max – maximum number of stations § true – a value if the number of involved PCs is between min and max § false – a value if the condition does not match ü is_server § true – return value if the current PC is the server/host § false – return value if the PC is not the server/host How to perform automated network discovery: <svr timeout=”10000″ start_delay=”5000″ maxpcs=”4″ static=”SynthesisVRNetworkNegotiation”></svr> How to determinate if the current PC is the server: <svr condition=”is_server” true=”yes” false=”no”></svr> Is this a multiplayer session: <svr condition=”pcs” min=”2″ max=”4″ true=”yes” false=”no”></svr> <svr static=”server_ip”></svr> What is the server IP: Real life example For the purpose of the example, we’ll take “Arizona Sunshine Arcade”. 1) Go to “Administration >> Games & Licensing >> Your Games”. Locate Arizona Sunshine Arcade and click on it 2) Create a new game variant: 3) Go to “Administration >> Games & Licensing >> Game Categories” and assign “Arizona Sunshine – Multiplayer” to the list: 4) Save the changes and “Refresh” the page with the game categories 5) The “Advanced Game Settings” button would appear and it will lead to the following settings: Take the default “Arizona Sunshine Arcade” config file and apply the Engine rules. Complete example: {<svr timeout=”10000″ start_delay=”5000″ maxpcs=”4″ static=”SynthesisVRNetworkNegotiation”></svr> “IsMultiplayer”: “<svr condition=”pcs” min=”2″ max=”4″ true=”yes” false=”no”></svr>”, “IsHost”: “<svr condition=”is_server” true=”yes” false=”no”></svr>”, “NumberOfPlayers”: <svr static=”pcs”></svr>, “AutoStart”: “<svr condition=”pcs” min=”2″ max=”4″ true=”Holdout_Canyon” false=””></svr>”, “ConnectIPAddress”: “<svr static=”server_ip”></svr>”, “ForceLanguage”: “”, “HordeModePlayTime”: “00:00:00”, “HordeModeReviveSeconds”: “00:00:10”, “MutilationAndBlood”: “yes”, “AutoReloadOnEject”: “yes”, “LaserSight”: “no”, “SingleHandMode”: “no”, “ForceLeftHanded”: “no”, “InvincibleAtStartOfLevelSeconds”: 180.0, “FriendlyFire”: “yes”, “SelfDamage”: “yes”, “Invincibility”: “no”, “InfiniteAmmo”: “no”, “ForceStartWeaponMainHand”: “”, “ForceStartWeaponOffHand”: “”, “ForceStartWeaponSingleHand”: “”, “AutoSkipEndScreenTime”: “00:00:30”, “PlayVideoAfterTimeIdle”: “23:59:59”, “VideoFilename”: “test.avi”, “PrintHighscore”: “no”, “ShowPrintDialog”: “no”, “LocalLeaderboardNetworkFolderPath”: “”, “NetworkTickRate”: 20, “InputDeviceLeftModelType”: “”, “InputDeviceRightModelType”: “”, “MainMenuQuitButton”: “yes”, “MatchMakerBranch”: “”, “RenderScale”: 1.0, “IsUsingNewSteamVRInputSystem”: “yes”, “UniquePlayerIndex”: 0, “UniquePlayerIndex0Color”: { “r”: 0.75, “g”: 0.7900000214576721, “b”: 0.04699999839067459, “a”: 0.0 }, “UniquePlayerIndex1Color”: { “r”: 0.8299999833106995, “g”: 0.03500000014901161, “b”: 0.03500000014901161, “a”: 0.0 }, “UniquePlayerIndex2Color”: { “r”: 0.03500000014901161, “g”: 0.03500000014901161, “b”: 0.8299999833106995, “a”: 0.0 }, “UniquePlayerIndex3Color”: { “r”: 0.03500000014901161, “g”: 0.8299999833106995, “b”: 0.03500000014901161, “a”: 0.0 } } On multiple of your stations, start the “Multiplayer” version through SynthesisVR. The result: https://svrstorage.s3.amazonaws.com/kamen/v3.7-launch-in- arizona.mp4 The “Engine” will be a subject of multiple additions over time. For questions or ideas, shoot us an email: info@synthesisvr.com
Firewall and Network Information
Proxy: TCP 2010 – Video Streaming(optional) 5060 – VoIP(optional) 5066 – VoIP(optional) 8005 – SynthesisVR communication port(mandatory) 8088 – SynthesisVR communication port(mandatory) UDP 5060 – VoIP(optional) 8070 – Synthesis communication port (recommended) 8071 – Synthesis communication port (recommended) All ports above 10000 (VoIP Audio –optional) Access Point: TCP 5060 – VoIP(optional) 8006 – SynthesisVR communication port(mandatory) 8007 – SynthesisVR Leaderboard 8079 – SynthesisVR communication port(mandatory) 8080 – SynthesisVR communication port(mandatory) UDP 5060 – VoIP(optional) 8070 – SynthesisVR communication port(mandatory) 8071 – SynthesisVR communication port(mandatory) All ports above 10000 (VoIP Audio –optional)
Setting up and Customizing Waivers
SynthesisVR supports custom waiver forms which can also be used as customer registration forms as well. By using SynthesisVR waiver forms you save money from subscribing to 3rd party waiver forms and with inbuilt customer registration you can track all your customers. How to customize waiver form: Head to Administration >> PRO >> Online & Email Settings >> Web Templates The following templates have to be modified: waiver_text waiver_parents_text Both of these are HTML formatted and would need to be edited accordingly. Please reach out to us for help with this if needed. To add your logo in the waiver form edit this template: logo The logo needs to be a publicly accessible image. Please let us know if you need hosting help. How to access the waiver for your customers: Click Dashboard on your admin panel You will see a Waiver Form button. Clicking this will open a pop up. You can copy this link on a tablet or any smart device and use it for client registration as well Note that if you need to have the waiver access outside of your arcade, please check this link: https://synthesisvr.com/knowledge-base/online-waivers/
Per Station Arguments (with Rec Room example)
Per Station Arguments (with Rec Room as an Example) Head over to Administration >> Arcade Setup >> VR Stations Click on the edit for the station you want to enter: In the “Settings”tab of the VR Station, click on the Own Station Parameters+ button and a new line item will show up. On the left, you’ll enter the name of the parameter you want to add and on the right will be what that parameter will be. As an example, for Rec Room you might want to assign a profile name for each station. Note that this could be a portion of a final parameter if you want. Click on Save when done. Head over to Administration >> Business Setup (tab) >> Games, Categories, Licenses Locate the game you want to edit the launch arguments for and click on it. Be sure you are in the Settings tab and find the Game Arguments section,you’ll be inputting launch arguments in there. In this example, we want In the arguments, for the items you want to change, you will insert svr:<parameter name># (removing the < and >). So, here are some examples of what we might see: When you’re done, click save. In the examples above, the portion in that starts with “svr:” and ends in “#” will be replaced by the corresponding information from the VR Stations section. If the parameter does not exist, then the whole item, including the “svr:” and “#” parts will be passed to the game. If you wanted, you could also create a game variation to launch with different parameters, for example different rooms in Rec Room. To do that, click on the Game Variation button and edit any information you want changed, with the minimum being changing the name of the Variation. (note that in the above, we have added a room name for Rec Room, but you will have had to have created this room and named it in advance before you can use it in an argument). Click on Save when done. To add this new Variation to your game categories, head over to Administration >> Games, Categories, Licenses >> Categories Either edit or create a new Game Category and at the top of the list of games in the search field, type in the name of the new Variation you created. From there you can add it by double clicking it on the left. Save the category by clicking on the Save button when done. Once the Game Category is attached to your Work Rules, you and your customers will be able to launch that game using the parameters you set.