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

プラグイン設定

モデル設定

標準モデル設定

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

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

リアリスティックモデル設定

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の倍数を使用することを推奨

処理チャンクサイズの設定

ムード対応モデル設定

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

基本設定

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

  • デフォルト: 80ms
  • 範囲: 20ms から 200ms (20で割り切れる必要あり)
  • 高い値はより良い同期を提供するが、レイテンシを増加させる

Output Type: 生成される顔のコントロールを制御します。

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

Performance Settings: 通常のリアリスティックモデルと同じ 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

Animation Blueprint 設定

リップシンク設定

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 ノードには独自の設定オプションがあります:

プロパティデフォルト説明
補間速度25笑いアニメーション間での口の動きの遷移速度を制御します。値が高いほど、より速く、より突然の遷移になります。
リセット時間0.2笑いがリセットされるまでの時間(秒単位)。オーディオが停止した後も笑いが続くのを防ぐのに役立ちます。
最大笑いウェイト0.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 入力
    • レイヤードブレンドノード → 最終的な Result ポーズ

Layered Blend Per Bone

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

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

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

舌の突出制御

標準リップシンクモデルでは、特定の音素で舌が過度に前方に動くことがあります。舌の突出を制御するには:

  1. リップシンクブレンドノードの後に、Modify Curve ノードを追加します
  2. Modify Curve ノードを右クリックし、Add Curve Pin を選択します
  3. 名前 CTRL_expressions_tongueOut でカーブピンを追加します
  4. ノードの Apply Mode プロパティを Scale に設定します
  5. Value パラメータを調整して舌の伸びを制御します(例:0.8 で突出を 20% 削減)

顎の開き制御

Realistic リップシンクは、オーディオの内容や視覚的な要件に応じて、過度に反応する顎の動きを生成する可能性があります。顎の開き強度を調整するには:

  1. リップシンクブレンドノードの後に、Modify Curve ノードを追加します
  2. Modify Curve ノードを右クリックし、Add Curve Pin を選択します
  3. 名前 CTRL_expressions_jawOpen でカーブピンを追加します
  4. ノードの Apply Mode プロパティを Scale に設定します
  5. Value パラメータを調整して顎の開き範囲を制御します(例:0.9 で顎の動きを 10% 削減)

ムード固有の微調整

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

眉の制御:

  • 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
キャラクター互換性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 のリサンプリングライブラリのバグにより、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 models ONNX ランタイムに問題が発生する可能性があります。

これを修正するには:

  1. プロジェクト設定 → Packaging で、Build Configuration を Shipping に設定します
  2. プロジェクトを再パッケージ化します

Shipping Configuration

Blueprint-Only プロジェクト

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

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

パフォーマンス最適化:

  • パフォーマンス要件に基づいて、Realistic モデルの処理チャンクサイズを調整します
  • ターゲットハードウェアに適したスレッド数を使用します
  • 完全な顔のアニメーションが必要ない場合は、Mood-Enabled モデルで Mouth Only 出力タイプの使用を検討してください