Page ContentsPage Contents (click to expand)
  1. File Setup
    1. File Layer Construction and Object Naming Conventions
  2. Poly Count
  3. Rivets and Panel Gaps
  4. Animation Considerations
  5. Blur Meshes
    1. Blur Mesh for Wheels
    2. Blur Mesh for Props
    3. Blur Mesh for Jet Engines
  6. Tangents

AIRCRAFT MODELS

Here you can find the specific rules that are used to govern how an aircraft model should be set up. However, there are further pages for more specific details on aircraft modelling that you can access from the links below:

 

For general collision guidelines please see the following page:

 

You should also have a look over the guidelines Landscape Elements as those contain some information on optimising models that are also relevant to aircraft.

 

 

File Setup

Aproximate position of aircraft in file

 

 

File Layer Construction and Object Naming Conventions

Note that these conventions are recommendations and by no means requirements for the game to work.

 

Layer Name Description
Default Empty
X0 All objects prefixed "x0_"
X1 All objects prefixed "x1_"
X2 All objects prefixed "x2_"
X3 All objects prefixed "x3_"
X4 All objects prefixed "x4_"
X5 All objects prefixed "x5_"
X6 All objects prefixed "x6_"

 

Each layer set may have nested layers as long as the object names are prefixed correctly.

 

Nested Model layers

Here are some typical naming examples for plane parts and sub-elements. All can be prefixed with the relevant LOD - eg "x0_" to help define the LOD.

 

Bodypart Name Note
BODY plane part
WINDSHIELD glass
BODY_Details not mandatory/can be attached to BODY geometry
PROPELLER can be broken down into 1, 2 or 4 propellers depending on the plane
BLADE01  
BLADE02...  
CONE  
BLUR_LowSpeed  
BLUR_HighSpeed  
TAIL (plane part)  
STABILIZER_Vertical  
RUDDER  
STABILIZER_Horizontal  
ELEVATOR_Left  
ELEVATOR_Right  
TRIM_Elevator  
TAIL_Details  
WING_Left  
WING_LeftBody static mesh
WING_LeftTip if required and possible
AILERON_Left animated mesh
FLAPS_Left or FLAPS_Left01, 02, etc. as required (animated mesh(es))
SPOILER_Left or SPOILER_Left01, 02, etc. as required (animated mesh(es))
WING_LeftDetails not mandatory/can be attached to main geometry
ENGINE_Left if multiple engines. Can be Left/Right or LeftInner, LeftOuter, RightInner, etc. depending on the plane
ENGINE_LeftBody static mesh
ENGINE_LeftFan animated mesh
ENGINE_LeftDuct animated mesh (for reverse animation)
ENGINE_LeftDetails not mandatory/can be attached to main geometry
WING_Right  
ENGINE_Right if multiple engines
LANDING_GEAR_Nose plane part
WHEEL_Nose  
LANDING_GEAR_NosePart01  
LANDING_GEAR_NosePart02  
LANDING_GEAR_Left plane part
WHEEL  
LANDING_GEAR_LeftPart01 Etc. as required depending on animations
LANDING_GEAR_RightPart01 Etc. as required depending on animations

 

 

Poly Count

The table below is a general guide as to how many triangles you can spend on a single plane asset:

 

Plane Size Plane Description Triangle Count Exterior Triangle Count Interior
Large plane Jumbo Jet 500,000 tris 400,000 tris
Medium plane Small Passenger Jet 200,000 tris 200,000 tris
Small plane Single/Double Seater 150,000 tris 150,000 tris

 

For more complete information on the optimal number of tris to use - please see the Models page section on Aircraft LODs.

 

 

Rivets and Panel Gaps

The Microsoft Flight Simulator engine prefers mesh over texture resolution, therefore more model geometry is spent on defining detail that would usually be defined with normal maps. However, normal maps are advised for rivets, micro-bump surface detail, and organic surfaces. Normal maps can also be used for very small detailed areas that would otherwise use up a lot of triangles such as areas that involve a lot of cabling, chassis pressings, screws etc... See Aircraft Texture Mapping for more information.

 

 

Animation Considerations

To ensure that the model accurately re-creates a real world plane, it is important to test that the moving components animate correctly without clipping through other static components.

 

All of the movable parts of the plane should be animated as they do in reality, and as such they should be modeled with this in mind. The flaps should have a detail modeled underneath them, the landing gear should fold out and move as it does in the real world, etc... Care must be taken to ensure that the various component parts of the plane are all modeled and set up correctly.

 

The image below shows some still images of an example animation:

Example landing gear animation

 

 

Blur Meshes

For any object that rotates, such as wheels, turbines or turbo props, a blur mesh is required. The static mesh is swapped out for the blur mesh once the moving part reaches a certain speed in order to look more realistic in game.

Blur mesh example

Blur Mesh for Wheels

These are typically named:

 

Blur Mesh for Props

These are typically named:

 

Iterate for each additional prop, e.g.  Prop1_still

 

Of course, more or less states may be used if the Behavior XML is changed accordingly.

Props usually need a slow speed state. The meshes should look something like this:

Propeller blur mesh example

Blur Mesh for Jet Engines

Jet engines require multiple meshes, just like the props, however the mesh will likely look identical for all blur states, as there are so many blades.

 

As with the propellers, the 0 defines the engine number. If there are two then the second would be called 1, etc...

 

 

Tangents

When a mesh is imported for the first time, Microsoft Flight Simulator always calculates the tangents. In order to avoid any issues with the normal map, ensure the mesh has a smooth surface and no connected vertices overlap in position or UV space.

 

For skinned meshes, the tangents are calculated using the default position of the mesh (the T-pose). In the Babylon Exporter, the T-pose is the pose at frame 0. To ensure no problems occur, a good convention would be to start all animations at frame 1 or later.

 

 

©2021 Microsoft      Contact Us      Privacy Policy      MSFS Forums      SDK Q&A Support