FAQs

Here's the answer

Compile errors after importing the asset

HPTK extensions require HPTK to be installed in the project. If you find multiple errors like this after importing an HPTK extension, it is very likely that the HPTK package is missing in the project:

[...] The type or namespace name '...' could not be found (are you missing a using directive or an assembly reference?)

HPTK package can be installed from Package Manager. From Package Manager window, click on Add package from git URL and paste the following URL:

  https://github.com/jorgejgnz/HPTK.git

Click on Add and Unity will download the package. This package has no dependencies.

Hands are unstable and move like jelly

Jelly hands are usually the result of using an incorrect physics solver or a number of solver iterations too low.

You can find the recommended physics settings in the Setup section.

Hands move too slowly

HPTK.defaultConfAssets contains the list of configuration assets that will be used when the refernce to some module¡'s configuration is missing. If some InputMode.configuration is null, the InputConfiguration included in HPTK.defaultConfAssets will be used.

DefaultSetup prefabs come with an HPTK singleton with predefined configuration assets in HPTK.defaultConfAssets. The most stable configuration asset for Input module is the one at path Packages\HPTK\Samples\Configurations\Input\Confident.asset.

Confident input configuration uses tracking noise smoothing which can is recommended for most devices. However, this smoothing causes the hand to move with some delay and robust hand tracking doesn't need noise smoothing.

The most common way to fix this issue is replacing the existing InputConfiguration reference in HPTK.defaultConfAssets by Packages\HPTK\Samples\Configurations\Input\Unsmoothed.asset.

This configuration has the same values a confident configuration but without noise smoothing.

If you are using your own input configuration, disable and reduce variables related with noise reduction. More info at InputConfiguration section.

Hands are not moving when using Unity Editor

HPTK can use different default input data providers (IDPs) in PlayMode or in build. By default, all DefaultSetup prefabs come with a different IDP for editor and build.

To use the same IDP for editor and build, in the HPTK singleton, replace the IDP referenced in HPTK.leftEditorIdp by the same IDP used in HPTK.leftBuildIdp so both varaibles refer to the same IDP. And the same for the right side. You can find more info in the section about HPTK Singleton.

Using pose-driven IDP in editor is recommended as it enables developers to move and animate hands as any other object in the scene which can be useful for automated testing.

Finger tracking using only UnityXR

UnityXR does not (yet) support finger tracking. Using DefaultSetup.UnityXR prefab allow you to control hands with controllers ony.

Slave hands are passing through objects

Colliders in DefaultAvatar use the collision layer 8. New objects (and their colliders) will use the layer 0 by default. Depending on the collision matrix configuration, collisions between colliders in layers 0 and 8 can be ignored.

This can be solved by making new objects to use layer 8 or enabling collisions between layer 8 and other layers in the collision matrix. Using layer 0 for slave hand colliders is not recommended.

I need master hands only

Avatar, Input and GestureDetection modules can work without physics and slave hands. To use master hands only, disable or remove slave representations and HPTK modules that depend on physics: Puppet and ContactDetection.

For DefaultAvatar prefab, the objects that should be disabled or removed to use master hands only are those that appear as selected in the following image.

Hands offseted on eye level tracking origin

HPTK requires to have virtual feet. If tracking space is at eye level you can make a virtual feet by creating an empty object with PositionContraint configured as shown in the image. Then reference that virtual feet in HPTK.trackingSpace. You can find more details here.

Can't find what you are looking for?

If you need technical support or you have some suggestion please join the Discord server.

Last updated