UE4 Dopplerノードを試してみた
UE4のSound Cueの中にDopplerというノードがあります。
今回はこのDopplerノードを使って見たいと思います。
ちなみに
ドップラー効果(ドップラーこうか、英語: doppler effect)
またはドップラーシフト(英語: doppler shift)とは、
波(音波や電磁波など)の発生源(音源・光源など)と
観測者との相対的な速度の存在によって、
波の周波数が異なって観測される減少をいう。
by wikipedia
救急車のピーポーピーポーとかが、
分かりやすい例だと思います。
準備
では、そのピーポーピーポーを作りましょう。
適当な作曲ソフトで「シーソーシーソー」と打ち込み、
救急車のサイレン音を.wavで書き出します。
書き出しました。
ちなみに作ったものはこんな感じ。
サイン波のシーソーシーソーです。
(モノラル音源です)
プロジェクトを作成する
UE4のプロジェクトを作成していきます。
バージョンは4.16.1を使用します。
テンプレートは使用せず、Blank Projectで
Starter Contentsは無しにして作成します。
作りました。
Sound Cueを作成する
先程作成した.wavファイルをUE4プロジェクト内にインポートします。
インポート完了後、wavファイルを
右クリックからキューを作成を選択します。
.wavファイルのSound Cueが作成されました。
減衰ファイルを作成する
次にサウンドを距離によって音の大きさを変更するために
Sound Attenuation(サウンド減衰)を作成します。
コンテンツブラウザを右クリックから、
Sound→Sound Attenuationを選択します。
作りました。
このファイルを開くと、減衰用のパラメータの変更が可能です。
今回は「ほぼ」デフォルトのままです。
Sound Cueを編集する
作成したSound Cueファイルを開きます。
まずはwaveノードを選択し、
左側のDetatilsタブのLoopingにチェックを入れます。
これでサウンド終了後に自動的に初めから再生されます。
次にOutputノードを選択し、
DetailsタブのAttenuation Settingに
先程作成した、減衰ファイルを入れます。
そしてWaveノードとOutputノードの間に
Dopplerノードをはさみます。
通り過ぎる物体を作成する
別に作成せずとも自分が動けばドップラー効果は
確認できますが、せっかく作ったので手順を書いておきます。
コンテンツブラウザから右クリック
Blueprint Classを選択します。
親クラスはActorクラスを使用します。
作りました。
ブループリントを編集する
作成したActorブループリントを開き、
コンポーネントを追加からAudioコンポーネントを追加します。
AudioコンポーネントのパラメータにSoundというものがあるので、
先程編集したSound Cueファイルを入れておきます。
次に視覚的にわかりやすくするために、
球体のStatic Meshコンポーネントを追加します。
最後にイベントグラフで
このように処理を書きます。
毎フレームY軸に-3ずつ移動します。
これでブループリントの編集は終了です。
レベルにブループリントを配置する
このようにActorブループリントをレベル上に配置します。
Audioコンポーネントに入れたSound Cueが
再生されながら自分に近づいてきて、遠下がっていくと思います。
確認してみる
実行して確認してみましょう。
(パラメータを色々変更しました)
私の調整が下手なせいかイマイチ
ドップラー効果が実感できませんが、
ノードひとつでエフェクトを掛けられるので
非常に面白いと思います。