Gamedev Владимир Семыкин
1 803

Мелодия на заказ: как наладить понимание между музыкантами и программистами

Простые диаграммы, решающие множество проблем.

В закладки
Аудио

Разработка игр затрагивает множество дисциплин, что требует согласования действий совершенно разных отделов. И им приходиться учиться понимать друг друга. Тем не менее в разработку могут быть вовлечены внешние сотрудники, общение с которыми может оказаться значительно сложнее. Это, например, касается взаимопонимания музыкантов и программистов.

Овидио Эскобедо, разработчик студии 1 Simple Game, опубликовал в блоге, посвящённом разработке игры Mucho Taco!, текст про создание эффективного способа коммуникации между программистами и музыкантами. Он описал, как команда работала со студией Soundscape Studio, занимавшейся созданием музыки для их игры. Мы выбрали из материала главное.

Основные отличия игровой музыки от остальной:

  • пользователь управляет игрой. Это значит, что музыка может поменяться в любой момент;
  • треки должны зацикливаться;
  • композиции не должны быть длинными. Особенно это касается мобильных игр, для которых вопрос занимаемой памяти особенно актуален.

На первых этапах совместной работы с Soundscape Studio, разработчики из 1 Simple Game представили демо-версию и примеры из фильмов и игр, на которые они хотели бы ориентироваться. На основе этого, Soundscape Studio подготовила разные музыкальные кусочки, чтобы подобрать основу для концепции, которая затем станет главной темой.

Когда обе команды остановились на конкретной мелодии, 1 Simple Game объяснили музыкантам, как нужно экспортировать треки. Общение между программистом и музыкантом должно было стать трудной задачей, поэтому разработчики использовали диаграммы, чтобы визуально представить ход игры и точный момент, когда должен воспроизводиться каждый трек.

Диаграмма для взаимопонимания музыкантов и программистов

Условные обозначения

Music Frames

Части общей композиции

Track Frame — содержит название файла; представляет один музыкальный кусочек; длина может варьироваться; может быть вступлением или закольцованным элементом.

Theme Frame — состоит из двух и более Track Frames или Theme Frames. Они используются для объединения небольших кусочков в более длинные.

Настройки трека

Различные варианты воспроизведения отдельной части

Once — Track Frame или Theme Frame будут играть один раз.

Loop — Track Frame или Theme Frame будут воспроизводиться два и более раза подряд. Благодаря этому, музыканты знают, что трек должен зацикливаться.

Number of Loops — показывает сколько раз Track Frame или Theme Frame должны повторяться.

Infinite Looping — Track Frame или Theme Frame будут повторяться до тех пор, пока не произойдет конкретное событие (обычно это действие совершает игрок).

Связующие формы

Отображение входящего или исходящего типа Track Frame и Theme Frame

In — белая или пустая связь; Out — заполненная или чёрная связь; Cut — прямые углы (показывает, что дорожка либо начинается, либо заканчивается внезапно); Fade in/out — скруглённые углы (показывает, что дорожка или будет затихать, или нет); Fading Time — длительность затихания.

Варианты начала воспроизведения

Различные типы старта воспроизведения

Instant Play — Track Frame или Theme Frame будут играть с начала игры.

Match Time and Play — Track Frame или Theme Frame будут воспроизводиться с той же временной отметки, что и предыдущий Frame. Это особенно полезно, когда музыкальная композиция должна оставаться неизменной, но с небольшими инструментальными вариациями.

First to Play — это будет первый Track Frame или Theme Frame, воспроизведённый в Theme Frame.

Варианты остановки воспроизведения

End — Track Frame или Theme Frame перейдёт в следующий Track Frame или Theme Frame после окончания последовательности.

Triggered — Track Frame или Theme Frame не перейдёт к следующему, пока не произойдёт определённое событие. Оно может быть активировано пользователем или действием в самой игре.

Event — определяет название события, которое вызовет смены Track Frame или Theme Frame.

Например, это музыкальная схема основной темы Mucho Taco!:

Для игры Mucho Taco! разработчики сделали несколько событий, которые меняют музыку на заднем фоне. Одним из таких событий является активируемая игроком «Fiesta». Когда это происходит, текущий трек останавливается, и вместо него включается «Fiesta Song» — это композиция с фиксированной продолжительностью.

Появление «Fiesta Song», которое основывается на конкретном действии игрока

Другая фоновая композиция называется «Mucha Suerte»: она запускается автоматически. Это событие не имеет фиксированной продолжительности, и игрок может оставаться в нём неограниченное количество времени, поэтому трек должен зацикливаться.

Чтобы упростить циклическую часть трека, разработчики добавили вступление, которое выполняет функцию подводки.

Дополненная диаграмма, учитывающая появление темы «Mucha Suerte»

Точки начала

Обозначение одной из точек начала воспроизведения музыки

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

Финальная диаграмма, которая эффективно показывает музыкантам, как должны быть подготовлены треки

#музыка #мобайл

{ "author_name": "Владимир Семыкин", "author_type": "editor", "tags": ["\u043c\u0443\u0437\u044b\u043a\u0430","\u043c\u043e\u0431\u0430\u0439\u043b"], "comments": 3, "likes": 56, "favorites": 114, "is_advertisement": false, "subsite_label": "gamedev", "id": 38101, "is_wide": false, "is_ugc": false, "date": "Wed, 30 Jan 2019 18:07:05 +0300" }
{ "id": 38101, "author_id": 94357, "diff_limit": 1000, "urls": {"diff":"\/comments\/38101\/get","add":"\/comments\/38101\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/38101"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "possessions": [] }

3 комментария 3 комм.

Популярные

По порядку

5

Не один день небось разрабатывали нотацию...

Ответить
0

Прям захотелось что бы запилили шаблон для Visio)

Ответить
1

как наладить понимание между музыкантами и программистами

быть музыкантом и программистом

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Пять простых способов разогнать свой ПК
с помощью соли и чайной ложки
Подписаться на push-уведомления