アニメーションクリップ は、Unity のアニメーションの最小の構成要素です。それらは、RunLeft、Jump、Crawl などの独立したモーションを表し、様々な方法で操作し組み合わせることで、活気のあるアニメーションを生み出すことができます (アニメーションステートマシン、アニメーターコントローラー、ブレンドツリー を参照)。 インポートした FBX データからアニメーションクリップを選択できます。
アニメーションクリップを含むモデルをクリックすると、以下のプロパティが表示されます。
Inspector ウインドウの Animation タブは 4 つの部分に分けられています。
(A) アセット固有のプロパティ - これらの設定は、アセット全体のインポートオプションを定義します。
(B) クリップ選択リスト - このリストから任意の項目を選択して、そのプロパティをディスプレイし、 アニメーションをプレビューできます。新しいクリップを定義 することもできます。
(A) クリップ固有のプロパティこれらの設定は、選択した アニメーションクリップ のインポートオプションを定義します。
(D) アニメーションプレビュー - ここでアニメーションを再生し、特定のフレームを選択できます。
これらのプロパティは、このアセット内で定義されたすべてのアニメーションクリップと制約に適用されます。
プロパティ | 機能 | |
---|---|---|
Import Constraints | このアセットから コンストレイント をインポートします。 | |
Import Animation | このアセットからアニメーションをインポートします。 ノート: 無効にすると、このページの他のすべてのオプションは非表示になり、アニメーションはインポートされません。 |
|
Bake Animations | キネマティックなキーフレームを転送するために、IK やリアルタイムな計算で作成されたアニメーションをベイクします。 Autodesk® Maya®、Autodesk® 3dsMax®、Cinema 4D ファイルのみに使用可能です。 |
|
Resample Curves | アニメーションカーブをクォータニオン値としてリサンプリングし、アニメーションのすべてのフレームに対して新しいクォータニオンのキーフレームを生成します。 このオプションはデフォルトで有効になっています。 元のアニメーションのキー間の補間に問題がある場合にのみ、アニメーションカーブをオリジナルに戻すをして、これを無効にします。 インポートしたファイルにオイラーカーブが含まれている場合のみ表示されます。 |
|
Anim. Compression | アニメーションをインポートするときに使用する圧縮のタイプ。 | |
Off | アニメーション圧縮を無効にします。つまり、Unity はインポート時にキーフレーム数を減らさないため精度の高いアニメーションになりますが、パフォーマンスは低下し、ファイルとランタイムのメモリサイズは大きくなります。通常、このオプションを使用することはお勧めできません。高精度のアニメーションが必要な場合は、代わりにキーフレームの削減を有効にし、Animation Compression Error 値をできるだけ低くします。 | |
Keyframe Reduction | インポートに重複するキーフレームを削減します。有効にすると、インスペクターに Animation Compression Errors オプションが表示されます。これは、ファイルサイズ(ランタイムメモリ)とカーブの評価方法の両方に影響します。 Generic Animation Type リグのみ。 |
|
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 \* percentrationError
元の値と削減された値の差が元の値に許容誤差を乗算した値よりも小さい場合、Unityはキーフレームを削除します。
Unityは3つのカーブコンポーネント間の距離を比較します(つまり、 distance(x,y,z)
比較し distance(x,y,z)
)。また、コンポーネントごとに( distance(x)
、 distance(y)
、そして distance(z)
)を比較し distance(x,y,z)
。
この例は、Unityが10%の許容誤差を使用してy 軸の 削減を評価する方法を示しています。
キーフレームAの値は11.2です。
キーフレームBの値は11.1です。
結果の縮小カーブは次のようになります。
キーフレームAは縮小されません 。
D = 11.2 - 10 = 1.2
です。E = 10% * 11.2 = 1.12
11.1–10 11.1 - 10 < 10% * 11.1
ため、 キーフレームBは削減され ます。
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
11.1–10 11.1 - 10 < 10% * 11.1
ため、 キーフレームBは削減され ます。
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) ループとポーズをコントロールクリッププロパティ
(D) 拡張可能なセクション:カーブ、イベント、マスク、 モーションルートの定義インポートプロセスからのメッセージの表示
アセット内で定義された各アニメーションクリップに対して、以下のプロパティを個別に設定できます。
プロパティ | 機能 | |
---|---|---|
エリア A (名前の編集) | ||
このアニメーションクリップのソースとして使用するソースファイルのテイク。 これは、Motionbuilder、Autodesk® Maya®、その他の 3D パッケージで分離された一連のアニメーションを定義するものです。Unity はこれらのテイクを個々のクリップとしてインポートできます。ファイル全体から、またはフレームのサブセットからそれらを作成できます。 |
||
エリア B (タイムライン機能) | ||
タイムラインの開始と終了のインジケーターをドラッグして、各クリップのフレーム範囲を定義することができます。 | ||
Start | クリップの開始フレーム | |
End | クリップの終了フレーム | |
エリア 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 が有効な場合のみ使用可能です。 |
|
エリア D (拡張可能セクション) | ||
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) AssetBundles バー (アセットバンドルとバリアントを定義 できます)