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

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

Cache Select POP による Cache POP からの指定フレーム取り出しを示す図

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

概要 📖 – 指定番号のフレームを取り出す

Cache Select POPは、Cache POP に蓄積されたスナップショットの中から、Cache Index で指定した 1 フレームを取り出して出力する POPです。Cache POP パラメータで参照先のキャッシュを指定し、Cache Index でどのスナップショットを取り出すかを 1 つだけ指定します。Interpolate Frames をオンにすると、index が整数でない場合でも前後のキャッシュフレーム間を線形補間してスムーズな出力が得られます (前後スナップショットのポイント数が一致している必要あり)。

主な用途 🎯

  • Cache POP に蓄積された過去フレームから任意のスナップショット 1 つを取り出して可視化
  • シミュレーション結果の時間軸スクラブ再生 (任意フレームへのジャンプ)
  • Interpolate Frames によるキャッシュ間補間でサブフレーム精度のスローモーション
  • 遅延エフェクト用に固定 index で過去状態を出力 (delay line)
  • CHOP / Reference 接続で Cache Index を動的駆動し、リプレイ・巻き戻しタイムライン制御

データフロー 🔄

入力: Cache POP (時系列キャッシュ蓄積済み)

Cache Select POP (Cache POP 参照 + Cache Index 指定 / Interpolate Frames 可)

出力: 指定 index のスナップショット (1 POP)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Cache Select Page 📋

Cache POP 参照 🔗

Cache POP .cachepop 🔗
– フレーム取り出し元となる Cache POP へのパス参照
– 同一ネットワーク内の Cache POP を指定すると、そのバッファ内のスナップショットを Cache Index で 1 つ取り出せる

Cache Index .index 🎯

Cache Index .index 🎯
– 出力する Cache POP 内のスナップショット位置を整数または小数で指定
– 参照先 Cache POP の Output Index Unit 設定 (Index / Frames / Seconds) に従って値が解釈される
– 小数値を入れて Interpolate Frames をオンにすると前後フレーム間を線形補間 (サブフレーム精度のスクラブ再生に有効)
– CHOP / Reference / Python 式で動的駆動可能 (LFO CHOP・Timer CHOP・Slider COMP 等から index を引いてリプレイ制御)

Interpolate Frames .interp 🌊

Interpolate Frames .interp 🌊
– オン: Cache Index が整数値でない場合、前後のキャッシュフレーム間を線形補間して出力 (スムーズな時間軸サンプリング)
– オフ: 最も近いキャッシュフレームをそのまま使用 (離散的なスナップショット切替)
– 補間が成立するには前後のスナップショットが 同一ポイント数である必要がある (ポイント数が変動するパーティクル系では補間が無効化される)


Common Page 🔧

Bypass .bypass 🚫

POP の処理をスキップして入力をパススルーする設定:

  • オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
  • 用途: デバッグ時に特定 POP の効果を一時的に外して比較する際に使用

Free Extra GPU Memory .freeextragpumem 🧠

蓄積した GPU メモリの解放:

  • Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
  • 用途: 大規模パーティクル系で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約

Delete Input Attributes .delinputattrs 🗑️

出力属性の絞り込みパターン:

  • Delete Input Attributes パターン: 出力に残したい属性名のパターン (例: P N Cd) を指定。指定外の属性は破棄される
  • 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約

実践アイデア 💡

Example 1: Slider COMP でシミュレーション結果の手動スクラブ再生 🎚️

Particle POP → Cache POP (Cache Size = 240) / Cache Select POP (Cache POP 参照 + Cache Index を Slider に Reference) → Render TOP

Particle POP のシミュレーション結果を Cache POP に 240 フレーム分蓄積し、Cache Select POP の Cache Index を Slider COMP の出力値に Reference 接続することで、ユーザがスライダーを動かすたびに過去の任意フレームをリアルタイムで取り出して可視化する。シミュレーションの巻き戻し・特定タイミングの検証・プレゼン用の再生コントローラに有効。

  1. Particle POP の出力を Cache POP の input1 に接続し、Cache Size = 240、Step Size = 1 frame で蓄積
  2. Cache Select POP の Cache POP パラメータに前段 Cache POP のパスを指定
  3. Slider COMP を 1 つ配置し、出力レンジを 0 ~ -239 にマップ (0 = 最新、-239 = 240 フレーム前)
  4. Cache Select POP の Cache Index に Slider COMP の値を Reference 接続
  5. Render TOP に流して、スライダー操作で過去フレームを自由にスクラブできることを確認

Example 2: Interpolateで1フレーム未満の遅延 ⏱️

入力 POP → Cache POP (Step = 1 frame) / Cache Select POP (Cache Index = -2.5, Interpolate Frames = on) → Render TOP

Cache POP にフレーム単位でスナップショットを蓄積し、Cache Select POP の Cache Index を -2.5 のような小数値で指定する。Interpolate Frames をオンにすると、2 フレーム前と 3 フレーム前のスナップショット間が線形補間されて出力される。これにより整数フレーム精度では表現できない 2.5 フレーム遅延が実現でき、エフェクトのテンポを 60fps の整数倍以外で微調整したい場合に有効。

  1. Cache POP の Step Size Unit = Frames、Step Size = 1、Cache Size = 30 程度で蓄積
  2. Cache Select POP の Cache POP に前段 Cache POP を指定
  3. Interpolate Frames をオンに切替え
  4. Cache Index パラメータに -2.5 など小数値を直接入力 (または LFO CHOP の小数出力を Reference)
  5. 前後のスナップショットのポイント数が一致していることを Info DAT で確認 (不一致だと補間が無効化され、最も近いフレームのみ出力される)

Example 3: Timer CHOP 駆動でループ再生プレビュー 🔁

入力 POP → Cache POP (Cache Size = 60, Active を一定時間後にオフ) / Cache Select POP (Cache Index を Timer CHOP で循環駆動) → Render TOP

Cache POP に 60 フレーム分のスナップショットを録画 (Active = on で 1 秒分蓄積した後 Active = off で固定) し、Cache Select POP の Cache Index を Timer CHOP の cycle 出力に Reference 接続する。Timer CHOP を 0 → -59 → 0 のループで動かせば、録画したシーケンスを無限ループ再生するプレビューが完成する。デモリール用のキャプチャ → ループ再生フローに直結。

  1. Cache POP に Active = on で 60 フレーム分のスナップショットを蓄積
  2. 蓄積完了後、Cache POP の Active を off にしてバッファを固定
  3. Timer CHOP を 1 秒周期のサイクルで配置し、出力レンジを 0 ~ -59 にマップ
  4. Cache Select POP の Cache POP に前段、Cache Index に Timer CHOP の出力を Reference 接続
  5. Render TOP で 1 秒周期の無限ループ再生を確認、必要なら Interpolate Frames をオンにして補間

関連オペレータ 🔗

類似機能OP 🔍

  • Cache POP — Cache Select が参照する蓄積側 POP (Cache がスナップショットを溜め、Cache Select が単一フレームを取り出す)
  • Cache Blend POP — Cache POP から複数フレームを重み付きでブレンドする派生 OP (Cache Select は単一フレーム、Cache Blend は複数フレーム合成)
  • Feedback POP — 1 フレーム遅延で前フレーム出力を入力に戻すループ構造 (Cache Select は任意 index の取り出し、Feedback は 1 フレーム遅延のみ)

組み合わせ推奨OP 🔄

  • Cache POP — 必須前段。Cache POP に蓄積されたスナップショットを Cache Select が参照する
  • Particle POP — シミュレーション結果を Cache POP 経由で蓄積し、Cache Select で任意フレームを取り出して検証・プレビュー
  • Attribute POP — Cache Select の入力前で属性 (P / Color 等) を揃え、Interpolate Frames でのポイント数不一致による補間無効化を防ぐ
  • Math POP — Cache Select 後段で取り出した過去フレームのスケーリング・色変換を適用

前処理・後処理POP 🎯


Info POP情報 📊

Cache Select POPは Info CHOP / Info DAT による詳細情報取得に対応しています。

POP固有情報 ✨

  • num_verts: POP に含まれる頂点 (vertex) 数
  • num_points: POP に含まれるポイント数
  • num_prims: POP に含まれるプリミティブ数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • cook_abs_frame: 最後にクックされた絶対フレーム番号 (アプリケーション起動からの累積)
  • cook_start_time: 最後のクック開始時刻 (ミリ秒)
  • cook_end_time: 最後のクック終了時刻 (ミリ秒)
  • cooked_this_frame: 現フレームでクックされたか (0 / 1)
  • warnings: 警告数
  • errors: エラー数

出力ポイント・属性情報 🧬

  • num_points: 出力スナップショットのポイント数 (参照先 Cache POP の該当 index フレームのポイント数と一致)
  • num_point_attribs: 出力 POP の point 属性数
  • num_vertex_attribs: 出力 POP の vertex 属性数
  • num_prim_attribs: 出力 POP の primitive 属性数
  • num_prims: 出力プリミティブ数

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

よくある問題と解決策 🔧

❌ Problem: Cache POP を指定しても出力が空になる / 参照先のフレームが取れない
✅ Solution:

  • Cache POP パラメータに正しいパスが入っているか、参照先の Cache POP が同一ネットワーク内に存在するかを確認
  • 参照先 Cache POP の Active がオン (または蓄積完了後の off 固定) で、Cache Size が 1 より大きい状態でスナップショットが実際に溜まっているかを確認
  • Cache Index が Cache POP のバッファ範囲外を指していないか (例: Cache Size = 60 で index = -120 を指定すると無効) を確認

❌ Problem: Interpolate Frames が効かず、出力がカクついて見える
✅ Solution:

  • 前後のスナップショットのポイント数が一致しているか Info DAT で確認 (不一致だと線形補間は無効化され、最も近い 1 フレームが返る)
  • 前段に Attribute POP を入れ、補間対象の属性 (P / Color 等) が両フレームに揃っているか確認
  • Cache Index を整数値ではなく小数値 (例: -3.0, -2.5) で動かしているか確認 (整数のままだと補間する余地が無い)

❌ Problem: Cache Index を動かしても出力が変化しない
✅ Solution:

  • Cache POP 側で Active がオフのまま新規スナップショットが蓄積されていないか確認 (バッファが空 / 1 フレームしか無いと index を変えても結果が同じ)
  • Cache Index パラメータが Reference / Export で固定値に上書きされていないかを確認 (パラメータ表示が緑なら expression、紫なら export 状態)
  • 参照先 Cache POP の Output Index Unit 設定と Cache Select 側で指定している値の単位 (Index / Frames / Seconds) が整合しているかを確認

参考資料 📚

その他 🔗

公式リソース 📖

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