Наше комьюнити:   OpenGL Shader Lab  •  Half-Life FX  •  Форум  
HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > [gamedev] Генерация объектов на основе ритмов из музыки.
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
FiEctro
Диванные войска

Группа: Опытный
Дата регистрации: Aug 2006
Проживает: Зеленый форум
Сообщений: 8705
Возраст: 27

Рейтинг



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

__________________
Для организации коллектива надо уметь ссать в уши виртуозно (с) Raid

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

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

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

Рейтинг



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

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

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

Старое сообщение 02-10-2018 13:52
- За что?
FiEctro
Диванные войска

Группа: Опытный
Дата регистрации: Aug 2006
Проживает: Зеленый форум
Сообщений: 8705
Возраст: 27

Рейтинг



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

__________________
Для организации коллектива надо уметь ссать в уши виртуозно (с) Raid

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

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

Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 347
Возраст: 28

Рейтинг



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
Проживает: Москва
Сообщений: 183
Возраст: 20

Рейтинг



Когда-то я писал генератор карт 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
Проживает: Новосибирск
Сообщений: 28077
Нанёс повреждений: 466 ед.
Возраст: 32

Рейтинг



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


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

__________________
So she began again: 'Où est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.'

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

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

Группа: Неопытный
Дата регистрации: May 2016
Проживает: Москва
Сообщений: 183
Возраст: 20

Рейтинг



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

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

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

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

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

Рейтинг



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

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

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

__________________
Акула капитализма, эксплуататор и меркантилист.

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

Старое сообщение 03-10-2018 05:21
- За что?
FiEctro
Диванные войска

Группа: Опытный
Дата регистрации: Aug 2006
Проживает: Зеленый форум
Сообщений: 8705
Возраст: 27

Рейтинг



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


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

__________________
Для организации коллектива надо уметь ссать в уши виртуозно (с) Raid

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

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

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 28077
Нанёс повреждений: 466 ед.
Возраст: 32

Рейтинг



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


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

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

__________________
So she began again: 'Où est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.'

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

Старое сообщение 03-10-2018 10:33
-
FiEctro
Диванные войска

Группа: Опытный
Дата регистрации: Aug 2006
Проживает: Зеленый форум
Сообщений: 8705
Возраст: 27

Рейтинг



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


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

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

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


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

__________________
Для организации коллектива надо уметь ссать в уши виртуозно (с) Raid

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

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

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



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


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

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

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

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

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

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

Рейтинг@Mail.ru