In this tutorial, we will create a simple Neverwinter Nights hak-pak using the SiegeNWN tool. If you have not already done so,
download SiegeNWN and install it according to the instructions in the
Readme.
Before getting into the details of creating a tileset with SiegeNWN, it would probably be best to review the basic components of the gui. When you launch SiegeNWN, you will be greeted by a window that should look similar to the one depicted on the right. There are 4 main components to worry about at this point:
1) Hak-Pak Tree
This window displays each of the tiles and placeables that you have created and that are going to be part of the hak pak. Click on an entry here to bring it up in the Graphics Window (3)
2) DS Objects Tree
This window displays a long list of all the Dungeon Siege graphics available. The "terrain" subtree is used to create tiles, and the "items" subtree is used to create placeables.
3) Graphics Window
This window displays the currently active tile or placeable. To view/edit a different object, select it from the Hak Pak Tree (1).
4) Actions
The actions that can be performed on the currently active object will change depending on the editing mode you are currently in. More information on this will be presented below.
Throughout this tutorial, these 4 windows will be referenced by a number in parentheses.
SiegeNWN is almost exclusively mouse driven. Most importantly, the current object in the Graphics Window can be manipulated as follows:
Left Click: Selection
Ctrl-Left Click: Move the Camera
Right Click: Zoom/Scale
Middle Click: Rotate the camera
For those with only a 2-button mouse, middle click can be emulated by clicking both left and right buttons simultaneously.
Starting with a clean slate (File->New if necessary) will start you out with a single tile. This tile will be considered the primary terrain tile, and should not contain any height transitions (discussed below). For now we will create just a flat tile of grass.
1) Using the DS Objects Tree (2), locate t_xxx_flr_08x08-v0.sno. This is located under terrain->generic->floor, and is simply an 8x8 meter flat stretch of grass. Each tile that we create is 12x12 Dungeon Siege meters large, or multiples thereof when creating groups. (In case you are curious, this will later be resized down to 10x10 meters for use in NWN)
2) When you click on t_xxx_flr_08x08-v0.sno, an 8x8 tile of grass should appear within the tile boundary. As this does not yet fill in the entire tile, we'll have to add further snodes around this first one to complete the tile.
A snode is a Dungeon Siege Node, or basically the basic building block that makes up the terrain graphics in Dungeon Siege (you can think of them as different size tiles in NWN). Snodes are connected to each other by a system of "doors". Every snode has a certain number of "doors" to which other snodes can be attached. The 8x8 tile we just plopped down has 8 doors, 2 on each side. See 4 below to witness these "doors" in action.
3) Select the newly created snode by left clicking on it in the Graphics Window (3). It will be highlighted (become brighter).
4) Now, choose the t_xxx_flr_04x08-v0.sno snode. This will add a 4x8 grass node to our current tile. But wait! It plops it down outside of the tile border! No problem, we'll just have to connect different "doors". In the Action Window(4), there are two drop down lists, both of which should contain a 0. Play around with these to figure out how the door system works. The box on the left lists the doors available for the currently selected snode, and the one on the right lists the doors available for the snode we are adding. Use these two boxes to line up the new 4x8 snode next to the 8x8 snode, as shown.
5) To complete the tile, repeat step 4 by adding another 4x8 and a 4x4 (t_xxx_flr_04x04-v0.sno) snode.
Although it may look as if we have a complete tile at this point, it is currently not possible to actually walk across it. To make this possible, we must select where on the tile creatures can walk.
1) Enter walkmesh editing mode by selecting View->Walkmesh. This will show you a bunch of triangles that make up your tile.
2) The Action Window(4) has changed to walkmesh editing. The drop down list at the top lists all possible terrain types supported by NWN. Since the tile we just made consists entirely of grass, select "3- Grass". The type you choose matters because different terrains are associated with different sounds. Also, the "dirt" terrain produces little puffs of dust as a creature walks over it.
3) At this point you can start happily clicking faces to mark them as being walkable. Since the entire tile is walkable, we could just select all triangles individually. However, to speed this process up, you can select "Surface" rather than "Face" at the bottom of the Action Window(4). Now, clicking a triangle will set the entire snode to be of that type.
4) A few face types require special mention:
0- None: The face is not included in the walkmesh. This is the best option for unreachable terrain as it does not include the face in the walkmesh at all and therefore requires no processing by the engine.
2- Obscuring: Non-walkable terrain, ie an obstacle
7- No Walk: same as 2
5) When you are done editing the walkmesh, return to tile editing mode by selecting View->Tile
At this point, we have created a functional (although quite boring) tileset. Let's make it slightly more interesting by adding a well.
1) In order for us to remember which tile is which, let's quickly rename the tile we just created. In the Hak-Pak Tree(1), right click on the tile we want to rename (Tile #0) and select properties. In the window that pops up, change the "Name" field to "_Ground" or any other name of your choosing. Since this is the primary terrain tile, I add an '_' to it to make sure it will always appear at the top of the list. The name "_Ground" or "_Grass" is highly recommended for this tile.
2) Click OK to close the properties dialog.
3) We are now ready to create our well. Rather than creating a new tile from scratch, let's duplicate the tile we already have and modify it to include the well.
4) Right click on the base terrain tile in the Hak-Pak Tree(1) and select "Copy Tile". This will create an exact duplicate and open it in the Graphics Window.
5) Before we can add the well, we must make room for it by deleting part of the basic ground tile. Since the well should probably go in the center of the tile, we'll have to delete the 8x8 grass snode. Select it and hit the Delete key on your keyboard.
6) After deleting the 8x8 grass snode, select one of the two snodes bordering the now-empty center. Next, browse to terrain->generic->floor and select the well snode (t_xxx_flr_well-a.sno), attaching the doors in such a way that the well is situated at the center of the tile. You might have to experiment with this a little to get it right. You can hit Cancel in the Action Window(4) to Cancel adding a snode, or select the snode and delete it as in 5 above.
7) Once you are satisfied with the well placement, fill in the rest of the tile with a 4x4 and 4x8 snode.
8) Complete the tile by editing the walkmesh as shown above. Then rename it to "Well" using the tile properties dialog as described in 1.
9) We now have a complete well tile. However, it is still in the Terrain section of the tileset, meaning the toolset will randomly place it. To make it a "Feature" in the toolset, right click on "Well" in the Hak-Pak Window(1) and select "To Features". This will move it to the features subtree in the Hak-Pak Window, and it will no longer be randomly placed by the toolset.