BLOGブログ

2018.02.07UE4/Audio

[UE4] SimpleSound を使って音をランダムに鳴らす

エンジニアの加藤です。

今回は、SimpleSound という Audio 関連要素について紹介したいと思います。

概要

SimpleSound は、再生のたびに登録された複数の SoundWave の中からどれか 1 つを重み付きランダムで選択して再生する SoundBase クラスです (名前からは挙動が想像しにくいですね……)。

UE 4.16 から追加された Sound Utilities Plugin を有効にすると使えるようになります。記事執筆時点では Sound Utilities Plugin はまだ β 版扱いですのでご注意ください。

作成方法

まず、Content Browser 上で任意の SoundWave を (複数) 選択します。

右クリックし、Create Simple Sound を選択してください
(このメニュー項目が見えない場合は、選択しているものが SoundWave であることと、Sound Utilities Plugin が有効になっていることを確認してください)。

これで SimpleSound が作成されます。

設定方法

作成した SimpleSound をダブルクリックして開きます。

Variations カテゴリの Variations に、SimpleSound 作成時に選択していた SoundWave が設定されていることがわかります。これが再生候補となる SoundWave となります。後から SoundWave を追加・削除することも可能です。

Probability Weight は、ランダム選択時の重みの設定です。この値を高くするほど再生されやすくなります。上の画像の設定の場合、EnterPlayInEditor の方は 4.0 / (4.0 + 1.0) * 100 = 80% の確率で再生されます。

Volume Range は音量の範囲、Pitch Range は音の高さの範囲の設定です。上の画像では、Enter_Play の方の Volume Range が [0.8, 1.0] となっているので、Enter_Play が再生される場合は、元より少し小さい音量で再生される可能性があります。

使用方法

SimpleSound は SoundBase ですので、SoundWave や SoundCue と同じような方法で再生させることができます。

例えば以下の画像のように、AudioComponent の再生対象として SimpleSound を設定することが可能です。

また、やはり SoundWave などと同じように、Content Browser 上で再生ボタンをクリックすることで音の確認ができます。

その他、Unreal Audio Engine を有効にすることで Effect をかけることもできます。

SoundCue との比較

SoundCue の扱いに慣れている人であれば、以下の画像のように、Modulator Node や Random Node を使って SimpleSound と同等のものを実装できることにお気づきかと思います。

しかし、SoundCue で実装した場合は各 Node に設定が散ってしまいますし、再生候補となる SoundWave が増えてくると Node のセットアップ自体が大変になります。

SimpleSound でできる範囲で事足りるのであれば、SoundCue ではなく SimpleSound を使った方が、素早く作成・設定でき、作業効率が向上するかと思われます。

まとめ

地味な機能ではありますが、複数音色のランダム再生は使用頻度の高い処理だと思いますので、上手く活用してみてください。