
概要 📖 – 形にテクスチャ座標を貼る
Texture Map POPは、ジオメトリに対してテクスチャ座標 (Tex 属性) を投影・生成・変換する POP で、平面・球面・カメラ視点など複数の投影方式に対応です。出力された Tex 属性は下流の PBR MAT / Phong MAT が参照し、テクスチャマップをサーフェスに貼り付けるために使用されます。
主な用途 🎯
- ジオメトリへのテクスチャ座標 (Tex 属性) の生成と投影
- 平面・球面・円柱・カメラ視点など複数の投影方式によるマッピング
- 既存テクスチャ座標 (Tex / Tex2 / Tex3 等) の変換・スケール・回転・オフセット
- プロジェクションマッピング (カメラからの投影) のテクスチャ座標生成
- 下流マテリアル (PBR MAT / Phong MAT / GLSL MAT) で使用する UV の準備
データフロー 🔄
入力: ジオメトリ (ポイント / 頂点属性付き)
↓
投影方式 + 軸・スケール・オフセット計算
↓
出力: Tex 属性 (float3) を持つジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Texture Page 🎨
対象範囲 (Primitive Group) .group 🎯
Primitive Group .group 🎯
– 入力にプリミティブグループが存在する場合、指定したグループに属するプリミティブのみテクスチャ座標を投影対象にする
– 空欄の場合は全プリミティブが対象
入力テクスチャ座標の取り扱い .transforminput 🔁
Transform Input Texture Coord .transforminput 🔁
– オンにすると新規投影ではなく、入力に既に存在するテクスチャ座標属性を Transform Page の Translate / Rotate / Scale で変換する動作になる
– 既存 UV をスクロールさせる・回転させる・タイリングを変える等の用途に使用
Input Texture Coord Attribute .inputtexattr 🔤
– 変換対象とする入力テクスチャ座標属性の名前 (デフォルト uv)
– 複数 UV (uv2, uv3 等) を扱いたい場合に切替
投影元の位置属性 .posattr 📍
Position Attribute .posattr 📍
– 投影に使用するポイント位置属性の名前 (デフォルト P)
– カスタム位置属性で投影したい場合に切替
Projection Axis .axis 🧭
投影に使用する軸を選択するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| X Axis | .x |
X 軸方向から投影 (YZ 平面が投影面) |
| Y Axis | .y |
Y 軸方向から投影 (XZ 平面が投影面) |
| Z Axis | .z |
Z 軸方向から投影 (XY 平面が投影面) |
FOV / Center 設定 (魚眼・カメラ投影用) .fov_center 🔭
FOV Angle .fov 🔭
– カメラ投影や魚眼投影で使用する視野角 (Field of View) を度数で指定
– 値が小さいほど狭角 (テレ)、大きいほど広角 (ワイド)
Center Mode .centermode 🎯
魚眼投影で使用する中心点の決定方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Bounding Box Center | .bbcenter |
入力ジオメトリのバウンディングボックス中心を投影中心として自動使用 |
| Manual | .manual |
投影中心を手動で指定 (下の Center パラメータの XYZ 値を使用) |
Center (Manual 時の中心座標) .center 📌
Center .center 📌
– Center Mode が Manual のときの投影中心位置 (X / Y / Z の 3 成分)
– Bounding Box Center 選択時は無効
カメラ投影 .camera_proj 📷
Camera .camera 📷
– プロジェクションマッピングに使用する Camera COMP への参照 (例: /project1/cam1)
– 指定すると、そのカメラ視点からのパースペクティブ投影で Tex 属性が計算される
Camera Aspect .cameraaspect 📐
– カメラ投影に使用するアスペクト比 (X / Y の 2 成分)
– 投影テクスチャの縦横比に合わせて設定
Apply to .applyto 🎯
計算したテクスチャ座標をジオメトリのどこに書き込むかを決定するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Natural location | .natural |
属性の自然な配置 (ポイント属性 / 頂点属性) を自動判別して書き込む |
| Point texture | .point |
明示的にポイント属性として書き込む |
UV Transform (Scale / Offset / Rotate) .uv_transform 🔄
Scale .s 🔍
– 出力テクスチャ座標のスケーリング係数 (U / V / W の 3 成分)
– 値を大きくすると同じテクスチャがタイリングされる方向に作用
Offset .offset ↔️
– 出力テクスチャ座標に加算するオフセット (U / V / W の 3 成分)
– アニメーションでスクロールさせる用途に使用
Rotate .angle 🔄
– テクスチャ座標を指定値 (度) で回転
– パターンの向きを揃えたいときに使用
Fix Face Seams .fixseams 🧵
Fix Face Seams .fixseams 🧵
– 面の継ぎ目でテクスチャ座標が不連続になる箇所を補正する試みを有効化
– 球面投影など継ぎ目が発生する投影方式で目視ジョイントを軽減
Output Attribute Scope .outputattrscope 🏷️
出力する属性の種別を選択 (出力先属性名のベースを決定)
| 項目 | 内部名 | 説明 |
|---|---|---|
| P | .P |
ポイント位置属性として出力 |
| N | .N |
ノーマル属性として出力 |
| Color | .Color |
Color 属性 (4 成分: RGBA) として出力 |
| Color.rgb | .Color.rgb |
Color 属性の RGB 3 成分のみ出力 |
| Tex | .Tex |
Tex 属性 (テクスチャ座標、float3) として出力 — デフォルト |
| PointScale | .PointScale |
PointScale 属性として出力 (パーティクル等のサイズ制御用) |
| LineWidth | .LineWidth |
LineWidth 属性として出力 (線幅制御用) |
Override Automatic Attribute (属性型の明示指定) .overrideautoattr ⚙️
Override Automatic Attribute .overrideautoattr ⚙️
– オンにすると、入力とパラメータから自動決定される属性種別を上書きし、下の Attribute Type / Components / Default Value を手動で指定可能になる
– 通常はオフのまま自動判定で問題ない
Attribute Type .attrtype 🔢
Override 有効時の出力属性のデータ型を選択するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| float | .float |
32-bit 浮動小数点 (デフォルト) |
| double | .double |
64-bit 倍精度浮動小数点 |
| int | .int |
符号付き整数 |
| uint | .uint |
符号無し整数 |
| Color | .color |
色属性 (float 4 成分 RGBA) |
| Color (double) | .dcolor |
色属性 (double 精度 4 成分) |
| Direction | .dir |
方向ベクトル属性 (float 3 成分) |
| Direction (double) | .ddir |
方向ベクトル属性 (double 精度 3 成分) |
Components .attrnumcomps 🔢
Override 有効時の出力属性の成分数を選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| 1 | .1 |
1 成分 (スカラ値) |
| 2 | .2 |
2 成分 (UV / XY) |
| 3 | .3 |
3 成分 (UVW / XYZ / RGB) |
| 4 | .4 |
4 成分 (RGBA / XYZW) |
Default Value .attrdefaultval 🆗
Default Value .attrdefaultval 🆗
– 出力属性の各成分の既定値 (最大 4 成分: attrdefaultval0〜attrdefaultval3)
– 計算で値が決定できなかった成分にこの値が入る
Texture Method .texmethod 🗺️
Texture Method .texmethod 🗺️
– テクスチャ座標をジオメトリにどう適用するかを決定するメニューパラメータ
– 平面投影 / 球面投影 / 円柱投影 / Equirectangular / Equidistant Azimuth (魚眼) / Triplanar Coordinates 等の投影方式から選択 (利用可能な値の詳細は公式 docs 参照)
Transform Page 🔄
Transform Order .xord 🔢
Translate / Rotate / Scale を適用する全体の順序
| 項目 | 内部名 | 説明 |
|---|---|---|
| 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 🔁
回転の軸順序 (XYZ / XZY / YXZ / YZX / ZXY / ZYX)
| 項目 | 内部名 | 説明 |
|---|---|---|
| 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 / Rotate / Scale / Pivot .trs_pivot 📐
Translate .t ↔️
– テクスチャ座標を 3 軸方向 (tx / ty / tz) に平行移動
Rotate .r 🔄
– テクスチャ座標を X / Y / Z 軸まわりに回転 (rx / ry / rz、単位は度)
Scale .scaletwo 🔍
– テクスチャ座標を 3 軸方向 (scaletwox / scaletwoy / scaletwoz) にスケーリング
Pivot .p 📌
– 回転とスケーリングの基準となる Pivot 点 (px / py / pz)
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: 立方体ジオメトリへの平面投影マッピング 📦
Box POP → Texture Map POP (Projection Axis=Z, Texture Method=平面投影) → Render TOP
Box POP で生成した立方体に対して Texture Map POP の Z 軸平面投影で Tex 属性を生成し、下流の Render TOP に渡してマテリアル付きでテクスチャを貼り付ける基本フロー。Projection Axis を切り替えることで投影方向を変えられる。
- Box POP で立方体ジオメトリを生成
- Texture Map POP を接続し、Projection Axis を
Z Axisに設定 - Scale (
su/sv) でテクスチャのタイリング回数を調整 - Apply to を
Natural locationのままにして Tex 属性を自動配置 - Texture Map POP の出力を PBR MAT / Phong MAT に割り当て、Render TOP でレンダリング
Example 2: 球面へEquirectangular投影(skybox) 🌐
Sphere POP → Texture Map POP (Texture Method=Equirectangular Inside) → PBR MAT (360° HDR) → Render TOP
VR 用 360° 環境テクスチャを球体内側にマッピングして skybox を作るフロー。Texture Method を Equirectangular Inside にすることで、球体の内側から見たときに継ぎ目の少ない緯度経度マッピングが得られる。
- Sphere POP で十分にサブディビジョンされた球体を生成
- Texture Map POP を接続し、Texture Method を
Equirectangular Inside系に設定 - Fix Face Seams をオンにして極付近の継ぎ目を補正
- PBR MAT に 360° HDR テクスチャを割り当てて Render TOP でレンダリング
- Camera COMP を球体の中心に置いて Render TOP でレンダリングし、視点を回しても継ぎ目が見えないことを確認
Example 3: カメラ視点からのプロジェクションマッピング 📷
SOP to POP → Texture Map POP (Camera=/project1/cam1, Texture Method=プロジェクション投影) → Render TOP
実空間の建築物 3D モデルに対して、プロジェクター位置を再現した Camera COMP からの投影でテクスチャ座標を生成し、Render TOP でマテリアル付きのプロジェクションマッピング映像を貼り付けるフロー。プロジェクター実機の FOV / アスペクトを Camera COMP に揃えることで仮想空間上でプリビズができる。
- 投影対象ジオメトリ (建築物 3D モデル等) を SOP to POP に読み込む
- Camera COMP (
/project1/cam1) を作り、実機プロジェクターの位置・向き・FOV と一致させる - Texture Map POP の Camera パラメータに上記 Camera COMP のパスを指定
- Camera Aspect をプロジェクター解像度のアスペクト比に合わせて設定
- 投影映像 (Movie File In TOP 等) を Texture Map POP の Tex 出力経由でジオメトリに貼り付け、Render TOP でレンダリング
関連オペレータ 🔗
類似機能OP 🔍
- Projection POP — テクスチャ座標を直接扱わず、orthographic / spherical / cylindrical 投影で属性生成を行う同系統 POP
- Normalize POP — 属性ベクトルの正規化を行い、マテリアルで使える属性を生成 (公式 docs で Texture Map の関連 OP として参照される)
組み合わせ推奨OP 🔄
- Attribute POP — Tex 属性の作成・編集・名前変更を補助 (Tex2 / Tex3 等の複数 UV セット運用時に頻用)
- Box POP — 前段のジオメトリ生成 POP の代表。デフォルトで Tex 属性も持つが、Texture Map POP で上書き投影できる
- Sphere POP — 球面ジオメトリ生成。Texture Map POP の Equirectangular 系投影と組合せて 360° マッピング
- Camera COMP — プロジェクションマッピング時に Texture Map POP の Camera パラメータから参照する
前処理・後処理POP 🎯
Info POP情報 📊
Texture Map POP は 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: エラー数
POP 汎用情報 (Info CHOP 経由) 📊
num_points: 出力ジオメトリのポイント数num_point_attribs: 出力ジオメトリのポイント属性数 (Tex 属性追加分が含まれる)num_vertex_attribs: 出力ジオメトリの頂点属性数 (Apply to=Natural の場合 Tex が vertex 属性になることがある)num_prim_attribs: 出力ジオメトリのプリミティブ属性数num_prims: 出力ジオメトリのプリミティブ数gpu_memory_used: この POP が使用している GPU メモリ量
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: テクスチャが伸びる / 歪んで貼り付けられる
✅ Solution:
- Projection Axis がジオメトリの主軸と一致しているか確認 (立方体の上面なら Y Axis 等)
- Texture Method がジオメトリ形状に合った投影方式 (球→Equirectangular、立方体→Triplanar Coordinates、平面→平面投影) になっているか再確認
- Scale (
su/sv) を 1:1 に揃え、Camera Aspect がテクスチャの縦横比と一致しているか確認
❌ Problem: Tex 属性が下流で読めない / マテリアルが反応しない
✅ Solution:
- Output Attribute Scope が
Texになっているか確認 (デフォルト)。誤ってColor等を選んでいると Tex 属性が生成されない - Common Page の Delete Input Attributes パターンで Tex が破棄されていないか確認
- 前段に Attribute POP 等で同名の Tex 属性が既存していないか確認 (Transform Input Texture Coord をオンにすると既存属性を変換するモードに切替わる)
❌ Problem: 球面・魚眼投影で極付近に縞・継ぎ目が出る
✅ Solution:
- Fix Face Seams をオンにして面継ぎ目補正を有効化
- Center Mode が
Manualのときは Center 座標がジオメトリのバウンディングボックス中心と大きくズレていないか確認 - Sphere POP のサブディビジョン数が足りない場合は分割を増やしてポリゴン密度を確保
❌ Problem: プロジェクションマッピングで投影位置がカメラ視点と合わない
✅ Solution:
- Camera パラメータが正しい Camera COMP (例:
/project1/cam1) を指しているか確認 - Camera Aspect が投影テクスチャ (Movie File In TOP 等) の解像度比と一致しているか確認
- FOV Angle が実機プロジェクターの仕様と揃っているか確認 (ズレているとマッピング位置が外れる)
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Texture Map POP
- POP 概要 (Points, Vertices and Primitives in POPs)
- 属性 (Attribute) の基礎
- Projection POP (関連投影 POP)

