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

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

Camera Blend COMP の機能を示す図

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

概要 📖 – 複数親トランスフォームのブレンドカメラ

Camera Blend COMPは、最大 4 つの親コンポーネントの Transform を Weight と Mask でブレンドし、単一のカメラ Transform に合成する COMPです。Blend / Sequence / Constrain の 3 モードを切替えることで、複数視点間の滑らかな補間や追従カメラを 1 ノードで実現します。

主な用途 🎯

  • 複数の親 COMP の Transform をブレンドして滑らかにカメラを移動
  • Sequence モードで視点を別の親オブジェクトへアニメーション切替
  • Constrain モードで親に追従しつつ相対位置・回転を維持
  • Weight / Mask パラメータで各親の影響度と T/R/S 成分を独立制御
  • Normal Offset と Orient Axes で 3 親による三角平面補間カメラを構築

データフロー 🔄

入力: 親 COMP 群 (最大 4 つの parent transform)

Blend Page の Type / Weight[1-4] / Mask[1-4] で合成

出力: ブレンド後のカメラ Transform を Render TOP に提供

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Blend Page 📋

Type .parenttype 🎛️

親トランスフォーム (Translate / Rotate / Scale) の合成方式を選択するメニューパラメータ

項目 内部名 説明
Blend .blend 最初の 4 つの入力親を Weight[1-4] / Mask[1-4] で重み付けブレンド
Sequence .sequence Sequence 値で 1 つの親を選択してその Transform を採用 (アニメーション切替に利用)
Constrain .constrain 指定した親に拘束、相対 Transform を保持。親変更時はジャンプせず追従

Sequence / Reset .sequence 🔄

Sequence .sequence ▶️
– Type が Sequence または Constrain のとき、どの入力親をアクティブにするかを指定するインデックス値
– 入力範囲外の値は親解除 (unparenting) と解釈される

Reset Frame .reset ♻️
Constrain モード時、このフレームで最終 Transform が初期位置にリセットされる
– 他フレームでは拘束親が変化しても相対 Transform は維持

Weight / Mask (1〜4) .blendwm ⚖️

各入力親に対する重み (Weight) と、ブレンド対象成分 (Mask = T/R/S 個別) を指定するシーケンスパラメータ群

Weight 1〜4 .blendw1 🎚️
– 入力親 1〜4 それぞれの寄与度 (0.0〜1.0 を目安) を指定
– 合計が 1.0 になる必要はなく、内部で正規化される

Mask 1〜4 .blendm1 🎭
– 各親 Transform のうち、どの成分をブレンドに含めるかを指定
– 例えば Translate のみブレンドして Rotate は最初の親に固定、等の選択が可能

三角平面補間オプション .triblend 🔺

Normal Offset .noffset 📐
– 入力親がちょうど 3 つの場合、3 親が形成する三角平面に対して垂直方向に子の位置をオフセット
– 平面上から離れた追従カメラを構築するときに使用

Orient Axes .axesorient 🧭
– 3 親入力時に、子の局所軸を親の配置に揃える
– 第 1 親=軸中心 / 第 2 親=+X 方向 / 第 3 親=+Y 方向

Short Rotation .shortrot 🔁
– 2 入力ブレンド時にクォータニオン補間を使い、最短経路で回転を補間
– 大きな角度差で回転が暴れるのを防ぐ


Xform Page 📁

Transform Order .xord 🎛️

コンポーネントに対する Scale / Rotate / Translate の適用順序を指定するメニューパラメータ

項目 内部名 説明
Scale Rotate Translate .srt T * R * S * Position (デフォルト)
Scale Translate Rotate .str R * T * S * Position
Rotate Scale Translate .rst T * S * R * Position
Rotate Translate Scale .rts S * T * R * Position
Translate Scale Rotate .tsr R * S * T * Position
Translate Rotate Scale .trs S * R * T * Position

Rotate Order .rord 🎛️

X / Y / Z 軸の回転を合成する順序を指定するメニューパラメータ

項目 内部名 説明
Rx Ry Rz .xyz R = Rz * Ry * Rx
Rx Rz Ry .xzy R = Ry * Rz * Rx
Ry Rx Rz .yxz R = Rz * Rx * Ry
Ry Rz Rx .yzx R = Rx * Rz * Ry
Rz Rx Ry .zxy R = Ry * Rx * Rz
Rz Ry Rx .zyx R = Rx * Ry * Rz

Translate / Rotate / Scale / Pivot .trsp 🎯

各 3D 軸ごとの並進・回転・スケール・ピボット:

  • Translate (t): tx / ty / tz — 各軸の並進量。ビューポート上でのドラッグでも編集可能
  • Rotate (r): rx / ry / rz — 各軸の回転量 (度)
  • Scale (s): sx / sy / sz — 各軸の非一様スケール (カメラへの適用は非推奨)
  • Pivot (p): px / py / pz — 回転・スケールの基準点

Uniform Scale .scale 📏

Uniform Scale .scale 📏
– 3 軸を一括で同じ倍率にスケール
– カメラへの適用は非推奨だが、必要な場合はビューポートとレンダリング結果を一致させる目的に限る

Parent Transform Source .parentxformsrc 🌐

このオブジェクトの初期位置を決定する基準

項目 内部名 説明
Parent (Hierarchy) .parent ネットワーク階層上の親 COMP の Transform を継承
Specify Parent Object .specifyparent Parent Object パラメータで明示指定した COMP の Transform を継承
World Origin .worldorigin ワールド原点を基準とする (継承なし)

Parent Object .parentobject 🔗

Specify Parent Object モード時の親 COMP パス指定:

  • Parent Object パス: parentobject — 任意の COMP パスを指定して、その Transform に拘束

Look At / Forward Direction .lookat 👀

カメラの向きを特定の COMP に追従させる Look At と前方向軸

Look At .lookat 🎯
– 指定した 3D COMP の原点に向かい続けるようカメラを自動オリエント
– Null COMP をターゲットにすることで、見えないターゲットにカメラを誘導できる

Forward Direction .forwarddir ➡️
– どの軸方向を前方とみなすかを 6 値から選択
– 利用可能な値:

  • +X
  • -X
  • +Y
  • -Y
  • +Z
  • -Z

Look At Up Vector .lookup ⬆️
– Look At 時の上方向を制御するモードを 4 値から選択
– 利用可能な値:

  • Don't use up vector
  • Use up vector
  • Use quaternions
  • Use Roll

Path SOP / Roll / Position .pathsop 🛤️

SOP のカーブに沿ってカメラを動かすパスアニメーション設定:

  • Path SOP: pathsop — カメラが追従する SOP パス
  • Roll: roll — パス追従時のロール角度
  • Position: pos — パス上の位置 (0=始点、1=終点、最大 10 で複数周回)
  • Orient along Path: pathorient — 有効時、+Z 軸がパス進行方向に整列
  • Orient Up Vector (X/Y/Z): upx / upy / upz — パス追従時の +Y 軸が向く方向ベクトル
  • Auto-Bank Factor: bank — パス曲率に応じた自動ロール量 (0 で無効化)

Pre-Xform Page 🔧

Apply Pre-Transform .pxform

Apply Pre-Transform .pxform
– Pre-Xform Page の Transform を有効化
– メインの Xform の前段で適用されるため、座標系の前処理に利用

Pre-Xform Transform Order .pxord 🎛️

Pre-Xform 段の Scale / Rotate / Translate 適用順序

項目 内部名 説明
Scale Rotate Translate .srt T * R * S * Position
Scale Translate Rotate .str R * T * S * Position
Rotate Scale Translate .rst T * S * R * Position
Rotate Translate Scale .rts S * T * R * Position
Translate Scale Rotate .tsr R * S * T * Position
Translate Rotate Scale .trs S * R * T * Position

Pre-Xform Rotate Order .prord 🎛️

Pre-Xform 段の X / Y / Z 回転合成順序

項目 内部名 説明
Rx Ry Rz .xyz R = Rz * Ry * Rx
Rx Rz Ry .xzy R = Ry * Rz * Rx
Ry Rx Rz .yxz R = Rz * Rx * Ry
Ry Rz Rx .yzx R = Rx * Rz * Ry
Rz Rx Ry .zxy R = Ry * Rx * Rz
Rz Ry Rx .zyx R = Rx * Ry * Rz

Pre-Xform TRS / Pivot / Uniform Scale .pretrs 📐

Pre-Xform 段の並進・回転・スケール・ピボット:

  • Translate (pt): ptx / pty / ptz — Pre-Xform 並進
  • Rotate (pr): prx / pry / prz — Pre-Xform 回転
  • Scale (ps): psx / psy / psz — Pre-Xform スケール
  • Pivot (pp): ppx / ppy / ppz — Pre-Xform ピボット
  • Uniform Scale (pscale): pscale — Pre-Xform 段の一様スケール

Pre-Xform 操作ボタン / Matrix 入力 .preops 🛠️

Pre-Xform のリセット・コミット・行列直接指定:

  • Reset Transform: preset — Pre-Xform の Transform をゼロにリセット
  • Commit to Main Transform: pcommit — Pre-Xform を Main Xform へコピーして Pre-Xform 側はリセット
  • Xform Matrix / CHOP / DAT: xformmatrixop — 4×4 行列を直接指定。適用順序は XformMatrix * PreXForm * Position

View Page 🎥

Projection .projection 🔭

投影方式を Perspective / Orthographic / Blend / Custom Matrix から選択するメニューパラメータ

項目 内部名 説明
Perspective .perspective 標準的な遠近投影 (FOV / Focal を使用)
Orthographic .ortho 平行投影 (Ortho Width で幅を制御)
Perspective to Ortho Blend .persporthoblend Projection Blend で 0=Perspective ⇔ 1=Orthographic を補間
Custom Projection Matrix .custommatrix projmatrixop で 4×4 行列を直接指定

Projection Blend / Ortho Width .projblend 🎚️

Projection Blend .projectionblend 🎚️
Perspective to Ortho Blend モード時の補間値
– 0=Perspective、1=Orthographic

Ortho Width .orthowidth 📐
– Orthographic モード時に表示するワールド幅
– 値を大きくするほど広範囲が画面に収まる

Viewing Angle Method .viewanglemethod 📷

Perspective モードで画角をどのパラメータで指定するかを選択

項目 内部名 説明
Horizontal FOV .horzfov fov パラメータを水平方向画角 (度) として解釈
Vertical FOV .vertfov fov パラメータを垂直方向画角 (度) として解釈
Focal Length and Aperture .focalaperture focalaperture で実写カメラ風の指定

FOV / Focal / Aperture .fov 🔍

画角・焦点距離・センサーサイズの指定:

  • FOV Angle: fov — 画角 (度)。Viewing Angle Method が Horizontal / Vertical のときに有効
  • Focal Length: focal — 焦点距離 (mm)。Focal Length and Aperture モード時に有効
  • Aperture: aperture — 撮像センサーサイズ (mm)。Focal Length and Aperture モード時に有効

Near / Far .nearfar 📏

クリッピング平面 (描画される深度範囲)

Near .near 📍
ニアクリップ平面までの距離。これより手前のジオメトリは描画されない。z-fighting 対策時は Near と Far の差を縮める。

Far .far 🏔️
ファークリップ平面までの距離。これより奥のジオメトリは描画されない。

Window X/Y / Window Size / Window Roll .window 🪟

ウィンドウオフセット・ズーム・ロール:

  • Window X / Y: winx / winy — ウィンドウ中心のオフセット。カメラを動かさずに視界をパン
  • Window Size: winsize — ウィンドウサイズ (ズーム効果)
  • Window Roll: winroll — ウィンドウ枠を回転 (度)

IPD Shift / Proj Matrix .ipdshift 👓

ステレオ / VR シフトと Custom Projection Matrix:

  • IPD Shift: ipdshift — 瞳孔間距離 (m) によるカメラの左右シフト。VR / Cube Map レンダリング時は Translate X ではなくこのパラメータを使う
  • Proj Matrix / CHOP / DAT: projmatrixopCustom Projection Matrix モード時に参照する 4×4 行列の供給元

Background Color .bgcolor 🎨

Render TOP 背景色とアルファ:

  • Red / Green / Blue: bgcolorr / bgcolorg / bgcolorb — 背景色 RGB
  • Alpha: bgcolora — 背景アルファ

Settings Page ⚙️

Fog .fog 🌫️

ビューポートに描画するフォグ (霧) の方程式を選択するメニューパラメータ

項目 内部名 説明
Off .off フォグ無効
Linear .linear 線形フォグ。Fog NearFog Far 間で線形補間
Exponential .exp 指数フォグ。Fog Density で密度を制御
Squared Exponential .exp2 二乗指数フォグ。より急激な減衰

Fog 設定値 .fogvals 🌁

Fog の密度・距離・色・透明度・テクスチャ:

  • Fog Density: fogdensity — 指数系フォグの密度。負値は許可されない
  • Fog Near: fognear — 線形フォグの開始距離
  • Fog Far: fogfar — 線形フォグの終了距離
  • Fog Color (R/G/B): fogcolorr / fogcolorg / fogcolorb — フォグの色
  • Fog Alpha: fogalpha — シーン背景の不透明度制御
  • Fog Map: fogmap — フォグ用テクスチャマップ

Camera Light Mask / Material .camlightmask 💡

Camera Light Mask .camlightmask 💡
このカメラから見たレンダリングに影響する Light COMP の部分集合を指定。Render TOP の Light リストと AND 条件で合成される。

Material .material 🎨
シーン全体に強制適用するマテリアル (オーバーライド)。デバッグや単色プレビューに便利。


Render Page 🎬

Material / Render フラグ .material 🎨

ジオメトリへのマテリアル割り当てと描画可否

Material .material 🎨
内部ジオメトリへ適用する MAT を指定。

Render .render 🖼️
Render TOP からの描画可否。COMP の Render Flag と論理 AND で評価される。

Draw / Pick Priority .drawpriority 🏷️

描画順序とピック優先度:

  • Draw Priority: drawpriority — 小さい値の COMP ほど後に描画される。Transparency 処理時に重要
  • Pick Priority: pickpriority — Render Pick CHOP / DAT の Search Area で複数候補があるときの選別基準

Wireframe Color / Light Mask .wcolor 📐

ワイヤーフレーム色とライトマスク:

  • Wireframe Color (R/G/B): wcolorr / wcolorg / wcolorb — ワイヤーフレームシェーディング時の表示色
  • Light Mask: lightmask — 影響を受ける Light COMP の絞り込み (Render TOP の Light リストと AND)

Common Page 🔧

Parent Shortcut .parentshortcut 🔗

コンポーネント内部からこの COMP へのパスとして使えるショートカット名:

  • Parent Shortcut: コンポーネント内部の任意の場所からこの COMP を参照する際のショートカット名 (parent.<name> 形式で利用可能)

Global OP Shortcut .opshortcut 🌐

プロジェクト全体からこの COMP を参照するグローバル名:

  • Global OP Shortcut: プロジェクト内のあらゆる場所からこの COMP へのパスとして使えるグローバル名 (op.<name> 形式で利用可能)

実践アイデア 💡

Example 1: 2 つの親 COMP 間でカメラを補間 🎬

Null COMP (A) + Null COMP (B) → Camera Blend COMP (Type=Blend, Weight1=0.7, Weight2=0.3) → Render TOP

2 つの Null COMP を入力親とし、Weight1 / Weight2 をアニメーションさせることでカメラを 2 視点間で滑らかに移動。Mask で Translate のみブレンドし、Rotate は片側を維持する設定も可能。

  1. Camera Blend COMP の Input 1 / Input 2 に 2 つの Null COMP を接続
  2. TypeBlend に設定
  3. Weight 10.7Weight 20.3 に設定
  4. Mask 1 / Mask 2 を Translate のみに絞ることで位置だけブレンド (回転は最初の親を維持)
  5. Render TOP の Camera 欄に /camblend1 を登録

Example 2: Sequence モードで複数視点をアニメーション切替 🔄

Null COMP (cam1) + Null COMP (cam2) + Null COMP (cam3) → Camera Blend COMP (Type=Sequence) → Render TOP

3 つの視点用 Null COMP を Camera Blend の 3 入力に接続し、Sequence 値を 012 とアニメーションすることで、視点を順次切替えるカットインカメラを構築。Short Rotation を有効にすると 2 視点間の回転補間が最短経路で行われる。

  1. 3 つの Null COMP を視点位置として配置し Camera Blend の Input 1〜3 に接続
  2. TypeSequence に設定
  3. Sequence パラメータを 0→1→2 と Animation COMP / CHOP で駆動
  4. Short Rotation を有効化して回転補間を安定化

Example 3: Constrain モードで動的親追従カメラ 🎯

動的に動く Geometry COMP (player) → Camera Blend COMP (Type=Constrain, Sequence=0) → Render TOP

プレイヤーキャラクターを表す Geometry COMP を入力親とし、Constrain モードで相対オフセットを保ったまま追従。Reset Frame を指定すれば、そのフレームで現在の相対位置を新しいリファレンスとして再キャプチャできる。

  1. 追従対象の Geometry COMP を Camera Blend の Input 1 に接続
  2. TypeConstrainSequence0 に設定
  3. 初期フレームでカメラを希望のオフセット位置に配置 (Translate Z など)
  4. Reset Frame を初期フレームに設定して相対 Transform を確定
  5. プレイヤー Geometry が動いてもカメラは同じ相対関係を維持

関連オペレータ 🔗

類似機能OP 🔍

  • Camera COMP — 親トランスフォームブレンド機能を持たない標準カメラ
  • Geometry COMP — 視点ではなくシーン側を提供する 3D コンテナ
  • Null COMP — Blend / Constrain の親オブジェクトとして頻用される位置マーカー

組み合わせ推奨OP 🔄

  • Render TOP — Camera Blend の出力視点を 2D 画像にレンダリング
  • Geometry COMP — Camera Blend が視界に収めるシーン側
  • Null COMP — Blend の入力親として複数の視点候補を配置
  • Animation COMP — Sequence / Weight 値をキーフレームでアニメーション
  • Light COMP — Render TOP に光源として供給

前処理・後処理COMP 🎯


Info COMP情報 📊

この COMP は Info CHOP / Info DAT による詳細情報取得に対応しています。COMP の World Transform / Local Transform 行列、子 COMP のリスト、入力親数などが取得可能です。

COMP 固有情報 📦

  • num_children: コンポーネント内部の子 OP の総数
  • num_dats: 内部 DAT の数
  • num_chops: 内部 CHOP の数
  • num_tops: 内部 TOP の数
  • num_sops: 内部 SOP の数

汎用オペレータ情報 🔄

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

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

よくある問題と解決策 🔧

❌ Problem: 親トランスフォームがブレンドされず最初の親しか反映されない
✅ Solution:

  • TypeBlend になっているか確認 (SequenceConstrain では単一親のみ採用)
  • Weight 2Weight 4 が 0 になっていないか確認
  • Mask 2Mask 4 で対象成分 (T / R / S) が無効化されていないか確認

❌ Problem: Sequence モードで補間が突然ジャンプする
✅ Solution:

  • Short Rotation を有効化してクォータニオン補間で最短経路に揃える
  • Sequence 値を整数ではなく小数 (例: 0.0 → 1.0) でアニメーションして連続補間
  • 親 COMP 間の Rotate 値が 180° を跨ぐ場合は中間にダミー親を挟む

❌ Problem: Constrain モードで親を切り替えると視点がジャンプする
✅ Solution:

  • Reset Frame を新しい親に切り替えるフレームに設定し相対 Transform を再キャプチャ
  • 公式仕様上、Constrain は親変更時にジャンプしない設計だが、Sequence 値が小数 / 範囲外だと飛ぶことがある
  • 切替直後の数フレームは Type を一時的に Blend に切替えて Weight アニメーションでフェードする回避策も有効

参考資料 📚

その他 🔗

公式リソース 📖

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