2Dゲームを作ろうと最初の画像をインポートしたとき、多くの人が同じ場所でつまずきます。 せっかくのドット絵がぼやけて表示される。キャラと背景の大きさの比率がめちゃくちゃになる。——原因はどちらも、画像そのものではなくUnity側のインポート設定にあります。
この記事では、2Dゲームのビジュアルの根幹であるSprite(スプライト) の正しいインポート設定から、複数のコマを1枚にまとめたスプライトシートの分割・活用までを解説します。
この記事でわかること
- Spriteの基本設定と
Sprite Renderer- ドット絵がぼやける問題の直し方(
Filter ModeとCompression)- Pixels Per Unit——2Dの「大きさの基準」を揃える
- スプライトシートのSprite Editor分割(自動/グリッド)
- なぜ1枚にまとめるのか(ドローコールとSprite Atlas)
動作確認環境: Unity 6 (6000.x)
Spriteとは?
2Dゲームの画面に表示されるもの——キャラクター、背景、アイテム、エフェクト——は、ほぼすべてSpriteという画像アセットです。
UnityにPNGなどの画像をインポートすると、デフォルトではTexture TypeがDefault(3D用テクスチャ)として扱われます。2Dで使うにはInspectorで切り替えます。
- プロジェクトウィンドウで画像アセットを選択します。
- Inspectorの
Texture TypeをSprite (2D and UI)に変更します。 Applyを押して適用します。
tips: プロジェクト作成時に2Dテンプレートを選んでいれば、画像は最初からSpriteとしてインポートされます。3DテンプレートやURP 3Dで2Dを混ぜるときは手動変更が必要です。
シーンに配置されたSpriteはSprite Rendererコンポーネントが描画します。色(Color)による着色や、Flip X/Yによる反転(左右の向き変え)もこのコンポーネントで行えます。
ドット絵がぼやける:Filter ModeとCompression
「元の画像はカリカリのドット絵なのに、Unityに入れるとぼやける」 ——2Dで最も多い相談です。原因は2つの設定にあります。
Filter Mode: 画像を拡大縮小するときの補間方法です。デフォルトのBilinearは隣のピクセルと色を混ぜて滑らかにするため、ドット絵ではにじみになります。ドット絵はPoint (no filter)に変更してください。ピクセルの角がそのまま残ります。Compression: テクスチャ圧縮です。圧縮は写真的な画像には有効ですが、ドット絵では色化けや汚れの原因になります。ドット絵はNoneが基本です。Max Size: 既定の2048より大きい画像は、エラーも出さずに縮小されてぼやけます。大きなシートは、画像の大きさ以上に上げておきます。
逆に、手描きイラスト系の高解像度画像ならBilinear+圧縮ありのデフォルトで問題ありません。「ドット絵ならPoint+None」 とセットで覚えてください。
Pixels Per Unit:大きさの基準を揃える
Pixels Per Unit(PPU)は、画像の何ピクセルをシーンの1ユニットとして扱うかの設定です(デフォルト100)。
たとえば32×32ピクセルのドット絵キャラは、PPU 100だとシーン上で0.32ユニットの小さな存在になります。PPUを32にすれば、ちょうど1ユニット=グリッド1マス分の大きさになります。
重要なのは値そのものより 「プロジェクト内で基準を統一する」 ことです。キャラは32、背景タイルは16、とバラバラにすると配置のたびにスケール調整が必要になります。ドット絵なら「タイル1枚のピクセル数=PPU」に揃えるのが定番です。物理演算も1ユニット=1メートル相当で計算されるため、PPUの統一は 2D物理 の挙動にも効いてきます。
スプライトシートとSprite Editor
キャラクターの歩き・ジャンプのような連続コマは、1コマ1ファイルではなく、1枚の画像にまとめた「スプライトシート」 で管理するのが基本です。