Avatar Blueprints
When you create your Avatar for kemorig, the main asset at the heart of it is the Avatar Blueprint.
The Avatar Blueprint is a place where you can add arbitrary Blueprint logic for your avatar. You can do things like:
- Trigger logic in response to various kemorig events
- Add custom behavior for Interactions and Stances
- Spawn other actors along-side your Avatar
- Store variables that change over time
- And more!
Basically, anything you can create in Unreal Blueprints, you can add to your Avatar Blueprint, and export it with your Avatar.
The Event Graph
Unreal might open your Avatar Blueprint as a data only Blueprint with a notice at the top saying so. If it does, click Open Full Blueprint Editor.
Inside your Avatar Blueprint, find the Event Graph tab.
The Event Graph is the place where your Avatar’s blueprint logic starts. You add Events to this graph, and decide what logic runs in response to those events.
Events
The red nodes in this graph are Events. When you first create your Avatar Blueprint, you will probably see something like this in the Event Graph:
These ghost event nodes don’t exist in the graph yet, but it’s Unreal’s way to help get you started. These are 2 very common events:
Called when the blueprint is spawned (i.e. when the Avatar is spawned)
Called every frame
Built-In kemorig Events
Kemorig has a number of built-in events that may be useful for authoring logic.
To find them, in the Event Graph, right click and search for “events”. Near the top you will find a category called “Kemorig Core Events”.
Called when an avatar is spawned.
Returns:
- AvatarName - Name of the avatar
Called when an avatar is de-spawned
NOTE: This is never called when testing in-editor!
Returns:
- AvatarName - Name of the avatar
Called when any solo interaction is played
Returns:
- InteractionName - Name of interaction that played
- InteractionState - Current state of the interaction
Called when any Stance change is played
Returns:
- StanceGroupName - Name of the Stance Group this Stance belongs to
- CurrentStanceName - Name of the Stance entered
- PreviousStanceName - Name of the Stance exited
- StanceGroupState - Current state of the Stance Group
Called when the user starts talking into their microphone
Called when the user stops talking into their microphone. This respects the user-configurable Talking Hold Time, which delays when they are considered not-talking
Called when a level begins
NOTE: LevelName will be empty when testing in-editor!
Returns:
- LevelName - Name of the level that is starting
- IsEditor - True if testing in-editor
Called when a Level is deactivated, during the swap to a new level. This will be called before LevelBegin on the incoming level. The level and its contents are still valid at the time this is called
NOTE: This is never called when testing in-editor!
Returns:
- LevelName - Name of the level that is being deactivated
Called when a Level swap begins. This is called when the incoming level begins loading, not when the swap itself takes place
NOTE: This is never called when testing in-editor!
Returns:
- IncomingLevelName - Name of the level that is being loaded
- OutgoingLevelName - Name of the current level that we are leaving
Interaction and Stance logic
A common use of the Avatar Blueprint is to add custom logic for your Avatar’s Interactions and Stances.
More information on how to do this are on the Interactions and Stances pages:

Interactions
How to set up interactions for your avatar

Stances
How to set up stances for your avatar