Створення циклів анімації для NPC в VR іграх
NPC в VR знаходиться в особистому просторі гравця. Дистанція до персонажа, з яким йде діалог – 1–2 метри. Це означає, що кожен артефакт анімації видно: foot sliding при ході, проваливання рук у тіло, застиглий взгляд, механічно зациклена idle-поза. У звичайній грі від третьої особи гравець дивиться з 5–7 метрів та частина дефектів просто не видна. У VR дистанцій нема.
Проблеми стандартних Mocap-циклів в VR
Mocap-бібліотеки (Mixamo, Rokoko, Adobe Animate) дають якісну основу, але практично завжди потребують VR-специфічної доробки.
Foot sliding. В motion capture персонаж рухається в просторі разом з актером. При зацикліванні анімації root motion обнуляється, а ноги продовжують рухатися, як буцьто персонаж куди-то йде. У VR гравець стоїть поруч та бачить, як NPC "їде" на місці. Рішення – Root Motion Correction: у Blender Timeline вручну вирівнюємо Z-позицію стоп у ключових контактних фазах, або використовуємо Foot IK в Unity Animation Rigging з TwoBoneIK та ground detection.
Цикл без secondary motion. Idle-анімація, яка просто качає туловище – це MannekenPis. Живий персонаж у VR має мати: дихання (0.3–0.5 Hz частота, невелике рухання плеч та грудей), мікродвижения ваги (легке зміщення таза кожні 2–4 секунди), blink анімацію (4–8 разів на хвилину, випадковий інтервал). Без цього NPC у VR ощущується як труп.
Переходи між циклами. У Unity Animator Blend Tree з crossfade працює для звичайних ігор. У VR при переході Idle → Walk → Run, якщо Length переходного state не збігається з фазою циклу, нога "пригає". Потрібні Synchronized Layers та Avatar Mask для верхної частини тіла, щоб жести перекривали тільки торс та руки, не затрагуючи ноги.
Як будується анімаційний цикл для VR NPC
Idle – базовий цикл, 3–6 секунд, seamless loop. Включає дихання, вагу, blink. Якщо NPC з діалогом – додатково 2–3 варіанти micro-idle з різним характером (нервовий, розслаблений, уважний).
Locomotion set. Для наземного NPC: стоп (0 м/с), повільна ходьба, нормальна ходьба, біг – мінімальний набір. Під кожну швидкість – цикл з правильною фазою ніг (початок циклу = left foot contact). У Blend Tree параметр Speed інтерполює між ними. Важливо: всі цикли одного набору мають мати одинакову довжину в секундах або кратну – інакше при transition нога підпригає.
Interaction анімації. NPC у VR має реагувати на присутність гравця: look-at через Constraint Look At або процедурний LookAt() в Update, жест привітання, відступ при занадто близькому підході. Коротенькі анімації (0.5–2 секунди), з явними in/out keyframe для плавного вхідження з Idle.
Одноразові события. Для діалогових NPC – набір жестів під реплики (кивок, покачування головою, указування рукою, shrug). Експортуються як окремі Animation Clips та викликаються з діалогової системи через Animator.SetTrigger().
Технічні вимоги до експорту
Експорт із Maya/Blender в FBX з Bake Animation включеним. У Unity: Animation Type = Humanoid (якщо rig Mecanim-compatible), Apply Root Motion = вимкнено для Navmesh NPC, Loop Time та Loop Pose включені для циклів.
| Набір анімацій | Орієнтовні терміни |
|---|---|
| Idle + дихання + blink | 1–2 робочих дні |
| Повний locomotion set (4 швидкості) | 3–5 робочих днів |
| Набір dialogue-жестів (5–8 анімацій) | 2–4 робочих дні |
| Повний анімаційний пакет NPC | 1–2 тижні |
Вартість розраховується індивідуально після вивчення технічних вимог та скелетної структури персонажа.





