UED2 Main

UED2 Tutorial - Movers explained

Movers play an important part of UT.
This is what you need to use when creating doors, elevators
and most moving objects in this game.

A mover is basiclly a regular brush, added as a mover, but have
additional moving properties.
How they should be activeted, like touch, trigger, looping or by other
types.
When moving a mover use keypoints as targets when moving from
one position to another.
This is known as keyframes and they are just different positions
of the mover brush.

To create a mover you either create a brush like any normal brush
or a complex one, still the same way as a normal complex brush.
(Check my complex brush tutorial for more information).
When the brush is done you place the brush where the mover is to be
and then press the "Add mover" button.
A purple framed brush should appear.
That is the mover, but as it is nothing will happen.

Mover problems that have been reported is when the mover
do not seem to block players or have a collision with actors that
are somewhat weird.
This is a scaling problem as the movers true collision size get
all screwed up.
To avoid this problem reset the brush scaling before adding a mover.

Here is a list of properties you might take a closer look at:

Property Specific
+Mover
bDamageTriggered Damage infilicted on the mover is needed to trigger it.
bDynamicLightMover Lighting is calculated for each keyframe of the mover.
BrushRaytracekey Add lightning to the mover as if it was in the specified keyframe.
bTriggerOnlyOnce Mover will turn inactive once triggered.
BumpEvent Event to happen if mover is bumped when state is BumpOpenTimed.
BumpType What type of class that can trigger the mover.
DamageThreshold Amount of dmg needed to trigger the mover if bDamageTriggered.
DelayTime Time before mover actually starts to move when triggered.
EncroachDamage Amount of damage inflicted upon players if hit by the mover.
KeyNum Current mover keyframe and at start of game.
MoverEncroachType Mover reaction when hitting a player.
MoverGlideType Mover accelerates or move with constant speed.
MoveTime Time used by the mover to move between two keyframes.
NumKeys The amount of keyframes the mover moves through.
OtherTime Time delay between open and closed when state is TriggerPound
PlayerBump Event to happen if bumped by player when state BumpOpenTimed.
StayOpenTimed Delay to wait before mover returns to orginal state.
WorldRaytraceKey Add lightning to the world as if it was in the specified keyframe.


+MoverSounds
ClosedSound Sound heard when mover has finished closing.
ClosingSound Sound heard when mover starts to close.
MoveAmbientSound Sound heard while moving, either opening or closing.
OpenedSound Sound heard when mover has finished opening.
OpeningSound Sound heard when mover starts to open.


EncroachType Specific
Stop Mover halts and will not be actiavted again.
Return Mover returns to its last state (open or closed).
Crush Instantly kills the player/actor.
Ignore Mover actually moves straight through players/actors.

Under Object you have Inital State.
This is how the mover is triggered.

Inital State Specific
None Nothing will trigger this mover (Inactive).
StandOpenTimed Moves through its keyframes and then returns to orginal state.
BumpButton Don't know how this works.
BumpOpenTimed Moves through its keyframes and then returns to orginal state.
TriggerPound Mover moves repeatedly as long as player triggers the mover.
TriggerControl Mover will move as long as player stays in trigger radius.
TriggerToggle Mover change between open and close state when triggered.
TriggerOpenTimed Like bump/stand open timed but with a trigger.


Open/Close and moving:
The term Open and Close when refering to a mover is to make
things a bit easier.
Open is refered to when the mover is moving from one keyframe to
the next in line. Like 0 through 7.
Close is used when the mover moves back to the base position again.
Keyframe 7 back to 0.

Changing the keyframe and mover position:
To make a mover move you need to position the mover where
you want it to move in the different keyframes.
Press the right mousebutton on the mover and select "Movers" and then
the appropriate key 0-7. Move the mover to the position you want it to
move to.
The current keyframe you have selected will show under "KeyNum" in the
mover properies and will also be the key frame the mover starts in.

When the mover is activated it will cycle through all its keyframes
(0-7) and then return to its original keyframe/position.
The amount of keyframes it will cycle thorugh is specified with the
"NumKeys" property.

Changing the movers texture:
If you want to change the textures on the mover you need to
recreate it and add a new mover.

If you have patch 4.36 installed you don't need to do that.
Press the right mousebutton on the mover and select "Movers" and then
"Show polys" and the mover textures will show and allow you to change them.

StandOpenTimed or BumpOpenTimed:
If you create simple touch triggered movers you should use either
StandOpenTimed or BumpOpenTimed.
If you create an elevator you must use StandOpenTimed and
BumpOpenTimed for others, like doors, if you want the best
support for bots.
They treat BumpOpenTimed movers as doors and StandOpenTimed as elevators.

Mover, into walls or not:
As far as I know there is no problem for a mover to move into solid
walls.
However, a mover is solid and so is the wall which makes it theoreticly
impossible.
Both ways of dealing with this, creating openings for the mover and not,
are used widely.

In some situations things might look weird if players are able to see that the mover
actually move into a solid wall.

My tutorials deal in almost all cases with movers that have space created for them
to move to/inside (breakable glass/walls do not).


Different mover types:
If you press the right mousebutton on the "Add mover" button
you get a list of movers you can add.

Movers Specific
Mover This is the default mover type.
AttachMover Allows actors to move along with the mover.
AssertMover Mover that will keep opening as long as trigger is active.
RotatingMover Like a normal mover but have a default rotation rate.
ElevatorMover Allows the usage of elevator triggers.
MixMover A combination of Elevator, Attach and Gradual mover.
GradualMover Will move a keyframe by different triggers.
LoopMover Keeps looping through its keyframes until it's not triggered.

Mover
This is a normal mover.

Attach Mover
The attach mover is used to make objects move along with the
mover when activated.
Under the property "AttachMover" you have "AttachTag".
All items that has the same tag as this "AttachTag" will be
affected by the mover.
Note that the object(s) need to be movable for this
to work, so change the bMovable to True, bStasic to False and.
bNoDelete to False. (All under Advanced on the object).
Lights may not work entirely as you want so testing might be needed.

Actually you don't need to have attach mover to make objects "stick".
Under the property "Movement" on the object you have "AttachTag". Just change this
to the same as the Tag on the mover and you have the same effect.

Assert Mover
This mover will move through its keyframes as long as the trigger
is active (player in trigger radius).
When no longer true the mover will stop and move back to base position.
bOnceOnlyStopOpen - The mover will stay at its last keyframe if true,
when it reach that keyframe, otherwise it will return.
CloseTimes[X] - Time mover use in the close movement.
OpenTimes[X] - Time mover use in the open movement.
WaitUnAssertTime - Timedelay when trigger is no longer active
before the mover starts closing.

(I haven't been able to get this mover to work 100% and especially
if the bTriggerOnce is false).

Rotating Mover
The rotation mover have one extra property set which is "RotationRate".
By adjusting the value you set a default rotation speed of the mover
which it will have at all times.

This is kinda useless, unless I missed something, considering that
all objects allready have the "RotationRate" property set, located under
"Movement" that do and act the exact same way.
The only differance is that you need to set "FixedRotation" true.

The speed you set can be negative or positive, one for each direction.
500 is pretty slow and 5000 normal.
Pitch means movement up and downwards, Yaw movement sideways (left/right)
while Roll rolls sideways, left or right.

When the mover rotates it rotates "out" of keyframe meaning that
if it is activated/triggered it will rotate back to frame and then
keep on rotating, which could produce some weird behaviour.
This also applies to EncroachType. Best is probably "IgnoreWhenEncroach".

Elevator Mover
The Elevator mover allows a better control of elevators movement.
By adding a ElevatorTrigger you can specify which keyframe
the mover goes to.
The Event under the Elevator trigger must be the same as the elevator
tag and the property GotoKeyframe which keyframe the mover moves to.
(More info on the elevator trigger in trigger turorial).

Mix Mover
This is a combination of Attach, Gradual and Elevator mover.
I have seen somewhere that even though this is part elevator mover
it do not support elevator triggers.

Read each individual mover for more info on this Mix mover.

Gradual Mover
The gradual mover is a mover desinged for more than one trigger.
It will move one keyframe for each time a trigger is activated.
You might say that this is more like a "quest" type of mover there
a player has to activate more than one button/switch to get the mover
to "open" to it's fullest.

This is its specific properties:
CloseTimes[X] - Time mover use in the close movement.
Events[X] - The event tag to be activated when the movement is complete.
OpenTimes[X] - Time mover use in the open movement.
Tags[X] - This the tag connected to each keyframe.
You need to change the InitalState to GradualTriggerOpenTimed.
(There is other selections but I didn't get them to work correct).

On the trigger you need to change the event to the tag[X] for
each keyframe (one trigger for each keyframe).
The first trigger that activates the mover to move from keyframe 0 to 1
must have the same Event name as the movers Tag[0].
Tag[5] would then be the tag for movement from keyframe 5 to 6.
It also seems that the mover will not move to any keyframe unless
the preceeding keyframe has been actiavted.
This means that you need to activate the triggers in the correct order for it
to fully open.
The red lines you normally see between trigger and object is also gone.
(Remember to set the correct amount of keyframes (NumKeys)).

Loop Mover
This mover will keep move through all its keyframes repeatedly
until the trigger is no longer active.
If the mover, however, is blocked it will stop moving.
You also need to set the Initial State to LoopMove.
(Remember to set the correct amount of keyframes (NumKeys)).