XPresso-выражение приведено на рис. 8.120
Идея заключается в том, что на порт ввода узла L_Leg (левая нога) заводится сигнал длительностью, в данном случае, 3 с (по умолчанию длительность анимации 3 с на 90 кадров). Причем первую половину этого времени сигнал положительный, а вторую - отрицательный. В результате в первую половину времени нога будет двигаться назад, а во вторую - вперед. Чтобы сформировать такой сигнал, используем тригонометрическую функцию Sin(). Для этого на рис. 8.121 предусмотрен узел Trigonometric, в окне менеджера атрибутов которого выбрана функция Sin (рис. 8.121).
Если на порт ввода Value узла Trigonometric подать сигнал с порта вывода узла Time, который выдает текущее время анимации,
то это значение будет использовано как аргумент функции Sin. Однако его будет недостаточно, чтобы сформировать отрицательный полупериод для Sin.
Действительно, максимальное значение параметра Time равно 3. В функции Sin это значение будет воспринято как 3 радиана, что меньше 180° (число Пи, равное 3.14, соответствует 180°), а в полупериоде 0 - 180° Sin положительный.
Чтобы увеличить значение параметра, подаваемого на вход Value узла Trigonometric, между узлами Time и Trigonometric предусмотрен узел MathMultiply на два входа. Узел MathMultiply создается из узла MathAdd, для которого в списке Function окна менеджера атрибутов выбрана арифметическая операция Multiply (рис. 8.122). На порт Input (1) от узла Time заводится текущее время анимации, а на порт ввода Input (2) задаем значение коэффициента, на который будет умножен сигнал порта Input (1). Если умножить на 2, то есть получить значение аргумента от 0 до 6, то Sin сможет сформировать положительный и отрицательный полупериоды. В поле Input (2) окна менеджера атрибутов вводим 2 (рис. 8.122).
Запустите анимацию и убедитесь, что левая нога движется, как планировалось. На рис. 8.123 приведены кадры 35 и 70.
Узел VectorToMatrix
Позволяет преобразовывать вектор в матрицу Вектор можно задать в полях параметра Input (рис. 8.124).
Чтобы увидеть результат преобразования этого вектора в матрицу, подключите узел Result, установив его тип данных Vector (рис. 8.125).
8.2.5. Группа Logic
Группа содержит узлы, выполняющие логические операции. Перечень узлов приведен на рис. 8.126.
Узел Compare
Позволяет сравнивать два параметра между собой. Параметры могут быть цветом, материалом, числами целого и действительного типа, векторами, временем, текстовой строкой. Тип данных окна менеджера атрибутов приведен на рис. 8.127.
Значения параметров можно заводить с других узлов или задавать в полях Ввод 1 и Ввод 2 группы Параметр (рис. 8.124).
Функция сравнения выбирается из списка Функция, где приведены знаки отношения, смысл которых очевиден, кроме знака != не равно (рис. 8.128).
Слева от знака сравнения предполагается информация с порта Ввод 1, справа - информация с порта Ввод 2.
Результатом проверки будет информация логического типа: 1, если условие проверки выполняется (Истина,True), и 0, если условие не выполняется (Ложь, False).