【Unity】迷路アクションゲームを作ってみた (#1)
こんにちは! エンジニアの宮Pです😎
前回はUnityの機能の1つ、キャラクターの動くルートを自動生成するNavMeshを使ってサンプルを作りました。
今回は、そのNavMesh機能を使ってアクションゲームを作ります。
色々と解説することがあるので、数回に渡っての連載になりますが、その分だけ各種機能や定義方法などを詳しく説明していこうと考えています。
はじめに
前回のNavMeshのサンプルを作っていて、10年近く前にUnityを使ってゲームを作ったことを思い出しました。
私は元々はプログラマーだったのですが、この頃にはプロジェクトのマネージメントが多くなっていたので、しばらくコーディングから離れていた状態……それこそ10年ぶりくらいゲーム作りでした。
Unityの勉強を目的として、分からないところは飛ばしながら作ったので、見栄えはあまり良くないです😓
それでもNavMeshで仕掛けを作ったり、なかなか頑張っていた形跡も見られるんですよ。
簡単な作りなので、これをサンプルにして「NavMeshを使ったゲーム作り」の基本部分を勉強しなおしてみようと思います。
今回は、このような環境で開発を進めています。
・Unity 6(6000.0.20f1)
・UnityChan_v1.4.0
ゲームのルール
制作を始める前に、このアクションゲームのルールを簡単に整理します。
Unityちゃんはカーソルキーで移動
敵はフィールド内を一定のルールで徘徊する。Unityちゃんが近くにいると色が青から赤に変わり、Unityちゃんを追いかけてくる
Unityちゃんとの距離が一定以上に開くと、敵の色は青色に戻り、追いかけることをやめる
敵はフィールド中央の緑色のラインを越えることはできない。これを利用して追跡を交わすことが可能
Unityちゃんが敵につかまるとゲームオーバー
フィールド内には30個のコインが置かれている。敵につかまらずに全部集めるとゲームクリア
まあまあ良く考えてあるでしょ?😉
この他にも「Unity初心者が頑張って実装した」機能がいくつかあります。
連載を通じて、そうしたNavMesh以外の機能についても解説していく予定です。
フィールドの作成
「Universal 3D」を選択して、Unityのプロジェクトを新規に作成します。
Unityが起動したら、ヒエラルキーに3D ObjectのPlaneを追加します。
インスペクターウィンドウで名前を「Floor」と変えて、XとZのサイズを4に広げてください。
フィールドを囲む外壁を作ります。
3D ObjectのPlaneを作って「Wall」と名前を変え、座標やサイズを次のように変更します。
Positon : X=20、Y=1.5、Z=0
Scale : X=1、Y=4、Z=41
このWallを複製して四方の外壁を用意します。名前は「Wall」とします。
最初に作った壁を起点として、向かい側、右側、左側の壁の座標は次のとおりです。
■向かい側
Positon : X=-20、Y=1.5、Z=0
Scale : X=1、Y=4、Z=41
■右側
Positon : X=0、Y=1.5、Z=20
Scale : X=41、Y=4、Z=1
■左側
Positon : X=0、Y=1.5、Z=-20
Scale : X=41、Y=4、Z=1
今度はフィールドの内壁を作っていきます。
自分の分身であるUnityちゃんと敵キャラクターが動き回るので、それなりの道幅を確保しつつ、意地悪な袋小路なども作らないようにしたいです😉
ちょっと見づらいかも知れませんが、私が作ったフィールドはこんな感じです。
壁の置き方に正解はありませんので、好きなように作ってみてください。
遊びづらいようであれば、後でいくらでも変更できます😊
この内壁にはHurdleと名前を付けておきます。
Floor、Wall、Hurdleとフィールド用の素材が増えたので、「StageObject」という名のGameObjectを作ってひとまとめにしておきます。
エラルキーを右クリック(または[+]ボタンをクリック)して「Create Empty」を選択し、作られたGameObjectの名前を「StageObject」と変更してください。
Unityちゃんを動かす
このフィールドにUnityちゃんのモデルを置いて、動かしてみます。
UnityのWindowsメニューからAsset Storeを選び、「unity-chan! model」を検索してください。
以下のURLに直接遷移してもOKです。
このページの[Open in Unity]をクリックして、UnityちゃんのパッケージをUnityに取り込みます。
Package Managerを開くと、こんな感じに登録されていますので、右上の[Download]ボタンをクリックしてください。
ボタンが[Import]ボタンに代わったら、もう一度このボタンをクリックします。
パッケージのインポートを促すウィンドウが表示されるので、[Import]ボタンをクリックします。
インポートが終わってからUnityちゃんのPrefabフォルダを確認すると、何かのデータが正常に読み込まれなかったのか、Unityちゃんがピンク色になっています。
プレハブをシーン上に配置してみましたが、やはり全身ピンク色です。
調べてみたところ、「トゥーンシェーダーの一部データが読み込めていない」ことが原因のようです。
このデータを読み込めるようにします🙂
Package Managerの左上の[+]ボタンをクリックして、メニューから「Add package from git URL…」を選択します。
「Install package from git URL」に「com.unity.toonshader」と入力し、[Install]ボタンをクリックします。
インストールが完了すると、この画面になります。
Package Managerを閉じて先ほどの画面に戻ると、この通り、Unityちゃんの色が正常なものに戻りました。
まとめ
今回はアクションゲーム制作の第1回として、ゲームのルールとステージを作るところまでを解説しました。
10年前とはUnityの機能も変わっていて、なおかつ当時の記憶はほぼ残っていないので新鮮な気持ちでゲーム作りを進めています😅
なかなか難しいですが、ゲーム作りはやっぱり楽しいですね😊
次の第2回ではUnityちゃんの操作を中心に解説をしていますので、ぜひこちらもお読みください🙂
私たちは、お客様のご要望にあわせて様々なコンテンツ、アプリを制作いたします。
ご質問やご要望は、<お問い合わせページ>よりお送りください。