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

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

Null SOP が上流ジオメトリを下流へ素通しする中継ノードとして機能する図

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

概要 📖 – ジオメトリの中継・参照点

Null SOPは、入力された SOP ジオメトリ (ポイント / プリミティブ) をそのまま出力し、ネットワークの中継点・参照アンカーとして使用する SOPです。形状変換は一切行わず、複数の下流が参照する共通アンカー、上流ノード差し替え時の参照名安定化、マスタ出力ノードの設置などに利用します。Null CHOP / Null TOP / Null DAT と同じ「パススルー中継」族のジオメトリ版です。

主な用途 🎯

  • ネットワークの中継ノードとして、複数の下流が参照する共通のジオメトリアンカー点を配置
  • 上流 SOP の差し替えを行っても下流の参照 (op('null1') 等) が壊れないよう参照名を安定化
  • ジオメトリ確認のビューアポイントとして、デバッグ時に中間段階のポイント / プリミティブを可視化
  • マスタ出力ノードとして Geometry COMP 内の最終ジオメトリを集約し、外部参照やレンダリングの入口を一本化
  • ネットワーク改修時のアンカーとして、上流のモデリング工程と下流の参照・描画を分離

データフロー 🔄

入力: 上流 SOP (Grid / Sphere / Merge / Transform 等)

パススルー (ポイント / プリミティブ / アトリビュートを変換せず転送)

出力: 入力と同一のジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Null Page 📋

Null SOP 固有設定 ℹ️

Null SOP は入力をそのままパススルーするため、Null Page には固有パラメータが存在しません:

  • 固有パラメータなし: Null SOP は入力されたジオメトリをそのまま出力するパススルーオペレータのため、Null Page には固有のパラメータが存在しません。ネットワーク上の中継点・参照アンカーとして配置すること自体が役割で、設定によって形状を変えることはありません

実践アイデア 💡

Example 1: 参照を安定化する中継 🔗

上流のモデリング SOP チェイン → Null SOP → 複数の下流参照 (Geometry COMP / Copy SOP / Python op())

頻繁に作り直しが発生する上流ジオメトリを Null SOP で受け、下流の参照は全て Null SOP を指すように構成します。上流ノードを別のモデリング工程に差し替えても下流の参照は壊れず、ネットワーク改修時の繋ぎ直し作業を大幅に削減できます。

  1. 上流のモデリング SOP チェイン (Grid / Merge / Transform 等) の末端を Null SOP に接続
  2. 下流の参照 (Geometry COMP の SOP パラメータ / Copy SOP の入力 / op('null1') 等) を全て Null SOP に向ける
  3. 上流ノードを差し替える際は Null SOP への接続のみ繋ぎ直す、下流参照は触らない
  4. ネットワーク改修時の繋ぎ直し範囲が Null SOP 1 個に局所化される

Example 2: 出力ノードに集約 🎯

COMP 内部の複数 SOP 処理 → Null SOP (マスタ出力) → Out SOP → COMP 外部

Geometry COMP の内部で複数の SOP 処理 (Merge / Transform / Convert 等) を行った結果を、最終的に 1 個の Null SOP に集約してマスタ出力とする設計です。外部からは Null SOP を参照するだけで COMP の最終ジオメトリが取得でき、内部実装の変更が外部参照に影響しません。

  1. Geometry COMP 内に複数の SOP 処理チェイン (Grid / Merge / Transform / Convert 等) を構築
  2. 全ての処理結果を最終段の Null SOP に集約 (null_master 等の固有名でリネーム)
  3. Null SOP の出力を Out SOP に渡し、COMP 外部からアクセス可能にする
  4. COMP 内部のリファクタリングを行っても、Null SOP 名と Out SOP 配置を維持すれば外部参照は安定

Example 3: 確認用の中継点を設置 🔍

上流 SOP 処理チェイン → Null SOP (Viewer Active) → 続く下流処理

複雑な SOP 処理パイプラインの途中段階を確認するため、Null SOP を挟んでビューアを有効化します。Null SOP 自身は形状を変えないため、デバッグ用に挿入してもパイプラインの挙動を変えずに中間ジオメトリをモニタリングできます。

  1. 確認したい中間ステージに Null SOP を挿入 (上流処理 → Null SOP → 下流処理)
  2. Null SOP のビューアを有効化 (Viewer Active フラグオン) してポイント / プリミティブを可視化
  3. ビューアでジオメトリの形状や頂点配置を確認、想定通りのデータが流れているかを検証
  4. デバッグ完了後は Null SOP を残したままにしてもパイプラインへの影響はゼロのため、本番運用でも常設可能

関連オペレータ 🔗

類似機能OP 🔍

  • Out SOP — Geometry COMP の出力ポートを担う出力アンカー、Null は COMP 内部の中継アンカー
  • Select SOP — 別 OP のジオメトリ出力を遠隔参照するパススルー、Null は直接接続の中継に特化
  • Switch SOP — 複数入力の切替パススルー、Null は単一入力の中継のみ

組み合わせ推奨OP 🔄

  • Merge SOP — 複数 SOP を Merge で結合した結果を Null に集約し、マスタジオメトリの参照点にする
  • Transform SOP — Transform で配置調整した形状を Null で受け、配置確定後の安定参照点とする
  • Convert SOP — Convert で種別変換 (ポリゴン化 / NURBS 化等) した結果を Null で受けて下流に配信
  • Object Merge SOP — 他コンポーネントのジオメトリを取り込んだ結果を Null に集約し、共通アンカーにする
  • Out SOP — COMP 内部の Null SOP (マスタ出力) を Out SOP に渡して COMP 外部へ公開

前処理・後処理SOP 🎯


Info SOP情報 📊

Null SOP は Info CHOP による詳細情報取得に対応しています (中継しているジオメトリのポイント数 / プリミティブ数の検証や、上流データが更新されたタイミングの検出に利用できます)。

ジオメトリ統計 📐

  • num_points: この SOP に含まれるポイント数
  • num_prims: この SOP に含まれるプリミティブ数
  • num_particles: この SOP に含まれるパーティクル数

GPU 転送タイミング 🎮

  • last_vbo_update_time: 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間 (フレーム時間外)
  • last_meta_vbo_update_time: 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間 (フレーム時間外)

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始以降にこのオペレータがクックされた合計回数
  • cook_time: 直近のクック所要時間 (ミリ秒)
  • cook_frame: このオペレータが最後にクックされたフレーム番号
  • warnings: このオペレータの警告数
  • errors: このオペレータのエラー数

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

よくある問題と解決策 🔧

❌ Problem: 上流ノードを差し替えても下流参照が壊れる
✅ Solution:

  • 下流参照は Null SOP のパス (例: op('null1')) を指しているか確認、上流 SOP を直接参照していると差し替え時に壊れる
  • Null SOP 自体の名前を変更すると下流参照は壊れるため、リネームする場合は下流の参照式も追従させる
  • 参照を安定化する目的では Null SOP の配置位置・名前を固定し、上流のみ差し替える運用にする

❌ Problem: Null SOP のビューアにジオメトリが表示されない
✅ Solution:

  • Null SOP に上流 SOP が接続されているか確認 (左側入力に何も繋がっていなければ出力は空)
  • 上流 SOP 自体の出力が空でないか確認 (上流のビューアでポイント / プリミティブが見えるか)
  • Viewer Active フラグがオンになっているか確認 (ノード右下のフラグ)
  • Info CHOP を別途配置し、num_points / num_prims で実際のジオメトリ次元を検証

❌ Problem: Null SOP を挟んでもパフォーマンスが改善しない
✅ Solution:

  • Null SOP 自体には最適化パラメータがなく、上流ジオメトリをそのまま転送するだけで再計算の削減は行わない
  • 重い上流 SOP を毎フレーム再計算したくない場合は、上流側で Convert SOP 等を使い静的形状を一度確定させる構成にする
  • 巨大なジオメトリの中継で重い場合は Select SOP で必要なプリミティブのみ抽出した結果を Null で受ける設計に変更

参考資料 📚

その他 🔗

公式リソース 📖

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