(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-05
(45)【発行日】2023-10-16
(54)【発明の名称】立体視効果を調節するためのシステムおよび方法
(51)【国際特許分類】
A63F 13/525 20140101AFI20231006BHJP
A63F 13/5258 20140101ALI20231006BHJP
G06T 19/00 20110101ALI20231006BHJP
【FI】
A63F13/525
A63F13/5258
G06T19/00 C
【外国語出願】
(21)【出願番号】P 2019106797
(22)【出願日】2019-06-07
【審査請求日】2022-04-12
(32)【優先日】2018-06-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】ロリー ジョンストン
(72)【発明者】
【氏名】ジョナサン ジョンソン
【審査官】関口 英樹
(56)【参考文献】
【文献】特開2012-252566(JP,A)
【文献】特開平10-188034(JP,A)
【文献】特開2011-215918(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24
13/00-13/98
G06F 3/01
3/048-3/04895
G06T 1/00
11/00-19/20
(57)【特許請求の範囲】
【請求項1】
立体視表示用に構成される表示装置上に表示されるビデオゲーム中の立体視画像を調節するように構成されるシステムであって、
プロセッサと、
前記プロセッサに動作するように結合されかつコンピュータ読出可能命令を記憶するメモリとを備え、当該命令は、前記プロセッサによって実行されると、前記システムに、
少なくとも1つの仮想カメラを、前記仮想カメラの基準仮想面が仮想プレイヤキャラクタオブジェクトの位置に従って位置決めされた状態で、仮想三次元空間中に位置決めさせ
、前記仮想三次元空間は、少なくともゲーム地形および前記仮想プレイヤキャラクタオブジェクトを有するゲーム世界と、前記ゲーム世界の周囲に設定されるバウンディングボックスと
を含み
、
前記仮想カメラの視点位置と前記仮想プレイヤキャラクタオブジェクトとの間の線
が、前記バウンディングボックスの少なくとも1つの部分と交
差するかどうかを判定させ、
前記交差が存在する前記線に沿った位置に基づいて、前記仮想カメラの前記基準仮想面を調節させ、かつ
前記仮想カメラの前記視点位置の視点からの前記仮想三次元空間を示す立体視画像を生成させて表示さ
せる、システム。
【請求項2】
立体視表示用に構成される表示装置上に表示されるビデオゲーム中の立体視画像を調節するように構成されるシステムであって、
プロセッサと、
前記プロセッサに動作するように結合されかつコンピュータ読出可能命令を記憶するメモリとを備え、当該命令は、前記プロセッサによって実行されると、前記システムに、
少なくとも1つの仮想カメラを、前記仮想カメラの基準仮想面が仮想プレイヤキャラクタオブジェクトの位置に従って位置決めされた状態で、仮想三次元空間中に位置決めさせ
、前記仮想三次元空間は、少なくともゲーム地形および前記仮想プレイヤキャラクタオブジェクトを有するゲーム世界と、前記ゲーム世界の周囲に設定される複数のバウンディングボックスと
を含み
、
前記仮想カメラの視点位置と前記仮想プレイヤキャラクタオブジェクトとの間の線
が、前記複数のバウンディングボックスのうち1つの少なくとも一部と交
差するかどうかを判定させ、
前記交差が存在する前記線に沿った位置に基づいて、前記仮想カメラの前記基準仮想面を調節させ、かつ
前記仮想カメラの前記視点位置の視点からの前記仮想三次元空間を示す立体視画像を生成させて表示さ
せる、システム。
【請求項3】
前記コンピュータ読出可能命令は、実行されると、前記システムにさらに、
前記仮想カメラの視点位置と前記仮想プレイヤキャラクタオブジェクトとの間の複数の線
が、前記バウンディングボックスと1つ以
上交差するかどうかを判定させ、かつ
前記仮想カメラに最も近い前記複数の線のうちの1本に沿った位置に基づいて前記仮想カメラの前記基準仮想面を調節させる、請求項
1または2に記載のシステム。
【請求項4】
仮想三次元空間中において、少なくとも1つの仮想カメラの基準仮想面を調節するように構成されるシステムであって、
前記仮想三次元空間は、少なくともゲーム地形および仮想プレイヤキャラクタオブジェクトを有するゲーム世界と、前記ゲーム世界の周囲に設定されるバウンディングボックスとを含み、前記システムは、
プロセッサと、
前記プロセッサに動作するように結合されかつコンピュータ読出可能命令を記憶するメモリとを備え、当該命令は、前記プロセッサによって実行されると、前記システムに、
前記仮想三次元空間中の仮想カメラの視点位置と前記仮想三次元空間中の対象との間の線
が、前記バウンディングボックスの少なくとも1つの部分と交
差するかどうかを判定させ、
前記交差が存在する前記線に沿った位置に基づいて、前記仮想カメラの前記基準仮想面を設定させ、
前記仮想カメラの視点からの前記仮想三次元空間を表わす画像を生成させて表示さ
せる、システム。
【請求項5】
仮想三次元空間中において、少なくとも1つの仮想カメラの基準仮想面を調節するように構成されるシステムであって、
前記仮想三次元空間は、少なくともゲーム地形および仮想プレイヤキャラクタオブジェクトを有するゲーム世界と、前記ゲーム世界を覆うように設定される複数のバウンディングボックスとをさらに含み、前記システムは、
プロセッサと、
前記プロセッサに動作するように結合されかつコンピュータ読出可能命令を記憶するメモリとを備え、当該命令は、前記プロセッサによって実行されると、前記システムに、
前記仮想三次元空間中の仮想カメラの視点位置と前記仮想三次元空間中の対象との間の線
が、前記複数のバウンディングボックスのうち1つの少なくとも一部と交
差するかどうかを判定させ、
前記交差が存在する前記線に沿った位置に基づいて、前記仮想カメラの前記基準仮想面を設定さ
せる、システム。
【請求項6】
前記コンピュータ読出可能命令は、実行されると、前記システムにさらに、
前記仮想カメラの視点位置と仮想プレイヤキャラクタオブジェクトとの間の複数の線
が、前記バウンディングボックスと1つ以
上交差するかどうかを判定させ、かつ
前記仮想カメラに最も近い前記複数の線のうちの1本に沿った位置に基づいて前記仮想カメラの基準仮想面を調節させる、請求項
4または5に記載のシステム。
【請求項7】
前記対象は、前記仮想三次元空間中に位置決めされる仮想プレイヤキャラクタオブジェクトである、請求項
4~6のいずれか1項に記載のシステム。
【請求項8】
前記視点位置は、少なくとも2つの仮想カメラの位置に基づいて判定され、生成されて表示される前記画像は、前記少なくとも2つの仮想カメラの位置に基づいて判定された前記視点位置から見た立体視画像である、請求項
4~7のいずれか1項に記載のシステム。
【請求項9】
情報処理装置の表示装置を用いて表示される画像における視覚的効果を調節する方法であって、
少なくとも1つの仮想カメラを仮想三次元空間中に位置決めすること
を備え、前記仮想三次元空間は、少なくともゲーム地形およ
び仮想プレイヤキャラクタオブジェクトを有するゲーム世界と、前記ゲーム世界の周囲に設定されるバウンディングボックスと
を含み
、
前記仮想三次元空間中の前記仮想カメラの視点位置と前記仮想三次元空間中の対象との間の線
が、前記バウンディングボックスの少なくとも1つの部分と交
差するかどうかを判定することと、
前記交差が存在する前記線に沿った位置に基づいて、前記仮想カメラの基準仮想面を設定することと、
前記仮想カメラの視点からの前記仮想三次元空間を表わす画像を生成して表示することとを備
える、方法。
【請求項10】
情報処理装置の表示装置を用いて表示される画像における視覚的効果を調節する方法であって、
少なくとも1つの仮想カメラを仮想三次元空間中に位置決めすること
を備え、前記仮想三次元空間は、少なくともゲーム地形および仮想プレイヤキャラクタオブジェクトを有するゲーム世界と、前記ゲーム世界の周囲に設定される複数のバウンディングボックスと
を含み
、
前記仮想三次元空間中の前記仮想カメラの視点位置と前記仮想三次元空間中の対象との間の線
が、前記複数のバウンディングボックスのうち1つの少なくとも一部と交
差するかどうかを判定することと、
前記交差が存在する前記線に沿った位置に基づいて、前記仮想カメラの基準仮想面を設定することと、
前記仮想カメラの視点からの前記仮想三次元空間を表わす画像を生成して表示することとを備
える、方法。
【請求項11】
コンピュータ読出可能命令を備えるコンピュータ読出可能記憶媒体であって、当該命令は、情報処理装置のプロセッサによって実行されると、前記情報処理装置に、
少なくとも1つの仮想カメラを仮想三次元空間中に位置決めすること
を備え、前記仮想三次元空間は、少なくともゲーム地形および仮想プレイヤキャラクタオブジェクトを有するゲーム世界と、前記ゲーム世界の周囲に設定されるバウンディングボックスと
を含み
、
前記仮想三次元空間中の前記仮想カメラの視点位置と前記仮想三次元空間中の仮想オブジェクトとの間の線
が、前記バウンディングボックスの少なくとも1つの部分とに交
差するかどうかを判定することと、
前記交差が存在する前記線に沿った位置に基づいて前記仮想カメラの基準仮想面を設定することと、
前記仮想カメラの視点からの前記仮想三次元空間を表わす立体視画像を生成して表示することと、
を行なわ
せる、コンピュータ読出可能記憶媒体。
【請求項12】
コンピュータ読出可能命令を備えるコンピュータ読出可能記憶媒体であって、当該命令は、情報処理装置のプロセッサによって実行されると、前記情報処理装置に、
少なくとも1つの仮想カメラを仮想三次元空間中に位置決めすること
を備え、前記仮想三次元空間は、少なくともゲーム地形および仮想プレイヤキャラクタオブジェクトを有するゲーム世界と、前記ゲーム世界の周囲に設定される複数のバウンディングボックスと
を含み
、
前記仮想三次元空間中の前記仮想カメラの視点位置と前記仮想三次元空間中の仮想オブジェクトとの間の線
が、前記複数のバウンディングボックスのうち1つの少なくとも一部と交
差するかどうかを判定することと、
前記交差が存在する前記線に沿った位置に基づいて前記仮想カメラの基準仮想面を設定することと、
前記仮想カメラの視点からの前記仮想三次元空間を表わす立体視画像を生成して表示することと、
を行なわ
せる、コンピュータ読出可能記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
技術的概要
多くの現代のビデオゲームは、仮想三次元空間にオブジェクトが存在する仮想環境を確立し、仮想三次元空間は1つ以上の仮想カメラによって「画像化」される。次に、仮想カメラがキャプチャする画像は表示装置上にレンダリングされ、そこでユーザは仮想三次元環境でオブジェクトと対話することができる。場合により、表示装置は「リアルな」三次元画像を生成するように構成される。そのような装置の一例が立体視表示装置であり、当該立体視表示装置が生成することができる画像により、見る人は、表示されるオブジェクトがあたかも「現実の」世界に存在するかのような奥行き感を感じることができる。そのような装置はユーザに非常に「リアルな3D」体験を与えることができるが、三次元環境の仮想画像をレンダリングする際にはある欠点が存在する。
【0002】
著作権表示
この特許文献の開示の一部は著作権保護の対象となる内容を含む。著作権者は、当該特許文献または特許開示が特許商標庁の特許ファイルまたは記録に現われる限りにおいては、何人によるその完全な複写に対しても異議を申立てるものではないが、それ以外の一切の著作権を留保する。
【図面の簡単な説明】
【0003】
【
図2】情報処理機器の内部構成の例を示すブロック図である。
【
図3】
図3Aおよび3Bは仮想空間の画像を生成するための非限定的かつ例示的な図である。
【
図4】ビデオゲーム世界の非限定的かつ例示的な仮想環境の図である。
【
図5A】画像の視覚的効果を調節するための例示的な方法の図である。
【
図5B】画像の視覚的効果を調節するための例示的な方法の図である。
【
図5C】画像の視覚的効果を調節するための例示的な方法の図である。
【
図6A】画像の視覚的効果を調節するための別の例示的な方法の図である。
【
図6B】画像の視覚的効果を調節するための別の例示的な方法の図である。
【
図6C】画像の視覚的効果を調節するための別の例示的な方法の図である。
【
図6D】画像の視覚的効果を調節するための別の例示的な方法の図である。
【
図7A】画像の視覚的効果を調節するための別の例示的な方法の図である。
【
図7B】画像の視覚的効果を調節するための別の例示的な方法の図である。
【
図7C】画像の視覚的効果を調節するための別の例示的な方法の図である。
【発明を実施するための形態】
【0004】
技術の例示的かつ非限定的な実施形態の詳細な説明
ソフトウェアプログラムは、表示装置上に表示可能な仮想三次元空間を生成することができる。たとえば、多くのビデオゲームは、プレイヤキャラクタ、敵オブジェクト、ならびに他の仮想オブジェクトおよび地形が存在する仮想三次元環境の中に「ゲーム世界」を生成する。ゲーム世界を生成する際、1つ以上の仮想カメラがゲーム世界を「画像化」することができ、それにより「キャプチャされた」画像がレンダリングされて表示される。
【0005】
立体視表示の例では、ゲーム世界は、少なくとも左仮想カメラおよび右仮想カメラを用いて画像化され得る。ゲーム世界の中のあるオブジェクトは、互いに異なる左仮想カメラおよび右仮想カメラの観察位置に存在し得る。当該特定のオブジェクトについてのこの差の大きさが視差量と考えられ得る。
【0006】
立体視表示用の画像をレンダリングする際、視差量の結果、(ディスプレイ内部に)引込むまたはディスプレイから「飛び出す」ようなオブジェクトの奥行き感が知覚される。そのため、(視差量に依存して)あるオブジェクトは、ディスプレイから飛び出している、またはディスプレイ内部に引込んでいるように見え、これにより、あたかも画像がリアルな三次元画像であるかのような知覚を画像に与える。同様に、あるオブジェクトは、位置の差がほとんどか全くないような左仮想カメラと右仮想カメラとの両方の観察位置にあることがある。これらの事例では、オブジェクト同士の間には視差がほとんどないか全くなく、それらはあたかもディスプレイ上にある(すなわちディスプレイの内部に引込んだりディスプレイから飛び出したりしていない)ように見える。
【0007】
ビデオゲーム環境などのある環境では、1つ以上の仮想カメラは、仮想三次元空間において特定のオブジェクトに追従することがある。さらに、仮想カメラは、視差がほとんどか全くない(すなわち、何らかの奥行き感を有するよりもむしろディスプレイ上に存在すると知覚される)ようにオブジェクトをレンダリングすることによって、オブジェクトに「焦点合わせ」することがある。ある事例では、画像が生成されているときに、さまざまなオブジェクトまたは地形の一部がオブジェクトの視界を妨げることがある。立体視画像がレンダリング中である状況では、画像はさまざまな障害物を示すことがあるだけでなく、不自然であるまたは見て違和感があることがある。
【0008】
1つの例では、ゲームはカメラシステムの自由な動きを許容し得る。たとえば、三人称視点のゲーム(たとえばアクションパズルゲーム)では、ユーザは何らかの種類の入力装置を用いてプレイヤキャラクタをコントロールし得る。この例では、カメラはプレイヤの入力に基づいて対象位置の周りで実質的に自由に回転することができ、対象位置はズームレベルに依存して異なり得る(たとえば、最も遠いズームは地形/ステージ全体の中心に照準を合わせる可能性がある一方で、最も近いズームは仮想オブジェクトの位置に中心を合わせる可能性がある)。
【0009】
カメラシステムの自由な動きにより、地形の距離全体にわたって俯瞰し(またはプレイヤキャラクタのカメラ視界を遮る壁を見すら)しながら、プレイヤキャラクタにぴったりとズームインすることが可能である。そのような場合、プレイヤキャラクタの前のオブジェクトは画面から「飛び」出すように見えることがあり、極端な場合、方向感覚を大きく失わせるかつ不自然な態様で見えることがある。さらに、ディスプレイの縁にあるオブジェクトは部分的にしか描かれない(すなわちクリッピングされる)ことがあり、したがって立体視画像としてレンダリングされた際にディスプレイから飛び出すと非常に不自然に見えることがある。一般的に、見る人が立体視効果をもって画像を見ることができる範囲は非常に限られていることがあり、そのため大き過ぎる引込み効果または飛び出し効果が感じられるのは望ましくない。さらに、飛び出し効果を有するオブジェクトの好ましい範囲は、引込み効果を有するオブジェクトの好ましい範囲よりも狭い。
【0010】
本明細書中に記載される技術は、特に立体視効果についての画像の視覚的効果を調節するためのシステムおよび方法を提示する。1つの例示的な実施形態では、当該技術は、仮想世界における仮想カメラ位置とオブジェクトとの位置との間に「衝突」が検出されるかどうかを判定し、次に「衝突」に関連付けられる交差ポイントに基づいて仮想カメラの基準仮想面を調節することができる。そうする際に、当該技術は有利には、視覚的効果(たとえば立体視効果)の調節に大量の処理資源を費やすことなく、ユーザが快適に見る態様で仮想三次元画像をレンダリングする。この明細書を通じて記載される例は、表示される画像の立体視効果を調節することに向けられることを認めるべきである。しかしながら、当該技術は立体視表示に限定されるのではなく、当該技術は、本明細書中に記載する技法が二次元表示と三次元表示との両方を含む任意のさまざまな表示装置において用いられることを企図する。
【0011】
さらに、明細書に記載される技術は、ある例では、仮想カメラの「焦点」を調節することを指す。1つの非限定的な例では、1つ以上の仮想カメラの「焦点」を調節することは、基準仮想面に近い位置にあるオブジェクトが視差をほとんどか全く有しない(かつ、したがって画面上ではディスプレイ上にあるかのように見える)ように仮想カメラの基準仮想面(「ゼロ面」と称されることがある)を調節することを指すことがあることを認めるべきである。加えて、この明細書に記載されるある例は、プレイヤキャラクタオブジェクトに照準を合わせる仮想カメラを指す。しかしながら、仮想カメラは、任意の特定のオブジェクトに照準を合わせてもよく、本明細書中に記載される技術は、如何なる態様でもプレイヤキャラクタオブジェクトに照準を合わせることに限定されるものではないことを認めるべきである。
【0012】
この要約は、以下で詳細な説明にさらに記載するさまざまな概念を簡略化した形態で紹介するために提供される。この要約は、請求される主題の重要な特徴または必須の特徴を同定することも、請求される主題の範囲を限定するために用いられることも意図しない;むしろ、この要約は、この書類に記載される主題の概要を提供することを意図する。したがって、上述の特徴は例に過ぎず、本明細書中に記載される主題の他の特徴、局面、および利点が以下の詳細な説明、図、および請求項から明らかになるであろうことが認められる。
【0013】
以下の記載では、説明および非限定の目的のため、記載される技術の理解を与えるために特定のノード、機能的エンティティ、技法、プロトコルなどの具体的な詳細を述べる。以下に記載する具体的詳細とは別に他の実施形態を実践してもよいことが当業者には明らかであろう。他の事例では、不要な詳細で記載を曖昧にしないために、周知の方法、装置、技法などの詳細な記載を省略する。
【0014】
この詳細な説明では、セクションは、各セクションの一般的主題について読み手を導くためにのみ用いられる;以下に見られるように、多くの特徴の説明は複数のセクションにわたり、見出しは任意のセクションに含まれる記載の意味に影響を及ぼすと解釈されるべきではない。
【0015】
視覚的効果を調節するための例示的なシステム
図1は、本実施形態に従う携帯型ゲーム機器10の外観図を示す。
図1に示されるように、携帯型ゲーム機器10は、下側筐体11と上側筐体21とを含む。下側筐体11と上側筐体21とは、折畳んだ態様で開閉可能(折畳み可能)に互いに接続される。通常、ユーザは、携帯型ゲーム機器10を開いた状態で使用する。携帯型ゲーム機器10を使用しないときは、ユーザは携帯型ゲーム機器10を閉じた状態にしておく。下側筐体11には、下側LCD(液晶ディスプレイ:液晶ディスプレイ装置)12およびタッチパネル13が設けられる。さらに、下側筐体11には、操作ボタン、アナログスティックなども設けられる。一方、上側筐体21には、上側LCD(液晶ディスプレイ:液晶ディスプレイ装置)22が設けられる。
【0016】
上側LCD22および/または下側LCD12は、二次元画像および/または三次元画像(たとえばリアルな3D画像)の両方を表示するように構成可能であることを認めるべきである。たとえば、上側LCD22は、立体視可能画像を表示することができる表示装置であることができる。上側LCD22は、実質的に同じ表示領域を用いて左目画像と右目画像とを表示することができる。具体的に、上側LCD22は、左目画像と右目画像とが予め定められた単位で(たとえば1行置きに)水平方向に交互に表示される方法を用いた表示装置であることができる。上側LCD22は、左目画像と右目画像とがある期間交互に表示される方法を用いる表示装置であってもよいことに留意すべきである。さらに、上側LCD22は、裸眼で立体視可能な画像を表示することができる表示装置であることができる。この場合、レンチキュラー式表示装置またはパララックスバリア式表示装置が用いられるため、水平方向に交互に表示される左目画像と右目画像とをそれぞれ左目および右目で別々に見ることができる。
【0017】
1つの実施形態では、上側LCD22は、パララックスバリア式表示装置であることができる。上側LCD22は、右目画像と左目画像とを用いて裸眼で立体視可能な画像(立体視画像)を表示する。すなわち、上側LCD22は、視差バリアを用いて、ユーザが自身の左目で左目画像を、自身の右目で右目画像を見られるようにする。これにより、立体視画像を表示してユーザに立体視効果(立体視可能画像)を与えることができる。さらに、上側LCD22はパララックスバリアをオフにすることができる。パララックスバリアをオフにすると、上側LCD22は平面の態様で画像を表示することができる(上側LCD22は、上述の立体視可能画像に対して平面視画像を表示することができる。これは、同じ表示画像を左目と右目との両方で見ることができる表示モードである)。このように、上側LCD22は、立体視可能画像を表示するための立体視表示モードと画像を平面の態様で表示する(平面視画像を表示する)ための平面表示モードとの間での切換えが可能な表示装置であることができる。表示モードの切換えは、3D調節スイッチ25によって行なわれる。
【0018】
3D調節スイッチ25はスライドスイッチであることができ、上述のように上側LCD22の表示モードの切換えに用いられる。3D調節スイッチ25は、上側LCD22上に表示される立体視可能画像(立体視画像)の立体視効果を調節するのにも用いられる。1つの例示的な実施形態では、3D調節スイッチ25は、ゲーム機器10の開閉状態に拘わらずユーザに見えるように、上側筐体21の内側面と右側面とで共有される端部に設けられる。3D調節スイッチ25は、予め定められた方向(たとえば上下方向)の任意の位置にスライド可能なスライダを含むことができ、上側LCD22の表示モードはスライダの位置に応じて設定される。
【0019】
たとえば、3D調節スイッチ25のスライダが最も低い位置に配置される場合、上側LCD22は平面表示モードに設定され、上側LCD22の画面には平面画像が表示される。上側LCD22が立体視表示モードに設定されたままの間に同じ画像を左目画像および右目画像として用いることができ、それにより平面表示を行なうことを認めるべきである。一方で、スライダが最も低い位置よりも上に配置されると、上側LCD22は立体視表示モードに設定される。この場合、上側LCD22の画面上に立体視可能画像が表示される。スライダが最も低い位置よりも上に配置される場合、立体視画像の見やすさはスライダの位置に応じて調節される。具体的に、右目画像の位置と左目画像の位置との間の水平方向のずれ量はスライダの位置に応じて調節される。
【0020】
携帯型ゲーム機器10はカメラ101も含む。カメラ101は、上側筐体21の表面上(
図1の上側LCD22の上方)に設けられる。このように、カメラ101は、携帯型ゲーム機器10の前にいるユーザの顔を撮像することができる。一例として、カメラ101は、上側LCD22または下側LCD12を見ながらゲームをプレイしている状態のユーザを撮像することができる。
【0021】
さらに、携帯型ゲーム機器10は、赤外光を発する赤外光発光器102を含む。赤外光発光器102は、上側筐体21の表面上のカメラ101に隣接する位置に設けられる。換言すると、赤外光発光器102は、ユーザが携帯型ゲーム機器10を使用している間(たとえばゲームをプレイしている間など)にユーザの顔があるであろう位置に向けて赤外光を発することができる位置に設けられる。この時、カメラ101は、可視光画像に加えて赤外光画像も撮影することができる。赤外光発光器102から発せられる赤外光はユーザの顔を照射し、その反射光がカメラ101に入射する。反射光に基づき、カメラ101は赤外光画像を撮影することができる。
【0022】
図2は、ゲーム機器10の内部構成の例を示すブロック図である。ゲーム機器10は、上述の構成要素とともに、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ記憶外部メモリI/F34、データ記憶内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電力回路41、およびインターフェイス回路(I/F回路)42などの電子構成要素を含む。これらの電子構成要素は電子回路基板上に実装され、下側筐体11に収容される、または上側筐体21に収容されてもよい。
【0023】
情報処理部31は、予め定められたプログラムを実行する中央処理装置(CPU)311と、画像処理などを行なうグラフィック処理装置(GPU)312とを含む情報処理である。1つの例示的な実施形態では、予め定められたプログラムがゲーム機器10に含まれるメモリ(たとえば、外部メモリI/F33に接続される外部メモリ45またはデータ記憶内部メモリ35)に記憶される。情報処理部31のCPU311は予め定められたプログラムを実行し、それにより後述する画像処理またはゲーム処理を行なう。
【0024】
情報処理部31のCPU311が実行するプログラムは、別の装置から、当該別の装置との通信によって取得されてもよいことに留意すべきである。情報処理部31はさらに、ビデオRAM(VRAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に従って画像を生成し、VRAM313において画像を描く。情報処理部31のGPU312は、VRAM313において描かれる画像を上側LCD22および/または下側LCD12に出力し、画像は上側LCD22および/または下側LCD12上に表示される。
【0025】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ記憶外部メモリI/F34、およびデータ記憶内部メモリ35が動作するように結合される。外部メモリI/F33は、外部メモリ45との取り外し可能な接続を確立するためのインターフェイスである。データ記憶外部メモリI/F34は、データ記憶外部メモリ46との取り外し可能な接続を確立するためのインターフェイスである。
【0026】
メインメモリ32は、情報処理部31(CPU311)の作業領域またはバッファ領域として用いられる揮発性記憶手段である。すなわち、メインメモリ32は、画像処理またはゲーム処理に用いられるさまざまな種類のデータを一時的に記憶し、ゲーム機器10が外部(外部メモリ45、別の装置など)から取得したプログラムも一時的に記憶する。1つの例示的な実施形態では、メインメモリ32は、たとえば、擬似SRAM(PSRAM)である。
【0027】
外部メモリ45は、情報処理部31が実行するプログラムを記憶するための不揮発性記憶手段である。外部メモリ45は、たとえば、読出専用半導体メモリによって構成される。外部メモリ45が外部メモリI/F33に接続される場合、情報処理部31は、外部メモリ45に記憶されるプログラムをロードすることができる。情報処理部31がロードするプログラムの実行に応じて、予め定められたプロセスが行なわれる。
【0028】
データ記憶外部メモリ46は読出可能/書込可能不揮発性メモリ(たとえばNANDフラッシュメモリ)から構成され、予め定められたデータを記憶するのに用いられる。たとえば、データ記憶外部メモリ46は、外側キャプチャ部23がキャプチャする画像および/または別の装置がキャプチャする画像を記憶する。データ記憶外部メモリ46がデータ記憶外部メモリI/F34に接続されると、情報処理部31は、データ記憶外部メモリ46に記憶される画像をロードし、当該画像を上側LCD22および/または下側LCD12上に表示することができる。
【0029】
データ記憶内部メモリ35は読出可能/書込可能不揮発性メモリ(たとえばNANDフラッシュメモリ)から構成され、予め定められたデータを記憶するのに用いられる。たとえば、データ記憶内部メモリ35は、無線通信モジュール36を通じて無線通信によってダウンロードされるデータおよび/またはプログラムを記憶する。
【0030】
無線通信モジュール36は、たとえば、IEEE802.11.b/g規格に基づく方法によって無線LANとの接続を確立する機能を有する。さらに、ローカル通信モジュール37は、予め定められた通信方法(たとえば赤外線通信)によって同じ種類の別のゲーム機器と無線通信する機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して別の装置にデータを送信しかつ別の装置からデータを受信することができ、ローカル通信モジュール37を用いて同じ種類の別のゲーム機器にデータを送信しかつ別のゲーム機器からデータを受信することができる。
【0031】
加速度センサ39は情報処理部31に接続される。加速度センサ39は、三軸(本実施形態ではx、y、およびz軸)方向にそれぞれ沿った直線の方向の加速度(直線加速度)の大きさを検出することができる。加速度センサ39は、たとえば、下側筐体11内に設けられる。加速度センサ39はそれぞれの軸方向に発生する直線加速度の大きさを検出することができる。
【0032】
加速度センサ39は、たとえば静電容量式加速度センサであるが、別の種類の加速度センサであってもよいことに留意すべきである。さらに、加速度センサ39は、1つの軸方向の加速度または2つの軸方向の加速度を検出するための加速度センサであってもよい。情報処理部31は、加速度センサ39が検出する加速度を示すデータ(加速度データ)を受信し、ゲーム機器10の向きおよび移動を算出する。
【0033】
角速度センサ40は情報処理部31に接続される。角速度センサ40は、ゲーム機器10の3本の軸(本実施形態ではx、y、およびz軸)の周りに生成される角速度を検出し、検出された角速度を示すデータ(角速度データ)を情報処理部31に出力する。角速度センサ40は、たとえば、下側筐体11内に設けられる。情報処理部31は、角速度センサ40から出力される角速度データを受信し、ゲーム機器10の向きおよび移動を算出する。
【0034】
RTC38および電力回路41は情報処理部31に接続される。RTC38は時間を計測し、計測した時間を情報処理部31に出力する。情報処理部31は、RTC38が計測した時間に基づいて現在時刻(日付)を算出する。電力回路41は、ゲーム機器10の電源(上述の下側筐体11に収容される充電式電池)からの電力を制御し、電力をゲーム機器10の各構成要素に供給する。
【0035】
I/F回路42は情報処理部31に接続される。マイク43、スピーカ44、およびタッチパネル13がI/F回路42に接続される。具体的に、図示しない増幅器を通してスピーカ44がI/F回路42に接続される。マイク43はユーザからの音声を検出し、音声信号をI/F回路42に出力する。増幅器はI/F回路42からの音声信号を増幅し、当該音声をスピーカ44から出力する。I/F回路42は、マイク43およびスピーカ44(増幅器)を制御する音声制御回路と、タッチパネル13を制御するタッチパネル制御回路とを含む。たとえば、音声制御回路は音声信号に対してA/D変換およびD/A変換を行ない、音声信号を予め定められた形式の音声データに変換する。
【0036】
タッチパネル制御回路は、タッチパネル13からの信号に基づいて、予め定められた形式でタッチ位置データを生成し、タッチ位置データを情報処理部31に出力する。タッチ位置データは、入力が与えられたタッチパネル13の入力表面上の位置(タッチ位置)の座標を示す。タッチパネル制御回路は、タッチパネル13からの信号を読出し、予め定められた時間に1度タッチ位置データを生成することに留意すべきである。情報処理部31はタッチ位置データを取得し、それによりタッチパネル13上に入力が与えられたタッチ位置を認識する。
【0037】
操作ボタン14は上述の操作ボタン14Aから14Lを含み、情報処理部31に接続される。操作データは操作ボタン14から情報処理部31に出力され、操作データは、それぞれの操作ボタン14Aから14Iに与えられる入力の状態を示す(操作ボタン14Aから14Iが押下されたか否かを示す)。情報処理部31は操作ボタン14から操作データを取得し、それにより、操作ボタン14に与えられる入力に応じて処理を行なう。
【0038】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は各々、情報処理部31(GPU312)からの命令に従って画像を表示する。1つの例示的な実施形態では、情報処理部31は、下側LCD12に手描き画像入力操作用の画像を表示させ、上側LCD22に外側キャプチャ部23および内側キャプチャ部24のいずれか一方から取得した画像を表示させる。すなわち、たとえば、情報処理部31は、上側LCD22に、内側キャプチャ部24がキャプチャした右目画像および左目画像を用いて立体視画像(立体視可能画像)を表示させるか、または上側LCD22に、外側キャプチャ部23がキャプチャした右目画像および左目画像の一方を用いて平面画像を表示させる。
【0039】
具体的に、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)に接続され、LCDコントローラにパララックスバリアをオン/オフに設定させる。上側LCD22においてパララックスバリアがオンである場合、情報処理部31のVRAM313に記憶される(外側キャプチャ部23によってキャプチャされる)右目画像および左目画像が上側LCD22に出力される。より具体的には、LCDコントローラは、鉛直方向の1行の右目画像の画素データの読出しと鉛直方向の1行の左目画像の画素データの読出しとを繰返し交互に行なって、これによりVRAM313から右目画像および左目画像を読出す。このように、右目画像および左目画像は各々短冊状の画像に分割され、その各1行の画素は鉛直方向に配置され、交互に配置された分割後左目短冊状画像および分割後右目短冊状画像を含む画像が上側LCD22の画面上に表示される。ユーザは上側LCD22のパララックスバリアを通して画像を見て、これにより、ユーザの右目で右目画像を見て、ユーザの左目で左目画像を見る。これにより、上側LCD22の画面上に立体視可能画像が表示される。
【0040】
外側キャプチャ部23と内側キャプチャ部24とは情報処理部31に接続される。外側キャプチャ部23および内側キャプチャ部24は各々、情報処理部31からの命令に従って画像をキャプチャし、キャプチャされた画像のデータを情報処理部31に出力する。第1の実施形態では、情報処理部31は、外側キャプチャ部23および内側キャプチャ部24のいずれか一方に画像をキャプチャする命令を与え、命令を受信したキャプチャ部が画像をキャプチャし、キャプチャされた画像のデータを情報処理部31に送信する。具体的に、ユーザは、タッチパネル13および操作ボタン14を用いた操作により、用いるべきキャプチャ部を選択する。情報処理部31(CPU311)は、キャプチャ部が選択されたことを検出して、情報処理部31は、外側キャプチャ部23および内側キャプチャ部24のうち選択された一方に画像をキャプチャする命令を与える。
【0041】
情報処理部31(CPU311)からの命令によって起動されると、外側キャプチャ部23および内側キャプチャ部24は、たとえば、1秒当たり画像60枚の速度でキャプチャを行なう。外側キャプチャ部23および内側キャプチャ部24がキャプチャするキャプチャ画像は情報処理部31に順次送信され、情報処理部31(GPU312)によって上側LCD22または下側LCD12上に表示される。情報処理部31に出力されると、キャプチャ画像はVRAM313中に記憶され、上側LCD22または下側LCD12に出力され、予め定められた時間に削除される。このように、画像は、たとえば1秒当たり画像60枚の速度でキャプチャされ、キャプチャ画像が表示され、これによりゲーム機器10は、リアルタイムで上側LCD22または下側LCD12上に、外側キャプチャ部23および内側キャプチャ部24の画像化範囲のビューを表示することができる。
【0042】
3D調節スイッチ25は情報処理部31に接続される。3D調節スイッチ25は、スライダの位置に応じて電気信号を情報処理部31に送信する。
【0043】
3Dインジケータ26は情報処理部31に接続される。情報処理部31は、3Dインジケータ26が点灯すべきか否かを制御する。たとえば、上側LCD22が立体視表示モードにある場合、情報処理部31は3Dインジケータ26を点灯させる。
【0044】
図3Aは、オブジェクトOBJ1およびOBJ2を含む三次元仮想空間を表現する画像がディスプレイ22(たとえば上側LCD22)上に表示される非限定的かつ例示的な場合を示す。この例では、仮想カメラ300を三次元仮想空間内の任意の位置に設定することができ、この場合、オブジェクトOBJ1およびOBJ2も当該仮想空間中に配置される。次に、仮想カメラ300を用いて三次元仮想空間内でオブジェクトOBJ1およびOBJ2を仮想的に撮影することによって、画像(平面二次元画像)が生成される。基準仮想カメラ300が生成する画像を含む表示データに基づいて二次元表示をディスプレイ22上に与えることができる。この時、仮想カメラ300は、三次元仮想空間および三次元仮想空間内のオブジェクトを仮想的に撮影して、(たとえば立体視表示を与えずに)二次元表示を与える。
【0045】
図3Bは、上述の二次元表示においてレンダリングされる範囲と同様の範囲を立体視表示するための処理の非限定的な例を示す。この例では、オブジェクトOBJ1およびOBJ2を含む三次元仮想空間において、少なくとも
図3Aに示される二次元表示と同様に仮想カメラ300が指定される(「二次元表示と同様に設定される仮想カメラ」を基準仮想カメラと称することを注記する)。この基準仮想カメラ300の配置位置を基準として、右画像を生成するための右仮想カメラ302および左画像を生成するための左仮想カメラ304のそれぞれの位置および方向が設定される。より具体的には、基準仮想カメラ300のカメラ位置を基準として、右仮想カメラ302は、基準仮想カメラ300から右方向に距離Cだけ離れるように設定され、左仮想カメラ304は、基準仮想カメラ300から左方向に距離Cだけ離れるように設定される。右仮想カメラと左仮想カメラとのそれぞれのカメラ方向および視野角は、基準仮想カメラ300のカメラ方向および視野角と同じ値に設定されることを注記する。具体的には、右仮想カメラ302と左仮想カメラ304とのそれぞれの視野(視体積)も設定される。配置された右仮想カメラ302および左仮想カメラ304を用いて、このように三次元仮想空間内のオブジェクトOBJ1およびOBJ2を仮想的に撮影することにより、右画像および左画像がそれぞれ生成される。次に、右目用の表示データが右画像に基づいて生成され、左目用の表示データが左画像に基づいて生成される。次に、そのような表示データに基づいてディスプレイ22上での立体視表示を与えることができる。
【0046】
要約すると、1つの例示的な実施形態に従う立体視表示処理では、(基準仮想カメラ300を基準として)ディスプレイ22上に仮想空間を表現する画像を立体視表示するのに用いられる右画像および左画像を生成するために、仮想空間(およびその中に含まれるオブジェクト)の仮想撮影に用いられる右仮想カメラ302および左仮想カメラ304が仮想空間内に設定される。この時、右仮想カメラ302および左仮想カメラ304は、右仮想カメラ302のカメラ方向303と、左仮想カメラ304のカメラ方向305とが同じ(すなわち、カメラ方向303とカメラ方向305とが互いに平行)になり、かつカメラ方向303(およびカメラ方向305)が右仮想カメラ302および左仮想カメラ304のそれぞれの位置を通過する直線(基準線350)に対して垂直となるように、仮想空間内に設定される。
【0047】
右仮想カメラ302と左仮想カメラ304とがこのように設定されると、右仮想カメラ302と左仮想カメラ304との視野(視体積)がそれぞれ設定される。この例では、望ましくはディスプレイ22の表示面の周囲に表示すべき範囲である表示対象領域(典型的には、特定的なオブジェクトが存在する仮想空間または範囲内に設定される二次元平面である基準仮想面領域360)が指定される。すなわち、表示対象領域は、ディスプレイ上に表示すべき仮想空間中の領域に少なくとも対応する。この表示対象領域はカメラ方向303および305に対して垂直であり、カメラ方向303および305の側に設定される。右仮想カメラ302および左仮想カメラ304について、右仮想カメラ302の視体積382および左仮想カメラ304の視体積384はそれぞれ、その両者ともが表示対象領域を含むように設定される。
【0048】
すなわち、表示対象領域の平面は、カメラ方向303および305に対して垂直である。さらに、右仮想カメラ302または左仮想カメラ304から見ると、表示対象領域は、カメラ方向303および305の側に存在する。さらに、右仮想カメラ302と左仮想カメラ304との間の中間点から表示対象領域の中心へ延在する方向は、カメラ方向303および305に一致する。さらに、少なくとも1つの仮想カメラに関して、一方の仮想カメラの視体積は、他方の仮想カメラが存在する側に向けて、対応のカメラ方向(カメラ方向303または305)の他方の仮想カメラの位置から延在する線に対して非対称に延在するように設定される。
【0049】
仮想カメラの視体積は、仮想空間(および仮想空間中に含まれるオブジェクト)の画像をレンダリングするための範囲のことであると認めるべきである。すなわち、仮想カメラは、視体積によって規定される範囲内のオブジェクトしかレンダリングしないことがあり、それにより、この範囲外のいずれのオブジェクトもレンダリングされない。視体積は仮想カメラの近傍の側に設定されるニアクリップ面を含むことがある。視体積は、仮想カメラからより遠い側に設定されるファークリップ面も含むことがある。ニアクリップ面およびファークリップ面は、カメラ視線方向に対して垂直に設定されることがあり、ニアクリップ面とファークリップ面との間に位置決めされかつ仮想カメラの視野角内に含まれる1つ以上のオブジェクトがレンダリングされることがある。
【0050】
この時、一方の仮想カメラの視体積が、仮想カメラのカメラ方向に対して非対称に他方の仮想カメラが存在する側「に向けて延在する」という表現は、カメラ軸としてカメラ方向の一方の仮想カメラの位置から延在する直線を仮定して、視体積に含まれる仮想カメラのカメラ軸に対して垂直の任意の平面の中心(たとえば重心)が、カメラ軸に対して、他方の仮想カメラが存在する側のより近くにあることを意味する。換言すると、当該表現は、一方の仮想カメラの視体積全体の重心が、一方の仮想カメラのカメラ軸に対して、他方の仮想カメラが存在する側のより近くに存在する状態を指す。より好ましくは、非対称に延在する右仮想カメラ302の視体積と、非対称に延在する左仮想カメラ304の視体積とが互いに対して対称となる態様で延在する。このように、人間の視野に対応する右画像および左画像を生成することができ、したがってより自然な立体視表示を与えることができる。
【0051】
立体視表示を生成する際、基準仮想面は視体積内にもあってもよい。基準仮想面は三次元仮想空間内に設定され、表示装置の表示面(たとえば、立体視表示を見ているユーザが、その存在を三次元仮想空間中の表示面の位置で感じる平面)の位置に対応することができる。すなわち、基準仮想面にある位置またはその近くにある位置にある仮想三次元空間中のオブジェクトは、(すなわち引込みまたは飛び出し効果を有するよりもむしろ)ディスプレイ上に見えるようにレンダリングされる。この基準仮想面をカメラ方向に対して垂直に設定することもできる。さらに、表示面の実際の大きさは有限であるので、基準仮想面中のディスプレイの表示面上にレンダリングされる範囲に対応する基準仮想面領域を規定することができる。すなわち、無限平面である基準仮想面中のレンダリング範囲(視体積に含まれる範囲)が基準仮想面領域である。
【0052】
「基準仮想面領域」は、立体視表示を与える際にユーザがその存在を表示面の付近に感じる三次元仮想空間内の位置および領域を規定する(それはまさに表示面の位置であることができるが、当該位置は、たとえば表示面から所定のオフセットを有する位置として設定されてもよい)。すなわち、立体視表示は、表示面から前方に飛び出しているかのように見える部分、または表示面の後方の内部に向かって引込んでいるかのように見える部分を含む。右仮想カメラ302および左仮想カメラ304が
図3Bに示されるようにそれぞれの位置に設定されると、基準仮想面領域の周囲の部分に対応する空間の中に位置するオブジェクトがどのように表示されるかは、それぞれの仮想カメラが生成する右画像と左画像との間で同じである(すなわち視差は実質的にない)。したがって、表示面を見るユーザにとっては、基準仮想面領域に対応する部分に位置するオブジェクトは、右目で視認する画像(右画像)と左目で視認する画像(左画像)との間で実質的に同じ位置に存在するかのように見え、結果的に、当該部分は、表示面自体(すなわち、これらの画像を実際に表示する表面)の上に位置決めされているように見える。一方で、基準仮想面領域とは異なる位置に設定される平面に対応する部分に位置するオブジェクトに関しては、右オブジェクト画像と左オブジェクト画像とは、右仮想カメラ302と左仮想カメラ304との間の位置的関係に依存して表示位置が異なり(すなわち、いくらかの視差を有する表示)、ユーザには、当該部分は表示面から飛び出す位置または表示面から引込んだ位置にあるように見える。
【0053】
本明細書中に記載される技法は、立体視効果を調節するために基準仮想面(および対応の基準仮想面領域)を調節することに関することを認めるべきである。以下により詳細に論じるように、仮想カメラは、仮想カメラの視点位置と仮想世界中の対象オブジェクトとの間の交差に基づいて基準仮想面の位置を変更することによって「焦点」を調節することができることがある。同一人に譲渡される(引用により本明細書中に援用される)米国特許出願第12/938,089号で、立体視画像に関連の処理を記載するさまざまな技法をさらに詳細に論じている。
【0054】
図4はビデオゲーム世界の非限定的かつ例示的な仮想環境400を示す。仮想空間400は、オブジェクトを少なくとも三方向に配置しかつ移動させることができる仮想三次元ゲーム空間として表示される。仮想環境は、少なくとも、地形410、プレイヤキャラクタ401、および1つ以上の敵オブジェクト402を含む。この例は当然ながら非限定的であり、仮想空間400は任意のさまざまな地形および/またはオブジェクトを示すように構成される。
【0055】
図4に見られるように、地形410は、草、木、花、梯子、および/またはさまざまな構造などのさまざまなオブジェクトを含む三次元風景を備える。地形は少なくとも三方向に通行可能でもあり、ユーザは、x軸とy軸との両方およびz軸に沿ってプレイヤキャラクタ401を進めることができる。
図4に示される例では、プレイヤキャラクタ401は、場合によっては、(たとえば梯子を用いて)オブジェクトに登るまたは階段を歩いて上ることによって、地形を上下移動することができる。1つの例示的な実施形態では、ゲームの目的は、地形410を進んでいってさまざまな宝物およびオブジェクトを見つけて、当該宝物およびオブジェクトを得ることによってユーザが報酬としてポイントを得ることができることを含み得る。地形410を進んでいく際に、プレイヤキャラクタ401は敵キャラクタ402を避けよ(またはやり過ごすやり方を見出そ)うとする。敵キャラクタ402は、代わりに、(プレイヤキャラクタ401の味方である)フレンドキャラクタ402であってもよく、ゲームは仮想空間400内の敵キャラクタとフレンドキャラクタとの組合せを含むことができることを認めるべきである。
【0056】
仮想空間400は仮想カメラ300から画像化可能である。先に言及したように、仮想カメラ300は、二次元画像または三次元画像(たとえば立体視画像)として表示される画像を生成することができる。
図4に示される例では、カメラ300の配置に基づき、生成されるであろう仮想空間400の画像は、プレイヤキャラクタ401に向かって地形410を俯瞰しながら仮想空間全体を見る(たとえば「ロング」ショットでゲーム地形410を見る)というものであろう。1つの例示的な実施形態では、カメラ300は、プレイヤキャラクタ401が地形410に沿って移動するにつれてプレイヤキャラクタ401に追従することがある。
【0057】
図4の例では、プレイヤキャラクタ401は、ユーザがゲーム装置のアナログスティックをコントロールすることによって移動され得る。たとえば、ユーザがアナログスティックを左方向に動かすと、プレイヤキャラクタ401は表示画面上で左に移動し得る。この例は当然ながら非限定的であり、技術は、(たとえば加速度計および/またはジャイロスコープを用いて)ゲーム装置の動きおよび/または姿勢に対応するようにキャラクタ401を動かすことを含む、プレイヤキャラクタ401を動かすための任意のさまざまな方法を企図する。ユーザは、ゲーム装置に対する1つ以上の入力を用いてカメラ300の位置および/または向きも操作し得る。たとえば、ユーザは、ゲーム装置に装着されている「L」または「R」トリガボタンを押すことによって、カメラを左または右に45度回転させ得る。ユーザは、ゲーム空間中でカメラが対象位置の周りを実質的に自由に回転および移動することができるさまざまな方法を用いて、カメラを移動させることができる。
【0058】
ユーザは、カメラ300を用いてズームインまたはズームアウトもし得る。1つの例では、対象位置は、最も遠いズームが地形全体410の中心に照準を合わせかつ最も近いズームがプレイヤキャラクタ401位置に中心を合わせることができるズームレベルに基づいて異なることがある。1つの非限定的かつ例示的な実施形態では、ステージ/レベルは、実質的に矩形の形状の小さなジオラマとして設計されることを認めるべきである。カメラ300はステージ自体を「クリッピング」しないようにも設計されてもよく、したがって、画像は、部分的に「クリッピングされた」地形410を決して示さない(なぜなら、たとえば、カメラ300は「ロング」ショットでゲーム地形を見ているからである)。
【0059】
以上で言及したように、カメラ300を用いて三次元立体視画像を生成してもよい。ある例示的な実施形態では、三次元効果は、地形410の強過ぎる奥行き感を与えることがあるとともに、プレイヤキャラクタ401に焦点合わせするのがより容易になる(すなわち、ほとんどか全く立体視効果なしにプレイヤキャラクタ401がディスプレイ自体の上に見えるように表示され得る)ようにプレイヤキャラクタ401を立体視野の位置に保とうともすることがある。カメラ300の実質的に自由な動きにより、地形410の全距離にわたって下方を俯瞰(または、プレイヤキャラクタ401のカメラ300ビューを遮る壁を見すら)しながら、プレイヤキャラクタ401を見ることができる。これらの事例では、プレイヤキャラクタ401の前にあるオブジェクト(すなわち、キャラクタ401とカメラ300の位置との間にあるオブジェクト)は、画面から「飛び」出して見えることがある。カメラ300ビューを遮る壁などのある事例では、立体視表示は、方向感覚を失わせかつ不自然に見えることがある。
【0060】
図5Aから
図7Cは、以上で言及した問題に対処するためのさまざまな方法を描く。より具体的には、
図5Aから
図7Cは、対象オブジェクトに対する仮想カメラ300の視点に基づいて画像の視覚的効果(たとえば立体視効果)を調節するための方法を描く。
図5A-
図7Cについて記載する例は対象オブジェクトをプレイヤキャラクタ401として描くことを認めるべきである。しかしながら、この例は非限定的であり、本明細書中に記載される技術は、仮想空間中の任意のさまざまな対象オブジェクトまたは仮想空間中の任意の位置を企図する。すなわち、例はプレイヤキャラクタ401に照準を合わせることを記載するが、所望の対象は、別の仮想オブジェクト(たとえば味方もしくは敵オブジェクト)である可能性があり、または仮想空間中の単に任意の位置である可能性がある。
【0061】
図5A-
図5Cは画像の視覚的効果を調節するための1つの例示的な方法を示す。
図5Aに示される例では、カメラ300は仮想空間400の一方端に配置され、この時、プレイヤキャラクタ401は仮想空間400のほぼ反対側の端にある地形410の上に位置決めされる。この例では、1つ以上の地形401はキャラクタ401とカメラ300との間であってプレイヤキャラクタ401の前に存在する。
図5Aはこのように、1つの地形410が「飛び」出て見える、または見る人が見て違和感を生じる画像を与えることがあるシナリオを描いている。さらに、カメラ300の基準仮想面は、キャラクタ401がほとんどか全く視差を有しない(およびしたがってディスプレイ上に見えるように表示される)ように、キャラクタ401の位置に設定されてもよい。
【0062】
そのような問題に対処するための1つの例示的な方法が本明細書中に記載される技術によって提供される。
図5Aに示される例では、カメラ300位置からプレイヤキャラクタ401へ基準線350が設定される。より具体的には、システムは、カメラ300位置からプレイヤキャラクタ401への線350を設定し、基準ジオメトリとの交差が発生するかどうかを判定する。1つの非限定的な例では、基準ジオメトリとは、仮想空間400のより単純な表示のことであってもよい。すなわち、仮想空間400は、草の個々の葉を有する地形オブジェクト、または仮想空間400に住むと異なる表情を呈するさまざまなプレイヤキャラクタを含む一層の詳細をもって描かれることがある。これらの詳細は、仮想空間400の画像を形成する多数の多角形を用いてレンダリングされる。基準ジオメトリは、実際の画像自体の一層の詳細なしに地形および/または仮想オブジェクトのさまざまな局面を表わす仮想空間400のより単純なもののことであり得る。基準ジオメトリをさまざまな画像レンダリングおよび/または衝突検出技法に用いることができることが認められる。たとえば、基準ジオメトリを用いると、1つ以上の仮想オブジェクトが地形を「通って落ちる」または仮想空間中の壁を通り抜けて歩くことが確実になくなり得る。詳細さが「より低い」基準ジオメトリはこのように、そのような衝突検出を行なうことをより容易にする。というのも、システムが確認を行なわなければならないジオメトリ(または多角形データ)の数がより少ないからである。
【0063】
図5Bは、二次元側面視視点からの
図5Aの例を示す。
図5Aおよび
図5Bに示される例では、線350は交差ポイント411および412で地形410と交差する。この例では、線350は、カメラ300の位置の近くで上向きに突き出す地形の一部と交差(または「衝突」)し、そうすると、この場所で地形の一部が立体視画像中で適切に表示されなくなってしまう。
【0064】
システムは、プレイヤキャラクタ401よりもむしろ最も近い交差ポイント(この例では交差ポイント411)にカメラ300の基準仮想面を調節することによって、当該問題に対処することができる。1つの非限定的かつ例示的な実施形態では、システムは、カメラ300の基準仮想面を調節するのにカメラ300と交差ポイント411との間の距離を用いることがある。たとえば、カメラ300からの基準仮想面の距離は、まず、カメラ300とプレイヤキャラクタ401との間の距離として設定され得る。ポイント411でカメラ300とキャラクタ401との間の交差が検出されると、システムは、カメラ300の基準仮想面の距離をカメラ300と交差ポイント411との間の距離として設定し得る。この方策は有利には地形が「飛び出す」のを防止する。というのも、この調節の後に表示されるあらゆるものが画面「内部」に見えるからである。
【0065】
図5Cは、
図5Aおよび
図5Bに描かれる方法を実行するためのプロセスの流れを描く。プロセスは510で開始する。ここで、システムは、さまざまなオブジェクト(たとえば、地形、プレイヤキャラクタ、敵キャラクタ、障害物、宝物)を含む仮想空間中に1つ以上の仮想カメラ300を位置決めすることができる。
【0066】
520で、システムは、カメラ300の仮想三次元空間中の場所を得ることができる。この位置を、x、y、およびz軸に沿った三次元座標として表わすことができる。システムは、仮想三次元空間中の対象オブジェクトの場所も得ることができる(ステップ530)。この例では、対象オブジェクトはプレイヤキャラクタ401であってもよい。当然ながら、この例は非限定的であり、対象オブジェクトは、仮想空間中の任意の他のオブジェクトおよび/またはポイントであってもよい。
【0067】
カメラ300およびキャラクタ401の当該位置で、システムは、カメラ300からキャラクタ401への線350を設定することができる(540)。1つの非限定的な例では、線350は、表示されていないが線350に沿って交差が存在するかどうかを判定する(550)目的のためにのみ用いられる基準線である。
【0068】
システムが交差を検出しない場合、カメラ300の基準仮想面は、対象オブジェクト(たとえばプレイヤキャラクタ401)に設定されてもよい(560)。1つの非限定的な例では、カメラ300とキャラクタ401との間の距離を用いて、カメラ300からの基準仮想面の距離を設定してもよい。別の例では、代わりに具体的な値を用いて基準仮想面の距離を設定してもよい。たとえば、カメラ300のニアクリップ面を用いて基準仮想面の位置を設定してもよい。
【0069】
システムが交差を検出すると、カメラ300の基準仮想面は、カメラ300に最も近い交差/衝突ポイントに設定される(570)。1つの非限定的な例では、カメラ300と交差ポイントとの間の距離を用いて、カメラ300からの基準仮想面の距離を設定してもよい。次にシステムは、仮想カメラ300の視点から画像をレンダリングすることができる(580)。
【0070】
線350は実際には画面上に描かれない(すなわち表示されない)ことがあるが、代わりに、交差ポイントを判定するための基準として用いられることを認めるべきである。さらに、
図5A-
図5Cに示される例では、交差は、1個以上の基準ジオメトリとの線350の交差に基づいて発生する。この検出に基づき、システムは、(1つよりも多くの交差が発生する事例では)カメラに最も近い交差ポイントを選択し、次にカメラ300と最も近い衝突ポイントとの間の距離に基準仮想面を設定することができる。当然ながら、衝突が検出されない場合、システムは、基準仮想面の位置をプレイヤキャラクタ401の位置(または別の具体的な値)に維持してもよい。
【0071】
図6A-
図6Dは、画像の視覚的効果を調節するための別の例示的な方法を示す。
図5A-
図5Cに示される例と同様に、
図6A-
図6Dに描かれる方法は、仮想カメラ300の基準仮想面を調節するのに「衝突確認」を用いる。
図6A-
図6Dは、バウンディングボックス420を用いて基準仮想面が調節を必要とするかどうかを判定する非限定的かつ例示的な実施形態を示す。
【0072】
図6Aで、カメラ300はここでも仮想空間400の一方端に配置され、この時、プレイヤキャラクタ401は、仮想空間400のほぼ反対側の端にある地形410の上に位置決めされる。
図5Aと同様に、この例は、キャラクタ401とカメラ300との間であってプレイヤキャラクタ401の前にある1つ以上の地形410を描く。このように、ここでも、1つ以上の地形410(または仮想空間400中に表示される仮想オブジェクト)は「飛び」出るように見える、または見る人が見て違和感を生じる画像を与えることがある。
【0073】
図6Aに示される例では、バウンディングボックス420は、交差が存在するか否かを判定するように設けられる。1つの例示的な実施形態では、システムは、仮想空間400の全体を包含するバウンディングボックス420を設定することができる。次に、カメラ300の位置から対象(たとえばプレイヤキャラクタ401)へ基準線350を設定することができる。次にシステムは、線350とバウンディングボックス420の1つ以上の表面との間に交差が発生するかどうかを検出することができる。
図6Aに示される例では、交差ポイント411で少なくとも1つの交差/衝突が発生する。この具体例では、交差ポイント411は、カメラ300に最も近いボックス420の裏面に沿って発生する(すなわち表面上の斜め線で示される)。
【0074】
1つの例示的な実施形態では、カメラ300の位置からキャラクタ401の位置へ、1本よりも多くの線350が設定され得る。たとえば、本明細書中に記載される技術は、視錐台の左側、中央、および右側について用いられる少なくとも3本の線を設定することができる。そのような実現例は有利には、バウンディングボックス420が中心からずれているカメラ300のニアクリップ面の一部と交差する状況を防止し得る。当該技術により、バウンディングボックス420上の任意のポイントとカメラ300ニアクリップ面との間の最短距離を算出できるようにもなる。システムに対する処理コストはより高くなるが、カメラ300の視点位置から任意の数の線を設定してもよく、線の数がより多くなると精度レベルがより高くなり得ることを認めるべきである。さらに、仮想空間400に対してバウンディングボックス420が表わされる一方で、代替的な方策では、バウンディングボックス420を(たとえばカメラ300の)カメラ空間に変換してもよく、その場合は、カメラ300とボックス420との両方の位置を判定することがより正確になり得ることを認めるべきである。
【0075】
図6Bは、側面視視点からの
図6Aの例示的な実施形態を示す一方で、
図6Cは上からの視点(たとえば俯瞰図)からの
図6Aの例示的な実施形態を示す。
図6Cは、少なくとも3本の基準線350a-350cを描いてバウンディングボックス420とのさまざまな交差を検出する例示的な実施形態も具体的に示す。
【0076】
図6B中の基準線350は、側面図中の「いちばん右の」壁に沿ってバウンディングボックス420と「衝突する」。
図6Cでは、基準線350a-350cは、カメラ300の位置から少なくとも3本の線350a-350cを設定することができる例を示すように描かれる。
図6Cの図では、交差ポイントは、(基準線350aと交差する)ポイント411a、(基準線350bと交差する)ポイント411b、および(基準線350cと交差する)ポイント411cにおいて発生する。
【0077】
1つの例示的な実施形態では、システムは、
図6Bに示されるような最も近い交差ポイント411(または
図6Cに示されるポイント411a)に基づいて、カメラ300の基準仮想面を調節してもよい。すなわち、システムは、カメラ300と最も近い交差ポイント411(または
図6Cに示されるポイント411a)との間の距離を用いて、基準仮想面を、プレイヤキャラクタ401に関連付けられる位置から、最も近い交差ポイント411に関連付けられる位置に、調節してもよい。システムは、付加的な制限も加えて(たとえば、カメラ300がその方向に回転することを許されておらず、したがってバウンディングボックス420を強制的に「軸整列」させる場合、任意の頂部または底部での交差の確認を無効化することによって)調節を向上させてもよい。
【0078】
図6Dは、
図6A-
図6Cに描かれる方法を実行するためのプロセスの流れを描く。プロセスは、ステップ610で開始する。ここで、システムは、さまざまなオブジェクト(たとえば、地形、プレイヤキャラクタ、敵キャラクタ、障害物、宝物)を含む仮想空間中に1つ以上の仮想カメラを位置決めすることができる。ステップ620で、システムは、カメラ300の仮想三次元空間中の場所を得ることができる。この位置を、x、y、およびz軸に沿った三次元座標として表わすことができる。同様に、ステップ625で、システムは、(x、y、およびz軸に沿った三次元座標としても表わすことができる)仮想三次元空間中の対象(たとえばプレイヤキャラクタ401)の場所を得ることができる。
【0079】
ステップ630で、システムは、仮想空間400の周りにバウンディングボックス420を設定することができる。1つの非限定的な例では、バウンディングボックス420は、仮想空間400全体を包含してもよい。この例は当然ながら非限定的であり、技術は、バウンディングボックス420が仮想空間400の一部のみを包含することを企図する。ボックス420は必ずしも実質的に立方形状で表わされないことがあり、円筒形、球形、円錐形、または任意の他の形状を含む任意の形状であることができることを認めるべきである。
【0080】
カメラ300およびプレイヤキャラクタ401の当該位置で、システムは、カメラ300から対象(たとえばプレイヤキャラクタ401)の方向に仮想空間400に向けて1つ以上の線350を設定することができる(ステップ640)。
図6Bに示される例では、カメラ300の位置からプレイヤキャラクタ401へ基準線350が設定され、この場合、バウンディングボックス420の壁との交差が検出される。
図6Cに示される例では、カメラ300の位置から対象(たとえばプレイヤキャラクタ401)に関連付けられる方向(たとえばそれぞれ左、中央、および右方向に)に仮想空間400に向けて3本の基準線350a-350cが設定される。1つの例示的な実施形態では、中央の基準線350bをカメラ300からプレイヤキャラクタ401に向けて設定してもよく、この場合、左基準線350aおよび右基準線350cは、中央基準線350bに対して実質的に同じ角度で設定されてもよい。
【0081】
1つの非限定的な例では、線350(または線350a-350c)は、表示されないが交差が線350に沿って発生しているかどうかを判定する(ステップ650)目的のためにのみ用いられる基準線であることが認められるべきである。より具体的には、システムは、(
図6Bに線350としておよび
図6Cに線350a-350cとして示される)線のうち1本がバウンディングボックス420の表面と交差するかどうかを判定する。交差/衝突ポイントに基づいて、システムは、カメラ300の基準仮想面を調節することができる。
【0082】
より詳細には、システムは、ボックス420の1つ以上の表面との交差が線350に沿って発生したかどうかを判定することができる(ステップ660)。交差がない場合またはキャラクタ401とカメラ300との間の距離がボックス420とのいずれの交差ポイントよりも近い場合、システムは、カメラ300の基準仮想面を、具体的な値(たとえば最小の「非常に近い」値)に基づいて設定し(ステップ680)、次に仮想空間400の画像をレンダリングする(ステップ690)ことができる。たとえば、カメラ300は、ボックス420内の位置にある仮想空間400内部に位置決めされてもよく、この場合、カメラ300とプレイヤキャラクタ401との間の距離は、ボックス420の壁とのいずれの衝突よりも近い。この場合、カメラ300の基準仮想面は、具体的な値(たとえばカメラ300ニアクリップ面)に基づいて設定されてもよい。
【0083】
ボックス420の1つ以上の表面との1つ以上の交差が発生すると、システムは、最も近い交差ポイントの位置を判定することができる(ステップ670)。
図6Bの例では、システムはポイント411において最も近い交差を検出し、これにより、仮想カメラ300の基準仮想面は、カメラ300とポイント411との間の距離に基づいて調節される(ステップ675)。たとえば、システムは、カメラ300とポイント411との間の距離を用いてカメラ300の基準仮想面を設定してもよい。
【0084】
図6Cに示される例では、システムは、基準線350a、350b、および350cに沿ってそれぞれ交差ポイント411a、411b、および411cを検出する。衝突ポイント411aがカメラ300に最も近い位置にあるため、システムはカメラ300とポイント411aとの間の距離を用いて基準仮想面を設定することができる(ステップ675)。基準仮想面が一旦設定されると、システムは、仮想空間400の画像をレンダリングすることができる(ステップ690)。
【0085】
線350(または線350a-350c)は、実際には画面上に描かれ(すなわち表示され)ないことがあるが、代わりに交差ポイントを判定するための基準として用いられることを認めるべきである。さらに、ボックス420は、画面上に描かれ(すなわち表示され)ないことがあるが、代わりに交差ポイントを判定するための基準としても用いられる。非限定的例として、システムは、地形、障害物、プレイヤキャラクタ、敵キャラクタ、および任意の他のさまざまな仮想オブジェクトを構成する複数の多角形を生成することによって、
図6Aの例に示される画像をレンダリングする。画面がリフレッシュされる前に(すなわち次の画像がディスプレイ上に描かれる前に)、システムは、バウンディングボックス420の1つ以上の表面との交差が線350(または線350a-350c)の各々のポイントに沿って存在するか否かを検出する。この検出に基づき、システムは、(1つよりも多くの衝突が発生する事例では)カメラに最も近い交差ポイントを選択し、次に最も近い衝突ポイントに基づいてカメラ300の基準仮想面を設定することができる。
【0086】
バウンディングボックス420の使用は、他の方法に勝るある利点を与えることができることも認めるべきである。特に、プロセッサの能力がより低いシステム上では、ジオメトリとの交差の確認は、ゲーム処理に対して不要な処理コストを追加する可能性がある。さらに、交差検出は、より短い光線による確認を用いるとよりうまくいくことがあり、したがって、レベル/風景全体の交差確認は他の交差確認よりも高価になる。加えて、交差確認について、線から離れて位置するオブジェクトが「飛び」出る状況が発生する。1つの非限定的な例では、バウンディングボックス420の使用は、これらの他の方策に勝る利点を与える。なぜなら、ボックス420は、より効率的な交差/衝突検出を可能にするからである。たとえば、基準ジオメトリの各々の部分との交差確認を行なわなければならないというよりもむしろ、システムは有利には、バウンディングボックス420を用いて、ボックス420の異なる表面に沿って交差が発生しているかどうかを判定することができる。すなわち、「直線」交差は、ジオメトリのすべてを通過しなければならないが、バウンディングボックス420は、ボックス420の異なる表面との交差しか検出する必要がない。そのような実現例は、他の方策と比較して、確認を100倍超より迅速に行ない得、したがって、システムは、有利には、処理コストを節約する(これは、特に処理資源がより低いシステムにとっては有用である)。
【0087】
図7A-
図7Cは、画像の視覚的効果を調節するための別の例示的な方法を示す。
図5A-
図5Cおよび
図6A-
図6Dに示される例と同様に、
図7A-
図7Cに描かれる方法は、仮想カメラ300の基準仮想面を調節するのに交差確認も用いる。ある例示的な実施形態では、プレイヤキャラクタ401は、単一バウンディングボックス法を用いるのがより困難な仮想空間400の部分に位置決めされることがある。たとえば、プレイヤキャラクタ401は、バウンディングボックスの壁がプレイヤの実際の壁から遠過ぎる「木の塔」の中に位置決めされることがある。加えて、いくつかのレベルは、異なるオブジェクトおよび障害物(たとえば、パイプ、大砲、傾斜面)を通して接続されるいくつかの小さな区域を含むことがある。
【0088】
図7A-
図7Cは、1つ以上のバウンディングボックス421および422を用いて基準仮想面が調節を必要とするかどうかを判定する非限定的かつ例示的な実施形態を示す。
図7A-
図7Cに提示される方法を用いて、これら先に言及した問題のうちいくつかに対処し得る。
【0089】
図7Aでは、カメラ300はここでも仮想空間400の一方端に配置され、この時、プレイヤキャラクタ401は仮想空間400のほぼ反対側の端にある地形410上に位置決めされる。この例はここでも、1つ以上の地形410および/またはキャラクタ401とカメラ300との間であってプレイヤキャラクタ401の前にある仮想空間400中に表示される仮想オブジェクトを描く。1つ以上の地形410は、「飛び」出るように見える、または見る人が見て違和感を生じる画像を提供することがある。
【0090】
図7Aに示される例では、交差が存在するか否かを判定するのに、複数のバウンディングボックス(すなわち、バウンディングボックス421およびバウンディングボックス422)が設けられる。1つの例示的な実施形態では、システムは、1つ以上の地形410にわたって複数のバウンディングボックス421/422を設定することができる。カメラ300の位置から対象(たとえばプレイヤキャラクタ401)の位置へ、基準線350を設定することができる。システムは次に、基準線350と1つ以上のバウンディングボックス421/422の任意の表面との間に交差が存在するかどうかを検出することができる。仮想カメラ300の位置から1本よりも多くの基準線350を設定してもよいことを認めるべきである。たとえば、システムは、
図6Cに描かれる例と同様に、3本の基準線350a-350cを設定してもよい。
【0091】
図7Aに示される例では、2つの異なるバウンディングボックス421/422上の少なくとも2つのポイントに沿ってそれぞれ交差が発生する。1つの非限定的かつ例示的な実施形態では、システムは、仮想カメラ300に最も近いそれぞれのボックス421/422に関連付けられる交差ポイントに基づいて、仮想カメラ300の基準仮想面を調節してもよい。
【0092】
いくつかの例示的な実施形態では、2つ以上のバウンディングボックス同士の間での切換えの際にクリッピングポイントで立体視値が急に変化する可能性があることを認めるべきである。立体視値が突然変化しないようにするために、システムは、以前の立体視値から次の立体視値に移行するように多数のフレームにわたって内挿を行なうことがある。ある確認をレベルのすべてのバウンディングボックスについても行なって、基準ジオメトリのうち1つも、確実に立体視焦点と交差しないようにしてもよい。
図7A-
図7Cに記載される複数バウンディングボックス法について論じたが、そのような技法を本明細書中に記載される方法(たとえば、
図5A-
図5Cについて論じる基準ジオメトリ法および/または
図6A-
図6Dについて論じる単一バウンディングボックス法)のうち任意のものに適用してもよいことを認めるべきである。
【0093】
カメラ300が特定のバウンディングボックス内に完全に入っている場合、最小値(たとえばカメラ300のニアクリップ面)を用いて基準仮想面を調節してもよい。加えて、立体視焦点で衝撃があるような遷移を防止するために、システムは、基準仮想面がより遠くなる場合には内挿を行なうことができる。さらに、システムは、オブジェクトが基準仮想面を横切るのを一切防止するために、基準仮想面が近づくときには内挿を行なわなくてもよい。そうするにあたって、システムは、基準仮想面を異なるバウンディングボックスの端縁を横切ってスムーズに「スライド」させ、かつ衝撃の強い遷移をさせないようなカメラ300の移動を可能にし得る。ここでも、
図7A-
図7Cに記載する複数バウンディングボックス法に関して論じたが、そのような技法を本明細書中に記載される方法(たとえば、
図5A-
図5Cについて論じた基準ジオメトリ法および/または
図6A-
図6Dについて論じた単一バウンディングボックス法)のうち任意のものに適用してもよいことを認めるべきである。
【0094】
図7Bは、
図7Aに描かれるシナリオを示す仮想空間400の側面図を描く。
図7Bは、基準線350に沿ったバウンディングボックス421/422との交差ポイントを具体的に示す。
図7Bに見られるように、プレイヤキャラクタ401は、カメラ300から仮想空間の反対側の端に位置決めされ、この時、地形の1つ以上の部分はキャラクタ401とカメラ300との間に存在する。
【0095】
この例では、複数個の地形がボックス421/422で示される複数のバウンディングボックスで包含される。
図5Cに示される例と同様に、基準線350は、地形のそれぞれの部分を包含する1つ以上のバウンディングボックス421/422と交差し得る。この例では、線350は、交差ポイント411および412でボックス421および422とそれぞれ交差する。システムは最も近い交差ポイントを判定して、カメラ300と最も近い交差ポイントとの間の距離を用いてカメラ300の基準仮想面を調節し得る。
図7Bに示される例では、最も近い交差ポイントはポイント411で表わされ、カメラ300とポイント411との間の距離を用いてカメラ300の基準仮想面を調節し得る。
【0096】
図7Cは、
図7Aおよび
図7Bに描かれる方法を実行するためのプロセスの流れを描く。プロセスはステップ710で開始し、ここでは、システムは、さまざまなオブジェクト(たとえば、地形、プレイヤキャラクタ、敵キャラクタ、障害物、宝物)を含む仮想空間を生成することができる。ステップ720で、システムは、カメラ300および対象(たとえばプレイヤキャラクタ401)の仮想三次元空間中での場所を得ることができる。この位置を、x、y、およびz軸に沿った三次元座標として表わすことができる。
【0097】
ステップ730で、システムは、仮想空間400中の地形410のさまざまな部分の周りに複数のバウンディングボックス(たとえばボックス421および422)を設定することができる。1つの非限定的な例では、地形410は、複数のバウンディングボックスで完全に覆われてもよい。すなわち、地形410の各区域が少なくとも1つのバウンディングボックスで覆われるように複数のバウンディングボックスを設定してもよい。さらに、複数のバウンディングボックスは仮想空間400の中で互いに重なることができる。当然ながら、この例は非限定的であり、本明細書中に記載される技術は、地形410の一部だけがバウンディングボックスによって包含されることを企図する。
【0098】
システムは、次に、仮想カメラ300の位置から対象(たとえばプレイヤキャラクタ401)の位置に向けて、1つ以上の基準線350を設定し得る(ステップ740)。1つの非限定的な例では、線350は、表示されないが線350に沿って交差が存在するかどうかを判定する目的のためにのみ用いられる基準線である(ステップ750)。より具体的には、システムは、線350が1つ以上のバウンディングボックスの1つ以上の表面と交差するかどうかを判定する。交差が存在する場合、システムは、どの交差ポイントがカメラ300に最も近いかを判定して、次に、最も近い交差ポイントに基づいて基準仮想面を調節することができる。
【0099】
より詳細には、システムは、線350に沿ってボックス421/422の1つ以上の表面との交差が発生したかどうかを判定することができる。衝突が1回だけある場合、システムは、検出された交差ポイントに関連付けられる位置に基づいてカメラ300の基準仮想面を設定し(ステップ770)、次に仮想空間400の画像をレンダリングすることができる(ステップ780)。1つよりも多くの交差ポイントが検出される場合、システムは、最も近い交差ポイントの位置を判定し、次にカメラ300と最も近い交差ポイントとの間の距離を用いて、仮想カメラ300の基準仮想面を設定することができる。基準仮想面が一旦設定されると、システムは、仮想空間400の画像をレンダリングすることができる(ステップ780)。
【0100】
システムが線350とバウンディングボックスのいずれかとの交差を全く検出しない場合、システムは、具体的な値(たとえば、最小の「非常に近い」値)に基づいて仮想カメラ300の基準仮想面を設定することができる(ステップ760)。1つの非限定的な例では、カメラ300の基準仮想面を設定する際、システムは、カメラ300ニアクリップ面の距離を用い、次に仮想空間の画像をレンダリングし得る(ステップ780)。
【0101】
線350は、実際には画面上に描かれ(すなわち表示され)ないことがあるが、代わりに衝突ポイントを判定するための基準として用いられることを認めるべきである。さらに、ボックス421/422は、画面上に描かれ(すなわち表示され)ないことがあるが、代わりに衝突ポイントを判定するための基準としても用いられることがある。
【0102】
非限定的な例として、システムは、地形、障害物、プレイヤキャラクタ、敵キャラクタ、および任意の他のさまざまな仮想オブジェクトを構成する複数の多角形を生成することによって、
図7A中の例に示される画像をレンダリングする。画面がリフレッシュされる前に(すなわち次の画像がディスプレイ上に描かれる前に)、システムは、線350の各々のポイントに沿ってバウンディングボックス421/422の1つ以上の表面との交差が発生したか否かを検出する。この検出に基づいて、システムは、(1つよりも多くの衝突が発生する事例では)カメラに最も近い交差ポイントを選択し、次に、カメラ350と最も近い交差ポイントとの間の距離を用いて基準仮想面を設定することができる。
【0103】
この文書を通じて言及する例は仮想カメラ300を参照することをさらに認めるべきである。仮想カメラ300は単一の仮想カメラおよび/または複数の仮想カメラを表わすことがあることを理解すべきである。さらに、仮想カメラ300は、(上記
図3Bに関して論じる)基準仮想カメラ300を表わすことがあり、その場合、基準仮想カメラ300は、少なくとも、左右の仮想カメラ304および302に基づいている。当然ながら、基準仮想カメラ300は左右の仮想カメラ304/302のみに限定されるのではなく、本明細書中に記載される技術は、任意の数および種類の仮想カメラを用いる基準仮想カメラ300を企図する。
【0104】
この文書の多くの場所で、ソフトウェアモジュールおよびソフトウェアモジュールが行なう行為を説明する。これは記載の容易さのためになされる;この文書中でソフトウェアモジュールが何らかの行為を行なうと記載する際は常に、当該行為は実際には、命令に従って、(プロセッサおよびメモリなどの)背後にあるハードウェア構成要素およびソフトウェアモジュールを備えるデータによって行なわれることを理解すべきである。
【0105】
技術的利点
本明細書中に記載される技術は、特に表示技術が立体視表示される画像に係る場合に、既存の表示技術に対する改良を提供する。1つの非限定的な例では、当該技術により、表示される仮想空間を表わす基準ジオメトリに対するおよび/または仮想空間の一部もしくは全体を包含する1つ以上のバウンディングボックスに対する交差を検出することによって、表示される画像の調節が可能になる。当該技法は、表示されるオブジェクトが不自然に(または見て違和感を生じるように)見えることがなく、これによりユーザインターフェイスが向上するように、表示される画像を調節するという利点を与える。さらに、以上で説明したように、バウンディングボックスに関連付けられる技法は、他の技法に対して、より迅速でより効率的な検出を提供し得る。なぜなら、システムは、基準ジオメトリのあらゆる要素に対して(しかし、1つ以上のバウンディングボックスの表面に対してしか)検出を行なう必要がないからである。そのような方策により、他の方策よりも100倍超速い速度での検出が可能になり得る。
【0106】
選択される定義
この文書中で、所与の項目が「いくつかの実施形態」、「さまざまな実施形態」、「ある実施形態」、「ある例示的な実施形態」、「いくつかの例示的な実施形態」、「例示的な実施形態」に存在すると記載される場合は常に、または任意の他の同様の文言が用いられる場合は常に、所与の項目が、必ずしもすべての実施形態に存在するわけではないが、少なくとも1つの実施形態に存在することを理解すべきである。以上に矛盾することなく、この文書中で、ある行為が行なわれ「得る(てもよい)」、「ることができる」、もしくは「る可能性がある」、ある特徴、要素、もしくは構成要素が所与の文脈の中に含まれ「得る(てもよい)」、「ることができる」、もしくは「る可能性がある」もしくは所与の文脈に適用可能であ「り得る(ってもよい)」、「ることができる」、もしくは「る可能性がある」、所与の項目が所与の属性を有「し得る(てもよい)」、「することができる」、もしくは「する可能性がある」と記載される場合は常に、または「得る(てもよい)」、「することができる」、もしくは「する可能性がある」という語に係る任意の同様の表現が用いられる場合は常に、所与の行為、特徴、要素、構成要素、属性などが、必ずしもすべての実施形態に存在するわけではないが、少なくとも1つの実施形態に存在することを理解すべきである。この文書およびその変形において用いる語および表現は、はっきりとそうでないと述べていなければ、限定的というよりは限定を設けないと解釈されるべきである。以上の例として、「および/または」は、関連付けられる列挙される項目の1つ以上のありとあらゆる組合せを含む(たとえば、aおよび/またはbは、a、b、またはaとbとを意味する);単数形「a」、「an」、および「the」は、「少なくとも1つ」、「1つ以上」などの意味として解釈されるべきである;「例」という語は、その網羅的または限定的な列挙を提供するためではなく、論じている主題の例を与えるのに用いられる;「備える」および「含む」(ならびにその他の活用形および他の変形)という語は、関連付けられる列挙される項目の存在を特定するが、1つ以上の他の項目の存在または追加を排除しない;かつ、項目が「任意の」と記載されていれば、そのような記載は、他の項目も任意でないと示すように理解されるべきではない。
【0107】
本明細書中で用いるように、「非一時的コンピュータ読出可能記憶媒体」という用語は、レジスタ、キャッシュメモリ、ROM、(D-RAM、S-RAM、もしくは他のRAMなどの)半導体メモリ装置、フラッシュメモリ、ハードディスク、磁気光学媒体などの磁気媒体、CD-ROM、DVD、もしくはブルーレイディスク(登録商標)などの光学媒体、または非一時的電子データ記憶のための他の種類の装置を含む。「非一時的コンピュータ読出可能記憶媒体」という用語は、一時的な伝播する電磁信号を含まない。
【0108】
記載される主題のさらなる適用例
図1-
図7Cを参照して限定されることなく含むプロセスステップ、アルゴリズムなどは特定の順序で記載または請求され得るが、そのようなプロセスは、異なる順序で機能するように構成されることがある。換言すると、この文書の中で明示的に記載または請求され得るステップの任意の順または順序は必ずしも、当該ステップをその順序で行なうという要件を示すものではない;むしろ、本明細書中に記載されるプロセスのステップは、任意の可能な順序で行なわれてもよい。さらに、いくつかのステップは、(たとえば1つのステップが他のステップの後に記載されているために)同時でなく発生するように記載または暗示されるにも拘わらず、同時に(または並行して)行なわれてもよい。さらに、図面に描かれることによるプロセスの図示は、図示されるプロセスがその他の変形例および修正例を排除することを暗示するのではなく、図示されるプロセスまたはそのステップのうち任意のものが必要であることを暗示するのではなく、かつ図示されるプロセスが好ましいことを暗示するのではない。
【0109】
さまざまな実施形態を詳細に示しかつ記載したが、請求項は、任意の特定の実施形態または例に限定されるわけではない。上記記載のうちいずれも、任意の特定の要素、ステップ、範囲、または機能が必須であることを暗示すると解釈されるべきではない。当業者には公知の上述の実施形態の要素に対するすべての構造的かつ機能的均等物が本明細書中に引用により明示的に援用されかつ包含されることが意図される。さらに、装置または方法が、本発明が解決しようとするありとあらゆる課題に対処する必要はなく、それが発明によって包含される必要はない。この文書中のいずれの実施形態、特徴、要素、構成要素、またはステップも、公衆に放棄されることを意図されない。
【符号の説明】
【0110】
10 携帯型ゲーム機器、11 下側筐体、12 下側LCD、13 タッチパネル、21 上側筐体、22 上側LCD、25 3D調節スイッチ、31 情報処理部、32メインメモリ、36 無線通信モジュール、37 ローカル通信モジュール、101 カメラ、300 基準仮想カメラ、302 右仮想カメラ、304 左仮想カメラ、311 CPU、312 GPU、350 基準線、400 仮想空間、401 プレイヤキャラクタ、402 敵キャラクタ、410 地形、411,412 交差ポイント、420,421,422 バウンディングボックス