【RPGツクールMZ】シーンの全体像の把握

5 min読了の目安(約5300字TECH技術記事

目的

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

ゲームオーバー画面のクラス。

戦闘テストでゲームオーバーになったときは、このクラスを呼ばずにウィンドウが閉じる。表示を見たい場合はマップイベントを置くのが手っ取り早い。

[クラス一覧に戻る]