【ゲーム開発】仮の効果音を少し挿入

昨日家に帰ってから効果音を探してました。
色々な効果音が溢れかえっていてどんな音なのかは聴いてみないと解らないので
なかなかにしんどかったです。

とりあえず、項目を選択するカーソル音、決定音、キャンセル音は
前回の分から貰ってきましたので最初から導入してたのですが、
そろそろショットを打ったり、喰らったりとかの効果音が欲しいなと思い探索。

色々聴いた結果、なんか違うな~と思いながらも仮に挿入しておきました。
ただ効果音を ON にしているとデバッガがブレークポイントで止る時に効果音がなっていれば
暫くステップしていかないと断続的に効果音がなり続けてしまうみたいなので
デバッグの時は正直うるさいです・・・

そこで、音楽の再生を SOUNDPLAY のようにマクロで定義し、
_DEBUG が定義されているかどうかで判断し、Debug 版であれば効果音を鳴らさないという仕組みに変えました。

Debug 版で効果音を鳴らしたいなら
#ifdef _DEBUG ⇔ #ifndef _DEBUG
と切り替えるだけなので、とりあえずうるさかった効果音からは解放されました。

音を入れる時に鳴るかどうかだけは最初にチェックして、鳴ってれば音を切る・・・
そんな感じで今後進められそうなのでちょっと便利になりました。


効果音というか、音関連でちょっと困った事があって
やり方はあると思うんですが、XAudio2 で同じ効果音を連続で鳴らそうと再生すると
何もしないままでは一回しか音は鳴りません。

対象のソースヴォイスを一端停止して、FlushSourceBuffers でバッファをフラッシュし、
SubmitSourceBuffer で情報を送信してから効果音を鳴らすと言う手順になってます。
(こんな面倒な方法を取らずとも連続で効果音を出し続けられるならいいのですけども;)


一端効果音が停止する訳なので、前に鳴ってた効果音がすぐに停止してしまい、
一番新しい音が優先的に鳴ってしまうため、ぎこちない感じに聴こえてしまいます。
出来れば、一回鳴った効果音はそのまま鳴ってて欲しい訳ですがどうやるんだろうか・・・。

同じソースバッファを使い回さなければ回避可能ですが、
100回分の効果音を連続で鳴らしたいために
100個のソースバッファを別途用意するなんて事をするはずはないと思うので
何かしら回避する方法はあると思うんです。


プログラム側でなんとかしたかったなと思ったので
効果音を編集すればある程度大丈夫かなと思いました。


そういえば、WAVE のサイズが極端に大きいので、mp3 形式の WAVE を作成しました。
しかし、今ある WAVE クラスは無圧縮PCMにしか対応していないので読み込む段階で失敗します。

読み込み時に XAudio2 からデバッグウインドウに
その音アウツよ!ってメッセージが出てきたのが凄い嬉しかった。
そう言えば、そんな形式の WAVE にしてたっけか・・・と思ったので良かった。

効果音だけならファイルサイズは知れてますけど
やっぱり BGM ともなるとファイルサイズが肥大化してしまいますので
とりあえず、WAVE 形式で頑張りますけども、OGG 辺りを導入しないと駄目ですね~。


ラフえめりあ
最後にばばーっと描いたウチの看板娘のラフ絵。
ま、着色する気はない落書きでしたっと。

最近暑いので熱中症等にはお気を付け下さいませ!

この記事へのコメント

- はぐれステンレス - 2012年07月14日 10:01:19

純粋に絵がうまいww

- DVDM♪管理人♪ - 2012年07月14日 23:37:54

>> はぐれステンレスさん
どうもありがとうございます。
久々に描いたので殴り書きですが・・・。

トラックバック

URL :

検索フォーム
プロフィール

DVDM

Author:DVDM
自作ゲームの開発過程ブログ。
赤髪愛なら誰にも負けない。

 
Pixiv バナー


ブロとも申請フォーム
最新記事
カテゴリ
最新コメント
最新トラックバック
RSSリンクの表示
リンク
ブロとも一覧