Updated on 4th Feb 2022

Hand Interaction Component

Additionally to grabbing Objects, you are able to interact with any Actor that includes a BPC_HandInteraction Component. This creates a fixed Socket for your Hands to grab, while also giving you the Options to pull Triggers and do Button Presses.

It is recommended to use the Example Blueprints contained in the Demo Folder to learn and understand how to use this Component and its Settings! Copy pasting existing interaction setups is valid and recommended!

How to add and grab the Interaction Component

We will use the BP_Gun from the Demo Content as an example for this!

Any Hand Interaction Component must be placed under a Primitive Component (Static Mesh Components for example). The Primitive Component needs to have a "grab" tag!

In Addition to the Interaction Component, it is recommended to place a BPC_HandAttacher_Right under it. You can move it around and place it into a position that will be used for the physical hand grabbing.

To actually use the Hand Attacher, you will have to change the "Hand Offset Type" Setting on the Hand Interaction Component to "FixedAttacherPositions".

The last step is to mirror the Right Hand Position of the BPC_HandAttacher_Right with the Setting "Mirror Hand Fixed Position". This automatically generates the needed Position for the Left Hand, based on the BPC_HandInteraction Component as the Root.

Using Interaction Events

Every Hand Interaction Component allows you to Bind Event Dispatcher Events for Trigger and Button Events. You can use this to shoot bullets from a gun for example.

Custom Animations for every Interaction

You can add Custom Animations for every Interaction Component. If you leave the "Grab Type" of the Interaction Component to "Default", it will use the Finger Poser to generate a possible Hand Pose. The Fingers of the Hand will move between 3 States: Stretched, Opened and Closed.

  • Stretched = Fingers do not touch the Controller.
  • Opened = Fingers do touch the Controller, but are not pressing Controller Buttons.
  • Closed = Fingers are pressing Controller Buttons.

Settings

It is recommended to use the Example Blueprints contained in the Demo Folder to learn and understand how to use this Component and its Settings!

Hand Interaction Settings

  • Grabbing Enabled
    • Enables/Disables Grabbing of this Interaction Component. Can be changed in Blueprints with the Function "Set Grabbing Enabled".
    • Examples: Complex Gun
  • Max Distance
    • The Maximum Distance to check if the Object should be grabbed at the Interaction Component.
      If no Components have been found, it will simply grab the Object from any Position with the Finger Solver and without Interactions
  • Pull Priority
    • Only used for Pulling Objects
    • Override Priority of the Maximum Distance. If multiple Interaction Components are overlapping at a certain Position, you can use the Priority Value to make one Component more important to grab first.
  • Hand Offset Type
    • Decides the Position and Orientation offset relative to the Interaction Component.
  • Mirror Hand Fixed Position
    • Mirrors the BPC_HandAttacher_Right Position for a possible Left Hand Position. Only used with the "FixedAttacherPositions" Offset Type.
    • Examples: Guns, Rifle
  • Allow Flip
    • Similar to Mirror, but flips the left or right Hand Position. This is useful to allow an Object to be grabbed in 2 different Directions.
    • The Axis is relative to the Hand Interaction Component.
    • Examples: Crowbar, Flashlight, Climb Tool, Sword
  • Allow Rotation
    • This option allows you to rotate Hands around Objects. This is useful if you have Stick like Objects that can be grabbed from multiple Directions.
    • The Axis is relative to the Hand Interaction Component.
    • Examples: Crowbar,Flashlight, Sword, Climb Tool, Rifle (Front Balancing part)
  • Area Offset Axis
    • This option allows you to to move the Hand along a certain Axis up and down.
    • Examples: Crowbar
    • The Axis is relative to the Hand Interaction Component.
  • Max Area Offset
    • The Distance of the Area Offset Axis.
    • The Position is relative to the Hand Interaction Component.
  • Enable Multi Hand
    • Using this allows you to grab an Object with multiple Hands on a single Interaction Component. This is useful in combination with "Area Offset Axis", but will disable any Event Dispatchers for Triggers and Button Presses.
    • Examples: Crowbar

Hand Physics Setting

The Hand Physics Settings allow you to override the VR Hand behavior of the grabbing. This can also be done through Blueprints with the Function "Set Unlocked Motion". Examples: Rifle, Bow and Arrow.

  • Use Unlocked Motion
    • Disables Secondary Constraints on the VR Hands. Allows for more freedom in all directions, but reduces stability on the hand-object connection.
  • Use Unlocked Rotation
    • Disables Rotation on Primary Constraints on the VR Hands, while completely disabling Secondary Constraints.