Урок по touchdesigner - Обработка событий с помощью триггеров - Триггеры часть 2
Содержание материала
Вот мы и закончили создание базового персонажа. Поднимемся на уровень выше и попробуем подключить что-нибудь к узлу Void COMP. Тогда на выходе Void COMP должно появиться изображение персонажа на заданном фоне.
Создав цепочку из узлов Void COMP, можно вывести несколько персонажей на фоне:
Упражнение на настройку персонажа
Используя созданный нами узел Void COMP:
1. Добавьте один или несколько входов к узлу Void COMP для управления прозрачностью персонажа. (Подсказка: добавьте узел Level TOP и свяжите его выход с параметром Opacity)
2. Настройте клавиши 2, 4, 6, 8 для управления перемещением персонажа влево, вправо, вверх и вниз. (Подсказка: используйте узел Speed CHOP для накопления смещения по x и y в положительную и отрицательную стороны; используйте узел Math CHOP для сложения двух каналов).
На картинке выше показан узел Combine CHOP, используемый для сложения каналов. На вход он получает смещение по x в плюс и в минус, а на выходе выдаёт результирующее смещение по х.
Использование триггеров для управления пользовательским интерфейсом
Триггеры можно использовать для создания «живого» пользовательского интерфейса. С их помощью можно управлять расположением элементов интерфейса. Рассмотрим простой пример.
Создадим узел Container COMP. Зайдём внутрь него и создадим 4 слайдера, для этого используем SliderScratchV из библиотеки компонентов:
[X=0 X=64 X=128 X=192]
Поднимемся на уровень выше и зададим параметру Fit узла Container значение Fit Width.
Откройте окно просмотра проекта. Поменяйте параметр Width узла Container. Вы увидите, что у всех 4 слайдеров положение ползунков выставилось в соответствии со значением параметра Width. В следующем упражнении вы будете использовать триггер для управления параметром Width.
Упражнение на использование триггеров в пользовательском интерфейсе
Настройте созданный нами узел Container COMP на использование клавиши “z” для передвижения ползунка слайдера от 0 до 300, и клавиши “x” для передвижения ползунка слайдера обратно от 300 до 0.
Ещё несколько слов о триггерах
Вместо узла Trigger CHOP для запуска обработки события можно использовать узел Copy CHOP. У него два входа: вход-активатор и канал с сигналом. Когда на вход-активатор поступает «1», сигнал из второго входа копируется на выход узла.
Если на второй вход подать наклонный сигнал (как в самом первом примере), то этот узел будет работать так же, как триггер. Область использование узла Copy CHOP шире, чем узла Trigger CHOP, так как в качестве сигнала можно использовать не только простые формы. Например, у нас есть сфера и мы хотим изменять её. Создадим цепочку узлов Sphere SOP, Carve SOP и Twist SOP. Узел Carve SOP используется для обрезки сферы (параметры First V= 0.4 и Second V= 1). Узел Twist SOP используется для сжатия и растяжения сферы (параметр Primary Axis = Y axis).
Для управления параметром Strength узла Twist SOP будем использовать выход узла Wave CHOP:
У большинства узлов длина канала настраивается на вкладке Common. Например, для установки длины канала равной 1 секунде надо задать параметры как на картинке ниже:
Для управления сжатием и растяжением сферы можно использовать синусоиду.
Или - белый шум, используя узел Noise CHOP:
Интереснее всего использовать различные формы входного сигнала для узла Copy CHOP. Для этого внутри узла надо создать переменную на вкладке Variables.
Значение переменной может быть любым. Но лучше, если оно будет разным при каждой активации узла. Например, можно использовать текущий номер фрейма $F:
Затем для параметра Seed узла Noise CHOP зададим выражение param( “variable name”, значение по умолчанию).
Так параметр Seed получит значение $F (номер текущего фрейма) при активации узла Copy CHOP. Его значение будет разным в разные моменты времени, так на выходе Noise CHOP каждый раз разные значения.