Starling用の回転テクスチャ入りスプライトシートをFlashから書き出す


Starling1.5以降では、画像を回転させてスプライトシートに格納する処理に対応している。
のだが、Flash側が対応してくれない。

スプライトシートの書き出し処理は、インストールしたFlashのCommon/Configuration/Sprite Sheet Pluginsフォルダのjsflファイルで管理されているので、これを編集すれば手動で対応することができる。

まずStarling.plugin.jsflを開いて、pluginInfo.capabilitiesのcanRotateをtrueにする。
これだけで回転のチェックボックスが有効化して、Flash側で再配置してくれるようになる。

js,Starling.plugin.jsfl
    pluginInfo.capabilities = new Object();
    pluginInfo.capabilities.canRotate = true;
    pluginInfo.capabilities.canTrim = true;
    pluginInfo.capabilities.canShapePad = true;
    pluginInfo.capabilities.canBorderPad = true;
    pluginInfo.capabilities.canStackDuplicateFrames = true;

各セルの配置についての情報はframeExport関数のframeに返ってきて、プロパティを見ながらそれぞれのファイルフォーマットに変換される。
Starling1.5以降では<SubTexture>要素のrotated属性が設定されているものを回転済みテクスチャとして扱うので、他の属性追加処理と同じ要領で追加しよう。

js,Starling.plugin.jsfl
    if (frame.rotated != false) {
        s += '" rotated="' + frame.rotated;
    }

これでFlashからも回転テクスチャ付きのStarling用スプライトシートが書き出せるようになりました。よかったね。
あまり大した恩恵ではないけど、やって損はないので有効にしておくのがオススメ。