Саунд-дизайнер
0,0
рейтинг
8 декабря 2015 в 12:53

Разработка → Саунд-дизайн тяжёлой брони для проекта InSomnia из песочницы

Меня зовут Пётр, я саунд-дизайнер, работаю над проектом InSomnia. В этой статье я хотел бы кратко рассказать о процессе работы над озвучкой тяжёлой брони. Вот так выглядит финальный результат:



В работе мы не будем использовать известные middleware-инструменты для звука (Wwise, Fmod), а обойдёмся штатными инструментами Unreal Engine 4.

Общий план работы


Всю работу можно разбить на несколько основных этапов:

  • Концепт — думаем над вопросами: как мы будем делать звук? Как будем внедрять?
  • Саунд-дизайн в аудио-секвенсоре — готовим все необходимые wav-файлы.
  • Саунд-дизайн в Unreal Engine 4 — внедряем wav-файлы, делаем ассеты, крепим к анимациям.

Далее обо всём по порядку.

1. Концепт


Игра делается в дизель-панк стиле, значит мы будем использовать механические звуки. Никакой электроники или sci-fi элементов не должно быть. Это не робот, это именно броня. Внутри находится человек. Человек окружён механизмами и системами.

Озвучиваемая броня — это мощная штука в игре. Звук явно не должен быть миниатюрным или няшным. Когда мы видим такого персонажа, мы должны понимать, что это парень серьёзный.

Посмотрим внимательнее на персонажа — он в шлеме, у него есть ранец с некими системами, предположим что в них находится жидкость, сама броня достаточно подвижна — много механических деталей и конструкций. Используем это в качестве основных категорий звуков:

  1. Голос.
  2. Ранец.
  3. Металлические/механические звуки.



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

Внедрять в проект будем стандартными средствами Unreal Engine — с помощью Sound Cue и их креплению к соотвествующим анимациям.

2. Саунд-дизайн в аудио-секвенсоре


Для саунд-дизайна я использую Ableton Live, потому что у него в комплекте уже идут очень простые и интересные плагины для аудио-манипуляций, а сам дизайн программы ориентирован на высокую скорость работы с аудио.

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

2.1. Голос


Для записи голоса я использовал отечественный микрофон Oktava MK-012 с капсюлем от MK-101. Он недорогой и, учитывая то что мы будем серьёзно искажать полученный материал, качество записи нам не так важно. Вот что получилось в результате записи:



Вот так звучит обработанный материал:



Суть обработки заключается в использовании вокодера. Мы просто смешиваем в нём голос с водной основой (водные пузыри) и дальше уже обрабатываем каждый канал по вкусу. Подробную схему обработки с моими настройками можно посмотреть здесь:



2.2. Ранец


Для ранца мы используем следующие материалы:

  1. Воздушный пар (steam).
  2. Водные пузыри — пробрасываем связь с голосом.
  3. Синтезатор Analog с булькающим звуком — для дополнительной окраски. На синтезаторе используем только ноту ля (А-1), т.к. основная тональность в игре ля-минор. Конечно, эта составляющая мало слышима и скорее работает на каком-то подсознательном уровне, но лучше что бы и здесь было всё впорядке.
  4. Лёгкие электрические искры.
  5. Шипение кислоты.

Кидаем всё в один котёл, обрабатываем, получаем такие звуки:



Подробную схему обработки с моими настройками можно посмотреть здесь:



2.3. Механика/металл


Главная часть из всего дизайна — даёт понять, что мы имеем дело с железной бронёй. Здесь никаких особых примудростей нет, всё сделано стандартными слоями (лэйеринг) с минимумом эффектов (эквалайзер). Как пример такой работы, можно посмотреть смерть персонажа. Сначала слышим удар (попадание абстрактного “чего-то”), далее скрежет заваливающейся массы брони и падение. Вот как это выглядит в секвенсоре (видны слои исходных сэмплов):



Вот как это звучит:



После того как все wav-файлы отрендерены, загоняем их в звуковой редактор (я использую Adobe Audition), редактируем на чистовую (отрезаем тишину в конце, убираем возможные артефакты). Все файлы делаем 44.1kHz, 16 bit, mono. Получаем пак звуковых файлов, готовых к загрузке в Unreal Engine 4.

2. Саунд-дизайн в Unreal Engine


Теперь наша задача воссоздать проделанную работу в секвенсоре, но уже инструментами Unreal Engine. Импортируем заготовленные wav-файлы, создаём ассеты Sound Cue с названиями, соответсвующими нашим событиям. В данной работе я разделил звуки брони, ранца и голоса по трём отдельным Sound Cue ассэтам. Это связано с тем, что в нашей системе нэйминга аудиофалов все шаги и голоса лежат отдельно. Сливать всё в один ассэт не логично, хотя в данном случае озвучки брони это было бы удобным. Будем придерживаться существующей системы.

При создании Sound Cue основным инструментом являются следующие звуковые компоненты (Sound Nodes):

  • Modulator — модулирует каждую итерацию звука по высоте тона и громкости.
  • Random — выбирает случайным образом один сэмпл из всех предложенных.

Вот как выглядит ассэт шагов нашей тяжёлой брони:



Здесь мы видим и Random (выбирает из 4-х сэмплов) и Modulator (модулирует выбранные сэмпл случайным образом). Также видим два разделённых пака шагов — у одного в имени файла просто «harm», у второго «harm1». Это произошло, потому что предполагались две разных тяжёлых брони в игре, озвученных чуть-чуть по разному. По техническим причинам пока что остаётся одна озвучка, но сделанное разделение сохраняется (возможно в будущем этот момент реализуется). «harm» — это общие низкочастотные части шагов, а «harm1» — это более высокочастотные части. Для второй брони файлы «harm1» поменяются на «harm2» (визуально вторая броня более «кольчужного типа», как раз здесь это учитывается).

Далее полученные ассэты шагов мы крепим к соответсвующим анимациям. Например, крепление к анимации бега выглядит так:



В завершении предлагаю ещё раз пересмотреть все получившиеся ассэты:



На видео:

  • Правая часть экрана — ассэт анимации и строка времени с проставленными звуковыми ассэтами.
  • Левая часть экрана — открытые звуковые ассэты, используемые в данной анимации.

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

Надеюсь, эта статья будет полезна всем, кто работает с Unreal Engine. Спасибо за внимание!
Пётр Якямсев @headshotlab
карма
8,0
рейтинг 0,0
Саунд-дизайнер
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (15)

  • +1
    Спасибо за интересную статью! Хотелось бы узнать больше про озвучку окружения: как в движке игры работать с источниками звука, находящимися на переменном расстоянии от слушателя, иногда за стенкой\ в дальнем конце коридора — и как готовить такие семплы.
    • +3
      Сделаю это темой следующей статьи. Надо подумать как это проще всего рассказать. Если быть кратким, то в UE4 есть тип аудио-ассетов «attenuation». Внутри этих ассетов задаются пространственные параметры звука — на каком расстоянии он начинает угасать, по какой кривой и нужно ли применять НЧ-фильтр. Далее нужную аттенюацию указываем в Sound Cue (в Details). Потом просто перетаскиваем Sound Cue на сцену (он конвертится в Ambient Sound Actor) и видим как источник звука (такая колоночка), так и его аттенюацию (по умлочанию это сфера). Сэмплы на такие вещи лучше готовить в wav 44.1kHz 16-bit (это стандарт анрила) в mono. Стерео здесь ни к чему, т.к. источник точечный, нужно лишь поставить на уровень реверберацию (отдельный тип ассетов), что бы эти моно-источники более-менее детектились бинаурально. А вот если вы кидаете на уровень общий эмбиент-луп или музыку, то её уже в стерео и без указания аттенюации. Так она будет везде и всегда.
      • 0
        Разве attenuation работает с геометрий уровня? Слышал что wwise умеет такое запекать, наверное и fmod тоже. Вот про это очень интересно почитать. И кстати, для чего использовать две библиотеки? Вроде бы одинаковую функцию выполняют.
        • 0
          Что означает «работает с геометрией уровня»? Он просто создаёт volume (если так можно назвать) вокруг источника звука. Внутри volum'а громкость данного звука распределяется от центра источника звука до краёв volum'а в соответствии с указанными в attenuation настройками. Плюс — как дополнительная настройка выведен срез НЧ-фильтра, который тоже зависит от расстояния до источника.
          О каком либо запекании в wwise я не знаю. Год назад такого точно не было (по крайней мере в официальных курсах и учебных материалах). Может быть сейчас появилось. Если есть информация — скидывайте, с удовольствием посмотрю как это. Лично мне кажется, что если и есть запекание чего бы то ни было у миддлвэйр решений, то это доводится до ума программистами под конкретный движок. Может быть я не прав — настаивать не буду.
          О каких библиотеках идёт речь?
          • 0
            Wwise и fmod, зачем нужны обе библиотеки? Что в них общего и какие различия? По поводу запекания геометрии: подробностей не знаю, может это делается через 3Dception Wwise или ещё как-то. Смысл в том, что Wwise имеет мощный звуковой реалтайм движок, который настраиваешь и у тебя игра звучит как Thief например.
            • 0
              Почему fmod и wwise вы называете библиотеками? Вы имеете ввиду «библиотеки инструментов работы со звуком»? Обычно fmod и wwise называют middleware или toolset или audio engine. В любом случае мы не применяем в нашем проекте ни fmod ни wwise. Различия между ними описывать долго. Если быть кратким, то инструментарий у wwise просто огромнейший по сравнению с fmod. Но по интеграции с игровыми движками сказать не могу — не программист я.
              Про 3Dception не знал, спасибо за наводку. Погуглил, послушал дэмки, почитал фичи сейчас и какие планируются — офигенная тема, безусловно нужная для некст-ген игр. Про запекание у них на сайте инфы я не нашёл. Пока что пишут, что управляется всё так же зонами (как в ue4 и др.). Но реал-тайм просчёты геометрии в разработке (вот это будет круто). Однако я тогда не понимаю чего там запекать, если они в реал-тайме всё хотят обрабатывать.
              • +1
                Запекать, имеется ввиду настроить искажения на уровне, просчитать их и сохранить, а дальше юзать в движке. Почему библиотеки: цитата с вики «FMOD — проприетарная программная аудио библиотека», и в игровом движке они встраиваются как библиотеки, есть api и все дела. Видимо название зависит от контекста.
                • 0
                  Понятно, спасибо за разъяснение. Будем ждать прорыва от 3Dception тогда!
  • +3
    Мне водные звуки покоя не дают — у него в шлеме аквариум чтоли?
    • +1
      Я предполагаю, что шлем как-то связан с системой ранца. Мы остановились на том что эта какая-то водная система. Т.е. он дышит, но мы слышим дыхание через некие «водные-фильтры». Впрочем, всё может поменятсья, если арт-директор всё перелопатит и будет принят новый концепт. Пока что так.
      • 0
        Мне кажется проблема в дизайне костюма как таковом. Потому что звуки вполне «стимпанковские» если можно так выразится. А вот дизайн такого закрытого шлема с горящими глазами подразумевает что внутри стоит монитор, типа как у железного человека. Что на стимпанк не похоже, это что-то футуристическое. То есть звуки не соответсвуют картинке. Я бы, на свой вкус, добавил бы звук резины при движение, так как не похоже что у персонажа есть какие-то сервамоторы. Больше похоже на бронированный костюм водолаза (особенно по булькающим звукам). И возможно не хватает механических звуков пулемёта при движение. Там вроде как ящик с патронам сзади, как минимум он точно должен громыхать. Есть некоторые моменты в анимации, когда нет вообще никаких звуков, что опять же немного противоречит картинке. Такой массивнный персонаж бесшумно двигаться не может.
        • 0
          Про сам дизайн костюма не могу прокомментировать, тут не моя зона ответственности. В этой игре очень много референсов, наверняка этот вариант не просто так оставлен (были ещё другие). Материал по используемым референсам сейчас так же готовится на сколько я знаю. Согласен, что похоже на костюм водолаза. Про резину интересный момент, я запишу себе в фидбэки, когда будем делать ревизию звука, попробуем поставить. Про механические звуки при движение (фоли) тоже согласен. Я очень хотел бы их сделать, но в плане фоли нужна определённая система: меняется оружие — меняется звук, меняется тип передвижения — меняется интенсивность звука. Если всё таки дойдёт до реализации отдельного пака звуков на вторую тяжёлую броню — то смена звуков фоли так же будет зависеть и от этого. Это относится и к персонажам без тяжёлой брони (бряцанье амуниции при беге). Поэтому пока что да, промежутки между движениями не заполнены. Задача лежит в области «приятных доделок», до которой нам ещё идти не мало. Пока что делаем только основное. Спасибо за мнение!
  • +1
    Какой то звук «полый» получился, как будто нет никого в костюме.
    • 0
      Мне так не кажется, вы смотрите видео или отдельно звуки слушаете? По-моему на видео всё в порядке.
      • +1
        Видео смотрел, но настаивать не буду — шибко это всё субъективно. Возможно некоторое эхо на сцене с миниганом создало такое впечатление.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.