JP6638326B2 - Information processing system, control method thereof, and program - Google Patents

Information processing system, control method thereof, and program Download PDF

Info

Publication number
JP6638326B2
JP6638326B2 JP2015213902A JP2015213902A JP6638326B2 JP 6638326 B2 JP6638326 B2 JP 6638326B2 JP 2015213902 A JP2015213902 A JP 2015213902A JP 2015213902 A JP2015213902 A JP 2015213902A JP 6638326 B2 JP6638326 B2 JP 6638326B2
Authority
JP
Japan
Prior art keywords
viewpoint
user
virtual space
moving amount
unit
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.)
Active
Application number
JP2015213902A
Other languages
Japanese (ja)
Other versions
JP2017084214A (en
Inventor
幸大 鬼丸
幸大 鬼丸
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.)
Canon Marketing Japan Inc
Canon IT Solutions Inc
Original Assignee
Canon Marketing Japan Inc
Canon IT Solutions 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 Canon Marketing Japan Inc, Canon IT Solutions Inc filed Critical Canon Marketing Japan Inc
Priority to JP2015213902A priority Critical patent/JP6638326B2/en
Publication of JP2017084214A publication Critical patent/JP2017084214A/en
Application granted granted Critical
Publication of JP6638326B2 publication Critical patent/JP6638326B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、仮想空間におけるユーザの視点の高さを変更した場合でも、適切な移動量で仮想空間を移動することの可能な情報処理システム、その制御方法、及びプログラムに関する。   The present invention relates to an information processing system capable of moving a virtual space by an appropriate amount of movement even when the height of a user's viewpoint in a virtual space is changed, a control method thereof, and a program.

従来技術として、三次元モデリングされたCG(ComputerGraphics、以下、三次元モデルという。)を含む画像を、現実空間を撮像した画像に重畳し、これを観察者に提示する仕組みが存在する。この仕組みを用いることで、観察者にあたかも現実空間中に三次元モデルが存在しているかのように見せることができる。この仕組みは、複合現実感(Mixed Reality、以下、MRという。)や拡張現実感と呼ばれている。   As a conventional technique, there is a mechanism that superimposes an image including a three-dimensionally modeled CG (Computer Graphics, hereinafter referred to as a three-dimensional model) on an image obtained by capturing a real space and presents this to an observer. By using this mechanism, it is possible to make an observer look as if a three-dimensional model exists in the real space. This mechanism is called Mixed Reality (hereinafter, referred to as MR) or Augmented Reality.

こうした仕組みにおいて、現実空間におけるユーザの視点の高さとは異なる高さに仮想空間上のユーザの視点を設定することで、現実空間とは異なるスケール感で仮想空間を提示する仕組みが特許文献1に開示されている。   In such a mechanism, Patent Document 1 discloses a mechanism for presenting a virtual space with a sense of scale different from that of the real space by setting the viewpoint of the user in the virtual space to a height different from the height of the viewpoint of the user in the real space. It has been disclosed.

特開平5−282279号公報JP-A-5-282279

ところで、複数の拠点において設計物のレビューを行う場合がある。この場合には、複数の拠点それぞれに存在する各ユーザに対して、レビュー対象の三次元モデルを含む同一の仮想空間を複合現実感によって提示する仕組みを用いることで、リアルタイムに情報共有を行うことができる。   By the way, there is a case where a design is reviewed at a plurality of bases. In this case, information sharing is performed in real time by using a mechanism that presents the same virtual space including the three-dimensional model to be reviewed to each user at each of the plurality of bases using mixed reality. Can be.

また、例えば設計物が建築物のように比較的大きなものである場合には、ユーザは建築物の内部や外部を確認することが多い。特に建築物の上部から俯瞰的に確認したい場合には、特許文献1に開示されている仕組みを適用することで、仮想空間上の視点の高さを変更すると共に、この高さに応じた移動量で視点を移動させることができる。こうすることにより、あたかも巨人になったかのような感覚で自由に歩き回って確認をすることができる。   Further, for example, when the design is relatively large like a building, the user often checks the inside or outside of the building. In particular, when it is desired to check the bird's-eye view from the top of the building, by applying the mechanism disclosed in Patent Document 1, the height of the viewpoint in the virtual space is changed, and the movement according to this height is performed. The viewpoint can be moved by an amount. By doing so, it is possible to freely walk around and confirm as if one had become a giant.

しかしながら、前述したレビューでは複数のユーザが参加して、自由に仮想空間内を見て回るため、特許文献1の仕組みを単純に適用してしまうと、すべてのユーザが同じ高さに設定されてしまう問題がある。すなわち、複数のユーザが閲覧している仮想空間は同一であるので、あるユーザが仮想空間上の視点の高さを変更すると、その設定変更が他のユーザにも適用されてしまい、他のユーザも同様に視点の高さが変更されてしまう問題がある。   However, in the above-mentioned review, since a plurality of users participate and freely look around in the virtual space, if the mechanism of Patent Document 1 is simply applied, all users are set to the same height. There is a problem. That is, since the virtual space viewed by a plurality of users is the same, if one user changes the height of the viewpoint in the virtual space, the setting change is applied to other users, and the other users are changed. Similarly, there is a problem that the height of the viewpoint is changed.

そのため、各ユーザが所望のスケール感で仮想空間を体験するには、順番にスケールを変更する必要があり、目的としないスケールで表示されているユーザに待ち時間が発生してしまう問題がある。   Therefore, in order for each user to experience the virtual space with a desired sense of scale, it is necessary to change the scale in order, and there is a problem in that a user displayed on an unintended scale has a waiting time.

また、ユーザごとに仮想空間上の視点の高さを変更できたとしても、ユーザの移動量をそのユーザの視点の高さに応じて調整しなければ、効率的にレビューをすることができない問題もある。例えば巨人のような視点で歩き回れたとしても、現実空間での移動量を仮想空間での移動量にそのまま適用してしまうと、なかなか前に進めないことになってしまう。巨人のような視点になったのであれば、歩幅、すなわち仮想空間での移動量も大きくする必要がある。   In addition, even if the height of the viewpoint in the virtual space can be changed for each user, the review cannot be efficiently performed unless the movement amount of the user is adjusted according to the height of the viewpoint of the user. There is also. For example, even if you can walk around from a viewpoint like a giant, if you apply the amount of movement in the real space as it is to the amount of movement in the virtual space, it will be difficult to move forward. If the viewpoint becomes like a giant, it is necessary to increase the stride, that is, the amount of movement in the virtual space.

しかしながら、特許文献1には仮想空間における視点の高さに応じて移動量を調整する仕組みが開示されているものの、ユーザごとにこうした調整を行う仕組みについては開示されていない。   However, Patent Literature 1 discloses a mechanism for adjusting the movement amount according to the height of the viewpoint in the virtual space, but does not disclose a mechanism for performing such adjustment for each user.

本発明は、仮想空間におけるユーザの視点の高さを変更した場合でも、ユーザごとの適切な移動量で仮想空間を移動することの可能な仕組みを提供することを目的とする。   An object of the present invention is to provide a mechanism capable of moving a virtual space by an appropriate amount of movement for each user even when the height of a user's viewpoint in the virtual space is changed.

上記の目的を達成するために本発明の情報処理システムは、仮想空間を提示するための情報処理システムであって、前記仮想空間に設定される視点の高さを変更するためのパラメータをユーザごとに記憶する記憶手段と、現実空間に存在するユーザの視点の高さに基づいて、前記仮想空間に当該ユーザの視点を設定する視点設定手段と、前記視点設定手段で設定された前記ユーザの視点の高さを、前記記憶手段に記憶される当該ユーザに対応する前記パラメータに応じて変更する視点変更手段と、前記現実空間における前記ユーザの移動量を取得する移動量取得手段と、前記移動量取得手段で移動量を取得されたユーザに対応する前記パラメータと前記移動量取得手段で取得した当該ユーザの移動量とを用いて、前記視点変更手段で変更された当該ユーザの視点の移動量を決定する移動量決定手段と、前記移動量決定手段で決定された移動量で前記ユーザの視点を移動する視点移動手段とを備えることを特徴とする。   In order to achieve the above object, an information processing system according to the present invention is an information processing system for presenting a virtual space, wherein a parameter for changing a height of a viewpoint set in the virtual space is set for each user. , A viewpoint setting unit for setting a viewpoint of the user in the virtual space based on a height of the viewpoint of the user existing in the real space, and a viewpoint of the user set by the viewpoint setting unit. Viewpoint changing means for changing the height of the user according to the parameter corresponding to the user stored in the storage means, moving amount obtaining means for obtaining the moving amount of the user in the real space, and the moving amount Using the parameter corresponding to the user whose moving amount has been acquired by the acquiring unit and the moving amount of the user acquired by the moving amount acquiring unit, the parameter is changed by the viewpoint changing unit. Characterized in that it comprises a moving amount determining means for determining the movement amount of the viewpoint of the user, and a viewpoint moving means for moving the viewpoint of the user by the movement amount determined by the movement amount determination means.

本発明によれば、仮想空間におけるユーザの視点の高さを変更した場合でも、ユーザごとの適切な移動量で仮想空間を移動することが可能となる。   According to the present invention, even when the height of the viewpoint of the user in the virtual space is changed, it is possible to move the virtual space with an appropriate movement amount for each user.

本発明の実施形態における情報処理システムのシステム構成の一例を示す図である。FIG. 1 is a diagram illustrating an example of a system configuration of an information processing system according to an embodiment of the present invention. MRシステムのシステム構成の一例を示す図である。FIG. 1 is a diagram illustrating an example of a system configuration of an MR system. クライアント装置101とHMD102のハードウェア構成の一例を示す図である。FIG. 2 is a diagram illustrating an example of a hardware configuration of a client device 101 and an HMD 102. サーバ装置103のハードウェア構成の一例を示す図である。FIG. 3 illustrates an example of a hardware configuration of a server device 103. クライアント装置101とサーバ装置103の機能構成の一例を示す図である。FIG. 2 is a diagram illustrating an example of a functional configuration of a client device 101 and a server device 103. クライアント装置101−1から仮想空間を配信し、各クライアント装置101で仮想空間を設定する処理の流れの一例を示すフローチャート。9 is a flowchart illustrating an example of the flow of processing for distributing a virtual space from a client device 101-1 and setting a virtual space in each client device 101. 現実空間におけるユーザの視点に基づいて、仮想空間におけるユーザの視点が設定された様子を示す図である。FIG. 4 is a diagram illustrating a state where a user's viewpoint in a virtual space is set based on the user's viewpoint in a real space. ユーザごとにスケールを設定する処理の流れの一例を示すフローチャートである。It is a flowchart which shows an example of the flow of the process which sets a scale for every user. スケール設定画面900の画面構成の一例を示す図である。FIG. 9 is a diagram illustrating an example of a screen configuration of a scale setting screen 900. ユーザ設定スケール情報1000、設定情報テーブル1010、クライアント情報テーブル1020、及びオブジェクト情報テーブル1030のテーブル構成の一例を示す図である。FIG. 9 is a diagram illustrating an example of a table configuration of user setting scale information 1000, a setting information table 1010, a client information table 1020, and an object information table 1030. 複合現実感提示処理の一例を示すフローチャートである。It is a flowchart which shows an example of a mixed reality presentation process. 現実空間におけるユーザの視点が移動した場合を示す図である。It is a figure showing the case where the user's viewpoint in real space moved. 仮想空間におけるユーザの視点が、ユーザごとに設定されたスケールに応じて変更された様子を示す図である。FIG. 4 is a diagram illustrating a state in which a user's viewpoint in a virtual space is changed according to a scale set for each user. 仮想空間におけるユーザの視点が、ユーザごとに設定されたスケールに応じた移動量で移動した様子を示す図である。FIG. 4 is a diagram illustrating a state in which a user's viewpoint in a virtual space has moved by a movement amount according to a scale set for each user. 仮想空間にユーザを示すアバターが配置された様子を示す図である。FIG. 4 is a diagram illustrating a state where an avatar indicating a user is arranged in a virtual space. スケール設定処理の一例を示すフローチャートである。It is a flowchart which shows an example of a scale setting process. 仮想空間においてユーザがオブジェクトを覗き込む様子を示す図である。FIG. 4 is a diagram illustrating a state in which a user looks into an object in a virtual space. 第2の実施形態における、スケール設定処理の一例を示す図である。FIG. 14 is a diagram illustrating an example of a scale setting process according to the second embodiment. 第2の実施形態における、オブジェクト情報テーブル1030のテーブル構成の一例を示す図である。FIG. 14 is a diagram illustrating an example of a table configuration of an object information table 1030 according to the second embodiment. 仮想空間に配置されたアバターの大きさが、オブジェクトごとに設定されたスケールに応じて変更される様子を示す図である。FIG. 9 is a diagram illustrating a state in which the size of an avatar arranged in a virtual space is changed according to a scale set for each object. 仮想空間に配置されたアバターがオブジェクトのいずれの方向から接触したかによって、オブジェクトに設定されたスケールを適用する/しないを決定する様子を示す図である。FIG. 9 is a diagram illustrating a state in which whether or not to apply a scale set to an object is determined depending on from which direction of an object an avatar arranged in a virtual space contacts.

以下、図面を参照しながら、本発明の第1の実施形態について説明する。   Hereinafter, a first embodiment of the present invention will be described with reference to the drawings.

図1は、第1の実施形態における情報処理システムのシステム構成の一例を示す図である。図1に示す情報処理システムは、複合現実感技術(以下、MR技術という。)を用いた、複数の拠点のユーザに同一の仮想空間を閲覧・共有させるためのシステムである。情報処理システムは、クライアント装置101にHMD102が相互にデータ通信可能に接続される複数のMRシステムを含み、各MRシステムのクライアント装置101は、ネットワークを介してサーバ装置103と通信可能に接続されている。クライアント装置101とHMD102との接続は、有線接続であってもよいし、無線接続であってもよい。また、情報処理システムに含まれるMRシステムはいくつ存在してもよい。本実施形態では、クライアント装置101−1とHMD102−1とが接続されるMRシステムと、クライアント装置101−2とHMD102−2とが接続されるMRシステムと、その他複数のMRシステムとを含む情報処理システムとして説明を行う。また、MRシステムは部屋ごとに設けてもよいし、同一の部屋に設けてもよいため、本実施形態では拠点ごとに設けるものとして説明するがこれに限定されない。尚、図1のシステム上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例がある。   FIG. 1 is a diagram illustrating an example of a system configuration of the information processing system according to the first embodiment. The information processing system shown in FIG. 1 is a system that uses a mixed reality technology (hereinafter, referred to as an MR technology) to allow users at a plurality of bases to browse and share the same virtual space. The information processing system includes a plurality of MR systems in which the HMD 102 is connected to the client device 101 so that data can be communicated with each other. The client device 101 of each MR system is communicably connected to the server device 103 via a network. I have. The connection between the client device 101 and the HMD 102 may be a wired connection or a wireless connection. Also, any number of MR systems may be included in the information processing system. In the present embodiment, information including an MR system in which the client device 101-1 and the HMD 102-1 are connected, an MR system in which the client device 101-2 and the HMD 102-2 are connected, and a plurality of other MR systems Description will be given as a processing system. Further, since the MR system may be provided for each room or may be provided in the same room, the present embodiment will be described as being provided for each base, but is not limited to this. Note that the configuration of various terminals connected to the system in FIG. 1 is an example, and there are various configuration examples according to applications and purposes.

クライアント装置101は、汎用的なコンピュータである。クライアント装置101は、HMD102で撮影(撮像)された現実空間の画像(以下、現実空間画像という。)と、クライアント装置101で生成された仮想空間の画像(以下、仮想空間画像という。)とを重畳する。こうして生成された画像(以下、複合現実画像という。)を、HMD102に送信する。尚、MR技術に関しては従来技術を用いるため、詳細な説明は省略する。また、クライアント装置101は、パーソナルコンピュータであってもよいし、サーバのような大型のコンピュータであってもよい。更には、携帯電話やタブレット端末といった携帯端末であってもよい。コンピュータの種類は特に問わない。また、拠点ごとにクライアント装置101を設置せず、1台のクライアント装置101で処理するようにしてもよい。すなわち、1台のクライアント装置101が本実施形態における各MRシステムを構築してもよい。更には、クライアント装置101が設置される場所は特に問わない。   The client device 101 is a general-purpose computer. The client device 101 captures an image of a real space (hereinafter, referred to as a real space image) captured (captured) by the HMD 102 and a virtual space image (hereinafter, referred to as a virtual space image) generated by the client device 101. Superimpose. The image generated in this manner (hereinafter, referred to as a mixed reality image) is transmitted to the HMD 102. Since a conventional technique is used for the MR technique, a detailed description is omitted. The client device 101 may be a personal computer or a large-sized computer such as a server. Furthermore, a mobile terminal such as a mobile phone or a tablet terminal may be used. The type of computer is not particularly limited. Further, the processing may be performed by one client device 101 without installing the client device 101 at each base. That is, one client device 101 may construct each MR system in the present embodiment. Further, the place where the client apparatus 101 is installed is not particularly limited.

HMD102は、ヘッドマウントディスプレイである。HMD102は、ユーザの頭部に装着する装置であり、右目用と左目用のビデオカメラと、右目用と左目用のディスプレイを備えている。HMD102は、HMD102のビデオカメラで撮影された現実空間画像をクライアント装置101に送信する。そして、クライアント装置101から複合現実画像を受信し、ディスプレイに表示する。HMD102では、右目用と左目用のディスプレイを設けているので、視差によって立体感を得ることができる。尚、HMD102で撮影する現実空間画像とHMD102で表示する複合現実画像は、動画(映像)が望ましいが、所定の間隔で撮影された静止画であってもよい。また、スマートフォンのようにディスプレイとビデオカメラがハードウェアの前面と背面に設置されている装置を、ヘッドマウントディスプレイの代用としてもよい。   The HMD 102 is a head mounted display. The HMD 102 is a device that is mounted on the user's head, and includes a right-eye and left-eye video camera, and a right-eye and left-eye display. The HMD 102 transmits a physical space image captured by the video camera of the HMD 102 to the client device 101. Then, the mixed reality image is received from the client device 101 and displayed on the display. Since the HMD 102 is provided with a display for the right eye and a display for the left eye, a stereoscopic effect can be obtained by parallax. The physical space image captured by the HMD 102 and the mixed reality image displayed by the HMD 102 are preferably moving images (videos), but may be still images captured at predetermined intervals. Also, a device such as a smartphone in which a display and a video camera are installed on the front and back of hardware may be used as a substitute for the head mounted display.

図2は、各拠点のMRシステムのシステム構成の一例を示す図である。前述した通り、クライアント装置101はHMD102と通信可能に接続されている。更に、クライアント装置101には赤外線カメラ202が接続されている。赤外線カメラ202は、赤外線を用いた光学式のセンサである。赤外線カメラ202は、現実空間に赤外線を照射し、現実空間の物体で反射した赤外線を撮影することにより、赤外線カメラ202が定義する座標系における、現実空間の物体の位置及び姿勢を特定する。この赤外線カメラ202を用いて、現実空間におけるHMD102(すなわちユーザ)の位置及び姿勢(向きや傾き、視線の方向等。以下、同じ。)を特定する。HMD102には、オプティカルマーカ201という赤外線を反射する物体を備えており、赤外線カメラ202はこのオプティカルマーカ201で反射した赤外線を撮影することで、HMD102の位置及び姿勢を特定できるようになっている。ユーザがどのような位置や姿勢であっても、当該ユーザが装着するHMD102のオプティカルマーカ201を撮影または検知できるように、MRシステムでは赤外線カメラ202を複数台設置することが望ましい。また、位置及び姿勢を特定可能なHMD102は、赤外線カメラ202の撮影範囲に存在するHMD102である。   FIG. 2 is a diagram illustrating an example of a system configuration of the MR system at each base. As described above, the client device 101 is communicably connected to the HMD 102. Further, an infrared camera 202 is connected to the client device 101. The infrared camera 202 is an optical sensor using infrared light. The infrared camera 202 irradiates the real space with infrared light and captures the infrared light reflected by the physical space object, thereby specifying the position and orientation of the real space object in the coordinate system defined by the infrared camera 202. Using the infrared camera 202, the position and orientation (direction, inclination, direction of line of sight, etc. of the HMD 102 (ie, user) in the real space) are specified. The HMD 102 is provided with an object that reflects infrared light called an optical marker 201, and the infrared camera 202 can specify the position and orientation of the HMD 102 by photographing the infrared light reflected by the optical marker 201. Regardless of the position and posture of the user, it is desirable to install a plurality of infrared cameras 202 in the MR system so that the optical marker 201 of the HMD 102 worn by the user can be photographed or detected. Further, the HMD 102 whose position and orientation can be specified is the HMD 102 existing in the shooting range of the infrared camera 202.

尚、本実施形態においては、現実空間におけるHMD102の位置及び姿勢を特定するために、赤外線カメラ202を用いるが、HMD102の現実空間における位置及び姿勢を特定できるのであれば、これに限らない。例えば、磁気センサを用いてもよいし、HMD102が撮影した画像を解析して位置及び姿勢を特定してもよい。   In the present embodiment, the infrared camera 202 is used to specify the position and the posture of the HMD 102 in the real space. However, the present invention is not limited to this, as long as the position and the posture of the HMD 102 in the real space can be specified. For example, a magnetic sensor may be used, or an image captured by the HMD 102 may be analyzed to specify the position and orientation.

図3は、クライアント装置101とHMD102の各ハードウェア構成の一例を示す図である。   FIG. 3 is a diagram illustrating an example of each hardware configuration of the client device 101 and the HMD 102.

CPU301は、システムバス304に接続される各デバイスやコントローラを統括的に制御する。   The CPU 301 controls each device and controller connected to the system bus 304 as a whole.

また、ROM302あるいは外部メモリ311には、CPU301の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムが記憶されている。更には、各種装置の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM303は、CPU301の主メモリ、ワークエリア等として機能する。   The ROM 302 or the external memory 311 stores a basic input / output system (BIOS) and an operating system, which are control programs for the CPU 301. Further, various programs and the like, which will be described later, necessary for realizing the functions executed by the various devices are stored. The RAM 303 functions as a main memory, a work area, and the like for the CPU 301.

CPU301は、処理の実行に際して必要なプログラム等をRAM303にロードして、プログラムを実行することで各種動作を実現するものである。   The CPU 301 loads various programs and the like necessary for executing the processing into the RAM 303 and executes the programs to realize various operations.

また、入力コントローラ(入力C)305は、キーボードやマウス等のポインティングデバイス(入力デバイス310)からの入力を制御する。   An input controller (input C) 305 controls an input from a pointing device (input device 310) such as a keyboard or a mouse.

クライアント装置101のビデオコントローラ(VC)306は、HMD102が備える右目・左目ディスプレイ322やディスプレイ312等の表示器への表示を制御する。右目・左目ディスプレイ322に対しては、例えば外部出力端子(例えば、Digital Visual Interface)を用いて出力される。また、右目・左目ディスプレイ322は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、ディスプレイ312は、液晶ディスプレイ等であり、右目・左目ディスプレイ322と同様の表示、または仮想空間を操作するためのGUI(Graphical User Interface)が表示される。   A video controller (VC) 306 of the client device 101 controls display on a display such as a right-eye / left-eye display 322 or a display 312 included in the HMD 102. The right-eye / left-eye display 322 is output using, for example, an external output terminal (for example, a Digital Visual Interface). The right-eye / left-eye display 322 includes a right-eye display and a left-eye display. The display 312 is a liquid crystal display or the like, and displays the same display as the right-eye / left-eye display 322 or a GUI (Graphical User Interface) for operating a virtual space.

メモリコントローラ(MC)307は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部メモリ311(記憶手段)へのアクセスを制御する。外部メモリ311は、例えばハードディスク(HD)やフレキシブルディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等がある。   A memory controller (MC) 307 controls access to an external memory 311 (storage unit) that stores a boot program, browser software, various applications, font data, user files, edit files, various data, and the like. The external memory 311 is, for example, a hard disk (HD), a flexible disk (FD), or a card type memory connected to a PCMCIA card slot via an adapter.

通信I/Fコントローラ(通信I/FC)308は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。特に、クライアント装置101の通信I/Fコントローラ308は、赤外線カメラ202との通信も制御する。   A communication I / F controller (communication I / FC) 308 is for connecting and communicating with an external device via a network, and executes communication control processing on the network. For example, Internet communication using TCP / IP is possible. In particular, the communication I / F controller 308 of the client device 101 also controls communication with the infrared camera 202.

クライアント装置101の汎用バス309は、クライアント装置101に接続されるHMD102の右目・左目ビデオカメラ321で撮影した画像を取り込むために使用される。右目・左目ビデオカメラ321からは、外部入力端子(例えば、IEEE1394端子)を用いて入力される。また、右目・左目ビデオカメラ321は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。   The general-purpose bus 309 of the client device 101 is used to capture an image captured by the right-eye / left-eye video camera 321 of the HMD 102 connected to the client device 101. Input is made from the right-eye and left-eye video cameras 321 using an external input terminal (for example, an IEEE1394 terminal). The right-eye / left-eye video camera 321 includes a right-eye video camera and a left-eye video camera.

尚、CPU301は、例えばRAM303内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ上での表示を可能としている。また、CPU301は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。   Note that the CPU 301 enables the display on the display by executing the processing (rasterizing) of the outline font in the display information area in the RAM 303, for example. Further, the CPU 301 enables a user instruction with a mouse cursor (not shown) on the display.

本発明のクライアント装置101が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ311に記録されており、必要に応じてRAM303にロードされることによりCPU301によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ311に格納されている。   Various programs and the like used by the client device 101 of the present invention to execute various processes described below are recorded in the external memory 311 and are executed by the CPU 301 by being loaded into the RAM 303 as necessary. . Further, definition files and various information tables used by the program according to the present invention are stored in the external memory 311.

図4は、サーバ装置103のハードウェア構成を示す図である。尚、図4に示すハードウェア構成はあくまで一例である。   FIG. 4 is a diagram illustrating a hardware configuration of the server device 103. Note that the hardware configuration shown in FIG. 4 is merely an example.

CPU401は、システムバス404に接続される各デバイスやコントローラを統括的に制御する。   The CPU 401 controls all devices and controllers connected to the system bus 404.

また、ROM402あるいは外部メモリ411には、CPU401の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムプログラムが記憶されている。また外部メモリ411には、サーバ装置103が実行する機能を実現するために必要な各種プログラム等が記憶されている。RAM403は、CPU401の主メモリ、ワークエリア等として機能する。   The ROM 402 or the external memory 411 stores a basic input / output system (BIOS) and an operating system program, which are control programs for the CPU 401. Further, the external memory 411 stores various programs and the like necessary for realizing the functions executed by the server device 103. The RAM 403 functions as a main memory, a work area, and the like for the CPU 401.

CPU401は、処理の実行に際して必要なプログラム等をRAM403にロードして、プログラムを実行することで各種動作を実現するものである。   The CPU 401 loads various programs and the like necessary for executing processing into the RAM 403, and realizes various operations by executing the programs.

また、入力コントローラ405は、キーボードやマウス等のポインティングデバイスといった入力デバイス409からの入力を制御する。   The input controller 405 controls input from an input device 409 such as a pointing device such as a keyboard and a mouse.

ビデオコントローラ406は、ディスプレイ412等の表示器への表示を制御する。表示器はCRTや液晶ディスプレイでも構わない。   The video controller 406 controls display on a display such as the display 412. The display may be a CRT or a liquid crystal display.

メモリコントローラ407は、ハードディスクやフレキシブルディスク或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ411へのアクセスを制御する。外部メモリ411(記憶手段)は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する。   The memory controller 407 controls access to an external memory 411 such as a hard disk, a flexible disk, or a card-type memory connected to a PCMCIA card slot via an adapter. The external memory 411 (storage means) stores a boot program, browser software, various applications, font data, user files, edit files, various data, and the like.

通信I/Fコントローラ408は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。   The communication I / F controller 408 connects and communicates with an external device via a network, and executes communication control processing on the network. For example, Internet communication using TCP / IP is possible.

尚、CPU401は、例えばRAM403内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ412上での表示を可能としている。また、CPU401は、ディスプレイ412上の不図示のマウスカーソル等でのユーザ指示を可能とする。   Note that the CPU 401 enables the display on the display 412 by executing the processing (rasterizing) of the outline font in the display information area in the RAM 403, for example. Further, the CPU 401 enables a user instruction with a mouse cursor (not shown) on the display 412.

本発明のサーバ装置103が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ411に記録されている。この各種プログラム等は必要に応じてRAM403にロードされることによりCPU401によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ411に格納されている。   Various programs and the like used by the server device 103 of the present invention to execute various processes described below are recorded in the external memory 411. These various programs and the like are executed by the CPU 401 by being loaded into the RAM 403 as necessary. Further, definition files and various information tables used by the program according to the present invention are stored in the external memory 411.

図5は、クライアント装置101とサーバ装置103の機能構成を示す機能構成図である。尚、図5のクライアント装置101とサーバ装置103の機能構成は一例であり、用途や目的に応じて様々な構成例がある。   FIG. 5 is a functional configuration diagram showing a functional configuration of the client device 101 and the server device 103. Note that the functional configuration of the client apparatus 101 and the server apparatus 103 in FIG. 5 is merely an example, and there are various exemplary configurations according to applications and purposes.

クライアント装置101は機能部として、通信制御部501と、位置姿勢取得部502と、位置姿勢特定部503と、現実空間画像取得部504と、仮想空間生成部505と、仮想空間画像取得部506と、複合現実画像生成部507とを備える。また、表示制御部508と、記憶部509と、オブジェクト制御部510と、視点制御部511と、スケール設定部512とを備える。   The client device 101 includes, as functional units, a communication control unit 501, a position and orientation acquisition unit 502, a position and orientation identification unit 503, a real space image acquisition unit 504, a virtual space generation unit 505, and a virtual space image acquisition unit 506. , A mixed reality image generation unit 507. The display control unit 508 includes a display control unit 508, a storage unit 509, an object control unit 510, a viewpoint control unit 511, and a scale setting unit 512.

通信制御部501は、クライアント装置101と通信可能なHMD102と赤外線カメラ202との各種情報の送受信を行う機能部である。通信制御部501は、前述したビデオコントローラ306、通信I/Fコントローラ308、汎用バス309等を通じてこれらの装置と情報の送受信を行う。また、通信制御部501は、他のクライアント装置101とサーバ装置103との各種情報の送受信も行う。   The communication control unit 501 is a functional unit that transmits and receives various types of information between the HMD 102 and the infrared camera 202 that can communicate with the client device 101. The communication control unit 501 transmits and receives information to and from these devices through the above-described video controller 306, communication I / F controller 308, general-purpose bus 309, and the like. The communication control unit 501 also transmits and receives various information between the other client apparatuses 101 and the server apparatus 103.

位置姿勢取得部502は、オプティカルマーカ201を備える装置の現実空間における位置及び姿勢(向き)を示す情報を赤外線カメラ202から取得する機能部である。本実施形態では、HMD102がオプティカルマーカ201を備えているため、位置姿勢取得部502は赤外線カメラ202が解析した、現実空間におけるHMD102の位置及び姿勢(HMD102を装着しているユーザの位置及び姿勢。以下同じ。)を示す情報を取得する。また、位置姿勢取得部502は、現実空間画像取得部504で右目・左目ビデオカメラ321から取得した右目用の現実空間画像と左目用の現実空間画像とを用いて、三角測量等の方法により、現実空間の物体の位置及び姿勢を特定することもできる。   The position and orientation acquisition unit 502 is a functional unit that acquires information indicating the position and orientation (direction) in the real space of the device including the optical marker 201 from the infrared camera 202. In this embodiment, since the HMD 102 includes the optical marker 201, the position and orientation acquisition unit 502 analyzes the position and orientation of the HMD 102 in the real space (the position and orientation of the user wearing the HMD 102) analyzed by the infrared camera 202. The same applies hereinafter). Further, the position and orientation acquisition unit 502 uses the real space image for the right eye and the real space image for the left eye acquired by the real space image acquisition unit 504 from the right-eye and left-eye video cameras 321 by using a method such as triangulation. The position and orientation of an object in the real space can be specified.

位置姿勢特定部503は、位置姿勢取得部502で取得した、現実空間におけるHMD102の位置及び姿勢(向き)に対応する仮想空間上の位置及び姿勢(向き)を特定する機能部である。現実空間の座標系(赤外線カメラ202の座標系)と仮想空間の座標系とはあらかじめキャリブレーションがなされており、現実空間と仮想空間とが対応付けられている。つまり、この対応付けに基づいて現実空間におけるHMD102の位置及び姿勢に対応する仮想空間上の位置及び姿勢を特定する。   The position and orientation specifying unit 503 is a functional unit that specifies the position and orientation (orientation) in the virtual space corresponding to the position and orientation (orientation) of the HMD 102 in the real space acquired by the position and orientation acquisition unit 502. The coordinate system of the real space (the coordinate system of the infrared camera 202) and the coordinate system of the virtual space are calibrated in advance, and the real space and the virtual space are associated with each other. That is, the position and the posture in the virtual space corresponding to the position and the posture of the HMD 102 in the real space are specified based on this association.

現実空間画像取得部504は、HMD102の右目・左目ビデオカメラ321で撮影された現実空間画像を取得する機能部である。   The physical space image acquisition unit 504 is a functional unit that acquires a physical space image captured by the right-eye / left-eye video camera 321 of the HMD 102.

仮想空間生成部505は、クライアント装置101の外部メモリ311に記憶されている情報に基づいて仮想空間を生成する機能部である。仮想空間はクライアント装置101の内部に生成される仮想的な空間であるので、その空間の形や大きさに関する情報が外部メモリ311に記憶されており、これに基づいて仮想空間を生成する。仮想空間には三次元モデルからなるオブジェクトを配置可能である。オブジェクトはオブジェクト制御部510によって配置される。   The virtual space generation unit 505 is a functional unit that generates a virtual space based on information stored in the external memory 311 of the client device 101. Since the virtual space is a virtual space generated inside the client apparatus 101, information on the shape and size of the space is stored in the external memory 311 and the virtual space is generated based on the information. An object composed of a three-dimensional model can be arranged in the virtual space. The objects are arranged by the object control unit 510.

仮想空間画像取得部506は、仮想空間生成部505で生成した仮想空間の画像を取得する機能部である。仮想空間画像取得部506が仮想空間の画像を取得する場合には、位置姿勢特定部503で特定した仮想空間におけるHMD102の位置及び姿勢に基づいて視点制御部511が仮想空間上の視点を設定する。そして、当該視点から見た場合の仮想空間画像を生成し、これを取得する。この視点に仮想的なカメラを設置し、仮想空間を撮像するようにすればよい。すなわちレンダリングする。   The virtual space image acquisition unit 506 is a functional unit that acquires an image of the virtual space generated by the virtual space generation unit 505. When the virtual space image acquisition unit 506 acquires an image of the virtual space, the viewpoint control unit 511 sets a viewpoint in the virtual space based on the position and orientation of the HMD 102 in the virtual space identified by the position and orientation identification unit 503. . Then, a virtual space image when viewed from the viewpoint is generated and acquired. A virtual camera may be installed at this viewpoint to capture an image of the virtual space. That is, rendering is performed.

複合現実画像生成部507は、現実空間画像取得部504で取得した現実空間画像に仮想空間画像取得部506で取得した仮想空間画像を重畳することにより、複合現実画像を生成する機能部である。   The mixed reality image generation unit 507 is a functional unit that generates a mixed reality image by superimposing the virtual space image acquired by the virtual space image acquisition unit 506 on the real space image acquired by the real space image acquisition unit 504.

表示制御部508は、クライアント装置101に接続されたHMD102の右目・左目ディスプレイ322やクライアント装置101に接続されたディスプレイ312における各種情報の表示制御を行う機能部である。特に、複合現実画像生成部507で生成された複合現実画像をHMD102の右目・左目ディスプレイ322に表示させる機能を有する。   The display control unit 508 is a functional unit that controls display of various types of information on the right eye / left eye display 322 of the HMD 102 connected to the client device 101 and the display 312 connected to the client device 101. In particular, the HMD 102 has a function of displaying the mixed reality image generated by the mixed reality image generation unit 507 on the right-eye / left-eye display 322 of the HMD 102.

記憶部509は、後述する各種テーブルの情報や仮想空間を生成するための情報、オブジェクト等の情報を記憶するための機能部である。必要に応じて、情報の追加・更新・削除を行う。本実施形態においては、共通の仮想空間やオブジェクトが各クライアント装置101の記憶部509で記憶されるものとして説明を行う。   The storage unit 509 is a functional unit for storing information of various tables to be described later, information for generating a virtual space, and information such as objects. Add / update / delete information as necessary. In the present embodiment, a description will be given assuming that a common virtual space and an object are stored in the storage unit 509 of each client device 101.

オブジェクト制御部510は、三次元モデルからなるオブジェクトを仮想空間に配置するための機能部である。仮想空間が生成された場合には、あらかじめ定義された位置及び姿勢でオブジェクトを配置する。必要に応じて、配置されたオブジェクトを異なる位置及び姿勢で再配置する。   The object control unit 510 is a functional unit for arranging an object composed of a three-dimensional model in a virtual space. When a virtual space is generated, an object is arranged at a predefined position and orientation. If necessary, the arranged objects are rearranged at different positions and postures.

視点制御部511は、現実空間に存在するユーザの位置及び姿勢に基づいて、仮想空間に当該ユーザの視点を設定するための機能部である。現実空間に存在するユーザの位置及び姿勢は、すなわちHMD102の位置及び姿勢である。そのため、HMD102が備えるオプティカルマーカ201の位置及び姿勢を位置姿勢取得部502が取得し、位置姿勢特定部503によって仮想空間における位置及び姿勢を特定し、その特定した位置及び姿勢に基づいてユーザの視点を仮想空間に設定する。また、視点制御部511は、仮想空間における視点の高さを変更したり、視点を移動したりすることも可能である。   The viewpoint control unit 511 is a functional unit for setting the viewpoint of the user in the virtual space based on the position and the posture of the user existing in the real space. The position and orientation of the user existing in the real space are the position and orientation of the HMD 102. Therefore, the position and orientation acquisition unit 502 acquires the position and orientation of the optical marker 201 included in the HMD 102, specifies the position and orientation in the virtual space by the position and orientation identification unit 503, and determines the user's viewpoint based on the identified position and orientation. Is set in the virtual space. In addition, the viewpoint control unit 511 can change the height of the viewpoint in the virtual space and move the viewpoint.

スケール設定部512は、仮想空間に設定される視点の高さや視点の移動量を変更するためのスケール情報をユーザごとに設定するための機能部である。スケール設定部512は、ユーザごとに受け付けたスケール情報を、当該ユーザと対応づけて管理する。スケール情報は、ユーザから指定されたパラメータであり、具体的には倍率を示す。例えば、スケール情報が“2”である場合には2倍を示すので、仮想空間に設定される視点の高さを通常の2倍の高さに設定することになる。   The scale setting unit 512 is a functional unit for setting scale information for changing the height of the viewpoint and the moving amount of the viewpoint set in the virtual space for each user. The scale setting unit 512 manages the scale information received for each user in association with the user. The scale information is a parameter specified by the user, and specifically indicates a magnification. For example, when the scale information is “2”, the height is doubled, so that the height of the viewpoint set in the virtual space is set to twice the height of a normal space.

次にサーバ装置103は機能部として、通信制御部531と、記憶部532とを備える。   Next, the server device 103 includes a communication control unit 531 and a storage unit 532 as functional units.

通信制御部531は、サーバ装置103と通信可能なクライアント装置101と各種情報の送受信を行う機能部である。通信制御部531は、前述した通信I/Fコントローラ308を通じてクライアント装置101と情報の送受信を行う。   The communication control unit 531 is a functional unit that transmits and receives various information to and from the client device 101 that can communicate with the server device 103. The communication control unit 531 sends and receives information to and from the client device 101 through the communication I / F controller 308 described above.

記憶部532は、後述する各種テーブル等の情報を記憶するための機能部である。必要に応じて、情報の追加・更新・削除を行う。   The storage unit 532 is a functional unit for storing information such as various tables described later. Add / update / delete information as necessary.

次に、クライアント装置101−1から仮想空間を配信し、各クライアント装置101で仮想空間を設定する処理の流れについて、図6に示すフローチャートを用いて説明する。   Next, a flow of a process of distributing a virtual space from the client device 101-1 and setting a virtual space in each client device 101 will be described with reference to a flowchart shown in FIG.

ステップS601では、クライアント装置101−1のCPU301は、記憶部509の機能によりクライアント装置101−1の外部メモリ311に記憶された仮想空間情報を取得する。仮想空間情報とは、仮想空間を生成するための各種情報のことである。具体的には、仮想空間の形やその大きさ、また配置するオブジェクトやその配置場所といった、仮想空間を形作るために必要な情報である。この仮想空間情報は、クライアント装置101にインストールされている専用のCADアプリケーションで作成することが可能である。しかしながら、すべてのクライアント装置101にこの専用のアプリケーションがインストールされているとは限らない。そこで、後述するステップS602において、生成した仮想空間情報を他のクライアント装置101に配布、すなわち送信する。   In step S601, the CPU 301 of the client device 101-1 acquires the virtual space information stored in the external memory 311 of the client device 101-1 using the function of the storage unit 509. The virtual space information is various information for generating a virtual space. Specifically, it is information necessary for shaping the virtual space, such as the shape and size of the virtual space, the objects to be arranged, and the locations where the objects are arranged. This virtual space information can be created by a dedicated CAD application installed in the client device 101. However, this dedicated application is not necessarily installed in all the client devices 101. Therefore, in step S602 described later, the generated virtual space information is distributed, that is, transmitted to the other client devices 101.

ステップS602では、クライアント装置101−1のCPU301は、通信制御部501の機能により、ステップS601で取得した仮想空間情報をサーバ装置103に送信する。   In step S602, the CPU 301 of the client device 101-1 transmits the virtual space information acquired in step S601 to the server device 103 by the function of the communication control unit 501.

ステップS603では、クライアント装置101−1のCPU301は、仮想空間生成部505の機能により、ステップS601で取得した仮想空間情報を用いて、仮想空間を生成する(仮想空間生成手段)。生成される仮想空間は、仮想空間情報が示す形や大きさの仮想空間であり、更には仮想空間情報が示すオブジェクトが仮想空間上に配置される。クライアント装置101−1には、MR体験をするための専用のビューワアプリケーションがインストールされており、このビューワアプリケーションによって仮想空間が生成される。すなわち、仮想空間情報を作成するためには、CADアプリケーションが必要であり、仮想空間を生成するためには、ビューワアプリケーションが必要となる。   In step S603, the CPU 301 of the client device 101-1 uses the function of the virtual space generation unit 505 to generate a virtual space using the virtual space information acquired in step S601 (virtual space generation unit). The generated virtual space is a virtual space having a shape and a size indicated by the virtual space information, and an object indicated by the virtual space information is arranged in the virtual space. A dedicated viewer application for performing an MR experience is installed in the client device 101-1 and a virtual space is generated by the viewer application. That is, a CAD application is needed to create virtual space information, and a viewer application is needed to create virtual space.

ステップS604では、クライアント装置101−1のCPU301は、視点制御部511の機能により、ステップS604で生成された仮想空間上にユーザの視点を設定する(視点設定手段)。クライアント装置101−1と通信可能なHMD102−1を装着するユーザの視点の高さに基づいて、仮想空間に当該ユーザの視点を設定する。図7は、ステップS604で仮想空間上に視点が設定された場合を示す図である。図7(b)に示すように、現実空間に存在するユーザの視点702(すなわち、HMD102の位置)の座標が、(0,150,0)であった場合、図7(a)に示すように仮想空間上の座標(0,150,0)の位置に、当該ユーザの視点701を設定する。   In step S604, the CPU 301 of the client device 101-1 sets the user's viewpoint on the virtual space generated in step S604 by the function of the viewpoint control unit 511 (viewpoint setting unit). The viewpoint of the user is set in the virtual space based on the height of the viewpoint of the user wearing the HMD 102-1 capable of communicating with the client device 101-1. FIG. 7 is a diagram illustrating a case where the viewpoint is set in the virtual space in step S604. As shown in FIG. 7B, when the coordinates of the user's viewpoint 702 (that is, the position of the HMD 102) existing in the real space are (0, 150, 0), as shown in FIG. , The viewpoint 701 of the user is set at the position of the coordinates (0, 150, 0) in the virtual space.

ステップS605では、クライアント装置101−1のCPU301は、HMD102−1を介してユーザに対して複合現実感を体験させるべく、複合現実感提示処理を実行する。複合現実感提示処理の詳細は、後述する図11に示す。   In step S605, the CPU 301 of the client device 101-1 executes a mixed reality presentation process so that the user can experience mixed reality via the HMD 102-1. The details of the mixed reality presentation process are shown in FIG. 11 described later.

一方、ステップS606では、サーバ装置103のCPU401は、通信制御部531の機能により、ステップS602でクライアント装置101−1から送信された仮想空間情報を受信する。そして、ステップS607では、サーバ装置103のCPU401は、通信制御部531の機能により、ステップS606で受信した仮想空間情報を、サーバ装置103が通信可能なクライアント装置101に送信する。ここで、ステップS606で受信した仮想空間情報の送信元であるクライアント装置101−1には、仮想空間情報を送信する必要がないので、送信しないことが望ましい。   On the other hand, in step S606, the CPU 401 of the server device 103 receives the virtual space information transmitted from the client device 101-1 in step S602 by the function of the communication control unit 531. Then, in step S607, the CPU 401 of the server device 103 transmits the virtual space information received in step S606 to the client device 101 with which the server device 103 can communicate, by the function of the communication control unit 531. Here, since it is not necessary to transmit the virtual space information to the client device 101-1 which is the transmission source of the virtual space information received in step S606, it is desirable not to transmit the virtual space information.

ステップS608では、クライアント装置101−2のCPU301は、通信制御部501の機能により、ステップS607でサーバ装置103から送信された仮想空間情報を受信する。そして、受信した仮想空間情報をクライアント装置101−2の外部メモリ311に記憶する。   In step S608, the CPU 301 of the client device 101-2 receives the virtual space information transmitted from the server device 103 in step S607 by the function of the communication control unit 501. Then, the received virtual space information is stored in the external memory 311 of the client device 101-2.

ステップS609では、クライアント装置101−2のCPU301は、仮想空間生成部505の機能により、ステップS608で受信した仮想空間情報を用いて、仮想空間を生成する(仮想空間生成手段)。仮想空間の生成については、ステップS603と同様である。これにより、いずれのクライアント装置101においても、同じ仮想空間が生成されることになる。また、クライアント装置101にCADアプリケーションがインストールされていないと自身で仮想空間情報を作成・編集することはできないが、他のクライアント装置101から仮想空間情報を受信することでCADアプリケーションが不要となる。ただし、CADアプリケーションがインストールされていなければ、仮想空間の大きさや形、オブジェクトの配置位置を変更することはできない。すなわち、クライアント装置101ごとに異なる大きさや形の仮想空間とすることはできない。   In step S609, the CPU 301 of the client device 101-2 uses the function of the virtual space generation unit 505 to generate a virtual space using the virtual space information received in step S608 (virtual space generation unit). The generation of the virtual space is the same as in step S603. Thus, the same virtual space is generated in any of the client devices 101. Further, if the CAD application is not installed in the client device 101, the virtual space information cannot be created / edited by itself, but the virtual space information is received from the other client devices 101, so that the CAD application becomes unnecessary. However, unless the CAD application is installed, the size and shape of the virtual space and the arrangement position of the object cannot be changed. That is, a virtual space having a different size or shape cannot be set for each client device 101.

ステップS610では、クライアント装置101−2のCPU301は、視点制御部511の機能により、ステップS609で生成された仮想空間上にユーザの視点を設定する(視点設定手段)。視点の設定についてもステップS604と同様である。   In step S610, the CPU 301 of the client device 101-2 sets the viewpoint of the user on the virtual space generated in step S609 by the function of the viewpoint control unit 511 (viewpoint setting unit). The setting of the viewpoint is the same as in step S604.

ステップS611では、クライアント装置101−2のCPU301は、HMD102−2を介してユーザに対して複合現実感を体験させるべく、複合現実感提示処理を実行する。複合現実感提示処理の詳細は、後述する図11に示す。   In step S611, the CPU 301 of the client device 101-2 executes a mixed reality presentation process so that the user can experience mixed reality via the HMD 102-2. The details of the mixed reality presentation process are shown in FIG. 11 described later.

このように、あるクライアント装置101から他のクライアント装置101に仮想空間情報を配信することで、いずれのクライアント装置101においても同じ仮想空間を生成することが可能となる。また、各クライアント装置101は、生成した共通の仮想空間を用いて各ユーザに複合現実感を体験させることが可能となる。   As described above, by distributing the virtual space information from one client device 101 to another client device 101, the same virtual space can be generated in any of the client devices 101. In addition, each client device 101 can allow each user to experience mixed reality using the generated common virtual space.

次に、ユーザごとにスケールを設定する処理の流れについて、図8に示すフローチャートを用いて説明する。   Next, a flow of processing for setting a scale for each user will be described with reference to a flowchart shown in FIG.

図8に示す一連の処理は、図6に示す一連の処理とは別のプロセスとして実行されるものである。そのため、どのようなタイミングで実行されてもよい。つまり、後述する図11の複合現実感提示処理を行っている間であっても、リアルタイムに任意の倍率にスケール情報を変更することが可能である。   The series of processing illustrated in FIG. 8 is executed as a separate process from the series of processing illustrated in FIG. Therefore, it may be executed at any timing. That is, it is possible to change the scale information to an arbitrary magnification in real time even while performing the mixed reality presentation processing of FIG. 11 described later.

ステップS801では、クライアント装置101のCPU301は、表示制御部508の機能により、図9に示すようなスケール設定画面900をディスプレイ312に表示する。そして、スケール設定画面900が備える入力フォームやボタンに対する入力を受け付ける。   In step S801, the CPU 301 of the client apparatus 101 displays a scale setting screen 900 as shown in FIG. Then, an input to an input form or button provided on the scale setting screen 900 is accepted.

スケール設定画面900は、スケール情報を設定するための画面である。スケール設定画面900は、スケール情報を入力するための入力フォーム901と、入力フォームに入力されたスケール情報を保存するための設定ボタン902等を備える。入力フォーム901には、スケール情報、すなわち倍率を入力するための入力フォームと、変更後の視点の高さを入力するための入力フォームとを備える。ユーザはラジオボタンによって、これらのいずれかを選択し、パラメータを入力する。   The scale setting screen 900 is a screen for setting scale information. The scale setting screen 900 includes an input form 901 for inputting scale information, a setting button 902 for saving the scale information input in the input form, and the like. The input form 901 includes an input form for inputting scale information, that is, a magnification, and an input form for inputting a changed viewpoint height. The user selects one of these using radio buttons and inputs parameters.

入力フォーム901にパラメータが入力された状態で設定ボタン902の押下を検知すると、ステップS802では、クライアント装置101のCPU301は、記憶部509の機能により、入力フォーム901に入力されたパラメータを取得する。そして、取得したパラメータをスケール情報として、ユーザ設定スケール情報1000(図10参照)に格納する。ここで、倍率を入力するための入力フォームに入力された場合には、入力された倍率をそのままユーザ設定スケール情報1000に格納する。一方、変更後の視点の高さを入力するための入力フォームに入力された場合には、仮想空間における現在のユーザの視点の高さと、入力された高さとに基づいて倍率を算出し、算出した倍率をユーザ設定スケール情報1000に格納する。すなわち、「入力された高さ÷現在のユーザの視点の高さ」で算出すればよい(パラメータ算出手段)。算出方法はこれに限らない。   When the pressing of the setting button 902 is detected in a state where the parameters are input to the input form 901, the CPU 301 of the client device 101 acquires the parameters input to the input form 901 by the function of the storage unit 509 in step S 802. Then, the acquired parameters are stored as scale information in the user-set scale information 1000 (see FIG. 10). Here, when an input is made on the input form for inputting the magnification, the input magnification is stored in the user-set scale information 1000 as it is. On the other hand, when the input is performed on the input form for inputting the height of the viewpoint after the change, the magnification is calculated based on the height of the current user's viewpoint in the virtual space and the input height. The scale factor is stored in the user-set scale information 1000. In other words, the calculation may be performed by “input height ÷ height of current user's viewpoint” (parameter calculation means). The calculation method is not limited to this.

ステップS803では、クライアント装置101のCPU301は、通信制御部501の機能により、ステップS802でユーザ設定スケール情報1000に格納したスケール情報をサーバ装置103に送信する。   In step S803, the CPU 301 of the client device 101 transmits the scale information stored in the user-set scale information 1000 in step S802 to the server device 103 by the function of the communication control unit 501.

ステップS804では、サーバ装置103のCPU401は、通信制御部531の機能により、ステップS803でクライアント装置101から送信されたスケール情報を受信する。そして、ステップS805では、サーバ装置103のCPU401は、記憶部532の機能により、ステップS804で受信したスケール情報を、図10に示すクライアント情報テーブル1020に格納する。   In step S804, the CPU 401 of the server apparatus 103 receives the scale information transmitted from the client apparatus 101 in step S803 by the function of the communication control unit 531. Then, in step S805, the CPU 401 of the server apparatus 103 stores the scale information received in step S804 in the client information table 1020 shown in FIG.

クライアント情報テーブル1020は、サーバ装置103の外部メモリ411に記憶されるデータテーブルである。クライアント情報テーブル1020は、クライアントID1021と、接続先情報1022と、スケール情報1023と、仮想空間位置姿勢情報1024とを備える。尚、クライアント情報テーブル1020が備える各項目はあくまで一例であり、これに限らない。   The client information table 1020 is a data table stored in the external memory 411 of the server device 103. The client information table 1020 includes a client ID 1021, connection destination information 1022, scale information 1023, and virtual space position and orientation information 1024. Note that each item included in the client information table 1020 is merely an example, and the present invention is not limited to this.

クライアントID1021は、クライアント装置101ごとに割り振られる一意な識別情報が格納される項目である。接続先情報1022は、クライアント装置101の接続先を示すIPアドレス等の情報が格納される項目である。スケール情報1023は、クライアント装置101で設定されたスケール情報が格納される項目である。仮想空間位置姿勢情報1024は、クライアント装置101で設定した、仮想空間におけるユーザの位置及び姿勢を示す情報が格納される項目である。   The client ID 1021 is an item in which unique identification information assigned to each client device 101 is stored. The connection destination information 1022 is an item in which information such as an IP address indicating a connection destination of the client device 101 is stored. The scale information 1023 is an item in which scale information set in the client device 101 is stored. The virtual space position / posture information 1024 is an item in which information indicating the position and the posture of the user in the virtual space set by the client device 101 is stored.

ステップS804では、クライアント情報テーブル1020にスケール情報を格納する際に、新たにレコードを作成し、クライアントID1021を発行する。そして、スケール情報の送信元であるクライアント装置101のIPアドレス等を接続先情報1022に格納し、更に受信したスケール情報をスケール情報1023に格納する。   In step S804, when storing the scale information in the client information table 1020, a new record is created and the client ID 1021 is issued. Then, the IP address or the like of the client device 101 that is the transmission source of the scale information is stored in the connection destination information 1022, and the received scale information is stored in the scale information 1023.

本実施形態では、1台のクライアント装置101につき1台のHMD102が接続されているため、このHMD102を装着するユーザとクライアント装置101とが対応づくことになる。すなわち、クライアント装置101に設定したスケール情報は、クライアント装置101に接続されたHMD102を装着するユーザに対応するスケール情報である。よって、情報処理システムは、ユーザごとにスケール情報の設定を受け付けて、これを保存することになる。そして、サーバ装置103は各ユーザのスケール情報をクライアント情報テーブル1020で管理する。   In the present embodiment, since one HMD 102 is connected to one client device 101, the user who wears the HMD 102 corresponds to the client device 101. That is, the scale information set in the client device 101 is scale information corresponding to the user wearing the HMD 102 connected to the client device 101. Therefore, the information processing system accepts the setting of the scale information for each user and stores the setting. Then, the server device 103 manages the scale information of each user in the client information table 1020.

次に、複合現実感提示処理の詳細について、図11に示すフローチャートを用いて説明する。   Next, the details of the mixed reality presentation processing will be described using a flowchart shown in FIG.

ステップS1101では、クライアント装置101のCPU301は、現実空間画像取得部504の機能により、HMD102の右目・左目ビデオカメラ321から現実空間画像を取得し、これをRAM303に記憶する。   In step S <b> 1101, the CPU 301 of the client device 101 acquires a real space image from the right-eye / left-eye video camera 321 of the HMD 102 using the function of the real space image acquisition unit 504, and stores this in the RAM 303.

ステップS1102では、クライアント装置101のCPU301は、位置姿勢取得部502の機能により、クライアント装置101と通信可能なHMD102の現実空間における位置及び姿勢を示す情報を取得し、RAM303に記憶する(向き取得手段)。前述した通り、HMD102が備えるオプティカルマーカ201を赤外線カメラ202が検知することで特定した位置及び姿勢を示す情報を、赤外線カメラ202から取得する。そして、図10に示す設定情報テーブル1010の現在位置姿勢情報1012に格納する。すでに現在位置姿勢情報1012が格納されている場合には、格納されている位置及び姿勢を示す情報を前位置姿勢情報1013にコピーし、新たに取得した位置及び姿勢を示す情報を現在位置姿勢情報1012に上書きする。また、仮想空間位置姿勢情報1014に格納されている姿勢の情報を、取得した現実空間における姿勢の情報で上書きする(向き変更手段)。   In step S1102, the CPU 301 of the client device 101 acquires information indicating the position and orientation in the real space of the HMD 102 that can communicate with the client device 101 by the function of the position and orientation acquisition unit 502, and stores the information in the RAM 303 (direction acquisition unit). ). As described above, information indicating the position and orientation specified by the infrared camera 202 detecting the optical marker 201 included in the HMD 102 is acquired from the infrared camera 202. Then, it is stored in the current position and orientation information 1012 of the setting information table 1010 shown in FIG. If the current position and orientation information 1012 is already stored, the information indicating the stored position and orientation is copied to the previous position and orientation information 1013, and the information indicating the newly acquired position and orientation is copied to the current position and orientation information. Overwrite 1012. Also, the posture information stored in the virtual space position / posture information 1014 is overwritten with the acquired posture information in the real space (direction changing means).

例えば、1フレーム前は図7(b)の視点702の位置であり、現在のフレームは図12の視点1201の位置である場合には、前位置姿勢情報1013に座標(0,150,0)、現在位置姿勢情報1012に座標(100,150,0)が格納される。尚、ここでいうフレームとは、HMD102に表示する映像のコマのことである。   For example, if one frame before is the position of the viewpoint 702 in FIG. 7B, and the current frame is the position of the viewpoint 1201 in FIG. 12, the coordinates (0, 150, 0) are included in the previous position and orientation information 1013. , The coordinates (100, 150, 0) are stored in the current position and orientation information 1012. Here, the frame means a frame of a video displayed on the HMD 102.

設定情報テーブル1010は、クライアント装置101の外部メモリ311に記憶されるデータテーブルである。設定情報テーブル1010は、スケール情報1011と、現在位置姿勢情報1012と、前位置姿勢情報1013と、仮想空間位置姿勢情報1014とを備える。   The setting information table 1010 is a data table stored in the external memory 311 of the client device 101. The setting information table 1010 includes scale information 1011, current position and orientation information 1012, previous position and orientation information 1013, and virtual space position and orientation information 1014.

スケール情報1011は、仮想空間をユーザが閲覧する際のスケール感を示す倍率が格納される項目である。現在位置姿勢情報1012は、現在のフレームにおけるユーザの位置及び姿勢を示す情報が格納される項目である。前位置姿勢情報1013は、1つ前のフレームにおけるユーザの位置及び姿勢を示す情報が格納される項目である。仮想空間位置姿勢情報1014は、仮想空間におけるユーザの位置及び姿勢を示す情報が格納される項目である。仮想空間位置姿勢情報1014には初期値として、前述したステップS604及びステップS610で設定された位置及び姿勢を示す情報が格納される。   The scale information 1011 is an item in which a magnification indicating a sense of scale when the user browses the virtual space is stored. The current position and orientation information 1012 is an item in which information indicating the position and orientation of the user in the current frame is stored. The front position / posture information 1013 is an item in which information indicating the position and posture of the user in the previous frame is stored. The virtual space position and orientation information 1014 is an item in which information indicating the position and orientation of the user in the virtual space is stored. The virtual space position and orientation information 1014 stores, as initial values, information indicating the positions and orientations set in steps S604 and S610 described above.

ステップS1103では、クライアント装置101のCPU301は、位置姿勢特定部503の機能により、現実空間におけるHMD102の移動量を算出する。より具体的には、1フレーム前の時点で取得したHMD102の現実空間における位置(前位置姿勢情報1013)と、現時点で取得したHMD102の位置(現在位置姿勢情報1012)とを用いて、どのくらい移動したのかを算出(取得)する(移動量取得手段)。例えば、1フレーム前の時点は図7(b)の視点702の位置(座標(0,150,0))で、現時点では図12に示す視点1201の位置(座標(100,150,0))だった場合、X軸方向に100cm移動していることがわかる。よって、この100cmを現実空間におけるHMD102の移動量とする。二点間の距離は例えば、三平方の定理等によって算出してもよい。算出方法は特に問わない。   In step S1103, the CPU 301 of the client device 101 calculates the amount of movement of the HMD 102 in the real space by the function of the position and orientation specifying unit 503. More specifically, using the position of the HMD 102 in the real space acquired at the time point one frame before (the previous position / posture information 1013) and the position of the HMD 102 acquired at the current time (the current position / posture information 1012), Calculation (acquisition) is performed (movement amount acquisition means). For example, the time point one frame before is the position of the viewpoint 702 (coordinates (0, 150, 0)) in FIG. 7B, and the position of the viewpoint 1201 (coordinates (100, 150, 0)) shown in FIG. In this case, it can be seen that it has moved 100 cm in the X-axis direction. Therefore, this 100 cm is set as the movement amount of the HMD 102 in the real space. The distance between the two points may be calculated by, for example, the three-square theorem. The calculation method is not particularly limited.

ステップS1104では、クライアント装置101のCPU301は、ユーザごとにスケール設定を行うべく、スケール設定処理を実行する。スケール設定処理の詳細は、後述する図16に示す。スケール設定処理を実行することで、設定情報テーブル1010のスケール情報1011に倍率が格納される。   In step S1104, the CPU 301 of the client device 101 executes a scale setting process in order to set a scale for each user. Details of the scale setting process are shown in FIG. 16 described later. By executing the scale setting process, the scaling factor is stored in the scale information 1011 of the setting information table 1010.

ステップS1105では、クライアント装置101のCPU301は、視点制御部511の機能により、仮想空間に設定されたユーザの視点の高さを、ステップS1104で設定した当該ユーザに対応するスケール情報に応じて変更する(視点変更手段)。そして、変更後の視点の位置を示す情報で、1フレーム前の情報が格納されている仮想空間位置姿勢情報1014の位置を示す情報を上書きする。より具体的には、図7(a)に示すように、仮想空間におけるユーザの視点1201が座標(0,150,0)だった場合、垂直座標に対してスケール情報の値を乗算する。すなわち、本実施形態における垂直座標はY座標であるので、Y座標である“150”に例えば当該ユーザに対応するスケール情報1011の値である“10”を乗算する。その結果、図13に示すように、ユーザの視点1301は座標(0,1500,0)となる。   In step S1105, the CPU 301 of the client device 101 changes the height of the user's viewpoint set in the virtual space according to the scale information corresponding to the user set in step S1104 by the function of the viewpoint control unit 511. (Viewpoint changing means). Then, the information indicating the position of the virtual space position and orientation information 1014 in which the information of the previous frame is stored is overwritten with the information indicating the position of the viewpoint after the change. More specifically, as shown in FIG. 7A, when the user's viewpoint 1201 in the virtual space has coordinates (0, 150, 0), the vertical coordinate is multiplied by the value of the scale information. That is, since the vertical coordinate in the present embodiment is the Y coordinate, “150” that is the Y coordinate is multiplied by, for example, “10” that is the value of the scale information 1011 corresponding to the user. As a result, as shown in FIG. 13, the user's viewpoint 1301 has coordinates (0, 1500, 0).

ステップS1106では、クライアント装置101のCPU301は、視点制御部511の機能により、ステップS1103で算出した移動量とステップS1104で設定した当該ユーザに対応するスケール情報とを用いて、仮想空間上の視点の移動量を算出する。すなわち、ステップS1103で算出した移動量にスケール情報1011の値を乗算することで、仮想空間上の視点の移動量を算出する(移動量決定手段)。   In step S1106, the CPU 301 of the client apparatus 101 uses the function of the viewpoint control unit 511 to calculate the viewpoint in the virtual space using the movement amount calculated in step S1103 and the scale information corresponding to the user set in step S1104. Calculate the movement amount. That is, the movement amount of the viewpoint in the virtual space is calculated by multiplying the movement amount calculated in step S1103 by the value of the scale information 1011 (movement amount determination unit).

ステップS1107では、クライアント装置101のCPU301は、視点制御部511の機能により、ステップS1106で算出した移動量を用いて、仮想空間上のユーザの視点を移動する(視点移動手段)。すなわち、視点の高さを変更した後の仮想空間上のユーザの視点の位置を示す情報は仮想空間位置姿勢情報1014に格納されているので、この位置に算出した移動量を加算する。例えば、図13に示すように、高さを変更した後のユーザの視点1301の座標は、(0,1500,0)である。これに、ステップS1103で算出した移動量(X軸方向に100cm)にスケール情報1011(例えば、“10”)を乗算して、1フレーム前の仮想空間における視点の位置に加算する。つまり、現実空間ではX軸方向に100cmしか移動していないが、仮想空間ではその10倍の1000cm移動することになる。よって、図14の視点1401に示すように、この視点1401の座標は、(1000,1500,0)となる。このようにして、スケールに応じた高さと移動量で仮想空間におけるユーザの視点を移動させる。これをクライアント装置101ごとに実行することで、ユーザごとに設定されたスケール情報に応じた視点の高さに変更でき、更には当該スケール情報に応じた移動量で仮想空間を移動することが可能となる。   In step S1107, the CPU 301 of the client device 101 uses the function of the viewpoint control unit 511 to move the user's viewpoint in the virtual space using the movement amount calculated in step S1106 (viewpoint moving means). That is, since the information indicating the position of the user's viewpoint in the virtual space after the viewpoint height has been changed is stored in the virtual space position and orientation information 1014, the calculated movement amount is added to this position. For example, as shown in FIG. 13, the coordinates of the viewpoint 1301 of the user after changing the height are (0, 1500, 0). Then, the amount of movement (100 cm in the X-axis direction) calculated in step S1103 is multiplied by scale information 1011 (for example, “10”) and added to the position of the viewpoint in the virtual space one frame before. That is, in the real space, the object moves only 100 cm in the X-axis direction, but in the virtual space, the object moves 1000 times, which is ten times as large. Therefore, as shown in a viewpoint 1401 in FIG. 14, the coordinates of the viewpoint 1401 are (1000, 1500, 0). In this way, the viewpoint of the user in the virtual space is moved by the height and the movement amount according to the scale. By performing this for each client device 101, it is possible to change the height of the viewpoint according to the scale information set for each user, and furthermore, it is possible to move the virtual space by the movement amount according to the scale information. Becomes

そして、あくまでスケール情報を用いるのは仮想空間におけるユーザの視点の位置に対する変更だけであり、その視点の向き(姿勢)に対してはスケール情報を適用しない。例えば、ユーザの頭が右に90度回転した場合に、この回転角度にスケール情報が示す値を乗算してしまうと、意図しない方向を向いてしまうことになる。これを防ぐために、現実空間においてユーザの視点の向きが移動した場合であっても、この移動量にはスケール情報を乗算しない。   Only the change in the position of the user's viewpoint in the virtual space uses the scale information, and the scale information is not applied to the direction (posture) of the viewpoint. For example, when the user's head is rotated 90 degrees to the right, if the rotation angle is multiplied by the value indicated by the scale information, the user will face an unintended direction. In order to prevent this, even if the direction of the user's viewpoint moves in the real space, this movement amount is not multiplied by the scale information.

ステップS1108では、クライアント装置101のCPU301は、通信制御部501の機能により、クライアント装置101に記憶された仮想空間位置姿勢情報1014とスケール情報1011とをサーバ装置103に送信する。送信する仮想空間位置姿勢情報1014は、ステップS1105で視点の高さが変更され、ステップS1107で視点が移動されたものである。また、送信するスケール情報1011は、ステップS1104で設定されたものである。   In step S <b> 1108, the CPU 301 of the client device 101 transmits the virtual space position and orientation information 1014 and the scale information 1011 stored in the client device 101 to the server device 103 by the function of the communication control unit 501. The virtual space position / posture information 1014 to be transmitted is information in which the height of the viewpoint is changed in step S1105 and the viewpoint is moved in step S1107. The scale information 1011 to be transmitted is the one set in step S1104.

ステップS1109では、サーバ装置103のCPU401は、通信制御部531の機能により、クライアント装置101から送信された仮想空間位置姿勢情報1014とスケール情報1011とを受信する。受信した仮想空間位置姿勢情報1014とスケール情報1011とは、クライアント情報テーブル1020の仮想空間位置姿勢情報1024とスケール情報1023とにそれぞれ上書きする。ここで更新するレコードは、各情報の送信元であるクライアント装置101に対応するレコードである。   In step S1109, the CPU 401 of the server device 103 receives the virtual space position and orientation information 1014 and the scale information 1011 transmitted from the client device 101 by the function of the communication control unit 531. The received virtual space position and orientation information 1014 and scale information 1011 overwrite the virtual space position and orientation information 1024 and scale information 1023 of the client information table 1020, respectively. The record to be updated here is a record corresponding to the client device 101 that is the transmission source of each information.

ステップS1110では、サーバ装置103のCPU401は、通信制御部531の機能により、クライアント情報テーブル1020の各レコード(以下、クライアント情報という。)を、送信元のクライアント装置101に対して送信する。   In step S1110, the CPU 401 of the server apparatus 103 transmits each record (hereinafter, referred to as client information) of the client information table 1020 to the transmission source client apparatus 101 by the function of the communication control unit 531.

ステップS1111では、サーバ装置103のCPU301は、通信制御部501の機能により、サーバ装置103から送信されたクライアント情報を受信する。   In step S1111, the CPU 301 of the server device 103 receives the client information transmitted from the server device 103 by the function of the communication control unit 501.

ステップS1112では、サーバ装置103のCPU301は、オブジェクト制御部510の機能により、他のユーザを示すアバターを仮想空間上に配置する(三次元モデル配置手段)。ステップS1111で受信したクライアント情報には、他のクライアント装置101が管理している仮想空間位置姿勢情報1014とスケール情報1011とが含まれている。これを利用することで、仮想空間上に他のユーザを示す三次元モデルであるアバターを配置する。より具体的には、受信したクライアント情報に含まれる仮想空間位置姿勢情報1024が示す位置及び姿勢で仮想空間上に他のユーザの視点を設定し、その視点が頭の位置となるようアバターを配置する。そしてこのアバターの大きさをスケール情報1023が示す倍率で拡大または縮小する(サイズ変更手段)。このとき頭の位置は固定しておく。また、他のユーザのアバターだけを仮想空間に配置することが望ましい。自分のアバターまでも仮想空間に配置してしまうと、アバターの形状によってはアバターを示す三次元モデルによって視界を遮られる可能性があるためである。   In step S1112, the CPU 301 of the server device 103 uses the function of the object control unit 510 to arrange an avatar indicating another user in the virtual space (a three-dimensional model arrangement unit). The client information received in step S1111 includes virtual space position and orientation information 1014 and scale information 1011 managed by another client device 101. By using this, an avatar, which is a three-dimensional model indicating another user, is arranged in the virtual space. More specifically, the viewpoint of another user is set in the virtual space at the position and orientation indicated by the virtual space position and orientation information 1024 included in the received client information, and the avatar is arranged so that the viewpoint is the head position. I do. Then, the size of the avatar is enlarged or reduced by the magnification indicated by the scale information 1023 (size changing means). At this time, the position of the head is fixed. Further, it is desirable that only avatars of other users are arranged in the virtual space. This is because, even if one's avatar is placed in the virtual space, the view may be obstructed by a three-dimensional model representing the avatar depending on the shape of the avatar.

このようにすることで、同一の仮想空間を共有している他のユーザがどこにいるのか、更にはそのユーザがどういうスケール感で仮想空間を閲覧しているのかを把握することができるようになる。図15は、アバターを配置した場合の様子を示す。スケール情報が10倍の他のユーザのアバターを仮想空間に配置すると、図15の1501に示すような三次元モデルが仮想空間上に表示される。一方、スケール情報が1倍の他のユーザのアバターを仮想空間に配置すると、図15の1502に示すような三次元モデルが仮想空間上に配置される。このように、アバターの大きさをスケール情報に応じて調整することで、俯瞰的に仮想空間を見ているのか、等身大で仮想空間を見ているのかといった状況を把握することが可能となる。   By doing so, it is possible to know where other users sharing the same virtual space are, and furthermore, what scale of the user is browsing the virtual space. . FIG. 15 shows a state in which avatars are arranged. When the avatar of another user whose scale information is 10 times is arranged in the virtual space, a three-dimensional model as shown by 1501 in FIG. 15 is displayed in the virtual space. On the other hand, when an avatar of another user whose scale information is one time is arranged in the virtual space, a three-dimensional model as shown by 1502 in FIG. 15 is arranged in the virtual space. In this way, by adjusting the size of the avatar according to the scale information, it is possible to grasp the situation such as whether the user is looking at the virtual space from a bird's-eye view or looking at the virtual space at the same size. .

ステップS1113では、クライアント装置101のCPU301は、仮想空間画像取得部506の機能により、仮想空間を撮像することにより仮想空間画像を取得し、これをRAM303等に記憶する。すなわち、仮想空間位置姿勢情報1014が示す視点から見た仮想空間を撮像する(レンダリングする)。これにより仮想空間画像を生成し、これをRAM303等に記憶する。尚、HMD102の右目・左目ディスプレイ322のそれぞれに表示するために右目用の仮想空間画像と左目用の仮想空間画像の2枚を取得する。   In step S1113, the CPU 301 of the client device 101 acquires a virtual space image by capturing the virtual space by the function of the virtual space image acquisition unit 506, and stores the acquired image in the RAM 303 or the like. That is, the virtual space viewed from the viewpoint indicated by the virtual space position and orientation information 1014 is imaged (rendered). Thereby, a virtual space image is generated and stored in the RAM 303 or the like. Note that two virtual space images for the right eye and the left eye are acquired to be displayed on the right-eye and left-eye displays 322 of the HMD 102, respectively.

ステップS1114では、クライアント装置101のCPU301は、複合現実画像生成部507の機能により、ステップS1101で取得した現実空間画像とステップS1113で取得した仮想空間画像とをRAM303等から読み出す。そして、当該現実空間画像に当該仮想空間画像を重畳し、複合現実画像を生成する。生成した複合現実画像はRAM303等に記憶する。尚、前述した通り、現実空間画像と仮想空間画像とは右目用と左目用の2枚ずつがRAM303等に記憶されているので、右目用の現実空間画像に右目用の仮想空間画像を重畳し、左目用の現実空間画像に左目用の仮想空間画像を重畳する。   In step S1114, the CPU 301 of the client apparatus 101 reads the real space image acquired in step S1101 and the virtual space image acquired in step S1113 from the RAM 303 and the like by the function of the mixed reality image generation unit 507. Then, the virtual space image is superimposed on the real space image to generate a mixed reality image. The generated mixed reality image is stored in the RAM 303 or the like. As described above, the real space image and the virtual space image are each stored in the RAM 303 or the like for the right eye and the left eye, so that the virtual space image for the right eye is superimposed on the real space image for the right eye. Superimpose the virtual space image for the left eye on the real space image for the left eye.

ステップS1115では、クライアント装置101のCPU301は、表示制御部508の機能により、ステップS1116で生成した複合現実画像をRAM303等から読み出す。そして、ビデオコントローラ306を通じてHMD102の右目・左目ディスプレイ322に表示する(仮想空間提示手段)。RAM303等に記憶された複合現実画像は、右目用と左目用の2枚が存在する。そのため、右目用の複合現実画像を右目・左目ディスプレイ322の右目のディスプレイに表示するよう制御し、左目用の複合現実画像を右目・左目ディスプレイ322の左目のディスプレイに表示するよう制御する。   In step S1115, the CPU 301 of the client device 101 reads the mixed reality image generated in step S1116 from the RAM 303 or the like by the function of the display control unit 508. Then, the image is displayed on the right-eye / left-eye display 322 of the HMD 102 through the video controller 306 (virtual space presentation means). The mixed reality image stored in the RAM 303 or the like has two images for the right eye and the left eye. Therefore, control is performed so that the right-eye mixed reality image is displayed on the right-eye / left-eye display 322 on the right-eye display, and control is performed such that the left-eye mixed reality image is displayed on the right-eye / left-eye display 322 on the left-eye display.

ステップS1116では、クライアント装置101のCPU301は、HMD102を装着しているユーザに複合現実感を提示する処理の終了指示があったか否かを判定する。例えば、前述したステップS1101乃至ステップS1115の処理を実行するクライアント装置101のアプリケーションの停止指示や終了指示があったか否かを判定する。終了指示があったと判定した場合には、本一連の処理を終了する。終了指示があったと判定しなかった場合、すなわち終了指示がなかった場合にはステップS1101に処理を戻し、終了指示があるまでステップS1101乃至ステップS1115の処理を繰り返す。このように、繰り返しステップS1101乃至ステップS1115の処理を実行することで、リアルタイムに情報を更新して提示することができる。   In step S1116, the CPU 301 of the client device 101 determines whether or not there is an instruction to end the process of presenting the mixed reality to the user wearing the HMD 102. For example, it is determined whether there is an instruction to stop or end the application of the client apparatus 101 that executes the processing of steps S1101 to S1115 described above. If it is determined that the end instruction has been issued, the series of processing ends. If it is not determined that there is an end instruction, that is, if there is no end instruction, the process returns to step S1101, and the processes of steps S1101 to S1115 are repeated until there is an end instruction. As described above, by repeatedly executing the processing of steps S1101 to S1115, information can be updated and presented in real time.

次に、スケール設定処理の詳細について、図16に示すフローチャートを用いて説明する。   Next, details of the scale setting process will be described with reference to the flowchart shown in FIG.

ステップS1601では、クライアント装置101のCPU301は、記憶部509の機能により、仮想空間位置姿勢情報1014を参照する。   In step S1601, the CPU 301 of the client device 101 refers to the virtual space position and orientation information 1014 using the function of the storage unit 509.

ステップS1602では、クライアント装置101のCPU301は、オブジェクト制御部510の機能により、仮想空間位置姿勢情報1014が示すユーザの視点の位置が、仮想空間に配置されたいずれかのオブジェクトの内部であるか否かを判定する。ユーザの視点の位置である座標と、オブジェクトを取り囲むバウンディングボックスとを比較することで、ユーザの視点の位置が、オブジェクトの内部であるか否かを判定する。オブジェクトの内部であると判定されると、ユーザの視点の位置に応じて仮想空間に配置されるオブジェクトが選択される。バウンディングボックスの座標は、図10に示すオブジェクト情報テーブル1030のバウンディングボックス1033で管理されている。   In step S1602, the CPU 301 of the client device 101 uses the function of the object control unit 510 to determine whether the position of the user's viewpoint indicated by the virtual space position and orientation information 1014 is inside any of the objects arranged in the virtual space. Is determined. By comparing the coordinates of the position of the user's viewpoint with the bounding box surrounding the object, it is determined whether the position of the user's viewpoint is inside the object. If it is determined that the object is inside the object, an object arranged in the virtual space is selected according to the position of the user's viewpoint. The coordinates of the bounding box are managed by the bounding box 1033 of the object information table 1030 shown in FIG.

オブジェクト情報テーブル1030は、クライアント装置101の外部メモリ311で記憶されているデータテーブルである。オブジェクト情報テーブル1030は、図6で前述した仮想空間情報に含まれる情報である。オブジェクトID1031は、オブジェクトごとに割り振られる一意な識別情報が格納されている項目である。オブジェクト固有スケール情報1032は、オブジェクトごとに対応するスケール情報が格納されている項目である。バウンディングボックス1033は、オブジェクトを囲む直方体の座標が格納されている項目である。   The object information table 1030 is a data table stored in the external memory 311 of the client device 101. The object information table 1030 is information included in the virtual space information described above with reference to FIG. The object ID 1031 is an item in which unique identification information assigned to each object is stored. The object-specific scale information 1032 is an item in which scale information corresponding to each object is stored. The bounding box 1033 is an item in which coordinates of a rectangular parallelepiped surrounding the object are stored.

このバウンディングボックス1033が示す座標の範囲にユーザの視点が位置しているのであれば、オブジェクトの内部であると判定される。ユーザの視点の位置がいずれかのオブジェクトの内部であると判定した場合には、ステップS1604に処理を進める。ユーザの視点の位置がいずれかのオブジェクトの内部でないと判定した場合には、ステップS1603に処理を進める。   If the user's viewpoint is located within the range of coordinates indicated by the bounding box 1033, it is determined that the object is inside the object. If it is determined that the position of the user's viewpoint is inside any of the objects, the process proceeds to step S1604. If it is determined that the position of the user's viewpoint is not inside any of the objects, the process proceeds to step S1603.

ステップS1603では、クライアント装置101のCPU301は、スケール設定部512の機能により、ユーザ設定スケール情報1000に格納されている倍率を取得し、RAM303に保存する。   In step S1603, the CPU 301 of the client device 101 acquires the magnification stored in the user-set scale information 1000 using the function of the scale setting unit 512, and stores the magnification in the RAM 303.

一方、ステップS1604では、クライアント装置101のCPU301は、オブジェクト制御部510の機能により、ユーザの視点が内部にあるとされたオブジェクトに対応するスケール情報が存在するか否かを判定する。オブジェクトに対応するスケール情報は、当該オブジェクトのオブジェクト固有スケール情報1032を参照し、ここに倍率が格納されていれば、オブジェクトに対応するスケール情報が存在すると判定する。ユーザの視点が内部にあるとされたオブジェクトに対応するスケール情報が存在すると判定した場合には、ステップS1605に処理を進める。ユーザの視点が内部にあるとされたオブジェクトに対応するスケール情報が存在しないと判定した場合には、ステップS1603に処理を進める。   On the other hand, in step S1604, the CPU 301 of the client apparatus 101 determines, by the function of the object control unit 510, whether or not there is scale information corresponding to the object whose user's viewpoint is inside. The scale information corresponding to the object refers to the object-specific scale information 1032 of the object, and if the magnification is stored therein, it is determined that the scale information corresponding to the object exists. If it is determined that the scale information corresponding to the object whose user's viewpoint is inside exists, the process proceeds to step S1605. If it is determined that there is no scale information corresponding to the object for which the user's viewpoint is inside, the process advances to step S1603.

ステップS1605では、クライアント装置101のCPU301は、スケール設定部512の機能により、ユーザの視点が内部にあるとされたオブジェクトに対応するスケール情報を、オブジェクト固有スケール情報1032から取得する。すなわち、このオブジェクト固有スケール情報1032に格納されている倍率を取得し、RAM303に保存する。   In step S1605, the CPU 301 of the client device 101 obtains, from the object-specific scale information 1032, the scale information corresponding to the object for which the user's viewpoint is determined to be inside by the function of the scale setting unit 512. That is, the magnification stored in the object-specific scale information 1032 is acquired and stored in the RAM 303.

ステップS1606では、クライアント装置101のCPU301は、スケール設定部512の機能により、ステップS1603またはステップS1605でRAM303に保存したスケール情報で、スケール情報1011を上書きする。   In step S1606, the CPU 301 of the client apparatus 101 overwrites the scale information 1011 with the scale information stored in the RAM 303 in step S1603 or S1605 by the function of the scale setting unit 512.

図17は、ユーザの視点がオブジェクトの内部に存在する場合の一例を示す。スケール情報1011が“10”倍のユーザが1501である。このユーザが家の内部を見るために自身の視点をオブジェクトの内部に移動させると、バウンディングボックス1701と視点の位置とを比較する。これにより、ユーザの視点がオブジェクトの内部に存在すると判定されると、このオブジェクトが選択され、選択された当該オブジェクトに対応するオブジェクト固有スケール情報1032が取得できる。図17の場合には、オブジェクト固有スケール情報1032として“1”倍が取得できたとする。そうすると、このパラメータをスケール情報1011に設定される。この設定されたスケール情報1011を用いて、視点の高さを調整すると、1702に示すようなスケール感になる。このように、ユーザが接触したオブジェクトに対応するスケール情報で、当該ユーザの視点の高さや移動量を変更することが可能となるので、例えば建築物の内部を閲覧する際にスケール設定画面900を介してスケールを設定する必要がなくなる。すなわち、オブジェクトに接触するだけで自動的にスケールを変更することが可能となる。   FIG. 17 shows an example where the user's viewpoint is inside the object. The user whose scale information 1011 is “10” times is 1501. When the user moves his or her viewpoint to the inside of the object in order to look inside the house, the user compares the bounding box 1701 with the position of the viewpoint. Thus, when it is determined that the user's viewpoint is inside the object, this object is selected, and the object-specific scale information 1032 corresponding to the selected object can be obtained. In the case of FIG. 17, it is assumed that “1” times can be obtained as the object-specific scale information 1032. Then, this parameter is set in the scale information 1011. When the height of the viewpoint is adjusted using the set scale information 1011, a scale feeling as indicated by 1702 is obtained. In this manner, the scale information corresponding to the object touched by the user makes it possible to change the height and the amount of movement of the user's viewpoint. For example, when browsing the inside of a building, the scale setting screen 900 is displayed. There is no need to set the scale via. That is, it is possible to automatically change the scale simply by touching the object.

次に、第2の実施形態について説明する。第2の実施形態は、第1の実施形態における図16の変形例である。第1の実施形態では、ユーザの視点がオブジェクトの内部に存在するか否かを判定したが、第2の実施形態ではオブジェクトが存在する領域に視点が存在するか否かによって、スケールの調整を行う判定する仕組みである。ここでいう領域とは平面領域のことであり、建築物でいえば土地の部分に相当する。つまり、その建築物が配置されている土地の部分に入ると、ユーザが建築物の中を覗き込むことなく、その建築物に対応するスケール情報が取得できるものである。以下、この説明を行う。   Next, a second embodiment will be described. The second embodiment is a modification of the first embodiment shown in FIG. In the first embodiment, it is determined whether or not the user's viewpoint exists inside the object. In the second embodiment, the scale is adjusted depending on whether or not the viewpoint exists in the area where the object exists. It is a mechanism to make a decision. The area referred to here is a plane area, which corresponds to a land part in a building. That is, when the user enters the land where the building is located, the user can obtain scale information corresponding to the building without looking into the building. Hereinafter, this description will be given.

第2の実施形態は、第1の実施形態における図16の変形例であることから、図16及び図10のオブジェクト情報テーブル1030以外の図については、第1の実施形態と同様であるので説明を省略する。   Since the second embodiment is a modified example of FIG. 16 in the first embodiment, the drawings other than the object information table 1030 in FIG. 16 and FIG. 10 are the same as those in the first embodiment and will be described. Is omitted.

第2の実施形態における、スケール設定処理の詳細について、図18に示すフローチャートを用いて説明する。第2の実施形態におけるスケール設定処理は、第1の実施形態と同様に、図11のステップS1104における処理である。   Details of the scale setting process in the second embodiment will be described with reference to the flowchart shown in FIG. The scale setting process in the second embodiment is a process in step S1104 in FIG. 11, as in the first embodiment.

ステップS1801では、クライアント装置101のCPU301は、記憶部509の機能により、仮想空間位置姿勢情報1014を参照する。   In step S1801, the CPU 301 of the client device 101 refers to the virtual space position and orientation information 1014 by using the function of the storage unit 509.

ステップS1802では、クライアント装置101のCPU301は、オブジェクト制御部510の機能により、仮想空間位置姿勢情報1014が示すユーザの視点の位置が、仮想空間に配置されたいずれかのオブジェクトの領域内であるか否かを判定する。ユーザの視点の位置である座標(例えば、X座標とZ座標)と、オブジェクトが配置された領域(例えば、XZ平面)を比較することで、ユーザの視点の位置が、オブジェクトの領域内であるか否かを判定する。ユーザの視点の位置がオブジェクトの領域内であると判定された場合には、ステップS1805に処理を進める。ユーザの視点の位置がオブジェクトの領域内でないと判定した場合には、ステップS1803に処理を進める。   In step S1802, the CPU 301 of the client device 101 determines whether the position of the user's viewpoint indicated by the virtual space position / posture information 1014 is within the area of any of the objects arranged in the virtual space by the function of the object control unit 510. Determine whether or not. By comparing coordinates (for example, X coordinates and Z coordinates), which are positions of the user's viewpoint, with a region (for example, an XZ plane) where the object is arranged, the position of the user's viewpoint is within the region of the object. It is determined whether or not. If it is determined that the position of the user's viewpoint is within the object area, the process advances to step S1805. If it is determined that the position of the user's viewpoint is not within the area of the object, the process proceeds to step S1803.

ステップS1803では、クライアント装置101のCPU301は、スケール設定部512の機能により、変数Flgに“0”を代入する。変数Flgは視点がいずれかのオブジェクトの領域内にあり、当該オブジェクトに対応するスケール情報を用いてユーザの視点が調整されているか否かを示すフラグである。   In step S1803, the CPU 301 of the client device 101 substitutes “0” for the variable Flg by the function of the scale setting unit 512. The variable Flg is a flag indicating whether or not the viewpoint is within the area of any object and the viewpoint of the user has been adjusted using the scale information corresponding to the object.

ステップS1804では、クライアント装置101のCPU301は、スケール設定部512の機能により、ユーザ設定スケール情報1000に格納されている倍率を取得し、RAM303に保存する。   In step S1804, the CPU 301 of the client device 101 obtains the magnification stored in the user-set scale information 1000 using the function of the scale setting unit 512, and stores the magnification in the RAM 303.

一方、ステップS1805では、クライアント装置101のCPU301は、オブジェクト制御部510の機能により、ユーザの視点が領域内にあるとされたオブジェクトに対応するスケール情報が存在するか否かを判定する。オブジェクトに対応するスケール情報は、当該オブジェクトのオブジェクト固有スケール情報1032を参照し、ここに倍率が格納されていれば、オブジェクトに対応するスケール情報が存在すると判定する。ユーザの視点が領域内にあるとされたオブジェクトに対応するスケール情報が存在すると判定した場合には、ステップS1806に処理を進める。ユーザの視点が領域内にあるとされたオブジェクトに対応するスケール情報が存在しないと判定した場合には、ステップS1803に処理を進める。   On the other hand, in step S1805, the CPU 301 of the client device 101 determines, by the function of the object control unit 510, whether or not there is scale information corresponding to the object whose user's viewpoint is within the area. The scale information corresponding to the object refers to the object-specific scale information 1032 of the object, and if the magnification is stored therein, it is determined that the scale information corresponding to the object exists. If it is determined that there is scale information corresponding to the object for which the user's viewpoint is within the region, the process proceeds to step S1806. If it is determined that there is no scale information corresponding to the object whose user's viewpoint is within the region, the process proceeds to step S1803.

ステップS1806では、クライアント装置101のCPU301は、スケール設定部512の機能により、変数Flgが“0”であるか否かを判定する。変数Flgが“0”であると判定された場合には、ステップS1807に処理を進める。変数Flgが“1”であると判定された場合には、ステップS1810に処理を進める。   In step S1806, the CPU 301 of the client device 101 determines whether the variable Flg is “0” by the function of the scale setting unit 512. If it is determined that the variable Flg is “0”, the process proceeds to step S1807. If it is determined that the variable Flg is “1”, the process proceeds to step S1810.

ステップS1807では、クライアント装置101のCPU301は、スケール設定部512の機能により、ユーザの視点が領域内にあるとされたオブジェクトに、スケール適用方向1931が存在するか否かを判定する。スケール適用方向1931は、図19に示すオブジェクト情報テーブル1030の項目である。第2の実施形態におけるオブジェクト情報テーブル1030は、第1の実施形態で備えていたバウンディングボックス1033の代わりに、このスケール適用方向1931を新たに備えている。スケール適用方向1931は、オブジェクト固有スケール情報1032を適用すべき方向を示す情報が格納される項目である。ユーザの視点が領域内にあるとされたオブジェクトに、スケール適用方向1931が存在すると判定した場合には、ステップS1808に処理を進める。ユーザの視点が領域内にあるとされたオブジェクトに、スケール適用方向1931が存在しない(スケール適用方向1931が“NULL”である)と判定した場合には、ステップS1809に処理を進める。   In step S <b> 1807, the CPU 301 of the client device 101 determines whether or not the scale application direction 1931 exists in the object for which the user's viewpoint is determined to be within the region, using the function of the scale setting unit 512. The scale application direction 1931 is an item of the object information table 1030 shown in FIG. The object information table 1030 according to the second embodiment newly includes the scale application direction 1931 instead of the bounding box 1033 provided in the first embodiment. The scale application direction 1931 is an item in which information indicating a direction in which the object-specific scale information 1032 should be applied is stored. If it is determined that the scale application direction 1931 exists in the object for which the user's viewpoint is within the region, the process advances to step S1808. If it is determined that the scale application direction 1931 does not exist (the scale application direction 1931 is “NULL”) for the object for which the user's viewpoint is within the region, the process proceeds to step S1809.

ステップS1808では、クライアント装置101のCPU301は、オブジェクト制御部510の機能により、ユーザの視点が領域内にあるとされたオブジェクトのスケール適用方向1931と、当該視点の移動方向とが合致するか否かを判定する。つまりスケール適用方向1931という所定の条件を満たすか否かを判定する。スケール適用方向1931は、ある程度幅を持った方向である。そのため、スケール適用方向1931と視点の移動方向とが同様の移動方向であればよい。ユーザの視点が領域内にあるとされたオブジェクトのスケール適用方向1931と、当該視点の移動方向とが合致すると判定した場合には、ステップS1809に処理を進める。ユーザの視点が領域内にあるとされたオブジェクトのスケール適用方向1931と、当該視点の移動方向とが合致しないと判定しなかった場合には、ステップS1803に処理を進める。   In step S1808, the CPU 301 of the client device 101 uses the function of the object control unit 510 to determine whether the scale application direction 1931 of the object for which the user's viewpoint is within the region matches the movement direction of the viewpoint. Is determined. That is, it is determined whether a predetermined condition of the scale application direction 1931 is satisfied. The scale application direction 1931 is a direction having a certain width. Therefore, the scale application direction 1931 and the movement direction of the viewpoint need only be the same movement direction. If it is determined that the scale application direction 1931 of the object for which the user's viewpoint is within the region matches the moving direction of the viewpoint, the process advances to step S1809. If it is not determined that the scale application direction 1931 of the object for which the user's viewpoint is within the region does not match the moving direction of the viewpoint, the process advances to step S1803.

ステップS1809では、クライアント装置101のCPU301は、スケール設定部512の機能により、変数Flgに“1”を代入する。   In step S1809, the CPU 301 of the client device 101 substitutes “1” for the variable Flg by the function of the scale setting unit 512.

ステップS1810では、クライアント装置101のCPU301は、スケール設定部512の機能により、ユーザの視点が領域内にあるとされたオブジェクトに対応するスケール情報を、オブジェクト固有スケール情報1032から取得する。すなわち、このオブジェクト固有スケール情報1032に格納されている倍率を取得し、RAM303に保存する。   In step S1810, the CPU 301 of the client device 101 acquires, from the object-specific scale information 1032, scale information corresponding to the object for which the user's viewpoint is within the area by the function of the scale setting unit 512. That is, the magnification stored in the object-specific scale information 1032 is acquired and stored in the RAM 303.

ステップS1811では、クライアント装置101のCPU301は、スケール設定部512の機能により、ステップS1804またはステップS1810でRAM303に保存したスケール情報で、スケール情報1011を上書きする。このようにして、ユーザの視点の位置がオブジェクトの配置された領域内にあるか否かに応じて、当該オブジェクトのスケール情報とユーザが設定したスケール情報のいずれかを適用することが可能となる。   In step S1811, the CPU 301 of the client apparatus 101 overwrites the scale information 1011 with the scale information stored in the RAM 303 in step S1804 or S1810 by the function of the scale setting unit 512. In this way, it is possible to apply either the scale information of the object or the scale information set by the user, depending on whether the position of the user's viewpoint is within the area where the object is located. .

例えば、図20に示すように仮想空間でユーザ2001が歩き回っている際に、建築物のオブジェクトが配置された領域に視点が移動したとする。この場合に、このオブジェクトに対応するオブジェクト固有スケール情報1032を取得し、スケール情報1011に設定する。つまり、ユーザはオブジェクトが配置された領域内に移動するだけで、そのオブジェクトに設定されたスケール感により、当該オブジェクトを閲覧することができる。   For example, suppose that the viewpoint moves to the area where the architectural object is arranged when the user 2001 is walking around in the virtual space as shown in FIG. In this case, the object-specific scale information 1032 corresponding to this object is obtained and set in the scale information 1011. That is, the user can browse the object only by moving into the area where the object is arranged, with the sense of scale set for the object.

また、図21に示すように、オブジェクトが配置された領域にどの方向から侵入したのかによって、オブジェクト固有スケール情報1032を適用するのか否かを決定することができる。例えば、オブジェクトのスケール適用方向1931が“180度±60度”であった場合を想定する。当該オブジェクトの120度から240度の範囲の方向からユーザが侵入した場合(2102)には、オブジェクト固有スケール情報1032をスケール情報1011に設定する(図21の例で言えば、10倍から1倍にする)。こうして設定されると、図20のユーザ2001は、2002に示すように視点の位置が変更される。しかし、これ以外の方向から進入した場合(2101)は、元のスケール情報のままとなる(図21の例で言えば、10倍のままとなる)。このように、オブジェクト固有スケール情報1032を適用する方向を制限することにより、オブジェクトが配置された領域に意図せず侵入してしまった場合であっても、オブジェクト固有スケール情報1032が適用されずに済むという効果がある。   Further, as shown in FIG. 21, it is possible to determine whether or not to apply the object-specific scale information 1032 according to the direction from which the object has entered the area where the object is arranged. For example, assume that the scale application direction 1931 of the object is “180 degrees ± 60 degrees”. When the user invades the object from a direction in a range of 120 degrees to 240 degrees (2102), the object-specific scale information 1032 is set in the scale information 1011 (in the example of FIG. 21, 10 times to 1 time). To). With this setting, the position of the viewpoint of the user 2001 in FIG. However, when the vehicle enters from another direction (2101), the original scale information remains (in the example of FIG. 21, it remains at 10 times). In this way, by limiting the direction in which the object-specific scale information 1032 is applied, even if the object has inadvertently entered the area where the object is located, the object-specific scale information 1032 is not applied. This has the effect of ending.

以上説明したように、仮想空間におけるユーザの視点の高さを変更した場合でも、ユーザごとの適切な移動量で仮想空間を移動することが可能となる。   As described above, even when the height of the viewpoint of the user in the virtual space is changed, it is possible to move the virtual space by an appropriate moving amount for each user.

本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。   The present invention is, for example, possible as an embodiment as a system, an apparatus, a method, a program, a storage medium, or the like. Specifically, the present invention may be applied to a system including a plurality of devices. You may apply to the apparatus which consists of three apparatuses.

なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。   Note that the present invention includes a program that directly or remotely supplies a software program that realizes the functions of the above-described embodiments to a system or an apparatus. The present invention also includes a case where the present invention is also achieved by a computer of the system or the apparatus reading and executing the supplied program code.

したがって、本発明の機能処理をコンピュータで実現(実行可能と)するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。   Therefore, the program code itself installed in the computer in order to realize (executable) the functional processing of the present invention by the computer also realizes the present invention. That is, the present invention includes the computer program itself for realizing the functional processing of the present invention.

その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。   In that case, as long as it has the function of the program, it may be in the form of object code, a program executed by the interpreter, script data supplied to the OS, or the like.

プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。   Examples of a recording medium for supplying the program include a flexible disk, a hard disk, an optical disk, a magneto-optical disk, an MO, a CD-ROM, a CD-R, and a CD-RW. Further, there are a magnetic tape, a nonvolatile memory card, a ROM, a DVD (DVD-ROM, DVD-R), and the like.

その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。   As another program supply method, a client computer is connected to a homepage on the Internet using a browser. The computer program of the present invention or a compressed file including an automatic installation function can be supplied from the home page by downloading the file to a recording medium such as a hard disk.

また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。   Also, the present invention can be realized by dividing the program code constituting the program of the present invention into a plurality of files and downloading each file from a different homepage. In other words, the present invention also includes a WWW server that allows a plurality of users to download a program file for implementing the functional processing of the present invention on a computer.

また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。   In addition, the program of the present invention is encrypted, stored in a storage medium such as a CD-ROM, distributed to users, and downloaded to a user who satisfies predetermined conditions from a homepage via the Internet to download key information for decryption. Let it. It is also possible to execute the encrypted program by using the downloaded key information and install the program on a computer to realize the program.

また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。   The functions of the above-described embodiments are implemented when the computer executes the read program. In addition, the OS or the like running on the computer performs part or all of the actual processing based on the instructions of the program, and the functions of the above-described embodiments can also be realized by the processing.

さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。   Further, the program read from the recording medium is written to a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer. Thereafter, based on instructions of the program, a CPU or the like provided in the function expansion board or the function expansion unit performs part or all of actual processing, and the functions of the above-described embodiments are also realized by the processing.

なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。   It should be noted that the above-described embodiment is merely an example of the embodiment for carrying out the present invention, and the technical scope of the present invention should not be interpreted in a limited manner. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features.

101 クライアント装置
102 HMD
103 サーバ装置
201 オプティカルマーカ
202 赤外線カメラ
301 CPU
302 ROM
303 RAM
304 システムバス
305 入力コントローラ
306 ビデオコントローラ
307 メモリコントローラ
308 通信I/Fコントローラ
309 汎用バス
310 入力デバイス
311 外部メモリ
312 ディスプレイ
321 右目・左目ビデオカメラ
322 右目・左目ディスプレイ

101 Client device 102 HMD
103 server device 201 optical marker 202 infrared camera 301 CPU
302 ROM
303 RAM
304 System bus 305 Input controller 306 Video controller 307 Memory controller 308 Communication I / F controller 309 General-purpose bus 310 Input device 311 External memory 312 Display 321 Right-eye / left-eye video camera 322 Right-eye / left-eye display

Claims (7)

仮想空間を提示するための情報処理システムであって、
前記仮想空間に設定される視点の高さを変更するためのパラメータをユーザごとに記憶する記憶手段と、
現実空間に存在するユーザの視点の高さに基づいて、前記仮想空間に当該ユーザの視点を設定する視点設定手段と、
前記視点設定手段で設定された前記ユーザの視点の高さを、前記記憶手段に記憶される当該ユーザに対応する前記パラメータに応じて変更する視点変更手段と、
前記現実空間における前記ユーザの移動量を取得する移動量取得手段と、
前記移動量取得手段で移動量を取得されたユーザに対応する前記パラメータと前記移動量取得手段で取得した当該ユーザの移動量とを用いて、前記視点変更手段で変更された当該ユーザの視点の移動量を決定する移動量決定手段と、
前記移動量決定手段で決定された移動量で前記ユーザの視点を移動する視点移動手段と
を備えることを特徴とする情報処理システム。
An information processing system for presenting a virtual space,
Storage means for storing a parameter for changing the height of the viewpoint set in the virtual space for each user,
Viewpoint setting means for setting a viewpoint of the user in the virtual space based on a height of the viewpoint of the user existing in the real space;
A viewpoint changing unit that changes the height of the viewpoint of the user set by the viewpoint setting unit in accordance with the parameter corresponding to the user stored in the storage unit;
A moving amount acquiring unit for acquiring a moving amount of the user in the physical space;
Using the parameter corresponding to the user whose moving amount has been acquired by the moving amount acquiring unit and the moving amount of the user acquired by the moving amount acquiring unit, the viewpoint of the user changed by the viewpoint changing unit. Moving amount determining means for determining a moving amount;
An information processing system comprising: a viewpoint moving unit that moves the viewpoint of the user by the moving amount determined by the moving amount determining unit.
前記情報処理システムは、
前記仮想空間に前記ユーザを示す三次元モデルを配置する三次元モデル配置手段と、
前記三次元モデル配置手段で配置された三次元モデルを、当該三次元モデルが示すユーザに対応する前記パラメータに応じたサイズに変更するサイズ変更手段と
を更に備えることを特徴とする請求項1に記載の情報処理システム。
The information processing system,
Three-dimensional model placement means for placing a three-dimensional model indicating the user in the virtual space,
2. The apparatus according to claim 1, further comprising: a size changing unit configured to change the three-dimensional model arranged by the three-dimensional model arranging unit to a size corresponding to the parameter corresponding to the user indicated by the three-dimensional model. The information processing system as described.
前記情報処理システムは、
前記現実空間に存在するユーザの視点の高さと前記仮想空間に設定するユーザの視点の高さとに応じて、当該ユーザに対応する前記パラメータを算出するパラメータ算出手段
を更に備えることを特徴とする請求項1または2に記載の情報処理システム。
The information processing system,
The apparatus according to claim 1, further comprising a parameter calculating unit configured to calculate the parameter corresponding to the user in accordance with a height of a viewpoint of the user existing in the real space and a height of the viewpoint of the user set in the virtual space. Item 3. The information processing system according to item 1 or 2.
前記情報処理システムは、
前記現実空間における前記ユーザの向きを取得する向き取得手段と、
前記視点移動手段で移動された視点の向きを、前記向き取得手段で取得した向きに変更する向き変更手段と
を更に備え、
前記向き変更手段は、前記移動量取得手段で取得した当該ユーザの移動量は用いずに、前記仮想空間における視点の向きを変更することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理システム。
The information processing system,
A direction obtaining unit that obtains the direction of the user in the real space,
Direction changing means for changing the direction of the viewpoint moved by the viewpoint moving means to the direction acquired by the direction acquiring means,
The method according to claim 1, wherein the direction changing unit changes the direction of a viewpoint in the virtual space without using the moving amount of the user acquired by the moving amount acquiring unit. The information processing system as described.
前記情報処理システムは、
前記ユーザごとに仮想空間を生成する仮想空間生成手段と、
前記仮想空間生成手段で生成された仮想空間を、当該仮想空間に対応する前記ユーザに対して提示する仮想空間提示手段と
を更に備えることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理システム。
The information processing system,
Virtual space generation means for generating a virtual space for each user;
The virtual space generation means for presenting the virtual space generated by the virtual space generation means to the user corresponding to the virtual space, further comprising: The information processing system as described.
仮想空間に設定される視点の高さを変更するためのパラメータをユーザごとに記憶する記憶手段を備え、仮想空間を提示するための情報処理システムの制御方法であって、
前記情報処理システムの視点設定手段が、現実空間に存在するユーザの視点の高さに基づいて、前記仮想空間に当該ユーザの視点を設定する視点設定ステップと、
前記情報処理システムの視点変更手段が、前記視点設定ステップで設定された前記ユーザの視点の高さを、前記記憶手段に記憶される当該ユーザに対応する前記パラメータに応じて変更する視点変更ステップと、
前記情報処理システムの移動量取得手段が、前記現実空間における前記ユーザの移動量を取得する移動量取得ステップと、
前記情報処理システムの移動量決定手段が、前記移動量取得ステップで移動量を取得されたユーザに対応する前記パラメータと前記移動量取得ステップで取得した当該ユーザの移動量とを用いて、前記視点変更ステップで変更された当該ユーザの視点の移動量を決定する移動量決定ステップと、
前記情報処理システムの視点移動手段が、前記移動量決定ステップで決定された移動量で前記ユーザの視点を移動する視点移動ステップと
を備えることを特徴とする情報処理システムの制御方法。
A storage method for storing a parameter for changing a height of a viewpoint set in a virtual space for each user, a control method of an information processing system for presenting a virtual space,
A viewpoint setting step of setting a viewpoint of the user in the virtual space, based on a height of the viewpoint of the user existing in the real space,
A viewpoint changing step of changing a viewpoint height of the user set in the viewpoint setting step according to the parameter corresponding to the user stored in the storage unit; ,
A moving amount obtaining unit of the information processing system, the moving amount obtaining step of obtaining a moving amount of the user in the real space;
The moving amount determining means of the information processing system uses the parameter corresponding to the user whose moving amount is obtained in the moving amount obtaining step and the moving amount of the user obtained in the moving amount obtaining step to obtain the viewpoint. A moving amount determining step of determining a moving amount of the viewpoint of the user changed in the changing step;
A viewpoint moving step of moving the viewpoint of the user by the moving amount determined in the moving amount determining step, wherein the viewpoint moving means of the information processing system includes:
仮想空間に設定される視点の高さを変更するためのパラメータをユーザごとに記憶する記憶手段を備え、仮想空間を提示するための情報処理システムの制御方法を実行可能なプログラムであって、
前記情報処理システムを、
現実空間に存在するユーザの視点の高さに基づいて、前記仮想空間に当該ユーザの視点を設定する視点設定手段と、
前記視点設定手段で設定された前記ユーザの視点の高さを、前記記憶手段に記憶される当該ユーザに対応する前記パラメータに応じて変更する視点変更手段と、
前記現実空間における前記ユーザの移動量を取得する移動量取得手段と、
前記移動量取得手段で移動量を取得されたユーザに対応する前記パラメータと前記移動量取得手段で取得した当該ユーザの移動量とを用いて、前記視点変更手段で変更された当該ユーザの視点の移動量を決定する移動量決定手段と、
前記移動量決定手段で決定された移動量で前記ユーザの視点を移動する視点移動手段
として機能させることを特徴とするプログラム。

A program capable of executing a control method of an information processing system for presenting a virtual space, comprising a storage unit that stores a parameter for changing a height of a viewpoint set in a virtual space for each user,
The information processing system,
Viewpoint setting means for setting a viewpoint of the user in the virtual space based on a height of the viewpoint of the user existing in the real space;
A viewpoint changing unit that changes the height of the viewpoint of the user set by the viewpoint setting unit in accordance with the parameter corresponding to the user stored in the storage unit;
A moving amount acquiring unit for acquiring a moving amount of the user in the physical space;
Using the parameter corresponding to the user whose moving amount has been acquired by the moving amount acquiring unit and the moving amount of the user acquired by the moving amount acquiring unit, the viewpoint of the user changed by the viewpoint changing unit. Moving amount determining means for determining a moving amount;
A program that functions as a viewpoint moving unit that moves the viewpoint of the user by the movement amount determined by the movement amount determination unit.

JP2015213902A 2015-10-30 2015-10-30 Information processing system, control method thereof, and program Active JP6638326B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015213902A JP6638326B2 (en) 2015-10-30 2015-10-30 Information processing system, control method thereof, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015213902A JP6638326B2 (en) 2015-10-30 2015-10-30 Information processing system, control method thereof, and program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019232295A Division JP2020074108A (en) 2019-12-24 2019-12-24 Information processing system, control method thereof, and program

Publications (2)

Publication Number Publication Date
JP2017084214A JP2017084214A (en) 2017-05-18
JP6638326B2 true JP6638326B2 (en) 2020-01-29

Family

ID=58713188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015213902A Active JP6638326B2 (en) 2015-10-30 2015-10-30 Information processing system, control method thereof, and program

Country Status (1)

Country Link
JP (1) JP6638326B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2571286A (en) * 2018-02-22 2019-08-28 Sony Interactive Entertainment Inc Virtual reality

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005148844A (en) * 2003-11-11 2005-06-09 Fukuda Gakuen Display system
JP4186858B2 (en) * 2004-04-02 2008-11-26 松下電工株式会社 Mobile device in virtual space

Also Published As

Publication number Publication date
JP2017084214A (en) 2017-05-18

Similar Documents

Publication Publication Date Title
JP7208549B2 (en) VIRTUAL SPACE CONTROL DEVICE, CONTROL METHOD THEREOF, AND PROGRAM
AU2021203688A1 (en) Volumetric depth video recording and playback
JP6978701B2 (en) Information processing system, its control method, and program, and information processing device, its control method, and program.
JP6677890B2 (en) Information processing system, its control method and program, and information processing apparatus, its control method and program
JP7060778B2 (en) Information processing system, information processing system control method and program
CN108377361B (en) Display control method and device for monitoring video
JP2015125641A (en) Information processing device, control method therefor, and program
JP6871501B2 (en) Information processing equipment, information processing system, its control method and program
CN106980378B (en) Virtual display method and system
KR101643917B1 (en) The smart fitting apparatus based real image
JP2016122392A (en) Information processing apparatus, information processing system, control method and program of the same
JP6011567B2 (en) Information processing apparatus, control method thereof, and program
JP7273325B2 (en) Information processing device, information processing system, information processing method and program
JP6152888B2 (en) Information processing apparatus, control method and program thereof, and information processing system, control method and program thereof
JP6638326B2 (en) Information processing system, control method thereof, and program
JP2017084215A (en) Information processing system, control method thereof, and program
JP2017033299A (en) Information processing device, information processing system, control method and program thereof
JP2020074108A (en) Information processing system, control method thereof, and program
JP2020149733A (en) Appreciation system, model configuration device, control method, program, and storage medium
JP6357412B2 (en) Information processing apparatus, information processing system, information processing method, and program
JP2022181153A (en) Information processing system, information processing method and program
JP7119854B2 (en) Changed pixel region extraction device, image processing system, changed pixel region extraction method, image processing method and program
JP6810342B2 (en) Information processing equipment, information processing system, its control method and program
JP2015121892A (en) Image processing apparatus, and image processing method
JP6741939B2 (en) Information processing apparatus, information processing system, control method thereof, and program

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20161101

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20161101

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180703

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181029

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20181031

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191209

R151 Written notification of patent or utility model registration

Ref document number: 6638326

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250