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

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

Texture SOP のUV座標生成機能を示す図

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

概要 📖 – テクスチャ座標を生成

Texture SOPは、ジオメトリにテクスチャ座標(UV)を割り当て、テクスチャの貼り方を制御するSOPです。投影・球面・円柱・面ごとなど多彩な方式が選べ、生成したUVを拡大・回転・移動で調整します。

主な用途 🎯

  • ジオメトリへのUV座標(テクスチャ座標)の生成
  • 平面・円柱・球面など投影方式によるテクスチャ貼り付け
  • 全天球(エクイレクタングラー)テクスチャのスカイボックスへの適用
  • 面ごとへのテクスチャ複製マッピング(レンガ・岩肌など)
  • 既存UV座標の拡大・縮小・回転・移動による調整

データフロー 🔄

入力: ジオメトリ(ポリゴン/スプライン)

UV生成処理(投影・球面・面ごと等の方式に応じた座標計算)

出力: UV座標が付与されたジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Page 📁

対象グループ .group 🎯

Primitive Group .group 🎯
Primitive Group (対象プリミティブグループ) — 入力にプリミティブグループがある場合、ここで名前を指定するとそのグループにのみ処理が適用されます
– 点グループ・頂点グループには使えません。パターンマッチングに対応します


Texture Page 🖼️

テクスチャ層 .texlayer 📐

Texture Layer .texlayer 📐
Texture Layer (テクスチャ層) — ジオメトリに複数のテクスチャ層が適用されている場合、どの層のUV座標を処理するかを指定します

Texture Type .type 🗺️

Texture Type (投影方式) — UV座標をどの方式で生成するかを決めるメニュー。Face・Uniform Spline・Arc-Length Spline はスプライン曲線にも対応します。

項目 内部名 説明
Orthographic .texture 投影軸 (Projection Axis) からの直接投影
XYZ Position .xyzposition 頂点のXYZ位置をそのままUVW値にコピー
Equirectangular Inside (Spherical Polar) .equirectangularin 全天球テクスチャをオブジェクト内側に貼る座標。スカイボックス向け
Equirectangular Outside (Spherical Polar) .equirectangularout 全天球テクスチャをオブジェクト外側に貼る座標
Cylindrical .cylin 投影軸方向に円柱状に巻き付け
Row & Columns .rowcol メッシュ構造(Grid/Sphere/Tube/Skin/Sweep)向け。行にU、列にVを割り当て
Face .face 各面にテクスチャの複製をマッピング。Facet SOPで点を独立させてから使用。岩肌・レンガ向け
Modify Source .modify 既存UV座標を維持し、Scale/Offsetでオフセット・拡大縮小のみ実行
Uniform Spline .suniform NURBS/Bezier面のドメイン空間をU/Vで一様サンプリングしUV化
Average Spline .saverage 連続するノットの平均(Greville点)をUV属性に格納。ペースト面向け
Arc Length Spline .sarclen スプライン基底をもとに弧長間隔でUV座標を生成
Edge Length .edgelength ハル+面(NURBS/Bezier/ポリゴン)に適用
Perspective From Camera .persp カメラ投影に合わせてUVを割り当て。クリップ面外の点は(0,0,0)
Equidistant Azimuth (Fish Eye 180) .equiazimuth 180度フィッシュアイマップ用の座標
Equidistant Azimuth (Fish Eye 360) .equiazimuth360 360度フィッシュアイマップ用の座標

※ 注意: Face / Uniform Spline / Arc-Length Spline などスプライン系を使う場合、Group 欄にペースト階層を指定すると全ノードにUV計算が伝播します。投影系の方がスプライン系よりペースト面間のテクスチャ連続性が滑らかになる傾向があります。

引用元: 公式 docs

Projection Axis .axis 🧭

Projection Axis (投影軸) — 投影する軸、またはスプラインからの投影方法。X・Y・Z軸から選択します。

項目 内部名 説明
X Axis .x X軸方向に投影
Y Axis .y Y軸方向に投影
Z Axis .z Z軸方向に投影

Apply to .coord 📍

Apply to (適用先) — UV座標を自然な位置・点・頂点のどこに適用するかを選びます。

項目 内部名 説明
Natural location .natural 自然な位置に適用。Polar/Cylindrical/Rows&Columns/Faceでは頂点UV、Orthographic/各Splineでは点UVを生成
Point texture .point 点(ポイント)にUVを適用。閉じた面のシームで共有

カメラ・調整 🎚️

Camera Name .camera 📷
Camera Name (カメラ名) — Texture Type が Perspective From Camera のときに使用。投影元のライトまたはカメラを選択します

Scale .s 🔍
Scale (拡大縮小) — テクスチャ座標を指定量だけ拡大・縮小します

Offset .offset ↔️
Offset (オフセット) — テクスチャ座標を指定量だけずらします

Rotate .angle 🔄
Rotate (回転) — テクスチャ座標を指定値だけ回転します

Fix Face Seams .fixseams 🧵
Fix Face Seams (面シーム補正) — 面の継ぎ目でのテクスチャ連続性を補正します


Transform Page 🔧

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軸(X/Y/Z)方向に移動します

Rotate .r 🔄
Rotate (回転) — テクスチャ座標を3軸(X/Y/Z)で回転します

Scale .scaletwo 🔍
Scale (拡大縮小) — テクスチャ座標を3軸(X/Y/Z)で拡大・縮小します

Pivot .p 📍
Pivot (基点) — 変換の基点。テクスチャ座標が拡大・回転する中心点を定義します
– 拡大縮小時は基点に向かってテクスチャが寄り、回転は基点位置で結果が大きく変わります


実践アイデア 💡

Example 1: 全天球スカイボックス 🌐

Sphere SOP → Texture SOP (Equirectangular Inside) → Geometry COMP → Material

球状ジオメトリに対し Texture SOP の Equirectangular Inside を使い、全天球(360度)パノラマ画像を内側から正しく貼り付けてスカイボックス背景を作る基本フロー。

  1. Sphere SOP で背景用の球を作成
  2. Texture SOP の Texture Type を「Equirectangular Inside」に設定
  3. 全天球パノラマ画像をマテリアルのカラーマップに割り当て
  4. 球の内側からシーンを囲む背景として表示

Example 2: 面ごとのテクスチャ 🧱

Box SOP → Facet SOP → Texture SOP (Face) → Material

岩肌やレンガのような質感を出すため、Facet SOP で点を独立させてから Texture SOP の Face モードで各面にテクスチャの複製をマッピングする用途。

  • Facet SOP で点を独立(ユニーク)化してから Texture SOP に渡す
  • Texture Type を「Face」に設定し各面へテクスチャを複製マッピング

Example 3: 投影でロゴ貼り 🎯

Grid SOP → Texture SOP (Orthographic) → Transform → Material

平面ジオメトリに Texture SOP の Orthographic を使い、投影軸方向からロゴ画像を直接投影し、Scale/Offset/Rotate でロゴの大きさと位置を整える例。

  • Texture Type を「Orthographic」、Projection Axis を貼りたい面に合わせて選択
  • Scale と Offset でロゴの大きさと位置を調整

関連オペレータ 🔗

類似機能OP 🔍

  • TODO

組み合わせ推奨OP 🔄

  • Facet SOP — Face モードの前に点を独立化させる
  • Basis SOP — スプライン系投影前に基底を0〜1へ再マップ
  • Carve SOP — 閉じた面を開いてシーム問題を回避
  • Material SOP — UV割り当て後にマテリアルを適用

前処理・後処理SOP 🎯


Info情報 📊

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

ジオメトリ統計 📐

  • 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: このオペレータのエラー数

クック統計 ⏱️

  • cook_time: 直近のクックに要した時間(ミリ秒)
  • total_cooks: 累計クック回数

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

よくある問題と解決策 🔧

❌ Problem: テクスチャが歪む・伸びる
✅ Solution:

  • Texture Type が形状に合っているか確認(球は Equirectangular、円柱は Cylindrical 等)
  • Projection Axis を貼りたい面の向きに合わせる
  • Scale / Offset でアスペクト比を調整

❌ Problem: 面ごとのテクスチャが崩れる
✅ Solution:

  • Face モードの前に前処理で Facet SOP を入れて点を独立化
  • Apply to の設定(点UVか頂点UVか)を確認
  • Fix Face Seams をオンにして継ぎ目を補正

❌ Problem: スプライン面でUVが不連続になる
✅ Solution:

  • 前処理で Basis SOP を入れて基底を0〜1に再マップ
  • 隣接面間で基底(Basis)を連結(Concatenate)してから貼る
  • 投影系の方式(Orthographic 等)に切り替えて連続性を確保

参考資料 📚

その他 🔗

公式リソース 📖

関連オペレータ 🔗

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