3D アプリケーションでの回転は通常、クォータ二オンかオイラー角で表されています。たいていの場合、Unity は内部ではクォータ二オンで回転を表します。ただし、Unity の回転と向き を基本的に理解することが大切です。
外部ソースからのアニメーションを含むファイルをインポートすると、インポートされたファイルには通常、オイラー形式のキーフレームアニメーションが含まれます。Unity のデフォルトの動作は、これらのアニメーションをクォータ二オン値でリサンプリングし、アニメーションのすべてのフレームに対し新しいクォータ二オンのキーフレームを生成します。これにより、ソースアニメーションと Unity での表示の違いが最小限に抑えられます。
インポートされたアニメーションのクォータニオン表示が、リサンプリングしても、オリジナルのものと十分に一致しない場合があります。このため、Unity にはアニメーションのリサンプリングを無効にするオプションがあります。つまり、リサンプリングせずに、実行時に元のオイラーアニメーションキーフレームを使用できます。
注意 フレーム間のデフォルトのクォータニオン補間が上手くいかず問題が発生する場合は、最後の手段としてオイラーカーブのみを維持します。
アニメーションファイルで元のオイラーカーブの値を使用するには、Animation の Resample Curves オプションのチェックを外します。
このオプションを無効にすると、カーブのタイプに応じて (オイラーかクォータニオンモードのいずれかで) 元のキーフレームで回転カーブが維持されます。
注意 FBX SDK は、回転前または回転後のジョイントの回転カーブを自動的にリサンプリングします。つまり、Unity はそれらを自動的にクォータニオンカーブでインポートします。
Unity はさまざまなインポートファイルをサポートしており、インポートしたカーブをできる限りオリジナルに近い状態に維持しようとします。これを実現するために Unity はすべての通常 (繰り返しなし) のオイラー回転順序をサポートしており、元の回転順序でカーブをインポートします。
オリジナルの (リサンプリングされていない) オイラー回転を使用すると、アニメーションの再生時に視覚的な違いはほとんど見られません。内部では、これらのカーブはランタイムのときでさえオイラーで保存されます。ただし、エンジンはクォータニオンでしか動かないため、Unity は最終的に回転値をクォータニオンに変換する必要があります。
Resample Curves オプションを無効にすると、ゲームオブジェクトに適用されるまで回転の値はオイラー値として維持されます。これは、結果は元のものと同じように見えますが、メモリの面では向上していることを意味します。なぜなら、オーサリングソフトウェアでベイクされていない回転カーブはメモリの消費量が少ないからです。
デフォルトでは、Transform インスペクターに表示されるオイラー角は Z、X、Y の順序で適用されます。
Unity のデフォルトと異なる回転順序のオイラーカーブを持つインポートアニメーションを再生または編集する場合、Unity は Rotation フィールドの横にその順序の違いを表示します。
異なる回転順序をもつ複数の Transform を編集するとき、Unity は、同じオイラー回転を適用しても、回転順序が異なるカーブでは異なる結果になるという警告メッセージを表示します。