
概要 📖 – メタボールで形を引き寄せ変形
Magnet SOPは、入力ジオメトリをメタボールの影響範囲に沿って局所的に変形させる SOPです。入力 1 の変形対象に対し、入力 2 のメタボールが影響範囲(フォールオフ)を定義し、その範囲内だけに平行移動・回転・拡縮を加えます。
主な用途 🎯
- メタボールの影響範囲を使ったジオメトリの局所的な変形
- 粘土をつまんで引き伸ばすような有機的なデフォーメーション
- 顔や体の一部だけを膨らませる・へこませるモーフィング表現
- アニメーションでの局所的な盛り上がり・うねりの演出
- サーフェスへ滑らかな凹凸を加えるスカルプト的な造形
データフロー 🔄
入力1: 変形させたいジオメトリ(Source)
↓
入力2: メタボール(Magnet)の影響範囲を定義
↓
影響範囲内で平行移動・回転・拡縮を適用
↓
出力: 局所的に変形したジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Page 📋
対象グループ .groups 🎯
変形対象とメタボール役のジオメトリをグループ名で指定する設定です。
Deform Group .deformgrp 🎯Deform Group (変形対象グループ) — 変形させたいジオメトリのグループを指定します。
空欄の場合は入力 1 のすべてのジオメトリが変形対象になります。パターンマッチングが使用可能です。
Magnet Group .magnetgrp 🧲Magnet Group (磁石役グループ) — 磁石(メタボール)として働かせるジオメトリのグループを指定します。
空欄の場合は入力 2 のすべてのメタボールが影響範囲として扱われます。パターンマッチングが使用可能です。
Deform Page 🛠️
変形順序 .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 |
平行移動 → 回転 → 拡縮 の順 |
回転順序 .rord 🔄
Rotate Order (回転順序) — 変形順序の中で 3 軸の回転を適用する順番を指定します。
| 項目 | 内部名 | 説明 |
|---|---|---|
| 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 軸の順に回転 |
変形量の設定 .transform 📐
Translate .t ↔️Translate (平行移動) — 影響範囲内のジオメトリを 3 軸(X / Y / Z)に沿って移動させます。
メタボールの影響の強さ(重み)に応じて移動量がスケールされます。
Rotate .r 🔁Rotate (回転) — 影響範囲内のジオメトリを 3 軸(X / Y / Z)に沿って回転させます。
ねじれるような変形を加えたいときに使用します。
Scale .s 🔍Scale (拡縮) — 影響範囲内のジオメトリを 3 軸(X / Y / Z)に沿って拡大・縮小させます。
膨らませる・へこませるといった造形に使用します。
Pivot .p 📍Pivot (基準点) — 平行移動・回転・拡縮を行う際の基準となる点を 3 軸(X / Y / Z)で指定します。
ピボットチャンネルの基準点とは別物です。
実践アイデア 💡
Example 1: 粘土を引き伸ばす変形 🧱
Grid SOP → Magnet SOP (Translate) ← Metaball SOP
Grid SOP の平面に Metaball SOP を磁石として接続し、Magnet SOP の Translate でメタボール周辺だけを引き上げて、粘土を指でつまみ上げたような有機的な盛り上がりを作るフローです。
- Grid SOP で変形させたい平面ジオメトリを用意し、Magnet SOP の入力 1 に接続
- Metaball SOP を作成し、Magnet SOP の入力 2 に接続
- Magnet SOP の Translate Y に正の値を入れてメタボール周辺を引き上げ
- Metaball の位置と半径を調整して盛り上がる範囲をコントロール
Example 2: 顔の局所モーフ 🙂
Alembic SOP → Magnet SOP (Scale) ← Metaball SOP
読み込んだ顔モデルの頬の位置にメタボールを置き、Magnet SOP の Scale で局所的に膨らませて、表情のモーフィングのような部分変形を実現する用途です。
- Alembic SOP などで顔モデルを読み込み、Magnet SOP の入力 1 に接続
- Metaball SOP を頬の位置に配置して入力 2 に接続
- Magnet SOP の Scale をわずかに上げて頬だけを膨らませる
Example 3: アニメーションのうねり 🌊
Sphere SOP → Magnet SOP (Translate) ← Metaball SOP (animated)
球体ジオメトリに対し、位置をアニメーションさせたメタボールを磁石として通すことで、表面を波のようにうねらせる動的な変形演出を作る例です。
- Sphere SOP で球体を作成し、Magnet SOP の入力 1 に接続
- Metaball SOP の中心位置を時間でアニメーションさせて入力 2 に接続
- Magnet SOP の Translate で持ち上げ量を設定し、表面のうねりを発生させる
関連オペレータ 🔗
類似機能OP 🔍
- Lattice SOP — 格子の制御点を動かしてジオメトリ全体を変形
- Twist SOP — ねじり・曲げ・先細りなどの大域的な変形
- Deform SOP — ボーンのキャプチャ重みでジオメトリを変形
組み合わせ推奨OP 🔄
- Metaball SOP — 入力 2 に接続して影響範囲を定義する磁石役
- Transform SOP — 変形後のジオメトリ全体を移動・回転・拡縮
- Copy SOP — 変形結果を複製して反復パターンを生成
前処理・後処理SOP 🎯
- 前処理: Grid SOP、Sphere SOP、Metaball SOP
- 後処理: Transform SOP、Facet SOP、Copy SOP
Info情報 📊
Magnet 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:
Translateの値がすべて 0 になっていないか確認(0 だと磁石は作用しません)- 入力 2 に Metaball SOP が正しく接続されているか確認
- Metaball の半径が変形対象まで届く大きさになっているか確認
❌ Problem: 変形が強すぎる・形が崩れる
✅ Solution:
Translate/Scaleの値を小さくして影響量を抑える- Metaball の重み(Weight)を下げて影響の強さを弱める
- 変形対象を
Deform Groupで限定して範囲を絞る
❌ Problem: 意図しない範囲まで変形する
✅ Solution:
- Metaball の半径を小さくして影響範囲を狭める
- 前段で Grid SOP などの解像度を上げて変形を滑らかにする
Magnet Groupで磁石として使うメタボールを限定する
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

