lambertl. colorR = O.TmyObject.scalY; if {lambertl .colorR>0.9) lambertl .colorR=0.9; if {lambertl .colorR<0.1) lambertl .colorR=0.1; В-третьих, для каждого канала цвета надо будет подбирать свои коэффициенты, причем вслепую. Соответствующий expression превратится в месиво цифр:
lambertl .colorR = O.TmyObject.scalY; if (lambertl .colorR>0.9) lambertl. colorR=0.9; if (lambertl .colorR<0.1) lambertl ,colorR=0.1; lambertl .colorG = 0.01*myObject.scalY; if(lambert1 .colorG>0.2) lambertl .colorR=0.2; if(lambert1 .colorG<0.01) lambertl .colorR=0.01; lambertl .colorB = 0.015*myObject.scalY; if(lambert1 .colorB>0.3) lambertl .colorR=0.3; if (lambertl. colorB <0.02) lambertl ,colorR=0.02; Говорить о наглядности и уж тем более об интерактивности, согласитесь, в данном случае не приходится.
Ну, ив-четвертых, как быть, если мы захотим, чтобы цвет менялся не прямо пропорционально размеру, а более сложным, нелинейным образом, типа: «медленно при малых значениях размера и быстро при больших»?
Приведенная ситуация - типичный пример, когда выбранное средство (expression) хоть и способно решить задачу, однако явно неэффективно и будет сильно тормозить производственный процесс.
Часто встречается ситуация, когда связь между атрибутами объектов описывается в терминах типа «если один объект находится в состоянии (положении, вращении и т.д.) А1, то второй объект должен быть в состоянии В1, а если первый объект будет в состоянии А2, то второй должен перейти в состоянии В2, и так далее». Такая связь плохо реализуется с помощью expressions, но для ее описания идеально подходит операция Set Driven Key.
Идея технологии Driven Key заключается в следующем. Когда вы ставите обычные ключи на атрибуты объекта, возникает анимационная кривая, определяющая зависимость атрибута от времени. С помощью операции Set Driven Key можно ставить на атрибут ключи, определяющие зависимость этого атрибута не от времени, а от другого атрибута. Такие «особые» (driven) ключи также порождают анимационную кривую, у которой на горизонтальной оси в Graph Editor отображаются не кадры или секунды, а атрибуты управляющего объекта. В дереве зависимостей такая анимационная кривая располагается не между объектом и временем, а между управляемым и управляющим объектами.
Другими словами, можно сказать, что операция Set Driven Key позволяет определить не -прямую- связь между атрибутами (как в Connection Editor), а допускает задание произвольной зависимости между атрибутами, график которой определяется анимационной кривой.
Несмотря на использование термина «ключ» (Key), никакой зависимости от времени в ходе применения этой операции не возникает. Равно как и никакой анимации. Возникает лишь зависимость между атрибутами объектов, не более того. Я советую рассматривать ключи и анимационные кривые, созданные с помощью Set Driven Key, как своего рода expressions, связывающие атрибуты объектов.
Терминологический комментарий. Переводить команду Set Driven Key словами, вроде «установить управляемый ключ», я, как вы понимаете, не собираюсь. И вообще не собираюсь как-либо «переводить» этот термин. Закоренелые майщики, как нетрудно догадаться, употребляют прямолинейные выражения типа «этот сетап сделан дривен кеями» и прекрасно понимают друг друга. Я лишь упомяну о том, что driven в переводе с компьютерного означает «управляемый». Также замечу, что применительно к операции Set Driven Key, оперирующей такими терминами, как driver и driven, очень хорошо подходит понятийная связка «ведущий-ведомый».