11-3. カメラの実装
カメラの制御
カメラの制御を行うと、印象的な演出などを行うことができプレイヤー体験に大きな影響を与えることができます。ここではクライアント制御の代表例として、Scriptによる独自のカメラ制御方法を見ていきます。
重要なカメラパラメータ
カメラ制御では以下のパラメータを把握し制御することが重要となります。特にCFrameはカメラの位置、向きともに決定するので重要となります。
- CFrame: カメラの位置と向き
- Focus: カメラの注視点座標
- CameraType: カメラの挙動タイプ指定
- CameraSubject: カメラが追跡する対象(被写体)
- FieldOfView: カメラの視野(ズーム等)
CameraTypeによる制御切り替え
CameraはCameraTypeにより様々な挙動がプリセットで用意されています。通常はCustomとなっており、プレイヤーに追従します。Scriptで独自制御する際には、にする必要があります。以下がCameraTypeの一覧です。
- Fixed: カメラが固定されます。
- Attach: 被写体とともに固定オフセットで移動、被写体に合わせて回転もします。
- Watch: カメラは静止しますが、被写体を画面の中央に保つために回転します。
- Track: カメラは被写体とともに移動しますが、自動的には回転はしません。
- Follow: カメラは被写体とともに移動し、被写体を中心に保つように回転します。
- Custom: Robloxのコアスクリプトが制御するモードで、これがデフォルト挙動となります。
- Orbital: カメラのY座標が固定ですが、プレーヤーを中心に回転できます。
- Scriptable: 開発者がカスタム動作をScriptで組むためのモードです。
CameraModeによる視点切り替え
Playerがもつプロパティにより、通常の三人称視点か一人称視点かを切り替えることが可能です。CameraModeは以下の2種類があります。
- Classic: 通常の三人称視点、ズームにより一人称視点に切替も可能
- LockFirstPerson: 一人称視点に固定
実装例:Scriptによる独自カメラ制御
Scriptableによる独自カメラ制御例
以下でScriptによる制御の実例を提示します。StarterPlayerScriptのLocalScriptにて実装することで動作します。
このコードは、カメラをScriptableに設定し、新しい位置と注視点に基づいてカメラのCFrameを更新します。また、TweenServiceを用いてカメラを補間移動して、カメラアニメーションする演出カメラとなっています。