урок по созданию визуализатора звука в Unity3D [MAC]
Всё описанное ниже, предназначено для пользователей Mac.
Часть I. Подготовка аудио для OSC
OSC будет использоваться для преобразования музыки в значения, которые будут подаваться в качестве входных данных для визуализатора.
1) Скачайте и установите Soundflower:
Он перенаправляет аудио входы и выходы – идеально подходит для поставленной задачи.
2) Теперь будем использовать выход компьютера в качестве входных данных.
Зайдите в параметры системы (System Preferences) в настройки звука (Sound). На вкладке Output выберите Soundflower (2ch) (смотрите фото)
3) Скачайте и установите демо-версию VDMX:
Демо-версия не позволит сохранять файлы, но для нашего проекта это и не нужно.
4) Скачайте файл с примером с github:
Прямая ссылка на zip-файл:
5) Откройте файл .vdmx5 с помощью VDMX. Используйте другие файлы, если у вас более старая версия …
6) Попытайтесь проиграть музыку в любом приложении (Spotify, iTunes и т.д.). Вы должны увидеть волны на вкладке Audio Analysis 1.
7) Зайдите в настройки и убедитесь, что там задан порт OSC, как показано на фото ниже.
Всё – настройка звука закончена. Теперь можно повозиться с VDMX, но и этого уже достаточно для получения интересных видеообразов.
Часть II. Приложение
1) Если Вы ещё не сделали этого ранее, скачайте бесплатную версию Unity:
В Pro-версии есть вещи, которые были бы полезны – настройка глубины резкости и различные эффекты. Но без всего этого можно обойтись.
2) Откройте на github папку, которую уже использовали ранее
3) Откройте файл ExampleOscApp/Assets/Scene1.unity. Должна запуститься среда Unity3D с открытой первой сценой
4) В окне иерархии (Hierarchy) Вы видите список объектов, использующихся в сцене. К каждому объекту можно добавить скрипт.
Camera. С этой точки будет видно происходящее в приложении.
Компоненты GUILayer, Flare Layer и Audio Listener автоматически добавляются к каждой камере. Пока не думайте о них.
Скрипт Rotate Around вращает камеру вокруг своего центра, а также движется вверх-вниз в соответствии с синусоидой.
Capsule, Cube, Cylinder и Sphere – это трёхмерные объекты на сцене. Будем масштабировать их под музыку.
Скрипт ScaleObject. Всего 2 строчки кода, и объекты будут изменять свой размер под музыку! Переменная oscChannel – это число от 0 до3, соответсвующее значению из VDMX: 0 – это басы, 1 и 2 – средние частоты, 3 – высокие частоты.
Point light – это просто источник освещения, придающий трёхмерным объектам глубину. OSCStuff соединяет выход OSC из VDMX с Unity.
Обратите внимание, что IP и порты соответствуют тем, что были заданы в VDMX.
Весь программный код можно найти на форуме:
5) Попробуйте запустить сцену, нажав кнопку Play.Объекты начнут подпрыгивать под музыку!
Часть III.Вперёд и вверх
1) После того, как Вы разберётесь со структурой проекта в Unity, можно будет переходить к созданию второй сцены.
2) Эта сцена – точная копия сцены, которая была создана для фестиваля Sonar. Она даёт интересные результаты, и её очень просто сделать.
3) В этой сцене появляется несколько новых вещей:
- Keyboard Manager (менеджер клавиатуры): этот класс используется для того, чтобы задать нажатию клавиш разные функции
- Несколько камер. В процессе воспроизведения можно переключаться между камерами посредством менеджера клавиатуры.
- Дублирование объектов.
- Физика: к каждой сфере добавляется компонент rigidbody. Теперь сферы смогут сталкиваться друг с другом.
- Смена материалов прямо в процессе воспроизведения. Если нажать одну из клавиш J, K, L и клавишу «;» во время воспроизведения, то сфера изменит свой цвет. Это поведение настраивается в менеджере клавиатуры, а код содержится в классе AttractionObject.
4) Во время воспроизведения сцены, перейдите в VDMX и поиграйтесь с его значениями. Это отличный способ влиять на видеообразы.
Ниже Вы видите неколько фото с фестиваля Sonar: