質問:プロジェクト設定のAllow Virtualized Soundsについて

プロジェクト設定のAudioの中に Allow Virtualized Sounds という項目があるのですが
こちらの機能のついて教えて頂けませんでしょうか?

こちらにマウスカーソルを合わせると Allows Sound to play at 0 volume と表示されるので全体に適用するバーチャルボイスのようなものかと思ったのですが、どうやらそうではないようです。

距離減衰でSoundをFallOffさせてもwaveInstanceやAudioSorceは0に変化しまして、
Allow Virtualized Soundsのチェックあり無しで結果が変わりませんでした。

現状困ったことがあるわけではないのですが、機能を把握しておきたく質問をさせて頂きました。

宜しくお願い致します。

この設定を使用したソースコードの注釈として以下の内容が記載されています。
エンジンのソースコードを直接見ることができるのであれば、USoundWave::Parse()にこの機能のコメントに関する記述を見ることができます。

For now, we must virtualize sounds if we are supposed to handle subtitles, because otherwise the subtitles never play.
That needs to change in the future, because there are still reasons a sound (and thus its subtitle) may not play.
But for now at least that makes it possible handle virtualizing properly.

(注釈)
今のところ、字幕を使用する場合はサウンドを仮想化する必要があります。そうしない場合、字幕は決して再生されないからです。それは音(字幕)がまだ再生されない理由により、将来的に変更を行う必要があります。
しかし、今は少なくとも適切に仮想化を処理することを可能にします。


上記の文章だと少し分かりにくいですが、要約すると「Volumeが0だとWaveInstance自体の再生を行わないところを強制的に再生する」ものです。加えて、この機能は「字幕機能に付随するSoundを再生する時」にのみ効果を発揮します。

通常、字幕機能を使用すると字幕UI+Sound再生が行われますが、字幕機能に付随するSound(DialogueWaveに登録されているSoundWave)のVolume指定が0の場合、Sound再生が行われない+字幕UIも表示されません。(私の推測ですが)これを補完するための仕組みとして、 AllowVirtualizedSoundsのフラグが用意されており、フラグが有効の場合はVolume指定が0でもSound再生が実行されて字幕UIも表示されます。私はサウンドに関する深い知識を持ち合わせていないため、仮想化したサウンドをVolume 0でも再生する必要がある理由をよく把握していませんが、少なくともそういった意図の元に作成されているように見受けられます。


もしこの機能に関する検証を行うのであれば、以下のドキュメントからスタートして字幕機能を使う環境を構築する必要があります。また、字幕として使用するDialogueWaveのSoundWaveアセットのVolumeを0に設定し、Virtualize when Silentにチェックを入れる必要があります。留意すべき点として、“音が聞こえる” ≠ "Soundが再生する"ということに注意してください。コンソールコマンド"stat sounds"で確認することができますが、この機能を有効にした時は「音は聞こえないがSoundが再生している」という状態になります。

1.ダイアログの音声の作成

少し長くなりましたが、コメントにも記載されているように将来的に変更される可能性があるので、機能への理解の参考程度に留めて頂けると良いかと思います。

Pier Pop様

いつも有難うございます。記述内容はミドルウェアなどてもよく見られる
バーチャルボイスのことだと思われます。恐らく。通常は処理負荷軽減のため
音量が0だと再生をストップすると思うのですが

・サウンド側をトリガーとして何か処理をする場合(WAV内のマーカー等)
・インタラクティブミュージックのような同期を必要とするサウンド
・セリフなど時間進行とシンクロが取れていないといけないサウンド

では音量0でも再生そのものは進行していないと不都合が
出てしまいますからそのための機能だと思われます。・・・・がしかし!

ここで1つ疑問があります。SoundWave内にも似たような機能があります。
こちらの機能でも同じことが可能だと思うのですが、あえてプロジェクト設定の
Audioの中にもこの項目があるというのは何か特別な意図があるのでしょうか?

ちなみに

SounaWaveの「Virtualized Sounds」だと音量0でも再生は進行しており
プロジェクト設定の「Allow Virtualized Sounds」だと音量は0でも再生そのものは進行していないようです。

もしも何か分かりましたら教えて頂けますと幸いです。今すぐ困ったことが
あるわけではないのですが、学生に教える時などにどう教えたら良いのか
悩んでおります。

宜しくお願い致します。

サウンドに関する詳しい情報をご教授頂きありがとうございます。
もう少し具体的な例で書くと、「字幕用サウンド(バーチャルボイス)を強制的に再生させるためのフラグ」です。字幕付きのサウンドを再生する際とき、字幕に付随するSoundWaveが0であれば字幕に付随するSoundWaveは再生されませんが、「Virtualized when Silent = true」かつ「Allow Virtualized Sounds = true」であれば、字幕に付随するSoundWaveは再生されます。「Virtualized when Silent = true」かつ「Allow Virtualized Sounds = false」であれば、字幕に付随するSoundWaveは再生されません。また、「Virtualized when Silent = false」かつ「Allow Virtualized Sounds = true」であっても、字幕に付随するSoundWaveは再生されません。
つまり両方のフラグがtrueのケースでのみ、字幕に付随するSoundWaveが0の場合でもバーチャルボイスを再生することができます。字幕に付随しないSoundWaveに関しては、「Allow Virtualized Sounds」の設定に影響されず、「Virtualized when Silent」の設定が影響します。
つまり「Allow Virtualized Sounds」の設定は、項目名からだけでは推測しづらいですが、Subtitles(字幕)に関連するサウンド再生時のみ効果があります。この機能を理解するにおいて、字幕機能やSoundWaveの理解が必要なので、理解してもらうのには少し時間がかかりそうに思えます。
ご不明点がありましたらお気軽にご質問ください。

大変分かりやすい説明有難うございます!頂いた説明で理解できました。確かに項目名からだけでは推測が難しいですね。ですが一度分かってしまえば何ということはないので、こういった知識UE4界隈で今度どんどん共有して参りたいと思います。