
概要 📖 – コンポーネント時刻のチャンネル化
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)
↓
出力: 選択したチャンネル群
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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
- Component 内に Time COMP を配置し独自の FPS / Start / End を設定
- Timeline CHOP の Reference Operator にその Time COMP のパスを指定
- Frame チャンネルを有効化してアニメーション制御に Export
- メインのタイムラインとは独立した時刻でアニメーションを駆動
Example 2: BPM 同期による拍ベース演出 🥁
Time COMP (BPM=120) → Timeline CHOP (BPM channel) → Math CHOP → LFO trigger
- Time COMP に BPM 120 と 4/4 拍子を設定
- Timeline CHOP で BPM / Signature 1 / Signature 2 チャンネルを有効化
- BPM 値を後段の LFO や Wave CHOP の Frequency に Export
- 音楽のテンポに同期した光・音・モーションの演出を実現
Example 3: 外部 SMPTE タイムコードによる映像同期 🎬
Timecode CHOP → Timeline CHOP (Use Timecode = on) → Frame channel → Movie File In TOP
- 外部から取得した Timecode CHOP を用意(LTC In CHOP 等)
- Timeline CHOP の Use Timecode をオンにし Timecode Object に CHOP を指定
- Frame チャンネルを Movie File In TOP の Index に Export
- 外部タイムコードに同期した映像再生で機材間のフレーム精度同期を実現
Example 4: 再生状態に応じた条件分岐 ▶️
Timeline CHOP (Play channel) → Logic CHOP → Switch TOP → Output
- Timeline CHOP で Play チャンネルを有効化
- Logic CHOP で
play == 1の条件を判定 - Switch TOP の Index に Logic 出力を Export
- 再生中と停止中で異なる映像・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、無効時は0export_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 を確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

