Узлы XPresso можно создавать, перетаскивая мышью объекты из окна Objects в открытый редактор XPresso Editor.
Все остальные узлы, необходимые для математических вычислений, можно найти в контекстном меню, которое открывается по щелчку правой кнопкой мыши в окне XPresso Editor.
Наверное, самый популярный узел - это Range Mapper, который был автоматически создан в нашем выражении (см. рис. 4.43).
Этот узел действует как математическое правило соотношения, что позволяет преобразовывать диапазоны значений. Например, движение объекта между координатами Y = 0..100 может быть преобразовано в угловой диапазон 50°..90°.
Для определения двух диапазонов значений просто воспользуйтесь параметрами Input и Output узла Range Mapper в окне Attributes. Здесь даже доступна сплайновая кривая, предназначенная для создания нелинейного преобразования (рис. 4.441
Рис. 4.44. Параметры узла Range Mapper
Применительно к нашему примеру со значениями позиции и угла поворота, эго означает, что в поля Input Lower и Input Upper необходимо ввести значения О и 100, а в поля Output Lower и Output Upper - значения 0,87 и 1,57.
Эти таинственные числа генерируются по умолчанию, и им соответствуют радианы, поскольку все углы в выражениях обозначаются именно в радианах.
Для преобразования градусов в радианы их необходимо умножить на число к и разделить на 180. Таким образом, 90° = 90x3,1415/ 180= 1,57 радиан.
Модификация выражений С помощью команд Set Driver/Set Dt ven мы связали локальные позиции объектов относительно оси Y, однако, в окне Attributes не видны глобальные значения.
В нашем случае выражение в любом случае будет работать правильно, поскольку системы координат для мяча (объект HyperNURBS) и деформатора Bulge (объект Sweep NURBS) размещены и ориентированы в трехмерном пространстве одинаково.
Для надежности необходимо перенести и глобальную позицию, чтобы задействованные объекты были независимы от своего положения в иерархии.
Удалите узел Range Mapper, шрлк-нув на его заголовке и нажав клавишу <Delete>. Затем удалите два порта в оставшихся узлах, дважды щелкнув на каждом из них мышью.
Для выходного порта узла Platonic и входного порта узла Bulge выберите параметр Global Position (рис. 4.45).
Рис. 4.45. Назначение параметра Global Poston
Соедините два новых порта с помощью мыши, чтобы активизировать вьре-жение (рис. 4.46).
Рис. 4.46. Два узла связаны
Настройка приоритетов Еще один аспект, за которым необходимо следить при работе с выражениями,- приоритетность вычислений. Важна, чтобы всегда использовались только актуальные данные, а не из предыдущего изображения анимации - особенно в тех случаях, когда данные анимационных объектов считываются и передаются другим объектам или параметрам.
Если в выражении должны использоваться текущие данные, то такое выра-жзнж может быть выполнено после визуализации анимации.
Хронологию вычислений определяет параметр Priority дескриптора XPress (рис. 4.47).
Рис. 4.47. Параметр Priority дескриптора XPress
Чем ниже в списке находится выделенный приоритет, тем позже будет вычислено выражение. Элемент Expression должен быть выбран приоритетным для вычислений хотя бы после считывания ключевых кадров.