Tarquin's Brush Builder Pack

release 1.0 (02/02/01):

Hello, and thanks for downloading the pack.
I recommend you use this with UT patch 432 or higher. If you successfully use the pack with a lower version please let me know.
Acknowledgements, version history, legal stuff & disclaimer: see the end of this file.
If you find the pack useful, or have any comments or suggestions, or make a really cool map using these builders, feel free to let me know.
Extended documentation, lastest updates, new versions, and maps made with this pack at: http://www.crosswinds.net/~tarquinut.

Installation

Installing the pack will add four new buttons to the UnrealEd toolbox, immediately below the native brush builders. These will function in exactly the same way as the native builders: left-click to build, right-click to open the parameters window.

umod version: Double-click the file to install it. Apart from adding a line to unrealtournament.ini, nothing existing on your system is overwritten.
zip version: unzip the contents of the file, and place the files thus:

— where [UT] is your UnrealTournament folder.
You also need to add the following line to unrealtournament.ini, at the end of the [Editor.EditorEngine] section, after the other 'EditPackages' lines:

The online documentation is more comprehensive than that in the pack, as it features screenshots. These aren't in the download, because I personally dislike getting lots of fiddly little gif files cluttering my /help folder and having no idea which documentation they belong to.

in release 1.0:

Tarquin's Spiral Stair builder: intended as a replacement for the native Spiral Stairs, which, as many people have noticed, makes brushes that can't be subtracted. This builder has all the options of the native builder, and performs the functions of the Curved Stair builder too.
Torus builder: Builds a torus, complete or partial, along with the usual with user-defined options for the number of sides.
Tarquin's Cylinder builder: same as the native builder, but can build partial cylinders.
Panorama builder: builds an open cylinder of sheets, to make mountain backdrops in the skybox, or waterfalls.

New Icons, which are, yes, purple. I needed a way to make the new spiral icon different, and I like the colour.
New alignment options for the Torus and the Cylinder builder: 'Plain' and 'Side' work the same as the AlignToSide 'False' and 'True' respectively; 'Caps' is a special case of 'Side' for partial brushes which cuts the first section to the x-axis.

not in this release:

Stuff that didn't make it into this release because I've done enough scripting for now:
Polar Sphere builder: builds a sphere with longitude and latitude lines. The script for this builder is complete, but I'd like to add support for extra options before releasing it.
Tarquin's Linear Stair builder: this is what got me started scripting brush builders — I wanted to modify the native builder to add the option to make the top step longer.
Item naming: this was one of the original plans for the torus, but I'm completely stumped as to how to do it.
Flexible metrics: I've had several extreme ideas for the builder pack: this is the easiest to implement but probably the weirdest. What it basically means is that instead of metrics with a defined purpose, like width or radius, the builder has a number of non-defined metrics, and then an option list parameter where you choose what the numbers should mean. For example, with the Cylinder or Panorama, the options would be 'Radius', 'Width&Breadth' and 'PanelWidth'. More on this on the website!

Tarquin's Spiral Stair Builder

This builder is intended to replace the default Spiral Stair builder as well as the curved stair builder. I felt this was necessary because brushes made with the default Spiral Stair builder can't be subtracted.
In writing this new script, I've also found that the sloped floor / ceiling options in the native builder can throw up a lot of errors in the log. I don't know enough about the way UEd handles these to know whether this is bad for a level's BSP, but this new builder addresses this problem anyway. It also allows some new combinations, for example a flat base with a sloped top.
I had hoped to find a way to make the installation of this pack disable the default spiral and curved builders, but I do not think this is possible. If anyone knows of a way, please let me know!

Options

This builder comes with a large number of options. (I count 18 distinct shapes, before even considering the number of steps.) Not all options are compatible: some will generate a "Bad Parameter" dialog box, with explanations.

StepHeight
The height difference from one step to the next — the height that a player climbs for each step.
StepThickness
The actual height of each step block.
This is usually greater than StepHeight; setting the two to the same value will make a staircase where the steps only touch at an edge.
If StepThickness is less than StepHeight, each step is totally seperate from its neighbours.
StepWidth
Width of the steps.
InnerRadius
Distance from the centre of curvature to the inner edge of the steps.
StepsPerCircle
AnglePerStep * StepsPerCircle = 360 degrees, if you prefer. I use this because I work in radians, and so do UnrealScript's trig functions. It would take you a long time to type in all the digits of pi. ;)
NumSteps
The number of steps in the staircase. This can be larger than StepsPerCircle in some cases only — if you try something that isn't possible, the 'Bad Parameters' dialog box will explain the problem.
AntiClockwise
Yes, I'm English. Counterclockwise if you prefer.
TopStyle
Select whether you want sloped top, or regular top with steps, or a flat top.
The flat option will make stairs like the CurvedStair builder, and will not allow more than a full circle.
Note that a full circle, flat base brush, as with CurvedStair builder, will meet itself and two polys will touch — the subtracted brush will have a sheet effect between the first and last steps.
BottomStyle
Same as above. Note in particular you can't have both set to flat — the code is complex enough without building cylinders too.
You can't have both set to slope if StepThickness isn't strictly greater than StepHeight, since the brush would then have zero thickness throughout.
The builder checks for these and other problems and explains them as you go.
GroupName
Works the same as in the native brush builders.

Known issues

The textures on the walls are turned by 90 degrees. I plan to do... sod all about this, because this builder has been murder to write.
Contact me if you find any bugs.

Future development

Very silly idea which makes the spiral conical. See the development page on the website.

Torus Builder

This builder makes a torus, or sections of a torus, and was suggested by purice at the PlanetUnreal Forums.

Options

OuterRadius:
The outer radius.
TubeThickness
It might have been more logical to call the radii OverallRadius and CrossSectionRadius, as suggested on PlanetUnreal forums, but I'd already written the code, picturing the torus as a bicycle tyre, made from an inner tube looped to meet itself. This is then the diameter of the tubing, and will also be the height of the torus. OuterRadius - TubeThickness = radius of hole in the middle.
Note for mathematicians, topologists and freaks on my wavelength: fiddle with the way it meets itself and you get a Klein bottle!
WheelSides
This is how many times the tubing is bent to make the full loop.
WheelSidesUsed
Works like the 2D editor's revolve tool, with an added extra: leaving this at zero tells the builder to use the value of WheelSides, so the number of sides of a full torus can be specified without having to enter two values.
TubeSides
The tubing is made from a cylinder with this number of sides.
WheelAlignType
'Plain' and 'Side' work the same as the AlignToSide 'False' and 'True' respectively; 'Caps' is a special case of 'Side' which cuts the first section of a partial torus to the x-axis.
TubeAlignToSide
This works the same as the 'align to side' option in the native builders, and changes the alignment of the tube cross-section polygon. (To get a clear picture of what it does, set WheelSides to 4, TubeSides to 8, and look at both types in a side view.)
GroupName
Works the same as in the native brush builders.

Known issues

I've found that setting sides higher than 16*16 causes some of the polys not to display. This may be due to the sheer number of polys and BSP cuts.
Personally, I worry that because the vertices have irrational co-ordinates, what drops off when the floating point variable is rounded sooner or later becomes significant enough to cause a glitch — but I don't know enough about how these are handled internally.
Contact me if you find any bugs.

Future development

I'd like to implement Item Naming options, so selecting polys by matching item gives either sections of tubing, or horizontal bands all the way round.

Tarquin's Cylinder Builder

This makes a cylinder just like the native builder, but adds support for partial revolutions. People who remember the advertising campaign on UK telly in the 80s may, like me think the button looks like a piece of Edam cheese.

Options

Height
Height of the cylinder.
OuterRadius, InnerRadius
These are the same as the native builder.
Sides
Number of sides of the cylinder. Note that the Unreal engine splits polys with more than 16 sides.
SidesUsed
Works like the 2D editor's revolve tool, with an added extra: leaving this at zero signifies 'full circle', so the number of sides of a full cylinder can be specified without having to enter two values.
Hollow
Same as the native builder.
TriangulateCaps
If the cylinder isn't hollow, this will split the two caps into triangles.
Note: A partial cylinder that makes more than half a circle will have triangulated caps no matter what this is set to.
AlignType
'Plain' and 'Side' work the same as the AlignToSide 'False' and 'True' respectively; 'Caps' is a special case of 'Side' which cuts the first section of a partial cylinder to the x-axis.
GroupName
Works the same as in the native brush builders.

Known issues

None.
Contact me if you find any bugs.

Future development

Flexible metrics (see above) and a few other outlandish ideas. See the website.

Panorama Builder

This builder makes a panorama: a set of sheets arranged to make an open cylinder. This is intended for building backdrops in the skybox: most of the Epic maps use a mountain backdrop with 4 sides and 2 sheets per side.
The panorama could also be used for building waterfalls like the ones in DM-UT-Tourney][ by Olav Gjerde, as seen on the 0wnage.

Options

Height
Height of the brush.
Radius / PanelWidth
The radius of the panorama can be set either directly or by specifying how wide each panel should be, allowing skybox textures to be aligned correctly.
These two options are mutually exclusive — set whichever one you want to use, and set the one you want the builder to ignore to zero.
Sides
Number of sides of the cylinder formed by the sheets.
PanelsPerSide
Number of sheets on each side of the cylinder.
AlignToSide
Works like the 'align to side' option in the native builders.
GroupName
Works the same as in the native brush builders.

Known issues

None.
Contact me if you find any bugs.

Future development

None planned.

Notes

I'm a quasi-fanatical Netscape user, but I have to admit they've fouled up their support of CSS right up to 4.75. View this in IE to get a clearer layout.

Acknowledgements

First and foremost, to The Girl Who Hasn't Yet Decided On A UT Nick — for advice, support, spotting ways in which to script more efficiently once the script was already written, and more. She rocks.
The beta testers at PlanetUnreal forums who bent, twisted and stapled the builders to make sure nothing nasty was lurking: purice (who suggested the torus), Fuzzpilz (who made the very first map with the new spiral), ChrisToth.hu, Ixus, Zaphrod, baldfist, synergy, :((JAYMZ)):, Gabriel.
And finally, all the people who made UT the excellent game that it is. Without UEd brushbuilder plug-in architecture this pack would not be possible.

Version history

Version 1.0 (02/02/2001): general release. Known issues: none.
Version 1.0beta (18/01/2001): private beta (flying colours!)

Legal stuff

This document and the pack containing it are (c) Tarquin 2001 (tarquindarkling@bigfoot.com)
Authors may NOT re-use or alter this code with out my express permission.
You are NOT allowed to commercially exploit this release, i.e. put it on a CD or any other electronic medium that is sold for money without my explicit permission.
You MAY distribute this release through any electronic network (internet, FIDO, local BBS etc.), provided you include this file and leave the archive intact.
UNREAL TOURNAMENT (c)1999 Epic Megagames, Inc. All Rights Reserved. Distributed by GT Software, Inc. under license. UNREAL TOURNAMENT and the UNREAL TOURNAMENT logo are registered trademarks of Epic Megagames, Inc.
The Spiral staircase icon is probably (c) Epic too, since I've merely altered the colour values in pshop. The torus is all my own work, and very proud I am of it too. The cylinder and panorama are collaged from the UEd icons.
All other trademarks and trade names are properties of their respective owners.

Disclaimer

This pack is provided 'as is'. I have tested the builders, and believe them to be free from errors. However, as you may know, BSP errors can occur in a level built from only the native brush builders. By installing and using this pack you agree that I will not be liable for any damage to your data resulting from use, direct or indirect, of this pack.