タイトルとメニューのウィンドウを調べてみた

 ウィンドウ関連のクラスは沢山あって、どれが実際目にするどのウィンドウにあたるのか、なかなかストンと理解できません。
 ということでスクリーンショットで綴る、魅惑のウィンドウの旅。
 今回はタイトルとメニュー関連をシーンを基本にたどっていきましょう。

うろ覚えで描いたから大丈夫!

シーンの継承関係

 ウィンドウを細かく調べる前に、シーン全体を把握しておきましょう。
 次のような 継承関係になってます。
 ウィンドウに比べれば少ないとはいえ、結構量があります。

 今回はこのうち、Scene_TitleScene_Load( Scene_Save )、Scene_OptionsScene_MenuScene_ItemScene_SkillScene_EquipScene_StatusScene_GameEnd のウィンドウを調べていきたいと思います。

Scene_Title

継承関係: Scene_Base Scene_Title

 このシーンは Window_TitleCommand の1枚だけ。

 最初に登場するウィンドウですね。
 標準の TitleCommandPosition.js プラグインで位置を調整できます。めっちゃシンプルなプラグインなんで、プラグイン作りの参考にできますね!
 ということに最近気づきました…もう、自分で同等のもの作れるのに、気づいたの最近…。

[コンティニュー] Scene_Load

継承関係: Scene_MenuBase Scene_File Scene_Load

 上が、Window_Help
 下が、Window_SavefileList

 Window_TitleCommand にあるのは、[コンティニュー]ですけど、通常メニューの[セーブ]やイベントコマンドの[セーブ画面を開く]と使ってるウィンドウは同じ。
 セーブの方は Scene_File Scene_Save の継承関係のシーンで扱います。
 その際の Window_SavefileList のモードを変えるのは setMode() メソッド。

[オプション] Scene_Options

継承関係: Scene_MenuBase Scene_Options

 Window_Options の1枚しかないシーン。
 なんか、もったいない気がするというかなんというか。

 オプションを呼び出すコマンドメニューで、タイトルだけでなく通常メニューからも呼ばれます。
 オープン・クローズのアニメーションがないんですよね。
 後、クリック・決定で設定が変わる他、方向キー左右でも切り替えられるのが、他にない感じ。

Scene_Menu

継承関係: Scene_MenuBase Scene_Menu

 左上のコマンドウィンドウが Window_MenuCommand です。
 右の顔とステータスが並んでるところが Window_MenuStatus
 そして左下の所持金表示が Window_Gold

 Window_MenuStatus はコマンド選択直後のキャラ選択に使われ、setFormationMode() メソッドで設定して、[並び替え] でも使われます。
 Scene_MenuBase Scene_Equip の継承関係にあります。

[アイテム] Scene_Item

継承関係: Scene_ItemBase Scene_Item

 一番上が、Window_Help
 真ん中が、Window_ItemCategory
 下が、Window_ItemList

 右側の対象アクターを選択しているのが Window_MenuActor です。見た目は Window_MenuStatus と全く一緒ですね。
 それもそのはず、 Window_MenuStatusWindow_MenuActor という継承関係にあるのです。

 細かいことですが、このウィンドウの左側の角丸の部分の重ね合わせが雑なのが気になります。
 といって、半透明のウィンドウをそのまま重ねると後ろの情報がうるさいですし、できれば綺麗に丸く切り取るか、ウィンドウを重ねない方法を考えて欲しかったものです。

[スキル] Scene_Skill

 [スキル]コマンド選択直後は Window_MenuStatus でキャラ選択されます。

継承関係: Scene_ItemBase Scene_Skill

 一番上が、Window_Help
 中央左が、Window_SkillType
 中央右が、Window_SkillStatus
 下が、Window_SkillList

 Scene_Item と同様に対象アクターを選択する Window_MenuActor があります。

[装備] Scene_Equip

 [装備]コマンド選択直後は Window_MenuStatus でキャラ選択されます。

継承関係: Scene_MenuBase Scene_Equip

 一番上が、Window_Help
 中央左が、Window_EquipStatus
 中央右の上が、Window_EquipCommand
 中央右の下が、Window_EquipSlot
 下が、Window_EquipItem

 かなり複雑にウィンドウが組み合わさってますね。
 ウィンドウとは直接関係ないですが、リストの最後の空項目を選択すると装備を外す、というUIはかなりひどいと思います。
 絶対、気づかない人いるでしょ。特にマウスやタッチパネルでプレイしてる人。

[ステータス] Scene_Status

 [装備]コマンド選択直後は Window_MenuStatus でキャラ選択されます。

継承関係: Scene_MenuBase Scene_Status

 見ての通り、 Window_Status だけですね。
 Scene_MenuBase の機能、ほとんど使ってない気がします。

[ゲーム終了] Scene_GameEnd

継承関係: Scene_MenuBase Scene_GameEnd

  Window_GameEnd だけのシンプルなシーン。
 なんかここ、ウィンドウを開くアニメーションするんですよね。オプションは開閉ともにやらないのに、中途半端!

 ウィンドウとは直接関係ないですけど、ここのコマンド名すごくわかりづらいですね。
 [タイトルへ]と[やめる]って出てきて、ふたつともゲームやめるコマンドで、ゲームを続けるにはどうしたらいいの? みたいな。
 意味が読めなくて、キャンセルボタン押すのもためらわれる感じすらします。
 個人的には[やめる]は[ゲームを続ける]にしたほうがいいんじゃないかと思います。
 そもそもこのメニュー必要なのか? というのも感じます。必要なのはロードじゃないのか?

ちなみに

 どーでもいいですが、テレーゼを僧侶に、マーシャを戦士に設定してますね…なんでやねん。
 ルキウスは魔術師でも、なんら違和感ないです。

 次々と改善点が見つかって、どうにかしたくなりますが、大きくメニューのフローを変える必要があったりして、手をつけるのは大仕事になりそうです。
 なお、公式から出ているMADOというツールは、フレームの入れ替えができるだけで、特にUIのフローの変更はできないらしいです。
 公式のツールより、トリアコンタンさんが作った SceneCustomMenu.js というプラグインを使うと色々できそうなので、じっくり取り組みたい。

 そこで結論。

やはり、画像と結びつくと理解が進む(気がする)