ステージを作ろう のバックアップ(No.13)


はじめに

ひつじを動かしてみようの続きです。
この項ではステージを作っていきます。
前回の講座で作ったボックスは邪魔になるので削除しておいてください。

画像のインポート

まずは今回使う画像のインポートをしてもらいます。下の画像を保存して、UnityのAssetsにドラッグ&ドロップしてください。

 

#download(tiles.png)

tiles画像を追加.png
 

ステージ制作

UnityにはTilemapというものが標準的に備わっていて、簡単にマップを作ることができます。
ヒエラルキーを右クリックして、2D object > Tilemap > Rectangular を押してください。

 
スクリーンショット (1145).png
 

画面に格子状の線が出てきましたね。一マス一マス配置していくことで、簡単にステージを作ることが出来ます。
一マスに先ほどの画像を配置していきたいところですが、このままでは一枚の画像としか認識されません。
そこで、Unity内で画像をスライスしていきたいと思います。

 

画像のスライス

 

画像のtilesを選択して、InspectorのspritemodeをMultipleに変更してください。

 
スクリーンショット (1147).png
 

これで画像を切り分けられるようになりました。InspectorのSprite Editorを押してください。この時、警告が出るのでApplyを押してください。

 
スクリーンショット (1148).png
 

左上のSliceから自動的に画像を分けることができます。今回はグリッドごとに分けたいので、「Grid by cell size」を選んでください。この時、PixcelSizeのxとyを32にしてから、Suliceを押してください。

 
スクリーンショット (1149).png
 

そして、Tilemapに合わせるため、InspectorからPixels Per Unitの数値を100から32に変更してください。

 
スクリーンショット (1150).png
 

これで画像を切り分けることができました。画像の右の三角をおすと、切り分けた画像を選択できるようになっています。

 
切り分けた画像を選択.png
 

タイルパレット

 

まだマップを作る準備は終わっていません。次はタイルパレットを作っていきます。画面上部から Windows > 2d > Tilepalette を選択してください。

 
tilepalette起動!.png
 

また、タイルパレットの画像を保存するフォルダを作ります。Assetsで右クリックして、 Create >Folder を押してください。今回は名前を「Tilepalette」にします。

 
Tilepaletteフォルダを作成.png
 

その後、タイルパレットの画面から、Create New Paletteを押して、新しいパレットを作成してください。この時、フォルダは先ほど作ったフォルダを選択してください。

 

マップチップ

それでは、パレットにマップチップを追加しましょう。スライスした画像ををパレットにドラッグ&ドロップしてください。

 
マップチップを追加だ.png
 

これでマップを作る準備ができました。
ここで、タレットの操作を説明しておきます。

 
tilepaletteの操作.png
 

左から
・マップチップを選択します。
・選択中のマップチップを移動します。
・選択したマップチップでグリッドを塗ります。Shift押しながらで削除できます。
・マップチップを範囲選択できます。
・スポイトです。このツールを選択した状態でシーンビューのマップチップをクリックすると、そのマップチップで塗れるようになります。
・消しゴムです。
・選択したマップチップでグリッドを塗りつぶします。
となっています。マップチップを選択して、3番目を選択してSeane上をなぞると画像を配置することができます。
地面の画像はいろいろ用意されているので、自由に配置してみましょう。

 
map制作です.png
 

とりあえず適当にマップを作ってみました。
見た目はできてきますが、今の状態だと当たり判定がありません。この画像に当たり判定を付けてみましょう。
tilemapのインスペクターの add component で tilemap collider 2dを検索して出てきたものをクリックしてください。

 
tilemapcollider2dを追加daa.png
 

これで、それぞれのグリッドの画像それぞれに当たり判定がつきました。この当たり判定を一つにまとめることができます。
タイルパレットに、さらにComposize collider 2D を追加してください。
この時、勝手にrigidbody2Dがついてきますが、ステージには重力の影響を付けたくないので、rigidbody2Dのtypeをstuticにしてください。
その後、tilemap collider 2Dのused by composizeにチェックを入れると当たり判定がまとまります。

 
composizeを追加.png