Avatar Basics
This page goes over the basics of creating a kemorig avatar. If you’ve never made an avatar before, start here!
Make sure you've completed the Custom Package Setup guide first!
Your Avatar’s Model
In order to create an avatar, you’re going to need a 3D model of your character.
You’ll then need it exported as an FBX in order to import it into Unreal. The textures your model uses can be any common image format; I generally use PNG.
Folders in Your Plugin
Let’s get started! First, let’s be organized and create new folders in our plugin content directory where we’ll store our assets.
Right-click in the content browser to create folders. Let’s make an Avatars folder, and inside that a folder named the name of our avatar.
This guide will use the name "MyCharacter" as an example moving forward. You should use your own character's name!
Create Avatar Blueprint and Description
Next, we’re going to create a Blueprint class for our Avatar, and a Data Asset that stores metadata about the avatar.
Right click in our new folder, and create a Blueprint Class.
A window pops up asking you to pick a parent class. Search for and select the class KemorigAvatar.
After you select the parent class, you’ll need to give your new asset a name. We’ll name it “MyCharacter_Avatar”.
Next, right click in the folder again and this time create a Data Asset. You’ll find that type under Miscellaneous > Data Asset.
A different window pops up asking to select a class. Select Kemorig Avatar Description. You’ll again need to search for it.
Name this asset “MyCharacter_Description”.
You now have two assets in your folder.
Here’s more info on what they are:
- MyCharacter_Avatar - the actor blueprint that will be spawned when we use this avatar. It’s the main asset for the avatar!
- MyCharacter_Description - metadata about the avatar. The app finds this file, and uses it to display the avatar in the menu.
These two assets are the minimum-required assets for kemorig to load an avatar. Of course, we will create more as we fill our KemorigAvatar Blueprint with stuff.
Fill out the Avatar Description
Now let’s fill out the description asset.
Double click it to open it. You’ll see a number of fields you can fill with information.
Especially, take notice of the Avatar Class field. In the dropdown, set this to the MyCharacter_Avatar class you created in the previous step.
You’ll also notice an Icon field. Let’s import an image to use for it.
Unreal supports a wide range of image formats to import as a Texture asset. To import an image, drag-and-drop it from Windows into the content browser.
The recommended size for your icon is 256x256 pixels.
After you import your texture, reference it in the Avatar Description. You can either find it in the texture dropdown, or drag-and-drop it from the content browser.
Set up the Avatar Blueprint
Next let’s open up the Avatar Blueprint asset. You should see the full Blueprint editor that looks like the image below.
Unreal might open it as a data only Blueprint with a notice at the top saying so. If it does, click Open Full Blueprint Editor.
Now try saving it. You’ll see that it throws a couple errors:
- “AvatarName is not defined!”
- “AvatarDescription is not defined! Avatar must reference a KemorigAvatarDescription object.”
We have to define the fields AvatarName and AvatarDescription in the Blueprint for it to compile successfully.
Open the Class Defaults. You can do this either by clicking the button at the top, or clicking the top entry in the Components pane.
The Class Defaults appear in the Details pane on the right. Find the “Avatar Details” category and you’ll see the fields we need to fill in.
- Set AvatarName to the name of your character.
- Set AvatarDescription to the “MyCharacter_Description” asset.
Now, in the top left, Compile and Save the Blueprint. It should now successfully save with no errors.
Import the Character Model FBX
Next let’s import our character model. If you’d like more info on how to import models, refer to this page:
Importing Models
Tips on importing models into Unreal
Make a new folder for your character model, in Avatars/MyCharacter/Model, and import it there.
Once the import completes, Unreal will create a Skeletal Mesh, Physics Asset, Skeleton, and do its best to create Materials.
Next, drag in any textures your model uses, and modify the materials to use them. I like to put my materials and textures in another subfolder.
This only scratches the surface of setting up a character model. As you set up tracking methods and interactions, you’ll be dealing with morph targets, animation sequences, and more. For now, we’ll just get our model to draw in-game.
Make an Animation Blueprint
Next we’re going to create an Animation Blueprint that uses a special kemorig parent class. This blueprint will handle everything about how the model moves, and it is required for setting up tracking.
- Make another sub-folder, Avatars/MyCharacter/Animation.
- Inside that folder, create a new Blueprint Class of type KemorigAnimInstance. Name it “MyCharacter_AnimBlueprint”.
Open MyCharacter_AnimBlueprint. It will pop up a message asking if you would like to choose a skeleton for the blueprint.
Click yes, then in the next window select “MyCharacter_Skeleton” (the skeleton you just imported for your character).
If you don't see your skeleton in the list, it's possible that plugin content is filtered out. Check your filters by clicking the cog in the top right.
Open the anim blueprint, and then navigate to the AnimGraph inside it.
The AnimGraph is where the blueprint calculates the pose of the character on any given frame. Eventually you can fill this with animations, state machines, and procedural motion driven by variables manipulated in the Event Graph. (Remember how we made this a child of KemorigAnimInstance? That gives you access to a bunch of kemorig-specific data for your blueprint.)
For now, we’re going to put one node in here to support “slot animations”, which are animations set by code elsewhere (it won’t do anything on its own, but it sets us up for later).
Right-click in the graph and search for Slot ‘defaultslot’. Place it in the graph and drag its output hook it up to the Output Pose node.
For now, this is all we’re going to do with this asset. We will be returning to it in other guides.
Make sure your Anim Blueprint is a sub-class of KemorigAnimInstance! Do not create a normal Animation Blueprint.
Add the Model to the Avatar Blueprint
Now let’s open our Avatar Blueprint (“MyCharacter_Avatar”), and set it to use our new character model and Anim Blueprint.
Select the Mesh component, and set the following fields:
- Set Skeletal Mesh Asset to your model.
- Set Animation Mode to “Use Animation Blueprint”.
- Set Anim Class to your Anim Blueprint (“MyCharacter_AnimBlueprint”).
Compile and save the Blueprint.
Test the Avatar in kemorig
We’ve now got an avatar that will spawn our character model. Before we go further, let’s export and test it in kemorig to make sure it’s all working.
For instructions on exporting, see this page:
Exporting Custom Content
How to export a .pak of custom content for kemorig
We should be able to select our avatar in the menu, and see the character model in bind pose.
Next Steps
Congratulations, you now have a functional avatar that can be exported and selected in kemorig! It doesn’t do anything yet, but we’ll sort that out next.
Now that your avatar is up and running, you’ll want to set up support for tracking methods. See additional guides for each.