SimDirector Course
What is SimDirector?
Prepar3D is used around world by pilots, academics, militaries, and hobbyists. It is known for its:
-
Extensive high-quality content
- High-quality aircrafts and airports are available from our Featured Developers
- Full-world platform with extensible simulation, content pipeline, and software development kit
- Active community of dedicated professionals
SimDirector taps into this potential and allows developers to create scenarios based around the Prepar3D simulation and world.
Scenarios created in SimDirector can be classified into various categories:
- Academic Courseware: Step-by-step demonstrations of procedures, graded evaluation of procedures
- Emergency: Search and rescue, transportation of supplies
- Competitive Challenges: Multiplayer racing, acrobatics, race against time, challenging approaches and takeoffs
- Hobbyist Pilot Procedures: Visual and instrument approaches, scenic flight plans
SimDirector is accessible to scenario developers of all levels:
- Rapidly prototype an idea
- Powerful developer tools built in
- Intuitive visual node based programming
- Advanced scripting and add-on application programming
- Use Software Developer Kit (SDK) to build content that can be used in scenarios
SimDirector is included in every copy of Prepar3D for no additional cost!
Course Objectives
- Develop skills necessary to plan and build immersive scenarios, including courseware, with the tool SimDirector
- Demonstrate ability to use Visual Node Based Programming to build advanced scenario interactions
- Gain an understanding on how an open platform such as Prepar3D works
First Scenario (Plan and Set Up Initial Conditions)
Planning Phase
-
Decide on the purpose. Consider:
- Domain
- Objectives
- Proficiency Level
Example
We will target the academic aviation domain. Our objectives are to:- Perform a successful takeoff on the active runway
- Navigate to specific areas to observe physical entities and scenery
- Optionally, perform a successful landing at the same airport
-
Decide on the location. Given aviation scenario, consider:
-
Are we mid-flight?
- At what altitude?
- Are we following a flight plan to a destination?
-
Are we starting at a desired airport?
- Does our scenario purpose dictate approximately where we should be?
- Does weather of our situation dictate how we will takeoff?
-
Are we mid-flight?
Example
We could aerially explore downtown Los Angeles in a plane that would be used by a private pilot.For ease, we can start at Los Angeles Intl (ICAO: KLAX).
-
Decide on the Time and Season. Consider:
- Should the time and season add training value?
- Is the time and season being used for aesthetics?
Example
- Time should be set to sunset (dusk) to experience the night lighting of the scenery.
- Season can be set to summer.
-
Decide on the weather conditions. Consider:
- Should the weather add training value?
- Is the weather being used for aesthetics?
Example
- Weather should be present but not affect scenario.
- Choosing fair weather is okay.
The complete planning phase gives us the following plan:
Example
-
Purpose:
- Takeoff and land at Los Angeles Intl
- Explore area and Points of Interest
- Time: Sunset (Dusk)
- Season: Summer
- Weather: Fair Weather
- Vehicle: Mooney Acclaim w/ G1000 (Publisher: Lionheart)
Set Up Scenario
Open SimDirector.- Included in Prepar3D. From menu bar, select Tools -> SimDirector...
- Select File to enter the Scenario Properties
- Select editable Title and change the text to: My First Scenario
- Select editable Description and change the text to: Takeoff from Los Angeles Intl, navigate to key Points of Interest, and then land in Los Angeles Intl
-
Click the Vehicle button. Select Mooney Acclaim With G1000 as the vehicle:
- For ease, you can use the Search Box
-
Click the Choose An Airport As Location... button. For the airport selection:
- Type Los Angeles into Airport Name filter
-
Select Los Angeles Intl, which has an ICAO of KLAX
- Select Active Runway for the Starting Location
-
Click the Date And Time button. For the date and time selection:
- Select Summer as the season under the Date section
-
Input 20:30:00 as the Hour/Minute/Second under the Time Section
- This will show the Time Of Day as Dusk
-
Click the Weather button. For the weather selection:
- Select the Weather themes option.
- Choose the Fair Weather theme.
- Click the Save button on the left and save the scenario as My First Scenario
Explore
Navigate the area using the following controls:-
Pan/Move Camera
- [Recommended] Mouse: To pan camera, hold Middle Mouse Button over terrain and drag.
- Keyboard: To move camera, hold and release Up, Down, Left, and Right keys.
- Controller: To move camera, use left thumb stick.
-
Zoom Camera
- [Recommended] Mouse: Use scroll wheel to zoom.
- Keyboard: Use + and - keys.
- User Interface: Use the Zoom In and Zoom Out buttons found in the Editor Tab.
-
Rotate Camera
- [Recommended] Mouse: Hold Right Mouse Button and drag.
- User Interface: Reset rotation using Reset To North buttons found in the Editor Tab.
Navigation Exercises
- Pan the camera, zoom the camera, rotate the camera
-
Find key landmarks such as:
- Long Beach Harbor, Hollywood Sign, Dodger Stadium
- Navigate using camera controls
Recap
End of scenario set up, What's next?We're ready to build our scenario!
- How do we build scenarios?
- What objects would we use?
Let's learn about objects through hands-on exercises.
Overview of Objects (Part 1 of 4)
What are Objects?
Structured scenarios are composed of building blocks called Objects.- Objects that exist in the virtual world are called World Objects.
- SimDirector allows you to create and connect these Objects together to perform useful interactions.
-
Each Object has a set of Properties that will need to be configured to achieve the desired effect.
- For example: In order to achieve a delay of 5 seconds, a Delay Action will need to change its Delay Seconds Property to 5.
Catalog Window
Creating Objects
Objects are primarily created via the Catalog window.To create Objects, use the following methods:
-
Drag and Drop Method: Can position World Objects in exact locations
- Drag World Objects onto ground or non-World Objects scene
- Drag any object onto Visualization - to be discussed!
-
Quick Add Method: Add objects quickly to the center of the view or at the camera's position (based on settings)
- Press ENTER key while Catalog Object is selected
- Mouse Double Click the selected object
Filtering Objects
The Catalog window can be filtered by:- Category: primarily the object's type
- Subcategory: primarily the object's purpose
- Name: match by a subset of the object's name
Efficient Workflows
An efficient workflow for adding objects from the catalog is as follows:
- Use Name filter, select object UP and DOWN arrows, then add filtered object using ENTER key
- Use model preview before adding scenery or entities!
- Use Category and Subcategory filters to subset objects before adding
Catalog Object Exercises
Exercise Problems:
- How would you find objects that play sounds?
- How would you find Scenery Objects that are landmarks?
- How would you find boats?
- How would you find trees?
Exercise Solutions:
-
How would you find objects that play sounds?
- Answer: Apply the subcategory filter for sound
-
How would you find Scenery Objects that are landmarks?
- Answer: Apply the category filter for Scenery then the subcategory filter: Landmarks. Additional landmarks may be able to be found in other scenery files.
-
How would you find boats?
- Answer: Apply the category filter for Entity and Scenery then use the Name filter (e.g. boat, ship, yacht) or use Scenery Subcategory filter: vehicles_water
-
How would you find trees?
- Answer: Apply the category filter for Scenery then use Name filter (e.g. tree, oak, maple) or use any Scenery Subcategory that starts with vegetation
Objects Window
Managing Objects
- Objects are primarily managed by the Objects window.
-
Select object(s) to reveal additional functionality:
- List of options appears in the Objects Tab
- Windows such as Properties show active object properties
- Selection synchronizes with virtual world
Properties Window
Configuring Objects
-
Objects are primarily configured in Properties window:
- They must be the actively selected object to show in window
-
Always read the description of the property located at the bottom of the Object Properties window:
- Some properties require reading the documentation or learning from examples!
- If you make a mistake, it can be undone! Use CTRL+Z key combination or alternatively the History Window, found in the Windows Tab
- If the object is a World Object, then changing its property may update the staged World Object
Naming Objects
- A well thought out naming scheme is important for building large scenarios!
- The object property that controls the name of the object is the Object Name property
- The name may be edited in the Objects Window via Mouse Double Click
- The name may also be edited in the Object Properties Window under "Object Name"
Property Types
Some different types of properties you may encounter:-
Basic Types:
- Boolean (Yes/No), Numeric, List (choose 1 of N), Text (type input), Color, etc
-
Advanced Types:
- File Paths: Can use relative path to your resource directory (Resource Path), existing content directories, or an absolute path
- World Positions: Uses latitude, longitude, and altitude. Typically altered by moving object via Translate Gizmo or Mouse Drag in virtual world
- World Orientation: Uses Pitch, Bank, and Heading. Typically altered by rotating object via Rotate Gizmo or Mouse Rotate in virtual world
- Set Properties: These are additional sheets of properties that can be added and removed. Use Edit button to view more properties
-
Reference Properties: Objects can reference other objects using reference properties. References contain filters on what they CAN and CANNOT reference.
- Typically, the Visualization is used to reference objects - to be discussed!
- Configurable List Properties: Instead of choosing from a list, sometimes we may want to create one. These properties allow the user to add / remove items.
- Logic Editor Properties: These properties allow the user to set up a logical expression tree - to be discussed!
Scenery Objects
- Scenery are objects that define a static 3D model at a fixed location, orientation, and scale.
-
Scenery files, such as Los Angeles Intl (KLAX), are made up of:
- 3D scenery model definitions
- Placements of those 3D scenery models
- Other definitions - to be discussed!
-
SimDirector can place scenery that is loaded via the Scenery Library in Prepar3D.
- SDK modeling tools can be used to create scenery
- Large default scenery catalog (> 4000 objects)
-
Scenery can be shown or hidden via the Activated Property.
- Scenery can be programmatically turned ON and OFF using Object Activation Action - to be discussed!
To place scenery with different locations, sizes, and positions we need to learn how to manipulate objects!
Object Manipulation
Selection
-
Using Mouse Left Click, select objects by either:
- Click Model
- Click Icon
- Lasso Select (Mouse Left Button + Drag)
- Zoom level affects icon groups
- Deselect all objects: ESC key
- Combine Selection: Hold CTRL key
Translation Gizmo
-
Select desired World Objects, then toggle Translate button
- Or alternatively, press the W key
-
Pull either X, Y, or Z axis to translate
- Respects Snap To Ground setting which is OFF by default
Rotation Gizmo
-
Select desired World Objects, then toggle Rotation button
- Or alternatively, press the E key
-
Rotates either X, Y, or Z axis by dragging axis
- Can rotate multiple objects
- After clicking and holding the axis, drag mouse left or right to rotate
- Does not rotate about a central axis
Scale Gizmo
-
Select desired World Objects, then toggle Scale button
- Or alternatively, press the R key
-
Scale object by dragging triangle plane in or out
- Can scale multiple objects
Move
-
Select desired World Objects, then either:
- Drag objects from an Object's Icon to desired location
- [RECOMMENDED] Hold SHIFT and Mouse Left Click Drag on the terrain
Duplicate
-
Select desired Objects, then press CTRL+V:
- Creates a new copy of the object with the same properties
- Only duplicates the references, to be discussed, if the reference objects is selected
- Can duplicate objects, then move new objects to rapidly create scenery!
Delete
-
Select desired Objects, then press DELETE key
- Removes any references to deleted objects
- May invalidate your scenario, run validation to check - to be discussed
- Mistakes can always be undone using CTRL+Z key combination!
Scenery Object Exercises
Exercise Problems:
Create a small town area using Scenery Objects. Some ideas include:- Wind mill farm
- Hotel complex (HINT: use name filter: gen_tropical) or groups of other related buildings
- Small forest of acacia and olive trees
- Object Gizmos (Translate, Rotate, Scale)
- Object Duplication
- Object Move
Mobile Scenery
- Mobile Scenery are dynamic scenery objects that can follow paths.
- Any scenery model that a Scenery Object can use can be used by a Mobile Scenery Object
- Mobile Scenery can be shown or hidden via the Activated Property
To assign mobile scenery a path, we need to learn about placing and assigning waypoints!
Waypoints
- Waypoints are objects that define a location and optionally either a speed in which they should be traversed or duration that they should be traversed within.
- Waypoints are combined together into a path called a Waypoint List.
- Waypoint Lists are the objects that other objects can reference to traverse (e.g. drive, fly) or visualize the given path.
Waypoint Editor
-
We typically use the Waypoint Editor as well as Waypoints although it is possible from the Scenario category of the Catalog.
- To access the Waypoint Editor, select Windows Tab -> Waypoints
-
Use Waypoint Editor Mouse Mode to more easily place waypoints.
-
When in Waypoint Editor Mouse Mode:
- Mouse Left Click to make a new Waypoint at current mouse location
- Mouse Right Click to make a new Waypoint List
-
When in Waypoint Editor Mouse Mode:
- Assign Waypoint Lists to Entities and Mobile Scenery using Waypoint Editor (select the waypoint list and Edit List) or by referencing the Waypoint List from the Mobile Scenery.
Preview Mode
-
To test dynamic interactions (for example: object following waypoints) in the scenario
use Preview Mode.
- Select Mode Tab -> Preview Scenario
-
Preview Mode contains many developer tools that help build scenarios such as:
- Trace execution of scenario: what happened and when?
- Execute objects independent of scenario
- Monitor and change properties of your vehicle and entity vehicles
-
A typical workflow in SimDirector involves:
- First, using Sim Editor Mode, the starting mode, to build
- Then, switching to Preview Mode to test dynamic interaction
- Repeat until complete
-
In Preview Mode, verify scenario behaves as expected.
- If it does not behave as expected, then return to Sim Editor Mode to modify it
- Or diagnose issue using Preview Mode tools - to be discussed!
Mobile Scenery Object Exercises
Exercise
- Create a Mobile Scenery animal that walks along multiple Waypoints, and comes to a complete stop at the last point.
- Create a Mobile Scenery ground vehicle that drives in a circle at 45km/h continuously using Waypoints.
- Create a Mobile Scenery racing boat that sails a zig zag pattern at 55km/h (30 knots).
Groups
-
Groups are objects that organize other objects.
- Groups do not influence the scenario.
- Groups make scenario creation easier - they help manage complexity!
- Groups can be given colors and descriptive names.
- Groups organize objects on the Objects Window and Visualization Window.
- Groups can be exported using Objects Tab -> Export Group or Context Menu -> Export Group.
- Groups can be imported using File -> Import (*.ogrp).
- Creating or duplicating objects while in a visualization group creates the object in that group.
First Scenario (Basic Scenario Building)
Open
-
Open up previously created scenario My First Scenario:
-
Select
File ->
Open ->
My First Scenario
Plan
- Plan to build several regions near the city
-
Use the objects covered so far:
- Scenery
- Mobile Scenery
- Waypoints and Waypoint Lists
- Groups
- Remember to test the scenario in Preview Mode!
Examples
- Create hotel complex (see previous example) or other related buildings
- Create wind farm (see previous example)
- Add boats near marina or river using waypoints
- Enhance airport (baggage, fuel trucks, baggage carts on waypoints)
- Enhance port (cargo, seagulls on waypoints, machinery)
Save
-
Save the scenario again
- Use Quick-Access Save at top of window
Recap
End of basic scenario building, What's Next?- We're ready to enhance our scenario with objectives and interactions.
- What objects would we use?
- How do we connect the objects together?
Let's learn about more advanced objects through more hands-on lecture and exercises.
Overview of Objects (Part 2 of 4)
Introducing Action Objects
- Actions are objects that perform a defined behavior when executed.
-
There are over 40 different actions which will aid you every aspect of scenario creation. For example:
- Controlling the flow of your scenario
- Setting gauge inputs
- Changing vehicle location
- Changing virtual world (for example: weather conditions)
-
When instructed to, actions execute their defined behavior once!
- An action may have a defined behavior that may persist or cannot be undone.
- An action can be instructed to execute as many times as necessary. There is no limit.
-
Actions only execute when they are instructed to! By default, they do not execute on their own.
- There are options to allow actions to execute without the need of a Trigger object or other type of object.
- The scenario developer can preview the execution of an action while testing their scenario!
-
An Action provides a means of signaling to the scenario developer when it is finished executing.
- This can be done using the Reference Type Property called OnCompleteActions.
- We can utilize this behavior to chain multiple Actions together in sequence.
-
Multiple different chains of Actions can fire in parallel.
- We can execute a scripted dialog while executing an aircraft malfunction (e.g. engine fails) at the same time without having to wait for one or the other to finish!
-
An Action can filter whether it will fire in the given context. This can be done by using the List Property called Target Player.
- In multiplayer, we may only want one of the players to experience a failure in their scenario.
- Alternatively, a player may want to execute an action in everybody else's scenario except theirs.
Glossary of Basic Action Objects
- Object Activation Actions: are the primary way of turning on and off objects that have the Activated Property. These control the flow of the scenario.
- Dialog Actions are the primary way of narrating your scenario with text and sound.
- Delay Actions are the primary way of creating delay between serial chains of actions.
- Attach Effect Actions allow the user to spawn effects such as fireworks, smoke, and sparks on objects.
- Change Object Type Actions can change the user's vehicle during the scenario.
- Activate Waypoint Actions can assign a waypoint list to an object or cancel an active waypoint list.
- User Input Activation Action enables or disables whether the user has keyboard or joystick control. This can be useful for demonstrations or cut scenes!
- Set Pause Action can control whether the user is paused or vehicles are frozen. For example: User may need to read content before continuing!
- Play List Action can create a list of sounds that will play as the background music - which can be randomized!
-
One Shot Sound
can create a sound effect utilizing any of the sounds in the sound library!
These are intended to be independent of your scenario's dialog narration.
- Random Action chooses an action at random from a list of selected actions. Optionally, the action can choose what percentage of the time an action will fire.
- Entity Simulation Actions: can be used to toggle the simulation state of an entity. When this is set to false the entity will still render but will no longer move or process AI.
Basic Action Object Reference Manual
Object Activation Action
Object Activation Actions are the primary way of turning on and off objects that have the Activated Property. These control the flow of the scenario.- Choose the object that you wish to turn on or turn off using the Reference Type property called ObjectReference. Note what objects can be referenced! Set whether or not you want to Activate (turn on) or Deactivate (turn off) using the NewObjectState boolean property.
- When an object is deactivated it will not render or simulate!
Dialog Action
Dialog Actions are the primary way of narrating your scenario. Choose the type of dialog sound using the List Property called Sound Type.- If None is chosen, then no sound will play but captioned narration can still be added via the Text Property called Text.
- If Text-To-Speech is chosen, then an artificial voice will generate the sound based on what is input into the Text Property called Text. The artificial voice will use Windows default voice but alternative installed voices may be selected using the List Property called Voice Selection.
- If Sound File is chosen, then a sound file, typically a professionally recorded voice, will be played, using the File Path Property called Sound File Name. Additionally, captioned narration can be added via the Text Property called Text.
Delay Action
Delay Actions are the primary way of creating delay between serial chains of actions.-
Choose the amount of delay by setting the Delay Seconds numeric property.
- Can be fractional seconds. Be aware, the delay seconds are accurate up to 1/6 of a second.
- Reference another object using On Complete Actions and execution of that object will be delayed.
Attach Effect Action
Attach Effect Actions allow the user to spawn effects such as fireworks, smoke, and sparks on objects.-
Choose an effect from the Effect Name list property. This list contains all of the effects loaded into the application.
-
Effects have different durations (lifetimes):
- Some last indefinitely
- Some must be repeatedly applied
-
Effects have different durations (lifetimes):
-
Choose which objects to attach the effect to using the Object Reference List Reference property:
- To create an effect that exists at a world position, attach to an infinitely small scenery object.
- To attach to pre-defined locations on model use Attach Point Name - to be discussed!
Change Object Type Action
Change Object Type Actions can change the user's vehicle during the scenario.-
Choose from a list of any user selectable vehicles using the Object Type list property:
- Same vehicles as the Prepar3D's Select Vehicle screen
-
Typically performed in the following situations:
- In conjunction with a Menu Prompt Trigger to give users a choice of vehicle
- In a multiple vehicle scenario (for example: User switches from ground vehicle to helicopter)
Activate Waypoints Action
Activate Waypoint Actions can assign a waypoint list to an object or cancel an active waypoint list.- The list of waypoints that this object assigns can be set using Waypoint Editor
-
The object who will instructed to follow the waypoints is set in the Object Reference Reference property
- If object is assigned no waypoints, then it will stop following any active waypoints
User Input Activation Action
User Input Activation Action enables or disables whether the user has keyboard or joystick control. This can be useful for demonstrations or cinematic sequences!-
When executed, sets whether user may input commands to the applications using the Enable User Input property. This affects:
- Keyboard
- Controllers
- Computer Mice
- This is useful during cinematic sequences or while showing a student how to perform a task!
Set Pause Action
Set Pause Action can control whether the user is paused or vehicles are frozen. User may need to read content before continuing!-
Can set whether the application is paused or unpaused using Pause Flight Boolean property
- When paused, can only unpause system if given user input such as mouse click. Using timing won't work, system is paused and not simulating
-
Can set whether:
- all entities, including self, are paused using Position Freeze All Boolean property
- just your vehicle is frozen using Position Freeze Self Boolean property
- While frozen, application can be simulating but the vehicle does not move.
-
For example: This can be used to explain a situation, narrate before continuing.
- Approach runway, freeze user, explain how to put down landing gear, unfreeze user
Play List Action
Play List Action can create a list of sounds that will play as the background audio track - which can be randomized!-
Plays a list of audio files defined in the Play List Item configurable list property.
- Each Play List Item contains a Sound File Name file path property which can be set to any of Prepar3D's sound directories or to the scenario's Resource Path.
- This Play List Item's order may be randomized using Randomize In List property. If an item is not set to randomize then its position is fixed.
- Only one play list action may play at a time.
One Shot Sound Action
Sound can create a sound effect utilizing any of the sounds in the sound library!- Set the audio file that will be played using the Sound File Name file path property which can be set to any of Prepar3d's sound directories or to the scenario's Resource Path.
- Unlike Dialog Action or Play List Action, One Shot Sound Actions can be played in parallel or even over dialogs or background audio.
Random Action
Random Action chooses an action at random from a list of selected actions. Optionally, the action can choose what percentage of the time an action will fire.- Use the numeric property Probability Percent to determine the percentage of the time that a random action will be chosen from 0 to 100
- Provide a list of actions via the Actions reference property that the random action will randomly choose from
Entity Simulation Action
Entity Simulation Actions are used to control the simulation state of entity objects.- Choose the entity object that you wish to enable or disable simulating using the Reference Type property called ObjectReference. Note what objects can be referenced! Set whether or not you want to Activate (enable) or Deactivate (disable) simulation using the NewObjectState boolean property.
- When an entity has its simulation state disable it will still render in the mission but will no longer move or process AI!
Visualization Window
- Once your scenario grows in size and contains objects that interact, it is helpful to visualize your scenario.
- The visualization window draws an interactive graph of your entire scenario.
- This is why SimDirector is referred to as a visual node based programming tool.
- The visualization window is open by default in the same tab well in SimDirector as the Prepar3D tab.
- It can be toggled ON and OFF using the Visualization button in the Windows Tab.
Controls
Similar to world navigation controls:- Middle Mouse Button drag to pan around the visualization
- Middle Mouse Wheel zooms the visualization
-
Mouse Left Click or Lasso using Mouse Left Button drag to select objects
- Hold CTRL key to combine previous selections
Interactivity
Graph is interactive!- Connect and disconnect nodes by dragging them together
- Only valid connections can be made: Connection order matters!
- Toggle object states using visualization buttons
- Use Group Objects to organize graph and list
- Traverse into groups using the visualization
Validation Window
-
Object properties can be configured incorrectly.
-
Examples:
- Object Activation Actions must specify what to activate
- Dialog Actions that render text to speech must supply text
-
Examples:
- Scenario validation can be performed to check each object and their connections
- Scenario validation is manual by default, can be set to automatic
- Scenario must not have any errors to run successfully
-
To validate, open Validation Output by toggling Visualization in the Windows Tab
- Click Run Validation in the right hand corner of the validation window
- Double Click object to select and fix errors
Progress Log Window
- When your scenario grows in complexity you will want to ensure that objects are executing during the correct time and under the correct conditions.
-
The progress log is a developer tool that keeps a log of when objects change state such as:
- When actions execute
- When objects activate and deactivate
- When goal states change
- It can be toggled ON and OFF using the Progress Log button in the Windows Tab or Debug Tab.
- The Auto Center On Visualization option will pan the graph to the object whose state changed.
Action Object Exercises
Exercises
Create and configure the following actions or groups of actions.Do not connect Triggers to fire Actions.
Instead, use the Execute Action with Children button in Preview Mode.
-
Create a series of 3-5 effects that are attached to the user's vehicle. The effects should execute sequentially with varying degrees of delays between them.
- Only use effects that start with "fx_"
- Create a series of actions connected together that perform the following task: turn off multiple scenery objects, wait several seconds, then turn on the scenery objects
- Create a scenario where a mobile scenery object (e.g. truck) is assigned waypoints that instruct it to drive in a circle (infinitely). After 30 seconds, instruct the mobile scenery object to stop following the waypoints.
- Create a scenario that cycles between 3 different vehicles with 10 seconds between each switch.
-
Create a series of narrations that utilize text to speech. Optionally, use the record functionality to record yourself narrating the text. Example:
- "This is the first dialog"
- "This is the second dialog"
- "This is the last dialog"
- Create a scenario that freezes and takes away user input after 10 seconds and then restores it after another 10 seconds. Use a dialog to let the user know what state they are in.
- Create a play list of background audio and then play a series of one-time sound effects over the background audio
Introducing Trigger Objects
- Triggers are objects that fire actions when the appropriate conditions are met
-
Triggers will perform their function only when they are activated
- Deactivated triggers cannot fire actions
- Deactivated triggers can be turned back on using Object Activation Action
-
The One Shot boolean property of Triggers determines whether the Trigger should turn off after firing all referenced actions.
- By default, it is set to True and the Trigger turns off
Glossary of Basic Trigger Objects
- Timer Trigger: a timer that counts up or down to a specified time and then fires referenced actions.
- Menu Prompt Trigger: a menu with configurable items that can be selected. When an item is selected, it fires its referenced action.
- Collision Trigger: a condition that can be set up to fire when a specified object collides with another specified object.
-
Counter Trigger: a counter that can be set up to fire when the accumulated count reaches the Stop Count.
- Count Action is an object that increments or decrements the counter trigger's accumulated count.
Basic Trigger Object Reference Manual
Timer Trigger
Timer Trigger is a timer that counts up or down to a specified time and then fires referenced actions.- Set the Start Time and Stop Time property to determine how the timer should count. Time is measured in seconds.
- Start Time of 10 and Stop Time of 5 will count down from 10 to 5.
- Start Time of 0 and Stop Time of 10 will count up from 0 to 10.
-
To display the counter on the screen, set On Screen Timer to True
- If set to show on screen, timer trigger does not need to fire associated actions
- Use on screen timer to let user how much time they have left or have taken
Menu Prompt Trigger
Menu Prompt Trigger is a menu with configurable items that can be selected. When an item is selected, it fires its referenced action.- Set up description of the menu using the Text property and the title using the Title property
-
Each menu option is defined in the Menu Item configurable list property:
- Each Menu Item contains a Text which is used to set the option's title
- Each Menu Item contains an Actions reference property which will fire when clicked
- Set One Shot to false to keep menu open to continuously select options
Collision Trigger Reference
Collision Trigger is a condition that can be set up to fire actions when a specified object collides with another specified object.- Specify which colliding objects can cause the trigger to fire using the Collision Entity References reference property
- Specify which objects when collided can cause the trigger to fire with the Object Reference List reference property if Object Filter is set to Reference
- Be aware that not all scenery models are able to be collided with. This must be set when making model.
Counter Trigger Reference
Counter Trigger is a counter that can be set up to fire when the accumulated count reaches the Stop Count.- Use Start Count numeric property to set the initial count
- Use Stop Count numeric property to set the target count. When the current count reaches the Stop Count, the referenced actions fire (Actions property)
-
Stop Count should be larger than Start Count
- Counting strategy can be determined by count action
Count Action
Count Action is an object that increments or decrements the counter trigger's accumulated count.-
Set Count numeric property to specify amount to increment or decrement the Count Trigger.
- Negative count for decrement
- Set Triggers reference property to the Count Triggers which should be incremented or decremented
Trigger Object Exercises
Exercises
Create and configure the following scenario using triggers and actions.-
Repeat Action Exercise #2 with modifications: "Create a series of actions connected together that perform the following task: turn off multiple scenery objects, wait several seconds, and then turn on the scenery objects"
Use a Timer Trigger instead of a Delay Action. Show the timer on the screen. Repeat on/off behavior indefinitely. -
Count from 0 up to 5 using Count Trigger and Action. Increment the count every time a timer trigger elapses one second.
Hint: Set timer's OneShot Property to false. -
Place 5 pylon scenery objects on the runway. Every time the user collides with the scenery object, deactivate it.
Hint: Use Name filter and search for "Pylon" -
Use a menu prompt to ask which of the three scenery objects they want to see in front of them.
- Menu should stay open after each choice
- When an option is chosen, the other scenery objects should disappear
Introducing Area Objects
- Areas are objects that define a volume which can be referenced.
-
Areas by themselves do not influence the scenario
- Must use objects that reference areas to perform interaction
- Areas can be rendered in scenario using the Draw Style Property and choosing an appropriate color using the RGB Color Property
Glossary of Basic Area and Related Objects
- Rectangle Area defines a rectangular volume defined by a length, width, and height.
- Sphere Area defines a spherical volume defined by a radius.
- Cylinder Area defines a cylindrical volume defined by a radius and height.
- Cylinder Path Area defines a series of cylinders with a radius.
- <Proximity Trigger defines an object that fires actions when specified objects enters a referenced area.
- Area Landing Trigger defines an object that fires actions when the user lands at a referenced area.
- Airport Landing Trigger defines an object that fires actions when the user lands at a specified airport.
Basic Area and Related Object Reference Manual
Rectangle Area
Rectangle Area defines a rectangular volume defined by a length, width, and height.- Use Length, Width, and Height numeric properties or Scale Gizmo to configure size of rectangle area
- Can attach to another object using Attached World Object set property
Sphere Area
Sphere Area defines a spherical volume defined by a radius.- Use Area Radius numeric property or Scale Gizmo to configure size of sphere area.
- Can attach to another object using Attached World Object set property
Cylinder Area
Cylinder Area defines a cylindrical volume defined by a radius and height.- Use Area Radius and Height numeric property or Scale Gizmo to configure size of cylindrical area.
- Can attach to another object using Attached World Object set property
Cylinder Path Area
Cylinder Path Area defines a series of cylinders with a radius. Each end point of the cylinder list is defined using the Cylinder Position configurable list property.- Set the Area Radius to define the radius of the cylinder
-
Choose between attaching cylinders to:
- Fixed Position
- Position offset by a vector (length, direction)
- Another object (whose position may move)
Proximity Trigger
Proximity Trigger defines an object that fires actions when specified objects enter a referenced area.- Specify which areas can cause the trigger to fire by using the Areas reference property
-
Specify which objects when entering can cause the trigger to fire with the On Enter Filter reference property if Object Filter is set to Reference.
Use On Exit Filter to fire actions when leaving the area.
- Either use enter actions or exit actions, not both.
- On Enter Filter and On Exit Filter can additionally check that a condition is true before firing using On Enter Condition and On Exit Condition - to be discussed!
Area Landing Trigger
Area Landing Trigger defines an object that fires actions when the user lands at a referenced area.- Specify which areas can cause the trigger to fire by using the Areas reference property
- Specify whether the user must make a full stop, touch and go, or either one of these for the trigger to fire using the Landing Type list property
Airport Landing Trigger
Airport Landing Trigger defines an object that fires actions when the user lands at a specified airport.- Specify which airports that the user can land at for the trigger to fire using the Airport Ident creation list property.
-
Specify an optional runway that the user should land at by creating a Runway Filter set. By default, any runway is okay to land at.
- Configure runway using Runway Designator and Runway Number
- Specify whether the user must make a full stop, touch and go, or either one of these for the trigger to fire using the Landing Type list property.
Area Object Exercises
Exercises
Create and configure the following scenario using area objects.-
Define two waypoint lists that a ground vehicle should drive.
- The first waypoint list should be assigned to the mobile scenery object.
- The second waypoint list should be assigned when the vehicle reaches the end of the first list.
- Use a cylinder path to define a path that the user should taxi within. Display a dialog if they leave the area.
-
Define obstacles on taxiway. Display a dialog if the user gets too close to any of the obstacles.
Hint: Use a sphere area attached to the user and then detect when objects enter. - [Bonus] Set up either a basic area landing or airport landing.
Overview of Objects (Part 3 of 4)
Introducing Goal Objects
-
Goals are objects that define the scenario objectives and can pass or fail the scenario.
- Multiple goals are possible
- Goals can be grouped in a hierarchy
- Goals can be optional
- User can view goals on the Kneeboard Window in Preview Mode.
Glossary of Goal Objects
-
Goals define a basic scenario objective with a point value that can be passed and failed
- Goal Resolution Action changes a goal's state to either pass or fail.
- Group Goal defines a goal that references other goals to create a hierarchy. The group goal either passes or fails by accumulating enough points or when told or via goal resolution.
Goal Object Reference Manual
Goal
- Set the order of how goals appear in the kneeboard using the Order numeric property. Lower numbers come first.
-
Set the amount of points that passing this goal is worth using the Point Value numeric property.
- Used by objects such as Group Goal to determine whether they should pass.
- Describe the goal using the Text property.
-
If a goal is failed, then by default the scenario will fail.
- Use the Optional boolean property set to True to specify that this goal is not required and should not fail the scenario.
Goal Resolution Action
Goal Resolution Action changes a goal's state to pass or fail.- Set whether the goal that is to be resolved should pass or fail using the Goal Resolution list property.
- Set which goal to resolve using the Goals reference property.
- Additionally, change the goal's text by changing the Update Goal Text Boolean property to True and setting the New Goal Text property.
Group Goal
Group Goal defines a goal that references other goals to create a hierarchy. The group goal either passes or fails by accumulating enough points or when told or via goal resolution
- Contains all of the Goal properties
-
In order to create a hierarchy, reference children goals using the Goals reference property
- Use the Group Goal Passing Score to determine if the group goal should succeed automatically when the amount of points earned by its children are greater than or equal to the passing score
Goal Object Exercises
Exercises
Create and configure the following scenario using goal objects.
-
Create a scenario where a user must either collide with 2 pylons or enter 2 areas within 30 seconds.
- If they hit the pylons or enter the areas, pass the scenario
- If time runs out, fail the scenario
-
Create a hierarchy of goals made up of one group goal containing multiple child goals. Create menu prompt that can complete each child goal.
When all child goals are completed, the group goal should pass.
- Use Kneeboard Window to watch goals complete
Introducing Scenario Objects
-
Scenario Objects are unique objects that interact with the scenario.
- Each object is unique and does not fit into the trigger or action category.
-
Purpose of scenario objects vary:
- Could represent rendered world object which isn't a previously defined object type
- Could add information to the scenario (e.g. images, briefings)
- Could encapsulate a concept available in the simulation to the scenario developer (e.g. cameras, panels )
Scenario Objects Glossary
-
Point Of Interest
defines a location of interest for the scenario. User may view all of the active points of interests.
The active point of interest displays on the screen.
-
Point Of Interest Activation Action
activates or deactivates a point of interest. Upon activating, makes point of interest the active selection.
-
On Screen Text
displays persistent text on the screen that can be configured to different locations, sizes, and styles.
-
Camera
creates a new camera definition that provides properties such as the camera location and orientation. Camera view can be opened or closed using activation objects.
-
Scenario Metadata
sets up basic information about the scenario which the application can display such as whether the scenario is multiplayer or a briefing about the scenario
-
Realism Override
can override the user settings to control the experience of the scenario.
Scenario Object Reference Manual
Point Of Interest
Point Of Interest defines a location of interest for the scenario. User may view all of the active points of interest. The active point of interest displays on the screen.
- Choose whether the point of interest is attached to another object or at fixed location using either Attached World Object or Attached World Position.
-
On screen display options can be configured:
- Target Name is the name displayed when the POI is selected.
- Cycle Order determines the priority of the POIs when cycling between them.
- Current Selection Determines whether the object is currently displayed on screen when activated.
- Scaling can be set up using all of the scaling properties (min and max props).
-
Scenery objects can be set when POI is selected and unselected using:
- Selected Model GUID for selected and Unselected Model GUID for unselected
Point Of Interest Activation Action
Point Of Interest Activation Action activates or deactivates a point of interest. Upon activating, makes point of interest the active selection.
- Choose the point of interest that you wish to turn on or turn off using the Reference Type property called Object Reference List.
- Set whether or not you want to Activate (turn on) or Deactivate (turn off) using the NewObjectState Boolean property.
- When a point of interest is activated, it becomes the active selection.
On Screen Text
On Screen Text displays persistent text on the screen that can be configured to different locations, sizes, and styles.
- On Screen text is displayed at the top of the screen but can be customized to align to the left, right, or center using the On Screen Text Display Location list property
-
Next, configure the style of the text:
- Text Color: RGB Color Property
- Text Size: On Screen Text Font Size
- Background Color: OnScreenText Background Color
Camera
Camera creates a new camera definition that provides properties such as the camera location and orientation. Camera view can be opened or closed using activations.
- Choose whether the camera is attached to another object or at a fixed location using either Attached World Object or Attached World Position.
- To determine where the camera looks at, either set the Orientation property or use the Object Reference reference property to track an object
- Camera type can be change to Picture In Picture or Is Cinematic
- When camera is activated, the camera view is selected
Scenario Metadata
Scenario Metadata sets up basic information about the scenario which the application can display such as whether the scenario is multiplayer or a briefing about the scenario.
- Specify HTML briefing file path using the Mission Brief file path property
- Specify Incomplete image bitmap using Completed Image file path property
- If scenario is multiplayer, set Is Multiplayer to True
- Set other properties, if desired.
Realism Overrides
Realism Override can override the user settings to control the experience of the scenario.
- Unlimited Fuel specifies whether fuel should be unlimited or limited
- World Realism specifies whether user can change the world in scenario
- Flight Realism specifies whether user can perform actions such as slewing and changing airports
- Crash Behavior specifies what happens when the user crashes
- Set other properties, if desired.
Scenario Object Exercises
Exercises
Create and configure the following scenario using scenario objects.
-
Create a scenario where scenery toggles between being shown and hidden every 5 seconds. Display text in the corner of the screen showing its current state.
- If it is on, show green text. If it is off, show red text.
-
Create several points of interest at an airport.
- Show one point of interest at a time.
- Activate next point of interest when the user is close enough to each one
-
Create a camera that is attached to the wing of the aircraft and looks in the direction of a nearby scenery object.
-
Create a camera cut scene that shows fireworks in the sky.
-
Create a scenario with an HTML scenario briefing and scenario image.
- Verify that it is displayed when scenario is selected in Prepar3D.
-
Configure scenario to:
- Ignore crashes, slew their aircraft, and set their location
- Allow weather and time of day changes
Multiplayer
Multiplayer opens up a wide new world of opportunities for pilots, vehicle operators, and Air Traffic Controllers to either work together or against each other (e.g. Racing) in a collective scenario.
- To create a multiplayer scenario, ensure the Scenario Metadata object is in your scenario
- In the Object Properties panel, set IsMultiplayer to true
- There must be at least one player in the scene
- The Player object is under the scenario objects category
- Be sure to specifiy the player's name
Multiplayer scenarios created using SimDirector can be hosted and joined through the Network menu in Prepar3D. Refer to the Multiplayer Overview for more information.
Additionally, SimOperator offers advanced control over multiplayer scenarios including live scenario changes. SimOperator is only available with the Professional Plus variant. Refer to the SimOperator Overview for more information.
First Scenario (Building an Immersive Scenario)
Open
-
Open up previously created scenario My First Scenario.
- Select File -> Open -> My First Scenario
Plan
-
Select desired types of interactions. For each interaction:
- What objects are necessary?
- What objects should be connected together?
-
Determine any goals of the scenario
- When is the scenario over?
- How many goals must the user complete and in what order?
Advice
- Don't forget to utilize Group Objects and use a well thought out Naming Scheme.
- Test your scenario in Preview Mode frequently, especially when interactions are complicated.
- Use developer tools such as Progress Log and the Live Visualization.
-
Refer to the Tampa Bay Tutorial scenario to get ideas!
- We haven't learned ALL of the content in this scenario
-
However, use relevant parts:
- Group: Gate 1 for point of interest example
- Group: Landing for airport landing example
-
Refer to past examples from slides!
-
Optionally, add Scenario Metadata (provide briefing) and Realism Overrides (allow slew).
-
Ask questions!
Ideas
Examples
- Create a storyline with scripted dialogs
- Add scenario objectives
- Require various points of interest
- Trigger various conditions to occur based on proximity, a world location, or based on a property
- Add effects and audio at strategic moments
- Require the user to perform tasks in specific amount of time
- Add checkpoints if a goal is difficult
- Require user to land their plane back at original location
- Add your own ideas!
Recap
End of immersive scenario building, What's Next?
-
Conclusion: Met and exceeded several course objectives!
- Ability to create immersive scenarios
- Ability to use visual node based programming
-
Future lectures: Advanced scenario creation, courseware, and projects
We've mastered the basics of building scenarios!
Overview of Objects (Part 4 of 4)
Introducing Entity Objects
- Entities are physical objects that are simulated by Prepar3D which can be given artificial intelligence (AI) to perform specific tasks or behaviors.
-
Entities have simulation properties like the user!
- For Example: entity has parking brake, rudders, throttle, etc.
- These can be set using Set Property Action - to be discussed!
- The simulation state of an entity can be changed using the Entity Simulation Action.
- Airplane Entities with AI can fly, land, taxi, and take-off just like your aircraft!
- Airplane Entities can play back user recorded flights - to be discussed!
Ground Vehicle / Boat
- Entity Objects, such as boats or ground vehicles, can follow waypoints.
-
Set their AI Type list property to Ground Vehicle. Configure inner properties:
-
Set up characteristics of entity:
- Cruise Speed
- Turn Speed
- Turn Time
-
Select whether the entity should stop if the user is near
Aircraft
- Entity Objects, such as aircrafts, can follow waypoints.
-
Set their AI Type list property to Airplane. Set Aircraft AI State:
-
To taxi or takeoff: set the AI aircraft state to SIMPLE_TAXI
- NOTE: When AI is airborne, the AI state will switch to SIMPLE_FLIGHT
-
To fly or land, set the AI aircraft state to SIMPLE_FLIGHT
- NOTE: When AI is navigating towards ground, the AI state will switch to SIMPLE_LANDING
-
Configure inner properties:
-
If time will be spent in the air, set up air characteristics of entity:
- Max Bank
-
If time will be spent on the ground, set up ground characteristics of entity:
- Cruise Speed
- Turn Speed
- Turn Time
Entity AI Behaviors
SimDirector supports the following AI Behaviors for entities.
-
Attacker allows an AI object to attack another object with a specified weapon or gun (based on its name or type)
- An entity that has a weapon or gun attached to it should have an Attachments.xml file inside of its directory. See the weapons attachment page in the Learning Center for more information
- Combat Air Patrol (CAP) allows the patrolling of a specific area or object
- Close Air Support (CAS) allows the object to support another friendly object
- Pursue gives the object the ability to pursue another object
- Search Track allows objects to select targets via the Fire Control System
- Wingman Formation allows the mirrored following of a specified leader object
- AI Behaviors must be activated or deactivated using the AIBehaviorActivationAction.
- Select if the desired behavior is activated or deactivated using the BehaviorActivated property
- Reference the entity under Object Reference
- Select the desired AI Behavior under SelectedBehavior
To learn more about AI Behaviors, visit the AI Behaviors page in the Learning Center
Entity Exercises
Exercise
Create and configure the following entities.
- Create several small entity boats on waypoints cruising on the open ocean. Turn water settings to Ultra in graphics settings and watch them react on the 3D waves.
-
Create an entity aircraft that flies around in a large circle at 1500 meters (approx. 5000 ft).
Hints:
- Use camera object looking at entity to diagnose or use visual path - to be discussed!
- Don't forget to set the AI Type to Airplane and the Aircraft AI to SIMPLE_FLIGHT
- [BONUS] Create an aircraft entity that taxis from a parking spot just short of an active runway.
- [BONUS] Start with Exercise #3 and have the aircraft entity perform a takeoff.
- Create an entity object that targets and attacks an enemy object
Hints:
- SetTargetAction can be used to target an enemy
Introducing Simulation Action Objects
-
User and other entities contain variables such as:
- Simulation Properties
- Gauge Variables
-
User vehicle contains many systems that create simulation. For example:
- Autopilot System
- Communication System
- Electrical System
-
Interactive gauges allow the user to operate the vehicle.
Glossary of Simulation Action Objects
-
Set Property Action:
sets the value of a specified simulation property to the given value.
-
Property Trigger:
evaluates an expression and fires referenced actions if the expression evaluates to True.
-
Set Gauge Variable Action:
sets the value of one of the user's local gauge property to the given value.
-
Failure Action:
sets the life status of a vehicle's systems which can either induce a failure or counteract a failure
-
Open Window Action:
can open an interactive gauge window in the location specified.
-
Panel Window: defines a reference to a specified gauge.
-
Close Window Action:
can close the referenced interactive gauge window.
Simulation Object Reference Manual
Set Property Action
Set Property Action sets the value of a specified simulation property to the given value.
-
Set the property you would like to set using the Property Name list property.
More information is available on each property in the
Simulation Variables
article.
-
If the property has multiple indices (for example: multiple engines) then use the Index property to desired index
-
Determine what value you would like to set the property to and use a combination of the Property Value text field and the
Units list.
- More information is available on allowable values for each property in Learning Center
Property Trigger
Property Trigger evaluates an expression and fires referenced actions if the expression evaluates to true.
-
Create a logical expression tree using the Condition property that evaluates to True when the referenced Actions
should fire.
-
Logical expression tree is made using the conditional editor - to be discussed!
Set Gauge Variable Action
Set Gauge Variable Action sets the value of one of the user's local gauge properties to the given value.
- Some vehicle properties are not simulation properties and are stored as local gauge variables.
-
Select the gauge variable to select using the Gauge Variable Name list property.
- If the name is not in the list, then it can be added manually!
-
Select the value and units to set the gauge variable to using the Gauge Variable Value and
Gauge Variable Units property.
Failure Action
Failure Action sets the life status of a vehicle's systems which can either induce a failure or counteract a failure.
- Select which system on the user's vehicle should fail using the System list property.
-
For systems that have multiple indices (for example: multiple engines) then specify the desired index using the System Index property.
-
Set the Health Percent to:
- 0% to cause a complete failure
- 100% to make system fully functional
Open Window Action
Open Window Action can open an interactive gauge window in the location specified. It can also open other kinds of windows such as View Windows or Scaleform Windows.
- To select which panel to open, select a valid Panel object in the Object Reference property.
-
To configure placement:
- Add a SetWindowLocation Property Set to configure the location
- Add a SetWindowSize Property Set to configure the size
Panel Window
Panel defines a reference to a specified gauge.
- Use this object to define a panel that exists for the current user vehicle.
- Select which panel this refers to by selecting it from the Panel ID list property.
Close Window Action
Close Window Action can close a referenced interactive gauge window. It can also close other kinds of windows such as View Windows or Scaleform Windows.
- To select which panel to close, select a valid Panel object in the Object Reference property.
Simulation Object Action Exercises
Exercise
Create and configure the following actions.
-
Create a scenario, in the Mooney Bravo with G1000, that:
- Freezes the user
- Opens up the PFD panel in the middle of the screen
- Changes the indicated altitude from 250 to 500 to 1000 with 2 second delays in between
- Closes the PFD panel
- Assigns an indicated airspeed of 100 knots
- Unfreezes the user
- Using Exercise #1, add a complete failure to the first engine mid-air.
-
Create actions that attach and detach the avatar and execute these actions in Preview Mode manually.
Hint: Variable is named Avatar Mode Is Attached
SimDirector White List
The SimDirector White List allows the user to choose what objects are shown in the SimDirector catalog.
- The SimDirector White List is a configurable file called SimDirectorWhiteList.cfg located in the %APPDATA%\Lockheed Martin\Prepar3D v4 directory.
- Open the SimDirectorWhiteList.cfg and list the desired objects each on their own line in the file to be shown in the SimDirector catalog. When Prepar3D is restarted, open the SimDirector catalog to see only the objects listed in the config file shown.
White List Exercises
Exercise
- Configure the white list to only show the specified items in the catalog:
- DialogAction
- SetPropertyAction
- Lockheed Martin F-16C - USAF Gray
- RectangleArea
- Camera
- Acacia
- Chestnut
- fuel_truck2
- ProximityTrigger
Restart Prepar3D to see objects in catalog
- Reconfigure the white list back to default to show all objects in the catalog
Conditional Logic Window
The Conditional Logic window allows the user to create a tree of logical expressions that evaluates to a single value.
- For most properties, this value is expected to be a Boolean value denoting True or False.
-
Conditional Logic window is powerful!
- For example: It can check if multiple properties are greater than or less than a value
-
Conditional Logic has a separate window that can be opened:
- Select Windows Tab -> Conditional Logic
- Select an object that has a conditional logic property (for example: Property Trigger)
- Select the desired property from the list at the top
- If no logical expression tree exists, then click Create Logical Expression Tree
-
Mouse Right Click reveals context menu to configure node:
- Add Node
- Remove Node
- Change Node Type
-
Large expressions can be created
-
Cannot evaluate dynamic properties in Sim Editor Mode (starting mode). Dynamic properties display symbol: ?
-
Use Preview Mode to watch expression tree evaluate live
- Use this to diagnose why conditions aren't working
Monitoring Window
Monitoring Profiles
-
The Monitoring Profiles window during Preview Mode allows the user to set up property definitions for specific vehicle type that can be monitored.
- For Example: Set up a profile to monitor the airspeed property of Mooney Bravo entity airplanes
-
The Monitoring Properties window allows the user to select an entity whose properties will be monitored.
- For Example: Select a Mooney Bravo entity airplane to monitor. If the previous profile exists, then the airspeed property will be displayed
-
Both windows can be opened in the Windows Tab.
-
To set up monitoring profile, open Monitoring Profiles, select the vehicle type that should be monitored, and then click Add
-
Once created, select the monitor profile to edit the property definitions
Monitoring Properties
- To add a monitored property, select the property and click Add.
-
Once added:
- Select index and units
- Give descriptive name
- Specify whether you want to edit the property
- Specify min and max bounds
- To monitor an entity, open the Monitoring Properties window and then select entity in scenario
-
If property definition exists, it will be displayed
- Properties shown will update
- Writable properties are able to be changed when the simulation is paused
Creating Courseware Content:
Developing High-Quality Training Material
-
Flight Simulators such as Prepar3D can fill new roles. Immersive scenarios can create courseware content to:
- Train procedures and operations previously only taught in lectures
- Train procedures previously only trained on aircrafts or full motion simulators
-
Courseware can train organizations and individuals (private pilots, commercial pilots, academic institutions, militaries, etc) to reach proficiency on a range of activities:
- Startup and shutdown procedures
- Pre and post flight walk around procedures
- System malfunction and recovery
- Taxiing procedures
- Communication (ATC, radio channels)
- Navigation Skills, Flight Plans, Navigation Aids
- Panel and Instrument Training
- Takeoff and landings
- Systems (e.g. autopilot)
- Time (reliance on instruments based on lighting)
- Weather
- Wind (crosswind, turbulence)
- Cloud and visibility
- Profile of airplane (stall, overstress)
- Teamwork (multiplayer scenarios with common goal)
-
Panel or instrument training can be accomplished, in SimDirector, using concepts learned such as:
- Setting and Evaluating Properties: Set Property Action, Set Gauge Variable Action, Property Trigger, Failure Action
- Narration: Dialog Action, On Screen Text
- New Objects: View Change Actions, Focal Points - to be discussed!
-
Flight Maneuvers (e.g. take-off, landing, standard-rate turn) can be accomplished, in SimDirector, using concepts learned such as:
- Previously Mentioned Objects: Set Property Action, Dialog Action, Property Trigger, etc
- World Interactions: Points of Interest, Proximity Trigger, Landing Triggers, Set Weather Action, Visual Path
- Physical Entities w/ Interactions: Play Flight Recording Action, Entities, Mobile Scenery, Scenery, Behaviors (using professional plus variant)
-
SimDirector offers specialized modes to ease the creation of courseware content:
- Virtual Instructor Mode eases creating panel and instrument training content
- Flight Instructor Mode eases creating flight maneuver training content
-
Prepar3D contains scenarios that demonstrate courseware content. View the following scenarios:
- Checklist and Start Up Demonstration
- Checklist and Start Up Evaluation
- Taxi, Takeoff, Air Maneuvers, and Landing
Virtual Instructor
-
Virtual Instructor puts the developer inside the cockpit and allows them to:
- Record and play back input of simulation to perform a procedure for the user
- Highlight areas to bring focus to the user
- Create view changes to direct user where to look
To enter Virtual Instructor mode, select the Virtual Instructor button in the top right of SimDirector or press F6.
-
Creating a session:
- While in VI mode, open the Sessions window
- Using Sessions Window, click Add button
- Rename session to desired name
- When session is selected, click Record in the Virtual tab at the top to record user input into VI Session
-
While recording, toggle landing gear up (press G)
- Result: GEAR_TOGGLE is recorded
-
While recording, toggle the brakes (press .)
- Result: BRAKES recorded
-
When done recording, return to Edit Mode
NOTE: Switch from SimDirector mode to Prepar3D mode to utilize the simulator controls.
-
Editing a session:
- Remove unnecessary recorded interactions using Remove button
- Add delays between objects using Delay Action
- Add narration to explain what is happening using Dialog Action
- Activate objects in scenario such as focal points, rectangular highlights, using Object Activation Action
-
Create a series of steps:
- Dialog Action
- Delay
- Toggle landing gear
- Delay
- Dialog Action
- Delay
- Turn on autopilot
- Play back a VI Session by selecting the session in the Session Window then clicking Play
- Session will play each step and display the current object executing
- Completed VI Session is an action object that can be added to scenario!
- Creating a focal point: use the Add Focal Point button available in Virtual Tab
- When focal point is selected, Draw Mode is turned on
- To draw, left click drag to make a rectangle around desired area
- Can draw on the Virtual Cockpit view or Panel view
- Configure Focal Point appearance using properties such as Color, Text, or Thickness
Virtual Instructor Exercises
Guided Exercises
- Using the Mooney Bravo, create a VI Session that turns on the autopilot functionality and holds the heading at 1000ft (approx. 304.8m)
-
Create a self-contained VI Session that does the following:
- Turns off user input
- Activates a focal point
- Tells user that the parking brake will be turned off
- Pulls the parking brake
- Turns off focal point
- Turns on user input
- Add a view change to look at the parking brake, then look back to out the window
-
Annotate Exercise #1 by adding the following:
- Turn on focal point
- Open panel
- Recorded properties from Exercise #1
- Add dialogs
- Turn off focal point
- Close panel
Flight Instructor
-
Flight Instructor puts the developer inside vehicle and allows them to record flight maneuvers that can be played back in the scenario.
-
Records exactly what the user vehicle did
- All simulation properties are recorded
- More than just recording position!
-
Create objects that can reference the flight recordings
- Insert entities into the scenario that play back recordings using Play Flight Recording Action
- Plays back all properties including location, not a substitute for Virtual Instructor
-
Annotate or grade flight recordings
- Use scenario object called Flight Segment
To enter Flight Instructor mode, select the Flight Instructor button in the top right of SimDirector or press F7.
Recording a Flight
-
Position vehicle where you want to start your recording
- Simulation initially starts in slew mode which allows you to quickly move to the location using the arrow keys
-
Press Record when ready
- NOTE: Start and end sections of the recording can be trimmed off
-
Perform maneuver
- For example: takeoff / standard turn
-
Go back to Edit Mode
- Prompts user to save recording!
Viewing a Recording
-
Use the Recordings window to view all recordings:
- Toggle using Windows Tab -> Recordings
-
Selecting a recording shows all recorded parameters over time
- For example: user can view altitude over time
-
Press Create Flight Segment at the bottom to create an object that can play the flight recording in the scenario
Playing Back a Recording
-
To view a previously saved recording:
- Use the Play mode drop down and select the recording
-
This will play back the recording
- The user to control the playback rate
- The user may pause midway
Flight Segments
-
Flight Segments are scenario objects which reference a recorded maneuver.
They can do the following:
- Play back a recording for the user
- Annotate a recording for the user
- Grade user based on a recording
- Optionally, render the path of the recording
-
Flight segments can be created using the catalog or on the Recordings window
-
Use the Segments window to view actively selected Flight Segment:
- Toggle using Windows Tab -> Segments
-
Flight Segments can either be graded or demonstrated. Set Playback Mode to:
- Demonstrate Flight to play back recording
- Grade Flight in order to assess user based on recording
-
Flight segment can render its path by setting Render In Mission to True
-
Actions can be fired when the segment starts using Start Segment Actions
and ends using End Segment Actions
-
Once a flight segment is created:
-
An action can be fired an action at a specific point in the recording
- Select any second marker
- Assign action using combo box
-
View graphs of properties to select at what point the action should fire
-
For example: vehicle just took off, vehicle's heading is changing drastically, speed is decreasing, landing gear went down
-
Grading a user based on a recording is possible by adding ranges to parameters that they
should stay within
-
Select actions to fire if user goes outside the bounds with
Over Range Actions and Under Range Actions
-
Select color of range
-
Select a starting parameter whose value must be met before grading should start
- For example: When user matches the speed of the recording, then start grading
-
To view a previously saved flight segment:
- Use the Play mode drop down and select the flight segment
-
This will play back the segment and:
- Any actions set to play at specific points will execute
- The path of recording will show
Flight Instructor Exercises
Exercises
-
Record several procedures:
- Record a takeoff
- Record a landing
- Record a barrel roll
-
Assign an aircraft entity one of the above recordings.
-
Hint: Entity should use Airplane Playback AI Type.
To assign the recording to the entity use the Play Recording Action.
-
Create a flight segment which plays back one of the above recordings and
is annotated with narration using sequenced actions.
-
[BONUS] Create a flight segment which shows the user where to fly and lets
them know if their airspeed or altitude varies by 25% at any point.
-
[BONUS] In another scenario, create a visual path that should be flown.
Record flying the path in Prepar3D. Import that recording into your scenario.
Capstone Project
-
Our final project is to build an immersive scenario using skill sets acquired.
- Don't forget to plan!
- Make sure project will fit in reasonable amount of time (6-8 hours)
- Apply all previously learned skills
-
What do I create?
- Example ideas are provided - on final slide!
- Choose your own. What type of scenarios interest you?
-
While building your scenario:
- Ask questions!
-
Research ideas!
-
For example:
Would it be realistic if somebody was lost in this area?
Is this type of weather realistic?
-
Refer to our:
- Previous scenario: My First Scenario
- Scenarios included in Prepar3D and can be opened in SimDirector
- Examples from lectures
Ideas
Examples
Mathematics
-
Assess student flying a glide slope:
- What is a glide slope?
- How to assess?
-
Fly standard rate turn:
- What is a standard rate turn?
- How to assess?
Courseware
-
Create procedure demonstration:
- What kind of procedure?
- Use virtual instructor
-
Create procedure evaluation:
- What kind of procedure?
Exciting Challenges
- Create a multiplayer racing scenario
- Collect game objects before time runs out
- Record multiple aircrafts and combine them into an airshow
Emergency
- Create a search and rescue scenario
-
Create a flight plan between two close airports
- Add narration, goals, and related items
- Use the Group Goal Passing Score to determine if the group goal should succeed automatically when the amount of points earned by its children are greater than or equal to the passing score
Exercises
Create and configure the following scenario using goal objects.-
Create a scenario where a user must either collide with 2 pylons or enter 2 areas within 30 seconds.
- If they hit the pylons or enter the areas, pass the scenario
- If time runs out, fail the scenario
-
Create a hierarchy of goals made up of one group goal containing multiple child goals. Create menu prompt that can complete each child goal.
When all child goals are completed, the group goal should pass.
- Use Kneeboard Window to watch goals complete
- Each object is unique and does not fit into the trigger or action category.
- Could represent rendered world object which isn't a previously defined object type
- Could add information to the scenario (e.g. images, briefings)
- Could encapsulate a concept available in the simulation to the scenario developer (e.g. cameras, panels )
- Point Of Interest Activation Action activates or deactivates a point of interest. Upon activating, makes point of interest the active selection.
- Target Name is the name displayed when the POI is selected.
- Cycle Order determines the priority of the POIs when cycling between them.
- Current Selection Determines whether the object is currently displayed on screen when activated.
- Selected Model GUID for selected and Unselected Model GUID for unselected
- Text Color: RGB Color Property
- Text Size: On Screen Text Font Size
- Background Color: OnScreenText Background Color
Exercises
Create and configure the following scenario using scenario objects.-
Create a scenario where scenery toggles between being shown and hidden every 5 seconds. Display text in the corner of the screen showing its current state.
- If it is on, show green text. If it is off, show red text.
-
Create several points of interest at an airport.
- Show one point of interest at a time.
- Activate next point of interest when the user is close enough to each one
- Create a camera that is attached to the wing of the aircraft and looks in the direction of a nearby scenery object.
- Create a camera cut scene that shows fireworks in the sky.
-
Create a scenario with an HTML scenario briefing and scenario image.
- Verify that it is displayed when scenario is selected in Prepar3D.
-
Configure scenario to:
- Ignore crashes, slew their aircraft, and set their location
- Allow weather and time of day changes
- In the Object Properties panel, set IsMultiplayer to true
- The Player object is under the scenario objects category
- Be sure to specifiy the player's name
- Select File -> Open -> My First Scenario
- What objects are necessary?
- What objects should be connected together?
- When is the scenario over?
- How many goals must the user complete and in what order?
- We haven't learned ALL of the content in this scenario
-
However, use relevant parts:
- Group: Gate 1 for point of interest example
- Group: Landing for airport landing example
Examples
- Create a storyline with scripted dialogs
- Add scenario objectives
- Require various points of interest
- Trigger various conditions to occur based on proximity, a world location, or based on a property
- Add effects and audio at strategic moments
- Require the user to perform tasks in specific amount of time
- Add checkpoints if a goal is difficult
- Require user to land their plane back at original location
- Add your own ideas!
- Ability to create immersive scenarios
- Ability to use visual node based programming
Overview of Objects (Part 4 of 4)
- For Example: entity has parking brake, rudders, throttle, etc.
- These can be set using Set Property Action - to be discussed!
- The simulation state of an entity can be changed using the Entity Simulation Action.
-
Set up characteristics of entity:
- Cruise Speed
- Turn Speed
- Turn Time
- Select whether the entity should stop if the user is near
-
To taxi or takeoff: set the AI aircraft state to SIMPLE_TAXI
- NOTE: When AI is airborne, the AI state will switch to SIMPLE_FLIGHT
-
To fly or land, set the AI aircraft state to SIMPLE_FLIGHT
- NOTE: When AI is navigating towards ground, the AI state will switch to SIMPLE_LANDING
-
If time will be spent in the air, set up air characteristics of entity:
- Max Bank
-
If time will be spent on the ground, set up ground characteristics of entity:
- Cruise Speed
- Turn Speed
- Turn Time
- An entity that has a weapon or gun attached to it should have an Attachments.xml file inside of its directory. See the weapons attachment page in the Learning Center for more information
- Select if the desired behavior is activated or deactivated using the BehaviorActivated property
- Reference the entity under Object Reference
- Select the desired AI Behavior under SelectedBehavior
Exercise
Create and configure the following entities.- Create several small entity boats on waypoints cruising on the open ocean. Turn water settings to Ultra in graphics settings and watch them react on the 3D waves.
- Create an entity aircraft that flies around in a large circle at 1500 meters (approx. 5000 ft).
- Use camera object looking at entity to diagnose or use visual path - to be discussed!
- Don't forget to set the AI Type to Airplane and the Aircraft AI to SIMPLE_FLIGHT
- [BONUS] Create an aircraft entity that taxis from a parking spot just short of an active runway.
- [BONUS] Start with Exercise #3 and have the aircraft entity perform a takeoff.
- Create an entity object that targets and attacks an enemy object
- SetTargetAction can be used to target an enemy
Hints:
Hints:
- Simulation Properties
- Gauge Variables
- Autopilot System
- Communication System
- Electrical System
- Property Trigger: evaluates an expression and fires referenced actions if the expression evaluates to True.
- Panel Window: defines a reference to a specified gauge.
- More information is available on allowable values for each property in Learning Center
- If the name is not in the list, then it can be added manually!
- 0% to cause a complete failure
- 100% to make system fully functional
- Add a SetWindowLocation Property Set to configure the location
- Add a SetWindowSize Property Set to configure the size
Exercise
Create and configure the following actions.-
Create a scenario, in the Mooney Bravo with G1000, that:
- Freezes the user
- Opens up the PFD panel in the middle of the screen
- Changes the indicated altitude from 250 to 500 to 1000 with 2 second delays in between
- Closes the PFD panel
- Assigns an indicated airspeed of 100 knots
- Unfreezes the user
- Using Exercise #1, add a complete failure to the first engine mid-air.
-
Create actions that attach and detach the avatar and execute these actions in Preview Mode manually.
Hint: Variable is named Avatar Mode Is Attached
Exercise
- Configure the white list to only show the specified items in the catalog:
- DialogAction
- SetPropertyAction
- Lockheed Martin F-16C - USAF Gray
- RectangleArea
- Camera
- Acacia
- Chestnut
- fuel_truck2
- ProximityTrigger
- Reconfigure the white list back to default to show all objects in the catalog
- For example: It can check if multiple properties are greater than or less than a value
- Select Windows Tab -> Conditional Logic
- Select an object that has a conditional logic property (for example: Property Trigger)
- Add Node
- Remove Node
- Change Node Type
- Use this to diagnose why conditions aren't working
- For Example: Set up a profile to monitor the airspeed property of Mooney Bravo entity airplanes
- For Example: Select a Mooney Bravo entity airplane to monitor. If the previous profile exists, then the airspeed property will be displayed
- Select index and units
- Give descriptive name
- Specify whether you want to edit the property
- Specify min and max bounds
- Properties shown will update
- Writable properties are able to be changed when the simulation is paused
- Train procedures and operations previously only taught in lectures
- Train procedures previously only trained on aircrafts or full motion simulators
- Startup and shutdown procedures
- Pre and post flight walk around procedures
- System malfunction and recovery
- Taxiing procedures
- Communication (ATC, radio channels)
- Navigation Skills, Flight Plans, Navigation Aids
- Panel and Instrument Training
- Takeoff and landings
- Systems (e.g. autopilot)
- Time (reliance on instruments based on lighting)
- Weather
- Wind (crosswind, turbulence)
- Cloud and visibility
- Profile of airplane (stall, overstress)
- Teamwork (multiplayer scenarios with common goal)
- Setting and Evaluating Properties: Set Property Action, Set Gauge Variable Action, Property Trigger, Failure Action
- Narration: Dialog Action, On Screen Text
- New Objects: View Change Actions, Focal Points - to be discussed!
- Previously Mentioned Objects: Set Property Action, Dialog Action, Property Trigger, etc
- World Interactions: Points of Interest, Proximity Trigger, Landing Triggers, Set Weather Action, Visual Path
- Physical Entities w/ Interactions: Play Flight Recording Action, Entities, Mobile Scenery, Scenery, Behaviors (using professional plus variant)
- Virtual Instructor Mode eases creating panel and instrument training content
- Flight Instructor Mode eases creating flight maneuver training content
- Checklist and Start Up Demonstration
- Checklist and Start Up Evaluation
- Taxi, Takeoff, Air Maneuvers, and Landing
- Record and play back input of simulation to perform a procedure for the user
- Highlight areas to bring focus to the user
- Create view changes to direct user where to look
To enter Virtual Instructor mode, select the Virtual Instructor button in the top right of SimDirector or press F6.
- While in VI mode, open the Sessions window
- Using Sessions Window, click Add button
- Rename session to desired name
- When session is selected, click Record in the Virtual tab at the top to record user input into VI Session
-
While recording, toggle landing gear up (press G)
- Result: GEAR_TOGGLE is recorded
-
While recording, toggle the brakes (press .)
- Result: BRAKES recorded
- When done recording, return to Edit Mode
NOTE: Switch from SimDirector mode to Prepar3D mode to utilize the simulator controls.
- Remove unnecessary recorded interactions using Remove button
- Add delays between objects using Delay Action
- Add narration to explain what is happening using Dialog Action
- Activate objects in scenario such as focal points, rectangular highlights, using Object Activation Action
-
Create a series of steps:
- Dialog Action
- Delay
- Toggle landing gear
- Delay
- Dialog Action
- Delay
- Turn on autopilot
Guided Exercises
- Using the Mooney Bravo, create a VI Session that turns on the autopilot functionality and holds the heading at 1000ft (approx. 304.8m)
-
Create a self-contained VI Session that does the following:
- Turns off user input
- Activates a focal point
- Tells user that the parking brake will be turned off
- Pulls the parking brake
- Turns off focal point
- Turns on user input
- Add a view change to look at the parking brake, then look back to out the window
-
Annotate Exercise #1 by adding the following:
- Turn on focal point
- Open panel
- Recorded properties from Exercise #1
- Add dialogs
- Turn off focal point
- Close panel
-
Records exactly what the user vehicle did
- All simulation properties are recorded
- More than just recording position!
-
Create objects that can reference the flight recordings
- Insert entities into the scenario that play back recordings using Play Flight Recording Action
- Plays back all properties including location, not a substitute for Virtual Instructor
-
Annotate or grade flight recordings
- Use scenario object called Flight Segment
To enter Flight Instructor mode, select the Flight Instructor button in the top right of SimDirector or press F7.
- Simulation initially starts in slew mode which allows you to quickly move to the location using the arrow keys
- NOTE: Start and end sections of the recording can be trimmed off
- For example: takeoff / standard turn
- Prompts user to save recording!
- Toggle using Windows Tab -> Recordings
- For example: user can view altitude over time
- Use the Play mode drop down and select the recording
- The user to control the playback rate
- The user may pause midway
- Play back a recording for the user
- Annotate a recording for the user
- Grade user based on a recording
- Optionally, render the path of the recording
- Toggle using Windows Tab -> Segments
- Demonstrate Flight to play back recording
- Grade Flight in order to assess user based on recording
-
An action can be fired an action at a specific point in the recording
- Select any second marker
- Assign action using combo box
-
View graphs of properties to select at what point the action should fire
- For example: vehicle just took off, vehicle's heading is changing drastically, speed is decreasing, landing gear went down
- Select actions to fire if user goes outside the bounds with Over Range Actions and Under Range Actions
- Select color of range
- For example: When user matches the speed of the recording, then start grading
- Use the Play mode drop down and select the flight segment
- Any actions set to play at specific points will execute
- The path of recording will show
Exercises
-
Record several procedures:
- Record a takeoff
- Record a landing
- Record a barrel roll
-
Assign an aircraft entity one of the above recordings.
- Hint: Entity should use Airplane Playback AI Type. To assign the recording to the entity use the Play Recording Action.
- Create a flight segment which plays back one of the above recordings and is annotated with narration using sequenced actions.
- [BONUS] Create a flight segment which shows the user where to fly and lets them know if their airspeed or altitude varies by 25% at any point.
- [BONUS] In another scenario, create a visual path that should be flown. Record flying the path in Prepar3D. Import that recording into your scenario.
- Don't forget to plan!
- Make sure project will fit in reasonable amount of time (6-8 hours)
- Apply all previously learned skills
- Example ideas are provided - on final slide!
- Choose your own. What type of scenarios interest you?
- Ask questions!
-
Research ideas!
- For example: Would it be realistic if somebody was lost in this area? Is this type of weather realistic?
-
Refer to our:
- Previous scenario: My First Scenario
- Scenarios included in Prepar3D and can be opened in SimDirector
- Examples from lectures
Examples
Mathematics
-
Assess student flying a glide slope:
- What is a glide slope?
- How to assess?
-
Fly standard rate turn:
- What is a standard rate turn?
- How to assess?
Courseware
-
Create procedure demonstration:
- What kind of procedure?
- Use virtual instructor
-
Create procedure evaluation:
- What kind of procedure?
Exciting Challenges
- Create a multiplayer racing scenario
- Collect game objects before time runs out
- Record multiple aircrafts and combine them into an airshow
Emergency
- Create a search and rescue scenario
-
Create a flight plan between two close airports
- Add narration, goals, and related items