【RPGツクールMZ】シーンの全体像の把握
目的
RPGツクールMZの既存ソースコードの把握のために、シーンクラスを一通りさらう。
環境
RPGMZ 1.0.2
覚え書き
RPGツクールMZでは、シーンクラスの切り替えによって画面の変更を行っている(デザインパターンでいうStateパターン?🤔)。
スーパークラスの処理をがっつり書き換えると、サブクラスの「書き換え前の処理を前提とした処理」がうまく動かないことがある。プラグインを作る際、特に配布を目的としたプラグインの場合はサブクラスへの影響を考えたい。話は逸れるが、この辺りGitのブランチ管理と似てると思った(メインブランチをリベースしてなんか大変なことになったりとか)。
マップ画面からの画面遷移時の背景
マップ画面からメニュー画面を開いたときに、背景にぼかしの入ったマップ画面が表示される。これはSceneManager.snapForBackground
で撮ったスナップをScene_MenuBase.createBackground
で加工して使用している模様。
クラス一覧
※画面列に「🖥」があるクラスは、画面として表示される。
# | クラス名 | 画面 | 説明 |
---|---|---|---|
1 | Scene_Base | 全ての画面のスーパークラス | |
2 | Scene_Boot | ゲーム全体の初期化を行う | |
3 | Scene_Title | 🖥 | タイトル画面 |
4 | Scene_Message | マップ画面とバトル画面のスーパークラス | |
5 | Scene_Map | 🖥 | マップ画面 |
6 | Scene_MenuBase | 全てのメニュータイプのスーパークラス | |
7 | Scene_Menu | 🖥 | メニュー画面 |
8 | Scene_ItemBase | アイテム画面とスキル画面のスーパークラス | |
9 | Scene_Item | 🖥 | アイテム画面 |
10 | Scene_Skill | 🖥 | スキル画面 |
11 | Scene_Equip | 🖥 | 装備画面 |
12 | Scene_Status | 🖥 | ステータス画面 |
13 | Scene_Options | 🖥 | オプション画面 |
14 | Scene_File | セーブ画面とロード画面のスーパークラス | |
15 | Scene_Save | 🖥 | セーブ画面 |
16 | Scene_Load | 🖥 | ロード画面 |
17 | Scene_GameEnd | 🖥 | ゲーム終了画面 |
18 | Scene_Shop | 🖥 | ショップ画面 |
19 | Scene_Name | 🖥 | 名前入力画面 |
20 | Scene_Debug | 🖥 | デバッグ画面 |
21 | Scene_Battle | 🖥 | 戦闘画面 |
22 | Scene_Gameover | 🖥 | ゲームオーバー画面 |
1. Scene_Base
全ての画面のスーパークラス。
2. Scene_Boot
ゲーム全体の初期化を行うクラス。
3. Scene_Title
タイトル画面のクラス。
あまり互換性を気にしないで良さそうなので、まるっと置き換えるのも面白そうな部分🤔
4. Scene_Message
マップ画面とバトル画面のスーパークラス。
やや直感的ではない気がして個人的に興味を持ったところ(砂糖にはマップの上にキャラクターが居て、そのキャラクターがメッセージを発するというイメージがある。でもシステム目線でみたらこの実装が自然のようにも🙄)。
マップ画面のメッセージ表示をがっつりカスタマイズしたいと思ったら、戦闘画面の方にもかなり影響してくる?🤔(新規クラスを作ってScene_Messageを継承し、そちらをいじれば回避は出来そうではあるものの)
4.1. Scene_Map
マップ画面のクラス。
4.2. Scene_Battle
戦闘画面のクラス。
戦闘の進行はBattleManager(js/rmmz_managers.js
)が行っている。
5. Scene_MenuBase
全てのメニュータイプのスーパークラス。
5.1. Scene_Menu
メニュー画面のクラス。
5.2. Scene_ItemBase
アイテム画面とスキル画面のスーパークラス。
5.2.1. Scene_Item
アイテム画面のクラス。
スクリーンショットを撮影するときに初期アイテムの持たせ方が分からなかったので、マップイベントにアイテムの増減を仕込んで対応した🙄
5.2.2. Scene_Skill
スキル画面のクラス。
5.3. Scene_Equip
装備画面のクラス。
5.4. Scene_Status
ステータス画面のクラス。
5.5. Scene_Options
オプション画面のクラス。
タイトル画面とメニュー画面から呼び出せる。
5.6. Scene_File
セーブ画面とロード画面のスーパークラス。
5.6.1. Scene_Save
セーブ画面のクラス。
5.6.2. Scene_Load
ロード画面のクラス。
5.7. Scene_GameEnd
ゲーム終了画面のクラス。
5.8. Scene_Shop
ショップ画面のクラス。
どの商品を販売するかはイベントエディタで選択する。
5.9. Scene_Name
名前入力画面のクラス。
どのアクターの名前を変更するかは、イベントエディタで選択する。
5.10. Scene_Debug
デバッグ画面のクラス。
テストプレイ中、マップ画面でF9キーを押すと表示される。
6. Scene_Gameover
ゲームオーバー画面のクラス。
戦闘テストでゲームオーバーになったときは、このクラスを呼ばずにウィンドウが閉じる。表示を見たい場合はマップイベントを置くのが手っ取り早い。
Discussion