UnityのStandardAssetsにあるCctvCamera(監視カメラ)を使う

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

キャラクターを写すカメラの動きは自身でスクリプトを作成しカメラに設定する事でも出来ますが、スタンダードアセットにはあらかじめいくつかのカメラワークをしてくれる機能が用意されていますので、今回はその中のCctvCameraを使用してみたいと思います。

CctvCameraを使用するとインスペクタで設定したターゲットを追いかけるようなカメラを簡単に作成する事が出来ます。

スポンサーリンク

CctvCameraの配置

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

CctvCameraはカメラ機能にあらかじめカメラ操作用のスクリプトが設定されたプレハブとなっているのでこれを配置するだけで使用する事が出来ます。

シーン作成時にあるMainCameraと機能がかぶってしまうのでメインカメラを非アクティブにしたり削除、またはお互いを切り替えて使用したりします。

CctvCameraのインスペクタは下のようになります。

CctvCameraのインスペクタ

カメラ操作のスクリプトはLookatTargetとTargetFieldOfViewになります。

LookatTarget

LookatTargetは設定したターゲットをカメラが写す機能です。

インスペクタで設定出来る値を見ていきましょう。

  • Targetはカメラが写すターゲットを設定します。
  • AutoTargetPlayerはチェックを入れておくと『Player』タグを設定しているゲームオブジェクトを自動でTargetに設定します。
  • UpdateTypeはカメラがキャラクターを写す時の実行タイミングを選びます。
  • FixedUpdateは固定フレームレート、LateUpdateはUpdateが行われた後、ManualUpdateは呼び出したいタイミングで自身でメソッド呼び出しをして実行させるタイプです。

  • RotationRangeはカメラの回転出来る範囲をX軸、Y軸で指定出来ます。90を設定すれば-45から45の間で回転します。
  • FollowSpeedはカメラのターゲットが移動した時にカメラがターゲットに追いつくまでの時間を設定します。
  • TargetFieldOfView

    TargetFieldOfViewはカメラのFieldOfViewを変更してターゲットをズームアップする機能です。

    インスペクタで設定出来る値を見てみましょう。

  • Targetはカメラが写すターゲットを設定します。
  • AutoTargetPlayerはチェックを入れておくと『Player』タグを設定しているゲームオブジェクトを自動でTargetに設定します。
  • UpdateTypeはカメラがキャラクターをズームアップする実行タイミングを選びます。
  • FixedUpdateは固定フレームレート、LateUpdateはUpdateが行われた後、ManualUpdateは呼び出したいタイミングで自身でメソッド呼び出しをして実行させるタイプです。

  • Fov Ajust TimeはFieldOfViewの変更にかかる時間を設定します。
  • Zoom Amount Multiplierはズーム量の設定で小さくすればするほどカメラをズームアップします。
  • Include Effects In SizeはFOVの最大範囲を取得する際にトレイルレンダラーやパーティクルシステムを取り除くかどうかみたいですが、チェックをしてもしなくても変化がないのでわかりません・・・・。
    このフィールドはスクリプトのどの辺で使っているのかわかりません・・・・、使っていない?
  • CctvCameraを使ってみる

    CctvCameraのスクリプトの設定項目を見てきたので、設定をして確認をしてみましょう。

    CctvCameraのインスペクタの設定をした画像

    ↑のように設定しました。

    ヒエラルキー上に地面と動くキャラクターを設置しキャラクターのTagにPlayerを設定します。

    LookAtTarget、TargetFieldOfViewスクリプトでAuto Target Playerのチェックを入れているのでPlayerタグを設定したキャラクターがTargetに設定されるはずです。

    ↑のようになりました。

    CctvCameraの機能ではCameraのFieldOfViewを変更して拡大・縮小を表現しているのでカメラの位置を動かしているわけではありません。

    その為、キャラクターとカメラの間に壁等が挟まるとキャラクターが見えなくなってしまいます。

    遠目からスコープを使ったライフルで遠くの敵を狙うといったような時に使えるかもしれませんね。

    スポンサーリンク

    記事をシェアして頂ける方はこちら

    フォローして頂くとやる気が出ます