3Dカメラをプレイヤーに追従させたい。でも、TPSとFPSの違いが分からない。
多くの学生が最初に感じるのが、この疑問です。
実は、TPSとFPSは、視点の違いだけです。
この記事では、3Dカメラ追従の作り方について、TPS・FPSカメラの基礎とCinemachine活用を解説します。
✨ この記事でわかること
- TPSカメラの実装方法
- FPSカメラの実装方法
- Cinemachineの使い方
- 3Dアクション向けカメラの基礎

3Dカメラは、ゲームの操作感に大きく影響します。まずは、TPSカメラから始めましょう。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
TPSカメラの実装方法

TPSカメラは、プレイヤーの後ろから見る視点です。
以下のスクリプトで、基本的なTPSカメラができます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
using UnityEngine; public class TPSCamera : MonoBehaviour { [SerializeField] private Transform target; [SerializeField] private float distance = 5f; [SerializeField] private float height = 2f; [SerializeField] private float rotationSpeed = 2f; private float currentRotationX; private float currentRotationY; void LateUpdate() { // マウス入力でカメラを回転 currentRotationX += Input.GetAxis("Mouse X") * rotationSpeed; currentRotationY -= Input.GetAxis("Mouse Y") * rotationSpeed; currentRotationY = Mathf.Clamp(currentRotationY, -35f, 60f); // カメラの位置を計算 Quaternion rotation = Quaternion.Euler(currentRotationY, currentRotationX, 0); Vector3 direction = rotation * Vector3.back; Vector3 position = target.position + direction * distance + Vector3.up * height; transform.position = position; transform.LookAt(target.position + Vector3.up * height); } } |
このコードで、マウスでカメラを回転させ、プレイヤーの後ろから見る視点ができます。
distanceの値を変えると、カメラとプレイヤーの距離が調整できます。

TPSカメラは、操作しやすい視点です。まずは、このコードを動かしてみてください。
FPSカメラの実装方法

FPSカメラは、プレイヤーの視点で見る視点です。
以下のスクリプトで、基本的なFPSカメラができます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using UnityEngine; public class FPSCamera : MonoBehaviour { [SerializeField] private float mouseSensitivity = 2f; private float rotationX = 0f; private float rotationY = 0f; void Update() { // マウス入力でカメラを回転 rotationY += Input.GetAxis("Mouse X") * mouseSensitivity; rotationX -= Input.GetAxis("Mouse Y") * mouseSensitivity; rotationX = Mathf.Clamp(rotationX, -90f, 90f); transform.localRotation = Quaternion.Euler(rotationX, rotationY, 0); } } |
このコードで、マウスでカメラを回転させ、プレイヤーの視点で見る視点ができます。
FPSカメラは、プレイヤーの子オブジェクトにする必要があります。
Cinemachineの使い方

Cinemachineを使うと、より高度なカメラ制御ができます。
主な機能は次の通りです。
- 自動追従
- スムースな動き
- 複数のカメラの切り替え
- カメラの揺れ
これらを活用することで、より魅力的なカメラ演出ができます。
初心者には、スクリプトで実装する方が理解しやすいですが、Cinemachineも便利です。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
実践的な3Dカメラ追従を学ぶには

ここまで、3Dカメラ追従の作り方について解説してきました。
ただし、実際のゲーム制作では、さらに多くの要素が必要になります。
アニメーション、エフェクト、UI、サウンドなど、全体を体系的に学ぶには、専門の講座が効率的です。
Unity入門の森では、3Dアクションゲームの作り方を、基礎から完成まで丁寧に解説しています。
コードの意味から、なぜその実装方法を選ぶのかまで、しっかり理解できる内容になっています。
3Dアクション制作に特化した講座なら、効率的にスキルアップできます。
ゲーム制作でスキルを上げたい方は、ぜひチェックしてみてください。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
まとめ

3Dカメラ追従の作り方について解説しました。
要点のまとめ
- TPSカメラは、プレイヤーの後ろから見る視点
- FPSカメラは、プレイヤーの視点で見る視点
- Cinemachineを使うと、より高度なカメラ制御ができる
- 実際に動かしながら、最適な設定を見つける
基本を押さえれば、あとは応用していくだけです。
まずは、ここで紹介したコードを実際に動かしてみてください。
動かしながら理解を深めていくのが、上達への近道です。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる



コメント