Access: 2028179
p-lux.net Ver.10.00 by Ryogo
吉里吉里2のレポート
ms。
ミリセコンドの略で、0.001秒に相当する値です。

ゲームプログラマとしては、この微々たる差が重要視されます。
ゲームのフレームレートは基本的に60FPS――つまり、1秒間に60回画面が更新されるという意味合いで、多くのゲームは、画面の更新回数にあわせて計算も回転されるケースが多いです。
(場合によっては、計算は毎秒120回で画面更新は60回などもある)
1秒間に60回計算すると言う事は、すなわち、約0.016666...秒で一回の処理を終わらせないといけません。
それをオーバーするといわゆる処理落ちになります。

さて、最近吉里吉里2でアニメーションをさせる仕事と言うのがあったで、その際に計測したデータを折角なので公開しておきます。
本来ゲームのアニメーションといえば、キャッシュと言う形で予めメモリに画像データを読み込ませておいて、再生されるのが一般的ですが、例えば、1024x768アルファチャンネル付きの画像を1枚所持するのに必要なメモリは、3145728Bです。
これは、pngなどで圧縮状態にあっても、メモリに移転された時点で展開されるので32bitBmpとほぼ同じ容量になります。
これだと、512MBのメモリのマシンの場合、162枚確保した時点でアウトになります。
(厳密にはOSや他のアプリケーションがメモリを使用しているのでもっと少ない)
その為、場合によって、リアルタイムでHDDからメモリに展開して再生する必要があります。

その際、吉里吉里2で、1秒間に30FPSのアニメーションをする場合、xp3アーカイブの暗号を解いて、データを引っ張り出し、そのファイルがpng等だったら更に解凍して、メモリに転移し、それを画面に表示する。
それまでの作業を0.033秒でこなさなければいけないことになります。
最新のパソコンだったりすればなんら問題ありませんが、PCはユーザーによって環境が違います。
常駐ソフトなども考慮すると、パワーはかなり限られたものになって来るでしょう。

そういうことを考えると、いかに軽い方法でアニメーションをさせるかと言うことになります。
場合によっては、半分のサイズを2倍にするなども考慮しなければいけません。
全部、BMPにすれば問題ないとも思われますが、それだと今度はディスクに入らなくなったりもします。

そういうことで、各種処理にかかる時間を計測しておく必要があり、サクっと計測したのでその結果を記載しておきます。

今回、検証に使用したパソコンのCPUはPentium4 2.60GHz。
Core2Duo 2.33GHzの場合は、全ての処理が約1/4で完了します。

また、処理は基本的に100回ループ。
キャッシュの機能が働かないように、100枚分の画像を用意して検証しました。

■各画像の展開速度
画像サイズは1024x768。
 BMPTLG5TLG6PNG
バラのファイル1964ms5331ms7551ms14589ms
xp3化1767ms5566ms7495ms14509ms
xp3化(暗号)2859ms5846ms7658ms14792ms
xp3化(暗号+圧縮)7855ms6333ms8455ms15275ms
参考:【画像形式について】

■StretchCopyの速度
512x384の画像を1024x768に引き伸ばした場合。
stNearest516ms
stFastLinear1844ms
stLinear109748ms
stCubic123673ms
参考:【stretchCopy - 拡大縮小コピー】

●おまけ1:Layerクラスのnew
100回行って、34ms。
尚、メモリの消費量もたいした事ないで、大量生産しても問題ありません。

●おまけ2:32x32のレイヤーサイズを1024x768に引き伸ばす
setSize(1024,768)を100回繰り返して、516ms。

●おまけ3:画像のメモリの消費量
【graphicCacheLimit - 画像キャッシュ制限】に書かれていますが、 実際に、24bitPng(フルカラー)と、8bitPng(インデックスカラー)をメモリに持たせて見たところ、吉里吉里2の場合、使用メモリ容量は同じでした。



今回使用したXP3の暗号化は、最も軽いとされる単純なXORです。
気になるのは、BMPの暗号化した時、それ以外のモノに比べて速度が著しく低下している点。
(BMPは1000ms程度増えているのに対し、他のは200ms程度で済んでいる) これは、BMPそのものの容量が大きい為、XORする部分が多いというモノから来るものだと推測できます。
これが例えば黒一色などの画像で、BMPは2.25MB、他の画像形式は0.01MB等であったら、この差は更に露骨かしたことでしょう。
ちなみに今回は使用したデータの容量は、BMPは2.25MB、TLG5は561KB、TLG6は375KB、PNGは493KBです。

ほか、BMP+暗号化+圧縮より、TLG5+暗号化+圧縮の方が早いと言うのも見物です。
吉里吉里2にはある一定以上のサイズを圧縮しないという仕様が標準装備されているので、そちらも有効的に活用していきたいところ。

【追記】
申し訳ございません、上記値は不確定な可能性が出てきました。
詳しくは下の記事をご覧ください。
【今は無きあの星 -> 記述:吉里吉里2のキャッシュ(2010年02月08日)】

© 2003-2025 p-lux.net, Ryogo.

ページトップへ