VR Training Builder is a tool that allows users to create interactions inside the VR Viewer. Creating a simple interaction in the Training Builder requires the use of a Scene Node, an Event and a Response. For example when the VR viewer enters a specific area, an alarm sound plays. Inputs can take the form of a Scene State, an Animation Sequence, a Scene Object, or an Action. Functions include events and responses that are logically combined using Boolean operations. For ease of use, functions are created using diagrams of smart blocks and connections that link the corresponding components together in a visual scripting manner.
The Scene Node defines which object in the scene is the actor in the event system, but in some cases there might be a large number of objects, which requires the creation of separate events system for each one, and that is inconvenient.
This can be solved by the use of Template Node in SimLab Composer, instead of the regular scene node. The Add Template button in Training Builder is as shown in the image below. Refer to this article to learn more about Template Nodes.
The tutorial below shows how to use Template Nodes in VR.
When a user selects the “Training Builder” option from the “VR Workbench” ribbon, the dialog box shown below will appear. It contains the following options:
1) the current/selected Diagram.
2) create a new diagram.
3) edit Variables and initial values.
4) remove selected diagram.
5) all needed Inputs, events and responses functions and Boolean operations.
6) Unlimited work area.
7) Help.
To better understand this system, it should be read as an "If-then" statement. The user can add nodes, events, response functions and Boolean operations by clicking on them or by dragging and dropping into the work area. The connection lines define the information flow of inputs - blocks - events.
Icons
Inputs list
Icons
Events List
Icons
Responses List
Icons
Booleans List
Sequence
Scene Start
Apply Scene State
Variable Equals String
Scene State
Scene State Applied
Play Sequence
Objects Overlap
Scene Node (object)
Sequence Ended
Show/Hide
Object is Grabbed
String
Node Entered Node
Teleport to Camera
And Operation
Variable
Node Exited Node
Sound Action
Or Operation
Action
Node Triggered
Change Node Grabable State
Not Operation
Boolean
Node Grab Started
Stop Sequence
Node Grab Ended
Show Message Box
Delay
Change Node Action
Video Action
Advanced Change Variable Value
Branch
Get Attribute Value
Set Attribute Value
Glow Object
Unglow Object
Point To Object
Remove Point To Object
Get Position
Set Position
Fall to Surface
Reset Rotation
1. Lets make a simple exercise using the Training Builder. The main aim of the exercise is to run an alarm system (light and buzzer) when the Viewer enters a specific area. To do so, we need to select "Node Entered Node" from Events. Then we add two nodes from the “Inputs” box: The first one is for the user, and the second is for the specific area.
2. Select the Viewer Start Position from the objects tree or directly from 3d area and press on this icon to pick it into the first node, and select the specific area (you can make a specific area by create a box and make Alpha value equal zero for its material) and pick it into the second node.
3. To connect the two nodes with "Node Entered Node" event just hold press on the red point from first node and drop it in the "SceneNodeA" red point in "Node Entered Node" event, and the second node with the "SceneNodeB" red point as shown in the image below.
4. The two nodes are connect with the "Node Entered Node" event as shown below.
5. Now we need to add two different response functions: "Play Sequence" to start the light animation (you need to create an animation sequence before) and "Play Sound" for buzzer, also add two inputs "Sequence" and "Sound File" to pick the light animation and the buzzer sound effect files on them. Connect these inputs blocks with response functions, and "Node Entered Node" event with these two response functions by the same way in the step 3.
In edit variables and initial values dialog below, user can define infinite number of variable and get a values for them, the variable values must begin with letters and can only contain letters, numbers and underscores, These variables can be used to maintain certain conditions such as the status of doors (closed/open) windows, garage (empty/busy), engine (working/not working) and many similar examples, then these variables can changes with event functions into VR Viewer.
The video below shows an example of using VR Training Builder.