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

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

Math Combine POP の属性演算合成機能を示す図

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

概要 📖 – 属性を演算で合成・変換

Math Combine POPは、Pre/Combine/Post の 3 段パイプラインで複数 POP 入力の属性に算術演算を適用して合成する POPです。Combine ページの Operation メニューで二項・三項演算を選択し、Pre/Post 段で前後処理 (リマップ・量子化・型キャスト等) を加えることで、複雑な属性合成や数式変換を 1 ノードで完結します。

主な用途 🎯

  • 複数 POP 入力の属性に算術演算 (加算・乗算・比較・三角関数等) を一括適用
  • Pre → Combine → Post の 3 段パイプラインで前処理・本演算・後処理を制御
  • シーケンシャル入力ブロックで多数の POP を演算的に統合
  • 演算結果を Result Scope で新規属性または既存属性に書き戻し
  • Uniform / Color 変数や Custom Attribute を演算式の入力として利用

データフロー 🔄

入力: 複数 POP の属性

Pre 処理 (Multiply / Add / Operation)

Combine 演算 (A・B・C を二項/三項演算で結合)

Post 処理 (リマップ・量子化・型キャスト)

出力: 演算結果を持つジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Inputs Page 📋

Attribute Class .attrclass 🎛️

演算対象とする属性クラスを選択するメニューパラメータ

項目 内部名 説明
Attribute Class .attrclass Attribute Class (属性クラス) — Math Combine POP が演算対象とする属性のクラス (ポイント / 頂点 / プリミティブ) を切替えるメニュー

Length Mismatch .lengthmismatchnotif ⚠️

複数入力の要素数が異なる場合の通知方法を決めるメニューパラメータ

項目 内部名 説明
Length Mismatch .lengthmismatchnotif Length Mismatch (長さ不一致通知) — 入力 POP 間でポイント数が異なる場合の通知レベルを指定する
Length Mismatch Action .lengthmismatchaction Length Mismatch Action (長さ不一致時の動作) — 短い入力に対し、範囲外サンプル位置でどの属性値を採用するかを指定

Group .group 👥

Group .group 👥
Group (グループ) — 入力にグループが設定されている場合、ここでグループ名を指定すると Math Combine POP は指定グループの要素のみに演算を適用
– 空欄時は入力全体が演算対象になる

Angle Units .angleunit 📐

sin(A)atan2(A, B) 等の三角関数で使う角度単位を選択するメニューパラメータ

項目 内部名 説明
Degrees .deg 角度を度 (0-360 が 1 回転) として解釈
Radians .rad 角度をラジアン (0-2π が 1 回転) として解釈
Cycles .cycle 角度をサイクル (0-1 が 1 回転) として解釈

Sequential Input Blocks .input 🧩

Input .input 🧩
Input (入力ブロック) — POP 入力を 1 ブロック単位で管理するシーケンシャルパラメータブロックの起点
– ブロック数を増減することで複数 POP を順序付きで束ねる

In POP(s) .input0pop 🔌
In POP(s) (入力 POP パス) — 現在のシーケンスブロックに対応する入力 POP のパスを指定
– ワイヤー接続またはパターンマッチング (例 geo*) で複数 POP を 1 ブロックにまとめて指定可能

In Attributes .input0attrs 🔤
In Attributes (取得属性パターン) — 現在のシーケンスブロックから取り出す属性名のパターン (デフォルト * で全属性)
P NCd* のようにスペース区切り・ワイルドカードで複数属性を指定可能

Rename to .input0renameto 🏷️
Rename to (リネーム) — In Attributes で取り出した属性を出力時にリネームするパターン
– 衝突回避や演算式での参照名整理のために属性名を書き換える用途で使用


Uniforms Page 🔌

Vector Uniform .vec 📐

演算式から参照する Vector 型の Uniform 変数を定義するシーケンシャルブロック

Vector .vec 📐
Vector (ベクトル定義) — Vector 型 Uniform 変数を 1 ブロック単位で定義するシーケンシャルパラメータブロックの起点

Name .vec0name 🏷️
Name (名前) — Uniform 変数の参照名。Combine 演算式から $名前 等で参照

Vector Type .vec0type 🧮

Vector Uniform の成分数と数値型を選択するメニューパラメータ

項目 内部名 説明
float .float 32bit 浮動小数 1 成分
float2 .float2 32bit 浮動小数 2 成分
float3 .float3 32bit 浮動小数 3 成分
float4 .float4 32bit 浮動小数 4 成分
double .double 64bit 浮動小数 1 成分
double2 .double2 64bit 浮動小数 2 成分
double3 .double3 64bit 浮動小数 3 成分
double4 .double4 64bit 浮動小数 4 成分
int .int 符号付き整数 1 成分
int2 .int2 符号付き整数 2 成分
int3 .int3 符号付き整数 3 成分
int4 .int4 符号付き整数 4 成分
uint .uint 符号なし整数 1 成分
uint2 .uint2 符号なし整数 2 成分
uint3 .uint3 符号なし整数 3 成分
uint4 .uint4 符号なし整数 4 成分

Vector Value .vec0value 🔢

Value .vec0value 🔢
Value (ベクトル値) — Vector Uniform の成分ごとの値 (最大 4 成分)
– Type で選んだ成分数だけが有効化される

Color Uniform .color 🎨

Pre-Multiply RGB by Alpha .premultcolor ✖️
Pre-Multiply RGB by Alpha (RGB を Alpha で乗算) — Color Uniform の RGB 値を Alpha で事前乗算するか否かのトグル
– Premultiplied alpha フォーマットの素材を正しく扱う場合にオン

Color .color 🎨
Color (カラー定義) — Color 型 Uniform 変数を 1 ブロック単位で定義するシーケンシャルパラメータブロックの起点

Name .color0name 🏷️
Name (名前) — Color Uniform の参照名。Combine 演算式から参照する識別子

RGB .color0rgb 🌈
RGB (RGB 値) — Color Uniform の赤・緑・青 3 成分

Alpha .color0alpha 🪟
Alpha (アルファ) — Color Uniform のアルファ成分 (透明度)


New Page ✨

New Attribute .attr

演算結果を書き込むための新規属性を定義するシーケンシャルブロック

New Attribute .attr
New Attribute (新規属性) — 演算結果出力用の新しい属性を 1 ブロック単位で定義するシーケンシャルパラメータブロックの起点

Name .attr0name 🏷️
Name (名前) — 既定属性 (P / N / Cd 等) を選択するか、Custom Name でカスタム属性名を指定するメニュー

Type .attr0type 🧮
Type (型) — 属性の数値型 (float / int 等) を選択するメニュー
Components (成分数) でカスタム属性の成分数 (1〜4) を指定

Default Value .attr0defaultval 🛟
Default Value (既定値) — 演算で値が計算できなかった場合に新規属性に書き込むフォールバック値
– 成分数に応じて 1〜4 要素まで指定可能


Pre Page ⚡

Pre Sequence .pre

Combine 演算の前段に適用する単項演算 (Multiply / Add / Operation) を定義するシーケンシャルブロック

Pre .pre
Pre (前処理ブロック) — Combine 演算前に適用する単項処理を 1 ブロック単位で管理するシーケンシャルパラメータブロックの起点

Scope .pre0scope 🎯
Scope (適用範囲) — Pre 演算を適用する属性スコープ (例 CdCd.r)

Multiply .pre0mult ✖️
Multiply (乗算) — 入力属性値に掛ける係数
– 単純なスケーリングや符号反転に使用

Add .pre0add
Add (加算) — 入力属性値に加える定数
– オフセット付与に使用

Pre Parameter Size .pre0parsize 📏

Pre 演算で独立して設定できるパラメータ成分数を選択するメニュー

項目 内部名 説明
1 .1 1 成分のみ独立設定
2 .2 2 成分まで独立設定
3 .3 3 成分まで独立設定
4 .4 4 成分まで独立設定

Pre Order .pre0order 🔢

Pre 段における Multiply / Add / Operation の適用順序を選択するメニュー

項目 内部名 説明
Multiply, Add, Operation .multaddop Multiply → Add → Operation の順で適用
Add, Multiply, Operation .addmultop Add → Multiply → Operation の順で適用
Operation, Multiply, Add .opmultadd Operation → Multiply → Add の順で適用
Operation, Add, Multiply .opaddmult Operation → Add → Multiply の順で適用

Pre Operation .pre0oper 🧮

Pre 段で適用する単項演算 (1 つの値に対する関数) を選択するメニュー

項目 内部名 説明
None .none 演算なし (恒等)
abs(A) .abs 絶対値
sign(A) .sign 符号 (-1 / 0 / +1)
sqrt(A) .sqrt 平方根
A * A .square 2 乗
1 / A .inverse 逆数
floor(A) .floor 切り捨て (床関数)
round(A) .round 四捨五入
ceil(A) .ceil 切り上げ (天井関数)
int(A) .int 整数キャスト
fract(A) .fract 小数部のみ取得
degrees(A) .degrees ラジアン→度 変換
radians(A) .radians 度→ラジアン 変換
normalize(A) .normalize ベクトル正規化 (長さ 1)
exp10(A) .exp10 10 の A 乗
exp2(A) .exp2 2 の A 乗
exp(A) .exp e の A 乗 (自然指数)
log10(A) .log10 常用対数
log2(A) .log2 2 を底とする対数
ln(A) .ln 自然対数
sin(A) .sin サイン (正弦)
cos(A) .cos コサイン (余弦)
tan(A) .tan タンジェント (正接)
asin(A) .asin アークサイン (逆正弦)
acos(A) .acos アークコサイン (逆余弦)
atan(A) .atan アークタンジェント (逆正接)
dbtopow(A) .dbtopow デシベル→パワー 変換
powtodb(A) .powtodb パワー→デシベル 変換
dbtoamp(A) .dbtoamp デシベル→振幅 変換
amptodb(A) .amptodb 振幅→デシベル 変換

Pre Quantize .pre0quantize 📊

Pre 演算結果を離散値に量子化する方法を選択するメニュー

項目 内部名 説明
Off .off 量子化なし (連続値のまま)
floor(A) .floor 切り捨て量子化
round(A) .round 四捨五入量子化
ceil(A) .ceiling 切り上げ量子化
A > 0 .gt0 正なら 1、それ以外 0 (二値化)
A >= 0 .gteq0 0 以上なら 1、それ以外 0
A == 0 .eq0 0 と一致なら 1、それ以外 0
A != 0 .neq0 0 と不一致なら 1、それ以外 0
A <= 0 .lteq0 0 以下なら 1、それ以外 0
A < 0 .lt0 負なら 1、それ以外 0

Pre Result Scope .pre0resultscope 🎯

Pre 演算結果を書き込む出力属性スコープを選択するメニュー

項目 内部名 説明
Color .Color Color 属性 (4 成分) に書込み
Color.rgb .Color.rgb Color の RGB 部のみに書込み
N .N Normal 属性に書込み
Tex .Tex テクスチャ座標属性に書込み

Combine Page 🔀

Combine Sequence .comb 🔀

Combine 演算の本体ブロックを定義するシーケンシャルブロック

Combine .comb 🔀
Combine (合成ブロック) — 1 段の Combine 演算を管理するシーケンシャルパラメータブロックの起点
– ブロックを追加して段階的に演算を積み重ねることが可能

Scope A .comb0scopea 🅰️
Scope A (オペランド A) — 演算で「A」として扱う属性のスコープ

Scope B .comb0scopeb 🅱️
Scope B (オペランド B) — 二項以上の演算で「B」として扱う属性のスコープ

Scope C .comb0scopec
Scope C (オペランド C) — 三項演算で「C」として扱う属性のスコープ

Combine Operation .comb0oper 🧮

Combine 段で適用する単項・二項・三項演算を選択するメインメニュー

項目 内部名 説明
None .none 演算なし
A .copya A をそのまま出力 (コピー)
abs(A) .abs A の絶対値
sign(A) .sign A の符号
sqrt(A) .sqrt A の平方根
A * A .square A の 2 乗
1 / A .inverse A の逆数
floor(A) .floor A の切り捨て
round(A) .round A の四捨五入
ceil(A) .ceil A の切り上げ
int(A) .int A の整数キャスト
fract(A) .fract A の小数部
normalize(A) .normalize A の正規化 (長さ 1)
exp10(A) .exp10 10 の A 乗
exp2(A) .exp2 2 の A 乗
exp(A) .exp e の A 乗
log10(A) .log10 A の常用対数
log2(A) .log2 A の 2 進対数
ln(A) .ln A の自然対数
sin(A) .sin A のサイン
cos(A) .cos A のコサイン
tan(A) .tan A のタンジェント
asin(A) .asin A のアークサイン
acos(A) .acos A のアークコサイン
atan(A) .atan A のアークタンジェント
degrees(A) .degrees A をラジアン→度 変換
radians(A) .radians A を度→ラジアン 変換
length(A) .length A の長さ (ベクトル長)
compadd(A) .compadd A の成分の和
compsub(A) .compsub A の成分の差
compmult(A) .compmult A の成分の積
compdiv(A) .compdiv A の成分の商
compavg(A) .compavg A の成分の平均
compmin(A) .compmin A の成分の最小
compmax(A) .compmax A の成分の最大
A + B .add A と B の和
A – B .asubb A から B を減算
B – A .bsuba B から A を減算
A * B .mult A と B の積
A / B .adivb A を B で除算
B / A .bdiva B を A で除算
A ** B .apowerb A の B 乗
logB(A) .logba B を底とする A の対数
avg(A, B) .avg A と B の平均
min(A, B) .min A と B の最小値
max(A, B) .max A と B の最大値
mod(A, B) .mod A を B で割った余り
int(A / B) .intadivb A / B の整数部
A > B .gt A が B より大なら 1、それ以外 0
A >= B .gte A が B 以上なら 1、それ以外 0
A < B .lt A が B より小なら 1、それ以外 0
A <= B .lte A が B 以下なら 1、それ以外 0
A == B .eq A と B が等しいなら 1、それ以外 0
A != B .ne A と B が異なるなら 1、それ以外 0
atan2(A, B) .atan2 atan2 関数 (4 象限アークタンジェント)
dot(A, B) .dot ベクトル内積
angle(A, B) .angle ベクトル間の角度
cross(A, B) .cross ベクトル外積
reflect(A, B) .reflect B を法線とする A の反射ベクトル
A + B * C .aaddbmultc A + (B × C)
A * B + C .amultbaddc (A × B) + C
A + B + C .aaddbaddc A + B + C
A * B * C .amultbmultc A × B × C
rangefrom(A, B, C) .rangefrom A を [B, C] の範囲基準でリマップ元として扱う
rangeto(A, B, C) .rangeto A を [B, C] の範囲にリマップ
mix(A, B, C) .mix C を比率に A と B を線形補間
A if C else B .ifelse C が真なら A、偽なら B
loop(A, B, C) .loop A を [B, C] の範囲でループ
zigzag(A, B, C) .zigzag A を [B, C] の範囲でジグザグ折返し
clamp(A, B, C) .clamp A を [B, C] の範囲にクランプ
smoothstep(A, B, C) .smoothstep [B, C] の範囲で C を入力に滑らかな補間
B <= A < C .bltealtc B 以上 C 未満なら 1、それ以外 0
B < A <= C .bltaltec B 超過 C 以下なら 1、それ以外 0
B < A < C .bltaltc B 超過 C 未満なら 1、それ以外 0
B <= A <= C .bleealetec B 以上 C 以下なら 1、それ以外 0
refract(A, B, C) .refract 屈折ベクトル (A 入射、B 法線、C は屈折率)

Combine Result Scope .comb0result 🎯

Combine 演算結果を書き込む出力属性スコープを選択するメニュー

項目 内部名 説明
Color .Color Color 属性に書込み
Color.rgb .Color.rgb Color の RGB 部のみに書込み
N .N Normal 属性に書込み
Tex .Tex テクスチャ座標属性に書込み

Post Page 🔧

Post Sequence .post 🔧

Combine 演算後に適用する後処理 (リマップ / 量子化 / 型キャスト) を定義するシーケンシャルブロック

Post .post 🔧
Post (後処理ブロック) — Combine 演算後に適用する後処理を 1 ブロック単位で管理するシーケンシャルパラメータブロックの起点

Scope .post0scope 🎯
Scope (適用範囲) — Post 演算を適用する属性スコープ

Map from Low / High / Map to Low / High .post0fromlow 📏
Map from Low / Map from High — リマップの入力範囲を指定
Map to Low / Map to High — リマップ後の出力範囲を指定
– 4 値を組み合わせて値域変換 (例: 0–1 → 0–255) を実装

Post Parameter Size .post0parsize 📏

Post 段で独立して設定するパラメータ成分数を選択するメニュー

項目 内部名 説明
1 .1 1 成分のみ独立設定
2 .2 2 成分まで独立設定
3 .3 3 成分まで独立設定
4 .4 4 成分まで独立設定

Post Quantize .post0quantize 📊

Post 演算結果を離散値に量子化する方法を選択するメニュー

項目 内部名 説明
Off .off 量子化なし
floor(A) .floor 切り捨て量子化
round(A) .round 四捨五入量子化
ceil(A) .ceiling 切り上げ量子化
A > 0 .gt0 正なら 1、それ以外 0
A >= 0 .gteq0 0 以上なら 1、それ以外 0
A == 0 .eq0 0 と一致なら 1、それ以外 0
A != 0 .neq0 0 と不一致なら 1、それ以外 0
A <= 0 .lteq0 0 以下なら 1、それ以外 0
A < 0 .lt0 負なら 1、それ以外 0

Post Cast to .post0castto 🧱

Post 演算結果出力属性の数値型を上書きするメニュー

項目 内部名 説明
Automatic .auto 出力属性の元の型を維持
Float .float 浮動小数として書込み
Int .int 整数として書込み

Post Result Scope .post0result 🎯

Post 演算結果を書き込む出力属性スコープを選択するメニュー

項目 内部名 説明
Color .Color Color 属性に書込み
Color.rgb .Color.rgb Color の RGB 部のみに書込み
N .N Normal 属性に書込み
Tex .Tex テクスチャ座標属性に書込み

Output Page 📤

Delete Attributes .delattrs 🗑️

Delete Attributes .delattrs 🗑️
Delete Attributes (削除する属性) — 出力から取り除きたい属性のパターン
– パターンマッチで複数属性を一括削除可能 (例 tmp*)

Delete New Attributes .delnewattrs 🧹

Delete New Attributes .delnewattrs 🧹
Delete New Attributes (新規属性の削除) — Math Combine POP 自身が作成した属性を出力から取り除くかを制御するトグル
– 演算過程で使った中間属性を後段に流したくない場合にオン

Output Secondary Attributes .outputsecondary 🔁

2 番目以降の入力から出力に通過させる属性を選択するメニュー

項目 内部名 説明
* .* 全属性を 2 番目以降の入力から通過させる (ワイルドカード)

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) を指定。指定外の属性は破棄される
  • 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約

実践アイデア 💡

Example 1: 位置に Noise を加算 🌊

SOP to POP (P) + Noise POP (noise) → Math Combine POP (A = P, B = noise, Operation = A + B, Result Scope = P) → Render TOP

SOP to POP のポイント位置属性 P に、別経路で生成した Noise 属性を加算してジオメトリ全体を揺らす基本フロー。Combine Operation を A + B に設定し、Scope A に P、Scope B に noise を指定して結果を P に書き戻すことで、後段のレンダラに揺らされた形状を渡せます。

  1. SOP to POP を input0 ブロックに接続
  2. Noise POP を input1 ブロックに接続し、In Attributes を noise に絞る
  3. Combine ブロックで Scope A = P、Scope B = noise を指定
  4. Combine Operation を A + B に設定
  5. Combine Result Scope を P 相当 (or new attribute) に指定して P を上書き
  6. 出力を Render TOP に渡してレンダラで確認

Example 2: 色を 8bit にリマップ 🎨

SOP to POP (Cd) → Math Combine POP (Combine = A, Post: Map from 0-1 → Map to 0-255) → File Out POP

Color 属性 Cd を 0–1 の浮動小数表現から 0–255 の 8bit 整数表現へリマップする後処理フロー。Combine 段では恒等演算 A を選び、Post 段で Map from Low/High と Map to Low/High に [0, 1] と [0, 255] を設定、さらに Cast to を Int に切替えて整数として書き出します。

  1. SOP to POP の Cd を持つ入力を Math Combine POP に接続
  2. Combine Operation を A、Scope A を Cd に設定
  3. Post Scope に Cd を指定
  4. Post の Map from Low/High に 0 / 1 を設定
  5. Post の Map to Low/High に 0 / 255 を設定
  6. Post Cast to を Int に変更
  7. 出力を File Out POP に渡して整数 Cd 値を書き出し

Example 3: しきい値で二値化マスク 🎚️

SOP to POP (height) + 定数値 (threshold) → Math Combine POP (A = height, B = threshold, Operation = A > B, Result Scope = mask) → Lookup Attribute POP

ポイントの高さ属性 height がしきい値を超えるかどうかを 0/1 のマスク属性として生成するパターン。Uniforms Page で Vector Uniform threshold を定義しておき、Combine Operation を A &gt; B に設定すれば、しきい値以上のポイントが 1、それ以外が 0 となる新規属性 mask を演算結果として書き出せます。

  1. SOP to POP を入力に接続し、In Attributes で height を取り込む
  2. Uniforms Page で Vector Uniform threshold (float) を定義し値を設定
  3. Combine Scope A を height、Scope B を threshold に指定
  4. Combine Operation を A &gt; B に切替
  5. New Page で新規属性 mask (float 1 成分) を定義し、Combine Result Scope を mask に指定
  6. Post Quantize を必要に応じ round(A) にして二値性を保証
  7. 出力を Lookup Attribute POP に渡してマスクを後段で利用

関連オペレータ 🔗

類似機能OP 🔍

  • Math POP — 単一入力の属性に対する単項演算が中心。Math Combine は複数入力 + 二項/三項演算に拡張した上位機能
  • Math Mix POP — 複数入力の属性を Blend / Mix で合成する。Math Combine と同じシーケンシャル入力アーキテクチャ
  • Attribute Combine POP — 属性を演算で結合するのではなく、名前パターンで選別 + リネームして統合する POP
  • Blend POP — 複数 POP 入力をブレンド比率で混合する。演算ではなく重み付き合成

組み合わせ推奨OP 🔄

  • Attribute POP — 前段で属性スキーマや初期値を整えてから Math Combine で演算
  • Lookup Attribute POP — Math Combine の演算結果を参照テーブルとして他 POP の属性に流し込む
  • Convert POP — 演算結果の属性型を変換して後段に渡す

前処理・後処理POP 🎯


Info POP情報 📊

Math Combine POP は Info CHOP 経由でジオメトリ統計情報を取得します。

POP固有情報 ✨

  • num_verts: POP に含まれる頂点 (vertex) 数
  • num_points: POP に含まれるポイント数
  • num_prims: POP に含まれるプリミティブ数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • cook_abs_frame: 最後にクックされた絶対フレーム番号 (アプリケーション起動からの累積)
  • cook_start_time: 最後のクック開始時刻 (ミリ秒)
  • cook_end_time: 最後のクック終了時刻 (ミリ秒)
  • cooked_this_frame: 現フレームでクックされたか (0 / 1)
  • warnings: 警告数
  • errors: エラー数

POP 汎用情報 📊

  • num_points: 出力ジオメトリのポイント数
  • num_point_attribs: 出力ジオメトリのポイント属性数 (Math Combine で生成・更新された属性を含む)
  • num_vertex_attribs: 出力ジオメトリの頂点属性数
  • num_prim_attribs: 出力ジオメトリのプリミティブ属性数
  • num_prims: 出力ジオメトリのプリミティブ数
  • gpu_memory_used: この POP が使用している GPU メモリ量

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: 演算結果が想定値と一致しない
✅ Solution:

  • Combine Operation の式 (A / B / C の対応関係) と Scope A / B / C の指定が想定通りか確認
  • Pre 段の Multiply / Add / Operation Order を確認し、意図しない前処理が掛かっていないかチェック
  • Angle Units (degrees / radians / cycles) が三角関数系の演算と一致しているか確認

❌ Problem: 演算結果が出力属性に書き込まれない
✅ Solution:

  • Combine Result Scope が書込みたい属性 (Color / N / Tex 等) と一致しているか確認
  • New Page で新規属性を定義した場合、Type と Components が成分数と整合しているか確認
  • Output Page の Delete Attributes / Delete New Attributes パターンで意図せず破棄されていないかを確認

❌ Problem: Length Mismatch で処理が停止する
✅ Solution:

  • Length Mismatch を warning または ignore に変更して処理を続行
  • Length Mismatch Action で範囲外サンプル位置の値補完方針を明示的に選択
  • 前段で Convert POP 等を使って入力 POP の要素数を揃える

❌ Problem: 三角関数 (sin / cos / atan2) の挙動が意図と異なる
✅ Solution:

  • Inputs Page の Angle Units が想定単位 (Degrees / Radians / Cycles) と一致しているか確認
  • Pre 段の Operation で degrees(A) / radians(A) を使って単位変換を明示
  • 正規化が必要な場合は Combine Operation の normalize(A) を併用

参考資料 📚

その他 🔗

公式リソース 📖

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