AndEngineでゲーム開発の際、素材をマップチップにまとめたくなるのですが、数々のフリーのソフトを試すもどれもいま一つでした。が、条件付きではあるものの無料で使える、TexturePackerがかなりいい感じでした。
有料のPro版を無料で使う
自分のBlogで紹介記事を書くだけで、Pro版$39.95が無料で使えます。
※ちなみに僕は紹介記事無しの状態でライセンス発行されたので、記事を書かないままでそのまま今日まで使い続けていたのですが、「そろそろ記事書いてよ~」という催促メールが来たという次第です。
また、おまけでPhysicsEditorという、Box2D用の多角形のshapeを作るためのツールも無料で使えるみたいです。
使い方
・1キャラクター分の動きをまとめたマップチップを作成
1キャラクターで1ファイルな感じ
・TexturePackerにドラッグ&ドロップ
・xmlファイルとsprite sheet(どちらも/assets内)とjava(/src内)の出力先を設定
・publish sprite sheetをクリック
・こんな感じでID指定するだけで、画像取得できまする
spritesheetTexturePack = new TexturePackLoader(this.getTextureManager(), "gfx/spritesheets/").loadFromAsset(getActivity().getAssets(), "texturepacker.xml"); spritesheetTexturePack.loadTexture(); this.mTexturePack = spritesheetTexturePack.getTexturePackTextureRegionLibrary(); mZoomInRegion = this.mTexturePack.get(texturePacker.ZOOM_IN_ID); mZoomOutRegion = this.mTexturePack.get(texturePacker.ZOOM_OUT_ID);
BitmapTextureAtrasとか使わなくてもいいので、楽だしすっきりします。
注意点
・AndengineはAllow rotationに対応していないので、チェックを外す
・(TexturePacker使用時に限らず)読み込んだTextureは必ずunload()とclearTextureAtlasSources()する
・.pngや.jpg等画像ファイルであれば、非圧縮ファイルの1MB制限は気にしなくてもOK
(知らずにassets→data/data/filesへ展開して、読み込みできない!!ってハマった時に気付いた)
ところで最近、libGDXという2Dゲームエンジンがあると知ったのですが、AndEngineよりもFPS出るようです。
ただ、結構色々自分で実装しないとダメみたいで、まだちょっと手が出せてない感じなのですが、このまま様子見かな~。