Skip to content

CameraController Component ​

対象への追従と注視、操作入力によるCamera回転を行います。

設定する手順 ​

  1. 同じGameObjectにCameraを追加し、追従・注視の方式と対象を指定します。
  2. SceneViewまたはGameViewで結果を確認します。
  3. 編集中のSceneまたはPrefabを保存します。

項目の説明 ​

項目C#名型操作定義時の初期値意味
有効Enabledbool読取・変更trueこのComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。
ModeModeCameraControlMode読取・変更CameraControlMode::Follow動作方式を選びます。選択により表示される追加設定が変わります。
編集中プレビューEditorPreviewbool読取・変更falsePlayしていないEditorでも追従・注視を確認します。
Follow.EnabledFollow.Enabledbool読取・変更true追従:このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。
Follow.TargetFollow.TargetGameObject?読取・変更{}追従:追従・注視・遅延表示などの対象GameObject参照です。
Follow.OffsetFollow.OffsetVector3読取・変更Vector3(0.0f, 3.0f, -8.0f)追従:基準位置や色へ加えるオフセットです。
Follow.AxisMaskFollow.AxisMaskVector3読取・変更Vector3::AnyInit(1.0f)追従:処理を適用する軸を選びます。
Follow.PositionLerpSpeedFollow.PositionLerpSpeedfloat読取・変更4.8f追従:追従位置を近づける速さです。大きいほど素早く追従します。
Follow.EnableInputRotationFollow.EnableInputRotationbool読取・変更false追従:入力でCameraを回転できるようにします。
Follow.InputLerpRateFollow.InputLerpRatefloat読取・変更7.8f追従:操作による回転の補間速度です。
Follow.PadSensitivityFollow.PadSensitivityVector2読取・変更Vector2(1.91f, 2.88f)追従:ゲームパッド操作の感度です。
Follow.MouseSensitivityFollow.MouseSensitivityVector2読取・変更Vector2(0.002f, 0.002f)追従:マウス操作の感度です。
Follow.PadEnabledFollow.PadEnabledbool読取・変更true追従:ゲームパッド操作を受け付けます。
Follow.MouseEnabledFollow.MouseEnabledbool読取・変更true追従:マウス操作を受け付けます。
Follow.AutoInputDeviceFollow.AutoInputDevicebool読取・変更false追従:入力機器の自動選択を使います。
Follow.InvertPitchFollow.InvertPitchbool読取・変更false追従:上下方向の回転操作を反転します。
LookAt.EnabledLookAt.Enabledbool読取・変更false注視:このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。
LookAt.TargetLookAt.TargetGameObject?読取・変更{}注視:追従・注視・遅延表示などの対象GameObject参照です。
LookAt.OffsetLookAt.OffsetVector3読取・変更Vector3::AnyInit(0.0f)注視:基準位置や色へ加えるオフセットです。
LookAt.RotationLerpSpeedLookAt.RotationLerpSpeedfloat読取・変更12.0f注視:注視方向へ回転を近づける速度です。
LookAt.LockRollLookAt.LockRollbool読取・変更true注視:Cameraの傾きを抑えます。
FollowLookAt.Follow.EnabledFollowLookAt.Follow.Enabledbool読取・変更true追従+注視・追従:このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。
FollowLookAt.Follow.TargetFollowLookAt.Follow.TargetGameObject?読取・変更{}追従+注視・追従:追従・注視・遅延表示などの対象GameObject参照です。
FollowLookAt.Follow.OffsetFollowLookAt.Follow.OffsetVector3読取・変更Vector3(0.0f, 3.0f, -8.0f)追従+注視・追従:基準位置や色へ加えるオフセットです。
FollowLookAt.Follow.AxisMaskFollowLookAt.Follow.AxisMaskVector3読取・変更Vector3::AnyInit(1.0f)追従+注視・追従:処理を適用する軸を選びます。
FollowLookAt.Follow.PositionLerpSpeedFollowLookAt.Follow.PositionLerpSpeedfloat読取・変更4.8f追従+注視・追従:追従位置を近づける速さです。大きいほど素早く追従します。
FollowLookAt.Follow.EnableInputRotationFollowLookAt.Follow.EnableInputRotationbool読取・変更false追従+注視・追従:入力でCameraを回転できるようにします。
FollowLookAt.Follow.InputLerpRateFollowLookAt.Follow.InputLerpRatefloat読取・変更7.8f追従+注視・追従:操作による回転の補間速度です。
FollowLookAt.Follow.PadSensitivityFollowLookAt.Follow.PadSensitivityVector2読取・変更Vector2(1.91f, 2.88f)追従+注視・追従:ゲームパッド操作の感度です。
FollowLookAt.Follow.MouseSensitivityFollowLookAt.Follow.MouseSensitivityVector2読取・変更Vector2(0.002f, 0.002f)追従+注視・追従:マウス操作の感度です。
FollowLookAt.Follow.PadEnabledFollowLookAt.Follow.PadEnabledbool読取・変更true追従+注視・追従:ゲームパッド操作を受け付けます。
FollowLookAt.Follow.MouseEnabledFollowLookAt.Follow.MouseEnabledbool読取・変更true追従+注視・追従:マウス操作を受け付けます。
FollowLookAt.Follow.AutoInputDeviceFollowLookAt.Follow.AutoInputDevicebool読取・変更false追従+注視・追従:入力機器の自動選択を使います。
FollowLookAt.Follow.InvertPitchFollowLookAt.Follow.InvertPitchbool読取・変更false追従+注視・追従:上下方向の回転操作を反転します。
FollowLookAt.LookAt.EnabledFollowLookAt.LookAt.Enabledbool読取・変更false追従+注視・注視:このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。
FollowLookAt.LookAt.TargetFollowLookAt.LookAt.TargetGameObject?読取・変更{}追従+注視・注視:追従・注視・遅延表示などの対象GameObject参照です。
FollowLookAt.LookAt.OffsetFollowLookAt.LookAt.OffsetVector3読取・変更Vector3::AnyInit(0.0f)追従+注視・注視:基準位置や色へ加えるオフセットです。
FollowLookAt.LookAt.RotationLerpSpeedFollowLookAt.LookAt.RotationLerpSpeedfloat読取・変更12.0f追従+注視・注視:注視方向へ回転を近づける速度です。
FollowLookAt.LookAt.LockRollFollowLookAt.LookAt.LockRollbool読取・変更true追従+注視・注視:Cameraの傾きを抑えます。

Inspectorの設定と使い方 ​

「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。

設定・操作編集場所C#の入口意味・使い方
有効・編集中プレビュー・モードEditor / C#Enabled / EditorPreview / ModeFollowは位置追従、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) ​

型・各値の詳説使える値
CameraControlModeFollow / 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 ​

宣言・詳説種類・操作役割
public T AddComponent<T>() where T : Component関数ComponentまたはScriptを追加し、操作する参照を返します。
public T? GetComponent<T>() where T : class関数component access(owner GameObjectへの委譲)
public T? GetComponentInChildren<T>(bool includeInactive = false) where T : class関数子階層から指定型のComponentを探します。
public T? GetComponentInParent<T>(bool includeInactive = false) where T : class関数親階層から指定型のComponentを探します。
public T[] GetComponents<T>() where T : class関数同じGameObjectにある指定型のComponentをすべて取得します。
public void GetComponents<T>(List<T> results) where T : class関数同じGameObjectにある指定型のComponentをすべて取得します。
public T[] GetComponentsInChildren<T>(bool includeInactive = false) where T : class関数子階層にある指定型のComponentを収集します。
public void GetComponentsInChildren<T>(bool includeInactive, List<T> results) where T : class関数子階層にある指定型のComponentを収集します。
public void GetComponentsInChildren<T>(List<T> results) where T : class関数子階層にある指定型のComponentを収集します。
public T[] GetComponentsInParent<T>(bool includeInactive = false) where T : class関数親階層にある指定型のComponentを収集します。
public void GetComponentsInParent<T>(bool includeInactive, List<T> results) where T : class関数親階層にある指定型のComponentを収集します。
public override int GetHashCode()関数同じ値を検索Keyに使うためのHashを返します。
public bool HasComponent<T>() where T : class関数指定型のComponentを持つかを調べます。
public void RemoveComponent<T>() where T : Component関数指定型のComponentを取り除きます。
public bool TryGetComponent<T>(out T component) where T : class関数Componentを検索し、見つかったかをbool、結果をout引数で返します。
public GameObject gameObjectプロパティ(読取専用)このComponentを所有するGameObjectです。
public Transform transformプロパティ(読取専用)所有GameObjectのTransformです。

継承する共通操作:Object ​

宣言・詳説種類・操作役割
public static void Destroy(Object? target)関数参照先の個体だけを安全地点で破棄する
public override bool Equals(object? obj)関数2つの値が等しいかを調べます。
public override int GetHashCode()関数同じ値を検索Keyに使うためのHashを返します。
public static GameObject Instantiate(Prefab original)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, GameObject? parent)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, Vector3 position, Quaternion rotation)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, Vector3 position, Quaternion rotation, GameObject? parent)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, GameObject? parent) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, Vector3 position, Quaternion rotation) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, Vector3 position, Quaternion rotation, GameObject? parent) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static bool operator ==(Object? lhs, Object? rhs)関数等値比較を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。
public static implicit operator bool(Object? value)関数暗黙の型変換を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。
public static bool operator !=(Object? lhs, Object? rhs)関数不等値比較を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。

使用時の注意 ​

追従先と注視先は別にできます。実行中だけの操作かEditor Previewを使うかを区別します。

Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。

関連項目 ​

現行版マニュアル · 8ea58ba2 · 2026-10-28確認