【Unreal Engine】回転軸について

Unreal Engine5

他の3DツールであるMAYAやUnityを使用していた主が。

Unreal Engineを触った際に、戸惑いました。

他のツールと異なる表記と回転軸の方向に。

そこで。今回は、Unreal Engineの回転軸について深堀したことを綴ります。

Unreal Engineの回転軸の正体

Unreal Engineではオイラー角を採用しています。

オイラー角は、3次元空間で回転姿勢を示す手法の1つで、飛行機の姿勢を示す際に用いられています。

X軸回転を「ロール」、Y軸回転を「ピッチ」、Z軸回転を「ヨー」と呼びます。

そしてオイラー角の角度表現では、特定の順序で回転軸を表記していくことで角度を示します。

これは、表記する軸の順番が異なると、結果が変わってしまうためです。

一般的にX軸回転「ロール」→Y軸回転「ピッチ」→Z軸回転を「ヨー」の順番で表記します。

加えて他の3Dツールと決定的に違うことは、縦軸がZ軸であるであることです。

3Dツールのワールド空間は、縦Z軸&前後X軸縦Y軸&前後Z軸があります。

3D代表的ツールであるMAYAやUnityは縦Y軸&前後Z軸です。

一方、Unreal Engineは縦Z軸&前後X軸です。

そのため、他の3Dツールと同じ感覚で回転軸に数値入力すると、意図しない挙動をします。

Unreal Engineの回転軸の問題点

オイラー角を採用しているUnreal Engineには3つの問題点があります。

角度表現の複雑化

オイラー角では、1つの向きを示す方法が複数存在します。

そのため、数値上は異なるのに結果が同じになるというケースが存在します。

一定条件における回転軸の重複

オイラー角では、Y軸回転「ピッチ」を90度回転させるとX軸回転「ロール」とZ軸回転を「ヨー」が重なってしまいます。すると、本来回転軸が3つあるところが1つ少なくなってしまいます。

この現象をジンバルロックと呼びます。

他の3Dツールとの互換性

Unreal Engineの違和感の正体はここにあります。

MAYAやUnityでは縦軸がY軸設定になっている場合が多くあります。そのため、出力時の他の3DツールとUnreal Engineではモデルの軸設定が異なり意図しない方向に向いてしまう…。

という問題が発生します。

Unreal Engineの回転軸の問題点の解決方法

Unreal Engineの回転軸の問題点に対し、主は以下の対策を行います。

角度入力順序の統一化

ロー・ピッチ・ヨー回転において数値入力の優先順位を統一します。

この数値を統一することで、複数人でデータを扱った際にデータが複雑化する問題を防ぐことができます。

3D素材の出力及びインポート設定の統一化

Unreal Engineでは、他のツールで作成したモデルデータのインポート際に、軸の方向を設定する機能が存在します。これらの設定を統一することで、モデルデータ毎の軸の方向を統一させることができます。

上記の他にも、Unreal Engineの回転軸の問題点解決方法は存在するかと思います。
UEを触りながら気づいたことは随時追記していきます。

コメント

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