
概要 📖 – 曲面を粘土のように彫る
Curveclay SOPは、曲線プロファイルをスプラインサーフェスに投影し、その投影位置を変位軸方向にずらすことで NURBS / Bezier サーフェスを粘土のように変形させる SOPです。対象は スプラインサーフェス (NURBS / Bezier) 限定で、ポリゴンメッシュには直接適用できません。ポリゴン入力を変形させたい場合は前段で Convert SOP や Skin SOP で NURBS / Bezier 化してから渡してください。
主な用途 🎯
- プロファイル曲線によるスプラインサーフェスの粘土的変形で、平面・曲面の NURBS サーフェスに曲線形状を投影してから盛り上げ・凹ませ、彫刻のような造形を 1 ノードで生成
- NURBS サーフェスへの文字・ロゴ・装飾パターンの刻印 (エンボス / デボス)で、Font SOP や手書きの Profile 曲線を投影方向に押し付け、Distance パラメータの正負で凸彫刻と凹彫刻を切替
- 曲面パネルへの溝・チャネルの掘削表現で、ガイド曲線に沿った帯状の凹みをサーフェス上に生成し、プロダクトデザインや有機造形のディテール追加に利用
- 3 入力モード (rest 曲線 / deforming 曲線 / surface) によるアニメーション可能なクレイ変形で、rest と deforming のプロファイル差分が変形量となり、deforming 曲線を時間変化させると粘土を押し込む過程をアニメ化できる
- Sharpness / Refinement パラメータによる変形範囲・サーフェス密度の制御で、影響範囲の鋭さと出力サーフェスの解像度をリアルタイムに調整し、滑らかな盛り上げから鋭い切り込みまで連続的に表現
データフロー 🔄
入力 1: プロファイル曲線 (rest / 投影元、NURBS or Bezier or Polygon の curve)
↓
入力 2 (任意): deforming プロファイル曲線
↓
入力 3 (任意): 変形対象のスプラインサーフェス (NURBS / Bezier surface)
↓
Curve Clay ページで Face Group / Surface Group / Divisions / Sharpness / Refinement を指定
↓
Projection ページで投影軸 (X / Y / Z / Minimum Distance / User Defined) を選択
↓
Displacement ページで変位軸と Distance を設定
↓
出力: 曲線形状で変形されたスプラインサーフェス
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Curve Clay Page 📁
対象グループの指定 (Face / Surface) 🔍
Face Group .facegroup 🔍
– 投影 / 変形に使用する face (NURBS / Bezier / Polygon の curve や surface) のサブセットを指定するグループ文字列
– 例: 0 5 1.2-3.9 5.* のようにレンジ・ワイルドカードを併用可能
– 2 番目の入力が存在しない場合は surface も指定可能で、その場合 surface の全 profile が使われる (例: 0 5 1.2-3.9 5)
Surface Group .surfgroup 🌐
– 3 入力すべて (rest / deforming / surface) が接続されているときに、変形対象となるスプラインサーフェスのサブセットを指定
– 空欄なら入力 3 の全サーフェスが変形対象となる
変形品質の制御 (分割数 / 鋭さ / 細分化) 🎚️
Divisions on Face .divs 🧮
– profile 曲線または face 上で評価するポイント数
– Curveclay は与えられた曲線を直線近似してサーフェスを変形するため、分割数を増やすほど結果が滑らかになる代わりにクック時間が増える
– profile を変形させる場合 (rest / deforming プロファイルのブレークポイント数が等しいとき) は少ない分割数でも十分な結果が得られる
Sharpness .sharp 🔺
– face 周辺の変形領域の広さを指定するパラメータ
– 値が大きいほど影響範囲が狭くなり、サーフェスへの引っ張りが鋭くなる
– 値が小さいほど周囲のサーフェスを巻き込む滑らかな盛り上げ・凹みになる
Refinement .refine 🧬
– 出力サーフェスの細分化レベルを指定するコントロール (推奨範囲 -1 〜 1)
– 通常は Curveclay 内部で自動的にサーフェスが細分化される
– 正の値を指定するとさらに細かく分割され、結果は滑らかになるがポイント密度が増加
– 負の値を指定すると、まず Refinement=0 と同じ細分化を行った後で逆に粗くする (絶対値が大きいほど粗い)
Projection Page 📁
投影軸の選択 🎯
プロファイル曲線をスプラインサーフェスへ投影する際の方向軸を選択するメニューパラメータ。曲線を「どの角度から押し付けるか」を決定する。
| 項目 | 内部名 | 説明 |
|---|---|---|
. |
ワールド X 軸方向 (Cartesian Axis X) に沿って曲線をサーフェスへ投影 | |
. |
ワールド Y 軸方向 (Cartesian Axis Y) に沿って投影。床面に置いたサーフェスへ上から押し付けるような構図に使用 | |
. |
ワールド Z 軸方向 (Cartesian Axis Z) に沿って投影 | |
. |
曲線の各ポイントから最も近いサーフェス上の位置へ投影。曲線とサーフェスの位置関係が複雑な場合や、特定の軸方向に決め打ちできない場合に有効 | |
. |
投影軸として任意のベクトルを指定するモード。下段のベクトルフィールドにユーザ定義の方向を入力 |
Displacement Page 📁
変位軸の選択 ↔️
プロファイルがサーフェスを変位させる方向 (粘土を押し込む / 引き出す方向) を選択するメニューパラメータ。投影軸 (Projection Axis) とは独立して指定でき、両者の組合せで自由なクレイ変形が可能。
| 項目 | 内部名 | 説明 |
|---|---|---|
. |
プロファイルはサーフェスの法線方向に沿って変位。曲面の凹凸に追従する自然な盛り上げ・凹みになるため、最も汎用的なモード | |
. |
ワールド X 軸方向 (Cartesian Axis X) に沿って変位 | |
. |
ワールド Y 軸方向 (Cartesian Axis Y) に沿って変位。重力方向にサーフェスを押し下げる演出などに使用 | |
. |
ワールド Z 軸方向 (Cartesian Axis Z) に沿って変位 | |
. |
変位軸として任意のベクトルを指定するモード。下段のベクトルフィールドにユーザ定義の方向を入力 |
変位距離と閉じた領域の扱い 📏
Distance .deformlen 📏
– Displacement Axis で指定したベクトル方向への変位距離
– 正の値で外側 (凸 / エンボス) に押し出し、負の値で内側 (凹 / デボス) に押し込み
– 0 にすると Curveclay は何も変形を行わない (パススルー相当の見た目)
Deform Inside of Loop .deforminside 🔁
– 閉じたループ (closed loop) を成すプロファイル曲線の内側領域も変形対象に含めるかを指定するトグル
– ON: ループ内部の面全体が一様に変位 (ロゴ・文字を凸版彫刻するような結果)
– OFF: ループの輪郭線部分のみが変位 (ライン状の溝・隆起になる)
Consider Profiles Individually .individual 🧷
– 複数のプロファイル曲線が連結して 1 つの閉じたループを形成しているかどうかを Curveclay 側で判定する挙動を切替
– ON: 各プロファイルを個別の曲線として独立に扱う (複数文字の Font SOP 出力を別々に変形する場面など)
– OFF: 複数曲線が連結された 1 つの閉ループを形成すると見なし、その全体の内側を一括で扱う
実践アイデア 💡
Example 1: Font SOP の文字曲線を NURBS パネルにエンボス彫刻 🔤
Font SOP (テキスト curve) → Curveclay SOP (rest / 投影元) ← Grid SOP + Skin SOP (NURBS surface, 入力 3) → Geometry COMP → Render TOP
Font SOP で生成した文字の輪郭曲線を Curveclay SOP に渡し、Grid SOP + Skin SOP で作成した NURBS サーフェスへ投影してエンボス彫刻を生成します。Projection Axis に Y、Displacement Axis に Surface Normal、Distance を正の値に設定することで、サーフェス法線方向に文字が凸状に浮き上がる立体看板的な表現になります。Deform Inside of Loop を ON にしておくと文字の塗りつぶし領域全体が押し上げられます。
- Font SOP を作成し
Textパラメータに表示したい文字列を入力、出力を確認 - Grid SOP + Skin SOP で NURBS サーフェス (またはサイズの大きな NURBS パネル) を作成し、後段に Curveclay SOP の入力 3として接続
- Font SOP の出力を Curveclay SOP の入力 1 (rest curve) に接続
- Curveclay SOP の
Projection AxisをYに、Displacement AxisをSurface Normalに設定 Distanceを0.1程度の正の値に設定し、文字がサーフェス法線方向に押し出されることを確認Deform Inside of Loopを ON にして文字の内側まで一様に押し上げ、Sharpnessを調整して輪郭の鋭さを整える
Example 2: プロファイル差分で粘土押込アニメ 🎬
Profile A (rest curve) → Curveclay SOP (入力 1) / Profile B (deforming curve, 同形状で位置をオフセット) → Curveclay SOP (入力 2) / NURBS Surface → Curveclay SOP (入力 3) → Out SOP
3 入力モードでは入力 1 (rest) と入力 2 (deforming) の差分そのものがサーフェス変形量になります。rest と deforming で同じ曲線を使い、deforming だけ Transform SOP で時間に応じて移動させると、粘土を曲線形状で押し込んでいく過程をフレーム単位でアニメーション化できます。Sharpness と Refinement を高めにすると変形の局所性と滑らかさが両立します。
- Profile となる曲線を 1 本作成 (Circle SOP / Line SOP / Font SOP 等) し、Null SOP で複製して 2 本に分岐
- 片方は入力 1 (rest) として Curveclay SOP に接続、もう片方は後段に Transform SOP を入れて入力 2 (deforming) として接続
- NURBS Surface を Curveclay SOP の入力 3 に接続
- deforming 側の Transform SOP の Translate Y にアニメーション CHOP を接続 (LFO CHOP / Speed CHOP 等) し、時間に応じて押し込み量が変化することを確認
Refinementを0.5前後に上げて変形後サーフェスの滑らかさを確保- 結果を Geometry COMP に格納し Render TOP で書き出し
関連オペレータ 🔗
類似機能OP 🔍
- Clay SOP — 別曲線 (Bend curve) でスプラインサーフェスを曲げる NURBS デフォーマー。曲線を投影せずに直接サーフェスを撓ませる点が Curveclay との違い
組み合わせ推奨OP 🔄
- Font SOP — 投影する文字曲線を生成する前段。文字のエンボス / デボス彫刻に最も多用される rest プロファイル供給元
- Skin SOP — 前段で複数の Profile から NURBS サーフェスを生成。Curveclay の入力 3 (変形対象) を供給する代表的な経路
- Convert SOP — ポリゴンメッシュを NURBS / Bezier サーフェスへ変換する前処理。Curveclay は polygon に直接適用できないため必須となる場合がある
- Profile SOP — サーフェス上の profile 曲線を抽出・操作する SOP。Curveclay で扱う rest / deforming プロファイルの整理に使用
- Transform SOP — rest と deforming のプロファイル差分を生成する用途で、deforming 側に挟んで時間オフセットを与える
前処理・後処理SOP 🎯
- 前処理: Font SOP、Skin SOP、Convert SOP、Profile SOP、Transform SOP
- 後処理: Material SOP、Transform SOP、Out SOP、Convert SOP
Info CHOP情報 📊
Curveclay 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— プロセス開始以降に Curveclay SOP がクックされた累計回数。アニメーション中に変形を毎フレーム再計算している場合の負荷監視に使うcook_time:cook_time— 直近のクック所要時間 (ミリ秒)。Divisions on Face と Refinement の値が大きいほど顕著に増えるため、品質と速度のトレードオフ調整指標cook_frame:cook_frame— Curveclay SOP が最後にクックされたフレーム番号。クックが期待通り走っているかの確認に使う
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 入力サーフェスがポリゴンメッシュで、Curveclay が何も変形しない / エラーになる
✅ Solution:
- Curveclay SOP は対象がスプラインサーフェス (NURBS / Bezier) 専用。ポリゴンメッシュには直接適用できません。前段に Convert SOP を入れて NURBS / Bezier 化してから渡してください
- Grid SOP / Box SOP のポリゴン出力を NURBS 化する場合、Convert SOP の
Convert toを NURBS Surface に設定。または最初から Skin SOP / Revolve SOP のような NURBS 出力 SOP でサーフェスを構築する - 曲面の品質を保ったまま変形させたい場合は、Convert ではなく Skin SOP で複数の Profile から最初から NURBS サーフェスを作る経路が安全
❌ Problem: 変形範囲が広すぎてサーフェス全体が湾曲してしまう / 局所的に効かせたい
✅ Solution:
Sharpnessの値を大きくすることで face 周辺の変形領域が狭くなり、サーフェスへの引っ張りが鋭く局所的になる- それでも広がりすぎる場合は
Refinementを正の値 (0.3〜1.0) に設定して出力サーフェスの細分化を上げ、局所変形を表現できるだけの解像度を確保する - プロファイル曲線自体を分割数の多い細かいものに置き換えるのも有効。曲線が荒いと隣接コントロールポイントを巻き込みやすい
❌ Problem: 結果サーフェスがカクついた直線近似のままで滑らかにならない
✅ Solution:
Divisions on Faceの値を増やす。Curveclay は曲線を直線近似してサーフェスを変形するため、分割数を増やすほど近似精度が上がる代わりにクック時間も増えるRefinementを正の値に設定して出力サーフェスの密度を高め、滑らかさを向上させる (-1〜1 の範囲で実験)- 両入力 (rest / deforming) の Profile のブレークポイント数が同じ場合は少ない Divisions でも十分滑らかな結果が得られるので、Profile の構造を揃えることも検討
❌ Problem: 閉じたループ状のプロファイル (例: 円形・文字) の内側まで一様に押し上げたいのに輪郭線だけ凸になる
✅ Solution:
Deform Inside of Loopを ON にすることで、閉じたループの内側領域も一括で変位対象になる (文字のエンボス・ロゴの凸版彫刻が可能)- 複数の独立した閉ループ (複数文字の Font 出力など) を扱う場合は
Consider Profiles Individuallyも ON にすると、各曲線を別々の閉ループとして個別判定できる - それでも輪郭線しか変形しない場合は、Profile 曲線が実際に閉じているか (始点と終点が同位置か) を Geometry Viewer / Info DAT で確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Curveclay SOP
- TouchDesigner公式ドキュメント – Clay SOP
- TouchDesigner公式ドキュメント – Skin SOP
- TouchDesigner公式ドキュメント – Convert SOP

