(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-06
(45)【発行日】2023-09-14
(54)【発明の名称】情報処理システム、情報処理プログラム、情報処理装置および情報処理方法
(51)【国際特許分類】
G06F 3/01 20060101AFI20230907BHJP
A63F 13/211 20140101ALI20230907BHJP
A63F 13/25 20140101ALI20230907BHJP
A63F 13/5255 20140101ALI20230907BHJP
A63F 13/212 20140101ALI20230907BHJP
G06T 19/00 20110101ALI20230907BHJP
【FI】
G06F3/01 510
A63F13/211
A63F13/25
A63F13/5255
A63F13/212
G06T19/00 A
(21)【出願番号】P 2019156577
(22)【出願日】2019-08-29
【審査請求日】2022-06-23
(32)【優先日】2019-07-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100090181
【氏名又は名称】山田 義人
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】中村 祐貴
(72)【発明者】
【氏名】竹内 清
(72)【発明者】
【氏名】辰野 瑞樹
(72)【発明者】
【氏名】ジョナサン ジョンソン
【審査官】田川 泰宏
(56)【参考文献】
【文献】特開2018-097364(JP,A)
【文献】特開2017-058971(JP,A)
【文献】特開2015-232783(JP,A)
【文献】特開2019-080729(JP,A)
【文献】国際公開第2017/098822(WO,A1)
【文献】米国特許出願公開第2017/0076503(US,A1)
【文献】米国特許出願公開第2015/0352437(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01-3/04895
A63F 13/211
A63F 13/25
A63F 13/5255
A63F 13/212
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
慣性センサと表示部を備えるゴーグル装置と、操作部を備える情報処理システムであって、
前記慣性センサの出力に基づく動きデータと、前記操作部への操作入力データを取得するデータ取得手段と、
前記動きデータに基づいて、仮想空間内の仮想カメラの姿勢を制御するカメラ制御手段と、
所定の操作入力があったときに
、前記仮想空間内の所定のオブジェクト
であって、当該所定の操作入力に予め対応付けられる所定のオブジェクトの少なくとも一部が前記仮想カメラの視野内に含まれてい
る場合には、当該所定の操作入力に応じて当該所定のオブジェクトに関連
付けられる場面に場面を遷移させる処理を実行
し、当該所定の操作入力があったときに、当該所定のオブジェクトが当該仮想カメラの視野内に含まれていない場合には、当該処理を実行しない処理実行手段と、
前記表示部に表示させるための、前記仮想カメラに基づく画像を生成する生成手段を備える、情報処理システム。
【請求項2】
前記所定のオブジェクトの少なくとも一部が前記仮想カメラの視野内に含まれているかどうかを判定する判定手段をさらに備える、請求項1記載の情報処理システム。
【請求項3】
前記所定のオブジェクトの少なくとも一部が前記仮想カメラの視野内に含まれていれば、前記所定の操作入力を行うための前記操作部の画像を表示する操作画像表示手段をさらに備える、請求項1または2記載の情報処理システム。
【請求項4】
前記所定のオブジェクトは複数のオブジェクトであり、
操作対象を変更する操作入力があったときに、前記仮想空間内の前記所定のオブジェクトの少なくとも一部が前記仮想カメラの視野内に含まれていれば、前記複数のオブジェクトのうちの1つを特定する特定手段をさらに備え、
前記
処理実行手段は、前記特定手段によって特定された前記オブジェクト
に関連付けられる場面に場面を遷移させる、請求項1から
3までのいずれかに記載の情報処理システム。
【請求項5】
前記カメラ制御手段は、前記ゴーグル装置の姿勢に基づいて前記仮想空間内の前記仮想カメラの姿勢を制御する、請求項1から
4までのいずれかに記載の情報処理システム。
【請求項6】
前記仮想カメラは、前記仮想空間内における第1の特定の位置に配置される、請求項
5記載の情報処理システム。
【請求項7】
前記所定のオブジェクトは、前記仮想空間内における第2の特定の位置に配置される、請求項
5記載の情報処理システム。
【請求項8】
前記所定の操作入力とは異なる別の所定の操作入力があった場合、前記仮想カメラの水平方向の向きを基準方向に変更する変更手段をさらに備える、請求項
5記載の情報処理システム。
【請求項9】
前記生成手段は前記仮想カメラに基づいて立体視画像を生成する、請求項1から
8までのいずれかに記載の情報処理システム。
【請求項10】
コンピュータを、
ゴーグル装置が備える慣性センサの出力に基づく動きデータと、操作部への操作入力データを取得するデータ取得手段と、
前記動きデータに基づいて、仮想空間内の仮想カメラの姿勢を制御するカメラ制御手段と、
所定の操作入力があったときに
、前記仮想空間内の所定のオブジェクト
であって、当該所定の操作入力に予め対応付けられる所定のオブジェクトの少なくとも一部が前記仮想カメラの視野内に含まれてい
る場合には、当該所定の操作入力に応じて当該所定のオブジェクトに関連
付けられる場面に場面を遷移させる処理を実行
し、当該所定の操作入力があったときに、当該所定のオブジェクトが当該仮想カメラの視野内に含まれていない場合には、当該処理を実行しない処理実行手段と、
前記ゴーグル装置の表示部に表示させるための、前記仮想カメラに基づく画像を生成する生成手段として機能させる、情報処理プログラム。
【請求項11】
ゴーグル装置の慣性センサの出力に基づく動きデータと、操作部への操作入力データを取得するデータ取得手段と、
前記動きデータに基づいて、仮想空間内の仮想カメラの姿勢を制御するカメラ制御手段と、
所定の操作入力があったときに
、前記仮想空間内の所定のオブジェクト
であって、当該所定の操作入力に予め対応付けられる所定のオブジェクトの少なくとも一部が前記仮想カメラの視野内に含まれてい
る場合には、当該所定の操作入力に応じて当該所定のオブジェクトに関連
付けられる場面に場面を遷移させる処理を実行
し、当該所定の操作入力があったときに、当該所定のオブジェクトが当該仮想カメラの視野内に含まれていない場合には、当該処理を実行しない処理実行手段と、
前記ゴーグル装置の表示部に表示させるための、前記仮想カメラに基づく画像を生成する生成手段を備える、情報処理装置。
【請求項12】
(a)ゴーグル装置の慣性センサの出力に基づく動きデータと、操作部への操作入力データを取得するステップと、
(b)前記動きデータに基づいて、仮想空間内の仮想カメラの姿勢を制御するステップと、
(c)所定の操作入力があったときに
、前記仮想空間内の所定のオブジェクト
であって、当該所定の操作入力に予め対応付けられる所定のオブジェクトの少なくとも一部が前記仮想カメラの視野内に含まれてい
る場合には、当該所定の操作入力に応じて当該所定のオブジェクトに関連
付けられる場面に場面を遷移させる処理を実行
し、当該所定の操作入力があったときに、当該所定のオブジェクトが当該仮想カメラの視野内に含まれていない場合には、当該処理を実行しないステップと、
(d)前記ゴーグル装置の表示部に表示させるための、前記仮想カメラに基づく画像を生成するステップを含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は情報処理システム、情報処理プログラム、情報処理装置および情報処理方法に関し、特にたとえば、仮想空間に配置されたオブジェクトを操作する、情報処理システム、情報処理プログラム、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
背景技術の一例が特許文献1に開示される。この特許文献1では、ゲームシステムは、ユーザの頭の傾きを検出する検出部を有し、かつユーザの頭に装着されるヘッドマウントディスプレイを含み、仮想カメラの視線方向の変更をユーザから受け付ける操作部は、ヘッドマウントディスプレイであってもよいことが開示される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
この特許文献1では、ヘッドマウントディスプレイでは、操作対象のキャラクタまたはオブジェクトが視野外に位置する場合があり、この場合に、キャラクタまたはオブジェクトへの操作入力が反映されると、ユーザが意図しない処理が実行されてしまう虞があった。
【0005】
それゆえに、この発明の主たる目的は、新規な、情報処理システム、情報処理プログラム、情報処理装置および情報処理方法を提供することである。
【0006】
また、この発明の他の目的は、ユーザの意図しない処理が実行されるのを防止できる、情報処理システム、情報処理プログラム、情報処理装置および情報処理方法を提供することである。
【課題を解決するための手段】
【0007】
第1の発明は、慣性センサと表示部を備えるゴーグル装置と、操作部を備える情報処理システムであって、慣性センサの出力に基づく動きデータと、操作部への操作入力データを取得するデータ取得手段と、動きデータに基づいて、仮想空間内の仮想カメラの姿勢を制御するカメラ制御手段と、所定の操作入力があったときに、仮想空間内の所定のオブジェクトであって、当該所定の操作入力に予め対応付けられる所定のオブジェクトの少なくとも一部が仮想カメラの視野内に含まれている場合には、当該所定の操作入力に応じて当該所定のオブジェクトに関連付けられる場面に場面を遷移させる処理を実行し、当該所定の操作入力があったときに、当該所定のオブジェクトが当該仮想カメラの視野内に含まれていない場合には、当該処理を実行しない処理実行手段と、表示部に表示させるための、仮想カメラに基づく画像を生成する生成手段を備える、情報処理システムである。
【0008】
第1の発明によれば、所定の操作入力があったときに、仮想空間内の所定のオブジェクトの少なくとも一部が仮想カメラの視野内に含まれている場合には、当該所定の操作入力に応じて当該所定のオブジェクトに関連付けられる場面に場面を遷移させる処理を実行し、当該所定の操作入力があったときに、当該所定のオブジェクトが当該仮想カメラの視野内に含まれていない場合には、当該処理を実行しないので、ユーザが意図しない処理が実行されるのを防止することができる。
【0009】
第2の発明は、第1の発明に従属し、所定のオブジェクトの少なくとも一部が仮想カメラの視野内に含まれているかどうかを判定する判定手段をさらに備える。
【0010】
第3の発明は、第1または第2の発明に従属し、所定のオブジェクトの少なくとも一部が仮想カメラの視野内に含まれていれば、所定の操作入力を行うための操作部の画像を表示する操作画像表示手段をさらに備える。
【0011】
第3の発明によれば、所定のオブジェクトの少なくとも一部が仮想カメラの視野内に含まれていれば、所定の操作入力を行うための操作部の画像を表示するので、所定のオブジェクトに関連する所定の処理が実行可能であること、および、所定のオブジェクトが操作可能であることを容易に知ることができる。
【0013】
第4の発明は、第1から第3の発明までのいずれかに従属し、所定のオブジェクトは複数のオブジェクトであり、操作対象を変更する操作入力があったときに、仮想空間内の所定のオブジェクトの少なくとも一部が仮想カメラの視野内に含まれていれば、複数のオブジェクトのうちの1つを特定する特定手段をさらに備え、処理実行手段は、特定手段によって特定されたオブジェクトに関連付けられる場面に場面を遷移させる。
【0014】
第5の発明は、第1から第4の発明までのいずれかに従属し、カメラ制御手段は、ゴーグル装置の姿勢に基づいて仮想空間内の仮想カメラの姿勢を制御する。
【0015】
第5の発明によれば、ゴーグル装置を装着したユーザの頭部の姿勢に基づいて仮想カメラの姿勢を制御することができる。
【0016】
第6の発明は、第5の発明に従属し、仮想カメラは、仮想空間内における第1の特定の位置に配置される。
【0017】
第7の発明は、第5の発明に従属し、所定のオブジェクトは、仮想空間内における第2の特定の位置に配置される。
【0018】
第8の発明は、第5の発明に従属し、所定の操作入力とは異なる別の所定の操作入力があった場合、仮想カメラの水平方向の向きを基準方向に変更する変更手段をさらに備える。
【0021】
第9の発明は、第1から第8の発明までのいずれかに従属し、生成手段は仮想カメラに基づいて立体視画像を生成する。
【0022】
第10の発明は、コンピュータを、ゴーグル装置が備える慣性センサの出力に基づく動きデータと、操作部への操作入力データを取得するデータ取得手段と、動きデータに基づいて、仮想空間内の仮想カメラの姿勢を制御するカメラ制御手段と、所定の操作入力があったときに、仮想空間内の所定のオブジェクトであって、当該所定の操作入力に予め対応付けられる所定のオブジェクトの少なくとも一部が仮想カメラの視野内に含まれている場合には、当該所定の操作入力に応じて当該所定のオブジェクトに関連付けられる場面に場面を遷移させる処理を実行し、当該所定の操作入力があったときに、当該所定のオブジェクトが当該仮想カメラの視野内に含まれていない場合には、当該処理を実行しない処理実行手段と、ゴーグル装置の表示部に表示させるための、仮想カメラに基づく画像を生成する生成手段として機能させる、情報処理プログラムである。
【0023】
第11の発明は、ゴーグル装置の慣性センサの出力に基づく動きデータと、操作部への操作入力データを取得するデータ取得手段と、動きデータに基づいて、仮想空間内の仮想カメラの姿勢を制御するカメラ制御手段と、所定の操作入力があったときに、仮想空間内の所定のオブジェクトであって、当該所定の操作入力に予め対応付けられる所定のオブジェクトの少なくとも一部が仮想カメラの視野内に含まれている場合には、当該所定の操作入力に応じて当該所定のオブジェクトに関連付けられる場面に場面を遷移させる処理を実行し、当該所定の操作入力があったときに、当該所定のオブジェクトが当該仮想カメラの視野内に含まれていない場合には、当該処理を実行しない処理実行手段と、ゴーグル装置の表示部に表示させるための、仮想カメラに基づく画像を生成する生成手段を備える、情報処理装置である。
【0024】
第12の発明は、(a)ゴーグル装置の慣性センサの出力に基づく動きデータと、操作部への操作入力データを取得するステップと、(b)動きデータに基づいて、仮想空間内の仮想カメラの姿勢を制御するステップと、(c)所定の操作入力があったときに、仮想空間内の所定のオブジェクトであって、当該所定の操作入力に予め対応付けられる所定のオブジェクトの少なくとも一部が仮想カメラの視野内に含まれている場合には、当該所定の操作入力に応じて当該所定のオブジェクトに関連付けられる場面に場面を遷移させる処理を実行し、当該所定の操作入力があったときに、当該所定のオブジェクトが当該仮想カメラの視野内に含まれていない場合には、当該処理を実行しないステップと、(d)ゴーグル装置の表示部に表示させるための、仮想カメラに基づく画像を生成するステップを含む、情報処理方法である。
【0025】
第10-第12の発明においても、第1の発明と同様に、ユーザの意図しない処理が実行されるのを防止することができる。
【発明の効果】
【0026】
この発明によれば、ユーザの意図しない処理が実行されるのを防止することができる。
【0027】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0028】
【
図1】
図1はこの実施例の本体装置に左コントローラおよび右コントローラを装着した状態の限定しない一例を示す図である。
【
図2】
図2は本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の限定しない一例を示す図である。
【
図3】
図3は
図1および
図2に示した本体装置の限定しない一例を示す六面図である。
【
図4】
図4は
図1および
図2に示した左コントローラの限定しない一例を示す六面図である。
【
図5】
図5は
図1および
図2に示した右コントローラの限定しない一例を示す六面図である。
【
図6】
図6は
図1および
図2に示した本体装置の内部構成の限定しない一例を示すブロック図である。
【
図7】
図7は
図1および
図2に示した本体装置と左コントローラおよび右コントローラとの内部構成の限定しない一例を示すブロック図である。
【
図8】
図8はゴーグル装置の外観の限定しない一例を示す斜視図である。
【
図9】
図9は本体装置をゴーグル装置に装着する状態の限定しない一例を示す正面図である。
【
図10】
図10はゲームシステムが装着されたゴーグル装置の状態の限定しない一例を示す正面図である。
【
図11】
図11はゴーグル装置に装着されたゲームシステムを把持した状態の限定しない一例を示す図である。
【
図12】
図12はゲームシステムが装着されたゴーグル装置を使用する様子の限定しない一例を示す図である。
【
図13】
図13は立体視表示モードおよび非立体視表示モードにおいてそれぞれ本体装置のディスプレイに表示される画像の限定しない一例を示す図である。
【
図14】
図14は本体装置のディスプレイに表示されるメニュー画像の限定しない一例を示す図である。
【
図15】
図15はメニュー画像を表示するために構築された仮想空間を上方から見た場合の限定しない一例を示す図である。
【
図16】
図16は本体装置のディスプレイに表示されるメニュー画像の限定しない他の例を示す図である。
【
図17】
図17は仮想カメラの撮影範囲である錐体を仮想カメラの位置の斜め後方から見た図である。
【
図18】
図18はアイコンに設定される簡易形状およびアイコンが選択されているかどうかを判断する方法の限定しない一例を示す図である。
【
図19】
図19は
図6に示す本体装置のDRAMのメモリマップの限定しない一例を示す図である。
【
図20】
図20は
図6に示す本体装置のプロセッサのゲーム全体処理の限定しない一例の一部を示すフロー図である。
【
図21】
図21は
図6に示す本体装置のプロセッサのゲーム全体処理の限定しない一例の他の一部であって、
図20に後続するフロー図である。
【
図22】
図22は
図6に示す本体装置のプロセッサのゲーム全体処理のその他の一部であって、
図20に後続するフロー図である。
【発明を実施するための形態】
【0029】
以下、この実施例の限定しない一例に係るゲームシステムについて説明する。この実施例におけるゲームシステム1の一例は、本体装置(情報処理装置;この実施例ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、この実施例のゲームシステム1のハードウェア構成について説明し、その後に、この実施例のゲームシステム1の制御について説明する。
【0030】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0031】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0032】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。この実施例において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0033】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0034】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。この実施例においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0035】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。この実施例においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0036】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、
図6に示すスピーカ88)を備えている。
図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0037】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0038】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0039】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。この実施例において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、この実施例においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0040】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。この実施例においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0041】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、この実施例においては、アナログスティック32を押下する入力が可能である。
【0042】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33~36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および-(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上にLボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面のうち、本体装置2に装着される際に装着される側の面に、SLボタン43およびSRボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0043】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0044】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。この実施例においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0045】
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。この実施例においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53~56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上にRボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、SLボタン65およびSRボタン66を備える。
【0046】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0047】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0048】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0049】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0050】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0051】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0052】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。この実施例においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0053】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、この実施例においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0054】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信(または、取得)する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信(または、取得)する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、この実施例においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、表示画像データや音声データ)を据置型モニタ等に出力することができる。
【0055】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0056】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0057】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0058】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0059】
また、本体装置2は、加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、
図1に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
【0060】
また、本体装置2は、角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、
図1に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
【0061】
加速度センサ89および角速度センサ90は、プロセッサ81に接続され、加速度センサ89および角速度センサ90の検出結果は、プロセッサ81へ出力される。プロセッサ81は、上記の加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。
【0062】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0063】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0064】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0065】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。
図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。この実施例においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0066】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0067】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0068】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0069】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判断することができる。
【0070】
左コントローラ3は、電力供給部108を備える。この実施例において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0071】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0072】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0073】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0074】
次に、
図8-
図12を参照して、ゲームシステム1を装着可能なゴーグル装置150およびゲームシステム1を装着したゴーグル装置150について説明する。
図8は、ゴーグル装置150の外観の限定しない一例を示す斜視図である。
図9は、本体装置2をゴーグル装置150に装着する状態の限定しない一例を示す正面図である。
図10は、ゲームシステム1が装着されたゴーグル装置150の状態の限定しない一例を示す正面図である。
図11は、ゴーグル装置150に装着されたゲームシステム1を把持した状態の限定しない一例を示す図である。
図12は、ゲームシステム1が装着されたゴーグル装置150を使用する様子の限定しない一例を示す図である。
【0075】
図8-
図10に示すように、ゴーグル装置150は、本体151、レンズ枠部材152、レンズ153、および板状部材154を有している。ただし、ゴーグル装置150は、ユーザの左右の目を覆うように当該ユーザの顔にフィットして着用され、外光の少なくとも一部を遮る機能および一対のレンズによって当該ユーザにおける立体視をサポートする機能を有するものであれば、後述する構成に限られない。例えば、上記ゴーグル装置150は、ユーザが把持することによって当該ユーザの顔にフィットされるタイプ(手持ち型ゴーグル)、ユーザの頭部に固定されることによって当該ユーザの顔にフィットされるタイプ、載置状態の装置をユーザが覗き込むタイプなど、様々な状態で用いられるものであってもよい。また、上記ゴーグル装置150は、ゲームシステム1(または、本体装置2)が取り付けられた状態でユーザの頭部に着用されることによって、いわゆるヘッドマウントディスプレイとして機能するものであってもよく、ゴーグル型の他にヘルメット型の形状を有するものであってもよい。以下のゴーグル装置150の説明では、ユーザが把持して当該ユーザの顔にフィットするように着用するゴーグル型タイプの手持ち型ゴーグル装置を用いる。
【0076】
本体151は、本体装置2を着脱自在に固定する装着部を有している。
図9および
図11に示すように、本体装置2は、本体151の装着部の空隙内にスライド挿入させることによって、ゴーグル装置150に取り付けられる。また、本体装置2は、ゴーグル装置150に取り付けられた状態から上記装着部の左または右にスライドさせることによって、ゴーグル装置150から取り外すことができる。このように、ゴーグル装置150は、本体装置2を着脱可能に装着することができる。
【0077】
なお、ゲームシステム1を、ゴーグル装置150に装着したり、ゴーグル装置150から取り外したりする場合には、左コントローラ3または右コントローラ4が本体装置2から取り外される。ただし、
図9に示すように、左コントローラ3および右コントローラ4の両方が本体装置2から取り外されてもよい。
【0078】
レンズ枠部材152は、本体151の前面部に形成された上記開口部側に固設される。レンズ枠部材152は、本体151に装着された本体装置2のディスプレイ12に表示される表示画像(左目用画像IMLおよび右目用画像IMR)に対する視界を妨げないように開口した、一対のレンズ枠を有している。また、レンズ枠部材152の上下左右に形成される外縁には、本体装置2に接合されるための接合面が形成されるとともに、当該下方に形成される外縁の中央部にゴーグル装置150を着用するユーザの鼻と接触するためのV字状の凹部が形成される。
【0079】
画像表示システムを構成する第1レンズ、および、第2レンズの一例であるレンズ153は、一対の左目用レンズ153Lおよび右目用レンズ153Rによって構成され、例えば一対のフレネルレンズである。左目用レンズ153Lおよび右目用レンズ153Rは、それぞれレンズ枠部材152のレンズ枠に嵌め込まれている。
【0080】
なお、左目用レンズ153Lおよび右目用レンズ153Rは、典型的には円形または楕円形の拡大レンズであればよく、画像を歪ませてユーザに視認させるレンズであればよい。例えば、左目用レンズ153Lが円形または楕円形に歪んで表示されている左目用画像IML(後述)を当該画像の歪みとは逆方向に歪ませて視認させ、右目用レンズ153Rが円形または楕円形に歪んで表示されている右目用画像IMR(後述)を当該画像の歪みとは逆方向に歪ませて視認させることによって、画像を立体視するものであってもよい。また、左目用レンズ153Lおよび右目用レンズ153Rは、一体化形成された構成であってもよい。
【0081】
図10に示すように、板状部材154は、本体装置2が本体151の装着部に装着されたされた場合に、レンズ枠部材152とディスプレイ12との間となる本体151の内部に固設される。例えば、板状部材154は、その一部がレンズ枠部材152におけるV字状の凹部に沿う形状で、当該凹部と装着された本体装置2のディスプレイ12との間を接続する壁のように配置される。この凹部は、左目用レンズ153Lおよび右目用レンズ153Rの中間点の下部となる位置に形成され、ディスプレイ12に表示された立体画像を見るユーザの鼻が当接する。
【0082】
ゲームシステム1がゴーグル装置150に装着された場合、左目用レンズ153Lを介して、ディスプレイ12の左側領域に表示されている左目用画像IMLのみを見ることが可能であり、右目用レンズ153Rを介して、ディスプレイ12の右側領域に表示されている右目用画像IMRのみを見ることが可能となる。したがって、ゴーグル装置150に装着されたゲームシステム1を使用するユーザは、左目で左目用レンズ153Lを見て、右目で右目用レンズ153Rを見ることによって、左目用画像IMLおよび右目用画像IMRを視認することが可能となるため、視差のある左目用画像IMLおよび右目用画像IMRをディスプレイ12に表示することによって、ユーザにとって立体感のある立体画像を表示することができる。
【0083】
図11および
図12に示すように、ユーザがゴーグル装置150に装着されたゲームシステム1を用いて、ディスプレイ12に表示された立体画像を見る場合、この実施例では、左コントローラ3を左手で把持し、右コントローラ4を右手で把持することができる。このため、ユーザは立体画像を見ながら左コントローラ3および右コントローラ4を用いた操作が可能である。
【0084】
また、ゲームシステム1は、本体装置2に設けられている加速度センサ89および/または角速度センサ90の検出結果に基づいて、ゲームシステム1(または、本体装置2)の動きおよび/または姿勢、すなわちゲームシステム1が装着されたゴーグル装置150の動きおよび/または姿勢に関する情報を算出することが可能である。したがって、ゲームシステム1は、ゲームシステム1が装着されたゴーグル装置150を覗くユーザ頭部の重力方向基準の姿勢を算出することができる。また、ゲームシステム1は、ゲームシステム1が装着されたゴーグル装置150を覗くユーザの頭部の姿勢または方向が変化した場合、当該変化した方向または角度を算出することが可能となる。したがって、ゲームシステム1がゴーグル装置150に装着された状態で左目用レンズ153Lおよび右目用レンズ153Rを介して、ディスプレイ12に表示された立体画像を見る場合、ゲームシステム1が装着されたゴーグル装置150の重力方向基準の姿勢に基づく操作、ゲームシステム1が装着されたゴーグル装置150の姿勢を変化させる操作が可能となるプレイスタイルが実現される。
【0085】
なお、本体装置2から左コントローラ3および右コントローラ4の少なくとも一方を取り外して操作してもよい。たとえば、右コントローラ4を用いて操作を行う場合、ユーザは、本体装置2が装着されたゴーグル装置150(または、左コントローラ3)を左手で把持しながらディスプレイ12に表示された立体画像を見るとともに、取り外されている右コントローラ4単体を右手で把持して操作を行う。この場合、本体装置2から取り外されている左コントローラ3および/または右コントローラ4に対して操作された操作情報は、本体装置2との間の無線通信によって本体装置2へ送信される。具体的には、左コントローラ3に対して操作された操作情報は、左コントローラ3の通信制御部101から無線送信され、本体装置2のコントローラ通信部83によって受信される。また、右コントローラ4に対して操作された操作情報は、右コントローラ4の通信制御部111から無線送信され、本体装置2のコントローラ通信部83によって受信される。
【0086】
また、本体装置2、左コントローラ3または右コントローラ4が振動子を備える場合には、ゲームシステム1は、ゲームシステム1が装着されたゴーグル装置150を覗くユーザが当該ゲームシステム1が装着された当該ゴーグル装置150を叩くような振動を与えた場合、当該振動を検出することが可能となる。したがって、ゲームシステム1がゴーグル装置150に装着された状態で左目用レンズ153Lおよび右目用レンズ153Rを介して、ディスプレイ12に表示された立体画像を見る場合、ゲームシステム1が装着されたゴーグル装置150に振動を与える操作が可能となるプレイスタイルも実現される。
【0087】
次に、
図9、
図10および
図13を参照して、本体装置2に表示される画像について説明する。
図13は、立体視表示モードおよび非立体視表示モードにおいてそれぞれ本体装置2のディスプレイ12に表示される画像の限定しない一例を示す図である。
【0088】
この実施例では、ゲームシステム1がゴーグル装置150に装着され、本体装置2のディスプレイ12に表示される画像を立体視する際に用いられる立体視表示モードと、ゲームシステム1がゴーグル装置150から取り外され、本体装置2のディスプレイ12に表示される画像を直接見ることによって非立体視する際に用いられる非立体視表示モードとの何れかに設定される。本体装置2は、設定されているモードに応じた画像を、ディスプレイ12に表示させる。ここで、立体視するための立体視画像は、互いに視差のある右目用画像と左目用画像とをユーザが右目および左目で見ることによって、当該ユーザが立体視するものでもよい。この場合、非立体視される非立体視画像は、上記2画像表示(立体視表示)以外の画像であり、典型的には単一の画像をユーザが右目および左目で見るものでもよい。
【0089】
立体視表示モードにおいて、ゲームシステム1は、表示対象となっているコンテンツ画像(例えば、仮想空間や現実空間の一部を表示するための画像)を、互いに視差のある左目用画像IMLおよび右目用画像IMRによって構成し、左目用画像IMLをディスプレイ12の左側領域に表示し、右目用画像IMRをディスプレイ12の右側領域に表示する。具体的には、
図9に示すように、立体視表示モードにおいて、左目用画像IMLは、本体装置2がゴーグル装置150に装着された場合に、左目用レンズ153Lによって視認可能な略楕円形領域であり、ディスプレイ12の左側領域の一部となる第1領域に表示される。また、立体視表示モードにおいて、右目用画像IMRは、本体装置2がゴーグル装置150に装着された場合に、右目用レンズ153Rによって視認可能な略楕円形領域であり、ディスプレイ12の右側領域の一部となる第2領域に表示される。
【0090】
図13に示すように、非立体視表示モードにおいて、ゲームシステム1は、表示対象となっている上記コンテンツ画像を、非立体視画像である単一画像IMSによって構成し、一例としてディスプレイ12の表示領域全体に単一画像IMSを表示する。
【0091】
一例として、仮想空間に配置された単一の仮想カメラから見た当該仮想空間の画像が、単一画像IMSとして生成される。上記単一の仮想カメラ220は、実空間における重力方向を基準とした本体装置2(または、ゲームシステム1)の姿勢と対応するように仮想空間内に配置される(
図15参照)。そして、上記単一の仮想カメラ220は、実空間における本体装置2の姿勢変化と対応するように仮想空間内で姿勢を変化させ、本体装置2の姿勢に応じて仮想カメラ220の視線方向を制御する。これによって、ゴーグル装置150から取り外されたゲームシステム1を把持するユーザは、周囲を見渡すようにゲームシステム1の姿勢を変化させる操作によってディスプレイ12に表示される仮想空間の表示範囲を変更して仮想空間を見渡すことができるので、仮想カメラの場所に実際にいるかのような体験をすることができる。
【0092】
以下、この明細書においては、立体視表示モードが設定され、ゲームシステム1が装着されたゴーグル装置150が用いられる場合について説明することにする。
【0093】
この実施例のゲームアプリケーションでは、異なる種類の複数(ここでは、4つ)の個別ゲームが用意されており、ユーザはメニューで事前にプレイする個別ゲームを選択する。
図14は、メニュー画像の限定しない一例を示す。このメニュー画像は、ゲームアプリケーションを開始した当初にディスプレイ12に表示される。
【0094】
メニュー画像は、複数のアイコン(この実施例では、4つのアイコン202、204、206および208)を含む。また、メニュー画像は、複数の背景オブジェクト210を含む。アイコン202-208は、ユーザよる操作対象のオブジェクトであり、それぞれ、仮想空間内の所定の位置に配置される。また、アイコン202-208のそれぞれは、四角形の板状のオブジェクトであり、アイコン202-208のすべてが同時に仮想カメラ220の視野内に収まる大きさに設定される(
図17参照)。アイコン202は、第1ゲームのゲーム処理を実行するために設けられる。アイコン204は、第2ゲームのゲーム処理を実行するために設けられる。アイコン206は、第3ゲームのゲーム処理を実行するために設けられる。アイコン208は、第4ゲームのゲーム処理を実行するために設けられる。つまり、アイコン202-208の各々には、所定の処理が関連づけられている。
【0095】
複数の背景オブジェクト210は、この実施例では、島オブジェクト、海オブジェクト、船オブジェクト、海オブジェクト、空オブジェクトおよび雲オブジェクトである。
【0096】
図14に示すメニュー画像では、アイコン204が視線によって特定(または、選択)された状態であり、このアイコン204をオン(または、タッチ)するための操作情報として指示画像212がアイコン204の前面に重ねて表示される。つまり、仮想カメラ220の視線によって特定されたアイコン(ここでは、アイコン204)が操作可能状態にされ、そのことを示すための指示画像212が当該アイコンに重ねて表示される。ただし、指示画像212は、特定されたアイコンに関連する個別のゲームの処理が実行可能であることも示している。この実施例では、個別ゲームの開始または実行を指示するための所定のボタン(ここでは、Aボタン53)の図柄を用いた指示画像212が表示される。したがって、他のアイコン202、206または208が視線によって特定された状態では、指示画像212は、アイコン202、206または208の前面に重ねて表示される。
【0097】
ただし、アイコン202-208は、操作可能でない場合には、指示画像212が表示されることは無い。
【0098】
また、この実施例では、仮想カメラ220の視線によって特定されているアイコン202、204、206または208を操作可能状態とし、指示画像212を操作可能状態のアイコン202、204、206または208に重ねて表示するようにしてあるが、これに限定される必要はない。仮想カメラ220の視線によって特定されている時間が所定時間(たとえば、2~3秒)継続した場合に、アイコン202、204、206または208を操作可能状態とするようにしてもよい。これは、プレイヤが仮想空間内を見渡している場合において、視線によって一時的にアイコン202、204、206、208が特定されたときに、ユーザが誤ってAボタン53を押下してしまい、意図せずに、個別ゲームが開始されてしまうのを防止するためである。
【0099】
図14に示すメニュー画像では、後述するように、アイコン204が仮想カメラ220(
図15参照)の視線で特定されており、アイコン204が他のアイコン202、206、208よりも大きく表示される。この実施例では、視線が特定するアイコンとの距離に応じて、アイコン202-208の大きさが段階的に変化される。
図14に示す例では、視線で特定されているアイコン204の大きさはデフォルトの大きさよりも1段階大きくされており、アイコン208の大きさはデフォルトの大きさより1段階小さくされており、アイコン204および206の大きさはデフォルトの大きさである。たとえば、アイコン202-208の大きさがデフォルトの大きさよりも1段階大きくされる場合には、デフォルトの大きさに第1の所定倍数(たとえば、1.2)を掛けた大きさに拡大される。また、アイコン202-208の大きさがデフォルトの大きさよりも1段階小さくされる場合には、デフォルトの大きさに第2の所定倍数(たとえば、0.8)を掛けた大きさに縮小される。
【0100】
図示は省略するが、アイコン202が視線で特定されている場合には、アイコン204の大きさはデフォルトの大きさであり、アイコン206の大きさはデフォルトの大きさより1段階小さくされ、アイコン208の大きさいはデフォルトの大きさより2段階小さくされる。
【0101】
また、この実施例では、アイコン202-208は大きさに応じて仮想カメラ220との距離が調整される。アイコン202、204、206または208の大きさが1段階大きくされた場合には、アイコン202、204、206または208は、仮想カメラ220に対して、デフォルトの位置から所定距離近づく位置に移動される。また、アイコン202、204、206または208の大きさが1段階小さくされた場合には、アイコン202、204、206または208は、仮想カメラ220に対して、デフォルトの位置から所定距離離れた位置に移動され、2段階小さくされた場合には、仮想カメラ220に対して、デフォルトの位置から所定距離の2倍離れた位置に移動される。ただし、デフォルトの位置は、アイコン202-208の各々が仮想空間に配置されたときの所定の位置である。
【0102】
このように、アイコン202、204、206または208の大きさおよび位置が変更されることにより、特定されているアイコン202、204、206または208が視認可能に表現される。
【0103】
ただし、視線によって特定されているアイコン202、204、206または208の大きさのみを大きくすることにより、特定されていることを表現してもよい。
【0104】
図15は、アイコン202-208を含む仮想空間を上方から俯瞰的に見た図である。仮想空間は中空の球の形状に形成される。球の中心の位置に、仮想カメラ220が配置される。つまり、仮想カメラ220は、仮想空間内の所定の位置に配置される。
図15からも明らかなように、仮想カメラ220は、アイコン202-208とは異なる位置に配置される。また、仮想カメラ220の基準方向は予め決定されている。
図15に示すように、基準方向は、仮想カメラ220の視線が板状のアイコン204に対して垂直であり、アイコン204の中心を通る向きに設定される。これは一例であり、限定される必要はない。
【0105】
上述したように、ゲームシステム1が装着されたゴーグル装置150を覗くユーザの頭部の姿勢または方向が変化した場合、当該変化した姿勢または方向を算出することが可能であり、算出した姿勢または方向に基づいて仮想カメラ220の姿勢または方向が制御される。つまり、ユーザの頭部の動きに基づいて仮想カメラ220の動きが変化される。ユーザは、首を動かすことにより、頭部を動かしても良いし、体全体または上体の向きを変化させることにより、頭部を動かしても良い。
【0106】
ただし、仮想カメラ220のローカル座標では、仮想カメラ220が基準方向を向いている場合の視線と重なる軸がx軸に設定され、水平方向においてx軸に垂直な軸がy軸に設定され、x軸およびy軸の両方に垂直な軸がz軸に設定される。そして、仮想カメラ220の姿勢または向きは、y軸回りの角度(ピッチ角)、x軸回りの角度(ロール角)およびz軸回りの角度(ヨー角)で表される。
【0107】
したがって、ユーザの頭部の動きに基づいて、仮想カメラ220から見た仮想空間内の様々なメニュー画像がディスプレイ12に表示され、ユーザはアイコン202-208を含まないメニュー画像を見ることもできる。この実施例では、背景オブジェクト210は、島オブジェクト、海オブジェクト、船オブジェクト、海オブジェクト、空オブジェクトおよび雲オブジェクトを含み、メニュー以外の仮想の海の景色を見ることができる。つまり、単にアイコン202-208を表示するだけでなく、アイコン202-208以外のオブジェクトを見せる豪華なメニューが提供される。
【0108】
このように、この実施例のメニュー画像では、アイコン202-208以外のオブジェクトが表示されることがある。
図16はメニュー画像の限定しない他の例を示す。
図16に示すメニュー画像では、アイコン202-208を含んでいない。たとえば、
図15で示した状態において、ユーザが頭部を90度左向きに回転させると、仮想カメラ220が左に90度回転され、このとき、
図16に示すメニュー画像がディスプレイ12に表示される。
図16に示すメニュー画像では、背景オブジェクト210として、複数の島オブジェクト、海オブジェクト、空オブジェクトおよび複数の雲オブジェクトを含む。
【0109】
なお、仮想カメラ220から遠く離れている背景は、仮想空間の大きさおよび形状を規定する球の内面に貼りつけられたテクスチャである。
【0110】
このように、ユーザは頭部を動かすことにより、仮想空間内の360度の方向(この実施例では、水平方向および垂直方向)のメニュー画像を見ることができる。このため、メニュー画像を表示するための仮想空間において、ユーザはアイコン202-208以外の多様なオブジェクトを視認できる。
【0111】
また、この実施例では、アナログスティック52を押下することにより、仮想カメラ220の向きがリセットされる。具体的には、仮想カメラ220が、視線の向きを示すベクトルの水平方向の成分が基準方向と一致するように、水平方向に回転される。つまり、仮想カメラ220のヨー角がリセットされる(たとえば、0度にされる)。これは、ユーザがアイコン202-208を見失ってしまった場合に、アイコン202-208を含むメニュー画像に簡単に戻るためである。ただし、単に、アイコン202-208を含むメニュー画面に簡単に戻りたい場合もあると考えられる。
【0112】
なお、仮想カメラ220の向きをリセットする場合に、ヨー角のみをリセットするのは、ピッチ角およびロール角もリセットしてしまうと、実空間における本体装置2の姿勢変化と対応するように、仮想空間内で仮想カメラ220の姿勢を変化させることができなくなってしまうからである。ただし、ヨー角のみならず、ピッチ角およびロール角もリセットすることもできる。
【0113】
また、この実施例では、仮想カメラ220の向きをリセットするようにしたが、視線の向きを示すベクトルの水平方向の成分が基準方向と一致するように、仮想空間内の背景オブジェクト210を移動させるようにしてもよい。この場合、背景オブジェクト210の移動に伴って、仮想カメラ220から遠く離れている背景のテクスチャを貼り付ける位置も変更される。
【0114】
図16に示すメニュー画像のように、アイコン202-208がディスプレイ12に表示されていないときに、ユーザがアイコン202、204、206または208をオン(またはクリック)する操作入力に基づく処理を実行してしまうと、意図せずに、特定されたアイコン202、204、206または208に応じた処理(この実施例では、個別ゲームの処理)が開始されてしまう。
【0115】
このような不都合を回避するために、この実施例では、アイコン202、204、206および208がメニュー画像に含まれている場合に、当該アイコン202、204、206または208をオンする操作入力に基づく処理を実行するようにしてある。
【0116】
ただし、アイコン202、204、206および208のすべてが同時にメニュー画像に含まれている必要はない。
【0117】
したがって、この実施例では、仮想カメラ220の視野内に含まれるアイコン202-208を操作可能であると判断する。
図17は仮想カメラ220の撮影範囲である錐体250を仮想カメラ220の位置(視点)の斜め後方から見た図である。錐体250のうち、ニアクリップ面252とファークリップ面254とで挟まれる四角錐台の部分が視体積250aである。ただし、ピラミッド状の錐体(四角錐)250は、仮想カメラ220の位置(視点)とファークリップ面254で決定される。また、錐体の斜辺の傾き(仮想カメラ220の画角)は、仮想カメラ220とファークリップ面254の距離およびファークリップ面254の大きさによって決定される。
【0118】
なお、
図17では、アイコン202-208以外の各種の背景オブジェクトを省略してある。また、
図17では、後述する簡易形状がアイコン202-208の各々に設定された状態を示してある。
【0119】
アイコン202-208が仮想カメラ220の視野内に含まれるかどうかは、アイコン202-208が視体積250a内に位置する(または、含まれる)かどうかで判断される。
【0120】
また、この実施例では、ユーザの頭部の向きで、すなわち、仮想カメラ220の視線で、アイコン202、204、206または208が特定または選択される。つまり、アイコン202、204、206または208がユーザによって特定または選択される。
【0121】
この実施例では、簡易な形状(以下、「簡易形状」という)を、アイコン202-208の各々に設定することにより、アイコン202-208の各々が仮想カメラ220の視野内に含まれるかどうかが判断されるとともに、アイコン202、204、206または208が特定されているかどうかが判断される。
【0122】
図18に示すように、一例として、簡易形状は、球であり、アイコン202-208の各々に設定される。したがって、3次元の仮想空間において、視線(3次元の線分)がアイコン202-208の各々に設定された球に触れるかどうかが算出され、視線が球に触れる場合に、この球が設定されているアイコン202、204、206または208が視線で特定されていることが判断される。
【0123】
また、各球の中心は、アイコン202-208の中心(または、重心)に一致する(または、重なる)ように設定される。各球の半径Rは、隣接する1つまたは2つのアイコン202-208に設定される簡易形状同士が接触または重なることが無い長さに設定される。
【0124】
この実施例では、
図15に示したように、仮想空間内において、アイコン202-208は、間隔を隔てて配置されるため、球の半径Rは、隣接するアイコン202とアイコン204、アイコン204とアイコン206、およびアイコン206とアイコン208の各々の中心間の距離Dを半分にした値(D/2)よりも小さい値に設定される。また、球の半径Rは、各アイコン202-208の縦または横の辺の長さに設定される。各アイコン202-208は同じ大きさの四角形である。したがって、半径Rは、各アイコン202-208の縦または横の辺の長さL1の半分の長さ(L1/2)よりも長い値に設定される。つまり、半径RはL1/2からD/2までの間の数値である。
【0125】
ただし、これは一例であり、球の半径Rは、各アイコン202-208の対角線の長さL2の半分の長さ(L2/2)に設定されてもよい。つまり、各アイコン202-208が内接する球が設定されてもよい。隣接するアイコン202とアイコン204、アイコン204とアイコン206、およびアイコン206とアイコン208の各々において、球が重なる場合には、球が重なる部分については先に視線が触れた方の球に設定されているアイコン202、204、206または208が特定されていると判断するものとする。ただし、後に視線が触れた方の球に設定されるアイコン202、204、206または208が特定されていると判断されてもよい。
【0126】
このように、仮想カメラ220の視線によってアイコン202、204、206または208が特定される。また、上述したように、アイコン202-208は、一度にすべて仮想カメラ220の視野内に含まれる大きさに設定されているため、視線によって特定されるアイコン202、204、206または208は視野内(または、視体積内)に必ず含まれることになる。したがって、この実施例では、視線がアイコン202、204、206または208に設定された球に触れた場合には、少なくとも、当該球が設定されたアイコン202、204、206または208は視野内に含まれることが判断されるとともに、仮想カメラ220の視線によって特定されている、すなわち、ユーザによって特定または選択されていることが判断される。
【0127】
図19は
図6に示したDRAM85のメモリマップ850の限定しない一例を示す図である。
図19に示すように、DRAM85は、プログラム記憶領域852およびデータ記憶領域854を含む。プログラム記憶領域852には、情報処理プログラムの一例であるゲームアプリケーションのプログラム(つまり、ゲームプログラム)が記憶される。
図16に示すように、ゲームプログラムは、メイン処理プログラム852a、画像生成プログラム852b、操作検出プログラム852c、慣性センサ検出プログラム852d、仮想カメラ制御プログラム852e、オブジェクト制御プログラム852f、判定プログラム852gおよび画像表示プログラム852hなどを含む。
【0128】
ただし、生成されたメニュー画像およびゲーム画像などの画像を表示する機能は本体装置2が備える機能である。したがって、画像表示プログラム852hは、ゲームプログラムに含まれない。
【0129】
詳細な説明は省略するが、各プログラム852a-852gは、本体装置2に電源が投入された後の適宜のタイミングで、フラッシュメモリ84および/またはスロット23に装着された記憶媒体からその一部または全部が読み込まれてDRAM85に記憶される。ただし、各プログラム852a-852gの一部または全部は、本体装置2と通信可能な他のコンピュータから取得するようにしてもよい。また、画像表示プログラム852hは、本体装置2に電源が投入された後の適宜のタイミングで、フラッシュメモリ84から読み込まれてDRAM85に記憶される。
【0130】
メイン処理プログラム852aは、この実施例の仮想のゲームの全体的なゲーム処理を実行するためのプログラムである。画像生成プログラム852bは、画像生成データ854cを用いて、メニュー画像およびゲーム画像などの各種の画像に対応する表示画像データを生成するためのプログラムである。
【0131】
操作検出プログラム852cは、左コントローラ3または/および右コントローラ4からの操作データ854aを取得するためのプログラムである。つまり、プレイヤの操作入力に応じた操作データ854aが取得される。
【0132】
慣性センサ検出プログラム852dは、慣性センサ、すなわち、加速度センサ89および角速度センサ90の検出結果についてのデータ(後述する慣性データ854b)を取得するためのプログラムである。
【0133】
仮想カメラ制御プログラム852eは、慣性センサ検出プログラム852dに従って取得された慣性データ854bに基づいて、仮想カメラ220の姿勢または方向を制御するためのプログラムである。
【0134】
オブジェクト制御プログラム852fは、プレイヤの操作入力に基づいて、プレイヤオブジェクトの動作を制御したり、プレイヤの操作入力に関わらず、ノンプレイヤオブジェクトおよび一部の背景オブジェクト210の動作を制御したりするためのプログラムである。ただし、一部の背景オブジェクト210は、船オブジェクトのような移動する(または、動く)オブジェクトである。
【0135】
判定プログラム852gは、メニュー画像がディスプレイ12に表示される場合に、視線がアイコン202-208の各々に設定された簡易形状に触れているかどうかを判断することにより、操作可能なアイコン202、204、206または208が有るかどうかを判定するためのプログラムである。
【0136】
画像表示プログラム852hは、画像生成プログラム852bに従って生成した表示画像データを表示装置に出力するためのプログラムである。したがって、表示画像データに対応する画像(つまり、メニュー画像およびゲーム画像など)がディスプレイ12などの表示装置に表示される。
【0137】
なお、プログラム記憶領域852には、BGM等の音を出力するための音出力プログラム、他の機器と通信するための通信プログラム、データをフラッシュメモリ84などの不揮発性の記憶媒体に記憶するためのバックアッププログラムなども記憶される。
【0138】
また、データ記憶領域854には、操作データ854a、慣性データ854b、画像生成データ854c、姿勢データ854d、視線データ854e、簡易形状データ854fおよび操作可能判定データ854gなどが記憶される。
【0139】
操作データ854aは、左コントローラ3または/および右コントローラ4から受信される操作データである。この実施例においては、本体装置2が左コントローラ3および右コントローラ4の両方から操作データを受信する場合には、本体装置2は、左コントローラ3および右コントローラ4の各々に分類して操作データ854aを記憶する。
【0140】
慣性データ854bは、加速度センサ89および角速度センサ90の検出結果すなわち加速度および角速度についてのデータである。
【0141】
画像生成データ854cは、ポリゴンデータおよびテクスチャデータなど、表示画像データを生成するために必要なデータである。
【0142】
姿勢データ854dは、仮想カメラ220の姿勢または向きについてのデータである。つまり、姿勢データ854dは、仮想カメラ220のピッチ角、ヨー角およびロール角のデータである。
【0143】
視線データ854eは、仮想カメラ220の3次元位置から姿勢データ854dが示す向きに延びる直線についてのデータである。ただし、直線の長さは、所定の長さに決定される。たとえば、所定の長さは、仮想カメラ220の正面に配置されたアイコン202、204、206または208に届く長さに設定される。
【0144】
簡易形状データ854fは、アイコン202、204、206および208の各々に設定される簡易形状のデータであり、この実施例では、アイコン202、204、206および208の各々の中心の座標および簡易形状である球の半径Rについてのデータである。
【0145】
操作可能判定データ854gは、操作可能なアイコン202、204、206または208を識別するための識別情報のデータである。ただし、すべてのアイコン202-208が操作可能でない場合には、操作可能なアイコンが無いことを示すデータ(たとえば、nullデータ)が操作可能判定データ854gとして記憶される。
【0146】
図示は省略するが、データ記憶領域854には、ゲームプログラムの実行に必要な、他のデータが記憶されたり、フラグおよびタイマ(またはカウンタ)が設けられたりする。
【0147】
図20は、本体装置2のプロセッサ81(またはコンピュータ)のゲームプログラムの処理(ゲーム全体処理)の限定しない一例を示すフロー図である。
【0148】
ただし、
図20-
図22に示すフロー図の各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、この実施例では、基本的には、
図20-
図22に示すフロー図の各ステップの処理をプロセッサ81が実行するものとして説明するが、プロセッサ81以外のプロセッサや専用回路が一部のステップを実行するようにしてもよい。
【0149】
本体装置2の電源が投入されると、ゲーム全体処理の実行に先だって、プロセッサ81は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってDRAM85等の各ユニットが初期化される。本体装置2は、ユーザによって、この実施例のゲームプログラムの実行が指示されると、ゲーム全体処理を開始する。
【0150】
図20に示すように、プロセッサ81は、ゲーム全体処理を開始すると、ステップS1で、初期処理を実行する。初期処理では、たとえば、プロセッサ81は、個別ゲームの選択および実行を行うメニュー画像を生成および表示するための仮想空間を構築し、この仮想空間に登場する各背景オブジェクト210を初期位置に配置する。また、プロセッサ81は、仮想カメラ220の位置を初期位置に設定する。さらに、プロセッサ81は、仮想カメラ220の視線の向きを示すベクトルの水平成分を基準方向に設定する。つまり、仮想カメラ220のヨー角の基準値が基準方向に設定される。また、プロセッサ81は、加速度センサ89および角速度センサ90の出力に基づいて、実空間の本体装置2の姿勢に対応するように、仮想カメラ220のピッチ角およびロール角を設定する。
【0151】
なお、詳細な説明は省略するが、ゲーム全体処理の開始に先立って、左コントローラ3および右コントローラ4が本体装置2に装着されているかどうかが判断され、左コントローラ3および右コントローラ4が本体装置2から分離されている場合には、本体装置2と、左コントローラ3および右コントローラ4との間でペアリング処理が実行される。
【0152】
続くステップS3では、メニュー画像を生成する。ゲーム全体処理を開始した当初では、すべてのアイコン202-208を含むメニュー画像が生成される。ただし、この実施例では、立体視表示モードが設定されていると仮定してあるため、メニュー画像について、左目用画像IMLおよび右目用画像IMRが生成される。
【0153】
次のステップS5では、メニュー画像を表示する。このステップS5では、左目用画像IMLがディスプレイ12の第1領域に表示され、右目用画像IMRがディスプレイ12の第2領域に表示される。また、ゲーム全体処理を開始した当初では、
図16に示したようなメニュー画像がディスプレイ12に表示される。
【0154】
続いて、プロセッサ81は、ステップS7で、コントローラ(3,4)から送信されてくる操作データを取得する。ただし、コントローラ(3,4)から操作データが送信されない場合には、プロセッサ81は、操作データを取得しない。
【0155】
また、プロセッサ81は、ステップS9で、慣性センサから送信されてくる慣性データ854bを取得する。つまり、プロセッサ81は、加速度センサ89からの加速度データおよび角速度センサ90からの角速度データを取得する。
【0156】
次のステップS11では、プロセッサ81は、操作が有るかどうかを判断する。ここでは、プロセッサ81は、ステップS7で、操作データを取得したかどうかを判断する。ステップS11で“NO”であれば、つまり、操作が無い場合には、
図19に示すステップS21に進む。
【0157】
一方、ステップS11で“YES”であれば、つまり、操作が有る場合には、ステップS13で、Aボタン53の押下であるかどうかを判断する。つまり、プロセッサ81は、取得した操作データがAボタン53の押下を示すかどうかを判断する。ステップS13で“NO”であれば、つまり、Aボタン53の押下でなければ、
図22に示すステップS33に進む。
【0158】
一方、ステップS13で“YES”であれば、つまり、Aボタン53の押下であれば、ステップS15で、操作可能なアイコンが有るかどうかを判断する。この実施例では、プロセッサ81は、操作可能判定データ854gを参照して、操作可能なアイコン202、204、206または208が有るかどうかを判断する。
【0159】
ステップS15で“NO”であれば、つまり、操作可能なアイコンが無い場合には、ステップS3に戻る。一方、ステップS15で“YES”であれば、つまり、操作可能なアイコンが有る場合には、ステップS17で、操作可能なアイコンに対応する個別ゲームを開始する。つまり、個別のゲーム処理が実行される。具体的な処理についての図示および説明は省略するが、個別ゲームの処理は、ゲーム全体処理とは別のフローで実行される。個別ゲームが開始されると、個別ゲームのシーンについてのゲーム画像がメニュー画像に代えてディスプレイ12に表示される。つまり、プロセッサ81は、メニューの場面から操作されたアイコン202、204、206または208に関連する個別ゲームをプレイする場面に遷移される処理を実行する。
【0160】
そして、ステップS19で、プロセッサ81は、個別ゲームの終了かどうかを判断する。ステップS19で“NO”であれば、つまり、個別ゲームの終了でなければ、ステップS19に戻る。一方、ステップS19で“YES”であれば、つまり、個別ゲームの終了であれば、ステップS3に戻る。
【0161】
なお、ステップS19の処理を実行することに代えて、個別ゲームの終了まで、ゲーム全体処理を一時停止するようにしてもよい。この場合、プロセッサ81は、個別ゲームの終了に応じて、ゲーム全体処理を再開する。
【0162】
図21に示すように、ステップS21では、プロセッサ81は、ステップS9で取得した慣性データ854bに基づいて、ゲームシステム1の姿勢または向きが変化したかどうかを判断する。ステップS21で“NO”であれば、つまり、ゲームシステム1の姿勢または向きが変化していなければ、ステップS31に進む。一方、ステップS21で“YES”であれば、つまり、ゲームシステム1の姿勢または向きが変化していれば、ステップS23で、仮想カメラ220の姿勢または向きを算出する。つまり、プロセッサ81は、ゲームシステム1の姿勢または向きの変化に基づいて、仮想カメラ220の姿勢または向きを変化させる。
【0163】
次のステップS25では、接触判定処理を実行する。接触判定処理では、プロセッサ81は、仮想カメラ220の視線がアイコン202-208の各々に設定された簡易形状に触れているかどうかを計算する。したがって、仮想カメラ220の視線および簡易形状に対応するオブジェクトが実際に描画されることはない。
【0164】
続いて、ステップS27で、仮想カメラ220の視線が簡易形状に触れているかどうかを判断する。ステップS27で“NO”であれば、つまり、仮想カメラ220の視線が簡易形状に触れていなければ、ステップS31に進む。ただし、接触判定処理において、仮想カメラ220の視線が簡易形状に触れていないことが判断された場合には、操作可能判定データ854gとしてnullデータが記憶される。
【0165】
一方、ステップS27で“YES”であれば、つまり、仮想カメラ220の視線が簡易形状に触れていれば、ステップS29で、プロセッサ81は、仮想カメラ220の視線が触れている簡易形状が設定されたアイコン202、204、206または208を、操作可能なアイコンに設定して、ステップS31に進む。ステップS29では、操作可能なアイコン202、204、206または208を示すデータが操作可能判定データ854gとして記憶される。
【0166】
ステップS31では、ゲームアプリケーションを終了するかどうかを判断する。ステップS31の判断は、たとえば、プレイヤがゲームアプリケーションを終了することを指示したかどうかによって行われる。ステップS31で“NO”であれば、つまりゲームアプリケーションを終了しない場合には、
図20のステップS3に戻る。一方、ステップS31で“YES”であれば、つまりゲームアプリケーションを終了する場合には、ゲーム全体処理を終了する。
【0167】
また、上述したように、
図20のステップS13で“NO”であれば、
図22に示すステップS33で、右コントローラ4のアナログスティック52の押下であるかどうかを判断する。つまり、ステップS7で取得した操作データがアナログスティック52の押下を示すかどうかを判断する。
【0168】
ステップS33で“YES”であれば、つまり、アナログスティック52の押下であれば、ステップS35で、仮想カメラの水平方向の向きをリセットして、ステップS3に戻る。つまり、ステップS35では、プロセッサ81は、仮想カメラ220のピッチ角およびロール角をリセットしないで、ヨー角をリセットする。
【0169】
一方、ステップS33で“NO”であれば、つまり、アナログスティック52の押下でなければ、ステップS37で、その他の処理を実行して、ステップS3に戻る。たとえば、Bボタン54の押下に応じて、ステップS37では、非立体視表示モードを設定する。
【0170】
なお、
図20-
図22に示すゲーム全体処理では、ゲームシステム1の姿勢または向きが変化された場合に、接触判定処理を実行するようにしたが、これに限定される必要はない。他の実施例では、接触判定処理は、メニュー画像が表示されている間において、所定時間毎に(たとえば、毎フレーム)実行されてもよいし、Aボタン53が押下された場合に実行されてもよい。また、接触判定処理は、ゲームシステム1の姿勢または向きが変化された場合と、Aボタン53が押下された場合の両方で実行されてもよい。
【0171】
この実施例によれば、操作対象のオブジェクトに対する操作入力があったときに、この操作対象のオブジェクトが視野内に含まれていれば、この操作対象のオブジェクトに関連する処理を実行するので、ユーザが意図しない処理が実行されるのを防止することができる。
【0172】
なお、この実施例では、慣性センサの検出結果に基づくゴーグル装置の姿勢または向きによって、仮想カメラの姿勢または向きを制御するようにしたが、これに限定される必要はない。慣性センサの検出結果に基づいてゴーグル装置の位置も検出し、仮想カメラの位置も制御するようにしてもよい。かかる場合には、仮想カメラは、仮想空間において、姿勢または向きのみならず位置も変化される。また、リセットされた場合には、仮想カメラの水平方向の向きが基準方向に戻されるとともに、仮想カメラの位置が初期位置に戻される。
【0173】
また、この実施例では、操作対象のオブジェクトがアイコンである場合について説明したが、これに限定される必要はない。他の実施例では、操作対象のオブジェクトはユーザが任意の動作を実行させるキャラクタオブジェクトであってもよい。かかる場合には、キャラクタオブジェクトについての操作入力があったときに、このキャラクタオブジェクトが視野内に含まれていれば、このキャラクタオブジェクトに操作入力に応じた動作を実行させる。ただし、キャラクタオブジェクトが視野外である場合には、ユーザの操作入力があっても、この操作入力に応じた動作をキャラクタオブジェクトに実行させない。
【0174】
さらに、この実施例では、操作対象のオブジェクトを仮想カメラの視線で特定するようにしたが、これに限定される必要はない。操作対象のオブジェクトが仮想カメラの視野内に含まれる状態において、コントローラから取得した操作データに基づいて操作対象のオブジェクトを特定するようにしてもよい。この場合、たとえば、複数の操作対象のオブジェクトが視野内に含まれている場合に、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36を操作して、1つの操作対象のオブジェクトを特定および変更することができる。または、仮想カメラの視野内に含まれる1つまたは複数の操作対象のオブジェクトの各々に、異なる所定のボタンを割り当てることにより、所定のボタンの操作によって、1つの操作対象のオブジェクトの特定および実行を一度に行うようにしてもよい。この場合、所定のボタンが操作対象のオブジェクトに割り当てられると、
図14に示したように、所定のボタンの図柄を用いた指示画像が操作対象のオブジェクトの前面に重ねて表示される。
【0175】
さらにまた、この実施例では、操作対象のオブジェクトに設定された簡易形状が視野内に含まれているかどうかで、操作対象のオブジェクトが視野内に含まれているかどうかを判断するようにしたが、これに限定される必要はない。仮想カメラの視線ベクトルと、仮想カメラの位置から操作対象オブジェクトの位置(ここでは、中心位置)に向かうベクトルの内積を算出し、算出されたcosθの値に基づいて、1つまたは複数の操作対象のオブジェクトが視野内に含まれているかどうかを判断するようにしてもよい。または、仮想カメラの視線方向が仮想カメラの位置を含む水平面内における水平方向の角度の基準値以内に含まれるかどうかで、1つまたは複数の操作対象のオブジェクトが視野内に含まれているかどうかを判断するようにしてもよい。この場合、仮想カメラの視線ベクトルと、仮想カメラが基準方向を向いている場合の視線ベクトルの内積を算出し、算出されたcosθの値が基準値以内であるかどうかが判断される。
【0176】
また、この実施例では、操作対象のオブジェクトが視野内に含まれている場合について説明したが、その一部が視野内に含まれている場合にも、オブジェクトの特定および処理の実行を行うことができるようにしてもよい。たとえば、操作対象のオブジェクトが、所定の割合(たとえば、90%)以上視野内に含まれている場合には、ユーザはオブジェクトを知ることができると考えられる。ただし、オブジェクトによっては、所定の割合は50%未満でも、ユーザが当該オブジェクトを知ることができる場合もあると考えられる。一例として、操作対象のオブジェクトが視野内に含まれる割合は、オブジェクトに設定される球の大きさ(半径R)を調整することにより設定することができる。つまり、操作対象のオブジェクトの少なくとも一部が視野内に含まれている場合に、ユーザの操作に応じて、当該オブジェクトに関連する処理を実行できるようにすることもできる。
【0177】
さらに、この実施例では、ゲームアプリケーションにおいてメニュー画像に設けられた4つのアイコン(すなわち、操作対象のオブジェクト)のうち、視野内に含まれる1つのアイコンを特定して、当該アイコンに関連する個別ゲームの処理を実行するようにしたが、これに限定される必要はない。それぞれ異なるアプリケーションに関連する複数のアイコンのうち、視野内に含まれる1つのアイコンを特定して、当該アイコンに関連するアプリケーションの処理を実行するようにすることもできる。また、操作対象のオブジェクトに対して複数の選択肢が設定されている場合には、複数の選択肢から1つの選択肢を選択させる処理が当該オブジェクトに関連する処理である。
【0178】
さらにまた、この実施例では、ゲームシステムをゴーグル装置に装着した場合には、立体視モードを設定し、立体視画像を表示するようにしたが、これに限定される必要はない。ゲームシステムがゴーグル装置に装着される場合であっても、視差の無い左目用画像および右目用画像を生成し、非立体視画像を表示するようにしてもよい。
【0179】
なお、上述の実施例では、本体装置2に左コントローラ3および右コントローラ4を着脱可能な構成のゲームシステム1を用いた場合について説明したが、これに限定される必要はない。たとえば、左コントローラ3および右コントローラ4と同様の操作ボタンおよびアナログスティックを有する操作部を本体装置2に一体的に設けたゲーム装置またはゲームプログラムを実行可能な他の電子機器のような情報処理装置を用いることもできる。他の電子機器としては、スマートフォンまたはタブレットPCなどが該当する。かかる場合には、操作部はソフトウェアキーで構成することもできる。
【0180】
また、上述の実施例で示した具体的な数値、操作部および画像は一例であり、実際の製品に応じて適宜変更可能である。
【符号の説明】
【0181】
1 …ゲームシステム
2 …本体装置
3 …左コントローラ
4 …右コントローラ
32、52 …アナログスティック
39 …ZLボタン
60 …Rボタン
61 …ZRボタン
81 …プロセッサ