We are going to walk through all the steps necessary to create NPC avatars in Roblox starting with a VRM of the character we desire
Premise
In this document, we have compiled a comprehensive guide to explain how to import a VRM Avatar into Roblox that we can use as an NPC for our world design.
Do keep in mind these method is NOT compatible with layered clothing.
Mission
With this documentation we are going to walk through all the steps necessary to create NPC avatars in Roblox starting with a VRM of the character we desire. Unfortunately, this method does not make the NPC compatible with layered clothing, but it is a fast and efficient way to implement simple avatars into your Roblox games.
Resources
Blender
Maya
Roblox Studio
Step 1: transforming VRM into FBX
The very first thing we need to do with our avatar VRM is to tranform it into an .fbx file. To achieve this, we will have to bring our .vrm into Blender.
Before exporting into .fbx, we will have to merge the vertices to avoid future issues when moving.
Once we have transformed our .vrm into a .fbx we can start with the process of making our character into Roblox.
Step 2: taking it to Roblox
We will need to have both a Roblox account and Roblox Studio installed to crate our own avatars. Alongside the base studio, we will need to install a plugging called RigEdit Lite, which will allow us to create a new rig from the VRM into Roblox.
To begin, we will have to import our fbx into Roblox Studio. The “Import 3D” feature will allow us to import the rigged FBX we just transformed our VRM into.
You will need to resize your avatar to fit the appropriate size for Roblox. For this, we recommending importing a default Roblox character into the studio to ensure you can match its size.
To import a Roblox default character, go to the “Avatar Tab” > “Rig Builder” and select “My avatar or Block Avatar”.
You will also need to correct its position to 0,0,0 so it is centered.
Step 3: adapting our avatar
To begin adapting this model into the Roblox workflow, we will need to create a newpart. This is a block that we will size to fit up to the character’s shoulders and down to the avatar’s hips.
We will then rename this part to HumanoidRootPart and drag it into our avatar so they are grouped together. Then, we will increase the part’s transparency up to 1 to make it invisible.
Lastly, we will add a Humanoid to our avatar, and we apply these settings to it:
Rig type: R15
Hip height: (insert the avatar’s hip height)
TIP: since the cube was placed at its hip height, you can see the HumanoidRootPart’s Y position to know the hip height of your character.
Make sure to delete any other folder, file or rig that is not listed in the images displayed to make sure it all works properly.
Step 4: scripting
To ensure we properly adapt our avatar to Roblox, we will need to dable briefly into its scripts. Luckily, the scripts are relatively easy to prepare.
We will have to go into the "StarterCharacter" folder, and into the "StarterCharacterScripts". By pressing on the “+” symbol next to the folder, we can create a new blank script.
On this new empty script, we just need to write two lines of code:
wait(1) script.Parent.Humanoid.HipHeight = (Hip height of your avatar)
Once we have this done, we will hit the “play” button.
With the game running, we have to go into the “Workspace > Your Username > Animate (script)”
We will copy the animate script and paste it into our “StarterPlayer folder > StarterCharacterSripts” and paste it there.
We can now stop the game from playing to return to the editing studio and move on.
Step 5: animating
To add animations to our avatar, we are going to use the help of Mixamo to get high-quality animations compatible with out avatar.
Going into Mixamo, we will now download animations for all the movements needed for Roblox:
The method to apply any animation to the model is the same for all of them; here we will see how to do it.
First, we will go to the "Avatar" tab and to the "Animation editor", clicking on our character, we will…
By clicking on the “…” button we can then import > from .fbx Animation. We will be able to import the .fbx of the animation we downloaded from Mixamo.
Our Avatar will then change poses to fit the animation we just uploaded, letting us know we did it correctly. From there, we can click “play” and make sure the animation is looping.
With our animation uploaded we will have to click on the “…” button again and publish to Roblox.
We can then name our animation and continue until we get a window informing us we successfully submitted the animation and an “ID CODE” we will need to copy.
Now we will have to go to our Starter Player > StarterCharacterScript > (animation action) and go into its settings.
There we will paste our ID into AnimationId and hit enter to make sure it registers.
We will have to repeat this process for each individual animation to make sure they all register correctly into our model. Once we are done, we can exit the animation editor by clicking again on the tab.
Step 6: rigging
To start using RigEdit Lite, you will need to select your imported FBX model. You can find RigEdit Lite under the “Plugins” tab. Once selected, a window will appear, and you will need to click “Rig”.
All we need to do, is click on our avatar, navigate to the plugin folder, and select “Edit Rig”.
Now, we will be able to see a small menu in the top right corner of our studio.
On this menu, all we need to do is select “HumanoidRootPart” and our avatar’s mesh.
And then click on “Create Joints”.
With just these few step,s we are finished with the rigging process of our model, and we can exit RigEdit mode by clicking the tab again.
Lastly, we will go into our character’s options and in the collision cathegory, we will make sure to uncheck the following traits and make sure "Collision Fidelity" is set to: "PreciseConvexDecomposition".
Step 7: final step
Finally, all we need to do is put it all together by renaming our avatar to “StarterCharacter” and dragging it into the “StarterPlayer” folder.
You will see your avatar disappear from the workspace, but once you hit “play”, your avatar will show up, moving according to the animations you set for it.