
概要 📖 – 立方体・直方体プリミティブの生成
Box SOPは、立方体・直方体プリミティブを Size / Center / Divisions パラメータから生成する SOPです。入力 SOP がある場合は Orient Bounds / Modify Bounds でバウンディング Box として動作し、Divisions と Texture Coordinates で後段レンダリング用のメッシュ密度と UV を細かく制御できます。
主な用途 🎯
- 立方体・直方体プリミティブの生成(Size と Center で寸法・位置を指定)
- 入力ジオメトリの境界ボックスを Box SOP に渡してバウンディング Box を作る (Orient Bounds / Modify Bounds)
- Divisions による格子分割で各面を細分化し、後段の Deform / Noise の解像度を確保
- UV 展開モードの選択(Box / Face / Cube Map × Inside / Outside の 6 方式) でレンダリング用テクスチャを割り当て
- Consolidate Corner Pointsで 24 点 → 8 点に正規化し、後段の Point / Attribute 操作を一意に保つ
データフロー 🔄
入力 (オプション): バウンディング元 SOP
↓
Size / Center / Rotate / Scale でジオメトリ寸法・配置を決定
↓
Divisions と Texture Coordinates でメッシュ分割と UV を生成
↓
出力: 立方体 / 直方体のポリゴン SOP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Box Page 📁
バウンディング Box 入力関連パラメータ 📐
Orient Bounds .orientbounds 🧭
– 入力 SOP が接続されているときのみ有効
– オンにすると入力 SOP の向きにあわせて Box を回転させ、バウンディングの軸を入力ジオメトリの座標系に合わせる
Modify Bounds .modifybounds 🔧
– 入力 SOP が接続されているときのみ有効
– オンにすると下記の Transform 系パラメータ (Size / Center / Rotate / Scale 等) でバウンディング Box の位置・サイズを追加修正できる
Rotate Order .rord 🔁
Rotate パラメータ適用時の回転順序
| 項目 | 内部名 | 説明 |
|---|---|---|
| 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 関連パラメータ 🎯
Size .size 📏
– X / Y / Z それぞれの軸に沿った Box の寸法
– 3 軸とも同じ値にすると立方体、異なる値にすると直方体になる
Center .t 📍
– Box の中心位置を X / Y / Z 座標で指定
– デフォルトは原点 (0, 0, 0)
Rotate .r 🔄
– X / Y / Z 各軸まわりの回転角度 (度数)
– 適用順序は Rotate Order パラメータで指定する
Scale .s 🔍
– Box 全体のスケール (全軸均等)
– Size を維持したまま比率拡縮したい場合に使用
Anchor 関連パラメータ ⚓
Reverse Anchors .reverseanchors ↔️
– Anchor U / V / W の方向を反転させる
Anchor U .anchoru 📍
– X 方向で位置・スケール・回転の基準となるアンカー位置を指定
Anchor V .anchorv 📍
– Y 方向で位置・スケール・回転の基準となるアンカー位置を指定
Anchor W .anchorw 📍
– Z 方向で位置・スケール・回転の基準となるアンカー位置を指定
Divisions 関連パラメータ 🔢
Use Divisions .dodivs ✅
– オンにすると下記 Divisions の値で Box の各面を細分化する
– 分割された Box はレンダリング時に表示されない (Divisions は開いたポリゴンで構成されるため)
Divisions .divs 📐
– X / Y / Z 軸方向それぞれの分割数
– 後段で Noise / Twist 等の Deform 系 SOP を掛ける際の頂点密度を決める
Enforcement Bars .rebar 🏗️
– Divisions で分割された各セル内に対角線状の補強バーを 4 本配置する
Consolidate Corner Points .consolidatepts 🔗
– オフ時は 6 面それぞれが独立したポリゴンで合計 24 点 (4 点 × 6 面)
– オンにすると角のポイントを共有して 8 点で構成された Box になる
– 後段の Point SOP や Attribute 操作でポイント数を確定させたい場合に有用
Texture Coordinates .texture 🎨
Box 面への UV テクスチャ座標割り当て方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Off | .off |
テクスチャ座標を生成しない |
| Box Inside | .boxinside |
Box 全体に 1 枚のテクスチャを内側から貼り付ける UV |
| Face Inside | .faceinside |
6 面それぞれに同じテクスチャを内側から貼り付ける UV (Cross Section レイアウト不要) |
| Cube Map Inside | .cubemapinside |
Cube Map レイアウトのテクスチャを内側から貼り付ける UV |
| Box Outside | .boxoutside |
Box 全体に 1 枚のテクスチャを外側から貼り付ける UV |
| Face Outside | .faceoutside |
6 面それぞれに同じテクスチャを外側から貼り付ける UV |
| Cube Map Outside | .cubemapoutside |
Cube Map レイアウトのテクスチャを外側から貼り付ける UV |
法線関連パラメータ 🧭
Compute Normals .normals 🧮
– オンにすると Box 面の法線ベクトルを計算する
– レンダリングでライティングを正しく評価するために必要
実践アイデア 💡
Example 1: 基本立方体プリミティブを 1 ノードで生成 🟢
Box SOP (Size=1,1,1, Center=0,0,0, Texture Coordinates=Face Outside) → Geometry COMP → Render TOP
Box SOP 単体でデフォルトの 1×1×1 立方体を生成し、Face Outside の UV を割り当ててレンダリングする最小構成。プリミティブの動作確認やシーン構築の起点として頻繁に使うパターン。
- Box SOP を配置し
Sizeを 1, 1, 1、Centerを 0, 0, 0 に設定 Texture CoordinatesをFace Outsideに変更して各面に UV を生成Compute Normalsをオンにしてライティング用法線を有効化- Geometry COMP に接続し、Camera COMP / Light COMP / Render TOP でレンダリング結果を確認
Example 2: 入力ジオメトリのバウンディング Box を可視化 📦
入力 SOP → Box SOP (input, Orient Bounds=ON, Modify Bounds=OFF) → Wireframe MAT → Geometry COMP
Box SOP の入力に元ジオメトリを接続し、Orient Bounds をオンにして入力 SOP の向きに沿ったバウンディング Box を生成する。ワイヤーフレーム表示でモデルの占有領域をデバッグ可視化する用途に向く。
- 対象ジオメトリ (例: File In SOP / Geometry COMP の出力 SOP) を Box SOP の input1 に接続
- Box SOP の
Orient Boundsをオンに切り替え (入力 SOP の向きに合わせて回転) Modify Boundsをオフのままにして元ジオメトリの自然なバウンディングを取得- Wireframe MAT を割り当てて Geometry COMP に接続し、入力ジオメトリと重ねて表示
Example 3: 細分化したBoxをNoiseで変形 🌊
Box SOP (Use Divisions=ON, Divisions=20,20,20, Consolidate Corner Points=ON) → Noise SOP → Geometry COMP
Box SOP の各面を Divisions で細分化し、後段の Noise SOP で頂点を変位させて有機的なフォルムを得るプロシージャル変形パターン。Divisions の数が変形のディテール解像度を決める。
- Box SOP を配置し
Use Divisionsをオン Divisionsを 20, 20, 20 等に設定して各面を細分化Consolidate Corner Pointsをオンにして角ポイントを共有 (後段で頂点が一意になる)- Noise SOP を後段に接続し Amplitude / Frequency で変形量を調整
- Geometry COMP に接続し変形結果を確認
関連オペレータ 🔗
類似機能OP 🔍
- Sphere SOP — 球プリミティブを生成 (Box SOP と並ぶ基礎形状 SOP)
- Grid SOP — 平面格子プリミティブ (Box の 1 面に相当)
- Rectangle SOP — 矩形プリミティブ (Box の 1 面に相当)
- Tube SOP — 円柱・円錐プリミティブ (基礎形状 SOP)
組み合わせ推奨OP 🔄
- Transform SOP — Box の出力にさらに移動・回転・スケールを掛ける
- Copy SOP — Box を複製してグリッド状やパターン状に並べる
- Noise SOP — Divisions で細分化した Box の頂点をノイズで変位
- Geometry COMP — Box の出力をレンダリングパイプラインに投入
前処理・後処理SOP 🎯
Info CHOP情報 📊
Box 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: Divisions で細分化したのにレンダリングに表示されない
✅ Solution:
Use Divisionsをオンにした Box は Divisions が開いたポリゴンで構成されるため、そのままではレンダリングに出ない仕様- 後段に Convert SOP を接続して閉じたポリゴンに変換するか、
Use Divisionsをオフに戻す - 頂点密度だけ欲しい場合は Noise SOP / Deform 系の前段のみで Divisions を使い、表示用の SOP を別系統で用意する運用も可
❌ Problem: Orient Bounds / Modify Bounds が効かない
✅ Solution:
- この 2 パラメータは入力 SOP が接続されているときのみ有効になる仕様 — input1 にバウンディング元 SOP を接続しているか確認
- 入力 SOP のポイント数が 0 の場合、バウンディングが取得できないため挙動が無視される — 上流の SOP がジオメトリを出力しているか確認
- Modify Bounds をオフにすると Size / Center / Rotate / Scale の変更が反映されない (入力ジオメトリのバウンディングのみを使う) 仕様
❌ Problem: テクスチャが歪む / UV がずれる
✅ Solution:
Texture CoordinatesがOffのままだと UV が生成されない — 用途に合った Box / Face / Cube Map モードを選択- Box 系 (Box Inside / Outside) は 1 枚の画像を 6 面にラップ、Face 系は 6 面に同じ画像を貼る挙動の違いに注意
- Cube Map 系を使う場合は Cube Map 形式のテクスチャ画像を用意していないと正しく見えない
❌ Problem: Point SOP / Attribute SOP の後段でポイント数が想定より多い
✅ Solution:
Consolidate Corner Pointsがオフだと角の点が共有されず 24 点 (4 点 × 6 面) になる仕様- ポイント数を 8 点に揃えたい場合は
Consolidate Corner Pointsをオンに切り替え - あるいは下流に Facet SOP を置き、Consolidate Points で近接点をマージする運用も可
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Box SOP
- TouchDesigner公式ドキュメント – Sphere SOP
- TouchDesigner公式ドキュメント – Grid SOP
- TouchDesigner公式ドキュメント – Convert SOP

