(57)【特許請求の範囲】
【請求項１】
記憶部と、表示部と、入力受付部と、第１更新部と、第２更新部と、衝突更新部と、を備える模擬実験装置であって、
前記記憶部は、仮想空間における第１オブジェクトの位置および速度と、第２オブジェクトの位置および速度と、を記憶し、
前記表示部は、当該第１オブジェクトと、当該第２オブジェクトと、の画像を、そのそれぞれについて前記記憶された位置に表示し、
前記入力受付部は、当該第１オブジェクトの移動指示入力を受け付け、
前記第１更新部は、前記入力を受け付けられた移動指示入力にしたがって当該第１オブジェクトについて前記記憶された位置および／または速度を更新し、
前記第２更新部は、所定の規則にしたがって、当該第２オブジェクトについて前記記憶された位置および／または速度を更新し、
前記衝突更新部は、当該第１オブジェクトと、当該第２オブジェクトと、が、衝突するか否かを判定し、当該第１オブジェクトが移動中に衝突する旨判定された場合、以下のパラメータ
（ａ）当該第１オブジェクトの位置および／または速度、
（ｂ）所定の時点から衝突に至るまでの当該第１オブジェクトの位置および／または速度の履歴、
（ｃ）当該第２オブジェクトの位置および／または速度、
により、衝突後の当該第２オブジェクトの位置および／または速度を計算して前記記憶された位置および／または速度を更新し、
前記衝突更新部は、パラメータ（ｂ）の「当該第１オブジェクトの位置および／または速度の履歴」として、当該所定の時点から現在までの速度の自乗の時間積分値を用いて、衝突後の位置および／または速度を計算する
ことを特徴とするもの。
【請求項２】
請求項１に記載の模擬実験装置であって、
前記衝突更新部は、当該パラメータ（ｂ）の「所定の時点」として
（ｐ）当該第１オブジェクトが最後に移動を開始した時点、
（ｑ）当該第１オブジェクトが最後に移動の向きと同じ向きに移動を開始した時点、
（ｒ）現在から所定の時間だけ過去に遡った時点
のいずれか複数のうち、直近の時点を用いて、位置および／または速度を計算する
ことを特徴とするもの。
【請求項３】
請求項１または２に記載の模擬実験装置であって、
前記衝突更新部は、さらに、当該第１オブジェクトが移動中に衝突する旨判定された場合、パラメータ（ａ）、（ｂ）、（ｃ）により衝突後の当該第１オブジェクトの位置および／または速度を計算して前記記憶された位置および／または速度を更新する
ことを特徴とするもの。
【請求項４】
表示工程と、入力受付工程と、第１更新工程と、第２更新工程と、衝突更新工程と、を備え、仮想空間における第１オブジェクトの位置および速度と、第２オブジェクトの位置および速度と、を記憶する記憶部を用いる模擬実験方法であって、
前記表示工程では、当該第１オブジェクトと、当該第２オブジェクトと、の画像を、そのそれぞれについて前記記憶された位置に表示し、
前記入力受付工程では、当該第１オブジェクトの移動指示入力を受け付け、
前記第１更新工程では、前記入力を受け付けられた移動指示入力にしたがって当該第１オブジェクトについて前記記憶された位置および／または速度を更新し、
前記第２更新工程では、所定の規則にしたがって、当該第２オブジェクトについて前記記憶された位置および／または速度を更新し、
前記衝突更新工程では、当該第１オブジェクトと、当該第２オブジェクトと、が、衝突するか否かを判定し、当該第１オブジェクトが移動中に衝突する旨判定された場合、以下のパラメータ
（ａ）当該第１オブジェクトの位置および／または速度、
（ｂ）所定の時点から衝突に至るまでの当該第１オブジェクトの位置および／または速度の履歴、
（ｃ）当該第２オブジェクトの位置および／または速度、
により、衝突後の当該第２オブジェクトの位置および／または速度を計算して前記記憶された位置および／または速度を更新し、
前記衝突更新工程では、パラメータ（ｂ）の「当該第１オブジェクトの位置および／または速度の履歴」として、当該所定の時点から現在までの速度の自乗の時間積分値を用いて、衝突後の位置および／または速度を計算する
ことを特徴とする方法。
【請求項５】
コンピュータを、記憶部、表示部、入力受付部、第１更新部、第２更新部、および衝突更新部として機能させるプログラムであって、当該プログラムは、当該コンピュータを、
前記記憶部は、仮想空間における第１オブジェクトの位置および速度と、第２オブジェクトの位置および速度と、を記憶し、
前記表示部は、当該第１オブジェクトと、当該第２オブジェクトと、の画像を、そのそれぞれについて前記記憶された位置に表示し、
前記入力受付部は、当該第１オブジェクトの移動指示入力を受け付け、
前記第１更新部は、前記入力を受け付けられた移動指示入力にしたがって当該第１オブジェクトについて前記記憶された位置および／または速度を更新し、
前記第２更新部は、所定の規則にしたがって、当該第２オブジェクトについて前記記憶された位置および／または速度を更新し、
前記衝突更新部は、当該第１オブジェクトと、当該第２オブジェクトと、が、衝突するか否かを判定し、当該第１オブジェクトが移動中に衝突する旨判定された場合、以下のパラメータ
（ａ）当該第１オブジェクトの位置および／または速度、
（ｂ）所定の時点から衝突に至るまでの当該第１オブジェクトの位置および／または速度の履歴、
（ｃ）当該第２オブジェクトの位置および／または速度、
により、衝突後の当該第２オブジェクトの位置および／または速度を計算して前記記憶された位置および／または速度を更新し、
前記衝突更新部は、パラメータ（ｂ）の「当該第１オブジェクトの位置および／または速度の履歴」として、当該所定の時点から現在までの速度の自乗の時間積分値を用いて、衝突後の位置および／または速度を計算する
ように機能させることを特徴とするもの。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、仮想空間内における２つのオブジェクトの衝突をシミュレートする模擬実験装置、模擬実験方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【０００２】
【従来の技術】
従来から、物体と物体との衝突という物理現象のモデル化を行い、当該現象をコンピュータによってシミュレート（模擬実験）する技術が提案されている。このような模擬実験技術の最も基礎となるのは、２つの物体の衝突における運動量保存の法則、ならびに、エネルギー保存の法則という物理法則である。このような衝突という物理現象は、コンピュータグラフィックスの分野やコンピュータゲームの分野でも注目を集めている。
【０００３】
しかしながら、衝突という物理現象には、まだ科学的に未解明の部分も多く、上記のような法則のみによって衝突という現象を完全にシミュレートすることはできない。衝突では、各種の摩擦力や弾性体の振舞いなど、種々の物理現象が関係しているからである。
【０００４】
【発明が解決しようとする課題】
したがって、これらの分野では、自然法則に則った衝突、これを見る人間にとって自然に見える衝突をいかに実現するか、が求められている。また、リアルタイムで衝突現象をコンピュータにシミュレートさせる際には、単純なモデル化により演算を高速に行うことも必要である。したがって、用途に応じて必要にして十分な衝突のモデル化を行う技術が求められている。
【０００５】
本発明は、仮想空間内における２つのオブジェクトの衝突をシミュレートする模擬実験装置、模擬実験方法、ならびに、これらをコンピュータによって実現するプログラムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００７】
本発明の第１の観点に係る模擬実験装置は、記憶部と、表示部と、入力受付部と、第１更新部と、第２更新部と、衝突更新部と、を備え、以下のように構成する。
【０００８】
すなわち、記憶部は、仮想空間における第１オブジェクトの位置および速度と、第２オブジェクトの位置および速度と、を記憶する。すなわち、本模擬実験装置は、記憶部に記憶される位置および速度といった情報に基づいて、仮想空間内における第１オブジェクトと第２オブジェクトとの移動と衝突の模擬実験を行う。このほか、これらのオブジェクトの姿勢や質量、有する燃料などの種々の情報を記憶することとし、これらをさらに模擬実験に反映することとしてもよい。
【０００９】
一方、表示部は、当該第１オブジェクトと、当該第２オブジェクトと、の画像を、そのそれぞれについて記憶された位置に表示する。すなわち、表示部が所定のタイミングで表示画面の更新を行うこととすれば、模擬実験において、第１オブジェクトと、第２オブジェクトと、が、時間とともに移動していく様子が表示されることになる。
【００１０】
さらに、入力受付部は、当該第１オブジェクトの移動指示入力を受け付ける。ユーザからの指示入力は、第１オブジェクトに加える力や撃力、各種のエネルギーなどの物理的なパラメータに対応するものとするのが典型的であるが、たとえばコンピュータゲームにおいては、ゲーム世界の設定に応じたパラメータを採用しても良い。
【００１１】
そして、第１更新部は、入力を受け付けられた移動指示入力にしたがって当該第１オブジェクトについて記憶された位置および／または速度を更新する。これによって、ユーザが仮想空間内における第１オブジェクトの移動を制御することとなる。上記のように、第１オブジェクトに対して与える力や撃力を移動指示入力とするときは、第１更新部によって、第１オブジェクトの加速度や運動量変化が計算され、これによって第１オブジェクトの速度や位置が更新される。
【００１２】
一方、第２更新部は、所定の規則にしたがって、当該第２オブジェクトについて記憶された位置および／または速度を更新する。当該所定の法則は、たとえば物理学の一般的な法則によるものであり、典型的には、「第２オブジェクトは、外力が与えられない限り等速直線運動を行う」「第２オブジェクトは、速度の自乗に比例する抵抗力（粘性力）を受ける」「第２オブジェクトの加速度は、外力に比例する」などの法則である。ただし、仮想世界を舞台とするコンピュータゲーム等においては、当該ゲーム世界の設定に応じた規則を採用しても良い。
【００１３】
さらに、衝突更新部は、当該第１オブジェクトと、当該第２オブジェクトと、が、衝突するか否かを判定し、当該第１オブジェクトが移動中に衝突する旨判定された場合、以下のパラメータ
（ａ）当該第１オブジェクトの位置および／または速度、
（ｂ）所定の時点から衝突に至るまでの当該第１オブジェクトの位置および／または速度の履歴、
（ｃ）当該第２オブジェクトの位置および／または速度、
により、衝突後の当該第２オブジェクトの位置および／または速度を計算して記憶された位置および／または速度を更新する。すなわち、上記パラメータ（ａ）、（ｂ）、（ｃ）を用いて、衝突という物理現象をモデル化することとなる。
【００１４】
本発明により、ユーザの操作によりその移動が制御できる第１オブジェクトが移動中に第２オブジェクトと衝突した場合に、当該衝突によって当該第２オブジェクトの位置や速度がどのように変化するか、を、パラメータ（ａ）、（ｂ）、（ｃ）を用いてモデル化することができるようになる。
【００１５】
また、本発明の模擬実験装置において、衝突更新部は、当該パラメータ（ｂ）の「所定の時点」として
（ｐ）当該第１オブジェクトが最後に移動を開始した時点、
（ｑ）当該第１オブジェクトが最後に移動の向きと同じ向きに移動を開始した時点、
（ｒ）現在から所定の時間だけ過去に遡った時点、
（ｓ）上記時点（ｐ）（ｑ）（ｒ）のいずれか複数のうち、直近の時点、
のいずれか１つを用いて、位置および／または速度を計算するように構成することができる。
【００１６】
本発明は、上記模擬実験装置の好適実施形態の１つであり、第１オブジェクトの「履歴」を、過去のどの時点まで追跡するかを定めるものである。本発明により、第１オブジェクトの位置や速度の履歴を維持すべき時間の開始点を定めることができるので、たとえば、当該履歴を記憶する領域を節約するなどの効果を得ることができる。
【００１７】
また、本発明の模擬実験装置において、衝突更新部は、パラメータ（ｂ）の「当該第１オブジェクトの位置および／または速度の履歴」として
（ｘ）当該所定の時点から現在までの経過時間、
（ｙ）当該所定の時点から現在までの移動距離、
（ｚ）当該所定の時点から現在までの速度の自乗の時間積分値、
のいずれか１つを用いて、衝突後の位置および／または速度を計算するように構成することができる。
【００１８】
本発明は、上記模擬実験装置の好適実施形態の１つであり、第１オブジェクトの「履歴」として、どのようなパラメータを用いるか、を定めるものである。本発明により、自然法則に則ったもの、あるいは、人間にとって自然に見えるものに近似する衝突現象をシミュレートすることができる。
【００１９】
また、本発明の模擬実験装置において、前記衝突更新部は、さらに、当該第１オブジェクトが移動中に衝突する旨判定された場合、パラメータ（ａ）、（ｂ）、（ｃ）により衝突後の当該第１オブジェクトの位置および／または速度を計算して前記記憶された位置および／または速度を更新するように構成することができる。したがって、本模擬実験装置においては、衝突により、第２オブジェクトのみならず、第１オブジェクトの位置や速度も影響を受けるようにシミュレートを行う。
【００２０】
本発明により、ユーザが操作する第１オブジェクトについても、衝突によってその位置や速度が変化するような模擬実験を行うことができる。たとえば、コンピュータゲームにおいては、ユーザが操作する第１オブジェクトが、第２オブジェクトと衝突した際に、第１オブジェクト自身の位置や速度が変化し、これに伴なう力や撃力をユーザにフィードバックするような態様に応用することもできる。
【００２１】
本発明のその他の観点に係る模擬実験方法は、表示工程と、入力受付工程と、第１更新工程と、第２更新工程と、衝突更新工程と、とを備え、仮想空間における第１オブジェクトの位置および速度と、第２オブジェクトの位置および速度と、を記憶する記憶部を用い、以下のように構成する。
【００２２】
すなわち、表示工程では、当該第１オブジェクトと、当該第２オブジェクトと、の画像を、そのそれぞれについて記憶された位置に表示する。一方、入力受付工程では、当該第１オブジェクトの移動指示入力を受け付ける。さらに、第１更新工程では、入力を受け付けられた移動指示入力にしたがって当該第１オブジェクトについて記憶された位置および／または速度を更新する。そして、第２更新工程では、所定の規則にしたがって、当該第２オブジェクトについて記憶された位置および／または速度を更新する。
【００２３】
一方、衝突更新工程では、当該第１オブジェクトと、当該第２オブジェクトと、が、衝突するか否かを判定し、当該第１オブジェクトが移動中に衝突する旨判定された場合、以下のパラメータ
（ａ）当該第１オブジェクトの位置および／または速度、
（ｂ）所定の時点から衝突に至るまでの当該第１オブジェクトの位置および／または速度の履歴、
（ｃ）当該第２オブジェクトの位置および／または速度、
により、衝突後の当該第２オブジェクトの位置および／または速度を計算して記憶された位置および／または速度を更新する。
【００２４】
本発明のその他の観点に係るプログラムは、コンピュータを上記模擬実験装置として機能させ、もしくは、コンピュータに上記模擬実験方法を実行させるように構成する。また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【００２５】
【発明の実施の形態】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔｓ）、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００２６】
（発明の実施形態）
図１は、本発明の実施形態の１つに係る模擬実験装置が実現される典型的なゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００２７】
ゲーム装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３と、インターフェース１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）−ＲＯＭドライブ１０８と、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１０９と、を備える。
【００２８】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、ゲーム装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態の模擬実験装置が実現される。
【００２９】
ＣＰＵ  １０１は、ゲーム装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【００３０】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、ゲーム装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータを記録される。
【００３１】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。
【００３２】
インターフェース１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００３３】
図２は、コントローラ１０５の外観を示す説明図である。以下、本図を参照して説明する。
【００３４】
コントローラ１０５の左方には、上下左右を示す操作入力を行うのに利用される↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４が配置されている。
【００３５】
ユーザは、これらの↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４を押圧操作することにより、ユーザが操作するオブジェクトに対して力や撃力に相当するパラメータを指示入力することが可能となる。
【００３６】
右方には、決定操作入力を行うのに利用される○ボタン２０５、取消操作入力を行うのに利用される×ボタン２０６、メニュー表示等の指示入力を行うのに利用される△ボタン２０７、その他の指示入力を行うのに利用される□ボタン２０８が配置されている。
【００３７】
中央には、ＳＥＬＥＣＴボタン２０９、ＳＴＡＲＴボタン２１０のほか、アナログ入力の開始・停止を指示するためのＡＮＡＬＯＧボタン２１１、および、アナログ入力が有効か無効かを表示するためのインジケータ２１２が配置されている。
【００３８】
また中央下部には、上下左右に限らない方向に大きさを伴う指示入力を行うためのジョイスティック２１３、２１４が配置されている。ジョイスティック２１３、２１４には、ひずみゲージが配備され、これらがどの方向にどれだけ曲げられているか、を検知することができる。
【００３９】
これらのジョイスティック２１３、２１４を操作した場合に、その曲げる程度と向きに応じてオブジェクトに対して与える力や撃力に相当するパラメータを指示入力するような形態を採用することもできる。
【００４０】
さらに、上方には、各種の指示入力に用いることができるＬ１ボタン２１５、Ｌ２ボタン２１６、Ｒ１ボタン２１７、Ｒ２ボタン２１８が配置されている。
【００４１】
コントローラ１０５の各ボタン２０１〜２０８、２１５〜２１８には、圧力センサが配備され、アナログ入力が有効となっている場合には、いずれのボタンが押圧操作されているかを検知することができるほか、ユーザの押圧操作の圧力の大きさを０〜２５５の２５６段階で得ることができる。
【００４２】
図１に戻り、インターフェース１０４を介して脱自在に接続された外部メモリ１０６には、ゲームの進行状態を示すデータ、チャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００４３】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００４４】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００４５】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００４６】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００４７】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ＲＯＭ  １０２に記録されているが、ＤＶＤ−ＲＯＭに記録された専用のフォント情報を利用することも可能である。
【００４８】
ＮＩＣ  １０９は、ゲーム装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Ｉｎｔｅｇｒａｇｅｄ  Ｓｅｒｖｉｃｅｓ  Ｄｉｇｉｔａｌ  Ｎｅｔｗｏｒｋ）モデム、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ  Ｍｏｄｅｍ）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００４９】
インターネット内のＳＮＴＰサーバにＮＩＣ  １０９を介して接続し、ここから情報を得ることによって現在の日時情報を得ることができる。また、各種のネットワークゲームのサーバ装置が、ＳＮＴＰサーバと同様の機能を果たすように構成設定してもよい
【００５０】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００５１】
このほか、ゲーム装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００５２】
（衝突の基本的なモデル）
仮想空間内におけるオブジェクトの衝突については、自然界における衝突に対する種々のモデル化を採用することにより、自然法則に則った衝突、これを見る人間にとって自然に見える衝突をシミュレートすることができると考えられる。ここでは、本発明で適用できる最も単純なモデルから順に説明する。
【００５３】
図３は、第１オブジェクトと第２オブジェクトの衝突の瞬間の様子を示す説明図である。第１オブジェクト３０１と、第２オブジェクト３０２とは、接点３０３にて衝突している。第１オブジェクト３０１の表面の接点３０３における法線ベクトル３１１と、第２オブジェクト３０２の表面の接点３０３における法線ベクトル３１２とは、同一直線上にあり、互いに逆向きとなっている。
【００５４】
図３には、第１オブジェクト３０１の速度ベクトル３２１と、第２オブジェクト３０２の速度ベクトル３２２と、が図示されている。本実施形態では、第１オブジェクト３０１の質量に対して第２オブジェクト３０２の質量が極めて小さいとしてモデル化を行う。この場合、ちょうど光が鏡面で反射するように、第１オブジェクト３０１は衝突による影響をほとんど受けず、第２オブジェクト３０２が衝突によって「反射」することとなり、第１オブジェクト３０１の速度ベクトル３２１の如何に関わらず、第２オブジェクト３０２の衝突後の速度ベクトルが定まることとなる。
【００５５】
図３には、第２オブジェクトの衝突後の速度ベクトル３３２も図示されている。第２オブジェクト３０２は、法線ベクトル３１１、法線ベクトル３１２を法線とし、接点３０３を通る平面において「反射」する。すなわち、光の鏡面における反射と同じように、入射角と反射角が等しいこととなる。したがって、衝突後の速度ベクトル３３２が法線ベクトル３１１となす角は、衝突前の速度ベクトル３２２が法線ベクトル３１１となす角に等しく、衝突後の速度ベクトル３３２、法線ベクトル３１１、衝突前の速度ベクトル３２２は、同じ平面内にあることとなる。
【００５６】
すなわち、衝突後の速度ベクトル３３２の法線ベクトル３１１方向の成分は、衝突前の速度ベクトル３２２の法線ベクトル３１１方向の成分に−１を乗じたものである。さらに、衝突後の速度ベクトル３３２の法線ベクトル３１１に直行する方向の成分は、衝突前の速度ベクトル３２２の法線ベクトル３１１に直行する方向の成分と同じである。そして、「衝突前の速度ベクトル３２２と法線ベクトル３１１との外積」と「衝突後の速度ベクトル３３２と法線ベクトル３１１との外積」との外積は、零ベクトルである。
【００５７】
これは、衝突の際の第１オブジェクト３０１と第２オブジェクト３０２との間の摩擦や衝撃によって、エネルギーの損失が生じない、と仮定した場合の衝突のモデルであり、ゲームの分野においては、このモデル化は、従来のブロック崩しゲームにおいて適用されていると考えられる。図４は、いわゆるブロック崩しゲームの動作画面を示す説明図である。
【００５８】
ユーザは、ゲーム装置１００のコントローラ１０５を操作することにより、画面４０１内の反射板４０２を左右のみに移動させることができる。反射板４０２が、第１オブジェクト３０１に相当する。ブロック崩しゲームでは、反射板４０２の移動の指示入力についても単純化がされていることが多い。たとえば、以下のような反射板４０２のモデル化を採用することができる。
（１）→ボタン２０４で右方向に、←ボタン２０３で左方向に一定の速度で移動する。
（２）→ボタン２０４で右方向に、←ボタン２０３で左方向に加速する。これは、反射板４０２に対して力や撃力を与えたことに相当する。
（３）→ボタン２０４で右方向に、←ボタン２０３で左方向に加速するが、一定の速度に達すると、それ以上は加速しなくなる。これは、空気などの粘性摩擦をさらに考慮した場合に相当する。
【００５９】
一方、第２オブジェクト３０２に相当するものは、ボール４０３である。ボール４０３は、反射板に衝突すると、上記のような「反射」のモデルにしたがって、衝突後の移動を決める。また、ボール４０３は、静止しているブロック４０４や壁４０５に衝突すると、そこでも「反射」し、衝突を受けたブロック４０４は消滅する。一方、反射板４０２でボール４０３を「反射」させることができず、ボール４０３が反射板４０２の後方（図の下方）に行き過ぎてしまった場合は、ゲームオーバーとなる。このようにして、ブロック４０４がすべて消えるまでの経過を楽しむのが、ブロック崩しゲームである。
【００６０】
さて、このような衝突のモデル化では、摩擦力と第１オブジェクト３０１の移動を考慮していない。たとえば、反射板４０２が左に移動しているときに、図中真上から真下へボール５０４が移動してきて反射板４０２に衝突すると、ボール４０３はそのまま真上に「反射」していく。ところが、現実の物理現象においては、衝突の瞬間の反射板４０２（テニスや卓球のラケットに相当する）の移動の方向によって、ボール４０３そのものの衝突後の移動の軌跡が異なる。たとえば、上記の例では、ボール４０３は、反射板４０２の移動速度に応じて、衝突後に左方向の速度成分を持つのが、自然法則に則っており、ユーザにとっても自然な振舞いと感じられるはずである。
【００６１】
そこで、このような衝突現象を、以下のようなモデル化により近似して、できるだけ少ない計算量で自然な衝突をシミュレートすることとする。以下、具体的な手法について説明するが、一般的に、上記反射板４０２とボール４０３の３次元空間内での衝突を考えて説明する。３次元空間内の振舞いは容易に２次元空間に射影することができるすなわち、ベクトルの所定の方向の成分を０とすれば、ブロック崩しにおけるような２次元空間の衝突に本モデルを適用することができる。
【００６２】
本実施形態においては、第１オブジェクト３０１の移動の履歴をも考慮して第２オブジェクト３０２の衝突後の速度ベクトルを決定する。図５は、第１オブジェクト（反射板）３０１と、第２オブジェクト（ボール）３０２と、の、衝突の様子を示す説明図である。
【００６３】
第１オブジェクト３０１と第２オブジェクト３０２との接点３０３における第１オブジェクト３０１の法線ベクトルはｎである。第２オブジェクト３０２の衝突前の速度ベクトル３２２はｖであり、衝突後の速度ベクトル３３２はｖ’である。また、第２オブジェクト３０２が、上記モデルのように「反射」したものと考えた場合の衝突後の速度ベクトル３３３をｗとする。
【００６４】
上記のように、ｗは、ｎとｖとが張る平面内と平行であり、ｎ、ｖがなす角と、ｎ、ｗがなす角と、は等しく、｜ｖ｜  ＝  ｜ｗ｜であり、ｖのｎ方向の成分と、ｗのｎ方向の成分は、大きさが等しくて逆向きである。
【００６５】
本実施形態では、速度ベクトルｗに対して第１オブジェクト３０１の移動の履歴や、衝突の際の第１オブジェクト３０１の速度ベクトルを考慮して修正δを加えて、速度ベクトルｖ’を得る。すなわち、ｖ’  ＝  ｗ  ＋  δである。以下では、時刻ｔによる履歴を考慮するため、第１オブジェクト３０１の速度ベクトルをｓ（ｔ）と書くこととする。
【００６６】
ゲーム装置１００などの計算機で、第１オブジェクト３０１の移動の履歴を考慮する場合には、そのＲＡＭ  １０３に履歴を一時的に記憶することとなるが、記憶領域には限界があるほか、あまりに多くの履歴を考慮の対象とすると、ＣＰＵ  １０１における計算時間が多大なものとなってしまう。したがって、衝突の時刻をｔ  ＝  Ｂとしたときに、ｔ  ＝  Ｂから多くともある限界時間Ｌまで過去にさかのぼった時刻を、考慮する履歴の開始時刻とすることが望ましい。すなわち、考慮する履歴の開始時刻をｔ  ＝  Ａとすると、Ｂ−Ａ  ≦  Ｌである。
【００６７】
なお、現実の自然界における衝突は一瞬で生ずるものではない。ごく短いが、衝突にも時間がかかる。したがって、上記のように、履歴を時刻ｔ  ＝  Ａ〜ｔ  ＝  Ｂの間について考慮するのは、自然界のモデル化・近似として、十分に意味がある。
【００６８】
第１オブジェクト３０１の速度ベクトルは、考慮する履歴の開始時刻にはｓ（Ａ）であり、衝突時はｓ（Ｂ）となる。本実施形態では、Ａおよびδを決定すれば、第２オブジェクト３０２の衝突後の速度ベクトル３３１ｖ’が求まることとなる。以下、これらの決定の手法について説明する。
【００６９】
（考慮する履歴の開始時刻）
以下では、まず、時刻Ａの決定手法について述べることとする。最も簡単な手法は、以下の２つである。
（１）Ａ  ＝  Ｂとする。すなわち、衝突時刻ｔ  ＝  Ｂにおける第１オブジェクト３０１の移動の様子のみを考慮する。
（２）Ａ  ＝  Ｂ  −  Ｌとする。すなわち、衝突時刻ｔ  ＝  Ｂから過去に一定時間Ｌだけ遡った時点ｔ  ＝  Ａ  ＝  Ｂ  −  Ｌから、衝突時刻ｔ  ＝  Ｂまでの時刻を考慮する。
【００７０】
手法（１）は、衝突が極めて短時間で行われる、ということを重要視したものであり、衝突のモデル化としては単純なものであるが、適用分野によっては近似計算としてこれで十分な場合もある。手法（２）は、衝突までの一定時間の履歴を考慮する、というもので、ＲＡＭ  １０３に、第１オブジェクト３０１の速度ベクトルｓ（ｔ）の履歴を、時間Ｌだけ保存しておけば良い、という点で、コンピュータによる管理計算が容易になる利点がある。
【００７１】
このほか、以下のような手法も考えられる。
（３）ａ  ＜  ｔ  ≦  Ｂの任意の時刻ｔについて、第１条件ｓ（Ｂ）・ｓ（ｔ）  ＞  ０が成立し、第２条件ｓ（Ｂ）・ｓ（ａ）  ＝  ０が成立する時刻ａをＡとする。なお、演算「・」はベクトルの内積を意味する。すなわち、衝突の時刻の第１オブジェクト３０１の速度ベクトルと同じ速度成分が生じ始める最近の時刻をＡとする。ブロック崩しゲームの例でいえば、反射板４０２が右に移動している際にボール４０３が反射板４０２に衝突した場合は、その衝突前に反射板４０２が右に移動し始めた時刻から、履歴を考慮する、というものである。
【００７２】
（４）ａ  ＜  ｔ  ≦  Ｂの任意の時刻ｔについて、第１条件｜ｓ（ｔ）｜  ＞  ０が成立し、第２条件｜ｓ（ａ）｜  ＝  ０が成立する時刻ａをＡとする。すなわち、衝突に至るまでの移動を開始した時刻ａをＡとする。ブロック崩しゲームの場合には、反射板４０２は１次元の移動しかしないため、本手法によって得られるＡは、手法（３）と一致することとなる。
【００７３】
（５）上記手法（３）や（４）において、速度ベクトルｓ（ｔ）のかわりに、加速度ベクトルｄｓ（ｔ）／ｄｔ  ＝  α（ｔ）を用いる。
（６）上記手法（３）〜（５）のいずれかを採用し、得られたａがａ  ＜  Ｂ  −  Ｌである場合には、Ａ  ＝  Ｂ  −  Ｌとする。これは、衝突の時刻ｔ  ＝  Ｂから過去ｔ  ＝  Ｂ−Ｌまで遡って履歴を考慮し、この間は当該第１条件が常に成立する場合、Ａ  ＝  Ｂ  −  Ｌとすることと等価である。
（７）上記手法（２）〜（５）のいずれか複数を採用し、それぞれの手法で得られたＡのうち、最大のもの（時刻ｔ  ＝  Ｂに直近のもの）を、Ａとして採用する。
【００７４】
本発明では、このような種々の技術により、時刻Ａを決定する。
【００７５】
（修正量の決定方法）
修正量δは、以下に述べる種々の技術によって決定することができる。
（１）衝突時の第１オブジェクト３０１の速度ベクトルｓ（Ｂ）によって定める。典型的には、所定の正の定数ｋを用いて、
δ  ＝  ｋ  Ｓ（Ｂ）
とする。すなわち、修正量δは、衝突時の第１オブジェクト３０１の速度ベクトルに比例することとなる。
【００７６】
（２）上記のように決定された時刻Ａと、所定の正の定数ｋを用いて、
δ  ＝  ｋ∫ＡＢｓ（ｔ）ｄｔ
とする。すなわち、修正量δは、時刻ｔ  ＝  Ａから時刻ｔ  ＝  Ｂまでの間の第１オブジェクト３０１の変位ベクトルに比例することとなる。これは、修正量δの大きさが、時刻ｔ  ＝  Ａから時刻ｔ  ＝  Ｂの移動距離に比例することを意味する。
【００７７】
（３）上記のように決定された時刻Ａと、所定の正の定数ｋを用いて、
δ  ＝  （ｋ∫ＡＢ｜ｓ（ｔ）｜２ｄｔ）  ｓ（Ｂ）
もしくは、
δ  ＝  （ｋ∫ＡＢ｜ｓ（ｔ）｜２ｄｔ）  ∫ＡＢｓ（ｔ）ｄｔ
とする。
【００７８】
（４）上記（１）〜（３）のいずれかの技術を用いて、一旦δを求めた後、当該δの大きさ｜δ｜を調べ、これを所定の正の定数Δと比較したときに、｜δ｜＞Δである場合には、δと同じ方向・向きで、大きさがΔのベクトル
（Δ／｜δ｜）δ
を、改めて修正量δとして用いる。これは、第１オブジェクト３０１が衝突時に移動しているときに第２オブジェクト３０２に与える影響の大きさに、上限があるものとする技法である。
【００７９】
（５）上記（１）〜（３）のいずれかの技術を用いて、一旦δを求めてｖ’  ＝  ｗ
＋  δによりｖ’を求めた後、
（｜ｖ｜／｜ｖ’｜）  ｖ’
を、改めて衝突後の第２オブジェクト３０２の速度ベクトル３２２として採用する。これは、第１オブジェクト３０１が衝突時に第２オブジェクト３０２に与える影響は、その速度ベクトルの向きのみを変更するものであって、大きさは変更しない、というモデル化に対応する。
【００８０】
これらの技術においては、時間積分を用いているが、適当な時間ごとに物理現象を更新することで模擬実験を行っている場合には、連続量の積分ではなく、離散値の積分を用いれば良い。たとえば、上記の（２）の技術を利用した場合であって、時刻ｔ  ＝  Ａからｔ  ＝  Ｂまでのｓ（ｔ）の履歴を、ベクトル列
ｓ０，…ｓＮ
として記録していた場合を考える。すなわち、時間（Ｂ−Ａ）／Ｎごとに、物理現象の規則の適用や種々の更新を行う場合である。
【００８１】
この場合、上記積分は、
δ  ＝  Σｉ＝１Ｎ  ｓｉ  （Ｂ−Ａ）／Ｎ
によって得ることができる。尚、更新の時間間隔を可変とした場合、たとえば、各オブジェクトのその時間間隔における移動量が、所定の値よりも大きい場合に、時間間隔をより短くして更新計算をやり直す場合にも、同様の技術を適用することができる。
【００８２】
（模擬実験装置の実施形態）
図６は、本発明の実施の形態の１つに係る模擬実験装置であって、上記のような手法を用いるものの概要構成を示す模式図である。当該模擬実験装置は、図１に示すゲーム装置１００などの情報処理装置上に実現される。図７は、当該模擬実験装置において実行される模擬実験方法の処理の流れを示すフローチャートである。
【００８３】
本実施形態の模擬実験装置６０１は、記憶部６０２と、表示部６０３と、入力受付部６０４と、第１更新部６０５と、第２更新部６０６と、衝突更新部６０７と、とを備える。
【００８４】
模擬実験は、時間間隔ｐごとに更新されるものとする。ゲーム装置１００上に模擬実験装置６０１が実現される場合、時間間隔ｐとしてモニタの同期タイミングと同じ間隔（たとえば、垂直同期信号の割込と同じタイミング。）を採用すると、オブジェクトの移動の様子が滑らかにモニタに表示されることとなる。
【００８５】
まず、記憶部６０２は、仮想空間における第１オブジェクト３０１の位置および速度と、第２オブジェクト３０２の位置および速度と、を記憶する。第１オブジェクト３０１の速度の履歴は、最新のものから１  ＋  Ｌ／ｐ個分を記憶する必要がある。たとえば、速度ベクトルを記憶する配列を用意し、これをリングバッファ状に利用することにより、これを実現することができる。したがって、ＲＡＭ  １０３が記憶部６０２として機能することとなる。
【００８６】
まず、表示部６０３は、当該第１オブジェクト３０１と、当該第２オブジェクト３０２と、の画像を、そのそれぞれについて記憶された位置に表示する（ステップＳ７０１）。したがって、画像処理部１０７が表示部６０３として機能することとなる。ブロック崩しゲームに本発明を適用する場合には２次元の画像処理が行われ、テニスゲームや卓球ゲームなどの３次元モデルに基づいたゲームに本発明を適用する場合には、上記のような３次元の画像処理を行う。
【００８７】
そして、入力受付部６０４は、当該第１オブジェクト３０１の移動指示入力を受け付ける（ステップＳ７０２）。したがって、コントローラ１０５は、入力受付部６０４として機能する。尚、ＣＰＵ  １０１が所定のアルゴリズムによって計算して取得したものを移動指示入力として採用することも可能である。たとえば、乱数により移動指示入力を決定したり、第１オブジェクト３０１と第２オブジェクト３０２との位置関係や速度などを考慮して、適宜移動指示入力を決定するなど、第１オブジェクト３０１に対してオートプレイを行う場合であっても、本発明を適用することができる。
【００８８】
ついで、第１更新部６０５は、入力を受け付けられた移動指示入力にしたがって当該第１オブジェクト３０１について記憶された位置および／または速度を更新する（ステップＳ７０３）。移動指示入力があった場合は、これを上記のモデル化によって力や撃力として考えて、第１オブジェクト３０１の速度ベクトルを更新し、また、速度ベクトルに時間間隔ｐを乗じることによって変位ベクトルを求めて、これと現在位置の位置ベクトルを加算することにより、新たな位置ベクトルを求め、これら得られた新たな位置ベクトルおよび速度ベクトルを、記憶部６０２に記憶させる。また、速度ベクトルについては、上記のリングバッファに追加する。したがって、ＣＰＵ  １０１は、第１更新部６０５として機能する。
【００８９】
第２更新部６０６は、所定の規則にしたがって、当該第２オブジェクト３０２について記憶された位置および／または速度を更新する（ステップＳ７０４）。現在の第２オブジェクト３０２の速度ベクトルに時間間隔ｐを乗じれば、変位ベクトルが求められ、これと現在位置の位置ベクトルとを加算することにより、新たな位置ベクトルが求められるのは、上記第１更新部６０５の場合と同様である。したがって、ＣＰＵ  １０１は、第２更新部６０６として機能する。
【００９０】
なお、第１更新部６０５および第２更新部６０６における更新の計算処理においては、さらに、これらのオブジェクトが存在する仮想空間における粘性力や摩擦力などを考慮しても良い。
【００９１】
ついで、衝突更新部６０７は、当該第１オブジェクト３０１と、当該第２オブジェクト３０２と、が、衝突するか否かを判定する（ステップＳ７０５）。衝突していない場合（ステップＳ７０５；Ｎｏ），ステップＳ７０１に戻る。一方、衝突している場合（ステップＳ７０５；Ｙｅｓ）、上記の各種の技術を採用して、第２オブジェクト３０２の衝突後の速度ベクトルを求めてこれを記憶部６０２に記憶させて更新し（ステップＳ７０５）、ステップＳ７０１に戻る。したがって、ＣＰＵ  １０１は、衝突更新部６０７として機能する。
【００９２】
衝突しているか否かは、最も簡単には、第１オブジェクト３０１と、第２オブジェクト３０２と、の距離が、所定の値よりも小さいか否かによって判断できるが、このような衝突判定のアルゴリズムについては、種々の公知の技術を採用することができる。
【００９３】
このほか、ステップＳ７０３およびステップＳ７０４において求められた変位ベクトルの大きさが、所定の閾値（典型的には、各オブジェクトのサイズやその定数倍）よりも大きい場合には、いわゆる「すりぬけ」が生ずる可能性があるため、時間間隔ｐをもっと短くして、両オブジェクトの変位ベクトルの計算をやり直す、という手法を採用することもできる。
【００９４】
上記説明においては、理解を容易にするため、２つのオブジェクトについての移動や衝突を考えているが、ブロック崩しゲームの場合には、反射板４０２、ボール４０３、ブロック４０４、壁４０５などの種々のオブジェクトについて、上記フローと同様に移動や衝突の処理を行えば良い。また、ブロック崩しゲームには、ブロック４０４や壁４０５が移動したり回転したりするバリエーションがあるが、この場合は、ブロック４０４や壁４０５を第１オブジェクト３０１として考え、コンピュータによって計算される移動指示入力によって、これらのオブジェクトがオートプレイされる、と考えることができる。
【００９５】
（第１オブジェクトが受ける影響）
従来のブロック崩しゲームでは、ボール４０３が衝突しても反射板４０２の位置や速度には影響が及ばないのが一般的であった。本実施形態は、このような影響を考えて、現実の物理現象にさらに近似したシミュレーションを可能にしようとするものである。
【００９６】
第１オブジェクト３０１が衝突によって受ける影響は、第２オブジェクト３０２が衝突によって受ける影響の反作用であると考えられる。第２オブジェクト３０２の速度ベクトルは、衝突によってｖ’  −  ｖだけ変化したのであるから、第１オブジェクト３０１が受ける影響は、ある正の定数ｈを使って、ｈ（ｖ  −  ｖ’）と考えることができる。ｈは、第１オブジェクト３０１と第２オブジェクト３０２の質量比に相当する定数である。
【００９７】
衝突前の第１オブジェクト３０１の速度ベクトルはｓ（Ｂ）であるから、衝突後の第１オブジェクト３０１の速度ベクトルを
ｓ（Ｂ）  ＋  ｈ（ｖ  −  ｖ’）
に更新すれば良い。
【００９８】
ブロック崩しゲームでは反射板４０２は左右にしか移動できない。したがって、ベクトルｈ（ｖ  −  ｖ’）に上下方向の成分がある場合には、以下のような技術を採用することができる。
（１）上下方向の成分は無視する。
（２）ｈ（ｖ  −  ｖ’）の左右方向の成分が０でない場合は、そちらの方向にベクトルｈ（ｖ  −  ｖ’）を回転させて、これとｓ（Ｂ）との和を衝突後の速度ベクトルとする。（３）ｈ（ｖ  −  ｖ’）の左右方向の成分が０でない場合は、上下方向の成分の大きさ分（もしくはその定数倍）だけ、左右方向の成分を大きくする。
【００９９】
また、ｈ（ｖ  −  ｖ’）の大きさに応じて、ゲーム装置１００の音声処理部１１０を駆動して発生させる衝突音の音量を変化させたり、コントローラ１０５に振動子が組み込まれている場合には、ｈ（ｖ  −  ｖ’）の大きさに応じて振動子を振動させて、衝突の度合をユーザに知らせる態様を採用することもできる。
【０１００】
【発明の効果】
以上説明したように、本発明によれば、仮想空間内における２つのオブジェクトの衝突をシミュレートする模擬実験装置、模擬実験方法、ならびに、これらをコンピュータによって実現するプログラムを提供することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る模擬実験装置が実現される典型的なゲーム装置の概要構成を示す模式図である。
【図２】当該ゲーム装置におけるコントローラの外観を示す説明図である。
【図３】第１オブジェクトと第２オブジェクトの衝突の瞬間の様子を示す説明図である。
【図４】いわゆるブロック崩しゲームの動作画面を示す説明図である。
【図５】第１オブジェクトと、第２オブジェクトと、の、衝突の様子を示す説明図である。
【図６】本発明の実施形態に係る模擬実験装置の概要構成を示す模式図である。
【図７】当該模擬実験装置にて実行される模擬実験方法の手順を示すフローチャートである。
【符号の説明】
１００  ゲーム装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェース
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
２０１  ↑ボタン
２０２  ↓ボタン
２０３  ←ボタン
２０４  →ボタン
２０５  ○ボタン
２０６  ×ボタン
２０７  △ボタン
２０８  □ボタン
２０９  ＳＥＬＥＣＴボタン
２１０  ＳＴＡＲＴボタン
２１１  ＡＮＡＬＯＧボタン
２１２  インジケータ
２１３  ジョイスティック
２１４  ジョイスティック
２１５  Ｌ１ボタン
２１６  Ｌ２ボタン
２１７  Ｒ１ボタン
２１８  Ｒ２ボタン
３０１  第１オブジェクト
３０２  第２オブジェクト
３０３  接点
３１１  第１オブジェクトの接点における法線ベクトル
３１２  第２オブジェクトの接点における法線ベクトル
３２２  第２オブジェクトの衝突直前の速度ベクトル
３３２  第２オブジェクトの衝突直後の速度ベクトル
３３３  第２オブジェクトが「反射」した場合の衝突直後の速度ベクトル
４０１  画面
４０２  反射板
４０３  ボール
４０４  ブロック
４０５  壁
【要約】【課題】仮想空間内における２つのオブジェクトの衝突をシミュレートする模擬実験装置等を提供する。
【解決手段】模擬実験装置６０１の記憶部６０２は、仮想空間における第１オブジェクト、第２オブジェクトの位置および速度を記憶し、表示部６０３は、両オブジェクトの画像を記憶された位置に表示し、入力受付部６０４は、第１オブジェクトの移動指示入力を受け付け、第１更新部６０５は、当該移動指示入力にしたがって第１オブジェクトについて記憶された位置・速度を更新し、第２更新部６０６は、所定の規則にしたがって、第２オブジェクト３０２について記憶された位置・速度を更新し、衝突更新部６０７は、両オブジェクトが衝突している場合、所定の時点から衝突に至るまでの第１オブジェクトの位置や速度の履歴を考慮して、衝突後の当該第２オブジェクトの位置・速度を計算して前記記憶された位置・速度を更新する。
【選択図】  図６【図１】
0003542795.tif 000002
【図２】
0003542795.tif 000003
【図３】
0003542795.tif 000004
【図４】
0003542795.tif 000005
【図５】
0003542795.tif 000006
【図６】
0003542795.tif 000007
【図７】
0003542795.tif 000008