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

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

<>
  • -情報処理システム 図1
  • -情報処理システム 図2
  • -情報処理システム 図3
  • -情報処理システム 図4
  • -情報処理システム 図5
  • -情報処理システム 図6
  • -情報処理システム 図7
  • -情報処理システム 図8
  • -情報処理システム 図9
  • -情報処理システム 図10
  • -情報処理システム 図11
  • -情報処理システム 図12
  • -情報処理システム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024163628
(43)【公開日】2024-11-22
(54)【発明の名称】情報処理システム
(51)【国際特許分類】
   G06F 3/01 20060101AFI20241115BHJP
   G06F 3/04812 20220101ALI20241115BHJP
   G06F 3/0346 20130101ALI20241115BHJP
   G06T 19/00 20110101ALI20241115BHJP
   G09G 5/00 20060101ALI20241115BHJP
   G09G 5/377 20060101ALI20241115BHJP
   G09G 5/37 20060101ALI20241115BHJP
【FI】
G06F3/01 510
G06F3/04812
G06F3/0346 422
G06T19/00 A
G09G5/00 530M
G09G5/377 100
G09G5/00 550B
G09G5/37 110
G09G5/00 550C
G09G5/37 200
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023079405
(22)【出願日】2023-05-12
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】奥沢 昌彦
(72)【発明者】
【氏名】渡部 博之
【テーマコード(参考)】
5B050
5B087
5C182
5E555
【Fターム(参考)】
5B050BA09
5B050CA07
5B050DA07
5B050EA07
5B050EA13
5B050EA19
5B050EA27
5B050FA06
5B050FA16
5B087BC02
5B087BC06
5B087DE07
5C182AA02
5C182AA03
5C182AA04
5C182AA06
5C182AA31
5C182AB02
5C182AB08
5C182AB33
5C182AB34
5C182AB35
5C182AC02
5C182AC03
5C182AC13
5C182BA01
5C182BA03
5C182BA04
5C182BA06
5C182BA14
5C182BA27
5C182BA29
5C182BA35
5C182BA39
5C182BA46
5C182BA47
5C182BA54
5C182BA56
5C182BA65
5C182BB03
5C182BB11
5C182BC01
5C182BC25
5C182BC26
5C182CA01
5C182CA32
5C182CA54
5C182CB11
5C182CB12
5C182CB13
5C182CB14
5C182CB45
5C182CB47
5C182CB52
5C182CB55
5C182DA65
5E555AA22
5E555AA24
5E555AA25
5E555AA63
5E555BA02
5E555BA04
5E555BA38
5E555BB02
5E555BB04
5E555BB38
5E555BC04
5E555BE17
5E555CA06
5E555CA10
5E555CA12
5E555CA15
5E555CA17
5E555CA42
5E555CA44
5E555CB21
5E555CB76
5E555DA08
5E555DA09
5E555DB06
5E555DC10
5E555DC11
5E555DC13
5E555DC25
5E555DC31
5E555DC35
5E555DC37
5E555DC85
5E555DD08
5E555EA19
5E555FA00
(57)【要約】
【課題】3次元空間上での操作において他のユーザの指示位置の把握しやすさと視認性低下防止の両立が可能な技術を提供する。
【解決手段】情報処理システムが、複数のユーザによって共有される仮想的な3次元空間について、第1のユーザの視点からの視野を表す第1の画像を生成し、各ユーザが前記3次元空間内の点を指し示すために用いる指示UIを前記第1の画像に合成する、画像生成部と、第2のユーザが前記指示UIによって指し示す前記3次元空間内の点である、前記第2のユーザの指示位置を、前記第1のユーザの視点から見た場合の視認性を判定する判定部と、前記判定部による判定結果に応じて、前記第1の画像における前記第2のユーザの指示UIの表示方法を切り替えるUI表示制御部と、を有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数のユーザによって共有される仮想的な3次元空間について、第1のユーザの視点からの視野を表す第1の画像を生成し、各ユーザが前記3次元空間内の点を指し示すために用いる指示UI(ユーザインターフェイス)を前記第1の画像に合成する、画像生成部と、
第2のユーザが前記指示UIによって指し示す前記3次元空間内の点である、前記第2のユーザの指示位置を、前記第1のユーザの視点から見た場合の視認性を判定する判定部と、
前記判定部による判定結果に応じて、前記第1の画像における前記第2のユーザの指示UIの表示方法を切り替えるUI表示制御部と、
を有する情報処理システム。
【請求項2】
前記判定部は、前記第2のユーザの指示位置が前記第1のユーザの視点から見える位置にある場合に前記第2のユーザの指示位置の視認性が良いと判定し、前記第2のユーザの指示位置が前記第1のユーザの視点から見えない位置にある場合に前記第2のユーザの指示位置の視認性が悪いと判定する、
請求項1に記載の情報処理システム。
【請求項3】
前記判定部による判定結果が変化した後、同じ判定結果が所定時間続いた時点で、前記UI表示制御部は、第1の画像における前記第2のユーザの指示UIの表示方法を切り替える、
請求項1に記載の情報処理システム。
【請求項4】
前記判定部は、前記第1の画像に含まれる物体の奥行き情報を用いて、前記第2のユーザの指示位置が前記物体の手前側にある場合に前記第2のユーザの指示位置の視認性が良いと判定し、前記第2のユーザの指示位置が前記物体の奥側にある場合に前記第2のユーザの指示位置の視認性が悪いと判定する、
請求項1に記載の情報処理システム。
【請求項5】
前記指示UIは、ユーザが指し示す前記3次元空間内の点である指示位置を表すポインタと、ユーザが指し示す方向である指示方向を表すレイと、を含み、
前記UI表示制御部は、
前記判定部によって前記第2のユーザの指示位置の視認性が悪いと判定された場合は、前記第2のユーザのレイを表示し、
前記判定部によって前記第2のユーザの指示位置の視認性が良いと判定された場合は、前記第2のユーザのレイを非表示にする、
請求項1に記載の情報処理システム。
【請求項6】
前記指示UIは、ユーザが指し示す前記3次元空間内の点である指示位置を表すポインタと、ユーザが指し示す方向である指示方向を表すレイと、を含み、
前記UI表示制御部は、
前記判定部によって前記第2のユーザの指示位置の視認性が悪いと判定された場合は、前記第2のユーザのポインタの表示方法を変更し、
前記判定部によって前記第2のユーザの指示位置の視認性が良いと判定された場合は、前記第2のユーザのレイを非表示にする、
請求項1に記載の情報処理システム。
【請求項7】
前記UI表示制御部は、前記第1のユーザが所定の操作をしているときのみ前記第2のユーザの指示UIを表示するように制御する、
請求項1に記載の情報処理システム。
【請求項8】
前記UI表示制御部は、複数のユーザの指示UIが前記第1の画像上で互いに重なる場合に、互いに重なる前記指示UIの表示方法を変更する、
請求項1に記載の情報処理システム。
【請求項9】
前記判定部は、前記第1のユーザの視点と前記第2のユーザの指示位置のあいだの距離が閾値以上である場合に前記第2のユーザの指示位置の視認性が悪いと判定し、前記距離が前記閾値未満である場合に前記第2のユーザの指示位置の視認性が良いと判定する、
請求項1に記載の情報処理システム。
【請求項10】
前記閾値は、前記第2のユーザの視点と前記第2のユーザの指示位置のあいだの距離に基づいて決定される、
請求項9に記載の情報処理システム。
【請求項11】
前記判定部は、前記第1のユーザの視線と、前記第1のユーザの視点と前記第2のユーザの指示位置を結ぶ線とのなす角が、所定の角度範囲内にある場合に前記第2のユーザの指示位置の視認性が良いと判定し、前記なす角が前記所定の角度範囲から外れている場合に前記第2のユーザの指示位置の視認性が悪いと判定する、
請求項1に記載の情報処理システム。
【請求項12】
前記所定の角度範囲は、前記第1のユーザの視野角に基づいて決定される、
請求項11に記載の情報処理システム。
【請求項13】
前記判定部は、
前記第2のユーザの指示位置における物体の面法線に基づいて、前記第1のユーザの視点が前記物体の表側にあるか裏側にあるかを判定し、
前記第1のユーザの視点が前記物体の表側にあり、且つ、前記第1のユーザの視線と、前記第1のユーザの視点と前記第2のユーザの指示位置を結ぶ線とのなす角が、所定の角度範囲内にある場合に、前記第2のユーザの指示位置が前記第1のユーザの視点から見える位置にあると判定し、
前記第1のユーザの視点が前記物体の裏側にあり、且つ、前記なす角が前記所定の角度範囲内にある場合に、前記第2のユーザの指示位置が前記第1のユーザの視野内にあるが、前記物体による隠れのため、前記第2のユーザの指示位置は前記第1のユーザの視点から見えないと判定する、
請求項1に記載の情報処理システム。
【請求項14】
前記UI表示制御部は、前記判定部による判定結果に応じて、前記第2のユーザの指示UIのサイズ、形状、および透明度のうち少なくともいずれかを変更する、
請求項1に記載の情報処理システム。
【請求項15】
前記UI表示制御部は、前記判定部による判定結果に応じて、前記第2のユーザの指示UIにアノテーションを付与する、
請求項1に記載の情報処理システム。
【請求項16】
前記UI表示制御部は、前記判定部による判定結果に応じて、前記第2のユーザが指示UIによる指示を行っていることを前記第1のユーザに知らしめるためのメッセージを表示する、
請求項1に記載の情報処理システム。
【請求項17】
前記UI表示制御部は、前記判定部による判定結果に応じて、前記第2のユーザの指示位置が位置している物体の表示方法を変更する、
請求項1に記載の情報処理システム。
【請求項18】
前記判定部は、
前記第1のユーザの視点から前記第2のユーザの指示位置が見えていると判定されている時間を計測し、
前記計測された時間に応じて、前記指示UIの表示方法を変更する、
請求項1に記載の情報処理システム。
【請求項19】
コンピュータが実行する情報処理方法であって、
複数のユーザによって共有される仮想的な3次元空間について、第1のユーザの視点からの視野を表す第1の画像を生成し、各ユーザが前記3次元空間内の点を指し示すために用いる指示UI(ユーザインターフェイス)を前記第1の画像に合成するステップと、
第2のユーザが前記指示UIによって指し示す前記3次元空間内の点である、前記第2のユーザの指示位置を、前記第1のユーザの視点から見た場合の視認性を判定するステップと、
前記判定の結果に応じて、前記第1の画像における前記第2のユーザの指示UIの表示方法を切り替えるステップと、
を有する情報処理方法。
【請求項20】
請求項19に記載の情報処理方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システムに関する。
【背景技術】
【0002】
従来、LAN(Local Area Network)などを介してコンピュータ同士を接続し、複数人で参加可能なオンライン会議を行うことができるシステムがある。このオンライン会議の一つの機能として、複数人の参加者が同じ表示画面を共有しリアルタイムかつ同時に操作ができるようにした、画面共有機能が知られている。例えば特許文献1では、画面共有機能において、それぞれのユーザが指し示している位置(指示位置)をポインタで表示し、それぞれのユーザの指示位置を視覚的に容易に区別することが可能な技術が提案されている。
【0003】
近年は、VR(Virtual Reality)やMR(Mixed Reality)のような技術を利用し、複数のユーザが仮想的な3次元空間を共有する空間共有システムも登場している。3次元空間では奥行き方向の情報も含まれることから、あるユーザの指示位置が、別のユーザから見たときに物体の奥側(死角)に存在するといった状況が発生する。それゆえ、特許文献1の技術を3次元空間にそのまま適用しても、他のユーザのポインタが視認できず、他のユーザがどこを指し示しているのか知覚できない可能性がある。
【0004】
この問題を解決する方法の一つとして、VRやMRにおける表示画面に、ユーザの位置(例えば手の位置や視点位置)からユーザの指示位置に向かう光線(レイ)を表示する方法がある。他のユーザの指示位置が物体の陰で見えなかったとしても、他のユーザから伸びるレイの表示によってその人が指し示しているところを概ね認識することが可能となる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平3-119478号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、レイは空間に占める割合がポインタに比べて大きいため、複数人での作業時にすべてのレイを表示してしまうと他のユーザのレイが邪魔になって視認性が悪くなることがあるという課題がある。
【0007】
また、VRやMRでは車や大型機械などの大きなものをCG(Computer Graphics)として表示する用途で用いられることもあり、指示位置が他のユーザから離れた箇所になることがある。そのような場合にポインタが小さくて他のユーザからは指示位置がわかりにくい状況が生じる可能性がある。とはいえ、遠くのユーザからも見えるようにポインタを大きくしてしまうと指示位置の近くにいる人はポインタが邪魔になりCGが見にくくなるという課題がある。
【0008】
本発明は前記問題点を解決するためになされたものであり、3次元空間上での操作においても他のユーザの指示位置の把握しやすさと視認性低下防止の両立が可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
本開示は、複数のユーザによって共有される仮想的な3次元空間について、第1のユーザの視点からの視野を表す第1の画像を生成し、各ユーザが前記3次元空間内の点を指し示すために用いる指示UI(ユーザインターフェイス)を前記第1の画像に合成する、画像生成部と、第2のユーザが前記指示UIによって指し示す前記3次元空間内の点である、前記第2のユーザの指示位置を、前記第1のユーザの視点から見た場合の視認性を判定する判定部と、前記判定部による判定結果に応じて、前記第1の画像における前記第2のユーザの指示UIの表示方法を切り替えるUI表示制御部と、を有する情報処理システムを含む。
【発明の効果】
【0010】
本発明によれば、3次元空間上での操作において他のユーザの指示位置の把握しやすさと視認性低下防止の両立が可能な技術を提供することができる。
【図面の簡単な説明】
【0011】
図1】第1実施形態に係る情報処理システムの構成例を示すブロック図
図2】第1実施形態に係る操作デバイスを説明する図
図3】第1実施形態に係る操作デバイスを使用した指示方向を説明する図
図4】第1実施形態に係る情報処理システムの動作を示すフローチャート
図5】第1実施形態に係るレイの表示を説明する図
図6】第2実施形態に係る情報処理システムの構成例を示すブロック図
図7】磁界センサシステムを示す図
図8】情報処理システムのハードウェア構成を示すブロック図
図9】第2実施形態に係る情報処理システムの動作を示すフローチャート
図10】指示位置の決定方法を示す図
図11】指示位置の表現例を示す図
図12】指示位置が見えるか否かを判定する方法を示す図
図13】第2実施形態に係る情報処理システムの動作を示すフローチャート
【発明を実施するための形態】
【0012】
本発明は、複数のユーザが仮想的な3次元空間を共有する空間共有システムに関し、より詳しくは、仮想的な3次元空間において各ユーザが指し示す位置や方向の表示方法を改善するための技術に関する。現実世界と仮想世界を融合することはクロスリアリティ(Cross Reality:XR)と呼ばれ、XRには、VR(仮想現実)、AR(拡張現実)、MR(複合現実)、SR(代替現実)などが含まれる。本発明はどのタイプのXRコンテンツにも適用可能である。
【0013】
以下に述べる本発明の実施形態では、ユーザは情報処理システムを利用して空間共有システムに参加する。情報処理システムは、各ユーザが個別に所持し操作する装置であるため、情報端末、ユーザ端末、クライアント装置、エッジ、XR端末などと呼んでもよい。なお、空間共有システムの構成には、各ユーザの情報処理システムが中央サーバにアクセスするサーバ・クライアント方式、各ユーザの情報処理システム同士がpeer-to-peerで通信するP2P方式などがあるが、いずれの構成でもよい。
【0014】
例えば、第1のユーザと第2のユーザが仮想的な3次元空間を共有していると仮定する。第1のユーザが操作する第1の情報処理システムでは、第1のユーザに見せるための画像として、第1のユーザの視点からの視野を表す第1の画像が生成される。同じように、第2のユーザが操作する第2の情報処理システムでは、第2のユーザに見せるための画像として、第2のユーザの視点からの視野を表す第2の画像が生成される。このとき、第1のユーザと第2のユーザが3次元空間内の同じ物体Oを見ていたとしても、視点が異なる
ため、第1の画像と第2の画像は異なるし、物体Oの見え方も異なるものとなる。
【0015】
例えば、第1のユーザと第2のユーザが物体Oの細部を指し示しながら議論を行う場面を想定する。各ユーザは、3次元空間内の点を指し示すために、指示UI(ユーザインターフェイス)を用いる。指示UIは、例えば、ユーザが指し示す3次元空間内の点(指示位置)を表すポインタと、ユーザが指し示す方向(指示方向)を表すレイとを含むとよい。ここで、第1の情報処理システムが、第1のユーザ(自分自身)の指示UIだけでなく、第2のユーザ(他人)の指示UIも第1の画像に合成することで、第1のユーザは、第2のユーザ(他人)の指示位置や指示方向を視認することができる。同様に、第2の情報処理システムが、第1のユーザの指示UIを第2の画像に合成することで、第2のユーザも第1のユーザの指示位置や指示方向を視認することができる。これにより、仮想的な3次元空間において、各ユーザが他のユーザの指示位置や指示方向を互いに認識することが可能となる。
【0016】
ただし、従来の課題で述べたように、他のユーザのレイやポインタが物体Oの視認性を低下させたり、視覚的な煩わしさや妨害感を招いたりする可能性がある。また、ユーザ間の距離が離れている場合や遠くを指し示している場合には、指示UIがどこを指し示しているか判別付きづらい可能性がある。このような問題は、参加ユーザの人数が多くなるほど顕著になる。
【0017】
そこで、第1の情報処理システムでは、第2のユーザの指示位置を第1のユーザの視点から見た場合の視認性を判定し、その判定結果に応じて第1の画像における第2のユーザの指示UIの表示方法を切り替えるUI表示制御を実行する。同様に、第2の情報処理システムでは、第1のユーザの指示位置を第2のユーザの視点から見た場合の視認性を判定し、その判定結果に応じて第2の画像における第1のユーザの指示UIの表示方法を切り替えるUI表示制御を実行する。このように視認性に応じて適応的にUI表示を制御することによって、他のユーザの指示位置の把握しやすさと視認性低下防止の両立を図ることが可能となる。指示UIの表示方法の切り替えの具体例は以下の実施形態で詳しく述べる。
【0018】
なお、指示方向(レイの方向)や指示位置(ポインタの位置)の操作方法は問わない。例えば、ユーザが手に装着し又は手で持つ操作デバイスの位置姿勢を検出することでユーザの指示方向や指示位置を特定してもよい。あるいは、カメラを用いたハンドトラッキング技術によってユーザの手指の向きや形状を認識することによって、ユーザの指示方向や指示位置を特定してもよい。あるいは、ユーザの視線や注視点を検出することによって、ユーザの指示方向や指示位置を特定してもよい。さらには、これら複数の操作方法を組み合わせたり、状況に応じて切り替えたりしてもよい。
【0019】
[第1実施形態]
以下、図1の構成図を参照して、第1実施形態に係る情報処理システムについて説明する。情報処理システム1は、HMD(Head Mounted Display)100および操作デバイス120を有する。
【0020】
HMD100はユーザの頭部に装着可能な頭部装着型の表示装置(電子機器)である。HMD100は、HMD制御部101、撮像部102、位置姿勢推定部103、深度マップ生成部104、ポインタ位置算出部105、UI表示制御部106、判定部112を有する。HMD100はさらに、デバイス通信部107、サーバ通信部108、画像生成部109、画像表示部110、メモリ111を有する。HMD制御部101は、HMD100の各構成を制御する。
【0021】
撮像部102は、2台のカメラ(撮像装置)を含むとよい。2台のカメラは、ユーザが肉眼で(HMD100を装着していない状態で)見たときと同様の映像を撮像するために、HMD100の装着時のユーザの左右の目の近くに配置される。2台のカメラが被写体(ユーザの正面の範囲)を撮像した画像は、画像生成部109および位置姿勢推定部103に出力される。第1実施形態では画像生成部109で使用する画像と位置姿勢推定部103で使用する画像を共用する構成で説明するが、画像生成部109と位置姿勢推定部103で別のカメラを使用する等、さらに複数台のカメラを搭載してもよい。
【0022】
位置姿勢推定部103は、撮像部102の2台のカメラにより撮像した画像を受け取り、Visual SLAM(Simultaneous Localization and Mapping)によりHMD100の位置と姿勢を推定する。推定した位置姿勢情報は画像生成部109に送信される。
【0023】
深度マップ生成部104は、深度マップの生成を行う。深度マップは3次元空間における奥行き情報を表現するためのものである。深度マップ生成部104は、ユーザの視点位置を基準として現実空間の物体または重畳表示されるCGコンテンツまでの距離の情報を取得し、深度マップを作成する。現実空間の物体までの距離情報は、例えば撮像部102で撮像した2枚の画像の間の視差から算出することができる。2枚の画像から距離情報を算出する方法は既存の技術を用いることができる。深度マップを生成する方法は上記方法に限ったものではなく、LiDAR(Light Detection And Ranging)を利用する等、他の方法を用いてもよい。
【0024】
ポインタ位置算出部105は、ポインタが指示している位置を算出する。複合現実空間内における位置の指示は、HMD100にあらかじめ対応付けられている操作デバイス120を使用して行うことができる。操作デバイス120についての詳細な説明は後述する。ユーザが操作デバイス120を使用して現実空間の物体またはCG上を指し示す操作を行った時に、ポインタ位置算出部105は、デバイス通信部107を介して取得した操作デバイス120の位置姿勢からユーザの指示方向を算出する。ポインタ位置算出部105は、操作デバイス120の位置姿勢情報から算出した指示方向と、前述の深度マップから3次元空間上で指示している位置を特定する。
【0025】
判定部112は、他のユーザの指示位置を自分の視点から見た場合の視認性を判定する。具体的には、判定部112は、サーバ通信部108を介して得られた他のユーザのポインタ位置情報と、深度マップ生成部104で生成した深度マップから、他のユーザのポインタ位置が自分から見える位置にあるか否かを判定する。UI表示制御部106は、判定部112の判定結果に応じてポインタおよびレイの表示方法についての情報を生成する。
【0026】
デバイス通信部107は、操作デバイス120との無線通信を行う。無線通信を介して、HMD100は、操作デバイス120のボタン等の操作情報や操作デバイス120に搭載されているセンサ情報を取得する。操作デバイス120との通信にはBluetooth(登録商標)や無線LANなどが利用される。
【0027】
サーバ通信部108は、サーバとの通信を行う。サーバとの通信には無線LANなどが利用される。本実施形態では、複数のユーザが現実空間の同じ場所に集まってサーバに参加(接続)し、複数のユーザで一つの複合現実空間を共有する、という利用形態を想定している。サーバ通信部108は、サーバを介して、他の参加ユーザの位置情報などの必要な情報の送受信を行う。また、複合現実空間内で複数人が作業する際に他のユーザの指示位置をポインタで表示できるように、HMD100は、自分の操作デバイス120の位置および姿勢情報と指示位置や操作している情報をサーバに送信し、他ユーザの情報をサーバから受信する。
【0028】
画像生成部109は、撮像部102から取得した画像と、CGなどのコンテンツとを合成することにより複合現実空間を表す合成画像を生成する。CGの視点は位置姿勢推定部103によって推定された位置姿勢情報を取得して決定される。第1実施形態では複合現実空間を表す合成画像を生成する例を説明するが、CGのみで構成された仮想現実空間を表す画像を生成するようにしてもよい。さらに、画像生成部109は、デバイス通信部107を経由して取得した操作デバイス情報と、UI表示制御部106で生成された情報に従ってポインタおよびレイのCGを合成する。
【0029】
画像表示部110は、画像生成部109により生成された画像を表示する。画像表示部110は、例えば、液晶パネルまたは有機ELパネルなどを有する。ユーザがHMD100を装着すると、ユーザの右目と左目にそれぞれ画像表示部110が配される。
【0030】
メモリ111は、HMD100内で処理を行う際に必要な各種データを保持する記憶媒体である。メモリ111に保持されるデータは、例えば、サーバ通信部108で取得したユーザ情報や指示位置情報、デバイス通信部107で受信した操作デバイス120のセンサ情報などがある。
【0031】
本実施形態では、頭部装着型のHMD100に本発明を適用した例を説明するが、本発明の構成はHMDに限られない。例えば、ディスプレイおよびカメラを備えるパーソナルコンピュータ、スマートフォン、タブレット端末などに、本発明を適用してもよい。また、本実施形態では、画像処理および情報処理を担う情報処理ユニット(情報処理装置)をHMD100に内蔵したが、情報処理ユニット(情報処理装置)をHMD100とは別体にしてもよい。
【0032】
(操作デバイスの構成)
次に図1を参照して、操作デバイス120の内部構成を説明する。操作デバイス120は、ユーザがHMD100に対する指示(コマンド)の入力を行うための装置であり、ユーザ操作によってHMD100を制御するための制御装置ともいえる。操作デバイス120は、デバイス制御部121、操作部122、通信部123、慣性センサ124を有する。
【0033】
デバイス制御部121は、操作デバイス120の各構成を制御する。操作部122は、ユーザが操作するボタンなどの操作部である。通信部123は、操作部122の操作情報と慣性センサ124が取得したセンサ情報を無線通信によってHMD100に送信する。慣性センサ124は、慣性計測装置(IMU:Inertial Measurement Unit)であり、3次元の角速度および加速度をセンサ情報として取得する。慣性センサ124は、さらに、地磁気センサや複数の角速度センサを含んでいてもよい。
【0034】
操作デバイス120は、「ハンドコントローラ」又は単に「コントローラ」とも呼ばれる。ユーザが手で握る(持つ)形状のものはグリップタイプコントローラもしくはハンドヘルドタイプコントローラなどとも呼ばれ、ユーザの手や指に装着された状態で利用されるものはウェアラブルタイプコントローラなどとも呼ばれる。本実施形態では、例えば、図2Aおよび図2Bに示すように、ユーザの指に装着可能なように、指輪型(リング型)の操作デバイス120を用いる。操作デバイス120がユーザの指に装着可能であれば、ユーザは操作デバイス120を保持しながらも自由に手や指を動かすことができると共に、操作デバイス120による手の隠れも発生しにくいという利点がある。
【0035】
なお、操作デバイス120の形状は指輪型であるとしたが、これに限定されるものではない。例えば、操作デバイス120の形状は、グローブ型のような手に装着可能な形状や
腕時計型(ブレスレット型)のように手首に装着可能な形状であってもよい。このように、操作デバイス120は、ユーザが使用しやすいように、ユーザの手により保持可能、又は手や手首に装着可能な形態であるとよい。HMD100を操作するための操作デバイスを複数設けてもよい。例えば、右手用の操作デバイスと左手用の操作デバイスを設けてもよいし、複数の指(例えば、親指と人差し指など)に操作デバイスを装着してもよい。
【0036】
操作部122は、ユーザが物理的接触により操作を行う任意の操作部材で構成してよい。例えば、操作部122は、平面的な移動量を感知できるOTP(オプティカルトラックパッド)を有してもよい。また、操作部122は、タッチパッド、タッチパネル、十字キー、ボタン、ジョイスティック、およびトラックパッド装置のいずれかを含んでいてもよい。あるいは、操作デバイス120による操作として、操作デバイス120自身の位置および/又は姿勢の変化のみを用いるのであれば、操作部122は無くても構わない。
【0037】
(レイ表示について)
図3を参照して、操作デバイス120を用いたポインタ操作について説明する。
【0038】
図3の符号302に示す通り、操作デバイス120の位置および姿勢を基準とした操作デバイス座標系(xyz直交座標系)が定義されている。HMD制御部101は、操作デバイス120からデバイス通信部107および通信部123を介して、慣性センサ124で取得したセンサデータを受信し、センサデータに基づいて操作デバイス120の姿勢を算出する。操作デバイス120の姿勢の算出については公知の技術を用いることができる。また、HMD100の撮像部102で得られた画像を用いた画像認識により操作デバイス120の位置を特定するなどの方法で操作デバイス120の位置の特定をする。画像認識により特定する方法は機械学習など公知の技術を用いることができる。
【0039】
HMD100は操作デバイス120の指示方向の設定値を記憶している。例えば図3に示すように操作デバイス座標系のx軸(負方向)と平行に指示方向303が設定されている。このようにすることで、ユーザは操作デバイス120を装着した手の動きに応じて離れた位置を指示するよう操作することができる。
【0040】
第1実施形態では、ユーザがポインタの位置についての認識が容易にできるように、画像生成部109は操作デバイス120から指示方向303に沿って伸びるレイと指示位置を示すポインタのCGを合成する。レイは、操作デバイス120から光線が照射されているかのように指示方向303に沿って直線的に伸びるCGオブジェクトである。ポインタは、レイの先端部分(レイと物体(現実空間の物体又はCGによる仮想物体)との交点)を表すCGオブジェクトである。
【0041】
(他ユーザのポインタおよびレイの表示について)
第1実施形態において、参加ユーザは本情報処理システム1におけるHMD100および操作デバイス120をそれぞれ装着し、サーバを経由して互いに通信を行っている。このような状況において、それぞれのユーザが複合現実空間上の物体を指示したときに、他の参加ユーザに指示箇所がわかるようにポインタおよびレイの表示を行う。
【0042】
ポインタおよびレイの表示の制御に関する判定部112およびUI表示制御部106の処理について、図4のフローチャートを参照して詳細に説明する。
ステップS401では、判定部112が、深度マップ生成部104によって現在の自分の視点位置を基準として生成された深度マップをメモリ111から取得する。
【0043】
以降のステップS402~S405の処理は、自分以外の参加ユーザについてそれぞれ実行される。以後の説明において、処理対象として選ばれた参加ユーザを「対象ユーザ」
と称する。
ステップS402では、判定部112は、サーバ通信部108を介してあらかじめ取得してある対象ユーザのデータをメモリ111から読み出し、その対象ユーザが指し示している位置(以後「他者指示位置」と称する。)の情報を取得する。
【0044】
ステップS403では、判定部112は、他者指示位置が自分の視点から見える位置にあるか否かを調べる。判定部112は、他者指示位置が自分の視点から見える位置にある場合は他者指示位置の視認性が良いと判定し、他者指示位置が自分の視点から見えない位置にある場合は他者指示位置の視認性が悪いと判定する。具体的には、判定部112は、ステップS402で取得した他者指示位置を自分の視野が表示されているスクリーン上に投影した時の投影位置を算出する。そして、判定部112は、算出した投影位置とステップS401で取得した深度マップの該当位置の奥行き情報とを比較することにより、他者指示位置が自分の視野内に存在する物体の手前側にあるか奥側(死角)にあるかを判定する。他者指示位置が物体の手前側にある場合は他者指示位置が見える位置にある(視認性が良い)と判定し、他者指示位置が物体の奥側にある場合は他差指示位置が見えない位置にある(視認性が悪い)と判定する。このように、深度マップを利用して他者指示位置の視認性を判定することができる。
【0045】
ステップS404では、UI表示制御部106は、ポインタの表示設定を行う。ステップS403において、他者指示位置が自分の視点位置から見える位置を指示していると判定された場合は、UI表示制御部106はポインタを表示する設定とし、そうでない場合はポインタを表示しない設定とする。他者指示位置が自分から見えない位置を指示している場合にポインタを非表示にすることで、他のユーザの指示位置の誤認を防止できる。さらに、UI表示制御部106はポインタの表示方法について設定を行う。ポインタの表示方法の設定は、例えば、ポインタの色・形状の設定や、ポインタの傍に表示するテキスト(アノテーション)の設定などを含む。ユーザごとに色・形状・テキストなどの表示方法を変えることにより、ポインタによりユーザが区別できるようにするためのものである。本実施形態では、他者指示位置が自分から見えない位置を指示している場合にポインタ表示を行わないが、このような制御に限られない。例えばポインタを半透明表示にするなど、通常のポインタ表示と異なった表示方法にして見えない位置を指示しているということを表現するようにしてもよい。また、レイ表示によってポインタがレイに重なってしまう場合はポインタが見えやすくなるように、色や大きさを強調させるように設定するようにしてもよい。
【0046】
ステップS405では、UI表示制御部106はレイの表示設定を行う。自分の視点位置から対象ユーザの指示位置が見えている場合は、UI表示制御部106は対象ユーザのレイを表示しない設定にする。これにより、画面内にレイが増えることによってCGコンテンツが見づらくなってしまう等の視認性低下を防止することができる。なお、ステップS404のポインタ表示設定により、対象ユーザの指示位置がポインタで認識できるため、対象ユーザの例を非表示にしても大きな問題はない。
一方、自分の視点位置から対象ユーザの指示位置が見えていない場合は、UI表示制御部106はレイを表示するように設定する。このようにすることで自分から見えない指示位置に対してのおおよその指示方向を把握することが可能となる。
【0047】
ステップS406では、自分以外のユーザそれぞれについてステップS402からステップS405の処理を実施したか否かを判定して、すべてのユーザの処理が終わっていなければ、未処理のユーザを対象ユーザに選択し、ステップS402に戻る。すべてのユーザの処理が完了したら処理を終了する。
【0048】
(ポインタおよびレイの表示の他の方法)
他のユーザの指示位置が自分の視点から見える領域と見えない領域の間の境界付近にあるとき、他のユーザの手がぶれたり自分自身の視点位置がぶれたりすることで、他のユーザの指示位置が見える領域と見えない領域の境界を頻繁にまたぐような場合がある。このような場合、前述したUI表示制御部106の基本的動作では、ポインタの表示とレイの表示の切り替わりが頻繁に発生し、視認性の低下や視覚的な煩わしさの発生を招いてしまう。このような問題を解決するために、判定部112による判定結果が変化した後、同じ判定結果が所定時間続いた時点で、UI表示制御部106が他のユーザのポインタやレイの表示方法を切り替えるようにしてもよい。
【0049】
例えば、ステップS404およびステップS405の処理において、他者指示位置が自分の見えない位置から見える位置に移動した場合でも所定時間(例えば数百ミリ秒~数秒程度)は表示を変えず、レイを非表示のままとしてもよい。また、ステップS404およびステップS405の処理における表示方法の設定は上記に限ったものではなく、前記境界付近での表示方法として、前記境界をまたいでから所定時間はレイとポインタを両方表示する等の表示設定を行うようにしてもよい。この所定時間の長さをユーザが設定できるようにしてもよい。
【0050】
さらに、ユーザが操作デバイス120の操作部122を操作している間だけレイを表示するなど、所定の操作をしているときのみレイやポインタなどの指示UIを表示するように設定してもよい。これにより、ユーザは、他のユーザの指示位置や指示方向を確認したいときは所定の操作を行って他のユーザのレイやポインタを表示状態に切り替え、それ以外の場合は非表示状態として視野内の物体の視認性を高める、といった使い分けが可能になる。
【0051】
(ポインタおよびレイの表示の他の方法2)
複数人がレイ表示を行った場合に、レイ同士が重なることやレイとポインタが重なる場合があり、レイおよびポインタの視認性が低下してしまう恐れがある。例えば、図5に示すように複数のレイ50が重なって表示されるような状況において、重なっている領域付近についてレイ50の奥に表示されている物体51が見えにくくなる恐れがある。
【0052】
このような問題を解決するために、UI表示制御部106が、レイやポインタが重なる場合に表示方法を変更してもよい。具体的には、判定部112が、各ユーザの操作デバイス120の位置および指示位置の情報を取得し、その情報に基づいてレイが重なって表示されるか否かを判断する。前記判断の結果、所定数以上のレイが重なって表示される場合には、UI表示制御部106は、例えば他のCGと合成するときのレイの透明度を上げるようにレイの表示方法を変更する。ここで「所定数」は2以上の任意の値に設定してよい。レイの表示方法の変更は透明度の変更に限ったものではなく、例えばレイを細く表示するなど他の方法でもよい。レイ同士が重なって表示されるか否かは、各ユーザの操作デバイス120の位置および指示位置をスクリーン上に投影した時の座標を算出し、操作デバイス120と指示位置を結んだ線分同士が交わるか否かを調べることによって判定することができる。
【0053】
また、指示位置に表示するポインタが他のユーザのレイと重なって表示されるような状況で視認性が低下してしまう場合がある。UI表示制御部106は、ポインタが他のユーザのレイ表示と重なるような場合には、ポインタの大きさの変更、ポインタの色の強調表示などの方法により、指示位置が認識しやすいように設定するとよい。
【0054】
(ポインタおよびレイの表示の他の方法3)
第1実施形態では、参加ユーザが同一の場所に集まって操作を行う例で説明したが、ユーザは離れた場所から遠隔で参加することができるようにしてもよい。遠隔で参加するユ
ーザは複合現実空間または仮想空間上の所定の位置にマッピングされる。このような状況では、遠隔で参加しているユーザの位置が他の参加ユーザからは直接見えないため、サーバ通信部108を経由して取得したユーザの情報から、ユーザ位置にCG(アバターなど)を表示して他のユーザにわかるようにするとよい。
【0055】
また、指示位置が他のユーザに分かるようにポインタやレイを表示するにあたり操作の起点がわかるほうが良いため、操作デバイス120のCGをユーザの手の所定の位置に表示するとよい。
【0056】
さらに、UI表示制御部106の処理において、操作デバイス120のCGとポインタの色を同一にしてかつユーザごとにその色を変えるなどの表示上の工夫を行うことにより、ユーザとポインタの対応がわかるようにしてもよい。
【0057】
以上、第1実施形態では、他の参加ユーザの指示位置が自分の視点位置から見えるか否かに応じて他の参加ユーザのポインタやレイの表示方法を変えるようにする。このため、他のユーザの指示位置によらず指示位置の把握が容易でかつ、視認性が低下しない表示方法を提供することができる。
【0058】
[第2実施形態]
第1実施形態では、現実空間の物体または重畳表示されるCGコンテンツの深度マップと他のユーザの指示位置の前後関係から指示位置が見えるか否かを判定し、ポインタやレイの表示方法を変更した。第2実施形態では自分の視点位置と他のユーザの指示位置の距離に応じて指示位置のポインタやCGコンテンツの表現を変える情報処理装置の一例について説明する。
【0059】
先ず、第2実施形態に係る情報処理システムの構成例について、図6のブロック図を参照して説明する。本実施形態に係る情報処理システム1は、ハードウェアとして、HMD700、情報処理装置600を有している。HMD700と情報処理装置600との間は有線および/又は無線でもって互いにデータ通信が可能なように接続されている。
【0060】
HMD700について説明する。観察者となるユーザは自身の頭部にHMD700を装着することで、HMD700を介して仮想現実空間や複合現実空間を観察することができる。なお、本実施形態では頭部装着型表示装置の一例としてHMD700を挙げているが、他の種類の頭部装着型表示装置を適用しても構わない。また、頭部装着型表示装置に限らず、観察者に仮想現実空間や複合現実空間を観察させるために観察者によって閲覧される表示装置であれば、例えば、ハンドヘルド型表示装置など、他のタイプの表示装置を適用しても構わない。
【0061】
表示部702は情報処理装置600から送出された仮想現実空間または複合現実空間の画像を表示する。表示部702は観察者の左右の目にそれぞれ対応して配置された2つのディスプレイを含んで構成されていてもよい。この場合、観察者の左眼に対応するディスプレイには左眼用の仮想現実空間または複合現実空間の画像が表示され、観察者の右眼に対応するディスプレイには右眼用の仮想現実空間または複合現実空間の画像が表示される。
【0062】
撮像部701は、現実空間の動画像を撮像するもので、観察者の右眼に提供するための画像を撮像する撮像部(右撮像部)701Rと、観察者の左眼に提供するための画像を撮像する撮像部(左撮像部)701Lと、を有する。それぞれの撮像部701R,701Lによる動画像を構成する各フレームの画像(現実空間の画像)は順次、情報処理装置600に対して送出される。仮想現実空間を観察するシステムの場合、撮像部701は現実空
間の動画像を情報処理装置600に送出しなくてもよい。撮像部701の位置姿勢を計算するために、右撮像部701R、左撮像部701Lとは異なる現実空間の動画像を撮像する撮像部(位置姿勢算出用撮像部)701Nを備えていてもよい。位置姿勢算出用撮像部701Nと右撮像部701Rおよび左撮像部701Lとの間の相対的な位置関係は情報処理装置600に予め保持される。またそれぞれの撮像部701N,701R,701Lの内部パラメータ(焦点距離、主点、画角など)も情報処理装置600に予め保持される。
【0063】
計測部703は磁界センサシステムのレシーバとして機能するもので、自身の位置姿勢を計測する。磁界センサシステムについて、図7を用いて説明する。磁界発生装置801は磁界センサシステムにおけるトランスミッタとして機能するもので、現実空間中の所定の位置に固定して配置されており、自身の周囲に磁界を発生させる。磁界発生装置801の動作制御はコントローラ802によって行われ、コントローラ802の動作制御は情報処理装置600によって行われる。
【0064】
計測部703はHMD700に対して固定して取り付けられており、磁界発生装置801が発生する磁界中における自身の位置姿勢に応じた磁界の変化を計測し、その計測結果をコントローラ802に対して送出する。コントローラ802は、この計測結果から、センサ座標系804における計測部703の位置姿勢を示す信号値を生成して情報処理装置600に送出する。センサ座標系804は、磁界発生装置801の位置を原点とし、該原点でもって互いに直交する3軸をそれぞれx軸、y軸、z軸とする座標系(x,y,z)である。なお、本実施形態では、磁気センサシステムによりユーザ(HMD700)の位置や姿勢を検出したが、磁気センサシステムの代わりに、超音波センサシステムや光学式センサシステムを用いても構わないし、これらのシステムを組み合わせて使用してもよい。
【0065】
情報処理装置600について説明する。情報処理装置600はPC(パーソナルコンピュータ)等のコンピュータ装置、スマートフォンやタブレット端末装置等の携帯型端末装置、により構成されている。情報処理装置600は、主な機能部として、取得部601、推定部602、3次元情報生成部603、算出部604、送受信部605、保持部606、判定部607、UI表示制御部608、画像生成部609を有する。
【0066】
図8は、本実施形態に係る情報処理装置600として利用可能なコンピュータの基本構成を示す図である。図8においてプロセッサ901は、例えばCPUであり、コンピュータ全体の動作をコントロールする。メモリ902は、例えばRAMであり、プログラムおよびデータ等を一時的に記憶する。コンピュータが読み取り可能な記憶媒体903は、例えばハードディスク又はソリッドステートドライブ等であり、プログラムおよびデータ等を非一時的に記憶する。本実施形態においては、記憶媒体903に格納されている、各部の機能を実現するプログラムが、メモリ902へと読み出される。そして、プロセッサ901が、メモリ902上のプログラムに従って動作することにより、以下に説明する各機能部の機能が実現される。また、入力I/F905は、外部の装置から情報処理装置で処理可能な形式で入力信号を入力する。また、出力I/F906は、外部の装置へ処理可能な形式で出力信号を出力する。
【0067】
本実施形態の情報処理装置600の各機能部の動作について図9のフローチャートを参照して説明する。図9のフローチャートの処理により、情報処理装置600は自分の指示位置を他のユーザに送信する。一方で、情報処理装置600は、他のユーザの指示位置を受け取って、自分の視点との距離に応じて、指示位置やCGコンテンツの表現を変える。これにより、他のユーザの指示位置の把握しやすさと視認性低下防止の両立を行う。
【0068】
S1001では、取得部601が撮像部701の画像とセンサ座標系804における計
測部703の位置姿勢を受け取る。仮想現実空間を観察するシステムの場合、位置姿勢算出用撮像部701Nの画像のみを受信してもよい。複合現実空間を観察するシステムの場合、撮像部701から、右撮像部701Rの画像、左撮像部701Lの画像、位置姿勢算出用撮像部701Nの画像を受信するとよい。
【0069】
S1002では、推定部602が右撮像部701Rを右視点、左撮像部70Lを左視点とし、HMD700の右視点および左視点の世界座標系803における位置姿勢を推定する。世界座標系803は、ユーザ(観察者)が存在する現実空間上に設定された基準点を原点とする直交座標系(X,Y,Z)である。センサ座標系804における位置姿勢を世界座標系803における位置姿勢に変換するための変換情報は予め求められ、情報処理装置600に予め登録されているものとする。また、計測部703と右撮像部701Rとの間の相対的な位置関係(右眼用バイアス)、計測部703と左撮像部701Lとの間の相対的な位置関係(左眼用バイアス)も予め求められ、情報処理装置600に予め登録されているものとする。
【0070】
具体的には、推定部602は、計測部703から(図7の場合はコントローラ802を介して)センサ座標系804における計測部703の位置姿勢を示す信号値を取得する。次に推定部602は、該信号値が表す位置姿勢を上記の変換情報を用いて、世界座標系803における位置姿勢に変換する。そして推定部602は、変換した位置姿勢に右眼用のバイアスを加えることで、世界座標系803における右視点の位置姿勢を推定する。同様に推定部602は、変換した位置姿勢に左眼用のバイアスを加えることで、世界座標系803における左視点の位置姿勢を算出する。以下では、右視点および左視点で共通する説明においては、右視点および左視点をまとめて単に視点と呼称する場合がある。
【0071】
なお世界座標系803における視点の位置姿勢を求めるための方法には、これ以外にも様々な方法が適用可能である。例えば、現実空間の画像から世界座標系803に割り当てられているマーカー(ARマーカーとも呼ばれる。)を抽出する。そしてマーカーの位置姿勢に基づいて、世界座標系803における視点の位置姿勢を算出する。位置姿勢算出用撮像部701Nがマーカーを抽出し、マーカーの位置姿勢に基づいて世界座標系803における位置姿勢算出用撮像部701Nの位置姿勢を求めた後、右撮像部701Rおよび左撮像部701Lの相対的な位置関係に基づいて視点を算出してもよい。その他にも、現実空間の画像中に写っている特徴点に基づいてSimultaneous Localization and Mapping(SLAM)の処理を実施して、視点の位置姿勢を求めてもよい。
【0072】
S1003では、3次元情報生成部603は取得部601が取得した撮像部701の画像や推定部602が推定した撮像部701の位置姿勢から3次元情報を生成する。3次元情報は世界座標系803における3次元的な位置情報を持つポリゴンである。例えば、3次元情報生成部603は、右撮像部701Rと左撮像部701Lから取得したステレオ画像における視差情報から、各画素の奥行きを算出することが可能である。3次元情報生成部603は、各画素の奥行き情報と撮像部701の位置姿勢から、世界座標系803における3次元的な点群を生成し、その点群をつなぎ合わせたポリゴンを生成する。
【0073】
S1004では、算出部604が自分の指示位置を算出する。図10を用いて、指示位置の算出方法について説明する。符号1101は、HMD700の視点の3次元直交座標系(Xe,Ye,Ze)を示す。視点の座標系1101は、視点1100を原点とし、撮像部701の光軸に平行にZe軸を、像面に平行にXe軸とYe軸をとる。本実施形態では、HMD700の上方向がYe正方向、ユーザの右手方向がXe正方向、視線とは逆向きの方向がZe正方向となるように設定される。視点1100は、右視点もしくは左視点の位置、又は、右視点と左視点の中心に置かれる。物体1102は、3次元情報生成部6
03で生成された3次元情報(現実物体)、又は、保持部606から取得されたCGコンテンツ(仮想物体)を示す。算出部604は、例えば、視点の座標系1101のZe軸負方向のベクトルと物体1102のポリゴンとの交点を『指示位置』として算出する。また、算出部604は、指示位置におけるポリゴンの面法線ベクトル1103も算出する。このようにして算出部604は自分の指示位置を算出する。ここで保持部606から取得するCGコンテンツは、世界座標系803におけるCGコンテンツの形状情報であるポリゴン情報、色情報、質感などを表す情報、テクスチャを規定する情報、テクスチャ等、CGコンテンツを描画するために必要な情報を含む。
【0074】
なお、本実施形態では、ユーザの視点および視線方向を検知してユーザが注視している仮想空間上の点(注視点)を特定し、視線方向(すなわち指示方向)を示すレイや注視点(すなわち指示位置)を示すポインタなどのUIを表示する。ただし、ユーザが指示方向および指示位置を入力する方法、あるいはユーザの指示方向および指示位置を算出する方法はこれに限らない。例えば、第1実施形態で説明したような操作デバイスを利用してもよい。つまり、ユーザが手に装着し又は手で持った操作デバイスの位置姿勢を検出することでユーザの指示方向を検出し、その指示方向のベクトルと物体1102の交点を指示位置として算出してもよい。あるいは、ユーザの手を検出し、人差し指の指す方向のベクトルと物体1102の交点を指示位置としてもよい。HMD700がユーザの視線を検出し、ユーザの視線方向のベクトルと物体1102の交点を指示位置として算出してもよい。その他にも、ユーザが持つ物体に貼り付けられたマーカーを固定カメラ等のセンサで検出し、そのマーカーの位置姿勢からユーザの指示方向のベクトルを特定し、そのベクトルと物体1102の交点を指示位置として算出してもよい。
【0075】
S1005では、送受信部605が他のユーザの情報処理装置に自分の指示位置と指示位置における面法線ベクトルと視点の位置姿勢とを送信する。自分の情報を他のユーザに送信するかどうかや、送信先となるユーザの選択を、ユーザ自身が情報処理装置600に設定できるようにしてもよい。このとき、情報処理装置600への設定を、第1実施形態で説明した操作デバイス120を用いて操作できるようにすることも好ましい。
【0076】
S1006では、送受信部605が、他のユーザの情報処理装置から他のユーザの指示位置と面法線ベクトルと視点の位置姿勢を受信する。
【0077】
S1007では、判定部607が、自分の視点の位置と他のユーザの指示位置のあいだの距離を算出する。そして、判定部607は、算出した距離と閾値を比較する。自分の視点と他のユーザの指示位置のあいだの距離が閾値以上の場合、自分の視点から他のユーザの指示位置の視認性が悪い(見えていない又は見えにくい)と判定する。距離が閾値以下の場合は自分の視点から他のユーザの指示位置の視認性が良い(見えている又は見えやすい)と判定する。閾値は、固定値でもよいし、ユーザ自身が予め情報処理装置600に設定していた値でもよい。あるいは、判定部607が閾値を適応的(動的)に変更してもよい。さらには、判定部607が他のユーザごと(すなわち指示位置ごと)に閾値を変更してもよい。例えば、他のユーザの視点位置と他のユーザの指示位置のあいだの距離そのもの、もしくは、その距離に係数をかけた値を、閾値として用いてもよい。他にも、自分の視点と他のユーザの視点のあいだの距離、自分の視点と自分の指示位置のあいだの距離、自分の指示位置と他のユーザの指示位置のあいだの距離、物体1102のサイズや面法線の向きなどに基づいて、閾値を動的に決定してもよい。
【0078】
S1008では、判定部607の結果を受け取り、UI表示制御部608が指示位置の表現もしくは物体1102の表現を変更する。UI表示制御部608は、他のユーザの指示位置が見えない又は見えにくい場合には、その指示位置の見えやすさ(視覚的な識別性)を向上させるとよい。このとき、物体1102よりも指示位置を視覚的に目立たせるよ
うに、指示位置と物体1102の両方もしくは一方の表現を変更するとよい。つまり、物体1102よりも指示位置の視認性を優先するのである。他方、他のユーザの指示位置が見えている又は見えやすい場合には、UI表示制御部608は、指示位置の表示による物体1102の視認性の低下を抑えるように、指示位置と物体1102の両方もしくは一方の表現を変更するとよい。つまり、指示位置よりも物体1102の視認性を優先するのである。
【0079】
図11Aおよび図11Bを用いて、指示位置及び物体1102の表現の変更について説明する。図11Aは、自分の視点1100と他のユーザの指示位置1200のあいだの距離Lが閾値以上と判定された例を示す。距離Lが閾値以上の場合は、他のユーザの指示位置1200の視認性を向上するため、指示位置1200を表すポインタ1201の表現を強調する。具体的には、ポインタ1201のサイズを通常よりも大きくする。その他にも、ポインタ1201を強調色にしたり、点滅やアニメーションなどの強調効果を追加したりしてもよい。その他にもアノテーション1202を追加したり、ポインタ1201が重なる物体1102を半透明にしたりしてもよい。図11Bは、自分の視点1100と他のユーザの指示位置1200のあいだの距離Lが閾値未満と判定された例を示す。距離Lが閾値未満の場合は、物体1102の視認性を優先するために、例えば、指示位置1200のポインタ1201を小さくし、枠だけにする。その他にも指示位置1200のポインタ1201を半透明にしてもよい。以上のように距離Lに応じてポインタ1201の表現および/又は物体1102の表現を変更することによって、他のユーザの指示位置1200の把握しやすさと物体1102の視認性低下防止の両立が可能になる。
【0080】
なお、上述したポインタ1201および物体1102の表現変更は、すべてを実施してもよいし、少なくとも一つを実施するだけでもよい。もちろん他の表現変更を用いてもよい。また、本実施形態では、距離Lが閾値以上か否かで表示を切り替えたが、距離Lに応じて3段階以上の表示の切り替えを行ってもよい。例えば、距離Lが大きくなるほど段階的にポインタ1201を大きくしたり、物体1102の透明度を高くしたりしてもよい。逆に、距離Lが小さくなるほど段階的にポインタ1201を小さくしたり、ポインタ1201の透明度を高くしたりしてもよい。
【0081】
S1009では、画像生成部609は先ず、保持部606から取得したCGコンテンツやUI表示制御部608が変更した指示位置のポインタやCGコンテンツの情報を用いて、各CGコンテンツが配置された仮想空間を構築する。そして画像生成部609は、S1002で算出した右視点と左視点の位置姿勢から見える仮想空間の画像を撮像部701の内部パラメータも利用して生成する。視点から見た仮想空間の画像を生成するための技術については公知の技術を利用可能であるため、これに係る説明は省略する。
【0082】
画像生成部609は、生成された仮想空間の画像と撮像部701から取得した現実空間の画像とを合成することで複合現実空間の画像を生成する。合成処理は現実空間の画像の上に仮想空間の画像を重ねることにより実施する。すなわちCGコンテンツの領域以外の画素は現実空間の画素が表示される合成画像となる。このとき、指示位置1200のポインタ1201の視認性を向上するために、ポインタ1201が重畳される現実空間の物体の画素の色や輝度を変更してもよい。仮想空間を観察させる場合には、右眼用の仮想空間画像の映像信号を右眼用のディスプレイに対して送出し、左眼用の仮想空間画像の映像信号を左眼用のディスプレイに対して送出する。複合現実空間を観察させる場合には、各仮想空間画像の代わりに各複合現実空間の画像を各ディスプレイに対して送出する。これによりHMD700を装着したユーザ(観察者)は仮想空間または複合現実空間を観察することができる。
【0083】
S1010では、ユーザが処理を終了する旨の指示を入力したかが判定される。処理を
終了する旨の指示が入力された場合には、図9のフローチャートの処理は終了する。入力していない場合は、処理はS1001に戻る。
【0084】
以上説明した通り、本実施形態によれば、自分の視点位置と他のユーザの指示位置の距離に応じて指示位置のポインタやCGコンテンツの表現を変えることで、他のユーザの指示位置の把握しやすさと物体の視認性低下防止の両立を可能にすることができる。
【0085】
(第2実施形態の変形例1)
上述した第2実施形態では、自分の視点位置と他のユーザの指示位置の距離に応じて指示位置のポインタやCGの表現を変えた。本変形例では、他のユーザの指示位置の面の向きと自分の視点位置や視線方向との関係に基づいて、指示位置のポインタやCGの表現を変える。以下では、第2実施形態と共通する部分に関しては適宜説明を省略し、異なる部分について重点的に説明する。本変形例に係るシステムでは、判定部607およびUI表示制御部608の動作が第2実施形態と異なる。
【0086】
判定部607は、自分の視点の位置および姿勢(視線方向)と、他のユーザの指示位置およびその面法線ベクトルとに基づいて、自分の視点からの他のユーザの指示位置の視認性を判定する。
【0087】
図12Aおよび図12Bを用いて、判定の方法の一例について説明する。まず、判定部607は、自分の視点1100の位置と他のユーザの指示位置1200と面法線ベクトル1103に基づいて、視点1100の位置が、面法線ベクトル1103から算出される面1301の表側にあるか裏側にあるかを判定する。面法線ベクトル1103の向く方向が面1301の表側である。次に、判定部607は、視点の座標系のZe軸正方向のベクトル1100zと、指示位置1200から自分の視点1100の位置へ向かうベクトル1203とのなす角θを求める。
【0088】
図12Aは、視点1100が面1301の表側にあるケースを示している。この場合、角度θが-90度から90度のあいだ(θの絶対値が90度未満)であれば、自分の視点1100から他のユーザの指示位置1200の視認性が良い(見えている又は見えやすい)と判定する。角度θが-90度から90度の角度範囲から外れているとき(θの絶対値が90度以上)は、自分の視点1100から指示位置1200の視認性が悪い(見えていない又は見えにくい)と判定する。
【0089】
図12Bは、視点1100が面1301の裏側にあるケースを示している。この場合、角度θが-90度から90度のあいだ(θの絶対値が90度未満)であれば、他のユーザの指示位置1200は自分の視野内に存在するが、物体1102による隠れ(オクルージョン)のため、指示位置1200は見えないと判定する。角度θが-90度から90度の角度範囲から外れているとき(θの絶対値が90度以上)は、自分の視点1100から指示位置1200が見えていないと判定する。
【0090】
なお、ここでは視野の角度範囲(閾値)を±90度に設定したが、この角度範囲は任意に設定してよい。例えば、ユーザの視野角(例えば、撮像部701の縦画角と横画角のうち狭い方)に基づいて角度範囲を設定してもよい。角度範囲は固定値でもよいしユーザ自身が予め情報処理装置600に設定していた値でもよい。あるいは、判定部607が角度範囲を適応的(動的)に変更してもよい。さらには、判定部607が他のユーザごと(すなわち指示位置ごと)に角度範囲を変更してもよい。例えば、自分の視点1100と他のユーザの指示位置1200のあいだの距離に応じて角度範囲を動的に決定してもよい。あるいは、距離に応じて角度範囲(判定の基準となる閾値)を変えるのではなく、距離に応じて判定結果を変えてもよい。すなわち、所定の角度範囲内にあり「見えている又は見え
やすい」と判定した場合であっても、距離が閾値以上であれば「見えていない又は見えにくい」という判定結果に変えてもよい。
【0091】
UI表示制御部608は、判定部607の判定結果に応じて、指示位置の表現もしくは物体1102の表現を変更する。具体的には、指示位置1200が見えている又は見えやすいと判定された場合には、UI表示制御部608は、指示位置1200の表示による物体1102の視認性の低下を抑えるように、指示位置1200と物体1102の両方又は一方の表現を変更するとよい。例えば、指示位置1200のポインタを小さくしたり、枠だけにしたりしてもよい。その他にも指示位置1200のポインタを半透明にしてもよい。
【0092】
指示位置1200が視野内に存在するが物体1102による隠れが発生していると判定された場合には、UI表示制御部608は、物体1102を半透明にすることで指示位置1200のポインタが視認できるようにしてもよい。あるいは、図11Aのように指示位置1200にアノテーションを追加することで、物体1102の向こう側に指示位置1200のポインタが隠れていることをユーザに知らしめてもよい。あるいは、HMD700の表示画面に「他のユーザが物体の裏側を指示しています」というメッセージを表示することで、ユーザに視点の移動を促してもよい。
【0093】
指示位置1200が視野内に存在するが視点からの距離が遠く見えにくいと判定した場合には、UI表示制御部608は、指示位置1200の視認性を向上するために、指示位置1200を表すポインタの表現を強調してもよい。具体的には、ポインタのサイズを通常よりも大きくしたり、ポインタを強調色にしたり、点滅やアニメーションなどの強調効果を追加したり、アノテーションを追加したり、ポインタが重なる物体を半透明にしたりしてもよい。また、HMD700の表示画面に「他のユーザが指示をしています」というメッセージを表示することで、ユーザの注意をひいてもよい。
【0094】
以上説明した通り、本変形例によれば、他のユーザが指示する面の向きと自分の視点位置や視線方向との関係から、他のユーザの指示位置が見えているかどうかを判定し、その判定に応じて指示位置のポインタやCGの表現を変更することができる。これにより、他のユーザの指示位置の把握しやすさと物体の視認性低下防止の両立を図ることができる。
【0095】
(第2実施形態の変形例2)
上述した第2実施形態の変形例1では、自分の視線方向と他のユーザの指示位置の面の向きを考慮して指示位置のポインタやCGの表現を変えた。本変形例では、他のユーザの指示位置が撮像部に撮像されているかどうかに応じて、指示位置のポインタやCGの表現を変える。以下では、第2実施形態および第2実施形態の変形例1と共通する部分に関しては適宜説明を省略し、異なる部分について重点的に説明する。本変形例に関わるシステムでは、判定部607の動作が第2実施形態および第2実施形態の変形例1と異なる。
【0096】
判定部607は、HMD700の撮像部701の位置姿勢と撮像部701の内部パラメータと送受信部605が受信した他のユーザの指示位置から他のユーザの指示位置が視野内にあるかどうかを判定する。例えば、判定部607は世界座標系における他のユーザの指示位置を撮像部701のカメラ座標系の位置情報に変換する。その後、判定部607は、撮像部701の内部パラメータを用いて透視投影変換を行うことで、カメラ座標系の位置情報を画像座標系の位置情報に変換する。この画像座標系の位置が撮像部701で撮影される画像の範囲内であるかどうかで、他のユーザの指示位置が視野内にあるかどうかを判定することができる。このような視野内にあるかどうかを判定する技術については公知の技術を利用可能であるため、これに係る説明の詳細は省略する。判定部607は、他のユーザの指示位置が視野内にない場合には自分の視点から他のユーザの指示位置が見えて
いないと判定する。
【0097】
次に第2実施形態の変形例1で説明したのと同じ方法で、自分の視点の位置が、面法線ベクトルから算出される面(つまり他のユーザの指示位置を含む面)の表側にあるか裏側にあるかを判定する。自分の視点が他のユーザの指示位置を含む面の表側にあり、かつ、他のユーザの指示位置が視野内にある場合には、判定部607は、自分の視点から他のユーザの指示位置が見えている又は見えやすいと判定する。また、自分の視点が他のユーザの指示位置を含む面の裏側にあり、かつ、他のユーザの指示位置が視野内にある場合には、判定部607は、他のユーザの指示位置は視野内に存在するが、物体による隠れのため、指示位置は見えないと判定する。ここで、他のユーザの指示位置が見えていると判定した場合にも、第2実施形態の変形例1で説明したように自分の視点と他のユーザの指示位置のあいだの距離を考慮して判定結果を変えてもよい。例えば、他のユーザの指示位置が「見えている」と判定された場合でも自分の視点と他のユーザの指示位置のあいだの距離が閾値以上の場合には「見えていない」とか「距離が遠いため見えにくい」と判定結果を変えてもよい。
【0098】
UI表示制御部608は、判定部607の判定結果に応じて、指示位置のポインタもしくは物体のCGの表現を変更する。具体的な変更方法は第2実施形態および第2実施形態の変形例1で述べたものと同じでよいため、詳しい説明を省略する。
【0099】
以上説明した通り、本変形例によれば、他のユーザの指示位置が撮像部701に撮像されているかどうかに応じて他のユーザの指示位置が見えているかどうかを判定し、その判定に応じた指示位置のポインタやCGコンテンツの表現を変更することができる。これにより、他のユーザの指示位置の把握しやすさと物体の視認性低下防止の両立を図ることができる。
【0100】
(第2実施形態の変形例3)
上述した第2実施形態の変形例2では、他のユーザの指示位置が撮像部701に撮像されているかどうかに応じて他のユーザの指示位置が見えているかどうかを判定し、その判定に応じて指示位置のポインタやCGコンテンツの表現を変えた。本変形例では、他のユーザの指示位置が一定時間見えている場合、指示位置のポインタやCGコンテンツの表現を変えることで、CGコンテンツの視認性の低下を避ける。以下では、第2実施形態、第2実施形態の変形例1、第2実施形態の変形例2と共通する部分に関しては適宜説明を省略し、異なる部分について重点的に説明する。本変形例に関わるシステムでは、判定部607およびUI表示制御部608の動作が第2実施形態、第2実施形態の変形例1、第2実施形態の変形例2と異なる。
【0101】
本変形例における情報処理装置600の各機能部の動作について、図13のフローチャートに沿って説明する。図13は本変形例における情報処理装置600の処理手順を示すフローチャートである。図9と共通するステップについては同じステップ番号を付し、その説明を省略する。
【0102】
S1001~S1007の処理は第2実施形態(図9)の処理と同じである。S1401では、判定部607は、自分の視点から他のユーザの指示位置が見えていると判定されている時間を計測する。すなわち、判定部607は、自分の視点から他のユーザの指示位置が見えていると最初に判定された時点から連続して同じ判定結果が得られている時間を算出し、その時間情報をUI表示制御部608に送る。
【0103】
S1402では、UI表示制御部608は、指示位置のポインタや物体のCGの表現を変更する処理において、判定部607が計測した時間を考慮する。具体的には、UI表示
制御部608は、指示位置が見えている時間が長くなるほど、又は、指示位置が見えている時間が所定の閾値を超えた場合に、指示位置を表すポインタを目立たなくすることで、物体の視認性を向上させる。例えば、UI表示制御部608は、指示位置が見えている時間の長さに応じて、ポインタの透明度を次第に高くしてもよい。あるいは、UI表示制御部608は、指示位置が見えている時間の長さに応じて、ポインタのサイズを次第に小さくしてもよい。透明度を徐々に高くし、又は、サイズを徐々に小さくしていき、最終的にポインタが完全に見えなくなってもよい。あるいは、透明度の上限値やサイズの下限値を予め定めておき、その値を超えないようにしてもよい。UI表示制御部608は、指示位置が見えている時間が所定の閾値を超えた場合に、決められた透明度および/又は決められたサイズになるようにポインタを変更してもよい。UI表示制御部608は、指示位置が見えている時間が所定の閾値を超えた場合に、ポインタを見えなくしてもよい。
【0104】
例えば、二人の人物A,Bが同じ複合現実空間を共有し、同じ物体(現実物体又は仮想物体)を観察しながら議論を行っている場面を想定する。一方の人物Aが物体上の位置pを指し示し説明をはじめたとき、他方の人物Bは、物体上の位置pに重畳表示されるポインタによって人物Aの関心領域を認識する。一旦、関心領域がわかれば、人物Bとしては、物体上の位置pやその周辺をより詳しく観察したいと望み、物体上に重畳表示されたポインタは邪魔に感じるであろう。本変形例の表示制御によれば、人物Aのポインタが見えている時間がある程度継続したら、人物Bが人物Aの指示位置を認識した蓋然性が高いとみなし、人物Aのポインタを目立たなく(又は見えなく)する。これにより、人物Aの指示位置の把握しやすさと物体の視認性低下防止の両立を図ることができる。
【0105】
<その他>
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。第1実施形態から第2実施形態で述べた構成を(技術的な矛盾が生じない限りにおいて)相互に組み合わせてもよい。
【0106】
例えば、上述の実施形態では、非透過型もしくはビデオシースルー型のHMDに本発明を適用した例を説明したが、本発明は光学シースルー型のHMDに適用してもよい。また、本発明は、頭部装着型ではない表示装置、例えば、ハンドヘルド型表示装置、据え置き型表示装置、コンピュータやスマートフォンの表示装置、プロジェクタースクリーン、網膜投影型ディスプレイなどに適用してもよい。
【0107】
また、上述の実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線/無線通信を用いてプログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのプログラムを実行する場合も本発明に含む。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムを供給するための記録媒体としては、例えば、ハードディスク、磁気テープ等の磁気記録媒体、光/光磁気記憶媒体、不揮発性の半導体メモリでもよい。また、プログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムを記憶し、接続のあったクライアントコンピュータがコンピュータプログラムをダウンロードして実行するような方法も考えられる。本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASI
C)によっても実現可能である。
【0108】
本明細書の開示は、以下の構成、方法、プログラムを含む。
【0109】
(構成1)
複数のユーザによって共有される仮想的な3次元空間について、第1のユーザの視点からの視野を表す第1の画像を生成し、各ユーザが前記3次元空間内の点を指し示すために用いる指示UI(ユーザインターフェイス)を前記第1の画像に合成する、画像生成部と、
第2のユーザが前記指示UIによって指し示す前記3次元空間内の点である、前記第2のユーザの指示位置を、前記第1のユーザの視点から見た場合の視認性を判定する判定部と、
前記判定部による判定結果に応じて、前記第1の画像における前記第2のユーザの指示UIの表示方法を切り替えるUI表示制御部と、
を有する情報処理システム。
【0110】
(構成2)
前記判定部は、前記第2のユーザの指示位置が前記第1のユーザの視点から見える位置にある場合に前記第2のユーザの指示位置の視認性が良いと判定し、前記第2のユーザの指示位置が前記第1のユーザの視点から見えない位置にある場合に前記第2のユーザの指示位置の視認性が悪いと判定する、
構成1に記載の情報処理システム。
【0111】
(構成3)
前記判定部による判定結果が変化した後、同じ判定結果が所定時間続いた時点で、前記UI表示制御部は、第1の画像における前記第2のユーザの指示UIの表示方法を切り替える、
構成1又は構成2に記載の情報処理システム。
【0112】
(構成4)
前記判定部は、前記第1の画像に含まれる物体の奥行き情報を用いて、前記第2のユーザの指示位置が前記物体の手前側にある場合に前記第2のユーザの指示位置の視認性が良いと判定し、前記第2のユーザの指示位置が前記物体の奥側にある場合に前記第2のユーザの指示位置の視認性が悪いと判定する、
構成1~構成3のいずれかに記載の情報処理システム。
【0113】
(構成5)
前記指示UIは、ユーザが指し示す前記3次元空間内の点である指示位置を表すポインタと、ユーザが指し示す方向である指示方向を表すレイと、を含み、
前記UI表示制御部は、
前記判定部によって前記第2のユーザの指示位置の視認性が悪いと判定された場合は、前記第2のユーザのレイを表示し、
前記判定部によって前記第2のユーザの指示位置の視認性が良いと判定された場合は、前記第2のユーザのレイを非表示にする、
構成1~構成4のいずれかに記載の情報処理システム。
【0114】
(構成6)
前記指示UIは、ユーザが指し示す前記3次元空間内の点である指示位置を表すポインタと、ユーザが指し示す方向である指示方向を表すレイと、を含み、
前記UI表示制御部は、
前記判定部によって前記第2のユーザの指示位置の視認性が悪いと判定された場合は、前記第2のユーザのポインタの表示方法を変更し、
前記判定部によって前記第2のユーザの指示位置の視認性が良いと判定された場合は、前記第2のユーザのレイを非表示にする、
構成1~構成5のいずれかに記載の情報処理システム。
【0115】
(構成7)
前記UI表示制御部は、前記第1のユーザが所定の操作をしているときのみ前記第2のユーザの指示UIを表示するように制御する、
構成1~構成6のいずれかに記載の情報処理システム。
【0116】
(構成8)
前記UI表示制御部は、複数のユーザの指示UIが前記第1の画像上で互いに重なる場合に、互いに重なる前記指示UIの表示方法を変更する、
構成1~構成7のいずれかに記載の情報処理システム。
【0117】
(構成9)
前記判定部は、前記第1のユーザの視点と前記第2のユーザの指示位置のあいだの距離が閾値以上である場合に前記第2のユーザの指示位置の視認性が悪いと判定し、前記距離が前記閾値未満である場合に前記第2のユーザの指示位置の視認性が良いと判定する、
構成1~構成8のいずれかに記載の情報処理システム。
【0118】
(構成10)
前記閾値は、前記第2のユーザの視点と前記第2のユーザの指示位置のあいだの距離に基づいて決定される、
構成9に記載の情報処理システム。
【0119】
(構成11)
前記判定部は、前記第1のユーザの視線と、前記第1のユーザの視点と前記第2のユーザの指示位置を結ぶ線とのなす角が、所定の角度範囲内にある場合に前記第2のユーザの指示位置の視認性が良いと判定し、前記なす角が前記所定の角度範囲から外れている場合に前記第2のユーザの指示位置の視認性が悪いと判定する、
構成1~構成10のいずれかに記載の情報処理システム。
【0120】
(構成12)
前記所定の角度範囲は、前記第1のユーザの視野角に基づいて決定される、
構成11に記載の情報処理システム。
【0121】
(構成13)
前記判定部は、
前記第2のユーザの指示位置における物体の面法線に基づいて、前記第1のユーザの視点が前記物体の表側にあるか裏側にあるかを判定し、
前記第1のユーザの視点が前記物体の表側にあり、且つ、前記第1のユーザの視線と、前記第1のユーザの視点と前記第2のユーザの指示位置を結ぶ線とのなす角が、所定の角度範囲内にある場合に、前記第2のユーザの指示位置が前記第1のユーザの視点から見える位置にあると判定し、
前記第1のユーザの視点が前記物体の裏側にあり、且つ、前記なす角が前記所定の角度範囲内にある場合に、前記第2のユーザの指示位置が前記第1のユーザの視野内にあるが、前記物体による隠れのため、前記第2のユーザの指示位置は前記第1のユーザの視点から見えないと判定する、
構成1~構成12のいずれかに記載の情報処理システム。
【0122】
(構成14)
前記UI表示制御部は、前記判定部による判定結果に応じて、前記第2のユーザの指示UIのサイズ、形状、および透明度のうち少なくともいずれかを変更する、
構成1~構成13のいずれかに記載の情報処理システム。
【0123】
(構成15)
前記UI表示制御部は、前記判定部による判定結果に応じて、前記第2のユーザの指示UIにアノテーションを付与する、
構成1~構成14のいずれかに記載の情報処理システム。
【0124】
(構成16)
前記UI表示制御部は、前記判定部による判定結果に応じて、前記第2のユーザが指示UIによる指示を行っていることを前記第1のユーザに知らしめるためのメッセージを表示する、
構成1~構成15のいずれかに記載の情報処理システム。
【0125】
(構成17)
前記UI表示制御部は、前記判定部による判定結果に応じて、前記第2のユーザの指示位置が位置している物体の表示方法を変更する、
構成1~構成16のいずれかに記載の情報処理システム。
【0126】
(構成18)
前記判定部は、
前記第1のユーザの視点から前記第2のユーザの指示位置が見えていると判定されている時間を計測し、
前記計測された時間に応じて、前記指示UIの表示方法を変更する、
構成1~構成17のいずれかに記載の情報処理システム。
【0127】
(方法19)
コンピュータが実行する情報処理方法であって、
複数のユーザによって共有される仮想的な3次元空間について、第1のユーザの視点からの視野を表す第1の画像を生成し、各ユーザが前記3次元空間内の点を指し示すために用いる指示UI(ユーザインターフェイス)を前記第1の画像に合成するステップと、
第2のユーザが前記指示UIによって指し示す前記3次元空間内の点である、前記第2のユーザの指示位置を、前記第1のユーザの視点から見た場合の視認性を判定するステップと、
前記判定の結果に応じて、前記第1の画像における前記第2のユーザの指示UIの表示方法を切り替えるステップと、
を有する情報処理方法。
【0128】
(プログラム20)
方法19に記載の情報処理方法の各ステップをコンピュータに実行させるためのプログラム。
【符号の説明】
【0129】
1:情報処理システム
106:UI表示制御部
109:画像生成部
112:判定部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13