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

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

Transform POP の座標変換機能を示す図

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

概要 📖 – 点群を移動・回転・拡縮

Transform POPは、入力ジオメトリに移動・回転・スケールなどの座標変換を適用する POPです。変換は属性単位でも適用でき、Look At による向き制御や基準位置への整列にも対応します。

主な用途 🎯

  • ジオメトリ全体の移動・回転・拡大縮小(基本的な座標変換)
  • 特定の属性(位置・法線・色など)だけを対象にした変換
  • 他オブジェクトを向き続ける Look At 制御(カメラ追従など)
  • 属性値をパラメータに割り当てる点ごとの個別変換
  • 基準位置への自動整列(Align によるセンタリング・端揃え)

データフロー 🔄

入力: 点群ジオメトリ(位置・属性を持つ POP データ)

変換処理(Transform / Align / Map の各設定を順に適用)

出力: 座標変換後のジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Transform Page 📁

変換対象の設定 🎯

Mode .mode 🎛️
Mode (変換モード) — 変換を何に対して適用するかを選びます。

Attribute Class .attrclass 🏷️
Attribute Class (属性の種類) — POP が点属性・頂点属性・プリミティブ属性のどれを対象に動作するかを指定します。

Input Attribute ( Scope ) .inputattrscope 🔍
Input Attribute ( Scope ) (入力属性の範囲) — モードが属性変換のときの入力属性、範囲変換のときの入力属性スコープを指定します。

Group .group 🗂️
Group (グループ) — 入力グループがある場合、ここでグループ名を指定するとこの POP はそのグループのみに作用します。

Weight Attribute .weightattr ⚖️
Weight Attribute (重み属性) — 重み値を格納する属性の範囲を指定します。

Transform Order .xord 🔢

Transform Order (変換順序) — 移動・回転・拡縮を適用する全体の順序を設定します。

項目 内部名 説明
Scale Rotate Translate .srt 拡縮 → 回転 → 移動 の順
Scale Translate Rotate .str 拡縮 → 移動 → 回転 の順
Rotate Scale Translate .rst 回転 → 拡縮 → 移動 の順
Rotate Translate Scale .rts 回転 → 移動 → 拡縮 の順
Translate Scale Rotate .tsr 移動 → 拡縮 → 回転 の順
Translate Rotate Scale .trs 移動 → 回転 → 拡縮 の順

Rotate Order .rord 🔁

Rotate Order (回転順序) — 全体の変換順序の中で、各軸まわりの回転を適用する順序を設定します。

項目 内部名 説明
Rx Ry Rz .xyz X軸 → Y軸 → Z軸 の順に回転
Rx Rz Ry .xzy X軸 → Z軸 → Y軸 の順に回転
Ry Rx Rz .yxz Y軸 → X軸 → Z軸 の順に回転
Ry Rz Rx .yzx Y軸 → Z軸 → X軸 の順に回転
Rz Rx Ry .zxy Z軸 → X軸 → Y軸 の順に回転
Rz Ry Rx .zyx Z軸 → Y軸 → X軸 の順に回転

移動・回転・拡縮 📐

Translate .t ↔️
Translate (移動) — 点群を3つの軸方向に移動させます。
– 各軸の移動量を tx / ty / tz で個別に指定

Rotate .r 🔄
Rotate (回転) — 点群を X・Y・Z の各軸まわりに回転させます。角度は度数で指定します。
– 各軸の回転角を rx / ry / rz で個別に指定

Scale .s 🔎
Scale (拡縮) — 各軸ごとの拡大縮小係数です。
– 各軸の倍率を sx / sy / sz で個別に指定

Pivot .p 📍
Pivot (基点) — 回転と拡縮の中心となる基準点です。
– 基点座標を px / py / pz で指定

Uniform Scale .scale 🔍
Uniform Scale (一律拡縮) — 全軸に共通の拡大縮小係数を指定します。

Invert .invert ♻️
Invert (逆変換) — 移動・回転・拡縮による変換結果を反転させます。

Vectors Maintain Length .vlength 📏
Vectors Maintain Length (ベクトル長を維持) — 変換適用後も元のベクトル長を保つようにします。

Look At 制御 👁️

Look At .lookat 🎯
Look At (注視対象) — 指定したオブジェクトの原点を向き続けるように姿勢を制御します。対象を移動させても向き続けるため、カメラを別オブジェクトに追従させる用途に便利です。

Up Vector .upvector ⬆️

Up Vector (上方向ベクトル) — Look At の変換を組むときの上方向を設定します:

  • Up Vector (upvectorx): Look At の姿勢を決める上方向ベクトルの X 成分
  • Up Vector (upvectory): Look At の姿勢を決める上方向ベクトルの Y 成分
  • Up Vector (upvectorz): Look At の姿勢を決める上方向ベクトルの Z 成分

Forward Direction .forwarddir 🧭

Forward Direction (前方向) — Look At 変換における前方向を決定します。

項目 内部名 説明
+X .posx 前方向を +X 軸に設定
-X .negx 前方向を -X 軸に設定
+Y .posy 前方向を +Y 軸に設定
-Y .negy 前方向を -Y 軸に設定
+Z .posz 前方向を +Z 軸に設定
-Z .negz 前方向を -Z 軸に設定

行列による変換 🧮

Xform Matrix/ CHOP / DAT .xformmatrixop 🧮
Xform Matrix/ CHOP / DAT (変換行列) — 4×4 の行列を直接指定して変換を設定します。

Multiply Order .multiplyorder ✖️

Multiply Order (合成順序) — 変換行列とパラメータ由来の変換を合成する順序です。

項目 内部名 説明
Input, then Transform Page .inputxformpage 入力 → Transform ページの変換 の順に合成
Transform Page, then Input .xformpageinput Transform ページの変換 → 入力 の順に合成

Output Attribute .outputattrscope 📤

Output Attribute ( Scope ) (出力属性) — 出力する属性名をメニューから選びます(属性の成分も選択可能)。

項目 内部名 説明
P .P 位置属性を出力対象にする
N .N 法線属性を出力対象にする
Color .Color 色属性を出力対象にする
Color.rgb .Color.rgb 色属性の RGB 成分を出力対象にする
Tex .Tex テクスチャ座標属性を出力対象にする
PointScale .PointScale 点スケール属性を出力対象にする
LineWidth .LineWidth 線幅属性を出力対象にする

カスタム属性の上書き 🛠️

Override Automatic Attribute .overrideautoattr 🛠️
Override Automatic Attribute (自動属性の上書き) — POP の入力とパラメータから自動生成される属性の種類を上書きします。新しい属性の型と成分数を手動で指定できます。

Attribute Type .attrtype 🔠

Attribute Type (属性の型) — 出力属性のデータ型です(既定は浮動小数点)。

項目 内部名 説明
float .float 単精度浮動小数点
double .double 倍精度浮動小数点
int .int 符号付き整数
uint .uint 符号なし整数
Color .color 色(単精度)
Color (double) .dcolor 色(倍精度)
Direction .dir 方向ベクトル(単精度)
Direction (double) .ddir 方向ベクトル(倍精度)

Components .attrnumcomps 🔢

Components (成分数) — 新しいカスタム属性の成分数です。

項目 内部名 説明
1 .1 成分数 1(スカラー)
2 .2 成分数 2
3 .3 成分数 3(ベクトル)
4 .4 成分数 4

Default Value .attrdefaultval 🔧

Default Value (既定値) — 出力属性の成分が計算できないときに使われる既定値です:

  • Default Value (attrdefaultval0): 出力属性の既定値(第1成分)。計算できない場合に使用
  • Default Value (attrdefaultval1): 出力属性の既定値(第2成分)
  • Default Value (attrdefaultval2): 出力属性の既定値(第3成分)
  • Default Value (attrdefaultval3): 出力属性の既定値(第4成分)

Align Page 📁

Align Transform Order .alignxformorder 🔢

Align Transform Order (整列の適用順) — Transform ページと Align ページの変換のどちらを先に適用するかを設定します。

項目 内部名 説明
Transform, then Align .transformalign Transform → Align の順に適用
Align, then Transform .aligntransform Align → Transform の順に適用

Align Operation Order .alignopord 🔁

Align Operation Order (整列の操作順) — 整列変換で拡縮と移動を適用する順序を設定します。

項目 内部名 説明
Scale Translate .st 拡縮 → 移動 の順
Translate Scale .ts 移動 → 拡縮 の順

Align Translate X .aligntx ↔️

Align Translate X (X整列) — 整列変換でジオメトリの中心を X 方向に設定します。

項目 内部名 説明
Off .off X方向の整列を無効
Origin .origin 原点を基準に整列

From Input X .fromx 📥

From Input (入力側基準・X) — 入力ジオメトリのどの部分を原点または参照入力に揃えるかを決めます。

項目 内部名 説明
Min .min 最小端を基準にする
Center .center 中心を基準にする
Max .max 最大端を基準にする

To Reference X .tox 📌

To Reference (参照側基準・X) — 参照のどの位置に入力を揃えるかを決めます。

項目 内部名 説明
Min .min 参照の最小端に揃える
Center .center 参照の中心に揃える
Max .max 参照の最大端に揃える

Align Translate Y .alignty ↕️

Align Translate Y (Y整列) — 整列変換でジオメトリの中心を Y 方向に設定します。

項目 内部名 説明
Off .off Y方向の整列を無効
Origin .origin 原点を基準に整列

From Input Y .fromy 📥

From Input (入力側基準・Y) — 入力ジオメトリのどの部分を原点または参照入力に揃えるかを決めます。

項目 内部名 説明
Min .min 最小端を基準にする
Center .center 中心を基準にする
Max .max 最大端を基準にする

To Reference Y .toy 📌

To Reference (参照側基準・Y) — 参照のどの位置に入力を揃えるかを決めます。

項目 内部名 説明
Min .min 参照の最小端に揃える
Center .center 参照の中心に揃える
Max .max 参照の最大端に揃える

Align Translate Z .aligntz 🔃

Align Translate Z (Z整列) — 整列変換でジオメトリの中心を Z 方向に設定します。

項目 内部名 説明
Off .off Z方向の整列を無効
Origin .origin 原点を基準に整列

From Input Z .fromz 📥

From Input (入力側基準・Z) — 入力ジオメトリのどの部分を原点または参照入力に揃えるかを決めます。

項目 内部名 説明
Min .min 最小端を基準にする
Center .center 中心を基準にする
Max .max 最大端を基準にする

To Reference Z .toz 📌

To Reference (参照側基準・Z) — 参照のどの位置に入力を揃えるかを決めます。

項目 内部名 説明
Min .min 参照の最小端に揃える
Center .center 参照の中心に揃える
Max .max 参照の最大端に揃える

Align Scale .alignscale 🔎

Align Scale (整列スケール) — 整列変換でジオメトリのスケールを設定します。

項目 内部名 説明
Per Axis .peraxis 軸ごとに個別のスケールを設定
Unity .unity 等倍に揃える

Align Scale X .alignscalex 🔍

Align Scale X (Xスケール整列) — 軸ごと指定のとき、整列変換における X スケールを設定します。

項目 内部名 説明
Off .off Xスケール整列を無効
Unity .unity 等倍に揃える
Unity Proportional .unityprop 縦横比を保って等倍に揃える

Align Scale Y .alignscaley 🔍

Align Scale Y (Yスケール整列) — 軸ごと指定のとき、整列変換における Y スケールを設定します。

項目 内部名 説明
Off .off Yスケール整列を無効
Unity .unity 等倍に揃える
Unity Proportional .unityprop 縦横比を保って等倍に揃える

Align Scale Z .alignscalez 🔍

Align Scale Z (Zスケール整列) — 軸ごと指定のとき、整列変換における Z スケールを設定します。

項目 内部名 説明
Off .off Zスケール整列を無効
Unity .unity 等倍に揃える
Unity Proportional .unityprop 縦横比を保って等倍に揃える

Map Page 📁

属性マッピング設定 🗺️

Mapping .map 🗺️
Mapping (マッピング) — 属性をパラメータに割り当てる連続パラメータブロックの開始点です。

OP .map0op 🔗
OP (参照元) — パラメータマッピングの元となる OP です。既定の _in0 は入力 POP を意味します。

Element .map0element 🧩
Element (要素) — 点ごとにパラメータへ割り当てられる属性(または属性の成分)です。

Target Parameter .map0parm 🎯

Target Parameter (割当先パラメータ) — 属性から値を受け取る、この POP 上のパラメータです。

項目 内部名 説明
t (Translate) .t 移動(全軸)
tx .tx 移動 X
ty .ty 移動 Y
tz .tz 移動 Z
r (Rotate) .r 回転(全軸)
rx .rx 回転 X
ry .ry 回転 Y
rz .rz 回転 Z
s (Scale) .s 拡縮(全軸)
sx .sx 拡縮 X
sy .sy 拡縮 Y
sz .sz 拡縮 Z
p (Pivot) .p 基点(全軸)
px .px 基点 X
py .py 基点 Y
pz .pz 基点 Z
scale (Uniform Scale) .scale 一律拡縮

Combine Operation .map0combineop

Combine Operation (合成演算) — 属性値とパラメータ値の合成方法です。

項目 内部名 説明
Set .set 属性値で置き換える
Multiply .mult パラメータ値に乗算する
Add .add パラメータ値に加算する

Common Page 🔧

共通設定 🔧

Bypass .bypass ⏭️
Bypass (バイパス) — 最初の入力を変換せずそのまま出力へ通します。

Free Extra GPU Memory .freeextragpumem 🧹
Free Extra GPU Memory (余剰 GPU メモリの解放) — 出力メモリが増減した際に蓄積したメモリを解放します。

Delete Input Attributes .delinputattrs 🗑️
Delete Input Attributes (入力属性の削除) — 指定した属性のみを出力します。属性を別ブランチに分離するのに役立ちます。


実践アイデア 💡

Example 1: 点群全体の配置調整 🎯

Grid POP → Transform POP (Translate / Rotate / Scale) → Geometry COMP

Grid POP で生成した平面の点群を Transform POP で移動・回転・拡縮し、シーン内の任意の位置・向き・サイズに配置する基本フロー。レイアウト調整の起点になります。

  1. Grid POP で平面状の点群を生成
  2. Transform POP の Translate / Rotate / Scale で位置・向き・サイズを調整
  3. 出力を Geometry COMP に渡してシーンに表示

Example 2: カメラの自動追従 👁️

Point Generator POP → Transform POP (Look At) → Render

Transform POP の Look At に追従させたいオブジェクトを指定し、対象が移動しても常にそちらを向き続ける姿勢制御を組む例。カメラやスポットライトの自動追従に応用します。

  1. Look At に追従対象のオブジェクトを指定
  2. Up Vector と Forward Direction で姿勢の基準を設定
  3. 対象が動いても向きが自動で追従することを確認

Example 3: 属性駆動の点ごと変換 🗺️

Noise POP → Transform POP (Map: 属性→パラメータ) → 出力

Noise POP で各点に与えたノイズ属性を Transform POP の Map ページでパラメータに割り当て、点ごとに異なる移動量や回転量を与える例。群衆や粒子の自然なばらつき表現に使えます。

  • Noise POP で各点にノイズ属性を付与
  • Transform POP の Map で属性を Translate / Rotate に割り当て
  • Combine Operation で合成方法(Set / Multiply / Add)を選択

Example 4: 基準位置への自動整列 📐

File In POP → Transform POP (Align) → 出力

読み込んだジオメトリを Transform POP の Align ページで原点や参照入力に揃え、端揃え・中心揃えを自動化する例。サイズの異なるモデルを統一基準に整列させる用途に向きます。

  • File In POP でジオメトリを読み込む
  • Align Translate と From Input / To Reference で揃え方を指定
  • 中心揃え・端揃えが自動で適用されることを確認

関連オペレータ 🔗

類似機能OP 🔍

組み合わせ推奨OP 🔄

  • Math POP — 変換前後で属性値を演算・正規化
  • Noise POP — Map 用の属性をノイズで生成
  • Transform CHOP — CHOP 側で変換行列を計算して供給
  • CHOP to POP — CHOP の値を点属性に変換して Map で利用
  • DAT to POP — テーブル値を点属性に変換して Map で利用

前処理・後処理POP 🎯


Info情報 📊

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

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: 出力ジオメトリの総点数
  • num_vertices: 出力ジオメトリの総頂点数
  • num_primitives: 出力ジオメトリの総プリミティブ数

属性情報 🏷️

  • num_point_attribs: 点属性の数
  • num_vertex_attribs: 頂点属性の数

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

よくある問題と解決策 🔧

❌ Problem: 回転と拡縮の結果が想定とずれる
✅ Solution:

  • Transform Order (変換順序) を確認し、移動・回転・拡縮の適用順を見直す
  • Pivot (基点) を調整し、回転・拡縮の中心が意図した位置にあるか確認
  • Rotate Order (回転順序) が目的の軸順になっているか確認

❌ Problem: Look At が対象を正しく向かない
✅ Solution:

  • Up Vector (上方向ベクトル) が適切な軸を指しているか確認
  • Forward Direction (前方向) を対象に合った軸(+Z など)に設定
  • 前段に Group POP を入れて対象点を絞り込む

❌ Problem: 属性の変換が反映されない
✅ Solution:

  • Attribute Class (属性の種類) が対象属性と一致しているか確認
  • Output Attribute ( Scope ) (出力属性) で正しい属性を選択しているか確認
  • 後段で Math POP を使い値の範囲を検証

参考資料 📚

その他 🔗

公式リソース 📖

関連オペレータ 🔗

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