
概要 📖 – 複数 POP の属性合成・モーフィング
Blend POPは、複数 POP の点・頂点・プリミティブ属性を重み付きで合成し、モーフィング・統計合成を行う POPです。重み CHOP や Map ページのパラメータマッピングを使えば、外部信号や属性値で重みを動的駆動でき、音声反応モーフィング等の表現にも応用できます。
主な用途 🎯
- 複数 POP 間の属性ブレンディング (モーフィング)
- 重み付き加算・乗算・平均などの数学的合成
- CHOP からの動的ブレンド重み制御(音声駆動モーフィング等)
- Point / Vertex / Primitive 属性スコープごとの選択的ブレンド
- Map ページによる属性 → パラメータ駆動でのインタラクティブ合成
データフロー 🔄
入力: N 個の POP (同一トポロジ前提)
↓
Blend POP(Blend Type + 重み + Attribute Scope + CHOP 重み / Map 設定)
↓
出力: 合成された属性を持つ POP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Blend Page 📋
Blend Type .blendtype 🎛️
各入力の N 番目のポイントを合成する方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Off | .off |
合成を行わず、最初の入力をそのまま出力 |
| Average | .avg |
全入力の平均値 |
| Add | .add |
全入力の加算 |
| Multiply | .mul |
全入力の乗算 |
| Minimum | .min |
全入力の最小値 |
| Maximum | .max |
全入力の最大値 |
| Differencing | .differencing |
差分合成 (input1 – input2 – …) |
| Proportional | .proportional |
重みに比例した合成 (重み依存) |
| Proportional Smoothed | .proportionalsmoothed |
重み比例 + スムージング付き |
Length Mismatch .lengthmismatchnotif ⚠️
入力 POP のトポロジ(ポイント数)が異なる場合の動作
| 項目 | 内部名 | 説明 |
|---|---|---|
| Ignore | .ignore |
不一致を無視して処理を続行 |
| Warning | .warning |
警告を表示するが続行 |
| Error | .error |
エラーで停止 |
重み CHOP .weightchop 🎚️
ブレンド重みを CHOP から動的に取得する設定:
- CHOP パス: 重みソースとなる CHOP のパス (チャンネル毎に 1 入力分、または 1 サンプル毎)
- 用途: 音声 RMS / Slider COMP 等で重みを動的駆動し、モーフィングをタイムライン化
Attribute Scope 🎯
Point Attribute Scope .pointattrscope 🔹
– ブレンド対象とする point 属性名のパターン
– * で全 point 属性、P なら位置属性のみ等
Primitive Attribute Scope .primattrscope 🔺
– ブレンド対象とする primitive 属性名のパターン
– パターンマッチング (例: Cd*) で部分一致指定
Vertex Attribute Scope .vertattrscope 🔸
– ブレンド対象とする vertex 属性名のパターン
– 上記同様パターン指定可能
Input (Sequential Block) 🔌
各入力ごとに POP 参照と重みを Sequential Parameter Blocks で定義
Input .input 📈
– Input Sequential Parameter Blocks の開始マーカー
– 値を増やすたびに以下のセットが複製される
In POP(s) .input0pop 🎯
– このスロットで入力する POP のパス
– 同一トポロジの POP を並べることが前提
Blend Input .input0weight 🎚️
– このスロットのブレンド重み (Blend Type 依存で振る舞いが変わる)
– Proportional 系で 0-1 の比率制御、Add 系でゲイン値として使用
Map Page 📋
属性 → パラメータマッピング 🗺️
ポイントごとの属性値を Blend POP 自身のパラメータに動的バインドする Sequential Block
Mapping .map 📈
– Mapping Sequential Parameter Blocks の開始マーカー
– 値を増やすたびに以下のセットが複製される
OP .map0op 🎯
– 参照する OP (デフォルトの _in0 は input POP)
– 別 POP を指定すれば別ソースから属性値を引ける
Element .map0element 🧬
– 参照する属性名・コンポーネント名
– 例: Cd.r で色の Red 成分を引く
Target Parameter .map0parm 🎚️
– バインド先となる Blend POP のパラメータ (例: input0weight)
– ポイントごとの属性値で重みを動的に変える
Combine Operation .map0combineop 🔀
– 属性値と既存パラメータ値の合成方法 (Set / Multiply / Add)
– Multiply / Add でパラメータベース値に変調を載せられる
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: 2 形状間のモーフィングアニメーション 🎬
Box POP + Circle POP → Blend POP (Blend Type = Proportional Smoothed) → Render TOP
同一ポイント数の Box POP と Circle POP の間を、重みパラメータの 0-1 アニメーションで滑らかにモーフィングする例。Length Mismatch を Error にしておくとトポロジ不一致を即座に検出できる。
- Box POP と Circle POP の Divisions / Subdivisions を揃え、ポイント数を一致させる
- Blend POP の Input Sequential Block に 2 つを登録、Blend Type = Proportional Smoothed
input0weightとinput1weightをアニメーション CHOP で 0↔1 駆動
Example 2: 音声 RMS で重みを駆動するライブモーフィング 🎵
Audio In CHOP → Analyze CHOP (RMS) → Blend POP (Weights CHOP) → Render TOP
音声入力の RMS 値を 重み CHOP に接続することで、音量に応じて形状が動的に変化するライブビジュアル用合成。Map Page を使えばさらに属性単位での変調も追加できる。
- Audio In CHOP → Analyze CHOP で RMS Power を取得
- Analyze CHOP 出力を Blend POP の
weightchopに接続 - Blend Type = Proportional Smoothed にして滑らかな反応を得る
関連オペレータ 🔗
類似機能OP 🔍
- Copy POP — Template Attributes 経由で複数入力の属性を組合せる類似機能
- Attribute POP — 属性編集系の汎用 POP
組み合わせ推奨OP 🔄
- Render TOP — 合成結果を Geometry COMP 経由で描画
- Analyze CHOP — 音声 / センサーの統計値からブレンド重みを生成
- Geometry COMP — Blend POP の出力をシーングラフに渡してインスタンシング表示
前処理・後処理POP 🎯
Info POP情報 📊
Blend POPは Info CHOP / Info DAT による詳細情報取得に対応しています。
ブレンド情報 🎚️
num_inputs: 接続された入力 POP の数num_points: 出力ポイント数num_prims: 出力プリミティブ数length_mismatch: トポロジ不一致フラグ (0/1)
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間(ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: Length Mismatch でエラーが出る
✅ Solution:
- 全入力 POP のポイント数を一致させる (Divisions / Subdivisions 揃え)
- 前段に Attribute POP を入れて属性スキーマを揃える
Length Mismatch Actionで外挿値や繰返しなど代替動作を選ぶ (動作仕様要確認)
❌ Problem: 重みを変えても結果が変化しない
✅ Solution:
- Blend Type が Off になっていないか確認
- Proportional / Proportional Smoothed 等の重み依存タイプを選ぶ
- Attribute Scope のパターンが空文字や対象外パターンになっていないか確認
❌ Problem: 重み CHOP の値が反映されない
✅ Solution:
weightchopパスが有効か、CHOP のチャンネル数が入力数と一致しているか確認- CHOP の値範囲を 0-1 に正規化 (上流に Math CHOP)
- Blend Type を Proportional 系に切替えて重みを反映するモードにする


