Unity

【Unity】Game Creator 2 カメラシステム完全解説

【Unity】Game Creator 2 カメラシステム完全解説

当サイトを閲覧いただきありがとうございます。

本記事では、Game Creator 2のコア機能のひとつである「Cameras」(カメラシステム)について詳しく解説します。

Game Creatorのカメラシステムは、Unity標準のCameraの上に「役者(Camera Controller)」と「カメラアングル(Camera Shot)」を分離した独自モデルを被せ、三人称・一人称・固定・追従・ロックオンなどの挙動をノーコードで切り替えられるようにするシステムです。

公式ドキュメント:Game Creator 2 Documentation


Camerasとは

Game Creatorのカメラシステムは次の2つのコンポーネントから成ります。

  • Camera Controller:シーン中のGameObject(通常はMain Camera)に取り付ける。自分は何も挙動を持たず、現在アクティブなCamera Shotの振る舞いを真似るだけ
  • Camera Shot:カメラの具体的な挙動(追従・注視・オービットなど)を設定したコンポーネント。シーン中に何個でも置ける

たとえば「Main CameraにThird Person Shotが割り当たっている」状態では、Main CameraはそのShotの挙動(対象を追いかけつつマウスでオービット)に従って動きます。Shotを別のものに切り替えればMain Cameraの挙動も丸ごと差し替わります。

分かりやすいアナロジーとしては、Shotはシーンに散らばった「カメラアングルの候補」であり、あなた(監督)はどのアングルを画面に映し、どのタイミングで別アングルへ切るかを指示する役割です。Camera Controllerはその指示を受けて動く「カメラマン」と考えると理解しやすいと思います。

Main Cameraの位置付け

ほとんどのゲームではメインカメラは1台しか使いません。Main Camera コンポーネントはCamera Controllerの特別版で、任意のスクリプトからグローバルにアクセスできます。


Camera Controller(Main Camera)

作成

Hierarchy右クリック → Game Creator > Cameras > Main Camera で作成します。

コンポーネントの構成

Main Camera コンポーネントは3ブロックで構成されています。

  • Game Time:カメラ更新タイミング。既定は Game TimeTime.timeScale = 0 で停止)。UIのポーズ中もカメラだけ動かしたいなら Unscaled Time に設定します
  • Shot:このControllerに紐付くCamera Shot。未設定ならカメラは何もしません
  • Avoid Clipping:シーンジオメトリとカメラのめり込みを回避する設定

滑らかさの調整については、Shot側のSmoothingオプションでShotの挙動に対してどの程度ラグを持たせるかを制御します。適度なラグがあるとジッターが減りますが、強すぎると操作感が鈍くなります。


Camera Shot

作成

Hierarchy右クリック → Game Creator > Cameras > Shot Camera で作成します。シーンにMain Cameraが無ければ、Shot作成と同時に自動で生成して紐付けてくれます。

コンポーネントの中身

Camera Shot1つ1つが「このアングルはどういう挙動をするか」のパラメータ一式を持ちます。Shotタイプを変えたい場合は、コンポーネントの種類名をクリックしてドロップダウンから別タイプを選択します。

Is Main Shot(バージョン2.3.15以降)

すべてのCamera ShotにIs Main Shotトグルが付いています。ONにするとMain CameraのShotフィールドで「Main Shot」ドロップダウンから選択できるようになり、シーン中の主要Shotを1個で識別するショートカットになります。


Shotの種類

すべてのShotはVisual Scriptingから**Change To ShotRevert To Previous ShotSet Main Shot**命令でオンザフライに切り替え可能です。

Fixed Position(固定)

  • カメラ自体は動かない
  • ただし任意の対象を追尾するよう、その場で**旋回(パン・チルト)**はできる
  • 防犯カメラのような視点のイメージ

Follow Target(追従)

  • Fixed Positionに「一定距離を保って対象を追いかける」動作を足したもの
  • Diablo系のトップダウン視点に最適

Follow Track(レール追従)

  • 事前定義したレール状の経路をなぞりながら対象を追尾
  • 経路上の位置は「対象のオブジェクトが別のパス上でどこにいるか」で決まる
  • 直線廊下が多いが曲がり角でカメラを滑らかに回したいゲームに適しています

Animation(アニメ)

  • 事前定義した経路に沿って一定時間で移動し、最後の位置で停止
  • カットシーンのようにアニメーションShotを繋いで動的にアクションを追うのが得意

First Person(一人称)

対象(通常はHumanoid)の位置にカメラを置き、頭の回転を受け付けます。豊富なサブ機能を内蔵しています。

  • Head Bobbing:歩行や走行時の重心移動を模したカメラの上下動・左右動
  • Head Leaning:移動方向へロール/ピッチを微量加え、推進力の手応えを表現
  • Noise:回転と位置に微小なランダム変動を乗せ、アイドル時の呼吸感や落ち着きの無さを表現
  • Offset(v2.17.51以降):カメラ位置にオフセット値を設定可能

これらはランタイムで値を変更可能です(例:スプリント後にNoise量を増やす等)。

Third Person(三人称)

  • 対象を追従し、ユーザー入力でその周りを自由にオービット
  • アクション/アドベンチャーの定番
  • v2.17.51以降、Shoulder(左右オフセット)とLift(上下オフセット)が動的に変化する仕様に変更

Lock On(ロックオン)

  • 対象Aの位置を追い、対象Bの方向を向く。常に両対象が画面に収まるように構図を取る
  • 敵ロックオンや、プレイヤーに見落としてほしくない重要オブジェクトを示す用途に最適

Anchor Peek(アンカー覗き込み)

  • 任意のオブジェクトにアンカリングし、その場から縦横に一定量のパン・チルトができる
  • 入力が止まると Restitute フィールドで中央に戻る
  • ゲームパッドでコーナーを覗き込ませる演出などに最適

Shotの遷移

Camera Controllerから別のCamera Shotにスムーズに乗り換えるには、Change Shot 命令(Visual Scripting:Cameras > Change To Shot)を使います。Duration(秒)を指定すれば時間をかけてブレンドされ、0なら即切替です。

Revert To Previous Shot「直前に使っていたShotに戻す」Set Main ShotIs Main Shot指定のShotを新たにMain Shotとして登録します。


Viewport(バージョン2.7.28以降)

すべてのCamera ShotにViewportセクションが追加され、Shotを切り替えた瞬間にカメラの各種プロパティも差し替えられるようになりました。

対象プロパティは以下のとおりです。

  • Field of View(FoV)
  • Projection Mode(Perspective/Orthographic)
  • Orthographic Size
  • そのほかShot固有設定

これにより、「街探索ではFoV 60°/戦闘シーンではFoV 80°」のような見せ方をShotに紐付けて管理できます。


使い始めるためのミニガイド

  1. Hierarchyで Game Creator > Cameras > Main Camera を作成(既存カメラに Main Camera コンポーネントを付けてもよい)
  2. Game Creator > Cameras > Shot Camera を作成。初期タイプは Fixed Position
  3. Shotのタイプ名をクリックしてThird Personに変更し、Look TargetOrbit Target にPlayerを指定
  4. Main Cameraの Shot に、いま作ったShotを割り当て(Shot作成時にシーンカメラが無ければ自動生成・自動割当)
  5. Play → マウス/右スティックでPlayerを中心にオービットできる状態になっていればOK
  6. カットシーンや戦闘演出を挟みたい場面では、別Shotを用意しておき**Change To Shot**でブレンド切替
  7. 必要に応じて Main CameraAvoid ClippingをONにして、壁抜け対策

Visual Scriptingリファレンス(Instruction/Condition/Event全一覧)

Camerasカテゴリ配下の全ノードです。命令名は英名(Visual Scripting上の表記)で記載しています。

Instructions(命令)

カテゴリは Cameras > (サブカテゴリ) です。

Cameras(ルート直下)

命令機能主なパラメータ
Change To Shot指定CameraのShotを切り替えCamera/Shot/Duration/Wait To Complete
Revert To Previous Shot直前のShotに戻すCamera/Duration
Set Main Shot新しいMain Shotを登録Shot

Properties(カメラプロパティ)

命令機能主なパラメータ
Change Culling Maskカリングマスクを変更Camera/Culling Mask
Change Field Of ViewFoVを時間経過で変更(Perspective用)Camera/FoV/Duration/Easing
Change Orthographic SizeOrthographic Sizeを時間経過で変更Camera/Size/Duration/Easing
Change ProjectionPerspective ↔ Orthographicの切替Camera/Projection
Change Smooth Time位置・回転の平滑時間を変更Camera/Smooth Position/Smooth Rotation

Shakes(手ブレ/ヒットストップ)

命令機能主なパラメータ
Shake Camera Burst単発の手ブレを一定時間再生Camera/Delay/Duration/Shake Position/Shake Rotation/Magnitude/Roughness/Transform(発生源)/Radius(減衰半径)
Shake Camera Sustain手動停止まで継続する手ブレCamera/Delay/Transition(ブレンドイン)/Shake Position/Shake Rotation/Magnitude/Roughness/Transform/Radius
Stop Camera Sustain Shake指定レイヤーのSustain Shakeを停止Camera/Layer/Delay/Transition
Stop Shake Camera BurstsすべてのBurst Shakeを停止Camera/Delay/Transition

Shots > Anchor(Anchor Peek Shot向け)

命令機能主なパラメータ
Change Distanceアンカーからの相対距離を変更Shot/Distance
Change Offsetターゲット基準のオフセット位置を変更Shot/Offset
Change Target注目対象を変更Shot/Target

Shots > Animation(Animation Shot向け)

命令機能主なパラメータ
Change Duration経路の完走秒数を変更Shot/Duration

Shots > First Person

命令機能主なパラメータ
Change Bone取り付ける頭部ボーンを変更Shot/Bone
Change Max Pitch上下の見上げ/見下ろし角の上限を変更Shot/Max Pitch
Change Sensitivityマウス/スティック感度(X/Y)を変更Shot/Sensitivity
Change Smooth Time回転の平滑時間を変更Shot/Smooth Time
Change Target一人称の視点元オブジェクトを変更Shot/Target

Shots > Follow

命令機能主なパラメータ
Change Distance対象との距離を変更Shot/Distance
Change Target追従対象を変更Shot/Follow

Shots > Head Bobbing

命令機能主なパラメータ
Enable Head BobbingHead BobbingのON/OFFShot/Active

Shots > Head Leaning

命令機能主なパラメータ
Enable Head LeaningHead LeaningのON/OFFShot/Active

Shots > Lock On

命令機能主なパラメータ
Change AnchorロックオンのAnchor(位置対象)を変更Shot/Anchor
Change DistanceAnchorからの距離を変更Shot/Distance
Change OffsetAnchor基準のオフセットを変更Shot/Offset

Shots > Look

命令機能主なパラメータ
Change Target注視対象を変更Shot/Target
Change Offset注視点のオフセットを変更Shot/Offset
Enable LookLookシステムのON/OFFShot/Active

Shots > Third Person

命令機能主なパラメータ
Change Aimエイム時のShoulder/Lift/Radius/Keep Center/Layer Maskを変更Shot/Shoulder/Lift/Radius/Keep Center/Layer Mask
Change Alignment対象背後への自動整列設定を変更Shot/Align with Target/Delay/Smooth Time
Change Max Pitch上下回転上限を変更Shot/Max Pitch
Change Sensitivity入力感度(X/Y)を変更Shot/Sensitivity

Shots > Zoom

命令機能主なパラメータ
Change Level Zoomズームレベル(0〜1)を変更Shot/Level
Change Min Distance最小ズーム距離を変更Shot/Min Distance
Change Smooth Timeズーム入力の平滑時間を変更Shot/Smooth Time

Conditions(条件)

条件判定内容主なパラメータ
Is Shot Active指定のCamera ShotがMain CameraにアサインされているならtrueShot

Events(イベント)

Trigger コンポーネントからCamera関連の状態変化を監視できます。

イベント発火タイミング
On Camera ChangeCameraのShotが何らかの理由で切り替わった瞬間
On Change From Shot自身のShotが非アクティブ化された瞬間(このShotから別Shotへ遷移)
On Change To Shot自身のShotがアクティブ化された瞬間(別ShotからこのShotへ遷移)

Tipsと注意点

  • 1シーン1 Main Cameraが基本です。複数カメラを扱う場合はCamera Controller(Main Camera でない汎用Controller)も利用可能ですが、多くのInstructionは Camera 引数で個別指定できます
  • シーン遷移時のカメラ設定:GC2のMain CameraとPlayerは Singleton<T> ではなく通常の MonoBehaviour であるため、シーン遷移(Load SceneのSingleモード)で両方とも破棄されます。そのため、遷移先のシーンにもPlayer・Main Camera・Camera Shotの3点を配置する必要があります。Camera ShotのIs Main ShotをONにしておけば、シーンロード時に自動でMain Cameraに紐付きます。ゲームプレイデータ(Stats・Inventory・Quests・Global Variables等)はモジュール側のシングルトンが管理しており、シーン遷移後も保持されます
  • LagとDurationの応答性のトレードオフ:Smooth系パラメータは大きいほど映像が滑らかになるが操作感が鈍ります。一人称/三人称では Smooth TimeSensitivity をまとめて調整するとよいです
  • カットシーンではChange Shotを起点に:タイムラインのように扱いたい場合、Shotを複数用意して順に Change To Shot するのが最も保守しやすい構成です
  • Camera ShakeのTransform / Radius:発生源を世界座標で与えると、プレイヤーが離れるほど揺れが減衰します。爆発物などに便利です
  • **Viewport(2.7.28以降)**を使えば、FOV・投影方式・Orthoサイズ をShot単位で持たせられるので、Instructionでいちいち戻さなくてよくなります

実践的な使い方 ― やりたいこと別の構成ガイド

「こういうカメラワークを実現したい」場合にどのShotタイプ・命令を使うかをまとめます。

アクション/アドベンチャーの三人称カメラ(基本)

プレイヤーの背後からキャラクターを映し、マウス/右スティックで自由に周囲を見回せるカメラです。

使うもの設定
ShotタイプThird Person
Look TargetPlayer
Orbit TargetPlayer
Avoid ClippingMain CameraでONにすると壁抜け防止

エイム時に肩越し(オーバーショルダー)視点へ切り替える

通常は背後中央ですが、エイムボタンを押すと肩越しに寄った構図に変わります。

使うもの役割
ShotタイプThird Person(通常時と同じShotを使い回す)
命令Change Aim
パラメータShoulder(ピボットからの水平距離)でカメラを左右にずらす/Lift(ピボットからの上方距離)で高さ調整/Radius(ピボットからの最大距離)で寄り具合を制御

フロー例:Trigger(エイムボタン押下)→ Change Aim(Shoulder/Lift/Radiusを変更)→ Trigger(エイムボタン解除)→ Change Aim(元の値に戻す)

Diablo風トップダウン視点

プレイヤーの真上(やや斜め)から一定距離で見下ろし、キャラクターが動いても追従します。

使うもの設定
ShotタイプFollow Target
Follow対象Player
Distance見下ろす距離(ワールド座標でShotとターゲットの相対距離)

ShotオブジェクトSelf体のTransform回転で見下ろし角度を決定し、Distanceでターゲットとの距離を調整します。

一人称視点にリアリティを加える(歩行時の揺れ・呼吸)

FPSで棒立ち感を減らし、歩行や待機に合った微細な揺れを付けます。

使うもの役割
ShotタイプFirst Person
Head Bobbing歩行・走行時の上下左右動(重心移動の模倣)
Head Leaning移動方向へのロール・ピッチ(推進力の手応え)
Noise回転・位置への微小ランダム変動(呼吸・落ち着きのなさ)

ダッシュ後にNoiseを増やす、歩行中だけHead Bobbingを有効にする(Enable Head Bobbing)、などの動的制御が可能です。

敵をロックオンして両者を画面に収める

アクションゲームでロックオン操作をしたとき、自キャラとロックオン対象の両方がフレームに入る構図にします。

使うもの設定
ShotタイプLock On
位置追従対象(Anchor)Player(カメラがプレイヤーの位置に追従)
回転追従対象敵(カメラが敵の方向を向く)

フロー例:Trigger(ロックオンボタン)→ Change To Shot(Lock On Shotに遷移、Durationを指定してスムーズ切替)→ Trigger(ロックオン解除)→ Revert To Previous Shot

カットシーンでカメラを連続的に動かす

イベントシーンで複数のカメラアングルを順番につなぎ、映画的な演出を行います。

使うもの役割
ShotタイプAnimation(複数用意)
命令Change To Shot(Duration指定で滑らかにブレンド)
Wait To CompleteONにすると「遷移完了を待ってから次の命令に進む」

構成方法としては、カットシーン用のAnimation Shotを複数配置し(各Shotは事前定義した経路を一定時間で移動し、終端で停止)、Actionsリストで Change To Shot を順に並べて各ShotにDurationを設定します。

即カットしたい場合はDurationを0にすればブレンドなしの即切替となります。

直線的なステージでカメラを滑らかに旋回させる

横スクロール風やリニアなダンジョンで、廊下が曲がる箇所でカメラも自然にカーブします。

使うもの設定
ShotタイプFollow Track
レール経路カメラが移動するパス
ターゲット経路プレイヤーが移動するパス

カメラの経路上の位置は、ターゲットが別パス上のどこにいるかで決まります。

ゲームパッドでコーナーを覗き込む

カバーアクションなどで、スティック入力でカメラをちょっとだけ左右・上下にパンして先を確認します。

使うもの設定
ShotタイプAnchor Peek
アンカーキャラクターor壁の端のGameObject
Restitute入力停止後にカメラが中央に自動で戻る設定

爆発のインパクトをカメラシェイクで表現する

爆発やヒット時に画面を揺らし、衝撃を演出します。発生源から離れると揺れを弱くできます。

使うもの役割
命令Shake Camera Burst
Duration揺れの持続時間(秒)
Magnitudeカメラが元の位置からずれる最大量
Roughness揺れの頻度(高いほど激しく振動)
Transform(任意)揺れの発生源(世界座標)
Radius(任意)発生源からこの距離でフォールオフが始まる

TransformとRadiusを指定すると、プレイヤーが発生源からRadius以上離れていれば揺れが減衰する動作になります。

継続的な振動(地震・エンジン振動)を表現する

地震やバイク走行中のように、一定時間ではなく手動で止めるまで揺れ続ける演出です。

使うもの役割
開始命令Shake Camera Sustain
停止命令Stop Camera Sustain Shake
Transition(開始時)ブレンドインにかかる秒数(急に揺れ始めず徐々に立ち上がる)
Transition(停止時)ブレンドアウトにかかる秒数

会話シーン中だけ別アングルに切り替え、終了後に元に戻す

NPCとの会話中は専用の正面ショットにし、会話終了後はプレイ中のカメラに自然に戻します。

使うもの役割
会話用ShotFixed Position(NPCを正面から映す)や任意のタイプ
開始時命令Change To Shot(Duration指定でスムーズ遷移)
終了時命令Revert To Previous Shot(Duration指定で元に戻る)

Revert To Previous Shot「一つ前にアクティブだったShotに戻す」専用命令です。会話シーンのように「一時的に別Shot → 元に戻す」パターンに最適です。

ポーズメニュー中もカメラだけは動かしたい

Time.timeScale = 0 でゲームを止めてもカメラの更新は止まらないようにします。

使うもの設定
Main CameraコンポーネントGame TimeUnscaled Time に変更

場面によって画角(FoV)を変える

探索パートは狭いFoVで落ち着いた見え方、戦闘パートは広いFoVで迫力を出す、といった使い分けです。

方法A ― ShotごとにViewportで管理(推奨)

各Camera ShotのViewportセクションにFoVを設定しておけば、Change To Shot でShotを切り替えるだけでFoVも自動で差し替わります(v2.7.28以降)。

方法B ― 命令で動的に変更

Change Field Of View 命令でDurationとEasingを指定し、時間経過でスムーズにFoVを遷移させます。

カメラが壁やジオメトリにめり込まないようにする

三人称カメラがキャラクターと壁の間に挟まれた際、壁を突き抜けて描画されるのを防ぎます。

使うもの設定
Main CameraコンポーネントAvoid ClippingをON

三人称視点で狭い空間を移動するゲームでは基本的にONにしておくのが無難です。

カメラ入力が一定時間なければ自動でキャラクターの背後に回り込む

三人称カメラでスティック操作をやめたとき、カメラがキャラクターの移動方向の背後に自動で整列します。

使うもの設定
命令Change Alignment
Align with TargetONでターゲットの背後に移動する機能を有効化
Delay入力が止まってからどれだけ待ってから整列を始めるか
Smooth Time整列の速度

監視カメラのように固定位置から対象を追う

部屋の隅に設置した監視カメラのように、カメラは動かずに対象だけを目で追います。

使うもの設定
ShotタイプFixed Position
Look機能LookのTargetに追跡対象を設定

公式リンク


まとめ

本記事ではGame Creator 2のCameras(カメラシステム)について解説しました。如何だったでしょうか。

カメラシステムはCamera ControllerとCamera Shotの分離設計により、三人称・一人称・固定・追従・ロックオンなどあらゆるカメラワークをノーコードで切り替え可能にしています。

Shotの切り替えにDurationを指定するだけで滑らかなブレンドが実現し、カメラシェイクやViewportによるFoV管理など、演出面でも充実した機能を備えています。

次回はVisual Scripting(ビジュアルスクリプティング)について解説していきます。

全記事一覧 ― Game Creator 2 完全ガイド シリーズ総合案内senkohome.com/gamecreator2-series-index/

それでは次の記事も閲覧いただけると幸いです。