Version: 2023.1
言語: 日本語
ヒューマンテンプレートウィンドウ
オイラーカーブのリサンプリング

Animation タブ

アニメーションクリップ は、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 オプションが表示されます。これは、ファイルサイズ (ランタイムメモリ) とカーブの評価方法の両方に影響します。

LegacyGenericHumanoidアニメーションタイプ リグに適用します。
Keyframe Reduction and Compression インポート時にキーフレームを削減し、アニメーションをファイルに保存するときにキーフレームを圧縮します。これはファイルサイズにのみ影響します。 ランタイムのメモリサイズは Keyframe Reduction と同じです。有効にすると、インスペクターに Animation Compression Errors オプションが表示されます。
古い機能 Animation Typeのリグのみ。
Optimal Unityは、キーフレーム の削減によって、あるいは密なフォーマットを使用するか、どのように圧縮することを決定しましょう。有効にすると、インスペクターに Animation Compression Errors オプションが表示されます。
GenericHumanoid 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 軸の 削減を評価する方法を示しています。

Y 軸の平行移動の簡単なアニメーションで 10% の位置誤差を定義します。
Y 軸の平行移動の簡単なアニメーションで 10% の位置誤差を定義します。

キーフレーム A の値は 11.2 です。

キーフレーム A の値は 11.2
キーフレーム A の値は 11.2

キーフレーム B の値は 11.1 です。

キーフレーム B の値は 11.1
キーフレーム B の値は 11.1

結果の削減カーブは次のようになります。

結果の削減カーブ
結果の削減カーブ

キーフレーム A は、削減されません

  • 元の値と削減された値の間の距離は D = 11.2 - 10 = 1.2
  • エラーマージンは E = 10% * 11.2 = 1.12
  • D> E

キーフレームBは削減されます。 理由は、11.1 - 10 < 10% * 11.1 であるためです。

  • 元の値と削減された値の間の距離は D = 11.1 - 10 = 1.11
  • 誤差マージンは E = 10% * 11.1 = 1.11
  • D = E

わずかに異なる大きな値を使用する場合、この方法には制限があることに注意してください。シーンを 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 タブの各セクションで行ないます。

If you manually change properties of imported clips, Unity does not import new animation clips when the source Asset changes. For example, if you create a new clip or change a clip timing on the Animation tab, the clip list does not update even if you add clips to the FBX file from outside Unity. To view new and changed animation clips, you must add a new source take to the clip list.

クリップ固有のプロパティ

選択したアニメーションクリップのインポートオプション
選択したアニメーションクリップのインポートオプション

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 TypeHumanoid のものにのみ使用可能です。
Offset ルートの回転のオフセット値 (角度単位)
Root Transform Position (Y)
Bake into Pose 垂直方向のルートモーションをボーンの動きにベイクします。ルートモーションとして保存する場合は無効にします。
Based Upon(at Start) 垂直のルート位置のベース。
Original ソースファイルからの垂直位置を維持します。
Root Node Position 垂直のルート位置を使用します。

Animation TypeGeneric のものにのみ使用可能です。
Center of Mass 重心をルートのトランスフォーム位置に揃えます。
Animation TypeHumanoid のものにのみ使用可能です。
Feet 足をルートの Transform 位置に揃えます。

Animation TypeHumanoid のものにのみ使用可能です。
Offset 垂直のルート位置のオフセット値。
Root Transform Position (XZ)
Bake into Pose 水平方向のルートモーションをボーンの動きにベイクします。ルートモーションとして保存する場合は無効にします。
Based Upon 水平のルート位置のベース。
Original ソースファイルからの水平の位置を維持します。
Root Node Position 水平のルートの Transform 位置を使用します。

Animation TypeGeneric のものにのみ使用可能です。
Center of Mass ルートのトランスフォーム位置に揃えます。

Animation TypeHumanoid のものにのみ使用可能です。
Offset 水平のルート位置のオフセット値
Mirror クリップの左右を反転します。

Animation TypeHumanoid に設定されている場合のみ表示されます。
Additive Reference Pose 追加のアニメーションレイヤー のベースとして使用される参照ポーズのフレームを設定します。タイムラインエディターで青色のマーカーが表示されます。
Pose Frame 参照ポーズとして使用するフレーム番号を入力します。タイムラインで青のマーカーをドラッグして、この値を更新することもできます。

Additive Reference Pose が有効な場合のみ使用可能です。
Curves このセクションを開き、このアニメーションクリップのアニメーションカーブ を管理します。
Events このセクションを開き、このアニメーションクリップのアニメーションイベント を管理します。
Mask このセクションを開き、このアニメーションクリップのアバターマスク を管理します。

すべてのクリップのプロパティ

これらの拡張可能なプロパティは、インポートされるすべてのアニメーションクリップに適用されます。

すべてのアニメーションクリップのインポートオプション
すべてのアニメーションクリップのインポートオプション
プロパティ 機能
Motion このセクションを開き、インポートされたすべてのクリップのルートモーションノード を管理します。
Import Messages このセクションを開き、アニメーションのインポートに関する情報 とオプションの Retargeting Quality Report を表示します。

アニメーションのインポートに関する警告

アニメーションのインポート処理中に問題が発生した場合は、アニメーションのインポートインスペクター上部に警告が表示されます。

アニメーションのインポート警告メッセージ
アニメーションのインポート警告メッセージ

警告は、必ずしもアニメーションがインポートされていない、または、動作していないことを意味しているわけではありません。インポートされたアニメーションが、元のアニメーションと完全に同じでないことを意味している場合があります。

詳細情報を表示するには、Import Messages セクションを展開します。

アニメーションのインポートに関する警告メッセージ
アニメーションのインポートに関する警告メッセージ

この場合では、Unity は Generate Retargeting Quality Report オプションを提供しています。これを有効にすると、リターゲティングの問題に関するより具体的な情報を確認できます。

他の警告の詳細は以下の通りです。

  • Default bone length found in this file is different from the one found in the source avatar. (このファイルに含まれるデフォルトのボーンの長さが、ソースアバターのものと一致しません。)
  • Inbetween bone default rotation found in this file is different from the one found in the source avatar. (このファイルに含まれるボーンとボーンの間の回転が、ソースアバターのものと異なります。)
  • Source avatar hierarchy doesn’t match one found in this model. (ソースアバターの階層が、このモデルに含まれるものと一致しません。)
  • This animation has Has translation animation that will be discarded. (このアニメーションに含まれる 平行移動のアニメーションは破棄されます。)
  • Humanoid animation has inbetween transforms and rotation that will be discarded. (ヒューマノイドのアニメーションに含まれる中間にあるトランスフォームと回転は破棄されます。)
  • Has scale animation that will be discarded. (スケールアニメーションは破棄されます。)

これらのメッセージは、アニメーションが 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

ヒューマンテンプレートウィンドウ
オイラーカーブのリサンプリング