こんにちは。
RPGツクールMZで制作中のゲームの体験版をアップロードしようとしたらつまづきましたw 焦ったー('Д')
制作ゲームのプロジェクトファイルを配布できるゲームの形式にすることをデプロイメントといいますが、それまでのテストでは問題なく動いていてもデプロイメント後ではエラーが出ることがあります。
ゲームを公開するならそれも想定して余裕のあるスケジュールを立てるべきなのでしょうが、そういったことをすっかり忘れており今制作ゲームでは初めてデプロイメントを行ったのです。
デプロイ後のテストで即エラー画面が出て「しまったああああ( ゚Д゚)」ってなりました。なぜか当然動くものと思い込んでいました(ホントになぜだ)。
イベント出展用ですから当然期限があるわけで、それまでにエラーが解決できなければ失態です。
結果から言いますと今回確認したエラーは2件で、どちらも大したものではなかったので解決済。
いちおう一通り動作チェックしたからたぶんもう大丈夫(。-`ω-)b
今後の為にメモを残しておきます。
1つ目のエラー:Failed to load
ファイルが読み込めなかったっていうエラーですね。
ファイルが無いとか壊れているとか、ファイル名やパスに問題があるっていうことなのでエラーメッセージに表示されたファイルについてそのあたりを調べれば解決に繋がります。今回のケースではファイルが消えていました。
RPGツクールMZでデプロイメントするとき、未使用ファイルを除外するっていう項目があります。チェックを入れると自動で使っていないファイルを削ってくれてサイズを節約できるのですが一部使っているファイルまで消えてしまっていたのです。
今まではこんなことは無かったのでたぶんですけどプラグインやスクリプト内でのみ使っているファイルは"使っていない"と判断されるのかも知れません。
思いつく対策はいくつかあります。
対策①:すべてのファイルを含めてデプロイメントする。
対策②:デプロイメント前、または後に手動で不使用のファイルを削除する。
対策③:「不使用ファイルを消すデプロイメント」の後に必要なファイルを付け足す。
対策④:エラーが出たファイルをゲーム内のイベントコマンドで使用する。
最も手間いらずな解決策は①ですね。ただしゲームのデータサイズが大きくなってしまうので私はしてません。
②もやってみましたが削り漏れがあるのかサイズが大きくなってしまったので断念。
採用は③。問題はファイルを暗号化してデプロイした場合は恐らくこの対策は不可であること。
今回アップロード先がゲームアツマールだけなのでこれで問題ありません。アップロードの際にアツマール側で暗号化されるようです。
ちなみにゲームアツマールに投稿するときはブラウザ形式でデプロイした後、ZIPファイルに圧縮してアップロードします。
④は未検証ですがこれも有効だと思います。プレーに影響ないところでイベントコマンドを使って呼び出しておけばツクールが使用ファイルと判断してデプロイメントに含まれると思います。
本編ができたときは投稿先が複数になるので今回と違う対策をとらねばなりません。
②でがんばってダイエットさせるか④か…どうしようかな(。-`ω-)
2つ目のエラー:TypeError(〇〇 is not a function)
○○ってのを呼び出そうとしてるけどそんなのどのjsファイルにも書かれてませんよっていうエラーです。まず疑われるのはタイプミスですがデプロイメント前は動いていたので考えにくいです。
waitUntilPromiseSetteled ってのを定義してるファイルが消えてしまったか何かかなーと思ってとりあえず呼び出そうとしているところを調べました。jsファイルを片っ端から開いて"waitUnitlPromiseSetteled"の文字列を検索したのです。結果、見つからず(→たぶんアツマールAPIプラグイン)。
MZ制作者さんの中にはもしかするとエラーの文章でピンとくる方もいらっしゃるかも知れません。その後アツマールAPIのプラグインコマンド(スコアボードにアクセス)実行時にエラーが出ているという事をつきとめ、 プラグインについて調べて原因判明。ツクールMZでアツマールAPIのプラグインを使うには「WaitCommandUntilPromiseSettled.js」も必要なのです。名前まんまじゃん(;´Д`)初めてじゃないんだから気づけw
ダウンロードページ↓
そんなこんなで体験版のアップロード、終わりました!
クリエイターズ文化祭2022 開催当日、10月22日 18時頃に体験版公開予定!!
あとは店舗紹介カードってやつと特設ページの作成と素材のアップロードだ。
・・・ピンチじゃん(;´Д`)