C* PteseU
-ЭТИГД-1 и IH.4J-1111 WJ-prTJTORotate Oidei | хуг - |
RotateA*a |0000 |0 000 |0 000
P Inherits Traniform | Attn Constraint Attributes
Г Lock Output Offset |0 000 |0000 |o000
Am Vectoi (TOOO |o 000 |o 000
Up Vectoi |0 000 |1 000 |0 000
Wald Up Type | Obiect Up
I-1 I
Wodd Up Obiect [upLcc
Comtiart Rotate fo 000 |o 000 114 268
Comtiart Vectoi 116 418 [4175 fo 000
Теперь синий вал развернется своей «поперечной» осью Y в направлении локатора UpLoc. Чтобы убедиться в этом окончательно, а заодно заставить локатор UpLoc вращаться вместе с красным валом, перетащите этот локатор в Outliner средней кнопкой мыши и «бросьте» его на красный вал VAL1.
Это сделает красный вал «родителем» для локатора UpLoc.

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

Сохраните сцену (kardan03.ma).
Первое, что нужно сделать, это прибить крестовину к центру соединения, а точнее к красному валу с помощью Point Constrain.
Выберите красный вал, затем крестовину и выполните Constrain=>Point.
Теперь надо развернуть крестовину так, чтобы она смотрела одной осью в направлении отверстия на скобе красного вала, а второй осью на отверстие на скобе синего.
Локатор в отверстии скобы красного вала уже имеется, поэтому выберите его (UpLoc), затем крестовину и выполните Constrain=>Aim.
Крестовина развернется в сторону локатора, но не осью, а «плоскостью». Очевидно, надо установить локальную ось для «прицеливания» в атрибутах констрейна.
Выберите крестовину.
В Attribute Editor, в закладке krestovina_aimConstraint1, задайте Aim Vector = (0, 0,1), чтобы крестовина развернулась с сторону локатора UpLoc своей локальной осью Z.

Для разворота второй оси крестовины, воспользуемся тем же трюком, что и для ориентации синего вала. Создайте еще один локатор. Назовите его DownLoc. Переместите его в центр отверстия скобы синего локатора.
Не забудьте также «припарентить» его к синему валу, перетащив его средней кнопкой мыши в нужное место в Outliner.

Выберите крестовину, в Attribute Editor перейдите в закладку VAL2_aimConstraint1 и сначала измените тип ориентации Word Up Type=Object Up.
Впишите имя DownLoc в поле World Up Object.
После этого крестовина развернется своей второй осью - локальной осью Y, указанной в атрибуте Up Vector как (0,1,0) - в сторону локатора DownLoc.

Проиграйте анимацию. Измените взаимное расположение локаторов.
Сохраните сцену как kardanFinal.ma.
Подумайте: как бы вы смогли выкрутиться в данной ситуации без помощи констрейнов?..
Процедурная анимация. Крепкие выражения. Expressions
В этом разделе речь пойдет еще об одних «посредниках» между объектом и временем. Они называются expressions и предназначены для использования процедурной анимации. Когда вы слышите модное выражение «процедурная анимация», не пугайтесь, ведь речь идет всего лишь о том, что объект анимируется не по ключам, а с помощью формул, как правило весьма незамысловатых, но довольно полезных.