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

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

Vertex SOP の頂点属性編集機能を示す図

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

概要 📖 – 頂点ごとに属性を編集する

Vertex SOPは、入力ジオメトリの頂点ごとに色・透明度・テクスチャ座標などの属性を編集・作成する SOPです。点単位ではなく頂点単位で属性を扱う点が Point SOP との違いで、同じ点を共有する複数の面に別々の色や UV を割り当てられます。

主な用途 🎯

  • 頂点ごとの色の付与と編集(同じ点を共有する面それぞれに別の色を持たせる)
  • 頂点ごとのテクスチャ座標の生成(UV を頂点単位で割り当てて貼り分ける)
  • 面の継ぎ目をはっきり分ける色分け(点ではなく頂点に色を置き境界をくっきりさせる)
  • サブディビジョン用のクリース重みの設定(辺ごとの折れ具合を頂点属性で制御)
  • 頂点へのカスタム属性の追加(数値やベクトルの独自データを頂点に持たせる)

データフロー 🔄

入力: ジオメトリの頂点

属性処理 (各頂点の色・テクスチャ座標・クリース・カスタム属性を式で編集)

出力: 頂点属性が追加・更新されたジオメトリの SOP

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Vertex Page 📁

対象の絞り込み 🎯

Group .group 🎯
Group (対象グループ) — 入力にグループがある場合、ここにグループ名を指定するとそのグループだけを処理対象にする
– パターンマッチング (* 等) が使える

Color .doclr 🎨

Color (色) — 入力ジオメトリの頂点カラー属性を維持・追加・削除のいずれにするかを選択する

項目 内部名 説明
Keep Color .off 既存の色属性を維持する
Add Color .on Cd 色頂点属性を追加・変更する (下の Color フィールドの式を使用)
No Color .remove Cd 色頂点属性を SOP から削除する

色と透明度の式 🖌️

Color .diff 🎨
Color (色の式) — Add Color を選んだとき、頂点色を式で制御する。編集対象は赤 me.inputColor[0] / 緑 me.inputColor[1] / 青 me.inputColor[2] / アルファ me.inputColor[3]
– No Color を選ぶと Cd 色頂点属性が削除される

Alpha .alpha 🌫️
Alpha (透明度) — RGB と同じ方法でアルファ属性を制御する。アルファは Cd[3] で、入力からは me.inputColor[3] で参照する

Texture .douvw 🗺️

Texture (テクスチャ座標) — 入力ジオメトリの頂点テクスチャ座標属性を維持・追加・削除のいずれにするかを選択する

項目 内部名 説明
Keep Texture .off 既存のテクスチャ座標を維持する
Add Texture .on uv テクスチャ座標頂点属性を追加・変更する (下の Texture フィールドの式を使用)
No Texture .remove uv テクスチャ座標頂点属性を SOP から削除する

テクスチャ座標の式 🗺️

Texture .map 🗺️
Texture (テクスチャ座標の式) — Add Texture を選んだとき、頂点テクスチャ座標の値を式で制御する。編集対象は me.inputTexture[0] / me.inputTexture[1] / me.inputTexture[2]
– No Texture を選ぶと uv テクスチャ座標頂点属性が削除される

Crease .docrease 📐

Crease (クリース) — creaseweight 属性を維持・追加・削除のいずれにするかを選択する。クリース重みはサブディビジョンサーフェスで辺ごとの折れの鋭さを設定する属性で、各頂点から次の頂点へ伸びる辺の重みを定義する

項目 内部名 説明
Keep Crease .off 既存のクリース重みを維持する
Add Crease .on creaseweight 属性を追加・変更する (下の Crease フィールドの式を使用)
No Crease .remove creaseweight 属性を SOP から削除する

※ 注意: クリース重みは 0 より大きい値にする。値が大きいほどサブディビジョン時の辺が鋭くなる。クリース属性は Subdivide SOP に渡すと可視化できる。

引用元: 公式 docs

クリースの式 📏

Crease .crease 📐
Crease (クリースの式) — Add Crease を選んだとき、クリース重みの値を式で制御する。編集対象は me.inputVertex.creaseWeight[0]
– 重みは 0.0001 から無限大までの値を取れる


Attributes Page 🏷️

カスタム属性の定義 🏷️

Custom Attribute .attr 🧩
Custom Attribute (カスタム属性) — 作成するジオメトリに追加するカスタム属性のシーケンス (複数定義できる)

Name .attr0name 🔤
Name (属性名) — この名前でカスタム属性を作成する

Type .attr0type 🔣

Type (属性の型) — 作成するカスタム属性の型をこのメニューから選択する

項目 内部名 説明
float .float 浮動小数点 1 成分
vec2 .vec2 浮動小数点 2 成分ベクトル
vec3 .vec3 浮動小数点 3 成分ベクトル
vec4 .vec4 浮動小数点 4 成分ベクトル
int .int 整数 1 成分
ivec2 .ivec2 整数 2 成分ベクトル
ivec3 .ivec3 整数 3 成分ベクトル
ivec4 .ivec4 整数 4 成分ベクトル

カスタム属性の値 🔢

Value .attr0value 🔢
Value (属性値) — これらのパラメータでカスタム属性の値を設定する (型に応じて最大 4 成分まで入力できる)


実践アイデア 💡

Example 1: 面の継ぎ目で色を分ける 🎨

Box SOP → Vertex SOP (Color = Add Color, 面ごとに別の式) → Geometry COMP → Render TOP

Box SOP の各面に Vertex SOP で頂点カラーを与え、同じ点を共有する面でも頂点単位で別々の色を持たせるパターン。点に色を置くと面の境界がぼけるが、頂点に置くと継ぎ目をくっきり分けられる。

  1. Box SOP を配置して立方体ジオメトリを用意する
  2. Vertex SOP を後段に接続し ColorAdd Color に設定する
  3. Color の赤・緑・青に me.inputColor[0] 等を基準にした式を入れて頂点色を決める
  4. 同じ点を共有する面でも頂点ごとに異なる色が付き、境界がはっきり分かれる
  5. Geometry COMP / Camera COMP / Render TOP で描画結果を確認する

Example 2: 頂点ごとに UV 貼り分け 🗺️

Grid SOP → Vertex SOP (Texture = Add Texture, map に式) → Phong MAT → Geometry COMP

Grid SOP のジオメトリに Vertex SOP で頂点テクスチャ座標を追加し、面ごとに UV を割り当ててテクスチャを貼り分けるパターン。点単位の UV では表現しにくい面ごとの貼り分けに向く。

  1. Grid SOP を配置してテクスチャを貼る面を用意する
  2. Vertex SOP を接続し TextureAdd Texture に設定する
  3. Textureme.inputTexture[0] / me.inputTexture[1] を基準にした式を入れて UV を決める
  4. Phong MAT などにテクスチャを設定して描画する
  5. Geometry COMP に接続してテクスチャの貼り方を確認する

Example 3: クリース重みを設定 📐

Box SOP → Vertex SOP (Crease = Add Crease, crease に重みの式) → Subdivide SOP → Geometry COMP

Box SOP の辺に Vertex SOP でクリース重みを設定し、後段の Subdivide SOP で細分化したときに特定の辺だけ鋭く残すパターン。重みが大きい辺ほど折れがはっきり保たれる。

  1. Box SOP を配置して立方体ジオメトリを用意する
  2. Vertex SOP を接続し CreaseAdd Crease に設定する
  3. Crease の式に me.inputVertex.creaseWeight[0] を基準にした正の重みを入れる
  4. 後段に Subdivide SOP を接続して細分化する
  5. 重みを付けた辺だけ鋭く残り、他の辺はなめらかになることを Geometry COMP で確認する

関連オペレータ 🔗

類似機能OP 🔍

  • Point SOP — 点ごとに属性を編集する SOP (Vertex SOP は頂点ごと)
  • Attribute Create SOP — 点・頂点・プリミティブに任意の属性を作成する SOP
  • Attribute SOP — 属性の名前変更・削除・型変更を行う SOP

組み合わせ推奨OP 🔄

  • Subdivide SOP — Vertex SOP のクリース重みを使って辺ごとの折れ具合を反映
  • Material SOP — 頂点色や UV を持つジオメトリにマテリアルを割り当て
  • Texture SOP — 投影方式での UV 生成と頂点単位の UV 編集を組み合わせ

前処理・後処理SOP 🎯


Info CHOP情報 📊

Vertex 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:

  • 属性は点か頂点のどちらか一方にしか持てないため、入力に点カラー属性があると頂点属性へ自動的に昇格される — 入力側の点カラー属性を確認する
  • 前段で Point SOP が色を点に置いていないか確認し、頂点で扱いたい場合は点側の色を整理する
  • ColorKeep Color のままだと編集が効かないため Add Color に切り替える

❌ Problem: テクスチャ座標が反映されない
✅ Solution:

  • Texture のメニューが Keep Texture のままだと既存値が維持されるため Add Texture に切り替える
  • UV を式で変えるときは me.inputTexture[0] 等の参照名が合っているか確認する
  • 後段のマテリアルがテクスチャ座標を使う設定になっているか、前段に Texture SOP 等で UV が用意されているか確認する

❌ Problem: クリース重みがサブディビジョンに効かない
✅ Solution:

  • クリース重みは 0 より大きい値にする — 0 以下だと辺が鋭く残らない
  • CreaseAdd Crease になっているか、式が me.inputVertex.creaseWeight[0] を基準にしているか確認する
  • 後段に Subdivide SOP を接続しているか確認する (クリースはサブディビジョン時に効く属性)

参考資料 📚

その他 🔗

公式リソース 📖

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