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