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

目のアニメーションヘルパー

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

  • Auto Blink:MetaHumanに自然でランダムな瞬きを生成するヘルパー
  • Eyes Aim:MetaHumanの目をワールド空間の位置に向かせるアニメーションブループリントノード

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

機能プレビュー

Clignement automatique : clignements d'yeux automatiques
視線追従:プレイヤーカメラを追跡
Eyes Aim: 動くターゲットアクターを追跡
これらのヘルパーを使用するタイミング

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

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つの float 値を返します
  3. これらの値を Blueprint 変数に格納し、Anim Graph の Control Rig ノードに渡します

セットアップ

2つのステップ: Event Graph にまばたき呼び出しを追加し、その値を Anim Graph の Control Rig ノードに渡します。

1. Event Graph: 各フレームのまばたき値を駆動する

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

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

Auto Blink Event Graph セットアップ

2. Anim Graph: 値を Face Control Rig に渡す

同じ Animation Blueprint の Anim Graph で:

  1. 目のまばたきカーブに書き込む可能性のある他のすべての顔のロジック(例:Blend Runtime MetaHuman Lip Sync やカスタムの顔アニメーションレイヤーの後)の後に Control Rig ノードを配置します
  2. ノードの Details パネルで、Control Rig Class を MetaHuman の顔 Control Rig に設定します。パスは通常以下の通りです:
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • プロジェクトによっては、MetaHuman のインポート方法によってパスが異なる場合があります。
  3. Details パネルで、Input セクションを展開し、以下に対して Use Pin を有効にします:
    • CTRL_L_eye_blink
    • CTRL_R_eye_blink
  4. LeftBlinkValue 変数を CTRL_L_eye_blink に接続します
  5. RightBlinkValue 変数を CTRL_R_eye_blink に接続します

Auto Blink Anim Graph セットアップ

配置の重要性

Control Rig ノードは、リップシンクブレンドノード(およびその他の顔アニメーションノード)の後に配置してください。これにより、まばたき値が他のロジックによって上書きされなくなります。

設定

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

設定プロパティ

タイミング

プロパティデフォルト説明
Min Time Between Blinks2.0 秒目が完全に開いている状態での、まばたき間の最小間隔。
Max Time Between Blinks4.0 秒まばたき間の最大間隔。実際の間隔は最小値と最大値の間でランダム化されます。
Min Closed Hold Time0.04 秒目が完全に閉じている状態を維持する最小時間。
Max Closed Hold Time0.08 秒目が完全に閉じている状態を維持する最大時間。

補間

プロパティデフォルト説明
Close Interp Speed35.0目を閉じる際の速度。人間は目を開けるよりも閉じる方が速いため、これは意図的に開く速度よりも高く設定されています。
Open Interp Speed18.0目を開く際の速度。
Closed Threshold0.97まばたきが「完全に閉じた」と見なされ、ホールドフェーズが開始される値。
Open Threshold0.02まばたきが「完全に開いた」と見なされ、次のまばたきがスケジュールされる値。

その他

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

ランタイム制御

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

Eyes Aim

Eyes Aim ヘルパーは Animation Blueprint ノードRuntime MetaHuman Eyes Aim)で、キャラクターの目をワールド空間の位置(例:プレイヤーカメラ、他のアクター、または任意の動くターゲット)に追従させます。ヨー/ピッチのクランプ、スムージング、ターゲットが頭の後ろを通ったときの反転防止、およびリアリズムを高めるためのオプションのマイクロサッカードをサポートします。

モードの選択

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

モード駆動するもの配置場所
Curves(デフォルト)顔の Control Rig の目の視線カーブ(CTRL_expressions_eyeLook*Face Animation Blueprint(例:Face_AnimBP)内の Control Rig ノードの前
BonesFACIAL_L_Eye / FACIAL_R_Eye ボーンを直接、Control Rig をバイパスして駆動Face Post Process Animation Blueprint(例:Face_PostProcess_AnimBP)内の AnimNode_RigLogic ノードの後

Curves モードが推奨されるデフォルトです。値がボーントランスフォームを競合するのではなく、通常の Control Rig 評価を通じて結合されるため、他のカーブベースの顔システム(リップシンク、表情、ARKit ブレンドシェイプなど)とクリーンに構成できます。

Curves モードが機能しない場合は Bones モードを使用してください

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

これが発生した場合は、Bones モードに切り替えてください。Bones モードは目のボーンを直接回転させるため、Control Rig の配線方法に関係なく、すべての MetaHuman バリアントで機能します。以下のセットアップBones タブを参照してください。

セットアップ

デフォルトのセットアップです。ノードは標準の Face Animation Blueprint に配置され、顔の Control Rig の目の視線カーブを駆動します。

2つのステップ: Anim Graph にノードを追加し、Event Graph からターゲット位置を入力します。

1. Anim Graph: ノードを追加する

Face Animation Blueprint の Anim Graph で:

  1. Runtime MetaHuman Eyes Aim ノードを追加します
  2. Details パネルで 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 セットアップ

2. Event Graph: ターゲット位置を入力する

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

  1. Player Camera Manager(Player Index 0)を取得します
  2. Is Valid をチェックします
  3. 有効な場合、Get Camera Location を呼び出します
  4. それを TargetWorldLocation Blueprint 変数に格納します

Eyes Aim、カメラを追跡

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

設定

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

照準 & クランプ

照準

プロパティデフォルト説明
ModeCurves目の駆動方法を選択します。モードの選択を参照してください。
Target World Location(0,0,0)目が見るワールド空間のポイント。デフォルトでピンとして公開されます。
bEnabledtruefalse の場合、目はゆっくりと正面に戻り、ターゲットを無視します。デフォルトでピンとして公開されます。

クランプ

プロパティデフォルト説明
Max Yaw Degrees35°頭の前方方向からの最大水平(ヨー)偏向。0~80 にクランプされます。
Max Pitch Degrees25°頭の前方方向からの最大垂直(ピッチ)偏向。0~80 にクランプされます。
Anti Flip Behindtrueターゲットが頭の後ろを通ったときに目が反転するのを防ぎます。
スムージング & サッカード

スムージング

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

サッカード

マイクロサッカードは、実際の目が常に行っている、小さくランダム化された視線のシフトです。これらを追加することで、完全に滑らかな追跡の「死んだ目」のような外観を回避できます。

プロパティデフォルト説明
Enable Saccadestrueマイクロサッカードのオン/オフを切り替えます。
Saccade Yaw Amplitude Deg1.5°サッカードあたりの最大水平ジッター。小さい値(1~2°)は自然に見えます。大きい値は落ち着きがないように見えます。
Saccade Pitch Amplitude Deg1.0°サッカードあたりの最大垂直ジッター。通常、ヨー振幅よりもわずかに小さくなります。
Min Saccade Interval0.6 秒サッカード間の最小時間。
Max Saccade Interval2.5 秒サッカード間の最大時間。値が大きいほど落ち着いて見え、小さいほど落ち着きがないように見えます。
ボーン(Bones モードのみ)
プロパティデフォルト説明
Left Eye BoneFACIAL_L_Eye左目のボーン名。標準の MetaHuman 顔スケルトンに一致します。
Right Eye BoneFACIAL_R_Eye右目のボーン名。標準の MetaHuman 顔スケルトンに一致します。
キャリブレーション(Curves モードのみ)

これらの値は、頭部空間の角度が MetaHuman 顔 CR の目の視線カーブ値にどのようにマッピングされるかを定義します。デフォルト値は標準の MetaHuman 顔 CR 用に調整されており、変更する必要はほとんどありません。

プロパティデフォルト説明
Yaw Degrees Per Unit Curve30°ヨー視線カーブのカーブ値 1.0 にマッピングされる角度。
Pitch Degrees Per Unit Curve25°ピッチ視線カーブのカーブ値 1.0 にマッピングされる角度。

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

両方のヘルパーは、プラグインのリップシンクノードおよび既存のカスタム顔アニメーションと共存するように設計されています。一般的なルール:Eyes Aim ノードと Control Rig(自動まばたき)ノードは、リップシンクおよびカスタム顔アニメーションの後に配置し、それらの値が下流で上書きされないようにします。

詳細な実行フローチャートを表示(Curves モード vs. Bones モード)

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

Auto Blink とリップシンクは、両モードにおいて通常の 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] までお問い合わせください。