Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

Endorphin реалістична 3D-анімація людей в два кліка

  1. Операція 1. Підготовча.
  2. Операція 2. Експорт Персонажа з 3 ds max.
  3. Операція 3. Створення та підготовка Персонажа в endorphin для імпорту анімації (з 3 ds max в endorphin).

Напевно, кожному трідешніку хочеться зробити якусь масштабну сцену "мочилова". Сцену, де один "хороший" персонаж лупить десяток-другий "поганих". Можливо, що ви навіть почали таке робити, але потім закинули, вважаючи, що це дуже складна або взагалі нездійсненне завдання для однієї людини.

Виявляється, є така програма, в якій все це (реалістична анімація людиноподібних) робиться граючись - Endorphin від NaturalMotion. Ця програма динамічного синтезу руху використовує революційний штучний інтелект і методи біомеханіки, за допомогою яких вона дуже точно симулює фізичну роботу людського тіла і його поведінку у зовнішньому середовищі з зовнішніми об'єктами.

Іншими словами, ви просто працюєте з цією програмою як з кімнатою Motio Capture з уже очищеними анімаційними ключами.

Дивіться самі. Все що ви бачите створюється в кілька кліків мишкою, а не багатоденним просиджуванням за ручний анімацією.

Далі я планував викласти свій урок по, який я написав ще кілька років тому, але який до цих пір не втратив своєї актуальності ні на одну букву. Але коли почав його читати, то згадав, що він не дописаний, та й кілька сируватий. Тому сильно не бийте ногами. Я його обов'язково допишу, як тільки з'явиться на цей час. А зараз цього часу з'явилося рівно на те, щоб викласти "як є"

Упевнений, що навіть того матеріалу, який вже є буде досить щоб почати успішно працювати з цією чудовою програмою.

Важливо! Чи не качайте той Endorphin 2.7.1, що є в мережі - це Learning Edition (навчальна версія), яка має величезні обмеження. І хоча у всіх описах написано, що є таблетка - але це неправда. краще скачати Endorphin 2.5.2 , Яка повністю робоча і не має обмежень.

А тепер сам урок. Вірніше, початок уроку.

До речі, як я завжди говорив і продовжую говорити, кращий урок - це офіційний хелп. Цей випадок не виняток. Урок я писав просто роблячи авторський переклад офіційного файлу допомоги до Endorphin і додавав туди свої практичні висновки по зв'язці цієї програми з 3ds Max.

В даному уроці я покажу, як «подружити» створеного в 3ds max персонажа з реалістичною анімацією, прорахованою в endorphin.

Ось послідовність операцій які потрібно виконати для досягнення результату:

  1. Підготовча.
  2. Експорт Персонажа з 3ds max.
  3. Створення і підготовка в endorphin Персонажа для імпорту анімації (з 3ds max в endorphin).
  4. Створення і підготовка в endorphin Персонажа для експорту анімації (з endorphin в 3ds max).
  5. Експорт анімації з 3ds max в endorphin.
  6. Перенесення (експорт) анімації з 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. Експорт Персонажа з 3 ds max.

Виділяємо 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 для імпорту анімації (з 3 ds max в 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.Що ж з нею можна зробити?
Вам сподобалася стаття?
Хочете віддячити автора?

Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.