Skip to content

Ready Room

When evaluating participants in VR for training or consumer research, it is important that they are familiar with VR so they provide usable results. Before putting your participants into your experience, it can be very important to teach them about basic interactions in VR and any specific conventions you use.

Even if a participant is already familiar with other VR experiences, the Ready Room lets you check that both equipment and software is configured correctly. This may include eye tracking calibration, room scale set-up, controller batteries are charged, and IPD is comfortable for the participant.

A Good Introduction to VR

Participants new to VR may behave more cautiously and less realisticially than they would in a real scenario. The Ready Room gives them an opportunity to 'warm up' and act more naturally in your VR environments.

Especially notable is the convention of how to pick up objects. Each VR controller is slightly different and many VR applications use a different button. Ready Room gives your participants a chance to learn these basic interactions so they don't have to stumble with basic controls while they should be focusing on something more important.

A Basic Introduction to VR

It is equally important not to provide overly thorough instruction to the participant before they get into your experience. For example, if you are doing consumer research testing, putting eye-catching products in this Ready Room scene will diminish the results of seeing these same products in your VR scene. In another example, assessing if a participant can safely use a tool will be invalidated if the Ready Room instructs them with every step.

Setup

After running the Scene Setup Wizard, you can press the Ready Room button to open the template scene and Ready Room setup window. Alternatively, you can open the Ready Room setup window from the Cognitive3D menu.

The Ready Room setup window will guide you through a basic setup. * You will be asked to add your player prefab to the scene * If you are using eye tracking, you will be asked to add any SDK specific prefabs so it can be calibrated and tested * If you are using room scale and a SteamVR SDK, you will need to add a Play Area component * If you have objects that the player can grab, then Oculus, Steam and other SDKs will likely require you to add components to those objects

Each project will likely need some custom configuration - this is just a template to help you get started faster.

Cognitive 3D Sessions

Since this scene is only to orient your participant in VR, you should not begin a cognitive3D session in this scene. You do not need to upload this scene to the dashboard.

Assessments

These are the individual tasks a participant must complete to demonstrate familiarity with VR. There are several samples already, but you should add more that are personalized to your experience.

When BeginAssessment is called, each child GameObject is enabled. When CompleteAssessment is called, the child GameObjects are disabled and the next assessment is begun.

Note

This assumes you already have a simple tool that will call an event. This could be built in many different ways, so the code here is provided as a high-level example

Create a GameObject and add any required GameObjects as children. Write simple and clear instructions about what the player needs to do.

hierarchy

Create a new script that inherits from AssessmentBase. This will hold some simple logic to determine when this tool is used successfully.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CustomToolAssessment : AssessmentBase
{
    //the nail the player must hit to complete this assessment
    public GameObject Nail;

    //message broadcast when hammer collides with a gameobject
    public void OnHammerUsed(GameObject hit)
    {
        if (hit != Nail) { return; }
        CompleteAssessment();
    }

    //custom cleanup - make sure participant is no longer holding hammer when it is disabled
    public override void CompleteAssessment()
    {
        Player.Instance.DropHeldItems();
        base.CompleteAssessment();
    }
}