アニメーションクリップ は、Unity のアニメーションの最小の構成要素です。それらは、RunLeft、Jump、Crawl などの独立したモーションを表し、様々な方法で操作し組み合わせることで、活気のあるアニメーションを生み出すことができます (アニメーションステートマシン、アニメーターコントローラー、ブレンドツリー を参照)。 インポートした FBX データからアニメーションクリップを選択できます。
アニメーションクリップを含むモデルをクリックすると、以下のプロパティが表示されます。
Inspector ウィンドウの Animation タブは 5 つのエリアに分けられています。
(A) アセット固有のプロパティ - これらの設定は、アセット全体のインポートオプションを定義します。
(B) クリップ選択リスト - このリストから任意の項目を選択して、そのプロパティをディスプレイし、 アニメーションをプレビューできます。新しいクリップを定義 することもできます。
(A) クリップ固有のプロパティこれらの設定は、選択した アニメーションクリップ のインポートオプションを定義します。
(D) クリッププロパティ。これらの設定は、すべてのアニメーションクリップのインポートオプションを定義します。
(E) アニメーションのプレビュー。アニメーションを再生し、特定のフレームを選択することができます。
これらのプロパティは、このアセット内で定義されたすべてのアニメーションクリップと制約に適用されます。
プロパティ | 機能 | |
---|---|---|
Import Constraints | このアセットから コンストレイント をインポートします。 | |
Import Animation | このアセットからアニメーションをインポートします。 ノート: 無効にすると、このページの他のすべてのオプションは非表示になり、アニメーションはインポートされません。 |
|
Bake Animations | キネマティックなキーフレームを転送するために、IK やリアルタイムな計算で作成されたアニメーションをベイクします。 Autodesk® Maya®、Autodesk® 3dsMax®、Cinema 4D ファイルのみに使用可能です。 |
|
Resample Curves | アニメーションカーブをクォータニオン値として再サンプル化し、アニメーションの各フレームに新しいクォータニオンキーフレームを生成します。 このオプションは、インポートファイルにオイラーカーブが含まれている場合にのみ表示されます。このオプションはデフォルトで有効になっています。 このオプションを無効にすると、アニメーションカーブが元の作成時のまま保持 されます。このオプションを無効にするのは、元のアニメーションと比較してリサンプリングされたアニメーションに補間の問題がある場合のみにしてください。 |
|
Anim. Compression | アニメーションをインポートするときに使用する圧縮のタイプ。 | |
Off | アニメーション圧縮を無効にします。つまり、Unity はインポート時にキーフレーム数を減らさないため精度の高いアニメーションになりますが、パフォーマンスは低下し、ファイルとランタイムのメモリサイズは大きくなります。通常、このオプションを使用することはお勧めできません。高精度のアニメーションが必要な場合は、代わりにキーフレームの削減を有効にし、Animation Compression Error 値をできるだけ低くします。 | |
Keyframe Reduction | インポートで重複するキーフレームを削減します。有効にすると、Inspector に Animation Compression Errors オプションが表示されます。これは、ファイルサイズ (ランタイムメモリ) とカーブの評価方法の両方に影響します。 Legacy、Generic、Humanoid の アニメーションタイプ リグに適用します。 |
|
Keyframe Reduction and Compression | インポート時にキーフレームを削減し、アニメーションをファイルに保存するときにキーフレームを圧縮します。これはファイルサイズにのみ影響します。 ランタイムのメモリサイズは Keyframe Reduction と同じです。有効にすると、インスペクターに Animation Compression Errors オプションが表示されます。 | |
古い機能 Animation Typeのリグのみ。 | ||
Optimal | Unityは、キーフレーム の削減によって、あるいは密なフォーマットを使用するか、どのように圧縮することを決定しましょう。有効にすると、インスペクターに Animation Compression Errors オプションが表示されます。 | |
Generic と Humanoid Animation Typeのリグのみ。 | ||
Animation Compression Errors | Keyframe Reduction または Optimal 圧縮が有効な場合のみ使用可能です。 | |
Rotation Error | 回転カーブ圧縮のためのエラー許容範囲を (角度として度数で) 設定します。Unity はこれを使って回転カーブのキーを削除できるかどうかを決定します。 これは、元の回転値と削減した値の間の最小角度を表します。 Angle(value, reduced) < RotationError
|
|
Position Error | 位置カーブの 圧縮の許容誤差を(パーセンテージで)設定します。 Unityはこれを使用して、位置カーブ上のキーを削除できるかどうかを判断します。詳細については、位置とスケールカーブのキー 削減の許容誤差を設定するを参照してください。 | |
Scale Error | スケールカーブ 圧縮の許容誤差を(パーセントで)設定します。 Unityはこれを使用して、スケールカーブ上のキーを削除できるかどうかを判断します。詳細については、位置とスケールカーブのキー 削減の許容誤差を設定するを参照してください。 | |
Animated Custom Properties | カスタムのユーザープロパティとして指定した FBX プロパティをすべてインポートします。 Unity は、FBX ファイルをインポートするときに、小さなプロパティのサブセットのみをサポートします (例えば、Translation、Rotation、Scale、Visibility)。ただし、extraUserProperties メンバーを使用してインポータースクリプトで名前を付けることで、ユーザープロパティなどの標準的な FBX プロパティを扱うことができます。インポートの間、Unity は “実際の” ユーザープロパティと同様に、名前付きプロパティを AssetPostprocessor に渡します。 |
許容誤差のパーセンテージを設定して、 アニメーション 圧縮の戦略としてUnityが位置またはスケールカーブの キーを削除できるかどうかを決定します。
Anim. Compression プロパティを “Keyframe Reduction” または “Optimal” に設定すると、Unity は元のカーブを特定のキーフレームを削除した後のカーブと比較し、このテストを適用します。
OriginalValue - ReducedValue > OriginalValue * percentageOfError
元の値と削減された値の差が元の値に許容誤差を乗算した値よりも小さい場合、Unityはキーフレームを削除します。
Unity は 3 つのカーブコンポーネント (つまり、distance(x,y,z)
) 間の距離、そして、コンポーネントごと (distance(x)
、distance(y)
、distance(z)
) に比較します。
この例は、Unity が 10% の許容誤差を使用して y 軸の 削減を評価する方法を示しています。
キーフレーム A の値は 11.2 です。
キーフレーム B の値は 11.1 です。
結果の削減カーブは次のようになります。
キーフレーム A は、削減されません 。
D = 11.2 - 10 = 1.2
E = 10% * 11.2 = 1.12
キーフレームBは削減されます。 理由は、11.1 - 10 < 10% * 11.1
であるためです。
D = 11.1 - 10 = 1.11
E = 10% * 11.1 = 1.11
わずかに異なる大きな値を使用する場合、この方法には制限があることに注意してください。シーンを 1000 ユニット離すと、基本的に同じアニメーションが、0 から遠く離れた位置に移動します。
この場合、両方のキーフレームが削減されます。
キーフレーム A が削減される 理由は以下のとおりです。
D = 1011.2 - 1010 = 1.2
E = 10% * 1011.2 = 101.12
キーフレームBは削減されます。 理由は、11.1 - 10 < 10% * 11.1
であるためです。
D = 11.1 - 10 = 1.11
E = 10% * 1011.1 = 101.11
キーフレームが削減されたカーブに留まるためには、値が高いほど、元の値と削減された値の差を大きくする必要があります。キーフレーム A の値は 1100 で、破棄されます。 キーフレーム B の値は 1112 で、そのまま残ります。
これらのタスクは Animation タブの各セクションで行ないます。
+
) ボタンでこのファイルに 新規クリップの作成 を行ないます。-
) ボタンで選択したクリップ定義を削除します。注意: インポートしたクリップのプロパティを手動で変更した場合、 ソースアセットが変更されても新しいアニメーションクリップはインポートされません。例えば、Animation タブで新しいクリップを作成したり、クリップのタイミングを変更したりしても、Unity の外部で FBX ファイルにクリップを追加しても、そのクリップリストは変更されません。Unity は新しいアニメーションクリップを無視します。
Animation タブのこのエリアには、以下の機能が表示されます。
(A) 選択したクリップの編集可能な名前。
(B) アニメーションクリップのタイムライン。
(C) ループ、ルートモーション抽出、カーブ、イベント、アバターマスクを制御するクリッププロパティ。
アセット内で定義された各アニメーションクリップに対して、以下のプロパティを個別に設定できます。
プロパティ | 機能 | |
---|---|---|
Area A | ||
テイク名 |
ソースファイル内のソーステイクの名前。ソースファイルには、Motionbuilder や Autodesk® Maya® などの外部 3D アプリケーションで作成されたソーステイクのセットが含まれます。 ソーステイクを個別のアニメーションクリップとしてインポートできます。また、フレームのサブセットからアニメーションクリップを作成 することもできます。 |
|
Area B | ||
アニメーションタイムラインの開始と終了のインジケーターをドラッグして、各クリップのフレーム範囲を定義します。 クリップの作成は、基本的にアニメーションのセグメントの開始点と終了点を定義することです。ループするクリップを定義 するには、最初と最後のフレームができるだけ一致するように、開始点と終了点をトリムします。タイムラインをズームしてスクロールし、より正確にすることもできます。 |
||
Start | クリップの開始フレーム | |
End | クリップの終了フレーム | |
Area C | ||
Loop Time | アニメーションクリップを最後まで再生し終わると、リスタートします。 | |
Loop Pose | モーションをシームレスにループします。 | |
Cycle Offset | 時間をずらしてアニメーションのループのサイクルを開始する場合、サイクルのオフセット。 | |
Root Transform Rotation | ||
Bake into Pose | ルートの回転をボーンの動きにベイクします。ルートモーションとして保存する場合は無効にします。 | |
Based Upon | ルートの回転のベース | |
Original | ソースファイルの元の回転を維持します。 | |
Root Node Rotation | ルートノードの回転を使用します。 Generic Animation Type でのみ使用可能です。 |
|
Body Orientation | 上体を前方に向けたままにします。 Animation Type が Humanoid のものにのみ使用可能です。 |
|
Offset | ルートの回転のオフセット値 (角度単位) | |
Root Transform Position (Y) | ||
Bake into Pose | 垂直方向のルートモーションをボーンの動きにベイクします。ルートモーションとして保存する場合は無効にします。 | |
Based Upon(at Start) | 垂直のルート位置のベース。 | |
Original | ソースファイルからの垂直位置を維持します。 | |
Root Node Position | 垂直のルート位置を使用します。 Animation Type が Generic のものにのみ使用可能です。 |
|
Center of Mass | 重心をルートのトランスフォーム位置に揃えます。 Animation Type が Humanoid のものにのみ使用可能です。 |
|
Feet | 足をルートの Transform 位置に揃えます。 Animation Type が Humanoid のものにのみ使用可能です。 |
|
Offset | 垂直のルート位置のオフセット値。 | |
Root Transform Position (XZ) | ||
Bake into Pose | 水平方向のルートモーションをボーンの動きにベイクします。ルートモーションとして保存する場合は無効にします。 | |
Based Upon | 水平のルート位置のベース。 | |
Original | ソースファイルからの水平の位置を維持します。 | |
Root Node Position | 水平のルートの Transform 位置を使用します。 Animation Type が Generic のものにのみ使用可能です。 |
|
Center of Mass | ルートのトランスフォーム位置に揃えます。 Animation Type が Humanoid のものにのみ使用可能です。 |
|
Offset | 水平のルート位置のオフセット値 | |
Mirror | クリップの左右を反転します。 Animation Type が Humanoid に設定されている場合のみ表示されます。 |
|
Additive Reference Pose |
追加のアニメーションレイヤー のベースとして使用される参照ポーズのフレームを設定します。タイムラインエディターで青色のマーカーが表示されます。 |
|
Pose Frame | 参照ポーズとして使用するフレーム番号を入力します。タイムラインで青のマーカーをドラッグして、この値を更新することもできます。 Additive Reference Pose が有効な場合のみ使用可能です。 |
|
Curves | このセクションを開き、このアニメーションクリップのアニメーションカーブ を管理します。 | |
Events | このセクションを開き、このアニメーションクリップのアニメーションイベント を管理します。 | |
Mask | このセクションを開き、このアニメーションクリップのアバターマスク を管理します。 |
これらの拡張可能なプロパティは、インポートされるすべてのアニメーションクリップに適用されます。
プロパティ | 機能 |
---|---|
Motion | このセクションを開き、インポートされたすべてのクリップのルートモーションノード を管理します。 |
Import Messages | このセクションを開き、アニメーションのインポートに関する情報 とオプションの Retargeting Quality Report を表示します。 |
アニメーションのインポート処理中に問題が発生した場合は、アニメーションのインポートインスペクター上部に警告が表示されます。
警告は、必ずしもアニメーションがインポートされていない、または、動作していないことを意味しているわけではありません。インポートされたアニメーションが、元のアニメーションと完全に同じでないことを意味している場合があります。
詳細情報を表示するには、Import Messages セクションを展開します。
この場合では、Unity は Generate Retargeting Quality Report オプションを提供しています。これを有効にすると、リターゲティングの問題に関するより具体的な情報を確認できます。
他の警告の詳細は以下の通りです。
これらのメッセージは、アニメーションが Unity にインポートされ、Unity の内部形式に変換されるときに、元のファイルにあるデータの一部が失われたことを示しています。これらの警告は基本的に、リターゲティングされたアニメーションがソースアニメーションと正確に一致しないことを示しています。
ノート: Unity は、constant 以外で事前、または事後の外挿 (pre-extrapolate と post-extrapolate) モード (pre-infinity と post-infinity モードとも呼ばれます) をサポートせず、インポート時に constant に変換します
Animation タブのプレビューエリアには、以下の機能があります。
(A) 選択したクリップの名前。
(B) 2D プレビューモードボタン (平行投影カメラと透視カメラを切り替えます)。
(C) ピボットと質量の中心のディスプレイボタン (ギズモの表示と非表示を切り替えます)。
(D) アバターセレクター (どのゲームオブジェクトのアクションをプレビューするかを変更します)。
(E) 再生/一時停止ボタン。
(F) プレビュータイムラインの再生ヘッド (前後にスクラブできます)。
(G) アニメーションプレビューのスピードスライダー (左に動かすと遅く、右に動かすと速くなります)。
(H) 再生状況インジケーター (再生位置を秒、パーセンテージ、フレーム番号で表示します)。
(I) Tag バー。このバーでは タグ を定義し、クリップに適用することができます。
(J) アセットバンドル バー。このバーでは アセットバンドルとバリアントを定義 できます。
AnimationClip