|
Strange Movers
by: Andrew [email protected]
Using Movers as things which
don't appear to be
movers etc.
First I want to say that this tutorial is not going to have any
pictures included. Also you'll have to know how to build things
yourself, adding and subtracting, and if you don't I suggest reading
a beginners tutorial. I wrote this from memory so if any of the
names are wrong then sorry. Right:
What I'll talk about first
is exploding crates. Unreal Classes supply breakable crates and
exploding Tarydium Barrels. But it's possible to build your own
exploding crates without scripting, which I have completely avoided
so far.
First, build a crate in a box outside your level (a
solid crate, not one from classes), suitably decorated with warning
stripes or something. Intersect in and put it on the floor in your
level. If you like you can change the floor texture underneath it,
make it scorched or something. You may have to create your own
scorched texture, because there aren't very many (if any) in unreal.
The idea is no one should be able to see the scorch marks until the
crate has gone.
Now set up the mover so it's damage
triggered, put it on TriggerOnceOnly, set Object to TriggerOpen-
Timed, and set MoveTime to 0. Put Keyframe 1 to underground (or
anywhere outside the level), and make sure it's set to
IgnoreWhenEncroached. Hope you know how to do all that and where to
find them. To make it damage triggered simply make DamageTriggered
be True and set DamageThreshhold to 5 or so.
Set the Event to
anything you like. If I have to be specific make it Banging. Now add
some Explosion Chains (they're in effects) to the area inside the
crate. I built five of them and set them on size 4, that makes a
pretty big explosion but it might not run so well on slower
computers. Set their tag to Banging or whatever Event you gave your
Mover, and set the delay time of the explosions to 0.01 . Now try
out your level, see if the crate explodes when shot. If not then you'll
just have to check that everything's set up right, perhaps I
have left something out here.
Now, if all is well then we
want to add some exploded bits to fly around when the crate
explodes. Put an Exploding Wall inside the crate (under Effects) and
set it's Event to Banging or whatever you called your Mover's Event.
Hit the + Collision and set it's ProjectileTarget to False. This
means that it can't be activated by being shot, and sort of "steal"
the shot which should have hit the crate. Make sure OnlyTriggerable
is set to True.
Set the WallTexture under + ExplodingWall to
whichever texture you use most on your crate, and experiment to see
how many wall pieces at which size it needs to look
realistic.
Incidentally this is more or less how you build
breaking glass but there are other tutorials for that. Now, if you
want two exploding crates side by side and want them to set each
other off, then here's how you do it. You have one crate with an
Event called Banging. Possibly. Set it's Tag to, say, Banged and
build another crate just like it with an Event of BangingB and a Tag
of BangedB. Now add two Dispatchers (under Triggers, in Classes)
anywhere on your level, although nearby would be better to avoid
confusion. Set the first one's tag to Banging and then open +
Dispatcher, open + OutEvents and type BangedB in the first slot. In
the first slot in + OutDelays enter the amount of time in seconds
between the first crate exploding and the second crate exploding,
any time from 0.2 to 0.05 would be good. In the second Dispatcher
set the Tag to BangingB, and the first OutEvent to Banged, but keep
the first OutDelay the same. This means that when one crate dies,
the other crate die almost immediately. The second crate to explode
will trigger the first again but that's alright because they're both
TriggerOnceOnly. Test your level. Hopefully it's cool.
Right,
if you want you can make three crates in a row, and have the middle
crate triggering the other two, and each of the outer ones
triggering the middle. If you shoot the one on the right, then the
it explodes, then the middle one and then the one on the left, all
in quick succession. If you shoot the middle one, then it will
explode first followed by the left and right ones. From this you can
build an entire group of crates and make them all explode in
sequence, if you have got far too much time on your hands. This will
probably take up[ a lot of memory.
Hopefully you realize that
it could be anything you want, not just crates. Entire rooms filled
with dynamite, or whatever you want. If you don't want them to
explode in sequence, instead all at once, you can make them all as
the same mover. If this is inconvenient for whatever reason, then do
without the Dispatchers and have the Event of one Mover as the Tag
of another. You can also make them not triggered by being shot but
by, well, pushing a plunger. Almost nothing is impossible...
Non-exploding breakable crates
Well, basically the same as exploding crates except that you
don't include the chain explosions and don't make them trigger each
other. But now it gets harder, when we start making them break in separate
pieces, i.e. building separate movers for just one crate. The
easiest pieces to divide a crate into is of course each of the
sides, top, bottom, front, back, left and right. This means more
ExplodingWalls and more work. Now our problem is that the top can
remain hanging in mid air when the sides have all been shot, and the
nicest way to cure this is as follows:
Let's say the sides of
the crate have the following events: CratewallA, CratewallB,
CratewallC and CratewallD. Now add 4 Dispatchers, each one with the
tag of one of the walls,OutDelays left at 0, and all with
CrateRoofCount. Now add a Counter (under Triggers) and delete it's message, set
it's Tag to CrateRoofCount, make it count up to three,
and make it's Event CrateRoof, this being the Tag for the top of the
crate.
This means that as soon as three of the sides of the
crate are broken, the top will break too. This way does involve a
lot of work, though, so you might want to just have the top of the
crate attached to one of the walls, so when it goes, the roof does
too.
You can divide your crates (or whatever) up in
whichever way you like, along seams or edges, or in random jaggedy
patterns. Hope you understand what I'm saying.
One more
special thing: You can have these crates next to exploding crates in
your warehouse or whatever your building. Simply make the exploding
crate trigger all the pieces of the non-exploding crate, possibly
with a dispatcher delay it a bit, but it will probably look just as
good without one.
Next: Collectables which
aren't really
collectables
This is an idea which I've seen used in levels downloaded off the
Internet. Build a mover in the shape of a key, and put it on a
table. (Or whatever.) Set it's Event to Unlock, make it
BumpOpenTimed, set it to TriggerOnceOnly, put keyframe one inside a
wall, make it IgnoreWhenEncroached, and set it's MoveTime to 0. Give
it a collectable sort of noise as it's OpeningSound, and add a
SpecialEvent with the Tag of Unlock and set to DisplayMessage (under
Object). As it's message, type something like: Picked up the Silver
Key. So now it looks and sounds just like a collectable. Now, in
front of a door somewhere in the level, add a Trigger. Set it's Object to
OtherTriggerTurnsOn, set it's Tag to Unlock and it's Event
to the door's tag. So, the idea is, you go to the door but can't open it, then find a key, then come back and the door opens. Just
like switches really but you're given the illusion that you're carrying the key. This could also be the gem of power which you
stick in to it's holder and then everything explodes, or a magnetic
card to open a security door. Whatever you want, as I'm sure I've said before.
Finally: Complex movers
It is possible to build a lift with a door. Make a button just
outside the lift. The lift mover will have to be built in separate
pices, the lift itself and it's door as two different movers. The
button has the event StartLift. Then add a Dispatcher, with the Tag
of Startlift. In OutDelays, in the first and second slot enter a 1.
In OutEvents, type in LiftDoor in the first slot and Lift as the
second.
Now in your lift properties, enter the Tag as Lift,
and set the object to TriggerToggle.
Put keyframe 1 wherever
you want the lift to go. For the door, set the Tag to LiftDoor, set
Object to TriggerToggle, and then open + Mover. Set NumKeys to 4,
and set Movetime to 3.
Now, keyframe 0 has to be the door
open next to the lift's keyframe 0. Keyframe 1 is the door closed
there, keyframe 2 is the door closed at the lift's keyframe 1, and
keyfame 3 is the door open there. Got that? You'll need a button at
both places the lift goes.
To add complication, you can have
double doors, lift doors and outer doors if you understand what I
mean, or even a fast train which goes on a relatively straight line
between two stops with opening and closing doors. If you're smart
enough you can put a button inside a lift, and make it move with it,
but you'll have to have a Trigger to trigger the button, rather than
the button being BumpOpenTimed. This is due to the fact that the
button would only trigger the lift when it had already got to where
the lift is going.
Problems: This is quite complicated, and
also if you stand inside the doors as they close they will bounce
back and the whole lift will get out of sync. This means you have to
set it all on CrushWhenEncroach, but then the lift will be a
dangerous place.
Well that's it. I hope you understood most
of it because I was hoping you already knew how to use things like
Dispatchers and Counters.
|