スーパーファミコンのオリジナルゲーム用のBGMを作っていく


何気に2018年初の記事です。あけましておめでとうございます。
PA Gamesさんの「snes-taco」のコア部分もスーファミ実機に移植しつつあるようなので、自分も進捗報告します。
スーファミ実機とブラウン管をインディーゲームのイベント会場に持っていける日も近いのでは。

 

 

今回は音楽、いわゆるBGMの話です。音楽単体で演奏の話だと、1曲に対して音色データをサウンドメモリの限界まで割り当てたり、8トラック全てをBGMの再生に利用したりと比較的自由に使えるのですが、ゲームに組み込むデータとなると話は変わってきます。ゲームを引き立てる上で忘れてはならないのが効果音の存在で、ゲーム中ではサウンドメモリ上に効果音用の音色データの領域や効果音再生用のトラックも確保しておく必要があります。

現状としてsnes-tacoのオリジナルサウンドドライバはエコーやディレイなどの機能を実装していないかわりに、最大52KBまで音色データを割り当てることができるようです。個人的には以下の方針で考えています。

 

  • 音楽用に36KB、効果音用に8KBを使用すると決めておく(8KBは予備)
  • 効果音の領域はボイスなどの複雑な波形と、矩形波や三角波など、単純ではあるがスコアデータを駆使して、少ない波形データで記号的な音を作り出せる素材を置いておく
  • 音楽用の音色データからスコアデータで効果音を表現するということもやってみる
  • 音色のデータやスコアデータの読み込みはシーン切り替えのタイミングで行われると想定しておく

 

ちなみにsnes-tacoのプロジェクトでは、プレイヤーとエネミーがそれぞれ効果音を出せるように、ゲーム画面では常に2トラックを割り当てるという仕様になりそうです。これによって、8トラック全てを使って音楽を作ってきた以前とは違い、6トラックでゲームを引き立てる音楽を作るという新しい目標ができました。まだBGMも試作のものですが、6トラックだけで挑戦しています。

 

 

 

今後はゲーム実装用のBGMにも手をつけることが多くなると思うので、6トラックをいかに酷使しているかという作業内容もレポートしていけたらと思います。DAW上で打ち込んで6トラックに最適化していく作業は聴覚のパズルのようで楽しいのですが、MMLに落とし込む作業が非常に面倒で、場所によっては1音ごとに音色の切り替えやパンポットの命令が入ったりして、視覚的にカオスな状態になるのだけがつらいけど達成感はあります。

今更ですが、当時スーファミのサウンドの実装データ作ってた人って、どんな開発環境で打ち込みをやってたのか知りたいところです。教えてくれる人を知っている人がいたら教えてください。ダメかな?

 


 

余談:自分は市販ゲームの解析までは踏み込めていないので、あくまで聴覚上の話ですが、BGMを聴かせることに力を入れているゲームタイトルでは、ドライバ側でうまくやって1〜2トラックは効果音と兼用にしているものもありますね。効果音を出すと一瞬だけ音楽のパートが欠けるやつとか。
僕はサウンドを作る立場ですが、こういった機能は当たり前のものではないと思っています。

市販ゲームのサウンドデータのロード周りに関してはgyuqueさんの研究記事を読んでもらうと分かるのですが、当時はゲームタイトルによって様々な工夫がなされていたようです。個人的に好きな記事なので、ここで紹介しておきます。