Avatar system in Unreal Engine

How to use the new Avatar system in Unreal

In addition to a local player, you can register "Avatars" to play emotes on your NPCs for example.

If you already registered the rig in the previous steps, you can go directly to "The code"

Register your model

Go on https://portal.kinetix.tech and upload your model as a .fbx file.

Add and setup your avatar to correctly.

Animations generated BEFORE adding your avatar will not work with your newly added avatar.

After your avatar is successfully processed you can create new emotes and play them directly to your character in engine.

Your setup is done. Click on "Display ID" and copy it.

Now let's get back to Unreal.

The code

Make sure you initialized the KinetixCore as shown in UE SDK Core Package Initialization

Register your avatar

You can configure your pawn like any other. The only required setup now is to register your AnimInstance.

And inside Avatar UUID's field just paste the avatar ID you have in your clipboard.

Make sure you configured an AnimBlueprint on your SkeletalMesh

Get the metadatas

After that get back the metadatas of an animation ID with GetAnimationMetadataByAnimationID

"InAnimationID" was filled with one animation ID given by "GetUserAnimationMetadatas"

Fill the reference skeleton

Before loading an animation, we have to fill the skeleton that will be used to decompress the animation.

Load the animation

After that, you can use the received metadatas to laod the animation

The avatar ID is still the one in your paperclip

Play the animation

And after that just play the animation on your avatar

"New Anim Instance Guid" is the returned value given by "RegisterLocalAnimInstance" and "EmoteToPlay" the animation id used to retreive the metadatas

Blendshapes support

Starting with 0.7, we added the support of Morph Targets (aka Blendshapes). It's based on the ARKit's implementation (also used in LiveLink) you can find the dictionnary here : https://developer.apple.com/documentation/arkit/arfaceanchor/blendshapelocation

Blendhsape support is enabled by default but if you to toggle it you can go to:

Project Settings -> Game -> Kinetix Settings and toggle off the checkbox "Enable Morph Targets"

Last updated