Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
esayeek

ceiling fan

Recommended Posts

a demonstration i made of a ceiling fan:

fan.wad

95kb or so, doom2 with a boom compatibile source port, map01, sp only.

bow down before my knees at my superior editing abilities!!!

anyway, load it up and take a look, all the level does is demonstrate one ceiling fan.

is there any practical usefulness for this effect that anyone can think of?

my understanding of hexen is limited, but can polyobjs be used in zdoom to create a spinning fan? i've never actually played hexen nor know what a polyobj is, so i was wondering on this one.

Share this post


Link to post

Polyobjects can't be used to make a spinning fan, because polyobjects are solid. Meaning, it stretches from ceiling to floor and the player can't stand inside it. I haven't (really) tried using polyobjects... if they are 'boxes' bordered with 1s linedefs you're out of luck, but if they consists of real sectors with 2s borders you MIGHT be able to combine this with Boom's height-transfer property (trigger 242) to make a (solid) polyobject that -appears- to be suspended.

I'm at work now so can't check out your example level, but so far there have been two methods for creating moving ceiling fans (as far as I know anyway):

First one works with animated textures, that blink in and out of existance. By using an animation that shows stage '1' of the animation for, say, X position 0-32 and stage '2' for X position 33-64 (etc) and by X offsetting each blade of the fan by 0x32 for stage '1', 1x32 for stage '2' (etc) you can create the illusion of movement. Good examples are the surf in Ritenour's "Earth" and the flags in Batman Doom (done the same way).

Seeing as how you use Boom, you have probably found the second method: splitting the fan's ceiling into segments like a sliced pie, and using 'lights off' and 'lights on' triggers to make the lightened pie-segments look like moving blades. The triggers are activated by a dummy player start position standing on a repeating moving conveyor belt.

Both methods can be adapted to switch the movement on and off. See Caverns of Darkness for a method to do that with animated textures. For Boom this is pretty much evident.

Share this post


Link to post

right sorry i didnt mention how i did it, i used the animated textures way; it needs boom or compatible because i gave my animated textures new names and defined them with an ANIMATED lump. i didnt think of using x offsets and then squishing it all into one texture so there are quite a few of them (animated textures).

the sector lights way sounds interesting, how do you coordinate the triggers though?

polyobjs are only 1s linedefs (or some polyobj equivalent)? oh well so much for that one.

i will now download Ritenour's "Earth".

Share this post


Link to post

Yeah, you only need to use one animated texture for the fan. The size of that texture depends on the speed of the fan (a blade passing a certain point once every two frames needs less than a blade passing once every four frames)... plus, you can make one big animated texture with several types of blades at once, and use X offsets to animate the blades and choosing between different kinds of fans.

As for the Boom method... I usually make two conveyors, already moving, parallel to eachother and using two dummy player start position. At regular intervals trigger linedefs are placed for this dummy player to cross... the first conveyor with only 'lights off' ones, and the second parallel one with 'lights on'. A dummy sector attached to these conveyors controls the light level. At the end of the conveyors a silent line-to-line teleport moves the dummy player back to the start position. Say, you want a blade to move from position A to B to C to D. In order to do that, you want A to be lightened and B, C and D to be darkened. In the next frame, A has to be darkened, and B has to be lightened. This is done by the first trigger on both conveyors. Etc.

You can also play around with triggers '213' and '261' (set ceiling or floor lighting) instead, to avoid 'shadows' on the floor.

I first saw this Boom method in the level Gary Gosson contributed to the Mordeth TC... credit where credit is due :)

Share this post


Link to post

Oh, something I forgot to mention: I make blades that consists of more than one "pie slice", to avoid "jumping".

Share this post


Link to post

Well, I've actually made a fan for my new ZDooM episode, done using the animdefs lump, and bitmaps that are rotated 30 degrees, 60 degrees etc. But remember you need 2 animated textures (one for each side of the fan, as it spins the other way on the other side)
I plan to turn it on and off as well.

Share this post


Link to post

It's doable in EDGE as well, in a method that's a little screwy but looks right.

First, create your "pie sectors" (16? 24? 32? however many you want!) and tag them in order (1..n if you haven't used any tags yet).

Second, you need to make a new linetype - one that cancels extrafloor effects (can't remember what goes in this off the top of my head, so sorry).

Third, just set up a series of RTS scripts that work by canceling the trailing edge of the fan and creating the leading edge in the next sector, then moving some sort of control sector up 2 units.

Finally, make sure there's some other script that activates when the control sector reaches the end of its loop and lowers it back down to the beginning so this can start all over again.

The nice thing about this is that you can modify it so that the fans are slanted (well, sorta - EDGE don't got slopes yet); unfortunately, you can't be carried on the fan blades (heh - that might have to wait for EDGE's variation on polyobjects?).

Share this post


Link to post

Hmmm.. interesting concept. You could do this in Boom as well, using the transfer height properties trigger (242) instead of light triggers. By raising / lowering the control sector's height very fast you could create the illusion of 3D spinning fans...

The player could be transported on a blade by scrolling the floor, and maybe use a 'hurting floor' property (or better: instant death property) for the spaces between blades. Of course, synchronising the scrolling floor with the actual blade movement is going to be a lot of trouble...

That way you could make some big ass ventilation fan, where the player has to jump on top of one of the blades (and avoid the spaces between blades) in order to reach the other side of a room. Drool :)

Share this post


Link to post

Works under legacy as well, though I notice a little slowdown on my pos 633 celeron, but it's a celeron what can I expect. :)

Anyhow very kool, though do you all get rotating lines on your floors as well with your source ports?

Share this post


Link to post

Ultimate DooMer said:
But remember you need 2 animated textures (one for each side of the fan, as it spins the other way on the other side)


Er, no. The animation only has two states: 1) showing a line (the blade) and 2) not showing anything. This state is for both sides of a blade (ie. both sidedefs) the same.

I strongly suspect you're not talking about a ceiling / floor fan but about a wall fan, in which case you're absolutely correct ;)

Share this post


Link to post

You can make it with 3d floors in legacy aswell. :p

I was going to, but then I figured. BAH fuck it. and just had them stand still.

Share this post


Link to post
Mordeth said:

I strongly suspect you're not talking about a ceiling / floor fan but about a wall fan, in which case you're absolutely correct ;)


Yep, I was talking about a wall fan (one that you can go through - after you've switched it off of course)

Share this post


Link to post

[QUOTE]kristus said:
[B]You can make it with 3d floors in legacy aswell. :p

How do you get them to spin? I'd love to see this!

Share this post


Link to post

[QUOTE]XDelusion said:
[B]

kristus said:

You can make it with 3d floors in legacy aswell. :p

How do you get them to spin? I'd love to see this!


FraggleScript, I bet.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×