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

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

Window COMP のウィンドウ表示機能を示す図

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

概要 📖 – 映像を実画面に表示

Window COMPは、指定したオペレータの内容を独立したウィンドウとして物理ディスプレイ上に表示する COMPです。表示先ディスプレイ・位置・サイズ・ピクセルフォーマットを細かく制御でき、本番出力の最終段としてよく使われます。

主な用途 🎯

  • 制作した映像を外部モニターやプロジェクターへ全画面出力
  • 複数ディスプレイへの映像振り分け(マルチプロジェクション)
  • パフォーマンスウィンドウとは別の独立ウィンドウ表示
  • ウィンドウの位置・サイズ・解像度の精密制御
  • HDR や高ビット深度での出力とV-Sync管理

データフロー 🔄

入力: 表示対象オペレータ(TOPやPanel COMP)

配置・サイズ・色設定の処理

出力: 物理ディスプレイ上のウィンドウ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Window Page 🪟

表示対象とタイトル .winop 🎬

ウィンドウに表示するオペレータと、その見出しを指定する基本設定

Window Operator .winop 🎬
Window Operator (表示対象) — ウィンドウに表示するオペレータを指定します
– TOP や Panel COMP を割り当てると、その内容が物理ウィンドウへ出力されます

Title .title 🏷️
Title (タイトル) — ウィンドウのタイトルバーに表示する文字列を指定します

基準位置の設定 .justifyoffsetto 🎯

Justify and Offset To... (基準範囲) — 以下の配置設定すべての基準となる領域を指定します。ウィンドウはこの範囲を超えて広げることも可能で、あくまで位置決めの基準として使われます。

項目 内部名 説明
Primary Display .primarydisplay 主ディスプレイ(Windowsコントロールパネル等で主と指定された画面)を基準にします
Specify Display .specifydisplay 下の Display パラメータで指定したディスプレイを基準にします
Bounds of All Displays .alldisplays 全ディスプレイを含む範囲を基準にします(タスクバーは無視されます)

ディスプレイ指定 .display 🖥️

Ignore Taskbar .ignoretaskbar 📊
Ignore Taskbar (タスクバー無視) — オンにするとWindowsのタスクバーを無視して配置します
– オフのときはタスクバーを避けて位置とサイズが決まります

Display .display 🖥️
Display (ディスプレイ番号) — 基準が単一モニターのとき、対象ディスプレイの番号を指定します

水平方向の整列 .justifyh ↔️

Justify Horizontal (水平整列) — モニターまたは全モニター範囲に対して、ウィンドウを水平方向にどう揃えるかを指定します。

項目 内部名 説明
Left .left ウィンドウの左端を基準範囲の左端に合わせます
Center .center ウィンドウの水平中央を基準範囲の水平中央に合わせます
Right .right ウィンドウの右端を基準範囲の右端に合わせます
Mouse .mouse マウスカーソルを中心に水平方向の位置を合わせて開きます

垂直方向の整列 .justifyv ↕️

Justify Vertical (垂直整列) — モニターまたは全モニター範囲に対して、ウィンドウを垂直方向にどう揃えるかを指定します。

項目 内部名 説明
Top .top ウィンドウの上端を基準範囲の上端に合わせます
Center .center ウィンドウの垂直中央を基準範囲の垂直中央に合わせます
Bottom .bottom ウィンドウの下端を基準範囲の下端に合わせます
Mouse .mouse マウスカーソルを中心に垂直方向の位置を合わせて開きます

位置オフセット .winoffset 📐

Offset (オフセット) — 整列後のウィンドウに加える位置のずらし量:

  • X (winoffsetx): 整列後のウィンドウに加える水平方向のオフセット量
  • Y (winoffsety): 整列後のウィンドウに加える垂直方向のオフセット量

単一画面への寄せ .single 🔀

Shift to Single Display (単一画面への移動) — 開くウィンドウを単一ディスプレイへ寄せる方法を指定します。

項目 内部名 説明
Off .off 寄せを行いません
Keep on Single Display .singledisplay 単一ディスプレイ内に収まるよう保持します
Keep on Display with Cursor .cursordisplay ウィンドウが開くときにカーソルがある側のディスプレイに保持します

高解像度の拡大設定 .dpiscaling 🔎

DPI Scaling (DPI拡大) — 高DPIモニターでの拡大表示の扱いを指定します。モニターのDPI設定は Monitors DAT の dpi_scale 列で確認できます。

項目 内部名 説明
Native .native OSの拡大設定を無視し、モニター本来のピクセル解像度をそのまま使います(拡大率1.0相当)
Use DPI Scale .usedpiscale OSの拡大設定に従った解像度を使います(例: 3840×2160で拡大200%なら1920×1080相当)

ウィンドウの大きさ .size 📏

Opening Size (開くサイズ) — ウィンドウのサイズの決め方を指定します。

項目 内部名 説明
Automatic from Panel COMP / TOP .automatic 指定した COMP / TOP のサイズから自動的にサイズを決めます
Fill Location .fill 上の基準範囲(Justify and Offset To…)を埋めるサイズにします
Custom .custom 下の Width / Height で指定したサイズを使います
Single Display Exclusive .exclusive 単一ディスプレイを占有する排他表示にします

サイズと更新 .winw 📐

Width .winw ↔️
Width (幅) — 開くサイズが Custom のときのウィンドウの幅

Height .winh ↕️
Height (高さ) — 開くサイズが Custom のときのウィンドウの高さ

Update Settings from Window .update 🔄
Update Settings from Window (現在値を取得) — 開いているウィンドウを動かしたりサイズ変更した後、このボタンを押すと現在の状態を上のパラメータへ反映します

枠と最前面表示 .borders 🖼️

Borders .borders 🖼️
Borders (枠線) — ウィンドウに枠とタイトルバーを表示するかを切り替えます

Include Borders in Size .bordersinsize 📦
Include Borders in Size (枠をサイズに含める) — オンのとき、枠もウィンドウサイズに含めて計算します

Always on Top .alwaysontop ⬆️
Always on Top (常に最前面) — 他のフローティングウィンドウより常に手前に表示するかを制御します

カーソルの表示 .cursorvisible 🖱️

Cursor Visible (カーソル表示) — ウィンドウ上にカーソルがあるときに表示し続けるかを制御します。

項目 内部名 説明
Never .nocursor ウィンドウ上ではカーソルを一切表示しません
When Moving .cursoronmove 動かしている間と停止後の短い時間だけ表示します
Always .alwaysvisible ウィンドウ上では常にカーソルを表示します

カーソルの制限 .constraincursor 🚧

Constrain Cursor (カーソル制限) — カーソルが動ける範囲を制御します。

項目 内部名 説明
Off .off どのディスプレイのどの領域にもカーソルを動かせます
Window .window このウィンドウの範囲内にカーソルを制限します
Display .display 特定のディスプレイにカーソルを制限します

操作と最小化 .interact 🎛️

Cursor Display .cursordisplay 🖱️
Cursor Display (制限先ディスプレイ) — カーソルを特定ディスプレイに制限するとき、その番号を指定します

Allow Viewer Interaction .interact 👆
Allow Viewer Interaction (操作を許可) — Window Operator で指定したオペレータへの操作を有効にします

Allow Minimize .allowminimize
Allow Minimize (最小化を許可) — タスクバー(macOSではDock)への最小化を有効にします

ピクセル形式 .windowpixelformat 🎨

Window Pixel Format (ピクセル形式) — 作成するウィンドウのビット深度(8/10/16ビット)と色空間を制御します。動作する色空間が有効な場合にのみ機能します。

項目 内部名 説明
SDR 8-Bit fixed .sdr8fixed 8ビット固定のSDR(sRGB)へ変換して表示します
SDR 10-Bit fixed .sdr10fixed 10ビット固定のSDR(sRGB)へ変換して表示します
HDR 10-Bit fixed .hdr10fixed 10ビット固定のHDR色空間へ変換します。表示前にモニター側でHDRを有効にしておくと開く際のちらつきを避けられます
HDR 16-Bit float .hdr16float 16ビット浮動小数のHDR色空間へ変換します。OSへ最大限の情報を渡し最終的な色空間変換に委ねます

垂直同期 .vsyncmode ⏱️

V-Sync Mode (垂直同期) — モニターのリフレッシュに同期して更新するかを制御します。有効にするとティアリングやコマ落ちを防げます。

項目 内部名 説明
Disabled .disabled 垂直同期オフ。リフレッシュ途中でも更新するためティアリングが起きる場合があります
Enabled .enabled 垂直同期オン。モニターのリフレッシュに同期して更新しティアリングを防ぎます
FPS is Half Monitor Rate .halfmonitorrate 60Hzモニターで30FPS再生するときなど、各画像を正確に2リフレッシュ表示して滑らかに見せます
FPS is Half Display Rate .halfdisplayrate ディスプレイのリフレッシュレートの半分のFPSで更新します

描画と同期 .drawwindow 🖌️

Draw Window .drawwindow 🖌️
Draw Window (描画) — 無効にするとウィンドウの内容を一切更新しません
– レンダリングを伴わない音声処理やネットワーク処理、VRデバイス利用時に便利です

Hardware Frame-Lock .hwframelock 🔒
Hardware Frame-Lock (ハードウェア同期) — 複数GPUのフレームロック同期を行う機能です
– Window COMP でのこの機能の利用は廃止予定で、Direct Display Out TOP の利用が強く推奨されます


Open/Close Page 🚪

開閉の操作 .winopen 🔓

Open as Perform Window .performance ▶️
Open as Perform Window (本番ウィンドウで開く) — この Window COMP をパフォーマンスモードで開きます
– 既定の本番ウィンドウ設定を変えずに、このウィンドウだけを本番モードで開けます

Open as Separate Window .winopen 🪟
Open as Separate Window (独立ウィンドウで開く) — 本番ウィンドウではなく独立したフローティングウィンドウとして開きます
– ダイアログやポップアップ、テスト向けで、最終出力には大きな1枚の本番ウィンドウの利用が推奨されます

Close .winclose
Close (閉じる) — 開いているウィンドウを閉じます

本番ウィンドウ設定 .setperform ⚙️

Set as Perform Window .setperform 📌
Set as Perform Window (本番に設定) — ウィンドウ配置ダイアログの本番ウィンドウ設定をこのウィンドウへ恒久的に変更します

Window Placement Dialog .opendialog 🗂️
Window Placement Dialog (配置ダイアログ) — ウィンドウ配置ダイアログを開くショートカットです

Include in Placement Dialog .includedialog 📋
Include in Placement Dialog (ダイアログに表示) — オンのとき、この Window COMP をウィンドウ配置ダイアログに表示します

スリープと終了挙動 .blocksleep 💤

Prevent Display Sleep .blocksleep 💤
Prevent Display Sleep (スリープ防止) — オンのとき、システムの電源・スリープ設定に関わらずディスプレイをスリープさせません

Close on Escape Key .closeescape
Close on Escape Key (Escで閉じる) — オンのとき、ウィンドウ上でEscキーを押すと閉じます
– Shift+Esc はこの設定に関わらず常に閉じます


Extensions Page 🧩

拡張の初期化 .reinitextensions 🔁

Re-Init Extensions .reinitextensions 🔁
Re-Init Extensions (拡張の再初期化) — すべての拡張オブジェクトを再コンパイルします
– 通常は参照され定義が変わったときのみコンパイルされます

Init Extensions On Start .initextonstart 🚀
Init Extensions On Start (起動時に初期化) — TouchDesigner起動時に自動で再初期化を行います

拡張の定義 .ext 🧩

コンポーネントの Python 拡張を定義するシーケンスパラメータ群:

  • Extension (ext): このコンポーネントに拡張を作成するための情報のシーケンス
  • Object (ext0object): コンポーネントに付与するクラスインスタンス
  • Name (ext0name): インスタンスのクラス名の代わりに検索に使う任意の名前
  • Promote (ext0promote): 拡張をコンポーネント直下で見せるか、.ext メンバー経由でアクセスさせるかを制御 (例: n.Somefunction と n.ext.Somefunction)

実践アイデア 💡

Example 1: プロジェクター全画面出力 📽️

Render TOP → Window COMP (Open as Perform Window) → プロジェクター

Render TOP で生成した映像を Window COMP に割り当て、表示先ディスプレイをプロジェクターに指定して全画面の本番ウィンドウとして出力する、最も基本的な投影フローです。

  1. Render TOP の出力を Window COMP の Window Operator に指定
  2. Justify and Offset To… で出力先ディスプレイを選択
  3. Opening Size を Fill Location にして画面全体を埋める
  4. Open as Perform Window でプロジェクターへ全画面表示

Example 2: マルチディスプレイ振り分け 🖥️

TOP A → Window COMP 1 (Display 0) / TOP B → Window COMP 2 (Display 1)

複数の Window COMP をそれぞれ別のディスプレイ番号に割り当てることで、画面ごとに異なる映像を同時出力するマルチプロジェクション構成を組めます。

  • 出力したい映像ごとに Window COMP を用意
  • 各 Window COMP の Justify and Offset To… を Specify Display にして別々の Display 番号を割り当て
  • それぞれを独立ウィンドウまたは本番ウィンドウとして開く

Example 3: HDR高ビット出力 🎨

Render TOP (HDR) → Window COMP (Window Pixel Format) → HDRモニター

Window Pixel Format を HDR 系に設定し、垂直同期を有効にすることで、ティアリングを抑えた高ビット深度のHDR映像を、HDRに適合したモニターへ正確に表示します。

  • Window Pixel Format を HDR 10-Bit fixed または HDR 16-Bit float に設定
  • モニター側のHDRを事前に有効化してちらつきを回避
  • V-Sync Mode を Enabled にしてティアリングを抑制

関連オペレータ 🔗

類似機能OP 🔍

  • Container COMP — パネルUIを組み立てる土台。Window で表示する内容としてよく使う

組み合わせ推奨OP 🔄

  • Render TOP — 3Dシーンを描画し Window へ渡す表示元
  • Out TOP — ネットワークの最終出力を Window の表示対象に
  • Geometry COMP — Render TOP に渡す3D形状を保持
  • Camera COMP — Render TOP の視点を定義
  • Monitors DAT — 接続ディスプレイの解像度やDPIを取得し配置の参考に
  • Keyboard In CHOP — ウィンドウ表示中のキー入力を取得して制御

前処理・後処理COMP 🎯


Info情報 📊

Window COMP は Info CHOP による状態情報の取得に対応しています。

COMP 固有情報 📦

  • num_children: コンポーネント内部の子 OP の総数
  • num_dats: 内部 DAT の数
  • num_chops: 内部 CHOP の数
  • num_tops: 内部 TOP の数
  • num_sops: 内部 SOP の数

汎用オペレータ情報 🔄

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

ウィンドウ固有情報 🪟

  • ウィンドウ状態: ウィンドウの開閉状態・位置・サイズなど Window COMP 固有の情報を Info CHOP で取得します

COMP共通情報 🧱

  • コンポーネント共通: 全 COMP 共通の Info チャンネル(クック時間など)を取得します

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

よくある問題と解決策 🔧

❌ Problem: ウィンドウが表示されない
✅ Solution:

  • Window Operator に表示対象のオペレータが正しく指定されているか確認
  • Open as Separate Window または Open as Perform Window でウィンドウを開いたか確認
  • Justify and Offset To... の基準範囲が画面外を指していないか確認

❌ Problem: 想定したディスプレイに出ない
✅ Solution:

  • Justify and Offset To... を Specify Display にして Display 番号を確認
  • 接続ディスプレイの番号を Monitors DAT で確認
  • Shift to Single Display の設定が意図とずれていないか確認

❌ Problem: 映像のティアリング・カクつき
✅ Solution:

  • V-Sync Mode を Enabled にしてモニターのリフレッシュに同期
  • 30FPS素材を60Hz表示する場合は FPS is Half Monitor Rate を使用
  • 描画不要な処理では Draw Window をオフにして負荷を軽減

参考資料 📚

その他 🔗

公式リソース 📖

関連記事 🔗

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