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

Патч и маршрутизация

Патч хранится в таблице, а всё остальное строится из неё: адреса, профили, координаты, группы. Скрипт автоадресации, сверка с пультом и сеть из таблицы.

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

Патч держат в таблице, а не в параметрах узлов, и всё остальное строится из неё само.

id        type      universe  address  mode  x     y     z     rot
wash_01   wash_rgbw 1         1        4ch   -4.0  5.0   2.0   0
wash_02   wash_rgbw 1         5        4ch   -2.0  5.0   2.0   0
wash_03   wash_rgbw 1         9        4ch    0.0  5.0   2.0   0
beam_sl   beam_16   2         1        16ch  -6.0  6.5   0.0   0
beam_sr   beam_16   2         17       16ch   6.0  6.5   0.0   0
strip_01  pixel_60  10        1        rgb    0.0  0.0   0.0   0

CSV рядом с проектом правят в любой электронной таблице, а читает его Table DAT: путь в File, Load on Start перечитывает при запуске, Sync to File держит DAT и файл одинаковыми в обе стороны, DAT.

Без Sync to File или Write on Toe Save скрипт правит только копию таблицы в проекте.

Из таблицы Куда
universe, address Маршрутизация — Format и таблица
type, mode Профиль — Профиль
x, y, z Эффекты по геометрии, наведение, превью
id Имена каналов и групп
Число строк Число приборов — POP или репликатор

Адреса руками — источник ошибок, их считает скрипт; footprint() — ваша функция с числом каналов профиля:

t = op('fixtures')
addr, uni = 1, 1
for i in range(1, t.numRows):
    fp = footprint(t[i, 'type'].val)
    if addr + fp - 1 > 512:      # прибор не влезает — в следующий юниверс
        uni += 1
        addr = 1
    t[i, 'universe'] = uni
    t[i, 'address'] = addr
    addr += fp

Описываете, что и в каком порядке, а адреса появляются сами; вставили прибор в середину — пересчиталось всё.

Автоадресация и реальность

На площадке приборы уже заадресованы, и не вами. Нужны два режима: «посчитать адреса» для проектирования и «читать из таблицы» для работы.

group      members
front      wash_01 wash_02 wash_03
back       wash_04 wash_05
beams      beam_sl beam_sr
all_wash   wash_*

Вторая таблица — группы, и Select CHOP по шаблону собирает их каналы, Constant, Math, Limit. В логике шоу оперируют группами, а не приборами.

Если на площадке есть консоль, патч должен совпадать с её патчем, иначе свет пойдёт не туда.

Берут у художника по свету выгрузку патча, CSV или бумагу, приводят к своей таблице, сверяют построчно юниверс, адрес, тип и режим — и проверяют руками: включили прибор из TouchDesigner, загорелся ожидаемый. Последнее обязательно, совпадение таблиц ещё не значит, что на ферме висит тот прибор.

Сеть из таблицы строит Replicator COMP, по компоненту на строку, Репликатор. С ветки 2025.30000 приборы можно задать примитивами POP одного DMX Fixture POP, и репликатор не нужен.

Таблица — вместе с проектом

CSV рядом с .toe, в системе контроля версий, с датой в имени — единственный документ, который останется на объекте, когда вы уйдёте.

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

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