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.gitcd LAMAudio2Expression-UE-Demogit checkout 2fbdcb3758f89883af6c4659f835ea843502baa0git 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を再生するだけなら、評価中のモデルロード・音声解析・推論はありません。
キャラクターには次を用意します。
- Actor上の
LAM Audio2Expression ComponentとSkeletal Mesh。 - MeshのAnimBPにApply LAM ARKit CurvesまたはApply LAM Viseme Curvesを接続し、出力名をキャラクターの表情カーブに合わせます。
- SoundWaveの事前解析で生成・保存したClip。音声の切り詰め・途中再生には、SoundWaveのSound Asset Compression TypeをPCMまたはBink Audioにします。Epicの音声編集条件
LAM Dialogueトラックを追加する
「LAM Dialogueトラックを追加する」へのリンク- Level Sequenceを開き、対象キャラクターのActorを追加します。
- そのActorの LAM Dialogue を
+ Trackから選びます。マスターのAudio Trackではありません。 - Content Browserの保存済みClipをLAM Dialogueへドラッグします。トラックの右クリック → Add LAM Clipから選択しても同じです。
- 再生ヘッドを動かし、口形が現在位置に追従することを確認します。通常再生はSequencerの再生ボタン、PIEではLevel Sequence Playerから操作します。
音声はClipが参照するSoundWaveから再生されます。同じ音声を別のAudio Trackへ重複配置したり、同時にPlay Expression Clipを呼ぶ必要はありません。 音声のスクラブ試聴はUEのSequencer設定に従い、停止中でも表情は評価されます。
Actorの + Track にあるLAM Dialogue · 原寸画像を開く
- Actorの + Track からLAM Dialogueを選びます。
プラグインが登録するメニュー部分の原寸キャプチャです。マスターの + Add ではなく、対象Actorの + Track から開きます。
撮影 2026-10-09 · UE 5.8.2 · Plugin 1642ffa · Demo 2fbdcb3 · 公開ソース版限定。v0.3.0 ZIPには未収録。
Clipを配置して編集する
「Clipを配置して編集する」へのリンク| 操作・設定 | 音声と表情の動作 |
|---|---|
| 移動・複製・分割・トリム | セクション範囲を共有し、台詞と表情を一緒に編集 |
| 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・音声参照の不一致・再生成漏れを検査できます。自動解析は行いません。
Clipの波形・開始位置・音量・表情の強さ · 原寸画像を開く
- Clip名とStart Offset。波形と表情は同じセクション範囲を使います。
- Volumeは音量です。例は1.0です。
- 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から、AnimBPが参照するLAMを選びます。
- Skeletal Meshから表情を適用するメッシュを選びます。この例はFaceです。
LAM Dialogueトラックの右クリック → Target Componentsに表示されるサブメニューです。候補名はActor内のコンポーネント名によって変わります。
撮影 2026-10-09 · UE 5.8.2 · Plugin 1642ffa · Demo 2fbdcb3 · 公開ソース版限定。v0.3.0 ZIPには未収録。
付属サンプルとMRQジョブ
「付属サンプルとMRQジョブ」へのリンク公開ソースの/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ジョブのSequenceとMapの対応 · 原寸画像を開く
- SequenceにLS_DialogueARKitを指定します。
- 対応する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には未収録。
MRQの出力設定
「MRQの出力設定」へのリンク- Movie Render Queueのジョブを追加し、MapとSequenceを設定します。
- 設定に
MRQ_Temporal1またはMRQ_Temporal8を指定します。Anti-aliasing → Temporal Sample Countはそれぞれ1/8です。 - 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・WAV出力 · 原寸画像を開く
- PNG Sequenceで画像を出力します。
- WAV AudioでUE標準の音声を出力します。
- 付属プリセットの解像度は640×640です。
付属プリセットを直接開いた画面です。ジョブの設定では出力先とフレーム範囲も確認してください。WAVのショット境界の制限は本文を参照してください。
撮影 2026-10-09 · UE 5.8.2 · Plugin 1642ffa · Demo 2fbdcb3 · 公開ソース版限定。v0.3.0 ZIPには未収録。
MRQ_Temporal8のTemporal Sample Count · 原寸画像を開く
- Temporal Sample Countは8です。MRQ_Temporal1では1です。
- 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で、モデル未ロードの再生と停止時の解除が記録されています。これは全環境の保証や新しい性能測定ではありません。マウス操作全体の網羅テスト、モーションブラー後の画素一致は行っていません。条件・警告・検証限界を確認してください。