ども!カトサンラボのかとこうです。
この記事では、
「Unityで2Dランゲームを30日間作った記録」
の27日目の作業について紹介しています。
ランゲームとは、
「走っているキャラクターが障害物を避けたりしてゴールを目指す」
というゲームです。
そのゲームを作るために、
毎日1時間くらい作業をしていて、
今回の記事で27回目となります。
実際に行った27日目の作業を
動画でも公開しております。
動画で見たい場合には、下の動画を
参考にしてみてくださいね。
27日目に行ったこと:BGMのダウンロードとBGMを鳴らす機能の作成
27日目の作業は、BGMを導入するために、
BGMのダウンロードとインポート、
BGMを流すための機能の作成、
シーン毎に切り替えてBGMを
鳴らす処理を作る、
などを行いました。
使用しているパソコンやアプリなど
機材
・Mac Book Air 2019年モデル(最小構成)
・iPad Pro(ホームボタンのついてる古いやつ)
・Apple Pencil
アプリ・ソフト
・素材画像の作成:ibisPaint
・画像加工:AFFINITY Photo
・背景画像やロゴ作成:InstaLogo
・Unityバージョン:2019.4.1f1
BGMをアセットストアからダウンロードした
Unityアセットストアで無料の
BGM素材を検索して、
ダウンロードしました。
最初にダウンロードしてみたのは、
「Arcade Game BGM #3」
というアセットです。
しかし、ダウンロードして
インポート後にBGMを
聴いてみたところ、
自分のゲームのイメージと
大分違っていたので、
他のBGMアセットを探すことに。
そして、次にダウンロードしたのが、
「Casual Game BGM #5」
というアセットになります。
このBGMアセットはイメージに
近いBGMが揃っていたので、
とりあえず使うことにしました。
スクリプトからBGMやSEを鳴らしたり、変更したりできるようにした
使うBGMをとりあえずは決めたので
次はBGMを鳴らすための処理を
作っていきました。
まず、Unityのヒエラルキーに
空のオブジェクトを作り、
「SoundManager」という
名前をつけます。
そして、SoundManagerに
「Audio Source」という
コンポーネントを2つ付けました。
2つ付けたのはBGM用とSE用ということです。
次に、プログラムでBGMを流したり
シーン毎に変更したりするために、
C#スクリプトを作りました。
C#スクリプトにBGMを鳴らす
コードや、SEを鳴らすコードなどを
書いてプログラムの処理を作成します。
最初にBGMのAudio Sourceと
SEのAudio Sourceを設定する
コードを書いて、
切り替えるBGMとSEのリストを
列挙型で書いていきました。
次に、どこからでもBGM用の
C#スクリプトを使えるように
するためのコードと、
シングルトンというものを行う
コードを書きました。
そして、BGMとSEを鳴らすための
関数をそれぞれ作ったらとりあえず
スクリプトは完成です。
次は、Unityエディタに戻り、
SoundManagerに今作った
C#スクリプトを貼り付けます。
そして、インスペクターの
BGMリストを4に設定し、
そこへアセットストアから
ダウンロードしたBGMを
ドラッグ&ドロップで設定。
SEもリストの値を4に設定し、
前もってダウンロードして
おいたものを設定していきました。
SEは「無料効果音で遊ぼう!」と
いうサイト様からダウンロードして
使わせて頂いております。
そして、各シーンに配置するために
プレハブ化を行っておきました。
各シーンでBGMを変更して鳴らすようにした
次は、シーンが切り替わった時等に
BGMを鳴らすための処理を作りました。
Unityのヒエラルキーに空の
オブジェクトを作り「BGM」と
名前を変更。
BGMを鳴らすための
C#スクリプトも作りました。
C#スクリプトを作ったら、
ヒエラルキーのBGMに貼り付けて、
各シーンに配置できるようにプレハブ化をしました。
そして、シーンに置いた時に
どのBGMを鳴らすのかを
インスペクターで設定していきます。
全てのシーンにSoundManagerと
BGMを配置できたら完了です。
●まとめ:27日目の成果
できたこと
・BGMをアセットストアからダウンロードしてインポートした。
・BGMとSEを鳴らすためのオブジェクト作成とスクリプト作成や設定を行った。
・シーン毎にBGMを鳴らすためのプレハブを配置して、シーンによってBGMが切り替わるようにした。
27日目は、BGMやSEを鳴らすための
処理を作り実装していきました。
まず鳴らしたいBGMの音源を
探してきてダウンロードと
インポートを済ませる。
そして、BGMとSEを切り替えたり
鳴らすためのプログラムを作り、
実際にBGMを流すためにシーン毎に
必要なオブジェクトを配置していきました。
BGMについてはシーンによって
違うBGMを流すようにすることが
できたので良かったです。
BGMを変えたい場合には、
音源ファイルを差し替えるだけで
切り替わるのも楽ですね。
次回はジャンプした時などに
SEを鳴らす処理を作っていく予定です。
よかったらまた見ていただけると嬉しいです。
ここまで読んでくれてありがとうございました!