汎用プラグイン

DockLayout

スクリーンショット

概要

ドラッグとドロップだけで配置できるようにするプラグイン

詳細説明

ドッキング配置 for AviUtl ExEdit2

LicenseAviUtl ExEdit2Release


AviUtl ExEdit2 のウィンドウを、ドラッグとドロップだけで配置できるようにするプラグインです。
パネルを掴んで動かすと、置ける場所を示すガイドが画面に出ます。落とした場所に応じて、エリアの移動、タブへのまとめ、並び順の入れ替え、ウィンドウの分離を行います。
配置そのものは AviUtl ExEdit2 が行います。本プラグインは右クリックメニューと同じ操作を、ドラッグの結果から発行しているだけです。


目次

  1. 概要
  2. 動作要件
  3. インストール方法
  4. 主な機能
  5. ガイドの一覧
  6. 仕組み
  7. 制限事項
  8. 注意事項
  9. ログ表示での確認
  10. 免責事項
  11. サードパーティライセンス
  12. ライセンス

概要

本プラグインは AviUtl ExEdit2 の汎用プラグインとして動作します。「その他」の「プラグイン情報」には、名前を「ドッキング配置」、種別を「汎用プラグイン」として表示します。

AviUtl ExEdit2 のウィンドウ配置は、右クリックメニューの「ウィンドウ配置」から行います。移したいエリアを選び、並び順は「上に移動」と「下に移動」を必要な回数だけ選び、タブにまとめるには対象のウィンドウそれぞれで「ウィンドウのグループ化」を選ぶ必要があります。本プラグインは、この一連の操作をドラッグとドロップへ置き換えます。

配置の機構そのものは AviUtl ExEdit2 のものをそのまま使います。本プラグインが行うのは、ドラッグの落とし先から必要なメニュー項目を決めて、それを画面に出さずに選ぶことだけです。右クリックメニューからの配置も今までどおり使えます。


動作要件

項目 要件
OS 64ビット版 Windows 10 / Windows 11
AviUtl ExEdit2 2.1.0 以降
動作を確認した版 2.1.6a

インストール方法

  1. Releases ページから DockLayout_v1.1.0.au2pkg.zip をダウンロードしてください。
  2. AviUtl ExEdit2 を起動し、ダウンロードしたファイルをプレビュー画面へドロップします。
  3. 確認の画面で「このプラグイン・スクリプトを信頼して使用する」を選んでください。インストールの後に AviUtl ExEdit2 が再起動します。

手動で配置する場合は、DockLayout_v1.1.0.zip を展開し、DockLayout.aux2 を下記のフォルダーへ置いてください。次に AviUtl ExEdit2 を起動すると確認の画面が出るので、信頼して使用することを選びます。

C:\ProgramData\aviutl2\Plugin\

主な機能

1. エリアへの配置

パネルの見出しをドラッグすると配置の操作が始まります。見出しを持たないパネルは、Alt キーを押しながらパネルの中をドラッグしてください。

ドラッグを始めると、画面の中央に5つのガイドが出ます。左右上下と中央のエリアに対応していて、落としたガイドのエリアへパネルが移ります。カーソルをガイドへ重ねると、落とした後にパネルが置かれる範囲を半透明の枠で示します。この枠は AviUtl ExEdit2 の再配置を計算したものです。移動元のエリアが空になって他のパネルが広がる場合も、その結果を含めた位置を示します。

2. タブへのまとめ

他のパネルの上へカーソルを重ねると、そのパネルの上にもガイドが出ます。中央のガイドへ落とすと、2つのパネルが同じエリアでタブにまとまります。別のエリアのパネルへ落とした場合も、まず対象のエリアへ移してからまとめます。枠はまとまった後の枠全体を示します。

3. 並び順の入れ替え

パネルの上のガイドのうち、左右または上下に伸びる矢印へ落とすと、そのパネルの手前または後ろへ移ります。並び順のガイドは、同じエリアに並んでいるパネル同士でだけ出ます。矢印の向きは、そのエリアがパネルを縦に並べているか横に並べているかで変わります。AviUtl ExEdit2 の並べ替えは枠の大きさを保ったまま中身を入れ替えるため、枠は移動先の枠の位置と大きさをそのまま示します。

4. ウィンドウの分離と結合

本体のウィンドウの外へ落とすと、パネルが別のウィンドウへ分離します。パネルは本体の外へ出るため、この操作では枠を出しません。

分離したウィンドウは、タイトルバーを掴んで本体のウィンドウの上へ運ぶと、中央にガイドが出ます。そこへ落とすと本体へ戻ります。本プラグインで分離したウィンドウであれば、戻った後の位置を枠で示します。

ドラッグの途中で Esc キーを押すと操作を取り消します。


ガイドの一覧

ガイド 位置 動作
左側エリア 画面中央の左 パネルを左側エリアへ移します
右側エリア 画面中央の右 パネルを右側エリアへ移します
上側エリア 画面中央の上 パネルを上側エリアへ移します
下側エリア 画面中央の下 パネルを下側エリアへ移します
中央エリア 画面の中央 パネルを中央エリアへ移します
まとめる カーソルの下のパネルの中央 そのパネルとタブにまとめます
手前へ・後ろへ カーソルの下のパネルの両側 同じエリアの中で並び順を変えます
本体へ戻す 画面の中央 分離したウィンドウを本体へ戻します

仕組み

配置の変更は、AviUtl ExEdit2 の右クリックメニューの「ウィンドウ配置」と同じ操作です。本プラグインは TrackPopupMenu を差し替えて、メニューを画面に出さずに項目を選び、その結果を AviUtl ExEdit2 に処理させています。メニューの項目は言語設定に従って探すため、表示言語を変えても動作します。

パネルの位置と見出しの範囲は、AviUtl ExEdit2 が描いた画面から求めます。ウィンドウの区切りの色と幅、枠線の色、見出しの色と高さは、いずれも style.conf の設定を読んで使います。外観の設定を変更しても追従します。

ドラッグを始めた時点で、各パネルがどのエリアに属しているかを調べます。この時にメニューを画面に出さずに開きますが、編集の状態は変わりません。

落とした後の操作は、マウスの処理を終えてから発行します。AviUtl ExEdit2 が配置を組み替える最中に、その処理へ入り込まないようにするためです。

着地予告の計算

ガイドへ重ねたときに出す枠は、AviUtl ExEdit2 が落とした後に組み直す配置を計算したものです。組み直しの規則は AviUtl ExEdit2 2.1.6a を操作して測り、次のとおりであることを確かめました。

区切りの幅は WindowSeparatorSize から2を引いた値です。長さ L の領域は、区切り1本分の幅を足した長さとして扱われます。各枠はその長さの中で割合に応じた区画を取り、区画の末尾から区切り1本分を除いた範囲に描かれます。この対応は逆にもたどれるため、画面から読み取った矩形から AviUtl ExEdit2 が持っている割合をそのまま求められます。

列は左側エリア、中央部分、右側エリアの順に、帯は上側エリア、中央エリア、下側エリアの順に並びます。大きさは先頭とそれ以外の二分割を繰り返して決まり、それぞれの比はそのエリアに属するウィンドウの矩形を囲む範囲の比になります。

エリアの中では、各ウィンドウが自分の矩形の大きさの比で区画を取ります。並ぶ順は矩形の左端、左右のエリアでは上端の小さい順で、同じ値のときは右端または下端の小さい順です。

エリアを変えてもウィンドウが持っている割合は変わらず、組み直しのたびに描かれた結果が新しい割合として保存されます。したがって画面から読み取った矩形だけで次の配置を計算できます。計算した矩形と実際に描かれた矩形の差は、実測で最大1画素でした。領域の先頭に接する枠は上または左の枠線を描かないため、その分だけ全体がずれます。


制限事項

  • 並び順の入れ替えは、同じエリアに並んでいるパネル同士でだけ行えます。別のエリアのパネルの隣へ直接差し込むことはできません。目的のエリアへ移してからもう一度ドラッグしてください。
  • 分離したウィンドウを本体へ戻すと、分離する前のエリアへ戻ります。別のエリアへ置きたい場合は、戻した後でもう一度ドラッグしてください。
  • AviUtl ExEdit2 は、ひとつのエリアの中でタブにまとまるウィンドウをひとつの組としてしか扱えません。同じエリアに既にタブの組がある状態で、その組に入っていないパネル同士をまとめることはできないため、その場合はまとめるガイドが出ません。
  • 見出しを持たないパネルは、Alt キーを押しながらでないと掴めません。プレビュー編集、レイヤー編集、オブジェクト設定が該当します。
  • パネルの位置を画面から求めるため、AviUtl ExEdit2 のウィンドウが最小化されている間は配置の操作を行えません。
  • タブにまとまっているパネルを掴んだ場合は枠を出しません。AviUtl ExEdit2 はタブの組から掴んだウィンドウ1枚だけを動かし、残りはその場に留まります。分かれた後の大きさは画面に出ている情報だけでは決まらないためです。ガイドは出るので操作はできます。
  • 本プラグインを読み込む前から分離していたウィンドウを本体へ戻す場合は枠を出しません。戻る先は AviUtl ExEdit2 が分離前の配置として保存している値から決まり、その値は実行中のプラグインから読めないためです。
  • パネルがどのエリアに属しているかを読み取れなかった場合も枠を出しません。確かめられない位置を枠で示さないためです。

注意事項

  • 内部実装への依存: 配置の判定は AviUtl ExEdit2 の描画結果に依存しています。AviUtl ExEdit2 の更新で描き方が変わり、パネルの範囲を求められなくなった場合は、ドラッグでの配置が効かなくなるだけでエラーにはなりません。右クリックメニューからの配置は今までどおり使えます。
  • メニューの差し替え: 配置の操作を発行するため、TrackPopupMenu のインポートアドレステーブルだけを書き換えます。AviUtl ExEdit2 の機械語は書き換えません。
  • 設定ファイル: 本プラグインは設定ファイルを作りません。ディスクへの書き込みも行いません。配置の内容は AviUtl ExEdit2 が保存します。
  • 本プラグインを使用する前に、プロジェクトファイルのバックアップを作成することを推奨します。

ログ表示での確認

「表示」から「ログ表示」を開くと、本プラグインの動作を確認できます。本プラグインの行には [PLUGIN] [Plugin::DockLayout.aux2] が付きます。

メッセージ 意味
ドッキング配置: 有効になりました プラグインを読み込みました
ドッキング配置: パネルをエリア N へ移しました エリアのガイドへ落としました。番号は左が0、右が1、上が2、下が3、中央が4です
ドッキング配置: パネルをまとめました まとめるガイドへ落として、タブにまとめました
ドッキング配置: パネルの並び順を変えました 並び順のガイドへ落として、同じエリアの中で位置を変えました
ドッキング配置: パネルを分離しました 本体のウィンドウの外へ落として、別のウィンドウへ分離しました
ドッキング配置: ウィンドウを本体へ戻しました 分離したウィンドウを本体へ戻しました

免責事項

本プラグインは MIT ライセンスのもとで公開されています。

本ソフトウェアは「現状のまま」提供されており、明示または黙示を問わず、商品性、特定目的への適合性、および権利非侵害に関する保証を含む、いかなる種類の保証も行いません。

作者は、本プラグインの使用または使用不能に起因するいかなる損害についても、一切の責任を負いません。ご利用は自己責任でお願いします。


サードパーティライセンス

本プラグインは以下のサードパーティソフトウェアを使用しています。ライセンスの全文は、リポジトリの .github/LICENSE/AviUtl2-PluginSDK.txt と、配布する DockLayout_v1.1.0.zip の LICENSE フォルダーに収録しています。

ソフトウェア 用途 ライセンス 著作権表示
AviUtl ExEdit2 Plugin SDK AviUtl ExEdit2 との接続 MIT License Copyright (c) 2025 Kenkun

ライセンス

MIT License