Timeline CHOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Timeline CHOP のコンポーネント時刻チャンネル化を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – コンポーネント時刻のチャンネル化

Timeline CHOPは、特定 Component の時刻情報(フレーム・レート・BPM・再生状態など)を CHOP チャンネルとして出力する CHOPです。Reference Operator に Time COMP を指定することで、そのコンポーネント固有のタイムラインに従ったチャンネルを取得できます。

主な用途 🎯

  • 特定 Component の時刻情報をチャンネル化(Frame / Rate / Start / End 等を CHOP で取得)
  • Time COMP 参照によるローカルタイムライン制御(Reference Operator にコンポーネントを指定)
  • 外部タイムコードからの時刻同期(Use Timecode + Timecode CHOP / DAT 参照)
  • BPM / 拍子情報の取得(Signature 1 / Signature 2 / BPM チャンネル出力)
  • 再生状態 (Play) の取得とイベント駆動制御(Play チャンネルで他 OP の条件分岐)

データフロー 🔄

入力: Reference Operator(Time COMP)または Timecode Object

Use Timecode 判定(オン: timecodeop を時刻源、オフ: Reference Operator の me.time を時刻源)

各チャンネル出力選択(Frame / Rate / Start / End / Range Start / Range End / Signature 1 / Signature 2 / BPM / Play)

出力: 選択したチャンネル群

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

Timeline Page 🎞️

Reference Operator .op 🔗

参照する Component の時刻ソース指定:

  • Reference Operator: me.time で取得される Time COMP のパスを指定。未指定時は Timeline CHOP 自身の場所で定義される時刻を使用

Timecode 同期 ⏱️

Use Timecode .usetimecode
– オンにすると Reference Operator ではなく Timecode Object / CHOP / DAT を時刻源として使用
– BPM / 拍子 / Start / End 値については引き続き Reference Operator を参照

Timecode Object / CHOP / DAT .timecodeop 🎬
– 時刻ソースとなる参照先を指定
– 受け付け可能な形式は以下:

  • hour / minute / second / frame チャンネルを持つ CHOP
  • 最初のセルにタイムコード文字列を持つ DAT
  • Timecode Class オブジェクト

出力チャンネル選択 📤

Frame .frame 🎞️
– フレーム番号のチャンネルを出力
– 現在の再生フレーム位置を取得

Rate .rate
– レート(フレーム毎秒, FPS)のチャンネルを出力
– Time COMP に設定された FPS を取得

Start .start ▶️
– Start フレーム値のチャンネルを出力
– タイムラインの開始位置

End .end ⏹️
– End フレーム値のチャンネルを出力
– タイムラインの終了位置

Range Start .rangestart ⏮️
– Range Start フレーム値のチャンネルを出力
– ループ範囲の開始位置

Range End .rangeend ⏭️
– Range End フレーム値のチャンネルを出力
– ループ範囲の終了位置

Signature 1 .signature1 🎼
– 拍子記号の 1 番目(1 小節あたりの拍数)のチャンネルを出力
– 例: 4/4 拍子なら 4

Signature 2 .signature2 🎵
– 拍子記号の 2 番目(1 拍とみなす音符の種類)のチャンネルを出力
– 例: 4/4 拍子なら 4(四分音符)

BPM .bpm 🥁
– BPM(Beats Per Minute)値のチャンネルを出力
– 音楽同期・拍同期に使用

Play .play ▶️
– 現在の再生状態(再生中: 1 / 停止中: 0)のチャンネルを出力
– イベント駆動制御の条件として使用


Common Page 🔧

Time Slice .timeslice ⏱️

Time Slice モードの強制設定:

  • オン: チャンネルを「タイムスライス」モードに強制
  • タイムスライス: 前回のクックフレームから現在のクックフレームまでの時間

Scope .scope 🎯

影響を受けるチャンネルの絞り込み:

  • Scope 文字列: 影響を受けるチャンネルを指定する文字列
  • パターンマッチング: *[1-10] 等のパターンが使用可能

Sample Rate Match .srselect

複数の入力 CHOP のサンプルレートが異なる場合の処理方法

項目 内部名 説明
Resample At First Input’s Rate .first 最初の入力のレートで他をリサンプル
Resample At Maximum Rate .max 最高サンプルレートでリサンプル
Resample At Minimum Rate .min 最低サンプルレートでリサンプル
Error If Rates Differ .err レート不一致でエラー

Export Method .exportmethod 📤

CHOP チャンネルをパラメータに接続する方法

項目 内部名 説明
DAT Table by Index .datindex DAT テーブルのインデックスでチャンネルとパラメータを対応付け
DAT Table by Name .datname DAT テーブルの行名でチャンネルとパラメータを対応付け
Channel Name is Path:Parameter .autoname チャンネル名を `path:parameter` 形式で記述し直接対応付け

Export Root .autoexportroot 🌳

Channel Name is Path:Parameter モード時のパス基点:

  • Export Root パス: autoname モードでチャンネル名のパス部分を相対化する基点 OP のパス

Export Table .exporttable 📋

DAT Table エクスポート方式での参照 DAT:

  • Export Table DAT: datindex / datname モード時に参照する DAT のパス

Rename from .commonrenamefrom 🔤

リネーム対象チャンネルのパターン:

  • Rename from パターン: リネーム対象とするチャンネル名のパターンマッチング文字列

Rename to .commonrenameto 🔁

リネーム後の置換パターン:

  • Rename to パターン: Rename from にマッチしたチャンネルの新しい名前パターン (デフォルトはリネームなし)

実践アイデア 💡

Example 1: コンポーネント固有のローカルタイムライン取得 🎞️

Time COMP (local) → Timeline CHOP (Reference Operator) → Frame channel → Animation Control
  1. Component 内に Time COMP を配置し独自の FPS / Start / End を設定
  2. Timeline CHOP の Reference Operator にその Time COMP のパスを指定
  3. Frame チャンネルを有効化してアニメーション制御に Export
  4. メインのタイムラインとは独立した時刻でアニメーションを駆動

Example 2: BPM 同期による拍ベース演出 🥁

Time COMP (BPM=120) → Timeline CHOP (BPM channel) → Math CHOP → LFO trigger
  1. Time COMP に BPM 120 と 4/4 拍子を設定
  2. Timeline CHOP で BPM / Signature 1 / Signature 2 チャンネルを有効化
  3. BPM 値を後段の LFO や Wave CHOP の Frequency に Export
  4. 音楽のテンポに同期した光・音・モーションの演出を実現

Example 3: 外部 SMPTE タイムコードによる映像同期 🎬

Timecode CHOP → Timeline CHOP (Use Timecode = on) → Frame channel → Movie File In TOP
  1. 外部から取得した Timecode CHOP を用意(LTC In CHOP 等)
  2. Timeline CHOP の Use Timecode をオンにし Timecode Object に CHOP を指定
  3. Frame チャンネルを Movie File In TOP の Index に Export
  4. 外部タイムコードに同期した映像再生で機材間のフレーム精度同期を実現

Example 4: 再生状態に応じた条件分岐 ▶️

Timeline CHOP (Play channel) → Logic CHOP → Switch TOP → Output
  1. Timeline CHOP で Play チャンネルを有効化
  2. Logic CHOP で play == 1 の条件を判定
  3. Switch TOP の Index に Logic 出力を Export
  4. 再生中と停止中で異なる映像・UI を出し分け

関連オペレータ 🔗

類似機能OP 🔍

  • Timecode CHOP — SMPTE タイムコード生成・操作に特化、Timeline は Component 時刻の取得に特化
  • Clock CHOP — 現実時間(システム時計)を出力、Timeline はプロジェクト内時刻を出力

組み合わせ推奨OP 🔄

  • Math CHOP — Frame / BPM チャンネルをスケーリング・正規化
  • Logic CHOP — Play チャンネルや Frame 値で条件分岐
  • Trigger CHOP — 特定 Frame でイベント発火
  • Analyze CHOP — BPM / Frame 履歴の統計を抽出
  • Trail CHOP — Frame / BPM の時間履歴を可視化

前処理・後処理CHOP 🎯


Info CHOP情報 📊

Timeline CHOPは Info CHOP による詳細情報取得に対応しています。

CHOP固有情報 🎚️

  • start: CHOPインターバルの開始(サンプル単位)
  • length: CHOPのサンプル数
  • sample_rate: フレーム毎秒のサンプルレート
  • num_channels: CHOPのチャンネル数
  • time_slice: タイムスライス有効時は1、無効時は0
  • export_sernum: Export接続の更新回数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間(ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: Reference Operator を指定しても期待した時刻が取れない
✅ Solution:

  • Reference Operator には Time COMP のパスを指定する必要がある(通常の Component ではない)
  • 未指定時は Timeline CHOP 自身の場所で定義される時刻(me.time)が使用される
  • Component に Time COMP がない場合は親階層の Time COMP が継承される

❌ Problem: Use Timecode をオンにしても時刻が変化しない
✅ Solution:

  • Timecode Object / CHOP / DAT が正しく指定されているか確認
  • 参照先 CHOP は hour / minute / second / frame の 4 チャンネルが必要
  • 参照先 DAT は最初のセルにタイムコード文字列(hh:mm:ss:ff)が必要

❌ Problem: BPM / Signature チャンネルが 0 を返す
✅ Solution:

  • Reference Operator に設定した Time COMP の BPM / Signature 値を確認
  • Use Timecode がオンの場合でも BPM / Signature は Reference Operator から取得される
  • Time COMP 側で BPM が 0 に初期化されていないか確認

❌ Problem: Frame チャンネルが想定外の単位で出力される
✅ Solution:

  • Rate チャンネルを併せて出力し FPS を確認
  • 後段で Math CHOP を使って秒単位に変換(Frame / Rate)
  • Time Slice 設定によって複数サンプルが出力される場合があるため Common Page を確認

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました