dagPose -reset -name bindPosel; Обратите внимание на то, что имя bindPose-ноды (в конце команды) может меняться: bindPose2, bindPose3 и т.д. Это происходит потому, что MAYA создает новую bindPose-ноду всякий раз, когда вы привязываете геометрию к разным скелетным «цепочкам», или в случае изменения в уже существующей цепочке, например, при добавлении новых костей в имеющийся скелет.
Дополнительные кости и раскладывание вращения на сгиб и скручивание для корректного скининга Так исторически сложилось, что в результате некоторых автоматизируемых действий в MAYA мы получаем сложное вращение суставов сразу по трем осям. К этим действиям относятся решение IK солвера и результат работы Orient, Aim и Parent Constraints. Всем хорошо известно, что при создании простого! К руки мы получаем сразу два таких сустава: предплечье и запястье. Именно в этих местах скининг ведет себя наиболее омерзительно, скручивая поверхность персонажа в точку.
Правильным решением этой проблемы будет разбиение сложного «Ьа11»-вращения на два простых. А именно, на направляющее (aim) и скручивающее (twist). Это даст нам возможность, во-первых, сделать более корректный скининг, а во-вторых, использовать полученный «скручивающий» twist-угол для последующего использования в деформациях персонажа. Ведь такие проблемы встречаются не только в руках и ногах, но в позвоночнике, длинной шее и прочих костных цепочках.
Причем абсолютно неправильно пытаться разделить вращение путем соединения отдельных атрибутов rotate с соответствующими атрибутами других объектов типа кубиков на запястьях, как описано в некоторых методиках. Потому что внутренняя математика MAYA временами выдает такие углы, которые не поддаются такому простому разделению. Что, в свою очередь, приводит к еще худшим последствиям.
Откройте файл conversion_ball_rotation_01 .та.
В этом примере вращение двух костей aim_joint и twist_joint будет согласовано с вращением кости balLjoint зеленого цвета.
Чтобы было нагляднее демонстрировать пример, кость balljoint анимирована от первого до 25-го кадра, так, чтобы ее вращение было сразу по трем осям.
Для того, чтобы повернуть кость aim_joint без учета twist-вращения, так чтобы ее направление совпало с направлением кости ball_joint, мы воспользуемся Aim Constraint. В качестве «цели» выступит сустав target_joint.
Итак, выделяем targetjoint и aim_joint и вызываем Option Box операции Constraints=> Aim из раздела Animation.
Так как у нас кости были построены вдоль оси Y, в параметрах указываем Aim Vector = 0, 1, О и Up Vector = О, 0, 1. Если вы ошиблись со значениями параметров при создании Constraint - не страшно, их можно всегда исправить после, с помощью Attribute Editor.
Затем выберите кости balljoint и twistjoint, и вызовите Constraint => Orient. Этот Constraint согласует ориентацию этих костей.
Переключите порядок вращения в кости twistjoint с XYZ на XZY, если хотите, чтобы twist-угол рассчитывался в «человеческих» единицах (в диапазоне от -180 до 180 градусов). Порядок вращения нужно выбирать таким, чтобы ось, по которой, собственно, будет происходить вращение, была последней. В нашем случае, это ось Y. Это поможет Orient Constraint при вычислении ориентации сделать оптимальное решение.