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

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

Noise CHOP のノイズ生成機能を示す図

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

概要 📖 – ノイズ生成と時系列モジュレーション

Noise CHOPは、シードと周期から滑らかで自然な不規則波形を生成し、アニメーションやモーション制御に揺らぎを与える CHOPです。ノイズ関数(Type)を切り替えるだけで Random・Perlin・Simplex 等の異なる質感の波形を得られ、Harmonics・Roughness によるディテール調整、Constraint による始点終点固定まで 1 オペレータで完結します。

主な用途 🎯

  • 時系列ノイズ波形の生成(Random / Alligator / Sparse / Hermite / Harmonic Summation / Perlin / Simplex)
  • アニメーションやモーション制御へのオーガニックな揺らぎ付与
  • 周期(Period)と高調波(Harmonics)による自然な不規則変動の制御
  • Time Slice モードでのリアルタイム連続ノイズ供給
  • Constraint による始点・終点・平均値の固定(Time Slice オフ時のループ素材生成)

データフロー 🔄

入力: シード値(Seed)+ 周期(Period)

ノイズ関数(Type)による波形生成

高調波合成(Harmonics / Roughness)

Exponent / Amplitude による整形

Transform(移動・回転・スケール)

Constraint による値域固定

出力: チャンネル波形

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Noise Page 🌊

Type .type 🎛️

ノイズ生成に使用する関数を選択するメニュー

項目 内部名 説明
Random .random 完全なランダム値(周期=0 で純粋ホワイトノイズ)
Alligator .alligator 鋸状の不規則な波形
Sparse .sparse Perlin と類似の連続的ノイズ(常に正規化済み)
Hermite .hermite エルミート補間による滑らかなノイズ(常に正規化済み)
Harmonic Summation .harmonic 基本周波数に複数の高調波を重畳した古典的フラクタルノイズ
Perlin (2D) .perlin Ken Perlin による定番の連続的ノイズ
Simplex (2D) .simplex Perlin の改良版で計算効率と等方性に優れる

波形パラメータ 〰️

Seed .seed 🌱
– 乱数生成器の起点となる任意の数値(整数・非整数いずれも可)
– 値が異なれば全く違うパターンを得られるが、ノイズ全体の特性は同等

Period .period 📐
– ノイズ波形のピーク間隔(Unit 指定)
– 周期を大きくするとノイズが間延びし、Type=Random で 0 にすると純粋ランダム化

Period Unit .periodunit 📏
– Period の単位を Samples / Frames / Seconds / Fraction から選択

Harmonics .harmon 🎼
– 基本周波数に重ねる高調波の数
– 値を増やすほどノイズが粗く(バンピーに)なる(Roughness が 0 でない場合)

Harmonic Spread .spread 🌀
– 高調波の周波数倍率(通常は 2)
– Type=Harmonic Summation 時のみ有効

Roughness .rough 🪨
– 高調波の振幅減衰係数(0 で高調波無効、1 で基本周波数と同振幅)
– デフォルト 0.5 で各高調波が 0.5・0.25・0.125 と指数減衰

Exponent .exp 📈
– 値を 0 へ寄せる(>1)か ±1 へ寄せる(<1)べき乗整形
– チャンネル形状を再シェーピングする用途

Num of Integrals .numint
– ブラウン運動的ノイズの積分回数(Random タイプのみ有効)
– 値が大きいほど特徴の少ない滑らかな曲線になる(4 以上はほぼ同等)

Amplitude .amp 🔊
– 出力値全体に掛ける振幅スケール

Reset .reset 🔁
– Time Slice オン時のみ有効
– トグルでノイズ計算をリセットし、解除するまで値を保持

Reset Pulse .resetpulse
– Time Slice オン時のみ有効
– パルスでノイズ計算をリセット


Transform Page 🔄

Transform Order .xord 🔢

Translate (T) / Rotate (R) / Scale (S) を適用する順序を選ぶメニュー。順序を変えると最終位置・姿勢が変わる。表示名は「適用順 (左から先)」、行列式は列ベクトル規約 (column vector convention) — 先に適用するものが式の最右、後に適用するものが左に来る。

項目 内部名 説明
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 軸の回転を適用する順序を選ぶメニュー。Transform Order と同じ規約で、表示名が左から先に適用される軸、行列式は列ベクトル規約 (後から適用する回転ほど左)。

項目 内部名 説明
Rx Ry Rz .xyz R = Rz * Ry * Rx
Rx Rz Ry .xzy R = Ry * Rz * Rx
Ry Rx Rz .yxz R = Rz * Rx * Ry
Ry Rz Rx .yzx R = Rx * Rz * Ry
Rz Rx Ry .zxy R = Ry * Rx * Rz
Rz Ry Rx .zyx R = Rx * Ry * Rz

Transform 値 📐

Translate .t 📍
– XYZ の平行移動値

Rotate .r 🔄
– XYZ の回転値(度数)

Scale .s 📏
– XYZ の拡大縮小スケール

Pivot .p 🎯
– 上記変換を適用する基準点(XYZ)


Constraints Page 🔒

Constraint .constraint 🎚️

ノイズ曲線の始点・終点・平均値を選択値に固定する制約モード(Time Slice オフ時のみ有効)

項目 内部名 説明
Off .off 制約なし
Start .start 始点の値を固定
End .end 終点の値を固定
Start and End .startend 始点と終点の両方を固定(ループ波形生成に有効)
Mean .mean 平均値を指定値に固定

Constraint 値 🎯

Starting Value .constrstart 🏁
– 始点に固定する値

Ending Value .constrend 🚩
– 終点に固定する値

Mean Value .constrmean 📊
– ノイズの平均値として固定する値

Normalize .normal 📐
– すべてのノイズ曲線を -1〜1 に正規化(Amplitude 適用前)
– Random / Harmonic Summation でのみ有効(Hermite / Sparse は常に正規化済み)


Channel Page 📡

Channel Names .channelname 🏷️

チャンネル名生成パターン:

  • Channel Names: chan[1-20] のようなパターンで複数チャンネルを生成(各チャンネルに固有シードが割り当てられる)

区間設定 ⏳

Start .start ⏮️
– 区間の開始位置(Unit 指定)

Start Unit .startunit 📏
– Start の単位を Samples / Frames / Seconds から選択

End .end ⏭️
– 区間の終了位置(Unit 指定)

End Unit .endunit 📏
– End の単位を Samples / Frames / Seconds から選択

Sample Rate .rate
– チャンネルのサンプルレート(samples/sec)
– デフォルトは me.time.rate

Extend Conditions .extend ↔️

区間の前後(範囲外)でチャンネルがどう振る舞うかの設定

Extend Left .left ⬅️
– 区間の左側(範囲前)の Extend 条件

Extend Right .right ➡️
– 区間の右側(範囲後)の Extend 条件

Default Value .defval 🔢
– Default Value Extend 条件で使用される値


Common Page 🔧

Time Slice .timeslice ⏱️

Time Slice モードの強制設定:

  • オン: チャンネルを「タイムスライス」モードに強制
  • タイムスライス: 前回のクックフレームから現在のクックフレームまでの時間

Scope .scope 🎯

影響を受けるチャンネルの絞り込み:

  • Scope 文字列: 影響を受けるチャンネルを指定する文字列
  • パターンマッチング: *[1-10] 等のパターンが使用可能

Sample Rate Match .srselect

複数の入力 CHOP のサンプルレートが異なる場合の処理方法

項目 内部名 説明
Resample At First Input’s Rate .first 最初の入力のレートで他をリサンプル
Resample At Maximum Rate .max 最高サンプルレートでリサンプル
Resample At Minimum Rate .min 最低サンプルレートでリサンプル
Error If Rates Differ .err レート不一致でエラー

Export Method .exportmethod 📤

CHOP チャンネルをパラメータに接続する方法

項目 内部名 説明
DAT Table by Index .datindex DAT テーブルのインデックスでチャンネルとパラメータを対応付け
DAT Table by Name .datname DAT テーブルの行名でチャンネルとパラメータを対応付け
Channel Name is Path:Parameter .autoname チャンネル名を `path:parameter` 形式で記述し直接対応付け

Export Root .autoexportroot 🌳

Channel Name is Path:Parameter モード時のパス基点:

  • Export Root パス: autoname モードでチャンネル名のパス部分を相対化する基点 OP のパス

Export Table .exporttable 📋

DAT Table エクスポート方式での参照 DAT:

  • Export Table DAT: datindex / datname モード時に参照する DAT のパス

Rename from .commonrenamefrom 🔤

リネーム対象チャンネルのパターン:

  • Rename from パターン: リネーム対象とするチャンネル名のパターンマッチング文字列

Rename to .commonrenameto 🔁

リネーム後の置換パターン:

  • Rename to パターン: Rename from にマッチしたチャンネルの新しい名前パターン (デフォルトはリネームなし)

実践アイデア 💡

Example 1: ライトの自然な揺らぎ 💡

Noise CHOP (Type: Perlin) → Math CHOP (Range mapping) → Light Intensity
  1. Noise CHOP の Type を「Perlin」に設定し、Period を 2 秒程度に
  2. Math CHOP の From Range [-1, 1]、To Range [0.7, 1.0] でランプ強度の範囲にマッピング
  3. 出力をライトの強度パラメータに Export
  4. ろうそくのような自然な明滅が得られる

Example 2: オブジェクトのオーガニック移動 🌿

Noise CHOP (3 channels: tx, ty, tz) → Geometry COMP の Transform
  1. Noise CHOP の Channel Names を「t[xyz]」に設定して 3 チャンネル生成
  2. Type を「Simplex」、Amplitude を移動量に応じて調整
  3. Geometry COMP の Translate に各チャンネルを Export
  4. オブジェクトが浮遊するような有機的な動きを描く

Example 3: ループ可能な背景アニメーション 🔁

Noise CHOP (Time Slice Off, Constraint: Start and End) → Resample CHOP → 出力
  1. Noise CHOP の Time Slice をオフにし、Start / End で 1 ループ分の長さを定義
  2. Constraint を「Start and End」に設定し、Starting Value = Ending Value で揃える
  3. 後段の Resample CHOP で長さを再生フレーム数にリサンプル
  4. 始点と終点が一致するシームレスなループ素材が得られる

Example 4: ジェネラティブな数値スウォーム 🐝

Noise CHOP (Channel Names: chan[1-50]) → Math CHOP → Instance パラメータ
  1. Channel Names に「chan[1-50]」を設定し 50 個の独立ノイズを生成(各チャンネル固有シード)
  2. Math CHOP で値域を Instance の位置範囲にマッピング
  3. Geometry COMP の Instancing パラメータに割り当て
  4. 50 個のインスタンスが各々独立に揺らぐスウォーム表現が完成

関連オペレータ 🔗

類似機能OP 🔍

  • Pattern CHOP — サイン波・ランプ・矩形波等の決定論的波形を生成(ノイズではなく規則的)
  • Constant CHOP — 固定値を出力(揺らぎなしの基準値ソース)
  • LFO CHOP — 周期的な低周波振動を生成(ノイズの代わりに規則的な変調が必要なとき)

組み合わせ推奨OP 🔄

  • Math CHOP — ノイズ出力の値域変換・スケーリングに最適
  • Filter CHOP — ノイズの後段で更に時間方向のスムージング
  • Lag CHOP — ノイズに遅延応答を加えて慣性的な動きを表現
  • Resample CHOP — Time Slice オフ Noise の長さ・サンプルレート調整
  • Trigger CHOP — ノイズ波形をエンベロープのアタック・リリース起動信号に活用
  • Logic CHOP — ノイズに閾値を設けてランダムなトリガを生成
  • CHOP to TOP — ノイズ波形を GPU シェーダ uniform に渡してビジュアルに反映

前処理・後処理CHOP 🎯


Info CHOP情報 📊

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

CHOP固有情報 🎚️

  • start: CHOPインターバルの開始(サンプル単位)
  • length: CHOPのサンプル数
  • sample_rate: フレーム毎秒のサンプルレート
  • num_channels: CHOPのチャンネル数
  • time_slice: タイムスライス有効時は1、無効時は0
  • export_sernum: Export接続の更新回数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間(ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

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

よくある問題と解決策 🔧

❌ Problem: ノイズが期待より粗い・滑らかすぎる
✅ Solution:

  • Type を「Perlin」「Simplex」「Hermite」等の連続的タイプに変更すると滑らかに、「Random」「Alligator」で粗くなる
  • Period を大きくすると間延びして滑らかに、小さくすると細かい振動に
  • Harmonics と Roughness の両方が非ゼロのときだけ高調波の効果が現れる(片方が 0 だと単純な基本周波数のみ)

❌ Problem: Time Slice オン時にノイズがリセットされない
✅ Solution:

  • Time Slice オン時は Constraint や Reset 系のパラメータが特殊な扱いになる
  • Reset / Reset Pulse パラメータでノイズ計算を明示的にリセットする
  • Time Slice オフ時のみ Constraint(Start / End / Mean)が機能するため、ループ素材は Time Slice オフで生成する

❌ Problem: シードを変えてもノイズパターンが変わらない
✅ Solution:

  • Seed パラメータの変更後、Noise CHOP がクックされているか確認(一部のタイプは Cook が走らないと再評価されない)
  • 後段で Math CHOP 等が値域を固定していないか確認
  • 複数チャンネル時は Channel Names のパターンに応じて各チャンネルに固有シードが割り当てられるため、全体の Seed は基準値として作用する

❌ Problem: 値域が想定外(-1〜1 を超える / 中央値がずれる)
✅ Solution:

  • Normalize をオンにすると -1〜1 に正規化される(Random / Harmonic Summation のみ有効)
  • Hermite / Sparse は常に正規化済みのため Normalize は無効
  • Amplitude は Normalize の後に適用されるため、最終値域は Amplitude 倍になる

参考資料 📚

その他 🔗

公式リソース 📖

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