(57)【要約】 【課題】視点とは異なる位置から射出される射出オブジェクトを違和感なく提示する画像を生成する画像生成装置等を提供する。【解決手段】記憶部９０２は、仮想空間に配置される複数のオブジェクトを記憶し、画像生成部９０７は、当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成し、当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれ、画像生成部９０７は、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する。【選択図】図１０
2007265155.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間に配置される複数のオブジェクトを記憶する記憶部、
当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成する画像生成部
を備える画像生成装置であって、
当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれ、
前記画像生成部は、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する
ことを特徴とする画像生成装置。
【請求項２】
請求項１に記載の画像生成装置であって、
当該射出オブジェクトは、当該射出点と当該目標点とを結ぶ線分状もしくは曲線状の形状をなす
ことを特徴とする画像生成装置。
【請求項３】
請求項１に記載の画像生成装置であって、
当該射出オブジェクトは、当該射出点から当該目標点へ移動する
ことを特徴とする画像生成装置。
【請求項４】
請求項１から３のいずれか１項に記載の画像生成装置であって、
前記画像生成部は、当該視点との距離により当該複数のオブジェクトをソートして、当該複数のオブジェクトのそれぞれを、当該視点からの距離が遠い順に描画して当該画像を生成する
ことを特徴とする画像生成装置。
【請求項５】
請求項１から３のいずれか１項に記載の画像生成装置であって、
前記画像生成部は、当該視点との距離により当該複数のオブジェクトのうち当該射出オブジェクト以外のオブジェクトをソートして、当該ソートされた複数のオブジェクトのそれぞれを、当該視点からの距離が遠い順に描画し、その後に、当該射出オブジェクトを描画して、当該画像を生成する
ことを特徴とする画像生成装置。
【請求項６】
請求項１から５のいずれか１項に記載の画像生成装置であって、
指示入力を受け付ける入力受付部、
当該指示入力が受け付けられたとき、当該複数のオブジェクトのうち、当該仮想空間において当該視点から伸びる所定の半直線が初めて交叉するオブジェクトの位置を、当該目標位置として設定する目標設定部
をさらに備えることを特徴とする画像生成装置。
【請求項７】
記憶部、画像生成部を有する画像生成装置にて実行される画像生成方法であって、前記記憶部には、仮想空間に配置される複数のオブジェクトが記憶され、
前記画像生成部が、当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成する画像生成工程を備え、
当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれ、
前記画像生成工程では、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する
ことを特徴とする画像生成方法。
【請求項８】
コンピュータを、
仮想空間に配置される複数のオブジェクトを記憶する記憶部、
当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成する画像生成部
として機能させるプログラムであって、
当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれ、
前記画像生成部は、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する
ように機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視点とは異なる位置から射出される射出オブジェクトを違和感なく提示する画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、各種の射撃ゲームが提案されている。このようなゲームに関する技術は、たとえば、以下の文献に開示されている。
【特許文献１】特許第３３２５２６５号公報
【０００３】
[特許文献１]には、標的を射撃する射撃ゲームに関する技術が開示されている。射撃ゲームにおいては、当該仮想世界に設定された視点から照準へ向かう半直線、あるいは、視線の半直線を、標的となるオブジェクトに交叉するように設定することによって、照準を合わせることとする。そして、その交叉する位置が、弾道の目標点の位置となる。ガンシューティングゲームにおいては、弾丸は標的という目標点に向かって進む。
【０００４】
このほか、仮想世界において、マジックハンド、牽引ビーム、鞭、ベルト、投げ縄、トリモチのついた棹などを用いて、遠方の物を掴んだりするゲームも提案されている。マジックハンド等の場合には、マジックハンドの「腕」等が、遠方の物という目標点に向かって進む。
【０００５】
ここで、目標点に向かう経路を視点から開始するものとして画面に表示しても、画面内ではただの点として表示されることとなってしまい、目標点がどれぐらい奥にあるか、の奥行き情報がプレイヤに把握しにくいことも多い。そこで、当該経路の開始点、すなわち、弾丸の射出点や、マジックハンド等の手元側の端点（以下、このような端点も「射出点」という。）を、視点とはずらして設定することが行われている。たとえば、プレイヤが右利きの場合には、射出点は、視点、視線から見ての右下に設定することが広く行われている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のようなゲームにおいては、人の目を使って照準を合わせるから、目標点は仮想空間内の視点から見える位置にあるのが一般的である。そしてこの場合、視点と目標点との間には障害物は存在しない。
【０００７】
一方、射出点は、視点とは異なる位置にある。したがって、視点と目標点との間に障害物が存在しない場合であっても、射出点と目標点との間に障害物が存在することがありうる。このような場合に、射出点と目標点との間の経路が、障害物で遮られるように画面表示をしてしまうと、プレイヤの直観に反してしまい、違和感を感じさせてしまう、という問題が生じる。
【０００８】
本発明は、上記のような問題を解決することを課題とするものであって、視点とは異なる位置から射出される射出オブジェクトを違和感なく提示する画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１０】
本発明の第１の観点に係る画像生成装置は、記憶部、画像生成部を備え、以下のように構成する。
【００１１】
すなわち、記憶部は、仮想空間に配置される複数のオブジェクトを記憶する。
これらのオブジェクトは、それぞれ複数のポリゴンとそのテクスチャによって構成されており、記憶部に記憶される情報から、各ポリゴンの形状や位置、姿勢等を取得することができる。
【００１２】
一方、画像生成部は、当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成する。
すなわち、通常の三次元グラフィックス技術と同様、オブジェクトを構成するポリゴン同士の交叉や隠蔽関係を判定して、２つのポリゴンにおいては視点に近い方が視点から遠い方を隠蔽することはあっても、その逆はない、という関係を用いて、仮想空間内の様子をあらわす画像を生成する。
【００１３】
ここで、当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれる。
射出オブジェクトとしては、射撃ゲームにおいては弾道に沿って標的に向かう弾丸、遠隔操作系ゲームにおいては、手元の柄から掴みたい物や掴んでいる物に向かうマジックハンド、鞭、牽引ビーム、先端トリモチのついた棹などが考えられる。射出点としては、射出オブジェクトが射出される銃口、マジックハンド・鞭・棹等の手元側の端点、牽引ビームの発射口などが考えられる。
【００１４】
そして、画像生成部は、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する。
すなわち、射出オブジェクトは、当該視点との距離にかかわらず、他のいずれのオブジェクトよりも当該視点に近いものと擬制するのであるから、射出オブジェクトを構成するポリゴンが他のオブジェクトを構成するポリゴンを隠蔽することはあっても、その逆はない。したがって、射出オブジェクトは、他のオブジェクトに衝突したり、他のオブジェクトに隠されることはないのである。
【００１５】
本発明によれば、目標点に向かう射出オブジェクトが常に表示されるような、ユーザの直観に沿った画像を生成することができるようになる。
【００１６】
また、本発明の画像生成装置において、当該射出オブジェクトは、当該射出点と当該目標点とを結ぶ線分状もしくは曲線状の形状をなすように構成することができる。
【００１７】
本発明は、上記発明の好適実施形態に係るものであり、たとえば、遠隔操作系ゲームにおいて、手元の柄から掴みたい物や掴んでいる物に向かうマジックハンド、鞭、牽引ビーム、先端トリモチのついた棹などを、射出オブジェクトとして採用することができる。
【００１８】
また、本発明の画像生成装置において、当該射出オブジェクトは、当該射出点から当該目標点へ移動するように構成することができる。
【００１９】
本発明は、上記発明の好適実施形態に係るものであり、たとえば、射撃ゲームにおいて、弾道に沿って標的に向かう弾丸やミサイルなどを、射出オブジェクトとして採用することができる。
【００２０】
また、本発明の画像生成装置において、画像生成部は、当該視点との距離により当該複数のオブジェクトをソートして、当該複数のオブジェクトのそれぞれを、当該視点からの距離が遠い順に描画して当該画像を生成するように構成することができる。
【００２１】
いわゆるＺバッファ法を採用して画像の生成を行うものであるが、射出オブジェクトについては、視点との距離にかかわらず、他のオブジェクトよりも視点に近いものと擬制するのであるから、Ｚバッファにおけるソートの際にも、この擬制をそのまま適用する。したがって、射出オブジェクトは、Ｚバッファ内で、視点に最も近いオブジェクトとなる。
【００２２】
本発明によれば、Ｚバッファ法におけるオブジェクトのソートの比較関数を工夫することによって、容易に射出オブジェクトの描画を実現することができるようになる。
【００２３】
また、本発明の画像生成装置において、画像生成部は、当該視点との距離により当該複数のオブジェクトのうち当該射出オブジェクト以外のオブジェクトをソートして、当該ソートされた複数のオブジェクトのそれぞれを、当該視点からの距離が遠い順に描画し、その後に、当該射出オブジェクトを描画して、当該画像を生成するように構成することができる。
【００２４】
いわゆるＺバッファ法により画像の生成を行う段では、射出オブジェクト以外のオブジェクトを処理の対象とし、これらについて描画が終わった後に、Ｚバッファの処理対象とはしなかった射出オブジェクトを描画するものである。
【００２５】
本発明によれば、射出オブジェクトをＺバッファの処理対象から外すとともに、Ｚバッファの処理対象のオブジェクトの描画が終わった後に、射出オブジェクトの描画を行うことによって、容易に射出オブジェクトの描画を実現することができるようになる。
【００２６】
また、本発明の画像生成装置は、入力受付部、目標設定部をさらに備え、以下のように構成することができる。
【００２７】
すなわち、入力受付部は、指示入力を受け付ける。
この指示入力は、たとえば射撃ゲームにおける引き金やマジックハンドにおける掴み動作に相当するものである。
【００２８】
また、目標設定部は、当該指示入力が受け付けられたとき、当該複数のオブジェクトのうち、当該仮想空間において当該視点から伸びる所定の半直線が初めて交叉するオブジェクトの位置を、当該目標位置として設定する。
すなわち、目標点を、射撃が命中したオブジェクトの位置、マジックハンドで掴んだオブジェクトの位置等に設定するのである。
【００２９】
本発明によれば、種々のゲームにおいて、適切に弾道やマジックハンドの腕、牽引ビームなどの目標点を設定することができるようになる。
【００３０】
本発明のその他の観点に係る画像生成方法は、記憶部、画像生成部を有する画像生成装置にて実行され、画像生成工程を備え、以下のように構成する。
【００３１】
すなわち、記憶部には、仮想空間に配置される複数のオブジェクトが記憶される。
【００３２】
一方、画像生成工程では、画像生成部が、当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成する。
【００３３】
さらに、当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれる。
【００３４】
そして、画像生成工程では、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する。
【００３５】
本発明のその他の観点に係るプログラムは、コンピュータを上記の画像生成装置として機能させ、コンピュータに上記の画像生成方法を実行させるように構成する。
【００３６】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００３７】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００３８】
本発明によれば、視点とは異なる位置から射出される射出オブジェクトを違和感なく提示する画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００３９】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００４０】
図１は、プログラムを実行することにより、本発明の実施形態に係る装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００４１】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、マイク１１１と、を備える。
【００４２】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態に係る装置が実現される。
【００４３】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００４４】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００４５】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００４６】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。なお、コントローラ１０５の詳細については後述する。
【００４７】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００４８】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００４９】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００５０】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００５１】
また、仮想空間が３次元にて構成される場合には、当該３次元空間内に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００５２】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００５３】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェイス（図示せず）により構成される。
【００５４】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００５５】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００５６】
さらに、情報処理装置１００には、インターフェイス１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００５７】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００５８】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【００５９】
たとえば、一般的なコンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用する。
【００６０】
本実施形態では、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ１０５を採用する。
【００６１】
図２は、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ１０５と情報処理装置１００との外観を示す説明図である。以下、本図を参照して説明する。
【００６２】
コントローラ１０５は、把持モジュール２０１と発光モジュール２５１との組合せからなっており、把持モジュール２０１は無線通信によって情報処理装置１００と通信可能に接続されており、発光モジュール２５１は、有線で情報処理装置１００と通信可能に接続されている。情報処理装置１００の処理結果の音声および画像は、テレビジョン装置２９１によって出力表示される。
【００６３】
把持モジュール２０１は、テレビジョン装置２９１のリモートコントローラと類似した外観をしており、その先端には、ＣＣＤカメラ２０２が配置されている。
【００６４】
一方発光モジュール２５１は、テレビジョン装置２９１の上部に固定されている。発光モジュール２５１の両端には、発光ダイオード２５２が配置されており、情報処理装置１００からの電源供給によって発光する。
【００６５】
把持モジュール２０１のＣＣＤカメラ２０２は、この発光モジュール２５１の様子を撮影する。
【００６６】
撮影された画像の情報は、情報処理装置１００に送信され、情報処理装置１００は、当該撮影された画像内において発光ダイオード２５２が撮影された位置に基づいて、発光モジュール２５１に対する把持モジュール２０１の位置を取得する。
【００６７】
このほか、把持モジュール２０１内には、加速度センサ、角加速度センサ、傾きセンサ等が内蔵されており、把持モジュール２０１そのものの姿勢を測定することが可能となっている。この測定結果も、情報処理装置１００に送信される。
【００６８】
把持モジュール２０１の上面には、十字形キー２０３が配置されており、プレイヤは、十字形キー２０３を押し込み操作することによって、各種の方向指示入力を行うことができる。また、Ａボタン２０４ほか、各種ボタン２０６も上面に配置されており、当該ボタンに対応付けられた指示入力を行うことができる。
【００６９】
一方、Ｂボタン２０５は、把持モジュール２０１の下面に配置されており、把持モジュール２０１の下面に窪みが構成されていることとあいまって、拳銃やマジックハンドにおける引き金を模したものとなっている。典型的には、仮想空間内における拳銃による発砲やマジックハンドによる把持の指示入力は、Ｂボタン２０５を用いて行われる。
【００７０】
また、把持モジュール２０１の上面のインジケータ２０７は、把持モジュール２０１の動作状況や情報処理装置１００との無線通信状況などをプレイヤに提示する。
【００７１】
把持モジュール２０１の上面に用意された電源ボタン２０８は、把持モジュール２０１そのものの動作のオン・オフを行うもので、把持モジュール２０１は内蔵された電池（図示せず。）によって動作する。
【００７２】
このほか、把持モジュール２０１内部には、バイブレータ（図示せず。）が用意されており、情報処理装置１００からの指示に基づいて、振動の有無や強弱を制御することができるようになっている。
【００７３】
以下では、把持モジュール２０１と発光モジュール２５１との組合せからなるコントローラ１０５を用いて、コントローラ１０５の現実世界における位置や姿勢を測定することを前提に説明する。ただし、上記のような形態によらず、たとえば超音波や赤外線通信、ＧＰＳ（Global Positioning System）等を利用してコントローラ１０５の現実世界における位置や姿勢を測定するとした場合であっても、本発明の範囲に含まれる。
【００７４】
（ゲームの概要）
以下では、本発明が適用されるゲームの概要について説明する。本ゲームでは、仮想空間に配置されたオブジェクトを、マジックハンドで掴んである場所から別の場所へ移動させることを、一つの目的としている。本ゲームにおいては、プレイヤがコントローラを握るのに対応して、キャラクターはマジックハンドの柄を握っている。
【００７５】
ここで、マジックハンドとは、人の手の届く範囲よりも広い範囲に伸びる棒状の「腕」があり、その「腕」の先に配置される「手」によって、物を「吸着」して運搬したり、当該「吸着」を停止したりすることができるようなものをいう。したがって、棹の先端にトリモチがつけられており、そのトリモチによって遠方の物を獲得できるようにしたものも、マジックハンドと考えることができる。以下、理解を容易にするため、物がマジックハンドによって運搬されている間の状態を、日常的な文章表現に則って、「マジックハンドが物を掴んでいる」と呼ぶこととする。
【００７６】
図３は、このようなゲームにおける仮想空間と現実世界との対応関係を示す説明図である。以下、本図を参照して説明する。
【００７７】
仮想空間３０１には、マジックハンド３０２と、これで掴む対象となるオブジェクト３０３と、が配置されている。このマジックハンド３０２は、柄３０４と牽引ビームから構成されており、マジックハンド３０２の全長の大半を牽引ビームが占めている。「牽引ビーム」とは、漫画やアニメーションなどにおいて設定として採用されているもので、牽引ビームの先端で物体を掴み、その物体を引き寄せることができるようなものをいう。
【００７８】
本ゲームにおけるマジックハンド３０２の牽引ビームは棒状の形状をしている。そして、この牽引ビームは、オブジェクトを何も掴んでいないときには、いずれかのオブジェクト（壁など、各種の障害物のオブジェクトを含む。）に衝突するまで、マジックハンド３０２の柄３０４の一端の射出口から半直線状に伸びている。したがって、マジックハンド３０２の柄３０４の姿勢によって、マジックハンド３０２の牽引ビームの射出方向が定まることになる。
【００７９】
ここで、現実世界のプレイヤが把持モジュール２０１の位置・姿勢を変化させると、これに呼応して、マジックハンド３０２の柄３０４の位置・姿勢も変化する。したがって、本ゲームにおいては、把持モジュール２０１を測定対象として、把持モジュール２０１の位置や姿勢が測定され、マジックハンド３０２の柄３０４が指示対象となり、「当該把持モジュール２０１の姿勢の変化」という指示に基づいて、仮想空間３０１内において、マジックハンド３０２の柄３０４の位置や姿勢が変化させられることになる。
【００８０】
プレイヤは、ゲームの開始時に把持モジュール２０１を最も把持しやすい場所に固定する。すると、これに応じて、仮想空間３０１内に配置された視点３０５および視線３０６に対して、相対的に定められた位置に、最も自然な姿勢で、マジックハンド３０２の柄３０４が配置される。
【００８１】
このとき、現実世界においては、プレイヤに対して把持モジュール２０１が「基準位置」に配置されることとなり、仮想世界３０１においては、視点３０５および視線３０６に対してマジックハンド３０２の柄３０４が「基準位置」に配置されることになる。
【００８２】
この「基準位置」は、仮想空間内の視点３０５および視線３０６に対して相対的に決まるのであるが、これは、プレイヤが最も自然な姿勢で把持モジュール２０１を持った位置が、プレイヤの目の位置に対して相対的に決まることに呼応している。
【００８３】
仮想空間３０１内の視点３０５および視線３０６は、プレイヤが操作する（演ずる）仮想空間内のキャラクターの目（主観視点ともいう。）や、当該キャラクターを背後から見る目（客観視点、背後霊視点ともいう。）に対応し、この目がプレイヤの目に相当するものである。したがって、マジックハンド３０２の柄３０４の基準位置は、プレイヤの利き手に応じて、視点３０５よりも右下もしくは左下となるのが典型的である。
【００８４】
視点３０５から視線３０６の方向に進むと、仮想的な投影面３０７が、視線３０６に直交している。仮想空間３０１の様子は、画面に表示すべきオブジェクト３０３やマジックハンド３０２の牽引ビームを、この投影面３０７に、透視投影することによって得られる画像によってプレイヤに提示される。
【００８５】
透視投影の手法としては、視点３０５とオブジェクト３０３等とを結ぶ直線が、投影面３０７と交叉する点を用いる一点集中型投影が典型的であるが、視点３０５を無限遠方に配置し、オブジェクト３０３を通過して視線３０６に平行な直線が、投影面３０７と交叉する点を用いる平行投影を採用しても良い。
【００８６】
上記のように、マジックハンド３０２の柄３０４は、視点の右下（左下）に配置されているので、普通の状況では、投影面３０７のうちの画面に表示される範囲の外に透視投影される。したがって、画面にはマジックハンド３０２の柄３０４が表示されないのが一般的である。
【００８７】
さて、プレイヤが現実世界での基準位置から把持モジュール２０１の位置や姿勢を変化させると、その測定結果を参照して、情報処理装置１００は、マジックハンド３０２の柄３０４の位置や姿勢を、基準位置から対応する量（典型的には、現実世界と同じ量。）だけ、移動させる。
【００８８】
したがって、視点３０５および視線３０６に対する柄３０４の相対的な位置および姿勢は、把持モジュール２０１の位置や姿勢の変化に連動することとなる。プレイヤは、操作対象として把持モジュール２０１を用いて、指示対象たるマジックハンド３０２の柄３０４の位置や姿勢を変化させるのである。
【００８９】
プレイヤは、把持モジュール２０１の位置や姿勢を変化させて、マジックハンド３０２の柄３０４から伸びる牽引ビームが、所望のオブジェクト３０３に衝突するように操作する。そして、把持モジュール２０１のＢボタン２０５を押圧する。すると、マジックハンド３０２の先端が、オブジェクト３０３を掴むことになる。
【００９０】
上記のように、マジックハンド３０２の牽引ビームは、マジックハンド３０２の柄３０４の一端の射出点から、掴んだオブジェクト３０３の位置を目標点として向かう。したがって、Ｂボタン２０５の押圧によって、牽引ビームが向かうべき目標位置が設定されることになり、これはちょうど、射撃ゲームにおける引き金を引いた状態に相当する。また、本実施形態では、Ｂボタン２０５を押していないときは、マジックハンド３０２の牽引ビームが初めて衝突するオブジェクト３０３の位置が、牽引ビームの目標位置として設定されることになる。
【００９１】
この後は、オブジェクト３０３についての、運動のシミュレーションが開始される。オブジェクト３０３に印加される外力は以下の通りである。
（１）仮想空間内における重力。典型的には下向きである。
（２）仮想空間内において、マジックハンド３０２の柄３０４（もしくは視点３０５）とオブジェクト３０３とを結ぶ直線方向の力。いわゆる牽引力や反発力に相当する。これは、画面表示上は、プレイヤに近付く力、プレイヤから遠ざかる力に相当し、オブジェクト３０３とマジックハンド３０２の柄３０４（もしくは視点３０５）との距離、すなわち、マジックハンド３０２の伸縮によって定まる。
（３）仮想空間内において、マジックハンド３０２の柄３０４（もしくは視点３０５）とオブジェクト３０３とを結ぶ直線に直交する方向の力。これは、画面表示上は、上下左右に向かう力に相当し、マジックハンド３０２が撓む方向とその大きさによって定まる。
（４）オブジェクト３０３が移動している間に、移動方向とは反対向きに印加される力。いわゆる動摩擦力に相当する。
（５）オブジェクト３０３が静止している間に、外力とは反対向きに、同じ大きさだけ印加される力。いわゆる静止摩擦力に相当する。
【００９２】
ここで、マジックハンド３０２の伸縮および撓みについてさらに詳細に説明する。図４は、マジックハンド３０２の柄３０４とオブジェクト３０３との位置関係と、力の方向を示す説明図である。
【００９３】
本図に示すように、オブジェクト３０３を掴んでいるマジックハンド３０２は、柄３０４の位置や姿勢をプレイヤが変化させると、伸縮したり撓んだりする。一方、前述した通り、マジックハンド３０２の牽引ビームが何も掴んでいないときは、牽引ビームは、柄３０４の一端に設けられた射出口から直進する。
【００９４】
そこで、以下では、マジックハンド３０２の柄３０４の姿勢の方向３１１を、「マジックハンド３０２の牽引ビームが何も掴んでいないと仮定したときに牽引ビームが柄３０４の一端に設けられた射出口から直進する方向」と定義する。
【００９５】
一般に、マジックハンド３０２の牽引ビームがオブジェクト３０３を掴んでいるとき、オブジェクト３０３の重さによって牽引ビームが撓むため、マジックハンド３０２の柄３０４の姿勢の方向３１１と、柄３０４からオブジェクト３０３へ向かう方向とは、ずれが生じる。
【００９６】
したがって、牽引ビームは、柄３０４の姿勢の方向３１１に接するように発射され、その後滑らかに撓んで、オブジェクト３０３に至る曲線を描くこととなる。このような曲線としては、スプライン補間により得られるスプライン曲線や、円弧等、種々の曲線を用いることができる。このとき、オブジェクト３０３における牽引ビームの方向は、いわゆる開放端として計算するのが容易である。
【００９７】
オブジェクト３０３をマジックハンド３０２が掴み始めた瞬間の、柄３０４（もしくは視点３０５）とオブジェクト３０３との距離を、マジックハンド３０２の自然長と考えると、この自然長と、現在の仮想空間における柄３０４とオブジェクト３０３との距離と、を、対比すれば、バネに相当するような牽引力（反発力）４１１をシミュレートできる。すなわち、当該距離から自然長を引いた値に所定の整定数を乗じた値の牽引力（符号が負の場合は、絶対値の大きさの反発力。）４１１が生ずる、とすれば、簡易にシミュレーションを行うことができる。
【００９８】
一方、オブジェクト３０３を上下左右に動かそうとする力４１２は、マジックハンド３０２の柄３０４の姿勢（オブジェクト３０３を掴んでいないとしたときの、牽引ビームが伸びる方向。）と、柄３０４（もしくは視点３０５）からオブジェクト３０３に向かう方向と、のずれによって生じる。
【００９９】
すなわち、上下左右の力４１２の方向は、柄３０４の姿勢の方向３１１の方向ベクトル３２１から柄３０４（もしくは視点３０５）からオブジェクト３０３への方向の方向ベクトル３２２を減算したベクトル３２３の方向であり、その大きさは、当該ベクトル３２３に比例する、とするものである。
【０１００】
現実の物理現象に即して考える場合には、上下左右の力４１２は、さらに、柄３０４（もしくは視点３０５）とオブジェクト３０３との距離にも比例する、とすれば、簡易にシミュレーションを行うことができる。
【０１０１】
このようにして、マジックハンド３０２に掴まえられているがゆえにオブジェクト３０３に印加される外力が計算できれば、あとは、重力や静止摩擦力、動摩擦力を、通常の物理シミュレーションと同様に計算することによって、オブジェクト３０３にかかる加速度を計算することができ、これによって、オブジェクト３０３の位置を更新することができる。これにより、オブジェクト３０３を移動させるのである。
【０１０２】
オブジェクト３０３が所望の位置に移動したら、指を離してＢボタン２０５の押圧操作を解除する。これにより、マジックハンド３０２はオブジェクト３０３を掴むことをやめ、牽引ビームは、元の通り、マジックハンド３０２の柄３０４の姿勢の方向３１１に伸びるようになる。
【０１０３】
（マジックハンドの柄の姿勢）
さて、マジックハンド３０２の牽引ビームの形状は、オブジェクト３０３を掴んでいないときは半直線状で、柄３０４の姿勢の方向３１１を示しているが、オブジェクト３０３を掴んでいるときは撓むため、プレイヤに柄３０４の姿勢の方向３１１を提示する他の手法が必要となる。そこで用いるのがカーソル（指示標識）である。
【０１０４】
図５は、画面にカーソル（指示標識）とマジックハンドとオブジェクトが表示される様子を示す説明図である。以下、本図を参照して説明する。
【０１０５】
本図においては、マジックハンド３０２がオブジェクト３０３を掴んでいる状態が示されており、画面５０１内で、柄３０４の方向３１１は牽引ビームの方向と一致していない。すなわち、カーソル３０８は、柄３０４の方向３１１を示す直線上に表示されるが、これは、マジックハンド３０２の牽引ビームの上ではない。
【０１０６】
画面５０１への表示される画像は、投影面３０７へ投影されるオブジェクトの姿を示すものであるから、カーソル３０８の投影面３０７内における位置は、柄３０４から柄３０４の姿勢の方向３１１に伸びる半直線が投影面３０７に交叉する点の位置、とすれば良い。これによって、プレイヤは、画面を見るだけで、マジックハンド３０２の柄３０４の方向を適切に理解することができるようになる。
【０１０７】
なお、マジックハンド３０２がオブジェクト３０３を掴んでいる状態では、柄３０４の方向３１１は牽引ビームの方向と一致している。カーソル３０８は、マジックハンド３０２の牽引ビームの上に表示されることになる。このような表示例については、後述する（図８（ｂ））。
【０１０８】
また、カーソル３０８が表示される実施形態では、マジックハンド３０２の操作手法に以下のような変形を適用することができる。すなわち、Ｂボタン２０５を押していない間は、マジックハンド３０２の牽引ビームは射出されず、柄３０４の位置や姿勢が変化すると、画面５０１内におけるカーソル３０８の表示位置が変化する。
【０１０９】
カーソル３０８の表示位置は、マジックハンド３０２の柄３０４の姿勢の方向３１１と投影面３０７とが交わる位置を採用しているが、この態様では、「マジックハンド３０２の柄３０４の姿勢の方向３１１が初めて衝突する他のオブジェクト３０３の表面の位置」と、始点３０５とを通過する直線が、投影面３０７と交わる位置を採用しても良い。後者のようにすると、ちょうどレーザーポインタで部屋の中の物体を指し示しているような操作感を得ることができる。
【０１１０】
そして、Ｂボタン２０５を押圧操作すると、マジックハンド３０２の柄３０４の射出口から牽引ビームが発射され、牽引ビームが初めて衝突したオブジェクト３０３が移動可能であれば、これを吸着する。カーソル３０８の表示位置として、レーザポインタで物体を指し示すような態様を採用しているときは、当該カーソル３０８が重なって表示されるオブジェクト３０３が吸着されるオブジェクト３０３となり、プレイヤにとってもわかりやすい。なお、吸着したオブジェクト３０３の移動は、上記の説明と同様である。
【０１１１】
このほか、Ｂボタン２０５を押圧操作し続ける操作がプレイヤにとって面倒な場合もある。このような場合には、Ｂボタン２０５を押圧操作して離すと牽引ビームが発射されて吸着が行われ、そして、所望の位置までオブジェクト３０３を移動したら、もう一度、Ｂボタン２０５を押圧操作して離してマジックハンド３０２の牽引ビームを消去し、オブジェクト３０３が解放されるような形態を採用することもできる。
【０１１２】
上記の実施形態では、「指示入力の受付の開始」が「Ｂボタン２０５の押圧操作の開始」に、「指示入力の受付の終了」が「Ｂボタン２０５の押圧操作の終了」に、それぞれ対応するが、この態様では「指示入力の受付の開始」が「牽引ビームが射出されていない状態でＢボタン２０５を押圧して離す操作」に、「指示入力の受付の終了」が「牽引ビームが射出されている状態でＢボタン２０５の押圧して離す操作」に、それぞれ対応するのである。
【０１１３】
いずれの操作体系を採用するかは、プレイヤの習熟度やゲームの種類によって適宜変更が可能である。また、指示入力を発するボタンの割り当てなどについては、Ｂボタン２０５ではなく、Ａボタン２０４を採用する等、用途に応じて適宜変更が可能である。
【０１１４】
（視点の位置の移動）
以上の説明では、視点３０５の位置は変化しなかったが、視点３０５に対して相対的にマジックハンド３０２の柄３０４の位置を変化させるだけでは、オブジェクト３０３を所望の位置に移動させることができない場合がある。このようなときに、視点３０５そのものを仮想空間内で移動させるためには、十字形キー２０３を利用する、という手法もありうる。しかしながら、本ゲームにおいては、プレイヤにとってもっと直観的な移動の手法を採用する。
【０１１５】
図６は、マジックハンドの柄３０４の位置と、視点３０５の移動の方向との関係を説明する説明図である。以下、本図を参照して説明する。
【０１１６】
ゲームの開始時に、仮想空間３０１内において、視点３０５および視線３０６に対して相対的に、マジックハンド３０２の柄３０４の基準位置３１３が定められる。
【０１１７】
この後、プレイヤが把持モジュール２０１の位置を変化させると、マジックハンド３０２の柄３０４の位置も変化する。
【０１１８】
そこで、現在の柄３０４の位置の位置ベクトルから、基準位置３１３の位置ベクトルを減算したベクトル３１４の方向に、視点を移動させるのである。
【０１１９】
このため、ベクトル３１４（もしくはこれに定数を乗じたベクトル。）を、視点３０５の移動速度の速度ベクトルと考えて、所定の単位時間に当該速度ベクトルを乗じた量だけ、視点３０５を移動させるのが最も簡単である。
【０１２０】
また、仮想空間３０１内に所定の平面（典型的には、仮想空間３０１内における「地面」に相当するものであるが、これには限られない。）を想定し、ベクトル３１４（もしくはこれに定数を乗じたベクトル。）の当該所定平面方向の成分を移動速度の速度ベクトルと考えて、処理を行ってもよい。
【０１２１】
このほか、視点３０５を含むキャラクターに印加される外力ベクトル、もしくは、加速度ベクトル（これらの場合も、地面に平行な成分のみを考えるのが典型的である。）と考えて、視点３０５そのものの移動のシミュレーションを行うこともできる。
【０１２２】
テレビジョン装置２９１を見ているプレイヤが、把持モジュール２０１を後に（背中の方向に）移動させると、仮想空間３０１内の視点３０５を持つキャラクターは、後ろ向きに移動する。したがって、オブジェクト３０３を掴んでいるマジックハンド３０２は幾分伸びることとなり、一般的には、オブジェクト３０３には、視点３０５を持つキャラクターに向かう引力が印加され、オブジェクト３０３も画面奥から手前に向かって移動することとなる。
【０１２３】
プレイヤが、把持モジュール２０１を前に（テレビジョン装置２９１に近付くように）移動させると、仮想空間３０１内の視点３０５を持つキャラクターは、前進する。すると、オブジェクト３０３を掴んでいるマジックハンド３０２は幾分縮むこととなり、一般的には、オブジェクト３０３には、視点３０５を持つキャラクターから離れようとする反発力が印加され、オブジェクト３０３も画面手前から奥に向かって進むことになる。
【０１２４】
もっとも、オブジェクト３０３とマジックハンド３０２との間の柄３０４の間の伸び縮みによる牽引力・反発力は、必ずしも想定する必要はなく、マジックハンド３０２そのものの長さを変化させるような指示入力をＡボタン２０４や各種ボタン２０６によって行うこととしても良い。
【０１２５】
上記の形態によって、
（１）仮想空間３０１内において、視点３０５を有するキャラクターを前後に移動させること
（２）仮想空間３０１内において、視点３０５および視線３０６に対して、マジックハンド３０２の柄３０４の相対的な位置および姿勢を変化させること
（３）仮想空間３０１内において、柄３０４から伸びる可撓性のマジックハンド３０２の先端でオブジェクト３０３を掴んだり、離したりすること
が可能となった。これらの機能によって、オブジェクト３０３を仮想空間３０１内である位置から別の位置へ移動させることができる。
【０１２６】
以下では、本発明の原理にしたがって、これらの機能にさらに加えるべき、新たな機能について、順に説明する。
【０１２７】
（視線の方向の制御）
上記の形態において、プレイヤがキャラクターの向き、すなわち、視線３０６の方向を変更したいと考える場合も多い。そして、上記の形態においては、把持モジュール２０１を現実空間で前後に移動させるだけで、キャラクターを前後に移動させることができたから、これと同様の容易な操作で、十字形キー２０３などを使わずに視線方向を変化させることができるようにしたい。以下では、このような技術について詳細に説明する。
【０１２８】
上記のように、本実施形態においては、柄３０４の姿勢がカーソル３０８によって、画面５０１に表示されている。このカーソル３０８は、プレイヤが把持モジュール２０１の姿勢を変更するだけで、画面５０１内で表示される位置を容易に変更することができる。そこで、本技術では、カーソル３０８が画面５０１内に表示される位置に基づいて、キャラクターの向き、すなわち、視線３０６の方向を変更する。
【０１２９】
ここで図５に戻ると、画面５０１は、上縁部５１１、右縁部５１２、左縁部５１３、下縁部５１４、中央部５１５の５つの領域に分割されている。プレイヤは、以下のように把持モジュール２０１の姿勢を変化させることで、視線３０６の方向の移動の指示を行う。
（ａ）視線３０６を上に移動したいときには、カーソル３０８が上縁部５１１に表示されるように、把持モジュール２０１の姿勢を変更し、
（ｂ）視線３０６を右に移動したいときには、カーソル３０８が右縁部５１２に表示されるように、把持モジュール２０１の姿勢を変更し、
（ｃ）視線３０６を左に移動したいときには、カーソル３０８が左縁部５１３に表示されるように、把持モジュール２０１の姿勢を変更し、
（ｄ）視線３０６を下に移動したいときには、カーソル３０８が下縁部５１４に表示されるように、把持モジュール２０１の姿勢を変更し、
（ｅ）視線３０６の方向が所望の方向となったら、カーソル３０８が中央部５１５に表示されるように、把持モジュール２０１の姿勢を変更する。
【０１３０】
すなわち、指示標識（カーソル３０８）が、画面５０１内の所定の表示領域（上縁部５１１、右縁部５１２、左縁部５１３、下縁部５１４）に表示されている間、当該表示領域のそれぞれに対応付けられる上右左下の方向に、視線３０６の方向を移動させ、指示標識（カーソル３０８）が画面５０１内の所定の表示領域以外の領域（中央部５１５）に表示されるようにすると、視線３０６の方向の移動を停止するのである。
【０１３１】
情報処理装置は、単位時間おき（たとえば、垂直同期割り込みの周期ごと。）にカーソル３０８の位置が画面５０１内のどの領域に含まれるかを識別する。そして、必要があれば、当該領域に割り当てられた移動量と方向に、視線３０６の方向を変化させる。
【０１３２】
これによって、視線３０６の方向が変化するのであるが、その後に、仮想空間内におけるマジックハンド３０２の柄３０４の姿勢３１１の方向を、画面５０１内でのカーソル３０８の表示位置が変化しないように、更新することが望ましい。
【０１３３】
図７は、視線３０６の方向の向きを右に移動させる様子を仮想空間３０１の上側から見たものを順に示す説明図である。以下、本図を参照して説明する。
【０１３４】
すなわち、
（１）まず、視線３０６の方向を変化させる前に、視点３０５および視線３０６に対する相対的なマジックハンド３０２の柄３０４の位置および姿勢を取得し（本図（ａ））、
（２）視点３０５を中心に視線３０６の方向を変化させて、キャラクターの向きを変えてから（本図（ｂ））、
（３）変化された後の視点３０５と視線３０６に対するマジックハンド３０２の柄３０４の位置および姿勢を、先に（１）で取得した位置および姿勢に更新する（本図（ｃ））。したがって、マジックハンド３０２の柄３０４の位置および姿勢は、仮想空間３０１に対して変化することとなる。
【０１３５】
このような処理によって、視線３０６の方向の移動の前後において、視点３０５と視線３０６に対するマジックハンド３０２の柄３０４の位置および姿勢は同じ値に維持されるのである。
【０１３６】
たとえば、プレイヤがキャラクターを右に向けたい場合、カーソル３０８が右縁部５１２に移動するように、把持モジュール２０１の姿勢を変更する。
【０１３７】
そして、視線３０６の方向が右に移動し始めたら、把持モジュール２０１の姿勢をそのまま固定すると、キャラクターの向き（視線３０６の方向）が更新されて、右に少しずつ向きが変わっていっても、カーソル３０８が画面５０１内で表示される位置は変わらない。
【０１３８】
最後に、キャラクターの向き（視線３０６の方向）が所望の向きに至ったら、カーソル３０８を画面５０１の中央部５１５に戻すように把持モジュール２０１の姿勢を変更すれば良い。このような、極めて直観的な操作で、容易にキャラクターの向きを変更することができるようになるのである。
【０１３９】
上縁部５１１、右縁部５１２、左縁部５１３、下縁部５１４のそれぞれの幅や、単位時間あたりの視線３０６の方向の単位時間あたりの移動量は、適用分野やプレイヤの習熟度によって適宜変更することができる。また、単位時間あたりの移動量を、中央部５１５に近いところでは小さく、画面５０１の縁に近付けば近づくほど大きくすることとしても良い。
【０１４０】
また、プレイヤ（視線３０６の方向）が上や下を向くときには、適当な上限や下限を設け、限界に至ったら、それ以上の視線３０６の方向の変更はしないこととしても良いし、視線３０６を変化させることができるのは左右のみに限定する、など、種々の制約を課すこともできる。
【０１４１】
また、画面５０１の縁の分割方法としては、このほか、画面５０１の中央から扇形に広がる領域分割を行い、各領域には画面中央から見た方向の単位時間あたりの移動量を割り当てることとして、斜め方向への移動も可能としても良い。
【０１４２】
（オブジェクトの掴み動作の切り替え）
上記の説明では、プレイヤがＢボタン２０５を押圧してマジックハンド３０２がオブジェクト３０３を掴むと、Ｂボタン２０５を離すまで掴み状態が維持されていたが、マジックハンド３０２を牽引ビームであると考える場合、ビームが何か他の障害物によって遮られると、牽引ビームが途切れ、オブジェクト３０３を掴んでいた状態が自然に解除されることとした方が自然な場合もある。
【０１４３】
図８は、オブジェクト３０３とマジックハンド３０２と、障害物との関係を示す説明図である。
【０１４４】
本図（ａ）では、オブジェクト３０３とマジックハンド３０２の柄３０４との間に障害物３０９は存在しない。したがって、画面５０１では、両者の間にマジックハンド３０２の牽引ビームが描画される。
【０１４５】
一方、本図（ｂ）では、オブジェクト３０３とマジックハンド３０２の柄３０４との間に障害物３０９が存在する。上記のようなゲーム設定においては、マジックハンド３０２の牽引ビームを表現する仮想空間内のオブジェクトと、その他のオブジェクトと、が交叉しているか否かを判定する。
【０１４６】
その結果最も柄３０４の近くで交叉しているオブジェクトが、掴んでいるオブジェクト３０３ではなく、障害物３０９であることが判明した場合には、牽引ビームが障害物で遮られたものとして、掴み状態を解除する。
【０１４７】
本図（ｂ）に示す画面５０１では、マジックハンド３０２の牽引ビームが障害物３０９に遮られ、掴み状態が解除されたため、オブジェクト３０３が落下している。また、牽引ビームの撓みもなくなり、真っ直ぐになっている。
【０１４８】
一方で、プレイヤが仮想空間の中で物を掴もうとする場合には、その視界を基準として考えた方が自然な場合も多い。すなわち、牽引ビームを「射撃」の一種としてとらえた場合である。
【０１４９】
この場合、マジックハンド３０２の牽引ビームがオブジェクト３０３に「命中」（掴み状態）していることがプレイヤの視界（すなわち、視点３０５から視線３０６の方向に仮想空間３０１を見たときの投影面３０７に投射されるオブジェクトの様子）において「命中」しているのなら、たとえ牽引ビームがほかの障害物オブジェクトによって遮られているとしても、そのまま掴み状態を維持した方が、プレイヤにとって自然に感じられる場合もある。
【０１５０】
このような場合には、マジックハンド３０２の牽引ビームと、そのほかのオブジェクトと、を投影面３０７に投影する順序や、オブジェクト同士の交叉を判定する処理に工夫を加える必要がある。
【０１５１】
すなわち、仮想空間３０１のオブジェクトを投影面３０７に投影する場合には、視点３０５からの距離によってオブジェクトをソートし、視点３０５から遠いオブジェクトから順に投影面３０７への投影を行う。これによって、近くにあるオブジェクトが遠くにあるオブジェクトを隠す、という状況が表現される。この手法はＺバッファ法と呼ばれ、広く用いられている。
【０１５２】
また、オブジェクト同士が交叉しているか否かを判定する場合についても、Ｚバッファを利用することができる。互いに交叉しているオブジェクトは、視点３０５からの距離も同程度と考えられ、ソート後のＺバッファにおける順序が近くになっているからである。
【０１５３】
Ｚバッファ法をさらに厳密に利用する場合には、オブジェクトを構成するポリゴンのそれぞれを「オブジェクト」として考え、視点３０５とポリゴンとの距離に基づいて全オブジェクトのポリゴンをソートし、視点３０５から遠いポリゴンから順に投影面３０７への投影を行って、当該ポリゴンに割り当てられたテクスチャを貼り付ける。また、オブジェクトを構成するポリゴンを細かくすれば、ポリゴン同士が隠蔽し合う様子を描画するだけで、オブジェクト同士の交叉関係を近似することができる。
【０１５４】
そこで、オブジェクト３０３を掴んでいるときのマジックハンド３０２の牽引ビームについては、視点３０５からの距離として、仮想空間３０１内における距離そのものではなく、仮想的に「いずれのオブジェクトよりも視点３０５に近い距離」を採用することとする。
【０１５５】
このようにすることで、オブジェクトの様子を投影面３０７に投影する際には、最後にマジックハンド３０２の牽引ビームが描画され、マジックハンド３０２の牽引ビームは、いずれの障害物とも衝突しないこととなる。このようなＺバッファ法の詳細な技術については、後述する。
【０１５６】
このようにして投影面３０７上で生成された画像の様子を本図（ｃ）の画面５０１に示す。本図（ｃ）においては、本図（ｂ）と同様に、マジックハンド３０２の柄３０４とオブジェクト３０３との間には障害物３０９が存在するのであるが、この衝突関係や前後関係を「騙し絵」的に変化させ、オブジェクト３０３を掴んでいる間（かつ、オブジェクト３０３が視点３０５から直接見え、視線３０６が途中で障害物３０９に衝突しない間）は、マジックハンド３０２の牽引ビームが維持されるのである。
【０１５７】
一般の射撃ゲームにおいても、弾道を見易く表示するために、拳銃や光線銃の位置を画面中央から右下や左下に移動することが多い。一方で、射撃ゲームの照準や命中判定は視点および視線を基準に考慮する。把持モジュール２０１は、このような射撃ゲームにも応用することができ、この場合は、Ｂボタン２０５を引き金に割り当て、Ｂボタン２０５を押圧するごとに弾や光線が発射されるものとする。
【０１５８】
このような射撃ゲームにおいては、照準が目標に重なっていることをもって、命中している、と判定することが多い。照準が目標に重なっている、ということは、視点から目標の間には障害物は存在しない、ということでもある。それにもかかわらず、弾丸の光線の弾道が他の障害物に遮られるのは、プレイヤからとって見れば不自然である。
【０１５９】
しかしながら、拳銃等の位置は、上記のように、視点の位置には配置されていない。したがって、命中している状態であるのに、拳銃等と目標とを結ぶ経路が、他のオブジェクトと衝突してしまうことがある。
【０１６０】
ゲームの仮想空間は現実世界をシミュレートしたものではあるが、厳密なオブジェクト同士の交叉関係や隠し合い関係よりも、上記のようなプレイヤの直観を優先した方が、ゲームの楽しみを損わず、プレイヤが仮想空間に没頭できる場合も多い。
【０１６１】
そこで、このような衝突を防止するため、弾道を移動する弾や光線を視点に最も近いオブジェクトにして、目標オブジェクト以外との衝突が発生しないように画面表示を工夫し、いわゆる騙し絵的な処理によって、プレイヤの没入度を向上させる。
【０１６２】
なお、このような騙し絵的処理は、上記のように、マジックハンド３０２の牽引ビーム表現のみならず、拳銃や光線銃、弓矢を用いた射撃ゲーム、ボールや石を投げる投擲ゲーム等、種々のゲームに適用することができる。この場合、牽引ビームの形状が、弾や矢、ボール、石が移動する経路、発射される光線の形状に相当することとなる。
【０１６３】
したがって、必ずしも、牽引ビームのような弾性を持つ必要はなく、ゲーム世界に応じた弾道計算や光線の形状計算を行ったうえで、グラフィックス表示を行う場合には、オブジェクト同士の隠し合い関係や交叉関係の判定の際に、Ｚバッファ内でもっとも視点の近くに弾等のオブジェクトが位置するようにソートの手順に変更を加えて、オブジェクトの投影および描画を行えば良い、ということになる。
【０１６４】
なお、射撃ゲームなどでこのような騙し絵的表現を採用する場合には、把持モジュール２０１のＢボタン２０５を押すことによって、拳銃等の引き金を引くことに相当する指示入力が受け付けられる。また、照準は、視線３０６が仮想空間３０１内で初めて交叉するオブジェクトに合わされていることになる。そこで、Ｂボタン２０５による指示入力が受け付けられたときに、視線３０６が初めて交叉するオブジェクトが存在する位置が、目標点となる。
【０１６５】
（オブジェクトとの遠近感等の提示）
上記のような態様において、ゲームの仮想空間３０１を画面５０１に表示した場合であっても、３次元の世界を２次元の画面５０１に表示するのであるから、奥行き方向の距離感がプレイヤに伝わりにくいことがままある。特に、オブジェクト３０３をマジックハンド３０２で掴んでいる場合には、そのオブジェクト３０３が近付きつつあるのか、遠ざかりつつあるのか、の情報は、プレイヤにとって極めて重要である。そこで、表示の上で、各種の工夫を行うことで、これらの情報をプレイヤに提示する技術が求められる。
【０１６６】
まず、掴まれたオブジェクト３０３が近付きつつあるか、遠ざかりつつあるか、を判定するには、当該オブジェクトの速度ベクトルや加速度ベクトルのいずれかを利用する。以下では、速度ベクトルを利用するものとする。
【０１６７】
そして、オブジェクト３０３の速度ベクトルの、オブジェクト３０３からマジックハンドの柄３０４（もしくは視点３０５）に向かう成分を計算する。
【０１６８】
この成分が負である場合は、オブジェクト３０３は遠ざかりつつあることになり、正である場合は、オブジェクト３０３は近付きつつあることになる。
【０１６９】
速度ベクトルを採用した場合は、柄３０４（もしくは視点３０５）とオブジェクト３０３の距離の変化が直ちに上記の判定基準に反映されるが、加速度ベクトルを採用した場合には、これからどうなるのか、の将来予測的な判定となる。したがって、ゲームの内容等に応じて、適宜適切な手法を選択すれば良い。
【０１７０】
さて、近付きつつあるか、遠ざかりつつあるか、の判定に基づいて、この情報をプレイヤに提供する手法として、最も単純な手法は色で表現することである。たとえば、近付きつつある場合は、マジックハンド３０２の牽引ビームを青く表示し、遠ざかりつつある場合は、マジックハンド３０２の牽引ビームを赤く表示する等である。
【０１７１】
このほか、牽引ビームに模様を保たせる、という手法もありうる。図９は、マジックハンド３０２の牽引ビームに模様を与えた様子を示す説明図である。
【０１７２】
本図（ａ）では、牽引ビームには、縞模様が描かれている。オブジェクトが近付きつつあるときは、この縞模様がオブジェクト３０３から柄３０４の方向に移動し、遠ざかりつつあるときは、逆向きに移動する、というものである。
【０１７３】
本図（ｂ）では、牽引ビームに太さの変化をもたせており、蛇が卵を呑んだときのように、オブジェクトが近付くか遠ざかるかによって、太い部分が手前に移動したり奥に移動したりするものである。
【０１７４】
本図（ｃ）は、蛙の卵のように、半透明の牽引ビーム内に球体を配置して、この球体が牽引ビームの内部を移動する、というものである。
【０１７５】
これらの手法によって、二次元の画面５０１による表示では把握しにくい場合があるオブジェクト３０３の挙動を、プレイヤに適切に伝達することができるようになる。
【０１７６】
（処理の手順）
図１０は、本実施形態に係るゲーム装置の概要構成を示す模式図であり、図１１は、当該ゲーム装置にて実行される処理の制御の流れを示すフローチャートである。以下、これらの図を参照して説明する。
【０１７７】
ゲーム装置９０１は、記憶部９０２、測定部９０３、変化部９０４、移動部９０５、更新部９０６、画像生成部９０７、表示部９０８、入力受付部９０９を備える。そして、当該ゲーム装置９０１は、プレイヤに提示する画像を生成する、という意味で、画像生成装置としても機能する。
【０１７８】
記憶部９０２は、仮想空間３０１内に配置される各種のオブジェクトの位置や姿勢等の情報を記憶し、ＲＡＭ  １０３等によって実現される。ＣＰＵ  １０１は、これらの情報を、ゲームが開始される際に、適切に初期化する（ステップＳ９５１）。
【０１７９】
一方、測定部９０３および入力受付部９０９は、ＣＰＵ  １０１の制御下にある把持モジュール２０１等からなるコントローラ１０５等によって実現されるもので、現実世界における把持モジュール２０１の位置および姿勢、ならびに、Ｂボタン２０５の押圧状態を取得する（ステップＳ９５２）。
【０１８０】
ついで、変化部９０４は、測定された把持モジュール２０１の位置および姿勢に応じて、ＲＡＭ  １０３に記憶されるマジックハンド３０２の柄３０４の位置および姿勢を変化させる（ステップＳ９５３）。したがって、ＣＰＵ  １０１はＲＡＭ  １０３等と共働して、変化部９０４として機能する。
【０１８１】
さらに、ＣＰＵ  １０１は取得されたＢボタン２０５の押圧状態が、押圧が開始された状態か、押圧が終了した状態か、前回と状態が同じか、を判定して（ステップＳ９５４）、押圧が開始されたのであれば（ステップＳ９５４；掴み開始）、マジックハンド３０２の柄３０４の姿勢の方向３１１に存在するオブジェクト３０３を掴むように、ＲＡＭ  １０３を更新し（ステップＳ９５５）、ステップＳ９５７に進む。一方、押圧が終了したのであれば（ステップＳ９５４；掴み終了）、マジックハンド３０２の柄３０４の姿勢の方向３１１に存在するオブジェクト３０３を離すように、ＲＡＭ  １０３を更新し（ステップＳ９５６）、ステップＳ９５７に進む。前回と状態が同じであれば（ステップＳ９５４；同じ）、そのままステップＳ９５７に進む。
【０１８２】
そして、画像生成部９０７は、ＣＰＵ  １０１の制御の下、ＲＡＭ  １０３を参照して各オブジェクトの位置や姿勢を取得してＺバッファによるソートを行う（ステップＳ９５７）。この際に、上述した通り、騙し絵的な表現を行う必要があれば、マジックハンド３０２の牽引ビームについては、仮想空間３０１における視点３０５との距離にかかわらず、Ｚバッファにおけるソートの順序では、視点３０５に一番近いものとしてソートする。
【０１８３】
そして、画像生成部９０７は、投影面３０７へのオブジェクトの投影をＺバッファにおける「遠い順」に行うことによって、画像を生成する（ステップＳ９５８）。
【０１８４】
さらに、表示部９０８は、生成された画像をフレームバッファに配置して、テレビジョン装置２９１に画面５０１を出力する（ステップＳ９５９）。
【０１８５】
さて、上記のように画像を生成すると（ステップＳ９５８）、画面５０１の中におけるカーソル３０８の位置が判明する。したがって、移動部９０５を実現するＣＰＵ  １０１は、ＲＡＭ  １０３と共働の上、カーソル３０８の画面５０１内の位置に応じて、視線３０６の方向を変化させるか否かを判定する（ステップＳ９６０）。
【０１８６】
変化させる場合（ステップＳ９６０；Ｙｅｓ）、まず、仮想空間３０１における現在の視点３０５および視線３０６に対する柄３０４の相対的な位置および姿勢を取得し（ステップＳ９６１）、つぎに、カーソル３０８の位置に応じた変化量だけ、視線３０６の方向を変化させ（ステップＳ９６２）、さらに、変化させた後の視点３０５および視線３０６に対する柄３０４の相対的な位置および姿勢を、ステップＳ９６１で取得したものに更新して（ステップＳ９６３）、ステップＳ９６５に進む。
【０１８７】
一方、視線３０６の方向を変化させない場合（ステップＳ９６０；Ｎｏ）、更新部９０６は、測定された把持モジュール２０１の位置と基準位置とずれに応じて、視点３０５の位置を変化させる（ステップＳ９６４）。したがって、ＣＰＵ  １０１は、ＲＡＭ  １０３等と共働して、更新部９０６として機能する。
【０１８８】
このような位置関係の更新が終わったら、物理シミュレーションに基づく計算を行ってＲＡＭ  １０３に記憶される情報を更新し（ステップＳ９６５）、一定時間待機した後（ステップＳ９６６）、ステップＳ９５２に戻る。
【０１８９】
なお、視線３０６の方向を変化させる処理と、視点３０５の位置を変化させる処理と、は、上記制御フローにおいては、排他的に行っている。これは、習熟度の低いプレイヤに対応するためであり、ゲームの内容によっては、ステップＳ９６０の判断を省略し、ステップＳ９６３の後に、ステップＳ９６４に進むこととしても良い。
【０１９０】
以下ではステップＳ９５７〜ステップＳ９５８におけるＺバッファを用いたオブジェクトの描画について、さらに詳細に説明する。図１２は、本実施形態におけるＺバッファ法の処理の制御の流れの詳細を示すフローチャートである。以下、本図を参照しながら説明する。
【０１９１】
上述した通り、仮想空間３０１内に配置されるオブジェクトは、それぞれ、複数のポリゴンと、当該ポリゴンに割り当てられるテクスチャとから構成されている。Ｚバッファは、以下の要素をメンバーとする構造体を一要素とする配列である。
（ａ）ポリゴンのＲＡＭ  １０３内におけるアドレスや識別番号等。
（ｂ）当該ポリゴンと視点３０５との距離。
【０１９２】
以下、このＺバッファのi (i≧0)番目の要素をZ[i]と、当該要素のそれぞれのメンバーをZ[i].p，Z[i].dと、Ｚバッファに登録されたポリゴンの数を#Zと、それぞれ表記する。
【０１９３】
本処理が開始されると、ＲＡＭ  １０３内に用意されたＺバッファとカウンタ変数iをクリアする（ステップＳ１００１）。これにより、#Z = 0，i = 0となる。
【０１９４】
つぎに、仮想空間３０１に配置されたオブジェクトのそれぞれについて、以下の処理を繰り返す（ステップＳ１００２〜ステップＳ１０１１）。
【０１９５】
まず、現在処理中のオブジェクトの種類が「騙し絵オブジェクト」か否かを調べる（ステップＳ１００３）。上記のように、仮想空間３０１内のオブジェクトには、以下の２種類がある。
（ａ）マジックハンド３０２の牽引ビーム、射撃ゲームにおける拳銃の弾丸、光線銃の光線等の騙し絵オブジェクト。騙し絵オブジェクトは、マジックハンド３０２の柄３０４の一端や拳銃・光線銃等の射出口から目標までの経路を結んだり、その経路を移動したりするオブジェクトであり、視点３０５から目標が見えるときには、当該経路までの間が、ほかのオブジェクトと衝突していてもこれを無視するようなものである。状況のような態様では、騙し絵オブジェクトは、マジックハンド３０２の柄３０４の一端等の射出点から射出される射出オブジェクトに相当する、と考えることができる。
（ｂ）騙し絵オブジェクトではないオブジェクト。
【０１９６】
騙し絵オブジェクトである場合（ステップＳ１００３；Ｙｅｓ）、ＲＡＭ  １０３内に用意されたフラグ変数fに-1を設定し（ステップＳ１００４）、そうでなければ（ステップＳ１００３；Ｎｏ）、ＲＡＭ  １０３内に用意されたフラグ変数fに+1を設定して（ステップＳ１００５）、ステップＳ１００６に進む。
【０１９７】
なお、仮想空間３０１の様子を表示する画像を生成するための「視点」と、照準を合わせる「視点」とを異なる場所に配置して、２つのカメラで仮想空間３０１の様子を表示するような場合には、いずれの「視点」を本実施形態にいう視点３０５としても良い。
【０１９８】
ついで、当該処理中のオブジェクトを構成するポリゴンのそれぞれについて、以下の処理を繰り返す（ステップＳ１００６〜ステップＳ１０１０）。
【０１９９】
まず、現在処理中のポリゴンと、視点３０５との距離dを計算する（ステップＳ１００７）。
【０２００】
ついで、Ｚバッファのi番目の要素について、
Z[i].d ← f × d；
Z[i].p ← ポリゴンのアドレス
のように代入を行い（ステップＳ１００８）、iの値を１増やして（ステップＳ１００９）、Ｚバッファに当該ポリゴンを登録して、当該オブジェクトを構成するポリゴンのすべてについて処理が終わるまで、ステップＳ１００６に戻って処理を繰り返す（ステップＳ１０１０）。
【０２０１】
このような処理によって、騙し絵オブジェクトについては、視点３０５との距離が負になり、そうでない通常のオブジェクトについては、視点３０５との距離が正になる。
【０２０２】
さて、仮想空間３０１に配置されるオブジェクトのすべてについて処理が終わるまで、ステップＳ１００２に戻って処理を繰り返した（ステップＳ１０１１）後は、Ｚバッファの各要素を、メンバーdの値に基づいて小さい順にソートする（ステップＳ１０１２）。
【０２０３】
すなわち、ソートに際しては、Ｚバッファのx番目の要素とy番目の要素との大小関係を比較する必要があるが、このときに、Z[x].dとZ[y].dとを比較するのである。
【０２０４】
上記のように、騙し絵オブジェクトを構成するポリゴンは、視点３０５との距離が負に設定されることとなるから、ソートによって、Ｚバッファの添字が０に近い側（添字が小さい側）に寄せられることになり、通常のオブジェクトを構成するポリゴンは、ソートによって、Ｚバッファの添字が#Zに近い側（添字が大きい側）に寄せられることになる。
【０２０５】
ソートが終わったら、iの値を#Z - 1に設定して（ステップＳ１０１３）、Z[i].d ≧ 0である間、以下の処理を繰り返す（ステップＳ１０１４〜ステップＳ１０１９）。
【０２０６】
すなわち、アドレス等がZ[i].pのポリゴンの情報を取得し（ステップＳ１０１５）、当該ポリゴンの投影面３０７への投影先を計算して（ステップＳ１０１６）、当該投影先に対応付けられる描画バッファ（典型的にはＲＡＭ  １０３内に用意されるが、画像処理部１０７がダブルバッファによるフレームメモリを持っている場合には、現在表示されていない側のフレームメモリを利用することもできる。）の領域に、当該ポリゴンのテクスチャを描画する（ステップＳ１０１７）。そして、iの値を１減らし（ステップＳ１０１８）、Z[i].d ≧ 0である間、ステップＳ１０１４に戻って処理を繰り返す（ステップＳ１０１９）。
【０２０７】
配列の添字iの範囲チェックをしなくとも良いのは、騙し絵オブジェクトのポリゴンについての要素がZ[i].d < 0であり、「番兵」として働いているからである。
【０２０８】
さて、通常オブジェクトについての描画（ステップＳ１０１４〜ステップＳ１０１９）が終わったら、次は騙し絵オブジェクトについての描画を行う。すなわち、iの値を０に設定して（ステップＳ１０２０）、Z[i].d < 0である間、以下の処理を繰り返す（ステップＳ１０２１〜ステップＳ１０２６）。
【０２０９】
すなわち、アドレス等がZ[i].pのポリゴンの情報を取得し（ステップＳ１０２２）、当該ポリゴンの投影面３０７への投影先を計算して（ステップＳ１０２３）、当該投影先に対応付けられる描画バッファ（典型的にはＲＡＭ  １０３内に用意されるが、画像処理部１０７がダブルバッファによるフレームメモリを持っている場合には、現在表示されていない側のフレームメモリを利用することもできる。）の領域に、当該ポリゴンのテクスチャを描画する（ステップＳ１０２４）。そして、iの値を１増やし（ステップＳ１０２５）、Z[i].d < 0である間、ステップＳ１０１４に戻って処理を繰り返す（ステップＳ１０２６）。
【０２１０】
配列の添字iの範囲チェックをしなくとも良いのは、通常オブジェクトのポリゴンについての要素がZ[i].d ≧ 0であり、番兵として働いているからである。プログラミング業界では、一般用語で、配列の走査処理を行う場合に、その添字の範囲をチェックしないでも済むように、走査対象から外れる要素に、「常に条件が不成立」の要素を意図的に配置する手法を用いることがある。この「常に条件が不成立」の要素を当該要素を「番兵（sentinel）」と呼ぶ。
【０２１１】
このようにして、描画バッファに各オブジェクトの様子が描画された、その他必要な情報（たとえば、キャラクターの体力ゲージなどのステータス情報が含まれる。）を適宜描画して（ステップＳ１０２７）、フレームメモリへ転送し（ステップＳ１０２８）、本処理を終了する。すると、ステップＳ９５８において、画像処理部１０７が、フレームメモリへ転送された情報に基づいて、画面に仮想世界の画像を表示するのである。
【０２１２】
なお、Ｚバッファの各要素に、当該ポリゴンが属するオブジェクトが騙し絵オブジェクトか否かのフラグ領域を設け、ソートの際には、当該フラグ領域を参照してソートを行うこととしても良い。上記の態様は、視点との距離を表す数値表現の符号ビットを、当該ポリゴンが属するオブジェクトが騙し絵オブジェクトか否かのフラグ領域として利用することに相当する。
【０２１３】
また、騙し絵オブジェクト用のＺバッファと、通常オブジェクト用のＺバッファと、の２つを用意して、ポリゴンを振り分けることとし、後者を視点から遠い順に描画してから、前者を視点から遠い順に描画する、という手法を採用することもできる。
【０２１４】
なお、上記実施形態では、目標が視点３０５から見えるときは、牽引ビームが辿る経路がほかのオブジェクトと衝突していても、この衝突を無視することになる。そしてこれは、一旦目標が設定された後、すなわち、マジックハンド３０２の牽引ビームが目標オブジェクトを吸着している間は、当該目標オブジェクトが何らかの障害物の存在によって視点３０５から見えなくなってしまっても続く。
【０２１５】
もっとも、目標が視点３０５から見えなくなったときは、マジックハンド３０２の牽引ビームが切断されることとして、牽引ビームが仮想空間３０１の中でいずれかのオブジェクトに衝突しているか否かにかかわらず、「騙し絵」的に、牽引ビームがいずれかのオブジェクトに衝突するようにしても良い。
【０２１６】
たとえば、視点３０５と目標を結ぶ線が衝突するオブジェクトの衝突点と、マジックハンド３０２の柄３０４の射出点とを結ぶ線上に（柄３０４の姿勢の方向３１１にかかわらず）、牽引ビームを描くこととすれば良い。
【０２１７】
このほか、マジックハンド３０２がオブジェクト３０３を吸着していない間は、投影面３０７におけるカーソル３０８の位置を目標点として設定して、同様の「騙し絵」的処理を行っても良い。
【０２１８】
以下、「騙し絵」の他の描画手法について説明する。上記の形態では、マジックハンド３０２の柄３０４の射出点から射出される牽引ビームを構成するオブジェクト等の騙し絵オブジェクトは、どの通常のオブジェクトよりも視点３０５に近いものとみなして画像を生成するために、Ｚバッファにおけるソートの順序に工夫を加えていた。
【０２１９】
しかしながら、牽引ビームの形状が弾性のある円柱や帯のような幾何学的に単純な形状をしている場合には、以下のような態様を採用することも可能である。
【０２２０】
すなわち、通常のオブジェクトを構成するポリゴンについては、Ｚバッファを用いてソートをし、視点３０５から遠い順に、投影面３０７へ投影される領域を求め、画像バッファにおいてその領域にテクスチャを貼り込むことによって描画を行う。これは、通常の三次元グラフィックス処理と同様である。
【０２２１】
そして、通常のオブジェクトすべてについて、画像バッファへの描画が完了したら、マジックハンド３０２の柄３０４の射出点と、吸着されたオブジェクト３０３とを結ぶ曲線の形状を２次元的に求め、画像バッファへ上書き描画するのである。
【０２２２】
たとえば、牽引ビームが円柱状の形状の場合、その断面が投影面３０７に投影される太さは、視点３０５からの距離に反比例する。また、当該牽引ビームの中心を貫く曲線形状は、スプライン補間等によって求めることができ、求められた仮想空間（３次元空間）内の中心曲線上の各点と、視点３０５との距離を求めれば、当該点を中心とする断面が投影面３０７に投射されるときの大きさを求めることもできる。これによって、円柱状の形状の牽引ビームが、３次元グラフィックス的に遠近感をもって画像バッファに描画されるのである。円柱以外の形状を持つ場合も、同様の処理によって描画が可能である。
【０２２３】
本態様では、騙し絵オブジェクトがどの通常のオブジェクトよりも視点３０５に近いものとみなすため、画像バッファに対する通常オブジェクトの描画をすべて行った後に、騙し絵オブジェクトの描画を行うこととしている。
【０２２４】
このような描画手法を採用することにより、騙し絵オブジェクトがどの通常のオブジェクトによっても隠蔽されないこととなるため、どの通常のオブジェクトよりも視点３０５に近いものとみなすことができるからである。
【０２２５】
そして、この際に、騙し絵オブジェクトについては、Ｚバッファにおけるソートの対象とする必要はなく、また、騙し絵オブジェクトを比較的単純な１つの幾何学的形状としてときには、簡単な計算によって、画像バッファに対する騙し絵オブジェクトの描画を行うことができる。
【０２２６】
以上説明した実施形態は、本願発明に係る実施形態の一つに係るものであり、種々のバリエーションを採用して様々な処理を追加等した場合であっても、本発明の範囲に含まれる。
【産業上の利用可能性】
【０２２７】
以上説明したように、本発明によれば、視点とは異なる位置から射出される射出オブジェクトを違和感なく提示する画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０２２８】
【図１】プログラムを実行することにより、本発明の実施形態に係る装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態にて利用されるコントローラと情報処理装置の外観を示す説明図である。
【図３】仮想空間と現実世界との対応関係を示す説明図である。
【図４】マジックハンドの柄とオブジェクトとの位置関係と、力の方向を示す説明図である。
【図５】画面にカーソルとマジックハンドとオブジェクトが表示される様子を示す説明図である。
【図６】マジックハンドの柄の位置と、視点の移動の方向との関係を説明する説明図である。
【図７】視線の方向の向きを右に移動させる様子を仮想空間の上側から見たものを順に示す説明図である。
【図８】オブジェクトとマジックハンドと、障害物との関係を示す説明図である。
【図９】マジックハンドの牽引ビームに模様を与えた様子を示す説明図である。
【図１０】本実施形態に係るゲーム装置の概要構成を示す模式図である。
【図１１】当該ゲーム装置にて実行される処理の制御の流れを示すフローチャートである。
【図１２】当該ゲーム装置にて実行されるＺバッファ関連の処理の制御の流れを詳細に示すフローチャートである。
【符号の説明】
【０２２９】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
２０１  把持モジュール
２０２  ＣＣＤカメラ
２０３  十字形キー
２０４  Ａボタン
２０５  Ｂボタン
２０６  各種ボタン
２０７  インジケータ
２０８  電源ボタン
２５１  発光モジュール
２５２  発光ダイオード
２９１  テレビジョン装置
３０１  仮想空間
３０２  マジックハンド
３０３  オブジェクト
３０４  柄
３０５  視点
３０６  視線
３０７  投影面
３０８  カーソル
３０９  障害物
３１１  柄の姿勢の方向
３１３  基準位置
３１４  基準位置からのずれを表すベクトル
３２１  柄の姿勢の方向ベクトル
３２２  柄からオブジェクトへの方向ベクトル
３２３  上下左右のずれを表すベクトル
４１１  牽引力（反発力）
４１２  上下左右の力
５０１  画面
５１１  上縁部
５１２  右縁部
５１３  左縁部
５１４  下縁部
５１５  中央部
９０１  ゲーム装置
９０２  記憶部
９０３  測定部
９０４  変化部
９０５  移動部
９０６  更新部
９０７  画像生成部
９０８  表示部
９０９  入力受付部
【図１】
2007265155.tif 000003
【図２】
2007265155.tif 000004
【図３】
2007265155.tif 000005
【図４】
2007265155.tif 000006
【図５】
2007265155.tif 000007
【図６】
2007265155.tif 000008
【図７】
2007265155.tif 000009
【図８】
2007265155.tif 000010
【図９】
2007265155.tif 000011
【図１０】
2007265155.tif 000012
【図１１】
2007265155.tif 000013
【図１２】
2007265155.tif 000014