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

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

Pattern POP の波形パターン点群生成機能を示す図

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

概要 📖 – 波形パターンで点群と属性を生成

Pattern POPは、正弦波や三角波などの周期パターンに沿った点列ジオメトリと属性値を生成する POPです。点数・サイクル数・位相・指数などのパラメータで波形の形を細かく制御でき、生成した値を位置や色などの属性として出力します。

主な用途 🎯

  • 正弦波・三角波・矩形波・ノコギリ波・ランプ等の波形に沿った点列ジオメトリの生成
  • ライン・ポイントプリミティブとして出力する手続き的な形状づくり
  • サイクル数・位相・指数で形を制御する周期パターンの作成
  • 生成した波形値を P・色・テクスチャ座標等の属性へ書き出す属性生成
  • 既存ジオメトリの属性に波形を加算・乗算して変調する用途

データフロー 🔄

入力: 任意の POP (なくても可)

Pattern POP(Type で波形を選び、点数・サイクル数・位相で形状を定義)

出力: 波形に沿った点列ジオメトリと指定属性

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Pattern Page 📋

点列の基本設定 🎛️

Number of Points .numpoints 🔢
Number of Points (点の数) — 生成する点の総数を指定します。
– 値が大きいほど波形が滑らかになりますが、出力ジオメトリも重くなります。

Cyclic .cyclic 🔄
Cyclic (循環) — オンにすると完結した 1 サイクルが「点数 + 1」個の値に対応します。
– 始点と終点を滑らかにつなぎたい閉じたパターンで有効になります。

Connectivity .connectivity 🔗

Connectivity (接続方法) — 生成した点をどう結ぶかを指定します。

項目 内部名 説明
None .none 点を結ばずポイントのみ出力 (パーティクル配置・インスタンシング向け)
Lines .lines 連続したラインとして点を結んで出力 (波形の描画向け)
Point Prims .points 各点を個別のポイントプリミティブとして出力

Parameter Size .parsize 📊

Parameter Size (値の数) — 独立して設定できるパラメータ値の数を指定します。

項目 内部名 説明
1 .1 スカラー値 (1 次元の波形)
2 .2 2 次元ベクトル (UV 等)
3 .3 3 次元ベクトル (XYZ 位置・RGB 等)
4 .4 4 次元ベクトル (RGBA 等)

Type .type 📈

Type (波形の種類) — 生成するパターンの波形を選択します。Parameter Size に応じて成分ごとに type0 / type1 / type2 と独立指定できます。

項目 内部名 説明
Type .type0 成分 0 の波形の種類を指定 (正弦波・三角波・矩形波・ノコギリ波・ランプ・ランダム等)
Type .type1 成分 1 の波形の種類を指定 (Parameter Size が 2 以上のとき有効)
Type .type2 成分 2 の波形の種類を指定 (Parameter Size が 3 以上のとき有効)

波形の形状制御 🎚️

波形 1 周期あたりの形やサイクル数・偏りを制御するパラメータ群(成分ごとに末尾 0/1/2 で独立指定)。

Seed .seed 🎲
Seed (乱数の種) — ランダム波形を初期化する数値です。
– 同じ値なら毎回同じランダムパターンが再現されます。

Number of Cycles .numcycles 🔁
Number of Cycles (サイクル数) — 全長にわたって波形を何回繰り返すかを指定します (Random を除く)。
numcycles0 / numcycles1 / numcycles2 で成分ごとに指定します。

Step per Cycle .steppercycle 📐
Step per Cycle (サイクルごとの増分) — 各サイクルに加算される値です。
steppercycle0 / steppercycle1 / steppercycle2 で成分ごとに指定します。

Bias .bias ⚖️
Bias (偏り) — 三角波をノコギリ波に変形し、矩形波の幅 (デューティ比) を可変にします。
bias0 / bias1 / bias2 で成分ごとに指定します。

Phase .phase ↪️
Phase (位相) — 波形サイクルを前後にずらします。
phase0 / phase1 / phase2 で成分ごとに位相をずらせます。

Exponent .exp 📈
Exponent (指数) — 内部値をこの指数で累乗し、波形の立ち上がりカーブを変えます。
exp0 / exp1 / exp2 で成分ごとに指定します。

出力レンジの再マップ 🎯

波形値を任意の出力レンジへ再マッピングするパラメータ群(成分ごとに末尾 0/1/2 で独立指定)。

Map from Low .fromlow 📥
Map from Low (元レンジ下限) — 属性値を再マップする際の入力レンジ下限です。
fromlow0 / fromlow1 / fromlow2 で成分ごとに指定します。

Map from High .fromhigh 📥
Map from High (元レンジ上限) — 属性値を再マップする際の入力レンジ上限です。
fromhigh0 / fromhigh1 / fromhigh2 で成分ごとに指定します。

Map to Low .tolow 📤
Map to Low (出力レンジ下限) — 再マップ後の出力レンジ下限です。
tolow0 / tolow1 / tolow2 で成分ごとに指定します。

Map to High .tohigh 📤
Map to High (出力レンジ上限) — 再マップ後の出力レンジ上限です。
tohigh0 / tohigh1 / tohigh2 で成分ごとに指定します。

並び順とライン制御 🔀

点列の順序やライン区切りを制御するパラメータ群(一部は成分ごとに末尾 0/1/2 で独立指定)。

Reverse .reverse ↩️
Reverse (逆順) — オンにすると波形の並び順を逆転します。
reverse0 / reverse1 / reverse2 で成分ごとに指定します。

Line Break Each Cycle .linebreakcycle ✂️
Line Break Each Cycle (サイクルごとに区切り) — オンにすると各サイクルの境目でラインを区切ります。
linebreakcycle0 / linebreakcycle1 / linebreakcycle2 で成分ごとに指定します。

Closed .closed 🔒
Closed (閉じる) — オンにすると最後の頂点が最初の頂点に接続され、閉じた形状になります。
– 円環状や多角形状のラインをつくりたい場合に有効になります。

Output Line Break Attribute .outputlinebreakattr 🏷️
Output Line Break Attribute (区切り属性の出力) — LineBreak 属性を出力するかどうかを指定します。
– 下流でライン区切り位置を参照したい場合にオンにします。

Texture Coordinates .texture 🗺️

Texture Coordinates (テクスチャ座標) — サイクルに対するテクスチャ座標の割り当て方を選択します。

項目 内部名 説明
Off .off テクスチャ座標を生成しない
Ramp Start to End .rampstartend 始点から終点まで一様に 0〜1 のランプを割り当て
Ramp Per Cycle .ramppercycle サイクルごとに 0〜1 のランプを繰り返し割り当て

Combine Operation .combineop

Combine Operation (結合方法) — 生成した出力値を結合対象の属性値とどう合成するかを指定します。

項目 内部名 説明
Set .set 生成値で上書き
Add .add 既存値に生成値を加算
Multiply .mult 既存値に生成値を乗算

属性スコープの指定 📡

結合対象と出力先の属性を指定するパラメータ群。

Combine Attribute Scope .combineattrscope 📥
Combine Attribute Scope (結合対象属性) — 結合操作の入力となる属性のスコープを指定します。
Combine Operation が Add / Multiply のときの相手属性を絞り込みます。

Output Attribute Scope .outputattrscope 📤

Output Attribute Scope (出力先属性) — 生成した波形値を書き出す属性 (成分も選択可) をメニューから選びます。

項目 内部名 説明
P .P ポイント位置属性
N .N 法線属性
Color .Color RGBA カラー属性
Color.rgb .Color.rgb カラー属性の RGB 成分のみ
Tex .Tex テクスチャ座標属性
PointScale .PointScale ポイントスケール属性
LineWidth .LineWidth ライン幅属性

カスタム属性の上書き 🔧

出力属性を自動生成に任せず、手動で型・成分数を指定するパラメータ群。

Override Automatic Attribute .overrideautoattr 🔧
Override Automatic Attribute (自動属性を上書き) — 入力やパラメータから自動決定される属性の種類を上書きするモードです。
– オンにすると以下の Attribute Type / Components / Default Value を手動で指定します。

Attribute Type .attrtype 🔢

Attribute Type (属性の型) — 出力属性のデータ型を指定します (デフォルトは float)。

項目 内部名 説明
float .float 32-bit 浮動小数点
double .double 64-bit 浮動小数点
int .int 符号付き整数
uint .uint 符号なし整数
Color .color カラー (float)
Color (double) .dcolor カラー (double)
Direction .dir 方向ベクトル (float)
Direction (double) .ddir 方向ベクトル (double)

Components .attrnumcomps 📊

Components (成分数) — 新規カスタム属性の成分数を指定します。

項目 内部名 説明
1 .1 スカラー値
2 .2 2 次元 (UV 等)
3 .3 3 次元 (XYZ・RGB 等)
4 .4 4 次元 (RGBA 等)

属性の補足設定 🧩

デフォルト値・属性クラス・対象グループを指定するパラメータ群。

Default Value .attrdefaultval 🎯
Default Value (デフォルト値) — 値を計算できなかった場合に使う出力属性のデフォルト値です。
– 成分数に応じて attrdefaultval0attrdefaultval3 を指定します。

Attribute Class .attrclass 🧬
Attribute Class (属性クラス) — 点属性・頂点属性・プリミティブ属性のどれを対象に操作するかを指定します。
– 該当するクラスがある場合のみ切り替えられます。

Group .group 🎯
Group (グループ) — 入力にグループがある場合、グループ名を指定するとそのグループのみに作用します。
– 空欄なら全点が対象になります。


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: 正弦波ラインの描画 🌊

Pattern POP (Type=Sine, Connectivity=Lines) → Render TOP (ラインマテリアル付き)

Pattern POP の Type に正弦波を選び、点を Lines で結んで滑らかなサインカーブのラインジオメトリを描く基本フロー。サイクル数と位相を変えるだけで波の細かさと位置が調整でき、手続き的な波形描画の土台になります。

  1. Pattern POP の Number of Points を 200 程度、Connectivity を Lines に設定
  2. type0 を Sine (正弦波) に、numcycles0 でサイクル数を指定
  3. Output Attribute Scope を P にして波形を点の位置 (高さ) に書き出す
  4. phase0 をアニメーションさせると波が横方向に流れて見える

Example 2: 波形で色を生成 🎨

Grid POP → Pattern POP (Output=Color, Combine=Set) → Render TOP

格子状ジオメトリに対し Pattern POP で波形値を Color 属性に書き出し、周期的なグラデーションを与える例。Map to Low / Map to High で出力レンジを 0〜1 に整えれば、そのままシェーダの色として使えます。

  1. 上流の Grid POP で格子状の点を用意
  2. Pattern POP の Output Attribute Scope を Color、Combine Operation を Set に設定
  3. tolow0 / tohigh0 で出力レンジを 0〜1 に再マップ
  4. 出力 POP を Render TOP に渡してシェーダで色属性を参照

Example 3: 矩形波で点を変調 🔲

入力 POP → Pattern POP (Type=Square, Output=PointScale, Combine=Multiply) → Render TOP

既存の点群に対し矩形波を PointScale 属性へ乗算で適用し、一定間隔で点の大きさが切り替わる周期的な見た目を作る例。Bias でデューティ比を変えれば大きい区間と小さい区間の比率を調整できます。

  1. Pattern POP の type0 を Square (矩形波) に設定
  2. Output Attribute Scope を PointScale、Combine Operation を Multiply に設定
  3. bias0 で矩形波の幅 (デューティ比) を調整
  4. numcycles0 で点群全体に何回の切り替えを入れるか指定

関連オペレータ 🔗

類似機能OP 🔍

  • Pattern CHOP — 同じ波形生成をチャンネルデータとして行う CHOP 版 (Pattern POP は点群ジオメトリとして出力)
  • Noise POP — 規則的な波形ではなくノイズ関数で点・属性を生成

組み合わせ推奨OP 🔄

  • Math POP — 生成した波形値を後段で数式変換・スケーリング
  • ReRange POP — 波形の属性値を別レンジに再マッピング
  • Geometry COMP — Pattern POP の点列をインスタンシング元として描画
  • CHOP to POP — CHOP 由来の値を Pattern POP の結合対象属性として注入

前処理・後処理POP 🎯


Info POP情報 📊

Pattern POPは Info CHOP / Info DAT による詳細情報取得に対応しています。

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: エラー数

出力ジオメトリ情報 🧬

  • num_points: 出力点列の総ポイント数 (Number of Points に対応)
  • num_prims: 出力プリミティブ数 (Lines / Point Prims 出力時)
  • num_point_attribs: 出力 POP の point 属性数
  • num_vertex_attribs: 出力 POP の vertex 属性数
  • num_prim_attribs: 出力 POP の primitive 属性数

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

よくある問題と解決策 🔧

❌ Problem: 波形がカクついて見える
✅ Solution:

  • Number of Points を増やしてサンプル数を上げ滑らかにする
  • Connectivity が Lines になっているか確認 (None だと点のみで線がつながらない)
  • 1 サイクルあたりの点数が足りないときは numcycles を下げてサイクルあたりの密度を上げる

❌ Problem: 出力属性が反映されない
✅ Solution:

  • Output Attribute Scope に意図した属性 (P / Color 等) が選ばれているか確認
  • Combine Operation が Set / Add / Multiply のどれになっているか確認 (Set で上書き、Add で加算)
  • 後段でMath POPを使う場合は属性名が一致しているか確認

❌ Problem: 値が想定レンジに収まらない
✅ Solution:

  • Map to Low / Map to High で出力レンジを明示的に指定
  • Map from Low / Map from High が波形の元レンジをカバーしているか確認
  • 色として使う場合は出力レンジを 0〜1 に再マップしてから渡す

❌ Problem: ランダム波形が毎回変わる / 変わらない
✅ Solution:

  • Seed を固定すれば同じランダムパターンが再現される
  • 毎回変えたい場合は Seed をアニメーション値や乱数で駆動する
  • Random 以外の波形では Seed は影響しないことを確認

参考資料 📚

その他 🔗

公式リソース 📖

関連オペレータ 🔗

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