Как стать автором
Обновить

Комментарии 25

Т.е. это IK Solver по сплайнам (сглаженной интерполяции) с учётом физики?
Судя по роликам похоже на full-body IK + rigid body-динамика для прогнозирования и, собственно, симуляции перемещения рига в пространстве. Чем-то напоминает Эйфорию, но та в первую очередь на процедурку заточена, а не для canned-анимации.
Возвращаясь к технологиям — то, что есть у нас сейчас, я бы точно не назвал магией. Я сам удивлен, что инструменты, которые вы видите в Cascadeur, не включены по умолчанию в большинство 3D-пакетов, предназначенных для работы с анимацией.
Вот за это респект. Редко бывает, когда разработчик нового инструмента не бахвалится, набивая цену себе и продукту, а честно говорит, что все это реализуемо в традиционных 3D DCC, но почему-то схожих возможностей не видать (либо они существуют только in-house как приватные разработки в крупных студиях, к примеру).
Если бы не игры, то хотелось бы разрабатывать такой софт )
Чем Вас так расстраивают игры?
Меня ничем не расстраивают, я именно ими и занимаюсь, и видимо местный токсичный народ меня неправильно понял, что если бы я не занимался играми, то хотел бы заниматься разработкой софтом для анимаций/3д
Я с интересом посмотрел все gif'ки в статье — и не могу отделаться от ощущения, что это бандаевский пластмассовый body-kun (фигурка). Туловище у вас какое-то квадратно-гнездовое, плечи почти не двигаются.

Можно вас попросить показать человечка вот в такой позе, например:


или вот в такой:



Я понимаю, что это «для игр», но если мы говорим про человеческую фигуру, то пластику поз всё-таки хотелось бы видеть похожей на людей, а не на пластмассовые/деревянные модельки.
С поведением геометрии в Cascadeur все стандартно. Используется обычная скелетная анимация. Модель достаточно простая, так как предназначена для мобильной игры, где лишние ресурсы лучше не тратить.
Первое, что мы добавили в процесс создания анимации — это физический скелет.

Т.е. это подаётся как инновация? Типа абстрактные "другие разработчики" — до сих пор не используют скелетную анимацию?

Я думаю тут скорее упор на физический т.е. Ragdoll. Сам по себе скелет со скиннингом не даёт физически корректное поведение, наличие скелета обычно необходимо, но не означает наличие Ragdoll-физики (например в Half-Life 2 скелет для Ragdoll физики сильно упрощён по сравнению с анимационным — там нет лица, пальцев и многих других деталей) — для Ragdoll к скелету ещё нужно прикрутить ограничения на соединения, тензор инерции и т.д.
Но вопрос инновации всё равно остаётся, Ragdoll давно есть в 3DS Max например.
Инновации не в самом Ragdoll, а в инструментах, позволяющих использовать информацию о расположении твердых тел в пространстве (и времени) на этапе создания и редактирования анимации.

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

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

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

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

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

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

Кстати, а ваш софт может только антропоморфные скелеты просчитывать? Например робо-паука осилит?

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

Круто.
Это чертовски хорошие новости. Обычно такие инструменты жетко и ограничено затачиваются исключительно на человеческую анатомию, или иногда даже на исключительно конкретную иерархию костей.
Разработкой игр совершенно не интересуюсь, но люблю красивые и качественные интерфейсы, поэтому задам другой вопрос. На чем написан ваш софт? Что-за GUI фреймворк?
Qt
Но наверняка это не готовая тема? Потому что во всяких примерах Qt-шные приложения довольно страшненькие.

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


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

Здравствуйте

Пишете: «В настоящее время риггинг не включен в билд», «мы готовы сделать для вас персональный риг»
— Значит в бете «по умолчанию» можно пока использовать только Ваши скелеты.
1. Один скелет или несколько?
2. Редактор скелета в ближайших планах или в «долгий ящик» после беты?

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

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

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

Спасибо за Ваш труд, буду следить.
«1. Один скелет или несколько?»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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