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

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

Screen TOP のスクリーン合成機能を示すサムネイル

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

概要 📖 – 明るく重ねる合成

Screen TOPは、2 つの入力テクスチャをスクリーン演算で合成し、それぞれの色を反転して乗算した結果を再び反転することで明部を明るく重ねる合成 TOPです。Composite TOP の Screen 演算と同等の結果が得られる軽量バリエーションで、Pre-Fit Overlay と Transform パラメータで Overlay 側のサイズ・位置・回転を Fixed Layer に合わせて制御できます。

主な用途 🎯

  • 2 枚の TOP をスクリーン合成し、暗部を残しつつ明部だけを明るく重ねる
  • グロー・光彩・レンズフレアなど発光素材の重ね合わせ
  • 黒背景の素材を背景に乗せる際の自然な抜き合成
  • Pre-Fit / Justify による Overlay のサイズ・位置合わせ
  • Transform パラメータによる Overlay の回転・移動・拡縮制御

データフロー 🔄

入力: 2 枚の TOP テクスチャ (input1 / input2)

Fixed Layer の解像度に Overlay をリサイズ

スクリーン合成 (反転値どうしを乗算して再反転)

出力: 明るく重なった合成テクスチャ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Transform Page 🎯

Fixed Layer .size 📐

合成の基準となる固定レイヤを選択

項目 内部名 説明
Input 1 .input1 Input 1 を Fixed、Input 2 を Overlay として扱う
Input 2 .input2 Input 2 を Fixed、Input 1 を Overlay として扱う

Pre-Fit Overlay .prefit 🧩

Overlay レイヤを Fixed レイヤに合わせる方式

項目 内部名 説明
Fill .fill Fixed の解像度・アスペクトに引き伸ばす (アスペクト無視、歪み発生)
Fit Horizontal .fithorz Fixed の横幅に合わせて引き伸ばす
Fit Vertical .fitvert Fixed の縦幅に合わせて引き伸ばす
Fit Best .fitbest Overlay のアスペクトを保ちつつクロップなしで最大化
Fit Outside .fitoutside Overlay のアスペクトを保ちつつ Fixed をすべて覆う (クロップあり)

Justify Horizontal .justifyh ↔️

Overlay の水平方向アラインメント

項目 内部名 説明
Left .left Fixed の左端に揃える
Center .center Fixed の中央に配置
Right .right Fixed の右端に揃える

Justify Vertical .justifyv ↕️

Overlay の垂直方向アラインメント

項目 内部名 説明
Bottom .bottom Fixed の下端に揃える
Center .center Fixed の中央に配置
Top .top Fixed の上端に揃える

Extend Overlay .extend 🔁

Overlay レイヤの端部処理

項目 内部名 説明
Hold .hold エッジのピクセル値をそのまま伸ばす
Zero .zero エッジ外を 0 として扱う (画像は端を越えて伸びない)
Repeat .repeat エッジでタイリング (繰り返し)
Mirror .mirror エッジでミラーリング

Transform パラメータ 🎚️

Rotate .r
Rotate (回転) — Overlay を回転。正値で時計回り、負値で反時計回り

Translate .t
Translate (平行移動) — Overlay を X / Y 方向に平行移動 (tx / ty)

Translate Units .tunit
Translate Units (移動単位) — Translate で使う単位を指定

Scale .s
Scale (拡縮) — Overlay の X / Y スケール (sx / sy)

Pivot .p
Pivot (基準点) — Scale / Rotate の基準点 (px / py)。Transform Order によって結果が変わる

Pivot Units .punit
Pivot Units (基準点単位) — Pivot で使う単位を指定

Legacy Transform .legacyxform
Legacy Transform (旧トランスフォーム) — 旧バージョンのトランスフォーム行列ロジック (回転方向・順序が反転)


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 倍

Resolution .resolution 📐

カスタム解像度の幅・高さ指定 (Custom Resolution の時のみ有効):

  • W: 出力幅 (ピクセル単位)。Output Resolution が Custom Resolution の時に有効
  • H: 出力高 (ピクセル単位)。同上

Resolution Menu .resmenu 📋

よく使う解像度プリセットのドロップダウン:

  • Resolution Menu: よく使う解像度を選ぶとドロップダウンから W / H が自動セットされる

Use Global Res Multiplier .resmult 🔢

プロジェクト全体の解像度倍率の適用:

  • Use Global Res Multiplier: Edit>Preferences>TOPs の Global Resolution Multiplier をこの TOP に適用するかどうか。GPU メモリの少ないノート PC で全 TOP を一括縮小し動作速度を確保する運用に便利

Output Aspect .outputaspect 📏

出力アスペクト比の決定方式

項目 内部名 説明
Use Input .useinput 入力 TOP のアスペクト比を継承
Custom Aspect .custom Aspect パラメータで任意のアスペクト比を手動指定

Aspect .aspect 📐

カスタムアスペクト比の指定 (Custom Aspect の時のみ有効):

  • Aspect1: 横方向アスペクト値 (Output Aspect = Custom Aspect の時のみ有効)
  • Aspect2: 縦方向アスペクト値 (同上)

Aspect Menu .armenu 📋

よく使うアスペクト比プリセットのドロップダウン:

  • Aspect Menu: よく使うアスペクト比を選ぶとドロップダウンから Aspect1 / 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 アスペクト保持で外側まで覆う (はみ出しあり)

Viewer Smoothness .filtertype 🎛️

ビューア表示時のサンプリング方式

項目 内部名 説明
Nearest Pixel .nearest 最近傍ピクセルサンプリング (ピクセル単位での確認向け)
Interpolate Pixels .linear バイリニア補間 (滑らか、デフォルト)
Mipmap Pixels .mipmap ミップマップ補間 (縮小ビュー時のモアレ抑制)

Passes .npasses 🔁

オペレータの反復実行回数:

  • Passes: TOP の処理を何パス繰り返すかの整数値。前回パスの出力が次回パスの第 1 入力になり、他の入力とパラメータは各パスで共通

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 (1 ピクセル 64 ビット、HDR・中間処理向け)
32-bit float (RGBA) .rgba32float 32 ビット浮動小数 RGBA (1 ピクセル 128 ビット、最高精度)
10-bit RGB, 2-bit Alpha, fixed (RGBA) .rgb10a2fixed 10-10-10-2 ビット固定小数 (1 ピクセル 32 ビット、バンディング抑制)
16-bit fixed (RGBA) .rgba16fixed 16 ビット固定小数 RGBA (1 ピクセル 64 ビット)
11-bit float (RGB), Positive Values Only .rgba11float R・G に 11 ビット、B に 10 ビットの浮動小数 RGB (アルファは常に 1、負値不可、8 ビット RGBA と同じメモリ)
16-bit float (RGB) .rgb16float 16 ビット浮動小数 RGB (アルファなし)
32-bit float (RGB) .rgb32float 32 ビット浮動小数 RGB (アルファなし)
8-bit fixed (Mono) .mono8fixed 8 ビット固定小数モノクロ (RGB が同値、アルファ 1.0)
16-bit fixed (Mono) .mono16fixed 16 ビット固定小数モノクロ
16-bit float (Mono) .mono16float 16 ビット浮動小数モノクロ
32-bit float (Mono) .mono32float 32 ビット浮動小数モノクロ
8-bit fixed (RG) .rg8fixed R+G の 2 チャンネル 8 ビット固定小数 (B は 0、アルファ 1.0)
16-bit fixed (RG) .rg16fixed R+G の 2 チャンネル 16 ビット固定小数
16-bit float (RG) .rg16float R+G の 2 チャンネル 16 ビット浮動小数
32-bit float (RG) .rg32float R+G の 2 チャンネル 32 ビット浮動小数
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 モノクロ + アルファの 2 チャンネル 8 ビット固定小数
16-bit fixed (Mono+Alpha) .monoalpha16fixed モノクロ + アルファの 2 チャンネル 16 ビット固定小数
16-bit float (Mono+Alpha) .monoalpha16float モノクロ + アルファの 2 チャンネル 16 ビット浮動小数
32-bit float (Mono+Alpha) .monoalpha32float モノクロ + アルファの 2 チャンネル 32 ビット浮動小数

実践アイデア 💡

Example 1: 発光素材のグロー合成 ✨

Render TOP (発光要素・黒背景) → input1, Movie File In TOP (背景) → input2 → Screen TOP

黒背景でレンダリングした光彩やパーティクルなどの発光素材を、背景映像にスクリーン合成で乗せる定番フローです。スクリーン演算は黒 (値 0) を透過扱いするため、マスクを切らずに発光部分だけを背景に重ねられます。

  1. 発光要素を黒背景でレンダリングした Render TOP を Screen TOP の input1 に接続
  2. 背景の Movie File In TOP を input2 に接続
  3. Fixed LayerInput 2 に固定して最終解像度を背景に合わせる
  4. Pre-Fit OverlayFit Best にし、Justify Horizontal / Justify Vertical で発光素材の表示位置を決定

Example 2: レンズフレアの重ね 🎬

Ramp TOP / Circle TOP (光源) → input1, Render TOP (シーン) → input2 → Screen TOP

Ramp TOP や Circle TOP で作った放射状グラデーションの光源素材を、3D シーンの上にスクリーン合成してレンズフレアやハレーションを足すフロー。明部だけが加算的に重なるため、白飛びを抑えつつ自然な光の演出ができます。

  • 光源素材 (Ramp TOP / Circle TOP) を input1 に接続
  • シーンの Render TOP を input2 に接続
  • Pixel Format16-bit float (RGBA) 以上に変更し HDR の階調を保持
  • TransformTranslate / Scale で光源の位置とサイズを調整

関連オペレータ 🔗

類似機能OP 🔍

  • Composite TOP — Operation = Screen を選べば同等。40 種以上のブレンドモードを切替可
  • Add TOP — 加算合成専用の軽量バリエーション (Screen より白飛びしやすい)
  • Over TOP — アルファに従って上重ねする軽量バリエーション
  • Multiply TOP — 乗算合成専用 (Screen と逆に暗部を重ねる)
  • Layer TOP — 複数枚を一括レイヤ合成

組み合わせ推奨OP 🔄

  • Render TOP — 発光要素・シーンのレイヤ素材として頻出
  • Level TOP — Overlay 側の明るさ・コントラスト調整
  • Movie File In TOP — 背景レイヤとして頻出
  • Ramp TOP — 光源・グラデーション素材の生成

前処理・後処理TOP 🎯


Info CHOP情報 📊

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

TOP固有情報 🖼️

  • resx: TOP の出力解像度 X (ピクセル単位)
  • resy: TOP の出力解像度 Y (ピクセル単位)
  • aspectx: アスペクト比 X
  • aspecty: アスペクト比 Y
  • depth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)
  • gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)

汎用オペレータ情報 🔄

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

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

よくある問題と解決策 🔧

❌ Problem: 合成結果が全体的に白飛びする
✅ Solution:

  • スクリーン演算は明部を加算的に重ねるため、両入力が明るいと飽和しやすい。前段の Level TOP で Overlay 側の明るさを下げる
  • Pixel Format16-bit float (RGBA) 以上にして、合成途中の階調が 1.0 でクリップされないようにする
  • 光源素材の輝度を抑え、後段の Tone Map TOP で HDR を表示レンジに収める

❌ Problem: Overlay が引き伸ばされて歪む
✅ Solution:

  • Pre-Fit OverlayFill になっていないか確認 (Fixed サイズに強制ストレッチされる)
  • Pre-Fit OverlayFit Best または Fit Outside に変更してアスペクト保持
  • Common Page の Output AspectCustom Aspect で固定し、上流のアスペクト伝播事故を遮断

❌ Problem: 黒背景の素材なのに背景が暗くなってしまう
✅ Solution:

  • 素材の黒が完全な 0 になっているか確認。わずかに値が乗っていると背景を持ち上げる。前段の Level TOP で黒レベルをクランプ
  • スクリーンではなくアルファ抜きが目的なら Over TOP の利用を検討
  • 入力のガンマ / 色空間が一致しているか (sRGB とリニアの混在) を確認

❌ Problem: Overlay の位置が想定とずれる
✅ Solution:

  • Justify Horizontal / Justify Vertical でアンカー位置を明示
  • Translate Unitspixels に固定し、解像度依存の挙動を除外
  • Fixed Layer を Input 1 / Input 2 のどちらにしているか再確認

参考資料 📚

その他 🔗

公式リソース 📖

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