スクリーンショット_2018-12-31_17

サウンドに関するプログラミングを行った ローグライク(仮)

今日はサウンド関係の実装を行った。使用している SDL というライブラリには描画だけでなく音にも対応している SDL_mixer というオプショナルなライブラリがある。

SDL_mixer はサウンドエフェクト(SE)と音楽を区別している。内部的な挙動の違いは SE はメモリ上にすべて読み込んで複数チャンネルで再生できるもの、音楽はファイルからストリーミングする1つしかチャンネルがないものだ。もう少し自由度があればよかったのだが、マルチプラットフォームライブラリなので仕方がないところでもある。

今回はその SDL_mixer を使って音楽と効果音を試せる簡単なサウンドテストシーンを作ったのと、セリフ中にピロピロピロピロと音がなる実装をしてみた。

今回は1文字ずつ『ピッ』という音を発音させるようにしたのだが、SDL_mixer に設定しているバッファサイズがSEのレイテンシーに影響するため、パフォーマンスを優先してバッファを多めに取ると音が綺麗に連続して出ないケースが発生してしまった。なので、ピロピロ音をセリフの速度に合わせて複数用意してループ再生し、セリフが終わったら効果音もフェードアウトさせるようにしようかと考えている。これなら動作環境ごとの挙動の違いを吸収できる。

今日は大晦日なので、今日はこれで終わり。良いお年を。


応援してくださると嬉しいです。よろしくお願いいたします!