VR Grabbable
In depth learning on Basic Scene Configuration can be found in this course in Motive Academy.
Makes an object “Grabbable” using the grip button on a VR controller.
Note that many of these settings are overridden by any VR Attachable that’s attached to this object. See Attachables.
Fields
Name | Description |
---|---|
Show When Grabbed | Objects to show when the item is grabbed. |
Show When Not Grabbed | Objects to show when the item is not grabbed. |
Grab Anchor | A transform that defines the grab position of the object for either hand. Will align with the Grip Position of the grabber. |
Left Hand Grab Anchor | A transform that defines the grab position of the object for the left hand. |
Right Hand Grab Anchor | A transform that defines the grab position of the object for the right hand. |
Usable Object | Associates this grabbable with a Usable Object (see Usable World Objects ) |
World Object | Associates this grabbable with a World Object Behaviour. |
Allow Distance Grab | Allow the object to be grabbed from a distance. |
Only Grabbable When Targeted | If set, the object is only grabbable if it is currently targeted by an Object Interaction or other Interactible Resource. |
Allow Offhand Grab | Allow the object to be switched from one hand to the other. |
Snap Position | Whether to “snap” the object to the grabber’s position. This is often useful for distance grab, but not as natural for proximity grab. One of: Never: Leave the object in its starting place. Object will float and move at a distance from the grabber. Distance Only: Only snap if user is grabbing object from a distance. Always: Always snap the object. |
Snap Orientation | Same as Snap Position, but for the object’s rotation. |
Ignore Offhand Snap | If set, do not snap when switching hands (generally should be set to false for natural handoff). |
Track Position | If set, track the grabber’s position. |
Track Orientation | If set, track the grabber’s orientation. |
Grab Points | If set, defines the colliders that represent the object’s grab points. By default uses any colliders in the object hierarchy. |
Distance Grab Colliders | If set, defines a different set of colliders for detecting distance grab. |
Highlight When Held | If set, the object will be highlighted when held. See Object Highlighting. |
Limit Move Axis | If set, limits the move axis set below. (Note that this is often better handled using joints or limits on the Rigidbody.) |
Move Axis | The axis to limit motion. |
Grab Requirements | Detailed requirements for how this item can be grabbed. All must be met for the grab to succeed. Hand: Hand to use Target Name: A named “Grab Area.” Used by Equip Targets (e.g. grab at right shoulder). Grab Points: An array of colliders that satisfies this requirement. |
Required Hand | The hand that user must use for grabbing. |
Rigidbody | The Rigidbody used by this Grabbable. |
Grab Highlight Object | If set, use this object to apply any highlights. |
Release Behavior | Return - object is returned to where it was picked up Use Physics - object acts as a normal rigid body, can be thrown, dropped, etc. Delayed Return with Physics - object acts as a normal rigid body for a brief period (typically 1s), then is returned to where it was picked up Leave in Place - object is left where it was let go Leave and Reset Rigidbody - object is left where it was let go and Rigidbody is reset to its initial settings Physics then Kinematic - Use physics until the object comes to rest, then set the Rigidbody to Kinematic. This is good for allowing a natural physics reaction when letting go, but then disabling physics so that you avoid awkward collisions, etc. |
Use Gravity on Release | Whether to apply gravity on release. This allows you to create a rigid body that otherwise ignores gravity, but allows you to apply gravity on release so that the object can be dropped. |
Working Surfaces Only | If true, this object will only say on surfaces marked as a “Working Surface” (see World). If it uses physics on release and lands on a non-working surface, it will return to where it was picked up. |
Release When Stuck | If true and Move Mode = “Physics”, then release the object if it gets “stuck”. |
Release When Stuck Distance | How far the grabber moves away from the object before it’s considered “stuck”. |
Release When Stuck Time | How long the object has to be stuck (i.e. more than Release When Stuck Distance away from the grabber) before it is released. |
Move Mode | How the object is moved by the Grabber Kinematic: Object Rigidbody is set to Kinematic and object transform is directly updated. Physics: Grabber uses physics to move the object, allowing it to get “stuck,” etc. Static: Object does not move. |
Events
Name | Description |
---|---|
On Grab Begin | Grabber has grabbed the object. |
On Grab End | Grabber has released the object. |
On Grab Focus Begin | Object is focused by the Grabber as a candidate to be grabbed. |
On Grab Focus End | Object is no longer a candidate to be grabbed. |
On Grab Click | User has clicked the trigger button while holding the object (trigger down & up). |
On Grab Trigger Down | User has pressed the trigger button down while holding the object. |
On Grab Trigger Up | User has released the trigger button while holding the object. |
Rigidbodies
Grabbables require a Rigidbody. Although not a Motive component, it’s important to understand how Rigidbody properties affect the Grabbable.
Name | Description |
---|---|
Mass, Drag, Angular Drag | Physics parameters that affect how the object behaves when physics is applied. |
Use Gravity | Whether the object is subject to gravity. |
Is Kinematic | Kinematic objects are ignored by the physics system. Note that this and “use gravity” can be temporarily overridden by the VR Grabbable to create more natural release behaviour for kinematic objects. |
Colliders
VR Grabbables require one or more colliders to detect the grab intent and action. The colldier may or may not be configured as a trigger.