(57)【要約】【課題】コンピュータを用いて、一定の法則に従いながらもランダム性を有する自然な音を生成する。【解決手段】仮想空間１００には、仮想の重力場や障害物であるサウンドウォール１２０など、仮想粒子２００の運動に影響を与える各種の条件が設定されている。放り込みエリア１１０およびスプリンクラ１５０により多数の仮想粒子２００がランダムに仮想空間１００内に放出されると、放出された各粒子は上述した各種条件および仮想粒子２００同士の相互作用（衝突）に従って運動する。その結果、設定された条件に従いながらも試行ごとに異なる仮想粒子２００の運動が引き起こされる。そして、仮想粒子２００とサウンドウォール１２０の衝突に伴い、サウンドウォール１２０に設定された音響特性に応じて様々な音高・音色・各種音響効果等が付与された音データが生成される。【選択図】図１
2008176075.tif 000002
【特許請求の範囲】
【請求項１】
仮想粒子を仮想空間に対して連続的に放出する演算を行う仮想粒子放出手段と、
前記仮想空間内において、前記仮想粒子の移動に影響を与える規制要素を生成する規制要素生成手段と、
前記仮想粒子放出手段が放出した各仮想粒子の軌道を、前記規制要素による前記仮想粒子の移動への影響および前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、
前記軌道演算手段の演算に従い、前記仮想粒子と前記規制要素の相互作用の状態に基づいて音データを生成する音データ生成手段と
を具備することを特徴とする音データ生成装置。
【請求項２】
前記軌道演算手段は、前記仮想空間において前記仮想粒子に特定方向に一定の外力が生じるように前記仮想粒子の軌道を演算することを特徴とする請求項１に記載の音データ生成装置。
【請求項３】
前記軌道演算手段は、加速度、静電気力、磁力および流体抵抗の少なくとも一つのシミュレート演算によって前記外力を演算する外力演算手段を有していることを特徴とする請求項２記載の音データ生成装置。
【請求項４】
前記規制要素と波形データとを対応付けるテーブルを有し、
前記音データ生成手段は、前記相互作用の状態に基づいて音データを生成する際に、その相互作用を生じさせている規制要素に対応付けられている波形データを前記テーブルを参照して特定し、特定した波形データを用いて音データを生成することを特徴とする請求項１から３いずれかに記載の音データ生成装置。
【請求項５】
前記規制要素の属性を指定する属性指定手段と、
前記規制要素およびその属性に対応付けられる波形データを示すテーブルを有し、
前記音データ生成手段は、前記相互作用の状態に基づいて音データを生成する際に、その相互作用を生じさせている規制要素とその属性に対応した波形データを前記テーブルを参照して特定し、特定した波形データを用いて音データを生成することを特徴とする請求項１から３いずれかに記載の音データ生成装置。
【請求項６】
前記粒子の属性を指定する粒子属性指定手段と、
前記規制要素の属性を指定する属性指定手段とを具備し、
前記音データ生成手段は前記粒子属性指定手段が指定した属性と属性指定手段が指定した属性の組み合わせに対応する波形データを選択し、選択した波形データを用いて音データを生成することを特徴とする請求項１から３いずれかに記載の音データ生成装置。
【請求項７】
前記音データ生成手段は、前記仮想粒子と前記規制要素の相互作用状態に基づく音データ生成に代えて、または前記仮想粒子と前記規制要素の相互作用状態に基づく音データ生成と併せて、前記軌道演算手段の演算に従い前記仮想粒子同士の相互作用に基づいて音データを生成することを特徴とする請求項１から６いずれかに記載の音データ生成装置。
【請求項８】
前記音データ生成手段は、前記音データを生成するに際して、前記音データのピッチを前記規制要素生成手段が生成した規制要素の形状に応じたレベルにすることを特徴とする請求項１ないし７いずれかに記載の音データ生成装置。
【請求項９】
前記音データ生成手段は、前記音データに音響効果を付与する音響効果付与手段を有し、前記規制要素生成手段が生成した規制要素の形状に応じて前記音響効果付与手段が付与する音響効果を制御することを特徴とする請求項１ないし８いずれかに記載の音データ生成装置。
【請求項１０】
前記仮想粒子の移動に影響を与えないエリアをサウンドエリアとして前記仮想空間内に形成するサウンドエリア生成手段と、
前記粒子が前記サウンドエリアに進入したことを契機にして音データを生成するサウンドエリア進入音生成手段とを具備することを特徴とする請求項１ないし９いずれかに記載の音データ生成装置。
【請求項１１】
前記仮想空間内において、前記仮想粒子の移動に影響を与える第２の規制要素を生成する規制要素生成手段を具備し、
前記起動演算手段は、前記各仮想粒子の軌道を、前記第２の規制要素による前記仮想粒子の移動への影響をも含めて演算し、
前記音データ生成手段は、前記仮想粒子と前記第２の規制要素の相互作用に関しては音データを生成しないことを特徴とする
請求項１ないし１０のいずれかに記載の音データ生成装置。
【請求項１２】
コンピュータに、
仮想粒子を仮想空間に対して連続的に放出する演算を行う仮想粒子放出段階と、
前記仮想空間内において、前記仮想粒子の移動に影響を与える規制要素を生成する規制要素生成段階と、
前記仮想粒子放出段階において放出された各仮想粒子の軌道を、前記規制要素による前記仮想粒子の移動への影響および前記各仮想粒子同士の衝突を含めて演算する軌道演算段階と、
前記軌道演算段階の演算に従い、前記仮想粒子と前記規制要素の相互作用の状態に基づいて音データを生成する音データ生成段階と
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音データ生成装置およびプログラムに関する。
【背景技術】
【０００２】
近年、ますますリアリティーの増した音がコンピュータにより生成されるようになっている。例えばコンピュータで「川のせせらぎ音」や「そよ風の音」など自然現象に伴う音を非常に巧妙に再現することができる（特許文献１参照）。
【特許文献１】特開平０７−１４０９７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、音という自然現象を大きなスケールで見たときには、自然法則に則ったおよそ一定の現象として把握される。上記特許文献１においても、自然現象における音を模した波形データを繰り返し音声へ変換することにより音を再現している。
しかし、上述の川のせせらぎ音は多数の水分子の運動から生じるものであり、そよ風の音は空気中に存在する多数の気体分子の流れや振動から生じるものであるとの例からも明らかなように、自然界において発生する音の多くは小さなスケールで見れば多数の粒子が高頻度で相互作用を繰り返すことにより生じている。従って、その結果生成される音には「ランダム性」や「非再現性」が生まれ、それらが音に「自然らしさ」を与えていると考えられる。
【０００４】
一方、コンピュータにより生成される音には、上述した「ランダム性」や「非再現性」が欠如しており、例えば特許文献１に記載された技術を用いたとしても、所謂「自然らしさ」が感じられないといった問題が生じていた。
【０００５】
本発明は上述の課題に鑑みてなされたものであり、一定の法則下における多数の粒子の挙動と対応付けられた自然な音を生成する音データ生成装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る音データ生成装置の第１の構成は、仮想粒子を仮想空間に対して連続的に放出する演算を行う仮想粒子放出手段と、前記仮想空間内において、前記仮想粒子の移動に影響を与える規制要素を生成する規制要素生成手段と、前記仮想粒子放出手段が放出した各仮想粒子の軌道を、前記規制要素による前記仮想粒子の移動への影響および前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、前記軌道演算手段の演算に従い、前記仮想粒子と前記規制要素の相互作用の状態に基づいて音データを生成する音データ生成手段とを具備することを特徴とする。
【０００７】
また、本発明に係る音データ生成装置の第２の構成は、上記第１の構成において、前記軌道演算手段は、前記仮想空間において前記仮想粒子に特定方向に一定の外力が生じるように前記仮想粒子の軌道を演算することを特徴とする。
【０００８】
また、本発明に係る音データ生成装置の第３の構成は、上記第２の構成において、前記軌道演算手段は、加速度、静電気力、磁力および流体抵抗の少なくとも一つのシミュレート演算によって前記外力を演算する外力演算手段を有していることを特徴とする。
【０００９】
また、本発明に係る音データ生成装置の第４の構成は、上記第１から３いずれかに記載の構成において、前記規制要素と波形データとを対応付けるテーブルを有し、前記音データ生成手段は、前記相互作用の状態に基づいて音データを生成する際に、その相互作用を生じさせている規制要素に対応付けられている波形データを前記テーブルを参照して特定し、特定した波形データを用いて音データを生成することを特徴とする。
【００１０】
また、本発明に係る音データ生成装置の第５の構成は、上記第１から３いずれかに記載の構成において、前記規制要素の属性を指定する属性指定手段と、前記規制要素およびその属性に対応付けられる波形データを示すテーブルを有し、前記音データ生成手段は、前記相互作用の状態に基づいて音データを生成する際に、その相互作用を生じさせている規制要素とその属性に対応した波形データを前記テーブルを参照して特定し、特定した波形データを用いて音データを生成することを特徴とする。
【００１１】
また、本発明に係る音データ生成装置の第６の構成は、上記第１から３いずれかに記載の構成において、前記粒子の属性を指定する粒子属性指定手段と、前記規制要素の属性を指定する属性指定手段とを具備し、前記音データ生成手段は前記粒子属性指定手段が指定した属性と属性指定手段が指定した属性の組み合わせに対応する波形データを選択し、選択した波形データを用いて音データを生成することを特徴とする。
【００１２】
また、本発明に係る音データ生成装置の第７の構成は、上記第１から６いずれかに記載の構成において、前記音データ生成手段は、前記仮想粒子と前記規制要素の相互作用状態に基づく音データ生成に代えて、または前記仮想粒子と前記規制要素の相互作用状態に基づく音データ生成と併せて、前記軌道演算手段の演算に従い前記仮想粒子同士の相互作用に基づいて音データを生成することを特徴とする。
【００１３】
また、本発明に係る音データ生成装置の第８の構成は、上記第１から７いずれかに記載の構成において、前記音データ生成手段は、前記音データを生成するに際して、前記音データのピッチを前記規制要素生成手段が生成した規制要素の形状に応じたレベルにすることを特徴とする。
【００１４】
また、本発明に係る音データ生成装置の第９の構成は、上記第１から８いずれかに記載の構成において、前記音データ生成手段は、前記音データに音響効果を付与する音響効果付与手段を有し、前記規制要素生成手段が生成した規制要素の形状に応じて前記音響効果付与手段が付与する音響効果を制御することを特徴とする。
【００１５】
また、本発明に係る音データ生成装置の第１０の構成は、上記第１から９いずれかに記載の構成において、前記仮想粒子の移動に影響を与えないエリアをサウンドエリアとして前記仮想空間内に形成するサウンドエリア生成手段と、前記粒子が前記サウンドエリアに進入したことを契機にして音データを生成するサウンドエリア進入音生成手段とを具備することを特徴とする。
【００１６】
また、本発明に係る音データ生成装置の第１１の構成は、上記第１から１０いずれかに記載の構成において、前記仮想空間内において、前記仮想粒子の移動に影響を与える第２の規制要素を生成する規制要素生成手段を具備し、前記起動演算手段は、前記各仮想粒子の軌道を、前記第２の規制要素による前記仮想粒子の移動への影響をも含めて演算し、前記音データ生成手段は、前記仮想粒子と前記第２の規制要素の相互作用に関しては音データを生成しないことを特徴とする。
【００１７】
また、本発明に係るプログラムは、コンピュータに、仮想粒子を仮想空間に対して連続的に放出する演算を行う仮想粒子放出段階と、前記仮想空間内において、前記仮想粒子の移動に影響を与える規制要素を生成する規制要素生成段階と、前記仮想粒子放出段階において放出された各仮想粒子の軌道を、前記規制要素による前記仮想粒子の移動への影響および前記各仮想粒子同士の衝突を含めて演算する軌道演算段階と、前記軌道演算段階の演算に従い、前記仮想粒子と前記規制要素の相互作用の状態に基づいて音データを生成する音データ生成段階とを実行させることを特徴とする。
【発明の効果】
【００１８】
本発明に係る音データ生成装置またはプログラムによれば、一定の法則下における多数の粒子の挙動と対応付けられた自然な音を生成することができる。
【発明を実施するための最良の形態】
【００１９】
（本発明の概略説明）
本発明に係る音データ生成装置は、コンピュータの演算によって形成される仮想空間の中に多数の仮想粒子を放出させるとともに、仮想粒子の動きを規制する規制要素を仮想空間の中に配置し、仮想粒子と仮想粒子の衝突状況や、仮想粒子と規制要素の相互作用（衝突状況など）を演算し、その演算結果に基づいて楽音を生成するものである。例えば、図１に示されるように、モニタに表示された仮想空間１００における仮想粒子２００の運動と、仮想空間１００に設けられた規制要素であるサウンドウォール１２０との相互作用（衝突など）を元に音データを生成するものである。
【００２０】
仮想空間１００には、仮想の障害物（規制要素）であるサウンドウォール１２０など、仮想粒子２００の運動に影響を与える各種の条件が設定されているとともに、仮想空間１００内の重力場の大きさや向きなどの空間の要素についても各種の条件が設定できるようになっている。また、サウンドウォール１２０に設定された音響特性（大きさや材質や表面の状況など）に応じて、様々な音高・音色・各種音響効果等が付与された音データが、仮想粒子２００とサウンドウォール１２０の相互作用により生成される。
図１に示す例では、仮想粒子２００は放り込みエリア１１０およびスプリンクラ１５０の先端部分より仮想空間１００内に放出される。放出された各仮想粒子は上述した各種条件および仮想粒子２００同士の相互作用（例えば、衝突）に従って運動する。その結果、設定された条件の元で仮想粒子２００の複雑な運動が引き起こされ、ひいてはその運動に基づいた音データが生成される。
【００２１】
（Ａ；構成）
以下、図面を参照しつつ、本発明を実施する際の最良の形態について説明する。
【００２２】
（Ａ−１；全体構成）
図２は、本発明に係る音データ生成システム１の全体構成を示す図である。音データ生成システム１は、プログラム実行装置としての音データ生成装置１０と、コントローラ２０と、モニタ３０とを有する。
【００２３】
（Ａ−２；各装置の構成）
まず、音データ生成装置１０のハードウェア構成について図３を参照して説明する。
音データ生成装置１０は、制御部１０１、光ディスク再生部１０２、ＲＯＭ（Read Only Memory）１０３、ＲＡＭ（Random Access Memory）１０４、Ｉ／Ｏ部１０５を有する。それら各部はバス１０９を介して互いに接続されている。
【００２４】
図に示す制御部１０１は、例えばＣＰＵ（Central Processing Unit）であり、ＲＯＭ１０３やＣＤ−ＲＯＭ・ＤＶＤ−ＲＯＭ等の光ディスクから読み出された各種制御プログラムを実行することにより、音声および映像の信号処理や各部の制御を行う。
【００２５】
光ディスク再生部１０２は、ＣＤ−ＲＯＭ・ＤＶＤ−ＲＯＭ等の光ディスクからデータを読み取る。
ＲＯＭ１０３は、制御部１０１が実行する制御プログラムを格納している。
ＲＡＭ１０４は、制御部１０１によってワークエリアとして利用される。
【００２６】
Ｉ／Ｏ部１０５は、音データ生成装置１０と接続された機器との信号の送受信を仲介する。具体的には、コントローラ２０から操作内容を示す信号を受取り制御部１０１に出力すると共に、制御部１０１から受取った音声データおよび映像データをモニタ３０に出力する。
以上が音データ生成装置１０の構成である。
【００２７】
次に、コントローラ２０の構成について図４を用いて説明する。本実施形態において用いるコントローラ２０は、いわゆるマウスである。本体２１の上面（図中(ａ)参照）にはボタン２２を、下面（図中（ｂ）参照）には移動検知手段２４を有する。また、コントローラ２０は、音データ生成装置１０に通信ケーブル２３にて接続されており、操作内容を示すデータが通信ケーブル２３を介して音データ生成装置１０に送信される。
【００２８】
コントローラ２０は、本体２１が移動されると移動検知手段２４が移動方向と移動量を示す操作信号を生成し、通信ケーブル２３を介して出力する。該信号を受取った制御部１０１は、操作信号に基づいてモニタ３０の画面上のカーソルを移動する処理を行う。
また、ボタン２２が押下（以下、クリック）されると、コントローラ２０はクリック操作がなされたことを示すクリック操作信号を生成し、通信ケーブル２３を介して出力する。クリック操作信号を受取った制御部１０１は、クリック時にカーソルが位置していた座標を認識し、当該座標に表示されているアイコンなどに対して選択処理が行われたと認識する。
また、ボタン２２を押下した状態で本体２１が移動され、その後ボタン２２の押下を解除する操作（以下、ドラッグ）がなされると、ボタン２２が押下されていた間の本体２１の移動方向と移動量、およびドラッグ操作がなされたことを示す信号を生成し、通信ケーブル２３を介して出力する。該信号を受取った制御部１０１は、ドラッグ操作により選択された画面上の領域や該領域に含まれるアイコンなどに対して選択処理が行われたと認識する。
【００２９】
次に、モニタ３０の構成について説明する。モニタ３０は、音データ生成装置１０から受取った映像データに基づいて映像を表示する。また、モニタ３０は、図２に示すように、音データ再生部３０ａを有し、音データ生成装置１０から受取った音データに基づいて音声を放音する。
【００３０】
（Ａ−３；プログラムの構成）
次に、ＲＯＭ１０３に格納された制御プログラムの構成について図５を用いて説明する。なお、制御プログラムは、音データ生成装置１０の制御部１０１が音データを生成するために実行するプログラムが書き込まれたプログラム部と、該プログラムを実行する際に参照するデータが書き込まれたデータ部とが含まれ、図５には主要なもののみを概念的に表す。
【００３１】
上記データ部には、波形データやサウンドウォール特性テーブルが書き込まれている。
波形データには、音色が異なる多数の波形データが含まれる。それらの波形データには、例えば、砂などの粒子が木材に降り注いだときの音（波形データ１）や、粒子が金属表面にぶつかったときの音（波形データ２）、あるいは粒子が水面に落ちる音などの波形データがある。
【００３２】
これらの波形データは、本実施形態においては、単一の仮想粒子２００とサウンドウォール１２０との個々の相互作用に対応して読み出されるようになっている。また、読出にあたっては相互作用の状況（衝突であれば、衝突の強さやタイミング）に応じた波形変形が施されるようになっている。従って、多数の仮想粒子２００が連続的にサウンドウォール１２０と相互作用したとき（例えば、連続的に衝突したとき）は、各相互作用に対して読み出され、かつ、相互作用の状況に応じて波形変形された各音源波形が合成されて音が形成される。
【００３３】
一例をあげると、仮想粒子２００を雨粒、サウンドウォール１２０を地面とした場合に、一つの雨粒（仮想粒子２００）が地面（サウンドウォール１２０）と衝突する音に対応して「ポトッ」という音源波形が読み出される。そして、多数の雨粒が連続する雨粒群として地面に衝突すると、「ポトッ」という音が、雨粒が衝突するたびに、その衝突状況に合わせて読み出されて波形変形され、かつ、これらの波形が合成された音が形成される。そして、大きさや位相、減衰状態、発生タイミングなどが異なる多数の波形が重ねあわされることにより、結果的には、雨（多数の雨粒）の降る音である「ザー、ザー」という音として知覚される。
【００３４】
また、図６は、「サウンドウォール特性テーブル」の一例を示す図である。サウンドウォール特性テーブルにおいては、仮想空間１００内に設けられたサウンドウォール１２０に設定された「材質」に対して、該材質の物質に粒子が衝突したときに生成される音を表す波形データ、および該材質のサウンドウォール１２０と仮想粒子２００との衝突における「跳ね返り係数」の値が対応付けられている。
【００３５】
プログラム部は、オブジェクト制御プログラム、粒子運動制御プログラム、映像制御プログラム、音データ生成プログラムなどを有している。
オブジェクト制御プログラムは、仮想空間１００内において仮想粒子２００の運動に影響を与える規制要素（サウンドウォール１２０など）の配置、その音響特性や力学特性などを制御する。粒子運動制御プログラムは、仮想空間１００内における仮想粒子２００の運動を計算する。映像制御プログラムは、計算結果として与えられる仮想空間１００内の仮想粒子２００やサウンドウォール１２０などの挙動をテレビジョンモニタ画面上へ表示させる。音データ生成プログラムは、仮想粒子２００とサウンドウォール１２０の相互作用に基づいて音データを生成する。
【００３６】
（Ａ−４；仮想空間の制御）
以下では、オブジェクト制御プログラムによる仮想空間１００の制御について説明する。
図７は、モニタ３０の画面の一例を示した図である。画面には、仮想空間１００の枠組みが表示されている。また、仮想空間１００の左右には、仮想空間制御パネル４００および粒子パネル４５０が表示されている。仮想空間１００は、ユーザによる仮想空間制御パネル４００に対する操作に基づき、以下のように制御される。
【００３７】
（１）サウンドウォール１２０の配置
図８は、サウンドウォール１２０の配置に際するモニタ３０の画面表示の一例である。ユーザによりドラッグ操作がなされると、制御部１０１はドラッグ操作の始点と終点を対角線とする長方形の領域を「サウンドウォール１２０」として画面上に表示させる。例えば、カーソルが図中４０（ａ）から４０（ｂ）の位置までドラッグされると、サウンドウォール１２０（ａ）が設定される。
【００３８】
また、カーソル４０を、一旦設定されたサウンドウォール１２０の頂点に合わせてボタン２２を押下し、押下したままコントローラ２０を移動する操作がなされると、サウンドウォール１２０は、その重心を中心としてカーソル４０の移動に伴って回転される。例えば、サウンドウォール１２０（ｃ）の頂点（カーソル４０（ｃ）の位置）にカーソル４０が合わされ、ボタン２２を押下したままカーソル４０（ｄ）で示される位置まで移動されると、サウンドウォール１２０はサウンドウォール１２０（ｄ）で示される位置に回転される。
【００３９】
また、カーソル４０をサウンドウォール１２０の内側領域にあわせて同様の操作がなされると、サウンドウォール１２０はカーソル４０の移動に伴って移動される。例えば、サウンドウォール１２０（ｅ）の内部領域にカーソル４０を合わせ（カーソル４０（ｅ）の位置）、ボタン２２を押下したままカーソル４０（ｆ）で示される位置まで移動されると、サウンドウォール１２０はサウンドウォール１２０（ｆ）で示される位置に移動される。
【００４０】
また、上述のように設定されたサウンドウォール１２０に対して、その仮想的な「材質」が以下のようにして設定される。すなわち、サウンドウォールがクリックによって選択された後、仮想空間制御パネル４００に設けられた材質を示すアイコン４００Ａからいずれか一つが選択されると、該サウンドウォール１２０の仮想的な「材質」はパネルで選択された材質に設定される。
【００４１】
また、後述する音データ生成処理中にサウンドウォール１２０がダブルクリックされると、該サウンドウォール１２０は消滅する。
【００４２】
（２）仮想空間の特性の制御
仮想空間１００には、以下に例示するような「空間特性」が設定される。
具体的には、仮想空間制御パネル４００の下部の「空間特性」アイコン４００Ｂが押下されると、制御部１０１は、制御プログラムに書き込まれた選択肢をモニタ３０の画面上にオーバーレイ表示する。図９は、該表示の一例を示した図である。ユーザは、画面上に表示された重力の方向に関する選択肢を選択し、重力加速度の大きさを書き込む。また、仮想粒子２００の移動によって働く抵抗力については、その速度に応じた抵抗力を決定するための比例定数を書き込む。制御部１０１は、入力された内容を粒子運動制御プログラムにおける粒子運動の挙動の算出に反映させる。
【００４３】
本実施形態においては、重力場の設定において、重力の方向として図面下方向が選択されその重力加速度の値が書き込まれると、仮想粒子２００に対して画面下方向に設定された値の重力が働き、仮想空間１００は鉛直方向に設けられた空間であるかのように設定される。また、抵抗力の設定において、比例定数の値が書き込まれると、仮想粒子２００の移動速度に比例した抵抗力が移動と逆方向に働く。そして、その比例定数に対応してまるで空気や水が仮想空間１００に満たされているような環境に設定される。
【００４４】
なお、これら仮想空間１００に関する設定は、予め制御プログラムなどにテンプレートとして書き込んでおいても良い。例えば、あるテンプレートにおいては、重力場は画面下方に設定され、仮想空間１００内を移動する仮想粒子２００には移動の方向とは逆にその速度に比例した抵抗力が働き、その比例定数が水に相当する値に設定されているようにすれば、ユーザは該テンプレートを選択するだけで、仮想空間１００がまるで重力のある空間に設置された水が満たされた容器であるかのような設定を簡易に行うことができる。
【００４５】
（Ａ−５；仮想粒子の運動）
以下では、粒子運動制御プログラムによる仮想粒子２００の運動制御について説明する。
（１）仮想粒子２００の出現
まず、仮想粒子２００の出現について図１０を用いて説明する。本実施形態にける仮想空間１００には、仮想粒子２００を仮想空間１００に発生させるための装置として、放り込みエリア１１０およびスプリンクラ１５０が設けられる。
【００４６】
放り込みエリア１１０は、画面右端に示された粒子パネル４５０の初速度４５０Ａ−２および頻度４５０Ａ−３の値が書き込まれてから「放り込みエリア」アイコン４５０Ａ−１がクリックされ、その後仮想空間１００の枠組みがドラッグされることにより設定される。例えば、図中（ａ）から（ｂ）の位置までドラッグされると、放り込みエリア１１０が図のように設定される。以上の操作が複数行われることにより、複数の放り込みエリア１１０が設けられる
【００４７】
放り込みエリア１１０は、個々の仮想粒子２００を設定された初速度で仮想空間１００内に放り込む。その放り込みの頻度は、放り込みエリア１１０の単位長さおよび単位時間あたり、頻度４５０Ａ−３に書き込まれた値となるようにする。ただし、放り込みエリア１１０のいずれの箇所から仮想粒子２００が放出されるかに関してはランダムに選択される。
【００４８】
一方スプリンクラ１５０は、粒子パネル４５０の初速度４５０Ｂ−２、頻度４５０Ｂ−３、回転速度４５０Ｂ−４の値が書き込まれてから「スプリンクラ」アイコン４５０Ｂ−１がクリックされ、仮想空間１００内においてドラッグがなされることにより設定される。
【００４９】
スプリンクラ１５０は、回転軸１５０ａ、ロッド１５０ｂ、および放出口１５０ｃからなり、回転軸１５０ａはドラッグが開始された箇所に設定され、放出口１５０ｃはドラッグが終了した箇所に設定される。そして、回転軸１５０ａと放出口１５０ｃとの間にロッド１５０ｂが設けられる。放出口１５０ｃは回転軸１５０ａを中心にロッド１５０ｂの長さを回転半径として回転速度４５０Ｂ−４に書き込まれた回転速度で回転する。個々の仮想粒子２００は、初速度４５０Ｂ−２に書き込まれた初速度で放出口１５０ｃから放出される。仮想粒子２００の放出の頻度は、時間平均して単位時間あたり頻度４５０Ｂ−３に書き込まれた数の仮想粒子２００がランダムに放出される。
【００５０】
なお、仮想粒子２００の単位面積あたりの存在数（以下、圧力）に上限を設けて仮想粒子２００を出現させる。すなわち、図１１に示すように、サウンドウォール１２０で囲まれた放り込みエリア１１０を含む領域やスプリンクラ１５０の放出口１５０ｃを含む領域の圧力が所定の閾値に達すると、放り込みエリア１１０またはスプリンクラ１５０は仮想粒子２００の更なる放出を行わない。
【００５１】
（２）仮想粒子２００の運動
ＲＯＭ１０３に格納された粒子運動制御プログラムは、仮想空間１００内での仮想粒子２００の運動を以下に説明するルール（ａ）〜（ｃ）に従って制御する。なお、以下のルールは、地球上の物体の力学的性質および力学的法則を模したものである。
（ａ）仮想粒子２００は、所定の体積（ｖ）および質量（ｍ）を有している。
（ｂ）仮想粒子２００に働く力Ｆと仮想粒子２００の質量ｍと加速度αとの間にはＦ＝ｍα（第１法則）の関係がある。本実施形態においては仮想空間１００の下向きに重力場が存在するため、仮想粒子２００には常にｍｇ（ｇは重力加速度）の大きさの力が仮想空間１００の下向きに働く。
（ｃ）仮想空間１００内に設けられたサウンドウォール１２０に衝突した場合には、サウンドウォール１２０の各々に対応付けられた跳ね返り係数で跳ね返る。なお、仮想粒子２００同士、および仮想粒子２００と仮想空間１００の枠組みが衝突した場合には、跳ね返り係数１で完全弾性衝突をする。
【００５２】
（３）仮想粒子２００の消滅
仮想空間１００の枠組みには、図１０に示すように仮想粒子２００を消滅させる「ホール」１３０が設定される。設定されたホール１３０の領域を仮想粒子２００が横切った場合には、該仮想粒子２００が消滅する（ホールに吸い込まれる）。ホール１３０は、画面右端に示された粒子パネル４５０の「ホール」アイコン４５０Ｃがクリックされ、仮想空間１００の枠組みがドラッグされることにより設定される。例えば、図１０において（ｃ）から（ｄ）の位置までドラッグされると、ホール１３０が図のように設定される。複数のホール１３０が設けられる場合には、以上の操作が複数のホール１３０についてそれぞれ行われる。
【００５３】
なお、ホール１３０を、仮想空間１００の枠組みの内側に設けることができるように設定しても良い。その場合、サウンドウォール１２０を設定したのと同様の手順でドラッグ操作によりホール１３０の領域が設定される。
【００５４】
（Ａ−６；音データの生成）
音データ生成装置１０は、ＲＯＭ１０３に格納された音データ生成プログラムにより、以下に挙げるルール（ａ）〜（ｃ）に従って音データを生成する。
（ａ）仮想粒子２００がサウンドウォール１２０に衝突すると、サウンドウォール特性テーブルにおいて該サウンドウォール１２０の材質に対応付けられた波形データを用いて音データを生成する。
（ｂ）サウンドウォール１２０の面積が広いほど、音高が低い音データを生成する。
（ｃ）仮想粒子２００がサウンドウォール１２０に衝突する直前の仮想粒子２００の速度が速いほど音量レベルが大きい音データを生成する。
【００５５】
音データ生成装置１０は、以上のルールに従い、Ｍａｘ／ＭＳＰを用いて音データを生成する。なお、ＭＡＸ／ＭＳＰとは、音楽プログラミング言語ＭＡＸと音響信号処理用エクステンションＭＳＰとからなる。ＭＡＸ／ＭＳＰによれば、様々なモジュールをつなぎ合わせて、シンセサイザー、エフェクター、シーケンサーなどが作れるほか、パッチングによって音楽の自動生成なども可能であり、ビジュアル的なプログラミング環境によって、直感的なプログラミング・操作ができる。
【００５６】
（Ｂ；動作）
以下では、音データ生成装置１０が音データを生成する際の各部の動作について説明する。まず、音データ生成装置１０の電源が投入されると、制御部１０１はＲＯＭ１０３から制御プログラムを読み出し、ＲＡＭ１０４にロードする。続いて制御部１０１は、コントローラ２０からユーザの指示を受け付け、初期設定処理を行う。
【００５７】
（Ｂ−１；初期設定処理）
図１２は、初期設定処理の流れを示したフローチャートである。まず、ステップＳＡ１００においては、仮想空間１００の空間特性の設定がなされる。音データ生成システム１のユーザは、仮想空間制御パネル４００の「空間特性」アイコン４００Ｂを押下し、モニタ３０に図９に示すパラメータ設定のための画面を表示させる。そして制御部１０１は、入力された内容に応じて仮想空間１００の空間特性すなわち仮想空間１００における重力場、および抵抗力の設定を行う。
【００５８】
ステップＳＡ１１０では、ユーザの操作に応じてサウンドウォール１２０の設定を行う。
ステップＳＡ１２０では、仮想粒子２００を仮想空間１００に出現させる手段の設定を行う。ユーザにより粒子パネル４５０に所定のパラメータが書き込まれた後、「放り込みエリア」アイコン４５０Ａ−１または「スプリンクラ」アイコン４５０Ｂ−１がクリックされ、仮想空間１００内の領域が指定されると、放り込みエリア１１０またはスプリンクラ１５０が設定される。
【００５９】
（Ｂ−２；音データ生成処理）
以上の初期設定処理がなされると、制御部１０１は音データ生成処理を開始する。図１３は、音データ生成処理の流れを示したフローチャートである。なお、図１３に示した音データ生成処理は、仮想粒子２００の一つ一つについて実行される。
【００６０】
ステップＳＢ１００において、放り込みエリア１１０またはスプリンクラ１５０の放出箇所の粒子密度（圧力）が閾値以下であるか否かを判定する。ステップＳＢ１００の判定結果が“Ｙｅｓ”である場合には、ステップＳＢ１１０の処理を行う。ステップＳＢ１００の判定結果が“Ｎｏ”である場合は、ステップＳＢ１００の判定結果が“Ｙｅｓ”となるまでステップＳＢ１００を繰り返し行う。
【００６１】
ステップＳＢ１１０において、放り込みエリア１１０またはスプリンクラ１５０は、仮想粒子２００を仮想空間１００に出現させる。そして、出現した仮想粒子２００のそれぞれについて、ステップＳＢ１２０以下の処理が行われる。
【００６２】
ステップＳＢ１２０において、微小単位時間後の仮想粒子２００の運動を演算する。仮想空間１００の壁、サウンドウォール１２０、または他の仮想粒子２００に衝突した場合には、所定の跳ね返り係数で跳ね返り、新たな速度が設定される。また、衝突が起こっていない場合には、仮想粒子２００の速度に微小時間を乗算することにより、仮想粒子２００は新たな箇所に移動する。
【００６３】
なお、ステップＳＢ１２０においては、ステップＳＢ１１０にて仮想空間１００に出現した仮想粒子２００の全てについて同時にその軌道の算出が行われるため、ランダムに出現した多数の仮想粒子２００が互いに相互作用を高頻度で繰り返すこととなる。従って、仮に仮想空間１００の各種設定が同一であっても、毎回異なった仮想粒子２００の挙動が引き起こされる。
【００６４】
ステップＳＢ１３０において、ステップＳＢ１２０の処理により、仮想粒子２００がホール１３０に進入するなどして消滅するか否かを判定する。ステップＳＢ１３０の判定結果が“Ｙｅｓ”である場合には該仮想粒子２００を画面上から消去し、該仮想粒子２００に関しての処理を終了する。ステップＳＢ１３０の判定結果が“Ｎｏ”である場合には、ステップＳＢ１４０以降の処理を行う。
【００６５】
ステップＳＢ１４０において、仮想粒子２００がサウンドウォール１２０と衝突したか否かを判定する。ステップＳＢ１４０の判定結果が“Ｙｅｓ”である場合は、ステップＳＢ１５０の処理を行う。ステップＳＢ１４０の判定結果が“Ｎｏ”である場合は、ステップＳＢ１２０以降の処理を再び行う。
【００６６】
ステップＳＢ１５０において、仮想粒子２００とサウンドウォール１２０との衝突による音データを生成する。具体的には、仮想粒子２００が衝突したサウンドウォール１２０を特定し、該サウンドウォール１２０の材質を特定する。そして、ＲＯＭ１０３に書き込まれたサウンドウォール特性テーブルにおいて、特定された材質に対応付けられた波形データを読み出し、該音源にサウンドウォール１２０の大きさ（面積）に対応した音高レベルの調整を施し音データを生成する。生成した音データは、モニタ３０に出力され、音データ再生部３０ａにて放音される。
【００６７】
上述のように、仮想粒子２００は、放り込みエリア１１０またはスプリンクラ１５０からランダム性を持たせて放出されており、更には多数の仮想粒子２００が互いに高頻度で相互作用を繰り返している。従って、生成される音データにはランダム性や非再現性が付与される。
【００６８】
ステップＳＢ１５０が終わると、制御部１０１は、サウンドウォール特性テーブルにおいて、材質に対応付けられた跳ね返り係数を読み出し、該跳ね返り係数を元に新たな速度を算出し、ステップＳＢ１２０以降の処理を再び行う。
【００６９】
以上の音データ生成処理と並行して、モニタ３０には仮想空間１００における仮想粒子２００の運動が表示される。生成される音データは該表示に基づくものであるから、ユーザは放音された音とそのまま対応する画面表示を見ることが出来る。
【００７０】
以上の音データ生成処理が終了すると、制御部１０１は、生成した音データを音データ再生部３０ａへ出力し、音データ再生部３０ａは該音データを再生する。また、制御部１０１は、仮想粒子２００の放出手段やサウンドウォール１２０などの各種オブジェクトの配置とその材質、および仮想空間１００に設定された空間特性など、音データの生成に係る各種パラメータの情報（以下、設定情報）を、試行ごとにＲＡＭ１０４に書き込む。
従って、制御部１０１は、ＲＡＭ１０４に書き込まれた設定情報を読み出すことにより、再度同じ条件設定下で音データの生成処理を行うことができる。なお、そのように同様の条件設定で再び音データを生成したとしても、各仮想粒子２００の挙動は毎回異なるため、微視的には異なる音データが生成される。
【００７１】
（Ｃ；変形例）
以上、本発明の実施形態について説明したが、本発明は以下のように種々の態様で実施することができる。
【００７２】
（１）上記実施形態においては、重力や抵抗力などの空間特性を音データの生成処理の最中に変更しない場合について説明したが、音データ生成処理の最中に変更することができるようにしても良い。その場合、音データ生成処理が行われている最中に「空間特性」アイコン４００Ｂが押下され、設定画面において各種設定がなされると該設定に変更されるようにすれば良い。この場合、各粒子の挙動は、変更された条件に応じて演算される。
【００７３】
（２）上記実施形態においては、仮想粒子２００の性質については特定の性質をあてはめることはない場合について説明した。しかし、仮想粒子２００に特定の性質を選択して付与することができるようにしても良い。その場合には、仮想粒子２００の材質を選択可能であるようにする他、その材質の各々に対応したサウンドウォール特性テーブルを予め用意しておき、選択された仮想粒子２００の材質に応じてサウンドウォール特性テーブルを使い分けるようにすれば良い。例えばユーザが仮想粒子２００の材質として金属を想定した場合には、仮想粒子２００が金属である場合のサウンドウォール特性テーブルを用意し、該サウンドウォール特性テーブルにおいて、「木材」に対しては、金属と木材が衝突した音を表す波形データおよび金属と木材として適切な跳ね返り係数を対応付けておけば良い。また、上記変形例（１）と同様に、仮想粒子２００についても、その特性を時間的に変化させることが可能であるようにしても良い。
【００７４】
（３）上記実施形態においては、仮想粒子２００を特定の質量および体積を有する球であるとして説明したが、その形状や大きさなどをユーザが自由に設定することができるようにしても良い。
【００７５】
（４）上記実施形態においては、仮想空間１００に設けられるオブジェクトとして、仮想粒子２００との衝突により音データを生成させるサウンドウォール１２０を設ける場合について説明した。しかし、仮想粒子２００と衝突しても音データ生成しない運動制限要素（以下、無音ウォールと呼び、請求項１１「第２の規制要素」に対応する）や、仮想粒子２００が進入すると音を生成する領域（以下、サウンドエリア）を設けることが出来るようにしても良い。その場合、無音ウォールと仮想粒子２００が衝突した場合には、サウンドウォール１２０と同様に仮想粒子２００は反発し、その際音データは生成されない。また、サウンドエリアに仮想粒子２００が侵入した場合には、サウンドエリア自体は仮想粒子２００の運動に影響を与えることはなく、一方、仮想粒子２００がサウンドエリアを横切っている最中は継続して、サウンドエリアに対応付けられた音データを生成するようにすれば良い。
【００７６】
（５）上記実施形態においては、コントローラ２０の操作内容は、音データ生成装置１０に通信ケーブル２３を介して送信される場合について説明した。しかし、有線ではなく無線（赤外線など）でデータを送信しても良い。
【００７７】
（６）本発明と同様の音データ生成処理を３次元の仮想空間で行っても良い。その場合、計算式は同様の考え方を３次元に拡張したものを用いる。モニタ３０における表示については３次元表示でも良いし、２次元表示でも良い。
【００７８】
（７）上記実施形態においては、コントローラ２０はマウスである場合について説明したが、操作手段はタッチパネルなどマウス以外の操作手段でも良い。
【００７９】
（８）上記実施形態のおける音響処理において、仮想粒子２００とサウンドウォール１２０の衝突により生じる音に、その音が一定のディレイを伴って繰り返し生じるエコーの効果を付与しても良い。その場合、仮想粒子２００とサウンドウォール１２０が衝突した空間の面積（３次元では体積に相当）が大きいほど、その衝突により生じる音データにエコーが大きく生じるようにしても良い。
また、エコーのほかに音が空間の反射で響く残響効果、音の位相やピッチや音質などが僅かにずらされて複合されるコーラス効果、音を歪ませるディストーション効果など各種音響エフェクトを付与することにより、仮想粒子２００とサウンドウォール１２０との衝突が種々の空間で起こっているかのような音データを生成させても良い。例えば、水中のような響き、コンサートホールのような響きなどを生成することが可能である。これらの音響効果のいずれを選択するか、あるいは、選択した音響効果の量（音データに効果を付与する割合）についてもサウンドウォールなどの規制要素の形状に応じて設定することができる。
【００８０】
（９）上記実施形態においては、仮想粒子２００同士の衝突では音を出さない場合について説明したが、仮想粒子２００同士の衝突によっても音データを生成してもよい。その場合、仮想粒子２００に特定の材質を設定した場合には、設定された材質に応じた音データを生成するようにすれば良い。
【００８１】
（１０）上記実施形態においては、放り込みエリア１１０およびスプリンクラ１５０から出現する仮想粒子２００の出現パターンは、ランダムである場合について説明した。しかし、その出現パターンの頻度・出現箇所は一定でも良いし、一定の周期性があっても良い。また、仮想粒子２００ごとに初速度は均一である場合について説明したが、仮想粒子２００間でばらつきを持たせても良い。要は、仮想粒子２００の出現パターンにランダム性を持たせるように、仮想粒子２００の出現に係るいずれかのパラメータにランダム性が付与されるようにすれば良い。
【００８２】
（１１）上記実施形態においては、各仮想粒子２００はその特性が均一である場合について説明した。しかし、その特性を仮想粒子２００ごとに変えてもよい。例えば仮想粒子２００を放出した放り込みエリア１１０やスプリンクラ１５０ごとに仮想粒子２００の特性を変えても良い。その場合、仮想粒子２００の色など表示を変えるなどすれば良い。
【００８３】
（１２）上記実施形態においては、音データ生成システム１には、単一のコントローラ２０が含まれる場合について説明したが、接続されるコントローラ２０は１つに限定されるものではなく、複数設けて複数のユーザにより操作しても良い。
【００８４】
（１３）上記実施形態においては、サウンドウォール１２０など、仮想粒子２００の運動を規制する要素をコントローラ２０を用いて設定される場合について説明したが、予め記憶されたデータに基づいて規制要素が設定されるようにしても良い。
【００８５】
（１４）上記実施形態においては、仮想空間１００に設定され、仮想粒子２００の運動に影響を与える力として、重力および抵抗力について設定する場合について説明したが、それらの力に代えて、仮想空間１００内に磁界や電界を設定しても良い。その場合、仮想粒子２００に磁性または電荷を持たせて、それら磁界や電界から力を受けるような演算を行うように、コンピュータプログラムを作っておけばよい。
【００８６】
（１５）上記実施形態においては、仮想粒子２００は、サウンドウォール１２０と衝突または接触することによりサウンドウォール１２０から力を受ける場合について説明したが、サウンドウォール１２０および仮想粒子２００の両者を荷電させる、または両者に磁性を持たせることにより、接触しなくても力（引力・斥力）を受けるようにしても良い。
【００８７】
（１６）上記実施形態においては、初期設定処理において設けられた放り込みエリア１１０またはスプリンクラ１５０のみを音データ生成処理において利用する場合について説明したが、音データ生成処理の最中に追加しても良い。その場合、音データ生成処理の最中に、初期設定処理において放り込みエリア１１０またはスプリンクラ１５０を設定した場合と同様の処理を行うことで設定され、それらは設定されるとすぐに仮想粒子２００を放出するようにすれば良い。
【００８８】
（１７）上記実施形態においては、仮想粒子２００を出現させるための手段として、放り込みエリア１１０およびスプリンクラ１５０について説明した。しかし、仮想粒子２００を出現させるための手段はそれらの手段に限定されず、回転しないことを除きスプリンクラ１５０と同様の構成を有する手段や、一点から仮想粒子２００が沸き出して全方位に向けて放出されるように出現する手段などを設けても良い。
【００８９】
（１８）上記実施形態における仮想空間１００を満たしている媒質は気体に限定されず、液体や固体であっても良いし、真空であっても良い。例えば仮想空間１００を満たしている媒質が液体である場合、移動する仮想粒子２００にはたらく抵抗力を気体の場合よりも大きく設定し、音が水中を伝わっているかのような音響効果を音データに付与するなどしても良い。また、それと同時に仮想粒子２００の体積と仮想空間１００を満たす液体の密度に応じて算出される「浮力」を仮想粒子２００の軌道演算に反映させるようにしても良い。
【００９０】
（１９）上記実施形態においては、仮想粒子２００とサウンドウォール１２０の「相互作用」および仮想粒子２００同士の「相互作用」の一態様として、衝突について説明した。しかし、それらオブジェクト同士の相互作用は、衝突に限定されるものではない。例えば、仮想粒子２００同士の距離に応じてはたらく力（引力・斥力など）を設定し、制御部１０１は該力に基づいて音データを生成するようにしてもよい。例えば仮想粒子２００同士が相互に近接した場合には、距離に反比例した斥力が働くとの設定がなされた場合、仮想粒子２００の近傍を他の仮想粒子２００が通り過ぎると、通り過ぎた仮想粒子２００の軌道は斥力により曲げられるが、その際に働いた斥力を表す音データを斥力の大きさに応じて生成するなどしても良い。
【００９１】
（２０）上記実施形態においては、仮想空間１００内に設けられたオブジェクト同士の相互作用に応じて音データが生成される場合について説明した。しかし、オブジェクト同士が相互作用していない場合においてもオブジェクトが音データを生成するようにしても良い。例えば、仮想空間１００を満たす媒質やサウンドウォール１２０が、上記実施形態における仮想粒子のような粒子で構成されているとした場合に、該粒子が定常状態において例えば振動しており、該振動状況に応じて音データを生成するようにしても良い。また別の例では、それら粒子が存在するだけでその粒子の総数に応じて音データが生成されるようにしてもよい。
【図面の簡単な説明】
【００９２】
【図１】音データ生成処理の最中のモニタ３０の画面表示の一例を示した図である。
【図２】音データ生成システム１の全体構成を示した図である。
【図３】音データ生成装置１０の構成を示した図である。
【図４】コントローラ２０の外観を示した図である。
【図５】制御プログラムの構成を示した図である。
【図６】サウンドウォール特性テーブルの一例を示した図である。
【図７】モニタ３０の画面表示の一例を示した図である。
【図８】サウンドウォール１２０の配置方法を説明するための図である。
【図９】空間特性の設定をするための画面表示を示した図である。
【図１０】仮想粒子２００の出現手段の設置方法を説明するための図である。
【図１１】仮想粒子２００の圧力について説明するための図である。
【図１２】初期設定処理の流れを示したフローチャートである。
【図１３】音データ生成処理の流れを示したフローチャートである。
【符号の説明】
【００９３】
１…音データ生成システム、１０…音データ生成装置、２０…コントローラ、２１…本体、２２…ボタン、２３…通信ケーブル、２４…移動検知手段、３０…モニタ、４０…カーソル、１００…仮想空間、１０１…制御部、１０２…光ディスク再生部、１０３…ＲＯＭ、１０４…ＲＡＭ、１０５…Ｉ／Ｏ部、１０９…バス、１１０…放り込みエリア、１２０…サウンドウォール、１３０…ホール、１５０…スプリンクラ、２００…仮想粒子、４００…仮想空間制御パネル、４５０…粒子パネル
【図１】
2008176075.tif 000003
【図２】
2008176075.tif 000004
【図３】
2008176075.tif 000005
【図４】
2008176075.tif 000006
【図５】
2008176075.tif 000007
【図６】
2008176075.tif 000008
【図７】
2008176075.tif 000009
【図８】
2008176075.tif 000010
【図９】
2008176075.tif 000011
【図１０】
2008176075.tif 000012
【図１１】
2008176075.tif 000013
【図１２】
2008176075.tif 000014
【図１３】
2008176075.tif 000015