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.