На цьому занятті ми анімуватимемо ходу нашого персонажа, навчимо його ходити.
Мультфільм - це не тільки кадри, що змінюються з персонажами, це цілий світ в якому вони живуть. Тому для першого знайомства з 3D анімацією ми вибрали відомий усім і створений Миколою Носовим світ Незнайки та його друзів. У цьому творі багато персонажів із різними характерами. Кожен зможе вибрати собі сподобався і вигадувати свої історії, які відбуваються у Квітковому місті. До цього уроку ви вже завантажили модель Незнайки, якого ми сьогодні вчитимемо ходити.
На перший погляд здається, що ходити – це дуже просто і природно. Але якщо ви людина наглядова, то ви можете помітити в процесі ходьби багато цікавих деталей. Тому перед переглядом цього відеоуроку уважно розгляньте ці малюнки. Тут докладно розглянуто рух частин тіла під час ходьби.
Зверніть увагу, що при ходьбі рухаються не тільки руки та ноги, але й тулуб: повертаються плечі та стегна. При кожному кроці людина трохи опускається і піднімається через згинання та розгинання ніг.

Розкадрування ходьби. Цифри відповідають номеру кадру. Приблизно за одну секунду людина встигає зробити крок спочатку правою, а потім лівою ногою. У кіно за кожну секунду на екрані змінюється 24 кадри, на телебаченні - 25. Тому приблизно на 25 кадрі людина, яка йде повертається у вихідну позицію, відповідну першому кадру.

Цей малюнок допоможе зрозуміти, на якому саме кадрі потрібно виставляти те чи інше положення частин тіла.
А тепер подивіться цей відеоурок і навчитеся анімувати ходу:
Вправа до уроку
Спробуйте анімувати біг. Це розкадрування допоможе вам. Під час бігу людина встигає за одну секунду зробити по два кроки правою та лівою ногою. Один крок робиться за 6 кадрів. На сьомому кадрі бігун перетворюється на позицію, симетричну першому кадру.

Додаткові матеріалидо уроку
Ще одне відео про створення пластилінових мультфільмів.
Текстова версія уроку
Проект «Яскраво-червоні вітрила» представляє третій урок навчального курсу «Створення 3D мультфільмів у програмі Майя».
Сьогодні ми займемося анімацією ходи персонажа.
Перед переглядом цього уроку уважно вивчіть на нашому сайті малюнки, що показують рух частин тіла під час ходьби та розкадрування ходи людини. Чітке розуміння принципів руху допоможе вам краще зрозуміти логіку цього уроку.
Отже, відкрийте завантажену із нашого сайту модель Незнайки.
Спочатку налаштуємо кількість кадрів, яка змінюватиметься за одну за секунду в нашій анімації. Для цього в основному меню вибираємо пункт Windows - Settings \ Preferences - Preferences. Відкриється вікно налаштувань. Вибираємо Settings, у рядку Time вибираємо 25 кадрів – це стандарт телебачення. Натискаємо Зберегти Save.
На минулих уроках ми створювали ключові кадри вручну, натискаючи кнопку створення ключових кадрів.
Надалі ми працюватимемо в режимі автоматичної установкиключових кадрів. При цьому ключі анімації будуть створюватись автоматично при зміні положення конролерів. Щоб активувати цей режим, натисніть кнопку Auto keyframe. З цього моменту ця кнопка має бути у нас постійно включена.
Отже, приступимо до анімації. Спочатку створимо вручну перший ключовий кадр. Для цього виділяємо контролер правої ноги, вибираємо канал ТранслейтZ і натискаємо на ньому правою кнопкою миші, вибираємо Кей Селектед. Без цієї операції наступні ключові кадри не будуть створюватися автоматично.
Поставимо у канал ТранслейтZ «+5». Переходимо до 13-го кадру і ставимо «-5». Як бачимо, нога в нас почала рухатися.
Тепер попрацюємо зі стопою. Перейдемо до 1-го кадру і виділимо канал ФутR; права кнопка миші; Кей Селектед. Ставимо значення "-5". Далі переходимо в 13-й кадр і ставимо 5. Нога почала перекочуватися з п'яти на носок.
Ті самі дії проробляємо для лівої ноги.
Далі ми зробимо так, щоб ноги рухалися по черзі. Для цього виділимо праву ногу; затиснемо клавішу Шифт; натиснемо ліву клавішу миші першому кадрі і, не відпускаючи її, виділимо кадри з першого по 13-й. Потім ухопившись за стрілочки в середині виділеної області, зміщуємо червону смужку так, щоб перший кадр відповідав 13-му. Як бачимо, тепер ноги рухаються по черзі.
Тепер зробимо так, щоб у першому кадрі права нога стояла позаду. Скопіюємо координати положення ноги з 25 кадрів у перший. Для цього виділяємо 25 кадр, натискаємо праву клавішу миші і вибираємо Копі. Переходимо у перший кадр і вибираємо Пейст (вставити). Нога при цьому стане ззаду.
Те саме проробимо для лівої ноги. Тільки тепер нам треба скопіювати перший кадр на 25-й.
Натисніть стрілку Відтворення і побачимо, що ноги почали рухатися по черзі.
Тепер налаштуємо відрив ноги від землі під час ходьби. Для цього виділимо праву ногу, перейдемо в 1-й кадр, по осі Y поставимо ключ, перейдемо в 7-й кадр, піднімемо ногу; по осі Y поставимо значення "3". У 13-му кадрі по осі Y поставимо "0". Подивимося, що вийшло – нога почала підніматися.
Тепер стопу треба трохи розгорнути. Для цього перейдемо в 1-й кадр, виділимо RotateX (поворот по осі X) та поставимо ключ (Кей Селектед). Також ставимо ключ у 13-му кадрі.
У 7-му кадрі ми повернемо стопу трохи вниз і поставимо значення 50 градусів. Дивимося, що в нас вийшло.
Тепер повторимо те саме для лівої ноги. Перейдемо в 13-й кадр, поставимо ключ по Y. У 19-му кадрі поставимо 3, а в 25-му кадрі знову поставимо 0. У 13-му кадрі RotateX – 0, у 19 – 50 градусів, у 25-му кадрі знову поставимо 0. Вийшов такий рух.
Тепер точніше налаштуємо рух ступні. Як ви можете переконатися, подивившись на розкадрування руху на нашому сайті, у 4-му кадрі ступня лівої ноги повністю опускається на підлогу.
Виділимо ліву ногу, переходимо у 4-й кадр, у каналі ФутL вбиваємо «0». Те саме ми виконуємо для правої ноги: у 16 кадрі ставимо «0» у каналі ФутR.
Вийшло ще краще.
Як ви пам'ятаєте, при ходьбі трохи повертаються стегна та тулуб, причому у різні боки. Давайте відобразимо це у нашій ході.
Виділимо контролер стегна і повернемо його в 1-му кадрі на "-10" градусів, поставимо ключ (Кей Селектед). Перейдемо до 13-го кадру і в каналі RotateY поставимо «+10». Перейдемо до 25-го кадру поставимо знову «-10». Ну ось, стегна теж почали брати участь у русі.
Тепер займемося рухом торсу. Виділимо контролер тулуба, перейдемо в 1-й кадр і поставимо в каналі RotateY значення +10. Поставимо ключ. Перейдемо в 13 кадр і в каналі RotateY поставимо «-10». Перейдемо до 25-го кадру поставимо знову «+10».
Як видно, ноги, стегна і тіло також беруть участь у ході.
Тепер згадаємо ще один момент: людина при ходьбі трохи нахиляється вперед і за рахунок згинання та розгинання ніг підніметься та опускається. На розкадруванні це видно.
Виділимо контролер тіла (БодиКонтрол), перейдемо в 4-й кадр і змістимо положення тіла по осі Y на "-0,5", ключ. Тепер перейдемо до 10-го кадру і поставимо «+ 0,5». Далі скопіюємо налаштування 4-го кадру о 16-й. А налаштування 10-го кадру скопіюємо у 22-й.
Як бачимо, Незнайко під час ходьби став «підстрибувати».
Тепер зробимо невеликий нахил тулуба вперед. Виділимо контролер тіла, перейдемо в 4-й кадр, виберемо канал RotateX поставимо ключ (КейСелектед); нахил уперед на "6" градусів. Перейдемо в 10-й кадр і поставимо значення RotateX 2 градуси. Тепер Незнайко при ходьбі почав трохи нахилятися вперед. Аналогічно в 16 кадрі поставимо 6, а в 22 кадрі поставимо 2.
Натисніть кнопку «Відтворення» та подивимося, що в нас вийшло.
15:33 Виділимо контролер тулуба. Зверніть увагу, при зміні 25-го кадру на перший у ході спостерігається провал, пересмикування. Причина в тому, що в першому кадрі Незнайко стоїть на напівзігнутих ногах, а 25-го на прямих. Хоча, як ви пам'ятаєте з розкадрування, у першому та 25-му кадрах мають бути однакові пози. Так вийшло через те, що у нас у першому та останньому кадрі немає ключів. Цей недолік потрібно виправити, для цього ми створимо циклічний рух.
Натисніть на лівій панелі кнопку Graf Editor. Відкриється редактор Graf Editor – інструмент для тонкого налаштуванняанімації.
Перед тим, як продовжити роботу, налаштуємо в редакторі можливість налаштовувати анімацію за межами створених нами ключових кадрів. Для цього в меню View ставимо галочку біля Infinity.
Як бачимо червона та зелена лінії продовжилися вліво та вправо. Ці лінії описують рух активних каналів контролера тулуба, якими раніше виставляли ключі.
Далі у меню Curves вибираємо Pre Infiniti; Oscillate. Як бачите цикл руху продовжився зліва на часовій шкалі. Ще раз меню Curves; вибираємо Post Infiniti; Oscillate. Цикл руху продовжився в обидві сторони.
Натисніть кнопку, щоб закрити Graf Editor. Подивимося, що вийшло. Рух тулуба вийшов плавнішим.
Тепер Незнайці налаштуємо голову, щоб вона не крутилася в різні боки під час ходьби. Для цього перейдемо у передній вигляд за допомогою цієї кнопки. На екрані з'явилися 4 проекції. Наведемо мишку на Front ще раз натиснемо пробіл. Виберемо контролер голови, перейдемо в 1-й кадр і по осі Y повернемо голову так, щоб вона дивилася на нас. Це відповідатиме значенню «-10» градусів. Поставимо ключ. Перейдемо в 13-й кадр і поставимо 10 градусів, у 25-му кадрі поставимо -10 градусів. Як бачимо, тепер голова дивиться суворо вперед.
Перейдемо тепер за допомогою цієї кнопки назад у перспективний вигляд та подивимося, що вийшло.
Займемося руками нашого персонажа, т.к. руки під час ходьби теж рухаються. Перейдемо в 1-й кадр, виділимо контролер правої руки і наблизимо його, щоб було зручніше працювати. У першому кадрі перемістимо руку вниз і трохи вперед. Повернемо пензель. Виділимо всі канали правої руки та поставимо ключ. Перейдемо в 13 кадр і перемістимо руку назад, трохи розгорнемо пензель. Права рука почала рухатися в протифазі з лівою ногою. Скопіюємо перший ключовий кадр і вставимо його в 25 кадр. Натисніть кнопку «Відтворення» та подивимося, що в нас вийшло.
У Ченелбоксі можна округлити значення каналів руху руки.
Давайте тепер налаштуємо рух лівої руки. Але ми не будемо вручну проставляти значення каналів у Ченелбокс для лівої руки, це досить довго. Натомість освоїмо ще один інструмент програми Майя для автоматизації цього процесу - скрипти.
Скрипти – це невеликі програми з кількох рядків, що дозволяють полегшити ті чи інші дії. За допомогою цієї кнопки відкриємо редактор скриптів – ScriptEditor. Виберемо Open, знайдемо в сцені папку Scripts. Тут лежить файл mirrorPoseTool.mel, відкриваємо його. На екрані з'явився такий текст. Виділимо все за допомогою мишки або клавіш Ctrl та «A» (ей). Затиснувши колесо миші, перетягуємо вибраний текст на панель Animation. При цьому з'явиться кнопка, за допомогою якої ми можемо запустити наш скрипт. Закриємо вікно редактора скриптів.
Наш скрипт дозволяє копіювати значення координат з одного контролера в інший. Це може спростити нашу роботу. Виділимо контролер правої руки; потім виділимо контролер лівої руки; натисніть кнопку нашого скрипта. В результаті ліва рукаприймає таке саме положення, як і права.
У першому кадрі ставимо ключі: виділимо всі канали і натискаємо КейСелектед.
Як бачите, руки стали рухатися однаково. Тепер вибираємо контролер лівої руки, виділяємо на тимчасовій шкалі перші 13 кадрів і пересуваємо їх таким чином, щоб 1 кадр збігався з 13.
Тепер 25 кадр треба скопіювати в 1.
Ну ось ми створили для нашого персонажа ходу. "УРА ура! Незнайко навчився ходити».
Зберігаємо нашу анімацію. Меню File; Save Scene As; пишемо Neznaika_Walk; Save As.
Інші різновиди ходьби
У попередніх заняттях ми займалися відтворенням звичайної ходьби. Однак персонажі можуть переміщатися безліччю інших способів: бігти, рухатися підстрибом, волочити ноги, йти навшпиньки і т.д. Індивідуальність персонажа виявляється у ході, і багато художники-аніматори вважають, що вона є ключовою частиною його характеру. Хода персонажів Джона Уейна, наприклад, різко відрізняється від ходи героїв Гручо Маркса. Впізнаваність персонажа має на увазі впізнаваність його ходи. Проаналізуємо кілька видів переміщення.
Біг
Біг – це не просто прискорена ходьба. Його краще уявляти не як постійне падіння, а як серію стрибків уперед, під час яких тіло набагато сильніше, ніж під час ходьби, нахиляється вперед. У ній одна нога завжди стосується землі, а під час бігу іноді обидві ноги перебувають у повітрі. Розміри таких стрибків перевищують максимально можливу довжину кроку під час ходьби.
Інші різновиди ходьби
Один крок при бігу може займати лише кілька кадрів. Якщо ви хочете показати дуже швидкий біг, необхідно використовувати розмиття в русі, щоб уникнути стробоскопічного ефекту під час руху ніг та стоп. Подивіться на персонаж, що біжить, і зверніть увагу на відмінності між ходьбою і бігом. На малюнках показано фази бігу. Мал. 9.15 ілюструє положення, в якому нога стикається із землею: тіло нахилено вперед, а ноги рознесені набагато далі, ніж під час ходьби. Потім нога стосується землі і приймає позицію віддачі, завдяки чому пом'якшується поштовх. Як і при ходьбі, це найнижча точка циклу. Під впливом імпульсу тіла нога згинається ще сильніше. Для утримання рівноваги центр ваги тіла знаходиться над ногою, що стосується землі (рис. 9.16). Наступна поза аналогічна прохідній, що виникає у середині кроку. У цій точці циклу нога, що знаходиться на землі, штовхає тіло вгору і вперед (рис. 9.17). Найвища точка циклу виникає у момент, коли тіло відірвалося від землі (рис. 9.18). І, нарешті, нога стосується землі і починається новий стрибок (рис. 9.19). Як і при ходьбі, друга половина циклу має бути дзеркальним відображенням першої. Вага тіла розподіляється таким чином, що його центр тяжіння знаходиться над ногою, що стосується землі.
Мал. 9.15.Нога стикається із землею

Мал. 9.16.
Нога, що стосується землі, пом'якшує поштовх

Мал. 9.17.
Нога, що знаходиться на землі, штовхає тіло вгору і вперед

Мал. 9.18.Тіло відірвалося від землі

Мал. 9.19.
Нога стосується землі, і починається новий стрибок
Біг підстрибуючи
Біг підстрибом - ще один вид переміщення, що різко відрізняється від ходьби. Персонаж підскакує, відштовхнувшись від землі ногою і приземляється на неї, а потім змінює ногу і виконує наступний стрибок. Хоча малюнок руху стоп змінюється, основні принципи дотримання рівноваги залишаються незмінними. Таз, плечі та хребет персонажа рухаються злагоджено для підтримки рівноваги скелета. Далі на малюнках представлені кадри анімації, створеної Енджі Джоунс, які демонструють основні рухи ніг та тіла. Бет підстрибом починається практично так само, як і ходьба, - ноги рознесені (рис. 9.20). Але такий біг в основному здійснюється на носках ніг. Потім вага переноситься на виставлену вперед ногу (у разі на передній носок), як показано на рис. 9.21. Наступна фаза: одна нога відштовхується від землі, у результаті персонаж робить невеликий стрибок чи стрибок, інша рухається вперед у міру повороту таза (рис. 9.22). У середині стрибка відставлена назад нога переміщається у бік руху тіла, виставлена вперед кінцівка високо піднята і сильно зігнута коліні (рис. 9.23). Нарешті персонаж приземляється на відставлену назад ногу, а інша все ще піднята (рис. 9.24).
На компакт-диску в папці Chapter09 є відеокліп Skip, що демонструє біг підстрибом.

Мал. 9.20.
Початкова фаза, ноги рознесені

Мал. 9.21.
Вага переноситься на одну ногу

Мал. 9.22.Здійснюється стрибок

Мал. 9.23.
Зміна положення ніг

Мал. 9.24.
Приземлення на одну ногу

Мал. 9.25.
Землі стосується й інша нога
Походка, що крадеться
Аніматори люблять відтворювати у фільмах ходьбу навшпиньки - різновид основної ходьби, в якій персонаж йде на шкарпетках. Зазвичай її використовують, щоби показати безшумний рух героя. Хода людини, що крадеться, анімація якої була виконана також Енджі Джоунс, починається як звичайна ходьба, з тією лише різницею, що персонаж стоїть на шкарпетках (рис. 9.26). Центр його тяжкості зміщується, тож герой витягає руки. Потім він сприймає позицію віддачі. Зверніть увагу, що стопи дуже близько до землі, щоб полегшити утримання рівноваги (рис. 9.27). Наступна позиція – прохідна. При ходьбі навшпиньки нога, що стоїть на землі, не випрямляється, як при звичайній ходьбі (рис. 9.28). Перед тим, як вільна нога торкнеться землі, персонаж на 1 хиляється для утримання рівноваги (рис. 9.29). На цьому цикл завершено і можна почати наступний крок з іншої ноги (рис. 9.30).

Мал. 9.26
Персонаж стоїть на шкарпетках

Мал. 9.27
Позиція віддачі

Мал. 9.28
Прохідна позиція

Мал. 9.29.
Персонаж трохи нахиляється

Мал. 9.30
Цикл завершено
Анімація прогулянки на чотирьох ногах
У порівнянні з анімацією ходьби на двох ногах відтворити ходьбу на чотирьох ногах подвійно складніше. Насамперед, анатомія більшості чотирилапих тварин (а також птахів та динозаврів) кардинальним чином відрізняється від анатомії приматів. Наприклад, кінь переміщається, відштовхуючись від землі пальцями, оскільки його «п'ятки» знаходяться приблизно на рівні коліна людини.
Щоб реалістично імітувати рух на чотирьох ногах, доведеться вивчити рух справжніх тварин. Візьміть із собою у зоопарк відеокамеру або перегляньте документальний відеофільм про природу та постарайтеся зрозуміти механізм руху тварин.
Чотириногі тварини пересуваються не тільки звичайним кроком, їх хода може бути не менш різноманітною, ніж у людини. Частота кроків тварини збільшується зі зростанням швидкості. Різні темпи ходьби та бігу називаються кроком, риссюі галопом,хоча далеко ще не всі тварини здатні розвивати велику швидкість. Наприклад, слон завжди рухається кроком і ніколи не змінює ходу – лише змінює швидкість.
Коли кінь йде кроком, його ноги переміщаються майже так само, як руки та ноги людини: якщо права задня нога відставляється назад, права передня нога виноситься вперед, а ліві ноги рухаються у протилежному напрямку (рис. 9.31). При зміні кроку все змінюється. При бігу повним галопом передні ноги коня рухаються синхронно і виносяться вперед і назад майже одночасно. Задні ноги також рухаються синхронно (рис. 9.32).





Мал. 9.31.
Крок
Існує прийом, що дозволяє надавати чотирилапим персонажам «мультяшний» вигляд. Згадайте циркову сцену, в якій два клоуни зображують коня. Подібну ходьбу можна відтворити як переміщення на двох парах ніг, задавши різні обмежувачі у суглобах та сконструювавши комбінацію тіл.





Мал. 9.32.
Галоп

Мал. 9.33
Кадр анімації мультиплікаційного героя
Задні ноги, зображені на рис. 9.33 собаки згинаються неправдоподібно для тварини та нагадують рух ніг людини. Але мультиплікаційний характер персонажа дозволяє художнику-аніматору переміщувати собаку в такий спосіб.
Висновок
Анімація ходьби - досить специфічне завдання, при вирішенні якої необхідно правильно відтворити рух і вагу персонажа, а також розташувати частини його тіла, дотримуючись балансу між ними. Опанувавши основи імітації ходьби та бігу, ви поступово навчитеся змінювати рух персонажів, і їхні ходи відрізнятимуться залежно від настрою чи характеру. Подібно до того, як музиканти спочатку розучують гами, а потім" опановують імпровізацію, художники-аніматори пізнають механізми ходьби, щоб згодом створювати яскраві і незабутні персонажі.
Вартість послуг кожної представниці найдавнішої професії, яка співпрацює з нашою компанією, представлена у нас на сайті. Тому кожен потенційний клієнт легко може переконатися в тому, що секс-дозвілля сьогодні доступне. Молодий юнак та досвідчений старець вибере дівчину на свій смак.
Перш ніж розповісти саме про анімацію ходьби персонажа – трохи похмурого вступного тексту, обов'язкового до прочитання:
Нещодавно я вирішив для себе трохи розкрити тему, поки в хоча б плоских в 2D. Існує багато спеціальних програм на цю тему, але вони досить складні для самостійного освоєння, мають якісь обмеження, або в них присутнє ще щось херове, яке заважає з ними дружити.
Загалом я вирішив спробувати обійтися тим, з чим я більш-менш знайомий на практиці. В результаті утворилася якась технологія, за допомогою якої я хочу створювати невеликі плоскі мульти. Суть технології полягає у використанні фотошопу для створення кадрів характерних та предметів, з об'єднанням цих кадрів у короткі міні кліпи у програмі для створення флеш анімації (у моєму випадку SwishMax), з подальшим комбінуванням їх для створення готового мультфільму.
Звучить все це досить незрозуміло і складно, але якщо розібратися спосіб цілком робочий. У жодному разі не хочу стверджувати, що цей шлях оптимальний - але на даний момент мені підходить. Ділюсь з тими, кому цікаво.
1. Створюємо персонажа шляхом на окремих шарах частин тіла, які можуть рухатися – у моєму випадку це: , тіло, плече, передпліччя, кисть, стегно, гомілка, стопа (для кінцівок все у подвійному екземплярі – ліво / право). Ці частини можна ймовірно називати спрайт або типу того. Запихаємо ці спрайти до групи.
2. Створюємо по-кадрово окремі рухи, в даному випадку ходьби, копіюючи групу спрайтів і змінюючи їх розташування відносно один одного відповідно до рухів.
3. Експортуємо в окремі кадри всі рухи.
4. Імпортуємо кадри в SwishMax (або іншу програму для флеш) та створюємо з окремих кадрів анімовані кліпи. Або можна просто створити анімований гіф прямо у фотошопі якщо потрібно, скажемо просто створити фігуру, що йде (замкнений цикл) як на гіфці в цій статті.
Подробиці анімації ходьби у відео. Продовження про те, як діяти при складанні у флеш і перетворенні на відео файл mp4 – у подальших публікаціях.
Хто не залишить коментар, або не поділиться в соцмережах - той просто смердючка.
Anima – це душа, що відрізняє живе від мертвого. Аристотелевская душа - це принцип руху, що проявляється у чотирьох видах: переміщення, перетворення, спадання і зростання. Майже через дві з половиною тисячі років ми використовуємо ті ж категорії в комп'ютерній графіці. Скелетна анімація визначає переміщення, морфінг служить для перетворень, а спад та зростання це звичайне масштабування. Анімована графіка пожвавлює образ, вдихає в картинку душу, і це, на мій погляд, навіть важливіше, ніж достовірна гра світла та тіні.
Створення якісних скелетних 3D анімацій сьогодні, мабуть, найважче для інді розробників завдання. Ймовірно, тому так мало інді ігор у 3D, і так багато проектів у стилях піксель арту або примітивізму, а також бродилок без персонажів у кадрі. Але тепер це співвідношення може змінитися.
Спробуйте порахувати кількість різноманітних анімацій у Uncharted 4. За моїми оцінками там близько години унікальних рухів, крім лицьової анімації ( 850 виразівза словами авторів). Подібні ігри задають фантастичну планку якості.
Приклади анімації Uncharted 4 (>40мб GIF)


Мені не вдалося знайти прикладів створення хоча б близької за рівнем анімації за допомогою ручного кадрового підходу або будь-якої процедурної анімації. Максимум що можна зробити вручну, на мій погляд, - це прості удари, швидкі рухи та стилізована мультяшна анімація. Але як зробити реалістичну ходьбу сходами, де дуже багато деталей, пов'язаних із переносним центром тяжіння та балансом тіла? Неможливо їх усі відтворити вручну. Можливо я помиляюся, і хтось покаже роботи фахівців такого рівня?
Все це я згадую для того, щоб гідно оцінити щедрий подарунок від Mixamo. Він буквально відчиняє двері на новий рівень для незалежних розробників: компанія Adobeкупила Mixamo, і тепер 2.5 тисячі скелетних анімаційдля персонажів вони віддають абсолютно безкоштовно "для необмежених комерційних або некомерційних послуг":
www.mixamo.com
Ще пів року тому можна було їх отримати лише виклавши близько $36 000 (ну чи спіратив у мережі). Крім анімацій компанія також пропонує безкоштовну версію інструменту для ригінгу та скінінгу персонажів, інструмент для створення множинних рівнів деталізації з мінімальними втратами якості (LOD), генератор персонажів та плагін для захоплення лицьової анімації.


Отримати якісні та різноманітні анімаційні кліпи це лише перша частина завдання.
Друга частина полягає в тому, щоб коректно використовувати отримані анімації під час керування персонажем. Для цього спочатку потрібно вирішити, як взагалі зрушувати персонажа у сцені: на підставі даних самої анімації (1), або на підставі якихось інших міркувань (наприклад, фізики твердого тіла) (2). Тобто або анімація обчислюватиметься виходячи з довільного (фізичного) руху об'єкта в просторі (2), або саме зміщення в просторі виходитиме із записаної анімації, ігноруючи інші втручання (1).
В обох підходів є переваги та недоліки. У колишні часи, до масового використання захоплення рухів, питання про це майже не стояло - персонажі рухалися процедурно, на підставі якихось простих принципів, а анімаційні кліпи просто програвали для певної відповідності цьому руху. Але чим краще ставала анімація і графіка в цілому, тим помітнішою ставало невідповідність руху ніг і зміщення персонажа, а також невиразність динаміки руху.
Одним з яскравих прикладів може бути гра Guild Wars 2 де анімація рухів і графіка вже досить хороші, але великий діапазон можливих швидкостей і напрямків руху персонажа не забезпечений настільки ж великим набором анімацій, і персонажі або буксують на місці, або прослизають вперед як по льоду . Та ж проблема довгий час переслідує і ігри на движку Gamebryo (серія TES: Morrowind, Skyrim), та й багато інших.
Справжній рух людини нелінійний - спочатку ми нахиляємося вперед, потім викидаємо ногу, і тільки потім починаємо рух, швидко прискорюючись після зіткнення стопи із землею, і рухаємось по інерції до наступного кроку. Підібрати функцію, яка точно описує подібний рух, складно, і рідко хто взагалі про це замислюється. Що вже говорити про більш складні рухи - стрейф, переходи між напрямками, гальмуванням і поворотами.
Тому для досягнення реалізму нам у будь-якому випадку буде потрібний гігантський набір різноманітних кліпів з рухами в різних напрямках, з різною швидкістю тощо… Крім того, анімаційні кліпи рідко можна використовувати ізольовано, відтворюючи один за одним. Найчастіше у грі є безліч анімацій, між якими не заготовлено спеціальних анімованих переходів. Тому їх симуляції застосовується плавне змішування через лінійну інтерполяцію поворотів кісток. Для зручного налаштування таких переходів використовується т.зв. кінцевий автомат чи машина станів (State machine). У UE та Unity для цього є спеціальні інструменти: Persona та Mecanim. Кожен вузол там – це деякий стан скелетної моделі (заготовлений анімаційний кліп або результат їх змішування – Blend Tree). Коли виконані деякі задані умови, здійснюється плавний перехід з одного стану в інший, під час якого обидва надають пропорційний час впливу на повороти кісток та зміщення об'єкта. Таким чином досягається ілюзія безперервності руху.
Стан може бути не поодиноким кліпом, а змішаним за тим самим принципом набором кліпів (Blend Tree/Blend Space). Наприклад, з кліпів рухів персонажа в сторони можна вибрати кілька, змішавши їх пропорційно вектору бажаного руху, і отримати рух під будь-яким довільним кутом. Проте існують такі анімації, котрим змішування обертається некоректними позами. Наприклад, коли одна анімація рухає ноги персонажа вперед, а інша вбік, лінійне змішування може призвести до перетину ніг один з одним. Щоб цього уникнути, потрібно ретельно підбирати анімаційні кліпи, синхронізувати їх фазу, довжину і швидкість, або додавати окремий кліп спеціально для даного виду рухів. Все це складна та копітка робота. І чим більше можливих станів і переходів між ними, тим складніше привести їх у згоду один з одним, і простежити, щоб усі потрібні переходи спрацьовували коли це потрібно.

1) Найочевиднішим рішенням є захоплення рухів реального актора з допомогою Motion Capture і прив'язка усунення персонажа у грі до усунення «кореневої кістки» у самій анімації - принцип Root Motion. Тоді персонаж рухатиметься так, як рухався актор під час запису.
Виглядає дуже реалістично. Більше того, це єдиний спосіб достовірно відтворити складні маневри на кшталт випадів, уворотів та парування атак холодною зброєю.
Але цей підхід несе у собі й очевидні проблеми.
Припустимо, персонаж хоче посунутись до краю урвища: актор на записі нахиляється, піднімає ногу і робить сміливий широкий крок по сцені. А персонаж крокує прямо в прірву… Щоб цього уникнути, потрібно перервати крок десь посередині, але це не тільки виглядає неприродно, а й ускладнює гравцеві вибір потрібного моменту через нелінійність руху, в якому може бути довга підготовка (нахил), а потім різкий впевнений рух (крок). Можна записати кілька варіантів рухів. Припустимо: обережні маленькі кроки, нормальні, та біг. А потім змішати їх за параметром швидкості, який можна збільшувати лінійно і передбачувано. Але що якщо нам потрібні рухи убік? Значить для кожного варіанта ширини кроку нам потрібні ще три-чотири варіанти (за винятком дзеркальних). А ще персонаж має вміти повертати під час руху. Отже, для кожного варіанту нам потрібні рухи з поворотом. А якщо поворот може бути швидким та повільним? Значить ще раз множимо кількість необхідних кліпів на два. А тепер нам потрібний рух по похилій поверхні! А потім нам захочеться, щоб персонаж умів робити те саме вприсяді. Разом - просто сотні і тисячі варіантів анімації, які потрібно змішувати і стежити за тим, щоб це відбувалося коректно і призводило до рухів з потрібною швидкістю. І все одно, у багатьох випадках управління відчуватиметься як «ватне», оскільки інерція актора і наша неможливість передбачити всі можливі людські маневри позбавлятиме гравця контролю над персонажем. Цю проблему, до речі, відчули на собі гравці в The Witcher 3, тому в одному з великих оновлень розробники впровадили альтернативний варіант управління, де анімація швидше відгукується на керування на шкоду реалізму. У шутерах проблема нелінійності руху набуває особливо вираженого характеру: гравцеві часто доводиться виглядати з-за кута і швидко йти назад, і момент різкої зміни напрямку може дуже відрізнятися - гравцеві потрібно якнайшвидше повернутися назад за укриття, а у нас немає можливості передбачити заздалегідь Якою шириною крок він планував і програти відповідну анімацію. Гравцеві, у свою чергу, буде важко звикнути до ширини кроку, яку робить його персонаж, і швидкості цього кроку, щоб перервати його вчасно.
По-друге, Root Motion погано підходить для мережних ігор. Нелінійність руху не тільки ускладнює гравцю передбачення швидкості, але й позбавляє нас можливості інтерполювати та екстраполювати рух, щоб компенсувати мережну затримку, що є дуже важливим та складним аспектом у швидких мережних іграх. Якщо зміщення персонажа задається тільки анімацією, то важко аналітично підібрати потрібні параметри машини станів (змішує різні анімації), які призведуть до руху персонажа в точно потрібному напрямку і з точно потрібною нам швидкістю (вибраних для компенсації розбіжності). Якщо ж зробити навпаки, так, що анімація буде орієнтуватися на фактичний рух, то при корекції розбіжності між сервером і клієнтом легко можна буде підібрати найбільш підходящу анімацію, і навіть якщо вона трохи не відповідатиме фактичному зміщенню, цього майже ніхто не помітить.
Тому техніка Root Motion використовується часто в одиночних іграх від третьої особи, де керування здійснюється контекстуально - залежно від наявності укриття, перешкоди, режиму руху або інших обставин, і рідко застосовується у мережевому режимі та MMOG.
З останніх помітних проектів, що використовують Root Motion, можна виділити The Witcher 3. Важко переоцінити зусилля, вкладені у виробництво всіх його рухів.
Приклад анімації The Witcher 3 та її зйомки


Перша очевидна труднощі при приведенні анімації у відповідність до руху, у тому, що рух уже відбувся, а анімація ще не програно. Тому дуже стане в нагоді система передбачення руху, що обчислює становище персонажа для наступного кадру. Потім, знаючи зміщення, яке має здійснити персонаж за наступний кадр, потрібно пропустити стільки кадрів анімаційного кліпу руху, скільки буде потрібно, щоб досягти необхідного зміщення, і програти той кадр, на якому необхідне зміщення досягнуто. У такому разі анімація відтворюватиметься зі зміненою швидкістю, так, щоб точно відповідати фактичному зміщенню, і ця швидкість може бути швидше або повільніше оригінальної, оскільки неможливо змусити реального актора підтримувати постійне прискорення або швидкість. Даний підхід дозволить згладити анімацію і привести у відповідність до будь-якої складної процедурної моделі руху, що змінюється під час гри (персонаж може випити яке-небудь прискорювальне зілля або виявитися уповільненим противником). Недоліком, зрозуміло, є те, що анімація може стати менш реалістичною через сильні зміни у швидкості. Однак на практиці це дає дуже гарне вікно доступних варіацій, в якому порушення швидкості непомітні. А разом із поправками ширини кроку за допомогою інверсної кінематики покриває ще більший діапазон.
Але, на жаль, цей метод досить сильно порушує звичний підхід до анімації, тому я не зміг знайти простого способу реалізувати його, наприклад, з використанням стандартного анімаційного компонента Unity. У Unreal Engine також поки немає необхідного функціоналу, проте розробники обіцяють колись перенести низькорівневі напрацювання, зроблені для Paragon, у загальнодоступну версію двигуна. Основною складністю є пошук та відтворення потрібного кадру на підставі даних про фактичне зміщення та поворот. Для цього автори пропонують робити пре-процесинг анімаційних кліпів та генерувати для кожного з них додатковий блок даних: Distance Curve, в якому будуть покадрово збережені значення зміщення та повороту кореневої кістки щодо початку або кінця анімації. Потім, у ході вибірки, можна проводити швидкий бінарний пошук потрібного кадру, де досягнуто відповідні параметри зміщення та повороту, та відтворювати його.
Поки ж можна обмежитися колишнім підходом, і робити менш точне припасування швидкості анімації до швидкості запланованого руху, орієнтуючись лише на швидкість персонажа за останній кадр. Найголовніше – непоганий набір душ для експериментів тепер є!
Теги:
На прохання Оксани зробив невеличкий урок з анімації. Відразу кажу що досвіду створення уроків у мене практично немає, так що прийму конструктивну критику. Отже приступимо. Розглянемо прямо ходячих персонажів. Про чотириногих братів наших можна створити окрему тему ... Хода персонажа визначає його характер і в першу чергу впадає в очі глядачеві. Багато хто вважає анімацію ходи складним заняттям, але насправді це не зовсім так. Зрозуміло кожному за персонажа потрібен свій підхід. Найменша помилка в одному кадрі зіпсує всю анімацію. Проте, слідуючи певному алгоритму, можна уникнути цих помилок.
Трохи нудної теорії Найчастіше ходу можна як комбінації чотирьох станів: контакт, відрив, прохід і вища точка. У кожному з цих станів у персонажа змінюється становище рук і ніг, а також змінюється висота персонажа. У стані " вищої точки " голова персонажа перебуває у найвищому становищі а стані " відриву " у найнижчому. Кажуть починати малювати цикл потрібно з "контакту", інакше неминуче з'являться проблеми. Очевидно, що коли права нога знаходиться в задньому положенні, то ліва рука виходить вперед і навпаки. Такі положення називаються conterpose. Окрема назва цієї позі придумали не з простою. З її допомогою в анімації ходи досягається рівновага (обидві сторони тіла врівноважуються). Будь-яка анімація без рівноваги виглядає неприродно. У стані "прохід" видно лише одну руку, розташовану майже паралельно тулубу. Анімація ходи може бути виконана двома способами: коли персонаж марширує на місці, а зсувається фон і коли він зміщується по екрану. Перший спосіб універсальніший, але буває складно підібрати швидкість фону і вписати його в оточення. Тепер про анімацію на слайдах. Мавпи – це мій перший досвід покадрової анімації. Використовуючи алгоритм, було отримано хороша анімація ходи горили. З анімацією бігу в моєму випадку вийшло трохи складніше. У перших додалася кількість ключових кадрів з 8 до 22. Чим більше проміжних кадрів, тим плавніша анімація. І тут ще враховувалися рухи вух і язика, дихання і т. д. Ну а насправді анімацію бігу теж можна вмістити в 8 кадрів. Борознячи простори інтернету я нарив безліч розкадрувань анімації, які з кожним днем поповнюють мою колекцію. Ось одна з них:
Чудово чи не так? Приєднавши ту теорію до цих малюнків, можна оживити свого персонажа і надати йому настрій. Коли я робив банер з пандою, у мене не було цієї картинки. Я спостерігав за дітьми, що бігають у дворі, змушував брата бігати туди-сюди, дивився мультики І все робив методом проб і помилок (мій улюблений метод). Про анімацію ходи можна ще багато розповідати, наприклад, як бути коли потрібно анімувати персонажа зображеного не в профіль і висвітлювати багато інших проблем. Але знаючи ті основи і додавши трохи уяви та фізики можна досягти неймовірних результатів. Сподіваюся, що стаття вийшла не дуже занудною. І так само сподіваюся, що у вас анімація вийде краще і плавніше, ніж у мене. Якщо я прогав якийсь важливий момент і у вас є що додати - ласкаво просимо. Усі недоліки і промахи (якщо такі знайдуться) постараюся виправити наступного уроці присвяченому скролінгу фону у флеш з допомогою as3.