TexturePackerはスプライトシートを作成するためのツールです。TexturePackerを使う時には、色々なオプションがありまして、オプションの意味が分からない場合はどの選択肢を選ぼうかかなり難しいでしょうか?本書では、TexturePackerのよく使う用語について解釈してみたいと思います。各用語の基本意味が分かっていればTexturePackerツールのお使いにお手伝いできましょう。
Output関連用語
TexturePackerはエクスポートを行う際、ファイルを2種類吐き出します。一つは生成されたテキスチャ(画像)で、もう一つがデータファイルです。
このデータファイルは先ほど指定したフォーマットに沿って出力されます。データファイルの中身は主に画像の名称やそれの座標、大きさ等と言ったデータです。
Data Format
出力するデータのフォーマットを指定します。プルダウンから表示されるリストを見ればわかるかと思いますが各種フレームワーク用の出力フォーマットが用意されています。
Data File
データファイルの出力先です。
Texture Format
出力されるテキスチャのファイルフォーマットを指定します。pngを初め、様々なフォーマットがサポートされています。
Texture File
テキスチャの出力先です。
Image Format
出力されるテキスチャの 画像フォーマットを指定します。これもまた様々な画像フォーマットがサポートされていますが、主に使用するのは以下の3つかと思います。
- RGBA4444
- RGBA8888
- RGB565
どのフォーマットも一長一短ですが、筆者は基本的にはRGBA4444を使用しています。RGBA8888に比べれば画質は落ちますが、正直そこまで変わりません。TexturePacker上では結構わかりやすく変化しますが、iPhone上では特に気になりません。ちなみに通常デフォルトで読み込まれる画像はRGBA8888です。RGBA8888からRGBA4444にするだけで画像の容量が半分に抑えられるというメリットがあります。ゲーム等、画像や音を大量に使うアプリを作る際、容量を抑えるにはかなり有用な手段です。
RGB565はα値を使わない背景などに使ったりすることがありますが、費用対効果的に基本的には全部RGBA4444で統一して出力しています。
AutoSD
AutoSDはRetina用と非Retina用のスプライトシートを吐き出すために使う設定です。今ではiPhone3G/Sに対応することはあまり無いかもしれませんが、もし対応したい場合はこのAutoSDを使えば容易にできます。
Geometry(幾何)関連用語
Geometryの設定項目ですが、出力するテキスチャの形を設定して行きます。設定項目の名称通りの物が多いので簡単に説明していきます。
各項目を説明する前にまずそもそも何故スプライトシートというものに画像を落とし込むのかということを説明したいと思います(Geometryで設定する項目に関係してくるため)。スプライトシート化することのメリットはまず画像ファイル自体の容量を小さくするということもあるのですが、もうひとつ大きな理由としてはOpenGLの仕様にあります。GPU内に画像をロードする際、画像は必ずPOT(2のべき乗、Power of Two)のサイズでロードされます。仮に33×33の画像があったとしても、それはGPUのメモリ上では64×64でロードされます。これはメモリの無駄遣いとなってしまうため、スプライトシートを用いて、なるべくたくさんの画像を2のべき乗内に納めようという思惑があります(もちろん他にもメリットはありますがここでは割愛させていただきます)。
Max size
Max sizeはテキスチャ自体の最大サイズです。ここで指定したサイズを越えてしまう量(大きさ)の画像を取り込むと、右下にエラーが表示され、はみ出た画像は出力されません。端末によって読み込める最大のテキスチャサイズが決まっていたりするので、チェックしてサイズを決めましょう。iPhone4以降の端末でしたら2048×2048をサポートしているので2048×2048に設定しておいて問題ないでしょう。
Fixed size
Fixed sizeは特定のサイズに必ずしたい場合に設定します。例えばどんな画像を入れても512×512にしたい場合はFixed sizeを512×512に指定しておきます。この場合64×64の画像一枚だけいれた場合でも512×512のテキスチャとして出力されます。
Size constraints
Size constraintsではサイズの制限を指定できます。POTに指定すると必ず2のべき乗のサイズで出力されます。Any Sizeに指定すると画像が収まるぴったりのサイズで出力されます。NPOTに指定するとPOTでないサイズつまりAny SizeからPOTを除外したものが出力されます。フレームワークや端末によっていはPOTのものしかサポートしない場合もあります。
Force squared
Force squaredをオンにすると必ず四角形のテキスチャが出力されます。
Force word aligned
Force word alignedはテキスチャの各列が必ずメモリ上のワードをフルに使う様指定します。32ビットの画像フォーマット(RGBA8888等)を使用している場合は既にword alignedですが、16ビットの画像フォーマットを使うとそうとは限りません。つまり16ビット余ることがあるということです。それを必ず余った分の16ビットも使う様に設定するということです。iPhoneの場合はこれはオンにしておきます。
Pack
Packはテキスチャをもっとも小さくするために画像の配置を決めるためのアルゴリズムを指定します。Bestで問題ないかと思います。
Scale
Scaleはその名の通り、画像をスケールします。つまり出力される画像を指定した倍数でかけたサイズで出力します。特に理由が無い限り1で良いですが、Androidなどで利用する場合は重宝するかもしれません。
Scale mode
Scale modeは画像をスケールする際に使用するアルゴリズムを指定します。基本的にこちらはSmoothで良いかと思います。画像を縮小する際は間違いなくSmoothが一番良いです。