*Sprite Collection ---- #ref(spritecollectionreference.png) ---- &bold(){Commit} – コミット。最初にスプライトコレクションを作成したときや、スプライトを追加、削除した場合にはコミットをすること。 &bold(){Edit} –「sprite collection」のエディターを開きます。 各スプライトの拡張プロパティを編集できます。 &bold(){Texture refs} –使用する全テクスチャ一覧です.リスト中のテクスチャにNoneを設定することでテクスチャを削除できます。 既にセットアップ済みのスプライトを壊してしまうので、リスト内にあるスプライトの再追加は「決して」してはいけません。ゲーム中の文字列比較の遅延を避けるため、全てインデックス参照を使っています。 NONEを設定してテクスチャの削除した場合、テクスチャの数は減らない。インデックス参照に対応するため数自体を減らさない構造になっている模様。 若干スッキリしないが、整理しようと全削除→改めて使うテクスチャのみコミット。 などとすると、インデックスが壊れてしまい、すでにテクスチャを割り当てたスプライトの参照がズレてしまう。 &bold(){Sprite collection, Atlas materials and Atlas textures} – ゲーム中に参照するデータ. 「Commit」クリックで自動作成されます。 &bold(){Premultiplied alpha} –あらかじめ、アルファをrgbに乗算することで、描画時に高速化する手法。 加算合成のスプライトも同じスプライトコレクションに置き、同じドローコールで描画できるという、面白い副作用があります。さらに、αのエッジ部分の画像の乱れが低減します。欠点は、透明度の高いテクスチャではアルファブレンドの精密さを損なってしまうこと。半透明テクスチャが大量にある場合はチェックを外してください。 描画時のシェーダが tk2d\PremulVertexColor に設定されます。シェーダを独自に書く場合は注意が必要。 この方法を詳細に知りたい人には↓この辺が参考になるかと。 http://www.youtube.com/watch?v=dU9AXzCabiM&feature=player_embedded#! http://blogs.msdn.com/b/ito/archive/2010/06/04/pre-multiplied-alpha-blending-of-xna-game-studio-4-0.aspx http://blogs.msdn.com/b/ito/archive/2010/07/10/what-is-the-premultilied-alpha-part-1.aspx http://developer.apple.com/jp/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_concepts/chapter_2_section_9.html &bold(){Target height} and &bold(){Target Ortho Size} – あなたのゲームの「解像度の高さ」、スプライトを描画するカメラの「正射影の拡大率」を設定。 例)解像度が 640x480 で、正射影の拡大サイズが10なら、「Target height 」に 480 、「Target Ortho Size」に10を設定してください。解像度にあわせたスプライトが自動で作られます。 &bold(){Pixel Perfect Point Sampled} – テクスチャ間のパディングを無効にして、テクスチャフィルタをポイントサンプリングにします。ピクセルレートによるスケーリングなしに「pixel perfect」なスプライトにしたい場合に使います。 *Defaults category ---- ここでは、新しく追加されるスプライトのデフォルト値を設定します. これはまだコミットされていないスプライトにのみ反映されます。例えば、二つのグループのスプライトの設定を二回に分けてする必要がある場合、「TextureRefs」に最初の半分をドラッグし、デフォルト値を設定し「Commit」をクリックします。 その後もう半分をドラッグして、デフォルト値を設定し、「Commit」をクリックして反映させます。 &bold(){Additive} - 加算合成をするテクスチャに設定。「premultiplied alpha」が有効な場合にのみ使う。 &bold(){Scale} -スプライトのスケールのデフォルト値。「0, 0, 0」の場合は、基本のスケール値が適用される。他の値が設定されると、その値でスケールされる。例えば(2,2,2)とすれば、通常の二倍の大きさのスプライトになる。 &bold(){Anchor} - 新しく追加されるスプライトの原点のデフォルト値 &bold(){Pad} -新しく追加されるスプライトのパディングタイプのデフォルト値. &bold(){Collider Type} - 新しく追加されるスプライトのコリジョンタイプのデフォルト値 *Atlas category ---- &bold(){Max Texture Size} - 生成されるアトラスの最大テクスチャサイズ。最大値をオーバーする場合はスプライトコレクションは生成されません。最大値より小さい場合は、可能な限り小さいサイズでアトラスが作られます。ですので、割り当て可能なもっとも大きな値を設定すべきです。 &bold(){Multiple Atlases} – 複数のアトラスを作れるようにする. なるべくパラパラアニメーションのときだけ使うように(パラパラアニメなら、同一フレームに違うアトラスを使うことはないので、ドローコールは増えない)。「Multiple Atlases」を使う場合は、「Dice」機能は使えなくなる。 &bold(){Compression} – テクスチャの圧縮タイプを設定。 &bold(){Num Atlases} – 表示のみで編集不可。作成されたアトラスの数を表示。 &bold(){Atlas Width, Height} – 表示のみで編集不可。現在のアトラスの幅と高さを表示。アトラスのサイズは可能な限り小さく設定されます。なので、結果として64×64に収まるアトラスになったとしても、「Max Texture Size」を1024に設定しても大丈夫です。 &bold(){Atlas Wastage} – 表示のみで編集不可。 アトラスの残りの空き領域を示します。 なので数値が大きい場合は、アトラスのコストを増やすことなくテクスチャを追加できます。 *Sprite sheet import ---- 既にタイル状に規則的に並んでいるテクスチャを処理する。 タイルを自動分割してバラバラのテクスチャにしてから、テクスチャアトラス化する。 元になるテクスチャは別に2の乗数サイズである必要はないが、必ずタイルのサイズで割り切れるサイズでないといけない。 Sprite Collection -> SpriteSheets をクリックして設定する。 #ref(spritesheets.png) &bold(){Texture} – もとになるテクスチャ &bold(){Tiles X} – パーツの数(横) &bold(){Tiles Y} – パーツの数(縦) &bold(){Num Tiles} – タイルの総数 0なら総数TileX*TileY個として扱う。TileX*TileY 以下の数しかタイルがない時に設定する。 &bold(){Other parameters} – その他のパラメーターは、「SpriteCollection」の「Defaults」と同じです。 *Sprite collection editor ---- 「Edit」をクリックすると、「Sprite Collection editor」が開きます。さらに細かい設定ができます。 #ref(spritecollectioneditor.png) &bold(){Name} – スプライト名。デフォルトでは元々のテクスチャ名になっている。違うテクスチャを元にする同名のスプライトも作れるが、group1/name.のように命名してカテゴリーを分けする必要があり。 カテゴリー分けをしないで、同名のものを作っても片方が編集できなくなる。 &bold(){Additive} – 加算合成フラグ。 グロー用のスプライトや、パーティクルなどの際に。 &bold(){Scale} – スケール値。 &bold(){Anchor} – 原点。スプライトの原点位置を決めます. 「Custom」を設定した場合、手動で原点位置を設定できます。原点の変更は、プレビューパネルに平行して表示されます。 &bold(){Dice} – テクスチャをダイシングする。 テクスチャを格子状に分割して、スプライトも同様に格子状のポリゴンを使って描画する。余白等を省くことができるので、テクスチャが効率的に使える。 チェックをオン→width、heighで格子のサイズを決定→Commitすると。 右の「preview」パネルの「vertices」や「triangle count」が増加しているのが確認できる。 (テクスチャのサイズ以下の格子サイズでは変化しない) 生成されたアトラステクスチャも確認してみると、テクスチャがダイシング(賽の目状に分割)されているのが分かる。 例えば、立ち絵などで両腕を広げているような絵や、縦や横のサイズが2の階乗サイズから少しはみ出ているようなテクスチャ一枚だけなどは、そのまま使うとテクスチャサイズが大きい。 こういった場合にはダイシングを使って余白部分を省いたテクスチャアトラスを作るとテクスチャ効率が良い。 ただし、1スプライト辺りの頂点数が増えることによるデメリットもある。たとえば、[[F&Q]]にあるような、頂点数が異なるスプライトの切り替えにはパフォーマンスが低下する例など。 また回転やスケールアニメした場合などに格子の境目が見えてしまうようなこともあるので場合に応じて使うのが望ましいかと。(未検証。PadがExtendsに自動設定されるので、対策済みかも) &bold(){Pad} – パディング方法をデフォルト値から上書き。パディング処理が原因でエラーが出てる場合に、デフォルト値から変更するとよい -&bold(){BlackZeroAlpha}-アンチエイリアスのかかったスプライトなどで有効 -&bold(){Extends}-タイリングする場合に有効 Extendsは同色でパディングする?未検証 &bold(){Collider Type} – コリジョン設定。デフォルトはunset。 -'Unset' – デフォルト. コライダーを無視する。 -'None' – すでに割り当てられたコライダーがあったら削除する -'Box Trimmed' – ボックスコライダー。テクスチャの表矩形の囲むを自動で設定 -'Box Custom' – ボックスコライダー。値を手動で設定。 -'Polygon' – ポリゴンで衝突検出。 頂点エディットして、コリジョンをつけられる。 クリックで頂点座標移動。ダブルクリックで頂点追加。 &bold(){Collider Cap} - デフォルトでは, 「polygon collider」はポリゴン数を抑える上限が設定されません。この設定で、「正面のみ」、「背面のみ」、「その両方」という設定をつけられます。