К содержанию
fohbookбета/ TouchDesigner

Свои компоненты и параметры

Customize Component превращает кусок сети в блок с тремя понятными ручками. Типы параметров, шесть правил переиспользуемого компонента и ярлыки вместо путей.

Ветка вашего пульта:
Быстрый выбор:

Компонент со своими параметрами — главная единица большого проекта: снаружи три понятные ручки, внутри сколько угодно узлов.

Кусок сети выделяют и сворачивают через RMB по пустому месту → Collapse Selected, получается Base COMP. RMB по нему → Customize Component открывает редактор, где добавляют страницу и параметры с именем, типом, диапазоном и значением по умолчанию; страница появляется на панели параметров. Внутри на них ссылаются parent().par.Имя, а если задать компоненту Parent Shortcut, то parent.Effect.par.Имя с любой глубины. Имена своих параметров пишутся с большой буквы — так TouchDesigner отличает их от встроенных.

Тип Для чего
Float / Int Числовые настройки
Toggle Включатель
Pulse Действие: сброс, перезапуск, «применить»
Menu / StrMenu Выбор из вариантов; список задаётся или строится скриптом
Str Имена, тексты, шаблоны
File / Folder Пути; кнопка выбора появляется сама
OP, COMP, TOP, CHOP и другие Ссылка на оператор — так компонент получает вход
RGB / RGBA Цвет
XY / XYZ / WH Векторы и размеры
Header Подпись-разделитель на странице
Sequence Повторяющийся блок параметров: «добавить ещё один слой»

Чтобы им пользовались

Внутри никаких абсолютных путей: parent(), me, относительные пути, ярлыки и параметры типа OP (Ссылки). Всё, что настраивается, вынесено параметром — если приходится заходить внутрь, компонент не готов. Где можно, один вход и один выход: In и Out делают компонент обычным узлом цепочки. Значения по умолчанию разумные, и компонент работает сразу после создания. Вместо ковыряния внутри — методы (Extensions). А имя параметра — это API: переименуете, и сломается всё, что на него опиралось.

На странице Common у компонента есть список Internal OP — имя и путь к узлу внутри. Назовите конфигурационный узел Settings, и внутри компонента везде пишется iop.Settings, а переименования и перестановки ссылки больше не ломают — Компоненты.

Панель

Container COMP с кнопками, слайдерами и полями — тоже компонент. Button, Slider и Field отдают значения в Panel CHOP или вызывают Panel Execute, а Parameter COMP встраивает в панель настоящие параметры любого узла. Так собирают интерфейс оператора, который потом стоит в перформ-окне рядом с картинкой.

Проверка через год

Создайте компонент в пустом проекте и попробуйте работать с ним, не заходя внутрь. Получилось — готов. Пришлось лезть внутрь — доделайте параметры.

Клон переписывает содержимое

Правки внутри клона пропадут при синхронизации с мастером. Настройки клона хранятся в его параметрах — Флаги.

Нашли в статье ошибку, устаревшее или непонятное место?

рядом по смыслу