Tutorials

Soundscapes Part 1 - Introduction



Before I explain how to use soundscapes in the source engine I"m going to talk about what they actually do. Because there is so much to explain and it"s probably a good idea if you have a small idea what you getting into.

To start of I"ll talk about the difference between ambient generic and soundscapes.

Ambient generic should be used to play specific sounds with in a certain radius for example the spark off an open wires or the crackle of a near by fire. When you walk into its set radius it triggers its sound, when you leave the sound stops. Nice and simple perfect for specific"s.

Now soundscapes are used to creates the stunning ambience in half life 2 which seemed o so real.

A few things you should know about soundscapes before I get into the detail explanation.

A soundscape is not actually created in hammer. It"s defined in .txt document in the same format as a vmt using the key/vale method. What you do make in hammer is a place holder (env_soundscape) which tells the engine where and which soundscape to play.

Soundscapes can be triggered one of two ways, by entering its radius or by being able to see the area it"s in. Once you trigger a soundscape it will not stop until another soundscape is triggered even if you leave its radius. Unlike an ambient generic where you can only hear it in its defined area.

Only one soundscape can be played at a time, when you enter another soundscapes radius you"re previous will fade out as the new one fades in.

These are some of the more basic differences between soundscapes and ambient generic.

Right so already you can see the use of a soundscape but there"s a whole lot more. Only being able to trigger one soundscape at a time would seem quite limiting in being able to create nice ambience. But the fact is one soundscape alone can play as many sound files as you want. So instead of creating four or five ambient generics to make a nice layered ambience, you only need to make one env_soundscape. So now you can see the advantage, but this isn"t why soundscapes are so amazingly cool.

Not only can soundscapes play numerous sound files at the same time. But they can also play all the sounds at random intervals of your choice so they can loop any sound, play it randomly and also they can play each other.

For example you have made a jungle map, finally set up a nice jungle ambience using your soundscape. You"re walking around your map and enter a cave. Now the cave has its own ambience and its own soundscape, so as you enter the cave the jungle ambience fades out and the cave ambience fades in. This would seem a little strange because the jungle ambience you were hearing so clearly not even 5 inches away has suddenly all gone. So to fix this you would have to add all the jungle ambience properties to the cave properties which would take a long time. But wait there"s another way. You can simply tell the cave soundscape to play the jungle ambience as a subsoundscape. Now as you enter the cave and the jungle soundscape fades out and the cave soundscape fades in, not only can you hear the cave ambience but also the jungle ambience. Amazing I hear you cry, but there"s still more to go.

You can also give each and every sound file its own unique properties these are:

"wave
The name of the wave file.

time
Time interval of the random event.

volume
Random volume interval (0-1).

pitch
Random pitch interval (50-250).

attenuation
Random attenuation of sound.

rndwave
A list of random wave files to choose from.

position
Position to use, if spatialized (0-7).


positionoverride

Forces all sub-soundscape positional sounds to occur at a single position originating from the entity at this index (0-7).

ambientpositionoverride

Forces all sub-soundscape ambient sounds to be spatialized at a particular position originating from the entity at this index.
Useful to make ambient sounds come "from a direction" (0-7)."

Plus give them DSP effects I could explain this but the sdk does it so much better:

"Sets the DSP effect to a particular room number. In general this should be set to 1, which is the "automatic" DSP. With this DSP the sound engine will attempt to discover the proper parameters based on the surrounding geometry. Setting the DSP to 0 will result in effectively turning DSP effects off. Using other pre-sets are only recommended for special cases. These pre-sets are declared in the ../hl2/scripts/dsp_preset.txt file."

And the presets are:

// DSP Effects
// 0 : "Normal (off)"
// 1 : "Generic"
// 2 : "Metal Small"
// 3 : "Metal Medium"
// 4 : "Metal Large"
// 5 : "Tunnel Small"
// 6 : "Tunnel Medium"
// 7 : "Tunnel Large"
// 8 : "Chamber Small"
// 9 : "Chamber Medium"
// 10: "Chamber Large"
// 11: "Bright Small"
// 12: "Bright Medium"
// 13: "Bright Large"
// 14: "Water 1"
// 15: "Water 2"
// 16: "Water 3"
// 17: "Concrete Small"
// 18: "Concrete Medium"
// 19: "Concrete Large"
// 20: "Big 1"
// 21: "Big 2"
// 22: "Big 3"
// 23: "Cavern Small"
// 24: "Cavern Medium"
// 25: "Cavern Large"
// 26: "Weirdo 1"
// 27: "Weirdo 2"
// 28: "Weirdo 3"

So effectively the soundscape system gives you the ability to mix sounds in anyway you want to create the perfect ambience without having to touch a signal piece of sound editing software. That is why in my opinion soundscapes are one of the most impressive elements that the source engine has to offer.


Signy

View comments ( 13 )

Back to top