Pull to refresh
0
0
Send message
Исходники закрыты, но можно записаться на бета тест:
cascadeur.com
Да, для мокапа конечно стоит учитывать всю информацию, которая есть. Но в нашем случае это именно инструмент, с помощью которого можно ставить позу, поэтому чем меньше степеней свободы приходится задавать — тем лучше и проще пользователю.

Сначала мы использовали напрямую tensorflow, сейчас переехали на pytorch

Только положения, повороты конечно дали бы очень много дополнительной информации нейросети, но потребовали бы и гораздо больше действий от пользователя

Ниже DesertFlow хорошо описал, почему задача аналитического описания человеческого тела сложная.

Чтобы оценить масштаб проблемы, стоит посмотреть на пример простого классического рига: www.youtube.com/watch?v=RUvgboeR2_0&t=1200s. Видно, что контроллеров (а значит, и степеней свободы) там целая куча и умение с ними работать требует определенных навыков. Это пример рига, построенного вручную, из функций, при помощи графа зависимостей.

Наш стандартный риг в каскадере с одной стороны более интуитивен, за счет использования физики внутри рига (можно посмотреть на примере нашего тутора). С другой стороны — «сломать» позу в нем даже проще.

Проблема в том, что записать зависимости вручную так, чтобы они учли все мелочи — очень сложно. И даже сложные системы, которые долго писались, типа HumanIK от Maya все равно имеют кучу проблем. Нейронная сеть же сама учитывает все эти особенности человеческих поз, просто за счет того, что о них знают аниматоры.
«1. Один скелет или несколько?»

В последней ЗБТ версии у нас два скелета — наш персонаж из Shadow Fight 3 и «саблезубая кошка». Также в комплект ЗБТ входит скелет Unreal Mannequin.

2. Редактор скелета в ближайших планах или в «долгий ящик» после беты?

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

3. Костям задан свой центр масс (соответствующие координаты цнтр масс находятся по координатам центров масс костей), фигуре задана плотность (центр масс = тройной интеграл плотности по координатам) или свой вариант?

Часть костей связаны с твердыми телами, из которых состоит физический скелет модели. Имея данные о расположении (и массе) твердых тел в каждой позе всегда можно рассчитать общий центр масс персонажа.

4. Оружие имеет свой ц.масс/плотность?

Да, у оружия свой центр масс. Также, в случае с оружием обычно создается общий для оружия и персонажа центр масс.

5. Ваша программа покажет параболическую траекторию прыжка и нужно будет вручную подобрать положение тела вблизи параболы гравитации?

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

6. Программа будет выделять кадры красным, а мы подтверждаем истинность и сохраняем кадры?

Тут также нагляднее посмотреть туториал по инструменту «ballistic ghost»

6. Красный сектор коррекции момента вращения завязан на центр масс и тазовую (или другую) кость?

Красный сектор рассчитывается на основании положения и ориентации всех твердых тел в персонаже.

7. Как в предыдущем примере, мах ногой во время сальто задаст положительный или отрицательный момент и угловое ускорение. Это тоже в ручную подбирать или программа учитывает (или в планах разработки)?

Программа рассчитывает вклад маха ноги во вращение автоматически (на основании данных о расположении твердых тел в кадрах анимации).

Спасибо за интерес! В будущем мы планируем подробнее рассказать о том, как устроены наши инструменты и наш физический скелет.

Сейчас переходим с QtWidgets на QML. На QML все элементы кастомизированы, но при использовании QML это стандартный подход.


Макет интерфейса рисовали к художники, у которых уже был большой опыт работы с интерфейсами в мобильных играх.

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

С поведением геометрии в Cascadeur все стандартно. Используется обычная скелетная анимация. Модель достаточно простая, так как предназначена для мобильной игры, где лишние ресурсы лучше не тратить.
Euphoria предназначена для использования в самой игре, для генерации анимации, когда игра уже запущена. По сути — это умный Ragdoll, который будет более красиво вести себя в падении, при столкновении с объектами.

Cascadeur — программа для создания анимации человеком. Такие анимации делаются на этапе производства контента для игры. Созданные в Cascadeur анимации потом экспортируются из программы, импортируются в игру и используются уже внутри анимационного движка игры. Но то, что мы получаем на выходе из Cascadeur — это такая же анимация, как и анимация, сделанная с помощью другой программы или motion capture.

У NaturalMotion был другой продукт, более похожий на Cascadeur — Endorphin. Там действительно была такая же цель — делать физически корректную анимацию. Но наш подход отличается в пользу большего контроля со стороны аниматора. В Endorphin была в основном прямая симуляция на основании поз, заданных аниматором. В Cascadeur наоборот — аниматор создает черновую анимацию, а потом физические инструменты стараются подобрать такие изменения, которые сделают анимацию физически корректной, но при этом будут максимально близки к тому, что сделал аниматор.
Инновации не в самом Ragdoll, а в инструментах, позволяющих использовать информацию о расположении твердых тел в пространстве (и времени) на этапе создания и редактирования анимации.

В программе есть инструменты для визуализации различных физических характеристик (положения центра масс, углового момента, момента инерции) и для исправления этих физических характеристик — на интервалах свободного полета, интервалах с точками опоры.

Ragdoll, конечно, используется давно. Но он используется в основном только для симуляции движения, а это подходит только в тех случаях, когда персонаж пассивен. Например, падает, после того, как его ударили в прыжке. А при создании анимации используется просто ИК/ФК риг, который с физикой никак не связан. И вот с помощью такого рига создаётся анимация, например, сальто.

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

Наша цель — сделать инструменты, позволяющие и вручную сделать анимацию реалистичной.

Information

Rating
Does not participate
Registered
Activity