SparePages

ツクール2000→ウディタ→ツクールMV・MZと乗り換えてのゲーム制作とかの備忘録

wp20160903f

ツクールMVのイベントが重かったのでなんとかしたかったメモ

2017/01/10

◆要約:重い処理は切り離して並列処理に。そしてメインイベント内からスイッチで呼び出す。


 

◆関連

ツクールMVで、ピクチャをキャラチップに置き換えて動作軽量化を図ったメモ

Monacaを使ってツクールMVをスマホ向けに出力する

 

◆はじめに

ツクールMVでゲームを制作しています。
少し細かく言うと、ツクール2000で作ったゲームをツクールMVでリメイクしています。
同じツクールシリーズなので、イベントのコマンドもほぼ同じ。
基本的にそのままの形でMVへ載せ替えることが出来ました。

そして通しのテストプレイ。
というところで気づいたんですが、
アイテム数を計算して画面にババババッと表示させるイベントがとても重い。
そのイベント中にそのコモンイベントを挟むと、計算だけで、一秒は掛からないにしても気になるぐらいの間が発生してしまう。


(参考:ツクールMV。合計金額の表示のタイミングや、戦闘アニメを表示させる前に気になる間)

「そんな一秒にも満たないぐらいの間で何言ってるんだ…」なんて思うかもしれないですが、
今回作っているゲームが、いわゆる作業ゲーです。
同じイベントを繰り返すときに毎回同じ所で何度も処理の間が出来てしまうのは気になります。

「プレイしている時に間が気になる」が間が気になってプレイが快適でない→面倒→プレイするのやめよう
となりかねません。
何回も繰り返すところこそ、快適にしておかないと積もり積もってプレイが面倒ということになってしまいます。(個人的にすごく重要なところです。すごく。)

加えて、ツクール2000では特に気にならずにイベントが動いていたのでなおさら気になるところではあります。


(参考:ツクール2000の同イベント。サクサク)

(まあ、細かいところを言えば、ツクール2000もピクチャを表示させるときに(本当に微妙な)間は出来てはしまいます。
文章の表示の間にピクチャを表示させようとすると、そのタイミングだけ次の文章が表示されるまでにワンテンポ遅れが…なんてこともありました。「ルーランド+」を制作した時は、戦闘中にHPの表示を挟むとテンポが悪くなるので戦闘後にのみ行わせるようにするとかしてあれこれした思い出。)

 

◆対応

今回遅さが気になったイベント…処理的には、
アイテム数を表示用に一桁単位にバラして、その数字をもとに画面上部にアイテム数を表示させるイベント
なのですが、そこのピクチャの表示でもたついてしまっているようでした。
一気に30枚ぐらい表示させているのでそのせいなんですかね(;´Д`)
(技術的なことは詳しくないですが、ツクール2000と比べツクールMVは解像度も3倍ですし、色も256色以上OKなので、その分負荷的なところがかかるんですかね…。)

で、この処理が終わるまでは次のイベントへステップが進まないのでもたつきが発生している と。

ということで、アイテム数計算のイベントが終わらなくても次へ進むようにしました。

※イメージ↓
wp20160903f

・該当イベントを切り出してコモンイベントへ(トリガー:並列処理)
wp20160903d

・元イベントからスイッチで↑のイベントを起動

・コモンイベントが並列で実行される。コモンイベントの最後でスイッチをオフに
wp20160903e

といった対応です。

 

◆結果

上の一つ目の動画と比べると、間が少し解消されたのがわかります。

 

◆おわり

ということで、「重いイベントは切り離して並列で実行させるとマシになる」という話でした。
勿論、並列で流してタイミングが合わなくなるとまずいイベントもあるとは思いますので、全部これでOKというわけではありませんが。

個人的には、ピクチャの表示が重いということで、
「少しでも軽くするためにアイテム数の表示箇所をピクチャからキャラチップに変えなきゃいけないのか(約30個分)」
とそわそわしていたのですが、やらなくて済んだのでほっとしました(´ー`)

というか、他の方のゲームとか見ていると、あまりもたついている印象がないので、私のイベントの組み方の問題なんですかね。

-PC, ツクールMV