...
A script is where an author defines what will happen in a training scenario. It can be thought of like a movie script. A script is made up of one or more frames. It defines the order and relationships between the frames. In a script, frames are arranged in a tree structure. Branching happens by design.
...
The picture above shows a script in edit view within Storyflow.
...
Frames
...
Frames live in a script. Frames control the specific things that happen in a training scenario. It might be an animation starting, a piece of media playing, a text box appearing, etc… Each of these distinct items is called a resource.
Frames trigger resources right away or based on conditions. A condition can be many things. It could be that a piece of audio has stopped playing, a VR user learner has taken a particular action, an object has changed state, a window has been closed or one of several other possibilities.
For example, a frame may have a condition that waits for a user learner to close a notification window in the VR scene. When that happens it triggers an animation resource that tells an avatar character in the scene to say something. More simply, when the window closes the avatar character begins to speak. The frame condition controls when the resource activates.
A frame can have zero or more conditions and resources. Frames can also have subframes or child frames. This is one way to create branches. This will be described in the next section.
...
The picture image above shows a script with the frames on the left-hand side. The currently editable frame is highlighted in red. The conditions and resources for that frame are visible in the center of the screen. Finally, the right-hand side shows a list of resources, conditions, variables, and events that can be used when creating or editing any frame. These can be dragged and dropped into the currently selected frame.
...
Each frame can have its own child frames. This means any branch can be several levels deep. If a frame has child frames, those will open once their parent is activated. This makes defining a sequence very easy and happens by design. If a training procedure has three steps that happen in a specific order, you can define three frames that happen one after the other. A single script allows for several branches to exist in parallel. Each can have its own defined sequence.
...
Conditional Branching
Conditions allow you to control when and if a branch opens. Sometimes, you’ll want a branch to open right away. Other times you’ll want it to wait until something specific happens. Conditions allow you to do this. They can be of many types.
Storyflow provides a library of different conditions which can be dragged and dropped into a frame. These conditions can be based on resources, user learner actions in the VR scene, the state of a 3D model, and many more possibilities.
...
Let’s think of a training situation for a store. We have a VR scene of a store with a customer avatar character and a 3D model of a product. The trainee learner is the employee and will interact with the customer and product inside the scene. We want to author a simple scenario where the trainee learner can ask the customer three questions in any order.
...
Each question is a branch that could lead to additional interactions. In this case, we would add a condition to each branch to listen for the trainee learner to ask a specific question. When the condition is met, we can author that the customer avatar character responds appropriately to each individual question.
...
In the ‘Ask about safety features’ frame above, there is a speech recognition condition that is waiting for the trainee learner to ask the customer about the safety features. In the resources section on the right, it shows that some audio will play once the trainee learner asks the right question. That piece of audio is anchored to the customer avatar character so it will appear as though the avatar character is responding to the traineelearner.
In terms of branching, let’s say that each of the three branches has its own condition. When the trainee learner is going through this scenario, the system will be waiting for the trainee learner to ask any of the three questions. The order is not important in this case. Any of the three branches will become active based upon the question the user learner asks. If the user learner goes through one branch, the other two will remain open and wait for their condition to be met. As opposed to being sequential, the branching is conditional.
If necessary, it can be more sophisticated. In cases like these, we may want to know when every question has been asked. Variables and events allow you to keep track of individual and groups of choices that the trainee learner makes. These can be used with conditions later in the script or even in another script.
For example, we may want to prevent a trainee learner from progressing if they have not asked every question. Or we may want to remind the trainee learner to ask a question if they have not. This level of control is possible with our drag and drop editor. These options allow your training scenarios to be specific, responsive, realistic, and helpful.
...
In our example, one of the questions is about product options. This is a perfect opportunity for the trainee learner to demo the product and its various features.
...
As the trainee learner follows the ‘Ask about product options’ branch, they can practice demoing features of the product for the customer.
...
Adaptive content is a powerful, general system within Storyflow. Variables, which were mentioned earlier, play a key part in it. This system allows for content of any kind to be presented based on choices the user learner has made. It also helps with script maintenance and testing.
...
Let’s say instead of asking the customer questions, the customer asks the trainee learner questions. These questions, their order, and the number of questions can be randomized. This helps the trainee learner not become accustomed to a particular pattern of interaction and increases their level of engagement.
...