(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024170971
(43)【公開日】2024-12-11
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06F 3/01 20060101AFI20241204BHJP
G06T 19/00 20110101ALI20241204BHJP
【FI】
G06F3/01 510
G06T19/00 C
G06T19/00 300B
G06T19/00 600
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023087774
(22)【出願日】2023-05-29
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】土屋 英鷹
【テーマコード(参考)】
5B050
5E555
【Fターム(参考)】
5B050BA09
5B050CA08
5B050DA01
5B050EA07
5B050EA19
5B050FA02
5B050FA10
5B050FA14
5E555AA27
5E555AA64
5E555BA38
5E555BA76
5E555BB38
5E555BD07
5E555BE17
5E555CA44
5E555DA08
5E555DB32
5E555FA00
(57)【要約】
【課題】アバター同士の接触といったユーザ同士の仮想的な接触を十分なコミュニケーションツールとして利用できるようにする。
【解決手段】本発明の情報処理装置は、仮想空間または複合現実空間である3次元空間における、第1のユーザに対する第2のユーザの仮想的な接触を検知する検知手段と、前記仮想的な接触があった場合に、当該接触の位置に関する情報を前記第1のユーザに通知するように制御する制御手段とを有することを特徴とする。
【選択図】
図3
【特許請求の範囲】
【請求項1】
仮想空間または複合現実空間である3次元空間における、第1のユーザに対する第2のユーザの仮想的な接触を検知する検知手段と、
前記仮想的な接触があった場合に、当該接触の位置に関する情報を前記第1のユーザに通知するように制御する制御手段と
を有することを特徴とする情報処理装置。
【請求項2】
前記検知手段は、複合現実空間である3次元空間における、前記第1のユーザに対する前記第2のユーザのアバターの接触を検知する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記検知手段は、仮想空間である3次元空間における、前記第1のユーザのアバターに対する前記第2のユーザのアバターの接触を検知する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記制御手段は、前記接触の位置および強度に関する前記情報を通知するように制御する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項5】
前記制御手段は、表示または音声によって前記情報を通知するように制御する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記制御手段は、振動によって前記情報を通知するように制御する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項7】
前記第2のユーザが第1のリストに含まれていない場合には前記情報は通知しない
ことを特徴とする請求項1に記載の情報処理装置。
【請求項8】
前記第2のユーザが第2のリストに含まれている場合には前記情報は通知しない
ことを特徴とする請求項1に記載の情報処理装置。
【請求項9】
前記3次元空間において前記第2のユーザが前記第1のユーザの視界に存在する場合には前記情報は通知しない
ことを特徴とする請求項1に記載の情報処理装置。
【請求項10】
前記検知手段は、前記第1のユーザに対する前記第2のユーザの手の仮想的な接触を検知する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項11】
前記第2のユーザの複数の部位の少なくとも一部がトラッキングされており、
前記検知手段は、前記第2のユーザの複数の部位のうち、トラッキングされている部位の、前記第1のユーザに対する仮想的な接触を検知する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項12】
前記検知手段は、前記第1のユーザに対する、前記第2のユーザが保持している仮想オブジェクトの接触を検知する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項13】
仮想空間または複合現実空間である3次元空間における、第1のユーザに対する第2の
ユーザの仮想的な接触を検知するステップと、
前記仮想的な接触があった場合に、当該接触の位置に関する情報を前記第1のユーザに通知するように制御するステップと
を有することを特徴とする情報処理装置の制御方法。
【請求項14】
コンピュータを、請求項1~12のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関し、特に仮想空間または複合現実空間におけるユーザ間のコミュニケーションを支援する技術に関する。
【背景技術】
【0002】
ユーザが仮想オブジェクトと相互に作用しあえる環境をコンピュータなどで生成する仮想現実(以下、VR)技術が知られている。現実世界と仮想世界の映像をリアルタイムに融合させる技術として、複合現実(以下、MR)技術や拡張現実(以下、AR)技術も知られている。通常、これらの技術(以下、XR技術)を用いた映像の視聴には、ヘッドマウントディスプレイ(以下、HMD)と呼ばれる、ゴーグル型や眼鏡型の表示デバイスが使用される。HMDは、例えば、左右の目の位置に合うように配置された2つのディスプレイを備える。外部の映像を取得するカメラを前面に備えたHMDも提案されている。
【0003】
仮想空間(以下、VR空間)または複合現実空間(以下、MR空間)において、ユーザを表現したキャラクター(以下、アバター)を用い、ユーザ間のコミュニケーションを可能とする技術も提案されている。アバターは、コントローラを用いて操作したり、モーショントラッキングによって操作したりできる。
【0004】
特許文献1には、仮想オブジェクトに接触したことのフィードバックをユーザに与える技術が開示されている。特許文献2には、VR空間においてアバター同士が接触したことをトリガーとして、ユーザ間のチャットを開始する技術が開示されている。特許文献3には、VR空間において、HMDを装着していないユーザのアバターが他のアバターに揺さぶられたことに応答して、HMDを装着していない当該ユーザの端末に通知を行う技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2020-80152号公報
【特許文献2】特開2001-236291号公報
【特許文献3】特開2019-61434号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1~3に開示の技術では、アバター同士の接触を十分なコミュニケーションツールとして利用することができない。特許文献1に開示の技術は、ユーザが仮想オブジェクトに対して能動的に接触したことのフィードバックを当該ユーザに与えるものである。特許文献1に開示の技術を用いても、他のアバターに能動的に接触したアバターのユーザ(接触者)に対してフィードバックを与えることはできるが、他のアバターから接触されたアバターのユーザ(被接触者)に対しては何ら通知がされない。このため、被接触者は接触を認知することができない。特許文献2に開示の技術では、アバター同士の接触がチャットの開始に利用されるに過ぎずない。特許文献3に開示の技術では、アバター同士の接触(アバターに対する他のアバターの揺さぶり)が、HMDを装着していないユーザの端末への通知に利用されるに過ぎない。このように、特許文献2,3に開示の技術では、アバター同士の接触は、現実世界での接触と同じようには利用されず、コミュニケーションツールとしては不十分である。
【0007】
本発明は、アバター同士の接触といったユーザ同士の仮想的な接触を十分なコミュニケ
ーションツールとして利用できるようにすることを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の態様は、仮想空間または複合現実空間である3次元空間における、第1のユーザに対する第2のユーザの仮想的な接触を検知する検知手段と、前記仮想的な接触があった場合に、当該接触の位置に関する情報を前記第1のユーザに通知するように制御する制御手段とを有することを特徴とする情報処理装置である。
【0009】
本発明の第2の態様は、仮想空間または複合現実空間である3次元空間における、第1のユーザに対する第2のユーザの仮想的な接触を検知するステップと、前記仮想的な接触があった場合に、当該接触の位置に関する情報を前記第1のユーザに通知するように制御するステップとを有することを特徴とする情報処理装置の制御方法である。
【0010】
本発明の第3の態様は、コンピュータを、上述した情報処理装置の各手段として機能させるためのプログラムである。
【発明の効果】
【0011】
本発明によれば、アバター同士の接触といったユーザ同士の仮想的な接触を十分なコミュニケーションツールとして利用できるようになる。
【図面の簡単な説明】
【0012】
【
図1】ヘッドマウントディスプレイ(以下、HMD)の外観図である。
【発明を実施するための形態】
【0013】
以下に、本発明の実施の形態を、添付の図面に基づいて詳細に説明する。
【0014】
図1は、本発明を適用可能な情報処理装置の一例であるヘッドマウントディスプレイ(以下、HMD)100の外観を示す外観図である。HMD100はユーザの頭部に装着するゴーグル型の表示装置である。本体部101は、後述する各種ハードウェアを備える。例えば、本体部101は、本体部101の背面側にディスプレイを備える。HMD100を装着したユーザは、ディスプレイに表示された各種コンテンツを見ることができる。ストラップ102は、本体部101をユーザの頭部に固定するために使用される。カメラ103は、HMD100の周囲(例えば前面側)を撮像する。
【0015】
HMD100は、カメラ103によって撮像された映像、または当該撮像された映像に基づく映像をディスプレイに表示することによって、ユーザに複合現実空間(以下、MR空間)を提供することができる。HMD100は、カメラ103によって撮像された映像とは無関係の映像をディスプレイに表示することによって、ユーザに仮想空間(以下、VR空間)を提供することもできる。HMD100は、VR空間およびMR空間において、ユーザ(HMD100のユーザ、またはHMD100とは異なるHMDのユーザ)として、当該ユーザを表現したキャラクター(以下、アバター)を表示することができる。HMD100は、HMD100のユーザとして、アバターではなく、カメラ103によって撮像された当該ユーザ本人を表示してもよい。
【0016】
MR空間をユーザに提供する方式には、ビデオシースルー方式と光学シースルー方式と
がある。ビデオシースルー方式では、撮像された現実空間の映像が表示され、ユーザは当該映像によって現実空間を確認することができる。アバターといった仮想オブジェクトは、例えば、現実空間の映像に合成(重畳)されて表示される。光学シースルー方式では、ユーザは、当該ユーザの目と対向するように配置されたレンズを介して、映像でない現実空間を確認することができる。仮想オブジェクトは、例えば、レンズに表示される。HMD100の方式はビデオシースルー方式であるとするが、光学シースルー方式であってもよい。光学シースルー方式のHMDのユーザは、当該ユーザ(当該ユーザの手や腕、胴体、足など)として、表示されたアバターを確認できてもよいし、映像でない当該ユーザ本人を確認できてもよい(当該ユーザのアバターは表示されなくてもよい)。HMDに接続されたパーソナルコンピュータやゲーム機、サーバーなどにも、本発明は適用可能である。
【0017】
本体部101の背面側に設けられたディスプレイ(HMD100を装着したユーザの目と対向するように配置された表示面を有するディスプレイ)の代わりに、ユーザの網膜に映像を投影する網膜投影ディスプレイを用いてもよい。光学シースルー方式の場合には、ユーザの目と対向するように配置されたレンズに映像を投影する投影ディスプレイを用いてもよい。
【0018】
図2は、HMD100のハードウェア構成を示すブロック図である。内部バス250に対して制御部201、メモリ202、不揮発性メモリ203、画像・音声処理部204、ディスプレイ205、操作部206、記憶媒体I/F207、外部I/F209、および通信I/F210が接続されている。また、内部バス250に対して音声出力部212および姿勢検出部213も接続されている。これらは、
図1に示す本体部101に設けられている。内部バス250に接続された各部は、内部バス250を介して互いにデータのやりとりを行うことができる。
【0019】
制御部201は、少なくとも1つのプロセッサーまたは回路によって構成され、HMD100全体を制御する。制御部201は、例えばCPUである。メモリ202は、例えばRAM(半導体素子を利用した揮発性のメモリなど)である。制御部201は、例えば不揮発性メモリ203に格納されたプログラムに従い、メモリ202をワークメモリとして用いて、HMD100の各部を制御する。不揮発性メモリ203には、画像データや音声データ、その他のデータ、制御部201が動作するための各種プログラムなどが格納される。不揮発性メモリ203は、例えばフラッシュメモリやROMなどである。
【0020】
画像・音声処理部204は、制御部201の制御に基づいて、不揮発性メモリ203や記憶媒体208に格納された画像や、外部I/F209を介して取得した画像、通信I/F210を介して取得した画像などに対して各種画像処理を施す。同様に、画像・音声処理部204は、制御部201の制御に基づいて、不揮発性メモリ203や記憶媒体208に格納された音声や、外部I/F209を介して取得した音声、通信I/F210を介して取得した音声などに対して各種音声処理を施す。画像・音声処理部204が行う画像処理や音声処理には、A/D変換処理や、D/A変換処理、符号化処理、圧縮処理、デコード処理、ノイズ低減処理などが含まれる。画像・音声処理部204が行う画像処理には、拡大/縮小処理(リサイズ)や色変換処理なども含まれる。画像・音声処理部204が行う画像処理には、全方位画像あるいは全方位ではないにせよ広範囲のデータを有する広範囲画像であるVR画像のパノラマ展開やマッピング処理、変換処理なども含まれる。画像・音声処理部204は、
図1に示すカメラ103によって撮像された画像に対して各種画像処理を施すこともできる。HMD100がマイクロフォンを備えていたり、HMD100にマイクロフォンが接続されていたりする場合には、画像・音声処理部204は、マイクロフォンによって取得された音声に対して各種音声処理を施すこともできる。画像・音声処理部204は、例えば、各種画像処理や各種音声処理を行う専用の回路である。画像
・音声処理部204を用いずに制御部201がプログラムに従って各種画像処理や各種音声処理を行ってもよい。
【0021】
ディスプレイ205は、
図1に示す本体部101の背面側に設けられた上記ディスプレイであり、制御部201の制御に基づいて、画像やGUI(Graphical User Interface)画面などを表示する。制御部201は、プログラムに従って表示制御信号を生成し、ディスプレイ205に表示するための映像信号を生成してディスプレイ205に入力するようにHMD100の各部を制御する。ディスプレイ205は、ディスプレイ205に入力された映像信号に基づいて映像を表示する。
【0022】
操作部206は、キーボードなどの文字情報入力デバイスや、マウス等のポインティングデバイス、ボタン、ダイヤル、ジョイスティック、タッチセンサ、タッチパッドなどを含む、ユーザ操作を受け付けるための入力デバイスである。
【0023】
記憶媒体I/F207は、メモリーカードやCD、DVDといった記憶媒体208が着脱可能に構成され、制御部201の制御に基づいて、装着された記憶媒体208からのデータの読み出しや、当該記憶媒体208に対するデータの書き込みを行う。外部I/F209は、外部機器と有線または無線で接続し、HMD100に対する映像信号や音声信号の入出力を行うためのインターフェースである。通信I/F210は、外部機器やインターネット211などと通信して、ファイルやコマンドなどの各種データの送受信を行うためのインターフェースである。
【0024】
音声出力部212は、動画データや音楽データの音声や、操作音、着信音、各種通知音などを出力する。音声出力部212には、イヤホンなどを接続する音声出力端子212aと、スピーカー212bとが含まれるものとするが、無線通信などで外部機器から音声を出力してもよい。
【0025】
姿勢検出部213は、重力方向に対するHMD100の姿勢(傾き)や、ヨー、ロール、ピッチの各軸に対する姿勢を検出する。姿勢検出部213で検出された姿勢に基づいて、HMD100が横に保持されているか、縦に保持されているか、上に向けられたか、下に向けられたか、斜めの姿勢になったかなどを判別可能である。姿勢検出部213としては、加速度センサー、ジャイロセンサー、地磁気センサー、方位センサー、高度センサーなどのうち少なくとも1つを用いることができ、複数を組み合わせて用いることも可能である。
【0026】
本実施形態では、VR空間またはMR空間である3次元空間(以下、XR空間)において、アバター同士の(仮想的な)接触があった場合に、当該接触の位置および強度に関する情報(接触情報)を被接触ユーザ(被接触者)に通知する。上述したように、HMD100は、HMD100のユーザとして、アバターではなく、カメラ103によって撮像された当該ユーザ本人を表示してもよい。このため、上記接触は、被接触ユーザから見た場合に、被接触ユーザに対する接触ユーザ(接触者)のアバターの接触であってもよい。被接触ユーザから見た場合における、被接触ユーザに対する接触ユーザのアバターの接触は、接触ユーザから見た場合における、被接触ユーザのアバターに対する接触ユーザの接触と解釈することができる。
【0027】
図3(a),3(b)は、被接触ユーザに通知される接触情報の一例を示す模式図である。被接触ユーザは、HMD100のユーザであるとする。
図3(a),3(b)では、ディスプレイ205の表示面300にXR空間の映像が表示されている。
図3(a)では、通知アイテム301がXR空間の映像に重畳されて表示されており、
図3(b)では、通知アイテム302がXR空間の映像に重畳されて表示されている。通知アイテム301
,302は、被接触ユーザのアバターに接触ユーザのアバターが接触した際に表示される。通知アイテム301,302の表示位置は、アバター同士の接触の位置を示し、通知アイテム301,302の表示サイズは、アバター同士の接触の強度を示す。
図3(a)は、被接触ユーザのアバターの左肩に接触ユーザのアバターが軽く(弱く)接触した場合に対応する。そのため、通知アイテム301は、左側に小さく表示されている。
図3(b)は、被接触ユーザのアバターの頭に接触ユーザのアバターが強く接触した場合(例えば、被接触ユーザのアバターの頭を接触ユーザのアバターが強く叩いた場合)に対応する。そのため、通知アイテム302は、上側に大きく表示されている。
【0028】
なお、接触の強度は通知されなくてもよい。また、ディスプレイ205での表示でなく、音声出力部212を用いて出力される音声によって接触情報が通知されてもよい。この場合は、例えば、音声の方向が接触の位置を示し、音声の大きさ(音量)が接触の強度を示す。外部I/F209に接続されたデバイスなどの振動によって接触情報が通知されてもよい(例えば、ハプティクスによる通知)。この場合は、例えば、振動の位置が接触の位置を示し、振動の強度が接触の強度を示す。表示、音声、および振動のうちの2つまたは3つを組み合わせて接触情報が通知されてもよい。
【0029】
図4は、HMD100が行う接触通知処理のフローチャートである。この接触通知処理は、制御部201が不揮発性メモリ203に格納されているプログラムをメモリ202に展開して実行することによって実現される。例えば、ユーザがHMD100を装着して起動し、XR空間(XR空間内でのユーザ間のコミュニケーション)を体験するための所定のアプリケーションを実行すると、接触通知処理が開始され、所定の周期で繰り返し行われる。
【0030】
ステップS401では、制御部201は、アバター同士の接触(HMD100のユーザのアバターに対する他のユーザのアバターの接触)を検知する接触検知処理を行い、接触検知処理の結果をメモリ202に格納する。接触検知処理の詳細は、
図5を用いて後述する。
【0031】
ステップS402では、制御部201は、メモリ202に格納された接触検知処理の結果(ステップS401の接触検知処理の結果)を確認し、ステップS401で接触が検知されたか否かを判定する。接触が検知された場合はステップS403に進み、そうでない場合は接触通知処理を終了する。
【0032】
ステップS403では、制御部201は、接触情報を通知するか否かを判定する通知判定処理を行い、通知判定処理の結果をメモリ202に格納する。通知判定処理の詳細は、
図6を用いて後述する。
【0033】
ステップS404では、制御部201は、メモリ202に格納された通知判定処理の結果(ステップS403の通知判定処理の結果)を確認し、当該結果に従って接触情報を通知するか否かを判定する。接触情報を通知する場合はステップS405に進み、そうでない場合は接触通知処理を終了する。
【0034】
ステップS405では、制御部201は、被接触ユーザの視界に対する、ステップS401で検知された接触の位置の方向を算出し、メモリ202に格納する。接触の位置(の方向)を算出する方法は特に限定されないが、例えば、被接触ユーザ(HMD100のユーザ)のアバターの位置と姿勢や、接触ユーザのアバターの位置と姿勢などに基づいて、接触の位置(の方向)が算出される。被接触ユーザのアバターの位置と姿勢の情報は、例えば、HMD100(メモリ202)またはサーバーで管理されており、メモリ202から取得されたり、サーバーからインターネット211を介して取得されたりする。被接触
ユーザのアバターの位置と姿勢は、例えば、被接触ユーザの動作(移動および姿勢変化)や、HMD100のコントローラ(不図示)を用いたユーザ操作などによって更新される。被接触ユーザのアバターの位置と姿勢は、例えば、カメラ103の撮像結果や、姿勢検出部213の検出結果、ユーザ操作などに基づいて決定される。接触ユーザのアバターの位置と姿勢の情報は、例えば、サーバーや、接触ユーザのHMDなどから、インターネット211を介して取得される。
【0035】
ステップS406では、制御部201は、ステップS401で検知された接触の強度を算出し、メモリ202に格納する。接触の強度を算出する方法は特に限定されないが、例えば、被接触ユーザ(HMD100のユーザ)のアバターの位置と姿勢や、接触ユーザのアバターの位置と姿勢などに基づいて、接触の強度が算出される。接触の強度を算出する際に、アバターの動作速度や、アバターの質量(仮想的な質量)、アバターが所持する仮想オブジェクトの質量(仮想的な質量)などの情報を用いてもよい。被接触ユーザのアバターの質量の情報と仮想オブジェクトの質量の情報とは、例えば、HMD100(メモリ)またはサーバーで管理されており、メモリ202から取得されたり、サーバーからインターネット211を介して取得されたりする。被接触ユーザのアバターの質量は、例えば、当該被接触ユーザによってHMD100またはサーバーに予め登録される。仮想オブジェクトの質量は、例えば、XR空間を体験するアプリケーションの作成時に予め定められる。接触ユーザの質量の情報は、例えば、サーバーや、接触ユーザのHMDなどから、インターネット211を介して取得される。
【0036】
ステップS407では、制御部201は、メモリ202に格納されたステップS405,S406の算出結果に基づて、ステップS401で検知された接触の位置および強度に関する情報(接触情報)を被接触ユーザ(HMD100のユーザ)に通知する。通知方法は、上述したとおりである。
【0037】
なお、ステップS403,S404,S406の少なくともいずれかを省略してもよい。例えば、ステップS403,S404を省略し、接触を検知した場合にステップS402からステップS405に進んでもよい。ステップS406を省略し、ステップS405からステップS407に進んでもよい。
【0038】
図5は、接触検知処理(
図4のステップS401)のフローチャートである。この接触検知処理は、制御部201が不揮発性メモリ203に格納されているプログラムをメモリ202に展開して実行することによって実現される。
【0039】
ステップS501では、制御部201は、HMD100のユーザのアバターに対する他のユーザのアバターの接触を検出する検出処理を行う。検出処理の方法は特に限定されないが、例えば、HMD100のユーザのアバターの位置と姿勢や、他のユーザのアバターの位置と姿勢などに基づいて、接触が検出される。なお、検出処理は、サーバーなどで行われてもよい。制御部201は、検出処理の結果を、サーバーなどからインターネット211を介して取得してもよい。
【0040】
ステップS502では、制御部201は、HMD100のユーザのアバターに接触した他のアバターの部位(接触部位)に関する接触部位情報を取得し、メモリ202に格納する。接触部位は、例えば、上記検出処理において特定(検出)される。本実施形態では、接触部位情報は、接触部位と、接触部位がトラッキング部位(後述)であるか否かとを示す。トラッキング部位の情報は、例えば、HMD100(記憶媒体208)またはサーバーで管理されており、記憶媒体208から取得されたり、サーバーからインターネット211を介して取得されたりする。ステップS501で接触が検出されなかった場合には、接触部位情報は取得されない。
【0041】
トラッキング部位は、トラッキングされている部位であり、コントローラやHMDの位置情報に基づいて位置が決定される部位である。例えば、コントローラの位置情報に基づいてアバターの手の位置が決定され、手の位置に基づいて肘の位置が決定される場合には、手はトラッキング部位に該当し、肘はトラッキング部位に該当しない。なお、トラッキング用のデバイスはコントローラやHMDに限られない。例えば、トラッキング用のデバイスは、肘や肩、膝、足、腰などに装着するデバイスであってもよく、それらデバイスの位置に基づいて、アバターの肘や肩、膝、足、腰などの位置が決定されてもよい。そのため、アバターの肘や肩、膝、足、腰なども、トラッキング部位に該当し得る。
【0042】
なお、アバターが手で仮想オブジェクトを保持することが可能な場合には、保持している仮想オブジェクトを手の一部とみなしてもよい。同様に、トラッキング部位で仮想オブジェクトを保持することが可能な場合には、保持している仮想オブジェクトをトラッキング部位の一部とみなしてもよい。
【0043】
ステップS503では、制御部201は、メモリ202に格納された接触部位情報(ステップS502で取得した接触部位情報)に基づいて、接触部位がトラッキング部位であるか否かを判定する。接触部位がトラッキング部位である場合はステップS505に進み、そうでない場合はステップS504に進む。ステップS502で接触部位情報が取得されなかった場合(ステップS501で接触が検出されなかった場合)は、ステップS504に進む。
【0044】
ステップS504では、制御部201は、メモリ202に格納された接触部位情報(ステップS502で取得した接触部位情報)に基づいて、接触部位が手であるか否かを判定する。接触部位が手である場合はステップS505に進み、そうでない場合はステップS506に進む。ステップS502で接触部位情報が取得されなかった場合(ステップS501で接触が検出されなかった場合)は、ステップS506に進む。
【0045】
ステップS505では、制御部201は、HMD100のユーザのアバターに対する他のユーザのアバターの接触が検知されたという処理結果をメモリ202に格納する。
【0046】
ステップS506では、制御部201は、HMD100のユーザのアバターに対する他のユーザのアバターの接触が検知されなかったという処理結果をメモリ202に格納する。
【0047】
なお、ステップS502~S504,S506の少なくともいずれかを省略してもよい。例えば、ステップS503を省略し、ステップS502からステップS504に進んでもよい。ステップS504を省略し、接触部位がトラッキング部位でない場合にステップS503からステップS506に進んでもよい。ステップS502~S504,S506を省略し、ステップS501からステップS505に進んでもよい。
【0048】
図6は、通知判定処理(
図4のステップS403)のフローチャートである。この通知判定処理は、制御部201が不揮発性メモリ203に格納されているプログラムをメモリ202に展開して実行することによって実現される。
【0049】
ステップS601では、制御部201は、通知対象ユーザリストを用いたフィルタリングが有効であるか否かを判定する。有効である場合はステップS602に進み、そうでない場合はステップS605に進む。通知対象ユーザリストは、接触情報を通知するユーザ(通知対象ユーザ)を示すリストである。通知対象ユーザリストを用いたフィルタリングの設定(有効/無効)の情報は、例えば、HMD100(メモリ202や記憶媒体208
)またはサーバーで管理されている。そのため、通知対象ユーザリストを用いたフィルタリングの設定の情報は、メモリ202から取得されたり、記憶媒体208から取得されたり、サーバーからインターネット211を介して取得されたりする。
【0050】
ステップS602では、制御部201は、接触ユーザのユーザ情報をサーバーや接触ユーザのHMDなどからインターネット211を介して取得し、メモリ202に格納する。接触ユーザのユーザ情報は、例えば、接触ユーザを示す情報(接触ユーザを識別するID情報など)を含む。
【0051】
ステップS603では、制御部201は、通知対象ユーザリストを取得し、接触ユーザのユーザ情報と照合する。通知対象ユーザリストは、例えば、HMD100(記憶媒体208)またはサーバーで管理されており、記憶媒体208から取得されたり、サーバーからインターネット211を介して取得されたりする。
【0052】
ステップS604では、制御部201は、接触ユーザが通知対象ユーザに該当するか否かを判定する。接触ユーザが通知対象ユーザに該当する場合はステップS609に進み、そうでない場合はステップS611に進む。
【0053】
ステップS605では、制御部201は、通知対象外ユーザリストを用いたフィルタリングが有効であるか否かを判定する。有効である場合はステップS606に進み、そうでない場合はステップS609に進む。通知対象外ユーザリストは、接触情報を通知しないユーザ(通知対象外ユーザ)を示すリストである。通知対象外ユーザリストを用いたフィルタリングの設定(有効/無効)の情報は、例えば、HMD100(メモリ202や記憶媒体208)またはサーバーで管理されている。そのため、通知対象外ユーザリストを用いたフィルタリングの設定の情報は、メモリ202から取得されたり、記憶媒体208から取得されたり、サーバーからインターネット211を介して取得されたりする。
【0054】
ステップS606では、制御部201は、接触ユーザのユーザ情報をサーバーや接触ユーザのHMDなどからインターネット211を介して取得し、メモリ202に格納する。
【0055】
ステップS607では、制御部201は、通知対象外ユーザリストを取得し、接触ユーザのユーザ情報と照合する。通知対象外ユーザリストは、例えば、HMD100(記憶媒体208)またはサーバーで管理されており、記憶媒体208から取得されたり、サーバーからインターネット211を介して取得されたりする。
【0056】
ステップS608では、制御部201は、接触ユーザが通知対象外ユーザに該当するか否かを判定する。接触ユーザが通知対象外ユーザに該当する場合はステップS611に進み、そうでない場合はステップS609に進む。
【0057】
ステップS609では、制御部201は、接触ユーザのアバターが被接触ユーザ(HMD100のユーザ)の視界に存在するか否かを判定する。接触ユーザのアバターが視界に存在する場合はステップS611に進み、そうでない場合はステップS610に進む。ステップS609の判定方法は特に限定されない。例えば、制御部201は、ディスプレイ205に表示する映像信号(映像信号の生成に用いた情報)に基づいて、接触ユーザのアバターが視界に存在するか否かを判定してもよい。制御部201は、被接触ユーザのアバターの位置と姿勢や、接触ユーザのアバターの位置と姿勢などに基づいて、接触ユーザのアバターが視界に存在するか否かを判定してもよい。
【0058】
ステップS610では、制御部201は、接触情報を通知するという判定結果をメモリ202に格納する。
【0059】
ステップS611では、制御部201は、接触情報を通知しないという判定結果をメモリ202に格納する。
【0060】
なお、ステップS601~S609の少なくともいずれかを省略してもよい。例えば、ステップS601~S604を省略し、ステップS605を最初のステップとしてもよい。ステップS605~S608を省略し、通知対象ユーザリストによるフィルタリングが無効である場合にステップS601からステップS609に進んでもよい。ステップS601~S608を省略し、ステップS609を最初のステップとしてもよい。ステップS609を省略し、通知対象ユーザに該当する場合、通知対象外ユーザリストによるフィルタリングが無効である場合、および通知対象外ユーザに該当する場合に、ステップS610の処理を行ってもよい。通知対象ユーザリストによるフィルタリングが無効である場合に、ステップS610の処理を行ってもよい。
【0061】
以上で説明した本実施形態によれば、VR空間またはMR空間における、ユーザに対する他のユーザの仮想的な接触が検知され、仮想的な接触があった場合に、当該接触の位置に関する情報が、被接触者であるユーザに通知される。こうすることによって、アバター同士の接触といったユーザ同士の仮想的な接触を十分なコミュニケーションツールとして利用できるようになる。例えば、被接触者は、被接触者のどこに接触されたのかを把握して、(背後から)右肩に接触されたのであれば右に振り向き、左肩に接触されたのであれば左に振り向くといった、接触された方向を見る自然なリアクションをとることができる。
【0062】
さらに、本実施形態によれば、接触の位置だけでなく、接触の強度にも関する情報が、被接触者に通知される。こうすることによって、被接触者は、接触の強度が弱い場合には気づかない、接触の強度が強い場合に驚くといったような、より自然なリアクションをとることができる。
【0063】
なお、上記実施形態(変形例を含む)はあくまで一例であり、本発明の要旨の範囲内で上記実施形態の構成を適宜変形したり変更したりすることにより得られる構成も、本発明に含まれる。上記実施形態の構成を適宜組み合わせて得られる構成も、本発明に含まれる。
【0064】
例えば、被接触者側(被接触者のHMD)で仮想的な接触が検知される例を説明したが、これに限られない。例えば、接触者側(接触者のHMD)で仮想的な接触が検知されてもよい。そして、仮想的な接触の検知結果が接触者側から被接触者側に通知されてもよい。この場合に、接触者側において、仮想的な接触があったことの検知結果(情報)の通知を、仮想的な接触の位置に関する情報を被接触者に通知する制御と解釈することができる。このように、本発明を適用可能な情報処理装置は、被接触者側の装置に限られず、接触者側の装置であってもよい。本発明を適用可能な情報処理装置はサーバーであってもよい。なお、被接触者側において、仮想的な接触があったことの検知結果(情報)の取得を、仮想的な接触の検知と解釈することもできる。
【0065】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0066】
本実施形態の開示は、以下の構成、方法、プログラム、および媒体を含む。
(構成1)
仮想空間または複合現実空間である3次元空間における、第1のユーザに対する第2のユーザの仮想的な接触を検知する検知手段と、
前記仮想的な接触があった場合に、当該接触の位置に関する情報を前記第1のユーザに通知するように制御する制御手段と
を有することを特徴とする情報処理装置。
(構成2)
前記検知手段は、複合現実空間である3次元空間における、前記第1のユーザに対する前記第2のユーザのアバターの接触を検知する
ことを特徴とする構成1に記載の情報処理装置。
(構成3)
前記検知手段は、仮想空間である3次元空間における、前記第1のユーザのアバターに対する前記第2のユーザのアバターの接触を検知する
ことを特徴とする構成1に記載の情報処理装置。
(構成4)
前記制御手段は、前記接触の位置および強度に関する前記情報を通知するように制御する
ことを特徴とする構成1~3のいずれか1項に記載の情報処理装置。
(構成5)
前記制御手段は、表示または音声によって前記情報を通知するように制御する
ことを特徴とする構成1~4のいずれかに記載の情報処理装置。
(構成6)
前記制御手段は、振動によって前記情報を通知するように制御する
ことを特徴とする構成1~5のいずれかに記載の情報処理装置。
(構成7)
前記第2のユーザが第1のリストに含まれていない場合には前記情報は通知しない
ことを特徴とする構成1~6のいずれかに記載の情報処理装置。
(構成8)
前記第2のユーザが第2のリストに含まれている場合には前記情報は通知しない
ことを特徴とする構成1~7のいずれかに記載の情報処理装置。
(構成9)
前記3次元空間において前記第2のユーザが前記第1のユーザの視界に存在する場合には前記情報は通知しない
ことを特徴とする構成1~8のいずれかに記載の情報処理装置。
(構成10)
前記検知手段は、前記第1のユーザに対する前記第2のユーザの手の仮想的な接触を検知する
ことを特徴とする構成1~9のいずれかに記載の情報処理装置。
(構成11)
前記第2のユーザの複数の部位の少なくとも一部がトラッキングされており、
前記検知手段は、前記第2のユーザの複数の部位のうち、トラッキングされている部位の、前記第1のユーザに対する仮想的な接触を検知する
ことを特徴とする構成1~10のいずれかに記載の情報処理装置。
(構成12)
前記検知手段は、前記第1のユーザに対する、前記第2のユーザが保持している仮想オブジェクトの接触を検知する
ことを特徴とする構成1~11のいずれかに記載の情報処理装置。
(方法)
仮想空間または複合現実空間である3次元空間における、第1のユーザに対する第2のユーザの仮想的な接触を検知するステップと、
前記仮想的な接触があった場合に、当該接触の位置に関する情報を前記第1のユーザに通知するように制御するステップと
を有することを特徴とする情報処理装置の制御方法。
(プログラム)
コンピュータを、構成1~12のいずれかに記載の情報処理装置の各手段として機能させるためのプログラム。
【符号の説明】
【0067】
100:ヘッドマウントディスプレイ 201:制御部