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

プラグインの使用方法

このガイドでは、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プラグインがプロジェクトで有効になっていること
  2. 少なくとも1つのMetaHumanキャラクターがプロジェクトにダウンロードされ利用可能であること
  3. Runtime MetaHuman Lip Syncプラグインがインストールされていること

追加プラグイン:

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

セットアップ手順

ステップ1: 顔アニメーションBlueprintの特定と修正

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

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に切り替えます。オーディオデータを処理してビセームを生成するRuntime Viseme Generatorを作成する必要があります。

  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)。