(57)【要約】【課題】カメラ等から取り込んだ現実物体を用いて仮想物理空間内の仮想物体を操作するシミュレーションプログラムにおいて、仮想物理空間内の仮想物体に働く力の方向と大きさを、より短時間に求めることが可能であり、取り込んだ現実物体の画像にて仮想物体に、リアルタイムに、よりリアルな物理挙動をさせることができるシミュレーションプログラムを提供する。【解決手段】単数または複数のブロックに分割されて各ブロックのそれぞれに、力の大きさと方向を示すベクトルを割付けたテンプレートＴ１を仮想物体Ｃ１に重畳させて、仮想物理空間Ａ内の現実物体Ｒ１と重畳するブロックの重畳ベクトルと、仮想物理空間に予め設定した物理空間ベクトル（重力等）と、の合成ベクトルを求めることで、複雑な解析処理を必要とせず、仮想物体に働く力（合成ベクトル）を短時間に求める。【選択図】図４
2010277331.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
単数または複数の仮想物体が表示される仮想物理空間を表示手段に表示する仮想空間表示手段、
現実空間の現実物体を撮像した画像から現実物体を切り出す画像認識手段、
切り出した前記現実物体を前記仮想物理空間内に重ねて表示するとともに、前記現実空間内で操作された前記現実物体の動きを、前記仮想物理空間内の前記現実物体の動きで表す重畳表示手段、
前記仮想物理空間内の前記現実物体によって、前記仮想物理空間内の前記仮想物体が受ける仮想的な力を演算し、演算した前記仮想的な力に基づいて、前記仮想物理空間内の前記仮想物体を前記仮想物理空間内にて物理挙動させる物理挙動演算手段、
として機能させるためのシミュレーションプログラムであって、
前記コンピュータを、
前記物理挙動演算手段にて、
前記仮想物体のそれぞれに、単数または複数のブロックに分割されて各ブロックのそれぞれに、それぞれ異なる力の方向と大きさを示すベクトルを割付けたテンプレートを、仮想的に重畳させる仮想テンプレート重畳手段、
前記仮想物理空間内の前記現実物体と、前記テンプレートの各ブロックとにおいて、重なったブロックである重畳ブロックを検出する重畳ブロック検出手段、
前記重畳ブロックにおける各ブロックに割付けられている各ベクトルと、前記仮想物理空間内に予め設定されているベクトルである物理空間ベクトルと、を合成した合成ベクトルに基づいて、前記仮想物理空間内の前記仮想物体を、前記仮想物理空間内の前記現実物体によって、前記仮想物理空間内にて物理挙動させるベクトル演算手段、
として機能させるためのシミュレーションプログラム。
【請求項２】
請求項１に記載のシミュレーションプログラムであって、
前記ブロックに割付けるベクトルの方向と大きさの少なくとも一方、または前記物理空間ベクトルの方向と大きさの少なくとも一方を変更することで、前記仮想物理空間内における前記仮想物体の物理挙動を変更可能である、
シミュレーションプログラム。
【請求項３】
請求項２に記載のシミュレーションプログラムであって、
前記仮想物体に重畳されたテンプレートは複数のブロックにて構成されており、
更に、
各ブロックに割付けられたベクトルの方向を前記テンプレートの内側に向かう方向に設定し、且つ前記テンプレートの四隅の近傍のブロックのベクトルの大きさを周囲のブロックのベクトルの大きさよりも小さく設定することで、前記仮想物体の形状を丸形状として表現することが可能である、
あるいは、前記テンプレートの外周部のブロックのベクトルの方向を前記テンプレートの内側から外側に向かう方向に設定し、且つ外周部のブロックに対して他のブロックのベクトルの方向を前記テンプレートの内側に向かう方向に設定することで、前記仮想物体を、表面張力を有する物体として表現することが可能である、
あるいは、表面張力を有する物体として表現した仮想物体を複数集めることで、粘性を有する流体を表現することが可能である、
あるいは、各ブロックに割付けられたベクトルの方向を前記テンプレートの内側に向かう方向に設定し、且つ前記テンプレートにおける中央近傍のブロックのベクトルの大きさを、周囲のブロックのベクトルの大きさよりも大きく設定することで、前記中央近傍のブロックに前記仮想物理空間内の前記現実物体が重畳した場合における前記仮想物体の物理挙動の速度を急激に大きくする表現が可能である、
あるいは、各ブロックに割付けられたベクトルの方向を前記テンプレート内に設定された集中位置の側に向かう方向に設定し、且つ前記集中位置を前記テンプレートに対応する仮想物体の重心位置からずれた位置に設定することで、重心位置の偏った仮想物体の物理挙動を表現することが可能である、
あるいは、各ブロックには、回転方向と力の大きさを示すベクトルが割付けられており、回転方向についてのベクトルの大きさを前記テンプレートの中央から離れるほど大きいベクトルに設定することで、前記仮想物理空間の表示面内で回転する仮想物体の物理挙動を表現することが可能である、
あるいは、各ブロックには、回転方向と力の大きさを示すベクトルが割付けられており、割付けられた回転方向は前記テンプレート内に設定された集中位置を通る所定の境界線を挟んで対称となる位置のブロックでは互いに反対方向となるように設定されており、前記仮想物理空間内における前記テンプレートに対応する仮想物体の状態に応じて、前記集中位置を前記テンプレートに対応する仮想物体の重心位置からずれた位置に設定することで、前記仮想物理空間内における前記仮想物体の状態に応じた回転体を表現することが可能である、
シミュレーションプログラム。
【請求項４】
請求項１〜３のいずれか一項に記載のシミュレーションプログラムであって、
前記コンピュータを、
複数の前記仮想物体を、前記仮想物理空間内において長さが変わらない仮想ジョイントにて連結することで、複数の仮想物体が連結された仮想連結剛体を構成させる仮想連結剛体構成手段、
前記仮想連結剛体を構成している任意の前記仮想物体のテンプレートにおいて、前記仮想物理空間内の前記現実物体と重畳したブロックを有する重畳テンプレート対して、前記重畳ブロック検出手段及び前記ベクトル演算手段を用いて前記重畳テンプレートに対応する仮想物体を物理挙動させるとともに、前記重畳テンプレートに対応する仮想物体に前記仮想ジョイントにて連結されている連結仮想物体に対して、前記重畳テンプレートに対応する仮想物体の物理挙動と前記仮想ジョイントに基づいた連動ベクトルと前記物理空間ベクトルとを合成して、前記連結仮想物体を物理挙動させる連結仮想物体連動手段、
として機能させるためのシミュレーションプログラム。
【請求項５】
請求項１〜３のいずれか一項に記載のシミュレーションプログラムであって、
更に、前記コンピュータを、
複数の前記仮想物体を、前記仮想物理空間内にて受けた力によって伸縮する仮想ダンパにて連結することで、複数の仮想物体が連結された仮想弾性体を構成させる仮想弾性体構成手段、
前記仮想弾性体を構成している任意の前記仮想物体のテンプレートにおいて、前記仮想物理空間内の前記現実物体と重畳したブロックを有する重畳テンプレート対して、前記重畳ブロック検出手段及び前記ベクトル演算手段を用いて前記重畳テンプレートに対応する仮想物体を物理挙動させるとともに、前記重畳テンプレートに対応する仮想物体に前記仮想ダンパにて連結されている連結仮想物体に対して、前記重畳テンプレートに対応する仮想物体の物理挙動と前記仮想ダンパの伸縮に基づいた連動ベクトルと前記物理空間ベクトルとを合成して、前記連結仮想物体を物理挙動させる仮想弾性体連動手段、
として機能させるためのシミュレーションプログラム。
【請求項６】
請求項５に記載のシミュレーションプログラムであって、
前記仮想弾性体における各仮想物体の間隙に前記仮想物理空間内の前記現実物体を突き刺す、あるいは前記間隙を広げながら前記仮想物理空間内の前記現実物体を突き刺した後に一部の仮想物体を前記仮想物理空間内の前記現実物体の一部にて引っ掛ける表現が可能であり、
突き刺した前記仮想物理空間内の前記現実物体、あるいは引っ掛けた前記仮想物理空間内の前記現実物体、の動作に前記仮想弾性体の動作を追従させる表現が可能である、
シミュレーションプログラム。
【請求項７】
請求項１〜６のいずれか一項に記載のシミュレーションプログラムであって、
第１の撮像手段が接続された第１のコンピュータと、第２の撮像手段が接続された第２のコンピュータと、第３のコンピュータを用いて、
第１のコンピュータを、
第１の撮像手段を用いて撮像した画像から切り出した第１現実物体を第３のコンピュータに送信する第１送信手段、
として機能させ、
第２のコンピュータを、
第２の撮像手段を用いて撮像した画像から切り出した第２現実物体を第３のコンピュータに送信する第２送信手段、
として機能させ、
第３のコンピュータを、
第３のコンピュータに設定されている仮想物理空間に、受信した第１現実物体と第２現実物体とを重畳させた共有仮想物理空間を作成する共有仮想物理空間作成手段、
作成した共有仮想物理空間内の前記第１現実物体と前記第２現実物体によって、前記共有仮想物理空間内の仮想物体を、前記物理挙動演算手段を用いて前記共有仮想物理空間内にて物理挙動させる共有物理挙動演算手段、
前記共有仮想物理空間を前記第１のコンピュータと前記第２のコンピュータに送信する第３送信手段、
として機能させ、
第１のコンピュータを、
受信した共有仮想物理空間を第１表示手段に表示する第１共有仮想物理空間表示手段、
として機能させ、
第２のコンピュータを、
受信した共有仮想物理空間を第２表示手段に表示する第２共有仮想物理空間表示手段、
として機能させる、
シミュレーションプログラム。
【請求項８】
請求項１〜７のいずれか一項に記載のシミュレーションプログラムであって、
コンピュータを、前記重畳ブロック検出手段として機能させる際、まずテンプレートにおけるブロックの外周部を走査させ、走査させた外周部に前記仮想物理空間内の前記現実物体と重畳するブロックが存在しない場合は、前記外周部の内側のブロックの重畳の検出を打ち切って処理を軽減させる、
シミュレーションプログラム。
【請求項９】
請求項１〜８のいずれか一項に記載のシミュレーションプログラムであって、
コンピュータを、前記重畳ブロック検出手段として機能させる際、前記仮想物理空間内の前記現実物体と重畳するブロックの面積が所定面積以上であった場合は、重畳ブロックの面積に対するテンプレート面積の比率に応じた力の大きさの上方向の位置ベクトルを前記合成ベクトルに加える、
シミュレーションプログラム。
【請求項１０】
請求項１〜９のいずれか一項に記載のシミュレーションプログラムであって、
前記仮想物体に対して、ブロックの分割数、割付けられたベクトル、の少なくとも一方が異なる複数のテンプレートが用意されており、
コンピュータを、前記重畳ブロック検出手段として機能させる際、前記仮想物理空間内の前記仮想物体の状態に応じて、テンプレートを切り替える、
シミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションプログラムに関する。
【背景技術】
【０００２】
従来より、ＣＣＤカメラ等の撮像装置による画像をコンピュータに取り込んで、任意の背景画像等と合成する、種々のプログラムが開示されている。なお、本明細書では、「画像」は「映像（動画）」を含むものとする。
例えば、特許文献１に記載された従来技術には、カメラから入力された画像を利用するビデオゲームにおいて、所定の位置に直立したプレイヤの姿態の画像をカメラからコンピュータに入力し、プレイヤの両手の位置によって、ゲーム画面内のキャラクタの動作を制御することができる、ビデオゲーム装置が開示されている。
また、特許文献２に記載された従来技術には、カメラから取り込んだ利用者の画像に背景画像や前景画像を合成してシールシートに印刷する写真シール作成装置において、合成した画像の一部を拡大してモニタに表示する写真シール作成装置が開示されている。
また、特許文献３に記載された従来技術には、利用者がカタログやチラシを見て気に入った家具のコードを携帯端末から商品画像管理サーバに送信し、更に利用者が、向きとサイズを算出可能なスケールを部屋に置き、携帯端末でスケールとともに部屋を撮影して画像処理サーバに送信する。すると商品画像管理サーバは受信したコードに対応するＩＤを画像処理サーバに送信し、画像処理サーバは、携帯端末から受信した部屋の画像に、受信したＩＤに対応する家具の物体モデルを、部屋の画像のスケールのサイズと向きを合わせて合成する配置シミュレーションシステムが開示されている。
【０００３】
また従来より、コンピュータを用いて表示させた仮想空間内に、利用者によるコンピュータからの操作によって動作を制御可能なキャラクタを登場させ、当該キャラクタを用いて仮想空間内の仮想物体を操作して、仮想空間内の仮想物体に物理挙動させる種々のゲーム等（例えば仮想空間内のキャラクタでボールを打つと、ボールが放物線を描いて飛んで行くゲーム等）が開発されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−０６８３１４号公報
【特許文献２】特開２００７−２６７２６８号公報
【特許文献３】特開２００８−１９１７５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
カメラ等から現実の物体の画像（例えば利用者の手の画像）を取り込んで仮想空間内の仮想物体を操作し、更に、操作された仮想物体に物理挙動をさせようとすると、以下に示すように種々の問題が発生する。
取り込んだ画像の運動方向や速度を解析し、更に、取り込んだ画像が仮想物体に物理的な力を与える位置や、与えた力の方向と大きさの解析すると、解析の処理負荷は非常に重く、リアルタイム性に欠ける可能性がある。
更に、上記の力が与えられた仮想物体に、種々の物理特性（粘性体や回転体、無重力空間等）を加えて物理挙動をさせようとしたり、複数の仮想物体を同時に物理挙動させようとしたりすると、更に処理負荷が重くなり、リアルタイム性が大きく欠ける可能性がある。
また、特許文献１に記載された従来技術は、利用者の腕の動きにより直感的な操作は可能であるが、カメラ等から入力した画像による腕の単純な位置関係からおおまかな操作を行うだけであるので、キャラクタの反応としての現実感は低く、複雑な操作を行うことができない。
また、特許文献２に記載された従来技術では、切り出した画像と背景画像との合成にとどまっており、切り出した画像で仮想物体を操作して物理挙動させることはできない。
また、特許文献３に記載された従来技術では、部屋内の画像（背景画像に相当）に合わせて家具の画像（切り出し画像に相当）を変形及び拡大または縮小して合成するのみであり、切り出した画像で仮想物体を操作して物理挙動させることはできない。また従来の、画像認識を利用したプログラムでは、カメラ等から入力した画像（利用者＋背景等）から利用者の画像を切り出して仮想物体を操作するゲーム等も存在し、操作を直感的に行うことはできるが、操作された仮想物体の物理挙動のリアリティが乏しい。
従来では、画像認識を利用してカメラ等にて撮像した画像から利用者の腕等を切り出して直感的に仮想物体を操作可能であり、且つ物理シミュレーションによって仮想物体にリアリティある物理挙動をさせるプログラムは開示されていない。
本発明は、このような点に鑑みて創案されたものであり、カメラ等から取り込んだ現実物体を用いて仮想物理空間内の仮想物体を操作するシミュレーションプログラムにおいて、仮想物理空間内の仮想物体に働く力の方向と大きさを、より短時間に求めることが可能であり、取り込んだ現実物体の画像にて仮想物体を直感的に、リアルタイムに、よりリアルな物理挙動をさせることができるシミュレーションプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための手段として、本発明の第１発明は、請求項１に記載されたとおりのシミュレーションプログラムである。
第１発明によると、単数または複数のブロックに分割されて各ブロックのそれぞれに、力の大きさと方向を示すベクトルを割付けたテンプレートを仮想物体に重畳させて、仮想物理空間内の現実物体と重畳するブロックのベクトルと、仮想物理空間に予め設定した物理空間ベクトル（重力等）と、の合成ベクトルを求めることで、複雑な解析処理を必要とせず、仮想物体に働く力（合成ベクトル）を、非常に短時間に求めることができる。
これにより、現実物体にて直感的に仮想物体を操作することが可能であり、リアルタイム性を損なうことなく仮想物体に、よりリアルな物理挙動をさせることができる。
【０００７】
また、本発明の第２発明は、請求項２に記載されたとおりのシミュレーションプログラムである。
第２発明によると、テンプレートの各ブロックに割付けるベクトルや、物理空間ベクトルを種々の設定に変更することで、仮想物体の物理特性を容易に変更することが可能であり、仮想物体に、よりリアルな物理挙動をさせることができる。
【０００８】
また、本発明の第３発明は、請求項３に記載されたとおりのシミュレーションプログラムである。
第３発明による具体的なテンプレートを用いることで、仮想物理空間内の仮想物体に、よりリアルな物理挙動をさせることができる。
【０００９】
また、本発明の第４発明は、請求項４に記載されたとおりのシミュレーションプログラムである。
第４発明によると、例えば人形のように、仮想物体と仮想物体とを仮想ジョイントにて連結した仮想連結剛体を、よりリアルに物理挙動させることができる。
【００１０】
また、本発明の第５発明は、請求項５に記載されたとおりのシミュレーションプログラムである。
第５発明によると、仮想物体と仮想物体とを仮想ダンパにて連結した仮想弾性体にて、仮想物体を弾性体として表現し、よりリアルな物理挙動をさせることができる。
【００１１】
また、本発明の第６発明は、請求項６に記載されたとおりのシミュレーションプログラムである。
第６発明によると、弾性体として物理挙動させる仮想弾性体に、串等を突き刺したり、鉤状物体を突き刺して引っ掛けたり、突き刺した状態で、串または鉤状物体とともに運動（物理挙動）させたりすることができる。
【００１２】
また、本発明の第７発明は、請求項７に記載されたとおりのシミュレーションプログラムである。
第７発明によると、１つの仮想物理空間内の仮想物体を、異なる２台のコンピュータからの、それぞれの現実物体にて、物理挙動させることができる。
【００１３】
また、本発明の第８発明は、請求項８に記載されたとおりのシミュレーションプログラムである。
第８発明によると、コンピュータの処理負荷を軽減し、よりリアルタイムに仮想物体に物理挙動させることができる。
【００１４】
また、本発明の第９発明は、請求項９に記載されたとおりのシミュレーションプログラムである。
第９発明によると、仮想物体の下から上に向かって仮想物理空間内の現実物体が比較的高速に移動した場合、仮想物体が現実物体を突き抜ける特殊な現象を回避し、仮想物体に、よりリアルな物理挙動をさせることができる。
【００１５】
また、本発明の第１０発明は、請求項１０に記載されたとおりのシミュレーションプログラムである。
第１０発明によると、仮想物体の状態に応じてテンプレートの切り替えを行うことで、複雑な物理挙動や、よりリアルな物理挙動等を表現することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明のシミュレーションプログラムを適用したシステム全体の構成の一実施の形態を説明する図である。
【図２】本発明のシミュレーションプログラムを利用するコンピュータ１０の構成の例を説明する図である。
【図３】仮想物体Ｃ１にテンプレートＴ１を重畳させた状態の例を説明する図である。
【図４】仮想物理空間Ａ内の現実物体Ｒ１との重畳ブロック等から合成ベクトルを求め、仮想物体Ｃ１を物理挙動させる例を説明する図である。
【図５】仮想物理空間Ａ内の現実物体Ｒ１との重畳ブロック等から合成ベクトルを求め、仮想物体Ｃ１を物理挙動させる例を説明する図である。
【図６】仮想物理空間Ａ内の現実物体Ｒ１との重畳ブロック等から合成ベクトルを求め、仮想物体Ｃ１を物理挙動させる例を説明する図である。
【図７】仮想物体に与える種々の物理特性に応じたテンプレートの具体的な例を説明する図である。
【図８】回転する物体として仮想物体を表現するためのテンプレートＴ１（４）の例を説明する図である。
【図９】表面張力を有する物体として表現するためのテンプレートＴ１（１）を重畳した仮想物体を複数集めて流体を表現する例を説明する図である。
【図１０】回転体として仮想物体を表現する場合において、仮想物理空間内における仮想物体の状態に応じたテンプレートとすることで、よりリアルな物理挙動をさせる例を説明する図である。
【図１１】仮想連結剛体Ｃｇを物理挙動させる例を説明する図である。
【図１２】弾性力を有する物体として仮想物体を表現するための構成の例を説明する図である。
【図１３】弾性体として仮想物体を表現した仮想弾性体Ｃｄに仮想物理空間内の現実物体Ｒ２を突き刺す例を説明する図である。
【図１４】仮想物理空間内の現実物体Ｒ２を操作して、仮想弾性体Ｃｄに突き刺さっている現実物体Ｒ２を用いて、仮想弾性体Ｃｄに物理挙動させる例を説明する図である。
【図１５】第１のコンピュータ２０Ａと、第２のコンピュータ２０Ｂと、第３のコンピュータ２０Ｓとを用いて、共有仮想物理空間内の仮想物体を、第１のコンピュータからの第１現実物体と、第２のコンピュータからの第２現実物体と、で操作する例を説明する図である。
【発明を実施するための形態】
【００１７】
以下に本発明を実施するための形態を図面を用いて説明する。図１は、本発明のシミュレーションプログラムを適用したシステム全体の構成の一実施の形態を説明する図である。本発明のシミュレーションプログラムは、コンピュータを用いて、仮想物理空間内に配置した仮想物体を、カメラ等から取り込んだ現実の物体（利用者の腕等）の画像で操作して（押す、持ち上げる等して）、操作した仮想物理空間内の仮想物体に、リアルタイムに物理挙動させることができるシミュレーションプログラムである。
【００１８】
●［シミュレーションプログラムを適用したシステム全体の外観（図１）］
本発明のシミュレーションプログラムを適用するシステムは、コンピュータ１０と撮像手段２０（ＣＣＤカメラ等）とで構成されている。
利用者Ｕは、撮像手段２０を用いて任意の画像（現実空間の現実物体の画像）を撮像し、撮像した画像をコンピュータ１０に取り込ませる。
例えば、撮像手段２０は、所定のスクリーンＳを背景として所定時間間隔で利用者Ｕの腕の画像を撮像し、撮像した画像を次々とコンピュータ１０に向けて出力する。コンピュータ１０は、入力された画像から、背景であるスクリーンＳと腕の画像とを認識し、背景以外の画像のみ（この場合、腕の画像）を切り出す。
そしてコンピュータ１０は、表示手段（モニタ等）に、例えば仮想物理空間Ａと当該仮想物理空間Ａ内に仮想物体Ｃ１、Ｃ２を表示し、更に撮像手段２０の画像から切り出した現実物体Ｒ１を重畳して表示し、現実物体Ｒ１にて仮想物理空間Ａ内の仮想物体Ｃ１、Ｃ２に、現実物体Ｒ１からの操作による物理挙動をさせる。
この場合、実際の腕が現実空間の現実物体Ｒに相当し、切り出した腕の画像が仮想物理空間Ａ内の現実物体Ｒ１に相当する。
【００１９】
●［シミュレーションプログラムの構成と機能の概略（図２）］
次に図２を用いて、コンピュータ１０の構成の例について説明する。
コンピュータ１０は、例えば、ＣＰＵ（中央処理装置）１１、ＨＤＤ（ハードディスクドライブ）等の記憶手段１２、ＲＡＭ等の記憶手段１３、キーボードやマウス等の入力手段１４、通信手段１５、表示手段１６、音声出力手段１７等にて構成されている。
記憶手段１２には、本発明のシミュレーションプログラム１２Ａ、仮想物理空間に関する仮想空間データ１２Ｂ、仮想物体に関する仮想物体データ１２Ｃ、テンプレートに関するテンプレートデータ１２Ｄ等が記憶されている。なお、テンプレートについての詳細は後述する。
次に、シミュレーションプログラム１２Ａに基づいてＣＰＵ１１にて実行させる各機能について説明する。
【００２０】
ＣＰＵ１１は、画像認識手段１１Ａにて、撮像装置２０から入力される画像から、背景（この場合、スクリーンＳの画像）を除去して現実物体Ｒ１を切り出して重畳表示手段１１Ｃに出力する。
またＣＰＵ１１は、仮想空間表示手段１１Ｂにて、仮想空間データ１２Ｂ、仮想物体データ１２Ｃを読み出し、単数または複数の仮想物体Ｃ１、Ｃ２が表示される仮想物理空間Ａの画像を作成して重畳表示手段１１Ｃに出力する。
またＣＰＵ１１は、重畳表示手段１１Ｃにて、入力された仮想物体Ｃ１、Ｃ２が表示される仮想物理空間Ａの画像と、現実物体Ｒ１の画像とを重畳し、重畳した画像を表示手段１６と物理挙動演算手段１１Ｄに出力する。これにより、利用者Ｕは、現実空間で現実物体Ｒを動作させることで、仮想物理空間Ａ内に表示された現実物体Ｒ１を動作させることができる。そして、利用者Ｕは、仮想物理空間Ａ内の現実物体Ｒ１にて仮想物体Ｃ１、Ｃ２に物理挙動させることができる。
【００２１】
ＣＰＵ１１は、物理挙動演算手段１１Ｄにて、仮想物理空間Ａ内において、現実物体Ｒ１によって、仮想物理空間Ａ内の仮想物体Ｃ１、Ｃ２が受ける仮想的な力を演算し、この仮想的な力にて仮想物体Ｃ１、Ｃ２を、仮想物理空間Ａ内で物理挙動させ、当該物理挙動を重畳表示手段１１Ｃにフィードバックする。
物理挙動演算手段１１Ｄは、更に、仮想テンプレート重畳手段１１Ｅと、重畳ブロック検出手段１１Ｆと、ベクトル演算手段１１Ｇとで構成されている。
【００２２】
●［剛体の仮想物体を表現する仮想物体Ｃ１とテンプレートＴ１（図３）］
ＣＰＵ１１は、仮想テンプレート重畳手段１１Ｅにて、図３に示すように、仮想物体Ｃ１のそれぞれに、単数または複数のブロックＢにて構成されたテンプレートＴ１を仮想的に重畳させる。また、ブロックＢのそれぞれには、それぞれの力の方向と力の大きさを示すベクトルが割付けられている。なお、表示手段１６に表示される仮想物理空間Ａ内の仮想物体Ｃ１にはテンプレートＴ１が仮想的に重畳されているが、テンプレートＴ１は表示しないようにしている。
なお、図３に示す仮想物体Ｃ１は剛体の例を示しており、弾性体等の例については後述する。
【００２３】
またＣＰＵ１１は、重畳ブロック検出手段１１Ｆにて、図４に示すように、随時、仮想物理空間Ａ内の現実物体Ｒ１と、仮想物体Ｃ１のテンプレートＴ１の各ブロックとの重畳を判定し、重畳しているブロック（重畳ブロック）を検出する。
またＣＰＵ１１は、ベクトル演算手段１１Ｇにて、重畳ブロックのそれぞれに割付けられている各ベクトルと、仮想物理空間Ａに予め設定されている物理空間ベクトルと、を合成した合成ベクトルを求め、求めた合成ベクトルの方向、及び大きさに基づいて、仮想物体Ｃ１を仮想物理空間Ａ内で運動（物理挙動）させる。
【００２４】
●［仮想物体（剛体）を現実物体からの操作で物理挙動させる手順（図４）］
次に図４を用いて、仮想物体Ｃ１を物理挙動させる手順について説明する。なお、図４において、仮想物理空間Ａには重力に対応した下向きの所定の大きさのベクトルが物理空間ベクトルとして設定されているものとする。
【００２５】
時刻Ｔ［ｎ］において、仮想物理空間Ａ内の仮想物体Ｃ１の左下の部分と、現実物体Ｒ１とが重畳しているものとする。この場合、仮想物体Ｃ１に重畳されているテンプレートＴ１における左下のハッチングを施した個所のブロックが重畳ブロックとして検出される（この例では１２個のブロックが重畳ブロックとして検出されている）。そして、これらの重畳ブロックのそれぞれに割付けられているベクトルを合成した重畳ベクトルと、物理空間ベクトル（この場合、重力ベクトル）とを合成した合成ベクトルを求める。そして、求めた合成ベクトルの大きさ分、合成ベクトルの方向（この場合、右上の方向）に仮想物体Ｃ１を移動させる。
そして、時刻Ｔ［ｎ＋１］では、仮想物体Ｃ１が右上に移動したので、重畳ブロックが少なくなっている（この場合、５個のブロックが重畳ブロックとして検出されている）。そして、上記と同様にして合成ベクトルを求め、求めた合成ベクトルの大きさ分、合成ベクトルの方向（この場合、右方向）に仮想物体Ｃ１を移動させる。
そして、時刻Ｔ［ｎ＋２］では、仮想物体Ｃ１が更に右に移動したので、現実物体Ｒ１と仮想物体Ｃ１とが重畳する部分が無くなっている。この場合、重畳ベクトルはゼロ（なし）であるので、合成ベクトルは重力ベクトルに等しくなり、この合成ベクトルの大きさ分、合成ベクトルの方向（この場合、下方向）に仮想物体Ｃ１を移動させる。
【００２６】
以上のように、現実物体Ｒ１によって、時間とともに変化する仮想物体Ｃ１の動作（物理挙動）を表現することができる。
この場合、現実物体Ｒ１の動き（移動方向や移動速度）の解析を必要とせず、現時点における現実物体Ｒ１と仮想物体Ｃ１との重畳個所を検出するだけでよいので、処理負荷が非常に軽い。
また、合成ベクトルの算出も、単純なベクトルの加算であるので、仮想物体Ｃ１を物理挙動させる方向、及び大きさ（移動量）を、非常に軽い処理負荷で求めることができる。
【００２７】
●［合成ベクトルの求め方の例（図５、図６）］
次に図５を用いて、仮想物理空間Ａ内の仮想物体Ｃ１を現実物体Ｒ１にて下から支持して空中に静止させている状態の例を説明し、図６を用いて、床上の仮想物体Ｃ１を、左から右に向けて現実物体Ｒ１にて押し出した状態の例を説明する。
なお、図５及び図６では、説明のために、仮想物体Ｃ１を、仮想物体Ｃ１に重畳されているテンプレートＴ１で表している。また図５及び図６ではテンプレートＴ１は４個のブロックに分割されており、各ブロックに割付けられているベクトルは、テンプレートＴ１の中心に向かう方向に割付けられており、その大きさは等しいものとしている。また、仮想物理空間Ａに設定されている物理空間ベクトルは、重力ベクトルとする。
【００２８】
図５に示す例では、仮想物理空間Ａ内の現実物体Ｒ１を水平に静止しており、現実物体Ｒ１の上に仮想物体Ｃ１が乗っている状態である。この場合、テンプレートＴ１の左下と右下のブロックＢ２１、Ｂ２２が現実物体Ｒ１と重畳する重畳ブロックとして検出される。そして、重畳ブロックに割付けられているベクトルである重畳ベクトルと、重力ベクトルとを合成して合成ベクトルを求めると、この場合はゼロとなる。従って、図５の例では合成ベクトルがゼロであるので、仮想物体Ｃ１に働く力がゼロであり、仮想物体Ｃ１は、その位置で静止した状態を保つ。
【００２９】
図６に示す例では、床上に静止している仮想物体Ｃ１を、現実物体Ｒ１にて左から右に押している状態を示しており、この場合、テンプレートＴ１の左上と左下のブロックＢ１１、Ｂ２１が現実物体Ｒ１と重畳する重畳ブロックとして検出される。そして、重畳ブロックに割付けられているベクトルである重畳ベクトルと、重力ベクトルと、重力に対する床の反発力による反発ベクトルと、床の摩擦力による摩擦ベクトルとを合成して合成ベクトルを求めると、この場合は右向きのベクトルを得ることができる。従って、図６の例では合成ベクトルが右向きであるので、仮想物体Ｃ１を右に移動させる力が働く。なお、現実物体Ｒ１と仮想物体Ｃ１とを離間させて重畳ブロックをゼロとすると、仮想物体Ｃ１は静止する。
【００３０】
●［種々の物理挙動をさせるためのテンプレートの例（図７〜図１０）］
以上に説明したシミュレーションプログラムでは、テンプレートＴ１の各ブロックに割付けるベクトルの方向と大きさの少なくとも一方、または仮想物理空間Ａに設定した物理空間ベクトルの方向と大きさの少なくとも一方、を変更することで、仮想物体の物理特性を容易に変更することができる（すなわち、容易に物理挙動を変更することができる）。なお、これらのテンプレートに関する情報は、図２に示すテンプレートデータ１２Ｄに記憶されており、ＣＰＵ１１は、適宜、読み出して利用することができる。
次に図７〜図１０を用いて、種々のテンプレートの例と、そのテンプレートを用いた場合の仮想物体の物理挙動の特徴（物理特性）について説明する。
【００３１】
図７に示すテンプレートＴ１（０）では、各ブロックに割付けられたベクトルの方向をテンプレートＴ１（０）の内側に向かう方向に設定し、且つテンプレートＴ１（０）の四隅の近傍（四隅及びその近傍）のブロックのベクトルの大きさを、周囲のブロックのベクトルの大きさよりも小さく設定している。このテンプレートＴ１（０）を用いた場合、仮想物理空間Ａ内の現実物体Ｒ１が四隅に重畳している場合、四隅以外の個所と重畳している場合と比較して、仮想物体に働く力が小さくなる。すなわち、仮想物体の形状を丸形状（丸形状の剛体）として表現するのに適している。
もちろん、丸形状を表現する場合、四隅のブロックの形状を仮想物体の形状に沿う形状としてもよいが、図７に示すように各ブロックの形状を矩形としたほうが、現実物体画像との重畳の判定において、容易に且つ短時間で判定することができる。
つまり、矩形のテンプレートを複数並べ、仮想物体よりも少し大きめのテンプレートを重畳し、仮想物体の欠けた位置に対応しているブロックのベクトルの大きさを小さくすることで、仮想物体の形状に合わせたテンプレートとして構成することができる。
【００３２】
図７に示すテンプレートＴ１（１）では、テンプレートの外周部のブロックに割付けられたベクトルの方向をテンプレートＴ１（１）の内側から外側に向かう方向に設定し、外周部のブロックに対して他のブロックのベクトルの方向をテンプレートＴ１（１）の内側に向かう方向に設定している。このテンプレートＴ１（１）を用いた場合、表面張力を有する物体として仮想物体を表現することができる。
また、図９に示すように、テンプレートＴ１（１）を用いて表面張力を有する物体として表現した仮想物体Ｃ１を複数集めることで、粘性を有する流体を表現することも可能である。この場合、重畳ブロックは、現実物体と仮想物体（仮想物体のテンプレート）との重畳するブロックの他にも、仮想物体（仮想物体のテンプレート）と仮想物体（仮想物体のテンプレート）とが重畳するブロックも含む。
【００３３】
図７に示すテンプレートＴ１（２）では、各ブロックに割付けられたベクトルの方向をテンプレートＴ１（２）の内側に向かう方向に設定し、且つテンプレートＴ１（２）の中央の近傍のブロックのベクトルの大きさを、周囲のブロックのベクトルの大きさよりも大きく設定する。このテンプレートＴ１（２）を用いた場合、現実物体Ｒ１がテンプレートＴ１（２）の中央近傍に重畳した場合の物理挙動の速度を急激に大きくすることができる。例えば、現実物体Ｒ１の動作を速くして、テンプレートＴ１（２）の中央近傍に重畳させた場合、仮想物体を跳ねるように（ジャンプさせるように）運動させることができる。
【００３４】
図７に示すテンプレートＴ１（３）では、各ブロックに割付けられたベクトルの方向をテンプレートＴ１（３）の内側に設定した集中位置Ｐの側に向かう方向に設定し、且つ集中位置Ｐを、当該テンプレートが重畳している仮想物体の重心位置からずれた位置に設定する。このテンプレートＴ１（３）を用いた場合、重心位置が偏った物体として仮想物体を表現する（物理挙動させる）ことができる。
【００３５】
図７に示すテンプレートＴ２（０）では、各ブロックに割付けられたベクトルの方向を、左右方向のみに設定している。このテンプレートＴ２（０）が重畳された仮想物体を、左右方向のみ物理挙動する物体として表現することができる。
【００３６】
図８に示すテンプレートＴ１（４）では、各ブロックには回転方向と力の大きさを示すベクトルが割付けられており、回転方向についてのベクトルの大きさは、テンプレートの中央から離れるほど大きくなるように設定されている。なお、ハッチング部分には大きさゼロのベクトルが割付けられているものとする。このテンプレートＴ１（４）を用いた場合、回転体として仮想物体を表現する（物理挙動させる）ことができる。
【００３７】
図１０に示すテンプレートＴ１（５）は、仮想物理空間Ａが無重力空間の場合における回転体を表現する仮想物体に重畳するテンプレートの例を示している。各ブロックには回転方向と力の大きさを示すベクトルが割付けられており、割付けられた回転方向はテンプレートＴ１（５）内に設定された集中位置Ｐを通る所定の境界線Ｌｈ、または境界線Ｌｖを挟んで対称となる位置のブロックでは互いに反対方向となるように設定されており、集中位置Ｐは、テンプレートＴ１（５）に対応する仮想物体の重心位置（この場合、中央）に設定されている。この場合、例えばテンプレートＴ１（５）のブロックＢｅ４のみが現実物体Ｒ１とが重畳した場合、テンプレートＴ１（５）が重畳されている仮想物体は時計回りに回転する。なお、ハッチング部分には大きさゼロのベクトルが割付けられているものとする。
しかし、下向きの重力がある空間の仮想物理空間内の床上に仮想物体が直立している状態であるテンプレートＴ１（６）では、無重力空間の仮想物理空間の仮想物体の状態であるテンプレートＴ１（５）と同じブロックＢｅ４のみが現実物体Ｒ１と重畳した場合であっても、テンプレートＴ１（６）が重畳されている仮想物体は時計回りに回転するとは限らない。この場合、反時計回りに回転する。
このような場合は、テンプレートＴ１（７）に示すように、集中位置Ｐの位置を仮想物体の重心位置から下方向にずらし、ブロックに割付けるベクトルの回転方向も変更する。このように、仮想物理空間内における仮想物体の状態に応じて、テンプレートの集中位置Ｐを、テンプレートが重畳されている仮想物体の重心位置からずれた位置に設定することで、仮想物体に、よりリアルな物理挙動をさせることができる。
【００３８】
●［剛体を連結した仮想物体の表現方法と、物理挙動させる手順（図１１）］
次に図１１を用いて、剛体である複数の仮想物体を仮想ジョイントにて連結した仮想連結剛体を物理挙動させる方法について説明する。
仮想連結剛体を構成する個々の仮想物体については、上記に説明したように、それぞれテンプレートが重畳されており、この場合、図７に示すテンプレートＴ１（０）が重畳されているものとする。
図１１に示すように、仮想物理空間Ａ内において長さが変わらない仮想ジョイントＪ１にて任意の仮想物体Ｃｎを連結して仮想連結剛体Ｃｇを構成し、コンピュータを、仮想連結剛体構成手段として機能させる。
例えば、図１１に示す仮想連結剛体Ｃｇは人形を表しており、首関節及び頭部に仮想物体Ｃ１０を配置し、肩関節部に仮想物体Ｃ２１、Ｃ２２を配置し、肘関節部に仮想物体Ｃ３１、Ｃ３２を配置し、手首関節部及び手首に仮想物体Ｃ４１、Ｃ４２を配置し、股関節部に仮想物体Ｃ５１、Ｃ５２を配置し、膝関節部に仮想物体Ｃ６１、Ｃ６２を配置し、足首関節部及び足首に仮想物体Ｃ７１、Ｃ７２を配置し、各関節部に仮想物体を設定している。そして人形の形状となるように、接続するべき関節を、仮想ジョイントＪ１にて連結している。
【００３９】
そして図１１の仮想物理空間Ａ内の表示のように、現実物体Ｒ１にて仮想物体Ｃ４２の上下をつまみ上げると、仮想ジョイントＪ１を介して仮想物体Ｃ４２に連結されている仮想物体Ｃ３２、及び、仮想ジョイントＪ１を介して仮想物体Ｃ３２に連結されている仮想物体Ｃ２２等も連動して動く。
この場合、コンピュータを用いて、仮想連結剛体Ｃｇを構成している任意の仮想物体のテンプレートにおいて、現実物体Ｒ１と重畳したブロックを有するテンプレート（この場合、仮想物体Ｃ４２のテンプレート）に対して、上述した重畳ブロック検出手段１１Ｆ、及びベクトル演算手段１１Ｇを用いて、重畳したブロックを有する仮想物体を物理挙動させる（この場合、仮想物体Ｃ４２が持ち上げられる）。
【００４０】
そして更に、コンピュータを用いて、重畳テンプレートに対応する仮想物体に連結されている連結仮想物体に対して（この場合、重畳した仮想物体Ｃ４２に連結されている仮想物体Ｃ３２に対して）、重畳テンプレートに対応する仮想物体（この場合、仮想物体Ｃ４２）の物理挙動と仮想ジョイントＪ１に基づいた連動ベクトルと、物理空間ベクトル（重力ベクトル等）を合成する。この場合、仮想物体Ｃ４２が持ち上げられる動きのベクトルが仮想ジョイントＪ１を介して仮想物体Ｃ３２に伝達された連動ベクトルと、仮想物理空間Ａの物理空間ベクトル（重力ベクトル等）とから求めた合成ベクトルにて、仮想物体Ｃ３２を物理挙動させる。この場合、仮想物体Ｃ３２と現実物体Ｒ１とは重畳していないが、連動ベクトルに基づいて仮想物体Ｃ３２が物理挙動する。
そして、連動ベクトルと物理空間ベクトルの合成ベクトルに基づいて、連結仮想物体（この場合、仮想物体Ｃ３２）を物理挙動させる連結仮想物体連動手段としてコンピュータを機能させる。
以下、仮想物体Ｃ３２に連結されている連結物体（この場合、仮想物体Ｃ２２）に対しても同様の処理を行い、連結されている全ての仮想物体に対して連動ベクトルを求め、求めた連動ベクトルに基づいた合成ベクトルにて仮想物体のそれぞれを物理挙動させる。
【００４１】
●［弾性体の仮想物体の表現方法と、物理挙動させる手順（図１２〜図１４）］
次に図１２〜図１４を用いて、仮想物体を弾性体として表現する方法と、弾性体として表現した仮想物体を物理挙動させる方法について説明する。
【００４２】
まず図１２を用いて仮想弾性体Ｃｄを、弾性体として表現する方法について説明する。仮想弾性体Ｃｄを、上述した剛体である複数の仮想物体（図１２ではテンプレートＴ（ａ１）〜テンプレートＴ（ｃ３）にて表現している）が、仮想ダンパＳＤにて連結されている構成とする。
仮想ダンパＳＤは、仮想物理空間Ａ内において、受けた力によって伸縮し、振動が発生した場合は振動が徐々に減衰する特性を有している。
この仮想ダンパＳＤを用いて、複数の仮想物体（テンプレートＴ（ａ１）〜テンプレートＴ（ｃ３））を連結する。仮想ジョイントＪ１は仮想物理空間Ａ内で伸縮しないが、仮想ダンパＳＤは仮想物理空間Ａ内で伸縮可能である点が異なる。
そしてコンピュータを、複数の仮想物体が仮想ダンパにて連結されて仮想弾性体Ｃｄを構成する仮想弾性体構成手段として機能させる。
【００４３】
図１２〜図１４に示す仮想弾性体Ｃｄを構成する個々の仮想物体については、上記に説明したように、それぞれテンプレートが重畳されており、この場合、図７に示すテンプレートＴ１（０）が重畳されているものとする。
そして図１３の左図に対して中図に示すように、仮想物理空間において、例えば矢印形状の現実物体Ｒ２を仮想弾性体Ｃｄに押付けていく場合、コンピュータを用いて、現実物体Ｒ２と重畳したテンプレートＴ（ｂ４）と現実物体Ｒ２との重畳ブロックに基づいて求めた重畳ベクトルと、テンプレートＴ（ｂ４）に接続されている仮想ダンパの伸縮による連動ベクトルと、仮想物理空間の物理空間ベクトルと、に基づいた合成ベクトルを求め、テンプレートＴ（ｂ４）に対応する仮想物体を移動させる（この場合、左上方向に移動させる）。また、同様にして、現実物体Ｒ２と重畳したテンプレートＴ（ｃ４）に対応する仮想物体を移動させる（この場合、左下方向に移動させる）。
【００４４】
更に、コンピュータを用いて、仮想ダンパＳＤを介して重畳したテンプレートＴ（ｂ４）に連結されているテンプレートである連結テンプレート（この場合、テンプレートＴ（ａ４）、Ｔ（ｂ３）等）に対して、重畳したテンプレートＴ（ｂ４）の物理挙動（移動）と、仮想ダンパＳＤの伸縮による連動ベクトルと、の合成ベクトルを求め、物理挙動（移動）させる。また、重畳したテンプレートＴ（ｃ４）に連結された連結テンプレートであるテンプレートＴ（ｄ４）、Ｔ（ｃ３）も同様にして物理挙動（移動）させる。
このように、コンピュータを、仮想弾性体Ｃｄを構成している仮想物体を物理挙動させる仮想弾性体連動手段として機能させる。
【００４５】
そして図１３の中図に対して右図に示すように、仮想弾性体Ｃｄに対して矢印形状の現実物体Ｒ２を深く突き刺した状態にすると、矢印形状部の一部にて、一部のテンプレート（この場合、テンプレートＴ（ｂ３）、Ｔ（ｃ３））を引っ掛けている状態を表現することができる。
そして図１４に示すように、仮想弾性体Ｃｄに突き刺した現実物体Ｒ２、または仮想弾性体Ｃｄに引っ掛けた現実物体Ｒ２を仮想物理空間内で動かすことで、仮想弾性体Ｃｄを物理挙動させることができる。
【００４６】
●［複数のコンピュータにて仮想物理空間及び仮想物体を共有する例（図１５）］
次に図１５を用いて、異なる場所にいる利用者ＵＡ、利用者ＵＢにて、１つの仮想物理空間Ａ内の仮想物体（この例では、仮想連結剛体Ｃｇ）を、同時に物理挙動させる方法について説明する。
システムの全体構成は、インターネット等の通信回線ＮＷに、第１のコンピュータ１０Ａ、第２のコンピュータ１０Ｂ、サーバ１０Ｓ（第３のコンピュータに相当）が接続されている。そして第１のコンピュータ１０Ａには第１の撮像手段２０Ａが接続されており、第２のコンピュータ１０Ｂには第２の撮像手段２０Ｂが接続されている。
利用者ＵＡは第１のコンピュータ１０Ａ及び第１の撮像手段２０Ａを利用し、利用者ＵＢは第２のコンピュータ１０Ｂ及び第２の撮像手段２０Ｂを利用するものとする。
【００４７】
そして、第１のコンピュータ１０Ａを、第１の撮像手段２０Ａにて撮像した画像から切り出した第１現実物体Ｒ１Ａの画像をサーバ１０Ｓに送信する第１送信手段として機能させる。
また、第２のコンピュータ１０Ｂを、第２の撮像手段２０Ｂにて撮像した画像から切り出した第２現実物体Ｒ１Ｂの画像をサーバ１０Ｓに送信する第２送信手段として機能させる。
【００４８】
更に、サーバ１０Ｓを、サーバ１０Ｓに設定されている仮想物理空間に、受信した第１現実物体Ｒ１Ａと第２現実物体Ｒ１Ｂとを重畳させた共有仮想物理空間ＡＳを作成する共有仮想物理空間作成手段として機能させる。
そしてサーバ１０Ｓを、作成した共有仮想物理空間ＡＳ内の第１現実物体Ｒ１Ａと第２現実物体Ｒ１Ｂによって、共有仮想物理空間ＡＳ内の仮想物体（図１５の例では仮想連結剛体Ｃｇ）を、物理挙動演算手段１１Ｄを用いて共有仮想物理空間ＡＳ内にて物理挙動させる共有物理挙動演算手段として機能させる。この場合、共有仮想物理空間ＡＳ内の仮想連結剛体Ｃｇを、上述した方法にて、第１現実物体Ｒ１Ａ及び第２現実物体Ｒ１Ｂを使って物理挙動させる。
そしてサーバ１０Ｓを、第１現実物体Ｒ１Ａ及び第２現実物体Ｒ１Ｂを使って仮想物体（この場合、仮想連結剛体Ｃｇ）を物理挙動させている共有仮想物理空間ＡＳを、第１のコンピュータ１０Ａと第２のコンピュータ１０Ｂに送信する第３送信手段として機能させる。
【００４９】
そして第１のコンピュータ１０Ａを、受信した共有仮想物理空間ＡＳを第１表示手段に表示する第１共有仮想物理空間表示手段として機能させ、第２のコンピュータ１０Ｂを、受信した共有仮想物理空間ＡＳを第２表示手段に表示する第２共有仮想物理空間表示手段として機能させる。
【００５０】
●［その他］
また、コンピュータの処理負荷をより低減するために、コンピュータを重畳ブロック検出手段として機能させる際、テンプレートの外周部から走査して、仮想物理空間内の現実物体と重畳しているか否かを判定し、現実物体とテンプレートの外周部のブロックとの重畳個所が無い場合は、外周部の内側のブロックとの重畳の検出を打ち切って処理を軽減させてもよい。
この場合、仮想物体を、よりリアルタイムに物理挙動させることができる。
【００５１】
また、現実物体の移動速度が大きい場合、仮想物体の物理挙動が追いつかない場合も考えられる。例えば、仮想物体の下から上へ現実物体が比較的高い速度で移動すると、仮想物体が現実物体を突き抜けてしまう可能性がある。
例えば、コンピュータを重畳ブロック検出手段として機能させる際、仮想物理空間内の現実物体とテンプレートと重畳するブロックの面積が、所定面積以上（所定ブロック以上、所定面積比以上でもよい）であった場合、重畳ブロックの面積に対するテンプレートの面積の比率に応じた力の大きさと、上方向の向きを有する位置ベクトルを合成ベクトルに加える。
この場合、仮想物体が現実物体を突き抜ける現象を抑制し、よりリアルな物理挙動をさせることができる。
【００５２】
また、仮想物体に重畳させるテンプレートは固定である必要はなく、予め複数のテンプレートを用意しておき、適宜、テンプレートを切り替えるようにしてもよい。
例えば、図１３では、無重力の仮想物理空間内の仮想物体と、重力空間の仮想物理空間内で床上に立っている仮想物体と、でテンプレートを切り替える例を説明したが、仮想物体の物理挙動の動きに応じて、仮想物体の状態に応じて、動的に切り替えるようにしてもよい。
この場合、より複雑な物理挙動や、よりリアルな物理挙動をさせることができる。
【００５３】
以上、本実施の形態にて説明したシミュレーションプログラムでは、２次元の例を説明したが、３次元の画像を撮像可能な撮像手段を用いて、３次元の現実物体を切り出し、３次元の仮想物理空間内にて、３次元の仮想物体を、３次元の現実物体からの操作で物理挙動させることも可能である。この場合、３次元の仮想物体に重畳されるテンプレートは、キューブ状のブロックを積み重ねて構成されており、各ブロックに力の方向及び力の大きさが設定されたベクトルが割付けられている点は同じであり、上記と同様にして合成ベクトルを求めることができる。そして、求めた合成ベクトルの方向、及び大きさで３次元の仮想物体を物理挙動させることができる。
【００５４】
本発明のシミュレーションプログラムは、本実施の形態で説明した構成、機能、処理、表示例等に限定されず、本発明の要旨を変更しない範囲で種々の変更、追加、削除が可能である。
本実施の形態の説明では、スクリーンＳを背景とした画像からスクリーンＳの部分を除去して現実物体Ｒ１の画像を切り出す例を説明したが、現実物体Ｒ１の画像を得る方法は、これに限定されず、パターンマッチング法等、種々の方法で現実物体Ｒ１の画像を得ることができる。
【符号の説明】
【００５５】
１０      コンピュータ
１１      ＣＰＵ
１１Ａ    画像認識手段
１１Ｂ    仮想空間表示手段
１１Ｃ    重畳表示手段
１１Ｄ    物理挙動演算手段
１１Ｅ    仮想テンプレート重畳手段
１１Ｆ    重畳ブロック検出手段
１１Ｇ    ベクトル演算手段
１２      記憶手段
１６      表示手段
２０      撮像手段
Ａ        仮想物理空間
Ｃ１、Ｃ２    仮想物体
Ｒ        （現実空間の）現実物体（実体）
Ｒ１      （仮想物理空間の）現実物体（画像）
Ｔ１      テンプレート
Ｂ        ブロック
Ｐ        集中位置
Ｃｇ      仮想連結剛体
Ｊ１      仮想ジョイント
Ｃｄ      仮想弾性体
ＳＤ      仮想ダンパ
Ｓ        スクリーン
Ｕ        利用者
【図１】
2010277331.tif 000003
【図２】
2010277331.tif 000004
【図３】
2010277331.tif 000005
【図４】
2010277331.tif 000006
【図５】
2010277331.tif 000007
【図６】
2010277331.tif 000008
【図７】
2010277331.tif 000009
【図８】
2010277331.tif 000010
【図９】
2010277331.tif 000011
【図１０】
2010277331.tif 000012
【図１１】
2010277331.tif 000013
【図１２】
2010277331.tif 000014
【図１３】
2010277331.tif 000015
【図１４】
2010277331.tif 000016
【図１５】
2010277331.tif 000017