TOP > RPGツクールMV/MZ > Komado.js
プラグインやスクリプトに関するお問い合わせは[maconetto_labo@twitter.com]まで。
Komado.js
本プラグインはサブ画面となる子窓を表示する機能を提供します。
任意の位置、サイズ、その他さまざまな条件で子窓を作ることができます。
動作条件
RPGツクールMV Ver.1.6.2以降
RPGツクールMZ Ver.1.0.0以降
PCの実行ファイル(Game.exe/Game.app)からの実行時のみ有効
ブラウザ実行やモバイル機器での実行ではご利用いただけません。
基本的な使い方
本プラグインにプラグインコマンドはありません
説明文に記載されているコマンドはすべてスクリプトとなります。

a) スクリプトを実行して子窓を表示する
 [ 座標(10,20)に画面サイズ400×300の子窓を出しマップ5番を表示する場合 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300);

b) 子窓のマップイベントを実行する
 [ マップ5番を表示している子窓のマップイベント2番を実行する場合 ]
  $gameSystem.callKomadoEvent(5, 2);
仕様/制限事項  [ 重要!! ]
子窓側ゲーム画面の変数/スイッチ/セルフスイッチ/アクター情報は親画面との共有となります。
子窓表示後に子窓のサイズを変更することはできません。
子窓側のゲーム画面ではF3/F4/F5/F8キーは使用できません。
子窓はタスクバーに表示されません。
子窓を最小化すると、親画面および他のすべての子窓が同時に最小化されます。
子窓側のゲーム画面でのセーブやロードは保証されません。
フレームなしの子窓は上下左右の画面端6px範囲のクリックが無効となります。
RPGツクールMZではコマンド実行から子窓が表示されるまで1秒以上かかることがあります。
プラグイン設定
exculude plugin 子窓で無効にするプラグインを設定
[ PluginXyz.js を無効にする場合 ]
 PluginXyz
createKomado
子窓を表示します。

createKomado(<mapId>, <x>, <y>, <width>, <height>[, <options>])
<mapId>  
子窓に表示するマップの番号
<x>  
子窓に表示するX座標
<y>  
子窓に表示するY座標
<width>  
子窓の画面の横幅
<height>  
子窓の画面の縦幅
<options>  
子窓オプション
optionsは省略可能。
子窓オプションの詳細は「子窓オプション」の項をご参照ください。
[ 座標(10,20)に画面サイズ400×300の子窓を出しマップ5番を表示する場合 ]
 $gameSystem.createKomado(5, 10, 20, 400, 300);
callKomadoEvent
子窓のマップイベントを実行します。

callKomadoEvent(<mapId>, <eventId>)
<mapId>  
子窓が表示しているマップ番号
<eventId>  
イベント番号/イベント識別子
イベントのメモ欄に以下のような記述をすることでイベント識別子を設定できます。
 <KomadoEvent:任意の文字列>
同じマップを表示している子窓が複数あった場合の挙動は保証いたしません。
[ 子窓が表示しているマップ3番のイベント5番を実行する場合 ]
 $gameSystem.callKomadoEvent(3, 5);
[ 子窓が表示しているマップ3番の、イベント識別子が'XYZ'のイベントを実行する場合 ]
 $gameSystem.callKomadoEvent(3, 'XYZ');
子窓オプション
子窓を表示する際にさまざまなオプションを指定することができます。
オプションは{}で括って記述します。
複数のオプションを指定する場合はカンマ区切りで記述します。

[ frameオプションを指定する場合 ]
 $gameSystem.createKomado(5, 10, 20, 400, 300, { frame: false });
[ frameオプションとplayerオプションを指定する場合 ]
 $gameSystem.createKomado(5, 10, 20, 400, 300, { frame: false,
player: { x: 7, y: 3 } });
a) title
 子窓のタイトルバーに表示するタイトル文字列を設定します。

 [ 子窓のタイトルバーに Komado と表示する場合 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { title: 'Komado' });

b) frame
 子窓のフレームの有無を設定します。(true/false)

 [ 子窓をフレームなしにする場合 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { frame: false });

c) transparent
 子窓のゲーム画面の背景の透過の有無を設定します。(true/false)
 ※フレームなし専用オプション

 [ 背景を透過する場合 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { frame: false, transparent: true });
 
マップタイルのない部分が透明になり、ウインドウの裏側が見えるようになります。

d) dragBox
 子窓のドラッグ領域を設定します。
 ※フレームなし専用オプション

 [ 座標(0,0)から400×20の範囲にドラッグ領域を設定する場合 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { frame: false,
dragBox: { x: 0, y: 0,
width: 400, height: 20 } });
 
ドラッグ領域=タイトルバーのように、マウスで掴んで子窓を移動させられる部分。

e) minimizeBox
 子窓の最小化ボタン領域を設定します。
 ※フレームなし専用オプション

 [ 座標(360,0)から20×20の範囲に最小化ボタン領域を設定する場合 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { frame: false,
minimizeBox: { x: 360, y: 0,
width: 20, height: 20 } });
 
最小化ボタン領域=マウスでクリックしたら子窓が最小化される部分。

f) closeBox
 子窓の閉じるボタン領域を設定します。
 ※フレームなし専用オプション

 [ 座標(380,0)から20×20の範囲に閉じるボタン領域を設定する場合 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { frame: false,
closeBox: { x: 380, y: 0,
width: 20, height: 20 } });
 
閉じるボタン領域=マウスでクリックしたら子窓が閉じる部分。

g) show
 子窓の表示の有無を設定します。(true/false)

 [ 子窓を非表示にする場合 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { show: false });
 
ピクチャ表示などの準備をしてから子窓を表示したい場合などにご利用ください。
子窓を表示する場合は子窓側のゲーム画面で以下のスクリプトを実行してください。
 nw.Window.get().show();

h) alwaysOnTop
 子窓を常に親画面より上に表示するかどうかを設定します。(true/false)

 [ 子窓を親画面より下に表示させたい場合 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { alwaysOnTop: false });
 
本オプションはデフォルトで true となっており、子窓を使った画面演出などの目的以外で
false に設定することは推奨しません。
(子窓はタスクバーに表示されず、他のウインドウに隠れると戻しづらいため)

i) player
 子窓のプレイヤーの初期位置や透明状態を設定します。

 [ プレイヤーを座標(7,3)に配置 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { player: { x: 7, y: 3 } });
 [ プレイヤーを座標(7,3)に透明状態で配置 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { player: { x: 7, y: 3, transparent: true } });
 
プレイヤーの初期位置省略時は座標(0,0)に配置されます。

j) excludePlugin
 子窓で無効にするプラグインを設定します。
 プラグイン名は[]で括り、複数指定する場合はカンマ区切りで記述します。

 [ PluginXyz.js を無効にする場合 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { excludePlugin: ['PluginXyz'] });
 [ PluginAbc.jsPluginXyz.js を無効にする場合 ]
  $gameSystem.createKomado(5, 10, 20, 400, 300, { excludePlugin: ['PluginAbc', 'PluginXyz'] });
 
特定の子窓でのみ無効にしたいプラグインがある場合に本オプションをご利用ください。
すべての子窓で無効にしたいプラグインについてはプラグイン設定で指定してください。
便利なスクリプト
画面の情報を取得したり子窓を操作するのに便利なスクリプトをいくつかご紹介します。
これらのスクリプトは本プラグインとは関係なく、ツクールにもともと備わっているものです。
nw.Window.get().x
ウインドウのX座標
nw.Window.get().y
ウインドウのY座標
window.innerWidth
画面の横幅
window.innerHeight
画面の縦幅
window.outerWidth
ウインドウの横幅
window.outerHeight
ウインドウの縦幅
nw.Window.get().focus()   
ウインドウを最前面に移動する
window.close()
ウインドウを閉じる
nw.Window.get().x += 10
ウインドウのX座標を右に10px移動する
nw.Window.get().y += 10
ウインドウのY座標を下に10px移動する
X座標やウインドウの横幅・縦幅は見た目とは若干異なります。
例えばX座標は、親画面の場合は7px、子窓の場合は2px左にずれた座標になります。
(ウインドウの周りに見えないフレームがあるイメージ)
親画面でも子窓でも利用できます。
親画面で実行した場合は親画面が、子窓で実行した場合は子窓が対象となります。
nwから始まるスクリプトはブラウザ実行やモバイル環境では利用できません。
利用規約
本プラグインの利用は、RPGツクール/RPG Makerの正規ユーザーに限られます。
商用、非商用、有償、無償、一般向け、成人向けを問わず、利用可能です。
利用の際、連絡や報告は必要ありません。また、製作者名の記載等も不要です。
プラグインを導入した作品に同梱する形以外での再配布、転載はご遠慮ください。
本プラグインにより生じたいかなる問題についても、一切の責任を負いかねます。
更新履歴
ver.1.00
2020.07.18
公開
ver.1.01
2020.08.23
RPGツクールMZに対応