飛行機の制御を作ったら、ハンドカメラ風のカメラ挙動が欲しくなります。で、StandardAssetsに含まれるCameraにソレっぽい挙動があったので、試しに使ってみます。
HandheldCamera
StandardAssets > Cameraでインポートしたアセット群にHandheldCameraなるPrefabが含まれます。
これがハンドカメラ風のカメラ挙動で、機能は
- Targetに指定したGameObjectを追跡する
- 手ブレ表現
- 対象の移動先をある程度予測する
- 距離に応じてズームする
という物です。
HandHeldCamコンポーネント
HandHeldCameraプレハブに付いてるコンポーネントの一つは、HandHeldCamコンポーネントです。これは対象の追跡や手ブレ表現、予測等、カメラの向きを管理する処理を担当します。
Targetは追跡するGameObjectを設定します。これが空の場合かつAutoTargetPlayerが設定されている場合、Playerタグを探してTargetに指定します。
Rotation Rangeは単純にカメラを回せる範囲。
Follow Speedは少なければ少ないほど高速で追跡します。
Sway SpeedとBase Sway Ammountは、手ブレの速度と範囲を指定します。Base Sway Ammountが多ければ多い程、手ブレで対象が画面外に行きます。
Tracking Sway AmountとTrackingBiasが、(大雑把に)予想した対象の移動先を追うパラメータみたいです。
Target Field Of View
TargetFieldOfViewは、対象に対してズームを行う機能みたいです。
距離に応じてFOVを調整してくれるので、離れても大きさが極端に小さくなる事を回避してくれます。なお、追跡(ドリー)ではなくズームです。
Fovの調整は、Fov Adjust Time(速度)とZoom Amount Multiplier(ズーム)で行います。
Include Effects In Sizeはエフェクトを含めるかどうかです。これはStart時に初期化するので、Start時以降に変更しても効果がない項目です。