テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Unity2d機能、スプライトの使い方

2D機能の使い方について、もう少し詳しく記載しようと思う。

まずはSceneビューを2Dモードに切り替える。Sceneビューに新しく2Dのボタンがあるので、それを押すと2Dモードのような感じになる。

スクリーンショット 2013-11-16 9.11.07


スプライトの作り方

2Dを使う方法は簡単だ。

画像の設定を「sprite」にすると、指定の画像をスプライトとして使用できるようになる。後はスプライト画像をシーンにD&Dするだけで、スプライト画像をシーンに配置出来る。

スクリーンショット 2013-11-16 9.09.21 スクリーンショット 2013-11-16 9.14.58


既にパッキング(Atlas化)されている画像を使う場合、[Sprite]を[Multiple]に設定する。そうすると[Sprite Editor]ボタンが出現するので、そこでスプライトを分割する。

スクリーンショット 2013-11-16 9.16.02  スクリーンショット 2013-11-16 9.25.40

Sprite EditorのSlice(分割)モードは [Automatic] と [Grid] の2つ。 Automaticはスプライト同士の空白を見て自動的にスプライトを分割するモード、Gridはグリッドサイズでスプライトを分割するモードだ。分割するといっても全て透明の部分にはスプライトを作らないので、多少は効率的に表現出来るかもしれない。

一応は手動でもスプライトを作ることは出来る。具体的にはスプライトエディタ上で選択範囲を作ればそこがスプライトになる。
 
スクリーンショット 2013-11-16 9.25.04 スクリーンショット 2013-11-16 9.41.37


注意点として、AutomaticモードでSliceする場合はRGBA16もしくはRGBA32といった「ゴミ・滲みのない環境で実行するべき」というのがある。どうもその”滲み”のせいで本来分かれているスプライトを1つとしてご認識するらしい。

正直Automaticは使いにくいので、手動で設定するかGridの二択になると思う。packerで作ったjsonを食わせてsliceするアセットの登場が待たれる。

TexturePackerの出力するJSONで分割するアセットを作った。 
http://tsubakit1.hateblo.jp/entry/20131118/1384786607

ちなみにSpritePackerは、分割とは逆のアプローチ…つまり複数のSingleなスプライトをパッキングして1枚に纏める技術。同じタグ、同じ圧縮形式の場合は1枚に纏めるらしい。


スプライトの使い方

とりあえずシーンに配置したスプライトは色々と簡単に変更出来る。

スプライト自体をD&Dするとスプライトの位置を移動出来る。また、スプライトの角や辺を選択すればサイズの変更、角より少し先を選択すれば回転が出来る。

スクリーンショット 2013-11-16 9.49.55

描画順はスプライト専用の [Sorting Layer] と[Order in Layer] で設定する。Sorting Layerで大雑把なレイヤーの描画順を設定し、 order in layerで細かいレイヤーの順番を設定する感じだ。ちなみに [order in layer] は大きい値のほうが優先される。

スクリーンショット 2013-11-16 10.06.57

Sorting Layerを設定するには、Sorting Layerを選択後に[Add Sorging Layer...] を選択、Tag & Layerマネージャーが表示されるので、そこでSorting Layerの右下の「+」を押して増やす。消すのは当然「ー」ボタン。

描画順を設定するには、左の「=」マークをドラッグすれば順番が変えられる。

スクリーンショット 2013-11-16 10.03.03  スクリーンショット 2013-11-16 10.04.06



Unityの2D機能周りが強化されたが、間違ってはいけないのがコレが「2D機能」という事だ。
つまり、GUIに必要な引き伸ばしやアンカー等々の機能はサポートされていないので、これでGUIを作ろうとすると苦労する羽目になると思う。(標準GUIよりは簡単に作れるけどね)

あと、ぶっちゃけuni2dの方が高性能。
[Unity]2Dゲーム向けアセット、Uni2Dの使い方について(1)