ゲーム数学を「使える力」に変えよう!ゲーム講座PDF無料プレゼント中>>

共役クォータニオンの仕組み|回転の逆と相対回転の計算

回転処理の数学|クォータニオンをゲームで使いこなす

クォータニオンで、回転を逆にしたい。

2つの回転の相対的な関係を知りたい。

そんな場面で使われるのが、共役クォータニオンです。

共役クォータニオンは、回転の逆を表す重要な概念です。

クォータニオンqの共役は、回転を打ち消す回転を表します。

相対回転の計算など、様々な場面で使われます。

この記事では、共役クォータニオンの仕組みについて、Unity実装例とともに解説します。

  • 共役クォータニオンとは何か、よく分からない…
  • 回転を逆にする方法が理解できていない。
  • 相対回転の計算で困っている。

この記事でわかること

  • 共役クォータニオンの基本概念
  • 回転の逆を求める方法
  • 相対回転の計算
  • Unityでの実装方法
  • 初心者でも理解できる共役クォータニオンの考え方
ゲーム制作を“理解しながら”始めたい方へ
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます

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

共役クォータニオンとは何か(ゲーム制作目線)

共役クォータニオンの基本

共役クォータニオンは、クォータニオンの回転を打ち消す回転です。

クォータニオンq = (w, x, y, z)の共役q*は、q* = (w, -x, -y, -z)で表されます。

共役クォータニオンの特徴は、元の回転と合成すると、回転が打ち消されることです。

つまり、q * q* = 1(単位クォータニオン)になります。

共役クォータニオンは、回転の逆を表すため、相対回転の計算などに使われます。

Unityでは、Quaternion.Inverseや、共役の計算で簡単に扱えます。

ゲームでの具体的な使い道

共役クォータニオンのゲームでの使用例

共役クォータニオンが、ゲームでどう使われているか確認してみましょう。

回転の逆変換

ある回転qで回転させた後、元に戻したい場合、共役q*を使います。

qで回転 → q*で逆回転 → 元の状態に戻る

相対回転の計算

2つの回転q1とq2の相対回転を計算します。

相対回転 = q2 * q1*(q1の共役をq2に掛ける)

ローカル座標系での回転

オブジェクトのローカル座標系で、回転を計算する際に使われます。

ワールド座標系の回転を、ローカル座標系に変換する場合などに使われます。

回転の補間での使用

Slerpなどの回転補間で、正しい方向の補間を行う際に使われます。

最短経路での補間を実現するために、共役を使うことがあります。

共役クォータニオンが使われる場面

  • 回転の逆変換(元の状態に戻す)
  • 相対回転の計算(2つの回転の関係)
  • ローカル座標系での回転計算
  • 回転の補間(最短経路での補間)

作り方は分かった。
でも完成まで行けない人へ

当たり判定・移動・カメラ・AIまで、
実装しながら学べる「永久会員チケット」です。

買い切り 全講座 今後追加も無料
永久会員チケットを見てみる

※ まずは内容を見るだけでOK

考え方・仕組みを図解イメージで説明

共役クォータニオンの仕組み

共役クォータニオンは、「クォータニオンの虚数部の符号を反転 → 回転の逆を表現」という流れで実現できます。

クォータニオンの表現

クォータニオンq = (w, x, y, z)は、wが実部、x, y, zが虚部です。

回転を表すクォータニオンでは、|q| = 1(単位クォータニオン)です。

共役の計算

共役q* = (w, -x, -y, -z)は、虚数部の符号を反転させます。

これにより、回転方向が逆になります。

回転の打ち消し

q * q* = 1(単位クォータニオン)になります。

つまり、qで回転させてから、q*で回転させると、元の状態に戻ります。

相対回転の計算

q1からq2への相対回転は、q2 * q1*で計算できますね。

これにより、2つの回転の関係を表せます。

⚠️ 重要なポイント

  • 共役クォータニオンは、回転の逆を表す
  • 共役の計算は、虚数部の符号を反転させる
  • q * q* = 1で、回転が打ち消される
  • 相対回転の計算などに活用できる

Unityで実装する際の注意点(代表例)

Unityでの共役クォータニオンの実装

Unityで共役クォータニオンを扱う場合の注意点を見ていきましょう。

Quaternion.Inverseを使った実装

UnityのQuaternion.Inverseは、共役クォータニオンを返します。

回転の逆変換

ある回転で回転させた後、元に戻します。

相対回転の計算

2つの回転の相対回転を計算します。

ローカル座標系での回転

オブジェクトのローカル座標系で、回転を計算します。

回転の補間での使用

最短経路での回転補間を実現します。

共役の手動計算

共役を手動で計算する場合の実装です。

博士
博士
共役クォータニオンは、回転の逆を表す重要な概念です。Quaternion.Inverseを使えば簡単に計算できます。相対回転の計算や、ローカル座標系での回転計算など、様々な場面で活用できますね!

まとめ

共役クォータニオンのまとめ

この記事では、共役クォータニオンの仕組みについて見てきました。

重要なポイントをおさらいします。

重要なポイント:

  • 共役クォータニオンは、回転の逆を表す
  • 共役の計算は、虚数部の符号を反転させる
  • UnityのQuaternion.Inverseが共役を返す
  • q * q* = 1で、回転が打ち消される
  • 相対回転の計算や、ローカル座標系での回転計算に活用できる

共役クォータニオンは、3D回転処理で重要な概念です。

回転の逆を求めることで、様々な回転計算が可能になります。

相対回転の計算など、実用的な場面で活用できますね。

実際のゲーム実装とセットで学ぶことで、理解が深まるはずです。

Unity入門の森では、クォータニオンを含む回転処理を、実際のゲーム実装とともに体系的に学べます。

ぜひチェックしてみてください。

ゲーム制作を“理解しながら”始めたい方へ
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます

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

コメント

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