アニメーションクリップ では、アニメーション可能なプロパティならばすべて、アニメーションカーブ を利用することができます。すなわち、アニメーションクリップでそのプロパティの変化を時系列に制御できます。Animation ビュー (左側) のプロパティリストには、現在アニメーションしているプロパティが表示されます。Animation ビューを DopeSheet モードにすると、各プロパティのアニメーションの値が、単に直線の軌跡のように表示されます。しかし、Curves モードでは、プロパティの値の変化はグラフの線として表示されます。どちらのモードを使用しても、カーブは表示されます。DopeSheet モードでは、簡易化されたデータが表示され、キーフレームが発生したときにだけ表示されます。
Curves モードでは、アニメーションカーブ は色付きのカーブインジケーターとともに表示されます。それぞれの色は、現在プロパティリストで選択されているプロパティを表しています。アニメーションプロパティにカーブを追加する方法については、アニメーションビューの使用 のセクションを参照してください。
アニメーションカーブ には複数の キー があり、カーブが通過する制御ポイントです。これらのポイントは Curve エディター でカーブ上の小さなひし形で表示されます。1 つや複数の表示されたカーブに キー があるフレームを キーフレーム と呼んでいます。
あるプロパティで、現在プレビューしているフレームに キー がある場合、カーブのインジケーターにはひし形が表示されます。さらに、プロパティリストでも値の隣にひし形が表示されます。
Curve エディター は、選択されたプロパティのカーブのみ表示します。プロパティリストで複数のプロパティを選択した場合、カーブは一緒に重ねて表示されます。
キーフレームボタン をクリックすると、現在プレビューしているフレームに キーフレーム を追加することができます。
キーフレームボタン をクリックすると、現在プレビューしてるフレームに キーフレーム を加えることができます。これによって、現在選択しているカーブのすべてにキーフレームが加えられます。別の方法として、任意のフレームの 1 つのカーブにキーフレームを加えるには、新しく キーフレーム を加えたいカーブの加えたい場所をダブルクリックします。また、キーフレームライン を右クリックして、コンテキストメニューから Add Keyframe を選択して キーフレーム を追加することも可能です。配置した後は、マウスを使って キーフレーム をドラッグして動かすことができます。さらに、一度に複数の キーフレーム を選択してドラッグすることもできます。 キーフレーム を削除するには、選択して Delete を押すか、キーフレーム上で右クリックしてコンテキストメニューから Delete Keyframe を選択します。
Animation ビュー を使うと、ゲームオブジェクト の単なる位置、回転、スケールよりもはるかに多くをアニメーション化することができます。コンポーネント と マテリアル のプロパティはすべて、アニメーションすることができます。それは独自に作成したスクリプトコンポーネントのパブリック変数さえも可能です。複雑なビジュアルエフェクトや挙動をもつアニメーションでさえ、関連するプロパティに アニメーションカーブ を加えるだけで作成できます。
次の種類のプロパティは、アニメーションシステムでサポートされています。
配列はサポートされておらず、構造体や上記以外のオブジェクトも同様です。
Boolean プロパティは、0 の値は False と等しく、それ以外の値は True と等しくなります。
以下は、Animation ビュー を利用できる多くの例の一部です。
アニメーションカーブ を用いてゲームロジックを制御する場合、Unity で アニメーションの再生とサンプリング 方法に注意する必要があります。
Unity では回転は内部的に Quaternion (クォータ二オン) で表現されます。Quaternion は .x 、.y 、.z および .w の値で構成されています。一般的には、これらの使い方を熟知していないかぎり、手動で変更すべきではありません。その代わりに、回転はたいてい Euler Angles (オイラー角) で操作され、.x 、.y 、.z の値がそれぞれの 3 つの軸の周りの回転を表しています。
2 つの回転を補間する場合は、Quaternion_ か Euler Angles__ の値のどちらかで実行することになります。 Animation ビュー を使用すると、Transform 回転をアニメーション化するときに使用する補間方法を選択することができます。ただし、回転は、どの補間方法を選択しているかにかかわらず、常に Euler Angles で表示されます。
クォータニオン補間は、2 つの回転間の最短のパスに沿って、常に回転間に滑らかな変化を生成します。これにより、ジンバルロックなどの回転補間の乱れを回避することができます。しかしクォータニオン補間は 180 度以上の回転を表すことができません。なぜなら、常に最短のパスを探すという挙動があるためです。(球の表面で任意の 2 点を定めて想像してみてください。その間を結ぶ最短の線は決して球の半分より長くならないはずです) 。
クォータニオン補間を使用して180 度より大きい数字の回転値を設定すると、Animation ウィンドウで描かれたカーブは、やはり、180 度より大きい範囲を表しているように見えます。ただし、実際のオブジェクトの回転は最短のパスで行われています。
クォータニオン補間を回転に使用する場合、x、y、z のいずれかのカーブのキーか接線を変更すると、他の 2 つのカーブの値も変化します。なぜなら、3 つのカーブはすべて、内部ではクォータニオンで扱われているからです。クォータニオン補間を使用するとき、キーは常にリンクされているため、x、y、z のいずれかのカーブのうち 1 つのカーブの特定のタイミングにキーを作成すると、残り 2 つのカーブにも、その同じタイミングにキーが作成されます。
オイラー角の補間は、たいていの人が作業時に使っています。オイラー角は任意の大きな回転を表すことができ、.x 、.y 、.z のカーブは互いに独立しています。オイラー角の補間では、複数軸で同時に回転するときに発生するジンバルロックなどの問題はありますが、一度に 1 つの軸で回転する単純な回転に対しては、直感的に作業できます。オイラー角補間を使用する場合、Unity は内部的に、クォータニオンでベイクします。これは、外部のプログラムから Unity にアニメーションをインポートするときに起こることと同様です。このカーブのベイクは、処理過程で余分なキーを追加する可能性があり、接線の種類が 定数 の場合、サブフレームのレベルでは正確でない場合があることに注意してください。