
概要 📖 – ジオメトリの複製・インスタンシング
Copy POPは、ジオメトリを固定回数またはテンプレートポイント上に複製し、各コピーへ Transform / Look At / 属性合成を適用する POPです。Number of Copies による単純複製と、Template 入力経由でのポイントベース・インスタンシングの両モードに対応し、シーン中の量産配置とパラメトリック生成の中核を担います。
主な用途 🎯
- ジオメトリの固定回数複製と段階的なトランスフォーム適用
- テンプレートポイント上へのインスタンシング配置
- Look At / Up Vector による各コピーの方向制御(向きを揃える / 中心を見る)
- CopyId 属性の出力によるコピーごとの差別化(色変化・スケール変化等)
- Template Attributes によるテンプレート属性の合成(Multiply / Add / Subtract)
データフロー 🔄
入力1: 複製元ジオメトリ + 入力2 (任意): テンプレートポイント
↓
Copy POP(Number of Copies + Transform + Look At + Template Attributes)
↓
出力: 複製・配置済みジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Copy Page 📋
Number of Copies .ncy 🔢
コピー数の指定:
- コピー数: テンプレート入力なしの場合、生成する複製数を指定
- テンプレートあり時: テンプレートポイントごとの複製数となる (1 ポイントあたり N 個の複製)
Transform Order .xord 🔧
Translate / Rotate / Scale を適用する順序
| 項目 | 内部名 | 説明 |
|---|---|---|
| Scale Rotate Translate | .srt |
T * R * S * Position |
| Scale Translate Rotate | .str |
R * T * S * Position |
| Rotate Scale Translate | .rst |
T * S * R * Position |
| Rotate Translate Scale | .rts |
S * T * R * Position |
| Translate Scale Rotate | .tsr |
R * S * T * Position |
| Translate Rotate Scale | .trs |
S * R * T * Position |
Rotate Order .rord 🔁
X / Y / Z 回転の適用順序
| 項目 | 内部名 | 説明 |
|---|---|---|
| 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 値 🔧
各コピーに段階的に積み重なる Transform 値(Copy N で N 倍の効果)
Translate .t ↗️
– コピーごとに tx / ty / tz を加算しながら配置
– 例: t=(1,0,0) で 1 単位ずつ右にずらして並べる
Rotate .r 🔁
– コピーごとに加算される回転角(度数法)
– rx / ry / rz で個別軸を指定
Scale .s 🔍
– コピーごとに乗算されるスケール係数
– sx / sy / sz 個別軸
Pivot .p 📍
– Rotate / Scale の中心位置
– px / py / pz で個別軸
Uniform Scale .scale 🔍
– 全軸均等のスケール係数
– Scale (個別) と乗算合成
CopyId Attribute .copyid 🆔
CopyId 属性の出力設定:
- CopyId 属性: 出力するクラス (point / vertex / primitive) を選択
- CopyId Attrib Name: 出力属性名を指定 (デフォルトは
copyid) - 用途: 各コピーで色や Material を切り替えたい場合に CopyId を参照
Look At .lookat 👀
Look At 対象の指定:
- Look At パス: 向ける対象オブジェクトコンポーネントのパス (例: Camera COMP)
- 用途: ビルボード表示、視線追従の標識・パーティクル配置等
Up Vector .upvector ⬆️
Look At 適用時のアップベクトル指定
Up Vector .upvector ⬆️
– アップベクトルの方向を upvectorx / upvectory / upvectorz で指定
– 通常 (0,1,0) で Y-up
Forward Direction .forwarddir 🧭
Look At 時に Forward と見なす軸方向
| 項目 | 内部名 | 説明 |
|---|---|---|
| +X | .posx |
+X 方向を前方とする |
| -X | .negx |
-X 方向を前方とする |
| +Y | .posy |
+Y 方向を前方とする |
| -Y | .negy |
-Y 方向を前方とする |
| +Z | .posz |
+Z 方向を前方とする |
| -Z | .negz |
-Z 方向を前方とする |
Vectors Maintain Length .vlength 📏
ベクトル長保持設定:
- オン: スケール変換後もベクトル長を元の値に正規化
- オフ: スケールに応じてベクトル長も変化(デフォルト挙動)
Append Dimension .dimension 📐
コピー数 / テンプレートポイント数に応じて出力属性に次元を追加するか
| 項目 | 内部名 | 説明 |
|---|---|---|
| When Template Points / Copies > 1 | .morethanone |
コピーが 2 個以上のときのみ次元を追加 |
| Always | .always |
常に次元を追加 (1 個でも配列扱い) |
Template Page 📋
Template Matrix Transform .dotemplatematrix 🧮
テンプレート 4×4 行列属性の使用設定:
- オン: テンプレートポイントの行列属性を直接 Transform として適用
- 用途: あらかじめ計算した 4×4 行列を属性に持たせて高速インスタンシング
Template Transform / Rotate Order 🔧
Template Transform Order .templatexord 🔧
– テンプレート Transform の Translate / Rotate / Scale 順序
– Copy Page 側の Transform Order と独立
Template Rotate Order .templaterord 🔁
– テンプレート回転の軸順序
– X / Y / Z 6 通りの組合せ
テンプレート属性使用 🧬
Template Translate .dotemplatetranslate ↗️
– テンプレートポイントの Translate 属性を使うか
– オフ時は Translate を無視 (Position は他属性で決定)
Template Rotate .dotemplaterotate 🔁
– テンプレートポイントの Rotate 属性を使うか
– パーティクルの個別回転制御に有効
Template Scale .dotemplatescale 🔍
– テンプレートポイントの Scale 属性を使うか
– サイズ変動のあるインスタンシングで使用
Template Pivot .dotemplatepivot 📍
– テンプレートポイントの Pivot 属性を使うか
– ピボットを個別制御したい場合に使用
Template Rotate to Vector .dotemplaterotateto 🎯
– テンプレートポイントの方向ベクトルに沿って回転を整列
– 流速・法線方向に向いたインスタンシングを実現
Template Rotate to Order .templaterottoord 🔁
Rotate to Vector と通常 Rotate の適用順序
| 項目 | 内部名 | 説明 |
|---|---|---|
| Rotate to Vector, then Transform | .rottoxform |
ベクトル整列 → 通常 Transform |
| Rotate, then Rotate to Vector | .rotaterotto |
通常 Rotate → ベクトル整列 |
| Rotate to Vector, then Rotate | .rottorotate |
ベクトル整列 → 通常 Rotate |
Rotate to Vector : Forward Direction .instanceforward 🧭
Rotate to Vector で基準とする Forward 方向
| 項目 | 内部名 | 説明 |
|---|---|---|
| +X | .posx |
+X を Forward とする |
| -X | .negx |
-X を Forward とする |
| +Y | .posy |
+Y を Forward とする |
| -Y | .negy |
-Y を Forward とする |
| +Z | .posz |
+Z を Forward とする |
| -Z | .negz |
-Z を Forward とする |
Rotate to Vector 属性 / Up Vector 🎯
Rotate to Vector Attribute .vecattr 🧬
– 整列方向を計算するためのソース属性名
– 例: 速度ベクトル v や法線 N
Up Vector Type .upvectoratype ⬆️
– アップベクトルのソース種別 (Constant 等)
– 整列の安定軸を指定
Up Attribute .upattr 🧬
– アップベクトルとして使う属性名
– Up Vector Type に応じて参照される
Up Constant .upconstant ⬆️
– 定数アップベクトル (upconstantx / upconstanty / upconstantz)
– 通常 (0,1,0)
TemplateId Attribute .templateid 🆔
TemplateId 属性の出力設定:
- TemplateId 属性: 出力クラス (point / vertex / primitive) を選択
- TemplateId Attrib Name: 属性名を指定 (デフォルトは
templateid)
Template Attributes Page 📋
Use Template Point Attribs .doattr ✅
テンプレート属性合成の有効化:
- オン: 下記 Sequential Block の処理を実行
- 用途: テンプレート側の Color / Custom 属性を入力ジオメトリに合成
Template Attribute (Sequential Block) 🧬
テンプレート属性 × 入力属性の合成 Sequential Block
Template Attribute .templateattr 📈
– Sequential Parameter Blocks の開始マーカー
– 値を増やすたびに以下のセットが複製される
Operation .templateattr0op 🔀
– 合成操作 (Copy / Multiply / Add / Subtract)
– テンプレート色を入力色に乗算してチントする等の用途
Destination .templateattr0dest 🎯
– 結果を書き戻す属性クラス (point / vertex / primitive)
– 同名属性が無い場合は新規作成
Names .templateattr0names 🏷️
– 合成対象とするテンプレート属性名のパターン
– * で全属性、Cd* で部分一致
Common Page 🔧
Bypass .bypass 🚫
POP の処理をスキップして入力をパススルーする設定:
- オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
- 用途: デバッグ時に特定 POP の効果を一時的に外して比較する際に使用
Free Extra GPU Memory .freeextragpumem 🧠
蓄積した GPU メモリの解放:
- Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
- 用途: 大規模パーティクル系で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約
Delete Input Attributes .delinputattrs 🗑️
出力属性の絞り込みパターン:
- Delete Input Attributes パターン: 出力に残したい属性名のパターン (例:
P N Cd) を指定。指定外の属性は破棄される - 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約
Parameter Color Space .parmcolorspace 🎨
色パラメータの色空間を解釈・Working Color Space に変換する方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| sRGB | .srgb |
標準 sRGB ガンマ |
| sRGB – Linear | .srgblinear |
リニア化された sRGB |
| Rec.601 (NTSC) | .rec601 |
NTSC SD ビデオ用色空間 |
| Rec.709 | .rec709 |
HD ビデオ用色空間 |
| Rec.2020 | .rec2020 |
UHD / 4K HDR ビデオ用色空間 |
| DCI-P3 | .dcip3 |
デジタルシネマ用色空間 |
| DCI-P3 (D60) | .dcip3d60 |
D60 白色点の DCI-P3 |
| Display-P3 (D65) | .displayp3 |
Apple Display P3 (D65 白色点) |
| ACES2065-1 | .aces2065 |
ACES 標準 (AP0 プライマリ) |
| ACEScg | .acescg |
ACES CG 用 (AP1 プライマリ) |
| Passthrough | .passthrough |
色空間変換せず値をそのまま使用 |
Parameter Reference White .parmreferencewhite ⚪
色パラメータの基準白色点 (Reference White) の扱い
| 項目 | 内部名 | 説明 |
|---|---|---|
| Default For Color Space | .default |
選択した色空間のデフォルト基準白を使用 |
| Use Parent Panel | .useparent |
親パネルの基準白設定を継承 |
| Standard (SDR) | .sdr |
SDR (標準ダイナミックレンジ) 基準白 |
| High (HDR) | .hdr |
HDR (ハイダイナミックレンジ) 基準白 |
| UI | .ui |
UI 設定値を使用 |
実践アイデア 💡
Example 1: Particle POP テンプレート上へのインスタンシング ✨
SOP to POP + Particle POP (template) → Copy POP (Template Page) → Render TOP
Particle POP で生成した動的ポイント上に小さなジオメトリを大量複製し、リアクティブなパーティクルクラウドを構築する例。Template Rotate to Vector で速度方向に整列させると説得力が増す。
- input1 に複製元ジオメトリ (例: 小さな Box POP)、input2 にテンプレート Particle POP を接続
- Template Page で
dotemplatetranslate、dotemplaterotatetoを On - Rotate to Vector Attribute を
v(速度ベクトル) に設定して進行方向に整列
Example 2: らせん階段配置 (固定コピー数) 🌀
Box POP → Copy POP (Number of Copies = 36, Translate + Rotate) → Render TOP
テンプレートを使わず Number of Copies と段階的 Transform だけで螺旋階段状の配置を生成する例。t / r / scale の各値はコピーごとに線形に積み重なる。
- Number of Copies = 36 に設定
- Translate を (0, 0.1, 0)、Rotate を (0, 10, 0) に設定すると 1 コピーごとに 0.1 上昇 + 10 度回転
- CopyId Attribute を有効化し、後段の Render TOP で CopyId 参照によるグラデーション色付け
関連オペレータ 🔗
類似機能OP 🔍
- Blend POP — 複数 POP の属性合成系
- Attribute POP — 属性編集系、Matrix 属性経由のインスタンシング設定
組み合わせ推奨OP 🔄
- Geometry COMP — Copy POP の出力をシーングラフに渡して描画
- Render TOP — インスタンシング描画を 2D 画像化
- Particle POP — テンプレート入力としてパーティクル点群を供給
前処理・後処理POP 🎯
Info POP情報 📊
Copy POPは Info CHOP / Info DAT による詳細情報取得に対応しています。
コピー情報 🔢
num_copies: 実際に生成されたコピー数num_template_points: テンプレート入力のポイント数 (テンプレートあり時)num_points: 出力ポイント数 (コピー後)num_prims: 出力プリミティブ数has_copyid_attr: CopyId 属性が出力されているかの 0/1 フラグ
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間(ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 全コピーが同じ位置に重なって見える
✅ Solution:
- Translate / Rotate / Scale の値が 0 になっていないか確認 (コピー毎に値が積み重なるため非零が必要)
- テンプレート入力時は
dotemplatetranslateがオンになっているか確認 - Transform Order を
srt以外に切替えて意図する適用順を選択
❌ Problem: Look At が効かない / コピーが向きを揃えない
✅ Solution:
- Look At パスが有効な COMP を指しているか確認
Forward Directionを対象軸 (例: +Z) に変更- Up Vector を (0,1,0) などの安定値に設定して反転を回避
❌ Problem: コピー数が増えるとパフォーマンスが著しく低下する
✅ Solution:
- Number of Copies / テンプレートポイント数を段階的に増やして上限を測る
- Attribute POP の Delete Page で不要な属性を切り落とし VRAM 圧迫を緩和
- Common Page の
Free Extra GPU Memoryを実行して未使用メモリを解放


