Unity

【Unity】オンラインFPSゲームの作り方#8【サウンドの実装】

本記事内には、アフィリエイトリンクを含む場合があります

ゲームには、サウンドがとても重要です。

シューティングゲームなら、
銃声が加わると、緊張感と爽快感を味わえるようになります。

オンラインゲームの場合、
サウンドを他のプレイヤーと共有するものとそうでないものを区別する必要があります。

その辺に、注意して実装していきます。

1.サウンドの実装

1-1.音源のインポート

ここで使用する音源は、次のモノを使用させていただきます(すべてフリー素材)。

効果音
銃声:効果音ラボの「拳銃を撃つ」
死亡の音:  〃  の「クイズ不正解」
ボタンクリック:  〃  の「決定、ボタン押下9」

BGM
GameSceneのBGM:DOVA - SYDROMEの「Battle Line」

ぞれぞれmp3でダウンロードできますので、
Assetsフォルダに「Sounds」というフォルダを作り、
そこにファイルをドラッグ&ドロップすればインポート完了です。

1-2.LauncherSceneのサウンド(ボタン押下)

このシーンでは、ボタンに効果音をつけます。

LauncherSceneに「決定、ボタン押下9」ファイルをドラッグ&ドロップします。

「決定、ボタン押下9」というオブジェクトができ、コンポーネントにAudio Sourceがアタッチされたものができます。

デフォルトで「Play On Awake」が有効になっているので、無効にし、
Pitchを1.5に調整しておきます。

それでは、このAudio Sourceを鳴らすためのコードを、
「LauncherManager.cs」に書き込んでいきます。

Unity MethodsのStart()
Public MethodsのConnectToPhotonServer()JoinRandomRoom()
に追記するだけです^^
↓追記する周辺のみ示す

できたら、ゲームを実行してみて音がなるか確認してみましょう。

1-3.GameSceneのサウンド(銃声・死亡・BGM)

「拳銃を撃つ」、「クイズ不正解2」、「Battle Line」をGameScene上に、ドラッグ&ドロップします。

それぞれのAudioSourceをもったオブジェクトができます。
(見た目を整理するため、空のGameObjectをSoundsと名付けて作成し、その中にそれらのオブジェクトを入れます)

「Battle line」はBGMなので、
「Play On Awake」、「Loop」を有効とし、
それ以外の効果音は無効にします。

Volumeは、お好みに調整します。
(BGMは0.1、銃声は0.8がちょうどよい)

サウンドを鳴らすために、スクリプトによる制御を行っていきます

・・・とその前に、

本SceneにはCameraを削除しているので、
サウンド鳴らすためのAudioListenerというコンポーネントが存在しない状態です。
(PlayerPrefabのCameraがもつAudioListenerも無効にしている)

したがって、「Sounds」と名付けた空のGameObjectに、
Audio Listenerというコンポーネントをアタッチしておきましょう。

それでは、
効果音を鳴らすためのコードを追記していきます。

銃声(拳銃を撃つ)は「Shoot.cs」で、死亡(クイズ不正解2)は「TakingDamage」で制御します。

サウンドはローカルだけで鳴らすモノか、
全ユーザーに鳴らせるモノかによって、記載を変えなければいけません。

銃声は全員に共有しなければ、
1人でプレイしてるような寂しさを覚えてしまいますよね^^;

なので、shootSoundはRPCメソッドとして渡せばOK!

↓「TakingDamage」は追記する周辺のみ示す

 

HPがゼロになったら全員に知らせたいので、
すでにRPCのメソッドの処理の一環に「dieSound.Play()」を入れます。

 

以上で、ゲームにサウンドが実装されたはずです!

Editorで問題なければ、
相手プレイヤーとのサウンドの共有がされるかに注目し、
実際にビルドして、片方の音楽をミュートしたりしながら、確認してみましょう。

というわけで、
「オンラインFPSゲームを作ってみよう」シリーズは、ひとまず完結!と。

今後もUnityでゲーム開発するノウハウを発信していきますので、
本ブログを何とぞよろしくお願いします!!

【Unity】オンラインFPSゲームの作り方【モバイル対応”ジョイスティック&ボタン”の実装】先日、オンラインFPSゲームの作り方を解説しましたね。 それはパソコンのキーボードとマウスクリックによる操作で遊べるモノでした。 せ...
【Unity】オンラインFPSゲームの作り方#9【銃撃エフェクト(パーティクル)の実装】当初、オンラインFPSゲームの作り方#1~8で終える予定でしたが、 さらにテクニックの紹介を追加していくことにしました^^ 単発...
ABOUT ME
いなも@システマライフハッカー
”仙豆”を開発することを夢見て、健康食品会社で働いていたものの、2016年に出会ったロシアの武術”システマ”こそ、その糸口があると感銘し、勝手にシステマ普及活動を始める。 一方で、クリエイティブなモノ作りが好きで、DX社会で楽しみを見出せる"Unity”を活かして、”スマートかつ快適な暮らし”のヒントを発信している。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA