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

プラグインの使用方法

このガイドでは、MetaHumanキャラクター向けにRuntime MetaHuman Lip Syncをセットアップする手順を説明します。

注記: Runtime MetaHuman Lip SyncはMetaHumanカスタムキャラクターの両方で動作します。本プラグインは以下のような様々なキャラクタータイプをサポートしています:

  • 人気商用キャラクター (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMeなど)
  • FACSベースのブレンドシェープを持つキャラクター
  • ARKitブレンドシェープ標準を使用するモデル
  • Preston Blairフォネームセットを持つキャラクター
  • 3ds Maxフォネームシステム
  • 顔の表情用にカスタムモーフターゲットを持つ任意のキャラクター

上記すべての標準に対するビセームマッピングリファレンスを含む、カスタムキャラクターのセットアップ詳細についてはカスタムキャラクター設定ガイドを参照してください。

前提条件

開始前に以下を確認してください:

  1. MetaHumanプラグインがプロジェクトで有効になっていること(注: UE 5.6以降ではこの手順は不要。MetaHuman機能がエンジンに直接統合されています)
  2. 少なくとも1つのMetaHumanキャラクターがダウンロード済みでプロジェクト内で利用可能であること
  3. Runtime MetaHuman Lip Syncプラグインがインストールされていること

追加プラグイン:

  • オーディオキャプチャ(例: マイク入力)を使用する場合は、Runtime Audio Importerプラグインをインストールしてください。
  • テキスト読み上げ機能を使用する場合は、Runtime Text To Speechプラグインをインストールしてください。

プラットフォーム固有の設定

Android / Meta Quest設定

AndroidまたはMeta Questプラットフォームをターゲットにしており、このプラグインでビルドエラーが発生する場合、プロジェクト設定でx86_64 (x64) Androidアーキテクチャを無効にする必要があります:

  1. 編集 > プロジェクト設定に移動
  2. プラットフォーム > Androidに移動
  3. プラットフォーム - Androidビルドセクションで、**Support x86_64 [aka x64]**を見つけて無効にします(下図参照)

x64 Androidアーキテクチャを無効化

これは、本プラグインが現在Android/Meta Questプラットフォーム向けにarm64-v8aとarmeabi-v7aアーキテクチャのみをサポートしているためです。

セットアップ手順

ステップ1: フェイスアニメーションブループリントの特定と修正

MetaHumanキャラクターのフェイスアニメーションに使用するアニメーションブループリントを修正する必要があります。デフォルトのMetaHumanフェイスアニメーションブループリントは以下にあります:

Content/MetaHumans/Common/Face/Face_AnimBP

Face Animation Blueprint

リップシンク機能を実装するにはいくつかの選択肢があります:

デフォルトの Face_AnimBP を直接開いて変更を加えます。この変更は、このAnimation Blueprintを使用するすべてのMetaHumanキャラクターに影響します。

注: この方法は便利ですが、デフォルトのAnimation Blueprintを使用するすべてのキャラクターに影響を与えます。

重要: Runtime MetaHuman Lip Syncのブレンディングは、デフォルトMetaHumanのFace_Archetype_Skeletonに存在する顔面ボーンを含むポーズにアクセスできる任意のAnimation Blueprintアセットに実装可能です。上記のオプションに限定されません - これらは一般的な実装アプローチです。

ステップ2: イベントグラフの設定

Face Animation Blueprintを開き、Event Graphに切り替えます。オーディオデータを処理し、リップシンクアニメーションを生成するジェネレータを作成する必要があります。

  1. まだ存在しない場合はEvent Blueprint Begin Playノードを追加
  2. Create Runtime Viseme Generatorノードを追加し、Begin Playイベントに接続
  3. 出力を変数(例: "VisemeGenerator")として保存し、グラフの他の部分で使用

Creating Runtime Viseme Generator

ステップ3: オーディオ入力処理の設定

オーディオソースに応じて、オーディオ入力を処理する方法を設定する必要があります。

このアプローチでは、マイクに話しながらリアルタイムでリップシンクを実行します:

  1. Runtime Audio Importerを使用してCapturable Sound Waveを作成
  2. オーディオキャプチャを開始する前に、OnPopulateAudioDataデリゲートにバインド
  3. バインドされた関数で、Runtime Viseme GeneratorからProcessAudioDataを呼び出し
  4. マイクからオーディオキャプチャを開始

コピー可能なノード.

Lip Sync During Audio Capture

ステップ4: アニメーショングラフの設定

イベントグラフの設定後、Anim Graphに切り替えてジェネレータをキャラクターのアニメーションに接続します:

リップシンク

  1. MetaHumanの顔を含むポーズを特定(通常はUse cached pose 'Body Pose'から)
  2. Blend Runtime MetaHuman Lip Syncノードを追加
  3. ポーズをBlend Runtime MetaHuman Lip SyncノードのSource Poseに接続
  4. RuntimeVisemeGenerator変数をViseme Generatorピンに接続
  5. Blend Runtime MetaHuman Lip Syncノードの出力をOutput PoseResultピンに接続

Blend Runtime MetaHuman Lip Sync

オーディオでリップシンクが検出されると、キャラクターは動的にアニメーションします:

Lip Sync

笑いアニメーション

オーディオで検出された笑いに動的に反応する笑いアニメーションを追加することも可能です:

  1. Blend Runtime MetaHuman Laughterノードを追加
  2. RuntimeVisemeGenerator変数をViseme Generatorピンに接続
  3. 既にリップシンクを使用している場合:
    • Blend Runtime MetaHuman Lip Syncノードからの出力をBlend Runtime MetaHuman LaughterノードのSource Poseに接続
    • Blend Runtime MetaHuman Laughterノードの出力をOutput PoseResultピンに接続
  4. リップシンクなしで笑いのみを使用する場合:
    • ソースポーズを直接Blend Runtime MetaHuman LaughterノードのSource Poseに接続
    • 出力をResultピンに接続

Blend Runtime MetaHuman Laughter

オーディオで笑いが検出されると、キャラクターは動的にアニメーションします:

Laughter

ボディアニメーションとの組み合わせ

既存のボディアニメーションを上書きせずにリップシンクと笑いを適用するには:

  1. ボディアニメーションと最終出力の間にLayered blend per boneノードを追加。Use Attached Parentがtrueであることを確認。
  2. レイヤー設定を構成:
    • Layer Setup配列に1アイテムを追加
    • レイヤーのBranch Filtersに以下のBone Name3アイテムを追加:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. 接続を作成:
    • 既存のアニメーション(BodyPoseなど)→ Base Pose入力
    • 顔面アニメーション出力(リップシンクや笑いノードから)→ Blend Poses 0入力
    • Layered blendノード → 最終Resultポーズ

Layered Blend Per Bone

なぜこれが機能するのか: ブランチフィルタは顔面アニメーションボーンを分離し、リップシンクと笑いが元のボディアニメーションを保持しながら顔面の動きのみとブレンドできるようにします。これはMetaHumanの顔面リグ構造に一致し、自然な統合を保証します。

注意: リップシンクと笑いの機能は、既存のアニメーション設定と非破壊的に連携するように設計されています。これらは口の動きに必要な特定の顔面ボーンのみに影響を与え、他の顔面アニメーションはそのまま残ります。つまり、アニメーションチェーンの任意の時点で安全に統合できます - 他の顔面アニメーションの前(それらのアニメーションがリップシンク/笑いを上書きできるように)または後(リップシンク/笑いが既存のアニメーションの上にブレンドされるように)。この柔軟性により、リップシンクと笑いを、まばたき、眉の動き、感情表現、その他の顔面アニメーションと競合なく組み合わせることができます。

設定

リップシンク設定

Blend Runtime MetaHuman Lip Syncノードには、プロパティパネルに設定オプションがあります:

プロパティデフォルト説明
Interpolation Speed25リップの動きがビジーム間を遷移する速さを制御。値が高いほど、より速く突然の遷移になります。
Reset Time0.2リップシンクがリセットされるまでの秒数。オーディオが停止した後にリップシンクが続くのを防ぐのに有用です。

笑い設定

Blend Runtime MetaHuman Laughterノードには独自の設定オプションがあります:

プロパティデフォルト説明
Interpolation Speed25リップの動きが笑いアニメーション間を遷移する速さを制御。値が高いほど、より速く突然の遷移になります。
Reset Time0.2笑いがリセットされるまでの秒数。オーディオが停止した後に笑いが続くのを防ぐのに有用です。
Max Laughter Weight0.7笑いアニメーションの最大強度をスケーリング(0.0 - 1.0)。

リップシンクモデルの選択

プロジェクトに使用するリップシンクモデルを決定する際は、以下の要素を考慮してください:

考慮事項Standard ModelRealistic Model
キャラクター互換性MetaHumansと全てのカスタムキャラクタータイプMetaHumansのみ
視覚的品質良好なリップシンクと効率的なパフォーマンスより自然な口の動きでリアリズム向上
パフォーマンスモバイル/VRを含む全てのプラットフォーム向けに最適化やや高いリソース要件
使用ケース一般的なアプリケーション、ゲーム、VR/AR、モバイルシネマティック体験、クローズアップキャラクターインタラクション

ほとんどのプロジェクトでは、Standard Modelが幅広いキャラクタータイプをサポートしながら、品質とパフォーマンスの優れたバランスを提供します。Realistic Modelは、パフォーマンスオーバーヘッドが重要でない状況で、MetaHumanキャラクター