Unreal Engine でアニメーション システムを作成する場合、アニメーションの圧縮は、アニメーション シーケンス アセットのアニメーション データをトランスフォームするプロセスであり、アニメーション システムの全体的なファイル サイズとメモリ コストを減少させることを目的としています。アニメーションの圧縮を利用すると、プロジェクト全体のパフォーマンスが大幅に改善しますが、これは特にさまざまな性能の複数のハードウェア ターゲット全体でプロジェクトをスケーリングする場合に顕著になります。
このドキュメントでは、Unreal Engine の アニメーションの圧縮 の詳細について説明します。
概要
一般に、最低限の動きのアニメーションはアニメーションの圧縮によって得られるメリットが大きく、アニメーションの全体的な品質への影響がほとんどありません。一方で、多数の動きがあるアニメーションでは、より大きな品質低下が発生します。アニメーションの圧縮のアプローチでは、プロジェクトで許容できる品質の損失のタイプに基づき、実装する圧縮のタイプをカスタマイズすることが重要です。
Unreal Engine には、アニメーション シーケンスに圧縮を適用するのに使用される ボーン圧縮設定 アセットと カーブ圧縮設定 アセットという 2 つのデータアセットがあります。これらのアセットを利用すると、圧縮コーデック を適用することができます。これは、さまざまな方式の圧縮をテストし、品質の損失とファイル サイズの減少の間で最適なバランスを模索し、最善の結果のみを適用できます。

Unreal Engine には、事前にパッケージ化された一般的な用途向けの圧縮設定アセットのセットが付属しており、プロジェクトのアニメーション シーケンスで利用できます。これらのデフォルトのアセットは、「Engine」 > 「Content」 > 「Animation」フォルダにあります。

オプションで、アニメーションの圧縮方法をさらにコントロールしたい場合は、独自の圧縮アセットを作成することができます。アニメーションの圧縮設定アセットを作成するには、 コンテンツ ブラウザ で (+) [Add (追加)] を使用し、[Animation (アニメーション)] > [Advanced (詳細)] に移動し、[Bone (ボーン)] または [Curve Compression Settings (カーブ圧縮設定)] アセットを選択します。

Unreal Engine のアニメーションに圧縮を適用するには、アニメーション シーケンス エディタの [Asset Details (アセットの詳細)] パネルで、Compression Settings プロパティを使用することで、圧縮設定アセットをアニメーション シーケンスに割り当てます。

アニメーション シーケンスに登録される圧縮設定アセットを変更することで、新しい圧縮設定が自動的に適用されます。また、アセットが最後に圧縮された後で圧縮設定が変更された場合や、Derived Data Cache (DDC) がアニメーション シーケンスに登録された新しい圧縮設定アセットを認識した場合、あるいはクック中に、圧縮はロード中にも自動的に適用されます。
圧縮コーデックのプロパティを変更すると、アセットは多数のアセットに割り当て可能になるため、圧縮は自動的に適用されません。特定のアニメーション設定アセットを使用して登録されたすべてのアセットを手動で圧縮するには、圧縮設定アセットの ツールバー にある [Compress (圧縮)] ボタンを使用します。

[Compress] ボタンをクリックすると、ダイアログ ボックスが表示され、圧縮されるアセットの合計数を確認するよう促されます。
ボーン圧縮
ボーン圧縮は、スケルトンの動きについて、アニメーション シーケンス アセットに含まれるデータ量を削減するために使用されます。ボーン圧縮コーデックは、キー間の移動がまったくないか少なく、補間などの手法が十分な特定のボーンについてアニメーション データを最適化しようとするものです。
ボーン圧縮設定アセットを作成し、アニメーション シーケンスに割り当ててから、ボーン圧縮設定アセットをダブルクリックすると、そのプロパティにアクセスし、アニメーションのスケルタルのモーション データを圧縮するさまざまな方式を選択およびカスタマイズできます。

プロパティ | 説明 |
---|---|
Codecs | ここでは、試すことのできるアニメーション ボーン圧縮コーデックのリストを定義できます。新しいコーデックの配列を追加するには、[Codecs] プロパティで [Add (追加)] (+) を使用します。コーデックを追加すると、選択したコーデックに関連する追加のプロパティがフィールドに入力されます。 リスト内にある空白のエントリは、ボーン圧縮をアニメーション シーケンスで実行する際に無視されます。ただし、ボーン データを圧縮するには、リストに少なくとも 1 つのコーデックが含まれている必要があります。 利用可能な各コーデックの詳細、および追加のプロパティの説明については、ボーン圧縮コーデックのリファレンスのドキュメントを参照してください。 |
Error Threshold | 圧縮時に、このエラーしきい値を下回る最適なコーデックが使用されます。値「.1 」がデフォルト値です。 |
Force Below Threshold | 有効な場合は、アニメーション シーケンスのファイル サイズを増加させる可能性があったとしても、エラーがより少ないコーデックが、そのしきい値を下回るまで使用されます。 |
カーブ圧縮
カーブ圧縮は、アニメーション シーケンスのカーブ データを圧縮するために使用されます。カーブ圧縮コーデックは、キー間の変化がまったくないか少なく、補間などの手法が十分な値をターゲットとするさまざまな方法を使用し、データを最適化することで、カーブ データを減らそうとするものです。
カーブ圧縮設定アセットを作成し、アニメーション シーケンスに割り当ててから、カーブ圧縮設定アセットをダブルクリックすると、そのプロパティにアクセスし、アニメーションのカーブ データを圧縮するさまざまな方式を選択およびカスタマイズできます。

プロパティ | 説明 |
---|---|
Codec | ここでは、カーブ圧縮コーデックを定義できます。コーデック配列を設定するには、ドロップダウン メニューを使用してコーデックを選択します。コーデックを追加すると、選択したコーデックに関連する追加のプロパティがフィールドに入力されます。 リスト内にある空白のエントリは、ボーン圧縮をアニメーション シーケンスで実行する際に無視されます。ただし、カーブ データを圧縮するにはアセットにコーデックが含まれている必要があります。 利用可能な各コーデックの詳細、および追加のプロパティの説明については、カーブ圧縮コーデックのリファレンスのドキュメントを参照してください。 |
Max Curve Error | リッチ カーブ の圧縮時に許可される最大エラーしきい値を設定します。デフォルト値は「0 」です。 |
Use Anim Sequence Sample Rate | 有効にすると、圧縮時にアニメーション シーケンスのサンプル レートを決定するために [Error Sample Rate] のプロパティ値が使用されます。 |
Error Sample Rate | [Use Anim Sequence Sample Rate] プロパティが使用される場合、アニメーション シーケンスでは、カーブ エラーの測定時に使用するサンプル レートとしてプロパティの定義した値を使用します。デフォルト値は「60 」です。 |
圧縮コーデック
Unreal Engine のボーン圧縮コーデックおよびカーブ圧縮コーデックのリファレンスについては、アニメーションの圧縮コーデックのリファレンス ドキュメントを参照してください。