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

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

Carve SOP の切断と等値曲線抽出機能を示す図

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

概要 📖 – サーフェスの切断と等値曲線抽出

Carve SOPは、NURBS / メッシュ サーフェスから指定した U/V 範囲を切り出す (Cut) または等値曲線として抽出する (Extract) SOPです。Carve Page で U/V 範囲を、Method Page で Cut / Extract モードを選択することで、曲面の部分切出し・等値曲線の取得・Breakpoint 単位の細分割を 1 ノードで実現します。

主な用途 🎯

  • NURBS / メッシュ サーフェスの一部切り出し (Cut モード、U/V 範囲指定で帯状領域を抜き出す)
  • サーフェスからの等値曲線抽出 (Extract モード + 3D Isoparametric Curve で立体曲線を生成)
  • 2D アイソパラメトリック プロファイルの生成 (Extract Type = 2D Profile で UV 平面上の曲線取得)
  • Breakpoint 単位でのサーフェス分割 (Location = Breakpoints と Cut at All Internal U/V Breakpoints による多分割)
  • U/V Divisions による複数同時切断 (divsu / divsv で範囲内に均等な切断面を追加生成)

データフロー 🔄

入力: NURBS / メッシュ / ポリゴン SOP

Carve Page で First U/V・Second U/V の範囲を指定

Method Page で Carve Method (Cut / Extract) と Location (Divisions / Breakpoints) を選択

出力: 切り出されたサブ サーフェス (Cut) または抽出された等値曲線 (Extract)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Carve Page 📁

Group 関連パラメータ 🏷️

Group .group 🏷️
– 入力にグループがある場合、ここで指定したグループ名のプリミティブのみを Carve の対象にする
* / [1-10] 等のパターンマッチングが利用可能 (Scripting Guide の Pattern Matching 参照)

U 範囲指定パラメータ 📏

First U .firstu
– First U 位置を有効化するトグル
– オンにすると下記 domainu1 で指定した U 値が Cut / Extract の開始位置として使われる

First U (位置) .domainu1 📍
– Cut / Extract の開始位置をパラメトリック U 座標 (0 〜 1) で指定
– 0 がサーフェス始端、1 が終端

Second U .secondu
– Second U 位置を有効化するトグル
– オンにすると下記 domainu2 で指定した U 値が Cut / Extract の終了位置として使われる

Second U (位置) .domainu2 📍
– Cut / Extract の終了位置をパラメトリック U 座標 (0 〜 1) で指定
– First U と組み合わせて U 方向の範囲を確定させる

V 範囲指定パラメータ 📐

First V .firstv
– First V 位置を有効化するトグル
– サーフェス入力のときのみ有効 (カーブ入力では無効)

First V (位置) .domainv1 📍
– Cut / Extract の V 方向開始位置を 0 〜 1 で指定
– サーフェス入力にのみ適用される

Second V .secondv
– Second V 位置を有効化するトグル
– サーフェス入力のときのみ有効

Second V (位置) .domainv2 📍
– Cut / Extract の V 方向終了位置を 0 〜 1 で指定
– サーフェス入力にのみ適用される


Method Page ⚙️

Carve Method .method 🎛️

Cut と Extract のどちらの動作モードで処理するかを選択するメニューパラメータ

項目 内部名 説明
Cut .cut Carve Page で指定した範囲で元のジオメトリをスライス (切り出し) する
Extract .extract Carve Page で指定した範囲で 3D 曲線・ポイント・2D プロファイルを生成する (抽出されるものは Extract Type で決定)

Cut 用保持範囲指定パラメータ ✂️

Keep Inside .keepin
– First U/V と Second U/V の間 (内側) のプリミティブを保持する
– Cut モード時に内側を残したい場合にオンにする

Keep Outside .keepout
– First U/V と Second U/V の外側のプリミティブを保持する
– Keep Inside と組み合わせれば内外両方を保持することも可能

Extract Type .extractop 🧬

Extract モード時に抽出する形状の種類を選択するメニューパラメータ

項目 内部名 説明
Extract 3D Isoparametric Curve(s) .xisoparm 指定した U / V 位置でサーフェスにぴったり一致する 3D の自由浮遊曲線を生成する
Extract 2D Isoparametric Profile(s) .xprofile 指定した U / V 位置でサーフェスにぴったり一致する 2D 曲線 (プロファイル) を生成する

※ 注意: 入力がフェース (face) の場合、抽出可能なのはポイントのみで V パラメータは効きません。

引用元: 公式 docs

Extract 関連パラメータ 📦

Keep Original .keeporiginal 🗂️
– オンにすると元のプリミティブを削除せず、抽出曲線と一緒に出力する
– 元サーフェスと抽出結果を同時に後段へ流したい場合に使用

Location .location 🎯

Cut / Extract をどの境界で実施するかを選択するメニューパラメータ

項目 内部名 説明
Divisions .div Carve Page で指定した位置でちょうど Cut / Extract を行う。下記 U/V Divisions パラメータで追加分割を均等配置可能
Breakpoints .break カーブ・サーフェスは breakpoint で、ポリゴンは頂点で、メッシュは isoparm に沿って Cut / Extract を行う

分割数関連パラメータ 🔢

U Divisions .divsu 🔢
– First U と Second U の間で実施する Cut / Extract の回数
– 範囲内に均等間隔で複数の切断面を生成したい場合に増やす

V Divisions .divsv 🔢
– First V と Second V の間で実施する Cut / Extract の回数
– サーフェス入力時のみ意味を持つ

Cut at All Internal U Breakpoints .allubreakpoints 🧷
Location = Breakpoints 使用時、U 方向の全 breakpoint で結果プリミティブを個別プリミティブに分割する

Cut at All Internal V Breakpoints .allvbreakpoints 🧷
Location = Breakpoints 使用時、V 方向の全 breakpoint で結果プリミティブを個別プリミティブに分割する


実践アイデア 💡

Example 1: NURBS サーフェスから帯状領域を切り出す (Cut) ✂️

Sphere SOP (Primitive Type=NURBS) → Carve SOP (Method=Cut, First U=ON 0.3, Second U=ON 0.7, Keep Inside=ON) → Geometry COMP → Render TOP

NURBS の球サーフェスを Carve SOP の Cut モードで U 方向 0.3〜0.7 の帯状領域だけ切り出す基本フロー。Sphere SOP の Primitive Type を NURBS にすることでパラメトリック U/V が利用可能になり、Keep Inside で内側帯を保持する。

  1. Sphere SOP を配置し Primitive TypeNURBS に設定
  2. Carve SOP を後段に接続し Carve MethodCut
  3. First U をオンにして domainu1 を 0.3、Second U をオンにして domainu2 を 0.7 に設定
  4. Keep Inside をオンにして範囲内の帯状サーフェスを保持
  5. Geometry COMP に接続して Render TOP で帯状の切り出し結果を確認

Example 2: 等値曲線を抽出しSweepの経路に 🧬

Sphere SOP (NURBS) → Carve SOP (Method=Extract, Extract Type=3D Isoparametric Curve, First U=ON 0.5) → Sweep SOP → Geometry COMP

Carve SOP の Extract モードで 3D アイソパラメトリック曲線を取得し、それを Sweep SOP の経路に流すパターン。曲面上を走る等値曲線をベースにチューブやリボン状の形状を生成する用途に向く。

  1. Sphere SOP の Primitive TypeNURBS に設定
  2. Carve SOP を後段に接続し Carve MethodExtractExtract TypeExtract 3D Isoparametric Curve(s) に変更
  3. First U をオンにして domainu1 を 0.5 に設定 (赤道に相当する等値曲線が抽出される)
  4. 後段に Sweep SOP を接続し、別の Circle SOP 等を断面プロファイルとして指定
  5. Geometry COMP に接続して赤道に沿った筒状ジオメトリを確認

Example 3: Breakpointsで曲面を全点分割 🪚

Grid SOP → Carve SOP (Method=Cut, Location=Breakpoints, Cut at All Internal U/V Breakpoints=ON) → Convert SOP → Geometry COMP

Carve SOP の Location を Breakpoints に切替え、Cut at All Internal U/V Breakpoints をオンにすることで、サーフェスの全 breakpoint で個別プリミティブに分割するパターン。後段で各セルを個別に Transform / Copy したいときの下準備として有効。

  1. NURBS サーフェス (Sphere SOP / Grid SOP の NURBS 出力等) を Carve SOP に接続
  2. Carve MethodCutLocationBreakpoints に設定
  3. Cut at All Internal U BreakpointsCut at All Internal V Breakpoints をオン
  4. Keep Inside をオンにして分割結果を保持
  5. Convert SOP で必要ならポリゴンに変換し、Geometry COMP に接続して各分割プリミティブを確認

関連オペレータ 🔗

類似機能OP 🔍

  • Trim SOP — NURBS サーフェスを Profile 曲線でトリムする (Carve の自由曲線版に相当)
  • Profile SOP — サーフェスから 2D プロファイル曲線を抽出・操作 (Carve Extract 2D に近い役割)
  • Refine SOP — サーフェスを細分化 (分割せず CV / breakpoint を増やす)

組み合わせ推奨OP 🔄

  • Sphere SOP — Carve の入力に使う NURBS サーフェスの代表的なソース
  • Skin SOP — Carve で Extract した複数の等値曲線にサーフェスを張る
  • Sweep SOP — Carve で抽出した曲線を経路に断面プロファイルを掃引
  • Convert SOP — Carve の結果 (NURBS / Mesh) をポリゴンに変換して後段に流す
  • Transform SOP — Carve で分割したプリミティブを移動・回転・スケール

前処理・後処理SOP 🎯


Info CHOP情報 📊

Carve 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: Carve の出力が空 / 何も切り出されない
✅ Solution:

  • First U / Second U のトグルがオフだと範囲指定が無視されるため、両方オンになっているか確認
  • Keep Inside / Keep Outside が両方オフだと何も保持されない (Cut モードでは必ずどちらかをオンにする)
  • 入力 SOP がパラメトリック U/V を持たない (例: 完全閉じたポリゴン) 場合は期待した位置で切れないため、上流に Convert SOP で NURBS / Mesh に変換するなど構造を見直す

❌ Problem: V パラメータ (First V / Second V) が効かない
✅ Solution:

  • V パラメータはサーフェス入力にのみ有効で、カーブ入力では無視される仕様 — 入力がカーブになっていないか確認
  • Extract Type 設定や face 入力時には V パラメータが効かないケースがある (公式注記参照)、入力がフェースになっていないか上流の SOP を確認
  • サーフェスを使いたいときは Sphere SOP 等で Primitive TypeNURBS または Mesh に設定して入力する

❌ Problem: Extract Type を 2D Profile にしても見た目が変わらない
✅ Solution:

  • 2D Isoparametric Profile は UV パラメータ空間上の曲線として生成されるため、3D ビューポートでは見えにくい — Geometry Viewer の UV 表示モードで確認
  • 後段に Convert SOP や Profile 系 SOP を置いて利用する前提のパラメータであることを意識する
  • 3D で曲線を視認したい場合は Extract TypeExtract 3D Isoparametric Curve(s) に切替

❌ Problem: Cut at All Internal U/V Breakpoints が無視される
✅ Solution:

  • このパラメータは Location = Breakpoints のときのみ有効 — Location が Divisions になっていないか確認
  • 入力サーフェスが breakpoint を内部に持たない (例: 単純な NURBS で内部 knot がない) 場合は分割されない、上流で Refine SOP で breakpoint を増やす
  • Cut 結果は Keep Inside / Keep Outside の保持設定にも依存するため、組み合わせて確認

参考資料 📚

その他 🔗

公式リソース 📖

この記事は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をコピーしました