こんにちは。
制作中のフリーゲームが"地味"でその対策として顔グラフィックを表示させるという案を前回の記事で書きましたが、その案をちょっと考え直してます。
というのは、地味対策としてエフェクトアニメーションを入れてみたら少しマシになったような気がしたのと、ミニゲーム実行中に顔グラフィックは邪魔に感じるんじゃないかと思ったからです。つまり労力の割に効果は薄い、またはマイナスの可能性も有り得ると。
一旦、エフェクト案で最後まで作ってみて、それからまた考えてみようかな。
と、思ったまではよかったのですがテストプレーしてたら新たな問題が発生。
制作を進める毎に増えていく並列処理。これまで頭の片隅にあった一抹の不安がエフェクトを追加したことにより遂に現実となりました。
処理落ちです。
"処理落ち"とはPCの計算が多すぎるために意図した時間に処理が間に合わず、ゲーム内の時間の流れが不安定になることです(たぶん)。
例えばボールを投げたら少しずつ減速して地面に落ちるのが自然ですが、処理落ちが起こると空中で急減速したり加速したり不自然な動きになるためプレーに支障がでたりプレイヤーのストレスになったりします。昔の縦スクロールのシューティングゲームではよくあったような。敵の弾が多すぎて遅くなるやつ。新しめのゲームだと無双系で敵が多過ぎるとなるのかな。 あまり新しいのは知りませんが(´・ω・`)
とりあえず処理落ちされたら困るのです。そういうゲームなんです。
問題が顕在化したのはエフェクトアニメーションの追加がきっかけですが、一番の原因には目星がついていました。
当たり判定の記事で書いた内容ですが、移動するピクチャの画像の座標を取得するために座標を変数にして、その変数を変化させることで画像を移動させ、他のイベントでその変数を参照しており、変数の変化はループ演算を使っていたのです。
icedtomatobazooka.site
これが処理速度に悪影響を及ぼすことは初心者の私でもなんとなくわかりますw
記事でも書いたようにスクリプトを使うことでも座標の取得はできるのでそのようにイベントを組み直したところだいぶ安定しました。
処理落ちするってどんだけ派手なんだよって思われるかもしれませんが、ゲームはシンプルでほんとに地味なんです。イベントの組み方がたぶん下手過ぎるんですw
もっとできることがあれば念のためしておきたいですが、自分の知識では他に変えられる場所は見当たりません(;´・Д・)
並列処理を減らせたらいいけど正常に動かすだけでも苦労したので簡略化なんて無理だ。
画像ファイルを軽くするのは1つの手段だと思いますが、動かしているのは元々小さいファイルの画像ですので意味なさそう。
ループ無くしただけでも良しとするか! と思いましたがとてもいいものを見つけました!
RPGツクールMZのイベント処理を高速化するプラグイン!
制作者:うなうなぎ 様
神か!( ゚Д゚)
こんなものがあろうとは! 原理はさっぱりですがとりあえず導入w
ダウンロードページから FastMZ.js と fs.js を入手するわけですがダウンロード時に 右クリック→リンク先を保存 とするとなぜかファイルの中身がかわってしまうので左クリックして移動した先に表示される中身(コード)をコピーしましたw 本来の方法はたぶん違うw
このプラグインはプラグイン管理画面で状態をONにするだけで有効となるようです。管理画面のプラグインリストに fs.js のほうが上になるように入れて有効化します。
いちおう手順(テンプレ)↓
①プラグインの.jsファイルを↓へ保存。
プロジェクトフォルダ→js→plugins
②プラグイン管理画面を開く。
ツール→プラグイン管理
③管理画面の空欄をダブルクリックしてプラグイン設定画面を開く。
④プラグイン設定画面の”名前”から保存したプラグインを選ぶ。
⑤”状態”をONにする。
⑥プロジェクトを保存する。
これで処理落ち問題は解決でしょー。ありがたや(。-人-。)
振袖娘の線画。進捗は非常にゆっくりです(-∀-○)
//追記//
その2もあります。
ランキング参加中です。下のバナーをクリックして頂けるとやる気値が増幅します!!