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

プラグイン設定

モデル設定

各再生に対応したリアルなモデル生成器を再作成する

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

標準モデル設定

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

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

現実的なモデル設定

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

モデルタイプ

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

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

パフォーマンス設定

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

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

基本設定

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

  • デフォルト: 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

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

リップシンク設定

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

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

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

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

ボディアニメーション

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

  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. カスタムフェイシャルアニメーションの重要ポイント: 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 - 頬の上げ

モデルの比較と選択

モデルの選択

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

考慮点標準モデルリアリスティックモデルムード対応リアルなモデル
キャラクター互換性MetaHumansおよびすべてのカスタムキャラクタータイプメタヒューマン(およびARKit)のキャラクターメタヒューマン(および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に固有のものであり、他のエンジンバージョンには影響しません。

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

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

トラブルシューティング

よくある問題

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

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

Recreate Lip Sync Generator On Play Sound

ランタイムテキスト読み上げ統合のためのプラグインの場所: 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ベースのプラグインが読み込まれる際に発生する可能性がある互換性の問題に対処するものです。

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

これを修正するには:

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

Shipping Configuration

ブループリント専用プロジェクト

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

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

パフォーマンス最適化:

  • 現実的なモデル向けに、パフォーマンス要件に基づいて処理チャンクサイズを調整する
  • ターゲットハードウェアに適したスレッド数を使用する
  • 完全な顔のアニメーションが必要ない場合は、ムード対応モデルで「口のみ」出力タイプの使用を検討する