
概要 📖 – ノイズで属性値を変化
Noise POPは、入力ジオメトリの各点にノイズ関数を評価し、その値を属性として加算・出力する POPです。ノイズの種類は複数のタイプから選べ、4次元 Translate で時間アニメーション、Curl 出力で発散ゼロのベクトル流れも生成します。
主な用途 🎯
- パーティクルや POP ジオメトリの各点位置を Perlin/Simplex ノイズで滑らかに変位
- 属性値 (Cd、N、tex 等) にノイズを加算・乗算してオーガニックな揺らぎを付与
- 4次元ノイズの第4軸 (Translate 4D) を時間方向に動かしてアニメーション化
- Curl 2D / Curl 3D 出力で発散ゼロのベクトル場を生成しベクトル流れを表現
- Harmonics / Spread / Gain を重ねた fBm 風のフラクタルノイズで複雑なディテールを生成
データフロー 🔄
入力: POP ジオメトリ(属性付き)
↓
ノイズタイプとパラメータ (Period/Amplitude/Harmonics) に基づくノイズサンプリング
↓
出力: 同形状ジオメトリ(ノイズ値を加算・出力した属性)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Noise Page 📋
ノイズ参照属性 .noiselookupattrib 🧭
Noise Lookup Attribute .noiselookupattribNoise Lookup Attribute (ノイズ参照属性) — ノイズ評価時に座標として使用する点属性を指定します。デフォルトは P (位置)。別属性 (rest、tex 等) を指定すると変形前の元座標でノイズをロックするなどの用途に活用できます。
ノイズタイプ .type 🌫️
ノイズの種類を選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Sparse Convolution | .sparse |
格子状のアーティファクトが出ない滑らかなノイズ (デフォルト) |
| Hermite | .hermite |
Hermite 補間に基づく滑らかな格子ノイズ |
| Harmonic Summation | .harmonic |
複数オクターブを加算した fBm 風ノイズ |
| Perlin | .perlin |
Ken Perlin による古典的勾配ノイズ |
| Simplex | .simplex |
Perlin の改良版、高次元で計算効率が良い |
| Alligator | .alligator |
ワニ皮のような細かいセル状パターン |
| Random GPU | .random |
点ごとの疑似乱数 (GPU 高速、空間連続性なし) |
ノイズサイズ .noisesize 🔢
出力するノイズコンポーネント数
| 項目 | 内部名 | 説明 |
|---|---|---|
| 1 | .1 |
スカラーノイズ 1 成分 |
| 2 | .2 |
2 成分ベクトルノイズ |
| 3 | .3 |
3 成分ベクトルノイズ (P や N の変位に最適) |
| 4 | .4 |
4 成分ノイズ |
周期・シード 🌀
Seed .seedSeed (シード値) — ノイズ生成の乱数初期化に使う数値。同じシードなら毎回同じパターンが得られます。
Period .periodPeriod (周期 / スケール) — ノイズの空間スケールを指定します。値を大きくするとパターンがゆったり、小さくすると細かく変化します。
ハーモニクス設定 📶
Harmonics .harmonHarmonics (倍音数) — 基本ノイズに重ねる高周波成分の数を指定します。0 ならベースの形のみ、増やすほどフラクタル状の細部が増えます。
Harmonic Spread .spreadHarmonic Spread (倍音間隔) — 各倍音が前の倍音に対して何倍の周波数を持つかを指定します。一般的には 2 前後 (オクターブ毎)。
Harmonic Gain .gainHarmonic Gain (倍音減衰) — 各倍音の振幅を前の倍音の何倍にするかを指定します。一般的には 0.5 前後 (オクターブ毎に半減)。
パラメータサイズ .parsize 📐
パラメータを点ごとに独立指定する数
| 項目 | 内部名 | 説明 |
|---|---|---|
| 1 | .1 |
全軸共通の単一パラメータ |
| 2 | .2 |
2 軸独立のパラメータ |
| 3 | .3 |
3 軸独立のパラメータ |
| 4 | .4 |
4 軸独立のパラメータ |
振幅・指数・オフセット 🎚️
Amplitude .ampAmplitude (振幅) — 出力値全体に掛ける係数。ノイズの強さを直接スケールします。
Exponent .expExponent (指数) — 内部ノイズ値を指数乗します。1 より大きくするとピークが鋭く、1 より小さくすると緩やかになります。
Offset .offsetOffset (オフセット) — 結果値に加算する一定値。バイアスを与えたいときに使用します。
属性クラスとグループ 🧱
Attribute Class .attrclassAttribute Class (属性クラス) — POP が作用する属性のクラス (Point / Vertex / Primitive) を選択します。
Group .groupGroup (グループ) — 入力にグループが定義されている場合、グループ名を指定するとそのグループだけにノイズを適用します。
Transform Page 🔄
変換順序 .xord 🔀
Scale / Rotate / Translate の適用順
| 項目 | 内部名 | 説明 |
|---|---|---|
| Scale Rotate Translate | .srt |
スケール → 回転 → 移動 (デフォルト) |
| Scale Translate Rotate | .str |
スケール → 移動 → 回転 |
| Rotate Scale Translate | .rst |
回転 → スケール → 移動 |
| Rotate Translate Scale | .rts |
回転 → 移動 → スケール |
| Translate Scale Rotate | .tsr |
移動 → スケール → 回転 |
| Translate Rotate Scale | .trs |
移動 → 回転 → スケール |
回転順序 .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 |
移動 .t ➡️
Translate .tTranslate (移動) — ノイズ空間内で点群を平行移動させます。X / Y / Z の 3 軸成分を指定します。
回転 .r 🔁
Rotate .rRotate (回転) — 対応する X / Y / Z 軸周りに点群を回転させます。角度の単位は度 (degree)。
スケール .s 🔍
Scale .sScale (スケール) — ノイズ空間で X / Y / Z の 3 軸方向にスケールします。軸ごとに異なる周期を与えるのに有効です。
中心点 .p 🎯
Pivot .pPivot (中心点) — 回転とスケールの基準となる中心位置を指定します。
4次元移動 .t4d 🕓
Translate 4D .t4dTranslate 4D (4次元移動) — ノイズの第 4 次元軸方向に移動させます。absTime.seconds など時間を流し込むと、空間形状を保ったままアニメーションする時間軸ノイズが得られます。
Output Page 📤
ノイズ出力スイッチ 🎛️
Noise .noiseNoise (ノイズ出力) — ノイズ値そのものを出力属性に書き込むかどうかのトグル。
Gradient .gradientGradient (勾配出力) — ノイズの空間勾配 (3 成分ベクトル) を出力するかどうか。
Curl 3D .curl3dCurl 3D (3次元 Curl 出力) — 3 次元 Curl ベクトル (発散ゼロのベクトル場) を出力するかどうか。流体的な渦のような動きを作るのに最適。
Curl 2D .curl2dCurl 2D (2次元 Curl 出力) — 2 次元 Curl ベクトルを出力するかどうか。平面的な流れに使用。
合成演算 .combineop ➕
計算したノイズ値と既存属性値を合成する方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| None | .none |
ノイズ値で上書き (合成しない) |
| Add | .add |
既存属性値にノイズを加算 |
| Multiply | .mult |
既存属性値にノイズを乗算 |
合成エンティティ .combineentity 🧩
合成演算で使うノイズ系統
| 項目 | 内部名 | 説明 |
|---|---|---|
| Noise | .noise |
通常のノイズ値を使用 |
| Curl 3D | .curl3d |
3 次元 Curl ベクトルを使用 |
| Curl 2D | .curl2d |
2 次元 Curl ベクトルを使用 |
合成属性スコープ .combineattrscope 🎯
Combine Attribute Scope .combineattrscopeCombine Attribute Scope (合成対象属性) — 合成演算の対象となる入力属性名を指定します (例: P、Cd、N)。
出力属性スコープ .outputattrscope 📤
出力先となる属性 (またはそのコンポーネント)
| 項目 | 内部名 | 説明 |
|---|---|---|
| P | .P |
点位置属性 |
| N | .N |
法線属性 |
| Color | .Color |
色属性 (RGBA) |
| Color.rgb | .Color.rgb |
色属性の RGB 成分のみ |
| Tex | .Tex |
テクスチャ座標属性 |
| PointScale | .PointScale |
ポイントスケール属性 |
| LineWidth | .LineWidth |
ラインの太さ属性 |
属性オーバーライド .overrideautoattr 🛡️
Override Automatic Attribute .overrideautoattrOverride Automatic Attribute (自動属性のオーバーライド) — POP が入力とパラメータから自動で決定する属性種別を、手動で指定したい場合に有効化します。
属性タイプ .attrtype 🔤
出力属性のデータ型
| 項目 | 内部名 | 説明 |
|---|---|---|
| float | .float |
32 bit 浮動小数点 |
| double | .double |
64 bit 浮動小数点 |
| int | .int |
32 bit 整数 |
| uint | .uint |
32 bit 符号なし整数 |
| Color | .color |
色 (RGBA float) |
| Color (double) | .dcolor |
色 (RGBA double) |
| Direction | .dir |
方向ベクトル (float) |
| Direction (double) | .ddir |
方向ベクトル (double) |
コンポーネント数 .attrnumcomps 🔢
新規カスタム属性の成分数
| 項目 | 内部名 | 説明 |
|---|---|---|
| 1 | .1 |
スカラー (1 成分) |
| 2 | .2 |
2 成分 |
| 3 | .3 |
3 成分 (ベクトル / RGB) |
| 4 | .4 |
4 成分 (RGBA / quaternion) |
デフォルト値 .attrdefaultval 🔧
Default Value .attrdefaultvalDefault Value (デフォルト値) — 出力属性が計算できなかった点に与える既定値です。成分数に応じて 1〜4 個の値を指定します。
法線計算 .computenormals 📐
Compute Point Normals .computenormalsCompute Point Normals (点法線の再計算) — ノイズ適用後に点法線 (N) を再計算するかどうか。位置 (P) を変位させた場合に有効化すると、ライティングが正しく追従します。
モード .mode ⚡
速度優先か品質優先か
| 項目 | 内部名 | 説明 |
|---|---|---|
| Performance | .performance |
速度優先 (見た目はやや簡略化) |
| Quality | .quality |
品質優先 (より滑らかで正確なノイズ場) |
Map Page 🗺️
属性マッピング .map 🔗
Mapping .mapMapping (マッピング) — 属性をパラメータに点ごとに割り当てるシーケンスの開始マーカー。連番ブロック (map0、map1、…) で複数マッピングを定義できます。
OP .map0opOP (参照元) — マッピングの参照元 POP を指定します。デフォルトの _in0 は入力 POP 自身を意味します。
Element .map0elementElement (要素) — 点ごとにパラメータへマップする属性 (またはその成分) を指定します。
ターゲットパラメータ .map0parm 🎯
属性値で上書きする Noise POP 側のパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Period | .period |
周期 (Period) を点ごとに変える |
| Offset | .offset |
オフセット (Offset) を点ごとに変える |
| Amplitude | .amp |
振幅 (Amplitude) を点ごとに変える |
| Exponent | .exp |
指数 (Exponent) を点ごとに変える |
| Harmonic Spread | .spread |
倍音間隔 (Spread) を点ごとに変える |
| Harmonic Gain | .gain |
倍音減衰 (Gain) を点ごとに変える |
マップ合成演算 .map0combineop ➕
マップ値と既存パラメータ値の合成方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Set | .set |
属性値でパラメータを上書き |
| Multiply | .mult |
既存パラメータ値に乗算 |
| Add | .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) を指定。指定外の属性は破棄される - 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約
実践アイデア 💡
Example 1: ノイズで点位置を有機的に変位 🌊
Box POP → Noise POP (Output Attribute Scope = P, Combine = Add) → Render TOP
Box POP で生成した点群の位置属性 (P) に Perlin ノイズを加算し、立方体表面が有機的に揺らぐ表現を作る基本フロー。Period を小さくすればトゲトゲに、大きくすれば膨らみのような大きなうねりに変化します。
- Box POP で点付き立方体を生成
- Noise POP の Output Attribute Scope を
P、Combine Operation をAdd、Type をPerlinに設定 - Period を 1.0 前後、Amplitude を 0.2 程度から始めて揺らぎ量を調整
- Compute Point Normals を有効化してライティングが追従するようにする
Example 2: 4次元ノイズで時間変化 ⏱️
Sphere POP → Noise POP (Translate 4D = absTime.seconds) → Particle POP
Sphere POP で生成した球面上の点に対し、Translate 4D に時間を流し込むことで形状を保ったままノイズパターンが時間で動くアニメーションを作るフロー。空間ジャンプが起きないため周期的な揺らぎ表現に最適です。
- Sphere POP で球面サンプル点を生成
- Noise POP を接続し Output Attribute Scope を
Pに、Combine をAddに設定 - Translate 4D パラメータに
absTime.secondsを入力して時間を流し込む - Harmonics を 2〜3 に増やしてフラクタル感を加える
Example 3: Curl で渦巻く速度場 🌪️
Grid POP → Noise POP (Output Curl 3D → N) → Particle POP (velocity from N)
Grid POP で配置した点群に Noise POP の Curl 3D 出力を法線属性 (N) として書き込み、それを Particle POP の速度入力として読ませることで発散ゼロのベクトル場 (流体的な渦巻く動き) を作るフロー。煙や風のシミュレーションの土台に向きます。
- Grid POP で平面格子の点群を作成
- Noise POP の Output で Curl 3D を有効化、Output Attribute Scope を
Nに設定 - Particle POP に接続して速度ベクトルとして N 属性を参照させる
- Period と Amplitude で渦のスケールと強さを調整
関連オペレータ 🔗
類似機能OP 🔍
- Random POP — 点ごとに独立な乱数値、空間連続性なし
- Pattern POP — チェッカーやストライプ等の決定的パターン生成
組み合わせ推奨OP 🔄
- Math POP — ノイズ出力をスケール・オフセット・関数変換
- Limit POP — ノイズ値を上下限にクランプ
- Normalize POP — Curl 出力ベクトルを単位ベクトル化
- Particle POP — ノイズで生成した速度を粒子運動に流し込む
- Attribute POP — 新規属性を事前に作って Noise POP で書込み先にする
- Noise CHOP — CHOP 側のノイズと連携して時系列信号を生成
- Noise TOP — 同じノイズロジックをテクスチャ空間で生成
- Noise SOP — SOP 側のジオメトリ変位ノイズと組み合わせ
前処理・後処理POP 🎯
- 前処理: Box POP、Sphere POP、Grid POP、In POP、File In POP、Attribute POP
- 後処理: Math POP、Limit POP、Normalize POP、Out POP、Null POP
Info情報 📊
POP ファミリには専用の Info OP が存在しません。Noise POP の出力情報は下流の Null POP で値を確認したり、Python から POP クラスメンバーで取得します。
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: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: ノイズが点ごとに変化しない
✅ Solution:
Noise Lookup Attributeに位置 (P) など点ごとに異なる属性が指定されているか確認- 全点が同じ座標を持つ入力では均一値になるため、前段で Box POP や Grid POP で点を散らす
Periodを小さくして空間スケールを細かくしているか確認
❌ Problem: アニメーションしない
✅ Solution:
Translate 4DパラメータにabsTime.seconds等の時間表現を流し込む- あるいは
Translateの各軸に時間表現を入れて空間方向にスクロール - Cook がトリガされていない場合は下流に Null POP + Active を確認
❌ Problem: 値の振れ幅が想定と合わない
✅ Solution:
Amplitude/Exponent/Offsetで値域を調整Combine OperationがAddかMultiplyかで結果が大きく変わる点を確認- 後段で Limit POP でクランプする、または Math POP で範囲リマップ
❌ Problem: ハーモニクスでパフォーマンスが重い
✅ Solution:
Harmonicsを必要最小限 (1〜3) に抑える- 不要な出力 (
Gradient/Curl 3D/Curl 2D) をオフ ModeをPerformanceに切り替えて軽量化
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

