INTERACTION PRESETS

It can be a complex and time consuming endeavor to create your own Interaction XML, but for some things there exist preset files which can be used. These presets can be used to simplify the creation of interactions between the user and the simulation, or between two objects within the simulation. In most cases these presets can be called from the navigation_graph.cfg using the interactionFile.n parameter with the following format:

interactionFile.n = FilePath: InteractionsPreset\Asobo\PRESET_HERE # Param: ADDITIONAL_PARAMETER_HERE

 

The list of available presets is as follows:

 

Additionally, there are some helper XML files available which cannot be used directly within the navigation graph, but can be called from other interaction XML files:

 

 

Using Interaction Presets

To use an interaction preset you need to supply the the following path in the interactionFile.n parameter of the navigation graph node that is going to trigger it:

InteractionsPreset\Asobo\<folder>\<preset>

For example, to use the Simple_preflight_interaction.xml preset you would have the following:

The InteractionFile In The SimObject Editor

interactionFile.0 = InteractionsPreset\Asobo\Preflight\Simple_preflight_interaction

 

Notice that the file does NOT require the identifier suffix .xml. If the preset has any parameters then these are given in The SimObject Editor Parameters section for the interactive file. as shown below:

Adding Parameters To An Interaction File 

If you have to manually edit the navigation graph file to add this information, then it takes the form of a single key in the hash map - #Param - followed by a comma separated list of parameter inputs. The image above looks like this in the file:

interactionFile.0 = FilePath: InteractionsPreset\Asobo\Preflight\Simple_preflight_interaction #Param: ON_EXIT_RPN_ACTION:L:1:Anim_Oil_Cap_Position, ON_EXIT_RPN_VALUE:0

 

 

Simple_preflight_interaction.xml

This interaction preset is used exclusively as part of the Preflight Setup and has the following rules:

  • It can only be placed in a node with a mouserectLinked parameter linking to at least one mouserect.
  • If there are multiple linked mouserects, the interaction actions will be done on all of them.
  • The node must also have an associated interactiveVolume.
  • When the user switches to the pilot avatar, associated mouserects for the node with this preset are disabled.
  • When entering the associated interactive volume, associated mouserects are enabled.

 

The exact path that should be used for this preset is as follows:

InteractionsPreset\Asobo\Preflight\Simple_preflight_interaction

 

You can modify this by adding parameters if you require something to happen when the user exits the defined volume, for example a trap door closing. In general you will be adding the following two parameters:

  • ON_EXIT_RPN_ACTION: This calls an RPN variable to be used to perform the action. This is given using the following format:
    L:1:VARIABLE_ACTION_NAME
  • ON_EXIT_RPN_VALUE: This sets the value of the RPN variable.

 

 

Seat_pilot_enter.xml / Seat_pilot_exit.xml

These interaction presets are only used by the user avatar as part of the Spawn Pilot (Transversal) navigation graph setup. They are used to "teleport" the user avatar into and out of the aircraft when the aircraft does not have animated doors (if it does have animated doors then you need to use the Seat_pilot_open_enter.xml / Seat_pilot_open_exit.xml interactions).

 

These interactions have the following rules:

  • They should only be used by the node with the PILOT tag.
  • The door objects - whether they open or not - need to have a mouserect that can be clicked on and highlighted (as explained here: Entering / Exiting The Aircraft)
  • You will need to specify the pilot avatar animation to use after performing the interaction, or the navigation graph node tag to spawn the pilot avatar on.
  • You will need to specify a variable to "listen" for to activate the interaction (also defined in the door objects, as explained here: Entering / Exiting The Aircraft)

 

The exact path that should be used for this preset is as follows:

InteractionsPreset\Asobo\Seat\Seat_pilot_enter
InteractionsPreset\Asobo\Seat\Seat_pilot_exit

 

These presets require that you give the following parameters:

  • INTERACTION_NAME: This is the name of the interaction, and must be unique. If the interaction is to be used for the "main" door of the aircraft it should be SIT_REMOTELY for entering and EXIT_REMOTELY for exiting, otherwise it can be anything else appropriate.
  • ANIMATION_SIT (Entering only): This is the name of the pilot animation to use after they have been "teleported" into their new position inside the aircraft. In general this will be IDLES_Leaned, but you can use any of those listed in the Avatar Animation Presets section.
  • TAG_TELEPORT (Exiting only): This is the tag of the node where the pilot avatar should spawn when exiting the aircraft. This would be either SPAWN_EXTERIOR - for the "main" door - or SPAWN_EXTERIOR_XXX for secondary doors, where XXX is an additional string used to give the node a unique name.
  • VARIABLE_TRIGGER: This sets the "trigger" variable that will be listened for and used to trigger the interaction, which must be unique. This variable will have been created as part of the model behavior definition for the door and will be expressed in the following form:
    L:1:VARIABLE_TRIGGER_NAME

 

It is worth noting that you can have multiple Seat_pilot_enter.xml / Seat_pilot_exit.xml interactions if you have an aircraft with multiple doors. In these situations you will need to define multiple interactionFile.n parameters for each door (so, for example, on a four door aircraft there would be 8 interaction file definitions to cover entering and exiting from each door). If this is how you wish to set things up then the "main" door will need to follow the conventions outlined above, and then each of the secondary doors will need a unique INTERACTION_NAME and in the model behavior XML for the doors, they will each need to have a unique variable to be referenced in the VARIABLE_TRIGGER.

 

 

Seat_pilot_open_enter.xml / Seat_pilot_open_exit.xml

These interaction presets are only used by the user avatar as part of the Spawn Pilot (Transversal) navigation graph setup. They are used to open the cockpit doors/canopy and then "teleport" the user avatar into and out of the aircraft (if the aircraft does not have animated doors you need to use the Seat_pilot_enter.xml / Seat_pilot_exit.xml interactions).

 

These interactions have the following rules:

  • They should only be used by the node with the PILOT tag.
  • The door objects should be animated and need to have a mouserect that can be clicked on and highlighted (as explained here: Entering / Exiting The Aircraft)
  • You will need to specify the pilot avatar animation to use after performing the interaction, or the navigation graph node tag to spawn the pilot avatar on.
  • You will need to specify a variable to "listen" for to activate the interaction (also defined in the door objects, as explained here: Entering / Exiting The Aircraft)
  • A variable that can be used to trigger when the interaction (and thus, the animation) starts.

 

The exact path that should be used for this preset is as follows:

InteractionsPreset\Asobo\Seat\Seat_pilot_open_enter
InteractionsPreset\Asobo\Seat\Seat_pilot_open_exit

 

These presets require that you give the following parameters:

  • INTERACTION_NAME: This is the name of the interaction, and must be unique. If the interaction is to be used for the "main" door of the aircraft it should be SIT_REMOTELY for entering and EXIT_REMOTELY for exiting, otherwise it can be anything else appropriate.
  • ANIMATION_SIT (Entering only): This is the name of the pilot animation to use after they have been "teleported" into their new position inside the aircraft. In general this will be IDLES_Leaned, but you can use any of those listed in the Avatar Animation Presets section.
  • TAG_TELEPORT (Exiting only): This is the tag of the node where the pilot avatar should spawn when exiting the aircraft. This would be either SPAWN_EXTERIOR - for the "main" door - or SPAWN_EXTERIOR_XXX for secondary doors, where XXX is an additional string used to give the node a unique name.
  • VARIABLE_TRIGGER: This sets the "trigger" variable that will be listened for and used to trigger the interaction, which must be unique. This variable will have been created as part of the model behavior definition for the door and will be expressed in the following form:
    L:1:VARIABLE_TRIGGER_NAME
  • ANIMATION_GET: This is the name of a variable that will be used as the check to trigger the pilot avatar teleport. If this variable is 1 - ie: the animation has been completed - then the pilot avatar will be teleoprted into or out of the aircraft. Generally you'll want to use the INTERACTIVE POINT OPEN SimVar along with the name of the interactive point for the door being checked (see Pilot Interactions for an example of use).
  • ANIMATION_SET: This is the name of the variable to use as the trigger for the animation. If the variable evaluates to 0 then the animation will be reset (ie: the door is closed), and if it evaluates to 1 then the animation will run. Generally you'll want to use the INTERACTIVE POINT GOAL SimVar along with the name of the interactive point for the door being checked (see Pilot Interactions for an example of use).

 

 

It is worth noting that you can have multiple Seat_pilot_open_enter.xml / Seat_pilot_open_exit.xml interactions if you have an aircraft with multiple doors. In these situations you will need to define multiple interactionFile.n parameters for each door (so, for example, on a four door aircraft there would be 8 interaction file definitions to cover entering and exiting from each door). If this is how you wish to set things up then the "main" door will need to follow the conventions outlined above, and then each of the secondary doors will need a unique INTERACTION_NAME and - in the model behavior XML for the doors - they will each need to have a unique variable to be referenced in the VARIABLE_TRIGGER.

 

 

Seat_without_seatbelt.xml

This interaction preset is only used by non-player characters and is used to set the generated character animation for the figure that is sitting on an aircraft seat (eg: passengers, copilot, etc...) when the seat has no seatbelt.

 

This interaction has the following rules:

  • It should only be used by a node with COPILOT or SIT tags.

 

The exact path that should be used for this preset is as follows:

InteractionsPreset\Asobo\Seat\Seat_without_seatbelt

 

This preset requires that you give the following parameter:

  • ANIMATION_SIT: This is the name of the character animation to use after they sit down on the seat. You can use any of those listed in the Avatar Animation Presets section.

 

 

Seat_with_seatbelt.xml

This interaction preset is only used by non-player characters and is used to set the generated character animation for the figure that is sitting on an aircraft seat (eg: passengers, copilot, etc...) when the seat has a seatbelt.

 

This interaction has the following rules:

 

The exact path that should be used for this preset is as follows:

InteractionsPreset\Asobo\Seat\Seat_with_seatbelt

 

This preset requires that you give the following parameter:

  • ANIMATION_SIT: This is the name of the character animation to use after they sit down on the seat. You can use any of those listed in the Avatar Animation Presets section.

 

 

Helper Interaction XML Preset Files

The following files are included within the presets but should not be called directly and are designed to be called by other some of the other presets listed here (or your own interaction XML files).

 

  • Seat_data_pilot_enter.xml / Seat_data_pilot_exit.xml

    The interaction XML in these presets will be called by the other Seat_pilot_xxx.xml preset files. They exist to prevent code duplication and streamline the interactions used in the other presets, and as such should not be used in the navigation graph, or elsewhere.

 

  • Seatbelt.xml

    This interaction preset is used by all character types and should only be included on a node which also uses the Seat_with_seatbelt.xml preset, or is the PILOT node and has a Seat_pilot_* interaction as well. This interaction should be used to spawn a seatbelt SimObject that corresponds to the fastening and unfastening of a seatbelt (which SimObject is used will depend on whether the person using the seat is sitting down or standing up). This preset requires that you give the following parameters:

    • SEATBELT_FASTEN: This is the title of the SimObject to be used for the fasten seatbelt animation.
    • SEATBELT_UNFASTEN: This is the title of the SimObject to be used for the unfasten seatbelt animation.

    For more information on setting up these SimObjects, please see here: Seats And Seatbelts

 

 

Character Animation Presets

Many of the interaction presets can set the animation that the pilot, copilot, and other NPC characters can use. These animation presets are split into two categories: those that can be use for aircraft created in Microsoft Flight Simulator 2024 with the model nodes for sitting are positioned on the floor of the aircraft, and those for legacy aircraft where the model nodes were positioned on the seats.

 

Microsoft Flight Simulator 2024 Character Animation Presets
  1. IDLES_Leaned - Used for tighter aircraft with a more inclined positioning of the pilot, for example: F18, E330, C172.

    IDLES_Straight - Used for very straight positioning of the character where there is adequate space, for example: airliner pilot seats, airliner passenger seats, business jet seats, etc...

    Idle_Lying_01 - Used for aircraft with very small cockpits with a nearly horizontal position of the pilot/passengers, also for gliders in general.

    IDLES_STAND - Used by the player avatar when doing the preflight checks, and is also used by some NPC characters working around the airport. May also be used in hot air balloons.

    IDLES_SIT_SKYDIVE - Used specifically for skydive activities to have the NPCs sitting and waiting on the benches before jumping.

    IDLES_CROUCH - This is mainly used by the player avatar when doing preflight checks, but can be used by some NPCs depending on the activity.

    IDLES_CROUCH_S - Used by NPCs doing the skydive activity where the cabin is very small and requires them to croush when moving.

    IDLES_HOTAIRBALLOON - Used by the player avatar and NPCs when riding in a hot air balloon.

 

Legacy Character Animation Presets

Idle1_PoseFA18
Idle1_PoseGlider
Idle1_PoseHelicopter
Idle1_PoseOrni
Idle1_PosePropeller_103_Solo
Idle1_PoseAirliner
Idle2_PoseAirliner
Idle1_PoseDG1001
Idle2_PoseDG1001
Idle1_PosePropeller
Idle2_PosePropeller
Idle2_PoseDG1001
Idle1_PosePropeller
Idle2_PosePropeller