Updated on 4th Feb 2022

Hands and Interaction

These Physical Hands are made to interact with absolutely anything. The Hand Mesh is the default Unreal Engine Mannequin Hand, which is included with the VR Template Project inside UE4.

Grabbing and Pulling

Simply add a "grab" Tag to any Actor or Component that should be grabbed by the Hands. The same for Pulling an Object, you simply have to add a "pull" tag to it. You can also change the actual Tag names inside the settings of the VR Hand Blueprints.

Finger Collision

The Hands have Collisions for the Index Finger and Thumb. The Middle, Ring and Pinky Finger are combined into a single Collision.

Finger Solver

For any grabbed Object that does not have a Hand Interaction Component with a custom Animation, the Hands will automatically try to position the Fingers to the nearest Surface.

Disable Body Collision on Grabbed Objects

Since the Physics Pawn and Body can interact with any Object, it will cause bigger Objects like the Crowbar or Rifle to collide with your Body. This can cause issues when aiming while Shooting for example. To prevent this, use the BPC_HandGrabCollisionUpdater Component when needed. It will automatically change the current Collision Profile of the Root Primitive Component (Static Mesh) to ignore the Player Pawn.

Hand Interaction Component

Additionally to grabbing Objects, you are able to interact with any Actor that has 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!

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 Solver 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.

Other 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!

  • 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
  • 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. Also relative to
    • 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
  • Priority
    • 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.