Giant Fan (Portal 2)

From Valve Developer Community
Revision as of 03:29, 10 May 2025 by Le Glaconus (talk | contribs) (more info, will add the arch primitive instructions later)
Jump to navigation Jump to search

The Giant Fan is a Behind the Scenes decoration used in the co-op campaign. The fan is meant to be purely decorative and is used to "push a lot of air". Portal: Revolution Portal: Revolution turns it into a gameplay element.

Creating a Giant Fan

1. Select the brush tool, and in the object bar, change block to arch with the drop down menu. Then in the properties

Step 1

2. Next draw a 1056 x 1056 cylinder, make it at least 220 units thick.

Step 2

3. Push it into the wall that you want to put a fan in, the top should be slightly protruding with the wall. Right click and press carve.

Warning.pngWarning:The carve tool creates unstable and "messy" geometry when used with complex objects.
PlacementTip.pngWorkaround:Use the arch primitve instead, remember to tie it to a func_detail.

4. Place down three props; Three static, one dynamic. The dynamic prop will be the fan itself, in the "World model" property, set the model to "models/props_bts/huge_fan.mdl". The other two parts will be the fan rims, and its supports. Position these in a way that you see fit. Make sure to set "Disable shadows" ("Disable Producing Cheap Shadows" in TeamSpen's Hammer Addons TeamSpen's Hammer Addons) to "Yes".

5. In order for the fan to spin, create a small brush near the fan with the tools/toolsodraw texture. Select the brush and press Ctrl+T to tie the brush to an entity. Make it a func_rotating, in the flags tab, check "Start ON" (if the fan must start enabled), "Fan Pain" and the axis box that corresponds to your fan direction ( "X Axis" -> horizontal and "Y Axis" -> vertical ). Set the maximum rotation speed to 400 and the friction to 1. At last, name this entity in a way preferably indicating it is used to make other entities rotate (for instance : "fan_rotator").

Note.pngNote:You can add a trigger_hurt spanning across the entire fan to stop players from passing through the fan.

6. In order for the blades to spin, they have to be parented to the func_rotating. Specify the name of the fan's rotator in the prop_dynamic's parent field.

Warning.pngWarning:func_rotating will not rotate forever. You can use the Vscript snippet given in its dedicated page to circumvent this bug.

7. The last step is to add a sound. In the func_rotating's properties, add World.LargeFanLoop to the "Sound when moving" field ("Rotating sound WAV" in TeamSpen's Hammer Addons TeamSpen's Hammer Addons).