3

Upcoming: Trigger Volumes and VR Controller APIs

Trigger Volumes

These are a new object type in System Objects that do not have normal collision or physics behaviors. They do not fall to the ground, and objects and avatars move freely through them. Scripts attached to Trigger Volumes however can subscribe to enter and exit events for when those objects and avatars move through them. The teleport scripts will be updated to work on trigger volumes in addition to dynamic objects.

The API looks very much like existing collision detection but with a new type CollisionEventType::cTrigger a new CollisionEventPhase argument that should be Enter, Leave, or Invalid.

VR controller APIs

It will be possible to get the hand and HMD position and orientation for avatars in the scene that are using VR tracked gear. Additionally the tracking of hands has been updated so they can interact with Trigger Volumes.

The new APIs are:

public enum ControlPointType : byte
{
    /// A VR head mounted display (HMD) control point, for the position and direction of the HMD.
    GazeTarget = 0,
    /// Left hand VR controller.
    LeftTool = 3,
    /// Right hand VR controller.
    RightTool = 4,
    /// Count of total possible control point types.
/// Control points from 0 to (cCount - 1) are valid, however not all have meaningful data on the server for scripts.
    Count = 9,
    /// An invalid control point.
    Invalid = 255
}

public Sansar.Vector AgentPrivate.GetControlPointPosition(ControlPointType type)
public Sansar.Quaternion AgentPrivate.GetControlPointOrientation(ControlPointType type)
public bool AgentPrivate.GetControlPointEnabled(ControlPointType type)

Additionally collision event handlers pick up a ControlPointType argument which is only valid if it is one of the VR colliders (LeftTool or RightTool) that causes the collision.

7 comments

Please sign in to leave a comment.