Девелоперам и композиторам порекомендую посмотреть Elias - музыкальный движок, заточенный под реализацию адаптивной музыки. Есть интеграция с Unity, и Unreal, возможно связать также с Wwise, Fmod и Fabric.
Только "затакт", а не "потому что такт"Вот тут не понял, это про что?
И перфоманс от такого количества дорог точно будет не радужным.3% загрузка CPU, только что проверил. И это при том, что аудио не пожатое, после экспорта в саундбанк еще меньше будет.
В-четвертых, экспортируйте ваш трек максимально возможным количеством отдельных дорожек. Да, собирать его будет намного дольше, но если вам позже понадобится что-то изменить, у вас будет такая возможность.
Технический директор на проекте совершенно не обрадуется такому подходу. Лучше всё же чётко обозначить слои на этапе планирования и не перегружать RAM и CPU без явных причин.
В принципе, до оптимизации и экспорта банка в движок такой подход возможен. Я когда собираю в FMOD трек - иногда перкуссию рендерю "построчно". Потом после экспериментов с автоматизацией - отсекаю лишнее и рендерю по 2-3 дорожки в 1. Группирую в стемы всё, что можно сгруппировать, и решаю простым фильтром те вопросы, которые решала громкостью, например (иногда это звучит интереснее). Т.е. 11 дорожек удобны в прототипе ивента, но не рискую делать так в финальной сборке. RAM и CPU - это ладно. А что с загруженностью диска произойдёт, если стримингом 11 дорог гнать?
Времена экономии на звуке уже давно канули в лету, нагрузка там мизерная на самом деле, даже по меркам мобильных игр. Конечно, лучше все планировать заранее, но когда разработка игр шла по плану? ;)
Божечки, это великолепнейший пост. Лично для меня — самое крутое что я когда-либо видел на DTF. Мечта стать композитором в геймдеве стала чуточку ближе))
А ещё можно писать трекерную музыку и не ебать себе мозг. Поскольку музыка играет в реальном времени - трекеры дают значительно большую гибкость и возможности в адаптивности (привет Soul Reaver).
P.S. И почему до сих пор никто не написал движок/формат, где в качестве инструментов используются не семплы, а подключаемые модульные синтезаторы? Компьютеры уже давным давно позволяют это по мощности, а демосцены уже давно используют самописные виртуальные синтезаторы с незапамятных времён. Ведь вы только представьте - крутить ручку синтезатора прямо в реальном времени в мелодии, сколько возможностей! Не, есть конечно всякие библиотеки от трекеров а ля Sunvox, но они все закрыты сами в себе, нет универсального формата с подключаемыми внутрь синтезаторами. =Р P.P.S. А статье как всегда плюс.
Трекер стар и уныл, можно просто midi использовать, это много где применяется. А насчет модульных синтезаторов - очень специфичная тема с множеством "но". Во-первых, хорошие синтезаторы очень жручи до CPU. Во-вторых, что делать с живыми инструментами? Грузить туда сэмплер со стагиговыми библиотеками? В-третьих, многие приемы, вроде реверса, в риалтайме очень сложно сделать. В-четвертых, хорошая обработка жрет еще больше, чем сами синтезаторы.
Конечно когда-нибудь мы к этому придем, но пока очень рано.
Pure Data? Её используют и для написания музыки в играх? Всегда думал, что ей пользуются только композиторы-энтузиасты для фестивалей экспериментальной музыки)
Скорее нет, чем да, Pd - это не самая стабильная среда на свете. Ограниченно используют для прототипирования, плюс могут иногда собирать отдельные процедурные плагины с помощью Heavy - но это чаще для саунд-дизайна.
Spore это такое исключение, у них был очень большой бюджет и много желания сделать генеративную систему на Pd. В итоге они потратили очень много ресурсов на переписывание исходного кода Pure Data, я бы никому не советовал такое повторять.
Про русскую вики — проорал! Это как каждый раз, когда я вижу слово «функционал» (популярное у разработчиков), то вспоминаю вот это: https://pavelf.ru/all/function/
Думал про вертикальный метод ещё до статьи, когда не особо разбирался в разновидностях адаптивной музыки. Только с поправкой на то, что игрок вознаграждается доп. очками за действия по музыкальному таймингу. Но всё равно спасибо за статью.
Девелоперам и композиторам порекомендую посмотреть Elias - музыкальный движок, заточенный под реализацию адаптивной музыки. Есть интеграция с Unity, и Unreal, возможно связать также с Wwise, Fmod и Fabric.
https://www.eliassoftware.com/
Хорошая статья.
Только "затакт", а не "потому что такт"
И перфоманс от такого количества дорог точно будет не радужным.
Только "затакт", а не "потому что такт"Вот тут не понял, это про что?
И перфоманс от такого количества дорог точно будет не радужным.3% загрузка CPU, только что проверил. И это при том, что аудио не пожатое, после экспорта в саундбанк еще меньше будет.
Комментарий недоступен
Хорошая статья!
В-четвертых, экспортируйте ваш трек максимально возможным количеством отдельных дорожек. Да, собирать его будет намного дольше, но если вам позже понадобится что-то изменить, у вас будет такая возможность.
Технический директор на проекте совершенно не обрадуется такому подходу. Лучше всё же чётко обозначить слои на этапе планирования и не перегружать RAM и CPU без явных причин.
В принципе, до оптимизации и экспорта банка в движок такой подход возможен. Я когда собираю в FMOD трек - иногда перкуссию рендерю "построчно". Потом после экспериментов с автоматизацией - отсекаю лишнее и рендерю по 2-3 дорожки в 1. Группирую в стемы всё, что можно сгруппировать, и решаю простым фильтром те вопросы, которые решала громкостью, например (иногда это звучит интереснее). Т.е. 11 дорожек удобны в прототипе ивента, но не рискую делать так в финальной сборке. RAM и CPU - это ладно. А что с загруженностью диска произойдёт, если стримингом 11 дорог гнать?
Времена экономии на звуке уже давно канули в лету, нагрузка там мизерная на самом деле, даже по меркам мобильных игр. Конечно, лучше все планировать заранее, но когда разработка игр шла по плану? ;)
Божечки, это великолепнейший пост. Лично для меня — самое крутое что я когда-либо видел на DTF.
Мечта стать композитором в геймдеве стала чуточку ближе))
Спасибо :3
А ещё можно писать трекерную музыку и не ебать себе мозг. Поскольку музыка играет в реальном времени - трекеры дают значительно большую гибкость и возможности в адаптивности (привет Soul Reaver).
P.S.
И почему до сих пор никто не написал движок/формат, где в качестве инструментов используются не семплы, а подключаемые модульные синтезаторы? Компьютеры уже давным давно позволяют это по мощности, а демосцены уже давно используют самописные виртуальные синтезаторы с незапамятных времён. Ведь вы только представьте - крутить ручку синтезатора прямо в реальном времени в мелодии, сколько возможностей! Не, есть конечно всякие библиотеки от трекеров а ля Sunvox, но они все закрыты сами в себе, нет универсального формата с подключаемыми внутрь синтезаторами. =Р
P.P.S.
А статье как всегда плюс.
Трекер стар и уныл, можно просто midi использовать, это много где применяется. А насчет модульных синтезаторов - очень специфичная тема с множеством "но". Во-первых, хорошие синтезаторы очень жручи до CPU. Во-вторых, что делать с живыми инструментами? Грузить туда сэмплер со стагиговыми библиотеками? В-третьих, многие приемы, вроде реверса, в риалтайме очень сложно сделать. В-четвертых, хорошая обработка жрет еще больше, чем сами синтезаторы.
Конечно когда-нибудь мы к этому придем, но пока очень рано.
Круто, и хочется больше примеров. Вспомнил Ведьмака и Horizon как примеры «горизонтального» метода, и серию Mario — «вертикального».
При горизонтальном всегда бесит, когда куски трека обрываются резко. С этим как-то можно бороться?
Нормально делать квантайз.
Квантайз + экспорт вместе с хвостами + асинхронное воспроизведение и все будет хорошо
Pure Data? Её используют и для написания музыки в играх? Всегда думал, что ей пользуются только композиторы-энтузиасты для фестивалей экспериментальной музыки)
Скорее нет, чем да, Pd - это не самая стабильная среда на свете. Ограниченно используют для прототипирования, плюс могут иногда собирать отдельные процедурные плагины с помощью Heavy - но это чаще для саунд-дизайна.
Spore это такое исключение, у них был очень большой бюджет и много желания сделать генеративную систему на Pd. В итоге они потратили очень много ресурсов на переписывание исходного кода Pure Data, я бы никому не советовал такое повторять.
Да, например в Spore использовали - http://uk.pc.gamespy.com/pc/spore/853810p1.html
Комментарий недоступен
Про русскую вики — проорал! Это как каждый раз, когда я вижу слово «функционал» (популярное у разработчиков), то вспоминаю вот это:
https://pavelf.ru/all/function/
Ничерта не понял, но было очень интересно.
Спасибо)
в статье скрины Ableton live?
FMOD. Но не исключено, что при создании интерфейса вдохновлялись именно лайвом.
Lumines
Думал про вертикальный метод ещё до статьи, когда не особо разбирался в разновидностях адаптивной музыки. Только с поправкой на то, что игрок вознаграждается доп. очками за действия по музыкальному таймингу. Но всё равно спасибо за статью.
Я что на хабре оказался, что-то новенькое...
Классная статья, спасибо, вот бы ее на лет 5 пораньше прочитать, а то выдумывал с ребятами костылями как мог в приложении одном (не игра)
Спасибо за текст. Перетащили в Gamedev, отредактировав чуть-чуть.