コンテンツにスキップ

音声・表情の再生制御とイベント

v0.3.0 · UE 5.8.2 / Windows x64

LAMAudio2ExpressionComponentは音声と表情の同期を担当します。既定のPlayback Settingsを設定してPlay Expression Clipを呼ぶか、呼び出しごとにPlay Expression Clip With Settingsへ設定を渡します。

操作 動作
Pause / Resume 音声、表情、フェードの状態を保持して一時停止・再開
Stop 再生を終了し、100 msで元の表情へ戻す
Seek 同じPlayback Idで位置を変更。一時停止状態を維持
Fade Out And Stop 音量を線形に下げて停止
Set Volume / Set Muted 再生中の音量・ミュートを変更。ミュート中も表情と位置は進む

停止後のSeekは新しい再生を開始します。速度は1倍、ループは対象外です。ループ指定のSoundWaveは拒否されます。

PキーからPause、RキーからResume、SキーからTime Seconds 1.0のSeekを呼ぶBlueprint。

Pause・Resume・Seekの接続例 · 原寸画像を開く

  1. PからPauseを呼び、一時停止します。
  2. RからResumeを呼び、再開します。
  3. SからSeekを呼び、1.0秒の位置へ移動する例です。

撮影用Blueprintのキー割り当てです。Actorが入力を受け取る設定にし、同じLAMでClipを再生してから操作します。デモのキー割り当てとは異なります。

撮影 2026-09-30 · UE 5.8.2 · Plugin 1860d0e · Demo 9dee71d · v0.3.0に含まれる操作。

Output Submixが未指定なら元音声・SoundClass・エンジンの設定を継承し、指定すると主出力を置き換えます。Additional Submix Sendsは並列の追加送信です。レベルは0〜1、同じ送信先を複数指定した場合は最後を採用します。

Set Output Submix・Set Submix Send・Remove Submix Sendは再生中にも使え、次回の既定設定にも反映されます。SoundWaveと解析Clip自体は変更しません。同じClipを異なるコンポーネントで別の出力先へ再生できます。同じ親Submixへ複数経路が合流すると音量が加算されます。

Inherit SoundWave Sendsは既定で有効です。Sound Class OverrideとConcurrency Settingsは未指定なら元音声から継承します。

Playback SettingsのOutput Submix、Additional Submix Sends、Sound Class Override、Volume 1.0、Muted無効。

コンポーネントの出力先と音量 · 原寸画像を開く

  1. Output Submixと追加送信を設定します。Noneは元音声・エンジンの設定を継承します。
  2. 撮影例のVolumeは1.0、Mutedは無効です。

撮影 2026-09-30 · UE 5.8.2 · Plugin 1860d0e · Demo 9dee71d · v0.3.0に含まれる操作。

Playback Modeは既定でTwo Dimensionalです。Three DimensionalではAttachment、Socket、Transform、Attenuation Settingsを指定できます。Attachment未指定なら所有ActorのRootへ接続し、未登録・別World・存在しないSocketはエラーです。

Play When Game Pausedは既定でfalseです。有効時はゲーム停止中も再生できます。メッシュのAnimBPも更新するには、SkeletalMeshComponentのTick Even When Pausedを有効にします。

Playback ModeのTwo DimensionalとThree Dimensionalの選択肢、Attachment、Socket、Attenuation Settings。

Playback Modeと3D音声の設定箇所 · 原寸画像を開く

  1. Playback ModeでThree Dimensionalを選択します。撮影時は選択肢を開いた状態です。
  2. TransformとAttenuation Settingsも用途に合わせて設定します。AttachmentとSocketはメニューを閉じると確認できます。

撮影 2026-09-30 · UE 5.8.2 · Plugin 1860d0e · Demo 9dee71d · v0.3.0に含まれる操作。

イベント 発火条件・用途
On Playback Started 再生が受け付けられたとき。Seekでは再通知しない
On Playback Finished 音声の自然終了のみ。次の台詞へ進む用途
On Playback Ended 受け付け済み再生の終了時に一度。ReasonでCompleted / Stopped / Replaced / Interrupted / Failedを区別
On Playback Failed 入力不正・再生拒否など。Error.Code / Error.Messageを確認
On Playback State Changed Starting / Playing / Paused / FadingIn / FadingOut / Stopped / Failed

通知にはコンポーネント内で単調増加するPlayback IdとClipを含みます。イベント内で次の再生を始める場合も、現在のClipを再取得せず、イベント引数で対象を判断してください。Get Playback Infoで状態、位置、長さ、進捗を取得できます。

事前検証で拒否された要求はFailedだけを通知し、既存の再生を維持します。再生開始後はState Changed → Ended → Finished(自然終了)またはFailedの順です。Actor破棄・PIE終了中は通知を抑止します。自然終了は元音声の終端で、リバーブなどの残響終了は待ちません。

事前解析したClipの再生(v0.3.0)

「事前解析したClipの再生(v0.3.0)」へのリンク

プラグイン1f06ac8では、保存済みClipを同じ再生ノードに指定できます。先にClipと音声をロードし、ストリーミング音声にはPrime Soundを早めに呼びます。解析待ちは省けますが、音声出力までの遅延をゼロにするものではありません。v0.3.0の配布ZIPに含まれます。

Sequencerとの連携(公開ソース)

「Sequencerとの連携(公開ソース)」へのリンク

公開ソースのLAM DialogueはLevel Sequence Playerで再生・一時停止・停止を操作し、音量はSequencerで設定します。このページのPlayback Settingsを継承せず、通常再生イベントも発火しません。制御取得時は通常再生をInterruptedで終了し、管理中の新規Clip再生・ライブ開始を拒否します。解除後も自動再開しません。BlueprintのIs Controlled By Sequencerで分岐できます。v0.3.0 ZIPには未収録です。

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