「EnDlEss DREamER」ブログ

最近はunity5メインで活動中。以前はツクールRGSSネタなど。

§ アニメーション軽量化!!

以前から言っていた「アニメーションの重さ」を解消できたので早速UP!

☆ 効果 ☆

・エンターブレインの修正「VX_SP1」を適用済み
・アニメーションのセル(16個まで表示出来るアニメ)を全フレーム通して
 セルの最大数を算出し、無駄なスプライトの作成を無くした。
・「アニメーションスプライトの設定」で、アニメ表示中に読み込む
 フレームの設定も、そのフレームの最大セル数しか繰り返し処理を行わない。
・アニメーションの基準位置が「画面」の場合は、純正では敵の数だけ表示するが
 それを敵1体のみ表示して残りの処理を中断。
・アニメーションの更新を4つから設定可能。
 純正ではアニメの更新は秒間15fps。


 例:敵が8体の場合「スターライト」は一見して画面全体に
 1つしか表示されないが、実は敵の数だけスターライトのアニメを表示している。
 それを8体の時でも1体にしか表示しないことで処理を軽減。
 見た目には全く変わらない。



という感じの仕様です。

「RGSS Sprite」でググっていて、どっかのページを見てふと思いついて

試しに画面全体表示のスキルを「敵1体」の場合と「敵全体」の場合で

敵キャラ8体という設定で攻撃をしてみた。

すると、スキルが敵1体の場合が敵全体の時と比べて軽いという現象が起こった。

それで「Scene_Battle」クラスの「display_normal_animation」のメソッドを見てみると

「画面」の設定があるにも関わらず「targets」を「for文」で敵の数だけ処理していた。

そこで、せっかくある「画面」の分岐を使って「for文」のところで敵1体に表示した所で中断処理を追加!

これで動作がかなり軽量化された。

他の無駄なスプライトを作成しないとかは一応入れているけど、テストの段階ではあんまり効果が

無かったような気がする。

新規プロジェクトで試してもアニメ表示中は「60fps」のままだったので、体感的にしか表現できない。

間違っても「マップの軽量化」ではないのであしからず。


2009/10/09/Fri 02:30:59  VX RGSS2/CM:0/TB:0/
new 明日いよいよ・・・ / MAIN / タスクバー復活! old

COMMENT

COMMENT POST

/
/
/
/



 
 内緒です♪

TRACK BACK

  この記事のURL:
   http://edlogtkool.blog36.fc2.com/tb.php/415-8b09c62d


MAIN
copyright © 2006 「EnDlEss DREamER」ブログ. All Rights Reserved.
Template by TAE-3rd☆テンプレート工房