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を用いてカメラを補間移動して、カメラアニメーションする演出カメラとなっています。

参照すべき情報