タイトルとメニューのウィンドウを調べてみた
ウィンドウ関連のクラスは沢山あって、どれが実際目にするどのウィンドウにあたるのか、なかなかストンと理解できません。
ということでスクリーンショットで綴る、魅惑のウィンドウの旅。
今回はタイトルとメニュー関連をシーンを基本にたどっていきましょう。
シーンの継承関係
ウィンドウを細かく調べる前に、シーン全体を把握しておきましょう。
次のような 継承関係になってます。
ウィンドウに比べれば少ないとはいえ、結構量があります。
今回はこのうち、Scene_Title、Scene_Load( Scene_Save )、Scene_Options、Scene_Menu、Scene_Item、Scene_Skill、Scene_Equip、Scene_Status、Scene_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 というプラグインを使うと色々できそうなので、じっくり取り組みたい。
そこで結論。
やはり、画像と結びつくと理解が進む(気がする)