Navigate InfoSuite
Hosted At
Link to DNR

Link to Duke4
Advanced FX - Doors - B3 : Sliding Door

Sliding Door

This is considerably the most complex door to construct. Many tutorials provide a map and just say "pull it apart". Essentially the Sliding Door is just a Star Trek Door with two benefits: 1) The door textures do not squish into the wall, and 2) There are no bugs regarding the door's activation sounds.



Single Sliding Door


Begin by creating a doorway sector.

MISSING IMAGE!


Switch to the smallest grid size and split the doorway sector as shown in the image. The larger half of the split sector will be the actual door sector. Tag it [0,25].

MISSING IMAGE!


Insert three vertices on the one-sided wall of the door sector. They are colour-coded to help you keep track of where they are moved in the next step.

MISSING IMAGE!


Move the vertices as shown in the image. Make sure the door has the triangular tip as shown in the image. The pink vertices will be moved in the next step.

MISSING IMAGE!


Pull back the pink vertices a few squares. A one-sided wall will be attached to each of them. Insert a vertex on each one-sided wall with Insert (inserted vertices are shown as green).

MISSING IMAGE!


Now move the green vertices to the points shown in the image.

MISSING IMAGE!


Finally, you'll be adding sprites to the tiny portion at the end of the door sector. This is the reason the end of the door needed to be triangular, so there would be room left to add sprites. Turn grid locking off with L, and add the following sprites to the door sector: M[StopSound,StartSound], S[UniqueChannel,15], Speed[0,DistanceToOpen]. The DistanceToOpen value for the Speed indicates how far back the door will slide into the wall. A value of 512 is equal to the size of the largest grid square. Change the angle of the S so it faces the direction that the door will close. This is the method of construction used in the official maps, so at this point you can texture the door and test it in the game.

MISSING IMAGE!


Now for optimizations. You may notice that you cannot close the door unless you are facing it directly. To fix this problem, tag the thin sector that is attached to the end of the door [0,25]. Place the following sprites in this thin sector: S[UniqueChannel,15], Speed[0,DistanceToOpen]. The S sprite must be a duplicate of the previous S sprite: it must share the same unique Channel value, and it must also share the same angle. The Speed sprite must use a DistanceToOpen value of 0. If you want to hide the gap at the end of the door, turn grid locking off with L and make the thin sector even thinner, then move the triangular tip of the door closer to the thin sector.

MISSING IMAGE!




Dual Sliding Doors


Create the door sector and tag it [0,25]. Split it in half for dual doors. When you split it, both sectors should retain the tag (make sure they do).

MISSING IMAGE!


Insert three vertices on each one-sided wall. They are colour-coded to help you keep track of where they are moved in the next step.

MISSING IMAGE!


Move the vertices as shown in the image. The two yellow vertices will overlap in the middle. The pink vertices will be moved in the next step.

MISSING IMAGE!


Move the pink vertices back a few squares. A one-sided wall will be attached to each one. Press Insert on each one-sided wall to insert a new vertex (newly-inserted vertices are shown as green).

MISSING IMAGE!


Now move the green vertices to the points shown in the image.

MISSING IMAGE!


Turn grid locking off with L, and add the following sprites to each door sector: M[StopSound,StartSound], S[Channel,15], Speed[0,DistanceToOpen]. The Channel is a unique value which both S sprites will share. The DistanceToOpen value for the Speed indicates how far back each door will slide into the wall. A value of 512 is equal to the size of the largest grid square. Change the angle of each S so they face the direction that each respective door will close. Finally, you can texture the doors and test them in the game.

MISSING IMAGE!




Single Sliding Glass Door


Begin by creating a doorway.

MISSING IMAGE!


Now create a door sector inside the doorway which almost reaches the other end. Tag the door sector [0,25]. The triangular tip at the end of the door isn't necessary, I'm just being consistent. The pink vertices will be moved in the next step.

MISSING IMAGE!


Move the pink vertices back a few squares. A one-sided wall will be attached to each one. Press Insert on each one-sided wall to insert a new vertex (newly-inserted vertices are shown as green).

MISSING IMAGE!


You're finished with the pink vertices. Move the green vertices to the points shown in the image.

MISSING IMAGE!


Enter 3D mode. Press M on the ground just below where the door should be. If you got it right, the brown brick texture will pop up, and there will be a small gap at the end of it (heed the small gap, it's your assurance that you masked the right wall). Texture the masked wall with glass. (#503) is breakable, and (#504) is unbreakable. Use T to make it transparent. Mask all sides of the door (including the end of it) with transparent glass textures.

MISSING IMAGE!


Once the door has glass on all sides, switch to 2D mode. Highlight each of the door's walls and press B, then Ctrl + H to make the walls blocked and hittable. Place the following sprites within the door sector: M[StopSound,StartSound], S[UniqueChannel,15], Speed[0,DistanceToOpen]. For DistanceToOpen, a value of 512 is equal to the largest grid square. Change the angle of the S so it faces the direction that the door will close.

MISSING IMAGE!


At this point, the door is already finished. However, you may notice that you cannot close the door unless you face it directly. If you would like to fix this problem, insert vertices on the wall next to the door sector and join them to the door sector as shown in the image. The two new walls which are created will share attributes of the glass door, so you must unblock them (with B in 2D mode) and unmask them (with M in 3D mode). Tag this new sector [0,25]. Place the following sprites in the new sector: S[UniqueChannel,15], Speed[0,DistanceToOpen]. The S sprite must be a duplicate of the previous S sprite: it must share the same unique Channel value, and it must also share the same angle. The Speed sprite must use a DistanceToOpen value of 0.

MISSING IMAGE!




Dual Sliding Glass Doors


Begin by making your doorway sector.

MISSING IMAGE!


Create two separate rectangular sectors (they will be your doors). Insert a vertex on the end of each door and then overlap them to shape the doors like triangles. Your doors should look like the image below. Tag both door sectors [0,25]. The pink vertices will be moved in the next step.

MISSING IMAGE!


Move the pink vertices back a few squares. A one-sided wall will be attached to each one. Insert a vertex on each one-sided wall as shown in the image (inserted vertices are shown as green).

MISSING IMAGE!


Now move the green vertices to the points shown in the image.

MISSING IMAGE!


Enter 3D mode and use masked walls to surround your doors with glass textures. (#503) is breakable, and (#504) is unbreakable. Use T to make them transparent.

MISSING IMAGE!


Switch to 2D mode and make all of the masked walls blocked and hittable (using B and Ctrl + H). Add the following sprites to each door sector: M[StopSound,StartSound], S[Channel,15], Speed[0,DistanceToOpen]. The Channel is a unique value which both S sprites will share. The DistanceToOpen value for the Speed indicates how far back each door should slide into the wall. A value of 512 is equal to the size of the largest grid square. Change the angle of each S so it faces the way that respective door will close.

MISSING IMAGE!


At this point, the doors are already finished. However, you may notice that you cannot close the doors unless you face one of them directly. If you would like to fix this problem, connect the door sectors together as shown in the image. The two new walls which are created will share attributes of the glass doors, so you must unblock them (with B in 2D mode) and unmask them (with M in 3D mode). Tag the new sector in the middle [0,25] (it is just one new sector since the vertices in the middle are merely overlapping). Place the following sprites in the new sector: S[Channel,15], Speed[0,DistanceToOpen]. The S sprite must be a duplicate of the previous S sprites: it must share the same Channel value, and it must also share the same angle as one of the two S sprites placed in the previous step (it doesn't matter which one). The Speed sprite must use a DistanceToOpen value of 0.

MISSING IMAGE!




Sliding Window Doors


It is also possible to add windows to Sliding Doors. This example begins with a set of functional Dual Sliding Doors, although you could also use a Single Sliding Door instead.

MISSING IMAGE!


The first step is to drag the top and bottom vertices of each door inward a bit so we can get access to the one-sided walls.

MISSING IMAGE!


Now we must insert four vertices per door. These vertices will be the basis for our windows in the next step.

MISSING IMAGE!


Draw a rectangle in each door sector to connect the newly inserted vertices for that door. These sectors will be the windows.

MISSING IMAGE!


Tag both window sectors [0,25]. All new/moved vertices can now be dragged outward to reshape the door sectors as they were at the beginning. You can also reposition/resize the window sectors to your liking.

MISSING IMAGE!


Place the following sprites in each window sector: S[Channel,15], Speed[0,DistanceToOpen]. All of the S and Speed sprites used for this effect (in both the door and window sectors) should have identical values to avoid issues. Each window's S sprite must also share the same angle used for the S sprite in that respective door sector. Now, in order to avoid a lot of graphical/overlapping issues, I recommend turning off grid locking with L and moving all of the window sector vertices inwards a tiny bit so they do not actually touch the red two-sided walls of the doorway sector. You can also move the top and bottom door vertices inwards a bit just to keep the walls relatively straight.

MISSING IMAGE!


The remaining work is purely cosmetic, so let's switch to 3D mode. Raise the floor and lower the ceiling of each window sector by a few units. Texture the door and window sectors. Use the R key on each window sector's floor/ceiling to make them move with the door. Optionally, you can mask a glass texture over the windows, and make the glass blocked and hittable (using B and H in 3D mode). Texture (#503) is breakable, and (#504) is unbreakable. Now you can test the doors in the game.

MISSING IMAGE!




Sliding Mirror Doors


It is even possible to turn a Sliding Door into a mirror. This example begins with a functional Single Sliding Glass Door (it is not possible to build Dual Sliding Mirror Doors since the two mirrors would interfere with each other). Notice that the optional sector at the end of the door is already included, so the door can be closed without having to face it. This has the added benefit of avoiding problems later (masked texture tend to want to apply themselves to new walls, so if the optional sector were to be attached later, the mirror texture would possibly have to be manually removed from the new walls).

MISSING IMAGE!


Remove the triangular tip at the end of the door by overlapping it with a nearby door sector vertex. Now make both sectors thinner. You will likely have to rearrange the sprites to make them fit within the sectors. Choose the side of the door you would like to be the mirror, and mask that wall as a 'solid' one-sided masked wall (use the 1 key). Change it to the MIRROR texture (#560) and make it blocked and hittable. Basically, this transforms the door sector into a combination of a Sliding Door and a 'behind-the-mirror' sector. The door will work now, but it will have an ugly HOM effect within the door sector. To hide the HOM effect, make sure the other masked walls are not transparent or using a texture that can be seen through. I usually use wooden textures.

MISSING IMAGE!


Note: When a mirror is destroyed, it displays the texture MIRRORBROKE. You may notice that the broken mirror texture is not properly aligned. To fix this, temporarily swap the MIRROR texture with MIRRORBROKE (#70), align it however you want, then swap it back to the MIRROR texture.


Return to top