FSX KML Tutorial

From FSDeveloper Wiki
Jump to: navigation, search

Introduction

This is the tutorial for FSX KML.

FSX KML is a freeware scenery design tool for Microsoft Flight Simulator X (FSX).

Support Forum

You can discuss FSX KML at the fsdeveloper.com FSX KML forum. This is the best place to ask support questions about FSX_KML since other FSX_KML users (as well as the author) can answer your questions.

Creating land class tiles

Land class tiles are approximately 1.2 square kilometers in size. You can use land class tiles to cover vast areas of the FSX world with the appropriate land class coverage.

FSX KML will process your land class polygons in the order they appear in the KML thus allowing "layering" of land classes.

Say you want to create a large rain forest area with a small town in the middle

In Google Earth

  • Draw a polygon representing the forest
  • Draw a smaller polygon inside the forest which represents the town
  • Save the KML file

In FSX KML

  • Open the KML file
  • Tag the forest polygon with LandClass_TROPICAL_RAINFOREST
  • Tag the town polygon with LandClass_SMALL_CITY_SUBURBAN_NON_GRID_WET

Creating land class polygons

Unlike land class tiles, land class POLYGONS can be any shape and size.

Creating water class tiles

Like land class tiles, water class tiles are approximately 1.2 square kilometers in size.

You can use water class tiles to classify inland and ocean water bodies.

Creating coastline

Procedure

Decide what you are trying to show, whether you are adding beaches, correcting the coastline shape or adding more detail to the rather jagged default coastlines. Try to avoid using too many vertices when you draw shapes. Some users have reported problems with Google-Earth crashing when they have drawn shapes continuously rather than clicking each vertex.

A note about tagging

Tags can be added in either Google-Earth, or FSX_KML, each has "considerations":
Google-Earth:

easier to make a spelling mistake; but:
making corrections  in GE after compiling & testing makes amending easier in larger projects.

FSX_KML:

Tags available as a drop-down list (though it is very long)
Quicker for smaller projects.

Begin:

  • Google Earth: draw the terrain (eg. Beach). Tag with LandClassPoly_Tan_Sand_Beach
  • Duplicate the shape (copy-paste) if the default coastline needs correcting. Tag with Exclude__Shorelines (note the double underscore).
  • Draw a new coastline using Poly-line, tag with Shorelines_Generic_Ocean. Note; shorelines must be drawn clockwise around the water shape. Otherwise- reverse vertices in FSX_KML. This is to prevent waves breaking from the land to the water.

Adding water excludes

Necessary if there is water in the wrong place. If so, you need to create an exclude shape to remove the water texture. The whole 1.2km tile is likely to be removed however. Take a printscreen in FSX top-down view (F12) to see where a new water poly should be drawn.

  • Draw a new shape for water from the coastline far enough out to sea to cover the errant land square. The coastline shape will probably use lots of vertices, but there may be only one or two out to sea.
  • Tag with:Hydro_Polygon_Default_Perennial

Adding land excludes

Often not necessary because water polygons are always drawn over land in FSX.

Creating rivers and lakes

Procedure

Draw the river in Google Earth (GE), save the KML, load into FSX_KML and choose a tag if you haven't already done so in GE. Longer Rivers will be more manageable if the shapes are drawn in sections, perhaps of 30-50Km lengths. Be very careful to line up additional shapes with previous ones so there are no gaps. Zoom in very close in GE(turn mouse wheel) to check these.

It may be more convenient to hide any joins between shapes under bridges, or in rocky rapids.

Simple Rivers and lakes

Use the tag: Legacy_LandWaterMask_Water_NoFlatten this doesn't require any vertex height (above mean sea-level) data. The texture looks generally good but depends on a decent mesh level because this shape will cling to any land mesh beneath.

Braided rivers

These have a series of islands in mid-course, typically found in mature, slower flowing rivers in flatter landscapes or river deltas. These braids (islands) can be made in 2 ways: either:

  • start shapes across islands so that the river shape is rather like a string of letter Ys on their side.
  • draw the river's bank shape. Then draw a series of island shapes and tag them with "Polygonhole" Make sure that they are listed AFTER the river shape in FSX_KML.

In practice, you may find yourself using a combination of these techniques.

If there are many river islands, then it's easier to put them in a sub-folder in GE, then tag the folder with Polygonhole. As long as the river is listed immediately above the hole folder, then it will work correctly in the sim.

River braid.gif

Note: FSX_KML "reads" the list of shapes from the top first, downwards. The last shape to be read, is laid over all of the others in FSX.

Read the section "Creating Islands".

Rivers and slope data

Rivers contain water that flows downhill, usually towards a lake, sea or ocean. FSX hydro polygons contain height data which can present some problems for the designer to solve . Short rivers may only need the altitude data for the whole shape in the Vertex tab of FSX_KML. Longer rivers can be built with a series of shapes, each with a small difference in altitude. Some designers have had success with this technique; the possible drawback is that some "pilots" may find the steps if they favour floatplanes and want to land in your river.

A technically neater method requires some slope data so that the river's shapes are not horizontal. To do this requires a bit of Trigonometry, which could even be calculated in a spreadsheet program. Distances can be measured in GE, height values can be found there also, otherwise fly to that location in the Sim, then in slew mode, land (press F1) and read out the height value. The aim is to derive two slope values X & Y. Presumably, if the river flows East-west, then you'd only need the X componant.

Creating islands

Islands are created by cutting holes out of water polygons using the POLYGONHOLE tag.

Lets say you want to create a lake with an island:-

In Google Earth

  • Draw a polygon representing the lake
  • Draw a polygon inside the lake that represents the island
  • Save your KML file

In FSX KML

  • Open the KML file
  • Tag the island polygon with a water polygon tag, eg Hydro_Polygons_Generic_Lake_Perennial
  • Set the elevation of your lake, click the vertices tab, then the edit button, then the "Set Elevation" button and enter the elevation of the lake
  • Tag the island with the POLYGONHOLE tag

Important:
Polygon holes must be placed immediately after the polygon they operate on. In other words, the polygon hole is associated with the preceding polygon. Additionally the polygon and polygon hole must be in the same KML folder.

Direction of polygons

  • The SDK tool Shp2Vec requires that polygon holes are drawn in the opposite direction to polygons.
  • If you are using Google Earth, all polygons are written to the KML file in an clockwise direction irrespective of how they were drawn. FSX KML has the build option "Automatically Reverse Points In Polygon Holes" which will automatically reverse the direction of polygon holes. This is on by default because it is assumed most users will use Google Earth to create their KML files.
  • If you have not used Google Earth to create your KML file you may need to manually reverse the direction or your polygon holes. You can use the "Reverse Points" button to do this in FSX_KML. Also make sure you turn off the build option "Automatically Reverse Points In Polygon Holes".

Related forum posts

http://www.fsdeveloper.com/forum/showthread.php?t=5516

Creating roads and moving traffic

In Google Earth

  • Draw a polyline to represent the road.

If your road is going to have "one way" traffic then the traffic will travel from the start of the line (1st point you draw) to the end of the line (last point you draw)

  • Save the KML file

In FSX KML

  • Open the KML file
  • Tag the polyline with a road tag, eg Roads_Concrete_2_Lanes_Divided_Median
  • Copy the polyline and tag it polyline with the FreewayTraffic tag

Note: This will give you traffic traveling down the centre of the road. If you want two way traffic, you can duplicate the line twice in GE, then move each one to one side or the other (depending on which side of the road they drive on). One of then will need reversing otherwise both lanes will drive in the same direction.

Creating bridges

Related forum posts

Extrusion bridge sample can be found here http://www.fsdeveloper.com/forum/showthread.php?t=5516

Creating a bush landing strip

Standard airports in FSX always appear flat and without sloping runways. But there is an easy way to create sloping bush landing strips using land class polygons.

In Google Earth

  • Draw a polygon that will represent a grass clearing
  • Draw a smaller polygon inside the first one that will represent the dirt landing strip.
  • Save the KML file

In FSX KML

  • Open the KML file
  • Tag the 1st polygon (the grass polygon) and tag with LandClassPoly_Grass

Since FSX will draw grass with a higher priority than dirt, we need to make a hole in the grass so that our dirt will show through.

  • Highlight the 2nd polygon (the dirt landing strip) and click the copy button. Tag it with PolygonHole.
  • Tag the 3rd polygon with LandClassPoly_Dirt

When you're done, you should have the following polygons in your KML file (and in the order shown below):

  • Polygon1 - LandClassPoly_Grass
  • Polygon2 - PolygonHole (same shape as polygon3)
  • Polygon3 - LandClassPoly_Dirt

Placing scenery objects

To place scenery objects you must use google earth to draw a polyline in of the area that you want your building in. Save this as a kml and import it to FSX KML. When choosing tags use one of the scenery object tags. Example: to place a skyscraper you could use 'SceneryObject_LibraryObject_agn_highrise02' as a tag. Then build as normal and play FSX!

Excluding scenery objects

Creating exclusions for vector based scenery

Because your scenery is added to the existing FSX scenery it is important to exclude existing scenery features that are replaced by your new scenery.

For example, if you have created an improved version of a river using water polygons you will need to exclude the existing water polygons in the FSX scenery otherwise they will clash visually with your new scenery.

For example, to exclude water polygons:-

  • Draw a polygon that covers the area you wish to exclude
  • Tag the polygon with Exclude__WaterPoly

Flattening terrain around an airport

In Google Earth

  • Draw a polygon
  • Save the KML file

In FSX KML

  • Open the KML file
  • Tag the polygon with the Airport_Backgrounds_Flatten_MaskClassMap_ExcludeAutoGen
  • Set the elevation of the polygon to the elevation of the runway. You can do this by clicking the Vertices tab and then clicking the Edit button. Then click the Set Elevation button and enter the elevation of the runway.