メインコンテンツまでスキップ

アイアニメーションヘルパー

リップシンクに加えて、Runtime MetaHuman Lip Sync プラグインには、MetaHuman の目をアニメーション化するための2つのオプションのヘルパーユーティリティが含まれています。

  • 自動まばたき: MetaHumanに自然でランダムな目のまばたきを生成するヘルパー
  • 視線制御: MetaHumanの目をワールド空間の位置に向けさせるアニメーションブループリントノード

これらの機能はリップシンクとは完全に独立しており、単独で、一緒に、またはリップシンクノードと組み合わせて使用できます。これらは、手動で作成することなく、リアルな目の動きを追加するための軽量でドロップイン可能なヘルパーとして設計されています。

機能プレビュー

自動まばたき:自動的な目のまばたき
アイズエイム:プレイヤーカメラを追跡
アイズエイム:移動するターゲットアクターを追跡

ビデオウォークスルー

両方のヘルパーの完全なウォークスルー(レガシーリグの回避策を含む)。

これらのヘルパーをいつ使うか

顔のアニメーションパイプラインにすでにまばたきや動的な視線が含まれている場合は、このページをスキップできます。これらのヘルパーは、自分で作成しなくても生き生きとした目の動きを実現したい場合に存在します。たとえば、アニメーションシーケンスにまばたきが含まれていない場合や、動くターゲットを目で動的に追跡する必要がある場合(これは静的なアニメーションシーケンスでは実現できません)などです。また、既存の顔のアニメーションの上に重ねて、口だけを動かすシーケンスにまばたきを追加するなど、欠けている要素を補うこともできます。

Auto Blinkヘルパーは、MetaHuman Face Control Rigの**CTRL_L_eye_blinkおよびCTRL_R_eye_blink**カーブを駆動することで、ランダムで自然な見た目のまばたきを生成します。

仕組み

各フレームで、Face Animation BlueprintのEvent GraphからUpdate MetaHuman Auto Blinkを呼び出し、そのフレームのデルタタイムを渡します。この関数は:

  1. キャラクターごとの状態(次のまばたき時間、現在の開閉フェーズなど)を、呼び出し元のAnimInstanceをキーとして追跡します
  2. 0..1の範囲の2つの浮動小数点値を返します。1つは左目用、もう1つは右目用で、各目が現在どれだけ閉じているかを表します
  3. その後、これらの値をBlueprint変数に保存し、Anim GraphのControl Rigノードに渡します

セットアップ

2つのステップ: まずイベントグラフにまばたき呼び出しを追加し、次にアニムグラフのコントロールリグノードに値を入力します。

Face Animation Blueprint(例:Face_AnimBP、または複製・コピーしたバージョン。セットアップガイドを参照)で、Event Graphを開き、Event Blueprint Update Animationに以下を追加します:

  1. Update MetaHuman Auto Blink を呼び出す
  2. Delta Time X(イベントから)を Delta Seconds に接続する
  3. (オプション)Config 構造体を設定する。デフォルト値はすでに自然に見える
  4. Left Blink ValueRight Blink Value を Blueprint 変数に昇格させる(例:LeftBlinkValueRightBlinkValue

Auto Blink Event Graph setup

同じアニメーションブループリントのアニムグラフ内で:

  1. コントロールリグノードを配置して、まばたきカーブを駆動します。その正確な配置場所は、オートまばたきを他のフェイシャルアニメーション(リップシンク、カスタムシーケンスなど)と組み合わせるかどうかによって異なります。
    • 他のフェイシャルアニメーションなし: コントロールリグノードをメインチェーンに直接配置し、Output Pose の前に置きます。
    • リップシンクや他のフェイシャルアニメーションと組み合わせる場合: このコントロールリグノードをチェーンに直接配置する代わりに、Layered blend per bone ノードに接続します。下のヒントを参照してください。
  2. ノードのDetailsパネルで、Control Rig Class(UE 5.8以降ではControl Rig Asset Reference)をMetaHumanのフェイスControl Rigに設定します。パスは通常次のとおりです:
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • プロジェクトによっては、MetaHumanのインポート方法に応じてパスが異なる場合があります。
  3. 詳細パネルで、入力セクションを展開し、以下の項目に対してピンを使用を有効にします:
    • CTRL_L_eye_blink
    • CTRL_R_eye_blink
  4. LeftBlinkValue 変数を CTRL_L_eye_blink に接続します
  5. RightBlinkValue 変数を CTRL_R_eye_blink に接続します

Auto Blink Anim Graph setup

配置が重要です

他のフェイシャルアニメーションと組み合わせない場合は、ブリンク値が上書きされないように、チェーン内のリップシンクブレンドノード(およびその他のフェイシャルアニメーションノード)の後にコントロールリグノードを配置してください。リップシンクや他のフェイシャルアニメーションと組み合わせる場合は、既存アニメーションとの組み合わせガイドに従い、このコントロールリグノードをLayered blend per boneノードのベースポーズ入力に接続してください。レイヤードブレンドノードは、一方が単純に他方を上書きするのではなく、両方を維持します。

設定

Update MetaHuman Auto Blink ノードは、オプションの Config 構造体を受け入れます。デフォルト設定はほとんどのキャラクターで自然に見えますが、動作を調整したい場合は以下を展開してください。

設定プロパティ

タイミング

プロパティデフォルト説明
まばたき間の最小間隔2.0 秒目が完全に開いている状態での、まばたき間の最小間隔。
まばたき間の最大間隔4.0 秒まばたき間の最大間隔。実際の間隔は最小値と最大値の間でランダムに決定されます。
閉眼保持時間の最小値0.04 秒目が完全に閉じた状態を維持する最小時間。
閉眼保持時間の最大値0.08 秒目が完全に閉じた状態を維持する最大時間。

補間

プロパティデフォルト説明
閉眼補間速度35.0目を閉じる際の速度。人間は目を開けるよりも閉じる方が速いため、この値は開眼速度よりも意図的に高く設定されています。
開眼補間速度18.0目を開く際の速度。
閉眼閾値0.97まばたきが「完全に閉じた」とみなされ、保持フェーズが開始される値。
開眼閾値0.02まばたきが「完全に開いた」とみなされ、次のまばたきがスケジュールされる値。

雑多

プロパティデフォルト説明
独立した目のまばたきfalsetrueの場合、左右の目がそれぞれ異なるタイミングで独立してまばたきします。false(デフォルト)の場合、両目は完全に同期してまばたきします。
bEnabled(関数ピン)truefalseの場合、目はゆっくり開いた状態に戻り、まばたきが一時停止します。カットシーン、睡眠、死亡などのシーンに便利です。

ランタイムコントロール

Reset Auto Blink State を呼び出して、指定された AnimInstance の内部状態を明示的にクリアすることもできます(例:キャラクターのリスポーン時やシネマティック状態の切り替え時)。

目の照準

Eyes Aimヘルパーは、キャラクターの目がワールド空間上の位置(例:プレイヤーカメラ、別のアクター、または任意の移動ターゲット)を追跡できるようにするアニメーションブループリントノードRuntime MetaHuman Eyes Aim)です。ヨー/ピッチのクランプ、スムージング、ターゲットが頭の後ろを通過する際の反転防止保護、およびリアリズムを高めるためのオプションのマイクロサッケードをサポートしています。

モードの選択

このノードは、ノードの詳細パネルにあるモードドロップダウンで選択できる2つのモードをサポートしています:

Mode何を駆動するかどこに配置するか
カーブ(デフォルト)フェイス用コントロールリグのアイトラッキングカーブ(CTRL_expressions_eyeLook*フェイスアニメーションブループリント(例:Face_AnimBP)内の、コントロールリグノードの前
ボーンFACIAL_L_Eye / FACIAL_R_Eye ボーンを直接駆動し、コントロールリグをバイパスするフェイスポストプロセスアニメーションブループリント(例:Face_PostProcess_AnimBP)内の、AnimNode_RigLogic ノードの

カーブモードが推奨されるデフォルトです。これは、値が通常のコントロールリグ評価を通じて組み合わされ、ボーントランスフォームを巡って競合しないため、他のカーブベースのフェイシャルシステム(リップシンク、表情、ARKitブレンドシェイプなど)とクリーンに構成されます。

カーブモードが機能しない場合は、ボーンモードを使用してください。

一部のMetaHumanバリアント(特に古いリグ、Quixel Bridge経由でダウンロードしたものを含む)では、アイルックカーブが実際には目を動かしません。目に見える症状としては、Curvesモードのノードがアクティブなときに、ターゲットの位置に関係なく目が下を向き、瞳孔がほとんど隠れてしまうことです。

これをご覧になったら、ボーン モードに切り替えてください。ボーン モードは眼球のボーンを直接回転させるため、コントロール リグの配線方法に関係なく、すべての MetaHuman バリアントで動作します。下の セットアップボーン タブを参照してください。

セットアップ

デフォルトのセットアップです。このノードは標準のFace Animation Blueprint内に配置され、フェイスControl Rigのアイ・ルック(視線)カーブを駆動します。

2つのステップ: アニメーショングラフにノードを追加し、次にイベントグラフからターゲット位置を入力します。

1. アニメーショングラフ: ノードを追加する

フェイスアニメーションブループリントのアニムグラフ内で:

  1. Runtime MetaHuman Eyes Aim ノードを追加します
  2. 詳細パネルで ModeCurves のままにします
  3. アイ・ルック・カーブに書き込む可能性のある他のすべてのフェイシャル・ロジック(リップシンク、カスタムアニメーションなど)のに配置します。Auto Blink Control Rig ノードと同じ原則です
  4. 既存のポーズを Source Pose に接続します
  5. 出力をチェーン内の次のノード(または Output Pose)に接続します
  6. Vector Blueprint 変数(例:TargetWorldLocation)を作成し、ノードの Target World Location ピンに接続します。次のステップで Event Graph からこの変数を更新します。

Eyes Aim Anim Graph setup

2. イベントグラフ: ターゲット位置を入力する

Target World Locationピンは、ワールド空間のFVectorを期待します。一般的なケースとしては、MetaHumanにプレイヤーカメラを見させることです。Event Blueprint Update Animationでは:

  1. プレイヤーカメラマネージャーを取得(プレイヤーインデックス0)
  2. 有効かどうかを確認
  3. 有効な場合、カメラの位置を取得を呼び出す
  4. それをTargetWorldLocation Blueprint変数に格納する

Eyes Aim, tracking the camera

代わりに任意のアクター(NPC、アイテム、関心ポイント)を追跡するには、各フレームでそのアクターの位置を取得し、同じ変数に格納します。固定の注視点の場合は、Target World Location を一度設定するか、ノードの詳細パネルで定数として設定します。

設定

すべての設定は、Runtime MetaHuman Eyes Aim ノードの詳細パネルに公開されています。

Aim & Clamp

目的

プロパティデフォルト説明
Modeカーブ目の駆動方法を選択します。モードの選択を参照してください。
ターゲットのワールド位置(0,0,0)目が注視するワールド空間上の点。デフォルトでピンとして公開されます。
bEnabledtruefalseの場合、目は前方に緩やかに戻り、ターゲットを無視します。デフォルトでピンとして公開されます。

クランプ

プロパティデフォルト説明
最大ヨー角度35°頭部の前方方向からの最大水平(ヨー)偏位。0〜80にクランプされます。
最大ピッチ角度25°頭部の前方方向からの最大垂直(ピッチ)偏位。0〜80にクランプされます。
後方反転防止trueターゲットが頭部の後方を通過するときに目が反転するのを防ぎます。
スムージングとサッケード

スムージング

プロパティデフォルト説明
補間速度12.0目の動きのスムージング速度。値が高いほど機敏に、低いほど緩慢になります。

サッケード

マイクロサッカードは、実際の目が常に行っている、小さくランダムな視線の動きです。これを加えることで、完全に滑らかな追従に見られる「死んだ目」のような印象を避けられます。

プロパティデフォルト説明
サッケードを有効化trueマイクロサッケードのオン/オフを切り替えます。
サッケードヨー振幅(度)1.5°サッケードごとの最大水平ジッター。小さい値(1〜2°)は自然に見え、大きい値はぎくしゃくして見えます。
サッケードピッチ振幅(度)1.0°サッケードごとの最大垂直ジッター。通常、ヨー振幅よりわずかに小さくします。
最小サッケード間隔0.6 秒サッケード間の最小時間。
最大サッケード間隔2.5 秒サッケード間の最大時間。大きい値は落ち着いた印象に、小さい値は落ち着かない印象になります。
ボーン(ボーンモードのみ)
プロパティデフォルト説明
左目ボーンFACIAL_L_Eye左目のボーン名。標準のMetaHumanフェイススケルトンに一致します。
右目ボーンFACIAL_R_Eye右目のボーン名。標準のMetaHumanフェイススケルトンに一致します。
キャリブレーション(カーブモードのみ)

これらの値は、ヘッドスペースの角度がMetaHumanフェイスCRのアイ・ルック曲線値にどのようにマッピングされるかを定義します。デフォルト値は標準のMetaHumanフェイスCR用に調整されており、変更が必要になることはほとんどありません。

プロパティデフォルト説明
ヨー角の単位カーブあたりの度数30°ヨールックカーブでカーブ値1.0に対応する角度。
ピッチ角の単位カーブあたりの度数25°ピッチルックカーブでカーブ値1.0に対応する角度。

リップシンクと他のアニメーションの組み合わせ

両方のヘルパーは、プラグインのリップシンクノードや、すでに持っているカスタムフェイシャルアニメーションと共存できるように設計されています。

  • Eyes Aim は、同じチェーン内のリップシンクやカスタム顔アニメーションのに配置する必要があります。そうしないと、その視線の値が下流で上書きされてしまいます。モードの選択 と上記のセットアップ を参照してください。
  • Auto Blink は、単純なリニア配置ではなく Layered blend per bone ノードを使用します。Control Rig ノードをその Base Pose 入力に配線する方法については、上記の配置の重要性 のヒントを参照してください。
詳細な実行フローチャートを表示(カーブモード vs. ボーンモード)

MetaHumanリグが推奨のCurves Modeを使用するか、フォールバックのBones Modeを使用するかによって、実行ロジックの配置場所が変わります。以下のチャートを展開して、両方のパイプラインの正確な実行順序を確認してください:

自動まばたきとリップシンクは、両モードとも通常のFace AnimBPに引き続き存在します。

ボディアニメーションとのレイヤリングの詳細については、既存のアニメーションとの組み合わせを参照してください。

メモと制限事項

これらのヘルパーは MetaHuman 専用です。標準の MetaHuman フェイス Control Rig カーブ名(CTRL_L_eye_blinkCTRL_R_eye_blinkCTRL_expressions_eyeLook*)と標準の眼球ボーン(FACIAL_L_EyeFACIAL_R_Eye)に依存しています。カスタムの非 MetaHuman キャラクター向けではありません。

ヘルプが必要ですか?

Join our Discord
online · support

カスタム開発のご依頼は、[email protected] までお問い合わせください。