3.音も出す
 当初の予定では、音を出すことは考えていませんでした。しかし、これについても講師からアドバイスを受け、音を付けることにしました。

 どうせやるなら工夫しようと思い、音の出し方も少し考えました。実は、COJTの課題には表示回路、キャプチャー回路、描画回路の他に、もう1つサウンド回路があります。サウンド回路の説明をすると長くなってしまうので、今回は簡単な紹介にとどめますが、大まかにはFPGAボードのRAMに保存した音データをイヤホンジャック経由でスピーカーから音を出すための回路です。

 私は、このシューティングゲームに合わせて、BGMと銃の効果音を同時に処理するサウンド回路を作りました。基本的に、このサウンド回路は1つの音をステレオで再生する回路でした。しかし、今回は5つの音を、左右で別々に出すことを考えました。大元のサウンド回路は1週間ほどで出来上がったのですが、2つの音を同時に、しかも左右それぞれで違う音を出すというのが困難でした。BGMはずっと流しておけばいいのですが、銃の効果音は射出判定されるまで音を止めておく必要がありました。

 そこで、回路内部のステートマシンの順番を変えたり、タイミングを変えてみたりと試行錯誤の末、やっとのことでオリジナルのサウンド回路が完成しました。片方の音を流しながら、もう片方の音を止めておくのは難しかったので、両方のスピーカーから常に音を出すことにしました。ただし、効果音側のスピーカーは最初の音のない部分でループするようにして疑似的に音を止めておくことにしています。射出判定を認識すると、ループする場所を変えることで効果音の音が出るようになっています。

オリジナルサウンド回路の仕組み
[画像のクリックで拡大表示]