ウィンドウスキンを事前に読み込む方法
約1ヵ月ぶりにこんにちは!
今回はウィンドウスキンを事前に読み込む方法について紹介します!
結論
結論から言うと、Scene_Boot.prototype.loadSystemWindowImageにゲームで使いたいウィンドウスキンのファイル名を記載すると、ゲーム起動時にスキンの読み込みが遅れることを防ぐことができます。
これは文字の通りに「起動時に事前にウィンドウスキンを読み込む処理」をするところです。
最初Scene_Boot.prototype.loadSystemWindowImageにはImageManager.reserveSystem('Window');と記述されているだけなので、そこにウィンドウを描画する前に事前に読み込んでほしいウィンドウスキン名を丸括弧の中に記述します。
もし、この処理をプラグインに記述しなかった場合は起動時にウィンドウスキンの読み込みが間に合わずこのように文字が黒くなります。
使用させていただいたウィンドウスキン:空想曲線様
この時にWindow.pngに戻したら正常に読み込まれるのですが、それはScene_Boot.prototype.loadSystemWindowImageにWindow.pngを事前に読み込む処理が記載されているからです。
ウィンドウスキンをシーンごとに分けてみたけどスキンの読み込みが上手くいかない場合に試してみてください!
余談
前回に公開したウィンドウ不透明度変更プラグインにシーンごとに任意のウィンドウスキンを設定できるようにしたくてプラグインを弄っていたんです。
最初はWindowとSceneのinitializeメソッドに一つ一つ任意のスキンを割り当てる処理を記載していました。「面倒だし管理しにくい...もっとコードを簡単に書けて見やすくできないかな」と思ってChatGPTにそのまま質問したら、switch文なるものがあると教えてくれました。
if文みたいに使えるうえでコードがスッキリして見やすいし管理もしやすかったので、switch文で書き直しました。確実に記述量を削減できましたね。
でも、このように記述してから冒頭で述べたような不具合が出たんですよね。
JavaScriptにまだまだ慣れていなかったのでChatGPTにどうしたらいいか聞きまくって、アドバイス通りに修正を繰り返していたのですが直りませんでした。
諦めきれなかったので「どこかでWindow.pngを読み込む処理があるはず」と思い、ディベロッパーツールで「'Window'」と検索した結果、rpg_scene.jsで最初にヒットしたのがScene_Boot.prototype.loadSystemWindowImageでした。
関数名?を読む感じ、明らかにこれやろと思ったので試しに弄ってみたら上手くいったという感じです。
初心者故にもう探すのも一苦労でした。ディベロッパーツール便利ですね。
この記事がゲーム制作のお役に立てば幸いです!
0コメント