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

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

Deform SOP のボーン階層によるジオメトリ変形機能を示す図

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

概要 📖 – 頂点をボーンで変形

Deform SOPは、キャプチャ属性に従ってボーン階層でジオメトリを変形させる SOPです。Capture SOP で付与したポイントウェイトを参照し、Skeleton Root Path 配下の Bone 階層の動きに合わせてメッシュを変形させ、キャラクタースキニングを実現します。

主な用途 🎯

  • キャラクターアニメーションのスキニング — Capture SOP で付与したウェイト属性に従い、Bone 階層の動きに合わせてメッシュを変形
  • Capture SOP との組合せでスケルタル変形パイプラインを構築 (Capture SOP → Deform SOP → Geometry COMP の標準フロー)
  • Delete Capture Attributes でメモリ節約 — 変形後はウェイト属性を破棄して後段 SOP の処理コストを削減
  • Deform Normals で法線も同期変形 — シェーディングを正しく追従させて光の当たり方の崩れを防止
  • Skeleton Root Path で異なるリグへの再ターゲット — 同一メッシュを別 Bone 階層で動かすバリエーション制作

データフロー 🔄

入力 0: キャプチャ済ジオメトリ (Capture SOP 出力のウェイト属性付き) + Skeleton Root Path 参照の Bone 階層

各ポイントが影響度に応じて Bone の動きに追従して変形

(任意) Deform Normals で法線も同期変形

出力: 変形後ジオメトリ SOP

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Deform Page 📁

対象ポイント絞り込み 🎯

Group .group 🎯
Group (対象ポイント・プリミティブ群) — 変形対象とするポイントまたはプリミティブのグループを指定します
– 空欄の場合は入力 0 の全ポイントが変形対象になります
*[0-10] 等のパターンマッチングが使用可能

スケルトン参照 🦴

Skeleton Root Path .skelrootpath 🌳
Skeleton Root Path (スケルトンの起点パス) — 変形に使う Bone 階層のルート COMP のパス
– このパス配下を traverse して見つかった Capture Region (Bone) 群の現在位置で変形を計算
– 同一メッシュを別 Bone 階層で動かしたいときはここを切替えて再ターゲット可能

変形動作・最適化 ⚙️

Deform Normals .donormal
Deform Normals (法線も同期変形) — オンにすると変形に合わせて法線も再計算します
– シェーディングを正しく追従させたい場合は基本オン
– 法線を後段で別途計算する場合 (例: Convert SOP / Point SOP) はオフにして処理コストを削減

Delete Capture Attributes .delcaptatr 🗑️
Delete Capture Attributes (キャプチャ属性を削除) — 変形後にポイントキャプチャ属性を破棄
– ポイントキャプチャ属性はメモリ消費が大きいため、後段で再利用しない場合はオンにして節約
– 同フレームで再変形する用途 (例: 別の Skeleton Root を切替) ではオフ

Delete Point Colors .delcolatr 🎨
Delete Point Colors (ポイントカラーを削除) — Capture SOP がキャプチャ補助として付与した点色を破棄
– 本番ライティングに点色を使わない場合はオンにして属性を整理
– 後段で Capture 状態の可視化を残したい場合はオフ


実践アイデア 💡

Example 1: キャラクターのスキニング再生 🕺

入力 SOP → Capture SOP → Deform SOP → Geometry COMP

Capture SOP でウェイト属性を付与したキャラクターメッシュを、Deform SOP で Bone 階層の動きに追従させて変形させる基本フロー。Capture SOP の Hierarchy と Deform SOP の Skeleton Root Path に同じ Bone 階層のルート COMP を指定することで、Bone のアニメーションがそのままメッシュ変形に反映されます。

  1. ベースメッシュ (例: Grid SOP / Box SOP / 読み込んだ FBX SOP) を用意
  2. Capture SOP で Hierarchy にスケルトンのルート COMP を指定し、ウェイト属性を付与
  3. Deform SOP の入力 0 に Capture SOP の出力を接続
  4. Deform SOP の Skeleton Root Path に Capture SOP と同じ Bone 階層のルートを指定
  5. Bone をアニメーションさせてメッシュが追従変形することを確認
  6. Geometry COMP に Deform SOP を流してレンダリング

Example 2: メモリ最適化と法線同期 💾

Capture SOP → Deform SOP (Deform Normals オン + Delete Capture Attributes オン) → 後段 SOP

高ポリゴンメッシュではキャプチャ属性のメモリ消費が無視できないため、Deform SOP の段階で Delete Capture AttributesDelete Point Colors をオンにして属性を整理しつつ、Deform Normals をオンにしてシェーディングも正しく追従させる構成。後段の Convert SOP / Material SOP の処理コストを大きく下げられます。

  1. Capture SOP で付与済のウェイトメッシュを Deform SOP に接続
  2. Deform Normals をオンにして変形に法線を追従
  3. Delete Capture Attributes をオンにして変形後に重い属性を破棄
  4. Delete Point Colors もオンにしてキャプチャ補助の点色を削除
  5. 後段の Material SOP / Convert SOP / Geometry COMP の処理が軽くなることを確認

Example 3: 別リグへの再ターゲット切替 🔁

Capture SOP (Hierarchy: rig_A) → Deform SOP (Skeleton Root Path 切替) → 出力

同一のキャプチャ済メッシュに対して、Deform SOP の Skeleton Root Path だけを別の Bone 階層 (rig_A / rig_B) に切替えることで、複数のリグバリエーションを 1 メッシュで使い回せます。プリビズや A/B 比較、アクター入れ替えのようなワークフローで便利。

  1. Capture SOP で rig_A の階層を Hierarchy に指定してウェイト付与
  2. Deform SOP の Skeleton Root Path を rig_A に設定して動作確認
  3. 別 Bone 階層 rig_B (rig_A と同名・同階層構造) を用意
  4. Deform SOP の Skeleton Root Path を rig_B に切替
  5. rig_B のアニメーションでメッシュが追従変形することを確認

関連オペレータ 🔗

類似機能OP 🔍

  • Lattice SOP — 格子状コントロールポイントによる自由変形 (FFD)。骨ではなく格子で変形させたいときの代替
  • Magnet SOP — 別ジオメトリで点群を磁力的に引き寄せる変形。局所的なメッシュ膨張・凹みに便利
  • Twist SOP — 軸まわりのねじり・湾曲・テーパー等のパラメトリック変形

組み合わせ推奨OP 🔄

  • Capture SOP — Deform SOP の前段でウェイト属性を付与する必須コンビネーション
  • Capture Region SOP — Skeleton Root Path 配下に配置する個々の Bone 形状を定義
  • Bone Group SOP — Bone (Capture Region) 群をグループ単位で管理する補助 SOP
  • Geometry COMP — Deform SOP の変形後ジオメトリをレンダリングパイプラインへ流す
  • Bone COMP — Skeleton Root Path 配下に配置するアニメーション可能な Bone (関節)

前処理・後処理SOP 🎯


Info CHOP情報 📊

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

クック統計 ⏱️

  • total_cooks: total_cooks — プロセス開始以降にこのオペレータがクックされた合計回数
  • cook_time: cook_time — 直近のクック所要時間 (ミリ秒、変形負荷の指標)
  • cook_frame: cook_frame — このオペレータが最後にクックされたフレーム番号

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

よくある問題と解決策 🔧

❌ Problem: 変形が反映されない・メッシュが動かない
✅ Solution:

  • 入力 0 のジオメトリに Capture SOP のウェイト属性が付与されているか確認 (Info DAT などで pCapt 属性の有無を見る)
  • Skeleton Root Path が Capture SOP の Hierarchy と同じ Bone 階層のルートを指しているか確認
  • Group に変形対象外のポイントしか含まれていないか (空欄にして全点対象でテスト)

❌ Problem: 変形後の法線が破綻してシェーディングが崩れる
✅ Solution:

  • Deform Normals をオンにして法線を変形に同期させる
  • 後段で Convert SOP 等で法線を再計算する場合は本パラメータをオフにしてもよい
  • ベースメッシュの段階で法線属性が存在するか確認 (Point SOP / Polyreduce 後は法線が落ちている場合あり)

❌ Problem: メモリ使用量が多い・後段の SOP が重い
✅ Solution:

  • Delete Capture Attributes をオンにして変形後に重い pCapt 属性を破棄
  • Delete Point Colors もオンにしてキャプチャ補助の点色属性を削除
  • 前段で Convert SOP 等を使ってジオメトリを軽量形式に変換してから Capture/Deform を適用

❌ Problem: 別 Bone 階層に切替えるとメッシュが崩壊する
✅ Solution:

  • 切替先 Bone 階層が Capture 時の階層と同じ名前・同じ階層構造になっているか確認 (Capture SOP のウェイトは Bone のパスで参照されるため命名違いで対応が崩れる)
  • Capture SOP の Capture Frame (T ポーズなど) と切替先 Bone の Capture Frame 時点の姿勢が一致しているか確認
  • 必要なら Capture SOP まで戻って切替先 Bone 階層で再キャプチャしてから Deform 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をコピーしました