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