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

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

▶ ソニー株式会社の特許一覧

特許7400810情報処理装置、情報処理方法、及び記録媒体
<>
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図1
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図2
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図3
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図4
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図5
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図6
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図7
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図8
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図9
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図10
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図11
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図12
  • 特許-情報処理装置、情報処理方法、及び記録媒体 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】情報処理装置、情報処理方法、及び記録媒体
(51)【国際特許分類】
   G06T 19/00 20110101AFI20231212BHJP
   G06F 3/01 20060101ALI20231212BHJP
【FI】
G06T19/00 600
G06F3/01 510
【請求項の数】 21
(21)【出願番号】P 2021511151
(86)(22)【出願日】2020-01-28
(86)【国際出願番号】 JP2020002889
(87)【国際公開番号】W WO2020202747
(87)【国際公開日】2020-10-08
【審査請求日】2022-12-13
(31)【優先権主張番号】P 2019067255
(32)【優先日】2019-03-29
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】村田 諒介
(72)【発明者】
【氏名】市川 浩丈
(72)【発明者】
【氏名】西部 満
(72)【発明者】
【氏名】若林 一
【審査官】村松 貴士
(56)【参考文献】
【文献】特表2017-522682(JP,A)
【文献】国際公開第2015/025442(WO,A1)
【文献】特開2020-42802(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/01
G06F 3/048 - 3/04895
A63F 13/00 13/98
(57)【特許請求の範囲】
【請求項1】
実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、
を備える、情報処理装置。
【請求項2】
前記制御部は、前記第1の仮想オブジェクト及び前記第2の仮想オブジェクトの配置の優先度に基づき、前記第1の仮想オブジェクト及び前記第2の仮想オブジェクトを配置する、請求項1に記載の情報処理装置。
【請求項3】
前記第1の仮想オブジェクトの前記優先度は、前記第2の仮想オブジェクトの前記優先度よりも高い、請求項2に記載の情報処理装置。
【請求項4】
前記制御部は、前記第2の仮想オブジェクトを配置する際に、前記第2の環境情報に基づき、前記第2の仮想オブジェクトの初期配置位置に前記第1の仮想オブジェクトが配置されているか否かに応じて、前記第2の仮想オブジェクトを配置する、請求項2に記載の情報処理装置。
【請求項5】
前記第2の仮想オブジェクトの初期配置位置に前記第1の仮想オブジェクトが配置されており、かつ前記第1の仮想オブジェクトの前記優先度が前記第2の仮想オブジェクトの前記優先度よりも高い場合、
前記制御部は、前記第2の仮想オブジェクトを前記初期配置位置以外の位置に配置する、請求項4に記載の情報処理装置。
【請求項6】
前記優先度は、アプリケーションに対して設定される優先度である第1の優先度を含み、
前記制御部は、前記アプリケーションごとの前記第1の優先度を比較し、前記第1の優先度が高い前記アプリケーションの仮想オブジェクトを優先的に配置する、請求項2に記載の情報処理装置。
【請求項7】
前記優先度は、アプリケーションによる区別をせずに仮想オブジェクトに対して設定される優先度である第2の優先度を含み、
前記制御部は、前記仮想オブジェクトごとの前記第2の優先度を比較し、前記第2の優先度が高い前記仮想オブジェクトを優先的に配置する、請求項2に記載の情報処理装置。
【請求項8】
前記制御部は、アプリケーションにより設定された仮想オブジェクトの配置位置を示す座標の指定方法に基づき、前記仮想オブジェクトの優先度を設定する、請求項2に記載の情報処理装置。
【請求項9】
前記制御部は、前記座標の指定方法が絶対座標である前記仮想オブジェクトの前記優先度を、前記座標の指定方法が相対座標である前記仮想オブジェクトの前記優先度よりも高く設定する、請求項8に記載の情報処理装置。
【請求項10】
前記制御部は、仮想オブジェクトの移動の自由度に基づき、前記仮想オブジェクトの前記優先度を設定する、請求項2に記載の情報処理装置。
【請求項11】
前記制御部は、前記移動の自由度が低い前記仮想オブジェクトの前記優先度を、前記移動の自由度が高い前記仮想オブジェクトの前記優先度よりも高く設定する、請求項10に記載の情報処理装置。
【請求項12】
前記第1の仮想オブジェクトが前記3次元空間内を移動する場合、
前記第2の環境情報は、前記3次元空間における前記第1の仮想オブジェクトの移動範囲を示す移動範囲情報を含む、請求項2に記載の情報処理装置。
【請求項13】
前記制御部は、前記移動範囲情報に基づき、前記第1の仮想オブジェクトの移動範囲の外に前記第2の仮想オブジェクトを配置する、請求項12に記載の情報処理装置。
【請求項14】
前記制御部は、ユーザによる前記情報処理装置への入力に応じて、前記優先度を変更する、請求項2に記載の情報処理装置。
【請求項15】
前記制御部は、前記優先度の変更を決定してから所定の時間が経過後、前記優先度を変更する、請求項14に記載の情報処理装置。
【請求項16】
前記第2の環境情報は、前記3次元空間に配置された前記第1の仮想オブジェクトの形状を示す情報と、配置された位置を示す座標情報とを含む、請求項1に記載の情報処理装置。
【請求項17】
前記第1の環境情報及び前記第2の環境情報は、前記3次元空間の形状を示す情報を含む、請求項1に記載の情報処理装置。
【請求項18】
前記情報処理装置は、センサ部をさらに備え、
前記制御部は、前記センサ部が前記情報処理装置の周辺をセンシングして得られるセンシング情報に基づき、前記第1の環境情報を推定する、請求項1に記載の情報処理装置。
【請求項19】
前記第1のアプリケーションは、前記第1の仮想オブジェクトの配置を変更できるようプログラムされている一方で、前記第2の仮想オブジェクトの配置を変更できるようプログラムされておらず、
前記第2のアプリケーションは、前記第2の仮想オブジェクトの配置を変更できるようプログラムされている一方で、前記第1の仮想オブジェクトの配置を変更できるようプログラムされておらず、
前記第1の環境情報のデータ形式と、前記第2の環境情報のデータ形式は同一である、請求項1に記載の情報処理装置。
【請求項20】
実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置すること、
を含む、プロセッサにより実行される情報処理方法。
【請求項21】
コンピュータを、
実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、
として機能させるためのプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法、及び記録媒体に関する。
【背景技術】
【0002】
近年、実空間内に付加的な情報を重畳してユーザに提示する、拡張現実(AR:Augmented Reality)と称される技術(以下、「AR技術」とも称される)が注目されている。AR技術を利用することで、実空間内の物体(以下、「実オブジェクト」とも称される)に対して、テキスト、アイコン、またはアニメーション等の様々な態様の仮想的なコンテンツ(以下、「仮想オブジェクト」とも称される)を重畳させてユーザに提示することが可能となる。
【0003】
また、近年、AR技術の発展に伴い、ユーザに対して仮想オブジェクトを提示するアプリケーション(以下、「ARアプリ」とも称される)の普及が進んでいる。AR技術の今後のさらなる発展に伴い、ARアプリが日常的に使用され、複数のARアプリが同時に実行されることが考えられる。この時、複数のARアプリの各々の仮想オブジェクトが重ならずに配置されることが望ましい。
【0004】
上述の技術に関連し、例えば、下記特許文献1には、複数の実空間のセンシング結果に基づき、各々の実空間の実オブジェクトに対応する仮想オブジェクトを、仮想の共有空間に適切に配置する技術が記載されている。
【先行技術文献】
【特許文献】
【0005】
【文献】国際公開第2018/092384号
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1に記載の技術では、複数のARアプリが同時に動作し得ることについては考慮されていない。複数のARアプリが同時に動作した場合、それぞれ異なるARアプリにより実空間に配置された仮想オブジェクト同士が重なって表示される等の、不整合が生じ得る。その場合、仮想オブジェクトの視認性が低下し、ARアプリの日常的な使用に支障をきたす恐れがある。
【0007】
そこで、本開示では、複数のARアプリを連携して動作させることが可能な、新規かつ改良された情報処理装置、情報処理方法、及び記録媒体を提案する。
【課題を解決するための手段】
【0008】
本開示によれば、実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、を備える、情報処理装置が提供される。
【0009】
また、本開示によれば、実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置すること、を含む、プロセッサにより実行される情報処理方法が提供される。
【0010】
また、本開示によれば、コンピュータを、実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、として機能させるためのプログラムが記録された記録媒体が提供される。
【図面の簡単な説明】
【0011】
図1】本開示の実施形態に係る仮想オブジェクトの配置処理の概要を示す図である。
図2】一般的な表示端末における仮想オブジェクトの表示例を示す図である。
図3】本開示の実施形態に係る情報処理システムの構成例を示すブロック図である。
図4】同実施形態に係る仮想オブジェクトの描画処理におけるメイン処理の流れを示すフローチャートである。
図5】同実施形態に係る配置処理の流れを示すフローチャートである。
図6】同実施形態に係るデータの流れを示すフローチャートである。
図7】同実施形態に係る具体例における仮想オブジェクトの配置処理の概要を示す図である。
図8】同実施形態に係る具体例における仮想オブジェクトの配置例を示す図である。
図9】同実施形態に係る具体例における描画処理の流れを示すフローチャートである。
図10】同実施形態に係る変形例における仮想オブジェクトの配置処理の概要を示す図である。
図11】同実施形態に係る変形例における仮想オブジェクトの配置例を示す図である。
図12】同実施形態に係る変形例における描画処理の流れを示すフローチャートである。
図13】本開示の実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0013】
なお、説明は以下の順序で行うものとする。
1.概要
2.構成例
3.処理例
4.具体例
5.変形例
6.ハードウェア構成
7.まとめ
【0014】
<<1.概要>>
本開示の実施形態に係る技術は、複数のARアプリを連携して動作させる情報処理装置に関する。本実施形態に係る情報処理装置は、複数のARアプリが同時に実行される時、実空間(3次元空間)の環境を示す情報(以下、「環境情報」とも称される)と優先度に基づき、仮想オブジェクトを配置する。環境情報は、優先度に従い、各々のARアプリへ入力(共有)される。ARアプリへの環境情報の共有は、情報処理装置により制御される。
【0015】
環境情報は、例えば、実空間の形状を示す情報を含む。実空間の形状は、例えば、人、動物、植物、建物、家具、道、車などの実オブジェクトの形状である。環境情報は、実オブジェクトの位置を示す座標情報を含んでもよい。また、環境情報は、実空間に配置された仮想オブジェクトの形状を示す情報、及び仮想オブジェクトが配置された位置を示す座標情報を含み得る。なお、実空間の形状を示す情報及び実空間に配置(表示)された仮想オブジェクトの形状を示す情報の形式は、例えば、ポイントクラウド(点群)や3Dメッシュ(ポリゴン)など、任意の形式であり得る。
【0016】
なお、環境情報には、メタ情報が含まれてもよい。ここでいうメタ情報は、環境情報に含まれるデータに関する属性情報等の付加的な情報である。属性情報の一例として、例えば、ファイルの種類、サイズ、作成者、作成日時等が挙げられる。環境情報に含まれるデータが実オブジェクトや仮想オブジェクトである場合、属性情報には、データが実オブジェクトであること、またはデータが仮想オブジェクトであることを示す情報が含まれてもよい。これにより、実オブジェクトと仮想オブジェクトの区別が可能となる。
【0017】
ARアプリは、共有される環境情報を参照して、仮想オブジェクトの配置位置を決定する。仮想オブジェクトの配置位置の決定後、配置される仮想オブジェクトの形状や配置位置を含む情報(以下、「配置情報」とも称される)が環境情報へ追加されることで、環境情報が更新される。環境情報が更新される処理は、以下では、「更新処理」とも称される。また、環境情報に配置情報が追加されることで、環境情報が示す空間に仮想オブジェクトが配置される。仮想オブジェクトが配置される処理は、以下では、「配置処理」とも称される。なお、以下では、「更新処理」に関する表現と、「配置処理」に関する表現は、同等の意味を示す表現として用いられ得る。
【0018】
環境情報は、更新処理にてリアルタイムに更新される情報である。かかる構成により、各ARアプリは、リアルタイムな環境情報に基づき、仮想オブジェクトの配置位置を決定することができる。
【0019】
同時に実行されるすべてのARアプリの仮想オブジェクトの配置情報を含めて環境情報を更新後、情報処理装置は、更新後の環境情報に基づき、すべてのARアプリの仮想オブジェクトを描画した画像を表示装置等に表示させる。かかる構成により、情報処理装置は、複数のARアプリが同時に実行される際に、複数の仮想オブジェクトが重なって表示されることを防止することができる。
【0020】
(処理の概要)
ここで、図1を参照しながら、仮想オブジェクトの配置処理の概要について説明する。図1は、本開示の実施形態に係る仮想オブジェクトの配置処理の概要を示す図である。
【0021】
以下、最も優先度が高いARアプリ(第1のアプリケーション)は、「ARアプリ1」と称される。2番目に優先度が高いARアプリ(第2のアプリケーション)は、「ARアプリ2」と称される。3番目に優先度が高いARアプリは、「ARアプリ3」と称される。
【0022】
また、以下、ARアプリ1の仮想オブジェクト(第1の仮想オブジェクト)が配置される前に取得される環境情報(第1の環境情報)は、「環境情報0」と称される。環境情報0が、ARアプリ1の仮想オブジェクトの配置情報を含むように更新された環境情報(第2の環境情報)は、「環境情報1」と称される。環境情報1が、ARアプリ2の仮想オブジェクト(第2の仮想オブジェクト)の配置情報を含むように更新された環境情報は、「環境情報2」と称される。
【0023】
本実施形態に係る情報処理装置は、仮想オブジェクトを配置する際に、ARアプリ1の仮想オブジェクト及びARアプリ2の仮想オブジェクトの配置の優先度に基づき、各々の仮想オブジェクトを配置する。ARアプリ1の仮想オブジェクトの優先度がARアプリ2の仮想オブジェクトの優先度よりも高いため、情報処理装置は、ARアプリ1の仮想オブジェクトをARアプリ2の仮想オブジェクトよりも優先して配置する。
【0024】
複数のARアプリが同時に実行される前の実空間の環境が、状態T11であるとする。状態T11では、実空間に実オブジェクト40が配置されている。状態T11において、複数のARアプリが同時に実行されると、情報処理装置は、状態T11における実空間の3次元空間を示す環境情報0を取得する。取得された環境情報0は、ARアプリ1に共有される。
【0025】
ARアプリ1は、共有された環境情報0を参照して、ARアプリ1の仮想オブジェクトの配置位置を決定する(S100)。例えば、ARアプリ1は、図1に示す状態T12のように、ARアプリ1の仮想オブジェクト50を配置すると決定する。ARアプリ1による配置位置の決定後、情報処理装置は、環境情報0にARアプリ1の仮想オブジェクトの配置情報を追加し、状態T12における実空間の環境を示す環境情報1に更新する(S102)。
【0026】
次いで、環境情報1は、ARアプリ2に共有される。ARアプリ2は、共有された環境情報1を参照して、ARアプリ2の仮想オブジェクトの配置位置を決定する(S104)。例えば、ARアプリ2は、図1に示す状態T13のように、ARアプリ2の仮想オブジェクト60と仮想オブジェクト61を配置すると決定する。ARアプリ2による配置位置の決定後、情報処理装置は、環境情報1にARアプリ2の仮想オブジェクトの配置情報を追加することで、環境情報1を状態T13における実空間の環境を示す環境情報2に更新する(S106)。
【0027】
なお、同時に実行されるARアプリの数は、特に限定されず、任意の数のARアプリが実行されてよい。情報処理装置は、同時に実行されるARアプリの数に応じた、ARアプリ2が実行された時と同様の処理を繰り返す。
【0028】
具体的に、ARアプリ1とARアプリ2に加え、ARアプリ3も同時に実行されたとする。この時、環境情報2は、ARアプリ3に共有される。
【0029】
ARアプリ3は、共有された環境情報2を参照して、ARアプリ3の仮想オブジェクトの配置位置を決定する(S108)。例えば、ARアプリ3は、図1に示す状態T14のように、ARアプリ3の仮想オブジェクト70を配置すると決定する。ARアプリ3による配置位置の決定後、情報処理装置は、環境情報2にARアプリ3の仮想オブジェクトの配置情報を追加し、状態T14における実空間の環境を示す環境情報3に更新する(S110)。ここで、更新前の環境情報3のデータ形式、更新後の環境情報3のデータ形式には変化が無いものと見做されてよい。
【0030】
なお、環境情報に配置情報が追加される仮想オブジェクトの数は、特に限定されず、任意の数の仮想オブジェクトの配置情報が追加されてよい。
【0031】
(課題の整理)
ここで、図2を参照しながら、課題の整理を行う。図2は、一般的な表示端末における仮想オブジェクトの表示例を示す図である。図2では、ゲームアプリであるARアプリ1と、道案内アプリであるARアプリ2が同時に実行された時の仮想オブジェクトの表示が示されている。具体的に、図2には、ゲームアプリの仮想オブジェクトであるキャラクタ52と、道案内アプリの仮想オブジェクトである矢印62と矢印63が表示された状態が示されている。
【0032】
一般的な表示端末における仮想オブジェクトの表示処理では、ARアプリにて仮想空間の状態を示す情報をリアルタイムに更新することは考慮されていない。これは、各ARアプリが互いに連携することを考慮されずにプログラムされているためである。したがって、互いに異なるARアプリの間の、仮想オブジェクトの配置処理を含む表示処理のルールは、基本的に全く異なる。
【0033】
上記の通り、アプリ間の相互連携がないと、例えば、ゲームアプリは、ゲームアプリに関連する仮想オブジェクトの配置を変更できるが、道案内アプリに関連する仮想オブジェクトの配置を変更できない。一方、道案内アプリは、道案内アプリに関連する仮想オブジェクトの配置を変更できるが、ゲームアプリに関連する仮想オブジェクトの配置を変更することはできない。したがって、道案内アプリの仮想オブジェクトのあらかじめ設定された配置位置(以下、「初期配置位置」とも称される)が、ゲームアプリの既に配置されている仮想オブジェクトと重なる位置である場合、一般的な表示端末は、道案内アプリとゲームアプリの仮想オブジェクトを重ねて表示してしまう。
【0034】
例えば、道案内アプリの矢印62の初期配置位置が図2に示す矢印62の位置であったとする。図2に示す矢印63の位置は、矢印63がキャラクタ52と重なる位置である。しかしながら、道案内アプリは、リアルタイムに更新された仮想空間の状態を示す情報を参照することができないため、矢印63とキャラクタ52が重なることを認識することができない。そのため、道案内アプリは、図2に示す矢印63の位置に、矢印63をそのまま配置すると決定する。これにより、一般的な表示端末は、複数のARアプリの各々の仮想オブジェクトを重ねて表示してしまう。よって、仮想オブジェクトの視認性が低下する恐れがある。
【0035】
本開示の実施形態では、上記の点に着目して発想されたものであり、複数のARアプリを連携して動作させることが可能な技術を提案する。以下、本実施形態について順次詳細に説明する。
【0036】
<<2.構成例>>
まず、本開示の実施形態に係る情報処理システムの構成例について説明する。図3は、本開示の実施形態に係る情報処理システム1000の構成例を示すブロック図である。
【0037】
<2-1.システム構成>
図3に示すように、本実施形態に係る情報処理システム1000は、表示端末10、クラウドサーバ20、及びネットワーク30を備える。
【0038】
(1)表示端末10
表示端末10は、仮想オブジェクトを表示する端末である。本実施形態に係る表示端末10は、例えば、頭部装着型の端末(HMD:Head Mounted Display)等により実現される。表示端末10に適用可能なHMDの一例としては、例えば、シースルー型HMD、ビデオシースルー型HMD、及び網膜投射型HMDが挙げられる。
【0039】
シースルー型HMDは、例えば、ハーフミラーや透明な導光板を用いて、透明な導光部等からなる虚像光学系をユーザの眼前に保持し、当該虚像光学系の内側に画像を表示させる。そのため、シースルー型HMDを装着したユーザは、虚像光学系の内側に表示された画像を視聴している間も、外部の風景を視野に入れることが可能となる。このような構成により、シースルー型HMDは、例えば、AR技術に基づき、当該シースルー型HMDの位置及び姿勢のうち少なくともいずれかの認識結果に応じて、実空間に位置する実オブジェクトの光学像に対して仮想オブジェクトの画像を重畳させることも可能となる。なお、シースルー型HMDの具体的な一例として、メガネのレンズに相当する部分を虚像光学系として構成した、所謂メガネ型のウェアラブルデバイスが挙げられる。
【0040】
ビデオシースルー型HMDは、ユーザの頭部または顔部に装着された場合に、ユーザの眼を覆うように装着され、ユーザの眼前にディスプレイ等の表示部が保持される。また、ビデオシースルー型HMDは、周囲の風景を撮像するための撮像部を有し、当該撮像部により撮像されたユーザの前方の風景の画像を表示部に表示させる。このような構成により、ビデオシースルー型HMDを装着したユーザは、外部の風景を直接視野に入れることは困難ではあるが、表示部に表示された画像により、外部の風景を確認することが可能となる。また、このときビデオシースルー型HMDは、例えば、AR技術に基づき、当該ビデオシースルー型HMDの位置及び姿勢のうち少なくともいずれかの認識結果に応じて、外部の風景の画像に対して仮想オブジェクトを重畳させてもよい。
【0041】
網膜投射型HMDは、ユーザの眼前に投影部が保持されており、当該投影部からユーザの眼に向けて、外部の風景に対して画像が重畳するように当該画像が投影される。より具体的には、網膜投射型HMDでは、ユーザの眼の網膜に対して、投影部から画像が直接投射され、当該画像が網膜上で結像する。このような構成により、近視や遠視のユーザの場合においても、より鮮明な画像を視聴することが可能となる。また、網膜投射型HMDを装着したユーザは、投影部から投影される画像を視聴している間も、外部の風景を視野に入れることが可能となる。このような構成により、網膜投射型HMDは、例えば、AR技術に基づき、当該網膜投射型HMDの位置や姿勢のうち少なくともいずれかの認識結果に応じて、実空間に位置する実オブジェクトの光学像に対して仮想オブジェクトの画像を重畳させることも可能となる。
【0042】
また、上記に説明した例以外にも、没入型HMDと呼ばれるHMDが挙げられる。没入型HMDは、ビデオシースルー型HMDと同様に、ユーザの眼を覆うように装着され、ユーザの眼前にディスプレイ等の表示部が保持される。そのため、没入型HMDを装着したユーザは、外部の風景(即ち、現実世界の風景)を直接視野に入れることが困難であり、表示部に表示された画像のみが視界に入ることとなる。このような構成により、没入型HMDは、画像を視聴しているユーザに対して没入感を与えることが可能となる。そのため、没入型HMDは、例えば、主にVR(Virtual Reality)技術に基づき情報を提示する場合に適用され得る。
【0043】
なお、表示端末10は、上述のHMDに限定されない。例えば、表示端末10は、表示部を備えるスマートフォン、タブレット端末、ウェアラブル端末、又はエージェントデバイス等の端末装置であってもよい。
【0044】
表示端末10は、ネットワーク30を介してクラウドサーバ20と接続されており、クラウドサーバ20と情報の送受信を行える。
【0045】
表示端末10では、本実施形態に係る情報処理装置により表示処理が行われる。例えば、情報処理装置は、表示端末10に搭載され、表示端末10の表示部に仮想オブジェクトを表示する表示処理を行う。以下では、情報処理装置が表示端末10に搭載されている例について説明するが、情報処理装置の搭載先は表示端末10に限定されず、任意の装置であってよい。例えば、情報処理装置は、クラウドサーバ20に搭載され、ネットワーク30を介して表示端末10における表示処理を制御してもよい。
【0046】
(2)クラウドサーバ20
クラウドサーバ20は、表示端末10の表示処理に関する情報を記憶する機能を有するサーバ装置である。例えば、クラウドサーバ20は、環境情報を記憶する環境情報サーバである。
【0047】
クラウドサーバ20は、ネットワーク30を介して表示端末10と接続されており、表示端末10と情報の送受信を行える。クラウドサーバ20は、既に記憶している環境情報を、表示端末10から受信する環境情報で更新し得る。
【0048】
(3)ネットワーク30
ネットワーク30は、表示端末10及びクラウドサーバ20を接続する機能を有する。ネットワーク30は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク30は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。また、ネットワーク30は、Wi-Fi(登録商標)、Bluetooth(登録商標)など無線通信網を含んでもよい。
【0049】
<2-2.機能構成>
続いて、本開示の実施形態に係る表示端末10の機能構成について説明する。図3に示すように、本実施形態に係る表示端末10は、センサ部100、制御部110、通信部120、記憶部130、及び表示部140を備える。
【0050】
(1)センサ部100
センサ部100は、制御部110における処理に用いられる情報をセンシングする機能を有する。センシング後、センサ部100は、各種センサがセンシングにより取得したセンシング情報を制御部110へ出力する。
【0051】
センサ部100は、多様なセンサ装置を備え得る。一例として、センサ部100は、図3に示すように、外向きカメラ101、加速度センサ103、ジャイロセンサ105、方位センサ107、及びGPS(Global Positioning System)センサ109を備え得る。センサ部100は、上述のセンサを用いてセンシングを行う。なお、センサ部100が備えるセンサ装置は上述の例に限定されず、他の任意のセンサ装置を備えてもよい。
【0052】
外向きカメラ101は、RGBカメラ等のレンズ系、駆動系、及び撮像素子を有し、画像(静止画像又は動画像)を撮像する撮像装置である。かかる撮像装置は、表示端末10の周辺を撮像可能に表示端末10に備えられることから、外向きカメラと称される。かかる構成により、センサ部100は、表示端末10の周辺の撮像画像を取得することができる。なお、ユーザが表示端末10を装着または携帯している場合、センサ部100が取得する表示端末10の周辺の撮像画像は、即ちユーザの周辺の撮像画像でもある。
【0053】
また、外向きカメラ101は、表示端末10が位置する実空間内の3次元情報のセンシングが可能な撮像装置であり得る。当該撮像装置の一例として、デプスカメラが挙げられる。デプスカメラは、デプスカメラの前方に位置するオブジェクトまでの距離情報を検出することにより、実空間の略全体の3次元情報を取得し得る。
【0054】
加速度センサ103は、加速度を取得する装置である。例えば、加速度センサ103は、対象が移動した際の速度の変化量である加速度を計測する。ジャイロセンサ105は、角速度を取得する装置である。例えば、ジャイロセンサ105は、対象の姿勢の変化量である角速度を計測する。加速度センサ103及びジャイロセンサ105により取得される情報は、以下では、「慣性情報」とも称される。かかる構成により、センサ部100は、表示端末10の慣性情報を取得することができる。なお、ユーザが表示端末10を装着または携帯している場合、センサ部100が取得する慣性情報は、即ちユーザの慣性情報でもある。
【0055】
方位センサ107は、方位に関する情報を取得する装置である。例えば、方位センサ107は、対象の位置における磁場の大きさや向きを測定する。方位センサ107により取得される情報は、以下では、「方位情報」とも称される。かかる構成により、センサ部100は、表示端末10の方位情報を取得することができる。なお、ユーザが表示端末10を装着または携帯している場合、センサ部100が取得する方位情報は、即ちユーザの方位情報でもある。
【0056】
GPSセンサ109は、位置情報を取得する装置である。例えば、GPSセンサ109は、GPS衛星からのGPS信号を受信することで、対象の緯度、経度及び高度を示す情報を測定する。GPSセンサ109により取得される情報は、以下では、「位置情報」とも称される。かかる構成により、センサ部100は、表示端末10の位置情報を取得することができる。なお、ユーザが表示端末10を装着または携帯している場合、センサ部100が取得する位置情報は、即ちユーザの位置情報でもある。
【0057】
(2)制御部110
制御部110は、表示端末10全体の動作を制御する機能を有する情報処理装置である。当該機能を実現するために、制御部110は、図3に示すように、自己位置推定部111、環境情報取得部113、環境情報推定部115、配置処理部117、及び描画部119を有する。
【0058】
(2-1.自己位置推定部111)
自己位置推定部111は、表示端末10の自己位置を推定する機能を有する。例えば、自己位置推定部111は、センサ部100から入力されるセンシング情報に基づき、表示端末10の自己位置を推定する。推定後、自己位置推定部111は、推定した表示端末10の自己位置を示す自己位置情報を、環境情報取得部113及び環境情報推定部115へ出力する。
【0059】
自己位置推定部111による表示端末10の自己位置の推定は、多様な手法により行われ得る。例えば、自己位置推定部111は、センサ部100の外向きカメラ101が取得した撮像画像に基づき、表示端末10の自己位置の推定を行ってもよい。一例として、自己位置推定部111は、SLAM(Simultaneous Localization and Mapping)により、撮像画像から自己位置の推定と周辺の地図の作成を同時に行う。
【0060】
また、自己位置推定部111は、センサ部100の加速度センサ103及びジャイロセンサ105が取得した慣性情報に基づき、表示端末10の自己位置の推定を行ってもよい。一例として、自己位置推定部111は、自律航法(Dead Reckoning)により、慣性情報を積算して相対移動量を算出することで、表示端末10の自己位置を推定する。
【0061】
また、自己位置推定部111は、慣性情報とセンサ部100の方位センサ107が取得した方位情報に基づき、表示端末10の自己位置の推定を行ってもよい。一例として、自己位置推定部111は、方位情報から表示端末10の移動方向を取得し、当該移動方向への移動量を慣性情報から算出することで、表示端末10の自己位置を推定する。
【0062】
また、自己位置推定部111は、センサ部100のGPSセンサ109が取得した位置情報に基づき、表示端末10の自己位置の推定を行ってもよい。一例として、自己位置推定部111は、位置情報に含まれる緯度、経度及び高度により示される位置を表示端末10の自己位置として推定する。
【0063】
なお、自己位置推定部111は、上述の複数の手法を組み合わせて表示端末10の自己位置を推定してもよい。上述の複数の手法を組み合わせることで、自己位置推定部111は、表示端末10の自己位置の推定精度を向上することができる。
【0064】
(2-2.環境情報取得部113)
環境情報取得部113は、環境情報を取得する機能を有する。例えば、環境情報取得部113は、クラウドサーバ20に記憶されている環境情報を、通信部120及びネットワーク30を介して取得する。この時、環境情報取得部113は、自己位置推定部111から入力された表示端末10の自己位置をクラウドサーバ20へ送信することで、表示端末10の自己位置の周辺の環境情報をクラウドサーバ20から受信する。環境情報の受信後、環境情報取得部113は、受信した環境情報を配置処理部117へ出力する。
【0065】
(2-3.環境情報推定部115)
環境情報推定部115は、環境情報を推定する機能を有する。例えば、環境情報推定部115は、センサ部100が取得したセンシング情報に基づき、表示端末10の周辺の環境情報を推定する。環境情報の推定後、環境情報推定部115は、推定した環境情報を配置処理部117へ出力する。
【0066】
例えば、環境情報推定部115は、センサ部100の外向きカメラ101が取得する撮像画像に対して画像認識処理を行い、認識結果に基づき、表示端末10の周辺の環境情報を推定する。また、環境情報推定部115は、外向きカメラ101が取得する3次元情報に基づき、表示端末10の周辺の環境情報を推定してもよい。かかる構成により、情報処理装置は、例えば、ネットワークの接続が不安定でクラウドサーバ20から環境情報が取得できない状態であっても、推定した環境情報に基づき、仮想オブジェクトの表示処理を継続することができる。
【0067】
また、環境情報推定部115は、外向きカメラ101が取得した撮像画像と3次元画像とを組み合わせて環境情報の推定を行ってもよい。撮像画像と3次元画像とを組み合わせて環境情報の推定を行うことにより、環境情報推定部115は、環境情報の推定精度を向上することができる。
【0068】
なお、環境情報推定部115は、センシング情報が取得されたタイミングで環境情報の推定を行うことで、リアルタイムな環境情報を推定することができる。
【0069】
(2-4.配置処理部117)
配置処理部117は、仮想オブジェクトの配置処理(更新処理)を行う機能を有する。例えば、配置処理部117は、優先度に基づき、仮想オブジェクトの配置を行う。具体的に、配置処理部117は、まず、優先度に基づき、仮想オブジェクトを配置する順番を決定する。順番の決定後、配置処理部117は、決定した順番に従って環境情報をARアプリと共有し、ARアプリに仮想オブジェクトの配置位置を決定させる。ARアプリによる配置位置の決定後、配置処理部117は、ARアプリから配置情報を受信し、受信した配置情報を環境情報に追加することで、環境情報を更新する。なお、配置処理部117は、優先度の設定に関する処理も行い得る。以下、配置処理部117が行う処理について、順次詳細に説明する。
【0070】
(2-4-1.優先度の種類)
本実施形態に係る優先度は、ARアプリ優先度(第1の優先度)と仮想オブジェクト優先度(第2の優先度)の2種類の優先度を含み得る。ARアプリ優先度は、ARアプリに対して設定される優先度である。仮想オブジェクト優先度は、ARアプリの区別をせずに仮想オブジェクトに対して設定される優先度である。配置処理部117は、ARアプリ優先度または仮想オブジェクト優先度の少なくとも一方に基づき、仮想オブジェクトを配置する。
【0071】
ARアプリ優先度に基づき仮想オブジェクトを配置する場合、配置処理部117は、ARアプリごとのARアプリ優先度を比較し、ARアプリ優先度が高いARアプリの仮想オブジェクトを優先的に配置する。例えば、ARアプリ1、ARアプリ2、ARアプリ3が同時に実行されるとする。この時、配置処理部117は、ARアプリ1の仮想オブジェクト、ARアプリ2の仮想オブジェクト、ARアプリ3の仮想オブジェクトの順に、仮想オブジェクトを配置する。なお、1つのARアプリが複数の仮想オブジェクトを有する場合、ARアプリ内で仮想オブジェクトごとにさらに優先度が設定されてもよい。
【0072】
仮想オブジェクト優先度に基づき仮想オブジェクトを配置する場合、配置処理部117は、仮想オブジェクトごとの仮想オブジェクト優先度を比較し、仮想オブジェクト優先度が高い仮想オブジェクトを優先的に配置する。例えば、ARアプリ1は、3番目に優先度の高い仮想オブジェクト1と、5番目に優先度の高い仮想オブジェクト2を有しているとする。また、ARアプリ2は、最も優先度の高い仮想オブジェクト3と、6番目に優先度の高い仮想オブジェクト4を有しているとする。また、ARアプリ3は、4番目に優先度の高い仮想オブジェクト5と、2番目に優先度の高い仮想オブジェクト6を有しているとする。この時、配置処理部117は、仮想オブジェクト3、仮想オブジェクト6、仮想オブジェクト1、仮想オブジェクト5、仮想オブジェクト2、仮想オブジェクト4の順に、仮想オブジェクトを配置する。
【0073】
なお、表示端末10に搭載されたOS(Operating System)の通知機能による表示等、ARアプリのロジックにより実空間に配置される仮想オブジェクトではないものには、優先度は設定されなくてよい。
【0074】
(2-4-2.優先度の設定)
優先度は、例えば、ユーザによってあらかじめ任意に設定され得る。この時、同一の優先度が設定された場合、配置処理部117は、どの仮想オブジェクトを優先して配置すればよいかの判定が困難となる。そのため、複数のARアプリのARアプリ優先度、及び複数の仮想オブジェクトの仮想オブジェクト優先度には、異なる優先度が設定されることが望ましい。同一の優先度が設定された場合、配置処理部117は、優先度を再設定してもよい。
【0075】
例えば、配置処理部117は、ARアプリにより設定された仮想オブジェクトの配置位置を示す座標の指定方法に基づき、仮想オブジェクトの優先度を設定する。具体的に、配置処理部117は、座標の指定方法が絶対座標である仮想オブジェクトの優先度を、座標の指定方法が相対座標である仮想オブジェクトの優先度よりも高く設定する。絶対座標は、絶対座標系における原点を基準とした特定の位置を示す座標である。そのため、絶対座標は、固定された位置を示す。よって、絶対座標で指定された仮想オブジェクトは、指定された座標に配置されることが望ましい。
【0076】
一方、相対座標は、任意の基準点から所定の距離だけ離れた位置の座標を示す。相対座標は、例えば、相対座標系におけるユーザの位置を原点とした特定の位置を示す座標である。そのため、相対座標は、ユーザが移動した場合、変化し得る位置を示す。よって、相対座標で指定された仮想オブジェクトは、指定された座標から移動することが許容され得る。
【0077】
また、配置処理部117は、仮想オブジェクトの移動の自由度に基づき、仮想オブジェクトの優先度を設定してもよい。仮想オブジェクトの移動の自由度は、仮想オブジェクトが移動可能な空間の次元数を示す。例えば、仮想オブジェクトが1次元空間を移動可能な場合、仮想オブジェクトの自由度は1である。絶対座標における自由度1の仮想オブジェクトは、例えば、1次元空間を自由に移動するゲームアプリのキャラクタである。相対座標における自由度1の仮想オブジェクトは、例えば、ユーザの頭を原点とした球座標系にて、半径Rと角度θは固定されているが角度φは変更可能な動画再生画面である。
【0078】
また、仮想オブジェクトが2次元空間を移動可能な場合、仮想オブジェクトの自由度は2である。絶対座標における自由度2の仮想オブジェクトは、例えば、2次元空間を自由に移動するゲームアプリのキャラクタである。相対座標における自由度2の仮想オブジェクトは、例えば、ユーザの頭を原点とした球座標系にて、半径Rは固定されているが角度θと角度φは変更可能な動画再生画面である。
【0079】
また、仮想オブジェクトが3次元空間を移動可能な場合、仮想オブジェクトの自由度は3である。絶対座標における自由度3の仮想オブジェクトは、例えば、3次元空間を自由に移動するゲームアプリのキャラクタである。相対座標における自由度3の仮想オブジェクトは、例えば、ユーザの頭を原点とした球座標系にて、半径R、角度θ、及び角度φの全てが最適に調整されて配置される広告である。
【0080】
また、仮想オブジェクトが移動せずに静止している場合、仮想オブジェクトの自由度は0である。絶対座標における自由度0の仮想オブジェクトは、例えば、固定された位置に表示される店舗の看板である。相対座標における自由度0の仮想オブジェクトは、例えば、ユーザとの位置関係を一定に保ち、常にユーザの手に追従するメニューである。
【0081】
配置処理部117は、移動の自由度が低い仮想オブジェクトの優先度を、移動の自由度が高い仮想オブジェクトの優先度よりも高く設定する。例えば、ユーザが、自由度0の仮想オブジェクトと自由度3の仮想オブジェクトの優先度を同一に設定したとする。この場合、配置処理部117は、自由度0の仮想オブジェクトの優先度が自由度3の仮想オブジェクトの優先度よりも高くなるように、優先度を再設定する。
【0082】
なお、優先度が設定されていない場合、配置処理部117は、座標の指定方法と移動の自由度に基づき、優先度を設定してもよい。また、優先度が設定されていない場合、配置処理部117は、優先度を自動的に最も低く設定してもよい。
【0083】
-優先度の変更
また、優先度は、ユーザによる表示端末10への入力に応じて、配置処理部117により変更されてもよい。例えば、優先度は、ユーザの動的な操作に応じて変更されてもよい。一例として、ARアプリの優先度の入れ替えを示す操作がユーザにより入力された場合、配置処理部117は、当該動作により指定されたARアプリの優先度を入れ替える。例えば、ユーザが、バックグランドで実行されているARアプリをフォアグラウンドで実行されているARアプリと入れ替える操作を行ったとする。この時、配置処理部117は、バックグランドで実行されているARアプリの優先度とフォアグラウンドで実行されているARアプリの優先度とを入れ替える。
【0084】
また、ユーザが優先度を変更したいARアプリの仮想オブジェクトに視線を向け、ジェスチャにより当該仮想オブジェクトを前方に呼ぶ動作を行った場合、配置処理部117は、前方に呼ばれたARアプリの優先度を最も高く変更してもよい。一方、ユーザが優先度を変更したいARアプリの仮想オブジェクトに視線を向け、ジェスチャにより当該仮想オブジェクトを後方に追いやる動作を行った場合、配置処理部117は、後方に追いやられたARアプリの優先度を最も低く変更してもよい。
【0085】
また、ユーザが特定のARアプリに特有の操作を入力した場合、配置処理部117は、当該ARアプリの優先度を最も高く変更してもよい。
【0086】
(2-4-3.仮想オブジェクトの配置)
-自己位置と環境情報の共有
配置処理部117は、設定した優先度が高い順に、ARアプリに表示端末10の自己位置と環境情報を共有する。例えば、配置処理部117は、自己位置推定部111が推定した表示端末10の自己位置をARアプリに共有する。かかる構成により、ARアプリは、表示端末10の自己位置に応じたARアプリデータをARアプリサーバから取得することができる。ARアプリデータは、例えば、仮想オブジェクトの形状や初期配置位置等の情報を含むデータである。また、ARアプリデータには、ARアプリの実行中に出力される音声に関するサウンドデータや、ユーザに提示される触覚に関するハプティックデータが含まれてもよい。
【0087】
また、例えば、ARアプリ1に環境情報を共有する場合、配置処理部117は、環境情報取得部113または環境情報推定部115から入力される環境情報を、環境情報0としてARアプリ1に共有する。なお、配置処理部117は、環境情報取得部113及び環境情報推定部115の両方から環境情報を取得し、取得した2つの環境情報をマージした環境情報を、環境情報0としてARアプリ1に共有してもよい。また、ARアプリ1以外のARアプリに環境情報を共有する場合、配置処理部117は、配置処理後の環境情報をARアプリ1以外のARアプリに共有する。かかる構成により、ARアプリは、他のARアプリと直接やりとりをすることなく、他のARアプリの仮想オブジェクトの配置位置を確認することができる。ARアプリ1が参照する環境情報のデータ形式と、ARアプリ1以外のアプリが参照する環境情報のデータ形式は、同一であると見做されてよい。
【0088】
-配置位置の決定
仮想オブジェクトの配置位置は、ARアプリ側のロジックにより決定され得る。例えば、ARアプリは、配置処理部117から共有される環境情報を参照して、仮想オブジェクトの配置位置を決定する。決定後、ARアプリは、仮想オブジェクトの配置位置を含む配置情報を配置処理部117へ出力する。ARアプリは、環境情報を参照することで他のARアプリの仮想オブジェクトの配置位置を確認することができるため、他のARアプリの仮想オブジェクトと重ならない位置に、仮想オブジェクトの配置位置を決定することができる。
【0089】
-仮想オブジェクトの配置
配置処理部117は、ARアプリから入力される配置情報を環境情報に追加することで、環境情報が示す空間に仮想オブジェクトを配置する。例えば、配置処理部117は、ARアプリ1の仮想オブジェクトを配置する際に、ARアプリ1から入力される配置情報を環境情報0に追加することで、ARアプリ1の仮想オブジェクトを配置する。ARアプリ1の配置情報が追加されることで、環境情報0は、環境情報1に更新される。
【0090】
また、配置処理部117は、ARアプリ2の仮想オブジェクトを配置する際に、環境情報1に基づき、ARアプリ2の仮想オブジェクトの初期配置位置にARアプリ1の仮想オブジェクトが配置されているか否かに応じて、ARアプリ2の仮想オブジェクトを配置する。なお、仮想オブジェクトの初期配置位置に、他のARアプリの仮想オブジェクトが配置されているか否かは、ARアプリ側のロジックにより判定される。例えば、ARアプリ2は、配置処理部117から共有される環境情報1を参照して、ARアプリ2の仮想オブジェクトの初期配置位置にARアプリ1の仮想オブジェクトが配置されている否かを判定する。
【0091】
ARアプリ2の仮想オブジェクトの初期配置位置にARアプリ1の仮想オブジェクトが配置されている場合、ARアプリ2は、初期配置位置以外のARアプリ1の仮想オブジェクトと重ならない位置に、仮想オブジェクトを配置すると決定する。一方、ARアプリ2の仮想オブジェクトの初期配置位置にARアプリ1の仮想オブジェクトが配置されていない場合、ARアプリ2は、初期配置位置に仮想オブジェクトを配置すると決定する。配置位置の決定後、ARアプリ2は、配置情報を配置処理部117へ出力する。
【0092】
そして、配置処理部117は、ARアプリ2から入力される配置情報を環境情報1に追加することで、ARアプリ2の仮想オブジェクトを配置する。ARアプリ2の配置情報が追加されることで、環境情報1は、環境情報2に更新される。すなわち、ARアプリ2は、ARアプリ1の仮想オブジェクトの配置を直接制御することはできないものの、ARアプリ1の仮想オブジェクトを環境情報1として認識することで、ARアプリ2の仮想オブジェクトを適切に配置することができる。かかる構成により、配置処理部117は、複数の仮想オブジェクトが重なることなく、仮想オブジェクトを配置することができる。
【0093】
(2-5.描画部119)
描画部119は、仮想オブジェクトを描画する機能を有する。例えば、描画部119は、配置処理部117から入力される環境情報に基づき、仮想オブジェクトを描画する。具体的に、描画部119は、環境情報を参照して、環境情報に配置された仮想オブジェクトを、実空間に重畳するように描画した画像を生成する。そして、描画部119は、生成した画像を表示部140へ出力する。
【0094】
(3)通信部120
通信部120は、外部装置と通信を行う機能を有する。通信部120は、例えば、外部装置との通信において、外部装置から受信する情報を制御部110へ出力する。具体的に、通信部120は、ネットワーク30を介したクラウドサーバ20との通信において、クラウドサーバ20から環境情報を受信し、制御部110へ出力する。
【0095】
通信部120は、例えば、外部装置との通信において、制御部110から入力される情報を外部装置へ送信する。具体的に、通信部120は、環境情報の取得時に、制御部110の環境情報取得部113から入力される表示端末10の自己位置情報をクラウドサーバ20へ送信する。
【0096】
(4)記憶部130
記憶部130は、表示端末10における処理に関する情報を記憶する機能を有する。例えば、記憶部130は、環境情報を記憶し得る。一例として、記憶部130は、環境情報取得部113が取得した環境情報、環境情報推定部115が推定した環境情報、及び配置処理部が更新した環境情報を記憶し得る。
【0097】
なお、記憶部130が記憶する情報は、上述の例に限定されない。例えば、記憶部130は、センサ部100のセンシング情報を記憶してもよい。また、記憶部130は、各種アプリケーション等のプログラムを記憶してもよい。
【0098】
(5)表示部140
表示部140は、制御部110からの入力に応じた出力を行う機能を有する。例えば、表示部140は、制御部110から入力される画像を表示する。一例として、表示部140は、制御部110の描画部119が生成した、実空間に対して仮想オブジェクトが重畳された画像を表示する。
【0099】
<<3.処理例>>
以上、本実施形態に係る構成例について説明した。続いて、本実施形態に係る処理例について説明する。以下では、一例として、ARアプリ1とARアプリ2が同時に実行される際に、各々のARアプリの仮想オブジェクトが描画された画像が生成されるまでの処理(描画処理)例の説明を行う。
【0100】
(1)メイン処理
まず、図4を参照しながら、描画処理のメイン処理について説明する。図4は、本開示の実施形態に係る仮想オブジェクトの描画処理におけるメイン処理の流れを示すフローチャートである。以下では、環境情報がクラウドサーバ20から取得される例について説明する。
【0101】
まず、表示端末10の制御部110は、センシング情報に基づき、自己位置を推定する(S200)。次いで、制御部110は、クラウドサーバ20から環境情報を取得する(S202)。次いで、制御部110は、実行される複数のARアプリの優先度に基づき、仮想オブジェクトの配置順を決定する(S204)。次いで、制御部110は、配置処理を実行し、仮想オブジェクトを配置する(S206)。そして、制御部110は、決定した位置に仮想オブジェクトを描画した画像を生成する(S208)。
【0102】
(2)配置処理
続いて、図5を参照しながら、配置処理の詳細について説明する。図5は、本開示の実施形態に係る配置処理の流れを示すフローチャートである。以下では、Nは、同時に実行されるARアプリの数を示している。nは、仮想オブジェクトの配置処理が行われているARアプリの番号を示している。Mは、ARアプリnの仮想オブジェクトの数を示している。mは、配置処理が行われている仮想オブジェクトの番号を示している。
【0103】
まず、制御部110は、nを0で初期化する(S2061)。次いで、制御部110は、nが同時に実行されるARアプリ数Nよりも小さいか否かを確認する(S2062)。
【0104】
nがARアプリ数Nよりも小さい場合(S2062/YES)、制御部110は、mを0で初期化する。次いで、制御部110は、mがARアプリnの仮想オブジェクト数Mよりも小さいか否かを確認する(S2064)。
【0105】
mが、仮想オブジェクト数Mよりも小さい場合(S2064/YES)、制御部110は、ARアプリnの仮想オブジェクトmの配置位置をARアプリnに決定させる。次いで、制御部110は、環境情報に仮想オブジェクトmを配置する(S2066)。配置後、制御部110は、mをインクリメントする(S2067)。インクリメント後、制御部110は、再度、mがARアプリnの仮想オブジェクト数Mよりも小さいか否かを確認する(S2064)。
【0106】
mが、仮想オブジェクト数Mよりも小さい場合(S2064/YES)、制御部110は、mが仮想オブジェクト数Mより大きくなるまで、S2064からS2067の処理を繰り返す。
【0107】
mが、仮想オブジェクト数Mよりも大きい場合(S2064/NO)、制御部110は、nをインクリメントする(S2068)。インクリメント後、制御部110は、再度、nが同時に実行されるARアプリ数Nよりも小さいか否かを確認する(S2062)。
【0108】
nがARアプリ数Nよりも小さい場合(S2062/YES)、制御部110は、nがARアプリ数Nより大きくなるまで、S2062からS2068の処理を繰り返す。
【0109】
nがARアプリ数Nよりも大きい場合(S2062/NO)、制御部110は、配置処理を終了する。
【0110】
(3)データフロー
続いて、図6を参照しながら、仮想オブジェクトの描画処理におけるデータの流れについて説明する。図6は、本開示の実施形態に係るデータの流れを示すフローチャートである。
【0111】
まず、センサ部100は、センシング情報を自己位置推定部111へ出力する。環境情報推定部115が環境情報を推定する場合、センサ部100は、センシング情報を環境情報推定部115へも出力する。
【0112】
自己位置推定部111は、センサ部100から入力されたセンシング情報に基づき、表示端末10の自己位置を推定する。環境情報取得部113が環境情報を取得する場合、自己位置推定部111は、推定した自己位置を環境情報取得部113へ出力する。環境情報推定部115が環境情報を推定する場合、自己位置推定部111は、推定した自己位置を環境情報推定部115へ出力する。
【0113】
環境情報取得部113は、自己位置推定部111から入力された自己位置を環境情報サーバ210へ送信する。自己位置を受信した環境情報サーバ210は、自己位置に応じた環境情報0を環境情報取得部113へ送信する。環境情報0を受信した環境情報取得部113は、取得した環境情報0と自己位置を配置処理部117へ出力する。
【0114】
環境情報推定部115は、センサ部100から入力されたセンシング情報に基づき、環境情報0を推定する。推定後、環境情報推定部115は、推定した環境情報0と自己位置推定部111から入力された自己位置を配置処理部117へ出力する。
【0115】
配置処理部117は、環境情報取得部113または環境情報推定部115から入力された環境情報0と自己位置をARアプリ1へ出力する。環境情報0と自己位置を入力されたARアプリ1は、入力された自己位置をARアプリ1サーバ221へ送信する。自己位置を受信したARアプリ1サーバ221は、入力された自己位置に応じた仮想オブジェクトの形状や初期配置位置等を含むARアプリ1データをARアプリ1へ送信する。ARアプリ1データを受信したARアプリ1は、環境情報0とARアプリ1データに基づき、仮想オブジェクトの配置位置を決定する。決定後、ARアプリ1は、配置位置を含む配置情報1を配置処理部117へ出力する。
【0116】
配置処理部117は、ARアプリ1から入力された配置情報1を環境情報0に追加することで、環境情報0を環境情報1へ更新する。更新後、配置処理部117は、環境情報1と自己位置をARアプリ2へ出力する。環境情報1と自己位置を入力されたARアプリ2は、入力された自己位置をARアプリ2サーバ222へ送信する。自己位置を受信したARアプリ2サーバ222は、入力された自己位置に応じた仮想オブジェクトの形状や初期配置位置等を含むARアプリ2データをARアプリ2へ送信する。ARアプリ2データを受信したARアプリ2は、環境情報1とARアプリ2データに基づき、仮想オブジェクトの配置位置を決定する。決定後、ARアプリ2は、配置位置を含む配置情報2を配置処理部117へ出力する。
【0117】
配置処理部117は、ARアプリ2から入力された配置情報2を環境情報1に追加することで、環境情報1を環境情報2へ更新する。更新後、配置処理部117は、環境情報2を描画部119へ出力する。
【0118】
描画部119は、配置処理部117から入力された環境情報2に基づき、仮想オブジェクトを描画した画像を生成する。生成後、描画部119は、生成した画像を表示部140へ出力する。
【0119】
<<4.具体例>>
以上、本実施形態に係る処理例について説明した。続いて、本実施形態に係る具体例について説明する。以下では、一例として、ゲームアプリ(ARアプリ1)と道案内アプリ(ARアプリ2)が同時に実行される例の説明を行う。なお、ARアプリの種類は、ゲームアプリと道案内アプリに限定されず、任意の種類のARアプリであってよい。例えば、ARアプリは、看板やポスター等を表示する広告アプリであってもよい。また、以下では、環境情報取得部113が取得した環境情報0が用いられることとする。
【0120】
<4-1.配置処理の概要>
まず、図7を参照しながら、本実施形態の具体例における配置処理の概要について説明する。図7は、本開示の実施形態に係る具体例における仮想オブジェクトの配置処理の概要を示す図である。
【0121】
ゲームアプリと道案内アプリが同時に実行される前の実空間の環境が、状態T21であるとする。状態T21では、実空間に実オブジェクトとして木42が存在する。状態T21において、ゲームアプリと道案内アプリが同時に実行されると、環境情報取得部113は、状態T21における実空間の3次元空間を示す環境情報0を取得する。環境情報0の取得後、配置処理部117は、取得した環境情報0をゲームアプリに共有する。
【0122】
ゲームアプリは、共有された環境情報0を参照して、ゲームアプリの仮想オブジェクトであるキャラクタ52の配置位置を決定する(S300)。例えば、ゲームアプリは、図7に示す状態T22のように、ゲームアプリのキャラクタ52を配置すると決定する。ゲームアプリによる配置位置の決定後、配置処理部117は、環境情報0にゲームアプリのキャラクタ52の配置情報を追加し、状態T22における実空間の環境を示す環境情報1に更新する(S302)。
【0123】
次いで、環境情報1は、道案内アプリに共有される。道案内アプリは、共有された環境情報1を参照して、道案内アプリの仮想オブジェクトである矢印62と矢印63の配置位置を決定する(S304)。例えば、道案内アプリは、図7に示す状態T23のように、道案内アプリの矢印62と矢印63を配置すると決定する。道案内アプリによる配置位置の決定後、配置処理部117は、環境情報1に道案内アプリの矢印62と矢印63の配置情報を追加することで、環境情報1を状態T23における実空間の環境を示す環境情報2に更新する(S306)。
【0124】
<4-2.仮想オブジェクトの配置例>
次に、図8を参照しながら、本実施形態の具体例における仮想オブジェクトの配置例について説明する。図8は、本開示の実施形態に係る具体例における仮想オブジェクトの配置例を示す図である。
【0125】
図8には、一例として、ゲームアプリと道案内アプリが同時に実行された際の、ゲームアプリの静的な仮想オブジェクトであるキャラクタ52と、道案内アプリの静的な仮想オブジェクトである矢印62と矢印63の表示例が示されている。ここでいう静的な仮想オブジェクトは、初期配置位置から移動しない仮想オブジェクトである。
【0126】
図8に示す例において、配置処理部117は、道案内アプリに関する配置処理時、ゲームアプリのキャラクタ52の配置位置を含む環境情報を道案内アプリに共有する。道案内アプリは、配置処理部117から共有された環境情報を参照して、キャラクタ52と重ならない位置に矢印62と矢印63の位置を決定する。道案内アプリによる矢印62と矢印63の配置位置の決定後、配置処理部117は、道案内アプリが決定した矢印62と矢印63の配置位置を環境情報に追加する。そして、描画部119は、更新した環境情報に基づき、本実施形態に係る表示端末10に仮想オブジェクトを表示させる。
【0127】
道案内アプリは、矢印62と矢印63の配置位置の決定時、環境情報に含まれるゲームアプリのキャラクタ52の配置位置と、矢印62と矢印63の初期配置位置を比較する。例えば、環境情報に含まれるゲームアプリのキャラクタ52の配置位置が図8に示すキャラクタ52の位置であり、矢印62の初期配置位置が図8に示す矢印62の位置であったとする。図8に示す矢印62の位置は、矢印62がキャラクタ52と重ならない位置である。よって、道案内アプリは、図8に示す矢印62の位置に、矢印62をそのまま配置すると決定する。
【0128】
また、矢印63の初期配置位置が図8に示す矢印63aの位置であったとする。図8に示す矢印63aの位置は、矢印63がキャラクタ52と重なる位置である。よって、道案内アプリは、矢印63とキャラクタ52が重ならない位置に矢印63を配置すると決定する。例えば、道案内アプリは、図8に示す矢印63bの位置に、矢印63を配置すると決定する。
【0129】
<4-3.処理例>
次に、図9を参照しながら、本実施形態の具体例における描画処理の流れについて説明する。図9は、本開示の実施形態に係る具体例における描画処理の流れを示すフローチャートである。
【0130】
まず、自己位置推定部111は、センシング情報に基づき、自己位置を推定する(S400)。次いで、環境情報取得部113は、クラウドサーバ20から環境情報を取得する(S402)。次いで、配置処理部117は、実行される複数のARアプリの優先度に基づき、仮想オブジェクトの配置順を決定する(S404)。次いで、配置処理部117は、仮想オブジェクトの配置処理を実行し、仮想オブジェクトを配置する(S406)。
【0131】
配置処理では、まず、配置処理部117は、環境情報0に基づき、ゲームアプリのキャラクタの配置位置を決定する(S4060)。次いで、配置処理部117は、環境情報0にキャラクタの配置情報を追加し、環境情報0を環境情報1に更新する(S4062)。次いで、配置処理部117は、環境情報1に基づき、道案内アプリの矢印の配置位置を決定する(S4064)。次いで、配置処理部117は、環境情報1に矢印の配置情報を追加し、環境情報1を環境情報2に更新する(S4066)。
【0132】
配置処理後、描画部119は、環境情報2を参照して、配置位置に仮想オブジェクトを描画した画像を生成し(S408)、表示部140に表示させる。
【0133】
<<5.変形例>>
以下では、本開示の実施形態の変形例を説明する。なお、以下に説明する変形例は、単独で本開示の実施形態に適用されてもよいし、組み合わせで本開示の実施形態に適用されてもよい。また、変形例は、本開示の実施形態で説明した構成に代えて適用されてもよいし、本開示の実施形態で説明した構成に対して追加的に適用されてもよい。
【0134】
(1)第1の変形例
上述の実施形態では、環境情報の更新時に、環境情報に仮想オブジェクトの配置位置を示す配置情報が追加される例について説明した。仮想オブジェクトが動的な仮想オブジェクトである場合、環境情報には、仮想オブジェクトの移動範囲を示す移動範囲情報も含めた配置情報が追加されてもよい。ここでいう動的な仮想オブジェクトは、初期配置位置から移動する仮想オブジェクトである。
【0135】
例えば、ARアプリ1の仮想オブジェクトが動的な仮想オブジェクトであり、3次元空間内を移動し得るとする。この場合、ARアプリ1は、仮想オブジェクトの配置位置の決定後、3次元空間における仮想オブジェクトの移動範囲を示す移動範囲情報を含めた配置情報を、情報処理装置に共有する。ARアプリ1は、配置情報に移動範囲情報を含めることで、仮想オブジェクトが移動する範囲の予約を行うことができる。共有された配置情報に移動範囲情報が含まれる場合、配置処理部117は、移動範囲情報に基づき、ARアプリ1の仮想オブジェクトの移動範囲の外にARアプリ2の仮想オブジェクトを配置する。かかる構成により、情報処理装置は、動的な仮想オブジェクトの移動を考慮した上で、各々の仮想オブジェクトが重なることなく、仮想オブジェクトを配置することができる。以下、かかる構成について順次詳細に説明する。なお、以下では、環境情報取得部113が取得した環境情報0が用いられることとする。
【0136】
(1-1.配置処理の概要)
まず、図10を参照しながら、本実施形態の変形例における配置処理の概要について説明する。図10は、本開示の実施形態に係る変形例における仮想オブジェクトの配置処理の概要を示す図である。
【0137】
ゲームアプリと道案内アプリが同時に実行される前の実空間の環境が、状態T31であるとする。状態T31では、実空間に実オブジェクトとして木42が存在する。状態T31において、ゲームアプリと道案内アプリが同時に実行されると、環境情報取得部113は、状態T31における実空間の3次元空間を示す環境情報0を取得する。環境情報0の取得後、配置処理部117は、取得した環境情報0をゲームアプリに共有する。
【0138】
ゲームアプリは、共有された環境情報0を参照して、ゲームアプリの仮想オブジェクトであるキャラクタ52の配置位置を決定する(S500)。例えば、ゲームアプリは、図10に示す状態T32のように、ゲームアプリのキャラクタ52及び移動範囲53を配置すると決定する。ゲームアプリによる配置位置の決定後、配置処理部117は、環境情報0にゲームアプリのキャラクタ52と移動範囲53の配置情報を追加し、状態T32における実空間の環境を示す環境情報1に更新する(S502)。
【0139】
次いで、環境情報1は、道案内アプリに共有される。道案内アプリは、共有された環境情報1を参照して、道案内アプリの仮想オブジェクトである矢印62と矢印63の配置位置を決定する(S504)。例えば、道案内アプリは、図10に示す状態T33のように、道案内アプリの矢印62と矢印63を配置すると決定する。道案内アプリによる配置位置の決定後、配置処理部117は、環境情報1に道案内アプリの矢印62と矢印63の配置情報を追加することで、環境情報1を状態T33における実空間の環境を示す環境情報2に更新する(S506)。
【0140】
なお、配置処理部117は、移動範囲53を環境情報に配置せず、ARアプリ2が参照できるように移動範囲情報を環境情報に含めるだけでもよい。また、移動範囲53を仮想オブジェクトとして環境情報に配置する場合、配置処理部117は、描画されない仮想オブジェクトとして移動範囲53を配置する。
【0141】
(1-2.仮想オブジェクトの配置例)
次に、図11を参照しながら、本実施形態の変形例における仮想オブジェクトの配置例について説明する。図11は、本開示の実施形態に係る変形例における仮想オブジェクトの配置例を示す図である。
【0142】
図11には、一例として、ゲームアプリと道案内アプリが同時に実行された際の、ゲームアプリの動的な仮想オブジェクトであるキャラクタ52と、道案内アプリの静的な仮想オブジェクトである矢印62と矢印63の表示例が示されている。
【0143】
図11に示す例において、配置処理部117は、道案内アプリに関する配置処理時、ゲームアプリのキャラクタ52の配置位置を含む環境情報を道案内アプリに共有する。道案内アプリは、配置処理部117から共有された環境情報を参照して、キャラクタ52及び移動範囲53と重ならない位置に矢印62と矢印63の配置位置を決定する。道案内アプリによる矢印62と矢印63の配置位置の決定後、配置処理部117は、道案内アプリが決定した矢印62と矢印63の配置位置を環境情報に追加する。そして、描画部119は、更新した環境情報に基づき、本実施形態に係る表示端末10に仮想オブジェクトを表示させる。
【0144】
道案内アプリは、矢印62と矢印63の配置位置の決定時、環境情報に含まれるゲームアプリのキャラクタ52の配置位置及び移動範囲53と、矢印62と矢印63の初期配置位置を比較する。例えば、環境情報に含まれるゲームアプリのキャラクタ52の配置位置が図8に示すキャラクタ52の位置であり、矢印62の初期配置位置が図11に示す矢印62の位置であったとする。図11に示す矢印62の位置は、矢印62がキャラクタ52と重ならない位置である。よって、道案内アプリは、図11に示す矢印62の位置に、矢印62をそのまま配置すると決定する。
【0145】
また、矢印63の初期配置位置が図11に示す矢印63aの位置であったとする。図11に示す矢印63aの位置は、矢印63がキャラクタ52と重なる位置である。よって、道案内アプリは、矢印63とキャラクタ52が重ならない位置に矢印63を配置すると決定する。例えば、道案内アプリは、図11に示す矢印63bの位置に、矢印63を配置すると決定する。しかしながら、図11に示す矢印63bの位置は、矢印63がキャラクタ52の移動範囲53と重なる位置である。よって、道案内アプリは、矢印63と移動範囲53が重ならない位置に矢印63を配置すると決定する。例えば、道案内アプリは、図11に示す矢印63cの位置に、矢印63を配置すると決定する。
【0146】
(1-3.処理例)
次に、図12を参照しながら、本実施形態の変形例における描画処理の流れについて説明する。図12は、本開示の実施形態に係る変形例における描画処理の流れを示すフローチャートである。
【0147】
まず、自己位置推定部111は、センシング情報に基づき、自己位置を推定する(S600)。次いで、環境情報取得部113は、クラウドサーバ20から環境情報を取得する(S602)。次いで、配置処理部117は、実行される複数のARアプリの優先度に基づき、仮想オブジェクトの配置順を決定する(S604)。次いで、配置処理部117は、仮想オブジェクトの配置処理を実行し、仮想オブジェクトを配置する(S606)。
【0148】
配置処理では、まず、配置処理部117は、環境情報0をゲームアプリに共有し、ゲームアプリにキャラクタの配置位置の決定(S6060)、及びキャラクタの移動範囲の予約(S6062)を行わせる。次いで、配置処理部117は、キャラクタの配置位置及び移動範囲情報を含む配置情報を環境情報0に追加し、環境情報0を環境情報1に更新する(S6064)。次いで、配置処理部117は、環境情報1を道案内アプリに共有し、道案内アプリに矢印の配置位置を決定させる(S6066)。次いで、配置処理部117は、矢印の配置位置を含む配置情報を環境情報1に追加し、環境情報1を環境情報2に更新する(S6068)。
【0149】
配置処理後、描画部119は、環境情報2を参照して、配置位置に仮想オブジェクトを描画した画像を生成し(S608)、表示部140に表示させる。かかる構成により、矢印の場所がキャラクタの移動によらず一定になるため、情報処理装置は、各々の仮想オブジェクトの視認性を良くすることがきる。
【0150】
(2)第2の変形例
上述の実施形態では、ユーザ操作に応じて優先度が変更される例について説明した。ユーザ操作の入力後すぐに優先度を変更すると、優先度が低くなるARアプリの仮想オブジェクトの挙動に影響が生じ、ユーザに違和感を与える恐れがある。例えば、優先度が低くなるARアプリの仮想オブジェクトの位置が急に移動したり、当該仮想オブジェクトが急に消えたりし、ユーザに違和感を与え得る。
【0151】
そこで、配置処理部117は、優先度の変更を決定してから所定の時間が経過後に優先度を変更してもよい。所定の時間は、例えば、ARアプリの一連の処理が終了するまでの時間、仮想オブジェクトが画面から見切れるまでの時間、動的な仮想オブジェクトの動作が終了するまでの時間等が挙げられる。また、所定の時間は、ユーザによりあらかじめ設定される任意の時間であってもよい。
【0152】
優先度変更の一例として、例えば、ARアプリ1の仮想オブジェクトが移動している最中に、ユーザにより、ARアプリ1とARアプリ2の優先度を入れ替えることを示す操作が入力されたとする。この時、配置処理部117は、ARアプリ1の仮想オブジェクトが静止してから、ARアプリ1とARアプリ2の優先度を入れ替える。そして、配置処理部117は、変更後の優先度に基づき、仮想オブジェクトの配置処理を行う。
【0153】
かかる構成により、変更後の優先度が低くなったARアプリの仮想オブジェクトの挙動に与える影響を抑えることができ、ユーザに与える違和感も低減することができる。
【0154】
また、配置処理部117は、優先度の変更を決定してから所定の時間が経過するまで、優先度の変更対象であるARアプリの仮想オブジェクトのレイアウトを、優先度の変更対象でないARアプリとは独立して計算し、表示を保ってもよい。さらに、配置処理部117は、優先度の変更対象のARアプリの仮想オブジェクトを、ワイヤフレームで表示してもよい。
【0155】
かかる構成により、情報処理装置は、優先度の変更対象であるARアプリの仮想オブジェクトにより、優先度の変更対象でないARアプリの仮想オブジェクトの表示が妨げられることを防止することができる。
【0156】
<<6.ハードウェア構成例>>
最後に、図13を参照しながら、本実施形態に係る情報処理装置のハードウェア構成例について説明する。図13は、本実施形態に係る情報処理装置のハードウェア構成例を示すブロック図である。なお、図13に示す情報処理装置900は、例えば、図3に示した表示端末10を実現し得る。本実施形態に係る表示端末10による情報処理は、ソフトウェアと、以下に説明するハードウェアとの協働により実現される。
【0157】
図13に示すように、情報処理装置900は、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、及びRAM(Random Access Memory)903を備える。また、情報処理装置900は、ホストバス904、ブリッジ905、外部バス906、インタフェース907、入力装置908、出力装置909、ストレージ装置910、ドライブ911、接続ポート912、及び通信装置913を備える。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ハードウェア構成は、ここで示される構成要素以外の構成要素をさらに含んでもよい。
【0158】
CPU901は、例えば、演算処理装置又は制御装置として機能し、ROM902、RAM903、又はストレージ装置910に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM902は、CPU901に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM903には、例えば、CPU901に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。これらはCPUバスなどから構成されるホストバス904により相互に接続されている。CPU901、ROM902、及びRAM903は、例えば、ソフトウェアとの協働により、図3を参照して説明した制御部110の機能を実現し得る。
【0159】
CPU901、ROM902、及びRAM903は、例えば、高速なデータ伝送が可能なホストバス904を介して相互に接続される。一方、ホストバス904は、例えば、ブリッジ905を介して比較的データ伝送速度が低速な外部バス906に接続される。また、外部バス906は、インタフェース907を介して種々の構成要素と接続される。
【0160】
入力装置908は、例えば、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチ及びレバー等、ユーザによって情報が入力される装置によって実現される。また、入力装置908は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置900の操作に対応した携帯電話やPDA等の外部接続機器であってもよい。さらに、入力装置908は、例えば、上記の入力手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などを含んでいてもよい。情報処理装置900のユーザは、この入力装置908を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。
【0161】
他にも、入力装置908は、ユーザに関する情報を検知する装置により形成され得る。例えば、入力装置908は、画像センサ(例えば、カメラ)、深度センサ(例えば、ステレオカメラ)、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサ、測距センサ(例えば、ToF(Time of Flight)センサ)、力センサ等の各種のセンサを含み得る。また、入力装置908は、情報処理装置900の姿勢、移動速度等、情報処理装置900自身の状態に関する情報や、情報処理装置900の周辺の明るさや騒音等、情報処理装置900の周辺環境に関する情報を取得してもよい。また、入力装置908は、GNSS(Global Navigation Satellite System)衛星からのGNSS信号(例えば、GPS(Global Positioning System)衛星からのGPS信号)を受信して装置の緯度、経度及び高度を含む位置情報を測定するGNSSモジュールを含んでもよい。また、位置情報に関しては、入力装置908は、Wi-Fi(登録商標)、携帯電話・PHS・スマートフォン等との送受信、または近距離通信等により位置を検知するものであってもよい。入力装置908は、例えば、図3を参照して説明したセンサ部100の機能を実現し得る。
【0162】
出力装置909は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で形成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置、レーザープロジェクタ、LEDプロジェクタ及びランプ等の表示装置や、スピーカ及びヘッドフォン等の音声出力装置や、プリンタ装置等がある。出力装置909は、例えば、情報処理装置900が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置900が行った各種処理により得られた結果を、テキスト、イメージ、表、グラフ等、様々な形式で視覚的に表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して聴覚的に出力する。出力装置909は、例えば、図3を参照して説明した表示部140の機能を実現し得る。
【0163】
ストレージ装置910は、情報処理装置900の記憶部の一例として形成されたデータ格納用の装置である。ストレージ装置910は、例えば、HDD等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により実現される。ストレージ装置910は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。このストレージ装置910は、CPU901が実行するプログラムや各種データ及び外部から取得した各種のデータ等を格納する。ストレージ装置910は、例えば、図3を参照して説明した記憶部130の機能を実現し得る。
【0164】
ドライブ911は、記憶媒体用リーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ911は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体に記録されている情報を読み出して、RAM903に出力する。また、ドライブ911は、リムーバブル記憶媒体に情報を書き込むこともできる。
【0165】
接続ポート912は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS-232Cポート、又は光オーディオ端子等のような外部接続機器を接続するためのポートである。
【0166】
通信装置913は、例えば、ネットワーク920に接続するための通信デバイス等で形成された通信インタフェースである。通信装置913は、例えば、有線若しくは無線LAN(Local Area Network)、LTE(Long Term Evolution)、Bluetooth(登録商標)又はWUSB(Wireless USB)用の通信カード等である。また、通信装置913は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ又は各種通信用のモデム等であってもよい。この通信装置913は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。通信装置913は、例えば、図3を参照して説明した通信部120の機能を実現し得る。
【0167】
なお、ネットワーク920は、ネットワーク920に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、ネットワーク920は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク920は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。ネットワーク920は、例えば、図3を参照して説明したネットワーク30の機能を実現し得る。
【0168】
以上、本実施形態に係る情報処理装置900の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて実現されていてもよいし、各構成要素の機能に特化したハードウェアにより実現されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【0169】
<<7.まとめ>>
以上説明したように、本開示の実施形態に係る情報処理装置は、まず、実世界の3次元空間を表す環境情報0を取得し、環境情報0に基づいて、ARアプリ1の仮想オブジェクトを3次元空間に配置する。次いで、情報処理装置は、ARアプリ1の仮想オブジェクトの配置に基づいて、環境情報0を、ARアプリ1の仮想オブジェクトの配置情報を含む環境情報1として更新する。そして、情報処理装置は、ARアプリ1の実行中に、ARアプリ2の仮想オブジェクトを、環境情報1に基づいて、ARアプリ1の仮想オブジェクトが配置された3次元空間に配置する。換言すれば、ARアプリ1(ARアプリ2)は、ARアプリ2の仮想オブジェクト(ARアプリ1の仮想オブジェクト)を、ARアプリ1が参照する環境情報として認識する。かかる構成により、情報処理装置は、環境情報に含まれる配置情報を参照して、各々のARアプリの仮想オブジェクトが重ならないように、各々のARアプリの仮想オブジェクトを配置することができる。
【0170】
よって、複数のARアプリを連携して動作させることが可能な、新規かつ改良された情報処理装置、情報処理方法、及び記録媒体を提供することが可能である。
【0171】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0172】
例えば、本明細書において説明した各装置は、単独の装置として実現されてもよく、一部または全部が別々の装置として実現されても良い。例えば、図3に示した表示端末10が備えるセンサ部100と制御部110の少なくともいずれか一方が、単独の装置として実現されてもよい。例えば、センサ部100は、センサ装置等の独立した装置として実現され、ネットワーク等を介して表示端末10と接続されてもよい。また、制御部110は、サーバ装置等の独立した装置として実現され、ネットワーク等を介して表示端末10と接続されてもよい。
【0173】
また、本明細書において説明した各装置による一連の処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記録媒体(非一時的な媒体:non-transitory media)に予め格納される。そして、各プログラムは、例えば、コンピュータによる実行時にRAMに読み込まれ、CPUなどのプロセッサにより実行される。
【0174】
また、本明細書においてフローチャートを用いて説明した処理は、必ずしも図示された順序で実行されなくてもよい。いくつかの処理ステップは、並列的に実行されてもよい。また、追加的な処理ステップが採用されてもよく、一部の処理ステップが省略されてもよい。
【0175】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【0176】
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、
を備える、情報処理装置。
(2)
前記制御部は、前記第1の仮想オブジェクト及び前記第2の仮想オブジェクトの配置の優先度に基づき、前記第1の仮想オブジェクト及び前記第2の仮想オブジェクトを配置する、前記(1)に記載の情報処理装置。
(3)
前記第1の仮想オブジェクトの前記優先度は、前記第2の仮想オブジェクトの前記優先度よりも高い、前記(2)に記載の情報処理装置。
(4)
前記制御部は、前記第2の仮想オブジェクトを配置する際に、前記第2の環境情報に基づき、前記第2の仮想オブジェクトの初期配置位置に前記第1の仮想オブジェクトが配置されているか否かに応じて、前記第2の仮想オブジェクトを配置する、前記(2)または(3)に記載の情報処理装置。
(5)
前記第2の仮想オブジェクトの初期配置位置に前記第1の仮想オブジェクトが配置されており、かつ前記第1の仮想オブジェクトの前記優先度が前記第2の仮想オブジェクトの前記優先度よりも高い場合、
前記制御部は、前記第2の仮想オブジェクトを前記初期配置位置以外の位置に配置する、前記(4)に記載の情報処理装置。
(6)
前記優先度は、アプリケーションに対して設定される優先度である第1の優先度を含み、
前記制御部は、前記アプリケーションごとの前記第1の優先度を比較し、前記第1の優先度が高い前記アプリケーションの仮想オブジェクトを優先的に配置する、前記(2)~(5)のいずれか1項に記載の情報処理装置。
(7)
前記優先度は、アプリケーションによる区別をせずに仮想オブジェクトに対して設定される優先度である第2の優先度を含み、
前記制御部は、前記仮想オブジェクトごとの前記第2の優先度を比較し、前記第2の優先度が高い前記仮想オブジェクトを優先的に配置する、前記(2)~(6)のいずれか1項に記載の情報処理装置。
(8)
前記制御部は、アプリケーションにより設定された仮想オブジェクトの配置位置を示す座標の指定方法に基づき、前記仮想オブジェクトの優先度を設定する、前記(2)~(7)のいずれか1項に記載の情報処理装置。
(9)
前記制御部は、前記座標の指定方法が絶対座標である前記仮想オブジェクトの前記優先度を、前記座標の指定方法が相対座標である前記仮想オブジェクトの前記優先度よりも高く設定する、前記(8)に記載の情報処理装置。
(10)
前記制御部は、仮想オブジェクトの移動の自由度に基づき、前記仮想オブジェクトの前記優先度を設定する、前記(2)~(9)のいずれか1項に記載の情報処理装置。
(11)
前記制御部は、前記移動の自由度が低い前記仮想オブジェクトの前記優先度を、前記移動の自由度が高い前記仮想オブジェクトの前記優先度よりも高く設定する、前記(10)に記載の情報処理装置。
(12)
前記第1の仮想オブジェクトが前記3次元空間内を移動する場合、
前記第2の環境情報は、前記3次元空間における前記第1の仮想オブジェクトの移動範囲を示す移動範囲情報を含む、前記(2)~(11)のいずれか1項に記載の情報処理装置。
(13)
前記制御部は、前記移動範囲情報に基づき、前記第1の仮想オブジェクトの移動範囲の外に前記第2の仮想オブジェクトを配置する、前記(12)に記載の情報処理装置。
(14)
前記制御部は、ユーザによる前記情報処理装置への入力に応じて、前記優先度を変更する、前記(2)~(13)のいずれか1項に記載の情報処理装置。
(15)
前記制御部は、前記優先度の変更を決定してから所定の時間が経過後、前記優先度を変更する、前記(14)に記載の情報処理装置。
(16)
前記第2の環境情報は、前記3次元空間に配置された前記第1の仮想オブジェクトの形状を示す情報と、配置された位置を示す座標情報とを含む、前記(1)~(15)のいずれか1項に記載の情報処理装置。
(17)
前記第1の環境情報及び前記第2の環境情報は、前記3次元空間の形状を示す情報を含む、前記(1)~(16)のいずれか1項に記載の情報処理装置。
(18)
前記情報処理装置は、センサ部をさらに備え、
前記制御部は、前記センサ部が前記情報処理装置の周辺をセンシングして得られるセンシング情報に基づき、前記第1の環境情報を推定する、前記(1)~(17)のいずれか1項に記載の情報処理装置。
(19)
前記第1のアプリケーションは、前記第1の仮想オブジェクトの配置を変更できるようプログラムされている一方で、前記第2の仮想オブジェクトの配置を変更できるようプログラムされておらず、
前記第2のアプリケーションは、前記第2の仮想オブジェクトの配置を変更できるようプログラムされている一方で、前記第1の仮想オブジェクトの配置を変更できるようプログラムされておらず、
前記第1の環境情報のデータ形式と、前記第2の環境情報のデータ形式は同一である、前記(1)~(17)のいずれか1項に記載の情報処理装置。
(20)
実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置すること、
を含む、プロセッサにより実行される情報処理方法。
(21)
コンピュータを、
実世界の3次元空間を表す第1の環境情報を取得し、前記第1の環境情報に基づいて、第1のアプリケーションの第1の仮想オブジェクトを前記3次元空間に配置し、
前記第1の仮想オブジェクトの配置に基づいて、前記第1の環境情報を、前記第1の仮想オブジェクトの配置を示す情報を含む第2の環境情報として更新し、
前記第1のアプリケーションの実行中に、第2のアプリケーションの第2の仮想オブジェクトを、前記第2の環境情報に基づいて、前記第1の仮想オブジェクトが配置された前記3次元空間に配置する制御部、
として機能させるためのプログラムが記録された記録媒体。
【符号の説明】
【0177】
10 表示端末
20 クラウドサーバ
30 ネットワーク
100 センサ部
101 外向きカメラ
103 加速度センサ
105 ジャイロセンサ
107 方位センサ
109 GPSセンサ
110 制御部
111 自己位置推定部
113 環境情報取得部
115 環境情報推定部
117 配置処理部
119 描画部
120 通信部
130 記憶部
140 表示部
1000 情報処理システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13