article_type: Tutorial

Exterior Aircraft Lighting in X-Plane 9

You can download the example plane here: File:Example beacons.zip.

Overview

This example plane demonstates some of the airplane exterior lighting features that are possible in X-Plane 9:

  • Left and right landing lights are separately controlled.
  • Landing lights have two intensity levels (low and high).
  • Landing lights illuminate the fuselage of the airplane.
  • Logo lights illuminate the tail (billboards are visible on the wing-tips).
  • Strobe pattern is customized.
  • Front and rear wing strobes flash separately.
  • The two rotating beacons rotate at different rates.

This tutorial covers the following X-Plane material:

  • Parameterized Lights
  • Datarefs for light control
  • Use of ATTR_light_level

You Should Already Know

To understand this example plane, you should already know:

  • How to model a plane in Plane-Maker.
  • How to create a panel, including generic instruments.
  • How to build the exterior out of OBJ files from a 3-d modeler.
  • How to attach “named lights” to create lighting billboards.

This tutorial focuses mostly on billboards and halo effects; you can build light fixtures in a 3-d modeling program.

Landing Lights

X-Plane simulates up to 16 separately controllable landing lights (plus one taxi light). You can use named lights to map any number of billboards to any of these simulated lights.

If any of the 16 landing lights is on, X-Plane will draw a landing light halo effect on the runway in front of the airplane. (The quality of this effect will vary with hardware capability.)

The location of the landing light halo effect on the pavement is determined by the landing light location in the Plane-Maker view dialog box’s exterior lights tab.

Note: Even if you do not enable the landing lights in this tab, the location of the halo will be determined by this. X-Plane draws only one halo, so if you do not enable these lights, set the first light’s location to something appropriate for the centerline of the airplane.

Data Refs

The dataref

sim/cockpit2/switches/landing_lights_switch

is an array of floating point values that you can use to turn the landing lights on and off. The landing light switch is a ratio with 0 being off, 1.0 being full intensity, 0.5 being 50% intensity, etc. Each landing light can be set to a different intensity, or be individually turned off and on.

The dataref

sim/flightmodel2/lights/landing_lights_brightness_ratio

Tells the actual effective brightness of the landing light for visual effects – it takes into account electrical system and landing light failures, as well as the delay for the bulb to warm up and cool down. It is also an array of 16 floating point values – 0.0 is off, 1.0 is full brightness.

There are two legacy datarefs:

sim/cockpit/electrical/landing_lights_on
sim/cockpit2/switches/landing_lights_on

That date back to older versions of X-Plane. Use the newer datarefs for more control – these datarefs will turn all of the landing lights on and off at once.

3-Way Panel Switches

X-Plane comes with a built-in “landing light” switch – don’t use it. It will only affect the first landing light. Instead, use generic instruments to write to the sim/cockpit2/switches/landing_lights_switch switch.

In our plane, we use a 3-position rotary. A key frame table matches the 3 positions to off, 50%, and 100% brightness.

Customizing the Landing Light Billboards

For the billboards under the wings, we do not use the built-in landing lights from the view dialog box of Plane-Maker. Instead we attach parameterized lights to our OBJ.

A parameterized light is like a named light: it is a billboard attached to your object at an XYZ location. The name defines what the billboard will look like. But unlike a named light, a parameterized light lets us customize the look of the light. Our object contains this:

LIGHT_PARAM airplane_landing_size -0.822960 -0.152400 1.737360	1.5	-3 0
LIGHT_PARAM airplane_landing_size 0.822960 -0.152400 1.737360	1.5	-3 1

The first 3 numbers are the location in meters relative to the attachment point of the fuselage object that the lights are part of. The next numbers meanings depend on the type of parameterized light. In our case (landing light by size) they are:

  • The size of the billboard (1.5). Billboard sizes don’t correspond to meters – you’ll have to experiment to find appropriate sizes.
  • The tightness of focus. Negative values are visible from the front of the plane, positive from the rear. Larger magnitude numbers make a light that is visible from a smaller angle.
  • The index number of the light. So the first billboard on the left side is tied to landing light #0, the second one is tied to landing light #1. (Array indices for datarefs count from 0.)

Thus the two landing lights are independently controllable.

Note that you can make many light billboards (with LIGHT_PARAM or LIGHT_NAMED) for a single x-plane landing light. So for example, you can model a landing light in a wing with several bulbs.

Adding Halos To The Fuselage

To create the illusion of the landing light shining on the fuselage, the _LIT texture for the fuselage object has the lighting halos for the two landing lights and tail drawn in.

We can use ATTR_light_level to control the brightness of the light texture for a certain set of triangles. What makes things difficult is that we can only have one _LIT texture. So it is important that we design our lights with no overlapping regions. (We have no way to select one of multiple halos that would intersect in the LIT texture.) In our object we have this:

ATTR_light_level 0.000000 1.000000 sim/flightmodel2/lights/landing_lights_brightness_ratio[0]
TRIS 0 882
ATTR_light_level 0.000000 1.000000 sim/flightmodel2/lights/landing_lights_brightness_ratio[1]
TRIS 882 669
ATTR_light_level 0.000000 1.000000 sim/flightmodel2/lights/generic_lights_brightness_ratio[0]
TRIS 1551 435

The mesh is divided into three parts, and each part has its lit level tied to one of the brightness ratios – two for the landing lights, one for the tail logo lights (see below).

Note that we do not use the switch datarefs, we use the filghtmodel2/lights/ datarefs to get the actual brightness. This way if our electrical system dies, the halo effect will disappear from the fuselage even if the switch is turned to the “on” positions.

Tail Logo Lights

The tail logo lights basically repeat the strategy we used for the landing lights, but with one difference: we don’t want a halo to appear on the runway because the logo lights are turned on. But we get a halo on the runway if any landing light is turned on. Clearly we can’t “recycle” one of our 14 remaining landing lights for the tail.

Fortunately, X-Plane also provides 64 “generic” lights. A generic light is a bulb simulated in X-Plane, similar to a landing light, but without producing a halo effect on the runway. We can use them for any purpose. In our case we will use a generic light to simulate logo lights projecting back from the wing tips to the tail.

Something to note: while our plane appears to have two logo lights (one on each wing tip lighting each side of the tail) we only use one generic light for both. This is because we don’t model turning the left and right logo light on separately. Thus we can just use one generic light, and use two billboards. There is no requirement to use one generic light in X-plane for each real-world bulb on the plane.

Data Refs

Like the landing lights, two datarefs control the generic lights. The switch position is also a ratio from 0.0 to 1.0:

sim/cockpit2/switches/generic_lights_switch

and the brightness (taking into account the electrical system, etc. is found in

sim/flightmodel2/lights/generic_lights_brightness_ratio

where 0.0 is off and 1.0 is full brightness.

3-Way Panel Switches

There is no pre-made instrument switch for generic lights – we must use a generic instrument (in our case another 3-way rotary) to map to sim/cockpit2/switches/generic_lights_switch.

Adding Halos To The Tail

Like the landing lights, we use ATTR_lit_level to fade the _LIT texture on the tail.

Adding Billboards To The Wing Tips

We want to put a pair of billboards on the tails so that when a user looks from the tail to the wing-tip, the bulb appears. Once again we use parameterized lights so we can customize the light’s properties a bit. But here we have a problem: the parameterized lights only face forward or backward. How do we angle the lights inward toward the tail?

The answer is animation. Directionally sensitive billboards in X-Plane are affected by animation. We can build a “static” animation (an animation whose animated position never changes) to “aim” the billboard at the tail.

ANIM_begin
ANIM_trans -4.906825 0.121920 2.7 -4.906825 0.121920 2.7 0.000000 0.000000 none
ANIM_rotate 0 1 0  250 250    0 0 none
LIGHT_PARAM airplane_generic_size 0 0 0	1.5 -3 0
ANIM_end
ANIM_begin
ANIM_trans  4.906825 0.121920 2.7 4.906825 0.121920 2.7 0.000000 0.000000 none
ANIM_rotate 0 1 0  120 120    0 0 none
LIGHT_PARAM airplane_generic_size 0 0 0	1.5 -3 0
ANIM_end

The lights are being rotated around an arbitrary point, 250 degrees for the first light, and 120 degrees for the second.

Beacons And Strobes

For our airplane, we want to accomplish a few specialized effects with the beacons and strobes:

  • We want the strobes to flash in an irregular pattern (short long, short long).
  • We want the first flash to come from the front of the wing, and the second one to come from the back of the wing.
  • We want the two red rotating beacons to flash at different rates.

X-Plane 940 models four separate strobes and four separate beacons. Normally they will all flash or rotate in sync in a preset pattern. But we can use a plugin to take over the behavior and program our own pattern. So we have a 2-part task:

  1. Program our own pattern, and
  2. Use parameterized lights to place strobes and beacons on our airplane OBJ that respond to the right strobe or beacon number.

Parameterized Lights For Beacons and Strobes

Once again, we will not use the built-in exterior lights; instead we will place our own in an OBJ. In the exterior lights tab of the view dialog box in Plane-Maker, all of the specific lights are off, and the options to have Plane-Maker place lights for us is off too.

In our fuselage object file we have:

LIGHT_PARAM airplane_beacon_size 0.000000 0.643128 0.000000 1.5 0 0
LIGHT_PARAM airplane_beacon_size 0.000000 1.594104 3.383280 1.5 0 1

This is a pair of rotating beacons; these are parameterized lights. The first parameter is size. The second parameter (0) makes the light omni-directional. And the third light is the index number of the 4 beacons. So the second beacon is on the tail, the first is on the fuselage.

(Note that unlike landing lights, all four beacons simulated in the system are controlled by one switch. The same applies for the strobes.)

Our nav lights on the wing tips are simple named ilghts

LIGHT_NAMED airplane_nav_left -4.906825 0.121920 2.197132
LIGHT_NAMED airplane_nav_right 4.906825 0.121920 2.197132

Finally, the strobe wings. We have two on each wing-tip.

LIGHT_PARAM airplane_strobe_size -4.906825 0.121920 2.097132 2 -0.25 0
LIGHT_PARAM airplane_strobe_size 4.906825 0.121920 2.097132 2 -0.25 0
LIGHT_PARAM airplane_strobe_size -4.906825 0.121920 2.397132 2 0.25 1
LIGHT_PARAM airplane_strobe_size 4.906825 0.121920 2.397132 2 0.25 1

The first parameter is size, the second directionality (again, negative means “visible from the front”, and smaller numbers are less directional), and the last number is the index of the strobe. So the front strobe is index 0, the back strobe is index 1.

Again, note that the number of strobes that the sim simulates is not the same as the number of billboards. We have two strobes, but we have two billboards for each (one on each wing). So the system simulates two strobes (for a two-stage flash) but we see four billboards.

DataRefs And Plugin

Without the plugin, the strobes would flash all four in sync, once a second, and the beacons wouild flash in unison. We use a fat plugin in the aircraft’s plugins folder to override this behavior.

The full source of the plugin and complete downloadable project files an be found on the X-Plane SDK website://www.xsquawkbox.net/xpsdk/mediawiki/Beacons_and_Strobes.

These are the datarefs that affect strobe and beacon operation:

sim/flightmodel2/lights/override_beacons_and_strobes

When you set this dataref to 1, you take control away from X-Plane and manage the strobes and beacons yourself. You must manage both – there are not separate overrides for beacons and strobes. Be sure to set the dataref back to 0 when your plugin is unloaded!

X-Plane will set these datarefs to be 1 if the beacons and strobes have power and 0 if they do not:

sim/cockpit/electrical/beacon_lights_on
sim/cockpit/electrical/strobe_lights_on

Use these datarefs (and not the raw switch datarefs) to decide whether the strobes and beacons should light up – that way your strobes and beacons won’t work if the battery or electrical system fails.

These datarefs are updated by X-Plane once per frame, unless you override the beacons and strobes; in that case your plugin must update them.

sim/flightmodel2/lights/beacon_brightness_ratio
sim/flightmodel2/lights/strobe_brightness_ratio
sim/flightmodel2/lights/strobe_flash_now

The brightness ratios are 4-item float arrays – 0 means off, 1.0 means full brightness. The default beacons and strobes that Plane-Maker creates always show index 0, but you can use parameterized lights to show the other indices.

strobe_flash_now is an int – set it to 1 if any of the strobes is flashing; X-Plane checks this dataref and creates a “flash” effect in the cockpit when you are in the clouds or fog and the strobes are on.

Comments Off on Exterior Aircraft Lighting in X-Plane 9

Facade Creation

This article will walk through the creation of two basic facade files. Before beginning this tutorial, be sure you’re with the facade concepts and terminology found in the Facade Overview.

Getting the images

To begin, we’ll need images to use with our facade. For the purpose of the tutorial, we have two very rudimentary facades that were drawn in Photoshop. In your own facades, you can either do the same (drawing from scratch in an image editor), or you can use photos of real buildings–for instance, the buildings actually present at the airport you’re working on. Be sure that any photos you want to use are taken facing the building straight on. It will be difficult to set an image straight with any degree of realism if it was taken at an angle.

Note that your image files may be either PNG, BMP, or DDS format. The images do not have do be square. However, their dimensions in pixels must be a power of 2, as with all images used in X-Plane scenery.

Download the images for the tutorial here:

Understanding S-T coordinates

All image coordinates in X-Plane are specified in OpenGL’s S-T system. Within this system, every pixel in an image has a unique coordinate specified as a proportion of the width and height. This means that each dimension of the coordinate is between 0 and 1.

These coordinates are ordered as (s, t), which is (proportion of width, proportion of height).

The coordinate (0, 0) corresponds to the bottom left corner of the image, and the coordinate (1,1) corresponds to the upper right corner. Even if the image is not square, this is still true; the s coordinate is a proportion of whatever the width is, and the t coordinate is a proportion of whatever the height is.

Click on the images below for help in understanding this system:

Writing the facade file

The facade file itself is a text file containing information on the image and how it should be utilized in X-Plane. Let’s get started writing this file.

Create a new text document using your favorite text editor (e.g., Notepad, Emacs, Vi, etc.). Save it as FacadeNameHere.fac. In our example facades, we called them basichangar.fac and basicbuilding.fac.

Note: Except where noted, each line in the text file must be present exactly once–it may not be either omitted or repeated.

Specifying the file type

The first three lines of this text file should always be:

A
1000
FACADE

These lines tell X-Plane that it is indeed looking at a facade file.

Specifying which image(s) to use

Immediately following that is the line specifying the image resource to use. The image name should always have a path relative to the FacadeNameHere.fac file. For instance, in this example (taken from our example hangar facade), the image is in the same folder as the .fac file:

TEXTURE hangar.png

This is the recommended way to set up your folder, as it is the simplest way to do it.

If you have a so-called “lit” texture (a texture to be used at night, when the building would be lit artificially), you can use the following command immediately after the TEXTURE line:

TEXTURE_LIT ImageNameHere.png

The TEXTURE_LIT line may be omitted, as it is in our examples.

Setting the facade’s details

Following the TEXTURE command(s) is the RING line. If this is set to 1, the facade will form a closed loop, as is appropriate for buildings. When it is set to 0, it will be treated as an open loop, as is appropriate for fences.

Since both of our example facades are for buildings, we use the line:

RING 1

Next is the TWO_SIDED line. When this is set to 1, both the inside and the outside of the facade are drawn. This is appropriate if you have transparent areas in your image (for instance, in a window). When there is no alpha channel in your image, set this to 0, as is the case for both our example facades.

TWO_SIDED 0
Setting the level of detail

The level of detail command lets you specify how close to the facade the user must be for the object to be drawn. You specify both a lower and an upper limit. These distances are specified in meters. In both our example facades, we want the facade to be drawn unless the user is less than 0.1 meters away or farther than 50 kilometers away, so our files have:

LOD 0.1 50000.0

Everything following this line will be ignored unless the X-Plane user is in this range.

Note that you can use multiple levels of detail; in this case, you would have one LOD line, followed by all the other commands (ROOF, WALL, SCALE, ROOF_SLOPE, LEFT, CENTER, RIGHT, BOTTOM, MIDDLE, TOP), then another LOD line followed by the same set of commands. This would theoretically only be used to save memory. However, since facades only impact memory use in X-Plane, it would make much more sense to simplify one facade image and use it for all levels of detail–this is much more likely to save RAM than using two levels of detail.

Setting the roof texture

The ROOF command specifies coordinates in the image for use in the facade’s roof. The coordinates are an s and t pair (in that order).

The simplest roof texture is made up of a solid color. In this case, you need only specify a single ROOF command. The pixel found at that (s, t) location will be repeated across the whole roof. For instance, in our example facades, we use the pixel located at (0.1, 0.1) like this:

ROOF 0.1 0.1

If you don’t want a solid roof, you may instead use a whole portion of your image texture. In this case, you will have four instances of the ROOF command, each specifying one corner of the roof portion of the image.

For instance, if for some strange reason you wanted to use your whole image texture for the roof, you would do so like this:

ROOF 0.0 0.0
ROOF 1.0 0.0
ROOF 1.0 1.0
ROOF 0.0 1.0
Choosing a Wall Size

Each wall line has a set of constraints defining when it can be used. The first number is the minimum width, the second number is the max width. These are in meters and define the range of walls in X-Plane that this wall definition can cover.

  WALL 5 100

In this example, this facade will only be shown for walls that are at least 5 meters wide, and no more than 100 meters wide.

Scale & Slope

The scale of the texture in pixels is provided directly to X-Plane via a command in the file – it is not read from the actual texture file. This command defines the scale of the albedo texture used for walls – it is the number of meters the entire texture would fill horizontally, then vertically. For our hagar file we used

SCALE 40 10

X-Plane will use this reference to scale the image up or down since we specified in the line above that this texture can be used for walls between 5-100 meters wide.

The SLOPE command indicates the number of degrees the wall should bend.

ROOF_SLOPE 0

We set the roof slope to 0 to indicate there is no angle to it–our roof is flat.

Specifying the image’s “parts”

Now we need to specify what portions of the image will be used for each part of the facade. This will include a top, middle, and bottom, as well as a left, right, and center.

The bottom, top, left, and right divisions will be included once at most in each facade wall. Center and middle can be used repeatedly to provide particularly long or tall walls.

You will need to use your image editing program to determine the s and t coordinates of each of these lines. For instance, the ruler in Photoshop can be set to display in percent width and percent height, so you can easily determine the coordinates at which your image should be divided by WED.

LEFT 0.0 0.05
CENTER 0.05 0.365
CENTER 0.365 0.673
RIGHT 0.673 .958
BOTTOM 0.0 0.785
MIDDLE 0.785 0.977
TOP 0.977 1.0

Keep in mind:

  • Commands should be listed in order, e.g. all bottoms, then all middles, then all tops, then all lefts, then all centers, then all rights.  (The left/center/right sequence may optionally come before the bottom/middle/top sequence, as it does in our examples.)
  • All coordinates must be adjacent, e.g. each “next” tile’s left or bottom coordinate must be the same as the previous tile’s right or top coordinate – no gaps! (The first CENTER line ends with 0.365 and the next CENTER line starts with 0.365.)
  • All facades should contain at least one horizontal and one vertical tile.

The completed text files

Basichangar.fac

A
800
FACADE
TEXTURE hangar.png
RING 1
TWO_SIDED 0
LOD 0.1 50000.0
  ROOF 0.1 0.1
  WALL 5 100
  SCALE 40 10
  ROOF_SLOPE 0
  LEFT 0.0 0.05
  CENTER 0.05 0.365
  CENTER 0.365 0.673
  RIGHT 0.673 .958
  BOTTOM 0.0 0.785
  MIDDLE 0.785 0.977
  TOP 0.977 1.0

Hangarwithroof.png

 A 800
 FACADE
 TEXTURE hangarwithroof.png
 RING 1
 TWO_SIDED 0
 LOD 0.1 50000.0
 ROOF 0.0 0.518
 ROOF 0.671 0.518
 ROOF 0.671 1.0
 ROOF 0.0 1.0
 WALL 15 200
   SCALE 30 15
   ROOF_SLOPE 0
   LEFT 0.0 0.049
   CENTER 0.049 0.364
   CENTER 0.364 0.671
   RIGHT 0.671 .975
   BOTTOM 0.0 0.393
   MIDDLE 0.393 0.440
   TOP 0.440 0.518
 WALL 0 15
   SCALE 30 15
   ROOF_SLOPE 0
   LEFT 0.671 0.7
   CENTER 0.7 0.8
   RIGHT 0.8 0.975
   BOTTOM 0.518 0.784 
   MIDDLE 0.784 0.931
   TOP 0.931 1.0

Basicbuilding.fac

A
800
FACADE
TEXTURE buildingside.png
RING 1
TWO_SIDED 0
LOD 0.1 50000.0
  ROOF 0.1 0.1
  WALL 5 100
  SCALE 16 8
  ROOF_SLOPE 0
  LEFT 0.0 0.149
  CENTER 0.149 0.293
  CENTER 0.293 0.709
  CENTER 0.709 0.851
  RIGHT 0.851 1.0
  BOTTOM 0.0 0.426
  MIDDLE 0.426 0.915
  TOP 0.915 1.0

More Information

For additional information on facades and facade commands see the Facade File Format Specification.

Comments Off on Facade Creation

Advanced Airport Creation

Intro

This tutorial will walk through the creation of an airport from scratch, including runways, taxiways, air traffic control frequencies, and more. It is related closely to the tutorial on airport customization; that document does not deal with modifying the airport data itself, and this one doesn’t deal with the terrain or objects placed on an airport.

Note that X-Plane’s official airport data is updated frequently, so you may want to check the Airport Scenery Gateway to see if there is an existing copy of the airport you’re building. For our tutorial, we’ll create data anew for Johnson County Executive Airport (KOJC), the same airport used in the Airport Customization tutorial.

This tutorial assumes you have installed the latest version of World Editor, selected an airport to work on, created a new scenery package, and familiarized yourself with the World Editor interface, all per the Airport Customization tutorial.

Remember to save often!

Getting Started

We begin with a new, empty scenery package. Before we can start laying down runways, we must first create a new airport. Open the airport menu and click Create Airport.

Click on the “unnamed entity” and give it a name–for our example, we’ll use “KOJC Johnson County Executive.”

Now we need the airport’s elevation. (Note that, by default, this is in feet above mean sea level. You can change these measurements to meters by clicking the Meters option in the View menu.) Using the Airnav database, we can see that KOJC has an elevation of 1096 feet above mean sea level.

After inputting the elevation, uncheck the “Has ATC” box if necessary (by default, WED assumes the airport does have ATC). Then, type in the ICAO identifier–in our case, KOJC.

KOJC elevation
Entering the elevation for KOJC

Drawing the Main Runway

Now let’s draw the main runway. Using the Airnav database, we found that our example airport has its northern end at 38.8532228333 N, 94.7375677167 W, and its southern end at 38.8419830833 N, 94.737600583 W. We can use these coordinates, together with the mouse pointer coordinates at the bottom of the scenery editing pane, to zoom in on our airport.

Note that you may need to convert between degrees-minutes-seconds of arc to decimal degrees. In doing so, remember that there are 60 minutes of arc to a degree, and 60 seconds of arc to a minute, or use an online converter tool such as this one from the FCC.

Note also that you can place an orthophoto guide according to the Airport Customization tutorial to help visually check your scenery.

Now we will draw our runway. Select the Runway tool from the toolbar. Click once on one end of the runway, then again on the other end. For the sake of consistency, we recommend clicking first on the northern or western end (depending on the runway’s orientation) and clicking second on the southern or eastern end. Note that, for now, this does not have to be very precise–we’ll clean it up momentarily to make it pin-point accurate.

After your second mouse click, the green drawing line will turn into an orange outline, and the runway will appear in the object hierarchy pane, with a long list of attributes below it. Using data from Airnav (or another source if you prefer), you will need to input all the airport’s attributes. You should begin with the “Latitude 1” and “Longitude 1”–these are the coordinates of the first end you drew previously, which should have been the northern or western end of the runway. Then, input the “Latitude 2” and “Longitude 2” coordinates. (Note that the Latitude/Longitude Center, the Heading, and the Length attributes will all be calculated automatically from these.)

Beyond these attributes, the order in which you input the data does not matter. At the very least, you should specify the runway width, the surface, and, of course, the name.

Note that, for all attributes with “1” and “2” variants, the “1” end is the end you clicked first when drawing.

Some important attributes whose significance may not be obvious are:

  • Roughness: this specifies how rough the runway is (and how much it bumps the plane around) when taxiing. This is on a scale from 0.0 to 1.0. A runway in good condition should have a roughness of about 0.25.
  • Displaced Threshold 1 and 2: these specify how far from the end of the runway an aircraft is allowed to touch down, measured in feet or meters depending on your settings in the View menu. By default, the threshold is the end of the runway, so this is set to 0.0.
  • Shoulder: this sets the surface type of the runway shoulder, which is a small section of pavement beyond the runway found mostly in large airports.
  • Edge lights: runway edge lights are classified by the intensity of the light they produce. They can be HighIntensity Runway Lights (HIRL), Medium Intensity Runway Lights (MIRL), or Low Intensity Runway Lights (LIRL), or the runway may have no edge lights at all.
  • Markings 1 and 2: these specify the type of markings on each end of runway. Read more about these on Wikipedia.
  • Blast pad 1 and 2: these specify the length (in either meters or feet) of the blast pad. A blast pad is an area of pavement at the end of the runway constructed to keep dirt and grass from being blown around in the jet blast created by a large aircraft taking off.
  • Approach lights 1 and 2: many configurations exist for a runway’s Approach Lighting System (ALS). You can read about them here.
  • REIL 1 and 2: the Runway End Identifier Lights.
  • TDZ lights 1 and 2: the Touch Down Zone lights.

Our finished runway for KOJC looks like this:

The runway, with all attributes set
The runway, with all attributes set

Repeat these steps for the creation of any other runways. You may want to lock the runways (by clicking the lock symbol next to them) in order to prevent accidental editing later.

Creating the Airport Boundary

After creating your runways, select the Boundary tool (labeled with an image of a fence) from the toolbar. Click at each corner around the airport to draw the boundary. This is the area that will be flattened in X-Plane when the rendering options are set to do so.

Be sure to go in one direction–either all clockwise or all counter-clockwise. When you have placed the last corner, press the Enter key to commit the points to the boundary. At this point, the boundary will appear in the object hierarchy pane; you can then name it there.

If your points aren’t in the places you would like, you can use the vertex tool to click the points and drag them.

Setting the Tower Viewpoint

Select the Tower Viewpoint tool from the toolbar, and click where the air traffic control tower sits (as seen in the image below).

Setting the tower viewpoint
Setting the tower viewpoint

If there is no physical tower, as is the case in many smaller airports, set this to the main terminal. If this viewpoint is not set, selecting the tower view in X-Plane will put the view right on the runway.

After setting the viewpoint, be sure to set the Height attribute.

Creating Communication Frequencies

After creating your runways, highlight your airport in the Hierarchy pane by clicking on it. Open the Airport menu and click Create ATC Frequency.

An “unnamed entity” will appear in the object hierarchy pane. Name this one something like “[Airport] Tower Freq,” and set its attributes properly (once again, this information can be found in the Airnav database). For instance, we found that KOJC’s tower uses frequency 126.0, so we set its attributes accordingly.

Repeat this for all the communication frequencies present in your airport, using the Type attribute to specify which frequency it is. In our example airport, we have 5 different radio frequencies to set up, using the Type attributes CTAF, Tower, Ground, Approach, and Departure. In the following image, we have set the KOJC Departure Freq to Departure type and are setting its frequency at 118.9.

Setting the Departure frequency
Setting the Departure frequency

It may be helpful for the sake of organization to group these communication frequencies together. To do so, highlight the frequencies you want by clicking them while holding down the Ctrl key in Windows or Command key in OS X. With them all selected, go to the Edit menu and click Group.

Name this new group, and we’re ready to move on.

Drawing Taxiways and Other Pavement

Now let’s draw your taxiway(s) and other pavement (aprons, parking lots, etc.). We will use the Taxiway tool to do all this–X-Plane doesn’t care that a layer of asphalt might actually be a parking lot.

Note: when drawing these polygons, make sure there is only one enclosed area per polygon–that is, make sure that the outline does not cross over itself at any point.

With this in mind, select the Taxiway tool from the toolbar and click around the outside of your paved areas. At this point, you should not be making the shapes look pretty–use a small number of nodes, with the intention of cleaning the shape up later. Note especially that you do not need to pay special attention to curves–soon we will create bezier curves to follow the contours of the pavement, but don’t worry about it now.

The best way to do this is to outline all the taxiways and other pavement in your object, then use the Hole tool to cut out all the area that gets selected which isn’t pavement. When you finish drawing each item, press enter–you should have a few objects that look similar to those in the image below. This will not work if you need markings on your (true) taxiways, though–in that case, you’ll need separate objects.

If you are using an orthophoto, it will be helpful to change the transparency of the taxiway in order to see where the holes should be drawn. To do this, click the View menu and select “Pavement Transparency.” Set the taxiways to 50% transparency for a good balance.

In the image on the left below, the taxiway has just been drawn–it covers a lot of area that it shouldn’t. Then, in the image on the right, holes have been cut in it so that it doesn’t cover the grassy areas around it. It still isn’t pretty, but we’ll clean it up soon to more closely match the real taxiways.

Smoothing the Curves

Now that we have (very) basic outline of our pavement drawn, we need to modify it to follow the contours of the actual airport’s curves. We’ll do this by turning the node near a corner into a bezier node, which will cause the line connected to it to curve around it.

You may need place an extra node between two points for the purpose of creating this bezier node. To split the line connecting two points and place a node between them, highlight the points using the vertex tool, open the Edit menu, and click Split. Alternatively, you can highlight the points and press Ctrl+E in Windows, or Command+E on a Mac.

For instance, in the image below, we split the line between the node on the left and right, then used the vertex tool to drag the new node down to the pavement.

new node
A new node created by splitting

Now, to turn this into a bezier node, hold down the Alt key and drag the mouse away from the point. After you let go of both the mouse and the Alt key, you can click and drag the outside arrows to further tune the curve.

Alt-click and drag the nodes
Alt-click and drag the nodes

From here, you can click and drag the arrows attached to the node to further modify the curve. A completed curve will look like the above image.

For information on switching between the different types of nodes, see the World Editor manual. The section on creating shapes may be particularly helpful.

Repeat this process for each curve around the pavement.

Creating Markings and Lighting

Now we will add markings to our runways, taxiways, and other pavement. Markings come in two varieties–perimeter markings (found around the outline of taxiways), and overlay markings (like taxilines, ILS, and hold short markings).

Note that whenever you select a tool that supports markings (i.e. the taxiway and taxiline tools), you’ll notice some options appear at the top of the scenery editing pane. One of these options are markings. When you select a marking in this pull-down menu, that marking will be applied to that tool until you change it. So if you were going to draw taxilines, you’d select the taxiline tool, then set the Markings to Double Solid Yellow (Black) and begin drawing the shape.

You can, however, draw the shape first and add the markings later. This is easily accomplished by selecting the entity, with either the vertex tool or the marquee tool, then going to the attributes pane and setting the Line Attributes, Light Attributes, or both. When you do this, the markings will be applied to the entire shape. This is generally not what is desired, though, and you’ll need to remove the markings from some of the segments for taxiway intersections and the like.

To remove the markings from one section of the taxiway, select a single node using the vertex tool. Then, in the attributes pane, set its Line Attributes to none. The line connecting this node to whichever node was drawn after it will no longer have that attribute. For instance, if you selected Node 9 and set its Line Attributes to none, the line connecting it to Node 10 would have no markings.

Adding the Finishing Touches

We have just a few more things to add to the airport for it to be ready to go.

Creating Runway Signs

To create a runway sign, select the Sign tool from the toolbar. Click where you would like to place it, then drag your mouse around that point to orient it in the direction it needs to go. Note that the arrow coming out of the sign indicates its heading. To move a runway sign, use the marquee tool to click and drag it. To change its heading, drag it with the vertex tool.

For information on setting the text on the sign, and for examples of the text used, see the WED manual appendix on defining taxi signs.

Creating Windsocks, Light Fixtures, and Airport Beacons

Windsocks, light fixtures, and airport beacons are all placed on the airport like runway signs–click to place them, and, in the case of the light fixtures, drag the cursor to change their orientation. You can use the marquee tool to change their position, and, for the light fixtures, you can use the vertex tool to change their heading.

Adding ATC Flow and Taxi Networks

If you are customizing a large or busy airport, it is a good idea to specify the taxi network the airport should have, as well as the ATC flows. A taxi network you create is more likely to be realistic than the one X-Plane can automatically generate. Most large airports will also have several “flows” depending on weather or time conditions, or type of aircraft

To add an ATC flow item, select your airport in the hierarchy pane, open the Airport menu, and click Create Airport Flow. Then, after selecting that flow in the hierarchy pane, open the Airport menu again and select Create Runway Use Rule, Create Runway Time Rule, or Create Runway Wind Rule.

These rules specify under what conditions the runway should be used. X‑Plane will try to use the rules in order (from top to bottom), so be sure to order multiple flows from most specific to least. It also a good idea to have a generic, catch-all flow that can be used in all conditions in case the condition-specific flows overlook a possible scenario.

See the see the four part video tutorial for more information on airport flows.

To create taxiway routings for the AI aircraft, select the taxi routes tool. Set your properties at the top of the window, then click to trace the path aircraft should take. The Departure, Arrival and ILS fields set up hold short parameters. The slop field indicates how close your point must be to another taxiway section in order to snap to it. Larger numbers allow the paths to snap together from farther away. The other preset fields are self-explanatory.

Check for degenerate edges, double nodes, and crossing edges before exporting an airport with a taxi network. These are found under the Select menu and will show any errors in the attributes pane.

five part video tutorial is also available.

Exporting Your apt.dat File

Before exporting your airport data, open the File menu and click Validate, as shown in the image below.This command will check the WED file for errors based on the current export target. You can change the export target by selecting Target X‑Plane Version from under the File menu. Remember that selecting a version older than 10.0 might disable newer features, such as ATC data.

File --> Validate
File –> Validate

If no errors are present, select Export Scenery Pack from the File menu. The new scenery will be visible the next time you load the area in X‑Plane.

Alternatively, with version 1.3 of WED and newer, you can upload your scenery creation directly to the Airport Scenery Gateway. See these instructions to register first.

Comments Off on Advanced Airport Creation

Airport Customization

A Chinese language version of this article is available here.

This tutorial will walk through very basic customization of an airport’s scenery using freely available tools. It is targeted at first-time users of the scenery tools–no prior experience is required or assumed. Screenshots were taken in Windows 7 or OS X Mavericks, but the steps should be identical in other versions of Windows or OS X, except where noted.

Refer to the WorldEditor manual or the Scenery Development Documentation page for more information.

Remember to save your work often!

Install the newest version of WED

The tool that we will be using primarily is WorldEditor (or WED), which was created by Laminar Research specifically for working with X-Plane scenery. If you do not already have the latest version installed on your computer, you can download it here.

Once the file has downloaded, unzip it to an easy-to-find folder. No installation is required; to launch it, just double click WED.exe (Windows) or WED.app (OS X). Because there is no installation, we recommend placing the file in the X-Plane folder to make it easier to find.

Special considerations for Windows Vista/7 users

In Windows Vista and Windows 7, users may need to disable Aero for their mouse clicks to be where they appear to be. In some cases, unless Windows is forced to use the Basic theme, clicking in the WED window may act strangely.

To launch WED using the Basic theme, right click on WED.exe and click Properties from the menu that appears. In that window, go to the Compatibility tab and check the Disable desktop composition box (highlighted in the image below). Click Apply, and in the future, WED will always launch using the Basic theme.

The Compatibility tab for the WED executable
The Compatibility tab for the WED executable

Select an airport

Before we can begin, we’ll need to select an airport. Regardless of what airport you are interested in customizing, be sure to search the web (and especially the X-Plane.org Downloads page or the Airport Scenery Gateway) to make sure someone else hasn’t already created a good scenery package. There’s nothing worse than spending hours on a project, only to find that there is a better free version of it already available!

For the purposes of this tutorial, we will work with Johnson County Executive Airport (KOJC) in Kansas. As you can see in the image below, the default X-Plane scenery is detailed regarding the placement of runways, but is unimpressive beyond that–a perfect candidate for basic customization!

KOJC as it looks by default
KOJC as it looks by default

Creating a new scenery package

We are now ready to create a new, empty scenery package in WED. Double-click on WED.exe (or WED.app on a Mac) to launch it.

When the WED window appears, you may first need to navigate to your X-Plane folder, but then you should be able to click the New Scenery Package button. Type a name for the package, then press Enter. For our example airport of Johnson County Executive, we’re going to use the name “KOJC Johnson County Executive.”

With the name entered, click Open Scenery Package. After a moment, the WED drafting window will appear.

Getting familiar with the workspace

The WED workspace is made up of multiple panes, labeled in the image below.

WED_interface_labeled

On the far left is the library browser. Here, you can browse through the files in the X-Plane library using their virtual paths. (A full understanding of the library system is not required for our purposes here, but for further reading, see The X-Plane Library System). We will talk more about this pane when we begin adding objects to our airport.

To the right of the library browser are the scenery editing panes This includes the toolbar in the left of the pane, the pointer coordinates at the bottom, and the map pane in the center. This pane is used to place objects and to visually modify their positions. To zoom in, either scroll up with your mouse or press the + key on your keyboard. To zoom out, scroll down or press the – key. Note that the program will zoom in toward wherever the mouse is pointing.

To the right of the scenery editing pane is the object hierarchy list and the attributes pane. The object hierarchy pane lists all the objects in a given airport, in (roughly) the order that they will be loaded in. In reality, X-Plane will load certain sets of objects together (for instance, all of the taxiways), but for most purposes, the order of objects in this pane is the order in which they will be visible in the sim. The objects at the bottom of the list will be covered by all the things above them, and objects at the top of the list will be visible above all the objects below them.

Note that in this pane, each object and each group of objects can be set to locked (and un-editable) or unlocked (and editable), and visible or invisible by clicking the appropriate icon. In the image above, all objects are unlocked and visible.

Beneath the hierarchy pane is the attributes pane. This lists all the user-modifiable attributes of whichever object is selected. Click the field to modify its value.

Above all these panes is the tool defaults pane, where you can set up the preferences before using a tool so you won’t have to edit later. The attributes available to set vary by tool but will be remembered the next time you use it.

When the WED window opens for the first time, the size of the window’s panes may not be to your liking. To fix this, mouse over the bars separating each segment and drag it to the size you would like. Alternatively, you can right click within the three outer panes and drag your cursor to resize that pane (doing this in the center pane will just move the view).

Importing airport data

With our package created, we’ll need to import its apt.dat information. Recall that an apt.dat file contains information about the layout of an airport. The airport data included with X‑Plane by default is generally of high quality, even in cases such as this where only the main runways are included, so we will import the existing data for KOJC.

Open the File menu and click Import from Airport Scenery Gateway. We recommend using this option because it contains the most up-to-date airport information.

Type the ICAO identifier KOJC in the text box labeled Filter (found at the top of the dialog box), click the airport to select it, and click Next. Select the specific scenery pack you want to edit on the next screen, then click Import Pack(s). (In cases where more than one scenery exists at an airport, select the pack with the status “Recommended.”)

Selecting KOJC for import
Selecting KOJC for import

You should now be able to see, at the minimum, the main runway and an airport boundary.

Adding an orthophoto guide

Depending on the airport you’ve chosen, you may not be familiar with how all of its buildings, pavement, and so on are laid out. We can fix this by downloading some orthophotos of the area–aerial photos whose corners are mapped to exact latitude and longitude coordinates.

For scenery in the US, it’s easy to obtain public domain orthophotos that may be used freely in our scenery. Outside the US, it may be more difficult–copyright on most imagery like this will prevent you from distributing the images with your scenery.

Since our example airport is in the US, we’re going to download our orthophoto from a public image server, the USGS Seamless server. For instructions on how to download the images you need from this server, see the Using the USGS Seamless Server article.

From here on, we will assume that you have either downloaded orthophotos from the Seamless server, or that you have similar files from some other resource. The advantage to using the Seamless server is that many of the image file types have their geographic coordinates embedded in the files themselves–they are GeoTIFFs or JPEG2000s.

KOJC on the USGS Seamless Server
KOJC on the USGS Seamless Server

Once you have your orthophotos saved into your custom scenery folder, click Pick Overlay Image… from under the View menu, and navigate to your image file. Assuming you selected an image with coordinates embedded in the file, WorldEditor will automatically place the image in the correct location. Now as we complete the next steps of adding objects and facades, we can use the orthophoto guide to help us place them in the correct spots.

Note: The overlay image is only a guide for use in WorldEditor and will not show up as orthophoto scenery in X-Plane.

Adding objects

With our basic data imported, it’s time to build up the airport’s objects.

For the purpose of this tutorial, we don’t want to design our objects from scratch. Instead, we will use X-Plane’s built-in objects. We will not be using the OpenSceneryX object package, as it would prevent us from uploading our finished scenery to the Airport Scenery Gateway database.

Let’s begin adding our objects. To draw an object, first find it in the library pane. Use the library drop down menu and the “Filter” field to narrow down the scope of the search (for example, by typing “tower” if you are looking for a control tower). Select an object by clicking on it in the list, which will also select the Object tool from the toolbar. You can use the mouse to drag your view around in the preview pane if you are not familiar with what the object will look like in X-Plane.

Click in the map pane to place it, or click and drag your mouse around to set the object’s heading at the same time. You can also use the vertex tool to change the heading, and use the marquee tool to drag it around (click on the cross). If you’d like, you can change the name of the object by clicking twice on it in the hierarchy pane or in the name field of the attributes pane.

Rotate an object using the vertex tool
Rotate an object using the vertex tool

Drawing facades

A facade in WED is essentially an image wrapped around a polygon at a specified height. This is used to build a simple building quickly and easily. Users specify only the shape of the building at its base, its height, and the .fac file to use.

To draw a building facade, select the facade tool from the toolbar or select a .fac file from the library pane, which will automatically select the correct tool.

Use the facade tool to trace the outline of the buildings you’d like to add. After it is outlined, give the facade a name and change its height (in the attribute pane) as needed.

Exporting a scenery package

When you have finished customizing the airport, open the File menu and select Validate. This command will check the WED file for errors based on the current export target. You can change the export target by selecting Target X‑Plane Version from under the File menu. Remember that selecting a version older than 10.0 might disable newer features, such as ATC data.

If no errors are present, select Export Scenery Pack from the File menu. The new scenery will be visible the next time you load the area in X‑Plane. If you would like to share your work with other X-Plane users, check out the section of the manual that details how to submit scenery to the Airport Scenery Gateway.

Comments Off on Airport Customization

Creating Photo-Real Paint Textures

This tutorial will walk through overlaying a photo onto an aircraft fuselage in Plane Maker. It assumes familiarity with the basic aircraft texturing techniques discussed in the Creating Basic Paint Textures tutorial.

You can download the aircraft file and images used in this tutorial here: A36_photo.zip

Selecting a Photo

The ideal photo to use as a Plane Maker texture is one taken from a 90 degree side view with even lighting across the whole of the fuselage. Beyond these requirements, be sure sure your use of the photo complies with the terms of its copyright.

For our example Bonanza, we used the photo below, with many thanks to its copyright holder Terry Shepherd:

Side view of a Bonanza A36
Copyright Terry Shepherd; used with permission.

Getting Started

Create a starting point PNG image as in the Creating Basic Paint Textures tutorial. Then, using your image editor, cut away everything from your photo except the fuselage. In Photoshop, you can use the lasso tool to do this. You will inevitably get some of the wings in the photo, but don’t worry about these for now.

In our case, this fuselage-only image looked like this:

Copyright Terry Shepherd. All rights reserved.
The A36 fuselage

This image was stretched and warped (using the Transform options in Photoshop’s Edit menu) to sit over the starting-point image of the fuselage. Note that it is not uncommon to have a large area on the top and bottom of the fuselage side views that is not covered by your stretched image. This area, like the parts covered by the wings, can be cleaned up later.

Go through the same procedure to texture the wings, stabilizers, engine nacelles, and so on. For each piece that you have a photo, you’ll need to:

  • crop a version of the original image to include nothing but that piece,
  • paste the image of that piece over its placeholder in the starting-point image, and
  • stretch and/or warp the piece to fit the area you defined in Plane Maker.

Do this for both the left and right sides of the aircraft, where necessary.

Using a layered image format like PSD will prove invaluable for making small changes during this process.

Because a top view of our example aircraft’s wings and horizontal stabilizers was not available, our example aircraft will only have it fuselage, vertical stabilizer, and engine housing textured with the photo. For the rest of the wings, we will simply use the same solid white that the body is painted with.

Touching Up the Photo

With a rudimentary version of each piece of the aircraft placed properly, it’s time to clean it up. Note that each time you save your Aircraft name_paint.png file, you can press the T key in Plane Maker to reload the texture.

Unless you have photos of the top and bottom of the aircraft, you will probably want to use Photoshop’s clone stamp tool (or an equivalent) to fill in the top and bottom of your fuselage. Because our example Bonanza has a flat underside, there was a great deal of area that needed this in our photo. Because the aircraft has a very plain, flat white texture for most of its body, this wasn’t a problem.

The clone stamp tool should also be used to get rid of the wings and any other bodies that are attached to the fuselage in the photo but are not actually part of the fuselage.

Finally, in addition to cloning for the top and bottom of the fuselage and removing the wings and other non-fuselage bodies, you’ll need to use your image editor to remove the shadows and other artifacts of uneven lighting across the body (because, of course, the X-Plane simulator will add its own shadows where it needs them.

We’ve highlighted the most prominent trouble areas in green in our photo here:

Copyright Terry Shepherd. All rights reserved.
Trouble areas in the Bonanza A36 photo

In the areas highlighted, our aircraft texture needed a lot of attention before it would look convincing in X-Plane.

A Note on Windows

If you are creating a 3-D cockpit object in a program like AC3D or Blender, you will want to completely fill in the windows in this overlay image, as the transparent windows in your cockpit object will replace this texture as needed. Since, for the purpose of this tutorial, we are not creating a 3-D cockpit object, we left the windows and made them semi-transparent.

Examining the Finished Product

Our finished images are seen below, and are also included in the completed aircraft ZIP. Our ACF file is A36_photo.acf, so our two image textures are A36_photo_paint.png and A36_photo_paint2.png, respectively.

A few things to notice about these images:

  • The textures for some pieces overrun the area laid out for them by the Plane Maker-generated starting points, but for small areas, this isn’t a big deal.
  • The white area in the middle of the first texture image is used for the gear doors and struts, which were too shadowed in our image to be usable. Instead, the white texture from the body was copied.
  • The propeller texture (located in the far left center of the first image) is simply made of a darkened slice of the nacelle texture, which itself is in the second image.
  • Since our original image was of the left side of the fuselage, the tail number on the right side had to be reversed.

Comments Off on Creating Photo-Real Paint Textures

Creating Basic Paint Textures

This tutorial will walk through the creation of a basic paint job for an aircraft file in Plane Maker. It require only Plane Maker (and the image editor of your choice) to do so–it doesn’t make use of any 3-D modelling programs.

This tutorial assumes familiarity with the Plane Maker interface, and it references the aircraft file created from scratch in the basic aircraft creation tutorial.

Introduction

Plane Maker can be used to overlay a 2-D image on a 3-D aircraft model. For this tutorial, we will apply a very simple (and ugly) paint scheme to our example aircraft.

In order to understand how the textures are applied, we will look at the example aircraft found here: Bonanza_A36_painted.zip

Creating a Starting Point

We will begin by setting up the approximate placement of our aircraft’s parts in the image which we will create. From that data, we will have Plane Maker create a PNG file that will serve as our starting point.

To begin, open the Expert menu in Plane Maker and click Visual Texture Regions. In the window that appears (shown in the image below), you can click and drag the flashing red boxes to change which area of the (currently non-existent) image will be used for each part. Move between each part of the aircraft using the tabs at the top of the window.

Texture_regions
Texture Region selection window

For now, don’t worry about modifying the positions of anything but the fuselage, wings, and engine nacelles–these are the parts of that plane that will be in the starting-point image that Plane Maker creates for us. For now, our biggest concern is making sure that none of these parts overlap one another accidentally. Note that you can (but do not have to) use the same area of the image for both the left and the right side of each part. Note also that you can check the use second texture box, which will force X-Plane to look for a second image for that part of the aircraft.

Once you get your aircraft’s parts arranged in roughly the positions you want them, close out of the Texture Region Selection window and click Output Texture Map Starting Points from Plane Maker’s Special menu.

Special --> Output Texture Map Starting Points
Special –> Output Texture Map Starting Points

Plane Maker will automatically create one or two image files (depending on whether you used the use second texture check box) in your aircraft’s folder. It will also automatically name them properly. The first image (or the only one, as the case may be) will be called ACF file name_paint.png. The second image, where applicable, will be called ACF file name_paint2.png. Note that in order for Plane Maker and X-Plane to find the image textures, they must keep this name.

Note: You will need to re-create these starting point images each time you change the aircraft’s geometry.

Here’s what our example plane’s starting-point image looks like:

The texture map starting point for the example A36 Bonanza
The texture map starting point for the example A36 Bonanza

Note that images used with an aircraft file should have dimensions (in pixels) that are a power of two. For instance, the image could have a resolution of 512 x 2048, 1024 x 1024, 2048 x 1024, and so on, with a maximum resolution of 2048 x 2048. The image should be saved as a PNG. The files that Plane Maker outputs will abide by these rules.

Creating the Image Textures

Now that the starting-point PNGs have been created, open them in your image editor of choice. While it is possible to use photos of a real aircraft to create these textures, doing so is beyond the scope of this tutorial (for information on this, see the Creating Photo-Real Paint Textures tutorial). Instead, we used our image editor to create simple textures based on solid colors.

You will probably have to go back and forth between modifying and saving your image in your graphics editor and viewing it in Plane Maker. Press the ‘t’ key in Plane Maker to quickly reload the textures displayed on the aircraft.

Here is our completed basic texture (which is also included in the aircraft package download in the introduction):

The "painted" aircraft texture
The “painted” aircraft texture

Adding a Livery

A livery is a second set of paint textures, which can be selected in X-Plane by opening the Open Aircraft dialog from under the Aircraft menu and choosing among the livery options in the bottom right box. To use an image as a livery, save it with the same name as the original paint texture (that is, as “ACF file name_paint.png”), but place it in a path that looks like this:

Aircraft folder\liveries\Name of livery\

Thus, the complete path for our example aircraft’s second livery was:

G:\X-Plane 9\Aircraft\Custom Built\Bonanza A36\livery\Labeled Parts\A36_paint.png

Compare this to the location of the default paint scheme, which was:

G:\X-Plane 9\Aircraft\Custom Built\Bonanza A36\A36_paint.png

Note that you must use the same placement of the aircraft parts in each of your liveries; that is, the fuselage, wings, wheels, etc. must all be in the same place, respectively, in each image. The livery’s name in X-Plane will be listed as the folder name, thus in our example above, the second livery will be called “Labeled Parts.”

Final Notes

Once again, you can download the completed example aircraft file here: Bonanza_A36_painted.zip

For further reading, see the Creating Photo-Real Paint Textures tutorial.

Comments Off on Creating Basic Paint Textures

Creating a Panel in Plane Maker

For this tutorial, you will need a copy of the Beechcraft A36 Bonanza created in the tutorial “Creating a Basic Aircraft in Plane Maker” or you can download the files here.

Understanding the Panel Creation Workflow

To begin, get Plane Maker running (recall that the Plane Maker application is located in the X-Plane directory) and open the Bonanza. Open the Standard menu and click Panel: 2-D. You’ll be greeted by a very plain panel background with no objects on it.

Figure 1
Figure 1

Creation of the panel is pretty straightforward. First, make sure the Instrument List is visible by clicking its tab if needed (labeled 1 in Figure 1 above). Find the instrument you’re looking for in the instrument list and click on it. For instance, in the image above, the general aviation altimeter (labeled 2) is selected. With an instrument selected, you can see what it will look like in the Preview tab (labeled 3 in Figure 1 above). Beneath this is the Description tab (labeled 4 in Figure 1), which details what the instrument does.

Taking up the center of the screen is the layout pane (labeled 5 in Figure 1 above). To add an instrument to the panel layout, drag it from the instrument list into this pane. Once there, click the instrument once to select it. With it selected, you can drag the instrument around to reposition it, or use the arrow keys to move it by very small amounts. If there is more than one instrument in the panel, guide lines will appear to which the instrument will “snap”, allowing you to align instruments perfectly.

When an instrument has been added to the panel layout, it will appear in the Hierarchy list (labeled 6 in Figure 1 above). You can select an instrument from the layout pane by clicking its name here. Additionally, you can set its status to visible or invisible by clicking the eye next to it, and to locked or unlocked by clicking the padlock.

To select multiple instruments, hold down either the Control or Shift keys and click as desired. To group instruments, select them and press the G key. Double-click an instrument to change its name.

When an instrument is selected in the layout and hierarchy panes, the Properties tab (labeled 7 in Figure 1) will display its settings. This includes which electrical bus the instrument is on, what Tool Tip (if any) will be displayed when it is moused over in X-Plane, and what lighting is used on the instrument.

Finally, in the very bottom of the window is the status bar (labeled 8 in Figure 1 above). Here, you can see the level of zoom for the panel layout pane, the position of the currently selected object, and its size (as a ratio compared to its original size).

Tips for the Panel Layout Pane

Use the = and – keys or your mouse wheel to zoom in and out in the panel layout pane. Right click (or hold the Control key and left click) on the panel and drag it to pan the view left and right. Hold the Alt key to view which electrical bus each instrument is on. Click and drag to form a box that selects multiple instruments. To delete an instrument, select it and hit the Backspace key.

Creating the 2-D Panel

To create our example panel, we found an image on the Web of a real A36 Bonanza’s panel and (loosely) based our instrument selection and layout on that. Creating custom instruments is beyond the scope of this tutorial, so we used the closest approximations to the real instruments that we could find in the Plane Maker instrument list. If you’re interested in creating custom instruments, see the Generic Instruments page of the Plane Maker manual.

Creating the Background

Before beginning the layout, you will want to create a basic version of the background panel image you will use. Plane Maker will supply a default panel image based on your cockpit setting in the Viewpoint window, but you may want a different image for a number of reasons.

For our example aircraft, we modified the default general aviation panel to make it 1600 pixels wide, with both “ends” of the panel visible (instead of only having the left side in the image). A width of 1600 pixels was selected so that the panel will be usable, albeit a little shortened, in the smallest X-Plane window available (which is 1024 x 768 pixels), but it will also look great in a large, widescreen window of, say, 1920 x 1080 pixels.

If you want to customize the panel background, you’ll want to create at least a basic version of it before beginning the layout so that you don’t have to rearrange or resize your instruments later.

Our example cockpit image, before customizing it, is here:

Figure 2
Figure 2

Panels used in Plane Maker can follow one of two naming conventions. The old convention is simply to name the file “Panel.png” (without the quotes, of course). As of version 9, Plane Maker will still find a panel named this way. The new convention, and the one you should use when creating new aircraft, is to name the image to match the panel setting in Plane Maker’s Viewpoint window.

For instance, if the cockpit setting in the Viewpoint window is set to General Aviation (as in our example Bonanza), the cockpit image will be named Panel_General.png. If it were instead an airliner, the image would be named Panel_Airliner.png.

The official names for panels are the same as in Resources/bitmaps/cockpit/-PANELS-/ and are:

  • Panel_General.png
  • Panel_Airliner.png
  • Panel_Fighter.png
  • Panel_Glider.png
  • Panel_Helo.png
  • Panel_Autogyro.png
  • Panel_General_IFR.png
  • Panel_Autogyro_Twin.png
  • Panel_Fighter_IFR.png

In order for Plane Maker to find your background, you must (re)name it using one of these conventions and save it in this folder:

[Your aircraft folder here]\cockpit\-PANELS-\

Thus, our example aircraft’s panel image had a full path of:

G:\X-Plane 10\Aircraft\Bonanza A36\cockpit\-PANELS-\Panel_General.png

After you get your layout complete, you’ll probably want to come back to this image and customize it further–for instance, to add a column of a different color. You can find the finished version of our example Bonanza panel below.

Figure 3
Figure 3

Adding the Instruments

Once your Panel.jpg image has been placed in the correct folder, it should appear the next time you open the Panel window in Plane Maker. Once it’s loaded, you can begin dragging and dropping instruments from the list into your panel.

For our example panel, we chose to use the S-Tec System Fifty-Five X autopilot. This is a complete autopilot system modeled as a single instrument in X-Plane. You can find it in the “autopilot” folder in the instrument list.

You can download the .acf file of our example A36 Bonanza with the completed 2-D panel here: Bonanza_A36_with_Panel.zip

Creating a 3-D panel

Creation of a 3-D panel requires the use of a 3-D modeling program, which is beyond the scope of this tutorial. For more information, see the 3-D Panel section of the Plane Maker manual.

Comments Off on Creating a Panel in Plane Maker

Creating a Basic Aircraft in Plane Maker

In this tutorial, we’ll walk through the creation of an airplane–specifically, a Beechcraft A36 Bonanza–from start to finish using Plane Maker. No prior knowledge of the Plane Maker software is required, though familiarity with the X-Plane simulator itself is assumed.

You can download the example aircraft referenced throughout this tutorial here: A36.zip

Choosing an Aircraft, Researching the Design

Plane Maker can be used to model a tremendous variety of aircraft. For the purposes of this tutorial, though, we suggest choosing a straightforward design to model. Our example craft is a Beechcraft A36 Bonanza.

In the course of creating the aircraft file, you will need a good deal of information on the actual plane, including its physical dimensions, engine and propeller specifications, weight, fuel capacity, fuel tank locations, limiting and recommended airspeeds, and so on. A web search should turn up this data for most popular planes.

Beginning the Project

To begin creating the aircraft, open the Plane Maker application found in your X-Plane installation directory.

When the window appears, open the File menu by mousing over it and click New. This will create a new, very basic aircraft file. Then, open the File menu again and click Save As. We will save our example aircraft in the “BonanzaA36” folder which we created in our X-Plane installation directory, and we’ll name it “A36.”

We’ll begin by setting a few basic parameters for our aircraft in order to the avoid the warning that pops up every time you save.

Setting the Aircraft’s Details

Open the Standard menu and click Viewpoint. The most important settings here are for the aircraft’s limits (found on the left side of the window in the Default tab). With the exception of the G-limits, these will not be factored into the flight model; they may, however, be used in the airspeed indicator. These limiting velocities are not hard to find, either in the pilot’s operating handbook or on the Web.

If you can’t find official G-limit values, 4.0 is a good guess for most general aviation aircraft. At G-loads more than 50% above these values, if the appropriate settings are enabled in X-Plane, structural damage will occur–probably in the form of a wing being torn off!

Setting the Weight and Balance

Next, open the Standard menu and click Weight & Balance. In the Center of Gravity section of this window you can set three longitudinal positions for the center of gravity, along with one vertical position. The center of the longitudinal positions is the default, while the outer two are the forward and aft limits. The center of gravity can be modified within these limits in X-Plane.

Beneath the Center of Gravity box is the Weights box. The empty weight, fuel load, and maximum weight can all easily be found from the manufacturer. Set these parameters now.

Now move to the Tanks tab of this window. There are 9 different fuel tanks available, each one holding a ratio of the maximum fuel. Note that the ratios must add up to 1. For our example Bonanza, we have two fuel tanks, one in each wing, each holding 0.5 of the total fuel. Position each tank’s center of gravity using the standard longitudinal-lateral-vertical positioning relative to the reference point.

Making A Fuselage

Preparations

If you are not familiar with the basic views and controls in Plane Maker you can review them in the section “Working with the Views” found in the Plane Maker manual.

Unless you have physical access to the aircraft you’re designing, you’ll want to find scaled images of the craft to use in the design. We found front, top, and left views of our A36 Bonanza on the Beechcraft website. These will be used as background images with which to align our design.

For use with the fuselage creation, crop your top and left images down to just the fuselage, being sure that the images are the same size and are both centered on the fuselage center.

Setting the Basics

With the images ready to go, open the Standard menu and click Fuselage.

body data window
Setting the body data

In the window that appears, we’ll set the Body Data section first.

The number of stations corresponds to the number of individual sections that Plane Maker will link together to form your aircraft body, with a maximum of 20. You’ll probably want to add 2 to the number of sections you had in mind to account for the two closed ends. In our case, we will use a total of 15 sections: 13 “real” divisions, which meet at a point at each end (adding 2 extra cross sections).

The number of radii per side is the number of points used on each side of the cross section. Unless your aircraft has a very simple shape to its body, you’ll probably want to use the maximum of 9.

The body radius setting controls the width of the cross-section views below. Keep this close to the actual max body radius for accuracy when placing your points, but err on the side of setting this too big so that all your points are visible.

Finally, the body coefficient of drag controls the amount of drag generated by the fuselage. An average fuselage will have a coefficient of drag of 0.1, while a very sleek one will have a coefficient of 0.05. We didn’t have any official data on this for our Bonanza, so we chose an approximate value of 0.075.

Setting the Length

While still in the Section tab of the Fuselage window, look directly above the cross section boxes. The parameters there set the distance of each cross section relative to the reference point. The reference point can be whatever you want. Many people use the aircraft’s nose. For our example, we’ll make it the aircraft’s center.

Note that negative numbers along the longitudinal line of the aircraft (like the parameters for the cross-section placement) indicate a position forward of the reference point; positive numbers indicate a position behind the reference point.

At this point, we will set the approximate distances from the reference point for each of our cross sections (as in the image below). The most important of these will be the first and last cross sections. Since our example aircraft’s reference point is its center, the forward-most point of our aircraft will be set at -13.50 feet, and the rear-most point will be at 13.50 feet. Taking these two together, we have a 27-foot fuselage. The aircraft’s official length is 27 feet 6 inches, but since we will build the housing of our propeller separately, this should be about perfect.

cross sections
Setting the approximate distances of each cross-section

With the fuselage’s length properly set, move to the Top/Bottom tab. At the bottom of the window, click Load Top Background Bitmap and select the image of the top that you worked with in the Preparations section above. Then, click the Load Left Background Bitmap button and do the same for the side image.

At this point, since the fuselage has the correct length, we need to align its two ends with the ends of the fuselage in the background images. Use the – and = keys to zoom the 3-D models out and in, and use the arrow keys to move them around.

You will likely want to return now to the Section tab to fine-tune the distances set for your cross-sections.

Setting the Radius Points

With the distances properly set, move back to the Top/Bottom tab. There, drag the radius points evenly around the fuselage visible in each of the three sections. You will likely want to use the buttons in the top right of the window to occasionally reset the cross-sections to be vertical. Note: You will likely find the Ellipse buttons (found near the bottom of the screen) helpful. Clicking this for a given cross-section will shift its points to a best-fit ellipse. To lock a point from further automatic shifting, just double-click on it (it should turn a sold black color). This may be helpful once you have them correctly established, especially the center line of each frame in the Top/Bottom tab.

Move occasionally to the Section and Front/Back tabs to check how the cross sections look from other views. You will probably find the best workflow to be something like this:

  1. In the Top/Bottom tab, match the outer points to the fuselage edges in each of the three views.
  2. Distribute the middle points evenly between the outer ones in each of the three views.
  3. Move to the Section tab and modify cross sections to conform to the shape you know they should have. For instance, with our A36 Bonanza, we knew its bottom was completely flat in the middle of the plane.
  4. Move to the Front/Back tab to fine-tune the points that are very close together.
  5. Repeat as needed.

Eventually, your points should look something like this:

When you’re finished, close out of the Fuselage window and load up your background bitmaps one at a time (using the button in the bottom left of the screen). Check your fuselage against each one. (Tip: use the Background menu to select whichever view you have loaded in the background.)

Designing the Wings

Now that our fuselage is finished, let’s move on to the wings. Open the Standard menu and click Wings.

In this window, you can specify four wings, a horizontal stabilizer, and two vertical stabilizers. The wings will be mirrored on each side, as will the horizontal stabilizer, whereas the horizontal stabilizer will of course only be created once. Other than this, each of the flight surfaces here behave identically.

Note that if you need more wing sections than what is available here, the Misc Wings window (which is also found in the Standard menu) allows you to specify up to 20 additional wing sections.

Creating the Main Wing

For our example Bonanza, we’ll use three wing sections, with each section meeting the one closer to the fuselage, in order to model the single wing of the actual aircraft. Each wing section can have two different airfoils set for it (one for the root and one for the tip, which are blended together in the center), as well as different control surfaces.

For the initial creation of each wing section, you can focus exclusively on the Foil Specs section of the window. You can enter these parameters visually if your top view scaled background image is loaded and your Plane Maker window is wide enough.

Let’s talk about these parameters a little.

The semi-length parameter sets the length of each side of the wing as measured through the center of the wing, from the root to the tip, 25% behind the leading edge.

The root and tip chord set the width of the wing at the root (closest to the fuselage) and tip (farthest from the fuselage), measured from the leading to the trailing edge of the wing.

diagram
Lateral-longitudinal-vertical lines illustrated

The sweep parameter sets the angle (in degrees) that the wing is angled back.

The long, lat, and vert arm parameters set the wing’s position relative to the reference point. See the diagram to the right illustrating the longitudinal-lateral-vertical positioning system.

The dihedral parameter sets the angle (in degrees) that the wing is angled up. For instance, in the image below, each of the 3 wing sections used has a dihedral set between 5.5 and 6 degrees, causing the wings to angle slightly up.

dihedral
Front view of a wing with a dihedral of approx. 6 degrees
Example Wings

The image below shows the foil specs used to create our innermost wing section in the G36 Bonanza. Note the 15.8 degree sweep, which creates a relatively sharp backward angle for the section.

base wing
Foil specifications for our base wing

This creates a wing section that looks like this:

base wing
The base wing (in dark black)

The next image shows the foil specifications for our middle wing section, entered on the Wing 2 tab. This section is significantly longer than the base one–it has a semi-length of 12.5 feet, compared to 2.6 feet. Note also that, unlike the base wing, our mid-wing has a lateral arm specified. This moves the wing’s root out away from the body, so that it meets up with the base wing’s tip. You can have the section “snap to” the previous section by selecting Right Wing 1 from the drop down box in the top right corner of the dialog, instead of setting the wing section’s location manually using the long, lat, and vert arm boxes.

mid-wing
Foil specifications for our mid-wing

This creates a wing section that looks like this:

mid wing
The mid-wing illustrated

Click on the Wing 3 tab to finish the tip of the wing with the specs shown in the image below.

wing tip
Specs for the tip of the wing

Creating the Horizontal and Vertical Stabilizers

The horizontal stabilizer is specified just like the previous wing sections; the only difference is that it will have a much higher value for its longitudinal arm than the previous wings.

The vertical stabilizer, unlike the other wing sections here, is not mirrored on each side of the aircraft. Other than this, and its default dihedral of 90 degrees (so that it sticks straight up), you can set it just like the previous wings.

Setting the Airfoils

With your wings created, close out of the Wings window. Open the Expert menu and click Airfoils. In the Airfoils window, go to the Wings tab. Here, you can set two versions of both the root and the tip airfoil for each wing section. The foils on the left are for the root side of the section, and the ones on the right are for the tip side, as seen below.

airfoil
The root and tip side of the the wing’s airfoil

Plane Maker will interpolate between these two foils in the middle of the wing section. The top set of foils in each wing’s box specify the low Reynolds number version of the foil; the bottom set specify the high Reynolds number version.

The following two pages may be useful in determining what airfoils to use in your wing:

To set an airfoil, click the gray box to the left of it to open your X-Plane Airfoils directory folder. Select an airfoil from among the list then click the Open Airfoil button.  Remember that our wing is made up of three separate sections, so you will want to choose the same “wing root airfoil” for all four boxes for Wing 1 and Wing 2.  Set the boxes of Wing 3 to the “wing tip airfoil” as it functions entirely as our wing’s tip.

Setting the Control Geometry

With the wings and their associated airfoils set, it’s time to set up the control surfaces. To do this, open the Standard menu and click Control Geometry. In the window that appears, a number of possible control surfaces can be specified, from ailerons to elevators to rudders to speedbrakes to flaps. Each of these work in a similar way.

single control surface

In the image above, the parameter on the far left sets the control surface’s root-side width as a percentage of the root width of whatever wing section it is placed on. Thus, if this were set at 0.50 and it were used in a wing whose root was 5 feet wide, the control surface would have a root width of 2.5 feet. To the right of the root width is the tip width, also specified as a percentage of the tip width of whatever wing it is placed on. These two parameters are the same on each of the control surfaces available. Start with an amount close to the default recommended  by the mouse over text.

To the right of the size parameters are the parameters controlling how far the surface can move. This will be different for each aircraft, but again start with the defaults recommended.  You may need to return to this window after your first test flight to fine-tune it.

With this knowledge, specifications for ailerons, elevators, and rudders are all fairly straightforward. At the bottom of the Control Sizes box is the control surface type setting, which modifies how effective the surfaces are in X-Plane. Surfaces which are corrugated with gaps are least effective.

flap controls
The flap settings

In the right half of this window are the flap settings, as seen in the image to the right.

Here, you can set the root and tip width ratios like the other control surfaces. You can also specify the flap type and the aerodynamic coefficients for each flap. Plane Maker will calculate the coefficients of lift (Cl), drag (Cd), and moment (Cm) based on the size of the flap, but these may be modified manually.

Beneath the coefficients, you can set the flap deflection time, the number of detents (or stop points), and the deflection at each detent. In our example, the maximum flap deflection is 30 degrees, so that is set in the last box. The first box is 0 for no deflection, and the remaining boxes in between are spaced evenly (in our case, 10 and 20 degrees).

For our example Bonanza, we specified one aileron type, one elevator, one rudder, and two flaps. We now need to add them to our wings.

Adding the Control Surfaces to the Wings

In order to see the control surfaces once we add them, open the Special menu and click Show with Still/Moving Controls. This will make the control surfaces move as we add them, so that we’ll better be able to judge where they are.

Now, open the Wings window from the Standard menu once again.

ailerons and flaps
The Element Specs box with its various elements highlighted

In the Element Specs box for each wing section, you can control:

  • the number of pieces that this wing section will be divided into (using the parameter highlighted in red in the image above),
  • the incidence, or upward angling, of each “piece” (using the parameter highlighted in blue), and
  • the control surface (if any) present in each “piece” (using the parameter highlighted in orange).

For instance, in the image above, the middle section of our main wing is divided into 9 “pieces,” all with zero incidence. The first four pieces (the four closest to the fuselage) use the flap 1 control surface, and the last 5 pieces (the five farthest from the fuselage) use the aileron 1 control surface. Both of these control surfaces were specified in the Control Geometry window and were fine-tuned after seeing how they looked here.

Set your control surfaces as you need them for each wing section. Our Wing 1 had 8 sections with the flap 2 box checked for all but the first piece (where the wing would attach to the fuselage). Wing 3 does not move in our Bonanza so despite having multiple pieces, no control surface boxes are checked. The horizontal stabilizer is where the elevator boxes are checked and the vertical stabilizer has the rudder boxes checked.

Adding the Engine

With the wings and their associated control surfaces finished, it’s time to add an engine. To do this, open the Engine Specs window, found in the Standard menu.

When the window opens, it will be in the Description tab. Let’s talk about the Critical Altitude box first. If your aircraft has a turbocharged reciprocating engine or a “down-rated” jet or turboprop, use the critical altitude parameter to set the maximum altitude at which the engine can put out its maximum allowed thrust. If the engine has a Full Authority Digital Engine Control (FADEC) system, check the appropriate box. Our Bonanza has neither, however, so we will leave these alone.

In the Prop Engine Specs below, you can set the engine’s maximum allowable power. For our example A36 Bonanza, this is 300 horsepower. Beneath this control are the various engine RPM settings. Note that the top of green arc and redline parameters should probably be the same. If it is a fixed-RPM engine, these should be the RPM the engine runs at. Also, the bottom of green arc should be set to zero for fixed-RPM engines.

prop engine specs
The prop engine specs box

The rest of the prop engine settings are self-explanatory. Once these are set, move to the Location tab. Here, you can set the details of the engines and propellers, including how many there are, their type, location, RPM, etc. The parameters available here will vary depending on what type of engine you set. At the minimum, you will set the location in longitudinal-lateral-vertical arms for the center of thrust (which, for a propeller based craft, is just the center of the propeller).

Unless you have multiple transmissions or propellers, you can ignore the Transmission tab. Unless you have specific numbers on the engine’s specific fuel consumption or the propeller’s dimensions and angle of incidence, you can safely ignore the rest of the tabs here, too.

Creating an Engine Nacelle

If you created the aircraft fuselage like we did in the example Bonanza, you left off a few inches from the fuselage for the propeller and its housing. We’ll add this now around the propeller.

Open the Standard menu and click Engine Nacelles. In the window that appears, check the aircraft has a nacelle over this engine box, found near the top of the screen. From there, you can design the nacelle just like you did the fuselage. This time, though, the distances will be relative to the engine’s center of thrust, not the craft’s reference point. In our example Bonanza, we needed 6 station and 6 radii per side to model the propeller housing, with a body radius of 0.07 feet.

While designing the nacelle, you will likely find the Ellipse buttons (found near the bottom of the screen) helpful again. Clicking this for a given cross-section will shift its points to a best-fit ellipse. To lock a point from further automatic shifting, just double-click on it (it should turn a sold black color).

When you’re finished creating the nacelle, you should see the aircraft really beginning to take shape. All that’s left is to create the landing gear!

Creating a Landing Gear

Open the Standard menu and click Landing Gear. In this window, you can add up to ten different gears. For each gear, you must specify (listed in order from top to bottom in the window):

  • its type (e.g., skids, single wheel, double wheel in a lateral line, etc.),
  • its position (in longitudinal-lateral-vertical feet from the reference point),
  • its latitudinal and longitudinal angles when extended and retracted (where applicable),
  • its leg length,
  • its tire radius and width,
  • its steering ability,
  • the degrees that the wheels spin when retracting,
  • the distance that the strut compresses when retracting,
  • the time it takes to retract or extend the gear,
  • whether or not it brakes, castors or has fairing.

For our example Bonanza, we created 3 landing gears with the parameters shown below.

landing gear

To finish the gear, you must go to the Gear Data tab and enter the specs for the wheels and tires, as shown below.

wheel specs
Adding wheel details on the Bonanza A36

The Test Flight

At this point, you aircraft is ready to be flown in X-Plane. It won’t be pretty (we haven’t added any overlay graphics or objects), and it won’t have any instruments in its panel, but it should fly just fine. Load up X-Plane, fly the plane around a bit to see how it handles, then return to Plane Maker to tweak it as needed.

Good luck!

Further Reading

For information on creating a panel for this aircraft, see the panel creation tutorial. For information on adding a paint job to the aircraft, see the paint texturing tutorial.

The latest version of the Plane Maker manual is always available online.

Comments Off on Creating a Basic Aircraft in Plane Maker

Using Decals to Add Detail To Scenery

Decals are overlay textures that sit on top of a regular albedo (day-time) texture to add high-frequency, high-res detail to an existing texture.

A typical use of decals might be:

  • To add a grassy leafy pattern to a field or airport grass texture.
  • To add a gravel pattern to a runway or road.

Decals work by modulating the textures they overlay. Decals typically repeat much faster than the base texture, but may also be used at a very low frequency to add subtle changes in the overall brightness of the terrain across a very large area, helping to disguise repetition.

Decals contain high frequency pixels at high res; when viewed from far away, the entire decal blends together into a constant color/grayscale. The decal shader ensures that when a decal has become a solid tone (because it is far away) the net result is the same as your underlying albedo. In other words, as you move away from the decal, the decal blurs into “no effect”. This means that you can generally apply decals and not worry about the effect on the far-away view.

Decal Texture Formats

A texture typically has two decals together:

  • One RGB decal in the color components of the texture.
  • One alpha decal in the alpha channel.

If you do not need the RGB decal, you can save VRAM by having a decal with only alpha (this is done using a gray-scale no alpha png on disk). If you need the RGB decal but not the alpha decal, there is no VRAM savings (the alpha channel is included in VRAM no matter what) so you might as well use the alpha channel for something.

Decal Application

Decals are applied by specifying a DECAL command in the text file for the art asset. (Decals are allowed in any file that uses the Standard Shader, including .ter, .pol, and .net files.) The DECAL command specifies the texture to use and the mixing parameters that control application.

Examples

The following examples are based on some of Albert’s and Sergio’s terrain textures, and attempt to show some of the possible ways decals might be applied. They are not intended to be perfect, and make use of decal textures that Alex happened to have lying around! The examples also include some suggestions for normal map usage. For the purpose of these examples, the terrain files were applied to flat, horizontal mesh – mainly for convenience!

Example 1

The first example is based on Albert’s rock_cld_hill_d.png albedo (as far as we’re concerned, “albedo” is just another name for “daylight texture”).

Here is a small section of it, in it’s basic form:

Albedo_only

This is the basic terrain file:

A
800
TERRAIN

BASE_TEX   ..textures/dev/rock_cld_hill_d.png
BORDER_TEX  ..textures/border/apt.png

PROJECTED  1500  1500
NO_ALPHA
COMPOSITE_BORDERS

First, we will use the DECAL command to apply a grayscale detail texture. DECAL is the simplest form of X-Plane decal, and has the following characteristics:

  • It can only every apply a greyscale decal texture. X-Plane greyscale decals are applied using a blending mode similar to Photoshop’s “hard light” mode.
  • The decal is applied evenly across the entire area of the albedo.

DECAL has just two parameters: a scale ratio, and the texture file name.

DECAL 25.0  ..textures/soil/DECAL_stony_dirt.png

Adding this line to the file means that we will apply DECAL_stony_dirt.png at 25.0 x the frequency of the albedo, in other words, it will repeat every 60 metres. (Note: the decal texture does NOT need to have the prefix DECAL – I just happen to use that convention).

This is the result:

Rock_albedo_plus_DECAL

In some cases, a simple, homogenous greyscale decal like this will be enough. In our example, however, the albedo contains patches of vegetation. It would be nice to apply a different decal to the vegetation, instead of DECAL_stony_dirt.png. To do this we can use either DECAL_KEYED or DECAL_PARAMS, the other two types of X-Plane decal. There are two ideas we need to understand first:

  1. Although we will be using two separate decal images, they will both be squeezed into a single texture file! By using a combination of one RGB decal and one greyscale decal, we can save VRAM by putting them both into a single RGBA file. The greyscale image goes into the alpha channel. This means, of course, that only one of our two decals will be in colour, but in practice, there are many cases where greyscale can be very effective. Both DECAL_KEYED and DECAL_PARAMS reference only a single texture file, therefore, even though they let us use two decal images. There is a restriction, however: both images are applied at the same scale. In other words, they will both cover exactly the same area of terrain.
  2. We control exactly which decal gets applied to which areas of the albedo by using a key. A key is a variable which tells the shader how strongly to apply a decal to a given pixel of the albedo texture. DECAL_KEYED uses a single key to control both the RGB and the greyscale decals, while DECAL_PARAMS uses two keys, one for each decal. Each key has four controls: R, G, B, and A. By tuning these controls, we can apply a decal more aggressively to some pixels than others.

Let’s continue with our example by removing the simple greyscale DECAL, and replacing it with a DECAL_PARAMS. We will be using an RGBA decal texture which contains an RGB “vegetation” decal, and a greyscale “stony_dirt” decal – in fact, the greyscale decal is exactly the same image as the one we used before, the only difference is that this time it lives in the alpha channel of an RGBA texture instead of being a discrete file of its own:

A
800
TERRAIN

BASE_TEX   ..textures/dev/rock_cld_hill_d.png
BORDER_TEX  ..textures/border/apt.png
PROJECTED  1500  1500
NO_ALPHA
COMPOSITE_BORDERS

DECAL_PARAMS  25.0  0.5       -3.5  0.0  -3.5  3.0      2.0  -2.5  2.0  0.0    ../textures/loveg/RGBA_DECAL_shrub_dirt_sdry3.png

What are all these parameters?

  • The first parameter is the scale ratio, relative to the albedo (BASE_TEX), exactly the same as it is in the DECAL command.
  • The second parameter is the “dither ratio”. It controls the relative influence of the albedo and the decal on composite border dithering.
  • The next four parameters are the controls for the RGB decal’s key.
  • The next four parameters are the controls for the greyscale decal’s key.
  • The last parameter is, of course, the decal texture file name.

How do the parameters get these values?

We set the scale ratio as before, at 25:1, so that the decals both repeat every 60 metres.

We set the dither ratio to 0.5. This means that the albedo and the decals will have roughly the same influence on the shape of the rendered borders. Higher values favour the decal. This means that if, like in this example, the decal is of higher frequency that the albedo, increasing the value of this parameter will make borders more “finely-grained”.

This is where it gets a  bit more complicated!

Looking at the albedo texture, we observe that the rocky parts are mainly grey and relatively light in colour (ignoring baked shadows for now). On the other hand, the vegetation is mainly green and rather darker than the rock. (This statement is clearly an approximation, but is accurate enough for our purposes.)

Therefore, by tuning the RGB decal’s key to respond to darker, predominantly green colours, the areas of vegetation will receive more of our RGB decal, which is conveniently a sort of “shrubby” image.

In a similar fashion, by tuning the greyscale decal’s key to brighter, grey tones in the albedo. those areas will receive more of the greyscale decal – our “stony dirt” image from before.

The actual values for the two keys are usually found by experiment, and do not follow any particular rules or equations.  Experimentation is probably the best way of getting a feel for the controls, but this is how I arrived at the values in our example:

The second key (the one controlling the greyscale decal) is a bit more obvious that the first one, so we’ll start with that. We want the rocky decal to be applied only to bright areas, so we set high values for R (=2.0), and B (=2.0). However, we don’t want it to respond to green (we don’t want rocks on our vegetation) so we set a low value for G (=-2.5). As mentioned at the top of this page, the exact function of control A depends on what other shader tricks we’re using in the .ter file. In this case, it is simply a constant value which gets added to the R, G and B values. Basically, the greater the value of A, the more of that decal we will get. So in the case of our greyscale decal key, we set A to zero, because we only want to see the decal on bright colours. If we were to set a higher value for A, we would see the decal regardless of the colour of the albedo!

Now let’s look at the first key, the one which controls our RGB “shrub” decal. In contrast to the greyscale decal, we want to see the RGB decal on both light and dark parts of the albedo – provided they are greenish. Therefore, we start by setting a high value for A. Doing this will draw shrubs over everything, so we must now tune out those areas we want to be shrub-free, by reducing the values of both R and B to -3.5.

The reason why some of these values are greater than 1.0 is that in order to get a reasonably sharp transition between regions of vegetation and regions of rock, we have to exaggerate the effect of the tuning controls. The actual difference in tone between a “veg” pixel and a “rock” pixel is generally pretty small, so we need to crank up the controls in order to get some “grip” on the albedo. The final key values are clamped between 0.0 and 1.0, so “overdriving” the key values will not cause artefacts in actual visible textures.

Here is the result:

Rock_albedo_plus_DECAL_PARAMS

Here is the same decal applied to a different albedo (sparse_cld_steep_D.png) with exactly the same parameter values:

Steep_&_DEC_PARAMS

To return to our first example, let’s now try adding a normal map. First, we’ll use a normal map that was originally designed to suggest rough, open grassland. It was made by hand-painting a greyscale height-map in Photoshop, using a soft-edged pen to create hummocks and clumps of grass, and basic noise to add “grit”. This was then baked into a normal map in Blender. Although it is doesn’t match the albedo, it still adds a nice sense of richness and depth to the terrain, and by adjusting the scale, quite a satisfying effect can be achieved:

Rock_albedo&DECAL_PARAMS&mfNML

Our .ter file now looks like this:

A
800
TERRAIN

BASE_TEX ..textures/dev/rock_cld_hill_d.png
BORDER_TEX ..textures/border/apt.png
PROJECTED 1500 1500

NO_ALPHA
COMPOSITE_BORDERS

DECAL_PARAMS 25.0 0.5 -3.5 0.0 -3.5 3.0 2.0 -2.5 2.0 0.0 ../textures/loveg/RGBA_DECAL_shrub_dirt_sdry3.png

NORMAL_TEX 6.0 ../textures/loveg/clumpy_turf5_NML.png

Changing the scale of the normal map (from 6.0 to 11.0) creates a slightly different effect:

Rock_albedo&DECAL_PARAMS&hfNML

General Observations Regarding Decals and Normal Maps in the context of terrain

The following points are based on the results of tests so far conducted by the author (Alex) and on some more general resource-management considerations.

Effective scaling

It seems that best results are obtained when the scale ratios between individual elements within a terrain definition is not “too large”. If the scale ratio between one element and the next-closest-in-scale  exceeds a value in the region of 100 – 150, it is difficult to make them look integrated. Instead, they are likely to look like independent, unconnected layers, which is generally not desirable. An effective strategy for combining multiple elements in cases where the scale ratio between the largest and smallest is great seems to be one of adding an additional element of intermediate scale. For example, if a 10 x 10 m decal is applied directly to a 4000 x 4000 m albedo, the effect will probably not be good, since the scale ratio is very large: 400.0. However, adding a normal map of an intermediate size, say, 100 x 100 m,  will help to bind the decal to the albedo, because the largest relative ratio between _successive_ elements is now 40.0:

Element       Size (m)      Scale Ratio     Relative Ratio
Albedo       4000 x 4000         -   
Normal map    100 x 100         40.0             40.0 
Decal          10 x 10         400.0             10.0

It is this relative ratio which appears to be critical to the effectiveness of the terrain. The exact order or type of the elements seems less critical. For example, an alternative strategy in the above case might be to use a 100 x 100 m decal and a 10 x 10 m normal map.

Realism versus Impressionism

In my earlier experiments, I took a literal, realistic approach to design, choice, and scaling of decals – I attempted to match their size and content as closely as possible to the real world. However, results seem to suggest that, in many cases, a looser, more impressionistic approach can be as – or more – effective.

For example, it is possible to use a “park grass” decal to suggest much rougher terrain simply by reducing its scale ratio (thus increasing the area it covers). Similarly, a normal map designed to suggest a field of boulders might be used at a smaller size to represent fine scree.

Arguably, a truly accurate effect is beyond the scope of our system, and would require a disproportionate allocation of resources to make it work. However, I’m of the opinion that by adopting a more impressionistic approach, really good results can nevertheless be achieved, without obvious compromise of realism. In the previous section’s Example 1, a greyscale decal representing loose, stony ground is applied to a sheer rock albedo. Even though it is not strictly speaking realistic, it nonetheless adds interest and richness to the terrain. That particular example is probably taking this principle a bit too far – a more appropriate decal would make for a more realistic effect – but in terms of our visual priorities, it is suggested as a potentially acceptable method by which to add detail to our terrain reasonably quickly.

Comments Off on Using Decals to Add Detail To Scenery