2024-02-19

ツクールMZ備忘録:セーブ・ロード画面で章を表示

Comment ShareLink

リメイクを作ったり、アドベンチャー対応の作品を作るにあたって手探りでスクリプトいじりをしているわけですが、
今回はセーブ・ロード画面に進行内容(章の題名など)をテキストで表示してみました。
今後MZについてはブログ記事のタイトル備忘録にしておくね。ほとんど自分用だし。

参考になるかどうかはわからないのでもしやってみる方はスクリプトファイルを(もしくはフォルダごと)コピーして避難させてからやってみてください。

最初に描画の仕組みを調査。
セーブ・ロード画面の表示については
rmmz_windows.jsとrmmz_managers.jsで行っているようです。

windowsのほうが描画、managersは描画する内容の取り出しといったところ。


で。
章などのテキストを表示するにはセーブデータに文字列の変数を格納しないといけなくて、ごり押しでいくならセーブされる内容にある $gameSystem がいいかなと
$gameSystemの初期化が行われているGame_System.prototype.initializeを探してみました。
rmmz_object.js内の最初のほうで発見。


まずこのrmmz_object.jsにあるGame_System.prototype.initialize内に

this.chapter = "";

を追加します。


次に、rmmz_managers.jsにあるDataManager.makeSavefileInfo内に

info.chapter = $gameSystem.chapter;

を追加。
これでデータからさっきのchapterが簡単に取り出せるようになります。


そしてrmmz_windows.jsのWindow_SavefileList.prototype.drawContentsの一番後ろに

this.drawText(info.chapter, x + 220, y2 - 26, 420, "center");

を追加。
上の例は中央寄せでプレイ時間の縦表示ベース(y2)で位置調整しています。
"center"をleft、rightに書き換えたら左寄せ・右寄せにもなります。
左から「表示内容, 横位置, 縦位置, 横幅, 文字寄せタイプ」ってことですね。

ちなみにキャラクター表示を消してテキストを目立つように中央に置いてみたのを例にしているため、キャラクターを表示する際は文字サイズや位置は要変更です。


テキストのフォントサイズは

this.contents.fontSize = 文字サイズ数値;
this.drawText(info.chapter~
this.resetFontSettings();

のハンバーガー作成で実現できそう。
元に戻さないと全部同じサイズになっちゃったりするので変更後は戻すように。
drawPartyCharactersとかそのあたりをコメントアウトしてみるとキャラクター表示消せます。
どうしたらいいかわからない時はコメントアウトとalert使って色々試してみるもん!(大雑把)

最後にゲーム内で章など進行内容の変わるところにスクリプトで

$gameSystem.chapter = "第一章「はじまり」";

と入れて実行した後にセーブしてみると反映されると思います。


これで第何章~ナントカ~の表示でどこまで進めたかがわかりやすくなりました。
何章じゃなくてマップ名を入れたりも良さそう。

category:

コメントを投稿