The Alice Player will now run in VR. This opens up the use of the VR Headset and the VR Controllers. This is an area of Alice that is actively under development so this information will continue to be updated. It also varies slightly between different VR platforms. We will continue to update and add new VR platforms. We hope to add new interface language and views in the Alice IDE (Authoring Platform) but for now the majority of the programming for VR makes use of mapping existing Alice events and objects to the VR space and controls. This is an overview of the available functionality. View individual How tos for directions and examples of setting up and using these different events.

The Alice Camera in VR

The Alice camera object maps directly to the VR Headset. For spatial VR this will allow the user to move in space. You can program the camera the same way you would in a traditional Alice world to move via user input (deaultObjectMoveFor, Keypress Events) or procedural moves that are applied to the Camera.

Important VR authoring tip:

The default position of the Alice camera object has a slight downward tilt built in. This will set your VR space at a slight angle. If you are authoring for VR be sure to level your camera space by using a orientToUpright One Shot procedure for the Camera object in the scene editor.

Features under development:

Currently the use of the camera object does not update the orientation of the Camera object based on the orientation of the headset. We are working on adding a VR headset object to the Camera that would allow you to use asSeenBy Headset to allow inputs to be relative to the direction the VR user is looking.

We also will be adding VR objects(joints) under the Camera object to give more flexibility for intentional programming around moving the user relative to the VR space. More to come on this.

The Alice Mouse Click Event

The Alice mouse click events now map to the VR controller built in point at functionality for determining what the mouse is selecting with the mouse click mapping to the controller trigger. This is mapped to the primary controller for most platforms which will usually map to the right controller.

defaultModelManipulation works by pointing and clicking on the object and then dragging it around the space.

Features under development:

addMouseIsOver – We are working on a mouseover event that would then map to a point at event to help program things that don’t require a mouse click to trigger including being able to have objects highlighted when the controller is pointed at them.

setOfVisual – we are working on adding a setOfVisuals parameter to the default model manipulation so it can be implemented in a way to limit the number of objects that can be dragged around the scene

Alice Keypress Events

VR hardware generally doesn’t have a keyboard attached but does have a number of buttons. We have set our keypress events to map to different VR controller buttons. This is dependent on the different hardware for the number and nature of available buttons. We will update this as we set-up, test, and validate different platforms. We currently support the following:

Oculus Rift and Rift S
A, B, X, Y Key Events – A, B, X, Y Buttons
Space Bar Key Event – Left Trigger
Control Key Event – Right Grip Button
Shift Key Event – Left Grip Button
1 Key Event – Right Joystick Click
2 Key Event – Left Joystick Click
Arrow Key Up, Down, Left, Right -Primary Joystick Up, Down, Left, Right

HTC Vive
A, B, X, Y Key Events – A, B, X, Y Buttons
Arrow Key Up, Down, Left, Right -Primary Joystick Up, Down, Left, Right
(We are continuing to test this platform as more will work)

addObjectMoveFor works similar to how it does in Alice mapping to the arrow keys. Since the arrow keys map to the joystick inputs this will similarly fail over to joystick inputs.

Features under development:

We are working on adding an asSeenByParameter to the defaultObjectMove for so that when we enable the asSeenBy headset object you will be able to easily set up a more dynamic camera move with this default event

We are thinking about adding a second set of failover keys for the second joystick that is included on many VR platforms so that you can program separately for both joysticks.

Controller Object Programming

We have added objects to the Camera that map to the location of the controller objects. These objects can be used to vehicle objects to the controllers for visibility in the VR space, and for programming controller collisions. You will find these objects on menus that they can be sued for such as vehicle to drop downs and collision event object array constructors. They use the rightHand and leftHand naming convention mapping to the left and right controllers.

Adding More VR specific events

Our goal is to make it so that you can easily use Alice authored worlds on both desktop for building and testing and in VR. There will be additional VR specific events that we hope to add in the future.