Звуки
Игра Neverwinter Nights широко представлена разнообразными звуками. Звуки запускаются как в свойствах области, так и в самой области. Кроме того звуки прописаны в движок игры (функция - PlayVoiceChat) и многие базовые скрипты (функция - PlaySound). Так же все диалоги имеют озвучку. В этой статье рассмотрим подробно звуки расположенные непосредственно в самой области, т.с. звуковые объекты палитры редактора Neverwinter Nights.
Руководство от Aiwanа - создателя “Проклятие Левора”…
Давайте определимся. Звуковые объекты делятся на три основных вида:
- Звуки на всей территории (красное кольцо с нотой)
- Звуки на одном фиксированном месте (красная стрелка и нота)
- Звуки возникающие на определенной территории в разных точках (кубик и нота)
При работе со звуком самая распространенная ошибка связана с временным интервалом звуков. Начинающие модулестроители, да и некоторые опытные мастера, не регулируют интервал, с которым воспроизводятся звуки. По умолчанию он равен 25/5 сек (Каждый раз, звук проигрывается либо через 25 секунд, либо минус (плюс) 5 секунд к основным 25 секундам). На карте с такими звуками вы будете слышать окружающих только каждые 25 30 секунд. Причем все звуки хором. Это неправильно.
Звуки на всей территории
С первым видом все понятно, он действует на всей территории вашей арены. Этими объектами можно озвучить шум волн, ветр или крик петуха по утрам в деревне. Если вы используете несколько звуков или группу одного звукового объекта, попробуйте изменить громкость при воспроизведении. Это поможет звукам стать менее навязчивыми. Этот тип звуков очень удобен для создания общей атмосферы. Например, я использую его в качестве звука горящего камина в комнате, оставив только 5-10% от максимальной громкости. Подойдя к камину вплотную, вы услышите уже громкий звук горящих поленьев, там я использую звуковые эффекты второго вида. Еще пример: звук на втором этаже таверны, где обычно находятся комнаты для отдыха. Внизу музыка, шум, веселье, а наверху тишина. Я ставлю звук по всей территории второго этажа с шумом трактира, криками и бьющейся посудой на уровне примерно 5% от максимального. Эффект получается отличный.
Звуки на фиксированном месте
Играть звук костра
Это самый используемый тип звуков. Им прекрасно можно озвучить продукты цивилизации, ручьи, костры и т.д. Следует также помнить, звук костра будет громче звука факела. Поэтому не используйте всегда 100% громкость разных по содержанию, но одинаковых по звучанию объектов. Оставьте 40-50% от максимума у факела, он громче не нужен.
Важно!
Звуки первых двух типов берут на себя мало ресурсов системы, так как просты в реализации. Звуки со случайным воспроизведением потребляют больше ресурсов. Чрезмерное наполнение звуковыми объектами этого вида может снизить производительность системы, и модуль начнет тормозить.
Случайные звуки
Начинающие эти звуки используют редко, а если используют, то не по назначению. С помощью этих звуков можно настроить, например, писк москитов ночью. Для этого мы ставим в опциях звука воспроизведение на случайной позиции (Рис. 15). Далее мы указываем радиус громкости (он важен для всех трех видов звуков), на таком расстоянии от места воспроизведения будет слышен звук. Установим 20 метров. Высота – этот параметр показывает, на каком расстоянии от поверхности будет слышен звук. Если у вас несколько участков на разной высоте, то есть смысл увеличить высоту воспроизведения. И, наконец, самое главное – настройка коробки. Здесь вы указываете, на какой площади звук будет появляться в разных точках. Как только вы укажете расстояние, то ваш объект будет заключен в схематичный квадрат или прямоугольник. На рисунке показаны границы воспроизведения звука (50х30 метров).
От себя хочу добавить, что звуковые объекты невозможно удалить или вызвать из палитры… Поэтому если вам необходимо как-то управлять звуками посредством скриптов, используйте эти функции:
Уровень звука
SoundObjectPlay(oSound); // Звук включить
SoundObjectStop(oSound); // Звук выключить
SoundObjectSetVolume(GetObjectByTag("TAG"), 0-127); // уровень звука от 0 до 127
Изначально можно выключить звук, убрав галку “Активный”, а в игре в нужный момент включить этот звуковой объект.
В нашем модуле мы часто использовали плейсы со скриптом проигрывания различных звуков. Звуки при этом имеют высокую громкость и колорит. На ХБ плейса ставим простенький скрипт срабатывания:
//:://////////////////////////////////////////////
//:: ИГРАТЬ ЗВУК - ПЛЕСК ВОДЫ
//:: Слот: OnHeartbeat
//:://////////////////////////////////////////////
void main()
{
if(GetArea(GetFirstPC()) != GetArea(OBJECT_SELF)) return; // если ПС нет в локе
if (GetDistanceBetween(GetFirstPC(), OBJECT_SELF) < 20.0)
PlaySound("as_na_waterlap3");
} |
|