85.アイテム取得時の効果音を実装してみよう
😺では、前回までにBGMの実装方法について解説したので今回からゲームの様々な効果音の実装方法について解説していきます。
このページではアイテムを拾った時の効果音を実装していきます。
①アイテムを拾った時に効果音を出す|実践
まずはアイテムを拾った時の効果音から実装していきます↓
https://youtu.be/7m7lgigpyqk
今回もサードパーソンテンプレートプロジェクトを使用していきます。
https://scrapbox.io/files/65ce7d572c0c220025629bbd.jpg
Blueprintsフォルダを作成して、右クリック > ブループリントクラス > Actorで
「BP_Item」というブループリントクラスを作成します。
https://scrapbox.io/files/65ce7d7319c247002692281f.jpg
今回「エンジン」フォルダの中のスタティックメッシュを使用するので設定 > エンジンのコンテンツを表示させておきます。(表示させておくとエンジンフォルダのアセットを選択できるようになります)
https://scrapbox.io/files/65ce7d80634dd60024d11cce.jpg
BP_Itemを開いて、StaticMeshコンポーネントを追加します。SM_Cube_01を選択します。
https://scrapbox.io/files/65ce7d9285da9a0024aa5e15.jpg
レベルに追加しておきます。
https://scrapbox.io/files/65ce7da45812f7002552e25a.jpg
🐱ではアイテムの効果音を用意して、アイテムを拾った時に効果音を鳴らす音を実装していきましょう。
今回は効果音ラボさんの効果音を使用させて頂きます。効果音ラボのボタン・システム音にアクセスしてもらって「決定ボタンを押す32」をダウンロードします。他の好きな効果音でも構いません。
https://scrapbox.io/files/65ce7db5e9f5100024dae5c5.jpg
mp3からwave形式に変換する必要があるのでCloudConvertにアクセスして、ダウンロードした効果音をドラッグ&ドロップしてWAV形式に変換してダウンロードします。
https://scrapbox.io/files/65ce7e7dcb9c1d00276a0246.jpg
そしたらAudioフォルダを作成して、wav形式になった音源をUE5エディタにドラッグ&ドロップで追加します。
https://scrapbox.io/files/65ce7eb3ed206b0023ed66b0.jpg
Audioフォルダで右クリック > サウンド > サウンドキューを作成して、名前を「A_GetItem」とします。
https://scrapbox.io/files/65ce7ec00d7c86002429ccd3.jpg
A_GetItemのサウンドキューを開いて、WavePlayerとModularノードを追加します。
https://scrapbox.io/files/65ce7eccdeb1aa00259ae8eb.jpg
WavePlayerノードを選択してSoundWaveに「決定ボタンを押す32」を設定します。
https://scrapbox.io/files/65ce7ed5c296a900255f2806.jpg
次にModularノードを選択してPitchをそれぞれ0.9と1.1にします。
https://scrapbox.io/files/65ce7ee1c607870024f11347.jpg
Modularノードとは?
Modularノードとはランダムなピッチ(音の高さ)と音量で再生させるノードです。なのでPitchMinとMaxの間で毎回ランダムな音の高さが変更されます。音量も同じく毎回ランダムになります。
再生して問題ないか確認しましょう。Modularノードを使用しているので、毎回若干ですが音が変化します。
https://scrapbox.io/files/65ce7f38832e620024bb62bf.jpg
🐱このようにサウンドキューアセットを使用する事で音に変化を加える事ができます。音を鳴らす際はサウンドウェーブをそのまま使用しても良いですが、音自体に変化を加えたい時や様々な場面で同じ音源を使用する場合にはサウンドキューアセットを作成する事をおすすめします。
では今度はBP_Itemを開きます。
https://scrapbox.io/files/65ce7f46ca852100255a1436.jpg
StaticMeshを選択してコリジョン > コリジョンプリセットをOverlapAllにしておきます。
https://scrapbox.io/files/65ce7f65f253600025ccbe7e.jpg
StaticMeshを右クリック > イベントを追加 > OnComponentBeginOverlapを追加します。
https://scrapbox.io/files/65ce7f7240de8e0024dc7b0c.jpg
イベントグラフに追加されたOnCmponentBeginOverlapからCastToBP_ThirdPersonCharacterを作成します。
https://scrapbox.io/files/65ce7f81832d20002596c291.jpg
その後にSpawnSoundatLocationノードでSoundにA_GetItemを設定して、最後にDestroyActorを作成します。
https://scrapbox.io/files/65ce7f9119616a0027806f1f.jpg
音の減衰設定は省きます
なお、今回減衰を設定して3Dサウンドとして音を鳴らすための作業は省略して、2Dサウンドとして効果音を鳴らします。今回のように減衰を設定していない場合の音はどこで鳴らそうが音量は左右対称に一定で聞こえるのでLocationピン(音を鳴らす場所)は0,0,0のままで良いです。減衰を音に設定した場合はLocationから例えばGetActorLocationノードを繋げると、ちゃんとアイテムを拾った場所から音が聞こえるようになります。
🐱減衰を設定した効果音については次回実装していきます!今回はシンプルな手順にしました。
最終的にBP_Itemのノードはこのようになりました↓
https://scrapbox.io/files/65ce7fc2d5cfbc00254b1d54.jpg
BP_Itemを何個か複製して配置しておきましょう。
https://scrapbox.io/files/65ce7fddec28a700235b9716.jpg
プレイしてみましょう。アイテムを拾った時に効果音が鳴るようになりました。なおModularノードでピッチや音量をランダムにしてあるので若干音が毎回違うのがわかります。
https://youtu.be/7m7lgigpyqk
これで以上です。