クォータ二オンは回転を表すのに使用されます。
コンパクトであり、ジンバルロックの問題がなく、簡単に補間できます。
Unity はすべての回転を表現するのにクォータニオンを内部的に使用します。
しかし複雑な数字にもとづいており、直感的でない側面があります。
このため個別のクォータニオン成分 (x, y, z, w) をアクセスまたは修正することは殆どありません。
主に既存の回転(例. Transform など)にもとづき
新規の回転を作成します (例えば、2 つの回転の間をスムーズに補間)。
使用する Quaternion 関数の 99% は、
Quaternion.LookRotation、Quaternion.Angle、Quaternion.Euler、Quaternion.Slerp、Quaternion.FromToRotation、Quaternion.identity(他の関数は極めて稀な用途)
Quaternion.operator * を使用して、ひとつの回転をもう 1 つの回転でさらに回転させる、またはベクトルを回転により回転させることができます。
identity | 単位回転 (読み込みのみ可) |
eulerAngles | 回転をオイラー角の値で返します。 |
this[int] | イデックスによって x、y、z、w にアクセスする。 |
w | クォータ二オンの W 成分。クォータ二オンを熟知していない限り、この値を直接変更しないでください。 |
x | クォータ二オンの x 成分。クォータ二オンを熟知していない限り、この値を直接変更しないでください。 |
y | クォータ二オンの Y 成分。クォータ二オンを熟知していない限り、この値を直接変更しないでください。 |
z | クォータ二オンの Z 成分。クォータ二オンを熟知していない限り、この値を直接変更しないでください。 |
Quaternion | 与えられた x、y、z、w 成分で新規のクォータ二オンを作成します。 |
Set | 既存の Quaternion に x、y、z、w の成分を設定します |
SetFromToRotation | fromDirection から toDirection への回転を作成します。 |
SetLookRotation | 指定された forward と upwards 方向に回転します。 |
ToAngleAxis | 回転を座標に対する角度の値 (AngleAxis) に変換します。 |
ToString | クォータ二オンの値を見やすくした文字列を返します。 |
Angle | 2 つの回転 a と b 間の角度を返します。 |
AngleAxis | axis の周りを angle 度回転する回転を作成します。 |
Dot | 2 つの回転の内積を返します。 |
Euler | Z 座標を軸に z 度、X 座標を軸に x 度、Y 座標を軸に y 度 (順番はこのとおり) 回転する回転を返します。 |
FromToRotation | fromDirection から toDirection への回転を作成します。 |
Inverse | /rotation/の逆クォータニオンを返します。 |
Lerp | a と b の間を t で補間し、その後、その結果を正規化します。パラメーター t は、[0, 1] の範囲です。 |
LerpUnclamped | a と b の間を t で補間し、その後、その結果を正規化します。パラメーター t は[0,1]の範囲にクランプされていません。 |
LookRotation | 指定された forward と upwards 方向に回転します。 |
RotateTowards | from から to への回転を得ます。 |
Slerp | a と b の間を t で球状に補間します。パラメーター t は、[0, 1] の範囲です。 |
SlerpUnclamped | a と b の間を t で球状に補間します。パラメーター t は、限られていません。 |
operator != | 二つのクォータニオンが互いに異なるか? |
operator * | lhs の回転情報を取得し、それを rhs に適用します。 |
operator == | 二つのクォータニオンは互いに一致するかどうか |