この章ではサウンドミドルウェアCRI ADX2を用いたゲームサウンドプログラミング技術を中心に、YAMAHA XMP-1、Axell Corporation Astarte、CRI ADX7などによるアミューズメントや遊技機系の音声組み込み技術などについてご紹介していきます。
サウンドプログラミング、という言葉自体で「得体の知れないとても難しいもの」というイメージを持たれたり、また「音楽や効果音には関係の無い技術」と思われるのは、サウンドクリエイターとしてとても勿体の無いことですし、なによりサウンドプログラミングは楽しく幅広い可能性を秘めている上に、プログラマーさんや企画とサウンドを繋ぐ素晴らしい技術です。
サウンドプログラムに必要なのはコードや物理学ではなく考え方
「プログラム」という言葉自体にまず難しいイメージを持たれると思います。
複雑なコードを駆使し、見たこともない言語で素早く打ち込む。。。
もちろんコードを全く理解していないことには弊害もありますが(例えばコードで書かないと適用できない一部の機能であったり、デバックや不必要なコードの整理)、ただそもそもまったくコードが分からない、使用できるコンピューター言語が全く無い、というサウンドプログラマーだって沢山います。
よく筆者は「ダイビングをするのに泳げないダイバーなんて沢山いるのと同じ」と例えます。
実は筆者もダイビング愛好家ですが、装備なしでは殆ど泳げません。
同様に筆者は複雑なプログラミングも苦手ですし、実はこのサウンドクリエイターの特効薬のページ自体も、恥ずかしながら基礎のHTMLを忘れてしまい、タグ辞典を検索しながら書いていたりもします。
また、サウンドプログラムにおいても、筆者は高卒な上に、高校では完全に文系であったため基礎的な物理の知識がなく、例えばゲームのキャラクターが放物線を描いてジャンプをする際の音を作る際に、その変化量を演算する式は書けません。
では、そのような場合、どのようにサウンドプログラムをするのか?ダイビングでいうところのダイバーの足ヒレやボンベやウェットスーツは何になるのか?
それがサウンドミドルウェアです。
サウンドミドルウェアは技術と企画と人の架け橋
サウンドミドルウェアとは本来コードで複雑に表現しなければならないサウンドプログラムを、直感的にサポートしてくれるものです。
例えば先述した「キャラクターが放物線を描いてジャンプをする際の音を作る」というような場合、「この地点に達している場合はこの音が鳴っている」ということさえ用意していれば、その変化量の値はプログラマーさんにお願いすることもできます。
逆にプログラマーさんが細かく指定しなければならないような場面、例えば「キャラクターが走っているのか、歩いているのか、地面は濡れているのか、硬い地面か否かによってキャラクターの足音が変化する」というような場合、予めその指定をプログラマーさんからは簡単にできるようにすることもできます。
BGMにおいても「キャラクターがセリフを言っている際はBGMを一時的に下げる」ということもできますし、それをサウンドの立場でしか分かりにくい「音量を下げるだけではなく、よりセリフの明瞭度を上げるために、BGMにハイカットをいれる」などということも可能です。
このことは単純に「プログラミングや物理学の知識が乏しくともプログラミングができる」ということだけではなく、「サウンドの発想力と考え方を生かして、サウンドの発想や知識が豊富にも関わらず、今までプログラムや物理の知識が乏しくプログラミングができなかった人材の能力を生かせる」ということです。
(ミドルウェアがなかった時代でしたら、物理の出来ない筆者は上記のキャラクターのジャンプ音が作れなかったのですから)
そして何よりもサウンドミドルウェアはプログラマーさんとサウンドの架け橋になり、互いの壁を越えた制作が行え、自由な発想でサウンドメイキングが行えるということです。
このことにより、例えば「車のエンジン音がエンジンの回転数に応じて変化する」「BGMがシームレスに場面転換に応じてクロスフェードで切り替わる」というようなことができます。