趣味で終わらせたくない方へ。現場レベルの「ゲーム制作講座PDF」を無料プレゼント中!▶

FPSカメラの回転計算 | 視点制御の数学と実装手順

ゲーム制作の知識・TIPS

FPSゲームを作ろうとすると、マウスの動きに合わせてカメラが滑らかに回転する仕組みが必要になります。

「マウス入力をどうやってカメラ回転に変換するの?」
「オイラー角とクォータニオン、どっちを使えばいい?」
「カメラが反転してしまう問題を解決したい」

そんな疑問を抱えている方に向けて、FPSゲームで必須のカメラ回転制御について、数学的な仕組みと実装方法を詳しく解説します。

\読むだけで終わらせない!実際にゲームを作って実力をつけよう/

トレンド×入門に最適

Unity ノンフィールドRPG
+スレスパ風JRPG講座

★★★★★ (Unity6対応)

Unity6対応・スマホ化対応の最新カリキュラム。今もっとも人気のデッキ構築型ゲームをJRPGと組み合わせて実装。初心者が最初に選ぶ一本として最適です。

講座を見てみる \スマホ対応!初心者から最速で1本完成させる/

王道アクションに挑戦

Unity 2Dアクションゲーム
の作り方講座(ロックマン風)

★★★★★ (スマホ化・広告実装)

ロックマン風の本格横スクロールACTをスマホ化・広告実装まで対応。7ステージ+ラスボスという市販ゲームに近い本格構成で、リリースまで見据えて作れます。

講座を見てみる \入学前に1本完成させてスタートダッシュ!/

3D入門に最適

ゼルダ風3Dアクションゲーム
の作り方講座

★★★★★ (スマホ化対応)

ゼルダの伝説・モンハン・原神のような3Dアクションをスマホ対応で作れる入門講座。初心者でも全16回でしっかり3D開発の基礎を習得できます。

講座を見てみる \初心者でも3Dアクションが作れる!/
ゲームを「遊ぶ側」から「作る側」へ

あなたのオリジナルゲーム、今年こそ完成させませんか?

RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。

Unity入門の森|永久会員チケット

永久会員チケット|Unity入門の森

全講座ラインナップを見てみる

実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。

FPSカメラ回転制御の基本

FPSカメラ回転制御の基本

FPSゲームのカメラ回転制御は、マウスの移動量をカメラの回転角度に変換する仕組みです。

プレイヤーがマウスを横に動かすとカメラが左右に回転し、上下に動かすとカメラが上下に回転する。

これにより、3D空間内を自由に見回せるようになるんです。

マウス入力の取得

Unityでは、Input.GetAxisを使ってマウスの移動量を取得できます。

Mouse Xはマウスの横方向の移動量、Mouse Yは縦方向の移動量を表します。

これらの値は、マウスの移動速度に応じて変化するため、感度設定と組み合わせて使用するのが一般的。

感度の調整

マウスの感度を調整するには、移動量に感度係数を掛けます。

感度を高くするとカメラの回転が速くなり、低くすると遅くなります。

一般的には1.5〜3.0の範囲が使いやすいです。

FPSカメラの特徴

  • マウスの移動量を回転角度に変換する
  • 左右の回転(Yaw)と上下の回転(Pitch)を独立に制御する
  • 感度設定で回転速度を調整できる
  • 上下の視点に制限を設けることが多い

マウス入力からカメラ回転への変換方法

マウス入力からカメラ回転への変換方法

マウスの移動量をカメラの回転角度に変換する方法を見ていきましょう。

基本的な変換式

マウスの移動量を回転角度に変換するには、以下のような計算を行います。

注意点として、上下方向(Pitch)はマイナスを掛ける必要があります。

これは、Unityの座標系でマウスのY軸が上方向が正、カメラのPitchが下方向が正だからです。

累積的な回転

カメラの回転は、マウスの移動量を累積していく必要があります。

Mathf.Clampを使って、上下の視点を制限するのが一般的。

これにより、カメラが真上や真下を向いてしまうことを防げます。

【ゲームの作り方講座プレゼント中!】

オイラー角とクォータニオンの使い分け

オイラー角とクォータニオンの使い分け

Unityで回転を表現する方法には、オイラー角クォータニオンがあります。

それぞれの特徴と使い分けを理解しておくことが大切です。

オイラー角とは

オイラー角は、X、Y、Z軸周りの3つの回転角度で回転を表現する方法です。

直感的で分かりやすいのが特徴。

UnityのTransform.eulerAnglesが、まさにオイラー角を扱うプロパティです。

クォータニオンとは

クォータニオンは、4つの数値で回転を表現する方法です。

オイラー角では発生するジンバルロックの問題を回避できるのが特徴。

Unityの内部では、回転は全てクォータニオンで管理されています。

FPSカメラでの使い分け

FPSカメラでは、オイラー角で角度を管理し、クォータニオンに変換して適用する方法が一般的です。

この方法なら、直感的に角度を管理できつつ、ジンバルロックの問題も回避できます。

⚠️ 注意点

  • オイラー角は直感的だが、ジンバルロックの問題がある
  • クォータニオンはジンバルロックを回避できるが、直接編集は難しい
  • FPSカメラでは、オイラー角で管理→クォータニオンに変換する方法がおすすめ

Unityでの実装例

Unityでの実装例

UnityでFPSカメラを実装する具体的な例を見ていきましょう。

基本的なFPSカメラスクリプト

このスクリプトをカメラオブジェクトにアタッチすれば、基本的なFPSカメラ制御が実現できます。

上下視点制限の実装

上下の視点を制限するには、Mathf.Clampを使用します。

これにより、カメラが真上や真下を向くことを防げます。

一般的には-90度から90度の範囲が使いやすいです。

ジンバルロック対策

ジンバルロックを避けるため、Z軸の回転を0に固定します。

Z軸を0に固定することで、カメラが予期せず傾いてしまう問題を防げます。

ゲーム開発講師
ゲーム開発講師
FPSカメラは最初は難しく感じますが、基本的な仕組みを理解すれば実装できます。
まずはシンプルな実装から始めて、徐々に機能を追加していきましょう。

FPSカメラの実装手順

FPSカメラの実装手順
※この順番を守らずに作り始めると、だいたい後で全部作り直すことになります。

FPSカメラの実装手順
  • STEP1
    マウス入力の取得

    Input.GetAxisを使って、マウスの移動量を取得します。

    Mouse XとMouse Yを感度と組み合わせて使用しましょう。

  • STEP2
    回転角度の計算

    マウスの移動量を回転角度に変換します。

    左右の回転(Yaw)と上下の回転(Pitch)を独立に管理します。

  • STEP3
    視点制限の実装

    Mathf.Clampを使って、上下の視点を制限します。

    一般的には-90度から90度の範囲が使いやすいです。

  • STEP4
    クォータニオンへの変換

    オイラー角からクォータニオンに変換して、カメラに適用します。

    Z軸の回転は0に固定して、ジンバルロックを防ぎましょう。

  • STEP5
    マウスカーソルのロック

    Cursor.lockStateを使って、マウスカーソルをロックします。

    これにより、FPSゲームらしい操作感になります。

よくある問題と解決方法

よくある問題と解決方法

FPSカメラを実装する際によくある問題と、その解決方法を紹介します。

カメラが反転してしまう

カメラが上下に反転してしまう問題は、Y軸の符号を間違えている場合に発生します。

解決方法は、マウスのY軸にマイナスを掛けること。

Unityの座標系では、マウスのY軸が上方向が正、カメラのPitchが下方向が正なため、符号を反転する必要があります。

感度が高すぎる・低すぎる

感度の調整は、mouseSensitivityの値を変更することで可能。

一般的には1.5〜3.0の範囲が使いやすいですが、プレイヤーの好みに応じて調整しましょう。

カメラが滑らかに動かない

カメラがカクカク動く場合は、Time.deltaTimeを使ってフレームレートに依存しない処理にする必要があります。

ただし、マウス入力の場合は、通常はTime.deltaTimeを使わない方が自然な動きになります。

マウスカーソルが表示されてしまう

マウスカーソルを非表示にするには、Cursor.visibleをfalseに設定します。

また、Cursor.lockStateをLockedに設定することで、マウスカーソルを画面中央に固定できます。

トラブルシューティングのポイント

  • カメラが反転する → Y軸の符号を確認する
  • 感度が合わない → mouseSensitivityの値を調整する
  • カメラがカクつく → フレームレートの影響を確認する
  • カーソルが表示される → Cursor.visibleをfalseに設定する

応用的な実装テクニック

応用的な実装テクニック

基本的なFPSカメラを実装した後は、さらに便利な機能を追加していきましょう。

感度の動的調整

実行中に感度を変更できるようにするには、設定UIと連携します。

PlayerPrefsを使って、感度設定を保存しておくと便利です。

スムーズな補間

カメラの回転を滑らかにするには、補間を使います。

ただし、FPSカメラでは即座に反応することが重要なので、補間を使わない方が一般的です。

マウスカーソルの表示切り替え

ESCキーでマウスカーソルを表示・非表示を切り替える機能を追加できます。

これにより、プレイヤーが設定メニューを開けるようになります。

FPSカメラの学習を深めるには

FPSカメラの学習を深めるには

FPSカメラの基礎を理解した後は、さらに深く学んでいくことが大切です。

Unity入門の森では、FPSゲーム制作に関する知識を体系的に学べる環境が整っています。

特に、FPSゲーム講座(弓矢3D)では、FPSカメラだけでなく、武器システム、敵AIなど、FPSゲームに必要な要素を一通り学べます。

また、永久会員チケットでは、ゲーム開発全般に関する知識を幅広くカバーしているため、FPSゲーム以外にも応用できる知識が身につきます。

カメラ制御の基礎から応用まで、実際のコードと紐付けて学べるので、理解が深まりやすいはずです。

この記事でわかること

  • マウス入力からカメラ回転への変換方法
  • オイラー角とクォータニオンの使い分け
  • Unityでの実装例(上下視点制限・ジンバルロック対策含む)
  • よくある問題(カメラが反転する等)の解決方法
  • 応用的な実装テクニック

記事を読んで「作ってみたい!」と思ったら!人気ゲームを題材にした講座で実力をつけよう

知識を読むだけで終わらせるのはもったいない。実際に手を動かしてゲームを1本完成させることで、理解が一気に深まります。人気タイトルをモデルにした講座で、ゲーム開発の第一歩を踏み出しましょう。

Unity ノンフィールドRPG+スレスパ風JRPG講座【Unity6対応!トレンドのデッキ構築×JRPGをスマホ向けに作れる!】

Unity ノンフィールドRPGの作り方講座+Slay the Spire風デッキ構築JRPGの作り方講座

  • Unity6対応・スマホ化対応で最新環境のゲーム開発が学べる
  • Slay the Spire風のデッキ構築システム×JRPGの組み合わせを実装
  • 初心者でも取り組みやすい丁寧な解説構成
  • ノンフィールドRPGとデッキ構築JRPGの2つを合わせて学ぶのがおすすめ

Unity ノンフィールドRPGの作り方講座+Slay the Spire風デッキ構築JRPGの作り方講座は、今もっともトレンドのデッキ構築型ゲームシステムをJRPGと組み合わせて実装する方法を学べる講座です。

Unity6対応・スマホ化対応の最新カリキュラムで、コラムやTIPSで読んで「なるほど」と思った知識を、実際に動くゲームとして形にする体験ができます。

「Slay the Spireみたいなゲームを自分でも作ってみたい!」という人の最初の一歩として最適な講座です。

Unity6対応・スマホ化対応の最新カリキュラム
トレンドのデッキ構築×JRPGを最速で実装しよう
→ スレスパ風デッキ構築JRPG講座を見てみる
スマホ対応の最新環境で、ゲーム開発の第一歩を踏み出そう!

Unity 2Dアクションゲームの作り方講座(ロックマン風)【全16回!スマホ化・広告実装まで対応した本格横スクロールACTを作れる!】

Unity 2Dアクションゲームの作り方講座(ロックマン風)

  • ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
  • 7ステージ+ラスボスステージの市販ゲームに近い本格的なゲーム設計
  • スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
  • 敵AI15体・多彩なマップギミック・武器システムを完全実装
  • 完全オリジナルゲームをアセット不使用で素材提供付きで制作

Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを開発できるようになる本格的な講座です。

TIPSやコラムで学んだ当たり判定・物理挙動・敵AIの知識を、実際のゲームコードとして実装する体験が全16回に凝縮されています。スマホ化・広告実装まで対応しているため、作って終わりではなくリリースまで見据えた実践スキルが身につきます。

「読んで理解した知識を、動くゲームとして形にしたい」という人に強くおすすめの一本です。

スマホ化・広告実装まで対応した本格横スクロールACT
ロックマン風の2Dアクションゲームをリリースまで作り上げよう
→ 2Dアクションゲームの作り方講座を見てみる
広告収益まで視野に入れた実践スキルを今すぐ手に入れよう!

ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

ゼルダ風3Dアクションゲームの作り方講座

  • ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
  • 初心者でも取り組みやすい丁寧な解説構成
  • スマホ化対応で実機で動かせるゲームが完成
  • アセットを使った実践的なゲーム開発手法が身につく
  • 画像・動画・全ソースコード公開の充実したサポート

ゼルダ風3Dアクションゲームの作り方講座は、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを作りたい人におすすめの入門講座です。

コラム・TIPSで「3Dゲームはなんとなく難しそう」と感じていた人でも、全16回の丁寧な解説で確実に完成まで到達できます。スマホ化対応で実機で動かせるため、作った達成感がひときわ大きい講座です。

「3Dゲームの仕組みを理解した次は、実際に自分で作ってみたい」という人の最初の一歩として最適です。

初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の第一歩を踏み出そう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
3D開発の壁を一気に突破!スマホで動くオリジナルゲームを完成させよう!

まとめ

まとめ

この記事では、FPSゲームで必須のカメラ回転制御について解説しました。

FPSカメラは、マウスの移動量を回転角度に変換することで実現できます。

オイラー角で角度を管理し、クォータニオンに変換して適用する方法が一般的。

「FPSカメラって難しそう💧」と感じる方もいるかもしれませんが、基本的な仕組みを理解すれば実装できます。

まずはシンプルな実装から始めて、徐々に機能を追加していきましょう。

重要なポイント:

  • マウスの移動量を回転角度に変換する仕組みが基本
  • オイラー角で管理し、クォータニオンに変換して適用する方法がおすすめ
  • 上下の視点はMathf.Clampで制限する
  • Y軸の符号を間違えるとカメラが反転するので注意
  • Cursor.lockStateでマウスカーソルをロックすると、FPSらしい操作感になる

まずは基本的な実装から始めて、徐々に応用的な機能に挑戦していきましょう。

Unity入門の森では、FPSゲーム制作に関する知識を体系的に学べる環境が整っています。

疑問があれば、ぜひ活用してみてください。

ゲームを「遊ぶ側」から「作る側」へ

あなたのオリジナルゲーム、今年こそ完成させませんか?

RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。

Unity入門の森|永久会員チケット

永久会員チケット|Unity入門の森

全講座ラインナップを見てみる

実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。

 

【ゲームの作り方講座もプレゼント中!】

コメント

タイトルとURLをコピーしました