ExistentGripComponent

Overview

The ExistentGripComponent enables realistic and intuitive object gripping in VR environments. This component is typically added to tracked objects (e.g., chairs, tables, etc) and works in conjunction with the ExistentHandSolver to simulate hand poses on virtual objects.

The component offers an in-editor preview feature which shows what the target grip pose looks like on a tracked object. This allows the user to precisely adjust the grip pose depending on the tracked object shape.

The ExistentGripComponent comes with different grip shape types which let you specify a simple grip point of more complex grippable areas on an object.

See also Grip Authoring on how to use a custom Grip Edit mode to author custom grips.

How to use

Add a new ExistentGripComponent to any actor that contains an ExistentTrackerComponent then under the Editor category click "ShowPreviewMesh". This should show a preview mesh of a hand grabbing the tracked object.

Once you can see the preview mesh, you can translate and rotate the component in the viewport to align the grip pose with the tracked object.

Change the "Grip Pose" property to the anim sequence that represents the grip pose for the tracked object you are working with.

If the tracked object should be grabbed from different angles rather than from a single point, use the "Grip Shape" to define a more complex grabbable area.

  • The circle grip shape facilitates grabbing the object at any point of the defined circle.

  • The cylinder grip shape supports grabbing the object at any point of a defined cylinder area.

Under the pose category, you can define whether to completely "Generate Dynamic Pose" or to use a target "Grip Pose" to generate the final hand pose. Dynamic Pose Generation is based on the user's actual hand position and orientation, offering flexibility in how grips are visualised and performed.

The pose generation can also check for collisions against the object being grabbed and comes with two different collision check methods which can be specified per finger, under "Finger Collision Check Types".