Howto:Place 3D objects with the UFO

From FlightGear wiki
Revision as of 17:44, 1 January 2010 by Webmaestro (talk | contribs)
Jump to navigation Jump to search

The UFO aircraft is a superb tool for placing a new (or old) 3D object at any arbitrary location in the scenery with just a few clicks of the mouse.

Placing objects in the scenery is a really easy way to contribute to the FlightGear project. It doesn't require any programming knowledge, and you can contribute something valuable in 15 minutes.

Below is an overview of placing, editing, & saving objects using the UFO. You can get a brief overview of the movement and editing commands by pressing ? while flying the UFO.

Choosing your object

The first thing you need is a 3d model to place in the scenery. The FlightGear Scenery Database ( maintains a huge library of generic models, which will have been included in your FlightGear installation.

If you have created your own model you should save it in a subdirectory of your FG root folder. Two options seem reasonable, although others are possible as well:

a) Save it in the directory Flightgear/data/Models/. That is the standard directory where the UFO will go when you press the Space bar. Let's say you have created a CAT III marker, called catii-iii.xml. In this example, we create a subdirectory Flightgear/data/Models/Tabu/ and save our catii-iii.xml there. The downpoint: The directory Flightgear/data/Models/ is the place where all shared models from the FG Scenery Database are saved and as your universe of own models grows, you might confuse both.

b) You can also save your own models in an other subdirectory like Flightgear/data/mymodels (or any other name). Or if they are shared models which have only one fixed position, like the KSFO terminal, you can save them in the respective subdirectory of the Scenery folder, e.g. Flightgear/data/Scenery/Objects/w130n30/w123n37/mymodels (or directly in w123n37). To browse objects anywhere on your computer, press l when using the UFO.

If creating your own object, make sure it is the correct size! In Blender, units are meters and the Caliper script may help. Note that you should not use Google Earth to determine the correct size. See here and here.

Selecting the ufo

Placing objects with UFO html m49fbed81.jpg

Now start Flightgear, and choose UFO as your aircraft.

Placing objects

Once Flightgear has been started, fly with the UFO to the place you want the model to be positioned.

Note that you should not use Google Earth to determine the correct position due to licensing problems. See here and here.

Placing objects with UFO html 5fa8d7b1.jpg

Let's say we want to position the catii-iii.xml object at the end of a taxiway. We stop the UFO just above this intersection and press the space key, a Select Model window will open up where the contents of the Flightgear/data/Models/ directory will be shown (or press "L" and you can go to any desired directory). Select your model from this list, then close the window. The selected model path/name will be display in green text at the bottom left of the FlightGear screen.

Placing objects with UFO html m184fb381.jpg

To place the object, simply left-click on the position that you want to place it. By default it is placed completely horizontal and rotated to point North. It will probably not have the correct orientation and it will be partly covered by the surrounding terrain, but we can adjust that.

Placing objects with UFO html 12ee70a1.jpg

Rotating objects

Fly closer to the ground with the UFO, so that you can see it better.

Now press TAB (or Ctrl-I), and use the resulting sliders to adjust the latitude/longitude/elevation/heading of the model. NB: "Pitch" and "roll" will not be saved, so using them might be fun, but won't help eventually.

Placing objects with UFO html 439816e9.jpg

See the UFO from the 'White Project' of the UNESCO page for more information on the UFO command keys and exported file locations, or press ? while in FlightGear.

Deleting objects

There are three different ways to three different situations in which which you want to delete an object:

You want to delete the last object that you placed in this session:

Press the backspace button.

You want to delete an object that you placed in this session, but you have placed one or two models after it:

That means that it is no longer active. Activate it by placing one more model on the object you want to delete, press the backspace button. Result: The model you want to delete starts blinking, which tells you that it is active.

You want to delete an object that is already saved in the corresponding .stg file and you don't know where it is:

You don't know the filename: The model you want to delete is probably a shared model. You find it in the scenery database. Now you know the model's file name (e.g. or Office26x22.xml).
You still need to know where you find it. Place any model on that building and press d to know in which file you find it (see Exporting the result below). If there are several objects of that type and you want to delete only one of them, find the one closest to the coordinates of your model placed on top.
Open the .stg file, delete the whole model entry (see Exporting the result below). Done.

Exporting the result

Now that the model is correctly positioned, press the d key to dump the model position data to the terminal. A few lines will be printed on the console, providing the necessary orientation data.

Placing objects with UFO html m4cf0cbf7.jpg

The most important lines are the last ones:

# e000n50/e008n50/3089154.stg 
OBJECT_SHARED Models/Tabu/catii-iii.xml 8.57928135 50.03667992 105.9972 111.1

The first line identified the location of the scenery file for the object. The OBJECT_SHARED line indicates the objects name, longitude, latitude, altitude and orientation. This can be read by FlightGear itself and can be (submitted) to the FlightGear Scenery Object Database.

You can also save these coordinates into your own scenery file so that your changes will not be lost the next time you start FlightGear.

Saving the changes to your scenery

In the terminal window, you get three sections printed out by the UFO with very detailed information about what's going on. We need the lines at the end.

As noted above, the UFO helpfully exports the name of the scenery file where the object's coordinates have to be saved. In our example


The default location for scenery files is Flightgear/data/Scenery/Objects/. Simply open the referenced .stg file, add the OBJECT_SHARED line to the bottom and save the file. Now you have your object's position saved, and it will appear inside the scenery every time you start Flightgear!

In our example we would open 3089154.stg in Flightgear/data/Scenery/Objects/e000n50/e008n50/ and add the following line.

OBJECT_SHARED Models/Tabu/catii-iii.xml 8.57928135 50.03667992 105.9972 111.1

Saving to XML

Alternatively, if you press the e key while developing scenery with Ufo, fgfs will generate an xml file with the dump of your current work in a "ufo-model-export.xml" file.

Under Unix, the file is saved to directory ~/.fgfs

Under Windows it is saved to %APPDATA%\ Under a typical Windows installation the file will look something like this:

 C:\Documents and Settings\{YOURUSERNAME}\Application Data\

(Note that some FlightGear 1.9.1 users have reported that pressing e gives an error message to the console and fails to save the XML file. The problem is outlined here and solution given here--simply add a line to ~flightgear~/data/Nasal/IORules reading "WRITE ALLOW $FG_HOME/ufo-model-export.xml".)

Loading the XML file as part of FlightGear scenery

You can later reload this XML file with --config= command-line parameter:

Example for Linux:

fgfs --config=$HOME/.fgfs/ufo-model-export.xml

In Windows, this is done using the Advanced dialog, found on the last panel of the FG Run GUI. Click Advanced and, under General, click the double-dot button, browse to the ufo-model-export.xml file and click OK.