
概要 📖 – プロシージャルノイズテクスチャの生成 TOP
Noise TOPは、周期・ハーモニクス・粗さなどのパラメータから 2D〜4D のプロシージャルノイズパターンを生成する TOPです。Type で Sparse / Hermite / Harmonic Summation / Random / Alligator (Cell Noise) を選択でき、Transform ページの 4D 移動・スケールで時間軸を含む 4 次元ノイズサンプリングも可能です。
主な用途 🎯
- ディスプレイスメントマップ用のプロシージャルノイズテクスチャの生成
- UV 歪み・水面揺らぎ・煙のような有機的アニメーションのベース
- パーティクル位置・粒度・色のランダムソース
- テクスチャ合成のためのマスク・ノイズパターン生成 (Sparse / Hermite / Random / Alligator 等)
- 4D ノイズによる時間軸シームレスループ生成 (
Translate 4D/Scale 4D)
データフロー 🔄
入力: なし / 任意の TOP
↓
Type・Period・Harmonics 等によるノイズ計算
↓
Transform でサンプリング座標の移動・回転・スケール
↓
Output ページで RGB / Alpha 合成方式を選択
↓
出力: ノイズテクスチャ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Noise Page 📋
Type .type 🎛️
ノイズ生成に使用するノイズ関数の種類
| 項目 | 内部名 | 説明 |
|---|---|---|
| Sparse | .sparse |
Sparse Convolution ベースの高品質連続ノイズ |
| Hermite | .hermite |
Sparse より高速だが品質はやや劣るノイズ |
| Harmonic Summation | .harmonic |
ハーモニクスの周波数ステップを Harmonic Spread で制御可能 (最も低速) |
| Random | .random |
ホワイトノイズ。各サンプルが互いに無関係な完全乱数 |
| Alligator | .alligator |
Cell Noise (Voronoi 風のセルパターン) |
周期・ハーモニクス関連パラメータ 🌊
Seed .seed 🎲
乱数生成のシード値。整数・非整数いずれも可で、値が変わると同じ特性を保ちつつ全く異なるノイズパターンが得られる
Period .period 📏
ノイズサイクルのピーク間隔 (Units 単位)。値を増やすとノイズパターンが引き伸ばされる。周期は周波数の逆数で、Period が 2 秒なら基本周波数は 0.5Hz
Harmonics .harmon 🎼
基本周波数の上に重ねる高周波成分の数。値が大きいほどノイズの凹凸が増える (Roughness が 0 でなければ)。0 ハーモニクスでは基本形状のみ
Harmonic Spread .spread 📐
ハーモニクスの周波数が増加する倍率。通常は 2。Spread が 3 で基本周波数が 0.1Hz の場合、0.3Hz / 0.9Hz / 2.7Hz のように倍々で増える
Harmonic Gain .gain 📈
基本周波数の上に重ねるハーモニクスのゲイン量
Roughness .rough 🪨
高周波ノイズの効き具合を制御。0 でハーモニクスは無効化、1 ですべてのハーモニクスが基本周波数と同振幅。デフォルト 0.5 で 1 番目=0.5 / 2 番目=0.25 / 3 番目=0.125 と指数的に減衰
Exponent .exp 📊
ノイズ値を 0 寄りまたは ±1 寄りに押し出す指数。1 より大きい値はチャンネルを 0 に寄せ、1 未満ではピークを ±1 に寄せる。チャンネルの再形成に使用
Amplitude .amp 📡
出力ノイズ値の振幅 (出力スケール)
Offset .offset 🎨
ノイズパターンの中点となる色値 (デフォルト 0.5 の灰色)
Monochrome .mono ⚫
カラーノイズとモノクロノイズを切り替えるトグル
Aspect Correct .aspectcorrect 📐
ノイズ座標計算時にテクスチャのアスペクト比を考慮するかどうか。オフだと非正方形テクスチャでノイズが歪んで引き伸ばされる
Transform Page 🔄
Transform Order .xord 🔢
サンプリング平面に適用する変換の順序
| 項目 | 内部名 | 説明 |
|---|---|---|
| Scale Rotate Translate | .srt |
Scale → Rotate → Translate の順で適用 |
| Scale Translate Rotate | .str |
Scale → Translate → Rotate の順で適用 |
| Rotate Scale Translate | .rst |
Rotate → Scale → Translate の順で適用 |
| Rotate Translate Scale | .rts |
Rotate → Translate → Scale の順で適用 |
| Translate Scale Rotate | .tsr |
Translate → Scale → Rotate の順で適用 |
| Translate Rotate Scale | .trs |
Translate → Rotate → Scale の順で適用 |
Rotate Order .rord 🔁
回転変換の軸順序
| 項目 | 内部名 | 説明 |
|---|---|---|
| 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 の順に回転 |
Transform XYZ + 4D 🎯
Translate .t ↔️
ノイズ空間内でサンプリング平面を平行移動
- X (
tx) - Y (
ty) - Z (
tz)
Rotate .r 🔄
ノイズ空間内でサンプリング平面を回転
- X (
rx) - Y (
ry) - Z (
rz)
Scale .s 📏
サンプリング平面のスケール (ノイズの拡大率)
- X (
sx) - Y (
sy) - Z (
sz)
Pivot .p 📍
サンプリング平面の変換の中心点
- X (
px) - Y (
py) - Z (
pz)
Translate 4D .t4d 🌀
4D ノイズ時、第 4 座標 (時間軸として利用可) に対する平行移動。XYZ 変換は第 4 座標には影響しない
Scale 4D .s4d 🌐
4D ノイズ時、第 4 座標に対するスケール
Output Page 📤
RGB .rgb 🎨
入力 TOP との合成方式 (RGB チャンネル)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Noise | .noise |
ノイズのみを出力 (入力 TOP は無視) |
| Input * Noise | .multiply |
ノイズを入力画像に乗算 |
| Input + Noise | .add |
入力画像にノイズを加算 |
| Input – Noise | .subtract |
入力画像からノイズを減算 |
Input / Noise Scale 🎚️
Input Scale .inputscale 🎚️
出力に加える入力画像の割合
Noise Scale .noisescale 🎛️
出力に加えるノイズの割合
Alpha .alpha 🔲
出力画像のアルファチャンネル算出方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Zero | .zero |
アルファチャンネルを 0 にする |
| One | .one |
アルファチャンネルを 1 にする |
| Noise | .random |
アルファチャンネルをランダムノイズに |
| Input | .input |
入力 TOP のアルファをそのまま通す |
| Input * Noise | .multiply |
入力アルファとノイズの乗算 |
| Input + Noise | .add |
入力アルファとノイズの加算 |
| Input + clamp(Noise) | .addclamp |
入力アルファ + ノイズを [0, 1] にクランプして加算 |
Dither / Gradient ✨
Dither .dither ✨
8 ビットディスプレイの精度限界によるバンディング等のアーティファクトを抑制するためのディザリング
Gradient .gradient 📉
ノイズ関数のグラデーション (スロープ) を出力。2D で RG に XY 微分、3D で RGB に XYZ 微分、4D で RGBA に XYZW 微分が入る。ノイズ画像に沿った微分ではなくノイズ関数そのものの微分である点に注意
Mode .mode ⚙️
Performance ノイズと Quality ノイズの切り替え
| 項目 | 内部名 | 説明 |
|---|---|---|
| Performance | .performance |
従来の TouchDesigner ノイズ (高速) |
| Quality | .quality |
アーティファクト・軸整列の問題を抑えた高品質ノイズ (速度はやや低下) |
※ 注意: 現状は Simplex Noise タイプでのみ有効です。
Common Page 🔧
Output Resolution .outputresolution 🖼️
出力解像度の決定方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP の解像度をそのまま継承 |
| Eighth | .eighth |
入力解像度の 1/8 |
| Quarter | .quarter |
入力解像度の 1/4 |
| Half | .half |
入力解像度の 1/2 |
| 2X | .2x |
入力解像度の 2 倍 |
| 4X | .4x |
入力解像度の 4 倍 |
| 8X | .8x |
入力解像度の 8 倍 |
| Fit Resolution | .fit |
指定解像度に縦横比を保持して収める |
| Limit Resolution | .limit |
指定解像度を上限としてクランプ |
| Custom Resolution | .custom |
Resolution パラメータで任意指定 |
Resolution .resolution 📐
カスタム解像度の幅・高さ指定 (Output Resolution = Custom 等の時のみ有効):
- Resolution W: 出力幅 (ピクセル単位)。
Output ResolutionがCustom Resolution/Fit Resolution/Limit Resolutionの時に有効 - Resolution H: 出力高 (ピクセル単位)。同上
Resolution Menu .resmenu 📋
よく使う解像度プリセットのドロップダウン:
- Resolution Menu: NTSC / PAL / HDTV 720 / HDTV 1080 / 4K UHD 等のプリセットから選択すると
Resolution W/Resolution Hが自動セットされる
Use Global Res Multiplier .resmult 🔢
プロジェクト全体の解像度倍率の適用:
- Use Global Res Multiplier: Project Settings の Global Resolution Multiplier をこの TOP に適用するかどうか。プロトタイプを低解像度で動かしつつ最終出力で一括フル解像度化する運用に便利
Output Aspect .outputaspect 📏
出力アスペクト比の決定方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP のアスペクトを継承 (伝播事故の元、非推奨) |
| Resolution | .resolution |
解像度から自動導出 (推奨デフォルト) |
| Custom Aspect | .custom |
Aspect1 / Aspect2 で手動指定 |
Aspect .aspect 📐
カスタムアスペクト比の指定 (Output Aspect = Custom Aspect の時のみ有効):
- Aspect1: 横方向アスペクト値 (
Output Aspect= Custom Aspect の時のみ有効) - Aspect2: 縦方向アスペクト値 (同上)
Input Smoothness .inputfiltertype 🎚️
入力テクスチャのサンプリング方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Nearest Pixel | .nearest |
最近傍ピクセルサンプリング (ピクセルアート向け、ジャギーが残る) |
| Interpolate Pixels | .linear |
バイリニア補間 (滑らか、デフォルト) |
| Mipmap Pixels | .mipmap |
ミップマップ補間 (縮小時のモアレ抑制、わずかにコスト高) |
Fill Viewer .fillmode 🖥️
ビューア内でのテクスチャの収め方
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP の Fill Viewer 設定を継承 |
| Fill | .fill |
ビューアいっぱいに引き伸ばす (アスペクト無視) |
| Fit Horizontal | .width |
横幅に合わせて収める (上下に余白) |
| Fit Vertical | .height |
縦幅に合わせて収める (左右に余白) |
| Fit Best | .best |
アスペクト保持で内側に収まる最大サイズ |
| Fit Outside | .outside |
アスペクト保持で外側まで覆う最小サイズ (はみ出しあり) |
| Native Resolution | .nativeres |
テクスチャのネイティブ解像度のまま等倍表示 |
Viewer Smoothness .filtertype 🎛️
ビューア表示時のサンプリング方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Nearest Pixel | .nearest |
最近傍ピクセルサンプリング (ピクセル単位での確認向け) |
| Interpolate Pixels | .linear |
バイリニア補間 (滑らか、デフォルト) |
| Mipmap Pixels | .mipmap |
ミップマップ補間 (縮小ビュー時のモアレ抑制) |
Passes .npasses 🔁
オペレータの反復実行回数:
- Passes: TOP の処理を何パス繰り返すかの整数値。前回パスの結果が次回パスの入力になる。ブラー反復やフィードバック処理に利用
Channel Mask .chanmask 🎨
処理対象のチャンネルマスク (R/G/B/A 個別トグル):
- Channel Mask:
R/G/B/A各チャンネルのオン/オフトグル。オフのチャンネルは TOP の処理を受けず入力値がそのまま通過
Pixel Format .format 🎨
出力テクスチャのピクセルフォーマット (ビット深度・チャンネル構成)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP のフォーマットを継承 |
| 8-bit fixed (RGBA) | .rgba8fixed |
標準 8 ビット固定小数 RGBA (デフォルト、軽量) |
| sRGB 8-bit fixed (RGBA) | .srgba8fixed |
sRGB ガンマ補正済 8 ビット RGBA |
| 16-bit float (RGBA) | .rgba16float |
16 ビット浮動小数 RGBA (HDR・中間処理向け) |
| 32-bit float (RGBA) | .rgba32float |
32 ビット浮動小数 RGBA (最高精度、メモリ大) |
| 10-bit RGB with 2-bit Alpha | .rgb10a2fixed |
10-10-10-2 ビット固定小数 (バンディング抑制) |
| 16-bit fixed (RGBA) | .rgba16fixed |
16 ビット固定小数 RGBA |
| 11-bit float (RGB) | .rgb11float |
11-11-10 ビット浮動小数 RGB (アルファなし、HDR 軽量) |
| 16-bit float (RGB) | .rgb16float |
16 ビット浮動小数 RGB (アルファなし) |
| 32-bit float (RGB) | .rgb32float |
32 ビット浮動小数 RGB (アルファなし) |
| 8-bit fixed (Mono) | .mono8fixed |
8 ビット固定小数モノクロ |
| 16-bit fixed (Mono) | .mono16fixed |
16 ビット固定小数モノクロ |
| 16-bit float (Mono) | .mono16float |
16 ビット浮動小数モノクロ |
| 32-bit float (Mono) | .mono32float |
32 ビット浮動小数モノクロ |
| 8-bit fixed (RG) | .rg8fixed |
8 ビット固定小数 R+G 2 チャンネル |
| 16-bit fixed (RG) | .rg16fixed |
16 ビット固定小数 R+G |
| 16-bit float (RG) | .rg16float |
16 ビット浮動小数 R+G |
| 32-bit float (RG) | .rg32float |
32 ビット浮動小数 R+G |
| 8-bit fixed (A) | .a8fixed |
8 ビット固定小数アルファ単体 |
| 16-bit fixed (A) | .a16fixed |
16 ビット固定小数アルファ単体 |
| 16-bit float (A) | .a16float |
16 ビット浮動小数アルファ単体 |
| 32-bit float (A) | .a32float |
32 ビット浮動小数アルファ単体 |
| 8-bit fixed (Mono+Alpha) | .monoalpha8fixed |
8 ビット固定小数モノクロ+アルファ |
| 16-bit fixed (Mono+Alpha) | .monoalpha16fixed |
16 ビット固定小数モノクロ+アルファ |
| 16-bit float (Mono+Alpha) | .monoalpha16float |
16 ビット浮動小数モノクロ+アルファ |
| 32-bit float (Mono+Alpha) | .monoalpha32float |
32 ビット浮動小数モノクロ+アルファ |
実践アイデア 💡
Example 1: ディスプレイスメント水面シミュレーション 🌊
Noise TOP (Type=Sparse, Translate アニメ) → Displace TOP → 平面メッシュ
Noise TOP の Translate を時間で動かして得たノイズを Displace TOP に渡し、3D 平面メッシュの頂点を上下に揺らして水面のような表現を作る基本フロー。
- Noise TOP を作成し
TypeをSparseに設定 Periodで波の大きさ、Roughness+Harmonicsで水面の粗さを調整- Translate の
tx/tyに時間absTime.seconds * 0.2等を Export してノイズを流す - Displace TOP に Noise TOP を接続して平面メッシュの法線方向に変位
Example 2: UV 歪み (ヒート歪み・煙のような有機的揺らぎ) 🔥
Movie File In TOP + Noise TOP (Mono=On) → Remap TOP / GLSL TOP
映像入力に Noise TOP の柔らかなノイズを UV オフセットとして加え、Remap TOP や GLSL TOP でテクスチャを歪ませることで陽炎・煙・水面屈折のような有機的揺らぎを得る。
- Noise TOP を作成し
Monochromeを On に設定 (UV オフセットには輝度のみ使用) Amplitudeを小さく (例: 0.02 程度) し歪み強度を抑制Translateに時間入力を渡し時間方向にノイズを流す- Remap TOP の
Mapに Noise TOP を接続し、入力映像を UV シフト合成
Example 3: 4D ノイズによるシームレスループ生成 🌀
Noise TOP (Type=Sparse, t4d=sin) → Movie File Out TOP
Translate 4D を sin(t * 2π) のように 1 周期分動かすことで、開始と終了のフレームが完全に一致する 4 次元シームレスループノイズを書き出す手法。
- Noise TOP を作成し
TypeをSparseまたはHermiteに設定 - Transform Page の
Translate 4D(t4d) をsin(absTime.seconds * 2 * 3.14159 / loopSeconds)等で循環 - Movie File Out TOP で指定ループ長分を書き出してシームレスループ素材化
関連オペレータ 🔗
類似機能OP 🔍
- Noise CHOP — ノイズを CHOP チャンネルとして生成する CHOP 版
- Ramp TOP — 決定論的グラデーション (Noise の代替パターン)
組み合わせ推奨OP 🔄
- Displace TOP — ノイズを変位マップとして使用しテクスチャを歪ませる定番
- Feedback TOP — ノイズと組み合わせてフィードバックフローを構築
- Composite TOP — ノイズを他レイヤと合成 (Multiply・Overlay 等)
- Level TOP — ノイズのコントラスト・輝度・ガンマを調整
- GLSL TOP — Noise TOP の出力をシェーダ入力としてさらに加工
- Math CHOP — CHOP Export で Translate / Period 等をアニメーション化
前処理・後処理TOP 🎯
- 前処理: Constant TOP、Ramp TOP、Movie File In TOP
- 後処理: Displace TOP、Composite TOP、Level TOP、Blur TOP、Feedback TOP、GLSL TOP
Info CHOP情報 📊
Noise TOPは Info CHOP による詳細情報取得に対応しています。
TOP固有情報 🖼️
resx: TOP の出力解像度 X (ピクセル単位)resy: TOP の出力解像度 Y (ピクセル単位)aspectx: アスペクト比 Xaspecty: アスペクト比 Ydepth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: ハーモニクスを増やしてもノイズの凹凸が変わらない
✅ Solution:
Roughnessが 0 になっていないか確認 (HarmonicsとRoughnessの両方が非ゼロでないとハーモニクス効果は出ない)TypeがHarmonic Summationの場合はHarmonic Spreadも確認TypeがRandomやAlligatorではハーモニクスが意味を持たないため別タイプに切替
❌ Problem: ノイズアニメーションがチラついて連続しない
✅ Solution:
TranslateにabsTime.secondsをかけてフレーム間で連続的にノイズ座標を動かすTypeをSparseまたはHermiteにする (Randomはフレーム毎完全乱数のためチラつく)- シームレスループが必要なときは
Translate 4Dをsin関数で循環させる
❌ Problem: ノイズが非正方形テクスチャで縦横に伸びてしまう
✅ Solution:
Aspect Correctを On にしてノイズ座標計算にアスペクト比を反映- Common Page の
Output AspectをResolutionに設定 (Use Inputはアスペクト伝播事故の元) Scaleのsx/syを手動で補正
❌ Problem: パフォーマンスが重くフレームレートが落ちる
✅ Solution:
- Common Page の
Output ResolutionをHalf/Quarterに下げて後段で拡大 TypeをSparseからHermiteに切替えて高速化Harmonicsを必要最小限に抑える (高ハーモニクスは指数的にコスト増)Pixel Formatを8-bit fixed (RGBA)に下げる (HDR 不要なら)
参考資料 📚
その他 🔗
- TouchDesigner Wiki — Category:TOPs
- TouchDesigner Wiki — Pixel Formats 解説
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Noise TOP
- TouchDesigner公式ドキュメント – Noise CHOP (CHOP 版)
- TouchDesigner公式ドキュメント – Displace TOP (組み合わせ参照)

