
概要 📖 – 骨格で形状を変形
Skin Deform POPは、スケルトンのボーンに割り当てられたキャプチャ属性をもとに、ジオメトリのポイントをボーンのポーズに追従させて変形させる POPです。ボーンのバインドポーズ(基準姿勢)と現在のポーズの差分からポイントごとの変形を計算し、Mode を切り替えることでポイント位置そのものや任意の属性ベクトルを対象にできます。
主な用途 🎯
- スケルトン(骨)のポーズに追従させたキャラクターのスキニング変形
- キャプチャ属性(ウェイト)を使ったポイント位置の変形
- バインドポーズと現在のポーズの差分でジオメトリを動かす処理
- 任意のベクトル属性(法線など)を変形に追従させる更新
- モーションキャプチャ・ボーンアニメーションのリアルタイム反映
データフロー 🔄
入力: 変形対象 POP(キャプチャ属性付き)+ スケルトンの現在ポーズ
↓
Skin Deform POP(ボーンのバインドポーズと現在ポーズの差分でポイントを変形)
↓
出力: ポーズに追従して変形した POP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Deform Page 📋
変形対象の指定 🎛️
Mode .mode 🎚️
– Mode (変形モード) — スキン変形を「何に対して」適用するかを選択
– ポイント位置そのものを変形させるモードと、入力で指定した属性(スコープ)を変形させるモードがある
Attribute Class .attrclass 🏷️
– Attribute Class (属性の種類) — point 属性・vertex 属性・primitive 属性のどれを対象に動作させるかを指定
– 該当する属性クラスがある場合に POP がそのクラスへ作用する
Input Attribute ( Scope ) .inputattrscope 📥
– Input Attribute ( Scope ) (入力属性 / スコープ) — Mode が「Skin Deform Attribute」のときは入力属性、「Skin Deform Attribute Scope」のときは入力属性のスコープを指定
– 変形の対象とする属性を Mode に応じて切り替える
ボーン・スケルトン参照 🦴
Bone Paths Attribute .bonepaths 🛤️
– Bone Paths Attribute (ボーンパス属性名) — ボーンへのパスを格納した detail 属性の名前を指定
Bone Bind Poses Attribute .bonebindposes 🧷
– Bone Bind Poses Attribute (バインドポーズ属性名) — ボーンのバインドポーズ(基準姿勢)を格納した detail 属性の名前を指定
Skeleton Root Path .skelrootpath 🌳
– Skeleton Root Path (スケルトンルートのパス) — スケルトンのルート(最上位ボーン)へのパスを指定
変形挙動の制御 ⚙️
Delete Capture Attributes .delcaptattrs 🗑️
– Delete Capture Attributes (キャプチャ属性の削除) — 変形後に point のキャプチャ属性(ウェイト情報)を削除する
– 下流で不要なウェイト属性を切り落としてメモリを節約したい場合に有効
Vectors Maintain Length .vlength 📏
– Vectors Maintain Length (ベクトル長を維持) — 変形を適用した後も元のベクトルの長さを保持する
– 法線などの方向属性を変形に追従させつつ長さを崩したくない場合に使用
Override Automatic Attribute .overrideautoattr 🔧
– Override Automatic Attribute (自動属性の上書き) — POP の入力とパラメータから自動生成される属性の種類を、手動で型・コンポーネント数を指定して上書きするかどうか
– オン時は Attribute Type / Components / Default Value が有効になる
Output Attribute Scope .outputattrscope 📤
出力する属性(コンポーネントも選択可)をメニューから選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| P | .P |
ポイント位置属性 |
| N | .N |
法線属性 |
| Color | .Color |
RGBA カラー属性 |
| Color.rgb | .Color.rgb |
カラー属性の RGB 成分のみ |
| Tex | .Tex |
テクスチャ座標属性 |
| PointScale | .PointScale |
ポイントスケール属性 |
| LineWidth | .LineWidth |
ライン幅属性 |
Attribute Type .attrtype 🔢
Override Automatic Attribute オン時の出力属性データ型(デフォルトは float)
| 項目 | 内部名 | 説明 |
|---|---|---|
| float | .float |
32-bit 浮動小数点 |
| double | .double |
64-bit 浮動小数点 |
| int | .int |
符号付き整数 |
| uint | .uint |
符号なし整数 |
| Color | .color |
カラー(float) |
| Color (double) | .dcolor |
カラー(double) |
| Direction | .dir |
方向ベクトル(float) |
| Direction (double) | .ddir |
方向ベクトル(double) |
Components .attrnumcomps 📊
Override Automatic Attribute オン時の新規属性のコンポーネント数
| 項目 | 内部名 | 説明 |
|---|---|---|
| 1 | .1 |
スカラー値 |
| 2 | .2 |
2 次元(UV 等) |
| 3 | .3 |
3 次元(XYZ・RGB 等) |
| 4 | .4 |
4 次元(RGBA・Quaternion 等) |
Default Value .attrdefaultval 🎯
Default Value .attrdefaultval 🎯
– Default Value (デフォルト値) — 出力属性のコンポーネントが計算できなかった場合のデフォルト値
– Components 数に応じて attrdefaultval0 / attrdefaultval1 / attrdefaultval2 / attrdefaultval3 を指定
Common Page 🔧
Bypass .bypass 🚫
POP の処理をスキップして入力をパススルーする設定:
- オン: 最初の入力(input1)をそのまま出力にパススルーし、POP 内部の処理を無効化
- 用途: デバッグ時に変形効果を一時的に外して変形前と比較する際に使用
Free Extra GPU Memory .freeextragpumem 🧠
蓄積した GPU メモリの解放:
- Free Extra GPU Memory パルス: 出力メモリが増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
- 用途: 出力ポイント数が大きく変動した後、未使用メモリを返却して VRAM を節約
Delete Input Attributes .delinputattrs 🗑️
出力属性を分離・絞り込みするパターン:
- Delete Input Attributes パターン: 出力に残したい属性名のパターン(例:
P N Cd)を指定し、それ以外をこの POP で破棄して別ブランチへ属性を分離 - 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化し、メモリ・帯域を節約
実践アイデア 💡
Example 1: ボーン追従の変形 🦴
Skeleton (ボーン階層) + 入力 POP (キャプチャ属性付き) → Skin Deform POP (Mode=ポイント変形) → Render TOP
あらかじめキャプチャ(ウェイト)属性を持たせたメッシュ POP を、スケルトンのボーンポーズに追従させて変形させる基本フロー。ボーンのバインドポーズと現在ポーズの差分から各ポイントの移動を計算し、ポーズが変わるたびにジオメトリが連動して動く。
- 変形対象の POP にボーンごとのキャプチャ属性(ウェイト)を持たせておく
- Skin Deform POP の
Bone Paths Attribute/Bone Bind Poses Attributeにボーンパスとバインドポーズの detail 属性名を指定 Skeleton Root Pathでスケルトンのルートへのパスを設定Modeをポイント位置を変形するモードにして、ボーンのポーズ変化にメッシュが追従するのを確認- 出力を Render TOP に渡してアニメーションを描画
Example 2: 動作捕捉を即時反映 🎯
OSC In CHOP (mocap データ) → ボーンポーズ更新 → Skin Deform POP → Geometry COMP → Render TOP
外部のモーションキャプチャから受け取った関節データでボーンのポーズを毎フレーム更新し、Skin Deform POP でメッシュをリアルタイムに変形させるインタラクティブ用途。ライブパフォーマンスでの全身トラッキング表現に向く。
- OSC / トラッキング機器から受け取った関節角度・位置でスケルトンのボーンポーズを毎フレーム更新
- Skin Deform POP の各ボーン参照属性を設定し、更新されたポーズを参照させる
Vectors Maintain Lengthをオンにして法線などの方向属性の長さを保ったまま追従させる- 出力 POP を Geometry COMP に渡してリアルタイムで描画
Example 3: 法線をスキン変形に追従 🧭
入力 POP → Skin Deform POP (Mode=属性変形, Input/Output Attribute=N) → Normalize POP → Render TOP
ポイント位置だけでなく法線(N)属性も同じスキン変形に追従させ、ライティングが破綻しないようにする例。Override Automatic Attribute で出力属性の型・コンポーネント数を明示し、Vectors Maintain Length と組み合わせて方向属性を正しく扱う。
Modeを属性を変形するモードにし、Input Attribute ( Scope )とOutput Attribute ( Scope )を N(法線)に設定Vectors Maintain Lengthをオンにして変形後も法線の長さを維持- 必要なら
Override Automatic Attributeをオンにし Attribute Type / Components を手動指定 - 後段で法線を再正規化し、ライティングの破綻を防ぐ
関連オペレータ 🔗
類似機能OP 🔍
- Skin POP — 曲線・サーフェス間にスキン(皮)を張ってサーフェスを生成(Skin Deform はボーン追従の変形)
組み合わせ推奨OP 🔄
- Attribute POP — スキン変形に必要なキャプチャ属性・ボーン参照属性を前段で整える
- Transform POP — スケルトンのボーンや全体ポーズを移動・回転させる
- CHOP to POP — CHOP 由来の関節データをボーンポーズ属性として注入
- Normalize POP — 変形後の法線属性を再正規化してライティングを安定させる
前処理・後処理POP 🎯
- 前処理: Attribute POP、Transform POP
- 後処理: Normalize POP、Math POP、Null POP
Info POP情報 📊
Skin Deform POPは Info CHOP / Info DAT による詳細情報取得に対応しています。
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: 出力 POP の総ポイント数num_prims: 出力 POP の総プリミティブ数num_point_attribs: 出力 POP の point 属性数(キャプチャ属性削除後の確認に有効)num_vertex_attribs: 出力 POP の vertex 属性数num_prim_attribs: 出力 POP の primitive 属性数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: ジオメトリが変形しない
✅ Solution:
- 変形対象の POP にボーンごとのキャプチャ属性(ウェイト)が乗っているか前段のAttribute POP等で確認
Bone Paths Attribute/Bone Bind Poses Attribute/Skeleton Root Pathが実在する属性名・パスを指しているか確認Bypassがオンになっていないか確認(オンだと入力素通し)
❌ Problem: 変形が崩れる・想定外の方向に飛ぶ
✅ Solution:
Bone Bind Poses Attribute(基準姿勢)が変形対象を作成した時点のポーズと一致しているか確認Modeがポイント位置の変形と属性スコープの変形のどちらを意図しているか再確認- ボーンポーズの単位(スケール・回転順)がスケルトン側と一致しているか確認
❌ Problem: 法線(N)が変形に追従せずライティングが破綻する
✅ Solution:
Input Attribute ( Scope )/Output Attribute ( Scope )に N(法線)を含めて変形対象にするVectors Maintain Lengthをオンにして方向属性の長さを保持- 後段でNormalize POPを使い法線を再正規化
❌ Problem: 出力属性の型やコンポーネント数が想定と違う
✅ Solution:
Override Automatic Attributeをオンにして Attribute Type / Components を手動指定Default Valueで計算できないコンポーネントのデフォルト値を設定- 不要なキャプチャ属性は
Delete Capture Attributesで削除して属性構成を整理
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

