2014年09月06日

音関連について

特に難しくないですが、SE(効果音)とかを複数使いたいときには、
1つのGameObjectにいくつも”Add Component”->”Audio”->”Audio Source”で
紐付けておいて、以下のようにスクリプトで一気に読み込めば、全部使えます。


<<<オーディオソースを複数読み込む処理>>>

  // 事前に変数は宣言しておく
  private AudioSource seGet;
  private AudioSource sePyon;
  private AudioSource seAareee;
  private AudioSource seIchi;
  private AudioSource seNii;
  private AudioSource seSan;
  // (以下略)

void Start () {
  // オブジェクトに紐付けた音声ファイルを一気に読み込む
  AudioSource[] audioSources = GetComponents();
  seGet = audioSources[0];
  sePyon = audioSources[1];
  seAareee = audioSources[2];
  seIchi = audioSources[3];
  seNii = audioSources[4];
  seSan = audioSources[5];
  // (以下略)

  // (中略)

  // 使うときはこんな感じで
  seGet.PlayOneShot(seGet.clip);




最初、オーディオファイルをユニティちゃんに全部持たせて、
ユニティちゃんのいる場所から音が鳴るようにしようとしました
(ちなみに、デフォルトだと集音マイクがメインカメラにある感じになってます)。
しかし、3D音声で処理しようとするとどうしても雑音が混じったりしたので、
結局全て2D音声として処理しました。
これは、元のオーディオファイルの方にある”3D Sound”のチェックを切っておけばいいだけです。

3Dサウンド.png


読み込んだ方のインスペクターで、音量調整も適宜行います。

音量調整.png


あと、音を仕込んだあたりのタイミングで、SuperBallのPrefabを多数配置していくことになります。
あまりうるさくない、音割れしないくらいの間隔で配置していきます。

プレハブ.png


ちなみに、音声ファイルの形式は全てwavファイルに統一しました。
BGMをループ再生するとき、wavファイルならループ時に音が途切れません
(僕がやったときは、mp3ファイルだと若干タイムラグが発生しました)。
長い曲だとデータがかさばりますが……


<追記>
BGMループのファイル形式は、wavファイルじゃなくてoggファイルでも大丈夫みたいです。

(参考ページ)Medium-Rare Games

ちなみにogg形式へのコンバートは、以下が便利です。

オンラインオーディオコンバーター



posted by beco- at 10:10| Comment(0) | TrackBack(0) | Unity | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。