Учебное занятие FK/IK (Forward Kinematik / Inverse Kinematik)

FK и IK являются общими понятиями персонажной анимации и означают два различных принципа анимации. FK (Forward Kinematik) означает, что каждый шарнир (например, для руки) нужно вращать сверху вниз по иерархии, пока рука не достигнет необходимой позиции. Это имеет некоторые преимущества для определённых этапов и частей анимации, но и вместе с этим, создаёт при этом определённые сложности. Как я сделаю это, что анимируемая рука должна достигнуть определённой точки цели, если я сначала должен переместить шарниры плеча, затем локтя и только затем кисти? Я достиг кисти и теперь меня не совсем устраивает положение локтя или плеча. Я изменяю снова положение плеча или локтя и что это такое?? Теперь кисть, которую я установил в правильном положении, изменяет своё положение таким образом, что мне необходимо снова изменять положение всей иерархии!

Естественно это было бы проще и лучше, если бы я мог перемещать непосредственно кисть персонажа и при этом вся имеющая иерархия просто повторяла бы эти движения.

Для этого и существует IK (Inverse Kinematik). Вместо перемещения и вращения отдельных суставов (для избежание недоразумений: Речь при этом идёт о легальных субстанциях! ;), имеются так называемые „Грифы", которые располагаются вблизи кисти и обеспечивают возможность перемещения всей иерархии IK-Цепи.

Мы намерены для нашей черепахи создать такую IK-Цепь, для возможности создания анимации руки с присвоенными при этом нами для неё значениями взвешивания, посредством IK. Откройте теперь файл „Turtle_IK.c4d". Если у вас нет его, вы можете применять персонаж из последней главы нашего занятия.

Дополнительное облегчение версии MOCCA 3 является быстрое создание IK. Вы выделяете при этом необходимые суставы и выбираете инструмент „Создать IK-Цепь". При этом рука может быть перемещена посредством IK!!! Автоматически исключается необходимость (как это было ранее) назначения целей и позиций для вершин \ корня и всех, соответствующих для этого атрибутов. Действительно только 2 (в нашем случае с рукой) шага и вы можете начинать анимацию.

Приступим! Выделите с нажатой клавишей Ctrl/Strg-Taste суставы „плечо", „кисть" и „Объект Шарнир.3". Кликните с нажатой клавишей Ctrl/Strg-Taste на функцию „Персонаж/IK-Цепь создание". Для начала мы всё создали! Ваш менеджер объектов должен теперь выглядеть следующим образом.

Прежде чем мы продолжим работу, вам необходимо установить перспективу в окне редактора на центральную. При этом мы можем видеть руки не только в 2 вариантах (Камеры / Центральная перспектива).

В менеджере объектов, на верхней позиции при этом будут созданы объекты „Шарнир-Объект.3.Цель"

и „Рука.Цель".

Выделите их по очереди (Ctrl / Strg) проверьте, что функция „Правка модели" на левой панели команд, программы  CINEMA  4D  является  активной.  Выделите  на  верхней  панели   программы   функцию перемещения, выберите наиболее подходящую перспективу и попробуйте переместить ось объекта в окне редактора. Кисть при этом будет перемещаться, но вся  иерархия,  как и следовало ожидать, будет следовать за этим движением. На первый взгляд и вид неплохой результат. Но если мы более подробно рассмотрим процесс перемещения, то  определённо заметим, что существует нежелательное скручивание суставов плеча и кисти.

Это мы можем устранить посредством, так называемых „Поль Векторов". Он предназначен для стабилизации поворота IK-Цепи. Выделите для этого IK-Тег, справа от сустава плеча и кликните справа внизу, в менеджере атрибутов на функцию „Поль Вектор".

В менеджере объектов при этом будет создан дополнительный объект с названием „плечо.Поль Вектор".

Он находится на одинаковой ступени иерархии с суставом „плечо". Выделите его и перетащите в окне редактора немного вниз и в глубину по отношению к черепахе.

Выделите теперь оба грифа „Сустав-Объект.3.Цель" и „кисть.Цель". Попробуйте переместить руку и вы определённо заметите, что она ведёт себя при этом абсолютно правильно. Для более лучшей деформации, естественно необходимо тонкая настройка значений взвешивания, но в рамках этого учебного занятия, этот результат нас вполне устраивает.

Возможно, вы определите при этом, что посредством перемещения Поль вектора, вся геометрия руки была повёрнута (в зависимости от того, где она была расположена), и поверхность ладони персонажа, также имеет неверное направление. Кроме этого, Поль вектор был бы оптимальным образом размещён, если бы он находился позади сгиба локтевого сустава, не отвесно сзади. Мы намерены это изменить сейчас, посредством пары дополнительных манипуляций. В оптимальном случае, вам необходимо предварительно произвести законченное моделирование вашего персонажа, и лишь затем использовать функцию „Связать“, которая производит взаимную фиксацию полигонального каркаса персонажа с его костной оснасткой, используя для этого объект Скин.

При отключении объекта Скин, вы не должны производить дополнительное перемещение частей полигонального каркаса модели. Это означает, что при установке активным объекта Скин, для каркаса модели будет создана определённая деформация.

Но иногда бывают случаи, когда деформация посредством перемещения контрольных объектов является просто необходимой. Для пробы произведите отключение объекта Скин. мы гарантируем, что карккас при этом будет смещён по отношению к костной оснастке персонажа. Устранить это вы можете за пару дополнительных манипуляций. Оставьте Скин объект отключенным. Произведите перемещение Поль вектора снова в направлении Y, пока он не будет находиться на одинаковой с локтём высоте (при просмотре спереди). Вы определённо установите, что Joints изменяют свою позицию, но каркас модели при этом остаётся без изменения. К сожалению наши Joints имеют сейчас неверную позицию, и являются видимыми за пределами полигонального каркаса. Вы можете изменить это посредством выделения обоих объектов „Joint-Objесt.3.Ziel“ и „hand.Ziel“ и переместите их незначительно вперёд и вниз.

Посмотрите на модель, используя для этого различные перспективы, что позволит вам определить точное положение Joints в пределах геометрии полигонального каркаса. Кликните сейчас на тег веса, справа от названия каркаса „body“ и используйте затем закладку „Joints“. Здесь вы производите выделение всех трёх Joints и затем используете участок тега „Tag“.

Кликните здесь на кнопку „Определить позу оригинал“. После этого установите активным объект Скин Вы определённо заметите, что наш каркас при этом не изменяет своей позиции и Поль вектор при этом расположен позади „elbow-joint“, как мы этого и хотели.

Ещё один совет. Суставы версии R10 и соответственно R11, значительно быстрее, чем ранние MoccaBone, что естественно не может не обрадовать людей, занимающихся анимацией. Показ деформации в окне редактора при этом может быть ещё укорен, если вы для объекта оболочки (мы надеемся, вы ещё не забыли? Это объект, который выполняет деформацию вместо суставов и расположен как подобъект для каркаса деформации) на закладке „Объект" для „Тип" установите метод просчёта как „Линейный". Этот деформационный алгоритм будет просчитан более быстро но предоставляет деформацию не так корректно как это выполняет„Сферический". При этом алгоритм „Сферический" пытается препятствовать смятию или скручиванию геометрии и приводит к  более  лучшим результатам. При проведении процесса Рендеринга просто не забывайте снова установить процесс просчёта на „Сферический" для получения наиболее оптимальных результатов.

Источник: Cinema 4D R11, Техническая документация Быстрый старт, MAXON Computer GmbH, 2008 г.

По теме:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий