Cyclones
In this tutorial, you will learn how to implement cyclone effects. We will make a "working" tornado of sorts. It will spin you and lift you and throw you on your butt. By reversing direction, it would suck you down. In water, this would be a whirlpool.
Glossary:
Zone: In Unreal, a closed area defined by a Zone Info
object.
Cyclone: also Tornado, Twister, Whirlpool, Vortex
There's a storm brewing...
Zones are amazing things. You can be in them and not even know
it. In this case, you will. There are properties of zones, namely
the direction and strength of gravity, and a "velocity" which can
move you around. You can also play with the ground friction. No
friction would have you sliding as on ice.
The main property
we will play with is the zone velocity. In any zone, you can have it
move you around, like a wind blowing or river sweeping you down. But
a zone cannot spin you around (unless you know how to do this,
please let me know). However, nobody said you can"t have more that
one zone. In this example, I create 4 pillar-like zones, arranged in
a 2 x 2 square, all side-by-side. Each zone has one direction, and
that direction blows you into an adjacent zone. If we were to number
the zones, looking down on them, like this:
1 2
3
4
then we will have zone 1 blow into zone 2, zone 2 blow into
zone 4, zone 4 blow into zone 3, and zone 3 blow into zone
1.
So, you create your 4 zones, and in each one, you put a
ZoneInfo class. On each one of those, you will set the ZoneVelocity
X and Y parameters to point into an adjacent zone. In this
example:
1 -> 2 is +X
2 -> 4 is -Y
4 -> 3 is
-X
3 -> 1 is +Y
You choose the speeds, but they don"t have
to be big. Anywhere from 1 to 10 produces a nice effect. You can go
faster, but it might not play too well.
You may want to
adjust the ground friction for all 4 zones as well. The default is
4, but if you want more of an effect, reduce it.
The Answer is Blowin" in the Wind
Now, to get a tornado to lift you up, you should also set a Z
velocity for all 4 zones. Again, smaller numbers will do. For a
whirlpool, use negative Z velocities.
One thing I haven"t
done yet is actually lift you off the ground, so now it"s time for
that. In the example map, if you walk into the twister, it will move
you around, but it will not lift you up. You have to jump, then off
you go. You could drop the ground around the twister, so the player
will already have their feet off the ground entering the zones, but
that"s not really cool. You could put a power-up on a pedastal in
the middle of the storm to encourage a jump, kinda cheezy. Setting
ground friction to zero will not lift you up, you are adhered to the
surface until you jump or something else gets you off the ground. It
does make it slipperier, like ice, so the wind blows you around
faster. But there are two ways I know of to get you off the ground
without jumping or blasting: set the gravity to point up, or make a
kicker. In this case, the gravity is more elegant. Play with the
gravity vectors in the zones. Normally, they point down (-Z). Set
all to zero, or even set the Z value positive (1 will do). Up up and
away!
Once you are off the ground, there is no ground
friction, so two things happen: 1) you can now use any "air-control"
(that magical flying ability), and 2) the twister will tend to toss
you out one side. If you want the player in the twister longer, you
can make it bigger in the XY plane. You could flare the top, so that
the top is wider than the bottom. You can also point the velocity
vectors more toward the middle, instead of just to the left, right,
up, or down. This will tend to keep the player more toward the
center of the twister.
Toto, we are not in Kansas anymore...
You may also want to see how it works with fewer or more zones.
The fewest would be three. Six or eight would work, may be
overkill
For added effect, you could stack one twister atop
another. You can set the lower one to be stronger (as in nature) or
weaker, depending on what you want it to play like.
You could
also try nesting twister zones. Meaning, you can have a "core" set
of, say, these 4, and then surround those with more zones. You could
make those outer zones more or less "fast" and more or less "inward
pointing". If you want to draw someone in and keep them in, make the
outer zone point in more. It will toss them around more keeping them
"in the zone" heh heh heh. You could also create an "eye of the
storm" by having no zone in the middle. Say, 8 zones surrounding
nothing, like a hurricane.
Texas City Twister
Zones are inherently invisible. So, as yet, you can"t see the
thing, you just see what it does when you get into it. I will leave
it to you to design a convincing atmospheric effect. I suggest using
sheets with semi-transparent dirty textures. You can use U-pan
texture properties to make it look like the stuff is moving. If you
want to get fancy, you can make the sheets from mover brushes, set
to rotating around the center of the twister. You can also try the
Pillar of Fire from the Exodus story, a swirly cloud, sparks, use
your imagination.
You should also pick a nice sound for your
effect. Real tornados sound like jet engines or big freight trains
roaring by real fast.
If the intent of your twister is to do
damage, play with the zoneinfos" pain, destructive, and damage
settings to suit your needs.
Tempest in a Teacup
These are screen shots from that map. Notice the top view shows
the 4 zones. I placed cones in each zone, which point in the
direction of the zone velocity vector (or "wind direction") for that
zone. Notice in the side views the green rectangles are the twister
zones, so this thing throws you almost to the ceiling. If you play
this and walk in between the cones, you"ll start swirling
around.
This
shot"s 3d view is looking down into the "eye" of the storm. I like
to use that texture on zone surfaces, as it shows their alignment.
In this case the alignment is not critical, but it does show the
"wind" direction in the twister.
This shot shows the actual
settings for Zone 1. 

This enlargement shows the
settings in the Zone 1 properties.