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