回転を適用した後、元に戻したい。
2つのオブジェクトの相対回転を計算したい。
そんな場面で使えるのが、クォータニオンの逆です。
クォータニオンの逆を使うと、回転を打ち消したり、相対回転を計算したりできます。
Unityでは、Quaternion.Inverse関数で簡単に逆を取得できます。
この記事では、クォータニオンの逆の求め方と使い方を、Unity実装例とともに解説します。
- クォータニオンの逆を求める方法が分からない…
- 回転を打ち消したり、相対回転を計算する方法を知りたい。
- 逆を使う場面や使い方が分からない。
✨ この記事でわかること
- クォータニオンの逆の基本概念
- 回転を打ち消す方法
- 相対回転の計算方法
- Unityでの逆の使い方とコード例
- 初心者でも理解できる逆の考え方
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます
クォータニオン逆とは何か(ゲーム制作目線)

クォータニオンの逆は、回転を打ち消すクォータニオンです。
あるクォータニオン q に対して、その逆 q^-1 を掛けると、回転が打ち消されて元の状態に戻ります。
数学的には、q * q^-1 = 単位クォータニオン(回転なし)になります。
クォータニオンの逆は、共役を取って正規化することで計算できますが、UnityのQuaternion.Inverse関数を使えば簡単に取得できます。
ゲームでの具体的な使い道

クォータニオンの逆が、ゲームでどう使われているか確認してみましょう。
回転の打ち消し
オブジェクトに回転を適用した後、元の状態に戻したい場合、逆を掛けることで打ち消せます。
アニメーションのリセットや、回転の取り消し処理で使われます。
相対回転の計算
2つのオブジェクトの相対回転を計算する場合、一方の回転の逆を、もう一方の回転に掛けます。
親子関係での回転計算や、オブジェクト間の相対的な向きの計算で使われます。
ローカル空間での回転
ワールド空間での回転を、ローカル空間での回転に変換する場合、親の回転の逆を使います。
逆を掛けることで、ローカル空間での回転を計算できます。
回転の逆方向への移動
ある回転を適用したオブジェクトを、逆方向に回転させたい場合、逆を使います。
回転アニメーションの逆再生や、回転の取り消し処理で使われます。
- 回転の打ち消し処理
- 2つのオブジェクトの相対回転計算
- ローカル空間での回転変換
- 回転の逆方向への移動
作り方は分かった。
でも完成まで行けない人へ
当たり判定・移動・カメラ・AIまで、
実装しながら学べる「永久会員チケット」です。
※ まずは内容を見るだけでOK
考え方・仕組みを図解イメージで説明

クォータニオンの逆は、回転を打ち消すクォータニオンです。
基本的な性質
クォータニオン q とその逆 q^-1 を掛けると、単位クォータニオン(回転なし)になります。
q * q^-1 = 単位クォータニオン
これが、回転を打ち消す原理です。
相対回転の計算
オブジェクトAの回転を qA、オブジェクトBの回転を qB とすると、Aから見たBの相対回転は、qA^-1 * qB で計算できます。
逆を掛けることで、Aの回転を打ち消し、相対的な回転を取得できます。
ローカル空間への変換
ワールド空間での回転 qWorld を、ローカル空間での回転 qLocal に変換する場合、親の回転 qParent の逆を使います。
qLocal = qParent^-1 * qWorld
回転の取り消し
回転 q を適用したオブジェクトを、元の状態に戻す場合、逆 q^-1 を掛けます。
元の回転 * q * q^-1 = 元の回転
- クォータニオンの逆は、回転を打ち消すクォータニオン
- q * q^-1 = 単位クォータニオン(回転なし)
- 相対回転は、qA^-1 * qB で計算できる
- UnityのQuaternion.Inverse関数で簡単に取得できる
Unityで実装する際の注意点(代表例)

Unityでクォータニオンの逆を使う場合の注意点を見ていきましょう。
基本的な逆の取得
Quaternion.Inverse関数で、クォータニオンの逆を取得できます。
|
1 2 3 4 5 6 7 |
// クォータニオンの逆を取得 Quaternion rotation = transform.rotation; Quaternion inverse = Quaternion.Inverse(rotation); // 回転を打ち消す transform.rotation = rotation * inverse; // 単位クォータニオン(回転なし) |
回転の打ち消し
回転を適用した後、元の状態に戻す例です。
|
1 2 3 4 5 6 7 8 9 10 11 |
// 元の回転を保存 Quaternion originalRotation = transform.rotation; // 回転を適用 transform.rotation *= Quaternion.Euler(0, 90, 0); // 元の状態に戻す transform.rotation = originalRotation * Quaternion.Inverse(originalRotation) * transform.rotation; // または、保存した回転を直接設定 transform.rotation = originalRotation; |
相対回転の計算
2つのオブジェクトの相対回転を計算する例です。
|
1 2 3 4 5 6 7 8 9 10 |
// オブジェクトAとBの相対回転を計算 Quaternion rotationA = objectA.transform.rotation; Quaternion rotationB = objectB.transform.rotation; // Aから見たBの相対回転 Quaternion relativeRotation = Quaternion.Inverse(rotationA) * rotationB; // 相対回転を適用 transform.rotation = rotationA * relativeRotation; |
ローカル空間への変換
ワールド空間の回転を、ローカル空間の回転に変換する例です。
|
1 2 3 4 5 6 7 8 9 10 11 |
// 親の回転の逆を取得 Quaternion parentRotation = transform.parent.rotation; Quaternion parentInverse = Quaternion.Inverse(parentRotation); // ワールド空間の回転をローカル空間に変換 Quaternion worldRotation = transform.rotation; Quaternion localRotation = parentInverse * worldRotation; // ローカル空間の回転を設定 transform.localRotation = localRotation; |
回転の逆方向への移動
回転を逆方向に適用する例です。
|
1 2 3 4 5 6 7 8 9 |
// 回転を定義 Quaternion rotation = Quaternion.Euler(0, 90, 0); // 逆方向に回転 Quaternion inverseRotation = Quaternion.Inverse(rotation); // 現在の回転に逆方向の回転を適用 transform.rotation *= inverseRotation; |
回転の相対的な適用
現在の回転に対して、相対的に回転を適用する例です。
|
1 2 3 4 5 6 7 8 9 10 |
// 現在の回転を基準に、相対的な回転を計算 Quaternion currentRotation = transform.rotation; Quaternion targetRotation = Quaternion.LookRotation(direction); // 現在の回転から目標の回転への相対回転 Quaternion relativeRotation = Quaternion.Inverse(currentRotation) * targetRotation; // 相対回転を適用(段階的に回転) transform.rotation = currentRotation * Quaternion.Slerp(Quaternion.identity, relativeRotation, t); |

まとめ

この記事では、クォータニオンの逆について見てきました。
重要なポイントをおさらいします。
- クォータニオンの逆は、回転を打ち消すクォータニオン
- q * q^-1 = 単位クォータニオン(回転なし)
- 相対回転は、qA^-1 * qB で計算できる
- UnityのQuaternion.Inverse関数で簡単に取得できる
- 回転の打ち消し、相対回転の計算、ローカル空間への変換などで使える
クォータニオンの逆は、回転を扱う上で重要な概念です。
回転を打ち消したり、相対回転を計算したりする際に、非常に便利です。
Unityの関数を活用すれば、簡単に実装できます。
実際のゲーム実装とセットで学ぶことで、理解が深まるはずです。
Unity入門の森では、クォータニオンを含む回転処理を、実際のゲーム実装とともに体系的に学べます。
ぜひチェックしてみてください。
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます





コメント