(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-16
(45)【発行日】2022-03-25
(54)【発明の名称】シミュレーションシステム及びプログラム
(51)【国際特許分類】
G06T 19/00 20110101AFI20220317BHJP
A63F 13/216 20140101ALI20220317BHJP
A63F 13/577 20140101ALI20220317BHJP
A63F 13/53 20140101ALI20220317BHJP
A63F 13/79 20140101ALI20220317BHJP
G06F 3/01 20060101ALI20220317BHJP
G06F 3/04815 20220101ALI20220317BHJP
G06F 3/0484 20220101ALI20220317BHJP
【FI】
G06T19/00 C
A63F13/216
A63F13/577
A63F13/53
A63F13/79
G06F3/01 570
G06F3/0481 150
G06F3/0484
(21)【出願番号】P 2018020888
(22)【出願日】2018-02-08
【審査請求日】2021-01-20
(73)【特許権者】
【識別番号】519180002
【氏名又は名称】株式会社バンダイナムコ研究所
(73)【特許権者】
【識別番号】000134855
【氏名又は名称】株式会社バンダイナムコエンターテインメント
(74)【代理人】
【識別番号】100104710
【氏名又は名称】竹腰 昇
(74)【代理人】
【識別番号】100124682
【氏名又は名称】黒田 泰
(74)【代理人】
【識別番号】100090479
【氏名又は名称】井上 一
(72)【発明者】
【氏名】岩田 永司
(72)【発明者】
【氏名】森嶋 伸幸
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2009-195707(JP,A)
【文献】特開2011-210019(JP,A)
【文献】特開2012-101026(JP,A)
【文献】特表2014-515130(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
A63F 13/216
A63F 13/53
A63F 13/577
A63F 13/79
G06F 3/01
G06F 3/0481
G06F 3/0484
(57)【特許請求の範囲】
【請求項1】
ユーザの周囲の実空間
を撮像部のカメラによりスキャンすることによる前記実空間の認識処理
により、前記実空間の3次元マップ情報である実空間情報
を取得すると共に、前記ユーザの位置情報を含むユーザ情報を取得する情報取得部と、
前記3次元マップ情報である前記実空間情報に基づいて、前記実空間に対応する
仮想的な3次元空間であって、複数のオブジェクトが配置される仮想空間を生成する仮想空間生成部と、
前記ユーザ情報と前記実空間情報とに基づいて、前記仮想空間
において、前記実空間情報により生成された仮想的なオブジェクトに対応する場所に、基準点を設定し、前記基準点に基づいて、キャラクタのオブジェクトを前記仮想空間に配置するオブジェクト処理部と、
前記キャラクタの画像を含む画像を表示部に表示する処理を行う表示処理部と、
を含み、
前記オブジェクト処理部は、
前記ユーザに対応する前記仮想空間のユーザ移動体の位置に基づきヒットボリュームを設定し、前記ユーザが所与の入力を行った際に、前記ヒットボリュームと前記キャラクタとの位置関係に応じて、前記キャラクタに対する処理を行うことを特徴とするシミュレーションシステム。
【請求項2】
請求項1において、
前記ヒットボリュームは、前記ユーザの部位又は前記ユーザの所持物に設定されるヒットボリュームであることを特徴とするシミュレーションシステム。
【請求項3】
請求項1又は2において、
前記オブジェクト処理部は、
前記ユーザ移動体と前記基準点とが第1の距離関係である場合には、前記ユーザ移動体の位置に基づき前記ヒットボリュームを設定し、前記ユーザが前記所与の入力を行った際に、前記ヒットボリュームと前記キャラクタとの位置関係に応じて、前記キャラクタに対する処理を行い、
前記ユーザ移動体と前記基準点とが第2の距離関係である場合には、前記ユーザ移動体と前記基準点との間に前記ヒットボリュームを設定し、前記ユーザが前記所与の入力を行った際に、前記ヒットボリュームと前記キャラクタとの位置関係に応じて、前記キャラクタに対する処理を行うことを特徴とするシミュレーションシステム。
【請求項4】
ユーザの周囲の実空間
を撮像部のカメラによりスキャンすることによる前記実空間の認識処理
により、前記実空間の3次元マップ情報である実空間情報
を取得すると共に、前記ユーザの位置情報を含むユーザ情報を取得する情報取得部と、
前記3次元マップ情報である前記実空間情報に基づいて、前記実空間に対応する
仮想的な3次元空間であって、複数のオブジェクトが配置される仮想空間を生成する仮想空間生成部と、
前記ユーザ情報と前記実空間情報とに基づいて、前記仮想空間
において、前記実空間情報により生成された仮想的なオブジェクトに対応する場所に、基準点を設定し、前記基準点に基づいて、キャラクタのオブジェクトを前記仮想空間に配置するオブジェクト処理部と、
前記キャラクタの画像を含む画像を表示部に表示する処理を行う表示処理部と、
を含み、
前記オブジェクト処理部は、
前記ユーザに対応する前記仮想空間のユーザ移動体と前記基準点
に基づいて、ヒットボリュームを設定し、前記ユーザが所与の入力を行った際に、前記ヒットボリュームと前記キャラクタとの位置関係に応じて、前記キャラクタに対する処理を行うことを特徴とするシミュレーションシステム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記オブジェクト処理部は、
前記ユーザの動きを検出する検出部からの情報に基づいて、前記ユーザが前記所与の入力を行ったか否かを判断することを特徴とするシミュレーションシステム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記オブジェクト処理部は、
前記キャラクタに対する処理として、前記キャラクタの消滅処理、前記キャラクタの破壊処理、前記キャラクタの表示態様の変更処理又は前記キャラクタについての報知処理を行うことを特徴とするシミュレーションシステム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記オブジェクト処理部は、
前記ユーザ移動体と前記基準点との距離に応じて、前記キャラクタの配置タイミングを決定することを特徴とするシミュレーションシステム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記オブジェクト処理部は、
前記ユーザの状況情報、前記ユーザ移動体の状況情報、前記キャラクタの状況情報又は種類情報、或いはゲーム状況情報に応じて、前記基準点の設定を行うことを特徴とするシミュレーションシステム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記情報取得部は、
前記実空間の環境情報を取得し、
前記オブジェクト処理部は、
前記環境情報に応じて、前記基準点の設定を行うことを特徴とするシミュレーションシステム。
【請求項10】
請求項1乃至9のいずれかにおいて、
前記オブジェクト処理部は、
前記基準点の位置に応じて、前記ヒットボリュームを変化させることを特徴とするシミュレーションシステム。
【請求項11】
請求項1乃至10のいずれかにおいて、
前記オブジェクト処理部は、
前記ユーザの状況情報、前記ユーザ移動体の状況情報、前記キャラクタの状況情報又は種類情報、或いはゲーム状況情報に応じて、前記ヒットボリュームを変化させることを特徴とするシミュレーションシステム。
【請求項12】
ユーザの周囲の実空間
を撮像部のカメラによりスキャンすることによる前記実空間の認識処理
により、前記実空間の3次元マップ情報である実空間情報
を取得すると共に、前記ユーザの位置情報を含むユーザ情報を取得する情報取得部と、
前記3次元マップ情報である前記実空間情報に基づいて、前記実空間に対応する
仮想的な3次元空間であって、複数のオブジェクトが配置される仮想空間を生成する仮想空間生成部と、
前記ユーザ情報と前記実空間情報とに基づいて、前記仮想空間
において、前記実空間情報により生成された仮想的なオブジェクトに対応する場所に、基準点を設定し、前記基準点に基づいて、キャラクタのオブジェクトを前記仮想空間に配置するオブジェクト処理部と、
前記キャラクタの画像を含む画像を表示部に表示する処理を行う表示処理部として、
コンピュータを機能させ、
前記オブジェクト処理部は、
前記ユーザに対応する前記仮想空間のユーザ移動体の位置に基づきヒットボリュームを設定し、前記ユーザが所与の入力を行った際に、前記ヒットボリュームと前記キャラクタとの位置関係に応じて、前記キャラクタに対する処理を行うことを特徴とするプログラム。
【請求項13】
ユーザの周囲の実空間
を撮像部のカメラによりスキャンすることによる前記実空間の認識処理
により、前記実空間の3次元マップ情報である実空間情報
を取得すると共に、前記ユーザの位置情報を含むユーザ情報を取得する情報取得部と、
前記3次元マップ情報である前記実空間情報に基づいて、前記実空間に対応する
仮想的な3次元空間であって、複数のオブジェクトが配置される仮想空間を生成する仮想空間生成部と、
前記ユーザ情報と前記実空間情報とに基づいて、前記仮想空間
において、前記実空間情報により生成された仮想的なオブジェクトに対応する場所に、基準点を設定し、前記基準点に基づいて、キャラクタのオブジェクトを前記仮想空間に配置するオブジェクト処理部と、
前記キャラクタの画像を含む画像を表示部に表示する処理を行う表示処理部として、
コンピュータを機能させ、
前記オブジェクト処理部は、
前記ユーザに対応する前記仮想空間のユーザ移動体と前記基準点
に基づいて、ヒットボリュームを設定し、前記ユーザが所与の入力を行った際に、前記ヒットボリュームと前記キャラクタとの位置関係に応じて、前記キャラクタに対する処理を行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレーションシステム及びプログラム等に関する。
【背景技術】
【0002】
従来より、複合現実(MR)、拡張現実(AR)、バーチャルリアリティ(VR)などを実現するシステムが知られている。例えば特許文献1には、使用者の視点位置から観察される実空間画像に、使用者の視点位置から観察される仮想物体の画像を合成表示する画像処理装置が開示されている。この画像処理装置では、使用者が操作することで実空間の領域を指定し、指定された実空間の領域に基づいて仮想オブジェクトを作成し、作成された仮想オブジェクトを、観察された実空間画像に合成する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のようなMRやARのシステムを用いれば、実空間画像に対して仮想空間画像を合成することができる。しかしながら、仮想空間画像であるキャラクタと実空間のユーザとの好適なインタラクションの実現については、その達成が不十分であった。またキャラクタを登場させるために、専用のマーカを実空間に配置する必要があるという課題もある。また従来のシステムでは、キャラクタ等の出現のために、実空間の情報を有効に活用できていなかった。
【0005】
本発明の幾つかの態様によれば、実空間情報を有効活用してユーザとキャラクタとの好適なインタラクションを実現できるシミュレーションシステム及びプログラム等を提供できる。
【課題を解決するための手段】
【0006】
本発明の一態様は、ユーザの周囲の実空間の認識処理を行うことで得られる実空間情報と、前記ユーザの位置情報を含むユーザ情報を取得する情報取得部と、前記実空間情報に基づいて、前記実空間に対応する仮想空間を生成する仮想空間生成部と、前記ユーザ情報と前記実空間情報とに基づいて、前記仮想空間に基準点を設定し、前記基準点に基づいて、キャラクタのオブジェクトを前記仮想空間に配置するオブジェクト処理部と、前記キャラクタの画像を含む画像を表示部に表示する処理を行う表示処理部と、を含み、前記オブジェクト処理部は、前記ユーザに対応する前記仮想空間のユーザ移動体の位置に基づきヒットボリュームを設定し、前記ユーザが所与の入力を行った際に、前記ヒットボリュームと前記キャラクタとの位置関係に応じて、前記キャラクタに対する処理を行うシミュレーションシステムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0007】
本発明の一態様では、ユーザの周囲の実空間の認識処理を行うことで実空間情報が取得され、実空間情報に基づき実空間に対応する仮想空間が生成される。また実空間情報に基づき基準点が設定され、基準点に基づきキャラクタのオブジェクトが仮想空間に配置される。そして仮想空間のユーザ移動体の位置に基づきヒットボリュームが設定され、ユーザが所与の入力を行った際に、ヒットボリュームとキャラクタとの位置関係に応じて、キャラクタに対する処理が実行される。従って、実空間に対して、対応する仮想空間を設定してキャラクタを配置し、ユーザの入力に基づくキャラクタとのインタラクションを実現できるようになる。これにより、実空間情報を有効活用してユーザとキャラクタとの好適なインタラクションを実現できるシミュレーションシステム等の可能になる。
【0008】
また本発明の一態様では、前記ヒットボリュームは、前記ユーザの部位又は前記ユーザの所持物に設定されるヒットボリュームであってもよい。
【0009】
このようにユーザの部位又は所持物にヒットボリュームを設定すれば、実空間においてユーザが、その部位や所持物を動かすと、それに連動してヒットボリュームも移動するようになり、ユーザの仮想現実感の向上を図れる。
【0010】
また本発明の一態様では、前記オブジェクト処理部は、前記ユーザ移動体と前記基準点とが第1の距離関係である場合には、前記ユーザ移動体の位置に基づき前記ヒットボリュームを設定し、前記ユーザが前記所与の入力を行った際に、前記ヒットボリュームと前記キャラクタとの位置関係に応じて、前記キャラクタに対する処理を行い、前記ユーザ移動体と前記基準点とが第2の距離関係である場合には、前記ユーザ移動体と前記基準点との間に前記ヒットボリュームを設定し、前記ユーザが前記所与の入力を行った際に、前記ヒットボリュームと前記キャラクタとの位置関係に応じて、前記キャラクタに対する処理を行ってもよい。
【0011】
このようにすれば、ユーザ移動体と基準点との距離関係に応じた適切なヒットボリュームを設定し、ユーザが所与の入力を行った際に、ヒットボリュームとキャラクタとの位置関係を判断して、キャラクタに対する処理を実行できるようになる。
【0012】
また本発明の一態様は、ユーザの周囲の実空間の認識処理を行うことで得られる実空間情報と、前記ユーザの位置情報を含むユーザ情報を取得する情報取得部と、前記実空間情報に基づいて、前記実空間に対応する仮想空間を生成する仮想空間生成部と、前記ユーザ情報と前記実空間情報とに基づいて、前記仮想空間に基準点を設定し、前記基準点に基づいて、キャラクタのオブジェクトを前記仮想空間に配置するオブジェクト処理部と、前記キャラクタの画像を含む画像を表示部に表示する処理を行う表示処理部と、を含み、前記オブジェクト処理部は、前記ユーザに対応する前記仮想空間のユーザ移動体と前記基準点との間に、ヒットボリュームを設定し、前記ユーザが所与の入力を行った際に、前記ヒットボリュームと前記キャラクタとの位置関係に応じて、前記キャラクタに対する処理を行うシミュレーションシステムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0013】
本発明の一態様では、ユーザの周囲の実空間の認識処理を行うことで実空間情報が取得され、実空間情報に基づき実空間に対応する仮想空間が生成される。また実空間情報に基づき基準点が設定され、基準点に基づきキャラクタのオブジェクトが仮想空間に配置される。そして仮想空間のユーザ移動体と基準点との間に、ヒットボリュームが設定され、ユーザが所与の入力を行った際に、ヒットボリュームとキャラクタとの位置関係に応じて、キャラクタに対する処理が実行される。従って、実空間に対して、対応する仮想空間を設定してキャラクタを配置し、ユーザの入力に基づくキャラクタとのインタラクションを実現できるようになる。これにより、実空間情報を有効活用してユーザとキャラクタとの好適なインタラクションを実現できるシミュレーションシステム等の可能になる。
【0014】
また本発明の一態様では、前記オブジェクト処理部は、前記ユーザの動きを検出する検出部からの情報に基づいて、前記ユーザが前記所与の入力を行ったか否かを判断してもよい。
【0015】
このようにすれば、実空間でのユーザの動きを検出して、ユーザが所与の入力を行ったか否かを判断し、ヒットボリュームを用いた処理を実行できるようになる。
【0016】
また本発明の一態様では、前記オブジェクト処理部は、前記キャラクタに対する処理として、前記キャラクタの消滅処理、前記キャラクタの破壊処理、前記キャラクタの表示態様の変更処理又は前記キャラクタについての報知処理を行ってもよい。
【0017】
このようにすれば、ユーザが所与の入力を行った際に、ヒットボリュームとキャラクタとの位置関係に応じて、キャラクタを消滅させたり、キャラクタを破壊したり、キャラクタの表示態様を変更したり、或いはキャラクタについての報知処理を実行できるようになる。
【0018】
また本発明の一態様では、前記オブジェクト処理部は、前記ユーザ移動体と前記基準点との距離に応じて、前記キャラクタの配置タイミングを決定してもよい。
【0019】
このようにすれば、ユーザ移動体と基準点との距離関係を反映させて、基準点に対応するキャラクタを配置することが可能になる。
【0020】
また本発明の一態様では、前記オブジェクト処理部は、前記ユーザの状況情報、前記ユーザ移動体の状況情報、前記キャラクタの状況情報又は種類情報、或いはゲーム状況情報に応じて、前記基準点の設定を行ってもよい。
【0021】
このようにすれば、ユーザの状況、ユーザ移動体の状況、キャラクタの状況、或いはゲーム状況に応じた適切な基準点の設定が可能になる。
【0022】
また本発明の一態様では、前記情報取得部は、前記実空間の環境情報を取得し、前記オブジェクト処理部は、前記環境情報に応じて、前記基準点の設定を行ってもよい。
【0023】
このようにすれば、実空間の環境の状況を反映させた適切な基準点の設定が可能になる。
【0024】
また本発明の一態様では、前記オブジェクト処理部は、前記基準点の位置に応じて、前記ヒットボリュームを変化させてもよい。
【0025】
このようにすれば、基準点に応じた適切なヒットボリュームの設定が可能になる。
【0026】
また本発明の一態様では、前記オブジェクト処理部は、前記ユーザの状況情報、前記ユーザ移動体の状況情報、前記キャラクタの状況情報又は種類情報、或いはゲーム状況情報に応じて、前記ヒットボリュームを変化させてもよい。
【0027】
このようにすれば、ユーザの状況、ユーザ移動体の状況、キャラクタの状況又は種類、或いはゲーム状況に応じた適切なヒットボリュームの設定が可能になる。
【図面の簡単な説明】
【0028】
【
図1】本実施形態のシミュレーションシステムの構成例を示すブロック図。
【
図4】
図4(A)、
図4(B)は実空間の認識処理による実空間情報の取得処理の説明図。
【
図7】
図7(A)、
図7(B)は本実施形態のアトラクションゲームの説明図。
【
図8】
図8(A)、
図8(B)は本実施形態のアトラクションゲームの説明図。
【
図9】
図9(A)、
図9(B)は本実施形態のヒット処理の説明図。
【
図14】ユーザがライド筐体に搭乗してプレイするライド型のアトラクションゲームの説明図。
【
図16】本実施形態のアトラクションゲームの説明図。
【
図18】
図18(A)~
図18(C)はヒットボリュームの設定やユーザの動きの検出処理の説明図。
【
図21】
図21(A)、
図21(B)はユーザキャラクタと基準点との距離に応じたキャラクタの配置タイミングの決定処理の説明図。
【
図22】環境情報や、ユーザやユーザキャラクタやキャラクタの状況情報や、ゲーム状況情報に基づく基準点の設定処理の例を示すフローチャート。
【
図23】基準点の位置に応じてヒットボリュームを変化させる処理の説明図。
【
図24】
図24(A)、
図24(B)は基準点の位置に応じてヒットボリュームを変化させる処理の説明図。
【
図25】ユーザやユーザキャラクタやキャラクタの状況情報や、ゲーム状況情報に基づくヒットボリュームの変化処理の例を示すフローチャート。
【
図26】本実施形態の詳細な処理例を示すフローチャート。
【発明を実施するための形態】
【0029】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0030】
1.シミュレーションシステム
図1は、本実施形態のシミュレーションシステム(シミュレータ、ゲームシステム、画像生成システム)の構成例を示すブロック図である。本実施形態のシミュレーションシステムはMR(Mixed Reality)やAR(Augmented Reality)などを実現するものであり、ゲームコンテンツを提供するゲームシステムなどの種々のシステムに適用可能である。なお、本実施形態のシミュレーションシステムは
図1の構成に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0031】
操作部160は、ユーザ(プレーヤ)が種々の操作情報(入力情報)を入力するためのものである。操作部160は、例えば操作ボタン、方向指示キー、ジョイスティック、ハンドル、ペダル、レバー又は音声入力装置等の種々の操作デバイスにより実現できる。
【0032】
検出部162はユーザの動きを検出するものであり、例えば加速度センサ、ジャイロセンサなどのモーションセンサにより実現できる。例えば検出部162はユーザの部位などに取り付けられてユーザの部位等の動きを検出する。例えばユーザの部位が動いた時の加速度等の変化を加速度センサ等のモーションセンサにより検出して、ユーザの動きを検出する。なおユーザの動きをカメラを用いて検出してもよい。一例としては、2つの赤外LEDと2つのカメラ(ステレオカメラ)で指先等の動きを検出するリープモーションセンサを用いてもよい。或いはキネクト(登録商標)による姿勢検出によりユーザの動きを検出してもよい。
【0033】
撮像部164(カメラ)は、被写体の撮像を行うものであり、CCDやCMOSセンサなどの画像センサと、フォーカスレンズ等により構成される光学系などにより実現される。撮像部164は赤外線カメラなどにより実現されるデプスカメラであってもよい。例えば撮像部164に、赤外線パターンを投稿するIRプロジェクターを設け、投光した赤外線パターンを赤外線カメラにより読み取り、パターンの歪みからデプス情報を取得するライトコーディング方式を採用してもよい。
【0034】
記憶部170は各種の情報を記憶する。記憶部170は、処理部100や通信部196などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。記憶部170の機能は、半導体メモリ(DRAM、VRAM)、HDD(ハードディスクドライブ)、SSD、光ディスク装置などにより実現できる。記憶部170は、実空間情報記憶部171、オブジェクト情報記憶部172、描画バッファ178を含む。
【0035】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、BD、CD)、HDD、或いは半導体メモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(入力装置、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0036】
表示部190は、本実施形態により生成された画像を出力するものであり、LCD、有機ELディスプレイ、或いはCRTなどにより実現できる。表示部190は、例えば後述の
図2、
図3のHMD200(頭部装着型表示装置)のディスプレイ(表示装置)である。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ又はヘッドホンなどにより実現できる。
【0037】
I/F(インターフェース)部194は、携帯型情報記憶媒体195とのインターフェース処理を行うものであり、その機能はI/F処理用のASICなどにより実現できる。携帯型情報記憶媒体195は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体195は、ICカード(メモリカード)、USBメモリ、或いは磁気カードなどにより実現できる。
【0038】
通信部196は、有線や無線のネットワークを介して外部(他の装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0039】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0040】
処理部100(プロセッサ)は、操作部160からの操作情報や、
図2、
図3のHMD200のトラッキング情報(HMDの位置及び方向の少なくとも一方の情報。視点位置及び視線方向の少なくとも一方の情報)や、プログラムなどに基づいて、情報取得処理、仮想空間生成処理、オブジェクト処理、仮想カメラ制御処理、ゲーム処理(シミュレーション処理)、表示処理、或いは音処理などを行う。
【0041】
処理部100の各部が行う本実施形態の各処理(各機能)はプロセッサ(ハードウェアを含むプロセッサ)により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。例えば、プロセッサはハードウェアを含み、そのハードウェアは、デジタル信号を処理する回路及びアナログ信号を処理する回路の少なくとも一方を含むことができる。例えば、プロセッサは、回路基板に実装された1又は複数の回路装置(例えばIC等)や、1又は複数の回路素子(例えば抵抗、キャパシター等)で構成することもできる。プロセッサは、例えばCPU(Central Processing Unit)であってもよい。但し、プロセッサはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Signal Processor)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路であってもよい。またプロセッサは、アナログ信号を処理するアンプ回路やフィルター回路等を含んでもよい。メモリ(記憶部170)は、SRAM、DRAM等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置(HDD)等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部100の各部の処理(機能)が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
【0042】
処理部100は、情報取得部102、仮想空間生成部104、オブジェクト処理部106、仮想カメラ制御部112、ゲーム処理部114、表示処理部120、音処理部130を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ(或いはプロセッサ及びメモリ)により実現できる。なお、これらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0043】
情報取得部102は各種の情報の取得処理を行う。仮想空間生成部104は仮想空間の生成処理を行い、オブジェクト処理部106はキャラクタのオブジェクトや配置オブジェクトについての種々の処理を行う。情報取得部102、仮想空間生成部104、オブジェクト処理部106の詳細については後述する。
【0044】
仮想カメラ制御部112(仮想カメラ制御処理のプログラムモジュール)は、仮想カメラの制御を行う。例えば、操作部160により入力されたユーザの操作情報やトラッキング情報などに基づいて、仮想カメラを制御する処理を行う。例えば仮想カメラ制御部112は、ユーザの一人称視点又は三人称視点として設定される仮想カメラの制御を行う。例えば実空間のユーザに対応する仮想空間のユーザ移動体の視点(一人称視点)に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置(位置座標)や姿勢(回転軸回りでの回転角度)を制御する。或いは、ユーザ移動体に追従する視点(三人称視点)の位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置や姿勢を制御する。
【0045】
例えば仮想カメラ制御部112は、視点トラッキングにより取得されたユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御する。例えば本実施形態では、ユーザの視点位置、視線方向の少なくとも1つである視点情報のトラッキング情報(視点トラッキング情報)が取得される。このトラッキング情報は、例えばHMD200のトラッキング処理を行うことで取得できる。そして仮想カメラ制御部112は、取得されたトラッキング情報(ユーザの視点位置及び視線方向の少なくとも一方の情報)に基づいて仮想カメラの視点位置、視線方向を変化させる。例えば、仮想カメラ制御部112は、実空間でのユーザの視点位置、視線方向の変化に応じて、仮想空間での仮想カメラの視点位置、視線方向(位置、姿勢)が変化するように、仮想カメラを設定する。このようにすることで、ユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御できる。
【0046】
ゲーム処理部114(ゲーム処理のプログラムモジュール)は、ユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部114(シミュレーション処理部)は、ユーザがMR(Mixed Reality)、AR(Augmented Reality)、又はVR(Virtual Reality)などを体験するための種々のシミュレーション処理を実行する。ゲーム処理は、例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、開始したゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、或いはゲーム成績を演算する処理などである。
【0047】
表示処理部120は、仮想空間画像(ゲーム画像、シミュレーション画像)の表示処理を行う。例えば処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に表示する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、仮想空間において仮想カメラ(所与の視点。左眼用、右眼用の第1、第2の視点)から見える画像が生成される。なお、表示処理部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
【0048】
音処理部130(音処理のプログラムモジュール)は、処理部100で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲(音楽、BGM)、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部192に出力させる。
【0049】
そして本実施形態のシミュレーションシステムは、
図1に示すように、情報取得部102と仮想空間生成部104とオブジェクト処理部106と表示処理部120を含む。
【0050】
情報取得部102(情報取得処理のプログラムモジュール)は、ユーザの周囲の実空間の認識処理を行うことで得られる実空間情報を取得する。また情報取得部102は、ユーザの位置情報を含むユーザ情報を取得する。実空間の認識処理は例えば空間マッピングにより実現できる。例えば撮像部164として設けられた種々のカメラを用いて実空間の認識処理を行うことで、空間マッピングが実現される。後述の
図2を例にとれば、HMD200に設けられたRGBカメラ246、デプスカメラ247、環境認識カメラ248、249を用いて実空間の認識処理を行う。実空間情報は、実空間の認識処理(空間マッピング)により得られた実空間の3Dマップ情報であり、スキャンした実空間をメッシュ化した情報である。実空間をスキャンすることで得られた実空間情報は実空間情報記憶部171に記憶される。実空間情報は例えば複数の空間データにより構成される。複数の空間データの各空間データは、実空間を複数の領域に分割してスキャンした際の各領域に対応するデータである。そして各空間データに対してID(サーフェスID)が割り当てられて、実空間情報記憶部171に記憶される。このIDが割り当てられた空間データに基づいて例えばポリゴンメッシュが生成され、スキャンした実空間をメッシュ化して表示することが可能になる。また実空間のマップと仮想空間のオブジェクトとのインタラクションも可能になる。
【0051】
また情報取得部102は、実空間のユーザの位置情報を含むユーザ情報を取得する。ユーザ情報は実空間のユーザの方向情報を含むことができる。ユーザの位置情報としては、例えばユーザの視点位置情報を用いることができる。ユーザの方向情報としては、ユーザの視線方向情報を用いることができる。ユーザの位置情報(視点位置情報)や方向情報(視線方向情報)はHMD200のヘッドトラッキング処理により取得できる。
【0052】
仮想空間生成部104(仮想空間生成処理のプログラムモジュール)は、情報取得部102により取得された実空間情報に基づいて、実空間に対応する仮想空間を生成する処理を行う。そして仮想空間生成部104は、3次元空間(ゲーム空間)である仮想空間の設定処理を行う。例えば実空間の認識処理(空間マッピング)により得られたマップ情報が、仮想空間情報として設定される。例えば実空間を分割した複数の領域に対応する複数の空間データにより、仮想空間情報が設定される。仮想空間情報は、オブジェクト情報としてオブジェクト情報記憶部172に記憶される。
【0053】
また仮想空間生成部104(仮想空間設定部)は、オブジェクトが配置される仮想空間(オブジェクト空間)の設定処理を行う。例えば、移動体(ユーザ移動体、キャラクタ)、配置物、マップ(地形)、建物、観客席、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)を仮想空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクト情報記憶部172には、仮想空間でのオブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。仮想空間生成部104は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
【0054】
オブジェクト処理部106(オブジェクト処理のプログラムモジュール)は、キャラクタのオブジェクトや配置オブジェクトについての各種の処理を行う。具体的にはオブジェクト処理部106は、ユーザ情報と実空間情報とに基づいて、仮想空間に基準点を設定する。例えばユーザの位置情報と実空間情報とに基づいて、仮想空間に基準点を設定する。この基準点の設定処理は基準点設定部108が行う。そしてオブジェクト処理部106は、基準点に基づいて、キャラクタのオブジェクトを仮想空間に配置する処理を行う。例えば基準点に対応して設定された配置ポイント(出現ポイント)にキャラクタを配置(出現)する処理を行う。表示処理部120(表示処理のプログラムモジュール)は、キャラクタの画像を含む画像を表示部190に表示する処理を行う。例えばHMD200の表示装置に、キャラクタの画像を含む画像(仮想空間画像)を表示する処理を行う。
【0055】
そして本実施形態では、オブジェクト処理部106が、ユーザに対応する仮想空間のユーザ移動体の位置に基づきヒットボリュームを設定する。例えばユーザ移動体の位置を元に、ヒットボリュームの位置を決定して配置する。ユーザ移動体の位置により特定されるユーザの部位の位置や所持物の位置にヒットボリュームを設定してもよい。そしてオブジェクト処理部106は、ユーザが所与の入力を行った際に、ヒットボリュームとキャラクタとの位置関係に応じて、キャラクタに対する処理を行う。ユーザが所与の入力を行ったか否かは、例えば操作部160や検出部162を用いて検出できる。例えば操作部160によりユーザが所与の操作を行った場合に、ユーザが所与の入力を行ったと判断する。或いは検出部162によりユーザの所与の動き(ユーザの手等の部位の動き)が検出された場合に、ユーザが所与の入力を行ったと判断する。ユーザの所与の動きを撮像部164で撮像することで検出してもよい。
【0056】
そしてオブジェクト処理部106は、ユーザが所与の入力を行ったタイミングでの、ヒットボリュームとキャラクタとの位置関係を判断する。例えばキャラクタの位置がヒットボリューム内にあるか否かのヒット判定処理(衝突判定処理)を行う。或いは、ユーザ移動体の位置に基づき設定されたヒットボリュームと、キャラクタの位置に基づき設定された第2のヒットボリュームとが交差したか否かを判断するヒット判定処理を行ってもよい。これらのヒット判定処理はヒット処理部109により行われる。そして、ユーザが所与の入力を行った際に(所与の入力を行ったタイミングで)、ヒットボリュームとキャラクタが所与の位置関係になった場合に、その位置関係に応じた処理をキャラクタに対して行う。例えばヒットボリュームとキャラクタとがヒットしたと判定された場合に、キャラクタに対するヒット処理を行う。具体的には後述するような消滅処理、破壊処理、表示態様の変更処理又は音や振動による報知処理を行う。
【0057】
なおユーザ移動体は、実空間のユーザに対応するものであり、その画像が表示される表示物であってもよいし、画像が表示されない仮想的なものであってもよい。例えば仮想空間の画像として一人称視点の画像が表示される場合等には、ユーザ移動体は非表示であってもよいし、ユーザ移動体の一部の部位(例えば手、胸又は顔等)だけが表示されるものであってもよい。ユーザ移動体が非表示である場合には、例えば実空間のユーザの視点に対応する仮想空間の仮想カメラ(左眼用、右眼用の仮想カメラ)をユーザ移動体(アバター)とみなすことができる。
【0058】
またヒットボリュームは、例えばユーザの部位又はユーザの所持物に設定されるヒットボリュームである。例えばユーザの部位を内包するようなヒットボリューム、或いはユーザの所持物を内包するようなヒットボリュームが設定される。そして、このヒットボリュームとキャラクタとのヒット判定処理を行うことで、ユーザの部位又は所持物がキャラクタにヒットしたか否かを判定できる。なおヒットボリュームは例えば3次元形状のものであるが、平面的なヒットエリアであってもよい。
【0059】
或いはオブジェクト処理部106は、ユーザに対応する仮想空間のユーザ移動体と基準点との間に、ヒットボリュームを設定する。例えばユーザ移動体の位置と基準点の位置の間の領域(中間領域)にヒットボリュームを設定する。例えばユーザ移動体の位置と基準点の位置を結ぶ線上にヒットボリュームを設定する。そしてオブジェクト処理部106は、ユーザが所与の入力を行った際に、ヒットボリュームとキャラクタとの位置関係に応じて、キャラクタに対する処理を行う。例えばユーザが所与の入力を行った際におけるヒットボリュームとキャラクタとの位置関係を判断して、キャラクタに対する処理を行う。具体的にはユーザが所与の入力を行ったか否かを、上述のように例えば操作部160や検出部162を用いて検出する。そしてユーザが所与の入力を行ったタイミングでの、ヒットボリュームとキャラクタとの位置関係を判断する。例えばキャラクタの位置がヒットボリューム内にあるか否かのヒット判定処理を行う。或いは、ユーザ移動体と基準点との間に設定されたヒットボリュームと、キャラクタの位置に基づき設定された第2のヒットボリュームとが交差(衝突)したか否かを判断するヒット判定処理(衝突判定処理)を行ってもよい。そして、ユーザが所与の入力を行った際に、ヒットボリュームとキャラクタが所与の位置関係になった場合に、その位置関係に応じた処理をキャラクタに対して行う。例えばキャラクタに対するヒット処理を行う。具体的には後述するようなキャラクタの消滅処理、破壊処理、表示態様の変更処理又は音や振動による報知処理を行う。
【0060】
オブジェクト処理部106は移動体処理部110を含む。移動体処理部110は、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間(オブジェクト空間、ゲーム空間)において移動体を移動させる処理や、移動体を動作させる処理を行う。移動体は、ユーザに対応するユーザ移動体やキャラクタなどである。例えば移動体処理部110は、操作部160によりユーザが入力した操作情報や、取得されたトラッキング情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(モデルオブジェクト)を仮想空間内で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0061】
またオブジェクト処理部106は、ユーザ移動体と基準点とが第1の距離関係である場合には、ユーザ移動体の位置に基づきヒットボリュームを設定し、ユーザが所与の入力を行った際に、ヒットボリュームとキャラクタとの位置関係に応じて、キャラクタに対する処理を行う。一方、ユーザ移動体と基準点とが第2の距離関係である場合には、ユーザ移動体と基準点との間にヒットボリュームを設定し、ユーザが所与の入力を行った際に、ヒットボリュームとキャラクタとの位置関係に応じて、キャラクタに対する処理を行う。ここで、第1の距離関係は、第2の距離関係に比べて、ユーザ移動体と基準点との距離が近いという関係である。この場合には、ユーザ移動体の位置に基づきヒットボリュームを設定して、ヒット判定処理等を行う。一方、第2の距離関係は、第1の距離関係に比べて、ユーザ移動体と基準点との距離が遠いという関係である。この場合には、ユーザ移動体と基準点との間にヒットボリュームを設定して、ヒット判定処理等を行う。
【0062】
またオブジェクト処理部106は、ユーザの動きを検出する検出部162からの情報に基づいて、ユーザが所与の入力を行ったか否かを判断する。例えば検出部162のモーションセンサ(加速度センサ等)に基づいて、ユーザの部位の動き、振動又は加速度を検出して、ユーザが所与の入力を行ったか否かを判断する。例えばユーザが叩くアクションを行ったか否かを判断する。具体的にはユーザの部位の加速度が急激に変化するタイミングを、ユーザが所与の入力を行ったタイミングと判断する。そしてユーザが所与の入力を行ったタイミングでのヒットボリュームとキャラクタとの位置関係に応じて、キャラクタに対する処理を行う。
【0063】
またオブジェクト処理部106は、キャラクタに対する処理として、キャラクタの消滅処理、キャラクタの破壊処理、キャラクタの表示態様の変更処理又はキャラクタについての報知処理を行う。キャラクタの消滅処理は、キャラクタを非表示にして、仮想空間において視覚的に見えないようにする処理である。キャラクタの破壊処理は、キャラクタが破壊された状態の画像を表示する処理や、破壊エフェクトを発生する処理である。キャラクタの表示態様の変更処理は、キャラクタの色、輝度(明るさ)、半透明度又はテクスチャ等を変更する処理である。キャラクタの報知処理は、キャラクタに対する攻撃のヒットイベントなどが発生したことを、音や振動などを用いてユーザに報知する処理である。なお、キャラクタに対する攻撃が成功しなかった場合には、攻撃が成功しなかったことを表す演出処理を行ってもよい。
【0064】
またオブジェクト処理部106は、ユーザ移動体と基準点との距離に応じて、キャラクタの配置タイミングを決定する。例えばユーザ移動体と基準点との間の距離が所与の距離よりも近くなったタイミングを、配置タイミングとして、キャラクタを配置する。例えば当該タイミングにおいてキャラクタを出現させて表示する。或いは、ユーザ移動体と基準点との間の距離が所与の距離よりも遠くなった場合に、キャラクタを仮想空間に非配置にして、消滅させてもよい。
【0065】
またオブジェクト処理部106は、ユーザの状況情報、ユーザ移動体の状況情報、キャラクタの状況情報又は種類情報、或いはゲーム状況情報に応じて、基準点の設定を行う。例えばこれらの情報に基づいて、基準点の設定位置や設定数を決定したり、或いは基準点の出現タイミングを決定する。例えば基準点の設定位置や設定数を変化させたり、或いは基準点の出現タイミングを変化させる。ユーザの状況情報は、例えばユーザの年齢層、体格又は性別の情報などである。或いはユーザの状況情報は、ユーザのゲームプレイの状況である。例えばユーザのゲームレベル(初級、中級、上級)や、ユーザのゲームプレイ回数やゲームプレイ頻度の情報や、ユーザのゲーム成績の情報などである。ユーザ移動体の情報は、ユーザ移動体のステータス(レベル、経験値)や能力(攻撃力、防御力等)などの情報であり、例えばユーザ移動体のゲームパラメータにより表される情報である。キャラクタの状況情報は、キャラクタのステータスや能力などの情報であり、例えばキャラクタのゲームパラメータにより表される情報である。キャラクタの種類情報は、キャラクタがどの種類に属するキャラクタであるかを表す情報である。ゲーム状況情報は、ゲームの進行状況や、ゲームプレイが行われるステージやマップの状況などである。
【0066】
また情報取得部102は、実空間の環境情報を取得する。環境情報は、実空間の明るさや広さなどの環境についての情報である。例えばユーザが位置するプレイフィールドでの明るさ情報や広さ情報などである。そしてオブジェクト処理部106は、環境情報に応じて、基準点の設定を行う。例えば環境情報に応じて、基準点の設定位置や設定数を決定したり、或いは基準点の出現タイミングを決定する。例えば基準点の設定位置や設定数を変化させたり、或いは基準点の出現タイミングを変化させる。
【0067】
またオブジェクト処理部106は、基準点の位置に応じて、ヒットボリュームを変化させる。例えば基準点の位置に応じて、ヒットボリュームの大きさ、形状又は配置位置等を変化させる。例えば基準点の設定位置や、設定タイミングや、或いは基準点とユーザ移動体との関係などに応じて、ヒットボリュームの大きさ、形状又は配置位置等を変化させるなどして、ヒットボリュームを変化させる。
【0068】
またオブジェクト処理部106は、ユーザの状況情報、ユーザ移動体の状況情報、キャラクタの状況情報又は種類情報、或いはゲーム状況情報に応じて、ヒットボリュームを変化させる。例えばユーザの状況、ユーザ移動体の状況、キャラクタの状況又は種類、或いはゲーム状況を反映させるように、ヒットボリュームの大きさ、形状又は配置位置等を変化させる。
【0069】
なお情報取得部102は、視点のトラッキング情報に基づいて、実空間でのユーザの位置情報を取得する。視点のトラッキング情報は、例えばHMD200のトラッキング処理を行うことで取得できる。例えば情報取得部102は、HMD200の位置情報を、当該HMD200を装着するユーザの位置情報として取得する。一例としては、トラッキング情報は、ユーザの初期視点位置からの視点位置の変化情報(視点位置の座標の変化値)、及び、ユーザの初期視線方向からの視線方向の変化情報(視線方向の回転軸回りでの回転角度の変化値)の少なくとも一方を含むことができる。このようなトラッキング情報が含む視点情報の変化情報に基づいて、ユーザの位置に対応する視点位置や、ユーザの方向に対応する視線方向を特定できる。なお、HMD200のトラッキング処理ではなく、ユーザやユーザの頭部などの部位を直接にトラッキングする処理により、ユーザの位置情報を取得してもよい。また情報取得部102は、ユーザの方向情報や姿勢情報を取得してもよい。例えば視点のトラッキング処理により得られたトラッキング情報に基づいて、実空間においてユーザが向く方向である方向情報を取得する。また情報取得部102は、ユーザのモーション情報である姿勢情報を取得する。姿勢情報は、ユーザの手、頭又は足などの部位の動きを特定する情報である。例えば情報取得部102は、キネクト(登録商標)と呼ばれる処理によりユーザの姿勢情報を取得する。なお、情報取得部102が取得する位置情報は、相対的な位置情報であってもよい。
【0070】
また表示処理部120(画像生成部)は、表示部190に表示される画像を、仮想空間画像として生成する。仮想空間画像は、例えばAR又はMRの画像などである。仮想空間画像はVRの画像であってもよい。ARの画像は、実空間の風景などを構成する表示物に重畳するように表示される画像である。MRの画像は、実空間と仮想空間を混合し、現実のものと仮想的なものがリアルタイムで影響し合うような新たな空間を構築するMRの手法により生成される画像であり、MRは全拡張現実と拡張仮想を包含する概念である。VRの画像は、例えば後述のHMD200を装着するユーザの視界の全周囲に亘ってVR空間が広がるように生成される画像である。
【0071】
また表示処理部120は、HMD200の表示画像として、仮想空間において仮想カメラ(所与の視点)から見える画像を生成する。例えばキャラクタ(ユーザキャラクタ、他ユーザキャラクタ)の視点(一人称視点)に設定された仮想カメラから見える画像の描画処理を行う。或いは、キャラクタに追従する視点(三人称視点)に設定された仮想カメラから見える画像の描画処理を行う。生成される画像は、例えば左眼用画像、右眼用画像などの立体視用の画像であることが望ましい。
【0072】
また本実施形態では、ユーザがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。仮想現実のシミュレーション処理は、実空間での事象を仮想空間で模擬するためのシミュレーション処理であり、当該事象をユーザに仮想体験させるための処理である。例えば実空間のユーザに対応する仮想ユーザやその搭乗移動体などのユーザ移動体を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザに体感させるための処理を行う。
【0073】
なお
図1の本実施形態のシミュレーションシステムの処理は、HMD200に内蔵されるプロセッサやメモリにより実現してもよい。例えばHMD200に内蔵されるプロセッサが本実施形態の各処理を行い、本実施形態の処理により生成された画像(仮想空間画像)をHMD200の表示部190に表示する。或いは本実施形態のシミュレーションシステムの処理を、家庭用ゲーム装置又は業務用ゲーム装置により実現してもよいし、家庭用ゲーム装置又は業務用ゲーム装置とサーバシステムとの分散処理により実現してもよい。或いは本実施形態のシミュレーションシステムを、施設に設置されるPC等の処理装置や、ユーザが装着する処理装置や、これらの処理装置の分散処理により実現してもよい。例えばユーザがジャケットを着用し、ジャケットの背面側にバックパックPC等の処理装置が取り付けられる。そしてユーザが装着するバックパックPC等の処理装置により本実施形態の各処理を実行したり、表示部190に表示される画像(仮想空間画像)を生成する。或いは、ユーザが装着する処理装置と、施設に設置される管理用の処理装置との分散処理により、本実施形態の各処理を実行したり、表示部190に表示される画像を生成する。或いは、本実施形態のシミュレーションシステムの処理を、ネットワークに通信接続できる携帯型通信端末や、携帯型通信端末とサーバシステムとにより実現してもよい。例えば携帯型通信端末とサーバシステムとの分散処理により実現してもよい。
【0074】
2.HMD
次に本実施形態で用いられるHMD200及びHMD200を用いたトラッキング処理について説明する。
【0075】
図2は本実施形態で用いられるHMD200の一例である。
図2のHMD200はシースルー型(透過型)のメガネタイプのHMDである。具体的には光学シースルー型のHMDである。このシースルー型のHMD200によれば例えばMRやARの仮想空間画像の表示が可能になる。
【0076】
図2のHMD200はテンプル部240とゴーグル部242を有する。テンプル部240にはスピーカが内蔵されている。ゴーグル部242には表示装置243とホログラフィック光学素子244が設けられている。表示装置243には、マイクロディスプレイ、ミラー、プリズム等により構成される表示ユニットが設けられている。表示装置243には左眼用の表示ユニットと右眼用の表示ユニットが設けられており、これにより立体視が実現される。また左眼用、右眼用の各表示ユニットに一対のマイクロディスプレイを設けることで虚像の位置を可変にできる。
【0077】
表示装置243からの表示光は、ホログラフィック光学素子244の導光板内部を屈折しながら、ユーザUSの眼前に導光される。そしてホログラフィック光学素子244により表示光を眼球方向に屈折させて、眼球に表示光を送る。これにより眼前に虚像(ホログラムの再生像)があるように見えるようになる。ホログラフィック光学素子244の導光板はコンバイナーとも呼ばれ、ハーフミラーであるコンバイナーにより、外界の実像と虚像が重なって見えるようになり、MRやARが実現される。
【0078】
またゴーグル部242には、RGBカメラ246、デプスカメラ247、環境認識カメラ248、249が設けられている。RGBカメラ246を用いることでユーザUSの正面方向の撮影が可能になる。デプスカメラ247を用いることで正面方向でのデプス情報(奥行き情報)を取得できる。例えばゴーグル部242にはデプスカメラ用のエミッター(不図示)が設けられている。そしてエミッターであるIRプロジェクターにより赤外線パターンを実空間の物体に対して投光し、投光した赤外線パターンを、デプスカメラ247である赤外線カメラにより読み取り、パターンの歪みから実空間の物体のデプス情報を取得する。更に環境認識カメラ248、249を用いることでユーザUSの周囲の環境認識が可能になる。またゴーグル部242には、加速度センサ、ジャイロセンサにより構成される慣性計測ユニット(IMU)が内蔵されている。ユーザUSの頭の位置や向く方向は、ゴーグル部242に設けられたカメラによる撮像画像と慣性計測ユニットからの測定情報などに基づいて検出され、これによりヘッドトラッキングが実現される。そしてユーザUSの位置情報(視点位置情報)や方向情報(視線方向情報)の取得も可能になる。またRGBカメラ246、デプスカメラ247、環境認識カメラ248、249を用いることで、空間マッピングと呼ばれる実空間の認識処理が実現される。これらのカメラを用いて実空間でのユーザの周囲のスキャンを行うことで、ユーザの周囲の実空間の認識処理が実現され、実空間情報が取得される。またこれらのカメラを用いることで、ユーザUSの周囲に居る他のユーザの位置情報(相対的な位置情報)、方向情報(相対的な方向情報)、或いは姿勢情報(動き情報)も取得できる。例えばキネクト(登録商標)などの処理により姿勢情報を取得することで、他のユーザがどのようなアクションを行ったかを検出できるようになる。或いはユーザ自身の部位の動きなどをユーザの姿勢情報(動き情報)として取得してもよい。
【0079】
図3にHMD200の他の例を示す。
図3のHMD200はユーザの視界の全周囲を覆うように装着されるタイプのHMDである。
図3のHMDの表示部は例えば有機ELディスプレイ(OEL)や液晶ディスプレイ(LCD)などにより実現される。例えばHMD200の表示部には、ユーザの左眼の前に設定される第1のディスプレイ又は第1の表示領域と、右眼の前に設定される第2のディスプレイ又は第2の表示領域が設けられており、立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左眼用画像と右眼用画像を生成し、第1のディスプレイに左眼用画像を表示し、第2のディスプレイに右眼用画像を表示する。或いは1つのディスプレイの第1の表示領域に左眼用画像を表示し、第2の表示領域に右眼用画像を表示する。またHMD200には左眼用、右眼用の2つの接眼レンズ(魚眼レンズ)が設けられており、これによりユーザの視界の全周囲に亘って広がるVR空間が表現される。そして接眼レンズ等の光学系で生じる歪みを補正するための補正処理が、左眼用画像、右眼用画像に対して行われる。
【0080】
また
図3のHMD200には、RGBカメラ216、デプスカメラ217、環境認識カメラ218、219が設けられている。これらのカメラを用いることでビデオシースルー型のHMD200が実現され、MRやARの実現が可能になる。またこれらのカメラを用いることで、
図2のHMD200と同様に、実空間の認識処理や、他のユーザの位置情報、方向情報、姿勢情報(動き情報)の取得やユーザの姿勢情報の取得などを実現できる。
【0081】
図3のHMD200において、ユーザの位置情報、方向情報を取得するトラッキング処理は、HMD200に内蔵され、加速度センサ、ジャイロセンサにより構成される慣性計測ユニット(IMU)により実現してもよい。或いはHMD200に複数の受光素子を設け、ユーザの周囲に発光素子を有する測定用の装置(ベースステーション)を設ける。そして測定用の装置(複数の測定用装置)の発光素子(LED)からのレーザなどの光をHMD200の受光素子で受光することで、HMD200のトラッキング処理を行って、ユーザの位置情報(視点位置情報)や方向情報(視線情報)を取得してもよい。或いはHMD200に複数の発光素子を設け、ユーザの周囲にカメラ(第1、第2のカメラ)を有する測定用の装置を設ける。そしてHMD200の発光素子からの光を測定用の装置のカメラで撮像することで、ユーザUSの頭部の奥行き方向での位置等を検出する。またHMD200に設けられる慣性計測ユニット(モーションセンサ)の検出情報に基づいて、ユーザUSの頭部の回転角度(視線)を検出し、これによりHMD200のトラッキング処理を実現してもよい。
【0082】
なおユーザの位置情報や方向情報等を取得するためのトラッキング処理については、種々の変形実施が可能である。例えばHMD200に設けられた慣性計測ユニットを用いて、HMD200の単体でトラッキング処理を実現してもよいし、上述のような測定用の装置を外部に設けてトラッキング処理を実現してもよい。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング処理を採用してもよい。
【0083】
またHMD200として、いわゆるスマートフォンVR又はVRゴーグルと呼ばれるタイプのものを用いてもよい。このタイプのHMD200では、スマートフォンの表示部がユーザの目に対向するように、HMD200のゴーグル部の中にスマートフォンを収納する。ゴーグル部(VRゴーグル)の内側には、左眼用接眼レンズ、右眼用接眼レンズが内蔵されている。ユーザは、スマートフォンの表示部に表示された左眼用画像、右眼用画像を、各々、左眼用接眼レンズ、右眼用接眼レンズを介して見ることで、VRの立体視画像を鑑賞することができる。そしてユーザの視点位置、視線方向を特定するトラッキング処理は、スマートフォンに内蔵される慣性計測ユニット(加速度センサ、ジャイロセンサ)などに基づいて実現できる。またゴーグル部又はスマートフォンに設けられたカメラを用いて実空間の認識処理を行えばよい。
【0084】
3.本実施形態の手法
次に本実施形態の手法について詳細に説明する。なお、以下では、ユーザがHMDを装着して、蚊などのキャラクタを退治するアトラクションゲームに本実施形態の手法を適用した場合について主に例にとり説明を行う。但し本実施形態の手法は、種々のゲーム(仮想体験ゲーム、格闘ゲーム、競争ゲーム、RPG、スポーツゲーム、ホラー体験ゲーム、電車や飛行機等の乗り物のシミュレーションゲーム、パズルゲーム、コミュニケーションゲーム、或いは音楽ゲーム等)に適用でき、ゲーム以外にも適用可能である。また以下では、実空間のユーザに対応する仮想空間のユーザ移動体を、ユーザキャラクタと表記して説明を行う。このユーザキャラクタは、表示されるオブジェクトであってもよいし、オブジェクトとして表示されない仮想的なものであってもよい。
【0085】
3.1 ゲームの説明
まず本実施形態により実現されるアトラクションゲームについて説明する。本実施形態では、ユーザの周囲の実空間の認識処理を行うことにより実空間情報を取得し、取得された実空間情報に基づいて、実空間に対応する仮想空間を生成する。例えば
図4(A)では、実空間に机DKや壁WLなどの物体が存在している。この実空間を、
図2、
図3のHMD200に設けられたカメラによりスキャンする認識処理を行うことで、実空間情報を取得する。具体的には
図4(B)に示すように実空間をメッシュ化したワイヤーフレームのデータとして、実空間情報を取得する。この実空間の認識処理は例えばリアルタイムに実行され、ユーザの周囲の実空間が順次にスキャンされて実空間情報が取得される。例えばIDに対応づけられた空間データが順次に取得されて、実空間情報として、
図1の実空間情報記憶部171に蓄積されて記憶される。この実空間情報は、デプス情報(奥行き値)も有しており、このデプス情報を用いることで、例えば仮想空間のオブジェクトと実空間の物体との隠面消去処理も可能になる。また実空間情報に基づいて仮想空間を生成することで、仮想的なオブジェクト(キャラクタ、配置オブジェクト)と、実空間の物体(机DK、壁WL)とのインタラクションが可能になる。例えば仮想的なオブジェクトと実空間の物体とのヒット処理(衝突処理)なども可能になり、これまでにないタイプのMRやAR(以下、単にMRと記載する)の実現が可能になる。
【0086】
図5は、
図2の光学シースルー型のHMD200においてユーザの目に映る画像を表すものである。
図5のB1、B2、B3、B4の領域には、実空間の背景物などの風景がユーザの目に映る。そして表示領域ARVに、
図2の表示装置243により生成された仮想空間画像が表示される。ユーザが顔を左右に振ると、DR1、DR2に示すように表示領域ARVの場所が左右に移動する。そしてこの表示装置243にキャラクタや配置オブジェクトなどの仮想空間のオブジェクトの画像が表示される。これによりB1、B2、B3の実空間の風景と表示領域ARVの仮想空間画像がミックスされたMRの実現が可能になる。なお
図5では表示領域ARVが狭く、視野角が小さい場合の例を示したが、HMD200の各種のデバイスを改善することで、表示領域ARVを広くし、視野角を更に拡大することも可能である。
【0087】
図6は本実施形態のアトラクションゲームに使用されるプレイフィールドFLの例である。本実施形態のアトラクションゲームでは、例えば室内型テーマパークのプレイフィールドFLに商店街の店舗等が設置される。ユーザは例えば
図2のHMD200を頭に装着して、友達等の仲間と一緒にプレイフィールドFLを探索する。具体的には場所P1からスタートして場所P2に移動し、場所P3に出現する蚊(キャラクタ)を退治して、場所P1に戻る。その後、
図14で説明するようなライド型のアトラクションゲームをプレイする。
【0088】
そして本実施形態では、
図2のHMD200に設けられたカメラを用いて実空間の認識処理を行うことで、実空間のプレイフィールドFLに対応する仮想空間が生成されるようになる。この場合に、HMD200を装着したユーザがプレイフィールドFLを移動するにつれて、移動するユーザの周囲の実空間が順次にスキャンされて実空間情報として蓄積されて更新されるようになる。
【0089】
図6の場所P2にユーザが移動すると、
図7(A)に示すように、ユーザの正面の壁にはマーカとなるポスターPSが貼られている。HMD200のカメラによりこのポスターPS(マーカ)の認識処理を行うことで、蚊の絵が描かれた画像IMAや、ガイドGDAが表示される。即ち画像IMAやガイドGDAが
図5の表示領域ARVに表示される。ガイドGDAは、
図6の場所P3の方を指しており、ユーザが場所P3の方に視線を向けると、
図7(B)に示すような風景がユーザの目に映る。そして
図7(B)に示すように、柱PILに対応する場所に基準点RPが設定される。例えば本実施形態では、実空間の認識処理により実空間情報が取得され、ユーザの位置情報等のユーザ情報と実空間情報に基づいて、基準点RPが設定される。具体的にはHMD200のカメラにより実空間の柱PILの認識処理が行われ、実空間の柱PILに対応する仮想的なオブジェクトが仮想空間に生成される。例えば
図4(B)の机のようにメッシュポリゴンの仮想的な柱のオブジェクトが生成される。そして、この柱のオブジェクトに対応する場所に基準点RPが設定される。例えばユーザの位置情報に基づきユーザの位置が柱のオブジェクトに近いと判断された場合に、柱のオブジェクトに対して基準点RPが設定される。このようにすることで、実空間の柱PILに対応する場所に基準点RPを設定できるようになる。なおHMD200のカメラによる実空間の認識処理では正確な座標を取得できない場合がある。このため例えば
図7(A)のポスターPSによるマーカの位置の絶対座標を用いることで、正確な座標の設定を行うようにしてもよい。
【0090】
そして本実施形態では、
図8(A)に示すように、設定された基準点RPに基づいて、蚊のキャラクタCHのオブジェクトを出現させる。例えば基準点RPにより特定される配置ポイント(配置場所)に蚊のキャラクタCHを配置して出現させる。これにより
図5で説明した表示領域ARVに蚊のキャラクタCHの画像が表示されるようになり、実空間の柱PILの場所に蚊が出現したかのように見えるMRを実現できるようになる。即ち実空間の風景(柱)と仮想空間の画像(蚊)がミックスされた画像の表示が可能になる。そして本実施形態では実空間の認識処理により生成された仮想的な柱のオブジェクトに対して基準点RPが設定されている。従って、例えばARマーカ等を用いなくても、実空間の柱PILに対応するポイントから蚊のキャラクタCHを出現させることが可能になる。また
図8(A)では「前から来るぞ」という文字が書かれたガイドGD1も表示されている。このガイドGD1は仮想空間の配置オブジェクトであり、このガイドGD1の配置オブジェクトの配置ポイントも、基準点RPに基づき設定される。
【0091】
図8(B)では、後述の
図9(A)~
図10で説明するように両手でパチンと叩くアクションをユーザが行うことで、攻撃のエフェクトAG(空気砲)が表示され、蚊のキャラクタCHにヒットして、蚊が退治される。蚊の退治に成功すると、「やった、戻ろう」という文字が書かれたガイドGD2が表示される。またユーザが戻る方向を指示するガイドGD3も表示される。これらのガイドGD2、GD3の配置オブジェクトの配置位置も、基準点RPに基づき設定される。
【0092】
図9(A)~
図10では、ユーザ(US)は
図2のHMD200を頭部に装着している。またユーザは、その手HL、HRで所持物BL、BRを持っている。所持物BL、BRは、例えば大きな手の形状の紙製のうちわなどにより実現される。また手HLにはアームセンサSEを装着している。アームセンサSEは、アームバンド型のモーションセンサ(ジェスチャセンサ)であり、加速度センサ、3軸ジャイロセンサ、筋電位センサなどを内蔵している。このアームセンサSEを手HLに装着することで、腕の動きや手のひらの開閉などを検出できるようになる。
図9(A)、
図9(B)に示すように、ユーザが手HL、HRでパチンと叩くアクションを行うと、このアクションの動きがアームセンサSEの加速度センサ等により検出される。このアームセンサSEは
図1の検出部162に相当するものであり、手HL、HRでパチンと叩くアクションが、本実施形態においてユーザが行う所与の入力になる。このアクションにより、攻撃のエフェクトAGが表示され、
図10に示すように蚊のキャラクタCHが退治されて、消滅したり、破壊されるようになる。
【0093】
そして
図9(A)~
図10の場合には、後述の
図19(A)、
図19(B)で説明するように、ユーザ(US)に対応するユーザキャラクタUSC(広義にはユーザ移動体)とキャラクタCHとの間にヒットボリュームHVが設定され、このヒットボリュームHVを用いてキャラクタCHに対するヒット判定処理(衝突判定処理)が行われる。即ちユーザキャラクタUSCとキャラクタCHとの間の距離が遠い場合には、
図19(A)、
図19(B)の手法によりヒット判定処理が行われる。
【0094】
一方、
図11(A)、
図11(B)では、後述の
図17(A)、
図17(B)で説明するように、ユーザキャラクタUSCの位置に基づきヒットボリュームHVが設定され、このヒットボリュームHVを用いてキャラクタCHに対するヒット判定処理が行われる。即ちユーザキャラクタUSCとキャラクタCHとの間の距離が近い場合には、
図17(A)、
図17(B)の手法によりヒット判定処理が行われる。この場合に例えば所持物BL、BRに対応する所持物オブジェクトを仮想空間に出現させ、ユーザが手HL、HRを叩く毎に、この所持物オブジェクトの大きさを大きくするようにしてもよい。これにより、比較的遠くに位置する蚊のキャラクタCHであっても、所持物オブジェクトをヒットさせて退治することが可能になる。
【0095】
図6の場所P3に出現する蚊を、
図8(A)~
図11(B)で説明したように退治した後、ユーザは、最初のスタート地点である場所P1に戻ることになる。この場合に本実施形態では
図12(A)~
図13(B)に示すように、場所P3から場所P1にユーザを誘導して移動させるためのガイドとなる配置オブジェクトOB1~OB4を、仮想空間に配置する。具体的には場所P1に対して基準点RPが設定され、設定された基準点RPに基づいて配置オブジェクトOB1~OB4が配置される。この場合に本実施形態では、
図4(A)、
図4(B)で説明したような実空間の認識処理が行われ、実空間情報が取得される。そしてユーザの位置情報等のユーザ情報と、取得された実空間情報とに基づき、基準点RPが設定される。具体的にはHMD200のカメラにより実空間の認識処理が行われ、場所P1に配置される物体(例えば入り口、壁、ドア)に対応する仮想的なオブジェクトが仮想空間に生成される。そして、この仮想的なオブジェクトの場所に基準点RPが設定される。このようにすることで、場所P1に対して適切に基準点RPを設定できるようになり、基準点RPが設定される場所P1とユーザとの間に、ユーザを誘導するガイドとなる配置オブジェクトOB1~OB4を適切に配置できるようになる。
【0096】
そして本実施形態では、ユーザに対応する仮想空間のユーザキャラクタ(ユーザ移動体)と配置オブジェクトOB1~OB4との位置関係に応じて、配置オブジェクトOB1~OB4の表示態様を変化させている。
【0097】
例えば
図12(A)では、基準点RPから遠い位置に配置される配置オブジェクトOB1が、表示状態に設定されて表示されている。即ち
図5の表示領域ARVに配置オブジェクトOB1の画像が表示される。この配置オブジェクトOB1には例えば「こっちだよ」という文字が書かれている。
【0098】
その後、ユーザが、場所P1の基準点RPの方に移動して近づくと、
図12(B)に示すように、次の配置オブジェクトOB2が表示状態に設定されて表示される。配置オブジェクトOB2は、配置オブジェクトOB1に比べて、基準点RPに近い位置に配置されるオブジェクトである。この配置オブジェクトOB2には、例えば「こっち、こっち」という文字が書かれている。この場合に配置オブジェクトOB1については、不透明状態から半透明状態に変化し、その後、非表示状態(透明状態)へと表示態様が変化する。
【0099】
ユーザが、場所P1の基準点RPの方に更に移動して近づくと、
図13(A)に示すように、次の配置オブジェクトOB3が表示状態に設定されて表示される。配置オブジェクトOB3は、配置オブジェクトOB1、OB2に比べて、基準点RPに近い位置に配置されるオブジェクトである。この配置オブジェクトOB3には、例えば「そろそろつくよ」という文字が書かれている。この場合に配置オブジェクトOB2については、不透明状態から半透明状態に変化し、その後、非表示状態へと表示態様が変化する。
【0100】
ユーザが場所P1の基準点RPの方に更に移動して、基準点RPの場所の直ぐ近くに来ると、
図13(B)に示すように次の配置オブジェクトOB4が表示状態に設定されて表示される。配置オブジェクトOB4は、配置オブジェクトOB1、OB2、OB3に比べて、基準点RPに近い位置に配置されるオブジェクトである。この配置オブジェクトOB4には、例えば「おかえり」という文字が書かれている。この場合に配置オブジェクトOB3については、不透明状態から半透明状態に変化し、その後、非表示状態へと表示態様が変化する。
【0101】
このように本実施形態では、基準点RPに基づき設定された配置オブジェクトOB1~OB4を用いることで、基準点RPの場所P1にユーザを適切に誘導して移動させることに成功している。
【0102】
場所P1に戻ったユーザは、場所P1にその入り口が設けられるライド型のアトラクションゲームをプレイする。
図14はこのライド型のアトラクションのプレイフィールドFLRを示すものである。プレイフィールドFLRにはコースCSが設置されている。ユーザUS1、US2はライド筐体RD1、RD2に搭乗し、ライド筐体RD1、RD2はコースCSに沿って移動する。そしてプレイフィールドFLRのエリアM1~M14では、蚊が出現してユーザを襲ってくる。ユーザは、
図9(A)~
図11(B)で説明したような手をパチンと叩くアクションを行って、襲ってくる蚊を退治する。またプレイフィールドFLRの奥側の場所では、天井のオブジェクトOBCが崩壊して落ちてくるイベントEV1が発生する。この天井のオブジェクトOBCは仮想空間のオブジェクトで表現され、天井が落ちてくる仮想空間画像がHMD200に表示される。またエリアM13、M14では、大量の蚊が襲ってくるイベントEV2が発生し、最後は巨大な蚊のボスBSFが出現するイベントEV3が発生する。この蚊のボスBSFは実空間の物体であり、このボスBSFに対して、仮想空間のエフェクト画像が重畳して表示される演出が行われる。
【0103】
図15(A)、
図15(B)は、プレイフィールドFLRでの蚊の出現イベントの一例を示すものである。
図15(A)、
図15(B)では、実空間に対して穴HE1、HE2、HE3が出現し、穴HE1、HE2、HE3から蚊のキャラクタCH1、CH2、CH3が飛び出て来るようなMRが実現される。そしてユーザは、
図9(A)~
図11(B)で説明したような手をパチンと叩くアクションを行って、襲ってくる蚊を退治することができる。ここで、穴HE1、HE2、HE3の画像は仮想空間画像であり、キャラクタCH1、CH2、CH3の画像も仮想空間画像であり、これらの仮想空間画像が実空間の物体に重畳して表示されるMRが実現されている。
【0104】
そして本実施形態では、穴HE1~HE3のオブジェクトやキャラクタCH1~CH3のオブジェクトは基準点RPに基づき配置される。例えば
図4(A)、
図4(B)に示すような実空間の認識処理が、
図14のプレイフィールドFLRに配置される実空間の物体に対して行われる。これにより
図15(A)、
図15(B)の実空間の物体に対応する仮想的なオブジェクトが配置される仮想空間が生成され、生成された仮想空間において基準点RPが設定される。そしてライド筐体に搭乗して移動するユーザに対応するユーザキャラクタが、基準点RPの位置に近づくと、
図15(A)に示すように、基準点RPに関連づけて設定された穴HE1~HE3のオブジェクトが出現し、穴HE1~HE3からキャラクタCH1~CH3も出現するようになる。このようにすることで、ARマーカ等を使用しなくても、
図15(A)、
図15(B)に示すようなMRの画像を生成できるようになる。
【0105】
図16では、ガイドGDが表示されている。このガイドGDは、キャラクタCHの存在位置の方向を示す配置オブジェクトである。例えば
図5のように、HMD200の仮想空間画像の表示領域ARVが狭い場合(視野角が小さい場合)には、ユーザがキャラクタCHの方に視線を向けないと、表示領域ARVにキャラクタCHの画像を表示できない。この点、
図16のようなガイドGDを表示すれば、例えばユーザが右方向に視線を向けることで、
図5のHMD200の表示領域ARVがDR2の方向に移動して、キャラクタCHの画像が表示領域ARVに表示されるようになる。このようにガイドGDとなる配置オブジェクトを配置して表示することで、ユーザはキャラクタCHの方に視線を向けて手を叩くアクションを行うことで、蚊のキャラクタCHを退治することが可能になる。
【0106】
なおキャラクタCHの存在位置を報知する処理は、
図16のようなガイドGD等の表示物を用いる処理には限定されない。例えばHMD200等に設けられる音出力部(ヘッドホン、スピーカ)からの3次元音響を用いて、キャラクタCHの存在位置をユーザに報知してもよい。例えば右方向にキャラクタCHが存在する場合には、キャラクタCHの発生音(例えば「ブーン」という音)が、右方向から聞こえるような3次元音響の処理を行って、音出力部から出力すればよい。このようにすることで、
図5のように表示領域ARVが狭く視野角が小さいHMD200を用いた場合にも、キャラクタCHの存在位置を適切にユーザに報知できるようになる。
【0107】
3.2 基準点、ヒットボリュームの設定
以上のように本実施形態では、
図4(A)、
図4(B)で説明したようにユーザの周囲の実空間の認識処理を行うことで得られる実空間情報を取得する。またユーザの位置情報を含むユーザ情報を取得する。そして取得された実空間情報に基づいて実空間に対応する仮想空間を生成する。例えば
図4(B)に示すようなポリゴンメッシュのオブジェクトが配置される仮想空間を生成する。そして
図8(A)、
図8(B)、
図12(A)~
図13(B)、
図15(A)、
図15(B)に示すように、例えばユーザ情報(位置情報)と実空間情報とに基づいて、仮想空間に基準点RPを設定し、基準点RPに基づいて、キャラクタのオブジェクトや配置オブジェクトを仮想空間に配置し、キャラクタや配置オブジェクトの画像を含む画像を表示部190に表示する。例えばHMD200の表示部190(表示領域ARV)にキャラクタや配置オブジェクトの画像を含む仮想空間画像を表示する。
【0108】
そしてユーザに対応する仮想空間のユーザキャラクタ(広義にはユーザ移動体)の位置に基づき、ヒットボリュームを設定し、ユーザが所与の入力を行った際に、ヒットボリュームとキャラクタとの位置関係に応じて、キャラクタに対する処理を行う。
【0109】
例えば
図17(A)。
図17(B)では、実空間の認識処理(スキャン処理、マッピング処理)を行うことで取得された実空間情報に基づいて、実空間の背景物(柱、壁、ドア等)に対応する仮想空間の背景オブジェクトMRS(例えばメッシュポリゴンにより構成されるオブジェクト)が生成されている。また実空間情報等に基づいて基準点RPが設定される。実空間の背景物に対応する背景オブジェクトMRSを生成することで、実空間の背景物の対応する場所に基準点RPを設定できるようになる。そして、この基準点RPに基づいて、キャラクタCHが配置される。例えば基準点RPに基づき特定される出現ポイントからキャラクタCHを出現させる。
【0110】
基準点RPは、実空間情報に基づき設定され、キャラクタ(CH)や配置オブジェクト(OB1~OB4)の配置位置を設定するためのポイント又は場所である。キャラクタや配置オブジェクトの配意位置(出現位置)そのものが基準点RPであってもよい。基準点RPは、実空間情報に基づき設定されるため、実空間の物体の位置や形状等を反映したものになる。また基準点RPを、ユーザの位置情報や方向情報を含むユーザ情報に基づき設定することで、例えばユーザの移動や向く方向や接近等を検出して基準点を設定し、キャラクタや配置オブジェクトを出現させることが可能になる。例えば基準点RPをMRにおける擬似的なマーカのようなものとして使用できるようになる。
【0111】
また本実施形態では、実空間のユーザに対応するユーザキャラクタUSCの位置PSに基づき、ヒットボリュームHV(ヒットエリア)が設定される。例えば
図17(A)、
図17(B)では、ユーザキャラクタUSCの位置PSの前方側にヒットボリュームHVが設定される。そしてユーザが所与の入力を行った際に、ヒットボリュームHVとキャラクタCHとの位置関係が判断される。
図9(A)~
図11(B)を例にとれば、ユーザが手を叩くアクションを行った場合に、ユーザが所与の入力が行ったと判断される。そして、このように手を叩くアクションによる所与の入力が行われたタイミングでの、ヒットボリュームHVとキャラクタCHとの位置関係が判断される。
【0112】
例えばヒットボリュームHVとキャラクタCHの位置関係が
図17(A)のような位置関係であるときに、ユーザが手を叩くアクションを行ったとする。この場合にはキャラクタCHの位置が、ヒットボリュームHV内にないため、ユーザが手を叩くことによる攻撃はキャラクタCHにヒットしなかったと判断される。
【0113】
一方、ヒットボリュームHVとキャラクタCHの位置関係が
図17(B)のような位置関係であるときに、ユーザが手を叩くアクションを行ったとする。この場合には、キャラクタCHの位置がヒットボリュームHV内にあるため、ユーザが手を叩くことによる攻撃がキャラクタCHにヒットしたと判断する。そしてキャラクタCHに対する処理として、キャラクタCHの消滅処理や破壊処理などを行う。このようにすることで、
図11(A)、
図11(B)に示すように、ユーザの直ぐ近くに接近して来るキャラクタCHに対して、攻撃を加えて、消滅させたり破壊するなどの処理が可能になる。
【0114】
なお
図17(A)、
図17(B)において、キャラクタCHの位置に基づき第2のヒットボリュームを設定してもよい。そしてユーザキャラクタUSCの位置PSに基づき設定されたヒットボリュームHVと、キャラクタCHの位置に基づき設定された第2のヒットボリュームとの交差判定処理を行うことで、ヒット判定処理を実現してもよい。
【0115】
以上のように本実施形態では、実空間の認識処理に基づき取得された実空間情報により、実空間に対応する仮想空間が生成されて、基準点RPが設定される。これにより実空間に対応する位置に基準点RPを設定できるようになる。またユーザの位置情報を含むユーザ情報を用いて基準点RPを設定することで、例えばユーザに対応するユーザキャラクタが接近して来たときに、基準点RPを設定し、基準点RPによって特定される場所にキャラクタCHを配置して出現させることができる。そして本実施形態では、ユーザキャラクタUSCの位置に基づき設定されたヒットボリュームHVとキャラクタCHとの位置関係を判断して、キャラクタCHに対する処理を行っている。従って、基準点RPに基づき出現させた仮想的なキャラクタCHとユーザとの間のインタラクションを実現でき、例えばユーザの攻撃がヒットしたか否かなどを判断するヒット判定処理を実現できるようになる。従って、実空間に対して、対応する仮想空間を設定してキャラクタCHを配置し、ユーザの入力に基づくキャラクタCHとのインタラクションを実現できるようになり、実空間情報を利用したインタラクティブなゲームの実現が可能になる。即ち、実空間情報を有効活用してユーザとキャラクタとの好適なインタラクションを実現できるシミュレーションシステムの実現が可能になる。
【0116】
また本実施形態では、ヒットボリュームHVとして、ユーザの部位又はユーザの所持物に設定されるヒットボリュームを用いることができる。
【0117】
例えば
図18(A)では、ユーザの部位である手HLに対してヒットボリュームHVが設定されている。例えばユーザの手HLを内包するようなヒットボリュームHVが設定される。そしてユーザが手HLを動かすと、それに連動してヒットボリュームHVも移動する。ユーザの手HLの動きは、ユーザが装着しているアームセンサSE(広義には検出部)を用いて検出できる。例えばアームセンサSEが内蔵する加速度センサや3軸ジャイロセンサなどを用いて手HLの動きを検出して、その手HLの動きに追従するようにヒットボリュームHVを移動させる。
【0118】
また
図18(B)では、ユーザの所持物BLに対してヒットボリュームHVが設定されている。例えばユーザの所持物BLを内包するようなヒットボリュームHVが設定される。そしてユーザが所持物BLを動かすと、それに連動してヒットボリュームHVも移動する。所持物BLの動きは、アームセンサSEなどを用いて検出し、所持物BLの動きに追従するようにヒットボリュームHVを移動させる。この場合に、アームセンサSEなどの動き検出センサを所持物BLに取り付けて、所持物BLの動きを検出してもよい。また
図18(B)では所持物BLが大きな手の形状になっているが、所持物BLとしては種々の形状のものを採用できる。例えば剣、棒、斧又は銃のような形状の所持物BLであってもよい。
【0119】
このようにユーザの部位又は所持物にヒットボリュームを設定すれば、実空間においてユーザが、その部位や所持物を動かすと、それに連動してヒットボリュームも移動するようになる。従って、ユーザの部位又は所持物の動きに連動して移動するヒットボリュームを用いてヒット判定処理等を行うことが可能になり、ユーザの仮想現実感の向上を図れるようになる。
【0120】
また本実施形態では、ユーザの動きを検出する検出部162からの情報に基づいて、ユーザが所与の入力を行ったか否かを判断する。例えば
図9(A)~
図11(B)のように、ユーザが手を叩くなどのアクションにより所与の入力を行ったか否かを、検出部162を用いて検出する。例えば検出部162は
図18(A)、
図18(B)のアームセンサSEにより実現できる。具体的にはアームセンサSEに内蔵される加速度センサを用いて検出する。
図18(C)はユーザが所与の入力を行った際の加速度センサの検出結果である。ユーザが手を叩くアクションを行うと、動いていた手が急加速で停止するため、加速度センサから
図18(C)のA1に示すような検出結果(実際には負方向の加速度)が得られる。この検出結果に基づいて、ユーザが手を叩くアクションにより所与の入力を行ったと判断する。そして、所与の入力が行われたと判断されるタイミングでの、ヒットボリュームHVとキャラクタCHとの位置関係を判断すればよい。
【0121】
このようにすれば、実空間でのユーザの実際の動きを検出して、ユーザが所与の入力を行ったか否かを判断し、ヒットボリューム等を用いたヒット判定処理等を実現できるようになる。これによりユーザは、実際に部位や所持物を動かすことで、キャラクタに対する攻撃等を行えるようになり、ユーザの仮想現実感を更に向上することが可能になる。
【0122】
なおユーザが所与の入力を行ったか否かの検出処理は、このような加速度センサを用いた処理には限定されない。例えば加速度センサ以外のモーションセンサ(ジャイロセンサ等)を用いて、ユーザが入力を行った際の動きを検出したり、外部カメラなどの外部の装置を用いて、ユーザの部位や所持物の動きを検出して、ユーザが所与の入力を行ったか否かを検出してもよい。或いは、ゲームコントローラなどの操作部160を用いたユーザの操作入力を検出して、ユーザが所与の入力を行ったか否か検出してもよい。
【0123】
また本実施形態では、ユーザに対応する仮想空間のユーザキャラクタと基準点との間に、ヒットボリュームを設定し、ユーザが所与の入力を行った際に、ヒットボリュームとキャラクタとの位置関係に応じて、キャラクタに対する処理を行う。
【0124】
例えば
図19(A)では、ユーザキャラクタUSCと基準点RPとの間に、ヒットボリュームHVが設定される。例えばユーザキャラクタUSCと基準点RPとを結ぶ線の中間ポイントにヒットボリュームを設定する。ユーザキャラクタUSCが基準点RPの方に視線を向けている場合に、例えばその視線の延長上にヒットボリュームHVを設定する。そしてユーザが所与の入力を行った際に、ヒットボリュームHVとキャラクタCHとの位置関係が判断される。例えば
図9(A)~
図11(B)のように、手を叩くアクションによる所与の入力が行われたタイミングでの、ヒットボリュームHVとキャラクタCHとの位置関係が判断される。
【0125】
そしてヒットボリュームHVとキャラクタCHの位置関係が
図19(A)のような位置関係であるときに、ユーザが手を叩くアクションを行ったとする。この場合には、キャラクタCHの位置がヒットボリュームHV内にないため、ユーザが手を叩くことによる攻撃は、キャラクタCHにヒットしなかったと判断される。
【0126】
一方、ヒットボリュームHVとキャラクタCHの位置関係が
図19(B)のような位置関係であるときに、ユーザが手を叩くアクションを行ったとする。この場合には、キャラクタCHの位置がヒットボリュームHV内にあるため、ユーザが手を叩くことによる攻撃がキャラクタCHにヒットしたと判断する。そしてキャラクタCHに対する処理として、キャラクタCHの消滅処理や破壊処理などを行う。このようにすることで、
図9(A)~
図11に示すように、ユーザから距離が離れた位置にいるキャラクタCHに対して攻撃を加えて、消滅させたり破壊するなどの処理が可能になる。
【0127】
なお
図19(A)、
図19(B)において、キャラクタCHの位置に基づき第2のヒットボリュームを設定し、ユーザキャラクタUSCと基準点RPの間に設定されたヒットボリュームHVと、キャラクタCHの位置に基づき設定された第2のヒットボリュームとの交差判定処理を行うことで、ヒット判定処理を実現してもよい。またキャラクタCHが
図19(B)の位置からヒットボリュームHVの範囲を越えて、ユーザキャラクタUSCの方に接近して来た場合には、キャラクタCHの攻撃をユーザキャラクタUSCが受けたと判断してもよい。そしてユーザキャラクタUSCのステータスにダメージを与えたり、ユーザキャラクタUSCのヒットポイントを減少させたり、或いは攻撃を受けたことを表すエフェクトによる演出処理を行ってもよい。
【0128】
図19(A)、
図19(B)の手法によれば、基準点RPや基準点RPに基づき配置されるキャラクタCHの位置が、ユーザキャラクタUSCから遠くの位置にある場合にも、キャラクタCHに対するインタラクションが可能になる。即ち、基準点RPとユーザキャラクタUSCの間にヒットボリュームHVを設定することで、遠くの位置にいるキャラクタCHに対するヒット処理などが可能になり、MRにおけるユーザとキャラクタとの好適なインタラクションが可能になる。
【0129】
また本実施形態では、ユーザキャラクタUSCと基準点RPとが第1の距離関係である場合には、ユーザキャラクタUSCの位置に基づきヒットボリュームHVを設定し、ユーザが所与の入力を行った際に、ヒットボリュームHVとキャラクタCHとの位置関係に応じて、キャラクタCHに対する処理を行う。
【0130】
例えば
図17(A)、
図17(B)のように、ユーザキャラクタUSCと基準点RPの間の距離L1が近いという第1の距離関係にある場合には、ユーザキャラクタUSCの位置に基づきヒットボリュームHVを設定して、ヒット判定処理を行う。このようにすることで、ユーザキャラクタUSCから近い距離の場所でキャラクタCHを出現させた場合に、当該キャラクタCHに対してユーザキャラクタUSCの攻撃をヒットさせるなどのインタラクションを実現できるようになる。例えば
図11(A)、
図11(B)のように、ユーザの直ぐ近くにいるキャラクタCHを、ユーザの所持物BL、BRや手HL、HRで実際に叩くことで攻撃を加え、キャラクタCHを消滅させたり破壊するなどの処理が可能になる。即ち、実空間の物体である所持物BL、BRや手HL、HRを用いて、仮想空間のオブジェクトであるキャラクタCHを叩くようなMRの画像表現が可能になる。
【0131】
なお、ユーザの手などの部位や所持物に対応する部位オブジェクトや所持物オブジェクトを、仮想空間に表示するようにしてもよい。例えばユーザキャラクタの一部として、部位オブジェクト又は所持物オブジェクトを表示する。そして例えばユーザが手を叩くなどのアクションを行う毎に、部位オブジェクト又は所持物オブジェクトのサイズを徐々に大きくしてもよい。こうすることで、多数の蚊等のキャラクタを発生させた場合(例えば
図14でのイベントEV2)にも、これらの多数のキャラクタに対して、大きくなった手で攻撃するなどのゲーム演出が可能になる。
【0132】
一方、ユーザキャラクタUSCと基準点RPとが第2の距離関係である場合には、ユーザキャラクタUSCと基準点RPとの間にヒットボリュームHVを設定し、ユーザが所与の入力を行った際に、ヒットボリュームHVとキャラクタCHとの位置関係に応じて、キャラクタCHに対する処理を行う。
【0133】
例えば
図19(A)、
図19(B)のように、ユーザキャラクタUSCと基準点RPの間の距離L2が遠いという第2の距離関係にある場合には、ユーザキャラクタUSCと基準点RPとの間にヒットボリュームHVを設定して、ヒット判定処理を行う。このようにすれば、
図9(A)~
図10のようにユーザキャラクタUSCから遠い距離の場所でキャラクタCHを出現させた場合にも、当該キャラクタCHに対してユーザキャラクタUSCの攻撃をヒットさせるなどのインタラクションを実現できるようになる。例えば
図9(A)~
図10のように、遠い距離に位置するキャラクタCHに対して、ユーザの手を叩くアクションにより発生した攻撃のエフェクトAGをヒットさせて、キャラクタCHを消滅させたり破壊するなどの処理が可能になる。
【0134】
また本実施形態では、キャラクタに対する処理として、キャラクタの消滅処理、キャラクタの破壊処理、キャラクタの表示態様の変更処理又はキャラクタについての報知処理を行う。
【0135】
例えば
図20(A)ではキャラクタCHに対する処理として、キャラクタCHの消滅処理、破壊処理又は表示態様の変更処理が行われている。例えば
図17(B)、
図19(B)のようにヒットボリュームHV内にキャラクタCHが位置している状態で、
図9(A)~
図11(B)のような手を叩くなどの入力がユーザにより行われた場合に、キャラクタCHの消滅処理、破壊処理又は表示態様の変更処理を行う。キャラクタCHの消滅処理は、キャラクタCHを仮想空間画像として非表示にする処理である。例えば、表示されるオブジェクトのリストからキャラクタCHを消去する。キャラクタCHの破壊処理は、例えばキャラクタCHのオブジェクトを、破壊された状態を表すオブジェクトに切り替えることなどにより実現できる。或いは破壊を表すような画像エフェクトの表示処理を、キャラクタCHの破壊処理として行ってもよい。キャラクタCHの表示態様の変更処理は、例えばキャラクタCHの色、輝度、半透明度又はテクスチャ等を変化させる処理である。例えばキャラクタCHがユーザからの攻撃を受けたことを表すような表示態様に変化させる。或いはキャラクタCHに対する処理として、
図20(B)に示すような効果音等を用いた報知処理を行ってもよい。例えばキャラクタCHが攻撃を受けてやられたことを報知する効果音を出力する。この場合に、キャラクタCHの存在位置から効果音が聞こえてくるような3次元音響処理を行う。或いはキャラクタCHに対する処理として、振動デバイスを用いた振動による報知処理を行ってもよい。例えばキャラクタCHに攻撃がヒットしたと判断された場合に、ユーザが所持するゲームコントローラに内蔵される振動デバイスを振動させる。或いは
図6のプレイフィールドFLや
図14のプレイフィールドFLRに、振動デバイスや空気砲による体感装置を設け、この体感装置を用いて、キャラクタCHが攻撃を受けてやられたことを報知する処理を行ってもよい。
【0136】
また例えばユーザの攻撃が失敗した場合に、攻撃の失敗を知らせるような演出処理や報知処理を行ってもよい。例えば攻撃の失敗を表すエフェクト画像を表示したり、効果音を出力する。例えば
図17(B)、
図19(B)のようにキャラクタCHがヒットボリュームHV内に位置するタイミングで、ユーザが手を叩く入力を行わなかった場合に、このような攻撃の失敗を知らせる演出処理や報知処理を行う。或いは
図19(B)において、キャラクタCHがヒットボリュームHVの範囲を超えて、ユーザキャラクタUSCの方に接近して来た場合に、このような攻撃の失敗を知らせる演出処理や報知処理を行ってもよい。
【0137】
また本実施形態では、ユーザキャラクタと基準点との距離に応じて、キャラクタの配置タイミングを決定する。
【0138】
例えば
図21(A)では、ユーザキャラクタUSCと基準点RPとの間の距離LAが長い。即ち基準点RPから遠い場所にユーザキャラクタUSCが位置している。この場合には、基準点RPに対応する位置にキャラクタCHを出現させない。一方、
図21(B)では、ユーザキャラクタUSCと基準点RPとの間の距離LBが、
図21(A)の距離LAに比べて短い。即ち基準点RPに近い場所にユーザキャラクタUSCが位置している。そしてユーザキャラクタUSCと基準点RPとが、このような位置関係(接近関係)になった場合に、基準点RPに対応する位置にキャラクタCHを配置して、キャラクタCHを出現させる。
【0139】
このようにすれば、ユーザキャラクタUSCと基準点RPとの距離関係を反映させて、基準点RPに対応するキャラクタCHを出現させることが可能になる。これにより、基準点RPを、キャラクタCHを出現させる擬似的なARマーカのように用いることが可能になる。例えば本実施形態では実空間の認識処理が行われ、認識処理により取得された実空間情報に基づき基準点が設定される。具体的には
図21(A)、
図21(B)において、実空間の背景物に対応する背景オブジェクトMRSが生成されて仮想空間に配置され、この背景オブジェクトMRSに対して基準点RPが設定される。そしてユーザキャラクタUSCと基準点RPとの距離に応じて、キャラクタCHの配置タイミングが決定される。従って、あたかも実空間の背景物とユーザとの距離に応じて、キャラクタCHの配置タイミングが決定されるような処理を実現することができ、MRに好適なキャラクタCHの出現処理を実現できるようになる。
【0140】
また本実施形態では、ユーザの状況情報、ユーザキャラクタの状況情報、キャラクタの状況情報又は種類情報、或いはゲーム状況情報に応じて、基準点の設定を行う。更に本実施形態では、実空間の環境情報を取得し、環境情報に応じて、基準点の設定を行う。即ち、種々の情報に基づいて基準点の設定を可変に変化させる。
【0141】
図22に基準点の設定処理についてのフローチャートを示す。まず、実空間の明るさ情報や広さ情報などの環境情報を取得する(ステップS1)。実空間の明るさ情報や広さ情報は、例えば
図6のプレイフィールドFLや
図14のプレイフィールドFLRでの明るさ情報や広さ情報である。例えば明るさ情報は、プレイフィールドFL、FLRでの照明等による明るさ情報である。例えば照明が弱ければ、暗いと判断され、照明が強ければ、明るいと判断される。広さ情報は、プレイフィールドFL、FLRの広さの指標となる情報である。例えばプレイフィールドFL、FLRの広さや明るさに応じて、
図4(A)、
図4(B)で説明した実空間の認識処理の認識範囲や、認識の精度や信頼度等が変化する。
【0142】
次にユーザの年齢層、体格、ゲームプレイ状況等のユーザの状況情報を取得する(ステップS2)。ユーザの年齢層は、例えばユーザが子供であるか大人であるかの情報である。或いはユーザが若者であるか老人であるかの情報であってもよい。体格は、例えばユーザの身長の高さなどの情報である。或いはユーザの体重の情報であってもよい。ゲームプレイ状況は、例えばユーザのゲームプレイの熟練度(初級者、中級者又は上級者)、ユーザの装備の状況、ユーザの過去のゲーム成績、ユーザのゲームプレイ回数、ユーザのゲームプレイ頻度、ユーザのゲームでの各種ステータス、或いはユーザのフレンドに関する状況などである。
【0143】
次にユーザキャラクタのステータス、レベル、ゲームパラメータ等のユーザキャラクタの状況情報を取得する(ステップS3)。ユーザキャラクタのステータスは、ユーザキャラクタの攻撃力、防御力、耐久度又は装備などの状況である。ユーザキャラクタのレベルは、ゲームでのユーザキャラクタの経験値などのレベルを表すものである。ユーザキャラクタのゲームパラメータは、ゲーム処理の際に使用されるユーザキャラクタの各種のパラメータである。
【0144】
次にキャラクタの状況情報、種類情報を取得する(ステップS4)。キャラクタの状況情報は、キャラクタのステータス、レベル、ゲームパラメータ等の情報である。キャラクタの種類情報は、キャラクタがどのような種類に属するかについての情報である。例えばキャラクタとして、蚊以外の虫のキャラクタを出現させたり、動物のキャラクタを出現させたり、モンスターのキャラクタを出現させる場合に、種類情報は、虫や動物やモンスターの種類を表す情報である。
【0145】
次にゲーム状況情報を取得する(ステップS5)。ゲーム状況情報は、ゲームの進行状況、ゲームでのイベントの発生状況、ゲームの難易度、ゲームステージのクリア状況、或いはゲームのマップの状況などである。
【0146】
そして、取得された実空間の環境情報、ユーザの状況情報、ユーザキャラクタの状況情報、キャラクタの状況情報又は種類情報、或いはゲーム状況情報に基づいて、基準点を設定する(ステップS6)。
【0147】
例えば実空間の照明等の環境が暗いと、
図4(A)、
図4(B)の実空間の認識処理の認識範囲が狭まったり、認識の精度や信頼度が低下する。このため、環境が暗いと判断される場合には、ユーザキャラクタから近い位置に基準点を設定したり、基準点の設定間隔を狭める。例えばメインの基準点とユーザキャラクタとの間に、サブの基準点を設定する。或いは、実空間の認識処理によりリアルタイムに取得された実空間情報を用いるのではなく、過去の認識処理により取得されて実空間情報記憶部171に蓄積された実空間情報を用いて、基準点を設定する。
【0148】
またユーザの年齢層や体格に応じて基準点の設定位置を変化させる。例えば子供のユーザや背の低いユーザであれば低い位置に基準点を設定する。一方、大人のユーザや背の高いユーザであれば、子供や背の低いユーザに比べて高い位置に基準点を設定する。或いは、ユーザが初級者であるか上級者であるか、或いはユーザのゲームのプレイ回数やプレイ頻度に応じて、基準点の設定位置、設定数、設定間隔又は設定態様を変化させる。例えばユーザが初級者であれば、より難易度が低くなるように基準点を設定し、上級者であれば、より難易度が高くなるように基準点を設定する。またゲームのプレイ回数が多かったり、プレイ頻度が高いユーザに対しては、特典として、ユーザのゲームプレイがより有利になるように基準点を設定する。
【0149】
またユーザキャラクタの攻撃力、守備力、装備又は耐久力などのステータスや、レベル、或いは各種のゲームパラメータに応じて、基準点の設定位置、設定数、設定間隔又は設定態様を変化させる。例えばユーザキャラクタの能力が高いか低いか、或いはユーザが所定の装備をしているか否かに応じて、基準点の設定を変化させる。或いはキャラクタの状況情報や種類情報に応じて、基準点の設定位置、設定数、設定間隔又は設定態様を変化させる。例えばキャラクタの攻撃力、守備力、装備又は耐久力などのステータスに応じて基準点の設定を変化させる。或いは出現するキャラクタが第1の種類(例えば第1の種類の虫、動物、モンスター)である場合と第2の種類である場合とで、基準点の設定位置などを変化させる。
【0150】
またゲーム状況に応じて、基準点の設定位置、設定数、設定間隔又は設定態様を変化させる。例えばゲームの進行状況やイベントの発生状況に応じて基準点の設定を変化させる。例えば
図14において天井のオブジェクトOBCの崩壊イベントが発生した場合には、天井のオブジェクトOBCの破片の奥側に基準点が設定されるのは好ましくないため、破片の手前側に基準点を設定する。或いはゲームの難易度に応じて、基準点の設定位置、設定数又は設定間隔等を変化させる。例えば、ゲームの難易度が高くなるにつれて、ユーザのゲームのクリアが難しくなうように基準点の設定を変化させる。
【0151】
以上のようにすることで、実空間の環境、ユーザの状況、ユーザキャラクタの状況、キャラクタの状況又は種類、或いはゲーム状況に応じた適切な基準点の設定が可能になる。
【0152】
また本実施形態では、基準点の位置に応じて、ヒットボリュームを変化させる。例えば基準点の位置に応じて、ヒットボリュームの大きさ、形状又は配置位置等を変化させる。
【0153】
例えば
図23では、ユーザキャラクタUSCの正面方向(視線方向)に位置する基準点RPに対して、ヒットボリュームHVが設定され、ユーザキャラクタUSCの左斜め方向に位置する基準点RP2に対して、ヒットボリュームHV2が設定される。そしてユーザキャラクタUSCの正面方向に設定されるヒットボリュームHVの方が、左斜め方向に設定されるヒットボリュームHV2よりも大きいサイズに設定される。このようにすれば、正面方向から襲ってきた蚊等のキャラクタに対する攻撃は容易になるが、左斜め方向等の正面方向以外の方向から襲ってきたキャラクタに対する攻撃は難しくなる。なお、逆に正面方向に設定されるヒットボリュームのサイズを小さくし、正面方向以外の方向に設定されるヒットボリュームのサイズを大きくするなどの変形実施も可能である。
【0154】
また
図24(A)では、基準点RPとユーザキャラクタUSCとの間の距離が遠く、この場合にはヒットボリュームHVが大きなサイズに設定される。一方、
図24(B)では基準点RPとユーザキャラクタUSCとの間の距離が近く、この場合にはヒットボリュームHVが小さなサイズに設定される。例えば基準点RPとユーザキャラクタUSCとの距離に応じて、ヒットボリュームのサイズを変化させる。このようにすれば、
図24(A)のように基準点RPがユーザキャラクタUSCから遠くの距離にあり、蚊等のキャラクタが遠くの場所で出現する場合には、ヒットボリュームHVが大きなサイズに設定されることで、遠くの場所に位置するキャラクタに対する攻撃を容易化できる。そしてユーザキャラクタUSCが基準点RPに近づくと、ヒットボリュームHVのサイズが小さくなり、通常のサイズに設定される。
【0155】
このように基準点の位置に応じてヒットボリュームを変化させることで、例えばユーザキャラクタと基準点との位置関係等に応じた適切なヒットボリュームを設定することが可能になる。
【0156】
また本実施形態では、ユーザの状況情報、ユーザキャラクタの状況情報、キャラクタの状況情報又は種類情報、或いはゲーム状況情報に応じて、ヒットボリュームを変化させる。
【0157】
図25はヒットボリュームの設定処理についてのフローチャートである。まず、ユーザの年齢層、体格、ゲームプレイ状況等のユーザの状況情報を取得する(ステップS11)。次にユーザキャラクタのステータス、レベル、ゲームパラメータ等のユーザキャラクタの状況情報を取得する(ステップS12)。またキャラクタの状況情報、種類情報を取得する(ステップS13)。更にゲーム状況情報を取得する(ステップS14)。これらのユーザの状況情報、ユーザキャラクタの状況情報、キャラクタの状況情報、種類情報、ゲーム状況情報は、前述した通りの情報である。
【0158】
そして、ユーザの状況情報、ユーザキャラクタの状況情報、キャラクタの状況情報又は種類情報、或いはゲーム状況情報に基づいて、ヒットボリュームを変化させる(ステップS15)。例えばこれらの情報に基づいて、ヒットボリュームの大きさ、形状又は配置位置等を変化させる。
【0159】
例えばユーザの年齢層や体格に応じてヒットボリュームを変化させる。例えば子供のユーザや背の低いユーザであれば低い位置にヒットボリュームを設定する。一方、大人のユーザや背の高いユーザであれば、子供や背の低いユーザに比べて高い位置にヒットボリュームを設定する。また、ユーザが初級者であるか上級者であるか、或いはユーザのゲームのプレイ回数やプレイ頻度に応じて、ヒットボリュームの大きさ、形状又は配置位置を変化させる。例えばユーザが初級者であれば、より難易度が低くなるようにヒットボリュームを設定し、上級者であれば、より難易度が高くなるようにヒットボリュームを設定する。またユーザのゲームのプレイ回数が多かったり、プレイ頻度が高いユーザに対しては、特典として、ユーザのゲームプレイがより有利になるようにヒットボリュームを設定する。
【0160】
またユーザキャラクタの攻撃力、守備力、装備又は耐久力などのステータスや、レベル、或いは各種のゲームパラメータに応じて、ヒットボリュームの大きさ、形状又は配置位置を変化させる。例えばユーザキャラクタの能力が高いか低いか、或いはユーザが所定の装備をしているか否かに応じて、ヒットボリュームを変化させる。或いはキャラクタの状況情報や種類情報に応じて、ヒットボリュームを変化させる。例えばキャラクタの攻撃力、守備力、装備又は耐久力などのステータスに応じて、ヒットボリュームを変化させる。或いは出現するキャラクタが第1の種類である場合と第2の種類である場合とで、ヒットボリュームの大きさ、形状又は配置位置を変化させる。
【0161】
またゲーム状況に応じて、ヒットボリュームの大きさ、形状又は配置位置を変化させる。例えばゲームにおいて所定のイベントが発生したかに応じてヒットボリュームを変化させる。或いはゲームの難易度に応じてヒットボリュームを変化させる。例えば、ゲームの難易度が高くなるにつれて、ユーザのゲームのクリアが難しくなうようにヒットボリュームの大きさ、形状又は配置位置を変化させる。
【0162】
以上のようにすることで、ユーザの状況、ユーザキャラクタの状況、キャラクタの状況又は種類、或いはゲーム状況に応じた適切なヒットボリュームの設定が可能になる。
【0163】
4.詳細な処理
次に本実施形態の詳細な処理例について
図26のフローチャートを用いて説明する。
【0164】
まずユーザの周囲の実空間の認識処理を行って、実空間情報を取得する(ステップS21)。即ち
図4(A)、
図4(B)で説明したような実空間のスキャン処理を行って、取得された実空間情報を
図1の実空間情報記憶部171に蓄積して行く。またユーザの位置情報を含むユーザ情報を取得する(ステップS22)。例えば
図2、
図3で説明したHMD200のトラッキング処理等により、ユーザの位置情報や、ユーザの方向情報、姿勢情報などを含むユーザ情報を取得する。
【0165】
次に、取得された実空間情報に基づいて、実空間に対応する仮想空間を生成する(ステップS23)。例えば
図4(B)に示すような実空間の物体(机、壁等)に対応する仮想的なオブジェクトを生成して、仮想空間に配置設定する。そしてユーザ情報と実空間情報に基づき、基準点を設定し、基準点に基づいてキャラクタのオブジェクトを仮想空間に配置する(ステップS24)。例えば
図7(B)に示すように基準点RPを設定し、
図8(A)、
図8(B)に示すように、基準点RPにより設定される位置にキャラクタCHを配置して出現させる。
【0166】
次にユーザキャラクタの位置に基づきヒットボリュームを設定、或いはユーザキャラクタと基準点との間にヒットボリュームを設定する(ステップS25)。例えば
図17(A)に示すように、ユーザキャラクタUSCの位置PSに基づいてヒットボリュームHVを設定する。或いは
図19(A)に示すように、ユーザキャラクタUSCと基準点RPとの間にヒットボリュームHVを設定する。そしてユーザが所与の入力を行ったか否かを判断する(ステップS26)。例えば
図9(A)~
図11(B)で説明したような手を叩くアクションによる入力を行ったか否かを判断する。そしてヒットボリュームとキャラクタとの位置関係に応じてキャラクタに対する処理を実行する(ステップS27)。例えば
図17(A)、
図17(B)、
図19(A)、
図19(B)で説明したように、ヒットボリュームHV内にキャラクタCHが位置すると判断された場合や、ヒットボリュームHVとキャラクタCHに設定された第2のヒットボリュームとが交差したと判断された場合に、
図20(A)、
図20(B)で説明したようなキャラクタCHの消滅処理、破壊処理、表示態様変更処理又は報知処理等を実行する。
【0167】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(ユーザ移動体、検出部等)と共に記載された用語(ユーザキャラクタ、アームセンサ等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また実空間情報やユーザ情報の取得処理、仮想空間の生成処理、基準点の設定処理、キャラクタの配置処理、ヒットボリュームの設定処理、位置関係の判断処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。
【符号の説明】
【0168】
RP、RP2 基準点、CH、CH1~CH3 キャラクタ、
OB1~OB4 配置オブジェクト、HV、HV2 ヒットボリューム、
US、US1、US2 ユーザ、USC ユーザキャラクタ、PS 位置、
MRS 背景オブジェクト、DK 机、WL 壁、ARV 表示領域、
HL、HR 手、BL、BR 所持物、SE アームセンサ、
FL、FLR プレイフィールド、GD、GDA、GD1~GD3 ガイド、
PS ポスター、IMA 画像、PIL 柱、RD1、RD2 ライド筐体、
AG 攻撃のエフェクト、HE1~HE3 穴、CS コース、OBC オブジェクト、
100 処理部、102 情報取得部、104 仮想空間生成部、
106 オブジェクト処理部、108 基準点設定部、109 ヒット処理部、
107 移動体処理部、112 仮想カメラ制御部、114 ゲーム処理部、
120 表示処理部、130 音処理部、170 記憶部、171 実空間情報記憶部、
172 オブジェクト情報記憶部、178 描画バッファ、
180 情報記憶媒体、192 音出力部、194 I/F部、
195 携帯型情報記憶媒体、196 通信部、
200 HMD(頭部装着型表示装置)、216 RGBカメラ、
217 デプスカメラ、218、219 環境認識カメラ、
240 テンプル部、242 ゴーグル部、243 表示装置、
244 ホログラフィック光学素子、246 RGBカメラ、247 デプスカメラ、
248、249 環境認識カメラ、