Skip to content
  • There are no suggestions because the search field is empty.

How to create an Event in the Procedure Builder - Interaction based

This article will show you how to create an interaction based event in the SynergyXR Procedure Builder.

What is an Interaction-based Event? 

An Interaction-based event is one that is initiated when a user interacts directly with an asset, like picking up an object, pressing a button, or flipping a switch. This is in contrast with more passive conditions, such as moving inside an area. 

Why use Interaction-based Events? 

  • Increase Realism: Interactions like picking up a box or pushing a button feel natural when they trigger immediate feedback. 
  • Reinforce Learning: Allows users to connect their actions with outcomes, improving their understanding of cause and effect. 
  • Support Safety Training: They can simulate unsafe scenarios or actions (like carrying out tasks without PPE), while providing instant corrective feedback. 

The images above showcase an interaction-based event, consisting of two event steps arranged sequentially. Completing the first operation automatically advances the user into the next event step in the sequence. 

In this example, the user grabs the box on the left and places it on the pallet, proceeding into the next event step – another Grab and Place operation for the box on the right. By arranging interactions in a sequential way, the procedure forms a cohesive and logical narrative, where each operation naturally leads to the next. 

Note on Context 

In the training scenarios shown in these articles, events are presented in isolation to highlight specific functionalities and usage. 

This may suggest that what is shown here could be implemented without using events. It is important however to keep in mind that each event should be imagined as being part of a broader procedure. 

When applying these examples in your own work, always think of how each event would integrate with other events and steps within a complete workflow. 

NoteThis is the second article of this series. It assumes the reader is familiar with the basics of both the Procedure Builder and the Events system. Therefore, basic concepts and practices, such as the importing of models or setting up colliders, will not be addressed here. 

Creating your Interaction-Based Event 

You will need: 

  • An open space in the Procedure Builder. 
  • Assets: 
  • One or more objects to which you can link dangerous circumstances. 
  • A warning sign or card with text/visuals that tell the user they’ve committed a dangerous action. 
  • Audio files to enhance immersion (for placement of objects, alarm, engine running, etc.) 

 

1. Content Review 

This procedure consists of two steps and one event. There are nine models and six audio files. Additionally, two of the models, namely the Forklift_Set and the Pallet_Set, are parents, meaning that they have additional models (children) grouped under them. In the case of the Forklift_Set, this consists of the vehicle’s main body, the vertical bars and the forks.  

There are two models under the Pallet_Set: the wooden pallet with the stack of boxes, and the red floor marker. 

Note: Models are grouped this way primarily so that they can be transformed as one unit, instead of importing and positioning them individually in the procedure builder. 

This not only helps organize your assets, but also referencing them in the procedure builder workflow. 

2. Add Content 
    • Here, the area under the raised forks of the vehicle is the area of interest, so the forklift is added first. 
    • Add the Pallet_Set or similar model. 
    • Add the two individual box models. 
    • Add the Warning_Sign and CrushZone_Sign models. 
    • Adjust sizes and positions. 
    • Add your preferred sounds. 
    • Adjust the models’ colliders. 


    3. Managing Assets and Toggling the Event 

    Before building the event, we must prepare the models, so they are left in the desired state at the start of the procedure. 

    • Add three Change Visibility actions as Actions Before to your Wait operation in your introductory step. 
    • Set the Pallet_Marker, the Warning_Sign and the CrushZone_Sign as the objects for the three Change Visibility actions and choose Hide Mesh as the Style setting. 
    • For additional immersion, you may choose to add a sound of an engine running, to suggest the forklift was left running. 
    • Add a Toggle Event action as an Action After. 
    • Add two Change Visibility actions as Actions After. 
    • Set the Warning_Sign and Pallet_Marker models as the Object and choose Show Mesh as the Style setting. 
    • Add a second Step with a Wait operation. 

    Recap: 

      • Why did we both hide and show some of the assets within the same step? 

      How the assets are presented is entirely subjective. In this case, the assets are hidden the moment the user enters the procedure and then made visible once the introductory voice guidance is read out. 
      This way, the assets are shown before the second message begins to be read aloud, establishing good narrative flow. 

      • Why did we choose Hide Mesh instead of Disable Object? 

      When you use Hide Mesh, the object is hidden from view, but its collider is still enabled. With Disable Object, the object is both hidden and its collider disabled as well. 

      • Why did we add a second step with just a Wait operation? 

      When the voice guidance for the first step is finished, the assets are made visible. With this second step, we provide the user with a simple instruction, wherein they are invited to both acknowledge and begin to solve the scene before them. establishing good narrative flow. 



      4. Create the first Event 
      • Go to the Events tab. 
      • Add an event and name it Box_01

      5. Add an Event Step 
        • Choose Grab and Place from the operations drop-down menu. 
        • Drag the Box_01 asset into the Object field. 
        • Enable New parent and assign the Pallet_Set asset. 
        • Enable Position and place it so that Box_01 and Box_03 are overlapping completely. 
        • Under Advanced, enable Socket size and scale it so that it’s the same size as the box. 
         


        • Do the same for Socket offset position so that the socket is in the same position as the box. 

        6. Define your Actions After 
          • Optional: add a Play Audio action and add a sound that suggest the setting down of an object for extra immersion. If you do so, enable Location and set Box_01 as the asset where you want the audio to be played from. 
          • Go into the Actions After of your first step and choose Box_01 from the dropdown of your Toggle Event action. 



           

          7. Add a second Event Step 

          • Repeat the same process you did for the first Grab and Place operation, except add the Box_02 model. 

          8. Define your Actions After 

          • Add one Transform Object action and assign the Forklift_02_Bars asset. 
          • Enable Position and lower the bars. 
          • Enable Duration and add a value of 0.5 
          • Enable Delay and add a value of 1. 
          • Add another Transform Object action and assign the Forklift_02_Forks asset. 
          • Repeat the same actions, except, add a value of 1.05 as the Delay. 
          • Add a Play Audio action and add one that suggests the sudden fall of metal equipment. 

          Your settings should look like this: 

          9. Add a third Event Step

          • Add a Press operation and choose the Warning_Sign as the Target. 
          • Choose Distance Press as the Press Type. 

          10. Define your Actions After

          • Add a Change Visibility action and choose the CrushZone_Sign or your warning sign of choice. Select Show Mesh for Style. 
          • Optional: add two Play Audio actions, one for an Alarm sound and one for a final message.  
          • For the latter, go to your content tab and add a sound. Choose the Build Sound from Text option. You can now create your custom sound and add it to the second Play Audio action. 

          Recap: 

            • What was the goal with the two Transform Object actions? 

            We wanted the result of placing the second box to be the fork apparatus suddenly coming down, to suggest to the user that they have carried out a dangerous action. 

             

            • Why were Duration and Delay values added to these Transform Object actions? 

            The duration value defines how long it takes for the asset to move into its new position, while the delay determines how long the action must wait for before it begins. We want wanted the assets to come down rather fast, but to prevent it from happening as soon as the box is placed.  

             

            • A Press operation was added in the third event step. Why? 

            This served the purpose of providing the user with informational closure. By pressing the warning sign, the user is notified audibly and visually to the dangerous and erroneous action they performed. Otherwise, after placing the second box, the user would not have received feedback. 

             

            • Why did we choose Distance press as the Press type? 

            Distance press, as the name suggests, exempts the user from being up close to the target of the press operation. Instead, the user can op for just pointing to the target from afar and pressing the trigger. This is useful for when physical touch isn’t needed. 

             

            • Can I create other types of sounds with the Build from Text function? 

            No. This only allows you to convert the textual input into an audio file that you can then add to your Play Audio actions. These can be useful when you wish to give the user this kind of feedback without having to resort to voice guidance in steps.