テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】ハンドカメラ風カメラの挙動を実現するHandheldCamera

f:id:tsubaki_t1:20161231005920g:plain

飛行機の制御を作ったら、ハンドカメラ風のカメラ挙動が欲しくなります。で、StandardAssetsに含まれるCameraにソレっぽい挙動があったので、試しに使ってみます。

HandheldCamera

StandardAssets > Cameraでインポートしたアセット群にHandheldCameraなるPrefabが含まれます。
これがハンドカメラ風のカメラ挙動で、機能は

  • Targetに指定したGameObjectを追跡する
  • 手ブレ表現
  • 対象の移動先をある程度予測する
  • 距離に応じてズームする

という物です。

f:id:tsubaki_t1:20161231013943j:plain

HandHeldCamコンポーネント

HandHeldCameraプレハブに付いてるコンポーネントの一つは、HandHeldCamコンポーネントです。これは対象の追跡や手ブレ表現、予測等、カメラの向きを管理する処理を担当します。

f:id:tsubaki_t1:20161231010330j:plain

Targetは追跡するGameObjectを設定します。これが空の場合かつAutoTargetPlayerが設定されている場合、Playerタグを探してTargetに指定します。

Rotation Rangeは単純にカメラを回せる範囲。

Follow Speed少なければ少ないほど高速で追跡します。

Sway SpeedBase Sway Ammountは、手ブレの速度と範囲を指定します。Base Sway Ammountが多ければ多い程、手ブレで対象が画面外に行きます。

Tracking Sway AmountTrackingBiasが、(大雑把に)予想した対象の移動先を追うパラメータみたいです。

f:id:tsubaki_t1:20161231011608g:plain

Target Field Of View

TargetFieldOfViewは、対象に対してズームを行う機能みたいです。

f:id:tsubaki_t1:20161231013127j:plain

距離に応じてFOVを調整してくれるので、離れても大きさが極端に小さくなる事を回避してくれます。なお、追跡(ドリー)ではなくズームです。

tsubakit1.hateblo.jp

f:id:tsubaki_t1:20161231013050g:plain

Fovの調整は、Fov Adjust Time(速度)とZoom Amount Multiplier(ズーム)で行います。

Include Effects In Sizeはエフェクトを含めるかどうかです。これはStart時に初期化するので、Start時以降に変更しても効果がない項目です。

関連

tsubakit1.hateblo.jp

tsubakit1.hateblo.jp

tsubakit1.hateblo.jp

tsubakit1.hateblo.jp