マウスポインタの動きに合わせて回転する、FreeLookCameraを作成します。
以前の記事では、ThirdPersonCameraを使った作成をご紹介しました。
【Unity C#】Thrid Person Camera を設定する
【Unity C#】マインクラフトのようなプレーヤー操作
ThirdPersonCameraは大変便利なのですが、ThirdPersonControllerに付随する機能も多く、やや自由度に欠けるところもあります。
今回は、Cinemachineというパッケージを使い、ノーコードでFreeLookCameraを実装してみましょう。
関連記事:
FreeLookCameraスタート時の高さと移動
360°全方位に向けて発射
プレーヤーの準備
平面とCubeのオブジェクトを作成し、カラーを付けました。
Cubeを十字キーで操作できるようにします。
PlayerMove.csを作成して、Cubeに追加します。
PlayerMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerMove : MonoBehaviour { void Update() { float dx = Input.GetAxis("Horizontal") * Time.deltaTime * 3.0f; float dz = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f; transform.position = new Vector3 ( transform.position.x + dx, 0.5f, transform.position.z + dz ); } } |
まずはここまで、プレーヤーの動きを確認します。
Cinemachineのインストール
アセットストアから、パッケージマネージャーを開きます。
Unityレジストリの中から、Cinemachineを選択して、インストールしましょう。
メニューにCinemachineが追加されますので、ここからFreeLook Cameraを選択します。
FreeLook Cameraの設定
CM FreeLook1を選択しましょう。
今回は、FollowとLookAtのフィールドに、Cubeを入れました。
Followは、追従対象のオブジェクト。
LookAtは、視点を合わせるオブジェクトです。
シーンビューを見てみると、円状の赤い線が表示されています。
これはカメラの軌道で、縦方向のカメラ移動に合わせて、上段、中段、下段の軌道に遷移していきます。
この軌道線の高さ、半径は、Orbisから調整できます。
Y方向、X方向への旋回スピードは、Axis Controlで設定可能です。
デフォルトでは、マウスポインタと逆方向に、カメラが回転するようになっています。
同じ方向に回転させるには、Invertのチェックを外しておきましょう。
視野は、Lensの有効視野(FOV)で調整します。
今回は100まで上げて、少し視野を拡げました。
ゲームプレイして動きを確認してみましょう。
MainCameraがプレーヤーを追尾し、マウスを動かせば回転して動いていきます。
Cinemachineの設定項目は豊富に用意されていますが、今回はFreeLook Cameraの主な設定についてご紹介しました。