PSD Importer での SpriteRect データ使用
PSD Importer は、SpriteRect データを独立した 3 つのセットとして保存することができ、各セットは以下の Importer プロパティ設定の 3 つの組み合わせにそれぞれ対応します。
- Sprite Mode を Single に設定した場合。
- Sprite Mode を Multiple に設定した場合。
- Sprite Mode を Multiple に設定し、Individual Sprites (Mosaic) を有効にした場合。
データの各セットは永続化され、他のセットのデータに影響を与えたり、他のセットのデータを上書きしたりすることはありません。つまり、同じソースファイルに対して、インポーターの設定ごとに異なる SpriteRect データを保存することができます。ソースレイヤーの元の レイヤー ID が同じである限り、ソースファイルの画像の寸法と位置を変更しても、SpriteRect データは変わらず維持されます。
SpriteRect データの変更
SpriteRect は、インポートしたソースファイルから Unity によって生成されたテクスチャ上のスプライトの位置を定義します。各 SpriteRect の位置とサイズは、Sprite エディターで変更できます。
SpriteRect の移動
例 1: 連結されたスプライトシートテクスチャ上にある "head" スプライトの元の SpriteRect 位置。
例 2: SpriteRect の角をドラッグして寸法と位置を変更するか、Sprite パネルで座標と寸法を入力します。
テクスチャ上で変更された SpriteRect の寸法と位置は、シーンビューで各スプライトに反映されます。
![]() |
![]() |
---|---|
SpriteRect データを変更していない、元のキャラクターのプレハブと、その "head" スプライト。 | "head" スプライトの SpriteRect データを変更したキャラクターのプレハブ。 |
SpriteRect はソースレイヤーの位置に従う
Individual Sprites (Mosaic) インポーター設定を有効にすると、PSD Importer はインポート時にソースファイルのさまざまなレイヤーをまとめて配置して 1 つの連結テクスチャを形成します。インポーターは、インポートされたこれらのレイヤーごとに SpriteRect を生成します。連結されたモザイクテクスチャのどこにレイヤーが配置されても、SpriteRect はその関連付けられたレイヤーの位置に従います。
前の例: SpriteRect を元の位置から移動させた後の "head" レイヤーの SpriteRect。
後の例: エディターに再インポートする前のソースファイルでは、一部のレイヤーが非表示になっています。再インポートされたテクスチャは元のものとは異なりますが、"head" レイヤーの SpriteRect は新しいテクスチャでもソースレイヤーの配置に従っています。
ソースファイルまたは画像のサイズ変更
SpriteRect のサイズと位置は、ソースファイル内のソースレイヤーの画像またはキャンバスのサイズを変更しても変わりません。Sprite エディターで SpriteRect のサイズと位置を手動で編集するか、Automatic Reslice オプションを選択して適用し、ソースファイルから SpriteRect を完全に再生成する必要があります。
変更前: "head" レイヤーから生成された "head" スプライトの SpriteRect の元の位置とサイズ。
変更後: "head" レイヤーのサイズを増やした後も、SpriteRect の位置とサイズは同じままです。
SpriteRect のデータは、手動で SpriteRect を削除するか、インポーターの設定で Automatic Reslice オプションを選択して適用するまで持続します。これを行うと、Unity は現在の SpriteRect データのセットに対してユーザーが行った変更をすべて破棄し、現在のソースファイルからすべての SpriteRect を再生成します。
ソースファイルの変更と SpriteRect データへの影響
ソースファイルへの変更 | SpriteRect データへの影響 |
---|---|
新しいレイヤーの追加またはレイヤーの可視性の有効化 | PSD Importer は、新しいレイヤーまたは新しく表示されたレイヤーから、関連する SpriteRect とともに新しいスプライトを自動的に生成します。 |
レイヤーの削除またはレイヤーの可視性の無効化 | PSD Importer は、関連付けられているスプライトおよび SpriteRect をプロジェクトファイルから削除します。 |
レイヤーの名前変更 | デフォルトでは、SpriteRect はそのソースレイヤーの新しい名前をコピーします。ただし、Sprite エディターで SpriteRect の名前を変更した場合は、変更後の名前が保持され、ソースレイヤーの新しい名前はコピーされません。 |
レイヤーまたはキャンバスのサイズの変更 | ソースレイヤーのサイズが変更されても、関連する SpriteRect のサイズと位置は同じままで、ソースレイヤーに加えられた変更は反映されません。 ソースレイヤーに加えた変更を SpriteRect に反映させるには、Sprite エディターで SpriteRect の寸法を手動で編集するか、PSD Importer の設定に移動し、Automatic Reslice オプションを選択して適用します。 |
名前の衝突エラー
名前の衝突エラーは、2 つ以上のレイヤーの名前が同じである場合に発生します。これは、以下の理由で起こることがあります。
- インポートしたソースファイル内の 2 つ以上のレイヤーの名前が同じになっている。ただし、Photoshop に同じ名前の グループレイヤー があっても、この問題は発生しません。
- PSD Importer によってソースファイルに作成された新しいレイヤーの名前が、ユーザーが作成または変更した SpriteRect の名前と同じである。
- レイヤーの名前が、ユーザーが変更した SpriteRect と同じ名前に変更された。
- 既存の SpriteRect と同じ名前の非表示レイヤーが表示され、Unity でこれをインポートした。
名前の衝突が発生した場合、一方の SpriteRect は元の名前を保持し、他方には (1 から始まる) 連番が付加されます。どちらの SpriteRect が元の名前を保持するかは、以下の優先順位に基づきます。
- ユーザーが作成または変更した SpriteRect。
- ソースファイルの最初のレイヤー (レイヤースタックの一番下から順に)。
- 現在、プロジェクト内にある SpriteRect。