HACs

Overview

This is the BP that loads, displays and animates the hands and controllers.

Soft Reference

HAC uses Soft References to load only the necessary assets. Thus, we have to wait for assets to be loaded asynchronously to work on them.

On Begin Play, BP_HAC calls Update HAC to set visibility and start loading. Then, if there are no errors and everything is loaded, Load Finished will be called. You should treat the Load Finished as the Begin Play for your logic. Otherwise, some of your logic might not reach their destination.

For example, if we try to set thumb position before loading is finished, Update Fingers Interface Message won’t reach AnimBP_MannequinHand and it will not give you a warning.

Settings

Variable

Description

Hand

Sets which hand this HAC should be

Controller Mesh

Sets which mesh should be used for displaying controller

Hand Mesh

Sets which mesh should be used for displaying hand

Visibility

Sets visibility of Hand and Controller

Optimized

‘Optimized’ will load static mesh for controllers, ‘NotOptimized’ will load skeletal mesh for controllers

Hand Hint Material

Hint material to be loaded for hand

Controller Hint Material

Hint material to be loaded for controller

Laser

Sets whether laser should be active or not

Collision

Sets whether collision should be enabled

Load Time Out Duration

Max loading waiting time

The default UE4 hand mesh is too big for a normal human hand. That’s why its scaled down to 0,75.

Setting Optimization to Optimized will load static mesh version of controllers for optimization.

Functions

Update Fingers

This function sets where each finger will be. 0 extends, 1 curls the fingers while -1 ignores input for that finger. All, Just Hands and Just Both are essentially the same thing. Difference is that Just Hands only works in Hands visibility, Just Both only works in Both visibility and All works in both. This will be handy if you want to use multiple visibility modes in the same application. Otherwise, you can use All.

In Both visibility mode, 1 will rest the finger on the button for most cases except thumb. Only pressing a button will further move the finger. For example, on Oculus Quest, Index value of 1 will rest the finger on the trigger, will not fully pull the trigger. Pressing the trigger button will further move the finger according to trigger axis.

Update Interp Speed

This function sets blend speed for each finger. Animation blend will not work at 0, will be almost instant at 10 and will be ignored at -1. Default value is 3,5.

You might want the Axis Event based animations more responsive and Boolean based animations to be slower. Index, Middle, Ring and Pinky are generally tied to Axis Events. While Thumb is tied to a Boolean Event.

Event Dispatchers

Actor Grabbed / Released

Lets you know if an actor is grabbed or released.

Last updated