【Unity入門】2Dアクションを作ろう【ステージ作成】

今回はいよいよステージを作っていきたいと思います。

この記事は本のように順を追って解説しています。この記事は途中のページになります。
この記事を見ていて、現在の状況がわからない場合や忘れてしまった事などが出てきたら↓のリンクから目次ページへ飛べますので立ち戻って見てください。

<タイルマップを作成しよう>

とりあえず、2D用のステージを作成しましょう。2D用のマップを作成するのに、Tilemapという機能を使うと便利です。

ヒエラルキーで右クリック>2D Object>Tilemapをクリック

make tile map

すると、シーンビューにグリッド線が現れます。

grid line

次に上部メニューのWindow>2D>Tile Paletteをクリックします。

tile palette

すると↓のようなウィンドウが出てきます。

tile palette window

これはタイプマップパレットと言って、先ほど出てきたグリッド線に画像を塗るようにして編集できるものです。とりあえず、ファイルの下準備をしましょう。

Create New Paletteをクリック。適当な名前でセーブします。自分はステージ1用のパレットということで、stage1としました。

create new palette

Gridというのはマップチップの形を表すのでRectangle(矩形)のままで大丈夫です。Cell Sizeはオートでやってもらいましょう。このままの設定で大丈夫です。

<マップチップを作ろう>

さて、パレットを作ったはいいものの、塗るものがないので、マップチップを作成します。と言ってもまた仮の絵を書くだけです。

とりあえず、ペイントか何かで

ground glass
ground dart

この2種類を用意しました。下書きなので手抜き上等です。
大きさは128×128で作成しています。

これも後々編集しやすいようにテクスチャの頭文字にmapとつけています。

また、この2つもSpriteにします。

change texture sprite

次にマップチップ用のフォルダを適当に作っておくと便利ですので適当にフォルダを用意してください。

そしたら、プロジェクトウィンドウからタイルマップパレットにドラッグ&ドロップし、マップチップデータを作ったフォルダに突っ込みましょう。

drag and drop map tips

これで、パレットにマップチップを登録できました。

タイルマップパレットの筆みたいなアイコンをクリックして、塗りたいマップチップを選択します。

tile palette

この状態でシーンビューの上をドラッグすることによって、塗るようにマップチップを置いていけます。

tile map draw

消しゴムみたいなアイコンをクリックすれば消すこともできます。

実はパレットに2つ登録しなくてもちょっとレベルの高い方法で1つにまとめられるのですが、今回は簡単に2つ登録する方法で行こうと思います。

タイルパレットについては↓の記事で解説しています。今はまだ理解する必要はないので、興味があったら見てみてください。

<当たり判定をつけよう>

とりあえず、仮の地面を作ることができたので、当たり判定をつけましょう。作成されているGridの下にTilemapという項目ができているので、これを選択した状態で、AddComponentから検索で「Tilemap Collider 2D」という奴をつけてください。

add tilemap collider 2d

↓のような奴が追加されたと思います。

component tile map collider 2d

今の段階では特にいじる必要は無いと思います。これがつくと

tile map collider scene view

↑の緑色の線が見えるでしょうか?これが当たり判定になります。Tilemap Collider 2Dという奴をつけるとマップチップに自動で当たり判定をつけてくれます

自動で当たり判定をつけてくれるのでとても便利なのですが、見てわかる通りとても重いです。本当なら当たり判定の数は減らしたいところなのですが、利便性も取りたいのでちょっと変わった手法を使います。

Gridを選択し、右上のStaticを押してください。

grid static

下のタイルマップもStaticにしたいのでYesで

grid static check

これで、タイルマップがStaticになりました。

Staticというのは「静的な」という意味があります。要は「動かない」ということです。

実は、Tilemap Collider 2Dがアタッチされているオブジェクトを動かすと、中の当たり判定も動くのでめちゃくちゃ重くなります。あれだけあった緑の四角が全部動くことになるのですごく重いのです。絶対にこれを動かしたくない為Staticにし、意図的に動かないようにしています。

本来ならStaticにすることでいろんな事ができるのですが、今回はただ固定するために使用します。

これで、タイルマップを使用しているところは、「動かせない」状態になりました。動く床とかそういった物を実装したい場合はタイルマップを使用しないことになります。

しかし、何も知らないでステージを動かしてしまうとゲームがカクカクになってしまうので敢えて簡単に動かせないように制限をかけます。

<プレイヤーにも当たり判定をつけよう>

今度はプレイヤーにも当たり判定をつけましょう。以前物理演算について解説したことと同じことをします。物理演算って何?という人は↓の記事を参考にしてください

当たり判定の設定

さて、キャラクターに当たり判定をつけていきたいと思います。

以前はBox Colliderというものをつけましたが、今回はCapsule Collider 2Dというものをつけます。

プレイヤーのゲームオブジェクトを選択して、AddComponentでCapsule Collider 2Dをアタッチしてください。

add capsule collider

↓のようなやつがくっついたと思います。

capsule collider inspector

シーンビューで見ると↓のようなカプセル型のコライダーがついていると思います。

capsule collider

何故Box Colliderではないかと言うと、角がつっかえるからです。

box collider 2d

↑はボックスコライダーをつけた例です。カドがピシッと90度です。この部分がタイルマップのコライダーのカドにつっかえます。コライダーがちょっとでもつっかえると動かなくなってしまうので、角を丸くしてあげる必要があります。その為、Capsule Collider 2Dを使用したのです。

今回はCapsule Collider 2Dを使いましたが、コライダーには色々な種類があります。目的に応じてコライダーを使い分ける必要があります。

今回は人型であるという事でCapsule Collider 2Dを使用しました。人型であればだいたいカプセル型の形になるからです。

色々なコライダーの解説についてはまた後々解説していきたいと思います。

物理演算をキャラクターに当てはめる

さて、今度は、キャラクターに物理演算を適用したいと思います。

物理演算の解説時はRigidbodyでしたが、今度はRigidbody2Dを追加します。2D用の物理演算をしてくれます。

add component rigidbody2d

さて、これでプレイヤーに当たり判定と物理演算が追加されました。

プレイヤーを地面からちょっと上に置いて再生してみましょう。

on tile map

ちゃんと地面に着地してくれました。

ステージとしてはまだまだ全然ですが、基本部分ができたので、とりあえず今回はこれくらいにしておきましょう。

何かうまくいかない事があった場合は↓の記事を参考にしてみてください

さて、せっかくここまでできたので、次回はキャラクターを移動させてみたいと思いますのでよろしくお願いします。



タイトルとURLをコピーしました