UE4初心者が頑張ってるブログ

Unreal Engine4を使用した開発メモ、及びそれに関連することについて不定期に書いています。

UE4 音量調節のオプションメニューを作る

Unreal Engine 4 (UE4) Advent Calender 2018」の7日目の記事です。

qiita.com

 

今回の記事はゲーム内の音量を Widget で制御してみようというものです。

オプション画面とかをしっかりと作りたいのであれば、

このあたりは抑えておきたいですね。

 

ではやっていきましょう。

 

準備

今回は UE4 4.21.0 を使用しています。

f:id:MozPaca:20181130160854p:plain

 

(4.21.1 が来てるだろって?その前に書き終わったんだもの!)

 

First Person のテンプレートを使用し、

Starter Contents 有りでプロジェクトを作成します。

f:id:MozPaca:20181130160918p:plain

 

プロジェクトが作成できました。

f:id:MozPaca:20181130161025p:plain

 

また、今回は BGM を予めインポートしておきました。

こちらのアセットを使用しました。

f:id:MozPaca:20181130161222p:plain

 

Sound Class を作成する

音量調節するものを細分化するため、

Sound Class を使用します。

コンテンツブラウザから右クリック

Sound→Sound Class を選択します。

f:id:MozPaca:20181130163430p:plain

 

このような感じに名前をつけました。

f:id:MozPaca:20181130163600p:plain

 

作成した SC_Master の子として SC_BGM と SC_SE を作成します。

実際にはもっと複雑になるかと思いますが、

説明が面倒くさいので2つのみにします。

(Master→Voice→アナウンス用/キャラクター用とかになると思う)

f:id:MozPaca:20181130163626p:plain

 

Sound Class の細かい使用方法については

こちらを参考にしてください。

mozpaca.hatenablog.com

 

使用する Sound Cue に Sound Class を割り当てる

作成した Sound Class を Sound Cue に適応していきます。

 

先程紹介したアセットの中に入っているものを

BGMとして使用します。

その中の Sound Cue を開きます。

BGM の Cue には SC_BGM を割り当てています。

f:id:MozPaca:20181130163904p:plain

 

SE に使用するのは First Person テンプレートの銃の発射音です。

SE は Sound Cue になっていなかったので、

右クリックから Sound Cue にしておきます。

f:id:MozPaca:20181130164221p:plain

 

BGM と同じように Sound Cue に Sound Class を適応します。

f:id:MozPaca:20181130164303p:plain

 

※一応 Wave にも Sound Class を設定することもできますが、

 Wave をそのまま使うことはあまりないため Cue にしました。

 

ThirdPersonBP/Blueprints/FirstPersonCharacterを開き、

発射音を再生している処理を Wave 再生から Cue 再生のものに差し替えておきます。

f:id:MozPaca:20181130164434p:plain

 

Sound Mix を作成する

後ほど使用する Sound Mix を作成します。

コンテンツブラウザを右クリックから

Sound→Sound Mix を選択します。

f:id:MozPaca:20181130173007p:plain

 

適当に Master と名前をつけておきます。

f:id:MozPaca:20181130173456p:plain

 

作成した Sound Mix を開き、

使用する3種類の Sound Class を適応します。

f:id:MozPaca:20181130173625p:plain

 

BGM を再生する

準備がある程度整ったので、BGM の再生処理を書きます。

レベルブループリントを開いてください。

f:id:MozPaca:20181130164747p:plain

 

Event Begin Play から Play Sound 2D に処理を通し、

Sound には Sound Class(SC_BGM) を適応した Sound Cue を割り当てます。

f:id:MozPaca:20181130164827p:plain

 

プレイすると BGM が鳴っているのが確認できると思います。 

 

 

Widget を作成する

音量調整を行うための Widget を作成します。

コンテンツブラウザを右クリックから

User InterfaceWidget Blueprint を選択します。

f:id:MozPaca:20181130173816p:plain

 

このように名前をつけました。

f:id:MozPaca:20181130173941p:plain

 

作成した Widget を開き、このように Text と Slider を並べます。

(背景は Background Blur と Border でコネコネしてます)

f:id:MozPaca:20181130174021p:plain

 

デザイナー画面での編集はひと段落したので、

グラフ画面に切り替えます。

 

 

ここでいくつかの処理を作成します。

基本的には Slider の値が変動した場合、

その値を変数に格納→Widget を取り外す際に更新といった処理になります。

 

On Value Changed のイベントは Slider のイベントボタンから出すことができます。

Sound Mix と Sound Class の設定もここでやっています。

f:id:MozPaca:20181130180349p:plain

 

MasterVolume などの変数は初期値を0.5にしています。

 

細かい画像

f:id:MozPaca:20181130180405p:plain

 

f:id:MozPaca:20181130175546p:plain

 

f:id:MozPaca:20181130175557p:plain

 

f:id:MozPaca:20181130174803p:plain

 

Slider のバインドを作成する

再びデザイナー画面に切り替えます。

Slider の Value のバインドを作成します。

f:id:MozPaca:20181130175653p:plain

 

先程作成していた変数をそのまま Return Value に繋ぎます。

f:id:MozPaca:20181130175755p:plain

 

BGM と SE も同様にバインドを作成しておきます。

f:id:MozPaca:20181130180500p:plain

 

f:id:MozPaca:20181130180509p:plain

 

Widget を取り付ける処理を書く

レベルブループリントを開き処理を追加します。

Event Begin Play で Widget の生成を行い、

あとは付けたり外したりしてるだけですね。

f:id:MozPaca:20181130174542p:plain

 

確認してみる

Slider をずらし Widget を取り外すと

音量が変化していると思います。

www.youtube.com

 

明日は T_Sumisaki さんの記事です。