IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 任天堂株式会社の特許一覧

特開2024-169572情報処理システム、情報処理方法、および情報処理プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024169572
(43)【公開日】2024-12-05
(54)【発明の名称】情報処理システム、情報処理方法、および情報処理プログラム
(51)【国際特許分類】
   G06T 19/00 20110101AFI20241128BHJP
   G06F 3/01 20060101ALI20241128BHJP
   G06F 3/04815 20220101ALI20241128BHJP
   A63F 13/25 20140101ALI20241128BHJP
   A63F 13/428 20140101ALI20241128BHJP
   A63F 13/53 20140101ALI20241128BHJP
   A63F 13/55 20140101ALI20241128BHJP
【FI】
G06T19/00 600
G06F3/01 510
G06F3/04815
A63F13/25
A63F13/428
A63F13/53
A63F13/55
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2024161129
(22)【出願日】2024-09-18
(62)【分割の表示】P 2021574446の分割
【原出願日】2020-09-18
(31)【優先権主張番号】P 2020011691
(32)【優先日】2020-01-28
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】桑原 雅人
(72)【発明者】
【氏名】河井 宏智
(72)【発明者】
【氏名】味水 達也
(72)【発明者】
【氏名】堀口 清吾
(72)【発明者】
【氏名】瀬古 圭介
(72)【発明者】
【氏名】酒井 由利子
(72)【発明者】
【氏名】栗本 真二
(57)【要約】
【課題】仮想空間の画像の表示に関してユーザビリティを向上させることが可能な画像処理システムを提供する。
【解決手段】画像処理システムの一例は、第1ユーザに装着される第1HMDと、第2ユーザによって携帯されるスマートデバイスとを含む。仮想空間には、現実空間の基準に対するスマートデバイスの位置に応じて、第2仮想カメラ及び第2オブジェクトが配置される。また、仮想空間には現実空間における第1HMDの位置とは無関係に第1オブジェクトが配置され、第1オブジェクトの位置に対応する位置に第1仮想カメラが配置される。第1仮想カメラに基づいて第2オブジェクトを含む仮想空間の画像が第1HMDに表示され、第2仮想カメラに基づいて第1オブジェクトを含む仮想空間の画像がスマートデバイスに表示される。
【選択図】図7
【特許請求の範囲】
【請求項1】
第1ユーザによって用いられる、頭部に装着されるまたは手で把持されるヘッドマウントディスプレイである第1デバイスと、
第2ユーザによって用いられる第2デバイスと、
前記第1デバイスによって操作される第1仮想オブジェクトと、前記第2デバイスによって操作される第2仮想オブジェクトとを用いたゲームに関するゲーム処理を行うゲーム処理手段と、
前記ゲーム処理中に、前記第1ユーザが現実空間における所定範囲から出たか否か、又は、前記第1ユーザが所定距離以上移動したか否かを判定する判定手段と、
前記判定手段によって、前記第1ユーザが前記所定範囲から出たと判定された場合、又は、前記第1ユーザが前記所定距離以上移動したと判定された場合、前記第2デバイスを用いて前記第2ユーザに通知する通知手段と、を備える、情報処理システム。
【請求項2】
前記第2デバイスは、可搬型のデバイスである、請求項1に記載の情報処理システム。
【請求項3】
前記ゲーム処理手段は、前記第2デバイスの現実空間における位置に基づいて、前記ゲーム処理を行う、請求項2に記載の情報処理システム。
【請求項4】
前記第2デバイスは、ヘッドマウントディスプレイである、請求項2又は3に記載の情報処理システム。
【請求項5】
前記通知手段は、前記第1ユーザが前記所定範囲から出た場合、又は、前記第1ユーザが前記所定距離以上移動した場合、前記第1デバイスを用いて前記第1ユーザに通知する、請求項1から4の何れかに記載の情報処理システム。
【請求項6】
前記通知手段は、前記第1ユーザが前記所定範囲から出た場合、又は、前記第1ユーザが前記所定距離以上移動した場合、第3のデバイスを用いて、前記ゲームを観戦する第3ユーザに通知する、請求項1から5の何れかに記載の情報処理システム。
【請求項7】
第1ユーザによって用いられる、頭部に装着されるまたは手で把持されるヘッドマウントディスプレイである第1デバイスと、
第2ユーザによって用いられる可搬型の第2デバイスと、
前記第1デバイスによって操作される第1仮想オブジェクトと、前記第2デバイスによって操作される第2仮想オブジェクトとを用いたゲームに関するゲーム処理を行うゲーム処理手段と、
前記ゲーム処理中に、現実空間における所定範囲に前記第2ユーザが入ったか否かを判定する判定手段と、
前記判定手段によって前記第2ユーザが前記所定範囲に入ったと判定された場合に、前記第2デバイスを用いて前記第2ユーザに通知する通知手段と、を備える、情報処理システム。
【請求項8】
前記ゲーム処理手段は、前記第2デバイスの現実空間における位置に基づいて、前記ゲーム処理を行う、請求項7に記載の情報処理システム。
【請求項9】
前記通知手段は、前記第2ユーザが前記所定範囲に入った場合、前記第1デバイスを用いて前記第1ユーザに通知する、請求項7又は8に記載の情報処理システム。
【請求項10】
前記通知手段は、前記第1ユーザが前記所定範囲から出た場合、前記第1デバイスを用いて前記第1ユーザに通知する、請求項7から9の何れかに記載の情報処理システム。
【請求項11】
前記第2デバイスに前記所定範囲を示す画像を表示させる表示制御手段、をさらに備える、請求項7から10の何れかに記載の情報処理システム。
【請求項12】
第1ユーザによって用いられる、頭部に装着されるまたは手で把持されるヘッドマウントディスプレイである第1デバイスと、第2ユーザによって用いられる第2デバイスとを含む情報処理システムにおいて行われる情報処理方法であって、
前記第1デバイスによって操作される第1仮想オブジェクトと、第2デバイスによって操作される第2仮想オブジェクトとを用いたゲームに関するゲーム処理を行うゲーム処理ステップと、
前記ゲーム処理中に、前記第1ユーザが現実空間における所定範囲から出たか否か、又は、前記第1ユーザが所定距離以上移動したか否かを判定する判定ステップと、
前記判定ステップにおいて、前記第1ユーザが前記所定範囲から出たと判定された場合、又は、前記第1ユーザが前記所定距離以上移動したと判定された場合、前記第2デバイスを用いて前記第2ユーザに通知する通知ステップと、を備える、情報処理方法。
【請求項13】
第1ユーザによって用いられる、頭部に装着されるまたは手で把持されるヘッドマウントディスプレイである第1デバイスと、第2ユーザによって用いられる第2デバイスとを含む情報処理システムのコンピュータにおいて実行される情報処理プログラムであって、前記コンピュータを、
前記第1デバイスによって操作される第1仮想オブジェクトと、第2デバイスによって操作される第2仮想オブジェクトとを用いたゲームに関するゲーム処理を行うゲーム処理手段と、
前記ゲーム処理中に、前記第1ユーザが現実空間における所定範囲から出たか否か、又は、前記第1ユーザが所定距離以上移動したか否かを判定する判定手段と、
前記判定手段によって、前記第1ユーザが前記所定範囲から出たと判定された場合、又は、前記第1ユーザが前記所定距離以上移動したと判定された場合、前記第2デバイスを用いて前記第2ユーザに通知する通知手段と、して機能させる、情報処理プログラム。
【請求項14】
第1ユーザによって用いられる、頭部に装着されるまたは手で把持されるヘッドマウントディスプレイである第1デバイスと、第2ユーザによって用いられる可搬型の第2デバイスとを含む情報処理システムにおいて行われる情報処理方法であって、
前記第1デバイスによって操作される第1仮想オブジェクトと、前記第2デバイスによって操作される第2仮想オブジェクトとを用いたゲームに関するゲーム処理を行うゲーム処理ステップと、
前記ゲーム処理中に、現実空間における所定範囲に前記第2ユーザが入ったか否かを判定する判定ステップと、
前記判定ステップにおいて前記第2ユーザが前記所定範囲に入ったと判定された場合、前記第2デバイスを用いて前記第2ユーザに通知する通知ステップと、を備える、情報処理方法。
【請求項15】
第1ユーザによって用いられる、頭部に装着されるまたは手で把持されるヘッドマウントディスプレイである第1デバイスと、第2ユーザによって用いられる可搬型の第2デバイスとを含む情報処理システムのコンピュータにおいて実行される情報処理プログラムであって、前記コンピュータを、
前記第1デバイスによって操作される第1仮想オブジェクトと、前記第2デバイスによって操作される第2仮想オブジェクトとを用いたゲームに関するゲーム処理を行うゲーム処理手段と、
前記ゲーム処理中に、現実空間における所定範囲に前記第2ユーザが入ったか否かを判定する判定手段と、
前記判定手段によって前記第2ユーザが前記所定範囲に入ったと判定された場合、前記第2デバイスを用いて前記第2ユーザに通知する通知手段と、して機能させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のディスプレイに画像を表示させることが可能な画像処理システム、画像処理プログラム、および画像処理方法に関する。
【背景技術】
【0002】
先行技術として、仮想空間に仮想オブジェクトを配置し、ディスプレイに仮想オブジェクトを含む仮想空間の画像を表示させるシステムがある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-74362号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、仮想空間の画像の表示に関してユーザビリティを向上するという観点では改善の余地があった。
【0005】
それ故、本発明の目的は、仮想空間の画像の表示に関してユーザビリティを向上させることが可能な画像処理システム、画像処理プログラム、および画像処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の構成を採用した。
【0007】
本発明の画像処理システムは、第1ユーザが視認可能な第1ディスプレイと、前記第1ユーザの入力を受け付ける第1入力手段と、第2ユーザによって携帯され、前記第2ユーザが視認可能な可搬型の第2ディスプレイとを備える。また、画像処理システムは、第1オブジェクト配置手段と、第1オブジェクト制御手段と、第1仮想カメラ配置手段と、第2仮想カメラ配置手段と、第2オブジェクト配置手段と、第1表示制御手段と、第2表示制御手段とを備える。第1オブジェクト配置手段は、前記第1ディスプレイ及び前記第1ユーザの現実空間における位置に関わらず、仮想空間内に第1オブジェクトを配置する。第1オブジェクト制御手段は、前記第1入力手段が受け付けた入力に応じて、前記第1オブジェクトの制御を行う。第1仮想カメラ配置手段は、前記仮想空間内において、前記第1オブジェクトの位置に対応する位置に第1仮想カメラを配置する。第2仮想カメラ配置手段は、現実空間の基準に対する前記第2ディスプレイの位置に応じて設定される前記仮想空間内の第1位置に、第2仮想カメラを配置し、前記第2仮想カメラの姿勢を、現実空間における前記第2ディスプレイの姿勢に応じた第1姿勢に設定する。第2オブジェクト配置手段は、現実空間の前記基準に対する前記第2ディスプレイの位置に応じて設定される前記仮想空間内の第2位置に、第2オブジェクトを配置する。第1表示制御手段は、前記第1仮想カメラに基づいて生成された、前記第2オブジェクトを含む前記仮想空間の画像を、前記第1ディスプレイに表示させる。第2表示制御手段は、前記第2仮想カメラに基づいて生成された、前記第1オブジェクトを含む前記仮想空間の画像を、前記第2ディスプレイに表示させる。
【0008】
なお、前記第2位置は、前記第1位置と同じ位置であってもよいし異なる位置であってもよい。また、「前記第1オブジェクトの位置に対応する位置」とは、前記第1オブジェクトの位置と同じ位置であってもよいし、前記第1オブジェクトの位置とは異なる位置であってもよい。
【0009】
上記によれば、第1オブジェクトは、現実空間における第1ディスプレイの位置に関係なく仮想空間に設定され、第2オブジェクトは、現実空間の基準に対する第2ディスプレイの位置に応じて仮想空間に設定される。第1仮想カメラは、第1オブジェクトの位置に対応する仮想空間の位置に配置される。第2仮想カメラは、現実空間の基準に対する第2ディスプレイの位置に応じて仮想空間に配置され、第2仮想カメラの姿勢は、第2ディスプレイの姿勢に応じて設定される。そして、第1ディスプレイには、第1仮想カメラに基づいて第2オブジェクトを含む仮想空間の画像が表示され、第2ディスプレイには、第2仮想カメラに基づいて第1オブジェクトを含む仮想空間の画像が表示される。これにより、第1ディスプレイには、仮想空間の第1オブジェクトの位置に対応する位置から見た画像を表示させることができ、第2ディスプレイには、現実空間の基準に対する第2ディスプレイの位置に応じた仮想空間の位置から仮想空間を見た画像を表示させることができる。このため、第1ユーザと第2ユーザとで異なる視点から仮想空間を見ることができる。現実空間における第2ディスプレイの位置と連動して仮想空間内で第2オブジェクトの位置が設定されるため、第1ユーザは、仮想空間内で第2オブジェクトを見ることで現実空間における第2ユーザの位置を把握することができる。また、第2ユーザは、現実空間における第2ディスプレイの位置や姿勢に応じて仮想空間内の第1オブジェクトを見ることができる。
【0010】
また、画像処理システムは、前記第2ユーザの入力を受け付ける第2入力手段と、前記第2入力手段が受け付けた入力に応じて、前記仮想空間又は前記第1オブジェクトに影響を与える制御手段と、をさらに備えてもよい。
【0011】
上記によれば、第2ユーザの入力に基づいて仮想空間又は第1オブジェクトに影響を与えることができる。
【0012】
また、前記制御手段は、前記第2入力手段が受け付けた入力に応じて、前記仮想空間内に所定のオブジェクトを出現させてもよい。前記第1表示制御手段は、前記第2オブジェクトと前記所定のオブジェクトとを含む画像を前記第1ディスプレイに表示させ、前記第2表示制御手段は、前記第1オブジェクトと前記所定のオブジェクトとを含む画像を前記第2ディスプレイに表示させてもよい。
【0013】
上記によれば、第2ユーザの入力に応じて、仮想空間内に所定のオブジェクトを出現させ、第1ディスプレイ及び第2ディスプレイに所定のオブジェクトを表示させることができる。
【0014】
また、前記制御手段は、前記所定のオブジェクトを用いて、前記第1オブジェクトに変化を与えてもよい。
【0015】
上記によれば、第2ユーザの入力に応じて所定のオブジェクトを出現させ、当該所定のオブジェクトを用いて、第1オブジェクトに変化を与えることができる。
【0016】
また、画像処理システムは、ゲーム制御手段をさらに備えてもよい。ゲーム制御手段は、前記第1オブジェクトを用いたゲームを制御する。前記所定のオブジェクトは、前記第1オブジェクトにとって前記ゲームにおいて有利又は不利なオブジェクトであってもよい。
【0017】
上記によれば、第1ユーザによって制御される第1オブジェクトを用いたゲームを行うことができ、第2ユーザの入力に応じて、第1オブジェクトにとってゲーム上有利又は不利な所定のオブジェクトを仮想空間に出現させることができる。これにより、第2ユーザは、第1ユーザが行うゲームに参加することができる。
【0018】
また、前記第1ディスプレイは、ヘッドマウントディスプレイであってもよい。前記第2ディスプレイは、背面方向の現実空間を撮像するカメラを備えてもよい。前記第2仮想カメラ配置手段は、前記カメラからの画像に基づいて、前記基準として現実空間に配置されたマーカを検出し、前記マーカに対する前記第2ディスプレイの位置に応じた前記第1位置に前記第2仮想カメラを配置してもよい。前記第2表示制御手段は、前記カメラで撮像された現実空間の画像に、前記第2仮想カメラに基づいて生成された前記仮想空間の画像を重畳して、前記第2ディスプレイに表示させてもよい。
【0019】
上記によれば、第1ユーザはヘッドマウントディスプレイを装着して仮想空間を見る一方で、第2ユーザは、現実空間のマーカを撮像して、マーカに対する第2ディスプレイの位置に応じた位置から仮想空間を見ることができ、現実空間の画像に重畳して仮想空間の画像を見ることができる。第2ユーザは、現実空間内で移動したり向きを変えたりすることで、仮想空間の様々な視点から仮想空間を見ることができ、第1ユーザが見る仮想空間を、現実空間のように見ることができる。
【0020】
また、画像処理システムは、前記第1ユーザ又は前記第2ユーザによって把持されるコントローラを備えてもよい。前記第1ディスプレイ又は前記第2ディスプレイは、ヘッドマウントディスプレイであってもよい。画像処理システムは、前記ヘッドマウントディスプレイを装着している前記第1ユーザ又は前記第2ユーザの手を撮像可能なカメラを備えてもよい。また、画像処理システムは、指示オブジェクト配置手段と、第3表示制御手段とをさらに備えてもよい。指示オブジェクト配置手段は、前記カメラからの入力画像に基づいて、前記第1ユーザ又は前記第2ユーザの手、又は、前記コントローラを検出し、当該手の位置に前記コントローラを模した仮想的なコントローラオブジェクトを配置し、さらに前記コントローラオブジェクトの所定位置に、前記仮想空間内の位置を指示するための指示オブジェクトを配置する。第3表示制御手段は、前記コントローラオブジェクトと前記指示オブジェクトとを含む画像を前記ヘッドマウントディスプレイに表示させる。
【0021】
上記によれば、手の位置にコントローラを模した仮想的なコントローラオブジェクトが配置されるため、ユーザがヘッドマウントディスプレイを装着している場合でも、コントローラオブジェクトを見ながらコントローラを用いた操作を容易に行うことができる。また、コントローラオブジェクトの所定位置には指示オブジェクトが設けられるため、指示オブジェクトを見ながら仮想空間内の位置を正確に指示することができ、操作性を向上させることができる。
【0022】
また、画像処理システムは、現実空間を撮像するカメラと、仮想オブジェクト配置手段とをさらに備えてもよい。仮想オブジェクト配置手段は、前記カメラからの入力画像に基づいて、現実空間に存在する特定の物体を検出し、当該特定の物体に対応する仮想オブジェクトを、現実空間の前記特定の物体の位置に応じた前記仮想空間内の位置に配置する。前記第1表示制御手段は、前記仮想オブジェクトを含む前記仮想空間の画像を前記第1ディスプレイに表示させてもよい。
【0023】
上記によれば、現実空間に存在する実在物に対応する仮想オブジェクトを仮想空間に登場させることができ、第1ディスプレイに当該仮想オブジェクトを表示することができる。
【0024】
また、前記第2表示制御手段は、前記仮想オブジェクトを含む前記仮想空間の画像を前記第2ディスプレイに表示させてもよい。
【0025】
上記によれば、第2ディスプレイにも実在物に対応する仮想オブジェクトを表示することができる。
【0026】
また、前記仮想オブジェクト配置手段は、前記特定の物体を検出したことによって前記仮想オブジェクトを配置した後、前記カメラからの入力画像に基づいて前記特定の物体を検出しなくなった場合、前記仮想オブジェクトを前記仮想空間内に存続させてもよい。前記第1表示制御手段は、前記カメラからの入力画像に基づいて前記特定の物体を検出しなくなった場合でも、前記仮想オブジェクトを含む前記仮想空間の画像を前記第1ディスプレイに表示させてもよい。
【0027】
上記によれば、カメラで現実空間の特定の物体を検出したことによって仮想オブジェクトが仮想空間に配置された後、例えば、カメラが移動したりカメラの向きが変化することで特定の物体を検出できなくなった場合でも、仮想オブジェクトを仮想空間に存続させることができる。
【0028】
また、前記第1ディスプレイは、ヘッドマウントディスプレイであってもよい。画像処理システムは、前記第1ユーザが現実空間における所定範囲外に出たか否かを判定し、前記所定範囲外に出たと判定した場合に、前記第1ユーザに対して所定の報知を行う第1報知手段と、前記第2ユーザが前記所定範囲に進入したか否かを判定し、前記所定範囲に進入したと判定した場合に、前記第2ユーザに対して所定の報知を行う第2報知手段と、を備えてもよい。
【0029】
上記によれば、第1ユーザが所定範囲外に出た場合や第2ユーザが所定範囲内に進入した場合に、第1ユーザ及び第2ユーザに報知を行うことができる。
【0030】
また、前記第1入力手段は、キー入力可能なコントローラであってもよい。前記第1オブジェクト制御手段は、前記第1入力手段に対するキー入力に応じて、前記第1オブジェクトの位置または姿勢を制御してもよい。
【0031】
上記によれば、第1ユーザはキー入力によって第1オブジェクトを制御することができる。
【0032】
また、前記第1仮想カメラは、前記第1オブジェクトの位置に配置されてもよい。
【0033】
上記によれば、第1ディスプレイには、第1オブジェクトから見た仮想空間の画像を表示することができる。
【0034】
また、前記第1仮想カメラは、前記第1オブジェクトの位置から所定距離離れた位置に、前記第1オブジェクトを撮像範囲に含むように配置されてもよい。
【0035】
上記によれば、第1ディスプレイには、第1オブジェクトから所定位置離れた位置から、第1オブジェクトを含む仮想空間の画像を表示することができる。
【0036】
また、他の発明は、上記画像処理システムに含まれる1又は複数のコンピュータにおいて実行されるプログラムであってもよい。また、他の発明は、上記画像処理システムにおいて行われる画像処理方法であってもよい。
【発明の効果】
【0037】
本発明によれば、第1ディスプレイには、仮想空間の第1オブジェクトの位置に対応する位置から見た画像を表示させることができ、第2ディスプレイには、現実空間の基準に対する第2ディスプレイの位置に応じた位置から仮想空間を見た画像を表示させることができることができる。
【図面の簡単な説明】
【0038】
図1】本実施形態の画像処理システム1を用いて複数のユーザによって仮想空間の画像が視認される様子の一例を示す図
図2】画像処理システム1の全体構成の一例を示す図
図3】画像処理システム1に含まれる第1HMD10(又は第2HMD30)の構成の一例を示す図
図4】画像処理システム1に含まれるスマートデバイス20の構成の一例を示す図
図5】画像処理システム1に含まれるコントローラ18の構成の一例を示す図
図6】スマートデバイス20のカメラ23でマーカ40を撮像することによって設定される仮想空間の座標系について説明するための図
図7】複数の仮想オブジェクトを含む仮想空間100の一例を示す図
図8】第1HMD10及び仮想カメラ111を右側から見た図であって、第1HMD10の姿勢の変化と連動するように仮想カメラ111の姿勢が変化する様子を示す図
図9】第1HMD10、第2HMD30及びコントローラ18,38の位置を検出する方法の一例を示す図
図10】第1HMD10のディスプレイ12に表示される画像の一例を示す図であって、第1ユーザが正面を向いているときの画像の一例である。
図11】第1HMD10のディスプレイ12に表示される画像の一例を示す図であって、第1ユーザが右側を向いているときの画像の一例である。
図12図10に示す状態で、弾オブジェクト112が仮想空間内に射出される様子の一例を示す図
図13】スマートデバイス20aのディスプレイ22に表示される画像の一例を示す図であって、第2ユーザaが図1に示す位置にいるときの画像の一例である。
図14】第2ユーザaが第3ユーザ寄りに移動した後のスマートデバイス20aのディスプレイ22に表示される画像の一例を示す図
図15】スマートデバイス20aに対する操作に応じて、キャラクタ120aが弾オブジェクト122を射出する様子の一例を示す図
図16】第2HMD30のディスプレイ32に表示される画像の一例を示す図であって、仮想カメラ131が第1モードに設定されているときの画像の一例である。
図17】第2HMD30のディスプレイ32に表示される画像の一例を示す図であって、仮想カメラ131が第2モードに設定されているときの画像の一例である。
図18】作成モードにおけるユーザが見る画像の一例を示す図
図19】複数のパーツオブジェクト173が平面状に並べられる様子を示す図
図20】各パーツオブジェクトが配置されるグリッドを表示するためのグリッド線の一例を示す図
図21】現実空間に実在物としての缶80がテーブル上に配置される様子を示す図
図22】缶80に対応する仮想オブジェクト180が仮想空間内に配置される様子を示す図
図23】各スマートデバイス20において記憶されるデータD20の一例を示す図
図24】第1HMD10において記憶されるデータD10の一例を示す図
図25】第2HMD30において記憶されるデータD30の一例を示す図
図26】情報処理装置60において記憶されるデータD60の一例を示す図
図27】第1HMD10又は第2HMD30において実行されるHMD処理の一例を示すフローチャート
図28】スマートデバイス20において実行されるスマートデバイス処理の一例を示すフローチャート
図29】情報処理装置60において実行されるゲーム制御処理の一例を示すフローチャート
【発明を実施するための形態】
【0039】
(画像処理システムの構成)
本実施形態の画像処理システム1は、複数のユーザに同一の仮想空間の画像を視認させるシステムであり、例えば、複数のユーザ間でゲームを行うためのシステムである。以下、図面を参照して、本実施形態の画像処理システム1について説明する。
【0040】
図1は、本実施形態の画像処理システム1を用いて複数のユーザによって仮想空間の画像が視認される様子の一例を示す図である。図2は、画像処理システム1の全体構成の一例を示す図である。図3は、画像処理システム1に含まれる第1HMD10(又は第2HMD30)の構成の一例を示す図である。図4は、画像処理システム1に含まれるスマートデバイス20の構成の一例を示す図である。図5は、画像処理システム1に含まれるコントローラ18の構成の一例を示す図である。
【0041】
図1に示されるように、画像処理システム1は、第1ユーザに装着される第1ヘッドマウントディスプレイ10(以下、「第1HMD」と表記する)と、第3ユーザに装着される第2ヘッドマウントディスプレイ30(以下、「第2HMD」と表記する)とを含む。
【0042】
第1HMD10は、第1ユーザの頭部に第1ユーザの両目を覆うように装着される。また、第2HMD30は、第3ユーザの頭部に第3ユーザの両目を覆うように装着される。第1HMD10及び第2HMD30は、基本的に同じ構成を有する装置である。以下、図3を参照して、第1HMD10及び第2HMD30の構成の一例について説明する。
【0043】
図3に示されるように、第1HMD10は、右目用ディスプレイ12Rと、左目用ディスプレイ12Lとを有する。右目用ディスプレイ12Rは、ユーザが第1HMD10を装着した場合に、図示しないレンズを介してユーザの右目で視認される。左目用ディスプレイ12Lは、ユーザが第1HMD10を装着した場合に、図示しないレンズを介してユーザの左目で視認される。右目用ディスプレイ12Rおよび左目用ディスプレイ12Lとしては、任意の表示装置が用いられてもよく、例えば液晶表示装置や有機EL表示装置が用いられてもよい。ユーザが第1HMD10を装着した場合、第1ユーザの右目及び左目は、右目用ディスプレイ12R及び左目用ディスプレイ12Lのそれぞれに覆われ、第1ユーザの視野はほぼディスプレイ12に覆われる。このため、第1HMD10を装着した場合、第1ユーザは、現実空間を見ずにディスプレイ12に表示された画像のみを見る。
【0044】
なお、ディスプレイ12は、透過型のディスプレイであってもよい。この場合、第1ユーザは、ディスプレイ12を介して現実空間を視認可能であるとともに、ディスプレイ12に表示された画像を視認可能である。
【0045】
また、第1HMD10の正面には、ユーザから見て右側に位置する右カメラ13Rと、ユーザから見て左側に位置する左カメラ13Lとが設けられる。右カメラ13Rおよび左カメラ13Lは、可視光を受光して画像(RGB画像)を生成するためのカメラである。以下では、右カメラ13Rと左カメラ13Lを総称して「カメラ13」と表記することがある。
【0046】
また、第1HMD10の正面には、ユーザから見て右側に位置する右赤外線カメラ14Rと、ユーザから見て左側に位置する左赤外線カメラ14Lとが設けられる。右赤外線カメラ14Rおよび左赤外線カメラ14Lは、赤外光を受光して赤外線画像を生成するためのカメラである。詳細は後述するが、右赤外線カメラ14Rおよび左赤外線カメラ14Lは、ユーザの手を検出するために用いられる。以下では、右赤外線カメラ14Rと左赤外線カメラ14Lを総称して「赤外線カメラ14」と表記することがある。
【0047】
第1HMD10には、第1HMD10の右方向の軸であるx軸と、第1HMD10の上方向の軸であるy軸と、第1HMD10の正面方向の軸であるz軸とが設定される。第1HMD10は、x軸、y軸、z軸の各軸方向に関する加速度および角速度を検出する慣性センサ15(図2参照)を備える。慣性センサ15によって検出された加速度および角速度に基づいて、第1HMD10の姿勢を算出することができる。
【0048】
また、第1HMD10は、ネットワーク(LANやWAN、インターネット等)に接続するための通信モジュール16を備える(図2参照)。
【0049】
第2HMD30も第1HMD10と同様の構成を有する。具体的には、第2HMD30は、左右のディスプレイ32(32L及び32R)と、左右のカメラ33(33L及び33R)と、左右の赤外線カメラ34(34L及び34R)とを有する(図2参照)。また、第2HMD30は、x軸、y軸、z軸の各軸方向に関する加速度および角速度を検出する慣性センサ35と、通信モジュール36とを備える(図2参照)。なお、以下では、第1HMD10及び第2HMD30を総称して、「HMD」と表記することがある。
【0050】
また、図1に示されるように、画像処理システム1は、第2ユーザによって携帯されるスマートデバイス20を含む。第2ユーザは複数存在してもよい。ここでは、第2ユーザは、第2ユーザaと、第2ユーザbとを含むものとする。第2ユーザaはスマートデバイス20aを把持し、第2ユーザbはスマートデバイス20bを把持する。なお、以下では、スマートデバイス20a及び20bを区別しない場合には、「スマートデバイス20」と表記する。
【0051】
スマートデバイス20は、例えば、スマートフォンやタブレット端末等である。図4に示されるように、スマートデバイス20の正面には、ディスプレイ22が設けられる。ディスプレイ22は、例えば液晶表示装置や有機EL表示装置である。また、スマートデバイス20の背面(ディスプレイ22と反対側の面)には、カメラ23が設けられる。カメラ23は、可視光を受光してRGB画像を生成するためのカメラである。なお、カメラ23は、背面と異なる面を含めて複数個所に設けられてもよい。
【0052】
また、スマートデバイス20には、スマートデバイス20の右方向の軸であるx軸と、上方向の軸であるy軸と、正面方向の軸であるz軸とが設定される。スマートデバイス20は、x軸、y軸、z軸の各軸方向に関する加速度および角速度を検出する慣性センサ24(図2参照)を備える。スマートデバイス20は、慣性センサ24によって検出された加速度および角速度に基づいて、スマートデバイス20の姿勢を算出することができる。また、スマートデバイス20は、ネットワークに接続するための通信モジュール25を備える(図2参照)。
【0053】
また、画像処理システム1は、第1ユーザによって把持されるコントローラ18と、第3ユーザによって把持されるコントローラ38とを含む。図5を参照して、コントローラ18の構成の一例について説明する。
【0054】
図5に示されるように、コントローラ18は、ユーザが押下可能な複数のボタン181(Aボタン、Bボタン、Cボタン、Dボタン)と、方向指示を行うためのアナログスティック182と、方向指示を行うための十字キー183とを備える。また、コントローラ18は、図5に示すx軸、y軸、z軸の各軸方向に関する加速度および角速度を検出する慣性センサ(図2参照)を備える。コントローラ18の慣性センサによって検出された加速度および角速度に基づいて、コントローラ18の姿勢や動きを算出することができる。例えば、慣性センサからの加速度及び角速度に基づいて、コントローラ18が振られたか否かを判定することができる。また、コントローラ18は、ネットワークに接続するための通信モジュールを備える(図2参照)。なお、コントローラ38は、コントローラ18と基本的に同じ構成を有するため、説明を省略する。
【0055】
また、図1に示されるように、画像処理システム1は、マーカ40と、ディスプレイ50と、ディスプレイ50に有線又は無線で接続された情報処理装置60とを含む。
【0056】
マーカ40は、例えば、所定の画像(例えば矢印の画像)が印刷されたカードであり、テーブル等の上面に載置される。ディスプレイ50は、テレビ等の据置型の表示装置であり、例えば、液晶表示装置や有機EL表示装置であってもよい。ディスプレイ50は、HMD(第1HMD10又は第2HMD30)やスマートデバイス20を携帯していない第4ユーザが仮想空間の画像を視認するための表示装置である。
【0057】
図2に示されるように、情報処理装置60は、1又は複数のプロセッサ61と、メモリ62と、ネットワークに接続するための通信モジュール63とを備える。情報処理装置60は、本実施形態のゲームの全体を制御するための装置である。情報処理装置60は、仮想空間内の様々な仮想オブジェクトの位置や姿勢を管理し、仮想オブジェクトの制御を行う。詳細は後述するが、情報処理装置60のメモリ62には、仮想空間に配置される各キャラクタに関するキャラクタ情報が記憶される。キャラクタ情報は、キャラクタの位置や姿勢に関する情報を含む。また、情報処理装置60には、各仮想カメラの位置や姿勢に関する仮想カメラ情報が記憶される。
【0058】
また、詳細は後述するが、情報処理装置60は、ディスプレイ50に表示するための仮想空間の画像を生成し、生成した画像をディスプレイ50に出力する。また、情報処理装置60は、第1HMD10および第2HMD30に表示するための仮想空間の画像を生成し、生成した画像を第1HMD10および第2HMD30にネットワークを介して送信する。情報処理装置60としては、パーソナルコンピュータ、ゲーム装置、サーバ装置、スマートフォン、タブレット端末等、任意の情報処理装置が用いられてもよい。また、情報処理装置60は、複数の装置によって構成されてもよく、複数の装置がネットワーク(LAN、WAN、インターネット等)を介して接続されることによって構成されてもよい。
【0059】
本実施形態では、第1ユーザ~第4ユーザが基本的に同じ場所(例えば同じ部屋)に位置し、画像処理システム1を用いて複数人でゲームを行う。第1ユーザは、例えば、テーブルから少し離れた位置に配置されたマット51の上でゲームのための操作を行う。第1ユーザは、第1HMD10の左右のディスプレイ12に表示された仮想空間の画像を見ながら、例えばコントローラ18を振ることでゲーム操作を行う。具体的には、第1HMD10の右目用ディスプレイ12Rには、仮想空間に配置された右仮想カメラに基づいて生成された右目用仮想空間画像が表示され、第1HMD10の左目用ディスプレイ12Lには、仮想空間に配置された左仮想カメラに基づいて生成された左目用仮想空間画像が表示される。これにより、第1ユーザは、仮想空間の立体視画像を視認することができ、自身が仮想空間に存在するかのようなバーチャルリアリティ(VR)を体験することができる。
【0060】
第1ユーザ(第1HMD10)は、テーブル上に置かれたマーカ40に対する位置に関わらず、テーブル(マーカ40)から離れていてもゲームを行うことが可能である。すなわち、第1HMD10のカメラ13がマーカ40を撮像しなくても、第1ユーザは仮想空間の画像を視認することができる。
【0061】
第2ユーザは、テーブルの近くに位置し、スマートデバイス20のカメラ23でテーブル上に載置されたマーカ40を撮像し、スマートデバイス20に表示された画像を見ながらゲームを行う。スマートデバイス20(のディスプレイ22)には、カメラ23で撮像した現実空間の画像に仮想空間の画像が重畳された画像(以下、重畳画像という)が表示される。これにより、第2ユーザは、例えば現実空間に仮想空間内の仮想オブジェクトが存在するような感覚を抱くことができ、拡張現実(Augmented Reality:AR)を体験することができる。詳細は後述するが、現実空間のマーカ40を基準として仮想空間の座標系が定義され、仮想空間と現実空間とが対応付けられる。
【0062】
なお、スマートデバイス20には、必ずしも現実空間の画像に仮想空間の画像が重畳された重畳画像が表示される必要はなく、仮想空間の画像のみが表示されてもよい。スマートデバイス20に仮想空間の画像のみが表示される場合でも、現実空間のマーカ40を基準として仮想空間の座標系が定義されるため、仮想空間と現実空間とが対応付けられる。このため、第2ユーザは、現実空間に仮想空間内の仮想オブジェクトが存在するような感覚を抱くことができる。すなわち、本実施形態における拡張現実(AR)とは、現実空間の基準と仮想空間とが対応付けられていれば、必ずしも現実空間の画像に仮想空間の画像が重畳されて表示される必要はなく、仮想空間の画像のみがディスプレイに表示されてもよい。
【0063】
また、第3ユーザは、テーブルの近くに位置し、第2HMD30のカメラ33でマーカ40を撮像し、第2HMD30の左右のディスプレイ32に表示された仮想空間の画像を見ながらコントローラ38を操作することでゲームを行う。なお、詳細は後述するが、第2HMD30のカメラ33がマーカ40を撮像できなくても、第3ユーザがゲームを行うことができる場合がある。
【0064】
また、第4ユーザは、ディスプレイ50に表示された仮想空間の画像を見て、第1ユーザ~第3ユーザの間で行われるゲームを観戦する。
【0065】
(マーカ40を基準とした仮想空間の座標系の定義)
次に、カメラでマーカ40を撮像することによって現実空間と仮想空間とを対応付けることについて説明する。図6は、スマートデバイス20のカメラ23でマーカ40を撮像することによって設定される仮想空間の座標系について説明するための図である。
【0066】
図6に示されるように、スマートデバイス20のカメラ23で現実空間を撮像した場合、マーカ40を含む画像が取得される。スマートデバイス20は、種々の画像認識技術を用いて、取得された画像からマーカ40を検出する。スマートデバイス20は、取得された画像からマーカ40を検出した場合、マーカ40の画像の大きさや形状、向き等に基づいて、現実空間におけるマーカ40に対するスマートデバイス20(のカメラ23)の位置を算出する。例えば、スマートデバイス20は、マーカ40の所定の頂点を原点Oとし、マーカ40内の矢印の方向と反対方向をX軸とし、矢印と垂直な方向をZ軸とし、マーカ40に垂直な方向(上方向)をY軸とする、XYZ座標系を設定する。このXYZ座標系は、仮想空間の位置を定義するための座標系として用いられる。また、スマートデバイス20は、カメラ23から取得された画像に含まれるマーカ40の画像に基づいて、マーカ40対するスマートデバイス20の位置(マーカからの相対位置)を、XYZ座標系の座標値(X1,Y1,Z1)として算出する。仮想空間におけるこの位置(X1,Y1,Z1)に仮想カメラを配置することで、現実空間におけるマーカ40を基準としたスマートデバイス20の位置と、仮想空間における仮想カメラの位置とが一致するようになる。そして、例えば、仮想空間のXZ平面の所定位置に仮想オブジェクト101を配置した場合、仮想カメラで仮想空間を撮像してディスプレイ22に表示することで、図6のように、現実空間の画像に重畳して仮想オブジェクト101が表示されるようになる。
【0067】
(仮想空間の説明)
次に仮想空間に配置される各種仮想オブジェクトについて説明する。テーブル上のマーカ40を基準としてXYZ座標系が設定され、複数の仮想オブジェクトを含む仮想空間が設定される。図7は、複数の仮想オブジェクトを含む仮想空間100の一例を示す図である。
【0068】
図7に示されるように、本実施形態のゲームでは、テーブル上に仮想空間が形成される。XZ平面(すなわち、テーブル上)には、仮想空間100内の地形を形成するための様々な仮想オブジェクトが配置される。例えば、XZ平面には、地面オブジェクト141と、木オブジェクト142と、川オブジェクト143と、橋オブジェクト144と、丘オブジェクト145とが配置される。丘オブジェクト145は、高さを有する仮想オブジェクトであり、丘オブジェクト145の頂上には、キャラクタ110が配置される。また、例えば、地面オブジェクト141上には、初期的にキャラクタ130が配置される。
【0069】
キャラクタ110は、第1ユーザに対応する仮想オブジェクトであり、第1ユーザによって制御される。本実施形態のゲームでは、キャラクタ110の位置は丘オブジェクト145の頂上に固定されている。キャラクタ110は、弾オブジェクト112を把持している。例えば、第1ユーザがコントローラ18を振ると、キャラクタ110が弾オブジェクト112を仮想空間100内に射出する。射出された弾オブジェクト112は仮想空間100内を移動する。例えば、弾オブジェクト112がキャラクタ130に当たった場合、キャラクタ130の体力値が減少したり、キャラクタ130が倒れたりする。キャラクタ130が倒れた場合、第1ユーザ側の勝利となる。
【0070】
また、キャラクタ110の位置に対応する位置に、仮想カメラ111が配置される。具体的には、キャラクタ110(例えばキャラクタ110の目の位置)と一致する位置に、仮想カメラ111が配置される。なお、図7では、キャラクタ110の位置と仮想カメラ111の位置とがずれているように見えるが、実際にはこれらの位置は一致しているものとする。仮想カメラ111は、左仮想カメラ111Lと右仮想カメラ111Rとを含む。左仮想カメラ111Lは、第1HMD10の左目用ディスプレイ12Lに表示される左目用仮想空間画像を生成するための仮想カメラである。右仮想カメラ111Rは、第1HMD10の右目用ディスプレイ12Rに表示される右目用仮想空間画像を生成するための仮想カメラである。左仮想カメラ111Lと右仮想カメラ111Rとは、所定距離(例えば、ユーザの平均的な目の間隔に対応する仮想空間の距離)だけ離れて仮想空間100内に配置される。
【0071】
なお、仮想カメラ111は、厳密にキャラクタ110の目の位置に配置される必要はなく、例えば、キャラクタ110が表示される位置であってキャラクタ110の目の位置から上下又は左右方向にずれた位置に配置されてもよい。また、仮想カメラ111は、キャラクタ110と同じ位置に配置されず、キャラクタ110と所定の位置関係を有する位置(キャラクタ110から所定距離だけ離れた位置)に配置されてもよい。例えば、仮想カメラ111は、キャラクタ110の後方の所定位置に配置されてもよい。また、仮想カメラ111は、キャラクタ110の斜め後方の所定位置に配置されてもよい。すなわち、「キャラクタ110の位置に対応する位置に仮想カメラ111が配置される」とは、キャラクタ110と同じ位置に仮想カメラ111が配置される場合と、キャラクタ110から所定距離離れた位置に仮想カメラ111が配置される場合の両方を含む。
【0072】
キャラクタ110及び仮想カメラ111(111R及び111L)の向きは、現実空間における第1ユーザ(第1HMD10)の向きに応じて設定される。すなわち、キャラクタ110及び仮想カメラ111の姿勢は、現実空間における第1HMD10の姿勢と連動する。
【0073】
図8は、第1HMD10及び仮想カメラ111を右側から見た図であって、第1HMD10の姿勢の変化と連動するように仮想カメラ111の姿勢が変化する様子を示す図である。仮想カメラ111には、視線方向の軸であるZc軸と、右方向の軸であるXc軸と、上方向の軸であるYc軸とが設定される。図8に示されるように、仮想カメラ111のXc軸、Yc軸、Zc軸が、第1HMD10のx軸、y軸、z軸のそれぞれと平行となるように、仮想カメラ111の姿勢が制御される。
【0074】
具体的には、第1HMD10の姿勢の初期化が行われた時点から第1HMD10のz軸の向きが変化しておらず、かつ、第1HMD10のy軸が重力方向と反対方向を向いている状態を基準姿勢と呼ぶ。第1HMD10が基準姿勢であるときは、仮想カメラ111は、仮想空間内で正面(例えば、X軸正方向)を向く。すなわち、仮想カメラ111の視線方向を示すZc軸は、仮想空間のX軸と平行になる。図8の右側の図に示されるように、第1ユーザが現実空間で斜め上を向いた場合、第1HMD10の姿勢が基準姿勢から変化し、第1HMD10のz軸が斜め上を向くようになる。この第1HMD10の姿勢変化に連動して、仮想カメラ111のZc軸も仮想空間内で斜め上を向くようになる。また、図示は省略するが、例えば、第1HMD10が基準姿勢から右方向に30度だけ回転した場合(y軸回りに反時計回りに30度回転した場合)、仮想空間内で仮想カメラ111も右方向に30度(Yc軸回りに反時計回りに30度)回転する。
【0075】
このように、現実空間における第1HMD10の姿勢と一致するように仮想カメラ111(111R及び111L)の姿勢が設定される。また、キャラクタ110の姿勢も、仮想カメラ111の姿勢と連動する。すなわち、第1HMD10の姿勢が変化することで、仮想カメラ111及びキャラクタ110の姿勢が変化する。なお、仮想カメラ111がキャラクタ110から所定距離だけ離れた位置(例えば、キャラクタ110の後方の所定位置)に配置される場合、キャラクタ110の姿勢の変化に応じて、仮想カメラ111は姿勢だけでなく位置も変化してもよい。
【0076】
一方、現実空間における第1HMD10の位置が変化しても、仮想カメラ111及びキャラクタ110の位置は変化せず、仮想カメラ111及びキャラクタ110は、丘オブジェクト145の頂上に固定される。
【0077】
図7に戻り、地面オブジェクト141上には、キャラクタ130が配置される。キャラクタ130は、第3ユーザに対応する仮想オブジェクトであり、第3ユーザによって制御される。具体的には、キャラクタ130は、コントローラ38に対するキー入力(ボタン、アナログスティック、又は、十字キーに対する入力)に応じて、仮想空間100内を移動する。また、キャラクタ130の姿勢は、当該キー入力に応じて変化する。キャラクタ130は、地面オブジェクト141、橋オブジェクト144、丘オブジェクト145上を移動可能である。第3ユーザは、コントローラ38を用いて、キャラクタ130を地面オブジェクト141上で移動させ、例えば、橋オブジェクト144を通って丘オブジェクト145の頂上まで移動させる。そして、キャラクタ130が丘オブジェクト145の頂上まで辿り着くと、キャラクタ130とキャラクタ110との戦闘が開始される。当該戦闘において、キャラクタ130がキャラクタ110を倒した場合、第3ユーザ側の勝利となる。
【0078】
仮想空間100には、第3ユーザに対応する仮想カメラ131が設定される。仮想カメラ131は、左仮想カメラ131Lと右仮想カメラ131Rとを含む。左仮想カメラ131Lは、第2HMD30の左目用ディスプレイ32Lに表示される左目用仮想空間画像を生成するための仮想カメラである。右仮想カメラ131Rは、第2HMD30の右目用ディスプレイ32Rに表示される右目用仮想空間画像を生成するための仮想カメラである。左仮想カメラ131Lと右仮想カメラ131Rとは、所定距離だけ離れて配置される。
【0079】
第3ユーザは、仮想カメラ131に基づいて生成された画像を見ながらゲームを行う。第3ユーザは、第1モードと第2モードとで視点(すなわち、仮想カメラ131の位置)を切り替えることが可能である。第1モードに設定されている場合、仮想カメラ131は、キャラクタ130の位置には依存せず、仮想空間100を俯瞰する位置に配置される。
【0080】
具体的には、第1モードに設定されている場合、仮想カメラ131は、現実空間の第2HMD30の位置に応じた仮想空間の位置に配置される。図6を参照して説明した方法と同様の方法により、マーカ40を基準とした第2HMD30の位置が算出され、算出された位置に仮想カメラ131が配置される。すなわち、第2HMD30のカメラ33によって撮像された画像に基づいて、マーカ40が検出され、検出されたマーカ40の大きさ、形状、向きに基づいて、マーカ40に対する第2HMD30の位置が算出される。算出された第2HMD30の位置に応じた仮想空間の位置に、仮想カメラ131が設定される。例えば、左仮想カメラ131Lは、マーカ40を基準とした第2HMD30の左カメラ33Lの位置と一致する仮想空間の位置に設定され、右仮想カメラ131Rは、マーカ40を基準とした第2HMD30の右カメラ33Rの位置と一致する仮想空間の位置に設定される。
【0081】
一方、第2モードに設定されている場合、仮想カメラ131は、キャラクタ130の位置に対応する位置(図7の131’の位置)に設定される。例えば、仮想カメラ131は、キャラクタ130と一致する位置(例えば、キャラクタ130の両目の位置)に設定されてもよい。また、仮想カメラ131は、キャラクタ130の後方の所定位置に設定されてもよい。第2モードに設定されている場合、仮想カメラ131は、キャラクタ130に追従して移動する。
【0082】
また、仮想空間100には、キャラクタ120aおよび120bが配置される。キャラクタ120aは、第2ユーザa(スマートデバイス20a)に対応する仮想オブジェクトである。また、キャラクタ120bは、第2ユーザb(スマートデバイス20b)に対応する仮想オブジェクトである。
【0083】
キャラクタ120aの位置に対応する位置に、仮想カメラ121aが配置される。仮想カメラ121aは、キャラクタ120aと一致する位置(例えば、キャラクタ120aの頭部の位置)に設定されてもよい。また、仮想カメラ121aは、キャラクタ120aの後方の所定位置に設定されてもよい。同様に、キャラクタ120bの位置に対応する位置に、仮想カメラ121bが配置される。仮想カメラ121bは、キャラクタ120bと一致する位置に設定されてもよいし、キャラクタ120bの後方の所定位置に設定されてもよい。
【0084】
図6を参照して説明したように、キャラクタ120a及び仮想カメラ121aの位置は、現実空間におけるスマートデバイス20aの位置に応じて設定される。例えば、仮想空間100におけるキャラクタ120a及び仮想カメラ121aの位置は、現実空間におけるマーカ40に対するスマートデバイス20aの位置と一致する。同様に、仮想空間100におけるキャラクタ120b及び仮想カメラ121bの位置は、現実空間におけるマーカ40に対するスマートデバイス20bの位置と一致する。
【0085】
また、キャラクタ120a及び仮想カメラ121aの姿勢は、現実空間におけるスマートデバイス20aの姿勢と一致するように制御される。同様に、キャラクタ120b及び仮想カメラ121bの姿勢は、現実空間におけるスマートデバイス20bの姿勢と一致するように制御される。
【0086】
現実空間におけるスマートデバイス20の位置及び姿勢に応じて、キャラクタ120(及び仮想カメラ121)の位置及び姿勢が制御されるため、第2ユーザがスマートデバイス20を把持しながら移動したり、スマートデバイス20の向きを変化させたりすると、仮想空間100においてキャラクタ120(及び仮想カメラ121)も移動したり、キャラクタ120(及び仮想カメラ121)の向きが変化したりする。
【0087】
また、図7に示されるように、仮想空間100には、仮想カメラ150が配置される。仮想カメラ150は、据置型のディスプレイ50に表示する画像を生成するための仮想カメラであり、仮想空間100の所定位置に所定の姿勢で固定される。仮想カメラ150は、仮想空間100の全体を俯瞰する位置に配置される。例えば、仮想カメラ150の撮像範囲には、キャラクタ110、120及び130が含まれ、キャラクタ110、120及び130を含む仮想空間の画像がディスプレイ50に表示される。なお、仮想カメラ150の位置及び/又は姿勢は、ユーザの操作に応じて変化されてもよい。
【0088】
なお、ディスプレイ50には、仮想カメラ111又は仮想カメラ131から仮想空間を見た画像が表示されてもよい。また、ディスプレイ50には、仮想カメラ121から仮想空間を見た画像が表示されてもよい。また、ユーザが仮想カメラ111、121、131、及び、150の中から何れかを選択し、選択した仮想カメラに基づいて生成された画像がディスプレイ50に表示されてもよい。また、ディスプレイ50には、スマートデバイス20のディスプレイ22に表示される画像と同じ画像(現実空間の画像に仮想空間の画像が重畳された画像)が表示されてもよい。
【0089】
このように、本実施形態では、テーブル上にマーカ40を配置し、マーカ40を基準として仮想空間の座標系が設定される。テーブルの上面が仮想空間のXZ平面に対応し、当該XZ平面上に仮想オブジェクトが配置される。これにより、スマートデバイス20を介してテーブルを見たときにテーブル上に仮想オブジェクトが表示され、テーブルをディスプレイのように用いてゲームを行うことができる。
【0090】
なお、次に示す方法により、第1HMD10及び/又は第2HMD30の位置が検出されてもよい。図9は、第1HMD10、第2HMD30及びコントローラ18,38の位置を検出する方法の一例を示す図である。
【0091】
図9に示されるように、現実空間の所定位置には2つのセンサバー55が配置される。センサバー55は、その先端部分から所定の時間間隔で、例えば赤外光を出力する。例えば、第1HMD10の赤外線カメラ14(又は他の赤外線受信チップ)は、センサバー55からの赤外光を受信し、センサバー55からの距離や角度を計算し、位置を算出することができる。第2HMD30についても同様である。また、コントローラ18,38は、センサバー55からの赤外光を受信する赤外線受信チップを備え、同様に位置を検出する。なお、第1HMD10、第2HMD30、及びコントローラ18,38の位置を検出する方法はこれに限らず、他の方法によりこれらの位置が検出されてもよい。例えば、現実空間に1又は複数のカメラを設置し、第1HMD10、第2HMD30、及びコントローラ18,38が所定の光を発する発光部を備え、現実空間に設置されたカメラで発光部からの光を受信することで、第1HMD10、第2HMD30、及びコントローラ18,38の現実空間の位置が検出されてもよい。
【0092】
検出された第1HMD10、第2HMD30、及びコントローラ18,38の位置がゲーム制御に用いられてもよい。例えば、上記では現実空間の基準(マーカ)に対する第2HMD30の位置を、第2HMD30が備えるカメラ33でマーカ40を撮像することにより検出したが、図9で示した方法により現実空間の基準(センサバー)に対する第2HMD30の位置を検出し、検出した位置を上述のようにゲーム制御に用いてもよい。この場合、現実空間のマーカと、センサバーとの位置関係が定められることで、マーカを基準としたXYZ座標系における第2HMD30の位置を算出することができる。
【0093】
また、例えば、コントローラ18の現実空間における位置を検出することで、コントローラ18が振られたか否かを検出してもよい。コントローラ18が振られた場合には、弾オブジェクト112が射出されてもよい。
【0094】
図7に示される各仮想オブジェクト(キャラクタ110、120a、120b、130、仮想カメラ111、112a、112b、131等)の位置や姿勢に関する情報は、ネットワークを介して情報処理装置60に送信され、情報処理装置60内で管理される。例えば、スマートデバイス20aが、現実空間における自機の位置及び姿勢を検出し、検出した位置及び姿勢と一致するように仮想空間内のキャラクタ120aの位置及び姿勢を設定する。スマートデバイス20aは、設定したキャラクタ120aの位置及び姿勢に関する情報を、情報処理装置60に送信する。また、仮想空間100内に配置される地形に関する仮想オブジェクト(141~145等)の位置情報等は、情報処理装置60内で管理される。また、コントローラ18、38に対する操作に応じた操作情報は、情報処理装置60に送信される。
【0095】
これら各仮想オブジェクトに関する情報や、コントローラ18、38の操作情報に基づいて、情報処理装置60においてゲーム制御処理が行われる。このゲーム制御処理の結果、第1HMD10及び第2HMD30において仮想空間の画像が表示される。また、スマートデバイス20は、情報処理装置60から各仮想オブジェクトに関する情報を取得し、自機においてゲーム処理を行い、その結果に基づく画像をディスプレイ22に表示する。以下、各デバイスにおいて表示される画像の一例について説明する。
【0096】
(各デバイスに表示される画像の一例)
図10は、第1HMD10のディスプレイ12に表示される画像の一例を示す図であって、第1ユーザが正面を向いているときの画像の一例である。第1HMD10のディスプレイ12には、仮想カメラ111から仮想空間100を見た画像が表示される。なお、図10では、1つの画像が平面的に示されているが、実際には、右目用ディスプレイ12R及び左目用ディスプレイ12Lのそれぞれに互いに視差を有する画像が表示され、第1ユーザは立体視画像として認識する。第1ユーザの視野はほぼ第1HMD10のディスプレイ12に覆われる。
【0097】
図10に示されるように、第1HMD10のディスプレイ12には、丘オブジェクト145の頂上から、キャラクタ130を含む地形全体を見下ろすような画像が表示される。第1ユーザには目の前に仮想空間が広がっているように見え、第1ユーザは、丘オブジェクト145の頂上に立っているような感覚を覚える。第1ユーザの視界には、キャラクタ110の右手の一部が見え、右手には弾オブジェクト112を把持している様子が見える。第1ユーザから見えるキャラクタ110の右手の大きさは、現実空間において第1ユーザが自身の右手を見るときの大きさと類似する大きさである。すなわち、第1ユーザから見える仮想空間のスケールは、現実空間のスケールとほぼ同じである。キャラクタ110の右手の姿勢は、現実空間におけるコントローラ18の姿勢と同じであり、第1ユーザがコントローラ18を把持した右手を上げれば、キャラクタ110の右手も上げられる。
【0098】
第1ユーザからは、キャラクタ130は、地面オブジェクト141上に奥行き方向の右側に位置しているように見える。第1ユーザにとっては、例えば数十メートル先にキャラクタ130が存在しているように見える。また、地面オブジェクト141から離れた左上の方向には、キャラクタ120aが見える。キャラクタ120aは、仮想空間内で浮いているように見える。
【0099】
図10に示される状態から第1ユーザが現実空間において右側を向いた場合、図11に示すような画像が表示される。図11は、第1HMD10のディスプレイ12に表示される画像の一例を示す図であって、第1ユーザが右側を向いているときの画像の一例である。
【0100】
図11に示されるように、第1ユーザが右側を向くと、仮想空間の仮想カメラ111及びキャラクタ110も右側を向き、例えば、キャラクタ130がほぼ正面に表示されるようになる。また、図10では表示されなかったキャラクタ120bが、図11では右上に表示されるようになる。また、図10では表示されていたキャラクタ120aが、図11では表示されなくなる。
【0101】
ここで、第1ユーザは、弾オブジェクト112を用いてキャラクタ130に対して攻撃を行う。例えば、第1ユーザが把持しているコントローラ18を振った場合、仮想空間内でキャラクタ110が右腕を振るような動作を行い、弾オブジェクト112が仮想空間内に射出される。なお、コントローラ18のボタン181に対する操作に応じて弾オブジェクト112が仮想空間内に射出されてもよい。
【0102】
図12は、図10に示す状態で、弾オブジェクト112が仮想空間内に射出される様子の一例を示す図である。図12に示されるように、例えば、第1ユーザがコントローラ18を振った場合、弾オブジェクト112が仮想空間内に射出され、弾オブジェクト112が仮想空間内を移動する。弾オブジェクト112の移動方向は、例えば、第1ユーザによるコントローラ18の振り方向や、アナログスティック182又は十字キー183によって指示された方向によって定められてもよい。弾オブジェクト112がキャラクタ130に当たった場合、キャラクタ130の体力値が減少したり、キャラクタ130が倒れたりする。
【0103】
図13は、スマートデバイス20aのディスプレイ22に表示される画像の一例を示す図であって、第2ユーザaが図1に示す位置にいるときの画像の一例である。スマートデバイス20aのディスプレイ22には、仮想カメラ121aから仮想空間100を俯瞰した画像が表示される。具体的には、ディスプレイ22には、スマートデバイス20aのカメラ23で撮像された現実空間の画像に、仮想カメラ121aに基づいて生成された仮想空間の画像が重畳されて表示される。ディスプレイ22には、現実空間のテーブル上に、仮想空間が配置されたような画像が表示される。例えば、図13において、テーブル上の各画像(141~145、110、130)は仮想空間の画像であり、第2ユーザbの画像を含む、テーブルの周辺の画像は現実空間の画像である。なお、図13の例ではスマートデバイス20aのカメラ23の撮像範囲にスマートデバイス20bが含まれていないため、スマートデバイス20aのディスプレイ22には、キャラクタ120bは表示されていない。スマートデバイス20aのカメラ23の撮像範囲にスマートデバイス20bが含まれている場合には、第2ユーザbの画像に重畳して、スマートデバイス20bの位置にキャラクタ120bが表示される。あるいは、スマートデバイス20aのディスプレイ22に、カメラ23で撮像した現実空間の画像が表示されない場合には、スマートデバイス20aのカメラ23の撮像範囲にスマートデバイス20bが含まれている場合、スマートデバイス20bの位置にキャラクタ120bのみが表示されてもよい。
【0104】
このように、第2ユーザaは、スマートデバイス20aを用いて、図1に示す第2ユーザaの位置(図7に示す仮想カメラ121aの位置)から、テーブル上に形成された小さな仮想空間を俯瞰するように見る。
【0105】
図13に示す状態から、第2ユーザaがスマートデバイス20aの位置や姿勢を変更すると、スマートデバイス20aのディスプレイ22に表示される画像も変化する。
【0106】
図14は、第2ユーザaが第3ユーザ寄りに移動した後のスマートデバイス20aのディスプレイ22に表示される画像の一例を示す図である。スマートデバイス20aが現実空間内で移動した場合、仮想カメラ121aも仮想空間において移動する。第2ユーザaが第3ユーザ寄りに移動した場合、スマートデバイス20aのカメラ23によって、マーカ40を含むテーブルを斜めから見たような画像が取得され、取得された画像に基づいて、仮想カメラ121aの位置が設定される。図14に示すように、移動後のカメラ23から見た現実空間の画像に、移動後の仮想カメラ121aから見た仮想空間の画像が重畳されて、ディスプレイ22に表示される。
【0107】
ここで、第2ユーザは、スマートデバイス20に対する操作に応じて、キャラクタ130に変化を与えるための仮想オブジェクトを仮想空間に射出することができる。具体的には、第2ユーザは、キャラクタ130(第3ユーザ)を支援するための仮想オブジェクトを仮想空間に射出することができる。
【0108】
図15は、スマートデバイス20aに対する操作に応じて、キャラクタ120aが弾オブジェクト122を射出する様子の一例を示す図である。
【0109】
例えば、スマートデバイス20aのディスプレイ22上にはタッチパネルが設けられる。スマートデバイス20aのタッチパネルに対するタッチ操作(例えば、タップ操作やスワイプ操作等)に応じて、キャラクタ120aから弾オブジェクト122が射出される。この弾オブジェクト122は、キャラクタ130(第3ユーザ)を支援するための仮想オブジェクトである。具体的には、弾オブジェクト122は、キャラクタ110(第1ユーザ)によって射出された弾オブジェクト112が、キャラクタ130に当たらないようにするためのオブジェクトである。例えば、弾オブジェクト122が弾オブジェクト112に当たった場合、弾オブジェクト112は消滅し、キャラクタ130への攻撃が無効になる。
【0110】
第2ユーザによる第3ユーザの支援は、別の方法により行われてもよい。例えば、第2ユーザの操作に応じて、キャラクタ110からの弾オブジェクト111を防御するための障害物オブジェクトが仮想空間内に配置されてもよい。障害物オブジェクトによってキャラクタ110からの弾オブジェクト111がキャラクタ130に当たらないようにしてもよい。また、例えば、第2ユーザの操作に応じて、キャラクタ120がキャラクタ130の体力値を回復させるための回復オブジェクトを仮想空間内に射出してもよい。キャラクタ120から射出された回復オブジェクトは、仮想空間内に配置される。キャラクタ130が、回復オブジェクトが配置された位置まで移動して回復オブジェクトを取得した場合、キャラクタ130の体力値が回復する。これにより、第2ユーザが第3ユーザを支援してもよい。また、第2ユーザの操作に応じて、キャラクタ120が弾オブジェクトを射出することでキャラクタ110を攻撃してもよい。キャラクタ120からの弾オブジェクトがキャラクタ110に当たった場合、キャラクタ110の体力値が減少したり、キャラクタ110によるキャラクタ130への攻撃が停止したりしてもよい。これにより、第2ユーザが第3ユーザを支援してもよい。
【0111】
このように、第2ユーザは、キャラクタ130(第3ユーザ)を支援することによって、第1ユーザと第3ユーザとの間で行われる戦闘ゲームに参加することができる。
【0112】
逆に、第2ユーザは、第3ユーザを支援するのではなく、第1ユーザを支援してもよい。例えば、キャラクタ120は、キャラクタ130を攻撃するためのオブジェクトを仮想空間内に射出してもよい。また、キャラクタ120は、キャラクタ110の体力を回復させるための回復オブジェクトを仮想空間内に配置してもよい。また、キャラクタ120は、キャラクタ130からキャラクタ110への攻撃を防御するための障害物オブジェクトを仮想空間内に配置してもよい。
【0113】
すなわち、キャラクタ120は、キャラクタ130(又はキャラクタ110)にとってゲーム上有利又は不利となる所定のオブジェクトを仮想空間内に配置してもよい。キャラクタ120は、所定のオブジェクトを用いてキャラクタ110に変化を与える。キャラクタ120は、第2ユーザの入力に応じて仮想空間又はキャラクタ110に影響を与えるキャラクタである。
【0114】
また、第2ユーザは、第1ユーザおよび第3ユーザと同等の立場でゲームに参加してもよい。すなわち、第1ユーザ、第2ユーザ、第3ユーザの各ユーザ(キャラクタ)がそれぞれ他のユーザ(キャラクタ)を攻撃し、他のユーザを倒すゲームが行われてもよい。
【0115】
あるいは、各キャラクタが戦闘するゲームに限らず、仮想空間内で各キャラクタが動作する他のゲームが行われてもよい。例えば、各ユーザのキャラクタが協力して冒険を行うゲームが行われてもよいし、各ユーザのキャラクタがレースを行うレースゲームが行われてもよい。
【0116】
図16は、第2HMD30のディスプレイ32に表示される画像の一例を示す図であって、仮想カメラ131が第1モードに設定されているときの画像の一例である。第2HMD30のディスプレイ32に表示される画像も、第1HMD10と同様に立体視画像である。
【0117】
上述のように、仮想カメラ131が第1モードに設定されている場合、仮想カメラ131は、現実空間におけるマーカ40を基準とした第2HMD30の位置に応じて配置される。例えば、第2HMD30がテーブルを俯瞰する位置(例えば図1に示す位置)に位置する場合、仮想カメラ131は、テーブル上の仮想空間を俯瞰する位置(例えば図7に示す130の位置)に配置される。この場合、図16に示されるように、第2HMD30のディスプレイ32には、テーブル上に形成された仮想空間の各仮想オブジェクト(キャラクタ130、キャラクタ110、仮想オブジェクト141~145)が表示される。また、テーブルから離れた位置に位置するキャラクタ120bが仮想カメラ131の視野内に含まれる場合、キャラクタ120bも表示される。第2HMD30の位置や姿勢が変化した場合には、それに応じて仮想カメラ131の位置や姿勢も変化する。
【0118】
なお、キャラクタ110が仮想空間内に弾オブジェクト112を射出した場合には、弾オブジェクト112が仮想空間内を移動する画像が表示される。また、キャラクタ120bやキャラクタ120aが仮想空間内に弾オブジェクト122を射出した場合には、弾オブジェクト122が仮想空間内を移動する画像が表示される。
【0119】
第2HMD30のディスプレイ32には、第2HMD30のカメラ33によって撮像された現実空間の画像に、仮想カメラ131に基づいて生成された仮想空間の画像が重畳して表示される。仮想カメラ131が第1モードに設定されている場合、第3ユーザには、現実空間のテーブル上に小さな仮想空間が形成されているように見える。すなわち、第1モードに設定されている場合、第3ユーザは、スマートデバイス20の第2ユーザと同様に、テーブル上に形成された小さな仮想空間を俯瞰するように見る。なお、第2HMD30のディスプレイ32には、現実空間の画像は表示されず、仮想カメラ131に基づいて生成された仮想空間の画像のみが表示されてもよい。
【0120】
第3ユーザは、コントローラ38を用いて、第1モードと第2モードとのうちの何れかに切り替えることが可能である。
【0121】
図17は、第2HMD30のディスプレイ32に表示される画像の一例を示す図であって、仮想カメラ131が第2モードに設定されているときの画像の一例である。
【0122】
図17に示されるように、第2HMD30のディスプレイ32には、キャラクタ130から仮想空間を見た画像が表示される。第2モードに設定されている場合、仮想カメラ131は、キャラクタ130の移動に応じて移動する。なお、図17では、仮想カメラ131がキャラクタ130の位置に配置される場合の画像が示されているが、仮想カメラ131が例えばキャラクタ130の後方の所定位置に設定される場合には、キャラクタ130の後方から仮想空間を見た画像が表示される。
【0123】
仮想カメラ131が第2モードに設定されている場合、第3ユーザには、目の前に仮想空間が広がっているように見え、第3ユーザは、地面オブジェクト141上に立っているような感覚を覚える。第3ユーザにとっては、例えば、数十メートル先に橋オブジェクト144が存在しているように見える。
【0124】
第3ユーザは、図16又は図17に示すような画像を見ながら、コントローラ38に対する操作を行い、キャラクタ130を仮想空間内で移動させる。例えば、第3ユーザは、コントローラ38のアナログスティックや十字キーに対する操作に応じて、キャラクタ130を移動させる。また、キャラクタ130がキャラクタ110の位置まで到達した場合、第3ユーザは、コントローラ38のボタンに対する操作に応じて、キャラクタ130にキャラクタ110を攻撃させる。
【0125】
第1ユーザ、第2ユーザ、及び第3ユーザの動作やコントローラに対する操作は、リアルタイムで仮想空間に反映される。例えば、第1ユーザ(第1HMD10)の向きが変化した場合には、その向きの変化に応じて仮想空間内でキャラクタ110の向きが変化する。また、第1ユーザがコントローラ18を振った場合、キャラクタ110が弾オブジェクト112を投げる動作を行う。仮想カメラ121や仮想カメラ131の撮像範囲内にキャラクタ110が含まれている場合、スマートデバイス20や第2HMD30には、キャラクタ110の向きが変化する様子やキャラクタ110が弾オブジェクト112を投げる様子が表示される。これにより、第2ユーザ又は第3ユーザは、第1ユーザの動作を把握することができる。
【0126】
同様に、第2ユーザ(スマートデバイス20)の向きや位置が変化した場合には、その変化に応じて仮想空間内でキャラクタ120の向きや位置が変化する。また、第2ユーザがスマートデバイス20に対して所定の操作を行った場合、キャラクタ120が弾オブジェクト122を投げる動作を行う。仮想カメラ111や仮想カメラ131の撮像範囲内にキャラクタ120が含まれている場合、第1HMD10や第2HMD30には、キャラクタ120の向きや位置が変化する様子や、キャラクタ120が弾オブジェクト122を投げる様子が表示される。これにより、第1ユーザ又は第3ユーザは、第2ユーザの動作を把握することができる。
【0127】
以上のように、本実施形態では、第1ユーザは、第1HMD10を装着し、第2ユーザは、スマートデバイス20を携帯する。第1HMD10の現実空間における位置に関わらず、仮想空間内にキャラクタ110が配置され、キャラクタ110の位置に対応する位置に仮想カメラ111が配置される。キャラクタ110の姿勢は、第1HMD10の姿勢に応じて変化し、キャラクタ110は、コントローラ18に対する操作に応じて動作する(例えば弾オブジェクト112を投げる)。また、現実空間におけるマーカ40に対するスマートデバイス20の位置に応じた仮想空間内の位置に、仮想カメラ121が配置され、現実空間におけるスマートデバイス20の姿勢に応じて、仮想カメラ121の姿勢が設定される。具体的には、仮想空間の位置を定義するためのXYZ座標系が、仮想空間のマーカ40を基準として設定されることで、現実空間と仮想空間とが対応付けられる。マーカ40を基準としたスマートデバイス20の位置が算出され、算出された位置にキャラクタ120及び仮想カメラ121が設定される。そして、仮想カメラ111に基づいて生成された仮想空間の画像が、第1HMD10のディスプレイ12に表示され、仮想カメラ121に基づいて生成された仮想空間の画像が、スマートデバイス20のディスプレイ22に表示される。
【0128】
これにより、第1ユーザは、仮想空間内のキャラクタ110の位置(又はキャラクタ110から所定距離離れた位置)から仮想空間を見ることになり、主観視点から仮想空間を見ることになる。このため、第1ユーザは、現実空間と同じスケール感で、仮想空間内に入り込んでゲームを行うことができる。また、仮想カメラ131が第2モードに設定されている場合には、第3ユーザも、キャラクタ130の視点(又はキャラクタ130から所定距離離れた位置)から仮想空間を見ることになる。これに対して、第2ユーザは、現実空間に対応付けられた仮想空間を、現実空間のマーカ40に対するスマートデバイス20の位置から見ることになる。第2ユーザは、現実空間に仮想空間内の仮想オブジェクトが存在するような感覚で、現実空間と仮想空間とを意識しながらゲームを行うことができ、テーブル上に形成された仮想空間を俯瞰しながらゲームを行うことができる。第2ユーザにとっては、仮想空間はテーブル上に小さなスケールで形成されているように感じる。このようにして、主観視点で仮想空間を見る第1ユーザと、俯瞰視点で仮想空間を見る第2ユーザとでゲームを行うことができる。各ユーザで異なる視点から仮想空間を見ることができるとともに、各ユーザで異なるスケール感で仮想空間を見ることができ、従来にはない新たなゲームを複数のユーザで行うことができる。
【0129】
また、本実施形態では、テーブル上にマーカ40を配置し、テーブル上に仮想空間が形成され、当該仮想空間内でゲームが行われる。第1ユーザは、テーブル上に形成された仮想空間に入り込んでゲームを行う一方で、第2ユーザは、テーブル上に形成された小さな仮想空間を俯瞰しながらゲームを行うことができる。これにより、従来にはない新たなゲームを複数のユーザで行うことができる。
【0130】
また、本実施形態では、第1ユーザ~第3ユーザは、自身のデバイスのディスプレイを見ることで他のユーザに対応するキャラクタの動きを見ることができ、他のユーザの動きを認識することができる。例えば、第1ユーザは、第1HMD10のディスプレイ12に表示されたキャラクタ120の動きを見ることで、第2ユーザの動きを認識することができる。現実空間におけるスマートデバイス20の位置と連動して仮想空間内でキャラクタ120の位置が設定されるため、第1ユーザは、仮想空間内でキャラクタ120を見ることで現実空間における第2ユーザの位置を把握することができる。また、第2ユーザは、キャラクタ110の姿勢の変化やキャラクタ110が弾オブジェクト112を投げる動作を、自身のスマートデバイス20のディスプレイを見ることで、第1ユーザの動きを認識することができる。
【0131】
基本的には、ユーザがHMDを装着している場合には、他のユーザは、HMDを装着しているユーザがどのような映像を見ているのか、仮想空間で何をしているのかを把握することはできない。しかしながら本実施形態のシステムでは、第2ユーザは、スマートデバイス20を介して仮想空間の様子と、現実空間における第1ユーザとを見ることができるため、第1ユーザがどのような映像を見ているのか、仮想空間で何をしているのかを把握することができる。すなわち、第2ユーザは、スマートデバイス20を見ることで仮想空間内でのキャラクタ110(第1ユーザ)の動きを視認することができるとともに、現実空間に目を向けることで第1ユーザの動きを見ることができる。これにより、第2ユーザは、HMDを装着したユーザがいる仮想空間に入り込んで仮想空間を見ることができる。
【0132】
ここで、据置型のディスプレイ50には、仮想カメラ150から仮想空間を見た画像が表示される。また、HMDを装着しているユーザが見ている画像を、据置型のディスプレイ50に表示してもよい。第4ユーザは、ディスプレイ50に表示された画像を見て、HMDを装着したユーザがいる仮想空間の様子を把握することができる。第2ユーザも、スマートデバイス20を介してHMDを装着したユーザがいる仮想空間の様子を把握することができるが、第2ユーザは、単に仮想空間内を見るだけにとどまらず、AR技術を用いて従来にはない新たな体験をすることができる。すなわち、現実空間に対応して仮想空間が形成されるため、第2ユーザは、現実空間内で移動したり向きを変えたりすることで、現実空間における第2ユーザの視点と同じ視点から仮想空間を覗き見ることができる。これにより、第2ユーザは、第1ユーザが入り込んでいる仮想空間を、現実空間を見るように見ることができる。
【0133】
なお、第1ユーザは通常マット51から離れないようにゲームを行うものとするが、第1ユーザがマット51を基準とした所定範囲から出た場合、又は、第1ユーザが所定距離以上移動した場合には、第1ユーザに対して報知が行われる。例えば、第1HMD10のディスプレイ12上で画像や文字による表示が行われてもよいし、音声により報知が行われてもよいし、振動による報知が行われてもよい。また、第1ユーザが所定範囲から出た場合、又は、第1ユーザが所定距離以上移動した場合には、第2ユーザに対しても報知が行われる。例えば、スマートデバイス20のディスプレイ22上で画像や文字による表示が行われてもよいし、音声により報知が行われてもよいし、振動による報知が行われてもよい。同様に、第3ユーザ及び第4ユーザに対しても報知が行われてもよい。また、第2ユーザが所定範囲内に入ったり所定範囲に近づいたりした場合、第1ユーザ及び第2ユーザに対して画像や文字、音声、振動等を用いて報知が行われる。
【0134】
例えば、画像処理システム1は、図9で示した方法により第1HMD10の位置を検出する。画像処理システム1は、第1HMD10の位置に基づいて、第1ユーザが所定範囲から出たか否か、又は、第1ユーザが所定距離以上移動したか否かを判定する。あるいは、スマートデバイス20や第2HMD30のカメラ、その他現実空間に配置されたカメラで第1ユーザを撮像し、撮像された画像に基づいて、第1ユーザが所定範囲から出たか否か、又は、第1ユーザが所定距離以上移動したか否かが判定されてもよい。また、第1HMD10のカメラで第1ユーザの周辺を撮像し、撮像された画像に基づいて、第1ユーザが所定範囲から出たか否か、又は、第1ユーザが所定距離以上移動したか否かが判定されてもよい。また、第1HMD10、スマートデバイス20、第2HMD30、その他のカメラで撮像された画像に基づいて、第2ユーザが所定範囲内に入ったか否か、所定範囲に近づいたか否かが判定されてもよい。
【0135】
なお、スマートデバイス20のディスプレイ22に、上記所定範囲を示す画像が表示されてもよい。すなわち、スマートデバイス20のカメラ23が上記マット51を基準とした所定範囲を撮像した場合、当該所定範囲に、所定範囲を示す範囲画像を重畳して表示してもよい。
【0136】
また、第3ユーザにも所定範囲が設定されてもよい。第3ユーザが所定範囲から出た場合、又は、第3ユーザが所定距離以上移動した場合に、第3ユーザ、第2ユーザ、及び第1ユーザに対して報知が行われてもよい。この場合、第2HMD30のカメラ33でマーカ40を撮像し、現実空間のマーカ40に対する第2HMD30の位置に応じて仮想カメラ131が配置されてもよい。すなわち、第3ユーザも第2ユーザと同様にARを体験する。第3ユーザが所定範囲から出た場合、又は、第3ユーザが所定距離以上移動した場合、第3ユーザに対して報知(ディスプレイ32やスピーカ、振動モータ等を用いた報知)が行われるとともに、第2ユーザに対しても報知(ディスプレイ22やスピーカ、振動モータ等を用いた報知)が行われてもよい。
【0137】
(仮想空間の作成)
本実施形態では、上述したゲームを行うゲームモードの他に、上記ゲームを行うための仮想空間をユーザ自身が作成する作成モードがある。以下では、作成モードにおいて、ユーザが仮想空間を作成することについて説明する。図18は、作成モードにおけるユーザが見る画像の一例を示す図である。
【0138】
仮想空間の作成モードでは、ユーザは、例えば第1HMD10を装着し、第1HMD10のディスプレイ12を見ながら、コントローラ18を用いて仮想空間内に仮想オブジェクトを配置していく。テーブル上にマーカ40が配置され、第1HMD10のカメラ13でテーブル上のマーカ40を撮像することで、第1HMD10のディスプレイ12に図18に示すような画像が表示される。
【0139】
作成モードでは、現実空間におけるマーカ40に対する第1HMD10の位置に応じた仮想空間の位置に、仮想カメラが配置される。ユーザは、当該仮想カメラから見た画像を見ながら仮想空間を作成する。
【0140】
具体的には、第1HMD10のディスプレイ12には、ユーザの左手を模した左手オブジェクト160Lと、ユーザの右手を模した右手オブジェクト160Rとが表示される。左手オブジェクト160L及び右手オブジェクト160Rは、仮想オブジェクトである。第1HMD10の赤外線カメラ14によって撮像された画像に基づいて、ユーザの手の検出が行われる。ユーザの手の検出は、既知の画像認識技術を用いて行われる。ユーザの左手及び右手が検出された場合、検出された左手及び右手の位置に、左手オブジェクト160L及び右手オブジェクト160Rが配置される。
【0141】
なお、第1HMD10のカメラ13からの画像に基づいて、ユーザの手が検出されてもよい。また、第1HMD10が備えるカメラとは別のカメラ又は赤外線カメラでユーザの手を撮像し、検出してもよい。
【0142】
ユーザが、例えば左手の手のひらを第1HMD10に向けた場合、左手オブジェクト160Lに重畳して、又は、左手オブジェクト160Lの近傍に、UIオブジェクト170が表示される。UIオブジェクト170は、仮想空間を作成するためのユーザインターフェイスであり、仮想空間に配置するための複数のパーツオブジェクトを含む。例えば、UIオブジェクト170は、表面が草で覆われた地面オブジェクト141を形成するためのパーツオブジェクト171と、川オブジェクト143を形成するためのパーツオブジェクト172と、ブロックを形成するためのパーツオブジェクト173とを含む。UIオブジェクト170は、これらの他にも仮想空間の地形を形成するための複数のパーツオブジェクトを含んでもよい。
【0143】
各パーツオブジェクトは、例えば立方体により形成されており、複数のパーツオブジェクトがグリッド状に配置されることで、仮想空間の地形が形成される。例えば、草で覆われた地面オブジェクト141は、複数のパーツオブジェクト171がグリッド状に配置されることで形成される。例えば、パーツオブジェクト171の上面には緑色のテクスチャ画像が張り付けられており、このパーツオブジェクト171が平面的に複数並べられることで、上面が草で覆われた地面オブジェクト141が形成される。
【0144】
また、右手オブジェクト160Rには、コントローラ18を模したコントローラオブジェクト161が表示される。現実空間において右手でコントローラ18を把持するように、右手オブジェクト160Rがコントローラオブジェクト161を把持するような画像が表示される。例えば、第1HMD10のカメラ13によって撮像された画像に基づいて、コントローラ18の検出が行われ、コントローラ18が検出された場合に、コントローラオブジェクト161が表示されてもよい。あるいは、コントローラ18の検出は行わず、ユーザの右手が検出された場合に、右手オブジェクト160Rとともにコントローラオブジェクト161が表示されてもよい。
【0145】
コントローラオブジェクト161は、コントローラ18と実質的に外観が同じ仮想オブジェクトであり、コントローラ18と同様に複数のボタンを模した部分を有する。また、コントローラオブジェクト161は、アナログスティックや十字キーを模した部分を有する。
【0146】
コントローラオブジェクト161の所定位置には、UIオブジェクト170内のパーツオブジェクトを指示するための指示オブジェクト162が設けられる。指示オブジェクト162は、コントローラオブジェクト161の所定位置から突出したオブジェクトであり、その先端をパーツオブジェクトに近づけると、パーツオブジェクトを指示することができる。
【0147】
例えば、ユーザが、第1HMD10のディスプレイ12を見ながら、指示オブジェクト162の先端をパーツオブジェクト173に近づけた場合、パーツオブジェクト173が指示される。この状態で、ユーザが、例えばコントローラ18の所定のボタンを押下すると、パーツオブジェクト173が選択された状態(パーツオブジェクト173を掴んだ状態)になる。図18に示すように、選択されたパーツオブジェクトは、選択されていない他のオブジェクトとは異なる表示態様で表示される。また、選択されたパーツオブジェクトを示す文字(図18では「ブロック」の文字)が、UIオブジェクト170に表示される。パーツオブジェクト173が選択された状態でユーザが右手をテーブル上に移動させ、ユーザが所定の操作(例えばボタンから指を離す操作)を行うと、パーツオブジェクト173がテーブル上(XZ平面上)に配置される。ユーザは、パーツオブジェクトを1つずつ掴んでテーブル上に置くようにして、コントローラ18を用いて複数のパーツオブジェクトを仮想空間内に配置することで、キャラクタが配置される仮想空間内の地形を形成することができる。
【0148】
パーツオブジェクトが選択されたか否かは、ユーザの右手の指の動きに基づいて判定されてもよい。例えば、ユーザが指を曲げたか否かを判定し、ユーザが指を曲げた場合に、指示されたパーツオブジェクトが選択されてもよい。
【0149】
このように、ユーザの右手が検出された場合、コントローラオブジェクト161が右手オブジェクト160Rの中に表示される。また、コントローラオブジェクト161の所定位置に指示オブジェクト162が表示される。ユーザが把持するコントローラ18と実質的に外観が同じコントローラオブジェクト161を仮想空間に配置することによって、第1HMD10を装着したユーザは、実際に把持しているコントローラ18と同様の映像を見ることができ、仮想空間内でパーツオブジェクトを配置し易くなる。また、現実空間には存在しない指示オブジェクト162が仮想空間内では表示されるため、第1HMD10を装着したユーザは、指示オブジェクト162を用いて位置を指示し易くなり、容易にパーツオブジェクトの選択、配置を行うことができる。
【0150】
なお、ユーザがパーツオブジェクトを選択して配置する場合に、選択したパーツオブジェクトが仮想空間内に複数配置されてもよい。例えば、1つのパーツオブジェクトを選択した状態でユーザが右手をテーブルの面に平行に移動させた場合、選択されたパーツオブジェクトが平面的に複数並べられてもよい。
【0151】
図19は、複数のパーツオブジェクト173が平面状に並べられる様子を示す図である。図19に示されるように、例えばユーザがパーツオブジェクト173を選択した状態で右手をテーブルとほぼ平行に半円を描くように動かした場合、右手の軌跡によって囲まれる領域にパーツオブジェクト173が平面状に並べられてもよい。さらに、同様の動作をユーザが行った場合に、平面的に並べられた複数のパーツオブジェクト173の上に、さらに平面的に複数のパーツオブジェクト173が配置されてもよい。
【0152】
また、ユーザがパーツオブジェクトを配置し易くするために、仮想空間内にグリッドが表示されてもよい。図20は、各パーツオブジェクトが配置されるグリッドを表示するためのグリッド線の一例を示す図である。図20に示されるように、仮想空間の作成の際には、グリッド線175が表示されてもよい。グリッド線175は、X軸に平行な線と、Y軸に平行な線と、Z軸に平行な線とを含む。グリッド線175によって囲まれた領域に、1つのパーツオブジェクトが配置されることになる。例えば、パーツオブジェクト171が選択された状態で、指示オブジェクト162の先端がグリッド線175によって囲まれる1つの領域内に入った場合、その領域にパーツオブジェクト171が配置される。なお、パーツオブジェクトは、下方に他のオブジェクトがなく、浮いた状態で(XZ平面から離れた位置に)配置されてもよい。
【0153】
このようにグリッド毎にパーツオブジェクト171が配置されることで、ユーザが正確にパーツオブジェクトの位置を指定しなくても、パーツオブジェクトを仮想空間内で容易に並べることができる。
【0154】
(実在物の配置)
本実施形態の画像処理システム1では、現実空間の実在物を認識し、実在物に対応する仮想オブジェクトを仮想空間に配置することができる。図21は、現実空間に実在物としての缶80がテーブル上に配置される様子を示す図である。図22は、缶80に対応する仮想オブジェクト180が仮想空間内に配置される様子を示す図である。
【0155】
例えば、スマートデバイス20のカメラ13から缶80とマーカ40とを含む画像が取得された場合、スマートデバイス20は、当該画像に基づいて、缶80を検出する。スマートデバイス20は、予め複数の実在物を学習しており、カメラ13から取得された画像に基づいて、実在物を認識することができる。例えば、スマートデバイス20aが、取得された画像から缶80を認識した場合、現実空間における缶80の位置に応じた仮想空間の位置に、缶オブジェクト180を配置する。缶オブジェクト180が配置されたこと、及び、その位置や姿勢に関する情報は、情報処理装置60に送信され、情報処理装置60に記憶される。これにより、仮想空間内に缶オブジェクト180が配置されたこと、その位置及び姿勢が、画像処理システム1の各デバイスに共有される。
【0156】
仮想空間に缶オブジェクト180が配置された後、各仮想カメラに基づいて、缶オブジェクト180を含む仮想空間の画像が取得される。例えば、第1HMD10のディスプレイ12には、缶オブジェクト180を含む仮想空間の画像が表示される。また、第2HMD30のディスプレイ32にも、缶オブジェクト180を含む仮想空間の画像が表示される。
【0157】
また、スマートデバイス20のディスプレイ22にも、現実空間の画像に重畳して、缶オブジェクト180を含む画像が表示される。具体的には、スマートデバイス20のカメラ23が缶80を含む画像を撮像し、缶オブジェクト180が仮想空間内に配置された場合、スマートデバイス20のディスプレイ22には、缶80の画像に重畳して、缶オブジェクト180の画像が表示される。このため、第2ユーザは、スマートデバイス20のディスプレイ22を介して、実在物としての缶80の画像ではなく、仮想オブジェクトとしての缶オブジェクト180の画像を視認する。
【0158】
なお、スマートデバイス20のディスプレイ22には、缶オブジェクト180の画像ではなく、カメラ23が撮像した実在物としての缶80の画像が表示されてもよい。この場合、缶80の画像については、カメラ23が撮像した現実空間の画像に、仮想空間の画像が重畳されず、缶80の画像とは異なる他の部分(例えば、地面オブジェクト141やキャラクタの領域部分)については、カメラ23が撮像した現実空間の画像に、仮想空間の画像が重畳される。
【0159】
例えば、スマートデバイス20aが現実空間の缶80を検出し、仮想空間内に缶オブジェクト180が配置された後、スマートデバイス20aの位置や向きが変更されたことによってカメラ23の撮像範囲から缶80が外れた場合、缶オブジェクト180はその位置に配置されたままとなる。すなわち、仮想空間内に缶オブジェクト180が配置された後、缶80が移動されずに、スマートデバイス20aによって缶80が検出されなくなっても、缶オブジェクト180は仮想空間に存在し続ける。
【0160】
具体的には、スマートデバイス20aが缶80を検出し、仮想空間内に缶オブジェクト180を配置した場合、その後も、缶80の検出を継続して行う。缶80の位置及び姿勢に関する情報は、リアルタイムで情報処理装置60に送信される。缶80が移動されずに、スマートデバイス20aの位置や向きが変化された場合、スマートデバイス20aのカメラ23によって撮像される画像における缶80の位置は変化するが、マーカ40を基準とした缶80の位置は変化しない。このため、缶オブジェクト180の位置は変化しない。スマートデバイス20aの位置や向きの変化によってカメラ23の撮像範囲から缶80が外れた場合でも、缶80の位置の変化が検出されなければ、缶オブジェクト180の位置は変化しない。
【0161】
なお、スマートデバイス20aのカメラ23の撮像範囲から缶80が外れても、スマートデバイス20bのカメラ23の撮像範囲に缶80が含まれる場合には、スマートデバイス20bが、缶80の検出を継続して行う。あるいは、第2HMD30のカメラ33で画像を撮像し、缶80の検出が行われてもよい。このように、例えばスマートデバイス20aによって缶80が検出されて缶オブジェクト180が配置された後、スマートデバイス20a以外の他のデバイスによっても、缶80の位置が追跡される。
【0162】
一方、仮想空間内に缶オブジェクト180が配置された後、缶80が移動されてテーブルから除去された場合には、スマートデバイス20によって缶80が検出されなくなり、缶オブジェクト180は仮想空間から消去される。
【0163】
具体的には、缶80が移動する場合、スマートデバイス20a又は20bによって缶80の検出が継続して行われ、缶オブジェクト180の位置が更新される。あるいは、第2HMD30のカメラ33で画像を撮像し、缶80の検出が行われてもよい。缶80が移動する場合には、缶80がテーブル上から除かれるまで缶オブジェクト180の位置の更新が継続して行われ、缶オブジェクト180の位置が所定範囲を超えた場合(例えばテーブルの外に移動した場合)、仮想空間から缶オブジェクト180が消去される。
【0164】
また、仮想空間の所定位置に缶オブジェクト180が配置された後、スマートデバイス20の位置や向きが変化することによってカメラ23の撮像範囲から缶80が外れた場合、缶オブジェクト180は所定位置に存続する。しかしながら、スマートデバイス20の位置や向きが戻ることによって、再びカメラ23の撮像範囲内に上記所定位置に応じた現実空間の位置(撮像範囲から外れる前に缶80が存在していた位置)が入ったときに、スマートデバイス20が缶80を検出しなかった場合、缶オブジェクト180は仮想空間から消去される。
【0165】
また、仮想空間の第1位置に缶オブジェクト180が配置された後、スマートデバイス20の位置や向きが変化することによってカメラ23の撮像範囲が変化し、カメラ23の撮像範囲から缶80が外れた場合において、変化したカメラ23の撮像範囲内に缶80が検出された場合には、新たに検出された缶80の位置に応じた仮想空間の第2位置に、缶オブジェクト180を配置するとともに、第1位置の缶オブジェクト180を消去してもよい。言い換えると、この場合、缶オブジェクト180を第1位置から第2位置に瞬間的に移動させてもよい。
【0166】
また、例えば、仮想空間の第1位置に缶オブジェクト180が配置された後、スマートデバイス20の位置や向きが変化することによってカメラ23の撮像範囲が変化し、カメラ23の撮像範囲から缶80が外れた場合において、変化したカメラ23の撮像範囲内に缶80が検出された場合には、新たに検出された缶80の位置に応じた仮想空間の第2位置に、新たな缶オブジェクト180を配置するとともに、第1位置にも缶オブジェクト180を存続させてもよい。この場合、1つの缶80を検出させて1つ目の缶オブジェクト180を仮想空間に配置した後、同じ缶80を別の場所で検出させて、2つ目の缶オブジェクト180を仮想空間に配置することができる。
【0167】
また、仮想空間に配置される缶オブジェクト180の数に関する条件が設定され、条件に応じて、変化したカメラ23の撮像範囲内に缶80が検出された場合に、上記第1位置の缶オブジェクト180を消去するか、上記第1位置にも缶オブジェクト180を存続させるかを制御してもよい。例えば、仮想空間に配置される缶オブジェクト180の数が1つに設定されているか、あるいは複数に設定されているかを判定し、判定結果に応じた制御が行われてもよい。例えば、仮想空間に配置される缶オブジェクト180の数が1つに設定(制限)されている場合には、缶オブジェクト180が仮想空間の第1位置に配置された後、カメラ23の撮像範囲から缶80が外れた場合において、変化したカメラ23の撮像範囲内に缶80が検出された場合に、検出された缶80の位置に応じた仮想空間の第2位置に缶オブジェクト180を配置するとともに、第1位置の缶オブジェクト180を消去してもよい。また、仮想空間に配置される缶オブジェクト180の数が複数に設定(許容)されている場合には、缶オブジェクト180が仮想空間の第1位置に配置された後、カメラ23の撮像範囲から缶80が外れた場合において、変化したカメラ23の撮像範囲内に缶80が検出された場合に、検出された缶80の位置に応じた仮想空間の第2位置に缶オブジェクト180を配置するとともに、第1位置にも缶オブジェクト180を存続させてもよい。
【0168】
また、缶80が認識されて缶オブジェクト180が仮想空間に配置された後、缶80がテーブルの外に除去されても、缶オブジェクト180が仮想空間に存続してもよい。すなわち、缶オブジェクト180が仮想空間に配置された後、カメラで缶80がテーブルの外に除去されることが追跡可能な状況であっても、缶オブジェクト180を仮想空間に存続させてもよい。これにより、例えば、第1の特定物体をテーブル上に配置した後、第1の特定物体を除去して第2の特定物体をテーブル上に配置することで、第1の特定物体に対応する第1の仮想オブジェクトと、第2の特定物体に対応する第2の仮想オブジェクトとを仮想空間に配置することができる。
【0169】
仮想空間に配置された缶オブジェクト180を用いてゲームの制御が行われる。例えば、缶オブジェクト180はキャラクタ110から攻撃を防御するために用いられてもよく、キャラクタ110からの弾オブジェクト112が缶オブジェクト180に当たった場合、弾オブジェクト112が消去されてもよい。また、缶オブジェクト180を用いて、仮想空間に別の変化が加えられてもよい。例えば、ユーザが缶オブジェクト180に対して所定の操作を行った場合、缶オブジェクト180から液体が噴き出す様子が表示されてもよい。
【0170】
このように、本実施形態の画像処理システム1では、現実空間における特定の物体に対応する仮想オブジェクトを仮想空間内に登場させることができ、第1ユーザに現実空間と仮想空間とが混在するような感覚を与えることができる。
【0171】
なお、上記ではスマートデバイス20のカメラ23で特定の物体を撮像する例について説明したが、カメラ23とは異なる別のカメラ(例えば現実空間の所定位置に配置されたカメラ、第2HMD30又は第1HMD10のカメラ)で特定の物体を撮像してもよい。そして、情報処理装置60又はスマートデバイス20が、当該カメラからの画像に基づいて、特定の物体の検出を行い、特定の物体を検出した場合、仮想空間に特定の物体に対応する仮想オブジェクトを配置してもよい。
【0172】
(各デバイスに記憶されるデータ)
次に、各デバイスにおいて記憶されるデータについて説明する。図23は、各スマートデバイス20において記憶されるデータD20の一例を示す図である。
【0173】
図23に示されるように、スマートデバイス20には、後述するスマートデバイス処理を行うためのプログラムが記憶される。また、スマートデバイス20には、カメラ23から取得された画像データと、慣性センサ24からの角速度データ及び加速度データとが記憶される。また、スマートデバイス20には、画像データに基づいて算出されたマーカ40に対するスマートデバイス20の位置を示す位置データが記憶される。また、スマートデバイス20には、角速度データ及び加速度データに基づいて算出されたスマートデバイス20の姿勢情報を示す姿勢データが記憶される。
【0174】
また、スマートデバイス20には、自機のユーザに対応するキャラクタ120に関するキャラクタ120データと、仮想カメラ121の位置及び姿勢を示す仮想カメラ121データとが記憶される。キャラクタ120データは、キャラクタ120の仮想空間における位置及び姿勢を示すデータと、キャラクタ120の形状を示すデータと、キャラクタ120が有する仮想オブジェクト(例えば弾オブジェクト122)に関するデータとを含む。
【0175】
また、スマートデバイス20には、他キャラクタデータと、地形オブジェクトデータと、射出オブジェクトデータと、検出オブジェクトデータとが記憶される。
【0176】
他キャラクタデータは、自機以外の他のデバイスのユーザに対応する各キャラクタに関するデータである。他キャラクタデータは、情報処理装置60から取得される。例えば、スマートデバイス20aには、他キャラクタデータとして、キャラクタ110、キャラクタ120b、キャラクタ130に関するデータが記憶される。他キャラクタデータは、各キャラクタの位置及び姿勢を示すデータと、各キャラクタの形状に関するデータとを含む。
【0177】
地形オブジェクトデータは、仮想空間を形成する地形に関するオブジェクト(141~145)のデータであり、複数のパーツオブジェクトとその配置に関する情報を含む。地形オブジェクトデータは、情報処理装置60から取得される。地形オブジェクトデータとして、予めゲーム制作者によって作成されて画像処理システム1に記憶されたデータと、上述のようにユーザによって作成されて画像処理システム1に記憶されたデータとがある。
【0178】
射出オブジェクトデータは、仮想空間に射出された弾オブジェクトに関するデータであり、弾オブジェクトの位置、移動速度や移動方向に関するデータを含む。射出オブジェクトデータは、自機のキャラクタ120から射出された弾オブジェクト122に関するデータと、情報処理装置60から取得された、他のデバイスに対応するキャラクタから射出された弾オブジェクトに関するデータとを含む。
【0179】
検出オブジェクトデータは、予め定められた特定の物体(例えば缶80)が検出された場合に仮想空間に配置される仮想オブジェクト(例えば缶オブジェクト180)に関するデータである。検出オブジェクトデータは、仮想オブジェクトの形状に関するデータや、位置及び姿勢に関するデータを含む。
【0180】
図24は、第1HMD10において記憶されるデータD10の一例を示す図である。図25は、第2HMD30において記憶されるデータD30の一例を示す図である。
【0181】
図24に示されるように、第1HMD10には、後述するHMD処理を行うためのプログラムと、慣性センサ15からの角速度データ及び加速度データと、角速度データ及び加速度データから算出された第1HMD10の姿勢情報に関する姿勢データとが記憶される。
【0182】
また、第2HMD30には、HMD処理を行うためのプログラムと、慣性センサ35からの角速度データ及び加速度データと、角速度データ及び加速度データから算出された第2HMD30の姿勢情報に関する姿勢データと、カメラ33からの画像データとが記憶される。
【0183】
図26は、情報処理装置60において記憶されるデータD60の一例を示す図である。
【0184】
図26に示されるように、情報処理装置60には、後述するゲーム制御処理を行うためのプログラムと、HMDデータと、スマートデバイスデータと、コントローラデータと、キャラクタデータと、仮想カメラデータとが記憶される。また、情報処理装置60には、上記地形オブジェクトデータと、射出オブジェクトデータと、検出オブジェクトデータとが記憶される。
【0185】
HMDデータは、第1HMD10及び第2HMD30に関するデータである。具体的には、HMDデータは、第1HMD10から取得した姿勢データを含む。また、HMDデータは、第2HMD30からの画像データに基づいて算出された第2HMD30の位置データと、第2HMD30から取得した姿勢データとを含む。
【0186】
スマートデバイスデータは、各スマートデバイス20から取得した各スマートデバイス20の位置及び姿勢を示すデータと、各スマートデバイス20において行われた操作に関するデータとを含む。
【0187】
コントローラデータは、各コントローラ(18、38)に関するデータである。コントローラデータは、各コントローラのボタン、スティック、十字キー等において行われた操作に関するデータを含む。また、コントローラデータは、各コントローラの姿勢や動きに関するデータを含む。
【0188】
キャラクタデータは、各キャラクタ(110、120、130)に関するデータであり、各キャラクタの位置や姿勢に関するデータを含む。また、仮想カメラデータは、各仮想カメラ(111、121、131、150)に関するデータであり、各仮想カメラの位置や姿勢に関するデータを含む。
【0189】
(HMDにおける処理の詳細)
次に、各デバイスにおいて行われる処理の詳細について具体的に説明する。図27は、第1HMD10又は第2HMD30において実行されるHMD処理の一例を示すフローチャートである。図27に示す処理は、画像処理システム1においてゲームの開始が指示されたことに応じて開始される。なお、以下では、第1HMD10(のプロセッサ11)が図27に示す処理を実行するものとして説明するが、第2HMD30においても同様の処理が行われる。
【0190】
図27に示されるように、第1HMD10は、初期処理を行う(ステップS100)。初期処理においては、第1HMD10の姿勢が初期化される。第1HMD10は、初期処理を行った後、ステップS101~ステップS105を所定の時間間隔(例えば、1/60秒間隔)で繰り返し実行する。
【0191】
次に、第1HMD10は、慣性センサ15によって検出された角速度データ及び加速度データを取得する(ステップS101)。第1HMD10は、取得した角速度データ及び加速度データに基づいて、第1HMD10の姿勢情報を算出する(ステップS102)。具体的には、第1HMD10は、初期処理を行った時点からの姿勢の変化を算出する。次に、第1HMD10は、算出した姿勢情報を情報処理装置60に送信する(ステップS103)。
【0192】
次に、第1HMD10は、左目用ディスプレイ12Lに表示される左目用仮想空間画像と、右目用ディスプレイ12Rに表示される右目用仮想空間画像とを情報処理装置60から取得する(ステップS104)。そして、第1HMD10は、取得した左目用仮想空間画像および右目用仮想空間画像を、左目用ディスプレイ12Lおよび右目用ディスプレイ12Rにそれぞれ表示する(ステップS105)。
【0193】
なお、第2HMD30においては、上記処理に加えて、カメラ33によって撮像された画像を取得する処理、及び、取得した画像を情報処理装置60に送信するための処理が行われる。
【0194】
(スマートデバイスにおける処理の詳細)
次に、スマートデバイス20において実行される処理について説明する。図28は、スマートデバイス20において実行されるスマートデバイス処理の一例を示すフローチャートである。図28に示す処理は、スマートデバイス20のプロセッサ21によって行われる。なお、図28に示す処理が開始される前に、ユーザによってゲームの開始の指示が行われ、情報処理装置60から必要なデータ(例えば、地形オブジェクトデータや他キャラクタデータ)が取得されているものとする。
【0195】
図28に示されるように、スマートデバイス20は、カメラ23からの画像を取得し(ステップS201)、慣性センサ24からの角速度データ及び加速度データを取得する(ステップS202)。
【0196】
次に、スマートデバイス20は、マーカ検出処理を行う(ステップS203)。具体的には、スマートデバイス20は、ステップS201で取得した画像の中からマーカ40を検出する。スマートデバイス20は、マーカ40を検出しない場合には、ステップS201~ステップS203の処理を繰り返し実行する。
【0197】
マーカ40を検出した場合、スマートデバイス20は、位置算出処理を行う(ステップS204)。具体的には、スマートデバイス20は、検出されたマーカ40を基準としてXYZ座標系を設定するとともに、マーカ40に対するスマートデバイス20の位置(XYZ座標値)を算出する。具体的には、スマートデバイス20は、マーカ40の画像の大きさ、矢印の向き等に基づいて、マーカ40からのスマートデバイス20への距離、マーカ40からスマートデバイス20への方向を算出し、マーカ40を基準としたスマートデバイス20の相対位置を算出する。
【0198】
次に、スマートデバイス20は、姿勢算出処理を行う(ステップS205)。具体的には、スマートデバイス20は、ステップS202で取得した角速度データ及び加速度データに基づいて、スマートデバイス20の姿勢を算出する。なお、スマートデバイス20は、カメラ23からの画像(マーカ40の検出結果)に基づいて、姿勢を算出してもよい。また、スマートデバイス20は、カメラ23からの画像と、慣性センサ24からの角速度データ及び加速度データとに基づいて、姿勢を算出してもよい。
【0199】
次に、スマートデバイス20は、ステップS204で算出した位置と、ステップS205で算出した姿勢とに基づいて、キャラクタ120の位置及び姿勢を設定する(ステップS206)。また、スマートデバイス20は、ステップS204で算出した位置と、ステップS205で算出した姿勢とに基づいて、仮想カメラ121の位置及び姿勢を設定する。例えば、スマートデバイス20は、キャラクタ120及び仮想カメラ121の位置を、ステップS204で算出した位置と一致するように設定する。また、スマートデバイス20は、キャラクタ120及び仮想カメラ121の姿勢を、ステップS205で算出した姿勢と一致するように設定する。なお、仮想カメラ121の位置及び姿勢は、キャラクタ120の位置及び姿勢と必ずしも一致していなくてもよく、例えば、仮想カメラ121の位置はキャラクタ120の後方の所定位置に設定されてもよい。
【0200】
次に、スマートデバイス20は、操作部に対して所定の操作が行われたか否かを判定する(ステップS207)。例えば、スマートデバイス20は、タッチパネルにおいて弾オブジェクト122を射出するためのスワイプ操作が行われたか否かを判定する。
【0201】
所定の操作が行われた場合(ステップS207:YES)、スマートデバイス20は、仮想空間に弾オブジェクト122を射出する(ステップS208)。これにより、仮想空間内に弾オブジェクト122が射出され、弾オブジェクト122が移動する様子が表示される。
【0202】
ステップS208の処理を実行した場合、又は、ステップS207でNOと判定した場合、スマートデバイス20は、ステップS201で取得した画像の中から予め定められた特定の物体が検出されたか否かを判定する(ステップS209)。スマートデバイス20は、予め複数の特定の物体を学習しており、取得した画像の中から特定の物体があるか否かを判定する。
【0203】
特定の物体を検出した場合(ステップS209:YES)、スマートデバイス20は、検出した特定の物体に対応する仮想オブジェクトを仮想空間に配置する(ステップS210)。具体的には、スマートデバイス20は、マーカ40と特定の物体との位置関係から、特定の物体の位置を算出し、算出した位置と同じ仮想空間内の位置に、検出した特定の物体に対応する仮想オブジェクトを配置する。例えば、特定の物体として缶80が検出された場合、スマートデバイス20は缶オブジェクト180を仮想空間内に配置する。
【0204】
ステップS210の処理を実行した場合、又は、ステップS209でNOと判定した場合、スマートデバイス20は、情報処理装置60との間で情報の送受信を行う(ステップS211)。具体的には、スマートデバイス20は、ステップS204で算出した位置およびステップS205で算出した姿勢を情報処理装置60に送信する。また、スマートデバイス20は、ステップS206で設定したキャラクタ120及び仮想カメラ121の位置及び姿勢に関する情報を、情報処理装置60に送信する。また、スマートデバイス20は、ステップS208で弾オブジェクト122を仮想空間内に射出した場合、射出オブジェクトデータとして、弾オブジェクト122の射出方向、射出速度等に関するデータを情報処理装置60に送信する。また、スマートデバイス20は、ステップS210で特定の物体に対応する仮想オブジェクトを配置した場合、検出オブジェクトデータとして、配置した仮想オブジェクトに関するデータ(仮想オブジェクトの種類、位置及び姿勢)を情報処理装置60に送信する。
【0205】
また、スマートデバイス20は、ステップS211において、情報処理装置60から他キャラクタデータを受信する。具体的には、スマートデバイス20は、他キャラクタデータとして、第1HMD10に対応するキャラクタ110、他のスマートデバイス20に対応するキャラクタ120、第2HMD30に対応するキャラクタ130の位置及び姿勢に関する情報を受信する。これにより、スマートデバイス20は、自機に記憶した他キャラクタデータを更新する。また、スマートデバイス20は、他のデバイスに対する操作に応じて射出された射出オブジェクトに関する射出オブジェクトデータ、他のデバイスによって検出された特定の物体に対応する仮想オブジェクトに関する検出オブジェクトデータを情報処理装置60から受信する。
【0206】
ステップS212に続いて、スマートデバイス20は、その他のゲーム処理を行う(ステップS212)。ここでは、スマートデバイス20は、各キャラクタや射出オブジェクトの位置に応じてゲーム処理を行う。例えば、スマートデバイス20は、射出オブジェクト112がキャラクタ130に当たったか否かを判定し、当たった場合にはキャラクタ130の体力値を減少させる。
【0207】
次に、スマートデバイス20は、画像生成・表示処理を行う(ステップS213)。具体的には、スマートデバイス20は、まず、仮想カメラ121に基づいて仮想空間の画像を生成する。これにより、仮想カメラ121から仮想空間を見た画像が生成される。例えば、仮想カメラ121の撮像範囲内にキャラクタ110やキャラクタ130が含まれる場合、キャラクタ110やキャラクタ130を含む仮想空間の画像が生成される。また、スマートデバイス20は、ステップS201で取得した現実空間の画像に、生成した仮想空間の画像を重畳した重畳画像を生成する。そして、スマートデバイス20は、生成した重畳画像をディスプレイ22に表示させる。
【0208】
スマートデバイス20は、ステップS213の処理の後、ステップS201に処理を戻す。ステップS201~ステップS213の処理が所定の時間間隔(例えば1/60秒間隔)で繰り返し行われることにより、ゲームが進行する。
【0209】
(情報処理装置における処理の詳細)
図29は、情報処理装置60において実行されるゲーム制御処理の一例を示すフローチャートである。図29に示す処理は、情報処理装置60のプロセッサ61によって行われる。
【0210】
図29に示されるように、情報処理装置60は、まず、ゲームの開始が指示されたことに応じて初期処理を行う(ステップS600)。初期処理では、地形に関する各種オブジェクト(141~145)が仮想空間に配置されたり、キャラクタ110が丘オブジェクト145の頂上に配置されたり、キャラクタ130が初期位置に配置されたりする。また、各キャラクタに対応する仮想カメラが配置される。
【0211】
次に、情報処理装置60は、各デバイスから情報を取得する(ステップS601)。具体的には、情報処理装置60は、第1HMD10から送信された第1HMD10の姿勢情報を取得する。また、情報処理装置60は、第2HMD30から送信された第2HMD30の姿勢情報と、カメラ33によって撮像された画像とを取得する。また、情報処理装置60は、各スマートデバイス20において算出された位置情報及び姿勢情報を取得する。また、情報処理装置60は、スマートデバイス20において弾オブジェクト122が射出された場合(上記ステップS208が実行された場合)、スマートデバイス20から射出オブジェクトデータを受信する。また、情報処理装置60は、スマートデバイス20において特定の物体が検出され、特定の物体に対応する仮想オブジェクトが配置された場合(上記ステップS210が実行された場合)、スマートデバイス20から検出オブジェクトデータを取得する。
【0212】
また、情報処理装置60は、ステップS601において、コントローラ18、38に対する操作に応じた操作データを取得する。操作データには、ボタンが押下されたか否かを示すデータ、アナログスティックに対する操作に応じたデータ、十字キーに対する操作に応じたデータ、慣性センサからの角速度データ及び角速度データを含む。
【0213】
次に、情報処理装置60は、第2HMD30の位置情報を算出する(ステップS602)。具体的には、情報処理装置60は、ステップS601で取得した第2HMD30からの画像に基づいて、マーカ40を検出し、マーカ40の検出結果に基づいて、マーカ40に対する第2HMD30の位置を算出する。なお、情報処理装置60は、第2HMD30の位置情報に加えて、第2HMD30からの画像に基づいて、第2HMD30の姿勢情報を算出してもよい。
【0214】
次に、情報処理装置60は、各キャラクタの位置情報及び姿勢情報を更新する(ステップS603)。具体的には、情報処理装置60は、ステップS601で各スマートデバイス20から取得した位置情報及び姿勢情報に応じて、各スマートデバイス20に対応するキャラクタ120の位置情報及び姿勢情報を更新する。また、情報処理装置60は、ステップS601で第1HMD10から取得した姿勢情報に応じて、キャラクタ110の姿勢情報を更新する。また、情報処理装置60は、ステップS601でコントローラ38から取得した操作データに基づいて、キャラクタ130を仮想空間内で移動させ、キャラクタ130の位置情報を更新する。
【0215】
次に、情報処理装置60は、各仮想カメラの位置情報及び姿勢情報を更新する(ステップS604)。具体的には、情報処理装置60は、ステップS601で各スマートデバイス20から取得した位置情報及び姿勢情報に応じて、各仮想カメラ121の位置情報及び姿勢情報を更新する。例えば、情報処理装置60は、キャラクタ120の位置及び姿勢と一致するように、仮想カメラ121の位置及び姿勢を設定する。また、情報処理装置60は、ステップS601で第1HMD10から取得した姿勢情報に応じて、仮想カメラ111の姿勢情報を更新する。また、仮想カメラ131が第1モードに設定されている場合、情報処理装置60は、第2HMD30の位置情報及び姿勢情報に応じて、仮想カメラ131の位置情報及び姿勢情報を更新する。
【0216】
なお、仮想カメラ131が第2モードに設定されている場合には、仮想カメラ131の位置情報及び姿勢情報は、キャラクタ130の位置情報及び姿勢情報に応じて設定される。例えば、キャラクタ130の位置及び姿勢と一致するように、仮想カメラ131の位置及び姿勢が設定される。
【0217】
ステップS604に続いて、情報処理装置60は、操作データに基づいて各キャラクタを制御する(ステップS605)。例えば、情報処理装置60は、スマートデバイス20からの操作データに基づいて、キャラクタ120に弾オブジェクト122を射出させる。また、情報処理装置60は、コントローラ18からの操作データに基づいて、キャラクタ110に弾オブジェクト112を射出させる。また、情報処理装置60は、コントローラ38からの操作データに基づいて、キャラクタ130に所定の動作(例えば、キャラクタ110への攻撃)を行わせる。
【0218】
次に、情報処理装置60は、その他のゲーム処理を行う(ステップS606)。例えば、情報処理装置60は、弾オブジェクト112が移動中である場合、弾オブジェクト112を仮想空間内で移動させ、弾オブジェクト112がキャラクタ130に当たったか否かを判定する。弾オブジェクト112がキャラクタ130に当たった場合、情報処理装置60は、キャラクタ130の体力値を減少させる。また、情報処理装置60は、弾オブジェクト122がキャラクタ110に当たった場合、キャラクタ110の体力値を減少させる。
【0219】
次に、情報処理装置60は、送信処理を行う(ステップS607)。具体的には、情報処理装置60は、ステップS603、ステップS605、及び、ステップS606の処理の結果を、各スマートデバイス20に送信する。これにより、各キャラクタ(110、120、130)の位置情報及び姿勢情報が、各スマートデバイス20に送信される。また、キャラクタが弾オブジェクトを射出したこと、弾オブジェクトの射出方向や射出速度に関する情報が、各スマートデバイス20に送信される。
【0220】
ステップS607に続いて、情報処理装置60は、第1HMD10のディスプレイ12に画像を表示させるために第1画像生成・送信処理を行う(ステップS608)。具体的には、情報処理装置60は、左仮想カメラ111Lに基づいて左目用仮想空間画像を生成するとともに、右仮想カメラ111Rに基づいて右目用仮想空間画像を生成する。そして、情報処理装置60は、生成した左目用仮想空間画像および右目用仮想空間画像を第1HMD10に送信する。これにより、仮想カメラ111に基づく左目用仮想空間画像および右目用仮想空間画像が、第1HMD10の左目用ディスプレイ12Lおよび右目用ディスプレイ12Rにそれぞれ表示される。
【0221】
次に、情報処理装置60は、第2HMD30のディスプレイ32に画像を表示させるために第2画像生成・送信処理を行う(ステップS609)。具体的には、情報処理装置60は、左仮想カメラ131Lに基づいて左目用仮想空間画像を生成するとともに、右仮想カメラ131Rに基づいて右目用仮想空間画像を生成する。そして、情報処理装置60は、生成した左目用仮想空間画像および右目用仮想空間画像を第2HMD30に送信する。これにより、仮想カメラ131に基づく左目用仮想空間画像および右目用仮想空間画像が、第2HMD30の左目用ディスプレイ32Lおよび右目用ディスプレイ32Rにそれぞれ表示される。
【0222】
次に、情報処理装置60は、ディスプレイ50に画像を表示させるために第3画像生成・送信処理を行う(ステップS610)。具体的には、情報処理装置60は、仮想カメラ150に基づいて仮想空間画像を生成し、生成した画像をディスプレイ50に出力する。これにより、仮想カメラ150に基づく画像がディスプレイ50に表示される。
【0223】
以上のように、本実施形態では、第1HMD10の現実空間における位置に関わらず、仮想空間内にキャラクタ110が配置される。キャラクタ110の位置に対応する位置に仮想カメラ111が配置される(S600)。また、現実空間におけるマーカ40に対するスマートデバイス20の位置に応じた仮想空間内の位置に、仮想カメラ121が配置され、スマートデバイス20の姿勢に応じて仮想カメラ121の姿勢が設定される(S604)。また、マーカ40に対するスマートデバイス20の位置に応じた仮想空間内の位置に、キャラクタ120が設定される。そして、仮想カメラ111から見たキャラクタ120を含む仮想空間の画像が、第1HMD10のディスプレイ12に表示される。また、仮想カメラ121から見たキャラクタ110を含む仮想空間の画像が、スマートデバイス20のディスプレイ22に表示される。
【0224】
これにより、第1ユーザは、第1HMD10を用いてキャラクタ110の視点から仮想空間を視認しながらゲームを行うことができ、自身が仮想空間内に存在しているかのような体験をすることができる。また、第2ユーザは、スマートデバイス20を用いて同じ仮想空間を視認することができ、現実空間に仮想空間内の仮想オブジェクトが存在するような感覚を抱くことができる。
【0225】
(変形例)
以上、本実施形態の画像処理ついて説明したが、上記実施形態は単なる一例であり、例えば以下のような変形が加えられてもよい。
【0226】
例えば、上記実施形態では、第1ユーザは、頭部に第1HMD10を装着し、第1HMD10の左右のディスプレイ12に表示された画像を視認することとした。他の実施形態では、第1ユーザが視認するディスプレイ12は、ヘッドマウントディスプレイに限らず、手で把持する可搬型のディスプレイ(例えば、スマートフォン、タブレット端末、携帯型のゲーム装置、携帯型のパーソナルコンピュータ等)であってもよいし、据置型のディスプレイ(例えば、テレビや据置型のパーソナルコンピュータのディスプレイ)であってもよい。
【0227】
また、上記実施形態では、第2ユーザは、可搬型のスマートデバイス20を把持し、スマートデバイス20のディスプレイ22に表示された画像を視認することとした。このような携帯型の装置として、他の実施形態では、第2ユーザが視認する可搬型のディスプレイ22は、スマートフォンやゲーム装置のディスプレイであってもよいし、ヘッドマウントディスプレイであってもよいし、透過型のディスプレイを備えるメガネ型の装置であってもよい。
【0228】
また、上記実施形態では、キャラクタ110は、仮想空間の所定位置に固定され、第1HMD10の姿勢に応じて、キャラクタ110の向きが制御され、コントローラ18に対する振り操作に応じて、キャラクタ110に所定の動作(弾オブジェクト112を投げる動作)を行わせた。他の実施形態では、コントローラ18に対する操作(コントローラ18に対するキー入力(ボタン、アナログスティック、又は、十字キーに対する入力)、コントローラ18に対する振り操作等)に応じて、キャラクタ110の位置や姿勢が制御されてもよいし、キャラクタ110に所定の動作を行わせてもよい。また、第1HMD10に対する操作に応じて、キャラクタ110の位置が制御されてもよいし、キャラクタ110に所定の動作を行わせてもよい。すなわち、キャラクタ110は、第1HMD10及びコントローラ18を含む任意の入力装置(第1HMD10の慣性センサ、コントローラ18のキーや慣性センサ、第1HMD10及びコントローラ18とは異なる他の入力装置)に対する入力に応じて仮想空間内で制御されてもよい。ここでいう「キャラクタ110の制御」は、キャラクタ110の位置の変化、姿勢の変化、所定の動作等を含む。
【0229】
また、上記実施形態では、コントローラ38に対するキー入力に応じて、キャラクタ130の位置や向きを制御した。他の実施形態では、コントローラ18に対する操作(コントローラ38に対するキー入力、コントローラ38に対する振り操作等)に応じて、キャラクタ130が制御されてもよい。また、他の実施形態では、任意の入力装置に対する入力に応じてキャラクタ130が制御されてもよい。例えば、コントローラ38に対する操作に応じてキャラクタ130の位置が制御され、第2HMD30の姿勢に応じてキャラクタ130の向きが制御されてもよい。
【0230】
また、上記実施形態では、スマートデバイス20に対する入力に応じて、キャラクタ120に所定の動作(例えば弾オブジェクト122を投げる動作)を行わせた。他の実施形態では、キャラクタ120に対する制御は、スマートデバイス20を含む任意の入力装置(スマートデバイス20のタッチパネル、ボタン、慣性センサ、スマートデバイス20とは分離した他の入力装置)に対する入力に応じて行われてもよい。
【0231】
また、上記実施形態では、スマートデバイス20のカメラ23によって撮像された画像に基づいて、マーカ40に対するスマートデバイス20の位置が算出された。他の実施形態では、別の方法によってマーカ40に対するスマートデバイス20の位置が算出されてもよい。例えば、スマートデバイス20とは異なる現実空間に配置されたカメラで、マーカ40とスマートデバイス20とを撮像することにより、マーカ40に対するスマートデバイス20の位置が算出されてもよい。また、図9を参照して説明したように、センサバー55を用いて現実空間におけるスマートデバイス20の位置が算出されてもよい。
【0232】
また、上記実施形態では、マーカ40に対するスマートデバイス20の位置が算出されたが、他の実施形態では、マーカ40に限らず現実空間における所定の基準に対するスマートデバイス20の位置が算出されてもよい。ここで、所定の基準は、マーカ40であってもよいし、センサバー55であってもよいし、他の物体であってもよいし、所定の場所であってもよい。また、「所定の基準に対するスマートデバイス20の位置」は、座標値で表されてもよい。
【0233】
また、上記実施形態では、第1HMD10の姿勢を第1HMD10の慣性センサ15からのデータに基づいて算出した。他の実施形態では、第1HMD10の姿勢を他の方法により算出してもよい。例えば、第1HMD10をカメラで撮像し、当該カメラからの画像に基づいて、第1HMD10の姿勢が算出されてもよい。第2HMD30についても同様である。また、スマートデバイス20の姿勢についてもカメラの画像に基づいて算出されてもよい。
【0234】
また、上記フローチャートで示した処理は単なる例示に過ぎず、処理の順番や内容等は適宜変更されてもよい。上記フローチャートの各処理は、第1HMD10、スマートデバイス20、第2HMD30、及び、情報処理装置60のうちの何れのデバイスで実行されてもよい。
【0235】
例えば、上記実施形態では、第1HMD10は、自機が備える慣性センサからのセンサデータに基づいて姿勢を算出し、算出した姿勢情報を情報処理装置60に送信した。他の実施形態では、情報処理装置60が第1HMD10からセンサデータを取得し、第1HMD10の姿勢を算出してもよい。また、上記実施形態では、第1HMD10においては姿勢のみを算出し、情報処理装置60において実質的なゲームに関する処理(キャラクタ110の姿勢の設定、仮想カメラ111の姿勢の設定、画像の生成)を行った。他の実施形態では、第1HMD10においてキャラクタ110及び仮想カメラ111の姿勢の設定、画像の生成を行ってもよい。第2HMD30についても同様である。また、スマートデバイス20が行う処理(例えば、上記S204~S206、S207~S208、S209~S210、S211、S212、S213)のうちの一部または全部は、情報処理装置60において行われてもよい。また、情報処理装置60において行われる上記処理のうちの一部又は全部は、他の装置において実行されてもよい。例えば、情報処理装置60の処理の全部は、スマートデバイス20において実行されてもよい。
【0236】
また、情報処理装置60は、1又は複数の装置によって構成されてもよい。情報処理装置60は、ネットワーク(例えばインターネット)に接続された複数の装置によって構成されてもよい。
【0237】
また、上記実施形態では、第1HMD10、スマートデバイス20、第2HMD30、ディスプレイ50は、1つのローカルな場所に位置するものとした。他の実施形態では、これらは、それぞれ遠隔地に位置し、ネットワークを介して接続されてもよい。例えば、第1HMD10と、スマートデバイス20と、第2HM30と、情報処理装置60とはインターネットを介して接続されてもよい。
【0238】
また、上記実施形態では、左右の仮想カメラに基づいて、互いに視差を有する2つの画像を生成することとした。他の実施形態では、1つの仮想カメラに基づいて画像を生成し、生成した画像に変形を加えて互いに視差を有する2つの画像を生成してもよい。
【0239】
また、上記実施形態では、第1HMD10及び第2HMD30として、ユーザの頭部に固定的に装着するヘッドマウントディスプレイが用いられた。他の実施形態では、第1HMD10又は第2HMD30として、ユーザが手で把持したまま左右のディスプレイを覗き込む装置が用いられてもよい。
【0240】
また上記実施形態及びその変形例に係る構成は、互いに矛盾しない限り、任意に組み合わせることが可能である。また、上記は本発明の例示に過ぎず、上記以外にも種々の改良や変形が加えられてもよい。
【符号の説明】
【0241】
1 画像処理システム
10 第1HMD
12 ディスプレイ
18 コントローラ
20 スマートデバイス
22 ディスプレイ
30 第2HMD
40 マーカ
50 ディスプレイ
110 キャラクタ
111 仮想カメラ
120 キャラクタ
121 仮想カメラ
130 キャラクタ
131 仮想カメラ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29