L4D2 Custom Sound and Music Tutorial: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
Line 76: Line 76:
#Test out the sound via console<br><pre>playgamesound entry.name</pre>
#Test out the sound via console<br><pre>playgamesound entry.name</pre>


==Customizing Existing Sound and Music==
All of the in-game sound effects and music are soundscript entries, as well. With <map name>_level_sounds.txt, you can customize those entries without causing conflicts with other addons and the official campaigns. Simply copy the entries you would like to change to the per-map soundscript.
Soundscript entries can be found in the '''scripts/game_sounds_*.txt''' folder by opening '''pak01_dir.vpk''' with [[GCFScape]].
A lot of music entries rely on '''Map Properties, Post-Fix String''' and [[Nav_Mesh_Attributes_(L4D)|nav mesh attributes]]. For example, the Post-Fix String of the map c5m1_waterfront.bsp is "BigEasy" and it plays its style of intro music in-game, where the nav mesh is marked <code>PLAYER_START</code> and <code>CHECKPOINT</code>.
===Interesting Soundscripts===
They're all interesting, but here are a couple of them:
*game_sounds_music.txt provides great sample soundscript entries for music. Some entries string together different notes of the same instrument and are played randomly in succession
*game_sounds_physics.txt has entries for sounds that play during in-game interactions, such as a walking on snow or shooting a concrete wall.
==Troubleshooting==
==Troubleshooting==

Revision as of 19:12, 13 February 2010

Introduction

Adding custom sound and music in a Left 4 Dead 2 map appears to be more flexible than Left 4 Dead. The following tutorial will first cover getting custom sounds to work in-game, then followed by customizing existing in-game event sounds (such as music and sound effects).

It is recommended to start with at least the following:

  1. A map that can be loaded in-game named however you like - maps/<map name>.bsp
  2. A blank per-map soundscript (a .txt file) named maps/<map name>_level_sounds.txt

Sound File Requirements

The following file types and specifications have been known to work: .WAV - 22 Khz and 44 Khz - Mono and Stereo .MP3 - 128 Kbps - 22 Khz and 44 Khz - Mono and Stereo

Note.pngNote:You can test out other specifications. These are just confirmed to work.

MP3 Method

.MP3 sound files will play in-game if they are added in the sound/music/<folder or no folder> folder and do not need to be embedded to work in-game or when shipping a VPK.

Note.pngNote: .MP3 files are a lot smaller than .WAV files, but they require more processing power and therefore lowers either client or server performance

Embedded BSP Method

Custom .WAV files must be embedded in a BSP to work and when shipped as a VPK, but they can be placed anywhere, preferably under the sound folder for the internal path. Third-party tools like Pakrat currently do not work with L4D2 BSP files.

Create a list of files you would like to embed C:\Program Files\Steam\steamapps\common\left 4 dead 2\bin\<listfile>.txt:

internal_path\file1
external_path\file1
internal_path\file2
external_path\file2
...
  • Internal paths ('relative paths') are the location the file will take within the BSP, e.g. materials/metal/new_steel.vmt.
  • External paths ('full paths') are the location of the file to be packed, e.g. C:\Users\Public\our_maps\materials\metal\new_steel.vmt.
Note.pngNote:It is recommended that the internal path be typed exactly as shown in the example (use of forward slash ("/") instead of backslash ("\")
  1. It is recommended to copy the <map name>.bsp to C:\Program Files\Steam\steamapps\common\left 4 dead 2\bin (Windows 32-Bit, default)
  2. Open the Windows Command Prompt, preferable with administrator privileges.
  3. Go to bin directory containing bspzip.exe:
    cd C:\Program Files\Steam\steamapps\common\left 4 dead 2\bin
  4. Embed the files with the following commands:
    bspzip -addlist <bspfile> <listfile> <newbspfile>
    Tip.pngTip:You can quickly select your file in command prompt by typing in the first letters of <map name> and hit TAB to cycle through file names
  5. If BSPZIP is looking for gameinfo.txt try:
    bspzip -addlist <bspfile> <listfile> <newbspfile> -game "C:\Program Files\Steam\steamapps\common\left 4 dead 2\left4dead2"

Creating the Soundscript

Open <map name>_level_sounds.txt with a text editor.

An entry can be played in-game via console or entity, such as ambient_generic or ambient_music. An example entry:

entry.name
{
	channel		CHAN_AUTO
	volume		VOL_NORM
	pitch		PITCH_NORM
	soundlevel	SNDLVL_NORM
	wave		common/null.wav
}

If a value has a space or tab character within it, wrap it in "quote marks".

Examples

Ambience.Siren
{
	channel		CHAN_WEAPON
	volume		VOL_NORM
	pitch		PITCH_NORM
	soundlevel	SNDLVL_NORM
	wave		siren1.wav
}
Arbitrary.Song
{
	channel		CHAN_AUTO
	volume		VOL_NORM
	pitch		PITCH_NORM
	soundlevel	SNDLVL_NORM
	wave		music/singalongsong.wav
}
Foo.Song_mp3
{
	channel		CHAN_STATIC
	volume		VOL_NORM
	pitch		100
	soundlevel	SNDLVL_NORM
	wave		music/songalongdong.mp3
}

Testing In-Game

  1. Open <map name>.bsp via console
    map <map name>.bsp coop
  2. Test out the sound via console
    playgamesound entry.name

Customizing Existing Sound and Music

All of the in-game sound effects and music are soundscript entries, as well. With <map name>_level_sounds.txt, you can customize those entries without causing conflicts with other addons and the official campaigns. Simply copy the entries you would like to change to the per-map soundscript.

Soundscript entries can be found in the scripts/game_sounds_*.txt folder by opening pak01_dir.vpk with GCFScape.

A lot of music entries rely on Map Properties, Post-Fix String and nav mesh attributes. For example, the Post-Fix String of the map c5m1_waterfront.bsp is "BigEasy" and it plays its style of intro music in-game, where the nav mesh is marked PLAYER_START and CHECKPOINT.

Interesting Soundscripts

They're all interesting, but here are a couple of them:

  • game_sounds_music.txt provides great sample soundscript entries for music. Some entries string together different notes of the same instrument and are played randomly in succession
  • game_sounds_physics.txt has entries for sounds that play during in-game interactions, such as a walking on snow or shooting a concrete wall.

Troubleshooting