Doom monster
Display Options
RSS
/tutorials/Scrolling Effects

Scrolling Effects

One of Boom's major features is the introduction of regulated scrolling walls and flats, as well as conveyors. These new triggers come in different flavours: "static scrollers" (always on), "displacement scrollers" (active only during changes in its control sector) and "accelerative scrollers" (active after a change in its control sector).

Static Scrolling Walls / Flats



Constant scrollers are defined by a control linedef, with the length and orientation of the control linedef controlling the speed and orientation of the scrolling motion. For each 32 units of length of the trigger, the tagged wall or flat scrolls 1 unit per frame. The control linedef can be seen as a "vector" - yes, your physics classes now finally pay off =) Like vectors, control linedefs can interact with each other in an additive fashion. This way you can change these scroller types, although they themselves are static. Some examples will follow after the table below.

Description

Trigger

Scrolling wall to the left

48

Scrolling wall to the right

85

Scroll tagged ceiling

250

Scroll tagged floor

251

Description

Trigger

Carry objects on tagged floor

252

Scroll tagged floor plus carry objects on it

253

Scroll tagged wall same as floor/ceiling

254

Scroll wall using sidedef offsetts

255

Conveyor belts are made by tagging a sector with trigger number 253. The length and orientation of the linedef carrying this trigger (called the "control linedef") defines the speed and direction of the conveyor belt. The control linedef does not need to be a part of the actual conveyor as seen in the example below, but it needs to be tagged to the affected sector. In the example below the blue control linedef is tagged to the horizontal (upper) belt and the red one to the vertical one. The orientation of the scrolling is the same as the orientation of the control linedef: from left to right as seen from the front side of the controller (visualised by the arrows). Speed is determined by the length of the controller, with 64 units being half-way normal speed and 256 about running speed.

To duplicate his effect, tag a linedef with a dummy trigger (eg. "lights off") and tag it to the desired sector. Check if the direction and length of this future control linedef is to your liking. Compile your level and use CLED to assign the correct trigger 253 to the control linedef, like "cled mywad.wad linedef(mapnumber,linedefnumber).type=253".

Trigger 254 is used to synchronise floor movement with wall scrolling, like in "mall" type moving escalators. These walls need to have the same tag as the control trigger. One way to do that is to give these walls a dummy trigger (eg. "lights off") and tag them to the scrolling floor sector. Use CLED to replace the dummy sector with the correct one; this will preserve the wall's original tag.

An uncomplicated way to achieve scrolling walls is done by applying trigger 255. Scrolling is done giving this wall this trigger and intendedl X and/or Y offsetts. The X offsetts controls the rate of horizontal scrolling (1 unit per unit offset) while the Y offset controls the rate of vertical scrolling.

Displacement Scrollers



With displacement scrolling the triggers control a change of movement. The scrolling changes proportionally in reaction to a change in total sector height (height difference between ceiling and floor) on the 1st side of the control linedef (which is the linedef bearing the trigger). The orientation of the scrolling movement is laid down by the orientation of the control linedef, but the scrolling movement change is determined by the following formula:

(1st sidedef sector height change) x (control linedef length)
______________________________________________________
32

Description

Trigger

Scroll tagged ceiling wrt sector
at 1st sidedef control linedef

245

Scroll tagged floor wrt sector
at 1st sidedef control linedef

246

Description

Trigger

Carry objects at tagged floor wrt
sector at 1st sidedef control linedef

247

Carry objects and scroll floor wrt
sector at 1st sidedef control linedef

248

Scroll tagged wall wrt 1st sidedef

249

In simple words: "the tagged sector's ceiling/wall/floor texture scrolls in the direction of the scrolling trigger line, when the sector on the trigger's first sidedef changes height. The amount moved is the height change times the trigger length, divided by 32" (from Jim Flynn's linedef guide). These control linedef act - like the static scroll triggers - additive and like vectors. Trigger 249 will allow for walls with the same tag as the linedef trigger scroll synchronised with the same rate as the floor/ceiling texture by one of the 245-248 triggers. The 249 control linedef acts like a vector, so if set at an angle with its tagged wall the motion will be divided into a X and Y component.

Accelerative Scrollers



Accelerative scoll triggers also react to height changes in the sector on the 1st sidedef of the trigger (the control linedef), but here the rate of scrolling changes... in other words: changing the controlling sector's height speeds up or slows down the scrolling movement according to the following formula:

(control sector height change) x (control linedef length)
______________________________________________________
32

These scrolling effects are also cumulative and vector-like.

Description

Trigger

Accelerate tagged ceiling wrt sector
on 1st sidedef control linedef

214

Accelerate tagged floor wrt sector
on 1st sidedef control linedef

215

Description

Trigger

Accelerate objects on tagged floor wrt sector on 1st sidedef control linedef

216

Accelerate objects and floor wrt
sector on 1st sidedef control linedef

217

Accelerate tagged wall wrt sector
on 1st sidedef control linedef

218

The 218 trigger will cause walls with the same tag increase their scrolling rate in sync with a floor/ceiling scrolling texture controlled by a 214-217 trigger. The 218 trigger acts like a vector, so when set at an angle with the walls bearing the same tag the scrolling movement of these walls will be divided into a horizontal and vertical component.

An example of accelerative scrolling is shown below.

[scrolling] SECTORS

1 : ceiling/floor 128/0
2 : ceiling/floor 128/0
3 : ceiling/floor 128/32;
operated as lift

LINEDEFS

a : tagged the same as linedef b
b : control linedef with trigger 218
c : control linedef with trigger 215 tagged to sector 1

Control sector 3 can be operated as a lift, thus changing the height of this sector by 32 units. Whenever this happens the control linedef 'c' (trigger 215) causes the floor of sector 1 to scroll from right to left with a speed of (32 x length c) / 32. Control linedef 'b' (trigger 218) causes wall 'a' (that has the same tag as this control linedef) to scroll from right to left with a speed of (32 x length b) / 32. To create this effect, assign a dummy trigger (eg. "lights off") to linedef 'a', 'b' and 'c'. Tag linedef 'c' to sector 1. Tag linedef 'a' and 'b' to a dummy sector (not shown in diagram). Compile your level and assign with CLED the appropriate triggers to linedef 'b' and 'c'. Delete the dummy sector originally tagged by linedef 'b' and 'a'.


Introduction | Regular Doom Tricks | TeamTNT's Boom Support
The Tools | Flags | Properties Transfer | Teleports | Ice, Mud, Wind, Currents | Scrolling Effects | Elevators | Other Triggers

Copyright 1998-2006 (c) Doomworld, All Rights Reserved.