Звуки - это как раз то, что придает карте больше реалистичности. В нашей повседневной жизни (в реале), мы практически всегда слышим какие либо звуки. Точно также должно быть на карте. Не только звуки выстрелов, взрывов, и переговоров игроков. Для полной реалистичности нужно добавить еще и звуки окружающей среды. А как это реализовать, вы и узнаете в этой главе.
Звуки на карту вставляются с помощью точечной энтити ambient_generic. Давайте подробно рассмотрим ее параметры:
Name - имя объекта. Если присвоить имя объекту ambient_generic, то можно будет включать\выключать его. Таким образом можно создать множество интересных эффектов. Path/filename.wav of WAV - путь к звуковому файлу в формате WAV. Файлы со звуками, которые вы хотите воспроизводить на своей карте, должны обязательно находиться в папке cstrike/sound/. Volume - громкость воспроизведения звука. Dynamic presets - "стиль" воспроизведения. Например, можно сделать проигрывание звука пульсированным, возрастающим, etc. Start volume - начальная громкость. Fade in time - время (вначале воспроизведения), на протяжении которого звук будет переходить от стартовой громкости (Start volume), до установленного максимума (Volume). Fade out time - время (в конце воспроизведения), на протяжении которого звук будет переходить от установленного максимума (Volume), до стартовой громкости (Start volume).
Остальные параметры влияют на стиль (тип, способ, и т.д.) воспроизведения звука. Объяснить их трудно - это нужно слышать, так что если хотите, то поэкспериментируйте сами.
Флаги: Play everywhere - звук будет слышен из любой точки карты. Small radius - маленький радиус слышимости звука (800 юнитов). Medium radius - средний радиус (1250 юнитов). Large radius - большой радиус (2000 юнитов). Start silent - вначале звук выключен. Is NOT looped - проигрывать звуковой файл только один раз (без повторов).
С параметрами думаю все понятно. Поехали дальше...
Env_sound
С помощью env_sound можно изменять установки воспроизведения звука, в зависимости от типа помещения. Например, музыка в маленькой комнате с бетонными стенами, должна звучать иначе, чем в большой комнате с металлическими стенами. С помощью env_sound это легко реализовать. Radius - радиус действия. Когда игрок заходит в эту зону, то установки звука меняются, в зависимости от указаного типа помещения (Room type). Room type - тип помещения (боьшая комната, тоннель, помещение с металичекими стенами, под водой...).
Примечание: когда игрок попадает в зону действия env_sound, установки воспроизведения звука изменяются. Но когда игрок выходит из этой зоны, установки не переключаются в исходное положение - их нужно снова переключить другим объектом env_sound. Не забывайте про это!
Тип материала
Вы, наверное, играя в КС (ХЛ) уже заметили, что если ходить по разным текстурам (материалам), то слышен характерный для них звук. Например, при ходьбе по металлу - слышно звучание металла, по снегу - скрип снега, и так далее... Вам наверное интересно как это реализуется? Рассказываю:
В папке cstrike/sound/ есть файл materials.txt. В этом файле описано звучание для разных текстур:
'M' metal - металл 'V' ventillation - вентиляция 'D' dirt - грязь 'S' slosh liquid - жидкость 'T' tile - черепица 'G' grate (Concrete is the default) - бетон 'W' wood - дерево 'P' computer - компьютер 'Y' glass - стекло 'N' snow - снег
Следует упомянуть, что два слэша "//" означают начало комментария, который оканчивается в конце строки. Их не следует воспринимать как определение звуков для текстур.
Так вот, чтобы присвоить какое либо звучание текстуре, следует поместить имя текстуры после буквы определяющей тип звучания. Например, строка 'N snow' означает что текстура с именем "snow" должна иметь звучание снега, и так далее...
Внимание: не нужно редактировать файл materials.txt! Просто назовите используемые на карте текстуры именами, определенными в нем. Потому что, если вы вдруг решите отредактировать этот файл, то вам придется также поместить его в архив с картой. А если так начнет делать каждый - подумайте что получится: файл materials.txt будет каждый раз заменяться на новый, и старые определения будут теряться... Короче, будет плохо =)