
概要 📖 – 粘土のような有機的な形を生成
Metaball SOPは、中心と半径から滑らかに溶け合う暗黙曲面を生成する SOPです。近くに置いた複数のメタボールは互いに引き合うように融合し、粘土や水滴のような有機的な塊を作ります。入力を接続すると、その形状を囲む範囲(バウンド)に合わせて配置します。
主な用途 🎯
- 粘土のように溶け合う有機的な形状の生成
- 複数の球が滑らかに融合するメタボール表現
- 変形ツールの影響範囲を定義する磁石役のソース
- 水滴・溶岩・液体のような柔らかい質感のモチーフ作り
- 抽象的でぬるっとした立体のモーショングラフィックス素材
データフロー 🔄
入力: メタボールの中心と半径を定義
↓
重み・カーネル関数で密度場(フィールド)を計算
↓
近くのメタボール同士が滑らかに融合
↓
出力: 滑らかにつながった暗黙曲面
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Page 📋
バウンド設定 .modifybounds 📦
Modify Bounds .modifybounds 📦Modify Bounds (バウンド修正) — 入力が接続されているときだけ有効になり、メタボールを囲む範囲(バウンド)を設定します。
オンにすると、下記の中心・半径のパラメータでバウンドの位置と大きさをさらに調整します。
中心と半径 .transform 🎯
Radius .rad 📏Radius (半径) — メタボールの密度場(フィールド)の半径を X / Y / Z の 3 軸で指定します。
軸ごとに値を変えると、球ではなく楕円状のメタボールになります。
- X (radx): X 軸方向の半径
- Y (rady): Y 軸方向の半径
- Z (radz): Z 軸方向の半径
Center .t 📍Center (中心位置) — メタボールの中心を X / Y / Z の 3 軸で指定します。
複数のメタボールの中心を近づけると、互いに滑らかに融合します。
- X (tx): X 軸方向の中心位置
- Y (ty): Y 軸方向の中心位置
- Z (tz): Z 軸方向の中心位置
Weight .metaweight ⚖️Weight (重み) — メタボールの密度場の中で暗黙曲面が現れる重みを決めます。
重みを上げるとメタボールの密度が高くなり、自身と周囲のメタボールがつくる曲面が大きく膨らみます。
カーネル関数 .kernel 🧮
Kernel Function (カーネル関数) — メタボールの密度場をどの数式で解釈するかを選びます。形の溶け合い方や輪郭の硬さが変わります。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Wyvill | .wyvill |
Wyvill 方式の解釈 |
| Elendt | .elendt |
Elendt 方式の解釈 |
| Blinn | .blinn |
Blinn 方式の解釈 |
| Links | .links |
Links 方式の解釈 |
膨らみと法線 .exponent 🪐
XY Exponent .expxy ↔️XY Exponent (XY 指数) — X 軸と Y 軸方向の膨らみ・くびれ具合を決めます。
1 より大きいと星形に尖り、1 より小さいと角張った四角寄りの形になり、1 だと球状になります。
Z Exponent .expz ↕️Z Exponent (Z 指数) — Z 軸方向の膨らみ・くびれ具合を決めます。
XY 指数と同じく、1 を基準に尖り具合・角張り具合が変化します。
Compute Normals .normals 🧭Compute Normals (法線を計算) — ジオメトリに法線を生成します。
ライティングやシェーディングを正しく当てたいときにオンにします。
実践アイデア 💡
Example 1: 溶け合う球の生成 🫧
Metaball SOP × 複数 → Iso Surface SOP → Render TOP
中心を少しずつずらした複数の Metaball SOP を近くに配置し、互いに滑らかに融合した有機的な塊を作る基本フローです。仕上げに Iso Surface SOP でポリゴンに変換します。
- Metaball SOP を作成し、Center を少しずつずらして複数配置
- Radius と Weight を調整してメタボール同士を融合させる
- Kernel Function で溶け合い方の質感を選ぶ
- Iso Surface SOP に通してレンダリング可能なポリゴンに変換
Example 2: 粘土を盛る局所変形 🧱
Grid SOP → Magnet SOP (Translate) ← Metaball SOP
Metaball SOP を Magnet SOP の入力 2 に接続し、メタボールの影響範囲だけを引き上げて、平面に粘土を盛ったような有機的な盛り上がりを作る用途です。
- Grid SOP で変形させたい平面を用意し、Magnet SOP の入力 1 に接続
- Metaball SOP を作成して Magnet SOP の入力 2 に接続
- Metaball の Center と Radius で盛り上げる位置と範囲を調整
Example 3: 水滴のうねり演出 🌊
Metaball SOP (animated) → Iso Surface SOP → Phong MAT
Metaball SOP の中心位置や重みを時間でアニメーションさせ、メタボール同士がくっついたり離れたりする水滴のような動的な表現を作る例です。
- Metaball SOP を複数配置し、Center をアニメーションさせる
- Weight を時間で変化させて融合・分離の動きを付ける
- Iso Surface SOP でポリゴン化し、質感を付けてレンダリング
関連オペレータ 🔗
類似機能OP 🔍
- Sphere SOP — 融合しない単独の球体プリミティブを生成
- Iso Surface SOP — 密度場から等値面(暗黙曲面)を抽出
組み合わせ推奨OP 🔄
- Iso Surface SOP — メタボール場を後段でポリゴンに変換
- Magnet SOP — 入力 2 に接続して局所変形の影響範囲を定義
- Convert SOP — 出力をポリゴンやメッシュ形式に変換
前処理・後処理SOP 🎯
Info情報 📊
Metaball 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:
- 複数の Metaball SOP の
Centerを近づけて配置されているか確認 RadiusとWeightを上げて密度場を重ね合わせる- 後段で Iso Surface SOP を使って等値面を抽出しているか確認
❌ Problem: 意図しない尖った形・四角い形になる
✅ Solution:
XY Exponent/Z Exponentを 1 に戻して球状の基準に戻すKernel Functionを切り替えて溶け合い方の質感を変えるRadiusを 3 軸で揃えて楕円ではなく球に近づける
❌ Problem: レンダリングで表面が暗い・汚い
✅ Solution:
Compute Normalsをオンにして法線を生成する- 後段で Convert SOP を使ってメッシュ形式に変換する
- Iso Surface SOP の分割数を上げて表面を滑らかにする
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

