How to set up Collab Viewer Template for standalone Quest 2/3

Hello,

I recently got the Collab Viewer template working perfectly standalone on a Quest 3.

I had to make several simple changes to the template and I will provide them below.
Unfortunately, I am creating this from memory and might miss a step or two. If anyone is still having issues with their project, I’d be happy to help.

I’m also assuming your computer is already setup for quest development with the SDKs, NDKs and all the rest. I suggest trying to build a standard VR Template to your headset as a test. If that works, I believe this should work as well.


Project Settings:

  • Start in VR – ON
  • Use Splitscreen – OFF
  • Target Hardware – Mobile Scalable

Open BP_LoginMenuPawn and make the following changes:

  • Attach the Widget Component to the Camera and set the following transforms on the widget:
    Loc: 250, 0, 0
    Rot: 0, 0, 180
    Scale: 0.15, 0.15, 0.15
  • Set the rotation in the Y-axis of the Left and Right WidgetInteraction components to -70.

Open the Event Graph of BP_LoginMenuPawn and make the following changes:

  • Right after BeginPlay:
    • Delete the GetHMDDeviceName
    • Delete the Equals that was connected to it
    • Delete the AND Boolean
    • Connect the Platform “android” check straight to the Boolean on the Branch
  • In the “Show VR Login Menu” section:
    • Delete the “Place component in front of VR camera” node and the two reference nodes that were connected to it.
    • Connect a Delay node with duration of 2 seconds after SetVisibility
    • Connect the rest of the flow, from Delay to the existing Cast node.
  • In the “Generate random user name to avoid using VR keyboard” section:
    • Right at the end, after Set Text, you will call a CustomEvent from your widget blueprint. You will create this event in the next steps, come back to this graph and call the function here.

Open the EventGraph of Widget_MainMenu and make the following changes:

  • Create a new custom event called “BypassEvent” or anything similar.
    • Find the section labelled “Commit display name text, but only if the user has entered at least one character”. This should start with a node called OnTextChanged (usernametextfield).
    • Connect the exec pin of your BypassEvent to the input exec of SetIsEnabled that is already connected to the TRUE exec of your branch. To clarify, the branch TRUE should go to the SetIsEnabled node and the BypassEvent should also plug into the SAME SetIsEnabled node.