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

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

Рейтинг



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рейтинг



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

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

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

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

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

Рейтинг



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

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

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

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

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

Рейтинг



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

__________________
...А еще нельзя ли стопку,
Потому как молодец?

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

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

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

Группа: Неопытный
Дата регистрации: May 2016
Проживает: Москва
Сообщений: 187
Возраст: 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 в 21:08

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

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

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 28139
Нанёс повреждений: 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

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

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

Рейтинг



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

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

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

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

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

Рейтинг



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

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

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

__________________
Некоторые вещи требуют больше времени.

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

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

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

Рейтинг



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


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

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

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

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

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 28139
Нанёс повреждений: 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 11:33
-
FiEctro
Диванные войска

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

Рейтинг



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


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

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

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


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

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

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

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

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

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

Рейтинг



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

__________________
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
Проживает: Смоленск
Сообщений: 435
Возраст: 28

Рейтинг



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

__________________
I tell you to enjoy life

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

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

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

Рейтинг



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

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

А я же больше про противоположность - чтобы действия игрока больше влияли на звук и музыку. Допустим, ритм стрельбы нашей чтоб задавал 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. Текущее время 06:29. Новая тема    Ответить
  Предыдущая тема   Следующая тема
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