Создание контрольных систем рига (IK/FK переключатели)
Контрольная система рига — интерфейс между аниматором и скелетом. Без неё работа с ригом превращается в прямую манипуляцию костями: неудобно, неточно, и при любой ошибке сложно откатиться. IK/FK переключатели — основа этого интерфейса, и их качество напрямую определяет скорость и удобство работы аниматора.
В чём разница между IK и FK в контексте игрового рига
FK (Forward Kinematics) — прямая кинематика, вращение костей от корня к кончику. Рука поднимается за счёт последовательных вращений плеча, предплечья, кисти. Интуитивно для позирования, хорошо для машущих движений, плохо для точного контакта с объектами.
IK (Inverse Kinematics) — обратная кинематика. Задаём конечную позицию кисти или ступни, решатель вычисляет углы суставов. Удобно для фиксации конечности в пространстве (рука на поручне, нога на ступеньке), плохо для свободных движений с выраженной дугой.
Аниматор хочет переключаться между режимами по ситуации. Именно поэтому IK/FK switch — не роскошь, а базовое требование к нормальному ригу для анимации.
Реализация IK/FK switch в Blender
В Blender стандартная реализация через Bone Constraint → Copy Rotation с управлением через Custom Property на контрольной кости. Схема:
- Три цепочки костей: IK Chain, FK Chain, Result Chain
- Result Chain через
Copy Transformsследит либо за IK, либо за FK в зависимости от значения Custom Propertyik_fk_switch(0.0 = полный IK, 1.0 = полный FK) - Influence параметра Constraint драйвится через Driver → Custom Property
На практике: кость hand_ik_ctrl управляет IK, кости arm_fk_ctrl, forearm_fk_ctrl, hand_fk_ctrl управляют FK-цепочкой. Аниматор видит оба набора контроллеров, но в зависимости от переключателя работает только один из них.
Pole Vector для IK колена/локтя — отдельный контроллер, который определяет направление изгиба конечности. Без него IK-решатель выбирает произвольное направление при определённых конфигурациях, и колено начинает «плясать». Правильное положение Pole Vector Target: на уровне сустава, вынесен по оси изгиба на расстояние, примерно равное длине конечности.
Реализация в Maya
В Maya IK/FK switch реализуется через Set Driven Key или через Node Editor с Blend Between. Чистый вариант: Utility Node blendColors принимает FK-матрицу и IK-матрицу, выход управляется атрибутом switch на контрольном объекте.
Snap IK to FK и FK to IK — критичная функция для удобства аниматора. При переключении режима контроллеры другого режима должны «прыгнуть» на текущую позицию, чтобы не было скачка в анимации. Реализуется через MEL/Python скрипт: считываем мировую матрицу текущего результата, применяем к контроллерам целевого режима, потом переключаем switch.
Контрольная система для пальцев
Пальцы — особый случай. Полные IK/FK переключатели для каждого пальца избыточны для большинства игровых ригов. Стандартное решение:
- FK-контроллеры для каждой фаланги (достаточно для анимации)
- Curl и Spread атрибуты на главном контрольном объекте кисти — вращают все фаланги одновременно через Set Driven Key
- Grip атрибут: 0 = открытая ладонь, 1 = сжатый кулак
Это даёт аниматору контроль над 90% нужных поз через 3 параметра вместо 45 вращений.
Space Switching
Продвинутая часть контрольной системы — смена пространства (Space Switch). Контроллер кисти может следовать за Root-пространством (абсолютная позиция в мире), за Pelvis (движется с персонажем), за Chest (следует за торсом). При анимации ходьбы с оружием в одной руке удобно работать в Pelvis-пространстве; при броске — переключиться на World.
В Blender: Child Of Constraint на контрольной кости с несколькими таргетами и Custom Property для управления. Важно: при переключении пространства позиция контроллера должна пересчитываться (Bake to Pose), иначе кость скачет.
В Unity при экспорте Space Switching не переносится — это инструмент аниматора, не игровые данные. Бейкируем анимацию в результирующие кости и экспортируем clean FBX без rig-контроллеров.
Сроки
| Задача | Ориентировочный срок |
|---|---|
| IK/FK switch для рук и ног (базовый) | от 4 до 8 часов |
| Полная контрольная система с Curl/Spread/Grip | от 1 до 2 дней |
| Space Switching для нескольких конечностей | от 1 до 2 дней |
| Полный аниматорский риг с UI-контроллерами | от 3 до 5 дней |
Контрольная система создаётся для аниматора — поэтому требования к ней лучше обсуждать с аниматором, а не только с техническим директором. Стоимость — после обсуждения пайплайна и требований к удобству управления.





