説明

音データ生成装置およびプログラム

【課題】コンピュータを用いて、一定の法則下における多数の粒子の挙動と対応付けられた自然な音を生成すると共に、生成される音に、粒子ごとの特性の違いに由来する効果を含ませることが可能な音データ生成装置およびプログラムを提供すること。
【解決手段】仮想空間100には、仮想の重力場など仮想粒子200の運動に影響を与える各種の条件が設定されている。スプリンクラ150により多数の仮想粒子200が仮想空間100内に放出され、仮想粒子200との衝突で発音する弦120は仮想空間100中を移動する。仮想粒子200には、様々な特性(質量、形状など)が設定されており、該特性に応じて運動状態が演算されると共に、仮想粒子200が弦120に衝突した際には該特性に応じて弦の振動状態が演算され、仮想粒子200の特性に応じた多様な音が生成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音データ生成装置およびプログラムに関する。
【背景技術】
【0002】
近年、ますますリアリティーの増した音がコンピュータにより生成されるようになっている。例えばコンピュータで「雨降りの音」や「そよ風の音」など自然現象に伴う音を非常に巧妙に再現することができる(特許文献1参照)。
例えば、「雨降りの音」ならば、「ザーザー」、「そよ風の音」ならば「ヒューヒュー」など、自然現象ごとに特徴的な波形の音が生じるため、上記特許文献1などにおいては、自然現象における音の特徴を模した波形データを繰り返し音声へ変換することにより自然現象の音を再現している。
【特許文献1】特開平07−140973号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、上述の雨降りの音は多数の雨粒と地面の衝突から生じるものであり、そよ風の音は空気中に存在する多数の気体分子の流れや振動から生じるものであるとの例からも明らかなように、自然界において発生する音の多くは小さなスケールで見れば多数の粒子が高頻度で相互作用を繰り返すことにより生じている。
【0004】
例えば、一つの雨粒が地面と衝突する際には、「ポトッ」「ぺチ」「パチ」などの音が、各雨粒と地面との衝突状況や、他の雨粒との相互関係に応じて発生する。そして、無数の雨粒が連続して地面に衝突すると、それらの相互に異なる音が重ねあわされた音が発生する。そのように、大きさや位相、減衰状態、発生タイミングなどが異なる多数の音が重ねあわされることにより、結果的には、雨(多数の雨粒)の降る音である「ザー、ザー」という音として人間に知覚される。
そのように、自然界において発生している音は、総体として聴いた場合には個々の相互作用に由来する音の成分が区別されて聴取されることは無いが、実際は毎回異なる音から構成される2度と再現できない音が発生しているのである。そのような音の「ランダム性」や「非再現性」が自然界の音に「自然らしさ」を与えていると考えられる。
【0005】
しかし、上記特許文献1を含め、従来のコンピュータにより生成される音は、予め決められた波形データが繰り返し読み出されるだけの音であったため、その音には上述した「ランダム性」や「非再現性」が欠如しており、所謂「自然らしさ」が感じられないといった問題があった。
【0006】
本発明は上述の課題に鑑みてなされたものであり、一定の法則下における多数の粒子の挙動と対応付けられた自然な音を生成する技術を提供することを目的とする。更には、生成される音に、粒子ごとの特性の違い(上記例での雨粒ごとの粒の大きさの違いなど)に由来する効果を含ませることを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る音データ生成装置は、仮想空間を設定する仮想空間設定手段と、仮想粒子を前記仮想空間に対して連続的に放出する仮想粒子放出手段と、前記仮想粒子放出手段の演算により放出される前記仮想粒子に特性を設定する特性設定手段と、前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算すると共に、該演算においては、前記特性設定手段により前記仮想粒子に対して設定された特性が用いられる軌道演算手段と、前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、前記仮想発音体と前記仮想粒子の相互作用を演算し、該相互作用に基づいて音データを生成する音データ生成手段とを有することを特徴とする。
【0008】
本発明に係る音データ生成装置は、仮想空間を設定する仮想空間設定手段と、仮想粒子を前記仮想空間に対して連続的に放出する仮想粒子放出手段と、前記仮想粒子放出手段の演算により放出される前記仮想粒子に特性を設定する特性設定手段と、前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、前記仮想発音体と前記仮想粒子の相互作用を前記特性設定手段により当該仮想粒子に対して設定された特性に基づいて演算し、音データを生成する音データ生成手段とを有することを特徴とする。
該構成において、前記仮想発音体設定手段は、前記仮想発音体として弦を前記仮想空間に設定し、前記音データ生成手段は、前記弦と前記仮想粒子の相互作用を演算し、前記特性設定手段により当該仮想粒子に対して設定された特性に基づいて弦の振動をシミュレーションし、該シミュレーション結果に基づいて音データを生成しても良い。
【0009】
上記の構成において、前記仮想粒子放出手段が複数設けられている場合に、前記特性設定手段は、前記仮想粒子の特性を前記複数の仮想粒子放出手段ごとに設定しても良い。また、前記特性設定手段は、前記仮想粒子ごとに、その特性を設定しても良い。また、前記特性設定手段は、前記仮想粒子の特性を経時的に変化させるように制御しても良い。また、前記仮想空間の領域ごとに、前記仮想粒子の特性を指定する領域特性設定手段と、前記特性設定手段は、前記領域特性設定手段により設定された領域に前記仮想粒子が侵入する演算が行われると、該仮想粒子の特性を前記領域特性設定手段により該領域に指定された特性に変化させても良い。また、前記仮想粒子が所定の態様で他のオブジェクトと相互作用する演算がなされた場合には、該仮想粒子を複数に分割する分裂手段を有していても良い。また、前記仮想粒子が所定の態様で他のオブジェクトと相互作用する演算がなされた場合には、該仮想粒子の質量、体積、形状の少なくともいずれか1つを変化させても良い。
【0010】
本発明に係るプログラムは、コンピュータを、仮想空間を設定する仮想空間設定手段と、仮想粒子を前記仮想空間に対して連続的に放出する仮想粒子放出手段と、前記仮想粒子放出手段の演算により放出される前記仮想粒子に特性を設定する特性設定手段と、前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算すると共に、該演算においては、前記特性設定手段により前記仮想粒子に対して設定された特性が用いられる軌道演算手段と、前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、前記仮想発音体と前記仮想粒子の相互作用を演算し、該相互作用に基づいて音データを生成する音データ生成手段として機能させることを特徴とする。
【0011】
本発明に係る別のプログラムは、コンピュータを、仮想空間を設定する仮想空間設定手段と、仮想粒子を前記仮想空間に対して連続的に放出する仮想粒子放出手段と、前記仮想粒子放出手段の演算により放出される前記仮想粒子に特性を設定する特性設定手段と、前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、前記仮想発音体と前記仮想粒子の相互作用を前記特性設定手段により当該仮想粒子に対して設定された特性に基づいて演算し、音データを生成する音データ生成手段として機能させることを特徴とする。
【発明の効果】
【0012】
本発明に係る音データ生成装置またはプログラムによれば、一定の法則下における多数の粒子の挙動と対応付けられた自然な音を生成することができる。更には、生成される音に、粒子ごとの特性の違いに由来する効果を含ませることができる。
【発明を実施するための最良の形態】
【0013】
(本発明の概略説明)
本発明に係る音データ生成装置は、コンピュータの演算によって形成される仮想空間の中に多数の仮想粒子を放出させるとともに、振動体(弦など)を仮想空間の中で移動させる。そして、仮想粒子と振動体との相互作用(衝突など)の状況を演算し、その演算結果による振動体の振動状態に基づいて音データを生成するものである。
【0014】
図1は、音データ生成処理におけるモニタ表示の一例である。仮想粒子200は、スプリンクラ150の先端部分より仮想空間100内に放出される。そして、仮想粒子200は、仮想空間100内に設定された重力に従って画面の下方向に向けて「落下」すると共に、仮想空間100の壁面などで跳ね返ったり、仮想粒子200同士で衝突したりする。そのように多数の仮想粒子200が飛び交っている仮想空間100には、振動体(発音体)として弦120が設けられる。そして、個々の仮想粒子200が弦120の領域を通過して弦を「はじく」と弦120は振動し、弦120の振動状態に基づいて音データが生成される。本発明は、このような音データ生成方法において、生成される音データを更に多様に制御するための方法に関するものである。
【0015】
(A;構成)
以下、図面を参照しつつ、本発明を実施する際の最良の形態について説明する。
【0016】
(A−1;全体構成)
図2は、本発明に係る音データ生成システム1の全体構成を示す図である。音データ生成システム1は、プログラム実行装置としての音データ生成装置10と、マウス20と、モニタ30と、多点コントローラ40とを有する。
【0017】
(A−2;各装置の構成)
まず、音データ生成装置10のハードウェア構成について図3を参照して説明する。
音データ生成装置10は、制御部101、光ディスク再生部102、ROM(Read Only Memory)103、RAM(Random Access Memory)104、I/O部105を有する。それら各部はバス109を介して互いに接続されている。
【0018】
図に示す制御部101は、例えばCPU(Central Processing Unit)であり、ROM103から読み出された各種制御プログラムを実行することにより、音および映像の信号処理や各部の制御を行う。
【0019】
光ディスク再生部102は、CD−ROM・DVD−ROM等の光ディスクからデータを読取る。
ROM103は、制御部101が実行する各種制御プログラムを格納している。
RAM104は、制御部101によってワークエリアとして利用される。
【0020】
I/O部105は、音データ生成装置10と接続された機器との信号の送受信を仲介する。具体的には、マウス20および多点コントローラ40から操作内容を示す信号を受取り制御部101に出力すると共に、制御部101から受取った音データおよび映像データをモニタ30に出力する。
以上が音データ生成装置10の構成である。
【0021】
次に、マウス20の構成について図4を用いて説明する。マウス20は、本体21の上面(図中(a)参照)にはボタン22を、下面(図中(b)参照)には移動検知手段24を有する。また、マウス20は、音データ生成装置10に通信ケーブル23にて接続されており、操作内容を示すデータが通信ケーブル23を介して音データ生成装置10に送信される。
【0022】
マウス20は、本体21が移動されると移動検知手段24が移動方向と移動量を示す操作信号を生成し、通信ケーブル23を介して出力する。該信号を受取った制御部101は、操作信号に基づいてモニタ30の画面上のカーソルを移動する処理を行う。
また、ボタン22が押下(以下、クリック)されると、マウス20はクリック操作がなされたことを示すクリック操作信号を生成し、通信ケーブル23を介して出力する。クリック操作信号を受取った制御部101は、クリック時にカーソルが位置していた座標を認識し、当該座標に表示されているアイコンなどに対して選択処理が行われたと認識する。
【0023】
また、ボタン22を押下した状態で本体21が移動され、その後ボタン22の押下を解除する操作(以下、ドラッグ)がなされると、ボタン22が押下されていた間の本体21の移動方向と移動量、およびドラッグ操作がなされたことを示す信号を生成し、通信ケーブル23を介して出力する。該信号を受取った制御部101は、ドラッグ操作により選択された画面上の領域や該領域に含まれるアイコンなどに対して選択処理が行われたと認識する。
【0024】
次に、モニタ30の構成について図5を用いて説明する。モニタ30は、音データ生成装置10から受取った映像データに基づいて映像を表示する。モニタ画面の各点には、同図に示されるように画面左上を座標(0,0)、右下を座標(756,1024)とする座標が設定されている。
また、図5に示すように、モニタ画面の下方には音データ再生部30aが設けられ、音データ生成装置10から受取った音データに基づいて音が放音される。
【0025】
次に、多点コントローラ40の構成について、図6を用いて説明する。図6(a)に示すように、多点コントローラ40は、タッチパネル42を有する。タッチパネル42には、画面左上を座標(0,0)、右下を座標(756,1024)とする座標が設定されている。タッチパネル42は、タッチパネル上の特定の点が押下されたことを感知する感知手段を有し、該感知手段がパネル上の特定の点が押下されたことを感知すると、押下された点の位置を示す座標を含む押下位置情報を、通信ケーブル41を介して音データ生成装置10に出力する。複数の点が同時に押下されている場合には、該押下されている複数の点それぞれについて並行して押下位置情報を生成・出力する。
【0026】
音データ生成装置10の制御部101は、押下位置情報を多点コントローラ40から受取ると、該押下位置情報に含まれる座標を読み出し、モニタ30画面上において該座標に相当する点が選択されたと判断する。図6(b)は、モニタ30の画面表示を示した図である。例えば、手Aおよび手Bが、図6(a)で示されるようにタッチパネル42を押下した場合、手Aで押下された位置を示す座標、または手Bで押下された位置を示す座標が書き込まれた押下位置情報が、それぞれの点が押下されている間継続して制御部101へ出力される。制御部101は、該押下位置情報を受取ると、図6(b)で示されるモニタ画面上の点Aおよび点Bが選択されたと判定する。
【0027】
(A−3;プログラムの構成)
次に、ROM103に格納された制御プログラムについて説明する。なお、制御プログラムには、音データ生成装置10の制御部101が音データを生成するために実行する各種プログラムが含まれ、以下では主要なもののみ取り上げて説明する。
【0028】
制御プログラムは、空間特性制御プログラム、オブジェクト制御プログラム、粒子運動制御プログラム、弦振動制御プログラム、映像制御プログラム、音データ生成プログラムなどからなる。
【0029】
空間特性制御プログラムは、重力などの仮想空間100に設定され仮想粒子200の運動に影響を及ぼす各種特性を制御する。オブジェクト制御プログラムは、仮想空間100内に仮想粒子200を出現させるオブジェクト(スプリンクラ150)の配置や、仮想粒子200の特性などを制御する。粒子運動制御プログラムは、仮想空間100内における仮想粒子200の運動を計算する。弦振動制御プログラムは、弦120の振動状況を演算する。映像制御プログラムは、演算結果として与えられる仮想空間100内の仮想粒子200の運動や弦120の振動などの挙動をテレビジョンモニタ画面上へ表示させる。音データ生成プログラムは、弦120の振動状態に基づいて音データを生成する。
【0030】
(A−4;仮想空間の制御)
以下では、空間特性制御プログラムによる仮想空間100の制御について説明する。
図7は、モニタ30の画面の一例を示した図である。画面には、仮想空間100の枠組みが表示されている。また、仮想空間100の右側には、制御パネル400が表示されている。仮想空間100は、ユーザによる制御パネル400に対する操作に基づき、以下のように制御される。
【0031】
仮想空間100には、以下に例示するような「空間特性」が設定される。制御パネル400の下部の「空間特性」アイコン404が押下されると、制御部101は、所定の選択肢をモニタ30の画面上に表示する。図8は、該表示の一例を示した図である。ユーザは、画面上に表示された重力の方向に関する選択肢を選択し、重力加速度の大きさを書き込む。また、仮想粒子200の移動の際に働く抵抗力は、仮想粒子200の速度に比例するとし、その速度に応じた抵抗力を決定するための比例定数を書き込む。制御部101は、入力された内容を粒子運動制御プログラムにおける粒子運動の挙動の算出に反映させる。
【0032】
なお、これら仮想空間100に関する設定は、予め制御プログラムなどにテンプレートとして書き込んでおいても良い。例えば、あるテンプレートにおいては、重力場は画面下方に設定され、仮想空間100内を移動する仮想粒子200には移動の方向とは逆にその速度に比例した抵抗力が働くが、その比例定数が「水中」に相当するような大きな値に設定されているようにすれば、ユーザは該テンプレートを選択するだけで、仮想空間100がまるで重力のある空間に設置された水が満たされた容器であるかのような設定を簡易に行うことができる。
【0033】
(A−5;仮想粒子)
以下では、粒子運動制御プログラムによる仮想粒子200の特性および運動の制御方法について説明する。
【0034】
(1)仮想粒子200の出現
まず、仮想粒子200の出現について図9を用いて説明する。本実施形態における仮想空間100には、仮想粒子200を仮想空間100に発生させるための装置として、スプリンクラ150が設けられる。
【0035】
スプリンクラ150は、制御パネル400の初速度402、頻度403の値が書き込まれてから「スプリンクラ」アイコン401がクリックされ、仮想空間100内においてドラッグがなされることにより設定される。
【0036】
スプリンクラ150は、放出口150aを有し、個々の仮想粒子200は、初速度402に書き込まれた初速度で放出口150aから放出される。仮想粒子200は、時間平均して単位時間あたり頻度403に書き込まれた数となるようにランダムに放出される。
【0037】
(2)仮想粒子200の特性
仮想粒子200には、各種の特性を設定することが可能である。以下では、主な特性を取り上げて説明する。ユーザは、これらの特性を仮想粒子200が放出されるスプリンクラ150ごとに設定することが可能である。
(a)質量
仮想粒子200は、各粒子に固有の質量を有する。
(b)形状
仮想粒子200は、各粒子に固有の形状を有する。本実施形態においては、球または立方体が設定される。また、大きさも設定可能であり、球の半径や立方体の一辺の長さなどにより大きさが指定される。
(c)付着性
仮想粒子200は、他のオブジェクトや仮想空間100の枠組みなどと衝突すると、該衝突した対象物に付着するように制御することが可能である。
【0038】
(3)仮想粒子200の運動
ROM103に格納された粒子運動制御プログラムは、仮想空間100内での仮想粒子200の運動を以下に説明するルール(a)〜(d)に従って制御する。なお、以下のルールは、地球上の物体の性質および力学的法則を模したものである。
(a)仮想粒子200に働く力Fと仮想粒子200の質量mと加速度αとの間にはF=mαの関係がある。たとえば本実施形態においては、仮想空間100の下向きに重力場が存在するため、仮想粒子200には常にmg(gは重力加速度)の大きさの力が仮想空間100の下向きに働く。
(b)仮想空間100を移動すると、仮想粒子200には、その形状や表面の微細形状(ざらざら感)に応じて移動とは逆の向きに抵抗が働く。該移動抵抗の大きさは、仮想空間100に設定された空間特性によっても制御される。
(c)仮想粒子200同士の衝突においては、運動量保存の法則が成り立つ。
(d)仮想粒子200は、他のオブジェクトや仮想空間100の枠組みなどとの衝突において、所定の反発係数で反発する。ただし、仮想粒子200が付着性を有するように設定されている場合には、その限りではない。
【0039】
(4)仮想粒子200の消滅
仮想空間100の枠組みの底辺に達した仮想粒子200は消滅するよう設定されている。
【0040】
(A−6;弦の振動および音データの生成)
音データ生成装置10は、ROM103に格納された音データ生成プログラムにより、以下に説明するように音データを生成する。
【0041】
弦120の振動は、ROM103に格納された弦振動制御プログラムにより演算される。弦120には、弦の弾性(材質)、弦の断面積、弦の張力など、各種の特性が設定されている。弦120に仮想粒子200が衝突した場合には、弦の振動の物理的なシミュレーションが行われる。具体的には、該仮想粒子200と弦120の衝突状況(仮想粒子200の質量や付着性、衝突の角度、衝突の速度など)に基づいて、各時刻における弦の変位量(振動の態様)が演算される。なお、該物理的シミュレーションには、弦の振動に関する従来のシミュレーション方法を用いれば良く、ここではその詳細な説明は省略する。シミュレーションの結果から、弦から発生する音の振幅、周波数、減衰態様などが導き出される。
【0042】
なお、音データ生成装置10は、MAX/MSPを用いて音データを生成する。なお、MAX/MSPとは、音楽プログラミング言語MAXと音響信号処理用エクステンションMSPとからなる。MAX/MSPによれば、様々なモジュールをつなぎ合わせて、シンセサイザー、エフェクター、シーケンサーなどが作れるほか、パッチングによって音楽の自動生成なども可能であり、ビジュアル的なプログラミング環境によって、直感的なプログラミング・操作ができる。
【0043】
(B;動作)
以下では、音データ生成装置10が音データを生成する際の各部の動作について説明する。
まず、音データ生成装置10の電源が投入されると、制御部101はROM103から各種制御プログラムを読み出し、RAM104にロードする。
【0044】
(B−1;初期設定処理)
まず、制御部101は、初期設定処理を行う。図10は、初期設定処理の流れを示したフローチャートである。
ステップSA100においては、仮想空間100の空間特性の設定がなされる。音データ生成システム1のユーザは、制御パネル400の「空間特性」アイコン404を押下し、モニタ30に図8に示すパラメータ設定のための画面を表示させる。そして制御部101は、入力された内容に応じて仮想空間100の空間特性、すなわち仮想空間100における重力場および抵抗力の設定を行う。
【0045】
本実施形態においては、重力場の設定において、重力の方向として図面下方向が選択されその重力加速度の値が書き込まれると、仮想粒子200に対して画面下方向に設定された値の重力が働き、仮想空間100は鉛直方向に設けられた空間であるかのように設定される。
また、抵抗力の設定において、比例定数の値が書き込まれると、仮想粒子200の移動速度に比例した抵抗力が移動と逆方向に働く。そして、その比例定数に対応してまるで空気や水が仮想空間100に満たされているような環境に設定される。
【0046】
ステップSA110では、仮想粒子200を仮想空間100に出現させる手段(スプリンクラ150)の設定が行われる。ユーザにより制御パネル400にパラメータが書き込まれた後、「スプリンクラ」アイコン401がクリックされ、仮想空間100内の領域が指定されると、スプリンクラ150が設定される。スプリンクラ150の配置はユーザが自由に決められるが、本動作例では、例えば図9に示されるように、2つのスプリンクラ150が図示された位置に配置された場合について説明する。
ステップSA120では、スプリンクラ150から放出される仮想粒子200の特性が設定される。
【0047】
さて、ユーザが設定可能な仮想粒子200の特性は、仮想粒子200の質量、形状、付着性に関する特性である。制御パネル400上の「粒子特性」アイコン406をクリックすると共に設定したいスプリンクラ150をクリックして選択すると、モニタ30の画面には、該選択されたスプリンクラ150から放出される仮想粒子200の特性を制御するためのメニュー画面が表示される。図11は、該メニュー画面の一例を示す。
【0048】
図11に示すように、メニュー画面には、上述した仮想粒子200の各種特性が項目ごとに表示されており、選択肢の選択または数字の入力により特性の設定が可能である。なお、数字の入力部には、数字をインクリメント/デクリメントするためのアイコンが附設されており、該アイコンをクリックすることにより数字が設定可能となっている。
【0049】
「質量」については、対応するスプリンクラ150から放出される仮想粒子200の質量(g)が設定される。「形状」については、仮想粒子200の形状として、{球、立方体}のいずれかが選択可能となっている。また、球が選択された場合には該球の半径を、立方体が選択された場合には立方体の一辺の長さを入力することにより、仮想粒子200の大きさを指定することができる。「付着性」については、{有、無}が選択可能である。
以上に説明した仮想粒子200の特性の設定は、スプリンクラ150ごとに実行可能である。なお、仮想粒子200の特性は、ユーザにより設定がなされない場合には予め設定されているデフォルト値に設定される。
【0050】
(B−2;振動体設定処理)
仮想粒子200を仮想空間100に放出させる処理の説明に入る前に、仮想粒子200との衝突により発音を行う振動体を仮想空間100に設定する振動体設定処理について説明する。なお、振動体設定処理は、後述する音データ生成処理に対して割り込み処理として行われる。
【0051】
本実施形態においては、振動体として、弦120が設けられる。図12は、振動体設定処理の流れを示したフローチャートである。
ステップSC100において、制御部101は、多点コントローラ40から押下位置情報を受信したか否かを判定する。ステップSC100の判定結果が“NO”の場合は、ステップSC100の処理が繰り返される。ステップSC100の判定結果が“YES”である場合は、ステップSC110が行われる。
【0052】
制御部101は、多点コントローラ40から受取った押下位置情報に含まれる座標を読取り、該座標をRAM104に一旦記憶する。そして、押下位置情報に含まれる2つの位置(座標)を両端とするように、弦120(振動体)が設けられる(ステップSC110)。
【0053】
以上のようにして設けられた弦120は、タッチパネル42が押下されている間、継続して設けられている。また、弦120は、仮想空間100中で、移動させることが可能である。
ステップSC120において、制御部101は、押下位置情報に含まれる座標が変更されたか否か判定する。ステップSC120の判定結果が“YES”である場合、弦120の設置位置がスライドする処理がなされる。すなわち、時々刻々と変化する押下位置に対応させて弦120の設置位置を変更する(ステップSC130)。一方、ステップSC120の判定結果が“NO”である場合、ステップSC120の処理が繰り返され、弦120は継続して同じ位置に設けられる。
【0054】
ステップSC140において、制御部101は、弦120の設置を指示する押下位置情報の供給が停止されたか否かを判定する。ユーザがタッチパネル42の押下を停止すると、押下位置情報は制御部101に供給されなくなり、ステップSC140の判定結果は“YES”となり、該押下が停止された位置に対応する弦120が消滅する(ステップSC150)。一方、継続して押下されている場合(ステップSC140;“NO”)は、ステップSC120以降の処理が繰り返される。
【0055】
ステップSC160において、制御部101は、振動体設定処理が終了したか否かを判定する。ステップSC160の判定結果が“YES”である場合は、本振動体設定処理が終了される。ステップSC160の判定結果が“NO”である場合は、再びステップSC100以降の処理が行われる。以上が振動体設定処理の流れである。
【0056】
(B−3;音データ生成処理)
初期設定処理がなされると、制御部101は、音データ生成処理を開始する。図13は、音データ生成処理の流れを示したフローチャートである。なお、図13に示した各ステップは、仮想空間100に放出された個々の仮想粒子200について並行して実行される。
【0057】
ステップSB110において、スプリンクラ150は、仮想粒子200を仮想空間100に出現させる。そして、出現した仮想粒子200のそれぞれについて、ステップSB120以下の処理が行われる。
【0058】
ステップSB120において、微小単位時間後の仮想粒子200の運動が演算される。
ステップSB120において、衝突が起こっていない場合には、仮想粒子200の速度に微小時間を乗算することにより、仮想粒子200は新たな位置に移動される。一方、仮想空間100の壁または他の仮想粒子200に衝突した場合には、完全弾性衝突で跳ね返り、該仮想粒子200には新たな速度が設定される。図14(A)は、そのような状況を表した図である。質量mの仮想粒子200aが質量2mで静止している仮想粒子200bに速度vで衝突した場合、運動量保存の法則から、衝突後の仮想粒子200aおよび200bの速度は、−v/3および2v/3となる。
また、付着性が付与されている仮想粒子200が他のオブジェクトに衝突した場合は、対象物に付着する。このとき、対象物が固定されたオブジェクトであれば仮想粒子200は該付着箇所に固定され、一方、対象物が固定されたオブジェクトではない場合には、仮想粒子200は該対象物と一体になり運動量保存則に従い決定された速度ベクトルで移動する。図14(B)は、後者の状況を表した図である。質量mの仮想粒子200aが、静止している質量2mの仮想粒子200bに速度vで衝突した場合、運動量保存の法則から、一体となった仮想粒子200aおよび200bの速度は、v/3となる。
【0059】
なお、各仮想粒子200の衝突による跳ね返りを演算する際には、各仮想粒子200の形状が参照される。すなわち、仮想粒子200が球ならば入射角と反射角が等しくなるような通常の跳ね返りが起こり、立方体ならば仮想空間100の内側のランダムな方向に跳ね返り方向が決定される。図15は、球および立方体の仮想粒子200の跳ね返り態様を示した図である。同図(A)には、球の仮想粒子200が仮想空間100の壁面に衝突した場合に、入射角と反射角が等しくなるように跳ね返る様子が図示されている。一方、同図(B)に示されるように、立方体の仮想粒子200が壁面に衝突した場合には、(a)、(b)、および(c)に例示されるように、いずれの方向に跳ね返るかはその都度ランダムに選択される。
【0060】
なお、ステップSB120においては、仮想空間100に出現した仮想粒子200の全てについて同時にその軌道の算出が行われるが、ランダムに出現すると共に、種々の特性を有した多数の仮想粒子200が互いに高頻度で衝突を繰り返す。従って、仮に仮想空間100の各種設定が同一であっても、毎回異なる多様な仮想粒子200の挙動が引き起こされる。
【0061】
ステップSB130において、ステップSB120の処理により、仮想空間100の底面に達してして消滅するか否かが判定される。ステップSB130の判定結果が“YES”である場合には該仮想粒子200を画面上から消去し、該仮想粒子200に関しての処理を終了する。ステップSB130の判定結果が“NO”である場合には、ステップSB140以降の処理が行われる。
【0062】
ステップSB140においては、仮想粒子200が弦120と衝突したか否かが判定される。上述した振動体設定処理(割り込み処理)により設定された弦120と仮想粒子200が衝突した場合、ステップSB140の判定結果は“YES”となり、ステップSB150の処理が行われる。一方、ステップSB140の判定結果が“NO”である場合は、ステップSB120以降の処理が再び行われる。
【0063】
ステップSB150において、ステップSB140において仮想粒子200と衝突した弦120の振動状態がシミュレーション演算される。該シミュレーション演算は多数のパラメータからなる複雑な演算でありその詳細な説明は省略するが、その一側面を限定的に取り上げて簡潔に説明すると、以下のようになる。
【0064】
図16(A)〜(C)には、互いに異なる特性または状態の仮想粒子200が弦120に衝突する様子が示されている。同図(A)と(B)とでは、弦120に衝突する仮想粒子200の質量が異なっている。同図に比較して示されるように、同じ速度で衝突するならば、質量が大きい仮想粒子200が衝突した場合((B)の場合)の方がより弦120は大きい振幅で振動する。また、同図(A)と(C)とでは、仮想粒子200の質量が異なる。同図に比較して示されるように、同じ質量の仮想粒子200が衝突するならば、衝突の相対速度が大きい場合((C)の場合)の方がより弦120は大きい振幅で振動する。
【0065】
制御部101は、上記シミュレーション演算の結果から、弦120において生成される音の振幅、周波数、音色などを解析し、該音を表す音データを生成する。なお、弦120が仮想空間100中を移動している際に仮想粒子200と衝突した場合にも、仮想粒子200と弦120それぞれの速度から両者の相対的な衝突速度を算出し、該算出結果に基づいて弦120の振動をシミュレーションする。
ステップSB160において、弦120の振動状態に基づいて音データが生成される。ステップSB160が終わると、弦120と衝突した仮想粒子200について、ステップSB120以降の処理が繰り返される。
【0066】
上述のように、仮想粒子200には、様々な特性が付与されている。例えば、スプリンクラ150ごとに、該スプリンクラ150から放出される仮想粒子200の特性(質量、形状、付着性など)が個別に設定されている。従って、仮想粒子200の軌道は全ての仮想粒子200が同じ特性を有している場合に較べてはるかに多様になり、ひいては該仮想粒子200の運動と連動して生成される音データもランダムで多様なものとなる。
更には、弦120の振動状態は、衝突した仮想粒子200の特性を含めてシミュレーションされるのであるから、弦120の振動状態も多様になる。
また、例えば立方体形状の仮想粒子200が仮想空間100の壁面に衝突した場合に反射角が予期できないことなどにも良く表れているように、仮想粒子200の軌道や弦120との衝突はユーザが細部まで予期できるものではなく、生成される音データが意外なものとなる可能性が高い。
【0067】
上記ステップSB160において生成された音データは音データ再生部30aへ出力され、音データ再生部30aは該音データを再生する。なお、以上の音データ生成処理と並行して、モニタ30には仮想空間100における仮想粒子200の運動や、弦120の移動および振動状態が表示される。従って、ユーザは放音された音と画面表示とを対応させて視聴することが出来る。
以上の処理が終了すると、制御部101は、スプリンクラ150の配置態様、仮想粒子200の特性、弦120の設置・移動態様、および仮想空間100に設定された空間特性など、音データの生成に係る各種パラメータの情報(以下、設定情報)を、試行ごとにRAM104に書き込む。
制御部101は、RAM104に書き込まれた設定情報を読み出すことにより、再度同じ条件設定下で音データの生成処理を行うことができる。なお、そのように同様の条件設定で再び音データを生成したとしても、各仮想粒子200の挙動は毎回異なるため、微視的には異なる音データが生成される。
【0068】
(C;変形例)
以上、本発明の実施形態について説明したが、本発明は以下のように種々の態様で実施することができる。
【0069】
(1)仮想粒子200の特性は、仮想粒子200が放出されるスプリンクラ150ごとに設定可能であると共に、時間的および空間的に変化するように設定しても良い。すなわち、上述した仮想粒子200の特性は、他のオブジェクトや仮想空間100の枠組みなどとの衝突がない期間でも、時間経過に伴って、または仮想空間100内での移動に伴って変化するようにしても良い。その場合の処理の一例を以下に説明する。
まず、時間的な制御方法について説明する。例えば、時間経過に伴って各仮想粒子200の質量および体積が小さくなるように設定しても良い。その場合、各仮想粒子200は、スプリンクラ150から放出されてから経過した時間に応じてその質量および体積が次第に小さくなり、所定時間後に仮想空間100中から消滅する。
次に、空間的な制御方法について説明する。例えば、仮想空間100の特定の領域において、該領域に侵入した仮想粒子200の質量が大きくなるように制御しても良い。その場合、該領域に弦120を設けると、進入してきた仮想粒子200の質量が大きくなっていることから、衝突を受けた弦120は大きく振動し大きな音や異なる音色の音が生じるとの現象が生じる。
以上に例示したような時間的・空間的な制御を組み合わせることにより、仮想粒子200は、ユーザにより指定された期間および領域において、それまで設定されていた特性が変更される。そして、該期間が終了したり該領域から抜け出したりすると、元の設定に戻される。このように、仮想粒子200の特性をダイナミックに設定することが可能となる。
【0070】
(2)上記実施形態においては、振動体として弦120を設ける場合について説明した。しかし、振動体は弦に限定されず、例えば太鼓やシンバルなどを模した振動面を有する振動体(以下、面と呼ぶ)を設けても良い。以下、「面」の構成およびその振動の制御について説明する。
面を仮想空間100に設ける場合には、以下のようにすれば良い。仮想空間100の表示は2次元であるため、面を面の断面図で表示されるようにしても良い。すなわち、例えば仮想空間100内で始点と終点とが指定された場合には、指定された始点と終点とを結ぶ直線が面の断面となるように、そして面と仮想空間100の表示画面が直交するように面が設けられるとすれば良い。
面と仮想粒子200が衝突した場合には、振動面に関する物理的シミュレーションを行い、面特有の音データを生成するようにすれば良い。その場合も、上記実施形態における弦120の振動と同様に、仮想粒子200の特性を含めて面の振動状態をシミュレーションすれば良い。
なお、上記実施形態においては、仮想粒子200は弦120と衝突した場合に、反発せずそのまま弦120を通過する場合について説明したが、面との衝突においては、仮想粒子200は跳ね返るとの条件を設けても良い。
【0071】
(3)上記実施形態においては、弦120の振動を、物理モデルのシミュレーションにより演算する場合について説明した。しかし、弦特有の音を表す波形データを予めROM103に記憶しておき、仮想粒子200と弦120との衝突の度に、該波形データを読み出すようにしても良い。その場合、波形データを複数種類格納しておき、衝突した仮想粒子200の特性に応じて、弦ごとに異なる波形データが選択的に読み出されるようにしたり、振幅やピッチなどを変換して発音されるようにしても良い。
【0072】
(4)上記実施形態においては、仮想空間100における仮想粒子200の運動は、概ね自然法則を模した各種ルール(重力の存在、運動量保存則など)に従うようにしているが、図15に示す立方体形状の仮想粒子200の跳ね返り態様に見られるように、必ずしも自然法則に従っていなくても良い。
【0073】
(5)上記実施形態において、仮想粒子200は、仮想空間100に設定された重力に従って自由落下する場合について説明した。しかし、仮想粒子200の運動に影響を及ぼす構造体(規制要素)を仮想空間100に設けても良い。
図17は、規制要素の一例であるウォール160の配置に関するモニタ30の画面表示の一例である。ユーザにより制御パネル400下部の「ウォール」アイコン405がクリックされた後ドラッグ操作がなされると、制御部101は該ドラッグ操作の始点と終点を対角線とする長方形の領域をウォール160として画面上に表示させる。例えば、カーソル170が図中170(a)から170(b)の位置までドラッグされると、ウォール160(a)が設定される。
また、カーソル170を、一旦設定されたウォール160の頂点に合わせてボタン22を押下し、押下したままマウス20を移動する操作がなされると、ウォール160の重心を中心としてカーソル170の移動に伴ってウォール160が回転される。例えば、ウォール160(c)の頂点(カーソル170(c)の位置)にカーソル170を合わせ、ボタン22を押下したままカーソル170(d)で示される位置まで移動されると、ウォール160はウォール160(d)で示される位置に回転される。
また、カーソル170をウォール160の内側領域にあわせて同様の操作がなされると、ウォール160はカーソル170の移動に伴って移動される。例えば、ウォール160(e)の内部領域(カーソル170(e)の位置)にカーソル170を合わせ、ボタン22を押下したままカーソル170(f)で示される位置まで移動されると、ウォール160はウォール160(f)で示される位置に移動される。
また、音データ生成処理中にウォール160がダブルクリックされると、選択されたウォール160は消滅するようにしても良い。
このように設置された規制要素と仮想粒子200が衝突した場合に、該仮想粒子200の特性に基づいた処理がなされるようにしても良い。例えば、特定のスプリンクラ150から放出された仮想粒子200が衝突しても跳ね返さず透過させる性質をウォール160に与えたりしても良い。
【0074】
(6)上記実施形態においては、本発明に係る音データ生成装置10に特徴的な機能を実現するためのプログラムを、ROM103に予め書き込んでおく場合について説明したが、磁気テープ、磁気ディスク、フレキシブルディスク、光記録媒体、光磁気記録媒体、RAM、ROMなどのコンピュータ読取り可能な記録媒体に上記プログラムを記録して配布するとしても良く、インターネット網などの電気通信回線経由のダウンロードにより上記プログラムを配布するようにしても良い。
【0075】
(7)上記実施形態においては、仮想粒子200に一旦設定された特性が変化することはない場合について説明した。しかし、仮想粒子200が他の物体と相互作用することにより、その特性が変化するようにしても良い。
その場合の処理内容の一例を以下に説明する。上記実施形態において示した「粒子特性」アイコン406の押下に応じて表示される設定画面において、図11で説明した特性に加えて、「分裂の有無」および「磨耗の有無」がそれぞれ選択可能とする。更には、分裂および磨耗それぞれの現象が起こる閾値となる速度(閾値速度;pixel/sec)を設定可能とする。そして、仮想粒子200と対象物との相対的な衝突速度が該閾値速度を越えて衝突した場合には、分裂または磨耗が生じるとすれば良い。
分裂に関しては、閾値速度を越える速度で衝突した場合には、仮想粒子200が例えば2つに分裂し、衝突時以降の処理が質量および体積が半分になった2つの仮想粒子として以後別々の仮想粒子200として処理されるようにしても良い。その場合、分裂した仮想粒子200の形状は共に球であるとしても良い。
磨耗に関しては、閾値速度を越える速度で衝突した場合には、仮想粒子200の質量および体積が、例えば1割減少するようにしても良い。
また、上記実施形態において説明した「付着性」について、仮想粒子200同士が結合すると、体積および質量が加算される場合について説明した。しかし、結合前の仮想粒子200の特性(質量、体積など)に基づいて、加算・乗算・平均化などの各種演算がなされることにより新たな特性が設定された仮想粒子200が生成されるとしても良い。
また、衝突に際して仮想粒子200の形状が変化するようにしても良い。例えば、立方体の仮想粒子200が、所定回数以上他の物体に衝突すると、球の仮想粒子200に変化する(角がとれる)ようにするなどしても良い。
また、他のオブジェクトや仮想空間100の壁面との衝突が生じていない場合にも、仮想空間100内を所定の距離を越えて移動した場合には、体積が小さくなるなどの処理を施しても良い。
【0076】
(8)上記実施形態においては、仮想粒子200が対象物と衝突して跳ね返る場合には、その跳ね返り係数は1である場合について説明した。しかし、跳ね返り係数として他の値(0〜1)を設定可能としても良い。その場合、自然法則には反するが、跳ね返り係数が1を超える値に設定しても良い。
【0077】
(9)上記実施形態においては、仮想粒子200同士が衝突した場合には音が生じない場合について説明したが、他の仮想粒子200や仮想空間100の壁面や弦120との衝突において、仮想粒子200が音を発するようにしても良い。
その場合、予めROM103に各種波形データを格納しておき、各仮想粒子200の特性に応じてそれらの波形データを対応付けておき、衝突の際に読み出して音データの生成に用いても良い。また、仮想粒子200の内部に弦120と同様の弦が含まれるとし、仮想粒子200が上述した他のオブジェクトと衝突すると、衝突状況に応じて該弦の振動がシミュレーションされ仮想粒子200が音を発するようにしても良い。
また、仮想粒子200が他のオブジェクトと衝突し音を発する場合に、衝突状況に応じて以下のような効果を該音に付与しても良い。
(a)衝突時の相対的な衝突速度が大きいほど音の振幅が大きくなるようにしても良い。
(b)仮想粒子200の大きさ(球ならば半径、立方体ならば一辺の長さ)が大きいほど低い周波数の音が生成されるようにしても良い。その場合、大きな仮想粒子200に対して低い周波数の波形データを対応付けておいても良いし、波形データの読出しスピードを遅くすることにより低い周波数の音データを生成しても良い。
(c)衝突した仮想粒子200の密度(質量を体積で除した値)に応じて、生成される音データに各種エフェクトを施すようにしても良い。例えば、密度が高いほどシャープな音となるように、密度が低いほどこもった音となるように音データに各種エフェクトが施されるようにしても良い。
また、上記の例では、仮想粒子200が他のオブジェクトと衝突した場合に仮想粒子200が音を発する場合について説明したが、他のオブジェクトと衝突していない場合でも発音がなされるようにしても良い。例えば、仮想粒子200が仮想空間100内を移動することに応じて音を発するようにしても良い。その場合、例えば、仮想粒子200の大きさ、質量、速度などに応じて音の大きさや周波数特性などが決定されるようにしても良い。また、他のオブジェクトとの距離が変化するなど接触や衝突が起こっていない場合にも、仮想粒子200が音を発するようにしても良い。
【0078】
(10)上記実施形態においては、仮想粒子200の特性をスプリンクラ150ごとに設定する場合について説明した。しかし、仮想粒子200の特性の設定は、スプリンクラ150ごとに行われる態様には限られない。例えば以下のような態様が可能である。
(a)全てのスプリンクラ150について、放出される仮想粒子200の特性をまとめて設定しても良い。
(b)仮想粒子200ごとに逐一特性を設定可能としても良い。その場合、各仮想粒子200を指定すると共に、該指定された仮想粒子200の特性を図11に示したのと同様の方法で設定することができるようにすれば良い。
【0079】
(11)上記実施形態においては、仮想粒子200同士の衝突、仮想空間100の壁面に対する仮想粒子200の衝突、および弦120に対する仮想粒子200の衝突などを、仮想粒子200が関与する相互作用として説明した。しかし、仮想粒子200が他の物体と相互作用する態様は、衝突(接触)に限定されるものではない。
例えば、仮想粒子200が弦120の付近を通過するだけで、弦120に衝突(接触)していなくても弦120が振動するなどとしても良い。また、仮想粒子200に対して「電荷」を持たせるようにして、仮想粒子200同士が近接すると反発力または引力が働くなどとしても良い。そのように、上記実施形態における相互作用(衝突や接触)を、他の種々の相互作用に置き換えても良い。
【0080】
(12)上記実施形態において、仮想粒子200は質量や体積を有する物体である場合について説明した。しかし、仮想粒子200が光の粒子(光子)であっても良い。その場合、仮想粒子200は、以下に説明する光としての性質から1または複数を有するとしても良い。
(a)仮想粒子200の質量は0である。
(b)仮想粒子200の移動速度は大きな値に設定される。
(c)複数の仮想粒子200が同じ位置に移動した場合、衝突は起こらず、各仮想粒子200の運動は他の仮想粒子200に影響を受けない(独立性)。
(d)仮想粒子200は仮想空間100の壁面において反射する。その場合、仮想粒子200は、色の濃い領域(例えば仮想空間100の壁面において黒く表示されている領域がある場合には、該領域)に衝突すると消滅(エネルギーが吸収される)し、色の薄い領域に衝突した場合には反射するなどとしても良い。
(e)仮想空間100に透明なオブジェクトが設けられた場合、該オブジェクトを通過できると共に、オブジェクトの界面で屈折し進行方向が変化する。その場合、各オブジェクトには、屈折率を指定することができるようにしても良い。なお、光子として設定されていない他の仮想粒子200は該オブジェクトを通過できないようにしても良い。
(f)仮想粒子200は仮想空間100内で光るように表示される。その場合、個々の仮想粒子200は粒子として個別に表示されず、仮想粒子200の軌跡を線として表示しても良い。更に、個々の光線が色を示すようにし、複数の光線が交差すると該交差位置において光の色が重ねあわされ変化するようにしても良い。
【0081】
(13)上記実施形態においては、仮想粒子200の特性を指定するパラメータとして、質量、形状および大きさ、付着性などについて説明したが、パラメータ種はこれらに限られない。仮想粒子200の運動性、他のオブジェクトとの相互作用、画面表示態様などに関する種々のパラメータについて設定できるようにしても良い。
【図面の簡単な説明】
【0082】
【図1】音データ生成処理におけるモニタ30の画面表示の一例を示した図である。
【図2】音データ生成システム1の全体構成を示した図である。
【図3】音データ生成装置10の構成を示した図である。
【図4】マウス20の外観を示した図である。
【図5】モニタ30の画面を示した図である。
【図6】多点コントローラ40の機能を説明するための図である。
【図7】モニタ30の画面表示の一例を示した図である。
【図8】空間特性の設定をするための画面表示を示した図である。
【図9】仮想粒子200の出現手段の設置方法を説明するための図である。
【図10】初期設定処理の流れを示したフローチャートである。
【図11】仮想粒子200の特性を設定する画面を示した図である。
【図12】振動体設定処理の流れを示したフローチャートである。
【図13】音データ生成処理の流れを示したフローチャートである。
【図14】仮想粒子200同士の衝突状態を示した図である。
【図15】仮想粒子200の仮想空間100の壁面への衝突を示した図である。
【図16】仮想粒子200の衝突による弦120の振動態様を示した図である。
【図17】規制要素の配置方法を説明するための図である。
【符号の説明】
【0083】
1…音データ生成システム、10…音データ生成装置、20…マウス、21…本体、22…ボタン、23…通信ケーブル、24…移動検知手段、30…モニタ、40…多点コントローラ、41…通信ケーブル、42…タッチパネル、100…仮想空間、101…制御部、102…光ディスク再生部、103…ROM、104…RAM、105…I/O部、109…バス、120…弦、150…スプリンクラ、160…ウォール、170…カーソル、200…仮想粒子、400…制御パネル

【特許請求の範囲】
【請求項1】
仮想空間を設定する仮想空間設定手段と、
仮想粒子を前記仮想空間に対して連続的に放出する仮想粒子放出手段と、
前記仮想粒子放出手段の演算により放出される前記仮想粒子に特性を設定する特性設定手段と、
前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算すると共に、該演算においては、前記特性設定手段により前記仮想粒子に対して設定された特性が用いられる軌道演算手段と、
前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、
前記仮想発音体と前記仮想粒子の相互作用を演算し、該相互作用に基づいて音データを生成する音データ生成手段と
を有することを特徴とする音データ生成装置。
【請求項2】
仮想空間を設定する仮想空間設定手段と、
仮想粒子を前記仮想空間に対して連続的に放出する仮想粒子放出手段と、
前記仮想粒子放出手段の演算により放出される前記仮想粒子に特性を設定する特性設定手段と、
前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、
前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、
前記仮想発音体と前記仮想粒子の相互作用を前記特性設定手段により当該仮想粒子に対して設定された特性に基づいて演算し、音データを生成する音データ生成手段と
を有することを特徴とする音データ生成装置。
【請求項3】
前記仮想発音体設定手段は、前記仮想発音体として弦を前記仮想空間に設定し、
前記音データ生成手段は、前記弦と前記仮想粒子の相互作用を演算し、前記特性設定手段により当該仮想粒子に対して設定された特性に基づいて弦の振動をシミュレーションし、該シミュレーション結果に基づいて音データを生成することを特徴とする請求項2に記載の音データ生成装置。
【請求項4】
前記仮想粒子放出手段が複数設けられている場合に、前記特性設定手段は、前記仮想粒子の特性を前記複数の仮想粒子放出手段ごとに設定する
ことを特徴とする請求項1または2に記載の音データ生成装置。
【請求項5】
前記特性設定手段は、前記仮想粒子ごとに、その特性を設定することを特徴とする請求項1または2に記載の音データ生成装置。
【請求項6】
前記特性設定手段は、前記仮想粒子の特性を経時的に変化させるように制御することを特徴とする請求項1または2に記載の音データ生成装置。
【請求項7】
前記仮想空間の領域ごとに、前記仮想粒子の特性を指定する領域特性設定手段と、
前記特性設定手段は、前記領域特性設定手段により設定された領域に前記仮想粒子が侵入する演算が行われると、該仮想粒子の特性を前記領域特性設定手段により該領域に指定された特性に変化させることを特徴とする請求項1または2に記載の音データ生成装置。
【請求項8】
前記仮想粒子が所定の態様で他のオブジェクトと相互作用する演算がなされた場合には、該仮想粒子を複数に分割する分裂手段を有することを特徴とする請求項1または2に記載の音データ生成装置。
【請求項9】
前記仮想粒子が所定の態様で他のオブジェクトと相互作用する演算がなされた場合には、該仮想粒子の質量、体積、形状の少なくともいずれか1つを変化させることを特徴とすることを特徴とする請求項1または2に記載の音データ生成装置。
【請求項10】
コンピュータを、
仮想空間を設定する仮想空間設定手段と、
仮想粒子を前記仮想空間に対して連続的に放出する仮想粒子放出手段と、
前記仮想粒子放出手段の演算により放出される前記仮想粒子に特性を設定する特性設定手段と、
前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算すると共に、該演算においては、前記特性設定手段により前記仮想粒子に対して設定された特性が用いられる軌道演算手段と、
前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、
前記仮想発音体と前記仮想粒子の相互作用を演算し、該相互作用に基づいて音データを生成する音データ生成手段
として機能させるためのプログラム。
【請求項11】
コンピュータを、
仮想空間を設定する仮想空間設定手段と、
仮想粒子を前記仮想空間に対して連続的に放出する仮想粒子放出手段と、
前記仮想粒子放出手段の演算により放出される前記仮想粒子に特性を設定する特性設定手段と、
前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、
前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、
前記仮想発音体と前記仮想粒子の相互作用を前記特性設定手段により当該仮想粒子に対して設定された特性に基づいて演算し、音データを生成する音データ生成手段
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2009−103932(P2009−103932A)
【公開日】平成21年5月14日(2009.5.14)
【国際特許分類】
【出願番号】特願2007−275754(P2007−275754)
【出願日】平成19年10月23日(2007.10.23)
【出願人】(301021533)独立行政法人産業技術総合研究所 (6,529)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】