Unityで3Dアクションゲームを作りたい。でも、TPS操作やカメラ制御が分からない。
多くの学生が最初に悩むのが、この部分です。
実は、基本を押さえれば、意外とシンプルに実装できます。
この記事では、Unityで作る3Dアクション入門として、TPS操作・カメラ制御・敵AIの基本を解説します。
✨ この記事でわかること
- 3Dアクションゲームの基本構造
- TPS操作の実装方法
- カメラ制御の基本
- 敵AIの実装

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

3Dアクションゲームを作る上で、最低限必要な要素は次の5つです。
- キャラクターの移動と操作(CharacterController)
- TPSカメラ(プレイヤーの後ろから見る視点)
- 当たり判定(ColliderとRaycast)
- 敵AI(基本的な行動パターン)
- ステージ構造(地形、障害物)
これらを順番に実装していけば、基本的な3Dアクションが完成します。
重要なのは、TPS操作とカメラ制御を正しく実装することです。
TPS操作の実装方法

TPS操作は、CharacterControllerを使った移動が基本です。
以下のスクリプトで、基本的な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 30 31 32 33 |
// キャラクターを動かす準備だよ controller = GetComponent(); // 毎フレーム呼ばれるよ void Update() { // 地面に立ってるかな? isGrounded = controller.isGrounded; if (isGrounded && velocity.y < 0) { // ジャンプした後の落ちる力をリセット velocity.y = 0f; } // キーボードの入力を取得(前後左右の動き) float horizontal = Input.GetAxis("Horizontal"); float vertical = Input.GetAxis("Vertical"); Vector3 move = transform.right * horizontal + transform.forward * vertical; controller.Move(move * moveSpeed * Time.deltaTime); // キャラクターを動かすよ // ジャンプボタンが押されたら if (Input.GetButtonDown("Jump") && isGrounded) { // 高くジャンプしよう! velocity.y += Mathf.Sqrt(jumpHeight * -3.0f * Physics.gravity.y); } // 重力で自然に落ちる velocity.y += Physics.gravity.y * Time.deltaTime; controller.Move(velocity * Time.deltaTime); // 落下も反映 } |
このコードで、WASDキーで移動、スペースキーでジャンプができます。
CharacterControllerは、自動的に地面との衝突を処理します。

CharacterControllerは、物理演算を使わないので、操作感が良くなります。3Dアクションゲームでは、こちらがおすすめです。
カメラ制御の基本

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の値を変えると、カメラとプレイヤーの距離が調整できます。
heightの値を変えると、カメラの高さが調整できます。
敵AIの基本実装

3Dアクションの敵AIは、NavMeshを使うと効率的に実装できます。
NavMeshは、敵が移動できる経路を自動で計算してくれます。
以下のコードで、プレイヤーを追尾する敵が作れます。
|
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 30 31 32 33 34 35 36 |
using UnityEngine; using UnityEngine.AI; public class EnemyAI3D : MonoBehaviour { [SerializeField] private Transform target; // 追いかける相手(プレイヤー) [SerializeField] private float attackRange = 2f; // 攻撃できる距離 private NavMeshAgent agent; // 移動するための魔法の箱(NavMeshを使う) void Start() { // 敵を動かす準備 agent = GetComponent(); } void Update() { // プレイヤーとの距離を測る float distance = Vector3.Distance(transform.position, target.position); if (distance < attackRange) { // 近づきすぎた!攻撃するぞ agent.isStopped = true; // ここに攻撃の魔法を追加できる } else { // プレイヤーを追いかける冒険スタート agent.isStopped = false; agent.SetDestination(target.position); } } } |
このコードで、敵がプレイヤーを追尾します。
attackRangeの値を変えると、攻撃範囲が調整できます。
NavMeshを使うには、ステージにNavMeshを設定する必要があります。
Window → AI → Navigationで、NavMeshを設定できます。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる
実践的な3Dアクション制作を学ぶには

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

Unityで作る3Dアクション入門として、TPS操作・カメラ制御・敵AIの基本を解説しました。
要点のまとめ
- CharacterControllerを使うと、操作感が良くなる
- TPSカメラは、マウス入力で回転させる
- NavMeshを使うと、敵AIの実装が楽になる
- 基本を押さえれば、あとは応用していくだけ
基本を押さえれば、あとは応用していくだけです。
まずは、ここで紹介したコードを実際に動かしてみてください。
動かしながら理解を深めていくのが、上達への近道です。
Unity入門の森を見る 初心者歓迎!動画×プロジェクト一式で本格ゲーム制作を学べる



コメント