Pop-up Dialog Editor

Pop-up Dialog は、ボタン・プロパティ・スライダー・チェックボックスを行と列で組み立てた小さな UI パネルを、その場でポップアップとして表示するエディターです。Pie Menu や Regular Menu と異なり、レイアウトを自分で構成できます。

構成ガイド — 機能・組み合わせ・活用例(AI 向け)

呼び名:Popup Dialog/種別 ID:DIALOG 行・列に操作と設定をまとめ、ダイアログやポップアップとして表示します。Command / Property / Menu / Hotkey / Custom を使い、行・列を追加して構成します。

  • 割り当て:Property は RNA パスによる設定ウィジェット、Command は操作を実行する Python、Custom は Blender の UILayout を使う描画コードです。

  • Menu の組み合わせ:別のメニューを開くほか、Regular Menu / Popup Dialog を展開できます。Property / Property Stack の参照は設定ウィジェットの配置です。

  • 配置:ホットキーから開く/Pie Menu の中へ展開する/既存の Panel・Header へ差し込む。展開先の幅・位置は、参照するスロット側の設定と区別します。

  • 設計:レイアウトの行・列と、ポップアップの Mode を分けて決めます。画面が開くことと、そのコンテキストでボタンが実行できることは別に確認します。

行と列は レイアウト、差し込みは Extend Target、表示の設定は Advanced settingsへ。

画面と編集の流れ

Blender 5.2 / PME 2.1 の開発環境。「Viewport Display Menu」の設定例。
  1. 名前と基本操作

  2. Extend Target

  3. Advanced settings

  4. Keymap / Hotkey

  5. メニュースロットとレイアウト

名前と利用条件、呼び出し方を設定し、スロットでメニューの内容を組み立てます。

Keymap / Hotkey

Viewport Display Menu の Keymap / Hotkey。呼び出す場所とキーを設定します。
Keymap / Hotkey。値はこの例の設定です。

使う場所を Keymap、起動キーと修飾キーを Hotkey で設定します。Open Mode は開くタイミングです。入力欄は 共通の Hotkey 設定を参照してください。

Extend Target

Extend Target に TOPBAR_HT_upper_bar を指定した例。差し込み位置、右リージョンへの切り替え、表示順を設定できます。

TOPBAR_HT_upper_bar を差し込み先に指定した例。

トップバー直下にあり、Blender の既存パネル / ヘッダーにこの Pop-up Dialog を差し込むための行です。

Added in version 2.0.0: Extend Panel / Extend Header を再設計し、同じ Target に複数の Pop-up Dialog / Regular Menu を重ねられるようになりました。

Extend Target:

差し込み先の Blender クラス ID。検索付きで、Interactive Panels の Copy Panel ID で取得した文字列をそのまま貼り付けできます。未指定の場合は通常の hotkey 呼び出し型として動作します。

Side:

差し込み位置。Prepend は先頭、Append は末尾に追加します。画像では左右の三角ボタンで選びます。

R:

Target が TOPBAR_HT_ の場合に限り表示され、TOPBAR ヘッダーの右リージョンに差し込むかを切り替えます。

Order:

同じ Target に複数のメニューが差し込まれている場合の表示順。値が小さいほど先に描画されます。

差し込み手順の詳細は Interactive Panels と Extend Panel を参照してください。

Advanced settings

Viewport Display Menu の Advanced settings。説明、利用条件、表示モード、幅、プロパティの配置を設定します。
Advanced settings。値はこの例の設定です。

Description と Poll は、説明文と利用条件の設定です。Python による動的な説明も使えます。共通の 詳細設定を参照してください。

Added in version 2.1: Property Split でラベルと入力欄を整列できます。メニュー全体の設定に加え、項目ごとの切り替えも使えます。

Property Split はプロパティ名と値を分けて表示し、Property Decorators はアニメーションに関する装飾表示を設定します。

表示モード

ポップアップダイアログのモード設定

ポップアップの見た目と閉じ方を 3 つのモードから選びます。

モード比較

モード

Pie

Dialog

Popup

マウスをポップアップ外に移動すると閉じる

ポップアップ内のウィジェットを操作すると閉じる

OK ボタン

移動可能

幅をカスタマイズ可能


応用的な使い方

N パネル代替としての一時パネル

普段は閉じておきたい設定群を Pop-up Dialog にまとめ、hotkey で呼び出すと、N パネルに常駐させずに同等の操作面を確保できます。Property スロットや Custom スロットに Blender 標準のウィジェットをそのまま並べられます。

Pie Menu の 1 スロットから詳細パネルを開く

Pie Menu の Menu スロットからこの Pop-up Dialog を指定すると、Pie に収まらない詳細設定をその場で開けます。Expand Popup Dialog を有効にしておくと、独立ポップアップではなく Pie のスロット領域内にレイアウトを展開します。

draw_menu() で別レイアウトに描き込む

open_menu() が Pop-up Dialog を独立ポップアップとして開くのに対し、draw_menu()現在の layout にその中身を描画するヘルパーです。Panel Group や別の Pop-up Dialog から、既存の Pop-up Dialog レイアウトを再利用できます。

draw_menu("Popup Dialog Name")
draw_menu("Popup Dialog Name", frame=True, dx=10, dy=10)

Blender の既存パネルを Custom スロットで描く

Custom スロットの Python レイアウトから panel() ヘルパーで Blender ネイティブのパネルを直接埋め込めます。template_* 系のウィジェットも同様に使えます。

panel("VIEW3D_PT_view3d_properties", frame=True, header=True)

template_list() を使う場合は、一覧のコレクションに加え、選択中の項目番号を保持する Int プロパティが必要です。対象に存在する RNA プロパティか、自分で定義したプロパティを指定します。

Extend Panel / Extend Header による差し込み

Extend Target を設定すると、Blender の既存パネルやヘッダーにこの Pop-up Dialog の中身がそのまま差し込まれます。詳細は Interactive Panels と Extend Panel を参照してください。

参考動画(原作者のチャンネル)

roaoao の動画一覧より。旧版の UI・手順を扱う参考動画です。

Popup Dialog Editor
Popup Dialog with Panels
Popup Dialog with Custom Layout