アニメーションのミラーリング

ミラー データ テーブルを使用した Unreal Engine でのアニメーションのミラーリング。

アニメーションのミラーリングは、キャラクターの片側のアニメーションを反対側にコピーするもので、同じアニメーションを異なる状況で再利用できます。ミラー データ テーブル および他のミラーリング ワークフローを使用して、アニメーション シーケンスだけではなく、カーブ、同期マーカー、通知をミラーリングできます。さらに、Unreal Engine 内でミラーリングすると、もう一方のコピーを管理することなく、ミラーリングされたアニメーションを作成できます。

このドキュメントでは、ミラー データ テーブルとアニメーション ブループリントを使用して、アニメーションをミラーリングする方法の概要を説明します。

前提条件

ミラー データ テーブル

アニメーションのミラーリングを開始するには、まず ミラー データ テーブル アセットを作成する必要があります。ミラー データ テーブルには、ミラーリングするスケルトンの全要素に対する割り当てと命令を設定します。

作成するには、コンテンツブラウザにある [+Add (追加)] をクリックして、[Animation (アニメーション)] > [Mirror Data Table (ミラーデータテーブル)] を選択します。ダイアログ ウィンドウが表示され、ミラーリングするスケルトンを選択する必要があります。スケルトンを選択し、[Accept (同意)] をクリックします。

create mirror data table

ミラー データ テーブルを開くと、次の主要領域があるエディタが表示されます。

mirror data table editor

  1. [Data Table (データテーブル)]、ミラーリングする要素のリストが含まれます。このリストには、ボーン、通知、他の要素名に応じて、自動で内容が入ります。

  2. これは [Data Table Details (データ テーブルの詳細)] で設定できます。

  3. [Row Editor (行エディタ)]、選択エントリの設定があり、要素名、ミラー名、要素タイプを編集できます。

エントリを追加および編集する

新しいテーブル エントリを追加するには、[+Add (追加)] ツールバー ボタンをクリックして、[Row Editor (行エディタ)] パネルの 4 つのプロパティに入力します。

  • [Row Name (行名)]、エントリの名前。

  • [Name (名前)]、ミラーリングする元のボーンの名前。

  • [Mirrored Name (ミラー名)]、ミラーリングされるもう一方のボーンの名前。左または右のボーンは、これらのプロパティのどちらにも設定できますが、これらのプロパティには対称なボーンを設定する必要があります。

  • [Mirror Entry Type (ミラーエントリタイプ)]、ミラーリングする要素タイプ。次のタイプを選択できます。

add mirror entry

キャラクターを完全にミラーリングするには、中心にある骨 (pelvisspineneckhead など) を含む最上位のスキン ボーンをテーブルに含める必要があります。これにより、ミラーリング処理で、ミラー軸に沿って一連のボーンの回転が適切に折り返されるようになります。これらのエントリでは、[Name][Mirrored Name] が一致する必要があります。

mirror central bones

データテーブルの詳細

[Data Table Details (データテーブルの詳細)] パネルには次のとおりミラーリング処理の構成およびその他の設定が含まれます。

data table details

名前

説明

Mirror Find Replace Expressions (ミラーの表現の検索と置換)

共通のミラー エントリをテーブルに自動で入力するために使用する表現の配列です。詳細については、「表現の検索と置換」セクションを参照してください。

Mirror Axis (ミラーの軸)

ミラーリングの軸で、キャラクターの正面を横切ります。多くの場合、X になります。

mirror axis

Skeleton (スケルトン)

ミラーリング処理に使用するスケルトン アセット。

Row Struct (行構造)

テーブルの各行に使用する構造。拡張する場合は FTableRowBase から継承する必要があります。

Strip from Client Builds (クライアント ビルドから除外)

有効に設定すると、このデータ テーブルはクライアント ビルドにクックされません。サーバーのみが認識する必要がある機密性の高いテーブルを作成する場合に役立ちます。

表現の検索と置換

表現の検索 および 表現の置換 は、データテーブルの詳細に追加できる、配列エントリで、スケルトンの要素に対する特定の文字列テキストを自動で検索し置き換えます。これらの表現は、スケルトンを作成または再インポートするときに、どの要素が自動で入力されるのかを知らせるために使用されます。

find and replace expression properties

それぞれの配列に次の表現が必要です。

名前

説明

Find Expression (表現の検索)

検索するテキスト。多くの場合、要素名の対称を表わすモディファイア (_lleft__left_.など) になります。

Replace Expression (表現の置換)

置換するテキスト。多くの場合、要素名の対称を表わすモディファイア (_rright_,_right_.など) になります。

Find Replace Method (検索と置換の方式)

テキストを置換するときに使用する検索方式。次のオプションから選択できます。

  • Prefix (プレフィックス)、名前の先頭にあるテキストのみを検索します。

  • Suffix (サフィックス)、名前の終りにあるテキストのみを検索します。

  • Regular Expression (正規表現)、名前を検索して置換するためにカスタマイズした表現を記述できます。

方式として Regular Expression を使用すると、カスタマイズした 正規表現Find ExpressionReplace Expression に設定できます。

たとえば、デフォルト配列の Index 12 には次の表現が含まれます。一般的な中心にある骨の名前を検索し Name および Mirrored Name プロパティに割り当てます。

  • 検索表現:((?:^[sS]pine|^[rR]oot|^[pP]elvis|^[nN]eck|^[hH]ead|^ik_hand_gun).*)

  • 置換表現:$1

finger_left_index1 など要素名の中間に対称を示すテキスト モディファイアがある場合、次の表現を記述し、適切に検索し置換できます。

  • 検索表現:(\S*)_left_(\S*)

  • 置換表現:$1_right_$2

配列には一般的表現が事前に設定されています。プレフィックスやサフィックスとして対称を表わすモディファイアの複数の順列を検索し置換できるようになっています。このデフォルト配列は [Project Settings (プロジェクト設定)] から変更できます。Unreal Engine のメインのメニュー バーで、[Edit (編集)] > [Project Settings (プロジェクト設定)] を選択してから、[Engine (エンジン)] > [Animation (アニメーション)] セクションに移動し、[Mirroring (ミラーリング)] プロパティ セクションを見つけます。

expression project settings

アニメーションのミラーリング

ミラー データ テーブルを作成し、値を入力したら、アニメーション ブループリント でアニメーションのミラーリングを実行できます。これは ミラー AnimGraph ノードを使用して実行されます。

作成するには、[AnimGraph] を右クリックして、[Mirroring (ミラーリング)] カテゴリから使用するテーブルを選択します。

mirror animation blueprint

入力ポーズと bool 変数 (ミラーリングの有効/無効) を指定することで、ミラーリング エフェクトをプレビューできます。

enable or disable mirroring

ミラー ノードには次のオプションが含まれています。

mirror properties

名前

説明

Mirror

ミラー エフェクトを有効/無効にします。デフォルトではピンとして公開されます。

Mirror Data Table

ミラーリングに使用する ミラーデータテーブル

Blend Time on Mirror State Change

ミラー が有効または無効になるとき、ミラー状態間でブレンドする時間の長さ。これを使用するには、ミラー ノードの後に Intertialization ノードを使用する必要があります。

blend time on mirror state change

Reset Child on Mirror State Change

有効にすると、ミラー状態が変わったとき、ソースポーズが再初期化されます。

Bone

ミラーリングにボーン データを含めるかどうか。

Curve

ミラーリングにカーブ データを含めるかどうか。

Attributes

ミラーリングに通知と同期マーカー データを含めるかどうか。

ブループリント通知でミラー アニメーションを検出する

Custom Notify States を使用する場合、ミラー状態に基づいて異なる動作になるように変更することができます。Is Triggered By Mirrored Animation ノードを使用して、通知ブループリントでミラー状態を区別できます。

この例では、Received Notify 関数で使用し、ロジックを分岐します。ここでミラー アニメーションから受信した通知かどうかをチェックします。

is triggered by mirrored animation

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル