SimDirector Tutorial


Contents
Related Links

Design the Scenario

For experienced scenario designers, it is a very good idea to design the scenario by writing out a story, of how it should go in some detail before starting to use the tool to create it. However, for those new to using the tool, it is easier to simply start with a basic storyline. The outline of this scenario is to learn about SimDirector by:

  1. Flying a Mooney Bravo out of Tampa International Airport.
  2. Looking at moving boaters below the user's aircraft.
  3. Answering multiple choice questions
  4. Following gates placed over Old Tampa Bay.
  5. Landing at St. Pete-Clearwater International Airport.

Create the Scenario

In this section, the initial scenario which will be built upon is set up. Most importantly, resources (e.g. briefing, images) and metadata (e.g. resource file path, type of scenario) will be finalized. Metadata is an essential component required for all scenarios to work properly and this section should not be skipped.
Step
  • Save the scenario as Tampa Bay Tour.
  • Use Airport, to choose Tampa International Airport as the starting airport.
  • Create an image called: Mission_Complete.jpg which will be used for the completed image property of the scenario metadata.
  • Create an image called: Mission_Incomplete.jpg which will be used for the uncompleted image property of the scenario metadata.
  • Create a subdirectory called images relative to the tutorial scenario and place both images in this directory.
  • The images should be 380 pixels wide x 232 pixels in height. For our tutorial, we will use a picture of a Mooney Bravo.
Mission Complete

Mission Incomplete

  • Create a Mission Briefing called: Overview.htm at the same directory level as the scenario.
  • Create an Abbreviated Mission Briefing that will show up in the kneeboard called: Tampa Bay Tour.htm at the same directory level as the scenario.

Create Introduction Group

Now that the scenario is correctly set up, let's build a scenario! The introduction group overviews the scenario with dialogs that use the system's text-to-speech capability. Because listening to text can be mundane, the camera has been changed to a cinematic camera while the introductory text plays.

This group will teach the scenario creator how to:

Step Description Image
In order to organize the scenario into logical components, every group will contain a TimerTrigger called (Begin XYZ). This will be the single entry point into the group. In the case of the Introduction group, the TimerTrigger will be activated which will immediately fire its actions. See Triggers for more information about how triggers work.
Dialogs are an essential part of scenario scripting and provide verbal and written directions for the user. In all of the dialogs, the text-to-speech mode is utilized.
Cameras are powerful objects that can provide a multitude of perspectives for nearly ever circumstance. They can be given an attached location, attached offset, as well as an object or location to focus on. In this case, a cinematic camera is attached to the user and given an offset such that the view is looking at the user from a distance providing a spectacular view of the airport. By default, the camera is on and the scenario will start using this cinematic camera.
This will turn the cinematic camera off and return to the default view which is the virtual cockpit.
In order to organize the scenario into logical components, every group will contain an ObjectActivationAction called (End XYZ). This will be the single exit point out of the group.
  • Create a Group object and name it Group: Introduction. Group all of the objects mentioned above into this group.
  • Connect the objects, as seen in the final Group: Introduction screenshot.
  • Upon completing the creation of Group: Release Brakes, connect (End Introduction) to (Begin Brake Release).

The group named GroupIntroduction.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.

Create Release Brakes Group

Before taking off, the parking brakes must be released. This is the perfect opportunity to showcase PropertyTriggers, FocalPoints, ViewChangeActions, and VirtualInstructorSessionActions. The user will get a chance to release the parking brake themselves. This can be monitored by the PropertyTrigger. If the user fails to release the parking brake, a FocalPoint will be shown and a ViewChangeAction will direct the user to where it is. Finally, the VirtualInstructorSessionAction will perform the action for the user.

Step Description Image
In order to organize the scenario into logical components, every group will contain a TimerTrigger called (Begin XYZ). This will be the single entry point into the group. This group will be activated by the Introduction Group.
This will activate both the Timer Trigger and the Property Trigger. The Timer Trigger will allow the user a certain amount of time to release the parking brake. The Property Trigger will be checking to see if the user has released the parking brake.
Using the Condition Logic window, a condition can be created to check whether the user's brakes are engaged or released. If the user releases the brakes then the scenario can proceed to the next step. If not, the virtual instructor will release the parking brake for them.
This timer will count down to zero. If the time elapses, then the parking brake will be released for the user.
Before the parking brake is released by the VirtualInstructorSessionAction, make sure the user hasn't already released the parking brake.
Confirm that the parking brake is still on.
Use the Virtual Instructor mode to configure the Focal Point to highlight the parking brake and provide. Adequate text is also highly recommended.
Turn on the parking brake focal poit to show the user to see where the parking brake is.
Use the Virtual Instructor mode to configure the ViewChangeAction so that it changes the user's view to be looking at the parking brake.
Let the user know the scenario is about to release the parking brake.
Use the Sessions window in Virtual Instructor to create a VirtualInstructorSessionAction that releases the brake for the user.
Because the brake has been released by now (either by the user or the virtual instructor), the scenario can disable the focal point and any triggers that are listening for the parking brake property.
Since the parking brake is released, the Release Brake Goal can be resolved as Passing!
In order to organize the scenario into logical components, every group will contain an ObjectActivationAction called (End XYZ). This will be the single exit point out of the group.
  • Create a Group object and name it Group: Release Brakes. Group all of the objects mentioned above into this group.
  • Connect the objects, as seen in the final Group: Release Brakes screenshot.
  • Upon completing the creation of Group: Full Throttle, connect (End Release Brakes) to (Begin Full Throttle).

The group named GroupReleaseBrakes.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.

Create Full Throttle Group

After releasing the parking brake, the throttle must be put into the full throttle position. PropertyTriggers, FocalPoints, ViewChangeActions, and VirtualInstructorSessionActions are used again.

Step Description Image
In order to organize the scenario into logical components, every group will contain a TimerTrigger called (Begin XYZ). This will be the single entry point into the group. This group will be activated by the Release Brakes Group.
This will activate both the Timer Trigger and the Property Trigger. The Timer Trigger will allow the user a certain amount of time to increase to full throttle. The Property Trigger will be checking to see if the user is currently at full throttle.
Using the Condition Logic window, a condition can be created to check whether the throttle is at full throttle. If the user moves the throttle to full throttle then the scenario can proceed to the next step. If not, the virtual instructor will move the throttle to full throttle for them.
This timer will count down to zero. If the time elapses, then the throttle will be increased for the user.
Before the throttle is increased to full throttle, make sure the user hasn't already done so.
Confirm that the throttle is not at full throttle.
Use the Virtual Instructor mode to configure the ViewChangeAction so that it changes the user's view to be looking at the throttle.
Let the user know the scenario is about to modify the throttle.
Use the Sessions window in Virtual Instructor to create a VirtualInstructorSessionAction that releases the brake for the user.
Use the Virtual Instructor mode to configure the ViewChangeAction so that it changes the user's view to look ahead.
Because the throttle is at full by now (either by the user or the virtual instructor), the scenario can disable the focal point and any triggers that are listening for the throttle property.
Since the thorttle is at full, the Full Throttle Goal can be resolved as Passing!
Turn on a focal point which allows the user to see where the throttle is.
In order to organize the scenario into logical components, every group will contain an ObjectActivationAction called (End XYZ). This will be the single exit point out of the group.
  • Create a Group object and name it Group: Full Throttle. Group all of the objects mentioned above into this group.
  • Connect the objects, as seen in the final Group: Full Throttle screenshot.
  • Upon completing the creation of Group: Takeoff, connect (End Full Throttle) to (Begin Takeoff).

The group named GroupFullThrottle.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.

Create Takeoff Group

In Flight Instructor mode, flights can be recorded and then be either played as a recording or graded against. In this group, a flight that has been previously recorded will be graded against to check that the user is going in the right direction. This is done using the FlightSegment.
Step Description Image
In order to organize the scenario into logical components, every group will contain a TimerTrigger called (Begin XYZ). This will be the single entry point into the group. This group will be activated by the Full Throttle Group.
If the FlightSegment is set to grade mode then upon activation the flight segment will grade the user's aircraft variables against the recorded flight's variables on an interval basis. If the values deviate beyond a threshold then actions can be fired. For this scenario, if the user's heading deviates too much then on screen text becomes activated. See Flight Instructor Mode, Segments Window, and Recordings Window for more information. Once the FlightSegment is done grading the takeoff then the first gate will activate.
The user has exceeded the acceptable heading range, tell them they are going too far north by activating the OnScreenText.
The user has exceeded the acceptable heading range, tell them they are going too far south by activating the OnScreenText.
Hide the on screen text after a while. If the user exceeds the acceptable heading range then the OnScreenText will be activated again.
This text will persist on screen till Stop: Too Far South deactivates it.
This text will persist on screen till Stop: Too Far North deactivates it.
Tell the user that they should follow the flight segment!
In order to organize the scenario into logical components, every group will contain an ObjectActivationAction called (End XYZ). This will be the single exit point out of the group.
  • Create a Group object and name it Group: Takeoff. Group all of the objects mentioned above into this group.
  • Connect the objects, as seen in the final Group: Takeoff screenshot.
  • Upon completing the creation of Group: Takeoff, connect (End Takeoff) to (Begin Gate 1).

The group named GroupTakeoff.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.

Create Gate 1 Group

This is the first gate in which the user must fly through. This group will turn on the point of interest and scenery object when activated and disable the point of interest and scenery object when they are within proximity.
Step Description Image
In order to organize the scenario into logical components, every group will contain a TimerTrigger called (Begin XYZ). This will be the single entry point into the group. This group will be activated by the Takeoff Group.
This will allow the user to see the compass and point of interest name on their screen
The scale is increased on this hoop in order to make the scenario very easy!
The point of interest is attached to the scenery.
The area is attached to the scenery object so that when they also fly through the area when they fly through the scenery.
The proximity trigger is attached to the area defined above. When the user enters the proximity, the point of interest and scenery will deactivate and the scenario will continue onto the next group.
The scenario will be saved after they reach the gate!
In order to organize the scenario into logical components, every group will contain an ObjectActivationAction called (End XYZ). This will be the single exit point out of the group.
  • Create a Group object and name it Group: Gate 1. Group all of the objects mentioned above into this group.
  • Connect the objects, as seen in the final Group: Gate 1 screenshot.
  • Upon completing the creation of Group: Radio Panel, connect (End Gate 1) to (Begin Radio Panel).

The group named GroupGate1.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.

Create Radio Panel Group

Step Description Image
In order to organize the scenario into logical components, every group will contain a TimerTrigger called (Begin XYZ). This will be the single entry point into the group. This group will be activated by the Gate 1 Group.
The Panel object can be used to represent the Radio Instrumentation Panel in SimDirector. After defining the panel, it can be opened and closed using respective actions.
Now that the Radio Instrumentation Panel is defined it can be opened using this action.
Turn on the focal point around the Increase Altitude button
Focal Point around the Increase Altitude button
Use the Sessions window in Virtual Instructor to create a VirtualInstructorSessionAction to set the autopilot altitude to 600.
Turn on the focal point around the Lock Altitude button
Focal Point around the lock Altitude button
Use the Sessions window in Virtual Instructor to create a VirtualInstructorSessionAction to lock the altitude.
Turn on the focal point around the master autopilot switch
Focal Point around the master autopilot switch
Use the Sessions window in Virtual Instructor to create a VirtualInstructorSessionAction to engage autopilot.
Turn off the autopilot after a set amount of time
Use the Sessions window in Virtual Instructor to create a VirtualInstructorSessionAction to disengage autopilot.
Since autopilot will be disengaged, the radio panel no longer needs to be open.
In order to organize the scenario into logical components, every group will contain an ObjectActivationAction called (End XYZ). This will be the single exit point out of the group.
  • Create a Group object and name it Group: Radio Panel. Group all of the objects mentioned above into this group.
  • Connect the objects, as seen in the final Group: Radio Panel screenshot.
  • Upon completing the creation of Group: Look At Boats, connect (End Radio Panel) to (Begin Look At Boats).

The group named GroupRadioPanel.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.

Create Look At Boats Group

During this part of the scenario, the user has the luxury of having autopilot turned on; so, let's do something fun. Using a cinematic camera, the scenario creator can configure the user to watch one of the sailing boats from the sky. In order to make this happen, the following steps will need to be done:
Step Description Image
In order to organize the scenario into logical components, every group will contain a TimerTrigger called (Begin XYZ). This will be the single entry point into the group. This group will be activated by the Radio Panel Group.
In this case, a cinematic camera is attached to the user and onlooking Boat 1. Autopilot is on at the moment and the user does not need to worry about flying for a brief moment!
Place this boat in Tampa Bay between the 1st and 2nd gate!
Provide the boat with sensible waypoints to sail using the Waypoints window.
Place this boat anywhere in Tampa Bay!
Provide the boat with sensible waypoints to sail using the Waypoints window.
Place this boat anywhere in Tampa Bay!
Provide the boat with sensible waypoints to sail using the Waypoints window.
In order to organize the scenario into logical components, every group will contain an ObjectActivationAction called (End XYZ). This will be the single exit point out of the group.
  • Create a Group object and name it Group: Look At Boats. Group all of the objects mentioned above into this group.
  • Connect the objects, as seen in the final Group: Look At Boats screenshot.
  • Upon completing the creation of Group: History Question, connect (End Look At Boats) to (Begin Gate 2).

The group named GroupLookAtBoats.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.

Create Gate 2 Group

This is another gate in which the user must fly through. It is similar to Gate 1. This group will turn on the point of interest and scenery object when activated and disable the point of interest and scenery object when they are within proximity.
Step Description Image
In order to organize the scenario into logical components, every group will contain a TimerTrigger called (Begin XYZ). This will be the single entry point into the group. This group will be activated by the Look At Boats Group.
This will allow the user to see the compass and point of interest name on their screen
The scale is increased on this hoop in order to make the scenario very easy!
The area is attached to the scenery object so that when they also fly through the area when they fly through the scenery.
The point of interest is attached to the scenery.
The proximity trigger is attached to the area defined above. When the user enters the proximity, the point of interest and scenery will deactivate and the scenario will continue onto the next group.
The scenario will be saved after they reach the gate!
In order to organize the scenario into logical components, every group will contain an ObjectActivationAction called (End XYZ). This will be the single exit point out of the group.
  • Create a Group object and name it Group: Gate 2. Group all of the objects mentioned above into this group.
  • Connect the objects, as seen in the final Group: Gate 2 screenshot.
  • Upon completing the creation of Group: History Question, connect (End Gate 2) to (Begin History Question).

The group named GroupGate2.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.

Create History Question Group

What instructional content is not complete without a multiple choice question? This section will teach the scenario creator how to:
Step Description Image
In order to organize the scenario into logical components, every group will contain a TimerTrigger called (Begin XYZ). This will be the single entry point into the group. This group will be activated by the Gate 2 Group.
The user can effectively skip the multiple choice question if they want. MenuPromptTrigger allows the scenario creator to create branches in the scenario that are driven by the user.
Ask the user a military history question about Tampa. If they are correct, then points will be awarded!
If the user chooses the correct answer, the multiple choice goal is resolved and the user is awarded the 5 points.
If the user chooses the incorrect answer, the multiple choice goal is not resolved and the user is not awarded the 5 points.
In order to organize the scenario into logical components, every group will contain an ObjectActivationAction called (End XYZ). This will be the single exit point out of the group.
  • Create a Group object and name it Group: History Question. Group all of the objects mentioned above into this group.
  • Connect the objects, as seen in the final Group: History Question screenshot.
  • Upon completing the creation of Group: Gate 3, connect (End History Question) to (Begin Gate 3).
  • Upon completing the creation of Group: All Goals, connect GoalResolution: Multiple Choice Question to Goal: Multiple Choice Question.

The group named GroupHistoryQuestion.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.

Create Gate 3 Group

This is another gate in which the user must fly through. It is similar to Gate 2 and Gate 1. This group will turn on the point of interest and scenery object when activated and disable the point of interest and scenery object when they are within proximity.
Step Description Image
In order to organize the scenario into logical components, every group will contain a TimerTrigger called (Begin XYZ). This will be the single entry point into the group. This group will be activated by the History Question Group.
This will allow the user to see the compass and point of interest name on their screen
The scale is increased on this hoop in order to make the scenario very easy!
The area is attached to the scenery object so that when they also fly through the area when they fly through the scenery.
The point of interest is attached to the scenery.
The proximity trigger is attached to the area defined above. When the user enters the proximity, the point of interest and scenery will deactivate and the scenario will continue onto the next group.
The scenario will be saved after they reach the gate!
In order to organize the scenario into logical components, every group will contain an ObjectActivationAction called (End XYZ). This will be the single exit point out of the group.
  • Create a Group object and name it Group: Gate 3. Group all of the objects mentioned above into this group.
  • Connect the objects, as seen in the final Group: Gate 3 screenshot.
  • Upon completing the creation of Group: Gate 3, connect (End Gate 3) to (Begin Landing).

The group named GroupGate3.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.

Create Landing Group

For the user's final feat, they will land at the St Pete - Clearwater Intl airport. The scenario can detect when they land with the help of the AirportLandingTrigger. After the user lands, the final goal resolution will end the scenario.
Step Description Image
In order to organize the scenario into logical components, every group will contain a TimerTrigger called (Begin XYZ). This will be the single entry point into the group. This group will be activated by the Gate 3 Group.
This will activate the point of interest so the user can see a spinning marker to denote which runway they should land on.
Create a proximity around the point of interest so that it can be turned off when they are close. It would be distracting if they had to fly through the marker while landing.
Congratulate the user!
The St. Pete - Clearwater Airport's ICAO is KPIE. Any landing is acceptable for this scenario since it is not expected to be difficult. For this scenario, the user should land on the Left Runway #17. This is possible due to the existence of the runway filter.
The user has successfully landed. By resolving this goal, the user will pass the scenario.
The area is attached to the Point of Interest so that when the user gets close the scenario can deactivate the Point Of Interest.
  • Create a Group object and name it Group: Landing. Group all of the objects mentioned above into this group.

The group named GroupLanding.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.

Create All Goals Group

Keeping track of what the user did correctly, incorrectly, and did not do is essential to providing feedback to the user and progressing through the scenario. The astute reader will have noticed that while taking off and landing, goals have been resolved when certain actions (e.g. release brake, full throttle) have been performed. This group solely contains the group hierarchy for the scenario. Upon passing the master goal, the scenario succeeds.
Step Description Image
This goal is worth 5 points.
This goal is worth 5 points.
This group goal passes if more than 10 points are awarded and is worth 10 points.
This goal is worth 5 points.
This goal is worth 10 points.
This group goal passes if more than 20 points are awarded and is worth 35 points. Essentially, the history quiz does not need to be taken to pass the scenario. Upon passing this group goal, the user will pass the scenario.
  • Create a Group object and name it Group: All Goals. Group all of the objects mentioned above into this group.
  • Connect the objects, as seen in the final Group: All Goals screenshot.
  • Connect the goal resolution objects from the other groups, as seen in the final Group: All Goals screenshot.

The group named GroupAllGoals.ogrp is available for download in the SDK\Mission Creation\Tutorial Groups folder.

Use the Import functionality to add this group and all of its objects to the tutorial scenario.