Вторым примером может служит знаменитое устройство руки персонажа для переключения между прямой и инверсной кинематиками. Вместо одной руки (с каждой стороны, естественно) персонажу дается целых три. Первая содержит IK Handle и анимируется инверсной кинематикой, вторая анимируется прямой кинематикой, а третья никак не анимируется, а «болтается” между первыми двумя с помощью системы констрейнов. Именно третья рука несет на себе скининг, мышцы и остальные элементы. В те моменты когда для анимации нужна только прямая или только инверсная кинематика, веса устанавливаются соответствующим образом. Анимация весов, позволяет сделать переход от одного типа кинематики к другому плавным. Сейчас в MAYA имеются специальные средства для смешивания типов кинематики, однако такой подход универсален и применим не только к анимации рук или костей скелета.

На сегодняшний день MAYA обладает средствами смешивания разных типов анимации непосредственно на самом объекте, без привлечения вспомогательных ~болванок». Об этих средствах я поговорю позже. Однако переключение между анимированными управляющими объектами с помощью констрейнов по-прежнему является надежным методом «стыковки» анимаций.

Parent Constraint

Иногда возникает задача: временно «припарентить» один объект к другому, не меняя, однако, при этом существующей иерархии в сцене. Это может понадобиться для согласованной анимации родительского и подчиненного объекта, как единого целого.

В отличие от вышеперечисленных констрейнов, управляемый объект может иметь свои собственные перемещения и повороты, при этом он дополнительно наследует перемещения и повороты управляющего объекта. Он движется в точности так же, как объект, иерархически подчиненный своему родителю, однако никакой новой иерархии в сцене не появляется. Кроме того, при создании в Option Box можно задать, будет ли распространяться такое поведение на перемещения и на повороты или только на выбранные атрибуты. Для Parent Constraint опция Maintain Offset (сохранить смещение) по умолчанию включена, чтобы сохранить взаимное расположение объектов при создании констрейна, поэтому управляемый объект не «перескаивает» в новую позицию.

Внимание! Очень важно понимать одно существенное различие между Parent Constraint и операцией Edit=>Parent. Внешне результат «припарентивания» совершенно одинаковый. Однако в случае применения констрейна в Channel Box для подчиненного объекта будут высвечиваться абсолютные перемещения и вращения объекта. В случае обычного «припарентивания» эти координаты будут локальными (то есть относительно родительского объекта) и не будут меняться, когда родительский объект перемещается в пространстве.

Данный констрейн очень удобен, когда ваш персонаж хочет что-нибудь схватить или положить. В тот момент, когда надо что-то взять, нужный предмет следует прикрепить к руке с помощью Parent Constraint. Расстояние между предметом и рукой сохранится. Далее, следует проанимировать вес, чтобы до момента хватания он был равен нулю, а после - единице.

Aim Constraint


⇐ вернуться назад | | далее ⇒