Creating Regions for Custom Worldspaces in Fallout 3 (WIP)

  1. The Region Editor
    1. Main Interface
    2. Region Parameters
      1. General
      2. Objects
      3. Objects (more)
      4. Weather
      5. Map
      6. Landscape
      7. Grass
      8. Sound
    3. Creating a Region
      1. Drawing Regions
      2. Editing Regions
    4. Other Ways to Use Regions
    5. Troubleshooting

This tutorial will show you how to use the Region Editor in the G.E.C.K. (Garden of Eden Creation Kit). Regions are used to procedurally generate common objects like trees and rocks for world spaces in Fallout 3. Using regions, a mod developer can circumvent the tedious and time-consuming task of hand-placing each object in the wilderness and focus his or her energies on more important tasks like quest design and the creation of custom assets. While procedurally generated landscapes do tend to have a more generic, or "samey" look about them than hand-crafted landscapes, the trade offs in development time can more than make up for a small loss of visual quality and interest.

Region generation also gives the mod maker more flexibility and control over an exterior landscape's memory footprint, allowing him or her to better guage the responsiveness of his or her mod and to make adjustments accordingly by adding and removing objects from the generation tree. Of course, the mod maker is always free to go back and hand-tweak areas that need additional work and will likely want to do so in areas where regions overlap. With enough trial and error, a good modder can make generated regions look nearly as good as hand-placed regions in a small fraction of the time.

The Region Editor

The region editor allows you to group exterior cells. Once you've defined a region, you can add landscape textures, rocks, trees, sounds, weather, creature spawns and other objects to the region definitions and generate (or populate) these regions with the click of a button. The number of objects that appear and how they are grouped, or clustered, depends on the settings you use for each object. These settings can get very specific, allowing you to adjust things like size, elevation, rotation and ground shading, enabling you to randomize different parameters within ranges you define to give each object a slightly different look and location. Learning how to use the region editor productively is not a trivial task, but it is quite straighforward once you know what you're doing.

Main Interface

The Region editor

The region editor is divided into six basic objects:

  1. world space selector
  2. region selector
  3. data view filter
  4. object parameter tabs
  5. cell view canvas
  6. status bar

The following sections describe these objects in more detail.

World Space Selector

To add a region to a world space, select the world space you would like to add it to from the drop-down selection box. The region list below will update with the list of regions currently associated with a given world space. You may associate any region with any world space so transferring region settings from one world space to another is simple and straightforward.

Region List

The region list shows the list of regions currently associated with a given world space. As soon as you create or duplicate a region it will instantly be added to the region list for all world spaces (though, of course, you do not have to use it) so the list of associated regions that you see in the editor is really only an artifact of the process Bethesda used to create the game.

Adding Regions to Worldspaces: When you create or duplicate a region, it is made available to every world space via the Region List. It will not cause the editor to flag the world space as changed unless you actually add a region to the world space via the cell view canvas.

Data View Filter

The Data View widget allows you to filter which regions appear in the cell view canvas. The data types correspond to the tabs in the object parameter field in the top right of the editor. The Landscape and Grass tabs are no longer functional, so they may always be left deselected. Filtering which regions are drawn on the canvas can be useful if you decide to compartmentalize objects like Bethesda did (with separate regions for sound, maps, objects, navmeshes, etc.). For example, to quickly see which regions have map data associated with them, deselect all fields and then select the Map filter.

If you select all of the data types, all of the regions will appear. If you deselect all of the data types, all of the regions will disappear. When you select a region in the region list, its border will appear on the canvas even if you have all of the data types deselected, but it will be uncolored. You can use the View All and View None buttons to quickly select and deselect all of the boxes.

Object Parameter Tabs

The object parameter tabs control which objects are added to a region and allow you to edit various characteristics of those objects. For static objects (like rocks and trees) you can edit things like the scale, rotation, minimum starting elevation, maximum elevation, minimum slope, maximum slope, etc. We will cover all of these settings in detail below in the section Region Parameters.

Region Map/Cell View/Canvas

The large canvas area in the bottom right of the region editor is used to view existing regions and to draw new region shapes onto world spaces. Each white square represents an exterior cell. Cells that belong to regions are colored in the region color, or a blend of colors if two or more regions overlap. (The exception to this are cells in regions that have no data assigned to them. These cells remain white.) Cell borders are drawn in thick rust-red lines. Only the border for the active region (the one selected in the region list) will be displayed.

To pan around the cell view canvas, press and hold the middle mouse button and drag with the mouse. You can zoom in and out using the mouse wheel. The left mouse button is used to draw shapes, and the right mouse button is used to open the context menu. Drawing and editing region shapes will be covered in more detail below in the example region.

Status Bar

The status bar at the bottom of the editor shows you the cursor's current cell coordinates and cell name if it has one. It also shows you the cursor's location in game units relative to the 0,0 coordinate in the bottom left corner of cell 0,0. The last box shows you the progress bar for region generation processes.

Region Parameters

General Settings

General settings in the region editor

The general tab is used for a number of miscellaneous tasks.

Region Name

This is where you enter the name of your region. Bethesda used a naming convention that prefixes the type of data associated with a region to the name of the region. You do not need to do this yourself. You may add any type of data to any region, though separating them the way Bethesda has may make it easier for you to reuse regions across world spaces and keep your region data organized.

Map Color and No Color Checkbox

You can choose a color for your region by clicking the Choose Color button below the color swatch. Clicking the button opens the standard Windows color picker. The color that appears on the map is actually a blend of all the colors used in overlapping regions, so it might appear different from what you select. You can set the No Color flag on your region by checking the box to the right of the Choose Color button if you have a region that you don't need to visualize in relation to other regions. The border will still appear when you select the region in the region list but it won't appear on the map otherwise. This might be a good choice for something like a border region which only defines the collision (invisible wall) around a world space but no objects.

Border Region Checkbox

The Border Region checkbox is used to turn on collision for a region border. In other words, if your region has this flag set, players will not be able to leave your region. If they try to walk through the border, they will receive a "You cannot go this way" message and the path will be blocked. In the case of overlapping regions, the outermost border prevails.

Edge Fall-off (World Units)

Edge fall-off refers to way some effect loses its strength as it approaches the edge of its area of influence. In the case of regions, it refers to the way generated objects dwindle out as they approach the region border. Edge fall-off is used to make transitions between regions look more natural: objects don't just suddenly stop appearing altogether; instead, they gradually peter out. Edge fall-off is set in game units.

Automated Commands

There is one command: Tag submerged objects as refracted by autowater. Really, your guess is as good as mine. I've never experimented with it, and the wiki doesn't mention it at all.

Auto NavMesh Generation

There are two commands here: Auto Generate Navmesh for this Region and Remove Auto Navmesh for this Region. I haven't played with these yet, but they appear to be pretty straightforward. You can find more information on the Geck Wiki.

Apply

This button looks like it should automatically update your region with any changes you have made to it but in practice it doesn't seem to do anything. Let me know if you've had a different experience.

Shared Settings

The following settings are shared by the remaining tabs: Enable this type of data, Priority, and Override.

Enable this type of data

Before you can add anything to a region, you have to check this box. The other fields will remain greyed out until you do.

Accidentally Deleting Settings: If you uncheck the 'Enable this type of data' box, all of your previous settings for that tab will be erased. Unchecking this box on either the Objects or Objects (more) tab will simultaneously uncheck it on the other tab since both of these tabs refer to the same objects.

Priority and Override

The Priority and Override fields allow you to control which region's data has priority when generating data in overlapping regions. In order to give a region override privileges, you must first check the Override box. The Priority field will be ignored otherwise. The Priority field allows you to rank a region. The region with the highest priority among regions with the Override box selected will have its region data generated at the expense of data from the other regions. The Priority field does not represent a percentage of influence, but a rank only. In other words: it's all or nothing. Overrides will only override the same tab in a different region. It is possible, therefore, to have one region override another region's object data, but have the other region override it's sound or weather data.

Object Settings

General settings in the region editor

The Object tab is used to add objects and landscape textures to your region.

Generated Objects

To add objects to a region, drag them from the Object Window into the Generated Objects box. You must have 'Enable this type of data' selected to add objects to a region.

Generated objects are organized in a region in an hierarchical fashion, so where you drag objects to in the Generated Objects box matters. Top level, or parent elements are added first, and then secondary, or child elements may be added to these top level elements. Additional levels of child elements may be nested inside other child elements to create a tree hierarchy. To add an object as a child element of a parent, or root, object, when dragging an object from the Object Window, drag it on top of the parent element, just as you would place a file inside a folder. The parent element will turn blue to let you know it's active.

Previewing Objects: Before adding objects to your region, you can right-click the Editor Id in the Object Window and select Preview from the context menu to preview them. You can't preview landscape textures, but if you double-click them you can open them directly. If you receive warnings about missing textures or mesh objects, you may need to unpack the models and textures to your data folder to view them.

Wherever these top level elements occur in the region, there is a customizable chance that one or more of these child elements will occur as well. For example, you may decide that you want a certain type of tree, TreeWastelandHardwood01, to appear in your region so you drag it from the Object window into the Generated Objects box. That tree is now a parent element. You may then decide that wherever that type of tree occurs a certain type of landscape texture should appear, for example, roots. If you drag the RootsBarrenWastes01 landscape texture onto the TreeWastelandHardwood01 object in the Generated Objects box, the roots landscape texture will become a child object of the tree object.

You may then decide that wherever that landscape texture appears a certain number of rocks should appear as well. You can drag these rocks onto the RootsBarrenWastes01 texture to make them child elements of the landscape texture which is, in turn, a child of the tree object. There is no limit (that I know of) to the number of levels you may add, or the number of sibling elements that may be present.

The significance of this feature is easier to illustrate in Oblivion where you can combine a wide variety of trees, shrubs, rocks, flowers, etc., but the principle works the same in Fallout 3. You could, for example, create a region that populates the landscape with abandoned grocery carts which have empty soda bottles and food items as child objects.

Object Name

When you select an object in the Generated Objects field (left click on it), it's name and region parameters appear in the fields to the left of the box. The Object Name is the editor id of the object and is not editable; it is for information only. The other fields are fully editable and require a bit of explanation.

Density (0-100)

For Parent Objects: Density represents the likelihood that an object will be generated. The higher the density, the more likely the object is to appear. Essentially, when generating objects, if you divide a cell into a grid where each square is equal to the diameter of the object, there is a chance of the object appearing equal to its density. If you assign a density of 50 to an object that has a radius of 64 units, the cell (4096 units in length) will be divided into a 32x32 grid (4096/(2*64)) and for each spot on that grid there will be a 50% chance of an object being generated. In other words, you are likely to generate around 512 objects! This is why it is very important to keep your density low for objects with a small radius.

Demonstrates how density works

Demonstrates object clustering

Of course, this formula only works for single objects with no children and no clustering (described below). If you have two objects, the first object will be generated, then the editor will test each remaining space for the chance of a secondary object appearing. In other words, each object after the first has an increasingly smaller chance of being generated even though it may have the same density. These kinds of relationships are too hard to predict in practice, so the easiest way to get a good mix of objects is just to experiment until you get something you like. In general, if you keep your first object density low and then gradually increase the density on subsequent objects you'll get a more even mix.

Test Before Generating: Small objects can quickly eat up all of your system memory even with very low densities. It is always a good idea to do a test patch with a single cell and 1% density and work up from there; otherwise, you risk frequent editor crashes.

For Child Objects:

For Parent Textures:

For Child Textures:

Clustering (0-100)

Clustering represents the percentage chance that a generated object will have its coordinates shifted towards other generated objects of the same type.

Demonstrates object clustering

Orphaned Objects: When you apply clustering to objects, objects close to the border of the region are likely to end up shifted outside the region. If this is the case, then these orphaned objects will not be deleted by the Obliterate Now function and have to be manually deleted.

Min Slope and Max Slope (0-90)

The Min Slope and Max Slope parameters define the minimum and maximum terrain slope angles for an object or texture. (The maximum is 90 because the heightmap doesn't allow you to create an overlap in the terrain.) Min and Max Slope are primarily useful for landscape textures, especially, for example, applying rock textures to cliff faces, but they can be useful in other contexts as well. You can use them, for example, to prevent trees or grass from rendering on steep slopes, or to prevent large rocks (which typically lack polygons on the bottom) from being generated in areas where the missing polygons will be obvious to players and where having them conform to the slope would make them look odd (like the cliff statics).

Min Height and Max Height (-∞ to ∞)

Min Height and Max Height define the minimum Z elevation and maximum Z elevation in game units for an object. Min height and max height are used to simulate changing environmental conditions based on elevation. For example, to limit which textures and objects may be generated below sea level (defined in the world space dialog) or above the treeline. If you step your objects (by providing different min and max heights for them) you can simulate a transition from below sea level to coastal to plains to hills to mountains all in a single region and with a very smooth and natural progression.

Radius (0 to ∞)

As discussed under Density, the radius of an object determines how many times it is likely to appear. Objects with a small radius can appear thousands of times in a single cell, and objects with a large radius may appear only once (or not at all). The radius is not generally the same as half of the size of an object in the Object Window (size = diameter = radius * 2; the Size column can be accessed by dragging the line between the Model column and the Quest column in the Object Window) though it is close enough that you can use that window to get a good estimate of the size of an object without having to add it to the Generated Objects box (just remember to divide by 2 to get the radius). The radius value that appears in the Region editor appears to be half the diameter of the object plus a small, default 'buffer' amount to prevent objects from being generated so close to each other that they touch.

An object's radius can be adjusted in the Region editor to space generated objects closer together or farther apart. Remember, however, that even small differences in an object's radius can have a significant impact on the number of times and object is generated (and the consequent generation time and impact on the player's fps). If you reduce an object's radius, you also run the risk of having objects overlapping or clipping one another. For some objects, like rocks, this is perfectly fine, but for other objects it can look odd and even immersion-breaking.

Radius wrt Parent (0 to ∞)

The Radius wrt (with regard to) Parent setting allows you to define the area around a parent object in which a child object should appear. Child objects will be generated starting at the outer edge of the object's Radius and ending at the Radius wrt Parent amount. You can use this field to generate smaller rocks around a large rock, bushes around a tree, or tin cans around a refuse heap. The Radius wrt Parent parameter refers to a child object's immediate parent, so it is possible to nest radiuses. It is easiest to understand as a galaxy system with moons generating around planets which in turn generate around a sun, etc.

Is a Tree

Is a Huge Rock

This flag can be used to tell the Region editor that an object can have other objects generated on top of it. It is designed, as the name indicates, to allow the modder to generate trees and rocks on top of very large rocks, though it can be used in other ways; for example, to generate junk objects on refuse heaps.

Copy Objects From Other Region

Generate Now

Obliterate Now

Obliteration Limits: The Obliterate function only works while you are editing your mod. As soon as you save and close your mod, these objects can no longer be deleted using this process. If you close your mod and you don't like the objects in your region, you will have to delete them by hand. This is one important reason to create a separate test mod to perfect your regions before incorporating them.

Up and Down

Objects (More) Settings

More object settings in the region editor

Angle Variance

Sink and Sink Variance

Size Variance

Conform to Slope

Paint Vertices and % of Radius

Weather Settings

Weather settings in the region editor

Map Settings

Map settings in the region editor

Landscape Settings

This tab is no longer used. Landscape textures are now added via the Object settings tab which allows you to associate textures with specific objects as well as apply textures on their own.

Grass Settings

This tab is no longer used. Grass is associated with landscape textures and added to the world space when you add a texture in the Object settings tab.

Sound Settings

Sound settings in the region editor

Creating a Region

Now that you have a general idea how the editor works, let's run through a quick example region so that you can get a feel for the process.

Drawing Regions

To draw a region, simply left-click on the map where you would like to begin drawing the border. A red X will appear. Left-click somewhere else on your map. Another X will appear and a solid red line will appear joining the two Xs. Continue placing Xs on the map until you are ready to join your first X to your last X, then right-click and select Done. The editor will draw a line between your first and last point and the Xs will disappear.

Invalid Region Shapes

You need to define a minimum of 3 points to draw a region. There is no limit to the number of points you use to define a region, but you cannot draw a region in such a way that two lines overlap. If you try to, the editor will stop you in one of two ways: if you try to close a region shape with 4 points, one of them overlapping, you will receive a warning from the editor that looks like this:

The region area you are editing failed validation.

If you click 'Yes' the editor will delete the current region shape. If you click 'No' it will simply close so that you can correct your mistake. If you try to draw a shape with overlapping lines that has 5 or more points, the region editor will simply not allow you to draw the point.

Deleting Points

If you make a mistake, you can delete an X by right-clicking and selecting Clear Last Point from the context menu. You can only delete Xs one at a time, in reverse order, and only while the region is open. Once you close a region by selecting Done, you will have to re-open the region for editing before you can add or remove points.

Drawing Multiple Region Shapes

You may draw more than one shape for a region. This allows you to scatter region data across the world space, making it possible to create world spaces with varied landscapes that don't require new regions for each transition. You can also overlap multiple region shapes within a single region and the editor will simply treat it as one region shape. Once you have spent a bit of time using the region editor, you will discover that it is quite flexible.

Editing Regions

Once you have closed a region shape, you can adjust it by hovering your cursor over one of the corners until a hand icon appears. When the icon is visible, you can drag the point to another location on the map by pressing and holding the left mouse button and dragging the mouse (the X will be visible while you are dragging). When you are happy with its new location, simply release the button.

The cursor is quite sensitive, so you will often find yourself inadvertently adding new Xs to the map when your mouse slides past the vertice. Simply right-click and select Clear Last Point from the menu to remove these.

Dirty Region Edits: When viewing vanilla regions, you must be very careful not to inadvertently add Xs to regions. This is very easy to do when panning around a region as the middle mouse button is used to pan and the left mouse button to draw. If you do accidentally edit a region, you will have to edit your mod to clean it. Using the right mouse button context button to Clear Last Point will remove the X, but not the edit.

Editing Closed Regions

If you have closed a region, you can reopen it for editing by placing your cursor inside the region and right-clicking. Choose Edit region name from the context menu. This will delete the line between the last two points and allow you to add or delete more points.

Deleting Region Shapes

If you want to delete a region shape, right click inside the region and choose Delete Region from the context menu.

Other Uses for Regions

Although regions are used primarily to procedurally generate terrain objects, define weather and sounds, associate maps, and create borders (invisible walls), they have other uses as well.

Troubleshooting

Below are some of the most common errors associated with region generation in Fallout 3 and solutions to them (where possible).

See also: Creating Custom Worldspaces

See also: Creating LOD for Fallout 3 World Spaces

See also: G.E.C.K. Editor Warnings and Solutions

Comments

Feel free to comment, but please be civil and constructive. Inappropriate, inflammatory, and spam-related comments will be deleted.

***

Last updated November 4, 2011

© 2009-2011 Dave Finch