(57)【要約】【課題】所定の条件下で物理演算を簡略化することによって物理演算の計算量を抑制する。【解決手段】仮想的な三次元空間内に表示される第１のオブジェクトに加わる外力が変化しないことを仮定して第１のオブジェクトの時系列の位置を予測する第１の物理演算部と、第１のオブジェクトの位置が三次元空間内に表示される第２のオブジェクトに関連する領域に含まれる場合に、第１のオブジェクトに加わる外力が変化することを仮定して第１のオブジェクトの時系列の位置または速度を予測する第２の物理演算部とを備える物理演算装置が提供される。【選択図】図３
2020201622.tif 000002
【特許請求の範囲】
【請求項１】
仮想的な三次元空間内に表示される第１のオブジェクトに加わる外力が変化しないことを仮定して前記第１のオブジェクトの時系列の位置を予測する第１の物理演算部と、
前記第１のオブジェクトの位置が前記三次元空間内に表示される第２のオブジェクトに関連する領域に含まれる場合に、前記第１のオブジェクトに加わる外力が変化することを仮定して前記第１のオブジェクトの時系列の位置または速度を予測する第２の物理演算部と
を備える物理演算装置。
【請求項２】
前記領域は、前記第１のオブジェクトが前記第２のオブジェクトに衝突する位置を含む領域であり、
前記第２の物理演算部は、前記第１のオブジェクトと前記第２のオブジェクトとの間の反発係数を用いて前記第２のオブジェクトに衝突した後の前記第１のオブジェクトの速度を予測する、請求項１に記載の物理演算装置。
【請求項３】
前記第２のオブジェクトは、前記三次元空間内の移動体であり、
前記第１の物理演算部は、前記第２のオブジェクトに加わる外力が変化しないことを仮定して前記第２のオブジェクトの時系列の位置を予測し、
前記第２の物理演算部は、前記第１のオブジェクトの位置が前記第２のオブジェクトに関連する領域に含まれる場合に、前記第２のオブジェクトに加わる外力が変化することを仮定して前記第２のオブジェクトの時系列の位置または速度を予測する、請求項１または請求項２に記載の物理演算装置。
【請求項４】
前記第２のオブジェクトは、前記三次元空間内に固定配置される、請求項１または請求項２に記載の物理演算装置。
【請求項５】
前記第２のオブジェクトは、ユーザー操作に従って前記三次元空間内を移動し、
前記領域は、前記第２のオブジェクトの存在可能領域である、請求項１に記載の物理演算装置。
【請求項６】
仮想的な三次元空間内に表示される第１のオブジェクトに加わる外力が変化しないことを仮定して前記第１のオブジェクトの時系列の位置を予測するステップと、
前記第１のオブジェクトの位置が前記三次元空間内に表示される第２のオブジェクトに関連する領域に含まれる場合に、前記第１のオブジェクトに加わる外力が変化することを仮定して前記第１のオブジェクトの時系列の位置または速度を予測するステップと
を含む物理演算方法。
【請求項７】
仮想的な三次元空間内に表示される第１のオブジェクトに加わる外力が変化しないことを仮定して前記第１のオブジェクトの時系列の位置を予測する第１の物理演算部と、
前記第１のオブジェクトの位置が前記三次元空間内に表示される第２のオブジェクトに関連する領域に含まれる場合に、前記第１のオブジェクトに加わる外力が変化することを仮定して前記第１のオブジェクトの時系列の位置または速度を予測する第２の物理演算部と
を備える物理演算装置としてコンピュータを動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理演算装置、物理演算方法およびプログラムに関する。
【背景技術】
【０００２】
ディスプレイなどに表示される仮想的な空間内で移動するオブジェクトの位置を物理演算によって算出する技術が知られている。例えば、特許文献１には、ゲーム内で描画されるオブジェクトの速度および位置情報を質量、速度、摩擦、および風といった物理法則をシミュレーションするソフトウェアを用いて算出する物理エンジンを用いたオブジェクト制御プログラムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−０００２０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のようなオブジェクト制御では、例えば処理を高速化したり、計算リソースが限られたハードウェアでの動作を可能にしたりするために、物理演算の計算量を抑制することが有利になる場合がある。
【０００５】
そこで、本発明は、所定の条件下で物理演算を簡略化することによって物理演算の計算量を抑制することが可能な物理演算装置、物理演算方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のある観点によれば、仮想的な三次元空間内に表示される第１のオブジェクトに加わる外力が変化しないことを仮定して第１のオブジェクトの時系列の位置を予測する第１の物理演算部と、第１のオブジェクトの位置が三次元空間内に表示される第２のオブジェクトに関連する領域に含まれる場合に、第１のオブジェクトに加わる外力が変化することを仮定して第１のオブジェクトの時系列の位置または速度を予測する第２の物理演算部とを備える物理演算装置が提供される。
【０００７】
本発明の別の観点によれば、仮想的な三次元空間内に表示される第１のオブジェクトに加わる外力が変化しないことを仮定して第１のオブジェクトの時系列の位置を予測するステップと、第１のオブジェクトの位置が三次元空間内に表示される第２のオブジェクトに関連する領域に含まれる場合に、第１のオブジェクトに加わる外力が変化することを仮定して第１のオブジェクトの時系列の位置または速度を予測するステップとを含む物理演算方法が提供される。
【０００８】
本発明のさらに別の観点によれば、仮想的な三次元空間内に表示される第１のオブジェクトに加わる外力が変化しないことを仮定して第１のオブジェクトの時系列の位置を予測する第１の物理演算部と、第１のオブジェクトの位置が三次元空間内に表示される第２のオブジェクトに関連する領域に含まれる場合に、第１のオブジェクトに加わる外力が変化することを仮定して第１のオブジェクトの時系列の位置または速度を予測する第２の物理演算部とを備える物理演算装置としてコンピュータを動作させるためのプログラムが提供される。
【発明の効果】
【０００９】
上記の構成によれば、第１のオブジェクトの位置が第２のオブジェクトに関連する領域に含まれない場合にはオブジェクトに加わる外力が変化しないことを仮定することによって物理演算を簡略化し、それによって物理演算の計算量を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るシステムの概略的な構成を示すブロック図である。
【図２】図１に示した演算装置の物理演算部の構成を示すブロック図である。
【図３】本発明の一実施形態における物理演算の例について説明するための図である。
【図４】本発明の一実施形態における物理演算の処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１２】
図１は、本発明の一実施形態に係るシステムの概略的な構成を示すブロック図である。図示された例において、システム１０は、キャプチャ装置１００と、演算装置２００（物理演算装置）と、描画装置３００と、表示装置４００を含む。キャプチャ装置１００は、例えば三次元計測やＩＭＵ（慣性計測装置）などを用いてユーザーの動きをキャプチャする。具体的には、例えば、キャプチャ装置１００は三次元計測のための複数のカメラおよび演算装置、ならびにＩＭＵなどを含む。キャプチャ装置１００は、キャプチャされたユーザーの動きを示すデータを演算装置２００に送信する。
【００１３】
演算装置２００は、データ補正部２１０と、補完・予測部２２０と、物理演算部２３０と、座標修正部２４０とを含む。演算装置２００は、例えば通信インターフェース、プロセッサ、およびメモリを有するコンピュータによって実装され、データ補正部２１０、補完・予測部２２０、物理演算部２３０、および座標修正部２４０の機能はプロセッサがメモリに格納された、または通信インターフェースを介して受信されたプログラムに従って動作することによって実現される。以下、各部の機能についてさらに説明する。
【００１４】
データ補正部２１０は、キャプチャ装置１００から所定の周期（一例として、３０ｆｐｓ〜６０ｆｐｓ）で受信されたデータのノイズ除去や欠損補完、パケット消失対応などを実行することによって、ユーザーの動きを示すデータを所定の間隔で連続するデータに補正する。
【００１５】
補完・予測部２２０は、ユーザーの動きを示すデータに基づいて仮想的な三次元空間内に表示されるオブジェクトの時系列の位置を予測する。本実施形態において、補完・予測部２２０は、例えば内外挿による補完の処理によって、データ補正部２１０から提供されるユーザーの動きを示すデータの周期よりも短い周期でオブジェクトの位置を予測する。
【００１６】
物理演算部２３０は、補完・予測部２２０がオブジェクトの時系列の位置を予測するために、物理法則をシミュレーションする物理演算を実行する。物理演算部２３０は、例えば、オブジェクトに設定される質量や初期速度、重力に加えて、ユーザーの動きを示すデータに応じて決定される、ユーザーがオブジェクトに及ぼす外力に基づいて物理演算を実行することによって、オブジェクトの時系列の位置を予測する。
【００１７】
座標修正部２４０は、補完・予測部２２０によるオブジェクトの位置予測結果の座標を、必要に応じてオブジェクトの位置を反映して修正する。なお、座標修正部２４０は、必ずしも設けられなくてもよい。座標修正部２４０による修正後のオブジェクトの位置予測結果（座標修正部２４０が設けられない場合は、補完・予測部２２０によるオブジェクトの位置予測結果）は、描画装置３００に送信される。
【００１８】
描画装置３００は、例えば演算装置２００と同様にコンピュータによって実装され、オブジェクトの位置予測結果を参照して仮想的な三次元空間内にオブジェクトを表示した画像を所定の周期（リフレッシュレート。一例として、１２０ｆｐｓ〜２４０ｆｐｓ）で描画する。表示装置４００は、例えばＨＭＤ（ヘッドマウントディスプレイ）であり、描画装置３００が描画した画像を視点画像としてユーザーに向けて表示する。
【００１９】
上記のようなシステム１０では、物理演算部２３０が実行する物理演算の計算量を抑制することによって、計算リソースが限られたハードウェアでも演算装置２００として動作させることが可能になる。また、例えば位置予測の周期を描画装置３００における描画の周期よりも短く（一例として、１０００ｆｐｓ以上）することが可能であるため、例えば将来的に表示装置４００のリフレッシュレートが向上したことに対応して描画装置３００における描画の周期が短くなった場合にも、演算装置２００側の処理を変更せずに対応することができる。
【００２０】
図２は、図１に示した演算装置の物理演算部の構成を示すブロック図である。図示された例において、物理演算部２３０は、第１の物理演算部２３１と、第２の物理演算部２３２とを含む。第１の物理演算部２３１は、仮想的な三次元空間内に表示されるオブジェクトについて、オブジェクトに加わる外力が変化しないことを仮定して時系列の位置を予測する。第２の物理演算部２３２は、オブジェクトに加わる外力が変化することを仮定して時系列の位置を予測する。
【００２１】
ここで、本明細書において、外力が変化しない、とは、例えばオブジェクトに外力が加わらないこと、オブジェクトに加わる外力の大きさが変化しないこと、およびオブジェクトの質量や速度などに対して一定の割合で比例する外力が加わることを意味する。オブジェクトに外力が加わらない場合、オブジェクトは等速運動する。重力のように大きさが変化しない外力が加わる場合、オブジェクトは等加速度運動する。等速運動や等加速度運動では、オブジェクトの将来にわたる時系列の位置を時間のみを変数とする計算式によって予測することができる。また、空気抵抗力や摩擦力のようにオブジェクトの速度や質量などに対して一定の割合で比例する外力が加わる場合も、オブジェクトの運動は時間のみを変数とする計算式で記述可能であり、オブジェクトの将来にわたる時系列の位置を簡単な計算によって予測することができる。
【００２２】
一方、本明細書において、外力が変化する、とは、例えばオブジェクト同士の衝突によってオブジェクトに加わっていなかった外力が加わることを意味する。外力は、瞬間的に加わってもよく、所定の時間にわたって一時的に加わってもよく、ある時刻以降に継続的に加わってもよい。オブジェクト同士の衝突は、例えば三次元空間内の移動体であるオブジェクトが、三次元空間内に固定配置される他のオブジェクト、または三次元空間内の移動体である他のオブジェクトに接触した場合に発生する。ここで、他のオブジェクトは、ユーザーの動きに従って移動してもよい。オブジェクトに加わる外力が変化することを仮定する場合、例えば、演算装置２００は、オブジェクトについて所定の周期で位置を更新し、更新された位置で他のオブジェクトとの衝突が発生するか否かを判定する。そして、演算装置２００は、他のオブジェクトとの衝突が発生する場合には衝突によってオブジェクトに加わる外力の向きおよび大きさから衝突後のオブジェクトの速度を算出することができる。
【００２３】
本実施形態に係る演算装置２００の物理演算部２３０では、仮想的な三次元空間内の移動体である第１のオブジェクトと、三次元空間内の移動体であるか、または三次元空間内に固定配置される第２のオブジェクトについて、第１のオブジェクトと第２のオブジェクトとの衝突が発生しない場合には第１の物理演算部２３１がオブジェクトに加わる外力が変化しないことを仮定してオブジェクトの時系列の位置を予測する。一方、物理演算部２３０は、第１のオブジェクトと第２のオブジェクトとの衝突が発生する可能性がある場合には第２の物理演算部２３２がオブジェクトに加わる外力が変化することを仮定してオブジェクトの時系列の位置または速度を予測する。
【００２４】
ここで、第１のオブジェクトと第２のオブジェクトとの衝突が発生する可能性があるか否かは、例えば第１のオブジェクトの位置が第２のオブジェクトに関連する領域に含まれるか否かによって判定することができる。この領域は、例えば、第１のオブジェクトが第２のオブジェクトに衝突する位置を含む領域である。例えば、第１の物理演算部２３１による時系列の位置の予測によって第１のオブジェクトが第２のオブジェクトに衝突する位置が特定可能である場合、第２の物理演算部２３２は、第１のオブジェクトがこの位置に到達して第２のオブジェクトに衝突した後の速度を予測する。後述するように、第２の物理演算部２３２は、第１のオブジェクトと第２のオブジェクトとの間の反発係数を用いて衝突後の第１のオブジェクトの速度を予測してもよい。第２のオブジェクトとの衝突後は、再びオブジェクトに加わる外力が変化しないことが仮定できるため、第１の物理演算部２３１が第１のオブジェクトの時系列の位置を予測してもよい。
【００２５】
あるいは、上記の第２のオブジェクトに関連する領域は、第２のオブジェクトの存在可能領域であってもよい。例えば第２のオブジェクトがユーザー操作に従って三次元空間内を移動する場合、第２のオブジェクトの動きが不規則であるため、第１の物理演算部２３１による時系列の位置の予測では第１のオブジェクトが第２のオブジェクトに衝突する位置を特定することは困難である。この場合、第１の物理演算部によって予測される第１のオブジェクトの位置が第２のオブジェクトの存在可能領域に入った時点で、第２の物理演算部２３２が第１のオブジェクトの位置を予測する。第２の物理演算部２３２は、例えば、第１のオブジェクトの位置を所定の周期で更新し、第１のオブジェクトの位置と第２のオブジェクトの位置とが接触または重複した場合に、衝突によって第１のオブジェクトに加わる外力の向きおよび大きさから衝突後のオブジェクトの速度を算出する。この場合、第２の物理演算部２３２は、第１のオブジェクトの時系列の位置と速度とを予測する。なお、第２のオブジェクトも移動体である場合、第１の物理演算部２３１および第２の物理演算部２３２は第１のオブジェクトと同様にして第２のオブジェクトの時系列の位置および速度を予測してもよい。
【００２６】
図３は、本発明の一実施形態における物理演算の例について説明するための図である。図示された例において、物理演算部２３０は、仮想的な三次元空間内の移動体であるオブジェクトｏｂｊ１（第１のオブジェクト）およびオブジェクトｏｂｊ２（第２のオブジェクト）の時系列の位置を予測する。時刻ｔの時点において、オブジェクトｏｂｊ１，ｏｂｊ２は互いに離れた位置にあり、互いに接近する方向の速度ｖ１，ｖ２で移動している。
【００２７】
図３（ａ）に示す参考例では、時刻ｔから時刻ｔ＋４までの全区間において、第２の物理演算部２３２が、オブジェクトに加わる外力が変化することを仮定してオブジェクトの時系列の位置を予測している。より具体的には、第２の物理演算部２３２は、時刻ｔにおけるオブジェクトｏｂｊ１，ｏｂｊ２の位置および速度ｖ１，ｖ２に基づいて、時刻ｔ＋１，ｔ＋２におけるオブジェクトｏｂｊ１，ｏｂｊ２の位置を逐次算出する。時刻ｔ＋２において、算出されたオブジェクトｏｂｊ１，ｏｂｊ２の位置は重複する。第２の物理演算部２３２は、拘束条件ソルバー（constraint solver）を用いて時刻ｔ＋２におけるオブジェクトｏｂｊ１，ｏｂｊ２の位置を修正する。より具体的には、例えば、第２の物理演算部２３２は、時刻ｔ＋１と時刻ｔ＋２との間で発生するオブジェクトｏｂｊ１，ｏｂｊ２の衝突時の挙動をシミュレートし、オブジェクトｏｂｊ１，ｏｂｊ２の間で伝達される外力の向きおよび大きさから衝突後のオブジェクトｏｂｊ１，ｏｂｊ２の速度を算出し、衝突後のオブジェクトｏｂｊ１，ｏｂｊ２の速度に基づいて時刻ｔ＋２におけるオブジェクトｏｂｊ１，ｏｂｊ２の位置を算出する。その後、第２の物理演算部２３２は、時刻ｔ＋３，ｔ＋４について同様にオブジェクトｏｂｊ１，ｏｂｊ２の位置を逐次算出する。
【００２８】
これに対して、図３（ｂ）に示す本実施形態の例では、時刻ｔの時点ではオブジェクトｏｂｊ１，ｏｂｊ２が衝突していないため、まず第１の物理演算部２３１が、オブジェクトｏｂｊ１，ｏｂｊ２に加わる外力が変化しないことを仮定してオブジェクトｏｂｊ１，ｏｂｊ２の時系列の位置を予測する。この場合、上述のように時間のみを変数とする計算式によってオブジェクトの時系列の位置を予測することができ、オブジェクトｏｂｊ１がオブジェクトｏｂｊ２に衝突する位置に到達する時刻ｔ＋ｎ（上記（ａ）の例の場合、時刻ｔ＋１と時刻ｔ＋２との間の時刻）についても容易に特定することができる。時刻ｔ＋ｎ以降のオブジェクトｏｂｊ１，ｏｂｊ２の速度については、第２の物理演算部２３２がオブジェクトに加わる外力が変化することを仮定して予測する。より具体的には、例えば、第２の物理演算部２３２は、後述する例のようにオブジェクトｏｂｊ１とオブジェクトｏｂｊ２との間の反発係数を用いて衝突後のオブジェクトｏｂｊ１，ｏｂｊ２の速度を算出する。あるいは、第２の物理演算部２３２は、上記（ａ）の例と同様にオブジェクトｏｂｊ１，ｏｂｊ２の衝突時の挙動をシミュレートすることによって衝突後のオブジェクトｏｂｊ１，ｏｂｊ２の速度を算出してもよい。算出された速度に基づいて、再び第１の物理演算部２３１が、時刻ｔ＋ｎから時刻ｔ＋ｍ（ｎ＜ｍ）までのオブジェクトｏｂｊ１，ｏｂｊ２の時系列の位置を予測する。
【００２９】
上記（ｂ）の例では、時刻ｔから時刻ｔ＋ｎまでの時刻について、時間のみを変数とする計算式を用いてオブジェクトｏｂｊ１，ｏｂｊ２の位置を予測することによって、物理演算部２３０が実行する物理演算の計算量を抑制することができる。また、（ｂ）の例では、オブジェクトｏｂｊ１，ｏｂｊ２の衝突の時刻ｔ＋ｎが特定できるため、（ａ）の例のように時刻ｔ＋２でオブジェクトｏｂｊ１，ｏｂｊ２が重複することが判明してから位置を修正する場合に比べて計算量を抑制することができる。
【００３０】
以下では、オブジェクトｏｂｊ１に加わる外力が変化しないことを仮定して衝突後の速度を算出する具体的な例についてさらに説明する。なお、以下の例では、簡単のためオブジェクトｏｂｊ１，ｏｂｊ２を質点として扱うが、実際にはそれぞれのオブジェクトの大きさが考慮される。
【００３１】
例えば、オブジェクトｏｂｊ１が三次元空間内の移動体であり、オブジェクトｏｂｊ２が三次元空間内に固定配置されるオブジェクト、例えば地平面（ｙ位置が０）である場合、時刻ｔにおけるオブジェクトｏｂｊ１の位置（ｘ，ｙ，ｚ）は、初期位置（ｘ０，ｙ０，ｚ０）初期速度（ｖｘ０，ｖｙ０，ｖｚ０）、および初期加速度（ａｘ０，ａｙ０，ａｚ０）から以下のように算出できる。
【００３２】
・地平面との衝突時刻ｔＣの算出
ｙ＋ｖｙ０＊ｔＣ＋ａｙ０＊ｔＣ２＊１／２＝０となる衝突時刻ｔＣを算出する
・時刻ｔ≦ｔＣでの等加速度運動
ｘ＝ｘ０＋ｖｘ０＊ｔ＋ａｘ０＊ｔ２＊１／２
ｙ＝ｙ０＋ｖｙ０＊ｔ＋ａｙ０＊ｔ２＊１／２
ｚ＝ｚ０＋ｖｚ０＊ｔ＋ａｚ０＊ｔ２＊１／２
・時刻ｔ＞ｔＣでのｙ方向の速度ｖｙを反発係数ｅを用いて算出
（速度ｖｘ０，ｖｚ０は変化しない）
ｖｙ＝−ｅ（ｖｙ０＋ａｙ０＊ｔ）
・時刻ｔ＞ｔＣでの等加速度運動
ｘ＝ｘ０＋ｖｘ０＊ｔ＋ａｘ０＊ｔ２＊１／２
ｙ＝ｙ０＋ｖｙ０＊ｔＣ−ｅ（ｖｙ０＋ａｙ０＊ｔ）（ｔ−ｔＣ）＋ａｙ０＊ｔ２＊１／２
ｚ＝ｚ０＋ｖｚ０＊ｔ＋ａｚ０＊ｔ２＊１／２
【００３３】
一方、オブジェクトｏｂｊ１，ｏｂｊ２がいずれも三次元空間内の移動体である場合、オブジェクトｏｂｊ１の初期位置（ｘ０１，ｙ０１，ｚ０１）初期速度（ｖｘ０１，ｖｙ０１，ｖｚ０１）、および初期加速度（ａｘ０１，ａｙ０１，ａｚ０１）、ならびにオブジェクトｏｂｊ２の初期位置（ｘ０２，ｙ０２，ｚ０２）初期速度（ｖｘ０２，ｖｙ０２，ｖｚ０２）、および初期加速度（ａｘ０２，ａｙ０２，ａｚ０２）を用いて以下のように衝突時刻ｔＣを算出し、上記の例と同様に反発係数を用いて衝突時刻ｔＣの前後で時刻ｔにおけるオブジェクトｏｂｊ１，ｏｂｊ２の位置を算出することができる。
【００３４】
・衝突時刻ｔＣの算出
｜ｘ０１＋ｖｘ０１＊ｔＣ＋ａｘ０１＊ｔＣ２＊１／２−ｘ０２＋ｖｘ０２＊ｔＣ＋ａｘ０２＊ｔＣ２＊１／２｜＋｜ｙ０１＋ｖｙ０１＊ｔＣ＋ａｙ０１＊ｔＣ２＊１／２−ｙ０２＋ｖｙ０２＊ｔＣ＋ａｙ０２＊ｔＣ２＊１／２｜＋｜ｚ０１＋ｖｚ０１＊ｔＣ＋ａｚ０１＊ｔＣ２＊１／２−ｚ０２＋ｖｚ０２＊ｔＣ＋ａｚ０２＊ｔＣ２＊１／２｜＝０となる衝突時刻ｔＣを算出する
【００３５】
図４は、本発明の一実施形態における物理演算の処理の例を示すフローチャートである。演算装置２００の物理演算部２３０が仮想的な三次元空間内に表示されるオブジェクトの物理演算を実行する場合、まず、オブジェクトが衝突領域に到達しているか否かを判定する（ステップＳ１０１）。例えば、物理演算部２３０は、オブジェクトが他のオブジェクトと重複している場合に、オブジェクトが衝突領域に到達していると判定する。あるいは、第１の物理演算部２３１が既に外力が変化しないことを仮定してオブジェクトの位置を予測している場合（ステップＳ１０２）、物理演算部２３０は予測された位置が他のオブジェクトに接触または衝突している場合にオブジェクトが衝突領域に到達していると判定する。
【００３６】
上記のステップＳ１０１でオブジェクトが衝突領域に到達していないと判定された場合、第１の物理演算部２３１が、オブジェクトに加わる外力が変化しないことを仮定してオブジェクトの位置を予測する（ステップＳ１０２）。このとき、第１の物理演算部２３１は、オブジェクトの位置予測の次の周期のオブジェクトの位置を予測してもよいし、オブジェクトが衝突領域に到達するまでの時系列の位置を一括して予測してもよい。第１の物理演算部２３１によるオブジェクトの位置予測は、オブジェクトが衝突領域に到達するまで繰り返される（ステップＳ１０１）。
【００３７】
一方、上記のステップＳ１０１でオブジェクトが衝突領域に到達していると判定された場合、第２の物理演算部２３２が、オブジェクトに加わる外力が変化することを仮定してオブジェクトの位置または速度を予測する（ステップＳ１０３）。第２の物理演算部２３２は、オブジェクトが衝突領域にある間の時系列の位置を予測してもよいし、上記の例のように衝突位置に等しい衝突領域において変化した後のオブジェクトの速度を予測してもよい。第２の物理演算部２３２によるオブジェクトの位置予測は、オブジェクトが衝突領域から離脱するまで繰り返される（ステップＳ１０４）。
【００３８】
上記のような第１の物理演算部２３１および第２の物理演算部２３２によるオブジェクトの位置の予測を、物理演算の終了まで繰り返す（ステップＳ１０５）ことによって、他のオブジェクトと衝突するオブジェクトの時系列の位置を、抑制された計算量で予測することができる。
【００３９】
以上、添付図面を参照しながら本発明のいくつかの実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００４０】
１０…システム、１００…キャプチャ装置、２００…演算装置、２１０…データ補正部、２２０…予測部、２３０…物理演算部、２３１…第１の物理演算部、２３２…第２の物理演算部、２４０…座標修正部、３００…描画装置、４００…表示装置。
【図１】
2020201622.tif 000003
【図２】
2020201622.tif 000004
【図３】
2020201622.tif 000005
【図４】
2020201622.tif 000006