
概要 📖 – 映像を実画面に表示
Window COMPは、指定したオペレータの内容を独立したウィンドウとして物理ディスプレイ上に表示する COMPです。表示先ディスプレイ・位置・サイズ・ピクセルフォーマットを細かく制御でき、本番出力の最終段としてよく使われます。
主な用途 🎯
- 制作した映像を外部モニターやプロジェクターへ全画面出力
- 複数ディスプレイへの映像振り分け(マルチプロジェクション)
- パフォーマンスウィンドウとは別の独立ウィンドウ表示
- ウィンドウの位置・サイズ・解像度の精密制御
- HDR や高ビット深度での出力とV-Sync管理
データフロー 🔄
入力: 表示対象オペレータ(TOPやPanel COMP)
↓
配置・サイズ・色設定の処理
↓
出力: 物理ディスプレイ上のウィンドウ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 に割り当て、表示先ディスプレイをプロジェクターに指定して全画面の本番ウィンドウとして出力する、最も基本的な投影フローです。
- Render TOP の出力を Window COMP の Window Operator に指定
- Justify and Offset To… で出力先ディスプレイを選択
- Opening Size を Fill Location にして画面全体を埋める
- 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 🎯
- 表示元: Container COMP、Geometry COMP
- 連携: Camera COMP、Light 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をオフにして負荷を軽減
参考資料 📚
その他 🔗
- TouchDesigner Wiki — COMP 概要
- TouchDesigner Wiki — Category:COMPs
- TouchDesigner Wiki — Category:Components
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

