ゲーム開発でオブジェクトを回転させたい場合、様々な方法があります。
「どうやって回転を計算するの?」
「オイラー角とクォータニオン、どっちを使えばいい?」
「回転の順序って重要?」
そんな疑問を抱えている方に向けて、オブジェクト回転の計算方法について、初心者でも理解できるように詳しく解説します。
\読むだけで終わらせない!実際にゲームを作って実力をつけよう/
トレンド×入門に最適
Unity ノンフィールドRPG
+スレスパ風JRPG講座
Unity6対応・スマホ化対応の最新カリキュラム。今もっとも人気のデッキ構築型ゲームをJRPGと組み合わせて実装。初心者が最初に選ぶ一本として最適です。
王道アクションに挑戦
Unity 2Dアクションゲーム
の作り方講座(ロックマン風)
ロックマン風の本格横スクロールACTをスマホ化・広告実装まで対応。7ステージ+ラスボスという市販ゲームに近い本格構成で、リリースまで見据えて作れます。
3D入門に最適
ゼルダ風3Dアクションゲーム
の作り方講座
ゼルダの伝説・モンハン・原神のような3Dアクションをスマホ対応で作れる入門講座。初心者でも全16回でしっかり3D開発の基礎を習得できます。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。
回転の基本概念
オブジェクトの回転は、3次元空間における向きの変化を表します。
Unityでは、Transformコンポーネントのrotationプロパティで回転を管理しています。
内部ではクォータニオンで管理されていますが、Inspector上ではオイラー角で表示されます。
回転軸の理解
3次元空間での回転は、3つの軸(X、Y、Z)周りで行います。
- X軸周りの回転:ピッチ(上下の回転)
- Y軸周りの回転:ヨー(左右の回転)
- Z軸周りの回転:ロール(前後の回転)
これらの軸を組み合わせることで、任意の向きを表現できます。
回転の表現方法
回転を表現する方法には、主に2つあります。
- オイラー角:3つの角度(X、Y、Z)で表現
- クォータニオン:4つの数値で表現
それぞれ特徴が異なるため、用途に応じて使い分けることが大切です。
- 3つの軸(X、Y、Z)周りで回転する
- オイラー角とクォータニオンで表現できる
- Unityでは内部でクォータニオンで管理されている
- 回転の順序によって結果が変わる
オイラー角を使った回転計算
オイラー角は、3つの角度(X、Y、Z)で回転を表現する方法です。
直感的で分かりやすいのが特徴。
基本的な使い方
Unityでオイラー角を使った回転の計算方法です。
|
1 2 3 4 5 6 7 8 |
// オイラー角で回転を設定 Vector3 eulerAngles = new Vector3(45f, 90f, 0f); transform.eulerAngles = eulerAngles; // オイラー角からクォータニオンに変換 Quaternion rotation = Quaternion.Euler(eulerAngles); transform.rotation = rotation; |
Quaternion.Eulerを使って、オイラー角からクォータニオンに変換できます。
回転の加算
オイラー角で回転を加算する場合は、角度を加算します。
|
1 2 3 4 5 6 7 8 9 10 |
float rotationX = 0f; float rotationY = 0f; float rotationZ = 0f; void Update() { rotationY += Time.deltaTime * 90f; // 1秒間に90度回転 transform.eulerAngles = new Vector3(rotationX, rotationY, rotationZ); } |
この方法で、連続的に回転させることができます。
回転の順序の重要性
オイラー角では、回転の順序によって結果が変わることに注意が必要です。
XYZの順で回転する場合と、ZYXの順で回転する場合では、結果が異なります。
Unityでは、ZXYの順で回転が適用されます。
- 回転の順序によって結果が変わる
- ジンバルロックが発生する可能性がある
- 補間が不自然になる場合がある
- 角度の範囲を制限することを推奨
クォータニオンを使った回転計算
クォータニオンは、4つの数値で回転を表現する方法です。
ジンバルロックが発生しないのが特徴。
基本的な使い方
Unityでクォータニオンを使った回転の計算方法です。
|
1 2 3 4 5 6 7 8 |
// オイラー角からクォータニオンを作成 Quaternion rotation = Quaternion.Euler(45f, 90f, 0f); transform.rotation = rotation; // 単位クォータニオン(回転なし) Quaternion identity = Quaternion.identity; transform.rotation = identity; |
クォータニオンの合成
複数の回転を合成する場合は、クォータニオンを掛け算します。
|
1 2 3 4 5 6 7 |
Quaternion rotationX = Quaternion.Euler(45f, 0f, 0f); Quaternion rotationY = Quaternion.Euler(0f, 90f, 0f); // 回転を合成(Y軸周りの回転→X軸周りの回転の順) Quaternion combined = rotationX * rotationY; transform.rotation = combined; |
掛け算の順序が重要で、右側から左側に適用されます。
回転の補間
回転を滑らかに補間するには、Quaternion.Slerpを使います。
|
1 2 3 4 5 6 |
Quaternion startRotation = Quaternion.Euler(0f, 0f, 0f); Quaternion endRotation = Quaternion.Euler(0f, 90f, 0f); float t = Time.time * 0.5f; // 進行度 transform.rotation = Quaternion.Slerp(startRotation, endRotation, t); |
これにより、回転が滑らかに補間されます。
オブジェクト回転の実装手順
※この順番を守らずに作り始めると、だいたい後で全部作り直すことになります。
- STEP1回転方法を選択
オイラー角とクォータニオンのどちらを使うかを決定します。一般的には、オイラー角で管理し、クォータニオンに変換して適用する方法がおすすめ。
- STEP2回転軸と角度を決定
どの軸で回転させるか、どの角度で回転させるかを決定します。目的に応じて、X、Y、Z軸のいずれか、または組み合わせを使用。
- STEP3回転の計算
オイラー角またはクォータニオンで回転を計算します。Quaternion.EulerやQuaternion.LookRotationなどを使って作成。
- STEP4回転の適用
計算した回転をTransform.rotationに適用します。毎フレーム更新する場合と、一度だけ適用する場合を使い分けましょう。
- STEP5動作確認
実際に動かして、回転が意図通りかを確認します。回転の順序やジンバルロックに注意しながら確認しましょう。
実践的な使用例
オブジェクト回転の実践的な使用例を見ていきましょう。
目標方向への回転
オブジェクトを目標の方向へ回転させる例です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class LookAtTarget : MonoBehaviour { public Transform target; void Update() { if (target != null) { Vector3 direction = target.position - transform.position; Quaternion targetRotation = Quaternion.LookRotation(direction); transform.rotation = targetRotation; } } } |
Quaternion.LookRotationを使えば、指定した方向を向く回転を作成できます。
滑らかな回転
オブジェクトを滑らかに回転させる例です。
|
1 2 3 4 5 6 7 8 9 10 11 |
public class SmoothRotation : MonoBehaviour { public float rotationSpeed = 90f; void Update() { float rotationAmount = Time.deltaTime * rotationSpeed; transform.Rotate(0f, rotationAmount, 0f); } } |
Transform.Rotateを使えば、現在の回転に相対的に回転を加えられます。
回転アニメーション
回転をアニメーションさせる例です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public class RotationAnimation : MonoBehaviour { public float rotationAngle = 360f; public float duration = 3f; private float timer = 0f; void Update() { timer += Time.deltaTime; float t = timer / duration; if (t > 1f) t = 1f; float currentAngle = rotationAngle * t; transform.rotation = Quaternion.Euler(0f, currentAngle, 0f); } } |
これにより、指定した角度だけ回転アニメーションが実行されます。

まずは簡単な回転から始めて、徐々に応用的な使い方を覚えていきましょう。
よくある問題と解決方法
オブジェクト回転を実装する際によくある問題と、その解決方法を紹介します。
回転が意図通りに動かない
回転が意図通りに動かない場合、回転の順序やジンバルロックが原因の可能性があります。
解決方法は、クォータニオンを使うこと。
|
1 2 3 4 5 6 |
// ✅ 正しい実装 transform.rotation = Quaternion.Euler(rotationX, rotationY, 0f); // ❌ 間違った実装(回転の順序が不適切) transform.eulerAngles = new Vector3(rotationX, rotationY, 0f); |
ジンバルロックが発生する
ジンバルロックが発生する場合、角度の範囲を制限するか、クォータニオンを使います。
|
1 2 3 |
rotationX = Mathf.Clamp(rotationX, -90f, 90f); transform.rotation = Quaternion.Euler(rotationX, rotationY, 0f); |
X軸の回転を-90度から90度に制限することで、ジンバルロックを回避できます。
回転がカクカクする
回転がカクカクする場合、Time.deltaTimeを使っていない可能性があります。
必ずTime.deltaTimeを使って、フレームレートに依存しない動きにしましょう。
- 回転が意図通りに動かない → 回転の順序やクォータニオンの使用を確認
- ジンバルロックが発生 → 角度の範囲を制限するか、クォータニオンを使う
- 回転がカクカクする → Time.deltaTimeを必ず使う
- 補間が不自然 → Quaternion.Slerpを使う
オブジェクト回転の学習を深めるには
オブジェクト回転の基礎を理解した後は、さらに深く学んでいくことが大切です。
Unity入門の森では、ゲーム開発に必要な数学とアニメーションの知識を体系的に学べる環境が整っています。
特に、永久会員チケットでは、回転計算だけでなく、アニメーション、物理演算など、関連する知識も幅広くカバーしています。
また、2Dアクションゲーム講座では、実際にゲームを作りながら、オブジェクト回転の実践的な使い方を身につけられます。
回転計算の基礎から応用まで、実際のコードと紐付けて学べるので、理解が深まりやすいはずです。
- 回転の基本概念と表現方法
- オイラー角とクォータニオンを使った計算方法
- 実践的な使用例
- よくある問題と解決方法
- 回転の実装手順
記事を読んで「作ってみたい!」と思ったら!人気ゲームを題材にした講座で実力をつけよう
知識を読むだけで終わらせるのはもったいない。実際に手を動かしてゲームを1本完成させることで、理解が一気に深まります。人気タイトルをモデルにした講座で、ゲーム開発の第一歩を踏み出しましょう。
Unity ノンフィールドRPG+スレスパ風JRPG講座【Unity6対応!トレンドのデッキ構築×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を作れる!】

- ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
- 7ステージ+ラスボスステージの市販ゲームに近い本格的なゲーム設計
- スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
- 敵AI15体・多彩なマップギミック・武器システムを完全実装
- 完全オリジナルゲームをアセット不使用で素材提供付きで制作
Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを開発できるようになる本格的な講座です。
TIPSやコラムで学んだ当たり判定・物理挙動・敵AIの知識を、実際のゲームコードとして実装する体験が全16回に凝縮されています。スマホ化・広告実装まで対応しているため、作って終わりではなくリリースまで見据えた実践スキルが身につきます。
「読んで理解した知識を、動くゲームとして形にしたい」という人に強くおすすめの一本です。
スマホ化・広告実装まで対応した本格横スクロールACT
ロックマン風の2Dアクションゲームをリリースまで作り上げよう
→ 2Dアクションゲームの作り方講座を見てみる
広告収益まで視野に入れた実践スキルを今すぐ手に入れよう!
ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

- ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
- 初心者でも取り組みやすい丁寧な解説構成
- スマホ化対応で実機で動かせるゲームが完成
- アセットを使った実践的なゲーム開発手法が身につく
- 画像・動画・全ソースコード公開の充実したサポート
ゼルダ風3Dアクションゲームの作り方講座は、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを作りたい人におすすめの入門講座です。
コラム・TIPSで「3Dゲームはなんとなく難しそう」と感じていた人でも、全16回の丁寧な解説で確実に完成まで到達できます。スマホ化対応で実機で動かせるため、作った達成感がひときわ大きい講座です。
「3Dゲームの仕組みを理解した次は、実際に自分で作ってみたい」という人の最初の一歩として最適です。
初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の第一歩を踏み出そう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
3D開発の壁を一気に突破!スマホで動くオリジナルゲームを完成させよう!
まとめ

この記事では、オブジェクト回転の計算方法について解説しました。
オブジェクトの回転は、オイラー角とクォータニオンで表現できます。
それぞれ特徴が異なるため、用途に応じて使い分けることが大切。
「回転計算って難しそう💧」と感じる方もいるかもしれませんが、基本的な概念を理解すれば実装できます。
まずは簡単な回転から始めて、徐々に応用的な使い方を覚えていきましょう。
- 回転はオイラー角とクォータニオンで表現できる
- オイラー角は直感的だが、ジンバルロックの問題がある
- クォータニオンはジンバルロックが発生しない
- 回転の順序によって結果が変わる
- Time.deltaTimeを使ってフレームレートに依存しない動きにする
まずは簡単な回転から始めて、徐々に応用的な使い方に挑戦していきましょう。
Unity入門の森では、オブジェクト回転の基礎から応用まで、実践的な知識を体系的に学べる環境が整っています。
疑問があれば、ぜひ活用してみてください。
あなたのオリジナルゲーム、今年こそ完成させませんか?
RPG・アクション・ホラー…Unityで本格ゲームを作りたい人のための学習サイトです。
実際に完成するゲームを題材に、
ソースコード・素材・プロジェクト一式をすべて公開。
仕事や学校の合間の1〜2時間でも、
「写経→改造」で自分のゲームまで作りきれる環境です。





コメント