WiseWind: Difference between revisions
Plykkegaard (talk | contribs) |
(Rewrite Template:Lang to Template:LanguageBar. This action was performed by a bot.) |
||
(14 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
== Wind Effects == | {{Underlinked|date=January 2024}} | ||
{{LanguageBar|WiseWind|title=WiseWind: Wind}} | |||
{{pov}} | |||
{{SDKNuts Tutorials}} | |||
{{wisemxport|[[User:Plykkegaard|Peter [AGHL]]] 08:19, 16 Feb 2008 (PST)}} | |||
==Wind Effects== | |||
This project illustrates two methods for creating the illusion of environmental wind in your maps. | This project illustrates two methods for creating the illusion of environmental wind in your maps. | ||
Line 7: | Line 11: | ||
The two methods used in this project are: | The two methods used in this project are: | ||
# | # {{ent|env_wind}} - an entity to control wind in the map. | ||
# | # {{ent|trigger_wind}} - a trigger volume that pushes physics objects that touch it. | ||
I’ve also used a | I’ve also used a {{ent|func_dustcloud}} for the trigger_wind, for effect. | ||
{{Note| | {{Note|{{ent|func_dustcloud}} is a brush based entity that spawns a translucent dust cloud within its volume. The volume is determined by the size of the brush you create but be careful as these do tax in-game performance.}} | ||
{{Note|Another way to simulate the force of strong winds is with | {{Note|Another way to simulate the force of strong winds is with {{ent|env_physexplosion}}. If the ''no-damage'' flag is set the explosion won't be visible but it will apply force to any physics objects within its radius. If the force is set low it can be sued to gently nudge physics objects, like lights, wires or debris.}} | ||
{{ent|env_wind}} is only used once in HL2. In {{ent|d3_citadel_01}} as you come out of the tunnel and can see the Citadel. The wires you see swaying in front of you at the end of that tunnel are randomly pushed by a {{ent|env_wind}}. | |||
{{ent|trigger_wind}} is used in the beginning of HL2, in {{ent|d1_trainstation_01}} as you step off the Train and see some trash blowing across the cement. It’s also used in {{ent|d2_prison_03}} for the large fan you have to sneak past in the air vents. | |||
In this project the | In this project the {{ent|trigger_wind}} is used to blow a dust cloud. | ||
The | The {{ent|env_wind}} is used to randomly sway the power lines. | ||
Both of these methods have advantages. | Both of these methods have advantages. | ||
* | * {{ent|trigger_wind}} is a brush based volume so you have more control over the area it effects. It can also be enabled and disabled as needed. | ||
* | * {{ent|env_wind}} is easy to place in your map and it can be directed but you can’t turn it on and off unless you kill the entity. | ||
The power lines in this project are created with | The power lines in this project are created with {{ent|move_rope}} and {{ent|keyframe_rope}} entities. | ||
I’ve used a | I’ve used a {{ent|logic_timer}} to control the [[trigger_wind]], {{ent|func_dustcloud}} and an {{ent|ambient_generic}}. | ||
The | The {{ent|logic_timer}} is set to use random time. | ||
These are the properties I used for each entity in this project. | These are the properties I used for each entity in this project. | ||
=== Swaying | |||
Class: | ===Swaying Wires=== | ||
Class: {{ent|logic_timer}} | |||
* Start disabled: ''No'' | * Start disabled: ''No'' | ||
* Use Random time: ''Yes'' | * Use Random time: ''Yes'' | ||
* Min Random Interval: ''6'' | * Min Random Interval: ''6'' | ||
* Max Random Interval: ''12'' | * Max Random Interval: ''12'' | ||
* Outputs: (see image) | * Outputs: (see image) | ||
:[[ | :[[File:wiseWind01.png]] | ||
Class: | Class: {{ent|env_wind}} | ||
* Pitch Yaw Roll: Use the Point At tool for this. | * Pitch Yaw Roll: Use the Point At tool for this. | ||
* Min normal speed: ''30'' | * Min normal speed: ''30'' | ||
Line 54: | Line 58: | ||
* Max gust dir change: ''30'' | * Max gust dir change: ''30'' | ||
Classes: | Classes: {{ent|move_rope}} and {{ent|keyframe_rope}}: | ||
* Speed: ''64'' | * Speed: ''64'' | ||
* Slack: ''140'' | * Slack: ''140'' | ||
Line 68: | Line 72: | ||
* Position Interpolator: ''2'' | * Position Interpolator: ''2'' | ||
=== A | ===A Dust Cloud=== | ||
Class: {{ent|trigger_wind}} | |||
Class: | |||
* Name: ''windtrigger01'' | * Name: ''windtrigger01'' | ||
* Start disabled: ''Yes'' | * Start disabled: ''Yes'' | ||
Line 79: | Line 82: | ||
* Hold Time: ''0'' | * Hold Time: ''0'' | ||
* Hold Noise: ''0'' | * Hold Noise: ''0'' | ||
* Flags: | * Flags: | ||
:* Everything, ''Checked'' | :* Everything, ''Checked'' | ||
Class: | Class: {{ent|func_dustcloud}} | ||
* Name: ''DustCloud1'' | * Name: ''DustCloud1'' | ||
* Start disabled: ''Yes'' | * Start disabled: ''Yes'' | ||
Line 96: | Line 98: | ||
* Min particle size: ''5'' | * Min particle size: ''5'' | ||
* Max particle size: ''50'' | * Max particle size: ''50'' | ||
=== Sound === | ===Sound=== | ||
Class: | Class: {{ent|ambient_generic}} | ||
* Name: ''WindSound'' | * Name: ''WindSound'' | ||
* Sound Name: ''ambient/wind/windgust_strong.wav'' | * Sound Name: ''ambient/wind/windgust_strong.wav'' | ||
* Volume: ''8'' | * Volume: ''8'' | ||
=== Setup and | ===Setup and Final Result=== | ||
In the images below you can see the volume created by the brush based entities and the placement of the [[env_wind]]. The black arrow shows the direction of both wind entities. the other image is a shot from HL2 of the combine effect. | In the images below you can see the volume created by the brush based entities and the placement of the [[env_wind]]. The black arrow shows the direction of both wind entities. the other image is a shot from HL2 of the combine effect. | ||
Line 110: | Line 112: | ||
</gallery> | </gallery> | ||
== | ==See also== | ||
*[[Special effects]] | |||
*[[Env_rotorwash]] | |||
* [ | *[https://type3studios.com/downloads/tutorials/SdkNutsTutorials/wiseWind.zip Example VMF] | ||
* | *[https://cdn.discordapp.com/attachments/434089157875466242/458119462969802763/wiseWind.vmf Example VMF backup] | ||
[[Category:Level Design]] | |||
Latest revision as of 17:43, 18 July 2025




January 2024



This tutorial was originally created by wisemx. It was originally posted on SDKnuts.net.
Wind Effects
This project illustrates two methods for creating the illusion of environmental wind in your maps.

The two methods used in this project are:
- env_wind - an entity to control wind in the map.
- trigger_wind - a trigger volume that pushes physics objects that touch it.
I’ve also used a func_dustcloud for the trigger_wind, for effect.


env_wind is only used once in HL2. In d3_citadel_01 as you come out of the tunnel and can see the Citadel. The wires you see swaying in front of you at the end of that tunnel are randomly pushed by a env_wind.
trigger_wind is used in the beginning of HL2, in d1_trainstation_01 as you step off the Train and see some trash blowing across the cement. It’s also used in d2_prison_03 for the large fan you have to sneak past in the air vents.
In this project the trigger_wind is used to blow a dust cloud. The env_wind is used to randomly sway the power lines.
Both of these methods have advantages.
- trigger_wind is a brush based volume so you have more control over the area it effects. It can also be enabled and disabled as needed.
- env_wind is easy to place in your map and it can be directed but you can’t turn it on and off unless you kill the entity.
The power lines in this project are created with move_rope and keyframe_rope entities.
I’ve used a logic_timer to control the trigger_wind, func_dustcloud and an ambient_generic. The logic_timer is set to use random time.
These are the properties I used for each entity in this project.
Swaying Wires
Class: logic_timer
- Start disabled: No
- Use Random time: Yes
- Min Random Interval: 6
- Max Random Interval: 12
- Outputs: (see image)
Class: env_wind
- Pitch Yaw Roll: Use the Point At tool for this.
- Min normal speed: 30
- Max normal speed: 80
- Min gust speed: 100
- Max gust speed: 150
- Min gust delay: 10
- Max gust delay: 20
- Max gust dir change: 30
Classes: move_rope and keyframe_rope:
- Speed: 64
- Slack: 140
- Type: Rope
- Subdivision: 3
- Barbed: No
- Width: 3
- Texture scale: 1
- Collide with world: No
- Start dangling: No
- Breakable: No
- Rope material: cable/cable.vmt
- Position Interpolator: 2
A Dust Cloud
Class: trigger_wind
- Name: windtrigger01
- Start disabled: Yes
- Pitch Yaw Roll: Use the Point At tool for this.
- Speed: 120
- Speed Noise: 0
- Direction Noise: 20
- Hold Time: 0
- Hold Noise: 0
- Flags:
- Everything, Checked
Class: func_dustcloud
- Name: DustCloud1
- Start disabled: Yes
- Particle color: 168 141 123
- Particle per second: 30
- Max particle speed: 13
- Min particle lifetime: 3
- Max particle lifetime: 5
- Max visible distance: 750
- Frozen: No
- Alpha: 30
- Min particle size: 5
- Max particle size: 50
Sound
Class: ambient_generic
- Name: WindSound
- Sound Name: ambient/wind/windgust_strong.wav
- Volume: 8
Setup and Final Result
In the images below you can see the volume created by the brush based entities and the placement of the env_wind. The black arrow shows the direction of both wind entities. the other image is a shot from HL2 of the combine effect.