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

プラグイン設定

モデル設定​

各再生用のリアルなモデルジェネレーターを再作成する

RealisticおよびMood-Enabled Realisticモデルで安定して動作させるには、長い無音区間をまたいで1つのジェネレーターを使い回すのではなく、新しいオーディオを再生するたびにジェネレーターを再作成してください。詳細はトラブルシューティングのGenerator Recreationを参照してください。

標準モデル構成​

Create Runtime Viseme Generator ノードは、ほとんどのシナリオで問題なく機能するデフォルト設定を使用します。設定は Animation Blueprint のブレンドノードプロパティを通じて行います。

Animation Blueprint の設定オプションについては、以下のリップシンク設定セクションを参照してください。

リアルなモデル設定​

Create Realistic MetaHuman Lip Sync Generator ノードは、ジェネレーターの動作をカスタマイズできるオプションの Configuration パラメータを受け取ります:

モデルタイプ​

モデルタイプ設定は、使用するリアルなモデルのバージョンを決定します:

モデルタイプパフォーマンス画質ノイズ処理推奨される使用例
高度に最適化(デフォルト)最高のパフォーマンス、最低のCPU使用率良好な品質背景ノイズや非音声音に対して顕著な口の動きが見られる場合がありますクリーンな音声環境、パフォーマンスが重要なシナリオ
準最適化良好なパフォーマンス、中程度のCPU使用率高品質ノイズの多い音声に対してより安定パフォーマンスと品質のバランス、混合音声条件
オリジナル最新のCPUでのリアルタイム使用に適しています最高品質背景ノイズや非音声音に対して最も安定高品質な制作、ノイズの多い音声環境、最大限の精度が必要な場合

パフォーマンス設定​

Intra Op Threads: 内部モデル処理操作に使用されるスレッド数を制御します。

  • 0(デフォルト/自動): 自動検出を使用します(通常、利用可能なCPUコアの1/4、最大4)
  • 1-16: スレッド数を手動で指定します。値を大きくするとマルチコアシステムでのパフォーマンスが向上する場合がありますが、CPU使用率が高くなります

Inter Op Threads: 異なるモデル操作を並列実行するために使用されるスレッド数を制御します。

  • 0(デフォルト/自動): 自動検出を使用します(通常、利用可能なCPUコアの1/8、最大2)
  • 1-8: スレッド数を手動で指定します。通常、リアルタイム処理では低く抑えられます

処理チャンクサイズ​

処理チャンクサイズは、各推論ステップで処理されるサンプル数を決定します。デフォルト値は160サンプル(16kHzで10msの音声)です:

  • 値が小さいほど更新頻度が高くなりますが、CPU使用率が増加します
  • 値が大きいほどCPU負荷は軽減されますが、リップシンクの応答性が低下する可能性があります
  • 最適なアラインメントのために160の倍数を使用することを推奨します

Setting Processing Chunk Size

ムード対応モデル設定​

Create Realistic MetaHuman Lip Sync With Mood Generator ノードは、基本的なリアルモデルを超えた追加の設定オプションを提供します:

基本設定​

Lookahead Ms: リップシンクの精度を向上させるための先読みタイミング(ミリ秒単位)。

  • デフォルト: 80ms
  • 範囲: 20ms~200ms(20で割り切れる必要があります)
  • 値を大きくすると同期精度が向上しますが、レイテンシーが増加します

出力タイプ: 生成される顔のコントロールを指定します。

  • 顔全体:81個すべての顔面コントロール(眉、目、鼻、口、顎、舌)
  • 口のみ:口、顎、舌に関連するコントロールのみ

パフォーマンス設定: 通常のリアルなモデルと同じIntra Op ThreadsおよびInter Op Threads設定を使用します。

ムード設定​

利用可能なムード:

  • ニュートラル、幸せ、悲しみ、嫌悪、怒り、驚き、恐れ
  • 自信、興奮、退屈、遊び心、困惑

ムード強度: ムードがアニメーションにどの程度強く影響するかを制御します(0.0~1.0)

ランタイム気分コントロール​

実行時に以下の関数を使用してムード設定を調整できます。

  • 気分を設定: 現在の気分タイプを変更します
  • 気分の強度を設定: 気分がアニメーションに与える影響の強さを調整します(0.0~1.0)
  • 先読み時間(ミリ秒)を設定: 同期のための先読みタイミングを変更します
  • 出力タイプを設定: 顔全体と口のみのコントロールを切り替えます

Mood Configuration

気分選択ガイド​

コンテンツに基づいて適切なムードを選択してください:

Mood最適な用途一般的な強度範囲
ニュートラル一般的な会話、ナレーション、デフォルト状態0.5 - 1.0
喜びポジティブな内容、明るい会話、お祝い0.6 - 1.0
悲しみメランコリックな内容、感情的なシーン、陰鬱な瞬間0.5 - 0.9
嫌悪ネガティブな反応、不快な内容、拒絶0.4 - 0.8
怒り攻撃的な会話、対立的なシーン、苛立ち0.6 - 1.0
驚き予期せぬ出来事、暴露、衝撃的な反応0.7 - 1.0
恐怖脅威的な状況、不安、緊張した会話0.5 - 0.9
自信プロフェッショナルなプレゼンテーション、リーダーシップのある会話、断定的な話し方0.7 - 1.0
興奮エネルギッシュな内容、発表、熱意のある会話0.8 - 1.0
退屈単調な内容、関心のない会話、疲れた話し方0.3 - 0.7
遊び心カジュアルな会話、ユーモア、軽快なやり取り0.6 - 0.9
困惑質問の多い会話、不確かさ、当惑0.4 - 0.8

Animation Blueprintの設定​

リップシンク設定​

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

プロパティデフォルト説明
補間速度25口の動きがviseme間で遷移する速さを制御します。値を大きくすると、遷移がより速く、より急激になります。
リセット時間0.2リップシンクがリセットされるまでの時間(秒)。これは、音声が停止した後もリップシンクが継続するのを防ぐのに役立ちます。

笑いアニメーション​

音声で検出された笑い声に動的に反応する笑いアニメーションを追加することもできます:

  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 Pose の Result ピンに接続します
  4. リップシンクなしで笑いのみを使用する場合:
    • ソースポーズをBlend Runtime MetaHuman LaughterノードのSource Poseに直接接続します
    • 出力をResultピンに接続します

Blend Runtime MetaHuman Laughter

音声内で笑いが検出されると、キャラクターはそれに応じて動的にアニメーションします:

笑いの設定​

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

プロパティデフォルト説明
補間速度25笑いのアニメーション間で唇の動きがどれだけ速く遷移するかを制御します。値が大きいほど、遷移がより速く、より唐突になります。
リセット時間0.2笑いがリセットされるまでの時間(秒)。これは、音声が停止した後も笑いが続くのを防ぐのに役立ちます。
最大笑いウェイト0.7笑いのアニメーションの最大強度をスケーリングします(0.0 - 1.0)。

注意: 笑い声検出は現在、Standard Modelでのみ利用可能です。

既存のアニメーションとの組み合わせ​

動画ウォークスルー

読みながらよりも動画で見たい方は、この設定手順をそのまま解説した動画チュートリアルをご覧ください。

既存のボディアニメーションとカスタム顔アニメーションを上書きせずに、リップシンクと笑いをそれらと併用して適用するには:

ボディアニメーション

このセットアップは顔のAnimation Blueprintに適用されます。リップシンクはボディのAnimation Blueprintには含まれないためです。カスタムのボディアニメーション(例:胴体、腕、その他の身体の動き)については、アニメーションシーケンスを(Sequence Playerを介して)ボディのAnimation Blueprintの出力ポーズに直接接続するだけです。そこでは追加のセットアップは必要ありません。

  1. Layered blend per boneノードをボディアニメーションと最終出力の間に追加します。
  2. レイヤー設定を構成します:
    • Layer Setup 配列に 1 項目 を追加します
    • レイヤーの Branch Filters に 3 項目 を追加します。Bone Name は以下のとおりです:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. カスタム顔アニメーションの重要事項: Curve Blend Option で 「Use Max Value」 を選択してください。これにより、カスタム顔アニメーション(表情、感情など)をリップシンクの上に適切にレイヤー化できます。
  4. 接続を行います:
    • カスタムアニメーション(通常は目的のアニメーションシーケンスアセットを設定したSequence Player)→ Base Pose入力
    • 顔のアニメーション出力(リップシンクや笑いのノードから)→ Blend Poses 0入力
    • レイヤードブレンドノード → 最終的なResultポーズ

Layered Blend Per Bone

モーフターゲットセットの選択​

スタンダードモデルは、カスタムポーズアセットのセットアップを通じて、あらゆるモーフターゲットの命名規則に本質的に対応するポーズアセットを使用します。追加の設定は不要です。

リップシンクの挙動の微調整​

特定のリップシンクカーブのスケーリング​

Modify Curve ノードを使用すると、リップシンクによって生成される個々の顔の動きを減衰(または増幅)できます。これは、特定のカーブがオーディオコンテンツやキャラクターに対して強すぎる場合に便利です。

セットアップ:

  1. リップシンクのブレンドノードの後に、Modify Curve ノードを追加します
  2. ノードを右クリックして Add Curve Pin を選択し、スケーリングしたいカーブ名を入力します
  3. ノードの Apply Mode プロパティを Scale に設定します
  4. Value パラメータを設定します。1.0 未満の値は動きを減衰させ、1.0 を超える値は動きを増幅します(例: 0.8 = 20% の減少)

一般的にスケーリングされるカーブ:

カーブ名目的適用対象一般的な調整
CTRL_expressions_tongueOut特定の音素における舌の前方突出標準モデル突出を抑えるには0.8
CTRL_expressions_jawOpen顎の開き範囲リアルモデル顎の動きを抑えるには0.9

同じModify Curveノードに複数のカーブピンを追加すると、複数のカーブを一度にスケーリングできます。

ムード別ファインチューニング​

ムード対応モデルでは、特定の感情表現を微調整できます:

眉コントロール:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - 眉の内側を持ち上げる
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - 眉の外側を持ち上げる
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - 眉を下げる

目の表情コントロール:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - 目の細め
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - 頬の上げ

モデルの比較と選択​

モデルの選択​

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

考慮事項標準モデルリアルモデルムード対応リアルモデル
キャラクター互換性MetaHumanおよびすべてのカスタムキャラクタータイプMetaHuman(およびARKit)キャラクターMetaHuman(およびARKit)キャラクター
視覚品質効率的なパフォーマンスを備えた良好なリップシンクより自然な口の動きによるリアリズムの向上感情表現によるリアリズムの向上
パフォーマンスモバイル/VRを含むすべてのプラットフォームに最適化より高いリソース要件より高いリソース要件
機能14のビゼーム、笑い検出81の顔面コントロール、3つの最適化レベル81の顔面コントロール、12のムード、設定可能な出力
プラットフォームサポートWindows、Android、QuestWindows、Mac、iOS、Linux、Android、QuestWindows、Mac、iOS、Linux、Android、Quest
ユースケース一般的なアプリケーション、ゲーム、VR/AR、モバイルシネマティックな体験、クローズアップインタラクション感情的なストーリーテリング、高度なキャラクターインタラクション

エンジンバージョンの互換性​

UE 5.2 互換性の問題

Unreal Engine 5.2を使用している場合、UEのリサンプリングライブラリのバグにより、Realistic Modelsが正しく動作しない可能性があります。信頼性の高いリップシンク機能が必要なUE 5.2ユーザーの方は、代わりにStandard Modelをご使用ください。

この問題はUE 5.2に固有のものであり、他のエンジンバージョンには影響しません。

パフォーマンスに関する推奨事項​

  • ほとんどのプロジェクトでは、Standard Model が品質とパフォーマンスの優れたバランスを提供します
  • MetaHuman キャラクターに最高の視覚的忠実度が必要な場合は、Realistic Model を使用してください
  • アプリケーションで感情表現の制御が重要な場合は、Mood-Enabled Realistic Model を使用してください
  • モデルを選択する際は、ターゲットプラットフォームのパフォーマンス能力を考慮してください
  • さまざまな最適化レベルをテストして、特定のユースケースに最適なバランスを見つけてください

トラブルシューティング​

よくある問題​

リアルモデル用のジェネレーター再作成: リアルモデルで信頼性が高く一貫した動作を実現するには、一定期間の非アクティブ状態の後に新しい音声データを入力するたびに、ジェネレーターを再作成することをお勧めします。これは、無音期間の後にジェネレーターを再利用するとリップシンクが機能しなくなる可能性がある ONNX ランタイムの動作によるものです。

例えば、再生開始のたびにリップシンクジェネレーターを再作成することができます。たとえば、Play Sound 2D を呼び出したり、他の方法でサウンドウェーブの再生とリップシンクを開始するたびに、次のようにします:

Recreate Lip Sync Generator On Play Sound

Runtime Text To Speech統合のためのプラグイン配置場所: Runtime MetaHuman Lip SyncをRuntime Text To Speechと一緒に使用する場合(両方のプラグインはONNX Runtimeを使用します)、プラグインがエンジンのMarketplaceフォルダにインストールされていると問題が発生する可能性があります。修正するには:

  1. UEのインストールフォルダ内の \Engine\Plugins\Marketplace にある両方のプラグインを探します(例: C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace)
  2. RuntimeMetaHumanLipSync フォルダと RuntimeTextToSpeech フォルダの両方を、プロジェクトの Plugins フォルダに移動します
  3. プロジェクトに Plugins フォルダがない場合は、.uproject ファイルと同じディレクトリに作成します
  4. Unreal Editorを再起動します

これは、エンジンのMarketplaceディレクトリから複数のONNX Runtimeベースのプラグインが読み込まれた際に発生する可能性のある互換性の問題に対処します。

パッケージング構成 (Windows): Windows 上のパッケージ済みプロジェクトでリップシンクが正しく動作しない場合は、Development ではなく Shipping ビルド構成を使用していることを確認してください。Development 構成は、パッケージ済みビルドにおいてリアルなモデルの ONNX ランタイムで問題を引き起こす可能性があります。

これを修正するには:

  1. プロジェクト設定 → パッケージングで、ビルド構成を Shipping に設定します
  2. プロジェクトを再パッケージ化します

Shipping Configuration

Blueprintのみのプロジェクト

一部のBlueprintのみのプロジェクトでは、Shippingを選択していてもUnreal EngineがDevelopment構成でビルドされることがあります。この問題が発生した場合は、少なくとも1つのC++クラス(空でも可)を追加してプロジェクトをC++プロジェクトに変換してください。これを行うには、UEエディタのメニューでTools → New C++ Classに移動し、空のクラスを作成します。これにより、プロジェクトがShipping構成で正しくビルドされるようになります。プロジェクトの機能はBlueprintのみのままで構いません。C++クラスは適切なビルド構成のために必要なだけです。

リップシンクの応答性低下: Streaming Sound Wave または Capturable Sound Wave を使用しているときに、時間の経過とともにリップシンクの応答性が低下する場合は、メモリの蓄積が原因である可能性があります。デフォルトでは、新しいオーディオが追加されるたびにメモリが再割り当てされます。この問題を防ぐには、ReleaseMemory 関数を定期的に呼び出して蓄積されたメモリを解放してください。たとえば、30秒ごと程度が目安です。

パフォーマンス最適化:

  • パフォーマンス要件に基づいて、Realisticモデルの処理チャンクサイズを調整する
  • 対象ハードウェアに適したスレッド数を使用する
  • 完全な顔のアニメーションが不要な場合は、ムード対応モデルにMouth Only出力タイプの使用を検討する