SKYLORE
Skylore — новая мобильная MMO RPG с PvP и PvE контентом, системой талантов, красочной графикой и живым открытым миром.
Мир игры включает в себя элементы фентези, стим-панка и местами даже футуристичные элементы. Всё это нужно учитывать при создания звуковой картины игры. Очень важно было создать отличительные черты для магических элементов, паровых машин, сложных технологических устройств и разнообразных рас персонажей: людей, горгоруш, муаров, духов, элементалей, роботов, древоподобных персонажей и тд.
ВВЕДЕНИЕ
Skylore — новая мобильная MMO RPG с PvP и PvE контентом, системой талантов, красочной графикой и живым открытым миром.
Мир игры включает в себя элементы фентези, стим-панка и местами даже футуристичные элементы. Всё это нужно учитывать при создания звуковой картины игры. Очень важно было создать отличительные черты для магических элементов, паровых машин, сложных технологических устройств и разнообразных рас персонажей: людей, горгоруш, муаров, духов, элементалей, роботов, древоподобных персонажей и тд.
ОБЩИЕ ПРИНЦИПЫ РАБОТЫ
Наша команда делает полный продакшн звука для игр, включая музыку и саунд-дизайн геймплея, кат-сцен, синематиков и промо-ролики. И для нас очень важно иметь полный контроль над звуком в игре, чтобы освободить разработчиков от внесения постоянных изменений. Игра Skylore не стала исключением.
На начальных этапах было необходимым выбрать правильный аудиодвижок для имплементации звука в игру, чтобы решить сразу несколько задач:
- Полный контроль над звуком со стороны команды AK Audio (звуковые системы, контент, микс, оптимизация);
- Уменьшение нагрузки и объемов работы для программистов AI Grind по интеграции звука в игру;
- Увеличение удобства, легкости, скорости и эффективности работы каждой из сторон.
В результате был выбран FMOD от Firelight Technologies в качестве главного инструмента для реализации видения разработчиков относительно звука в игре.
КАТ-СЦЕНА ИЗ ИГР
При создании звуковых систем и контента команда всегда советуется с арт-командой и программистами на тему возможности реализации тех или иных идей, а также на их соответствие общему видению и лору игры. Таким образом можно получить полезные ограничения, которые помогают скорректировать курс в направлении желаемого результата.
ЗВУКИ ОКРУЖЕНИЯ
Skylore — очень объемная игра. На данный момент в игре более 100 локаций, которые можно поделить на 14 биомов и всё это на экране телефона. По этому очень важно сделать характерный звук для каждого из них, попутно решая задачи не только по художественному оформлению, но также вопросы технической реализации и оптимизации.
Звуки окружения можно поделить на 3 составляющие:
- Звуки, слышимые на всей локации — основные слои окружения. Сюда относятся звуки окружения леса, степи, высокогорья, пещеры, таинственные помещения и т.п.
- Звуки объектов окружения. Сюда можно отнести все объекты, которые находятся на локации, и должны звучать с чётким позиционированием. Например, деревья, торговцы, npc, фонтаны, работающие вышки, животные и т.д.
- Музыкальные слои – дополнительные текстуры для создания нужной атмосферы. Они относятся к музыкальной составляющей игры, но играют важную роль в звучании окружения.
Мы могли бы просто озвучить все 100+ локаций, но это не лучший подход. Намного полезнее, на взгляд нашей команды, было вывести некую систему и формулу, по которой все локации разделятся на группы, и эти группы уже будут озвучены определённым образом. Поэтому все локации были поделены на группы исходя из их визуального стиля и настроения, которое царит в них.
Каждый биом озвучивался по принципу слой окружения + позиционированные источники звуков, то есть в ивенте должны были звучать основные слои, которые присутствуют всегда – ветер, шум труб, небольшой гул, и случайное воспроизведения характерных для биома звуков – пение птиц, звуки летучих мышей, капли воды и тп.
Вот как эта схема выглядит в самом FMOD:
На скриншоте видны 5 слоев, которые звучат одновременно со своей сложной логикой (случайная модуляция громкости, высоты тона, паузы между воспроизведением и тп). Чтобы прописать в коде всю эту логику только для одного такого простого ивента потребуется немало времени, не говоря уже про отладку. А представьте если таких ивентов десятки или сотни?
В случае с аудиодвижками, программисту лишь нужно прописать в коде, что при запуске локации воспрозводится ивент X, а при выходе данный ивент останавливается.
Благодаря такому подходу в работе, нам удалось вместе с программистами подключить все эмбиенсы для более чем 100 локаций всего за 3 дня.
ТОНАЛЬНЫЕ СЛОИ
Разработчики хотели, чтобы на локациях была музыкальная составляющая, которая могла почти всегда звучать и не надоедать игроку.
Было принято решение создать систему дронов, как дополнение к музыкальной системе, о которой мы расскажем немного позже.
Команда AK Audio обсудила звучание с арт-командой AI Grind, после чего мы приступили к работе над созданием дронов, их делением на классы и программированием логики в FMOD.
В результате, все дроны мы поделили на 2 группы – тональные и шумовые. И каждую из групп ещё на более мелкие, исходя из их настроения и звучания (мрачные, напряженные, страшные, мистические, сказочные, вокальные).
Система дронов работает таким образом, что звук имеет плавное начало, случайное время воспроизведения, которое затем переходит в тишину на случайное количество времени, а затем дрон снова проигрывается, повторяя весь цикл сначала.
Все это сделано для того, чтобы звучание не было монотонным, и игрок не уставал от постоянно звучащей музыкальной составляющей.
Система дронов в FMOD
МУЗЫКА В ИГРЕ
При создании музыки для мобильных платформ в первую очередь нужно учитывать, что объем накопителя не бесконечный, и написать 4 часа музыки, как это делают в случае с ААА-проектами, для нас не является возможным. Следовательно, необходимо найти баланс между художественной составляющей и оптимизацией.
Наша команда провела исследование и выяснила, что двухминутная композиция (~50Мбайт) после оптимизации заняла примерно 1 мегабайт — а это довольно много, и побудило нас найти более экономный вариант.
Тогда было принято решение писать основные произведения с лейтмотивами, чтобы задать нужное настроение для конкретной локации или ситуации, а затем воспроизводить короткие фрагменты композиции в случайном порядке с небольшими паузами, чтобы поддерживать нужную атмосферу, и игрок при этом не уставал от постоянно звучащей музыки. Также в некоторых произведениях музыка отрабатывает в режимах исследования локации и схватки с врагом. Они переключаются через параметр, и это переключение осуществляется на стороне кода.
В момент звучания музыкальной композиции дроны перестают звучать. Данная система контролируется целиком на стороне нашей команды с помощью снепшотов (snaphots). Snapshot — это сохраненные настройки микшера, которые позволяют на ходу вносить изменения в микс и звучание, исходя из ситуации в игре. Эти настройки могут вызываться как из аудиодвижка, так и на стороне кода.
Теоретически можно эту систему воссоздать и без звуковых движков типа FMOD и Wwise, но это займёт несоизмеримо больше времени, еще больше времени будет уходить на отладку и работу с деталями, а в нашем случае программистам лишь придется указать, что в этот момент мы запускаем трек X, а в этот момент переключается значение параметра. В итоге, улучшается общий уровень качества звучания игры, а программисты получают больше времени на решение других актуальных задач.
Музыкальная система в FMOD
ВРАГИ, NPC, РАЗНЫЕ ПЕРСОНАЖИ
В игре Skylore невероятное количество разных волшебных животных, монстров и роботов. Важно было создать характерное звучание для существ каждого типа.
Мы вели обсуждения с арт-командой на тему того, каким мы хотим слышать древесных монстров, духов, механизированных врагов, горгоруш, нежити и прочих обитателей этого мира. А с программистами мы обсуждали какие звуки информационной среды у нас есть возможность подключить – атака врага, получение урона врагом, смерть.
Приняв всю необходимую информацию, мы получили списки мобов, рассортированные по расам со всей нужной информацией, чтобы было проще создавать общие звуковые черты. Всего в игре 130+ мобов, так что классификация врагов по группам является необходимостью.
Таким образом, почти все звуки врагов имеют две составляющие: голос и звуки движения. У каждого слоя по несколько вариаций, которые запускаются со случайными изменениями значений громкости и питча в рамках заданных границ.
В такой ситуации программистам опять же нужно лишь повесить триггер на запуск нужного ивента с нужного фрейма в анимации и не прописывать никакую дополнительную логику.
Если бы команда приняла решение писать код отдельно, ушло бы немало времени и повысился бы риск совершить ошибку, т.к. на каждого из 130+ персонажей в среднем уходит по 3-5 ивентов, и в каждом своя логика, что выливается в 400-650 звуковых событий и огромное количество строчек кода, без которых можно было бы с легкостью обойтись.
МИКС И СИСТЕМА ПРИОРИТЕТОВ
Все эти аспекты очень важны, но они ничего не стоят если игрок их не слышит и не считывает во время насыщенных сражений.
Чтобы решить эту задачу мы придумали и реализовали систему приоритетов и динамического микса. Эту систему удалось реализовать благодаря совместным усилиям нашей команды AK Audio и талантливых программистов AI Grind.
Система получила кодовое название H.A.E.R., и расшифровывается следующим образом:
- H – hero – герой, персонаж игрока;
- A – ally – союзник, дружественный для игрока персонаж (может быть как npc, так и другой игрок);
- E – enemy – враг, который в данный конкретный момент атакует не нас (может быть как ИИ, так и другой игрок);
- R – redenemy – враг, который в данный момент атакует игрока, героя (может быть как ИИ, так и другим игроком).
Статус каждого персонажа может меняться на лету в зависимости от того, «кем он нам приходится». Исходя из этого, у звуков будет меняться громкость воспроизведения и частотная составляющая. Благодаря этой системе во время особо насыщенных сражений в формате PvP или PvE игрок всегда сможет выделить для себя более важные звуки. Например, звуки окружения и обычные атаки союзников уйдут на задний план, а звуки врагов, которые прямо сейчас несут для нас максимальную угрозу, станут громче.
Как и музыка, эта система работает в двух режимах: исследования и сражения.
Всего в системе 10 уровней приоритетов. Самый высокий 0, а самый низкий 10. Когда звучит ивент с более высоким приоритетом, то все более низкие уровни становятся тише за счет сайдчейн компрессии.
ПОСТ - СКРИПТУМ
Мы знаем, что эта статья получилась заметно длиннее прочих. И вместе с тем, в ней мы не осветили ещё множество других аспектов и мелких решений, которые применялись для решения поставленных задач в ходе создания звукового оформления игры Skylore, но из неё уже можно составить общее представление об объёмах работ, которые необходимо провести, чтобы добиться действительно хорошего звука в игре.