説明

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

【課題】コンピュータを用いて、一定の法則に従いながらもランダム性を有する自然な音を生成する。
【解決手段】仮想空間100には、仮想の重力場や障害物であるサウンドウォール120など、仮想粒子200の運動に影響を与える各種の条件が設定されている。放り込みエリア110およびスプリンクラ150により多数の仮想粒子200がランダムに仮想空間100内に放出されると、放出された各粒子は上述した各種条件および仮想粒子200同士の相互作用(衝突)に従って運動する。その結果、設定された条件に従いながらも試行ごとに異なる仮想粒子200の運動が引き起こされる。そして、仮想粒子200とサウンドウォール120の衝突に伴い、サウンドウォール120に設定された音響特性に応じて様々な音高・音色・各種音響効果等が付与された音データが生成される。

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

【特許請求の範囲】
【請求項1】
仮想粒子を仮想空間に対して連続的に放出する演算を行う仮想粒子放出手段と、
前記仮想空間内において、前記仮想粒子の移動に影響を与える規制要素を生成する規制要素生成手段と、
前記仮想粒子放出手段が放出した各仮想粒子の軌道を、前記規制要素による前記仮想粒子の移動への影響および前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、
前記軌道演算手段の演算に従い、前記仮想粒子と前記規制要素の相互作用の状態に基づいて音データを生成する音データ生成手段と
を具備することを特徴とする音データ生成装置。
【請求項2】
前記軌道演算手段は、前記仮想空間において前記仮想粒子に特定方向に一定の外力が生じるように前記仮想粒子の軌道を演算することを特徴とする請求項1に記載の音データ生成装置。
【請求項3】
前記軌道演算手段は、加速度、静電気力、磁力および流体抵抗の少なくとも一つのシミュレート演算によって前記外力を演算する外力演算手段を有していることを特徴とする請求項2記載の音データ生成装置。
【請求項4】
前記規制要素と波形データとを対応付けるテーブルを有し、
前記音データ生成手段は、前記相互作用の状態に基づいて音データを生成する際に、その相互作用を生じさせている規制要素に対応付けられている波形データを前記テーブルを参照して特定し、特定した波形データを用いて音データを生成することを特徴とする請求項1から3いずれかに記載の音データ生成装置。
【請求項5】
前記規制要素の属性を指定する属性指定手段と、
前記規制要素およびその属性に対応付けられる波形データを示すテーブルを有し、
前記音データ生成手段は、前記相互作用の状態に基づいて音データを生成する際に、その相互作用を生じさせている規制要素とその属性に対応した波形データを前記テーブルを参照して特定し、特定した波形データを用いて音データを生成することを特徴とする請求項1から3いずれかに記載の音データ生成装置。
【請求項6】
前記粒子の属性を指定する粒子属性指定手段と、
前記規制要素の属性を指定する属性指定手段とを具備し、
前記音データ生成手段は前記粒子属性指定手段が指定した属性と属性指定手段が指定した属性の組み合わせに対応する波形データを選択し、選択した波形データを用いて音データを生成することを特徴とする請求項1から3いずれかに記載の音データ生成装置。
【請求項7】
前記音データ生成手段は、前記仮想粒子と前記規制要素の相互作用状態に基づく音データ生成に代えて、または前記仮想粒子と前記規制要素の相互作用状態に基づく音データ生成と併せて、前記軌道演算手段の演算に従い前記仮想粒子同士の相互作用に基づいて音データを生成することを特徴とする請求項1から6いずれかに記載の音データ生成装置。
【請求項8】
前記音データ生成手段は、前記音データを生成するに際して、前記音データのピッチを前記規制要素生成手段が生成した規制要素の形状に応じたレベルにすることを特徴とする請求項1ないし7いずれかに記載の音データ生成装置。
【請求項9】
前記音データ生成手段は、前記音データに音響効果を付与する音響効果付与手段を有し、前記規制要素生成手段が生成した規制要素の形状に応じて前記音響効果付与手段が付与する音響効果を制御することを特徴とする請求項1ないし8いずれかに記載の音データ生成装置。
【請求項10】
前記仮想粒子の移動に影響を与えないエリアをサウンドエリアとして前記仮想空間内に形成するサウンドエリア生成手段と、
前記粒子が前記サウンドエリアに進入したことを契機にして音データを生成するサウンドエリア進入音生成手段とを具備することを特徴とする請求項1ないし9いずれかに記載の音データ生成装置。
【請求項11】
前記仮想空間内において、前記仮想粒子の移動に影響を与える第2の規制要素を生成する規制要素生成手段を具備し、
前記起動演算手段は、前記各仮想粒子の軌道を、前記第2の規制要素による前記仮想粒子の移動への影響をも含めて演算し、
前記音データ生成手段は、前記仮想粒子と前記第2の規制要素の相互作用に関しては音データを生成しないことを特徴とする
請求項1ないし10のいずれかに記載の音データ生成装置。
【請求項12】
コンピュータに、
仮想粒子を仮想空間に対して連続的に放出する演算を行う仮想粒子放出段階と、
前記仮想空間内において、前記仮想粒子の移動に影響を与える規制要素を生成する規制要素生成段階と、
前記仮想粒子放出段階において放出された各仮想粒子の軌道を、前記規制要素による前記仮想粒子の移動への影響および前記各仮想粒子同士の衝突を含めて演算する軌道演算段階と、
前記軌道演算段階の演算に従い、前記仮想粒子と前記規制要素の相互作用の状態に基づいて音データを生成する音データ生成段階と
を実行させるプログラム。

【図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


【公開番号】特開2008−176075(P2008−176075A)
【公開日】平成20年7月31日(2008.7.31)
【国際特許分類】
【出願番号】特願2007−9620(P2007−9620)
【出願日】平成19年1月18日(2007.1.18)
【出願人】(301021533)独立行政法人産業技術総合研究所 (6,529)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】