プラグイン設定
モデル設定
標準モデル設定
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
ノードは、基本的なリアリスティックモデルを超えた追加の設定オプションを提供します:
基本設定
ルックアヘッド(ミリ秒): リップシンクの精度を向上させるためのルックアヘッド時間(ミリ秒)。
- デフォルト: 80ms
- 範囲: 20ms から 200ms (20で割り切れる必要があります)
- 値を高くすると同期性は向上しますが、レイテンシーも増加します
出力タイプ: 生成される顔面コントロールを制御します。
- フルフェイス: 81個すべての顔面コントロール(眉毛、目、鼻、口、顎、舌)
- 口のみ: 口、顎、舌に関連するコントロールのみ
パフォーマンス設定: 通常のリアリスティックモデルと同じ Intra Op スレッドおよび Inter Op スレッド設定を使用します。
ムード設定
利用可能なムード:
- ニュートラル, ハッピー, サッド, ディスガスト, アンガー, サプライズ, フィア
- コンフィデント, エキサイト, ボアード, プレイフル, コンフューズド
ムード強度: ムードがアニメーションに影響を与える強さを制御します (0.0 から 1.0)
ランタイムでのムード制御
以下の関数を使用して、ランタイム中にムード設定を調整できます:
- ムード設定: 現在のムードタイプを変更
- ムード強度設定: ムードがアニメーションに影響を与える強さを調整 (0.0 から 1.0)
- ルックアヘッド(ミリ秒)設定: 同期のためのルックアヘッド時間を変更
- 出力タイプ設定: フルフェイスと口のみのコントロールを切り替え
ムード選択ガイド
コンテンツに基づいて適切なムードを選択してください:
ムード | 最適な用途 | 典型的な強度範囲 |
---|---|---|
ニュートラル | 一般的な会話、ナレーション、デフォルト状態 | 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 | リップシンクがリセットされるまでの時間(秒)。音声が停止した後にリップシンクが継続するのを防ぐのに役立ちます。 |
Blend Realistic MetaHuman Lip Sync
ノードには、プロパティパネルに設定オプションがあります:
プロパティ | デフォルト | 説明 |
---|---|---|
補間速度 | 30 | 発話中の表情の遷移速度を制御します。高い値ほど、より速く急激な遷移になります。 |
アイドル補間速度 | 15 | 表情がアイドル/ニュートラル状態に戻る遷移速度を制御します。低い値ほど、より滑らかで段階的な休止ポーズへの復帰になります。 |
リセット時間 | 0.2 | リップシンクがアイドル状態にリセットされるまでの時間(秒)。音声停止後に表情が継続するのを防ぐのに役立ちます。 |
アイドル状態の維持 | false | 有効にすると、ニュートラルにリセットする代わりに、アイドル期間中の最後の感情状態を維持します。 |
目の表情の維持 | true | アイドル状態中に目に関連する顔の制御を維持するかどうかを制御します。アイドル状態の維持が有効な場合のみ効果があります。 |
眉の表情の維持 | true | アイドル状態中に眉に関連する顔の制御を維持するかどうかを制御します。アイドル状態の維持が有効な場合のみ効果があります。 |
口の形状の維持 | false | アイドル状態中に口の形状制御(舌や顎などの発話固有の動きを除く)を維持するかどうかを制御します。アイドル状態の維持が有効な場合のみ効果があります。 |
アイドル状態の維持
アイドル状態の維持機能は、リアリスティックモデルが無音期間をどのように処理するかを扱います。離散的なビセームを使用し、無音時に一貫してゼロ値に戻る標準モデルとは異なり、リアリスティックモデルのニューラルネットワークは、MetaHumanのデフォルトの休止ポーズとは異なる微妙な顔の位置を維持する可能性があります。
有効にする場合:
- 発話セグメント間での感情表現の維持
- キャラクターの個性特性の保持
- シネマティックシーケンスでの視覚的連続性の確保
領域別制御オプション:
- 目の表情: 目の細め、見開き、まぶたの位置を維持
- 眉の表情: 眉と額の位置を維持
- 口の形状: 発話の動き(舌、顎)がリセットされる間、口の全体的な曲線を保持
笑いアニメーション
また、音声内で検出された笑い声に動的に反応する笑いアニメーションを追加することもできます:
Blend Runtime MetaHuman Laughter
ノードを追加しますRuntimeVisemeGenerator
変数をViseme Generator
ピンに接続します- すでにリップシンクを使用している場合:
Blend Runtime MetaHuman Lip Sync
ノードからの出力をBlend Runtime MetaHuman Laughter
ノードのSource Pose
に接続しますBlend Runtime MetaHuman Laughter
ノードの出力をOutput Pose
のResult
ピンに接続します
- リップシンクなしで笑いのみを使用する場合:
- ソースポーズを直接
Blend Runtime MetaHuman Laughter
ノードのSource Pose
に接続します - 出力を
Result
ピンに接続します
- ソースポーズを直接
音声内で笑い声が検出されると、キャラクターがそれに応じて動的にアニメーションします:
笑いの設定
Blend Runtime MetaHuman Laughter
ノードには独自の設定オプションがあります:
プロパティ | デフォルト | 説明 |
---|---|---|
Interpolation Speed | 25 | 笑いアニメーション間の口の動きの遷移速度を制御します。高い値ほど、より速く急激な遷移になります。 |
Reset Time | 0.2 | 笑いがリセットされるまでの時間(秒単位)。音声が停止した後も笑いが継続するのを防ぐのに役立ちます。 |
Max Laughter Weight | 0.7 | 笑いアニメーションの最大強度をスケーリングします(0.0 - 1.0)。 |
注意: 笑い検出は現在、Standard Model でのみ利用可能です。
既存のアニメーションとの組み合わせ
リップシンクと笑いを、既存のボディアニメーションやカスタムの顔アニメーションと一緒に適用し、それらを上書きしないようにするには:
- ボディアニメーションと最終出力の間に
Layered blend per bone
ノードを追加します。Use Attached Parent
が true になっていることを確認してください。 - レイヤー設定を構成します:
Layer Setup
配列に 1 つのアイテム を追加します- レイヤーの
Branch Filters
に 3 つのアイテム を追加し、以下のBone Name
を設定します:FACIAL_C_FacialRoot
FACIAL_C_Neck2Root
FACIAL_C_Neck1Root
- カスタムの顔アニメーションの場合に重要:
Curve Blend Option
で、"Use Max Value" を選択します。これにより、カスタムの顔アニメーション(表情、感情など)がリップシンクの上に適切にレイヤーされるようになります。 - 接続を行います:
- 既存のアニメーション(
BodyPose
など)→Base Pose
入力 - 顔アニメーション出力(リップシンクおよび/または笑いノードから)→
Blend Poses 0
入力 - レイヤーブレンドノード → 最終的な
Result
ポーズ
- 既存のアニメーション(
リップシンク動作の微調整
舌の突出制御
標準のリップシンクモデルでは、特定の音素において舌が過度に前方に動くことがあります。舌の突出を制御するには:
- リップシンクブレンドノードの後に、
Modify Curve
ノードを追加します Modify Curve
ノードを右クリックし、Add Curve Pin を選択しますCTRL_expressions_tongueOut
という名前のカーブピンを追加します- ノードの Apply Mode プロパティを Scale に設定します
- Value パラメータを調整して舌の伸びを制御します(例:0.8で突出を20%減少)
顎の開き制御
リアルなリップシンクは、使用するオーディオコンテンツや視覚的な要件によっては、顎の動きが過度に反応しすぎることがあります。顎の開きの強度を調整するには:
- リップシンクブレンドノードの後に、
Modify Curve
ノードを追加します Modify Curve
ノードを右クリックし、Add Curve Pin を選択しますCTRL_expressions_jawOpen
という名前のカーブピンを追加します- ノードの Apply Mode プロパティを Scale に設定します
- 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
- 頬を上げる
モデルの比較と選択
モデルの選択
プロジェクトに使用するリップシンクモデルを決定する際は、以下の要素を考慮してください:
考慮事項 | スタンダードモデル | リアリスティックモデル | ムード対応リアリスティックモデル |
---|---|---|---|
キャラクター互換性 | MetaHumansおよびすべてのカスタムキャラクタータイプ | MetaHumansのみ | MetaHumansのみ |
視覚的品質 | 効率的なパフォーマンスによる良好なリップシンク | より自然な口の動きによるリアリズムの向上 | 感情表現を含むリアリズムの向上 |
パフォーマンス | モバイル/VRを含むすべてのプラットフォーム向けに最適化 | より高いリソース要件 | より高いリソース要件 |
機能 | 14のビセーム、笑い検出 | 81の顔面制御、3つの最適化レベル | 81の顔面制御、12のムード、設定可能な出力 |
プラットフォームサポート | Windows, Android, Quest | Windows, Mac, iOS, Linux | Windows, Mac, iOS, Linux |
ユースケース | 一般的なアプリケーション、ゲーム、VR/AR、モバイル | 映画的体験、クローズアップインタラクション | 感情的なストーリーテリング、高度なキャラクターインタラクション |
エンジンバージョン互換性
:::警告 UE 5.2 互換性の問題 Unreal Engine 5.2 を使用している場合、UE のリサンプリングライブラリのバグにより、リアリスティックモデルが正しく動作しない可能性があります。信頼性の高いリップシンク機能を必要とする UE 5.2 ユーザーは、代わりにスタンダードモデルを使用してください。
この問題は UE 5.2 に特有であり、他のエンジンバージョンには影響しません。 :::
パフォーマンスに関する推奨事項
- ほとんどのプロジェクトでは、スタンダードモデルが品質とパフォーマンスの優れたバランスを提供します
- MetaHuman キャラクターに最高の視覚的忠実度が必要な場合は、リアリスティックモデルを使用してください
- アプリケーションにとって感情表現の制御が重要な場合は、ムード対応リアリスティックモデルを使用してください
- モデルを選択する際は、ターゲットプラットフォームのパフォーマンス能力を考慮してください
- 特定のユースケースに最適なバランスを見つけるために、さまざまな最適化レベルをテストしてください
TTS 互換性
モデルタイプ | ローカル TTS サポート (Runtime Text To Speech 経由) | 外部 TTS サポート | 備考 |
---|---|---|---|
スタンダードモデル | ✅ 完全サポート | ✅ 完全サポート | すべての TTS オプションと互換性あり |
リアリスティックモデル | ❌ 限定サポート | ✅ 完全サポート | ONNX ランタイムがローカル TTS と競合 |
ムード対応リアリスティックモデル | ✅ 完全サポート | ✅ 完全サポート | すべての TTS オプションと互換性あり |
トラブルシューティング
一般的な問題
リアリスティックモデルのジェネレーター再作成: リアリスティックモデルで信頼性が高く一貫した動作をさせるためには、一定期間の非アクティブ状態の後に新しいオーディオデータを投入したい場合、毎回ジェネレーターを再作成することを推奨します。これは、ONNX ランタイムの動作により、無音状態の期間後にジェネレーターを再利用するとリップシンクが動作しなくなる可能性があるためです。
ローカル TTS 互換性: Runtime Text To Speech プラグインによって提供されるローカル TTS は、ONNX ランタイムの競合により、通常のリアリスティックモデルでは現在サポートされていません。ただし、スタンダードモデルとムード対応リアリスティックモデルの両方と完全に互換性があります。TTS 機能を備えた通常のリアリスティックモデルが特に必要な場合は、外部 TTS サービスを使用してください。
リップシンクの応答性の低下: Streaming Sound Wave または Capturable Sound Wave を使用している際に、時間の経過とともにリップシンクの応答性が低下する場合は、メモリの蓄積が原因である可能性があります。デフォルトでは、新しいオーディオが追加されるたびにメモリが再割り当てされます。この問題を防ぐには、ReleaseMemory 関数を定期的に(例えば約30秒ごとに)呼び出して、蓄積されたメモリを解放してください。
パフォーマンス最適化:
- パフォーマンス要件に基づいて、リアリスティックモデルの処理チャンクサイズを調整してください
- ターゲットハードウェアに適したスレッド数を使用してください
- 完全な顔のアニメーションが必要ない場合は、ムード対応モデルに Mouth Only 出力タイプの使用を検討してください