
概要 📖 – ジオメトリの複製とテンプレート配置
Copy SOPは、ソースジオメトリを指定数だけ複製し、トランスフォームやテンプレート入力を使って配置する SOPです。Transform Cumulative や Stamp 機構と組み合わせることで、螺旋構造やパラメトリックな繰り返しパターンを構築できます。
主な用途 🎯
- ソース SOP の複数コピーを生成 (Number of Copies で個数を指定)
- Template 入力を使った各ポイントへの配置 (テンプレートの各ポイントにソースを置く)
- 累積トランスフォーム (Transform Cumulative) で螺旋・スタック構造を生成
- Look At でコピーを特定オブジェクトに向ける
- Stamp 機構でコピーごとにパラメータを変化させプロシージャル生成
データフロー 🔄
入力 1: ソース SOP / 入力 2 (オプション): テンプレート SOP
↓
処理: Number of Copies / Translate / Rotate / Scale をコピーごとに適用 (Cumulative オプションあり)
↓
出力: 複製ジオメトリの SOP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Copy Page 📁
Source / Template Group 🎯
Source Group .sourcegrp 🎯
– コピー元のプリミティブを絞り込むパターン
– Pattern Matching に従う
Template Group .templategrp 🎯
– テンプレート入力のプリミティブを絞り込むパターン
– Pattern Matching に従う
コピー数・対応関係関連パラメータ 🔢
Number of Copies .ncy 🔢
– 生成するコピー数
– テンプレート入力がある場合は各テンプレートポイントごとのコピー数
Primitives per Point .nprims 🔢
– テンプレート各ポイントからコピーするプリミティブ数
Rotate to Normal .nml 🧭
– テンプレート入力使用時、コピーをテンプレート表面の法線に向きを揃える
– up 属性がテンプレートにあれば法線と組み合わせて回転を決定
Transform Cumulative .cum 🔄
– 各コピーで前のコピーの位置からさらにトランスフォームを積み重ねる
– 螺旋・スタック構造を生成するときに使用
Transform Order .xord 🔄
コピーごとのトランスフォーム適用順序
| 項目 | 内部名 | 説明 |
|---|---|---|
| Scale Rotate Translate | .srt |
T * R * S * Source |
| Scale Translate Rotate | .str |
R * T * S * Source |
| Rotate Scale Translate | .rst |
T * S * R * Source |
| Rotate Translate Scale | .rts |
S * T * R * Source |
| Translate Scale Rotate | .tsr |
R * S * T * Source |
| Translate Rotate Scale | .trs |
S * R * T * Source |
Rotate Order .rord 🔄
Transform Order 内における X / Y / Z 軸の回転適用順序
| 項目 | 内部名 | 説明 |
|---|---|---|
| XYZ | .xyz |
X → Y → Z の順 |
| XZY | .xzy |
X → Z → Y の順 |
| YXZ | .yxz |
Y → X → Z の順 |
| YZX | .yzx |
Y → Z → X の順 |
| ZXY | .zxy |
Z → X → Y の順 |
| ZYX | .zyx |
Z → Y → X の順 |
Translate / Rotate / Scale / Pivot 📏
Translate .t 📍
– コピーごとの X / Y / Z 軸方向の移動量
– Transform Cumulative オン時は前のコピーから累積適用
Rotate .r 🔄
– コピーごとの X / Y / Z 軸方向の回転量
Scale .s 📐
– コピーごとの X / Y / Z 軸方向のスケール係数
Pivot .p 📌
– 回転・スケールの中心点 (Viewport 内では赤いドットで表示)
Uniform Scale .scale 📐
– X / Y / Z 軸すべてに同じスケール係数を適用
Normals Maintain Length .vlength 🧭
– Scale 時に法線などのベクトル属性の長さを保持
出力グループ関連パラメータ 🗂️
Create Output Groups .newg ✅
– コピーごとに Group を作成し各プリミティブを分類
Copy Groups .copyg 🏷️
– 作成される Group の基本名を指定
Look At 関連パラメータ 👀
Look At .lookat 👀
– コピーされたジオメトリが向き続けるターゲット OP のパスを指定
Up Vector .upvector 🧭
– Look At 時の上方向ベクトルを指定
– 未指定だと Y 軸通過時にアニメーションが乱れる原因となる
Stamp Page 📁
Stamp Inputs .stamp 🏷️
コピーごとに値を変化させる Stamp 機構の有効化:
- Stamp Inputs:
stamp— オンにするとコピーごとに後続パラメータの値を変化させる Stamp 機構が有効になる
Stamp 変数定義パラメータ 🏷️
Copy .copy 🔢
– Stamp 変数のシーケンス (各 Copy ごとに定義)
Param .copy0param 🏷️
– 各 Stamp 変数のトークン名
– fetchStamp() (Python の td モジュール) または param() (tscript) で参照
Value .copy0value 🔢
– 各 Stamp 変数の値
実践アイデア 💡
Example 1: 等間隔の球体を直線状に複製 🟢
Sphere SOP → Copy SOP (Number of Copies=10, Translate.X=1) → Geometry COMP → Render TOP
球体を X 軸方向に等間隔で 10 個複製する基本パターン。Transform Cumulative はオフのまま、各コピーは同じ Translate ステップで配置されます。
- Sphere SOP の出力を Copy SOP の入力 1 に接続
Number of Copiesを 10 に設定Translateの X に 1 を設定し X 軸方向にずらす- Geometry COMP / Render TOP で 10 個の球体が並んでいることを確認
Example 2: テンプレート SOP の各ポイントにソースを配置 🌐
Source SOP + Template SOP → Copy SOP (Rotate to Normal=ON) → Geometry COMP
テンプレート (例: Sphere SOP の表面ポイント) の各ポイントにソースジオメトリを置く配置パターン。Rotate to Normal オンで各コピーがテンプレート表面の法線に向きを揃えます。
- Source SOP を Copy SOP の入力 1、Template SOP を入力 2 に接続
Rotate to Normalをオンにしてコピーをテンプレート表面に沿わせるNumber of Copiesはテンプレートのポイント数に応じて自動的に決定される- テンプレートが Sphere SOP の場合、ソースが球面上に均等に貼り付く
Example 3: Transform Cumulative で螺旋構造を生成 🌀
Source SOP → Copy SOP (Cumulative=ON, Translate.Y=0.1, Rotate.Y=30) → Geometry COMP
Transform Cumulative をオンにし、Y 軸方向の平行移動と Y 軸回転をコピーごとに累積させると螺旋階段のようなジオメトリが構築できます。
- Source SOP を Copy SOP に接続
Transform Cumulativeをオンに切り替えTranslate.Y= 0.1、Rotate.Y= 30 度 を指定Number of Copiesを 36 にして 1 周分の螺旋を完成させる
関連オペレータ 🔗
類似機能OP 🔍
- Copy CHOP — チャンネルデータを複製する CHOP 系の同名 OP
- Replicator COMP — DAT テーブルを元に COMP 群を複製する仕組み (SOP ではなく COMP レベルの複製)
組み合わせ推奨OP 🔄
- Sphere SOP — Copy のテンプレート入力として球面上にコピーを配置
- Geometry COMP — Copy SOP の出力をレンダリングパイプラインに投入
- Merge SOP — 複製したジオメトリとベースシーンを統合
- Render TOP — コピーされた大量ジオメトリを 3D レンダリング
前処理・後処理SOP 🎯
- 前処理: Sphere SOP、Box SOP、Point SOP
- 後処理: Transform SOP、Merge SOP、Noise SOP
Info CHOP情報 📊
Copy SOP は Info CHOP による詳細情報取得に対応しています。
ジオメトリ統計 📐
num_points:num_points— コピー後のジオメトリに含まれる総ポイント数 (Source ポイント × Number of Copies)num_prims:num_prims— コピー後のジオメトリに含まれる総プリミティブ数
クック統計 ⏱️
total_cooks:total_cooks— プロセス開始以降にこのオペレータがクックされた合計回数cook_time:cook_time— 直近のクック所要時間 (ミリ秒)cook_frame:cook_frame— このオペレータが最後にクックされたフレーム番号
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: コピーが原点に重なって 1 つにしか見えない
✅ Solution:
Translate/Rotate/Scaleのいずれかにコピーごとの差分を設定するTransform Cumulativeがオフだとコピーは全て同じ場所に置かれるので、累積配置にしたい場合はオンに切り替えNumber of Copiesが 1 になっていないか確認
❌ Problem: テンプレート入力を接続したが各ポイントに置かれない
✅ Solution:
- テンプレート SOP が入力 2 に正しく接続されているか確認
Rotate to Normalをオンにしてテンプレート表面の法線に揃えるSource Group/Template Groupでパターンが過剰に絞られていないか確認
❌ Problem: Stamp 機構で値が変化しない
✅ Solution:
Stamp Inputsがオンになっているか確認Paramの名前と参照側 (fetchStamp()/ tscript のparam()) が一致しているか確認- Info CHOP でクック回数が変化しているかを Channel Viewer でチェック


