説明

画像生成装置、画像生成方法、ならびに、プログラム

【課題】視点とは異なる位置から射出される射出オブジェクトを違和感なく提示する画像を生成する画像生成装置等を提供する。
【解決手段】記憶部902は、仮想空間に配置される複数のオブジェクトを記憶し、画像生成部907は、当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成し、当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれ、画像生成部907は、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、視点とは異なる位置から射出される射出オブジェクトを違和感なく提示する画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、各種の射撃ゲームが提案されている。このようなゲームに関する技術は、たとえば、以下の文献に開示されている。
【特許文献1】特許第3325265号公報
【0003】
[特許文献1]には、標的を射撃する射撃ゲームに関する技術が開示されている。射撃ゲームにおいては、当該仮想世界に設定された視点から照準へ向かう半直線、あるいは、視線の半直線を、標的となるオブジェクトに交叉するように設定することによって、照準を合わせることとする。そして、その交叉する位置が、弾道の目標点の位置となる。ガンシューティングゲームにおいては、弾丸は標的という目標点に向かって進む。
【0004】
このほか、仮想世界において、マジックハンド、牽引ビーム、鞭、ベルト、投げ縄、トリモチのついた棹などを用いて、遠方の物を掴んだりするゲームも提案されている。マジックハンド等の場合には、マジックハンドの「腕」等が、遠方の物という目標点に向かって進む。
【0005】
ここで、目標点に向かう経路を視点から開始するものとして画面に表示しても、画面内ではただの点として表示されることとなってしまい、目標点がどれぐらい奥にあるか、の奥行き情報がプレイヤに把握しにくいことも多い。そこで、当該経路の開始点、すなわち、弾丸の射出点や、マジックハンド等の手元側の端点(以下、このような端点も「射出点」という。)を、視点とはずらして設定することが行われている。たとえば、プレイヤが右利きの場合には、射出点は、視点、視線から見ての右下に設定することが広く行われている。
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記のようなゲームにおいては、人の目を使って照準を合わせるから、目標点は仮想空間内の視点から見える位置にあるのが一般的である。そしてこの場合、視点と目標点との間には障害物は存在しない。
【0007】
一方、射出点は、視点とは異なる位置にある。したがって、視点と目標点との間に障害物が存在しない場合であっても、射出点と目標点との間に障害物が存在することがありうる。このような場合に、射出点と目標点との間の経路が、障害物で遮られるように画面表示をしてしまうと、プレイヤの直観に反してしまい、違和感を感じさせてしまう、という問題が生じる。
【0008】
本発明は、上記のような問題を解決することを課題とするものであって、視点とは異なる位置から射出される射出オブジェクトを違和感なく提示する画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0010】
本発明の第1の観点に係る画像生成装置は、記憶部、画像生成部を備え、以下のように構成する。
【0011】
すなわち、記憶部は、仮想空間に配置される複数のオブジェクトを記憶する。
これらのオブジェクトは、それぞれ複数のポリゴンとそのテクスチャによって構成されており、記憶部に記憶される情報から、各ポリゴンの形状や位置、姿勢等を取得することができる。
【0012】
一方、画像生成部は、当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成する。
すなわち、通常の三次元グラフィックス技術と同様、オブジェクトを構成するポリゴン同士の交叉や隠蔽関係を判定して、2つのポリゴンにおいては視点に近い方が視点から遠い方を隠蔽することはあっても、その逆はない、という関係を用いて、仮想空間内の様子をあらわす画像を生成する。
【0013】
ここで、当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれる。
射出オブジェクトとしては、射撃ゲームにおいては弾道に沿って標的に向かう弾丸、遠隔操作系ゲームにおいては、手元の柄から掴みたい物や掴んでいる物に向かうマジックハンド、鞭、牽引ビーム、先端トリモチのついた棹などが考えられる。射出点としては、射出オブジェクトが射出される銃口、マジックハンド・鞭・棹等の手元側の端点、牽引ビームの発射口などが考えられる。
【0014】
そして、画像生成部は、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する。
すなわち、射出オブジェクトは、当該視点との距離にかかわらず、他のいずれのオブジェクトよりも当該視点に近いものと擬制するのであるから、射出オブジェクトを構成するポリゴンが他のオブジェクトを構成するポリゴンを隠蔽することはあっても、その逆はない。したがって、射出オブジェクトは、他のオブジェクトに衝突したり、他のオブジェクトに隠されることはないのである。
【0015】
本発明によれば、目標点に向かう射出オブジェクトが常に表示されるような、ユーザの直観に沿った画像を生成することができるようになる。
【0016】
また、本発明の画像生成装置において、当該射出オブジェクトは、当該射出点と当該目標点とを結ぶ線分状もしくは曲線状の形状をなすように構成することができる。
【0017】
本発明は、上記発明の好適実施形態に係るものであり、たとえば、遠隔操作系ゲームにおいて、手元の柄から掴みたい物や掴んでいる物に向かうマジックハンド、鞭、牽引ビーム、先端トリモチのついた棹などを、射出オブジェクトとして採用することができる。
【0018】
また、本発明の画像生成装置において、当該射出オブジェクトは、当該射出点から当該目標点へ移動するように構成することができる。
【0019】
本発明は、上記発明の好適実施形態に係るものであり、たとえば、射撃ゲームにおいて、弾道に沿って標的に向かう弾丸やミサイルなどを、射出オブジェクトとして採用することができる。
【0020】
また、本発明の画像生成装置において、画像生成部は、当該視点との距離により当該複数のオブジェクトをソートして、当該複数のオブジェクトのそれぞれを、当該視点からの距離が遠い順に描画して当該画像を生成するように構成することができる。
【0021】
いわゆるZバッファ法を採用して画像の生成を行うものであるが、射出オブジェクトについては、視点との距離にかかわらず、他のオブジェクトよりも視点に近いものと擬制するのであるから、Zバッファにおけるソートの際にも、この擬制をそのまま適用する。したがって、射出オブジェクトは、Zバッファ内で、視点に最も近いオブジェクトとなる。
【0022】
本発明によれば、Zバッファ法におけるオブジェクトのソートの比較関数を工夫することによって、容易に射出オブジェクトの描画を実現することができるようになる。
【0023】
また、本発明の画像生成装置において、画像生成部は、当該視点との距離により当該複数のオブジェクトのうち当該射出オブジェクト以外のオブジェクトをソートして、当該ソートされた複数のオブジェクトのそれぞれを、当該視点からの距離が遠い順に描画し、その後に、当該射出オブジェクトを描画して、当該画像を生成するように構成することができる。
【0024】
いわゆるZバッファ法により画像の生成を行う段では、射出オブジェクト以外のオブジェクトを処理の対象とし、これらについて描画が終わった後に、Zバッファの処理対象とはしなかった射出オブジェクトを描画するものである。
【0025】
本発明によれば、射出オブジェクトをZバッファの処理対象から外すとともに、Zバッファの処理対象のオブジェクトの描画が終わった後に、射出オブジェクトの描画を行うことによって、容易に射出オブジェクトの描画を実現することができるようになる。
【0026】
また、本発明の画像生成装置は、入力受付部、目標設定部をさらに備え、以下のように構成することができる。
【0027】
すなわち、入力受付部は、指示入力を受け付ける。
この指示入力は、たとえば射撃ゲームにおける引き金やマジックハンドにおける掴み動作に相当するものである。
【0028】
また、目標設定部は、当該指示入力が受け付けられたとき、当該複数のオブジェクトのうち、当該仮想空間において当該視点から伸びる所定の半直線が初めて交叉するオブジェクトの位置を、当該目標位置として設定する。
すなわち、目標点を、射撃が命中したオブジェクトの位置、マジックハンドで掴んだオブジェクトの位置等に設定するのである。
【0029】
本発明によれば、種々のゲームにおいて、適切に弾道やマジックハンドの腕、牽引ビームなどの目標点を設定することができるようになる。
【0030】
本発明のその他の観点に係る画像生成方法は、記憶部、画像生成部を有する画像生成装置にて実行され、画像生成工程を備え、以下のように構成する。
【0031】
すなわち、記憶部には、仮想空間に配置される複数のオブジェクトが記憶される。
【0032】
一方、画像生成工程では、画像生成部が、当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成する。
【0033】
さらに、当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれる。
【0034】
そして、画像生成工程では、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する。
【0035】
本発明のその他の観点に係るプログラムは、コンピュータを上記の画像生成装置として機能させ、コンピュータに上記の画像生成方法を実行させるように構成する。
【0036】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0037】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0038】
本発明によれば、視点とは異なる位置から射出される射出オブジェクトを違和感なく提示する画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【0039】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0040】
図1は、プログラムを実行することにより、本発明の実施形態に係る装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0041】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備える。
【0042】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態に係る装置が実現される。
【0043】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0044】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0045】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0046】
インターフェイス104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。なお、コントローラ105の詳細については後述する。
【0047】
インターフェイス104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0048】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0049】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0050】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0051】
また、仮想空間が3次元にて構成される場合には、当該3次元空間内に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0052】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0053】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェイス(図示せず)により構成される。
【0054】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0055】
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0056】
さらに、情報処理装置100には、インターフェイス104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
【0057】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0058】
以上で説明した情報処理装置100は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【0059】
たとえば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用する。
【0060】
本実施形態では、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ105を採用する。
【0061】
図2は、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ105と情報処理装置100との外観を示す説明図である。以下、本図を参照して説明する。
【0062】
コントローラ105は、把持モジュール201と発光モジュール251との組合せからなっており、把持モジュール201は無線通信によって情報処理装置100と通信可能に接続されており、発光モジュール251は、有線で情報処理装置100と通信可能に接続されている。情報処理装置100の処理結果の音声および画像は、テレビジョン装置291によって出力表示される。
【0063】
把持モジュール201は、テレビジョン装置291のリモートコントローラと類似した外観をしており、その先端には、CCDカメラ202が配置されている。
【0064】
一方発光モジュール251は、テレビジョン装置291の上部に固定されている。発光モジュール251の両端には、発光ダイオード252が配置されており、情報処理装置100からの電源供給によって発光する。
【0065】
把持モジュール201のCCDカメラ202は、この発光モジュール251の様子を撮影する。
【0066】
撮影された画像の情報は、情報処理装置100に送信され、情報処理装置100は、当該撮影された画像内において発光ダイオード252が撮影された位置に基づいて、発光モジュール251に対する把持モジュール201の位置を取得する。
【0067】
このほか、把持モジュール201内には、加速度センサ、角加速度センサ、傾きセンサ等が内蔵されており、把持モジュール201そのものの姿勢を測定することが可能となっている。この測定結果も、情報処理装置100に送信される。
【0068】
把持モジュール201の上面には、十字形キー203が配置されており、プレイヤは、十字形キー203を押し込み操作することによって、各種の方向指示入力を行うことができる。また、Aボタン204ほか、各種ボタン206も上面に配置されており、当該ボタンに対応付けられた指示入力を行うことができる。
【0069】
一方、Bボタン205は、把持モジュール201の下面に配置されており、把持モジュール201の下面に窪みが構成されていることとあいまって、拳銃やマジックハンドにおける引き金を模したものとなっている。典型的には、仮想空間内における拳銃による発砲やマジックハンドによる把持の指示入力は、Bボタン205を用いて行われる。
【0070】
また、把持モジュール201の上面のインジケータ207は、把持モジュール201の動作状況や情報処理装置100との無線通信状況などをプレイヤに提示する。
【0071】
把持モジュール201の上面に用意された電源ボタン208は、把持モジュール201そのものの動作のオン・オフを行うもので、把持モジュール201は内蔵された電池(図示せず。)によって動作する。
【0072】
このほか、把持モジュール201内部には、バイブレータ(図示せず。)が用意されており、情報処理装置100からの指示に基づいて、振動の有無や強弱を制御することができるようになっている。
【0073】
以下では、把持モジュール201と発光モジュール251との組合せからなるコントローラ105を用いて、コントローラ105の現実世界における位置や姿勢を測定することを前提に説明する。ただし、上記のような形態によらず、たとえば超音波や赤外線通信、GPS(Global Positioning System)等を利用してコントローラ105の現実世界における位置や姿勢を測定するとした場合であっても、本発明の範囲に含まれる。
【0074】
(ゲームの概要)
以下では、本発明が適用されるゲームの概要について説明する。本ゲームでは、仮想空間に配置されたオブジェクトを、マジックハンドで掴んである場所から別の場所へ移動させることを、一つの目的としている。本ゲームにおいては、プレイヤがコントローラを握るのに対応して、キャラクターはマジックハンドの柄を握っている。
【0075】
ここで、マジックハンドとは、人の手の届く範囲よりも広い範囲に伸びる棒状の「腕」があり、その「腕」の先に配置される「手」によって、物を「吸着」して運搬したり、当該「吸着」を停止したりすることができるようなものをいう。したがって、棹の先端にトリモチがつけられており、そのトリモチによって遠方の物を獲得できるようにしたものも、マジックハンドと考えることができる。以下、理解を容易にするため、物がマジックハンドによって運搬されている間の状態を、日常的な文章表現に則って、「マジックハンドが物を掴んでいる」と呼ぶこととする。
【0076】
図3は、このようなゲームにおける仮想空間と現実世界との対応関係を示す説明図である。以下、本図を参照して説明する。
【0077】
仮想空間301には、マジックハンド302と、これで掴む対象となるオブジェクト303と、が配置されている。このマジックハンド302は、柄304と牽引ビームから構成されており、マジックハンド302の全長の大半を牽引ビームが占めている。「牽引ビーム」とは、漫画やアニメーションなどにおいて設定として採用されているもので、牽引ビームの先端で物体を掴み、その物体を引き寄せることができるようなものをいう。
【0078】
本ゲームにおけるマジックハンド302の牽引ビームは棒状の形状をしている。そして、この牽引ビームは、オブジェクトを何も掴んでいないときには、いずれかのオブジェクト(壁など、各種の障害物のオブジェクトを含む。)に衝突するまで、マジックハンド302の柄304の一端の射出口から半直線状に伸びている。したがって、マジックハンド302の柄304の姿勢によって、マジックハンド302の牽引ビームの射出方向が定まることになる。
【0079】
ここで、現実世界のプレイヤが把持モジュール201の位置・姿勢を変化させると、これに呼応して、マジックハンド302の柄304の位置・姿勢も変化する。したがって、本ゲームにおいては、把持モジュール201を測定対象として、把持モジュール201の位置や姿勢が測定され、マジックハンド302の柄304が指示対象となり、「当該把持モジュール201の姿勢の変化」という指示に基づいて、仮想空間301内において、マジックハンド302の柄304の位置や姿勢が変化させられることになる。
【0080】
プレイヤは、ゲームの開始時に把持モジュール201を最も把持しやすい場所に固定する。すると、これに応じて、仮想空間301内に配置された視点305および視線306に対して、相対的に定められた位置に、最も自然な姿勢で、マジックハンド302の柄304が配置される。
【0081】
このとき、現実世界においては、プレイヤに対して把持モジュール201が「基準位置」に配置されることとなり、仮想世界301においては、視点305および視線306に対してマジックハンド302の柄304が「基準位置」に配置されることになる。
【0082】
この「基準位置」は、仮想空間内の視点305および視線306に対して相対的に決まるのであるが、これは、プレイヤが最も自然な姿勢で把持モジュール201を持った位置が、プレイヤの目の位置に対して相対的に決まることに呼応している。
【0083】
仮想空間301内の視点305および視線306は、プレイヤが操作する(演ずる)仮想空間内のキャラクターの目(主観視点ともいう。)や、当該キャラクターを背後から見る目(客観視点、背後霊視点ともいう。)に対応し、この目がプレイヤの目に相当するものである。したがって、マジックハンド302の柄304の基準位置は、プレイヤの利き手に応じて、視点305よりも右下もしくは左下となるのが典型的である。
【0084】
視点305から視線306の方向に進むと、仮想的な投影面307が、視線306に直交している。仮想空間301の様子は、画面に表示すべきオブジェクト303やマジックハンド302の牽引ビームを、この投影面307に、透視投影することによって得られる画像によってプレイヤに提示される。
【0085】
透視投影の手法としては、視点305とオブジェクト303等とを結ぶ直線が、投影面307と交叉する点を用いる一点集中型投影が典型的であるが、視点305を無限遠方に配置し、オブジェクト303を通過して視線306に平行な直線が、投影面307と交叉する点を用いる平行投影を採用しても良い。
【0086】
上記のように、マジックハンド302の柄304は、視点の右下(左下)に配置されているので、普通の状況では、投影面307のうちの画面に表示される範囲の外に透視投影される。したがって、画面にはマジックハンド302の柄304が表示されないのが一般的である。
【0087】
さて、プレイヤが現実世界での基準位置から把持モジュール201の位置や姿勢を変化させると、その測定結果を参照して、情報処理装置100は、マジックハンド302の柄304の位置や姿勢を、基準位置から対応する量(典型的には、現実世界と同じ量。)だけ、移動させる。
【0088】
したがって、視点305および視線306に対する柄304の相対的な位置および姿勢は、把持モジュール201の位置や姿勢の変化に連動することとなる。プレイヤは、操作対象として把持モジュール201を用いて、指示対象たるマジックハンド302の柄304の位置や姿勢を変化させるのである。
【0089】
プレイヤは、把持モジュール201の位置や姿勢を変化させて、マジックハンド302の柄304から伸びる牽引ビームが、所望のオブジェクト303に衝突するように操作する。そして、把持モジュール201のBボタン205を押圧する。すると、マジックハンド302の先端が、オブジェクト303を掴むことになる。
【0090】
上記のように、マジックハンド302の牽引ビームは、マジックハンド302の柄304の一端の射出点から、掴んだオブジェクト303の位置を目標点として向かう。したがって、Bボタン205の押圧によって、牽引ビームが向かうべき目標位置が設定されることになり、これはちょうど、射撃ゲームにおける引き金を引いた状態に相当する。また、本実施形態では、Bボタン205を押していないときは、マジックハンド302の牽引ビームが初めて衝突するオブジェクト303の位置が、牽引ビームの目標位置として設定されることになる。
【0091】
この後は、オブジェクト303についての、運動のシミュレーションが開始される。オブジェクト303に印加される外力は以下の通りである。
(1)仮想空間内における重力。典型的には下向きである。
(2)仮想空間内において、マジックハンド302の柄304(もしくは視点305)とオブジェクト303とを結ぶ直線方向の力。いわゆる牽引力や反発力に相当する。これは、画面表示上は、プレイヤに近付く力、プレイヤから遠ざかる力に相当し、オブジェクト303とマジックハンド302の柄304(もしくは視点305)との距離、すなわち、マジックハンド302の伸縮によって定まる。
(3)仮想空間内において、マジックハンド302の柄304(もしくは視点305)とオブジェクト303とを結ぶ直線に直交する方向の力。これは、画面表示上は、上下左右に向かう力に相当し、マジックハンド302が撓む方向とその大きさによって定まる。
(4)オブジェクト303が移動している間に、移動方向とは反対向きに印加される力。いわゆる動摩擦力に相当する。
(5)オブジェクト303が静止している間に、外力とは反対向きに、同じ大きさだけ印加される力。いわゆる静止摩擦力に相当する。
【0092】
ここで、マジックハンド302の伸縮および撓みについてさらに詳細に説明する。図4は、マジックハンド302の柄304とオブジェクト303との位置関係と、力の方向を示す説明図である。
【0093】
本図に示すように、オブジェクト303を掴んでいるマジックハンド302は、柄304の位置や姿勢をプレイヤが変化させると、伸縮したり撓んだりする。一方、前述した通り、マジックハンド302の牽引ビームが何も掴んでいないときは、牽引ビームは、柄304の一端に設けられた射出口から直進する。
【0094】
そこで、以下では、マジックハンド302の柄304の姿勢の方向311を、「マジックハンド302の牽引ビームが何も掴んでいないと仮定したときに牽引ビームが柄304の一端に設けられた射出口から直進する方向」と定義する。
【0095】
一般に、マジックハンド302の牽引ビームがオブジェクト303を掴んでいるとき、オブジェクト303の重さによって牽引ビームが撓むため、マジックハンド302の柄304の姿勢の方向311と、柄304からオブジェクト303へ向かう方向とは、ずれが生じる。
【0096】
したがって、牽引ビームは、柄304の姿勢の方向311に接するように発射され、その後滑らかに撓んで、オブジェクト303に至る曲線を描くこととなる。このような曲線としては、スプライン補間により得られるスプライン曲線や、円弧等、種々の曲線を用いることができる。このとき、オブジェクト303における牽引ビームの方向は、いわゆる開放端として計算するのが容易である。
【0097】
オブジェクト303をマジックハンド302が掴み始めた瞬間の、柄304(もしくは視点305)とオブジェクト303との距離を、マジックハンド302の自然長と考えると、この自然長と、現在の仮想空間における柄304とオブジェクト303との距離と、を、対比すれば、バネに相当するような牽引力(反発力)411をシミュレートできる。すなわち、当該距離から自然長を引いた値に所定の整定数を乗じた値の牽引力(符号が負の場合は、絶対値の大きさの反発力。)411が生ずる、とすれば、簡易にシミュレーションを行うことができる。
【0098】
一方、オブジェクト303を上下左右に動かそうとする力412は、マジックハンド302の柄304の姿勢(オブジェクト303を掴んでいないとしたときの、牽引ビームが伸びる方向。)と、柄304(もしくは視点305)からオブジェクト303に向かう方向と、のずれによって生じる。
【0099】
すなわち、上下左右の力412の方向は、柄304の姿勢の方向311の方向ベクトル321から柄304(もしくは視点305)からオブジェクト303への方向の方向ベクトル322を減算したベクトル323の方向であり、その大きさは、当該ベクトル323に比例する、とするものである。
【0100】
現実の物理現象に即して考える場合には、上下左右の力412は、さらに、柄304(もしくは視点305)とオブジェクト303との距離にも比例する、とすれば、簡易にシミュレーションを行うことができる。
【0101】
このようにして、マジックハンド302に掴まえられているがゆえにオブジェクト303に印加される外力が計算できれば、あとは、重力や静止摩擦力、動摩擦力を、通常の物理シミュレーションと同様に計算することによって、オブジェクト303にかかる加速度を計算することができ、これによって、オブジェクト303の位置を更新することができる。これにより、オブジェクト303を移動させるのである。
【0102】
オブジェクト303が所望の位置に移動したら、指を離してBボタン205の押圧操作を解除する。これにより、マジックハンド302はオブジェクト303を掴むことをやめ、牽引ビームは、元の通り、マジックハンド302の柄304の姿勢の方向311に伸びるようになる。
【0103】
(マジックハンドの柄の姿勢)
さて、マジックハンド302の牽引ビームの形状は、オブジェクト303を掴んでいないときは半直線状で、柄304の姿勢の方向311を示しているが、オブジェクト303を掴んでいるときは撓むため、プレイヤに柄304の姿勢の方向311を提示する他の手法が必要となる。そこで用いるのがカーソル(指示標識)である。
【0104】
図5は、画面にカーソル(指示標識)とマジックハンドとオブジェクトが表示される様子を示す説明図である。以下、本図を参照して説明する。
【0105】
本図においては、マジックハンド302がオブジェクト303を掴んでいる状態が示されており、画面501内で、柄304の方向311は牽引ビームの方向と一致していない。すなわち、カーソル308は、柄304の方向311を示す直線上に表示されるが、これは、マジックハンド302の牽引ビームの上ではない。
【0106】
画面501への表示される画像は、投影面307へ投影されるオブジェクトの姿を示すものであるから、カーソル308の投影面307内における位置は、柄304から柄304の姿勢の方向311に伸びる半直線が投影面307に交叉する点の位置、とすれば良い。これによって、プレイヤは、画面を見るだけで、マジックハンド302の柄304の方向を適切に理解することができるようになる。
【0107】
なお、マジックハンド302がオブジェクト303を掴んでいる状態では、柄304の方向311は牽引ビームの方向と一致している。カーソル308は、マジックハンド302の牽引ビームの上に表示されることになる。このような表示例については、後述する(図8(b))。
【0108】
また、カーソル308が表示される実施形態では、マジックハンド302の操作手法に以下のような変形を適用することができる。すなわち、Bボタン205を押していない間は、マジックハンド302の牽引ビームは射出されず、柄304の位置や姿勢が変化すると、画面501内におけるカーソル308の表示位置が変化する。
【0109】
カーソル308の表示位置は、マジックハンド302の柄304の姿勢の方向311と投影面307とが交わる位置を採用しているが、この態様では、「マジックハンド302の柄304の姿勢の方向311が初めて衝突する他のオブジェクト303の表面の位置」と、始点305とを通過する直線が、投影面307と交わる位置を採用しても良い。後者のようにすると、ちょうどレーザーポインタで部屋の中の物体を指し示しているような操作感を得ることができる。
【0110】
そして、Bボタン205を押圧操作すると、マジックハンド302の柄304の射出口から牽引ビームが発射され、牽引ビームが初めて衝突したオブジェクト303が移動可能であれば、これを吸着する。カーソル308の表示位置として、レーザポインタで物体を指し示すような態様を採用しているときは、当該カーソル308が重なって表示されるオブジェクト303が吸着されるオブジェクト303となり、プレイヤにとってもわかりやすい。なお、吸着したオブジェクト303の移動は、上記の説明と同様である。
【0111】
このほか、Bボタン205を押圧操作し続ける操作がプレイヤにとって面倒な場合もある。このような場合には、Bボタン205を押圧操作して離すと牽引ビームが発射されて吸着が行われ、そして、所望の位置までオブジェクト303を移動したら、もう一度、Bボタン205を押圧操作して離してマジックハンド302の牽引ビームを消去し、オブジェクト303が解放されるような形態を採用することもできる。
【0112】
上記の実施形態では、「指示入力の受付の開始」が「Bボタン205の押圧操作の開始」に、「指示入力の受付の終了」が「Bボタン205の押圧操作の終了」に、それぞれ対応するが、この態様では「指示入力の受付の開始」が「牽引ビームが射出されていない状態でBボタン205を押圧して離す操作」に、「指示入力の受付の終了」が「牽引ビームが射出されている状態でBボタン205の押圧して離す操作」に、それぞれ対応するのである。
【0113】
いずれの操作体系を採用するかは、プレイヤの習熟度やゲームの種類によって適宜変更が可能である。また、指示入力を発するボタンの割り当てなどについては、Bボタン205ではなく、Aボタン204を採用する等、用途に応じて適宜変更が可能である。
【0114】
(視点の位置の移動)
以上の説明では、視点305の位置は変化しなかったが、視点305に対して相対的にマジックハンド302の柄304の位置を変化させるだけでは、オブジェクト303を所望の位置に移動させることができない場合がある。このようなときに、視点305そのものを仮想空間内で移動させるためには、十字形キー203を利用する、という手法もありうる。しかしながら、本ゲームにおいては、プレイヤにとってもっと直観的な移動の手法を採用する。
【0115】
図6は、マジックハンドの柄304の位置と、視点305の移動の方向との関係を説明する説明図である。以下、本図を参照して説明する。
【0116】
ゲームの開始時に、仮想空間301内において、視点305および視線306に対して相対的に、マジックハンド302の柄304の基準位置313が定められる。
【0117】
この後、プレイヤが把持モジュール201の位置を変化させると、マジックハンド302の柄304の位置も変化する。
【0118】
そこで、現在の柄304の位置の位置ベクトルから、基準位置313の位置ベクトルを減算したベクトル314の方向に、視点を移動させるのである。
【0119】
このため、ベクトル314(もしくはこれに定数を乗じたベクトル。)を、視点305の移動速度の速度ベクトルと考えて、所定の単位時間に当該速度ベクトルを乗じた量だけ、視点305を移動させるのが最も簡単である。
【0120】
また、仮想空間301内に所定の平面(典型的には、仮想空間301内における「地面」に相当するものであるが、これには限られない。)を想定し、ベクトル314(もしくはこれに定数を乗じたベクトル。)の当該所定平面方向の成分を移動速度の速度ベクトルと考えて、処理を行ってもよい。
【0121】
このほか、視点305を含むキャラクターに印加される外力ベクトル、もしくは、加速度ベクトル(これらの場合も、地面に平行な成分のみを考えるのが典型的である。)と考えて、視点305そのものの移動のシミュレーションを行うこともできる。
【0122】
テレビジョン装置291を見ているプレイヤが、把持モジュール201を後に(背中の方向に)移動させると、仮想空間301内の視点305を持つキャラクターは、後ろ向きに移動する。したがって、オブジェクト303を掴んでいるマジックハンド302は幾分伸びることとなり、一般的には、オブジェクト303には、視点305を持つキャラクターに向かう引力が印加され、オブジェクト303も画面奥から手前に向かって移動することとなる。
【0123】
プレイヤが、把持モジュール201を前に(テレビジョン装置291に近付くように)移動させると、仮想空間301内の視点305を持つキャラクターは、前進する。すると、オブジェクト303を掴んでいるマジックハンド302は幾分縮むこととなり、一般的には、オブジェクト303には、視点305を持つキャラクターから離れようとする反発力が印加され、オブジェクト303も画面手前から奥に向かって進むことになる。
【0124】
もっとも、オブジェクト303とマジックハンド302との間の柄304の間の伸び縮みによる牽引力・反発力は、必ずしも想定する必要はなく、マジックハンド302そのものの長さを変化させるような指示入力をAボタン204や各種ボタン206によって行うこととしても良い。
【0125】
上記の形態によって、
(1)仮想空間301内において、視点305を有するキャラクターを前後に移動させること
(2)仮想空間301内において、視点305および視線306に対して、マジックハンド302の柄304の相対的な位置および姿勢を変化させること
(3)仮想空間301内において、柄304から伸びる可撓性のマジックハンド302の先端でオブジェクト303を掴んだり、離したりすること
が可能となった。これらの機能によって、オブジェクト303を仮想空間301内である位置から別の位置へ移動させることができる。
【0126】
以下では、本発明の原理にしたがって、これらの機能にさらに加えるべき、新たな機能について、順に説明する。
【0127】
(視線の方向の制御)
上記の形態において、プレイヤがキャラクターの向き、すなわち、視線306の方向を変更したいと考える場合も多い。そして、上記の形態においては、把持モジュール201を現実空間で前後に移動させるだけで、キャラクターを前後に移動させることができたから、これと同様の容易な操作で、十字形キー203などを使わずに視線方向を変化させることができるようにしたい。以下では、このような技術について詳細に説明する。
【0128】
上記のように、本実施形態においては、柄304の姿勢がカーソル308によって、画面501に表示されている。このカーソル308は、プレイヤが把持モジュール201の姿勢を変更するだけで、画面501内で表示される位置を容易に変更することができる。そこで、本技術では、カーソル308が画面501内に表示される位置に基づいて、キャラクターの向き、すなわち、視線306の方向を変更する。
【0129】
ここで図5に戻ると、画面501は、上縁部511、右縁部512、左縁部513、下縁部514、中央部515の5つの領域に分割されている。プレイヤは、以下のように把持モジュール201の姿勢を変化させることで、視線306の方向の移動の指示を行う。
(a)視線306を上に移動したいときには、カーソル308が上縁部511に表示されるように、把持モジュール201の姿勢を変更し、
(b)視線306を右に移動したいときには、カーソル308が右縁部512に表示されるように、把持モジュール201の姿勢を変更し、
(c)視線306を左に移動したいときには、カーソル308が左縁部513に表示されるように、把持モジュール201の姿勢を変更し、
(d)視線306を下に移動したいときには、カーソル308が下縁部514に表示されるように、把持モジュール201の姿勢を変更し、
(e)視線306の方向が所望の方向となったら、カーソル308が中央部515に表示されるように、把持モジュール201の姿勢を変更する。
【0130】
すなわち、指示標識(カーソル308)が、画面501内の所定の表示領域(上縁部511、右縁部512、左縁部513、下縁部514)に表示されている間、当該表示領域のそれぞれに対応付けられる上右左下の方向に、視線306の方向を移動させ、指示標識(カーソル308)が画面501内の所定の表示領域以外の領域(中央部515)に表示されるようにすると、視線306の方向の移動を停止するのである。
【0131】
情報処理装置は、単位時間おき(たとえば、垂直同期割り込みの周期ごと。)にカーソル308の位置が画面501内のどの領域に含まれるかを識別する。そして、必要があれば、当該領域に割り当てられた移動量と方向に、視線306の方向を変化させる。
【0132】
これによって、視線306の方向が変化するのであるが、その後に、仮想空間内におけるマジックハンド302の柄304の姿勢311の方向を、画面501内でのカーソル308の表示位置が変化しないように、更新することが望ましい。
【0133】
図7は、視線306の方向の向きを右に移動させる様子を仮想空間301の上側から見たものを順に示す説明図である。以下、本図を参照して説明する。
【0134】
すなわち、
(1)まず、視線306の方向を変化させる前に、視点305および視線306に対する相対的なマジックハンド302の柄304の位置および姿勢を取得し(本図(a))、
(2)視点305を中心に視線306の方向を変化させて、キャラクターの向きを変えてから(本図(b))、
(3)変化された後の視点305と視線306に対するマジックハンド302の柄304の位置および姿勢を、先に(1)で取得した位置および姿勢に更新する(本図(c))。したがって、マジックハンド302の柄304の位置および姿勢は、仮想空間301に対して変化することとなる。
【0135】
このような処理によって、視線306の方向の移動の前後において、視点305と視線306に対するマジックハンド302の柄304の位置および姿勢は同じ値に維持されるのである。
【0136】
たとえば、プレイヤがキャラクターを右に向けたい場合、カーソル308が右縁部512に移動するように、把持モジュール201の姿勢を変更する。
【0137】
そして、視線306の方向が右に移動し始めたら、把持モジュール201の姿勢をそのまま固定すると、キャラクターの向き(視線306の方向)が更新されて、右に少しずつ向きが変わっていっても、カーソル308が画面501内で表示される位置は変わらない。
【0138】
最後に、キャラクターの向き(視線306の方向)が所望の向きに至ったら、カーソル308を画面501の中央部515に戻すように把持モジュール201の姿勢を変更すれば良い。このような、極めて直観的な操作で、容易にキャラクターの向きを変更することができるようになるのである。
【0139】
上縁部511、右縁部512、左縁部513、下縁部514のそれぞれの幅や、単位時間あたりの視線306の方向の単位時間あたりの移動量は、適用分野やプレイヤの習熟度によって適宜変更することができる。また、単位時間あたりの移動量を、中央部515に近いところでは小さく、画面501の縁に近付けば近づくほど大きくすることとしても良い。
【0140】
また、プレイヤ(視線306の方向)が上や下を向くときには、適当な上限や下限を設け、限界に至ったら、それ以上の視線306の方向の変更はしないこととしても良いし、視線306を変化させることができるのは左右のみに限定する、など、種々の制約を課すこともできる。
【0141】
また、画面501の縁の分割方法としては、このほか、画面501の中央から扇形に広がる領域分割を行い、各領域には画面中央から見た方向の単位時間あたりの移動量を割り当てることとして、斜め方向への移動も可能としても良い。
【0142】
(オブジェクトの掴み動作の切り替え)
上記の説明では、プレイヤがBボタン205を押圧してマジックハンド302がオブジェクト303を掴むと、Bボタン205を離すまで掴み状態が維持されていたが、マジックハンド302を牽引ビームであると考える場合、ビームが何か他の障害物によって遮られると、牽引ビームが途切れ、オブジェクト303を掴んでいた状態が自然に解除されることとした方が自然な場合もある。
【0143】
図8は、オブジェクト303とマジックハンド302と、障害物との関係を示す説明図である。
【0144】
本図(a)では、オブジェクト303とマジックハンド302の柄304との間に障害物309は存在しない。したがって、画面501では、両者の間にマジックハンド302の牽引ビームが描画される。
【0145】
一方、本図(b)では、オブジェクト303とマジックハンド302の柄304との間に障害物309が存在する。上記のようなゲーム設定においては、マジックハンド302の牽引ビームを表現する仮想空間内のオブジェクトと、その他のオブジェクトと、が交叉しているか否かを判定する。
【0146】
その結果最も柄304の近くで交叉しているオブジェクトが、掴んでいるオブジェクト303ではなく、障害物309であることが判明した場合には、牽引ビームが障害物で遮られたものとして、掴み状態を解除する。
【0147】
本図(b)に示す画面501では、マジックハンド302の牽引ビームが障害物309に遮られ、掴み状態が解除されたため、オブジェクト303が落下している。また、牽引ビームの撓みもなくなり、真っ直ぐになっている。
【0148】
一方で、プレイヤが仮想空間の中で物を掴もうとする場合には、その視界を基準として考えた方が自然な場合も多い。すなわち、牽引ビームを「射撃」の一種としてとらえた場合である。
【0149】
この場合、マジックハンド302の牽引ビームがオブジェクト303に「命中」(掴み状態)していることがプレイヤの視界(すなわち、視点305から視線306の方向に仮想空間301を見たときの投影面307に投射されるオブジェクトの様子)において「命中」しているのなら、たとえ牽引ビームがほかの障害物オブジェクトによって遮られているとしても、そのまま掴み状態を維持した方が、プレイヤにとって自然に感じられる場合もある。
【0150】
このような場合には、マジックハンド302の牽引ビームと、そのほかのオブジェクトと、を投影面307に投影する順序や、オブジェクト同士の交叉を判定する処理に工夫を加える必要がある。
【0151】
すなわち、仮想空間301のオブジェクトを投影面307に投影する場合には、視点305からの距離によってオブジェクトをソートし、視点305から遠いオブジェクトから順に投影面307への投影を行う。これによって、近くにあるオブジェクトが遠くにあるオブジェクトを隠す、という状況が表現される。この手法はZバッファ法と呼ばれ、広く用いられている。
【0152】
また、オブジェクト同士が交叉しているか否かを判定する場合についても、Zバッファを利用することができる。互いに交叉しているオブジェクトは、視点305からの距離も同程度と考えられ、ソート後のZバッファにおける順序が近くになっているからである。
【0153】
Zバッファ法をさらに厳密に利用する場合には、オブジェクトを構成するポリゴンのそれぞれを「オブジェクト」として考え、視点305とポリゴンとの距離に基づいて全オブジェクトのポリゴンをソートし、視点305から遠いポリゴンから順に投影面307への投影を行って、当該ポリゴンに割り当てられたテクスチャを貼り付ける。また、オブジェクトを構成するポリゴンを細かくすれば、ポリゴン同士が隠蔽し合う様子を描画するだけで、オブジェクト同士の交叉関係を近似することができる。
【0154】
そこで、オブジェクト303を掴んでいるときのマジックハンド302の牽引ビームについては、視点305からの距離として、仮想空間301内における距離そのものではなく、仮想的に「いずれのオブジェクトよりも視点305に近い距離」を採用することとする。
【0155】
このようにすることで、オブジェクトの様子を投影面307に投影する際には、最後にマジックハンド302の牽引ビームが描画され、マジックハンド302の牽引ビームは、いずれの障害物とも衝突しないこととなる。このようなZバッファ法の詳細な技術については、後述する。
【0156】
このようにして投影面307上で生成された画像の様子を本図(c)の画面501に示す。本図(c)においては、本図(b)と同様に、マジックハンド302の柄304とオブジェクト303との間には障害物309が存在するのであるが、この衝突関係や前後関係を「騙し絵」的に変化させ、オブジェクト303を掴んでいる間(かつ、オブジェクト303が視点305から直接見え、視線306が途中で障害物309に衝突しない間)は、マジックハンド302の牽引ビームが維持されるのである。
【0157】
一般の射撃ゲームにおいても、弾道を見易く表示するために、拳銃や光線銃の位置を画面中央から右下や左下に移動することが多い。一方で、射撃ゲームの照準や命中判定は視点および視線を基準に考慮する。把持モジュール201は、このような射撃ゲームにも応用することができ、この場合は、Bボタン205を引き金に割り当て、Bボタン205を押圧するごとに弾や光線が発射されるものとする。
【0158】
このような射撃ゲームにおいては、照準が目標に重なっていることをもって、命中している、と判定することが多い。照準が目標に重なっている、ということは、視点から目標の間には障害物は存在しない、ということでもある。それにもかかわらず、弾丸の光線の弾道が他の障害物に遮られるのは、プレイヤからとって見れば不自然である。
【0159】
しかしながら、拳銃等の位置は、上記のように、視点の位置には配置されていない。したがって、命中している状態であるのに、拳銃等と目標とを結ぶ経路が、他のオブジェクトと衝突してしまうことがある。
【0160】
ゲームの仮想空間は現実世界をシミュレートしたものではあるが、厳密なオブジェクト同士の交叉関係や隠し合い関係よりも、上記のようなプレイヤの直観を優先した方が、ゲームの楽しみを損わず、プレイヤが仮想空間に没頭できる場合も多い。
【0161】
そこで、このような衝突を防止するため、弾道を移動する弾や光線を視点に最も近いオブジェクトにして、目標オブジェクト以外との衝突が発生しないように画面表示を工夫し、いわゆる騙し絵的な処理によって、プレイヤの没入度を向上させる。
【0162】
なお、このような騙し絵的処理は、上記のように、マジックハンド302の牽引ビーム表現のみならず、拳銃や光線銃、弓矢を用いた射撃ゲーム、ボールや石を投げる投擲ゲーム等、種々のゲームに適用することができる。この場合、牽引ビームの形状が、弾や矢、ボール、石が移動する経路、発射される光線の形状に相当することとなる。
【0163】
したがって、必ずしも、牽引ビームのような弾性を持つ必要はなく、ゲーム世界に応じた弾道計算や光線の形状計算を行ったうえで、グラフィックス表示を行う場合には、オブジェクト同士の隠し合い関係や交叉関係の判定の際に、Zバッファ内でもっとも視点の近くに弾等のオブジェクトが位置するようにソートの手順に変更を加えて、オブジェクトの投影および描画を行えば良い、ということになる。
【0164】
なお、射撃ゲームなどでこのような騙し絵的表現を採用する場合には、把持モジュール201のBボタン205を押すことによって、拳銃等の引き金を引くことに相当する指示入力が受け付けられる。また、照準は、視線306が仮想空間301内で初めて交叉するオブジェクトに合わされていることになる。そこで、Bボタン205による指示入力が受け付けられたときに、視線306が初めて交叉するオブジェクトが存在する位置が、目標点となる。
【0165】
(オブジェクトとの遠近感等の提示)
上記のような態様において、ゲームの仮想空間301を画面501に表示した場合であっても、3次元の世界を2次元の画面501に表示するのであるから、奥行き方向の距離感がプレイヤに伝わりにくいことがままある。特に、オブジェクト303をマジックハンド302で掴んでいる場合には、そのオブジェクト303が近付きつつあるのか、遠ざかりつつあるのか、の情報は、プレイヤにとって極めて重要である。そこで、表示の上で、各種の工夫を行うことで、これらの情報をプレイヤに提示する技術が求められる。
【0166】
まず、掴まれたオブジェクト303が近付きつつあるか、遠ざかりつつあるか、を判定するには、当該オブジェクトの速度ベクトルや加速度ベクトルのいずれかを利用する。以下では、速度ベクトルを利用するものとする。
【0167】
そして、オブジェクト303の速度ベクトルの、オブジェクト303からマジックハンドの柄304(もしくは視点305)に向かう成分を計算する。
【0168】
この成分が負である場合は、オブジェクト303は遠ざかりつつあることになり、正である場合は、オブジェクト303は近付きつつあることになる。
【0169】
速度ベクトルを採用した場合は、柄304(もしくは視点305)とオブジェクト303の距離の変化が直ちに上記の判定基準に反映されるが、加速度ベクトルを採用した場合には、これからどうなるのか、の将来予測的な判定となる。したがって、ゲームの内容等に応じて、適宜適切な手法を選択すれば良い。
【0170】
さて、近付きつつあるか、遠ざかりつつあるか、の判定に基づいて、この情報をプレイヤに提供する手法として、最も単純な手法は色で表現することである。たとえば、近付きつつある場合は、マジックハンド302の牽引ビームを青く表示し、遠ざかりつつある場合は、マジックハンド302の牽引ビームを赤く表示する等である。
【0171】
このほか、牽引ビームに模様を保たせる、という手法もありうる。図9は、マジックハンド302の牽引ビームに模様を与えた様子を示す説明図である。
【0172】
本図(a)では、牽引ビームには、縞模様が描かれている。オブジェクトが近付きつつあるときは、この縞模様がオブジェクト303から柄304の方向に移動し、遠ざかりつつあるときは、逆向きに移動する、というものである。
【0173】
本図(b)では、牽引ビームに太さの変化をもたせており、蛇が卵を呑んだときのように、オブジェクトが近付くか遠ざかるかによって、太い部分が手前に移動したり奥に移動したりするものである。
【0174】
本図(c)は、蛙の卵のように、半透明の牽引ビーム内に球体を配置して、この球体が牽引ビームの内部を移動する、というものである。
【0175】
これらの手法によって、二次元の画面501による表示では把握しにくい場合があるオブジェクト303の挙動を、プレイヤに適切に伝達することができるようになる。
【0176】
(処理の手順)
図10は、本実施形態に係るゲーム装置の概要構成を示す模式図であり、図11は、当該ゲーム装置にて実行される処理の制御の流れを示すフローチャートである。以下、これらの図を参照して説明する。
【0177】
ゲーム装置901は、記憶部902、測定部903、変化部904、移動部905、更新部906、画像生成部907、表示部908、入力受付部909を備える。そして、当該ゲーム装置901は、プレイヤに提示する画像を生成する、という意味で、画像生成装置としても機能する。
【0178】
記憶部902は、仮想空間301内に配置される各種のオブジェクトの位置や姿勢等の情報を記憶し、RAM 103等によって実現される。CPU 101は、これらの情報を、ゲームが開始される際に、適切に初期化する(ステップS951)。
【0179】
一方、測定部903および入力受付部909は、CPU 101の制御下にある把持モジュール201等からなるコントローラ105等によって実現されるもので、現実世界における把持モジュール201の位置および姿勢、ならびに、Bボタン205の押圧状態を取得する(ステップS952)。
【0180】
ついで、変化部904は、測定された把持モジュール201の位置および姿勢に応じて、RAM 103に記憶されるマジックハンド302の柄304の位置および姿勢を変化させる(ステップS953)。したがって、CPU 101はRAM 103等と共働して、変化部904として機能する。
【0181】
さらに、CPU 101は取得されたBボタン205の押圧状態が、押圧が開始された状態か、押圧が終了した状態か、前回と状態が同じか、を判定して(ステップS954)、押圧が開始されたのであれば(ステップS954;掴み開始)、マジックハンド302の柄304の姿勢の方向311に存在するオブジェクト303を掴むように、RAM 103を更新し(ステップS955)、ステップS957に進む。一方、押圧が終了したのであれば(ステップS954;掴み終了)、マジックハンド302の柄304の姿勢の方向311に存在するオブジェクト303を離すように、RAM 103を更新し(ステップS956)、ステップS957に進む。前回と状態が同じであれば(ステップS954;同じ)、そのままステップS957に進む。
【0182】
そして、画像生成部907は、CPU 101の制御の下、RAM 103を参照して各オブジェクトの位置や姿勢を取得してZバッファによるソートを行う(ステップS957)。この際に、上述した通り、騙し絵的な表現を行う必要があれば、マジックハンド302の牽引ビームについては、仮想空間301における視点305との距離にかかわらず、Zバッファにおけるソートの順序では、視点305に一番近いものとしてソートする。
【0183】
そして、画像生成部907は、投影面307へのオブジェクトの投影をZバッファにおける「遠い順」に行うことによって、画像を生成する(ステップS958)。
【0184】
さらに、表示部908は、生成された画像をフレームバッファに配置して、テレビジョン装置291に画面501を出力する(ステップS959)。
【0185】
さて、上記のように画像を生成すると(ステップS958)、画面501の中におけるカーソル308の位置が判明する。したがって、移動部905を実現するCPU 101は、RAM 103と共働の上、カーソル308の画面501内の位置に応じて、視線306の方向を変化させるか否かを判定する(ステップS960)。
【0186】
変化させる場合(ステップS960;Yes)、まず、仮想空間301における現在の視点305および視線306に対する柄304の相対的な位置および姿勢を取得し(ステップS961)、つぎに、カーソル308の位置に応じた変化量だけ、視線306の方向を変化させ(ステップS962)、さらに、変化させた後の視点305および視線306に対する柄304の相対的な位置および姿勢を、ステップS961で取得したものに更新して(ステップS963)、ステップS965に進む。
【0187】
一方、視線306の方向を変化させない場合(ステップS960;No)、更新部906は、測定された把持モジュール201の位置と基準位置とずれに応じて、視点305の位置を変化させる(ステップS964)。したがって、CPU 101は、RAM 103等と共働して、更新部906として機能する。
【0188】
このような位置関係の更新が終わったら、物理シミュレーションに基づく計算を行ってRAM 103に記憶される情報を更新し(ステップS965)、一定時間待機した後(ステップS966)、ステップS952に戻る。
【0189】
なお、視線306の方向を変化させる処理と、視点305の位置を変化させる処理と、は、上記制御フローにおいては、排他的に行っている。これは、習熟度の低いプレイヤに対応するためであり、ゲームの内容によっては、ステップS960の判断を省略し、ステップS963の後に、ステップS964に進むこととしても良い。
【0190】
以下ではステップS957〜ステップS958におけるZバッファを用いたオブジェクトの描画について、さらに詳細に説明する。図12は、本実施形態におけるZバッファ法の処理の制御の流れの詳細を示すフローチャートである。以下、本図を参照しながら説明する。
【0191】
上述した通り、仮想空間301内に配置されるオブジェクトは、それぞれ、複数のポリゴンと、当該ポリゴンに割り当てられるテクスチャとから構成されている。Zバッファは、以下の要素をメンバーとする構造体を一要素とする配列である。
(a)ポリゴンのRAM 103内におけるアドレスや識別番号等。
(b)当該ポリゴンと視点305との距離。
【0192】
以下、このZバッファのi (i≧0)番目の要素をZ[i]と、当該要素のそれぞれのメンバーをZ[i].p,Z[i].dと、Zバッファに登録されたポリゴンの数を#Zと、それぞれ表記する。
【0193】
本処理が開始されると、RAM 103内に用意されたZバッファとカウンタ変数iをクリアする(ステップS1001)。これにより、#Z = 0,i = 0となる。
【0194】
つぎに、仮想空間301に配置されたオブジェクトのそれぞれについて、以下の処理を繰り返す(ステップS1002〜ステップS1011)。
【0195】
まず、現在処理中のオブジェクトの種類が「騙し絵オブジェクト」か否かを調べる(ステップS1003)。上記のように、仮想空間301内のオブジェクトには、以下の2種類がある。
(a)マジックハンド302の牽引ビーム、射撃ゲームにおける拳銃の弾丸、光線銃の光線等の騙し絵オブジェクト。騙し絵オブジェクトは、マジックハンド302の柄304の一端や拳銃・光線銃等の射出口から目標までの経路を結んだり、その経路を移動したりするオブジェクトであり、視点305から目標が見えるときには、当該経路までの間が、ほかのオブジェクトと衝突していてもこれを無視するようなものである。状況のような態様では、騙し絵オブジェクトは、マジックハンド302の柄304の一端等の射出点から射出される射出オブジェクトに相当する、と考えることができる。
(b)騙し絵オブジェクトではないオブジェクト。
【0196】
騙し絵オブジェクトである場合(ステップS1003;Yes)、RAM 103内に用意されたフラグ変数fに-1を設定し(ステップS1004)、そうでなければ(ステップS1003;No)、RAM 103内に用意されたフラグ変数fに+1を設定して(ステップS1005)、ステップS1006に進む。
【0197】
なお、仮想空間301の様子を表示する画像を生成するための「視点」と、照準を合わせる「視点」とを異なる場所に配置して、2つのカメラで仮想空間301の様子を表示するような場合には、いずれの「視点」を本実施形態にいう視点305としても良い。
【0198】
ついで、当該処理中のオブジェクトを構成するポリゴンのそれぞれについて、以下の処理を繰り返す(ステップS1006〜ステップS1010)。
【0199】
まず、現在処理中のポリゴンと、視点305との距離dを計算する(ステップS1007)。
【0200】
ついで、Zバッファのi番目の要素について、
Z[i].d ← f × d;
Z[i].p ← ポリゴンのアドレス
のように代入を行い(ステップS1008)、iの値を1増やして(ステップS1009)、Zバッファに当該ポリゴンを登録して、当該オブジェクトを構成するポリゴンのすべてについて処理が終わるまで、ステップS1006に戻って処理を繰り返す(ステップS1010)。
【0201】
このような処理によって、騙し絵オブジェクトについては、視点305との距離が負になり、そうでない通常のオブジェクトについては、視点305との距離が正になる。
【0202】
さて、仮想空間301に配置されるオブジェクトのすべてについて処理が終わるまで、ステップS1002に戻って処理を繰り返した(ステップS1011)後は、Zバッファの各要素を、メンバーdの値に基づいて小さい順にソートする(ステップS1012)。
【0203】
すなわち、ソートに際しては、Zバッファのx番目の要素とy番目の要素との大小関係を比較する必要があるが、このときに、Z[x].dとZ[y].dとを比較するのである。
【0204】
上記のように、騙し絵オブジェクトを構成するポリゴンは、視点305との距離が負に設定されることとなるから、ソートによって、Zバッファの添字が0に近い側(添字が小さい側)に寄せられることになり、通常のオブジェクトを構成するポリゴンは、ソートによって、Zバッファの添字が#Zに近い側(添字が大きい側)に寄せられることになる。
【0205】
ソートが終わったら、iの値を#Z - 1に設定して(ステップS1013)、Z[i].d ≧ 0である間、以下の処理を繰り返す(ステップS1014〜ステップS1019)。
【0206】
すなわち、アドレス等がZ[i].pのポリゴンの情報を取得し(ステップS1015)、当該ポリゴンの投影面307への投影先を計算して(ステップS1016)、当該投影先に対応付けられる描画バッファ(典型的にはRAM 103内に用意されるが、画像処理部107がダブルバッファによるフレームメモリを持っている場合には、現在表示されていない側のフレームメモリを利用することもできる。)の領域に、当該ポリゴンのテクスチャを描画する(ステップS1017)。そして、iの値を1減らし(ステップS1018)、Z[i].d ≧ 0である間、ステップS1014に戻って処理を繰り返す(ステップS1019)。
【0207】
配列の添字iの範囲チェックをしなくとも良いのは、騙し絵オブジェクトのポリゴンについての要素がZ[i].d < 0であり、「番兵」として働いているからである。
【0208】
さて、通常オブジェクトについての描画(ステップS1014〜ステップS1019)が終わったら、次は騙し絵オブジェクトについての描画を行う。すなわち、iの値を0に設定して(ステップS1020)、Z[i].d < 0である間、以下の処理を繰り返す(ステップS1021〜ステップS1026)。
【0209】
すなわち、アドレス等がZ[i].pのポリゴンの情報を取得し(ステップS1022)、当該ポリゴンの投影面307への投影先を計算して(ステップS1023)、当該投影先に対応付けられる描画バッファ(典型的にはRAM 103内に用意されるが、画像処理部107がダブルバッファによるフレームメモリを持っている場合には、現在表示されていない側のフレームメモリを利用することもできる。)の領域に、当該ポリゴンのテクスチャを描画する(ステップS1024)。そして、iの値を1増やし(ステップS1025)、Z[i].d < 0である間、ステップS1014に戻って処理を繰り返す(ステップS1026)。
【0210】
配列の添字iの範囲チェックをしなくとも良いのは、通常オブジェクトのポリゴンについての要素がZ[i].d ≧ 0であり、番兵として働いているからである。プログラミング業界では、一般用語で、配列の走査処理を行う場合に、その添字の範囲をチェックしないでも済むように、走査対象から外れる要素に、「常に条件が不成立」の要素を意図的に配置する手法を用いることがある。この「常に条件が不成立」の要素を当該要素を「番兵(sentinel)」と呼ぶ。
【0211】
このようにして、描画バッファに各オブジェクトの様子が描画された、その他必要な情報(たとえば、キャラクターの体力ゲージなどのステータス情報が含まれる。)を適宜描画して(ステップS1027)、フレームメモリへ転送し(ステップS1028)、本処理を終了する。すると、ステップS958において、画像処理部107が、フレームメモリへ転送された情報に基づいて、画面に仮想世界の画像を表示するのである。
【0212】
なお、Zバッファの各要素に、当該ポリゴンが属するオブジェクトが騙し絵オブジェクトか否かのフラグ領域を設け、ソートの際には、当該フラグ領域を参照してソートを行うこととしても良い。上記の態様は、視点との距離を表す数値表現の符号ビットを、当該ポリゴンが属するオブジェクトが騙し絵オブジェクトか否かのフラグ領域として利用することに相当する。
【0213】
また、騙し絵オブジェクト用のZバッファと、通常オブジェクト用のZバッファと、の2つを用意して、ポリゴンを振り分けることとし、後者を視点から遠い順に描画してから、前者を視点から遠い順に描画する、という手法を採用することもできる。
【0214】
なお、上記実施形態では、目標が視点305から見えるときは、牽引ビームが辿る経路がほかのオブジェクトと衝突していても、この衝突を無視することになる。そしてこれは、一旦目標が設定された後、すなわち、マジックハンド302の牽引ビームが目標オブジェクトを吸着している間は、当該目標オブジェクトが何らかの障害物の存在によって視点305から見えなくなってしまっても続く。
【0215】
もっとも、目標が視点305から見えなくなったときは、マジックハンド302の牽引ビームが切断されることとして、牽引ビームが仮想空間301の中でいずれかのオブジェクトに衝突しているか否かにかかわらず、「騙し絵」的に、牽引ビームがいずれかのオブジェクトに衝突するようにしても良い。
【0216】
たとえば、視点305と目標を結ぶ線が衝突するオブジェクトの衝突点と、マジックハンド302の柄304の射出点とを結ぶ線上に(柄304の姿勢の方向311にかかわらず)、牽引ビームを描くこととすれば良い。
【0217】
このほか、マジックハンド302がオブジェクト303を吸着していない間は、投影面307におけるカーソル308の位置を目標点として設定して、同様の「騙し絵」的処理を行っても良い。
【0218】
以下、「騙し絵」の他の描画手法について説明する。上記の形態では、マジックハンド302の柄304の射出点から射出される牽引ビームを構成するオブジェクト等の騙し絵オブジェクトは、どの通常のオブジェクトよりも視点305に近いものとみなして画像を生成するために、Zバッファにおけるソートの順序に工夫を加えていた。
【0219】
しかしながら、牽引ビームの形状が弾性のある円柱や帯のような幾何学的に単純な形状をしている場合には、以下のような態様を採用することも可能である。
【0220】
すなわち、通常のオブジェクトを構成するポリゴンについては、Zバッファを用いてソートをし、視点305から遠い順に、投影面307へ投影される領域を求め、画像バッファにおいてその領域にテクスチャを貼り込むことによって描画を行う。これは、通常の三次元グラフィックス処理と同様である。
【0221】
そして、通常のオブジェクトすべてについて、画像バッファへの描画が完了したら、マジックハンド302の柄304の射出点と、吸着されたオブジェクト303とを結ぶ曲線の形状を2次元的に求め、画像バッファへ上書き描画するのである。
【0222】
たとえば、牽引ビームが円柱状の形状の場合、その断面が投影面307に投影される太さは、視点305からの距離に反比例する。また、当該牽引ビームの中心を貫く曲線形状は、スプライン補間等によって求めることができ、求められた仮想空間(3次元空間)内の中心曲線上の各点と、視点305との距離を求めれば、当該点を中心とする断面が投影面307に投射されるときの大きさを求めることもできる。これによって、円柱状の形状の牽引ビームが、3次元グラフィックス的に遠近感をもって画像バッファに描画されるのである。円柱以外の形状を持つ場合も、同様の処理によって描画が可能である。
【0223】
本態様では、騙し絵オブジェクトがどの通常のオブジェクトよりも視点305に近いものとみなすため、画像バッファに対する通常オブジェクトの描画をすべて行った後に、騙し絵オブジェクトの描画を行うこととしている。
【0224】
このような描画手法を採用することにより、騙し絵オブジェクトがどの通常のオブジェクトによっても隠蔽されないこととなるため、どの通常のオブジェクトよりも視点305に近いものとみなすことができるからである。
【0225】
そして、この際に、騙し絵オブジェクトについては、Zバッファにおけるソートの対象とする必要はなく、また、騙し絵オブジェクトを比較的単純な1つの幾何学的形状としてときには、簡単な計算によって、画像バッファに対する騙し絵オブジェクトの描画を行うことができる。
【0226】
以上説明した実施形態は、本願発明に係る実施形態の一つに係るものであり、種々のバリエーションを採用して様々な処理を追加等した場合であっても、本発明の範囲に含まれる。
【産業上の利用可能性】
【0227】
以上説明したように、本発明によれば、視点とは異なる位置から射出される射出オブジェクトを違和感なく提示する画像を生成するのに好適な画像生成装置、画像生成方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0228】
【図1】プログラムを実行することにより、本発明の実施形態に係る装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。
【図2】本実施形態にて利用されるコントローラと情報処理装置の外観を示す説明図である。
【図3】仮想空間と現実世界との対応関係を示す説明図である。
【図4】マジックハンドの柄とオブジェクトとの位置関係と、力の方向を示す説明図である。
【図5】画面にカーソルとマジックハンドとオブジェクトが表示される様子を示す説明図である。
【図6】マジックハンドの柄の位置と、視点の移動の方向との関係を説明する説明図である。
【図7】視線の方向の向きを右に移動させる様子を仮想空間の上側から見たものを順に示す説明図である。
【図8】オブジェクトとマジックハンドと、障害物との関係を示す説明図である。
【図9】マジックハンドの牽引ビームに模様を与えた様子を示す説明図である。
【図10】本実施形態に係るゲーム装置の概要構成を示す模式図である。
【図11】当該ゲーム装置にて実行される処理の制御の流れを示すフローチャートである。
【図12】当該ゲーム装置にて実行されるZバッファ関連の処理の制御の流れを詳細に示すフローチャートである。
【符号の説明】
【0229】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
201 把持モジュール
202 CCDカメラ
203 十字形キー
204 Aボタン
205 Bボタン
206 各種ボタン
207 インジケータ
208 電源ボタン
251 発光モジュール
252 発光ダイオード
291 テレビジョン装置
301 仮想空間
302 マジックハンド
303 オブジェクト
304 柄
305 視点
306 視線
307 投影面
308 カーソル
309 障害物
311 柄の姿勢の方向
313 基準位置
314 基準位置からのずれを表すベクトル
321 柄の姿勢の方向ベクトル
322 柄からオブジェクトへの方向ベクトル
323 上下左右のずれを表すベクトル
411 牽引力(反発力)
412 上下左右の力
501 画面
511 上縁部
512 右縁部
513 左縁部
514 下縁部
515 中央部
901 ゲーム装置
902 記憶部
903 測定部
904 変化部
905 移動部
906 更新部
907 画像生成部
908 表示部
909 入力受付部

【特許請求の範囲】
【請求項1】
仮想空間に配置される複数のオブジェクトを記憶する記憶部、
当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成する画像生成部
を備える画像生成装置であって、
当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれ、
前記画像生成部は、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する
ことを特徴とする画像生成装置。
【請求項2】
請求項1に記載の画像生成装置であって、
当該射出オブジェクトは、当該射出点と当該目標点とを結ぶ線分状もしくは曲線状の形状をなす
ことを特徴とする画像生成装置。
【請求項3】
請求項1に記載の画像生成装置であって、
当該射出オブジェクトは、当該射出点から当該目標点へ移動する
ことを特徴とする画像生成装置。
【請求項4】
請求項1から3のいずれか1項に記載の画像生成装置であって、
前記画像生成部は、当該視点との距離により当該複数のオブジェクトをソートして、当該複数のオブジェクトのそれぞれを、当該視点からの距離が遠い順に描画して当該画像を生成する
ことを特徴とする画像生成装置。
【請求項5】
請求項1から3のいずれか1項に記載の画像生成装置であって、
前記画像生成部は、当該視点との距離により当該複数のオブジェクトのうち当該射出オブジェクト以外のオブジェクトをソートして、当該ソートされた複数のオブジェクトのそれぞれを、当該視点からの距離が遠い順に描画し、その後に、当該射出オブジェクトを描画して、当該画像を生成する
ことを特徴とする画像生成装置。
【請求項6】
請求項1から5のいずれか1項に記載の画像生成装置であって、
指示入力を受け付ける入力受付部、
当該指示入力が受け付けられたとき、当該複数のオブジェクトのうち、当該仮想空間において当該視点から伸びる所定の半直線が初めて交叉するオブジェクトの位置を、当該目標位置として設定する目標設定部
をさらに備えることを特徴とする画像生成装置。
【請求項7】
記憶部、画像生成部を有する画像生成装置にて実行される画像生成方法であって、前記記憶部には、仮想空間に配置される複数のオブジェクトが記憶され、
前記画像生成部が、当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成する画像生成工程を備え、
当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれ、
前記画像生成工程では、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する
ことを特徴とする画像生成方法。
【請求項8】
コンピュータを、
仮想空間に配置される複数のオブジェクトを記憶する記憶部、
当該複数のオブジェクトを当該仮想空間内の視点から見た画像を生成する画像生成部
として機能させるプログラムであって、
当該複数のオブジェクトには、当該視点とは異なる位置の射出点から、当該視点および当該射出点とは異なる位置の目標点へ、と向かう射出オブジェクトが含まれ、
前記画像生成部は、当該仮想空間内における当該射出オブジェクトと当該視点との距離にかかわらず、当該射出オブジェクトは他のいずれのオブジェクトよりも当該視点に近いものとみなして、当該画像を生成する
ように機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2007−265155(P2007−265155A)
【公開日】平成19年10月11日(2007.10.11)
【国際特許分類】
【出願番号】特願2006−91009(P2006−91009)
【出願日】平成18年3月29日(2006.3.29)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】