[Guide] How to make and playerclip spiral staircases

Discussion in 'Tutorials & Resources' started by tyler, Sep 21, 2015.

  1. tyler

    aa tyler snail prince, master of a ruined tower

    Messages:
    5,032
    Positive Ratings:
    3,978
    I see this question is still being asked a lot so I thought I'd write up a guide for it. There is a similar solution to clipping spiral stairs with instanced clip brushes, but those can cause snagging issues, and really this is the best way to do it.

    Before I start in on how to do this, I want to make it clear that spiral staircases in TF2 should be a rarity. The taller/longer they are, the more players need to move their mouse to ascend them, which is annoying. Plus, as you'll soon see, they are a challenge to make with the current tools. In general, you probably want to make normal stairs. If you are putting spiral stairs into your map, they should either be small, or around/near something important. Ask yourself: How many spiral staircases can you think of in Valve maps? Where are the spiral stairs on popular community maps?

    When making anything in TF2, the key is to use either multiples of 64 and/or powers of 2 for the majority of your brushwork. Many of the door props, for example, fit these measurements. Making a spiral staircase is no different. If you work in powers of 2, your arches will always be on grid. If you use a lot of brushes in an arch, it might be the 1u grid, but it will be on grid.

    Start by selecting the brush tool and changing the brush type to arch.

    [​IMG]

    Next, you need to think about what size and shape staircase you want. To keep it simple, I am going to make a staircase that is 128u wide at the top and bottom and curves 90 degrees. (I don't think a staircase that curves around more than 90 degrees is a good idea.) You should always leave some space in the middle of your staircase. The hole will need a cylinder with the same dimensions as your arch.

    Make your brush as tall as you want each step to be. In my case, I want 8u tall steps.

    [​IMG]

    Here's the arch I'm about to make. Here, "Wall width" means how wide you want each step to be.

    "Number of sides" is how many steps you want. You need to use a power of 2 here, too. I'm using 8 steps for this tutorial, but if I was doing this for a real map I'd probably do 16. Set the arc field to whatever you're using. Try not to stray from 45 degree intervals for simplicity.

    The "Add Height" field can be used to automatically stagger your stairs. My stairs will be 8u thick, but I want them to be spaced a bit apart. I'm going to use 16 units. You can click Preview to check the shape ahead of time. When you're ready, click OK.

    [​IMG]

    Here's my arch. It looks like stairs! I put the cylinder in too.

    I had 8 steps and I raised each one 16u above the last. You might notice that the total height is now 128u, a common height of geometry in TF2. It's no coincidence!

    This is great, but players walking up will bounce as they hit each step. We need to playerclip it.

    First, select your whole arch, and then clone it. I hold shift and drag it in the top down view. Texture it playerclip. In your visgroups panel, uncheck Auto and then check Clips.

    [​IMG]

    Select only the bottom stair, and then select the Clipping Tool.

    [​IMG]

    Resize your viewports so you get a good look at the top down view. Clip the stair in half from the bottom inside corner to the upper outer corner. In this case, that's bottom left to top right. You probably need to be at the 1u level to do it. Make sure you get it right!

    You don't really need to resize your viewport every time. But it helps when you're getting used to it.

    [​IMG]

    Switch to the vertex tool and select the top vertices.

    [​IMG]

    Move to the side view now, and select the vertices that are on the outside edge and raise them up to meet the next stair. If you select the inside edge, it's possible to grab a center (yellow) handle instead. All the vertices should line up nice and neat.

    [​IMG]

    That gives you a nicely shaped clip brush. We just have to repeat that process on every step. You can clip them all first, or clip and vertex edit each one individually. I find it reduces mistakes if I alternate the tasks, but it goes faster if you clip them all first.

    [​IMG]

    At the end you should have something like this:

    [​IMG]

    That's good for alphas, but what about later on when you need to add trim and detail? Well, you add trim just like making the original arch, except you make a few changes...

    First your arch needs to be as tall as the total height of each step plus half that height again. In my case, thats 8u (step) + 8u (air) + 8u (half the total so far) = 24u. Second, you need to change the wall width to be the width you want your trim to be. Make sure your Add Height field is the same as it was before!

    [​IMG]

    Click OK when you've got it.

    You'll get a similar but thinner arch. Line it up with the top of your stairs and now start cutting and vertex editing it just like you did the playerclip brushes.

    [​IMG]

    Now simply clip the edges off your original stair brushes, using the new trim as a guide. The edges of the steps will get messy, but they'll be buried and no one will know.

    [​IMG]

    That leaves you with this beautiful thing:

    [​IMG]

    You can use these principles to build a spiral staircase of any size. Just remember to keep it square and keep it a power of 2. It requires some math, but you get used to doing it instinctively pretty quick if you're already using these measurements a lot anyway.

    For railings, duplicate the trim for use as a handrail. To add vertical supports, create another, taller arch (probably 64u) with three times as many sides. Choose which brushes to use as supports and just delete the rest. (You have to use only 8 steps to do this, because you can't make an arch with more than 32 brushes. You could also try combining multiple arches, but things could get messy fast.)

    It's really a simple task, but easy to mess up and also time consuming. Take it slow, and if you feel like things look funky, check for invalid solids!

    Post if you have any questions.
     
    • Thanks Thanks x 16
    Last edited: Sep 21, 2015
  2. about drew

    about drew L1: Registered

    Messages:
    47
    Positive Ratings:
    6
    Oh this is lovely, this is.
     
  3. Mick-a-nator

    aa Mick-a-nator

    Messages:
    640
    Positive Ratings:
    314
    A good tutorial to have here for reference, nice and comprehensive.
    You mention it, but it is worth reiterating. Spiral staircases are a rarity in TF2 for a reason, and it isn't because they are fiddly to make. If used, imo they should probably be used in minor areas, with little height and no more than a 180 deg turn. Typically, I would expect a spiral staircase like this to be used like a 90 degree ramp would be (or for aesthetic detail, where this tutorial wouldn't be needed).
     
    • Thanks Thanks x 1
  4. Anreol

    Anreol L6: Sharp Member

    Messages:
    262
    Positive Ratings:
    273
    Way too hard for me (Not really)
    When I'm done with one I will just copy and paste all over the map where I need it.
    Also do I need to blockbullets it?
     
  5. tyler

    aa tyler snail prince, master of a ruined tower

    Messages:
    5,032
    Positive Ratings:
    3,978
    You can use blockbullets instead of playerclip, yeah. Just remember to func_detail it. If you have the newest version of the ABS pack, they automatically compile as func_detail.
     
    • Thanks Thanks x 1
    Last edited: Sep 21, 2015
  6. grazr

    aa grazr Old Man Mutant Ninja Turtle

    Messages:
    5,436
    Positive Ratings:
    3,561
    blockbullets is definitely worth it on regular stairs where your steps are generally quite small, but on a spiral staircase it might wind up (no pun intended) with some weird visual dissonance where decals and grenades hover in mid air over potentially wide steps. Blockbullets serves more to stop strange explosion mechanics from completely missing players inches away when you hit the side of a step, which is also much less likely on a spiral set of stairs.
     
  7. KubeKing

    Server Staff KubeKing Back home in Jupiter, things are getting harder

    Messages:
    1,222
    Positive Ratings:
    1,414
    Woah, seriously? ABS, you sly dog...

    What other magical ABS pack features do I not know of?
     
  8. takabuschik

    aa takabuschik

    Messages:
    660
    Positive Ratings:
    308
    And to think I've been func_detailing them anyways... all that time wasted, would never come back.
     
  9. HAPPY BIRFDAY TO ME

    HAPPY BIRFDAY TO ME bad bad bad

    Messages:
    35
    Positive Ratings:
    9
    why not just use that slanting tool? this seems like an awfully complicated amount of work

    just tried using the slant thing. i see why,
     
    • Funny Funny x 1
  10. Pocket

    aa Pocket func_croc

    Messages:
    4,489
    Positive Ratings:
    2,215
    Just a note that you can shave off some polygons by simply grabbing opposite corners of the top of the clip brush in vertex-edit mode and hitting Ctrl+F. That is, if you can figure out which pair of opposite corners still leaves you with a convex brush. I think it's always the back inner corner to the front outer corner, but don't quote me on that.
     
    • Thanks Thanks x 1
  11. nightwatch

    aa nightwatch

    Messages:
    640
    Positive Ratings:
    446
    Yes, it's the back inner corner to the front outer corner.

    This is clearly the best way to reduce polygons in your map, but in theory you could prevent the precision loss of those weird corner vertices by reducing each brush into a triangular pyramid (Making it easier to edit later, though you shouldn't need to touch it again). I'm going to have to look deeper to see if this is in fact the case.

    EDIT: Hardly a concrete proof, but my test vmf with triangular prisms resulted in no precision loss whatsoever upon reload of the file. I don't know if this would actually be useful, except perhaps to reassure yourself that no player will get stuck between a tiny gap in two clip brushes. I don't think that would be possible anyway because of the way the engine handles gaps between brushes, it's more of an issue with letting the edge of displacements run loose in playable area.