表示テーマ
CameraController Component
対象への追従と注視、操作入力によるCamera回転を行います。
設定する手順
- 同じGameObjectにCameraを追加し、追従・注視の方式と対象を指定します。
- SceneViewまたはGameViewで結果を確認します。
- 編集中のSceneまたはPrefabを保存します。
項目の説明
| 項目 | C#名 | 型 | 操作 | 定義時の初期値 | 意味 |
|---|---|---|---|---|---|
| 有効 | Enabled | bool | 読取・変更 | true | このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
| Mode | Mode | CameraControlMode | 読取・変更 | CameraControlMode::Follow | 動作方式を選びます。選択により表示される追加設定が変わります。 |
| 編集中プレビュー | EditorPreview | bool | 読取・変更 | false | PlayしていないEditorでも追従・注視を確認します。 |
| Follow.Enabled | Follow.Enabled | bool | 読取・変更 | true | 追従:このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
| Follow.Target | Follow.Target | GameObject? | 読取・変更 | {} | 追従:追従・注視・遅延表示などの対象GameObject参照です。 |
| Follow.Offset | Follow.Offset | Vector3 | 読取・変更 | Vector3(0.0f, 3.0f, -8.0f) | 追従:基準位置や色へ加えるオフセットです。 |
| Follow.AxisMask | Follow.AxisMask | Vector3 | 読取・変更 | Vector3::AnyInit(1.0f) | 追従:処理を適用する軸を選びます。 |
| Follow.PositionLerpSpeed | Follow.PositionLerpSpeed | float | 読取・変更 | 4.8f | 追従:追従位置を近づける速さです。大きいほど素早く追従します。 |
| Follow.EnableInputRotation | Follow.EnableInputRotation | bool | 読取・変更 | false | 追従:入力でCameraを回転できるようにします。 |
| Follow.InputLerpRate | Follow.InputLerpRate | float | 読取・変更 | 7.8f | 追従:操作による回転の補間速度です。 |
| Follow.PadSensitivity | Follow.PadSensitivity | Vector2 | 読取・変更 | Vector2(1.91f, 2.88f) | 追従:ゲームパッド操作の感度です。 |
| Follow.MouseSensitivity | Follow.MouseSensitivity | Vector2 | 読取・変更 | Vector2(0.002f, 0.002f) | 追従:マウス操作の感度です。 |
| Follow.PadEnabled | Follow.PadEnabled | bool | 読取・変更 | true | 追従:ゲームパッド操作を受け付けます。 |
| Follow.MouseEnabled | Follow.MouseEnabled | bool | 読取・変更 | true | 追従:マウス操作を受け付けます。 |
| Follow.AutoInputDevice | Follow.AutoInputDevice | bool | 読取・変更 | false | 追従:入力機器の自動選択を使います。 |
| Follow.InvertPitch | Follow.InvertPitch | bool | 読取・変更 | false | 追従:上下方向の回転操作を反転します。 |
| LookAt.Enabled | LookAt.Enabled | bool | 読取・変更 | false | 注視:このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
| LookAt.Target | LookAt.Target | GameObject? | 読取・変更 | {} | 注視:追従・注視・遅延表示などの対象GameObject参照です。 |
| LookAt.Offset | LookAt.Offset | Vector3 | 読取・変更 | Vector3::AnyInit(0.0f) | 注視:基準位置や色へ加えるオフセットです。 |
| LookAt.RotationLerpSpeed | LookAt.RotationLerpSpeed | float | 読取・変更 | 12.0f | 注視:注視方向へ回転を近づける速度です。 |
| LookAt.LockRoll | LookAt.LockRoll | bool | 読取・変更 | true | 注視:Cameraの傾きを抑えます。 |
| FollowLookAt.Follow.Enabled | FollowLookAt.Follow.Enabled | bool | 読取・変更 | true | 追従+注視・追従:このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
| FollowLookAt.Follow.Target | FollowLookAt.Follow.Target | GameObject? | 読取・変更 | {} | 追従+注視・追従:追従・注視・遅延表示などの対象GameObject参照です。 |
| FollowLookAt.Follow.Offset | FollowLookAt.Follow.Offset | Vector3 | 読取・変更 | Vector3(0.0f, 3.0f, -8.0f) | 追従+注視・追従:基準位置や色へ加えるオフセットです。 |
| FollowLookAt.Follow.AxisMask | FollowLookAt.Follow.AxisMask | Vector3 | 読取・変更 | Vector3::AnyInit(1.0f) | 追従+注視・追従:処理を適用する軸を選びます。 |
| FollowLookAt.Follow.PositionLerpSpeed | FollowLookAt.Follow.PositionLerpSpeed | float | 読取・変更 | 4.8f | 追従+注視・追従:追従位置を近づける速さです。大きいほど素早く追従します。 |
| FollowLookAt.Follow.EnableInputRotation | FollowLookAt.Follow.EnableInputRotation | bool | 読取・変更 | false | 追従+注視・追従:入力でCameraを回転できるようにします。 |
| FollowLookAt.Follow.InputLerpRate | FollowLookAt.Follow.InputLerpRate | float | 読取・変更 | 7.8f | 追従+注視・追従:操作による回転の補間速度です。 |
| FollowLookAt.Follow.PadSensitivity | FollowLookAt.Follow.PadSensitivity | Vector2 | 読取・変更 | Vector2(1.91f, 2.88f) | 追従+注視・追従:ゲームパッド操作の感度です。 |
| FollowLookAt.Follow.MouseSensitivity | FollowLookAt.Follow.MouseSensitivity | Vector2 | 読取・変更 | Vector2(0.002f, 0.002f) | 追従+注視・追従:マウス操作の感度です。 |
| FollowLookAt.Follow.PadEnabled | FollowLookAt.Follow.PadEnabled | bool | 読取・変更 | true | 追従+注視・追従:ゲームパッド操作を受け付けます。 |
| FollowLookAt.Follow.MouseEnabled | FollowLookAt.Follow.MouseEnabled | bool | 読取・変更 | true | 追従+注視・追従:マウス操作を受け付けます。 |
| FollowLookAt.Follow.AutoInputDevice | FollowLookAt.Follow.AutoInputDevice | bool | 読取・変更 | false | 追従+注視・追従:入力機器の自動選択を使います。 |
| FollowLookAt.Follow.InvertPitch | FollowLookAt.Follow.InvertPitch | bool | 読取・変更 | false | 追従+注視・追従:上下方向の回転操作を反転します。 |
| FollowLookAt.LookAt.Enabled | FollowLookAt.LookAt.Enabled | bool | 読取・変更 | false | 追従+注視・注視:このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
| FollowLookAt.LookAt.Target | FollowLookAt.LookAt.Target | GameObject? | 読取・変更 | {} | 追従+注視・注視:追従・注視・遅延表示などの対象GameObject参照です。 |
| FollowLookAt.LookAt.Offset | FollowLookAt.LookAt.Offset | Vector3 | 読取・変更 | Vector3::AnyInit(0.0f) | 追従+注視・注視:基準位置や色へ加えるオフセットです。 |
| FollowLookAt.LookAt.RotationLerpSpeed | FollowLookAt.LookAt.RotationLerpSpeed | float | 読取・変更 | 12.0f | 追従+注視・注視:注視方向へ回転を近づける速度です。 |
| FollowLookAt.LookAt.LockRoll | FollowLookAt.LookAt.LockRoll | bool | 読取・変更 | true | 追従+注視・注視:Cameraの傾きを抑えます。 |
Inspectorの設定と使い方
「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。
| 設定・操作 | 編集場所 | C#の入口 | 意味・使い方 |
|---|---|---|---|
| 有効・編集中プレビュー・モード | Editor / C# | Enabled / EditorPreview / Mode | Followは位置追従、LookAtは注視、FollowLookAtは両方を使います。EditorPreviewはPlayしていない編集画面での確認用です。 |
| Follow:対象・オフセット・軸マスク | Editor / C# | Follow / FollowLookAt | 追従対象とそこからのずらし量、追従する軸を指定します。位置補間を使ってCameraの移動を追い付かせます。Modeごとに使用するFollow設定を変更します。 |
| Follow:入力回転 | Editor / C# | Follow / FollowLookAt | 入力回転の有無、入力補間、パッド・マウス感度、有効デバイス、自動選択、縦回転反転を指定します。位置追従だけが必要な演出では入力回転を無効にします。 |
| LookAt:対象・オフセット・回転補間 | Editor / C# | LookAt / FollowLookAt | 位置追従先とは別の注視対象を指定できます。回転補間で向きの変化を緩め、ロール固定でCameraの傾きを抑えます。 |
初期値はEngineのComponent定義時の値で、C++表記を含みます。C#へ貼り付ける実行例ではありません。既存Sceneの保存値や既定Assetがある場合はそちらが優先されます。数値の編集範囲はInspectorで制限される場合があります。
C#から使う
操作型はCameraControllerです。 GameObjectから取得する基本操作はGameObjectの操作を参照してください。以下には基本プロパティだけでなく、公開関数・追加の設定API・継承した共通操作も掲載します。
実用例:プレイヤーの後方へCameraを追従させる
CameraとCameraControllerのあるGameObjectへ追加し、targetへプレイヤーを設定します。
cs
using NEMEngine;
public sealed class FollowCamera : MonoBehaviour {
[SerializeField] private GameObject? target;
[SerializeField] private Vector3 offset = new Vector3(0.0f, 2.0f, -5.0f);
void Start() {
// 同じCameraControllerの追従と注視を有効にする
var controller = GetComponent<CameraController>();
if (controller == null || target == null) return;
controller.Enabled = true;
controller.Mode = CameraControlMode.FollowLookAt;
// 対象の後方へ追従し、入力による回転を止める
controller.FollowLookAt.Follow.Enabled = true;
controller.FollowLookAt.Follow.Target = target;
controller.FollowLookAt.Follow.Offset = offset;
controller.FollowLookAt.Follow.PositionLerpSpeed = 5.0f;
controller.FollowLookAt.Follow.EnableInputRotation = false;
// 位置の追従先と同じ対象へ向きを合わせる
controller.FollowLookAt.LookAt.Enabled = true;
controller.FollowLookAt.LookAt.Target = target;
controller.FollowLookAt.LookAt.LockRoll = true;
}
}選択値(Enum)
| 型・各値の詳説 | 使える値 |
|---|---|
| CameraControlMode | Follow / FollowLookAt / LookAt / None |
CameraController
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public bool EditorPreview | プロパティ(読取・変更) | PlayしていないEditorでも追従・注視を確認します。 |
public bool Enabled | プロパティ(読取・変更) | このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
public CameraController.FollowAccessor Follow | プロパティ(読取専用) | Cameraの追従設定です。 |
public CameraController.FollowLookAtAccessor FollowLookAt | プロパティ(読取専用) | 追従と注視を同時に行う設定です。 |
public static CameraController FromEntity(GameObject gameObject) | 関数 | 既にComponentを持つGameObjectから操作用の参照を作ります。Componentを追加する操作ではありません。 |
public CameraController.LookAtAccessor LookAt | プロパティ(読取専用) | 指定したワールド位置へ正面を向けます。 |
public CameraControlMode Mode | プロパティ(読取・変更) | 動作方式を選びます。選択により表示される追加設定が変わります。 |
public static int componentTypeID | プロパティ(読取専用) | 組み込みComponentの接続識別子です。通常のゲームコードではGetComponentで取得します。 |
CameraController.FollowAccessor
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public bool AutoInputDevice | プロパティ(読取・変更) | 追従+注視・追従:入力機器の自動選択を使います。 |
public Vector3 AxisMask | プロパティ(読取・変更) | 追従+注視・追従:処理を適用する軸を選びます。 |
public bool EnableInputRotation | プロパティ(読取・変更) | 追従+注視・追従:入力でCameraを回転できるようにします。 |
public bool Enabled | プロパティ(読取・変更) | 追従+注視・追従:このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
public float InputLerpRate | プロパティ(読取・変更) | 追従+注視・追従:操作による回転の補間速度です。 |
public bool InvertPitch | プロパティ(読取・変更) | 追従+注視・追従:上下方向の回転操作を反転します。 |
public bool MouseEnabled | プロパティ(読取・変更) | 追従+注視・追従:マウス操作を受け付けます。 |
public Vector2 MouseSensitivity | プロパティ(読取・変更) | 追従+注視・追従:マウス操作の感度です。 |
public Vector3 Offset | プロパティ(読取・変更) | 追従+注視・追従:基準位置や色へ加えるオフセットです。 |
public bool PadEnabled | プロパティ(読取・変更) | 追従+注視・追従:ゲームパッド操作を受け付けます。 |
public Vector2 PadSensitivity | プロパティ(読取・変更) | 追従+注視・追従:ゲームパッド操作の感度です。 |
public float PositionLerpSpeed | プロパティ(読取・変更) | 追従+注視・追従:追従位置を近づける速さです。大きいほど素早く追従します。 |
public GameObject? Target | プロパティ(読取・変更) | 追従+注視・追従:追従・注視・遅延表示などの対象GameObject参照です。 |
CameraController.FollowLookAtAccessor
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public CameraController.FollowAccessor Follow | プロパティ(読取専用) | Cameraの追従設定です。 |
public CameraController.LookAtAccessor LookAt | プロパティ(読取専用) | 指定したワールド位置へ正面を向けます。 |
CameraController.LookAtAccessor
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
public bool Enabled | プロパティ(読取・変更) | 追従+注視・注視:このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
public bool LockRoll | プロパティ(読取・変更) | 追従+注視・注視:Cameraの傾きを抑えます。 |
public Vector3 Offset | プロパティ(読取・変更) | 追従+注視・注視:基準位置や色へ加えるオフセットです。 |
public float RotationLerpSpeed | プロパティ(読取・変更) | 追従+注視・注視:注視方向へ回転を近づける速度です。 |
public GameObject? Target | プロパティ(読取・変更) | 追従+注視・注視:追従・注視・遅延表示などの対象GameObject参照です。 |
継承する共通操作:Component
継承する共通操作:Object
使用時の注意
追従先と注視先は別にできます。実行中だけの操作かEditor Previewを使うかを区別します。
Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。