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:

Begin Play

Called when the blueprint is spawned (i.e. when the Avatar is spawned)

Tick

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”.

Avatar Spawned

Called when an avatar is spawned.

Returns:

  • AvatarName - Name of the avatar
Avatar De Spawned

Called when an avatar is de-spawned

NOTE: This is never called when testing in-editor!

Returns:

  • AvatarName - Name of the avatar
Interaction Played

Called when any solo interaction is played

Returns:

  • InteractionName - Name of interaction that played
  • InteractionState - Current state of the interaction
Stance Changed

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
Microphone Start Talking

Called when the user starts talking into their microphone

Microphone Stop Talking

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

Level Begin

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
Level End

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
Level Swap Started

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: