top of page
Anchor 4

THEME クルマのエンジン音を再現!~実験編~

今回、車のエンジン音を再現することに初挑戦いたしました。もともと興味は持っていたのですが、再現するのが大変だというお話を経験者の方から聞いていたのもあり、なかなか手を出せませんでした。

 

そしてやってみた結果、「本当に大変!!」ということが身にしみて感じました。(笑)今回は、ゲームの中で使われることを前提とし、実験編として「軽自動車のエンジン&排気音を入力に併せてなめらかに表現する」過程をご紹介します。

エンジン音&排気音を録音する

エンジンルーム
マフラー
車内

まずは実車のエンジン音が必要なので、自宅にある軽自動車を題材に以下のポイントで録音を行いました。

 

  • エンジンルーム

  • マフラー

  • 車内

 

エンジンルームでは、エンジンの作動音やエンジンルームでの機械系作動音を録音し、マフラー付近で低音の効いた排気音の録音をしています。また、車内の音も録音しました。レースゲームではコクピット視点と俯瞰視点を切り替えることが多いので、サウンドも対応できる形を前提として試しています。

 

また、ここではギアをニュートラル(パーキング)にいれてエンジンをふかす、いわゆる「空吹かし」という状態で録音を行いました。本当は走行中の負荷がかかった状態のエンジン音を録るのが最も再現度が高いのですが、公道を走っている最中に録音することは危険ですしノイズも多く、なにより回転数を維持しながら公道で走ることは現実的に難しいからです。

 

実車を扱った最近のレースゲームではこれを実現するために「シャシーダイナモ」という装置を使うそうです。ローラー装置の上にクルマの各タイヤを載せ、その上で走行することでクルマ自体を進めることなく様々なテストが出来るということです。(家でランニングができる健康器具みたいですね(笑))クルマのテストのためにある装置らしいのですが、様々な状況のエンジン音を録音するのにもうってつけですよね!

 

ここではこうした負荷のかかった音ではなく、「空吹かし」のエンジン音で録音を進めていくことにします。

1000回転ずつ維持したループ音を録音する

セッティングを終えたらいよいよ録音です。録音は、「1000回転」「2000回転」「3000回転」「4000回転」の各回転数を維持する音、つまりループ音を録ることが目的です。なぜならクルマのエンジン音をゲームで再現するには、単純に「ブーン!」と吹かした音ではユーザーの入力に合わせてエンジン音を変化させることが出来ないからです。

 

動的にエンジン音を変化させるためには、一定の音程を維持したループ音に対してピッチ変化を与えるのが有効な手段の一つです。アクセルを調整して回転数を維持した状態でエンジン音を録音します。

タコメータ

各録音ポイントで収録したサウンドがこちらです。

▼エンジンルームの録音

エンジンルームの録音 -
00:00

▼排気音の録音

排気音の録音 -
00:00

▼車内の録音

車内の録音 -
00:00

いかがでしょうか?特に車内と車外で顕著に音の聞こえ方が違いますよね。また、エンジンルームの音に比べ排気音のほうが低音の効いた迫力のある音がしています。今回はコクピット視点のエンジンサウンドと俯瞰視点のエンジンサウンドを作るため、エンジンルームと排気音の2つを混ぜたモノを俯瞰視点のサウンドとして使ってみます。

ループ音の切り出し

録音が終了しましたので回転数を維持した区間を切り出して、短いループ素材を作ります。

ヘリコプターのテイルローター

各回転数が安定したところが上記のマークした部分になります。この区間を編集して短いループ素材にしたのがこちらです。

▼俯瞰視点用エンジン音 1000回転ループ音

1000回転ループ音 -
00:00

俯瞰視点用エンジン音 2000回転ループ音

2000回転ループ音 -
00:00

俯瞰視点用エンジン音 3000回転ループ音

3000回転ループ音 -
00:00

俯瞰視点用エンジン音 4000回転ループ音

4000回転ループ音 -
00:00

サウンドミドルウェアとは

さて、素材が出来ましたのでサウンドミドルウェアを使って動的な表現を加えてみましょう。ここでは「Wwise」というソフトを使用します。サウンドミドルウェアとは、サウンドをプログラムする人とサウンドを作る人の橋渡しをして、作業を円滑にするためのソフトです。

 

もう少し詳しくお話しますと、例えば、試作中の格闘ゲームで「打撃音をテストしたい!」とします。そのとき、サウンドクリエイターはサウンドプログラマーに「このヒットエフェクトに対してこの打撃音を鳴らしてください。」とお願いすることになります。お願いされたサウンドプログラマーは指定のエフェクトに対して打撃音を設定しました。そしていざゲーム中で聞いてみると「音量が小さいなぁ・・発音タイミングも遅い・・いや違う素材に変えたほうがよいかもしれない・・」など、さまざまな改善・調整項目が出てきます。

 

こうした新たな調整項目を確認するために、その都度サウンドプログラマーに細かい修正をお願いするのはけっして効率的な方法ではありません。また、自分の担当範囲であるサウンド修正のために何回も手をわずらわせてしまうのは結構気が引けます(笑)。

 

そこでサウンドミドルウェアの出番です!サウンドミドルウェアではサウンドプログラマーに対して最小単位である「イベントまたはキュー」を提示します。サウンドプログラマーは指定されたところにイベントを設定します。サウンドクリエイターはそのイベントの中に「どんな音を入れるのか?音量はどれくらいか?定位は?フェードインするのか?ループするのか?」など多彩なサウンドデザインをサウンドミドルウェア内のツールソフトで設定することが出来ます。

 

こうすることで、サウンドプログラマーはイベントを設定するという作業だけで済み、以降イベントが設定されればサウンドクリエイターは様々なサウンドに関する調整を独立して行うことが出来ます。

 

また、サウンドミドルウェアは実際のゲームで動かすためのデザインや動的なサウンド表現をテストすることができます。クルマのエンジンサウンドは「ユーザーのアクセル入力」という動的な入力がありますので、サウンドミドルウェアは今回のテーマに効果的です。有名なソフトに「CRI」がありますが、私はゲーム会社在籍時代にWwiseを使っていたためこちらを使用したいと思います。CRIでも機能の名称は違いますが同じことができるはずなのでお好きなほうで試されて良いと思います。(どちらも無償版があります)

ループ音の音程を上げるのではなく下げる!

それではWwiseを使ったエンジン音の再現をご紹介しようと思うのですが、実は最終的な方法にたどりつく前に失敗した方法がありますのでそちらを先にご紹介します。

 

最初は、各エンジンループ音をユーザーの入力に合わせてピッチカーブで高くしていき繋ぎ合わせることを目指していました。つまり、"1000回転のループ音をピッチカーブで上げていき、2000回転の音程まできたらすぐさま2000回転のループ音に切り替える。2000回転のループ音をピッチカーブで上げていき、3000回転の音程まできたらすぐさま3000回転のループ音に切り替える"・・この繰り返しでなめらかなエンジンの吹け上がりを再現しようとしていました。

 

ですが、この方法では下記の問題に悩まされました。

 

  • ピッチを上げていくと音が細くなり、次のループ音と繋いだときに音質に大きな差があるため不自然になる

  • 各回転数の音質は同じではなく、回転数が上がるごとに迫力や構成される音の音量バランスが異なる

 

そのため、ピッチを上げていく方法は使えずどうしたものかと悩みました。そこで逆に「ピッチを下げてはどうか?」という考えにいたりました。ここが重要なポイントでつまり、「高回転数のエンジン音の音程を下げて低い回転数のエンジン音を表現する」ということです。

 

ピッチを下げると高音が失われ、だんだんとこもった音になっていきますが、私が今回検証した結果では1000回転ごとの音程差は約500セント(半音5個分)という結果が出ましたので、音が強烈に劣化したような印象は受けないはず!という判断をしました。また、エンジン音収録時に96kHzでサンプリングしたため、高音部分の消失も軽くて済むはずです。

 

こうした理由から、低い回転数のときは高回転数の音を下げておき、回転数が上がるほどだんだん元の音程に戻るような設定でエンジン音の再現を目指しました。

 

ただ、4000回転のループ音をピッチを下げて1000回転を表現したものと、実際の1000回転のループ音ではやはり音質に差があったので、1つ下の3000回転のループ音も使って表現します。

動的な表現機能を使ってエンジン音を再現する

※以下、Wwiseの使い方を説明していますが、説明し切れていない部分が多分にありますので、さらに詳しい使い方などは別の機会でご紹介できればと思っております。

Wwise素材読み込み

これがWwiseの画面です。青色に染まっているところが音源素材ですが、フォルダ構成のようになっていますね。Wwiseではこのフォルダのようなものをコンテナと呼んでいます。そしてコンテナには様々な機能をもった種類があります。ここでは前述の通り、コクピット視点と俯瞰視点のサウンドをリアルタイムに変更できるようにしたかったので、「スイッチコンテナ」というものを設定しています。(一番上層にある"car_enjine"というコンテナ)

 

スイッチコンテナを使うと、内包しているコンテナ同士をゲーム中にリアルタイムに交替させることが出来ます。これを利用して、コクピット視点のエンジン音と俯瞰視点のエンジン音を切り替えできるようにしています。(insideとoutsideに分けました)

 

このように枝分かれして細分化していくのがWwiseの考え方のようです。どんどん設定していきましょう。今の状態では、音がワンショットで終わってしまいますので全てのループ素材を無限ループに設定します。

Wwiseループ設定

これで再生すれば無限にループするようになりました。次に、3000回転と4000回転のループ音が回転数の変化によってクロスフェードするように設定します。

Wwiseループ設定

"car_enjine_inside"と"​car_enjine_outside"はブレンドコンテナという、コンテナ内の素材を任意のカーブでクロスフェードさせたりできるコンテナです。画面のように設定しておけば、回転数が低いほど3000回転のループ音が使われ、回転数が高くなるほど4000回転のループ音が使われるようになります。 

 

続いてピッチカーブの設定をしましょう。4000回転のループ音は、4000回転をデフォルトに1000回転下がるごとに500セント下がるようにします。また、5000回転時は500セントピッチを上げるようにしておきます。3000回転のループ音も同様の考え方で設定します。※縦軸を音程、横軸を回転数に設定しています。

Wwiseピッチ設定

完成です!それでは実際にどういう聞こえ方がするのか動画で確認してみましょう!

※ユーザーがアクセルを踏む入力を想像してマウスを動かしています。

いかがだったでしょうか?

個人的には車内の音が少し低音が効きすぎている感触はありますが、「エンジンの滑らかな吹けあがり」は再現できたのではないかと思っております。ただ、これは回転数が1000回転~5000回転までの再現ですし、車が変わればおそらく各回転数の音質もかなり違うはずです。もしかすると今回ご紹介した方法も、ゲーム本編では通用しない可能性もありますが、ひとつの手法としてご参考になれば幸いです。

_20191210_111645_edited.jpg

効果音メモ

車の走行音を再現するということは本当に大変なことなのだと感じました。今回はエンジン音をご紹介しましたが、さらにリアルさを求めた場合、アクセルオフの挙動、風切り音、シフトノイズ、路面状況、スキール音、etc・・数えだしたらキリがないくらい車には様々な動的要素が含まれています。これらの再現についても、今後の研究対象として検討していきたいですね!

OGAWA SOUND:小川

今週の記事はいかがたっだでしょうか?効果音について少しでもご興味や関心を頂ければ大変嬉しく思います。

また、OGAWA SOUNDでは効果音に関する情報をメールマガジンにて毎週お届けしています。

もし「効果音情報メールマガジン」を初めて知ったという方はよければご登録にご参加ください。

「わかりやすさ」「シンプル」「おもしろい」をモットーに書いた記事の更新通知や、効果音の素材集などの情報をメールにてお知らせさせて頂きます。

それでは来週の「効果音の作り方記事」もお楽しみに!

ご感想やコメント頂けると励みになります!(勝った!負けた!でも嬉しいです)

bottom of page