(57)【要約】【課題】  適切な位置にユーザの視点を移動させることが可能となる仕組みを提供すること【解決手段】  装着型の表示装置の過去の位置に、表示装置の仮想空間における視点位置を移動する指示を受け付け、当該視点位置の移動指示を受け付けた場合に、指示を受け付けた過去の表示装置の位置から所定距離離れた位置を、当該視点位置の移動先の位置として決定し、決定された位置に表示装置の仮想空間における視点位置を移動させるべく変更する【選択図】  図１０
2018063589.tif 000002
【特許請求の範囲】
【請求項１】
装着型の表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置であって、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付手段と、
前記移動指示受付手段により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定手段と、
前記決定手段により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記移動指示受付手段において移動指示を受け付けた前記過去の表示装置の位置から所定距離内に前記仮想オブジェクトが位置しているか判定する仮想オブジェクト位置判定手段
を備え、
前記決定手段は、前記仮想オブジェクト位置判定手段により、前記移動指示受付手段において移動指示を受け付けた前記過去の表示装置の位置から所定距離内に前記仮想オブジェクトが位置していると判定された場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記移動指示受付手段において移動指示を受け付けた前記過去の表示装置の高さ位置と、前記視点位置を移動させる対象の表示装置の高さ位置が所定以上異なるか判定する高さ位置判定手段
を備え、
前記決定手段は、前記高さ位置判定手段により、前記移動指示受付手段において移動指示を受け付けた前記過去の表示装置の高さ位置と、前記視点位置を移動させる対象の表示装置の高さ位置が所定以上異なると判定された場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記移動指示受付手段において移動指示を受け付けた前記過去の表示装置のユーザが所定のユーザか判定する判定手段
を備え、
前記決定手段は、前記移動指示受付手段において移動指示を受け付けた前記過去の表示装置のユーザが所定のユーザであると判定された場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記表示装置に表示された画像を撮影した撮影画像と、前記撮影がされた時点での前記表示装置の位置とを対応付けて記憶する撮影画像記憶手段
を備え、
前記移動指示受付手段は、前記撮影画像記憶手段により記憶された撮影画像の選択を受け付けることにより、前記撮影画像に対応する位置に、前記表示装置の仮想空間における視点位置を移動する指示を受け付けることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記表示装置に表示された画像を録画した動画と、前記録画がされている間の前記表示装置の位置とを対応付けて記憶する動画記憶手段
を備え、
前記移動指示受付手段は、前記動画記憶手段により記憶された動画の選択を受け付けることにより、前記動画に対応する位置に、前記表示装置の仮想空間における視点位置を移動する指示を受け付け、
前記決定手段は、選択を受け付けた前記動画の録画開始時点での位置を、前記移動先の位置として決定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記変更手段により変更された視点位置から、前記移動指示受付手段により移動指示を受け付けた前記表示装置の過去の位置までの案内を表示すべく制御する案内表示制御手段と、
を備えることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
装着型の表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置の制御方法であって、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付工程と、
前記移動指示受付工程により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定工程と、
前記決定工程により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更工程と、
を含むことを特徴とする情報処理装置の制御方法。
【請求項９】
装着型の表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置で実行が可能なプログラムであって、
前記情報処理装置を、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付手段と、
前記移動指示受付手段により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定手段と、
前記決定手段により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更手段として機能させることを特徴とする情報処理装置のプログラム。
【請求項１０】
装着型の表示装置と、前記表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置と、を含む情報処理システムであって、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付手段と、
前記移動指示受付手段により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定手段と、
前記決定手段により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更手段と、
を備えることを特徴とする情報処理システム。
【請求項１１】
装着型の表示装置と、前記表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置と、を含む情報処理システムであって、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付工程と、
前記移動指示受付工程により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定工程と、
前記決定工程により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更工程と、
を含むことを特徴とする情報処理システムの制御方法。
【請求項１２】
装着型の表示装置と、前記表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置と、を含む情報処理システムを制御するためのプログラムであって、
前記情報処理システムを、
前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付手段と、
前記移動指示受付手段により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定手段と、
前記決定手段により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、複合現実（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ／以下、ＭＲと記載）の技術が普及している。複合現実の技術を用いて、ヘッドマウントディスプレイ（ＨＭＤ）を装着したユーザに対し、現実画像にＣＧモデルを配置した複合現実画像を提供し、現実と仮想を複合した複合現実の世界を体験させることができる。複合現実画像を生成するにあたり、ＨＭＤの位置とＣＧモデルの位置とを、センサや二次元マーカを用いて特定する手法が取られている。
【０００３】
特許文献１には、ＨＭＤで撮影された画像の中に写る二次元マーカを用いてＨＭＤの位置姿勢を特定し、複合現実画像を提供する技術が記載されている。また、特許文献２には、磁気センサを用いてＨＭＤの位置姿勢を特定し、複合現実画像を提供する技術が記載されている。
【０００４】
また、特許文献３には、撮影した複合現実画像と、その時点での時刻とＨＭＤの位置姿勢を対応付けて記憶することが記載されている。特許文献４には、画像の撮影地点にサムネイル画像を配置した仮想空間画像を提供する技術が記載されている。特許文献５には、視線によるユーザの選択操作に基づいてユーザの視点位置を変更することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３０８５１４号公報
【特許文献２】特開２００３−２４０５３２号公報
【特許文献３】特開２００５−２６０７２４号公報
【特許文献４】特開２０１０−９３７１３号公報
【特許文献５】特開２００８−２９３３５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数人でＭＲを体験する場合、他者が見ていた場所や物を見たい場面が想定される。例えば、記録された複合現実画像に対応する位置を指定することで、当該指定された仮想空間上の位置に自身の視点位置を移動させ、他者が撮影時点で見ていたＣＧモデルを、他者が見ていた場所から確認できると考えられる。
【０００７】
複合現実の場合、体験者の身長や体勢によってＨＭＤの高さが変わる。上記の方法では、移動直後の体験者の頭の位置に移動先にあるＣＧモデルが重なってしまうような場合、体験者はＣＧによっていきなり視界を塞がれてしまうため、自身の状態を把握できなくなり混乱してしまうことがある。
【０００８】
例えば、ＣＧの部屋において、天井が低いために座った状態で撮影された複合現実画像の位置に、立った状態で視点移動した場合、移動した直後は体験者の視点は天井の中に入り込んでしまい所望のＣＧモデルを見つけ難い。
【０００９】
本発明は、適切な位置にユーザの視点を移動させることが可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、装着型の表示装置のユーザの視点を示す仮想空間の視点位置と姿勢を記憶する位置姿勢記憶手段と、仮想オブジェクト及び前記仮想オブジェクトの仮想空間における位置姿勢を記憶する仮想オブジェクト記憶手段と、前記表示装置の位置姿勢と前記仮想オブジェクトの位置姿勢に基づいて、前記表示装置の視点から見た場合の前記仮想オブジェクトの画像を生成する生成手段と、を備える情報処理装置であって、前記表示装置のユーザの現在の視点位置を、前記位置姿勢記憶手段に記憶されている過去の位置に移動する指示を受け付ける移動指示受付手段と、前記移動指示受付手段により視点位置の移動指示を受け付けた場合に、前記移動指示を受け付けた前記過去の位置から所定距離離れた位置を、前記視点位置の移動先の位置として決定する決定手段と、前記決定手段により決定された位置に、前記表示装置の仮想空間における視点位置を移動させるべく変更する変更手段と、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、適切な位置にユーザの視点を移動させることが可能な仕組みを提供することが可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態における、情報処理システム構成図の一例を示す図である。
【図２】本発明の実施形態における、各種装置のハードウェア構成の一例を示す図である。
【図３】本発明の実施形態における、各種装置の機能構成の一例を示す図である。
【図４】本発明の実施形態における、各種装置のモジュール構成の一例を示す処理図である。
【図５】本発明の実施形態における、複合現実画像の生成及び表示処理の一例を示す処理図である。
【図６】本発明の実施形態における、各種データ構成の一例を示す図である。
【図７】本発明の実施形態における、現実空間及び仮想空間におけるカメラの様子と、ＭＲ画像の一例を示す図である。
【図８】本発明の実施形態における、撮影画像の記録処理の流れを示すフローチャートである。
【図９】本発明の実施形態における、視点移動の処理の概要を示すフローチャートである。
【図１０】本発明の実施形態における、視点移動先の位置決定及び案内処理の流れを示すフローチャートである。
【図１１】本発明の実施形態における、各種データ構成の一例を示す図である。
【図１２】本発明の実施形態における、視点移動の様子とＭＲ画像の一例を示す図である。
【図１３】従来の、直接撮影場所に視点移動した場合の様子とＭＲ画像の一例を示す図である。
【図１４】本発明の実施形態における、視点移動の様子の一例を示す図である。
【図１５】本発明の実施形態における、画像の撮影場所における案内処理の流れを示すフローチャートである。
【図１６】従来の、撮影場所でのユーザの様子とＭＲ画像の一例を示す図である。
【図１７】本発明の実施形態における、画像の撮影場所における案内の様子を示す図である。
【図１８】ＨＭＤの方向、角度の例を示す図である。
【発明を実施するための形態】
【００１３】
図１を参照して、本発明の実施形態における情報処理システムの構成の一例について説明する。
【００１４】
図１に示すように、本発明における情報処理システムの各種装置はネットワーク１５０を介して通信可能に接続されている。例えばＰＣ１００は、ＨＭＤ１０１（ＨＭＤ１０１Ａ〜ＨＭＤ１０１Ｃの総称）と通信可能に接続されている。ＨＭＤ１０１は、頭部装着型のディスプレイ（ヘッドマウントディスプレイ）である。
【００１５】
ＰＣ１００には、ＨＭＤ１０１により撮影される現実画像に重畳する３次元モデル（ＣＧモデル／仮想オブジェクト／仮想物体）が記憶されている。
【００１６】
また、ＰＣ１００は、自機の管理するＨＭＤ１０１（図１におけるＨＭＤ１０１Ａ〜１０１Ｃ）より現実画像を取得して、記憶部に記憶する。また、ＰＣ１００はＨＭＤ１０１の位置姿勢を特定し、記憶する。ＨＭＤ１０１の位置姿勢の特定方法は、特許文献１に記載されている、ＨＭＤ１０１の撮影した現実画像中の二次元マーカを用いて特定可能である。また、特許文献２に記載されている、センサ（図１における光学センサ１０４）がＨＭＤ１０１に設置された光学式マーカの位置姿勢をＨＭＤ１０１の位置姿勢として検出し、それをＰＣ１００が取得することで特定可能である。本実施形態においては、特許文献２に記載の方法用いてＨＭＤ１０１の位置姿勢を特定するものとする。
【００１７】
ＰＣ１００では、ＨＭＤ１０１の位置姿勢と、記憶部に記憶されている３次元モデル及び３次元モデルの位置姿勢の情報を用いて、現実画像に３次元モデルを重畳した複合現実画像を生成する。そして、当該複合現実画像をＨＭＤ１０１のディスプレイに表示させるべく、ＨＭＤ１０１に送信する。ＨＭＤ１０１は受信した複合現実画像をディスプレイに表示する。以上が図１の説明である。
次に図２を参照して、本発明の実施形態における、各種装置のハードウェア構成の一例について説明する。
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００１８】
また、ＲＯＭ２０２には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステム（ＯＳ）、その他各種装置の実行する機能を実現するために必要な各種プログラムが記憶されている。
【００１９】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２０】
本発明のＰＣ１００が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイス（入力デバイス２０９）からの入力を制御する。
【００２１】
また、入力デバイス２０９がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下（指等でタッチ）することにより、各種の指示を行うことができることとする。なお、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよいこととする。
【００２２】
ビデオコントローラ（ＶＣ）２０６は、ＨＭＤ１０１が備える右目・左目ディスプレイ２２２等の表示器への表示を制御する。右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。また、右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、入力コントローラ（入力Ｃ）２０５は、ＰＣ１００の備えるディスプレイ２１０（ＣＲＴディスプレイ等）の表示器への表示を制御する。なお、図２では、表示器はＣＲＴディスプレイだけでなく、液晶ディスプレイ等の他の表示器であってもよい。
【００２３】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２４】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また、通信Ｉ／Ｆコントローラ２０８は、ギガビットイーサネット（登録商標）等を通じて光学センサ１０４との通信も制御する。
【００２５】
汎用バス２１２は、ＨＭＤ１０１の右目・左目ビデオカメラ２２１からの映像を取り込むために使用される。右目・左目ビデオカメラ２２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００２６】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。以上が図２の説明である。
【００２７】
次に図３を参照して、本発明の実施形態における各種装置の機能構成の一例について説明する。
【００２８】
撮影画像送信部３０１は、カメラで撮影した撮影画像（現実画像）をＰＣ１００に送信する。
【００２９】
撮影画像受信部３１１は、撮影画像を受信して随時ＲＡＭ上に記憶する。位置姿勢記憶部３１２は、光学センサにより取得したＨＭＤ１０１の位置姿勢を記憶する。
【００３０】
ＭＲ画像生成部３１３は、現実に仮想物体の画像を重畳した重畳画像であるＭＲ画像を生成する。ＭＲ画像送信部３１４は、生成したＭＲ画像をＨＭＤ１０１において表示させるべく出力する。
【００３１】
ＭＲ画像記憶部３１５は、ＨＭＤ１０１に設置されている不図示のレリーズボタンの押下を受け付けることにより、ＨＭＤ１０１で表示中のＭＲ画像を、レリーズボタン押下時のＨＭＤ１０１の位置姿勢と対応付けて外部メモリに記憶する。レリーズボタンの押下＝表示中のＭＲ画像の撮影及び保存指示である。
【００３２】
ＭＲ画像一覧表示部３０２は、ＭＲ画像記憶部３１５に記憶されているＭＲ画像の一覧を選択可能に表示する。
【００３３】
ＭＲ画像選択受付部３１６は、ＭＲ画像一覧表示部３０２によりＨＭＤ１０１に表示されたＭＲ画像の一覧から、ＭＲ画像の選択を受け付ける。例えばＨＭＤ１０１に設置されているボタンを複数回押下することで選択中のＭＲ画像を切り替え、ボタンの長押しを受け付けることでＭＲ画像の選択確定をする。
【００３４】
撮影場所特定部３１７は、選択確定したＭＲ画像の撮影指示がされた場所（位置）を特定する。移動先決定部３１８は、特定した撮影場所から所定距離又は時間離れた場所を、ＨＭＤ１０１の視点を移動させる位置として決定する。
【００３５】
視点移動処理部８１９は、移動先決定部３１８によって決定された位置に、ＨＭＤ１０１の視点を移動させる。
【００３６】
視点を移動させるとは、現実空間におけるＨＭＤ１０１の動きと連動して移動・方向転換する仮想空間上の仮想のカメラの位置を、他の仮想空間上の位置に移動させるということである。
【００３７】
現実空間のＨＭＤ１０１の視点が移動するわけではなく、仮想空間上の仮想の視点が移動だけであるため、現実の映像に重畳する仮想物体（ＣＧ）の表示のみが移動先の位置から見た仮想物体の表示に変更されることとなる。
【００３８】
ＭＲ画像送信部３１４は、視点移動後のＭＲ画像を生成してＨＭＤ１０１に送信する。
【００３９】
ＭＲ画像受信部３０３は、当該ＭＲ画像を受信し、表示部３０４は当該ＭＲ画像を表示する。
【００４０】
なお、本実施形態においては、３１１〜３１９の各機能部の備える機能をＰＣ１００が備えているが、例えばこれらの構成をＨＭＤ１０１が備えるよう構成してもよいものとする。以上が図３の説明である。
【００４１】
次に図４を参照して、本発明の実施形態における、各種装置のモジュール構成の一例について説明する。
【００４２】
ＰＣ１００は、オペレーティングシステム４０１（ＯＳ）、グラフィックエンジン４０２、複合現実感プラットフォーム４０３（ＭＲプラットフォームともいう）、複合現実感アプリケーション４０４（ＭＲアプリケーションやビューアアプリケーションともいう）で構成され、ＣＰＵ２０１により制御されている。
【００４３】
オペレーティングシステム４０１は、ＨＭＤ１０１の入出力を制御しカメラ２２１から入力インターフェースを介して得られた現実画像を複合現実感プラットフォーム４０３へ受け渡す。またグラフィックエンジン４０２で描画された複合現実画像を、出力インターフェースを介して、ディスプレイ２２２へ出力する。
【００４４】
グラフィックエンジン４０２は、外部メモリ２１１に記憶されている３次元モデルから描画する画像を生成し、現実画像に重畳し、合成する。描画に利用するエンジンは、例えば、ＯｐｅｎＧＬやＤｉｒｅｃｔＸなどの広く利用されているグラフィックエンジンでも、独自に開発したグラフィックエンジンでもよい。なお、本実施形態ではグラフィックライブラリとしてＯｐｅｎＧＬを利用するものとする。
【００４５】
複合現実感プラットフォーム４０３は、光学センサ１０４からＨＭＤに付与された複数の光マーカの位置姿勢を受信することでＨＭＤ１０１の位置姿勢を特定し、現実空間と仮想空間の位置合わせを行う。
【００４６】
なお、位置姿勢や位置合わせの技術は、既知の技術として開示されている、特開２００２−３２７８４、特開２００６−０７２９０３、特開２００７−１６６４２７等を用いて実現することが可能である。
【００４７】
なお、二次元マーカを使用せずに、ＨＭＤ１０１に位置センサを備え、この位置センサを用いて三角測量により計測された位置をもとに、ＨＭＤ１０１の位置や姿勢を特定して実現することも可能である。
【００４８】
複合現実感アプリケーション４０４は、複合現実感プラットフォーム４０３からＨＭＤ１０１の位置姿勢、３次元モデルの形状の情報、位置姿勢の情報を受け付け、グラフィックエンジン４０２に対して、３次元モデルの描画命令を発行する。この時、ＯｐｅｎＧＬのＡＰＩを用いて、描画する３次元モデルの識別情報、位置姿勢の情報を設定した命令を発行する。以上が図４の説明である。
【００４９】
次に図５を参照して、本発明の実施形態における複合現実画像の生成及び表示処理について説明する。
【００５０】
ＨＭＤ１０１は、不図示のユーザ操作を受け付けることにより、ステップＳ５０１で複合現実アプリケーション起動し、カメラ２２１の機能を用いて現実画像の撮影を開始する（ステップＳ５０２）。そして、撮影処理によって取得した現実画像をＰＣ１００に送信する（ステップＳ５０３）。
【００５１】
当該複合現実アプリケーションの起動及び撮影開始は、例えばＰＣ１００におけるユーザ操作を受け付けることによっても実行可能である。
【００５２】
ＰＣ１００のＣＰＵ２０１はＨＭＤ１０１より現実画像を受信し（ステップＳ５０４）、受信した現実画像を外部メモリ２１１に記憶する（ステップＳ５０５）。例えば、図６の現実画像テーブル６３０に示すように、現実画像の送信元のＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ６３１と、現実画像６３２とを対応付けて記憶する。
【００５３】
ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１の位置姿勢を取得して（ステップＳ５０６）、外部メモリ２１１に記憶する（ステップＳ５０７）。例えば、図６のＨＭＤ情報６１０に示すように、ＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ６１１と、当該ＨＭＤの位置６１２（Ｘ，Ｙ，Ｚ座標）、姿勢（方向６１３及び角度６１４）を記憶する。
【００５４】
方向６１３及び角度６１４の例を図１８に示す。方向６１３は、ＨＭＤ１０１の視線方向である。方向６１３は、図１８の１８００に示すように、３次元空間のＸＹＺ方向の軸に基づく球１８０１上の、視線方向と交差する点のＸＹＺ座標によって示される。
【００５５】
角度６１４は、図１８の１８１０に示すような、ＨＭＤ１０１の左右の傾きの角度である。ＨＭＤ１０１が床面と平行な状態を角度６１４＝０度とする。ＨＭＤ１０１を装着した状態で頭部を左に傾けると＋ｎ度となり、ＨＭＤ１０１を装着した状態で頭部を右に傾けると−ｎ度となる。
【００５６】
ＰＣ１００のＣＰＵ２０１は、外部メモリ２１１から仮想物体（ここでは３Ｄモデル）の情報を取得し、ＨＭＤ１０１から受信した現実画像に重畳して複合現実画像を生成して（ステップＳ５０８）、ＨＭＤ１０１に送信する（ステップＳ５０９）。
【００５７】
３Ｄモデルの情報は、例えば図６のモデル情報６２０に示す情報である（仮想オブジェクト記憶手段に該当）。モデル情報６２０は、予めＰＣ１００の外部メモリ２１１に記憶されている情報である。モデルＩＤ６２１は３Ｄモデルの識別情報である。
【００５８】
モデル名６２２は、３Ｄモデルのファイル名である。ファイルパス６２３は、ファイルが記憶されている場所を示す。位置６２４、姿勢（方向６２５、角度６２６）は、３Ｄモデルの位置姿勢を示す。
【００５９】
ＰＣ１００のＣＰＵ２０１は、ＨＭＤの現在の位置姿勢から、ＨＭＤ１０１と同じ画角を持つカメラが、モデル情報６２０の位置姿勢の３Ｄモデルを撮影した場合の、当該３Ｄモデルの画像を描画データ６４０として生成する。一例として、レンダリング済みのモデル画像とする。
【００６０】
そして、当該描画データを現実画像と合成することで、図６のＭＲ画像テーブル６５０に示すＭＲ画像（複合現実画像）を生成する。ＭＲ画像は、現実に仮想物体の画像を重畳した重畳画像である。
【００６１】
図７に現実空間及び仮想空間におけるカメラの様子と、ＭＲ画像の一例を示す。図７において、７００は現実空間、７１０は仮想空間、７２０は現実空間と仮想空間を複合した複合現実空間（ＭＲ空間）である。
【００６２】
現実空間７００と仮想空間７１０は、例えば同じ大きさの空間であり、７０３を原点として位置合わせがされている。つまり、現実空間における位置（ＸＹＺ座標）及び姿勢と、仮想空間における位置姿勢は同じである。
【００６３】
現実空間７００においてＨＭＤ１０１の位置姿勢が光学センサ１０４によって特定される。７０２は現実物体であり、７００においてはＨＭＤ１０１のカメラ装置によって現実物体７０２の一部が撮影されている。撮影された現実画像（図６の６３２）の一例を７０１に示す。
【００６４】
仮想空間７１０において、仮想カメラ７１３は、ＨＭＤ１０１の現実空間上の位置姿勢と同じ仮想空間上の位置姿勢で、仮想空間上に仮想的に配置される。仮想カメラはＨＭＤ１０１ごとに対応づけられて存在する。
【００６５】
ＨＭＤ１０１のカメラ装置と仮想カメラ７１３の画角は同じである。ＰＣ１００のＣＰＵ２０１は、仮想カメラ７１３の位置姿勢を、ＨＭＤ１０１の現実空間上の位置姿勢に連動させて変更する。
【００６６】
仮想カメラ７１３は、仮想空間７１０の画像（動画）を撮影している。例えば仮想空間７１０には仮想物体７１２が配置されており、ＨＭＤ１０１と同じ位置姿勢の仮想カメラ７１３は、仮想物体７１２を撮影している。７１１は仮想カメラ７１３が仮想空間７１０を撮影した仮想画像であり、７１１における７１２は、描画データ６４０の一例である。
【００６７】
ＰＣ１００のＣＰＵ２０１は、現実画像７０１と仮想画像７１１（仮想画像７１１の中の描画データ）を重畳して、ＭＲ画像７２１（複合現実画像）を生成する。
【００６８】
また、ＭＲ画像テーブル６５０の、ＭＲ画像を生成するために用いた現実画像の送信元のＨＭＤ（ＨＭＤ  ＩＤ６５１）と対応付けて記憶する。その後、ＨＭＤ  ＩＤ６５１の示すＨＭＤ１０１に、複合現実画像６５２を送信する（ステップＳ５０９）。
【００６９】
ＨＭＤ１０１は、ＰＣ１００から複合現実画像を受信し（ステップＳ５１０）、表示画面に表示する（ステップＳ５１１）。ＨＭＤ１０１及びＰＣ１００は、複合現実アプリケーションの終了指示を受け付けるまで、ステップＳ５０２〜Ｓ５１１の処理を繰り返し実行する。以上が図５の説明である。
【００７０】
次に図８を参照して、本発明の実施形態における、撮影画像の記録処理の流れについて説明する。
【００７１】
ステップＳ８０１では、ＰＣ１００のＣＰＵ２０１は指示を受け付け、受け付けた指示がＨＭＤ１０１に表示中のＭＲ画像の撮影・保存指示か判定する。
【００７２】
例えば、ＨＭＤ１０１に設置された不図示のレリーズボタンの押下を受け付けた旨をＰＣ１００が検知した場合に、ＨＭＤ１０１に表示中の画像の保存指示を受け付けたと判定する。ここでいう表示中の画像とはサーバ２００によって生成されたＭＲ画像である。
【００７３】
ここでは、画像の保存の操作（レリーズボタンの押下）を受け付けたのはＨＭＤ１０１Ａであるものとする。
【００７４】
画像の保存指示を受け付けた場合、ＰＣ１００のＣＰＵ２０１は、ステップＳ８０２で保存指示がされた時点でＨＭＤ１０１に表示していた画像を、保存指示がされた時点のＨＭＤ１０１の位置姿勢と対応付けて記憶する。
【００７５】
保存指示された画像は、共有画像情報１１００に記憶されることで他のＨＭＤ１０１からも参照可能となる。つまり、複数のＨＭＤ１０１によって共有される共有画像として記憶される（撮影画像記憶手段に該当）。
【００７６】
例えば、図１１の共有画像情報１１００に撮影した画像の情報を記憶する。画像ＩＤ１１０１には、ステップＳ８０２で画像の保存指示がされた時点でＨＭＤ１０１に表示していたＭＲ画像を記憶する。撮影者１１０２には、画像の保存指示がされた、画像ＩＤ１１０１の画像を表示していたＨＭＤのＩＤを記憶する。また、画像の撮影日時を、撮影日時１１０６に記憶する。
【００７７】
ステップＳ８０３で、ＰＣ１００のＣＰＵ２０１は、当該画像と対応付けて、ＨＭＤ１０１の画像撮影当初の位置姿勢を、共有画像情報１１００の１１０３〜１１０５に記憶する。
【００７８】
位置１１０３には、画像の保存指示がされた時点の、撮影者１１０２の示すＨＭＤ１０１の位置を記憶する。
【００７９】
方向１１０４、角度１１０５には、画像の保存指示がされた時点の、撮影者１１０２の示すＨＭＤ１０１の向いている方向と、角度を記憶する。以上が図８の説明である。
【００８０】
次に図９を参照して、本発明の実施形態における、視点移動の処理の概要について説明する。
【００８１】
ステップＳ９０１では、ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１に設置された不図示のボタンの押下を受け付けることで、共有画像情報１１００に記憶されているＭＲ画像のデータ（共有画像の情報）をメモリから取得し、当該ボタンの押下を受け付けたＨＭＤ１０１に一覧表示する。
【００８２】
ステップＳ９０２で、ＰＣ１００のＣＰＵ２０１は、共有画像の選択を受け付ける。例えばＨＭＤ１０１に設置されているボタンを複数回押下することで選択中の共有画像を切り替え、ボタンの長押しを受け付けることで共有画像の選択確定をする。
【００８３】
ここでは、当該共有画像の選択を行ったのはＨＭＤ１０１Ｂであるものとする。
【００８４】
共有画像の選択決定は、選択された共有画像の撮影位置への視点の移動指示である（移動指示受付手段に該当）。
【００８５】
ＰＣ１００のＣＰＵ２０１は、ステップＳ９０３で、視点移動先の位置決定及び案内処理を実行し、ステップＳ９０４で、撮影場所における案内処理を行う。
【００８６】
視点移動先の位置決定及び案内処理の詳細は図１０の説明で後述する。
【００８７】
撮影場所における案内処理の詳細は図１５の説明で後述する。以上が図８の説明である。
【００８８】
図１０を参照して、本発明の実施形態における、視点移動先の位置決定及び案内処理について説明する。
【００８９】
ステップＳ１００１では、ＰＣ１００のＣＰＵ２０１は、ステップＳ９０２で選択を受け付けた共有画像を撮影したＨＭＤ１０１を特定する。つまり、選択された画像の画像ＩＤ１１０１に対応する撮影者１１０２を特定する。
【００９０】
そして、当該撮影者１１０２の位置姿勢の履歴（過去の位置姿勢の情報）をメモリより取得する。つまり、当該撮影者１１０２と同じＩＤを持つ撮影者１１１１（ここではＨＭＤ１０１Ａとする）の位置姿勢履歴１１１０を取得する。
【００９１】
ステップＳ１１０２で、ＰＣ１００のＣＰＵ２０１は、ステップＳ１００１で取得した位置姿勢履歴の示す位置１１１２の履歴の中から、共有画像を選択したＨＭＤ１０１Ｂのユーザの視点を移動する移動先の位置を選出し、決定する。
【００９２】
視点の移動処理とは、図１２に示すように、ＨＭＤ１０１Ｂに対応する仮想カメラ７１３の位置を、仮想空間において移動させる処理である。
【００９３】
選択された共有画像の位置に視点を移動させることで、視点を移動したユーザは、共有画像を撮影したユーザが見ていた仮想物体と同じ仮想物体を見ることができる。
【００９４】
なお、ＨＭＤ１０１を装着するユーザによって身長は異なると考えられる。身長１７０ｃｍのユーザの視点を身長１５０ｃｍのユーザの視点に変更すると、仮想空間における地面と視点位置との距離が短くなるため（仮想空間における視点位置が低くなるため）、ユーザが現実空間において歩いている地面と視点との距離と、仮想空間における地面と視点との距離に差が生じてしまい、ユーザに違和感を与えてしまう。
【００９５】
また、図１３の１３００に示すように、ユーザが屈んだ状態保存した共有画像１３０２を選択し、その位置に視点を移動する場合、屈んだ状態の視点の高さに、立った状態のユーザの視点の高さを合わせてしまうと、ユーザに違和感を与えてしまう。
【００９６】
よって、視点の移動は、仮想カメラの地面に対して平行な方向（ＸＹ軸方向）に対してのみ行うものとする。高さ方向（Ｚ軸方向）に対する、地面から視点位置までの距離の変更・移動は行わない。
【００９７】
しかし、高さ方向の位置の変更を行わないまま、ＨＭＤ１０１Ｂのユーザの視点を、撮影場所の位置に直接移動してしまうと、移動直後にＨＭＤ１０１に表示される画像は、必ずしも選択された共有画像とは一致しない。
【００９８】
例えば図１３においては、視点を移動したユーザの視界が仮想物体１３０１に覆われてしまっている。共有画像の撮影時とは異なる画像１３１１が目前に表示されてしまっており、視点を移動したユーザが混乱してしまうことが考えられる。
【００９９】
よって、本実施形態においては、共有画像の位置から離れた位置を、視点の移動先として決定する。例えば、共有画像の撮影場所から、所定距離以上離れた位置を、移動先の位置として決定する。
【０１００】
本実施形態における所定距離は５ｍであるものとする。当該所定距離の情報はＰＣ１００の外部メモリに予め記憶されており、ユーザ操作により任意に設定・変更可能である。
【０１０１】
具体的には、ＰＣ１００のＣＰＵ２０１は、ステップＳ１００２において、選択された共有画像の撮影日時１１０６より前のＨＭＤ１０１Ａの位置姿勢履歴１１１０の中から、撮影時点の位置１１０３より５ｍ以上離れた位置１１０３のレコードを抽出し、撮影日時１１０６に最も近い日時の位置を取得して、当該取得した位置をＨＭＤ１０１Ｂの視点の移動先の位置として決定し、ＨＭＤ１０１Ｂの視点位置（ＨＭＤ１０１Ｂに対応する仮想カメラの位置）を当該移動先の位置に変更する。
【０１０２】
なお、移動後のユーザの視線方向（仮想カメラの方向）は、共有画像が撮影された時点の、ＨＭＤ１０１Ａが当該共有画像を撮影した時点の方向とする決定を行う。また、角度はＨＭＤ１０１Ｂの角度をそのまま適用するものとする。
【０１０３】
ステップＳ１００３では、ＰＣ１００のＣＰＵ２０１は、ステップＳ１００１で取得したＨＭＤ１０１Ａの位置姿勢履歴１１１０を参照して、視点の移動先の位置から撮影場所までの経路を可視化した仮想物体である経路モデルを生成し、位置決定する。
【０１０４】
経路モデルの一例を図１４の１４２１及び１４２２に示す。ＰＣ１００のＣＰＵ２０１は、移動先に決定された位置１１０３を持つＨＭＤ１０１Ａの位置姿勢履歴１１１０のレコードから、撮影日時１１０６までのＨＭＤ１０１Ａの位置姿勢履歴１１１０のレコードを抽出する。
【０１０５】
ＰＣ１００のＣＰＵ２０１は、移動先の位置のレコードより後の日時のレコードで、移動先の位置から所定距離（例えば５０ｃｍ）以上離れた直近のレコードを抽出して位置を特定する。また、当該抽出した位置のレコードより後の日時のレコードで、当該位置から所定距離以上離れた直近のレコードを抽出して位置を特定する。当該位置の特定処理を、特定される位置が撮影場所の位置から所定距離内（例えば５０ｃｍ以内）になるまで繰り返す。
【０１０６】
ＰＣ１００のＣＰＵ２０１は、特定したそれぞれの位置に、図１４の１４２１に示す経路モデルの一部となる仮想物体をそれぞれ配置する。つまり、１４２１の位置を、特定したそれぞれの位置に決定する。
【０１０７】
また、移動先の位置の位置から撮影場所までに特定した１４２１の位置を撮影日時１１０６の順に繋ぐ経路モデル１４２２を生成して配置する。つまり、１４２２の位置を、移動先の位置の位置から撮影場所までに特定した各位置を始点及び終点とする位置に決定する。
【０１０８】
ＰＣ１００のＣＰＵ２０１は、図５のステップＳ５０８で、ＨＭＤ１０１Ｂのカメラ装置によって撮影されている最新の現実画像と、移動先の位置（１４２１と同じＸＹ座標の位置）及び姿勢から撮影した仮想画像とを合成し、複合現実画像を生成して記憶する。
【０１０９】
移動先の位置に移動後のユーザの視点における複合現実画像の一例を図１４の１４２４に示す。
【０１１０】
ＰＣ１００のＣＰＵ２０１は、図５のステップＳ５０９で、当該複合現実画像をＨＭＤ１０１Ｂに送信し、ＨＭＤ１０１Ｂが当該複合現実画像を受信して表示する（案内表示制御手段に該当）。以上が図１０の説明である。
【０１１１】
図１０の発明によれば、適切な位置にユーザの視点を移動させることが可能な仕組みを提供することができる。
【０１１２】
例えば、撮影場所に移動した場合に、ユーザの視界が確保できるか否かに応じて、適切な位置にユーザの視点を移動させるようにしてもよい。
【０１１３】
具体的には、ステップＳ１００１の次に、ＨＭＤ１０１Ｂ（共有画像の選択を受け付けたＨＭＤ）の地面高さ方向の位置（仮想空間における床からの高さ）を取得する。そして、取得した高さを維持したまま、撮影場所にＨＭＤ１０１Ｂのユーザの視点が移動した場合に、移動したユーザの視点位置と仮想物体が重なるか判定する。つまり、移動後のユーザの視点位置付近に仮想物体が位置するか判定する（仮想オブジェクト位置判定手段に該当）。
【０１１４】
移動したユーザの視点位置と仮想物体が重なる場合は、共有画像選択後にいきなり撮影場所に視点を移動させると例えばユーザの視界いっぱいに仮想物体が広がることとなり視界が十分に確保できないと判断し、処理をステップＳ１００２に進める。
【０１１５】
一方、移動したユーザの視点位置と仮想物体が重ならない場合は、共有画像選択後にいきなり撮影場所に視点を移動させた場合であっても、ユーザの視界を十分に確保でき、移動直後にユーザの混乱を引き起こす可能性が低いと判断し、選択された共有画像の撮影場所を視点を移動させる位置として決定し、視点を移動させる処理を実行する。
【０１１６】
ここでは、移動したユーザの視点位置と仮想物体が重なるか判定するものとしたが、例えば、移動後のユーザの視点位置から所定距離内（所定範囲内）に仮想物体があるか判定し、所定距離内に仮想物体がある場合には移動後のユーザの視界を十分に確保できないと判断し、処理をステップＳ１００２へ、所定距離内に仮想物体がない場合には移動後のユーザの視界を十分に確保できると判断し、撮影場所にユーザの視点位置を移動させる処理を行うようにしてもよい。
【０１１７】
また、例えば、選択された共有画像の撮影された高さとユーザの視点位置の高さに応じて、適切な位置にユーザの視点を移動させるようにしてもよい。
【０１１８】
具体的には、ステップＳ１００１の次に、ＨＭＤ１０１Ｂ（共有画像の選択を受け付けたＨＭＤ）の地面高さ方向の位置（仮想空間における床からの高さ）を取得する。そして、選択された共有画像の撮影時の高さ方向の位置（床からの高さ）を取得する。
【０１１９】
この２つの高さ方向の位置に所定距離以上開きがある場合、つまり、撮影時の高さと移動後のユーザの視点位置の高さに所定以上差がある場合、共有画像選択後にいきなり撮影場所に視点を移動させると、ユーザは撮影場所に移動していると認識しているにもかかわらず、共有画像と移動後の視界の画像に差があり混乱を生じさせてしまう。
【０１２０】
よって、ＰＣ１００のＣＰＵ２０１は、ステップＳ１００１の後、共有画像撮影時の高さ位置と、移動先への移動指示をしたユーザの視点の高さ位置との間が所定距離以上離れているか判定し（高さ位置判定手段に該当）、所定距離以上離れていると判定した場合には、移動後のユーザの混乱を軽減すべく、処理をステップＳ１００２に移行する。
【０１２１】
所定距離以上離れていないと判定した場合には、視点位置を撮影場所に直接移動した場合であっても混乱は少ないと判断し、指定された共有画像の撮影場所を移動先として決定し、当該撮影場所にユーザの視点位置を移動させる処理を行う
【０１２２】
また、例えば、ユーザに応じて、適切な位置にユーザの視点を移動させるようにしてもよい。
【０１２３】
例えば、共有画像の撮影者と、共有画像を選択したユーザの身長が近い場合、当該ユーザの視点を撮影場所に直接移動しても、子どもと大人のように身長差が激しいユーザ同士に比べて移動後に見える景色は撮影者と近いと考えられるため、撮影者と移動したいユーザの組み合わせによっては、撮影場所に直接視点を移動させてもよい。
【０１２４】
例えば、ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１Ａ、ＨＭＤ１０１Ｂ、ＨＭＤ１０１Ｃの各ユーザの視点位置の高さの情報を、ＨＭＤ１０１ごとに予め記憶しておく。例えば、ＨＭＤ１０１を装着し、ステップＳ５０１で複合現実アプリケーションを起動して、ＨＭＤ１０１を装着したユーザがＭＲの体験を開始した時点の高さ位置をＨＭＤ１０１のＩＤと対応付けて記憶しておく。ここでは、複合現実アプリケーション起動時においてユーザは起立しているものとする。
【０１２５】
また、高さ位置が記憶された時点で、当該ＨＭＤ１０１のユーザと身長の近いユーザをグルーピングして記憶する。例えば視点の高さが１５６〜１６５ｃｍを同一グループとし、１６６〜１７４ｃｍを同一グループとして登録する。
【０１２６】
ＰＣ１００のＣＰＵ２０１は、ステップＳ１００１の後、ＨＭＤ１０１ＡのＩＤを取得し、ＨＭＤ１０１ＢのＩＤを取得する。ＨＭＤ１０１ＡとＨＭＤ１０１Ｂが同一のグループに属しているか判定し、同一のグループに属していない場合は処理をステップＳ１００２に移行し、同一のグループに属している場合は、ＨＭＤ１０１Ｂの視点位置を撮影場所に直接移動する。
【０１２７】
つまり、撮影者と撮影場所に移動したいユーザの組み合わせによって（選択された共有画像のユーザが所定のユーザである場合に）、撮影場所に直接視点を移動させるべき組み合わせか否かを判定し、撮影場所に直接視点を移動させるべき組み合わせの場合にはＨＭＤ１０１Ｂの視点位置を撮影場所に直接移動させ、撮影場所に直接視点を移動させるべき組み合わせでない場合には処理をステップＳ１００２に移行する。
【０１２８】
なお、上述した実施形態においては、共有画像として記憶するデータは静止画である画像として説明したが、例えば動画像であってもよい。動画の撮影場所＝動画の撮影が開始された時点（録画開始時点）の撮影者のＨＭＤの位置とする（動画記憶手段に該当）。
【０１２９】
よって、動画である共有画像の選択を受け付けた場合、ステップＳ１００２では、動画の撮影開始時点の場所より所定距離離れた位置を移動先として決定する。
【０１３０】
また、上述した実施形態においては、撮影場所から所定距離離れた位置を移動先の位置として決定したが、これは床と水平方向の距離である。
【０１３１】
また、例えば、撮影場所から所定距離以上移動した場所を、撮影場所から所定距離離れた位置とし、移動先として決定してもよい。
【０１３２】
具体的には、撮影者（ＨＭＤ１０１Ａ）の位置姿勢の履歴を取得し、共有画像の撮影時の位置から、１つ前のレコードの位置までの距離を取得する。また、当該取得した１つ前の更に１つ前のレコードを取得し、レコード間の距離を取得する。このレコードの取得及び距離の加算処理を繰り返していき、加算していった距離の合計が所定距離に達した場合に、取得した最後のレコードの位置を移動先の位置として決定する。
【０１３３】
つまり、撮影場所までの撮影者の移動経路及び距離を所定距離分だけ遡った位置を移動先の位置として決定する。
【０１３４】
以上説明したように、本発明によれば、適切な位置にユーザの視点を移動させることが可能な仕組みを提供することができる。
【０１３５】
次に図１５を参照して、本発明の実施形態における、画像の撮影場所における案内処理の流れについて説明する。
【０１３６】
例えば図１６の１６００に示すようにＨＭＤ１０１Ａのユーザが、１１０１の仮想物体を見て、１６０２に示す画像を撮影して共有画像として記憶したとする。
【０１３７】
共有画像を選択したＨＭＤ１０１Ｂのユーザは１６１０に示すように、仮想物体１３０１に視界を覆われてしまい、１６１１のような画像を見ることになる。よって自分がどこにいるのか分からなくなり、混乱してしまう。
【０１３８】
また、たとえ仮想物体１３０１から頭部を抜け出し、画像が撮影された場所により近付いたとしても、１６２０に示すように、周囲の状況が分からず、共有画像がどこを撮影したものなのか分からなくなることがある。
【０１３９】
また、撮影場所までの経路案内を受けた場合であっても、例えば１６２０に示すように物体が多数配置されている場合は、共有画像がどのような姿勢で撮影されたのか分かり難いことがある。
【０１４０】
図１５の処理によれば、撮影場所に近付いたユーザに対して、撮影された画像の撮影時の姿勢を案内することができる。
【０１４１】
ステップＳ１５０１で、ＰＣ１００のＣＰＵ２０１は、ステップＳ９０２で選択を受け付けた共有画像の撮影者の、撮影時点の位置姿勢を取得する。
【０１４２】
ステップＳ１５０２で、ＰＣ１００のＣＰＵ２０１は、各ＨＭＤ１０１の現在の位置姿勢を取得し、ステップＳ１５０３で、当該撮影場所に近いＨＭＤ１０１があるか判定する。つまり、撮影場所から所定距離内にいるＨＭＤ１０１が存在するか判定する。
【０１４３】
撮影場所に近いＨＭＤ１０１がない場合は図１５の処理を終了する。撮影場所に近いＨＭＤ１０１がある場合は処理をステップＳ１５０４に移行する。
【０１４４】
ステップＳ１５０４で、ＰＣ１００のＣＰＵ２０１は、撮影場所に近い位置にあるＨＭＤ１０１が、撮影場所の指定を受け付けたＨＭＤ１０１（本実施形態におけるＨＭＤ１０１Ｂ）か判定する。
【０１４５】
撮影場所に近い位置にあるＨＭＤ１０１が撮影場所の指定を受け付けたＨＭＤ１０１である場合（例えばＨＭＤ１０１Ｂである場合）は、当該ＨＭＤ１０１の装着者であるユーザに撮影時の姿勢の案内をすべく、処理をステップＳ１５０５に移行する。撮影場所に近い位置にあるＨＭＤ１０１が撮影場所の指定を受け付けたＨＭＤ１０１でない場合（例えばＨＭＤ１０１Ｃである場合）は、撮影時の姿勢の案内は不要であるため、図１５の処理を終了する。
【０１４６】
ステップ１５０５で、ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１Ｂを姿勢を案内するＨＭＤとして特定し、当該ＨＭＤ１０１Ｂの現在の位置姿勢を特定する。
【０１４７】
ステップ１５０６で、ＰＣ１００のＣＰＵ２０１は、姿勢案内用の矢印の仮想物体（ＣＧ）をメモリ上に生成する。矢印の仮想物体の一例を図１７の１７０１に示す。
【０１４８】
ステップ１５０７で、ＰＣ１００のＣＰＵ２０１は、矢印の仮想物体の位置姿勢を決定する。具体的には、ＨＭＤ１０１Ｂの位置からＨＭＤ１０１Ｂの視線方向に所定距離（例えば２０ｃｍ）離れた位置を始点として位置決定し、共有画像の撮影時点のＨＭＤ１０１Ａの位置から、共有画像の撮影時点のＨＭＤ１０１Ａの視線方向に向けて所定距離離れた位置（例えば３０ｃｍ離れた位置）を終点とするよう位置決定して、矢印の仮想物体のサイズを変更する。
【０１４９】
ＰＣ１００のＣＰＵ２０１は、図５のステップＳ５０８で、ＨＭＤ１０１Ｂのカメラ装置によって撮影されている最新の現実画像と、仮想空間上の視点位置から仮想カメラで撮影した、サイズ決定及び位置決定された矢印の仮想物体の描画データとを重畳した複合現実画像を生成する。生成した複合現実画像の一例を図１７の１７０２に示す。
【０１５０】
ＰＣ１００のＣＰＵ２０１は、図５のステップＳ５０９で、当該複合現実画像をＨＭＤ１０１Ｂに送信し、ＨＭＤ１０１Ｂが当該複合現実画像を受信して表示する（案内表示制御手段に該当）。
【０１５１】
ステップＳ１５０８で、ＰＣ１００のＣＰＵ２０１は、現在のＨＭＤ１０１Ｂの姿勢が、共有画像撮影時のＨＭＤ１０１Ａの姿勢に所定以上近付いたか判定する。
【０１５２】
具体的には、ＨＭＤ１０１Ｂの方向が共有画像の方向１１０４からＸＹＺの値が所定値以内の方向となり、且つ、ＨＭＤ１０１Ｂの角度が共有画像の角度１１０５から所定角度（例：５度）以内の角度になっている場合に、現在のＨＭＤ１０１Ｂの姿勢が、共有画像撮影時のＨＭＤ１０１Ａの姿勢に所定以上近付いたと判定する。
【０１５３】
現在のＨＭＤ１０１Ｂの姿勢が、共有画像撮影時のＨＭＤ１０１Ａの姿勢に所定以上近付いていないと判定された場合、ＰＣ１００のＣＰＵ２０１は、処理をステップＳ１５０５に戻し、現在のＨＭＤ１０１Ｂの位置姿勢を取得して、姿勢案内の処理を継続する。
【０１５４】
現在のＨＭＤ１０１Ｂの姿勢が、共有画像撮影時のＨＭＤ１０１Ａの姿勢に所定以上近付いたと判定された場合、ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１Ｂのユーザが目的の撮影対象（選択された共有画像の被写体）を視認したと判断し、姿勢案内用の矢印ＣＧを非表示状態に変更する。例えば、矢印のＣＧを記憶装置から削除する。以上が図１５の説明である。
【０１５５】
図１５の処理によれば、撮影場所に近付いたユーザに対して、撮影された画像の撮影時の姿勢を案内することができる。
【０１５６】
また、撮影場所の選択をしていないユーザを混乱させないよう、撮影場所に近付いたユーザのうち、撮影場所の選択をしていないユーザには姿勢の案内をすることなく、撮影場所の選択をしたユーザに対して姿勢の案内をすることができる。
【０１５７】
なお、上述した実施形態においては、ＨＭＤ１０１Ｂの姿勢が共有画像撮影当初のＨＭＤ１０１Ａの姿勢と所定以上異なる場合に姿勢の案内の表示を制御し（ステップＳ１５０５、Ｓ１５０６）、ＨＭＤ１０１Ｂの姿勢が共有画像撮影当初のＨＭＤ１０１Ａの姿勢に所定以上近付いている場合に案内の表示を取りやめるものとしたが、例えば、更に高さ方向の位置の情報を用いて案内の表示の要否を決定してもよい。
【０１５８】
具体的には、ＨＭＤ１０１Ｂの高さ方向の位置又は姿勢が共有画像撮影当初のＨＭＤ１０１Ａの高さ方向の位置及び姿勢と所定以上異なる場合に姿勢の案内の表示を制御し、ＨＭＤ１０１Ｂの高さ方向の位置及び姿勢が共有画像撮影当初のＨＭＤ１０１Ａの高さ方向の位置及び姿勢に所定以上近付いている場合に異なる場合に案内の表示を取りやめるようにしてもよい。
【０１５９】
高さ方向の位置が撮影当初から離れていることを以って案内を表示することで、どの高さから共有画像が撮影されたのかをユーザに確認させることができる。
【０１６０】
当該案内の表示（矢印のＣＧ）は、案内対象のＨＭＤ１０１Ｂに対してのみ表示するようにしている。その他のＨＭＤでＭＲを体験しているユーザに余計な情報を見せることなく、案内を必要としているユーザに案内の表示を限定するためである。
【０１６１】
しかし、案内を表示するＨＭＤ（ユーザ）を限定した場合、その他のＨＭＤを装着しているユーザには、案内表示中のＨＭＤのユーザが何をしようとしているのか分からない。
【０１６２】
例えばＨＭＤ１０１Ｂに案内表示中の場合、ＨＭＤ１０１Ｂのユーザは矢印のＣＧを追いかけて首を振ったり、頭の角度を変えて何かを覗き込んだりする動きをすることが考えられますが、ＨＭＤ１０１Ａ及びＨＭＤ１０１Ｃのユーザには、ＨＭＤ１０１Ｂがなぜそのような行動を取っているか分からない。
【０１６３】
よって、例えば案内表示中のＨＭＤ１０１Ｂに対応付けてＨＭＤ１０１Ｂのユーザが共有画像の撮影場所及び姿勢の案内中であることを、ＨＭＤ１０１Ａ及びＨＭＤ１０１Ｃ（他のＨＭＤ）に表示するようにしてもよい。
【０１６４】
具体的には、案内表示中のＨＭＤ１０１ＢからＸＹＺ軸方向に所定距離離れた位置に、「撮影場所・姿勢案内中」というテキストのＣＧを配置する。
【０１６５】
また、当該テキストと合わせて、撮影場所および角度を案内中の共有画像を、ＨＭＤ１０１ＢからＸＹＺ軸方向に所定距離離れた位置に配置して表示することで、どの共有画像の撮影場所及び姿勢が案内されるか他のＨＭＤのユーザに認識可能としてもよい。
【０１６６】
また、上述した実施形態においては、共有画像の撮影場所及び姿勢を案内するものとしたが、例えば共有画像に写っている、ＨＭＤ１０１Ａにおいて撮影された仮想物体の位置を案内するようにしてもよい。
【０１６７】
具体的には、共有画像撮影時に、ＨＭＤ１０１Ａの画角内に含まれる仮想物体のＩＤを、共有画像と対応付けて記憶しておき、ＰＣ１００のＣＰＵ２０１が、例えばステップＳ１５０７の後に、ＨＭＤ１０１Ｂで選択された共有画像に対応する仮想物体のＩＤを特定して、特定された各仮想物体の輪郭線の色を変えて強調表示（識別表示）する。
【０１６８】
これにより、共有画像によって撮影された何が撮影されていたか（撮影されていた仮想物体）を、ＨＭＤ１０１Ｂのユーザに案内することが可能である。
【０１６９】
また、そもそも選択された共有画像によって撮影されていた仮想物体が、撮影場所への視点位置の移動指示をしたＨＭＤ（ＨＭＤ１０１Ｂ）の仮想カメラが存在する仮想空間に存在しない場合、撮影場所や姿勢を案内して撮影場所・姿勢を再現したとしても、共有画像に写っていた物体を捉えることができない。
【０１７０】
つまり、ＨＭＤ１０１Ｂのユーザに、案内に沿って移動したり視線方向を変えたりしたりと無駄に労力を消費させてしまうことになる。
【０１７１】
よて、例えば選択された共有画像で撮影された物体が存在するか否かに応じて、案内の表示を行うか否かを決定するようにしてもよい。
【０１７２】
具体的には、図１５のステップＳ１５０５の後に、ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１Ｂの仮想カメラの配置されている仮想空間において、ＨＭＤ１０１Ｂにおいて選択された共有画像に写っている仮想物体が配置されているか（仮想空間に配置するモデルとして、モデル情報６２０に記憶されているか）判定する。
【０１７３】
配置されていない場合は図１５の処理を終了し、配置されている場合は処理をステップＳ１５０６に移行することで、共有画像を選択したユーザが、共有画像の撮影場所に視点を移動させれば共有画像の被写体を確認することができるという場合に、案内を表示することができる。
【０１７４】
また、共有画像情報１１００を不図示のサーバに記憶するようにしてもよい。例えば複数のＰＣ１００を準備し、ＨＭＤ１０１ごとに個別にＰＣ１００を接続する。各ＰＣ１００と不図示のサーバをネットワーク１５０を介して接続し、ＰＣ１００に記憶された共有画像情報１１００をサーバにアップロードして、サーバが当該共有画像情報１１００の更新がされたことを他のＰＣ１００に通知する。ＰＣ１００は、通知に応じて更新後の共有画像情報１１００をサーバより取得して自機のメモリに記憶する。
【０１７５】
以上、本発明の実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１７６】
例えば、図２に示すＰＣ１００の構成を全て備えるＨＭＤ１０１が、自機の機能をＣＰＵ２０１で実行して、上述した実施形態においてＰＣ１００の実行するものとして説明した処理の全てを、実行するようにしてもよい。
【０１７７】
具体的には、ＨＭＤ１０１とＰＣ１００が一体であり、１つ筐体として、ＨＭＤ１０１のＣＰＵ２０１が、ステップＳ５０４〜Ｓ５０９の処理及びその他の図のフローチャートに記載の処理を実行するよう構成してもよい。この場合、ＰＣ１００の機能は各ＨＭＤ１０１に備わり、各ＨＭＤ１０１の記憶装置に、光学センサ１０４から取得された各ＨＭＤ１０１の位置姿勢が記憶されるものとする。
【０１７８】
なお、上述した実施形態においては、複合現実における視点移動と案内について説明したが、例えば視点移動及び経路案内の表示を、仮想現実や拡張現実の技術を用いて実現するようにしてもよい。
【０１７９】
また、上述した実施形態においては、現実画像と仮想物体の描画データを重畳することで複合現実画像を生成するものとしたが、例えば透過型（シースルー型）のＨＭＤ１０１を採用し、透過率１００％の現実画像に透過率０％の描画データを重ね合わせてディスプレイに表示し、現実の情報はディスプレイ越しに肉眼で確認できるような複合現実画像を生成・表示するようにしてもよい。
【０１８０】
また、本発明におけるプログラムは、各図に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は各図の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは各図の各装置の処理方法ごとのプログラムであってもよい。
【０１８１】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１８２】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１８３】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１８４】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８６】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１８７】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１８８】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１８９】
１００    ＰＣ
１０１Ａ  ＨＭＤ
１０１Ｂ  ＨＭＤ
１０１Ｃ  ＨＭＤ
１０３    光学式マーカ
１０４    光学センサ
１５０    ネットワーク
【図１】
2018063589.tif 000003
【図２】
2018063589.tif 000004
【図３】
2018063589.tif 000005
【図４】
2018063589.tif 000006
【図５】
2018063589.tif 000007
【図６】
2018063589.tif 000008
【図７】
2018063589.tif 000009
【図８】
2018063589.tif 000010
【図９】
2018063589.tif 000011
【図１０】
2018063589.tif 000012
【図１１】
2018063589.tif 000013
【図１２】
2018063589.tif 000014
【図１３】
2018063589.tif 000015
【図１４】
2018063589.tif 000016
【図１５】
2018063589.tif 000017
【図１６】
2018063589.tif 000018
【図１７】
2018063589.tif 000019
【図１８】
2018063589.tif 000020