CameraControllerを使ってみる-2

導入はこちら

英語ドキュメント

基本の使い方

CameraControllerコンポーネントは[Camera Motor]という種類のコンポーネントを持っています。このモーターを切り替えることでカメラの動作を変更することができます。

このモーターは[Camera Contorller]インスペクタの[Advanced]ボタンを押して表示することができます。

CameraMotorsタブの各Camera Motor名の→にあるチェックボックスから動作するカメラの動きを選択できます。

表示がありませんが、左列のチェックボックスは動作可能か、右列が現在適用されているモーターになります。

試しに右列のチェックボックスをぽちぽちしてみると動きが変わることが分かると思います。

スクリプトから変更する場合

で出来ます。

各モーターの詳細設定は[CameraMotors]タブのそれぞれをクリックすることで変更することができます。タブ内の下側にある+-のボタンでモーターの追加と削除ができます。


ざっくりとそれぞれのプロパティを見ていきます。

3rd Person Follow

ともかく設定するべきはDistanceのフィールドだと思います。キャラクターとカメラとの距離を制御します。

YawやPitchは縦と横の動きの詳細です。実際に値を変更してみると動きが分かるかと思います。

Zoom Properties

  • Min-拡大したときの距離
  • Max-離れているときの距離

設定はこれくらいです。最初逆かと思ってた……。

Speedはそのままの意味です。値を変更して使ってみるのが分かりやすいかと。

Zoom Action Aliasは入力で使う文字列です。

UnityのInputの処理の詳細は省きますが、この文字列を取得するようにInputSource内の処理を記述する必要があります。デフォルトで設定されるUnityInputSourceではそのまま使えますが、入力をアセットから使うなど自分でInputSourceのスクリプトを書く場合、考える必要があります。

Collision Properties

カメラの衝突するかの範囲です。FPSなんかで、カメラが壁に当たってすり抜けないようにしたいとき便利です。

  • CollisionLayer--衝突するレイヤー
  • Min Distance-衝突にかかわらず、この距離は離れます。
  • Radius--カメラのコライダーの範囲です。
  • Recovery Speed--衝突するものがなくなったりしたときに、元のDistanceに戻るまでのスピード?