Known Issues & FAQ

We've worked hard to deliver a great LearnBrite Scenario experience, but we're still tracking some known issues. If you find others, please Give us feedback.

Versions

Which version of Scenario should I use (2.9 as of June 2019)?

Templates

Blank Template has Invisible Floor

Building from a Blank Template

How to create a template

Navigation

Spawn (starting) hotspot

Bringing Multiple Spaces together in a World

Switching Spaces in a Campus (World)

Space Settings

Virtual Meeting checkbox – collaborate in the space together

UI

What is the “goggles” icon supposed to do (on different devices)

Gamification

How can I add achievements?

Actions

Make 3d items clickable and trigger actions (2.6+)

Make parts of a scene clickable (2.6+)

Stop Camera Position Changes after onclick action (2.9+)

How can I hide/show items?

Notes

How to change the visual look of Notes

Click the settings icon for a note

Notes with no background

Notes with black background

Notes with Semi-transparent grey with white text label size

Notes – Change Size

How to use UI icons in Notes and Dialogue

Adding Images to Notes

Multiuser / Conferencing

Maximum number of users in a meeting space

What is the Maximum number of users in a space?

iOS 12 Chrome does not support Audio and Video conferencing

ChatMapper

Treating Variables in ChatMapper as Text or Number

Troubleshooting ChatMapper Template Exports

Known Issues


Versions

Which version of Scenario should I use (2.9 as of June 2019)?

Any space you create will by default use scenario_2.8, you can find Advanced settings in the dashboard for a space and change it to other versions. Later versions will give you extra features (if you encounter any bugs let us know!).

v2.0

v2.1

v2.2

v2.3

v2.4

v2.5

v2.6

v2.7

v2.8 January 2019

v2.9 June 2019

V2.10 August 2019


Templates

Blank Template has Invisible Floor

The blank template has an invisible floor which allows you to drag bots and items around. Just be aware this plane exists if you are trying to place items lower than the floor you won’t be able to unless you manually adjust the position `y` value to be a negative number in the edit items list.

Building from a Blank Template

Learn more about building a scene with 3rd party 3d models for rooms/scenes here

https://learnbrite.com/academy/building-from-a-blank-template/ 

How to create a template

 (actors, boards, assets, location, etc pre-positioned)


Navigation

Spawn (starting) hotspot

Where the user enters a scene is a special type of hotspot. With most templates when you arrive there is only the bots and you. Going into edit mode you can not move the spawn hotspot (you can’t move the hotspot you are currently occupying) so create a new hotspot in edit mode, stop editing, move to the new hotspot… now you can select and move the spawn hotspot in edit mode.

Be aware the spawn hotspot does not bring people exactly to that spot, but in a small radius around it randomly, this helps avoid when many users enter a space that their bodies are not inside each others.

Bringing Multiple Spaces together in a World

Create a World in the Dashboard

Add your Spaces

Then use switchScene Script command

Switching Spaces in a Campus (World)

LB.experienceController.switchScene(spaceId);

spaceId is shown in the URL when visiting the space.

Note: if you want to provide a link back to the World starting space, you need to use the word “default” rather than the spaceId. {"action":"callFunction","name":"LB.experienceController.switchScene","parameter":"default"}

Example: call LB.experienceController.switchScene

Dialogue

[action:"callFunction", name:"LB.experienceController.switchScene", parameter:"spaceId"]

onclick

{"action":"callFunction", "name":"LB.experienceController.switchScene", "parameter":"spaceId"}

Script

LB.Actions.callFunction({name:"LB.experienceController.switchScene", parameter:"spaceId"});

Or

LB.experienceController.switchScene(spaceId);

Return value

null


Space Settings

Virtual Meeting checkbox – collaborate in the space together

When creating a new space don’t forget you can easily make it multiuser by checking the “Virtual meeting” box


UI

What is the “goggles” icon supposed to do (on different devices)

  • Toggle between 1st person and third person views on typical flat screen devices
  • On mobile it may enter “magic window” mode
  • On DayDream phones it will ask you to put the device in the headset
  • In WebVR enabled browsers (with headsets connected) it will switch to immersive VR mode

Gamification

How can I add achievements?

First of all, there’s a few pieces of info we need to have to add achievements. We’re currently in the middle of switching systems to a new one that will let you do this on your own, but for the time being we have to add them manually ourselves (LearnBrite).

You can find the form to add the data here: https://docs.google.com/forms/d/e/1FAIpQLScccn5kEabY104XyfuyG3CZblXn96wvmQu2p5tD5cQn5oAkfw/viewform

After you’ve added them you can ping @christian on slack to get them in the game.

Each game is given their own unique identifier; the spaceId is fine, but another name is also a possibility as long as it’s lowercase and has no spaces, like lingoland or banana-field.

To see the achievements in the menu, you need to navigate to the configuration of your space

In the edit page, click “Show advanced settings”, then make sure you have a version set. If you do, you can click on the headers.

  1. Under “Basic” set Achievements-filter by scene to false (no checkmark)
  2. If you can see “Internal” add the snippet that follows, remembering to change “YOUR_UNIQUE_ID” with your space’s identifier. If you don’t have that, or don’t see the “Internal” section, ping @christian

LB.scenarioConfig.worldId=\"YOUR_UNIQUE_ID\";window.setTimeout(function() {LB.gamificationController.loadTasks();LB.gamificationController.loadUserItems();}, 300);LB.scenarioEvents.AddEventListener(\"OnStart\", function(){LB.gamificationController.onSceneLoaded()})

When the achievements have been added to the database, @christian will come back to you with a list of IDs, one for each achievement. For example ll-say-hello or ll-order-at-restaurant

Whenever you want to set one of these tasks as completed, or started, you can call this in that dialog node:

gamification_setTaskStatus(identifier, status);

where identifier is the achievement's ID (e.g. ll-say-hello) and status is one of started or complete. So for instance in the node in which you want the "Say hello" achievement to be obtained, you can add (in the script panel of that node)

gamification_setTaskStatus('ll-buy-fish', 'complete');


Actions

Make 3d items clickable and trigger actions (2.6+)

Version 2.6+ of scenario added onclick to supported fields for 3D items. (see Scenario Actions document for more details on available actions)

Edit mode -> Items List

In the example below we’ve added {"action":"playGesture", "name":"yes"} as an onclick event so now you can click on the Plant in the scene and your avatar will play the head-nodding gesture.

Make parts of a scene clickable (2.6+)

With Scenario version 2.6+ a new feature allows you to place transparent cubes in a scene and add an onclick trigger to them. This can be useful when you want to make static 3d models of interactive. Often 3d models and scenes come as one combined model, using the transparent box trigger you can make parts of a scene responsive without needing to break the 3d model into separate components.

Edit mode -> Items List -> Add New Item

Name: BoxTrigger

Click [Save name]

Choose `Custom item` and click [Add item]

Copy the following URL

https://app.learnbrite.com/assetdb/transparentcube.js

Paste into the field, click [Add item]

A transparent box appears in the scene.

Click the Edit list icon

Find the BoxTrigger, click [Edit]

Now you can enter any scenario action you would like in the onclick field. (see Scenario Actions document for more details on available actions)

For example try:

{"action":"playGesture", "name":"yes"}

Click [Save item]

The box will be invisible in the scene, the mouse cursor will change when over the box. Clicking the box will trigger the action.

Stop Camera Position Changes after onclick action (2.9+)

Eg. I clicked an item and it did an action (play ambient) but it also changed my camera position in third person view.

To stop the camera position from being updated,  set enterCMmode to false

Eg. for your own onclick field change enterCMmode

{"action":"playConversationId","cnvid":9218,"sourceExternalId":"577f76676764b","delayMs":0,"executedFromEA":true,"getIntoCMMode":true}

To

{"action":"playConversationId","cnvid":9218,"sourceExternalId":"577f76676764b","delayMs":0,"executedFromEA":true,"getIntoCMMode":false}

And click the Save item button

How can I hide/show items?

Hide an item

LB.Utils.findItem("breathalizer").visible=false

Show an item

LB.Utils.findItem("breathalizer").visible=true

Fade out an avatar

LB.Utils.fadeObject(player().meshes,false);

Fade out an item

LB.Utils.fadeObject(LB.Utils.findItem("breathalizer"),false);

Fade in an item

LB.Utils.fadeObject(LB.Utils.findItem("breathalizer"),true);

You can also set the duration of the fade and hook things for when it ends.

This is very advanced stuff but you are welcome to use it.

Note: We will be making Actions for these type of things in the future


Notes

How to change the visual look of Notes

Click the settings icon for a note

Change innerHTML is the text that appears on the note and can include html tags eg. <img>

Change style using CSS rules, see below for some useful examples including changing the size

Notes with no background

Transparent background (great for notes with images)

backgroundcolor:transparent

Notes with black background

Black background with white text

background-color:#000000;color:white

Notes with Semi-transparent grey with white text label size

background:rgba(1,1,1,0.5);height:70px;min-height:70px;color:white

Notes – Change Size

background-color:#ffff6d; font-size:20px; width:800px; height:50px;min-height:50px

How to use UI icons in Notes and Dialogue

Example Laser Pointer

<i class="fa fa-bullseye fa-stack-1.5x fa-lg" aria-hidden="true"></i>

Example Hotspot Marker

<i class="fa fa-map-marker fa-1_5x fa-lg fa-fw fa-stack-1.5x" style="color:007bff;"></i>

A full list of available icons can be found here https://fontawesome.com/v4.7.0/icons/ 

You can also get creative with rotating and stacking icons, here are some examples https://fontawesome.com/v4.7.0/examples/ 

Adding Images to Notes

The HTML <img> tag is supported. There are two things you need to add to image tags so they appear in the 3d scene and the popup correctly.

Eg. Change your original image tag

<img height="40" width="139" src="https://platform.slack-edge.com/img/add_to_slack.png">

To include the following two changes, add crossorigin="anonymous" and prepend you url with https://hurl.learnbrite.com/pr/ which will help avoid CORS loading errors.

<img crossorigin="anonymous" height="40" width="139" src="https://hurl.learnbrite.com/pr/https://platform.slack-edge.com/img/add_to_slack.png">

Multiuser / Conferencing

Maximum number of users in a meeting space

There are two variables you can change for a Space

maxUsers – the maximum number of users allowed in a space after which new visitors will be notified the space is full

LB.scenarioConfig.currentScene.maxUsers = 50;

instanceMaxUsers – the maximum number of users in a space before a new instance is created

LB.scenarioConfig.currentScene.instanceMaxUsers = 50;

What is the Maximum number of users in a space?

We limit the number of users in a space so that anyone can join no matter what device they are using. For example people running older low spec laptops using Internet Explorer 11 browser.

However we also support a feature called "Instancing" in which the platform automatically creates a new instance of the space like the gallery for the next lot of people to go into once the first instance is full.

This way you can scale to an unlimited audience size in any space.

There is an added feature that means the chat, host avatars, audio and video is shared across all instances so you can present to hundreds of people for example.

The concurrent limit set on the templates is 15 people before instancing occurs (this can be altered per Location). If you suspect any users might be joining using Internet Explorer 11 or older smartphones then that is probably a safe number.

We have experimentally had over 200 avatars running in a single Chrome tab on today's laptops.

iOS 12 Chrome does not support Audio and Video conferencing

expect iOS13 release in 2019 to allow for browsers other than Safari. https://learnbrite.atlassian.net/browse/SCEN-938

  • Solution: Use Safari or dial-in until iOS13 ships.

ChatMapper

Treating Variables in ChatMapper as Text or Number

I'm watching a ChatMapper variable in the dialogsystem and its increasing like a string rather than a number

enemy: "10"
enemy: "102"
enemy: "1020"
enemy: "1020021"

in the ChatMapper file an example script node shows

Variable["param4"] = Variable["param4"] + 100
Variable["enemy"] = Variable["enemy"] + 2
Variable["rubNum"] = 1341
Variable["dec3"] = 3
Variable["node3"]="DP 1.3.4.1"

So why would `enemy` be treated like a Text string rather than a Number?

Answer: Initial value for variables in ChatMapper

If you don’t supply an initial value the Variable will be treated as a Text variable

by setting initial value to 0 it now shows as

Scenario will now treat the Variable as a number

enemy: 4

Troubleshooting ChatMapper Template Exports

  • Ensure you have only one conversation set to Autoplay (since version 2.7.5 in case an author mistakenly adds more than one conversation as Autoplay a popup list will appear allowing the user to choose one of the conversations marked as Autoplay)
  • If you create a new conversation (rather than using the Explore, Actor2, Actor3, Actor4, Actor5) be sure to click the first node of the tree and select the location `Sample location`
  • Leave the Player actor’s avatar_externalId blank so the user gets their own avatar look (you can use this however if you want to override the players actor for a roleplay scenario, eg. forcing them to appear as a male nurse)

Known Issues

  • Some furniture is baked into the templates, we should really make them 3d items you can move/remove.
  • Currently you can’t custom name hotspots (see spotTag though) and other 3d items, which makes them hard to identify in the edit list https://learnbrite.atlassian.net/browse/SCEN-777 
  • Uploading a cmpkg scenario ends up with a Whoops error
  • The .cmpkg name must be the same as the project file (.cmp)
  • Solution: Rename your .cmpkg to match your .cmp
  • When you upload a cmpkg as a scenario it unzips all the assets on the server then looks for a .json scenario of the same name as the cmpkg that was uploaded
  • Proposed solution: create an informative error message to the user that the [NAME].json can not be found, check that the name of the cmpkg matches the cmp project filename. https://learnbrite.atlassian.net/browse/ES-190 
  • Is it possible to change “textures” based on user interaction – ask about named textures
  • LearnBrite’s Website demos are hard to find and should perhaps be referenced in the documentation
  • Firefox on Android – avatars won’t displaying.
  • This is a known issue and currently has no fix.
  • How does Scenario choose male/female voice for a player?
  • How do I round a score from say 46.6666666667% to 47%?
  • How do I disable the suggested videos that show when pausing or at the end of a video on Vimeo?
  • `pitch` is not supported in some fallback voices, but `rate` is, which voices?
  • Where should I place my pip avatar in a scene?
  • Can I hide the pip actor?

Trying to play a gesture in a dialogue node isn’t working.

[action:"playGesture", name:"yes"]

Not working in dialogue nodes or the script editor

Dialogue

[action:"playGesture", name:"yes", delay:"2000"]

onclick

{"action":"playGesture", "name":"yes", "delay":"2000"}

Script

LB.Actions.playGesture({name:"yes", delay:"2000"});

VR

  • Cardboard mode on Chrome with Scenario 2.7 spinning uncontrollably due to Chrome API change.
  • Solution: Fixed in Scenario 2.6.

© 2018 LearnBrite – Commercial In Confidence

Trademarks & Copyrights are property of their respective owners. Pictures are indicative only & may not reflect final production.

How useful was this article?

Click on a star to rate it!

We are sorry that this article was not useful for you!

Let us improve this article!