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

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

Copy POP のジオメトリ複製・インスタンシング機能を示す図

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

概要 📖 – ジオメトリの複製・インスタンシング

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)

出力: 複製・配置済みジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 で速度方向に整列させると説得力が増す。

  1. input1 に複製元ジオメトリ (例: 小さな Box POP)、input2 にテンプレート Particle POP を接続
  2. Template Page で dotemplatetranslatedotemplaterotateto を On
  3. 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 の各値はコピーごとに線形に積み重なる。

  1. Number of Copies = 36 に設定
  2. Translate を (0, 0.1, 0)、Rotate を (0, 10, 0) に設定すると 1 コピーごとに 0.1 上昇 + 10 度回転
  3. 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 を実行して未使用メモリを解放

参考資料 📚

公式リソース 📖

コミュニティ 💬

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