BGMを流せるようにしたらテンションが爆上がりした。【ゲーム制作記1】
はじめに
バンタンゲームアカデミーに入学して早2週間。
学校では専攻ごとに複数回のオリエンテーションや導入授業が実施され。初回の授業は来週からとなっている。
だが、先輩から聞いた話によると、「初回授業をやったあとすぐにゴールデンウィークに入ってしまってもどかしかった」と……?
ゲーム作り、待ちきれない!!(相当なせっかちです笑)
ということで、もう少しの間独学でゲーム制作をします。
今回は、人生初Unity内でBGMを流してみたので、そのやり方を復習していきます。
侍エンジニアブログの以下の記事を参考に制作しました。
やりたかったことが本当にわかりやすく解説されていて、エラーなし、一発でできました! ありがとうございました。
動作環境は
macOS
Unity 2021.3.0f1
です。
よろしくお願いします!
やりたいこと
①ただ普通に、BGMを流す
②シーン遷移してもBGMが途切れないようにする
今回制作しているゲームの中で、シーンごとにBGMを変えたいところと変えずに連続で流し続けたいところがあったので、上記の2点の解決を目指しました。
①ただ普通に、BGMを流す
空のオブジェクトを作成
オブジェクトを選択→Inspector画面下部の[Add Component]をクリック
「AudioSource」を探してアタッチ
プロパティ一番上にある[AudioClip]にBGM音源を紐付け
完成!
その下の細かく調整できるところのうち、一旦わかっているのが
PlayOnAwake→読み込まれた時に音が鳴る
Loop→再生し終えるとループする
Volume→音量
SpatialBlend→0にすると音がどこにいても一定に聞こえる2D音声になる
他の項目もそのうちわかるようになっていきたいです!
②シーン遷移してもBGMが途切れないようにする
やり方については、参考にさせていただいたサイトを丸パクリさせていただいたので割愛します。コードも紹介されているので、同じことをやりたい方はぜひ見てみてください!
サイトを見たときの私▼
「……ほうほう。DontDestroyOnLoadっていうので画面遷移してもオブジェクトが壊れないんですねえ!?」
「できた!……けど、アレ。これ止めたいときどうすればいいの!?」
ということで、自己流の解決方法がこちら。
GameObject obj = GameObject.Find ("BGM");
Destroy (obj);
BGMを流しているGameObjectには「BGM」と名前をつけていたので、遷移後のシーンのスクリプトに上記のコードを追加。
「BGM」という名前がついたGameObjectを探してもらって、それを破壊してもらう。といったコードだと認識しています。(解釈が間違っていたら申し訳ありません!)
最後に
BGMを鳴らすと、一気にゲームのワクワク感やおもしろさが増える感じがして、音の大切さを改めて実感しました……! 次回以降の制作でも活かしていきたいです!
最後まで見ていただき、ありがとうございました!
この記事が気に入ったらサポートをしてみませんか?