(57)【要約】【課題】複数のゾーンに分割された３Ｄシーンにおける少なくとも１つのオブジェクトの物理的な挙動をシミュレートするためのコンピュータ実装方法を提供すること。【解決手段】本発明は、複数のゾーンに分割された３Ｄシーンにおける少なくとも１つのオブジェクトの物理的な挙動をシミュレートするためのコンピュータ実装方法を対象とする。当該方法は、位相的に隣接する少なくとも第１のゾーンおよび第２のゾーンを提供することであって、各ゾーンは、それ自体の計算資源を有し、１または双方のゾーンに置かれたオブジェクトを提供することと、オブジェクトの物理的な挙動をシミュレートすることであって、シミュレーションは、上述の第１および第２のゾーンのうちのそれぞれの計算資源によって実行されることを備える。【選択図】図１
2014123369.tif 000002
【特許請求の範囲】
【請求項１】
複数のゾーンに分割された３Ｄシーンにおける少なくとも１つのオブジェクトの物理的な挙動をシミュレートするためのコンピュータ実装方法であって、
位相的に隣接する少なくとも第１のゾーンおよび第２のゾーンを提供することであって、各ゾーンはそれ自体の計算資源を有し、
１または双方のゾーンに置かれたオブジェクトを提供することと、前記オブジェクトの前記物理的な挙動をシミュレートすることであって、前記シミュレーションは、前記第１および前記第２のゾーンのうちのそれぞれの前記計算資源によって実行されることを備えることを特徴とするコンピュータ実装方法。
【請求項２】
オブジェクトを提供するステップであって、前記オブジェクトのインスタンスは前記オブジェクトが置かれた各ゾーンに対して計算され、前記オブジェクトの前記計算されインスタンスは同一であることと、
前記オブジェクトの前記物理的な挙動をシミュレートするステップは、前記オブジェクトの前記インスタンスにリンクされた物理的な状態に従って実行されることを備えることを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項３】
前記提供するステップの後、
前記第１のゾーンと前記第２のゾーンとの間の情報を交換するステップであって、前記交換される情報は、一方のゾーン内の前記オブジェクトの前記物理的な状態および他方のゾーン内における前記オブジェクトの存在または不在を少なくとも含むことをさらに備えることを特徴とする請求項２に記載のコンピュータ実装方法。
【請求項４】
前記提供するステップの後、
前記オブジェクトが双方のゾーンに置かれていると判定するステップと、
前記オブジェクトの到着ゾーンである双方のゾーンのうちの一方が、前記オブジェクトが前記到着ゾーン内に完全には入っていないことを確認することによって、前記オブジェクトの出発ゾーンである他方のゾーン内における前記オブジェクトの存在を計算するステップと、
前記出発ゾーン内における前記オブジェクトの存在を示す情報を、前記到着ゾーンから前記出発ゾーンに交換するステップとをさらに備えることを特徴とする請求項３に記載のコンピュータ実装方法。
【請求項５】
前記提供するステップの後、
前記オブジェクトがもはや前記ゾーンのうちの一方に置かれていないと判定するステップと、
前記オブジェクトの前記到着ゾーンである前記ゾーンのうちの一方が、前記オブジェクトが前記到着ゾーン内に完全には入っていないことを確認することによって、前記オブジェクトの前記出発ゾーンである他方のゾーン内における前記オブジェクトの不在を計算するステップと、
前記出発ゾーン内における前記オブジェクトの不在を示す情報を、前記到着ゾーンから前記出発ゾーンに交換するステップと、
前記出発ゾーンによって、前記出発ゾーン内の前記オブジェクトの前記インスタンスをキルするステップとをさらに備えることを特徴とする請求項３または４のいずれか１項に記載のコンピュータ実装方法。
【請求項６】
前記提供するステップの後、
前記オブジェクトが，前記オブジェクトの前記到着ゾーンである前記ゾーンのうちの一方に入っていると判定するステップと、
前記出発ゾーンである前記他方のゾーンが、前記オブジェクトが前記出発ゾーン内に完全には入っていないことを確認することによって、前記到着ゾーン内における前記オブジェクトの存在を計算するステップと、
前記到着ゾーン内における前記オブジェクトの存在を示す情報を、前記出発ゾーンから前記到着ゾーンに交換するステップと、
前記到着ゾーンによって前記オブジェクトのインスタンスを作成するステップとをさらに備えることを特徴とする請求項３乃至５のいずれか１項に記載のコンピュータ実装方法。
【請求項７】
前記第１のゾーンと前記第２のゾーンとの間の情報を交換するステップは、前記第１のゾーンと前記第２のゾーンとの間の同期通信チャネルを通じて実行されることを特徴とする請求項３乃至６のいずれか１項に記載のコンピュータ実装方法。
【請求項８】
前記第１のゾーンと前記第２のゾーンとの間の情報を交換するステップは、前記第１のゾーンと前記第２のゾーンとの間の非同期通信チャネルを通じて実行されることを特徴とする請求項３乃至６のいずれか１項に記載のコンピュータ実装方法。
【請求項９】
前記第１のゾーンと前記第２のゾーンとの間の情報を交換するステップは、前記第１のゾーンと前記第２のゾーンとの間の信頼性のある通信チャネルを用いて実行されることを特徴とする請求項３乃至８のいずれか１項に記載のコンピュータ実装方法。
【請求項１０】
前記第１のゾーンと前記第２のゾーンとの間の情報を交換するステップは、前記第１のゾーンと前記第２のゾーンとの間の信頼性のない通信チャネルを用いて実行されることを特徴とする請求項３乃至８のいずれか１項に記載のコンピュータ実装方法。
【請求項１１】
前記信頼性のない通信チャネルは、ユーザデータグラムプロトコルを使用することを特徴とする請求項１０に記載のコンピュータ実装方法。
【請求項１２】
コンピュータによって実行される命令を備える命令を備えるコンピュータプログラムであって、前記命令は、請求項１乃至１１のいずれか１項に記載の前記ステップを実行するように適応されることを特徴とするコンピュータプログラム。
【請求項１３】
請求項１２に記載のコンピュータプログラムが記録されたコンピュータ可読記憶媒体。
【請求項１４】
複数のゾーンに分割された３Ｄシーンの位相的に隣接する少なくとも第１のゾーンおよび第２のゾーンとを記憶し、および１または双方のゾーン内にオブジェクトを記憶するための記憶システムと、
請求項１乃至１１のいずれか１項に記載の、前記オブジェクトの前記物理的な挙動をシミュレートするための処理ユニットとを備えることを特徴とするコンピュータ化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、複数のゾーンに分割された３Ｄシーン内における少なくとも１つのオブジェクトの物理的な挙動をシミュレートするための方法、システムおよびプログラムに関する。
【背景技術】
【０００２】
ＭＭＯ(Massively Multi-user On line applications)によって、大勢のユーザが、現実世界の事象のシミュレータ(real-world phenomena simulator)、没入型アプリケーションなどのアプリケーションを同時に使用できるようになる。同様に、ＭＭＯＧ(Massively Multi-user On line Games)によって、大勢のゲーマがビデオゲームを同時に行えるようになる。ＭＭＯおよびＭＭＯＧは、例えば、インターネットのような、ユーザまたはゲーマがアプリケーションまたはビデオゲームに接続可能にするコンピュータネットワークに特に依存する。本明細書にわたり「アプリケーション」および「ビデオゲーム」という用語は、同義であると理解され、そしてＭＭＯおよびＭＭＯＧという用語は、区別せずに使用される。
【０００３】
ＭＭＯは、複雑で大規模な仮想環境を含み、その環境は、ユーザまたはゲームプレーヤに、より現実的な体験を与えるために、可能な限り詳細で、可能な限りリアルタイムに近づけてレンダリングされることが望ましい。ＭＭＯは、特に、３Ｄシーンの表現および操作用に設計され、そして典型的には、エンドユーザのコンピュータ上で、対話的で逐次的なリアルタイムの３Ｄシーンの生成に必要なアプリケーションに利用される。ユーザが３Ｄシーンと対話する時に、コンピュータは、ユーザが参加している、継続して進行する現実感をユーザに伝えるのに十分高速な３Ｄ表現を再描画する。シーンは、ユーザが３Ｄシーンと対話する時に操作することができる多数の別個のオブジェクトから構成される。従って、ＭＭＯは、大容量のデータ、高データレートを含み、そして空間が複雑で非常に詳細な仮想環境において、リアルタイムで参加している大勢のユーザを管理するためにデータの高複雑性が一般に要求される。
【０００４】
ＭＭＯは、典型的には、例えば、Ｍｕｌｔｉ−Ｂｏｄｙ  Ｒｉｇｉｄ  Ｄｙｎａｍｉｃｓ，Ｈｕｍａｎ  Ｓｉｍｕｌａｉｏｎ，Ｃｌｏｔｈ  Ｓｉｍｕｌａｔｉｏｎ，Ｐａｒｔｉｃｌｅ  Ｓｉｍｕｌａｔｉｏｎなどの、コンピュータモデルにおいて現実世界の事象をシミュレートするために使用される。シミュレーションは、製造工程および製品に使用される、工程のシミュレーションおよび使用する製品のシミュレーションを生成する素材の物理的プロパティ（強度、弾性など）などの、現実世界の事象を記述する正確なデータおよびアルゴリズムを要求する。３ＤＣＡＤ／ＣＡＭ（コンピュータ支援設計、コンピュータ支援製造）ツールによって、製品または構成部品の３Ｄ表現を生成することが可能になる。
【０００５】
ＭＭＯおよびＭＭＯＧの主要なおよび重要な要求は、プレーヤの人数にかかわらず、そしてアプリケーションを解決してレンダリングするために生じる計算コストにかかわらず、接続しているプレーヤにリアルタイム応答を常時提供することである。さもなければ、プレイ体験の質が落ち、アプリケーションに対するプレーヤの興味が低下し、共同配信されるデザインレビューを実行する時の対話が制限される。  ＭＭＯＧと同様にＭＭＯは、絶え間なく変化する作業負荷に動的に適応するためにスケーラブルでなければならず、従ってリアルタイムな実行を維持しなければならない。スケーラビリティは、特に、アプリケーションを同時に使用することができるユーザの数、シミュレーションを計算する計算資源の数、アプリケーションによって許容される３Ｄシーンのオブジェクト間で同時に対話する数などを備える。ＭＭＯＧの場合、動的オブジェクトにすべて包含される位置およびグラフィックの属性だけでなく、ユーザの数も著しく変わり得る。それにもかかわらず、周辺景色の設定は、一回限りであり、動的オブジェクトおよびサポートされる挙動クラスの類型は、ゲームが開始される前に事前に定義されている。言い換えれば、ＭＭＯＧの３Ｄシーンは、計算資源の要求を強固に制限するいくつかの事前に定義された特性を備える。従って、スケーラビリティを改善する。
【０００６】
一方、アドバンストＭＭＯの場合、３Ｄシーンの景色および分布類型は、特にアプリケーションが稼動している間に発展して豊富になり得る。実際に、ＭＭＯは、現実世界の事象が目的であり、そこでオブジェクトの動きは、動的であって、事前に定義された挙動クラスを除外する。結果として、ＭＭＯの３Ｄ景色は、ＭＭＯＧのように事前に定義された特性を使用することができない。
【０００７】
スケーラビリティの問題は、ＭＭＯＧによって対処される。このようなソリューションおよび技術は、シャーディングおよびゾーニングを含む。シャーディングは、作業負荷の増加に対処するために、世界（一部または全体）を複製すること、および新たにログインしたユーザをホストすることで構成されているが、シャード間の対話は不可能である。従って本質的に、シャーディングは、仮想世界の空間および分布の無制限の拡大をサポートすることができない。即ち、シャードは、実際には、それらに割り当てられた処理資源の実行によって決められる物理的容量の上限を有する。
【０００８】
ゾーニングは、いわゆるゾーンにおける仮想世界の空間のパーティションに依存し、ゾーンのそれぞれに対し、計算資源が責任を負う。オブジェクト／ユーザは、ゾーンからゾーンへとナビゲートすることができる。関連する計算資源は、その後、専用メッセージをネットワークで通信して、このような移動オブジェクトをそれらの計算モデルに統合する。
【０００９】
しかしながら、ＭＭＯＧでは、ゾーンは、互いに完全に独立して発展する。即ち、動的オブジェクトは、事前に定義されたゾーン「Ａ」の数少ない通過場所のうちの１つからゾーン「Ｂ」の数少ない別の通過場所に単に「空間移動」される。最適なロードバランシングの問題は、ゾーンを障害物またはソリッド壁でフェンスすることによって、ゾーン間の通過場所の数を制限することによって、各ゾーン内のオブジェクトの分布を常時制限することによって、そして調整された静的な装飾物でゾーンを満たすことによって解決される。ある程度、仮想環境の異なる領域は、リアルタイム要求に合致するようにカスタマイズされる。
【００１０】
しかしながら、ＭＭＯの高度な物理学シミュレーションの場合、このような単純化は、許容できない。実際に、仮想環境、特に現実世界の事象がシミュレートされる時、景色の人工フェンシングをサポートすることができず、シミュレートされる現実世界のカスタム化の可能性を制限する。特に、すべてのオブジェクトは、２またはいくつかのゾーン間の境界をどのポイントにおいても通過することが可能でなければならず、そしてその通過は、オブジェクトの状態（例えば、位置および速度）の継続性を保つように実行されなければならない。さらに、隣接するゾーンは、通常、オブジェクトを介して相互の対話を行うことによってオブジェクトの共通の境界（例えば、接触力）を共有し、従って、「空間移動」などのメカニズムは、現実的なシミュレーションにとって効果がない。その上、共通の物理的な挙動のシミュレーションは、考慮すべき物理学の教義に従ってデータのゾーン間の継続的で反復的な通信を要求し、かなり複雑になりえる。
【００１１】
このようなコンテキストにおいて、複数のゾーンに分割された３Ｄシーンにおけるオブジェクトの物理的な挙動の、スケーラブルで、シームレスで、効率的なリアルタイムシミュレーションを提供する方法、コンピュータプログラム、およびシステムに改善する必要が依然として存在する。
【発明の概要】
【００１２】
一態様に従って、本発明は、複数のゾーンに分割された３Ｄシーンにおける少なくとも１つのオブジェクトの物理的な挙動をシミュレートするためのコンピュータ実装方法を提供する。その方法は、
−位相的に隣接する少なくとも第１のゾーンおよび第２のゾーンを提供することであって、各ゾーンは、それ自体の計算資源を有し、
−１または双方のゾーンに置かれたオブジェクトを提供することと、
−オブジェクトの物理的な挙動をシミュレートすることであって、シミュレーションは、上述の第１および第２のゾーンのうちのそれぞれの計算資源によって実行されることを備える。
【００１３】
方法は、以下のうちの１または複数を備えることができる。
−オブジェクトを提供するステップであって、オブジェクトのインスタンスは、オブジェクトが置かれた各ゾーンに対して計算され、オブジェクトの計算されたインスタンスは、同一であることと、オブジェクトの物理的な挙動をシミュレートするステップは、オブジェクトのインスタンスにリンクされた物理的な状態に従って実行されること、
−提供するステップの後、第１のゾーンと第２のゾーンとの間の情報を交換するステップであって、交換される情報は、一方のゾーン内のオブジェクトの物理的な状態および他方のゾーン内におけるオブジェクトの存在または不在を少なくとも含むことと、
−提供するステップの後、オブジェクトが双方のゾーンに置かれていると判定するステップと、オブジェクトの到着ゾーンである双方のゾーンのうちの一方が、オブジェクトが到着ゾーン内に完全には入っていないことを確認することによって、オブジェクトの出発ゾーンである他方のゾーン内におけるオブジェクトの存在を計算するステップと、出発ゾーン内におけるオブジェクトの存在を示す情報を、到着ゾーンから出発ゾーンに交換するステップと、
−提供するステップの後、オブジェクトがもはやゾーンのうちの一方に置かれていないと判定するステップと、オブジェクトの到着ゾーンであるゾーンのうちの一方が、オブジェクトが到着ゾーン内に完全には入っていないことを確認することによって、オブジェクトの出発ゾーンである他方のゾーン内におけるオブジェクトの不在を計算するステップと、出発ゾーン内におけるオブジェクトの不在を示す情報を、到着ゾーンから出発ゾーンに交換するステップと、出発ゾーンによって出発ゾーン内のオブジェクトのインスタンスをキル(kill)するステップと、
−提供するステップの後、オブジェクトが、オブジェクトの到着ゾーンであるゾーンのうちの一方に入っていると判定するステップと、出発ゾーンである他方のゾーンが、オブジェクトが出発ゾーン内に完全には入っていないことを確認することによって、到着ゾーン内におけるオブジェクトの存在を計算するステップと、到着ゾーン内におけるオブジェクトの存在を示す情報を、出発ゾーンから到着ゾーンに交換するステップと、到着ゾーンによってオブジェクトのインスタンスを作成するステップと、
−第１のゾーンと第２のゾーンとの間の情報を交換するステップは、第１のゾーンと第２のゾーンとの間の同期通信チャネルを通じて実行されることと、
−第１のゾーンと第２のゾーンとの間の情報を交換するステップは、第１のゾーンと第２のゾーンとの間の非同期通信チャネルを通じて実行されることと、
−第１のゾーンと第２のゾーンとの間の情報を交換するステップは、第１のゾーンと第２のゾーンとの間の信頼性のある通信チャネルを用いて実行されることと、
−第１のゾーンと第２のゾーンとの間の情報を交換するステップは、第１のゾーンと第２のゾーンとの間の信頼性のない通信チャネルを用いて実行されることと、
−信頼性のない通信チャネルは、ユーザデータグラムプロトコルを使用すること。
【００１４】
本発明は、命令を備えるコンピュータプログラムをさらに提案することであって、コンピュータプログラムは、コンピュータによって実行される命令を備えて、命令は、本発明の方法のステップを実行するように適応される。
【００１５】
本発明は、上記のコンピュータプログラムが記録されたコンピュータ可読記憶媒体をさらに提案する。
【００１６】
本発明は、複数のゾーンに分割された３Ｄシーンの位相的に隣接する少なくとも第１のゾーンおよび第２のゾーンを記憶し、および１または双方のゾーン内にオブジェクトを記憶するための記憶システムと、本発明に従って、オブジェクトの物理的な挙動をシミュレートするための処理ユニットとを備えるコンピュータ化システムをさらに提案する。
【図面の簡単な説明】
【００１７】
これより本発明の実施形態を、限定されない例を用いて、および添付図面を参照して説明する。
【図１】本発明における方法の例を示すフローチャートである。
【図２】図１のステップ１４０の例を示す図である。
【図３】図１のステップ１５０の例を示す図である。
【図４】図１のステップ１６０の例を示す図である。
【図５】複数のゾーンに分割された３Ｄシーンの例を示す図である。
【図６】図５の３Ｄシーンの別図である。
【図７】２つのゾーン間の情報を交換する例を示す図である。
【図８】コンピュータ化システムの例を示す図である。
【発明を実施するための形態】
【００１８】
複数のゾーンに分割された３次元（３Ｄ）シーンにおける少なくとも１つのオブジェクトの物理的な挙動をシミュレートするための方法を提案する。３Ｄシーンは、現実世界の環境をシミュレートすることができる。３Ｄシーンは、１または複数のオブジェクト、例えば、３Ｄモデル化オブジェクトを備える。方法は、１または双方のゾーンに置かれたオブジェクトを提供することを備える。方法は、オブジェクトの物理的な挙動をシミュレートすることを備える。物理的な挙動とは、オブジェクトが３Ｄシーンにおいて、他のオブジェクトがもしあれば、それとどのように対話するかを意味する。オブジェクトの物理的な挙動のシミュレーションは、上述の第１および第２のゾーンのうちのそれぞれの計算資源によって実行される。従って、オブジェクトが置かれた各ゾーンの計算資源は、シミュレーションに寄与する。
【００１９】
このような方法は、３Ｄシーンをアドホックにカスタム化することまたはその特性に対する制約を課すことをせずに、３Ｄシーンにおけるオブジェクトの物理的な挙動のシミュレーションを改善する。実際に、第１のゾーンから第２のゾーンへの通過が継続的なやり方、即ち、シームレスに実行されるように、シミュレーションは、オブジェクトが置かれた１または複数のゾーンによって分担して行われる。結果として、オブジェクトが置かれたゾーンのうちの１つによるシミュレーションへの影響がなくなり、従って、物理法則をオブジェクトに継続的に適用することができる。従って、シミュレーションが改善され、つまり、シミュレーションがより現実的になる。
【００２０】
方法は、コンピュータ実装される。これは、方法のステップ（またはほぼすべてのステップ）が、少なくとも１つのコンピュータまたはコンピュータ化されたシステムによって実行されることを意味する。例において、方法のステップの少なくとも一部のトリガは、ユーザとコンピュータとの対話を通じて実行することができる。要求されるユーザとコンピュータとの対話レベルは、予測される自動性のレベルによって決まり、そしてユーザの望みを実装する必要性とのバランスを取ることができる。例において、このレベルは、ユーザ定義および／または事前定義とすることができる。
【００２１】
例えば、１または双方に置かれたオブジェクトを提供するステップを、ユーザ選択に基づいて実行することができる。ユーザは、キーボード、マウス、スタイラスなどの、ハプティックデバイスを経由して選択を実行できる。例えば、２つボタンのマウスでは、左側のボタンは、シーンリストの中からシーンを選択するために使用することができる。システムは、デフォルトでオブジェクトを特定し、そしてオブジェクトを３Ｄシーンの１または複数のゾーンに置くこともできる。即ち、オブジェクトの提供およびロケーションは、ユーザ選択を要求することをせずに実行される。
【００２２】
本方法のコンピュータ実装の典型的な例は、メモリおよびプロセッサを備えるシステムを用いて方法を実行することである。データベースを記憶するメモリは、そのような記憶に適した任意のハードウェアにすぎない。プロセッサを計算ユニットと呼ぶこともできる。このようなシステムは、現実世界のシミュレーションアプリケーションのコンテキストにおいて、スケーラブルでシームレスで効率的な３Ｄシーンのリアルタイムシミュレーションを提供する。当該システムは、３Ｄシーン、第１および第２のゾーン、および３Ｄシーンにおける１または複数のオブジェクトを表示するのに適したグラフィカルユーザインターフェース（ＧＵＩ）をさらに備えることができる。ＧＵＩは、メモリおよびプロセッサに接続される。
【００２３】
「データベース」とは、検索および取得のために体系化されたデータの任意の集合（即ち、情報）を意味する。メモリに記憶される場合、データベースをコンピュータによって高速に検索および取得できるようにする。データベースは、実際に、さまざまなデータ処理動作とともにデータの記憶、検索、変更、および削除を促進するように構造化されている。データベースは、レコードに細分化することができるファイルまたはファイルのセットから構成され、それぞれのレコードは、１または複数のフィールドから構成される。フィールドは、データ記憶の基本単位である。ユーザは、主にクエリを通じてデータを検索できる。キーワードを使用し、そしてコマンドをソートして、ユーザは、使用しているデータベース管理システムのルールに従って、特定のデータ集計に対するレポートを検索または作成するために多数のレコードのフィールドを高速に探索し、再配置し、グループ化し、そして選択することができる。
【００２４】
方法の場合、データベースは、複数のゾーン、例えば、位相的に隣接する第１および第２のゾーンに分割された３次元シーンを記憶できる。データベースは、１または複数のオブジェクトをさらに記憶でき、そしてオブジェクトをシーンとは独立して記憶できる。データベースは、システムによって実行される命令を備えるコンピュータプログラムをさらに備えることができる。命令は、本方法のステップを実行するように適応される。
【００２５】
方法は、概してオブジェクトを操作する。オブジェクトは、データベースに記憶されたデータによって定義される任意のオブジェクトである。さらに言うと、「オブジェクト」という表現は、データそのものを指す。システムのタイプに従って、オブジェクトを異なる種類のデータによって定義できる。システムは、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、および／またはＰＬＭシステムのうちの任意の組み合わせであってよい。そのような異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。それよって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＣＡＭデータ、ＣＡＥデータとも言える。しかしながら、このようなシステムは、このようなシステムの任意の組み合わせに対応するデータによってオブジェクトを定義できるので、互いに排他的ではない。システムは、従って、以下に提供されるシステムの定義から明らかであるように、ＣＡＤシステムとＰＬＭシステムとの双方になることもある。システムは、オブジェクトがユーザアクションに基づいて操作されるＭＭＯまたはＭＭＯＧになることもある。
【００２６】
ＣＡＤシステムとは、ＣＡＴＩＡ（登録商標）などの、モデル化オブジェクトのグラフィック表現に基づいてモデル化オブジェクトを設計するのに少なくとも適した任意のシステムを意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトの表現を可能にするデータを備える。ＣＡＤシステムは、例えば、エッジまたは線、ある場合では面または表面を使用して、ＣＡＤモデル化オブジェクトの表現を提供できる。線、エッジまたは表面を、例えば、ＮＵＲＢＳ(Non-Uniform Rational B-Splines)などの、さまざまな方法で表現できる。詳細には、ＣＡＤファイルは、形状を生成できる仕様を包含し、次々に生成される表現が可能となる。モデル化オブジェクトの仕様を単一のＣＡＤファイルまたは複数のＣＡＤファイルに記憶することができる。ＣＡＤシステムのモデル化オブジェクトを表現するファイルの典型的なサイズは、１部品当たり１メガバイトの範囲内である。そしてモデル化オブジェクトは、典型的には、数千から成る部品のアセンブリとすることができる。
【００２７】
ＣＡＤのコンテキストにおいて、モデル化オブジェクトは、典型的には、３Ｄモデル化オブジェクトとすることができ、例えば、部品または部品のアセンブリ、場合によっては製品のアセンブリなどの、製品を表現する。「３Ｄモデル化オブジェクト」とは、その３Ｄ表現を可能にするデータによってモデル化される任意のオブジェクトを意味する。３Ｄ表現は、部品をあらゆる角度から見ることを可能にする。例えば、３Ｄモデル化オブジェクトが３Ｄ表現されると、その軸を操作して任意に回転させ、またはその表現が表示されている画面の軸を任意に回転させることができる。これは、特に、３Ｄにモデル化されていない２Ｄアイコンを除外する。３Ｄ表現の表示は、設計を容易にする（即ち、統計的に、設計者が自分達の仕事を完成する速度が上がる）。これは、製品の設計が製造工程の一部であるので、産業における製造工程を加速させる。
【００２８】
ＣＡＤシステムは、履歴ベースとすることができる。この場合、モデル化オブジェクトは、幾何学的特徴の履歴を備えるデータによってさらに定義される。モデル化オブジェクトは、実際に、生身の人間（即ち、設計者／ユーザ）が標準のモデリング機能（例えば、押し出し、回転、カット、および／またはラウンドなど）および／または標準のサーフェシング機能（例えば、スイープ、ブレンド、ロフト、フィル、変形、スムージングおよび／またはその他）を使用することによって設計される。このようなモデリング機能をサポートする多くのＣＡＤシステムは、履歴ベースのシステムである。これは、設計特徴の履歴の作成が、典型的には、入力リンクおよび出力リンクを通じて前述の幾何学的特徴を結合する非巡回データフローを介して保存されることを意味する。履歴ベースのモデリングパラダイムは、８０年代当初からよく知られている。モデル化オブジェクトは、２つの永続的データ表現、即ち履歴とＢ−ｒｅｐ（境界表現）とによって記述される。Ｂ−ｒｅｐは、履歴で定義された計算結果である。モデル化オブジェクトが表現される時にコンピュータの画面上に表示される部品の形がＢ−ｒｅｐ（のテッセレーション）である。部品の履歴は、設計意図である。基本的に、履歴は、モデル化オブジェクトに行われた動作に対する情報を集める。Ｂ−ｒｅｐを履歴と一緒に保存して、複雑な部品を表示しやすくすることができる。設計意図に従って部品の設計変更ができるようにするために、履歴をＢ−ｒｅｐと一緒に保存できる。
【００２９】
ＰＬＭシステムとは、物理的な製造品を表現するモデル化オブジェクトの管理に適した任意のシステムを意味する。ＰＬＭシステムにおいて、モデル化オブジェクトは、従って、物理的オブジェクトの製造に適したデータによって定義される。このようなデータは、典型的には、次元値および／または許容値とすることができる。オブジェクトを間違いなく製造する場合、実際にこのような値を有する方がよい。
【００３０】
ＣＡＥシステムとは、モデル化オブジェクトの物理的な挙動の分析に適した任意のシステムを意味する。ＣＡＥシステムにおいて、モデル化オブジェクトは、従って、そのような動きの分析に適したデータによって定義される。このデータは、典型的には、挙動の特徴のセットとすることができる。例えば、ドアに対応するモデル化オブジェクトを、ドアが軸の回りを回転することを示すデータによって定義することができる。
【００３１】
図８は、クライアントコンピュータシステム、例えば、ユーザのワークステーションを示す。
【００３２】
クライアントコンピュータは、内部通信バス１０００に接続されたＣＰＵ１０１０と、さらにそのＢＵＳに接続されたＲＡＭ１０７０とを備える。クライアントコンピュータは、ＢＵＳに接続されたビデオランダムアクセスメモリ１１００と関連付けられたＧＰＵ(Graphical Processing Unit)１１１０をさらに備える。ビデオＲＡＭ１１００は、フレームバッファとしても当業者に知られている。マスストレージデバイスコントローラ１０２０は、ハードドライブ１０３０などの、マスメモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形に具体化するのに適したマスメモリデバイスは、あらゆる形態の不揮発性メモリを含み、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリなどの、半導体メモリデバイスと、内部ハードディスクおよびリムーバブルディスクなどの、磁気ディスクと、光磁気ディスクと、ＣＤ−ＲＯＭディスク１０４０とを含む。前述のいずれのメモリも、特別に設計されたＡＳＩＣ(application-specific integrated circuits)を補完するか、またはそれに組み込むことができる。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの、ハプティックデバイス１０９０を含むこともできる。カーソル制御デバイスがクライアントコンピュータで使用されることによって、ユーザがカーソルをディスプレイ１０８０の望ましい任意の場所に選択的に位置付けることが可能になる。さらに、カーソル制御デバイスによって、ユーザは各種コマンドを選択し、そして制御信号を入力できるようになる。カーソル制御デバイスは、制御信号をシステムに入力するためのいくつかの信号生成デバイスを含む。典型的には、カーソル制御デバイスは、マウスとすることができ、マウスのボタンは、信号を生成するために使用される。
【００３３】
コンピュータプログラムは、コンピュータによる命令を備えることができ、その命令は、上記のシステムに上記の方法を実行させるための手段を備える。本発明を、例えば、デジタル電子回路に実装するか、あるいはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせに実装できる。本発明の装置は、プログラム可能なプロセッサによって実行されるマシン可読記憶デバイスに有形に具体化されるコンピュータプログラム製品に実装されてもよいし、本発明の方法のステップは、入力データで動作して出力を生成することによって本発明の機能を実行する命令のプログラムを実行するプログラム可能なプロセッサによって実行されてもよい。
【００３４】
本発明をプログラム可能なシステムで実行可能な１または複数のコンピュータプログラムに好適に実装することができる。プログラム可能なシステムは、データおよび命令をデータ記憶システムから受信してデータ記憶システムに送信するために接続された少なくとも１つのプログラム可能なプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む。アプリケーションプログラムを、ハイレベルの手続き型プログラミング言語もしくはオブジェクト指向プログラミング言語か、または必要に応じてアセンブリ言語もしくは機械語に実装できる。いずれの場合も、それらの言語は、コンパイラ型言語またはインタープリタ型言語とすることができる。
【００３５】
図１のフローチャートを参照して、これより複数のゾーンに分割された３Ｄシーンにおける少なくとも１つのオブジェクトの物理的な挙動をシミュレートする方法の例について説明する。
【００３６】
ステップ１００において、位相的に隣接する少なくとも第１のゾーンおよび第２のゾーンが提供される。実際に、第１のゾーンおよび第２のゾーンは、複数のゾーンに分割された３Ｄシーンの一部である。ゾーン条件は、３Ｄシーンのサーフェスを指定することができる。ゾーン条件は、３Ｄシーンのボリュームも指定することができる。３Ｄシーンの全空間が複数のゾーン、例えば、少なくとも第１のゾーンおよび第２のゾーンに分割されるように、第１のゾーンおよび第２のゾーンは位相的に隣接している。例えば、３Ｄシーンによって定義された全ボリュームがボックスに含まれるように、３Ｄシーンによって定義されたボリュームを位相的に隣接する、例えば、キューブ(cubes)などのボックスのセットに分割できる。別の例として、３Ｄシーンは、オブジェクト（例えば、人間、車）が動く地面を備えることができ、そして地面を、隣接するいくつかのポリゴンゾーンに分割することができる。
【００３７】
３Ｄシーンの各ゾーンは、各ゾーン自身の計算資源を有する。実際に、ＣＰＵの計算電力の割合が各ゾーンに提供される。各ゾーンに対するこの割合は、同じであってもよいし、異なっていてもよい。ゾーンの計算資源は、典型的には、ゾーンに置かれたオブジェクトをシミュレートするために使用される。実際に、オブジェクトは、計算資源のコストを生成する。即ち、各オブジェクトは、ゾーンにおいて実行されるために計算資源の処理時間を要求する。
【００３８】
３Ｄシーンは、オブジェクト（もしあれば）間の空間関係が記述される空間である。そのシーンは、少なくとも１つのオブジェクトで構成され、そしてそのオブジェクトは、モデル化オブジェクトまたは３Ｄモデル化オブジェクトとすることができるが、これらに限定されない。３Ｄモデル化オブジェクトは、３Ｄ空間におけるオブジェクトの記述である。３Ｄシーンは、座標を用いて３Ｄ空間のあらゆるポイントを記述して形状を数学的に表現できる、物理的世界のモデルである。３Ｄシーンは、典型的には、オブジェクト間の現実的な対話がシミュレートされた、現実世界をシミュレートしたものである。現実的な対話という表現は、シミュレートされる対話が、現実世界、例えば、力および作用（重力、接触力）のような物理法則や、情報の流れ、制御イベントのような制御法則の対話を反映するという意味である。１または複数のオブジェクトは、３Ｄシーン内において発展し、シミュレートされる現実世界の法則、例えば、２つのオブジェクトは互いに交差することができないといった法則に従う。３Ｄシーンは、特定のシナリオを実行でき、そこでのシナリオは、オブジェクトの予測可能な対話を最も一般的に記述した説明である。言い換えれば、シナリオは、代替可能な世界または状況の実装を評価する。例えば、新しい素材の車への影響を分析する。シナリオは、ユーザによる定義が可能であることを理解されたい。
【００３９】
次に、ステップ１１０において、オブジェクトが提供される。これは、オブジェクトが３Ｄシーンにおいて選択され、そしてロードされると言うことである。オブジェクトの選択は、ユーザによって実行されてもよいし、本発明を実行するシステムによって行われてもよい。オブジェクトの選択は、当該技術分野で周知の形式で実行される。ロードとは、方法を実行するシステムが使用可能であることを意味する。
【００４０】
オブジェクトは、第１のゾーンおよび第２のゾーンのうちの１つに置かれるか、または第１のゾーンと第２のゾーンとの双方に置かれる。オブジェクトのどのポイントもゾーンの外になければ、そのオブジェクトは、１つのゾーンに置かれる。オブジェクトの少なくとも１つのポイントが第１のゾーンの外にあり、そして第２のゾーンの内にあるのであれば、そのオブジェクトは、２つのゾーンに置かれる。オブジェクトの少なくとも１つのポイントが２つのゾーン間の共通の境界に置かれるイベントにおいて、２つのゾーンは、位相的に隣接しており、オブジェクトは、１つのゾーンのみに置かれていると見なされるか、または双方のゾーンに置かれていると見なされる。これは、規則(convention)であり、そして例えば、ユーザによる構成が可能である。オブジェクトのポイントは、オブジェクトの境界の内側または境界の一部である、３Ｄシーンの任意のポイントである。
【００４１】
次に、ステップ１２０において、オブジェクトのインスタンスは、オブジェクトが置かれた各ゾーンに対して計算される。オブジェクトのインスタンス化は、当技術分野で周知の形式で実行される。インスタンス化は、ユーザによって設定されたパラメータに従って実行することができるか、または自動的に設定することができる。このようなインスタンス化パラメータは、オブジェクトの選択された３Ｄメッシュの複雑度と、テクスチャの精度と、３Ｄシーンにおけるオブジェクトの反射および陰影と、他の物理的パラメータおよびプロパティとであってよいが、これらに限定されない。オブジェクトのインスタンス化は、所与のオブジェクトが３Ｄシーンに置かれている間、即ち、第１のゾーンおよび／または第２のゾーンに置かれている間に実行することができることを理解されたい。
【００４２】
従って、ステップ１２０において、オブジェクトのインスタンスは、計算されて、そのオブジェクトが置かれている同じゾーンに置かれるか、またはオブジェクトの２つのインスタンスが計算され、そして１つのインスタンスは、そのオブジェクトが置かれている各ゾーンに置かれる。
【００４３】
オブジェクトが第１のゾーンおよび第２のゾーンに置かれたイベントにおいて、オブジェクトのインスタンスは、各ゾーンに対して計算される、即ち、２つのインスタンスが計算され、そして計算されたインスタンスは、同一である。同一という用語は、オブジェクトのそれぞれのインスタンスのそれぞれの物理的状態が同一であることを含む。これは、インスタンスが、ステップ１１０における所与のオブジェクトから得られた複製であると言うことである。オブジェクトの物理的状態は、３Ｄシーンに対するオブジェクトの物理的パラメータの設定である。３Ｄシーンは、従って、仮想環境である。物理的パラメータという表現および物理的プロパティという表現は、双方のゾーンにおいて同一である。オブジェクトの物理的パラメータは、３Ｄシーンにおけるオブジェクトの位置、３Ｄシーンにおけるオブジェクトの速度とすることができるが、これらに限定されない。オブジェクトの物理的パラメータは、典型的には、当該技術分野で周知のように、古典的な手順によって定義される。
【００４４】
実際に、オブジェクトの物理的状態を、オブジェクトソルバによって維持することができ、オブジェクトのソルバは、コンピュータプログラムまたはソフトウェアライブラリなどの、１つのソフトウェアであり、記述の問題を取り上げて、その問題の解決方法を計算する。オブジェクトソルバによってオブジェクトの物理的状態を維持することは、ソルバがインスタンスを計算するためにオブジェクトの物理的状態を使用するので有利である。オブジェクトの物理的状態を、例えば、シミュレートされた物理特性に従った正しい大きさおよび単位システムを備えるデータベクトルによって表現できるが、これに限らない。
【００４５】
オブジェクトの物理的挙動のシミュレーションを、オブジェクトのインスタンスにリンクされた物理的な状態に従って実行できる。これは、オブジェクトのインスタンスの物理的パラメータを設定する物理的パラメータがシミュレーションを実行するために使用されることを意味する。オブジェクトの物理的挙動のシミュレーションは、同一の物理的状態を有するオブジェクトの１または複数のインスタンスから作られる。これにより、物理法則をオブジェクトに継続的に適用することができるように、ゾーンが通過する影響を好適に回避できるようになる。
【００４６】
物理的状態がオブジェクトのインスタンスにリンクされることは、物理的状態とオブジェクトのインスタンスとの間の接続または関係が存在することを意味する。典型的には、この関係は、インスタンスを包含するゾーンに接続されたソルバで処理することができる。物理的情報がオブジェクト内において、例えば、オブジェクトのデータを用いて記憶されるのであれば、オブジェクトのインスタンス間の物理的状態を交換および共有することがより簡単になるので、物理的状態をオブジェクトにリンクすることは好適である。従って、計算されたインスタンスを同一に維持することが促進される。さらに、ソルバは同期的にスケジュールされる必要がなく、従って、同期化のメカニズムの困難な実装が回避される。
【００４７】
実際に、少なくとも一方のゾーン内のオブジェクトの物理的状態および他方のゾーン内におけるオブジェクトの存在または不在を含む情報を、第１のゾーンと第２のゾーンとの間で交換することができる。言い換えれば、当該情報はデータを備え、それらのデータは、少なくとも第１のゾーン内のオブジェクトの物理的状態を表し、そして少なくとも他方のゾーン内におけるオブジェクトの存在または不在を示す。
【００４８】
第１のゾーンと第２のゾーンとの間の情報の交換を、第１のゾーンと第２のゾーンとの間の非同期通信チャネルを介して実行することができる。非同期通信チャネルは、開始ビットおよび停止ビットを使用して先頭ビットを知らせる、非同期伝送を備えることができる。非同期通信チャネルは、双方の通信側で同期化を好適に回避するため、従って、実装し易い。詳細には、ソルバは、同期的にスケジュールされる必要がない。
【００４９】
第１のゾーンと第２のゾーンとの間の情報の交換を、第１のゾーンと第２のゾーンとの間の信頼性のある通信チャネルを用いて実行することもできる。例えば、通信チャネルはＩＰプロトコルによって定義され、そしてトランスポートシステムは、ＴＣＰ(Transmission Control Protocol)プロトコルによって定義される。信頼性は、ＯＳＩ(Open Systems Interconnection)モデルのどの層においても有し得ることを理解されたい。ゾーンが同じノードで計算されて同期されるので、遅延やデータ損失が全くなく、従って、数値ノイズが最小になる。
【００５０】
第１のゾーンと第２のゾーンとの間の情報の交換を、第１のゾーンと第２のゾーンとの間の信頼性のない通信チャネルを用いて実行することもできる。配信される情報が損失し、重複し、遅延し、または送信側または受信側が認識することなくバラバラに配信されるおそれがあるので、当該情報の配信は信頼性がないとされる。例えば、通信チャネルはＩＰプロトコルにより定義され、そしてトランスポートシステムは、ＵＤＰ(User Datagram Protocol)プロトコルにより定義されることができる。信頼性のない通信チャネルは、従って、ＵＤＰプロトコルを使用することができる。非信頼性は、ＯＳＩ(Open Systems Interconnection)モデルのどの層においても有し得ることを理解されたい。非信頼性通信の使用は、帯域幅を好適に節約する。さらに、メッセージの偶発的損失によって生じる局所摂動は、ソルバによってスムーズになり、従って、局所摂動はほとんど視認することができない。
【００５１】
ゾーン間の情報の交換は、好適には、ゾーンの隣接ゾーンのみに行われる。言い換えれば、メッセージを、位相的に隣接するゾーン間でのみ交換することができる。
【００５２】
さらに、ゾーンは、通常アクノレッジを予期することなく他のゾーンと情報を交換する。これは、例えば２つのゾーン間の情報の交換が、信頼性のない通信チャネルを用いて実行されると仮定される場合の後述の図７の説明において示される。
【００５３】
これより図５を参照して、位相的に隣接する複数のゾーン５１、５２、５３、５４、５５に分割された３Ｄシーンの例を示す。３Ｄシーンは仮想世界を表し、そしてこの仮想世界の領域は隣接するゾーンにパーティション分けされる。各ゾーンは計算資源、例えばＣＰＵによって提供される計算資源の一部によって管理される。計算資源は、適切なソルバを使用してゾーン５４に置かれたすべてのオブジェクト６０、６１、６２、６３の即時の物理的状態のリアルタイム解決を継続的に実行できる。この例において、オブジェクト５６の物理的状態は、例えば、剛体の力学に従ってオブジェクトの挙動をレンダリングするために、ゾーン５４のこのオブジェクトの即座の直交座標および角度位置／速度で構成することができる。これを物理学の他の分野で一般化することができることを理解されたい。
【００５４】
再び図１を参照して、ステップ１３０において、オブジェクトが３Ｄシーンに置かれる場所が判定される。実際に、ステップ１１０で提供されたオブジェクトは、３Ｄシーン中を移動することができ、この移動はオブジェクトのロケーションが変更されたことを含む。いくつかのケース１４０，１５０、１６０は、オブジェクトが移動しかたどうかおよびオブジェクトがゾーンを変更したかどうかによって異なるように企図される。
【００５５】
これより図６を参照すると、図５の３Ｄシーンとは別の図が示され、図６においてオブジェクト６０、６１、６２、６３は移動し、従って、新しいロケーションを有する。
【００５６】
オブジェクト６０は、なおもゾーン５４に置かれている。従って、オブジェクト６０は、ゾーン５４で単独で発展するとされる。位置および速度などの、オブジェクトの物理的状態は、オブジェクト６０自体のソルバによって完全に判定される。これは、共通シミュレーションの典型的な状況である。
【００５７】
オブジェクト６１は、そのポイントのうちの１つを境界５９上に有する。本例において、オブジェクト６１はゾーン５４のみに局在化されていると見なされる。選択される規則によって、ゾーン５４およびゾーン５３に局在化されていると見なすことが可能であることを理解されたい。オブジェクト６０に対して、オブジェクト６１の物理的状態はそのソルバによって完全に維持される。
【００５８】
オブジェクト６２は、少なくとも１つのポイントをゾーン５４に有し、および少なくとも１つのポイントをゾーン５５に有する。従って、オブジェクト６２はゾーン５４とゾーン５５との双方に置かれる。オブジェクト６２は、従って、位相的に隣接するゾーン５４とゾーン５５との間の境界５８を完全には通過していない。オブジェクト６２は、境界５８上にあると言える。オブジェクトは、最初に出発ゾーン（ゾーン５４）と呼ばれる第１のゾーンに完全には置かれておらず、移動した結果、到着ゾーン（ゾーン５５）と呼ばれる第２のゾーンに入った理由によりこの状況が生じる。この状況は、図１のケース１４０を表した図２に示される。
【００５９】
これより図２を参照し、ステップ１４２において、オブジェクトが第１のゾーンおよび第２のゾーンに置かれている、即ち、オブジェクトが双方のゾーンに置かれていると判定する。これは、オブジェクトが置かれた各ゾーンによって実行される。即ち、各ゾーンは、オブジェクトが各ゾーン上に置かれていることを示す。
【００６０】
次に、ステップ１４４において、オブジェクトの出発ゾーン内におけるオブジェクトの存在が、オブジェクトの到着ゾーンによって計算される。到着ゾーンによる、オブジェクトの出発の検出が、到着ゾーンと関連付けられた専用ソルバによって実行されることが可能であることを理解されたい。この検出は、オブジェクトが到着ゾーン内に完全には入っていないことを確認することによって実行される。ステップ１４２とステップ１４４とが密接に関係することを理解されたい。
【００６１】
次に、ステップ１４６において、出発ゾーン内におけるオブジェクトの存在を示す情報が到着ゾーンから出発ゾーンに交換される。言い換えれば、到着ゾーンは、到着ゾーン内におけるオブジェクトの存在が到着ゾーンによって検出されたことを示す、１または複数のメッセージを出発ゾーンに送信する。当該検出が到着ゾーンによって行われるので、プロセスの堅牢性が改善される。これは、図７の説明により明らかになるであろう。
【００６２】
実際に、インスタンスの作成は、それぞれの第１のゾーンと第２のゾーンとの双方のソルバによって送られた２つの結果からのオブジェクトの物理的状態を調停することを備えることができる。調停プロセスによって、好適には、オブジェクトの２つの同一のインスタンスを得ることができるようになる。調停プロセスは、オブジェクトの各インスタンスのソルバによって実行されることが可能である。調停プロセスの後、双方のゾーンは、それらが共有するオブジェクトの物理的状態に対する同一の評価を一貫して得なければならない。到着ゾーン内における到着ゾーンによってオブジェクトのインスタンスが作成される前に、調停を好適に実行できることを理解されたい。
【００６３】
再び図６を参照すると、オブジェクト６３は、最初完全にゾーン５４に置かれ、ゾーン５４を出て、そして移動の結果として現在単独でゾーン５５に置かれている。従って、オブジェクトは、出発ゾーン５４を出て、そして到着ゾーン５５に完全に入った。この状況は、図１のステップ１５０を表した図３に示される。
【００６４】
これより図３を参照すると、ステップ１５２において、オブジェクトがもはや第１のゾーンにも第２のゾーンにも置かれていないと判定される。この判定は、オブジェクトが置かれていた各ゾーンによって実行される。
【００６５】
次に、ステップ１５４において、オブジェクトの出発ゾーン内におけるオブジェクトの不在が、オブジェクトの到着ゾーンによって計算される。到着ゾーンによる、オブジェクトの出発の検出が、到着ゾーンと関連付けられた専用ソルバによって実行されることが可能であることを理解されたい。この検出は、オブジェクトが到着ゾーン内に完全に入っていることを確認することによって実行される。即ち、検出によりオブジェクトの各ポイントが到着ゾーン内に置かれていることを確認する。
【００６６】
次に、ステップ１５６において、出発ゾーン内におけるオブジェクトの不在を示す情報が、到着ゾーンから出発ゾーンに交換される。言い換えれば、到着ゾーンは、出発ゾーン内におけるオブジェクトの不在が到着ゾーンによって検出されたことを示す、１または複数のメッセージを出発ゾーンに送信する。
【００６７】
次に、ステップ１５８において、出発ゾーンは、出発ゾーン内のオブジェクトのインスタンスをキルする。インスタントをキルするとは、インスタンスがゾーン、ここでは、出発ゾーンから抹消されるという意味である。従って、インスタンスの抹消は、到着ゾーンによって出発ゾーンに送信されたステップ１５４の結果、即ち、到着ゾーンが、オブジェクトの出発ゾーン内におけるオブジェクトの不在を計算したことを示す１または複数のメッセージの結果として行われる。
【００６８】
実際に、インスタンスの抹消は、対応するオブジェクトのインスタンスの物理的状態がソルバにおいて廃棄されることを備えることができる。例えば、これより図６を参照すると、到着ゾーン５４内のオブジェクト６３のインスタンスのソルバは、オブジェクトが出発ゾーン内において不在であることを到着ゾーンが計算した後に廃棄される、到着ゾーン５４内のオブジェクト６３のインスタンスのソルバ間で交換されるメッセージを廃棄する。これにより、これ以上存在するはずがないオブジェクトのインスタンスの物理的状態の情報に基づいて、到着ゾーン内のオブジェクトのインスタンスの物理的情報の変更を好適に回避できるようになる。実際に、出発ゾーンが自身のオブジェクトのインスタンスをキルすることができることを出発ゾーンに示すメッセージの伝送は、到着しない恐れがあるか、または遅延する恐れがある。従って、廃棄は到着ゾーン内のオブジェクトのインスタンスの物理的プロパティの安全なメカニズム提供する。さらに、廃棄によって、ソルバは無用なデータの計算から解放される。
【００６９】
再び図６参照すると、オブジェクト６２は、最初に、ゾーン５４に完全に置かれ、ゾーン５５に入り、そして現在ゾーン５４とゾーン５５との双方の間に置かれている。言い換えれば、オブジェクト６２は、ゾーン５４の１つの隣接ゾーン５５に侵入しており、境界５８はオブジェクトによって通過される途中である。この状況は、図１のステップ１６０を表した図４に示される。
【００７０】
図４を参照すると、ステップ１６２において、オブジェクトが、オブジェクトの到着ゾーンであるゾーンのうちの１つに入ろうとしていると判定される。この判定は、オブジェクトが置かれた各ゾーンによって実行される。即ち、各ゾーンは、オブジェクトが各ゾーンに置かれていることを示す。
【００７１】
次に、ステップ１６４において、オブジェクトが出発ゾーン内に完全には入っていないことを確認することによって、到着ゾーン内におけるオブジェクトの存在が出発ゾーンによって計算される。出発ゾーンによる、オブジェクトの到着の検出が、出発ゾーンと関連付けられた専用ソルバによって実行されることが可能であることを理解されたい。この検出は、オブジェクトの少なくとも１つのポイントが到着ゾーン内に置かれていることを確認することによって実行される。
【００７２】
次に、ステップ１６６において、到着ゾーン内におけるオブジェクトの存在を示す情報は、出発ゾーンから到着ゾーンに交換される。言い換えれば、出発ゾーンは、到着ゾーン内におけるオブジェクトの存在が出発ゾーンによって検出されたことを示す、１または複数のメッセージを到着ゾーンに送信する。
【００７３】
次に、ステップ１６８において、到着ゾーンは、出発ゾーン内のオブジェクトのインスタンスの状態と同様の状態のオブジェクトのインスタンスを作成する。これは、オブジェクトの同様のインスタンスが計算されるということである。
【００７４】
図１のプロセスの当該ステップにおいて、３Ｄシーンの１または複数のオブジェクトに対し、ケース１４０、１５０、または１６０が特定された。
【００７５】
次に、ステップ１７０において、オブジェクトの物理的な挙動がシミュレートされる。即ち、オブジェクトのインスタンスにリンクされた物理的状態に従って、オブジェクトの物理的な挙動が実行される。好適には、このシミュレーションは、オブジェクトのインスタンスにリンクされた物理的状態に従って実行される。
【００７６】
これより図７を参照すると、ゾーン５４とゾーン５５との、２つのゾーン間の情報交換の例が示されており、この例は図５および図６にも表されている。図７のシナリオにおいて、オブジェクト６３は、自身が置かれている出発ゾーン５４から、自身が最終的に完全に置かれる到着ゾーン５５に移動する。第１のゾーンから第２のゾーンへの移動は、６つの連続シーケンス（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）、（Ｅ）、（Ｆ）、および（Ｇ）において表される。図７の左側の部分は、出発ゾーン５４で見られるオブジェクト６３の位置を示し、一方、右側の部分は、到着ゾーン５５で見られるのと同じオブジェクトの位置を示す。オブジェクト６３は、到着ゾーン５５ではオブジェクト７４となることが分かる。
【００７７】
シーケンス（Ａ）において、オブジェクト６３は、ゾーン５４内のみに入っている。
【００７８】
次に、シーケンス（Ｂ）において、ゾーン５４は、オブジェクト６３がその隣接ゾーン５５と境界５８とにまたがって置かれていることを検出する。ゾーン５４は、オブジェクトが出発ゾーン内に完全には入っていないことを確認した。ゾーン５４は、その情報を到着ゾーンと交換し、そしていわゆる境界メッセージ(Border Message)であるメッセージ７０をゾーン５５に送信する。このメッセージ７０は、オブジェクトが境界にまたがっていることを明示的に通知する。さらに、出発ゾーンから到着ゾーンに交換された情報は、出発ゾーン内のオブジェクトの物理的状態をさらに含む。
【００７９】
次に、シーケンス（Ｃ）において、ゾーン５５は、境界メッセージ７０を受信する。メッセージの伝送に信頼性があると仮定すれば、２つの状況が生じる可能性がある。これらの２つの状況は、以下の通りである。
【００８０】
（ｉ）いずれのゾーン５５もオブジェクト６３を認識しない。このケースでは、ゾーン５５は、境界メッセージ７０において指定される物理的状態のオブジェクト６３のインスタンス７４を作成する。
【００８１】
（ii）いずれのゾーン５５もすでにオブジェクト６３がオブジェクト７４であると認識している。このケースでは、ゾーン５５は、受信された境界メッセージ７０内に包含された特定の物理的状態の情報を登録する。同時に、ゾーン５５は、オブジェクト７４が境界５８にまたがって置かれていることを検出し、そしてオブジェクトが境界にまたがっていることを通知する（即ち、ゾーン５５は、オブジェクトがゾーン５４内に入っていることをゾーン５５が検出したことをゾーン５４に通知する）境界メッセージ７２を、ゾーン５５内のオブジェクト７４の物理的状態と共にゾーン５４に送信する。
【００８２】
ゾーン５４は、オブジェクトが境界にまたがっていることをシーケンス（Ｃ）において再度検出することが分かる。オブジェクトが境界にまたがっている間、出発ゾーンと到着ゾーンとの双方は、境界メッセージ７０、７２を交換することを理解されたい。
【００８３】
次に、シーケンス（Ｄ）において、ゾーン５５は、オブジェクト７４がもはや隣接ゾーン５４に置かれていないと判定し、そしてなおもこのオブジェクトについての境界メッセージをゾーン５４から受信する。到着ゾーン５５は、削除メッセージ(Deletion Message)７５を出発ゾーン５４に送信する。この削除メッセージは、オブジェクトがもはや隣接ゾーン（５４）に置かれていないことを明示的に通知する。
【００８４】
次に、シーケンス（Ｅ）において、ゾーン５４は、削除メッセージ７５を受信し、そしてオブジェクト６３のインスタンスがまだ破壊されていない場合に、そのインスタンスをキルする。
【００８５】
次に、シーケンス（Ｆ）において、オブジェクト６３は、完全にゾーン５５に置かれており、即ち、ゾーン５５内にオブジェクト６３のインスタンスが１つのみが残る。
【００８６】
シーケンス（Ｃ）に戻り、これより、出発ゾーン５４と到着ゾーンとの間の情報の交換が信頼のない通信チャネルを用いて実行されると仮定する。従って、メッセージの偶発的損失が起こる恐れがある。２つのゾーン間のメッセージの放出は、オブジェクトが双方のゾーンで共有される限り反復的なプロセスであり、メッセージの損失の後、通常、同じ種類の別のメッセージが続くが、そのメッセージは、オブジェクトについてのより新しい状態データを有することに留意されたい。
【００８７】
（i）到着ゾーン５５が未知のオブジェクトについての境界メッセージ７０を損失する場合、それは、そのゾーン５５のいずれも次の境界メッセージを受信すると、付加遅延を有する同一のオブジェクトをインスタンス化するという意味である。
【００８８】
（ii）到着ゾーン５５が既知のオブジェクトについての境界メッセージ７０を損失する場合、このゾーンは、オブジェクトの物理的状態の調停リングに関する有益なデータをわずかに見逃し、従って、摂動を生成する。しかしながら、この摂動は、次の境界メッセージの受信で補完される。その状況は、到着ゾーンによって出発ゾーンに送信された境界メッセージ７２を損失する場合と同様であることを理解されたい。
【００８９】
（iii）削除メッセージ７５の損失の場合、ゾーン５４は、なおもオブジェクト６３のインスタンスを認識していて、従って、このオブジェクトについてのメッセージをゾーン５５に送信する。従って、次のシミュレーションステップにおいて、ゾーン５５は、ゾーン５４に削除メッセージを再度送信し、それが上手くいけば、オブジェクトを削除する。
【００９０】
次に、シーケンス（Ｇ）において、オブジェクト７４は完全にゾーン５５内に入り、そして当該物理的状態はそのゾーンの状態のみに依存する。
【００９１】
本発明による方法は、本発明を実装するシステムによって継続的に実行することができる。詳細には、位相的に隣接する少なくとも第１のゾーンおよび第２のゾーンを提供するステップと、１または双方のゾーンに置かれるオブジェクトを提供するステップの後に実行されるステップは、継続的に実行されてもよい。
【００９２】
従って、ゾーンに入るまたは出るオブジェクトについて互いに通知するために、メッセージはゾーン間で継続的に交換される。興味深いことに、その方法は、どのオブジェクトも３Ｄシーンの中で移動していない（例えば、どのオブジェクトも３Ｄシーンに提供されていない）ことが検出されると停止することが可能であり、そして１または複数のオブジェクトが３Ｄシーンの中で移動する（例えば、オブジェクトが３Ｄシーンに提供された）ことが検出されると再開始することが可能である。
【００９３】
従って、特定のゾーン内のオブジェクトの生成または削除が当該ゾーン自体によってではなく、むしろその隣接ゾーン（複数）によって、およびメッセージの時間の冗長性、即ち、メッセージが損失したとしても、次の同じ種類のメッセージによって補完されることによってトリガされるという事実によって、プロトコルの堅牢性が保証される。
【００９４】
本発明の好適な実施形態について説明した。発明の思想および発明の範囲から逸脱せずにさまざまな変更が可能であることが理解されよう。従って、他の実装も特許請求の範囲の範囲内である。
【図１】
2014123369.tif 000003
【図２】
2014123369.tif 000004
【図３】
2014123369.tif 000005
【図４】
2014123369.tif 000006
【図８】
2014123369.tif 000007
【図５】
2014123369.tif 000008
【図６】
2014123369.tif 000009
【図７】
2014123369.tif 000010
【外国語明細書】
2014123369000001.pdf