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

デモプロジェクト

Runtime MetaHuman Lip Sync をすぐに使い始められるよう、すぐに使えるデモプロジェクトが2つ用意されています。どちらも Unreal Engine 5.6+ で構築され、Blueprintのみで動作し、Windows、Mac、Linux、iOS、Android、および Android ベースのプラットフォーム(Meta Quest を含む)でクロスプラットフォーム対応しています。

利用可能なデモプロジェクト

音声認識、AIチャットボット(LLM)、テキスト読み上げ、オーディオ再生とリアルタイムのリップシンクを組み合わせた、完全なAI会話アバターワークフローです。これらすべてが単一のプロジェクト内で連携して動作します。ゲームインタラクティブキオスクバーチャルプロダクションミュージアムインスタレーションデジタルアシスタントトレーニングシミュレーションなど、幅広いユースケースに適しています。

パイプライン概要

🎤 Microphone → Speech Recognition → 💬 LLM Chatbot → 🔊 Text-to-Speech → 👄 Lip Sync + Playback

LLMがストリーミングモードに設定されている場合、応答全体を待つのではなく、出力が文ごとに分割され、各文が完了するたびにTTSに送信されるため、レイテンシーが最小限に抑えられます。

動画

クイックプレビュー(約30秒)

デモの動作を簡単に紹介します。

完全なチュートリアル

セットアップ、設定、そして会話パイプライン全体を網羅した詳細なチュートリアルです。

ダウンロード

必須プラグインとオプションプラグイン

デモプロジェクトはモジュール式です。使用したいプロバイダーのプラグインのみが必要です。

プラグイン目的必須ですか?
Runtime MetaHuman Lip Syncリップシンクアニメーション常に
Runtime Audio Importer音声キャプチャと処理常に
Runtime Speech Recognizerオフライン音声認識(whisper.cpp)常に
Runtime AI Chatbot Integrator外部LLM(OpenAI、Claude、DeepSeek、Gemini、Grok、Ollama)および/または外部TTS(OpenAI、ElevenLabs)🔶 オプション
Runtime Local LLMllama.cpp によるローカル LLM 推論(Llama、Mistral、Gemma など、GGUF モデル)🔶 オプション
Runtime Text To SpeechPiperとKokoroによるローカルTTS🔶 オプション
オプションプラグイン - プロバイダー要件

上記の各プラグインは個別にオプションですが、デモを動作させるには少なくとも1つのLLMプロバイダー少なくとも1つのTTSプロバイダーが必要です。自由に組み合わせてください(例:ローカルLLM + ElevenLabs TTS、またはOpenAI LLM + ローカルTTS)。

モジュラーアーキテクチャ

Content フォルダ内に Modules フォルダがあり、その中に 3 つのサブフォルダが含まれています。

Content/
└── Modules/
├── RuntimeAIChatbotIntegrator/ ← External LLMs and/or external TTS
├── RuntimeLocalLLM/ ← Local LLM via llama.cpp
└── RuntimeTextToSpeech/ ← Local TTS via Piper/Kokoro

オプションプラグインを1つ以上入手していない場合は、該当するフォルダを削除するだけで問題ありません。デモプロジェクトの基本アセット(ゲームインスタンス、ウィジェットなど)はこれらのモジュールを直接参照していないため、削除してもアセット参照エラーは発生しません。設定UIは、フォルダが存在しないプロバイダーを自動的に非表示にします。

注記

このモジュール性はLLMTTSプロバイダーにのみ適用されます。音声認識(Runtime Speech Recognizer)とリップシンク(Runtime MetaHuman Lip Sync)はベースデモプロジェクトの一部であり、常に必要です。

Modules folder structure

警告

初回起動時、Unreal が不足しているオプションプラグインを無効にするかどうかを尋ねることがあります。はいをクリックしてください。対応する Content/Modules/ フォルダも削除したことを確認してください(上記参照)。

デモプロジェクトのレイアウト

UIはデモンストレーション目的です。

以下に示すユーザーインターフェースは、すべてUMG(Unreal Motion Graphics)で構築されており、音声認識→LLM→TTS→リップシンクというパイプラインのデモンストレーションを目的としています。プロジェクトのビジュアルデザイン、操作方式、プラットフォーム(VR/AR、モバイル、コンソール、キオスクなど)に合わせて、自由にスタイルを変更したり置き換えたりできます。また、ユースケースで不要なウィジェットは、単に非表示にする(例:可視性をCollapsedHiddenに設定する)ことも可能です。

Annotated overview of the demo project main screen

Area何がありますか
中央揃えメタヒューマンキャラクター
左側4つの設定ボタン(音声認識、AIチャットボット、テキスト読み上げ、アニメーション)については、以下で詳しく説明します。
中央下部録音開始ボタン。これをクリックすると音声会話が始まります。マイクで音声をキャプチャし、文字起こしを行い、LLMに送信し、TTSで応答を合成し、リップシンクで再生します。完全にハンズフリーで動作します。
右中央会話履歴ウィジェットは、あなたとAIの間の完全なやり取り(ユーザーとアシスタントの両方のメッセージ)を表示します。また、テキスト入力フィールドも含まれており、音声認識を使用せずに直接メッセージを入力できます。これは、テスト、アクセシビリティ、またはマイクが利用できない場合に便利です。
ヒント

同じセッション内で両方の入力モードを自由に混在させることができます。メッセージを話したり、タイプしたりできます。

ヒント

リップシンクがテストを続けるうちに(単なる固定遅延ではなく)音声からどんどん遅れていく場合は、以下のアニメーション設定処理チャンクサイズを参照してください。

設定ボタン

左側の4つの設定ボタンは、パイプラインの各パート専用のパネルを開きます。

1. 音声認識を設定する

ユーザーの音声がどのようにキャプチャされ、文字起こしされるかを設定します。

  • 言語を選択
  • 音声認識パラメータを調整(Whisperモデル設定)
  • AEC(音響エコーキャンセレーション)を設定
  • VAD(音声アクティビティ検出)を設定

Speech recognition configuration screen

2. AIチャットボットを設定する

LLMプロバイダーを選択して設定してください。

  • プロバイダーを選択(Runtime AI Chatbot Integrator または Runtime Local LLM)
  • モードを選択:通常またはストリーミング(プロバイダー依存、ストリーミングでは文単位のTTS受け渡しが可能。パイプライン概要を参照)
  • 外部プロバイダーの場合:認証トークンモデル名など
  • ローカルLLMの場合:GGUFモデルを選択し、コンテキストサイズやその他の推論パラメータを設定。また、デモから直接ランタイムで独自のGGUFモデルをダウンロード(例:URL経由)し、プロジェクトを再ビルドせずに即座に使用できます。
ヒント

プロバイダーのコンボボックスには、Content/Modules/ にプラグインモジュールフォルダが存在するプロバイダーのみが表示されます。

AI chatbot configuration - Runtime AI Chatbot Integrator (external LLM)

AI chatbot configuration - Runtime Local LLM (local GGUF)

3. テキスト読み上げを設定する

TTSプロバイダーを選択し、音声/モデルを設定してください:

  • プロバイダーを選択(OpenAI/ElevenLabs用のRuntime AI Chatbot Integrator、またはローカルのPiper/Kokoro用のRuntime Text To Speech)
  • モードを選択:通常またはストリーミング(オーディオが一度に返されるか、合成されながら返されるかを制御)
  • 音声/モデルを選択
  • プロバイダー固有のパラメータを調整

TTS configuration - Runtime AI Chatbot Integrator (external TTS)

TTS configuration - Runtime Local Text To Speech (local Piper/Kokoro)

4. アニメーションを設定する

AIアバターのビジュアルをコントロール:

  • 3つのプリダウンロード済みMetaHumanキャラクター(Aera、Ada、Orlando)から選択
  • リップシンクモデル(StandardまたはRealistic)を選択
  • リップシンクモデルタイプを選択 - Highly Optimized、Semi-Optimized、またはOriginal(モデルタイプを参照)
  • 処理チャンクサイズを調整 - リップシンク推論の実行頻度を制御します(処理チャンクサイズを参照)
    • CPU負荷が原因でリップシンクが時間とともに音声から遅れていく場合は、この値を480または640に増やしてください。
  • 会話中にMetaHumanで再生する待機アニメーションを選択します。

Animations configuration screen

エディタでデモを事前設定する

ソースバージョンを使用する場合、エディターでデフォルト値を事前に入力しておくことで、実行のたびに値を再入力する必要がなくなります。

Whatどこ
一般設定(リップシンクモデル、アイドルアニメーション、キャラクタークラス、音声認識など)Content/LipSyncSTSGameInstance
外部LLM / 外部TTS 設定(ランタイムAIチャットボットインテグレーター)Content/Modules/RuntimeAIChatbotIntegrator/RuntimeAIChatbotIntegrator_Provider
Local LLM 設定 (Runtime Local LLM)Content/Modules/RuntimeLocalLLM/RuntimeLocalLLM_Provider
ローカルTTS設定(ランタイムテキスト読み上げ)Content/Modules/RuntimeTextToSpeech/RuntimeTextToSpeech_Provider

クロスプラットフォームに関する注意事項

デモで使用されるすべてのプラグインは Windows、Mac、Linux、iOS、Android、およびAndroidベースのプラットフォーム(Meta Questを含む)をサポートしているため、デモプロジェクトもこれらすべてで動作します。これにより、ゲームやデスクトップキオスクからモバイルアプリ、スタンドアロンVRヘッドセット、オンセットのバーチャルプロダクション環境まで、幅広い環境への展開に適しています。

性能の低いデバイス(モバイル、スタンドアロンVR)では、以下の対応を検討してください。

  • 標準リップシンクモデルをRealisticの代わりに使用してください。モデル比較を参照
  • 高度に最適化モデルタイプに切り替える
  • 処理チャンクサイズを増やしてCPU負荷を軽減する
  • より小さいLLM/TTSモデルを選択する

プラットフォーム固有の設定を参照して、Android、iOS、Mac、Linuxでの追加のセットアップ手順を確認してください。

Pixel Streaming サポート

Pixel Streaming でのデモのデプロイ(クリックして展開)

AI会話デモプロジェクトはPixel Streaming環境でも動作し、MetaHumanアバターをリモートクライアント(例:ウェブブラウザ)にストリーミングしながら、クライアント側からユーザーのマイク音声をキャプチャできます。デモに必要な変更は1つだけです。

1. Runtime Audio Importer用のPixel Streaming拡張機能をインストールする

Runtime Audio Importerプラグインは、Pixel Streamingクライアントからオーディオをキャプチャできる無料の拡張プラグインを提供します。使用しているPixel Streamingインフラストラクチャのバージョンに応じて、以下のいずれかをインストールしてください。

ダウンロードリンクとインストール手順はこちらでご確認いただけます: Pixel Streaming Audio Capture - 拡張プラグインのインストール

2. LipSyncSTSGameInstance 内のキャプチャ可能なサウンドウェーブノードを交換します。

拡張プラグインをインストールした後:

  1. コンテンツブラウザで /All/Game に移動し、LipSyncSTSGameInstance アセットを開きます。
  2. イベントグラフに切り替えます。
  3. Event Init を見つけ、実行フローを辿って Create Capturable Sound WaveSet Capturable Sound Wave のノードペアを見つけます。
  4. Create Capturable Sound Wave 呼び出しを、ターゲットとする Pixel Streaming インフラストラクチャのバージョンに応じて、Create Pixel Streaming Capturable Sound Wave または Create Pixel Streaming 2 Capturable Sound Wave に置き換えます。
  5. その出力を同じ Set Capturable Sound Wave ノードに接続します。

この後、プロジェクトはPixel Streamingにデプロイする準備が整います。音声認識、LLM、TTS、リップシンクはすべて以前と同様に機能しますが、オーディオはローカルマイクではなくリモートクライアントからキャプチャされます。

独自のキャラクターを持ち込む

デモプロジェクトには、3つのサンプルMetaHumanキャラクター(Aera、Ada、Orlando)が付属していますが、独自のMetaHumanをインポートしてデモで使用することもできます。

📺 ビデオチュートリアル: デモプロジェクトにカスタムメタヒューマンキャラクターを追加する

注記

Runtime MetaHuman Lip Syncプラグイン自体は、MetaHuman以外にも多くのキャラクターシステムをサポートしています(ARKitベースのキャラクター、Daz Genesis 8/9、Reallusion CC3/CC4、Mixamo、ReadyPlayerMeなど - カスタムキャラクター設定ガイドを参照)。ゲームのNPC、バーチャルプレゼンター、キオスクの案内役、バーチャルプロダクション用のデジタルヒューマンなど、どのようなキャラクターパイプラインにもこのプラグインは適応します。

標準リップシンクモデルに関する注意事項

Standard Model(Realisticではなく)をいずれかのデモプロジェクトで使用する予定がある場合は、Standard Lip Sync Extensionプラグインをインストールする必要があります。インストール手順については、Standard Model Extensionをご参照ください。

ヘルプが必要ですか?

デモプロジェクトのセットアップや実行中に問題が発生した場合は、お気軽にお問い合わせください。

Join our Discord
online · support

カスタム開発のご依頼(例:デモに独自のロジックを追加する、特定のプラットフォームやキャラクターパイプラインに適応させるなど)は、solutions@georgy.dev までお問い合わせください。