前回の続きです。
画像素材のファイル容量が大きいことは、まずゲームの進行に影響を及ぼしていましたが、後にアプリ自体の
容量による問題の引き金にもなりました。
今回は、そのことについて書いていきます。
素材をスリムに
画像素材の PNG をそのまま使っていては問題の解決にならないので、”Starling” が直接読み込める
画像フォーマットについて調べてみました。
Textureクラスが直接読み込める画像は、
・PNG
・JPEG
・JPEG-XR
・ATF
のようです。
上の2つはおなじみの画像フォーマットですが、聞きなれないのが下に2つあります。
JPEGは背景素材のフォーマットとして使うには良さそうですが、立ち絵素材にはアルファチャンネルが
存在するので、JPEGは見送り。
となると、残りは2つ。それぞれのフォーマットについて調べてみました。
JPEG-XRについて(Wiki)
ATFについて(Adobe Developer Connection [ADC])
要約すると、
JPEG-XR は、アルファルチャンネル付き JPEG
ATF は、GPUに最適化された画像フォーマット
のようです。
せっかく Starling を使うので、ここはGPUに最適化された ATF を使ってみることに。
ATF を使うにあたって注意する点は、”AIR SDK” のバージョンを3.4以上にすることと、
Starling を使う場合は、バージョンを1.2以上にすること。
バージョンを変更するだけなので、これはすぐに対応できました。
準備
いざ変換しようと思い、調べてみると。。。
ATF に変換する方法がない!!(2012年9月ごろ)
当時、ATF はフォーマットこそ決まっていれども、まだソフトが対応してない時期だったようです。
ファイル構造の仕様はちらほら公開されていたので、自力で変換ソフトをこしらえようかと
右往左往してると、タイミングよく “ATF SDK” なるものが公開されました!!
(詳しくは、 akihiro kamijo – ATF SDK の公開)
現在、”ATF SDK” は、Adobe が公開している Game Developer Tools の一つとして、
“Adobe Gaming SDK” の中に、”ATF Tools” として含まれています。
前述のものは、先行公開みたいなものだったのではと憶測。
変換ツールは、コマンドラインで動作するいたってシンプルなもの。
変換しなければならない画像は、1000枚弱。。。
一枚一枚変換してたら日が暮れてしまうので、フロントエンドかbatが
ないかと思って探していると、
Stage3D compressed textures – Introducing the ATF SDK by Thibault Imbert
のコメント欄ににbatを発見。
ありがたく、早速使わせていただくことに。
今回は、なるべく画像をスリムにということでPCでのデバッグ用とAndroid実機用に
・ミップマップなしDXT圧縮ATF
・ミップマップなしETC1圧縮ATF
に分けて出力しました。
ATF の利点の一つに、一つのATFファイルで異なった環境に対応できる事です。
これはとても優れた事なのですが他機種への移植予定がない場合は、ただただ
サイズが肥大するだけなのでこうのようにしてみました。
ミップマップも今回の場合、素材を拡縮するようなことがないのでカット。
ATFに変換
変換ツールと、batファイルが揃ったので一気に素材を変換してみる。
が、
ここで問題発生。。。
デバッグ用の DXT圧縮のATF は問題なく出力出来たのですが、
Android実機用の ETC1圧縮のATF を出力中に png2atf.exe がエラー。
数枚単位での変化には問題なかったので大量のファイルを一気に変換するのが悪いのか、
はたまた変換元の素材に問題があるのか。。。
エラーが発生した、ファイルを個別に変換してみても問題ナシ。
ヽ(`Д´#)ノ ムキー!!
となるも、冷静になって “ATF SDK” の中を覗いてみると
・windows
・mac
・linux
とそれぞれのOS用のプログラムが含まれてました。
試しに linux(ubuntu) で数枚の変換を試してみた結果、どうやら問題なく変換できるもよう。
windows でのエラーの原因を追求するよりと思い、先ほどのbatファイルをシェルスクリプトに書き換えて、
linux(ubuntu) での変換に。。。
ドキドキ見守るも、こっちはエラーもなくあっさり全ファイルを変換することが出来ました。
結局のところ、windows でのエラーの原因はわからなかったので、知っている方いましたら教えてください。
(2013/03/05 改めて変換したら、問題ありませんでした。。。)
長くなりましたが、ATF素材が無事揃ったので次回は ATF を実際に使う過程について
書いていきたいと思います。
Air for AndroidでADVゲーム。
非常に興味深いテーマですね。
正にこんな記事を探してたいました。執筆心から感謝です。
これからも、AirでのADV制作に関する情報を楽しみにさせて頂きます。
コメントありがとうございます。
続きを書くのが遅くなっていて申し訳ないです。
ゲームを作ってからだいぶたってしまい所々古い情報になってしまうかもですが、
何かの役にたってもらえば幸いです。