(57)【特許請求の範囲】
【請求項１】
撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムであって、
撮像装置による加速度を取得する加速度取得手段と、
前記加速度取得手段で取得した加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記撮像装置の位置と姿勢に従って前記実写画像と合成して表示される仮想物体であって、透過制御する仮想物体を特定する特定手段と、
前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記特定手段により特定された仮想物体を透過制御し、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得手段で取得した加速度が所定値を超えない安全な動作である場合には、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御手段と
を備えることを特徴とする情報処理システム。
【請求項２】
前記描画制御は、前記加速度取得手段で取得した加速度に応じて決定された透過値に従って前記仮想物体に対応する仮想画像を透過させることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記描画制御手段で透過させる仮想物体か否かを判定する判定手段を更に備え、
前記描画制御手段は、前記判定手段で透過させない仮想物体である場合には、仮想物体に対応する仮想画像を透過させることなく、前記判定手段で透過させる仮想物体と判定された場合に、仮想物体に対応する仮想画像を透過制御することを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記加速度取得手段で取得された加速度が所定値を超えた場合に、透過設定する透過設定手段を更に備え、
前記透過設定手段で透過設定されている場合、前記描画制御手段は、前回の透過値より高い透過値を用いて、前記仮想画像を透過制御することを特徴とする請求項２又は３に記載の情報処理システム。
【請求項５】
前記透過設定手段は、前記透過設定がされ、且つ、前記透過値が基準値に戻った場合に、前記仮想画像を透過させないよう透過設定を解除することを特徴とする請求項４に記載の情報処理システム。
【請求項６】
前記描画制御手段は、透過された仮想画像と、透過されていない仮想画像と、実写画像を合成することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理システム。
【請求項７】
撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムであって、
撮像装置による加速度を取得する加速度取得手段と、
前記加速度取得手段で取得された加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記撮像装置の位置と姿勢に従って前記実写画像と合成して表示される仮想物体であって、非表示制御する仮想物体を特定する特定手段と、
前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記特定手段により特定された仮想物体を非表示制御し、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得手段で取得した加速度が所定値を超えない安全な動作である場合には、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御手段と
を備えることを特徴とする情報処理システム。
【請求項８】
前記描画制御手段で非表示または非表示させる仮想物体か否かを判定する判定手段を更に備え、
前記描画制御手段は、前記判定手段で非表示させない仮想物体である場合には、仮想物体に対応する仮想画像を非表示させることなく、前記判定手段で非表示させる仮想物体と判定された場合に、仮想物体に対応する仮想画像を非表示制御することを特徴とする請求項７に記載の情報処理システム。
【請求項９】
撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムであって、
クリッピング平面の値を記憶する記憶手段と、
前記記憶手段に記憶されているクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御手段と、
撮像装置による加速度を取得する加速度取得手段と、
前記加速度取得手段で取得した加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記記憶手段に記憶されているクリッピング平面の値を所定の範囲後退させたクリッピング平面の値に変更する変更手段と
を備え、
前記描画制御手段は、前記変更手段により体験者の急な動きによる危険な動作である場合に変更されたクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得手段で取得した加速度が所定値を超えない安全な動作である場合には、前記記憶手段に記憶されているクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御することを特徴とする情報処理システム。
【請求項１０】
前記描画制御手段で合成された画像を前記撮像装置で表示すべく出力する出力手段を更に備えることを特徴とする請求項１乃至９のいずれか１項に記載の情報処理システム。
【請求項１１】
撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムの処理方法であって、
撮像装置による加速度を取得する加速度取得ステップと、
前記加速度取得ステップで取得した加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記撮像装置の位置と姿勢に従って前記実写画像と合成して表示される仮想物体であって、透過制御する仮想物体を特定する特定ステップと、
前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記特定ステップにより特定された仮想物体を透過制御し、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得手段で取得した加速度が所定値を超えない安全な動作である場合には、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御ステップとを含むことを特徴とする処理方法。
【請求項１２】
撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムの処理方法であって、
撮像装置による加速度を取得する加速度取得ステップと、
前記加速度取得ステップで取得された加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記撮像装置の位置と姿勢に従って前記実写画像と合成して表示される仮想物体であって、非表示制御する仮想物体を特定する特定ステップと、
前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記特定ステップにより特定された仮想物体を非表示制御し、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得ステップで取得した加速度が所定値を超えない安全な動作である場合には、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御ステップと
を含むことを特徴とする処理方法。
【請求項１３】
撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成するクリッピング平面の値を記憶する記憶手段を備える情報処理システムの処理方法であって、
前記記憶手段に記憶されているクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御ステップと、
撮像装置による加速度を取得する加速度取得ステップと、
前記加速度取得ステップで取得した加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記記憶手段に記憶されているクリッピング平面の値を所定の範囲後退させたクリッピング平面の値に変更する変更ステップと
を含み、
前記描画制御ステップは、前記変更ステップにより体験者の急な動きによる危険な動作である場合に変更されたクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得ステップで取得した加速度が所定値を超えない安全な動作である場合には、前記記憶手段に記憶されているクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御することを特徴とする処理方法。
【請求項１４】
撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムのプログラムであって、
前記情報処理システムを、
撮像装置による加速度を取得する加速度取得手段と、
前記加速度取得手段で取得した加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記撮像装置の位置と姿勢に従って前記実写画像と合成して表示される仮想物体であって、透過制御する仮想物体を特定する特定手段と、
前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記特定手段により特定された仮想物体を透過制御し、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得手段で取得した加速度が所定値を超えない安全な動作である場合には、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御手段
として機能させることを特徴とするプログラム。
【請求項１５】
撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムのプログラムであって、
前記情報処理システムを、
撮像装置による加速度を取得する加速度取得手段と、
前記加速度取得手段で取得された加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記撮像装置の位置と姿勢に従って前記実写画像と合成して表示される仮想物体であって、非表示制御する仮想物体を特定する特定手段と、
前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記特定手段により特定された仮想物体を非表示制御し、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得手段で取得した加速度が所定値を超えない安全な動作である場合には、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御手段
として機能させることを特徴とするプログラム。
【請求項１６】
撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムのプログラムであって、
前記情報処理システムを、
クリッピング平面の値を記憶する記憶手段と、
前記記憶手段に記憶されているクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御手段と、
撮像装置による加速度を取得する加速度取得手段と、
前記加速度取得手段で取得した加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記記憶手段に記憶されているクリッピング平面の値を所定の範囲後退させたクリッピング平面の値に変更する変更手段
として機能させ、
前記描画制御手段は、前記変更手段により体験者の急な動きによる危険な動作である場合に変更されたクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得手段で取得した加速度が所定値を超えない安全な動作である場合には、前記記憶手段に記憶されているクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御することを特徴とするプログラム。

【発明の詳細な説明】
【技術分野】
【０００１】
実写画像と、仮想空間の仮想画像とを合成して表示する情報処理システムとその処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来より、現実空間の画像（実写画像）に三次元モデリングされたＣＧ（ＣｏｍｐｕｔｅｒＧｒａｐｈｉｃｓ）による画像を重畳した画像を生成し、観察者に提示することで、この観察者にあたかも現実空間中にＣＧで表現された物体（仮想物体）が存在しているかのように見せることができる、複合現実感や拡張現実感と呼ばれる技術が存在する。
【０００３】
複合現実感、拡張現実感を提示するシステムでは映像の表示装置として、据え置き型ディスプレイ、スマートフォンやタブレットなどのモバイルデバイス、光学シースルー型ＨＭＤ、ビデオシースルー型ＨＭＤなどが利用される。
【０００４】
近年、複合現実感、拡張現実感を提示するシステムやアプリケーションが多数発表され、一般に目にする機会が多くなっているが、一般ユーザーの体験における転倒、酔いなどに対する安全性対策が課題になっている。
【０００５】
特にビデオシースルー型ＨＭＤを使用するシステムにおいては、ＨＭＤ本体が全視界を覆っており、また光学シースルーＨＭＤと違いＣＧを完全に不透明な形で描画することが可能なため、壁や机にぶつかってよろめいた場合、体験者は手や足を安全なところにつこうとするが、複合現実の体験中は現実世界の一部がＣＧによって隠蔽されており、体験者はＨＭＤを外さなければ現実世界の障害物を確認することができず、そこで発生するタイムラグが安全に影響する。
一方で現実物体が見えるようにＣＧを非表示にしたり半透明にしたりすると没入感が損なわれるという問題がある。
【０００６】
ＣＧに隠された領域にどのような障害物があるかわからない問題への対策として、特許文献１には、手をつくことができる現実物体がある場所に手が近付いた場合にそれを隠蔽している仮想物体の表示を変化させ、ユーザーに提示すという手法が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１６９６２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載のシステムにおいては、手をつく場所を特定して、手をつく一の仮想物体を変化させ、一部の現実物体を見せることができるものの、よろめいた時の緊急避難動作においては、現実物体の全体が把握できないため、緊急避難時に適用するには難しい側面があった。
【０００９】
また、手をつく際に、現実物体を見せるのでは、手をつく場所に現実物体がなかった場合には、緊急避難時の判断が遅れ、急なよろめきなどには対応が難しい側面があった。
【００１０】
さらに手をつくことが緊急的に手をつくものなのか、単に触るため手をつくものなのかを判断することは難しく、仮に手をついたときに現実物体（現実の画像）全体を見せてしまうと、没入感が損なわれ、複合現実感システムのメリットが失われてしまう。
【００１１】
そこで、本発明は、撮像装置の加速度により体験者の急な動きによる危険な動作となる場合に、実写画像を視認させることで体験者が迅速な回避行動をとれる仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の目的を達成するための、撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムであって、撮像装置による加速度を取得する加速度取得手段と、前記加速度取得手段で取得した加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記撮像装置の位置と姿勢に従って前記実写画像と合成して表示される仮想物体であって、透過制御する仮想物体を特定する特定手段と、前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記特定手段により特定された仮想物体を透過制御し、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得手段で取得した加速度が所定値を超えない安全な動作である場合には、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御手段とを備えることを特徴とする。
また、撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムであって、撮像装置による加速度を取得する加速度取得手段と、前記加速度取得手段で取得された加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記撮像装置の位置と姿勢に従って前記実写画像と合成して表示される仮想物体であって、非表示制御する仮想物体を特定する特定手段と、前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記特定手段により特定された仮想物体を非表示制御し、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得手段で取得した加速度が所定値を超えない安全な動作である場合には、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御手段とを備えることを特徴とする。
また、撮像装置で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムであって、クリッピング平面の値を記憶する記憶手段と、前記記憶手段に記憶されているクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御する描画制御手段と、撮像装置による加速度を取得する加速度取得手段と、前記加速度取得手段で取得した加速度が所定値を超えた体験者の急な動きによる危険な動作である場合に、前記現実空間の画像を前記撮像装置の体験者に視認させるように、前記記憶手段に記憶されているクリッピング平面の値を所定の範囲後退させたクリッピング平面の値に変更する変更手段とを備え、前記描画制御手段は、前記変更手段により体験者の急な動きによる危険な動作である場合に変更されたクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御し、前記加速度取得手段で取得した加速度が所定値を超えない安全な動作である場合には、前記記憶手段に記憶されているクリッピング平面の値に基づき、前記撮像装置の位置と姿勢に応じた仮想物体と前記現実空間の実写画像とを用いて合成した合成画像の描画を制御することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、撮像装置の加速度により体験者の急な動きによる危険な動作となる場合に、実写画像を視認させることで体験者が迅速な回避行動をとることができる。
【図面の簡単な説明】
【００１４】
【図１】複合現実感システム構成および、各ハードウェアのハードウェア構成の一例を示す図である
【図２】機能構成図の一例を示す図である
【図３】アプリケーション構成図の一例を示す図である
【図４】第１の実施形態における複合現実感システムの詳細な処理のフローチャートである
【図５】透過されない仮想画像が合成された画像の表示の一例を示すイメージ図である
【図６】透過された仮想画像が合成された画像の表示の一例を示すイメージ図である
【図７】透過率の推移を示すグラフである
【図８】透過率を算出する計算式の一例を示す図である
【図９】モデルの情報を管理するデータの一例を示す図である。
【図１０】第２の実施形態における複合現実感システムの詳細な処理のフローチャートである
【図１１】所定距離内のモデルが透過表示される一例を示す図。
【図１２】第２の実施形態における各モデル（仮想物体としての３次元モデル）の情報を管理するデータの一例を示す図である
【図１３】クリッピング平面の概念を示した図である。
【図１４】モデルの情報を管理するデータの一例を示す図である。
【図１５】距離ｎｅａｒに位置する前方クリッピング平面をｄｉｓｔ分移動させた場合の視錐台のパラメータを求めるための計算式である。
【図１６】第３の実施形態の詳細を示す、複数の非表示制御方式を採用した場合の表示制御のフローチャートである。
【図１７】第３の実施形態における複合現実アプリケーションで制御されたＨＭＤ１２０で表示される映像の一例を示す図である。
【図１８】体験者がよろめいた際にＨＭＤ１２０で表示される映像の一例である。
【図１９】本発明における機能ブロック図を示す図である。
【発明を実施するための形態】
【００１５】
〔第１の実施形態〕
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００１６】
図１は、本発明におけるシステム構成および、各ハードウェアのハードウェア構成の一例を示す図である。すなわち、撮像装置としてのＨＭＤ１２０で撮像された現実空間の実写画像と仮想物体の仮想画像を合成した合成画像を生成する情報処理システムの一例を示す図である。
【００１７】
本実施形態は、ＰＣ１００（情報処理装置）とＨＭＤ１２０が通信可能な構成となっている。ＨＭＤは、ヘッドマウントディスプレイで、ＰＣ１００で現実の映像と３次元（３Ｄ）ＣＧモデルを合成した画像を表示する装置である。また、ＨＭＤ１２０は現実の映像を撮像する装置である。
【００１８】
図１において、１０１はＣＰＵで、システムバス１０４に接続される各デバイスやコントローラを統括的に制御する。また、ＲＯＭ１０２あるいは補助記憶装置１１３には、ＣＰＵ１０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、ＰＣで実行する機能を実現するために必要なプログラム等が記憶されている。
【００１９】
１０３はＲＡＭで、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ＣＰＵ１０１は、処理の実行に際して必要なプログラム等をＲＯＭ１０２あるいは補助記憶装置１１３からＲＡＭ１０３にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
【００２０】
また、１０５は入力コントローラで、キーボード（ＫＢ）１１０やマウス１１１等のポインティングデバイス等からの入力を制御する。１０６はビデオコントローラで、ディスプレイ１２１およびＨＭＤ１２０に内蔵されるディスプレイ１２１等の表示器への表示を制御する。なおディスプレイ１２１へは、外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。ディスプレイ１２１は、右目ディスプレイ、左目ディスプレイで構成されている。
ディスプレイ１２１は体験者が使用するものであり、ディスプレイ１２１は主にオペレータが使用する液晶ディスプレイである。
【００２１】
１０７は汎用バスで、ＨＭＤ１２０に内蔵されたカメラ１２２からの映像を取り込むために使用される。カメラ１２２からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。カメラ１２２は、右目ビデオカメラ、左目ビデオカメラで構成されている。
なお、本実施形態では。ＨＭＤ１２０とＰＣ１００を有線で接続する構成としているが、無線通信によって画像の送受信を行ってもよい。
【００２２】
１０８はメモリコントローラで、ブートプログラム，各種のアプリケーション，フォントデータ，ユーザファイル，編集ファイル，各種データ等を記憶する外部記憶装置（ハードディスク（ＨＤ））や、フレキシブルディスク（ＦＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等の補助記憶装置１１３へのアクセスを制御する。
【００２３】
１０９はネットワークコントローラで、ネットワーク（例えば、図１に示したネットワーク１１４）を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。
【００２４】
本発明を実現するための後述する各種プログラムは、補助記憶装置１１３に記録されており、必要に応じてＲＡＭ１０３にロードされることによりＣＰＵ１０１によって実行されるものである。さらに、上記プログラムの実行時に用いられる各種モデルデータ等も、補助記憶装置１１３に格納されており、これらについての詳細な説明も後述する。
【００２５】
次に、図２を用いて、本発明のおける機能構成図の説明をする。図２は、本発明における機能構成図の一例を示す図である。
【００２６】
位置姿勢計測部２０１は、体験者がＨＭＤ１２０の現実世界における位置姿勢を計測する。位置姿勢を計測する手法としては、二次元マーカーを現実空間に配置し、マーカーの位置姿勢と大きさに関する情報をあらかじめ位置姿勢計測部２０１に与えておき、カメラ１２２に写りこんだ二次元マーカーを認識して、その画像上での大きさや歪みからＨＭＤ１２０の位置姿勢を求める。なお、上記の位置姿勢の求め方以外に、ＨＭＤ１２０に磁気や赤外線マーカーを用いた位置姿勢センサーを取り付ける手法、またそれらを複合させて使う手法などがあり、いずれも既知の技術で実現可能である。位置姿勢の計測は、特開２００５−８３８２６号公報などに開示されている。すなわち、位置姿勢の特定は実写画像のマーカーを用いずに実現することも可能である。
【００２７】
加速度計測部２０２は、現実空間におけるＨＭＤ１２０の移動中の加速度を計測し、当該加速度が一定の閾値を超えた際に画面表示制御部２０３に通知する機能を持つ。加速度を計測する手法としては、位置姿勢計測部から得られたＨＭＤ１２０の三次元位置姿勢の時系列データを２階微分することによって加速度を求めてもよいし、ＨＭＤ１２０に直接加速度センサーを取り付け、その値を取得してもよい。
画面表示制御部２０３は、ディスプレイ１２１に表示する映像（合成画像）を生成、制御する役割を持つ。
【００２８】
具体的には、カメラ１２２が撮影した現実空間の画像の描画を実写画像描画部２０４に依頼する。次に、位置姿勢計測部２０１からその時点でのＨＭＤ１２０の位置姿勢を受け取り、ＣＧ画像描画部２０５に、当該の位置姿勢から見たＣＧ（モデル画像）の描画を依頼する。次に、実写画像描画部２０４とＣＧ画像描画部２０５が描画した画像を重ね合わせて合成する。このとき加速度計測部２０２から加速度が閾値を超えた通知があるかどうか確認をし、閾値を超えている場合は、ＣＧ画像描画部２０５が描画したＣＧ（モデル画像）を半透明にして重ね合わせを行う。この時の透明度は閾値を超えてからの時間によって変化するよう制御され、ＣＧ（モデル画像）がフェードアウトした後半透明な状態が数秒続き、その後不透明な状態にフェードインするという制御をする。これにより、体験者にとって突然ＣＧが消えたという驚きが少ないようにする。この制御の詳細は後述する。
【００２９】
また、キャリブレーション部２０６を備えている。このキャリブレーション部２０６は、基準マーカーを用いて、現実空間における仮想空間に対する原点を決定し、現実空間と仮想空間の位置を関連付ける。この原点を基準に、予め３次元モデルの位置、姿勢を記憶させる。これにより、現実空間の実写画像に対して、ＨＭＤ１２０から見た方向での仮想物体の仮想画像を合成して、現実空間上に仮想物体が存在するように見せる。この原点および、３次元モデルの位置、姿勢をグラフィックエンジン３０２に記憶させることによって、実写画像にＨＭＤ１２０から見た仮想物体の仮想画像を合成することが可能となる。このキャリブレーション部２０６でのキャリブレーションは、システムを起動する初めに行うものとする。
【００３０】
次に、図３を用いて、本発明のおけるアプリケーション構成図の説明をする。図３は、本発明におけるアプリケーション構成図の一例を示す図である。
【００３１】
ＰＣ１００は、オペレーティングシステム３０１、グラフィックエンジン３０２、複合現実感プラットフォーム３０３（ＭＲプラットフォームともいう）、複合現実感アプリケーション３０４（ＭＲアプリケーションやビューアアプリケーションともいう）で構成され、ＣＰＵ１０１により制御されている。
オペレーティングシステム３０１は、ＨＭＤ１２０の入出力を制御し
【００３２】
カメラ１２２から入力インターフェースを介して得られた実写画像を複合現実感プラットフォーム３０３受け渡す。またグラフィックエンジン３０２で描画された合成画像を出力インターフェースを介して、ディスプレイ１２１へ出力する。
【００３３】
グラフィックエンジン３０２は、３次元モデルから描画する画像を生成し、実写画像と合成する。描画に利用するエンジンは、例えば、ＯｐｅｎＧＬやＤｉｒｅｃｔＸなどの広く利用されているグラフィックエンジンでも、独自に開発したグラフィックエンジンでもよい。なお、本実施形態ではグラフィックライブラリとしてＯｐｅｎＧＬを利用するものとする。
【００３４】
複合現実感プラットフォーム３０３は、実写画像のマーカーを検出し、マーカーをもとにＨＭＤ１２０の位置・姿勢を特定し、現実空間と仮想空間の位置合わせを行う。なお、位置姿勢や位置合わせの技術は、既知の技術として開示されている、特開２００２−３２７８４、特開２００６−０７２９０３、特開２００７−１６６４２７を用いて実現するものとするが、なおマーカーを使用せずに、ＨＭＤ１２０に位置センサーを備え、この位置センサーを用いて三角測量により計測された位置をもとに、ＨＭＤ１２０の位置や姿勢を特定して実現することも可能である。
【００３５】
また複合現実感プラットフォーム３０３は、マーカーからＨＭＤ１２０の加速度を算出して、３次元モデルの透過率を決定する。なお、加速度の算出については、ＨＭＤ１２０に加速度センサーを備えて、マーカーを使用せずに加速度を算出してもよい。
【００３６】
複合現実感アプリケーション３０４は、複合現実感プラットフォーム３０３から位置、姿勢、透過率を受け付け、グラフィックエンジン３０２に対して３次元モデルの描画命令を発行する。この時、ＯｐｅｎＧＬのＡＰＩを用いて、モデル情報、位置情報、姿勢情報、透過率を設定した命令を発行する。
【００３７】
次に、本実施形態における複合現実感システムの詳細な処理について図４を用いて説明する。図４は、複合現実感システムの詳細な処理のフローチャートである。
ステップＳ４０１では、ＨＭＤ１２０のカメラ１２２で、実写画像（映像）を撮像する。
ステップＳ４０２では、ＨＭＤ１２０のカメラ１２２で撮像した画像をＰＣ１００に送信する。
【００３８】
ステップＳ４０３では、ＨＭＤ１２０の撮影が終了したか否かを判定して、終了するまで、撮像と画像送信を繰り返す。すなわち、ＨＭＤ１２０は撮像するとＰＣ１００に画像を繰り返し送信する。
ステップＳ４０４では、オペレーティングシステム３０１を介して複合現実感プラットフォーム３０３が画像を受信する。
【００３９】
ステップＳ４０５では、複合現実感プラットフォーム３０３では、変数「ｔ」にＰＣ１００のシステム時間を代入する。この変数「ｔ」は後述の透明度の制御で用いる。
ステップＳ４０６では、複合現実感プラットフォーム３０３の位置姿勢計測部２０１によりＨＭＤ１２０の位置・姿勢を計測する。
【００４０】
ステップＳ４０７では、複合現実感プラットフォーム３０３の加速度計測部２０２により、加速度を計算する。なお、上述したように加速度は加速度センサーにより求められるものであってもよい。
【００４１】
ステップＳ４０８では、複合現実感プラットフォーム３０３が、複合現実感プラットフォーム３０３で管理している透過率制御のフラグがＴｒｕｅ、すなわち透過率を制御している状態化を判定する。透過率を制御している場合（Ｔｒｕｅ）には、ステップＳ４１３へ処理を移し、透過率を制御していない場合（Ｆａｌｓｅ）には、ステップＳ４０９へ処理を移す。
【００４２】
ステップＳ４０９では、複合現実感プラットフォーム３０３は、ステップＳ４０７で計測された加速度を取得する。すなわち、撮像装置の加速度を取得する加速度取得処理の一例を示すステップである。
【００４３】
ステップＳ４１０では、複合現実感プラットフォーム３０３が管理している加速度の閾値と比較する。加速度が閾値以上であった場合に、ステップＳ４１２へ処理を移し、加速度が閾値未満であった場合には、ステップＳ４１１へ処理を移す。なお、加速度が閾値以上である場合とは、ＨＭＤ１２０を装着している体験者がつまずくなどして人が転倒する可能性がある場合であり、加速度が閾値未満である場合とは、人の通常の動作である場合である。
【００４４】
本実施形態では、加速度の閾値として「６０ｍ／ｓ＾２」を用いて判定するように構成したが、あくまでも一例でありこれに限ることはない。なお、図７のグラフは、加速度閾値を「６０ｍ／ｓ＾２」としてあらわしたグラフである。
【００４５】
ステップＳ４１１では、複合現実感プラットフォーム３０３は透過率に「０」を代入する。透過率を「０」とすることは、ＣＧ画像を透過させずに実写画像に合成（重畳）することになる。透過率「０」として実写画像と仮想画像を重畳し、ディスプレイ１２１で表示された例が図５である。図５の説明は後述する。
【００４６】
ステップＳ４１２では、加速度が閾値を超えたため、複合現実感プラットフォーム３０３が、透過率制御のフラグに「Ｔｒｕｅ」を設定し、変数「ｔ０」にＰＣ１００のシステムの現在時刻を設定する。これにより、透過制御が開始される。すなわち、加速度が所定値を超えた場合に、透過設定する処理の一例を示すステップである。
【００４７】
ステップＳ４１３では、複合現実感プラットフォーム３０３が、現在時刻「ｔ」における透過率を計算する。透過率の計算は、図８の計算式を用いて算出する。なお、図８の計算式は、一例を示すものであってこれに限ることはない。また、ここで透過率が「０」になる場合（加速度が閾値を超えた直後、すなわち透過率制御フラグを「Ｔｒｕｅ」に設定した後のステップＳ４１３の計算の場合）には、透過率に所定の値をプラスして、透過を始めるように制御する。ステップＳ４１３は、加速度取得処理で取得された加速度が所定値を超えた場合に、現実空間の画像を体験者に視認させるべく仮想画像の透過値を取得する透過値取得の一例を示すステップである。
【００４８】
また、ステップＳ４１３は、透過設定中（透過率制御が「Ｔｒｕｅ」）の場合、図８の計算式により、前回の透過値より高い透過値を決定する処理の一例を示すステップである。そして、後述のステップＳ４１８にて、前回の透過値より高い透過値を用いて、仮想画像を透過制御する。
図８の計算式を用いた場合の透過率を表すグラフ（透過率の推移を示すグラフ）が図７となる。
【００４９】
ここで、図７について説明する。なお、上述したように、加速度の閾値として「６０ｍ／ｓ＾２」を用いている。
【００５０】
変数「ｐ」は時刻「ｔ」における透過率を表している。また、変数「ｔ０」はＨＭＤ１２０の加速度が閾値を超えた時刻を表している。また、定数「ａ」は透過率の立ち上がり、立ち下がりの傾きを表している。「ａ」の傾きに従って透過率が変化することで、突然ＣＧが消えて、体験者の転倒時の混乱につながらないようにすることが可能となる。
【００５１】
また定数「ｄ」は最大透過率を維持する時間を表している。また、定数「ｐＭａｘ」は最大透過率を表している。なお、ＣＧを完全に消してしまうと体験者に混乱をもたらすので、「ｐＭａｘ」の値は１００％未満とし、透過率制御中でもＣＧが完全には消えないようにすることが望ましい。
なお、「ｄ」の間に再度、ＨＭＤ１２０の加速度が閾値を超えた場合には、加速度が閾値を超えた時間から再度「ｄ」の時間分、「ｐＭａｘ」の最大透過率で透過制御するようにしてもよい。また、「ａ」の立ち下り時に、ＨＭＤ１２０の加速度が閾値を超えた場合には、現在の透過率を基準に、「ｐＭａｘ」まで透過率が立ち上がるように制御してもよい。
【００５２】
ステップＳ４１４では、複合現実感プラットフォーム３０３が、透過率が「０」か否かを判断する。透過率が「０」の場合、ステップＳ４１５へ処理を移す。すなわち、透過率が「０」になった場合とは、透過が終わった場合である。また透過率が「０」でない場合には、ステップＳ４１６へ処理を移す。すなわち、透過率が「０」でない場合とは、透過中の場合である。
【００５３】
ステップＳ４１５では、複合現実感プラットフォーム３０３が、透過率制御フラグを「Ｆａｌｓｅ」に設定し、透過制御を終了させる。すなわち、透過設定中（透過率制御フラグ「Ｔｒｕｅ」）、且つ、透過率（値）が基準値（例えば、「０」）に戻った場合に、仮想画像を透過させないよう透過設定を解除する処理の一例を示すステップである。
【００５４】
ステップＳ４１６では、複合現実感プラットフォーム３０３が、複合現実感アプリケーション３０４に、位置情報、姿勢情報、透過率を受け渡す。複合現実感アプリケーション３０４は、位置情報、姿勢情報をもとに、実写画像に合成するモデルを特定する。本実施形態の場合、特定されるモデルは９０１と９０２である。位置情報と姿勢情報に従って描画するモデルを特定する技術は、既知の技術であるため説明を省略する。
【００５５】
なお、図９は、各モデル（仮想物体としての３次元モデル）の情報を管理するデータの一例を示す図である。各モデルに対して、３次元モデル名、位置情報、透過フラグを関しておき、描画するモデルを特定する、あるいは透過するモデルか否かを判定するために用いられる。この図９のデータは、復号現実感システムを運用するユーザーが予め記憶させるものとする。
なお、図９のデータは、複合現実感アプリケーション３０４が参照するデータとしたが、複合現実感プラットフォーム３０３が参照するようにし、複合現実感プラットフォーム３０３で描画するモデルを判定するようにすることも可能である。複合現実感プラットフォーム３０３で実現するか、複合現実感アプリケーション３０４で実現するかは適宜設計によって変更できてもよい。
【００５６】
ステップＳ４１７では、複合現実感アプリケーション３０４が、描画させるモデルが透過するモデルか否かを透過フラグ９０３に従って判定する。すなわち、速度が所定値を超えた場合に、ＨＭＤ１２０（撮像装置）の位置と姿勢に従って、所定の範囲で非表示となる仮想物体を特定する処理の一例を示すステップである。
透過フラグが「ＯＮ」のモデルは、人が転倒し、手をつく場合に影響するモデルであり、透過フラグが「ＯＦＦ」のモデルは、人が転倒した場合に、影響しないモデルである。この透過するモデルと透過させないモデルを設定しておくことで、より没入感を損ねることなく、複合現実感システム上での転倒を回避させることが可能となる。なお、すべてのモデルに対して透過制御させる構成をとることも可能であることは言うまでもない。
透過フラグが「ＯＮ」のモデルの場合には、ステップＳ４１８へ処理を移し、透過フラグが「ＯＦＦ」のモデルの場合には、ステップＳ４１９へ処理を移す。
すなわち、ステップＳ４１７は、透過させる仮想画像か否かを判定する透過判定処理の一例を示すステップである。
なお、合成するモデルそれぞれに対してフラグを判定し、それぞれのモデルに対して、ステップＳ４１９又はステップＳ４２０の処理を実行するものとする。
【００５７】
ステップＳ４１８では、複合現実感アプリケーション３０４がグラフィックエンジン３０２のＡＰＩを用いてモデル情報と、位置情報、姿勢情報、透過率（ステップＳ４１３で計算され、取得した透過率）を含む描画命令をグラフィックエンジン３０２に発行して、グラフィックエンジン３０２がモデルと透過率から合成する仮想画像を生成する。より詳細には、グラフィックエンジン３０２が位置情報と姿勢情報に従って、描画命令のあったモデルの仮想空間上での位置姿勢を決定し、この位置姿勢になるようにモデルを制御して、モデルの仮想画像を生成する。この生成される仮想画像に対して、透過率が設定される。
【００５８】
なお、グラフィックエンジン３０２は、ＣＡＤアプリケーションで生成された３次元モデルを参照可能なように管理している。３次元モデルは、補助記憶装置１１３に記憶されているものとするが、別筐体のサーバに管理する構成であってもよい。
【００５９】
ステップＳ４１９では、透過させるモデルでないため、複合現実感アプリケーション３０４がグラフィックエンジン３０２のＡＰＩを用いてモデル情報と、位置情報、姿勢情報、透過率（０）を含む描画命令をグラフィックエンジン３０２に発行して、グラフィックエンジン３０２がモデルと透過率から合成する仮想画像を生成する。
すなわち、ステップＳ４１９は、透過判定で透過させない仮想画像である場合には、仮想画像を透過させることなく、ステップＳ４１８は、透過判定で透過させる仮想画像と判定された場合に、決定された透過率に従って仮想画像を透過制御する処理の一例を示すステップである。
【００６０】
ステップＳ４２０では、複合現実感アプリケーション３０４が合成する全てのモデルの仮想画像を生成したか否かを判定する。具体的には、複合現実感アプリケーション３０４が仮想画像を生成するモデルに対して、描画命令をグラフィックエンジン３０２に発行したか否かを判定する。なお。グラフィックエンジン３０２は、位置情報、姿勢情報をもとに、合成するモデルを特定して、仮想画像を生成し、実写画像に仮想画像を描画することが可能であるため、グラフィックエンジン３０２にすべてのモデルの描画命令を発行し、グラフィックエンジン３０２が仮想画像を生成したか否かを判定するようにしてもよい。
ステップＳ４１８とステップＳ４１９で生成された仮想画像と実写画像を重畳し、ディスプレイ１２１で表示された例が図６である。図５６説明は後述する。
【００６１】
ステップＳ４２１では、複合現実感プラットフォーム３０３が、複合現実感アプリケーション３０４に、位置情報、姿勢情報、透過率を受け渡す。複合現実感アプリケーション３０４は、位置情報、姿勢情報をもとに、実写画像に合成するモデル（ＣＧ）を特定する。本実施形態の場合、特定されるモデル（ＣＧ）は９０１と９０２である。位置情報と姿勢情報に従って描画するモデルを特定する技術は、既知の技術であるため説明を省略する。
【００６２】
ステップＳ４２２では、透過させるモデルでないため、複合現実感アプリケーション３０４がグラフィックエンジン３０２のＡＰＩを用いてモデル情報と、位置情報、姿勢情報、透過率（０）を含む描画命令をグラフィックエンジン３０２に発行して、グラフィックエンジン３０２がモデルと透過率から合成する仮想画像を生成する。より詳細には、位置情報、姿勢情報から、仮想空間におけるモデルの位置と姿勢を制御し、その位置・姿勢を制御したモデルに対して透過率を設定し、仮想空間上の仮想画像を生成する。なお、ＨＭＤ１２０の位置、姿勢から、仮想空間上の位置姿勢が特定でき、この位置姿勢から見えるモデルの仮想画像が生成される。
【００６３】
ステップＳ４２３では、グラフィックエンジン３０２は、位置情報、姿勢情報に従って、ステップＳ４０４で受信した実写画像と仮想画像を合成（重畳）し、ＨＭＤ１２０のカメラ１２２に表示する合成画像を生成する。すなわち、ステップＳ４２３は、透過された仮想画像と、透過されていない仮想画像と、実写画像を合成する描画制御処理の一例を示すステップである。
【００６４】
また、ステップＳ４１８とステップＳ４２３は、撮像装置の位置と姿勢に従って決定された仮想物体に対する、透過率（値）により透過された仮想画像と現実空間の実写画像を描画制御する描画制御処理の一例を示すステップである。
【００６５】
ステップＳ４２４では、グラフィックエンジン３０２は、オペレーティングシステム３０１を介して、生成された合成画像をＨＭＤ１２０へ送信する。すなわち、合成された画像を撮像装置としてのＨＭＤ１２０で表示すべく出力する出力処理の一例を示すステップである。
ステップＳ４２５では、ＨＭＤ１２０は、合成画像をＰＣ１００から受信する。
ステップＳ４２６では、ＨＭＤ１２０のディスプレイ１２１により、受信した合成画像を表示する。
【００６６】
なお、透過率「０」として仮想画像が生成され、ディスプレイ１２１で表示された例が図５である。また、加速度が閾値を超え仮想画像が透過制御され、ディスプレイ１２１で表示された例が図６である。
図５の５０１のモデルＡは、透過率「０」として実写画像に仮想画像を合成して表示しており、５０２のモデルＢは、透過率「０」として実写画像に仮想画像を合成して表示している。
図６の６０１のモデルＡが、透過させるモデル（透過フラグＯＮ）であり、ステップＳ４１３で計算された透過率に従って生成された仮想画像と実写画像を合成して表示しており、６０２のモデルＢが、透過させないモデル（透過フラグＯＦＦ）であり、透過率「０」ディスプレイ１２１で表示された例が図５である。図５の説明は後述する。
【００６７】
〔第２の実施形態〕
次に、第２の実施形態について説明する。第２の実施形態では、加速度に応じて、近いモデルを非表示にさせる仕組みである。
【００６８】
まず初めに、本実施形態での想定されるケースについて説明する。
複合現実感アプリケーション３０４において、第１の実施形態のようにＣＧを透過させることで現実物体を可視化させる手法を用いると、ＣＧの透過処理が視界全体に影響を及ぼしてしまう場合がある。これは、複合現実感において、現実画像と多くの仮想画像を重畳させて表示していることから、体験者から遠いさまざまな仮想物体の画像まで透過表示され、体験している画像が大きく変化することで逆に体験者を混乱させることにつながるためである。
このように、第１の実施形態の透過処理に加え、より危険回避をするためには、視界への影響を最小限にすることが望まれる。
具体的には、体験者の周囲数メートルの現実空間が視認できれば十分であり、その範囲内に存在するＣＧモデルを非表示にすることが考えられる。
【００６９】
本実施形態では、体験者のＨＭＤ１２０の位置とＣＧモデルの位置と、加速度により、非表示または透過制御とするＣＧモデルを決定し、必要なオブジェクトを決定する。
以下、第２の実施形態の詳細について説明する。なお、第１の実施形態と同様の箇所については説明を省略する。
【００７０】
第２の実施形態における複合現実感システムの詳細な処理について図１０を用いて説明する。図１０は、第２の実施形態における複合現実感システムの詳細な処理のフローチャートである。
【００７１】
ステップＳ１００１では、ステップＳ４１６で特定されたモデルの位置が、ＨＭＤ１２０と所定距離内かを判定する。具体的には、特定されたモデルの位置情報（空間上の座標）と、ＨＭＤ１２０の位置から直線距離を算出し、算出された距離が、図１２の透過範囲１２０４の距離内かを判定する。１２０１はＰＣ１００に保持している設定ファイル等に記述されているものとする。なおＨＭＤ１２０とモデルの距離を算出する計算方法は既知の計算方法であるため、説明を省略する。
【００７２】
ステップＳ１００１で所定距離内のモデルと判定された場合には、ステップＳ４１８へ処理を写し、所定距離外のモデルと判定された場合には、ステップＳ４１９へ処理を移す。これにより、所定距離内のモデルは、透過表示され、所定距離外のモデルは透過表示されずに、通常表示される。
【００７３】
所定距離内のモデルが透過表示される例を示す図が図１１である。この図１１を用いて説明すると、加速度が閾値を超える前は、モデルＡ１００１、モデルＢ１００２、モデルＣ１００３が現実画像に重畳表示されている。加速度が閾値を超えた場合には、モデルＡ１００４、モデルＢ１００５、モデルＣ１００６のように重畳表示される。
モデルＣ１００６は、所定距離外のため透過制御されずに表示され、モデルＡは所定距離内のため透過制御されて表示されている。モデルＢ１００５は、透過フラグ１２００がＯＦＦであるため、透過制御されないで表示される。
なお、上述した所定距離内は、距離以内／未満は何れであってもよいことは言うまでもない。
【００７４】
図１２は、第２の実施形態における各モデル（仮想物体としての３次元モデル）の情報を管理するデータの一例を示す図である。
【００７５】
第２の実施形態によれば、近いＣＧモデルについて透過させ、遠いＣＧモデル（よろめいた際にユーザーに影響をおよぼさないＣＧモデル）は通常表示することで、体験中の映像を大きく変化させることなく、体験者のよる危険回避を行わせることが可能となる。
【００７６】
〔第３の実施形態〕
次に、第３の実施形態について説明する。第３の実施形態では、加速度に応じて、近いモデルをクリッピングによって非表示にさせる仕組みである。
第３の実施形態は、第２の実施形態のような仮想物体が小さい場合に加え、仮想物体が大きい場合により効果を奏する仕組みである。
【００７７】
複合現実感アプリケーション３０４においては、仮想物体として建物や大型の家具、プラントの配管など、体験者の周囲を覆う巨大なオブジェクトを配置するケースが考えられる。これらのオブジェクトは単一のＣＧデータである場合には、仮想物体全体が透過や非表示となり、視界全体に影響を及ぼしてしまう。
また、例えば、建物のようなモデルの場合、オリジナルのＣＡＤデータから複合現実感アプリケーションで表示できるモデル形式に変換する過程で部材の情報が失われ、単一の巨大なオブジェクトとして取り扱われるケースが多い。そのため、体験者の近くの部材だけ非表示にするという制御が困難であるという場合もある。
【００７８】
そこで、第３の実施形態では、モデルの表示状態を制御するための方式としてクリッピング平面の操作による制御を用いて、非表示制御をおこない危険を回避させる仕組みについて説明する。
【００７９】
まず初めに、図１３を用いて、クリッピング平面について説明する。
図１３は、クリッピング平面の概念を示した図である。具体的には、カメラ１２２の視線方向と垂直になる２つの平面を定義し、カメラ１２２から近い方（ｎｅａｒ）に位置する平面を前方クリッピング平面、遠い方（ｆａｒ）に位置する平面を後方クリッピング平面と呼ぶ。この２つの平面と、画面の四辺（ｔｏｐ，ｂｏｔｔｏｍ，ｌｅｆｔ，ｒｉｇｈｔ）によって切り取られる平面に囲まれた空間内に位置する物体のみ描画し、その外側に位置する物体は切り取って描画対象から除外して表示する。なお、前述の６つの平面に囲まれた空間を視錐台と呼ぶ。
なお、描画において、ＯｐｅｎＧＬやＤｉｒｅｃｔＸなどのグラフィックエンジンを用いる際には、計算アルゴリズム上の制約から、描画する対象の仮想空間を有限な空間に限定されるものとする。
ＯｐｅｎＧＬにおいては、視錐体の形状はｎｅａｒ，ｆａｒ，ｔｏｐ，ｂｏｔｔｏｍ，ｌｅｆｔ，ｒｉｇｈｔの６つのパラメータによって決定される。
【００８０】
なお、クリッピング平面の技術については、例えば、「３次元コンピュータ・アニメーションの原理  第２版  Ｐ７７〜Ｐ７９（株式会社トッパン／発行・Ｍ．オローク／著作）」に記載の技術が用いることで実現可能である。
本実施形態では、このクリッピング平面の技術を用い、よろめいた体験者が危険回避行動をとる間、カメラから前方クリッピング平面の距離を遠ざけることによって、体験者の近くのＣＧを非表示にする。
【００８１】
図１４の計算式は、図１３において、距離ｎｅａｒに位置する前方クリッピング平面をｄｉｓｔ分移動させた場合の視錐台のパラメータを求めるための計算式の一例である。
【００８２】
ここで体験者がよろめいている状況において急激な風景の変化を緩和するため、ニアクリップ面はアニメーションで段階的に後退し、一定時間経過後はアニメーションで元のクリップ面に戻るようにする。ここで時間によるニアクリップ面の後退率を「ｐ」とすると、視錐台を定義するパラメータは図１４の計算式で算出される。
なお、「ｐ」「ａ」「ｔ０」「ｄ」などの変数は、透過するＣＧモデルが透過されるタイミングでクリッピングによる非表示制御をするため、同様の値を用いるものとするが、「ａ」「ｄ」などの変数の値は、任意の値を用いることも可能である。
また、「ｄＭａｘ」は、ニアクリッピング平面を移動させる最大距離を表すための変数であり、体験者から見て最大「ｎｅａｒ＋ｄＭａｘ」の距離の範囲を非表示にすることが可能となる。ニアクリッピング平面はファークリッピング平面より後ろに設定することはできないため、ｄＭａｘはｄＭａｘ＜ｆａｒ−ｎｅａｒを満たす正の数が任意に設定される。
なお、本実施形態では、ｎｅａｒは通常１０ｃｍに設定されており、ＣＧモデルの描画がストップされる位置である。
また、算出されたｎｅａｒ’によりｎｅａｒが決定されると、それまで表示していたものが非表示（ｎｅａｒ’の範囲が非表示）になり、現実画像が見えることになる。
図１４の計算式は、画角を維持したまま、クリッピング平面を後ろずらすための式である。
【００８３】
図１５は、本実施形態におけるモデルの情報を管理するデータの一例を示す図である。第１の実施形態の図９や第２の実施形態の図１２の透過フラグに変え、非表示制御方式を定義する構成としている。非表示制御方式１５０４の属性として、透過、なし、クリッピングが定義可能である。
【００８４】
第１の実施形態または第２の実施形態では、透過フラグ９０３は非表示にする制御を行う（ＯＮ）／行わない（ＯＦＦ）の二値であったが、本実施形態では非表示の制御方式を第１の実施形態で説明した透過（第１の非表示）に加え、クリッピング（第２の非表示）、透過を行わない（通常表示）の三値をとる。この三値の他に新たに表示制御方式を定義してもよい。
【００８５】
図１６は、第３の実施形態の詳細を示す、複数の非表示制御方式を採用した場合の表示制御のフローチャートである。
【００８６】
ステップＳ１６０１では、複合現実感プラットフォーム３０３では、変数「ｔ」にＰＣ１００のシステム時間を代入する。この変数「ｔ」は後述の非表示の制御で用いる。なお、ステップＳ１６０１は、図４のステップＳ４０５に相当する処理である。
ステップＳ１６０２では、オペレーティングシステム３０１を介して複合現実感プラットフォーム３０３が画像を受信する。図４のステップＳ４０４に相当する処理である。
【００８７】
ステップＳ１６０３では、複合現実感プラットフォーム３０３の位置姿勢計測部２０１によりＨＭＤ１２０の位置・姿勢を計測する。これにより、ＨＭＤ１２０の位置・姿勢が決定され、ＨＭＤ１２０の位置・姿勢にしたがって、描画するＣＧモデルが決定される。すなわち、速度が所定値を超えた場合に、ＨＭＤ１２０（撮像装置）の位置と姿勢に従って、所定の範囲で非表示となる（透過またはクリッピングする）仮想物体が特定される処理に相当する。図４のステップＳ４０６とステップＳ４１６に相当する処理である。
【００８８】
ステップＳ１６０４では、複合現実感プラットフォーム３０３の加速度計測部２０２により、加速度を計算する。なお、加速度は加速度センサーにより求められるものであってもよい。図４のステップＳ４０７に相当する処理である。
【００８９】
以下、ステップＳ１６０５からＳ１６２２まで、登録されている仮想物体の数（図１５の３次元モデル分）だけループする。なお、ここでループする仮想物体は、ＨＭＤ１２０の位置姿勢から描画する仮想物体に対して行うものとする。
【００９０】
ステップＳ１６０６では、複合現実感プラットフォーム３０３が、複合現実感プラットフォーム３０３で管理している非表示制御のフラグがＴｒｕｅ、すなわち非表示を制御している状態かを判定する。非表示を制御している場合（Ｔｒｕｅ）には、ステップＳ１６１０へ処理を移し、非表示を制御していない場合（Ｆａｌｓｅ）には、ステップＳ１６０７へ処理を移す。
【００９１】
ステップＳ１６０７では、複合現実感プラットフォーム３０３が管理している加速度の閾値と比較する。加速度が閾値以上であった場合に、ステップＳ１６０９へ処理を移し、加速度が閾値未満であった場合には、ステップＳ１６０８へ処理を移す。なお、加速度が閾値以上である場合とは、ＨＭＤ１２０を装着している体験者がつまずくなどして人が転倒する可能性がある場合であり、加速度が閾値未満である場合とは、人の通常の動作である場合である。
【００９２】
ステップＳ１６０８では、非表示の制御を行わず、仮想物体のＣＧモデルを通常の状態で描画する。なお、加速度の閾値は、第１の実施形態と第２の実施形態と同様に、「６０ｍ／ｓ＾２」を用いるように構成するが、あくまでも一例でありこれに限ることはない。
【００９３】
ステップＳ１６０９では、非表示制御のフラグに「Ｔｒｕｅ」を設定し、変数「ｔ０」にＰＣ１００のシステムの現在時刻を設定する。これにより、透過制御が開始される。すなわち、加速度が所定値を超えた場合に、透過設定する処理の一例を示すステップである。
【００９４】
ステップＳ１６１０からステップＳ１６１４は、透過による非表示を行う処理である。以下、透過により非表示を行う処理について説明するが、第１の実施形態と第２の実施形態の透過制御は同様である。
【００９５】
ステップＳ１６１０では、図１５を参照し、現在処理の対象としているモデルに対応する非表示制御方式１５０４に応じて分岐する。本実施形態では、透過方式の場合はステップＳ１６１１に、クリッピング方式の場合はステップＳ１６１５に、非表示制御をしない通常表示の場合はステップＳ１６２１に処理を移す。
【００９６】
ステップＳ１６１１では、複合現実感プラットフォーム３０３が、現在時刻「ｔ」における透過率を計算する。透過率の計算は、図８の計算式を用いて算出する。なお、図８の計算式は、一例を示すものであってこれに限ることはない。また、ここで透過率が「０」になる場合（加速度が閾値を超えた直後、すなわち透過率制御フラグを「Ｔｒｕｅ」に設定した後のステップＳ１６１１の計算の場合）には、透過率に所定の値をプラスして、透過を始めるように制御する。
【００９７】
ステップＳ１６１２では、複合現実感プラットフォーム３０３が、透過率が「０」か否かを判断する。透過率が「０」の場合、ステップＳ１６１３へ処理を移す。すなわち、透過率が「０」になった場合とは、透過が終わった場合である。また透過率が「０」でない場合には、ステップＳ１６１４へ処理を移す。すなわち、透過率が「０」でない場合とは、透過中の場合である。
【００９８】
ステップＳ１６１３では、複合現実感プラットフォーム３０３が、透過率制御フラグを「Ｆａｌｓｅ」に設定し、透過制御を終了させる。すなわち、透過設定中（透過率制御フラグ「Ｔｒｕｅ」）、且つ、透過率（値）が基準値（例えば、「０」）に戻った場合に、仮想画像を透過させないよう透過設定を解除する処理の一例を示すステップである。
【００９９】
ステップＳ１６１４では、ステップＳ１６１１で算出した透過率を反映させて仮想物体のＣＧモデルを描画する。ＣＧモデルを透過させて描画する処理は、複合現実感アプリケーション３０４がグラフィックエンジンに描画命令を発行することにより制御する。
【０１００】
ステップＳ１６１５からステップＳ１６２０は、クリッピングにより非表示を行う処理である。
ステップＳ１６１５では、複合現実感プラットフォーム３０３における、図１３に示した視錐体の情報（ｎｅａｒ，ｆａｒ，ｔｏｐ，ｂｏｔｔｏｍ，ｌｅｆｔ，ｒｉｇｈｔ）を一時領域（例えば、ＲＡＭ）に退避する。これはクリッピング平面変更の影響を現在処理中のモデルに限定するためのものである。
【０１０１】
ステップＳ１６１６では、図１４の計算式に基づいて前方クリッピング平面までの距離（ｎｅａｒ’）を求める。
ステップＳ１６１７では、複合現実感プラットフォーム３０３が、図１４の計算方法における「ｐ」が「０」か否かを判断する。ｐが「０」の場合、ステップＳ１６１８へ処理を移す。すなわち、ｐが「０」になった場合とは、クリッピングによる非表示制御が終わった場合である。またｐが「０」でない場合には、ステップＳ１６１４へ処理を移す。すなわち、ｐが「０」でない場合とは、クリッピングによる非表示制御中の場合である。
【０１０２】
ステップＳ１６１８では、複合現実感プラットフォーム３０３が、非表示制御フラグを「Ｆａｌｓｅ」に設定し、非表示制御を終了させる。すなわち、クリッピング設定中（非表示制御フラグ「Ｔｒｕｅ」）、且つ、ｐが基準値（例えば、「０」）に戻った場合に、仮想画像をクリッピングさせないようクリッピング平面を通常の状態に戻す処理の一例を示すステップである。
【０１０３】
ステップＳ１６１９では、ステップＳ１６１６で求めた視錐体の情報（ｎｅａｒ’，ｆａｒ’，ｔｏｐ’，ｂｏｔｔｏｍ’，ｌｅｆｔ’，ｒｉｇｈｔ’）を反映させて仮想物体のＣＧモデルを描画する。この描画は、グラフィックエンジン３０２へ描画命令を出力することで実現する。
【０１０４】
ステップＳ１６２０では、ステップＳ１６１５で退避した視錐体の情報を複合現実感プラットフォーム３０３に反映させ、元の視錐体を復元する。これにより、次のモデルは通常のクリッピング平面で表示される。
【０１０５】
ステップＳ１６２１は、透過、クリッピングなどの非表示処理を行わず、通常通りにＣＧを描画する処理である。これにより遠方や高所にある仮想物体で、体験者がよろめいた際に手や足をつく可能性のない場所にあるモデルは非表示処理を行わないこととなる。
【０１０６】
ステップＳ１６２３では、これまで描画してきた仮想物体をグラフィックエンジン３０２を介してディスプレイ１２１に表示する。
【０１０７】
図１７は、第３の実施形態における複合現実アプリケーションで制御されたＨＭＤ１２０で表示される映像の一例を示す図である。現実空間の部屋１７０１の中に、仮想物体のティーポット１５０１、窓１５０２、長机１５０３が配置されている。これは、体験者がよろめいていない状態（加速度が所定値未満／以下）の場合の通常の表示状態である。
【０１０８】
図１８は、複合現実アプリケーションにおいて体験者がよろめいた際にＨＭＤ１２０で表示される映像の一例である。前述の図１６のフローチャートで説明したように、ティーポット１５０１は透過表示され（ステップＳ１６１４）、長机１５０３は前方クリッピング平面１８０１によって断面を切り取られて表示され（ステップＳ１６１９）、窓１５０２は影響を受けずに通常通りに表示される（ステップＳ１６２１）。
【０１０９】
第３の実施形態によれば、ＣＧモデルの近い位置について非表示にすることで体験中の映像を大きく変化させることなく、体験者のよる危険回避を行わせることが可能となる。
【０１１０】
また、ＣＧモデルごとに非表示制御方式を定義することで、モデルごとに透過させたり、クリッピングによる一部分の非表示にさせたりでき、モデルにあった危険回避時の描画制御を容易にさせることが可能となる。
【０１１１】
第１の実施形態〜第３の実施形態に基づくと、本発明における非表示処理は、透過表示および非表示を含む処理である。
【０１１２】
また、第１の実施形態〜第３の実施形態では、体験者がよろめいた場合を想定して説明したが、体験者が走った場合にも適用可能である。例えば、所定時間内に所定の範囲以上の距離を移動した場合に（所定の移動速度になった場合に）、非表示制御させる。すなわち、加速度は、移動速度を含むものである。
【０１１３】
ＨＭＤ１２０を装着して走ることは危険行動につながるため、近くのＣＧモデルを非表示（透過含む）することで、危険回避ができるように表示を制御することは、回避行動を行う際に効果がある。
【０１１４】
次に、第１の実施形態〜第３の実施形態に対応する本発明における機能ブロック図について、図１９を用いて説明する。
【０１１５】
速度取得部１９０１は、撮像装置が移動したことによる速度を取得する機能部である。
【０１１６】
特定部１９０２は、速度が所定値を超えた場合に、前記撮像装置の位置と姿勢に従って、所定の範囲で非表示となる仮想物体を特定する機能部である。
【０１１７】
描画制御部１９０３は、特定部１９０２により特定された仮想物体に対する仮想画像が非表示とし、前記現実空間の画像を体験者に視認させるように、撮像装置の位置と姿勢に応じて決定される仮想物体の仮想画像と前記現実空間の実写画像を用いて描画制御する機能部である。また、描画制御の非表示処理は、透過処理である。
また、描画制御部１９０３は、速度取得部１９０１で取得した速度に応じて決定された透過値に従って仮想画像を透過させる機能部である。
また、描画制御部１９０３は、判定部１９０４で透過させない仮想物体である場合には、仮想物体に対応する仮想画像を透過させることなく、判定部１９０４で透過させる仮想物体と判定された場合に、透過値に従って仮想物体に対応する仮想画像を透過制御する機能部である。
【０１１８】
また、描画制御部１９０３は、透過設定部１９０５で透過設定されている場合、
前回の透過値より高い透過値を用いて、仮想画像を透過制御する機能部である。
また、描画制御部１９０３は、透過された仮想画像と、透過されていない仮想画像と、実写画像を合成する機能部である。
また、描画制御部１９０３は、クリッピング平面決定部１９０６により決定されたクリッピング平面にしたがって、非表示とする仮想物体を描画制御する機能部である。
また、描画制御部１９０３は、判定部１９０４により、クリッピングにより非表示する仮想物体と判定された場合に、所定の範囲後退させたクリッピング平面を用いて、仮想画像を描画制御する機能部である。
【０１１９】
判定部１９０４は、描画制御部１９０３で透過させる仮想物体か否かを判定する機能部である。
また、判定部１９０４は、クリッピングにより非表示する仮想物体か否かを判定する機能部である。
【０１２０】
透過設定部１９０５は、速度取得部１９０１で取得された速度が所定値を超えた場合に、透過設定する機能部である。また、透過設定中、且つ、透過値が基準値に戻った場合に、仮想画像を透過させないよう透過設定を解除する。
【０１２１】
クリッピング平面決定部１９０６は、所定の範囲後退させたクリッピング平面を決定する機能部である。
出力部１９０７は、描画制御部１９０３で合成された画像を撮像装置で表示すべく出力する機能部である。
【０１２２】
以上、本実施形態によれば、体験者がよろめいた場合などの緊急時に、実写画像を視認させることで体験者が迅速な回避行動をとれる。また、表示するモデルデータに特別な加工を施す必要がなく、非表示制御の仕組みを容易に導入することができる。
【０１２３】
特に、複合現実感システムでは、ＨＭＤを利用し、実写画像に小さな仮想物体だけでなく、実写画像の大部分を仮想画像で合成してＨＭＤで表示するため、現実の状態と仮想の状態の区別が困難である。よって、体験者がふらつき、よろめいて転倒を回避する際に、とっさに仮想物体に対して手をつくことがある。そのため、仮想物体の画像のみを透過／非表示させ、より現実を認識させることで、体験者の回避行動が容易になる。なお、手をつくタイミングで非表示にしても遅く、加速度が所定値になった際に迅速に非表示にすることが必要であり、加速度を取得して、所定値以上になった場合に、近くのＣＧモデルを非表示にすることは技術的な意義を有するものである。
【０１２４】
また、複合現実感システムは、実写画像と仮想画像を合成し、体験者に実際の場所で仮想物体が現実にあるように見せることから、仮想画像を急に消すと見ていた状態が大きく変化してしまうため、転倒時などには特に体験者に混乱をきたす。よって加速度が所定値を超えた場合に、一定の速度で仮想画像を透過することで体験者の混乱を避けつつ、体験者の転倒回避行動を迅速にとらせることが可能となる。
【０１２５】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１２６】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１２７】
また、本発明におけるプログラムは、図４、図１０、図１６に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は図４、図１０、図１６の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図４、図１０、図１６の各装置の処理方法ごとのプログラムであってもよい。
【０１２８】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１２９】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１３０】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１３１】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３２】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３３】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１３４】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１３５】
１００  ＰＣ
１２０  ＨＭＤ
１２１  ディスプレイ
１２２  カメラ
２０１  位置姿勢計測部
２０２  加速度計測部
２０３  画面表示制御部
２０４  実写画像描画部
２０５  ＣＧ画像描画部
２０６  キャリブレーション部
【図１】
0005888372.tif 000002
【図２】
0005888372.tif 000003
【図３】
0005888372.tif 000004
【図４】
0005888372.tif 000005
【図５】
0005888372.tif 000006
【図６】
0005888372.tif 000007
【図７】
0005888372.tif 000008
【図８】
0005888372.tif 000009
【図９】
0005888372.tif 000010
【図１０】
0005888372.tif 000011
【図１１】
0005888372.tif 000012
【図１２】
0005888372.tif 000013
【図１３】
0005888372.tif 000014
【図１４】
0005888372.tif 000015
【図１５】
0005888372.tif 000016
【図１６】
0005888372.tif 000017
【図１７】
0005888372.tif 000018
【図１８】
0005888372.tif 000019
【図１９】
0005888372.tif 000020