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

プラグイン設定

モデル設定

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

Realistic および Mood-Enabled Realistic モデルで確実に動作させるには、長い無音をまたいでジェネレータを再利用せず、新しいオーディオ再生の前にジェネレータを再作成してください。詳細については、トラブルシューティングの ジェネレータの再作成 を参照してください。

標準モデル構成

Create Runtime Viseme Generator ノードは、ほとんどのシナリオでうまく機能するデフォルト設定を使用します。構成は、Animation Blueprint のブレンドノードのプロパティを介して処理されます。

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

リアルなモデル設定

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

モデルタイプ

モデルの種類設定は、どのバージョンのリアルなモデルを使用するかを決定します:

モデルタイプパフォーマンス視覚品質ノイズ耐性推奨ユースケース
高度に最適化(デフォルト)最高のパフォーマンス、最低のCPU使用率良好な品質背景ノイズや非音声サウンドがあると、目立つ口の動きが見られる場合がありますクリーンなオーディオ環境、パフォーマンスが重要なシナリオ
準最適化良好なパフォーマンス、中程度のCPU使用率高品質ノイズのあるオーディオでの安定性が向上パフォーマンスと品質のバランス、混合オーディオ環境
オリジナル最新のCPUでのリアルタイム使用に適しています最高品質背景ノイズや非音声サウンドに対して最も安定高品質な制作物、ノイズの多いオーディオ環境、最大の精度が必要な場合

パフォーマンス設定

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

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

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

  • 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 ノードは、基本的なリアリスティックモデルに加えて、追加の設定オプションを提供します:

基本設定

先読み時間(ミリ秒): リップシンク精度向上のためのミリ秒単位の先読みタイミング。

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

出力タイプ: 生成されるフェイシャルコントロールを制御します。

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

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

ムード設定

利用可能なムード:

  • 中立, 喜び, 悲しみ, 嫌悪, 怒り, 驚き, 恐怖
  • 自信, 興奮, 退屈, 遊び心, 混乱

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

ランタイム ムード コントロール

以下の関数を使用して、ランタイム中にムード設定を調整できます。

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

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リップの動きがビジーム間で遷移する速さを制御します。値が高いほど、より速く、より急激な遷移になります。
リセット時間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 PoseResult ピンに接続します。
  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)。

注記: 笑い声検出は現在、標準モデルでのみ利用可能です。

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

ビデオウォークスルー

読むより見る方が好きですか?この正確なセットアップを扱ったビデオチュートリアルをチェックしてください。

既存のボディアニメーションやカスタムフェイシャルアニメーションを上書きせずに、リップシンクと笑いを適用するには:

ボディアニメーション

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

  1. ボディアニメーションと最終出力の間に Layered blend per bone ノードを追加します。Use Attached Parent が true であることを確認してください。
  2. レイヤー設定を構成します。
    • Layer Setup 配列に 1つの項目 を追加
    • レイヤーの Branch Filters に、次の Bone Name を持つ 3つの項目 を追加:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. カスタムフェイシャルアニメーションに重要: カーブブレンドオプション"最大値を使用" を選択してください。これにより、カスタムフェイシャルアニメーション(表情、感情など)をリップシンクの上に適切に重ねることができます。
  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 - 頬を上げる

モデルの比較と選択

モデルの選択

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

検討事項標準モデルリアリスティックモデルムード対応リアリスティックモデル
キャラクター互換性MetaHumans およびすべてのカスタムキャラクタータイプMetaHumans(およびARKit)キャラクターMetaHumans(および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のリサンプリングライブラリのバグにより、リアリスティックモデルが正しく動作しない可能性があります。信頼性の高いリップシンク機能を必要とするUE 5.2ユーザーは、代わりに標準モデルを使用してください。

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

パフォーマンス推奨事項

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

トラブルシューティング

よくある問題

Realistic Models 用ジェネレーターの再作成:

Realistic Models で確実かつ一貫した動作を行うには、一定期間非アクティブな状態が続いた後に新しいオーディオデータを入力する際は、毎回ジェネレーターを再作成することをお勧めします。これは ONNX runtime の動作に起因するもので、無音状態が続いた後にジェネレーターを再利用すると、リップシンクが機能しなくなる可能性があります。

たとえば、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. RuntimeMetaHumanLipSyncRuntimeTextToSpeech の両フォルダを、プロジェクトの 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 構成でビルドされることがあります。この場合は、C++ クラスを少なくとも 1 つ追加して(空のクラスでも構いません)、プロジェクトを C++ プロジェクトに変換してください。これを行うには、UE エディタのメニューで ツール → 新しい C++ クラス に移動し、空のクラスを作成します。これにより、プロジェクトは Shipping 構成で正しくビルドされるようになります。プロジェクトの機能は Blueprint のみのままで問題ありません。C++ クラスはビルド構成を適切にするために必要なだけです。

リップシンクの応答性の低下: ストリーミングサウンドウェーブまたはキャプチャラブルサウンドウェーブを使用する際に、リップシンクの応答性が時間の経過とともに低下する場合、これはメモリの蓄積が原因である可能性があります。既定では、新しいオーディオが追加されるたびにメモリが再割り当てされます。この問題を防ぐには、ReleaseMemory 関数を定期的に呼び出して、蓄積されたメモリを解放してください。たとえば、約30秒ごとに呼び出します。

パフォーマンス最適化:

  • パフォーマンス要件に応じて、リアリスティックモデルの処理チャンクサイズを調整してください。
  • 対象ハードウェアに適したスレッド数を使用してください。
  • フルフェイシャルアニメーションが不要な場合は、ムード対応モデルでは口のみ出力タイプの使用を検討してください。