コンテンツにスキップ

UE5のSequencerで音声とリップシンクを編集する

公開ソース Plugin 1642ffa / Demo 2fbdcb3 · UE 5.8.2 / Win64

LAM Dialogueは、保存済みLAM Expression Clipの音声と表情を同じセクションで編集する、Unreal Engine 5(UE5)のSequencer専用トラックです。台詞を移動・分割しても音声とリップシンクが一緒に動き、停止中のスクラブでも口形を確認できます。再生用Blueprintイベントの配線は不要ですが、表情を適用するAnimBPは必要です。

新しい作業フォルダーに公開デモを取得します。UE 5.8.2とVisual Studio 2022のC++環境が必要です。既存プロジェクトやカスタマイズ済みアセットの上でセットアップを実行しないでください。

ターミナル
git clone --recurse-submodules https://github.com/yeczrtu/LAMAudio2Expression-UE-Demo.git
cd LAMAudio2Expression-UE-Demo
git checkout 2fbdcb3758f89883af6c4659f835ea843502baa0
git submodule update --init --recursive
& 'D:\Unreal\UE_5.8\Engine\Build\BatchFiles\Build.bat' LAMDemoEditor Win64 Development "-Project=$PWD\LAMDemo.uproject" -WaitMutex

エンジンのパスは実際の配置先へ置き換えます。このDemoはPlugin 1642ffaを参照します。自分のSoundWaveからClipを生成する場合は、開発環境・モデルの準備も必要です。付属の保存済みClipを再生するだけなら、評価中のモデルロード・音声解析・推論はありません。

キャラクターには次を用意します。

  1. Level Sequenceを開き、対象キャラクターのActorを追加します。
  2. そのActorの LAM Dialogue を + Track から選びます。マスターのAudio Trackではありません。
  3. Content Browserの保存済みClipをLAM Dialogueへドラッグします。トラックの右クリック → Add LAM Clipから選択しても同じです。
  4. 再生ヘッドを動かし、口形が現在位置に追従することを確認します。通常再生はSequencerの再生ボタン、PIEではLevel Sequence Playerから操作します。

音声はClipが参照するSoundWaveから再生されます。同じ音声を別のAudio Trackへ重複配置したり、同時にPlay Expression Clipを呼ぶ必要はありません。 音声のスクラブ試聴はUEのSequencer設定に従い、停止中でも表情は評価されます。

Actorへの追加候補として表示されたLAM Dialogueメニュー項目。

Actorの + Track にあるLAM Dialogue · 原寸画像を開く

  1. Actorの + Track からLAM Dialogueを選びます。

プラグインが登録するメニュー部分の原寸キャプチャです。マスターの + Add ではなく、対象Actorの + Track から開きます。

撮影 2026-10-09 · UE 5.8.2 · Plugin 1642ffa · Demo 2fbdcb3 · 公開ソース版限定。v0.3.0 ZIPには未収録。

操作・設定 音声と表情の動作
移動・複製・分割・トリム セクション範囲を共有し、台詞と表情を一緒に編集
Start Offset・スリップ 元Clip内の開始位置を音声・表情の両方に適用。セクション名の[+… s]で確認
Volume 音量だけをキー設定。0でも表情は更新
Expression Weight 0〜1で表情の強さをキー設定。音量とは独立
セクションのイージング 音声と表情に共通のフェード
重なるセクション 音声はミックス、ARKit 52値は加重平均。合計の適用重みは0〜1に制限
範囲外 表情の寄与を解除してAnimBPの入力ポーズへ戻る。末尾の引き延ばしや自動100msフェードは行わない

表情はSequence内の現在時刻 − セクション開始時刻 + Start Offsetから補間します。サブシーケンスでは変換済みのローカル時刻を使います。音声コールバックや実時間の積算を表情時計として使用しません。

音声を変更するときは別のClipを指定します。SoundWaveを再インポートした場合は、先にClipを再生成してください。Content BrowserのValidate Assetsで、Sequenceとサブシーケンス内の欠損Clip・音声参照の不一致・再生成漏れを検査できます。自動解析は行いません。

LAM DialogueのSpeech_LAMClip、開始位置+0.000秒、Volume 1.0、Expression Weight 1.0が表示されたSequencer。

Clipの波形・開始位置・音量・表情の強さ · 原寸画像を開く

  1. Clip名とStart Offset。波形と表情は同じセクション範囲を使います。
  2. Volumeは音量です。例は1.0です。
  3. Expression Weightは表情の強さです。例は1.0です。

トラックを展開して2つのチャンネルを表示しています。設定値は付属サンプルの例で、新しい測定結果ではありません。細部は原寸画像で確認できます。 文字を縮小しすぎないよう、画像部分を横スクロールできます。

撮影 2026-10-09 · UE 5.8.2 · Plugin 1642ffa · Demo 2fbdcb3 · 公開ソース版限定。v0.3.0 ZIPには未収録。 · 素材のクレジット・利用条件

対象コンポーネントと再生制御

「対象コンポーネントと再生制御」へのリンク

対象ActorにLAMコンポーネントとSkeletal Meshがそれぞれ1つなら自動選択されます。複数ある場合は、トラックの右クリック → Target ComponentsでLAM ComponentとSkeletal Meshを指定します。AnimBPのSource Componentも、同じLAMコンポーネントへ明示的に接続してください。

Sequencerが制御を取得すると、通常の音声再生・マイク・PCM入力を中断します。通常再生の終了理由はInterruptedです。管理中の新しいPlay Expression Clip、Start Microphone、Start PCM Streamは拒否されます。必要ならBlueprintのIs Controlled By Sequencerで開始処理を分岐します。

LAM Dialogue自体はコンポーネントの通常再生イベントを発火しません。再生・一時停止・停止はLevel Sequence Playerで操作し、音量はSequencerで管理します。通常再生のPlayback Settingsを引き継ぐ機能ではありません。

エディタで停止・一時停止している間は現在位置の表情を表示します。範囲外への移動、セクション無効化・削除、Sequenceを閉じる操作、実行時の停止・終了では制御を解除します。中断した音声やライブ入力は自動再開しません。Keep Stateは対象外です。

Target Componentsサブメニュー。LAM ComponentにはLAM、Skeletal MeshにはFaceが表示されている。

Target Componentsで対象を選ぶ · 原寸画像を開く

  1. LAM Componentから、AnimBPが参照するLAMを選びます。
  2. Skeletal Meshから表情を適用するメッシュを選びます。この例はFaceです。

LAM Dialogueトラックの右クリック → Target Componentsに表示されるサブメニューです。候補名はActor内のコンポーネント名によって変わります。

撮影 2026-10-09 · UE 5.8.2 · Plugin 1642ffa · Demo 2fbdcb3 · 公開ソース版限定。v0.3.0 ZIPには未収録。

公開ソースの/Game/LAMSequencerExamplesには、次の組み合わせを用意しています。デモは自動再生が無効なので、Sequenceを開いてスクラブするか、PIE中にLevelSequenceActorのSequence Playerを再生します。

Map Sequence 用途
LAM_DialogueARKit LS_DialogueARKit ARKit対応AnimBPで台詞を再生
LAM_DialogueViseme LS_DialogueViseme Viseme対応AnimBPで台詞を再生
LAM_DialogueARKit LS_DialogueShots 親のCamera Cutsと子のLAMトラックを使う2ショット
LAM_DialogueARKit LS_DialogueAudioSync / LS_StandardAudioReference 範囲・Offset・分割位置が同じLAM/標準Audioの比較素材

Movie Render QueueのジョブではMapとSequenceの両方を対応する組み合わせにします。MRQ_Temporal1/MRQ_Temporal8は640×640、PNGとWAV Audioの設定例です。サンプルの再生成・テストコマンドは開発・検証手順を参照してください。

MRQジョブのDetails。SequenceはLS_DialogueARKit、MapはLAM_DialogueARKitを参照している。

MRQジョブのSequenceとMapの対応 · 原寸画像を開く

  1. SequenceにLS_DialogueARKitを指定します。
  2. 対応するMapはLAM_DialogueARKitです。Visemeでは両方をViseme用に変更します。

撮影用キューに準備した実際のMRQジョブを、UEのDetailsエディタで開いて参照先を表示しています。通常の操作ではMovie Render QueueでSequenceを追加し、ジョブのMapを設定します。レンダリングは実行していません。

撮影 2026-10-09 · UE 5.8.2 · Plugin 1642ffa · Demo 2fbdcb3 · 公開ソース版限定。v0.3.0 ZIPには未収録。

  1. Movie Render Queueのジョブを追加し、MapとSequenceを設定します。
  2. 設定にMRQ_Temporal1またはMRQ_Temporal8を指定します。Anti-aliasing → Temporal Sample Countはそれぞれ1/8です。
  3. PNG Sequenceなどの画像出力とWAV Audioを選び、出力先とフレーム範囲を確認してレンダリングします。

LAMの表情は各Temporal Sampleの評価時刻で補間されます。音声デバイスを無効にした場合も表情評価は行われますが、音声ファイルの出力条件とは別です。AnimBP内の別のステート・物理演算まで決定的になる保証はありません。EpicのTemporal Sampling仕様

WAV AudioはUE標準の出力です。 Epicは実験的機能と位置づけ、ショット間でSequencer外の音声に隙間が生じることや、Sequencer音声にも小さな歪みが起こり得ることを説明しています。LAMによる独自の音声出力保証として扱わないでください。EpicのWAV Audio仕様

パッケージでは、使用するLevel Sequenceを参照するMapをCook対象にします。SequenceからClipとSoundWaveが参照されます。付属例を含める場合はTools/package.ps1 -IncludeSequencerを利用します。モデルとパッケージ化

MRQ_Temporal8プリセットの編集画面。PNG SequenceとWAV Audioが有効で、出力解像度は640×640。

MRQ_Temporal8のPNG・WAV出力 · 原寸画像を開く

  1. PNG Sequenceで画像を出力します。
  2. WAV AudioでUE標準の音声を出力します。
  3. 付属プリセットの解像度は640×640です。

付属プリセットを直接開いた画面です。ジョブの設定では出力先とフレーム範囲も確認してください。WAVのショット境界の制限は本文を参照してください。

撮影 2026-10-09 · UE 5.8.2 · Plugin 1642ffa · Demo 2fbdcb3 · 公開ソース版限定。v0.3.0 ZIPには未収録。

付属プリセットのAnti-aliasing設定のDetails。Spatial Sample Countは1、Temporal Sample Countは8。

MRQ_Temporal8のTemporal Sample Count · 原寸画像を開く

  1. Temporal Sample Countは8です。MRQ_Temporal1では1です。
  2. Spatial Sample Countは1です。Temporal Sample Countと区別します。

読みやすさのため、MRQ_Temporal8が保持する実際のAnti-aliasing設定オブジェクトをUEのDetailsエディタで開いています。通常はMRQの設定画面でAnti-aliasingを選びます。撮影のために値は変更していません。

撮影 2026-10-09 · UE 5.8.2 · Plugin 1642ffa · Demo 2fbdcb3 · 公開ソース版限定。v0.3.0 ZIPには未収録。

初版は1倍速・非ループです。Pitch変更、時間伸縮、Time Dilation、速度を変更したサブシーケンス、音声の逆再生、AnimSequence書き出し、MetaHuman専用リグ変換は対象外です。逆方向へのスクラブで表情を表示することと、音声の逆再生は別です。

症状 確認すること
LAM Dialogueがメニューにない v0.3.0 ZIPではなく、指定の公開ソースをEditor向けにビルドしたか。Actorの+ Trackを開いているか
音は出るが顔が動かない AnimBPのApply LAMノード、出力名、Target Components、Source Componentを確認
台詞が二重に鳴る 同じSoundWaveのAudio Trackや、イベントからのClip再生が重複していないか
トリム後の音声位置がおかしい Sound Asset Compression TypeがPCMまたはBink Audioか
参照・更新に関するエラー Clipと元音声を確認し、再インポート後はClipを再生成。Validate Assetsを実行
通常再生やマイク開始が拒否される Is Controlled By Sequencerで確認し、Sequenceの制御解除後に明示的に開始

同じメッシュのAnimBPをAnimation Track/Control Rigで置き換える構成、および複数の独立したSequence Playerが同じLAMコンポーネントを同時制御する構成は対象外です。

2026-10-07の公開記録では、UE 5.8.2/Windows 11/RTX 3070で回帰テスト17件が成功(うち1件は警告あり)しています。MRQの52値の最大誤差は約2.27×10⁻⁷、許容値は1×10⁻⁵です。同じPCM音声・範囲・Offset・分割条件の標準Audio Trackとの比較では32,000音声フレームが一致しました。

Development/ShippingのARKit/Visemeで、モデル未ロードの再生と停止時の解除が記録されています。これは全環境の保証や新しい性能測定ではありません。マウス操作全体の網羅テスト、モーションブラー後の画素一致は行っていません。条件・警告・検証限界を確認してください。

ライセンス・クレジット · デモのソース