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

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

▶ 株式会社リコーの特許一覧

特開2024-71196情報処理装置、情報処理方法、プログラム、および情報処理システム
<>
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図1
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図2
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図3
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図4
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図5
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図6
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図7
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図8
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図9
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図10
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図11
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図12
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図13
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図14
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図15
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図16
  • 特開-情報処理装置、情報処理方法、プログラム、および情報処理システム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024071196
(43)【公開日】2024-05-24
(54)【発明の名称】情報処理装置、情報処理方法、プログラム、および情報処理システム
(51)【国際特許分類】
   G06T 19/00 20110101AFI20240517BHJP
   G06F 3/01 20060101ALI20240517BHJP
【FI】
G06T19/00 300B
G06F3/01 510
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2022182022
(22)【出願日】2022-11-14
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】前鼻 毅
(72)【発明者】
【氏名】堀田 波星夫
(72)【発明者】
【氏名】千壽 朋子
【テーマコード(参考)】
5B050
5E555
【Fターム(参考)】
5B050BA09
5B050BA11
5B050BA12
5B050CA07
5B050CA08
5B050EA07
5B050EA27
5B050FA06
5E555AA64
5E555BA02
5E555BA08
5E555BB02
5E555BB08
5E555BC08
5E555BD05
5E555BE17
5E555CA21
5E555CA42
5E555CB19
5E555CB20
5E555CB45
5E555CB74
5E555CC05
5E555CC26
5E555DA08
5E555DB03
5E555DB06
5E555DB32
5E555DC05
5E555DC13
5E555DC19
5E555FA00
(57)【要約】      (修正有)
【課題】仮想空間内で複数のユーザの視点の位置を対応付けて集合させる情報処理装置、情報処理方法、プログラム及び情報処理システムを提供する。
【解決手段】通信ネットワーク50を介して相互に通信可能な複数の端末装置10A、10B…10nを備える表示システム1において、端末装置10Aは、ユーザの視点の位置に応じた仮想空間を表示するとともに、他のユーザの操作に基づき、他のユーザの視点を示す他の視点の近傍にユーザの視点を移動させた仮想空間を表示する入出力画面を生成する生成部15を備える。
【選択図】図6
【特許請求の範囲】
【請求項1】
ユーザの視点の位置に応じた仮想空間を表示するとともに、他のユーザの操作に基づき、前記他のユーザの視点を示す他の視点の近傍に前記ユーザの視点を移動させた前記仮想空間を表示する表示画面を生成する表示画面生成手段を備えた情報処理装置。
【請求項2】
前記他のユーザの操作に基づき外部装置から送信された、前記他のユーザの視点の位置を示す他の視点位置情報、および前記他のユーザの視点の近傍へ前記ユーザの視点を移動するよう指示する他の指示情報を受信する受信手段を備え、
前記表示画面生成手段は、
前記受信手段が受信した前記他の視点位置情報および前記他の指示情報に基づき、前記他の視点の近傍に前記ユーザの視点を移動させた前記仮想空間を表示する前記表示画面を生成する請求項1記載の情報処理装置。
【請求項3】
前記表示画面生成手段は、
前記他の視点が移動するときに、移動後の前記他の視点の近傍に前記ユーザの視点を移動させた前記仮想空間を表示する前記表示画面を生成する請求項1または2記載の情報処理装置。
【請求項4】
前記表示画面生成手段は、
前記他の視点が視界外の空間に移動するときに、移動後の前記他の視点の近傍に前記ユーザの視点を移動させた前記仮想空間を表示する前記表示画面を生成する請求項3記載の情報処理装置。
【請求項5】
前記表示画面生成手段は、
前記他の視点が複数の候補から選択された視界外の空間に移動するときに、移動後の前記他の視点の近傍に前記ユーザの視点を移動させた前記仮想空間を表示する前記表示画面を生成する請求項4記載の情報処理装置。
【請求項6】
前記表示画面生成手段は、
前記他の視点と同じ方向を向くように前記ユーザの視点を移動させた前記仮想空間を表示する前記表示画面を生成する請求項1記載の情報処理装置。
【請求項7】
前記表示画面生成手段は、
前記他の視点に対して予め定められた位置関係で前記ユーザの視点を移動させた前記仮想空間を表示する前記表示画面を生成する請求項1記載の情報処理装置。
【請求項8】
前記表示画面生成手段は、
前記他の視点に対応する位置に前記他のユーザのアバターを表示するとともに、前記アバターに重ならないように、前記ユーザの視点を移動させた前記仮想空間を表示する前記表示画面を生成する請求項7記載の情報処理装置。
【請求項9】
前記表示画面生成手段は、
前記ユーザの操作に基づき、前記ユーザの視点を移動させた前記仮想空間を表示する前記表示画面を生成する請求項1記載の情報処理装置。
【請求項10】
前記ユーザの視点の位置を示す視点位置情報、および前記ユーザの視点の近傍へ他のユーザの視点を移動するよう指示する指示情報を、前記他のユーザの視点の位置に応じた仮想空間を表示する表示画面を生成する外部装置へ送信する送信手段を備えた請求項1記載の情報処理装置。
【請求項11】
ユーザの視点の位置に応じた仮想空間を表示するとともに、前記ユーザの操作に基づき、前記ユーザの視点の近傍に、他のユーザのアバターを移動させた前記仮想空間を表示する表示画面を生成する表示画面生成手段を備えた情報処理装置。
【請求項12】
ユーザの視点の位置に応じた仮想空間を表示するとともに、他のユーザの操作に基づき、前記他のユーザの視点を示す他の視点の近傍に前記ユーザの視点を移動させた前記仮想空間を表示する表示画面を生成する表示画面生成ステップを実行する情報処理方法。
【請求項13】
ユーザの視点の位置に応じた仮想空間を表示するとともに、前記ユーザの操作に基づき、前記ユーザの視点の近傍に、他のユーザのアバターを移動させた前記仮想空間を表示する表示画面を生成する表示画面生成ステップを実行する情報処理方法。
【請求項14】
ユーザの視点の位置に応じた仮想空間を表示するとともに、他のユーザの操作に基づき、前記他のユーザの視点を示す他の視点の近傍に前記ユーザの視点を移動させた前記仮想空間を表示する表示ステップを実行する情報処理方法。
【請求項15】
ユーザの視点の位置に応じた仮想空間を表示するとともに、前記ユーザの操作に基づき、前記ユーザの視点の近傍に、他のユーザのアバターを移動させた前記仮想空間を表示する表示ステップを実行する情報処理方法。
【請求項16】
コンピュータに、請求項12~15の何れか記載の情報処理方法を実行させるプログラム。
【請求項17】
互いに通信可能な第1、第2の情報処理装置を備えた情報処理システムであって、
前記第1の情報処理装置は、
第1のユーザの視点の位置に応じた第1の仮想空間を表示するとともに、前記第1のユーザの操作に基づき、前記第1のユーザの視点の近傍に第2のユーザのアバターを移動させた前記第1の仮想空間を表示する第1の表示画面を生成する第1の表示画面生成手段と、
前記第2の情報処理装置に対して、前記第1のユーザの視点の位置を示す第1の視点位置情報、および前記第1のユーザの視点の位置へ前記第2のユーザの視点を移動するよう指示する指示情報を送信する送信手段と、
を備え
前記第2の情報処理装置は、
前記第1の情報処理装置から送信された、前記第1の視点位置情報、および前記指示情報を受信する受信手段と、
前記第2のユーザの視点に応じた第2の仮想空間を表示するとともに、前記受信手段により受信された前記第1の視点位置情報および前記指示情報に基づき、前記第1のユーザの視点の近傍に前記第2のユーザの視点を移動させた前記第2の仮想空間を表示する第2の表示画面を生成する第2の表示画面生成手段と、
を備える情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、プログラム、および情報処理システムに関する。
【背景技術】
【0002】
特許文献1には、ヘッドマウントディスプレイ装置のユーザが傾いている方向を検出するステップと、検出された前記傾いている方向に基づいて仮想空間におけるユーザの移動方向を決定するステップと、仮想空間におけるユーザの視界が、決定されたユーザの移動方向に移動するように、ヘッドマウントディスプレイ装置に視界を表示させるステップとを含む、仮想空間を提供するための方法が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2017‐220162号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、仮想空間における複数のユーザの視点の位置を対応付けることを課題とする。
【課題を解決するための手段】
【0005】
本発明の情報処理装置は、ユーザの視点の位置に応じた仮想空間を表示するとともに、他のユーザの操作に基づき、他のユーザの視点を示す他の視点の近傍にユーザの視点を移動させた仮想空間を表示する表示画面を生成する表示画面生成手段を備える。
【発明の効果】
【0006】
本発明によれば、仮想空間における複数のユーザの視点の位置を対応付けることができる。
【図面の簡単な説明】
【0007】
図1】本発明の実施形態に係る表示システムの全体構成図である。
図2】本実施形態に係るコントローラ20の操作部を説明する図である。
図3】押し込み移動の例を示す図である。
図4】本実施形態に係る端末装置、サーバのハードウエア構成図である。
図5】本実施形態に係るHMDのハードウエア構成図である。
図6】本実施形態に係る表示システムの機能ブロック図である。
図7】本実施形態に係る部品情報管理テーブルの一例を示す概念図である。
図8】本実施形態に係る視点位置情報管理テーブル、およびユーザ情報管理テーブルの一例を示す概念図である。
図9】本実施形態に係る入出力画面の生成処理の一例を示すシーケンス図である。
図10】本実施形態に係る移動処理の一例を示すフローチャートである。
図11】本実施形態に係る複数人移動処理の一例を示すシーケンス図である。
図12】本実施形態に係る入出力画面の説明図である。
図13】本実施形態に係る入出力画面の第2の説明図である。
図14】本実施形態に係る入出力画面の第3の説明図である。
図15図14(e)に示した入出力画面の詳細説明図である。
図16】本実施形態に係る集合処理の一例を示すフローチャートである。
図17】本実施形態に係る集合処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【0008】
図1は、本発明の実施形態に係る表示システムの全体構成図である。本実施形態の表示システム1は、情報処理システムの一例であり、ヘッドマウントディスプレイ(以下、HMDと記載する)8、端末装置10、コントローラ20、位置検知装置30、およびサーバ40によって構築されている。
【0009】
HMD8は、表示装置の一例であり、端末装置10は、情報処理装置の一例であり、サーバ40は、情報処理装置の他の例である。
【0010】
端末装置10およびサーバ40は、単一のコンピュータによって構成されてもよいし、複数のコンピュータによって構成されてもよく、専用のソフトウエアプログラムがインストールされた汎用的なPC(Personal Computer)であってもよい。
【0011】
端末装置10およびサーバ40は、通信ネットワーク50を介して通信することができる。通信ネットワーク50は、インターネット、移動体通信網、LAN(LocalAreaNetwork)等によって構築されている。通信ネットワーク50には、有線通信だけでなく、3G(3rdGeneration)、WiMAX(WorldwideInteroperabilityforMicrowaveAccess)、LTE(LongTermEvolution)等の無線通信によるネットワークが含まれてもよい。
【0012】
HMD8、コントローラ20、および位置検知装置30は、それぞれ端末装置10と接続されるが、どのような接続形態で接続されてもよい。例えば、専用の接続線、有線LAN(Local Area Network)等の有線ネットワーク、またはBluetooth(登録商標)やWiFi(登録商標)等の近距離通信による無線ネットワークにより接続されてもよい。
【0013】
HMD8は、ユーザの頭部に装着され、ユーザに対して三次元仮想空間等の画像を表示するためのディスプレイを有し、HMD8の位置や基準方向に対する傾きに対応した画像をディスプレイ上に表示させる。なお、以下、三次元仮想空間は、単に仮想空間と記載する。
【0014】
画像は、ユーザの左右の目の視差を用いて画像を立体的に見せるため、左右の目のそれぞれに対応した2つの画像とされる。 このため、HMD8は、左右の目のそれぞれに対応した画像を表示する2つのディスプレイを備えている。 基準方向は、例えば床に平行な任意の方向である。HMD8は、赤外線LED(Light Emitting Diode)等の光源を有し、赤外線を放射する。
【0015】
コントローラ20は、ユーザが手で握る、もしくは手の位置に装着する操作手段で、ボタン、ホイール、タッチセンサ等を有し、ユーザからの入力を受け付け、受け付けた情報を端末装置10へ送信するコントローラ20も、赤外線LED等の光源を有し、赤外線を放射する。
【0016】
位置検知装置30は、ユーザが向いた前方の任意の位置に配置され、HMD8およびコントローラ20から放射される赤外線から、HMD8およびコントローラ20の位置や傾きを検出し、それらの位置情報および傾き情報を出力する。位置検知装置30は、例えば赤外線カメラ等を備え、撮像された画像に基づき、HMD8およびコントローラ20の位置や傾きを検出することができる。なお、HMD8およびコントローラ20が備える光源は、HMD8やコントローラ20の位置や傾きを高い精度で検出するため、複数設けられる。位置検知装置30は、1以上のセンサから構成され、複数のセンサを用いる場合は、側方や後方等にも設けることができる。
【0017】
端末装置10は、位置検知装置30から出力されたHMD8の位置情報および傾き情報、コントローラ20の位置情報、必要に応じてコントローラ20の傾き情報に基づき、HMD8の表示部に表示される仮想空間にユーザの分身を表すアバターや、ユーザ入力を支援するためのレーザ等のユーザオブジェクトを生成する。
【0018】
端末装置10は、HMD8の位置情報および傾き情報、仮想空間データに基づき、仮想空間におけるユーザの視野方向(正確にはHMD8の傾き方向)の画像であって、左右の目に対応した画像を生成し、HMD8のディスプレイに表示させる処理を実行する。
【0019】
端末装置10は、ネットワーク50を介してサーバ40と通信し、同じ仮想空間にいる他のユーザの位置情報等を取得し、他のユーザの分身を表すアバターをHMD8のディスプレイに表示させる処理を実行することができる。
【0020】
この場合、仮想空間を共有する複数のユーザにおける各ユーザは、HMD8、端末装置10、コントローラ20、および位置検知装置30を1セットとして利用し、各端末装置10をサーバ40と通信させることにより、他のユーザと仮想空間を共有することができる。
【0021】
表示システム1は、例えば、各ユーザのアバターを仮想空間としての仮想会議室に集め、ホワイトボード等を使用して会議を行うことに利用することができる。表示システム1は、ホワイトボード等を使用して会議の参加者が主体的に会議に参加することができるため、インタラクティブな会議を行う場合に利用することができる。
【0022】
表示システム1を利用した会議では、ユーザは、コントローラ20を操作し、表示された画像内のユーザオブジェクトに触れる等してペン入力の機能を呼び出し、表示されたペンを手に取り、ペンを移動させ、ホワイトボードに文字を入力することができる。なお、これは1つの利用形態であるため、この利用形態に限定されるものではない。
【0023】
図1に示した例では、HMD8およびコントローラ20が光源を有し、位置検知装置30を任意の位置に配置することを説明したが、HMD8およびコントローラ20が位置検知装置30を備え、任意の位置に光源や赤外線を反射するマーカーを配置する構成であってもよい。
【0024】
マーカーを使用する場合、HMD8およびコントローラ20が光源および位置検知装置30を備え、光源から出射した赤外線がマーカーに反射し、反射した赤外線を位置検知装置30により検出することにより、HMD8およびコントローラ20の位置や傾きを検出することができる。
【0025】
位置検知装置30とHMD8およびコントローラ20との間に何らかの物体が存在する場合、赤外線が遮られ、正確に位置や傾きを検出することができなくなる。 このため、HMD8およびコントローラ20を使用して、操作や表示を行う場合、開けた空間で実行することが望ましい。
【0026】
図1に示す例では、ユーザがHMD8を装着し、コントローラ20を手に握り、腕を伸ばしたり、広げたりすることができる空間が設けられ、その空間の外側に端末装置10、位置検知装置30が配置されている。
【0027】
図2は、本実施形態に係るコントローラ20の操作部を説明する図である。
【0028】
コントローラ20は、右コントローラ20Rと左コントローラ20Lを含む。右コントローラ20Rは、ユーザの右手で操作される。左コントローラ20Lは、ユーザの左手で操作される。右コントローラ20Rと左コントローラ20Lとは、別個の装置として対称に構成される。したがって、ユーザは、右コントローラ20Rを把持した右手と、左コントローラ20Lを把持した左手とをそれぞれ自由に動かすことができる。コントローラ20は両手の操作を受け付ける一体型のコントローラであってもよい。
【0029】
右コントローラ20R、左コントローラ20Lは、親指スティック21R、21L、トリガー24R、24L、グリップ25R、25Lをそれぞれ備える。
【0030】
右コントローラ20Rは、Bボタン22R、Aボタン23Rを備え、左コントローラ20Lは、Yボタン22L、Xボタン23Lを備える。
【0031】
ユーザは、右コントローラ20R、左コントローラ20Lコントローラの特定のトリガーまたはボタンを操作することにより、仮想空間内に表示されるメニューを設定する。ユーザは、仮想空間内に表示されるメニューを操作することにより、三次元データを選択する情報を入力したり、後述する非表示モードや透過モードを設定したりする。
【0032】
そして、右コントローラ20R、左コントローラ20Lをユーザが操作することにより、HMD8のディスプレイに表示される仮想空間におけるユーザの視点を移動する。以下に、コントローラ20の操作に基づき、ユーザの視点を移動する具体例を説明する。
【0033】
(レーザポイント移動)
レーザポイント移動は、主に、仮想空間上でユーザの視点を現在の位置から遠距離に移動させるために用いられる。
【0034】
ユーザが、右コントローラ20Rまたは左コントローラ20Lを持った腕を遠くに伸ばすと、位置検知装置30により検出され、仮想空間内のユーザのアバターの手から照射されるレーザが表示される。
【0035】
ユーザが、レーザを床に当てると、マーカーオブジェクトが表示される。その時に、移動操作として、右コントローラ20Rまたは左コントローラ20Lのトリガー24Rまたは24Lを押下すると、マーカーオブジェクトの位置にユーザの視点が移動する。
【0036】
その際、HMD8で閲覧する画像データの周縁をやや暗くしたり、画面全体を暗くしたりする、すなわち暗転することで視点移動に伴う酔いを軽減する。暗転は、具体的には、画面の全体または一部を黒表示または一部背景が見える黒表示として明るさ(輝度)を落とす処理を示す。
【0037】
表示システム1は、一例としてレーザポイント移動に係る以下の処理を実行する。
【0038】
最初に、位置検知装置30によってHMD8やコントローラ20の位置情報や傾きを推定する。
【0039】
次に、コントローラ20の位置を起点とし、特定の長さで、特定方向にレーザを仮想空間上に配置する。特定方向とは、例えばコントローラ20の所定の傾き方向である。特定の長さとは、例えば特開2022-078778で示した肩の推定位置とコントローラ20の位置の距離に応じて長さを決定するような方法である。
【0040】
次に、配置されたレーザが通過する仮想空間上のオブジェクト上に移動可能であるか調べ、移動可能な場合は移動先のポイントを決定する。決定方法は後述する。
【0041】
移動先があると判断する場合は、移動が可能であるという移動可能フラグを立てユーザに移動可能であることを通知する。例えば、移動先のポイントに移動可能な移動先であることを表すマーカーオブジェクトを表示する。
【0042】
次に、仮想空間において、HMD8の位置情報、傾き情報からHMD8の位置座標を中心とし傾きを適用した視野方向における画像データを生成する。
【0043】
移動先がないと判断する場合は、移動可能フラグを削除し、同様に画像データを生成する。
【0044】
移動可能フラグが立っている状態でユーザがコントローラ20のボタンを押すなどの移動の意志を示した場合、移動先のポイントに移動する。
【0045】
移動する場合は、瞬間的に移動してユーザに急激な視覚的変化を与えると酔いやすいため、次に示すような方法によりHMD8で閲覧する画像データを仮想空間においてHMD8の位置情報、傾き情報からHMD8の位置座標を中心とし傾きを適用した視野方向における画像データから変化させ、瞬きに似た効果を与え視覚的な変化に順応できる余裕を与える。
【0046】
・移動する前に、画像データから徐々に暗くするフェードアウトを行う。
・移動中は画像データを真っ暗にする。
・移動した後に、画像データにフェードインして元に戻す。
【0047】
移動では仮想空間上の移動ポイントの座標からあらかじめ推定または設定されたユーザが立っている地面からHMD8の高さ分だけ上方にユーザの視点が配置されるようにする。
【0048】
移動先のポイントの決定は次に示すような方法でレーザと特定オブジェクトの交点部分にユーザが立ちうる水平面が存在することを確認することで行う。また、レーザから近い方の特定オブジェクトに対して移動可能か調査していくことでユーザと移動先のポイントの間に壁などの遮蔽物があっても移動可能とする。特定オブジェクトは仮想空間上の建築物や地形などの移動対象となるオブジェクトである。
【0049】
最初に、レーザが通過するコントローラ20から最も近い特定オブジェクトに対して、オブジェクトを構成するポリゴンの集合の中から特定ポリゴンを選択する。ポリゴンは三角形や四角形などの多角形の面であり、特定ポリゴンはレーザが通過するコントローラ20から最も近いポリゴンである。
【0050】
レーザが通過するオブジェクトがない場合は、移動先がないと決定し調査を終了する。
【0051】
次に、特定ポリゴンの法線ベクトルと仮想空間の上方向のベクトルの内積からなす角を計算する。ポリゴンの法線は表向きの面から垂直方向のベクトルである。
【0052】
なす角が一定範囲内である場合に特定ポリゴンが水平面であると判断し、移動先のポイントをレーザと特定ポリゴンの交わる点として移動可能であると決定し調査を終了する。
【0053】
なす角が一定範囲外である場合には移動先にはならないと判断し、レーザが通過するコントローラ20から次に近い特定オブジェクトに対して同様に特定ポリゴンが水平面であり移動可能か調査するのを繰り返す。
【0054】
レーザが通過する全ての特定オブジェクトにおいて水平面である特定ポリゴンがない場合は移動先がないと決定し調査を終了する。
【0055】
(透過移動)
透過移動は、レーザポイント移動の一例であり、主に、仮想空間上でユーザの視点を現在の位置から壁等の構造物の背後に移動させるために用いられる。
【0056】
ユーザが、右コントローラ20Rまたは左コントローラ20Lを持った手を遠くに伸ばすと、位置検知装置30により検出され、仮想空間内のユーザのアバターの手から照射されるレーザが表示される。
【0057】
ユーザが、レーザを壁に当てると、壁は、一時的に表示されなくなるまたは透過して表示される。
【0058】
ユーザが、表示されなくなったまたは透過して表示された壁の背後の床にレーザを当てると、マーカーオブジェクトが表示される。その時に右コントローラ20Rまたは左コントローラ20Lのトリガー24Rまたは24Lを押下すると、マーカーオブジェクトの位置にユーザの視点が移動する。
【0059】
その際、HMD8で閲覧する画像データの周縁をやや暗くしたり、画面全体を暗くしたりする、すなわち暗転することで視点移動に伴う酔いを軽減する。
【0060】
以下、透過移動に関して詳細に説明する。
【0061】
透過移動は、レーザポイント移動において仮想空間上のコントローラ位置から移動先となる水平面を持つオブジェクトまでの間にレーザが通過する全ての特定オブジェクトを一時的に表示しないようにし移動先のポイントを視覚的に確認できるモードである。
【0062】
壁などの視界を妨げるオブジェクトが複数存在する建築物内を移動する際に移動先がどこであるかを確認できる。また、仮想空間上で左右に壁があるような圧迫感を感じる狭い空間では酔いやすいが、透過移動のモードにすることでユーザが任意のオブジェクトを透過可能になり、圧迫感を感じにくくし酔いを抑える効果を狙っている。ユーザは壁を透過しないモードか透過移動のモードにするかを操作IFによって選択することができる。特定オブジェクトは仮想空間上の建築物や地形などの移動対象となるオブジェクトである。
【0063】
表示システム1は、一例として透過移動に係る以下の処理を実行する。
【0064】
最初に、レーザポイント移動においての移動先のポイントを得る。
【0065】
移動先のポイントが存在する場合は、ポイントまでにレーザオブジェクトが通過する特定オブジェクトの全て、移動先がない場合はレーザオブジェクトが通過する特定オブジェクトの全てを列挙する。
【0066】
次に、列挙したオブジェクトそれぞれに対して透過表示、もしくは非表示を行う。透過開始時間が一定時間経過していない場合はオブジェクトを透過する。
【0067】
レーザオブジェクトを動かして、レーザオブジェクトが、列挙していたオブジェクトを通過しなくなった時点から、一定時間経過した場合はオブジェクトを再表示する。
【0068】
(前方移動)
前方移動は、主に、仮想空間上でユーザの視点を現在の位置から近距離に移動させるために用いられる。
【0069】
ユーザが、右コントローラ20Rまたは左コントローラ20Lの親指スティック21Rまたは21Lを前方に倒すことで、HMD8の向いている方向の一定距離前方に瞬時にユーザの視点が移動する。このときの「HMD8の向いている方向」とは水平方向成分だけでなく垂直方向成分も含まれる。そのため、例えばHMD8が水平方向よりやや上を向いている場合は斜め上前方に移動し、移動先の視点の位置は移動前よりも高さが高くなる。
【0070】
(後方移動)
後方移動は、主に、仮想空間上でユーザの視点を現在の位置から近距離に移動させるために用いられる。
【0071】
ユーザが、右コントローラ20Rまたは左コントローラ20Lの親指スティック21Rまたは21Lを後方に倒すことで、HMD8の向いている方向の一定距離後方に瞬時にユーザの視点が移動する。このときの「HMD8の向いている方向」とは水平方向成分だけとなり、垂直方向成分は含まれない。そのため、例えばHMD8が水平方向よりやや上を向いている場合でも、移動先の視点の位置は移動前と高さが同じとなり、斜め下後ろに下がるわけではない。
【0072】
また、ここでの移動量は前方移動での移動量よりも短いものになる。これにより前方移動と後方移動を繰り返しても同じ位置を往復することがないため、ユーザが位置を調整しやすくなっている。
【0073】
(水平回転)
ユーザが、右コントローラ20Rまたは左コントローラ20Lの親指スティック21Rまたは21Lを左右に倒すことで、瞬時にユーザの視点が水平回転する。
【0074】
一例として、親指スティック21Rまたは21Lを左に倒すことで左に45°、右に倒すことで右に45°ユーザの視点が瞬時に水平回転する。
【0075】
これにより、ユーザは、自分自身の体を左右に回転させることなく、左右・後方の視界を見ることができる。
【0076】
また、ユーザの操作の熟練度に応じて、グリップ25R、25L等の特定のボタンを使うことにより細かい回転を行ってもよい。例えば、特定のボタンを押しながら同じ手の親指スティック21Rまたは21Lを操作することにより、半量の回転(22.5°)となったりして、回転量の微調整を行うことが可能になる。
【0077】
(上昇移動)
ユーザが、右コントローラ20RのBボタン22R、または左コントローラ20LのYボタンを押下することで、瞬時にユーザの視点が一定距離上方に移動する。移動方向は仮想空間上の地面に直交する正のZ軸方向であり、HMD8がどの方向を向いていても不変である。
【0078】
(下降移動)
ユーザが、右コントローラ20RのAボタン23R、または左コントローラ20LのXボタン23Lを押下することで、瞬時にユーザの視点が一定距離下方に移動する。
【0079】
移動方向は仮想空間上の地面に直交する負のZ軸方向であり、HMD8がどの方向を向いていても不変である。
【0080】
また、ここでの移動量は上昇移動での移動量よりも短いものになる。これにより上昇移動と下降移動を繰り返しても同じ位置を往復することがないため、ユーザが位置を調整しやすくなっている。
【0081】
(押し込み移動)
ユーザが、右コントローラ20Rまたは左コントローラ20Lの親指スティック21Rまたは21Lを上から押し込むことで、真下の地面に接地する位置に瞬時にユーザの視点が移動する。
【0082】
移動先の算出方法としては、まず、親指スティック21Rまたは21Lを上から押し込んだ時点のユーザの位置から、仮想空間上の地面に直交する負のZ軸方向に伸ばした時にユーザから最も近い仮想空間上のオブジェクトと交わる位置を求める。
【0083】
その位置から、あらかじめ推定または設定されたユーザが立っている地面からHMD8の高さ分だけ上方にずらした位置がユーザの視点の移動先となる。
【0084】
押し込み移動を行うことで、上昇移動や下降移動とは異なり、瞬時に実身長での視点確認等が容易に行える。
【0085】
(グリップ移動)
ユーザが、グリップ移動操作として、右コントローラ20Rおよび左コントローラ20Lのグリップ25Rおよび25Lを同時に押している状態で、右コントローラ20Rおよび左コントローラ20Lを動かすと、上下左右前後にユーザの視点を平行移動する。
【0086】
仮装空間を両手で掴んで移動するイメージで、右コントローラ20Rおよび左コントローラ20Lのグリップ25Rおよび25Lを同時に押し始めた時点の両手の位置を基準として、連続的にユーザの視点が移動する。
【0087】
他の移動方法とは異なり一定の距離を瞬時に移動するのではなく、連続的にユーザの視点が移動するため、ユーザは細かい位置調整が可能になる。
【0088】
連続的にユーザの視点が移動するとベクションによる酔いが発生しやすくなるので、平行移動状態時にはHMD8で閲覧する画像データの周縁をやや暗くする、すなわち暗転することで酔いを軽減する。
【0089】
また、ユーザの操作の熟練度に応じて、グリップ移動の操作を有効または無効に切り替えることが可能である。
【0090】
図3は、押し込み移動の例を示す図であり、想空間上に水面930、地形940、および建築物950が配置されている状態を示す。
【0091】
図2で説明したように、ユーザが、右コントローラ20Rまたは左コントローラ20Lの親指スティック21Rまたは21Lを上から押し込むことで、ユーザから最も近い真下のオブジェクトに接地する位置に瞬時にユーザの視点が移動する。
【0092】
図3に示すように、ユーザのアバター800は、最も近く真下にあるオブジェクトが建築物950の場合は建築物950に接地する位置に移動し、最も近く真下にあるオブジェクトが水面930の場合は水面930に接地する位置に移動し、最も近く真下にあるオブジェクトが地形940の場合は地形940に接地する位置に移動する。
【0093】
図4は、本実施形態に係る端末装置、サーバのハードウエア構成図である。端末装置10の各ハードウエア構成は、100番台の符号で示されており、サーバ40の各ハードウエア構成は、400番台の符号で示されている。
【0094】
以下、端末装置10の各ハードウエア構成について説明するが、サーバ40の各ハードウエア構成は同様であるため説明を省略する。
【0095】
端末装置10は、コンピュータによって構築されており、図4に示すように、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HD(Hard Disk)104、HDD(Hard Disk Drive)コントローラ105、ディスプレイI/F106および通信I/F107を備えている。
【0096】
これらのうち、CPU101は、端末装置10全体の動作を制御する。ROM102は、IPL(Initial Program Loader)等のCPU101の駆動に用いられるプログラムを記憶する。 RAM103は、CPU101のワークエリアとして使用される。
【0097】
HD104は、プログラム等の各種データを記憶する。HDDコントローラ105は、CPU101の制御にしたがってHD104に対する各種データの読み出しまたは書き込みを制御する。ディスプレイI/F106は、ディスプレイ106aに画像を表示させる回路である。ディスプレイ106aは、カーソル、メニュー、ウインドウ、文字または画像等の各種情報を表示する液晶や有機EL(Electro Luminescence)等の表示部の一種である。通信I/F107は、他の装置との通信に用いられるインターフェースである。通信I/F107は、例えば、TCP(Transmission Control Protocol)/IP(Internet Protocol)に対応したNIC(Network Interface Card)等である。
【0098】
また、端末装置10は、センサI/F108、音入出力I/F109、入力I/F110、メディアI/F111、DVD-RW(Digital Versatile Disk Rewritable)ドライブ112を備えている。
【0099】
センサI/F108は、検知装置30に含まれるセンサアンプ302を介して検知情報を受信するインターフェースである。音入出力I/F109は、CPU101の制御に従ってスピーカ109aおよびマイク109bとの間で音信号の入出力を処理する回路である。入力I/F110は、端末装置10に所定の入力手段を接続させるためのインターフェースである。
【0100】
キーボード110aは、文字、数値、各種指示等の入力のための複数のキーを備えた入力手段の一種である。マウス110bは、各種指示の選択や実行、処理対象の選択、カーソルの移動等を行う入力手段の一種である。
【0101】
メディアI/F111は、フラッシュメモリ等の記録メディア111aに対するデータの読み出しまたは書き込み(記憶)を制御する。DVD-RWドライブ112は、着脱可能な記録媒体の一例としてのDVD-RW112aに対する各種データの読み出しまたは書き込みを制御する。なお、DVD-RWに限らず、DVD-R等であってもよい。また、DVD-RWドライブ112は、ブルーレイディスク(登録商標)に対する各種データの読み出しまたは書き込みを制御するブルーレイドライブであってもよい。
【0102】
また、端末装置10は、バスライン113を備えている。バスライン113は、CPU101等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【0103】
なお、上記各プログラムが記憶されたHDやCD-ROM等の記録媒体は、いずれもプログラム製品(Program Product)として、国内または国外へ提供されることができる。端末装置10は、例えば、本発明に係るプログラムが実行されることで本発明に係る情報処理方法を実現する。
【0104】
近距離通信回路117は、NFCやBluetooth(登録商標)やWiFi(登録商標)等の通信回路であり、アンテナ117aと接続される。
【0105】
以上、端末装置10およびサーバ40の各ハードウエア構成について説明したが、コントローラ20も同様または簡略されたハードウエア構成を備える。検知装置30も、端末装置10およびサーバ40と同様または簡略されたハードウエア構成を備えるが、さらに、赤外線カメラ等のセンサまたは検知デバイスを備える。
【0106】
<HMDのハードウエア構成>
図5は、本実施形態に係るHMDのハードウエア構成図である。HMD8は、信号送受信部801、信号処理プロセッサ802、VRAM(Video Random Access Memory)803、パネルコントローラ804、ROM805、CPU806、表示部808R,808L、ROM809、RAM810、音声DAC811、スピーカ812R,812L、ユーザ操作部820、装着センサ821、加速度センサ822、及び輝度センサ830を備えている。また、HMD8は、電源供給を行う電源部830、及び、電源部830の電源供給を行ったり停止したりすることができる電源スイッチ831を備えている。
【0107】
これらのうち、信号送受信部801は、ケーブルを介して、AV信号を受信したり、CPU806(後述)で処理された情報信号を送信したりする。本実施形態では、AV(Audio Visual)信号はケーブルを介してシリアル転送されるので、信号送受信部801では受信信号のシリアル・パラレル変換が行なわれる。
【0108】
信号処理プロセッサ802は、信号送受信部801で受信したAV信号を映像信号と音声信号に分離して、それぞれに対して映像信号処理並びに音声信号処理を行なう。
【0109】
信号処理プロセッサ802では、映像信号処理として、輝度レベル調整やコントラスト調整、その他の画質改善が行なわれる。また、信号処理プロセッサ802は、CPU806からの指示により、本来の映像信号に対して各種の処理を適用する。例えば、文字及び図形の少なくとも一方で構成されるOSD(On Screen Display)情報を生成して、本来の映像信号に重畳する。ROM805には、OSD情報の生成に必要な信号パターンが格納されており、信号処理プロセッサ802はROM805に格納されている情報を読み出す。
【0110】
本来の映像情報に重畳されるOSD情報の一例は、画面及び音声の出力調整などのためのGUI(Graphical User Interface)である。そして、映像信号処理を経て生成された画面情報は、VRAM803に一時的に格納される。供給された映像信号が立体視映像信号等左右で映像信号が異なるときには、信号処理プロセッサ802は左右の映像信号に分離して、画面情報を生成する。
【0111】
左右の表示部808L,808Rはそれぞれ、有機EL(Electro-Luminescence)素子からなる表示パネルと、表示パネルを駆動するゲート・ドライバー及びデータ・ドライバーからなる。また、左右の表示部808L,808Rにはそれぞれ広視野角を持つ光学系が装備される。但し、図5では光学系を省略している。
【0112】
ユーザは、左右の表示部808L,808Rに表示される仮想空間内のメニューを操作することにより、三次元データを選択する情報を入力したり、後述する非表示モードや透過モードを設定したりする。
【0113】
パネルコントローラ804は、所定の表示周期毎にVRAM803から画面情報を読み出して、各表示部808L,808Rへ入力するための信号に変換するとともに、ゲート・ドライバー及びデータ・ドライバーの動作に用いられる、水平同期信号、垂直同期信号などのパルス信号を生成する。
【0114】
CPU806は、ROM809からRAM810にロードされたプログラムを実行して、HMD8全体の動作を統括的に制御する。また、CPU806は、信号送受信部801を介して、情報信号の送受信を制御する。
【0115】
HMD8本体には、ユーザが指などで操作可能な1以上の操作子を備えたユーザ操作部820が装備されている。
【0116】
操作子は、図示しないが、例えば上下左右のカーソルキーと、中央の決定キーの組み合わせからなる。また、本実施形態では、ヘッドフォン812L,812Rの音量を増大する「+」ボタンと、音量を低下させる「-」ボタンもユーザ操作部820に含まれるものとする。CPU806は、ユーザ操作部820から入力されたユーザの指示に従って、表示部808R,808Lからの映像出力やヘッドフォン812L,812Rからの音声出力などに関する処理を信号処理プロセッサ802に対して指示する。また、ユーザ操作部820から映像の再生、停止、早送り、早戻しなどのコンテンツ再生に関する操作が指示されると、CPU806は、信号送受信部801から、指示内容を通知するための情報信号を送信する。
【0117】
また、本実施形態では、HMD8は、装着センサ821、加速度センサ822、輝度センサ823などの複数のセンサを装備している。これらのセンサ出力は、CPU806に入力される。
【0118】
装着センサ821は、例えば機械スイッチなどからなる。CPU806は、このセンサ出力によってHMD8がユーザに装着されているかどうか、すなわち、HMD8が現在使用中であるかどうかを判定することができる。
【0119】
加速度センサ822は、例えば3軸で構成され、HMD8に加わる加速度の大きさ及び方向を検出する。 CPU806は、取得した加速度情報に基づいて、HMD8を装着したユーザの頭部の移動をトラッキングすることができる。
【0120】
輝度センサ823は、HMD8が現在置かれている環境における輝度を検出する。CPU806は、輝度センサ823は、取得した輝度情報に基づいて、映像信号に対して適用する輝度レベル調整を制御するようにしてもよい。
【0121】
また、CPU806は、必要に応じて、各センサ821~823から取得したセンサ情報を、信号送受信部811から送信することもできる。
【0122】
電源部830は、PC7から供給される駆動電力を、図5中の破線で囲まれた各回路部品へ供給する。また、HMD8本体には、ユーザが指などで操作可能な電源スイッチ831が装備されている。電源部830は、電源スイッチ831が操作されたことに応じて、回路部品への給電のオン/オフを切り替えるようになっている。
【0123】
なお、電源スイッチ831で電源オフにした状態は、電源部830は給電状態で待機している、HMD8の「スタンバイ」状態とする。
【0124】
図6は、本実施形態に係る表示システムの機能ブロック図である。
【0125】
表示システム1は、通信ネットワーク50を介して相互に通信可能な複数の端末装置10A、10B…10nを備えるとともに、複数の端末装置10A、10B…10nのそれぞれに接続されるHMD8A、コントローラ20A、および検知装置30Aと、HMD8B、コントローラ20B、および検知装置30B等を備える。
【0126】
以下、端末装置10A、HMD8A、コントローラ20A、および検知装置30Aの機能を説明するが、端末装置10B、HMD8B、コントローラ20B、および検知装置30B等の機能も同様である。
【0127】
<端末装置の機能構成>
端末装置10Aは、送受信部11、受付部12、表示制御部13、記憶・読出部14、生成部15、判断部16、および通信部17を備える。これら各部は、図4に示されている各構成要素のいずれかが、HD104からRAM103上に展開されたプログラムに従ったCPU101からの命令によって動作することで実現される機能又は機能する手段である。
【0128】
ここで、送受信部11等の手段は、端末装置10Bが備える送受信部11等の手段と区別する必要がある場合は、末尾にAを記載するが、区別する必要がない場合は、末尾にAを記載しない。
【0129】
また、端末装置10Aは、図4に示されているRAM103及びHD104により構築される記憶部1000を有している。記憶部1000は、記憶手段の一例である。
【0130】
送受信部11は、通信ネットワーク50を介して、サーバ40等の他の装置との間で、各種データまたは情報の送受信を行う機能である。送受信部11は、主に、図4に示した通信I/F107およびCPU101で実行されるプログラム等によって実現される。送受信部11は、送信手段および受信手段の一例である。
【0131】
受付部12は、図4に示したキーボード110a等の入力手段に対するユーザ入力を受け付ける機能である。受付部12は、主に、図4に示したCPU101で実行されるプログラム等によって実現される。
【0132】
表示制御部13は、図4に示したディスプレイ106aに各種画面を表示させる機能である。表示制御部13は、例えば、WEBブラウザ等を用いて、HTML(HyperText Markup Language)等により生成された画像データに係る画面を、ディスプレイ106aに表示させる。表示制御部13は、主に、図4に示したディスプレイI/F106、およびCPU101で実行されるプログラム等によって実現される。
【0133】
記憶・読出部14は、記憶部100に各種データを記憶させ、または記憶部100から各種データを読み出す機能である。記憶・読出部14は、主に、図4に示したCPU101で実行されるプログラム等によって実現される。
【0134】
記憶部1000は、主に、図4に示したROM102、HD104および記録メディア111aによって実現される。
【0135】
生成部15は、ディスプレイ106aやHMD8Aの表示部808R,808L等に表示させる各種画像データを生成する機能である。生成部15は、主に、図4に示したCPU401で実行されるプログラム等によって実現される。生成部15は、表示画面生成手段の一例である。
【0136】
判断部16は、各種判断を実行する機能である。判断部16は、主に、図4に示したCPU401で実行されるプログラム等によって実現される。
【0137】
通信部17は、HMD8A、コントローラ20Aおよび検知装置30Aとの間で各種データ(または情報)の送受信を行う機能である。通信部17は、主に、図4に示した近距離通信回路117、およびCPU101で実行されるプログラム等によって実現される。
【0138】
設定部18は、各種判断を実行する機能である。設定部18は、主に、図4に示したCPU401で実行されるプログラム等によって実現される。
【0139】
<サーバの機能構成>
サーバ40は、送受信部41、受付部42、表示制御部43、記憶・読出部44、三次元処理部45、および生成部46を備える。これら各部は、図4に示されている各構成要素のいずれかが、HD404からRAM403上に展開されたプログラムに従ったCPU401からの命令によって動作することで実現される機能又は機能する手段である。
【0140】
また、サーバ40は、図4に示されているRAM403及びHD404により構築される記憶部4000を有している。記憶部4000は、記憶手段の一例である。
【0141】
送受信部41は、通信ネットワーク50を介して、端末装置10A等の他の装置との間で各種データまたは情報の送受信を行う機能である。送受信部41は、主に、図4に示した通信I/F407およびCPU401で実行されるプログラム等によって実現される。送受信部41は、送信手段および受信手段の一例である。
【0142】
受付部42は、図4に示したキーボード410a等の入力手段に対するユーザ入力を受け付ける機能である。受付部42は、主に、図4に示したCPU401で実行されるプログラム等によって実現される。
【0143】
表示制御部43は、図4に示したディスプレイ406aに各種画面を表示させる機能である。表示制御部43は、例えば、WEBブラウザ等を用いて、HTML(HyperText Markup Language)等により生成された画像データに係る画面を、ディスプレイ406aに表示させる。表示制御部43は、主に、図4に示したディスプレイI/F406、およびCPU401で実行されるプログラム等によって実現される。
【0144】
記憶・読出部44は、記憶部4000に各種データを記憶させ、または記憶部4000から各種データを読み出す機能である。記憶・読出部49は、主に、図4に示したCPU401で実行されるプログラム等によって実現される。
【0145】
記憶部4000は、主に、図4に示したROM402、HD404および記録メディア411aによって実現される。記憶部4000には、部品情報管理DB4001、視点位置情報管理DB4002およびユーザ情報管理DB4003が構築されている。部品情報管理DB4001は、後述する部品情報管理テーブルによって構成されている。
【0146】
三次元処理部45は、主に、図4に示したCPU401の処理によって実現され、各種三次元処理を行う機能である。
【0147】
生成部46は、ディスプレイ406aや端末装置10Aのディスプレイ106aやHMD8Aの表示部808R,808L等に表示させる各種画像データを生成する機能である。生成部46は、主に、図4に示したCPU401で実行されるプログラム等によって実現される。生成部46は、表示画面生成手段の一例である。
【0148】
<HMDの機能構成>
HMD8Aは、音出力部81、表示制御部82、受付部83、主制御部84、装着センサ部85、加速度センサ部86、音制御部87、及び通信部88を有している。これら各部は、図5に示されている各構成要素のいずれかが、ROM805からVRAM803上、又はROM809からRAM810上に展開されたHMD8A用プログラムに従ったCPU806からの命令によって動作することで実現される機能又は手段である。
【0149】
音出力部81は、主にCPU806の処理、及びスピーカ812R,812Lによって実現され、装着者(参加者)へ音を伝える。
【0150】
表示制御部82は、主にCPU806の処理、及び表示部808R,808Lによって実現され、選択した画像を表示する。
【0151】
表示制御部82は、図5に示した表示部808R,808Lに各種画面を表示させる機能である。表示制御部82は、主に、図5に示したパネルコントローラ804、およびCPU806で実行されるプログラム等によって実現される。
【0152】
主制御部84は、主にCPU806によって実現され、HMDの処理に必要な処理を表す。
【0153】
受付部83は、図5に示したユーザ操作部820等の入力手段に対するユーザ入力を受け付ける機能である。受付部83は、主に、図5に示したCPU806で実行されるプログラム等によって実現される。
【0154】
装着センサ部85は、主にCPU806の処理、及び装着センサ821によって実現され、参加者がHMD8Aを装着しているかを調べる処理を行う。加速度センサ部86は、主にCPU806の処理、及び加速度センサ822によって実現されHMD8Aの移動を検知する処理を行う。
【0155】
音制御部87は、主にCPU806の処理、及び音声DAC811によって実現され、HMD8Aから音を出す処理を制御する。
【0156】
通信部88は、端末装置10Aとの間で各種データ(または情報)の送受信を行う機能である。通信部88は、主に、CPU806の処理、及び信号送受信部801によって実現される。
【0157】
<コントローラの機能構成>
コントローラ20Aは、通信部21および受付部22を備える。これら各部は、図4に示した端末装置、サーバの構成要素と同様または簡略された各構成要素のいずれかが動作することで実現される機能又は機能する手段である。
【0158】
通信部21は、端末装置10Aとの間で各種データ(または情報)の送受信を行う機能である。通信部21は、主に、図4に示した近距離通信回路117と同様の通信回路によって実現される。
【0159】
受付部22は、図4に示したキーボード110a等と同様の入力手段に対するユーザ入力を受け付ける機能である。
【0160】
<検知装置の機能構成>
検知装置30Aは、通信部31および検知部32を備える。これら各部は、図4に示した端末装置、サーバの構成要素と同様または簡略された各構成要素のいずれかによって動作することで実現される機能又は機能する手段である。
【0161】
通信部31は、端末装置10Aとの間で各種データ(または情報)の送受信を行う機能である。通信部31は、主に、図4に示した近距離通信回路117と同様の通信回路で実行されるプログラム等によって実現される。
【0162】
検知部32は、赤外線カメラ等のセンサまたは検知デバイスの出力に基づき、HMD8Aおよびコントローラ20Aの位置や傾きを検知する機能である。
【0163】
図7は、本実施形態に係る部品情報管理テーブルの一例を示す概念図である。部品情報管理テーブルは、仮想空間に含まれる構造物を構成する部品の属性を示す属性情報を管理するためのテーブルである。記憶部4000には、図7に示されているような部品情報管理テーブルによって構成されている部品情報管理DB4001が構築されている。
【0164】
図7では、構造物が建造物である例を示すが、構造物は、医療用のシミュレーションなどに持ちられる臓器等であってもよく、その場合、部品情報管理テーブルは、臓器等を構成するパーツの属性を示す属性情報を管理する。
【0165】
この部品情報管理テーブルでは、属性情報として、仮想空間に含まれる構造物を識別する構造物データ毎に、部品NO、部材情報、寸法情報、色情報、材料情報、位置情報、および施工日情報が関連づけられて管理されている。
【0166】
部材情報は、部品により構成される壁、床、天井、窓、配管、およびドア等の部材を識別する情報である。
【0167】
寸法情報は、仮想空間における部品の寸法を識別する情報であり、例えば、XYZの3軸方向の数値で示される。
【0168】
色情報は、部品の色を識別する情報であり、材料情報は、部品の材料を識別する情報である。
【0169】
位置情報は、仮想空間における部品の位置を識別する情報であり、例えば、XYZの3軸方向の座標で示される。これにより、複数の部品のそれぞれが、隣り合っているか否か識別することが可能になる。
【0170】
施工日情報は、現実の世界において、部品が施工される予定日を示す情報である。これにより、ある時点において未施工の部品を除いた構造物を識別することが可能になる。
【0171】
図8は、本実施形態に係る視点位置情報管理テーブル、およびユーザ情報管理テーブルの一例を示す概念図である。
【0172】
図8(a)に示す視点位置情報管理テーブルは、複数の視点位置を管理するためのテーブルである。記憶部4000には、図8(a)に示されているような視点位置情報管理テーブルによって構成されている視点位置情報管理DB4002が構築されている。
【0173】
この視点位置情報管理テーブルでは、視点の識別情報、移動順、プレビュー画像、視点位置が含まれる空間情報、位置情報、視点の向きを示す方向情報、および視点における画角を示す画角情報が関連づけられて管理されている。
【0174】
後述するように、視点位置情報管理DB4002に記憶された移動順で複数の視点を順次移動させることにより、仮想空間におけるツアー機能を実現することができる。
【0175】
図8(b)に示すユーザ情報管理テーブルは、ユーザの権限を管理するためのテーブルである。記憶部4000には、図8(b)に示されているようなユーザ情報管理テーブルによって構成されているユーザ情報管理DB4003が構築されている。
【0176】
このユーザ情報管理テーブルでは、ユーザ名毎に、管理者、一般およびゲスト等の権限が関連づけられて管理されている。
【0177】
権限が一般であるユーザは、後述する単独移動操作およびツアー機能を開始する複数人移動操作を行うことが可能である。
【0178】
権限がゲストであるユーザは、後述する単独移動操作およびツアー機能を開始する複数人移動操作を行うことができないが、他のユーザが開始するツアー機能には参加可能である。
【0179】
権限が管理者であるユーザは、権限が一般であるユーザが可能な操作に加えて、ユーザ情報管理DB4003におけるユーザ毎の権限を設定、変更することができる。
【0180】
権限が管理者であるユーザは、一例として、操作が不慣れなユーザに対してご操作を行わないように権限をゲストに設定する。
【0181】
図9は、本実施形態に係る入出力画面の生成処理の一例を示すシーケンス図である。
【0182】
HMD8の受付部83は、ユーザがユーザ操作部820によりHMD8の電源を入れて装着し、HMD8の表示部808Lと808Rに表示された画像情報に基づいて、コントローラ20を用いて三次元データを選択する情報を入力すると、選択を受け付ける(ステップS1)。
【0183】
通信部88は、三次元データを選択する選択情報を端末装置10に対して送信し、端末装置10の通信部17は、HMD8から送信された選択情報を受信する(ステップS2)。
【0184】
送受信部11は、HMD8から受信した選択情報をサーバ40に対して送信し、サーバ40の送受信部41は、端末装置10から送信された選択情報を受信する(ステップS3)。
【0185】
記憶・読出部44は、ステップS3で受信された選択情報を検索キーとして部品情報管理DB4001を検索することで、選択情報に関連づけられた構造物データに係る部品の属性情報を読み出して、三次元処理部45は、記憶・読出部44が読みだした部品の属性情報に基づき、読み出した属性情報の部品により構成される構造物を含む仮想空間を生成する(ステップS4)。
【0186】
送受信部41は、ステップS4で生成した仮想空間を示す仮想空間情報を端末装置10に対して送信し、端末装置10の送受信部11は、サーバ40から送信された仮想空間情報を受信する(ステップS5)。
【0187】
HMD8の受付部83は、ユーザによるユーザ操作部820に対する各種操作を受け付ける(ステップS6)。
【0188】
通信部88は、ステップS6で受け付けた操作を示す操作情報を端末装置10に対して送信し、端末装置10の通信部17は、HMD8から送信された操作情報を受信する(ステップS7)。
【0189】
コントローラ20の受付部22は、図2で説明したユーザによる各種操作を受け付ける(ステップS8)。
【0190】
通信部21は、ステップS8で受け付けた操作を示す操作情報を端末装置10に対して送信し、端末装置10の通信部17は、コントローラ20から送信された操作情報を受信する(ステップS9)。
【0191】
検知装置30の検知部32は、HMD8およびコントローラ20の位置や傾きを検知する(ステップS10)。
【0192】
通信部31は、ステップS10で検知した情報を示す検知情報を端末装置10に対して送信し、端末装置10の通信部17は、検知装置30から送信された検知情報を受信する(ステップS11)。
【0193】
端末装置10の送受信部11は、ステップS7でHMD8から受信した操作情報、ステップS9でコントローラ20から受信した操作情報、およびステップS11で検知装置30から受信した検知情報をサーバ40に対して送信し、サーバ40の送受信部41は、端末装置10から送信されたこれらの情報を受信する(ステップS12)。そして、サーバ40の送受信部41は、端末装置10から受信したこれらの情報を他の端末装置に対して送信する。
【0194】
サーバ40の送受信部41は、ステップS12で受信した情報に対応する情報を他の端末装置から受信すると端末装置10に対して送信し、端末装置10の送受信部11は、サーバ40から送信された情報を受信する(ステップS13)。
【0195】
端末装置10の生成部15は、ステップS5で受信した仮想空間情報、ステップS7で受信した操作情報、ステップS9で受信した操作情報、ステップS11で受信した検知情報、およびステップS13で受信した情報に基づき、構造物を含む仮想空間を表示する入出力画面を生成する(ステップS14)。ステップS14は、表示画面生成ステップの一例である。
【0196】
端末装置10の通信部17は、ステップS14で生成した入出力画面を示す入出力画面情報をHMD8に対して送信し、HMD8の通信部88は、端末装置10から送信された入出力画面情報を受信する(ステップS15)。
【0197】
表示制御部82は、ステップS15で受信した入出力画面情報が示す入出力画面を表示部808R,808Lに表示させる(ステップS16)。ステップS16は、表示ステップの一例である。
【0198】
以上の処理において、サーバ40の生成部46が、端末装置10の生成部15に代わって、ステップS14と同様の処理を実行してもよい。
【0199】
この場合、サーバ40の生成部46は、ステップS4で生成した仮想空間、ステップS12で受信した各種情報、およびステップS13で他の端末装置から受信した情報に基づき、構造物を含む仮想空間を表示する入出力画面を生成する。
【0200】
そして、サーバ40の送受信部41は、生成した入出力画面を示す入出力画面情報を端末装置10に対して送信し、端末装置10の通信部17は、ステップS15と同様に、サーバ40から受信した入出力画面情報をHMD8に対して送信する。
【0201】
また、以上の処理は、HMD8、コントローラ20、および検知装置30が端末装置10に接続されていない場合でも、同様に実行可能である。
【0202】
端末装置10は、HMD8、コントローラ20、および検知装置30が接続されているか否かを検知し、これらが接続されていない場合は、「端末画面モード」を自動的に選択して実行する。
【0203】
「端末画面モード」では、端末装置10の受付部83が、ステップS1と同様に、ユーザがキーボート110a、マウス110b等の操作により三次元データを選択する情報を入力すると、選択を受け付ける。
【0204】
また、生成部15は、ステップS14と同様に、ステップS5で受信した仮想空間情報、キーボート110a、マウス110b等の操作による入力情報、およびステップS13で受信した情報に基づき、構造物を含む仮想空間を表示する入出力画面を生成する。
【0205】
そして、表示制御部13は、ステップS16と同様に、生成した入出力画面を端末装置10のディスプレイ116aに表示させる。HMD8の808L、808Rに表示される入出力画面は、常に一人称視点であるが、端末装置10のディスプレイ116aに表示される入出力画面は、キーボート110a、マウス110b等の操作により、第三者視点と一人称視点で切り替え可能である。
【0206】
図10は、本実施形態に係る移動処理の一例を示すフローチャートである。
【0207】
端末装置10の判断部16は、ユーザ情報管理DB4003に記憶されるユーザ情報に基づき、ユーザの権限がゲストか判断し(ステップS21)、ユーザの権限がゲストである場合は、ステップS30へ移行する。
【0208】
ステップS21でユーザの権限がゲストではない場合、判断部16は、通信部17がコントローラ20から受信した操作情報、および検知装置30から受信した検知情報に基づき、仮想空間内のオブジェクトを用いて視点位置が選択されたか判断する(ステップS22)。
【0209】
設定部18は、視点位置情報管理DB4002に記憶される視点位置情報に基づき、視点位置が選択された場合は、選択された視点位置を移動先に設定し(ステップS23)、視点位置が選択されない場合は、予め定められた視点位置を移動先に設定する(ステップS24)。
【0210】
ここで、予め定められた視点位置は、一例として、視点位置情報管理DB4002に記憶された視点位置情報に基づき、移動順が最初の視点位置や、前回移動した視点位置の次の移動順の視点位置等である。これにより、視点位置情報管理DB4002に記憶された移動順で複数の視点を順次移動させるツアー機能を実現する。
【0211】
判断部16は、通信部17がコントローラ20から受信した操作情報、および検知装置30から受信した検知情報に基づき、ユーザにより仮想空間内のオブジェクトを用いて単独移動操作がされたか判断し(ステップS25)、単独移動操作がされた場合は、ステップS29へ移行する。
【0212】
ステップS25で単独移動操作がされていない場合、判断部16は、通信部17がコントローラ20から受信した操作情報に基づき、ユーザにより複数人移動操作がされたか判断し(ステップS26)、複数人移動操作がされていない場合は、ステップS30へ移行する。
【0213】
ステップS25で複数人移動操作がされた場合、送受信部11は、ステップS23またはS24で設定されたユーザの移動先の視点の位置を示す視点位置情報、およびユーザの移動先の視点の近傍へ他のユーザの視点を移動するよう指示する指示情報を、サーバ40へ送信する(ステップS27)。
【0214】
そして、生成部15は、視点の周囲または画面全体を暗転させるとともに、ステップS23またはS24で設定された移動先へユーザの視点を移動した入出力画面を生成する(ステップS28)。これにより、ユーザに対して、瞬きに似た効果を与え視覚的な変化に順応できる余裕を与えて、瞬間的な視点移動に伴う酔いを軽減する。
【0215】
さらに、生成部15は、移動先のユーザの視点の近傍に、他のユーザのアバターを移動させた仮想空間を表示する入出力画面を生成する(ステップS29)。ここで、ユーザの移動先の視点の近傍は、ユーザの移動先の視点と同じ位置であってもよく、ユーザの移動先の視点からの視界を共有できる範囲内で、ユーザの移動先の視点から離れた位置であっても良い。
【0216】
これにより、ユーザは、仮想空間内で移動後の自分の視点の近傍に他のユーザの視点を移動させることができるため、自分が開始したツアーに他のユーザを参加させることができる。
【0217】
判断部16は、送受信部11が他のユーザの移動先の視点の位置を示す他の視点位置情報、および移動先の他のユーザの視点の近傍へユーザの視点を移動するよう指示する他の指示情報を受信したか判断する(ステップS30)。
【0218】
ステップS30で受信したと判断した場合には、生成部15は、視点の周囲または画面全体を暗転させるとともに、ステップS30で受信した他のユーザの移動先の視点の位置の近傍へユーザの視点を移動した入出力画面を生成する(ステップS31)。
【0219】
さらに、生成部15は、ステップS30で受信した他のユーザの移動先の視点の位置へ、他のユーザのアバターを移動させた仮想空間を表示する入出力画面を生成する(ステップS32)。
【0220】
これにより、ユーザは、仮想空間内で移動後の他のユーザの視点の近傍に自分の視点を移動することができるため、他のユーザが開始したツアーに参加することができる。
【0221】
以上において、ステップS28、S29、S31およびS32は、表示画面生成ステップの一例である。
【0222】
図11は、本実施形態に係る複数人移動処理の一例を示すシーケンス図である。
【0223】
ユーザBが使用するHMD8Bの表示制御部82Bは、ユーザBの視点の位置に応じた仮想空間を表示する入出力画面を表示部808RB,808LBに表示させ(ステップS41)、ユーザAが使用するHMD8Aの表示制御部82Aも、ユーザAの視点の位置に応じた仮想空間を表示する入出力画面を表示部808RA,808LAに表示させる(ステップS42)。ユーザA、B以外の他のユーザnも表示システム1に参加している場合、ユーザnが使用するHMD8nの表示制御部82nも、仮想空間を表示する入出力画面を表示部808Rn,808Lnに表示させる。
【0224】
ユーザAが使用するコントローラ20Aの受付部22Aは、図2で説明したユーザによる各種操作を受け付ける(ステップS43)。
【0225】
通信部21Aは、ステップS43で受け付けた操作を示す操作情報をユーザAが使用する端末装置10Aに対して送信し、端末装置10Aの通信部17Aは、コントローラ20Aから送信された操作情報を受信する(ステップS44)。
【0226】
ユーザAが使用する検知装置30Aの検知部32Aは、HMD8Aおよびコントローラ20Aの位置や傾きを検知する(ステップS45)。
【0227】
通信部31Aは、ステップS10で検知した情報を示す検知情報を端末装置10Aに対して送信し、端末装置10Aの通信部17Aは、検知装置30Aから送信された検知情報を受信する(ステップS46)。
【0228】
判断部16Aは、通信部17Aがコントローラ20Aから受信した操作情報に基づき、ユーザAにより複数人移動操作がされたか判断する(ステップS47)。
【0229】
ステップS47で複数人移動操作がされた場合、送受信部11Aは、図10のステップS23またはS24で設定されたユーザAの移動先の視点の位置を示す視点位置情報、およびユーザAの移動先の視点の近傍へユーザBを含む他のユーザの視点を移動するよう指示する指示情報を、サーバ40へ送信し、サーバ40の送受信部41は、これらの情報を受信する(ステップS48)。
【0230】
生成部15Aは、図10のステップS28およびS29で説明したように、設定された移動先へユーザAの視点を移動し、移動先のユーザAの視点の近傍に、ユーザBを含む他のユーザのアバターを移動させた仮想空間を表示する入出力画面を生成する(ステップS49)。
【0231】
端末装置10Aの通信部17Aは、ステップS49で生成した入出力画面を示す入出力画面情報をHMD8Aに対して送信し、HMD8Aの通信部88Aは、端末装置10Aから送信された入出力画面情報を受信する(ステップS50)。
【0232】
表示制御部82Aは、ステップS50で受信した入出力画面情報が示す入出力画面を表示部808RA,808LAに表示させる(ステップS51)。ステップS51は、表示ステップの一例である。
【0233】
また、サーバ40の送受信部41は、ステップS48で端末装置10Aから受信したユーザAの視点位置情報、および指示情報をユーザBが使用する端末装置Bに対して送信し、端末装置10Bの送受信部11Bは、これらの情報を受信する(ステップS52)。
【0234】
ユーザA、B以外の他のユーザnも表示システム1に参加している場合、サーバ40の送受信部41は、ステップS48で端末装置10Aから受信したユーザAの視点位置情報、および指示情報を他のユーザnが使用する端末装置10nに対して送信し、端末装置10nの送受信部11nは、これらの情報を受信する。
【0235】
同様に、サーバ40の送受信部41は、端末装置10nから受信したユーザnの視点位置情報、および指示情報を端末装置10Bに対して送信し、端末装置10Bの送受信部11Bは、これらの情報を受信する。
【0236】
生成部15Bは、図10のステップS31およびS32で説明したように、ユーザAの移動先の視点の位置の近傍へユーザBの視点を移動し、ユーザAの移動先の視点の位置へ、ユーザAのアバターを移動させた仮想空間を表示する入出力画面を生成する(ステップS53)。
【0237】
端末装置10Bの通信部17Bは、ステップS53で生成した入出力画面を示す入出力画面情報をHMD8Bに対して送信し、HMD8Bの通信部88Bは、端末装置10Bから送信された入出力画面情報を受信する(ステップS54)。
【0238】
表示制御部82Bは、ステップS54で受信した入出力画面情報が示す入出力画面を表示部808RB,808LBに表示させる(ステップS55)。ステップS55は、表示ステップの一例である。
【0239】
ユーザA、B以外の他のユーザnも表示システム1に参加している場合、他のユーザnが使用する端末装置10nおよびHMD8nは、ステップS53~S55と同様の処理を実行する。また、端末装置10BおよびHMD8Bは、ユーザAに代えて他のユーザnについて、ステップS53~S55と同様の処理を実行する。
【0240】
以上において、ステップS51およびS55は、表示ステップの一例である。
【0241】
以上の処理において、サーバ40の生成部46が、端末装置10Aの生成部15Aに代わって、ステップS49と同様の処理を実行してもよい。
【0242】
この場合、サーバ40の生成部46は、ステップS48で受信した情報に基づき、図10のステップS28およびS29で説明したように、設定された移動先へユーザAの視点を移動し、移動先のユーザAの視点の近傍に、ユーザBを含む他のユーザのアバターを移動させた仮想空間を表示する入出力画面を生成する。
【0243】
そして、サーバ40の送受信部41は、生成した入出力画面を示す入出力画面情報を端末装置10に対して送信し、端末装置10の通信部17は、ステップS50と同様に、サーバ40から受信した入出力画面情報をHMD8に対して送信する。
【0244】
また、以上の処理は、HMD8A、コントローラ20A、および検知装置30Aが端末装置10Aに接続されていない場合でも、同様に実行可能である。
【0245】
端末装置10Aは、HMD8A、コントローラ20A、および検知装置30Aが接続されているか否かを検知し、これらが接続されていない場合は、「端末画面モード」を自動的に選択して実行する。
【0246】
「端末画面モード」では、端末装置10Aの生成部15Aは、キーボート110a、マウス110b等による複数人移動操作に基づき、図10のステップS28およびS29で説明したように、設定された移動先へユーザAの視点を移動し、移動先のユーザAの視点の近傍に、ユーザBを含む他のユーザのアバターを移動させた仮想空間を表示する入出力画面を生成する。
【0247】
そして、表示制御部13Aは、ステップS51と同様に、生成した入出力画面を端末装置10Aのディスプレイ116aに表示させる。端末装置10Aのディスプレイ116aに表示される入出力画面は、キーボート110a、マウス110b等の操作により、第三者視点と一人称視点で切り替え可能である。
【0248】
図11に示した処理において、さらに、サーバ40の生成部46が、端末装置10Bの生成部15Bに代わって、ステップS53と同様の処理を実行してもよい。
【0249】
また、図11に示した処理は、HMD8B、コントローラ20B、および検知装置30Bが端末装置10Bに接続されていない場合でも、端末装置10Bにおける「端末画面モード」にて同様に実行可能である。
【0250】
図12は、本実施形態に係る入出力画面の説明図である。
【0251】
図10(a)に示す入出力画面2000は、カメラ902、およびユーザのアバターの手850を含む仮想空間を表示している。
【0252】
図10(b)に示す入出力画面2000は、図10(a)に示した状態から、ユーザが、コントローラ20を操作してアバターの手850によりカメラ902を掴み、カメラ902のプレビュー画面904を含む仮想空間を表示している。
【0253】
ユーザは、コントローラ20を移動してカメラ902を移動させることにより、プレビュー画面904による視界を変更し、登録したい視点位置を決めたら、コントローラ20のトリガー24をシャッターのように押下する。これにより、設定部18は、プレビュー画面904に示される視点位置を示す視点位置情報を設定し、送受信部11は設定された視点位置情報をサーバ40へ送信する。視点位置情報は、図8(a)で説明したように、プレビュー画像、視点位置が含まれる空間情報、位置情報、視点の向きを示す方向情報、および視点における画角を示す画角情報を含む。
【0254】
サーバ40の送受信部41は、端末装置10から送信された視点位置情報を受信し、記憶・読出部44は、送受信部41が受信した視点位置情報を視点位置情報管理DB4002に記憶して登録する。ここで、記憶・読出部44は、送受信部41が受信した視点位置情報を記憶して登録する順番を移動順の初期値として視点位置情報管理DB4002に記憶して登録する。
【0255】
図13は、本実施形態に係る入出力画面の第2の説明図である。
【0256】
図13(a)に示す入出力画面2000は、アバターの手から照射されるレーザ860と、レーザ先端のマーカーオブジェクト865と、視点選択画面910を含む仮想空間を表示している。
【0257】
視点選択画面910は、視点画面912A~912C、移動先候補画面914、選択ボタン916を含み、視点画面912A~912Cは、視点位置情報管理DB4002から読みだされた移動順に配置され、それぞれ視点位置情報管理DB4002から読みだされた視点位置毎のプレビュー画像を示す。
【0258】
図13(b)に示す入出力画面2000は、図13(a)に示した状態から、レーザ860が視点画面912Aに重なるように、ユーザが、コントローラ20を移動してレーザ860を移動させた状態の仮想空間を表示している。
【0259】
この状態で、判断部16は、図10のステップS22で説明したように、視点画面912Aが選択されたと判断して、生成部15は、移動先候補画面914に視点画面912Aを拡大表示した入出力画面2000を生成している。
【0260】
また、ユーザが、コントローラ20で所定の操作を行うと、設定部18は、視点画面912A~912Cの移動順を設定し、送受信部11は設定された移動順を示す情報を視点の識別情報と対応付けてサーバ40へ送信する。
【0261】
サーバ40の送受信部41は、端末装置10から送信された移動順を示す情報を受信し、記憶・読出部44は、送受信部41が受信した移動順を示す情報を視点の識別情報と対応付けて視点位置情報管理DB4002に記憶して登録する。
【0262】
図13(c)に示す入出力画面2000は、図13(b)に示した状態から、レーザ860が選択ボタン916に重なるように、ユーザが、コントローラ20を移動してレーザ860を移動させた状態の仮想空間を表示している。
【0263】
この状態で、判断部16は、図10のステップS25で説明したように、単独移動操作がされたと判断する。
【0264】
一方、図13(b)に示した状態において、ユーザが、コントローラ20で所定の操作を行うと、図10のステップS26で説明したように、複数人移動操作がされたと判断する。
【0265】
図14は、本実施形態に係る入出力画面の第3の説明図である。
【0266】
図14(a)に示す入出力画面2000は、図10のステップS25で説明した複数人移動操作を行う前のユーザAの視点の位置に応じた一人称視点での仮想空間を表示している。
【0267】
図14(b)に示す入出力画面2000は、複数人移動操作を行う前の第三者視点での仮想空間を表示しており、ユーザAのアバターの手850Aおよび頭855Aと、ユーザBのアバターの手850Bおよび頭855Bと、ユーザDのアバターの手850Dおよび頭855Dと、を含んでいる。
【0268】
図14(c)に示す入出力画面2000は、図14(a)に示した状態から、複数人移動操作により視点を移動する途中に、画面全体を暗転させる暗転画像870を表示している。
【0269】
図14(d)に示す入出力画面2000は、図14(a)に示した状態から複数人移動操作により、視点を移動した後のユーザAの視点の位置に応じた一人称視点での仮想空間を表示している。ここで、図14(d)に示す入出力画面2000の仮想空間は、図14(a)に示した入出力画面2000の仮想空間の視界外の空間、具体的には別の部屋における空間を示す。
【0270】
図14(e)に示す入出力画面2000は、図14(b)に示した状態から複数人移動操作により視点を移動した後の第三者視点での仮想空間を表示しており、図14(b)に示す入出力画面2000と同様に、ユーザAのアバターの手850Aおよび頭855Aと、ユーザBのアバターの手850Bおよび頭855Bと、ユーザDのアバターの手850Dおよび頭855Dと、を含むとともに、さらに、ユーザCのアバターの手850Cおよび頭855Cを含む。ここで、図14(e)に示す入出力画面2000の仮想空間は、図14(b)に示した入出力画面2000の仮想空間の視界外の空間、具体的には別の部屋における空間を示す。
【0271】
なお、図14(d)および図14(e)に示した状態において、ユーザA~Dの何れかが複数人移動操作を行うと、視点位置情報管理DB4002に記憶された移動順を示す情報に基づき、次の移動順の視点位置の近傍へ図14(c)~図14(e)と同様にユーザA~Dの全ての視点を移動することができる。
【0272】
図14(e)に示すように、生成部15は、ユーザAの複数人移動操作に基づき、ユーザAの視点を移動させた仮想空間を表示する入出力画面2000を生成する。これにより、ユーザAは、仮想空間内で自分の視点を所望の位置に移動することができる。
【0273】
また、生成部15は、ユーザAの複数人移動操作によりユーザAの視点が視界外の空間に移動するときに、ユーザAの視点の近傍に、他のユーザB~Dのアバターの手850B~Dおよび頭855B~Dを移動させた仮想空間を表示する入出力画面2000を生成する。
【0274】
これにより、端末装置10AにおけるユーザAの複数人移動操作に基づき、仮想空間内の視界外の移動先に複数のユーザA~Dの視点を集合させて、複数のユーザに対するツアー機能を実現することができる。
【0275】
そして、ユーザAは、図14(d)に示す入出力画面2000において左右を確認することにより、複数のユーザB~Dのアバター、すなわち視点が集合していることを認識できる。
【0276】
ここで、視界外の移動先は、図13(a)および(b)で説明したように、複数の候補を示す視点画面912A~921Cから選択された視点における空間である。よって、仮想空間内の複数の候補から選択された視界外の移動先に複数のユーザの視点を集合させることができる。なお、複数のユーザの視点を集合させる位置は、視点位置情報管理DB4002に登録された視点位置情報に限られず、ユーザAが複数人移動操作を行ったときのユーザAの視点の位置であってもよい。
【0277】
図15は、図14(e)に示した入出力画面2000の詳細説明図である。
【0278】
図15に示すように、ユーザAのアバターの手850Aおよび頭855Aと、ユーザBのアバターの手850Bおよび頭855Bと、ユーザCのアバターの手850Cおよび頭855Cと、ユーザDのアバターの手850Dおよび頭855Dは、移動後の仮想空間において、互いに重ならないように、所定の順番で同じ方向を向くように配置されている。
【0279】
すなわち、生成部15は、複数人移動操作を行ったユーザAの視点に対して予め定められた位置関係でユーザB~Dの視点を移動させた仮想空間を表示する入出力画面2000を生成する。
【0280】
一例として、複数人移動操作を行ったユーザAの視点を中心として、表示システム1にログインして参加した順番に、左隣、右隣、さらにその左隣のような順番で互いに所定の距離を空けてユーザB~Dの視点を配置したり、複数人移動操作を行ったユーザの視点の左隣等の特定の位置に特定のユーザの視点を配置したり、配置の順番を変更したり、してもよい。具体的には、ユーザの権限に基づき、例えばゲスト、一般、管理者の順に登録した視点から一番近い順に視点を配置してもよい。
【0281】
これにより、仮想空間内で複数のユーザの視点を予め定められた位置関係で集合させることができる。
【0282】
また、生成部15は、ユーザB~Dの視点に対応する位置にユーザB~Dのアバターの手850Bおよび頭855B~850Dおよび頭855Dを表示するとともに、これらアバターに重ならないように、複数人移動操作を行ったユーザAの視点を移動させた仮想空間を表示する入出力画面2000を生成する。すなわち、ユーザB~Dの視点及びアバターは、ユーザAの移動先の視点からの視界を共有できる範囲内で、ユーザAの移動先の視点から離れた位置に配置される。
【0283】
これにより、仮想空間内で複数のユーザの視点を集合させるときに、ユーザB~Dのアバターと複数人移動操作を行ったユーザAの視点が重ならないようにすることができる。
【0284】
視点が重なってしまうと、他のユーザのアバターとの距離が近すぎてしまい、仮想空間内でのパーソナルスペースが侵されて不快に感じるため、視点が重ならないようにしている。また、視点が重なるようにして、他のユーザのアバターとの距離が近い時は他のユーザのアバターを非表示にすることで、不快感を軽減することも可能である。
【0285】
さらに、生成部15は、ユーザB~Dの視点と同じ方向を向くように、複数人移動操作を行ったユーザAの視点を移動させた仮想空間を表示する入出力画面2000を生成する。これにより、仮想空間内で複数のユーザの視点を集合させて、複数のユーザに対する視界を共有するツアー機能を実現することができる。
【0286】
図16は、本実施形態に係る集合処理の一例を示すフローチャートである。
【0287】
端末装置10の判断部16は、ユーザ情報管理DB4003に記憶されるユーザ情報に基づき、ユーザの権限がゲストか判断し(ステップS61)、ユーザの権限がゲストである場合は、ステップS65へ移行する。
【0288】
ステップS61でユーザの権限がゲストではない場合、判断部16は、通信部17がコントローラ20から受信した操作情報に基づき、ユーザにより集合操作がされたか判断し(ステップS62)、集合操作がされていない場合は、ステップS65へ移行する。
【0289】
ステップS62で集合操作がされた場合、送受信部11は、ユーザの視点の位置を示す視点位置情報、およびユーザの視点の近傍へ他のユーザの視点を移動するよう指示する指示情報を、サーバ40へ送信する(ステップS63)。
【0290】
そして、生成部15は、ユーザの視点の近傍に、他のユーザのアバターを移動させた仮想空間を表示する入出力画面を生成する(ステップS64)。
【0291】
これにより、ユーザは、仮想空間内で自分の視点の近傍に他のユーザの視点を移動させることができるため、自分が開始したツアーに他のユーザを参加させることができる。
【0292】
判断部16は、送受信部11が他のユーザの視点の位置を示す他の視点位置情報、および他のユーザの視点の近傍へユーザの視点を移動するよう指示する他の指示情報を受信したか判断する(ステップS65)。
【0293】
ステップS65で受信したと判断した場合には、生成部15は、視点の周囲または画面全体を暗転させるとともに、ステップS65で受信した他のユーザの視点の位置の近傍へユーザの視点を移動した入出力画面を生成する(ステップS66)。これにより、ユーザは、仮想空間内で他のユーザの視点の近傍に自分の視点を移動することができるため、他のユーザが開始したツアーに参加することができる。
【0294】
図17は、本実施形態に係る集合処理の一例を示すシーケンス図である。
【0295】
ユーザBが使用するHMD8Bの表示制御部82Bは、ユーザBの視点の位置に応じた仮想空間を表示する入出力画面を表示部808RB,808LBに表示させ(ステップS71)、ユーザAが使用するHMD8Aの表示制御部82Aも、ユーザAの視点の位置に応じた仮想空間を表示する入出力画面を表示部808RA,808LAに表示させる(ステップS72)。ユーザA、B以外の他のユーザnも表示システム1に参加している場合、ユーザnが使用するHMD8nの表示制御部82nも、仮想空間を表示する入出力画面を表示部808Rn,808Lnに表示させる。
【0296】
ユーザAが使用するコントローラ20Aの受付部22Aは、図2で説明したユーザによる各種操作を受け付ける(ステップS73)。
【0297】
通信部21Aは、ステップS73で受け付けた操作を示す操作情報をユーザAが使用する端末装置10Aに対して送信し、端末装置10Aの通信部17Aは、コントローラ20Aから送信された操作情報を受信する(ステップS74)。
【0298】
ユーザAが使用する検知装置30Aの検知部32Aは、HMD8Aおよびコントローラ20Aの位置や傾きを検知する(ステップS75)。
【0299】
通信部31Aは、ステップS10で検知した情報を示す検知情報を端末装置10Aに対して送信し、端末装置10Aの通信部17Aは、検知装置30Aから送信された検知情報を受信する(ステップS76)。
【0300】
判断部16Aは、通信部17Aがコントローラ20Aから受信した操作情報に基づき、ユーザAにより集合操作がされたか判断する(ステップS77)。
【0301】
ステップS77で集合操作がされた場合、送受信部11Aは、ユーザAの視点の位置を示す視点位置情報、およびユーザAの視点の近傍へユーザBを含む他のユーザの視点を移動するよう指示する指示情報を、サーバ40へ送信し、サーバ40の送受信部41は、これらの情報を受信する(ステップS78)。
【0302】
生成部15Aは、ユーザAの視点の近傍に、ユーザBを含む他のユーザのアバターを移動させた仮想空間を表示する入出力画面を生成する(ステップS79)。
【0303】
端末装置10Aの通信部17Aは、ステップS79で生成した入出力画面を示す入出力画面情報をHMD8Aに対して送信し、HMD8Aの通信部88Aは、端末装置10Aから送信された入出力画面情報を受信する(ステップS80)。
【0304】
表示制御部82Aは、ステップS80で受信した入出力画面情報が示す入出力画面を表示部808RA,808LAに表示させる(ステップS81)。ステップS81は、表示ステップの一例である。
【0305】
また、サーバ40の送受信部41は、ステップS78で端末装置10Aから受信したユーザAの視点位置情報、および指示情報をユーザBが使用する端末装置Bに対して送信し、端末装置10Bの送受信部11Bは、これらの情報を受信する(ステップS82)。
【0306】
ユーザA、B以外の他のユーザnも表示システム1に参加している場合、サーバ40の送受信部41は、ステップS78で端末装置10Aから受信したユーザAの視点位置情報、および指示情報を他のユーザnが使用する端末装置10nに対して送信し、端末装置10nの送受信部11nは、これらの情報を受信する。
【0307】
同様に、サーバ40の送受信部41は、端末装置10nから受信したユーザnの視点位置情報、および指示情報を端末装置10Bに対して送信し、端末装置10Bの送受信部11Bは、これらの情報を受信する。
【0308】
生成部15Bは、図16のステップS66で説明したように、ユーザAの視点の位置の近傍へユーザBの視点を移動した仮想空間を表示する入出力画面を生成する(ステップS83)。
【0309】
端末装置10Bの通信部17Bは、ステップS83で生成した入出力画面を示す入出力画面情報をHMD8Bに対して送信し、HMD8Bの通信部88Bは、端末装置10Bから送信された入出力画面情報を受信する(ステップS84)。
【0310】
表示制御部82Bは、ステップS84で受信した入出力画面情報が示す入出力画面を表示部808RB,808LBに表示させる(ステップS85)。ステップS85は、表示ステップの一例である。
【0311】
ユーザA、B以外の他のユーザnも表示システム1に参加している場合、他のユーザnが使用する端末装置10nおよびHMD8nは、ステップS83~S85と同様の処理を実行する。また、端末装置10BおよびHMD8Bは、ユーザAに代えて他のユーザnについて、ステップS53~S55と同様の処理を実行する。
【0312】
図17に示した処理において、図11に示した処理と同様に、サーバ40の生成部46が、端末装置10Aの生成部15Aに代わってステップS79と同様の処理を実行したり、端末装置10Bの生成部15Bに代わってステップS83と同様の処理を実行したり、してもよい。
【0313】
また、図17に示した処理は、図11に示した処理と同様に、HMD8A、コントローラ20A、および検知装置30Aが端末装置10Aに接続されていない場合でも、端末装置10Aにおける「端末画面モード」にて同様に実行可能であり、HMD8B、コントローラ20B、および検知装置30Bが端末装置10Bに接続されていない場合でも、端末装置10Bにおける「端末画面モード」にて同様に実行可能である。
【0314】
●まとめ●
[第1態様]
以上説明したように、本発明の一実施形態に係る端末装置10は、ユーザの視点の位置に応じた仮想空間を表示するとともに、他のユーザの操作に基づき、他のユーザの視点を示す他の視点の近傍にユーザの視点を移動させた仮想空間を表示する入出力画面2000を生成する生成部15を備える。端末装置10は情報処理装置の一例であり、入出力画面2000は表示画面の一例であり、生成部15は表示画面生成手段の一例である。
【0315】
これにより、仮想空間内で複数のユーザの視点の位置を対応付けて集合させて、複数のユーザに対するツアー機能を実現することができる。
【0316】
[第2態様]
第1態様において、端末装置10Bは、他のユーザAの操作に基づき外部装置の一例である端末装置10Aから送信された、他のユーザAの視点の位置を示す他の視点位置情報、および他のユーザAの視点の近傍へユーザBの視点を移動するよう指示する他の指示情報を受信する送受信部11を備え、生成部15は、送受信部11が受信した他の視点位置情報および他の指示情報に基づき、他の視点の近傍にユーザBの視点を移動させた仮想空間を表示する入出力画面2000を生成する。
【0317】
これにより、端末装置10Aにおける他のユーザAの操作に基づき、仮想空間内で複数のユーザの視点を集合させることができる。
【0318】
[第3態様]
第1態様または第2態様において、生成部15は、他の視点が移動するときに、移動後の他の視点の近傍にユーザAの視点を移動させた仮想空間を表示する入出力画面2000を生成する。
【0319】
これにより、仮想空間内の所定の移動先に複数のユーザの視点を集合させることができる。
【0320】
[第4態様]
第3態様において、生成部15は、他の視点が視界外の空間に移動するときに、移動後の他の視点の近傍にユーザの視点を移動させた仮想空間を表示する入出力画面2000を生成する。
【0321】
これにより、仮想空間内の視界外の移動先に複数のユーザの視点を集合させることができる。
【0322】
なお、生成部15は、他の視点が視界内の位置に移動するときに、移動後の他の視点の近傍にユーザの視点を移動させた仮想空間を表示する入出力画面2000を生成してもよい。具体的には、生成部15は、他の視点が図2で説明したレーザポイント移動、透過移動、前方・後方移動、上昇・下降移動、押し込み移動、およびグリップ移動の何れかで移動するときに、移動後の他の視点の近傍にユーザの視点を移動させた仮想空間を表示する入出力画面2000を生成してもよい。
【0323】
[第5態様]
第4態様において、生成部15は、他の視点が複数の候補から選択された視界外の空間に移動するときに、移動後の他の視点の近傍にユーザの視点を移動させた仮想空間を表示する入出力画面2000を生成する。
【0324】
これにより、仮想空間内の複数の候補から選択された視界外の移動先に複数のユーザの視点を集合させることができる。
【0325】
[第6態様]
第1態様~第5態様の何れかにおいて、生成部15は、他の視点と同じ方向を向くようにユーザの視点を移動させた仮想空間を表示する入出力画面2000を生成する。
【0326】
これにより、仮想空間内で複数のユーザの視点を集合させて、複数のユーザに対する視界を共有するツアー機能を実現することができる。
【0327】
[第7態様]
第1態様~第6態様の何れかにおいて、生成部15は、他の視点に対して予め定められた位置関係でユーザの視点を移動させた仮想空間を表示する入出力画面2000を生成する。
【0328】
これにより、仮想空間内で複数のユーザの視点を予め定められた位置関係で集合させることができる。
【0329】
[第8態様]
第7態様において、生成部15は、他の視点に対応する位置に他のユーザのアバターを表示するとともに、アバターに重ならないように、ユーザの視点を移動させた仮想空間を表示する入出力画面2000を生成する。
【0330】
これにより、仮想空間内で複数のユーザの視点を集合させるときに、他のユーザのアバターと自分の視点が重ならないようにすることができる。
【0331】
[第9態様]
第1態様~第8態様の何れかにおいて、生成部15は、ユーザの操作に基づき、ユーザの視点を移動させた仮想空間を表示する入出力画面2000を生成する。
【0332】
これにより、仮想空間内で他のユーザの視点の近傍に自分の視点を移動するだけでなく、自分の視点も所望の位置に移動することができる。
【0333】
[第10態様]
第1態様~第9態様の何れかにおいて、端末装置10Aは、ユーザAの視点の位置を示す視点位置情報、およびユーザAの視点の近傍へ他のユーザBの視点を移動するよう指示する指示情報を、他のユーザBの視点の位置に応じた仮想空間を表示する入出力画面2000Bを生成する端末装置Bへ送信する送受信部11を備える。
【0334】
これにより、仮想空間内で他のユーザの視点の近傍に自分の視点を移動するだけでなく、自分の視点の近傍に他のユーザの視点を移動させることができる。
【0335】
[第11態様]
本発明の一実施形態に係る端末装置10は、ユーザの視点の位置に応じた仮想空間を表示するとともに、ユーザの操作に基づき、ユーザの視点の近傍に、他のユーザのアバターを移動させた仮想空間を表示する入出力画面2000を生成する生成部15を備える。
【0336】
これにより、仮想空間内で自分の視点の近傍に他のユーザのアバターを移動させることができるため、他のユーザの視点が集合していることが認識できる。
【0337】
[第12態様]
本発明の一実施形態に係る情報処理方法は、ユーザの視点の位置に応じた仮想空間を表示するとともに、他のユーザの操作に基づき、他のユーザの視点を示す他の視点の近傍にユーザの視点を移動させた仮想空間を表示する入出力画面2000を生成する入出力画面生成ステップを実行する。
【0338】
[第13態様]
本発明の一実施形態に係る情報処理方法は、ユーザの視点の位置に応じた仮想空間を表示するとともに、ユーザの操作に基づき、ユーザの視点の近傍に、他のユーザのアバターを移動させた仮想空間を表示する入出力画面2000を生成する入出力画面生成ステップを実行する。
【0339】
[第14態様]
本発明の一実施形態に係る情報処理方法は、ユーザの視点の位置に応じた仮想空間を表示するとともに、他のユーザの操作に基づき、他のユーザの視点を示す他の視点の近傍にユーザの視点を移動させた仮想空間を表示する表示ステップを実行する。
【0340】
[第15態様]
本発明の一実施形態に係る情報処理方法は、ユーザの視点の位置に応じた仮想空間を表示するとともに、ユーザの操作に基づき、ユーザの視点の近傍に、他のユーザのアバターを移動させた仮想空間を表示する表示ステップを実行する。
【0341】
[第16態様]
本発明の一実施形態に係るプログラムは、コンピュータに、第12態様~第15態様の何れか記載の情報処理方法を実行させるプログラム。
【0342】
[第17態様]
本発明の一実施形態に係る情報処理システムの一例である表示システム1は、互いに通信可能な第1、第2の情報処理装置の一例である端末装置10A、10Bを備え、端末装置10Aは、第1のユーザAの視点の位置に応じた第1の仮想空間を表示するとともに、第1のユーザAの操作に基づき、第1のユーザAの視点の近傍に第2のユーザBのアバターを移動させた第1の仮想空間を表示する第1の入出力画面2000Aを生成する第1の生成部15Aと、端末装置10Bに対して、第1のユーザAの視点の位置を示す第1の視点位置情報、および第1のユーザAの視点の近傍へ第2のユーザBの視点を移動するよう指示する指示情報を送信する送受信部11Aと、を備え端末装置10Bは、端末装置10Aから送信された、第1の視点位置情報、および指示情報を受信する送受信部11Bと、第2のユーザBの視点に応じた第2の仮想空間を表示するとともに、送受信部11Bにより受信された第1の視点位置情報および指示情報に基づき、第1のユーザAの視点の近傍に第2のユーザBの視点を移動させた第2の仮想空間を表示する第2の入出力画面2000Bを生成する第2の生成部15Bと、を備える。
【符号の説明】
【0343】
1 表示システム(情報処理システムの一例)
8 HMD(表示装置の一例)
82 表示制御部(表示制御手段の一例)
88 通信部(受信手段の一例)
808L、808R 表示部
10 端末装置(情報処理装置の一例)
11 送受信部(送信手段、受信手段の一例)
15 生成部(表示画面生成手段の一例)
17 通信部
20 コントローラ
30 位置検知装置
40 サーバ(情報処理装置の他の例)
50 ネットワーク
850 アバターの手
855 アバターの頭
860 レーザ
865 マーカーオブジェクト
870 暗転画像
902 カメラ
904 プレビュー画面
910 視点選択画面
912 視点画面
914 移動先候補画面
916 選択ボタン
2000 入出力画面(表示画面の一例)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17