【Unity入門】Unityで2Dパズルゲーム(倉庫番)を作ろう! 第2回:マップ作成とキャラ配置 | Unity入門の森 ゲームの作り方

【Unity入門】Unityで2Dパズルゲーム(倉庫番)を作ろう! 第2回:マップ作成とキャラ配置

【Unity入門】0から作る2Dパズルゲーム(倉庫番)の作り方講座【全5回】

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

倉庫番ゲーム制作講座の第2回となる今回はゲームの舞台となる「マップ」を作っていきます!

前回プロジェクトにインポートした画像素材を、実際にUnityのシーン上に配置して、プレイヤー、壁、箱、ゴールの位置を決めていきましょう。

前回の記事:

【Unity入門】Unityで2Dパズルゲーム(倉庫番)を作ろう! 第1回:エディタ環境構築と素材の準備
この講座では、Unityを使って2Dの倉庫番ミニゲームを作成していきます。倉庫番とは、プレイヤーを操作して箱を押し、決められたゴールの位置まで箱を運ぶパズルゲームです。ルール自体はとてもシンプルですが、ゲーム制作でよく使う大事な考え方がたく...

マップ作りと聞くと「壁を一つずつ並べるのは大変そう…」と思うかもしれませんが、ご安心ください。今回は、同じオブジェクトを効率よく管理・配置するための必須機能である「Prefab(プレハブ)」や、マス目に沿って綺麗に並べる「スナップ機能」といった、Unityの便利な機能もあわせて解説します。

これらの機能を覚えれば、今後のゲーム制作の作業スピードが格段に上がります。一緒に手を動かしながら、ゲーム画面のベースを完成させましょう!

【ゲームの作り方講座プレゼント中!】

倉庫番ゲームに必要なマップを作ろう

プレイヤーを配置しよう

まずは、プレイヤーをシーンに配置します。

Projectウィンドウから、ひよこの画像をHierarchyウィンドウにドラッグ&ドロップしてください。

ひよこを配置できたら、Hierarchyウィンドウ内のひよこを選択します。

Inspectorウィンドウの一番上に名前を入力できる欄があるので、名前を「Player」に変更しましょう。

次に、TransformのPositionを調整します。ここでは、プレイヤーの位置を以下のように設定します。

2Dゲームでは、基本的にXが横方向、Yが縦方向、Zが奥行き方向になります。今回は2Dゲームなので、Zは0のままで大丈夫です。

↑画面全体としてはこんな感じになります。

注:作業を終えたら定期的にctrl + sキーを押してシーンを保存しておきましょう。ヒエラルキービューのSample Sceneの右上にアスタリスク(*)がついている間はまだ変更が保存されていません。この状態でUnityエディタを閉じてしまうとせっかくの頑張りが水の泡です。

もし変更内容をやり直したい場合はctrl + zキーを押せば変更した内容を元に戻せるので覚えておくとよいでしょう。

ゴール・壁・箱を配置しよう

次に、ゴール、壁、箱も同じように配置していきます。

Projectウィンドウから、ゴール、壁、箱の画像をそれぞれHierarchyウィンドウにドラッグ&ドロップしてください。

配置できたら、それぞれの名前を分かりやすく変更しておきます。

ゴール:Goal

壁:Wall

箱:Box

名前を変更したら、InspectorウィンドウのTransformから位置を調整します。
それぞれの位置は、以下のように設定します。

Goal

Wall

Box

画面全体としては以下のようになります。

Prefabsフォルダを作ろう

次に、Prefab(プレハブと読みます)を保存するためのフォルダを作成します。

Prefabとは?

Prefabとは、一言でいうと「元になるオブジェクト」のことです。

たとえば、Wallという壁オブジェクトをたくさん配置したあとで、「壁の見た目を少し変えたい」、「壁に別の設定を追加したい」と思ったとします。

もしPrefabを使っていなければ、シーン上に配置した壁を1つずつ変更しなければいけません。壁が少ないうちはまだよいですが、マップ全体にたくさんの壁を置いたあとだと、すべてを手作業で直すのはとても大変です。

しかし、Prefabにしておけば、元になっているPrefabを変更することで、そのPrefabから作られたオブジェクトにも変更を反映できます。

つまりPrefabは、同じ種類のオブジェクトをたくさん使うときに便利な仕組みです。

なぜPrefabが必要なの?

「まとめて選択して変更すればいいのでは?」と思うかもしれません。
たしかに、少ない数であればまとめて選択して変更することもできます。しかし、ゲーム制作では同じ種類のオブジェクトを何十個、何百個も使うことがあります。

たとえば、RPGに出てくる同じ敵キャラクターを想像してみてください。同じ敵がマップのあちこちに登場する場合、その敵の設定をあとから1体ずつ直すのはかなり大変です。
もしPrefabにしていれば、元のPrefabを修正するだけで、同じPrefabから作られたオブジェクトに変更を反映できます。

今回の倉庫番ゲームでは、壁をたくさん配置します。箱やゴールも、最後には複数配置できるようにします。そのため、最初のうちにPrefabにしてまとめて変更できるようにしておくと後で作業しやすくなります。

ProjectウィンドウのAssetsフォルダ内で右クリックします。
表示されたメニューから、Create > Folderを選択してください。
新しいフォルダが作成されたら、名前を「Prefabs」に変更します。

Unityでは、素材やスクリプト、Prefabなどをフォルダごとに整理しておくと、あとから探しやすくなります。今回はPrefabを作るためのPrefabsフォルダを作って管理しやすくしておきます。

壁・箱・ゴールをPrefabにしよう

次に、Goal、Box、WallをPrefabにしていきます。

まず、Projectウィンドウで先ほど作成したPrefabsフォルダを開きます。

次に、HierarchyウィンドウにあるGoal、Box、Wallを、それぞれPrefabsフォルダの中にドラッグ&ドロップしてください。

これで、Goal、Box、WallがPrefabになります。シーンのヒエラルキーからAssetsのPrefabsフォルダにドラッグ&ドロップすることでプレハブ化を行えます。

Prefabになると、Projectウィンドウ内に青いアイコンで表示されます。Hierarchy上のオブジェクトの青い文字がPrefabになっていることを示しています。プレハブを修正すれば青文字になっているオブジェクトはまとめて変更されます。

マップを作っていこう

ここまでで、プレイヤー、壁、箱、ゴールの準備ができました。次は、実際に倉庫番のマップを作っていきます。

基本的には、クリアできる設計であれば、どのようなマップにしても大丈夫です。
ただ、最初は講座と同じようなシンプルなマップを作り、仕組みがわかってから自分なりにアレンジしていくのがおすすめです。

倉庫番ゲームでは、プレイヤーも箱も1マスずつ動きます。そのため、壁や箱、ゴールも1マス単位できれいに配置しておく必要があります。

Unityでは、オブジェクトをフリーハンドで動かすときに少し位置がずれてしまうことがあります。たとえば、X座標が1ではなく1.03になったり、Y座標が2ではなく1.98になったりすることがあります。

見た目では少しのズレに見えても、あとでスクリプトで判定を作るときに問題になることがあります。

そこで、Sceneビューのスナップ機能を使って、オブジェクトを1マスずつ動かせるようにしておきましょう。

Sceneビューの右上にある、左側の磁石のようなマークをオンにします。

その右側にある数値を「1」に変更してください。

これは、オブジェクトを移動するときに1単位ずつ動くようにする設定です。
これで、壁や箱を移動するときに、きれいに1マスずつ配置しやすくなります。

Inspectorで毎回Positionの数値を入力してそろえることもできますが、マップを作るたびに手入力するのは大変です。スナップ機能を使うことで、Sceneビュー上で直感的に配置しやすくなります。

↑スナップ機能を使ってオブジェクトを動かすときは画面左側にあるボタンの上から二つ目の上下左右移動モードにしておきます。手のマークの一段下にある4方向の矢印が描かれているボタンです。この状態でオブジェクトを選択し、赤と黄色の矢印をクリックしながら動かしてみてください。たしかに1マスずつ移動することがわかります。

では、次に実際に倉庫番ゲームで使うマップを作成していきましょう。

HierarchyウィンドウでWallを選択します。

選択した状態で、Ctrl + Dを押してください。
Ctrl + Dは、選択しているオブジェクトを複製するショートカットです。

複製されたWallを右に移動すると、同じ壁を横に並べることができます。

ちなみに、スナップ機能を使わずにオブジェクトを配置すると、以下のように少しずつ位置ずれてしまいます。

壁を複製していくと、HierarchyにWallがたくさん並んで見づらくなります。そこで、壁をまとめるための空のオブジェクトを作成しておきましょう。Hierarchyで右クリックし、Create Empty を選択します。作成されたオブジェクトの名前を Walls に変更。

WallsのTransformのPositionをすべて0にしておきます。

あとは、配置したWallをWallsの中にドラッグ&ドロップしてまとめます。こうしておくと、Hierarchyが整理され、あとからPlayerやBox、Goalを探しやすくなります。

ここまでできたら、CTRL + D を繰り返して、壁を並べてみましょう。

配置を講座と同じにしたい場合は、以下の完成画像を参考にして配置してください(難しければ配布用プロジェクトファイルも参考にしてみてください)

背景色を変更しよう

配置ができたら、Gameビューを確認してみましょう。

初期状態では、背景色が青っぽい色になっていると思います。

このままでもゲームとしては問題ありませんが、今回の素材によっては少し見づらかったり、雰囲気に合わなかったりするかもしれません。そこで、背景色を変更しておきましょう。
HierarchyウィンドウからMain Cameraを選択します。

Inspectorウィンドウを下の方にスクロールすると、Environmentという項目があります。その中にあるBackgroundから、背景色を変更できます。色は好みで構いませんが、この講座では黒にしておきます。

黒にすると、プレイヤーや壁、箱、ゴールが見やすくなります。ただし、背景色を選ぶときは、オブジェクトと似た色を避けるのがおすすめです。

たとえば、灰色、黄色、茶色などは、素材の色によっては壁や箱などと見分けがつきにくくなることがあります。背景は、ゲーム内のオブジェクトがはっきり見える色にしておきましょう。

↑灰色系統は壁の色と被っていますし、黄色系統の色はひよこキャラと被っていて見づらいですよね・・・というわけで今回は背景色を黒にしました。

これでマップの準備は完了です。

次回はいよいよプレイヤーを動かせるようにします。

プロジェクトファイルのダウンロード

今回の講座で作ったプロジェクトファイルのダウンロードリンクを用意しました。

プロジェクトファイルのダウンロードはこちら >>

倉庫番ゲームの作り方講座 第2回まとめ

お疲れ様でした!
第2回では倉庫番ゲームの舞台となるマップの作成を行いました。

【今回学習した内容のおさらい】

  • オブジェクトの配置と保存: 素材をシーンに配置し、Ctrl + S でこまめに保存する癖をつけました。

  • Prefab(プレハブ)の活用: 壁や箱など、複数使うオブジェクトをPrefab化して、後からまとめて変更できる状態にしました。

  • スナップ機能と複製: スナップ機能を「1」に設定し、Ctrl + D で複製しながら、マス目に沿って1マスずつ正確に壁の素材画像を並べました。

  • ヒエラルキーの整理と背景設定: 空のオブジェクト(Walls)を作って壁をまとめ、見やすいようにカメラの背景色を黒に変更しました。

これで、ゲームの見た目となる土台がしっかりとできあがりました! Prefabやスナップ機能は、どんなゲームを作る際にも必ず使う超重要テクニックなので、ぜひ覚えておいてくださいね。

次回はいよいよ、お待ちかねの「プログラミング」です!

C#スクリプトを作成し、配置したひよこ(プレイヤー)をキーボード操作で動かせるようにしていきます。お楽しみに!

次の記事:

【Unity入門】Unityで2Dパズルゲーム(倉庫番)を作ろう! 第3回:プレイヤーの移動と壁の当たり判定
倉庫番ゲーム制作講座の第3回となる今回はいよいよC#スクリプトを書いて配置したプレイヤー(ひよこ)を実際に動かしていきます!前回の記事:ただし、普通のアクションゲームのように滑らかに動かすのではなく、キー入力で1マスずつきれいに移動する「倉...

Unity 2Dパズル(倉庫番)ゲームの作り方に戻る >>

【ゲームの作り方講座もプレゼント中!】

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

コメント

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