UnityのStandardAssetsにあるFreeLockCameraRig(自由に動かすカメラ)を使用してみる

記事内に広告が含まれています。

今回はUnityのStandardAssetsにあるCamerasのFreeLockCameraRigを使用してみます。

FreeLockCameraRigはキャラクターを自動で追従したり、マウス操作でキャラクターを写す角度を変更したりすることが出来ます。

望遠レンズでキャラクターを写しているかのようなカメラの機能は

UnityのStandardAssetsにあるCctvCamera(監視カメラ)を使う
UnityのStandardAssetsにあるCctvCameraの設定を見ていき、キャラクターを追従する様子を見てみました。

の記事を見てください。

スポンサーリンク

FreeLockCameraRigの設置

FreeLockCameraRigはAssets→StandardAssets→Cameras→PrefabsのFreeLockCameraRigプレハブをヒエラルキー上に配置する事で使用出来ます。

FreeLockCameraRigの子要素にカメラがある為、最初から配置されているMainCameraを非アクティブか削除しておきます。

FreeLockCameraRigの階層は

FreeLockCameraRigの階層

↑のようになっており、FreeLockCameraRigの子要素にPivot(カメラの基点)がありその子要素にカメラが設置されています。

FreeLockCameraRigのインスペクタを見ると

FreeLockCameraRigのインスペクタ

↑のようにFreeLockCameraRigで使われているスクリプトはFreeLockCamとProtectCameraFromWallClipです。

これらのスクリプトの設定を見ていきましょう。

FreeLockCam

FreeLockCamスクリプトはターゲットを追いかけたりマウスの移動によってカメラを回転させたりしています。

  • Targetはカメラが追いかけるターゲットを指定します。
  • Auto Target Playerはチェックを入れるとPlayerタグを設定されたゲームオブジェクトが自動でTargetに設定されます。
  • Update Typeはカメラの動作を処理する実行タイミングを選択します。FixedUpdateは固定フレームレート、LateUpdateはUpdateの後、ManualUpdateは自身でメソッドを呼び出して実行します。
  • Move Speedはカメラがターゲットを追いかけるスピードです。数値を大きくすれば早くターゲットに追いつきます。
  • Turn Speedはマウスの動きに合わせてカメラが回転するスピードです。
  • Turn Smoothingはマウスの動きに合わせてどれだけスムーズにカメラが動くかの値です。
  • Turn SpeedとTurn Smoothingでカメラの回転度合いを調整します。

  • Tilt Maxはカメラの傾斜の最大角度です。
  • Tilt Minはカメラの傾斜の最小角度です。
  • Tilt MaxとTilt Minはカメラの角度に制限を持たせる為の設定で限界値を設定しておきます。

  • Lock Cursorにチェックを入れるとマウスカーソルが非表示になります。
  • Vertical Auto Returnはチェックを入れると画面上の縦のカメラ角度を自然に元の角度に戻ります。
  • ProtectCameraFromWallClip

    ProtectCameraFromWallClipスクリプトは写しているターゲットとカメラの間に他のゲームオブジェクトがあり、ターゲットを写せなくなった時にターゲットを写す為の処理をしています。

  • Clip Move Timeは障害物が間に挟まってからターゲットを写すようにするまでの時間を設定します。
  • Return Timeは一旦障害物を避けてターゲットを写してから間に何もなくなって元の状態に戻す時の時間を設定します。
  • Sphere Cast Radiusは障害物を検出する円の半径を設定します。
  • Visualize In Editorはチェックを入れると障害物を検知するレイを表示する為のものだと思いますが、何もせずDebug.DrawRayをしていてスクリプトの処理でvisualizeIn Editorは使ってないっぽいです。
  • Closest Distanceはカメラを動かした時のターゲットとの最小距離を指定します。数値が大きいと障害物にめり込むのでこのスクリプト自体が意味をなさなくなる可能性もあります。
  • Dont Clip Tagは障害物として除外するタグを設定します。
  • FreeLockCameraRigのパラメータを設定して確認

    FreeLockCameraRigの設定値を見てきたので実際に設定して確認してみます。

    FreeLockCameraRigのパラメータを設定

    ↑のような感じで設定してみました。

    ヒエラルキー上に地面と壁、動くキャラクターを設置しキャラクターをFreeLockCamスクリプトのTargetにドラッグ&ドロップします。

    それでは試してみましょう。

    ↑のようになりました。

    キャラクターが動くとカメラが追従してゆき間に障害物があるとカメラが障害物の前に移動しキャラクターを写すようになります。

    動画の最後の方でVertical Auto Returnのチェックを入れるとマウスでカメラの角度を変更した後に自然に角度が元に戻っているのがわかると思います。

    Return Timeが非常に短い為にただカクついてるだけに見えてしまいますが・・・・・(^_^;)

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