Adding a New Controller

Folder Structure

This guide will assume that you are using the folder structured illustrated below. It doesn't matter where you put the CustomController folder but keep in mind that locating it outside of the VRImmersiveHands folder could be better in case you would want to upgrade to a newer version.

  • CustomController

    • MyCustomController

      • Anim

      • Materials

      • Textures

Importing the Mesh (Advanced)

Adding a new controller to the content is rather easy. To add a new controller mesh;

  1. Find the 3D model for the controller. This usually can be found at manufacturer’s website.

  2. Import the 3D model to Blender and make sure scale is correct.

  3. Set each button’s pivot properly. Have a look at the Bones of the controller skeletal meshes included in the content for this. A good pivot placement will ease creating pressed button animation. There are tools to only change pivot in Blender. Exporting other skeletal meshes and having a look at them in Blender will help a lot. The 2 most important things are that you get the scale and pivot for the stick right.

  4. Import it as Skeletal Mesh and leave Skeleton empty for the first one. If succesful, it will be imported as a Skeletal Mesh and a Skeleton will be created for it. You can use same Skeleton for Left and Right meshes.

  5. Create a mask for every button. Have a look at the provided controllers.

Creating Animation Assets (Advanced)

  1. Duplicate Anim_XXX_Idle and name it as Anim_XXX_Pressed.

  2. Create an Anim BP.

  3. Modify the Stick 2D part so that X=1, Y=0 tilts the stick on Y+ axis and X=0, Y=1 tilts the stick on X+ axis.

Adding it to the Data Table (Advanced)

Hand Animations (Advanced)

Here comes the hard part. This part will take a long time and patience. You can use Control Rig to create these animations.

  1. Utilize the Using Control Rig - Advanced Level and Bake To Control Rig to create animations.

Hint Setup

If you want to show hints on your buttons follow these steps. Have a look at the provided controllers for example.

Hint feature expects the materials to be in a certain order in DT_Controllers.

Material Order in the Hint Material Arrays

  • MI_Hologram_MyCustomController

  • MI_Hologram_MyCustomController_Culling

  • MI_Hologram_MyCustomController_DDT

  • MI_Hologram_MyCustomController_Culling_DDT

  • MI_Highlight_MyCustomController

Hologram Materials

  1. Duplicate materials named with MI_Hologram... to your custom hands materials folder.

  2. Create finger masks for you custom hand.

    1. T_MyCustomController_B1_B2_S. B1=Button1 as R, B2=Button2 as G, S=System as B.

    2. T_MyCustomController_M_SH_P. M=Menu as R, SH=Shoulder as G, P=Touchpad as B.

    3. T_MyCustomController_T_G_TS. T=Trigger as R, G=Grip as G, TS=Thumbstick as B.

  3. Set the sRGB value of the masks to false in UE4.

  4. Replace the masks with yours.

Highlight Material

Update Button Functions (Advanced)

Go through each Update Button for each controller button.

Input Mappings

Check if your controller’s inputs are mapped in “Project Settings>Input”. If they are not, add them.

Last updated