Loading...
Loading...
Loading...
Loading...
Loading...
This document explains how to create MetaHuman Characters with Convai Plugin.
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This stage explains how to add simple custom actions with Convai characters.
Loading...
Loading...
Loading...
Loading...
This guide is for customization of the the blueprints.
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This document explains how to add MetaHuman to your project.
Transmit real-time environmental data to characters without requiring a response. Supported from Plugin Version 3.5.1.
Dynamic Environment Info is a powerful feature that allows users to pass additional environmental data to characters without direct interaction. This enables more immersive and creative gameplay scenarios by enhancing how characters perceive their surroundings.
For example:
The character can understand the time of day (e.g., "time of day is night").
The character can access inventory details (e.g., "You currently have a gun and a healing potion").
The feature supports structured data formats for richer information exchange.
Follow the steps below to integrate Dynamic Environment Info into your project.
Open the Character Blueprint in your project.
In the Begin Play event, locate the ConvaiChatbot
component.
Set the Dynamic Environment Info
variable with a string value of your choice.
Example 1 (Simple):
Example 2 (Structured Format):
Save and Play
Save your blueprint changes.
Hit Play to test the interaction.
Observe how the character dynamically responds based on the information passed.
By following these simple steps, you can unlock more engaging gameplay mechanics and enrich the interactions.
Change AI Character Movement Speed - Unreal Engine Guide with Convai.
Open your AI character blueprint.
Select the Floating Pawn Movement
component from the components list.
Set the Max Speed
field under the details panel to your required speed.
This enables AI conversational features to MetaHuman
Open content browser then Content > MetaHumans > MetaHuman blueprint
.
Go to Class Settings and then under Details panel > Class Options > Parent Class and set it to ConvaiBaseCharacter
.
To add animation to the body go to the 'body'
component and under the details > Animation > Anim Class
change it to ‘Convai_MetaHuman_BodyAnim’.
Similarly for the face go to the face component and under the details > Animation > Anim Class
change it to ‘Convai_MetaHuman_FaceAnim’.
Compile and you will be good to go.
Add lip sync to MetaHuman characters in Unreal Engine with Convai. Enhance realism and engagement.
Prior to advancing, ensure that you modify the parent class of your MetaHuman to ConvaiBaseCharacter, as indicated in the provided .
Open your MetaHuman blueprint.
Navigate to the Components
section and select the Add
button.
Search for Convai Face Sync
and select.
Finally, LipSync is added to your MetaHuman. Compile and save it and give it a try.
This gives the player the ability for conversation with the chat bot.
This can be applied to first person player (FPP) or third person player (TPP).
Steps to change parent class of a First person player (FPP): -
Create a new project as a first person project or import into your already existing project.
Steps to import : - Content Browser > Add > Add feature or content pack to the project > First Person > Add to Project.
Steps to make your game a default First Person game: -
Steps: - Edit > Project Settings > Maps and modes > Default Mode > Default GameMode > BP_FirstPersonGameMode
.
Then go to All > Content > FirstPerson > Blueprints > BP_FirstPersonCharacter
.
Click Class Settings then in the Details section Under ‘Class Options’
change the parent class to ‘ConvaiBasePlayer’.
Hit save and compile and you will be good to go.
For Third Person Player follow the same steps just by looking for Third Person
This document explains how to create ReadyPlayerMe Characters with Convai Plugin.
This mini-guide provides instructions for setting up Convai with pixel streaming in Unreal Engine
To setup the Pixel Streaming server, we recommend taking a look over .
Ensure you have the latest Convai 3.1.0 plugin or later.
Enable Unreal Engine's Pixel Streaming
and the Pixel Streaming Player
Plugins from the Plugins window.
In the player blueprint which has the Convai Player component, add the PixelStreamingAudio component to the list of components.
Click on PixelStreamingAudio component, and in the details panel find Base Submix and choose AudioInput sound submix.
On Begin Play in the event graph, add the following blueprint function to initialize Pixel Streaming with the Player Component.
Now, pixel streaming mic input should be working. However, system microphone will no longer work. To change back and forth to and from system microphone, set Use Pixel Streaming Mic Input to true for enabling pixel streaming microphone and false to enable system microphone. This is found in the ConvaiPlayer component.
This document explains how to create Reallusion Characters with Convai Plugin.
Adds lip animation to MetaHuman
Download the plugin from this link.
Head to your project folder and find the ‘Plugins’
folder. If not, create a new folder named ‘Plugins’.
Unzip the downloaded file and copy the folder named ‘ConvaiOVRLipSync’
into the ‘Plugins’
folder and restart the Unreal Engine.
Open the MetaHuman Blueprint and add a component named ‘ConvaiOVRLipSync’.
Make sure that the ‘Face’
component is using the ‘Convai_MetaHuman_FaceAnim’
animation class.
Link for Youtube Tutorial.
Adjust Interaction Radius - Unreal Engine Guide for Convai integration.
Go to your player blueprint.
Click on the gear icon and select Show Inherited Variables
under My Blueprint
tab.
Search for the variable MaxChatDistance
.
Set it to a number of your choice. Note: Set it to 0 for infinite distance.
Here are some Guides to get you started.
This gives the player the ability for conversation with the chat bot.
This can be applied to first person player (FPP) or third person player (TPP).
Steps to change parent class of a First person player (FPP): -
Create a new project as a first person project or import into your already existing project.
Steps to import : - Content Browser > Add > Add feature or content pack to the project > First Person > Add to Project.
Steps to make your game a default First Person game: -
Steps: - Edit > Project Settings > Maps and modes > Default Mode > Default GameMode > BP_FirstPersonGameMode
.
Then go to All > Content > FirstPerson > Blueprints > BP_FirstPersonCharacter
.
Click Class Settings then in the Details section Under ‘Class Options’
change the parent class to ‘ConvaiBasePlayer’.
Hit save and compile and you will be good to go.
For Third Person Player follow the same steps just by looking for Third Person
This document explains how a Reallusion Character can be imported and used with the Convai Plugin.
Create / open a project in Unreal Engine and download the Reallusion auto setup for Unreal Engine from this .
Download > install > Open a folder based on your Unreal Engine version.
Copy the Content and Plugins folder and paste them in your Unreal Engine project folder.
Restart your project and create a new folder (say ‘Kevin’) in your content browser.
Copy the .Fbx
file (named as the character) from the export to ‘Kevin’
in the content browser and the FBX Import Options menu will pop up.
Check the following options and click Import All :-
Use T0 As Ref Pose.
Import Morph Targets.
Create a new folder named Animations within the Kevin folder and import all the animation file (named ‘_motion’ at the end) from the exported file from Reallusion.
The FBX Import Options pop up again and Uncheck the Import Mesh and select your imported skeleton.
Under Animation > advanced
. Check the Use Default Sample Rate.
Click Import All.
Now install the Convai Plugin from Epic marketplace and restart the engine.
Edit > Plugins
.
Search for ‘Convai’
and enable it by clicking the checkbox and restart.
Create a new Blueprint Class within Kevin folder and under ALL CLASSES select ‘ConvaiBaseCharacter’.
Open up the blueprint. Components > add > Skeletal Mesh.
Under the details tab go to mesh > Skeletal Mesh
and select the imported mesh named Kevin form Reallusion.
Finally add the Character Id by selecting the Character (from Convai website) you just added and you can enjoy talking to your AI buddy.
Create a new blueprint and select ConvaiRPM_Character
as the parent class which you can find under All Classes
.
Drag the blueprint to the scene and the default ReadyPlayerMe character should appear.
Create a new character on and copy the Character ID, you can also edit the avatar by clicking on the Edit Avatar
icon on the top right of the avatar preview window.
Back to Unreal, click the character in the scene and under the details panel find the Char ID field and paste the copied character ID into it.
Hit Play
, and wait for a few seconds then the character should now load into the game.
The first time the character loads will take more time but after that it will be cached and loaded faster.
To change the parent class of the player refer to section.
This document explains how to add the Convai ReadyPlayerMe plugin to your project.
Go to this Drive Link.
Download the version corresponding to your Unreal Engine.
In your project directory create a folder named Plugins
if it does not already exist.
Extract the contents of the downloaded zip in the Plugins folder, the final folder hierarchy should look like this:
This document explains how to create a Reallusion character with Character Creator 4.
Steps to create a Reallusion Character using Character Creator 4: -
Use the Character Creation tool by Reallusion.
Create / use default a character present there and add animations of your choice.
(Here we have used an already existing character named ‘CC4 Kevin’ and have added the idle animation and walking animation.
Link for Youtube Tutorial.)
Export it in FBX
format.
File > Export > FBX > Clothed Character
Keep the following settings in Export FBX.
Target Tool Preset: - Unreal
FBX Options: - Mesh and Motion
Max Texture Size: - 4096 ( Choose the maximum available)
Frame Rate: - 30
Check the custom section. Click the Load Perform button.
Uncheck First Frame in bind pose.
Check Export Mesh and Motion individually.
Check Save One Motion per File.
Checking the Delete Hidden Faces option may avoid rendering issues.
Click Export.
Narrative Design - Enhance your Unreal Engine projects with Convai.
Narrative Design can be extended using Unreal Engine Blueprints, allowing you to invoke triggers created in the Narrative Graph, as well as access dynamic variables such as the time of day or relevant information like inventory contents in the game.
This document explains how to bind objects to the Reallusion character and perform action with that object.
Go to Window > Place Actors >
Search NavMeshBoundsVolume
and drag it in the scene.
Click the character in the scene (in this case click the Reallusion character) and head to the Details
Panel.
Details > Default > Objects > Click Add Element
Now we need to select a reference for the object from the scene. Click on Pick Actor from Scene
.
Then select any object from the scene. We can also provide a name
and description
to the object in the scene. This will allow the player to interact with the objects.
Save and then hit play to test the character to perform certain actions related to the object present which you just added.
Use Convai's Narrative Design Triggers in Unreal Engine to enhance your game stories.
Before proceeding with this section, it is advisable to familiarize yourself with the Narrative Design system, as elucidated in this .
Develop the logical flow for your specific use case. In this instance, we have created a simple museum tour guide scenario.
Our goal is to invoke the trigger Start Tour
in the narrative Design graph, using the Invoke Narrative Design Trigger
.
The Trigger Name
in the function should be the same as the Trigger
name on the graph.
The above example showcased only one Trigger. The use of more than one Trigger is also possible based on execution logic.
This document explains how to make characters respond to events happening in their surroundings with a small example.
Our goal in this example is to have the character welcome the player whenever the player enters a certain area, this can be done by using the Invoke Speech
node that basically invokes the AI character to talk and a simple collision box.
Open your AI character blueprint and select the Viewport
tab.
Note: the character blueprint can be a MetaHuman, ReadyPlayerMe, Reallusion or even a custom one you have created, just ensure that it has the Convai Chatbot
component.
From the Components
list add a Box Collision
.
Switch back to the Event Graph
tab.
Select the Box Collision
you just added and scroll down in the Details panel
. Under Events
add the On Component Begin Overlap
event to your event graph.
Setup the following blueprint schematic which uses the Invoke Speech
node from the Convai Chatbot
component.
Enter a Trigger Message
that expresses what happened (i.e. "Player Approached") and you can add a simple instruction (i.e. Greet the player).
Setting the In Generate Actions
and In Voice Response
boolean to true will let the Convai Characters perform actions and generate audio responses respectively.
Hit Compile
and Save
then run the program.
On approaching a certain vicinity will trigger the event and the Convai Character will greet the character as mentioned in the Trigger Message.
The above example is just a simple use case. However, the use of Invoke Speech opens new doors to limitless use cases.
Once the logic is decided we can move to Unreal Engine. (In this guide we will use the same setup described in this )
This document explains how to detect words and perform certain operations based on it.
Open your Convai Character blueprint and click on Class Settings
and then on ConvaiChatbot
component.
Under the Details
section scroll down to the Events
section and add On Transcription Received
event.
Once we have the transcription of player input, we can perform a substring search on it.
The Print String at the end is just an example. You can add your logic after the substring match.
This document describes how actions can be used/added to your Convai character, we will go about actions in multiple stages. This written guide is complementary the following tutorial video:
This document explains how to add simple actions to your Convai characters.
Steps to add simple actions to your Convai character:-
Select your Convai Character and navigate to the Details panel. Within this interface, locate the Convai Info
section.
Select the Add Element
icon (+)
and input the desired action you wish to execute. For example, Print.
Open the character blueprint to which you have just now added the action.
Add a new event with the same name. Print
in this case and define the logic for the function you just named and run the function Handle Actions Completion
with Is Successful
set to true.
Hit compile and ask your Convai Character to perform the action.
Actions can have parameters, for example: Picks Up
is an action that expects an object that will be picked up, in this guide we will see how to parse these parameters as well as other types of parameters such as text.
Referencing objects or characters in your AI character is very important for two goals: First, it will have knowledge that the object/character exists, and second, you will be able to get a reference to these objects or characters when actions that relate to them are triggered, such as Move to - Pick up - Follow
will always be triggered with objects or characters
Referencing objects requires that you add the object to the Environment object that is inside the ConvaiChatbot component. There are two ways to do so:
The first method is to select the character in the scene and then under the details panel, add the references to the Objects array under Convai Info
, this method requires that you inherit from the ConvaiBaseCharacter
blueprint.
At the begin play
event on the character blueprint, loop over all the objects that you want the character to know about then add to the environment object, in the following blueprint, we tagged the objects we want to add to the environment to make it easier to fetch those at begin play, then we used the second and third tags for names and descriptions respectively.
Adding, editing or removing objects at runtime is possible.
Use Add Object
function for objects and Add Character
for Characters.
Adding the player and other characters in the environment is handled if you're using CovnaiBaseCharacter as the parent class.
Once you have managed to add your objects and characters to the environment, let's go over a quick scenario to see how we handle the response:
Create an action named Looks At
that forces the AI character to look towards a certain object or character.
Create an event with the same name in the character blueprint, and add an input parameter of type Convai Result Action, this will contain the parameters required for the action which is in our case the object/character to look at.
Now let's finish the implementation as follows, we will break the Action Parameter
structure and then set the The Related Object Or Character
as the Main Character
, note that this is a quick trick to get the AI character to look at the referenced object or character.
Break the Related Object Or Character
structure to get more details about the object or character such as its reference, name and description.
If you have not added the reference for the object you will get an invalid reference but you will still get the name and description.
To be continued..
This action enables Convai character to follow characters/objects/players present in its environment
Approach a Convai character and ask it to follow other Convai characters or a Convai player.
Then you start moving around and you will find that the Convai Character starts following you.
Ask the character to follow the added character/object present in the Environment.
Even if we change the position of the object (cube here) the Convai Character would still follow the cube.
Add a reference to the object or character as shown in this
This stage explains how to use the default actions which come implemented out of the box with Convai.
These actions include:
Moves To: Character can move to another character or object
Follows: Character can follow you or follow other objects/characters
Waits For: Character can wait for some time before doing another action, for example: Wait for 10 seconds then throw a grenade
Add Descriptions to Actions - Custom Actions Guide for Unreal Engine.
This document details the process for adding descriptions to actions within Convai characters, improving AI understanding and action execution. Action descriptions provide contextual information, aiding in more accurate and contextually appropriate behaviors.
Action descriptions offer contextual hints to the AI, helping determine when and how to trigger actions based on gameplay and conversation scenarios, enhancing the gaming experience through more accurate AI responses.
Identify the Action: Determine the action needing a description, such as "Sit Down" or "Crouch".
Format for Adding Descriptions: Use the format Action Name <Description>
to add descriptions. The description should be clear and concise, providing exact indications for the AI.
Examples:
Sit Down:
Crouch:
Attack Enemy:
Send Email:
Navigate to Convai Info Section: Select your Convai character in the editor and access the Convai Info section.
Adding Action with Description: Click the Add Element (+) icon to input the action along with its description as previously formatted.
Clear and Specific Descriptions: Ensure descriptions are straightforward, precisely indicating action triggering conditions.
Use English.
This action enables a character to move to certain objects/characters present in its environment
By default, Convai Characters possess knowledge about the presence of other Convai characters within their environment.
Let's assume there are two Convai characters present in the virtual environment. We can ask one of the characters to move to the other character as shown here.
Steps: -
Click on your Convai character in present in scene.
In Outliner
go to Convai Info
section and then Click on the +
icon near Objects
.
Click on Pick Actor from Scene
tool
Select any object from the scene and give it a Name
and Description
of choice.
Save the changes and ask your Convai character to move to the object your named.
The Convai character finally move to the object you added to its object list.
In this page we will show a simple example of how to record and transcribe player voice.
In your player blueprint, make sure you have the Convai Player Component
already included. Otherwise, you can add it manually or by following this guide.
Apply the following blueprint setup in the player blueprint.
Hit play to test, press and hold space to talk and release to print a transcription of your input voice.
This guide explains how to enable Convai conversation and actions in multiplayer
Please see the instructions below or check out our latest tutorial video on YouTube.
Navigate to your player blueprint.
Under My Blueprints
tab, click the gear icon and select Show Inherited Variables
.
Find and enable the two boolean variables: - Enable Multiplayer - Enable Voice Chat
This guide explains how to enable long term memory in Convai Character
Select your character in the playground on the Convai website.
Go to the Memories Tab, and then to Memory Settings. Enable Long Term Memory for the character there.
Go to, Project Settings -> Plugins -> Convai. where you have set the API key.
There, click on the Manage Speaker ID. button under Long Term Memory. This will spawn an editor utility to create, delete, and list speaker ids.
If you have already created a Speaker ID, you can click List All Speaker IDs. Then, go to Project Settings -> Plugins -> Convai, and under Long Term Memory, you will find the Speaker IDs array. Copy the desired Speaker ID.
Now, go to the Player Blueprint and select the ConvaiPlayer component. In the details panel, you will find a Speaker ID field under the Convai category. Past the desired Speaker ID there.
This document explains how to alter the character response audio rate.
Open your character blueprint which contains the Convai Chatbot
component.
Click Class Settings
and then Convai Chatbot
component.
On the right-hand side Details
panel under the Sound
section modify the Pitch Multiplier
.
A value greater than 1 will ramp up the speed and vice-versa.
This guide explains how to add a 3D chat widget to Convai Character
Go to the following Google Drive link and download the Convai Convenience Pack.
Unzip the file and place it in ProjectDirectory/Content
folder.
Navigate to your player blueprint.
Go to the Viewport tab.
Under the Components tab, click the Add button, search for BP Convai 3DWidget Component, and add it.
Select the newly added component and adjust the transform according to your needs.
This guide shows how to dynamically pass variables to Narrative Design section and triggers
We will create a simple scenario where the character welcomes the player and asks them about their evening or morning based on the player's time of day.
In the playground, enable Narrative Design on your character and change the starting section name to Welcome
.
Add the following to the Objective field of the Welcome section:
The time of day currently is {TimeOfDay}. Welcome the player and ask him how his {TimeOfDay} is going.
Notice that by adding any string between curly brackets it becomes a variable, and what we did here is adding the time of day as a variable, then from Unreal we can pass either the word "Morning" or "Evening" and the character will respond accordingly.
Back in Unreal, open the character's blueprint.
Set the Narrative Template Keys
variable with a map containing the same variable name TimeOfDay
and for demonstration purposes we will hard code the value to "Morning".
Start the play mode and try it out.
Feel free to try other scenarios and settings to align better with your usecase.
You can use the narrative design keys feature in both sections and triggers.
Make sure the variable names are between curly brackets and has no spaces in between.
You can dynamically set, change or clear the narrative keys in Unreal blueprints.
This page gives an overview of how to use set the Main character the AI is talking to and the Object In Attention
Navigate to your AI character blueprint.
Drag the Convai Chatbot
component into the event graph.
Get the Environment
Object and make sure it is valid.
Use the function Set Main Character
to define the current speaker to the AI character. Additionally, if you're using Convai's animation blueprints then setting the Main Character would cause the AI character to look at the Main Character reference.
Use the function Set Attention Object
to set which object is currently being talked about, this function also automatically adds the input object to the list of already existing objects in the environment.
The character blueprint can be a MetaHuman, ReadyPlayerMe, Reallusion or even a custom one you have created, just ensure that it has the Convai Chatbot
component.