(57)【要約】  【課題】  より現実のエンジン音に近い合成音を生成する。  【解決手段】スロットル開度およびエンジン回転速度をパラメータとして、エンジンの運転状態が複数の運転状態範囲に区分される。エンジン音記憶部１０２には、各運転状態範囲に対して、複数のエンジン音データが記憶されている。合成エンジン音データ生成部１０３は、スロットル開度データａおよびエンジン回転速度データｂにより特定される運転状態範囲に含まれる複数のエンジン音データを組み合わせて合成エンジン音データを生成する。【選択図】            図３
2005134885.tif 000002
【特許請求の範囲】
【請求項１】
複数の運転状態で収録したエンジン音データを予め定めた複数の運転状態範囲に区分して記憶しているとともに、各運転状態範囲に対して複数のエンジン音データを記憶した記憶手段と、
外部から入力される運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出して組み合わせ、合成エンジン音データを生成する合成エンジン音データ生成手段とを含むことを特徴とするエンジン音合成装置。
【請求項２】
前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データのうちの少なくとも２つを重ね合わせる重ね合わせ手段を含むことを特徴とする請求項１記載のエンジン音合成装置。
【請求項３】
前記重ね合わせ手段によって重ね合わされる少なくとも２つのエンジン音データに対して重み付けする重み付け手段をさらに含むことを特徴とする請求項２記載のエンジン音合成装置。
【請求項４】
前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを所定個数ずつ順次選択して結合する手段を含むことを特徴とする請求項１ないし３のいずれかに記載のエンジン音合成装置。
【請求項５】
前記合成エンジン音データ生成手段は、
前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データにそれぞれ重み付け処理を行う複数の重み付け手段と、
前記運転状態特定情報によって特定される運転状態範囲に対応して前記記憶手段に記憶されている複数のエンジン音データを読み出して前記重み付け部に与える読み出し制御手段と、
前記複数の重み付け部に対して、エンジン音データに与えるべき重みを設定する重み設定手段と、
前記複数の重み付け部によって重み付け処理されたエンジン音データを重ね合わせる重ね合わせ手段とを含むことを特徴とする請求項１記載のエンジン音合成装置。
【請求項６】
前記合成エンジン音データ生成手段は、
前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出して組み合わせることにより合成音データを生成する合成処理手段と、
この合成処理手段が生成する合成音データに対して、音圧の変動を与える音圧変動付与手段と、
前記音圧変動付与手段によって前記合成音データに付与される音圧の変動の幅を、前記運転状態特定情報に基づいて制御する音圧変動幅制御手段とを含むことを特徴とする請求項１ないし５のいずれかに記載のエンジン音合成装置。
【請求項７】
前記運転状態は、スロットル開度およびエンジン回転速度を含み、
前記複数の運転状態範囲は、スロットル開度範囲およびエンジン回転速度範囲に基づいて定められており、
前記運転状態特定情報は、スロットル開度およびエンジン回転速度に対応する情報を含むことを特徴とする請求項１ないし６のいずれかに記載のエンジン音合成装置。
【請求項８】
前記エンジン音合成装置は、複数の気筒を有するエンジンのエンジン音を合成するものであり、
前記合成エンジン音データ生成手段は、
前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出して組み合わせることにより合成音データを生成する合成処理手段と、
前記エンジン回転速度情報に基づいて、気筒間のエンジン音の遅れ時間を算出する気筒間遅れ時間計算手段と、
前記合成処理手段によって生成される合成音データを前記気筒間遅れ時間計算部によって計算された遅れ時間だけ遅延させる遅延処理手段と、
前記合成処理手段が生成する合成音データと前記遅延処理部によって遅延された合成音データとを重ね合わせて混合する気筒間混合処理手段とを含むものであることを特徴とする請求項７記載のエンジン音合成装置。
【請求項９】
前記記憶手段は、第１の運転状態範囲に対応して、第１の個数のエンジン音データを記憶しており、前記第１の運転状態範囲よりもスロットル開度の小さな運転状態に対応する第２運転状態範囲に対応して、前記第１の個数よりも多い第２の個数のエンジン音データを記憶しているものであることを特徴とする請求項７または８記載のエンジン音合成装置。
【請求項１０】
前記記憶手段は、第３の運転状態範囲に対応して、第３の個数のエンジン音データを記憶しており、前記第３の運転状態範囲よりもエンジン回転速度の小さな運転状態に対応する第４運転状態範囲に対応して、前記第３の個数よりも多い第４の個数のエンジン音データを記憶しているものであることを特徴とする請求項７ないし９のいずれかに記載のエンジン音合成装置。
【請求項１１】
元データとしてのエンジン音データを記憶した記憶手段と、
この記憶手段からエンジン音データを読み出し、この読み出したエンジン音データを合成して合成音データを生成する合成処理手段と、
この合成音処理手段によって生成された合成音データに対して音圧の変動を与え、音圧の変動の与えられた合成エンジン音データを生成する音圧変動付与手段と、
外部から入力され、仮想エンジンの運転状態を特定する運転状態特定情報に基づいて前記音圧変動付与手段によって合成音データに付与される音圧の変動の幅を制御する音圧変動幅制御手段とを含むことを特徴とするエンジン音合成形成装置。
【請求項１２】
前記仮想エンジンの運転状態は、スロットル開度およびエンジン回転速度を含み、
前記運転状態特定情報は、スロットル開度およびエンジン回転速度に対応する情報を含むことを特徴とする請求項１１記載のエンジン音合成装置。
【請求項１３】
前記音圧変動幅制御手段は、エンジン回転速度が小さいほど、音圧の変動の幅を大きく定めるものであることを特徴とする請求項１２記載のエンジン音合成装置。
【請求項１４】
前記エンジン音合成装置は、複数の気筒を有するエンジンのエンジン音を合成するものであり、
前記合成エンジン音データ生成手段は、
前記エンジン回転速度情報に基づいて、気筒間のエンジン音の遅れ時間を算出する気筒間遅れ時間計算手段と、
前記合成処理手段によって生成される合成音データを前記気筒間遅れ時間計算部によって計算された遅れ時間だけ遅延させる遅延処理手段と、
前記合成処理手段が生成する合成音データと前記遅延処理部によって遅延された合成音データとを重ね合わせて混合する気筒間混合処理手段とを含むものであることを特徴とする請求項１１ないし１３のいずれかに記載のエンジン音合成装置。
【請求項１５】
第１の音圧変動付与手段としての前記音圧変動付与手段に加えて、
前記遅延処理手段によって遅延された合成音データに対して音圧の変動を与え、音圧の変動の与えられた合成エンジン音データを生成する第２音圧変動付与手段をさらに含み、
前記気筒間混合処理手段は、前記第１および第２音圧変動付与手段によってそれぞれ生成される音圧変動付きの合成音データを重ね合わせて混合するものであり、
前記音圧変動幅制御手段は、前記第１および第２音圧変動付与手段によって合成音データに付与される音圧の変動の幅をそれぞれ制御するものであることを特徴とする請求項１４記載のエンジン音合成装置。
【請求項１６】
前記運転状態特定情報を入力するための入力部と、
請求項１ないし１５のいずれかに記載のエンジン音合成装置と、
このエンジン音合成装置によって合成された合成エンジン音データを音響化する出力部とを含むことを特徴とする車両。
【請求項１７】
前記運転状態特定情報を入力するための操作部と、
請求項１ないし１５のいずれかに記載のエンジン音合成装置と、
このエンジン音合成装置によって合成された合成エンジン音データを音響化する出力部とを含むことを特徴とするゲーム機。
【請求項１８】
仮想エンジンの運転状態を特定するための運転状態特定情報を受け取るステップと、
複数の運転状態で収録したエンジン音データを予め定めた複数の運転状態範囲に区分して記憶しているとともに、各運転状態範囲に対して複数のエンジン音データを記憶した記憶手段から、前記運転状態特定情報に対応する運転状態範囲のエンジン音を読み出して組み合わせることにより、合成エンジン音データを生成する合成エンジン音データ生成ステップとを含むことを特徴とするエンジン音合成方法。
【請求項１９】
前記合成エンジン音データ生成ステップは、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データのうちの少なくとも２つを重ね合わせる重ね合わせステップを含むことを特徴とする請求項１８記載のエンジン音合成方法。
【請求項２０】
前記合成エンジン音データ生成ステップは、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを所定個数ずつ順次選択して結合するステップを含むことを特徴とする請求項１８または１９記載のエンジン音合成方法。
【請求項２１】
前記合成エンジン音データ生成ステップは、
前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出すステップと、
読み出された複数のエンジン音データを組み合わせて合成音データを作成するステップと、
この作成された合成音データに対して、音圧の変動を与える音圧変動付与ステップと、
前記運転状態特定情報に基づいて前記合成音データに付与される音圧の変動の幅を制御するステップとを含むことを特徴とする請求項１８ないし２０のいずれかに記載のエンジン音合成方法。
【請求項２２】
仮想エンジンの運転状態を特定するための運転状態特定情報を受け取るステップと、
記憶手段から元データとしてのエンジン音データを読み出し、この読み出したエンジン音データを合成して合成音データを作成するステップと、
この作成された合成音データに対して、音圧の変動を与える音圧変動付与ステップと、
前記運転状態特定情報に基づいて前記合成音データに付与される音圧の変動の幅を制御するステップとを含むことを特徴とするエンジン音合成方法。
【請求項２３】
エンジン音を合成するエンジン音合成装置としてコンピュータを動作させるためのコンピュータプログラムであって、
前記コンピュータは、複数の運転状態で収録したエンジン音データを予め定めた複数の運転状態範囲に区分して記憶しているとともに、各運転状態範囲に対して複数のエンジン音データを記憶した記憶手段を備え、
前記コンピュータプログラムは、前記コンピュータを、
仮想エンジンの運転状態を特定するための運転状態特定情報を受け付ける運転状態特定情報受け付け手段、および
前記運転状態特定情報受け付け手段によって受け付けられた運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出して組み合わせ、合成エンジン音データを生成する合成エンジン音データ生成手段
として機能させるものであることを特徴とするコンピュータプログラム。
【請求項２４】
前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データのうちの少なくとも２つを重ね合わせる重ね合わせ手段を含むことを特徴とする請求項２３記載のコンピュータプログラム。
【請求項２５】
前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを所定個数ずつ順次選択して結合する手段を含むことを特徴とする請求項２３または２４記載のコンピュータプログラム。
【請求項２６】
前記合成エンジン音データ生成手段は、
前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出して組み合わせることにより、合成音データを生成する合成処理手段と、
この合成処理手段によって生成された合成音データに対して、音圧の変動を与える音圧変動付与手段と、
前記運転状態特定情報に基づいて前記音圧変動付与手段によって前記合成音データに付与される音圧の変動の幅を制御する音圧変動幅制御手段とを含むことを特徴とする請求項２３ないし２５のいずれかに記載のコンピュータプログラム。
【請求項２７】
前記運転状態は、スロットル開度およびエンジン回転速度を含み、
前記複数の運転状態範囲は、スロットル開度範囲およびエンジン回転速度範囲に基づいて定められており、
前記運転状態特定情報は、スロットル開度およびエンジン回転速度に対応する情報を含むことを特徴とする請求項２３ないし２６のいずれかに記載のコンピュータプログラム。
【請求項２８】
エンジン音を合成するエンジン音合成装置としてコンピュータを動作させるためのコンピュータプログラムであって、
前記コンピュータは、元データとしてのエンジン音データを記憶した記憶手段を備え、
前記コンピュータプログラムは、前記コンピュータを、
仮想エンジンの運転状態を特定するための運転状態特定情報を受け付ける運転状態特定情報受け付け手段、
前記記憶手段からエンジン音データを読み出し、この読み出したエンジン音データを合成して合成音データを生成する合成処理手段、
この合成音処理手段によって生成された合成音データに対して音圧の変動を与え、音圧変動の与えられた合成エンジン音データを生成する音圧変動付与手段、および
前記運転状態情報受け付け手段によって受け付けられた運転状態特定情報に基づいて前記音圧変動付与手段によって合成音データに付与される音圧の変動の幅を制御する音圧変動幅制御手段
として機能させるものであることを特徴とするコンピュータプログラム。
【請求項２９】
前記仮想エンジンの運転状態は、スロットル開度およびエンジン回転速度を含み、
前記運転状態特定情報は、スロットル開度およびエンジン回転速度に対応する情報を含むことを特徴とする請求項２８記載のコンピュータプログラム。
【請求項３０】
請求項２３ないし２９のいずれかに記載のコンピュータプログラムが記録されたコンピュータ読取可能な記憶媒体。
【請求項３１】
請求項２３ないし２９のいずれかに記載のコンピュータプログラムが組み込まれたゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実のエンジン音を材料として、現実により近いエンジン音を合成できるエンジン音合成装置およびエンジン音合成方法に関する。また、この発明は、エンジン音合成装置が組み込まれたゲーム機および車両に関する。さらに、この発明は、エンジン音合成のためのコンピュータプログラム、およびそれを組み込んだゲームプログラム、ならびに前記コンピュータプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
従来のエンジン音合成装置は、特許文献１に示されている。特許文献１に示された従来のエンジン音合成装置では、エンジンの運転状態が、アクセル開度とエンジン回転速度をパラメータとして、複数の運転状態範囲に区分されている。エンジン音は、各運転状態範囲のほぼ中央に該当する運転状態で、予め録音される。録音されたエンジン音から、クランク軸が１燃焼サイクル分回転する時間に相当する区間のエンジン音のディジタルデータが切り出される。この切り出されたエンジン音データが、記憶部に予め記憶される。エンジン音合成装置は、アクセル開度とエンジン回転速度の入力に応じた運転状態範囲のエンジン音データを記憶部から読み出して繰り返して発音させるようになっている。また、実際のエンジン音に特有な不定性を再現するために、発音されるエンジン音の大きさ、高さおよび音色のうちの少なくともいずれかが、エンジン音データの各回の再生の度に変化させられるようになっている。
【特許文献１】特開２０００−０１０５７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来のエンジン音合成装置は、アクセル開度とエンジン回転速度をパラメータとしてエンジンの状態を複数に分けた各運転状態範囲について、エンジン音データを１つしか記憶していない。そのため、この１つのエンジン音データに各種の変化を施しても、現実のエンジン音とほぼ同一の合成音を生成できるまでには至っていない。
この発明の目的は、より現実のエンジン音に近い合成エンジン音を生成することができるエンジン音合成装置、およびエンジン音合成方法を提供することを目的とする。
【０００４】
また、この発明の他の目的は、現実のエンジン音に近い合成エンジン音を生成できるエンジン音合成装置が組み込まれた車両およびゲーム機を提供することである。
この発明のさらに他の目的は、現実のエンジン音に近い合成音を生成できるコンピュータプログラムおよびそれを組み込んだゲームプログラム、ならびにそのコンピュータプログラムを記録した記録媒体を提供することである。
【課題を解決するための手段】
【０００５】
この発明に係る第１のエンジン音合成装置は、複数の運転状態で収録したエンジン音データを予め定めた複数の運転状態範囲に区分して記憶しているとともに、各運転状態範囲に対して複数のエンジン音データを記憶した記憶手段と、外部から入力される運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出して組み合わせ、合成エンジン音データを生成する合成エンジン音データ生成手段とを含む。
【０００６】
この構成によれば、個々の運転状態範囲に対して複数のエンジン音データが記憶手段に記憶されている。そして、外部から運転状態特定情報が与えられると、それによって特定される運転状態範囲に対応した複数のエンジン音データが記憶手段から読み出され、それらを組み合わせることによって、合成エンジン音データが生成される。したがって、ただ一つのエンジン音データから合成されるエンジン音に比較して、現実のエンジン音により近い不定性を持つエンジン音を合成することができる。
【０００７】
前記エンジン音データは、実際のエンジンを運転させてエンジン音を録音し、この録音されたエンジン音から任意の区間で切り出して得られるデータであることが好ましい。より具体的には、エンジンの運転状態を連続的に、または段階的に変化させ、その間に収録したエンジン音から、運転状態範囲ごとのエンジン音データを切り出せばよい。
複数のエンジン音データを組み合わせる合成処理は、複数のエンジン音データを重ね合わせる重ね合わせ処理を含んでいてもよい。また、この合成処理は、複数のエンジン音データを時間軸上で順次結合していく時間軸結合処理を含んでいてもよい。むろん、この合成処理は、重ね合わせ処理および時間軸結合処理の両方を含んでいてもよい。
【０００８】
より具体的には、前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データのうちの少なくとも２つを重ね合わせる重ね合わせ手段を含むものであってもよい。これにより、合成エンジン音データに十分な不定性を与えることができ、現実のエンジン音に近い合成音を得ることができる。
【０００９】
また、この発明の１つの実施形態に係るエンジン音合成装置は、前記重ね合わせ手段によって重ね合わされる少なくとも２つのエンジン音データに対して重み付けする重み付け手段をさらに含む。これにより、合成エンジン音データに対して、より大きな不定性を与えることができるから、より現実のエンジン音に近い合成音を得ることができる。
さらに、前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを所定個数ずつ順次選択して結合する手段を含むものであってもよい。これにより、合成エンジン音データを構成するデータが、順次異なるエンジン音データへと切り換えられていくことにより、時間軸上で複数のエンジン音データが結合されることになる。こうして、合成エンジン音データに十分な不定性を与えることができる。複数個のエンジン音データを順次選択して時間軸上で結合して合成エンジン音データを作成すれば、重ね合わせ処理と時間軸結合処理とを併用でき、より大きな不定性を持った合成エンジン音を生成できる。
【００１０】
前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データにそれぞれ重み付け処理を行う複数の重み付け手段と、前記運転状態特定情報によって特定される運転状態範囲に対応して前記記憶手段に記憶されている複数のエンジン音データを読み出して前記重み付け部に与える読み出し制御手段と、前記複数の重み付け部に対して、エンジン音データに与えるべき重みを設定する重み設定手段と、前記複数の重み付け部によって重み付け処理されたエンジン音データを重ね合わせる重ね合わせ手段とを含むものであってもよい。
【００１１】
この構成により、複数のエンジン音データに対して個々に重み付けをし、この重み付けされた複数のエンジン音データに対して重ね合わせ処理を行うことができる。或るエンジン音データの重みを零とすれば、そのエンジン音データは合成音には寄与しない。したがって、或るエンジン音データに対する重みを零とするか零以外の値とするかによって、そのエンジン音データの選択／非選択を切り換えることができる。たとえば、所定個数のエンジン音データについてのみ重みを零以外の値とし、他のエンジン音データに対する重みを零とすることにより、所定個数のエンジン音データを選択して、それらのエンジン音データを組み合わせた合成エンジン音データを作成できる。さらに、選択する所定個数のエンジン音データを順次切り換えていけば、前述の時間軸結合処理を行える。
【００１２】
前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出して組み合わせることにより合成音データを生成する合成処理手段と、この合成処理手段が生成する合成音データに対して、音圧の変動（揺らぎ）を与える音圧変動付与手段（揺らぎ処理手段）と、前記音圧変動付与手段によって前記合成音データに付与される音圧の変動（揺らぎ）の幅を、前記運転状態特定情報に基づいて制御する音圧変動幅制御手段（揺らぎ幅制御手段）とを含むものであってもよい。
【００１３】
この構成によれば、合成音データに対して運転状態に応じた変動幅で音圧の変動（揺らぎ）が与えられる。これにより、運転状態に応じた適切な音圧変動（揺らぎ）を持った合成音を作成することができ、合成音を現実のエンジン音により近づけることができる。
音圧変動付与手段は、たとえば、合成音データに対して音圧増幅処理を施す音圧増幅処理部からなっていてもよい。この場合に、音圧変動付与手段は、所定単位の合成音データごとに音圧増幅率を変化させることによって、時間軸上で隣接する合成音データ間に音圧の相対変動（揺らぎ）を与えるものであってもよい。前記所定単位の合成音データとは、たとえば、エンジンの１気筒の１回の爆発区間に対応したデータであってもよく、エンジンの１燃焼サイクルの爆発区間に対応したデータであってもよい。一般的には、記憶手段に所定単位（１気筒の１回の爆発区間、１燃焼サイクルなど）のエンジン音データが記憶されている場合には、同じ単位の合成音データごとに音圧増幅率を変化させればよい。
【００１４】
また、音圧変動付与手段は、たとえば、所定の周期ごとに音圧変動率を変化させることによって、時間軸上で隣接する周期の合成音データに対して音圧の相対変動（揺らぎ）を与えるものであってもよい。
前記運転状態は、スロットル開度およびエンジン回転速度を含むことが好ましい。それに応じて、前記複数の運転状態範囲は、スロットル開度範囲およびエンジン回転速度範囲に基づいて定められており、前記運転状態特定情報は、スロットル開度およびエンジン回転速度に対応する情報を含むものであることが好ましい。「スロットル開度およびエンジン回転速度に対応する情報」とは、アクセル開度や変速機のシフト位置に関する情報のように、所定の演算によって、スロットル開度およびエンジン回転速度を推定できる情報であってもよい。
【００１５】
エンジンのスロットル開度およびエンジン回転速度は、エンジン音に直接的に影響のあるパラメータである。したがって、これらをパラメータとして運転状態範囲を定めることにより、現実のエンジン音に近い合成音を作成できる。
すなわち、スロットル開度（運転操作量に対応する。）およびエンジン回転速度により表される運転状態を複数の範囲に分け、各範囲で収録されたエンジン音のデータが複数用意されることになる。その複数のエンジン音のデータを用いて、各運転状態範囲における現実のエンジン音の不定性を忠実に表現できる。
【００１６】
前記エンジン音合成装置は、複数の気筒を有するエンジンのエンジン音を合成するものであってもよい。この場合に、前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出して組み合わせることにより合成音データを生成する合成処理手段と、前記エンジン回転速度情報に基づいて、気筒間のエンジン音の遅れ時間を算出する気筒間遅れ時間計算手段と、前記合成処理手段によって生成される合成音データを前記気筒間遅れ時間計算部によって計算された遅れ時間だけ遅延させる遅延処理手段と、前記合成処理手段が生成する合成音データと前記遅延処理部によって遅延された合成音データとを重ね合わせて混合する気筒間混合処理手段とを含むものであることが好ましい。
【００１７】
この構成によれば、たとえば、単一気筒のエンジン音データを記憶手段に格納しておけば、気筒間の遅れ時間を考慮することにより、複数気筒の構成のエンジン音を合成できる。これにより、記憶手段の記憶容量を削減でき、エンジン音の収録の労力も軽減できる。しかも、単一の音源のデータを用いて複数種類のエンジン音を合成できるので、個々の運転状態範囲のエンジン音データの個数を多くすることができる。これにより、より大きな不定性を持った合成音を作成できる。
【００１８】
前記記憶手段は、第１の運転状態範囲に対応して、第１の個数のエンジン音データを記憶しており、前記第１の運転状態範囲よりもスロットル開度の小さな運転状態に対応する第２運転状態範囲に対応して、前記第１の個数よりも多い第２の個数のエンジン音データを記憶しているものであることが好ましい。また、前記記憶手段は、第３の運転状態範囲に対応して、第３の個数のエンジン音データを記憶しており、前記第３の運転状態範囲よりもエンジン回転速度の小さな運転状態に対応する第４運転状態範囲に対応して、前記第３の個数よりも多い第４の個数のエンジン音データを記憶しているものであることが好ましい。
【００１９】
すなわち、小さなスロットル開度および／または低いエンジン回転速度に対応する運転状態範囲については、記憶手段に記憶されるエンジン音データのサンプル数が少なくなっている。また、大きなスロットル開度および／または高いエンジン回転速度に対応する運転状態範囲については、記憶手段に記憶されるエンジン音データのサンプル数が多くなっている。これにより、実際のエンジン音により近似した合成音を作成できる。なぜなら、現実のエンジンは、スロットル開度が小さいほど、また、エンジン回転速度が低いほど、動きが不安定になり、それに応じてエンジン音の不定性も大きくなるからである。
【００２０】
この発明に係る第２のエンジン音合成装置は、元データとしてのエンジン音データを記憶した記憶手段と、この記憶手段からエンジン音データを読み出し、この読み出したエンジン音データを合成して合成音データを生成する合成処理手段と、この合成音処理手段によって生成された合成音データに対して音圧の変動（揺らぎ）を与え、音圧変動（揺らぎ）の与えられた合成エンジン音データを生成する音圧変動付与手段（揺らぎ処理手段）と、外部から入力され、仮想エンジンの運転状態を特定する運転状態特定情報に基づいて前記音圧変動付与手段によって合成音データに付与される音圧の変動の幅を制御する音圧変動幅制御手段（揺らぎ幅制御手段）とを含む。
【００２１】
この構成によれば、合成音データに対して、エンジンの運転状態に応じた変動幅で音圧の変動（揺らぎ）が与えられる。これにより、運転状態に応じた適切な音圧変動（揺らぎ）を持った合成音を作成することができ、現実のエンジン音に近い合成音を作成できる。
前記仮想エンジンの運転状態は、スロットル開度およびエンジン回転速度を含み、それに応じて、前記運転状態特定情報は、スロットル開度およびエンジン回転速度に対応する情報を含むことが好ましい。
【００２２】
この場合に、前記音圧変動幅制御手段は、エンジン回転速度が小さいほど、音圧の変動（揺らぎ）の幅を大きく定めるものであることが好ましい。これにより、エンジンの状態の不安定性が大きくなる低回転速度時において、大きな音圧変動（揺らぎ）を持った合成音を生成できる。これにより、現実のエンジン音により近い合成音を作成できる。
前記エンジン音合成装置は、複数の気筒を有するエンジンのエンジン音を合成するものであってもよい。この場合に、前記合成エンジン音データ生成手段は、前記エンジン回転速度情報に基づいて、気筒間のエンジン音の遅れ時間を算出する気筒間遅れ時間計算手段と、前記合成処理手段によって生成される合成音データを前記気筒間遅れ時間計算部によって計算された遅れ時間だけ遅延させる遅延処理手段と、前記合成処理手段が生成する合成音データと前記遅延処理部によって遅延された合成音データとを重ね合わせて混合する気筒間混合処理手段とを含むものであることが好ましい。
【００２３】
この構成によれば、たとえば、単一気筒のエンジンを運転させて収録したエンジン音を用いて、複数気筒の構成のエンジンに対応した合成音を作成でき、かつ、その合成音に音圧変動（揺らぎ）を与えることができる。
この構成の場合に、第１の音圧変動付与手段（第１の揺らぎ処理手段）としての前記音圧変動付与手段に加えて、前記遅延処理手段によって遅延された合成音データに対して音圧の変動（揺らぎ）を与え、音圧変動（揺らぎ）の与えられた合成エンジン音データを生成する第２音圧変動付与手段（揺らぎ処理手段）をさらに含むことが好ましい。この場合、前記気筒間混合処理手段は、前記第１および第２音圧変動付与手段によってそれぞれ生成される音圧変動（揺らぎ）付きの合成音データを重ね合わせて混合するものとすればよく、前記音圧変動幅制御手段は、前記第１および第２音圧変動付与手段によって合成音データに付与される音圧の変動（揺らぎ）の幅をそれぞれ制御するものとすればよい。
【００２４】
この構成によれば、気筒間の遅延処理のされた合成音データに対しても音圧の変動（揺らぎ）が与えられるので、より不定性の大きなエンジン音を合成できる。とくに、第１および第２音圧変動付与手段によって合成音データにそれぞれ与えられる音圧変動のパターン（強弱パターン）を異ならせておけば、より大きな不定性を持ったエンジン音を合成できる。むろん、音圧変動幅制御手段は、第１および第２音圧変動付与手段に対して、異なる音圧変動幅を設定するものであってもよい。
【００２５】
この発明に係る車両は、前記運転状態特定情報を入力するための入力部と、前述のような構成を有するエンジン音合成装置と、このエンジン音合成装置によって合成された合成エンジン音データを音響化する出力部とを含む。たとえば、車両は、電気自動車のようなエンジン（内燃機関）を持たない車両であってもよい。このような場合に、この発明によれば、エンジンを持つ車両に近い音を車両から発生させることができる。これにより、車両の乗員には、その聴覚に訴えて、エンジン付きの車両に乗車しているときのような満足感を与えることができる。また、車両の周囲の者（とくに歩行者）には、その聴覚に訴えて、車両の存在を示すことができる。
【００２６】
この発明に係るゲーム機は、前記運転状態特定情報を入力するための操作部と、前述のような構成を有するエンジン音合成装置と、このエンジン音合成装置によって合成された合成エンジン音データを音響化する出力部とを含む。この構成によれば、遊技者による操作部の操作に応じて、十分な不定性を持った合成エンジン音データが生成され、これが出力部から音響化される。これにより、遊技者は、現実のエンジン音に近似した合成音を感じながらゲームを行うことができる。これにより、ゲーム機の迫真性を高めることができる。
【００２７】
この発明の第１のエンジン音合成方法は、仮想エンジンの運転状態を特定するための運転状態特定情報を受け取るステップと、複数の運転状態で収録したエンジン音データを予め定めた複数の運転状態範囲に区分して記憶しているとともに、各運転状態範囲に対して複数のエンジン音データを記憶した記憶手段から、前記運転状態特定情報に対応する運転状態範囲のエンジン音データを読み出して組み合わせることにより、合成エンジン音データを生成する合成エンジン音データ生成ステップとを含む。
【００２８】
この方法により、運転状態特定情報に応じた運転状態範囲の複数のエンジン音データを合成して合成エンジン音データが生成される。こうして生成される合成エンジン音データは、大きな不定性を有するから、この合成エンジン音データを用いることにより、現実のエンジン音に近い合成音を生成できる。
前記合成エンジン音データ生成ステップは、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データのうちの少なくとも２つを重ね合わせる重ね合わせステップを含んでいてもよい。また、前記合成エンジン音データ生成ステップは、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを所定個数ずつ順次選択して結合するステップを含んでいてもよい。
【００２９】
前記合成エンジン音データ生成ステップは、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出すステップと、読み出された複数のエンジン音データを組み合わせて合成音データを作成するステップと、この作成された合成音データに対して、音圧の変動（揺らぎ）を与える音圧変動付与ステップと、前記運転状態特定情報に基づいて前記合成音データに付与される音圧の変動の幅を制御するステップとを含むことが好ましい。これにより、音圧の変動が与えられた合成エンジン音データは、より大きな不定性を有することになる。したがって、より現実のエンジン音に近似した合成音を生成することができる。
【００３０】
この発明の第２のエンジン音合成方法は、仮想エンジンの運転状態を特定するための運転状態特定情報を受け取るステップと、記憶手段から元データとしてのエンジン音データを読み出し、この読み出したエンジン音データを合成して合成音データを作成するステップと、この作成された合成音データに対して、音圧の変動（揺らぎ）を与える音圧変動付与ステップと、前記運転状態特定情報に基づいて前記合成音データに付与される音圧の変動の幅を制御するステップとを含む。
【００３１】
この方法により、合成音データに対して、エンジンの運転状態に応じた変動幅で音圧の変動（揺らぎ）が与えられる。これにより、運転状態に応じた適切な音圧変動を持った合成音を作成することができ、現実のエンジン音に近い合成音を作成できる。
この発明の第１のコンピュータプログラムは、エンジン音を合成するエンジン音合成装置としてコンピュータを動作させるためのコンピュータプログラムであって、前記コンピュータは、複数の運転状態で収録したエンジン音データを予め定めた複数の運転状態範囲に区分して記憶しているとともに、各運転状態範囲に対して複数のエンジン音データを記憶した記憶手段を備え、前記コンピュータプログラムは、前記コンピュータを、仮想エンジンの運転状態を特定するための運転状態特定情報を受け付ける運転状態特定情報受け付け手段、および前記運転状態特定情報受け付け手段によって受け付けられた運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出して組み合わせ、合成エンジン音データを生成する合成エンジン音データ生成手段として機能させるものである。
【００３２】
このコンピュータプログラムをコンピュータ上で実行することにより、コンピュータを前記第１のエンジン音合成装置として機能させることができる。むろん、コンピュータプログラムをバージョンアップすれば、コンピュータで構成されるエンジン音合成装置の機能を容易に高めることができる。
前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データのうちの少なくとも２つを重ね合わせる重ね合わせ手段を含むものであってもよい。また、前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを所定個数ずつ順次選択して結合する手段を含むものであってもよい。
【００３３】
さらに、前記合成エンジン音データ生成手段は、前記運転状態特定情報によって特定される運転状態範囲に対応した複数のエンジン音データを前記記憶手段から読み出して組み合わせることにより、合成音データを生成する合成処理手段と、この合成処理手段によって生成された合成音データに対して、音圧の変動を与える音圧変動付与手段と、前記運転状態特定情報に基づいて前記音圧変動付与手段によって前記合成音データに付与される音圧の変動の幅を制御する音圧変動幅制御手段とを含むことが好ましい。
【００３４】
前記運転状態は、スロットル開度およびエンジン回転速度を含んでいてもよい。この場合、前記複数の運転状態範囲は、スロットル開度範囲およびエンジン回転速度範囲に基づいて定められており、前記運転状態特定情報は、スロットル開度およびエンジン回転速度に対応する情報を含むことが好ましい。
この発明の第２のコンピュータプログラムは、エンジン音を合成するエンジン音合成装置としてコンピュータを動作させるためのコンピュータプログラムであって、前記コンピュータは、元データとしてのエンジン音データを記憶した記憶手段を備え、前記コンピュータプログラムは、前記コンピュータを、仮想エンジンの運転状態を特定するための運転状態特定情報を受け付ける運転状態特定情報受け付け手段、前記記憶手段からエンジン音データを読み出し、この読み出したエンジン音データを合成して合成音データを生成する合成処理手段、この合成音処理手段によって生成された合成音データに対して音圧の変動を与え、音圧変動の与えられた合成エンジン音データを生成する音圧変動付与手段、および前記運転状態情報受け付け手段によって受け付けられた運転状態特定情報に基づいて前記音圧変動付与手段によって合成音データに付与される音圧の変動の幅を制御する音圧変動幅制御手段として機能させるものである。
【００３５】
このコンピュータプログラムをコンピュータ上で実行することにより、コンピュータを前記第２のエンジン音合成装置として機能させることができる。
前記仮想エンジンの運転状態は、スロットル開度およびエンジン回転速度を含んでいてもよい。この場合に、前記運転状態特定情報は、スロットル開度およびエンジン回転速度に対応する情報を含むことが好ましい。
【００３６】
この発明の記録媒体は、前述のような構成を有するコンピュータプログラムを記録したものである。この記録媒体に記録されたコンピュータプログラムをコンピュータで読み取って実行させることにより、このコンピュータを前述のようなエンジン音合成装置として機能させることができる。コンピュータプログラムは、どのような形式で記録媒体に記録されていてもよく、たとえば、圧縮した形式で記録されていてもよい。記録媒体には、半導体メモリ、磁気記録媒体、光記録媒体および光磁気記録媒体を含む任意の記録形式のものを適用できる。より具体的には、車両やゲーム機に組み込まれる不揮発性メモリの形態を有していてもよい。不揮発性メモリは、ＲＯＭであってもよいし、書き換え可能なメモリ（ＥＥＰＲＯＭなど）であってもよい。
【００３７】
この発明のゲームプログラムは、前述のような構成を有する音声合成用コンピュータプログラムが組み込まれたものである。このゲームプログラムを、操作部および出力部（音信号を音響化するもの）が接続されたコンピュータ上で実行させることにより、このコンピュータをゲーム機として作動させることができる。この場合に、ゲーム機としてのコンピュータは、現実のエンジン音に近い合成音を発生させることができ、ゲームの迫真性を高めることができる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
［第１実施形態］
図１は、この発明の第１実施形態に係るエンジン音合成装置が適用されるゲーム機４０の電気的構成を説明するためのブロック図である。このゲーム機４０は、自動車（自動二輪車または四輪自動車）のレーシングゲーム機であってもよいし、ドライビングシミュレータであってもよい。このゲーム機４０において、この発明の第１実施形態に係るエンジン音合成装置は、臨場感または迫真性を高めるために使用される。
【００３９】
ゲーム機４０は、コンピュータとしての基本構成を有するゲーム機本体４１を備えている。このゲーム機本体４１には、操作部４２と、出力部４３と、表示部４４とが接続されている。
たとえば、ゲーム機４０は、レーシングゲームやドライビングシミュレータのような、いわゆるアーケードゲーム機であってもよい。この場合、ゲーム機４０が自動二輪車を模擬したものであれば、操作部４２は、ステアリングハンドル、アクセルグリップ、ブレーキペダル（および／またはブレーキレバー）、ならびにシフトペダルを含む。また、ゲーム機４０が四輪自動車を模擬したものである場合、操作部４２は、ステアリングホイール、アクセルペダル、ブレーキペダルおよびシフトレバーを含む。
【００４０】
この場合に、操作部４２は、ステアリングハンドルまたはステアリングホイールの操作量を検出して舵角情報を出力する舵角センサ４５と、アクセルグリップまたはアクセルペダルの操作量を検出して出力するアクセル操作量センサ４６と、ブレーキペダル（および／またはブレーキレバー）の操作量を検出して出力するブレーキ操作量センサ４７と、シフトペダルまたはシフトレバーの操作位置を検出して出力する変速機センサ４８とを備えている。これらのセンサ４５〜４８の出力信号は、ゲーム機本体４１に入力されるようになっている。
【００４１】
出力部４３は、増幅器およびスピーカを含む。出力部４３は、ゲーム機本体４１から音信号の供給を受け、この音信号を音響化する。スピーカは、発生する音が遊技者に聴取されるように配置されればよい。通常は、遊技者の着座位置の前方にスピーカを配置すればよい。ゲーム機４０が自動二輪車を模擬するものである場合には、スピーカは遊技者が装着するヘルメットに内蔵しておいてもよい。
【００４２】
表示部４４は、遊技者の着座位置の前方に配置され、遊技中には、たとえば、実走行時に自動車の運転者が目にすることになる映像を模擬した動画映像を表示する。
ゲーム機本体４１は、ＣＰＵ５０と、ＲＯＭ５１と、ＲＡＭ５２と、これらが接続されたバス５３とを有する。バス５３には、操作部４２のセンサ４５〜４８の入力を受け付ける操作部コントローラ５４と、出力部４３に音信号を与える音出力コントローラ５５と、表示部４４に表示信号を与える表示コントローラ５６とが接続されている。
【００４３】
ＲＯＭ５１は、コンピュータプログラムであるゲームプログラム５７を記録した記録媒体である。このゲームプログラム５７には、エンジン音合成プログラム（コンピュータプログラム）５８と、エンジン音データ５９と、仮想エンジンデータ６０と、仮想車体データ６１とが組み込まれている。エンジン音データ５９、仮想エンジンデータ６０および仮想車体データ６１は、エンジン音合成プログラム５８によって用いられる。エンジン音データ５９は、実際のエンジン音を予め録音し、その録音されたエンジン音から所定の区間を切り出して作成したものである。仮想エンジンデータ６０は、エンジンの出力特性などを記録したデータである。仮想車体データ６１は、車両の走行抵抗などを記録したデータである。
【００４４】
ＣＰＵ５０は、ＲＡＭ５２の記憶領域をワークエリアとして用いながら、ＲＯＭ５１に記録されているゲームプログラム５７を実行する。これにより、ＣＰＵ５０は、ゲームプログラム５７に従って、操作部４２からの入力信号に応じて音出力コントローラ５５および表示コントローラ５６を制御する。ＣＰＵ５０が、ゲームプログラム５７に組み込まれたエンジン音合成プログラム５８を実行するとき、ゲーム機本体４１は、エンジン音合成装置として機能することになる。
【００４５】
図２は、この実施形態のゲーム機を構成することができるパーソナルコンピュータ７０の電気的構成を説明するためのブロック図である。パーソナルコンピュータ７０は、コンピュータ本体７１を備えており、このコンピュータ本体７１に、操作部７２、出力部７３および表示装置７４が接続されている。操作部７２は、キーボードやマウスであってもよく、ゲーム用の入力装置（ジョイスティック、ドライビングシミュレータ用入力装置など）であってもよい。出力部７３は、たとえば、増幅器およびスピーカを備え、コンピュータ本体７１から供給される音信号を音響化する。表示装置７４は、ＣＲＴや液晶表示装置などからなり、コンピュータ本体７１から供給される画像信号に対応した画像を表示する。
【００４６】
コンピュータ本体７１は、ＣＰＵ８０と、ＲＯＭ８１と、ＲＡＭ８２と、これらが接続されたバス８３とを有する。バス８３には、操作部７２からの入力を受け付ける操作部コントローラ８４と、出力部７３に音信号を与える音出力コントローラ８５と、表示装置７４に表示信号を与える表示コントローラ８６とが接続されている。
バス８３にはさらに、磁気記録媒体であるハードディスクドライブ（ＨＤＤ）７５と、光記録媒体であるＣＤ−ＲＯＭ７６を読み取ることができるＣＤ−ＲＯＭドライブ７７とが接続されている。
【００４７】
ＣＤ−ＲＯＭ７６には、ゲームプログラムが記録されている。このＣＤ−ＲＯＭ７６をＣＤ−ＲＯＭドライブ７７に装填して読み取らせることにより、ゲームプログラム８７をハードディスクドライブ７５内の記憶領域にインストールすることができる。このゲームプログラム８７には、ゲーム機４０の場合と同様に、エンジン音合成プログラム（コンピュータプログラム）８８と、エンジン音データ８９と、仮想エンジンデータ９０と、仮想車体データ９１とが組み込まれている。
【００４８】
ＣＰＵ８０は、ＲＡＭ８２の記憶領域をワークエリアとして用いながら、ハードディスクドライブ７５に記録されているゲームプログラム８７を実行する。これにより、ＣＰＵ８０は、ゲームプログラム８７に従って、操作部７２からの入力信号に応じて音出力コントローラ８５および表示コントローラ８６を制御する。ＣＰＵ８０が、ゲームプログラム８７に組み込まれたエンジン音合成プログラム８８を実行するとき、コンピュータ本体７１は、エンジン音合成装置として機能することになる。
【００４９】
ゲームプログラム８７を実行しているＣＰＵ８０は、操作部７２における所定の第１の操作（たとえば所定の第１キー操作）を操舵として検出し、所定の第２の操作（たとえば所定の第２キー操作）をアクセル操作として検出し、所定の第３の操作（たとえば所定の第３キー操作）をシフトレバー操作として検出する。したがって、この場合、操作部７２は、運転状態を入力する運転操作部として機能することになる。
【００５０】
ゲーム機は、また、いわゆる家庭用のＴＶゲーム機として構成することもできる。ＴＶゲーム機の構成は、図２のコンピュータの構成と類似している。ただし、操作部は、押しボタンや操作レバーを有するゲーム専用操作装置で構成される。
図３は、前記図１または図２の構成において、ＣＰＵ５０，８０がエンジン音合成プログラム５８，８８を実行することによって実現されるエンジン音合成装置１００の構成を説明するためのブロック図である。
【００５１】
エンジン音合成装置１００は、運転状態検出部１０１、エンジン音記憶部１０２、合成エンジン音データ生成部１０３、仮想エンジン／車体データ記憶部１０４、および出力処理部１０５を具備する。
エンジン音記憶部１０２は、ゲーム機４０のＲＯＭ５１またはパーソナルコンピュータ７０のハードディスクドライブ７５の記憶領域の一部によって構成されており、前述のエンジン音データ５９，８９を記憶する記憶手段として機能する。
【００５２】
仮想エンジン／車体データ記憶部１０４も同じく、ゲーム機４０のＲＯＭ５１またはパーソナルコンピュータ７０のハードディスクドライブ７５の記憶領域の一部によって構成されており、これらは、前述の仮想エンジンデータ６０，９０および仮想車体データ６１，９１を記憶している。
運転状態検出部１０１は、ＣＰＵ５０，８０がゲームプログラム５７，８７を実行することによって構成される機能処理部であり、運転状態特定情報受け付け手段として機能する。この運転状態検出部１０１は、運転操作検出部１０１１およびエンジン回転速度計算部１０１２を有する。
【００５３】
運転操作検出部１０１１は、運転操作者の操作部４２，７２からの入力信号に基づいて、運転操作量を求めて、運転操作信号を出力する。この運転操作信号は、操作部４２，７２の操作量に応じた仮想のスロットル開度およびシフト位置を表す信号である。この運転操作信号は、エンジン回転速度計算部１０１２に与えられる。
エンジン回転速度計算部１０１２は、運転操作検出部１０１１からの運転操作信号と、仮想エンジン／車体データ記憶部１０４にあらかじめ記録されているエンジンの出力特性および車両の走行抵抗のデータとに基づいて、エンジン出力と走行抵抗とのバランスがとれる仮想のエンジン回転速度を計算する。
【００５４】
合成エンジン音データ生成部１０３は、ＣＰＵ５０，８０がエンジン音合成プログラム５８，８８を実行することによって構成される機能処理部である。この合成エンジン音データ生成部１０３は、運転操作検出部１０１１から、運転操作信号のうちのスロットル開度データａを受け、また、エンジン回転速度計算部１０１２からは、エンジン回転速度データｂを受ける。これらに基づいて、合成エンジン音データ生成部１０３は、エンジン音記憶部１０２に記憶されているエンジン音データを合成して、合成エンジン音データを生成する。
【００５５】
出力処理部１０５は、前記音出力コントローラ５５，８５に対応しており、合成エンジン音データ生成部１０３が生成する合成エンジン音データをアナログ音信号に変換するディジタル／アナログ（Ｄ／Ａ）変換器を備えている。この出力処理部１０５からのアナログ信号が、出力部４３，７３に与えられることにより、合成エンジン音が音響化されることになる。
【００５６】
図４は、エンジン音記憶部１０２におけるエンジン音データの記憶態様と、合成エンジン音データ生成部１０３の具体的な構成とを説明するためのブロック図である。エンジン音記憶部１０２は、エンジン音データをエンジン回転速度およびスロットル開度に割付けて格納したテーブルを記憶している。より具体的には、エンジン回転速度およびスロットル開度をパラメータとして表される仮想エンジンの運転状態が、それらのパラメータによって、複数（この実施形態では１６個）の運転状態範囲１〜１６に区分される（図７参照）。そして、各運転状態範囲１〜１６に対して、複数個（ｎ個。ｎは自然数でｎ≧２）のエンジン音データ１−１，１−２，……，１−ｎ；２−１，２−２，……，２−ｎ；３−１，３−２，……，３−ｎ；…………；１６−１，１６−２，……，１６−ｎがエンジン音記憶部１０２に記憶されている。
【００５７】
運転状態範囲１は、エンジンがアイドリング状態のときに対応し、運転状態範囲１６は、最大出力時に対応する。
図４の例では、各運転状態範囲１〜１６に対応した記憶領域にエンジン音データが１つずつ入るｎ個のテーブル１０２−１〜１０２−ｎを用意した記憶態様が表されている。むろん、各運転状態範囲１〜１６に対応した記憶領域にｎ個のエンジン音データを格納できる１つのテーブルの形式でエンジン音データを記憶することもできる。
【００５８】
各運転状態範囲１〜１６に格納するエンジン音データの数（サンプル数）は、運転状態範囲ごとに異なっていてもよい。具体的には、スロットル開度およびエンジン回転速度が低い運転状態範囲では、スロットル開度およびエンジン回転速度が高い運転状態範囲よりも、サンプル数を多くすることが好ましい。たとえば、アイドリング時に対応した運転状態範囲１に対応するサンプル数を、最高出力時に対応する運転状態範囲１６に対応するサンプル数よりも多くしておくことが好ましい。
【００５９】
なぜならば、現実のエンジンは、スロットル開度およびエンジン回転速度が低い運転状態においては、不安定な動きをするからである。そのために、そのような運転状態でのエンジン音は、ばらつきが多く、不定性が大きい。この大きな不定性を忠実に再現するためには、多くのサンプル数が必要となる。
特に、クランク軸が１回転する間に１回の燃焼が発生する２サイクルエンジンでは、アイドリング状態での異常燃焼が起こりやすいため、アイドリング時に対応した運転状態範囲のサンプル数を多くしておくと効果的である。
【００６０】
合成エンジン音データ生成部１０３は、運転操作検出部１０１１から受け取るスロットル開度データａおよびエンジン回転速度計算部１０１２から受け取るエンジン回転速度データｂに基づいて運転状態範囲を特定する。そして、合成エンジン音データ生成部１０３は、その特定された運転状態範囲に対応する複数のエンジン音データをエンジン音記憶部１０２から複数読み出し、それらを組み合わせることにより、合成エンジン音データを生成する。
【００６１】
エンジン音記憶部１０２のテーブルは、必ずしも予め完成されている必要はない。たとえば、図５に示すように、運転状態範囲を２５個に区分することとし、その四隅の運転状態範囲１（アイドリング状態：スロットル開度最低、エンジン回転速度最低），５（スロットル開度最低、エンジン回転速度最高），２１（スロットル開度最高、エンジン回転速度最低），２５（最大出力：スロットル開度最高、エンジン回転速度最高）と、中央の運転状態範囲１３とに関してのみ、実際に収録したエンジン音データを格納しておくこととしてもよい。
【００６２】
エンジン音データが未格納の運転状態範囲に関しては、運転状態範囲１，５，１３，２１，２５に格納されたエンジン音データに基づく補間演算によって、当該運転状態範囲に対応したエンジン音データを求めることができる。この補間演算は、ゲームプログラムの実行準備中（初期化処理時）に行われてもよく、必要時にその都度行われてもよい。たとえば、運転状態検出部１０１によって特定されたスロットル開度およびエンジン回転速度に対応する運転状態範囲のエンジン音データが未格納である場合に、合成エンジン音データ生成部１０３が、エンジン音記憶部１０２に格納されている他の運転状態範囲のエンジン音データを使って補間演算を行うようにしてもよい。この場合、合成エンジン音データ生成部１０３は、補間によって得られた複数のエンジン音データを組み合わせて合成エンジン音データを生成することになる。
【００６３】
図４に戻って、合成エンジン音データ生成部１０３は、コントローラ１０３１と、エンジン音記憶部１０２から与えられるエンジン音データに重み付け処理を行う重み付け部１０３２−１〜１０３２−ｎ（以下、総称するときには「重み付け部１０３２」という。）と、この重み付け部１０３２によって重み付けされた複数のエンジン音データを重ね合わせる重ね合わせ手段としての重畳部１０３３とを有している。これらは、いずれも、ＣＰＵ５０，８０がエンジン音合成プログラム５８，８８を実行することによって実現される機能処理部である。
【００６４】
重み付け部１０３２は、エンジン音記憶部１０２において各運転状態範囲に対応して記憶されているエンジン音データの個数ｎに対応して、ｎ個設けられている。
コントローラ１０３１は、スロットル開度データａおよびエンジン回転速度データｂを受け取り、これらに基づいて運転状態範囲を特定する運転状態範囲特定部１１１を有する。また、コントローラ１０３１は、エンジン音記憶部１０２に対して、その特定された運転状態範囲に対応する全てまたは一部のエンジン音データを、対応する重み付け部１０３２に出力させるための出力命令信号を与える読み出し制御部１１２を有する。たとえば、運転状態範囲１が特定された場合には、テーブル１０２−１〜１０２−ｎのすべての運転状態範囲１に対応するエンジン音データ１−１〜１−ｎが読み出され、重み付け部１０３２−１〜１０３２−ｎに与えられる。
【００６５】
読み出し制御部１１２は、必ずしも、特定された運転状態範囲に対応する全てのエンジン音データをエンジン音記憶部１０２から読み出させる必要はない。すなわち、コントローラ１０３１は、どのテーブルからエンジン音データを読み出すかを任意に決定して、その情報を出力命令信号に含めてエンジン音記憶部１０２に与えてもよい。
一方、コントローラ１０３１は、複数の重み付け部１０３２においてエンジン音データにそれぞれ付与される重みを設定する重み設定部１１３を有している。重み付け部１０３２は、コントローラ１０３１から受け取る重みの値により、エンジン音データに重み付け処理を行い、重畳部１０３３に与える。重畳部１０３３は、重み付け部１０３２から、重み付けを施された複数のエンジン音データを受け取って、それらを重ね合わせて合成音データを生成し、出力処理部１０５に与える。重み付け部１０３２は、エンジン音データに対して、コントローラ１０３１から設定された重みに応じた音圧増幅処理を施す。
【００６６】
合成エンジン音データ生成部１０３が行うエンジン音データの組み合わせ処理について、より具体的に説明する。
たとえば、コントローラ１０３１が、エンジン音記憶部１０２に対して、１つのテーブルのみからのエンジン音データの出力を指示する出力命令信号を出力するとする。ただし、コントローラ１０３１は、１度に１つのテーブルを指定するが、エンジン回転速度に合わせた周期で、次々とランダムに異なる１つのテーブルを指定して、エンジン音データを順次出力させる。また、コントローラ１０３１は、たとえば、いずれの重み付け部１０３２に対しても、重み「１」を設定するものとする。この場合、スロットル開度データａおよびエンジン回転速度データｂに対応する運転状態範囲に関してエンジン音記憶部１０２に格納されている最大ｎ個のエンジン音データを、ランダムに１つずつ順次取り出して時間軸上に並べた合成エンジン音データが形成されることとなる。すなわち、複数のエンジン音データを時間軸上で結合する時間軸結合処理が行われる。
【００６７】
また、たとえば、コントローラ１０３１が、エンジン音記憶部１０２に対して、２つのテーブルからエンジン音データを並列に出力すべきことを指示する出力命令信号を与えるとする。ただし、コントローラ１０３１は、１度に２つのテーブルを指定するが、エンジン回転速度に合わせた周期で、次々とランダムに異なる２つのテーブルを指定して、エンジン音データを順次出力させる。また、コントローラ１０３１は、たとえば、いずれの重み付け部１０３２に対しても、重み「１」を設定するものとする。この場合、コントローラ１０３１が受け取るスロットル開度データａおよびエンジン回転速度データｂに対応する運転状態範囲に関してエンジン音記憶部１０２に格納されている最大ｎ個のエンジン音データを、ランダムに２つずつ取り出して重ね合わせた重ね合わせ音データが生成される。つまり、２つのエンジン音データの重ね合わせ処理が行われる。重ね合わされる２つのエンジン音データは、エンジン回転速度に対応した周期で順次変化していくから、２つのエンジン音データの種々の組み合わせによる重ね合わせ音データを順次時間軸上に並べた合成エンジン音データが形成されることになる。こうして、複数のエンジン音データの重ね合わせ処理と、時間軸結合処理との併用により、合成エンジン音データが生成される。２つのテーブルを順次ランダムに指定するのではなく、一定の２つのテーブルを周期的に指定すれば、その２つのテーブルから読み出した２つのエンジン音データの重ね合わせ音データの繰り返しによる合成エンジン音データが作成されることになる。
【００６８】
コントローラ１０３１は、時間軸結合処理または重ね合わせ処理によって組み合わせるエンジン音データ、その個数および組み合わせるときの重みの値を任意に決定することができる。そのため、前述の例のほか、多数の組み合わせ方法により、合成エンジン音データを形成することができる。
コントローラ１０３１は、エンジン音記憶部１０２に対して、コントローラ１０３１が受け取るスロットル開度データａおよびエンジン回転速度データｂに対応する運転状態範囲に関して格納されているエンジン音データをすべてのテーブルから出力させる出力命令信号を与えるようにしてもよい。そして、コントローラ１０３１は、「０」値を含む重みを複数の重み付け部１０３２に設定すればよい。この場合、「０」の重みが与えられた重み付け部１０３２に対応するエンジン音データは非選択状態となり、他の重み付け部１０３２に対応するエンジン音データが選択されて、合成エンジン音データを形成することになる。このような構成としても、前述の時間軸結合処理および重ね合わせ処理によって、複数のエンジン音データを組み合わせた合成エンジン音データを生成することができる。
【００６９】
このように、各運転状態範囲に対応したエンジン音データを複数用意し、それらを組み合わせて合成エンジン音データを形成することにより、より現実のエンジン音に近い不定性を有する合成音を形成することができる。
次に、エンジン音記憶部１０２のテーブル１０２−１〜１０２−ｎに運転状態範囲に区分して格納されるエンジン音データの作成方法について、図６から図１０を用いて説明する。このエンジン音データの作成に際しては、まず、実際のエンジンを複数の運転状態で作動させるとともに、そのときのエンジン音が収録される。この収録されるエンジン音は、ディジタルデータとして記録される。この記録されたディジタルデータをパーソナルコンピュータ上で加工することによって、エンジン音記憶部１０２に格納すべきエンジン音データが作成される。
【００７０】
図６は、エンジンの空ぶかししたときのエンジン音の音圧波形を示す図である。この図６には、エンジン空ぶかし状態で急加速・急減速操作を行った時に収録したエンジン音波形が示されている。急加速・急減速操作は、変速機を接続しないニュートラル状態で、アクセルを急に大きく踏み込んでエンジン回転の急加速を行った後に一定操作量を保ち、その後にスロットルを急に閉じる操作とした。図６には、収録したエンジン音の波形の部分ごとに、どのようなスロットル開度およびエンジン回転速度の状態にあるのかについて、その概略を併記している。
【００７１】
図７は、急加速・急減速を行ったとき、およびスロットル開度を徐々に上げ下げしたときの運転状態の変化を説明するための図である。急加速・急減速の場合には、エンジン回転体の慣性のため、スロットル開度とエンジン回転速度は異なる変化を示す。すなわち、アクセル操作によるスロットル開度が変化すると、これに遅れてエンジン回転速度が変化する。そのため、急加速時には、運転状態範囲１から運転状態範囲５→９→１３→１４→１５→１６という順番でエンジンの運転状態が変化していく。また、急減速時には、運転状態範囲１６→１２→８→４→３→２→１という順番でエンジンの運転状態が変化していく。
【００７２】
このような急加速・急減速操作を行ったときに収録されたエンジン音のディジタルデータがパーソナルコンピュータ上に取り込まれる。作業者は、パーソナルコンピュータ上で、各運転状態範囲に対応する区間のエンジン音データを抜き出す。さらに、作業者は、抜き出したエンジン音データから、さらに、所定単位（たとえば、１気筒分の爆発区間、または１燃焼サイクル分）のエンジン音データを切り出す。この切り出されたエンジン音データが、エンジン音記憶部１０２のテーブル１０２−１〜１０２−ｎに、運転状態範囲ごとに区分して格納されることになる。
【００７３】
図８は、ある運転状態範囲内で録音した４サイクル４気筒エンジンのエンジン音の音圧波形を示す。スロットル開度およびエンジン回転速度に差がほとんど無い運転状態の間では、音圧波形に大きな差がない。そのため、個々の運転状態範囲内におけるエンジン音の音圧のピークはほぼ一定の値となり、エンジン音は、図８に示すような一連の音圧波形を示す。この音圧波形において、１つのピーク分の期間が、１気筒分の爆発期間に相当する。そこで、作業者は、各運転状態範囲毎に抜き出したエンジン音から、たとえば、パーソナルコンピュータ上で音圧波形を確認しながら、１つのピーク分の区間のエンジン音データを切り出す。これにより、１単位のエンジン音データとして、１気筒分の爆発期間のエンジン音データを切り出すことができる。
【００７４】
作業者は、このような操作をパーソナルコンピュータ上で繰り返し行い、１気筒分の爆発区間に相当する長さのエンジン音データを、抜き出されたエンジン音データ中の任意の場所（時間軸上の場所）から、任意の個数だけ切り出し、運転状態範囲と対応づけて保存する。これにより、エンジン音記憶部１０２に格納すべきテーブルが、パーソナルコンピュータ上で作成される。
【００７５】
図８は、ある運転状態範囲に対応するエンジン音からＷａおよびＷｂの部分（１気筒分の爆発区間に相当）を切り出して、これを、運転状態範囲１に対応するエンジン音データ１−１，１−ｎとしてテーブル１０２−１，１０２−ｎにそれぞれ格納している様子を示している。現実のエンジン音は、一定の運転状態であっても、爆発毎にエンジン音が微妙に変化する揺らぎ（音圧変動：不定性）を有する。このため、切り出す場所によって、エンジン音データは異なる。したがって、ＷａおよびＷｂの部分のエンジン音データは、近似しているが、異なるデータである。
【００７６】
なお、ここでは、切り出されたエンジン音データは、１気筒分の爆発区間に相当する長さを持つものとして説明した。これは、記憶するデータをこのように小さくすることで、エンジン音合成装置１００のエンジン音記憶部１０２の容量を小さくすることができるからである。ただし、４気筒エンジンでは４つのピーク分の期間が１燃焼サイクルに相当し、この１燃焼サイクルは、エンジン音の基本周期である。これに鑑みれば、たとえば、４サイクル４気筒エンジンを使ってエンジン音を収録した場合には、１燃焼サイクル（図８における連続する４つのピーク分の区間）に相当する長さで切り出して、エンジン音データとすることも可能である。また、任意の複数個のピーク分の区間のエンジン音を切り出したり、１燃焼サイクルの倍数の長さでエンジン音を切り出したりして、エンジン音記憶部１０２に格納すべきエンジン音データとすることもできる。
【００７７】
また、エンジン音データを切り出す場所（時間軸上の場所）は、任意に決めて差し支えなく、ランダムに切り出し場所を選択しても、規則的（たとえば、周期的）に切り出し場所を選択してもかまわない。
以上の流れにより、１回のエンジンの空ぶかし時に収録したエンジン音から、エンジン音記憶部１０２のテーブル内の運転状態範囲５、９、１３、１４、１５、１６、１２、８、４、３、２、１のエンジン音データを用意することができる。
【００７８】
ここでは、エンジン音記憶部１０２のテーブルにおける周辺部に位置する運転状態範囲に対応するエンジン音データの取得方法について説明したが、急加速する時に踏み込むアクセルの操作量を変化させることで、すべての運転状態範囲に対応するエンジン音データを取得することができる。
図９は、スロットル開度の最高値を種々の値に異ならせて空ぶかしし、急加速・急減速を行うときの運転状態の変化を示した図である。図９では、スロットル開度の最高値を、(i)３／８、(ii)５／８、(iii)７／８として、急加速・急減速を行った時の運転状態の変化を示している。たとえば、(ii)の場合、すなわち、スロットル開度５／８まで急にアクセルを踏み込んで急加速を行った後に一定操作量に保ち、その後にスロットルを急に閉じるというような急加速・急減速を行ったときには、運転状態範囲１、５、９、１０、１１、７、３、２のエンジン音データを取得することができる。
【００７９】
また、急激なアクセル操作だけでなく、ゆっくりアクセルを踏み込んでいく操作も組み合わせながらスロットル開度を調節しつつ空ぶかしを行うことにより、すべての運転状態範囲に対応するエンジン音データを取得することが可能である。
実際に走行している車両からエンジン音を取得するとすれば、風きり音の混入が避けられない。また、シャーシダイナモ上で走行している車両からエンジン音を取得するとすれば、ローラの音などの雑音の混入が避けられない。これに対して、空ぶかしをするときのエンジン音からエンジン音データを取得する前述の方法であれば、風切り音その他の雑音の混入を回避できる。したがって、こうして取得されたエンジン音データを用いることにより、現実のエンジン音に極めて近似した合成音を得ることができる。
【００８０】
また、次のようにしてエンジン音記憶部１０２に格納すべきテーブルを作成することも可能である。
図１０は、エンジン音記憶部１０２に格納すべきテーブルの概略図である。上述のエンジン音の取得方法により、図１０のテーブルに示された運転状態範囲１、４、１３、１６（テーブルの４つ角に相当する運転状態範囲。斜線を付して示す。）に対応するエンジン音データをまず格納する。そして、その他の運転状態範囲に対応するエンジン音データは、この４つのエンジン音データを用いて補間する。
【００８１】
具体的には、まずテーブルの周辺部に位置する運転状態範囲について、補間によってエンジン音データを求める。たとえば、運転状態範囲５のエンジン音データは、運転状態範囲１および運転状態範囲１３のエンジン音データを用いて補間することとなる。この際、運転状態範囲５は運転状態範囲１に近いので、運転状態範囲１のエンジン音データに、より大きな重み付けを行って補間する。このようにして、まずテーブルの周辺部に位置する運転状態範囲に対応するエンジン音データが用意される。
【００８２】
次に、それらエンジン音データを用いて、上記テーブルの周辺部以外の運転状態範囲のデータを補間する。たとえば、運転状態範囲７のエンジン音データは、運転状態範囲５と８に格納されたエンジン音データ、運転状態範囲３と１５に格納されたエンジン音データ、またはそれらのすべてを用いて補間する。このときも上記と同様の重み付けをした補間が行われる。
【００８３】
なお、さらに運転状態範囲１から運転状態範囲１６への対角線上に位置する運転状態範囲のエンジン音データについても実際に収録したエンジン音から切り出すことにより用意することとし、その他の運転状態範囲におけるエンジン音データを補間するようにしてもよい。あるスロットル開度までアクセルを踏み込んだ状態を保持していると、運転状態範囲１から運転状態範囲１６への対角線上に位置する運転状態範囲に対応する運転状態に落ち着く（図７参照）。このような運転状態は、安定した状態であるので、この状態でのエンジン音の収録は容易に行うことができる。
【００８４】
エンジン音の実データのない運転状態範囲に関する前述の補間演算は、パーソナルコンピュータ上でエンジン音データのテーブルを作成するときに行われてもよいし、前述のように、ゲーム機等の初期化処理時に行われてもよい。また、エンジン音記憶部１０２には、実データのみを格納するようにしてもよい。この場合、実データのない運転状態範囲のエンジン音データの補間演算は、当該運転状態範囲のエンジン音データが必要になった時点で行えばよい。
【００８５】
以上のエンジン音データの作成の説明は、自動車のエンジン音の場合に関するものであるが、むろん、自動二輪車のエンジン音データの作成にも適用できる。
自動車の合成エンジン音および自動二輪車の合成エンジン音について考えると、１つの気筒のエンジン音から得られるエンジン音データを作成すれば、これに基づいて多気筒エンジンのエンジン音を合成できる。すなわち、多気筒のエンジンの場合には、各気筒の音が少しずつずれて発生する。そこで、１つの気筒のエンジン音から得られるエンジン音データを組み合わせることにより、より具体的には、発音時期をずらして重ね合わせることにより、多気筒エンジンの合成音を作ることができる。
【００８６】
また、１つの気筒のエンジン音から得られるエンジン音データを合成して多気筒エンジンのエンジン音を合成する場合には、各気筒の発音間隔を自由に制御できる。そこで、たとえば、自動二輪車のエンジン音を合成する場合に、種々のバンク角のＶ型エンジンのエンジン音を容易に合成できる。
１つの気筒のエンジン音を得る一つの方法は、単気筒エンジン（たとえば自動二輪車用の単気筒エンジン）のエンジン音を収録することである。このようにして収録された単気筒エンジンのエンジン音から１燃焼サイクルに相当する長さのエンジン音データを切り出すことにより、このエンジン音データを、多気筒エンジンの１つの気筒のエンジン音データとして利用できる。
【００８７】
また、１つの気筒のエンジン音を得る他の方法は、たとえば、図８において、音圧ピークを中心として隣接する一対のピーク間に相当する間隔（４気筒の内の１つの気筒のエンジン音に相当）でエンジン音データを切り出すことである。さらに他の方法は、音圧ピークの直前で音圧「０」になる点から隣接する一対のピーク間に相当する間隔でエンジン音データを切り出すことである。音圧「０」の点でエンジン音データを切り出せば、エンジン音データを時間軸結合処理して得られる合成エンジン音データに継ぎ目を無くすことができる。この方法は、自動車および自動二輪車のエンジン音の両方に適用できる。
［第２実施形態］
図１１は、この発明の第２実施形態に係るエンジン音合成装置の構成を説明するためのブロック図であり、前述の図３の構成において合成エンジン音データ生成部１０３に代えて用いることができる合成エンジン音データ生成部２０３の構成が示されている。この図１１において、前述の図４に示された各部に対応する部分には、図４の場合と同一の参照符号を付して示す。
【００８８】
この実施形態のエンジン音合成装置は、第１気筒および第２気筒の２気筒を有する２気筒エンジンのエンジン音を合成するためのものである。すなわち、合成エンジン音データ生成部２０３は、図４に示された構成（第１気筒の合成音データを生成する合成処理手段をなす。）に加えて、重畳部１０３３が生成した合成音データを気筒間の遅れ時間だけ遅延させて出力する遅延処理手段としての音遅延部２０４と、この音遅延部２０４に、気筒間の遅れ時間を設定する第２気筒遅れ時間計算部２０５と、重畳部１０３３が生成する合成音データ（第１気筒の合成エンジン音データ）および音遅延部２０４が生成する合成音データ（第２気筒の合成エンジン音データ）を重ね合わせて混合する気筒間混合処理手段としての混合処理部２０６とを備えている。第２気筒遅れ時間計算部２０５は、エンジン回転速度データｂに基づいて、気筒間の遅れ時間（第１気筒のエンジン音に対する第２気筒のエンジン音の遅れ時間）を計算して、音遅延部２０４に設定する。この構成により、エンジン音記憶部１０２に記憶されている１つの気筒のエンジン音データを用いて、２気筒エンジンのエンジン音を合成できる。
【００８９】
この実施形態ではさらに、重畳部１０３３と混合処理部２０６との間に第１揺らぎ処理部２１１（第１音圧変動付与手段）が介挿されており、音遅延部２０４と混合処理部２０６との間に第２揺らぎ処理部２１２（第２音圧変動付与手段）が介挿されている。第１揺らぎ処理部２１１は、重畳部１０３３から生成される合成音データに対して音圧の揺らぎ（変動）を与える。同様に、第２揺らぎ処理部２１２は、音遅延部２０４から出力される合成音データに対して音圧の揺らぎを与える。
【００９０】
第１および第２揺らぎ処理部２１１，２１２における音圧の揺らぎのパターンおよび揺らぎ幅（音圧変動幅）は、コントローラ１０３１によって制御されるようになっている。コントローラ１０３１は、スロットル開度データａおよびエンジン回転速度データｂに基づいて、第１および第２揺らぎ処理部２１１，２１２における音圧の揺らぎ幅を可変設定する揺らぎ制御部１１４を有している。この揺らぎ制御部１１４は、第１および第２揺らぎ処理部２１１，２１２に対して、異なる揺らぎパターンの音圧揺らぎ信号を与える。また、第１および第２揺らぎ処理部２１１，２１２の音圧の揺らぎの幅を互いに異ならせてもよい。
【００９１】
たとえば、揺らぎ制御部１１４は、図１２に示すように、スロットル開度データａおよびエンジン回転速度データｂに基づいて揺らぎ制御信号としての乱数制御信号を発生する揺らぎ幅制御マップ２０７（音圧変動幅制御手段）と、この揺らぎ幅制御マップ２０７からの乱数制御信号を受けて乱数を発生する第１および第２乱数発生部２０８，２０９とを有する。この場合、揺らぎ幅制御マップ２０７が生成する乱数制御信号は、合成音データに付与される音圧の揺らぎの幅を規定するものであり、第１および第２乱数発生部２０８，２０９は、その規定された揺らぎの幅に相当する範囲で互いに異なる乱数を発生する。第１および第２乱数発生部２０８，２０９で発生された乱数が、音圧揺らぎ信号として、第１および第２揺らぎ処理部２１１，２１２にそれぞれ与えられる。
【００９２】
第１および第２揺らぎ処理部２１１，２１２は、重畳部１０３３および音遅延部２０４からの合成音データに対して音圧増幅処理を施す音圧増幅処理部で構成されている。これらの第１および第２揺らぎ処理部２１１，２１２における音圧増幅率は、第１および第２乱数発生部２０８，２０９から与えられる音圧揺らぎ信号によって変動するようになっている。
【００９３】
第１および第２乱数発生部２０８，２０９は、それぞれ、１気筒の爆発区間ごとに異なる乱数を発生する。すなわち、第１および第２乱数発生部２０８，２０９は、エンジン音記憶部１０２から読み出されたエンジン音データの再生開始と同期して乱数を発生し、そのエンジン音データの再生期間（１気筒の爆発区間に相当）における第１および第２揺らぎ処理部２１１，２１２の音圧増幅率を定める。  図１３は、揺らぎ幅制御マップ２０７の設定例を説明するための図である。この図１３には、
（エンジンの最大燃焼圧力の標準偏差）／（最大燃焼圧力の平均値）
をスロットル開度およびエンジン回転速度を種々の値に設定して調べた結果が表されている。揺らぎ幅制御マップ２０７は、この図１３の特性に従って定めればよい。
【００９４】
一般には、スロットル開度が小さいほど、また、エンジン回転速度が小さいほど、燃焼が不安定になり、エンジン音の音圧の揺らぎが大きくなる。したがって、そのように音圧の揺らぎ幅を制御することにより、現実のエンジン音に近似した合成音を得ることができる。音圧の揺らぎ幅は、第１および第２揺らぎ処理部２１１，２１２間で互いに異なるように設定されてもよい。
【００９５】
このようにこの実施形態によれば、スロットル開度およびエンジン回転速度に応じて個別に音圧の揺らぎが付与された２つの合成音データが混合処理部２０６で重ね合わされることにより、より大きな不定性（揺らぎ）を有する２気筒エンジンの合成エンジン音を得ることができる。そして、音圧の揺らぎの幅がスロットル開度およびエンジン回転速度に基づいて定められていることにより、現実のエンジン音に近似した合成音を得ることができる。
【００９６】
この実施形態では、第１実施形態の合成エンジン音データ生成部１０３に対して、１気筒のエンジン音データから２気筒エンジンの合成音を得る複数気筒化のための構成と、音圧の揺らぎを合成エンジン音データに付与する音圧揺らぎ処理のための構成とが付加されている。しかし、第１実施形態の合成エンジン音データ生成部１０３に対して、複数気筒化のための構成のみを組み合わせてもよく、音圧揺らぎ処理のための構成のみを組み合わせてもよい。
【００９７】
３気筒以上のエンジン音の合成も可能である。たとえば、音遅延部２０４が出力する合成音データを、さらに別の音遅延部に与えて気筒間の遅れ時間だけ遅延させれば、第３気筒のエンジン音に対応する合成音データを作成できる。第４気筒以降のエンジン音の合成音データも同様にして作成できる。
［第３実施形態］
図１４は、この発明の第３実施形態に係るエンジン音合成装置８００の構成を示すブロック図である。この図１４において、前述の図３に示された各部に対応する部分には、図３の場合と同一の参照符合を付して示す。
【００９８】
エンジン音合成装置８００は、特に、電気自動車のような静音型車両に装備されて、歩行者に注意を促す音を生成するために使用されるものであり、前述の第１および第２実施形態のエンジン音合成装置１００と同様に、コンピュータとしての基本構成を有している。
図１４に示したアクセルペダル２２０、タイヤ２２１、タイヤ２２１に付設された車速センサ（車輪速センサ）２２２および出力部２２３は、電気自動車に備えられるものである。アクセルペダル２２０および車速センサ２２２は、エンジン音合成装置８００に運転状態範囲特定情報を入力するための入力部として機能する。出力部２２３は、増幅器およびスピーカを有する。スピーカは、車両外に向けて音を発生するように車体に取り付けられている。
【００９９】
エンジン音合成装置８００は、運転状態検出部８０１、エンジン音記憶部１０２および合成エンジン音データ生成部１０３を具備する。運転状態検出部８０１は、スロットル開度計算部８０１１、走行速度検出部８０１２およびエンジン回転速度計算部８０１３を有する。
スロットル開度計算部８０１１は、運転操作者がアクセルを踏み込む量を表すアクセル開度データの入力を受け取り、これをそのままスロットル開度データとして、または所定の変換演算によってスロットル開度データに変換して、合成エンジン音データ生成部１０３およびエンジン回転速度計算部８０１３に与える。走行速度検出部８０１２は、車速センサ２２２からの出力信号に基づいて、実際に走行している電気自動車の車輪の走行速度を演算し、エンジン回転速度計算部８０１３に与える。エンジン回転速度計算部８０１３は、受け取った走行速度およびスロットル開度計算部８０１１から受け渡されるスロットル開度データに基づいて、実際の車両のモータ回転速度とは異なる仮想のエンジン回転速度を計算し、合成エンジン音データ生成部１０３に与える。
【０１００】
電動自動車の動力源である電動モータも実際に回転しているのであるから、車両の走行速度やモータ回転速度を直接エンジン回転速度に置き換えることも考えられる。しかしながら、実際には、電動モータとエンジンとは出力特性が異なり、電気自動車とエンジン駆動車では走行中の駆動力回転速度や変速装置の状態が大きく異なる。そのため、仮想のエンジン回転速度をモータ回転速度や車両の走行速度などから直接求めることは不適当である。
【０１０１】
そこで、この実施形態では、エンジン回転速度計算部８０１３でエンジン回転速度を計算してから、この仮想のエンジン回転速度計算とスロットル開度計算部８０１１で算出したスロットル開度とに基づいて、合成エンジン音データ生成部１０３が合成エンジン音データを形成することとしている。
より具体的には、エンジン回転速度計算部８０１３でのエンジン回転速度の計算のために、自動車特性記憶部２２５に、予め一般的な自動車用自動変速装置の変速パターンと自動車用トルクコンバータの滑り特性とをそれぞれ記録しておく。エンジン回転速度計算部８０１３は、自動車特性記憶部２２５に記憶されている自動車用自動変速装置の変速パターンを踏まえた上で、自動車用トルクコンバータの滑り特性に沿うように、スロットル開度と車両走行速度とをパラメータとして、エンジン回転速度を計算する。すなわち、エンジン回転速度計算部８０１３は、そのような計算プログラムに従って、エンジン回転速度を演算する。
【０１０２】
合成エンジン音データ生成部１０３がスロットル開度データおよびエンジン回転速度データを受け取った後の動作は、第１実施形態の場合と同様である。むろん、この第３実施形態に対しても、第２実施形態と同様な変更を施すことができる。
この第３実施形態によれば、各運転状態範囲に対応したエンジン音データを複数用意し、それらを組み合わせて合成エンジン音データを作成することにより、より現実のエンジン音に近い合成音を発生させることができる。そして、電気自動車から、その運転状態に応じた合成エンジン音を発することにより、電動自動車の周囲の歩行者等に対して自動車の接近を察知させて注意を促すことができる。
［第４実施形態］
図１５は、この発明の第４実施形態に係るエンジン音合成装置の構成を説明するためのブロック図であり、図３の構成において、合成エンジン音データ生成部に代えて用いることができる合成エンジン音データ生成部４０３の構成が示されている。以下、図３および図５を併せて参照して説明する。
【０１０３】
この実施形態では、エンジン音記憶部１０２には、図５に示すように区分された運転状態範囲１〜２５のうち、その四隅の運転状態範囲１（アイドリング状態：スロットル開度最低、エンジン回転速度最低），５（スロットル開度最低、エンジン回転速度最高），２１（スロットル開度最高、エンジン回転速度最低），２５（最大出力：スロットル開度最高、エンジン回転速度最高）と、中央の運転状態範囲１３に関して、実際に収録したエンジン音データが１つずつ記憶されている。他の運転状態範囲については、エンジン音データは記憶されておらず、前記５つの運転状態範囲のエンジン音データを利用した補間処理によって、未収録のエンジン音データが生成されるようになっている。収録されているエンジン音データは、１気筒のエンジンの１燃焼サイクル分のデータである。この１気筒のエンジン音データを用いて、この実施形態では、第１気筒および第２気筒を有する２気筒エンジンのエンジン音が合成される。
【０１０４】
合成エンジン音データ生成部４０３は、エンジン音記憶部１０２に記憶された５つのエンジン音データを合成して合成音データ（第１気筒のエンジン音データ）を生成する合成処理部４１１と、第２気筒のエンジン音データを作成する複数気筒化処理部４１２と、合成処理部４１１および複数気筒化処理部４１２が生成するエンジン音データに音圧の揺らぎを付与する揺らぎ処理部４１３と、揺らぎ処理された第１および第２気筒のエンジン音データを重ね合わせて混合する気筒間混合処理手段としての混合処理部４１４と、合成処理部４１１および揺らぎ処理部４１３を制御するコントローラ４１０とを備えている。
【０１０５】
合成処理部４１１は、コントローラ４１０によってエンジン音記憶部１０２から読み出された５つのエンジン音データがそれぞれ与えられる５つの単発音再生部４２１〜４２５と、この単発音再生部４２１〜４２５によって再生される音信号データをそれぞれ音圧増幅する５つの音圧増幅部４３１〜４３５と、この５つの音圧増幅部４３１〜４３５が出力する音圧増幅された音信号データを重ね合わせる重畳部４２０とを有している。
【０１０６】
コントローラ４１０は、エンジン音記憶部１０２から、前記５つの運転状態範囲の各１つのエンジン音データを読み出して単発音再生部４２１〜４２５にそれぞれ与える読み出し制御部４１８を備えている。単発音再生部４２１〜４２５は、こうしてエンジン音記憶部１０２から与えられた各エンジン音データを繰り返し再生する。単発音再生部４２１〜４２５には、運転状態検出部１０１からのエンジン回転速度データｂが与えられるようになっている。単発音再生部４２１〜４２５は、与えられたエンジン回転速度データｂに対応する再生レートで、各エンジン音データを再生する。これにより、エンジン回転速度に応じた長さの１燃焼サイクル分の音信号データが得られる。
【０１０７】
音圧増幅部４３１〜４３５は、単発音再生部４２１〜４２５が出力する音信号データに対して重み付けを行う重み付け処理部である。これらの音圧増幅部４３１〜４３５には、コントローラ４１０から、音圧増幅信号Ｍ１〜Ｍ５がそれぞれ与えられるようになっている。この音圧増幅信号は、単発音再生部４２１〜４２５が出力する音信号データに対して重みを設定するための重み設定信号である。
【０１０８】
こうして、重み付けされた音信号データが、重畳部４２０において重ね合わされることになる。したがって、単発音再生部４２１〜４２５が生成する音信号データに対して適切な重み付けを行うことによって、運転状態範囲１〜２５（図５参照）のうちの任意の範囲に該当するエンジン音データを合成できる。すなわち、合成処理部４１１に補間処理を行わせることができ、第１気筒のエンジン音に対応する合成音データを、任意の運転状態範囲について作成できる。
【０１０９】
コントローラ４１０には、スロットル開度データａおよびエンジン回転速度データｂが入力されている。このコントローラ４１０は、スロットル開度データａおよびエンジン回転速度データｂに基づいて前述の音圧増幅信号Ｍ１〜Ｍ５生成するエンジン音混合制御部４４１が備えられている。このエンジン音混合制御部４４１は、たとえば、スロットル開度データａおよびエンジン回転速度データｂに対応した音圧増幅信号Ｍ１〜Ｍ５を記憶したマップで構成されている。このマップは、スロットル開度データａおよびエンジン回転速度データｂによって特定される運転状態範囲に対応する合成音データが合成処理部４１１において生成されるように定められている。
【０１１０】
複数気筒化処理部４１２は、エンジン回転速度データｂに基づいて、第１および第２気筒間のエンジン音の遅れ時間（第１気筒のエンジン音に対する第２気筒のエンジン音の遅れ時間）を計算する第２気筒遅れ時間計算部４１５と、合成処理部４１１からの合成音データ（第１気筒のエンジン音データ）が与えられ、この合成音データを第２気筒遅れ時間計算部４１５によって求められた遅れ時間だけ遅延させて出力する遅延処理手段としての音遅延部４１６とを備えている。
【０１１１】
揺らぎ処理部４１３は、合成処理部４１１が生成する合成音データに音圧の揺らぎを与える第１揺らぎ処理部４５１と、音遅延部４１６から遅延されて生成される合成音データに音圧の揺らぎを与える第２揺らぎ処理部４５２とを備えている。第１および第２揺らぎ処理部４５１，４５２は、音圧増幅処理部であり、コントローラ４１０から与えられる音圧揺らぎ信号Ｗ１，Ｗ２に基づいて、異なるパターンの音圧の揺らぎ（変動）を各合成音データに与える。
【０１１２】
コントローラ４１０は、ランダムな音圧揺らぎ信号Ｗ１，Ｗ２をそれぞれ発生する第１および第２乱数発生部４５３，４５４と、この第１および第２乱数発生部４５３，４５４が発生する音圧揺らぎ信号Ｗ１，Ｗ２の揺らぎ幅（音圧の変動の幅）を規定する揺らぎ幅制御信号としての乱数制御信号を生成する揺らぎ幅制御部４５５とを有している。この揺らぎ幅制御部４５５は、スロットル開度データａおよびエンジン回転速度データｂに基づいて音圧の揺らぎの幅を規定するように乱数制御信号を生成するものであり、具体的には、スロットル開度およびエンジン回転速度の種々の値に対して予め乱数制御信号を割り付けたマップで構成されていてもよい。このマップとしては、図１３を参照して説明したようなマップを用いることができる。
【０１１３】
既述のとおり、一般には、スロットル開度が小さいほど、また、エンジン回転速度が小さいほど、燃焼が不安定になり、エンジン音の音圧の揺らぎが大きくなる。したがって、そのように音圧の揺らぎ幅を制御することにより、現実のエンジン音に近似した合成音を得ることができる。
第１および第２揺らぎ処理部４５１，４５２における音圧増幅率は、第１および第２乱数発生部４５３，４５４から与えられる音圧揺らぎ信号Ｗ１，Ｗ２によって変動するようになっている。第１および第２乱数発生部４５３，４５４は、それぞれ、１気筒の爆発区間ごとに異なる乱数を発生する。すなわち、第１および第２乱数発生部４５３，４５４は、単発音再生部４２１〜４２５におけるエンジン音データの再生開始と同期して乱数を発生し、そのエンジン音データの再生期間（１気筒の爆発区間に相当）における第１および第２揺らぎ処理部４５１，４５２の音圧増幅率を定める。
【０１１４】
このように、この実施形態によれば、合成音データに対して、スロットル開度およびエンジン回転速度に対応した揺らぎ幅で音圧の揺らぎを与えることによって合成エンジン音データが生成されるので、現実のエンジン音に近似した不定性を有する合成音を生成できる。また、複数気筒化処理部４１２を備えていることにより、１気筒のエンジン音データを用いて２気筒エンジンのエンジン音を合成でき、エンジン音記憶部１０２の記憶容量を少なくすることができる。
【０１１５】
なお、この第４実施形態は、前記第３実施形態のような電気自動車にも適用可能である。
また、３気筒以上のエンジン音の合成も可能である。たとえば、音遅延部４１６が出力する合成音データを、さらに別の音遅延部に与えて気筒間の遅れ時間だけ遅延させれば、第３気筒のエンジン音に対応する合成音データを作成できる。第４気筒以降のエンジン音の合成音データも同様にして作成できる。
［その他の実施形態］
前述のいずれの実施形態においても、車種を選択する選択入力部が備えられていてもよい。すなわち、エンジン音記憶部１０２に、複数の車種に対応する複数種類のエンジン音データを格納しておけばよい。この場合、車種ごとのエンジン音データは、車種名データ、エンジンタイプのデータ、気筒数のデータ、爆発間隔のデータ、エンジン音圧揺らぎ幅のデータなどの制御パラメータとともにエンジン音記憶部１０２に記憶されていることが好ましい。
【０１１６】
たとえば、第４実施形態の構成に車種選択入力部を備える場合には、この車種選択入力部からの車種指定信号を、コントローラ４１０に与えればよい。コントローラ４１０は、指定された車種のエンジン音データを読み出して単発音再生部４２１〜４２５に与える。また、コントローラ４１０内のエンジン音混合制御部４４１は、車種に応じた混合割合でエンジン音データが重畳されるように、当該車種に対応した重み（音圧増幅信号）を各音圧増幅部４３１〜４３５に設定する。さらに、揺らぎ幅制御部４５５は、指定された車種に応じて音圧の揺らぎ幅を定めることが好ましい。また、第１および第２乱数発生部４５３，４５４は、指定された車種に対応したパターンの揺らぎを与える音圧揺らぎ信号Ｗ１，Ｗ２を生成することが好ましい。
【０１１７】
上記の他、特許請求の範囲に記載した範囲で、種々の変更を施すことが可能である。
【図面の簡単な説明】
【０１１８】
【図１】この発明の第１実施形態に係るエンジン音合成装置が適用されるゲーム機の電気的構成を説明するためのブロック図である。
【図２】前記第１実施形態のゲーム機を構成することができるパーソナルコンピュータの電気的構成を説明するためのブロック図である。
【図３】前記第１実施形態のエンジン音合成装置の構成を説明するためのブロック図である。
【図４】エンジン音記憶部におけるエンジン音データの記憶態様と、合成エンジン音データ生成部の具体的な構成とを説明するためのブロック図である。
【図５】スロットル開度およびエンジン回転速度をパラメータとした運転状態範囲の区分と、エンジン音の補間処理とを説明するための図である。
【図６】エンジンの空ぶかししたときのエンジン音の音圧波形を示す図である。
【図７】急加速・急減速を行ったとき、およびスロットル開度を徐々に上げ下げしたときの運転状態の変化を説明するための図である。
【図８】ある運転状態範囲内で録音した４サイクル４気筒エンジンのエンジン音の音圧波形を示す図である。
【図９】スロットル開度の最高値を種々の値に異ならせて空ぶかしし、急加速・急減速を行うときの運転状態の変化を示した図である。
【図１０】エンジン音記憶部に格納すべきテーブルの概略図である。
【図１１】この発明の第２実施形態に係るエンジン音合成装置の構成を説明するためのブロック図であり、合成エンジン音データ生成部の構成が示されている。
【図１２】揺らぎ制御部の構成例を示すブロック図である。
【図１３】揺らぎ幅制御マップの設定例を説明するための図である。
【図１４】この発明の第３実施形態に係るエンジン音合成装置の構成を示すブロック図である。
【図１５】この発明の第４実施形態に係るエンジン音合成装置の構成を説明するためのブロック図であり、合成エンジン音データ生成部の構成が示されている。
【符号の説明】
【０１１９】
４０    ゲーム機
４１    ゲーム機本体
４２    操作部
４３    出力部
４４    表示部
４５    舵角センサ
４６    アクセル操作量センサ
４７    ブレーキ操作量センサ
４８    変速機センサ
５０    ＣＰＵ
５１    ＲＯＭ
５２    ＲＡＭ
５３    バス
５４    操作部コントローラ
５５    音出力コントローラ
５６    表示コントローラ
５７    ゲームプログラム
５８    エンジン音合成プログラム
５９    エンジン音データ
６０    仮想エンジンデータ
６１    仮想車体データ
７０    パーソナルコンピュータ
７１    コンピュータ本体
７２    操作部
７３    出力部
７４    表示装置
７５    ハードディスクドライブ
７６    ＣＤ−ＲＯＭ
７７    ＣＤ−ＲＯＭドライブ
８０    ＣＰＵ
８１    ＲＯＭ
８２    ＲＡＭ
８３    バス
８４    操作部コントローラ
８５    音出力コントローラ
８６    表示コントローラ
８７    ゲームプログラム
８８    エンジン音合成プログラム
８９    エンジン音データ
９０    仮想エンジンデータ
９１    仮想車体データ
１００    エンジン音合成装置
１０１    運転状態検出部
１０１１    運転操作検出部
１０１２    エンジン回転速度計算部
１０２    エンジン音記憶部
１０２−１〜１０２−ｎ    テーブル
１０３    合成エンジン音データ生成部
１０３１    コントローラ
１０３２−１〜１０３２−ｎ    重み付け部
１０３３    重畳部
１０４    仮想エンジン／車体データ記憶部
１０５    出力処理部
１１１    運転状態範囲特定部
１１２    読み出し制御部
１１３    重み設定部
１１４    揺らぎ制御部
２０３    合成エンジン音データ生成部
２０４    音遅延部
２０５    第２気筒遅れ時間計算部
２０６    混合処理部
２０７    揺らぎ幅制御マップ
２０８    第１乱数発生部
２０９    第２乱数発生部
２１１    第１揺らぎ処理部
２１２    第２揺らぎ処理部
２２０    アクセルペダル
２２１    タイヤ
２２２    車速センサ
２２３    出力部
２２５    自動車特性記憶部
４０３    合成エンジン音データ生成部
４１０    コントローラ
４１１    合成処理部
４１２    複数気筒化処理部
４１３    揺らぎ処理部
４１４    混合処理部
４１５    第２気筒遅れ時間計算部
４１６    音遅延部
４１８    読み出し制御部
４２０    重畳部
４２１〜４２５    単発音再生部
４３１〜４３５    音声増幅部
４４１    エンジン音混合制御部
４５１    第１揺らぎ処理部
４５２    第２揺らぎ処理部
４５３    第１乱数発生部
４５４    第２乱数発生部
４５５    揺らぎ幅制御部
８００    エンジン音合成装置
８０１    運転状態検出部
８０１１    スロットル開度計算部
８０１２    走行速度検出部
８０１３    エンジン回転速度計算部
ａ        スロットル開度データ
ｂ        エンジン回転速度データ
【図１】
2005134885.tif 000003
【図２】
2005134885.tif 000004
【図３】
2005134885.tif 000005
【図４】
2005134885.tif 000006
【図５】
2005134885.tif 000007
【図６】
2005134885.tif 000008
【図７】
2005134885.tif 000009
【図８】
2005134885.tif 000010
【図９】
2005134885.tif 000011
【図１０】
2005134885.tif 000012
【図１１】
2005134885.tif 000013
【図１２】
2005134885.tif 000014
【図１３】
2005134885.tif 000015
【図１４】
2005134885.tif 000016
【図１５】
2005134885.tif 000017