(57)【特許請求の範囲】
【請求項１】
仮想空間を設定する仮想空間設定手段と、
前記仮想空間設定手段により設定された仮想空間の一部又は全部の領域を、特定領域として１又は複数特定する特定領域特定手段と、
複数の仮想粒子を前記仮想空間に対して連続的に放出する演算を行う仮想粒子放出手段と、
前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、
前記軌道演算手段による演算結果に従って、前記特定領域特定手段により特定された特定領域内の前記仮想粒子に応じて波形を算出する波形算出手段と、
前記波形算出手段により算出された波形に対応した音データを生成する音データ生成手段と、
前記音データ生成手段により生成された音データを出力する出力手段と
を具備することを特徴とする音データ生成装置。
【請求項２】
前記波形算出手段は、前記軌道演算手段による演算結果に従って、前記特定領域特定手段により特定された特定領域内に含まれる前記仮想粒子の配置態様によって表現される波形を算出する
ことを特徴とする請求項１に記載の音データ生成装置。
【請求項３】
前記波形算出手段は、前記特定領域内において予め定められた軸方向に近接する仮想粒子同士を繋ぐことによって表れる波形を算出する
ことを特徴とする請求項２に記載の音データ生成装置。
【請求項４】
前記音データ生成手段は、前記波形算出手段により算出された波形を１周期として、複数回繰り返して音データを生成する
ことを特徴とする請求項１乃至３のいずれか１に記載の音データ生成装置。
【請求項５】
音高を示す音高データを取得する音高データ取得手段
を具備し、
前記音データ生成手段は、前記音高データ取得手段により取得された音高データの示す音高に基づいて音データを生成する
ことを特徴とする請求項１乃至４のいずれか１に記載の音データ生成装置。
【請求項６】
前記特定領域特定手段は、前記仮想空間内の一部又は全部の領域を特定領域として複数特定し、
前記波形算出手段は、前記複数の特定領域の一部又は全部が重なる場合には、重なる領域を共有して、前記特定領域毎に波形を算出する
ことを特徴とする請求項１乃至５のいずれか１に記載の音データ生成装置。
【請求項７】
前記特定領域において予め定められた軸方向の位置と音高との対応関係を記憶する対応関係記憶手段と、
前記軌道演算手段による演算結果に従って、前記仮想粒子が前記特定領域を通過するときの、該仮想粒子の前記特定領域における前記予め定められた軸方向の位置を算出する位置算出手段と、
前記記憶手段に記憶された対応関係に基づいて、前記位置算出手段により算出された位置に対応する音高を特定する音高特定手段と
を具備し、
前記音データ生成手段は、前記音高特定手段により特定された音高の音データを生成する
ことを特徴とする請求項１に記載の音データ生成装置。
【請求項８】
前記特定領域特定手段により特定された特定領域内に、予め定められた形状の波形を配置する波形配置手段
を具備し、
前記音データ生成手段は、前記軌道演算手段による演算結果に従って、前記仮想粒子放出手段の演算により放出された仮想粒子と前記波形との衝突位置から該波形を読み出したときの該波形に対応した音データを生成する
ことを特徴とする請求項１に記載の音データ生成装置。
【請求項９】
前記特定領域特定手段により特定された特定領域内に、該特定領域内で移動可能な複数の第２の仮想粒子を配置する仮想粒子配置手段と、
前記軌道演算手段の演算結果に従って、前記特定領域内の前記第２の仮想粒子と前記仮想粒子放出手段の演算により放出された仮想粒子との相互作用に基づいて前記特定領域における前記第２の仮想粒子の配置を連続的に変化させる位置変化手段と
を具備し、
前記波形算出手段は、前記特定領域内の前記第２の仮想粒子の配置態様によって表現される波形を算出する
ことを特徴とする請求項１に記載の音データ生成装置。
【請求項１０】
コンピュータを、
仮想空間を設定する仮想空間設定手段と、
前記仮想空間設定手段により設定された仮想空間の一部又は全部の領域を、特定領域として１又は複数特定する特定領域特定手段と、
複数の仮想粒子を前記仮想空間に対して連続的に放出する演算を行う仮想粒子放出手段と、
前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、
前記軌道演算手段による演算結果に従って、前記特定領域特定手段により特定された特定領域内の前記仮想粒子に応じて波形を算出する波形算出手段と、
前記波形算出手段により算出された波形に対応した音データを生成する音データ生成手段と、
前記音データ生成手段により生成された音データを出力する出力手段
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音データ生成装置およびプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータで「川のせせらぎ音」や「そよ風の音」など自然現象に伴う音を巧妙に再現する技術が提案されている。例えば特許文献１では、自然現象における音の特徴を模した波形データを繰り返し音声へ変換することにより自然現象の音を再現する技術が提案されている。
【特許文献１】特開平０７−１４０９７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上述の川のせせらぎ音は多数の水分子の運動から生じるものであり、そよ風の音は空気中に存在する多数の気体分子の流れや振動から生じるものであるとの例からも明らかなように、自然界において発生する音の多くは小さなスケールで見れば多数の粒子が高頻度で相互作用を繰り返すことにより生じている。従って、その結果生成される音には「ランダム性」や「非再現性」が生まれ、それらが音に「自然らしさ」を与えていると考えられる。
【０００４】
しかしながら、上記特許文献１を含め、従来のコンピュータにより生成される音は、予め決められた波形データが繰り返し読み出されるだけの音であったため、その音には上述した「ランダム性」や「非再現性」が欠如しており、所謂「自然らしさ」が感じられないといった問題があった。
【０００５】
本発明は上述した事情に鑑みてなされたものであり、コンピュータによって音を発生させる場合において、規則性のない音を発生させることのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の好適な態様である音データ生成装置は、仮想空間を設定する仮想空間設定手段と、前記仮想空間設定手段により設定された仮想空間の一部又は全部の領域を、特定領域として１又は複数特定する特定領域特定手段と、複数の仮想粒子を前記仮想空間に対して連続的に放出する演算を行う仮想粒子放出手段と、前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、前記軌道演算手段による演算結果に従って、前記特定領域特定手段により特定された特定領域内の前記仮想粒子に応じて波形を算出する波形算出手段と、前記波形算出手段により算出された波形に対応した音データを生成する音データ生成手段と、前記音データ生成手段により生成された音データを出力する出力手段とを具備することを特徴とする。
【０００７】
上述の態様において、前記波形算出手段は、前記軌道演算手段による演算結果に従って、前記特定領域特定手段により特定された特定領域内に含まれる前記仮想粒子の配置態様によって表現される波形を算出してもよい。
また、上述の態様において、前記波形算出手段は、前記特定領域内において予め定められた軸方向に近接する仮想粒子同士を繋ぐことによって表れる波形を算出してもよい。
【０００８】
また、上述の態様において、前記音データ生成手段は、前記波形算出手段により算出された波形を１周期として、複数回繰り返して音データを生成してもよい。
【０００９】
また、上述の態様において、音高を示す音高データを取得する音高データ取得手段を具備し、前記音データ生成手段は、前記音高データ取得手段により取得された音高データの示す音高に基づいて音データを生成してもよい。
【００１０】
また、上述の態様において、前記特定領域特定手段は、前記仮想空間内の一部又は全部の領域を特定領域として複数特定し、前記波形算出手段は、前記複数の特定領域の一部又は全部が重なる場合には、重なる領域を共有して、前記特定領域毎に波形を算出してもよい。
【００１１】
また、上述の態様において、前記特定領域において予め定められた軸方向の位置と音高との対応関係を記憶する対応関係記憶手段と、前記軌道演算手段による演算結果に従って、前記仮想粒子が前記特定領域を通過するときの、該仮想粒子の前記特定領域における前記予め定められた軸方向の位置を算出する位置算出手段と、前記記憶手段に記憶された対応関係に基づいて、前記位置算出手段により算出された位置に対応する音高を特定する音高特定手段とを具備し、前記音データ生成手段は、前記音高特定手段により特定された音高の音データを生成してもよい。
【００１２】
また、上述の態様において、前記特定領域特定手段により特定された特定領域内に、予め定められた形状の波形を配置する波形配置手段を具備し、前記音データ生成手段は、前記軌道演算手段による演算結果に従って、前記仮想粒子放出手段の演算により放出された仮想粒子と前記波形との衝突位置から該波形を読み出したときの該波形に対応した音データを生成してもよい。
【００１３】
また、上述の態様において、前記特定領域特定手段により特定された特定領域内に、該特定領域内で移動可能な複数の第２の仮想粒子を配置する仮想粒子配置手段と、前記軌道演算手段の演算結果に従って、前記特定領域内の前記第２の仮想粒子と前記仮想粒子放出手段の演算により放出された仮想粒子との相互作用に基づいて前記特定領域における前記第２の仮想粒子の配置を連続的に変化させる位置変化手段とを具備し、前記波形算出手段は、前記特定領域内の前記第２の仮想粒子の配置態様によって表現される波形を算出してもよい。
【発明の効果】
【００１４】
本発明によれば、コンピュータによって音を発生させる場合において、規則性のない音を発生させることができる。
【発明を実施するための最良の形態】
【００１５】
（本発明の概略説明）
本発明に係る音データ生成装置は、コンピュータの演算によって形成される仮想空間の中に多数の仮想粒子を放出させる。そして、仮想空間内に設けられた特定領域における仮想粒子の配置態様によって表現される波形を算出し、その波形に基づいて音データを生成するものである。
【００１６】
図１は、音データ生成処理におけるモニタ表示の一例である。仮想粒子２００は、スプリンクラ１５０の先端部分より仮想空間１００内に放出される。そして、仮想粒子２００は、仮想空間１００内に設定された重力に従って画面の下方向に向けて「落下」すると共に、仮想空間１００の壁面などで跳ね返ったり、仮想粒子２００同士で衝突したりする。その結果、多数の仮想粒子２００が仮想空間１００内でランダムに運動する。そのように多数の仮想粒子２００が飛び交っている仮想空間１００には、特定領域３００が設けられる。そして、仮想粒子２００が特定領域３００内に入ると、特定領域３００内の仮想粒子２００を線で繋ぐことにより表現される波形Ｗに基づいて音データが生成される。
【００１７】
（Ａ：構成）
以下、図面を参照しつつ、本発明を実施するための最良の形態について説明する。
（Ａ−１：全体構成）
図２は、本発明に係る音データ生成システム１の全体構成を示す図である。音データ生成システム１は、プログラム実行装置としての音データ生成装置１０と、マウス２０と、モニタ３０と、多点コントローラ４０とを有する。
【００１８】
（Ａ−２：各装置の構成）
まず、音データ生成装置１０のハードウェア構成について図３を参照して説明する。
音データ生成装置１０は、制御部１０１、光ディスク再生部１０２、ＲＯＭ（Read Only Memory）１０３、ＲＡＭ（Random Access Memory）１０４、Ｉ／Ｏ部１０５を有する。それら各部はバス１０９を介して互いに接続されている。図に示す制御部１０１は、例えばＣＰＵ（Central Processing Unit）であり、ＲＯＭ１０３から読み出された各種制御プログラムを実行することにより、音及び映像の信号処理や各部の制御を行う。光ディスク再生部１０２は、ＣＤ−ＲＯＭ・ＤＶＤ−ＲＯＭ等の光ディスクからデータを読み取る。ＲＯＭ１０３は、制御部１０１が実行する各種制御プログラムを記憶している。ＲＡＭ１０４は、制御部１０１によってワークエリアとして利用される。Ｉ／Ｏ部１０５は、音データ生成装置１０と接続された機器との信号の送受信を仲介する。具体的には、マウス２０及び多点コントローラ４０から操作信号を示す信号を受け取り制御部１０１に出力すると共に、制御部１０１から受け取った音データ及び映像データをモニタ３０に出力する。
【００１９】
次に、マウス２０の構成について図４を用いて説明する。マウス２０は、本体２１の上面（図中（ａ）参照）にはボタン２２を、下面（図中（ｂ）参照）には移動検知手段２４を有する。また、マウス２０は、音データ生成装置１０に通信ケーブル２３にて接続されており、操作内容を示すデータが通信ケーブル２３を介して音データ生成装置１０に送信される。
【００２０】
マウス２０は、本体２１が移動されると移動検知手段２４が移動方向と移動量を示す操作信号を生成し、通信ケーブル２３を介して出力する。該信号を受け取った制御部１０１は、操作信号に基づいてモニタ３０の画面上のカーソルを移動する処理を行う。
また、ボタン２２が押下（以下「クリック」という）されると、マウス２０はクリックされたことを示す操作信号を生成し、通信ケーブル２３を介して出力する。制御部１０１は、操作信号を受信すると、受信した操作信号に応じて、クリック時にカーソルが位置していた座標を認識し、その座標に表示されているアイコン等に対して選択処理が行われたと認識する。
また、ボタン２２を押下した状態で本体２１が移動され、その後ボタン２２の押下を解除する操作（以下「ドラッグ」という）がなされると、ボタン２２が押下されていた間の本体２１の移動方向と移動量、およびドラッグ操作がなされたことを示す操作信号を生成し、通信ケーブル２３を介して出力する。制御部１０１は、操作信号を受信すると、受信した操作信号に応じて、ドラッグにより選択された画面上の領域やその領域に含まれるアイコン等に対して選択処理が行われたと認識する。
【００２１】
次に、モニタ３０の構成について図５を用いて説明する。モニタ３０は、音データ生成装置１０から受け取った映像データに基づいて映像を表示する。モニタ画面の各点には、同図に示されるように画面左上を座標（０，０）、右下を座標（７５６，１０２４）とする座標が設定されている。また、図５に示すように、モニタ画面の下方には音データ再生部３０ａが設けられている。音データ再生部３０ａは、音データ生成装置１０から受け取った音データに基づいて放音する。
【００２２】
次に、多点コントローラ４０の構成について、図６を用いて説明する。図６（ａ）に示すように、多点コントローラ４０は、タッチパネル４２を有する。タッチパネル４２には、図に示すように画面左上を座標（０，０）、右下を座標（７５６，１０２４）とする座標が設定されている。タッチパネル４２は、タッチパネル上の特定の点が押下されたことを感知する感知手段を有し、その感知手段がパネル上の特定の点が押下されたことを感知すると、押下された点の位置を示す座標を含む押下位置情報を、通信ケーブル４１を介して音データ生成装置１０に出力する。複数の点が同時に押下されている場合には、それら押下されている複数の点それぞれについて並行して押下位置情報を生成及び出力する。
【００２３】
音データ生成装置１０の制御部１０１は、押下位置情報を多点コントローラ４０から受け取ると、その押下位置情報に含まれる座標を読み出し、モニタ３０の画面上においてその座標に相当する点が選択されたと判断する。図６（ｂ）は、モニタ３０の画面表示を示した図である。例えば、手Ａ及び手Ｂが、図６（ａ）で示されるようにタッチパネル４２を押下した場合、手Ａで押下された位置を示す座標を示す押下位置情報及び手Ｂで押下された位置を示す座標を示す押下位置情報が制御部１０１へ出力される。制御部１０１は、押下位置情報を受け取ると、図６（ｂ）で示されるモニタ画面上の点Ａ及び点Ｂが選択されたと判定する。
【００２４】
（Ａ−３：音データ生成装置１０の機能的構成）
次に、音データ生成装置１０の機能的構成の一例を、図７を参照しつつ説明する。図７は、音データ生成装置１０の機能的構成の一例を示す図である。図７において、空間特性制御部１１，オブジェクト制御部１２，粒子運動制御部１３，特定領域制御部１４，波形算出部１５，映像制御部１６及び音データ生成部１７は、制御部１０１がＲＯＭ１０３に記憶されたプログラムを実行することによって実現される。なお、図中の矢印はデータの流れを概略的に示すものである。
【００２５】
空間特性制御部１１は、仮想空間１００に設定される各種の特性であって仮想粒子２００の運動に影響を及ぼす各種の特性を制御することで仮想空間１００を設定する。ここで、空間特性制御部１１が行う空間制御処理の内容について、図８を参照しつつ説明する。図８は、モニタ３０の画面の一例を示した図である。画面には、仮想空間１００の枠組みが表示されている。また、仮想空間１００の図中右側には、制御パネル４００が表示されている。空間特性制御部１１は、ユーザによる制御パネル４００に対する操作に基づき、仮想空間１００を以下のように設定する。
【００２６】
仮想空間１００には、以下に例示するような「空間特性」が設定される。制御パネル４００の図中下部の空間特性アイコン４０４がクリックされると、空間特性制御部１１は、所定の選択肢をモニタ３０の画面上に表示する。図９は、表示画面の一例を示す図である。図９に示す例においては、「（重力の）方向」、「重力加速度」、「（抵抗力の）比例定数」といった各種の空間特性を設定するための画面が表示される。ユーザは、マウス２０を操作して、画面上に表示された重力の方向に関する選択肢を選択し、重力加速度の大きさを書き込む。また、ユーザは、仮想粒子２００の移動の際に働く抵抗力は仮想粒子２００の速度に比例するとし、その速度に応じた抵抗力を決定するための比例定数をマウス２０を操作して書き込む。空間特性制御部１１は、マウス２０から供給される操作信号に応じて、入力された内容を示すデータをＲＡＭ１０４の所定の記憶領域に書き込む。
【００２７】
これら仮想空間１００に関する設定は、予め制御プログラムなどにテンプレートとして書き込んでおいてもよい。例えば、あるテンプレートにおいては、重力場は画面下方に設定され、仮想空間１００内を移動する仮想粒子２００には移動の方向とは逆にその速度に比例した抵抗力が働き、その比例定数が「水中」に相当するような大きな値に設定されているようにすれば、ユーザはそのテンプレートを選択するだけで、仮想空間１００がまるで重力のある空間に設置された水が満たされた容器であるかのような設定を容易に行うことができる。
【００２８】
次に、図７に示すオブジェクト制御部１２は、仮想空間１００内に仮想粒子２００を出現させるオブジェクト（スプリンクラ１５０）の配置等を制御する。本実施形態における仮想空間１００には、仮想粒子２００を仮想空間１００に発生させるためのオブジェクトとして、スプリンクラ１５０が用いられる。
【００２９】
ここで、オブジェクト制御部１２が行う処理の内容について、図１０を参照しつつ説明する。図１０は、モニタ３０に表示される画面の一例を示す図である。ユーザは、図１０に例示される画面を参照しながら、マウス２０を用いて制御パネル４００の初速度４０２、頻度４０３の値を設定し、スプリンクラアイコン４０１を仮想空間１００内にドラッグする操作を行う。オブジェクト制御部１２は、マウス２０から供給される操作信号に応じて、スプリンクラ１５０の初速度と頻度とを設定し、設定したスプリンクラ１５０を仮想空間１００内に出現させる。スプリンクラ１５０の配置はユーザがマウス２０を用いてドラッグ操作を行うことで自由に変更できる。ユーザによってドラッグ操作が行われると、オブジェクト制御部１２は、マウス２０からの操作信号に応じて仮想空間１００におけるスプリンクラ１５０を移動する。
【００３０】
オブジェクト制御部１２は、スプリンクラ１５０の放出口１５０ａから、複数の仮想粒子２００を、設定された初速度及び頻度で仮想空間１００に対して連続的に放出する演算を行う。より具体的には、オブジェクト制御部１２は、時間平均して単位時間あたり設定された頻度となるように、仮想粒子２００をスプリンクラ１５０から連続的に放出する。
また、オブジェクト制御部１２は、スプリンクラ１５０の座標を示すデータを映像制御部１６に供給する。
【００３１】
次に、図７に示す粒子運動制御部１３は、仮想空間１００内においてスプリンクラ１５０から放出された仮想粒子の軌道を演算する。より具体的には、粒子運動制御部１３は、仮想空間１００内での仮想粒子２００の運動を以下に説明するルール（ａ）〜（ｃ）に従って制御する。なお、以下のルールは、地球上の物体の力学的性質及び力学的法則を模したものである。
（ａ）仮想粒子２００は、所定の体積（ｖ）及び質量（ｍ）を有している。
（ｂ）仮想粒子２００に働く力Ｆと仮想粒子２００の質量ｍと加速度ａとの間にはＦ＝ｍａの関係がある。例えば本実施形態においては、仮想空間１００の下方向に重力が加わるため、仮想粒子２００には常にｍｇ（ｇは重力加速度）の大きさの力が仮想空間１００の下向きに働く。
（ｃ）仮想粒子２００同士、及び仮想粒子２００と仮想空間１００の枠組みが衝突した場合には、跳ね返り係数１で完全弾性衝突をする。
【００３２】
また、粒子運動制御部１３は、仮想空間１００の枠組みの図中底辺に達した仮想粒子２００を消滅させる。
また、粒子運動制御部１３は、各仮想粒子の座標を示すデータを映像制御部１６に供給する。
【００３３】
次に、図７に示す特定領域制御部１４は、仮想空間１００の一部又は全部の領域を、特定領域として１又は複数特定する。図１０に示す例においては、特定領域制御部１４は、仮想空間１００の予め定められた位置に、矩形の特定領域３００を設ける。
また、特定領域制御部１４は、特定領域の座標を示すデータを映像制御部１６に供給する。
【００３４】
次に、図７に示す波形算出部１５は、粒子運動制御部１３による演算結果に従って、特定領域３００内に含まれる仮想粒子２００の配置態様によって表現される波形を算出する。ここでは、波形算出部１５は、特定領域３００内に含まれる各仮想粒子２００の座標を取得し、それらの仮想粒子２００を予め定められた軸方向（図１０に示す例では図中左右方向（以下「ｘ軸方向」という））に近接する仮想粒子２００同士を繋ぐことによって表れる波形を算出する。このとき、波形算出部１５は、特定領域３００の図中左端部の図中上下方向（以下「ｙ軸方向」という）における中心位置ｐ１を波形の始点とし、特定領域３００の図中右端部のｙ軸方向における中心位置ｐ２を波形の終点とする。この始点と終点の位置は固定とする。図１０に示す例においては、波形算出部１５は、点ｐ１を始点として、ｘ座標値が小さい順に、仮想粒子２００ａ，２００ｂ，２００ｃ…を、波形を構成する仮想粒子として採用する。
【００３５】
このとき、波形算出部１５は、ｘ座標の値が同一である仮想粒子２００が複数ある場合には、近接する仮想粒子２００との距離が最小となる仮想粒子２００を、波形を構成する仮想粒子として採用する。具体的には、例えば、図１０に示す例において、仮想粒子２００ｆと仮想粒子２００ｇのｘ座標値が同一である場合には、制御部１０１は、仮想粒子２００ｅとの距離が小さい方の仮想粒子２００ｆを、波形を構成する仮想粒子として採用する。
【００３６】
仮想粒子２００は各々時間の経過と共に、重力に伴う振動や衝突による運動を行うから、仮想粒子２００によって特定領域３００内に構成される波形は時々刻々変化する。また、特定領域３００内に新に仮想粒子２００が侵入すると、これらの仮想粒子２００も上述と同様の動きをするから、波形変化はより複雑化、多様化したものとなる。
【００３７】
図１０に示す例において、特定領域３００内に表れる波形Ｗは、ｘ軸方向を時間軸とし、ｙ軸方向を振幅として表現される。波形Ｗの振幅は特定領域３００のｙ軸方向の幅以下となり、振幅が必要以上に大きくなってしまうことがない。
【００３８】
次に、図７に示す映像制御部１６は、オブジェクト制御部１２、粒子運動制御部１３、特定領域制御部１４から供給されるデータに基づいて、仮想空間１００内のスプリンクラ１５０の位置や仮想粒子２００の運動等を示す映像データを生成し、モニタ３０に供給する。モニタ３０は供給される映像データに基づいて仮想空間１００内の仮想粒子２００の運動等を示す映像を表示する。
【００３９】
次に、音データ生成部１７は、波形算出部１５により算出された波形に対応した音データを生成する。ここでは、音データ生成部１７は、波形算出部１５により算出された波形を１周期として、予め定められた周波数で、その波形を複数回繰り返した音データを生成する。具体的には、例えば、予め定められた周波数が４４０Ｈｚである場合には、音データ生成部１７は、特定領域３００内に表れた波形を１秒間に４４０回繰り返した音データを生成する。
【００４０】
このとき、音データ生成部１７は、ＭＡＸ／ＭＳＰを用いて音データを生成する。ＭＡＸ／ＭＳＰとは、音楽プログラミング言語ＭＡＸｓと音響信号処理用エクステンションＭＳＰとからなる。ＭＡＸ／ＭＳＰによれば、様々なモジュールをつなぎ合わせて、シンセサイザ、エフェクタ、シーケンサなどが作れるほか、パッチングによって音楽の自動生成なども可能であり、ビジュアル的なプログラミング環境によって、直感的なプログラミング・操作ができる。
【００４１】
音データ生成部１７は、生成した音データを音データ再生部３０ａに出力する。音データ再生部３０ａは、音データ生成部１７から供給される音データに基づいて放音する。
【００４２】
（Ｂ：動作）
次に、音データ生成装置１０が音データを生成する動作について説明する。まず、音データ生成装置１０の電源が投入されると、制御部１０１はＲＯＭ１０３から各種制御プログラムを読み出し、ＲＡＭ１０４にロードする。
【００４３】
（Ｂ−１：初期設定処理）
まず、制御部１０１は、初期設定処理を行う。図１１は、初期設定処理の流れを示したフローチャートである。まず、音データ生成システム１のユーザは、制御パネル４００の空間特性アイコン４０４（図８参照）をクリックする。制御部１０１は、マウスからの操作信号に応じて、パラメータ設定のための画面（図９参照）を示すデータをモニタ３０に出力し、モニタ３０は、制御部１０１から供給されるデータに応じた画面を表示する。ユーザは、モニタ３０に表示される画面を参照しつつ、仮想空間１００の空間特性を設定するための操作を行う。制御部１０１は、マウス２０から供給される信号に応じて、仮想空間１００の空間特性、すなわち仮想空間１００における重力や抵抗力等の設定を行う（ステップＳＡ１００）。
【００４４】
例えば、重力の設定において、重力の方向として図面下方向が選択されその重力加速度の値が書き込まれると、仮想粒子２００に対して画面下方向に設定された値の重力が働くように設定される。また、抵抗力の設定において、比例定数の値が書き込まれると、仮想粒子２００の移動速度に比例した抵抗力が移動と逆方向に働く。そして、その比例定数に対応してあたかも空気や水が仮想空間１００に満たされているような環境に設定される。
【００４５】
次いで、制御部１０１は、スプリンクラ１５０（仮想粒子２００を仮想空間１００に出現させる手段）の設定を行う（ステップＳＡ１１０）。ユーザがマウス２０を操作することにより制御パネル４００にパラメータが書き込まれた後、スプリンクラアイコン４０１がクリックされ、仮想空間１００内の領域が設定されると、制御部１０１は、マウス２０から供給される操作信号に応じて、スプリンクラ１５０の設定処理を行う。スプリンクラ１５０の配置はユーザがマウス２０を用いて自由に変更できる。
【００４６】
（Ｂ−２：音データ生成処理）
初期設定処理がなされると、制御部１０１は音データ生成処理を開始する。図１２は音データ生成処理の流れを示したフローチャートである。まず、制御部１０１は、スプリンクラ１５０から、仮想粒子２００を仮想空間１００内に放出させる（ステップＳＢ１１０）。次いで、制御部１０１は、放出した仮想粒子２００のそれぞれについて、ステップＳＢ１２０以降の処理を並行して行う。
【００４７】
制御部１０１は、まず、微少単位時間後の仮想粒子２００の運動（挙動）を演算する（ステップＳＢ１２０）。より具体的には、仮想粒子２００が仮想空間１００の壁又は他の仮想粒子２００に衝突した場合には、完全弾性衝突で跳ね返り、制御部１０１は、その仮想粒子２００に新たな速度を設定する。一方、衝突が起こっていない場合には、制御部１０１は、仮想粒子２００の速度に微少時間を乗算することにより、仮想粒子２００を新たな位置に移動する。このとき、ステップＳＢ１２０においては、ステップＳＢ１１０にて仮想空間１００に出現した仮想粒子２００の全てについて同時にその軌道の算出が行われるため、ランダムに出現した多数の仮想粒子２００が互いに相互作用を高頻度で繰り返すこととなる。従って、仮に仮想空間１００の各種設定が同一であっても、毎回異なった仮想粒子２００の挙動が引き起こされる。
【００４８】
次いで、制御部１０１は、仮想粒子２００が仮想空間１００の底面に到達して消滅するか否かを判定する（ステップＳＢ１３０）。仮想粒子２００が仮想空間１００の底面に到達したと判定した場合には（ステップＳＢ１３０；ＹＥＳ）、制御部１０１は、その仮想粒子２００を画面上から消去し、その仮想粒子２００に関しての処理を終了する。一方、仮想粒子２００が仮想空間１００の底面に到達していないと判定した場合には（ステップＳＢ１３０；ＮＯ）、制御部１０１は、ステップＳＢ１４０以降の処理を行う。
【００４９】
制御部１０１は、特定領域３００内に存在する各仮想粒子２００の位置から波形を算出し（ステップＳＢ１４０）、算出した波形に基づいて音データを生成する（ステップＳＢ１５０）。制御部１０１は、生成した音データをモニタ３０の音データ再生部３０ａに供給する。音データ再生部３０ａは、制御部１０１から供給される音データに基づいて放音する。
【００５０】
上述のように、仮想粒子２００はスプリンクラ１５０からランダムに放出され、また、多数の仮想粒子２００が互いに高頻度で相互作用を繰り返しているため、前述のように波形は複雑にかつ多様に変化し、これにより、生成される音データはランダム性や非再現性を有する。
【００５１】
制御部１０１は、ステップＳＢ１５０の処理を終えると、ステップＳＢ１２０の処理に戻り、粒子の挙動演算処理を継続して行う。
【００５２】
また、制御部１０１は、演算により求められた各仮想粒子２００の座標に基づいて、仮想空間１００内の仮想粒子２００の位置等の画像を示す画像データを生成し、モニタ３０に出力する。モニタ３０は、制御部１０１から供給されるデータに応じた画面を表示する。これにより、モニタ３０には仮想空間１００における仮想粒子２００の運動状態が表示される。また、制御部１０１によって生成される音データは、モニタ３０に表示される画面に対応するものであるから、ユーザは、放音された音とそのまま対応する画面表示を見ることができる。
【００５３】
制御部１０１は、ステップＳＢ１５０において生成した音データを音データ再生部３０ａへ出力する。音データ再生部３０ａは制御部１０１から供給される音データを再生する。また、制御部１０１は、スプリンクラ１５０の配置態様及び仮想空間１００に設定された空間特性等、音データの生成に係る各種パラメータの情報（以下「設定情報」という）を、試行毎にＲＡＭ１０４に書き込む。制御部１０１は、ＲＡＭ１０４に書き込まれた設定情報を読み出すことにより、再度同じ条件下で音データの生成処理を行うことができる。そのように同様の条件設定で再び音データを生成したとしても、各仮想粒子２００の挙動は毎回異なるため、微視的には異なる波形の音データが生成される。
【００５４】
以上説明したように本実施形態によれば、特定領域３００内に表れる波形は粒子の動きにより変形され、波形の形状が変わると音色が変わる。また、スプリンクラ１５０から仮想粒子が連続的に放出され、放出された各仮想粒子同士の衝突を含めて各仮想粒子の軌道が演算されるから、これにより、音色が非規則的に変化する音を出力することができる。
【００５５】
また、この実施形態では、特定領域３００を規定してその領域内に表れる波形を用いるから、波形の最大振幅は、特定領域３００の縦幅となり、このようにすることで、音量が必要以上に大きくなってしまうのを防ぐことができる。
【００５６】
（Ｃ：変形例）
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。以下にその一例を示す。なお、以下の各態様を適宜に組み合わせてもよい。
（１）上述の実施形態では、制御部１０１は、矩形の特定領域を設ける構成としたが、特定領域の形状は矩形に限らず、例えば、楕円形や台形、五角形等であってもよく、また、例えば、図１３（ａ），（ｂ）に示すような、ＡＤＳＲ（Attack Decay Sustain Release）のパラメータにより整形される領域を用いるようにしてもよい。要は、仮想空間１００内の一部又は全部の領域が特定される形状であればどのようなものであってもよい。特定領域が矩形以外の形状であっても、上述の実施形態と同様に、制御部１０１が、その特定領域内の仮想粒子２００によって表現される波形を特定するようにすればよい。
また、上述の実施形態において、仮想空間１００内に仮想粒子２００を反射させる反射板を１又は複数設けてもよい。反射板は、仮想粒子２００を反射させて特定領域の波形をユーザが制御するために設置する。ユーザがマウス２０を用いて仮想空間１００内の反射板を移動させる操作を行うと、制御部１０１は、マウス２０からの信号に応じて、操作された内容に応じた位置に反射板を移動させる。
【００５７】
（２）上述の実施形態では、制御部１０１は、特定領域３００内に位置する仮想粒子２００について、ｘ軸方向に近接する仮想粒子２００同士を繋ぐことによって表れる波形を算出したが、波形の算出態様はこれに限らず、例えば、特定領域３００内に位置する仮想粒子２００について、ｙ軸方向に近接するもの同士を繋ぐことによって表れる波形を算出するようにしてもよく、特定領域３００内に含まれる仮想粒子２００の配置態様によって表現される波形を所定のアルゴリズムに従って算出するものであればどのようなものであってもよい。
【００５８】
（３）上述の実施形態では、図１０に例示したように、仮想空間１００に一つの特定領域３００を設けたが、特定領域の数は１に限らず、制御部１０１が、仮想空間１００内の一部又は全部の領域を特定領域として複数特定してもよい。この場合の動作例について、図１４を参照しつつ説明する。図１４は、モニタ３０に表示される画面の一例を示す図である。図１４に示す例においては、制御部１０１は、仮想空間１００内に２つの特定領域３００ａ，３００ｂを設定する。この場合、制御部１０１は、それらの特定領域３００ａ，３００ｂの一部又は全部が重なる場合には、重なる領域を共有して、特定領域毎に波形を算出する。
【００５９】
この場合は、複数の特定領域が重なる場合に重なる部分を共有するから、重なった領域において複数の波形で共通の部分を持たせることができ、これにより、複数の特定領域の各波形から生成される音データの表す音の音色に相関関係を持たせることができる。すなわち、この態様によれば、似た音色の複数の異なる音を同時に奏でることができる。
【００６０】
（４）上述の実施形態では、制御部１０１は、特定領域３００内に表れる波形Ｗを１周期分の波形として、その波形のデータを生成したが、特定領域３００内に表れる波形Ｗを１周期より短い時間の波形として用いるようにしてもよく、また、１／２周期など長時間の波形であってもよい。
【００６１】
（５）上述の実施形態では、制御部１０１は、仮想空間１００の予め定められた位置に、特定領域３００を設けるようにしたが、制御部１０１が、特定領域３００を、仮想空間１００内で移動させたり、回転させたりすることができるようにしてもよい。この場合は、例えば、ユーザがマウス２０を用いて特定領域３００を移動・回転させるための操作を行い、制御部１０１は、マウス２０からの操作信号に応じて、特定領域３００の位置を仮想空間１００内で移動・回転させればよい。
【００６２】
また、制御部１０１が、特定領域３００の形状を変更するようにしてもよい。この場合は、例えば、ユーザがマウス２０を用いて特定領域３００の形状を変更するための操作を行い、制御部１０１は、マウス２０から供給される操作信号に応じて、特定領域３００の形状を変更すればよい。この場合も、制御部１０１は、特定領域３００内の仮想粒子２００によって表現される波形に基づいて音データを生成すればよい。特定領域３００のｘ軸方向の長さが長いほど周波数を低くする、といったように、特定領域３００の形状に応じて読み出し周期を変更するようにしてもよい。
【００６３】
また、ユーザが、鍵盤楽器に設けられる鍵盤や上記実施形態のマウス２０、キーボード等の操作手段を操作してＭＩＤＩの音色を指定できるようにし、制御部１０１が、指定された音色に対応する波形のエンベロープをＡＤＳＲパラメータにより整形される領域を特定領域として特定するようにしてもよい。この場合は、指定された音色に近い音色の音データが音データ生成装置により生成されることとなる。
【００６４】
また、ユーザが、鍵盤、マウス、キーボード等の操作手段を操作してベロシティを指定できるようにし、制御部１０１が、指定されたベロシティに応じてＡＤＳＲパラメータを特定し、特定したパラメータにより整形される領域を特定領域として特定するようにしてもよい。この場合は、より具体的には、ベロシティとＡＤＳＲパラメータとを対応付けて所定の記憶領域に予め記憶させておき、ユーザによってベロシティが指定されると、制御部１０１が、指定されたベロシティに対応するＡＤＳＲパラメータを記憶された対応関係に基づいて特定し、特定したパラメータにより整形される領域を特定領域として特定するようにすればよい。
【００６５】
（６）上述の実施形態では、予め定められた周波数で波形を繰り返した音データを生成するようにしたが、周波数（音高）を変更できるようにしてもよい。具体的には、例えば、ユーザがマウス２０やキーボード等の操作手段を操作して音高を指定できるようにし、制御部１０１が、操作手段からの操作信号に応じて音高を示す音高データを取得し、特定領域３００内に表れた波形を１周期として、取得した音高データの示す音高に対応する周波数の音データを生成するようにしてもよい。
【００６６】
また、鍵盤楽器に設けられる鍵盤（キーボード）をユーザが操作することによって音高を指定するようにしてもよい。この場合は、音高を指定するための鍵を複数有する鍵盤を音データ生成装置に設ける構成としてもよく、また、鍵盤を備える音高指定装置を音データ生成装置と接続するようにしてもよい。この場合、ユーザが鍵盤に含まれるいずれかの鍵を押下すると、鍵盤が操作された内容に応じた信号を出力し、音データ生成装置が、鍵盤からの信号に応じて、押下された鍵に対応する音高を示す音高データを取得し、取得した音高データの示す音高の音データを生成する。
【００６７】
制御部１０１が音高データを取得する態様は上述したものに限らず、例えば、通信ネットワークを介して音高データを受信するようにしてもよく、制御部１０１が音高を示す音高データを取得するものであればよい。
【００６８】
（７）上述の実施形態では、制御部１０１が、特定領域３００内の仮想粒子２００の配置態様によって表現される波形に対応した音データを生成した。これに代えて、特定領域３００の予め定められた軸方向の位置と音高との対応関係をＲＯＭ等の記憶部に予め記憶させておき、制御部１０１が、仮想粒子２００が特定領域３００を通過するときの位置に対応する音高の音データを生成するようにしてもよい。この場合の具体例について以下に説明する。
【００６９】
この態様では、音データ生成装置１０の記憶部に、特定領域３００における予め定められた軸方向（例えばｘ軸方向）の位置（座標）と、音高（又は周波数）との対応関係を示す関数を予め記憶させておく。なお、この例では対応関係を示す関数を記憶部に記憶するようにしたが、これに限らず、対応関係を示すテーブル等を記憶するようにしてもよく、対応関係を示すものであればどのようなものであってもよい。
【００７０】
この場合、制御部１０１は、上述の実施形態と同様に、スプリンクラ１５０から放出される各仮想粒子２００の軌道を、各仮想粒子２００同士の衝突も含めて演算し、この演算結果に従って、仮想粒子が特定領域３００を通過するときのｘ軸方向の位置を算出する。次いで、制御部１０１は、算出した位置に対応する音高を記憶部に記憶された対応関係に基づいて特定し、特定した音高の音データを生成する。なお、特定領域３００の形状は、上述の実施形態で示したような矩形等の多角形の形状であってもよく、また、図１５に示すような直線や、また、曲線等の線状であってもよい。
【００７１】
この場合、仮想粒子２００の軌道は、上述の実施形態と同様に仮想粒子２００同士の衝突も含めて演算されるから、特定領域３００を通過する仮想粒子２００の位置は非規則的なものとなる。これにより、制御部１０１により生成される音データの音高は時間の経過に伴って非規則的に変化する。
【００７２】
また、上述の実施形態とこの変形例とを組み合わせてもよい。この具体例について図１６を参照しつつ説明する。図１６は、この変形例においてモニタ３０に表示される画面の一例を示す図である。図１６において、音高用スプリンクラアイコン４１３は、音高を変更するための仮想粒子２１０を放出する音高用スプリンクラ１６０を仮想空間１００内に配置するためのアイコンである。ユーザは、画面を参照しながら、マウス２０を用いて音高用スプリンクラアイコン４１３を仮想空間内にドラッグする操作を行う。制御部１０１は、マウス２０からの信号に応じて、図１６に例示するように、スプリンクラ１５０に加えて、スプリンクラ１６０を仮想空間１００内に設け、スプリンクラ１６０から、音高を変更するための仮想粒子２１０を放出させる。このとき、制御部１０１は、特定領域３００内の仮想粒子２００の配置態様によって表される波形Ｗの音データであって仮想粒子２１０が特定領域３００を通過するときの位置に対応する音高の音データを生成する。
【００７３】
（８）上述の実施形態では、制御部１０１が、特定領域３００内に位置する仮想粒子２００の配置態様によって表現される波形に対応した音データを生成したが、これに代えて、特定領域３００内に予め定められた波形を配置しておくようにしてもよい。図１７は、この態様においてモニタ３０に表示される画面の一例を示す図である。図１７に示す例においては、制御部１０１は、特定領域３００内に、予め定められた波形Ｗ２を配置する。この波形Ｗ２は、例えばＭＩＤＩ（Musical Instrument Digital Interface）音源が生成する音声波形に応じたものであってもよく、また、例えばマイクロホン等によって収音された音の波形であってもよい。制御部１０１は、スプリンクラ１５０から放出される仮想粒子２００の軌道を、仮想粒子２００同士の衝突も含めて演算し、演算結果に従って、仮想粒子２００と波形Ｗ２とが衝突するタイミングを算出する。次いで、制御部１０１は、仮想粒子２００と波形Ｗ２とが衝突したタイミングで、波形Ｗ２の表す音の音データを音データ再生部３０ａに出力する。
【００７４】
このとき、制御部１０１が、仮想粒子２００の軌道の演算結果に従って、仮想粒子２００と波形Ｗ２との衝突位置（座標）を算出し、算出した衝突位置から波形を読み出したときの音を表す音データを生成するようにしてもよい。このようにすれば、仮想粒子２００と波形Ｗ２との衝突位置によってそれぞれ異なる音色の音が非規則的に放音される。
【００７５】
また、衝突位置から波形を読み出す場合には、波形Ｗ２に２つの仮想粒子２００が同時に衝突したときには、制御部１０１が、それぞれの衝突位置から読み出した音を表す音データを同時に出力するようにしてもよい。
【００７６】
また、この態様において、制御部１０１が、質量や移動速度等の粒子特性を有する仮想粒子２００をスプリンクラ１５０から放出するようにし、波形Ｗ２に衝突した仮想粒子２００の粒子特性（質量や移動速度）に応じて、波形の位相、振幅、周期（ピッチ）等を変化させてもよい。具体的には、例えば、制御部１０１が、波形Ｗ２に衝突した仮想粒子２００の質量が大きいほど波形の振幅を大きくしたり、衝突した仮想粒子２００の移動速度が速いほど周波数を大きくするようにしてもよい。
【００７７】
また、この態様において、制御部１０１が、仮想粒子２００と波形Ｗ２とが衝突する毎に、波形Ｗ２を変形させてもよい。具体的には、例えば、図１７に示す例において、図中上部から図中下方向に落下した仮想粒子２００が波形Ｗ２と衝突したときには、制御部１０１が、図１８に示すように、衝突位置の波形Ｗ２の形状が図中下部にへこんだ形状となるように変形してもよい。この場合に、制御部１０１が、衝突した仮想粒子２００の粒子特性（質量、移動速度）等に応じて波形Ｗ２の変形量を変化させるようにしてもよい。
【００７８】
また、この変形例において、制御部１０１が、特定領域３００内で仮想粒子２００をｘ軸方向に接続した線をエンベロープとして波形Ｗ２の振幅を制限するようにしてもよい。具体的には、例えば、図１７に示す波形Ｗ２が特定領域３００内に配置されている場合において、制御部１０１が、図１９に示すように、特定領域３００内の仮想粒子２００に応じて波形Ｗ２の振幅を制限するようにしてもよい。
【００７９】
（９）上述の実施形態では、制御部１０１が、ユーザの操作に応じて、スプリンクラ１５０の位置を移動させることにより、ユーザがスプリンクラ１５０の位置を適宜設定できるようにしたが、これに限らず、スプリンクラ１５０の位置を予め定められた位置に固定しておくようにしてもよい。
また、上述の実施形態において、制御部１０１が、スプリンクラ１５０毎に異なる放出態様で仮想粒子２００を放出させるようにしても良い。例えば、制御部１０１が、複数配置されたスプリンクラ１５０のそれぞれで異なる放出頻度で仮想粒子を放出するようにしてもよい。また、スプリンクラ１５０毎に異なる性質（質量、大きさ等）の仮想粒子２００を放出するようにしてもよい。
【００８０】
（１０）上述の実施形態では、重力や抵抗力等の空間特性を、音データの生成処理の最中に変更しない場合について説明したが、制御部１０１が、音データ生成処理の最中に変更することができるようにしてもよい。例えば、予め重力加速度の方向が周期的に変化するようにプログラムしておけば、その重力加速度の周期的変化により、仮想粒子２００の運動が周期的に変化する。
【００８１】
（１１）上述の実施形態では、スプリンクラ１５０から出現する仮想粒子２００の出現パターンがランダムである場合について説明した。これに代えて、制御部１０１が、仮想粒子２００の出現パターンの頻度や出現箇所を周期的に変更するようにしてもよい。また、上述の実施形態では、仮想粒子２００の初速度が均一である場合について説明したが、これに代えて、制御部１０１が、仮想粒子２００の初速度を仮想粒子２００毎に異ならせるようにしてもよい。
【００８２】
（１２）上述の実施形態において、制御部１０１が、スプリンクラ１５０から、速度、大きさ、質量など、異なる特性を有する仮想粒子２００を放出するようにしてもよい。また、例えば、制御部１０１が、スプリンクラ１５０から、放射角度の広がりや発射頻度などの放出態様を変化させながら仮想粒子２００を放出するようにしてもよい。
【００８３】
また、上述の変形例（６）で示したような、音高に対応した周波数（同じ周波数でもよいし、所定数分の１の周波数でもよい）で、上述の変形例（１０）〜（１２）で示したパラメータ（重力、抵抗力、重力加速度、出現頻度、初速度、質量、等）等を振動させるようにしてもよい。
【００８４】
（１３）上述の実施形態における音データ生成装置１０の制御部１０１によって実行されるプログラムは、磁気テープ、磁気ディスク、フレキシブルディスク、光記録媒体、光磁気記録媒体、ＲＡＭ、ＲＯＭ等のコンピュータが読取可能な記録媒体に記録した状態で提供し得る。また、インターネットのようなネットワーク経由で音データ生成装置１０にダウンロードさせることも可能である。
【００８５】
（１４）上述の実施形態では、制御部１０１は、仮想粒子２００同士が衝突した場合や仮想粒子２００と仮想空間１００の枠組みとが衝突した場合には、跳ね返り係数１で完全弾性衝突をする場合について説明したが、跳ね返り係数は、１以外の値でもよい。例えば、跳ね返り係数が０から１までの非弾性衝突を行うとしても良い。また、自然法則には反するが、衝突後の各オブジェクトの速度を算出する際に、１を超える値を跳ね返り係数として用いても良い。
【００８６】
（１５）また、上述の実施形態では、制御部１０１が、スプリンクラ１５０から放出される各仮想粒子の軌道を、各仮想粒子同士の衝突を含めて演算することにより、特定領域３００内の仮想粒子２００の配置が非規則的に変化し、これに伴って特定領域３００内に表れる波形が非規則的に変化した。特定領域３００内に表れる波形を非規則的に変化させる態様はこれに限らず、例えば、制御部１０１が、スプリンクラ１５０から複数の仮想粒子２００を非規則的に放出するようにしてもよい。この場合は、非規則的に放出されることにより特定領域３００内の仮想粒子２００の配置が非規則的に変化するから、特定領域３００内に表れる波形の形状も時間の経過に伴って非規則的に変化する。
要するに、制御部１０１が、特定領域３００内に表れる波形が非規則的に変化するように制御するようにすればよい。
【００８７】
（１６）上述の実施形態では、制御部１０１が、特定領域３００内に位置する仮想粒子２００の配置態様によって表現される波形を算出し、算出した波形の音データを生成したが、波形の算出態様はこれに限らず、例えば、制御部１０１が、特定領域３００内で移動可能な複数の仮想粒子を特定領域３００内に配置し、その特定領域３００内に配置された仮想粒子の配置態様によって表される波形を算出し、算出した波形の音データを生成するようにしてもよい。この具体例について、図２０を参照しつつ説明する。
【００８８】
図２０は、この態様においてモニタ３０に表示される画面の一例を示す図である。図２０に示す例において、制御部１０１は、特定領域３００内に、特定領域３００内で移動可能な複数の仮想粒子２２０を配置する。この配置の態様としては、制御部１０１が予め定められた態様で配置するようにしてもよく、また、ユーザがマウス２０を用いて各仮想粒子２２０の位置を指定し、制御部１０１が、マウス２０からの操作信号に基づいて指定された位置に仮想粒子２２０を配置するようにしてもよい。また、特定領域３００内に配置される仮想粒子２２０は、例えば仮想粒子２００と衝突したときにのみ移動するようにしてもよく、また、例えば常に一定速度で移動するように制御部１０１が制御するようにしてもよい。
【００８９】
制御部１０１は、仮想粒子２００（及び仮想粒子２２０）の軌道を、仮想粒子同士の衝突（仮想粒子２００と仮想粒子２２０との衝突も含む）も含めて演算し、演算結果に従って、仮想粒子２００及び仮想粒子２２０の位置を変化させる。すなわち、制御部１０１は、仮想粒子２００と仮想粒子２２０との相互作用に基づいて特定領域３００における仮想粒子２２０の位置を変化させる。また、制御部１０１は、特定領域３００内の仮想粒子２２０の配置態様によって表現される波形Ｗ３を算出し、算出された波形の音データを生成する。
【００９０】
この態様においても、仮想粒子２００及び仮想粒子２２０の軌道は、仮想粒子同士の衝突も含めて演算されるから、特定領域３００内に表れる波形Ｗ３は非規則的に変化し、これにより、非規則的に音色が変化する音データを生成することができる。
【００９１】
このように、音データを生成するための波形は上述の実施形態で示したものに限らず、特定領域３００内の仮想粒子２２０の配置態様によって表現される波形であってもよく、また、例えば、上述の変形例（８）に例示したような、予め定められた波形を仮想粒子２００の運動に伴って変形させて用いるようにしてもよい。要は、制御部１０１が、特定領域３００内の仮想粒子２００に応じて波形を算出すればよい。
【図面の簡単な説明】
【００９２】
【図１】音データ生成処理におけるモニタ３０の画面の一例を示す図である。
【図２】音データ生成システム１の全体構成の一例を示す図である。
【図３】音データ生成装置１０の構成の一例を示す図である。
【図４】マウス２０の外観の一例を示す図である。
【図５】モニタ３０の画面の一例を示す図である。
【図６】多点コントローラ４０の機能を説明するための図である。
【図７】音データ生成装置１０の機能的構成の一例を示す図である。
【図８】モニタ３０の画面の一例を示す図である。
【図９】空間特性を設定するための画面の一例を示す図である。
【図１０】スプリンクラ１５０の設置方法を説明するための図である。
【図１１】初期設定処理の流れを示すフローチャートである。
【図１２】音データ生成処理の流れを示すフローチャートである。
【図１３】特定領域の形状の一例を示す図である。
【図１４】モニタ３０の画面の一例を示す図である。
【図１５】モニタ３０の画面の一例を示す図である。
【図１６】モニタ３０の画面の一例を示す図である。
【図１７】モニタ３０の画面の一例を示す図である。
【図１８】モニタ３０の画面の一例を示す図である。
【図１９】モニタ３０の画面の一例を示す図である。
【図２０】モニタ３０の画面の一例を示す図である。
【符号の説明】
【００９３】
１…音データ生成システム、１０…音データ生成装置、１１…空間特性制御部、１２…オブジェクト制御部、１３…粒子運動制御部、１４…特定領域制御部、１５…波形算出部、１６…映像制御部、１７…音データ生成部、２０…マウス、２１…本体、２２…ボタン、２３…通信ケーブル、２４…移動検知手段、３０…モニタ、４０…多点コントローラ、４１…通信ケーブル、４２…タッチパネル、１００…仮想空間、１０１…制御部、１０２…光ディスク再生部、１０３…ＲＯＭ、１０４…ＲＡＭ、１０５…Ｉ／Ｏ部、１０９…バス、１５０，１６０…スプリンクラ、２００，２１０，２２０…仮想粒子、３００…特定領域、４００…制御パネル。
【図１】
0005051838.tif 000002
【図２】
0005051838.tif 000003
【図３】
0005051838.tif 000004
【図４】
0005051838.tif 000005
【図５】
0005051838.tif 000006
【図６】
0005051838.tif 000007
【図７】
0005051838.tif 000008
【図８】
0005051838.tif 000009
【図９】
0005051838.tif 000010
【図１０】
0005051838.tif 000011
【図１１】
0005051838.tif 000012
【図１２】
0005051838.tif 000013
【図１３】
0005051838.tif 000014
【図１４】
0005051838.tif 000015
【図１５】
0005051838.tif 000016
【図１６】
0005051838.tif 000017
【図１７】
0005051838.tif 000018
【図１８】
0005051838.tif 000019
【図１９】
0005051838.tif 000020
【図２０】
0005051838.tif 000021