Як робиться анімація персонажів в грі stack overflow російською

Уже рік намагаюся зробити рух чоловічка (хоча б ходьбу) (в двовимірному просторі і використовую відкритий фіз. Движок Box2D), але не можу ніяк зрозуміти, як це зробити. Часто ставив подібні питання на інших форумах, на що мені відповіли або "йди малюй спрайт і не приставай з дурними питаннями", або "ну це роблять за допомогою motion-capture". Ні прямих рук, щоб намалювати спрайт, ні технології motion-capture у мене під рукою немає. Тому дуже сподіваюся почути чіткої відповіді на цю тему тут.

І супутній питання: як в таких іграх, як assassin's creed (3 і більш пізні частини) або gta 4 (5) створили таку анімацію ходьби, що персонажі можуть спокійно пересуватися по сходах або по похилих площинах? Адже це явно зроблено не па заготівлях, а розраховується в реальному часі, так як же вони це зробили.

заданий 11 Серпня '15 о 23:13

1. Покадровая анімація

Зазвичай використовується в 2d іграх. Припустимо, якщо потрібно зробити анімацію ходьби персонажа, то малюється кілька зображень персонажа в різних стадіях руху. Потім в грі ці кадри переключаються з якимось інтервалом часу. Профіт.

Подібний підхід має на увазі досить великий обсяг роботи художника. Motion Capture тут не прикрутиш. Але художник, природно, може використовувати знімки людей і тварин в різних фазах руху в якості референсів.

З технічного боку зазвичай ставляться такі вимоги (так з кадрами зручніше працювати): зображення повинні мати прозорим фоном, між кадрами повинен бути один і той же інтервал часу, анімація повинна бути "на місці" (рух персонажа зазвичай здійснюється програмно), не повинно бути необхідності зрушувати кадри один щодо іншого.

В 2d покадрові анімації - практично єдиний спосіб зробити реалістичну анімацію персонажа.

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

Але, таким же чином можна і повноцінно анімувати персонажа!

2. Кістякова анімація в 2d

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

Подібна техніка використана, наприклад, в проекті. демонструвати 2d можливості движка Unity3d. коли вони в ньому тільки з'явилися. Персонаж складається з окремих частин, які рухаються відносно один одного за допомогою різних засобів анімації движка. При запуску в останніх версіях Unity може знадобитися доопрацювання проекту напилком.

Скелетна анімація є розвитком цієї ідеї. Персонаж все так же розділяється на частини. Тільки тепер ці частини прив'язані до кісток якогось скелета і рухаються разом з ними. Як це працює, дуже добре видно в промо-ролику Spine (про всяк випадок, попереджаю, що Spine - платна система).

Проте, застосовувати Motion Capture до персонажам створеним таким чином буде не більше ніж освоєнням бюджету. 100% Реалістичності все одно добитися не вдасться (бо 2d), а середньостатистичний 2d-художник / аніматор зробить все швидше, дешевше і краще.

Але, по факту, відміну від анімації окремих частин тіла "вручну" тільки в більш зручний інструмент для створення анімацій.

А ось відмінності від покадрових анімацій - значні. Плюси скелетної 2d анімації - в набагато меншому обсязі текстур (на ПК це вже майже не має значення, а ось на мобільних плафторми - ще якийсь), в набагато меншій кількості роботи художника (малювати потрібно не 100500 кадрів одного персонажа, а всього лише кілька частин тіла) і в можливості перенесення анімацій між персонажами з однаковим скелетом. Мінус - в меншій реалістичності.

3. Кістякова анімація в 3d

У 3d все трохи не так. Персонаж є об'ємною моделлю, яка на частини не ділиться (але може і ділитися, якщо потрібно). При анімації скелета - відбувається деформація сітки моделі. Для того, щоб зрозуміти, побачити і помацати, як все це створюється і працює, можу порекомендувати ось цей туторіал (англійською) зі створення персонажа в Blender і імпорту його в Unity.

Для персонажів з однаковим скелетом анімація тут так само може бути спільною. У тому ж Unity, наприклад, є Mecanim Humanoid Rig. В результаті чого можна купити / зробити / завантажити безкоштовно готову анімацію і застосовувати її до будь-яких гуманоїдним персонажам (природно, і персонажі, і анімації повинні бути створені і налаштовані певним чином).

Анімації можуть створюватися як моделлера, так і окремим аніматором, в тому числі і за допомогою Motion Capture. Власне, після отримання mocap-даних з реального людини (цей процес, думаю, повинен бути зрозумілий) вони доопрацьовуються напилком і перетворюються в звичайні анімації. Плюс, звичайно, очевидний - анімації стають більш реалістичними. Проблеми тут в тому, що реалістичність хороша далеко не завжди, і в тому, що аніматор сам вручну найчастіше зробить краще, швидше і дешевше.

Крім вищеописаного, варто згадати про Ragdoll. Суть полягає в тому, що до кісток скелета замість анімації застосовується фізика, внаслідок чого персонаж може більш "реалістично" (з точки зору фізики) падати, вмирати і т.п. Ragdoll, до речі, буває і в 2d, але це рідкість.

А в зв'язку з супутнім питанням, зверну увагу на IK (Inverse Kinematics) - цілком можливо, що в зазначених іграх використовувалося саме воно. Але, взагалі, це просто моє припущення, свічку при розробці цих ігор я не тримав.

Що робити, якщо Ви не художник, і не аніматор, і не моделлер, і не т.п.

  1. Знайти художника / моделлера безкоштовно (тоді Вам на gamedev.ru).
  2. Знайти художника / моделлера за гроші (Вам на біржі фрілансу).
  3. Знайти результати роботи художника моделлера безкоштовно (почніть з opengameart.org, а так само загляньте в магазини і на форуми популярних ігрових движків - там чимало безкоштовних спрайтів і моделей).
  4. Знайти результати роботи художника / моделлера за гроші (в магазини популярних движків, або просто в онлайн-магазини текстур і 3d моделей, але в останніх будьте уважні - не всі моделі оптимізовані для ігор).

Будьте уважні з ліцензіями! Багато "вільні" ліцензії мають вимоги, виконання яких може виявитися неможливо в проекті! Пропрієтарні - тим більше!

  1. Навчитися і зробити все самостійно. Руки випрямляються при великому бажанні і посидючості. Інша справа, що професіонали в своїй області зроблять все "прямо зараз".
  2. Проявити креативність і спростити персонажа так, щоб навіть Ви могли намалювати анімації для нього.
  3. Проявити ще більше креативності: взяти персонажа в 3d (його знайти безкоштовно набагато простіше, ніж покадрові анімації персонажів для 2d ігор), наробити його скріншотів з потрібного ракурсу з потрібною анімацією. Профіт.

AC, GTA - це все Motion Capture. Але напевно типові сцени - біг, ходьба, стрибок і т.п. на це все є вже типові бібліотеки. Кастомниє сцени - додатково знімаються.

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

відповідь даний 12 Серпня '15 в 5:36