1224 SEを鳴らそう! - mishimatsu/AdventCalendar2014 GitHub Wiki

前回は、ボールが当たった場所にエフェクトを表示しました。 今回は、SE(Sound Effect)を再生したいと思います。 SEのAssetは、前回追加済みだと思います。 まだ、Asset Storeから取得していない人は、前回の記事を参考にして、UnityへAssetを追加しておきます。 Free SFX Package SEを再生するには、いくつか手順があります。 1.AudioSourceの追加 2.スクリプトでSEの再生 AudioSource(音源)の追加 HierarchyのBallを選択。 Inspectorの一番下にあるAdd Componentをクリック Audio Sourceを選択。 これで、BallにAudio Sourceが追加されます。 鳴らすSEを選択しましょう。 鳴らすSEを決定。 今回は、Xylo_13を選択してみました。 SEを鳴らそう! BallスクリプトにSEを鳴らす処理を追加します。 50行目 audio.Play(); これだけで、Audio Sourceに登録されているSEが再生されます。 エフェクトと同様、ボールがぶつかったらSEが再生されます。 実行してSEを確認してみましょう。 ん? ゲームが始まると何も当たっていないのにSEが鳴っていますね。 あと、モノ当たった時に再生されるSEのボリュームが少し小さい気がします。 まずは、ゲーム開始時にSEがなってしまう問題を修正しましょう。 Play On Awake? BallのInspectorにあるAudio Sourceを見てみましょう。 ここに、あるPlay On Awakeという項目にチェックが付いていると思います。 このチェックを外しましょう。 この項目は、ゲームが始まったら音を再生するというフラグです。 BGMなど、ゲームが開始したら再生するものなどに適応すると良いでしょう。 ※正確には、オブジェクトがシーンに配置されたら音が再生されます。 Play On Awakeチェックを外して、ゲームを実行しましょう。 ゲーム開始時に、意図しないSEが鳴るのがなくなりました。 次は、SEの再生ボリュームが小さい問題に対応しましょう。 ゲーム開始時のSEは、問題ない音量でしたが、モノに当たった時の音量は、それよりも小さくなっていました。 なぜでしょうか? これは、3Dサウンドが関係しています。 リスナーと音源の距離によって、音量が変化します。 リスナー、つまり、聞く人が音源に近い場合には、大きな音、遠い場合には、小さな音になります。 音が小さくなる距離を制御して、もう少しSEの音が大きくなるようにしてみましょう。 それを制御する場所は、Audio Sourceの中にあります。 Min Distance このパラメータは、音量の減衰、つまり、音が小さくなり始める距離を指定します。 カメラからオブジェクトまでだいたい20ぐらいの距離があります。 今回は、この値を20にしておきます。 どれくらいがいいかは、実行して、パラメータを調整します。 現在、リスナーは、カメラに設定されています。 カメラを選択してみましょう。 Inspectorの一番下にAudio Listenerがあります。 つまり、カメラから離れると音が小さくなるようになっています。 実行して、音量が変化したか確認してみましょう。 問題なさそうですね。 文章では、わかりませんね・・・orz 今回、使ったAssetには、イメージに合ったSEは、なかったかもしれません。 SEやBGMには、WAVファイルやMP3の形式であればUnityで再生することができます。 Projectに、使いたいファイルをドロップして、Unityに登録します。 登録したファイルをAudio Sourceに設定すれば鳴らすことが可能です。 SEやBGMは、フリーの素材がたくさんあるので、イメージに合ったものを探してみてはいかがでしょうか。 UnityのおかげでSEの再生も簡単に行えますね。 今回の作成したプロジェクトをWebPlayerで実行できるようにしておきました。 Web Player 練習問題 1.他のSEを鳴らしてみましょう。 次回は、最終回です。 タイトル画面を作って、ゲーム画面を呼び出すところを作りたいと思います。 それでは、楽しいUnity Lifeを!