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

プラグイン設定

モデル設定

再生ごとにリアリスティックモデルジェネレーターを再作成する

RealisticモデルおよびMood-Enabled Realisticモデルで信頼性の高い動作を実現するには、長時間の無音状態でジェネレーターを再利用するのではなく、新しいオーディオ再生の前にジェネレーターを再作成してください。詳細はトラブルシューティングのジェネレーターの再作成を参照してください。

標準モデル設定

Create Runtime Viseme Generator ノードは、ほとんどのシナリオで適切に動作するデフォルト設定を使用します。設定はアニメーションブループリントのブレンドノードプロパティを通じて処理されます。

アニメーションブループリントの設定オプションについては、以下のリップシンク設定セクションを参照してください。

Realisticモデル設定

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

モデルタイプ

Model Type 設定は、使用するリアリスティックモデルのバージョンを決定します。

モデルタイプパフォーマンス視覚品質ノイズ処理推奨ユースケース
Highly Optimized (デフォルト)最高パフォーマンス、最低CPU使用率良好な品質背景ノイズや非音声に対して目立つ口の動きが見られる場合ありクリーンなオーディオ環境、パフォーマンス重視のシナリオ
Semi-Optimized良好なパフォーマンス、中程度のCPU使用率高品質ノイズのあるオーディオに対してより安定パフォーマンスと品質のバランス、混合オーディオ環境
Original最新CPUでのリアルタイム使用に適切最高品質背景ノイズや非音声に対して最も安定高品質プロダクション、ノイズの多いオーディオ環境、最大精度が必要な場合

パフォーマンス設定

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

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

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

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

処理チャンクサイズ

Processing Chunk Size は、各推論ステップで処理されるサンプル数を決定します。デフォルト値は 160サンプル(16kHzで10msのオーディオ)です。

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

Processing Chunk Sizeの設定

Mood-Enabledモデル設定

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

基本設定

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

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

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

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

Performance Settings: 通常のRealisticモデルと同じIntra Op ThreadsおよびInter Op Threads設定を使用します。

ムード設定

利用可能なムード:

  • Neutral, Happy, Sad, Disgust, Anger, Surprise, Fear
  • Confident, Excited, Bored, Playful, Confused

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

ランタイムムード制御

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

  • Set Mood: 現在のムードタイプを変更します
  • Set Mood Intensity: ムードがアニメーションに影響を与える強さを調整します(0.0~1.0)
  • Set Lookahead Ms: 同期のための先読みタイミングを変更します
  • Set Output Type: Full FaceとMouth Onlyのコントロールを切り替えます

ムード設定

ムード選択ガイド

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

ムード最適な用途標準的な強度範囲
Neutral一般的な会話、ナレーション、デフォルト状態0.5 - 1.0
Happyポジティブなコンテンツ、明るい会話、祝賀0.6 - 1.0
Sad憂鬱なコンテンツ、感情的なシーン、物悲しい瞬間0.5 - 0.9
Disgust否定的な反応、不快なコンテンツ、拒絶0.4 - 0.8
Anger攻撃的な会話、対立シーン、フラストレーション0.6 - 1.0
Surprise予期せぬ出来事、暴露、衝撃的な反応0.7 - 1.0
Fear脅威的な状況、不安、緊張した会話0.5 - 0.9
Confidentプロフェッショナルなプレゼンテーション、リーダーシップのある会話、断定的な発言0.7 - 1.0
Excitedエネルギッシュなコンテンツ、発表、熱狂的な会話0.8 - 1.0
Bored単調なコンテンツ、無関心な会話、疲れた発言0.3 - 0.7
Playfulカジュアルな会話、ユーモア、軽快なやり取り0.6 - 0.9
Confused疑問の多い会話、不確かさ、当惑0.4 - 0.8

アニメーションブループリント設定

リップシンク設定

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

プロパティデフォルト説明
Interpolation Speed25口の動きがビジーム間で遷移する速度を制御します。値が大きいほど、より速く急な遷移になります。
Reset Time0.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 ノードには、独自の設定オプションがあります:

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

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

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

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

  1. ボディアニメーションと最終出力の間に Layered blend per bone ノードを追加します。Use Attached Parent が true であることを確認してください。
  2. レイヤー設定を構成します:
    • Layer Setup 配列に 1 アイテム を追加します
    • レイヤーの Branch Filters3 アイテム を追加し、以下の Bone Name を設定します:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. カスタムフェイシャルアニメーションの場合の重要事項: Curve Blend Option"Use Max Value" を選択します。これにより、カスタムフェイシャルアニメーション(表情、感情など)をリップシンクの上に適切にレイヤーできます。
  4. 接続を行います:
    • 既存のアニメーション(BodyPose など)→ Base Pose 入力
    • フェイシャルアニメーション出力(リップシンクや笑いノードから)→ Blend Poses 0 入力
    • Layered blend ノード → 最終 Result ポーズ

Layered Blend Per Bone

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

Standard Model はポーズアセットを使用します。これは、カスタムポーズアセットのセットアップを通じて、本質的に任意のモーフターゲット命名規則をサポートします。追加の設定は必要ありません。

リップシンク動作の微調整

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

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特定の音素における前方への舌の突出Standard model0.8 で突出を軽減
CTRL_expressions_jawOpen顎の開き範囲Realistic models0.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 - 頬上げ

モデルの比較と選択

モデル間の選択

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

考慮事項Standard ModelRealistic ModelMood-Enabled Realistic Model
キャラクター互換性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 を使用してください
  • モデルを選択する際は、ターゲットプラットフォームのパフォーマンス能力を考慮してください
  • 特定のユースケースに最適なバランスを見つけるために、さまざまな最適化レベルをテストしてください

トラブルシューティング

一般的な問題

Realistic Models のジェネレーター再作成: Realistic Models で信頼性が高く一貫した動作を得るには、非アクティブ期間の後に新しいオーディオデータを供給するたびにジェネレーターを再作成することをお勧めします。これは、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. RuntimeMetaHumanLipSyncRuntimeTextToSpeech の両方のフォルダをプロジェクトの Plugins フォルダに移動します
  3. プロジェクトに Plugins フォルダがない場合は、.uproject ファイルと同じディレクトリに作成します
  4. Unreal Editor を再起動します

これにより、複数の ONNX Runtime ベースのプラグインがエンジンの Marketplace ディレクトリからロードされたときに発生する可能性のある互換性の問題に対処します。

パッケージング設定(Windows): Windows 上のパッケージ化されたプロジェクトでリップシンクが正しく動作しない場合は、Development の代わりに Shipping ビルド設定を使用していることを確認してください。Development 設定は、パッケージ化されたビルドで Realistic モデルの 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 モデルの Processing Chunk Size を調整します
  • ターゲットハードウェアに適したスレッド数を使用します
  • 完全なフェイシャルアニメーションが必要ない場合は、ムード対応モデルに Mouth Only 出力タイプの使用を検討してください