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 は、同じオイラー回転を適用しても、回転順序が異なるカーブでは異なる結果になるという警告メッセージを表示します。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.