Проделаем быстро простой пример, чтобы понять смысл операции Set Driven Key.
Интеллектуальный шлагбаум Откройте файл drivenKey_start.ma. Если вам посчастливилось скачать эту книгу из Интернета, изготовьте цилиндрический паровоз и кубический шлагбаум. Рельсы носят декоративный характер.
Как известно, любой добропорядочный шлагбаум при приближении паровоза тут же опускается и перекрывает движение автомобилей по дороге. После удаления адской машины на безопасное расстояние шлагбаум автоматически поднимается и остается в таком положении, до следующего паровоза.
Зададим связь между положением паровоза и движением шлагбаума с помощью операции Set Driven Key.
Коль скоро управляемым будет шлагбаум, то есть на его атрибутах rotate будут «висеть» какие-то управляющие связи, надо выбрать его (объект bar), а затем выделить в Channel Box атрибут rotateX и в меню по правой кнопке выбрать Set Driven Key.
Откроется окно Set Driven Key, позволяющее задавать зависимость между управляющим объектом и выделенным атрибутом bar. rotateX.
Это окно напоминает отдаленно Connection Editor, только ориентированный вертикально. В нижней части отображаются атрибуты управляемого (или ведомого, driven) объекта. В верхней панели должен находиться управляющий (ведущий, driver) объект.
В нашем случае управляющим объектом будет parovoz, а управляющим атрибутом будет translateZ. Ведь положение шлагбаума должно зависеть от перемещения паровоза по оси Z.
Чтобы загрузить паровоз в верхнюю Driver-панель, выберите его и нажмите кнопку Load Driver в окне Set Driven Key.
Теперь обязательно выберите атрибут translateZ в верхней панели, чтобы определить его как управляющий.
Не помешает удостовериться, что в нижней Driven-панели атрибут rotateX объекта bar также выбран.
Теперь начинается самое интересное.
Отведите паровоз на безопасное расстояние, то есть туда, где шлагбаум будет еще открыт. Откройте шлагбаум на адекватный, с вашей точки зрения, угол. Нажмите кнопку Key.
Внимание! В тот момент, когда вы нажали кнопку Key, вы создали связь-условие типа -если паровоз находится в таком-то месте, то шлагбаум должен быть повернут на такой то угол».
В терминах MAYA эта связь формулируется как «если атрибут parovoz. translateZ равен -18, то атрибут bar. rotateX равен 80». К сожалению, никаких индикаторов или маркеров, свидетельствующих об этом, не появляется, так что вам надо просто помнить о том, где и когда вы уже поставили Driven Key.
Теперь передвиньте паровоз туда, где шлагбаум уже должен быть закрыт, а затем опустите шлагбаум. И снова нажмите кнопку Key.
Внимание! Сначала надо изменять управляющий объект, а затем управляемый. Это важно.
«Поелозьте» паровозом по рельсам. Шлагбаум должен в панике закрываться при приближении паровоза. «Поелозьте» также мышкой по временной линейке. Убедитесь, что никакой анимации нет и в помине. Все, что вы сделали, это установили связь между паровозом и шлагбаумом.
Примечание. Название кнопки Key катастрофически дезинформирует начинающих пользователей. Нажимая ее, они бессознательно ожидают появления анимации в сцене и с удивлением взирают на временную линейку, где не появляется ни одного ключа. С моей точки зрения более адекватным названием для кнопки было бы Set или Connect.