シンプルなアクションゲームを作ってみようの第23回です。
今回はCinemachineを使ってカメラを操作し、キャラクターを追従するようにします。
前回は入力システムをInput Systemに変更しました。
シンプルなアクションゲームを作ってみようの他の記事は
シンプルなアクションゲームを作るのを通してUnityの使い方を学ぶカテゴリです。
から参照出来ます。
Cinemachineとは
Cinemachineはカメラを操作する為の機能で、自前のスクリプトでカメラを操作する場合は壁に遮られてプレイヤーキャラクターを写せなかった時に自分で処理を追加してプレイヤーキャラクターが確実に映るようにしなければいけませんが、Cinemachineを使うと色々なカメラ操作を比較的簡単に使えるようになります。
ただ今回は単純にプレイヤーキャラクターを写し続けるだけで、スタンダードアセットのFollowTargetスクリプトと何ら変わっていないようにみえますが、今後カメラに複雑な操作をさせたくなった時に、こういう機能があるということがわかっていると後々楽になるかもしれないので、あえて今回使用することにしました。
Cinemachineをインストールする
まずはCinemachineパッケージをインストールします。
UnityメニューのWindowからPakcage Managerを選択します。
パッケージの種類をUnity Registryにし、Cinemachineを選択してInstallボタンを押します。
仮想カメラを追加する
CinemachineはVirtual Camera(仮想カメラ)というゲームオブジェクトを使ってシーンに設置してあるカメラを操作します。
デフォルトではMain Cameraがゲームを映すカメラとなっており、Virtual Cameraを作成すると、このゲームオブジェクトの設定によってMain Cameraが操作されます。
説明だと分かり辛いので実際に仮想カメラを作成してみます。
UnityメニューのCinemachineからCreate Virtual Cameraを選択し、仮想カメラを作成します。
ヒエラルキーにはCM vcam1という名前の仮想カメラが作成されます。
仮想カメラを作るとMain Cameraゲームオブジェクトのインスペクタを見るとCinemachineBrainというコンポーネントが自動で追加されているのを確認出来ます。
Main CameraはCinemachineで操作するので、FollowTargetコンポーネントの横のチェックを外し、無効化しておきます。
ヒエラルキーのCM vcam1ゲームオブジェクトを選択し、インスペクタでプレイヤーキャラクターを追従する設定をしていきます。
FollowにPlayerゲームオブジェクトをドラッグ&ドロップして追いかけるようにします。
Look AtにもPlayerゲームオブジェクトをドラッグ&ドロップし、カメラがPlayerを見るようにします。
BodyのBinding ModeはWorld Spaceにし、ダンピング(カメラの応答性)に使用する座標をワールド軸とします。
Follow OffsetはFollowに設定したゲームオブジェクトからのオフセット値を設定します。
XYZのDampingは0だと即座にこのオフセット値を維持し、数値が大きくなると遅れてカメラがターゲットを追従します。
AimはDo nothingにし、カメラの回転は行わないようにします。
実行して確認してみる
機能が出来たので実行して確認してみましょう。
上のようになりました。
Follow Targetスクリプトと同じように動いていますね。
終わりに
今回はCinemachineを使ってカメラを操作しました。
次回はゲームスタート前にカウントダウン表示をする機能を作成していきます。