Making curved or spiral stairs in maps/Radiant
Creating spiral or curved stairs using GTKRadiant or QeRadiant is
probably one of the most tricky things to try when you're new to Quake
3 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. Each has their own sworn 'believers' and 'Pros'
and 'Cons'. The following tutorial runs though the process of using
the 'fan method' for creating spiral stairways as outlined below.
What's the best way to make spiral stairs ^
Each method of production has its own inherent problems so the choice
as to what to do depends on the engine being used and the tolerance
level they have with regards to object construction and 'errors' in
precision during compile; there isn't a 'best' method per say,
but there is a 'most accurate' in terms of the step size and
rotation angles if that's what you need- this is visual accuracy not 'accuracy' in relation to 'clean' brushwork how that relates to
compiling a level.
So, there are a couple of generally accepted methods used by level
designers to create curved or spiral stairs using the Radiant editor
(GTKRadiant or QeRadiant) for editing Quake 3 powered games;
-
Patch mesh curve template
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. [link:forum
post]
-
Brush cylinder template
Similar to the above but makes use of a 'brush cylinder' of a
fixed number of sides ("8" sided cylinder brush, "16"
sided cylinder brush etc.) as a template guide against which brushes
can be shaped or from which steps can be cut, each step is made
'per side'.
-
Angled crosscut block
This process relies on making equally spaced cuts around the parameter
of a brush, cut from one side across a brush to it's opposite; each
subsequent cut (step) 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 patch mesh, brush cylinder and crosscut processes all result in steps that are, to varying degrees,
of uneven sizes because of the way or what they are constructed from; more so the patch mesh and crosscut method due to the way the
apex of a curve (patch) and the grid divisions (crosscut) 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.
The 'fan blade' method creates accurate steps of uniform
size because it makes use of duplicate copies of each step. However,
in doing so it creates something called 'non-axial brushwork' - brushwork
not 'snapped' or 'aligned' to the grid - that can cause some potentially
serious problems because of the way the compile process handles the
accuracy of the data used to build a level (polygons and vertexes).
Where ever possible brushwork should be built 'on grid' and not 'off
grid'.
Also bear in mind that the finished stair and any other stairs should
be set as 'detail flagged' brushwork (in Radiant, select brushwork
>> right click >> set detail).
Making the spiral stairs first step template ^
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.
-
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).
-
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
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.
-
Press 'Ctrl+Enter' to toggle which side of the cut line
is active
-
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
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.
-
Duplicate the object - 'Ctrl+C'/'Ctrl+V' to copy/paste
or press the 'Space Bar' to create a clone of the brushwork.
-
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°
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.
-
Select all the brushes that are needed for the grouping.
-
Right click and select "func > function_group".
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;
-
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.
-
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.
-
'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).
-
In the main editor menu find and select 'Selection > Rotate
> Arbitrary Rotation' to open up the dialogue box.
-
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 'arbitrary rotation'
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.
-
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).
-
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.
-
Alt+Shift+LM will select and prefab unit.
-
Alt+Shift+LM hold & drag will 'paint select'
multiple units.
Once you've rotated each section you should end up with a stepped 'fan'
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
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'.