Schemas / Other
rig.vr.controller
v1.0.0 · stable maturity: draft 3 fields 0 required
Fields
| Field | Type | Meaning | |
|---|---|---|---|
player |
int | optional | Optional. Player index (0-based); absent = 0 |
hand |
enumleft · right · none | optional | Optional. left, right, none. Absent = none |
profile |
string | optional | Optional. Interaction profile token the host understands |
A held input device. Format when present.
Pose of the device is rig.spatial.transform. Grip and aim are child rig.vr.pose entities. Buttons, triggers, and sticks are rig.input.binding device vr into rig.input.buttons and rig.input.axes. A pulse is rig.vr.haptic on this entity.
Well-known profile tokens: khr-simple, generic-trigger-squeeze-thumbstick, oculus-touch, valve-index, microsoft-motion, htc-vive. Any other string is a profile that host implements. An unknown profile is kept; the host still maps the generic binding codes it knows.
Binding index 0 is the left controller and 1 is the right controller of that player. hand none uses index as written (a gamepad).
The tracked pose for this device is a rig.vr.tracker whose device points here, or this entity's own transform when it is the pose.
JSON Schema
Resolves at https://rig.works/schemas/rig.vr.controller.schema.json —
raw file.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://rig.works/schemas/rig.vr.controller.schema.json",
"title": "rig.vr.controller",
"type": "object",
"additionalProperties": false,
"properties": {
"player": {
"$ref": "./_defs.schema.json#/$defs/int"
},
"hand": {
"type": "string",
"enum": [
"left",
"right",
"none"
]
},
"profile": {
"$ref": "./_defs.schema.json#/$defs/string"
}
},
"x-rig-maturity": "draft"
}