Sprite Masks
タイルマップ( Tilemap )

スプライトアトラス

アセットのスプライトアトラス

スプライトアトラスはエディターのメニューで作成され、プロジェクトのフォルダーにアセットとして (*.spriteatlas) 格納されます 。

統一された設定

スプライトアトラスアセットは、パックされたテクスチャの一連のテクスチャ設定を提供します。アトラスにパックされたスプライトのテクスチャ設定にかかわらず、結果のアトラステクスチャはアトラスアセットの設定に一致するものになります。

ランタイムアクセス

スプライトアトラスアセットは、ランタイムにアクセス可能です。

バリアント

ユーザーは別のスプライトアトラスアセットを作成し、それをプロジェクトの 1 つの既存のスプライトアトラスのバリアントとして宣言できます。次に、マスターのアトラステクスチャを複製し、乗数によってサイズを変更します。

Sprite Packer Settings

The Sprite Packer is disabled by default but you can configure it from the Editor settings (go to Edit > Project Settings > Editor). You can change the sprite packing mode from Disabled to either:

  • Enabled for Builds, when you want to use packing for builds only and not when in Play mode.
  • Always Enabled when you want the packed Sprite to resolve its texture from the Sprite Atlas during Play mode, but resolve its texture from the original Texture during Edit mode.

Use Always Enabled when testing packed Sprites loaded from an Asset Bundle during Play mode.

スプライトアトラスの作成方法

スプライトアトラスは Unity プロジェクトのアセットタイプの 1 つです。Project ビューで作成し、すぐに使用できます。また、メインメニューで Asset -> Create -> Sprite Atlas を選択して作成することもできます。

プロパティー

プロパティー 機能
Type アトラスのタイプを Master か Variant Atlas に設定します。
Include in build これを有効にすると、アトラスアセットは常にビルドに含まれます。
Allow Rotation これを有効にすると、パックするためにスプライトを回転できます。
Tight Packing これを有効にすると、長方形パッキングは行いません。
Read/Write Enabled これを有効にすると、スクリプトでテクスチャデータの読み込みが可能になります。無効にすると、スクリプトでテクスチャデータの読み込みを行うことはできません。
Generate Mip Maps これを有効にすると、ミップマップ生成が可能になります。ミップマップは縮小されたテクスチャで、画面上でとても小さくテクスチャを表示する場合に使います。
Filter Mode テクスチャをどのようにフィルタリングするかを選択します。
Platform ごとのオーバーライドパネル このセクションを使用して、デフォルトに設定できます (Default を選択します)。それから、特定のプラットフォームのボタンを押してそのプラットフォーム用にオーバーライドします。
https://docs.unity3d.com/Manual/class-TextureImporterOverride.html
Objects For Packing パックするアトラスに加えるオブジェクト。フォルダー、テクスチャ、個々のスプライトを加えることができます。

アトラスにするアセットの指定方法

スプライトアトラスには、フォルダー、テクスチャ、スプライトを指定することができます。フォルダーを丸ごとスプライトアセットに指定することができます。サブフォルダーを含むそのフォルダー内のすべてのテクスチャがパックされます。個々のテクスチャを指定するときは、定義されたスプライトすべてが含まれます。 1 つのスプライトをアトラスに指定し、同じテクスチャ内の他のスプライトを指定しないことも可能です。

  1. アセットをアトラスにするリストに加えるには、アトラスアセットを選択しリストに加えるか、インスペクターのリストにProject からドラッグアンドドロップします。フォルダー、テクスチャ、スプライトをアトラスに追加することができます。

  2. 生成されたアトラスの設定を行います。設定を変更すると、このアトラスには常に変更の印がつけられ、パックする段階で再びパックされます。

  3. パックされたアトラスは、インスペクターの Pack Preview ボタンを押すとプレビューできます。これにより、このアトラスのパッキングが始まります。パッキングが完了すると、テクスチャがプレビューセクションに表示されます。

  4. 設定が変更されたすべてのアトラスは、プレイモードに入る前にパックされます ( Always Enabled が選択されている場合)。

縮小したバリアント (HD/SD)

ユーザーは別のスプライトアトラスアセットを作成し、それをプロジェクトの既存のスプライトアトラスのバリアントとして宣言できます。次に、マスターのアトラステクスチャを複製し、乗数によってサイズを変更します。

スプライトアトラスバリアントの作成

  1. Set the Type for the Sprite Atlas to Variant.

  2. Assign an atlas to the Master Atlas slot.

  3. バリアントの Scale 係数を設定します。値は 0.1 から 1 の範囲です。

  4. マスターでなくバリアントアトラスをデフォルトとしてバインドするには、バリアントの Include in Build オプションをチェックし、マスターのオプションのチェックを外します。

  5. 両方をチェックすると、アトラス (master/variant) のうちの 1 つをランダムに入れます。両方ともチェックを外し、後述の遅延バインドを行う場合もあります。

ランタイムのスプライト列挙

  1. 変数としてスプライトアトラスを取るカスタムコンポーネントを作成します。

  2. 任意の既存のスプライトアトラスをフィールドに指定します。

  3. プレイモードにするか、プレイヤーを実行します。

  4. 変数にアクセスします。すると、.GetSprites プロパティーを呼び出し、このアトラスにパックしたスプライトの配列を取得できるようになっています。

遅延バインド

スプライトは実行時に「パックされているが、どのアトラスも参照していない」状態で開始でき、アトラスがバインドされるまで空白で表示されます。この挙動の利点は、例えばウェブからダウンロードしたアセットバンドルなど、起動時にアトラスのソースが利用できない場合に、ユーザーが後からバインドを行うことができる点です。

呼び出しを使った遅延バインド

  1. スプライトが任意のスプライトアトラスにパックされていても、スプライトアトラスがデフォルトとしてバインドされていない場合 (例えば、Build in Include オプションのチェックが外されている場合)、スプライトはシーン内では表示されません。

  2. ユーザーはコールバック SpriteAtlas.atlasRequested を受け取ることができます。

  3. このデリゲートメソッドは、バインドするアトラスのタグと、スプライトアトラスアセットを取り込む System.Action を提供します。ユーザーは、任意の方法 (スクリプト参照、Resources.load、アセットバンドル) でアセットを読み込み、そのアセットを System.Action に使用できます。


Sprite Masks
タイルマップ( Tilemap )