(57)【要約】【課題】ヘッドマウントディスプレイを利用した仮想空間を体感するシステムにおいて、注視しようとする、もしくは注視されるべきオブジェクトに対し視点位置の感度を変更することで、容易にそのオブジェクトの詳細を認識し得る環境を提供する。【解決手段】ユーザに装着するためのヘッドマウントディスプレイ１０１に、ユーザの視点位置に従って生成した仮想空間の像を表示させる画像処理装置において、ユーザの前記視点位置を互いに異なる感度で検出する構成を用意しておき、そのいずれかを選択し、選択した感度で得られた視点位置に従いヘッドマウントディスプレイ１０１に表示すべき像を生成し、表示させる。【選択図】　図１
2004013326.tif 000002
【特許請求の範囲】
【請求項１】
ユーザに装着するためのヘッドマウントディスプレイに、ユーザの視点位置に従って生成した仮想空間の像を表示させる画像処理装置であって、
ユーザの前記視点位置を、互いに異なる感度で検出する複数の視点位置検出手段と、
前記複数の視点位置検出手段のいずれかを選択する選択手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記複数の視点位置検出手段の１つは、ユーザに装着する共通の視点位置検出装置で得られる視点位置情報のうち最新の１つの視点位置情報を採用した手段であり、
他の視点位置検出手段は、前記視点位置検出装置より時系列に得られる所定数の視点位置情報の平均値を算出する手段であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
更に、前記ヘッドマウントディスプレイに表示する像の拡大を指示する指示手段を備え、
前記選択手段は、前記指示手段による指示内容に応じて前記複数の視点位置検出手段の１つを選択することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
更に、前記仮想空間内に配置されるオブジェクト像を生成するため、各オブジェクト毎に、それぞれのオブジェク像を生成するための情報と、視点位置の感度を制御する属性情報とを記憶する記憶手段と、
検出した視点位置に従い、前記ヘッドマウントディスプレイに表示させるべき視野内に存在するオブジェクトの属性情報を判定する判定手段と
を備え、前記選択手段は、前記判定手段の判定結果に従って前記複数の視点位置検出手段の１つを選択することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項５】
前記選択手段は、所定のマニュアル指示手段による指示に従って、前記複数の視点位置検出手段の１つを選択することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項６】
ユーザに装着するためのヘッドマウントディスプレイに、ユーザの視点位置に従って生成した仮想空間の像を表示させる画像処理装置の制御方法であって、
ユーザの前記視点位置を、互いに異なる感度で検出する複数の視点位置検出工程と、
前記複数の視点位置検出工程のいずれかを選択する選択工程と
を備えることを特徴とする画像処理装置の制御方法。
【請求項７】
ユーザに装着するためのヘッドマウントディスプレイに、ユーザの視点位置に従って生成した仮想空間の像を表示させる画像処理装置用のコンピュータプログラムであって、
ユーザの前記視点位置を、互いに異なる感度で検出する複数の視点位置検出手段と、
前記複数の視点位置検出手段のいずれかを選択する選択手段と
として機能することを特徴とするコンピュータプログラム。
【請求項８】
請求項７に記載のコンピュータプログラムを格納することを特徴とするコンピュータ可読記憶媒体。
【請求項９】
ユーザの視点情報をセンサを用いて検出し、該視点情報に応じて画像を生成し、表示させる情報処理方法において、
前記センサによって検出された視点情報に対する応答感度を設定し、
前記設定された応答感度および前記センサによって検出された視点情報から視点情報を求め、
前記視点情報を用いて前記画像を生成することを特徴とする情報処理方法。
【請求項１０】
前記応答感度は、拡大率に応じて設定されることを特徴とする請求項９記載の情報処理方法。
【請求項１１】
前記応答感度は、ユーザが着目するオブジェクトに基づき設定されることを特徴とする請求項９記載の情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はヘッドマウントディスプレイに３次元の仮想空間の像を表示させることで、仮想現実感を提供する画像処理装置及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体に関するものである。
【０００２】
【従来の技術】
近年、コンピュータグラフィックス（以下ＣＧ）を利用して仮想現実感を提供するシステムが普及し始めている。そのような仮想現実感生成システムでは、仮想的な三次元空間の画像を、リアルタイムＣＧを使って生成することにより仮想現実感を実現している。ＣＧ画像の表示にヘッドマウントディスプレイ（以下ＨＭＤ）を利用した方法は、臨場感のある仮想現実感を安価に実現できる方法として普及している。また、視点を検出するためのセンサをユーザに取り付け、視点変化をトラッキングし、その情報をＣＧ画像生成時の視点情報に反映させれば、ユーザの視点変化に追従したＣＧ画像を生成することができる。これによって、よりリアリティのある仮想現実感が提供できる。ユーザの視点情報を検出する方法には、磁気式位置センサを頭部に取り付け、頭部位置の運動をトラッキングする方法や、眼球画像を解析し眼球運動をトラッキングする方法、及びそれらを複合した方法などが知られている。
【０００３】
【発明が解決しようとする課題】
前述のような仮想現実感生成システムでは、ユーザの視点変化に応答してＣＧ計算の視点設定を変化させるわけであるが、このユーザ視点変化への応答は適度な感度を持たせて行う必要がある。なぜなら、ユーザ視点変化への応答感度が鈍感であるとユーザに不快感を与えるからである。また、頭部運動トラッキングの場合、ユーザは自分が見ようとする方向に頭を動かしても、その動作に応じた変化、すなわち現実世界で期待される視界の変化がＨＭＤ上の表示部に直ちに現れない。よって、一般には、視点運動への応答感度は敏感である方が好ましい。
【０００４】
ところで、ＨＭＤを用いることでもって実空間では到底達成できないような体感をユーザーに与えることが可能になることに対しても着目したい。その一つとして、仮想空間におけるオブジェクトをズームインし（オブジェクトに対して空間的に接近する拡大ではなく、光学的に拡大するのと等価の拡大の場合）て見ることであろう。
【０００５】
かかる機能を実現する場合にも、ユーザの視点変化に応答して、ＣＧの視点設定を変更することになるが、ズームインした場合、すなわち、視点位置に応じた視野内にあるオブジェクトを拡大して生成し、それをＨＭＤが備えるディスプレイ部に表示する場合、視点位置が多少変化しただけでも、着目したい、或いは着目しているオブジェクト（或いはその一部）が視野から外れる、或いは外れやすくなることである。ちょうど、望遠鏡を手で持って観察する場合、「手ぶれ」により、目的とする対象物が視界から外れる場合に似ている。これをＨＭＤを用いた仮想空間に当てはめるのは、或る意味で現実感の再現するためと考えてもよいが、「手ぶれ」そのものは人間の意図に反するものである以上、仮想空間上ではむしろ再現しない方が良い。
【０００６】
以上はズームイン機能と視点運動の応答感度との対応で述べたが、ズームインを除外した視点運動の応答感度に起因する問題点も存在する。
【０００７】
例えば、ユーザが仮想空間中に置かれた「看板」等の文字情報を注視した場合、ユーザ視点変化への応答感度が敏感であると、頭部の微小運動によって画像がぶれ、文字情報が読み取り難い。視点変化に敏感であっても、その変化検出の精度が人間ほど高くないし、描画速度（フレーム数／単位時間）にも限界があることが、その大きな理由である。
【０００８】
以上のように、ＨＭＤを用いる場合、本来はユーザの視点検出の感度が高いことが望ましいものの、場合によっては逆にそれがマイナス要因となることが理解できよう。
【０００９】
本発明はかかる問題点に鑑みなされたものであり、その目的とするところは、ヘッドマウントディスプレイを採用し、仮想空間の像を視点変化に応じてＣＧ技術により生成する際、視点変化の応答感度を少なくとも２種類持たせることで、仮想現実感をより快適なものとすることを可能ならしめる画像処理装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体を提供しようとするものである。
【００１０】
【課題を解決するための手段】
かかる課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
ユーザに装着するためのヘッドマウントディスプレイに、ユーザの視点位置に従って生成した仮想空間の像を表示させる画像処理装置であって、
ユーザの前記視点位置を、互いに異なる感度で検出する複数の視点位置検出手段と、
前記複数の視点位置検出手段のいずれかを選択する選択手段とを備える。
【００１１】
【本発明の実施の形態】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１２】
＜第１の実施形態＞
仮想現実感生成システムでは、ユーザの視点変化に応答してＣＧ計算の視点設定を変化させる。この時、ユーザ視点変化への応答は適度な感度を持たせて行う必要がある。ここで、ユーザ視点変化への応答感度が鈍感であると、ユーザに不快感を与える。例えば、頭部運動トラッキングの場合、ユーザが、自分が見ようとする方向に頭を動かした場合、もし、応答感度が鈍感であると、その動作に応じた変化、すなわち現実世界で期待される視界の変化がＨＭＤ上に直ちに現れなくなる。これでは、仮想現実感の質が低下させるだけである。従って、通常の表示においてが、ユーザ視点変化への応答感度は敏感である方が好ましい。
【００１３】
ところが、前述したズーム機能を実現した場合、ズームイン（拡大）した状態では、ユーザ視点変化への応答感度が敏感であると、逆に、これが問題になる。何故なら、ズームイン状態では、視点の微小な運動が拡大され視界がぶれるからである。すなわち、現実世界で望遠鏡を見た場合の「手ぶれ」に相当する状況が発生する。
【００１４】
この「手ぶれ」現象自体も現実感の再現と考えることもできるが、通常、ユーザが物体にズームイン（光学的な拡大である）を行うというのは、その物体を詳細に観察したいという意志の現れである。したがって、ズームイン状態では「手ぶれ」を抑えるよう動作させることがユーザにとっては好ましい。「手ぶれ」を抑えるためには、ユーザ視点変化への応答感度を鈍くする必要がある。よって、ズームイン状態ではユーザ視点変化への応答感度を鈍くした方が好ましい。
【００１５】
このように、ユーザ視点変化への応答感度はユーザが通常観察をしているか拡大観察をしているかに応じて決める必要がある。
【００１６】
ところが、これまでの仮想現実感生成システムでは、ユーザ視点運動への応答感度が常に一定であり、上記のようなズームインに適用させることはできない。そこで、本実施形態では、かかる問題点を解決すること、換言すれば、ユーザ視点変化への応答感度を通常観察か拡大観察かに応じて切り替え、それに基づくＣＧ画像生成を行うことにより、ユーザの体感する仮想現実感をより快適なものにすることに成功する例を説明する。
【００１７】
以下、本発明の第一の実施形態について図１〜図６を用いて説明する。
【００１８】
［全体構成］
図１は本実施形態の装置構成の概念図である。
【００１９】
コンピュータ１０３はＣＧ画像を生成し、その映像はヘッドマウントディスプレイ（ＨＭＤ）１０１に出力される。ユーザはＨＭＤ１０１を装着し、ＨＭＤ１０１内に設けられたディスプレイを介して、コンピュータ１０３から出力される映像を見ることで、仮想空間として体験することになる。この時、ユーザは手元に置かれたキーボード１０６、または何らかのコントローラを操作し、必要に応じて拡大観察を行う。
【００２０】
本実施形態では、ユーザの視点（位置、方向）を検知する方法として、頭部位置変化を磁気式位置センサによって検知する方法を用いる。磁気式位置センサは製品（例えば、ポヒマス社製品など）が存在し、公知の機器であるため詳細な説明は省略する。磁気式位置センサは磁場を生成するトランスミッタ１０５、誘導電流を検出するレシーバ１０２、および制御用のコントローラ１０４から構成される。レシーバはユーザの頭部に装着され、トランスミッタはレシーバとの相対位置を考慮して、適度な位置に配置される。レシーバには、トランスミッタに対するレシーバの相対変位に応じた電流が発生し、コントローラではこれを解析し、位置データを算出する。コントローラはコンピュータに接続され、位置データがコンピュータに送られる。コントローラとコンピュータ間のデータ通信にはシリアル通信が用いられる。以後、頭部位置検出用磁気式位置センサを単に位置センサとよぶ。
【００２１】
なお、ユーザの視点変化の検出方法は磁気式位置センサに限らずとも、超音波センサや光センサで頭部位置の検出を行ってもよい。また、眼球画像の解析によって眼球運動を検出し、視点変化を検出する方法や、眼球運動検出法と頭部位置検出法の両方を組み合わせても構わないので、上記例に限定されるものではない。
【００２２】
［コンピュータの構成］
図２は本実施形態に使われるコンピュータ１０３の構成を示したものである。コンピュータ１０３の記憶装置２０４には、本実施形態の仮想現実感を生成するためのプログラムが格納される。また、仮想空間を構成する三次元空間における物体データ等もコンピュータの記憶装置２０４に格納される。この三次元物体データとは、頂点座標情報と、各頂点の連結によって定義されるポリゴン情報から構成されるデータである。記憶装置２０４に格納されたプログラムはコンピュータのＣＰＵ２０２によって実行され、画像メモリ２０５にＣＧ画像が生成される。ただし、最近のコンピュータでは、ＣＧ画像をＣＰＵによってのみ生成するのではなく、専用のハードウェア（ハードウェアＴ＆Ｌのグラフィックエンジンプロセッサ等）を併用して生成する場合が多い。２０６はそのようなＣＧ画像生成専用のハードウェアである。画像メモリ２０５に生成されたＣＧ画像は、コンピュータに接続されたＨＭＤ１０１に出力される。コンピュータには周辺機器としてキーボード１０６やマウス２０９が接続され、ユーザとコンピュータの対話に利用される。コンピュータのシリアル通信装置２０３には位置センサのコントローラ１０４が接続され、位置センサからの位置データがコンピュータに取り込まれる。
【００２３】
実施形態では、キーボード１０６は、図１に示したように、ＨＭＤ１０１を装着するユーザが拡大率を入力する手段として用いるものとしている。ただし、一般に、コンピュータの入力デバイスとして用いられるキーボードのような多数のキーが設けられる必要はなく、数種類（拡大率の大小を設定するので少なくとも２つ程度）でよい。また、キーボードとコンピュータとは、有線で通信するものとしているが、その間のケーブルが邪魔になることを考えれば、無線で通信するようにしてもよい。要するに、ズームイン＜−＞ズームアウトの操作が簡便にできることが望ましい。
【００２４】
［処理手順の説明］
以下、図３乃至図４のフローチャートは本実施形態の処理手順を説明する。
【００２５】
図３は本実施形態の処理手順を表すメインのフローチャートである。
【００２６】
処理全体にわたり使用する変数として、現在の感度設定を記憶する「感度」変数、観察対象の拡大率を表す「拡大率」変数を用意する。これら変数は、不図示のＲＡＭに予め確保されるものである。
【００２７】
プログラムが開始されると、ステップＳ３０１の初期化処理を行い、ステップＳ３０２において終了要求が発生するまで、ステップＳ３０３からステップＳ３０８までの処理を繰り返す。ステップＳ３０２における終了要求とは、ユーザがキーボードやマウスを使ってプログラムの終了を要求すること行われる。
【００２８】
ステップＳ３０３からステップＳ３０８までの処理が一フレーム分（一時刻分）のＣＧ画像生成の処理単位である。この処理単位が繰り返されることによって、ユーザ視点に応じてリアルタイムに変化する仮想空間の映像が生成される。
【００２９】
ステップＳ３０１の初期化処理では、「感度」変数を「高感度」に設定し、平均化バッファ初期化処理を行う。平均化バッファ初期化処理の説明は後述の平均化処理にて行う。「拡大率」変数の値は「１」に設定する。なお、ここで言う「１」は、実空間との差がないことを示すもので「等倍」に相当するものである。
【００３０】
ステップＳ３０４では、ズーム操作処理を行う。図４はこのズーム操作処理のサブルーチンを示している。図３のメインフローチャートから、図４のズーム操作処理サブルーチンが繰り返し呼ばれることによって、ズーム操作が行われる。まず、キーボード１０６の特定のキー（ズームインキーとする）が初めて押された瞬間、拡大観察が開始される。この時、「感度」変数を低感度に変更し（ステップＳ４０３）、平均化バッファ初期化処理を行い（ステップＳ４０４）、拡大率を増加させる（ステップＳ４０５）。以後、ズームキーが押され続けている間は、ステップＳ４０３、Ｓ４０４はスキップされ、拡大率の増加が行われる。拡大率には最大値（リミッタ）が設定されており、この最大値を越えた場合は最大値に固定する（ステップＳ４０７）。ズームキーが初めて離された瞬間、拡大観察を止め通常観察に戻る。この時、「感度」変数を高感度に設定し（ステップＳ４０９）、拡大率を「１」に戻す（ステップＳ４１０）。
【００３１】
さて、ステップＳ３０４では、位置センサコントローラから送られてくる位置データを読み取る。位置データが無い場合、視点変更に関わる処理を全てスキップし、ステップＳ３０８に進んでＣＧ画像描画処理を行う。視点変化が無い場合（位置データが無い場合）にも、ＣＧ画像を再描画する理由は、例えば、物体をアニメーションさせるような場合、ＣＧ画像の変更要因が視点変化以外にも存在するからである。もし、視点変化以外にＣＧ画像の変更要因が無い場合は、ＣＧ画像描画処理もスキップしてよい。すなわち、ステップＳ３０５からステップＳ３０２に戻ってよい。
【００３２】
位置センサコントローラから送られてくる位置データのデータパケットには、位置センサレシーバのトランスミッタに対する変位情報が記され、次の６成分のデータが順番に並んでいる。
【００３３】
レシーバのトランスミッタに対する並進成分のＸ座標、Ｙ座標、およびＺ座標、レシーバのトランスミッタに対する回転を表す第一回転角、第二回転角、および第三回転角である。ただし、この三つの回転角は、Ｘ軸、Ｙ軸、およびＺ軸周りのオイラー角で表現される。
【００３４】
ステップＳ３０６では、現在の「感度」変数の値を調べ、「高感度」の場合は何もせずステップＳ３０８に進み、「低感度」の場合はステップＳ３０７の平均化処理を行い、位置データを修正した後、ステップＳ３０８に進む。
【００３５】
平均化処理は位置データの持つ時間的高周波成分を落とし、視点変化への応答感度を下げることである。それ故、「低感度」が設定されている場合には、現在の上記６成分のデータを含め、過去ｎ回のデータの平均値を算出するようにする（そのため、過去のｎ回分のデータを記憶保持するようにする）。
【００３６】
位置センサコントローラ自体が平均化処理の機能を持つようにしても良い。位置センサコントローラの平均化機能を使う場合、コントローラの出力データは、平均化済みデータ、または直接データどちらかなので、ステップＳ３０６、３０７はスキップしてよい。その代わり、「感度」変数を「低感度」、または「高感度」へ切り替える処理に対応して、コントローラの動作モードを「平均化処理有効」、または「平均化処理無効」にそれぞれ切り替える。
【００３７】
［平均化処理］
ここで、ステップＳ３０７にて行われる平均化処理の説明を行う。
【００３８】
位置データの平均化は、並進、回転の６成分それぞれについて、過去に蓄積された複数のデータを平均化することによって行う。この平均化処理は各６成分について同様であるので、特定の一成分についてのみ説明する。
【００３９】
過去のデータを蓄積するためには蓄積用バッファを設けておく。このバッファは終端を先端につないだ、いわゆるリングバッファ構造を持つ。これに加え、データの蓄積数を表す変数「データ蓄積数」と、最新のデータがリングバッファの何処に置かれているかを示す変数である「最新データインデックス」を設ける。平均化にはＮ個のデータを使用するものとする。このＮを大きくとることによって感度は下がり、逆に小さくとれば感度が上がる。Ｎは希望の感度が得られるよう適度な値にとればよい。蓄積用リングバッファはＮ個のデータを保持する大きさを持つ。
【００４０】
図３のステップＳ３０１の初期化処理、または後述の感度切り替えサブルーチンから呼ばれる平均化バッファ初期化処理では、「データ蓄積数」を「０」に設定し、また「最新データインデックス」がバッファの先頭を指すように設定する。
【００４１】
平均化処理は次のように行われる。
【００４２】
まず、最新のデータが入力されると、「データ蓄積数」がゼロでない場合に限り、「最新データインデックス」を、現在指しているデータの次のデータを指すように変える。ただし、この変更で「最新データインデックス」がバッファの末尾以降を指す場合は、バッファの先頭を指すように変更する。次に、「最新データインデックス」の指す位置にデータを書き込み、さらに、「データ蓄積数」がＮに満たない場合に限り「データ蓄積数」を一増やす。次に、リングバッファの「最新データインデックス」の指す位置から、「データ蓄積数」分のデータをリングバッファ逆方向に向けて読み出し、それらの平均値を求める。そして、求めた平均値を低感度モードでの修正されたデータと見なす。以上の処理を位置データの６成分全てにわたって行い、位置データを修正する。
【００４３】
以上、平均化処理の説明を終わり、図３のフローチャートの説明に戻る。
【００４４】
［ＣＧ画像生成］
ステップＳ３０８では、ＣＧ画像生成に関わる処理を行う。リアルタイムにＣＧ画像を生成する場合、通常、レンダリングエンジンとよばれるＣＧ専用のハードウェア、またはソフトウェアを利用することが多い。本実施形態でもそのようなレンダリングエンジンを使用する。その場合、ＣＧ画像生成の処理は、レンダリングエンジンに対する動作設定の処理と、レンダリングエンジンによる描画処理の実行によって行われる。
【００４５】
ここで、ＣＧ画像生成における描画方法と視点設定の方法について概要を説明しておく。図６は、ＣＧ計算により三次元物体データを二次元画像化、すなわち可視化する方法を示している。ＣＧ計算のアルゴリズムは複数存在するが、ここではリアルタイムレンダリングとよばれる分野で広く用いられているポリゴン単位の計算方法（以降、ポリゴンレンダリング）を取り上げる。ポリゴンレンダリングは、物体を構成する（または定義する）各ポリゴンに対し、図５に示したステップＳ５０２〜５０５の工程を施すことによって行われる。
【００４６】
まず、絶対的空間、いわゆるワールド座標系に配置されたポリゴンデータを取得し（ステップＳ５０１）、視点に相対な空間、いわゆるカメラ座標系に変換する（ステップＳ５０２）（この変換を以後、ワールド／カメラ座標変換とする）。なお、ここで言う「カメラ座標系」が物理的なカメラを有することを意味するものではなく、仮想的な視点位置にカメラを設置したと仮定することを意味するものである。実施形態の場合、ＨＭＤがユーザの視点位置でもあるので、ここで言うカメラ座標系はＨＭＤから見た座標系と言っても良いであろう。
【００４７】
続いて、ポリゴンに陰影を付けるための照明計算を行う（ステップＳ１５０３）を行う。
【００４８】
続いて、三次元座標から二次元座標への投影変換と画素座標へのマッピング（ステップＳ１５０４）を行う。この時、ポリゴンの三次元座標には投影行列による変換が施され、視体積へのクリッピングと投影処理が行われる。また、ビューポート変換によって投影面上の座標が実際の描画画素座標へマッピングされる。
【００４９】
最後に、ポリゴン像の塗りつぶし、すなわちラスタライズ処理（ステップＳ１５０５）を施し、最終的にポリゴンのレンダリング画像を得、表示のために出力する（ステップＳ５０６）。
【００５０】
これらの各工程の内容は広く知られたものであり、また、レンダリングエンジンによって実行されるものであるため、本発明の視点変更や画像拡大に関わる部分以外、詳細な説明は省略する。
【００５１】
レンダリングエンジンによって描画を行う場合、レンダリングエンジンに対する動作設定を描画に先立ち行い、その後、レンダリングエンジンに描画を実行させる。本発明に関わるレンダリングエンジンへの動作設定は次の二つである。
・動作設定１：
ステップＳ５０２の計算を定義するワールド／カメラ座標変換の設定。これによって、ＣＧ画像の視点の変更が実現される。
・動作設定２：
ステップＳ５０４の投影変換を定義する射影行列とビューポート変換の設定。これによって、ＣＧ画像の視野角の変更が実現される。
【００５２】
まず、「動作設定１」のワールド／カメラ座標変換の変更について説明する。
【００５３】
ＣＧの一般的な考え方では、先に説明したように、レンダリング視点を決める要因を、実世界のメカニズムと対応させ、カメラという概念で表現する。ワールド座標系からカメラ座標系への座標変換は、ワールド座標系にカメラ（カメラ座標系）がどのように配置されているか、という情報で表現できる。カメラの配置はカメラの位置と回転によって表現できる。よって、ワールド／カメラ座標変換は希望する視点に置かれたカメラの位置と回転情報から計算される。
【００５４】
［ワールド／カメラ座標変換の計算方法］
ワールド／カメラ座標変換は通常、同次座標を用いて表される。すなわち、ワールド座標系の任意の一点（ｘ，　ｙ，　ｚ，１）は、ワールド／カメラ座標変換によって、対応するカメラ座標系の一点（ｘ’，　ｙ’，　ｚ’，１）に変換され、式１のように表すことができる。式１の、ｍ１１〜ｍ３３の３×３部分行列は回転成分を表しており、この部分をＲｗｃとする。また、式１のＴｘ、Ｔｙ、Ｔｚは並進成分を表している。
【００５５】
【数１】
2004013326.tif 000003
【００５６】
ワールド／カメラ座標変換の逆変換である、カメラ座標系からワールド座標系への変換、すなわちカメラ／ワールド座標変換も式１と同様な形式として、式２で表すことができる。ここで、式２のＲｃｗはワールド座標におけるカメラの回転を表しており、（Ｃｘ，Ｃｙ，Ｃｚ）はカメラの位置を表している。
【００５７】
【数２】
2004013326.tif 000004
【００５８】
カメラの位置と回転情報からワールド／カメラ座標変換を計算するには、一旦、カメラ／ワールド座標変換を求め、その逆変換を求めることによって行う。通常、カメラの回転は、ワールド座標で表現される回転軸とその周りの回転の回転角で表現される。今、回転軸を（Ｘ，Ｙ，Ｚ）とし、回転角をθラジアンとすると、カメラ／ワールド座標変換行列の回転成分Ｒｃｗは、式３で計算される。カメラの回転が複数の回転の合成である場合は、個々の回転に対応した式３の行列を全て掛け合わせればよい。
【００５９】
【数３】
2004013326.tif 000005
【００６０】
式３のワールド／カメラ座標変換行列のＲｗｃは、Ｒｃｗの逆行列として求まるが、ここではＲｃｗが回転成分しか持たないので、単にＲｃｗの転置行列をＲｗｃとすればよい。すなわち、式４でＲｗｃが求まる。
【００６１】
【数４】
2004013326.tif 000006
【００６２】
Ｒｗｃが求まれば、ワールド座標におけるカメラの位置（Ｃｘ，Ｃｙ，Ｃｚ）から、式１のＴｘ、Ｔｙ、Ｔｚが式５によって求められる。
【００６３】
【数５】
2004013326.tif 000007
【００６４】
次に、「動作設定２」の画像拡大に関わる投影変換の変更について説明する。
【００６５】
三次元空間から二次元投影面への投影変換が射影行列によって決められる。射影行列は、式１と同様、４次同次座標に作用する４×４の行列として次のように定義される。
【００６６】
【数６】
2004013326.tif 000008
【００６７】
ここで、ｒは投影面右端のＸ座標、ｌは投影面左端のＸ座標、ｔは投影面上端のＹ座標、ｂは投影面下端のＹ座標、ｎは近クリップ面のＺ座標、およびｆは遠クリップ面のＺ座標を表す。また、投影面の幅ｗと高さｈは式６のｒ、ｌ、ｔ、ｂとそれぞれ次の関係にある。
ｗ＝ｒ−ｌ
ｈ＝ｔ−ｂ
本実施形態では、通常よく行われるように、視体積ピラミッドを視軸に関して対称にとる。すると、式６のｒ、ｌ、ｔ、ｂは単純に投影面の幅ｗと高さｈから次のように決まる。
ｒ＝　ｗ÷２　　　　　　　　　　　　　　　　　（式７）
ｌ＝−ｗ÷２
ｔ＝　ｈ÷２
ｂ＝−ｈ÷２
なお、式６のｆとｎは視野の深度方向の領域を、希望する程度に制限するよう適度な値に設定すればよい。
【００６８】
一方、ビューポート変換は投影面がどのように画像にマッピングされるかを定義するものであり、希望する画像領域の縦横の大きさを指定することによって設定が行われる。本発明では表示される画像領域の大きさは固定にするので、ビューポート変換の設定はプログラム開始時に一度設定すればよい。画像領域の大きさは適度な大きさにとればよい。
【００６９】
ＣＧ画像自体の大きさは固定であるが、射影行列の視野角に関連する部分を変更することによって、ＣＧ画像の描画対象を拡大することができる。図６はこの状況を説明する概念図である。図６の上段には、異なる視野角での投影処理を上から見た図を示してある。図６の中段、下段には視野角の大きい場合と小さい場合の投影像をそれぞれ示してある。図６からわかるように、投影面の幅ｗと高さｈを縮小することにより、描画対象の画像が拡大される。
【００７０】
描画対象の拡大を表すパラメータをＭ（Ｍ≧１）とし、通常サイズの画像を得る場合の投影面の幅と高さが、それぞれｗ０、ｈ０であったとする。この時、描画対象をＭ倍程度に拡大するには、次の式８によりｒ、ｌ、ｔ、ｂを決め、式６の射影行列を設定すればよい。
ｒ＝　ｗ０÷Ｍ÷２　　　　　　　　　　　　　　（式８）
ｌ＝−ｗ０÷Ｍ÷２
ｔ＝　ｈ０÷Ｍ÷２
ｂ＝−ｈ０÷Ｍ÷２
以上、カメラの位置、回転情報からワールド／カメラ座標変換を変更する方法と、視界画像の拡大率に応じて投影行列を変更する方法を説明した。
【００７１】
再び、図３のフローチャートの説明に戻る。
【００７２】
ステップＳ３０８では、まず、センサからの位置データに基づき、前記、ワールド／カメラ座標変換の計算方法で示した方法でワールド／カメラ座標変換を計算し、レンダリングエンジンに適用する。この時、カメラ／ワールド座標変換行列の回転行列は、位置データの三つのオイラー角それぞれについて式３の計算を行い、三つの行列を掛け算すればよい。また、位置データの並進成分は式２または式５の（Ｃｘ，Ｃｙ，Ｃｚ）として使用すればよい。ただし、並進成分に関しては、ＣＧ空間を表す論理的な長さ単位に適合するよう、適度なスケール変換を施して使用する。
【００７３】
続いて、現在設定されている「拡大率」を式８のＭとし、式８と式６により射影行列を求めレンダリングエンジン適用する。最後にレンダリングエンジンによる描画を実行し、レンダリング画像を得る。ステップＳ３０８における描画処理が終わると、次のＣＧ画像を生成すべく、ステップＳ３０２にもどりステップＳ３０３〜Ｓ３０８までの一連の処理を繰り返す。
【００７４】
以上説明したように本実施形態によれば、ＨＭＤを用いる場合、操作者の視点位置変化に敏感に応答するモードと、それより鈍感にするモードを、ズームインするか否かに応じて切り替えることにより、より快適な仮想現実感をユーザに与えることが可能となる。
【００７５】
なお、上記実施形態では、視点位置変化に対する感度を２種類とし、ズームインする／しないの２状態に対応づける例を説明したが、ズームイン倍率及び視点位置変化に対する感度をそれぞれ多段階にし、各ズーム倍率に応じて視点位置変化に対する感度を調整するようにしても良い。
【００７６】
最新の視点位置に関する情報を仮にＦ０（上記のように６つのデータで構成される）とし、時間的にＮ回前のタイミングでのデータをＦＮと表現し、感度を示す変数Ｍを定義したとき、Ｆ０〜ＦＭの加算平均を算出するようにすればよい。すなわち、拡大率に応じて変化する、或いは、変化するように設定する変数Ｍを定義し、時系列に得られる視点位置データの、変数Ｍで示される個数の平均値を採用することで、感度を調整する。この場合、Ｍの値が小さいほど感度が高い、換言すれば、Ｍの値が大きいほど感度が低いことを示すことになる。
【００７７】
なお、位置センサコントローラ１０４が、制御指示コマンドに与えることで、視点変化の応答感度を変化させる手段を有する場合には、それを採用することで実現できるので、上記実施形態によって本発明が限定されるものではない。
【００７８】
また、場合によっては、１つの共通な位置センサコントラを活用するのではなく、ユーザに、感度が異なる複数の視線位置装置を装着するようにしても構わないであろう。
【００７９】
ただし、ユーザに装着する装置は少ないほうが良いし、感度が固定の既存の位置センサコントローラを使用することを考慮すれば、上の如く、単純な平均算出処理で実現するとコスト的に有利である。
【００８０】
以上説明したように、本第１の実施形態によれば、視点追従型の仮想現実感を生成する場合において、拡大観察時に追従感度が適切に設定された快適な仮想現実感を提供することが可能になる。
【００８１】
＜第２の実施形態＞
上記第１の実施形態では、ズームインに応じて視点位置の応答感度を調整するものであったが、倍率が固定の場合であっても、その応答感度が高いことに起因する問題点がある。それは、例えば、仮想空間内に「看板」等が表示されている場合において、それを注視する場合である。ユーザの視点位置の変化に対して感度が高いと、ユーザの頭部の微小運動に応じて画像がぶれてしまい、文字情報が読みにくくなる。
【００８２】
そこで、本第２の実施形態では、これを解決する例を説明する。なお、説明を簡単なものとするため、システムの構成及びコンピュータの構成は、上記の第１の実施形態における図１、図２と同様であるものとし、その説明は省略する。また、基本的には、第１の実施形態と同様、視点位置変化に対する感度を変更するものであり、重複する部分も存在するが、動作や処理手順についてはその重複部分を省略せず、改めて説明することとする。また、後述するように、本第２の実施形態の場合、ＨＭＤを使用中、そのユーザはキーボード１０８を操作する必要がない。
【００８３】
［処理手順の説明］
図７〜図１０のフローチャートは本第２の実施形態の処理手順を表している。以下、同図を用いて本第２の実施形態の処理手順を説明する。
【００８４】
図７は本第２の実施形態の処理手順を表すメインのフローチャートである。
【００８５】
プログラムが開始されると、ステップＳ１３０１の初期化処理を行い、ステップＳ１３０２において終了要求が発生するまで、ステップＳ１３０４からＳ１３１１までの処理を繰り返す。ステップＳ１３０２における終了要求とは、ユーザがキーボードやマウスを使ってプログラムの終了を要求することである。
【００８６】
ステップＳ１３０４からＳ１３１１までの処理が一フレーム分（一時刻分）のＣＧ画像生成の処理単位である。この処理単位が繰り返されることによって、ユーザ視点に応じてリアルタイムに変化する仮想空間の映像が生成される。
【００８７】
ステップＳ１３０１の初期化処理では、「感度」変数を「高感度」に設定し、平均化バッファ初期化処理を行う。平均化バッファ初期化処理の説明は後述の平均化処理で行う。
【００８８】
ステップＳ１３０４では、位置センサコントローラから送られてくる位置データを読み取る。位置データが無い場合、視点変更に関わる処理を全てスキップし、ステップＳ１３１１に進んでＣＧ画像描画処理を行う。視点変化が無い場合（位置データが無い場合）にも、ＣＧ画像を再描画する理由は、例えば、物体をアニメーションさせるような場合、ＣＧ画像の変更要因が視点変化以外にも存在するからである。もし、視点変化以外にＣＧ画像の変更要因が無い場合は、ＣＧ画像描画処理もスキップしてよい。すなわち、ステップＳ１３０５からＳ１３０２に戻ってよい。
【００８９】
位置センサコントローラから送られてくる位置データのデータパケットには、位置センサレシーバのトランスミッタに対する変位情報が記され、次の６成分のデータが順番に並んでいる。
【００９０】
すなわち、レシーバのトランスミッタに対する並進成分のＸ座標、Ｙ座標、およびＺ座標、レシーバのトランスミッタに対する回転を表す第一回転角、第二回転角、および第三回転角である。ただし、この三つの回転角は、Ｘ軸、Ｙ軸、およびＺ軸周りのオイラー角で表現される。
【００９１】
ステップＳ１３０６では、現在の「感度」変数の値を調べ、「高感度」の場合は何もせずステップＳ１３０８に進み、「低感度」の場合はステップＳ１３０７の平均化処理を行い、位置データを修正した後ステップＳ１３０８に進む。
【００９２】
平均化処理は位置データの持つ時間的高周波成分を落とし、視点変化への応答感度を下げることである。位置センサコントローラ自体が平均化処理の機能を持つ場合もある。その場合は、コントローラが出力するデータは、既に平均化されたもの、または平均化されていないものどちらかなので、ステップＳ１３０６、１３０７はスキップしてよい。その代わり、後述のステップＳ１３０９の「感度切り替え処理」において、コントローラの動作モードを「平均化処理有効」、または「平均化処理無効」のどちらかに切り替える。
【００９３】
［平均化処理］
ここで、ステップＳ１３０７にて行われる平均化処理の説明を行う。
【００９４】
位置データの平均化は、並進、回転の６成分それぞれについて、過去に蓄積された複数のデータを平均化することによって行う。この平均化処理は各６成分について同様であるので、特定の一成分についてのみ説明する。
【００９５】
過去のデータを蓄積するためには蓄積用バッファを設けておく。このバッファは終端を先端につないだ、いわゆるリングバッファ構造を持つ。これに加え、データの蓄積数を表す変数「データ蓄積数」と、最新のデータがリングバッファの何処に置かれているかを示す変数である「最新データインデックス」を設ける。平均化にはＮ個の視点位置データを使用するものとする。このＮを大きくとることによって感度は下がり、逆に小さくとれば感度が上がる。Ｎは希望の感度が得られるよう適度な値にとればよい。蓄積用リングバッファはＮ個のデータを保持する大きさを持つ。
【００９６】
図７のステップＳ１３０１の初期化処理、または後述の感度切り替えサブルーチンから呼ばれる平均化バッファ初期化処理では、「データ蓄積数」を「０」に設定し、また「最新データインデックス」がバッファの先頭を指すように設定する。具体的な、平均化処理は次のように行われる。
【００９７】
まず、最新のデータが入力されると、「データ蓄積数」がゼロでない場合に限り、「最新データインデックス」を、現在指しているデータの次のデータを指すように変える。ただし、この変更で「最新データインデックス」がバッファの末尾以降を指す場合は、バッファの先頭を指すように変更する。次に、「最新データインデックス」の指す位置にデータを書き込み、さらに、「データ蓄積数」がＮに満たない場合に限り「データ蓄積数」を一増やす。次に、リングバッファの「最新データインデックス」の指す位置から、「データ蓄積数」分のデータをリングバッファ逆方向に向けて読み出し、それらの平均値を求める。そして、求めた平均値を低感度モードでの修正されたデータと見なす。以上の処理を位置データの６成分全てにわたって行い、位置データを修正する。
【００９８】
以上、平均化処理の説明を終わり、図７のフローチャートの説明に戻る。
【００９９】
ステップＳ１３０８では、位置センサから取得した位置データ、または修正された位置データを用い視線判別処理を行う。ここで、図８を用いて視線判別処理の説明を行う。図８は視線判別処理のサブルーチンを表すフローチャートである。
【０１００】
ステップＳ１４０１の初期化処理では、まず、「視線判別結果」変数の値を「低感度領域と交差なし」に初期化しておく。また「旧視点交差点間距離」変数の値を十分大きな値に設定しておく。
【０１０１】
ステップＳ１４０２以降の処理では、三次元空間中に含まれる物体全てにわたり、視線交差に関する評価を行う。ただし、空間中に含まれる全ての物体を評価しなくとも、いわゆるオクトツリーなどの方法を使い、視野に含まれる可能性のある物体を選別し、その選別された物体に対してのみ評価を行うと処理が早く完了し、フレームレートを上げることができる。
【０１０２】
ステップＳ１４０２にて、未処理の評価物体を選び、未処理の評価物体が無くなるまで、ステップＳ１４０４〜Ｓ１４０６を繰り返す。
【０１０３】
ステップＳ１４０４では、評価物体が視線に交差するかを判別する。視線と物体の交差判定は、ＣＧ分野ではよく知られた計算方法であるため、簡単に説明する。
【０１０４】
物体（その情報は記憶手段２０４に記憶されている）はポリゴンから構成されているため、視線と物体の交差判定を行うには、物体を構成する全てのポリゴンにわたり、視線との交差判定を行えばよい。ポリゴンと視線の交差判定は三次元多角形と三次元直線の交差を判定すればよい。この多角形と直線の交差点の計算、または交差判定方法に関する計算方法は、数学的によく知られており説明は省略する。視線の幾何学的情報は位置センサの位置データ、または修正後の位置データから決まる。すなわち、位置データの位置情報から視線直線原点が決まり、位置データの回転情報から視線直線の方向が決まり、直線が特定される。
【０１０５】
なお、リアルタイムにＣＧ画像を生成する場合は、レンダリングエンジンとよばれるＣＧ画像生成専用のハードウェア、またはソフトウェアを利用する場合がほとんどであるが、そのようなレンダリングエンジンは通常、ポリゴンと視線の交差判定機能を備えている。よって、そのようなレンダリングエンジンの機能を利用して視線と物体の交差判定を行ってもよい。
【０１０６】
ステップＳ１４０４の交差判定の結果、評価物体が視線に交差しない場合は、ステップＳ１４０２に戻る。交差する場合は、その交差点と視点との距離を求め「新視点交差点間距離」とする。そして、「新視点交差点間距離」が「旧視点交差点間距離」より小さければ、「新視点交差点間距離」を新たに「旧視点交差点間距離」に設定し、現在の評価物体を「視線交差物体」に設定する。「新視点交差点間距離」が「旧視点交差点間距離」より大きければ何もせずステップＳ１４０２に戻る。
【０１０７】
ステップＳ１４０２において、未処理の評価物体が無くなるとステップＳ１４０７に進む。ステップＳ１４０７では、「視線交差物体」が存在しなければサブルーチンを終了し、存在すればステップＳ１４０８に進む。
【０１０８】
ステップＳ１４０８では、「視線交差物体」が低感度動作を適用する物体か、そうでないかを判別する。判別は、物体データに予め与えられた感度に関わる情報を基に行う。例えば、物体が文字の書かれたものである場合は、「低感度物体」という情報を、その物体データに予め与えておき、物体が文字の書かれたものでない場合は、「高感度物体」という情報をその物体データに予め与えておく。
【０１０９】
「視線交差物体」が低感度物体である場合に限り、ステップＳ１４０９において、「視線判別結果」の値を「低感度領域と交差あり」に設定しサブルーチンを終了する。
【０１１０】
以上、視線判別処理サブルーチンの説明を終わり、図７のフローチャートの説明に戻る。
【０１１１】
［感度切り替え処理］
図７におけるステップＳ１３０８の処理が終わると、その結果、すなわち図８の「視線判別結果」の値に基づき、ステップＳ１３０９の感度切り替え処理を行う。
【０１１２】
図９は感度切り替え処理（Ｓ１３０９）のサブルーチンを表すフローチャートである。
【０１１３】
感度の切り替えは、現在の「感度」変数が「低感度」、かつ「視線判別結果」が「低感度領域と交差なし」であった場合は、「感度」変数を高感度に設定する。また、現在の「感度」変数が「高感度」、かつ「視線判別結果」が「低感度領域と交差あり」であった場合は、「感度」変数を低感度に設定し、さらに平均化バッファ初期化処理を行う。なお、平均化処理として、位置センサコントローラ自体が持つ平均化処理機能を使う場合は、上記、「感度」変数の変更に応じて、コントローラに制御信号を送り動作モードを切り替える。すなわち、低感度から高感度への切り替え時には、動作モードを「平均化処理無効」に、高感度から低感度への切り替え時には、動作モードを「平均化処理有効」に切り替える。
【０１１４】
以上、感度切り替え処理サブルーチンの説明を終わり、図７のフローチャートの説明に戻る。
【０１１５】
［ＣＧ画像生成］
ステップＳ１３０９の感度切り替え処理が終わると、ステップＳ１３１０へ進み、ＣＧ画像生成に関わる処理を行う。ＣＧ画像生成の処理は視点設定を行う処理ステップＳ１３１０と、その視点設定に従ってＣＧ画像を描画（レンダリング）する処理ステップＳ１３１１に分けることができるが、その処理内容は第１の実施形態で説明した図５と同様であるので、その説明は省略する。ただし、本第２の実施形態ではズームイン（拡大）は考慮していない（考慮しても構わない）ので、式６を除く、式１乃至式５に関する記載に則って行われる点に注意されたい。
【０１１６】
以上、カメラの位置、回転情報からワールド／カメラ座標変換を求める方法や、その座標変換を使ってＣＧ画像の描画を行うと、図７のステップＳ１３１０に進むことになる。
【０１１７】
ステップＳ１３１０では、センサからの位置データを、前記ワールド／カメラ座標変換の計算方法で示した方法でワールド／カメラ座標変換に適用する。この時、カメラ／ワールド座標変換行列の回転行列は、位置データの三つのオイラー角それぞれについて式３の計算を行い、三つの行列を掛け算すればよい。また、位置データの並進成分は式２または式５の（Ｃｘ，Ｃｙ，Ｃｚ）として使用すればよい。ただし、並進成分に関しては、ＣＧ空間を表す論理的な長さ単位に適合するよう、適度なスケール変換を施して使用する。
【０１１８】
ステップＳ１３１１では、ステップＳ１３１０で設定されたワールド／カメラ座標変換を使い、図５で示したレンダリング処理を行う。
【０１１９】
そして、ステップＳ３１１が終わると、次のＣＧ画像を生成すべく、ステップＳ１３０２にもどり、Ｓ１３０４からＳ１３１１までの一連の処理を繰り返ことになる。
【０１２０】
以上説明した処理によって、本第２の実施形態によれば、仮想空間におけるオブジェクト毎に、視点位置変化に対する感度が高い、低いという属性を予め与えておき、視線感度を、ＨＭＤによる視線と交差するオブジェクトに依存して決定することができるようになる。従って、仮想空間内の文字等が描かれたオブジェクトに低感度を示す情報を予め設定しておいた場合、そのオブジェクトが視野内にある限りは視点変化に鈍感なものとなり、容易に文字を読むことも可能となる。
【０１２１】
＜第３の実施形態＞
なお、上記第２の実施形態は、ユーザ視点変化への応答感度を、ユーザの視点変化応じて自動的に切り替えるものであった。しかし、応答感度の切り替えはユーザが意図的に切り替えるようにしてもよい。この場合を第３の実施形態として説明する。
【０１２２】
この場合、図７のステップＳ１３０８とＳ１３０９が削除され、代わりにステップＳ１３０３の位置に手動感度切り替え処理が加えられるようにする。図１０は手動感度切り替え処理のサブルーチンを説明する図である。以下、手動感度切り替え処理についてのみ説明する。
【０１２３】
図１０のステップＳ１７０１において、ユーザからのキーボード等から感度指定入力があった場合はＳ１７０２進み、入力がない場合は何もしない。ユーザの感度指定入力とは、ユーザが高感度動作、または低感度動作の要求を、キーボードやマウスなどの入力装置を利用して行うことである。従って、システム構成は、図１に示すように、ユーザ（ＨＭＤを装着するユーザ）は、手元に指示入力手段を持つようにする。
【０１２４】
ステップＳ１７０２以降は感度指定に応じた処理を行うわけであるが、その処理内容は第２の実施形態の感度切り替え処理（図９）にほとんど等しい。図９のステップＳ１５０１がステップＳ１７０２の判別処理に置き換わり、Ｓ１５０１の判別結果「低感度領域と交差あり」と「低感度領域と交差なし」が、Ｓ１７０２の判別結果「低感度指定」と「高感度指定」にそれぞれ置き換わるのみである。
【０１２５】
以上説明したように、各実施形態によれば、注視しようとする、もしくは注視されるべきオブジェクトに対しては、視点位置の感度を低くすることで、容易にそのオブジェクトの詳細や文字等を認識し得る環境を提供できるようになる。
【０１２６】
具体的には、第１の実施形態にしたがえば、ＨＭＤを介して見えるオブジェクトを拡大して見ることへの指示に連動して視点位置変化が鈍感になるので、操作者にとっては、そのオブジェクト（或いはその一部）が視野から外れるということが起こりにくくなる。
【０１２７】
また、第２の実施形態に従えば、仮想空間内に配置されるオブジェクトと視線とが交差する場合に、視点位置変化の感度がそのオブジェクトの属性に応じて自動的に切り換わることになり、例えば、オブジェクト上に文字が描かれている場合にあっては容易にその文字を認識することも可能になる。
【０１２８】
また、第３の実施形態によれば、仮想空間内におけるオブジェクトに対し、ユーザーが注視したいとの要求に応じて、視点位置の変化に対する感度を下げることで、そのオブジェクトを楽な姿勢で注視することが可能となる。
【０１２９】
なお、上記各実施形態を互いに組み合わせても構わない。例えば、第１、第２の実施形態を組み合わせると、高感度として設定されたオブジェクトを拡大すると自動的に、低感度状態にさせることもできるようなるし、ユーザの拡大しなくても、ユーザの指示によって低感度モードにして注視することも可能になる。
【０１３０】
また、上記各実施形態での説明から明らかなように、本発明は、ＨＭＤ等の特定のハードウェアを必要とするものの、その主要処理はコンピュータ１０３によるソフトウェアでもって実現できる。従って、本発明はコンピュータプログラムをもその範疇とするものである。更に、通常、コンピュータプログラムはフロッピー（Ｒ）ディスクやＣＤＲＯＭ等を可搬性のコンピュータ可読記憶媒体に格納されており、その媒体をコンピュータにセットしてコピー或いはインストールすることで実行可能となるわけであるから、かかるコンピュータ可読記憶媒体も本発明の範疇に含まれることは明らかである。
【０１３１】
【発明の効果】
以上説明したように本発明によれば、ヘッドマウントディスプレイを利用した仮想空間を体感するシステムにおいて、注視しようとする、もしくは注視されるべきオブジェクトに対し視点位置の感度を低くすることで、容易にそのオブジェクトの詳細を認識し得る環境を提供できるようになる。
【図面の簡単な説明】
【図１】実施形態の構成を表す概念図である。
【図２】実施形態に使用されるコンピュータ及びその周辺装置のブロック構成図である。
【図３】第１の実施形態のメイン処理手順を説明するフローチャートである。
【図４】第１の実施形態のズーム処理サブルーチンを説明するフローチャートである。
【図５】実施形態におけるＣＧ計算の概要を表すフローチャートである。
【図６】投影条件と物体像の大きさの関係を表す概念図である。
【図７】第２の実施形態のメイン処理手順を説明するフローチャートである。
【図８】第２の実施形態の視線判別処理サブルーチンを説明するフローチャートである。
【図９】第２の実施形態における感度切り替え処理サブルーチンを示すフローチャートである。
【図１０】第３の実施形態における感度切り替え処理サブルーチンを示すフローチャートである。
【図１】
2004013326.tif 000009
【図２】
2004013326.tif 000010
【図３】
2004013326.tif 000011
【図４】
2004013326.tif 000012
【図５】
2004013326.tif 000013
【図６】
2004013326.tif 000014
【図７】
2004013326.tif 000015
【図８】
2004013326.tif 000016
【図９】
2004013326.tif 000017
【図１０】
2004013326.tif 000018