(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023122251
(43)【公開日】2023-09-01
(54)【発明の名称】仮想体験システム、情報処理装置及びそのプログラム
(51)【国際特許分類】
G06T 19/00 20110101AFI20230825BHJP
G06F 3/04815 20220101ALI20230825BHJP
G06F 3/01 20060101ALI20230825BHJP
【FI】
G06T19/00 300B
G06F3/0481 150
G06F3/01 510
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022025846
(22)【出願日】2022-02-22
(71)【出願人】
【識別番号】000003562
【氏名又は名称】東芝テック株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】木下 泰宏
【テーマコード(参考)】
5B050
5E555
【Fターム(参考)】
5B050AA10
5B050BA09
5B050CA07
5B050CA08
5B050EA09
5B050EA27
5B050FA02
5B050FA05
5B050FA08
5E555AA63
5E555AA64
5E555AA76
5E555BA04
5E555BA38
5E555BB04
5E555BB38
5E555BC08
5E555BE16
5E555BE17
5E555CA44
5E555CA45
5E555CB19
5E555DA08
5E555DB53
5E555DC43
5E555DC57
5E555DD06
5E555EA08
5E555EA09
5E555FA00
(57)【要約】
【課題】仮想世界の世界観を壊すことなく仮想世界の行動体験ができる。
【解決手段】仮想体験システムは、ユーザの現実世界における移動に合わせて当該ユーザが仮想世界を移動する立体視画像を当該ユーザに提示するシステムである。斯かる仮想体験システムは、現実位置検出手段と、仮想位置決定手段と、速度設定手段とを備える。現実位置検出手段は、ユーザの現実世界における存在位置を検出する。仮想位置決定手段は、ユーザの仮想世界における存在位置を決定する。速度設定手段は、現実世界におけるユーザの現実の存在位置から当該現実世界においてユーザが移動可能な境界線までの第1の距離と、仮想世界におけるユーザの仮想の存在位置から当該仮想世界においてユーザが移動可能な境界線までの第2の距離との比に基づいて、ユーザが仮想世界を移動する速度を設定する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
ユーザの現実世界における移動に合わせて当該ユーザが仮想世界を移動する立体視画像を当該ユーザに提示する仮想体験システムにおいて、
前記ユーザの前記現実世界における存在位置を検出する現実位置検出手段と、
前記ユーザの前記仮想世界における存在位置を決定する仮想位置決定手段と、
前記現実世界における前記ユーザの現実の存在位置から当該現実世界において前記ユーザが移動可能な境界線までの第1の距離と、前記仮想世界における前記ユーザの仮想の存在位置から当該仮想世界において前記ユーザが移動可能な境界線までの第2の距離との比に基づいて、前記ユーザが前記仮想世界を移動する速度を設定する速度設定手段と、
を具備する仮想体験システム。
【請求項2】
前記ユーザの前記現実世界又は前記仮想世界における移動距離を取得する距離取得手段、
をさらに具備し、
前記速度設定手段は、前記移動距離が所定の距離に達する毎に前記仮想世界を移動する速度を設定する、請求項1記載の仮想体験システム。
【請求項3】
前記速度設定手段は、前記第1の距離に対して前記第2の距離が長い場合に前記仮想世界を移動する速度を設定する、請求項1又は2記載の仮想体験システム。
【請求項4】
現実世界を移動するユーザの前記現実世界における存在位置を取得する現実位置取得手段と、
前記ユーザの仮想世界における存在位置を決定する仮想位置決定手段と、
前記現実世界におけるユーザの現実の存在位置から当該現実世界においてユーザが移動可能な境界線までの第1の距離と、前記仮想世界におけるユーザの仮想の存在位置から当該仮想世界においてユーザが移動可能な境界線までの第2の距離との比に基づいて、前記ユーザが前記仮想世界を移動する速度を設定する速度設定手段と、
ユーザの現実世界における移動に合わせて、前記速度設定手段により設定された速度で前記ユーザが仮想世界を移動する立体視画像を生成する画像生成手段と、
前記ユーザが装着する立体視画像表示装置に前記立体視画像を出力する画像出力手段と、
を具備する、情報処理装置。
【請求項5】
前記ユーザの前記現実世界又は前記仮想世界における移動距離を取得する距離取得手段、
をさらに具備し、
前記速度設定手段は、前記移動距離が所定の距離に達する毎に前記仮想世界を移動する速度を設定する、請求項4記載の情報処理装置。
【請求項6】
前記速度設定手段は、前記第1の距離に対して前記第2の距離が長い場合に前記仮想世界を移動する速度を設定する、請求項4又は5記載の情報処理装置。
【請求項7】
情報処理装置のコンピュータを、
現実世界を移動するユーザの前記現実世界における存在位置を取得する現実位置取得手段、
前記ユーザの仮想世界における存在位置を決定する仮想位置決定手段、
前記現実世界におけるユーザの現実の存在位置から当該現実世界においてユーザが移動可能な境界線までの第1の距離と、前記仮想世界におけるユーザの仮想の存在位置から当該仮想世界においてユーザが移動可能な境界線までの第2の距離との比に基づいて、前記ユーザが前記仮想世界を移動する速度を設定する速度設定手段、
ユーザの現実世界における移動に合わせて、前記速度設定手段により設定された速度で前記ユーザが仮想世界を移動する立体視画像を生成する画像生成手段、及び、
前記ユーザが装着する立体視画像表示装置に前記立体視画像を出力する画像出力手段、
として機能させるための仮想体験プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、仮想体験システム及びそのシステムの情報処理装置、並びにコンピュータを情報処理装置として機能させるためのプログラムに関する。
【背景技術】
【0002】
ヘッドマウントディスプレイ(以下、HMDと略称する)を装着したユーザが現実世界を移動することにより、HMDによってユーザに提示される仮想世界を同じように移動する体験を可能としたシステムがある。このような仮想体験システムにおいては、ユーザが現実世界の境界線から外へと出ないように、仮想世界に配置される仮想オブジェクトを適宜変更することが知られている。
【0003】
しかしながら、仮想世界が実際に存在する現実世界を模したものであり、その現実世界をユーザが知っていた場合、仮想オブジェクトを変更してしまうと、ユーザが知っていた現実世界とは異なるため、違和感を覚える懸念がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第6710845号公報
【特許文献2】特開2020-175204号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の実施形態が解決しようとする課題は、仮想世界での行動が現実世界での行動に制限されてしまい、仮想世界の世界観が壊れてしまうことである。そこで、仮想世界の世界観が壊れないように仮想世界の世界観を壊すことなく仮想世界の行動体験ができる仮想体験システム、及びこのシステムの情報処理装置及びそのプログラムを提供しようとするものである。
【課題を解決するための手段】
【0006】
一実施形態において、仮想体験システムは、ユーザの現実世界における移動に合わせて当該ユーザが仮想世界を移動する立体視画像を当該ユーザに提示するシステムである。斯かる仮想体験システムは、現実位置検出手段と、仮想位置決定手段と、速度設定手段とを備える。現実位置検出手段は、ユーザの現実世界における存在位置を検出する。仮想位置決定手段は、ユーザの仮想世界における存在位置を決定する。速度設定手段は、現実世界におけるユーザの現実の存在位置から当該現実世界においてユーザが移動可能な境界線までの第1の距離と、仮想世界におけるユーザの仮想の存在位置から当該仮想世界においてユーザが移動可能な境界線までの第2の距離との比に基づいて、ユーザが仮想世界を移動する速度を設定する。
【図面の簡単な説明】
【0007】
【
図1】
図1は、一実施形態に係る仮想体験システムの全体構成図である。
【
図2】
図2は、一実施形態において、ユーザが体験し得る仮想世界の一例である。
【
図3】
図3は、一実施形態において、仮想世界に配置される仮想オブジェクトの一例である。
【
図4】
図4は、仮想体験システムの要部回路構成を示すブロック図である。
【
図5】
図5は、情報処理装置のプロセッサが実現する主要な機能構成を示すブロック図である。
【
図6】
図6は、仮想体験ルームの床面を示す模式図である。
【
図7】
図7は、仮想世界の仮想床面を示す模式図である。
【
図8】
図8は、情報処理装置のプロセッサが仮想体験プログラムに従って実行する情報処理の手順を示す流れ図である。
【発明を実施するための形態】
【0008】
以下、仮想体験システムの一実施形態について、図面を用いて説明する。
本実施形態は、非透過型のHMDを装着したユーザが現実世界を移動することにより、HMDによって提示される仮想世界をユーザが同じように移動して、買物行動等の行動体験ができる仮想体験システムである。
【0009】
図1は、仮想体験システム100の全体構成図である。仮想体験システム100は、位置センサ10と、無線通信部20と、情報処理装置30と、を含む。
【0010】
位置センサ10は、現実世界である仮想体験ルーム40内におけるユーザ51のグローバル座標系の位置(X,Y,Z)を検出するためのセンサである。すなわち位置センサ10は、現実位置検出手段として機能する。位置センサ10は、検出した位置データをセンシング信号として情報処理装置30へと出力する。
【0011】
位置センサ10は、ユーザ51のグローバル座標系における位置を検出できるものであればよい。あるいは位置センサ10の取得データから、図示しない計算手段によって間接的にユーザ51のグローバル座標系における位置を算出するものであってもよい。位置センサ10は、例えばカメラで撮影された画像から、ユーザ51のグローバル座標系における位置を検出するセンサであってもよい。あるいはGPS(Global Positioning System)を利用した測位システムのセンサ、ビーコン又はRFID(Radio Frequency Identification)を利用した測位システムのセンサ、加速度や移動方向を検知するセンサ等を位置センサ10として用いることも可能である。位置センサ10の数は、1つに限らない。1つの仮想体験ルーム40に複数の位置センサ10が備えられていてもよい。
【0012】
仮想体験ルーム40は、XY平面のX軸方向における一辺の長さをXp(m)、Y軸方向における一辺の長さをYp(m)とする矩形状の床面41と、該床面41の四辺の外側からそれぞれ垂直のZ軸方向に立設された壁42とによって囲われた現実世界である。仮想体験ルーム40は、屋外にあってもよいし、屋内にあってもよい。ユーザは、壁42の一部に形成されたドア43を通って、仮想体験ルーム40を出入りすることができる。仮想体験ルーム40の床面41には、物が何も置かれていない。したがって、仮想体験ルーム40に入ったユーザ51は、床面41の上を自由に移動することができる。ユーザ51は、頭部に非透過型のHMD60を装着して仮想体験ルーム40内を移動することにより、仮想空間に構成された三次元の仮想世界を同時に移動体験することができる。HMD60は、立体視画像表示装置の一例である。
【0013】
無線通信部20は、HMD60と無線を利用してデータ通信を行うユニットである。無線通信部20は、例えばWi-Fi(登録商標)の無線通信規格に準拠して、仮想体験ルーム40内のユーザ51が装着しているHMD60と無線通信を行う。
【0014】
情報処理装置30は、位置センサ10によって検出されるユーザ51の位置情報等を基に、そのユーザ51に提示するための仮想世界の立体視画像を生成する。そして情報処理装置30は、無線通信部20を介してHMD60と無線送信を行い、立体視画像をHMD60に表示させることで、HMD60を装着したユーザ51に三次元の仮想世界を提示する。
【0015】
図2は、ユーザ51が体験し得る仮想世界70の一例である。仮想世界70は、XY平面のX軸方向における一辺の長さをXq(m)、Y軸方向における一辺の長さをYq(m)とする矩形状の仮想床面71を有する仮想空間に、1以上の仮想オブジェクト72を配置してなる仮想の世界である。本実施形態において、仮想世界70は、実際に存在する現実世界を模したものである。したがって、仮想床面71の長さXqと長さYqとは、仮想世界70が模す現実世界に依存する。
【0016】
例えば、スーパーマーケットの売場を仮想世界70によって再現し、ユーザ51が買物行動を体験できる仮想体験システム100を想定すると、仮想床面71の長さXqと長さYqとは、売場の床面の大きさに依存する。また、仮想オブジェクト72の少なくとも1つは商品棚である。仮想体験ルーム40に入ったユーザ51は、HMD50を装着して移動することにより、例えば
図3に示すように、仮想世界70の仮想オブジェクト72である商品棚が配置された通路74を仮想のユーザ52が前後又は左右に移動して、仮想の買物行動を体験することができる。
【0017】
図4は、仮想体験システム100の要部回路構成を示すブロック図である。HMD60は、プロセッサ61、メモリ62、無線ユニット63、操作デバイス64、表示デバイス65及びモーションセンサ66を含む。プロセッサ61と、メモリ62、無線ユニット63、操作デバイス64、表示デバイス65及びモーションセンサ66とは、システムバス67を介して直接、又は入出力回路を介して接続されている。
【0018】
プロセッサ61は、メモリ62に記憶されたプログラムに従い各部を制御して、HMD60としての機能を実現させるものである。メモリ62は、プログラムの他、HDM60を装着したユーザ51に仮想世界70を提示するために必要なデータを記憶する。無線ユニット63は、無線通信部20との間で無線を利用したデータの送信または受信を行う。
【0019】
操作デバイス64は、HDM60を装着したユーザ51の操作を受け付けるデバイスである。操作デバイス64は、仮想世界70の体験開始を指令する開始ボタン、体験終了を指令する終了ボタン等を含む。表示デバイス65は、両眼視差を利用した立体視画像を、HDM60を装着したユーザ51の両眼の前に表示するデバイスである。例えば有機ELディスプレイ、液晶ディスプレイ等が表示デバイス65として用いられる。
【0020】
モーションセンサ66は、ユーザ51の姿勢、視線の向き及び徒歩等による移動等を検出するためのセンサである。例えば、ジャイロセンサ、加速度センサ、磁気センサ等がモーションセンサ66として用いられる。ジャイロセンサ、加速度センサ及び磁気センサを適宜組み合わせて、モーションセンサ66としてもよい。
【0021】
情報処理装置30は、プロセッサ31、メインメモリ32、補助記憶デバイス33、通信インターフェース34及びセンサインターフェース35を含む。プロセッサ31と、メインメモリ32、補助記憶デバイス33、通信インターフェース34及びセンサインターフェース35とは、システムバス36を介して直接、又は入出力回路を介して接続されている。情報処理装置30は、システムバス36を介してメインメモリ32、補助記憶デバイス33、通信インターフェース34及びセンサインターフェース35を接続することにより、コンピュータを構成する。
【0022】
プロセッサ31は、上記コンピュータの中枢部分に相当する。プロセッサ31は、オペレーティングシステム又はアプリケーションプログラムに従って、情報処理装置30としての各種の機能を実現するべく各部を制御する。プロセッサ31は、例えばCPU(Central Processing Unit)である。
【0023】
メインメモリ32は、上記コンピュータの主記憶部分に相当する。メインメモリ32は、不揮発性のメモリ領域と揮発性のメモリ領域とを含む。メインメモリ32は、不揮発性のメモリ領域ではオペレーティングシステム又はアプリケーションプログラムを記憶する。メインメモリ32は、プロセッサ31が各部を制御するための処理を実行する上で必要なデータを不揮発性又は揮発性のメモリ領域で記憶する場合もある。メインメモリ32は、揮発性のメモリ領域を、プロセッサ31によってデータが適宜書き換えられるワークエリアとして使用する。不揮発性のメモリ領域は、例えばROM(Read Only Memory)である。揮発性のメモリ領域は、例えばRAM(Random Access Memory)である。
【0024】
補助記憶デバイス33は、上記コンピュータの補助記憶部分に相当する。例えばEEPROM(Electric Erasable Programmable Read-Only Memory)、HDD(Hard Disk Drive)、あるいはSSD(Solid State Drive)等が補助記憶デバイス33となり得る。補助記憶デバイス33は、プロセッサ31が各種の処理を行う上で使用するデータ、プロセッサ31での処理によって作成されたデータ等を保存する。補助記憶デバイス33は、上記のアプリケーションプログラムを記憶する場合もある。
【0025】
メインメモリ32又は補助記憶デバイス33が記憶するアプリケーションプログラムの1つに、仮想体験プログラムがある。仮想体験プログラムをメインメモリ32又は補助記憶デバイス33にインストールする方法は特に限定されるものではない。リムーバブルな記録媒体に仮想体験プログラムを記録して、あるいはネットワークを介した通信により仮想体験プログラムを配信して、メインメモリ32又は補助記憶デバイス33にインストールすることができる。記録媒体は、CD-ROM,メモリカード等のようにプログラムを記憶でき、かつ装置が読み取り可能であれば、その形態は問わない。
【0026】
通信インターフェース34は、無線通信部20を接続する。通信インターフェース34は、無線通信部20を介して、仮想体験ルーム40内のユーザ51が装着しているHMD60とデータ通信を行う。センサインターフェース35は、位置センサ10を接続する。センサインターフェース35は、位置センサ10から出力されるセンシング信号を入力する。
【0027】
図5は、情報処理装置30のプロセッサ31が実現する主要な機能構成を示すブロック図である。プロセッサ31は、受付部301、現実位置取得部302、仮想位置決定部303、補正係数演算部304、移動速度設定部305、姿勢・向き検出部306、移動検出部307、提示画像生成部308及び提示画像出力部309としての機能を実現する。
【0028】
受付部301は、無線通信部20を介して、HMD60の操作デバイス64に対するユーザ51の操作入力を受け付ける機能である。受付部301は、例えば開始ボタンの操作入力を受け付けると、現実位置取得部302に対して開始指令を出力する。受付部301は、例えば終了ボタンの操作入力を受け付けると、提示画像出力部309に対して停止指令を出力する。
【0029】
現実位置取得部302は、位置センサ10からのセンシング信号により、現実世界である仮想体験ルーム40内に居るユーザ51のグローバル座標系の位置(X,Y,Z)を取得する機能である。現実位置取得部302は、現実位置取得手段と言い換えることができる。
【0030】
仮想位置決定部303は、仮想のユーザ52の仮想世界における位置を決定する機能である。仮想位置決定部303は、現実位置取得部302が取得したユーザ51の現実世界における位置に基づいて、仮想のユーザ52の仮想世界における位置を決定する。仮想位置決定部303は、仮想位置決定手段と言い換えることができる。
【0031】
現実位置取得部302及び仮想位置決定部303の機能の詳細について、
図6及び
図7を用いて説明する。
図6は、仮想体験ルーム40の床面41を示す模式図である。この床面41の上にマトリクス状に点在する複数のポイントのグローバル座標系における位置は、現実世界データベース37(
図5を参照)に保存されている。現実位置取得部302は、位置センサ10から受信したグローバル座標系の位置(X,Y,Z)で現実世界データベース37を参照して、その位置と一致するポイントを仮想体験ルーム40内に居るユーザ51の位置とする。
【0032】
図6において、ポイントMが位置センサ10で検出された現実世界におけるユーザ51の位置であると仮定する。ポイントMは、
図6を上から見た際に左端の境界線からX方向に距離Xa(m)だけ離れ、右端の境界線からーX方向に距離Xb(m)だけ離れ、下端の境界線からY方向に距離Ya(m)だけ離れ、上端の境界線からーY方向に距離Yb(m)でだけ離れた地点である。ここで、距離Xaと距離Xbとの和は、床面41のX方向における一辺の長さXpと等しく、距離Yaと距離Ybとの和は、床面41のY方向における一辺の長さYpと等しい。上記の境界線は、現実世界におけるユーザの現実の存在位置から当該現実世界においてユーザが移動可能な範囲の境界となる線である。
【0033】
図7は、仮想世界の仮想床面71を示す模式図である。仮想床面71におけるX軸方向の一辺の長さXq(m)と、Y軸方向の一辺の長さYq(m)とは、仮想世界毎に仮想世界データベース38(
図5を参照)に保存されている。つまり、仮想床面71の大きさ(面積)は、仮想世界毎に設定される。そしてその大きさは、仮想体験ルーム40の床面41の大きさに依存しない。仮想床面71は、床面41より大きくてもよいし、小さくてもよい。
【0034】
図7において、ポイントNが仮想位置決定部303で決定された仮想のユーザ52の仮想床面71上の位置である。ポイントNは、
図7を上から見た際に左端の境界線からX方向に距離Xc(m)だけ離れ、右端の境界線からーX方向に距離Xd(m)だけ離れ、下端の境界線からY方向に距離Yc(m)だけ離れ、上端の境界線からーY方向に距離Yd(m)でだけ離れた地点である。ここで、距離Xcと距離Xdとの和は、仮想床面71のX軸方向における一辺の長さXqと等しく、距離Ycと距離Ydとの和は、仮想床面71のY軸方向における一辺の長さYqと等しい。そして、距離Xc(m)と距離Xd(m)との比は、距離Xaと距離Xbとの比と等しく、距離Ycと距離Ydとの比は、距離Yaと距離Ybとの比と等しいのが原則である。ただし、この原則に則ると、ポイントNが、仮想オブジェクト72の配置位置と重なる場合がある。仮想オブジェクト72の配置位置を示すデータは、仮想世界毎に仮想世界データベース38に保存されている。ポイントNが、仮想オブジェクト72の配置位置と重なる場合、仮想位置決定部303は、ポイントNの近くの仮想オブジェクト72の配置位置と重ならない地点で、仮想のユーザ52が行動可能なポイントN’を決定し、ユーザ52の仮想床面71上の位置とする。例えば、スーパーマーケットの売場を仮想世界70によって再現する場合において、ユーザ51の現実世界におけるポイントMに対応する仮想世界のポイントNが仮想オブジェクト72である商品棚の位置と重なるときには、そのポイントNの近くにおける通路74の中央をポイントN’とすればよい。上記の境界線は、ユーザの仮想世界内における仮想の存在位置から当該仮想世界においてユーザが移動可能な範囲の境界となる線である。
【0035】
なお、現実世界データベース37及び仮想世界データベース38は、いずれも補助記憶デバイス33が備えている。現実世界データベース37及び仮想世界データベース38は、情報処理装置30に対してネットワークで接続された外部の記憶装置、例えばクラウドコンピューティングのサーバがアクセスする記憶装置に備えてもよい。
【0036】
図5の説明に戻る。
補正係数演算部304は、現実位置取得部302が取得した現実世界のポイントMと、仮想位置決定部303が決定した仮想世界のポイントN(又はN’)とを基に、補正係数Kを算出する機能である。現実世界を移動するユーザ51の移動距離をそのまま仮想世界を移動する仮想のユーザ52の移動距離とすると、ユーザ52が移動できる仮想床面71の範囲は、床面41の範囲内に制限される。仮に、仮想床面71の面積が床面41の面積よりも小さい場合には、ユーザ52の移動範囲が床面41の範囲内に制限されても問題はない。しかし、仮想床面71の面積が床面41の面積よりも大きい場合には、現実世界を移動して仮想世界70を移動体験しているユーザ51が床面41の境界線から外に出ようとして仮想体験ルーム40の壁42と衝突してしまう危険性がある。そこで、仮想体験システム100においては、ユーザ51が仮想体験ルーム40の壁42と衝突することなく仮想世界70の全域を移動体験できるように、仮想のユーザ52の移動速度を速める方向に補正する。補正係数演算部304は、この移動速度を補正するための補正係数Kを算出する。
【0037】
補正係数演算部304は、ユーザ51の現実世界における床面41上のポイントMから現実世界の境界線を構成する床面41の各辺までの距離と、仮想のユーザ52の仮想世界における仮想床面71上のポイントN(又はN´)から仮想世界の境界線を構成する仮想床面71の各辺までの距離との比により、補正係数Kを算出する。具体的には、補正係数演算部304は、以下の演算式(1)~(4)を演算して、解Ka,解Kb,解Kc,解Kdを求める。
Ka=Xc/Xa …(1)
Kb=Xd/Xb …(2)
Kc=Yc/Ya …(3)
Kd=Yd/Yb …(4)
そして、補正係数演算部304は、解Ka,解Kb,解Kc,解Kdの中の最大値を補正係数Kとする。
【0038】
一例として、仮想体験ルーム40における床面41のX軸方向における一辺の長さXpを50(m)、Y軸方向における一辺の長さYaを30(m)とし、仮想世界70における仮想床面71のX軸方向における一辺の長さXqを100(m)、Y軸方向における一辺の長さYqを80(m)とする。また、現実位置取得部302が取得した現実世界上のポイントMは、距離Xaが10(m)、距離Xbが40(m)、距離Yaが15(m)、距離Ybが15(m)の地点とする。この場合、ポイントNは、距離Xcが20(m)、距離Xdが80(m)、距離Ycが40(m)、距離Ydが40(m)の地点となる。しかし、一例では、該ポイントNが仮想オブジェクトと重なるために、仮想位置決定部303は、例えば距離Xaが18(m)、距離Xbが82(m)、距離Yaが35(m)、距離Ybが45(m)の地点をポイントN’として決定したと仮定する。
【0039】
補正係数演算部304は、上記(1)~(4)の演算式を演算する。その結果、演算式(1)の解K1は1.80、演算式(2)の解K2は2.05、演算式(3)の解K3は2.33、演算式(4)の解K4は3.00となる。補正係数演算部304は、解の最大値を補正係数Kとする。すなわち補正係数演算部304は、補正係数Kとして3.0を算出する。
【0040】
因みに、ユーザ51がポイントMからX方向に、現実世界の境界線に到達するまでの距離40(m)を移動すると、仮想世界では、その距離40(m)に補正係数K=3.0を乗算した距離、すなわち120(m)を同じ時間で移動したこととなる。ユーザ52が仮想床面71のポイントN’からX方向に移動可能な最大距離は82(m)である。したがって、ユーザ51は、現実世界の境界線にある仮想体験ルーム40の壁42に衝突することはない。
【0041】
ユーザ51がポイントMから-X方向に、現実世界の境界線に到達するまでの距離10(m)を移動すると、仮想世界では、その距離10(m)に補正係数K=3.0を乗算した距離、すなわち30(m)を同じ時間で移動したこととなる。ユーザ52が仮想床面71のポイントN’から-X方向に移動可能な最大距離は18(m)である。したがって、ユーザ51は、現実世界の境界線にある仮想体験ルーム40の壁42に衝突することはない。
【0042】
ユーザ51がポイントMからY方向に、現実世界の境界線に到達するまでの距離15(m)を移動すると、仮想世界では、その距離15(m)に補正係数K=3.0を乗算した距離、すなわち45(m)を同じ時間で移動したこととなる。ユーザ52が仮想床面71のポイントN’からY方向に移動可能な最大距離は35(m)である。したがって、ユーザ51は、現実世界の境界線にある仮想体験ルーム40の壁42に衝突することはない。
【0043】
ユーザ51がポイントMから-Y方向に、現実世界の境界線に到達するまでの距離15(m)を移動すると、仮想世界では、その距離15(m)に補正係数K=3.0を乗算した距離、すなわち45(m)を同じ時間で移動したこととなる。ユーザ52が仮想床面71のポイントN’から-Y方向に移動可能な最大距離は45(m)である。したがって、ユーザ51は、現実世界の境界線にある仮想体験ルーム40の壁42に衝突する寸前で留まる。
【0044】
ところで一般に、人間の歩行速度は約1m/秒であり、競歩では約4m/秒であるといわれている。このため、補正係数Kが4.0を超えると、仮想世界におけるユーザ52の移動速度は競歩の移動速度を超えてしまい、非現実的である。そこで補正係数Kは、最大値を4.0とする。
【0045】
また、補正係数Kが大きいと、仮想世界70によって再現される景色の変化が速くなりすぎてしまい、ユーザ51が乗り物酔いに似た症状、いわゆるVR酔いを感じるおそれがある。そこで補正係数演算部304は、例えば算出した補正係数Kが最大値4.0の半分である2.0以上の場合、その補正係数Kに1以下の安全係数α(0<α≦1)を乗算した値αKを補正係数とする。ただし、補正係数αKでは、ユーザ51が現実世界の境界線を越えて仮想体験ルーム40の壁42に衝突する可能性がある。そこで、補正係数演算部304は、定期的に補正係数αKを算出し直す。補正係数演算部304は、定期的に補正係数αKを算出し直すことにより、ユーザ51が仮想体験ルーム40の壁42に衝突する危険性を回避できる。
【0046】
移動速度設定部305は、補正係数演算部304により算出された補正係数K又は補正係数αKにより現実世界を移動するユーザ51の移動速度を補正して、仮想世界70を移動する仮想のユーザ52の移動速度として設定する機能である。ここに、補正係数演算部304及び移動速度設定部305は、速度設定手段と言い換えることができる。すなわち補正係数演算部304及び移動速度設定部305は、現実世界における存在位置Mから当該現実世界の境界線までの第1の距離(Xa,Xb,Ya又はYb)と、仮想世界70における存在位置N(N’)から当該仮想世界70の境界線までの第2の距離(Xc,Xd,Yc又はYd)との比に基づいて、仮想のユーザ52が仮想世界70を移動する速度を設定する手段であると言える。
【0047】
姿勢・向き検出部306は、HMD60が備えるモーションセンサ66からの信号により、HMD60を装着したユーザ51の姿勢と視線の向きとを検出する機能である。姿勢・向き検出部306は、例えばモーションセンサ66により検知されるHMD60の高さ位置及び回転角度の変化量を追随するセンシングデータに基づいて、ユーザ51の姿勢の変化に伴う頭部の動きをリアルタイムに検出する(ヘッドトラッキング)。また姿勢・向き検出部306は、例えばモーションセンサ66により検知されるユーザ51の眼の動きを追随するセンシングデータに基づいて、ユーザ51の視線の向きをリアルタイムに検出する(アイトラッキング)。
【0048】
移動検出部307は、HMD60が備えるモーションセンサ66からの信号により、HMD60を装着したユーザ51の現実世界における移動方向、移動速度及び移動時間を検出する機能である。移動検出部307は、モーションセンサ66により検知されるHMD60の移動を追随するセンシングデータに基づいて、仮想体験ルーム40の床面41を徒歩等で移動するユーザ51の移動方向、移動速度及び移動時間をリアルタイムに検出する。
【0049】
提示画像生成部308は、HMD60を装着して仮想体験ルーム40内を移動するユーザ51の移動方向、移動速度、姿勢、視線の向き等に合わせて、当該ユーザ51にHMD60を介して提示される仮想世界の立体視画像を生成する機能である。提示画像生成部308は、仮想世界データベース38に保存されている仮想オブジェクト72の配置位置を示すデータを基に、仮想世界70を再現する立体視画像を生成する。詳しくは、提示画像生成部308は、仮想位置決定部303により決定された仮想世界内のユーザ52の位置において、姿勢・向き検出部306によって検出される現実世界内のユーザ51と同じ姿勢で同じ向きに視線を向けるユーザ52の眼に映る仮想世界70の立体視画像を生成する。また提示画像生成部308は、移動検出部307で検出される現実世界内のユーザ51の移動に合わせて、ユーザ52の眼に映る仮想世界70の立体視画像を変化させる。このとき提示画像生成部308は、移動速度設定部305により設定される移動速度で変化する立体視画像を生成する。ここに、提示画像生成部308は、画像生成手段と言い換えることができる。
【0050】
提示画像出力部309は、提示画像生成部308によって生成された立体視画像のデータを、仮想体験ルーム40内のユーザ51が装着しているHMD60に出力する機能である。提示画像出力部309から出力された立体視画像のデータは、無線通信部20を介してHMD60に無線送信され、表示デバイス65に表示される。この立体視画像の表示により、HMD60を装着したユーザ51に三次元の仮想世界70が提示される。ここに、提示画像出力部309は、画像出力手段と言い換えることができる。
【0051】
図8は、情報処理装置30のプロセッサ31が仮想体験プログラムに従って実行する情報処理の手順を示す流れ図である。以下、
図8を用いて、情報処理装置30を含む仮想体験システム100の主要な動作を説明する。なお、以下に説明する動作は一例である。同様な効果を奏し得るのであればその手順又は処理の内容は適宜変更することができる。
【0052】
仮想世界70を体験するユーザ51は、仮想体験ルーム40に入り、所定の位置(ポイントM)に立って頭部にHDM60を装着する。そしてユーザ51は、操作デバイス64の開始ボタンを操作する。プロセッサ31は、受付部301の機能により開始ボタンが操作されたことを検知すると、
図8の流れ図に示す手順の情報処理を開始する。
【0053】
先ず、プロセッサ31は、ACT1として現実位置取得部302の機能により、現実世界である仮想体験ルーム40内に居るユーザ51の位置を示すポイントMを取得する。またプロセッサ31は、ACT2として仮想位置決定部303の機能により、ユーザ51が体験する仮想世界70における仮想のユーザ52の位置を示すポイントN(又はN’)を決定する。
【0054】
次いで、プロセッサ31は、ACT3として補正係数演算部304の機能により、現実位置取得部302が取得した現実世界のポイントMと、仮想位置決定部303が決定した仮想世界のポイントN(又はN’)とを基に、補正係数K又は補正係数αKを算出する。そしてプロセッサ31は、ACT4として仮想のユーザ52が仮想世界70を移動する移動速度を設定する。なお、初期の時点では、現実空間のユーザが移動していないので、ACT4において設定される移動速度は0(m/s)である。
【0055】
ACT1乃至ACT4の処理を終えると、プロセッサ31は、ACT5として姿勢・向き検出部306の機能により、ユーザ51の姿勢と視線の向きを検出する。そしてプロセッサ31は、ACT6として提示画像生成部308の機能により、ポイントN(又はN’)の位置において姿勢・向き検出部306で検出された姿勢で視線を向けたユーザ52の眼に映る仮想世界70の立体視画像を生成する。プロセッサ31は、ACT7として提示画像出力部309の機能により、提示画像生成部308によって生成された立体視画像を、仮想体験ルーム40内のユーザ51が装着しているHMD60に出力する。
【0056】
これにより、ユーザ51が装着しているHMD60に立体視画像が表示されるので、ユーザ51は、その立体視画像によって再現される三次元の仮想世界70を体験する。例えば、スーパーマーケットの売場が仮想世界70によって再現された場合、ユーザ51は、その売場での買物行動を仮想的に体験する。
【0057】
例えばユーザ51は、仮想オブジェクト72の商品棚に挟まれた通路を仮想のユーザ52が移動するように、仮想体験ルーム40の床面41を徒歩で移動する。そしてユーザ51は、頭を動かしたり、その場で屈んだりすることで、ユーザ52が商品棚に視線を向けて商品を探したり、商品棚の前で屈んで商品を選んだりする、という買物行動を仮想的に体験する。なお、仮想体験を終了するユーザ51は、操作デバイス64の終了ボタンを操作する。
【0058】
仮想体験ルーム40を移動するユーザ51の移動方向、移動速度は、移動検出部307の機能によって検出される。また、ユーザ51の姿勢の変化又は視線の動きは、姿勢・向き検出部306の機能によって検出される。
【0059】
ACT7の処理を終えたプロセッサ31は、ACT8としてユーザ51の姿勢又は視線の向きが変化したか否かを確認する。ユーザ51の姿勢又は視線の向きが変化していない場合、プロセッサ31は、ACT9としてユーザ51が仮想体験ルーム40内を徒歩等で移動したか否かを確認する。ユーザ51が移動していない場合、プロセッサ31は、ACT10として操作デバイス64の終了ボタンが操作されたか否かを確認する。終了ボタンが操作されていない場合、プロセッサ31は、ACT8へと戻る。ここにプロセッサ31は、ACT8乃至ACT10としてユーザ51の姿勢又は視線の向きが変化するか、ユーザ51が移動するか、終了ボタンが操作されるのを待ち受ける。
【0060】
ACT8乃至ACT10の待ち受け状態において、ユーザ51の姿勢又は視線の向きが変化すると、プロセッサ31は、ACT5に戻る。そして、ACT5以降の処理を前述したのと同様に実行する。すなわちプロセッサ31は、ユーザ51の変化後の姿勢と視線の向きを検出し、その姿勢で視線を向けたユーザ52の眼に映る仮想世界50の立体視画像を生成する。そしてプロセッサ31は、その立体視画像を、仮想体験ルーム40内のユーザ51が装着しているHMD60に出力する。したがって、姿勢又は視線の向きを変化させたユーザ51は、その変化に追随して可変する仮想世界70を体験することができる。
【0061】
ACT8乃至ACT10の待ち受け状態において、ユーザ51が移動すると、プロセッサ31は、ACT11へと進む。プロセッサ31は、ACT11として移動検出部307で検出されるユーザ51の移動速度と移動時間とから、ACT1において検出したポイントMからの移動距離Laを算出する。またプロセッサ31は、ACT12として移動距離Laに補正係数K又は補正係数αKを乗算して、仮想のユーザ52の移動距離Lbを算出する。
【0062】
ACT11及びACT12の処理を終えると、プロセッサ31は、ACT13として移動距離Laが所定の閾値以上であるか否かを確認する。閾値は任意であり、例えば仮想体験システム100の管理者によって設定される。管理者は、例えば仮想体験ルーム40を構成する床面41の短辺の長さの1/10を閾値とする。例えば床面41の短辺の長さが30mの場合、閾値は3mとなる。つまり、仮想体験ルーム40内のユーザ51が床面41を一方向に3m移動すると、プロセッサ31は、ACT13において移動距離Laが閾値以上であると判定する。
【0063】
移動距離Laが閾値未満の場合、プロセッサ31は、ACT6へと戻る。そしてプロセッサ31は、ACT6以降の処理を前述したのと同様に実行する。すなわちプロセッサ31は、ACT2において決定したポイントN(又はN’)から、ユーザ51の移動方向と同じ方向に、ACT12において算出した移動距離Lbを移動するユーザ52の眼に映る仮想世界70の立体視画像を生成する。このとき、仮想のユーザ52の移動速度は、ACT4において設定される移動速度となる。ただし、この移動速度が0(m/s)の場合には、移動検出部307で検出されるユーザ51の移動速度とする。プロセッサ31は、仮想世界70の立体視画像をHMD60に出力する。そしてプロセッサ31は、ACT8乃至ACT10の待ち受け状態に戻る。
ACT13において、移動距離Laが閾値以上の場合には、プロセッサ31は、ACT1へと戻る。そして、ACT1以降の処理を前述したのと同様に実行する。すなわちプロセッサ31は、移動検出部307で検出される移動方向に現実世界を移動距離Laだけ移動したユーザ51の位置を示すポイントMを取得する。またプロセッサ31は、同移動方向に仮想世界を移動距離Lbだけ移動した仮想のユーザ52の位置を示すポイントN(又はN’)を決定する。プロセッサ31は、現実世界のポイントMと仮想世界のポイントN(又はN’)とを基に、補正係数K又は補正係数αKを再度算出する。そしてプロセッサ31は、仮想のユーザ52が仮想世界70を移動する移動速度を設定する。すなわちプロセッサ31は、移動検出部307で検出される移動時間に移動距離Lbだけ移動するのに要する移動速度を、仮想のユーザ52が仮想世界70を移動する移動速度として設定する。その後、プロセッサ31は、ポイントN(又はN’)の位置において姿勢・向き検出部306で検出された姿勢で視線を向けたユーザ52の眼に映る仮想世界70の立体視画像を生成し、その立体視画像を、仮想体験ルーム40内のユーザ51が装着しているHMD60に出力する。
このようにプロセッサ31は、ACT11又はACT12の処理を実行することにより、ユーザの現実世界における移動距離La又は仮想世界における移動距離Lbを取得する距離取得手段として機能する。そしてプロセッサ31は、ACT13において、ユーザ51の現実世界における移動距離Laが所定の閾値以上である場合に、ACT1乃至ACT3の処理を実行することにより、補正係数K又は補正係数αKを再計算し、さらにACT4の処理を実行することにより、ユーザ52の仮想世界における移動速度を再度設定する。
【0064】
ACT8乃至ACT10の待ち受け状態において、終了ボタンが操作されたことを検知すると、プロセッサ31は、ACT14へと進む。プロセッサ31は、ACT14として立体視画像の出力を停止する。以上で、プロセッサ31は、仮想体験プログラムに従った情報処理を終了する。
【0065】
以上詳述したように、本実施形態によれば、ユーザ51の現実世界における移動に合わせて仮想のユーザ52が仮想世界70を移動する立体視画像を当該ユーザ51に提示する仮想体験システム100を提供することができる。
【0066】
そして、この仮想体験システム100は、ユーザ51の現実世界における存在位置Mを検出するとともに、ユーザ52の仮想世界70における存在位置N(又はN’)を決定し、現実世界における存在位置Nから当該現実世界の境界線までの第1の距離と、仮想世界70における存在位置N(又はN’)から当該仮想世界の境界線までの第2の距離との比に基づいて、ユーザ52が仮想世界70を移動する速度を設定している。具体的には、ユーザ51が第1の距離を移動するか第1の距離を移動する前に、ユーザ52が第2の距離を移動するように、移動速度を設定している。
【0067】
このように、ユーザ52の移動速度を設定することで、現実世界を移動して仮想世界70を移動体験しているユーザ51が、床面41の境界線から外に出ようとして仮想体験ルーム40の壁42と衝突してしまう危険性はない。したがって、ユーザ51が現実世界の境界線から外へと出ないように、仮想世界70に配置される仮想オブジェクト72を変更する必要がない。その結果、仮想世界70に配置される仮想オブジェクトを仮想世界70が実際に存在する現実世界を模したものであり、その現実世界をユーザ51が知っていた場合であっても、仮想オブジェクトは変更されないので、ユーザ51は、仮想世界の世界観を壊すことなく仮想世界の行動体験を行うことができる。
【0068】
また、仮想体験システム100は、ユーザ51の現実世界における移動距離Laを取得する。そして仮想体験システム100は、その移動距離Laが所定の距離(閾値)に達する毎に、ユーザ52が仮想世界70を移動する速度を設定するようにしている。
【0069】
例えば、第1の距離に対して第2の距離が十分に長い場合、その比に基づいて設定される移動速度は、競歩の移動速度を超えてしまい、非現実的となる場合がある。そこで本実施形態では、比に基づいて設定される移動速度よりも遅い速度をユーザ52が仮想世界70を移動する速度を設定するようにしている。しかしその場合、初期の移動速度では、ユーザ51が仮想体験ルーム40の壁42と衝突してしまう危険性がある。しかし、移動距離Laが閾値に達する毎に移動速度を設定することにより、その危険性を回避することができる。
【0070】
なお、速度設定手段は、第1の距離に対して第2の距離が長い場合に限り、仮想世界70を移動するユーザ52の移動速度を設定し、第1の距離に対して第2の距離が短い場合には、現実世界を移動するユーザ51の移動速度をそのまま仮想世界70を移動するユーザ52の移動速度としてもよい。そうすることにより、現実世界を模した仮想世界が、仮想体験ルーム40よりも狭い場合には、情報処理装置30は、
図8のACT3の補正係数演算処理を行わないので、情報処理装置30の負荷を軽減できる効果を奏する。
【0071】
以上、仮想体験システム100及びそのシステムの情報処理装置30の実施形態について説明したが、かかる実施形態はこれに限定されるものではない。
【0072】
例えば、ユーザが仮想世界を体験する現実世界は、仮想体験ルーム40に限定されない。例えば公園、運動場等の広場に現実区間としての境界線を設定し、その境界線の中でユーザが自由に移動して、仮想世界を体験できるようにしてもよい。この場合も、ユーザが境界線から外に出ないように、仮想オブジェクトを制御することとなる。したがって、仮想体験ルーム40を囲う壁42は、必ずしも必要としない。
【0073】
仮想世界70でユーザ51が体験する行動は、買物行動に限定されない。いかなる行動を体験する場合においても、仮想世界を体験しているユーザが現実世界の境界線を越えてしまうという不具合を未然に防ぐことができる。
【0074】
前記実施形態では、補正係数Kが最大値4.0の半分である2.0以上の場合、その補正係数Kに1以下の安全係数α(0<α≦1)を乗算した値αKを補正係数とした。この点に関しては、補正係数Kの値に関わらず、値αKを補正係数としてもよい。
【0075】
前記実施形態では、ユーザ51の現実世界における移動距離Laが所定の閾値以上である場合に、補正係数を再計算して、ユーザ52の仮想世界における移動速度を再度設定した。この点に関しては、ユーザ52の仮想世界における移動距離Lbが所定の閾値以上である場合に、補正係数を再計算して、ユーザ52の仮想世界における移動速度を再度設定してもよい。
【0076】
この他、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態及びその変形は、発明の範囲に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0077】
10…位置センサ、20…無線通信部、30…情報処理装置、37…現実世界データベース、38…仮想世界データベース、40…仮想体験ルーム、51,52…ユーザ、60…HMD(ヘッドマウントディスプレイ)、70…仮想世界、100…仮想体験システム、301…受付部、302…現実位置取得部、303…仮想位置決定部、304…補正係数演算部、305…移動速度設定部、306…姿勢・向き検出部、307…移動検出部、308…提示画像生成部、309…提示画像出力部。