広告
広告

Blender のリグでオイラー角とクォータニオンのどちらを使うべきか

カテゴリ:blender

肩や首のような XYZ のすべての軸で回転可能な関節ならばクォータニオン、前腕や車のタイヤのような1軸で回転するならオイラー角を使う。面倒ならすべてクォータニオンでも問題ない。

3軸で回転する場合にクォータニオンを使うのは、オイラー角の欠点であるジンバルロックを避けられるからだ。しかしクォータニオンには最小回転の法則があるため、それ以外ではオイラー角を使う。ジンバルロックは3軸のうちのひとつの回転軸が他のどちらかの回転軸と一致するだけで、1軸か2軸でしか回転しないなら関係がない。

2軸で回転する関節の場合はクォータニオンを使った方がいいことが多い。関節の可動域が大きい場合は、オイラー回転では正しく補間されないからだ。

クォータニオンの欠点

オイラー角の欠点であるジンバルロックは有名だが、クォータニオンの欠点である最小回転の法則はあまり知られていない。

クォータニオンの最小回転の法則

例えばクォータニオンで 270° 回転させてキーを打っても、再生すると反対方向に 90° 回転する。 さらに 360 の倍数で回転させてキーを打っても全く回転しない。これはクォータニオンの回転量 W が-1~1の範囲しかとらないことが原因だ。これを避ける簡単な方法はなく、中間にキーフレームを打って回転させるか直接 W を指定するかしなければならない。もしくはコンストレイントの回転コピーやチャイルドを使い、回転用オブジェクトをオイラー角で回転させる。

グラフエディタでクォータニオンの回転量を変更するには

クォータニオンの回転量は W である。ただし軸の角度(Axis Angle)のような直感的な回転量ではないことに注意する必要がある。軸の角度とクォータニオンの関係は Maths - AxisAngle to Quaternion(英語) を参照。

なぜ軸の角度(Axis Angle)が使われないのか

軸の角度(Axis Angle)は補間が非直感的で修正方法がない。たとえば逆回転(軸が反転する方向の回転)する方向にキーを打つとおかしな回転をする。

axis angle demo
軸の回転の非直感的な補間

クォータニオンではWを直接入力することで 180° 以上の回転を表現できるが、軸の角度ではそれもできない。

関連動画

関連記事

Blender 記事の目次


広告
広告