このトピックでは、プロパティリスト、アニメーションカーブとそのキー、キーフレームの追加と変更、回転の補間のタイプについて説明します。
アニメーションクリップ__で、アニメーション可能なプロパティに__アニメーションカーブ__がある場合は、プロパティの値が時間とともに変化することを意味します。Animation ビュー__のプロパティリスト領域 (左側) には、現在アニメーション化されているすべてのプロパティがリストされます。Animation ビューを Dope Sheet モードにすると、各プロパティのアニメーション値は直線のトラックとしてのみ表示されますが、Curves モードでは、プロパティの値の変化がグラフ上の線として表示されます。どちらのモードを使用しても、カーブは存在します。Dope Sheet モードでは、キーフレームが発生したときのみ表示することで、データの表示を簡素化できます。
Curves モードでは、__アニメーションカーブ__に色付きのカーブインジケーターが表示されます。各色は、プロパティリストで選択したプロパティの 1 つを表します。アニメーションプロパティにカーブを追加する方法については、Animation ビューの使用に関するセクションを参照してください。
アニメーションカーブ__には複数の__キー__があり、カーブが通過する制御ポイントとなっています。これらのポイントは、Curve エディター__でカーブ上の小さなひし形で表示されます。1 つの__キー__があるカーブが 1 つまたは複数、表示されているフレームを、__キーフレーム__と呼んでいます。
__Curve エディター__では、選択したプロパティのカーブのみが表示されます。プロパティリストで複数のプロパティを選択すると、カーブがまとめて表示されます。現在プレビューしているフレームに、あるプロパティの__キー__がある場合、カーブのインジケーターはひし形になります。
__Keyframe ボタン__をクリックすると、現在プレビューしているフレームに__キーフレーム__を追加することができます。
Keyframe ボタン__をクリックすることで、現在プレビューしているフレームに__キーフレーム__を追加できます。これによって、現在選択しているカーブのすべてにキーフレームが追加されます。別の方法として、新しく__キーフレーム__を追加したいカーブの追加したい場所をダブルクリックすることで、任意のフレームの 1 つのカーブにキーフレームを追加できます。また、Keyframe Line__ を右クリックして、コンテキストメニューから Add Keyframe を選択しても、キーフレーム__を追加できます。配置した後は、マウスを使って__キーフレーム__をドラッグして動かすことができます。さらに、一度に複数の__キーフレーム__を選択してドラッグすることもできます。キーフレーム__を削除するには、選択して Delete を押すか、キーフレーム上で右クリックしてコンテキストメニューから Delete Keyframe を選択します。
Animation ビュー__を使用してアニメーション化できるのは、ゲームオブジェクト__の位置、回転、スケールだけではありません。任意の__コンポーネント__や__マテリアル__のプロパティはアニメーション化できます。独自のスクリプトコンポーネントのパブリック変数であっても同様です。複雑な視覚効果と動作のあるアニメーションを作成するには、関連するプロパティに__アニメーションカーブ__を追加するだけです。
次の種類のプロパティは、アニメーションシステムでサポートされています。
配列はサポートされておらず、構造体や上記以外のオブジェクトも同様です。
Boolean プロパティの場合、0 の値は False と等しく、それ以外の値は True と等しくなります。
__Animation ビュー__を利用できることは多くありますが、以下はその一部の例です。
__アニメーションカーブ__を用いてゲームロジックを制御する場合、Unity でのアニメーションの再生とサンプリング方法に注意する必要があります。
Unity では、回転は内部的に__クォータニオン__として表されます。クォータニオンは、.x、.y、.z、.w の値で構成されます。通常、これらの値は、その役割を正確に理解しているユーザー以外は手動で変更しないでください。代わりに、回転は通常、.x、.y、.z 値を持つ__オイラー角__を使用して操作され、これら 3 つの軸の周りの回転として表します。
2 つの回転を補間する場合は、クォータニオン__か__オイラー角__の値のどちらでも補間は可能です。Animation ビュー__を使用すると、Transform 回転をアニメーション化するときに使用する補間方法を選択することができます。ただし、回転は、どの補間方法を選択しているかにかかわらず、常に__オイラー角__で表示されます。
クォータニオン補間は、2 つの回転間の最短経路に沿って、常に滑らかな変化を回転に生じさせます。これにより、ジンバルロックなどの回転補間アーティファクトが回避されます。ただし、クォータニオン補間は常に最短パスを検索するように動作するため、180 度より大きい回転を表すことはできません。(スフィアの表面にある 2 点を選択することをイメージしてください。その 2 点間の最短の線がスフィアの半分以上になることはありません)。
クォータニオン補間を使用して180 度より大きい数字の回転値を設定すると、Animation ウィンドウで描かれたカーブは、やはり、180 度より大きい範囲を表しているように見えます。ただし、実際のオブジェクトの回転は最短のパスで行われています。
クォータニオン補間を回転に使用する場合、x、y、z カーブのキーまたは接線を変更すると、他の 2 つのカーブの値も変更される場合があります。これは、3 つのカーブすべてがクォータニオンの内部表現から作成されるためです。クォータニオン補間を使用する場合、キーは常にリンクされます。そのため、3 つのカーブ (x、y、z) のいずれかに特定の時間でキーを作成すると、他の 2 つのカーブのキーもその時間に作成されます。
オイラー角の補間は、ほとんどの人が作業時に使っています。オイラー角は任意の大きな回転を表すことができ、.x、.y、.z のカーブは互いに独立しています。オイラー角の補間では、複数軸で同時に回転するときに発生するジンバルロックなどの問題はありますが、一度に 1 つの軸で回転する単純な回転に対しては、直感的に作業できます。オイラー角補間を使用する場合、Unity は内部的に、クォータニオンでカーブをベイクします。これは、外部のソフトウェアから Unity にアニメーションをインポートするときに起こることと同様です。このカーブのベイクは、処理過程で余分なキーを追加する可能性があり、接線の種類が__定数__の場合に、サブフレームのレベルでは正確でない可能性があることに注意してください。