JP2018200688A - 仮想空間を提供するためのプログラム、当該プログラムを実行するための情報処理装置、および仮想空間を提供するための方法 - Google Patents

仮想空間を提供するためのプログラム、当該プログラムを実行するための情報処理装置、および仮想空間を提供するための方法 Download PDF

Info

Publication number
JP2018200688A
JP2018200688A JP2018094156A JP2018094156A JP2018200688A JP 2018200688 A JP2018200688 A JP 2018200688A JP 2018094156 A JP2018094156 A JP 2018094156A JP 2018094156 A JP2018094156 A JP 2018094156A JP 2018200688 A JP2018200688 A JP 2018200688A
Authority
JP
Japan
Prior art keywords
user
virtual space
hmd
sight
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2018094156A
Other languages
English (en)
Inventor
知宏 南
Tomohiro Minami
知宏 南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Colopl Inc
Original Assignee
Colopl Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Colopl Inc filed Critical Colopl Inc
Priority to JP2018094156A priority Critical patent/JP2018200688A/ja
Publication of JP2018200688A publication Critical patent/JP2018200688A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】ユーザの仮想空間における体験をより豊かにする技術を提供すること。【解決手段】ヘッドマウントデバイスに仮想空間を提供するためにコンピュータで実行されるプログラムは、仮想空間を定義するステップ(S1605)と、ヘッドマウントデバイスのユーザの操作を受け付け可能な1以上のオブジェクトを仮想空間に配置するステップ(S1610)と、ユーザの視線を検出するステップ(S1620)と、1以上のオブジェクトの中から、検出された視線により指定されるオブジェクトを特定するステップ(S1625)と、ユーザの四肢の少なくとも一部の動きを検出するステップ(S1630)と、ユーザの四肢の少なくとも一部の動きの検出結果に基づいて特定されたオブジェクトに対する操作を受け付けるステップ(S1660)とを備える。【選択図】図16

Description

この開示は、仮想空間を提供するための技術に関し、より特定的には仮想空間におけるユーザの操作を支援する技術に関する。
ヘッドマウントデバイス(HMD:Head-Mounted Device)を用いて仮想空間(仮想現実空間とも言う)を提供する技術が知られている。また、仮想空間におけるユーザの体験を豊かにする様々な技術が提案されている。
例えば、非特許文献1は、仮想空間でのシューティングゲームにおいて、ユーザの視線を利用して、対象物への照準を合わせる技術を開示している。
また、非特許文献2は、仮想空間におけるユーザの視線部分のみを高解像度でレンダリングし、その他の部分を低解像度でレンダリングする技術を開示している。
"視線ひとつでここまで体験は変わる。アイトラッキングシステム搭載VRヘッドセット「FOVE」"、[online]、[平成29年5月10日検索]、インターネット〈URL:http://www.gizmodo.jp/2016/09/tgs2016-vr-fove.html〉 "ハイエンドVRを超低負荷で実現する"Foveated Rendering"最新動向"、[online]、[平成29年5月11日検索]、インターネット〈URL:http://game.watch.impress.co.jp/docs/series/vrgaming/745831.html〉
従来、ユーザは仮想空間に展開されるオブジェクトを操作するにあたり、まず仮想空間上でオブジェクトの近くまで移動する必要があった。しかしながら、ユーザは、この移動作業を面倒と感じる場合がある。そのため、仮想空間においてユーザがより楽に操作できる技術が必要とされている。
本開示の目的は、例えば上記のような課題を解決するためになされたものであって、ユーザの仮想空間における体験をより豊かにする技術を提供することである。
ある実施形態に従うと、ヘッドマウントデバイスに仮想空間を提供するためにコンピュータで実行される方法が提供される。この方法は、仮想空間を定義するステップと、ヘッドマウントデバイスのユーザの操作を受け付け可能な1以上のオブジェクトを仮想空間に配置するステップと、ユーザの視線を検出するステップと、1以上のオブジェクトの中から、検出された視線により指定されるオブジェクトを特定するステップと、ユーザの四肢の少なくとも一部の動きを検出するステップと、ユーザの四肢の少なくとも一部の動きの検出結果に基づいて特定されたオブジェクトに対する操作を受け付けるステップとを備える。
開示された技術的特徴の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
HMDシステムの構成の概略を表す図である。 ある局面に従うコンピュータのハードウェア構成の一例を表すブロック図である。 ある実施形態に従うHMDに設定されるuvw視野座標系を概念的に表す模式図である。 ある実施形態に従う仮想空間を表現する一態様を概念的に表す模式図である。 ある実施形態に従うHMDを装着するユーザの頭部を上から表した模式図である。 仮想空間において視認領域をX方向から見たYZ断面を表す図である。 仮想空間において視認領域をY方向から見たXZ断面を表す図である。 ある実施形態に従うコンピュータをモジュール構成として表わすブロック図である。 手をトラッキングする処理について説明するための図である。 トラッキングモジュールの動作を説明するための図である。 トラッキングデータのデータ構造の一例を表す図である。 HMDシステムが実行する処理の一例を表わすフローチャートである。 ユーザの視界画像を表す図である。 図13に示される視界画像に対応する仮想空間を表す図である。 図13において右手オブジェクトが開いた状態から閉じた状態に移行した後の視界画像を表す図である。 ユーザの視線と四肢の一部の動きとに基づくユーザ操作を受け付ける処理を表すフローチャートである。 触覚によるフィードバック処理を説明するための図である。 内領域ISと外領域OSとを説明するための図である。 図18における視認領域に対応する視界画像を表す図である。 ある実施形態に従うオブジェクト情報のデータ構造の一例を表す図である。 コンピュータにおける画像処理負担を軽減するための一連の制御を説明するためのフローチャートである。 ポインタオブジェクトを含む視界画像を表す図である。 図22に示される視界画像に対応する仮想空間を表す図である。 仮想空間におけるポインタオブジェクトの大きさを制御する処理を表すフローチャートである。
以下、この技術的思想の実施形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。なお、以下で説明される各実施形態は、適宜選択的に組み合わされてもよい。
[HMDシステムの構成]
図1を参照して、HMD(Head-Mounted Device)システム100の構成について説明する。図1は、HMDシステム100の構成の概略を表す。HMDシステム100は、家庭用のシステムとしてあるいは業務用のシステムとして提供される。
HMDシステム100は、HMD(Head-Mounted Device)セット105A,105B,105C,105Dと、ネットワーク19とサーバ150とを含む。HMDセット105A,105B,105C,105Dの各々は、ネットワーク19を介してサーバ150と通信可能に構成される。以下、HMDセット105A,105B,105C,105Dを総称して、HMDセット105とも言う。なお、HMDシステム100を構成するHMDセット105の数は、4つに限られず、3つ以下でも、5つ以上でもよい。
HMDセット105は、HMD110と、HMDセンサ120と、コンピュータ200とを備える。HMD110は、モニタ112と、カメラ116と、スピーカ118と、マイク119と、注視センサ140とを含む。他の局面において、HMD110は、センサ114をさらに備える。
ある局面において、コンピュータ200は、インターネットその他のネットワーク19に接続可能であり、ネットワーク19に接続されているサーバ150その他のコンピュータ(例えば、他のHMDセット105のコンピュータ)と通信可能である。
HMD110は、ユーザ190の頭部に装着され、動作中に仮想空間をユーザ190に提供し得る。より具体的には、HMD110は、右目用の画像および左目用の画像をモニタ112にそれぞれ表示する。ユーザ190の各目がそれぞれの画像を視認すると、ユーザ190は、両目の視差に基づき当該画像を3次元の画像として認識し得る。HMD110は、モニタを備える所謂ヘッドマウントディスプレイと、スマートフォンその他のモニタを有する端末を装着可能なヘッドマウント機器のいずれをも含み得る。
モニタ112は、例えば、非透過型の表示装置として実現される。ある局面において、モニタ112は、ユーザ190の両目の前方に位置するようにHMD110の本体に配置されている。したがって、ユーザ190は、モニタ112に表示される3次元画像を視認すると、仮想空間に没入することができる。ある実施形態において、仮想空間は、例えば、背景、ユーザ190が操作可能なオブジェクト、ユーザ190が選択可能なメニューの画像を含む。ある実施形態において、モニタ112は、所謂スマートフォンその他の情報表示端末が備える液晶モニタまたは有機EL(Electro Luminescence)モニタとして実現され得る。
他の局面において、モニタ112は、透過型の表示装置として実現され得る。この場合、HMD110は、図1に示されるようにユーザ190の目を覆う密閉型ではなく、メガネ型のような開放型であり得る。透過型のモニタ112は、その透過率を調整することにより、一時的に非透過型の表示装置として機能し得る。また、モニタ112は、仮想空間を構成する画像の一部と、現実空間とを同時に表示する構成を含んでいてもよい。例えば、モニタ112は、HMD110に搭載されたカメラで撮影した現実空間の画像を表示してもよいし、一部の透過率を高く設定することにより現実空間を視認可能にしてもよい。
ある局面において、モニタ112は、右目用の画像を表示するためのサブモニタと、左目用の画像を表示するためのサブモニタとを含み得る。別の局面において、モニタ112は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、モニタ112は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
カメラ116は、対象物の深度情報を取得可能に構成される。一例として、カメラ116は、TOF(Time Of Flight)方式に従い、対象物の深度情報を取得する。他の例として、カメラ116は、パターン照射方式に従い、対象物の深度情報を取得する。ある実施形態において、カメラ116は、対象物を2つ以上の異なる方向から撮影できるステレオカメラであり得る。また、カメラ116は、人間が不可視な赤外線カメラであり得る。カメラ116は、HMD110に装着され、ユーザ190の身体の一部を撮影する。以下、一例として、カメラ116は、ユーザ190の手を撮影する。カメラ116は取得したユーザ190の手の深度情報をコンピュータ200に出力する。
スピーカ118は、音声信号を音声に変換してユーザ190に出力する。マイク119は、ユーザ190の発話を電気信号である音声信号に変換してコンピュータ200に出力する。なお、他の局面において、HMD110は、スピーカ118に替えてイヤホンを備えるように構成されてもよい。
HMDセンサ120は、HMD110の位置および傾きを検出する。この場合、HMD110は、複数の光源(図示しない)を含む。各光源は例えば、赤外線を発するLED(Light Emitting Diode)により実現される。HMDセンサ120は、各光源が発する光を検出して、HMD110の位置および姿勢を検出するための公知のポジショントラッキング機能を有する。
他の局面において、コンピュータ200は、HMDセンサ120の出力に替えてセンサ114の出力に基づいてHMD110の傾きを検出するように構成されてもよい。センサ114は、例えば、角速度センサ、加速度センサ、地磁気センサにより、またはこれらのセンサの組み合わせにより実現される。コンピュータ200は、センサ114の出力に基づいて、HMD110の傾きを検出する。一例として、センサ114が角速度センサである場合、角速度センサは、現実空間におけるHMD110の3軸周りの角速度を経時的に検出する。コンピュータ200は、各角速度に基づいて、HMD110の3軸周りの角度の各々の時間的変化を算出してHMD110の傾きを算出する。
注視センサ140は、ユーザ190の右目および左目の視線が向けられる方向(視線)を検出する。当該方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ140は、当該アイトラッキング機能を有するセンサにより実現される。ある局面において、注視センサ140は、右目用のセンサおよび左目用のセンサを含むことが好ましい。注視センサ140は、例えば、ユーザ190の右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ140は、検出した各回転角に基づいて、ユーザ190の視線を検知することができる。
サーバ150は、コンピュータ200にプログラムを送信し得る。別の局面において、サーバ150は、他のユーザによって使用されるHMDに仮想現実を提供するための他のコンピュータ200と通信し得る。例えば、アミューズメント施設において、複数のユーザが参加型のゲームを行なう場合、各コンピュータ200は、各ユーザの動作に基づく信号を他のコンピュータ200と通信して、同じ仮想空間において複数のユーザが共通のゲームを楽しむことを可能にする。
[ハードウェア構成]
図2を参照して、本実施形態に係るコンピュータ200について説明する。図2は、ある局面に従うコンピュータ200のハードウェア構成の一例を表すブロック図である。コンピュータ200は、主たる構成要素として、プロセッサ10と、メモリ11と、ストレージ12と、入出力インターフェイス13と、通信インターフェイス14とを備える。各構成要素は、それぞれ、バス15に接続されている。
プロセッサ10は、コンピュータ200に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ11またはストレージ12に格納されているプログラムに含まれる一連の命令を実行する。ある局面において、プロセッサ10は、CPU(Central Processing Unit)、MPU(Micro Processor Unit)、FPGA(Field-Programmable Gate Array)その他のデバイスとして実現される。
メモリ11は、プログラムおよびデータを一時的に保存する。プログラムは、例えば、ストレージ12からロードされる。データは、コンピュータ200に入力されたデータと、プロセッサ10によって生成されたデータとを含む。ある局面において、メモリ11は、RAM(Random Access Memory)その他の揮発メモリとして実現される。
ストレージ12は、プログラムおよびデータを永続的に保持する。ストレージ12は、例えば、ROM(Read-Only Memory)、ハードディスク装置、フラッシュメモリ、その他の不揮発記憶装置として実現される。ストレージ12に格納されているプログラムは、HMDシステム100において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、他のコンピュータ200との通信を実現するためのプログラムを含む。ストレージ12に格納されているデータは、仮想空間を規定するためのデータおよび仮想空間に配置されるオブジェクトを描画するためのデータ等を含む。
なお、別の局面において、ストレージ12は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の局面において、コンピュータ200に内蔵されたストレージ12の代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のHMDシステム100が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。
ある実施形態において、入出力インターフェイス13は、HMD110、およびHMDセンサ120との間で信号を通信する。ある局面において、HMD110に含まれるセンサ114、カメラ116、スピーカ118、およびマイク119は、HMD110の入出力インターフェイス13を介してコンピュータ200との通信を行ない得る。ある局面において、入出力インターフェイス13は、USB(Universal Serial Bus)、DVI(Digital Visual Interface)、HDMI(登録商標)(High-Definition Multimedia Interface)その他の端子を用いて実現される。なお、入出力インターフェイス13は上述のものに限られない。
通信インターフェイス14は、ネットワーク19に接続されて、ネットワーク19に接続されている他のコンピュータ(例えば、サーバ150)と通信する。ある局面において、通信インターフェイス14は、例えば、LAN(Local Area Network)その他の有線通信インターフェイス、あるいは、WiFi(Wireless Fidelity)、Bluetooth(登録商標)、NFC(Near Field Communication)その他の無線通信インターフェイスとして実現される。なお、通信インターフェイス14は上述のものに限られない。
ある局面において、プロセッサ10は、ストレージ12にアクセスし、ストレージ12に格納されている1つ以上のプログラムをメモリ11にロードし、当該プログラムに含まれる一連の命令を実行する。当該1つ以上のプログラムは、コンピュータ200のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ10は、入出力インターフェイス13を介して、仮想空間を提供するための信号をHMD110に送る。HMD110は、その信号に基づいてモニタ112に映像を表示する。
なお、図2に示される例では、コンピュータ200は、HMD110の外部に設けられる構成が示されているが、別の局面において、コンピュータ200は、HMD110に内蔵されてもよい。一例として、モニタ112を含む携帯型の情報通信端末(例えば、スマートフォン)がコンピュータ200として機能してもよい。
また、コンピュータ200は、複数のHMD110に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。
ある実施形態において、HMDシステム100では、グローバル座標系が予め設定されている。グローバル座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、ならびに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、3つの基準方向(軸)を有する。本実施形態では、グローバル座標系は視点座標系の一つである。そこで、グローバル座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれ、x軸、y軸、z軸と規定される。より具体的には、グローバル座標系において、x軸は現実空間の水平方向に平行である。y軸は、現実空間の鉛直方向に平行である。z軸は現実空間の前後方向に平行である。
ある局面において、センサ114は、3軸角速度センサと、3軸加速度センサとの組み合わせにより構成される。コンピュータ200は、これらのセンサの出力に基づいて、HMD110の基準方向(例えば、重力(鉛直)方向)に対する角度を算出する。これにより、コンピュータ200は、グローバル座標系におけるHMD110の傾きを取得できる。
他の局面において、HMDセンサ120は、赤外線センサを含む。赤外線センサが、HMD110の各光源から発せられた赤外線をそれぞれ検出すると、HMD110の存在を検出する。HMDセンサ120は、さらに、各光源の位置(グローバル座標系における各座標値)に基づいて、HMD110を装着したユーザ190の動きに応じた、現実空間内におけるHMD110の位置および傾きを検出する。より詳しくは、HMDセンサ120は、経時的に検出された各値を用いて、HMD110の位置および傾きの時間的変化を検出する。
ある局面において、HMDセンサ120は、赤外線センサからの出力に基づいて取得される赤外線の光強度および複数の点間の相対的な位置関係(例えば、各点間の距離など)に基づいて、HMD110の現実空間内における位置を、HMDセンサ120に対する相対位置として特定し得る。また、プロセッサ10は、特定された相対位置に基づいて、現実空間内(グローバル座標系)におけるHMD110のuvw視野座標系の原点を決定し得る。
グローバル座標系は現実空間の座標系と平行である。したがって、HMDセンサ120によって検出されたHMD110の各傾きは、グローバル座標系におけるHMD110の3軸周りの各傾きに相当する。コンピュータ200は、グローバル座標系におけるHMD110の傾きに基づき、uvw視野座標系をHMD110に設定する。HMD110に設定されるuvw視野座標系は、HMD110を装着したユーザ190が仮想空間において物体を見る際の視点座標系に対応する。
[uvw視野座標系]
図3を参照して、uvw視野座標系について説明する。図3は、ある実施形態に従うHMD110に設定されるuvw視野座標系を概念的に表す模式図である。HMDセンサ120は、HMD110の起動時に、グローバル座標系におけるHMD110の位置および傾きを検出する。プロセッサ10は、検出された値に基づいて、uvw視野座標系をHMD110に設定する。
図3に示されるように、HMD110は、HMD110を装着したユーザ190の頭部を中心(原点)とした3次元のuvw視野座標系を設定する。より具体的には、HMD110は、グローバル座標系を規定する水平方向、鉛直方向、および前後方向(x軸、y軸、z軸)を、グローバル座標系内においてHMD110の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる3つの方向を、HMD110におけるuvw視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、およびロール軸(w軸)として設定する。
ある局面において、HMD110を装着したユーザ190が直立し、かつ、正面を視認している場合、プロセッサ10は、グローバル座標系に平行なuvw視野座標系をHMD110に設定する。この場合、グローバル座標系における水平方向(x軸)、鉛直方向(y軸)、および前後方向(z軸)は、HMD110におけるuvw視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、およびロール軸(w軸)に一致する。
uvw視野座標系がHMD110に設定された後、HMDセンサ120は、HMD110の動きに基づいて、設定されたuvw視野座標系におけるHMD110の傾き(傾きの変化量)を検出できる。この場合、HMDセンサ120は、HMD110の傾きとして、uvw視野座標系におけるHMD110のピッチ角(θu)、ヨー角(θv)、およびロール角(θw)をそれぞれ検出する。ピッチ角(θu)は、uvw視野座標系におけるピッチ軸周りのHMD110の傾き角度を表す。ヨー角(θv)は、uvw視野座標系におけるヨー軸周りのHMD110の傾き角度を表す。ロール角(θw)は、uvw視野座標系におけるロール軸周りのHMD110の傾き角度を表す。
コンピュータ200は、HMD110の傾き角度に基づいて、HMD110が動いた後のHMD110におけるuvw視野座標系を、HMD110に設定する。HMD110と、HMD110のuvw視野座標系との関係は、HMD110の位置および傾きに関わらず、常に一定である。HMD110の位置および傾きが変わると、当該位置および傾きの変化に連動して、グローバル座標系におけるHMD110のuvw視野座標系の位置および傾きが変化する。
[仮想空間]
図4を参照して、仮想空間についてさらに説明する。図4は、ある実施形態に従う仮想空間2を表現する一態様を概念的に表す模式図である。仮想空間2は、中心21の360度方向の全体を覆う全天球状の構造を有する。図4では、説明を複雑にしないために、仮想空間2のうちの上半分の天球が例示されている。仮想空間2では各メッシュが規定される。各メッシュの位置は、仮想空間2に規定されるXYZ座標系における座標値として予め規定されている。コンピュータ200は、パノラマ画像22を構成する各部分画像を対応する各メッシュに展開する。これにより、ユーザ190は仮想空間2を視認する。
ある局面において、仮想空間2では、中心21を原点とするXYZ座標系が規定される。XYZ座標系は、例えば、グローバル座標系に平行である。XYZ座標系は視点座標系の一種であるため、XYZ座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれX軸、Y軸、Z軸として規定される。したがって、XYZ座標系のX軸(水平方向)がグローバル座標系のx軸と平行であり、XYZ座標系のY軸(鉛直方向)がグローバル座標系のy軸と平行であり、XYZ座標系のZ軸(前後方向)がグローバル座標系のz軸と平行である。
HMD110の起動時、すなわちHMD110の初期状態において、仮想カメラ1が、仮想空間2の中心21に配置される。ある局面において、プロセッサ10は、仮想カメラ1が撮影する画像をHMD110のモニタ112に表示する。仮想カメラ1は、現実空間におけるHMD110の動きに連動して、仮想空間2を同様に移動する。これにより、現実空間におけるHMD110の位置および向きの変化が、仮想空間2において同様に再現され得る。
仮想カメラ1には、HMD110の場合と同様に、uvw視野座標系が規定される。仮想空間2における仮想カメラ1のuvw視野座標系は、現実空間(グローバル座標系)におけるHMD110のuvw視野座標系に連動するように規定されている。したがって、HMD110の傾きが変化すると、それに応じて、仮想カメラ1の傾きも変化する。また、仮想カメラ1は、HMD110を装着したユーザ190の現実空間における移動に連動して、仮想空間2において移動することもできる。例えば、プロセッサ10は、HMDセンサ120により検出されるHMD110の位置および傾きに連動するように、仮想空間2における仮想カメラ1の位置および傾きを制御する。
コンピュータ200のプロセッサ10は、仮想カメラ1の位置と、仮想カメラ1の傾き方向とに基づいて視認領域23を規定する。図4に示される撮影方向5は、仮想カメラ1の傾き方向に対応する。視認領域23は、仮想空間2のうち、HMD110を装着したユーザ190が視認する領域に対応する。上記のように、仮想カメラ1のuvw視野座標系はHMD110のuvw視野座標系に連動している。そのため、撮影方向5は、HMD110の傾きによって定まる。
注視センサ140によって検出されるユーザ190の視線は、ユーザ190が物体を視認する際の視点座標系における方向である。HMD110のuvw視野座標系は、ユーザ190がモニタ112を視認する際の視点座標系に等しい。また、仮想カメラ1のuvw視野座標系は、HMD110のuvw視野座標系に連動している。したがって、ある局面に従うHMDシステム100は、注視センサ140によって検出されたユーザ190の視線を、仮想カメラ1のuvw視野座標系におけるユーザ190の視線とみなすことができる。
[ユーザの視線]
図5を参照して、ユーザ190の視線の決定について説明する。図5は、ある実施形態に従うHMD110を装着するユーザ190の頭部を上から表した模式図である。
ある局面において、注視センサ140は、ユーザ190の右目および左目の各視線を検出する。ある局面において、ユーザ190が近くを見ている場合、注視センサ140は、視線R1およびL1を検出する。別の局面において、ユーザ190が遠くを見ている場合、注視センサ140は、視線R2およびL2を検出する。この場合、ロール軸wに対して視線R2およびL2が成す角度は、ロール軸wに対して視線R1およびL1が成す角度よりも小さい。注視センサ140は、検出結果をコンピュータ200に送信する。
コンピュータ200が、視線の検出結果として、視線R1およびL1の検出値を注視センサ140から受信した場合には、その検出値に基づいて、視線R1およびL1の交点である注視点N1を特定する。一方、コンピュータ200は、視線R2およびL2の検出値を注視センサ140から受信した場合には、視線R2およびL2の交点を注視点として特定する。コンピュータ200は、特定した注視点N1の位置に基づき、ユーザ190の視線N0を特定する。コンピュータ200は、例えば、ユーザ190の右目Rと左目Lとを結ぶ直線の中点と、注視点N1とを通る直線の延びる方向を、視線N0として検出する。視線N0は、ユーザ190が両目により実際に視線を向けている方向である。また、視線N0は、視認領域23に対してユーザ190が実際に視線を向けている方向に相当する。
また、別の局面において、HMDシステム100は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、HMDシステム100は、仮想空間2においてテレビ番組を表示することができる。
さらに別の局面において、HMDシステム100は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。
[視界領域]
図6および図7を参照して、視認領域23について説明する。図6は、仮想空間2において視認領域23をX方向から見たYZ断面を表す。図7は、仮想空間2において視認領域23をY方向から見たXZ断面を表す。
図6に示されるように、YZ断面における視認領域23は、領域24を含む。領域24は、仮想カメラ1の位置と撮影方向5と仮想空間2のYZ断面とによって定義される。プロセッサ10は、仮想空間における撮影方向5を中心として極角αを含む範囲を、領域24として規定する。
図7に示されるように、XZ断面における視認領域23は、領域25を含む。領域25は、仮想カメラ1の位置と撮影方向5と仮想空間2のXZ断面とによって定義される。プロセッサ10は、仮想空間2における撮影方向5を中心とした方位角βを含む範囲を、領域25として規定する。
ある局面において、HMDシステム100は、コンピュータ200からの信号に基づいて、視界画像26をモニタ112に表示させることにより、ユーザ190に仮想空間における視界を提供する。視界画像26は、パノラマ画像22のうち視認領域23に重畳する部分に相当する。ユーザ190が、頭に装着したHMD110を動かすと、その動きに連動して仮想カメラ1も動く。その結果、仮想空間2における視認領域23の位置が変化する。これにより、モニタ112に表示される視界画像26は、パノラマ画像22のうち、仮想空間2においてユーザ190が向いた方向の視認領域23に重畳する画像に更新される。ユーザ190は、仮想空間2における所望の方向を視認することができる。
このように、仮想カメラ1の傾きはユーザ190の頭(HMD110)の傾きに相当し、仮想カメラ1が配置される位置は、仮想空間2におけるユーザ190の視座(物事を見る位置)に相当する。したがって、仮想カメラ1の位置または傾きを変えることにより、モニタ112に表示される画像が更新され、ユーザ190の視界が移動される。
ユーザ190は、HMD110を装着している間、現実世界を視認することなく、仮想空間2に展開されるパノラマ画像22のみを視認できる。そのため、HMDシステム100は、仮想空間2への高い没入感覚をユーザ190に与えることができる。
ある実施形態に従うと、仮想カメラ1は、2つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含む。また、ユーザ190が3次元の仮想空間2を認識できるように、適切な視差が、2つの仮想カメラに設定される。本実施形態においては、仮想カメラ1が2つの仮想カメラを含み、2つの仮想カメラのロール軸が合成されることによって生成されるロール軸(w)がHMD110のロール軸(w)に適合されるように構成されているものとして、本開示に係る技術思想を例示する。
[HMDの制御装置]
図8を参照して、HMD110の制御装置について説明する。ある実施形態において、制御装置は周知の構成を有するコンピュータ200によって実現される。図8は、ある実施形態に従うコンピュータ200をモジュール構成として表わすブロック図である。
図8に示されるように、コンピュータ200は、表示制御モジュール220と、仮想空間制御モジュール230と、メモリモジュール240と、通信制御モジュール250とを備える。表示制御モジュール220は、サブモジュールとして、仮想カメラ制御モジュール221と、視界領域決定モジュール222と、視界画像生成モジュール223と、傾き特定モジュール224と、視線検出モジュール225と、トラッキングモジュール226とを含む。仮想空間制御モジュール230は、サブモジュールとして、仮想空間定義モジュール231と、仮想オブジェクト生成モジュール232と、操作オブジェクト制御モジュール233とを含む。
ある実施形態において、表示制御モジュール220と仮想空間制御モジュール230とは、プロセッサ10によって実現される。別の実施形態において、複数のプロセッサ10が表示制御モジュール220と仮想空間制御モジュール230として作動してもよい。メモリモジュール240は、メモリ11またはストレージ12によって実現される。通信制御モジュール250は、通信インターフェイス14によって実現される。
ある局面において、表示制御モジュール220は、HMD110のモニタ112における画像表示を制御する。
仮想カメラ制御モジュール221は、仮想空間2に仮想カメラ1を配置する。また、仮想カメラ制御モジュール221は、仮想空間2における仮想カメラ1の位置と、仮想カメラ1の傾き(撮影方向5)を制御する。より具体的には、仮想カメラ制御モジュール221は、後述する傾き特定モジュール224が特定するHMD110の傾きに連動するように仮想カメラ1の傾きを制御する。
視界領域決定モジュール222は、仮想カメラ1の位置と傾きとに応じて、視認領域23を規定する。視界画像生成モジュール223は、決定された視認領域23に基づいて、モニタ112に表示される視界画像26を生成する。
傾き特定モジュール224は、センサ114またはHMDセンサ120の出力に基づいて、HMD110の傾き(ユーザ190の頭が向いている方向)を特定する。
視線検出モジュール225は、注視センサ140からの信号に基づいて、ユーザ190の視線を検出する。
トラッキングモジュール226は、ユーザ190の身体の一部の位置をカメラ116の撮影周期ごとに検出(トラッキング)する。ある実施形態において、トラッキングモジュール226は、カメラ116から入力される深度情報に基づいて、HMD110に設定されるuvw視野座標系におけるユーザ190の手の位置を検出する。トラッキングモジュール226の動作は後述される。
仮想空間制御モジュール230は、ユーザ190に提供される仮想空間2を制御する。仮想空間定義モジュール231は、仮想空間2を表わす仮想空間データを生成することにより、HMDシステム100における仮想空間2を規定する。
仮想オブジェクト生成モジュール232は、仮想空間2に配置されるオブジェクトを生成する。オブジェクトは、例えば、ゲームのストーリーの進行に従って配置される森、山その他を含む風景、動物等を含み得る。
操作オブジェクト制御モジュール233は、仮想空間2においてユーザ190の操作を受け付けるための操作オブジェクトを仮想空間2に配置する。ユーザ190は、操作オブジェクトを操作することにより、例えば、仮想空間2に配置されるオブジェクトを操作する。ある局面において、操作オブジェクトは、HMD110を装着したユーザ190の手に相当する手オブジェクトである。この場合、操作オブジェクト制御モジュール233は、トラッキングモジュール226の出力に基づいて、現実空間のユーザ190の手の動きを、操作オブジェクト(手オブジェクト)に反映する。ある局面において、手オブジェクトは、ユーザ190に対応するアバターオブジェクトの手の部分に相当する。
仮想空間制御モジュール230は、仮想空間2に配置されるオブジェクトのそれぞれが、他のオブジェクトと衝突した場合に、当該衝突を検出する。仮想空間制御モジュール230は、例えば、あるオブジェクトと、別のオブジェクトとが触れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。仮想空間制御モジュール230は、オブジェクトとオブジェクトとが触れている状態から離れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。仮想空間制御モジュール230は、オブジェクトとオブジェクトとが触れている状態であることを検出することができる。例えば、操作オブジェクト制御モジュール233は、操作オブジェクトと、他のオブジェクトとが触れたときに、これら操作オブジェクトと他のオブジェクトとが触れたことを検出して、予め定められた処理を行なう。
メモリモジュール240は、コンピュータ200が仮想空間2をユーザ190に提供するために使用されるデータを保持している。ある局面において、メモリモジュール240は、空間情報241と、オブジェクト情報242と、ユーザ情報243とを保持している。
空間情報241は、仮想空間2を提供するために規定された1つ以上のテンプレートを保持している。空間情報241はさらに、仮想空間2に展開される複数のパノラマ画像22を保持してもよい。パノラマ画像22は、非現実空間の画像と現実空間の画像とを含み得る。
オブジェクト情報242は、仮想空間2に配置されるオブジェクトを描画するためのモデリングデータを記憶する。
ユーザ情報243は、HMDシステム100の制御装置としてコンピュータ200を機能させるためのプログラム等を保持している。ユーザ情報243は、ユーザ190を識別するためのユーザID(例えば、コンピュータ200に設定されるIP(Internet Protocol)アドレス)などをさらに保持してもよい。
メモリモジュール240に格納されているデータおよびプログラムは、HMD110のユーザ190によって入力される。あるいは、プロセッサ10が、当該コンテンツを提供する事業者が運営するコンピュータ(例えば、サーバ150)からプログラムあるいはデータをダウンロードして、ダウンロードされたプログラムあるいはデータをメモリモジュール240に格納する。
通信制御モジュール250は、ネットワーク19を介して、サーバ150その他の情報通信装置と通信し得る。
ある局面において、表示制御モジュール220および仮想空間制御モジュール230の一部は、例えば、ユニティテクノロジーズ社によって提供されるUnity(登録商標)を用いて実現され得る。別の局面において、表示制御モジュール220および仮想空間制御モジュール230は、各処理を実現する回路素子の組み合わせとしても実現され得る。
コンピュータ200における処理は、ハードウェアと、プロセッサ10により実行されるソフトウェアとによって実現される。このようなソフトウェアは、ハードディスクその他のメモリモジュール240に予め格納されている場合がある。また、ソフトウェアは、CD−ROMその他のコンピュータ読み取り可能な不揮発性のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信制御モジュール250を介してサーバ150その他のコンピュータからダウンロードされた後、記憶モジュールに一旦格納される。そのソフトウェアは、プロセッサ10によって記憶モジュールから読み出され、実行可能なプログラムの形式でRAMに格納される。プロセッサ10は、そのプログラムを実行する。
[手のトラッキング]
以下、図9〜図11を参照して、手の動きをトラッキングする処理について説明する。図9は、手をトラッキングする処理について説明するための図である。
図9を参照して、ユーザ190は、現実空間においてHMD110を装着している。HMD110に設けられたカメラ116は、HMD110の前方の空間900に含まれる物体の深度情報を取得する。図9に示される例において、カメラ116は、空間900に含まれるユーザ190の手の深度情報を取得する。
トラッキングモジュール226は、この深度情報に基づき、手の位置情報(以下、「トラッキングデータ」とも称する)を生成する。カメラ116はHMD110に搭載される。そのため、トラッキングデータはHMD110に設定されるuvw視野座標系における座標値を示す。
図10は、トラッキングモジュール226の動作を説明するための図である。ある局面において、トラッキングモジュール226は、カメラ116から入力される深度情報に基づいて、ユーザ190の手の骨の動きをトラッキングする。図12に示される例において、トラッキングモジュール226は、ユーザ190の手の関節a、b、c・・・、xの各位置をそれぞれ検出する。
トラッキングモジュール226は、関節a〜xの位置関係に基づいて、ユーザ190の手の形状(指の動き)を認識可能に構成される。トラッキングモジュール226は、例えば、ユーザ190の手が指を指していること、手が開いていること、手が閉じていること、手が何かをつまむ動作をしていること、手がひねられていること、手が握手の形状をしていることなどを認識できる。トラッキングモジュール226はさらに、関節a〜dと、その他の関節との位置関係により、認識している手が左手であるか右手であるかを判断できる。このようなカメラ116およびトラッキングモジュール226は、例えば、LeapMotion社によって提供されるLeapMotion(登録商標)によって実現され得る。
図11は、トラッキングデータのデータ構造の一例を表す。トラッキングモジュール226は、関節a〜xそれぞれについてのuvw視野座標系についての座標値(トラッキングデータ)を取得する。
[コンピュータ200の制御構造]
図12を参照して、本実施形態に係るコンピュータ200の制御構造について説明する。図12は、HMDシステム100が実行する処理の一例を表わすフローチャートである。
ステップS1205において、コンピュータ200のプロセッサ10は、仮想空間定義モジュール231として、仮想空間2を定義する。
ステップS1210において、プロセッサ10は、パノラマ画像22を用いて仮想空間2を構成する。より具体的には、プロセッサ10は仮想空間2を構成する各メッシュにパノラマ画像22の部分画像を展開する。
ステップS1220において、プロセッサ10は、仮想カメラ1および操作オブジェクトを含む各種オブジェクトを仮想空間2に配置する。このとき、プロセッサ10は、メモリのワーク領域において、仮想カメラ1を仮想空間2において予め規定された中心21に配置する。
ステップS1230において、プロセッサ10は、視界画像生成モジュール223として、初期の視界画像26(パノラマ画像22の一部)を表示するための視界画像データを生成する。生成された視界画像データは、通信制御モジュール250によってHMD110に送信される。
ステップS1232において、HMD110のモニタ112は、コンピュータ200から受信した信号に基づいて、視界画像26を表示する。これにより、HMD110を装着したユーザ190は、仮想空間2を認識する。
ステップS1234において、HMDセンサ120は、HMD110が出力する複数の赤外線光に基づいて、HMD110の位置および傾き(ユーザ190の動き)を検知する。検知結果は、動き検知データとして、コンピュータ200に送信される。
ステップS1240において、プロセッサ10は仮想カメラ制御モジュール221として、HMDセンサ120から入力された動き検知データに基づいて、仮想カメラ1の位置および傾きを変更する。これにより、仮想カメラ1の位置および傾き(撮影方向5)は、ユーザ190の頭の動きに連動して更新される。視界領域決定モジュール222は、変更後の仮想カメラ1の位置および傾きに応じて視認領域23を規定する。
ステップS1246において、カメラ116は、ユーザ190の手の深度情報を検出してコンピュータ200に送信する。
ステップS1250において、プロセッサ10はトラッキングモジュール226として受信した深度情報に基づいてuvw視野座標系におけるユーザ190の手の位置を検出する。プロセッサ10は操作オブジェクト制御モジュール233として、検出したユーザ190の手の位置に連動するように操作オブジェクトを移動させる。このとき、操作オブジェクトが他のオブジェクトと接触するなどして、プロセッサ10が他のオブジェクトに対するユーザ操作を受け付けた場合、操作に対する予め定められた処理を実行する。
ステップS1260において、プロセッサ10は、視界画像生成モジュール223として、仮想カメラ1が撮影する視界画像26を表示するための視界画像データを生成し、生成した視界画像データをHMD110に出力する。
ステップS1262において、HMD110のモニタ112は、受信した視界画像データに基づいて、更新後の視界画像を表示する。これにより、仮想空間2におけるユーザの視界が更新される。
[ユーザの操作]
次に、図13〜図15を用いてユーザ190の視線とユーザ190の手の動きとに基づく仮想空間2における操作について説明する。
図13は、ユーザの視界画像1300を表す。図14は、図13に示される視界画像1300に対応する仮想空間2を表す。
図13に示される視界画像1300は、図14に示される仮想カメラ1の撮影範囲である視認領域23に対応する。視界画像1300は、左手オブジェクト1310と、右手オブジェクト1320と、円柱オブジェクト1330と、ボックスオブジェクト1340とを含む。
図14を参照して、視線1410は、視線検出モジュール225により検出された仮想空間2におけるユーザ190の視線を表す。図14において、ユーザ190の視線1410とボックスオブジェクト1340とは交わっている。換言すれば、視線1410は、ボックスオブジェクト1340に衝突しているとも言える。
ポインタオブジェクト1350は、視線1410がボックスオブジェクト1340に衝突する衝突点に配置される。仮想空間制御モジュール230は、視線1410が衝突しているオブジェクト(ボックスオブジェクト1340)を、ユーザ190によって指定されている状態として扱う。
ある局面において、仮想空間制御モジュール230は、ボックスオブジェクト1340の表示態様(例えば、色、模様など)を、視線1410との衝突前後で変更してもよい。これにより、ユーザ190は、ボックスオブジェクト1340がユーザ190によって指定されているか否かを容易に認識できる。
仮想空間制御モジュール230は、ユーザ190の四肢の少なくとも一部の動きに基づいて、指定されたオブジェクトに対するユーザ190の操作を受け付ける。以下では一例として、仮想空間制御モジュール230はユーザ190の手の形状に基づいて指定されたボックスオブジェクト1340に対する操作を受け付ける。
図13および図14において、右手オブジェクト1320は開いている。つまり、現実空間におけるユーザ190の右手も開いている。また、右手オブジェクト1320の手のひらはボックスオブジェクト1340に向けられている。
ある局面において、トラッキングモジュール226は、トラッキングデータに基づいてユーザ190の手が開いていることを認識すると、現実空間におけるユーザ190の手のひらに対する法線を検出する。仮想空間制御モジュール230は、トラッキングモジュール226によって検出された法線に基づいて、仮想空間2に配置される右手オブジェクト1320の手のひらに対する法線1420を検出する。図14に示される例において、視線1410と法線1420とは略同じ方向を向いている。
図15は、図13において右手オブジェクト1320が開いた状態から閉じた状態に移行した後の視界画像1500を表す。
トラッキングモジュール226は、トラッキングデータに基づいてユーザ190の右手が開いた状態から閉じた状態に移行したことを検出する。仮想空間制御モジュール230は、視線1410と法線1420とが略同じ方向である状態から、ユーザ190の右手が開いた状態から閉じた状態に移行したことに応じて、指定中のボックスオブジェクト1340に対する操作を受け付ける。
図15に示される例において、仮想空間制御モジュール230は、ボックスオブジェクト1340を右手オブジェクト1320に向けて移動させる。上記によれば、ユーザ190は、仮想空間2において操作したいオブジェクトに近づかなくとも、視線と手の動きによって当該オブジェクトに対する操作を行なうことができる。
(制御構造)
図16は、ユーザ190の視線と四肢の一部の動きとに基づくユーザ操作を受け付ける処理を表すフローチャートである。図16に示される処理は、プロセッサ10がストレージ12に格納される制御プログラムを読み込んで実行することにより実現される。
ステップS1605において、プロセッサ10は仮想空間2を定義する。ステップS1610において、プロセッサ10は仮想オブジェクト生成モジュール232として、2種類のオブジェクトを配置する。具体的には、仮想オブジェクト生成モジュール232は、ユーザ190の操作を受け付け可能に構成されるオブジェクトと、ユーザの操作を受け付け不能に構成されるオブジェクトとを配置する。以下、ユーザ190の操作を受け付け可能に構成されるオブジェクトを「第1種オブジェクト」とも言う。また、ユーザ190の操作を受け付け可能に構成されるオブジェクトを「第2種オブジェクト」とも言う。
ある局面において、第1種オブジェクトは視線1410と衝突し、第2種オブジェクトは視線1410と衝突しないように構成される。つまり、ポインタオブジェクト1350は第1種オブジェクトの表面に配置されるが、第2種オブジェクトの表面には配置されない。ユーザ190は、ポインタオブジェクト1350により、視線1410が注がれるオブジェクトが操作可能であるか否かを認識できる。第2種オブジェクトは、例えば、仮想カメラ1、左手オブジェクト1310、右手オブジェクト1320、およびアバターオブジェクトを含む。アバターオブジェクトは、ユーザ190または他のコンピュータ200のユーザに対応する。
なお、図20で後述するように、オブジェクト情報242は、各オブジェクトを描画するためのデータと、オブジェクトが視線1410と衝突するか否かを規定する情報とを関連付けて保持する。
ステップS1620において、プロセッサ10は視線検出モジュール225として、仮想空間2におけるユーザ190の視線1410を検出する。
ステップS1625において、プロセッサ10は、仮想空間2に配置された検出した視線1410と衝突する(視線1410によって指定される)第1種オブジェクトを特定する。
ステップS1630において、プロセッサ10はトラッキングモジュール226として、ユーザ190の手の動きを表すトラッキングデータを検出する。
ステップS1635において、プロセッサ10は、トラッキングデータに基づいて、ユーザ190の手が開いているか否かを判断する。プロセッサ10は、ユーザ190の手が開いていると判断した場合(ステップS1635でYES)、処理をステップS1640に進める。一方、プロセッサ10は、ユーザ190の手が閉じていると判断した場合(ステップS1635でNO)、処理をステップS1620に戻す。
ステップS1640において、プロセッサ10は、仮想空間2に配置される手オブジェクトの手のひらに対する法線1420を検出する。
ステップS1645において、プロセッサ10は、視線1410を再び検出し、検出した視線1410がステップS1625で特定した第1種オブジェクト(指定中のオブジェクト)から外れたか否かを判断する。プロセッサ10は、視線1410が特定した第1種オブジェクトから外れたと判断した場合(ステップS1645でYES)、処理をステップS1620に戻す。そうでない場合(ステップS1645でNO)、プロセッサ10は処理をステップS1650に進める。
ステップS1650において、プロセッサ10は、視線1410と法線1420とが略同じ方向であるか否かを判断する。一例として、プロセッサ10は、視線1410のベクトルと法線1420のベクトルとが成す角度が10°未満である場合に、これらが同じ方向であると判断する。プロセッサ10は、視線1410と法線1420とが同じ方向であると判断した場合(ステップS1650でYES)、処理をステップS1655に進める。そうでない場合(ステップS1650でNO)、プロセッサ10は処理をステップS1645に戻す。
ステップS1655において、プロセッサ10は、トラッキングデータを再び検出し、ステップS1635で開いていたユーザ190の手が閉じたか否かを判断する。プロセッサ10は、ユーザ190の手が閉じていると判断した場合(ステップS1655でYES)、処理をステップS1660に進める。そうでない場合(ステップS1655でNO)、プロセッサ10は処理をステップS1645に戻す。
ステップS1660において、プロセッサ10は仮想空間制御モジュール230として、特定された第1種オブジェクトを法線1420に対応する手オブジェクトの方向に向けて移動させる。その後、プロセッサ10は処理をステップS1620に戻す。
他の局面において、プロセッサ10は、ステップS1655において、手オブジェクトが、特定された第1種オブジェクトから離れる方向に移動したことを検出した場合に、ステップS1660の処理を実行するように構成されてもよい。
上記の例では、仮想空間制御モジュール230は、指定されたオブジェクトを仮想空間2におけるユーザ190の視座に向けて移動させるように構成されているが、当該オブジェクトの移動方向はこれに限られない。例えば、仮想空間制御モジュール230は、ユーザ190が指定されたオブジェクトの方向に向けて腕を突き出す動作(パンチ)または足を蹴り上げる動作(キック)を行なったことを検出する。仮想空間制御モジュール230は、この検出結果に応じて、当該オブジェクトを仮想空間2におけるユーザ190の視座とは逆方向に移動させてもよい。
(触覚によるフィードバック)
上記の例において、ユーザ190は、空間900で手を動かすことによってオブジェクトに対する操作をコンピュータ200に入力する。このとき、ユーザ190は、視覚または聴覚により当該操作がコンピュータ200に入力されたことを認識する。例えば、コンピュータ200は、当該操作が入力されたことに応じて報知音をスピーカ118から出力する。次に、図17を用いてユーザ190に対して触覚による操作のフィードバックを与えるための処理について説明する。
図17は、触覚によるフィードバック処理を説明するための図である。図17に示される視界画像1700は、UI1710を含む。UI1710は、チュートリアルボタン1720と、セッティングボタン1730と、戻るボタン1740と、終了ボタン1750とを含む。ある局面において、ユーザ190は、UI1710を操作して、仮想空間2における設定を変更する。
ユーザ190は、視線1410と両手の動きとに基づいてUI1710を操作する。一例として、ユーザ190がセッティングボタン1730を操作する例について説明する。
ユーザ190は、視線1410をセッティングボタン1730に注ぐ。これにより、視界画像1700においてセッティングボタン1730の上にポインタオブジェクト1350が表示されている。
ユーザ190は、セッティングボタン1730に視線1410を注いでいる状態において、両手のうち一方の手を、他方の手に接触させる。図17に示される例において、ユーザ190は、右手の人差し指で左手の甲をタッチしている。そのため、仮想空間2において右手オブジェクト1320の人差し指が左手1310オブジェクトの甲をタッチしている。
仮想空間制御モジュール230は、左手オブジェクト1310と右手オブジェクト1320とが接触したことに応じて、指定されたオブジェクト(セッティングボタン1730)に対するユーザ190の操作を受け付ける。
当該構成によれば、ユーザ190は、仮想空間2においてセッティングボタン1730に近づかなくとも、当該ボタンに対する操作をコンピュータ200に対して入力できる。さらに、左手オブジェクト1310と右手オブジェクト1320との接触が操作のトリガとなる。つまり、現実空間におけるユーザ190の左手と右手との接触が操作のトリガとなる。これにより、ユーザ190は、触覚による操作のフィードバックを得ることにより、セッティングボタン1730が確実に操作されたことを認識できる。
また、仮にユーザ190がセッティングボタン1730を左手オブジェクト1310または右手オブジェクト1320で操作しようとした場合、ユーザ190は現実空間において手を大きく動かす必要がある。一方、上記の制御によれば、ユーザ190は両手を接触させるだけで、セッティングボタン1730に対する操作をコンピュータ200に入力できる。
なお、上記の例において、指定されたオブジェクトに対する操作のトリガは、ユーザ190の両手が接触することであったが、他の局面において、ユーザ190の身体の第1部分(例えば手)が身体の第2部分(例えば足、腕)に接触することであってもよい。
[処理負担を軽減するための制御]
一般的にコンピュータ200は、HMD110に仮想空間を提供するにあたり、高い画質の画像を高いフレームレートでモニタ112に出力する。その理由は、ユーザ190が低い画質の画像を認識することによる仮想空間2に対する没入感の低下を抑制するためである。
しかしながら、上記の処理はコンピュータ200に多大な負担を要する。その結果、コンピュータ200の性能によっては、モニタ112に出力される画像がコマ落ちする場合があった。この場合、やはりユーザ190の仮想空間2に対する没入感が低下してしまう。
そこで、ある実施形態に従うコンピュータ200は、上記の課題を解決するために、ユーザ190の仮想空間2に対する没入感の低下を抑制しつつ、処理負担を軽減するための制御を実行する。以下、この制御内容について具体的に説明する。
図18は、内領域ISと外領域OSとを説明するための図である。図19は、図18における視認領域23に対応する視界画像1900を表す。
図18を参照して、仮想カメラ1の撮影範囲である視認領域23に、ボックスオブジェクト1810、1820、およびアバターオブジェクト1830が配置されている。アバターオブジェクト1830は、他のコンピュータ200のユーザ(以下「他のユーザ」とも言う)に対応する。ユーザ190は、アバターオブジェクト1830を介して仮想空間2上で他のユーザとコミュニケーションを図ることができる。
図18および図19に示される例において、ユーザ190の視線1410と、ボックスオブジェクト1810とは交わっている。そのため、ポインタオブジェクト1350がボックスオブジェクト1810の上に配置されている。
ある局面において、プロセッサ10は、ポインタオブジェクト1350の位置(つまり、視線1410がボックスオブジェクト1810に交わる交点)を中心とする球状の内領域ISを設定する。内領域ISの外側の領域を外領域OSと定義する。
プロセッサ10は、モニタ112に出力する視界画像26において、内領域ISに対応する画像の画質よりも、外領域OSに対応する画像の画質を低くする。人の目に設けられた網膜は場所によって解像度が異なる。具体的には、網膜の中央が最も解像度が高く、網膜の中央から離れる程に解像度が低下する。そのため、外領域OSに対応する画像の画質を低くした場合であってもユーザ190は違和感を覚えず、ユーザ190の仮想空間2への没入感の低下は起こらない。これにより、コンピュータ200は、ユーザ190の仮想空間2に対する没入感の低下を抑制しつつ、画像処理負担を軽減できる。なお、内領域ISの大きさは、ユーザ190が違和感を覚えない範囲に設定される。
一例としてプロセッサ10は、内領域ISに含まれるオブジェクトを高画質に描画し、外領域OSに含まれるオブジェクトを低画質に描画する。図18および図19に示される例において、ボックスオブジェクト1810が内領域ISに含まれ、ボックスオブジェクト1820およびアバターオブジェクト1830が外領域OSに含まれる。
プロセッサ10は、内領域ISに含まれるボックスオブジェクト1810を高画質に描画する。ある局面において、プロセッサ10は、ポリゴン数の多い描画データを用いてボックスオブジェクト1810を描画する。他の局面において、プロセッサ10は、テクスチャ解像度が高い描画データを用いてボックスオブジェクト1810を描画する。
ポリゴンは、オブジェクトの曲面を表現する際に用いられる多角形(例えば3角形)である。オブジェクトは、ポリゴン数が多いほど、滑らかに表現される。テクスチャは、オブジェクトの質感(例えば、光沢)を表現するために当該オブジェクトの表面に張り付けられる画像である。オブジェクトは、テクスチャの解像度が高いほど、より精細に表現される。
さらに他の局面において、プロセッサ10は、処理負担が高いシェーダを用いてボックスオブジェクト1810を描画する。シェーダは、オブジェクトの陰影処理を行なうプログラムである。一般的に、オブジェクトの陰影は、シェーダの処理負担が高いほど、より精細に表現される。
一方、プロセッサ10は、外領域OSに含まれるボックスオブジェクト1820およびアバターオブジェクト1830を低画質に描画する。ある局面において、プロセッサ10は、ポリゴン数の少ない描画データを用いてこれらのオブジェクトを描画する。他の局面において、プロセッサ10は、テクスチャ解像度が低い描画データを用いてこれらのオブジェクトを描画する。さらに他の局面において、プロセッサ10は、処理負担が低いシェーダを用いてこれらのオブジェクトの陰影を描画する。
なお、モニタ112に表示される視界画像1900において、内領域ISに対応する画像の解像度と、外領域OSに対応する画像の解像度とは同じ解像度である。
ある実施形態において、ストレージ12は、仮想空間2に配置される各オブジェクトについて、内領域ISに含まれる場合の描画データと、外領域OSに含まれる場合の描画データとをそれぞれ記憶する。
図20は、ある実施形態に従うオブジェクト情報242のデータ構造の一例を表す。図20を参照して、オブジェクト情報242は、各オブジェクトごとに、高画質用描画データと、低画質用描画データと、衝突判定とを関連付けて記憶する。
高画質用描画データは、オブジェクトが内領域ISに含まれる場合に用いられる。一方、低画質用描画データは、オブジェクトが外領域OSに含まれる場合に用いられる。衝突判定は、オブジェクトが視線1410と衝突するか否かを表す。上記説明した通り、第1種オブジェクトは視線1410と衝突し、第2種オブジェクトは視線1410と衝突しない。
あるオブジェクトについての低画質用描画データのポリゴン数は、高画質用描画データのポリゴン数よりも少ない。また、あるオブジェクトについての低画質用描画データのテクスチャ解像度は、高画質用描画データのテクスチャ解像度よりも低い。
一例として、ボックスオブジェクト1810を描画するためのデータとして、ポリゴン数が「多く」かつテクスチャ解像度が「高い」高画質用描画データと、ポリゴン数が「少なく」かつテクスチャ解像度が「高い」低画質用描画データとがストレージ12に記憶されている。
(制御構造)
図21は、コンピュータ200における画像処理負担を軽減するための一連の制御を説明するためのフローチャートである。図21に示される各処理は、プロセッサ10がストレージ12に格納される制御プログラムを読み込んで実行することにより実現される。
ステップS2110において、プロセッサ10は仮想空間定義モジュール231として、仮想空間2を定義する。
ステップS2120において、プロセッサ10は仮想オブジェクト生成モジュール232として、仮想空間2に第1種および第2種オブジェクトを配置する(各オブジェクトが仮想空間2において占める領域を定義する)。第2種オブジェクトは、仮想カメラ1を含む。
ステップS2130において、プロセッサ10は仮想カメラ1の位置および傾き(撮影方向5)に基づいて、視認領域23を特定する。
ステップS2140において、プロセッサ10は視線検出モジュール225として、仮想空間2におけるユーザ190の視線1410を検出する。
ステップS2150において、プロセッサ10は検出した視線1410と第1種オブジェクトとが交わる交点(ポインタオブジェクト1350の位置)を検出する。プロセッサ10はさらに、検出した交点を中心とする内領域ISと、その外側の外領域OSを設定する。
なお、他の局面において、プロセッサ10は、オブジェクトの種類(第1種/第2種)に関わらず、視線1410が最初に交わるオブジェクトと視線1410との交点検出し、この交点を中心として内領域ISと外領域OSとを設定するように構成されてもよい。係る場合、実際にユーザ190の視線1410が注がれているオブジェクトを中心として上記領域の設定がなされる。
ステップS2160において、プロセッサ10は仮想空間制御モジュール230として、特定した視認領域23に配置されるオブジェクトのうち、外領域OSに含まれるオブジェクトを低画質に描画し、内領域ISに含まれるオブジェクトを高画質に描画する。一例として、プロセッサ10は、オブジェクト情報242を参照して、外領域OSに含まれるオブジェクトを低画質用描画データを用いて描画し、内領域ISに含まれるオブジェクトを高画質用描画データを用いて描画する。
ステップS2170において、プロセッサ10は視界画像生成モジュール223として、視認領域23に対応する視界画像26を生成する。
ステップS2180において、プロセッサ10は、生成した視界画像26をモニタ112に出力する。その後、プロセッサ10はステップS2130の処理を再び実行する。
上記によれば、ある実施形態に従うコンピュータ200は、外領域OSに配置されるオブジェクトの画像処理負担を軽減できる。その結果、コンピュータ200は、性能が低い場合であっても、ユーザ190の仮想空間2に対する没入感の低下を抑制できる。
なお、上記の例において、コンピュータ200は、内領域ISおよび外領域OSの2つの領域を設定しているが、他の局面において、画質が異なる3つ以上の領域を設定しても良い。
[ポインタオブジェクトの大きさの制御]
次に、図22を用いてポインタオブジェクト1350の大きさを制御する処理について説明する。
図22は、ポインタオブジェクト1350を含む視界画像2200を表す。図23は、図22に示される視界画像2200に対応する仮想空間2を表す。
視界画像2200は、視認領域23に対応する。視認領域23には、円柱オブジェクト1330と、ボックスオブジェクト1340と、木オブジェクト2210とが配置されている。
木オブジェクト2210は、円柱オブジェクト1330およびボックスオブジェクト1340よりも、仮想カメラ1に近い位置に配置されている。
仮に仮想空間2におけるポインタオブジェクト1350の大きさが一定である場合、視界画像2200におけるポインタオブジェクト1350の大きさは、ポインタオブジェクト1350が仮想カメラ1に近いほど大きくなる。
視界画像2200に示されるように、木オブジェクト2210の上に配置されるポインタオブジェクト1350は、ボックスオブジェクト1340の上に配置されるポインタオブジェクト1350よりも大きい。
視界画像2200に示されるように、仮想カメラ1に近いポインタオブジェクト1350は、ユーザ190にとって邪魔である。一方、ユーザ190は、仮想カメラ1から遠いポインタオブジェクト1350を視認しづらい。
上記のような課題を解決するために、ある実施形態に従うコンピュータ200は、ポインタオブジェクト1350と仮想カメラ1との間隔DISを算出し、間隔DISに基づいて、ポインタオブジェクト1350の大きさを制御する。一例として、コンピュータ200は、間隔DISが狭いほどポインタオブジェクト1350の大きさを小さくする。より具体的には、コンピュータ200は、ユーザ190が視認する視界画像においてポインタオブジェクト1350の大きさが常に一定になるように、仮想空間2におけるポインタオブジェクト1350の大きさを制御する。
(制御構造)
図24は、仮想空間2におけるポインタオブジェクト1350の大きさを制御する処理を表すフローチャートである。図21に示される各処理は、プロセッサ10がストレージ12に格納される制御プログラムを読み込んで実行することにより実現される。なお、図24に示される処理のうち上述の処理と同じ処理については同じ符号を付している。そのため、その処理についての説明は繰り返さない。
ステップS2405において、プロセッサ10は、検出した視線1410と第1種オブジェクトとが交わる交点を検出する。
ステップS2410において、プロセッサ10は、仮想空間2におけるユーザ190の視座(つまり、仮想カメラ1の位置)と、検出した交点との間隔DISを算出する。
ステップS2420において、プロセッサ10は、算出した間隔DISに、予め定められた値(例えば、tan5°)を乗じた値(ピクセル数)を、ポインタオブジェクト1350の大きさとして設定する。
ステップS2430において、プロセッサ10は、設定した大きさに従うポインタオブジェクト1350を交点に配置する。
ステップS2440において、プロセッサ10は視界画像生成モジュール223として、視界画像を生成してモニタ112に出力する。その後、プロセッサ10はステップS1620の処理を再び実行する。
上記によれば、ユーザ190が視認する視界画像におけるポインタオブジェクト1350の大きさは、間隔DISによらず常に一定になる。これにより、ある実施形態に従うコンピュータ200は、ポインタオブジェクト1350の大きさが変更されることによるユーザ190の仮想空間2に対する没入感の低下を抑制できる。
[構成]
以上に開示された技術的特徴は、以下のように要約され得る。
(構成1) ある実施形態に従うと、HMD110に仮想空間2を提供するためにコンピュータ200で実行されるプログラムが提供される。このプログラムはコンピュータ200に、仮想空間2を定義するステップ(S1605)と、HMD110のユーザ190の操作を受け付け可能な1以上のオブジェクトを仮想空間2に配置するステップ(S1610)と、ユーザ190の視線1410を検出するステップ(S1620)と、1以上のオブジェクトの中から、検出された視線1410により指定されるオブジェクトを特定するステップ(S1625)と、ユーザ190の四肢の少なくとも一部の動きを検出するステップ(S1630)と、ユーザ190の四肢の少なくとも一部の動きの検出結果に基づいて特定されたオブジェクトに対する操作を受け付けるステップ(S1660)とを実行させる。
(構成2) (構成1)において、ユーザ190の四肢の少なくとも一部は、ユーザ190の手を含む。操作を受け付けるステップは、ユーザ190の手の形状に応じて操作を受け付けること(S1635、S1655)を含む。
(構成3) (構成2)において、動きを検出するステップは、ユーザ190の手が開いているとき(S1635でYES)に当該手のひらに対する法線を検出するステップ(S1640)を含む。ユーザ190の手の形状に応じて操作を受け付けることは、法線と視線1410とが略同じ方向である状態(S1650でYES)からユーザ190の手が閉じた状態(S1655でYES)に変化したことに応じて、操作を受け付けることを含む。
(構成4) (構成1)において、動きを検出するステップは、ユーザ190の四肢の第1部分の動きを検出するステップと、ユーザ190の四肢の第2部分の動きを検出するステップとを含み、操作を受け付けるステップは、第1部分と第2部分とが接触したことに基づいて操作を受け付けること(図17)を含む。
(構成5) (構成1)〜(構成4)のいずれかに従うプログラムは、検出された視線1410とオブジェクトとが交わる交点にポインタオブジェクト1350を配置するステップ(S2430)と、仮想空間2におけるユーザ190の視座と交点との間隔DISを算出するステップ(S2410)と、算出された間隔DISが狭いほどポインタオブジェクト1350の大きさを小さくするステップとをさらに備える。
(構成6) (構成5)において、ポインタオブジェクト1350の大きさを小さくするステップは、算出された間隔DISに予め定められた値を乗じた値に基づいて、ポインタオブジェクト1350の大きさを設定すること(S2420)を含む。
(構成7) (構成1)〜(構成6)のいずれかに従うプログラムは、検出された視線1410とオブジェクトとが交わる交点を含む内領域ISの画質よりも、内領域ISの外側の外領域OSの画質が低い視界画像をHMD110に表示するステップ(S2160〜S2180)をさらに備える。
(構成8) (構成7)従うプログラムは、HMD110の動きを検出するステップ(S1234)と、検出された動きに連動して視界画像を更新するステップ(S1240、S1260)とをさらに備える。視界画像を更新するステップは、外領域OSに位置するオブジェクトの画質を、内領域ISに位置する当該オブジェクトの画質よりも低くすること(S2160)を含む。
(構成9) (構成8)において、オブジェクトの画質を低くすることは、外領域OSに位置するオブジェクトのポリゴン数を、内領域ISに位置する当該オブジェクトのポリゴン数よりも少なくすることを含む。
(構成10) (構成8)および(構成9)のいずれかにおいて、オブジェクトの画質を低くすることは、外領域OSに位置するオブジェクトのテクスチャ解像度を、内領域ISに位置する当該オブジェクトのテクスチャ解像度よりも低くすることを含む。
(構成11) (構成8)〜(構成10)のいずれかにおいて、ストレージ12に格納されるオブジェクト情報242は、1以上のオブジェクトの各々についてオブジェクトを構成するための異なる画質の複数の描画データを保持している。オブジェクトの画質を低くすることは、オブジェクトが内領域ISに位置するときに、複数の描画データのうち高画質用描画データを用いて当該オブジェクトを描画することと、オブジェクトが外領域OSに位置するときに、複数の描画データのうち高画質用描画データよりも画質が低い低画質用描画データを用いて当該オブジェクトを描画すること(S2160)とを含む。
今回開示された実施形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
1 仮想カメラ、2 仮想空間、5 撮影方向、10 プロセッサ、11 メモリ、12 ストレージ、13 入出力インターフェイス、14 通信インターフェイス、19 ネットワーク、22 パノラマ画像、23 視認領域、26,1300,1500,1700,1900,2200 視界画像、100 HMDシステム、105 HMDセット、112 モニタ、114,120 センサ、116 カメラ、118 スピーカ、119 マイク、140 注視センサ、150 サーバ、190 ユーザ、200 コンピュータ、220 表示制御モジュール、221 仮想カメラ制御モジュール、222 視界領域決定モジュール、223 視界画像生成モジュール、224 傾き特定モジュール、225 視線検出モジュール、226 トラッキングモジュール、230 仮想空間制御モジュール、231 仮想空間定義モジュール、232 仮想オブジェクト生成モジュール、233 操作オブジェクト制御モジュール、240 メモリモジュール、241 空間情報、242 オブジェクト情報、243 ユーザ情報、250 通信制御モジュール、900 空間、1310 左手オブジェクト、1320 右手オブジェクト、1330 円柱オブジェクト、1340,1810,1820 ボックスオブジェクト、1350 ポインタオブジェクト、1410 視線、1420 法線、1830 アバターオブジェクト、2210 木オブジェクト。

Claims (13)

  1. ヘッドマウントデバイスに仮想空間を提供するためにコンピュータで実行されるプログラムであって、
    前記プログラムは前記コンピュータに、
    仮想空間を定義するステップと、
    前記ヘッドマウントデバイスのユーザの操作を受け付け可能な1以上のオブジェクトを前記仮想空間に配置するステップと、
    前記ユーザの視線を検出するステップと、
    前記1以上のオブジェクトの中から、前記検出された視線により指定されるオブジェクトを特定するステップと、
    前記ユーザの四肢の少なくとも一部の動きを検出するステップと、
    前記ユーザの四肢の少なくとも一部の動きの検出結果に基づいて前記特定されたオブジェクトに対する操作を受け付けるステップとを実行させる、プログラム。
  2. 前記ユーザの四肢の少なくとも一部は、前記ユーザの手を含み、
    前記操作を受け付けるステップは、前記ユーザの手の形状に応じて前記操作を受け付けることを含む、請求項1に記載のプログラム。
  3. 前記動きを検出するステップは、前記ユーザの手が開いているときに当該手のひらに対する法線を検出するステップを含み、
    前記ユーザの手の形状に応じて前記操作を受け付けることは、前記法線と前記視線とが略同じ方向である状態から前記ユーザの手が閉じた状態に変化したことに応じて、前記操作を受け付けることを含む、請求項2に記載のプログラム。
  4. 前記動きを検出するステップは、
    前記ユーザの四肢の第1部分の動きを検出するステップと、
    前記ユーザの四肢の第2部分の動きを検出するステップとを含み、
    前記操作を受け付けるステップは、前記第1部分と第2部分とが接触したことに基づいて前記操作を受け付けることを含む、請求項1に記載のプログラム。
  5. 前記プログラムは前記コンピュータに、
    前記検出された視線とオブジェクトとが交わる交点にポインタオブジェクトを配置するステップと、
    前記仮想空間における前記ユーザの視座と前記交点との間隔を算出するステップと、
    前記算出された間隔が狭いほど前記ポインタオブジェクトの大きさを小さくするステップとをさらに実行させる、請求項1〜4のいずれか1項に記載のプログラム。
  6. 前記ポインタオブジェクトの大きさを小さくするステップは、前記算出された間隔に予め定められた値を乗じた値に基づいて、前記ポインタオブジェクトの大きさを設定することを含む、請求項5に記載のプログラム。
  7. 前記プログラムは前記コンピュータに、
    前記検出された視線とオブジェクトとが交わる交点を含む内領域の画質よりも、前記内領域の外側の外領域の画質が低い視界画像を前記ヘッドマウントデバイスに表示するステップをさらに実行させる、請求項1〜6のいずれか1項に記載のプログラム。
  8. 前記プログラムは前記コンピュータに、
    前記ヘッドマウントデバイスの動きを検出するステップと、
    前記検出された動きに連動して前記視界画像を更新するステップとをさらに実行させ、
    前記視界画像を更新するステップは、前記外領域に位置するオブジェクトの画質を、前記内領域に位置する当該オブジェクトの画質よりも低くすることを含む、請求項7に記載のプログラム。
  9. 前記オブジェクトの画質を低くすることは、前記外領域に位置するオブジェクトのポリゴン数を、前記内領域に位置する当該オブジェクトのポリゴン数よりも少なくすることを含む、請求項8に記載のプログラム。
  10. 前記オブジェクトの画質を低くすることは、前記外領域に位置するオブジェクトのテクスチャ解像度を、前記内領域に位置する当該オブジェクトのテクスチャ解像度よりも低くすることを含む、請求項8または9に記載のプログラム。
  11. 前記コンピュータのメモリは、前記1以上のオブジェクトの各々についてオブジェクトを構成するための異なる画質の複数の描画データを記憶しており、
    前記オブジェクトの画質を低くすることは、
    前記オブジェクトが前記内領域に位置するときに、前記複数の描画データのうち第1描画データを用いて当該オブジェクトを描画することと、
    前記オブジェクトが前記外領域に位置するときに、前記複数の描画データのうち前記第1描画データよりも画質が低い第2描画データを用いて当該オブジェクトを描画することとを含む、請求項8〜10のいずれか1項に記載のプログラム。
  12. 請求項1〜11のいずれか1項に記載のプログラムを格納したメモリと、
    前記プログラムを実行するためのプロセッサとを備える、情報処理装置。
  13. ヘッドマウントデバイスに仮想空間を提供するためにコンピュータで実行される方法で
    あって、
    仮想空間を定義するステップと、
    前記ヘッドマウントデバイスのユーザの操作を受け付け可能な1以上のオブジェクトを前記仮想空間に配置するステップと、
    前記ユーザの視線を検出するステップと、
    前記1以上のオブジェクトの中から、前記検出された視線により指定されるオブジェクトを特定するステップと、
    前記ユーザの四肢の少なくとも一部の動きを検出するステップと、
    前記ユーザの四肢の少なくとも一部の動きの検出結果に基づいて前記特定されたオブジェクトに対する操作を受け付けるステップとを備える、方法。
JP2018094156A 2018-05-15 2018-05-15 仮想空間を提供するためのプログラム、当該プログラムを実行するための情報処理装置、および仮想空間を提供するための方法 Withdrawn JP2018200688A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018094156A JP2018200688A (ja) 2018-05-15 2018-05-15 仮想空間を提供するためのプログラム、当該プログラムを実行するための情報処理装置、および仮想空間を提供するための方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018094156A JP2018200688A (ja) 2018-05-15 2018-05-15 仮想空間を提供するためのプログラム、当該プログラムを実行するための情報処理装置、および仮想空間を提供するための方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017104815A Division JP6342038B1 (ja) 2017-05-26 2017-05-26 仮想空間を提供するためのプログラム、当該プログラムを実行するための情報処理装置、および仮想空間を提供するための方法

Publications (1)

Publication Number Publication Date
JP2018200688A true JP2018200688A (ja) 2018-12-20

Family

ID=64668206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018094156A Withdrawn JP2018200688A (ja) 2018-05-15 2018-05-15 仮想空間を提供するためのプログラム、当該プログラムを実行するための情報処理装置、および仮想空間を提供するための方法

Country Status (1)

Country Link
JP (1) JP2018200688A (ja)

Similar Documents

Publication Publication Date Title
JP6342038B1 (ja) 仮想空間を提供するためのプログラム、当該プログラムを実行するための情報処理装置、および仮想空間を提供するための方法
US10313481B2 (en) Information processing method and system for executing the information method
US10223064B2 (en) Method for providing virtual space, program and apparatus therefor
JP6087453B1 (ja) 仮想空間の提供方法、およびプログラム
JP6392911B2 (ja) 情報処理方法、コンピュータ、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP6290467B1 (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるプログラム
JP6234622B1 (ja) 仮想空間を介して通信するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP6275891B1 (ja) 仮想空間を介して通信するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP6342024B1 (ja) 仮想空間を提供するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
US10515481B2 (en) Method for assisting movement in virtual space and system executing the method
JP2019000174A (ja) 情報処理方法、プログラム及びコンピュータ
JP6201028B1 (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP2017138973A (ja) 仮想空間の提供方法、およびプログラム
JP2018072604A (ja) Vr酔いを抑制するための方法、当該方法をコンピュータに実行させるためのプログラムおよび、情報処理装置
JP2018205913A (ja) 仮想空間を提供するためにコンピュータで実行される方法、プログラム、および、情報処理装置
JP6227732B1 (ja) 仮想空間において入力を支援するための方法および装置、ならびに当該方法をコンピュータに実行させるプログラム
JP2018125003A (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるプログラム
JP6368404B1 (ja) 情報処理方法、プログラム及びコンピュータ
JP6495398B2 (ja) 仮想空間を提供するための方法、プログラム、および当該プログラムを実行するための情報処理装置
JP6580624B2 (ja) 仮想空間を提供するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP2018049629A (ja) 仮想空間において入力を支援するための方法および装置、ならびに当該方法をコンピュータに実行させるプログラム
JP2018116684A (ja) 仮想空間を介して通信するための方法、当該方法をコンピュータに実行させるためのプログラム、および当該プログラムを実行するための情報処理装置
JP2018092592A (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018206340A (ja) 仮想空間を提供するためにコンピュータで実行される方法、プログラム、および、情報処理装置
JP2019033906A (ja) 情報処理方法、プログラム及びコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200420

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20210202