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

Шоу по таймкоду

Шоу под фонограмму: LTC на входе, плееры, которые сами встают по таймкоду, события таблицей, решения на обрыв и скачок, и репетиция без площадки.

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

В шоу под фонограмму свет, видео и звук идут по одному времени, а TouchDesigner здесь только принимает его.

источник таймкода ──▶ audio device in ──▶ ltc in ──▶ timecode ──▶ null_tc
                                                                     │
                                          таблица событий ◀──────────┤
                                          плееры (Play Mode: Timecode) ◀┘

Таймкод приходит звуком на вход карты, LTC In CHOP его разбирает, с Discrete Channels — каналами hour, minute, second, frame (Таймкод), Timecode CHOP приводит к удобному виду. Из этого времени считается всё: кадр видео, сцена, параметры.

Видео ставят на место по времени. Movie File In в Play Mode = Timecode Object/CHOP/DAT берёт CHOP с теми же четырьмя каналами и сам встаёт на кадр, а Timecode Mode решает, считать от начала ролика или по таймкоду внутри файла, Movie File In. За час шоу видео не уплывает и после перемотки встаёт куда надо. Ролик начинается не с нуля — его старт вычитают в Timecode CHOP или Math CHOP перед плеером.

События — таблицей, а не кодом:

tc            action        arg
00:01:12:00   scene         intro
00:02:44:12   flash         1.0
00:03:20:00   scene         chorus
00:05:01:00   blackout      -

CHOP Execute DAT на канале кадров срабатывает с каждым его изменением, сверяет время с таблицей и делает, что пора, Скрипты и колбэки. Таблицу правят на репетиции, не заходя в сеть, DAT.

Обрыв и скачки

Событие Поведение
Таймкод пропал Замереть, идти по своим часам или в чёрное
Прыгнул назад Перепозиционироваться (репетиция)
Прыгнул вперёд Применить все события до текущего момента
Не было с начала Не стартовать, писать «нет таймкода»

Решают это заранее и записывают. Флага «сигнал есть» у LTC In CHOP нет, но отладочный decode_count растёт с каждым разобранным кадром: встал — сигнала нет. Или таймкод замер дольше полсекунды. Чаще всего забывают скачок вперёд: после перемотки на середину шоу всё должно стоять как положено, а не доигрывать с начала.

Репетируют без площадки на записанном в файл таймкоде (Репетиция), отдельно гоняют стыки, потому что ломается обычно на них, и целиком в Perform со счётчиком пропусков.

Таймлайн не гонят за таймкодом

От таймлайна зависит кук многих вещей, и привязка к внешнему таймкоду даёт рывки. Таймкод — данные, из которых считается всё остальное.

Крупные цифры

Таймкод, признак сигнала, сцена, следующее событие — крупно на служебном экране. Сразу видно, остановилось шоу или сломалось что-то у нас.

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

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