New Aircraft Procedures


Contents

Overview

This document describes some helpful procedures when using the modeling tools to create a new aircraft model for Prepar3D.  It is not a tutorial, and it is recommended that this document be read in full before starting on a new aircraft project. A high level of expertise with 3ds Max is assumed and required.


Getting Started on a New Aircraft

Ensure that the required setup process has been completed, and that 3ds Max is running with the Prepar3D Tools entry on the main menu. The setup process is described in the Using Modeling Tools document.

Note

This document was prepared using 3ds Max 7, so there may be minor differences to the commands if you are using 3ds Max 8 or newer.


Setting Units of measurement

  1. On the Customize menu, click Units Setup.
  2. In the Units Setup dialog box, click Metric, select Meters from the Metric box, and then click OK.
  3. On the Customize menu, click Preferences. On the General tab under System Unit Scale, verify that it reads 1 Unit = 1.0 Meters, and then click OK.

Importing 3 View Drawings

  1. It is good practice to work through 3 View drawings.  These should be separated into front, top and side images and loaded into the corresponding view ports through Views > Viewport Background > Background Source > Files.


  2. Select Match Bitmap and turn off Lock Zoom/Pan.
  3. Create a geometrical plane with the dimensions of the aircraft corresponding to the view chosen.
  4. Zoom in the plane to match the 3 view drawing.  Once the size of the plane and drawing match, check the Lock Zoom/Pan box.  This locks the drawing with the aspect of the plane and allows you to zoom in and out of both.  Do this for all of the three views (front, left and top). 

Aircraft Center Point

In the Mooney_Bravo model example, we use a dummy as the top object in the hierarchy.  We place this object at 0,0,0 in the model.  This location also refers to the quarter co-ordinate point on the aircraft also known as the aircraft center.  The green box in the image below is the center point of the aircraft.

Related Links

Friendly Names and Guids

Aircraft models require a friendly name and guid which is authored with the ExportLOD tool. 

  1. Select Prepar3D Tools > Export and LOD Tool.
  2. In the File Properties section, click the Create button next to the GUID text box to generate a random GUID for this model.
  3. In the File Properties section, click the Edit button next to the Friendly text box to a unique friendly name for this model.

  4. LOD and Export Tool
  5. The model now has a friendly name and guid assigned to it which is kept in File > File Properties… > File Properties > Custom Tab > Properties.

    File Properties

Mouse Rectangle Tags

Mouse rectangle tagging information links an animated tagged object with the mouse pointer.  For greater control, this feature is separated from the animation tagging process.

  1. To implement mouse rectangles, select the object and select the tool via Prepar3D Tools > Attach Point Tool.
  2. Check the Mouse Rect box and select the mouse rectangle name from the Mouse Rect Objects: dropdown menu.  The naming convention is the same as in the animation tagging tool.



  3. Select the Attach to existing geometry! button and a name should appear in the Attach name box.  This name has no affect on the mouse rectangle information and therefore does not need to be changed from the default naming.
  4. The mouse rect information is stored in the Object Properties dialog box.  To access this information select Edit > Object Properties… > Object Properties Dialog > User Defined Tab > User Defined Properties.




The Exterior Model


Exterior Model Hierarchies

The top node is a dummy node placed at the origin.  Directly beneath the top node are the LOD (level of detail) nodes which range from 400 (top LOD) to 5 (lowest LOD). 

Open the actual sample Mooney_Bravo files to view the full hierarchy.

Triangle Counts

LODs should be implemented in order to optimize performance.  The following is the triangle count for a sample model.  Obviously a large aircraft will need more triangles than a small one, so use your best judgment.  The more complex aircraft models provided with Prepar3D have approximately 25000 triangles for the LOD_400 model.  Generally speaking LOD 35 and up will have animations while LOD 15 and below will not.  Also LOD 5 is basically created using planar meshes.

Level of Detail Triangle count
LOD_400 14000
LOD_150 11000
LOD_75 7000
LOD_35 3000
LOD_15 800
LOD_5 50

Specific Material Settings for Aircraft

Open the Material Editor; select an unused material slot; click on the material type button (Standard is default) which brings up the Material/Map Browser; select Prepar3D from the list and click OK, then rename the material to an appropriate name.


General Material

General material is used for the main parts of an aircraft, where there is no alpha component.

  1. Assign the diffuse image by checking the Diffuse Color box and selecting an appropriate diffuse color map.
  2. Assign the specular image by checking the Specular Color box and selecting an appropriate specular map or assign the bump image by checking the Bump box and selecting an appropriate normal map.
  3. Under Fresnel Ramp assign Fresnel bitmap by clicking on map browser button and selecting an appropriate Fresnel map. Check the Reflection option box and check the Specular option box.
  4. Under Special Functionality, check the Blend environment by inverse of diffuse alpha box and the Use global environment map as reflection box, move the slider for Reflection Scale to 30, and move the slider for Specular Map Power Scale to 202.
  5. Under Bloom, check the Allow bloom box, move the slider for Specular Bloom Floor to 0.9, and move the slider for ambient light scale to 1.0.

Propeller

This is used for propeller discs that have partial transparency.

  1. Assign the diffuse image by checking the Diffuse Color box and selecting an appropriate diffuse color map.  In this case, the bitmap should have an alpha channel or transparency layer (32 bit).
  2. Under Bloom, check the Allow bloom box, move the slider for Specular Bloom Floor to 0.9, and move the slider for ambient light scale to 1.0.
  3. Under Framebuffer Blend, click on Set Default Transparent Source Blend and Destination Blend are set to SrcAlph and InvSrcAlpha, respectively, and under Enhanced Parameters check No shadow, which should look better than a completely opaque shadow.

Glass

Glass is used for windows and light lenses.

  1. Under Blinn Basic Parameters, set Opacity to a value less than 50%. For the Mooney_Bravo sample a value of 40% is used. The lower the opacity, the more transparent the glass.
  2. Assign the diffuse image by checking the Diffuse Color box and selecting an appropriate diffuse color map.
  3. Assign the specular image by checking the Specular Color box and selecting an appropriate specular map or assign the bump image by checking the Bump box and selecting an appropriate normal map.
  4. Assign the reflection image by checking the Reflection box and selecting an appropriate normal map.  Note that the sample Mooney_Bravo uses the file GlobalEnv_AC_Chrome.dds file.
  5. Under Fresnel Ramp assign Fresnel bitmap by clicking on map browser button and selecting an appropriate Fresnel map.  Check the Reflection option box and the Specular option box.
  6. Under Special Functionality, check the Blend environment by inverse of diffuse alpha box and the Use global environment map as reflection box, move the slider for Reflection Scale to 30, and move the slider for Specular Map Power Scale to 202.
  7. Under Bloom, check the Allow bloom box, move the slider for Specular Bloom Floor to 0.9, move the slider for ambient light scale to 1.0.
  8. Under Framebuffer Blend, click on Set Default Transparent Source Blend and Destination Blend are set to SrcAlph and InvSrcAlpha, respectively.

Chrome

Chrome is used for propeller spinners and landing gear sliders.

  1. Assign the diffuse image by checking the Diffuse Color box and selecting an appropriate diffuse color map.
  2. Assign the specular image by checking the Specular Color box and selecting an appropriate specular map or assign the bump image by checking the Bump box and selecting an appropriate normal map.
  3. Assign the reflection image by checking the Reflection box and selecting an appropriate normal map.  Note that the sample Mooney_Bravo uses the file GlobalEnv_AC_Chrome.dds file.
  4. Under Fresnel Ramp assign a bitmap by clicking on the map browser button and selecting an appropriate Fresnel map.  Check the Reflection option box and the Specular option box.
  5. Under Special Functionality, check the Blend environment by inverse of diffuse alpha box and the Use global environment map as reflection box, move the slider for Reflection Scale to 30, move the slider for Specular Map Power Scale to 202.
  6. Under Bloom, check the Allow bloom box, move the slider for Specular Bloom Floor to 0.9, move the slider for ambient light scale to 1.0.

Skinned meshes

Skinned meshes need a special material in order for the animation to work.  This is essentially identical to the General Material with the addition of checking the Skinned mesh box under Enhanced Parameters:


Tail number or N number

Tail numbers are used for ATC identification decals.

  1. Assign the diffuse image by checking the Diffuse Color box and selecting an appropriate diffuse color map.  This map does not have to exist, but entering one is simply necessary for the tool to work.
  2. Under Fresnel Ramp it is not necessary to assign a bitmap but still check the Reflection option box and the Specular option box.
  3. Under Bloom: check the Allow bloom box, move the slider for Specular Bloom Floor to 0.9 and move the slider for ambient light scale to 1.0.
  4. Under Framebuffer Blend: click on Set Default Transparent Source Blend and Destination Blend are set to SrcAlph and InvSrcAlpha, respectively.
  5. Under Aircraft Material Params: check the Is N-Number texture box near the bottom.  This will assign the appropriate ATC identification or tail number.

LOD_5

LOD 5 is the lowest level of detail and is created with flat polygons.  There are no textures associated with it to minimize draw time.  The only setting needed for this is under Enhanced Parameters – check the Double sided box:


Texture Naming

Textures are organized using a simple naming convention, suffixes are used to delineate between the different kinds of texture maps:

Example 1: main texture maps for the Mooney_Bravo

  1. Mooney_Bravo_1_T.psd
  2. Mooney_Bravo_2_T.psd

Example 2: interior maps for night time for the Mooney_Bravo.

  1. Mooney_Bravo_1_night_C.psd
  2. Mooney_Bravo_2_night_C.psd
  3. Mooney_Bravo_3_night_C.psd
  4. Mooney_Bravo_4_night_C.psd
Note

Animated textures (or texture cycling) is not supported.


Animation System

All animations need to be key-framed because axis driven animations (such as rotations about an axis) are no longer supported. All rotational animations should be Linear, and not Euler or TCB. All objects with animations need to be associated to an animation tag (an animation variable). The only objects eligible to have animations assigned to them are meshes, dummy helpers, or bones.  Also object names have no bearing on animations but are important for organization.

Refer to the file Animation Tags, for a full list of tags used by aircraft, and to the Creating a New Animation section of the Using Modeling Tools document.

Example: to animate and tag the rudder

Select the rudder; move the pivot to the axis of rotation; key the animation from 0-100…0 = full left, 50 = neutral, 100 = full right. The following sections on Tagging and Untagging use the rudder as an example.


Tagging

  1. Open the Animation Tool: Prepar3D Tools > Animation Manager.
  2. Set the Start frame as 0 and the End frame as 100 (just below the Create and Delete buttons).
  3. Under Animation List scroll down and find rudder_percent_key and select it.
  4. Click on Create to associate the rudder_percent_key animation tag to the rudder mesh.  Rudder_percent_key will show up in the Object Anims window and the Create button will get grayed out. 
  5. In the image below, the part name is listed in the top right corner and the animation tag rudder_percent_key has been associated to the part and the animation has a range of 0 – 100.



  6. Look at the dope sheet to verify the animation tag has been associated to the rudder:




Untagging

To remove an association to an animation tag, and using the rudder example:

  1. Select the rudder mesh.
  2. Open the Animation Tool: Prepar3D Tools > Animation Manager.
  3. Click on Update Sel which will list rudder_percent_key in the Object Anims window.
  4. Click on rudder_percent_key in the Object Anims window; this should highlight rudder_percent_key in the Animation List window.
  5. Click on Delete.  The rudder is now untagged and will not react to inputs when running the simulation.
  6. Click on Update Sel to verify the animation tag has been disassociated.  In the image below, notice that the Object Anims window is empty (which means there is no associated animation tag).




Visibility Tags

Object visibility can be controlled by associating a visibility tag to it.  This is currently used on propellers, wheels, turbine fans, and similar machinery, to switch between different blur states to emulate motion blur.

Example: Setting propeller visibility on right slow propeller

There are three states for a propeller: still (still to slow), slow (slow to blurred) and blurred (very fast).

To set visibility tags:
  1. Select Prepar3D Tools > Attach Point Tool.
  2. Check the Visibility box; which opens a drop-down menu of choices: select prop1_slow
  3. Under Attach!: click on Attach to existing geometry! The tool creates an attach name to the object according to the selection
  4. Verify by right clicking the object and selecting Properties > User Defined:

Adding Lights

Lights can be added using the AttachPoint Tool or by updating the aircraft configuration file. Most light effects can be added in two ways, depending on whether the light (or whatever the light is attached to) is static or dynamic.  For most lights attached to a fixed part of a plane, simply add an entry in the aircraft configuration file, which contains all the necessary information to define the simulation model, including static lights.  The following image shows the lights for the sample Mooney_Bravo, including a red navigation light, a beacon, and an interior light.

Note the use of "//" in the aircraft configuration file to add comments that help in understanding the file format.

However if a light is attached to a moving part (including wings with flex) or if the light is a landing light, then we need to create an attach point for the light effect. 

Example: Setting a green starboard light on a wing with flex

To add a light to a moving part:
  1. Create a small one sided single poly mesh. This will be used to attach the light effect. In this case the light effect will be a blinking green running light.
  2. Center the pivot point of the object.  Wherever the center is placed is where the effect will show up.
  3. Place the mesh at the right wingtip and link to the animated part (in this case a bone).



  4. Open Prepar3D Tools > Attach Point Tool and check the Effect box and the Visibility box.  Under the Apply part visibility drop-down menu, the default is general light.  Leave that as is.  Under the Effect to Attach drop down menu, select fx_navgre (navigation green).
  5. Click on Attach to existing geometry!  Under Attach name the tool renames the actual object according to the selections.




Landing lights

Landing lights also need to be placed using the Attach Point Tool. 

  1. Create a small one sided single poly mesh. This will be used to attach the light effect, in this case the light effect will be a landing light.
  2. Center the pivot point of the object and rotate the pivot so Y is pointing in the direction of the light beam, X is toward the ground and Z is pointing starboard.  This will ensure the cast light is shining forward.  (see image below)
  3. Place the mesh in front of the light source.  In the sample Mooney_Bravo, the lights are located at the leading edges of the wings.  Due to drawing issues, the attach point mesh should not be embedded within an opaque object since it will most likely get drawn behind that object.  In the sample Mooney_Bravo, the attach point mesh is inside the translucent light housing but forward of the light mesh. 



  4. Open Prepar3D Tools > Attach Point Tool and check the Effect box and Visibility box.  Under the Apply part visibility drop-down menu, the default is general light.  Leave that as is.  Under the Attach Effect drop down menu, select fx_landing (landing light).
  5. Under Attach! the tool renames the object according to the selections.
  6. Click on Attach to existing geometry!




Adding Doors and Exits

Doors, exits, cargo doors need to be included in the aircraft configuration file after they have been animated and tagged in 3ds Max. In the sample below, the door linkages and handle have all been animated with keyframes from 0 – 100 and tagged to door_0. 

In earlier versions of Prepar3D f_canopy (forward canopy) and r_canopy (rear canopy) were used to designate doors and exits, later models use door_0 to door_3 for simplicity. By using discrete door animation tags, doors can be opened and closed by type.  Use the following animation tags to delineate between different kinds of doors and exits: 

When the door is animated and tagged, add an entry to the corresponding aircraft configuration file:


Shadow mapping

Shadow maps or cast shadows are automatically generated for aircraft exteriors by default.  In order to turn off shadows (which is recommended on parts with partial transparency, such as propeller discs) simply check the No shadow box under Enhanced Parameters.  The image below shows a proplellor disc material with shadows turned off.


Adding Pilots

Pilots are part of the aircraft hierarchy just like any other part.  Most pilots will have several common animations such as turning the yoke left or right, pulling the yoke fore and aft, throttling up or down, pushing the rudder pedals, turning their heads in the direction of a turn, and so on.  They can be animated in one of two ways: rigid meshes or skinning. Rigid mesh and skinned/bone meshes are supported, with the following characteristics:


Rigid meshes


Skinned/boned meshes

To animate the forearm of a rigid mesh pilot
  1. Since the arm needs to be part of the elevator up/down animation as well as aileron left/right animation, it needs to incorporate a dummy node for each section of the arm.  The dummy will have the elevator up/down animation and the actual arm parts will have the aileron left/right animation.
  2. Animate the parts from keyframe 0 - 100.
  3. When the animations are done, associate animation tags.  First select the elbow dummy.
  4. Open the Animation Tool: Prepar3D Tools > Animation Manager.
  5. In the Start box enter 0 and in the End box enter 100.
  6. In the Animation List, select lever_stick_fore_aft.
  7. Click on Create.  You will notice the Create button is now grayed out to show that that animation variable is already assigned to that part.



  8. Next select the forearm mesh.
  9. Click on the Update Sel button. Note that 0 and 100 should still be the start and end keyframes.
  10. In the Animation List, select lever_stick_l_r.
  11. Click on Create. Both parts should be tagged appropriately and should animate in the product.
  12. The Animation Tool will not automatically update when selecting different objects while the tool is open.  You will need to click on the Update Sel button each and every time you select a new object in order for the tool to update.




The Interior Model


Interior Model Hierarchies

The hierarchy for the virtual cockpit is not very different from the exterior model.  The top object, in this case the dummy object, is placed at the same center point as the exterior model.  Scaling of the top object should be set to 100% and translations should be set to 0,0,0.  The real difference is that there are no LOD hierarchies in the virtual cockpit model.

Note

The sample Mooney_Bravo virtual cockpit has a triangle count of around 10,000 including exterior parts.  Most of the geometry outside the view angles of the initial eye-point range have been deleted to improve performance.  Some of the more complex aircraft interiors have a triangle count of around 24,000 and have perhaps ten 1024 maps including gauges and self illumination maps.  We would recommend that content creators use these estimates as upper limits and to understand that greater increases in triangle and texture counts will result in performance loss.


Virtual Cockpit Specific Materials

Due to the increase in base textures and self illumination maps, specular and bump maps have not been implemented. The base materials for the Mooney_Bravo virtual cockpit only have a few specific settings.

  1. Choose the base texture in the Diffuse color map section.
  2. Choose the night version of the base texture (not name specific) in the Self- Illumination map section.
  3. Choose BlendUserControlled in the Emissive Mode section.
  4. Check the No Base Material Specular box if there is no specular map.

Windshield

The windshield material for the Mooney_Bravo virtual cockpit has alpha settings but no self illumination map.

  1. Choose the base texture in the Diffuse color map section.
  2. Select the Select Default Transparent button in the Framebuffer Blend dialog.
  3. Check the Set final alpha value at render time box and set the Final Alpha Multiply slider to the level desired.  In this case the windshield is set to 15% opaque. 
  4. Check the No Base Material Specular box if there is no specular map. 

Windshield Effects

The windshield material for the Mooney_Bravo virtual cockpit has an attached script for custom weather effects, like rolling rain drops. Some of the below steps are optional as the script can set and assign those properties.

  1. Choose the Script in the Script Properties script section.
  2. Create a second set of UVs, in channel 2, on the geometry of the windshield for the effect textures.
  3. Optional Assign the windshield effect texture into the Detail Texture Info Map section.
  4. Optional Set Blend inside the Detail Texture Info Blend Mode section.
  5. Optional Set Use detail alpha as blend mask inside the Detail Texture Info section.
  6. Optional Set Detail Texture bitmap to channel 2 inside the Map Channel section.

Gauges

The gauge materials for the Mooney_Bravo virtual cockpit have an additional setting in the Aircraft Materials Params section.

  1. Choose the gauge texture in the Diffuse color map section.
  2. Choose the same gauge texture in the Self-Illumination map section.
  3. Select the Select Default Transparent button in the Framebuffer Blend dialog.
  4. Choose BlendUserControlled in the Emissive Mode section.
  5. Check the No Base Material Specular box.
  6. Check the Is virtual cockpit panel texture box in the Aircraft Material Params section.
Note: Z-Fighting in Gauge Textures

It is possible that some of the gauge texture sheets will encounter Z-buffer fighting issues.  This issue can be addressed with additional settings.  If you are experiencing Z fighting issues with gauge texture sheets, try applying the following change in the material and re-export.

  1. Select the Set Default Opaque button in the Framebuffer Blend dialog.
  2. Check the Z-Test Alpha box in the Material Alpha Test dialog.
  3. Set the Alpha Test Level slider greater than 128.
  4. Select Greater in the Alpha Test Mode drop-down dialog.
Assigning Gauges in the Virtual Cockpit

If a texture name starts with "$" then the texture is assumed to be a virtual cockpit (VC) gauge texture.  This texture serves as a specific coordinate reference on a virtual texture sheet which maps the 2D bitmap panel gauges on the sheet in real time.  The reference to the 2D panel bitmaps is done through the panel configuration file of the aircraft.  A texture sheet with "$" or is not needed once the model is exported out of 3ds Max.

To assign gauges in the Virtual Cockpit:

  1. Create the geometry for the gauges.
  2. Create a texture sheet that shows the edges of the gauges for precise mapping.  Be sure that it has a $ prefix.  When laying out this texture, write down the size of the each gauge along with the coordinates of the top left pixel of the image.  This information will be used in panel.cfg file.
  3. Map the texture onto the geometry as you normally would using UVW Map and the UVW Unwrap in the UV Coordinate Modifier stack.

Interior Animation Tagging

For information on the aircraft specific animations, refer to the Animation Tags document, and to the Creating a New Animation section of the Using Modeling Tools document.

Here are the steps that you will need to follow to add animation tags to animated objects.

  1. Select the object that has been properly keyframed (linear animations).
  2. Open the animation tagging tool via Prepar3D Tools > Animation Manager.
  3. Click the Update Sel button, select the proper animation tag name from the Animation List and enter the keyframe length in the Start and End boxes.  It is important to note that starting and ending times references which keyframes have the specific animation information.  For example, if the length of animation is 75 keyframes, the animation could run from keyframes 25-100.  You do not have to start keyframe animation at keyframe 0.



  4. Click the Create button and the animation tag name should appear in the Object Anims list.  It is important to note that when tagging multiple items, be sure and press the Update Sel button to refresh the tool.



  5. The animation information from the Animation Manager tool is stored in the notetrack information for the part in the dope sheet.  To access the dope sheet, select the object and select the tool: Graph Editors > Track View – Dope Sheet. You should see the animation tag name under the Transform section in the Notes category.




Updating the Panel Configuration File

This section shows how to assign panel textures in a panel configuration file.

Notes

Bipeds


Part Naming

With the release of Prepar3D® v4 brings the support for up to 64 connected bones. This allows developers to better utilize the biped object when creating their models. The Biped root bone must be named either "Bip01" or "Bip001" (no spaces, without quotes). The default value will vary depending on your version of 3dsMax.


In the following picture, you can see the biped root bone selected. For a more detailed description of the correct scene hierarchy and naming conventions, please read the Scene Graph section.


Biped Object


Scene Graph

Correctly setting up the scene's hierarchy is another key step when using the biped object. It is important the skinned mesh is not attached to the biped itself. For example, ensure that the skinned mesh is not marked as a bone. Also note the Naming Convention used for each bone, especially the root bone.


Biped Schematic


Exporting

As with any model utilizing bones and skinned meshes, certain flags will need to be correctly set when exporting. When exporting your biped rigged model, ensure you have checked the "Export Skin" and "Export Animations" options. It is also important that the skin's material has the "Skinned mesh" parameter checked.


Biped Export


Biped Material