UE5のBlueprintでリップシンクを実装する
v0.3.0 · UE 5.8.2 / Windows x64
**Unreal Engine 5(UE5)**のBlueprintで、音声解析・再生・表情カーブ適用を分けてリップシンクを接続します。先にプラグインを導入してください。ActorにはLAMAudio2ExpressionComponent、キャラクターメッシュにはAnimation Blueprintを用意し、ARKitカーブまたはVisemeをメッシュに合わせます。
SoundWaveを解析する
「SoundWaveを解析する」へのリンクBeginPlay または任意のイベント → Analyze SoundWave Async(Component, SoundWave, Settings) Completed(Clip) → Play Expression Clip(Clip, StartTime=0) Progress → ロード表示を更新 Failed → Errorを表示 Cancelled → ロード表示を終了通常のmono / stereo SoundWave、8〜192 kHz、最大300秒に対応します。外部WAV / MP3を直接渡すことはできません。UEへインポートしてSoundWaveとして使用します。
CompletedのClip出力を再生ノードへ渡します。他のActorでも再利用する場合はClipをBlueprint変数で保持してください。解析中の中断はCancel Analysisです。同じコンポーネントで新しい解析を開始すると、前の解析はキャンセルされます。
ActorへLAMコンポーネントを追加する · 原寸画像を開く
- AddでLAM Audio2Expression Componentを検索して追加します。
- 追加したコンポーネントをLAMという名前で使用した例です。
撮影 2026-09-30 · UE 5.8.2 · Plugin 1860d0e · Demo 9dee71d · v0.3.0に含まれる操作。
非同期解析のCompletedから再生する · 原寸画像を開く
- 同じLAMコンポーネントとSoundWaveを解析ノードへ渡します。
- Completedの実行線とClip出力を再生ノードへ接続します。
接続の最小例です。製品ではFailed・Cancelled・Progressも処理してください。
撮影 2026-09-30 · UE 5.8.2 · Plugin 1860d0e · Demo 9dee71d · v0.3.0に含まれる操作。
AnimGraphへ表情を適用する
「AnimGraphへ表情を適用する」へのリンク既存のポーズ → Apply LAM ARKit Curves → Output Pose- キャラクターのAnimBPを開きます。
Apply LAM ARKit Curvesを既存ポーズとOutput Poseの間に接続します。- Source Componentに、解析・再生を担当するLAMコンポーネントを指定します。
- Alphaを0〜1で調整します。カーブ名が異なる場合はCurve Profileを設定します。
Source Componentが空欄なら、SkeletalMeshを所有するActorから検索します。複数のLAMコンポーネントを持つActorでは明示的に指定してください。
標準名jawOpenなどと同名のMorph Targetを持つメッシュで利用できます。ボーン駆動のリグでは出力カーブをControl Rigなどへ接続します。プラグインは独自のボーン配置を自動推定しません。
既存ポーズへARKit表情カーブを適用する · 原寸画像を開く
- このサンプルのRef Poseは説明用です。実際には既存のアニメーションポーズを入力します。
- Source Componentに解析・再生用LAMを指定します。空欄なら所有Actorから検索されます。
- 出力をOutput Poseへ接続します。
撮影 2026-09-30 · UE 5.8.2 · Plugin 1860d0e · Demo 9dee71d · v0.3.0に含まれる操作。
再生と状態取得
「再生と状態取得」へのリンクPause・Resume・Stop・Seekは音声と表情を一緒に制御します。一時停止では表情を保持し、停止では100 msで元のポーズへ戻ります。詳細は再生制御を参照してください。
Get Current Expression Frame:時刻、52値、Validity、適用Weight。Get ARKit Curve Value:名前を指定したカーブの推定値。停止フェードのWeightは別扱いです。
接続済みの例
「接続済みの例」へのリンク配布プロジェクトの/Game/Examples/BP_LAMPlaybackは非同期解析と再生の例、/Game/Examples/ABP_LAMCurvesはAnimGraphの例です。後者はテスト用スケルトンで作られているため、自分のAnimBPへノード構成をコピーします。
公開ソースのBlueprint顔デモでは、BP_FaceDemoの02_Analyze_And_Playから接続を確認できます。v0.3.0 ZIPにこのデモ実装が含まれます。デモのバージョン差
保存済みClipを使う(v0.3.0)
「保存済みClipを使う(v0.3.0)」へのリンク収録済み音声はSoundWaveの事前解析でClipアセットを生成・保存できます。ロード済みClipをそのまま再生ノードへ渡し、実行時の解析を省きます。v0.3.0の配布ZIPに含まれる機能です。
最新ソースPlugin 1860d0eではLipsyncでもノードを検索できます。v0.3.0 ZIPではLAMまたは表示名を使ってください。5母音・OculusリグにはApply LAM Viseme Curvesで口のカーブを適用します。
Sequencerとの連携(公開ソース)
「Sequencerとの連携(公開ソース)」へのリンク公開ソースのLAM Dialogueトラックでも、このページのApply LAM ARKit Curves/Apply LAM Viseme Curvesを使います。Sequencer用のPlay Expression Clipイベントは追加しません。対象が複数あるときはトラックのTarget ComponentsとAnimBPのSource Componentを同じLAMコンポーネントへ合わせます。Is Controlled By Sequencerで通常再生の開始を分岐できます。v0.3.0 ZIPには専用トラックはありません。