Similar presentations:
Разработка ритм-игры в Unity с адаптивной генерацией уровней на основе аудиоданных
1.
Государственное бюджетное общеобразовательное учреждениесредняя общеобразовательная школа № 292 с углубленным изучением
математики
Фрунзенского района Санкт-Петербурга
Итоговый индивидуальный проект
Тип проекта: Практико-ориентированный
Предметная область: Информатика (монопредметный)
Тема: Разработка ритм-игры в среде Unity с адаптивной генерацией уровней
на основе аудиоданных
Выполнил:
Кравцов Богдан Вадимович,
ученик 9 «Б» класса
Руководитель проекта:
Трофимова Наталья Викторовна
Санкт-Петербург
2025/2026 уч. год
2.
ОГЛАВЛЕНИЕВведение
Глава 1. Теоретические основы разработки ритм-игр
• 1.1 Анализ жанра ритм-игр и их проблематика
• 1.2 Выбор инструментария: возможности игрового движка Unity
• 1.3 Основы анализа аудиоданных в программировании
Глава 2. Практическая реализация проекта
• 2.1 Проектирование архитектуры и механики игры
• 2.2 Программная реализация анализа аудио и генерации уровней
• 2.3 Разработка системы сложности
• 2.4 Создание визуальной и аудио-обратной связи
• 2.5 Тестирование и отладка программного продукта
Заключение
Список литературы
3.
ВВЕДЕНИЕПроблема: Современные ритм-игры часто предлагают игрокам заранее созданные
разработчиками уровни под конкретные треки (маппинг). Это ограничивает игровой
контент и не позволяет игрокам наслаждаться собственной музыкой. Проблема
заключается в отсутствии гибкости и персонализации в данном жанре игр.
Актуальность проекта: В современном мире видеоигры являются не только
развлечением, но и мощным инструментом для развития когнитивных способностей:
реакции, координации, чувства ритма и стратегического мышления. Кроме того,
цифровое творчество, включая программирование и геймдизайн, – это одна из
самых перспективных профессиональных сфер.
Гипотеза: Предполагается, что использование алгоритмов спектрального анализа
звука (быстрое преобразование Фурье) в среде Unity позволит автоматически и
корректно генерировать игровые препятствия в такт музыке, создавая уникальный
игровой уровень из любого пользовательского аудиофайла.
4.
ВВЕДЕНИЕЗадачи:
• Спроектировать игровую механику и архитектуру проекта.
• Реализовать систему анализа аудио и генерации уровней.
• Разработать системы сложности.
• Создать визуальную и аудио-обратную связи.
• Протестировать компьютерную игру и провести отладку.
• Объект исследования: Процесс разработки компьютерных игр.
Предмет исследования: Алгоритмы процедурной генерации уровней на основе
аудиоданных.
Методы исследования: Анализ предметной области, моделирование игровых
процессов, объектно-ориентированное программирование на языке C#,
тестирование.
Продукт проекта: Интерактивная компьютерная игра в жанре «ритм-экшн»,
разработанная на игровом движке Unity.
5.
1.1 Анализ жанра ритм-игр и их проблематикаРитм-игры — это жанр видеоигр, где в основе
механики лежит чувство ритма игрока.
Примерами классических представителей жанра
являются Osu!, Guitar Hero, Beat Saber и
Geometry Dash. В большинстве этих игр
используется так называемый ручной «маппинг»
— процесс, при котором разработчики или
энтузиасты вручную расставляют игровые
элементы (ноты, препятствия) в соответствии с
ритмом песни.
Главный минус такого подхода — зависимость
игрока от создателей контента. Если игрок хочет
сыграть под свою любимую песню, которой нет
в базе, он не сможет этого сделать без долгих
часов изучения редактора уровней.
Автоматическая генерация решает эту
проблему.
6.
1.2 Выбор инструментария: возможности UnityВ качестве среды разработки был выбран игровой движок Unity. Он является одним из
самых популярных в мире благодаря своей универсальности, наличию огромной базы
обучающих материалов и мощному встроенному функционалу.
Программирование в Unity осуществляется на языке C# (Си Шарп), который является
современным объектно-ориентированным языком программирования. Unity отлично
подходит для 2D и 3D игр, а также обладает встроенной системой работы со звуком
(AudioSource), что критически важно для моего проекта.
7.
1.3 Основы анализа аудиоданных в программированииДля того чтобы игра «понимала» музыку,
необходимо перевести звуковую волну в
цифровые данные, пригодные для анализа.
В программировании для этого
используется алгоритм БПФ — Быстрое
преобразование Фурье (Fast Fourier
Transform). Он раскладывает звуковой
сигнал на частотный спектр (басы, средние
и высокие частоты).
Анализируя всплески амплитуды
(громкости) на определенных частотах
(например, на низких частотах, где звучат
ударные), алгоритм может зафиксировать
«бит» (удар) в песне. Именно в этот момент
игра должна сгенерировать препятствие
или ноту.
8.
2.1 Проектирование архитектуры и механики игрыИгровая механика построена по принципу "runner/rhythm-action". Игрок управляет
объектом, который движется навстречу генерируемым платформам («нотам»).
Цель игрока — вовремя двигать курсор мыши попадая игровым объектом на
препятствия в такт музыке. Была разработана система подсчета очков (Score) и
множитель за безошибочную серию (Combo).
9.
2.2 Программная реализация анализа аудио и генерации уровнейЭто самая сложная техническая часть проекта. Для анализа музыки я использовал
встроенный метод Unity AudioListener.GetSpectrumData. Этот метод возвращает
массив данных о частотах в текущий кадр игры.
Я написал скрипт на C#, который непрерывно считывает определенный диапазон
частот (например, от 60 до 250 Гц — басы). Если амплитуда звука в этом
диапазоне превышает заданный порог, скрипт вызывает функцию "Spawn"
(создание). Функция инстанцирует (создает клон из префаба) игровой объект на
сцене.
10.
2.3 Разработка системы сложностиДля того чтобы игра была интересна пользователям с разным уровнем реакции, я
внедрил систему уровней сложности: "Легкий", "Нормальный" и "Сложный".
Сложность регулируется тремя параметрами:
• Скорость движения объектов (чем выше сложность, тем меньше времени
на реакцию).
• Порог чувствительности (Threshold) при анализе звука. На легком уровне
игра генерирует объекты только на самые громкие удары, на сложном —
улавливает даже мелкие ритмические рисунки.
• "Окно прощения" — тайминг, в течение которого нажатие засчитывается
как успешное.
11.
2.4 Создание визуальной и аудио-обратной связиИгра должна ощущаться «живой». Для этого была настроена обратная связь
(feedback).
• Визуальная: При успешном попадании в ритм срабатывает система частиц
(Particle System), создающая эффект взрыва или свечения. Фон игры плавно
меняет цвет или пульсирует в зависимости от громкости музыки.
• Аудио: Если игрок промахивается, звук музыки может кратковременно
приглушаться, или проигрывается звук ошибки, чтобы дать понять, что ритм
потерян.
12.
2.5 Тестирование и отладка программного продуктаНа этапе тестирования (Аналитический этап) игра была проверена на треках
различных жанров: рок, электронная музыка, классика.
В ходе тестирования был выявлен баг: при очень быстрых песнях объекты
сливались воедино. Проблема была решена добавлением переменной cooldown
(задержка), которая ограничивает минимальное время между генерацией двух
соседних объектов. Программа успешно отлажена и готова к демонстрации.
13.
ЗАКЛЮЧЕНИЕВ ходе работы над индивидуальным итоговым проектом все поставленные задачи были
успешно выполнены. Был разработан полнофункциональный прототип компьютерной
игры в жанре «ритм-экшн» на движке Unity.
Главным достижением стала успешная реализация алгоритма адаптивной генерации
уровней. Гипотеза проекта подтвердилась: встроенные средства спектрального анализа
звука в среде Unity и написанные на языке C# скрипты действительно позволяют
переводить звуковые частоты любого аудиофайла в игровые события (появление
препятствий).
Созданный продукт решает заявленную проблему: теперь игрок не ограничен заранее
подготовленными треками и может тренировать реакцию и чувство ритма под свою
любимую музыку. Разработанная система сложности делает игру доступной для всех
желающих.
В перспективе данный прототип может быть доработан: можно добавить поддержку VR
(виртуальной реальности), улучшить 3D-графику и добавить функцию интеграции с
потоковыми музыкальными сервисами. Опыт, полученный при реализации проекта, стал
отличным стартом для дальнейшего развития в сфере программирования и геймдизайна.
14.
СПИСОК ЛИТЕРАТУРЫОфициальная документация Unity. [Электронный ресурс]. Режим доступа:
https://docs.unity3d.com/
Хокинг Дж. Unity в действии. Мультиплатформенная разработка на C#. — СПб.:
Питер, 2019. — 352 с.
Прайс М. C# 9 и .NET 5. Разработка и архитектура. — СПб.: Питер, 2021. — 816 с.
Шилдт Г. C# 4.0: полное руководство. — М.: Вильямс, 2011. — 1056 с.
Анализ аудиоданных и БПФ в геймдеве (Статьи с портала Хабр). [Электронный
ресурс]. Режим доступа: https://habr.com/
Базовые принципы геймдизайна ритм-игр (Game Developer). [Электронный
ресурс]. Режим доступа: https://www.gamedeveloper.com/
software