(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-25
(45)【発行日】2024-01-09
(54)【発明の名称】画像表示システム、画像表示方法及び画像表示プログラム
(51)【国際特許分類】
G06F 3/01 20060101AFI20231226BHJP
G06F 3/0346 20130101ALI20231226BHJP
G06T 19/00 20110101ALI20231226BHJP
A63F 13/212 20140101ALI20231226BHJP
A63F 13/55 20140101ALI20231226BHJP
A63F 13/65 20140101ALI20231226BHJP
A63F 13/428 20140101ALI20231226BHJP
【FI】
G06F3/01 510
G06F3/0346 424
G06T19/00 A
A63F13/212
A63F13/55
A63F13/65
A63F13/428
(21)【出願番号】P 2021211783
(22)【出願日】2021-12-27
(62)【分割の表示】P 2018154384の分割
【原出願日】2018-08-21
【審査請求日】2022-01-25
(73)【特許権者】
【識別番号】504437801
【氏名又は名称】グリー株式会社
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】ブーシェ ロビン
【審査官】木内 康裕
(56)【参考文献】
【文献】特開2011-175623(JP,A)
【文献】特開2001-236520(JP,A)
【文献】特開2017-046899(JP,A)
【文献】特開2010-246613(JP,A)
【文献】特開2012-043195(JP,A)
【文献】特開2011-039844(JP,A)
【文献】特開2010-253016(JP,A)
【文献】特開2004-258714(JP,A)
【文献】特開2018-116484(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/033 - 3/039
G06F 3/048 - 3/04895
G06T 19/00
A63F 13/212
A63F 13/55
A63F 13/65
A63F 13/428
(57)【特許請求の範囲】
【請求項1】
ユーザが用いるディスプレイに仮想空間内の画像を表示する画像表示システムにおいて、
前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得する検出データ取得部と、
前記検出データに基づいて、
前記ユーザの身体に装着された前記位置検出センサによって特定した第1の位置と、前記ユーザの身体以外の位置に設けられた前記位置検出センサによって特定した第2の位置との相対距離を算出する距離算出部と、
前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定する設定部と、
前記ユーザの動作に伴って、
前記ユーザの身体に装着された前記位置検出センサによって特定した位置が、前記境界を越えた場合又は前記境界と重なった場合に、当該特定した位置の移動方向に基づいてオブジェクトを移動させるアクション実行部と、を備える画像表示システム。
【請求項2】
ユーザが用いるディスプレイに仮想空間内の画像を表示する画像表示システムにおいて、
前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得する検出データ取得部と、
前記検出データに基づいて、1対の前記位置検出センサによって特定した位置同士の相対距離を算出する距離算出部と、
前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定する設定部と、
前記ユーザの動作に伴って、
前記1対の位置検出センサのうち前記ユーザの身体に装着された前記位置検出センサによって特定した位置が、前記境界を越えた場合又は前記境界と重なった場合に、当該特定した位置の移動方向に基づいて
、前記境界とは異なる位置にあるオブジェクトを移動させるアクション実行部と、を備える画像表示システム。
【請求項3】
前記アクション実行部は、前記オブジェクトとして、前記ユーザに対応する仮想キャラクタ又は前記仮想キャラクタに関連付けられたオブジェクトを移動させる
請求項1
又は2に記載の画像表示システム。
【請求項4】
前記アクション実行部は、前記特定した位置の前記移動方向に基づき、前記ユーザの前記仮想空間内の視点からみて、前記オブジェクトを、前方、後方、左側、右側、上方及び下方のいずれか一つの方向に移動させる、請求項1
~3のいずれか1項に記載の画像表示システム。
【請求項5】
前記アクション実行部は、前記特定した位置の前記移動方向と同じ方向に前記オブジェクトを移動させる、請求項1~
4のいずれか1項に記載の画像表示システム。
【請求項6】
前記アクション実行部は、前記特定した位置の前記移動方向に対して反対方向に前記オブジェクトを移動させる、請求項1~
4のいずれか1項に記載の画像表示システム。
【請求項7】
前記ユーザの身体に少なくとも2つの前記位置検出センサが装着され、
前記アクション実行部は、
前記ユーザの身体に装着された2つの前記位置検出センサによって特定した位置が交互に前記境界を越えた場合又は前記境界と重なった場合に、前記ユーザの前記仮想空間内の視点からみて、前記オブジェクトを上方へ移動させる、請求項1~
6のいずれか1項に記載の画像表示システム。
【請求項8】
前記アクション実行部は、
前記ユーザの身体に装着された前記位置検出センサによって前記特定した位置の単位時間あたりの移動距離である速度を取得し、前記速度を前記オブジェクトの移動に反映する
請求項1~
7のいずれか1項に記載の画像表示システム。
【請求項9】
1乃至複数のコンピュータを用いて、ユーザが用いるディスプレイに仮想空間内の画像を表示する画像表示方法であって、
前記コンピュータが、
前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得するステップと、
前記検出データに基づいて、
前記ユーザの身体に装着された前記位置検出センサによって特定した第1の位置と、前記ユーザの身体以外の位置に設けられた前記位置検出センサによって特定した第2の位置との相対距離を算出するステップと、
前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定するステップと、
前記ユーザの動作に伴って、
前記ユーザの身体に装着された前記位置検出センサによって特定した位置が、前記境界を越えた場合又は前記境界と重なった場合に、当該特定した位置の移動方向に基づいてオブジェクトを移動させるステップと、を実行する画像表示方法。
【請求項10】
1乃至複数のコンピュータを用いて、ユーザが用いるディスプレイに仮想空間内の画像を表示する画像表示方法であって、
前記コンピュータが、
前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得するステップと、
前記検出データに基づいて、1対の前記位置検出センサによって特定した位置同士の相対距離を算出するステップと、
前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定するステップと、
前記ユーザの動作に伴って、
前記1対の位置検出センサのうち前記ユーザの身体に装着された前記位置検出センサによって特定した位置が、前記境界を越えた場合又は前記境界と重なった場合に、当該特定した位置の移動方向に基づいて
、前記境界とは異なる位置にあるオブジェクトを移動させるステップと、を実行する画像表示方法。
【請求項11】
1乃至複数のコンピュータを用いて、ユーザが用いるディスプレイに仮想空間内の画像を表示させる画像表示プログラムであって、
前記コンピュータに、
前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得するステップと、
前記検出データに基づいて、
前記ユーザの身体に装着された前記位置検出センサによって特定した第1の位置と、前記ユーザの身体以外の位置に設けられた前記位置検出センサによって特定した第2の位置との相対距離を算出するステップと、
前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定するステップと、
前記ユーザの動作に伴って、
前記ユーザの身体に装着された前記位置検出センサによって特定した位置が、前記境界を越えた場合又は前記境界と重なった場合に、当該特定した位置の移動方向に基づいてオブジェクトを移動させるステップと、を実行させる画像表示プログラム。
【請求項12】
1乃至複数のコンピュータを用いて、ユーザが用いるディスプレイに仮想空間内の画像を表示させる画像表示プログラムであって、
前記コンピュータに、
前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得するステップと、
前記検出データに基づいて、1対の前記位置検出センサによって特定した位置同士の相対距離を算出するステップと、
前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定するステップと、
前記ユーザの動作に伴って、
前記1対の位置検出センサのうち前記ユーザの身体に装着された前記位置検出センサによって特定した位置が、前記境界を越えた場合又は前記境界と重なった場合に、当該特定した位置の移動方向に基づいて
、前記境界とは異なる位置にあるオブジェクトを移動させるステップと、を実行させる画像表示プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像表示システム、画像表示方法及び画像表示プログラムに関する。
【背景技術】
【0002】
現実空間でのユーザの動作を、各種センサ等を用いて検出し、仮想空間内のオブジェクトに反映するゲームが知られている。特許文献1には、釣りゲームに用いられる入力装置が開示されている。入力装置は、加速度や傾きを検出可能なセンサを内蔵し、ゲーム処理装置に接続されている。トリガボタンをオンにした状態で実際に釣り竿を投げ入れるような動作で入力装置を動かすと、水面に釣り糸が投げ入れられた画像が、ゲーム処理装置に接続されたディスプレイに表示される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記システムでは、トリガボタンをオン状態にした状態で入力装置を少し動かした場合に、ユーザの意図に反して水面に釣り糸が投げ入れられる可能性がある。このように現実世界でユーザが行った動作と、反映された画像との間に乖離が生じると、ユーザが違和感を覚える恐れがある。
【0005】
本発明は、ユーザの動作を仮想空間内のアクションに反映する場合に、ユーザの違和感を少なくした画像を表示することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決する画像表示システムは、ユーザが用いるディスプレイに仮想空間内の画像を表示する画像表示システムにおいて、前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得する検出データ取得部と、前記検出データに基づいて、1対の前記位置検出センサの相対距離を算出する距離算出部と、前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定する設定部と、前記ユーザの動作に伴って、いずれかの前記位置検出センサが、前記境界との位置関係の条件を充足するか否か判定する判定部と、前記位置関係が前記条件を充足した場合に、前記ユーザの動作に対応するアクションを仮想空間内で実行するアクション実行部と、を備える。
【0007】
上記課題を解決する画像表示方法は、1乃至複数のコンピュータを用いて、ユーザが用いるディスプレイに仮想空間内の画像を表示する画像表示方法において、前記コンピュータが、前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得するステップと、前記検出データに基づいて、1対の前記位置検出センサの相対距離を算出するステップと、前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定するステップと、前記ユーザの動作に伴って、いずれかの前記位置検出センサが、前記境界との位置関係の条件を充足するか否かを判定するステップと、前記位置関係が前記条件を充足した場合に、前記ユーザの動作に対応するアクションを仮想空間内で実行するステップと、を有する。
【0008】
上記課題を解決する画像表示プログラムは、1乃至複数のコンピュータに、ユーザが用いるディスプレイに仮想空間内の画像を表示させる画像表示プログラムにおいて、前記コンピュータに、前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得するステップと、前記検出データに基づいて、1対の前記位置検出センサの相対距離を算出するステップと、前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定するステップと、前記ユーザの動作に伴って、いずれかの前記位置検出センサが、前記境界との位置関係の条件を充足するか否かを判定するステップと、前記位置関係が前記条件を充足した場合に、前記ユーザの動作に対応するアクションを仮想空間内で実行するステップと、を実行させる。
【発明の効果】
【0009】
本発明にかかる画像表示システム、画像表示方法及び画像表示プログラムによれば、ユーザの動作を仮想空間内のアクションに反映する場合に、ユーザの違和感を少なくした画像を表示することができる。
【図面の簡単な説明】
【0010】
【
図1】画像表示システムの第1実施形態の概略構成を示す図。
【
図2】同実施形態の画像表示システムのブロック図。
【
図6】同実施形態のオブジェクトの移動距離の算出に用いるデータであって、(a)はテーブル、(b)はマップを示す。
【
図8】同実施形態の境界の設定手順を説明するフローチャート。
【
図9】同実施形態のゲームの進行を説明するフローチャート。
【
図10】同実施形態の境界の利用態様を説明する図であって、(a)はオブジェクトの後方移動、(b)は後方右側への移動、(c)は後方左側への移動を示す。
【
図11】第2実施形態の境界の利用態様を説明する図であって、(a)はオブジェクトの前方移動、(b)は前方左側への移動、(c)は前方右側への移動を示す。
【
図12】同実施形態の境界の利用態様を説明する図であって、オブジェクトの上昇を示す。
【
図13】同実施形態のゲームの進行を説明するフローチャート。
【
図14】画像表示システムの変形例における境界の利用態様を示す図であって、(a)は境界の設定、(b)はアクションの開始の判定、(c)はアクションの完了の判定を示す。
【
図15】画像表示システムの変形例における境界の利用態様を示す図であって、(a)は境界の設定、(b)は足首位置が境界よりも低い場合のアクションの種類の判定、(c)は足首位置が境界よりも高い場合のアクションの種類の判定を示す。
【発明を実施するための形態】
【0011】
(第1実施形態)
画像処理システムの一実施形態について説明する。
図1に示すように、画像処理システムは、筐体11、トラッキングシステム20、ヘッドマウントディスプレイ30(HMD:Head Mounted Display)、ゲーム処理装置50を有している。トラッキングシステム20は、トラッキング補助装置21及び複数のトラッキングセンサ22を有している。ゲーム処理装置50は、検出データ取得部、距離算出部、設定部、判定部、アクション実行部に対応する。トラッキングセンサ22は、位置検出センサに対応する。
【0012】
筐体11は、ブランコを模している。筐体11は、支持体12と、支持体12に吊り部13を介して吊り下げられた着座部15とを備える。着座部15の着座面に対して反対側となる裏面には、トラッキングセンサ22が設けられている。また、着座部15は大きく揺動しないように、その揺動範囲が所定範囲に制限されている。例えば、吊り部13又は着座部15には、振幅を制限する部材が設けられていてもよく、吊り部13や着座部15の重量を大きくしてもよい。
【0013】
着座部15には、頭部にHMD30を装着したユーザ200が着座する。ユーザ200の足首付近には、トラッキングセンサ22が装着される。なお、トラッキングセンサ22の位置は、足首付近以外に、つま先、踵等であっていてもよい。トラッキングセンサ22は、トラッキングセンサ22自体がユーザ200の身体に装着可能な構造であってもよいし、例えばベルト等の装着部材を介してユーザ200に装着可能な構造であってもよい。
【0014】
ゲーム処理装置50は、筐体11が配置された空間又はそれ以外の位置に設けられ、HMD30に対して通信ケーブル又は無線で接続され、双方向にデータを送受信可能となっている。ゲーム処理装置50は、HMD30に仮想空間の画像を表示させながらゲームを進行する処理を行う。
【0015】
トラッキングシステム20は、トラッキングセンサ22とトラッキング空間に配置されたセンサを用いるシステムである。筐体11が配置された空間には、トラッキング補助装置21が配置される。トラッキング補助装置21及びHMD30は、協働してゲーム処理装置50にHMD30の位置を検出するための検出データをゲーム処理装置50へ送信する。また、トラッキング補助装置21及びトラッキングセンサ22は、協働して、トラッキングセンサ22の位置を検出するための検出データをゲーム処理装置50へ送信する。
【0016】
ゲーム処理装置50は、トラッキング補助装置21及びトラッキングセンサ22のうち少なくとも一方から送信されたデータに基づき、着座部15に着座したユーザ200の足の動作を検出する。ゲーム処理装置50は、例えば、ユーザが、両足を同期させて動かしたり、片足ずつ動かしたりする動作を検出して、所定の条件を満たすか否かを判定する。ゲーム処理装置50は、所定の条件を満たすと判定すると、ユーザに対応する仮想人物(アバター、キャラクター)のアクションを実行する。本実施形態では、現実世界においてユーザ200が足を前方に蹴り出す動作を行うことで、ユーザ200に対応する仮想人物が、仮想空間内で足に履いている靴オブジェクトを前方に飛ばす「靴飛ばし(Kick the shoe on the swing)」のアクションを実行させるゲームに例示して説明する。
【0017】
図2を参照して、HMD30、トラッキングセンサ22、トラッキング補助装置21の構成について詳述する。
HMD30は、ウェアラブルコンピュータであって、両眼を覆うハウジングを備える非透過型のディスプレイ、それ以外の透過型のディスレイである。非透過型のヘッドマウントディスプレイは、1乃至複数のディスプレイに、左眼に視認させるための画像と右眼に視認させるための画像とをそれぞれ表示してもよいし、左眼用の画像と右眼用の画像を共通にしてディスプレイに表示してもよい。透過型ディスプレイは、ヘッドマウントディスプレイ又はそれ以外に設けられたカメラによって撮影された画像をディスプレイに表示させるものでもよく、ディスプレイがハーフミラー又は透明材料から形成され、現実世界を視認可能にしてもよい。また、HMD30は、ハウジングやフレーム等にディスプレイを固定したものであってもよいし、スマートフォン等の多機能電話端末を所定のハウジングに着脱可能に固定するものであってもよい。HMD30は、仮想現実(VR:Virtual Reality)、現実世界をユーザに視認させつつ仮想空間のコンテンツを提供する拡張現実(AR:Augmented Reality)、又はこれらを包含する複合現実(MR:Mixed Reality)等の画像を表示する。本実施形態では、HMD30を、非透過型のディスプレイとして説明する。
【0018】
HMD30は、情報処理部31、計測装置32、ディスプレイ33を有する。情報処理部31は、ゲームを進行させるための処理を実行する。情報処理部31は、自身が実行するすべての処理についてソフトウェア処理を行うものに限られない。例えば、情報処理部31は、自身が実行する処理の少なくとも一部についてハードウェアを行う専用のハードウェア回路(例えば特定用途向け集積回路:ASIC)を備えてもよい。すなわち、情報処理部31は、コンピュータプログラム(ソフトウェア)に従って動作する1又は複数のプロセッサ、各種処理のうち少なくとも一部の処理を実行する1又は複数の専用のハードウェア回路、或いはそれらの組み合わせ、を含む回路(circuitry)として構成し得る。プロセッサは、CPU、MPU、GPU等の演算処理装置、並びにRAMやROM等の記憶媒体を含んでいる。また、情報処理部31は、HDD、SSD等のストレージである記憶媒体(メモリ)を備えている。これらの記憶媒体のうち少なくとも一つは、処理をCPUに実行させるように構成されたプログラムコード又は指令を格納している。記憶媒体すなわちコンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。計測装置32は、HMD30の向きを少なくとも検出する装置であって、例えば慣性計測装置(IMU:Inertial Measurement Unit)である。例えば、慣性計測装置は、ジャイロセンサ、加速度センサ等を備え、X軸、Y軸、及びZ軸を中心とした回転角度、角速度と、加速度等の少なくとも一つを検出する。ディスプレイ33は、有機ELディスプレイ、又は液晶ディスプレイ等である。
【0019】
トラッキングセンサ22は、自らの位置及び向きを検出するためのセンサである。例えば、トラッキングセンサ22は、HMD30と同様に、慣性計測装置を有している。
また、トラッキングセンサ22は、複数のトラッキング補助装置21と協働して、自らの位置及び向きに応じた信号を出力する。トラッキングセンサ22及びトラッキング補助装置21が協働することで、空間内のトラッキングセンサ22の位置を検出することができる。トラッキング補助装置21の一例として、多軸レーザ発振器を用いることができる。このトラッキング補助装置21は、筐体11を配置する空間の上方に、互いに対角となるように設けられる。トラッキング補助装置21は、パルスレーザ光を出射する。トラッキングセンサ22は、レーザ光を検出するセンサを備え、同期パルスで同期をとりつつ、自らの位置及び向きを検出する。トラッキングセンサ22及びトラッキング補助装置21は、例えば、HTC Corporation(登録商標)から提供されているVive Tracker(登録商標)及びVive Base Stationを用いることができる。
【0020】
ゲーム処理装置50は、位置特定部51、画像処理部52、進行管理部53、データ記憶部60を備えている。位置特定部51は、HMD30及びトラッキング補助装置21の少なくとも一方から取得したデータに基づいて、HMD30の向きを特定する。また、HMD30の向きに加えて、HMD30の位置を特定するようにしてもよい。さらに、位置特定部51は、トラッキングセンサ22及びトラッキング補助装置21の少なくとも一方から取得したデータに基づいて、トラッキングセンサ22の向き及び位置を特定する。
【0021】
画像処理部52は、位置特定部51が特定したHMD30の向きや位置に合わせて、仮想空間の画像をディスプレイ33に表示する。また、画像処理部52は、仮想空間の一部として、ユーザに対応する仮想人物の身体の一部を表示する。
【0022】
進行管理部53は、ゲームの進行を管理し、位置特定部51及び画像処理部52が実行する処理以外の処理を行う。進行管理部53は、ゲーム開始条件が成立した場合にゲームを開始する。ゲーム開始条件は、例えば、ユーザ又はゲームの管理者による指示を入力したこと等である。また、進行管理部53は、ゲーム終了条件が成立した場合にゲームを終了する。ゲーム終了条件は、ゲームに応じて変更することができる。例えば、ゲーム終了条件は、ゲームを開始してからの経過時間が制限時間に達したこと、ユーザの得点が閾値に達したこと、又はミッションを達成したこと等である。
【0023】
データ記憶部60は、HDD(Hard Disk Drive)、又はSSD(Solid State Drive)等の記憶媒体によって構成される。データ記憶部60には、ゲーム処理プログラム及びその他のプログラムが格納されている。位置特定部51、画像処理部52、進行管理部53は、これらのプログラムに記述されたコンピュータが読み取り可能な命令を実行して、ゲームを進行させる。
【0024】
データ記憶部60には、設定情報61、ゲーム空間データ62、ゲーム進行データ63が記憶されている。設定情報61には、トラッキングセンサ22の位置に基づいて設定した境界情報が含まれている。
【0025】
ゲーム空間データ62は、ゲームの行われる空間を描画するためのデータである。例えば、ゲームフィールドの背景を描画するためのデータや、仮想空間内のオブジェクトを描画するためのデータを含む。こうしたオブジェクトには、ゲームフィールドを移動する敵等のオブジェクトや、所定の条件を満たすときにのみ表示されるオブジェクトが含まれる。ゲーム空間データ62には、こうしたオブジェクトの仮想空間における位置情報も含まれる。
【0026】
ゲーム進行データ63は、ゲームの進行の管理に用いられるデータであって、ゲームの進行に応じて更新される。ゲーム進行データ63は、ユーザに関連付けられたユーザ属性情報を含む。ユーザ属性情報には、ユーザの設定情報、ユーザのパラメータ、ゲーム媒体、及びゲーム媒体に関連付けられた属性情報の少なくとも一つが含まれる。ユーザの設定情報は、性別、年齢又は年齢層、所在地、メールアドレス等である。ユーザのパラメータは、例えばユーザに対応する仮想人物のパラメータであって、得点、勝利回数、敗北回数等のゲーム結果や、レベル、ステータス、能力、スキル、アビリティ、攻撃力、防御力、HP、ライフ、体力値、回復力、呪文、ジョブ等の対戦用パラメータ等である。ゲーム媒体は、ゲームに使用される電子データ(コンテンツ)であり、ユーザによってゲーム内で取得、所有、使用、管理、交換、合成、強化、売却、廃棄、又は贈与等され得る。例えば、カード、アイテム、仮想通貨、チケット、キャラクタ、アバタ等、任意の媒体を含む。ゲーム媒体の属性情報は、ゲーム媒体のパラメータ等であって、ユーザ属性情報等と同様である。なお、ユーザのパラメータ、ゲーム媒体に関連付けられた属性情報が、取得、所有、使用、管理、交換、合成、強化、売却、廃棄、又は贈与等されてもよい。また、ゲーム進行データ63には、敵に関する情報を含めてもよい。敵に関する情報には、例えば、敵の体力値等のように敵の倒しやすさを示す情報が含まれる。
【0027】
ゲーム処理装置50には、入力操作部65がデータを送受信可能に接続されている。入力操作部65は、マウス、キーボード、タッチパネル装置等のポインティングデバイスである。入力操作部65は、ゲーム処理装置50に通信ケーブル又は無線通信によって接続されている。入力操作部65は、ユーザ又はゲーム管理者によって用いられる。
【0028】
図3を参照して、ユーザ200についてアクションを判定するための境界の設定方法について説明する。ユーザ200は、両足首付近にトラッキングセンサ22を装着した状態で、着座部15に着座する。このとき、ユーザ200の足(靴)の底面は、必ずしも床面500に接していなくてもよい。
【0029】
ゲーム処理装置50は、トラッキングセンサ22から検出データを取得して、トラッキングセンサ22の位置を特定する。これにより、着座部15に装着されたトラッキングセンサ22の位置、左足に装着されたトラッキングセンサ22の位置、右足に装着されたトラッキングセンサ22の位置が取得される。着座部15に装着されたトラッキングセンサ22の位置、左足に装着されたトラッキングセンサ22の位置、右足に装着されたトラッキングセンサ22の位置を、それぞれ着座位置P1(X1,Y1,Z1)、左足位置P2(X2,Y2,Z2),右足位置P3(X3,Y3,Z3)とする。
【0030】
また、床面500と平行であって、着座部15に着座したユーザ200の顔が向く方向を「X方向(前後方向)」とする。また、床面500に平行であって、「X方向」に直交する方向を「Z方向(左右方向)」とする。さらに、床面500の法線方向を「Y方向(鉛直方向)」とする。なお、ゲーム処理装置50は、これらの方向に限らず、任意の座標系を設定できるものとする。
【0031】
ゲーム処理装置50は、Y方向における着座位置P1と左足位置P2との相対距離Ly、又はY方向における着座位置P1と右足位置P3との相対距離Lyを算出する。又は、これらの相対距離Lyの両方を算出するようにしてもよい。これにより、ユーザ200の膝から足首までの下腿の長さが計測される。又は、例えば、左足位置P2のY座標と右足位置P3のY座標との中間となる位置と、着座位置P1のY座標との相対距離を算出してもよい。
【0032】
ゲーム処理装置50は、相対距離Lyに所定の比率R2を乗算した補正距離Ly2を求める。なお、比率R2は、「0」より大きく「1」より小さい。そして、ゲーム処理装置50は、左足位置P2又は右足位置P3を基準位置とし、その基準位置から、反X方向である後方に補正距離Ly2だけ離れた位置に、後方境界102を設定する。着座位置P1と左足位置P2の相対距離Ly、及び着座位置P1と右足位置P3との相対距離Lyの両方を算出した場合には、それらの相対距離Lyを用いて、左足用の後方境界102と、右足用の後方境界102とをそれぞれ設定してもよい。
【0033】
後方境界102は、X座標の境界を示していればよい。例えば、後方境界102は、X方向を法線方向としY方向及びZ方向に平行なY-Z平面でもよい。一例として、比率R2は、着座部15に着座したユーザ200が、靴オブジェクトを飛ばすための準備の動作として、膝を中心に下腿を回転させ、後方(反X方向)に足を曲げるときの一般的な角度等を考慮して決定される。比率R2は基本的に一定であるため、例えば、下腿が長いユーザ200は、下腿が短いユーザ200に比べて、後方境界102が基準位置から遠い位置に設定される。
【0034】
また、ゲーム処理装置50は、相対距離Lyに所定の比率R1を乗算した補正距離Ly1を求める。なお、比率R1は、「0」より大きく「1」より小さい。比率R1は、比率R2と異なっていてもよいし、比率R2と同じであってもよい。基本的には比率R1,R2は一定であるが、比率R1,R2をそれぞれ調整可能にすることによって、多様な体形のユーザに合わせることができる。そして、左足位置P2又は右足位置P3を基準位置とし、その基準位置から、X方向である前方に補正距離Ly1だけ離れた位置に、前方境界101を設定する。着座位置P1と左足位置P2のY方向における相対距離Ly、及び着座位置P1と右足位置P3とのY方向における相対距離Lyの両方を算出した場合には、それらの相対距離Lyを用いて、左足用の前方境界101と、右足用の前方境界101とをそれぞれ設定してもよい。
【0035】
前方境界101は、X座標の境界を示していればよい。例えば、前方境界101は、X方向を法線方向とするY方向及びZ方向に平行なY-Z平面でもよい。一例として、比率R1は、着座部15に着座したユーザ200が、靴オブジェクトを飛ばす動作として、膝を中心に下腿を回転させて前方(反X方向)に足を蹴り上げる場合の足を曲げる場合の一般的な角度等を考慮して決定される。これにより、例えば、下腿が長いユーザ200は、下腿が短いユーザ200に比べて、前方境界101が基準位置から遠い位置に設定される。
【0036】
このように設定された前方境界101及び後方境界102は、ユーザの体形である下腿の長さが反映されている。一方、例えばユーザの足首位置の移動方向の変化に基づきアクションを実行するか否かを判定する場合には、ユーザが足を少し動かしたときなど、ユーザが意図しないタイミングでアクションが実行されてしまう可能性があり、ユーザが違和感を覚えるおそれがある。また、アクションの実行を判定するための境界等をユーザ間で一律にしてしまうと、アクションが実行されやすいユーザと、アクションが実行されにくいユーザとが生じる。これに対し、本実施形態のように境界をユーザの体形に応じて設定することで、ユーザの意図に沿ったアクションを実行し、ユーザの違和感を少なくすることができる。
【0037】
図4及び
図5を参照して、前方境界101及び後方境界102を用いたゲームの進行手順について説明する。なお、上述したように、着座部15は前後の揺れが制限されており、ユーザ200の動作に応じて僅かに揺れる。
【0038】
図4に示すように、ユーザ200は、靴飛ばしゲームを開始する場合、前方に足を蹴り出す準備として、下腿が着座部15の下方に位置するように、膝を回転に下腿を回転させる。ゲーム処理装置50は、左足位置P2及び右足位置P3を特定して、それらの少なくとも一方が、後方境界102を越えたか否かを判定する。
【0039】
左足位置P2及び右足位置P3の少なくとも一方が後方境界102を越えたと判定した場合、ゲーム処理装置50は、靴飛ばし動作が開始されたと判定する。
靴飛ばし動作の開始判定後、ゲーム処理装置50は、左足位置P2及び右足位置P3を特定しながら、それらの少なくとも一方が前方境界101を越えたか否かを判定する。
【0040】
図5に示すように、ゲーム処理装置50は、左足位置P2及び右足位置P3の少なくとも一方が前方境界101を越えたと判定した場合、靴飛ばし動作が完了したと判定する。そして、ゲーム処理装置50は、仮想人物の靴オブジェクトを、蹴り出し方向であるユーザ200の前方に、所定の軌跡に従って落下させる。具体的には、ゲーム処理装置50は、トラッキングセンサ22の検出データに基づいて、ユーザが蹴り出した方向に合わせて、靴オブジェクトを落下させる。例えば、蹴り出し方向が、ユーザ200からみて前方左側である場合には、靴オブジェクトを前方左側に向かって落下するように描画する。
【0041】
また、ゲーム処理装置50は、靴飛ばし動作完了のときのトラッキングセンサ22の速さを取得する。速さは、単位時間当たりの移動距離である速度、角速度、加速度等の少なくとも一つである。そして、速さとオブジェクトの移動距離(飛距離)とを関連付けたデータに基づいて、靴オブジェクトを移動させる。速さは、1対のトラッキングセンサ22の相対距離から算出可能にしてもよく、トラッキングセンサ22が内蔵する速度検出センサ又は外部の速度検出センサにより検出するようにしてもよい。相対距離から算出する場合、着座部15に装着されたトラッキングセンサ22と左足位置P2又は右足位置P3との相対距離Lyを、下腿を回転させるときの時間Tで除算して速度Vを算出する(V=Ly/T)。時間Tは、予め設定した時間(定数)を用いてもよいし、足が後方境界102を越えたときから前方境界101を越えたときまでの時間を計測してもよい。
【0042】
図6(a)は、足の移動の速さと靴オブジェクトの移動距離を関連付けたデータの一例である。テーブルにおいては、速度が大きいほど、距離が段階的に大きくなるように、速度及び距離が関連付けられている。また、
図6(b)のマップに示すように、速度が大きいほど距離が連続的に大きくなるように、速さ及び距離が関連付けられていてもよい。ゲーム処理装置50は、テーブルに代えて若しくは加えて、所定の演算式を用いて移動距離を算出するようにしてもよい。
【0043】
図7は、ユーザ200によって視認される画面110を模式的に示した一例である。画面110には、仮想空間111の画像が表示されている。仮想空間111には、靴オブジェクト112と、仮想人物113の一部とが表示されている。
【0044】
ゲーム処理装置50は、一つの靴飛ばし動作が完了し、靴オブジェクト112が移動した後、仮想人物の足に靴オブジェクト112を再び表示して、靴飛ばしを可能にする。靴オブジェクト112の落下位置又は移動軌跡が得点付与条件を満たすと、ユーザに得点が付与される。また、落下位置に応じて、異なる配点を行ってもよい。又は、靴オブジェクト112の落下位置又は移動軌跡が達成条件を満たすと、ミッションが完了する。
【0045】
このように、ユーザは、実際にブランコの着座部15に着座して靴飛ばし動作を行うので、ユーザの動作に伴い、着座部15が揺れる。また、揺れをHMD30が検出することにより、ゲーム処理装置50は、HMD30に表示される画像を実際の揺れに合わせて動かす。これにより、VR酔いの発生を抑制するとともに、あたかも仮想的なブランコに乗って靴飛ばしをしているかのような没入感が得られる。
【0046】
本実施形態のゲーム処理の手順について説明する。
図8を参照して、境界の設定手順について説明する。ゲーム処理装置50は、トラッキングセンサ22等から検出データを取得して、トラッキングセンサ22の位置(センサ位置)を特定する(ステップS1)。具体的には、着座位置P1、左足位置P2、右足位置P3を特定する。
【0047】
ゲーム処理装置50は、新たにゲームが開始されるか、又は新たなユーザがゲームを開始すると判断すると、トラッキングセンサ22の位置に基づいて、境界を設定する(ステップS2)。具体的には、着座位置P1と、左足位置P2及び右足位置P3の少なくとも一方とを用いて、前方境界101と後方境界102とを設定する。前方境界101及び後方境界102は、両足共通であってもよいし、片足ずつそれぞれ設定されてもよい。前方境界101及び後方境界102の位置情報は、データ記憶部60に設定情報61として記憶される。このとき、前方境界101及び後方境界102の位置情報を、ユーザの識別情報と関連付けて記憶してもよい。前方境界101及び後方境界102の位置情報を設定したユーザが、ゲームを行う場合、データ記憶部60から前方境界101及び後方境界102の位置情報を読み出して、これらを用いてゲームを行うようにしてもよい。
【0048】
次に、
図9を参照して、ゲームの進行手順について説明する。ゲーム処理装置50は、入力操作部65における入力操作等のトリガーに基づいて、ゲームを開始する(ステップS11)。ゲーム処理装置50は、例えば、前回のゲームで用いた境界の位置情報等をリセットする等の初期化を行う。また、HMD30の計測装置32の検出データを取得し、検出データに応じた表示範囲の画像をHMD30に表示する。
【0049】
ゲーム処理装置50は、ゲーム進行データ63に基づきゲームを進行させながら、後方境界102の位置情報に基づいて、左足位置P2又は右足位置P3が後方境界102を越えたかを判定する(ステップS12)。ゲーム処理装置50は、左足位置P2及び右足位置P3が後方境界102を越えていない場合には(ステップS12:NO)、ステップS17に進む。
【0050】
ゲーム処理装置50は、左足位置P2又は右足位置P3が後方境界102を越えたと判定した場合(ステップS12:YES)、その足が、靴飛ばし動作を開始したと判定する(ステップS13)。
【0051】
ゲーム処理装置50は、ゲームを進行させながら、左足位置P2又は右足位置P3が、前方境界101を越えたか否かを判定する(ステップS14)。ゲーム処理装置50は、左足位置P2及び右足位置P3が前方境界101を越えないと判定すると(ステップS14:NO)、ステップS17に進む。なお、ステップS14では、左足位置P2又は右足位置P3が、例えば1~2秒等の所定時間内に前方境界101を越えたか否かを判定してもよい。左足位置P2又は右足位置P3が、所定時間内に前方境界101を越えていないと判定すると(ステップS14:NO)、ステップS17に進むようにしてもよい。
【0052】
ゲーム処理装置50は、左足位置P2及び右足位置P3の少なくとも一つが前方境界101を越えたかと判定した場合(ステップS14:YES)、靴飛ばし動作を完了したと判定する(ステップS15)。
【0053】
さらに、ゲーム処理装置50は、仮想空間内で靴飛ばし動作のアクションを実行する(ステップS16)。この場合、ゲーム処理装置50は、
図6(b)のマップを用いて、移動速度から、靴オブジェクトの移動距離を算出する。例えば、仮想人物の足及び靴オブジェクトを描画し、靴オブジェクトを、算出した移動距離に応じて、足を蹴り上げた方向に放物線を描くように落下させる。また、靴オブジェクトが仮想人物の足から離れた後、新たな靴オブジェクトを仮想人物の足に描画する。
【0054】
ゲーム処理装置50は、ゲーム終了条件に基づいて、ゲーム終了であるか否かを判断する(ステップS17)。ゲーム処理装置50は、終了条件が満たされたと判断すると(ステップS17:YES)、ゲームを終了する。また、終了条件が満たされていない場合には(ステップS17:NO)、ステップS12に戻る。
【0055】
本実施形態の効果について説明する。
(1)第1実施形態では、ユーザの足に装着されたトラッキングセンサ22と、筐体11側に装着されたトラッキングセンサ22との相対距離を算出し、その相対距離に基づいて前方境界101及び後方境界102が設定される。これにより、前方境界101及び後方境界102の位置は、ユーザの体形に応じた位置となる。また、ユーザの足に装着されたトラッキングセンサ22と前方境界101又は後方境界102の位置関係が所定の条件を充足した場合、ユーザの動作に対応するアクションを仮想空間内で実行する。現実世界においてユーザの動作が開始される位置は、ユーザの体形によって異なるので、ユーザの体形が反映された境界を用いることにより、ユーザの意図に反してアクションが実行されることを抑制して、ユーザの違和感を少なくすることができる。
【0056】
(2)第1実施形態では、ゲーム処理装置50により、ユーザの足に装着されたトラッキングセンサ22が前方境界101を越えた場合の速さが取得される。また、速さの大きさを、靴飛ばし動作の靴オブジェクトの移動距離に反映する。これにより、足の移動の速さを調整することにより靴オブジェクトの移動距離を調整することができる。このため、靴オブジェクトの落下位置等に応じて得点を付与したり、移動距離に応じた得点を付与するなど、ゲームを多様化させることが可能となる。
【0057】
(3)第1実施形態では、ゲーム処理装置50により、ユーザの足に装着されたトラッキングセンサ22が前方境界101を越えた場合、仮想人物の足から靴オブジェクトを移動させる。このため、オブジェクトの移動が開始されるタイミングを、ユーザの想定するタイミングに近づけることができるので、ユーザは、入力操作として、足を蹴る動作を直感的に行うことができる。
【0058】
(4)第1実施形態では、ユーザの足にトラッキングセンサ22を装着した。これにより、足の動作を仮想空間へアクションとして反映することができるので、新規なゲームを提供することができる。
【0059】
(第2実施形態)
次に、画像表示システムの第2実施形態を説明する。なお、第2実施形態では、境界の設定方法は第1実施形態と共通している一方、設定した境界の利用態様を変更している。以下、第1実施形態と同様の部分については同一符号を付してその詳細な説明を省略する。
【0060】
第2実施形態では、前方境界101及び後方境界102を、仮想空間内で、オブジェクトの移動を開始するか否かの判定に用いる。具体的には、左足位置P2及び右足位置P3と、前方境界101及び後方境界102の少なくとも一方とが所定の位置関係を充足した場合、着座部15に対応する着座部オブジェクト及び仮想人物を移動させる。また、仮想空間内のユーザ視点は、仮想人物の視点に対応しているため、仮想人物の移動に伴い、仮想空間内のユーザ視点も移動する。従来において仮想人物を移動させる場合は、現実世界におけるユーザの視点の移動に伴い仮想空間内で仮想人物等を移動させる方法や、ゲームのストーリーに従って自動的に移動させる方法が用いられていた。或いは、例えば現実世界のユーザが、自身が把持するコントローラを操作して、アイコン等の仮想空間内のGUI(Graphical User Interface)を用いて移動を指示することで、仮想人物を移動させていた。前者の方法の場合、仮想人物がユーザの意図に反して移動してしまう可能性があり、後者の方法の場合、現実世界にはないアイコン等のGUIを用いて目標位置に向かってコントローラを動かすことで仮想人物が移動してしまうので、没入感が損なわれる可能性がある。これに対し、本実施形態では、ユーザは、ブランコに乗りつつ足を動かすことで仮想人物を移動させる。これにより、従来の方法よりも直感的な動作で、仮想人物を移動させることができる。移動対象のオブジェクトは、着座部オブジェクト及び仮想人物に代えて若しくは加えて、筐体11に対応する仮想空間内の筐体オブジェクト全体であってもよい。また、本実施形態では、靴飛ばしを行う動作を行うモード(キックモード)とは異なるモード(飛行モード)において、着座オブジェクト及び仮想人物の移動を判定する。
【0061】
図10~
図12に示す前方境界101及び後方境界102は、X方向の境界を示していればよい。例えば、前方境界101及び後方境界102は、X方向を法線方向とするY-Z平面である。ゲーム処理装置50は、左足位置P2及び右足位置P3の両方が、同じ境界を越えたか否かを判定する。
【0062】
図10(a)に示すように、ゲーム処理装置50は、両足が前方境界101を越えたと判定した場合、ユーザ200が足を伸ばした方向を判定する。足を伸ばした方向がユーザの正面であるX方向であると判定とした場合には、仮想空間内で着座部オブジェクト及び仮想人物を、足を伸ばした方向の反対方向である後方(反X方向)に移動させる。このとき、ゲーム処理装置50は、着座部オブジェクト及び仮想人物113を、後方に向かって水平に移動させてもよいし、後方に向かって揺動させてもよい。このように、オブジェクトを、ユーザが足を突き出した方向に対して反対の方向に移動表示することにより、仮想人物の動作の反動による推力で、着座部オブジェクト及び仮想人物が移動しているようなイメージをユーザに与えることができる。
【0063】
ゲーム処理装置50が、ユーザが足を伸ばした方向を特定する方法は特に限定されない。例えば、ゲーム開始前であって境界を設定するときの左足位置P2を基準として足を伸ばした方向を判断してもよい。又は、着座位置P1を基準として、左足位置P2が伸ばされた方向又は右足位置P3が伸ばされた方向を判定してもよい。又は、左足位置P2及び右足位置P3の中央値を算出し、着座位置P1を基準した中央値への方向に基づき、足を伸ばした方向を判定してもよい。
【0064】
図10(b)に示すように、ゲーム処理装置50は、左足位置P2及び右足位置P3の両方が前方境界101を越え、且つユーザ200が両足を伸ばした方向が前方左側であると判定した場合、仮想空間内で着座部オブジェクト及び仮想人物113を後方右側に移動させる。
【0065】
図10(c)に示すように、ゲーム処理装置50は、左足位置P2及び右足位置P3の両方が前方境界101を越え、且つユーザ200が両足を伸ばした方向が前方右側であると判定した場合、仮想空間内で着座部オブジェクト及び仮想人物113を後方左側に移動させる。
【0066】
なお、
図10(a)~
図10(b)では、ユーザが足を伸ばした方向に対して反対側となる方向に着座部オブジェクト及び仮想人物113を移動させたが、足を伸ばした方向と同じ方向に着座部オブジェクト及び仮想人物113を移動させてもよい。例えば、ユーザが自身の正面に両足を突き出した場合、着座部オブジェクト及び仮想人物113を前方に移動させてもよい。また、ユーザが両足を伸ばした方向が前方左側である場合、着座部オブジェクト及び仮想人物113を前方左側へ移動させてもよい。
【0067】
また、着座部オブジェクト及び仮想人物113の移動方向は、上記した方向に限られない。例えば、着座部オブジェクト及び仮想人物113を、ユーザの真横である右側又は左側に移動させるようにしてもよい。例えば、ユーザが足を伸ばす方向が、基準となる正面から右へ所定角度以上である場合に、着座部オブジェクト及び仮想人物113を右側へ移動させてもよい。また、ユーザが足を伸ばす方向が左へ所定角度以上である場合に、着座部オブジェクト及び仮想人物113を左側へ移動させてもよい。
【0068】
図11(a)に示すように、ゲーム処理装置50は、ユーザ200が着座部15の下方に下腿が位置するように足を曲げ、左足位置P2及び右足位置P3が後方境界102を越えたと判定すると、下腿の方向を特定する。ゲーム処理装置50は、下腿が伸びる方向が、X方向に対して反対方向である反X方向であると判断すると、仮想空間内で、着座部オブジェクト及び仮想人物113をX方向である前方に移動させる。
【0069】
図11(b)に示すように、ゲーム処理装置50は、左足位置P2及び右足位置P3の両方が後方境界102を越えたと判定すると、下腿の方向を特定する。ゲーム処理装置50は、下腿の方向が後方右側と判断すると、着座部オブジェクト及び仮想人物を前方左側に移動させる。
【0070】
図11(c)に示すように、ゲーム処理装置50は、左足位置P2及び右足位置P3の両方が後方境界102を越えたと判定すると、下腿の方向を特定する。ゲーム処理装置50は、下腿の方向が後方左側と判断すると、着座部オブジェクト及び仮想人物を前方右側に移動する。
【0071】
一方、ユーザ200が、左足を伸ばしたときに右足を曲げ、右足を伸ばしたときに左足を曲げて、左足及び右足を交互に蹴り出す場合、仮想空間内で着座部オブジェクト及び仮想人物は上方であるY方向に移動する。
【0072】
図12に示すように、ゲーム処理装置50は、左足位置P2が前方境界101を越え、且つ右足位置P3が後方境界102を越えたと判定すると、上方に移動する着座部オブジェクト及び仮想人物を描画する。そして、一方の足が前方境界101を越え、且つ他方の足が後方境界102を越えた状態が所定時間内に繰り返される間、上方に移動する着座部オブジェクト及び仮想人物を描画し続ける。なお、一方の足が前方境界101を越え、且つ他方の足が後方境界102を越えた回数が所定回数に到達したとき、上方に移動する着座部オブジェクト及び仮想人物113の描画を開始するようにしてもよい。
【0073】
図13を参照して、本実施形態のゲーム処理の手順について説明する。
ゲーム処理装置50は、ゲームを開始すると(ステップS20)、前回の履歴をリセットする等の初期化を行う。また、ゲーム処理装置50は、両足が同じ境界を越えたか否かを判断する(ステップS21)。
【0074】
ゲーム処理装置50は、両足が前方境界101及び後方境界102のいずれかを越えたと判断した場合(ステップS21:YES)、足(下腿)が伸ばされた方向を取得する(ステップS22)。さらに、ゲーム処理装置50は、取得した方向に基づき着座部オブジェクト及び仮想人物を移動させた画像を、HMD30に表示する(ステップS23)。
【0075】
一方、ステップS21において、ゲーム処理装置50が、ユーザの両足が同じ境界を越えていないと判断した場合(ステップS21:NO)、ユーザの両足が、片足ずつ異なる境界を越えたか否かを判断する(ステップS25)。ゲーム処理装置50は、片足ずつ異なる境界を越えたと判断すると(ステップS25:YES)、着座オブジェクト及び仮想人物を上昇させた画像をHMD30に表示し(ステップS26)、ステップS24に進む。また、ゲーム処理装置50は、片足ずつ異なる境界を越えた状態ではないと判断すると(ステップS25:NO)、ステップS24に進む。
【0076】
ゲーム処理装置50は、ゲーム終了であるか否かを判断する(ステップS24)。ゲーム終了であると判断した場合(ステップS24:YES)、この処理を終了する。一方、ゲーム終了ではないと判断した場合(ステップS24:NO)、ステップS21に戻る。
【0077】
本実施形態の効果について説明する。
(5)第2実施形態では、ユーザが足を伸ばすことにより、左足位置P2及び右足位置P3が、前方境界101及び後方境界102の少なくとも一方と所定の位置関係を充足した場合に、着座部オブジェクト及び仮想人物を移動させるようにした。これにより、ユーザの意図するタイミングで、直感的な操作によって、仮想空間内の仮想人物を移動させることができる。
【0078】
(6)第2の実施形態では、左足位置P2及び右足位置P3が前方境界101を超えた場合、ゲーム処理装置50は、前方であって両足を伸ばす方向と反対の方向に、着座部オブジェクト及び仮想人物を移動させた。また、左足位置P2及び右足位置が、後方境界102を超えた場合、ゲーム処理装置50は、後方であって両足を伸ばす方向と反対の方向に、着座部オブジェクト及び仮想人物オブジェクトを移動させた。このようにユーザの体形が反映された境界を用いることにより、ユーザの意図に反してアクションが実行されることを抑制することができる。
【0079】
(7)第2実施形態では、ゲーム処理装置50は、左足位置P2及び右足位置の境界に対する位置関係の違いに応じて、着座部オブジェクト及び仮想人物の移動態様を変更した。つまり、左足位置P2及び右足位置の両方が、同じ境界を越えた場合は、後方又は前方に着座部オブジェクト及び仮想人物を移動させ、左足位置P2及び右足位置が異なる境界を越えた場合は、着座部オブジェクト及び仮想人物を上昇させるようにした。これにより、境界を、アクションの種類を判定するために用いることができる。
【0080】
上記各実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・上記各実施形態では、トラッキングセンサ22をユーザの足首付近に装着した。これに代えて若しくは加えて、ユーザの身体のうちそれ以外の位置に装着したトラッキングセンサ22の検出データの値を、アクションに反映してもよい。例えば、「飛行モード」において、頭部を含む上半身のいずれかの位置に装着されたトラッキングセンサ22の検出データに基づき、着座部オブジェクト及び仮想人物の移動の速さ、移動距離等を大きくするようにしてもよい。また、「キックモード」において、上半身の動きに応じて靴オブジェクトの移動距離を大きくする等、上半身の動きをアクションに反映するようにしてもよい。さらに、「飛行モード」において、左足位置P2及び右足位置P3が前方境界101を越え、且つ頭部に装着されたトラッキングセンサ22又は頭部以外の上半身に装着されたトラッキングセンサ22の位置がゲームを開始した時の初期位置に対して後方の位置に移動した場合、つまり足が伸ばされる方向と逆の方向に頭部や頭部以外の上半身が傾けられる場合、着座部オブジェクト及び仮想人物の移動の速さ、移動距離等を大きくして、アクションの反映するようにしてもよい。
【0081】
・上記各実施形態では、ユーザの足首付近に装着したトラッキングセンサ22を用いて、アクションの実行を開始するか否か及び実行したアクションを完了するか否かを判定した。これに代えて若しくは加えて、ユーザの身体のうち足首付近以外の位置に装着されたトラッキングセンサ22を用いて、アクションの実行を開始するか否かの判定及び実行したアクションを完了するか否かの判定の少なくとも一方を行うようにしてもよい。
【0082】
図14を参照して、腕に装着されたトラッキングセンサ22を用いて、仮想空間内のオブジェクトを投げるアクションを実行する手順の一例を説明する。
図14(a)に示すように、ユーザ200は、肘及び手首に、トラッキングセンサ22をそれぞれ装着する。ゲーム処理装置50は、トラッキングセンサ22及びトラッキング補助装置21の少なくとも一方から取得したデータに基づいて、手首位置P5及び肘位置P6を特定する。ゲーム処理装置50は、トラッキングセンサ22の相対距離に基づいて、ユーザ200の肘から手首までの前腕の長さLx1を取得する。さらに、ゲーム処理装置50は、手首位置P5から、ユーザ200の肩に向かって、長さLx1に所定の比率R5を乗算した長さだけ離れた位置に後方境界102を設定する。なお、この例における比率は「1」以上である。また、ゲーム処理装置50は、手首位置P5から、肘方向に向かって、長さLx1に所定の比率R6を乗算した長さだけ離れた位置に前方境界101を設定する。
【0083】
図14(b)に示すように、ゲーム処理装置50は、手首位置P5が後方境界102を越えたか否かを判断する。ゲーム処理装置50は、後方境界102を越えたと判断すると、アクションの開始と判断する。オブジェクトを投げる動作は、例えば、アクションとしては、ボール等のオブジェクトを投げる動作、釣りのルアー等のオブジェクトを水面に投入するキャスト動作である。また、オブジェクトを投げる動作以外に代えて、ボールを打撃する動作、ダンスする動作等の腕を曲げる動作であってもよい。
【0084】
図14(c)に示すように、ゲーム処理装置50は、アクション開始後、手首位置P5が前方境界101を越えたか否かを判断する。ゲーム処理装置50は、前方境界101を越えたと判断すると、アクションの完了と判断する。そして、仮想空間にアクションを反映する。例えば、キャスト動作の場合には、ルアーを、演算した軌跡に従って前方に移動させる。また、ボールを投げる動作の場合は、ボールを、演算した軌跡に従って前方に移動させる。
【0085】
また、前腕の長さではなく、腕全体の長さ又は上腕の長さを用いて境界を設定してもよい。腕全体の長さを算出する場合には、手首と肩とにトラッキングセンサ22を装着する。また、上腕の長さを算出する場合には、肘と肩とにトラッキングセンサ22を装着する。ゲーム処理装置50は、腕全体の長さ又は上腕の長さを算出し、算出した長さに所定の比率を乗算し、手首の位置、肩の位置又は肘の位置を基準として境界を設定する。このように設定された境界は、腕全体を回転させる動作や、腕を曲げる動作のアクションを実行するか否かの判定に用いることができる。例として、ゴルフをプレイするゲーム、野球をプレイするゲーム、テニスをプレイするゲーム、卓球をプレイするゲーム等で、アクションの開始の判定、完了の判定、又はアクションの種類の判定等を行ってもよい。
【0086】
・上記各実施形態では、画像表示システムが提供するゲームを、ユーザが着座してプレイするゲームとした。これに代えて、ユーザが立姿勢でプレイするゲームとしてもよい。
図15(a)に示すように、ゲーム処理装置50は、トラッキングセンサ22の位置に基づいて、下腿の長さLy5を算出する。また、ゲーム処理装置50は、足首位置P7から膝へ向かう方向に、下腿の長さLy5に所定の比率R7を乗算した長さだけ離れた位置に、境界120を設定する。なお、この例における比率R7は、「1」未満である。
【0087】
図15(b)に示すように、ゲーム処理装置50は、例えばサッカー等、オブジェクトを蹴る動作が含まれるゲームにおいて、境界120よりも低い足首位置P7から蹴る動作が開始された場合には、ドリブルであると判定してもよい。
【0088】
図15(c)に示すように、ゲーム処理装置50は、境界120よりも高い足首位置P7から蹴る動作が開始された場合には、シュートであると判定してもよい。
また、第2実施形態では、足首付近に装着したトラッキングセンサ22が、予め設定された境界との所定の位置関係を充足した場合に、仮想空間内で所定のアクションを実行するようにした。これに代えて若しくは加えて、ユーザの身体のうち足首付近以外の位置に装着されたトラッキングセンサ22を用いて仮想人物等の移動を行ってもよい。例えば上半身のいずれかの位置に装着されたトラッキングセンサ22が、上半身に対して設定された境界との所定の位置関係を充足した場合に、仮想人物等の移動を行ってもよい。また、頭部に装着されたトラッキングセンサ22が、頭部に対して設定された境界との所定の位置関係を充足した場合に、仮想人物等の移動を行ってもよい。仮想人物等の移動は、上昇、下降、左側への移動、右側への移動等のいずれの移動でもよく、上半身の移動方向に沿った方向への移動であってもよいし、それ以外の
方向への移動であってもよい。
【0089】
・上記各実施形態では、左足位置P2又は右足位置P3が、後方境界102を越えたときにアクション開始と判定し、前方境界101を越えた場合に、アクション完了であると判定した。これに代えて、左足位置P2又は右足位置P3が後方境界102を越えたときに、靴飛ばし等のアクションを実行するようにしてもよい。又は、左足位置P2又は右足位置P3が前方境界101を越えたときに、靴飛ばし等のアクションを実行するようにしてもよい。この態様によれば、アクションについての判定処理における処理負荷を軽減することができる。
【0090】
・第2実施形態では、一方の足が前方境界101を越え、且つ他方の足が後方境界102を越えた状態が所定時間内に繰り返される間、上昇する着座部オブジェクト及び仮想人物を描画した。これに代えて若しくは加えて、一方の足のトラッキングセンサ22が前方境界101との所定の位置関係を充足し、且つ他方の足のトラッキングセンサ22が後方境界102との所定の位置関係を充足した場合に、下降する着座部オブジェクト及び仮想人物を描画してもよい。或いは、いずれか一方の足が前方境界101又は後方境界102との所定の位置関係を充足した場合、又は両方の足のトラッキングセンサ22が前方境界101又は後方境界102との所定の位置関係を充足した場合に、下降する着座部オブジェクト及び仮想人物を描画してもよい。このときのユーザの具体的な動作は、特に限定されない。例えば、足を交互に動かす動作以外に、両足を同時に前後に動かす動作、両足を同時に左右に動かす動作、両足で自転車を漕ぐような動作等であってもよい。或いは、上昇及び下降の一方ではなく、上昇と下降を繰り返す着座部オブジェクト及び仮想人物を描画してもよい。
【0091】
・上記各実施形態では、下腿の長さに応じて、靴オブジェクトの移動距離を変更するようにしてもよい。例えば、下腿が長い場合には、下腿が短い場合よりも、靴オブジェクトの移動距離が長くなるように補正してもよい。速さを一定としたとき、下腿が長くなるほど、膝を中心に下腿を回転させたときの遠心力が大きくなる。このため、下腿が長いほど靴オブジェクトの移動距離を大きくすると、現実世界における事象に近づけることができる。逆に、下腿が長い場合には、下腿が短い場合よりも、靴オブジェクトの移動距離が短くなるように補正してもよい。
【0092】
・上記各実施形態では、左足位置P2及び右足位置P3の少なくとも一方が、後方境界102を越えた場合に、アクションである靴飛ばし動作を開始すると判定した。これに代えて、左足位置P2及び右足位置P3の少なくとも一方が、後方境界102と重なった場合に、アクションである靴飛ばし動作を開始すると判定してもよい。同様に、左足位置P2及び右足位置P3の少なくとも一方が、前方境界101を越えた場合に、アクションである靴飛ばし動作を完了すると判定した。これに代えて、左足位置P2及び右足位置P3の少なくとも一方が、前方境界101と重なった場合に、アクションである靴飛ばし動作を完了すると判定してもよい。
【0093】
・上記各実施形態では、ブランコである着座部15は前後方向に僅かに揺れるようにした。これに代えて、着座部15を、ユーザがブランコを漕ぐ動作に伴って前後に揺らすようにしてもよい。この場合、着座位置P1を基準に前方境界101及び後方境界102を移動させることで、ユーザの靴飛ばし動作についての判定を行うことができる。
【0094】
・上記各実施形態では、着座位置P1から足首の位置である左足位置P2、又は着座位置P1から足首の位置である右足位置P3までを下腿の長さとして算出した。これに代えて、ユーザ200の足が床面500に接するように吊り部13を調整して、着座部15の高さを変える場合には、着座位置P1の高さを下腿の長さとして算出するようにしてもよい。
【0095】
・上記各実施形態では、ユーザの下腿の長さを算出するようにした。これに代えて、ユーザの上腿の長さを算出するようにしてもよい。上腿の長さは、着座位置P1の座標と、左足位置P2又は右足位置P3の座標との相対距離で近似できる。上腿が長い場合には、下腿の長さも長いと想定されるので、上腿の長さに基づき境界を設定してもよい。この場合にもユーザの体形に合わせた境界を設定することができる。
【0096】
・上記各実施形態では、左足位置P2又は右足位置P3を基準として境界を設定した。これに代えて若しくは加えて、例えば、着座部15に装着されたトラッキングセンサ22等、ユーザの身体に装着されていないトラッキングセンサ22を基準に境界を設定してもよい。
【0097】
・上記各実施形態では、足の位置が前方境界101を越えた場合に、動作が開始されたと判定し、足の位置が後方境界102を越えた場合に、動作が完了したと判定した。これに代えて若しくは加えて、足や腕と境界との位置関係に基づいて、ユーザの動作の種類を判定してもよい。例えば、野球のゲームであれば、腕と境界との位置関係に基づいて打撃の動作及び投球の動作等を判定するようにしてもよい。ダンスのゲームであれば、足や腕と境界との位置関係に基づいてターン、ジャンプ等を判定するようにしてもよい。
【0098】
・上記各実施形態では、ユーザの足を基準に前方境界101及び後方境界102を設定した。これに代えて若しくは加えて、
図3中、Y方向の境界を示す上方境界及び下方境界を設定するようにしてもよい。又は、Z方向の境界を示す左側境界及び右側境界を設定するようにしてもよい。また、境界の数は、1つでもよく、3つ以上の複数でもよい。また、境界は平面ではなく、点又は線であってもよい。
【0099】
・上記各実施形態では、ユーザの左足位置P2又は右足位置P3が、前方境界101及び後方境界102のいずれかを越えた場合、境界に対する所定の位置関係の条件が満たされたと判定した。これに代えて、ゲーム処理装置50が、境界に近づいているか否か、境界から遠ざかったか否かに基づき、アクションを実行するか否かを判定するようにしてもよい。
【0100】
・上記各実施形態では、発光器としてのトラッキング補助装置21と、受光器としてのトラッキングセンサ22と協働させるシステムを、トラッキングシステム20の一例とした。トラッキングセンサ22の位置及び向きを検出可能であれば、これ以外のトラッキングシステム20を用いることができる。例えばゲームプレイ空間に、受光器としての補助装置を設け、発光器であるトラッキングセンサ22と協働して、トラッキングセンサ22の位置及び向きを算出するシステム等、上記実施形態以外のアウトサイドイン方式のトラッキングシステムを用いてもよい。又は、トラッキングセンサ22に搭載されたセンサで、現実空間を走査することによりユーザの位置を特定するインサイドアウト方式のトラッキングシステムを用いてもよい。
【0101】
・上記各実施形態では、受光器を有するHMD30と発光器を有するトラッキング補助装置21とが協働して、HMD30の位置及び向きを検出するようにした。これに代えて、発光器を有するHMD30と受光器を有するトラッキング補助装置21とを協働させて、HMD30の位置及び向きを検出するようにしてもよい。又はインサイドアウト方式のトラッキングシステムを用いてもよい。
【0102】
・上記各実施形態では、HMD30を、ユーザが用いるディスプレイの一例とした。これに代えて若しくは加えて、ユーザの身体に装着しないディスプレイとしてもよい。このディスプレイとして、設置型のディスプレイ、携帯ゲーム機のディスプレイ、アーケードゲーム機に組み込まれたディスプレイ等がある。このディスプレイを用いる態様においては、入力操作部(コントローラ)からユーザの操作に基づく信号を受信して、その表示範囲が変更されてもよい。
【0103】
・上記各実施形態では、HMD30とゲーム処理装置50とを別の装置とした。これに代えて、HMD30に、ゲーム処理装置50を内蔵するようにしてもよい。さらにHMD30に、HMD30が自らの位置を検出する装置を設けることによって、スタンドアロン型のHMDとしてもよい。
【0104】
・上記各実施形態では、ブランコを筐体の一例としたが、これ以外のものであってもよい。筐体は、ユーザが着座する着座部を有するものであってもよく、立ち姿勢又は横臥した姿勢で動作を行うものであってもよい。例えば、自動車、自転車、飛行機又は飛行体、潜水艦、ジェットコースター、ロケット等の乗り物であってもよいし、シューティングができる銃やバズーカ砲を有するものであってもよいし、滑り台等の遊具であってもよい。又は、画像表示システムは、筐体11を用いないゲーム又はゲーム以外のアプリケーションを提供するものであってもよい。
【0105】
・上記各実施形態では、画像表示システムを、ユーザがゲームをプレイするシステムとした。これに代えて、画像表示システムを、体験を目的とするシステム、映画等のコンテンツを視聴するためのシステム、ユーザが他のユーザと交流するためのシステム、学習システム、トレーニングシステム、医療分野のシミュレーションシステム等にしてもよい。
次に、上記実施形態及び別例から把握できる技術的思想について、それらの効果とともに以下に追記する。
〔1〕ユーザが用いるディスプレイに仮想空間内の画像を表示する画像表示システムにおいて、前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得する検出データ取得部と、前記検出データに基づいて、1対の前記位置検出センサの相対距離を算出する距離算出部と、前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定する設定部と、前記ユーザの動作に伴って、いずれかの前記位置検出センサが、前記境界との位置関係の条件を充足するか否かを判定する判定部と、前記位置関係が前記条件を充足した場合に、前記ユーザの動作に対応するアクションを仮想空間内で実行するアクション実行部と、を備える画像表示システム。
〔2〕前記判定部は、いずれかの前記位置検出センサの位置が前記境界を越えた場合又は前記境界と重なった場合、前記位置関係を充足したと判定する、〔1〕に記載の画像表示システム。
〔3〕前記設定部は、前記ユーザの身体に装着された前記位置検出センサの位置を基準に、他の前記位置検出センサとの相対距離に基づいて前記境界を設定する、〔1〕又は〔2〕に記載の画像表示システム。
〔4〕前記アクションに対応する前記ユーザの動作には、第1の方向への動きが含まれ、前記設定部は、基準とする前記位置検出センサの前記第1の方向に前記境界を設定し、前記判定部は、前記位置検出センサの位置が前記第1の方向に設定された前記境界を越えた場合又は前記境界に重なった場合に、前記ユーザの動作が開始されたと判断する、〔1〕~〔3〕のいずれか1項に記載の画像表示システム。
〔5〕前記アクションに対応する前記ユーザの動作には、第2の方向への動きが含まれ、前記設定部は、基準とする前記位置検出センサの前記第2の方向に前記境界を設定し、前記判定部は、前記位置検出センサの位置が前記第2の方向に設定された前記境界を越えた場合又は前記境界に重なった場合に、前記ユーザの動作が完了したと判定する、〔1〕~〔4〕のいずれか1項に記載の画像表示システム。
〔6〕前記アクション実行部は、前記位置検出センサの検出データ又は前記ユーザの身体に装着された速度検出センサの検出データに基づき、前記位置検出センサの位置が前記境界を越えたとき又は前記境界に重なったときの速さを取得し、取得した速さを前記アクションに反映する、〔5〕に記載の画像表示システム。
〔7〕前記アクション実行部は、いずれかの前記位置検出センサが前記境界との位置関係の条件を充足した場合に、前記仮想空間内のオブジェクトを移動させる、1~6のいずれか1項に記載の画像表示システム。
〔8〕前記アクション実行部は、前記位置検出センサの移動により、その位置が前記位置検出センサの移動方向に設定された前記境界を越えた場合又は前記境界に重なった場合に、前記位置検出センサの移動方向と同じ方向に前記仮想空間内のオブジェクトを移動させる、〔7〕に記載の画像表示システム。
〔9〕前記アクション実行部は、前記位置検出センサ及び前記境界の位置関係に応じて、異なる種類のアクションを実行する、〔1〕~〔8〕のいずれか1項に記載の画像表示システム。
〔10〕前記位置検出センサの少なくとも一つは、前記ユーザの足に装着される、〔1〕~〔9〕のいずれか1項に記載の画像表示システム。
〔11〕1乃至複数のコンピュータを用いて、ユーザが用いるディスプレイに仮想空間内の画像を表示する画像表示方法において、前記コンピュータが、前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得するステップと、前記検出データに基づいて、1対の前記位置検出センサの相対距離を算出するステップと、前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定するステップと、前記ユーザの動作に伴って、いずれかの前記位置検出センサが、前記境界との位置関係の条件を充足するか否かを判定するステップと、前記位置関係が前記条件を充足した場合に、前記ユーザの動作に対応するアクションを仮想空間内で実行するステップと、を有する画像表示方法。
〔12〕1乃至複数のコンピュータに、ユーザが用いるディスプレイに仮想空間内の画像を表示させる画像表示プログラムにおいて、前記コンピュータに、前記ユーザの身体に装着された位置検出センサを含む複数の位置検出センサから、検出データを取得するステップと、前記検出データに基づいて、1対の前記位置検出センサの相対距離を算出するステップと、前記相対距離に基づいて、前記ユーザの動作について判定するための境界を設定するステップと、前記ユーザの動作に伴って、いずれかの前記位置検出センサが、前記境界との位置関係の条件を充足するか否かを判定するステップと、前記位置関係が前記条件を充足した場合に、前記ユーザの動作に対応するアクションを仮想空間内で実行するステップと、を実行させる画像表示プログラム。
【符号の説明】
【0106】
21…トラッキング補助装置、22…トラッキングセンサ、30…HMD、50…ゲーム処理装置。