How To Add Objects to FS2004 Scenery

 

I’m assuming you’ve installed Microsoft XML on your PC and dropped the MakeScene folder somewhere convenient (so you can get to it easily) in your system. If not, go back to the Read_First doc and carry out the instructions it contains.

 

If you’re reading this (and you are!) you’re already in the MakeScene folder, where apart from How_To items there are 6 other objects taken from or based on the new FS9 Scenery SDK. The SDK contains more stuff than this but this is all you need for the current purpose. When you’ve mastered the (simple) methods described below you may want to read the enclosed FS2004BGLCompSDK.doc, obtain the full SDK package and get more involved in FS2004 scenery design, but there’s no need for you to do so at all.

 

Now you don’t need any scenery design know-how, just simple savvy to follow the steps set out below.

 

Step 1

=====

So you think you'd like to add a group of small boats just off The Needles (Isle of Wight, UK).

 

You check the map (or fly/slew to the area in Flight Simulator) and roughly the area is around N50 36.00, W1 38.00. Each boat you add will therefore need to have slightly different co-ordinates close to those figures.

 

Step 2

=====

Every available object is in the 'library' with a unique index (called its GUID). You check the Excel spreadsheet called MyObjects.xls and find several boats as follows.

 

VEH_water_sailboat1

GUID = c545a29d11d2e2ec1000849c2ae60c5a

 

VEH_water_sailboat3

GUID = c545a29b11d2e2ec1000849c2ae60c5a

   

VEH_water_smallboat1

GUID = c545a29811d2e2ec1000849c2ae60c5a

  

VEH_water_smallboat4

GUID = c545a29511d2e2ec1000849c2ae60c5a

 

(There are several more as well)

 

Step 3

=====

You then take the 'standard' code file (no need to understand why it works) which I’ve called scen_obj.txt and open it up in Notepad as follows.

 

<?xml version="1.0"?>

<FSData

version="9.0"

xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'

xsi:noNamespaceSchemaLocation="bglcomp.xsd" >

<SceneryObject

            lat="N47 25.89"

            lon="W122 18.42"

            alt="0"

            altitudeIsAgl="TRUE"

            pitch="0"

            bank="0"

            heading="0"

            imageComplexity="NORMAL">

            <LibraryObject

                        name="4a5ceec84f2a9e27f12ee7a40f0c856c"

                        scale="1.0"/>

</SceneryObject>

</FSData>

 

Step4

====

Every FS9 scenery object uses a piece of code identical in format to the above - you just paste its numbers in at the right places. Let’s say we want to place the first boat in our FS9 scenery at latitude N50 36.00, longitude W1 38.00. Obviously it must be at sea level and we decide to put it on a heading of 220 degrees. The code for this would be as follows.

 

<?xml version="1.0"?>

<FSData

version="9.0"

xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'

xsi:noNamespaceSchemaLocation="bglcomp.xsd" >

<SceneryObject

            lat="N50 36.00"

            lon="W1 38.00"

            alt="0"

            altitudeIsAgl="FALSE"

            pitch="0"

            bank="0"

            heading="220"

            imageComplexity="NORMAL">

            <LibraryObject

                        name="c545a29d11d2e2ec1000849c2ae60c5a"

                        scale="1.0"/>

</SceneryObject>

</FSData>

 

So what has to be pasted into each bold bit (the bits that must be amended for each object)? The answers are more or less self-explanatory.

 

Latitude and longitude (lat and lon) give the exact position where the object will be placed. You can find the EXACT numbers by selecting the Bell in top-down view and slewing it to where you want the object to be. Use Shft_Z to get the numbers off the top l/h corner of your screen in exactly the right format leaving out the * (degrees) and ‘ (minutes) marks.

 

Altitude (alt) is how high above ground or sea level the object should be. Buildings, vehicles and vessels are obviously usually at 0 (metres is the default). Effects like smoke will be above ground level eg a smokestack 180 metres high will have a smoke effect at 180.

 

Land-based objects have TRUE in the next line, sea-based have FALSE. That's all you need to know about that.

 

Usually you can leave pitch and bank at 0, but not heading, which rotates the view of the object. You need to start at 0 and experiment because you don't want all your ships facing in exactly the same direction and buildings often have to be aligned with the coastline, a road or a river.

 

Now imageComplexity. This can be left at NORMAL but it will probably become accepted that this should be changed to SPARSE so the objects can be seen even at fairly low slider settings. It's up to you.

 

Finally, you paste the object's previously identified GUID into the name section.

 

So what do you have to be careful of? Simple. Be exact. Make sure you keep all the " and < and / and > marks in place. If you accidentally delete any it WILL NOT work!

 

Step 5

=====

So that’s the first object done. We can add more objects into the same piece of code just by adding more <SceneryObject sections. Note that we don’t need to duplicate the code ‘header’ and ‘footer’ sections for the additional objects. So after we’ve pasted in the code for the other 3 objects, our final code file looks like this.

 

<?xml version="1.0"?>

<FSData

version="9.0"

xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'

xsi:noNamespaceSchemaLocation="bglcomp.xsd" >

<SceneryObject

            lat="N50 36.00"

            lon="W1 38.00"

            alt="0"

            altitudeIsAgl="FALSE"

            pitch="0"

            bank="0"

            heading="220"

            imageComplexity="NORMAL">

            <LibraryObject

                        name="c545a29d11d2e2ec1000849c2ae60c5a"

                        scale="1.0"/>

</SceneryObject>

<SceneryObject

            lat="N50 35.80"

            lon="W1 38.10"

            alt="0"

            altitudeIsAgl="FALSE"

            pitch="0"

            bank="0"

            heading="200"

            imageComplexity="NORMAL">

            <LibraryObject

                        name="c545a29b11d2e2ec1000849c2ae60c5a"

                        scale="1.0"/>

</SceneryObject>

<SceneryObject

            lat="N50 36.20"

            lon="W1 38.30"

            alt="0"

            altitudeIsAgl="FALSE"

            pitch="0"

            bank="0"

            heading="180"

            imageComplexity="NORMAL">

            <LibraryObject

                        name="c545a29811d2e2ec1000849c2ae60c5a"

                        scale="1.0"/>

</SceneryObject>

<SceneryObject

            lat="N50 35.90"

            lon="W1 37.80"

            alt="0"

            altitudeIsAgl="FALSE"

            pitch="0"

            bank="0"

            heading="240"

            imageComplexity="NORMAL">

            <LibraryObject

                        name="c545a29511d2e2ec1000849c2ae60c5a"

                        scale="1.0"/>

</SceneryObject>

</FSData>

 

Step 6

=====

There’s practically no limit to the number of objects you can include in your file. When you’ve finished adding all the objects you want, think of a name for your file and save it in plain text format (eg myukobj.txt).

 

After you’ve saved your file, this is how the contents of your MakeScene folder should look.

 

 

 

Step 7

=====

Well done! The hard bit is over. Now it’s down-hill all the rest of the way. Now the following may sound weird if you’ve never done it before, but trust me!

 

Place your mouse pointer over your scenery file (myukobj.txt), click and hold down your left mouse button and drag your file over the top of bglcomp.exe in the folder. What you do should look like the following.

 

 

Now release your mouse button and if all is well, you will see a scenery BGL file named after your file, appear before your eyes!

 

 

 

Step 8

=====

Now you’ll be dying to check your file out in FS so create a folder in your main FS9 ADDON SCENERY folder. Call your new folder something like ….. er….MYUKOBJ. Then create a sub-folder inside it called SCENERY and move or copy the new BGL file into it. Then start FS2004, activate the scenery in the usual way and fly or slew to the area.

 

With the above file, this is what you’ll find.

 

 

OK, not that spectacular but it’s just a start and shows what can be done in a few quick and easy steps. The World’s your Lobster (can’t afford oysters around here). MyObjects.xls, the spreadsheet in MakeScene, is a ‘cut down’ version of the full MS library spreadsheet contained in the SDK. This was done to take out all the objects that were put in by mistake and do not actually exist in FS2004 (if you place an object and can’t see it, you may have discovered another one – seriously). However, it still contains dozens and dozens of useful objects, like schools, factories, warehouses, shopping malls and so on, as well as lots of airport related objects.

 

Oh – but don’t expect to be able to place the Eiffel Tower, Statue of Liberty or Pyramids in the middle of Blackpool. MS have ensured that these can ONLY go in their proper locations and are invisible everywhere else, so they have been left out if they were originally included. Also important buildings that are specific to showcase airports, like KLAX, EGLL etc.

 

What Can Go Wrong?

================

Not a lot other than what I’ve just mentioned if you follow the instructions carefully. If you get a BGL file, your code is ‘acceptable’ and should work. If you don’t, you’ve been careless and cut off a necessary sign (like < or / or > ) or allowed blank spaces to creep in between text and signs. You must go back and check.

 

In the example the objects were placed close to each other in a small area, but that doesn’t need to be so. They can be miles apart if you want.

 

Happy scenery building! If you take care and place objects in the right locations at the right scale, email your txt file with a key (ie what objects have been placed at which lat/lon) to flightsim@ukgo.com. I’ll give ‘em the once over and if everything’s OK, I’ll incorporate your objects into a ‘master’ UK BGL. I would prefer people to concentrate initially in specific regions, so it would be useful if you could let me know where you’d like to start.

 

The BGL will therefore grow like Topsy and if indeed it does, I’ll upload it to Simv as a monthly update.

 

 

Roger Mole

flightsim@ukgo.com

January 2004