KatsBits
Creating 3D models, meshes & game content
3D modelling & meshing, level editing and textures making
Hints, tips and tutorials for 3D modelling & content creation

[back]Creating curved or spiral stair ways

Resources
Contents ^
Introduction to Spiral Stairs ^

Creating spiral or curved stairs using GTK or Qe Radiant is probably one of the most tricky things to try when you're new to level editing; it needn't be, and once you get to grips with the basic principles involved you'll be able to do different types and sizes of staircases.

How come there are so many ways to do spiral stairs? ^

There are three generally accepted methods used by level designers to create curved or spiral stairs using the Radiant editor (GTKRadiant or QeRadiant).

  • Patch mesh curve template
  • [link:forums post]

    This method makes use of various forms of patch mesh end caps, bevels or curved mesh sections as a cutting template; the patch mesh sub divisions (the red lines you see in the editor) act as guidelines along which you cut or draw out a brush block.

  • Angled crosscut block
  • The angled crosscut method relies on equidistant cuts made across a brush from one corner to the outer edge of the brush block. A cut is made from one corner to a set grid point, each subsequent cut covers the same grid distance between each segment.

  • 'Fan blade' rotation
  • Makes use of a 'mirrored' brush prefab object that's duplicated and then rotated a certain number of degrees per step unit.

The best method for making spiral stairs ^

There isn't a 'best method' per say, but there is a 'most accurate'. The patch mesh and crosscut method result in steps of an uneven size due to the way the apex of a curve and the grid divisions decrease depending on angle and distance between clipping points - the shallower the angle the less width the brush has along the 'guide' edge of the brush - the result are steps that are smaller towards the centre of the stairway's rotation than those on the outer edge which are aligned to the grid.

Only the 'fan blade' method creates 'accurate' steps of uniform size because it makes use of exact copies of each step set, meaning that as the stairs rotate their relative size isn't altered. The following tutorial runs though the process of using the 'fan method' for creating spiral stairways.

I don't like going round in circles! ^

The first thing to do is create a base 'template' from which the spiral staircase will be constructed; it's highly recommended that you texture the brushwork before you begin manipulating the objects because textures on brushes that are at an acute angle to the grid ('none axial') are very tricky and time consuming to align, so much so in fact that should you make a mistake it's often quicker to delete the stairs and rebuild.

Design note : Keep an eye on visible texture pattern repeat - this is where the same visual feature or mark on a texture repeats itself noticably as you go up the steps. This can be countered by offsetting the textures on different steps; this can be done on the steps themselves before they're rotated into place.

Step one - initial brushwork ^

Depending on how visually interesting you want the stairs to look you can either use a single block covered in one texture. Or it can be broken down into a number of composite brushes each using a different texture depending on what you're trying to do.

  1. Draw out a block and cover it in 'caulk' (draw out or cut extra brushwork blocks depending on the visual appearance the overall step needs).

  2. In the example below, the step that's going to be used for the stairs has been textured with a stone 'block' for the main area and a secondary smaller 'block' for the edge. To create the edge activate the clipper tool, 'X', and place two markers by clicking the LMB to mark a cut along the leading side of the brush to a depth you're happy with. Shift+Enter to confirm and keep both sections.

    Alternatively, draw out a smaller brush along the leading edge of the step, caulk and then texture the top and front face.

Clipping or drawing out the step edge block
Clipping or drawing out the step edge block
Step two - clipping ^

The clipper tool is a useful feature of Radiant that allows speedy brush manipulation by cutting blocks into sections rather than individual block placement. It's also a useful 'cross cut' tool allowing shapes to be created that otherwise can't using the default brush 'drawing' approach.

Using the clipper tool (by pressing 'X'), place 2 points at each corner of the brush to create a cut line diagonally across the brush.

    1. Press 'Ctrl+Enter' to toggle which side of the cut line is active
    2. Press 'Shift+Enter' to confirm the cut and keep both sections.

You should end up with something similar to the image below;

The brushwork 'base unit' that forms the template from which the spiral stairs will be made
The brushwork 'base unit' that forms the template from which the spiral stairs will be made

Step three - duplication ^

Once you've got a textured section, in order for this method to work correctly it needs duplicating. The reason for this is that later on we'll be using the 'rotate' tool which turns selected objects around their relative centre of mass; in other words, rotating the section on its own would rotate the object around it's current centre of mass and not the point (on the right hand side) as we need.

  1. Duplicate the object - 'Ctrl+C'/'Ctrl+V' to copy/paste or press the 'Space Bar' to create a clone of the brushwork.

  2. Once create leave the object selected and click on the 'Z axis' rotation button on Radiants main application tool bar twice to rotate the selected object through 180°.

You may need to reposition the brushes slightly once done, by the end of which you should have two sections of brushwork position similar to the image below.

Base unit is duplicated and rotated 180°
Base unit is duplicated and rotated 180°
Step four - func_group ^

The easiest way to manipulate a number of brushes is to group them together into a func_group; this also prevents the brush distortion that sometimes happens when trying to manipulate multiple objects.

  1. Select all the brushes that are needed for the grouping.

  2. Right click and select "func > function_group".

Base unit is func_grouped
Base unit is func_grouped
Step five - func_group duplication ^

Once the prefab is func_grouped it's now simply a matter of duplicating the original and then using the duplicates as further step units for the full spiral stairway. To duplicate the original prefab;

  1. With the original selected press the 'Space Bar' - be careful to avoid holding the Space Bar down too long as it will keep duplicating so long as it's pressed.

  2. Select the original and use 'Ctrl+C' and 'Ctrl+V' to 'copy' and 'paste' the object in place.

Design note : Before you rotate the prefab you may want to 'offset' the textures slightly to alleviate pattern repeat on the final steps. If left 'as is' you'll see a noticeable pattern travel up the steps which can be visually distracting.

Step six - arbitrary rotation ^

Radiant only has 90° rotation options by default so to use smaller angles of rotation you have to use the 'Arbitrary Rotation' option from the 'selection' menu. You can do the following 'by eye' or work out some math to get the initial rotational angle you need 360 (full circle) divided by the number of steps you want to have in the spiral. Doing the latter means that the brush prefab may need adjusting to you don't get any gaps you didn't anticipate between the steps.

  1. 'Alt+Shift+LMB' to select the prefab ('Shift+LMB' will selected individual parts of the group) and duplicate it. Leave it selected (it you 'Shift' duplicated you'll need to reposition the prefab so it sits directly on top of the original).

  2. In the main editor menu find and select 'Selection > Rotate > Arbitrary Rotation' to open up the dialogue box.

  3. In the dialogue box type a value ('15' was used in this example) and press 'Apply'; the selected brush prefab will rotate by that amount. Press OK (or 'Cancel') to close the pop up box.

In order to get this to work correctly and to make sure the brushwork prefab doesn't distort too much, make sure you only use the original selected prefab from which to do the rotations, incrementing the angle with each iteration of the prefab; 15, 30, 45, 60, and 75.

Base unit rotated using 'arbitary rotation'
Base unit rotated using 'arbitrary rotation'
Top down view showing the alignment of the brush groups
Top down view showing the alignment of the brush groups
Step seven - stacking ^

Once the prefabs needed for the steps have been rotated it will result in a quarter turn that allows you to then duplicate the whole lot and have the bottom step fit with the top of the previous section when stacking the stairs.

Before doing that the individual steps need to be stacked on top of each other.

  1. If you haven't got the 'Z' axis view open (it's usually locked onto the left hand side of the main grid view) then use 'Ctrl+TAB' to toggle through the editors grid views to display either 'front' or 'side' view; this is to allow the manipulation along the 'Z' axis (up/down).

  2. Select a prefab and move it upwards by the required depth. For optimum performance do not raise the steps above 16 units (one of the smaller blocks when using Radiant's default grid depth) if players or Bots/NPCs need to navigate the area in which the steps will be used.

    1. Alt+Shift+LM will select and prefab unit.

    2. Alt+Shift+LM hold & drag will 'paint select' multiple units.

Once you've rotated each section you should end up with a stepped 'fan'

Dulication and then individual rotation of each group by the same number angle of rotation - 15° in this particular example
Duplication and then individual rotation of each group by the same number angle of rotation - 15° in this particular example
Step eight - repositioning ^

Leaving the stacked steps in their default position after rotating the individual units can be a little tricky to work with, so what can be done now is to select one half of the stack and rotate it so that it sits over the unslected half of the prefab. Once there it simply needs to be moved upwards (or downwards) so the lower step of the upper half sits on the top step of the lower half.

Select all, ungroup the objects (right click > ungroup entity) and then regroup into a func_group to get a usable 180° turn and you're done. This should then produce a prefab that will 'lock' onto itself when further stacked upwards.

Design note : When duplicating and rotating the units in step six above, you may have noticed that a full 180° isn't required. The reason for this is to allow the steps to 'lock' onto each other as mentioned above where each completed step unit can sit on top of itself without the need to select and delete a stage.
Rotation one half of the grouping to create a full 180° spiral staircase
Rotation one half of the grouping to create a full 180° spiral staircase
Making a spiral staircase video walkthrough ^

Watch the following video walkthrough of the process of creating a set of spiral stairs before or after reading the text and image tutorial above as it will show the process as described above in 'real time'.


Spiral Staircase video walkthrough
© 2008 KatsBits - All Rights reserved.
No part of this web site may be reproduced (unless for personal use) without prior written consent from KatsBits.com