SCENERY OBJECT DEFINITIONS
The <scene_filename>.xml
file should be formatted as follows:
<?xml version="1.0" encoding="UTF-8"?>
<FSData version="9.0">
<SceneryObject [attributes]>
<!-- OBJECT PROPERTIES HERE -->
</SceneryObject>
<!-- FURTHER SCENERY OBJECTS HERE -->
</FSData>
Within the <FSData>
element you would list all the different scenery objects you want to include in the package between opening and closing <SceneryObject>
elements.
<ProjectedMesh>
This element is used to add a ProjectedMesh Object to a scene, although it can also be used to add a projected mesh object to an airport by adding it as a sub-element of <Airport>
. Each projected mesh element requires a <SceneryObject>
sub-element to define the object that belongs to it. The element has the following attributes:
Attribute | Description | Type | Required |
---|---|---|---|
priority |
This option sets the render priority for the projected mesh object. The default render priority is 0, which for most cases is fine. However, if you have overlapping meshes and want one to render over another one, then you will need to change this value to make it a higher or lower priority. Higher priority values will render over lower priorities, for example, a mesh with priority 1 will render over one with priority 0, which in turn will render over one with priority -1. Note that the engine cannot guarantee the render order for meshes with the same priority, so if you need something to always render over or under something else, you need to set this value. | Integer | No |
drawOrder |
This option permits you to place meshes into the render hierarchy so that they are drawn under or over different elements. To use this attribute, you must supply one of the given strings, and the projectd mesh will be rendered after the given element has been rendered but before the next element (the element strings are listed in render order). For example, if you select "MARKING", then the projected mesh will be rendered over Aprons, Taxiways and Runways, but under Markings, Runway Markings and Marking Text. |
String (listed in order of rendering):
|
No |
surface |
This option permits you to select from a list of default surface types that can be applied to the projected mesh. These surfaces will be merged with the mesh texture to add further visual variety and better integrate the mesh with the terrain and surrounding elements. |
String:
|
No |
groundMerging |
Set this attribute to "TRUE" to have the projected mesh object be merged with the underlying ground, or set it to "FALSE" otherwise. You can see a visual example of this effect here: Ground Merging | Boolean | No |
<SceneryObject>
This element is used in multiple different places to add a scenery object to the sim. This element is explained in full along with its different attributes here: <SceneryObject>
.
This element can contain one or more of the following sub-elements, and for scenery objects this will usually be at least <LibraryObject />
and <AttachedObject>
(click the links below for more information on each element):
<BiasXYZ />
<NoShadow />
<HideOnTIN />
<NoSnow />
<Beacon />
<Effect />
<GenericBuilding>
<LibraryObject />
<VisualEffectObject />
<Trigger>
<Windsock>
<WorldScript />
<AttachedObject>
It should be noted that the <AttachedObject>
element should always be defined last.
<Rectangle>
This element can be used to define a rectangular surface in a scene. It is generally used for terraforming an area and for changing the surface material within the rectangle. The rectangle is defined by supplying two sets of coordinates for latitude, longitude and altitude, which will set the positions for two sides of the rectangle, while the width value sets how wide the rectangular area will be between those points. The diagram below helps illustrate this:
This element can contain the <RunwayDeformation />
as well as the <Heightmap/>
sub-elements, and takes the following attributes:
Attribute | Description | Type | Required |
---|---|---|---|
width |
The total width of the rectangular area, in meters. | Float | Yes |
falloff |
Defines the range of terrain affected by the flattening of the rectangular area, higher value meaning an increase range. | Float | Yes |
surface |
Material to apply to the rectangular surface. If not supplied, then the original terrain surface material will be used. |
String: "CONCRETE" |
No |
lat |
Latitude of the first side of the rectangular area. | Float | Yes |
lon |
Longitude of the first side of the rectangular area. | Float | Yes |
alt |
Altitude of the first side of the rectangular area, in meters. Please note that the referential for this value is always ELLIPSOID. | Float | Yes |
lat2 |
Latitude of the second side of the rectangular area. | Float | Yes |
lon2 |
Longitude of the second side of the rectangular area. | Float | Yes |
alt2 |
Altitude of the second side of the rectangular area, in meters. Please note that the referential for this value is always ELLIPSOID. | Float | Yes |
priority |
This value is used to define the order in which the terraforming rectangles should be applied. | Integer | No |
<Heightmap/>
This sub-element can be added to a <Rectangle>
to define a set of heightmap values to the area being terraformed. This element takes two attributes:
Attribute | Description | Type | Required |
---|---|---|---|
width |
The width of the data grid. | Integer | Yes |
data |
A list of alltitude values, where each value is seperated by a space, eg:
|
String | Yes |
The heightmap will be applied to the entire rectangle, and the attributes are basically defining a grid of values where:
number_of_data_values = width * length
For example, say we want to apply a heightmap of 9 points to the defined rectangle. We'd use this element like this:
<Heightmap width="3" data="val1 val2 val3 val4 val5 val6 val7 val8 val9" />
This would then be applied to the rectangle like this:
<ExclusionRectangle />
This element can be used to define a rectangular area which can be used to exclude specific elements. The elements to be excluded are supplied as attributes to the element and are listed in the table below.
IMPORTANT! This element will not exclude anything from the current package being edited. It is only valid for removing things from a previously loaded package, and is dependent on the package load order. So, packages loaded after the package with the <ExclusionRectangle>
will be rendered as normal, and packages loaded before the package with the <ExclusionRectangle>
will have elements excluded.
NOTE: Exclusion rectangles will only apply to SimObjects placed via the Scenery Editor. They will not apply to BGL traffic or SimObjects spawned using SimConnect.
This element has no children and is self closing, and it uses the attributes listed below:
Attribute | Description | Type | Required |
---|---|---|---|
latitudeMinimum |
The minimum latitude for one side of the rectangle. | Float | Yes |
latitudeMaximum |
The maximum latitude for one side of the rectangle. | Float | Yes |
longitudeMinimum |
The minimum longitude for one side of the rectangle. | Float | Yes |
longitudeMaximum |
The maximum longitude for one side of the rectangle. | Float | Yes |
excludeAllObjects |
Setting this will exclude all objects within the rectangular area (in which case none of the other attributes are necessary). | Bool | No |
excludeBeaconObjects |
Setting this will exclude any beacons within the rectangular area. | ||
excludeCarParking |
Setting this will exclude any car park objects within the rectangular area. | ||
excludeEffectObjects |
Setting this will exclude any legacy effect objects within the rectangular area. | ||
excludeExtrusionBridgeObjects |
Setting this will exclude any extruded bridge objects within the rectangular area. NOTE: Extruded bridges are deprecated in Microsoft Flight Simulator, so including this attribute will make no difference to rendering. |
||
excludeGenericBuildingObjects |
Setting this will exclude any generic building objects within the rectangular area. NOTE: Generic buildings are deprecated in Microsoft Flight Simulator, so including this attribute will make no difference to rendering. |
||
excludeLibraryObjects |
Setting this will exclude any library objects within the rectangular area. | ||
excludePolygons |
Setting this will exclude any polygons within the rectangular area. | ||
excludeProjectedMesh |
Setting this will exclude any projected meshes within the rectangular area. | ||
excludeRectangles |
Setting this will exclude any rectangles within the rectangular area. | ||
excludeSimObjects |
Setting this will exclude any SimObjects within the rectangular area. | ||
excludeTaxiwaySignObjects |
Setting this will exclude any taxiway signs within the rectangular area. | ||
excludeTriggerObjects |
Setting this will exclude any Triggers within the rectangular area. NOTE: Triggers are deprecated in Microsoft Flight Simulator, so including this attribute will make no difference to rendering. |
||
excludeVisualObjects |
Setting this will exclude any Visual Effect objects within the rectangular area. | ||
excludeWindsockObjects |
Setting this will exclude any windsocks within the rectangular area. | ||
excludeWorldScripts |
Setting this will exclude any world script objects within the rectangular area. | ||
excludeAirports |
Setting this will exclude the airport that it has been placed over. This requires that the exclusion rectangle covers the center point of the airport, and will prevent all airport objects from spawning, including towers, runways, aprons, etc... Note that this will not change any ground textures, and so - if the airport being excluded exists in the real world - there may still be airport areas visible in the TIN. |