(57)【特許請求の範囲】
【請求項１】
３次元環境における誘導付きナビゲーションのためのコンピュータ実装方法であって、
１つ以上のコンピューティングデバイスによって、３次元環境内にバーチャルカメラのビューポイントからのパノラマ画像の第１の３次元表現を表示することと、
前記１つ以上のコンピューティングデバイスによって、第１のパノラマ画像に関連付けられたメタデータに基づいて、前記第１のパノラマ画像にリンクされた１つ以上の追加のパノラマ画像を識別することと、
前記１つ以上のコンピューティングデバイスによって、前記３次元環境内における、前記第１のパノラマ画像および前記１つ以上の追加のパノラマ画像の各々に対して視覚的表現に関連付けられた基準を満たす視覚的品質の領域を決定することと、
前記１つ以上のコンピューティングデバイスによって、視覚的品質の各領域に基づいて、前記第１のパノラマ画像と前記１つ以上の追加のパノラマ画像との間の進路に対する１つ以上のナビゲーション経路を生成することであって、各ナビゲーション経路は、前記ナビゲーション経路によって規定される空間の境界された体積における視覚的品質の前記領域内の前記バーチャルカメラの移動を制約するレンダリング表面を有する、ことと、
ナビゲーションフィレットが、無衝突区域を表し、かつ前記第１のパノラマ画像のうちの１つの中心に対する接触点の距離に従って、パラメータ化されるように、前記１つ以上のコンピューティングデバイスによって、前記１つ以上のナビゲーション経路のうちの異なるナビゲーション経路の間に衝突球体を接するように適合させることにより、前記１つ以上のナビゲーション経路の交差点の周囲に前記ナビゲーションフィレットを構築することと、
前記１つ以上の追加のパノラマ画像のうちの第２のパノラマ画像内のある位置への前記バーチャルカメラの所望の移動を示す入力イベントに応答して、前記１つ以上のコンピューティングデバイスによって、前記入力イベントに基づいて、前記１つ以上の追加のパノラマ画像のうちの前記第２のパノラマ画像に関連付けられた第２の位置に向かう、前記第１のパノラマ画像に関連付けられた第１の位置からの、前記無衝突区域内の前記進路に沿って、前記３次元環境内において前記バーチャルカメラを再配置することであって、前記移動は、たとえ前記入力イベントによって示された位置が前記ナビゲーション経路の外側であっても、前記ナビゲーション経路によって定義された空間の境界された体積内の視覚的品質の前記領域の外側での前記バーチャルカメラの移動を回避することを含む、ことと
を含む、方法。
【請求項２】
前記３次元環境内の前記領域を決定することは、
前記パノラマ画像の各々に関連付けられた深度地図に基づいて、前記第１のパノラマ画像および前記１つ以上の追加のパノラマ画像の各々に対してナビゲーション半径を計算することを含み、前記ナビゲーション半径は、前記３次元環境内における、前記パノラマ画像の各々に対する前記決定された領域を表す、請求項１に記載の方法。
【請求項３】
前記進路に沿った各パノラマ画像に対するナビゲーション球体および各パノラマ画像の前記計算されたナビゲーション半径を補間することに基づいて、各ナビゲーション経路の周囲にシェルを構築することをさらに含み、前記シェルは、前記３次元環境内における前記バーチャルカメラの移動に対する境界を規定する、請求項２に記載の方法。
【請求項４】
各それぞれのパノラマ画像内の画像オブジェクトに関連付けられた深度値に基づいて、前記第１のパノラマ画像および前記１つ以上の追加のパノラマ画像に対するポリゴンの３次元メッシュを生成することをさらに含む、請求項１に記載の方法。
【請求項５】
前記第１のパノラマ画像および前記１つ以上の追加のパノラマ画像は、前記３次元環境において、街路網に関連付けられている、請求項１に記載の方法。
【請求項６】
前記３次元環境において、前記関連付けられた街路網内の交差点において方向転換するための進路を決定することをさらに含む、請求項５に記載の方法。
【請求項７】
前記第１のパノラマ画像および前記１つ以上の追加のパノラマ画像は、地理的に位置指定されており、前記３次元環境内における、前記それぞれの第１および第２のパノラマ画像に関連付けられた前記第１および第２の位置は、地理的情報システム（ＧＩＳ）における地理的場所に対応している、請求項１に記載の方法。
【請求項８】
前記第１および第２のパノラマ画像の各々の中心に対応する、前記３次元メッシュにおける第１および第２の位置を決定することであって、前記第１および第２の位置は、前記第１および第２のパノラマ画像内の前記画像オブジェクトの正確なビューポイントに対応している、ことと、
前記第１および第２のパノラマ画像の各々の前記決定された視覚的品質の領域に基づいて、前記３次元メッシュにおいて、前記第１および第２のパノラマ画像の各々に対するナビゲーション半径を計算することと
をさらに含む、請求項４に記載の方法。
【請求項９】
前記バーチャルカメラが前記３次元環境内で移動される場合に、前記ナビゲーション経路の前記レンダリング表面を動的に更新することをさらに含む、請求項１に記載の方法。
【請求項１０】
前記移動させることは、
バーチャルカメラのビュー方向に基づいて、前記３次元環境における、前記第２のパノラマ画像に関連付けられた標的場所を決定することと、
前記第１のパノラマ画像に関連付けられた初期場所に対応する前記第１の位置から、前記決定された標的場所に対応する前記第２の位置に向かって、前記ナビゲーション経路内で前記バーチャルカメラを移動させることと、
前記バーチャルカメラが前記進路に沿って移動される場合に、前記バーチャルカメラの前記ビュー方向を前記標的場所に向けて整列させることであって、前記整列させることは、最小の補正角度に基づく、ことと
を含む、請求項１に記載の方法。
【請求項１１】
前記整列させることは、
前記進路に対する前記バーチャルカメラの前記ビュー方向の整列と、ビュー方向補正およびビュー位置補正の大きさのパラメータ化とに基づいて、前記バーチャルカメラが前記３次元環境内で移動される場合に、前記ビュー方向補正および前記ビュー位置補正を適用することをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記決定された標的場所は、前記第１および第２のパノラマ画像の中心である、請求項１０に記載の方法。
【請求項１３】
前記ビュー方向補正およびビュー位置補正の大きさは、ユーザ入力に基づいて、スムーズにパラメータ化される、請求項１１に記載の方法。
【請求項１４】
前記バーチャルカメラの眺めから、前記３次元環境における、前記第１のパノラマ画像に対応する３次元メッシュの第１の部分をレンダリングすることと、
初期位置から標的位置への前記進路に沿って前記バーチャルカメラが移動される場合に、前記３次元環境内における、前記第２のパノラマ画像に対応する前記３次元メッシュの第２の部分を自動的にレンダリングすることと、
前記第１の３次元メッシュの前記第２の部分がレンダリングされる場合、前記第１の３次元メッシュの前記第２の部分を、前記３次元環境における前記レンダリングされた第１の部分とブレンディングすることと
をさらに含む、請求項１に記載の方法。
【請求項１５】
前記第１の部分の前記レンダリングは、前記第１のパノラマ画像に基づいて、第１のテクスチャに従って、前記３次元環境内の前記３次元メッシュの前記第１の部分をレンダリングすることを含み、
前記第２の部分を自動的にレンダリングすることは、前記第２のパノラマ画像に基づいて、第２のテクスチャに従って、前記３次元環境内の前記３次元メッシュの前記第２の部分を自動的にレンダリングすることを含み、
前記ブレンディングすることは、第２の３Ｄメッシュがレンダリングされる場合に、ブレンディングパラメータに基づいて、前記第１のテクスチャと前記第２のテクスチャとをブレンディングすることを含む、請求項１４に記載の方法。
【請求項１６】
３次元環境における誘導付きナビゲーションのためのシステムであって、
コンピューティングデバイス上で実装されているレンダラモジュールであって、前記レンダラモジュールは、
３次元環境内にバーチャルカメラのビューポイントからの第１のパノラマ画像の第１の３次元表現を表示することと、
前記第１のパノラマ画像に関連付けられたメタデータに基づいて、前記第１のパノラマ画像にリンクされた１つ以上の追加のパノラマ画像を識別することと
を行うように構成されている、レンダラモジュールと、
前記コンピューティングデバイス上で実装されている進路プランナモジュールであって、前記３次元環境内における、前記第１のパノラマ画像および前記１つ以上の追加のパノラマ画像の各々に対して視覚的表現に関連付けられた基準を満たす視覚的品質の領域を決定するように構成されている進路プランナモジュールと、
前記コンピューティングデバイス上で実装されている進路移動モジュールであって、前記進路移動モジュールは、
（１）視覚的品質の各領域に基づいて、前記第１のパノラマ画像と前記１つ以上の追加のパノラマ画像との間の進路に対する１つ以上のナビゲーション経路を生成することであって、各ナビゲーション経路は、視覚的品質の前記領域内に前記バーチャルカメラの移動を制約するレンダリング表面を有する、ことと、
（２）ナビゲーションフィレットが、無衝突区域を表し、かつ前記第１のパノラマ画像のうちの１つの中心に対する接触点の距離に従って、パラメータ化されるように、前記１つ以上のナビゲーション経路のうちの異なるナビゲーション経路の間に衝突球体を接するように適合させることにより、前記１つ以上のナビゲーション経路の交差点の周囲に前記ナビゲーションフィレットを構築することと、
（３）ユーザ入力に基づいて、前記１つ以上の追加のパノラマ画像のうちの第２のパノラマ画像に関連付けられた第２の位置に向かう、前記第１のパノラマ画像に関連付けられた第１の位置からの、前記無衝突区域内の前記進路に沿って、前記３次元環境内に前記バーチャルカメラを再配置することと
を行うように構成され、前記進路移動モジュールは、各ナビゲーション経路によって定義された空間の境界された体積の外側での前記バーチャルカメラの所望の移動を示す入力イベントに応答して、その代わりに、前記１つ以上のナビゲーション経路のうちの１つに沿って前記バーチャルカメラを移動させるようにさらに構成されている、進路移動モジュールと
を備えている、システム。
【請求項１７】
前記進路プランナモジュールは、前記パノラマ画像の各々に関連付けられた深度地図に基づいて、前記第１のパノラマ画像および前記１つ以上の追加のパノラマ画像の各々に対してナビゲーション半径を計算するようにさらに構成され、前記ナビゲーション半径は、前記３次元環境内における、各パノラマ画像に対する前記決定された領域を表す、請求項１６に記載のシステム。
【請求項１８】
前記進路プランナモジュールは、前記進路に沿った各パノラマ画像に対するナビゲーション球体および各パノラマ画像の前記計算されたナビゲーション半径を補間することに基づいて、各ナビゲーション経路の周囲にシェルを構築するようにさらに構成され、前記シェルは、前記３次元環境内における前記バーチャルカメラの移動に対する境界を規定する、請求項１７に記載のシステム。
【請求項１９】
前記レンダラモジュールは、各それぞれのパノラマ画像内の画像オブジェクトに関連付けられた深度値に基づいて、前記第１のパノラマ画像および前記１つ以上の追加のパノラマ画像に対するポリゴンの３次元メッシュを生成するようにさらに構成されている、請求項１６に記載のシステム。
【請求項２０】
前記第１のパノラマ画像および前記１つ以上の追加のパノラマ画像は、前記３次元環境において、街路網に関連付けられている、請求項１６に記載のシステム。
【請求項２１】
前記進路プランナモジュールは、前記３次元環境において、前記関連付けられた街路網内の交差点において方向転換するための進路を決定するようにさらに構成されている、請求項２０に記載のシステム。
【請求項２２】
前記進路プランナモジュールは、
前記第１および第２のパノラマ画像の各々の中心に対応する、前記３次元メッシュにおける第１および第２の位置を決定することであって、前記第１および第２の位置は、前記第１および第２のパノラマ画像内の前記画像オブジェクトの正確なビューポイントに対応している、ことと、
前記第１および第２のパノラマ画像の各々の前記決定された視覚的品質の領域に基づいて、前記３次元メッシュにおいて、前記第１および第２のパノラマ画像の各々に対するナビゲーション半径を計算することと
を行うようにさらに構成されている、
請求項１９に記載のシステム。
【請求項２３】
前記レンダラモジュールは、前記バーチャルカメラが前記３次元環境内で移動される場合に、前記ナビゲーション経路の前記レンダリング表面を動的に更新するようにさらに構成されている、請求項１６に記載のシステム。
【請求項２４】
前記進路移動モジュールは、
バーチャルカメラのビュー方向に基づいて、前記３次元環境における、前記第２のパノラマ画像に関連付けられた標的場所を決定することと、
前記第１のパノラマ画像に関連付けられた初期場所に対応する前記第１の位置から、前記決定された標的場所に対応する前記第２の位置に向かって、前記ナビゲーション経路内で前記バーチャルカメラを移動させることと、
前記バーチャルカメラが前記進路に沿って移動される場合に、前記バーチャルカメラの前記ビュー方向を前記標的場所に向けて整列させることと
を行うようにさらに構成されている、
請求項１６に記載のシステム。
【請求項２５】
前記進路移動モジュールは、前記進路に対する前記バーチャルカメラの前記ビュー方向の整列と、ビュー方向補正およびビュー位置補正の大きさのパラメータ化とに基づいて、前記バーチャルカメラが前記３次元環境内で移動される場合に、前記ビュー方向補正および前記ビュー位置補正を適用するようにさらに構成されている、請求項２４に記載のシステム。
【請求項２６】
前記レンダラモジュールは、
前記バーチャルカメラの眺めから、前記３次元環境における、前記第１のパノラマ画像に対応する３次元メッシュの第１の部分をレンダリングすることと、
初期位置から標的位置への前記進路に沿って前記バーチャルカメラが移動される場合に、前記３次元環境内における、前記第２のパノラマ画像に対応する前記３次元メッシュの第２の部分を自動的にレンダリングすることと、
前記第１の３次元メッシュの前記第２の部分がレンダリングされる場合、前記第１の３次元メッシュの前記第２の部分を、前記３次元環境における前記レンダリングされた第１の部分とブレンディングすることと
を行うようにさらに構成されている、
請求項１６に記載のシステム。
【請求項２７】
前記レンダラモジュールは、
前記第１のパノラマ画像に基づいて、第１のテクスチャに従って、前記３次元環境内の３次元メッシュの第１の部分をレンダリングすることと、
前記第２のパノラマ画像に基づいて、第２のテクスチャに従って、前記３次元環境内の前記３次元メッシュの第２の部分を自動的にレンダリングすることと、
第２の３Ｄメッシュがレンダリングされる場合に、ブレンディングパラメータに基づいて、前記第１のテクスチャと前記第２のテクスチャとをブレンディングすることと
を行うようにさらに構成されている、請求項１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、概して、３次元グラフィックに関する。
【背景技術】
【０００２】
３次元データを表示するように、３次元環境を通してナビゲートするためのシステムが存在する。３次元環境は、どの３次元データを表示するかを定義する、バーチャルカメラを含む。バーチャルカメラは、その位置および配向に従った眺め（ｐｅｒｓｐｅｃｔｉｖｅ）を有する。バーチャルカメラの眺めを変更することによって、ユーザは、３次元環境を通してナビゲートすることができる。
【０００３】
地理情報システムは、３次元環境を通してナビゲートするためにバーチャルカメラを使用するシステムのタイプの１つである。地理情報システムは、地球の実質的に球形の３次元モデルを記憶し、読み出し、操作し、表示するためのシステムである。３次元モデルは、衛星画像、地図、建造物および地形のモデル、ならびに他の地理的特徴を含み得る。さらに、３次元環境は、種々の地理的場所に対応する、実世界の景色の地理的位置指定写真を表示するために使用され得る。例えば、地理的位置指定写真は、主要大都市の街路網に対応し得る。そのような写真はまた、３６０度の街路レベルのビューを提供する、パノラマ画像を含み得る。
【０００４】
地理情報システムにおけるバーチャルカメラは、異なる眺めから地球の球形３次元モデルを見得る。地球のモデルの空中ビューは、衛星画像を示し得るが、地形および建造物は、表示されない場合がある。一方で、モデルの地上レベルのビュー（ｖｉｅｗ）は、地形および建造物を詳細に示し得る。しかしながら、モデルのいくつかのビューは、ＧＩＳによって表示される画像コンテンツの正確なまたは視覚的に容認可能な表現ではない場合がある。例えば、ＧＩＳにおいて表示される写真画像は、例えば、画像を捕捉するために使用されるカメラの位置に基づいて、単一のビューポイント（ｖｉｅｗｐｏｉｎｔ）またはある範囲のビューポイントからのみ正確であり得る。従来のシステムでは、３次元環境における画像の異なるビュー間のナビゲーションは、困難かつユーザにとって視覚的に魅力のないものとなり得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
双方向バーチャル３次元環境における誘導付きナビゲーションのための能力が、提供される。そのような能力は、自由形式のナビゲーションの感覚をユーザに提供することによって、ユーザ経験を向上させ得る。ユーザを良好な視覚的品質のあるエリアに制約し、自由形式のナビゲーションのメタファーを分断することなく、より良好なレンダリング結果を伴うビューポイントに向かって、ユーザを緻密に誘導することが必要であり得る。加えて、そのような能力は、双方向バーチャル３次元環境内において、ユーザが、街路を「運転」し、湾曲道路をたどり、交差点の周囲で方向転換することを可能にし得る。さらに、この能力は、道路網および／または進路に基づいて、ナビゲーションを組み込む、任意の３次元グラフィックシステムに加え、画像ベースのレンダリング技法にも適用可能であり得る。
【０００６】
ある実施形態では、第１のパノラマ画像および第２のパノラマ画像に対するポリゴンの３次元メッシュが、それぞれの第１および第２のパノラマ画像内に表される景色内の種々の点に関連付けられた深度値に基づいて生成される。第１のパノラマ画像は、第２のパノラマ画像へのリンクを含む。リンクは、３次元空間における、パノラマ画像を接続する無障害進路（例えば、街路）を表す。３次元メッシュにおいて、第１および第２のパノラマ画像の各々に対する十分な視覚的品質の領域が決定される。十分な視覚的品質の領域は、深度値に基づくことができ、第１および第２のパノラマ画像内の画像オブジェクトの視覚的に正確な表現となるように３次元メッシュがレンダリングされ得るようなビューポイントに対応し得る。ナビゲーション半径が、第１および第２のパノラマ画像の各々の視覚的品質の決定された領域に基づいて、第１および第２のパノラマ画像の各々に対して計算される。３次元メッシュにおける、第１と第２のパノラマ画像との間の進路に対するナビゲーション経路は、画像の各々の計算されたナビゲーション半径に基づいて作成される。ナビゲーション経路は、バーチャルカメラが移動され得る３次元環境内の空間の境界された体積を規定するために使用される。ナビゲーション経路は、バーチャルカメラが環境内の異なるビューポイント間を移動する場合に、視覚的品質が維持されることを確実にする。
【０００７】
実施形態は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせを使用して、実装され得、１つ以上のコンピュータシステムまたは他の処理システム内に実装され得る。
【０００８】
本発明のさらなる実施形態、特徴、および利点、ならびに種々の実施形態の構造および動作が、添付図面を参照して以下で詳細に説明される。本発明は、本明細書に説明される特定の実施形態に限定されないことに留意されたい。そのような実施形態は、例証的目的のためだけに本明細書に提示される。追加の実施形態は、本明細書に含まれる情報に基づいて、当業者に明白となるであろう。
【０００９】
実施形態は、付随の図面を参照して、単なる一例として説明される。図面中、類似番号は、同一または機能的に同様の要素を示し得る。ある要素が最初に出現する図面は、典型的には、対応する参照番号における１つまたは複数の最左の数字によって示される。
【図面の簡単な説明】
【００１０】
【図１】図１は、ある実施形態による、街路網に沿った、誘導付きナビゲーションのためのシステムを図示する略図である。
【図２】図２は、ある実施形態による、３次元環境における、誘導付きナビゲーションのための深度メッシュ内の例示的ナビゲーション経路の略図である。
【図３Ａ】図３Ａは、ある実施形態による、異なる角度における、２つのパノラマ間の接続に接近するバーチャルカメラに対する例示的進路を図示する略図である。
【図３Ｂ】図３Ｂは、ある実施形態による、異なる角度における、２つのパノラマ間の接続から離れる、バーチャルカメラに対する例示的進路を図示する略図である。
【図３Ｃ】図３Ｃは、ある実施形態による、交差点を横断する街路と整列する、バーチャルカメラに対する例示的進路を図示する略図である。
【図３Ｄ】図３Ｄは、ある実施形態による、交差点における、異なる街路と整列する、バーチャルカメラに対する例示的進路を図示する略図である。
【図３Ｅ】図３Ｅは、ある実施形態による、交差点における、異なる街路と整列する、バーチャルカメラに対する例示的進路を図示する別の略図である。
【図４】図４は、ある実施形態による、標的に向かう、街路網に沿った、バーチャルカメラの誘導付きナビゲーションのための方法の流れ図である。
【図５】図５は、実施形態が実装され得る、例示的コンピュータシステムの略図である。
【図６Ａ】図６Ａ−Ｂは、ある実施形態による、複数のナビゲーション経路の交差点を図示する略図である。
【図６Ｂ】図６Ａ−Ｂは、ある実施形態による、複数のナビゲーション経路の交差点を図示する略図である。
【発明を実施するための形態】
【００１１】
本明細書に組み込まれ、本明細書の一部を形成する添付図面は、本発明の実施形態を図示し、説明とともに、さらに本発明の原理を説明し、かつ当業者が本発明を作製し、使用することを可能にする役割を果たす。
【００１２】
実施形態は、双方向バーチャル３次元環境における誘導付きナビゲーションに関する。本発明は、特定のアプリケーションのための例証的実施形態を参照して本明細書に説明されるが、実施形態は、それらに限定されないことを理解されたい。他の実施形態も可能であって、本明細書の教示の精神および範囲における実施形態、ならびに実施形態が有意に有用となるであろう追加の分野に対して修正を行うことができる。さらに、特定の特徴、構造、または特性が、実施形態と関連して説明される場合、明示的に説明されるかどうかにかかわらず、他の実施形態と関連して、そのような特徴、構造、または特性を達成することが当業者の知識の範囲内であることが想定される。
【００１３】
また、実施形態が、本明細書に説明されるように、図に図示されるソフトウェア、ハードウェア、ファームウェア、および／またはエンティティの多くの異なる実施形態に実装されることができることは、当業者に明白であろう。実施形態を実装するためのハードウェアの特殊制御を伴う、任意の実際のソフトウェアコードは、発明を実施するための形態の限定ではない。したがって、実施形態の動作挙動は、本明細書に提示される詳細のレベルを前提として、実施形態の修正および変形例が可能であるという了解の下で説明されるであろう。
【００１４】
以下の発明を実施するための形態では、「一実施形態」、「実施形態」、「例示的実施形態」等への言及は、説明される実施形態が、特定の特徴、構造、または特性を含み得るが、全実施形態が、必ずしも、特定の特徴、構造、または特性を含まなくてもよいことを示す。また、そのような語句は、必ずしも、同じ実施形態を指しているとは限らない。さらに、特定の特徴、構造、または特性が、実施形態と関連して説明される場合、明示的に説明されるかどうかにかかわらず、他の実施形態と関連して、そのような特徴、構造、または特性を達成することが当業者の知識の範囲内であることが想定される。
【００１５】
用語「パノラマ画像」および「パノラマ」は、実世界の景色の３６０度ビューを提供する、任意のパノラマ画像を広義かつ包括的に指すために本明細書で使用される。パノラマまたはパノラマ画像は、複数のパノラマ画像またはパノラマ画像タイルの形態で記憶され得る。そのようなパノラマはさらに、ディスプレイ上に提示されることができるパノラマ３次元画像を含む、３次元画像を含み得る。そのようなディスプレイは、画像を見るための任意のタイプの電子ディスプレイであることができるか、または３次元画像を見るように適合される、任意のタイプのレンダリングデバイスであることができる。さらに、各パノラマ画像は、画像によって表される景色内の種々の点に対応する、深度情報に関連付けられ得る。以下にさらに詳細に説明されるように、この深度情報は、パノラマのための３次元幾何学形状を生成するために使用されることができる。
【００１６】
（街路網に沿った、誘導付きナビゲーションのためのシステム）
図１は、ある実施形態による、街路網に沿った、誘導付きナビゲーションのためのシステム１００を図示する略図である。システム１００は、ネットワーク１３０を横断して、サーバ１４０に通信可能に連結される、クライアント１０２を含む。ネットワーク１３０は、データ通信を搬送し得る任意のネットワークまたはネットワークの組み合わせであることができる。そのようなネットワークは、ローカルエリアネットワーク、ミディアムエリアネットワーク、および／またはインターネット等の広域ネットワークを含むことができるが、それらに限定されない。
【００１７】
クライアント１０２は、プロセッサ、ローカルメモリ、ディスプレイ、および１つ以上の入力デバイス（マウス、ＱＷＥＲＴＹキーボード、タッチスクリーン、マイクロホン、ジョイスティック、またはＴ９キーボード）を伴う、コンピュータであることができる。そのようなコンピューティングデバイスは、携帯電話、携帯情報端末（ＰＤＡ）、コンピュータ、コンピュータ群、セットトップボックス、または命令を処理可能な他の類似タイプのデバイスを含むことができるが、それらに限定されない。サーバ１４０は、同様に、データをクライアント１０２にサービス提供可能な任意の汎用コンピュータを使用して、実装されることができる。サーバ１４０のみ示されるが、任意の数のサーバが、必要に応じて、使用され得る。
【００１８】
ある実施形態では、クライアント１０２は、ユーザ相互作用モジュール１１０およびレンダラモジュール１２２を含む。ユーザ相互作用モジュール１１０は、標的モジュール１１２、移動モジュール１１４、進路プランナモジュール１１６、および進路移動モジュール１１８を含む。ユーザ相互作用モジュール１１０、レンダラモジュール１２２、移動モデル１１４、標的モジュール１１２、進路プランナモジュール１１６、および進路移動モジュール１１８の実施形態は、ハードウェア、ソフトウェア、ファームウェア、または任意のそれらの組み合わせにおいて実装され得る。
【００１９】
説明の容易性および例証目的のために、システム１００およびその構成要素の実施形態は、クライアント−サーバコンピュータアーキテクチャ内で動作する、地理的情報システム（ＧＩＳ）に照らして説明されるが、実施形態は、それらに限定されることを意図するものではない。そのようなＧＩＳは、以下にさらに詳細に説明されるように、バーチャルカメラの眺めから、バーチャル３次元環境内の写真パノラマをレンダリングおよびナビゲートするために使用されることができる。そのようなＧＩＳの実施例は、Ｇｏｏｇｌｅ  Ｉｎｃ．（Ｍｏｕｎｔａｉｎ  Ｖｉｅｗ，ＣＡ）製Ｇｏｏｇｌｅ  Ｅａｒｔｈを含むが、それに限定されない。
【００２０】
故に、クライアント１０２は、インターフェースをＧＩＳに提供するように構成される、地理空間ブラウザ（図示せず）を含み得る。そのような地理空間ブラウザは、クライアント１０２によって実行可能であるか、またはウェブまたはインターネットブラウザのプラグインとして動作可能である独立型クライアントアプリケーションであることができる。ある実施例では、サーバ１４０は、地球の実質的球状表現上の着目の地理的領域に対応するＧＩＳデータを伝送するように構成されるＧＩＳサーバである。例えば、ある要求は、地理的場所に関連付けられた緯度／経度データ点を有する境界ボックスの形態において、境界された地理的検索エリアを含み得る。要求の受信に応答して、サーバ１４０は、サーバ１４０が、ネットワーク（例えば、ネットワーク１３０）を経由して通信可能に連結される、データベースまたは１つ以上の異なるサーバと通信し得る。そのようなＧＩＳデータは、画像および非画像データの両方を含み得る。画像データは衛星画像、デジタル地図、航空写真、および街路レベルの写真を含み得るが、それらに限定されない。非画像データは、例えば、画像および写真に関連付けられたメタデータを含み得る。
【００２１】
ある実施形態では、街路レベルの写真は、実世界景色の３６０度ビューを提示するパノラマを含み得る。さらに、各パノラマは、パノラマに関連付けられた情報を指定するために使用される、メタデータを含み得るか、またはそれに関連付けられ得る。そのようなメタデータは、バーチャルカメラの位置（例えば、ヨー、ピッチ、およびロール）、ＧＰＳ座標、およびパノラマ識別子（例えば、ＧＩＳ内のパノラマを識別する、文字列値）を含み得るが、それらに限定されない。
【００２２】
ある実施形態による、標的モジュール１１２は、３次元環境内のバーチャルカメラの現在のビュー方向および／またはビュー位置に基づいて、３次元環境内の標的場所を決定する。一実施形態では、標的モジュール１１２は、住所または座標等、標的場所を指定する、ユーザからの入力を受け取る。別の実施形態では、標的モジュール１１２は、ユーザによって選択されたビューポート上の位置を表す位置データを受信し、ユーザによって選択された位置に基づいて、半直線を延長し、３次元モデル内のオブジェクトと半直線の交差点である標的場所を決定し得る。ある実施形態では、標的位置は、３次元環境内の写真パノラマの中心（例えば、以下にさらに説明される、図２のパノラマ中心２０４）に関連付けられ得る。
【００２３】
進路移動モジュール１１８は、進路に沿って、標的場所に向かって、３次元環境内でバーチャルカメラを移動させ、バーチャルカメラが、進路に沿って、移動するにつれて、バーチャルカメラが、標的場所に向くように配向する。進路移動モジュール１１８は、サーバ１４０から地理的情報を先読みするために、進路を使用し得る。
【００２４】
移動モデル１１４は、ビュー仕様を構築する。ビュー仕様は、３次元空間内のバーチャルカメラのビュー可能体積（ｖｉｅｗａｂｌｅ  ｖｏｌｕｍｅ）と、例えば、３次元地図に対する錐台の位置および配向とを規定する。ある実施形態では、ビュー可能体積は、例えば、角錐台の形状であり得る、視錐台（または、単に「錐台」）によって規定される。錐台は、現在の視野に応じて変化することができる、最小および最大ビュー距離（ｖｉｅｗ  ｄｉｓｔａｎｃｅ）を有し得る。３次元地図のユーザのビューが、操作されるにつれて、錐台の配向および位置が、３次元バーチャル環境に対して変化する。したがって、ユーザ入力が受信されるにつれて、ビュー仕様もまた変化する。ビュー仕様は、例えば、クライアント１０２のローカルメモリ内に記憶され得、そこで、ＧＩＳデータを描くために、レンダラモジュール１２２によって使用される。
【００２５】
一実施形態によると、記憶されたビュー仕様は、バーチャルカメラのナビゲーションパラメータを指定する。ナビゲーションパラメータは、３次元空間内のバーチャルカメラの位置および配向を指定するために使用されることができる。そのようなパラメータは、方向座標、（例えば、緯度、経度、北、南、その中間）、高度、およびピッチ／傾斜（例えば、レベル、下方、上方、その中間）、ヨー／ロール（例えば、レベル、時計回り傾斜、反時計回り傾斜、その中間）、水平視野、および垂直視野を含むことができるが、それらに限定されない。
【００２６】
（深度統合）
ある実施形態では、写真パノラマは、ある実施形態による、パノラマ画像によって表される景色内の種々の点に対応する、深度情報を含む。深度情報は、例えば、第１の位置に対する景色内の種々の点の接近度を記述する深度値を含むことができる。第１の位置は、例えば、画像を捕捉するために使用される、画像捕捉デバイス（例えば、特殊デジタルカメラ）の位置であることができる。ある実施形態では、景色内に表されるオブジェクトの表面は、点集合として表され得る。各点は、順に、ベクトルとして表され得、それによって、各点は、画像捕捉デバイスまでのその距離と、そのような画像捕捉デバイスが指向される方向に対するその角度とに関して記憶される。
【００２７】
深度情報は、限定されないが、レーザ測距器および画像マッチングの使用を含む、種々の方法で収集され得る。ある実施形態では、若干離間されるが、同一景色を捉える、２つ以上のカメラを採用するカメラ配列が使用され得る。ある実施形態によると、画像マッチングは、画像内の各点における距離を決定するために、各カメラによって捕捉される画像間の若干の差異を分析するために使用される。別の実施形態では、距離情報は、車両上に搭載され、特定の速度で進行している、単一ビデオカメラを使用して、車両が前方に進行するにつれて、景色の画像を捕捉することによって、コンパイルされ得る。レーザ測距器はまた、画像を撮影するカメラと組み合わせて使用され得る。画像マッチングを使用することによって、捕捉された画像の後続フレームが、オブジェクトとカメラとの間の異なる距離を抽出するために比較され得る。例えば、カメラ位置から遠い距離に位置する画像オブジェクトは、カメラ位置のより近くに位置する画像オブジェクトより長くフレーム内に留まるであろう。
【００２８】
いくつかの形式が、他より有利であり得るが、実施形態は、深度情報を記憶する任意の特定の形式に限定されない。ある実施形態では、深度情報は、離散値のグリッドを備える深度地図としてサーバから送信され、グリッドの各要素は、２次元画像の画素に対応する。各画素における深度地図の値は、第１の位置から画像オブジェクトまでの距離を表し得る。例えば、各画素における深度地図の値は、画像を捕捉するために使用されるカメラのカメラ位置からの距離と、画像内に表される画像オブジェクトとを表し得る。種々のファイル形式のうちの任意の１つが、そのような深度地図のために使用され得ることは、本説明を前提として、当業者に明白となるであろう。例えば、深度地図は、拡張マークアップ言語（ＸＭＬ）ファイルとして記憶され得る。ある実施形態では、パノラマ画像に関連付けられた深度地図および他の情報は、画像自体から独立して記憶されることができる。
【００２９】
ある実施形態によると、一式のパノラマ画像が、バーチャル３次元環境に関連付けられた現在の視野に基づいて、サーバ１４０から読み出されることができる。さらに、各パノラマ画像に関連付けられた深度値を使用して、各パノラマのための３次元幾何学形状を生成することができる。生成された３次元幾何学形状は、例えば、限定ではないが、前述のように、クライアント１０２内に実装される、地理空間ブラウザの表示エリア内の３次元環境を伴う写真テクスチャによって、レンダラモジュール１２２によって生成およびレンダリングされることができる、隙間の無いポリゴンの３次元メッシュ（例えば、三角形）であり得る。
【００３０】
（パノラマグラフ／接続情報）
ある実施形態では、各パノラマ画像のメタデータは、１つ以上の近隣パノラマへの空間リンク、接続、または進路を指定する、接続情報を含む。ある実施形態では、ユーザ相互作用モジュール１１０（または、その構成要素の任意の組み合わせまたは部分的組み合わせ）は、各パノラマ画像のメタデータ内に含まれる接続情報に基いて、空間的にリンクされたパノラマの指向性グラフ（または、単に「パノラマグラフ」または「接続グラフ」）を構築する。そのようなパノラマグラフは、例えば、クライアント１０２における、ローカルメモリ（例えば、キャッシュメモリ）内に記憶され得る。ある実施形態では、パノラマグラフを使用して、３次元環境内でレンダリングされた異なるパノラマ間のリンクに沿って、ＧＩＳのユーザを誘導することができる。ある実施例では、そのようなリンクは、ＧＩＳのバーチャル３次元環境内の街路網に対応し、パノラマ画像は、網目の街路に沿って、一連の異なる街路レベルのビューを表す。この点において、パノラマグラフは、近隣パノラマ間の街路または道路網（または、「道路網」）を表すことができる。
【００３１】
図１に図示されないが、クライアント１０２は、ある実施形態による、ナビゲーション制御を提供し、ユーザが、３次元環境内のそのような道路網またはパノラマグラフに沿って、ナビゲートすることを可能にするために使用され得る、グラフィカルユーザインターフェース（ＧＵＩ）を含むことができる。ある実施形態では、ＧＩＳは、ユーザが、パノラマ画像に関連付けられた種々の場所とビューポイントとの間をナビゲートすることを可能にする、制御を提供することができる。例えば、ナビゲーション制御は、パノラマ画像のテクスチャ化された３次元モデルによって、３次元オーバーレイとしてレンダリングされ得る。そのようなナビゲーション制御は、ユーザが、３次元環境内でバーチャルカメラのビュー位置およびビュー方向を変更し、異なるパノラマ画像に関連付けられた場所間をナビゲートすることを可能することができる。
【００３２】
ある実施形態では、各パノラマに関連付けられた接続情報（すなわち、メタデータ）、深度情報、および写真テクスチャは、ネットワーク１３０を経由して、サーバ１４０からクライアント１０２にストリームされることができる。例えば、写真テクスチャは、３次元環境内のバーチャルカメラのビューポイントに基づいて、異なる分解能で、画像タイルの形態においてストリームされ得る。さらに、パノラマおよび任意の関連付けられた情報は、バーチャルカメラのビューポイントに基づいて、ストリームされ得る。
【００３３】
（ナビゲーション経路制約）
街路レベルの景色のパノラマは、単一点のビュー（ｓｉｎｇｌｅ  ｐｏｉｎｔ−ｏｆ−ｖｉｅｗ）のみからの景色の正確な表現を提示し得る。例えば、最良の視覚的品質、すなわち、パノラマ内で表される景色の最も正確な視覚的描写を提示する、ビューポイントは、パノラマが撮影された正確な位置に対応し、すなわち、パノラマ画像を捕捉するために使用される画像捕捉デバイスの原位置に対応する、３次元環境内のバーチャルカメラの場所に関連付けられ得る。例えば、この位置は、パノラマの中心に対応し得る。さらに、３次元環境内のレンダリングされたパノラマの視覚的品質は、バーチャルカメラが、パノラマの中心から離れて移動するにつれて、劣化し得る。
【００３４】
しかしながら、（例えば、クライアント１０２に連結されたディスプレイデバイス上にレンダリングされた）バーチャルカメラの眺めからパノラマを見ているユーザが、依然として、レンダリングの３次元品質を経験することができるように、ある程度の偏差が、所望される。ユーザはまた、ナビゲーション制御を使用して、３次元空間の異なる部分を探索可能であるべきである。したがって、実施形態は、バーチャルカメラが、３次元環境内でレンダリングされる場合、不良画像品質を有するパノラマのビューポイントへと移動しないよう防止するように構成され得る。さらに、以下にさらに詳細に説明されるように、実施形態は、バーチャルカメラ（および、ユーザ）が、良好な画像品質のエリアをたどることを可能にする。
【００３５】
ある実施形態では、パノラマのための「既知の良好な」、十分な、または容認可能な視覚的品質のエリアまたは領域は、３次元環境内のパノラマの視覚的表現に関連付けられた１つ以上の基準に基づく。ある実施例では、十分な視覚的品質の領域は、表示分解能が、所定の閾値を超える、パノラマの領域に対応する。別の実施例では、そのような領域は、パノラマ画像によって表される景色内のオブジェクトの歪みを回避するように、表示分解能が、十分な品質である、パノラマ内の点に基づき得る。さらに別の実施例では、パノラマのそのような領域は、３次元環境内のパノラマのためにレンダリングされた正面平面の最も近傍の決定された場所に対応し得る。
【００３６】
前述のように、接続またはパノラマグラフは、３次元環境内の場所に対応するパノラマに関連付けられた接続情報を使用して、ユーザ相互作用モジュール１１０によって生成されることができる。以下にさらに詳細に説明されるように、進路プランナモジュール１１６は、１つ以上のパノラマに関連付けられた接続情報を使用して、パノラマ間のナビゲーション経路を構築する。そのようなナビゲーション経路は、生成されたパノラマグラフの最も近傍のパノラマの周囲のある一定の体積の空間にバーチャルカメラを制約するために使用される。
【００３７】
ある実施形態による、パノラマグラフ内のパノラマ毎に、進路プランナモジュール１１６は、パノラマの表現が３次元環境内で見られ得る最も視覚的に正確なビューポイントに対応するバーチャルカメラの位置に対して、ナビゲーション半径またはローミング距離を計算することができる。例えば、そのような位置は、前述のように、パノラマ（例えば、パノラマの中心）を捕捉するために使用される、画像捕捉デバイスの位置に対応し得る。
【００３８】
ナビゲーション半径またはローミング距離は、定数または関数であり得、限定されないが、パノラマ間の距離および深度メッシュの品質を含むいくつかの要因に依存し得る。例えば、進路プランナモジュール１１６は、３次元環境内のパノラマ中心から、レンダリングされる最も近傍平面までの距離を評価することによって、パノラマのためのナビゲーション半径を計算する。他の考慮点も、ナビゲーション半径を限定するために使用されることができることは、本説明を前提として、当業者に明白となるであろう。
【００３９】
ある実施例では、レンダラモジュール１２２が、３次元環境内のパノラマのテクスチャ化された３次元モデルをレンダリングするにつれて、広範囲の深度情報が、利用可能でないエリアを充填するために、テクスチャをストレッチさせ得る。この実施例では、ナビゲーション半径を限定し得る考慮点は、遠隔場所から捉えられるであろう、テクスチャストレッチングの容認可能な量に対応する、所定の閾値であり得る。進路移動モジュール１１８は、次いで、図２に関して以下にさらに詳細に説明されるように、バーチャルカメラの初期場所に関連付けられたパノラマのナビゲーション半径および標的場所に関連付けられたパノラマのナビゲーション半径を使用して、ナビゲーションまたは衝突経路を生成することができる。
【００４０】
図２は、ある実施形態による、３次元環境における、誘導付きナビゲーションのための深度メッシュ２０２内の例示的ナビゲーション経路２００の略図である。図２に示される例示的ナビゲーション経路では、単一接続は、進路２１０に沿って、２つのパノラマをリンクする。進路２１０は、例えば、３次元環境内の街路を表し得る。図２に示されるように、進路２１０は、パノラマ中心２０４（例えば、第１のパノラマの中心）に対応する初期位置から、パノラマ中心２０６（例えば、第２のパノラマの中心）に対応する標的位置まで延在する。
【００４１】
図１に戻って参照すると、進路移動モジュール１１８を使用して、進路２１０に対して、深度メッシュ２０２内にシェル２２０を作成し得る。ある実施形態では、進路プランナモジュール１１６は、３次元環境内の街路の表現に沿って、進路２１０を決定する。図２の例示的ナビゲーション経路２００に戻って参照すると、図１の進路プランナモジュール１１６を使用して、３次元環境内のパノラマ中心２０４とパノラマ中心２０６との間の街路の表現に沿って、進路２１０を決定し得る。
【００４２】
図２に図示されるナビゲーション経路のシェル２２０は、３次元環境内のパノラマ画像の一部をレンダリングするために使用される制約表面を提供する。さらに、ナビゲーション経路の制約表面は、それを越えて、３次元環境内のナビゲーション（例えば、バーチャルカメラの移動）が、許容されない境界を規定する。故に、この表面は、経験の視覚的品質を維持するために、ナビゲーションのためのはっきりとした境界として使用され得る。ユーザが、３次元環境内をナビゲートし、能動的にレンダリングされたパノラマが変化するにつれて、制約表面は、バーチャルカメラのすぐ近傍を考慮するために、進路移動モジュール１１８によって更新されることができる。
【００４３】
ある実施形態では、深度メッシュ２０２は、前述のように、２つのパノラマに関連付けられた深度地図に基づいて、レンダラモジュール１２２によって生成されるポリゴンの３次元の隙間の無いメッシュであり得る。ある実施形態では、進路移動モジュール１１８は、前述のように、各パノラマの計算されたナビゲーション半径に基づいて、進路２１０に沿う各パノラマにおけるナビゲーション球体を補間することによって、シェルを構築する。視覚的実施例のために、シェル２２０が、３次元空間内で描写され、上方から見られる場合、２つの球体によって境界された円錐形断面として現れるであろう。また、前述のように、各ナビゲーション球体は、３次元環境内の各パノラマのための「既知の良好な」または容認可能なビューポイントの領域を表す。
【００４４】
ある実施形態では、各パノラマは、地理的に位置指定される。したがって、バーチャル３次元環境内のパノラマの場所は、地理的場所に対応することができる。加えて、３次元環境内の異なる場所間のバーチャルカメラの移動（例えば、ユーザ入力に基づく）は、ＧＩＳ内の地理的場所間の動きに対応することができる。
【００４５】
図２は、例証目的のためだけに提示され、実施形態は、それに限定されないことに留意されたい。当業者は、本説明を前提として、実施形態が、パノラマグラフ内で一緒にリンクされた複数のパノラマのために使用され得ることを理解するであろう。ある実施例では、複数のパノラマは、３次元環境内の交差点の表現に関連付けられ得る。そのような複数のパノラマのナビゲーション経路は、予測不可能な方法で交差し得る。したがって、進路移動モジュール１１８は、例えば、現在レンダリングされているパノラマ（または、「アクティブパノラマ」）からのパノラマまたは接続グラフの奥深くにある所定の数のリンクである、全可能なナビゲーション経路を使用して、一連の衝突試験を行い得る。例えば、進路移動モジュール１１８は、アクティブパノラマから、最大２つのパノラマのためのナビゲーション経路に関連付けられた境界幾何学形状を構築し得る。アクティブパノラマに接続された任意の数のパノラマのためのナビゲーション経路が、必要に応じて、構築され得ることは、本説明を前提として、当業者に明白となるであろう。アクティブパノラマはまた、３次元環境内のバーチャルカメラの現在の場所に対応し得ることに留意されたい。
【００４６】
図６Ａ−Ｂは、それぞれ、ある実施形態による、複数のナビゲーション経路６０１、６０２、および６０３の交差点を図示する略図６００Ａおよび６００Ｂである。図６Ａに示される実施例では、複数の分岐を有するシェルが、ナビゲーション経路６０１−６０３に基づいて、生成され得る。略図６００Ａに示されるように、各ナビゲーション経路は、パノラマ中心６２０に対応するパノラマに接続される、３つの街路の各々を表す。また、示されるように、ナビゲーション経路６０１−６０３（シェルの分岐として）は、バーチャルカメラが、あるナビゲーションまたは衝突経路から別のものに移動する場合、「無衝突区域」として作用する、ナビゲーションフィレット６１４、６１５、および６１６を含むことができる。さらに、ナビゲーションフィレット６１４−６１６は、フィレット付きエッジ（例えば、丸い角）を有する。そのようなフィレット付きエッジは、交差点に関連付けられた鋭利な角を回避するのに役立ち、それによって、ナビゲーションの間、スムーズなユーザ経験を提供することができる。実施形態は、これらの丸い角を迅速に生成するための種々の新規な式／アルゴリズムを利用し得ることに留意されたい。
【００４７】
ある実施形態では、ナビゲーションフィレット６１４−６１６は、２つの異なるナビゲーション経路（例えば、ナビゲーション経路６１１および６１２）間において、衝突球体６３０を接線方向に適合することによって構築される。例えば、ナビゲーションフィレット６１４は、パノラマ中心６２０に対する接触点の距離に従って、パラメータ化され得る。略図６００Ａに示されるように、ナビゲーションフィレット６１４のフィレット幅（「ｆｗ」）は、例えば、ナビゲーション経路６０１および６０２に対応するナビゲーション幅（「ｎｗ」）を考慮することによって、算出され得る。
【００４８】
いったんフィレットが、略図６００Ａに示されるように、鋭利な交差点の周囲に構築されると、進路移動モジュール１１８は、ある実施形態による、図６Ｂの略図６００Ｂに示されるように、ナビゲーション経路およびフィレットによって作成された制約表面の結合に対する衝突を試験することができる。例えば、略図６００Ｂにおけるナビゲーション経路によって提供される制約表面のそのような結合は、前述のように、バーチャルカメラの移動が制約され得る、十分なまたは容認可能な視覚的品質の領域を表し得る。
【００４９】
ある実施形態では、進路プランナモジュール１１６は、３次元環境内の街路網の表現における交差点において、方向転換するための進路を決定することができる。例えば、曲がり角において、進路プランナモジュール１１６は、進路内の曲がり角にスプラインを補間し、バーチャルカメラの移動を平滑化し得る。
【００５０】
（ナビゲーション経路制約を使用した誘導付きナビゲーション）
前述のように、実施形態は、バーチャルカメラ（および、ユーザ）が、パノラマの３次元表現が、３次元環境内でレンダリングされる場合、良好な画像品質のエリアをたどることを可能にする。また、前述のように、パノラマは、１つ以上の街路に沿って、種々の景色の地上レベルのビューを提供する。したがって、バーチャルカメラの移動は、３次元環境内の街路の表現をたどる。ある実施形態では、進路移動モジュール１１８はさらに、ユーザ入力、例えば、キーボードおよび／またはマウスイベント（例えば、上方矢印、右矢印、ダブルクリック等）に基づいて、そのようなナビゲーションを促進するように構成される。その結果、進路移動モジュール１１８は、街路の表現に沿って、進路上でバーチャルカメラを誘導する一方、ユーザが、ナビゲーション制御および／または追加のユーザ入力を使用することによって、進路を保とうとするいかなる過度の負担も軽減させる。
【００５１】
例えば、３次元環境内のナビゲーションに関与する従来のアプリケーションでは、キーボードの上方矢印キーの押下は、概して、その進行方向に沿って、バーチャルカメラを前方に移動させる。しかしながら、本明細書に説明されるように、３次元環境内におけるパノラマのナビゲーションに適用されるようなこの挙動は、バーチャルカメラが針路から外れる結果をもたらし得る。その結果、ユーザは、街路を進むように、繰り返し、異なるキーを使用する必要があり得る。これらの懸念を解決するために、実施形態は、以下にさらに詳細に説明されるように、いくつかの異なる技法を適用する。
【００５２】
自由形式のナビゲーションのユーザ経験を維持する一方、より良好な視覚的品質のエリアに向かって、ユーザを誘導するのに役立てるために、ユーザ相互作用モジュール１１０は、あるユーザ入力（例えば、キーボードの矢印キー）に関連付けられた意味を変更させるように動作可能である。これは、以下により詳細に説明されるように、例えば、「道路をたどる」ジェスチャが検出されると、道路に沿って、ユーザを緻密に誘導することを可能にする。そのような「道路をたどる」ジェスチャが起動されると、移動モジュール１１４および／または進路移動モジュール１１８は、バーチャルカメラの移動に補正を適用するように構成することができる。
【００５３】
ある実施形態では、進路に沿って、移動されるにつれて、ビュー方向補正およびビュー位置補正が、バーチャルカメラの移動に適用される。ビュー位置補正は、パノラマ間のリンクの中心に向かって、バーチャルカメラを移動させる。ビュー方向補正は、若干、より進路の中心に向かって、バーチャルカメラのビューを整列させる。さらに、いったんジェスチャが、所定の時間の間、起動されると、バーチャルカメラのビューは、進路の中心に戻されることができる。そのようなビュー補正の適用は、バーチャルカメラが、湾曲道路網をたどることを可能にする。
【００５４】
そのような「道路をたどる」ジェスチャが、いくつかの方法において、ユーザによって起動され得ることは、本説明を前提として、当業者に明白となるであろう。一実施例では、ユーザは、バーチャルカメラのビュー方向が、道路方向に沿った進路にほぼ対応する間、左または右矢印キーに触れることなく、一定時間の間、例えば、上方矢印キーを押下し続け得る。言い換えると、バーチャルカメラのビュー方向が、ある角度公差（例えば、４５度）内において、３次元環境内に表される街路に沿っており、ユーザが、上方矢印キーを押下する場合、ビューは、最初は、ユーザを前方に移動させるであろう。しかしながら、一定時間（例えば、１．５秒）後、「道路をたどる」ジェスチャが、起動され得、進路移動モジュール１１８は、街路に沿って移動しようとし得る、ユーザの意図を決定することができる。
【００５５】
ある実施形態では、進路移動モジュール１１８によって適用されるビュー方向および／またはビュー位置補正の大きさは、ユーザ入力に基づいて、スムーズにパラメータ化されることができる。例えば、時間に基づく所定の閾値が、そのようなパラメータ化のために使用され得る。この実施例では、「道路をたどる」ジェスチャが検出されると、任意の補正の大きさが、数秒にわたって、いくつかの所定の最大補正量までスムーズに漸増され得る。さらに、相反するユーザ入力またはカメラ位置付けは、任意の補正量のスムーズな漸減を生じさせ得る。
【００５６】
ジェスチャの起動に応じて、ある実施形態によると、進路移動モジュール１１８は、道路に向かって、バーチャルカメラのビューを徐々に整列させ、道路の中心に向かって、ユーザを移動させる。ユーザの眺めから、この経験は、車の運転との類似性を感じ得る。ある実施形態では、進路移動モジュール１１８は、自動的に、３次元環境内に表される道路網内のカーブをたどるであろう。ユーザは、例えば、左−右矢印キーを叩打することによって、バーチャルカメラの任意の自動方向転換を阻止し得る。この場合、進路移動モジュール１１８は、自動ナビゲーションを中断し、ビューの補正を開始する前に、ある所定の時間の間、待機することができる。実施形態は、任意の数の方法を使用して、道路をたどろうとするユーザの意図を推定または予測し得ること、従って、そのような「道路をたどる」ジェスチャが起動されるべきか否かを推定または予測し得ることは、本説明を前提として、当業者に明白となるであろう。
【００５７】
前述のように、進路移動モジュール１１８は、バーチャルカメラのビュー位置および角度に基づいて、角を方向転換しようとするユーザの意図の決定を試みる。ある実施形態では、進路プランナモジュール１１６は、道路の中心において、新しい街路方向に向かう、新しい街路への方向転換を実行するであろう特定の進路を決定する。ある実施形態では、進路プランナモジュール１１６は、前述のように、適切な道路を選択し、新しい対応する進路を動的に構築する一方、また、ユーザが、道路をたどることを中断することを所望するかどうかを検出しようとする。
【００５８】
さらに、いったん検出されたユーザ入力（例えば、キーの長押し）が、「道路をたどる」ジェスチャであると決定されると、進路プランナモジュール１１６はまた、バーチャルカメラの以前の移動方向に沿って、パノラマ中心（または、前述のように、視覚的品質向上領域）があるかどうかを決定し得る。そのような以前の移動方向は、例えば、パノラマ中心（または、領域）の位置および／またはその位置への到着時間に基づいて、ある公差内にあり得る。中心が見つけられた場合、バーチャルカメラは、短時間の間、もともとの方向に近づくように移動し続けるように、短時間オートパイロットが、開始されることができる。これによって、ビューが、より良好な視覚的品質の領域に到着することが可能となる。ユーザにとって、これは、本説明を前提として、当業者に明白となるであろうように、いくつかの他の公知のナビゲーションシステムにおいて見出され得る、自然運動量減衰または「投てき」ジェスチャのようなものであり得る。しかしながら、これらの他のシステムと異なり、本明細書に説明されるような実施形態に対する目標の１つは、前述のように、視覚的忠実性または品質が向上した領域に向かって、ユーザを緻密に誘導することである。
【００５９】
（誘導付きナビゲーションの使用例）
図３Ａ−Ｅは、街路中心に向かって、および／またはそれに沿って、バーチャルカメラ（および、ユーザ）を緻密に誘導することに関連付けられる、種々の可能な使用例を図示する略図３００Ａ−Ｅである。図３Ａ−Ｅに示される略図の各々は、交差点に関連付けられたパノラマの道路網を含む。さらに、各略図は、パノラマの各々に対するナビゲーション経路半径３０２を含む。説明の容易性のために、ナビゲーション経路幅は、示されない。略図の各々において、バーチャルカメラのビューおよび進路方向は、バーチャルカメラに関連付けられた矢印の方向にある。ユーザは、例えば、「前方移動」アクションを実行し得る（例えば、前述のように、矢印キーを選択することによって）。
【００６０】
さらに、当業者は、本説明を前提として、実施形態が、任意の数の新規な技法を採用し、略図３００Ａ−Ｅによって図示されるように、３次元環境内のバーチャルカメラの所望の動きを実装し得ることを理解するであろう。例えば、そのような技法は、各交差点に到達するための種々のカーブを構築し、これらのカーブに関連付けられた相対的緊張（ｔｅｎｓｉｏｎ）を比較することを伴い得る。
【００６１】
図３Ａは、ある実施形態による、異なる角度において、２つのパノラマ間の街路３１２（図３Ａ−Ｅに示される実施例において交差点の中心線として表される）に接近するバーチャルカメラ３１０およびバーチャルカメラ３２０の例示的進路を図示する略図３００Ａである。バーチャルカメラ３１０の進路は、グレージング角において、パノラマ中心３０１およびパノラマ中心３０３を接続する街路３１２に接近している。例えば、このビュー方向は、ユーザが、街路３１２を横断する位置に移動するのではなく、標的位置へと街路３１２を移動することに興味があることを示し得る。バーチャルカメラ３１０の動きに関して、何らアクションがとられない場合、街路３１２を越えて移動し、望ましくない場所にナビゲートするであろう。したがって、「途中合流コース」において、バーチャルカメラ３１０の進路を街路３１２と整列させるように、補正が行われることができる。ユーザが、実際に、街路３１２を越えて、特定の標的へとナビゲートすることを好む場合、ユーザは、例えば、ユーザのキーボード上の矢印キーを使用して、または以下に説明される、バーチャルカメラ３２０のビュー方向と同様に、街路３１２により垂直となるように、バーチャルカメラ３１０のビューを方向転換することによって、補正を無効にすることができる。
【００６２】
バーチャルカメラ３１０と対照的に、略垂直角度において、バーチャルカメラ３２０は、パノラマ中心３０４および３０５によって表される２つのパノラマ間の街路３１２に接近している。この場合、ユーザは、ビューポイントから街路を横断して位置する、標的３２２（例えば、建造物３０６の正面）を見ることに関心があり得る。バーチャルカメラ３２０の進路が、バーチャルカメラ３１０のように、途中合流コース上に置くように補正される場合、結果は、ユーザにとって、望ましいものではなく、食い違うものとなり得る。したがって、バーチャルカメラ３２０のビュー角度は、街路３１２に沿って整列されるように補正されるべきではない。ユーザが、実際には、街路３１２を移動することを好む場合、ユーザは、ユーザ入力を通して、誘導付きナビゲーションを手動で無効にすることによって、バーチャルカメラ３１０と同様に、バーチャルカメラ３２０のビュー方向を整列させることができる。
【００６３】
図３Ｂは、ある実施形態による、異なる角度において、街路３１２から離れるように移動する、バーチャルカメラ３３０およびバーチャルカメラ３４０の例示的進路を図示する略図３００Ｂである。この実施例では、バーチャルカメラ３４０に対する進路は、図３Ａのバーチャルカメラ３２０に類似する（すなわち、標的場所３４２に向かう）。しかしながら、バーチャルカメラ３３０に対する進路は、最初は、比較的に小さい角度（例えば、初期進路３３１によって示されるように）において、街路３１２（中心線）からはずれる。図３Ａのバーチャルカメラ３１０と同様に、バーチャルカメラ３３０の進路は、街路３１２に沿って整列するように補正される。ユーザが、ナビゲーション経路外の建造物に関心がある場合、例えば、適切なキーストロークを入力することによって、または、例えば、ナビゲーション制御を介して、道路とより垂直な角度にビューポイントを方向転換させることによって、補正を無効にすることができる。
【００６４】
図３Ｃは、ある実施形態による、交差点を横断して、街路３５２と整列させる、バーチャルカメラのための例示的進路３５０を図示する略図３００Ｃである。バーチャルカメラ３５０のビュー方向は、街路３１２および３５２両方に対して、等角度の範囲を定めると仮定され得る。バーチャルカメラ３５０の進路が、街路３５２と整列されるべきであることが、略図３００Ｃから明白と考えられる得るが、略図に図示される進路の入射角は、街路３５２との整列のために十分ではない場合がある。むしろ、固定前進速度を前提とすると、それに沿って、バーチャルカメラ３５０が整列されるべき、街路（３５２）は、より大きな総角度偏向を要求する場合さえ、最小の方向転換率を要求する。したがって、旋回率指標を利用して、他の街路と比較して、最小の方向転換率をもたらす街路に基づいて、進路整列のために適切な街路を選択し得る。
【００６５】
図３Ｄおよび３Ｅは、誘導付きナビゲーション補正とナビゲーション経路半径３０２の相互作用を解明する。図３Ｄは、ある実施形態による、交差点内の異なる街路と整列する、バーチャルカメラ３６０のための例示的進路を図示する略図３００Ｄである。図３Ｅは、ある実施形態による、交差点内の異なる街路と整列する、バーチャルカメラ３７０のための例示的進路を図示する略図３００Ｅである。
【００６６】
バーチャルカメラ３６０および３７０の両方のビュー方向に基づいて、両方に対する標的進路は、街路３１２に対応し、街路３１２は、略図３００Ｄおよび３００Ｅにそれぞれ示されるように、各バーチャルカメラの初期位置から、より長い距離（例えば、街路３５２に対する初期位置の距離と比較して）に位置する。各略図に示されるように、バーチャルカメラ３６０のための進路は、その現在のビュー方向に基づいて、最も遠い街路（３１２）に補正される。一方、バーチャルカメラ３７０のための進路は、この最も遠い街路を標的とするように補正されず、代わりに、街路３５２に沿って誘導される。バーチャルカメラ３６０の進路とバーチャルカメラ３７０の進路との間の差異は、ナビゲーション経路半径３０２からの許容される距離である。例えば、バーチャルカメラ３７０が、街路３１２に補正された場合、バーチャルカメラの眺めから３次元環境を表示するために使用されるビューポートは、許容されるナビゲーション経路外にはずれるであろう（例えば、前述の図２のナビゲーション経路２００によって図示されるように）。ナビゲーション経路外のナビゲーションは、許容され得ない、不良または望ましくないビューをもたらし得る。その結果、バーチャルカメラ３７０は、このバーチャルカメラの初期位置により近い距離にある、街路３５２に補正される。
【００６７】
（道路およびパノラマとの自動整列）
ある実施例では、バーチャルカメラは、地球の空中の眺めに対応する初期位置を有し得る。ある実施形態では、ユーザは、３次元環境内の適切な位置を選択することによって、地球上の地理的場所に対応する標的を選択し得る。バーチャルカメラは、次いで、選択された標的に基づいて、より低い高度まで、徐々にズームダウンし得る。地上レベル近傍の閾値高度に到達し得、これは、ユーザが、地上レベルのオブジェクトを間近で見ようとしていることを推測するために使用され得る。例えば、衛星画像が、ぼやける、またはあまり有用ではなくなり得る、地上レベル近傍では、いくつかの要因が、そのようなユーザの意図を推測するために、考慮され得る。そのような要因は、地上への接近度、バーチャルカメラの移動、およびユーザ入力（例えば、マウスの動き）を含むことができるが、それに限定されない。
【００６８】
ある実施形態では、進路移動モジュール１１８は、空中の眺めから地上レベルの眺めへの遷移を通して、空間認識を維持し、バーチャルカメラを視覚的コンテキストの最大量を維持する、有用位置に設置する。ある実施形態では、進路プランナモジュール１１６は、最大視覚的品質が維持されることを確実にするために、自動的に、パノラマの中心に対応する初期位置に、バーチャルカメラ（例えば、オートパイロット進路を介して）を設置し得る。決定された初期位置に位置し得る、画像オブジェクト（例えば、建造物）が、初期ビューを曖昧にし、ユーザを混乱させないように防止するために、その位置までの単純オートパイロット進路では、十分ではない場合がある。故に、接続またはパノラマグラフが、前述のように、使用され、バーチャルカメラのビューを再配向し、道路方向に沿って、そのビューが、画像オブジェクトによって遮断されない、近傍パノラマを捉えることができる。道路に沿って捉えることは、空中からの「地球」のビューと街路または地上レベルのビューレンダリング経験との間の視覚的連続性を最大限にする一方、ユーザに、より多くの視覚的コンテキストを提供する。さらに、進路移動モジュール１１８によって行われるバーチャルカメラの再配向は、ユーザを混乱させないように、徐々に生じることができる。
【００６９】
バーチャルカメラの眺めが、街路レベルのビューに変更される必要がある時、道路網は、進路プランナモジュール１１６に未知であり得るため、オートパイロットナビゲーションが、直ちに、例えば、標的モジュール１１２によって決定された３次元環境内の標的場所へと開始されることができる。加えて、移動モデル１１４は、標的場所近傍の場所に対するパノラマデータを含む、標的場所に関連付けられたパノラマデータに対して、ネットワーク１３０を経由して、サーバ１４０に、一式のフェッチまたは要求を開始することができる。それらのフェッチが返されると、標的モジュール１１２は、標的場所への最近傍パノラマを決定し、さらに、オートパイロット目的地として、決定されたパノラマを選択し得る。ある実施例では、パノラマの選択は、決定された標的場所のある距離閾値内に位置するかどうかに基づき得る。別の実施例では、標的場所に対して表示されるべき最良パノラマの選択は、限定されないが、３次元環境内のパノラマに関連付けられた場所に対する標的位置の接近度、および現在の位置から標的に向かせるためのバーチャルカメラの角度偏差を含む、いくつかの要因を重み付けすることによって決定され得る。
【００７０】
進路プランナモジュール１１６は、次いで、パノラマに関連付けられ、サーバ１４０から受信されたパノラマ接続情報から、街路方向を計算することができる。現在のビュー方向に基づいて、進路プランナモジュール１１６は、最も近い街路、およびビューに適用される角回転を最小限にするように、３次元環境内に表される街路に沿う適切なビュー方向を選択することができる。この情報が、既知となるとすぐに、進路移動モジュール１１８は、バーチャルカメラのビューの回転を開始し、街路と整列させることができる。
【００７１】
実施形態はまた、このプロセスの間に生じ得る、任意の追加の複雑性に対処するように構成されることができることは、本説明を前提として、当業者に明白となるであろう。例えば、パノラマに対する後続の未処理のフェッチは、最初に決定されたものより近いパノラマを表し得る。別の実施例では、ユーザ相互作用モジュール１１０に対して、以前は未知であった、別の街路が存在し得る。したがって、その構成要素を含む、ユーザ相互作用モジュール１１０の実施形態は、ユーザを混乱させることなく、そのような複雑性を考慮するように、オートパイロット目的地および配向を動的に更新するように動作可能である。
【００７２】
（方法）
図４は、ある実施形態による、標的に向かう、街路網に沿った、バーチャルカメラの誘導付きナビゲーションのための方法４００を図示する流れ図である。説明の容易性のために、方法４００は、前述の図１のシステム１００に関して説明される。しかしながら、方法４００は、それらに限定されるように意図されない。
【００７３】
方法４００は、ステップ４０２において、標的を決定することから開始する。標的は、３次元環境内の任意の点または領域であり得る。ある実施例では、３次元環境は、複数のモデルを含んでもよく、標的は、モデルまたはモデル上の位置であり得る。ユーザは、標的場所を指定し得る。例えば、ユーザは、３次元環境内の場所を指定するための住所または座標を入力し得る。ある実施形態では、場所は、地上または街路レベルであり得る。
【００７４】
ある実施例では、ユーザは、バーチャルカメラの眺めから、３次元環境を表示する、ビューポート内の位置を選択し得る。ＧＩＳは、ユーザによって選択されたビューポート上の位置を表す、位置データを受信し得る。ＧＩＳは、ユーザによって選択された位置およびバーチャルカメラの焦点距離に基づいて、３次元空間内の点を決定し得る。ある実施例では、決定された点と焦点との間の距離は、バーチャルカメラの焦点距離に対応し得る。
【００７５】
いったん３次元環境内の点が、ユーザによって選択された位置に基づいて決定されると、ＧＩＳは、ユーザによって選択された位置に基づいて、半直線を延長し得る。ある実施例では、ＧＩＳは、バーチャルカメラの焦点または入射瞳から、半直線を延長し得る。半直線は、決定された点を通して、焦点または入射瞳から、延長し得る。
【００７６】
延長された半直線によって、標的場所が、半直線に基づいて決定され得る。ある実施形態では、３次元モデルは、建造物モデル等の複数のモデルを含み得る。その実施形態では、標的場所は、３次元環境内のモデルとの半直線の交差点であると決定され得る。このように、標的場所は、ビューポート内のユーザ選択に基づいて、決定され得る。
【００７７】
いったん標的場所が、ステップ４０２において決定されると、標的場所までの進路に対するナビゲーション経路が、ステップ４０４において生成される。進路は、例えば、３次元環境内に表される街路網に沿ってもよい。さらに、進路は、前述のように、３次元環境内の３次元モデルとしてレンダリングされたパノラマの中心に対応する場所間にあり得る。ナビゲーション経路は、また、前述のように、３次元環境内のバーチャルカメラの移動に対する制約表面およびナビゲーション境界を規定する。ある実施例では、パノラマ写真は、一連の点内の各点に位置し得、パノラマ写真は、各パノラマに関連付けられた接続情報に基づいて、パノラマまたは接続グラフ内で相互にリンクされ得る。例えば、バーチャルカメラが、特定の点に位置する時、ＧＩＳは、バーチャルカメラの眺めから、写真画像データを表示し得る。
【００７８】
進路は、標的場所に近接するように、バーチャルカメラを誘導し得る。例えば、進路は、標的場所に最も近い街路網内の位置へとバーチャルカメラを誘導し得る。代替として、および加えて、進路は、最大距離（例えば、パノラマの中心に対する最大ローミング距離）を超えないように決定され得る。
【００７９】
バーチャルカメラが、ナビゲーション経路内の進路に沿って、移動される場合に、ステップ４０６において、標的場所に向くように配向され得る。ステップ４０８では、バーチャルカメラは、限定されないが、前述のように、３次元環境内のバーチャルカメラのビュー方向および位置を含む、いくつかの要因に基づいて、標的場所に向かって、自動的に、ナビゲーション経路内を誘導され得る。さらに、ユーザは、また、前述のように、ユーザ入力を通して、任意の自動誘導を無効にし得る。
【００８０】
バーチャルカメラが、標的場所へとより近くに移動されるにつれて、標的場所に対応する景色が、レンダリングされ、ユーザに表示されることができる。ある実施形態では、ステップ４０８はさらに、標的場所に基づいて表示されるべきパノラマを選択することを含む。しかしながら、適切なパノラマの選択は、単に、標的場所へのパノラマの接近度に基づくのみではない場合がある。別の重要な要因は、例えば、バーチャルカメラが、ビュー内に標的を維持するために、移動されなければならないビュー角度であり得る。例えば、最も近いパノラマは、標的より道路に沿って遠くにあり得る。しかしながら、ビュー内に標的を維持するために、バーチャルカメラは、方向転換し、ほぼ後方に向く必要があるであろう。故に、選択されたパノラマは、バーチャルカメラの初期位置、すなわち、起点に最も近いものであるが、また、カメラ回転の量が最小限にされるように、３次元環境内の標的場所から十分遠くに位置する。
【００８１】
（例示的コンピュータシステム実装）
図１−４に示される実施形態、あるいはその任意の部分または機能は、ハードウェア、ソフトウェアモジュール、ファームウェア、その上に記憶される命令を有する、有形コンピュータ可読媒体、またはそれらの組み合わせを使用して、実装され得、１つ以上のコンピュータシステムまたは他の処理システム内に実装され得る。
【００８２】
図５は、実施形態またはその一部が、コンピュータ可読コードとして実装され得る、例示的コンピュータシステム５００を図示する。例えば、図１におけるクライアント１０２は、ハードウェア、ソフトウェア、ファームウェア、その上に記憶される命令を有する、有形コンピュータ可読媒体、またはそれらの組み合わせを使用して、コンピュータシステム５００内に実装されることができ、１つ以上のコンピュータシステムまたは他の処理システム内に実装され得る。ハードウェア、ソフトウェア、またはそのようなものの任意の組み合わせは、図１−４におけるモジュールおよび構成要素のいずれかを具現化し得る。
【００８３】
プログラマブル論理が使用される場合、そのような論理は、市販のプロセッシングプラットフォームまたは特殊目的デバイス上で実行し得る。当業者は、開示される主題の実施形態が、マルチコアマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、分散機能によってリンクまたはクラスタ化されるコンピュータ、ならびに事実上、任意のデバイスに埋め込まれ得る、パーペイシブまたは小型コンピュータを含む、種々のコンピュータシステム構成とともに実践されることができることを理解し得る。
【００８４】
例えば、少なくとも１つのプロセッサデバイスおよびメモリを使用して、前述の説明される実施形態を実装し得る。プロセッサデバイスは、単一プロセッサ、複数のプロセッサ、またはそれらの組み合わせであり得る。プロセッサデバイスは、１つ以上のプロセッサ「コア」を有し得る。
【００８５】
本発明の種々の実施形態は、この例示的コンピュータシステム５００の観点から説明される。本説明を熟読後、他のコンピュータシステムおよび／またはコンピュータアーキテクチャを使用して、本発明の実施形態をどのように実装するべきかは、当業者に明白となるであろう。動作は、シーケンシャルプロセスとして説明され得るが、動作のうちのいくつかは、実際は、並行して、同時に、および／または分散環境において、かつ単一または多重プロセッサ機械によってアクセスするために、ローカルあるいは遠隔に記憶されるプログラムコードによって、行われ得る。加えて、いくつかの実施形態では、動作の順序は、開示される主題の精神から逸脱することなく、再配列され得る。
【００８６】
プロセッサデバイス５０４は、特殊目的または汎用プロセッサデバイスであり得る。当業者によって理解されるように、プロセッサデバイス５０４はまた、マルチコア／マルチプロセッサシステム内の単一プロセッサであり得、そのようなシステムは、単独で、あるいはクラスタまたはサーバファーム内で動作するコンピューティングデバイス内のクラスタ内で動作する。プロセッサデバイス５０４は、通信インフラストラクチャ５０６、例えば、バス、メッセージキュー、ネットワーク、またはマルチコアメッセージ受け渡し方式に接続される。
【００８７】
コンピュータシステム５００はまた、メインメモリ５０８、例えば、ランダムアクセスメモリ（ＲＡＭ）を含み、また、二次メモリ５１０を含み得る。二次メモリ５１０は、例えば、ハードディスクドライブ５１２およびリムーバブル記憶ドライブ５１４を含み得る。リムーバブル記憶ドライブ５１４は、フロッピー（登録商標）ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュメモリ、または同等物を備え得る。リムーバブル記憶ドライブ５１４は、公知の様式において、リムーバブル記憶ユニット５１８からの読取および／またはそこへの書込を行う。リムーバブル記憶ユニット５１８は、リムーバブル記憶ドライブ５１４によって読み取られ、そこに書き込まれる、フロッピー（登録商標）ディスク、磁気テープ、光ディスク等を備え得る。当業者によって理解されるように、リムーバブル記憶ユニット５１８は、その中に記憶されたコンピュータソフトウェアおよび／またはデータを有する、コンピュータ使用可能記憶媒体を含む。
【００８８】
代替実装では、二次メモリ５１０は、コンピュータプログラムまたは他の命令をコンピュータシステム５００内にロード可能にするための他の類似手段を含み得る。そのような手段は、例えば、リムーバブル記憶ユニット５２２およびインターフェース５２０を含み得る。そのような手段の実施例は、プログラムカートリッジおよびカートリッジインターフェース（ビデオゲームデバイス内に見られるもの等）、リムーバブルメモリチップ（ＥＰＲＯＭまたはＰＲＯＭ等）および関連付けられたソケット、ならびにソフトウェアおよびデータをリムーバブル記憶ユニット５２２からコンピュータシステム５００に転送可能にする、他のリムーバブル記憶ユニット５２２およびインターフェース５２０を含み得る。
【００８９】
コンピュータシステム５００はまた、通信インターフェース５２４を含み得る。通信インターフェース５２４は、ソフトウェアおよびデータをコンピュータシステム５００と外部デバイスとの間で転送可能にする。通信インターフェース５２４は、モデム、ネットワークインターフェース（イーサネット（登録商標）カード等）、通信ポート、ＰＣＭＣＩＡスロットおよびカード、または同等物を含み得る。通信インターフェース５２４を介して転送されるソフトウェアおよびデータは、電子、電磁、光学、または通信インターフェース５２４によって受信可能な他の信号であり得る、信号の形態であり得る。これらの信号は、通信進路５２６を介して、通信インターフェース５２４に提供され得る。通信進路５２６は、信号を搬送し、有線またはケーブル、光ファイバ、電話回線、携帯電話リンク、ＲＦリンク、または他の通信経路を使用して、実装され得る。
【００９０】
本書では、用語「コンピュータプログラム媒体」および「コンピュータ使用可能媒体」は、概して、リムーバブル記憶ユニット５１８、リムーバブル記憶ユニット５２２、およびドライブ５１２内にインストールされるハードディスク等の媒体を指すために使用される。コンピュータプログラム媒体およびコンピュータ使用可能媒体はまた、メモリ半導体（例えば、ＤＲＡＭ等）であり得る、メインメモリ５０８および二次メモリ５１０等のメモリを指し得る。
【００９１】
コンピュータプログラム（コンピュータ制御論理とも呼ばれる）は、メインメモリ５０８および／または二次メモリ５１０内に記憶される。コンピュータプログラムはまた、通信インターフェース５２４を介して、受信され得る。そのようなコンピュータプログラムは、実行されると、コンピュータシステム５００が、本明細書に論じられるような実施形態を実装することを可能にする。特に、コンピュータプログラムは、実行されると、プロセッサデバイス５０４が、前述の図４の流れ図４００によって図示される方法における段階等、本発明の実施形態のプロセスを実装することを可能にする。故に、そのようなコンピュータプログラムは、コンピュータシステム５００のコントローラを表す。実施形態が、ソフトウェアを使用して実装される場合、ソフトウェアは、コンピュータプログラム製品内に記憶され、リムーバブル記憶ドライブ５１４、インターフェース５２０、ハードディスクドライブ５１２、または通信インターフェース５２４を使用して、コンピュータシステム５００内にロードされ得る。
【００９２】
本発明の実施形態はまた、任意のコンピュータ使用可能媒体上に記憶されるソフトウェアを備える、コンピュータプログラム製品を対象とし得る。そのようなソフトウェアは、１つ以上のデータ処理デバイス内で実装されると、データ処理デバイスを本明細書に説明されるように動作させる。本発明の実施形態は、任意のコンピュータ使用可能または可読媒体を採用する。コンピュータ使用可能媒体の実施例として、一次記憶デバイス（例えば、任意のタイプのランダムアクセスメモリ）、二次記憶装置デバイス（例えば、ハードドライブ、フロッピー（登録商標）ディスク、ＣＤ  ＲＯＭＳ、ＺＩＰディスク、テープ、磁気記憶デバイス、光学記憶デバイス、ＭＥＭＳ、ナノテクノロジー記憶デバイス等）、および通信媒体（例えば、有線および無線通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク、イントラネット等）が挙げられるが、それらに限定されない。
【００９３】
（結論）
概要および要約の項は、本発明者らによって検討されるような本発明の全てではないが１つ以上の例示的実施形態を記載し得、したがって、決して本発明および添付の請求項を限定することを目的としない。
【００９４】
本発明の実施形態は、その指定機能および関係の実装を図示する機能的構成要素を用いて、上記で説明された。これらの機能的構成要素の境界は、説明の便宜上、本明細書では任意に規定した。その指定機能および関係が適切に実施される限り、代替的境界を規定することができる。
【００９５】
特定の実施形態の先述の説明は、本発明の一般概念から逸脱することなく、必要以上の実験を伴わずに、当技術分野内の知識を適用することによって、他者がそのような特定の実施形態を容易に修正し、および／または種々のアプリケーションに適合させることができる、本発明の一般的性質を完全に明らかにする。したがって、そのような適合および修正は、本明細書で提示される教示および指導に基づいて、開示された実施形態の同等物の意味および範囲内となることを目的とする。本明細書の用語または表現が、教示および指導に照らして当業者によって解釈されるものであるように、本明細書の表現または用語は、限定ではなく説明の目的によるものであることを理解されたい。
【００９６】
本発明の幅および範囲は、上記の例示的実施形態のうちのいずれによっても限定されるべきではないが、以下の請求項およびそれらの同等物のみに従って定義されるべきである。
【図２】
0005899232.tif 000002
【図３Ａ】
0005899232.tif 000003
【図３Ｂ】
0005899232.tif 000004
【図３Ｃ】
0005899232.tif 000005
【図３Ｄ】
0005899232.tif 000006
【図３Ｅ】
0005899232.tif 000007
【図１】
0005899232.tif 000008
【図４】
0005899232.tif 000009
【図５】
0005899232.tif 000010
【図６Ａ】
0005899232.tif 000011
【図６Ｂ】
0005899232.tif 000012