Unityでカメラをズームする
スナイパーライフルのスコープっぽい感じでカメラをズームする方法を紹介します。
カメラ関連記事
■【スナイパーライフル】カメラのズームと倍率の制御について
■【接写】マウスホイールでカメラの向きにドリーイン・ドリーアウトさせる
■【FPS向け】主観カメラへの切り替えと、プレイヤーの移動方法について
カメラの位置は変えずに、Field Of Viewの値を変更して視野角を絞り込みます。
© Unity Technologies Japan/UCL
スクリプトから視野角を変更する
主観視点のカメラに下記のスクリプトを適用します。
using UnityEngine; public class FirstPersonCamera : MonoBehaviour { private Camera cam; void Start () { cam = GetComponent<Camera>(); } void Update() { float scroll = Input.GetAxis("Mouse ScrollWheel"); float view = cam.fieldOfView - scroll ; cam.fieldOfView = Mathf.Clamp(value : view, min : 0.1f, max : 45f); } }
スクロールはInput.GetAxis(“Mouse ScrollWheel”)で取得します。
マウスホイールをスクロールする向きによって正負が変化します。(何もしなければ0が取得される)
fieldOfViewは、値を小さくすると視野が狭くなり、カメラワーク的にはズームインとなります。
Mathf.Clampは、第1引数で受け取った値が第2引数と第3引数の範囲を超えないように値を返します。
この関数でfieldOfViewの値がマイナスになったり、極端に大きい値になることを制御します。
以上です。
最近よく読まれている記事
▶ 【速報】Unity 2017.1の7月リリースが決定
▶ 【スナイパーライフル】カメラのズームと倍率の制御について
▶ 【FPS向け】Unityで主観カメラへの切り替えと、プレイヤーの移動方法について
▶ 【接写モード】Unityでマウスホイールでカメラの向きにドリーイン・ドリーアウトさせる
▶ 【知らないと危ない】UnityのactiveSelfとactiveInHierarchyの違いについて