[Tutorial] Simple Soundscapes

Discussion in 'Tutorials & Resources' started by Ravidge, May 31, 2009.

  1. Ravidge

    aa Ravidge Grand Vizier

    Messages:
    1,544
    Positive Ratings:
    2,495
    Soundscapes

    What?
    Soundscapes add ambient sounds to your map.

    How?
    I will build a small map to show "how to" in a simple and understandable way. I won't go into detail explaining all the features, but it should be enough to get you started.

    *You can click all images to see a larger version*

    [​IMG]
    Done! Ain't it Beautiful? (Sky visgroup is hidden).

    There are four soundscape entities:
    env_soundscape
    env_soundscape_proxy
    env_soundscape_triggerable + trigger_soundscape (brush)

    Now, let's add some ambient sounds to this map.
    I start by creating an env_soundscape at the center of the map and giving it the following properties:
    [​IMG]
    Name: I always add ss_ to my SoundScape entities, but you can use any name you want. Names are used when the env_soundscape_proxys come into play.
    Radius: If the player steps inside the radius specified the soundscape will start playing. Setting it to -1 makes it play if the player can see it, regardless of distance. If the player can see multiple env_soundscape entities all with -1 radius, only the one nearest the player will be heard. If the player can't see any soundscapes and isn't standing in a radius of one, the last soundscape that activated will continue to play.
    Soundscape: The name of the soundscape to use. Granary.Outside will reproduce the same ambient sounds that can be heard in the map cp_granary.

    Granary.Outside also has 4 unique Sound Positions I can use, to add even more feeling. Some soundscapes have more and others have less/none at all.
    I want some farm animal noise to come from the Blu side. Conveniently these sounds are placed at position 0 as we can see here:

    I will place a named info_target by the blue billboard
    [​IMG]

    Then have my env_soundscape "Sound position 0" point at that target.
    [​IMG]
    I can name my info_triggers whatever I want, but I prefer to keep them as descriptive as possible.

    Great! Now we can hear cows mooing and birds singing from the blue billboard.

    Now I will add 2 more env_soundscapes, One for each base.
    This time I will use the soundscape "Granary.Inside"
    There are no additional sound positions at all for "Granary.Inside". So even if I add info_targets and point to them in the env_soundscape nothing will happen.

    [​IMG]
    Like so, one for the red base and one for the blue.
    Just to prove it's possible to have several soundscapes in one map, I used "Dustbowl.Indoors" as the soundscape for the blue base:
    Name: ss_blue
    Radius: -1
    Soundscape: Dustbowl.Indoors

    Perfect, now I have Inside sounds in the bases, and Outside sound in the middle!

    But the sounds aren't switching from outdoor to indoor and vice-versa when I pass under the billboards, which is what I want. For that we have the env_soundscape_proxy! Triggering a proxy will activate a named env_soundscape and all its Sound positions.

    This is perfect for making transitions between soundscapes happen where they are supposed to. The distance between proxy and env_soundscape doesn't matter at all, a proxy can make a soundscape from across the map start playing if you want to.

    Placing 2 env_soundscape_proxys under the billboard like this
    [​IMG]
    No name or parent required.
    Soundscape Entity: Notice how I put the name of the env_soundscapes and NOT the soundscape file.
    radius: -1

    copy and paste these 2 to all the other base entrances but remember to set the ones on the blue side to have Soundscape Entity: ss_blue instead of ss_red.

    And It's done.

    There's also env_soundscape_triggerable and trigger_soundscape. But they are basically the same as env_soundscape and the proxy and it's boring to repeat myself too much. The main differance is how trigger_soundscape (a brush entity) instead of using a radius is a trigger volume and can make use of filter entites.

    You can download this tutorial map here: DOWNLOAD (vmf + bsp).

    Use the console command "soundscape_debug 1" to see what soundscape is active. (requires sv_cheats 1)
    Green line = Active soundscape.
    Orange line = Active soundscape that you can't see.
    Red line = Inactive soundscape that you can't see.
    White line = Inactive soundscape that you can see, but another one has priority (depends on the radius setting).
    Blue line = Sound positions.
    [​IMG]

    ---

    If you want to know what soundscapes are available you can open up the "team fortress 2 content.gcf" with an appropriate program (such as GCFScape) and find the tf\scripts\ folder, locate the soundscapes_<mapname>.txt open up and look at the different names.

    Or just load up a Valve map ingame and use the soundscape_debug command to see what the different soundscapes are named (Like in the image above).

    You can also download the Environment Gallery by Acegikmo, where he has included all the env_soundscapes and their Sound positions.

    ---

    This tutorial is only meant to get you started. You will have to experiment with the placements, soundscapes and radius settings to fit your own map.

    If you are interested in creating a custom soundscape for your map, read this tutorial (link)

    Questions?
     
    • Thanks Thanks x 36
    Last edited: Dec 22, 2010
  2. Cosmonaut

    Cosmonaut L1: Registered

    Messages:
    6
    Positive Ratings:
    0
    Awesome tutorial mate. You own Valve's wiki.
     
  3. l3eeron

    l3eeron L8: Fancy Shmancy Member

    Messages:
    594
    Positive Ratings:
    86
    Excellent, thanks.
     
  4. The Political Gamer

    aa The Political Gamer

    Messages:
    4,468
    Positive Ratings:
    1,684
    Thanks. But is there anyway to set it up with triggers depending on were people are with activating specific sounds.
     
  5. Ravidge

    aa Ravidge Grand Vizier

    Messages:
    1,544
    Positive Ratings:
    2,495
    How specific is that sound? I get the feeling that a ambient_generic would be better if you just want a sound to trigger.

    Soundscapes are for creating background noise, ambient_generic are for all other sounds.
     
  6. Shadow Monkey

    Shadow Monkey Super Monkey

    Messages:
    244
    Positive Ratings:
    23
    Thank you :)
     
  7. Icarus

    aa Icarus

    Messages:
    2,246
    Positive Ratings:
    1,182
    I should also mention that soundscapes cannot be "seen" through areaportals, open or closed.
     
  8. Hellfire

    Hellfire L9: Fashionable Member

    Messages:
    601
    Positive Ratings:
    142
    was very useful,thx
     
  9. Terr

    aa Terr Cranky Coder

    Messages:
    1,591
    Positive Ratings:
    405
    Another point:

    Soundscapes cannot be "seen" through water either. In order to change things while someone is swimming underwater, you have to use a soundscape trigger.
     
  10. XFunc_CaRteR

    XFunc_CaRteR L5: Dapper Member

    Messages:
    248
    Positive Ratings:
    17
    Question: If I need an env_soundscape_proxy to switch between soundscapes, why can't I just duplicate the original soundscape and position them at the entrances?

    What's the point of the env_soundscape_proxy if all you need to do is duplicate the original env_soundscapes?
     
    • Thanks Thanks x 1
  11. Terr

    aa Terr Cranky Coder

    Messages:
    1,591
    Positive Ratings:
    405
    • Then it's not the same soundscape, it's another soundscape with identical settings. You have to duplicate your effort and may forget to keep them in-sync.
    • The computer doesn't need to bother trying to do audio crossfading between the two.
     
  12. ricardojvc6

    ricardojvc6 L6: Sharp Member

    Messages:
    268
    Positive Ratings:
    64
    thx this tutorial is rly nice :)