Также я советую раз и навсегда включить отображение длинных (Long) имен атрибутов в Channel Box. По непонятной мне причине, по умолчанию включен режим отображения «красивых» (Nice) имен, и это явно дезинформирует пользователя относительно правильного написания названий атрибутов. В этом режиме в именах атрибутов появляются пробелы и все имена начинаются с большой буквы, что не соответствует истине.

Зная имена атрибутов, вы можете складывать, вычитать, перемножать и делить значения этих атрибутов с помощью общепринятых знаков. Использование скобок и наиболее употребительных функций типа rand, noise, sin и cos не должно вызвать у вас затруднений. Нижеследующие примеры должны развеять страх перед написанием несложных формул.

Единственное, о чем стоит помнить всегда, это то, что в конце каждой строки, (а точнее в конце каждой MEL-команды) необходимо ставить точку с запятой.

pCubel ,tx=(pTorus1.tx+ pTorus2.tx)/2;

pCubel .tz=(pTorus1 .tz+ pTorus2.tz)/2; Если в одной строчке не помещается вся команда, можно без проблем перенести ее на другую строчку.

pCubel. ty=(pTorus1.ty+pTorus2.ty+pTorus3.ty

+pTorus4. ty+pTorus5. ty) / 5.0; Следует лишь помнить: точка с запятой отделяет одну команду от другой.

По поводу работы с переменными вы можете подробнее прочесть в главе про MEL, здесь я лишь отмечу, что результаты любых вычислений (обычно промежуточных) могут храниться в переменных, имена которых начинаются со знака $.

$rot = pCubel.гу/180*3.14;

pCube2.ry = sin($rot); Кроме того, специально для использования в expressions имеются две специальные переменные для работы со временем. Они называются time и frame и обозначают текущее время в секундах и в кадрах, соответственно.

В этой главе нам еще понадобятся условные операторы, но их использование я проиллюстрирую на конкретных примерах.

Прежде чем перейти к практическим примерам использования expressions, я немного остановлюсь на разнице между expressions и скриптами, о которых все, без сомнения, наслышаны. И те и другие пишутся на языке MEL, но служат несколько разным целям.

Разница между скриптами и expressions. Порядок выполнения expressions

Майский скрипт - это набор команд на языке MEL, который выполняется по вашему требованию, то есть когда вы сами его запустите. Хранится он, как правило, на диске в виде текстового файла и не является частью сцены.

Expression - это тоже набор команд. Но во-первых, эти команды хранятся в виде объекта и являются частью сцены, то есть хранятся внутри нее. А во-вторых, эти команды выполняются не по вашему желанию, а, вообще говоря, при смене номера кадра при анимации. Каждый раз, когда происходит переход к следующему кадру (или когда вы в очередной раз неловко ткнули мышкой в TimeLine), выполняются все незаблокированные expressions, присутствующие в сцене. Также выполнение expressions происходит с том случае, когда один из объектов, чьи атрибуты используются в expression, изменяет значение этих атрибутов.

Таким образом, если вы проиграли двести кадров анимации, все expressions, созданные в сцене, выполнятся по двести раз. Поэтому expressions используются, как правило, не для интенсивных расчетов и вычислений, а для задания логических связей между объектами (точнее говоря, между атрибутами объектов).


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