Як анімовані ігрові персонажі? [зачинено]


10

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

Мені хотілося б знати, як створюються ігрові персонажі, які є рухомими? Яке програмне забезпечення та двигуни використовуються для цих символів?


Це дублікат? Якщо так, я проголосую за закриття, але в іншому випадку, мабуть, добре, щоб цей сайт відповів на це основне запитання один раз.
поштовх

1
Я шукав про це спочатку, потім задав це питання :-)
Ахмед

Ви маєте на увазі 2D або 3D символи? Персонажі, які мають скелет або аморфні краплі? Шукаєте автономні результати чи інтеграцію з фізичним двигуном? Це може бути гарним питанням, але на даний момент повна відповідь заповнить кілька книг.
Анко

Відповіді:


18

Ігрові персонажі зазвичай анімуються за допомогою техніки, яка називається скелетною анімацією : введіть тут опис зображення (Джерело зображення: Valve Software )

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

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

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

Людей акторів наймають для здійснення дії персонажів гри. Під час вистави актори одягають спеціальні костюми, які на них прикріплені добре помітні позначки. Коли вони записуються відеокамерою під час введення в дію, рух цих знаків можна віднести до кісток 3d-моделей персонажа. Таким чином, рухи акторів можуть бути застосовані до будь-якої 3d-моделі, яка використовує ту саму кісткову структуру. Цей метод, як правило, призводить до набагато більш природних результатів, і коли існує велика кількість анімацій, можна створити величезну економію часу. введіть тут опис зображення (Джерело зображень: Toptear Games )

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


1
Хороша відповідь. Але , може бути , ви могли б відзначити , що це , насправді, низькі методи Захоплення руху вартості, з використанням комп'ютерних камер (веб - камери, Kinects або PS Eyes). Є також сервіси, які продають багаторазові анімації для загальних налаштувань скелетних сіток.
ТК

1
@TheodorosChatzigiannakis Я не дуже обізнаний в будь-якій області. Можливо, ви хотіли б детальніше розібратися у власній відповіді?
Філіп

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

2
Я працював з купою першокласних 3D-аніматорів, і більшість з них вважають за краще анімувати речі вручну, використовуючи mo-cap, оскільки вони мають набагато більший контроль над виразами анімації, яку вони роблять, і вони мають набагато більше свободи над тим, що символи можуть зробити порівняно з тим, що може зробити людський організм. Однак, коли реплікація конкретного руху людини є критичною (наприклад, при спортивних іграх AAA, в яких представлені справжні гравці), mo-cap цілком необхідний.
Піжама Panda

Ви можете додати, що рекомендації щодо програмного забезпечення можна запитати в рекомендаціях щодо програмного забезпечення StackExchange.
Рамчандра Апте

3

Насправді, відповідь Філіпа є досить хорошою, але пропускає важливий момент.

У деяких іграх (Quake / Q2 є найбільш помітними прикладами) взагалі не використовувалася скелетна анімація - вони натомість вдавалися до вершинної анімації (тобто анімації положення вершин у сітці). Підтримка коду насправді набагато простіша, хоча для великих проектів це зазвичай не відповідає дійсності (але все-таки багато ігор були зроблені саме таким чином *.

Детальні відомості див

https://en.wikipedia.org/wiki/MD2_(file_format)

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


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

1
Це не стільки ні /, скільки стільки історична записка. Ігри для цього робили, але більше не роблять. Поки ми робимо історичні нотатки, до того, як ігрові двигуни підтримували вершинну анімацію, вони робили ієрархічну анімацію (думаю, N64 / PS1)
джакінг

Також описувати це як "на основі ключових кадрів" є дуже оманливим, оскільки скелетна анімація також використовує ключові кадри. Я відредагую його як "вершинна анімація".
поштовх

@jhocking / погоджуюсь, esp. з ієрархічною анімацією; і так, вершина анімації насправді термін тут. І так, нові ігри вже не роблять цього.

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

1

Відповідь Філіпа є правильною, але варто додати, що існують (відносно) низькі витрати без маркерних фіксацій руху, що використовують датчики, які зазвичай зустрічаються вдома, такі як масив веб-камер, датчики Microsoft Kinect або Sony PS Eyes. Зазвичай вони не випускають анімації якості виробництва (ви можете очікувати посередньої точності та тремтіння у більшості випадків), але у вас буде правильний час, і якщо ви готові зробити чистку та детальну настройку, це буде економлять багато часу в порівнянні з ручним анімуванням скелета (або сіткою безпосередньо).

Крім того, є Mixamo , сервіс, який продає готові анімації для загальних скелетних сіток. Якщо я пам'ятаю правильно, вони дають кількість анімацій безкоштовно, для оцінювання.


1
Я хотів би додати, що тут університетська лабораторія MOCAP фактично замінила все їх дороге (кількарічне) обладнання на безмаркерові рішення на основі кінекта, що дало кращі результати. Звичайно, маркер не може конкурувати з найвищим обладнанням. Але Kinect досить чортово хороший (особливо якщо ми враховуємо ціну) для таких речей.
Рой Т.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.