HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > [gamedev] Генерация объектов на основе ритмов из музыки.
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12882
Возраст: 32

Рейтинг



Хитрота [gamedev] Генерация объектов на основе ритмов из музыки.

Недавно возникла мысль о создании игрушки способной генерировать игровые объекты в соответствии с ритмом музыки которую пользователь может сам подгрузить.

Интересно ваше мнение, о том как это можно реализовать.

Вот какие у меня мысли на этот счет:
1. Естественно первое что мы делаем это раскладываем нашу музыку на спектр частот.

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

3. Естественно мы не можем спавнить объекты под носом у игрока, поэтому возможно придётся дублировать канал, и пускать его раньше чем реально слышимая музыка, тогда у нас появится и время на анализ, и игрок будет в такт с музыкой взаимодействовать с объектами.

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

Грубо говоря всё сводится к поиску несущей частоты наших ударников, причем для всего трека целиком. Естественно этого мало, помимо этого предлагается вручную персонально для каждого трека подбирать скорость ритма, иначе алгоритм просто будет мазать и пропускать ударные.

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

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

5. Поэтому было решено не искать общий ритм, а разбить наши частоты на низкие, средние и высокие (на деле градаций куда больше), и уже для этих диапазонов искать свои несущие частоты и ритмы. Опять же необходимо не забывать, как быстро умеет меняться музыка, поэтому искать несущую частоту нужно не просто для каждого диапазона, но еще и в фиксированных диапазонах по времени. Благо наши объекты долетают до игрока не сразу и у нас есть большой запас по времени.

6. Следующая проблема, которая на данный момент является текущей - громкость. Нужно ли её учитывать или нет? Проблема в том что если будем искать несущую частоту по амплитудному значению, может вылезти нехорошая вещь - на милисекунду промелькнувшая частота с максимальной амплитудой перекроет все остальные, и по сути завалит нам этот кусок целиком. Т.к. эту частоту возможно даже не услышим, а те что с меньшей амплитудой, алгоритм просто проигнорирует.

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

Однако это все равно не решает проблемы громких кратковременных пиков, т.к. нам понадобится время для того чтобы вес актуальных частот, перегнал этот высер.

7. В дальнейшем есть идеи так же применить фильтры на саму музыку, для средних, низких и высоких частот, в результате чего мы уже получим для каждой из них свою спектрограмму, что несомненно должно повысить точность.

Пока на этом всё, появятся еще соображения, буду писать сюда. Появятся у вас, пишите тоже сюда

Сообщить модератору | | IP: Записан
Сообщение: 173582

Старое сообщение 02-10-2018 10:26
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4133

Рейтинг



Цитата:
FiEctro писал:
возникла мысль о создании игрушки способной генерировать игровые объекты в соответствии с ритмом музыки

Какого рода объекты?

Сообщить модератору | | IP: Записан
Сообщение: 173583

Старое сообщение 02-10-2018 13:52
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12882
Возраст: 32

Рейтинг



Да любые, либо плюшки которые надо собирать и получать очки, либо наоборот всякие мины которые надо облетать

Сообщить модератору | | IP: Записан
Сообщение: 173584

Старое сообщение 02-10-2018 13:58
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



https://store.steampowered.com/app/12900/AudioSurf/
https://store.steampowered.com/app/...rf_2/?l=russian

Отредактировано ncuxonaT 02-10-2018 в 18:04

Сообщить модератору | | IP: Записан
Сообщение: 173585

Старое сообщение 02-10-2018 18:02
- За что?
a1batross
Житель форума

Дата регистрации: May 2016
Проживает: Москва
Сообщений: 516
Возраст: 26

Рейтинг



Когда-то я писал генератор карт Osu! из звуковых данных. Можешь сыграть(лол, удачи): https://osu.ppy.sh/beatmapsets/632798/#osu

Я не шарю в терминологии, но тебе нужны алгоритмы детектирования beat и onset. Первый я использовал чтоюы считать примерный BPM, второй чтобы искать как раз эти переходы.

Ковырял вот энту библиотеку: http://essentia.upf.edu/documentati...mentation.html. Там есть раздел Rhythm detection, вот один из полезнейших для тебя.

Отредактировано a1batross 02-10-2018 в 20:08

Сообщить модератору | | IP: Записан
Сообщение: 173587

Старое сообщение 02-10-2018 20:01
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


FiEctro а в чем смысл делать новый Audiosurf? Игрушке же уже лет 10 или даже больше?

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 173588

Старое сообщение 02-10-2018 23:54
-
a1batross
Житель форума

Дата регистрации: May 2016
Проживает: Москва
Сообщений: 516
Возраст: 26

Рейтинг



XaeroX притом, сейчас новым аудиосёрфом никого не удивишь. Даже так, скорее всего это будет неинтересно. Потому что алгоритмы не сгенерируют то, что может сделать человек.

Аудиосёрф собственно тем же и страдал. Да, идея на тот момент была новая, но генерируемые карты были просто скучные.

Сообщить модератору | | IP: Записан
Сообщение: 173589

Старое сообщение 03-10-2018 01:47
- За что?
XF-Alien
Хи-хи! ^_^

Дата регистрации: Dec 2009
Проживает: Пермь
Сообщений: 681
Возраст: 22

Рейтинг



FiEctro Играл в Melody's Escape (в стиме есть). По-моему там неплохо так игра анализирует звуковую волну. Хотя я особо не увлекался музыкальными играми, т.е. сравнить особо не с чем. Можешь попробовать связаться с разработчиками и поинтересоваться как и что они там реализовали, но не уверен, что это удачная идея.

Цитата:
XaeroX писал:
а в чем смысл делать новый Audiosurf?

Затем же, зачем и мы делаем PW, который похож на кваку, которой уже 20+ лет. Я бы сказал, оригинальность – не предпосылка винрарности.

__________________
To start the match, Let's draw the sketch, Then add some magic from your heart!
Take gold and blue, Take silver too and put a sparkle in your art!
I love that dress, I love It, YES!!! I love the way It makes me feel.
I love the shoes, I love to choose, It was a dream and now It's real!

Сообщить модератору | | IP: Записан
Сообщение: 173590

Старое сообщение 03-10-2018 05:21
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12882
Возраст: 32

Рейтинг



Цитата:
XaeroX писал:
FiEctro а в чем смысл делать новый Audiosurf? Игрушке же уже лет 10 или даже больше?


А где я писал что хочу делать новый Audiosurf? Мне интересно разобраться как это работает, а не филосовствовать "надо оно кому то или нет".

Сообщить модератору | | IP: Записан
Сообщение: 173591

Старое сообщение 03-10-2018 10:04
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
XF-Alien писал:
Затем же, зачем и мы делаем PW, который похож на кваку, которой уже 20+ лет.

В таком широком смысле все 3д-экшены похожи на Кваку, даже четвертый Фоллаут.
Здесь же игра была построена целиком вокруг идеи алгоритма генерации уровней по музыке. Это было забавно первые 10 минут, а потом скучно. И дело было не в игре, а в самой идее, имхо.
Но мне интересно, как FiEctro хочет эту идею развить. Если это будет не Audiosurf - то весьма любопытно, что именно.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 173592

Старое сообщение 03-10-2018 10:33
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12882
Возраст: 32

Рейтинг



Цитата:
XaeroX писал:
Но мне интересно, как FiEctro хочет эту идею развить. Если это будет не Audiosurf - то весьма любопытно, что именно.


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

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

Цитата:
XaeroX писал:
Это было забавно первые 10 минут, а потом скучно. И дело было не в игре, а в самой идее, имхо.


Потому что аудиосерф это механника без игры, там не ставится перед игроком особо никаких задач.

Отредактировано FiEctro 03-10-2018 в 12:19

Сообщить модератору | | IP: Записан
Сообщение: 173593

Старое сообщение 03-10-2018 12:10
- За что?
qishmish
Житель форума

Дата регистрации: Jun 2007
Проживает: (void)
Сообщений: 1323

Рейтинг



Не "аудиосерф", а "экстаз"

__________________
Dr. Bowman: "So what was it?"
Sly: "Anachronox! Man, you guys are dumb."
Dr. Bowman: "But... You said it started with a 'U'."
Sly: "Yeah I know."

Сообщить модератору | | IP: Записан
Сообщение: 173726

Старое сообщение 31-10-2018 11:20
- За что?
AntiPlayer
Highway to Hell

Дата регистрации: May 2006
Проживает: Смоленск
Сообщений: 1015
Возраст: 33

Рейтинг



Мне в Beat Hazard нравилось играть. Намного интереснее, чем Audiosurf, но тоже на пару вечеров.

__________________
I tell you to enjoy life

Сообщить модератору | | IP: Записан
Сообщение: 173728

Старое сообщение 31-10-2018 18:18
- За что?
qishmish
Житель форума

Дата регистрации: Jun 2007
Проживает: (void)
Сообщений: 1323

Рейтинг



Хотя стоп, я промахнулся очень сильно.

Тред про влияние игрового звука/музыки на процесс или контент (как в Аудиосерф).

А я же больше про противоположность - чтобы действия игрока больше влияли на звук и музыку. Допустим, ритм стрельбы нашей чтоб задавал BPM, или скорость нашего бега меняла частоту LFO у басов в треке, а может что-то еще можно замутить...

__________________
Dr. Bowman: "So what was it?"
Sly: "Anachronox! Man, you guys are dumb."
Dr. Bowman: "But... You said it started with a 'U'."
Sly: "Yeah I know."

Сообщить модератору | | IP: Записан
Сообщение: 173729

Старое сообщение 31-10-2018 21:24
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 19:38. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > [gamedev] Генерация объектов на основе ритмов из музыки.
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024