IsdkGrabber and an IsdkGrabbableComponent. The IsdkGrabber is attached to the hand or controller and the IsdkGrabbableComponent component is located on the object you want the user to be able to grab or manipulate. When an IsdkGrabber interacts with an IsdkGrabbableComponent, a Pointer Event is generated with information about the interaction.IsdkGrabber component detects the best IsdkGrabbableComponent candidate and initiates the grab interaction. There is an IsdkGrabber component in each of the Interaction SDK rig components: IsdkHandRigComponentLeft, IsdkHandRigComponentRight, IsdkControllerRigComponentLeft, and IsdkControllerRigComponentRight.IsdkGrabbableComponent specifies that the object can be grabbed. The IsdkGrabTransformer indicates how an object can move with the interactor, and which fingers should start and end the grab. A grabbable object can be composed of multiple IsdkGrabbableComponent components.IsdkGrabber has detector components for the various ways a user can grab an object: normal hand grab, grab from a distance, and grab based on a ray intersection. On the IsdkGrabbableComponent, the Allowed Grab Detector Types determines which of these detector types the user can use to grab the object. The available grab detector types are:| Grab Detector Type | Description |
|---|---|
Hand Grab | The object can be interacted with by the user up close. |
Distance Grab | The object can be interacted with by the user from a distance by casting a cone out from the hand or controller. |
Ray Grab | The object can be interacted with by the user from a distance by casting a ray out from the hand or controller. |

IsdkGrabbableComponent, the Allowed Input Methods determines what poses the user can use to grab the object. The available input methods are:| Input Method | Description |
|---|---|
None | No input method filter is applied. |
Pinch | The object can be grabbed by pinching the index finger and thumb together, holding it between them. |
Palm | The object can be grabbed by closing one or more fingers around the object, holding it in the palm. |
IsdkGrabTransformer component. This component contains properties for configuring how distance grab interactions behave, whether to allow only a single interaction at any one time or if multiple interactions are allowed, how to constrain the object when it is moved during an interaction, and whether the object can be thrown and how it behaves when thrown.IsdkGrabTransformer, the Distance Grab Motion determines the reference frame for transforming the grabbed object. The available grab types are:| Grab Motion | Description |
|---|---|
None | Uses your hand as the pivot point when moving the grabbed object. |
Pull To Hand | The object will move to the hand when grabbed and then behave the same as an object that was grabbed up close. Various options are available to customize this motion. |
Manipulate In Place | The object will stay in its current location when grabbed and will move relative to your hand motion. |
Relative To Pointer | The object will move using your hand or controller pointer pose as a pivot point. |
IsdkGrabTransformer, the Multi Grab Behavior determines whether the object can have only a single grab point from a single interactor or multiple grab points from multiple interactors. The available grab types are:| Grab Behavior | Description |
|---|---|
Single Grab First Retained | Enforces a single grab interaction and keeps the current one active until it is canceled. |
Single Grab Transfer to Second | Enforces a single grab interaction but allows a new interaction to take over if one is already active. |
Multi Grab | Allows multiple interactions to be active simultaneously. |
IsdkGrabTransformer using the Single Grab Transformer and Multi Grab Transformer properties. Single grab transformers are used in situations where only a single grab interactor is interacting with the object, such as picking up and object and moving it around. Multi grab transformers are used when more than one grab interactor is interacting with the object, such as using both hands to rotate or scale an object.Isdk Grab Free Transformer enables translation, rotation, and scaling of the object in one or more axes and uses an Isdk Grab Free Transformer Config assigned to its Config property to specify its constraints. The Rotate, Translate, and Scale sections in config’s properties are used to enable movement along the axes and apply constraints.Isdk One Grab Rotate Transformer enables rotation of the object along a single axis and uses a One Grab Rotation Constraint assigned to its Constraint property to specify constraints. The Rotation Axis in the One Grab Rotation Constraint struct’s properties determines which axis the object can rotate around. The available options are:| Option | Description |
|---|---|
None | No rotation is allowed on the Grabbable. |
X | Grabbable can only rotate along the X axis, limited by the optional constraint. |
Y | Grabbable can only rotate along the Y axis, limited by the optional constraint. |
Z | Grabbable can only rotate along the Z axis, limited by the optional constraint. |
IsdkGrabber angle at the time of selection and the current IsdkGrabber angle, both measured from the specified axis.Isdk One Grab Translate Transformer enables translation of the object along each axis and uses an Isdk Constraint Axes assigned to its Position Constraint property to specify constraints.IsdkGrabTransformerComponent component or by adding an IsdkThrowable component. When using the IsdkThrowable component, you must set the TrackedComponent to point to the scene component you want to track on the object.IsdkGrabbableComponent to true. When stickiness is enabled, the following behaviors apply:| Behavior | Description |
|---|---|
Normal release blocked | Opening the hand or releasing the pinch gesture does not drop the object. |
Persists across input modes | The object remains grabbed when the grabber deactivates, for example when switching between hand tracking and controllers. |
Cross-hand transfer blocked | Another hand cannot grab a sticky object that is already held. This prevents the original grabber from retaining a reference to an object it no longer controls. |
ReleaseStickyGrabbable() method on the IsdkGrabber that is holding the object. This method can be called from a Blueprint event or C++ code in response to a game action, such as pressing a button or entering a trigger volume.IsdkGrabbableAudio component, you can add audio that automatically plays in response to certain aspects of the grab interaction, such as grabbing, releasing, and scaling a held object.IsdkGrabbableAudio component automatically finds the IsdkGrabTransformerComponent on the Actor by name to get the grab events to play sounds for. You can also set the IsdkGrabTransformerComponent to use by assigning it to the GrabTransformer property of the IsdkGrabbableAudio component.