SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

速習 Unity 2Dゲーム開発

速習 Unity 2Dゲーム開発
~第12回 BGMや効果音を鳴らす

速習 Unity 2Dゲーム開発 第12回

  • X ポスト
  • このエントリーをはてなブックマークに追加

効果音を鳴らす

 続いてキャラクターがジャンプした際の効果音をつけていきます。ジャンプ用に「jump.mp3」という素材を用意している想定で進めます。

Soundsフォルダーに追加

 BGMの場合と同様、Soundsフォルダーにjump.mp3をドロップします。

jump.mp3をドロップ
jump.mp3をドロップ

 Inspectorウィンドウの3D Soundをオフにします。

キャラクターに追加

 Sceneウィンドウのキャラクターにjumpをドロップします。Sceneウィンドウではドロップしづらい場合はHierarchyウィンドウのcharactorでも構いません。InspectorウィンドウでAudio Sourceコンポーネントが追加されていることを確認します。

Inspectorウィンドウを確認
Inspectorウィンドウを確認

 「Play On Awake」チェックボックスのチェックを外します。これはコンポーネントが読み込まれた際に自動で再生する設定です。BGMのような場合はチェックした状態で構いませんが、効果音のような特定の操作をトリガーとするような場合はチェックを外します。

Play On Awakeのチェックを外す
Play On Awakeのチェックを外す

任意のタイミングで効果音を鳴らす

 ジャンプしたタイミングで音声を鳴らす場合、プログラムで制御します。CharactorManager.csをエディタで開き、OnCollisionExit2Dメソッドを以下のように修正します。

プログラムから音声を鳴らす
<pre class="prettyprint">
/// <summary>
/// 接触状態から離れた
/// </summary>
/// <param name="col"></param>
public void OnCollisionExit2D(Collision2D col)
{
    if (col.gameObject.name == "ground" || col.gameObject.name == "floor")
    {
        this._collisionList.Remove(col.gameObject);

        // 接触しているGameObjectが0の場合はジャンプしていると判定してアニメーションを開始する
        if (this._collisionList.Count == 0)
        {
            this._isJumping = true;
            this.audio.Play();
        }
    }
}

 GameObjectに追加した音声はこのようにaudio.Playメソッドで鳴らすことができます。

 対象となるGameObjectが一つの音を持つ場合は直接対象となるGameObjectに設定することも可能ですが、効果音が複数必要な場合や、GameObjectがたくさんあり、どのGameObjectに音声を紐づけたか分からなくなる場合などはSoundManagerのような管理クラスを検討する方が良いでしょう。

 最後にデバッグを行い、キャラクターのジャンプ時に効果音が再生されることを確認します。

それぞれの音量を調整する

 実際に実行してみるとBGMの音量が大きすぎて、効果音が聞こえ難かったのでボリュームを調整します。利用する素材によっては逆の場合などもあるでしょう。

 Hierarchyウィンドウでbgmを選択します。

Hierarchyウィンドウでbgmを選択
Hierarchyウィンドウでbgmを選択

 Volumeの値を1から0.7に変更します。

Volumeの値を1から0.7に変更
Volumeの値を1から0.7に変更

 デバッグしてBGMの音量が小さくなっていることを確認します。大きすぎる場合はもう少し小さい値にするなど調整すると良いでしょう。

まとめ

 Unityでは非常に簡単に音声ファイルが扱えることがお伝えできたでしょうか? 音声を鳴らすことで、ゲームの完成度がぐっと高まりますので、ぜひ、ゲームに音声をつけてみてください。

 次回は、一面から二面へとシーンを切り替える方法を紹介します。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
速習 Unity 2Dゲーム開発連載記事一覧

もっと読む

この記事の著者

西村 誠(ニシムラ マコト)

 Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8398 2015/03/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング