JP7111645B2 - control program - Google Patents

control program Download PDF

Info

Publication number
JP7111645B2
JP7111645B2 JP2019063189A JP2019063189A JP7111645B2 JP 7111645 B2 JP7111645 B2 JP 7111645B2 JP 2019063189 A JP2019063189 A JP 2019063189A JP 2019063189 A JP2019063189 A JP 2019063189A JP 7111645 B2 JP7111645 B2 JP 7111645B2
Authority
JP
Japan
Prior art keywords
data
hmd
control data
user
controller
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
JP2019063189A
Other languages
Japanese (ja)
Other versions
JP2019220147A (en
JP2019220147A5 (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.)
Virtual Cast Inc
Original Assignee
Virtual Cast 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 Virtual Cast Inc filed Critical Virtual Cast Inc
Priority to JP2019063189A priority Critical patent/JP7111645B2/en
Publication of JP2019220147A publication Critical patent/JP2019220147A/en
Publication of JP2019220147A5 publication Critical patent/JP2019220147A5/en
Application granted granted Critical
Publication of JP7111645B2 publication Critical patent/JP7111645B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、VR(Virtual Reality)、AR(Augmented Reality)、またはMR(Mixed Reality)技術に関する。 The present invention relates to VR (Virtual Reality), AR (Augmented Reality), or MR (Mixed Reality) technology.

従来、HMD(Head Mounted Display)を装着した複数のユーザ間でネットワークを介して仮想体験、すなわちVR体験を共有することが知られている。具体的には、ユーザの姿勢(例えば、視線、頭の向き、など)に応じて、仮想空間における当該ユーザの分身であるアバターの姿勢を制御することが知られている。 2. Description of the Related Art Conventionally, it is known to share a virtual experience, that is, a VR experience, via a network among a plurality of users wearing HMDs (Head Mounted Displays). Specifically, it is known to control the posture of an avatar, which is the alter ego of the user in a virtual space, according to the user's posture (eg, line of sight, head orientation, etc.).

特許文献1は、第1ユーザがHMDを取り外した場合、第2ユーザは、第1ユーザがHMDを装着していないことを把握していないため、第1アバター(第1ユーザ)が反応しないことに対して違和感を抱く([0004])、といった問題を改善し、ユーザにリッチな仮想体験を提供することを目的としている([0005])。具体的には、特許文献1には、HMD110の傾き情報に基づいて、ユーザAがHMD110を取り外したかどうかを判定し[0095]、ユーザAがHMD110を取り外したと判定した場合に非装着情報を生成し[0100]、ユーザ端末1Bは、非装着情報を受信した後に、アバター4Aの顔の表情をデフォルトの顔の表情に設定する[0101]こと、が記載されている。また、ユーザAが再びHMD110を装着したかどうかを判定し[0113]、装着された場合にはアバター4Aの顔の表情を更新すること[0115]も記載されている。 According to Patent Document 1, when the first user removes the HMD, the second user does not know that the first user is not wearing the HMD, so the first avatar (first user) does not react. ([0004]), and provide the user with a rich virtual experience ([0005]). Specifically, in Patent Document 1, based on the tilt information of the HMD 110, it is determined whether or not the user A has removed the HMD 110 [0095], and when it is determined that the user A has removed the HMD 110, non-wearing information is generated. [0100], and after receiving the non-wearing information, the user terminal 1B sets the facial expression of the avatar 4A to the default facial expression [0101]. It also describes determining whether or not the user A has worn the HMD 110 again [0113], and updating the facial expression of the avatar 4A when the HMD 110 has been worn [0115].

特許第6212666号公報Japanese Patent No. 6212666

ユーザの姿勢に応じて仮想空間における当該ユーザのアバターの姿勢を制御する場合に、アバターがユーザの意図しない姿勢、例えば不自然な姿勢を取るおそれがある。特に、HMDが一人称視点の仮想空間画像を表示する場合には、ユーザは自己のアバターの姿を直接的に見ることができないので、異変を察知して修正を試みることが困難である。 When controlling the posture of the user's avatar in the virtual space according to the user's posture, the avatar may take a posture unintended by the user, such as an unnatural posture. In particular, when the HMD displays a virtual space image from a first-person viewpoint, the user cannot directly see the appearance of his/her own avatar, making it difficult to perceive anomalies and attempt corrections.

ユーザのアバターが不自然な姿勢を取っていると、当該ユーザ自身がその事実に気づいた時に恥ずかしい思いや不快感を抱いたりするだけでなく、他のユーザもアバターを含む仮想空間の完成度が低いなどとして興醒めさせてしまう可能性がある。これは、VR体験のみならず、ARまたはMRといった仮想的な要素を含む体験(以降、仮想的体験と称する)全般において生じ得る。 If a user's avatar takes an unnatural posture, not only will the user themselves feel embarrassed or uncomfortable when they realize this fact, but other users will also feel that the virtual space including the avatar is not perfect. There is a possibility that it will make you lose interest because it is low. This can occur not only in VR experiences but also in general experiences including virtual elements such as AR or MR (hereinafter referred to as virtual experiences).

本発明は、アバター画像によるユーザの仮想的体験の劣化を防止することを目的とする。 An object of the present invention is to prevent deterioration of a user's virtual experience due to avatar images.

本発明の一態様に係るデータ差し替え装置は、取得部と、判定部と、差し替え部とを含む。取得部は、ユーザの頭部に装着可能な第1のデバイスの位置と、ユーザが把持可能な第2のデバイスの位置とに基づく値を持つ第1の制御データを取得する。判定部は、既定の条件が満足するか否かを判定する。差し替え部は、条件が満足すると判定された場合に、第1の制御データを第2の制御データに差し替える。第2の制御データは、第1のデバイスおよび第2のデバイスの少なくとも一方の位置に基づかない値を持つ。 A data replacement device according to an aspect of the present invention includes an acquisition unit, a determination unit, and a replacement unit. The acquisition unit acquires first control data having a value based on the position of a first device that can be worn on the user's head and the position of a second device that can be held by the user. A determination unit determines whether or not a predetermined condition is satisfied. The replacement unit replaces the first control data with the second control data when it is determined that the condition is satisfied. The second control data has a value that is not based on the location of at least one of the first device and the second device.

本発明によれば、アバター画像によるユーザの仮想的体験の劣化を防止することを目的とする。 SUMMARY OF THE INVENTION It is an object of the present invention to prevent deterioration of a user's virtual experience due to avatar images.

実施形態に係るデータ差し替え装置を例示するブロック図。1 is a block diagram illustrating a data replacement device according to an embodiment; FIG. 実施形態に係るデータ差し替え装置を組み込んだ端末を含む仮想的体験共有システムを例示するブロック図。1 is a block diagram illustrating a virtual experience sharing system including a terminal incorporating a data replacement device according to an embodiment; FIG. 実施形態に係るデータ差し替え装置を組み込んだ端末の一例を示すブロック図。1 is a block diagram showing an example of a terminal incorporating a data replacement device according to an embodiment; FIG. HMD、コントローラおよびユーザの様子の一例を示す図。The figure which shows an example of the appearance of HMD, a controller, and a user. 図4のHMDおよびコントローラの位置に基づく第1の制御データを用いて生成されるユーザのアバター画像を例示する図。FIG. 5 is a diagram exemplifying a user's avatar image generated using first control data based on the positions of the HMD and controller of FIG. 4; HMD、コントローラおよびユーザの様子の別の例を示す図。The figure which shows another example of the appearance of HMD, a controller, and a user. 図6のHMDおよびコントローラの位置に基づく第1の制御データを差し替えた第2の制御データを用いて生成されるユーザのアバター画像を例示する図。FIG. 7 is a diagram exemplifying a user's avatar image generated using second control data that replaces first control data based on the positions of the HMD and controller of FIG. 6 ; HMD、コントローラおよびユーザの様子の別の例を示す図。The figure which shows another example of the appearance of HMD, a controller, and a user. 図3の端末の動作を例示するフローチャート。4 is a flowchart illustrating the operation of the terminal of FIG. 3; 図3の変形例を示すブロック図。FIG. 4 is a block diagram showing a modification of FIG. 3;

以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。例えば、複数の同一または類似の要素が存在する場合に、各要素を区別せずに説明するために共通の符号を用いることがあるし、各要素を区別して説明するために当該共通の符号に加えて枝番号を用いることもある。 An embodiment will be described below with reference to the drawings. Elements that are the same as or similar to elements that have already been explained are denoted by the same or similar reference numerals, and overlapping explanations are basically omitted. For example, when there are a plurality of identical or similar elements, common reference numerals may be used to describe each element without distinction, and the common reference numerals may be used to distinguish and describe each element. In addition, branch numbers are sometimes used.

(実施形態)
実施形態に係るデータ差し替え装置は、仮想的体験共有システムを構成する端末に組み込むことができる。かかるシステムは、図2に例示される。このシステムでは、端末200は互いに、例えばインターネットなどのネットワーク経由で接続されており、データを送受信できる。
(embodiment)
A data replacement device according to an embodiment can be incorporated in a terminal that constitutes a virtual experience sharing system. Such a system is illustrated in FIG. In this system, terminals 200 are connected to each other via a network such as the Internet, and can transmit and receive data.

なお、図2のシステムでは、データ伝送に伴う遅延を低減してリアルタイム性の高い仮想的体験を共有することなどを目的に、端末200同士がサーバを介してデータを送受信するC/S(Client / Server)型のネットワークではなく、端末200同士がデータを直接送受信するP2P(Peer to Peer)型のネットワークが採用されている。しかしながら、C/S型のネットワークを採用したとしても、本実施形態に係るデータ差し替え装置を組み込んだ端末200を用いて仮想的体験共有システムを構築することは可能である。 In the system of FIG. 2, the terminals 200 communicate with each other via a server for the purpose of reducing the delay associated with data transmission and sharing a highly real-time virtual experience. A P2P (Peer to Peer) type network in which the terminals 200 directly transmit and receive data is adopted instead of a type network of the P2P (Peer to Peer) type. However, even if a C/S type network is adopted, it is possible to construct a virtual experience sharing system using the terminal 200 incorporating the data replacement device according to this embodiment.

端末200は、ユーザの頭部に装着可能なHMD(第1のデバイス)10に表示されるVR/AR/MR画像を制御するように構成されたコンピュータであり、当該HMD10とユーザが把持可能なコントローラ(第2のデバイス)20とにそれぞれ接続されている。なお、コントローラ20は、ユーザ毎に、2つ(両手用)用意されてもよいし、1つ(片手用)用意されてもよい。また、コントローラ20は、手以外の部位に装着されてもよい。さらに、図2には示されていないものの、HMD10および/またはコントローラ20の位置を検出するための位置センサシステムに含まれる要素の1つであるベースステーションがさらに端末200に接続されてもよい。 The terminal 200 is a computer configured to control VR/AR/MR images displayed on an HMD (first device) 10 that can be worn on the user's head. are connected to a controller (second device) 20 respectively. Two controllers 20 (for both hands) or one controller 20 (for one hand) may be prepared for each user. Also, the controller 20 may be worn on a part other than the hand. Furthermore, although not shown in FIG. 2, a base station, which is one of the elements included in the position sensor system for detecting the position of HMD 10 and/or controller 20, may be further connected to terminal 200.

端末200は、HMD10、コントローラ20、および/またはベースステーションと、例えばUSB(Universal Serial Bus)ケーブル、HDMI(登録商標)(High―Definition Multimedia Interface)ケーブル、などの有線通信手段により接続されてもよいし、例えばBlutooth、WirelessHD、WHDI(Wireless Home Digital Interface)、などの無線通信手段により接続されてもよい。 The terminal 200 may be connected to the HMD 10, the controller 20, and/or the base station by wired communication means such as a USB (Universal Serial Bus) cable, HDMI (registered trademark) (High-Definition Multimedia Interface) cable, or the like. Alternatively, they may be connected by wireless communication means such as Bluetooth, WirelessHD, and WHDI (Wireless Home Digital Interface).

端末200は、後述されるようにHMD10の位置およびコントローラ20の位置に基づく値を持つ第1の制御データを取得し、当該第1の制御データを条件付きで第2の制御データに差し替える。後述するように、第2の制御データは、HMD10およびコントローラ20の少なくとも一方の位置に基づかない値を持つ。そして、端末200は、差し替えを行った場合には第2の制御データを他の端末200へ送信し、そうでない場合には第1の制御データを他の端末200へ送信する。 The terminal 200 acquires first control data having a value based on the position of the HMD 10 and the position of the controller 20 as described later, and conditionally replaces the first control data with the second control data. As will be described later, the second control data has a value that is not based on the position of at least one of HMD 10 and controller 20 . Then, the terminal 200 transmits the second control data to the other terminal 200 when the replacement is performed, and transmits the first control data to the other terminal 200 otherwise.

第1の制御データまたは第2の制御データを受信した他の端末200は、受信した制御データに基づいてユーザのアバター画像を生成する。すなわち、ユーザは、HMD10を装着した頭やコントローラ20を把持した手を動かすことで自らの分身であるアバターに自由な姿勢を取らせることができる。 Other terminals 200 that have received the first control data or the second control data generate user avatar images based on the received control data. That is, the user can make the avatar, which is the alter ego of the user, take a free posture by moving the head on which the HMD 10 is mounted or the hand holding the controller 20 .

さらに、端末200は、後述されるマイクロホンによって生成された音声データを他の端末200へ送信してもよい。他の端末200は、この音声データを再生して出力する。これにより、ユーザ間の音声チャット、またはライブなどの臨場感のあるイベントをVR/AR/MR空間において実現することが可能となる。 Furthermore, the terminal 200 may transmit audio data generated by a microphone, which will be described later, to another terminal 200 . Other terminals 200 reproduce and output this audio data. As a result, it is possible to realize a realistic event such as a voice chat between users or a live event in the VR/AR/MR space.

具体的には、他の端末200は、受信した制御データの示すHMD10の位置に応じてアバター画像の頭部の位置を決定し、当該制御データの示すコントローラ20の位置に応じてアバター画像の手の位置を決定する。例えばユーザがHMD10を頭部に装着し、かつ(右手用)コントローラ21および(左手用)コントローラ22(これらはいずれも前述のコントローラ20と同様であり得る)を両手に把持した状態で、図4に例示される姿勢を取ったとする。この場合に、ユーザのアバターは、図5に例示される姿勢を取ることになる。アバターの姿勢の制御には、例えばIK(Inverse Kinematics)技術を利用することができる。 Specifically, the other terminal 200 determines the position of the head of the avatar image according to the position of the HMD 10 indicated by the received control data, and moves the hands of the avatar image according to the position of the controller 20 indicated by the control data. determine the position of For example, when the user wears the HMD 10 on the head and holds the (right hand) controller 21 and the (left hand) controller 22 (both of which can be the same as the controller 20 described above) in both hands, FIG. Suppose that the posture illustrated in is taken. In this case, the user's avatar will take the pose illustrated in FIG. IK (Inverse Kinematics) technology, for example, can be used to control the posture of the avatar.

HMD10は、アバター画像を含むVR/AR/MR画像を表示するための表示装置に加え、種々のセンサ、スピーカ、マイクロホン、などを含み得る。種々のセンサは、動きセンサ、装着センサ、または位置センサシステムに含まれる要素の一部(後述されるマーカーまたはカメラ)を含み得る。HMD10は、端末200から画像データおよび音声データを受け取って、これらを出力したり、各種センサのセンサデータを端末200へ送信したりする。 The HMD 10 may include various sensors, speakers, microphones, etc. in addition to a display device for displaying VR/AR/MR images including avatar images. The various sensors may include motion sensors, wearable sensors, or some of the elements included in the position sensor system (markers or cameras, discussed below). The HMD 10 receives image data and audio data from the terminal 200 and outputs them and transmits sensor data from various sensors to the terminal 200 .

表示装置は、透過型ディスプレイであってもよいし、非透過型ディスプレイであってもよい。例えば、HMD10を装着したユーザの視界の少なくとも一部を覆うように表示装置のサイズおよび配置が定められる。表示装置は、左目用表示装置と右目用表示装置とで構成されてもよいし、両者が一体化されていてもよい。 The display device may be a transmissive display or a non-transmissive display. For example, the size and arrangement of the display device are determined so as to cover at least part of the field of view of the user wearing the HMD 10 . The display device may be composed of a left-eye display device and a right-eye display device, or both may be integrated.

動きセンサは、例えば、加速度センサ、ジャイロスコープ、磁気センサ、などであり得る。動きセンサによって検出されたセンサデータは、ユーザの頭部の姿勢(例えば傾き)の推定に利用することができる。具体的には、このセンサデータに基づいて、ユーザの頭部の3次元的な回転角であるYaw角、Roll角、およびPitch角が推定され、これに応じてユーザの視界を決定する仮想カメラの視軸およびアバターの頭部の姿勢が制御され得る。 Motion sensors can be, for example, accelerometers, gyroscopes, magnetic sensors, and the like. Sensor data detected by the motion sensor can be used to estimate the pose (eg, tilt) of the user's head. Specifically, based on this sensor data, the Yaw angle, Roll angle, and Pitch angle, which are the three-dimensional rotation angles of the user's head, are estimated, and the virtual camera determines the user's field of view accordingly. , and the pose of the avatar's head can be controlled.

装着センサは、ユーザがHMD10を装着/取り外したことを示すセンサデータ(イベントデータ)を発生する。装着センサの仕組みは任意であるが、例えば、HMD10に設けられたバネの弾性力の変化、HMD10の装着時にユーザの鼻などの身体の一部に接触するパッド間を流れる電流の変化、などに応じてイベントデータを発生することが可能である。 The wearing sensor generates sensor data (event data) indicating that the user has worn/removed the HMD 10 . Although the mechanism of the wearing sensor is arbitrary, for example, changes in the elastic force of the springs provided in the HMD 10, changes in current flowing between pads that contact a part of the body such as the user's nose when the HMD 10 is worn, etc. Event data can be generated accordingly.

スピーカは、端末200から音声データを受け取り、これに基づいて音声を出力する。スピーカは、典型的にはヘッドホン型であるが、これ以外のスピーカシステムとして構成されてもよい。また、スピーカは、HMD10とは別体であってもよい。マイクロホンは、音声(主にユーザの発話)を収集する。マイクロホンは、収集した音声に基づいて音声データを生成し、端末200へ送る。 The speaker receives audio data from the terminal 200 and outputs audio based on this. The speaker is typically of the headphone type, but may be configured as a speaker system other than this. Also, the speaker may be separate from the HMD 10 . A microphone collects sound (mainly user speech). The microphone generates audio data based on the collected audio and sends it to terminal 200 .

コントローラ20は、ユーザ入力を受け付けるボタンに加え、例えば、HMD10と同様の動きセンサ、位置センサシステムに含まれる要素の一部、などを含み得る。さらに、コントローラ20は、ユーザがコントローラ20を把持/手放したことを示すセンサデータ(イベントデータ)を発生する把持センサを含んでもよい。把持センサの仕組みは任意であるが、例えば、ユーザの把持力によりコントローラ20に加わる圧力の変化、コントローラ20の表面に設けられたセンサ電極と人体との間の静電容量の変化、などに応じてイベントデータを発生することが可能である。コントローラ20は、ユーザ入力データ、各種センサのセンサデータ、などを端末200へ送信したりする。 The controller 20 may include, for example, a motion sensor similar to the HMD 10, some of the elements included in the position sensor system, etc., in addition to buttons for accepting user input. Further, the controller 20 may include a grip sensor that generates sensor data (event data) indicating that the user has gripped/released the controller 20 . The mechanism of the grip sensor is arbitrary. can generate event data. The controller 20 transmits user input data, sensor data from various sensors, and the like to the terminal 200 .

位置センサシステムは、例えばカメラ(ポジション・トラッキング・カメラ)とマーカー(トラッカーとも呼ばれる)との組み合わせにより実現される。マーカーは、赤外光または可視光のエミッタ(例えばLED(Light Emitting Diode))であってもよいし、カメラの撮影時にエミッタから発せられる赤外光または可視光を反射するための反射材であってもよい。カメラは、マーカーが赤外光を照射または反射する場合には赤外線センサであり得るし、マーカーが可視光を照射または反射する場合には可視光カメラであり得る。 A position sensor system is realized, for example, by a combination of a camera (position tracking camera) and a marker (also called a tracker). The marker may be an emitter of infrared light or visible light (for example, an LED (Light Emitting Diode)), or a reflective material for reflecting the infrared light or visible light emitted from the emitter during photographing by a camera. may The camera can be an infrared sensor if the marker emits or reflects infrared light or a visible light camera if the marker emits or reflects visible light.

典型的には、HMD10/コントローラ20に複数のマーカーが取り付けられ、カメラがHMD10/コントローラ20から離れた位置に設置された装置(ベースステーション)に取り付けられる。カメラの撮影画像に基づいて、HMD10/コントローラ20の位置を推定することができる。具体的には、ベースステーションは、撮影画像に基づいて検知点の位置、傾き、発光強度などを検出することができる。ベースステーションは、かかる検知点のデータに基づいてHMD10/コントローラ20の位置(座標)データを計算してもよいし、かかる計算は端末200に委ねられてもよい。なお、変形例として、カメラをHMD10/コントローラ20側に設け、マーカーをベースステーション側に設けることも可能である。また、HMD10およびコントローラ20に取り付けられるマーカーに加えて、ユーザの関節、抹消部などにさらなるマーカーが取り付けられてもよい。これにより、ユーザの姿勢をより正確に推定することが可能となる。 Typically, a plurality of markers are attached to the HMD 10/controller 20, and a camera is attached to a device (base station) installed at a position distant from the HMD 10/controller 20. FIG. The position of the HMD 10/controller 20 can be estimated based on the image captured by the camera. Specifically, the base station can detect the position, tilt, luminescence intensity, etc. of the detection point based on the captured image. The base station may calculate the position (coordinate) data of the HMD 10/controller 20 based on the data of such detection points, or such calculation may be entrusted to the terminal 200 . As a modification, it is also possible to provide the camera on the HMD 10/controller 20 side and the marker on the base station side. Also, in addition to the markers attached to the HMD 10 and controller 20, additional markers may be attached to the user's joints, peripheral portions, and the like. This makes it possible to more accurately estimate the posture of the user.

以下、端末200のハードウェア構成について説明する。端末200は、HMD10の制御装置となり得る種々の電子デバイス、例えば、PC(Personal Computer)、モバイル端末(例えば、タブレット、ファブレット、スマートフォン、ラップトップ、フィーチャーフォン、ウェアラブルデバイス、ポータブルゲーム機、など)、据え置き型ゲーム機、などであり得るが、これらに限られない。 The hardware configuration of terminal 200 will be described below. The terminal 200 is various electronic devices that can serve as a control device for the HMD 10, such as PCs (Personal Computers), mobile terminals (eg tablets, phablets, smartphones, laptops, feature phones, wearable devices, portable game machines, etc.). , a stationary game machine, etc., but is not limited to these.

なお、端末200は、HMD10または他のデバイス(コントローラ20、ベースステーション、など)と必ずしも別体でなくてもよい。例えば、端末200がHMD10またはベースステーションに内蔵されていてもよいし、端末200をコントローラ20として扱うこともあり得る。 Note that the terminal 200 does not necessarily have to be separate from the HMD 10 or other devices (controller 20, base station, etc.). For example, the terminal 200 may be built in the HMD 10 or the base station, or the terminal 200 may be treated as the controller 20.

端末200は、実施形態に係るデータ差し替え装置としての処理、入出力制御、通信制御、画像/音声処理、などを行うプロセッサを含む。ここで、プロセッサは、典型的にはCPU(Central Processing Unit)および/またはGPU(Graphics Processing Unit)であるが、マイコン、FPGA(Field Programmable Gate Array)、DSP(Digital Signal Processor)、またはその他の汎用または専用のプロセッサなどであってもよい。 The terminal 200 includes a processor that performs processing, input/output control, communication control, image/audio processing, etc. as a data replacement device according to the embodiment. Here, the processor is typically a CPU (Central Processing Unit) and/or a GPU (Graphics Processing Unit), but may be a microcomputer, FPGA (Field Programmable Gate Array), DSP (Digital Signal Processor), or other general-purpose processor. Alternatively, a dedicated processor or the like may be used.

また、端末200は、かかる処理を実現するためにプロセッサによって実行されるプログラムおよび当該プロセッサによって使用されるデータ、例えば、アバター、背景、などのVR/AR/MR体験を演出するための各種オブジェクトの基となる画像データを一時的に格納するメモリを含んでいる。メモリは、かかるプログラム/データが展開されるワークエリアを有するRAM(Random Access Memory)を含み得る。 The terminal 200 also includes programs executed by a processor and data used by the processor to realize such processing, such as avatars, backgrounds, and other various objects for creating VR/AR/MR experiences. It includes memory for temporarily storing the underlying image data. The memory may include a RAM (Random Access Memory) having a work area in which such programs/data are deployed.

なお、端末200は、全てのデータをオンメモリの状態で扱ってもよいし、一部のデータが補助記憶装置に退避されていてもよい。補助記憶装置は、例えば、端末200に内蔵または外付けされたHDD(Hard Disc Drive)、SSD(Solid State Drive)、フラッシュメモリなどであってもよいし、端末200からアクセス可能なデータベースサーバであってもよい。 Note that the terminal 200 may handle all data in an on-memory state, or part of the data may be saved in an auxiliary storage device. The auxiliary storage device may be, for example, an internal or external HDD (Hard Disc Drive), SSD (Solid State Drive), flash memory, or the like, or a database server accessible from the terminal 200. may

端末200は、さらに、ネットワークに接続するための通信I/F(インタフェース)を利用可能である。通信I/Fは、端末200に内蔵されてもよいし、端末200に外付けされてもよい。通信I/Fは、他の端末200、および/または、外部装置、例えば、HMD10、コントローラ20、ベースステーション、などと通信をするためのモジュールであって、送受信のための信号処理回路、アンテナ、LAN(Local Area Network)端子などを含み得る。通信I/Fは、例えば移動通信などの広域通信用のモジュール、無線/有線LAN用のモジュール、Bluetooth(登録商標)用のモジュール、などであり得る。 Terminal 200 can also use a communication I/F (interface) for connecting to a network. The communication I/F may be built in terminal 200 or externally attached to terminal 200 . The communication I/F is a module for communicating with another terminal 200 and/or an external device such as the HMD 10, controller 20, base station, etc., and includes a signal processing circuit for transmission and reception, an antenna, A LAN (Local Area Network) terminal or the like may be included. The communication I/F can be, for example, a module for wide area communication such as mobile communication, a module for wireless/wired LAN, a module for Bluetooth (registered trademark), or the like.

端末200は、さらに、外部装置、例えば、HMD10、コントローラ20、ベースステーション、などにケーブル接続するための入出力I/Fを利用可能である。入出力I/Fは、USB端子、DVI(Digital Visual Interface)端子、HDMI端子、またはその他のデータ転送用ケーブルのための端子、などである。 The terminal 200 can also use an input/output I/F for cable connection to external devices such as the HMD 10, controller 20, base station, and the like. The input/output I/F is a USB terminal, a DVI (Digital Visual Interface) terminal, an HDMI terminal, or other terminals for data transfer cables.

端末200は、さらに、各要素、例えば、プロセッサ、メモリ、補助記憶装置、通信I/F、入出力I/Fなどの間でデータを転送するためのバスを含み得る。 Terminal 200 may further include buses for transferring data between elements such as processors, memories, auxiliary storage devices, communication I/Fs, input/output I/Fs, and the like.

続いて、実施形態に係るデータ差し替え装置を説明する。図1には、実施形態に係るデータ差し替え装置100の機能構成が例示される。データ差し替え装置100は、データ取得部101と、状態判定部102と、データ差し替え部103とを含む。 Next, a data replacement device according to an embodiment will be described. FIG. 1 illustrates the functional configuration of a data replacement device 100 according to an embodiment. Data replacement device 100 includes data acquisition unit 101 , state determination unit 102 , and data replacement unit 103 .

データ取得部101は、例えば前述の通信I/F、入出力I/F、またはプロセッサにより実現され得る。データ取得部101は、第1の制御データを取得し、これを状態判定部102へ送る。ここで、第1の制御データは、HMD10の位置とコントローラ20の位置とに基づく値を持つ。前述のように、HMD10/コントローラ20の位置は、位置センサシステムを用いて推定することができる。 The data acquisition unit 101 can be realized by, for example, the aforementioned communication I/F, input/output I/F, or processor. Data acquisition section 101 acquires the first control data and sends it to state determination section 102 . Here, the first control data has values based on the position of the HMD 10 and the position of the controller 20 . As previously mentioned, the position of HMD 10/controller 20 can be estimated using a position sensor system.

外部装置、例えば、HMD10、コントローラ20および/またはベースステーションがHMD10/コントローラ20の位置を推定して第1の制御データを生成する場合には、データ取得部101はこの外部装置から第1の制御データを取得すればよい。他方、端末200(の図示されない位置推定部)が位置センサシステムの出力データ(例えば、検知点の位置、傾き、発光強度などを示すデータ)に基づいてHMD10/コントローラ20の位置を推定して第1の制御データを生成する場合には、データ取得部101は端末200のメモリまたは補助記憶装置から第1の制御データを取得すればよい。 When an external device such as the HMD 10, the controller 20 and/or the base station estimates the position of the HMD 10/controller 20 and generates the first control data, the data acquisition unit 101 receives the first control data from the external device. Just get the data. On the other hand, terminal 200 (a position estimating unit, not shown) estimates the position of HMD 10/controller 20 based on the output data of the position sensor system (for example, the data indicating the position, tilt, light emission intensity, etc. of the detection point). When generating one piece of control data, the data acquisition unit 101 may acquire the first control data from the memory or auxiliary storage device of the terminal 200 .

上記説明では、データ差し替え装置100が第1の制御データを他の端末200へ送信する前に条件付きで差し替えを行うことが前提とされている。しかしながら、後述の変形例1において説明するように、端末200は自らの第1の制御データを差し替えずに他の端末200へ送信し、当該他の端末200に組み込まれたデータ差し替え装置100が受信した第1の制御データに対して条件付きで差し替えを行うようにすることも可能である。後者の構成を前提とすると、データ取得部101は、ネットワーク経由で受信された第1の制御データを取得することになる。 In the above description, it is assumed that the data replacement device 100 conditionally replaces the first control data before transmitting the first control data to the other terminal 200 . However, as will be described in Modification 1 below, the terminal 200 transmits its own first control data to the other terminal 200 without replacing it, and the data replacement device 100 incorporated in the other terminal 200 receives it. It is also possible to conditionally replace the first control data. Assuming the latter configuration, the data acquisition unit 101 acquires the first control data received via the network.

なお、HMD10/コントローラ20が前述の装着センサ/把持センサを含む場合には、データ取得部101はこの装着センサ/把持センサからのイベントデータをさらに取得し、状態判定部102へ送ってもよい。 If the HMD 10 /controller 20 includes the wear sensor/grip sensor described above, the data acquisition unit 101 may further acquire event data from this wear sensor/grip sensor and send it to the state determination unit 102 .

状態判定部102は、例えば前述のプロセッサにより実現され得る。状態判定部102は、データ取得部101から第1の制御データ(およびイベントデータ)を受け取る。状態判定部102は、第1の制御データに関して既定の差し替え開始条件が満足するか否かを判定する。そして、状態判定部102は、判定結果を示すデータとともに第1の制御データをデータ差し替え部103へ送る。 The state determination unit 102 can be implemented by, for example, the processor described above. State determination unit 102 receives first control data (and event data) from data acquisition unit 101 . The state determination unit 102 determines whether or not a predetermined replacement start condition is satisfied for the first control data. Then, state determination section 102 sends first control data to data replacement section 103 together with data indicating the determination result.

ここで、状態判定部102は、第1の制御データに基づいて差し替え開始条件が満足するか否かを判定してもよいし、イベントデータに基づいて差し替え開始条件が満足するか否かを判定してもよい。差し替え開始条件は、例えば第1の制御データに忠実にアバターを制御すると当該アバターが不自然な姿勢を取ると予想される場合に満足するように定義され得る。 Here, the state determination unit 102 may determine whether or not the replacement start condition is satisfied based on the first control data, or may determine whether or not the replacement start condition is satisfied based on the event data. You may The replacement start condition can be defined to be satisfied, for example, when the avatar is expected to take an unnatural posture if the avatar is controlled faithfully to the first control data.

具体的には、状態判定部102は、差し替え開始条件の一例として、HMD10がユーザの頭部に装着されているか否かを判定してもよい。HMD10がユーザの頭から取り外されると、HMD10の位置は最早ユーザの頭部の位置に連動せず、極端に低い位置もしくは高い位置、またはユーザの手(より正確にはコントローラ20)の位置から極端に離れた位置に動かされる可能性がある。かかる場合に、HMD10の位置に合わせてアバターの頭部の位置を決定すると、アバターの姿勢が不自然なものとなる可能性がある。 Specifically, the state determination unit 102 may determine whether or not the HMD 10 is worn on the user's head as an example of the replacement start condition. When the HMD 10 is removed from the user's head, the position of the HMD 10 is no longer tied to the position of the user's head, but rather from an extremely low or high position, or from the position of the user's hands (more precisely, the controller 20). can be moved away from each other. In such a case, if the position of the avatar's head is determined according to the position of the HMD 10, the posture of the avatar may become unnatural.

状態判定部102は、例えば、HMD10の装着/取り外しイベント発生時に装着センサからの出力されるイベントデータに基づいて、HMD10がユーザの頭部に装着されているか否かを判定し得る。 The state determination unit 102 can determine, for example, whether the HMD 10 is worn on the user's head based on event data output from the wear sensor when an event of wearing/removing the HMD 10 occurs.

また、ユーザは、頭部からHMD10を取り外す時にHMD10を頭よりも大幅に高い位置に持ち上げる可能性がある。そこで、状態判定部102は、差し替え開始条件の一例として、第1の制御データがHMD10の高さが既定の第1の高さ以上であることを示す値を持つか否かを判定してもよい。 Also, the user may lift the HMD 10 significantly higher than the head when removing the HMD 10 from the head. Therefore, the state determination unit 102 determines whether or not the first control data has a value indicating that the height of the HMD 10 is equal to or higher than the predetermined first height, as an example of the replacement start condition. good.

第1の高さは、アバターの姿勢が不自然であると定義されないために要求される頭部の高さの上限値を意味し得る。第1の高さは、ユーザ単位で定められてもよいし、仮想的体験共有システム単位で定められてもよい。一例として、第1の高さは、ユーザ個人または平均的なユーザの頭部の高さにオフセットを加えた高さ、などであり得る。 The first height may refer to the upper limit of head height required for the avatar's pose not to be defined as unnatural. The first height may be defined for each user or may be defined for each virtual experience sharing system. As an example, the first height may be the height of the user's individual or average user's head plus an offset, and so on.

また、ユーザは、頭部からHMD10を取り外した後、例えば床などの低地に置くことがあり得る。かかる場合に、HMD10の位置に合わせてアバターの頭部の位置を決定すると、アバターは例えば低地に頭部を付けて倒れ込んだような姿勢を取る可能性がある。 Also, after removing the HMD 10 from the head, the user may place it on a low ground such as the floor. In such a case, if the position of the avatar's head is determined according to the position of the HMD 10, the avatar may, for example, take a posture as if it were lying down with its head on a low ground.

そこで、状態判定部102は、差し替え開始条件の一例として、第1の制御データがHMD10の高さが既定の第2の高さ未満であることを示す値を持つか否かを判定してもよい。図6の例では、第2の高さはH0に定められており、かつHMD10の高さはH0よりも低いので、状態判定部102は差し替え開始条件が満足すると判定する。 Therefore, the state determination unit 102 determines whether or not the first control data has a value indicating that the height of the HMD 10 is less than the predetermined second height, as an example of the replacement start condition. good. In the example of FIG. 6, the second height is set to H0, and the height of the HMD 10 is lower than H0, so the state determination unit 102 determines that the replacement start condition is satisfied.

第2の高さは、アバターの姿勢が不自然であると定義されないために要求される頭部の高さの下限値を意味し得る。第2の高さは、ユーザ単位で定められてもよいし、仮想的体験共有システム単位で定められてもよい。一例として、第2の高さは、ユーザ個人または平均的なユーザの腰の高さ、膝の高さ、前屈時の頭部の高さ、などであり得る。 The second height can mean the lower limit of the head height required for the avatar's pose not to be defined as unnatural. The second height may be defined for each user or may be defined for each virtual experience sharing system. As an example, the second height can be the height of the user's individual or average user's waist, knee height, head height when bending forward, and the like.

また、差し替え開始条件は、第1の制御データがHMD10の高さが上記第1の高さ以上または上記第2の高さ未満であることを示す値を持つこと、であってもよい。図8の例では、第1の高さおよび第2の高さはそれぞれH1およびH2に定められており、かつHMD10の高さはH1以上であるので、状態判定部102は差し替え開始条件が満足すると判定する。これにより、HMD10の高さが、前述の下限値から上限値までの範囲に入らない場合に、データの差し替えを行って、アバターの姿勢が崩壊するのを防止することができる。 Also, the replacement start condition may be that the first control data has a value indicating that the height of the HMD 10 is equal to or greater than the first height or less than the second height. In the example of FIG. 8, the first height and the second height are set to H1 and H2, respectively, and the height of the HMD 10 is H1 or more. Then judge. Thereby, when the height of the HMD 10 does not fall within the range from the lower limit value to the upper limit value, it is possible to prevent the collapse of the posture of the avatar by replacing the data.

また、ユーザは、頭部からHMD10を取り外す前に、手を自由にするためにコントローラ20を手放している可能性がある。そこで、状態判定部102は、差し替え開始条件の一例として、前述のHMD10の高さに関する条件のいずれかに加えて、第1の制御データがコントローラ20が静止していることを示す値を持つか否かを判定してもよい。コントローラ20が静止しているか否かは、例えば、第1の制御データにおけるコントローラ20の位置の履歴、コントローラ20の動きセンサまたは把持センサの出力データ、などに基づいて判定され得る。 Also, the user may have let go of the controller 20 to free his hands before removing the HMD 10 from his head. Therefore, the state determination unit 102 determines whether the first control data has a value indicating that the controller 20 is stationary, in addition to any of the above-described conditions relating to the height of the HMD 10, as an example of replacement start conditions. It may be determined whether Whether or not the controller 20 is stationary can be determined based on, for example, the history of the position of the controller 20 in the first control data, the output data of the motion sensor or grip sensor of the controller 20, and the like.

さらに、ユーザがHMD10を頭部に装着し、かつ、コントローラ20を把持している限りは、両者の距離が極端に離れることはない。換言すれば、HMD10とコントローラ20との間の距離が極端に大きい場合には、HMD10およびコントローラ20の少なくとも一方はユーザに身に着けられていない可能性がある。故に、かかる場合に、HMD10/コントローラ20の位置データに忠実にアバターを制御すると、アバターが不自然な姿勢を取る可能性がある。そこで、状態判定部102は、差し替え開始条件の一例として、第1の制御データがHMD10とコントローラ20との間の距離が既定の距離以上であることを示す値を持つか否かを判定してもよい。 Furthermore, as long as the user wears the HMD 10 on the head and holds the controller 20, the distance between the two will not be extremely large. In other words, if the distance between HMD 10 and controller 20 is extremely large, at least one of HMD 10 and controller 20 may not be worn by the user. Therefore, in such a case, if the avatar is controlled faithfully to the position data of the HMD 10/controller 20, the avatar may take an unnatural posture. Therefore, the state determination unit 102 determines whether or not the first control data has a value indicating that the distance between the HMD 10 and the controller 20 is equal to or greater than a predetermined distance, as an example of the replacement start condition. good too.

既定の距離は、アバターの姿勢が不自然であると定義されないために要求される頭と手との間の距離の上限値を意味し得る。既定の距離は、ユーザ単位で定められてもよいし、仮想的体験共有システム単位で定められてもよい。一例として、既定の距離は、ユーザ個人または平均的なユーザの頭部から手までの距離に基づいて定められ得る。具体的には、既定の距離は、頭部から手までの距離が最も大きくなる姿勢、例えば気をつけの姿勢を取った時のユーザの頭部から手までの距離にオフセットを加えた距離、などであり得る。 The default distance may represent an upper limit on the distance between the head and hands that is required so that the avatar's pose is not defined as unnatural. The default distance may be defined per user or per virtual experience sharing system. As an example, the default distance may be based on the user's individual or average user's head-to-hand distance. Specifically, the predetermined distance is the distance obtained by adding an offset to the distance from the user's head to the hand when the user is in a posture that maximizes the distance from the head to the hand, and so on.

なお、状態判定部102は、一旦差し替え開始条件が満足すると判定した後は、既定の差し替え終了条件が満足するか否かを判定する。そして、状態判定部102は、一旦差し替え終了条件が満足すると判定した後は、再び差し替え開始条件が満足するか否かを判定する。差し替え終了条件は、例えば第1の制御データに忠実にアバターを制御したとしても当該アバターが不自然な姿勢を取らないと予想される場合に満足するように定義され得る。このように差し替え終了条件を定義することで、アバターを自然な姿勢(例えば直立)からダミーの姿勢(例えば屈む)に移行させた後に、不自然な姿勢を挟むことなく再び同一または異なる自然な姿勢(例えば立ち上がって手を振る)に復帰させることが可能となる。 After determining that the replacement start condition is once satisfied, the state determination unit 102 determines whether or not the predetermined replacement end condition is satisfied. After determining once that the replacement end condition is satisfied, the state determination unit 102 determines again whether or not the replacement start condition is satisfied. The replacement end condition can be defined so as to be satisfied, for example, when the avatar is expected not to take an unnatural posture even if the avatar is faithfully controlled according to the first control data. By defining the replacement end condition in this way, after the avatar transitions from a natural posture (e.g., standing upright) to a dummy posture (e.g., crouching), the same or different natural posture can be restored without inserting an unnatural posture. (for example, standing up and waving).

差し替え終了条件は、典型的には差し替え開始条件の否定、すなわち差し替え開始条件が満足しないこと、に相当し得る。例えば、差し替え開始条件が「HMD10がユーザの頭部に装着されていること」である場合には、差し替え終了条件は「HMD10がユーザの頭部に装着されていないこと」に定められ得る。 The replacement end condition may typically correspond to the negation of the replacement start condition, ie the replacement start condition is not satisfied. For example, if the replacement start condition is "the HMD 10 is worn on the user's head", the replacement end condition may be set to "the HMD 10 is not worn on the user's head".

しかしながら、差し替え終了条件は、差し替え開始条件の否定に相当しないこともあり得る。具体的には、差し替え開始条件が「第1の制御データが、HMD10の高さが第1の高さ以上であることを示し、かつ、コントローラ20が静止していることを示す値を持つこと」である場合に、差し替え終了条件は「第1の制御データが、HMD10の高さが第1の高さ未満(かつ第2の高さ以上)であることを示し、かつ、コントローラ20が静止していないことを示す値を持つこと」であってよい。 However, the replacement end condition may not correspond to the negation of the replacement start condition. Specifically, the replacement start condition is that "the first control data has a value indicating that the height of the HMD 10 is equal to or greater than the first height and that the controller 20 is stationary." , the replacement end condition is "the first control data indicates that the height of the HMD 10 is less than the first height (and is equal to or greater than the second height), and the controller 20 is having a value indicating that it is not

データ差し替え部103は、前述のプロセッサにより実現され得る。データ差し替え部103は、差し替え開始条件が満足すると判定された場合には第1の制御データを第2の制御データに差し替え、当該第2の制御データをデータ差し替え装置100の外部へ出力する。他方、データ差し替え部103は、差し替え開始条件が満足すると判定されなかった場合には第1の制御データをそのままデータ差し替え装置100の外部へ出力する。なお、データ差し替え部103は、データの差し替えを一旦開始すると、状態判定部102によって差し替え終了条件が満足すると判定されるまでデータの差し替えを継続する。ここで、第2の制御データは、アバターが不自然な姿勢を取らないようにするためのダミーデータであり、その具体例について以下に説明する。 The data replacement unit 103 can be implemented by the processor described above. The data replacement unit 103 replaces the first control data with the second control data when it is determined that the replacement start condition is satisfied, and outputs the second control data to the outside of the data replacement device 100 . On the other hand, the data replacement unit 103 outputs the first control data to the outside of the data replacement device 100 as it is when it is determined that the replacement start condition is not satisfied. Note that once the data replacement unit 103 starts replacing data, it continues to replace data until the state determination unit 102 determines that the replacement end condition is satisfied. Here, the second control data is dummy data for preventing the avatar from taking an unnatural posture, and a specific example thereof will be described below.

例えば、差し替え開始条件が、HMD10がユーザの頭部に装着されていること、またはHMD10の高さに関するものである場合には、第2の制御データは、HMD10の高さに基づかない値を持ち得る。具体的には、第2の制御データは、HMD10の高さが、前述の第1の高さ未満の高さ、前述の第2の高さ以上の高さ、または第1の高さ未満かつ第2の高さ以上の高さであることを示す値を持ち得る。これにより、例えば、図6の例のようにHMD10の高さが第2の高さH0未満の場合にも、アバターの頭が不自然に下がることはなく、例えば図7のように屈んでいるような姿勢をアバターに取らせることができる。屈む姿勢以外にも、アバターの姿勢を制御するアルゴリズムおよび第2の制御データの示すHMD10の高さ次第で、アバターを座らせる、跪かせる、直立させる、など様々な姿勢を取らせることがあり得る。 For example, if the replacement start condition relates to the fact that the HMD 10 is worn on the user's head or the height of the HMD 10, the second control data has a value that is not based on the height of the HMD 10. obtain. Specifically, the second control data indicates that the height of the HMD 10 is less than the first height described above, is greater than or equal to the second height described above, or is less than the first height and It can have a value indicating a height greater than or equal to a second height. As a result, for example, even when the height of the HMD 10 is less than the second height H0 as in the example of FIG. 6, the head of the avatar is not unnaturally lowered, and the avatar is bent as shown in FIG. You can make the avatar take such a posture. In addition to the crouching posture, depending on the algorithm for controlling the posture of the avatar and the height of the HMD 10 indicated by the second control data, the avatar can be made to take various postures such as sitting, kneeling, and standing. .

また、差し替え開始条件が、HMD10とコントローラ20との間の距離に関するものである場合には、第2の制御データはHMD10およびコントローラ20の少なくとも一方の位置に基づかない値を持ち得る。具体的には、第2の制御データは、HMD10とコントローラ20との間の距離が既定の距離未満であることを示す値を持ち得る。 Also, if the replacement start condition relates to the distance between HMD 10 and controller 20 , the second control data may have a value that is not based on the position of at least one of HMD 10 and controller 20 . Specifically, the second control data may have a value indicating that the distance between HMD 10 and controller 20 is less than a predetermined distance.

ユーザがHMD10を装着していない場合にはHMD10は静止していると予想できるし、ユーザがコントローラ20を把持していない場合にはコントローラ20は静止していると予想できる。そこで、第2の制御データは、HMD10およびコントローラ20のうち静止している一方または両方の位置に基づかない値を持っていてもよい。換言すれば、第2の制御データにおいて、第1の制御データにおけるHMD10およびコントローラ20のうち静止していないデバイス(非静止デバイス)の位置は維持され、そうでないデバイスの位置が非静止デバイスの位置から上記既定の距離未満にある位置に書き換えられ得る。HMD10/コントローラ20が静止しているか否かは、例えば第1の制御データにおけるHMD10/コントローラ20の位置の履歴、またはHMD10/コントローラ20の動きセンサまたは装着センサ/把持センサの出力データ、などに基づいて判定可能である。 When the user is not wearing the HMD 10, the HMD 10 can be expected to be stationary, and when the user is not holding the controller 20, the controller 20 can be expected to be stationary. Therefore, the second control data may have a value that is not based on the position of one or both of HMD 10 and controller 20 when stationary. In other words, in the second control data, among the HMD 10 and the controller 20 in the first control data, the position of the non-stationary device (non-stationary device) is maintained, and the position of the other device is the position of the non-stationary device. to a position that is less than the above predefined distance. Whether the HMD 10/controller 20 is stationary is determined based on, for example, the history of the position of the HMD 10/controller 20 in the first control data, or the output data of the movement sensor or the mounting sensor/grip sensor of the HMD 10/controller 20. can be determined by

続いて、このデータ差し替え装置100を組み込んだ端末200を説明する。図3には、データ差し替え装置100を組み込んだ端末200の機能構成が例示される。端末200は、データ差し替え装置100と、送信部201と、受信部211と、画像生成部212とを含む。 Next, a terminal 200 incorporating this data replacement device 100 will be described. FIG. 3 illustrates the functional configuration of a terminal 200 incorporating the data replacement device 100. As shown in FIG. Terminal 200 includes data replacement device 100 , transmitter 201 , receiver 211 , and image generator 212 .

送信部201は、前述の通信I/Fにより実現され得る。送信部201は、データ差し替え装置100の出力データを受け取り、これをネットワーク経由で、通信相手となる他の端末200へ送信する。ここで、データ差し替え装置100の出力データは、前述のように、データの差し替えが行われた場合には第2の制御データであり、そうでない場合には第1の制御データである。 The transmission unit 201 can be realized by the communication I/F described above. The transmission unit 201 receives the output data of the data replacement device 100 and transmits it via the network to another terminal 200 as a communication partner. Here, as described above, the output data of the data replacement device 100 is the second control data when data replacement is performed, and is the first control data otherwise.

なお、送信部201は、第1または第2の制御データに加えて、マイクロホンによって生成された音声データを受け取り、これをネットワーク経由で通信相手となる他の端末200へ送信してもよい。 In addition to the first or second control data, the transmission unit 201 may receive voice data generated by the microphone and transmit the data to another terminal 200 as a communication partner via the network.

受信部211は、前述の通信I/Fにより実現され得る。受信部211は、通信相手となる他の端末200からネットワーク経由で、当該他の端末200のユーザのアバターを制御するための制御データを受信する。受信する制御データは、第1の制御データである可能性もあるし第2の制御データである可能性もあるが、いずれであろうとも後段の処理に影響はない。受信部211は、制御データを画像生成部212へ送る。 The receiving unit 211 can be realized by the communication I/F described above. The receiving unit 211 receives control data for controlling the avatar of the user of the other terminal 200 via the network from the other terminal 200 as a communication partner. The received control data may be the first control data or the second control data, but whichever it is, there is no effect on subsequent processing. The receiver 211 sends the control data to the image generator 212 .

なお、受信部211は、制御データに加えて音声データを受信し得る。受信部211は、音声データを図示されない音声処理部へ送ってもよい。この音声処理部は、音声データを再生し、前述のスピーカに音声を出力させる。 Note that the receiving unit 211 can receive audio data in addition to control data. The receiving unit 211 may send the audio data to an audio processing unit (not shown). This audio processing unit reproduces audio data and causes the aforementioned speaker to output audio.

画像生成部212は、前述のプロセッサにより実現され得る。画像生成部212は、例えば端末200のメモリまたは補助記憶装置に保存されているオブジェクトの画像データと、受信部211からの制御データとに基づいて、当該制御データに対応するユーザのアバター画像の制御を含む、VR/AR/MR画像の生成(更新)を行う。ここでの制御データは、データの差し替えが行われた場合には第2の制御データに相当し、そうでない場合には第1の制御データに相当する。画像生成部212は、生成した画像データをHMD10へ送る。 The image generation unit 212 can be realized by the processor described above. The image generating unit 212 controls the user's avatar image corresponding to the control data based on the image data of the object stored in the memory or auxiliary storage device of the terminal 200 and the control data from the receiving unit 211, for example. Generate (update) VR/AR/MR images, including The control data here corresponds to the second control data when data replacement is performed, and corresponds to the first control data otherwise. The image generator 212 sends the generated image data to the HMD 10 .

画像生成部212は、前述のように、制御データの示すHMD10/コントローラ20の位置に応じてアバター画像の頭部/手の位置を決定し、例えばIK技術を利用してアバターの姿勢を制御してもよい。 As described above, the image generation unit 212 determines the position of the head/hands of the avatar image according to the position of the HMD 10/controller 20 indicated by the control data, and controls the posture of the avatar using, for example, IK technology. may

以下、図9を用いて、端末200の動作を説明する。図9の動作は、第1の制御データが生成される毎に行われる。 The operation of terminal 200 will be described below with reference to FIG. The operation of FIG. 9 is performed each time the first control data is generated.

まず、データ差し替え装置100内のデータ取得部101は、第1の制御データを取得する(ステップS301)。それから、データ差し替え装置100内の状態判定部102は、既定の条件が満足するか否かを判定する(ステップS302)。既定の条件が満足する場合には処理はステップS303へ進み、そうでなければ処理はステップS303をスキップしてステップS304へ進む。 First, the data acquisition unit 101 in the data replacement device 100 acquires first control data (step S301). Then, the state determination unit 102 in the data replacement device 100 determines whether or not a predetermined condition is satisfied (step S302). If the predetermined condition is satisfied, the process proceeds to step S303; otherwise, the process skips step S303 and proceeds to step S304.

なお、ステップS302において既定の条件とは、差し替え開始条件が1度も満足していない場合には差し替え開始条件を意味し、差し替え開始条件が満足してから差し替え終了条件が満足するまでの間は差し替え終了条件の否定に相当する条件を意味し、差し変え終了条件が満足してから再び差し替え開始条件が満足するまでの間は差し替え開始条件を意味し得る。 Note that the predetermined condition in step S302 means the replacement start condition if the replacement start condition is not satisfied even once. It means a condition corresponding to negation of the replacement end condition, and can mean the replacement start condition from when the replacement end condition is satisfied until when the replacement start condition is satisfied again.

ステップS303において、データ差し替え装置100内のデータ差し替え部103は、第1の制御データをHMD10およびコントローラ20の少なくとも一方の位置に基づかない値を持つ第2の制御データに差し替える。 In step S<b>303 , the data replacement unit 103 in the data replacement device 100 replaces the first control data with second control data having a value not based on the position of at least one of the HMD 10 and controller 20 .

次に、送信部201は制御データを送信し(ステップS304)、図9の動作は終了する。なお、ステップS304の前にステップS303が実行された場合には、送信部201は第2の制御データを送信する。他方、ステップS304の前にステップS303がスキップされた場合には、送信部201は第1の制御データを送信する。 Next, the transmission unit 201 transmits control data (step S304), and the operation of FIG. 9 ends. In addition, when step S303 is executed before step S304, the transmitting unit 201 transmits the second control data. On the other hand, if step S303 is skipped before step S304, the transmitter 201 transmits the first control data.

以上説明したように、実施形態に係るデータ差し替え装置は、既定の差し替え開始条件が満足される場合に、HMDおよびコントローラの位置に基づく値を持つ第1の制御データをHMDおよびコントローラの少なくとも一方の位置に基づかない値を持つ第2の制御データへ差し替える。故に、このデータ差し替え装置によれば、例えば第1の制御データに忠実にアバターを制御すると当該アバターが不自然な姿勢を取るおそれがある場合に、当該第1の制御データの代わりにダミーの第2の制御データを用いて当該アバターを制御することができる。すなわち、HMDおよびコントローラの実際の位置とは無関係に、アバターの姿勢を不自然とならないように維持されるので、少なくともアバター画像の不自然さによるユーザの仮想的体験の劣化を防止することができる。 As described above, the data replacement device according to the embodiment transfers the first control data having a value based on the positions of the HMD and the controller to at least one of the HMD and the controller when the predetermined replacement start condition is satisfied. Replace with second control data having values that are not position based. Therefore, according to this data replacement device, for example, when the avatar is likely to take an unnatural posture if the avatar is faithfully controlled according to the first control data, a dummy first control data is used instead of the first control data. 2 control data can be used to control the avatar. That is, regardless of the actual positions of the HMD and the controller, the posture of the avatar is maintained so as not to be unnatural, so at least the deterioration of the user's virtual experience due to the unnaturalness of the avatar image can be prevented. .

(変形例1)
前述の実施形態では、第1の制御データの送信元である端末において第1の制御データに対するデータの差し替えが条件付きで行われる。しかしながら、第1の制御データの送信元ではなく宛先である端末において、当該第1の制御データに対するデータの差し替えが行われてもよい。かかる変形例の端末400が図10に例示される。
(Modification 1)
In the above-described embodiment, data replacement for the first control data is conditionally performed in the terminal that is the transmission source of the first control data. However, data replacement for the first control data may be performed in the terminal that is the destination, not the source of the first control data. A terminal 400 of such a modification is illustrated in FIG.

端末400は、データ取得部402と、送信部201と、受信部211と、データ差し替え装置100と、画像生成部212とを含む。ここで、送信部201、受信部211、データ差し替え装置100および画像生成部212は、図3における同名の要素と同一または類似であるので、以降の説明では両者の相違点およびデータ取得部402を中心にて説明する。 Terminal 400 includes data acquisition section 402 , transmission section 201 , reception section 211 , data replacement device 100 , and image generation section 212 . Here, the transmitting unit 201, the receiving unit 211, the data replacement device 100, and the image generating unit 212 are the same as or similar to the elements with the same names in FIG. Description will be made in the center.

データ取得部402は、例えば前述の通信I/F、入出力I/F、またはプロセッサにより実現され得る。データ取得部402は、第1の制御データを取得し、これを送信部201へ送る。前述のように、HMD10/コントローラ20の位置は、位置センサシステムを用いて推定することができる。 The data acquisition unit 402 can be realized by, for example, the aforementioned communication I/F, input/output I/F, or processor. The data acquisition unit 402 acquires first control data and sends it to the transmission unit 201 . As previously mentioned, the position of HMD 10/controller 20 can be estimated using a position sensor system.

外部装置、例えば、HMD10、コントローラ20またはベースステーションがHMD10/コントローラ20の位置を推定して第1の制御データを生成する場合には、データ取得部402はこの外部装置から第1の制御データを取得すればよい。他方、端末200(の図示されない位置推定部)が位置センサシステムの出力データ(例えば、検知点の位置、傾き、発光強度などを示すデータ)に基づいてHMD10/コントローラ20の位置を推定して第1の制御データを生成する場合には、データ取得部402は端末200のメモリまたは補助記憶装置から第1の制御データを取得すればよい。 When an external device such as the HMD 10, controller 20, or base station estimates the position of the HMD 10/controller 20 and generates the first control data, the data acquisition unit 402 obtains the first control data from the external device. You should get it. On the other hand, terminal 200 (a position estimating unit, not shown) estimates the position of HMD 10/controller 20 based on the output data of the position sensor system (for example, the data indicating the position, tilt, light emission intensity, etc. of the detection point). When generating one piece of control data, the data acquisition unit 402 may acquire the first control data from the memory or auxiliary storage device of the terminal 200 .

なお、HMD10/コントローラ20が前述の装着センサ/把持センサを含む場合には、データ取得部402はこの装着センサ/把持センサからのイベントデータをさらに取得し、送信部201へ送ってもよい。また、この場合に、送信部201は、宛先である端末400における既定の条件の判定のために、第1の制御データに加えてイベントデータを当該端末400へ送信し得る。さらに、受信部211も、他の端末400から送信された第1の制御データに加えて、イベントデータを受信し、データ差し替え装置100へ送り得る。 If the HMD 10 /controller 20 includes the wear sensor/grip sensor described above, the data acquisition unit 402 may further acquire event data from this wear sensor/grip sensor and send it to the transmission unit 201 . Also, in this case, the transmission unit 201 can transmit event data in addition to the first control data to the destination terminal 400 for determination of a predetermined condition at the terminal 400 . Furthermore, the receiving unit 211 can also receive event data in addition to the first control data transmitted from the other terminal 400 and transmit it to the data replacement device 100 .

以上説明したように、この変形例では、第1の制御データの送信元ではなく宛先である端末においてデータ差し替え処理を分散的に行う。故に、この変形例によれば、送信元における負荷を削減することができる。 As described above, in this modified example, data replacement processing is performed in a distributed manner not at the source of the first control data but at the destination terminal. Therefore, according to this modification, the load on the transmission source can be reduced.

(変形例2)
前述の実施形態では、各端末はP2P型のネットワーク経由でデータを互いに伝送し合う。他方、各端末は、C/S型のネットワーク経由でデータを互いに伝送し合うことも可能である。そして、この場合に、データ差し替え装置100がサーバに組み込まれてもよい。そして、サーバは、第1の制御データを端末間で単純に中継するのではなく、送信元である端末から受信した第1の制御データに対して条件付きでデータの差し替えを行ってから第1または第2の制御データを宛先である端末へ送信してもよい。
(Modification 2)
In the above embodiments, each terminal transmits data to each other via a P2P type network. On the other hand, each terminal can also transmit data to each other via a C/S type network. In this case, the data replacement device 100 may be incorporated into the server. Then, instead of simply relaying the first control data between terminals, the server conditionally replaces the first control data received from the terminal that is the transmission source, and then replaces the first control data with the first control data. Alternatively, the second control data may be transmitted to the destination terminal.

この変形例のようにC/S型のネットワークを採用することで、P2P型のネットワークを採用した場合に比べて制御データの伝送遅延は大きくなる可能性があるが、サーバにおいてデータ差し替え処理を集中的に行うので、各端末における負荷を削減することができる。 By adopting a C/S type network as in this modification, there is a possibility that the transmission delay of control data will be longer than when a P2P type network is adopted, but data replacement processing is centralized in the server. Since this is performed systematically, the load on each terminal can be reduced.

上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。 The above-described embodiments merely show specific examples to aid understanding of the concept of the present invention, and are not intended to limit the scope of the present invention. Embodiments can add, delete, or convert various components without departing from the gist of the present invention.

上述の実施形態では、いくつかの機能部を説明したが、これらは各機能部の実装の一例に過ぎない。例えば、1つの装置に実装されると説明された複数の機能部が複数の別々の装置に亘って実装されることもあり得るし、逆に複数の別々の装置に亘って実装されると説明された機能部が1つの装置に実装されることもあり得る。 Although some functional units have been described in the above-described embodiments, these are only examples of implementation of each functional unit. For example, a plurality of functional units described as being implemented in one device may be implemented across a plurality of separate devices, and conversely, may be implemented across a plurality of separate devices. It is also conceivable that the functional units described may be implemented in a single device.

上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。 Various functional units described in the above embodiments may be realized by using circuits. A circuit may be a dedicated circuit that implements a specific function, or it may be a general-purpose circuit such as a processor.

上記各実施形態の処理の少なくとも一部は、例えば汎用のコンピュータに搭載されたプロセッサを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク(CD-ROM、CD-R、DVD等)、光磁気ディスク(MO等)、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ(サーバ)上に格納し、ネットワーク経由でコンピュータ(クライアント)にダウンロードさせてもよい。 At least part of the processing of each of the above-described embodiments can also be realized by using a processor installed in a general-purpose computer as basic hardware. A program that implements the above process may be provided by being stored in a computer-readable recording medium. The program is stored in the recording medium as an installable format file or an executable format file. Recording media include magnetic disks, optical disks (CD-ROM, CD-R, DVD, etc.), magneto-optical disks (MO, etc.), semiconductor memories, and the like. Any recording medium may be used as long as it can store the program and is readable by a computer. Alternatively, the program that implements the above processing may be stored on a computer (server) connected to a network such as the Internet, and downloaded to the computer (client) via the network.

10・・・HMD
20,21,22・・・コントローラ
100・・・データ差し替え装置
101,402・・・データ取得部
102・・・状態判定部
103・・・データ差し替え部
200・・・端末
201・・・送信部
211・・・受信部
212・・・画像生成部
10 HMDs
20, 21, 22... Controller 100... Data replacement device 101, 402... Data acquisition unit 102... State determination unit 103... Data replacement unit 200... Terminal 201... Transmission unit 211... Receiving unit 212... Image generating unit

Claims (2)

ユーザの姿勢に応じて、仮想空間における当該ユーザのアバターの姿勢を制御する制御プログラムであって、
コンピュータを、
前記ユーザの頭部に装着可能な第1のデバイス第1の位置と、前記ユーザが把持可能な第2のデバイスの第2の位置とを取得する手段と、
前記第1の位置および前記第2の位置に基づいて、前記アバターが不自然な姿勢を取るか判定する手段と、
前記アバターが不自然な姿勢を取ると判定されたときに、前記アバターが不自然な姿勢を取らないようにするためのデータを出力する手段と、
して機能させるための制御プログラム。
A control program for controlling the posture of a user's avatar in a virtual space according to the user's posture,
the computer,
means for obtaining a first position of a first device wearable on the user's head and a second position of a second device grippable by the user;
means for determining whether the avatar takes an unnatural posture based on the first position and the second position ;
means for outputting data for preventing the avatar from taking an unnatural posture when it is determined that the avatar takes an unnatural posture;
control program to function as
前記第1の位置および前記第2の位置は、前記第1のデバイスおよび第2のデバイスから離れた位置に設置されたカメラの撮影画像、あるいは、前記第1のデバイスおよび前記第2のデバイスに設けられたカメラの撮影画像に基づいて推定される
請求項1記載の制御プログラム。
The first position and the second position are images captured by a camera installed at a position away from the first device and the second device , or images captured by the first device and the second device. Estimated based on the images captured by the provided camera ,
The control program according to claim 1.
JP2019063189A 2019-03-28 2019-03-28 control program Active JP7111645B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019063189A JP7111645B2 (en) 2019-03-28 2019-03-28 control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019063189A JP7111645B2 (en) 2019-03-28 2019-03-28 control program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018113563A Division JP6506454B1 (en) 2018-06-14 2018-06-14 Data replacement device, terminal, and data replacement program

Publications (3)

Publication Number Publication Date
JP2019220147A JP2019220147A (en) 2019-12-26
JP2019220147A5 JP2019220147A5 (en) 2021-07-26
JP7111645B2 true JP7111645B2 (en) 2022-08-02

Family

ID=69096753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019063189A Active JP7111645B2 (en) 2019-03-28 2019-03-28 control program

Country Status (1)

Country Link
JP (1) JP7111645B2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334443A (en) 2006-06-12 2007-12-27 Kyushu Institute Of Technology Avatar operation control system, its program, and method
WO2016002318A1 (en) 2014-06-30 2016-01-07 ソニー株式会社 Information processing device, information processing method, computer program, and image processing system
JP6212666B1 (en) 2017-03-02 2017-10-11 株式会社コロプラ Information processing method, program, virtual space distribution system, and apparatus
JP2017188041A (en) 2016-04-08 2017-10-12 株式会社バンダイナムコエンターテインメント Program and computer system
JP2018074294A (en) 2016-10-26 2018-05-10 学校法人幾徳学園 Information processing system and information processing method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334443A (en) 2006-06-12 2007-12-27 Kyushu Institute Of Technology Avatar operation control system, its program, and method
WO2016002318A1 (en) 2014-06-30 2016-01-07 ソニー株式会社 Information processing device, information processing method, computer program, and image processing system
JP2017188041A (en) 2016-04-08 2017-10-12 株式会社バンダイナムコエンターテインメント Program and computer system
JP2018074294A (en) 2016-10-26 2018-05-10 学校法人幾徳学園 Information processing system and information processing method
JP6212666B1 (en) 2017-03-02 2017-10-11 株式会社コロプラ Information processing method, program, virtual space distribution system, and apparatus

Also Published As

Publication number Publication date
JP2019220147A (en) 2019-12-26

Similar Documents

Publication Publication Date Title
JP6266736B1 (en) Method for communicating via virtual space, program for causing computer to execute the method, and information processing apparatus for executing the program
US10410562B2 (en) Image generating device and image generating method
US20190018479A1 (en) Program for providing virtual space, information processing apparatus for executing the program, and method for providing virtual space
JP2015095802A (en) Display control apparatus, display control method and program
JP6234622B1 (en) Method for communicating via virtual space, program for causing computer to execute the method, and information processing apparatus for executing the program
JP6615732B2 (en) Information processing apparatus and image generation method
WO2018225187A1 (en) Information processing system, information processing device, server device, image presentation method, and image generation method
JP2020120336A (en) Program, method, and information processing device
US10515481B2 (en) Method for assisting movement in virtual space and system executing the method
JP6526879B1 (en) Data transmission device and program
US11531401B2 (en) Data replacement apparatus, computing device, and program for user and avatar coordination
WO2019065846A1 (en) Program, information processing method, information processing system, head mounted display device, and information processing device
KR20200060361A (en) Information processing apparatus, information processing method, and program
KR102144515B1 (en) Master device, slave device and control method thereof
US11514604B2 (en) Information processing device and information processing method
JP2019211864A (en) Computer program, information processing device, and information processing method
JP5802019B2 (en) Information processing apparatus, information processing program, information processing method, and information processing system
WO2020095368A1 (en) Information processing system, display method, and computer program
JP6518645B2 (en) INFORMATION PROCESSING APPARATUS AND IMAGE GENERATION METHOD
JP2018116684A (en) Communication method through virtual space, program causing computer to execute method, and information processing device to execute program
JP7111645B2 (en) control program
JP7166983B2 (en) terminal and program
JP2006318385A (en) Image generation system, program, and information storage medium
KR20200116380A (en) Mobile interlocking VR device compatible to VR sports device
JP2018097879A (en) Method for communicating via virtual space, program for causing computer to execute method, and information processing apparatus for executing program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210614

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220622

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: 20220705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220721

R150 Certificate of patent or registration of utility model

Ref document number: 7111645

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150