Click on the three dots in the bottom right corner of the bot window
Click on the three dots in the bottom right corner of the bot window
How to trigger avatar gestures
How to apply any animation as a full body gesture
How to decide whether they are sitting/standing (2.6+)
Changing voices and voice gender
How can I adjust voices so they sound different using rate and pitch?
Using Multiple Languages for One Actor in ChatMapper
Can I make my player character switch languages?
Switching localization through dialogue
How do I execute a script before a node is displayed?
How to use a One-Line-Of-Text Bot for the default template bots
I’m using a actorID to control a bot from ChatMapper but the bot doesn’t follow instructions
Bots
Bots can be used to conversationally convey instructions or information to the user of your space or scenario. Each dashboard account can have a library of Bots designed by the owner. The bots can be reused in multiple spaces and scenarios.
Bots Library
The dashboard Bots tab will show you all of the bots that have been created under your account. Here, you will be able to create a new bot.
Creating a new bot
Click on the “Create” button or the “Create new bot” square.
The first section of the create a bot process will ask you for basic information about your bot, as well as generate a unique ID, which will allow you to use the bot in your spaces and scenarios.
Choose a name for your bot, and enter it into the Bot name field.
A unique ID is generated for the bot.
Select a voice profile from the dropdown list.
Bots may be assigned a voice, this allows them to speak using text-to-speech.
“UK English Female” is default.
Then click “Continue”.
The Bot customization window will appear.
Bot Customization Window
The Bot customization window allows you to customize your bot. Any changes you make will be reflected in the model on the left.
Avatar type
You can set the field to Male or Female.
Clothing Drawers
Use the dropdown fields to customize the look of your bot. These fields will allow you a great deal of freedom to create any unique appearance. The most common fields to change are listed below.
Common drawers
Choices within the dropdown list could change according to Avatar type.
Eyes
Choose the color of the bot’s eyes.
Face
Choose the shape of the bot’s face
Shoes
Choose the type and color of the bot’s shoes.
Hair
Choose the style and color of the bot’s hair.
Bottom
Choose the style and color of the clothing worn on the bot’s lower body.
Skin
Choose the bot’s skin tone.
Top
Choose the style and color of the clothing worn on the bot’s upper body.
After using the fields on the right to customize your bot’s appearance, click the Save button.
After saving, your new bot will appear on the Bots library page. The ID information will be used when placing your bot into a space or ChatMapper scenario.
Editing a Bot
Click on the three dots in the bottom right corner of the bot window
The Edit/Delete window menu appears
Click Edit
This will bring you back into the bot creation page.
Deleting a Bot
Warning: Use caution when deleting a bot, as the bot may be in use in a space or scenario. Deleting a bot could cause a disruption in any space or scenario where that bot is currently active.
Click on the three dots in the bottom right corner of the bot window
The Edit/Delete window menu appears
Click Delete
Gestures and animations
How to trigger avatar gestures
See Scenario Gestures.
In short, you can include the following in a ChatMapper dialogue node:
Hey[gesture=wave] I’m over here! |
How to apply any animation as a full body gesture
For the player
LB.avatarController.triggerAnimation(player(),"dance","auto","FULL"); |
For a bot (see Scenario Finding Items doc for full details)
LB.avatarController.triggerAnimation(LB.avatarController.findAvatar({externalId:"botadfb40bc02bf47c25e936978c"}),"dance","auto","FULL"); |
For a full list of available gestures see the spreadsheet.
How to decide whether they are sitting/standing (2.6+)
In version 2.6+, a hotspot’s settings will include a field called posture. This can be set to stand or chair (for seated posture).
The field can be edited by entering edit mode, then clicking on the “cog” icon of a hotspot.
In the dialog that opens, find the posture field, and set the desired value. Afterwards, click the green Save item button (at the bottom right of the dialog).
From version 2.9 onwards, the following postures are supported
- stand (this is the default posture)
- chair
- sleep_back
- zen_sit
- wall_sit
- wall_stand
- stool
- rail
- floor_sit
1 Billion style combinations
The UniversalAvatar library contains over 1 billion style combinations for diversity and inclusion and also outfits for specific industries and scenarios like medical scrubs and construction worker outfits.
Skin variations
There are over 400 skin variations including shades, colors, makeup, tattoos, injuries and novelty.
Hair styles
Over 600 hairstyles, including bald and head scarfs.
Eye colors
40 eye colors
Piercings
Including Labret piercing, bridge piercing, Auricle piercing, Conch piercing, Eyebrow piercing, Lobe piercing, Orbital piercing, Outer conch piercing, Rook piercing, Tragus piercing, Lower lip piercing, "Madonna" piercing, "Medusa" piercing, Nostril piercing, Septum piercing
Randomized diversity
On the first visit to the avatar creator for participants a random avatar is displayed. This avatar can be customized by the player.
To avoid bias the avatar is randomized for body type, skin color, eye color, hair style, face shape and clothing.
Guest avatar names
A name is required for avatars to identify within an experience. When participants enter as guests an automatically generated name is provided as two words separated by hyphens followed by the word “guest”. The pool of three words have been chosen to be light hearted and politically correct.
The participant may change their name as desired.
Gender expression
Avatars with non-binary options are supported by default from versions 2.16 onwards. Using avatars with these options in earlier versions, may be displayed incorrectly. The non-binary option can be disabled using the Constrain avatar body shapes dashboard setting.
Child & Teenage Avatars
Depending on your target audience or scenario you may require younger avatars or bots. This is not a feature currently supported, however there is a script call you can make to achieve this.
To make the player character an avatar, you can execute this:
Var playerAvatar = player(); playerAvatar.skeletons[0].skeleton.bones[0].scale.copy(new THREE.Vector3(0.84,0.84,0.84)); |
For any other bot, you can do something similar. You will need to substitute MY_ACTOR_ID for the actorID of your target avatar.
var botAvatar = LB.Actions.getTargetAvatar({actorId:"MY_ACTOR_ID"}); |
Voices and Text to Speech
Changing voices and voice gender
See Scenario Audio – Speech, SFX, Ambient
How can I adjust voices so they sound different using rate and pitch?
See How to Make Actors using the Same Voice Sound Different in See Scenario Audio – Speech, SFX, Ambient
Localization
Using Multiple Languages for One Actor in ChatMapper
See Scenario Audio – Speech, SFX, Ambient
Can I make my player character switch languages?
Yes. You will want to create a CAF for Dialog Nodes called “second_language” of type Boolean.
Check it in all the nodes in which the player has to change language.
In the first node of the first conversation, add this in the script editor of that node:
var malePrimaryVoice = ''; |
You should change the first four lines to include the voices you want. For instance, if you wanted the player avatar to switch between UK English and Italian, you would have
var malePrimaryVoice = 'UK English Male'; |
Switching localization through dialogue
Assuming your localizations are called “spanish” and “en_EN”, you can switch by using this script in any node:
LB.cmPlayer.ds.activeLocalizationField = 'en_EN'; |
LB.cmPlayer.ds.activeLocalizationField = 'spanish'; |
Picture-in-picture
Is there an option to add a picture-in-picture to allow this other character to jump in and help for a minute?
Version 2.12+
Since version 2.12 PiP can appear and disappear automatically, only requiring one CAF to set up for Actors (Project -> Project Settings -> Custom Asset Fields -> Actors):
- Title: isPIP
- Type: Boolean
- Default value: False
By checking this field on the avatar you want to appear in PiP mode, the avatar will be shown automatically when that actor is talking, and will disappear as soon as a dialogue node with a different actor starts.
Functionality that was available before 2.12 (showPipAvatar and hidePipAvatar functions – the pipConfig field has been deprecated since version 2.12).
Before version 2.12
To enable an avatar to appear as a PiP, a CAF is required for Actors (Project -> Project Settings -> Custom Asset Fields -> Actors) with:
- Title: pipConfig
- Type: String
- Default value: (leave empty)
This field should be filled with the following values for the actor that should appear as PiP:
{left:0.75,bottom:0,width:0.25,height:0.4}
The PiP will also need to be shown and hidden manually, by calling one of two functions:
- showPipAvatar(actorID)
- hidePipAvatar(actorID)
showPipAvatar must go in the script of the node that shows the PiP (usually the same one in which they speak). actorID is the ID of the PiP actor, so if avatar X was the first created, the function will be showPipAvatar(1). To then hide the PiP, the opposite should be called, hidePipAvatar(1), As scripts in the Script Editor pane are executed as soon as a node starts, it’s best to call the “hide” function in the node right after the one in which the PiP actor stops speaking.
In the example image above, the first node would have the showPipAvatar function, in the one afterwards the hidePipAvatar.
How do I execute a script before a node is displayed?
In the script editor there is another tab called conditions
Scripts written in the conditions tab will be executed before a node is displayed, which can be helpful if you don’t want to display the node for some reason
How to use a One-Line-Of-Text Bot for the default template bots
Edit the bot’s hotspot for Actor 2, 3, 4 or 5
In the field
avatar_onclick |
Put the following, replace the actorId with the actor of the hotspot you are editing
{"action":"playCustomNode","text":"Pillow, plonk pillow![gesture=surprised]","actorId":"4","getIntoCMMode":true} |
Click Save Item button
FAQ
I’m using a actorID to control a bot from ChatMapper but the bot doesn’t follow instructions
ActorID is generally the order in which an avatar has been created, starting at 1. So normally you'd have a list like this:
However:
- The ID for bots (i.e. avatar imported directly in the 3D environment from the Bots app) is their bot ID, e.g. "bot3c8e76329495e910c1e1784da"
- Actors in ChatMapper store their ID at time of creation, so if you had 5 actors and then deleted the fourth, actor #5 would still have ID=5.