Motion Capture animation into Roblox with HEAT - Tutorial

Hey y’all!

I’ve been developing a motion capture library with auto-rigging capabilities. I’ve been working on a way to get animations into Roblox without the need to import a whole new rigged character and this is what I have come up with so far. Please feel free to reach out with any questions or suggestions!

Tutorial

In addition to Roblox this tutorial will be using HEAT which is available here https://heat.tech/downloads and Blender available here https://www.blender.org/download/.

Step 1 - download and install the HEAT Bridge and Blender Plug-in

First go to https://heat.tech/downloads and download the HEAT Bridge package. This download will include a .exe file to install the HEAT Bridge and also a .Zip file to install the Blender Add-on.

Further instruction on installing the HEAT Bridge and Blender Add-on can be found here https://docs.heat.tech/heat-bridge/getting-started if needed.

Step 2 - Importing the R15 rig to Blender

Either download the R15 rig of your choice from the Roblox Github repository at https://github.com/Roblox/avatar/tree/main/rigs OR you can download the R15 Man rig that I have already put into an optimized T-pose for HEAT here at https://heat.tech/downloads/roblox (recommended).

  1. Open up Blender and in the menu bar click File > Import > FBX

  2. Choose the downloaded R15 rig.

Note - If you are using a rig downloaded from the Roblox Github you will have a much easier time if you delete everything in the scene other than the armature. The video above shows this process in greater detail.

Step 3 - Putting the armature into a T-pose

if you are using the optimized rig that I shared above from the HEAT website you can skip this step and continue on to step 3

  1. Select the R15 rig and in the upper left hand corner of the screen click the drop down that reads “object mode” and select “pose mode”.

  2. Click the button in the upper right to turn on symmetry along the X axis. This button looks like a butterfly symbol.

  3. Select the upper arm bone on either the right or left side and rotate it to a T-Pose. In the video above you can see how I get it close to what our retargeter expects, but it will work regardless as long as it is close.

  4. One the rig is in a suitable T-pose click the “pose to rest” button in the HEAT add-on tool window.

Step 4 - Importing an animation with the HEAT Bridge

  1. With Blender still open and your R15 rig still in the scene, open the HEAT Bridge and log in using the button in the upper right of the bridge.

  2. Find the animation that you would like to retarget to your roblox character.

  3. Make sure Blender is selected in the drop down menu in the lower left hand side of the bridge. And in the lower right hand side corner make sure to select the waving man icon to import the animations onto a fresh HEAT Avatar (T69H).

  4. Click the Import button

Note - further information on using the HEAT Bridge can be found here https://docs.heat.tech/heat-bridge/using-the-heat-bridge if needed!

Step 5 - Retargeting your HEAT animation to the R15 rig

  1. With your newly animated HEAT avatar and your R15 rig in the scene open the HEAT add-on tool tab on the right side of the screen.

Note - If you don’t see the ‘HeatTools’ pane on the right side of the screen you can press the ‘N’ key to quickly toggle the context menu within the 3D scene.

  1. At the bottom of the tool tab you will see a drop down labeled ‘Heat Retargeting’. Open that drop down.

  2. Using the ‘Source’ field or dropper select the HEAT Armature with the animation applied to it.

  3. Using the ‘Target’ field or dropper select the R15 Rig.

  4. Click the button that says ‘Build Bone List’.

  5. Now we just have to fill in the blanks that HEAT doesn’t automatically populate. First off, remove the Root bone from heat_Root, this will cause the roblox character to fly around the scene if not removed. Add LeftUpperArm to heat_UpperArm_l, LeftLowerArm to heat_LowerArm_l, RightUpperArm to heat_UpperArm_r, RightLowerArm to heat_LowerArm_r, LeftUpperLeg to heat_UpLeg_l, LeftLowerLeg to heat_Leg_l, RightUpperLeg to heat_UpLeg_r, and RighLowerLeg to heat_Leg_r.

  6. Click the ‘Retarget Animation’ button.

  7. You can hide the HEAT armature and mesh in the Scene Collection and hit play. You will see the animation playing properly on the R15 rig!!!

Note - If you need more help with the retargeting you can see our more in-depth guide here https://docs.heat.tech/blender-plug-in/advanced-tools-in-blender/retargeting-with-heat

Step 6 - Exporting the retargeted R15 animation as an FBX file

  1. Select the R15 rig and navigate to ‘File > Export > FBX (.fbx)’.

  2. In the export settings tick under Include ‘Selected Objects’ and, under Object Types, ‘Armature’. Below this under the Armature drop down unselect ‘Add Leaf Bones’. Name your animation file and click the ‘Export FBX’ button.

Step 7 - Importing animation to Roblox

  1. In Roblox Studio use the Rig Builder to create an R15 character in your scene.

  2. Open the Animation Editor at the top of the screen.

  3. Select your character in the scene and name your new animation clip. Click the ‘Create’ button.

  4. In the animation editor at the bottom of the screen click the three dots (…) next to your animation title and select ‘Import > From FBX Animation’.

  5. Locate your FBX animation in the file explorer and click ‘Open’.

  6. Hit play and watch your R15 character animate.

Thanks!!!

I realize this guide is quite long but I wanted to try to offer a solution that makes it so you can import animations directly to your rig, rather than using Mixamo or another auto-rigging solution to put a different skeleton on your Roblox character mesh.

We are currently working on how we can easily integrate this whole process into our platform so that with a HEAT account you can just pull animations directly from our platform onto your R15 character.

Thanks in advance for any feedback or ideas on a more streamlined way to make this work!

12 Likes

Even tho i’m probably not going to use this, the tutorial was very good, keep it up!

2 Likes

thank you! I was trying to be very thorough hahaha.

Darn, I really thought this would work with R6. Well, there’s always converting the animation to R6 with the plug-in.

2 Likes

If we can find the official R6 rig you could use the same process it would just be less retargeting. Let me see if I can find it somewhere! If I can I will make a useable pose for it and share it here. Sadly as far as I can tell the Roblox github doesn’t have any R6 rigs, just the R15 ones.

1 Like

Really cool tutorial! It’s interesting to see more advanced and “industry standard” techniques being brought to Roblox.

2 Likes