customphase

customphase

Пикабушник
Дата рождения: 01 января 1969
поставил 949 плюсов и 9964 минуса
отредактировал 1 пост
проголосовал за 2 редактирования
Награды:
10 лет на Пикабу
9679 рейтинг 25 подписчиков 5 подписок 16 постов 6 в горячем

Рендеринг травы в Unity

Основан на методе описанном тут: https://gist.github.com/sebbbi/a599d7896aa3ad36642145d54459f...


Основная скорость достигается за счет минимизации чтений из памяти в угоду расчету всего что возможно напрямую в шейдере.

Показать полностью

Бесплатный самодельный Lipsync (с препроцессингом) в юнити

Всем привет.

Недавно взялся делать музыкальное видео для youtube канала на который работаю, и в качестве эксперимента решил попробовать использовать юнити. В принципе фотореалистичный рендер не требовался, а время поджимало, поэтому идея имела место быть.

Идея видео подразумевала использование липсинка, однако порыскав некоторое время по интернетам, ничего актуального, рабочего и бесплатного найдено не было, ни для юнити, ни для 3д макса (в котором привык работать). Поэтому пришлось выкручиваться немного по другому. На затравку гифка с результатом работы:

Бесплатный самодельный Lipsync (с препроцессингом) в юнити Unity, Unity3D, Gamedev, Музыка, Гифка, Видео, Длиннопост

Главная программулина которая нам понадобится - Rhubarb. Она анализирует звуковой файл и выдает текстовый файл с таймингами всех распознанных фонем. Абсолютно бесплатная, с открытым кодом. Качаем ее отсюда - https://github.com/DanielSWolf/rhubarb-lip-sync/releases и распаковываем.

В ту же папку, куда распаковали, закидываем наш wave файл. Так же для увеличения точности распознавания опционально можно создать текстовый файл с транскрипцией происходящего в звуковом файле (файл диалога).

Rhubarb не имеет графического интерфейса и работать с ней нужно через командную строку. Один из способов быстро открыть командную строку - нажимаем на пустое место в строке полного пути к папке:

Бесплатный самодельный Lipsync (с препроцессингом) в юнити Unity, Unity3D, Gamedev, Музыка, Гифка, Видео, Длиннопост

Там всё стираем, вводим cmd и жмем энтер:

Бесплатный самодельный Lipsync (с препроцессингом) в юнити Unity, Unity3D, Gamedev, Музыка, Гифка, Видео, Длиннопост

В появившемся окне вводим следующее:

rhubarb имя_звукового_файла.wav > имя_файла_вывода.txt -d имя_файла_диалога.txt

Соответственно, если файл диалога не используете, то -d имя_файла_диалога.txt вводить не надо. Жмем энтер и ждем. Программа создаст выходной текстовый файл с таймингами всех распознанных фонем, копируем его в наш юнити проект. Дальше необходимо подготовить модельку.

Rhubarb может распознавать 9 основных фонем. Таблицу фонем с примерной визуализацией рта и описанием можно найти в ридми у проекта (https://github.com/DanielSWolf/rhubarb-lip-sync/). Нужно все 9 расположений рта воссоздать в 3д редакторе. Должно получится что то подобное:

Бесплатный самодельный Lipsync (с препроцессингом) в юнити Unity, Unity3D, Gamedev, Музыка, Гифка, Видео, Длиннопост

Импортируем модель в юнити и создаем анимационные клипы для каждой фонемы:

Бесплатный самодельный Lipsync (с препроцессингом) в юнити Unity, Unity3D, Gamedev, Музыка, Гифка, Видео, Длиннопост

Дальше создаем контроллер, добавляем анимации и именуем их понятным образом. Ну и соответственно не забыть назначить его аниматору на модельке. Настраивать переходы не надо, мы будем просто использовать crossfade по имени анимации:

Бесплатный самодельный Lipsync (с препроцессингом) в юнити Unity, Unity3D, Gamedev, Музыка, Гифка, Видео, Длиннопост

И последний шаг, самый сложный, нужно написать скрипт, который бы считывал текстовый файл, сгенерированный Rhubarb-ом, и проигрывал анимации с нужным таймингом. Можно использовать мой скрипт, но там говнокод, плодит кучу инстансов корутин, плюс сделан так чтоб проигрывать все с начала запуска сцены. Допилить до нужного функционала в принципе будет не сложно.

https://gist.github.com/CustomPhase/77ed1276485ad3be0ab78429...

Вешаем его на модельку с аниматором, в качестве textFile выбираем скопированный из Rhubarb текстовый файл и запускаем, все должно работать.

Ну и собственно полный результат работы:

Всем спасибо. Если интересно, могу запилить пост, про то как остальное видео сделано и что было использовано.

Показать полностью 5 1

Псевдообъемный дым с мягкими тенями

Немного шаманства с шейдерами в юнити

Псевдообъемный дым с мягкими тенями Unity, Gamedev, 3D графика, Рендер, Realtime, Гифка

Тут фреймрейт и качество получше: http://i.imgur.com/bn7RR5d.gifv

Песня про Pokemon GO

Трек с использованием звуков из Overwatch

Кот Лёха Remix

В ответ на http://pikabu.ru/story/v_ekb_kran_upal_na_dom_ya_byil_v_shok...

Catman

Тайна Третьей Планеты (remix)

идея бессовестно позаимствована у Pogo
Отличная работа, все прочитано!