今回は、HABIT SOFTから2023年12月30日にリリースされるFC用シューティングゲーム「HABIT!」の音楽データ6曲と効果音データ21個の制作を担当しました。
実はこの依頼を引き受ける時、別件でFC用アクションゲーム「このみのモンスターパーティー」の音楽制作の真っ最中でした。
そんな中で急きょ、10月7日に急ぎの依頼で「HABIT!」の話が来ました。
引き受けた理由は2つありました。
1つは、「HABIT!」の開発者が使っているFamitoneが、私の使っているFamiTrackerのデータをコンバート出来るとの事で、丁度私が「このみのモンスターパーティー」BGM制作でFamiTrackerを使っている最中もあって、その制作環境のままで「HABIT!」のBGM制作が出来る事。
もう一つは、「このみのモンスターパーティー」の開発者が、急きょ「美少女麻雀塾其の一」のANOTHER Ver.「美少女麻雀塾EX1」を制作する事になり、「このみのモンスターパーティー」の制作が止まっている間に、「HABIT!」のほうが先に完成すると思ったからです。
私は、2つの依頼を同時進行出来ないので、優先順位を付けて、1つずつ終わらせるように、作業を組み立てます。
「このみのモンスターパーティー」を後回しに出来そうでしたので、「HABIT!」のサウンド制作を引き受ける事となったのです。
そうと決まったら、さっそく依頼者からMAIN BGMのMIDIデータが送られてきました。
あまり日数ありませんからね!
今回「HABIT!」のBGMの作曲は、国本剛章さんが担当されております。
国本さんは、元HUDSON(ハドソン)のファミコン用ゲームやPC Engine用の初期のゲームBGMを作曲されておられた方です。
そんな凄い方とサウンド制作でタッグを組めるなんて、貴重な事です。
しかも、送ってこられるMIDIデータも、国本さんが作られたMIDIデータなので、私はそのMIDIデータの中身を見れる訳でして、もう凄い体験ですよ!
そしてそのMIDIデータを元に、私がFamiTrackerに打ち込むんです。
いやもう、プレッシャーを感じながら作業してました。
実は、MAIN BGMを打ち込んでいた時に、いきなりピンチになりました。
それは、曲の半分くらいFamiTrackerに打ち込んでいる最中に、8分音符の3連符にぶち当たってしまいました。
ノート情報を見ると、これはグリッサンドでした。
もしや?と思って、曲の最後まで確認したところ、8分音符の3連符は3ヶ所ありました。
8分音符の3連符はFamiTrackerの初期設定を変えれば入力可能ですけど、これは最初から8分音符の3連符があるのを分かっていたらの話。
最小音符を24分音符すれば良いのです。
途中からですと、大掛かりな修正になります。
1フレームを16小節から8小節に落として、倍のフレーム数にすれば可能です。
ただ、ファミコンの曲はテンポを150に固定してスピード調整で演奏速度を決めます。
このスピード調整が、かなり大雑把でして(笑)
果たして、このスピード調整で指定されたテンポにピッタリ合わせる事が出来るか、確信がありません。
ちなみに、FamiTrackerですと、最小音符が16分音符の場合、テンポ150固定にして、スピードを6にすると、テンポ150になります。
最小音符を32分音符にした場合は、テンポ150固定にして、スピードを3にすれば、テンポ150になります。
なので、最小音符が24分音符だと、テンポ150固定でスピードを4か5にすれば…とも考えました。
けど、それでテンポ150になるか分からないし、その3ヶ所しかない8分音符の3連符の為に、曲全体を弄りたくないし…
そこで私、閃くんです。
「効果音として作れば?」
つまり1shotで8分音符の3連符のフレーズを作っちゃおうかと(笑)
このあたりは、サンプラーを使っている人が思い付く発想ですね♪
さっそくボイスエディターで、その8分音符の3連符のスレーズを作りました。
音の長さはボリュームを、音階はピッチを使います。
ちょっと面倒なんですけど、ピッチは他のシンセサイザーから矩形波を1音ずつ鳴らしながら調整しました。
音の長さも、なるべくピッタリ鳴るように、音程ごとに長さを調整しました。
実際のグリッサンドも、鍵盤を滑らせる速度の加減で音の長さが変わりますので、1音1音は均一ではありません。
1音ずつバラつきを作ることで、少し人間っぽさが出て良いと思いました。
本来であれば入力出来ないはずの音符も、効果音で作る事で、何とかピンチを乗り切る事が出来ました。
他にも、TITLE BGMにも3連符が1か所ありましたので、この曲に関しては最初から3連符を入力出来る設定にしてから制作しましたのでバッチリです♪
こんな感じで、TITLE BGM、STAGE CLEAR BGM、MIDLE BOSS BGM、BIG BOSS BGM、GAME OVER BGMもFamiTrackerで制作しました。
効果音も私が作成しました。
意外かもしれませんけど、この「HABIT」で効果音デビューを果たしました♪
今まで音楽しか出番がなくて、私は効果音も作れるんですけど、なかなか効果音制作に縁が無くて…(笑)
プログラマーから、ゲームで必要な効果音リストが届きました。
・ショット音(短め)
・敵ダメージ音
・空中物破壊音
・地上物理破壊音
・バキュラ的な硬い音
・跳ね返し音
・プレイヤーパワーダウン音
・プレイヤー死亡音
・プレイヤー復帰音
・バックファイヤー音
・パワーアップアイテム入手音
・ポイントアイテム入手音
・中型機爆発音
・ポス爆発音
・レーザー発射音(短め)
・ミサイル発射音(短め)
・ポーズ音
・カーソル移動音
・カーソル決定音
まだこの段階では、ゲームの画面は見れてないので、想像で作るしかありません。
効果音リストを見ながら、FamiTrackerの波形エディターで、音量とピッチ、場合によっては途中で波形を切り換えて、1shotで作りました。
NOISEとTONEを混ぜる場合は、NOISEとTONEで別々に音色作って、2音で鳴らします。
そんな感じで、半日で19個作りました。
残る2個は、国本さんが作った1UpジングルとBONUS GETジングルです。
ジングルなんですけど、BGMを鳴らしながらジングルも鳴らす事になりまして、このジングル2曲を効果音で作りました。
しかし、効果音にも容量制限があって、1個256バイトまでです。
256バイト以上の効果音はコンバートする時にエラーが出ます。
1小節のフレーズでも、普通に作ると256バイトはオーバーします。
どこでデータを縮めれば良いのか?悩みましたけど、ここでもまたひらめくんです。
音色データを縮める事が出来るのではないか?
実は私、音符ごとに音色を作ってまして、特に2部音符や全音符はデータ量が多いんじゃないかと思いました。
理由は、エンベロープを作るのに音量データを大量に使っているからです。
だいたい96分音符の細かさで音量を設定してエンベロープを作っておりました。
そこで、この音量データを節約する為に、使用する音色を、波形選択(矩形波とノコギリ波)と先頭の音量だけ指定するシンプルな音色にしました。
音を止める時は休符で止めます(笑)
その代わり、分解能を16分音符を6等分にした96分音符が入力出来るくらいに増やしました。
音符は細かくなるけど、波形設定と出力音量とノートONと休符の合計4つの情報だけで済みます。
これで再度プログラマーにデータを送ってコンバートしたところ、無事に実装出来たとの事でした。
この方法だったら2パートで1小節のファンファーレだったら効果音で鳴らせる事が分かりました。
BGMも効果音も、最初はデータをコンバートする途中でエラーが出まくりでした。
まあ私も、最初から1発で鳴るとは思ってなかったので、FamitoneとFamiTrackerのエフェクトコマンドの互換性を探る為に、1つずつエラーを潰して行きました。
プログラマーさんの協力で、FamiTrackerで使えるエフェクトコマンドを特定する事が出来ました。
Famitoneで使えるFamiTrackerのエフェクトコマンドは…
まず、BGMとSE共にチャンネルごとのボリュームは使えました。
BGMとSEの音量バランスを調整する時に大助かりです。
次に、BGMで指定のフレームにジャンプするBコマンドと、次のフレームにジャンプするDコマンドが使えました。
ビブラートを設定する4コマンドは使えましたが、ピッチを微妙にズラすデチューンコマンドが対応してませんでした。
デチューンで鳴らす部分は、試しにピッチをズラした専用の音色を作って、切り替えて鳴らす事で対応しました。(後にゲームに実装したら、これもダメでした)
そして最も致命的なエラーとして、BGMでは曲をストップするCコマンドが使えません(笑)
つまりFamitoneでは曲が止めれません。
TITLE BGMとGAME OVER BGMでは曲を止めなくてはなりません。
どうしたかと言いますと、無音部分のフレームを作って、曲が終わったら、その無音のフレームに飛ばして、Bコマンドで無音フレームをループさせました。
聴感上、曲が止まっているのですけど、実際はその後も無音部分をシーケンス演奏させています。
ちなみにSEではCコマンドで発音を止めれます。
BGMではCコマンドで曲を止めれなくて、効果音ではCコマンドで音を止めれる仕様は、ちょっと不便を感じましたね(笑)
他には、今回使いませんでしたけど、ピッチアップの1コマンドとピッチダウンの2コマンドが対応しているようです。
これらの、ボリューム、B(任意のフレームにジャンプ)、D(次のフレームにジャンプ)、1(ピッチアップ)、2(ピッチダウン)、4(ビブラート)以外のエフェクトコマンドはFamitoneでは使えません。
これらがFamitoneとFamiTrackerでFC用BGM&SEを制作するのに注意するところですね。
BGMと効果音を実装した後、更に問題が発生しました。
それは、残りメモリとの戦いです。
サウンド関係は全体の容量の2/5を使ってます。
その中でもMAIN BGMが一番大きなデータになってます 。
MSIN BGMを、どこか切り詰める事が出来ないものか?
プログラマーからの提案で、MEIN BGMを短縮する事にしました。
と言うのは、途中で中ボスが出現してBGMが切り替わるので、MAIN BGMは最後まで演奏される事が無いとの事。
その結果、フルバージョンで作ったイントロ→Aメロ→Bメロ→Cメロ→イントロ2→Aメロ→Bメロ→エンディングの構成を、イントロを1回だけ使って、後はAメロ→Bメロをループにしました。
更に、演奏の不具合も発見しました。
先ほども書きましたけど、一部の演奏にはピッチのアップとダウンを使っていた部分があります。
実はこれ、ゲームに実装すると、正常にピッチが変化しない事に気付きました。
効果音のほうでは、ボイスエディターのピッチのアップとダウンは正常に動作してたので、たぶんBGMではボイスエディターのピッチ変更が使えないのかもしれません。
更に、サンプル版をプレイしていると、CH2のフレーズがほとんど効果音で消えてしまいます。
まあそれは、私がほとんどの効果音をCH2で鳴るように作ったからなんですけど…(笑)
そうなると、CH2で鳴らしてたピッチをわずかにずらして鳴らすデチューンや、ピッチベンドを使ったフレーズが埋もれてしまいます。
そこで、プレイの爽快感を優先して、デチューンでメロディーを鳴らしている部分を削除して、単音に変更しました。
ピッチベンドを使ったフレーズも、普通のフレーズに変更しました。
そして、そのデチューンとピッチベンドで使ってた音色9個も削除しました。
そう、実はデチューンとピッチベンドはボイスエディターで音符ごとに専用の音色を作って鳴らしてたんです。
なので、これを削除すると、まあまあ容量の節約になります。
あと、効果音がなり続けてるとCH1のメロディーだけになってしまいます。
その状態で聴いてると、コーラスやハーモニーが無くなって、ちょっとさみしく感じました。
メロディーのパートには、いくつか隙間があるので、その隙間にCH2のフレーズを移動しました。
そしたら以前より、メロディーが賑やかになりました♪
こうして、容量の節約の為に、削って削ってシンプルにしたものが、ゲーム実装Versionになります。
そして一番最初に作ったフルバージョンが、オリジナル(原曲)になります。
なので、もしサウンドトラックを作るとしたら、オリジナルバージョンとゲーム実装バージョンとを収録する感じになるかな♪
FamiTrackerの使い方を覚えて曲が作れるようになれば、こういったFC用BGMの制作にも関われるようになれます。
FC用に曲を作る場合は、今回紹介したように、プログラマーが使うサウンドドライバーによって、FamiTrackerで使える機能を把握する必要があります。
そこは経験が必要になりますけど、サウンドも詳しいプログラマーさんであれば、その辺の機能の指示もあるかと思います。
私の場合、サウンドが苦手な人からの依頼を引き受けるので、プログラマーさんと一緒になって原因を探る事になります。
まあプログラムを知らない私でも、何だかんだ依頼をこなしてますので(笑)
なので、FamiTrackerを覚えておけば、FC用ゲーム制作の役に立つと思いますよ♪