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

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

Keyframe CHOP の Animation COMP キーフレーム再生機能を示す図

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

概要 📖 – Animation COMP のキーフレームをチャンネル化

Keyframe CHOPは、Animation COMP に格納されたキーフレームを参照し、指定したサンプルレートでチャンネル化して出力する CHOPです。入力にルックアップインデックスを与えることで任意のタイミングでキーフレームを参照でき、Time Slice もそのまま伝播します。

主な用途 🎯

  • Animation COMP に作成したキーフレームをチャンネルとしてサンプリング出力
  • パラメータ・オブジェクトのアニメーション(位置・回転・スケール等)の再生
  • 第 1 入力をルックアップインデックスとして使い任意のタイミングでキーフレームを参照
  • Time Slice を伝播させたフレーム同期再生(入力が Time Slice なら出力も Time Slice)
  • Extend Left / Extend Right 設定によりレンジ外の挙動(Hold / Cycle / Mirror 等)を制御

データフロー 🔄

入力: Animation COMP のキーフレームデータ

Sample Rate でサンプリング

ルックアップインデックス(任意の input)

Extend Left / Extend Right によるレンジ外補完

出力: 補間済みチャンネル値

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Keyframe Page 📋

Animation Component .animation 🎞️

Animation Component .animation 🎞️
– キーフレーム情報を保持する Animation COMP のパスを指定
– 同 COMP の Animation Editor で作成したチャンネルがそのまま出力される

Sample Rate .rate ⏱️
– 出力チャンネルのサンプルレート(samples per second)
– 既定はプロジェクトの timeline frame rate に追従、用途に応じて任意の値を設定可

Extend Left .left ⬅️

キーフレームのレンジ開始より前(before range)の挙動を決定するメニューパラメータ

項目 内部名 説明
Hold .hold 最初のキーフレーム値をそのまま保持
Slope .slope 最初のキーフレームの傾き(slope)を維持して延長
Cycle .cycle レンジ全体をループとして繰り返す
Mirror .mirror レンジを反転して鏡映で繰り返す
Default Value .default Default Value パラメータの値を出力

Extend Right .right ➡️

キーフレームのレンジ終了より後(after range)の挙動を決定するメニューパラメータ

項目 内部名 説明
Hold .hold 最後のキーフレーム値をそのまま保持
Slope .slope 最後のキーフレームの傾き(slope)を維持して延長
Cycle .cycle レンジ全体をループとして繰り返す
Mirror .mirror レンジを反転して鏡映で繰り返す
Default Value .default Default Value パラメータの値を出力

Default Value .defval 🎚️

Default Value .defval 🎚️
– Extend Left / Extend Right を Default Value に設定したときに出力する値
– レンジ外で常に固定値を出したいときに使用


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: Animation COMP のキーフレームをそのまま再生 🎞️

Animation COMP (キーフレーム編集) → Keyframe CHOP → Geometry COMP (transform)
  1. Animation COMP を作成し Animation Editor でチャンネル(tx, ty, tz 等)にキーを打つ
  2. 同 COMP 内の Keyframe CHOP を選択、Animation Component パラメータに自身を指定
  3. Sample Rate を timeline frame rate に合わせて設定
  4. 出力チャンネルを Geometry COMP の transform パラメータに Export して再生

Example 2: ルックアップインデックスで任意タイミング再生 🕹️

LFO CHOP / Slider → Keyframe CHOP (input1: lookup index) → 出力
  1. LFO CHOP やスライダー UI 等から index 値を生成する CHOP を用意
  2. Keyframe CHOP の入力 1 に lookup index を接続
  3. lookup index の値に応じて Animation COMP のキーフレームが任意タイミングで参照される
  4. ユーザ操作と連動した非線形な再生を実装

Example 3: Cycleでループアニメーション 🔁

Animation COMP → Keyframe CHOP (Extend Right: cycle) → Light intensity
  1. Animation COMP に 1 周期分のキーフレーム(例: 0〜1 秒)を作成
  2. Keyframe CHOP の Extend Right を Cycle に設定
  3. レンジ終了以降もキーフレーム全体が繰り返し再生される
  4. ライト強度や色のループ演出として活用

関連オペレータ 🔗

類似機能OP 🔍

  • Pattern CHOP — 数式で動的にチャンネル波形を生成(キーフレーム不要のアプローチ)

組み合わせ推奨OP 🔄

  • LFO CHOP — LFO 波形を lookup index として与え非線形再生
  • Speed CHOP — 再生速度のスケーリング(前段で index を生成)
  • Trigger CHOP — Keyframe 出力でエンベロープを起動
  • Math CHOP — Keyframe 出力を Range 変換でリスケール
  • Filter CHOP — Keyframe 出力のスムージング
  • CHOP to TOP — Keyframe アニメーションを GPU シェーダ uniform に渡す

前処理・後処理CHOP 🎯


Info CHOP情報 📊

Keyframe 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: エラー数

Keyframe CHOP 固有情報 🎞️

  • start_index: キーフレームレンジの開始サンプルインデックス
  • start_frame: キーフレームレンジの開始フレーム番号
  • start_second: キーフレームレンジの開始時間(秒)
  • start_fraction: 開始位置のフレーム小数部
  • end_index: キーフレームレンジの終了サンプルインデックス
  • end_frame: キーフレームレンジの終了フレーム番号
  • end_second: キーフレームレンジの終了時間(秒)
  • end_fraction: 終了位置のフレーム小数部

CHOP 共通情報 🎚️

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

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

よくある問題と解決策 🔧

❌ Problem: 出力チャンネルが出ない / 空になる
✅ Solution:

  • Animation Component パラメータが有効な Animation COMP を指しているか確認
  • 対象 Animation COMP の Animation Editor でキーフレームが実際に作成されているか確認
  • Sample Rate が 0 になっていないか、timeline frame rate と整合しているか確認

❌ Problem: レンジ外で値が想定と違う
✅ Solution:

  • Extend Left / Extend Right の設定(Hold / Slope / Cycle / Mirror / Default Value)を用途に合わせて選択
  • Default Value を使う場合は Default Value パラメータの値を確認
  • Cycle / Mirror で意図しない繰り返しが出る場合は Hold への変更を検討

❌ Problem: lookup index による任意再生が機能しない
✅ Solution:

  • 入力 1 に lookup index を持つ CHOP(LFO CHOP / Constant CHOP / 任意の制御信号等)が接続されているか確認
  • lookup index の値域が Animation COMP のレンジ(秒またはフレーム)と整合しているか確認
  • 前段に Math CHOP を入れて index を必要なレンジに正規化

参考資料 📚

その他 🔗

公式リソース 📖

この記事は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をコピーしました