本実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
手持ち式の情報処理端末の代表例として、以下では、コンピュータでもある携帯型のゲーム装置100および携帯情報端末200について説明する。特に、本実施の形態に従うゲーム装置100および携帯情報端末200は、後述するように、立体視表示が可能なディスプレイを有している。手持ち式の情報処理端末としては、ゲーム装置100および携帯情報端末200に限られることなく、携帯電話、スマートフォン、タブレット、ファブレット、PDA(Personal Digital Assistant/Personal Data Assistance)などとしても具現化することができる。さらに、後述するように、プログラムを格納した記録媒体と当該記録媒体を装着可能な本体装置とを含む情報処理システムとして具現化してもよい。さらに、ディスプレイおよびディスプレイに近接して配置されてユーザの赤外領域を含む画像を取得可能なカメラと、各種処理を実行する処理主体とが分離された情報処理システムとして具現化してもよい。
さらに、後述する処理の一部を他の装置(典型的には、ネットワークを介して接続されたサーバ装置)が実行するようにしてもよい。このような具現化の形態においては、情報処理端末は、例えば、ユーザからの操作を受付ける処理や表示処理のみを実行し、実質的な処理のほぼすべてをサーバ装置で実行させるようにしてもよい。
さらに、本明細書において、情報処理端末という用語は、主の情報処理装置に対して、各種操作を与えるためのコントローラ(操作装置)を含み得る。コントローラとして実装した場合には、ディスプレイを実装していてもよいし、そうでなくてもよい。ディスプレイを実装していない場合、立体視表示が可能なディスプレイに関する機能は、外部接続されるディスプレイなどを用いて実現することができる。
[A.用語]
本明細書において、「立体視表示」、「3次元表示」、「3D表示」とは、ユーザが画像に含まれる少なくとも一部のオブジェクトを立体的に視認することができるように、当該画像を表現することを意味する。ユーザにオブジェクトを立体的に視認させるために、典型的には、人間の目や脳の生理的な働きを利用する。このような立体視表示は、ユーザにオブジェクトを立体的に視認させるために表示される画像(典型的には、視差を有するステレオ画像)を用いて実現される。
本明細書において、「平面表示」、「2次元表示」、「2D表示」とは、上述の「立体視表示」などと相対する用語であり、ユーザが画像に含まれるオブジェクトを立体的に視認できないような態様で、当該画像を表現することを意味する。
[B.概要]
本実施の形態に従う手持ち式の情報処理端末は、ディスプレイとユーザとの相対位置関係を推定し、その推定した相対位置関係に応じて複数の表示画像を生成する。さらに、情報処理端末は、生成された複数の表示画像を用いてディスプレイ上で多視点の立体視表示を提供する。より具体的には、情報処理端末は、ディスプレイとユーザとの相対位置関係に応じて、表示する画像(内容)を変化させるとともに、ユーザがディスプレイに正対していない状態であっても立体視表示を楽しめるような処理を実行する。このような処理を採用することで、より現実感のある立体視表示を提供する。
[C.ゲーム装置100]
〈c1:ゲーム装置100の全体構成〉
まず、本実施の形態に従うゲーム装置100の全体構成について説明する。図1は、本実施の形態に従うゲーム装置100の正面図(開状態)である。図2は、図1に示すゲーム装置100の正面側を中心とする投影図である。図2(A)は、ゲーム装置100の正面図(開状態)を示し、図2(B)は、ゲーム装置100の下側面図を示し、図2(C)は、ゲーム装置100の上側面図を示し、図2(D)は、ゲーム装置100の左側面図を示し、図2(E)は、ゲーム装置100の右側面図を示す。図3は、図1に示すゲーム装置100の背面図(開状態)である。
本明細書においては、ゲーム装置100を図1に示すように配置した状態を基準として、すなわちユーザがゲーム装置100を把持して使用する状態を基準として、「正面」、「下側面」、「上側面」、「左側面」、「右側面」、「背面」という用語を用いるが、これらの用語は説明の便宜上のものであり、ユーザによるゲーム装置100の使用形態の制約などを意図するものではない。
ゲーム装置100は、一例として、折り畳み可能に構成されている。ゲーム装置100は、開状態および閉状態のいずれにおいても、ユーザが両手または片手で把持できるようなサイズに設計されることが好ましい。より具体的には、ゲーム装置100は、折り畳み可能(開閉可能)に連結されている、上側ハウジング101と下側ハウジング102とを含む。上側ハウジング101と下側ハウジング102の各々は、長方形の板状に形成され、互いの長辺部分でヒンジ103を介して回転可能に連結されている。
ゲーム装置100では、上側ハウジング101と下側ハウジング102との間の角度を、閉状態の位置と開状態の位置との間(約0°〜約180°)の任意の角度で保持することもできる。すなわち、上側ハウジング101を下側ハウジング102に対して任意の角度で静止させることができる。このハウジング間の静止には、上側ハウジング101と下側ハウジング102との連結部分に発生する摩擦力などが用いられる。摩擦力に加えて、あるいは、摩擦力に代えて、上側ハウジング101と下側ハウジング102との連結部内にラッチ機構を採用してもよい。
ゲーム装置100は、プログラムを実行することで以下に説明するような処理を実現する。ゲーム装置100で実行されるプログラムは、(1)予め格納されている、(2)ゲームカードを介して提供される、(3)メモリカードを介して提供される、(4)ネットワークを介して提供される、といった方法でゲーム装置100へ提供される。
図1に示すゲーム装置100には、ゲームカード171および/またはメモリカード173が装着可能となっている。
ゲームカード171は、下側ハウジング102の下側面に設けられたゲームカードスロット170(図3(B))に装着される。ゲームカードスロット170の内部には、ゲーム装置100とゲームカード171との間を電気的に接続するためのインターフェイスが配置されている。ゲームカードスロット170は、ゲームカード171を着脱自在に構成されている。ゲームカード171は、アプリケーションプログラムやゲームプログラム(いずれも命令セットを含む)などを保持する。
メモリカード173は、下側ハウジング102の背面側に設けられたメモリカードスロットに装着される。メモリカードスロットは、下側ハウジング102の背面の一部を形成するカバーを取り外した内部に設けられる(ここでは、その詳細については図示しない)。メモリカードスロットの内部には、ゲーム装置100とメモリカード173との間を電気的に接続するためのインターフェイスが配置されている。メモリカードスロットは、メモリカード173を着脱自在に構成されている。メモリカード173は、アプリケーションプログラムやゲームプログラム(いずれも命令セットを含む)などに加えて、他の情報処理端末またはゲーム装置などから取得したプログラムや入力画像、ならびに、ゲーム装置100によって撮像された画像および/または画像処理結果の画像を保持する。ゲームカード171は、例えば、SD(Secure Digital)カードなどの不揮発性記録媒体からなる。
すなわち、ゲーム装置100については、少なくとも本体部に相当する下側ハウジング102と、本体部に装着されるプログラムを格納した記憶部に相当するゲームカード171および/またはメモリカード173とからなる情報処理システムとみなすこともできる。
上側ハウジング101には、立体視表示が可能なディスプレイ(表示手段)として、上側ハウジング101の内側主面の中央部に、上側ディスプレイモジュール110が配置されている。上側ディスプレイモジュール110は、長方形状の表示領域を有し、その長辺方向が上側ハウジング101の長辺方向に一致するように配置されている。
一方、下側ハウジング102には、ディスプレイ(表示手段)として、下側ハウジング102の内側主面の中央部に、下側ディスプレイモジュール120が配置されている。下側ディスプレイモジュール120は、長方形状の表示領域を有し、その長辺方向が下側ハウジング102の長辺方向と一致するように配置されている。下側ディスプレイモジュール120としては、上側ディスプレイモジュール110と同様に立体視表示が可能なディスプレイを採用してもよいが、ゲーム装置100では、各種情報を平面表示する通常のディスプレイが採用される。
ゲーム装置100では、ユーザが立体視表示をより楽しむことができるように、下側ディスプレイモジュール120の画面サイズに比較してより大きな画面サイズを有する上側ディスプレイモジュール110を採用する。但し、必ずしも、このように画面サイズを異ならせる必要はなく、アプリケーションやゲーム装置100のサイズなどに応じて、画面サイズは適宜設計される。さらに、ディスプレイの解像度についても、アプリケーションの用途やコストなどに応じて、適宜設計される。
上側ディスプレイモジュール110および下側ディスプレイモジュール120としては、典型的には、LCD(Liquid Crystal Display:液晶ディスプレイ)やEL(Electro Luminescence:電界発光)を利用したディスプレイなどを採用できる。但し、本願の出願後において実用化される他の種類のディスプレイについても適宜採用できる。上側ディスプレイモジュール110および下側ディスプレイモジュール120のより詳細な内容について、後述する。
上側ハウジング101には、被写体を撮像するための撮像装置(撮像手段)が配置されている。より具体的には、上側ハウジング101には、外側カメラ131Lおよび131R(図3参照)と、内側カメラ133(図1および図2(A)参照)とが配置されている。さらに、上側ハウジング101には、内側カメラ133に隣接して、赤外線発光モジュール132が配置されている。赤外線発光モジュール132は、典型的には、赤外線LED(Light Emitting Diode)を用いて実装される。
内側カメラ133および赤外線発光モジュール132は、上側ディスプレイモジュール110の上部に配置されており、外側カメラ131Lおよび131Rは、内側カメラ133が配置されている内側主面とは反対側の面、すなわち上側ハウジング101の外側主面(ゲーム装置100が閉状態となった場合に外側となる面に相当)に配置されている。
このような配置によって、外側カメラ131Lおよび131Rは、上側ハウジング101の外側主面が向く方向に存在する被写体を撮像することができ、一方、内側カメラ133は、外側カメラ131Lおよび131Rの撮像方向の逆方向、すなわち、上側ハウジング101の内側主面が向く方向に存在する被写体を撮像することができる。赤外線発光モジュール132は、上側ハウジング101の内側主面が向く方向に存在する被写体に対して赤外線を照射し、内側カメラ133は、その被写体からの反射光を受光する。赤外線発光モジュール132は、内側カメラ133でユーザを撮像するときに赤外線を発光する。内側カメラ133は、被写体を可視領域で撮像するだけではなく、赤外領域でも撮像できる。このように、内側カメラ133は、上側ディスプレイモジュール110に近接して配置され、ユーザの赤外領域を含む画像を取得可能なカメラに相当する。
内側カメラ133は、赤外領域での撮像を行なうために、一般的な撮像素子に関連付けて、赤外線発光モジュール132から照射される赤外線の波長に応じたバンドパスフィルタを設けた構成を採用することが好ましい。このバンドパスフィルタとしては、赤外線発光モジュール132から照射される赤外線の波長範囲を通過させるものを用いることができる。赤外線発光モジュール132は、バンドパスフィルタが透過する赤外領域の帯域に近い帯域の赤外線を照射するように構成されることが好ましい。すなわち、内側カメラ133は、赤外線発光モジュール132により発光される赤外線の帯域とほぼ同じ帯域である赤外領域の画像を得るためのバンドパスフィルタを実装することが好ましい。このような構成を採用することで、一般的な赤外領域の全体の画像を取得するのではなく、赤外線発光モジュール132が照射する赤外線の帯域に合わせた帯域の画像のみを取得できる。これによって、赤外線が照射される物体を精度良く検出することができる。また、赤外線発光モジュール132以外から照射された赤外線によるノイズを低減できる。
別の実装例として、内側カメラ133に、RGB+IRのベイヤー構造の撮像素子を用いることもできる。
外側カメラ131Lおよび131Rは、所定の間隔だけ離して配置されており、これらの外側カメラ131Lおよび131Rが取得する一対の入力画像を用いて、被写体を立体視表示することもできる。すなわち、外側カメラ131Lおよび131Rの撮像によって取得される一対の入力画像の間には、外側カメラ131Lと外側カメラ131Rとの相対位置関係に応じた、所定の視差が存在するので、外側カメラ131Lおよび131Rは、いわゆるステレオカメラとして機能し得る。
内側カメラ133の撮像によって取得される入力画像は、基本的には、平面表示(非立体視表示)に用いられる。したがって、ゲーム装置100においては、外側カメラ131Lおよび131Rを有効化すると、立体視表示を提供する一対の入力画像を取得でき、内側カメラ133を有効化すると、平面表示(非立体視表示)を提供する入力画像を取得できる。
上側ハウジング101には、さらに、上側ディスプレイモジュール110の右側に立体視ボリューム144(図1、図2(A)および図2(E))が配置されている。立体視ボリューム144は、上側ディスプレイモジュール110における立体視表示の度合い(視差量)を調整するために用いられる。ユーザから見れば、視差量の調整によって、視認されるオブジェクトの画面からの飛び出し度合い/画面への引き込み度合いが変更される。
上側ハウジング101には、さらに、上側ディスプレイモジュール110の左側に音量ボリューム143(図1、図2(A)および図2(E))が配置されている。音量ボリューム143は、ゲーム装置100から出力される音量を調整するために用いられる。
上側ハウジング101には、さらに、音声発生装置(音声発生手段)としてのスピーカ(図4に示すスピーカ151)が収納されている。より具体的には、上側ディスプレイモジュール110の左右両側に音抜き孔151Lおよび151Rがそれぞれ配置されている。スピーカ151で発生した音声は、スピーカ151と連通する音抜き孔151Lおよび151Rを通じて、ユーザへ向けて放射される。
下側ハウジング102には、音声取得装置(音声取得手段)としてのマイク(図4に示すマイク153)が収納されている。下側ハウジング102の主面と下側面との端部上には、マイク153がゲーム装置100の周囲における音を収集するための音収集孔153a(図1、図2(A)および図2(B))が配置されている。マイク153が収納される位置、および、マイク153と連通する音収集孔153aの位置は、これに限られることなく、任意に設計できる。
ゲーム装置100では、ユーザからの操作を受付ける入力装置(入力手段)は、主として、下側ハウジング102に配置されている。より具体的には、下側ハウジング102には、入力装置として、ボタン群142、162、163、および164と、方向キー161と、コントロールパッド165と、ポインティングスティック166とが配置されている。
ボタン群142は、セレクトボタン142aと、HOMEボタン142bと、スタートボタン142cと、電源ボタン142dとを含む。セレクトボタン142aおよびスタートボタン142cは、下側ディスプレイモジュール120の右側に上下方向に並んで配置されている。HOMEボタン142bは、下側ディスプレイモジュール120の下側に中央部に配置されている。電源ボタン142dは、下側ハウジング102の下側面の中央部に配置されている。
セレクトボタン142aは、典型的には、ゲーム装置100で実行されるアプリケーションを選択するために用いられる。HOMEボタン142bは、典型的には、ゲーム装置100で実行される各種アプリケーションからメニューアプリケーションを呼び出すために用いられる。スタートボタン142cは、典型的には、ゲーム装置100においてアプリケーションの実行を開始するために用いられる。電源ボタン142dは、ゲーム装置100の電源をオン/オフするために用いられる。
方向キー161は、方向入力部に相当し、下側ディスプレイモジュール120の左側に配置されており、2つの方向を独立して操作可能な入力装置である。方向キー161は、ユーザがそれぞれの方向におけるボタン操作をすることで、その操作状態を示す値が出力される。
ボタン群162は、下側ディスプレイモジュール120の右側に配置されており、上下左右の方向にそれぞれ対応付けられた、4つの操作ボタン162A、162B、162X、および162Yを含む。ボタン群162についても、2つの方向を独立して操作可能な入力部に相当し、ユーザがそれぞれの方向に対応付けて配置された操作ボタン162A、162B、162X、および162Yを操作することで、その操作状態を示す値が出力される。
方向キー161および/またはボタン群162が出力する指令は、ゲーム装置100における立体視表示の調整に用いられてもよいし、ゲーム装置100で実行される各種アプリケーションにおいて、ゲーム進行などに係る、選択・決定・キャンセルといった操作に用いられてもよい。
コントロールパッド165は、方向入力部に相当し、下側ディスプレイモジュール120の左側に配置されており、少なくとも2自由度の入力を同時に受付けることが可能なアナログ入力デバイスの一例である。より具体的には、コントロールパッド165は、ユーザの操作を受付ける円盤状の突起部を有するとともに、ユーザの操作を受けて、下側ハウジング102に対する突起部の相対位置関係を、少なくとも上下方向および左右方向に変更できる構造となっている。例えば、コントロールパッド165は、突起部の基準位置からの変位量(ベクトル量)をその検知結果として出力する。コントロールパッド165は、ユーザの入力操作が行なわれる部分の所定の基準に対する移動を検知し、当該検知された移動に基づいて、ユーザの入力操作の方向を検知する。このように、コントロールパッド165は、ユーザによる入力操作に応じた方向を検知する。
コントロールパッド165に代えて、アナログスティック、または、ジョイスティックなどを採用してもよい。あるいは、コントロールパッド165として、ポインティングスティックを採用してもよい。
ポインティングスティック166は、下側ディスプレイモジュール120の右側に配置されており、少なくとも2自由度の入力を同時に受付けることが可能な感圧式のアナログ入力デバイスの一例である。ポインティングスティック166は、ボタン群162の近傍に配置される。より具体的には、ポインティングスティック166は、ユーザの操作を受付ける棒状の突起部を有するとともに、ユーザの操作を受けた突起部の変位量(ベクトル量)をその検知結果として出力する。後述するように、ポインティングスティック166は、ユーザの入力操作に応じた歪みを検知し、当該検知された歪みに基づいて、ユーザの入力操作の方向を検知する。このように、ポインティングスティック166は、ユーザによる入力操作に応じた方向を検知する。
ヒンジ103のポインティングスティック166に近接した部分には、凹部104が形成されている。凹部104は、ユーザがその親指でポインティングスティック166を操作する際に、その親指がヒンジ103と干渉することを防止するためのものである。
ボタン群163は、Lボタン163LおよびRボタン163R(図2(C)および図3)を含む。Lボタン163Lは、下側ハウジング102の上側面の左端部に配置され、Rボタン163Rは、下側ハウジング102の上側面の右端部に配置されている。Lボタン163LおよびRボタン163Rについては、ゲーム装置100で実行される各種のアプリケーションにおいて、選択などの操作に用いられる。
下側ハウジング102において、ポインティングスティック166を配置するために形成される孔の大きさとボタン群162を配置するために形成される孔の大きさとは、同じ大きさにしてもよいし、異ならせてもよい。
ボタン群164は、ZLボタン164LおよびZRボタン164R(図2(C)および図3)を含む。ZLボタン164Lは、下側ハウジング102の上側面において、Lボタン163Lより内側に隣接して配置され、ZRボタン164Rは、下側ハウジング102の上側面において、Rボタン163Rより内側に隣接して配置されている。すなわち、下側ハウジング102の上側面において、Lボタン163LおよびZLボタン164Lは、紙面横方向に沿って並んで配置されており、Rボタン163RおよびZRボタン164Rは、紙面横方向に沿って並んで配置されている。
ボタン群162と、方向キー161と、コントロールパッド165と、ポインティングスティック166とについては、上側ハウジング101と下側ハウジング102とを折り畳んだときに内側となる、下側ハウジング102の内側主面に配置されている(図2(A))。一方、ボタン群163および164は、下側ハウジング102の上側面(上側の側面)に配置されている(図2(C)および図3)。すなわち、ゲーム装置100(主として、下側ハウジング102)をユーザが両手で把持したときに、方向キー161およびコントロールパッド165は、当該ユーザの左手(主として、左手の親指)で容易に操作できる位置に配置され、ボタン群162およびポインティングスティック166は、当該ユーザの右手(主として、右手の親指)で容易に操作できる位置に配置されていることになる。
また、ボタン群163(Lボタン163LおよびRボタン163R)およびボタン群164(ZLボタン164LおよびZRボタン164R)は、下側ハウジング102の上側面に配置されている(図2(C)および図3)。すなわち、ゲーム装置100(主として、下側ハウジング102)をユーザが両手で把持したときに、Lボタン163LおよびZLボタン164Lは、当該ユーザの左手(主として、左手の人差し指)で容易に操作できる位置に配置され、Rボタン163RおよびZRボタン164Rは、当該ユーザの右手(主として、右手の人差し指)で容易に操作できる位置に配置されていることになる。
ゲーム装置100には、上述の入力装置(入力手段)に加えて、ポインティングデバイスとしてのタッチパネル168がさらに設けられている。タッチパネル168は、下側ディスプレイモジュール120の画面上を覆うように装着され、ユーザによる入力操作(位置指示操作、ポインティング操作)を検知して、対応する2次元座標値を出力する。タッチパネル168は、下側ハウジング102の主面上において、方向キー161とボタン群162との間に配置されている。
タッチパネル168としては、典型的には、抵抗膜方式を採用することができる。但し、抵抗膜方式に限らず、各種の押圧式のタッチパネルを採用することもできる。また、タッチパネル168の解像度(検知精度)は、下側ディスプレイモジュール120の解像度(表示精度)と同程度であることが好ましい。但し、タッチパネル168の解像度と下側ディスプレイモジュール120の解像度とを完全に一致させる必要はない。タッチパネル168に対する入力操作は、通常、ユーザがスタイラス198を用いることで行なわれるが、スタイラス198に代えて、ユーザ自身の指などで入力操作を行なってもよい。
ゲーム装置100には、動作状態などをユーザに提示するための表示装置が設けられている。より具体的には、下側ハウジング102には、表示装置として、複数のLED(Light Emitting Diode)からなるインジケータ群147が設けられている。インジケータ群147は、電源インジケータ147aと、充電インジケータ147bと、無線インジケータ147cと、報知インジケータ147dとを含む。電源インジケータ147aと、充電インジケータ147bと、無線インジケータ147cとは、下側ハウジング102の下側面に並んで配置されている(図2(B))。報知インジケータ147dは、ヒンジ103の左側に配置されている(図2(A))。
電源インジケータ147aは、電源ボタン142dと対応付けられた位置に配置され、ゲーム装置100における電源状態を通知する。ゲーム装置100は、図示しないバッテリを内蔵しており(典型的には、下側ハウジング102の内部に収納される)、主として、このバッテリからの電力で駆動する。電源インジケータ147aは、ゲーム装置100における電源の投入状態、および/または、バッテリの残量の状態などを通知する。一例として、ゲーム装置100の電源が投入状態(オン状態)であって、かつ、バッテリの残量が十分であるときに、電源インジケータ147aは、緑色に点灯し、ゲーム装置100の電源が投入状態(オン状態)であって、かつ、バッテリの残量が低下しているときに、赤色に点灯する。
充電インジケータ147bは、上述のバッテリに対する充電状態を通知する。典型的には、ゲーム装置100に対して充電アダプタ(図示しない)などが装着されて内蔵のバッテリが充電状態であるときに、充電インジケータ147bは点灯する。なお、充電アダプタは、ゲーム装置100の上側面に設けられている充電端子179(図3(A))に接続される。
無線インジケータ147cは、ゲーム装置100における無線通信の状態を通知する。典型的には、無線通信が有効化されているときに、無線インジケータ147cは点灯する
報知インジケータ147dは、近距離無線通信により他のゲーム装置と通信が行なわれたことや、インターネット通信により各種アプリケーションに関する通知があることをユーザに報知する。このような条件が成立すると、報知インジケータ147dは点灯する。
本実施の形態に従うゲーム装置100は、赤外線通信の機能を搭載しており、ゲーム装置100の上側面には、赤外線ポート177(図3(C))が設けられている。この赤外線ポート177は、データ通信の搬送波である赤外線を投光/受光する。
下側ハウジング102の下側面には、スタイラス198を収納するための収納孔176(図2(B)および図3)が設けられている。スタイラス198は、後述するようなタッチパネルに対する入力操作に用いられる。スタイラス198は、収納孔176に格納されており、ユーザが必要に応じて取り出すことになる。
下側ハウジング102の下側面には、さらに、ヘッドホンおよび/またはマイクを接続するための接続端子158が設けられている。
下側ハウジング102の上側面には、ゲーム装置100を吊り下げるストラップを連結するためのフック174(図2(C))が設けられている。
〈c2:ゲーム装置100の電気的構成〉
次に、本実施の形態に従うゲーム装置100の電気的構成について説明する。図4は、本実施の形態に従うゲーム装置100の電気的構成を示すブロック図である。
図4を参照して、ゲーム装置100は、その電気的構成として、主処理部180と、上側ディスプレイモジュール110と、下側ディスプレイモジュール120と、タッチパネル168と、外側カメラ131Lおよび131Rと、赤外線発光モジュール132と、内側カメラ133と、無線通信モジュール134と、赤外線通信モジュール135と、不揮発性メモリ136と、メインメモリ138と、サブマイコン140と、ボタン群142と、音量ボリューム143と、立体視ボリューム144と、電源管理IC(Integrated Circuit)146と、インジケータ群147と、加速度センサ148と、ジャイロセンサ149と、インターフェイス回路150と、スピーカ151と、ヘッドホン用アンプ152と、マイク153と、接続端子158と、方向キー161と、ボタン群162、163、164と、コントロールパッド165と、ポインティングスティック166と、ゲームカードスロット170と、メモリカードスロット172とを含む。また、ゲーム装置100は、図示しないバッテリおよび電源回路を含む。
主処理部180は、ゲーム装置100の全体の制御を司る。より具体的には、主処理部180は、不揮発性メモリ136に予め格納されているファームウェア(命令セット)、ゲームカードスロット170に装着されるゲームカード171から読出されるプログラム(命令セット)やデータ、メモリカードスロット172に装着されるメモリカード173から読出されるプログラム(命令セット)やデータなどを実行することで、様々な処理を実現する。すなわち、主処理部180は、方向キー161およびポインティングスティック166の少なくともいずれかに対するユーザの操作に応じて所定の情報処理(例えば、ゲーム処理)を実行する。
なお、主処理部180で実行されるプログラム(命令セット)は、典型的には、ゲームカード171やメモリカード173を介して提供されるが、それに代えてあるいはそれに加えて、CD−ROM(Compact Disk Read Only Memory)やDVD(Digital Versatile Disk)などの光学式の記録媒体を通じて、ゲーム装置100へ提供されるようにしてもよい。さらに、ネットワークを通じて接続されるサーバ装置(図示しない)からプログラムが提供されるようにしてもよい。
主処理部180は、CPU(Central Processing Unit)182と、GPU(Graphical Processing Unit)184と、VRAM(Video Random Access Memory)186と、DSP(Digital Signal Processor)188とを含む。これらの各部の処理については、後述する。また、主処理部180は、各部との間でデータを遣り取りする。
外側カメラ131Lおよび131R、赤外線発光モジュール132、ならびに内側カメラ133は、主処理部180に接続され、主処理部180からの指示に応答して、撮像により取得した入力画像を主処理部180へ出力する。これらのカメラの各々は、CCD(Charge Coupled Device)やCIS(CMOS Image Sensor)といった撮像素子と、撮像素子で取得された画像データ(入力画像)を読出すための周辺回路とを含む。
無線通信モジュール134は、他のゲーム装置100や何らかの情報処理装置との間で無線信号を介してデータを遣り取りする。一例として、無線通信モジュール134は、IEEE802.11a/b/g/nといった規格に準拠した無線LAN方式により、他の装置との間でデータ通信を行なう。
赤外線通信モジュール135は、他のゲーム装置100との間で無線通信(赤外線通信)を行なう。この赤外線通信モジュール135による無線通信は、無線通信モジュール134による無線通信に比較して到達可能距離が短くなっている。この赤外線通信の搬送波である赤外線は、赤外線ポート177(図3(C))を通じて投光/受光される。
不揮発性メモリ136は、ゲーム装置100の基本動作に必要なファームウェア(コードおよび各種データ)などを格納しており、そのファームウェアがメインメモリ138に展開される。主処理部180のCPU182がメインメモリ138に展開されたファームウェアに含まれるコードを実行することで、ゲーム装置100での基本処理が実現される。また、不揮発性メモリ136には、ゲーム装置100において予め設定される各種パラメータに関するデータ(プリセットデータ)が格納されてもよい。一例として、不揮発性メモリ136は、フラッシュメモリからなる。
メインメモリ138は、主処理部180が処理を実行するためのワーク領域またはバッファ領域として用いられる。すなわち、メインメモリ138は、主処理部180での処理に必要なプログラム(コード)やデータを一時的に記憶する。一例として、メインメモリ138は、PSRAM(Pseudo-SRAM)からなる。
サブマイコン140は、主として、ユーザインターフェイスに係る処理を提供する。より具体的には、サブマイコン140は、主処理部180に接続されるとともに、ボタン群142、音量ボリューム143、立体視ボリューム144、電源管理IC146、インジケータ群147、加速度センサ148、ジャイロセンサ149と、方向キー161と、ボタン群162、163、164と、コントロールパッド165と、ポインティングスティック166と接続される。サブマイコン140は、ユーザによるボタン操作などを検知して、その検知結果を主処理部180へ出力するとともに、主処理部180からの信号に応答して、ユーザへ各種情報を通知するためのインジケータを点灯する。
サブマイコン140は、リアルタイムクロック(RTC:Real Time Clock)141を有している。リアルタイムクロック141は、計時機能を提供する部位であり、予め定まった周期で時間をカウントする。このカウント結果は、逐次、主処理部180へ出力される。主処理部180は、リアルタイムクロック141によってカウントされたカウント値に基づいて、現在時刻(日付)等を算出することもできる。
電源管理IC146は、ゲーム装置100に搭載される電源(典型的には、上述のバッテリ)から各部へ電力を供給するとともに、その供給量を制御する。
加速度センサ148は、ゲーム装置100に生じる加速度を検知し、その検知結果は、サブマイコン140を通じて主処理部180へ出力される。ジャイロセンサ149は、ゲーム装置100の傾きを検知し、その検知結果は、サブマイコン140を通じて主処理部180へ出力される。加速度センサ148およびジャイロセンサ149による検知結果は、ゲーム装置100で実行されるプログラム(ゲームアプリケーション)などに利用される。
インターフェイス回路150は、主処理部180と接続されるとともに、スピーカ151、ヘッドホン用アンプ152、マイク153、およびタッチパネル168と接続される。より具体的には、インターフェイス回路150は、スピーカ151、ヘッドホン用アンプ152、マイク153の制御を行なうための音声制御回路(図示しない)と、タッチパネル168の制御を行なうためのタッチパネル制御回路(図示しない)とを含む。
スピーカ151は、インターフェイス回路150からの音声信号を増幅して、音抜き孔151Lおよび151Rから音声を出力する。ヘッドホン用アンプ152は、インターフェイス回路150からの音声信号を増幅して、接続されるヘッドホンから音声を出力する。マイク153は、ゲーム装置100に向かって発声されたユーザの音声などを検知して、検知した音声を示す音声信号をインターフェイス回路150に出力する。
インターフェイス回路150を構成するタッチパネル制御回路は、タッチパネル168からの検知結果に応答して、ユーザが入力操作(ポインティング操作)した位置を示すタッチ位置データを生成して主処理部180へ出力する。
ゲームカードスロット170およびメモリカードスロット172は、それぞれ、主処理部180と接続される。ゲームカードスロット170は、主処理部180からの指令に応答して、コネクタを介して、装着されたゲームカード171との間でデータの読出しおよび書き込みを行なう。メモリカードスロット172は、主処理部180からの指令に応答して、コネクタを介して、装着されたメモリカード173との間でデータの読出しおよび書き込みを行なう。
〈c3:ポインティングスティック166〉
次に、本実施の形態に従うゲーム装置100に配置されているポインティングスティック166について、より詳細に説明する。
図5は、本実施の形態に従うゲーム装置100に配置されているポインティングスティック166を示す分解斜視図である。図5を参照して、ポインティングスティック166は、キャップ1661と、操作体1662と、センサ基板1666とを含む。
キャップ1661は、略円筒状に形成された周面部と、周面部の上側を閉塞する天面部と、周面部の下端側にある開口部の外周縁から外方へ張り出されたフランジとを一体的に形成したものである。キャップ1661は、弾性体を用いて形成されることが好ましい。キャップ1661の大きさとボタン群162のそれぞれの大きさとについて、下側ハウジング102に形成された孔の大きさが互いに同じである場合には、キャップ1661の方をより小さくすることが好ましく、孔の大きさが互いに同じではない場合には、同程度の大きさにしてもよい。
操作体1662は、基部1663と、基部1663上に形成された略円形状の台座部1664と、台座部1664に直立して形成された四角柱状の操作スティック1665とを一体的に形成したものである。操作体1662は、ボタン群162とは異なる材質で形成されている。操作体1662は、樹脂または耐熱性セラミック材料等によって形成され、その硬度は、ボタン群162よりも硬度が低いことが好ましい。
センサ基板1666は、撓曲可能な樹脂フィルム等によって形成され、その一端には、操作体1662の台座部1664の位置に対応するように操作体1662の裏面に固定される略円形状の基端部1667を含む。センサ基板1666の他端には、コネクタ1668が設けられる。
センサ基板1666の基端部1667には、厚膜または薄膜の抵抗体からなる歪みセンサ1669(1669a、1669b、1669c、1669d)が配置されている。歪みセンサ1669が配置された基端部1667は、台座部1664の裏面の位置に接着固定される。このような構成を採用することで、操作スティック1665が傾倒されると、操作スティック1665の下部に設けられた歪みセンサ1669には、その傾倒された方向に圧縮力が作用するとともに、その傾倒された方向とは反対方向に引張力が作用する。この圧縮力および引張力によって、歪みセンサ1669の各抵抗値は変化する。このような歪みセンサ1669の抵抗値の変化を検知することで、ユーザの操作によって操作スティック1665が傾倒した方向および大きさを検知できる。
ポインティングスティック166は、下側ハウジング102に配置されている。ユーザは、ゲーム装置100(主として、下側ハウジング102)を両手で把持して、ディスプレイを見ながらポインティングスティック166を指で操作できる。例えば、ユーザがキャップ1661を上向きに操作することにより、操作スティック1665が上向きに傾倒し、この傾倒によって生じる歪みセンサ1669での抵抗値の変化量に応じて、上向きの傾倒の大きさが検知される。ゲーム装置100は、検知された上向きの入力に対応して、例えばメニュー画面上のカーソルを上向きに移動させる。
ポインティングスティック166の検知結果をどのように使用するのかについては、ゲーム装置100で実行されるアプリケーションにおいて任意に設計できる。ポインティングスティック166の検知結果を、方向キー161やコントロールパッド165の検知結果と同様に処理してもよいし、ポインティングスティック166に対して、特殊な操作を割当ててもよい。ユーザがポインティングスティック166に与えるべき変位量は、コントロールパッド165に比較してより少なくて済むので、よりクイックな操作に適している。例えば、アクションゲームやドライブゲームなどにおいて、視点を切り替えるような操作(つまり、仮想空間内に配置される仮想カメラの位置制御)や、表示範囲を縮小/拡大するような操作に適している。
図6は、本実施の形態に従うゲーム装置100に配置されているポインティングスティック166をユーザが操作する状態を示す図である。図6には、本体部に相当する下側ハウジング102をユーザが両手で把持した状態を示す。図6(A)には、ユーザが操作ボタン162Xを操作している状態を示し、図6(B)には、ユーザがポインティングスティック166を操作している状態を示す。
図6に示すように、本体部に相当する下側ハウジング102の主面上には、ゲーム装置100(下側ハウジング102)をユーザが両手で把持したときにユーザの一方の手(左手)で操作できる位置に、方向キー161が配置されており、ユーザの他方の手(右手)で操作できる位置に、操作ボタンに相当するボタン群162(操作ボタン162A、162B、162X、および162Y)が配置されている。
アナログ入力部に相当する、ポインティングスティック166は、下側ハウジング102の主面上においてボタン群162と同じ側(すなわち、下側ディスプレイモジュール120の右側)に配置されている。別のアナログ入力部に相当する、コントロールパッド165は、下側ハウジング102の主面上において方向キー161と同じ側(すなわち、下側ディスプレイモジュール120の左側)に配置されている。このようなレイアウトを採用することで、ユーザに対してより高い操作性を提供することができる。
図6に示すような入力装置のレイアウトを採用することで、ユーザは、ディスプレイ(上側ディスプレイモジュール110および/または下側ディスプレイモジュール120)に表示される内容を見ながら、両手を使って、思い通りの操作を行なうことができる。
特に、押下されているか否かといったデジタル的な操作を受付けるデジタル入力部であるボタン群162(操作ボタン162A、162B、162X、および162Y)と、操作された方向を検知するアナログ入力部であるポインティングスティック166とを近接して配置することで、アプリケーションの内容や進行に応じた適切な操作を容易に行なうことができる。つまり、ポインティングスティック166は、ボタン群162との間でユーザの他方の手(右手)による選択的な操作が可能な位置に配置されている。本実施の形態においては、ポインティングスティック166は、本体部に相当する下側ハウジング102の主面上においてボタン群162(操作ボタン162A、162B、162X、および162Y)の上側に配置されている。
このような選択的な操作を容易化するために、ボタン群162およびポインティングスティック166は、ユーザの手の動きに適した位置関係に配置されている。例えば、ボタン群162を構成する操作ボタン162A、162B、162X、および162Yは、規則的に配置されており、この規則的な配置に相応して、ポインティングスティック166も配置されている。具体的には、下側ハウジング102の主面上では、操作ボタン162A、162B、162X、および162Yは、正方形またはひし形の各頂点に対応する位置に配置されており、操作ボタン162Aと操作ボタン162Xとを結ぶ直線167またはその近傍上に、ポインティングスティック166が配置されている。
ゲーム装置100では、下側ディスプレイモジュール120とポインティングスティック166との間の距離は、下側ディスプレイモジュール120と操作ボタン162Yとの間の距離に比較して短くなっている。すなわち、ポインティングスティック166は、操作ボタン162Yに比較して、下側ディスプレイモジュール120により近い位置に配置されている。
別の観点で見れば、ポインティングスティック166は、ボタン群162に比較して、より上側ハウジング101に近い側(紙面上側)に配置されている。言い換えれば、ポインティングスティック166は、ゲーム装置100(下側ハウジング102)を両手で把持するユーザから見て、ボタン群162(操作ボタン162A、162B、162X、および162Y)より遠い位置に配置されている。ポインティングスティック166が紙面上側に配置されることに伴って、ユーザのポインティングスティック166を操作する指がヒンジ103と干渉しないように、ヒンジ103には凹部104が設けられている。
別の観点で見れば、図6(A)と図6(B)とを比較すると判るように、ユーザが操作する指(親指)の動線上に、ボタン群162およびポインティングスティック166が配置されている。すなわち、ポインティングスティック166は、ユーザの右手の親指がボタン群162(操作ボタン162Aまたは操作ボタン162X)に触れている状態において、当該親指の伸びる方向の延長線上に配置されている。
図7は、本実施の形態に従うゲーム装置100に配置されているポインティングスティック166をユーザが操作する状態を示す別の図である。図7には、ユーザに人差し指の状態を説明するために、上側ハウジング101を破線で示す。
図7を参照して、下側ハウジング102の上側面には、ZLボタン164LおよびZRボタン164Rが配置されている。すなわち、ゲーム装置100は、ゲーム装置100(主として、下側ハウジング102)をユーザが両手で把持したときに、当該ユーザから最も遠い下側ハウジング102の面に配置された操作ボタン(ZLボタン164LおよびZRボタン164R)を含む。
図7(A)には、ユーザがZLボタン164LおよびZRボタン164Rを操作している状態を示す。すなわち、ユーザは、左手の人差し指でZLボタン164Lを操作し、右手の人差し指でZRボタン164Rを操作する。このとき、ユーザは、左手の親指で方向キー161またはコントロールパッド165を操作することもできるようになっている。また、ユーザは、右手の親指でポインティングスティック166を操作することができるようになっている。
すなわち、ユーザは、方向キー161またはコントロールパッド165とZLボタン164Lとを同時に操作することができるとともに、ポインティングスティック166とZRボタン164Rとを同時に操作することができる。このように、ポインティングスティック166は、ユーザの他方の手(右手)による操作ボタン(ZRボタン164R)との同時操作が可能な位置に配置される。つまり、ポインティングスティック166は、操作ボタン(ZRボタン164R)を他方の手(右手)の人差し指で操作している場合に、他方の手(右手)の親指で操作が可能な位置に配置される。
別の観点で見れば、ポインティングスティック166は、紙面左右方向において、ZRボタン164Rとほぼ同じ位置に配置されている。言い換えれば、ポインティングスティック166、凹部104およびZRボタン164Rは、紙面上下方向に平行な直線169上にほぼ整列して配置されている。
図7(A)および図7(B)を参照して、ZLボタン164LおよびZRボタン164Rが配置されている面、すなわち下側ハウジング102の上側面において、当該上側面の端部側には、操作ボタンであるLボタン163LおよびRボタン163Rが配置されている。ユーザは、それぞれの手の人差し指および親指を適宜移動させて、下側ハウジング102の上側面に配置された入力装置、および、下側ハウジング102の主面に配置された入力装置を任意に操作できる。
〈c4:ボタン群163および164〉
次に、下側ハウジング102の上側面に配置されているボタン群163および164について説明する。
図8および図9は、本実施の形態に従うゲーム装置100に配置されているボタン群163および164をユーザが操作する状態を示す図である。図8(A)および図9(A)には、ユーザがLボタン163LおよびRボタン163Rを操作している状態を示し、図8(B)および図9(B)には、ユーザがZLボタン164LおよびZRボタン164Rを操作している状態を示す。
Lボタン163L、Rボタン163R、ZLボタン164L、およびZRボタン164Rに対する操作は、ゲーム装置100で実行されるアプリケーションに応じて適宜割当てられる。すなわち、下側ハウジング102の上側面に設けられた4つの独立したボタンをユーザは操作できるので、ユーザに対する操作性の自由度を高めることができ、ユーザは、ゲームなどのアプリケーションをより楽しむことができる。
一方で、ユーザによる誤操作が発生する可能性を低減するために、いくつかの構造上の工夫がなされている。以下、ボタン群163および164について詳述する。
図8(A)と図8(B)とを比較すると判るように、ユーザがLボタン163LおよびRボタン163Rを操作するときには、それぞれの人差し指は、下側ハウジング102の左側面および右側面に沿って上側面へ延びるように位置付けられる。すなわち、ユーザは、それぞれの人差し指の付け根あたりを下側ハウジング102の左側面および右側面に概ね密着した状態で、Lボタン163LおよびRボタン163Rを操作することになる。
これに対して、ユーザがZLボタン164LおよびZRボタン164Rを操作するときには、それぞれの人差し指は、Lボタン163LおよびRボタン163Rを跨いだ状態に位置付けられる。すなわち、ユーザは、それぞれの指の第1関節および第2関節をより曲げた状態で、ZLボタン164LおよびZRボタン164Rを操作することになる。
あるいは、図9(B)に示すように、それぞれの人差し指は、下側ハウジング102の背面側から上側面へ延びるように位置付けられることもある。すなわち、ユーザは、下側ハウジング102の左側面および右側面から上側面へ亘るようにそれぞれの人差し指を概ね密着した状態で、ZLボタン164LおよびZRボタン164Rを操作することになる。
図10は、Rボタン163RおよびZRボタン164Rを中心とした拡大図である。図10(A)は、ゲーム装置100の右側面の拡大図を示し、図10(B)は、ゲーム装置100の背面の拡大図を示す。
図8〜図10を参照して、Lボタン163LとZLボタン164Lとの間、および、Rボタン163RとZRボタン164Rとの間では、形状が異なっている。より具体的には、図10(B)に示すように、Lボタン163LおよびRボタン163Rの幅L1(紙面横方向の長さ)は、それぞれZLボタン164LおよびZRボタン164Rの幅L2に比較してより長くなっている。また、Lボタン163LおよびRボタン163Rの外側(端部側)は、丸みRが付けられている。この丸みRによって、ユーザの人差し指のLボタン163LおよびRボタン163Rへのアクセスをより容易にして、操作性を向上することができる。
また、ZLボタン164LおよびZRボタン164Rの下側ハウジング102の上側面からの突出した高さは、Lボタン163LおよびRボタン163Rの突出した高さに比較してより大きくなっている。より具体的には、図10(B)に示すように、ZRボタン164Rは、Rボタン163Rに比較して距離D1だけさらに突出している。すなわち、Lボタン163LおよびRボタン163Rがユーザからの操作を受ける面と、ZLボタン164LおよびZRボタン164Rの操作を受ける面とは、下側ハウジング102の上側面からの高さが異なっている。この突出した高さの相違によって、Lボタン163LとZLボタン164Lとの間、または、Rボタン163RとZRボタン164Rとの間での、ユーザによる誤操作の可能性を低減できる。併せて、ZLボタン164LとLボタン163Lとの間、または、ZRボタン164RとRボタン163Rとの間での、意図しない同時押しの可能性を低減することもできる。
図8(B)に示すように、ユーザがそれぞれの人差し指を下側ハウジング102の背面側から伸ばしてZLボタン164LおよびZRボタン164Rを操作する場合もある。図10に示すように、ZLボタン164LおよびZRボタン164Rがユーザからの操作を受ける面は、下側ハウジング102の上側面側だけではなく、下側ハウジング102の背面側にも伸びている。すなわち、ユーザは、その人差し指を背面側から伸ばした場合であっても、ZLボタン164LおよびZRボタン164Rを容易に操作できるようになっている。
また、ボタン群162とポインティングスティック166との間についても意図しない同時押しの可能性を低減するように、主面からの高さ、すなわち飛び出し量を異ならせることが好ましい。より具体的には、図10(A)に示すように、ポインティングスティック166の下側ハウジング102の主面からの高さH1は、ボタン群162の主面からの高さH2より大きくなっている。
〈c5:ゲーム装置100のディスプレイに係る構成〉
次に、本実施の形態に従うゲーム装置100のディスプレイに係る構成について説明する。図11は、本実施の形態に従うゲーム装置100のディスプレイに係る構成を示すブロック図である。
図11を参照して、ゲーム装置100の主処理部180は、CPU182に加えて、主として、上側ディスプレイモジュール110および下側ディスプレイモジュール120にそれぞれ画像を表示させるための処理(画像処理)を行なうGPU184を含む。GPU184は、画像処理に特化した処理回路を有しており、CPU182からの指令に応答して、上側ディスプレイモジュール110および下側ディスプレイモジュール120にそれぞれ表示すべき画像を逐次生成する。これらの画像は、上側ディスプレイモジュール110用のVRAM186a、および、下側ディスプレイモジュール120用のVRAM186bへそれぞれ転送される。
上側ディスプレイモジュール110において立体視表示を行なうための一対の入力画像(左目用画像および右目用画像)は互いに独立してVRAM186aへ書込まれる。これに対して、下側ディスプレイモジュール120においては平面表示(非立体視表示)が行なわれるので、単一の画像がVRAM186bへ書込まれる。
上側ディスプレイモジュール110は、表示コントローラ111と、LCDパネル112と、バリア液晶113とを含む。バリア液晶113は、上側ディスプレイモジュール110を見たユーザに与えられる多視点画像の視差を調整するために用いられる。すなわち、上側ディスプレイモジュール110は、調整可能な視差バリアを有する立体視表示が可能なディスプレイである。以下の説明において、立体視表示が可能なディスプレイの典型例として、2視点(2眼式)のディスプレイを用いた構成例について説明する。2視点のディスプレイでは、互いに独立した左目用画像および右目用画像をユーザの左目および右目にそれぞれ入射させるようになっており、左目用画像と右目用画像との間の視差を調整することで、立体感(飛び出し量または引き込み量)を制御できる。バリア液晶113の構成およびその制御方法などについては、後述の〈e1:バリア制御機能〉にて詳述する。
下側ディスプレイモジュール120は、表示コントローラ121と、LCDパネル122と、アンテナ123とを含む。アンテナ123は、インターフェイス回路150に接続されており、非接触通信を実現する。アンテナ123を用いた非接触通信については、後述する。
〈c6:ゲーム装置100の上側ディスプレイモジュール110での立体視表示〉
次に、ゲーム装置100において立体視表示を提供する上側ディスプレイモジュール110について説明する。図12は、本実施の形態に従うゲーム装置100の上側ディスプレイモジュール110の断面模式図である。
図12を参照して、上側ディスプレイモジュール110は、典型的には、パララックスバリア方式の液晶表示デバイスを用いて実現される。上側ディスプレイモジュール110は、LCDパネル112と、LCDパネル112のゲーム装置100における正面側に設けられたバリア液晶113とを含む。さらに、LCDパネル112のゲーム装置100における背面側には、図示しないバックライトが設けられている。
LCDパネル112は、マトリックス状に配置された画素群を含む。バリア液晶113は、ユーザに与えられる画像を調整するための視差光学系であり、複数のスリットが所定間隔で行列状に設けられている。より具体的には、バリア液晶113では、透過領域113aと、非透過領域113bとが所定規則に従って実現される。ユーザは、バリア液晶113を介してLCDパネル112を見ることになる。バリア液晶113の非透過領域113bによって、ユーザが視認するLCDパネル112の領域(画素)は制限されることになる。すなわち、バリア液晶113に形成される各スリットは、ユーザの左目および右目による視界をそれぞれ対応する角度に制限する。
図12に示すバリア液晶113の状態においては、ユーザの左目からは、LCDパネル112上の非透過領域113bで妨げられない画素(以下、左目視認画素群pxLとも称す。)を視認することができ、ユーザの右目からは、LCDパネル112上の非透過領域113bで妨げられない画素(以下、右目視認画素群pxRとも称す。)を視認することができる。
バリア液晶113のスリット(すなわち、透過領域113aと非透過領域113bとのレイアウト)を適切に調整することにより、ユーザがディスプレイに正対していなくとも、ユーザに対して立体視表示を提供することができる。より具体的には、表示コントローラ111(図11)は、主処理部180(図11)からの指令に従って、バリア液晶113のスリット(透過領域113aおよび非透過領域113b)の位置、大きさ(幅)、間隔の少なくとも1つを調整する。
例えば、図12(A)には、紙面左側にユーザが存在している状態を示し、図12(B)には、紙面右側にユーザが存在している状態を示す。図12(A)および図12(B)に示すいずれの状態においても、ユーザの左目からは左目視認画素群pxLのみが見えており、ユーザの右目からは右目視認画素群pxRのみが見えるようになっている。すなわち、ディスプレイとユーザとの相対位置関係に応じてバリア液晶113のスリットを調整することで、予め定められた視差をもつ画像を、常にユーザに対して提供することができる。
図13は、図12に示すバリア液晶113のスリットを調整する方法の一例を示す図である。図13(A)に示される非透過領域113bの状態を基準として、図13(B)に示されるように、非透過領域113bを紙面右方向(または、紙面左方向)にシフトさせる、つまり非透過領域113bの位置を調整してもよい。あるいは、図13(C)に示されるように、非透過領域113bの大きさ(幅)を調整してもよい。図13(B)または図13(C)に示されるような非透過領域113bの位置または大きさ(幅)の調整に伴って、スリットの間隔(透過領域113aと非透過領域113bとの間の間隔)が変更されることになる。
ユーザと上側ディスプレイモジュール110との距離、ユーザの左目と右目との間隔、バリア液晶113に形成されるスリットなどに応じて、ユーザの左目および右目でそれぞれ見ることのできるLCDパネル112の領域は変化する。そのため、上側ディスプレイモジュール110に対向するユーザの状況を取得し、バリア液晶113のスリットが制御される。この立体視表示に係る制御については、後述の〈e1:バリア制御機能〉にて詳述する。
なお、上側ディスプレイモジュール110では、立体視表示だけではなく、平面表示(非立体視表示)を提供することもできる。この場合には、バリア液晶113のスリットを無効化する方法と、左目用画像と右目用画像との間の視差を実質的にゼロとする方法とが存在する。
前者の方法の場合には、バリア液晶113の非透過領域113bの幅を実質的にゼロにすることで、ユーザの左目および右目に入射するLCDパネル112からの光を実質的に同一にする。これによって、ユーザには、視差のない画像を左目および右目で見ることになり、平面表示が提供される。
後者の方法の場合、ユーザの左目で視認される画像と、右目で視認される画像とが実質的に同一となるように制御される。
なお、立体視表示が可能なディスプレイの典型例として、パララックスバリア方式の表示デバイスを例示したが、例えば、レンチキュラ方式の表示デバイスなどを採用することもできる。この方式では、左目用画像の表示エリアと右目用画像の表示エリアとが一定のパターンで(典型的には交互に)配置される。あるいは、シャッタメガネ(時分割方式)を利用した方法のように、左目用画像の表示エリアと右目用画像の表示エリアとを共通としつつ、左目用画像と右目用画像とを時間的に切り替えて表示する形態を採用することもできる。
〈c7:ゲーム装置100の下側ディスプレイモジュール120の構成〉
次に、ゲーム装置100の下側ディスプレイモジュール120の構成について説明する。図14は、本実施の形態に従うゲーム装置100の下側ディスプレイモジュール120を示す分解斜視図である。
図14を参照して、下側ディスプレイモジュール120は、タッチパネル固定両面テープ124と、上フレーム125と、固定用両面テープ126と、LCDパネル122と、アンテナ支えシート127と、アンテナ123と、下フレーム128とを含む。
ゲーム装置100の下側ディスプレイモジュール120は、LCDパネル122だけではなく、非接触通信を行なうためのアンテナ123を含んでいる。より具体的には、上フレーム125と下フレーム128とが、LCDパネル122、アンテナ支えシート127、およびアンテナ123を挟み込むことで、下側ディスプレイモジュール120を固定している。
非接触通信とは、数cm〜数m程度の距離で無線を介して情報を遣り取りする技術であり、典型的には、NFC(Near Field Communication)と称される国際規格として実装される。具体的な応用例としては、RFID(radio frequency identifier)と称される無線タグ、ICカードなどがある。
下側ディスプレイモジュール120の上部表面には、タッチパネル168が配置されている。タッチパネル168は、タッチパネル固定両面テープ124によって、上フレーム125と接着される。
上フレーム125は、樹脂によって形成されている。これは、アンテナ123から放射またはアンテナ123から受信される電磁波への影響を考慮したものである。つまり、上フレーム125を導体である金属を用いて形成した場合には、アンテナ123を介した電磁波の送受信に悪影響を及ぼし得る。一方で、上フレーム125は、下側ディスプレイモジュール120を固定するための重要な部品であるので、硬質の樹脂を用いるとともに、ガラス繊維を混入して強度を高めることが好ましい。
上フレーム125とLCDパネル122とは、固定用両面テープ126によって互いに接着される。
アンテナ123は、下フレーム128の上に配置されている。アンテナ123の面サイズは、LCDパネル122に比較してより小さくなっている。LCDパネル122とアンテナ123との間には、アンテナ支えシート127が配置されている。
アンテナ支えシート127は、例えば、PET(ポリエチレンテレフタレート)樹脂性のシートからなり、以下のような効果を奏する。すなわち、アンテナ123については、可能な限り上方(表示面側)に配置して、情報のやりとり(読み取り/書き込み)を容易化することが好ましい一方で、LCDパネル122とアンテナ123とが直接触れると、液晶の滲み(例えば、ディスプレイを指で押したときに生じるようなムラ)が発生してしまう。特に、アンテナ123の面サイズがLCDパネル122の面サイズより小さいので、アンテナ123の端部に対応する部分において液晶の滲みが生じやすくなる。そのため、アンテナ支えシート127を、LCDパネル122とアンテナ123との間のクッションとして配置することで、そのような液晶の滲みを防止する。
下フレーム128には、いくつかの切欠部が形成されている。これは、背面側にある基板の部品(図示しない)との干渉を避けるためであり、干渉を避けることで、不要な空間を削減して、装置全体として薄型を実現する。
上述したように、本実施の形態に従うゲーム装置100は、非接触通信を行なうためのアンテナ123を一体的に含む下側ディスプレイモジュール120を採用している。これによって、ユーザは、下側ディスプレイモジュール120に、ICチップが内蔵されたカードやフィギュアをかざすだけで、そのICチップに格納された情報の読み取りやICチップへの情報の書き込みを行なうことができる。このような非接触通信を用いた情報の遣り取りを利用したアプリケーションなどについては、後述する。
下側ディスプレイモジュール120の内部にアンテナ123を組込むにあたって、アンテナ123およびLCDパネル122を挟み込む上フレーム125を、非導電材料(本実施の形態では、樹脂)を用いて形成することで、アンテナ123から送受信される電磁波への影響を低減できる。なお、アンテナ123の面サイズに比較して、上フレーム125のサイズが十分に大きい場合には、アンテナ123と上フレーム125との電気的な干渉が少ないので、上フレーム125をより強度の高い金属などを用いて形成してもよい。
[D.携帯情報端末200]
〈d1:携帯情報端末200の全体構成〉
次に、本実施の形態に従う携帯情報端末200の全体構成について説明する。図15は、本実施の形態に従う携帯情報端末200の使用状態を示す模式図である。
図15を参照して、携帯情報端末200は、ユーザが片手でも把持できるタブレット型のコンピュータである。携帯情報端末200は、本体部202と、本体部202の上部に配置されている内側カメラ204と、赤外線発光モジュール206と、入力部208と、ディスプレイモジュール210とを含む。ディスプレイモジュール210は、タッチパネルを含んでおり、ユーザは、入力部208に加えて、ディスプレイモジュール210に対するタッチ操作によって、携帯情報端末200へ各種指示を与える。ディスプレイモジュール210は、立体視表示を提供することもできる。
〈d2:携帯情報端末200の電気的構成〉
次に、本実施の形態に従う携帯情報端末200の電気的構成について説明する。図16は、本実施の形態に従う携帯情報端末200の電気的構成を示すブロック図である。
図16を参照して、携帯情報端末200は、その電気的構成として、内側カメラ204と、赤外線発光モジュール206と、入力部208と、ディスプレイモジュール210と、表示ドライバ222と、タッチ検出部224と、視差バリアコントローラ226と、プロセッサ230と、フラッシュメモリ232と、メインメモリ234と、加速度センサ236と、ジャイロセンサ238と、無線通信部240と、送受信回路242と、アンテナ244とを含む。ディスプレイモジュール210は、LCDパネル212と、バリア液晶214と、タッチパネル216とを含む。
LCDパネル212、バリア液晶214、およびタッチパネル216は、上述した、LCDパネル112、バリア液晶113、およびタッチパネル168(図11)と同様である。すなわち、ディスプレイモジュール210は、調整可能な視差バリアを有する多視点ディスプレイである。
表示ドライバ222は、プロセッサ230からの指令に従って、LCDパネル212を駆動する。タッチ検出部224は、タッチパネル216に接続され、ユーザからのタッチパネル216に対する操作を検出する。視差バリアコントローラ226は、プロセッサ230からの指令に従って、バリア液晶214を制御する。すなわち、視差バリアコントローラ226は、バリア液晶214に生じるスリットの位置、大きさ(幅)、間隔などを調整することで、ディスプレイに相対するユーザに対してその位置に応じた立体視表示を提供する。
プロセッサ230は、フラッシュメモリ232などに格納されているアプリケーションプログラム(システムアプリケーションおよびユーザアプリケーションを含む。)やゲームプログラムを読出して、メインメモリ234に展開した上で、それらを実行する。それによって、以下に説明するような処理を実現する。
加速度センサ236と、携帯情報端末200に生じる加速度を検知し、その検知結果をプロセッサ230へ出力する。ジャイロセンサ238は、携帯情報端末200の傾きを検知し、その検知結果をプロセッサ230へ出力する。
無線通信部240は、公衆回線などを介して、他の装置との間で通信を行なう。
送受信回路242およびアンテナ244は、非接触通信を実現する。送受信回路242は、アンテナ244を介して受信した無線信号を処理し、あるいは、プロセッサ230からの指令に従って無線信号を生成し、アンテナ244を介して送信する。
携帯情報端末200は、典型的には、汎用アーキテクチャーに従って構成されるため、ここでは、各コンポーネントについての詳細な説明は行なわない。
[E.機能および処理]
以下、ゲーム装置100および携帯情報端末200に実装される主たる機能および処理について説明する。但し、以下に説明する機能および処理のすべてを単一の装置に実装する必要はなく、必要な機能および処理のみを実装した装置についても、本願発明の技術的範囲に含まれると解釈されるべきである。
〈e1:バリア制御機能〉
本実施の形態に従うバリア制御機能は、ユーザがディスプレイに正対していなくとも、立体視表示を提供するための機能である。すなわち、バリア制御機能は、複数の表示画像を用いてディスプレイに相対するユーザに対してその位置に応じた立体視表示(例えば、ディスプレイに正対している視点とは別の視点での立体視表示)を提供する。言い換えれば、バリア制御機能は、ディスプレイとユーザとの相対位置関係に応じて、画像の表示のさせ方を変化させる。
図17は、本実施の形態に従うバリア制御機能を説明するための模式図である。図17には、一例として、携帯情報端末200にバリア制御機能を実装した例を示すが、ゲーム装置100に実装した場合も同様である。図17(A)は、ユーザが携帯情報端末200に正対している状態を示し、図17(B)は、ユーザが携帯情報端末200を水平方向に回転させた状態、すなわちユーザが携帯情報端末200に正対していない状態を示す。
図17(A)に示す状態において、ディスプレイモジュール210から四角錐のオブジェクト334の立体視表示が提供されており、図17(B)に示す状態においても、ディスプレイモジュール210から四角錐のオブジェクト334の立体視表示が提供されている。すなわち、携帯情報端末200は、ユーザを撮像した赤外領域を含む画像(以下、「赤外画像」または「IR(Infrared)画像」とも称す。)に基づいて、ディスプレイとユーザとの相対位置関係を推定し、その推定した相対位置関係に応じた視線を基準として、立体視表示を提供する。言い換えれば、推定した相対位置関係に応じた位置を視点とする立体視表示が提供される。
より具体的には、図12および図13を参照して説明したように、携帯情報端末200は、バリア液晶214のスリットを制御することで、ディスプレイに正対していないユーザに対しても立体視表示を提供する。ディスプレイとユーザとの相対位置関係を推定する手法としては、いずれの方法を採用してもよいが、本実施の形態においては、内側カメラ204(ゲーム装置100では内側カメラ133)によってユーザを撮像し、その撮像した画像から相対位置関係を推定する。
バリア制御機能は、バリア液晶214のスリットを制御するので、ディスプレイとユーザとの相対位置関係としては、通常は、ディスプレイの左右方向におけるユーザの位置が用いられる。言い換えれば、ディスプレイの上下方向におけるユーザの位置は用いられない。すなわち、ユーザの両目を結ぶ直線に沿ったユーザの相対位置が検知され、その相対位置がバリア制御に用いられる。
図18は、本実施の形態に従うバリア制御機能でのディスプレイとユーザとの相対位置関係を推定する処理例を示す模式図である。図19は、本実施の形態に従うバリア制御機能を実現する一例を示す機能ブロック図である。
図18(A)には、ユーザがディスプレイに正対している状態で内側カメラによって撮像された入力画像の一例を示し、図18(B)には、ユーザがディスプレイに正対していない状態で内側カメラによって撮像された入力画像の一例を示す。
本実施の形態に従うバリア制御機能では、顔認識技術を用いて、撮像された画像に写っているユーザの顔(目、鼻、口、輪郭など)の位置や領域を特定し、その特定した位置や領域の情報に基づいて、ユーザの相対位置関係を推定する。特に、立体視表示を考慮すると、ユーザの両目の位置が重要であるため、認識された目の位置に基づいて、ユーザの相対位置関係が推定される。
図18(A)に示すように、入力画像300Aに含まれる特徴量から顔の部分を示す特徴点302が検知される。この検知された複数の特徴点302には、目の位置の情報も含まれる。ユーザがディスプレイに正対している状態で取得された入力画像300Aでは、画像中心にユーザの目が存在している。これに対して、ユーザがディスプレイに正対していない状態で取得された入力画像300Bでは、画像の端の方にユーザの目が存在することになる。このような認識されたユーザの目の位置に応じて、立体視表示の視点がより適した位置になるように、バリア液晶(視差バリア)が制御される。
本実施の形態に従うバリア制御機能では、顔認識の精度を高めるために、通常の可視光領域の光を受光して生成される可視光画像(以下、「RGB画像」とも称す。)に加えて、赤外線を被写体に照射して得られる反射光を受光して得られるIR画像を用いる。ゲーム装置100では、赤外線発光モジュール132から赤外線を照射し、携帯情報端末200では、赤外線発光モジュール206から赤外線を照射することで、それぞれIR画像が取得される。このように、ディスプレイに近接して配置された内側カメラは、赤外線カメラを含む。IR画像を用いるので、暗い環境においても、顔認識精度を高めることができる。
図19を参照して、バリア制御機能310は、2値化処理モジュール313と、顔認識モジュール314と、相対位置関係推定モジュール315と、視差バリア制御モジュール316とにより実現される。図19に示す各モジュールは、典型的には、プロセッサがプログラムを実行することで提供される。
2値化処理モジュール313は、赤外領域および可視光領域の成分を含む画像に対して、各画素の輝度情報を用いて2値化処理を実行する。赤外線発光モジュールの近くにいると推定されるユーザからは、より多くの赤外線が反射されるので、ユーザに相当する領域は相対的に明るくなる(より高い輝度値を示す)。そのため、2値化処理によって、ユーザに相当する領域とそうでない領域とを分離できる。
顔認識モジュール314は、2値化処理モジュール313からの2値化画像に対して顔認識処理を行なうことで、その画像内に含まれる特徴量および認識結果を出力する。顔認識処理としては、公知の技術を用いることができる。
相対位置関係推定モジュール315は、顔認識モジュール314からの認識結果に含まれる目の位置の情報に基づいて、ディスプレイとユーザとの相対位置関係を推定する。すなわち、相対位置関係推定モジュール315は、ディスプレイに近接して配置された内側カメラでユーザを撮像して得られる画像から相対位置関係を推定する。具体的には、相対位置関係推定モジュール315は、内側カメラの撮像によって取得された画像内にあるユーザの目の位置から、内側カメラを基準としてユーザがいずれの方向にいるのか、および/または、ユーザがどの程度離れた位置にいるのかといった情報を算出する。
視差バリア制御モジュール316は、相対位置関係推定モジュール315からの相対位置関係に基づいて、バリア液晶(視差バリア)のスリットを調整するための指令を生成する。この指令は、ゲーム装置100の表示コントローラ111または携帯情報端末200の携帯情報端末200視差バリアコントローラ226へ与えられる。
図19に示す複数のモジュールが連係することで、バリア制御機能が実現される。すなわち、手持ち式の情報処理端末は、内側カメラの撮像により得られる画像に対して顔認識処理を実行し、当該情報処理端末に対面するユーザの目の位置を検知する。情報処理端末は、検知したユーザの目の位置に基づいて、LCDパネルの下側面側に配置されたバリア液晶(視差バリア)のスリット(バリアの位置)を制御する。これによって、ユーザは、情報処理端末の正面に存在しない場合であっても、立体視表示を楽しむことができる。
〈e2:調光機能〉
本実施の形態に従う調光機能は、情報処理端末の使用環境に応じて、ディスプレイの明るさを調整する機能である。
図20は、本実施の形態に従う調光機能を説明するための模式図である。図20には、一例として、携帯情報端末200に調光機能を実装した例を示すが、ゲーム装置100に実装した場合も同様である。図20(A)は、ユーザが携帯情報端末200を明るい環境下で使用している状態を示し、図20(B)は、ユーザが携帯情報端末200を暗い環境下で使用している状態を示す。
図20(A)に示すように、明るい環境下で使用されている場合には、携帯情報端末200のディスプレイモジュール210は相対的に明るくなっており、図20(B)に示すように、暗い環境下で使用されている場合には、携帯情報端末200のディスプレイモジュール210は相対的に暗くなっている。このような調光機能は、LCDパネルを用いたディスプレイモジュールの場合には、バックライトの発光量を調整することになり実現される。一方、ELを利用したディスプレイなどのように、自発光式のデバイスであれば、供給電圧や供給電流などを制御することにより、調光機能が実現される。
本実施の形態に従う調光機能では、内側カメラの撮像により得られる画像から周囲環境の状態を取得し、ディスプレイモジュールの適切な明るさを決定する。内側カメラの視野角が相対的に大きい場合には、ユーザの背後も撮像できるので、周囲環境の状態を判断するのに十分な情報を取得できる。
上述したバリア制御機能の実行中には、内側カメラによる画像が周期的に取得できるので、これらの画像を調光機能にも利用することができる。すなわち、本実施の形態に従う調光機能は、任意のタイミングで単独に実行されてもよいが、上述のバリア制御機能と並列的に実行されることがより好ましい。
図21は、本実施の形態に従う調光機能を実現する一例を示す機能ブロック図である。図21を参照して、調光機能320は、ヒストグラム算出モジュール322と、ディスプレイ明るさ決定モジュール324とにより実現される。図21に示す各モジュールは、典型的には、プロセッサがプログラムを実行することで提供される。
ヒストグラム算出モジュール322は、内側カメラによって撮像することで取得された画像(RGB画像および/またはIR画像)を取得し、その画像内のヒストグラムを算出する。すなわち、ヒストグラム算出モジュール322は、取得された画像内の明るさの度合いを分析する。なお、上述のバリア制御機能と並列的に実行される場合には、ヒストグラム算出モジュール322は、バリア制御機能において抽出されたユーザの領域以外の領域について、ヒストグラムを算出することが好ましい。ユーザの領域以外の領域は、より周囲環境の状態を反映していると考えられるためである。
ディスプレイ明るさ決定モジュール324は、ヒストグラム算出モジュール322からのヒストグラムに基づいて、ディスプレイモジュールの明るさを決定する。ディスプレイ明るさ決定モジュール324は、決定したディスプレイモジュールの明るさに応じた調光指令を生成し、ディスプレイモジュールのバックライトなどへ調光指令を出力する。
図21に示す複数のモジュールが連係することで、調光機能が実現される。すなわち、手持ち式の情報処理端末は、内側カメラの撮像により得られる画像に基づいて周囲環境を判断し、それに応じた明るさとなるように、ディスプレイモジュールを制御する。
〈e3:キャリブレーション機能〉
本実施の形態に従うキャリブレーション機能は、上述のバリア制御機能を補助する機能であり、推定されるユーザの相対位置関係を補正する。推定される相対位置関係には、内側カメラの取り付け位置の誤差などに起因して誤差が生じる。この誤差を補正するために、バリア制御のキャリブレーションが可能になっていることが好ましい。このキャリブレーションは、基本的には、1回だけ実行すればよく、算出された補正量は、その後の相対位置関係を算出する処理に用いられる。
図22は、本実施の形態に従うキャリブレーション機能を説明するための模式図である。図22には、一例として、携帯情報端末200にキャリブレーション機能を実装した例を示すが、ゲーム装置100に実装した場合も同様である。図22(A)は、キャリブレーションの初期状態の一例を示し、図22(B)は、キャリブレーションの完了状態の一例を示す。
図22に示すキャリブレーション機能は、いずれかのアプリケーションの実行中に実行可能にされてもよいが、典型的には、各種設定を行なうメニュー画面から実行可能にされる。ユーザは、内側カメラの視野範囲内に自身が収まるように、携帯情報端末200(または、ゲーム装置100)を把持した状態で、キャリブレーション機能の開始を指示する。すると、図22に示すようなキャリブレーション用の立体視表示が提供される。
上述したバリア制御機能によって、ディスプレイとユーザとの相対位置関係が推定され、その推定した相対位置関係に応じた視線を基準として、キャリブレーション用のオブジェクト334が立体視表示される。
画面内には、オブジェクト334に加えて、キャリブレーションを行なうための調整ボタン331および332、ならびに決定ボタン333が表示される。
内側カメラ204の取り付け位置が設計通りであれば、図22(B)に示すように、ユーザは、オブジェクト334の立体視表示を見ることができるが、内側カメラ204の取り付け位置に誤差がある場合などには、図22(A)に示すように、バリア液晶のスリットがずれて設定されるため、オブジェクト334の立体視表示にちらつきを感じる。このような場合には、ユーザは、オブジェクト334の立体視表示にちらつきがなくなるまで、調整ボタン331または332を押下する。すなわち、ユーザは、ディスプレイモジュール210のタッチパネルを操作して、推定される相対位置関係に対する補正量を調整する。そして、ユーザは、オブジェクト334の立体視表示にちらつきがなくなったところで、決定ボタン333を押下して、補正量を決定する。本実施の形態に従うキャリブレーション機能は、推定される相対位置関係(すなわち、認識される目の位置)に対する補正量をユーザ操作に応じて決定する。
調整ボタン331または332が押下されると、それに応じた補正量が、推定された相対位置関係に対して加算/減算される。補正後の相対位置関係に従って、バリア液晶のスリットが調整される。このバリア液晶のスリットの調整によって、ユーザの右目に適切な右目用画像が入り、左目に適切な左目用画像が入ってくることになる。
図23は、本実施の形態に従うキャリブレーション機能を実現する一例を示す機能ブロック図である。図23を参照して、キャリブレーション機能330は、キャリブレーション制御部336と、キャリブレーション用オブジェクト保持部337と、補正量保持部338とにより実現される。図23に示す各モジュールは、典型的には、プロセッサがプログラムを実行することで提供される。
キャリブレーション用オブジェクト保持部337は、キャリブレーション用のオブジェクト(図22に示されるオブジェクト334)を立体視表示するためのデータを保持する。補正量保持部338は、相対位置関係推定モジュール315により推定される相対位置関係に対する補正量を保持する。
キャリブレーション制御部336は、本実施の形態に従うキャリブレーション機能を制御する。より具体的には、キャリブレーション制御部336は、ユーザからのキャリブレーション機能を開始するための操作に応答して、キャリブレーション用オブジェクト保持部337からデータを読み出して、図22に示されるようなキャリブレーション用の画面を表示させるための指令をディスプレイモジュールへ与える。また、図22に示されるようなキャリブレーション用の画面において、ユーザによる調整ボタン331または332の押下に応答して、キャリブレーション制御部336は、補正量保持部338に保持される補正量を更新するとともに、相対位置関係推定モジュール315(図19)からの相対位置関係を、更新後の補正量で補正し、視差バリア制御モジュール316(図19)へ出力する。視差バリア制御モジュール316は、補正後の相対位置関係に基づいて、バリア液晶を制御する。
図22に示す決定ボタン333が押下されると、キャリブレーション制御部336は、補正量保持部338に保持される補正量を確定させるとともに、キャリブレーションの処理を終了する。そして、キャリブレーション制御部336は、バリア制御機能が有効化されている間、相対位置関係推定モジュール315から出力される相対位置関係を、補正量保持部338に保持されている補正量で補正し、視差バリア制御モジュール316へ補正後の相対位置関係を出力する。
このようなキャリブレーション機能によって、内側カメラの取り付け位置に誤差があるような場合であっても、ユーザに対して、より適切な立体視表示を提供できる。
〈e4:視線に応じた表示内容の更新〉
次に、本実施の形態のゲーム装置100および携帯情報端末200は、ユーザの視線に応じて、表示内容を更新することが可能である。すなわち、ゲーム装置100および携帯情報端末200は、ディスプレイとユーザとの相対位置関係に応じて複数の表示画像を生成する。言い換えれば、ゲーム装置100および携帯情報端末200は、相対位置関係に応じて、表示する画像を変化させる。説明の便宜上、このような機能を、運動視差機能と称する。
再度図17(B)を参照して、ユーザが携帯情報端末200を回転させた状態、すなわちユーザが携帯情報端末200に正対していない状態において、携帯情報端末200で立体視表示されるオブジェクト334の見え方が変化していることが判る。すなわち、図17(B)においては、図17(A)とは異なる視点でオブジェクト334が表現されている。このように、本実施の形態のゲーム装置100および携帯情報端末200は、ユーザの視線に応じて表示内容を更新することができる。
(1.ユーザの視線を検知する方法)
まず、ユーザの視線を検知する方法について説明する。典型的には、上述のバリア制御機能において利用したユーザの目の位置を用いて、ユーザの視線を検知してもよい。すなわち、本実施の形態に従う運動視差機能は、内側カメラによってユーザを撮像することで取得された画像からユーザの目の位置を認識し、この認識された目の位置からディスプレイに対するユーザの視線(ディスプレイを基準とした視線の角度)を検知する。言い換えれば、運動視差機能は、相対位置関係に応じて、ディスプレイ上で提供される立体視表示を視認可能な視点位置を制御する。
あるいは、バリア制御機能とは別の方法でユーザの視線を検知してもよい。例えば、内側カメラによってユーザを撮像することで取得された画像からユーザの頭部の位置を認識し、この認識された頭部の位置からディスプレイに対するユーザの視線を検知してもよい。さらにあるいは、ユーザに予めマーカを装着しておき、内側カメラによって撮像した画像内のマーカの位置を検知するようにしてもよい。
さらに別の方法として、ディスプレイの周囲に配置された複数の距離センサ(例えば、赤外線式、超音波式、磁気式など)を用いて、ディスプレイを基準としたユーザの相対位置関係を検知し、この相対位置関係からユーザの視線を決定してもよい。
さらに別の方法として、加速度センサ148,236、ジャイロセンサ149,238、地磁気センサなどを用いて、情報処理端末の傾きなどを検知し、この情報処理端末の傾きからユーザの視線を決定してもよい。
さらに、上述した複数の方法のうち任意の2つ以上を組み合わせてもよい。
(2.仮想空間に配置されたオブジェクトを用いる方法)
次に、検知されたユーザの視線に応じて表示内容を更新する方法について説明する。一例として、仮想空間に配置されたオブジェクトを、相対位置関係に応じた位置に配置された複数の仮想カメラで撮像することで、立体視表示に用いられる複数の表示画像を生成する処理について説明する。
図24は、本実施の形態に従う運動視差機能を説明するための模式図である。図24(A)を参照して、仮想空間340には、仮想カメラ341および342が配置される。仮想カメラ341および342は、仮想空間340内の視野範囲345および346にあるオブジェクトをそれぞれ撮像し、左目用画像IMLおよび右目用画像IMRを生成する。仮想カメラ341と仮想カメラ342との間は、仮想カメラ341および342のそれぞれの視線方向343および344と直交する方向に、ある距離だけ離されている。仮想カメラ341と仮想カメラ342と間の距離の差に応じて、左目用画像IMLと右目用画像IMRとの間には視差が生じる。このような左目用画像IMLおよび右目用画像IMRを用いて立体視表示が提供される。
検知されたユーザの視線に応じて、仮想カメラ341および342を移動させることで、表示内容が更新される。図24(B)には、仮想カメラ341および342の位置が変更された状態を示す。より具体的には、仮想カメラ341および342は、検知されたユーザの視線、すなわちディスプレイを基準とした視線の角度に応じて移動する。すなわち、運動視差機能は、相対位置関係に応じて仮想カメラ341および342を移動させる。
仮想空間に注視点349が予め定められている場合には、仮想カメラ341および342の移動において、注視点349までの距離を移動前後において一定に保つことが好ましい。注視点349は、立体視表示の基準となる仮想空間内の点であり、注視点349と仮想カメラ341および342との間の距離によって、ユーザが感じる立体感や視野などが変化する。そのため、注視点349の位置、および/または、注視点349と仮想カメラ341および342との間の距離は、実行されるアプリケーション(後述するような各種アプリケーション)、実行されるアプリケーションの各シチュエーション(場面)、ユーザが設定するモード(例えば、選択可能な複数の視点のうちユーザが選択した視点)などに応じて、適宜決定される。
また、検知される相対位置関係と仮想カメラ341および342の移動量との関係についても、実行されるアプリケーション、実行されるアプリケーションの各シチュエーション(場面)、ユーザが設定するモードなどに応じて、適宜決定される。
仮想カメラ341および342の移動後の位置は、両カメラを結ぶ線の中点から注視点349までの距離が一定に保たれるように決定される。すなわち、移動前の中点340Aと注視点349との間の距離が、移動後の中点340Bと注視点349との間の距離と一致するように、仮想カメラ341および342が位置決めされる。言い換えれば、運動視差機能は、仮想空間の予め定められた注視点349からの距離を一定に維持しつつ、相対位置関係に応じて仮想カメラ341および342を回転させる。
なお、中点340Bと注視点349との間の距離については、角度に応じて、その距離を所定の割合で増加させたり減少させたりしてもよい。
注視点349の位置は、実行されるアプリケーションの種類やユーザが選択するモードなどに応じて定められるので、注視点349から仮想カメラ341および342までの距離は、実行されるアプリケーションおよび/またはアプリケーションのモードに応じて異なることになる。
また、検知される相対位置関係に応じた複数の仮想カメラの移動量についても、実行されるアプリケーションの種類やユーザが選択するモードなどに応じて定められるので、同一の相対位置関係に対応する複数の仮想カメラの相対位置関係に応じた移動量は、実行されるアプリケーションおよび/またはアプリケーションのモードに応じて異なることになる。
運動視差機能は、仮想空間の注視点を基準として、相対位置関係に応じて仮想カメラ341および342を回転させる。注視点349に対する距離を維持することで、オブジェクトをより自然に表現できる。
図24においては、説明の簡素化のため、仮想カメラ341および342の移動を2次元的に描いているが、実際には、3次元的に移動させることができる。すなわち、ディスプレイを基準としたユーザの視線は、立体角として表現でき、この立体角に応じて、仮想カメラ341および342を2つの軸に沿ってそれぞれ移動させることができる。つまり、ユーザがディスプレイを左右方向から覗き込んだ場合と、ディスプレイを上下方向から覗き込んだ場合とでは、その表示される画像が異なることがある。但し、処理の簡素化のため、左右方向または上下方向の一方のみを検知するようにしてもよい。
なお、認識されるユーザの両目の間の距離に応じて、仮想カメラ341および342を仮想カメラの視線方向に移動させてもよい。このような処理を採用することで、ユーザがディスプレイに顔を近づけると、仮想カメラも注視点に近寄っていき、逆にユーザがディスプレイから顔を遠ざけると、仮想カメラも注視点から遠ざかっていくようになる。
内側カメラの撮像によって取得された画像からユーザの目の位置を検知し、その検知された目の位置をバリア制御機能および運動視差機能の両方に用いることができる。但し、バリア制御機能では、ディスプレイの左右方向における目の位置の情報が用いられ、運動視差機能では、ディスプレイの上下左右方向における目の位置の情報が用いられる。したがって、ユーザが上側または下側からディスプレイを覗き込んだ場合には、その表示内容は更新されるが、バリア液晶に形成されるスリットには変化がない。
図24には、注視点349までの距離を一定に保つように、仮想カメラ341および342を移動させる処理例を示したが、処理の簡素化の観点から、移動方向に制約を設けてもよい。図25は、本実施の形態に従う運動視差機能を説明するための別の模式図である。図25には、視線方向343および344に直交する方向に、仮想カメラ341および342を移動させる処理例を示す。すなわち、仮想カメラ341および342は、仮想カメラ341と仮想カメラ342とを結ぶ線の延長線上を移動することになる。
図25(A)と図25(B)とを比較すると、移動前の仮想カメラ341および342の視野範囲345および346は、移動後の仮想カメラ341および342の視野範囲347および348と、ファークリップ面FCにおいてそれぞれ一致している。つまり、仮想カメラ341および342を移動させる際に、ファークリップ面FCにおけるそれぞれの視野範囲の連続性を維持することで、オブジェクトをより自然に表現できる。また、図25に示す方法を採用することで、オブジェクトのレンダリングに要する時間をより短縮でき、より高速な描画処理を実現できる。このように、運動視差機能は、仮想空間の注視点を含む平面に平行な方向に、相対位置関係に応じて仮想カメラ341および342を移動させる。
図26は、本実施の形態に従う運動視差機能を実現する一例を示す機能ブロック図である。図26を参照して、運動視差機能350は、視線検知モジュール351と、仮想カメラ位置決定モジュール352と、レンダリングモジュール353と、オブジェクト情報格納モジュール354とにより実現される。図26に示す各モジュールは、典型的には、プロセッサがプログラムを実行することで提供される。
視線検知モジュール351は、ユーザの視線を検知する。より具体的には、視線検知モジュール351は、内側カメラによって撮像されたユーザの画像、および/または、距離センサ、加速度センサ、ジャイロセンサ、地磁気センサなどからの信号などに基づいて、ディスプレイに対するユーザの視線を検知する。
仮想カメラ位置決定モジュール352は、視線検知モジュール351からのユーザの視線に基づいて、仮想空間に配置する複数の仮想カメラの位置を決定する。
レンダリングモジュール353は、仮想空間に配置されたオブジェクトをレンダリングすることで、左目用画像IMLおよび右目用画像IMRを生成する。すなわち、レンダリングモジュール353は、相対位置関係に応じて複数の表示画像を生成する。より具体的には、レンダリングモジュール353は、仮想カメラ位置決定モジュール352から指定される仮想空間の位置に複数の仮想カメラを配置するとともに、オブジェクト情報格納モジュール354に格納されているオブジェクト情報に従って仮想空間内のオブジェクトを複数の仮想カメラで撮像する。このように、仮想空間に配置されたオブジェクトを相対位置関係に応じた位置に配置された複数の仮想カメラを用いて撮像することで、複数の表示画像が生成される。
仮想カメラ位置決定モジュール352、レンダリングモジュール353およびオブジェクト情報格納モジュール354は、アプリケーションの一部として提供される場合もあり、このような場合には、アプリケーションの実行に伴って、表示されるべきオブジェクトの情報は逐次更新される。
上述の説明では、仮想空間に2つの仮想カメラを配置する構成について例示したが、より多くの視差画像を用いて立体視表示を提供する場合には、2つを超える仮想カメラを仮想空間に配置するようにしてもよい。
(3.現実世界の画像を用いる方法)
次に、現実世界の画像を用いて、ユーザの視線に応じて表示内容を更新する方法について説明する。現実世界の画像としては、例えば、外側カメラを用いて何らかの被写体を撮像することで取得される。ゲーム装置100に搭載される外側カメラ131Lおよび131Rを用いる場合には、一対の入力画像(左目用画像および右目用画像)を一度に取得できるので、これらの画像を用いることができる。
このような形態に限らず、単一のカメラで被写体を撮像することで取得される単一の画像を用いて、立体視表示を提供するための複数の表示画像を生成してもよい。図27は、本実施の形態に従う運動視差機能において単一の画像を用いて立体視表示を行なう処理を説明するための模式図である。
図27を参照して、単一のカメラで被写体を撮像することで取得される単一の画像を、左目用画像IMLおよび右目用画像IMRとし、これらの画像を所定間隔だけ離して表示させる。ユーザは、左目用画像IMLと右目用画像IMRとの間の表示位置の違いによって生じる視差によって、立体視表示を楽しむことができる。図27(A)には、視差量が相対的に多い状態、すなわちディスプレイからの飛び出し量の多い状態を示す。一方、図27(B)には、視差量が相対的に少ない状態、すなわちディスプレイからの飛び出し量の少ない状態を示す。
上述したように、複数のカメラで被写体をそれぞれ異なる視点から撮像して取得される複数の表示画像、または、単一のカメラで被写体を撮像して取得される画像から生成される複数の表示画像を用いて、立体視表示を行なう場合には、以下のような方法で、運動視差機能を実現できる。
図28は、本実施の形態に従う運動視差機能において一対の入力画像を用いる方法を説明するため模式図である。図28を参照して、左目用画像IMLおよび右目用画像IMRを、ユーザの視線に応じて幾何学変換することで、変換後の左目用画像IML’および右目用画像IMR’が生成される。左目用画像IML’および右目用画像IMR’をそれぞれの位置で表示することで、ユーザは、ユーザの視線に応じた画像の立体視表示を楽しむことができる。
左目用画像IML’および右目用画像IMR’を用いる場合にも、図28(A)および図28(B)に示すように、表示のずれ量を異ならせることで、ディスプレイからの飛び出し量(立体感)を調整することができる。
図29は、本実施の形態に従う運動視差機能を実現する別の一例を示す機能ブロック図である。図29を参照して、運動視差機能360は、視線検知モジュール361と、変換関数決定モジュール362と、画像変換モジュール363とにより実現される。図29に示す各モジュールは、典型的には、プロセッサがプログラムを実行することで提供される。
視線検知モジュール361は、ユーザの視線を検知する。より具体的には、視線検知モジュール361は、内側カメラによって撮像されたユーザの画像、および/または、距離センサ、加速度センサ、ジャイロセンサ、地磁気センサなどからの信号などに基づいて、ディスプレイに対するユーザの視線を検知する。
変換関数決定モジュール362は、視線検知モジュール361からのユーザの視線に基づいて、幾何学変換を行なうための変換関数を決定する。
画像変換モジュール363は、変換関数決定モジュール362において決定された変換関数に従って、内側カメラおよび/または外側カメラからの画像を幾何学変換して、左目用画像IMLおよび右目用画像IMRを生成する。
(4.小括)
本実施の形態の運動視差機能によれば、ユーザの視線を検知し、その視線に応じた表示内容を表示する。この運動視差機能によって、ユーザは、上下左右のいずれかの方向から情報処理端末のディスプレイを覗き込めば、その覗き込んだ方向に応じた画像を見ることができ、より現実感を楽しむことができる。
また、本実施の形態によれば、単一のカメラで被写体を撮像して得られる単一の画像があれば、運動視差機能を実現できる。すなわち、複数のカメラを必要としないので、装置コストを低減できるという利点がある。
〈e5:非接触通信〉
本実施の形態に従うゲーム装置100および携帯情報端末200は、所定のデータを記憶した記憶媒体との非接触通信が可能になっている。
非接触通信の機能を用いることで、ICチップが内蔵されたカードやフィギュアをかざすだけで、そのICチップに格納された情報の読み取りやICチップへの情報の書き込みを行なうことができる。このようなICチップとの間の情報の読み取りおよび書き込みは、アプリケーションの実行中に行なわれる。例えば、アプリケーションの実行中に何らかのアイテムを購入するような場合に、ユーザが電子マネーの機能が実装されたICカードをディスプレイにかざすことで、その購入に必要な決済処理が完了する。
あるいは、サーバにアクセスしてアプリケーションをダウンロードする場合などにおいても、ICカードをディスプレイにかざすことで、アプリケーションのダウンロード(購入)に必要な決済処理を実行してもよい。
本実施の形態に従うゲーム装置100では、下側ディスプレイモジュール120の内部に非接触通信に必要なアンテナ123が配置されており(図14参照)、ICチップが内蔵されたフィギュアをユーザが下側ディスプレイモジュール120にかざすと、そのICチップに格納された情報に応じた表示や音声出力がなされるようにしてもよい。例えば、フィギュアに内蔵されたICチップに格納された情報に基づいて、当該フィギュアに対応するキャラクタの画像(静止画または動画)が上側ディスプレイモジュール110および/または下側ディスプレイモジュール120に表示されてもよい。さらに、当該フィギュアの名前やプロフィールなどが上側ディスプレイモジュール110および/または下側ディスプレイモジュール120に表示されてもよいし、当該フィギュアに関連付けられた音声メッセージが出力されてもよい。
例えば、NFCフォーラムでは、ICカードのように機能するカードエミュレーションモード、デバイスとの間で情報を読み書きするリーダライタモード、および、NFC搭載の端末同士で通信するP2Pモード、という3つのモードが定義されている。これらの3つのモードについては、起動したアプリケーションに応じてモードが自動的に選択されるようにしてもよいし、アプリケーション内でユーザの入力操作やアプリケーションの実行状況に応じてモードが選択されるようにしてもよい。なお、これらの3つのモードすべてを実装してもよいし、リーダライタモードのみを実装してもよい。
あるいは、カードエミュレーションモードおよびリーダライタモードの2つを実装する場合には、それぞれのモードに適した位置にアンテナを実装してもよい。
図30は、本実施の形態に従う携帯情報端末200の非接触通信の一例を示す模式図である。図30(A)は、携帯情報端末200をリーダライタモードで使用する形態を示し、図30(B)は、携帯情報端末200をカードエミュレーションモードで使用する形態を示す。
図30(A)に示すように、ICカード372から情報を読み取る場合には、ユーザは、ICカード372を携帯情報端末200の表側(ディスプレイモジュール210の側)にかざす。これに対して、図30(B)に示すように、携帯情報端末200自体をICカードとして機能させる場合には、ユーザは、携帯情報端末200の裏面をリーダライタ374にかざす。あるいは、その逆の使用形態として、携帯情報端末200の表面をリーダライタ374にかざし、その裏面にICカード372をかざすようにしてもよい。
このように、携帯情報端末200の表面および裏面でそれぞれ機能を異ならせることで、ユーザの利便性を高めることができる。図30においては、携帯情報端末200を用いて説明したが、ゲーム装置100においても同様に実装することができる。図30に示すような使用形態を実現するためには、携帯情報端末200の表側および裏側のそれぞれにアンテナを配置することが好ましいが、単一のアンテナで実現してもよい。
〈e6:無線通信および非接触通信の有効化/無効化〉
本実施の形態に従うゲーム装置100および携帯情報端末200は、IEEE802.11a/b/g/nといった規格に準拠した無線LAN方式に従う無線通信の機能と、NFCなどの非接触通信の機能とを実装している。例えば、航空機の機内では、これらの通信機能を無効化(電波を発しない状態にする)必要がある。それぞれの通信機能を独立に無効化できるようにしてもよいが、これらの通信機能を一度に無効化できることがより好ましい場合もある。以下、無線通信および非接触通信を同時に有効化/無効化できる機能について説明する。
図31は、本実施の形態に従う無線通信および非接触通信の有効化/無効化を選択するための操作画面380の一例を示す図である。ユーザがメニュー画面などにおいて操作をすることで、図31に示すように、無線通信および非接触通信の有効化/無効化を選択するための操作画面380が表示される。
図31(A)に示す操作画面380において、ユーザがオンの操作オブジェクト382を選択することで、無線通信および非接触通信が有効化される。なお、無線通信および非接触通信を使用する通信については、アプリケーションで制御するようにしてもよい。そのため、無線通信および非接触通信の有効化は、これらの通信を司るモジュールに電源を供給すること、または電源を供給できる状態にすることを意味する場合がある。
一方、図31(B)に示す操作画面380において、ユーザがオフの操作オブジェクト382を選択することで、無線通信および非接触通信が無効化される。無線通信および非接触通信の無効化は、これらの通信を司るモジュールへの電源供給を遮断することを意味する。
このような無線通信および非接触通信のソフト上での有効化/無効化の機能を実装することで、ユーザは、電波を発しない状態を保たなければならない状況などにおいて、より簡易な操作でこれを実現できる。
[F.アプリケーション]
以上説明した機能を利用したアプリケーションの一例について説明する。
〈f1:シューティングゲーム〉
本実施の形態に従うシューティングゲームについて説明する。本シューティングゲームは、ユーザが、ゲーム内の主人公として、ゲーム世界として用意された仮想の3次元空間(仮想空間)に出現する敵キャラクタを撃ち落とすゲームである。ディスプレイ(例えば、ゲーム装置100の上側ディスプレイモジュール110)において、ゲーム世界をなす仮想空間はユーザの視点で描画される。ユーザが敵キャラクタを撃ち落とすことで、得点が加算される。これに対し、敵キャラクタとユーザとが衝突すると(具体的には、敵キャラクタが仮想カメラの位置から一定距離以内に到達すると)、得点が減点される。
図32は、本実施の形態に従うシューティングゲームにおいて提供される画面例400を示す図である。図32を参照して、画面例400は、外側カメラの撮像により取得される現実世界の画像(以下、「実世界画像402」とも称す。)と、仮想空間を表現する仮想空間画像とを合成することで生成される。より具体的には、仮想空間は、仮想カメラに近い領域(以下、「手前側領域」とも称す。)と、仮想カメラから遠い領域(以下、「奥側領域」とも称す。)とに区分される。手前側領域に存在するオブジェクト(図32に示す例では、カーソル410、敵キャラクタ412、弾オブジェクト416)を表す画像を実世界画像402の手前側に表示し、奥側領域に存在するオブジェクト(図32に示す例では、壁オブジェクト406)を表す画像を実世界画像402の背後側に表示する。奥側領域に存在するオブジェクトは、実世界画像402が存在する奥行位置に設けられた開口404を通じて表示される。すなわち、開口404が存在する領域についてのみ、奥側領域に存在するオブジェクトがレンダリングされることになる。開口404については、ゲーム進行に伴って、所定規則に従ってその領域が動的に変更される。
画面例400には、シルエットオブジェクト414が表示されており、これは、奥側領域に存在する敵キャラクタ418(図33)に対応するシルエットである。
実世界画像402は、いずれのカメラで撮像してもよい。典型的には、一対の外側カメラを用いて、所定の視差を有する一対の入力画像(左目用画像および右目用画像)を用いてもよい。但し、以下の説明では、外側カメラの一方のみを用いて実世界画像402を取得する処理について説明する。すなわち、単一のカメラで被写体を撮像することで取得される単一の画像を用いて、立体視表示が提供される。
図33は、本実施の形態に従うシューティングゲームにおける各オブジェクトの配置例を示す図である。図34は、本実施の形態に従うシューティングゲームにおける各オブジェクトの奥行方向の配置順序を示す図である。
図33および図34を参照して、手前側領域と奥側領域との境界に境界面420が設けられる。境界面420には、いずれの位置に開口404(図32)が存在するのかを示す情報が関連付けられる。なお、説明の便宜上、図33には、実世界画像402が境界面420に貼り付けられている状態を示すが、実世界画像402を境界面420に貼り付ける必要は必ずしもない。
境界面420の手前側から仮想カメラ432および434がオブジェクトを仮想的に撮像する。仮想カメラ432および434と境界面420との間に、敵キャラクタ412および弾オブジェクト416、ならびに、図示しないカーソル410が存在する。奥側領域の最も奥側に壁オブジェクト406が存在し、境界面420と壁オブジェクト406との間に、敵キャラクタ418が存在する。
仮想カメラ432および434がオブジェクトを仮想的に撮像することで、左目用仮想世界画像および右目用仮想世界画像を生成する。左目用仮想世界画像および右目用仮想世界画像には、手前側領域に存在するオブジェクト、および開口404を通じて見える奥側領域に存在するオブジェクトが表われる。
図35は、本実施の形態に従うシューティングゲーム440を実現する一例を示す機能ブロック図である。図35を参照して、シューティングゲーム440は、実世界画像取得モジュール442と、オブジェクト更新モジュール444と、仮想カメラ設定モジュール446と、レンダリングモジュール448と、得点更新モジュール450と、左目用画像合成モジュール452と、右目用画像合成モジュール454とにより実現される。図35に示す各モジュールは、典型的には、プロセッサがプログラムを実行することで提供される。
実世界画像取得モジュール442は、1つの外側カメラの撮像により、実世界画像402を取得し、所定の距離だけずらして、左目用実世界画像および右目用実世界画像を生成する。
オブジェクト更新モジュール444は、ユーザ操作に応じて、手前側領域および奥側領域に存在するオブジェクトの生成、移動、消滅などを制御する。オブジェクト更新モジュール444は、境界面に存在する開口404(図32)の大きさや位置などについても所定周期毎に更新する。オブジェクト更新モジュール444は、さらに、ユーザ操作に従って、カーソル410および弾オブジェクト416(図32)の生成、移動、消滅などを制御する。
仮想カメラ設定モジュール446は、ユーザ操作に応じて、仮想カメラ432および434(図33および34)の位置を決定する。また、仮想カメラ設定モジュール446は、加速度センサ、ジャイロセンサ、地磁気センサなどからの検知信号に基づいて情報処理端末の傾きなどを検知し、その検知結果に応じて、仮想カメラ432および434の向きを決定する。
レンダリングモジュール448は、オブジェクト更新モジュール444からのオブジェクト情報と、仮想カメラ設定モジュール446からの仮想カメラ432および434の情報とを用いて、仮想空間をレンダリングし、左目用仮想世界画像および右目用仮想世界画像を生成する。オブジェクト更新モジュール444は、ゲームの進行に伴って、オブジェクト情報を更新するので、レンダリングモジュール448は、ゲームのアプリケーションの進行に従って、複数の表示画像を生成することになる。また、仮想カメラ設定モジュール446は、情報処理端末の動きに応じて仮想カメラ432および434の向きを決定するので、レンダリングモジュール448は、情報処理端末の動きを利用したアプリケーションの進行に従って、複数の表示画像を生成することになる。
得点更新モジュール450は、弾オブジェクト416と敵キャラクタ412との間の位置関係、および、敵キャラクタ412と仮想カメラ432および434との間の位置関係を所定周期毎に算出するとともに、その算出結果に応じて、得点を更新する。
左目用画像合成モジュール452は、実世界画像取得モジュール442からの左目用実世界画像と、レンダリングモジュール448からの左目用仮想世界画像とを合成して、左目用画像を生成する。
右目用画像合成モジュール454は、実世界画像取得モジュール442からの右目用実世界画像と、レンダリングモジュール448からの右目用仮想世界画像とを合成して、右画像を生成する。
生成された左目用画像および右目用画像は、ディスプレイモジュールへ出力される。ディスプレイモジュールでは、上述のバリア制御機能によって、バリア液晶(視差バリア)が制御される。
本実施の形態に従うシューティングゲームでは、情報処理端末(ゲーム装置100または携帯情報端末200)の傾きなどに応じて、仮想カメラの位置姿勢が決定される。そのため、ユーザは、ゲーム中に情報処理端末を激しく傾けることがあり、ディスプレイとユーザとの相対位置関係が大きく変化しやすい。このような場合であっても、本実施の形態に従うバリア制御機能を用いることで、常に最適な立体視表示をユーザに提供することができ、ユーザは、シューティングゲームをより楽しむことができる。
〈f2:カメラ利用アプリケーション〉
カメラ利用アプリケーションとしては、内側カメラまたは外側カメラを用いて被写体を撮像したり、撮像された画像(静止画または動画)を再生したりできる。上述のバリア制御機能を有効化する場合には、内側カメラを用いてユーザを所定周期で撮像する必要がある。そのため、内側カメラが使用されていない場合に限って、バリア制御機能が有効化される。
画像処理エンジンを簡素化するために、同時に3つ以上のカメラを利用することができないような実装であれば、撮像された画像の再生中に限って、バリア制御機能を有効化するようにしてもよい。このような実装であっても、内側カメラおよび外側カメラを1つずつ同時利用することはできるので、1つの外側カメラにより撮像された画像を用いて立体表示が提供される場合には、内側カメラにより撮像された画像を用いて、バリア制御機能を有効化できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。