カテゴリー

















ツクールXP軽量化作戦

2007/05/05

巷では「ツクールXPは重い」というウワサをよく聞きます。

自分的に、「テキスト描画」処理が大きいと思うッス。
文字描画が増えるとフレームレートが落ちます。
これはどんなスクリプトを組もうが、「文字描画をいっぱいする」
ということをする時点で落ちます。

フレーム更新のたびに文字描画とかキツイっすね。
描画文字数は少ないですが、戦闘画面のHPウインドウとか。
ダメージ数字も、1ダメージで5回も文字描画。
全体攻撃で5体のエネミーを攻撃したら、一瞬で25回もテキスト描画をすることになります。
だから、XPを軽量化するにあたって、シンプルかつ効果的な方法は、「テキスト描画を減らす」ことがひとつ挙げられます。

仮に、武器を100個作って装備画面を開くと、フレームレートがみるみる落ちるのが見て分かるかと思います。
XPはデフォでフェード演出を多用していますが、あれは演出に加えて「処理時間を感じさせない工夫」をしてるんですね。
この装備画面のシーンで、アイテム描画をしないようにスクリプトを組むと、当然フレームレートは落ちません。
もちろん、画面にアイテム名は表示されません。

んで、アイコンだけ表示してみると、わずかにフレームレートが落ちます。で、アイコンを表示しないでテキストだけ表示してみると、激減するワケです。
特に100個単位とかなってくると、ぶっちゃけアイテム数の横に付いてる「:」だけ取っても違いが出てきます。
つまり、アイコン描画よりテキスト描画のほうが はるかにキツイんですね。

ここを軽量化するには、アイコンもろともテキスト名も絵として表示するか、最初にいっぺんに描画せずに、見えているアイテムだけ描画するか、先読みでキャッシュに保存して呼び出すとか、いろいろ方法はありますね。
どれも、「いっぺんに大量の文字描画をしない」工夫というわけっす。

5月4日の拍手コメントです。

●マジェスティアはステータス画面やらショップ画面やらの配色センスがすんばらしーですね。
ホームページと同じ雰囲気であたたかいです。
独特のメニュー画面やバトル時のキャラHP表示の仕方は独自スクリプトなんでしょーか?キャラ毎に枠を作るようなスクリプトは見たことないので・・・
■昨日の日記見たらネガティブキャンペーン全開で恥ずかしいッス。
いや、ほら、ハイセンスのツクール作品とか遊んだら、なんか終わったあと自分と比較しちゃって落ち込んだりとか、だってにんげんだもの。

メニューもバトルも、ウインドウはひとつッスね。
最初にシーン移行するとき、パーティ人数見てピクチャを表示してるだけッス。で、ウインドウを透明に。
バトルだと、戦闘背景と同じセクションで処理してます。
バトル画面のHPウインドウは、パラさんの「縦リスト型バトルステータス」スクリプトを利用させてもらってるッス。
これのナニがすごいかって、今日のお題「軽量化」のまさに王道を行く軽量化処理がなされてるトコです。
超オススメでござる。

●『 6人は全く関連性がないので、ここで選ばなかったキャラは今後いっさい登場しません』あんぎゃりだぁ〜!ロマサガ3でカタリナ使えず、悔しかった想い貴方は分かると思ったのに……
■そう、なんでカタリナだけ使えないんだYO!
…それはさておき。

「その主人公だけが持っている特権」を使いたかったんッス。
この主人公を選んだ時だけに、有利になる要素というか。
だから主人公全員が集結できると、強すぎるのとその話の特権が薄れてしまうと思って…
特権をキャラごとに持たせたら、今度は特権自体が特別でも何でもなくなるし…

< ゴメンネ  | ページTOPへ |  ゴーストマテリアル >