SMS – простое звуковое окружение в маршрутах

Материал из Trainsim FAQ
Версия от 16:57, 4 августа 2011; Vitro (обсуждение | вклад) (Новая страница: «Звук в игре – это такая деталь, которую почти никто не заметит, но ее отсутствие заметят вс...»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Звук в игре – это такая деталь, которую почти никто не заметит, но ее отсутствие заметят все. Поэтому звук является одной из важных составляющих любых игр.

Прежде, чем настраивать простые sms файлы, нужно разобраться с самими звуками.

Обычное звуковое окружение в маршрутах создается звуковыми файлами циклического типа. Звук циклического типа – это такой звук, который может быть проигран подряд бесконечное число раз без звуковых артефактов (то есть звуковая волна в конце звукозаписи нормально/правильно продолжается вначале файла).

Создание циклического звука – процесс достаточно легкий, хотя иногда в некоторых случаях может отнять достаточно большое количество времени. Самый идеальный циклический звук – это звук, который начинается с -128 dB и заканчивается -128 dB, то есть полной тишиной (единица измерения dB всегда переменная). Так можно составлять звуки животных, птиц, какие-то отдельные звуки конкретных объектов (например, пролетающий самолет, сигнал сирены, голоса), то есть одиночные звуки. Однако реализовать звук города, станции, леса, реки, моря и т.д. таким способом не получится.

Программу для обработки можно выбрать любую из профессиональных (Sound Forge, Adobe Audition). В принципе можно работать даже в таких, как FL. Я использую Adobe Audition.

Чем меньше будет файл, тем быстрее он будет загружаться, однако, если файл будет слишком коротким, то какие-то детали звука могут очень сильно подействовать на подсознание играющего, причем негативно. Поэтому важна золотая середина. Для каждого звука следует подбирать свою уникальную длительность.

Вот пример волны звука течения горной реки: Файл:Sms1.jpg Обратите внимание на начало волны и конец: Файл:Sms2.jpg Начальная волна лежит в области 0 dB, конечная тоже. Однако этого мало. Важно, чтобы средние значения амплитуд волн в течение 0,3-0,5 секунд в начале и в конце звукозаписи были равными. Другими словами, важно, чтобы средняя громкость в начале и в конце звука были одинаковыми.

Чтобы более наглядно показать, как добиться такого результата, я создам звук леса (источник – старая запись с аудио кассеты). Так как источник довольно паршивого качества, я заодно покажу, как можно очистить звук от шума. Файл:Sms3.jpg Как видно на шкале времени (в нижней части скриншота), длительность файла составляет более 20 минут. В этом файле достаточно много нужных звуков, однако нам нужен только небольшой участок (выделен в начале звука): Файл:Sms4.jpg Лучше выделить немного больше, потому что работать со звуком лучше всего в отдельном файле и звук все равно придется урезать.

Файлы должны быть строго определенного формата (Windows PCM, файл с расширением wav). На скриншоте показаны необходимые настройки для звуков, которые нормально проигрываются MSTS (настройки нового файла в Adobe Audition): Файл:Sms5.jpg Также информацию о свойствах звука можно получить, просмотрев системные свойства звукового файла (на скриншоте показаны свойства звука, которые являются стандартными для MSTS). Файл:Sms6.jpg После предварительной обработки, в ходе которой я отрезал лишние соседние звуки, я получил следующую волну (это уже новый файл в правильном для игры формате): Файл:Sms7.jpg Заметьте, что в начале и в конце существует звук. Это шум, который присутствует во всем файле. Его следует удалить. Сделать это довольно легко. Нужно выделить часть этого шума (только шума) Файл:Sms8.jpg открыть окно удаления шума фона (Reduce Background Noise, на скриншоте выделен красным) и дать «послушать» его программе (Get Profile from Selection): Файл:Sms9.jpg После получения данных о шуме окно нужно закрыть, затем выделить весь файл и, снова открыв окно Reduce Background Noise, нажать на кнопку OK. В результате шум будет удален из файла (точнее из той области файла, которая была выделена, в данном случае весь файл). Так как у меня источник был записан на аудио кассете и оцифрован очень давно, причем кустарным способом, я обнаружил несколько типов шумов звуке. Вот что у меня получилось после удаления шумов: Файл:Sms10.jpg Теперь нужно найти повторяющиеся формы волны в начале и в конце для того, чтобы отрезать лишнее:

(начало) Файл:Sms11.jpg

(конец) Файл:Sms12.jpg Обратите внимание, что выделяемая область в начале файла заканчивается «ударом» (резким увеличением амплитуды) волны, а в конце файла начинается с почти такого же «удара». Выделенные области я удалил, и у меня получилось следующая волна: Файл:Sms13.jpg Вот и все, звук готов. Иногда могут возникать какие-либо артефакты при циклическом проигрывании (чаще всего резкие щелчки). Возникновение артефактов индивидуально для каждого файла, поэтому могу сказать только одно – нужно, экспериментируя, удалять артефакт путем выбора одинаковых «ударов» волны в начале файла и в конце.

Итак, звуковой файл должен быть в следующем формате: Windows PCM; расширение *.wav; качество звука (или скорость передачи данных) - 352 кб/сек; стерео звук (желательно); размер аудио образца (resolution) 16 бит; частота дискретизации (!) (sample rate) - 11 кГц (11025 Hz).


Итак, звуковые файлы созданы. Теперь их нужно подключить к маршруту.

Дело в том, что для того, чтобы звук работал в маршруте, необходимо создать файл, который описывает параметры загрузки и воспроизведения звукового файла в маршруте. Эти параметры находятся в файлах с расширением .sms.

Самый простой стандартный файл sms выглядит вот так: Sms14.jpg Основные параметры: Activation Distance, Deactivation Distance, Volume, Distance_Dec_Past, Distance_Inc_Past, File, CurvePoints.


   Activation Distance – дистанция активации звука. Этот параметр указывает расстояние в метрах от источника звука, когда звук загрузится.
   Deactivation Distance – дистанция деактивации звука. Этот параметр указывает расстояние в метрах от источника звука, когда звук выгрузится (перестанет работать).
   Volume – уровень громкости, максимальное значение 1.
   Distance_Dec_Past – этот параметр не должен быть больше Activation Distance, но и не меньше самого большого значения последней точки CurvePoints.
   Distance_Inc_Past – то же, что и Distance_Dec_Past.
   File – имя используемого звукового файла в кавычках.
   CurvePoints – точки кривой громкости звука.

Особое значение имеют точки кривой громкости звука. С помощью этих точек можно создавать для звука нечто вроде Fade-эффекта (уменьшение громкости по мере удаления от источника). Синтаксис CurvePoints довольно прост – указывается количество точек, а далее перечисляются и сами точки, которые определяют громкость на определенном удалении от источника звука. Первая точка всегда должна быть 0.0 1.0, что означает соответственно расстояние и громкость. Последняя точка должна определять нулевую громкость, то есть Х.Х 0.0 (где Х.Х – это расстояние в метрах, немного меньше, чем указанное расстояние в любом из параметров Distance).

Наибольшую реалистичность создают 20 точек с максимального уровня громкости на минимальный с шагом 0.05. Расстояния при этом должны определятся в увеличивающейся на единицу арифметической прогрессии от второй точки (первая всегда 0 метров) к последней. Например, для звука леса я использовал следующую схему точек громкости:

CurvePoints ( 21 0.0 1.0 20.0 0.95 30.0 0.9 41.0 0.85 53.0 0.8 66.0 0.75 80.0 0.7 95.0 0.65 111.0 0.6 128.0 0.55 146.0 0.5 165.0 0.45 185.0 0.4 206.0 0.35 228.0 0.3 251.0 0.25 275.0 0.2 300.0 0.15 326.0 0.1 357.0 0.05 395.0 0.0 )

Заметьте, что вторая точка имеет громкость 0,95 на удалении от источника звука 20 метров. В третьей точка громкость уменьшается на 0,05, а расстояние увеличивается на 10 метров. Во всех остальных точках громкость уменьшается на 0,05. Расстояние каждой точки увеличивается в арифметической прогрессии + 1 к каждому следующему шагу. То есть сначала 10 метров, потом 11, потом 12 и так далее.


Настроенные sms файлы подключаются к маршруту путем редактирования файла ssource.dat, который размещается в корневом директории маршрута, к которому подключаются звуки.

Синтаксис файла ssource.dat крайне прост:

Sound ( Name ( "animals_01_cow_01" ) FileName ( "animals_01_cow_01.sms" ) )

Sound содержит в себе 2 параметра – Name (имя для отображения в Редакторе маршрутов) и FileName (имя файла sms). Для удобства каждый указатель Sound с параметрами помещают на отдельной строке.

В Редакторе маршрутов подключенные файлы размещаются в разделе «Источники звука» (или в "Sound Regions” в английской версии).


Russian Stalker, WST.