アイアニメーションヘルパー
リップシンクに加えて、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を呼び出し、そのフレームのデルタタイムを渡します。この関数は:
- キャラクターごとの状態(次のまばたき時間、現在の開閉フェーズなど)を、呼び出し元の
AnimInstanceをキーとして追跡します - 0..1の範囲の2つの浮動小数点値を返します。1つは左目用、もう1つは右目用で、各目が現在どれだけ閉じているかを表します
- その後、これらの値をBlueprint変数に保存し、Anim GraphのControl Rigノードに渡します
セットアップ
2つのステップ: まずイベントグラフにまばたき呼び出しを追加し、次にアニムグラフのコントロールリグノードに値を入力します。
1. イベントグラフ:毎フレームのまばたき値を駆動する
Face Animation Blueprint(例:Face_AnimBP、または複製・コピーしたバージョン。セットアップガイドを参照)で、Event Graphを開き、Event Blueprint Update Animationに以下を追加します:
Update MetaHuman Auto Blinkを呼び出す- Delta Time X(イベントから)を Delta Seconds に接続する
- (オプション)Config 構造体を設定する。デフォルト値はすでに自然に見える
- Left Blink Value と Right Blink Value を Blueprint 変数に昇格させる(例:
LeftBlinkValue、RightBlinkValue)

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

他のフェイシャルアニメーションと組み合わせない場合は、ブリンク値が上書きされないように、チェーン内のリップシンクブレンドノード(およびその他のフェイシャルアニメーションノード)の後にコントロールリグノードを配置してください。リップシンクや他のフェイシャルアニメーションと組み合わせる場合は、既存アニメーションとの組み合わせガイドに従い、このコントロールリグノードを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 | まばたきが「完全に開いた」とみなされ、次のまばたきがスケジュールされる値。 |
雑多
| プロパティ | デフォルト | 説明 |
|---|---|---|
| 独立した目のまばたき | false | trueの場合、左右の目がそれぞれ異なるタイミングで独立してまばたきします。false(デフォルト)の場合、両目は完全に同期してまばたきします。 |
bEnabled(関数ピン) | true | falseの場合、目はゆっくり開いた状態に戻り、まばたきが一時停止します。カットシーン、睡眠、死亡などのシーンに便利です。 |
ランタイムコントロール
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. アニメーショングラフ: ノードを追加する
フェイスアニメーションブループリントのアニムグラフ内で:
Runtime MetaHuman Eyes Aimノードを追加します- 詳細パネルで Mode を Curves のままにします
- アイ・ルック・カーブに書き込む可能性のある他のすべてのフェイシャル・ロジック(リップシンク、カスタムアニメーションなど)の後に配置します。Auto Blink Control Rig ノードと同じ原則です
- 既存のポーズを Source Pose に接続します
- 出力をチェーン内の次のノード(または
Output Pose)に接続します VectorBlueprint 変数(例:TargetWorldLocation)を作成し、ノードの Target World Location ピンに接続します。次のステップで Event Graph からこの変数を更新します。

2. イベントグラフ: ターゲット位置を入力する
Target World Locationピンは、ワールド空間のFVectorを期待します。一般的なケースとしては、MetaHumanにプレイヤーカメラを見させることです。Event Blueprint Update Animationでは:
- プレイヤーカメラマネージャーを取得(プレイヤーインデックス0)
- 有効かどうかを確認
- 有効な場合、カメラの位置を取得を呼び出す
- それを
TargetWorldLocationBlueprint変数に格納する

代わりに任意のアクター(NPC、アイテム、関心ポイント)を追跡するには、各フレームでそのアクターの位置を取得し、同じ変数に格納します。固定の注視点の場合は、Target World Location を一度設定するか、ノードの詳細パネルで定数として設定します。
このセットアップは、Curvesモードのアプローチがお使いのMetaHumanバリアントで機能しない場合に使用してください(上記の警告を参照)。Bonesモードでは、ノードが直接眼球のボーンを回転させるため、Control Rigの評価が完了した後に実行する必要があります。つまり、通常のFace AnimBPではなく、Face Post Process Animation Blueprintに属することになります。
3つのステップ: Post Process Anim BPを見つけ、RigLogicの後にノードを追加し、そのブループリントのEvent Graphからターゲット位置を入力します。
1. フェイス ポストプロセス Anim BP を見つけます。
- MetaHumanのフェイス スケルタルメッシュアセットを開きます(例:MetaHumanのフォルダ内の
Face) - アセットの詳細パネルで、ポストプロセス アニメーションブループリントフィールドを見つけます
- そのアセットを開きます。通常は
Face_PostProcess_AnimBPのような名前です
2. アニムグラフ: RigLogicの後にノードを追加します。
Face Post Process Anim BPのAnim Graph内で:
- 既存の
AnimNode_RigLogicノードを見つけます(これは顔のControl Rigカーブをボーントランスフォームに変換します) Runtime MetaHuman Eyes AimノードをAnimNode_RigLogicの後かつOutput Poseの前に追加します- ノードのDetailsパネルで、Mode を Bones に設定します
AnimNode_RigLogicをEyes Aimノードの Source Pose に接続します- Eyes Aimノードの出力を
Output Poseに接続します - このPost Process Anim BPに
Vector型のBlueprint変数(例:TargetWorldLocation)を作成し、ノードの Target World Location ピンに接続します

デフォルトのボーン参照(FACIAL_L_Eye と FACIAL_R_Eye)は、標準のMetaHumanフェイススケルトンに対応しています。キャラクターが異なる目のボーン名を持つカスタマイズされたスケルトンを使用している場合は、ノードの詳細パネルのBonesカテゴリでそれらを上書きしてください。
3. イベントグラフ:ターゲット位置を入力する
ノードがPost Process Anim BP内に存在するため、ターゲット位置のロジックもこのブループリントのEvent Graph内に置く必要があり、Face_AnimBP内ではありません。セットアップはCurvesモードと同一です(カメラ位置、アクターの位置を取得するか、定数を使用します)。ただ、それをFace_PostProcess_AnimBP内で実行するだけです。

無関係なロジック(リップシンク、自動まばたきなど)は通常のFace AnimBPに残しておけます。ここに移動する必要があるのは、Eyes Aimのターゲット位置計算だけです。 フェイス・コントロールリグは、そのカーブに基づいて毎フレーム眼球のボーンを強制的に駆動します。通常のフェイスAnimBP(コントロールリグの前)でEyes Aimノードが実行された場合、コントロールリグが後からボーンの回転を上書きしてしまいます。Post Process Anim BPはコントロールリグが最終的なボーントランスフォームを生成した後に実行されるため、「勝たせる」必要がある最終的なボーン回転を適用する正しい場所です。ボーンズモードがポストプロセスアニメーションBPを必要とするのはなぜですか?
設定
すべての設定は、Runtime MetaHuman Eyes Aim ノードの詳細パネルに公開されています。
Aim & Clamp
目的
| プロパティ | デフォルト | 説明 |
|---|---|---|
| Mode | カーブ | 目の駆動方法を選択します。モードの選択を参照してください。 |
| ターゲットのワールド位置 | (0,0,0) | 目が注視するワールド空間上の点。デフォルトでピンとして公開されます。 |
bEnabled | true | falseの場合、目は前方に緩やかに戻り、ターゲットを無視します。デフォルトでピンとして公開されます。 |
クランプ
| プロパティ | デフォルト | 説明 |
|---|---|---|
| 最大ヨー角度 | 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_blink、CTRL_R_eye_blink、CTRL_expressions_eyeLook*)と標準の眼球ボーン(FACIAL_L_Eye、FACIAL_R_Eye)に依存しています。カスタムの非 MetaHuman キャラクター向けではありません。
ヘルプが必要ですか?
カスタム開発のご依頼は、[email protected] までお問い合わせください。