Наверное, каждому тридешнику хочется сделать какую-то масштабную сцену "мочилова". Сцену, где один "хороший" персонаж лупит десяток-другой "плохих". Возможно, что вы даже начали такое делать, но потом забросили, посчитав, что это очень сложная или вообще невыполнимая задача для одного человека.
Оказывается, есть такая программка, в которой все это (реалистичная анимация человекоподобных) делается играясь – Endorphin от NaturalMotion. Эта программа динамического синтеза движения использует революционный искусственный интеллект и методы биомеханики, с помощью которых она очень точно симулирует физическую работу человеческого тела и его поведение во внешней среде с внешними объектами.
Другими словами, вы просто работаете с этой программой как с комнатой Motio Capture с уже очищенными анимационными ключами.
Смотрите сами. Все что вы видите создается в несколько кликов мышкой, а не многодневным просиживанием за ручной анимацией.
Дальше я планировал выложить свой урок по
Уверен, что даже того материала, который уже есть будет достаточно чтобы начать успешно работать с этой замечательной программой.
Важно! Не качайте тот Endorphin 2.7.1, что есть в сети - это Learning Edition (обучающая версия), которая имеет огромные ограничения. И хотя во всех описаниях написано, что есть таблетка - но это неправда. Лучше скачать Endorphin 2.5.2, которая полностью рабочая и не имеет ограничений.
А теперь сам урок. Вернее, начало урока.
Кстати, как я всегда говорил и продолжаю говорить, лучший урок - это официальный хелп. Этот случай не исключение. Урок я писал просто делая авторский перевод официального файла помощи к Endorphin и добавлял туда свои практические выводы по связке этой программы с 3ds Max.
В данном уроке я покажу, как «подружить» созданного в 3ds max персонажа с реалистичной анимацией, просчитанной в endorphin.
Вот последовательность операций которые нужно проделать для достижения результата:
- Подготовительная.
- Экспорт Персонажа из 3ds max.
- Создание и подготовка в endorphin Персонажа для импорта анимации (из 3ds max в endorphin).
- Создание и подготовка в endorphin Персонажа для экспорта анимации (из endorphin в 3ds max).
- Экспортирование анимации из 3ds max в endorphin.
- Перенос (экспорт) анимации из endorphin в 3ds max.
В работе я использовал: 3ds Max 8 и endorphin 2.5.2.
Операция 1. Подготовительная.
Здесь я перечислю рекомендации, использование которых поможет избежать многих трудностей и ошибок при работе с Endorphin.
Поскольку среда для симуляции в endorphin оптимизирована под размеры человекоподобных, то урок предполагает, что ваш Персонаж имеет небольшие отличия в размерах и структуре от человеческих. Также предполагается, что в качестве скелета для вашего Персонажа вы использовали стандартный максовский Biped.
Если вы только начали создавать модель для анимации, то нужно следовать некоторым рекомендациям:
- создавать Персонажа нужно в позиции похожей на букву "Т" (Т-образная поза - ноги параллельны, руки в стороны, ладошки смотрят вниз);
- чтобы созданный персонаж соответствовал масштабу endorphin нужно в 3ds max выставить Units setup таким вот образом: Display units – метры, а System Units – сантиметры. Если у вас уже есть готовый персонаж и Units setup уже выставлены, то эти параметры можно будет подобрать потом – в диалоговых окнах экспорта/импорта.
Теперь создадим Персонажа (если у вас его еще нету). Для того, чтобы долго не морочиться с моделированием (поскольку это не цель данного урока) я создал его (Персонажа) вот таким:
из стандартных геометрических фигур.
Свиток Structure (вкладка Motion) для Biped должен выглядеть так:
Структура максимально похожа на человека.
Подгоняем скелет под персонажа и привязываем части тела к костям. В данном случае я просто Привязал (Link) части тела к скелету. Для того чтобы проверить все ли части привязаны к костям, возьмите Biped за Bip01 и подвигайте его. Если какие-то объекты остались на месте – привяжите их. Можно также погнуть ноги/руки, чтобы удостовериться, что все привязано правильно.
Рутинная работа закончилась. Приступаем к самому интересному.
Операция 2. Экспорт Персонажа из 3dsmax.
Выделяем Biped. Переходим в Figure mode:
и сохраняем FIG-файл (нажимаем дискетку). Это делается для того, чтобы после импорта анимации из endorphin в 3ds Max, персонажа можно было поставить в исходное положение.
Далее нам нужно сделать экспорт Персонажа в формат FBX. FBX это формат Kaydara FiLMBOX. Kaydara FiLMBOX используется для создания, редактирования и смешивания анимации по ключевым кадрам (keyframe animation) и анимации, созданной при помощи захвата движений (motion capture animation). Но у этого формата есть свои правила построения скелета (правила, которым 3ds Max немножко не соответствует). Поэтому мы должны подправить наш Biped.
Иерархия скелета для формата FBX должна выглядеть в диалоговом окне Select By Name (с включенной опцией Display Subtree) так:
Pelvis
Right
Right Upper Leg
Right Leg
Right Ankle
Right Foot
Right Toe
Left
Left Upper Leg
Left Leg
Left Ankle
Left Foot
Left Toe
Spine 1
Spine 2
Spine 3
Right Collar
Right Shoulder
Right Upper Arm
Right Forearm
Right Wrist
Right Hand
Left Collar
Left Shoulder
Left Upper Arm
Left Forearm
Left Wrist
Left Hand
Neck
Head
Head End
А у нашего Персонажа иерархия (для наглядности я спрятал (Hide) все пальцы) выглядит так:
Как видно из рисунка, у нашего Персонажа (вернее у его скелета) голова и руки присоединены к кости Bip01 Neck, что есть НЕПРАВИЛЬНО. Чтобы выправить эту ситуацию, нужно выделить Bip01 L Clavicle (левую ключицу) и связать (Link) ее с костью Bip01 Spine3 (третья кость позвоночника), а потом аналогично повторить с Bip01 R Clavicle. В результате должны получить следующую иерархию:
Теперь (находясь в Figure mode) выделяем весь Biped и делаем экспорт в FBX-файл (File–Export Selected…). Используя Export Selected… вместо Export мы исключаем из экспорта связи между костями и геометрическими объектами, которые выступают у нас в роли Персонажа. В диалоговом окне FBX Exporter в группе Export можно поснимать все галочки (поскольку мы экспортируем только неанимированный скелет).
Теперь прячем (Hide) скелет и выделяем всего персонажа. Далее File–Export Selected… Тип файла – OBJ, все параметры оставляем по-умолчанию и даем понятное имя. Таким образом мы экспортировали только оболочку (т.е. Персонажа в начальной позе без скелета).
Операция 3. Создание и подготовка Персонажа в endorphin для импорта анимации (из 3dsmax в endorphin).
Запускаем endorphin.
Для тех, кто не знаком с этой программой я сделаю небольшое вступление (те, кто имеют опыт работы с программой, могут пропустить это вступление).
Как видно интерфейс не очень отличается от интерфейса 3ds Max
То же окно проекции (в центре), та же шкала времени и панель управления проигрыванием и симуляцией анимации (внизу), та же панель с настройками/свойствами (справа), та же полка с часто используемыми инструментами (вверху), то же окно структуры сцены и по-совместительству диалоговое окно выбора (в центре). Если кто-то очень сильно привык к сочетаниям клавиш определенной программы, то в endorphin есть возможность выбрать подходящие настройки клавиатуры (Options–Keyboard…).
Как видно, можно использовать хоткеи и Maya, и 3ds max, и XSI. Управление камерой реализовано как в Maya, т.е. через Alt и три кнопки мышки.
В центре окна проекции уже стоит человекоподобная Фигура для Симуляции (Simulation Character). Что же с ней можно сделать? Да все что угодно! К примеру, ударим ее. Для этого правым кликом по временной шкале (Time Line) Фигуры для Симуляции (Character01) вызовем меню, в котором выберем пункт Create Force Event (приложить силу).
В результате, на временной шкале появился красный треугольник (направленный вверх),
возле груди фигуры – стрелка,
а в окне свойств – свойства выбранного нами события (Force Event).
Расположение треугольника на шкале времени указывает на время, с которого начинает действовать данное событие (давайте перетащим треугольник в ноль). Стрелка указывает направление и силу удара. В свойствах Force Event есть группа Target Objects – в ней указываются объекты, на которые будет действовать сила. Если нажать на надпись [Select], то мы перейдем в режим выделения и сможем (ткнув в части тела фигуры с зажатым Ctrl) выделить те органы, на которые будет действовать удар. В группе Force есть параметры (Elevation, Rotation, Strength), которые отвечают за направление и силу приложенного удара.
Давайте запустим симуляцию и посмотрим, что у нас получиться. Для этого в нижнем правом углу нажмем на кнопку Simulate (чтобы остановить симуляцию, нужно нажать на эту кнопку еще раз), а потом (после симуляции) на кнопку Play и посмотрим, что получилось.
В зависимости от того, какие параметры вы выставили, фигура либо просто упадет, либо улетит очень далеко. Давайте прикажем фигуре сопротивляться (т.е. чтобы фигура не хотела падать). Для этого правым кликом по временной шкале фигуры для симуляции (Character01) вызовем меню, в котором выберем пункт Create Behaviour Event (создать событие определенного поведения) и аналогично передвинем его к началу времени (т.е. влево). В свойствах данного события
выберем левым кликом по полю Arms windmill 2.0 (Напротив Name) поведение с названием Stagger 2.0 (нетвердая походка, пошатывание). Запустим симуляцию и посмотрим, что вышло (если у вас фигура улетает от удара, то уменьшите силу удара до 12).
На этом возможности endorphin, конечно же, не заканчиваются. Но мы отклонились от главной цели.
Продолжим. В меню File–Character Edit Mode выберем New Character… В открывшемся диалоговом окне,
в верхней части, выберем Standard Simulation Character (это значит, что мы будем работать с симуляцией, а не с бутафорией (Standard Prop Character), которая окружает нашего персонажа). А в нижней части поставим галку возле «Create Reference Character Using:» и выберем наш FBX-файл. В открывшемся окне Import
все оставляем по-умолчанию, кроме правого списка, где нужно выбрать в качестве корневого узла (root node) Bip01 Pelvis. Тыкаем в ОК.
Вид программы немного изменился поскольку теперь мы находимся в режиме редактирования Персонажа для Симуляции.
Сначала нужно обратить внимание на два режима работы: редактирование фигуры для симуляции (Edit/Select Simulation Character) и редактирование «фигуры ссылки» (т.е. скелета нашего персонажа. Кнопка Edit/Select Reference Character) . Сейчас мы будем редактировать Фигуру для Симуляции.
Перейдите в режим просмотра скелета. Для этого правый клик в любом месте окна проекции и выбираем Skeletal View.
Далее приступаем к совмещению скелета Фигуры Симуляции со скелетом нашего персонажа. Для этого самым первым выделяем узел под названием root, который находится посредине таза,
выбираем инструмент Move, устанавливаем курсор в середину розового квадратика (это как бы режим Move с привязкой к узлам) и двигаем его к такому же узлу НАШЕГО скелета (должна сработать привязка и узлы совместятся). Потом принимаемся за узел LeftHipJoint и аналогичным способом совмещаем с соответствующим узлом на нашем скелете. Далее идет LeftKneeJoint, LeftAnkleJoint, а потом LeftMidFootJoint, которого на нашем скелете нету.
Но все нормально, мы просто ставим LeftMidFootJoint посредине соседних узлов. Когда все узлы для левой ноги совмещены, мы просто нажимаем кнопку Mirror Left To Right (сделать зеркально правую сторону) и правая нога уже обработана. Дальше по всему телу аналогично совмещаем узлы (пропуская те, которых нет на нашем скелете и делая зеркальные копии выполненной половины).
После завершения совмещения скелетов экспортируем в сцену тело персонажа (его полигональную оболочку). Для этого переходим в режим редактирования Reference Character (это нужно сделать обязательно, поскольку выделенный объект является родительским для ЛЮБОГО вновь созданного либо импортированного объекта), переключаемся в Shaded View (выбирается из меню правого клика в окне проекции), тыкаем File-->Import… и выбираем файл OBJ, который мы сохранили ранее. В диалоговом окне импорта ничего не изменяем и жмем OK.
Теперь переключаемся в режим редактирования Simulation Character.
На данном этапе мы будем подгонять фигуру для симуляции под тело нашего персонажа. Это нужно произвести для того, чтобы симуляция поведения происходила как можно точнее (реалистичнее) с учетом особенностей конкретной модели (в нашем примере этими особенностями являются угловатые части тела).
Тут понадобятся некоторые пояснение строения фигуры симуляции. Как вы уже успели заметить она (Simulation Character) состоит из синих и серых частей. Синие части (Collision Objects) – это объекты, которые используются программой endorphin для расчета соударений с другими объектами. Серые части (Mass Objects) – это объекты, которые endorphin использует для расчета массы определенной части тела. Выделив сначала синий потом серый объекты и посмотрев в Окно Свойств (справа от окна проекции), можно заметить параметры этих объектов: материал, размеры, плотность, способ взаимодействия с другими объектами, форму.
Пояснения закончились, приступим к выполнению подгонки.
Сначала спрячем фигуру ссылку (Reference Character). Для этого откроем Node View (аналог окна Select Objects в 3ds max) с помощью кнопки “N” (либо через меню View-->Node View) и в меню правого клика по строке “Bip01 Pelvis” жмем на Hide All. С помощью такой манипуляции мы скрываем скелет Персонажа (чтобы он не мешал нам подгонять Mass и Collision Objects). Перед нашим взором остались только полигональная оболочка персонажа и Фигура Симуляции.
Перед началом выполнения описанного далее прочтите сначала весь абзац и полезные советы (так вы сэкономите уйму времени).
Я начинаю подгонку со ступни и следую вверх, изменяя виды проекций, делая зеркальные отображения уже готовых частей, двигая, масштабируя, поворачивая Mass и Collision Objects, добиваюсь совпадения Фигуры Симуляции и своего Персонажа. Нужно стараться сделать это так, чтобы не нарушить взаимного расположения Mass и Collision Objects (например, чтобы центр масс руки Персонажа совпадал с центром масс настоящей руки; чтобы объекты столкновений хорошо описывали поверхность частей тела). Так, в тех местах (например, грудь) где Collision Objects очень много, я удалял лишние и создавал новые (не забывайте, что перед тем как создать новый Collision Object, нужно выделить родительский Mass Object. Родительский – это тот Mass Object, к которому вы собираетесь привязать новый Collision Object).
Если вы где-то увеличили объем Mass Object'a, то иногда нужно будет подправить плотность Density (чтобы та часть тела, за которую отвечает данный Mass Object, не была слишком легкой либо, наоборот, слишком тяжелой).
Вот несколько (надеюсь полезных) советов:
- Сначала устанавливайте в правильное положение Mass Objects (поскольку Mass Objects являются родительскими по отношению к Collision Objects);
- Если вам не удается выделить определенный Collision Object в окне проекции, то воспользуйтесь Node View или переключитесь в Wireframe View;
- Используйте переключение систем координат между локальной и мировой (клавиша X);
- Чаще сохраняйтесь (этот совет никогда не бывает лишним);
- Не допускайте проникновения объектов в "землю".
Вот как выглядит персонаж после подгонки:
А вот сейчас будет очень важная часть. Мы займемся снаряжением модели (Character Rig Setup), т.е. привяжем определенные кости нашего Персонажа к соответствующим костям Модели для Симуляции. Это делается для того, чтобы все движения Фигуры Симуляции в endorphin смог "повторить" и Персонаж в 3ds max. Для этого выберем меню CharacteràCharacter Rig Setup… (или нажмем на клавиатуре "C"). В открывшемся окне из выпадающего списка Character выбираем Reference Character (т.е. мы будем привязывать кости нашего Персонажа к костям Фигуры для Симуляции, а не наоборот).
Связываем кости в соответствии с табличкой:
Для выполнения операции связки нужно выделить кость в левой колонке, потом ей соответствующую в правой и нажать кнопку Connect. В конце жмем OK. И сохраняем нашего персонажа под понятным именем (я бы посоветовал имя виду *_import, приставка import в конце означает, что данный файл будет использован для импорта Персонажа в endorphin).
Фух! Вы не поверите, но на этом этапе Персонажа уже можно бить виртуальными пинками :). Так вы и сделайте (чтобы немножко разрядится после сложной работы).
А дальше предстоит работа по созданию нужной вам анимации в Endorphin и ее переброс в 3ds Max. Делаю подсказку. Это нужно делать через экспорт анимации в BVH-файл, который с пребольшим удовольствием съест ваш Biped в 3ds Max.
Подпишитесь на обновление блога (вот 3 причины для этого).
Вам понравилась статья? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.
комментариев 26 к статье “Endorphin реалистичная 3D-анимация людей в два клика”
Извините, в данный момент комметарии закрыты.
О_О даже сказать не знаю что!!! ААА!! Ушел качать!
🙂 Порадовали, очень порадовали. Спасибо.
вопрос! А можно работать в этой проге с персом созданным в Zbrush или Cinema4D?
Да. Меш может быть создан в ЛЮБОМ пакете.
а эта прога будет дружить с версиями макса 2010 и 2011 или у них свои методы анимации…спасибо!
Поскольку вы из Endorphin получаете анимацию в формате Motion Capture (.bvh), то вы не привязаны к конкретному 3d-пакету и тем-более к версии.
Так что ДА, будет дружить!
Если я правильно понимаю, то после анимирования в Endorphin, можно спокойно перенести всю анимацию в макс и уже в готовой анимации без проблем настроить матириалы или например добавить на персонажа дисплейсмент?
Да, вы правильно понимаете.
Потрясно, возьму эту прогу на заметку. Надеюсь никаких конфликтов с синькой не будет =)
Интересная физика 🙂
+ motion capture и анимация персонажей готова.
Только не дешевые рещения ))
ппц, спасибо большое наткнулся на ваш ресурс когда искал информацию про пиксаровские шары АП. нашел гораздо больше — кстати не терпится попробавать эндорфин!
А можно ли такую классную прогу подружить не только с бипед, но и костями Poser и DAZ Studio?
здравствуйте! есть вопрос: можно ли написать алгоритм для эндорфин на движение персонажа? например создать боксеров, которые будут знать удары и защиту а также уметь их применять…
Вряд ли. Это уже что-то похожее на искусственный интеллект будет (для таких целей может лучше взять какой-то игровой движок).
Тем более, что это будет неинтересный бой. Лучше делать всё ручками по хорошо продуманному сценарию.
Классная прога, если разобраться. Я так понимаю что там нужна ФК-шный сетап, без мудренностей.
А скелет только Бипед? А если Квадропед, или 4-рех рукий демон 🙂 .
Работать скорее всего всё будет, но вот те конечности, которые дополнительные просто не будут анимированы, т.к. для них не будет ключей
А как сделать походку чтобы он ходил? В стандартных шаблонах ненашел.
Вот — http://videotuts.ru/1960-eksport-animacii-iz-endorphin-v-cinema-4d.html
Возможно поможет любителям синьки.
при импорте файла FBX в программу endorphin . справа не появляются кости для выбора…
выписка из урока —, кроме правого списка, где нужно выбрать в качестве корневого узла (root node) Bip01 Pelvis. этого списка нет …. ЧТО ДЕЛАТЬ?
Переустанови в директорию без русских букв
опешите подробней как перекинуть анимацию в 3ds max
А ни у кого не было ошибки Error 1009: Cannot open HASP HL drivers ? я в курсе что это про ключ..но никак не получается запустить программу..точнее если я запускаю через кряк, то запускается, но там нет ни одного персонажа по умолчанию..и загрузить не получается..ничего не отображается..чисто поле..это исправить можно?
Ты забыл поставить кряк перенеси файлы из кряка endorphin2.5.2-crack.rar в папку куда установлен Endorphin
как исправить ошибку 1009 при запуске проги?
А что в ней говорится?
Если у кого то не импортируется анимация или в правой колонке все пусто, переустановите программу в путь без русских букв, мне помогло:)