License requirement
The functionality described requires a MANUS Bodypack
or a MANUS license dongle
containing one of these licenses to be connected:
Core Pro
Core XR
Core Xsens Pro
Core Qualisys Pro
Core OptiTrack Pro
Demo
Getting Started
This guide will help you get started using the Unreal plugin.
Note
These instructions can be used with Unreal versions 4.27, 5.1, 5.0, 5.2, and 5.3.
Installing the plugin
Start by logging in to our Download Center. If you don't have an account, please create one.
To add the plugin, you need to download the Unreal LiveLink Plugin for MANUS Core 2 and add it to the Plugin folder in Unreal.
There is a specific plugin provided for each version of Unreal Engine.
To install the plugin Engine wide
- Navigate to your Unreal Engine installation folder. Generally:
C:\Program Files\Epic Games\UE_5.X\Engine\Plugins\Marketplace
. - Add the plugin folder named
manus
for your specific version to theMarketplace
folder.
To install the plugin project wide
- Navigate to your Unreal Engine project folder.
- Add the manus plugin folder to the
Plugins
folder in the root of the project.- If there is no
Plugins
folder, please create one.
- If there is no
Enable the plugin in Unreal Engine
To enable the plugin in Unreal Engine, follow these steps:
- Launch your project in Unreal Engine.
- Go to Edit > Plugins.
- Find the plugin that you added and make sure the checkbox is checked.
Warning
When enabling the plugin, Unreal Engine will ask you to restart the editor. Make sure to save your work before doing so.
Starting Unreal with the Plugin
By connecting to MANUS Core, you can access runtime data from your gloves and more. Connect to MANUS Core by clicking the "Connect to MANUS Core" button in the top bar.
-
If you have multiple MANUS Core instances, you can select the desired instance from the drop-down menu.
-
Once connected, the button icon will turn green, indicating a successful connection.
-
You can disconnect from the current host and connect to another host by clicking the button again and selecting a different host from the drop-down menu.
Some functions may be unavailable when disconnected from MANUS Core.
Refresh host list
When you want to refresh the detected MANUS Cores in the host selection dropdown, you can press this button.
It will scan the network for any MANUS Core active at that time and update it in the host selection list.
Setting up a model to animate
Import FBX model
Import an already skinned and rigged FBX character model.
After importing your model, you will have something like the following in your content directory:
Now, right click the Skeletal Mesh and create a new animation blueprint
Give the animation blueprint a relevant name and double click to open it. You will be presented with a screen like this, but for your specific model.
In the output post widget drag the Result to the left and select the Manus Live Link Pose
.
From here select the Manus Live Link Pose
widget and go to the properties on the right side.
There, select the MANUS skeleton dropdown and create a new asset Manus Skeleton
and give it a relevant name. In this example ManusBody
is used.
Compile and save the blueprint.
Once that is done, make sure that you are connected to MANUS Core. Double click your MANUS skeleton.
You will be presented with something like the following screen, in this screen set the skeleton type to the type of animation you want from MANUS Core. In this case just a hand.
Also set the Target Skeleton Type, the default is UserIndexData
. This means the user index is used to determine which user is being animated. The value is set further down.
Note
The user index can be left to 0 in most cases. But if you have multiple users, make sure this matches what you see in the MANUS Core Dashboard.
In the MANUS Core Dashboard user list, the top user will be index 0, and the next in the user list will be at index 1 and so forth. If the incorrect index is used, then wrong or no data will be received.
Now the mesh needs to be selected:
Select the mesh you imported, and the nodes will be automatically generated. All that is needed now is to define the chains. You can set the chains up manually, but that can be very labor intensive. For this there are 2 more options. Either using auto allocation, in such case MANUS Core tries to figure out the chains from the hierarchy and bone names. However if it fails or is incorrect, it's recommended to manually set it up.
To start this process click, Send to Manus DevTool
.
This will open the DevTools, you will be presented with a screen like the one below:
For this example, the chains will be auto allocated, and we can immediately export it back to Unreal. Please refer to the detailed DevTools article for more information.
After allocation, press the Send to Plugin
button, which will send the model back to the Unreal plugin. Now go back to the MANUS skeleton property window on the Unreal side.
Once this is done and you enter play mode, you can see the animation being streamed from your glove directly into Unreal:
In this example only the left hand was connected.
Import Metahuman Model
A metahuman model can be imported through Quixel Bridge. For more in-depth information please visit Epic's documentation on this.
Manus component
Once the model has been successfully imported go to the metahuman blueprint BP_{MetaHumanName}
, go to Components
> Add Component
> Manus component
. Here, re-parent the Face (+eyelashes, beard, hair, eyebrows, etc), Torso, Legs and Feet to the Manus component. Make sure the Manus
component is attached to the root, and everything under Body
component is parented to the Manus component.
Manus
component should replace Body
component. (Do not delete Body component yet.)
Go to Components
> Add Component
> Live Link
and attach this to the root.
In the Manus
component, change the Skeletal Mesh
to the same mesh the Body
component used. Also create a new Manus Skeleton
by going to Details
> Manus
> Manus Skeleton
. Put the Manus Skeleton
next to the mesh that Body
used. In this case, we are naming the Manus Skeleton
the same as the Skeletal Mesh Asset
(e.g. f_med_unw_body
(_ManusSkeleton)).
Now you can delete the Body component.
Compiling
Once you click Compile
, you will get errors, because the Body
component is missing. Go through the list of errors in the Compiler Results
and drag and drop the Manus
component into the Event graph
, and reconnect the missing links. When this is done, you will still receive an error message on an event. To solve this, go to the My Blueprint
tab (left bottom corner in this case) > Component
> Manus component
(with a blue line next to it).
Click on the Manus
component, and (in this case) on the right side, you will see a list of Events
. Click on On Anim Initialized
and replace On Anim Initialized (Body)
with On AnimInitialized (Manus)
.
Click Compile again.
Manus Skeleton Setup
Make sure Unreal is connected with MANUS Core.
Open the Manus Skeleton
.
Set Manus | Skeleton Type
> Skeleton Type to Hand
.
Set Skeletal Mesh
to the same mesh you have changed in the previous step (in this case we are using f_tal_nrw_body
).
Now you can either send the skeletal mesh to the Manus DevTool and auto allocate the chains there, or Import from mskl file.
In this case, we are going to Auto Allocate
the chains in the DevTool, and then hit Send to Plugin
again.
Make sure the Manus| Map Skeleton Chains
> Skeleton Chain IDs
> Left - Hand
> Settings
> Hand
> Hand Motion
is set to IMU
.
Click save
and hit Compile
in the Blueprint (BP).
Anim Blueprint Setup
In the Content Browser right-click on the Skeletal mesh
(in this case f_tal_nrw_body
) and navigate to Create
> Anim BP
.
This will create an Anim Blueprint. Note that it will do so in a different folder.
Give it a name, and open the AnimBP
.
You will now see the default MetaHuman.
In the Anim Graph
, you see Out Pose
. Right click in the area around it and add Manus Live Link Pose
.
Attach it to the Output Pose
and inside the Manus Live Link Pose node
> Details
> Manus Live Link
> attach the Manus Skeleton
we have created before.
Compile
the blueprint.
If you have a running Manus Core and a glove turned on, you will see the hand moving in the viewport on the left.
Blueprints
For the details on available blueprint functions, please consult the API reference.
Connecting through blueprints
To find and connect to MANUS Core a blueprint as follows can be used:
The Find Sessions
function is a crucial step in the blueprint. It triggers the plugin to search the network for any active MANUS Core hosts. This function can only be used if there is no current connection active. It may take a few seconds before it returns.
It is important to wait for the success of this function before proceeding with the rest of the blueprint. Upon success, it will return an array of addresses found. These addresses represent the MANUS Core hosts available on the network.
Blueprint making a connection
The blueprint code in UI_ManusDemoMenu
> EventGraphpresentation
is responsible for handling the environment setup and signaling the plugin which MANUS Core Host address to use.
Here are the main parts of the code:
-
Environment Setup:
- If it's a single player environment, the code directly calls the
Open Level
function. - If it's the host of a multiplayer environment, the code creates a session and then opens the level.
- If it's a client, the code only joins the session and signals to the plugin that it is set as a client.
- If it's a single player environment, the code directly calls the
-
MANUS Core Host Address:
- After the environment setup, the code needs to specify the MANUS Core Host address to use.
- If the environment is set as the host, the supplied address from the host selection can be input into the
Set MANUSCore IP
function. - The addresses must be found first via the
Find Sessions
function before they can be used.
Please note that the code follows the standard Unreal network environment setup. For more details, refer to the Unreal forums and documentation.
Alternative way of setting up a model
Here is an alternative way to set up a model in Unreal:
-
Drag an actor into your level.
-
Select the actor in the sidebar and add the MANUS link to it by pressing the add button.
A menu will appear, and you can type
MANUS
in the search bar.Now the MANUS link is added.
-
Import your model by right-clicking in the content space and selecting
Import to Game
.Select your model from the file browser.
Then in the next window, select
Import
.The meshes are now loaded.
-
Select the
Manus Skeleton
option in the right sidebar of the actor and open the dropdown (currently filled withnone
). SelectCreate a new asset
>Manus Skeleton
.Create a new skeleton with your preferred name.
-
Right-click the skeleton and select
Edit
(or double-click it).The following window opens. Select the
Skeletal Mesh
dropdown.In the new menu, select your imported mesh.
Then select the
Skeleton Type
combobox and chooseHand
for this example. -
Press the
Send to Manus DevTool
button (Make sure Unreal is connected to your MANUS Core host first).Set up the chains of your skeleton in the DevTools and when done, send it back to the Unreal plugin.
Once done, you will return to this screen and see the chains allocated.
Important: Make sure the
Skeleton Target Type
matches the target selected, or no/wrong animation data will be received for this skeleton. Usually setting it toUserIndexData
and theTarget Skeleton user index data
to0
is fine for most use cases. It will take the first user in the MANUS Core user list.User indexes start counting from 0 and can be verified in the MANUS Core UI. This will match the MANUS Core user list, with the top user being index 0, and the next in the user list at index 1, and so on. If the incorrect index is used, the wrong or no data will be received.
-
Return to the main window and right-click the mesh.
In the dropdown menu, select
AnimBlueprint
and create a new blueprint. -
In the sidebar, under the actor, select an animation blueprint in the
Anim Class
.In the dropdown menu, select the animation blueprint that was created.
-
Double-click the animation blueprint that was created.
Drag the input
Output Pose
into the blueprint and selectManus Live Link Pose
.Select the
Manus Live Link Pose
and choose theManus Skeleton
in the right sidebar. Select the previously created skeleton. -
Don't forget to compile the blueprint.
Your actor should now be fully ready to animate when in play mode.
Always make sure the skeleton is setup for the correct user. And of course that the MANUS Core connection is active.