スプライト

概要

Unityのスプライトは2D用のゲームオブジェクトのことです。
スプライトを使用するとアニメーション用のテクスチャがあれば
簡単にアニメーションさせることが可能となっていたりと
2Dゲームをサポートするための機能が複数あります。

スプライトの作成

スプライトの作成はHierarchyからの作成か、 テクスチャ画像から作成できます。

Hierarchyから作成

スプライトの作成はHierarchy => 2DObject => Spriteを 選択することで作成できます。 unity_0095 unity_0095 作成されたら「NewSprite」という名前でHierarchyに作成されます。 unity_0096 unity_0096 新しいスプライトはテクスチャを貼り付けていないので、 作成された内容はSceneビューでは分かりにくくなっています。 unity_0097 unity_0097

テクスチャから作成

テクスチャから作成はAssetsにあるテクスチャを使用します。 作成はHierarchyにD&Dするか、SceneビューにD&Dする方法があります。 ・HierarchyにD&D unity_0098 unity_0098 ・SceneビューにD&D unity_0099 unity_0099

テクスチャ設定

スプライトとしてテクスチャを使用するには設定を行う必要があります。
以下のテクスチャを使用していますので、リンクからダウンロードして下さい。
bomb_move.png

テクスチャ追加

テクスチャの追加は「Import New Assets」と「直接インポート」があります。

Import New Assets

Import New AssetsはUnityの上段メニューのAssetsにあります。 unity_0100 unity_0100 選択したらウィンドウが表示されるので、追加するテクスチャを指定します。

直接インポート

直接インポートはPC上にあるテクスチャをUnityのAssetsに D&Dすることで追加されます。 unity_0101 unity_0101

タイプ確認

テクスチャは追加した段階でそのままスプライトとして使用できないことがあります。 使用できるか、できないかはテクスチャのInspectorにある「TextureType」を確認します。 unity_0102 unity_0102 スプライトはTextureTypeが「Sprite(2D and UI」になっている必要があるので、 違うタイプに設定されていたら変更して下さい。

その他のパラメータ

Sprite Mode

Sprite Modeはテクスチャを全体を一枚として扱うか、 複数のスプライトとして分割して扱うかを決めます。 分割の詳細は以下の「■分割」の項目で説明します。

Packing Tag

Packing Tagはスプライトを分類するために使用されるタグです。 このタグは「スプライトパッカー」と呼ばれる機能で使用されますが 今回使用する予定はありません。

Pixels Per Unit

Pixels Per UnitはUnity空間上の1単位あたりのピクセル数を指定します。 1単位とは以下のようにUnity空間の1マス分のことです。 unity_0103 unity_0103 100マスの場合は1単位が100ピクセルということです。 この値はスプライト毎に変更すると同じサイズのテクスチャだったとしても Unity上ではサイズがことなるので統一した方が混乱を避けられます。 以下は青の四角がPixelsPerUnitが100、赤がPixelsPerUnitが50の表示です。 青は100なので1マスに収まっていますが、50は1マス50ピクセルなので、 縦、横2マスを使用しています。 unity_0104 unity_0104

Pivot

Pivotは画像の位置指定の基準となる場所を指定できます。 デフォルトは「Center」になっており、テクスチャの中心が原点になります。 以下は青がCenter、赤がTopLeftとしています。 ※座標はどちらも(0, 0, 0)です。 unity_0105 unity_0105

Sprite Editor

Sprite Editorは分割を実行するためにUnityが用意しているツールです。 こちらも「■分割」の項目で説明しますので、ここでの説明は省略します。

Generate Mip Maps

Generate Mip Mapsはミップマップ機能を使用するかどうかの指定します。 ミップマップは3D機能において遠くにあるテクスチャの画像を 要領の小さいテクスチャに差し替えて処理の高速化をはかる手法です。 なので、2Dとして使用するスプライトでは チェックマークを外しても問題ありません。 ※ミップマップに詳細を記述しています。

Filter Mode

Fileter Modeは画像拡大時等に実行されるピクセルの補間処理の指定をします。 Point、Bilinear、Trilinearの順で拡大時にピクセルが滑らかに描画されます。

Max Size

Max Sizeはテクスチャの最大サイズを決めます。 例えば2048の場合、縦または横のサイズが 2048を超えるテクスチャを指定した場合、 自動的に2048収まるように縮小されます。

Format

Formatはテクスチャの種類を指定します。 ComposedとCrunchedは圧縮、16bitsは1ピクセル16bit、 True Colorは1ピクセル32ビットです。 テクスチャの色をそのまま使用するのはTrue Colorですが、 ファイルサイズの都合で、ComposedかCrunchedを選択します。 Composedは一律同じ圧縮率でCrunchedは圧縮率が選択できます。

分割

ゲームではテクスチャ1枚で複数の絵を詰め込むことが多々あります。
Unityではこのテクスチャに対して1つ1つの絵をスプライトとして
作成できる機能を用意しています。
	
unity_0106
unity_0106

モード変更

分割するテクスチャのSprite Modeを「Single」から 「Multiple」に変更します。 これで複数の絵がテクスチャに設定されていることになります。

分割方法

モード変更を行っただけでは複数の絵があるという設定をしただけで、 分割はされていません。 実際の分割はInspectorのSprite Editorからツールを起動して設定を行います。 unity_0107 unity_0107

分割設定

分割設定はツールの左上にあるSliceを選択してそちらにある 内容を変えることで分割できます。 unity_0108 unity_0108

分割の種類

分割方法には「Automatic」「Grid By Cell Size」 「Grid By Cell Count」があります。

Automatic

Unityが解析を行い自動で分割を行ってくれます。 ・Method Methodは自動分割の方法を選択できます。 ・Delete Exsiting 分割時に自分で追加、調整したスプライトは削除されます。 ・Smart 分割時に自分で追加したスプライトは残りますが、 調整したスプライトはUnityが再調整します。 ・Safe 分割時に自分で追加、調整したスプライトの 内容は残り続けます。

Grid By Cell Size

縦横の幅を指定して分割を行います。 ・Pixcel Size Pixcel Sizeは分割するピクセルのサイズを指定します。 分割する要素が検出されない場所は分割されません。 ・Offset Offsetは分割開始位置をテクスチャの左上を (0, 0)として指定します。 下の図のように(0, 0)はテクスチャの左上から(0, 0)の 位置から分割を開始し、(100, 0)ではテクスチャの 左上から(100, 0)移動した位置で分割を始めます。 unity_0109 unity_0109 ・Padding Paddingはスプライト間の空白領域のサイズを指定します。 下の図のように(0, 0)ではスプライト間の空白はありませんが、 (30, 0)の場合、スプライト間でX軸方向に30の空白領域が 設けられています。 空白領域の部分は分割する要素があったとしても無視されます。 unity_0110 unity_0110

Grid By Cell Count

縦横の個数を指定して分割を行います。 もし、分割する領域内に分割要素がなかった場合、 その領域は分割対象として見られません。 ※Offset、Paddingは「Grid By Cell Size」と同じ内容です。 ・Column & row Column & rowは縦横の分割数を指定します。 ※Cが横、Rが縦の数です。 下の図は(C, R)=(8, 2)となっていますので、 横8、縦2で分割します。 結果的に横のスプライトが5になっているのは テクスチャの右側に分割要素が見つからなかったためです。 unity_0111 unity_0111 ・Pivot Pivotは全ての種類に共通の設定です。 内容はテクスチャ設定と同じで分割したスプライトの 表示位置を指定します。 Pivotの指定は分割後に個別に設定することも可能です。 ・Slice Sliceも全ての種類共通で設定した内容を反映して 絵を分割して複数のスプライトを作成します。

個別調整

分割されたスプライトはスプライト名や、矩形の範囲などの 調整を行うことが可能です。 unity_0112 unity_0112

選択方法

調整したいスプライトの領域をクリックすると クリックしたスプライトが選択状態になり、 調整パラメータのウィンドウが表示されます。 ・Name スプライトの名前です。 基本は「テクスチャ名_スプライト番号」で作成されます。 ・Position スプライトの左上頂点の座標(X、Y)と矩形の幅と高さ(W、H)です。 ・Border Borderは境界線の設定を行うことができます。 これは9Silceという機能を使用する際に必要なパラメータです。 9Sliceを説明する際に改めて記述しますので、 ここでの説明は省略します。 ・Pivot 内容はテクスチャ設定と同じでスプライトの表示位置を指定します。 分割したスプライトは1つ1つを指定して使用することも可能ですし、 複数のスプライトを1つのアニメーションとして再生することも可能です。 unity_0113 unity_0113