ゲームの世界で鳴るさまざまな音は、サウンドデザイナーとサウンドプログラマーが協力して作り上げています。たとえば、オブジェクト同士が接触したときに材質や形状、衝撃の強さなどに応じて変化する音になるよう、サウンドデザイナーが音のデータを作成し、サウンドプログラマーがそのデータを鳴らします。『ゼルダの伝説 ティアーズ オブ ザ キングダム』では、私はサウンドプログラマーとして、サウンドデザイナーが作りだす多彩な音を、リアリティを感じられるように鳴らす役割を担いました。
このゲームには、さまざまな種類の材質や形をしたオブジェクトが登場します。プレイヤーはこれらを自由に動かせるだけでなく、複数のオブジェクトをくっつけることができるため、自由な発想で武器を作ることも、乗り物を作って動かすこともできます。そして高い自由度があることで、私たち開発者の想像を超える遊び方が生まれることもあります。
開発を進めるなかで、サウンドデザイナーと一緒に「どのような接触に対してどのような音をつけるか」という問題に取り組みました。その際の大きな課題のひとつに、「オブジェクトが地面を転がっているときと、滑っているときの音を分けたい」というものがありました。たとえば、鉄球が斜面を転がる音と滑り落ちる音は異なりますし、同様にタイヤが転がるときと滑っているときの音は異なります。この二つの音を区別するために、まず私は物理シミュレーションのパラメーターを活用して、回転速度がゼロより大きければ転がっている、と判定するようにしました。しかし、このアプローチを実際に試すと、タイヤがその場で空転している状態でも転がる音が鳴ってしまい、ゲーム内の状況と音が一致しない問題が生じてしまいました。
そこで、私は発想を変えることにしました。具体的には「転がっているか」ではなく「滑っているか」に着目しました。物体の回転速度ではなく、接触点における速度を利用することで、滑っているかどうかを判定することにしたのです。そして、滑らずに移動していれば、転がっていると判定して、音を鳴らしわけることにしました。このアプローチが奏功し、大きなタイヤや荷馬車の車輪、そして丸太やリンゴも含めて、物理シミュレーションで動くすべてのオブジェクトに対して、想像もしていなかった遊び方であっても、同じ仕組みによって見た目にあわせて音を鳴らしわけることができました。
開発現場でオブジェクトが接触した音を鳴らすときに意識していたのは「納得感を持たせる」ということでした。たとえば、大きなタイヤの四輪車が急な坂道を登っている途中で動きが止まってしまったときに、画面からの情報だけでは何が起きたのか理解することが難しい場合があります。しかしそこに、タイヤが空転し滑っている音が聞こえると、滑っているせいで前進できないのだと納得ができます。そのように、ゲームの世界の情報を納得感のある音で伝えることは、大切な仕事です。
ゲーム開発を進めるには、さまざまな制約や要素を鑑みてバランスを取っていくことが必要になります。そのような中でも、音を専門に扱うサウンドデザイナーと密にコミュニケーションを取って実現したい音を理解し、自分自身はプログラマーとしてゲームシステムに関する知見や物理の知識などを活用して、双方の力をかけ合わせることで実現したい音にどんどんと近づけていくのは、とても魅力的な仕事です。どのような遊び方であっても、そこから聞こえてくる音に納得感があり、お客さまがゲームの世界に没入できるような環境を作ることもまた、私たちの役目でもあるのです。