Unity ロックマン風2Dアクションゲームの作り方5 カメラの移動・背景画面・横スクロール処理の実装 | Unity入門の森 ゲームの作り方

Unity ロックマン風2Dアクションゲームの作り方5 カメラの移動・背景画面・横スクロール処理の実装

Unity 2Dアクションの作り方 ロックマン風横スクロールアクションゲームを作る


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

この記事はロックマン風2Dアクションの作り方講座の第5回です。

前回でタイルマップを用いたステージ制作を完了しました。ここからはそのステージを実際にプレイできるようにしていきます。

前回の記事:

Unity 2D横スクロールアクションゲームの作り方4 タイルマップで坂道ありゲームステージを作成 レイヤーを使いこなそう
この記事はロックマン風2D横スクロールアクションゲームの作り方講座の第4回です。 前回まででプレイヤーキャラの移動とジャンプの機能を最低限ですが実装できました。 前回の記事: 今回からはこのゲームを本格的な2D横スクロールアクションゲームら...

まずはカメラをプレイヤーキャラの動きに合わせてついていかせる処理を実装し、前回テストプレイでは探索できなかった領域を確認できるようにしていきましょう!

そして背景画面の繰り返しや横スクロール処理にも対応させていきます。


【Line登録者限定のプレゼントもあるよ!】

カメラをプレイヤーキャラクターの動きに追尾させる

Unityではゲーム画面はCameraオブジェクトが対象とする範囲のみ写されています。つまりCameraオブジェクトを移動させればステージの好きな場所を表示できるようになります。

Cameraオブジェクトについては既に最初からMain Cameraというオブジェクトが存在しているのでこれを対象にします。

 

まずはCameraControllerクラスをお好みのフォルダに新規作成します(ここではScriptsフォルダを利用)。

  • Vector3.Lerp機能を使用して、少しずつ現在位置から目標位置に移動するという処理を実現しています。
  • Actorオブジェクトと全く同じ位置に移動するのではなく、目標位置を少し右上にずらすことで右方向に進行するステージの先を見やすくしています。

このクラスは自身の座標を目標位置に移動させる機能を持っているので、今回移動させたいオブジェクトであるMain Cameraにアタッチします。

 

そしてCameraControllerクラスにActorオブジェクトの現在位置の情報を与える為にActorControllerクラスを編集します。

CameraControllerへの参照をpublicで宣言しています。特にスクリプト内でGetComponentなどで取得していないので、自身でInspectorから該当のオブジェクト・コンポーネントを渡してあげる必要があります。

スクリプト更新後、ActorオブジェクトのActorControllerクラス・CameraControllerパラメータにMain Cameraオブジェクトをドラッグ&ドロップして参照を渡します(以降講座では参照をセットと呼ぶこともあります)。

 

これでプレイヤーキャラの動きに合わせてカメラが滑らかについてくるようになりました。

 

Unityで2Dアクションゲーム用ステージ背景画像を作成

現在ステージに何も背景画像を設定していないので、Unityのおける初期の背景色である青の風景が広がっているのみです(ちなみに初期背景色はCameraの設定から変更可能です)。

 

まずは背景画像を表示するSpriteオブジェクトとしてBackGroundを作成しましょう。Hierarchy画面で右クリック。2D > Sprites > SquareなどでSpriteRenderer持ちのゲームオブジェクトを作成。

SpriteRendererのSpriteパラメータに背景画像をセットしましょう。サンプル画像はTextures/BackGroundフォルダ以下にあります。

また、このままだとアクターやレイヤー1地形とZ座標(奥行き)が同じなので綺麗に表示できません。全てのオブジェクトより一番後ろに表示して欲しいので、Z座標は適当な大きい数値(今回は5)をセットしておきます。

Scaleも小さくて気になる場合はXとYに3~5倍程度すると良いでしょう。

 

背景画像を移動させて臨場感を演出しよう

現状では背景画像がその場で静止しており、距離感や立体感といったものがやや欠けています。

これはカメラの移動にあわせて背景画像を少しだけ移動させる事で改善できます。CameraControllerクラスを拡張しましょう。

続きを読む

このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

まとめ

これでカメラが決められた範囲の中でプレイヤーキャラを追尾するようになりました。背景画像も設定し、ステージの端の定義も行えるようになり、制作の幅が広まりました。

今回作成した機能を活かして次回ではステージ内を複数のエリアに分割し、エリア別にカメラ移動範囲を設定した上で更にエリア間を移動する処理を実装していきます。

 

次の記事:

Unity ロックマン風2Dアクションの作り方6 ステージを複数エリアに分割管理・画面のスクロール処理を実装
この記事はロックマン風2D横スクロールアクションゲームの作り方講座の第6回です。 前回まででカメラをプレイヤーキャラに追尾して移動させる処理や背景画像の表示・スクロール処理等を実装しました。 前回の記事: 今回は1つのステージを複数のエリア...

Unity 2Dアクションゲームの作り方講座に戻る>>



Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

  1. りゅう より:

    すごく分かりやすくて楽しみながら作らせてもらってます!
    今回の講座の「スクリプト全文」の前にあるTile Paletteの写真は何を意味なのでしょうか。カメラ移動制限がどうしてもうまくいかずそこでも設定が必要なのかなと思い、よければ教えていただきたいです!

  2. Unity入門の森 より:

    楽しんでもらえてるようで嬉しいです!ありがとうございます。
    Tile Paletteの画像は4章の画像と同じものですね。なぜか紛れ込んだみたいです。
    消しておきました。気にせず進んでもらって大丈夫です。

    カメラ移動制限は講座の通り作ればできるはずです。
    5章完了時点でのプロジェクトファイルを用意しておきました。
    こちらも参考にしてみてください。

  3. りゅう より:

    ありがとうございます!!
    わざわざプロジェクトファイルまで用意していただき嬉しいです!!見比べると1つ順番が違っているところを見つけることができました。勝手にここは順番どっちでもいいと思ってスルーしまっていたのでとても良い勉強になりました!
    これからも応援してます!

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