説明

プログラム、情報記憶媒体、及び、画像生成装置

【課題】仮想3次元空間のオブジェクトとの位置関係が把握しやすく、視認性及び操作性のよいマークを表示すること。
【解決手段】本画像生成システムは、入力情報に基づき捕捉点が配置される捕捉方向を特定する捕捉方向特定手段と、前記捕捉方向に基づき捕捉対象を特定する捕捉対象特定手段と、捕捉対象特定結果に基づき捕捉点の奥行き値を設定し、捕捉点にマーカを配置するマーカ配置制御手段と、画像生成手段と、を含み、前記捕捉対象特定手段は、捕捉方向に存在する捕捉対象の有無を判定し、捕捉対象が存在する場合には捕捉対象を特定し、前記マーカ配置制御手段は、捕捉対象が存在しない場合の捕捉点の奥行き値として、捕捉方向において仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値を設定するよう構成され、捕捉対象が存在する状態から存在しない状態に変化した場合には、捕捉点の奥行き値を補正する奥行き値補正処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及び、画像生成装置に関する。
【背景技術】
【0002】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成装置(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
例えば、プレーヤが入力部を用いて、オブジェクト空間(3次元空間)において、弾を発射させて敵キャラクタを射撃するシューティングゲームの画像を生成する画像生成装置が存在する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−259686
【発明の概要】
【発明が解決しようとする課題】
【0005】
このようなシューティングゲームにおいては、標的オブジェクトに狙いを定めるための照準が必要になる。従来のシューティングゲームにおいては、照準は、得点や順位などを表示するための2次元レイヤー上に配置されている場合が多く、透視変換によりスクリーン(投影面)に投影された画像と照準等が配置された2次元レイヤーの画像とを重ね合わせた画像がプレーヤに対して表示されていた。
【0006】
しかしながら、このように2次元レイヤー上に配置された照準では、ショットのヒット位置を、プレーヤが正確に把握できないことがある。特に、視点とヒット位置との距離が離れている場合に、照準位置とヒット位置との誤差が大きくなってしまう。また2次元レイヤー上に配置された照準では、シューティングデバイスの操作と照準の移動との間の連動感を、今一つ高めることができない。
【0007】
また例えば立体視画像が表示されるシューティングゲームにおいては、2次元レイヤー上に配置された照準では、ショットのヒット位置を把握することができないばかりか、2次元的に表示された照準によって立体視画像の迫力が興ざめしてしまうことにもなりかねない。
【0008】
本願の発明者は、正確なシューティングを可能とするために、仮想3次元空間内に照準を配置し、プレーヤの操作に応じて照準マーカを移動させるシューティングゲームを開発中である。かかるシューティングゲームでは照準マーカの位置に標的オブジェクトや背景オブジェクトがあれば、そのオブジェクトの奥行きと同じ位置か若干手前に照準マーカを表示してプレーヤの視認性をよくしているが、標的となるオブジェクトが表示画面上に大量に出てくるような戦闘シーンにおいて、1つの標的を倒すと、標的となっていたオブジェクトが消滅してその空間だけがぽっかりと空き、照準マーカがゲーム空間後方まで一気に移動してしまい、プレーヤの照準位置把握が難しくなるという問題点があった。
【0009】
本発明は、上記課題に鑑みたものであり、仮想3次元空間のオブジェクトとの位置関係が把握しやすく、視認性及び操作性のよいマークを表示することが可能なプログラム、情報記憶媒体、及び画像生成装置を提供することにある。
【課題を解決するための手段】
【0010】
(1)本発明は、
仮想3次元空間の画像を生成するプログラムであって、
仮想3次元空間にオブジェクトを配置する仮想3次元空間設定手段と、
入力情報に基づき仮想3次元空間内において捕捉点が配置される捕捉方向を特定する捕捉方向特定手段と、
前記捕捉方向に基づき仮想3次元空間の捕捉対象を特定する捕捉対象特定手段と、
捕捉対象特定結果に基づき捕捉点の奥行き値を設定し、捕捉点にマーカを配置するマーカ配置制御手段と、
前記マーカを含むオブジェクトが配置された前記仮想3次元空間を仮想カメラから見た画を生成する画像生成手段と、してコンピュータを機能させ、
前記捕捉対象特定手段は、
仮想3次元空間において、前記捕捉方向に存在する捕捉対象の有無を判定し、捕捉対象が存在する場合には捕捉対象を特定し、
前記マーカ配置制御手段は、
捕捉対象が存在する場合には、捕捉対象に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定し、
捕捉対象が存在しない場合の捕捉点の奥行き値として、捕捉方向において仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値を設定するよう構成され、
捕捉対象が存在する状態から存在しない状態に変化した場合には、捕捉点の奥行き値を補正する奥行き値補正処理を行うことを特徴とするコンピュータを機能させることを特徴とするプログラムに関する。
【0011】
本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含む画像生成装置に関する。
【0012】
捕捉点とは仮想3次元空間内でプレーヤがねらっている点であり、例えばシューティングゲーム等ではシューティングデバイスがねらっている点でもよいし、照準位置でもよい。
【0013】
捕捉方向とは仮想3次元空間内でプレーヤがねらっている方向であり、仮想3次元空間内に配置された直線(捕捉ライン)で表すことができる。例えばシューティングゲーム等ではシューティングデバイスがねらっている方向でもよいし、照準位置でもよい。
【0014】
捕捉対象特定結果とは捕捉対象の有無や捕捉対象がある場合には捕捉対象の特定を含む。
【0015】
本プログラムは、シューティングゲームの画像を生成するプログラムでもよい。生成される画像は、平面視画像(3次元空間を平面に投影した画像)でもよいし、立体視画像でもよい。
【0016】
入力情報は、入力デバイス(例えばシューティングデバイスやポインティング)や操作部が検出する操作信号でもよい。また入力情報は、入力デバイスの傾き情報や入力デバイスの指示位置を判定するためのカメラの撮影情報等のように、スクリーン上に表示された画像の指示位置が取得できる情報でもよい。
【0017】
1人称視点の場合の捕捉方向は、プレーヤが何らかの形で指示している指示点(例えばスクリーン上に表示された画像の指示位置に対応する仮想3次元空間内の点)に対応する仮想3次元空間内の点と仮想カメラを結ぶ方向(直線)でもよい。
【0018】
また3人称視点の場合の捕捉方向は、プレーヤが何らかの形で指示している指示点(例えばスクリーン上に表示された画像の指示位置に対応する仮想3次元空間内の点)に対応する仮想3次元空間内の点と仮想3次元空間内のプレーヤキャラクタやプレーヤキャラクタが保持するシューティングデバイスを結ぶ方向(直線)でもよい。
【0019】
仮想3次元空間内に配置されるオブジェクトは、移動体オブジェクトでもよいし、静止物オブジェクトでもよい。シューティング対象となる標的オブジェクト(シューティングによるヒット判定が行われるオブジェクト)でもよい。
【0020】
前記捕捉対象特定手段は、捕捉方向にオブジェクトが複数存在する場合には、仮想カメラに近い奥行き値を有するオブジェクトを優先して捕捉対象としてもよい。
【0021】
前記マーカ配置制御手段は、捕捉点の奥行き値を捕捉対象であるオブジェクトと同じ又は少し手前の位置に設定してもよい。
【0022】
捕捉対象特定手段は、捕捉方向に基づき設定したレイを飛ばして仮想3次元空間内のオブジェクトとのと交差判定(ヒットチェック)を行うことにより捕捉対象となるオブジェクトを検出してもよいし、判定用の画像を生成して、捕捉位置(入力情報に基づき判定されるスクリーン上に表示された画像の指示位置)の画素情報に基づき(レンダリングヒット)捕捉対象となるオブジェクトを検出してもよい。
【0023】
捕捉点の仮想3次元空間内におけるZ値は捕捉対象に対応づけられた奥行き値に基づき決定され、X、Y値は、捕捉方向を示すラインとZ=決定された奥行き値で定義される平面の交点のX、Y座標となる。
【0024】
ここにおいて捕捉対象に対応づけられた奥行き値とは、捕捉対象のオブジェクト自体の奥行き値でもよいし、捕捉対象となるオブジェクトを含むオブジェクト群に対応づけられた奥行き値でもよい。
【0025】
捕捉対象となるオブジェクトが存在しない場合には、捕捉点の奥行き値として、例えば捕捉方向において仮想カメラから最も離れた描画物、すなわち背景等の奥行き値や、予め設定されている所定の奥行き値を設定してもよい。
【0026】
捕捉点に配置されるマーカは例えばシューティングの照準位置を示す照準オブオブジェクトでもよい。照準オブジェクトは、例えば板ポリゴン等で構成し、視線方向に応じて向きが設定されるようにしてもよい。
【0027】
捕捉対象が存在する状態から存在しない状態に変化した場合とは、例えば捕捉方向の変化又はオブジェクトの移動や消失により捕捉対象が存在しない状態に変化した場合等である。
【0028】
奥行き値補正処理として、奥行き値を所定期間変化させない処理をおこなってもよいし、捕捉点の奥行き値が前記仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値に瞬時変化しないように補正する処理(例えば仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値に達するまでの時間を遅延させる制御や、奥行き方向への最大移動距離を制限する処理や捕捉点の奥行き方向の位置変化速度を遅くする処理や、捕捉対象が存在している場合の捕捉点の奥行き値の制御とは異なる制御等のいずれかを行うようにしてもよい。
【0029】
捕捉対象が存在している場合の捕捉点の奥行き値の制御は、捕捉対象のオブジェクトの奥行き値に応じて瞬時または所定のタイムラグを持って変化させる制御をおこなってもよい。この様な場合の捕捉点の変化速度(マーカの移動速度でもよい)は移動前後の捕捉点の距離によって決まることになる。捕捉点の奥行き値の補正を行う場合には、移動前後の捕捉点の距離によって決まる速度よりも遅い速度で捕捉点の奥行き値が変化するように制御してもよい。
【0030】
本発明によればマーカが仮想3次元空間内に配置されるため、仮想3次元空間内の指示位置(ヒット位置)を、プレーヤが正確に把握できる。しかも単にマーカを仮想3次元空間におく場合には、捕捉対象のロスト(捕捉対象が存在する状態から存在しない状態に変化すること)によるマーカの奥行き方向の移動が煩雑になり、見にくい画像が生成される可能性があるが、本発明によれば、捕捉対象が存在する状態から存在しない状態に変化した場合には、捕捉点の奥行き位置を補正することによりマーカが急激に奥行き方向に移動するのを防止することができるため、視認性及び操作性のよいマークを表示することが可能となる。
【0031】
(2)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記マーカ配置制御手段は、
前記奥行き値補正処理として、捕捉点の奥行き値を所定期間変更しない処理、捕捉点の奥行き値の変化量を制限する処理、捕捉点の奥行き値が前記仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値に瞬時変化しないように補正する処理の少なくとも1つを行ってもよい。
【0032】
捕捉点の奥行き値が前記仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値に瞬時変化しないように補正する処理とは、例えば仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値に達するまでの時間を遅延させる処理でもよいし、奥行き方向への奥行き値の最大移動距離を短くする処置、奥行き値の変化速度を遅くする処理でもよい。
【0033】
また例えば捕捉点の奥行き値の変化量を制限する処理として、捕捉対象が存在している状態における捕捉点の奥行き値の制御を通常制御として、捕捉点の奥行き値の変化度合いを通常制御時に比べて小さくする制御や捕捉点の奥行き方向への変化速度を通常制御時に比べて遅くする制御を行ってもよい。
【0034】
(3)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記マーカ配置制御手段は、
捕捉対象が存在する状態から存在しない状態に変化した場合に、捕捉点に配置されるマーカの移動速度が、時間がたつにつれて大きくなるように捕捉点の奥行き値を設定する制御を行ってもよい。
【0035】
(4)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記マーカ配置制御手段は、
仮想3次元空間のオブジェクトの種類や大きさや配置状態、又は所定のパラメータ、又は所与の条件に基づき、奥行き値の設定条件を変化させてもよい。
【0036】
仮想3次元空間のオブジェクトの配置状態とはオブジェクトの数や密度や分布の状態等も含む。所定のパラメータとは敵オブジェクトの数、難易度、命中率、体力、ステージ等に関するパラメータでもよい。また奥行き値の設定条件とは、例えば、奥行き値を補正する時間(フレーム数)(例えば奥行き値を変化させない時間等)や、奥行きを変える際の変化量の設定値を含む。
【0037】
奥行き値補正処理を行う場合には、捕捉対象としているオブジェクトや捕捉方向に存在するオブジェクトが大きいほうが、マーカの奥行き方向への移動が速くなるように、捕捉点の奥行き値を補正してもよい。
【0038】
また現在捕捉対象となっているオブジェクトの所定範囲内に位置するオブジェクトの数が多いほど、マーカの奥行き方向への移動が遅くなるように、捕捉点の奥行き値を補正してもよい。
【0039】
また例えば仮想3次元空間内に存在する敵オブジェクトの数が多くなるほどマーカの移動速度がより遅くなるようにしてもよいし、マーカの奥行き値の固定期間が長くなるようにしてもよい。またシューティングゲームにおいて命中率が低くなるほど、マーカの移動速度がより遅くなるようにしてもよいし、マーカの奥行き値の固定期間がながくなるようにしてもよい。
【0040】
また例えば、ゲームのテンポ、ユーザの習熟度、難易度、ステージ、ゲーム開始からのゲーム継続時間等により、マーカの奥行き値の固定期間や移動速度を変化させてもよい。
【0041】
(5)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記捕捉対象特定手段は、
前記捕捉方向の変化履歴に基づき捕捉方向の変化予測を行い、当該変化予測を加味して捕捉対象を特定してもよい。
【0042】
(6)本発明は、
仮想3次元空間の画像を生成するプログラムであって、
仮想3次元空間にオブジェクトを配置する仮想3次元空間設定手段と、
入力情報に基づき仮想3次元空間内において捕捉点が配置される捕捉方向を特定する捕捉方向特定手段と、
前記捕捉方向に基づき仮想3次元空間の捕捉対象を特定する捕捉対象特定手段と、
捕捉対象特定結果(捕捉対象の有無特定の有無、特定された場合には特定された捕捉対象の位置等)に基づき捕捉点の奥行き値を設定し、捕捉点にマーカを配置するマーカ配置制御手段と、
前記マーカを含むオブジェクトが配置された前記仮想3次元空間を仮想カメラから見た画を生成する画像生成手段と、してコンピュータを機能させ、
前記捕捉対象特定手段は、
前記捕捉方向の変化履歴に基づき捕捉方向の変化予測を行い、当該変化予測を加味して捕捉対象を特定し、
前記マーカ配置制御手段は、
捕捉対象が存在する場合には、捕捉対象に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定し、前記捕捉方向の決定された奥行き値に対応する位置にマーカを配置することを特徴とするプログラムに関する。
【0043】
本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含む画像生成装置に関する。
【0044】
(7)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記捕捉対象特定手段は、
捕捉対象検出処理として、前記捕捉方向に存在するオブジェクトを検出し、
前記マーカ配置制御手段は、
捕捉対象となるオブジェクトが検出された場合には、捕捉対象のオブジェクトに対応づけられた奥行き値に基づき捕捉点の奥行き値を決定してもよい。
【0045】
(8)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記捕捉対象特定手段は、
複数のオブジェクトの集合であるオブジェクト群に対してグループ設定を行い、捕捉対象検出処理として、前記捕捉方向に存在するオブジェクト群を検出し、
前記マーカ配置制御手段は、
捕捉対象となるオブジェクト群が検出された場合には、捕捉対象のオブジェクト群に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定してもよい。
【0046】
(9)本発明は、
仮想3次元空間の画像を生成するプログラムであって、
仮想3次元空間にオブジェクトを配置する仮想3次元空間設定手段と、
入力情報に基づき仮想3次元空間内において捕捉点が配置される捕捉方向を特定する捕捉方向特定手段と、
前記捕捉方向に基づき仮想3次元空間の捕捉対象を特定する捕捉対象特定手段と、
捕捉対象特定結果に基づき捕捉点の奥行き値を設定し、捕捉点にマーカを配置するマーカ配置制御手段と、
前記マーカを含むオブジェクトが配置された前記仮想3次元空間を仮想カメラから見た画を生成する画像生成手段と、してコンピュータを機能させ、
前記捕捉対象特定手段は、
複数のオブジェクトの集合であるオブジェクト群に対してグループ設定を行い、捕捉対象検出処理として、前記捕捉方向に存在するオブジェクト群を検出し、
前記マーカ配置制御手段は、
捕捉対象となるオブジェクト群が検出された場合には、捕捉対象のオブジェクト群に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定することを特徴とするプログラムに関する。
【0047】
本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含む画像生成装置に関する。
【0048】
(10)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記捕捉対象特定手段は、
仮想3次元空間のオブジェクト又はオブジェクト群に対して第1のヒットチェック平面又は第1のヒットチェックボリュームを設定し、第1のヒットチェック平面又は第1のヒットチェックボリュームと、捕捉方向に基づきヒットチェックを行い、ヒットチェック結果に基づき捕捉対象となるオブジェクトを判断してもよい。
【0049】
(11)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記捕捉対象特定手段は、
前記捕捉方向を、コントローラの一部に位置設定された仮想カメラと捕捉点を結ぶ方向として、捕捉方向に存在する捕捉対象を検出してもよい。
【0050】
(12)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記仮想3次元空間の画像は、立体視画像でもよい。
【0051】
(13)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記画像生成手段は、
前記マーカを含む前記仮想3次元空間を第1の仮想カメラ(右目用仮想カメラ)から見た第1の画像(右目画像)を生成する処理と、
前記マーカを含む前記仮想3次元空間を第2の仮想カメラ(左目用仮想カメラ)から見た第2の画像(左目画像)を生成する処理と、を行い、
生成された第1の画像(右目用画像)と第2の画像(左目画像)に基づき立体視画像を生成してもよい。
【0052】
(14)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記捕捉対象特定手段は、
前記立体視画像を観察するのに適した位置に設定された、仮想カメラと捕捉点を結ぶ方向を捕捉方向(捕捉ライン)として、捕捉方向に存在する捕捉対象を検出してもよい。
【0053】
(15)また、本発明のプログラム、情報記憶媒体、画像生成装置において、
前記注目対象特定手段は、
前記注目方向(注目ライン)を、第1の仮想カメラ(左目用カメラ)と第2の仮想カメラ(右目用カメラ)の中間点に配置された第3の仮想カメラ(センターカメラ)と注目点を結ぶ方向として、注目方向(注目ライン)に存在する注目対象を検出してもよい。
【図面の簡単な説明】
【0054】
【図1】本実施形態の画像生成装置の機能ブロック図の例。
【図2】本実施形態の画像生成装置の外観図。
【図3】本実施の形態のゲーム画像の一例を示す図。
【図4】仮想3次元空間内の様子をY軸方向から見た図。
【図5】本実施の形態のゲーム画像の一例を示す図。
【図6】仮想3次元空間内の様子をY軸方向から見た図。
【図7】本実施の形態のゲーム画像の一例を示す図。
【図8】仮想3次元空間内の様子をY軸方向から見た図。
【図9】図9(A)〜(C)は、本実施の形態の捕捉方向の考え方について説明するための図。
【図10】捕捉対象が同じである場合の照準(マーカ)の奥行き値の制御である通常制御について説明するための図。
【図11】捕捉対象をロストした場合の通常制御を示す図。
【図12】捕捉方向が変化して捕捉対象をロストした場合に奥行き値を所定期間変化させない制御例を示す図。
【図13】捕捉対象が消滅して捕捉対象をロストした場合に奥行き値を所定期間変化させない制御例を示す図。
【図14】捕捉対象をロストした場合の他の制御例を示す図。
【図15】捕捉対象をロストした場合の速度変化の制御例を示す図。
【図16】捕捉対象をロストした場合の速度変化の他の制御例を示す図。
【図17】図17(A)(B)はゲーム画像の一例を示す図。
【図18】図18(A)(B)は、オブジェクト群単位で行う捕捉判定処理について説明するための図。
【図19】図19(A)(B)は捕捉点の変化予測について説明する図。
【図20】図20(A)(B)は、図19(A)(B)のケースを仮想3次元空間内で立体的に見た様子を示す図。
【図21】捕捉対象の特定処理について説明するための図
【図22】動的にグループ設定を行う例について説明するための図。
【図23】標的オブジェクトE21、E22、E23、E24をスクリーン上に投影した様子を示す図。
【図24】本実施の形態の照準位置の補正処理の流れを示すフローチャート図。
【図25】捕捉対象をロストした場合の他の制御例を示す図。
【図26】図26(A)は、表示出力用画像の一例。図26(B)は、演算処理用画像の一例。
【図27】図27(A)は、表示出力用画像で用いられるオブジェクトの一例。図27(B)は、演算処理用画像で用いられるオブジェクトの一例。
【図28】図28(A)(B)は、色情報又は半透明情報によって、複数のオブジェクトそれぞれを識別することを説明するための図。
【図29】図29(A)は、表示出力用画像を格納する画像バッファ、Zバッファの説明図。図29(B)は、演算処理用画像を格納する画像バッファ、Zバッファの説明図。
【図30】図30(A)(B)は、指示位置を取得する手法の説明図。
【図31】図31(A)〜(C)は、ヒットエリア、及び、画素を選択する手法の説明図。
【発明を実施するための形態】
【0055】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0056】
1.構成
図1に本実施形態の画像生成装置(コンピュータ、端末、ゲーム装置)の機能ブロック図の例を示す。なお本実施形態の画像生成装置は図1の構成要素(各部)の一部を省略した構成としてもよい。
【0057】
入力部160は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部160は、所定振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【0058】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されている画像生成装置、携帯型画像生成装置、携帯電話なども含まれる。
【0059】
検出部162は、入力部160からの入力情報を検出する処理を行う。例えば、検出部162は、入力部160の引き金(トリガ)が引かれることによって発生する入力信号を、入力情報(攻撃入力情報)として検出してもよい。また例えば、検出部162は、入力部160から照準(ガンサイト)の位置を指示する入力情報(指示入力情報)を検出してもよい。
【0060】
例えば、入力部160が、液晶ディスプレイと、プレーヤの接触位置を検出するためのタッチパネルとが積層されたタッチパネル型ディスプレイで有る場合には、タッチペンなどの指示入力機器や指先の接触位置情報を入力情報として検出してもよい。
【0061】
また、入力部160が撮像部を備える入力機器である場合には、撮像画像におおける指示位置情報を入力情報として検出してもよい。より具体的に説明すると、撮像部は、赤外線フィルタ、レンズ、撮像素子(イメージセンサ)、画像処理回路を含み、赤外線フィルタは、入力機器の前方に配置され、表示部190に関連付けられて配置されている光源(2つの光源)から入射する光から赤外線のみを通過させる。また、レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。また、撮像素子は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。そして、撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像部を備える入力機器は、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(指示位置情報)を入力情報として検出してもよい。
【0062】
記憶部200は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM、VRAMなどにより実現できる。
【0063】
記憶部200は、画像を記憶する画像バッファ、画像の各ピクセルの奥行き値(深度値、Z値)を記憶するZバッファを備えてもよい。画像バッファ221は、表示出力用画像の各画素(ピクセル)の(R,G,B,A)(RGBカラー値、及びα値(A値))が格納される。つまり、表示出力用画像の各画素の色情報(R、G、B)及び半透明情報(α値(A値ともいう))が画像バッファ221に格納される。Zバッファ222は、画像バッファ221に描画される各画素の奥行き値が格納される。
【0064】
また、画像バッファ231(描画面A)は、演算処理用画像の各画素の(R,G,B,A)が格納されてもよい。画像バッファ231に格納される演算処理用画像は、オブジェクトのID(ヒットID)、オブジェクトの部位、オブジェクトのヒットタイプなどの情報を示す(R,G,B,A)が格納される。また、画像バッファ232(描画面B)も、演算処理用画像の各画素の(R,G,B,A)が格納されてもよい。画像バッファ232に格納される演算処理用画像は、法線ベクトルや、属性情報(オブジェクトの素材を情報など)を示す(R,G,B,A)が格納される。また、Zバッファ233(描画面C)は、画像バッファ231、232に描画される各画素の奥行き値が格納される。なお、画像バッファ231、232、Zバッファ233は、それぞれ縮小用のバッファとして、画像バッファ221、Zバッファ222の1/nの大きさとしてもよい。
【0065】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0066】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0067】
通信部196は外部(例えば他の画像生成装置)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0068】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部200に記憶してもよい。このようにプログラムやデータを受信して画像生成装置を機能させる場合も本発明の範囲内に含む。
【0069】
処理部100(プロセッサ)は、入力部160からの入力情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0070】
この処理部100は記憶部200内の主記憶部210をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、GPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0071】
処理部100は、オブジェクト空間設定部110、取得部111、捕捉方向特定部112,捕捉対象特定部113、マーカ配置制御部114、移動・動作処理部115、ゲーム演算部116、画像生成部(描画部)120、音処理部130を含む。なおこれらの一部を省略する構成としてもよい。
【0072】
オブジェクト空間設定部110は、キャラクタ(敵オブジェクト)の他に、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、オブジェクト空間に配置設定する処理を行う。
【0073】
ここでオブジェクト空間とは、仮想的な3次元空間である。3次元空間とは、例えば3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0074】
例えば、オブジェクト空間設定部110は、オブジェクト空間を3次元空間とした場合には、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0075】
取得部111は、入力部160からの入力情報に基づいて、画像(演算処理用画像)の指示位置(カーソル位置)を取得する処理を行う。例えば、取得部111は、入力部160からの入力情報に基づいて、表示出力用画像の指示位置を取得する処理を行ってもよい。例えば、取得部111は、入力部160で検出された指示位置を、画像(演算処理用画像)の指示位置として取得する処理を行う。
【0076】
捕捉方向特定部112は、入力情報に基づき仮想3次元空間内において捕捉点が配置される捕捉方向を特定し、捕捉対象特定部113は、捕捉方向に基づき仮想3次元空間の捕捉対象を特定し、マーカ配置制御部114は、捕捉対象特定結果に基づき捕捉点の奥行き値を設定し、捕捉点にマーカを配置する。
【0077】
ここにおいて捕捉対象特定部113は、仮想3次元空間において、前記捕捉方向に存在する捕捉対象の有無を判定し、捕捉対象が存在する場合には捕捉対象を特定し、マーカ配置制御部114は、捕捉対象が存在する場合には、捕捉対象に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定し、捕捉対象が存在しない場合の捕捉点の奥行き値として、捕捉方向において仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値を設定するよう構成され、捕捉対象が存在する状態から存在しない状態に変化した場合には、捕捉点の奥行き値を補正する奥行き値補正処理を行う。
【0078】
マーカ配置制御手部114は、前記奥行き値補正処理として、捕捉点の奥行き値を所定期間変更しない処理、捕捉点の奥行き値の変化量を制限する処理、捕捉点の奥行き値が前記仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値に瞬時変化しないように補正する処理の少なくとも1つを行ってもよい。
【0079】
マーカ配置制御部114は、捕捉対象が存在する状態から存在しない状態に変化した場合に、捕捉点に配置されるマーカの移動速度が、時間がたつにつれて大きくなるように捕捉点の奥行き値を設定してもよい。
【0080】
マーカ配置制御部114は、仮想3次元空間のオブジェクトの種類や大きさや配置状態、又は所定のパラメータ、又は所与の条件に基づき、奥行き値の設定条件を変化させてもよい。
【0081】
捕捉対象特定部113は、前記捕捉方向の変化履歴に基づき捕捉方向の変化予測を行い、当該変化予測を加味して捕捉対象を特定してもよい。
【0082】
捕捉対象特定部113は、捕捉対象検出処理として、前記捕捉方向に存在するオブジェクを検出し、マーカ配置制御部114は、捕捉対象となるオブジェクトが検出された場合には、捕捉対象のオブジェクトに対応づけられた奥行き値に基づき捕捉点の奥行き値を決定してもよい。
【0083】
捕捉対象特定部113は、複数のオブジェクトの集合であるオブジェクト群に対してグループ設定を行い、捕捉対象検出処理として、前記捕捉方向に存在するオブジェク群を検出し、マーカ配置制御部114は、捕捉対象となるオブジェクト群が検出された場合には、捕捉対象のオブジェクト群に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定してもよい。
【0084】
捕捉対象特定手部113は、仮想3次元空間のオブジェクト又はオブジェクト群に対して第1のヒットチェック平面又は第1のヒットチェックボリュームを設定し、第1のヒットチェック平面又は第1のヒットチェックボリュームと、捕捉方向に基づきヒットチェックを行い、ヒットチェック結果に基づき捕捉対象となるオブジェクトを判断してもよい。
【0085】
ゲーム演算部116は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【0086】
また、ゲーム演算部116は、プレーヤキャラクタの所与のパラメータ(体力値)が所定値(0)に達したか否かを判断する処理を行い、プレーヤキャラクタの所与のパラメータ(体力値)が所定値(0)に達した場合に、ゲーム終了と判定する処理を行う。
【0087】
画像生成部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。画像生成部120が生成する画像は、いわゆる平面視画像であってもよいし、立体視画像であってもよい。
【0088】
いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0089】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0090】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、ピクセルデータ、ボクセルデータなどの画素データ(色(RGB)、α値、Z値、輝度等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を生成することができる。
【0091】
なお、画像生成部120は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、3次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、画像生成部120は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づ
いて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0092】
例えば、プレーヤキャラクタの視点(一人称視点)に基づいて画像を生成する処理(いわゆる、ファーストパーソン・シューティングゲームである)を行ってもよいし、第三者の視点(三人称視点)に基づいて画像を生成する処理(いわゆる、サードパーソン・シューティングゲームである)を行ってもよい。また、本実施形態では、仮想カメラの移動、向き、画角はプログラムで制御してもよいし、入力部160の入力情報に基づいて仮想カメラの移動、向き、画角を制御してもよい。
【0093】
例えば仮想カメラによりオブジェクト(例えば、プレーヤキャラクタ)を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動・動作処理部114で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定し、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0094】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現してもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0095】
そして画像生成部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0096】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、記憶部200に保存される。
【0097】
テクスチャマッピングは、記憶部200に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部200からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0098】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0099】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0100】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0101】
なお、本実施形態の画像生成部120は、表示出力用画像と、演算処理用画像を生成する処理を行ってもよい。そして、本実施形態の画像生成部120は、演算処理用画像を生成する場合には、上記ピクセル処理(ピクセルシェーダによるパーピクセル処理)を行わないように制御しているが、演算処理の必要性に応じて、上記ピクセル処理を行うようにしてもよい。また、演算処理用のZ値を決定する際には、複数のオブジェクト間の予め決められた奥行き関係に基づいて、Z値を変更するようにしてもよい。
【0102】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0103】
なお、本実施形態の画像生成装置は、1人のプレーヤのみがプレイできるシングルプレーヤモード用の装置にしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードを備える装置にしてもよい。
【0104】
例えば、図2に示すように、マルチプレーヤモードの場合には、プレーヤそれぞれの入力部160−1、160−2を用意し、各入力部160−1、160−2が指示する照準位置に基づいて敵キャラクタ等のヒット処理を行う。また、本実施形態では、マルチプレーヤモードの場合には、複数のプレーヤに提供するデータ、表示出力用画像、演算処理用画像、ゲーム音を、1つの画像生成装置を用いて生成している。なお、画像生成装置が他の画像生成装置とネットワークを介して入力情報などのデータを送受信し、受信したデータと入力部160からの入力情報とに基づいて、画像生成処理を行うようにしてもよい。
【0105】
2.マーカの配置手法
(1)本実施の形態の入力部の一例
本実施形態の画像生成装置は、オブジェクト空間内で弾(特定オブジェクトの一例)を敵キャラクタにヒットさせて攻撃を行うシューティングゲームに関する処理を行うものである。
【0106】
図2は、本実施形態における画像生成装置で実現されたゲーム装置の外観図を示す。
【0107】
図2は、本実施形態の画像制御装置を適用したゲームシステム10の外観構成を示す斜視図である。図2に示すように、本実施形態のゲームシステム10は、画像を表示させるディスプレイ12と、ディスプレイ12の表示画面13の手前側に設けられた台座14と、台座14の上面に設けられ、機関銃の形状を模した第1コントローラ16(第1操作部、第1指示体の一例)および第2コントローラ18(第2操作部、第2指示体の一例)とを有している。ゲームシステム10では、一人のプレーヤがゲームをプレイしてもよいし、2人以上のプレーヤ(操作者の一例)が同時にゲームをプレイしてもよい。
【0108】
第1コントローラ16は、台座14に対して配置位置が固定されつつ、鉛直に設けられた第1軸20回りに回転可能に、かつ水平に設けられた第2軸22回りに回転可能に設けられている。そして第1コントローラ16の後端には、プレーヤが左手で把持する左グリップ24と、右手で把持する右グリップ26とが設けられており、プレーヤはこの左グリップ24と右グリップ26とを把持して、第1コントローラ16を第1軸20回りおよび第2軸22回りに回転させる操作(位置を指定する操作の一例)を行うことにより、第1コントローラ16の銃口に相当する先端の向きを任意に変化させる(指示体の指示位置を変化させることの一例)ことができる。ここで第1コントローラ16の可動範囲は、第1コントローラ16の先端が表示画面13の所定の領域を指示(指定の一例)できる範囲となっている。例えば、第1コントローラ16の可動範囲は、第1コントローラ16の先端が表示画面13の全領域を指示できる範囲としてもよいし、表示画面13の一部の領域を指示できる範囲としてもよい。そして第1コントローラ16には、第1コントローラ16の第1軸20回りの回転量を検出する第1可変抵抗28と、第1コントローラ16の第2軸22回りの回転量を検出する第2可変抵抗30とが設けられている。
【0109】
そしてゲームシステム10は、第1コントローラ16の第1可変抵抗28の検出結果と第2可変抵抗30の検出結果とに基づいて、第1コントローラ16の先端が指示する表示画面13上の位置(画像における位置、表示領域における位置の一例)である第1指示位置31(第1指定位置の一例)を2次元座標(仮想空間の一例)の座標値(第1情報の一例)として求める。そしてゲームシステム10は、表示画面13に表示させる画像において、第1指示位置31に対応する仮想3次元空間(ゲーム空間)内の位置に、第1コントローラ16が指示する位置を示す第1マーク32(第1指定位置表示、第1表示の一例)が配置されている画像を表示させる。
【0110】
そしてゲームシステム10は、表示画面13に表示させる画像において、標的を示す標的オブジェクト42(表示物の一例)を移動させながら表示させており、標的オブジェクト42に第1マーク32の中心が重なっている状態で第1コントローラ16の左ボタン36あるいは右ボタン38が押下されると、標的オブジェクト42に第1弾丸オブジェクト40が命中したと判定する。
【0111】
第2コントローラ18は、第1コントローラ16と同様に、左グリップ24、右グリップ26、第1可変抵抗28、第2可変抵抗30、左ボタン36(第2操作子の一例)、右ボタン38(第2操作子の一例)を有している。そして、第2コントローラ18は第1コントローラ16と接触しないように、台座14に対して配置位置が固定されつつ、第1軸20回りおよび第2軸22回りに回転可能に設けられている。そして、第2コントローラ18の可動範囲も、第2コントローラ18の先端が表示画面13の所定の領域を指示できる範囲となっている。
【0112】
そしてゲームシステム10は、第2コントローラ18の第1可変抵抗28の検出結果と第2可変抵抗30の検出結果とに基づいて、第2コントローラ18の先端が指示する表示画面13上の位置である第2指示位置43(第2指定位置の一例)を2次元座標の座標値(第2情報の一例)として求める。そしてゲームシステム10は、表示画面13に表示させる画像において、第2指示位置43に対応する仮想3次元空間(ゲーム空間)内の位置に、第2コントローラ18が指示する位置を示す第2マーク44(第2指定位置表示、第2表示の一例)が配置されている画像を表示させてもよい。
【0113】
そして、第2コントローラ18の左ボタン36あるいは右ボタン38をプレーヤが押下すると、第2銃オブジェクト46の先端から第2マーク44の中心に向けて、第2銃オブジェクト46の弾丸を示す第2弾丸オブジェクト48(第2移動体の一例)を移動させる。
【0114】
そしてゲームシステム10は、標的オブジェクト42に第2マーク44の中心が重なっている状態で第2コントローラ18の左ボタン36あるいは右ボタン38が押下されると、標的オブジェクト42に第2弾丸オブジェクト48が命中したと判定する。
【0115】
このように本実施形態のゲームシステム10では、第1コントローラ16および第2コントローラ18が任意に操作されることにより、第1マーク32および第2マーク44が個別に移動するとともに、第1弾丸オブジェクト40および第2弾丸オブジェクト48が個別に移動する。そして第1弾丸オブジェクト40と標的オブジェクト42とが命中したか否か、および第2弾丸オブジェクト48と標的オブジェクト42とが命中したか否かが個別に判定される。
【0116】
(2)マーカ画像とマーカの配置
本実施の形態のマーカの配置制御について、マーカが、仮想3次元空間内の標的オブジェクトをシューティングするシューティングゲームの照準である場合を例にとり説明する。
【0117】
図3は、本実施の形態のゲーム画像の一例を示す図である。
【0118】
図3のゲーム画像310−1は、仮想3次元空間を仮想カメラから見た一人称視点のゲーム画像である。仮想カメラは仮想3次元空間のプレーヤキャラクタの位置又はその近傍の所定位置に配置されている。なおゲーム画像は、通常の平面視画像でもよいし、立体視画像でもよい。
【0119】
E1〜E7は、仮想3次元空間内に存在する標的オブジェクトであり、ここでは仮想3次元空間内で移動動作するオブジェクトの例を示しているが、静止オブジェクトでもよい。
【0120】
プレーヤはゲーム画像を見ながら図2に示すようなコントローラを操作することで標的オブジェクトにねらいを定めシューティングを行う。330−1はプレーヤがねらいを定めている位置(捕捉点)を示すために表示される照準画像である。捕捉方向に捕捉対象となるオブジェクトが存在する場合には、図3に示すように照準画像330−1は捕捉対象となるオブジェクトの手前に表示される。
【0121】
図4は、図3のゲーム画像が生成された時の仮想3次元空間内の様子をY軸方向から見た図である。本実施の形態では、照準画像330−1を生成するために、仮想3次元空間320の捕捉点CPに照準に対応した照準オブジェクトSを配置している。
【0122】
照準はプレーヤがねらっている方向(捕捉方向)CLを示すものであるから、照準オブジェクトSは仮想3次元空間において前記捕捉方向(捕捉ライン)CLのいずれかの位置に配置される。例えば捕捉方向に標的オブジェクトE1が存在する場合には、この標的オブジェクトが捕捉対象となり、捕捉点CPが捕捉方向(捕捉ライン)CLにおける標的オブジェクトE1の若干手前(同じ位置でもよい)に設定され、照準オブジェクトSは、捕捉点CPに配置される。
【0123】
図5は、本実施の形態のゲーム画像の他の一例であり、図6は、図5のゲーム画像が生成された時の仮想3次元空間内の様子をY軸方向から見た図である。図5、図6は、捕捉方向は図3、図4の場合と同じ方向であるが捕捉方向に捕捉対象となる標的オブジェクトが存在しない。このような場合、照準オブジェクトSを配置する点の奥行き値(ワールド座標系におけるZ座標)は、例えば捕捉方向において仮想カメラから最も離れた描画物、すなわち背景等の位置や、予め設定されている最奥位置が設定される。従って図3、図4の場合に比べて照準オブジェクトは仮想カメラ300から遠くに配置されるため、ゲーム画像310−2に表示される照準画像330−2も小さくなる。
【0124】
図7は、本実施の形態のゲーム画像の他の一例であり、図8は、図7のゲーム画像が生成された時の仮想3次元空間内の様子をY軸方向から見た図である。図8に示すように捕捉方向(捕捉ライン)CL上に捕捉対象となる標的オブジェクトE3、E7が存在する。このような場合、照準オブジェクトSは、捕捉方向においてより手前(奥行き値が仮想カメラ300に近いほう)の標的オブジェクトE3を捕捉対象とする。そして捕捉方向(捕捉ライン)CLにおける標的オブジェクトE3の若干手前(同じ位置でもよい)に捕捉点CPを設定し、捕捉点CPに照準オブジェクトSを配置する。
【0125】
(3)捕捉方向(捕捉ライン)
図9(A)〜(C)は、本実施の形態の捕捉方向の考え方について説明するための図である。図9(A)のPは、コントローラ(シューティングデバイス)による画像(ゲーム装置のスクリーンSに表示されている画像)上の指示位置である。この指示位置Pは、図2で説明したようにコントローラの出力情報(コントローラの傾きや指示位置を特定可能な出力情報)に基づき特定する。そして、仮想3次元空間内に、スクリーンSに対応する仮想的なスクリーンS’を想定する。図9(B)(C)は、仮想3次元空間に仮想的なスクリーンS’が配置されている様子を示した図である。仮想的なスクリーンS’上の点P’は、ゲーム装置のスクリーンS上の指示位置Pに対応する点(例えばスクリーン上のX,Y比率が同じ点)である。
【0126】
本実施の形態では1人称視点の場合、仮想カメラ300と点P’を結ぶ方向(直線)を捕捉方向(捕捉ライン)CLとしている。ここでは捕捉方向(捕捉ライン)CLに標的オブジェクトE11、E12が存在する様子を示している。
【0127】
なおここでいう仮想カメラとは、プレーヤの左右両眼を想定した場合の中央に位置する仮想的なカメラまたは、銃などを模したコントローラの銃口部分に配置された仮想的なカメラを指す。
【0128】
(4)捕捉対象の特定
図21は、捕捉対象の特定処理について説明するための図である。
【0129】
図21に示すように、仮想3次元空間の標的オブジェクトEに対して第1のヒットチェックボリュームHB1を設定し、第1のヒットチェックボリュームHB1と、捕捉方向(捕捉ライン)CLに基づきヒットチェックを行い、ヒットチェック結果に基づき捕捉対象となるオブジェクトを判断してもよい。
【0130】
また前記捕捉方向(捕捉ライン)CLに基づき設定した第2のヒットチェックボリュームHB2と、前記第1のヒットチェックボリュームHB1とのヒットチェック(交差判定)を行い、判定結果に基づき、捕捉対象となるオブジェクトを判定してもよい。
【0131】
また仮想3次元空間の標的オブジェクトEに対して第1のヒットチェック平面を設定し、第1のヒットチェック平面と、捕捉方向に基づきヒットチェックを行い、ヒットチェック結果に基づき捕捉対象となるオブジェクトを判断してもよい。
【0132】
例えばレンダリングヒットという手法を採用して、第1のヒットチェック平面に基づき、ヒット判定用画像を生成し、前記捕捉方向に基づきスクリーン平面上の指示位置を判定し、ヒット判定用画像における当該指示位置の対応位置を含む判定エリアに存在する画素の画素値に基づき捕捉対象となるオブジェクトを判定してもよい。
【0133】
レンダリングヒットとは、複数のオブジェクトそれぞれを識別する画素データに基づいて、当該複数のオブジェクトを含む画像を生成する処理を行い、入力部からの入力情報に基づいて、前記画像の指示位置を取得し、前記指示位置に対応する画素の画素データに基づいて、当該画素が示すオブジェクトを決定する技術である。以下その具体的な手法について説明する。
【0134】
レンダリングヒットでは、表示部190に表示させる表示出力用画像Dを生成すると共に、演算処理用画像E(E1〜E3)を生成し、演算処理用画像Eに基づいてヒット処理を行う。
【0135】
つまり、弾オブジェクト以外のオブジェクトであって、オブジェクト空間に存在する敵オブジェクト、背景オブジェクトなどの複数のオブジェクトを色分けした演算処理用画像Eを生成する。そして、演算処理用画像Eにおいて、指示位置(照準位置)に対応する所定範囲内のピクセルを選択し、選択されたピクセルの色が敵オブジェクトを示す色である場合に、敵オブジェクトにヒットしたと判定する処理を行っている。このようにすれば、3次元のオブジェクト空間内で、弾の軌跡(レイ)と、オブジェクトとのヒット処理を行う従来の手法に比べて処理負荷を軽減することができる。
【0136】
表示出力用画像Dと、演算処理用画像E1(ヒット処理用画像E1)とを生成する手法について説明する。つまり、本実施形態では、フレーム毎に(例えば、1/60秒単位で)、図26(A)に示す表示出力用画像Dと、図26(B)に示す演算処理用画像E1とを生成する処理を行う。
【0137】
図27(A)(B)は、敵オブジェクトOB1のオブジェクトデータ(モデルデータ)を図示したものである。図27(A)は、表示出力用画像Dで用いられる敵オブジェクトOB1−1のオブジェクトデータを図示したものである。一方、図27(B)は、演算処理用画像E1で用いられる敵オブジェクトEOB1−2のオブジェクトデータを図示したものである。つまり、演算処理用画像E1で用いられるオブジェクト(モデル)は、当該オブジェクトの頂点数が表示出力用画像Dで用いられるオブジェクトの頂点数よりも少ない簡略オブジェクトである。例えば、本実施形態では、表示出力用画像Dを生成する際には、敵オブジェクトOB1−1を用いて生成する処理を行う。一方、演算処理用画像E1を描画する際には、表示出力用画像Dで用いられる敵オブジェクトOB1−1に替えて、敵オブジェクトOB1−1の頂点数を減らした敵オブジェクトOB1−2を用いて描画する処理を行っている。この理由は、演算処理用画像E1は、ヒット処理に関する処理を行うために用いられる画像であるので、ヒット処理の処理負荷の軽減や効率性を考えると、表示出力用画像Dで用いられるオブジェクトよりも頂点数を減らした簡易なオブジェクトを用いる方が適しているからである。
【0138】
ところで、演算処理用画像E1を生成する際には、各オブジェクトの頂点データの(R,G,B,A)を、そのオブジェクトを特定できる(識別可能な)(R,G,B,A)に決定する。さらに、複数の部位で構成されるオブジェクトについては、オブジェクトを構成する部位を特定できる(識別可能な)(R,G,B,A)に決定する。そして、決定されたオブジェクトの頂点データの(R,G,B,A)に基づいて、演算処理用画像E1を生成する処理を行っている。
【0139】
つまり、本実施形態では、演算処理用画像E1を生成する場合には、複数のオブジェクト単位で色分けし、さらに、オブジェクトの部位単位で色分けする処理を行っている。
【0140】
例えば、図28(A)に示すように、各オブジェクトを識別するIDを、R値、G値で決定し、オブジェクトの部位をB値で決定し、ヒットタイプをA値で決定する。なお、このヒットタイプは、複数のオブジェクトを、グループ化したものであり、例えば、「キャラクタ」というグループ、「背景」というグループ、「キャラクタ、背景以外のオブジェクト」という3種のグループに分けることができる。
【0141】
例えば、図28(B)に示すように、敵キャラクタOB1−2の頭部オブジェクトは、ID=1、部位=1、ヒットタイプ=1であるので、敵キャラクタOB1−2の頭部オブジェクトF1の頂点データの(R,G,B,A)は(1,1,1,1)と決定される。
【0142】
以上のように、オブジェクト単位で(R,G,B,A)を決定し、さらに、オブジェクトが複数の部位で構成されている場合には、部位単位での(R,G,B,A)が決定される。そして、決定された(R,G,B,A)に基づいて演算処理用画像E1を生成する。
【0143】
つまり、表示出力用画像D、演算処理用画像E1とが次のように生成される。まず、ワールド座標系(3次元のオブジェクト空間)に、表示出力用のオブジェクト(例えば、OB1−1)を配置させ、仮想カメラを用いて、表示出力用画像Dを描画する処理を行う。同様に、ワールド座標系に、演算処理用のオブジェクト(例えば、OB1−2)を配置させ、仮想カメラを用いて、演算処理用画像E1を描画する処理を行う。本実施形態では、同一の仮想カメラの位置、向き、画角に基づいて、表示出力用画像Dと、演算処理用画像E1とを生成する処理を行う。
【0144】
なお、演算処理用画像E1を生成する際には、表示出力用画像Dよりも画角を広げて描画するようにしてもよい。このようにすれば、広範囲でのヒット判定を行うことができる。
【0145】
また、演算処理用画像E1を生成する際には、攻撃側のオブジェクトである弾オブジェクト(特定オブジェクト)を含まないように、画像を生成する処理を行う。なぜなら、弾オブジェクトが、弾オブジェクト以外のオブジェクトに対してヒットしたか否かを判定する必要があるからである。
【0146】
そして、表示出力用画像Dを生成する際には、頂点処理後のピクセル処理を行う。一方、演算処理用画像E1を生成する際には、頂点処理後のピクセル処理は行わないようにし、オブジェクト単位(部位オブジェクト単位)での色分けを保つようにしている。つまり、演算処理用画像のオブジェクト単位(部位オブジェクト単位)でのポリゴンの頂点色は全て同一であり、オブジェクト単位でのポリゴンの色が一様になるように制御している。なぜなら、ピクセル処理によってピクセル単位で色が変更されてしまうと、正確なヒット判定処理を行うことができなくなるからである。
【0147】
なお、図29(A)に示すように表示出力用画像Dが画像バッファ221に描画され、図29(B)に示すように、演算処理用画像E1が演算処理用の画像バッファ231に描画される。本実施形態では、演算処理用の画像バッファ231(232、233も同様)は、縮小用バッファ(1/8フレームバッファ)であるので、演算処理用画像Eの解像度は、表示出力用画像Dの解像度よりも低くなる。しかし、演算処理用画像は、プレーヤが違和感を覚えない程度のヒット処理が可能であるので問題は生じない。また、縮小用バッファを用いれば、演算処理用画像Eを生成するため描画処理(GPUの処理負荷)を軽減することができるメリットがある。
【0148】
また、図29(A)に示すZバッファ222は、表示出力用画像Dの各画素のZ値(奥行き値、深度値)を格納し、また、図29(B)に示すZバッファ233は、演算処理用画像E1の各画素のZ値を格納する。
【0149】
また、図26(A)に示すように、表示出力用画像Dに入力部160によって指示される指示位置Pに、照準(指示マーカーの一例)Mを描画する処理を行っている。つまり、プレーヤは、表示出力用画像Dを見ながら、シューティング対象に対する狙いを定めて、照準Mを制御する入力操作を行うことになる。一方、図26(B)に示すように、演算処理用画像E1では、照準Mは描画されない。ヒット処理に影響を及ぼしてしまうからである。
【0150】
なお、図27(A)に示すモデルデータを構成するオブジェクトの各頂点の頂点データ(R,G,B,A)が、図28(B)に示すように予め定義された(R,G,B,A)の情報(或いは一部の情報)を含むように定義してもよい。
【0151】
このようにして表示出力用画像Dと、演算処理用画像E1を生成している。
【0152】
次に、ヒット処理について説明する。演算処理用画像E1において、指示位置Qに基づくヒットエリア(所定範囲)Nにおいて、1又は複数の画素を選択(抽出)する処理を行い、選択された画素の色情報又は半透明情報(R,G,B,A)に基づいて、弾オブジェクトが所与のオブジェクトにヒットしたか否かを判定する処理を行っている。
【0153】
例えば、図30(A)(B)に示すように、入力部160からの入力情報に基づいて、表示出力用画像Dにおける指示位置Pと、演算処理用画像E1における、指示位置Pに対応する指示位置Qを取得する。なお、表示出力用画像D上の指示位置Pを、演算処理用画像E1上の指示位置Qに変換する処理を行って求めてもよい。例えば、演算処理用画像E1の大きさは表示出力用画像Dの1/8の大きさであるので、大きさの比率に基づいて指示位置Qを求めることができる。
【0154】
また、図31(A)〜(C)に示すように、演算処理用画像E1において、指示位置Qを中心とするヒットエリアNにおいて複数の画素を選択する。例えば、図31(A)に示すように、所定間隔で画素を選択するようにしてもよい。また、図31(B)に示すように、ヒットエリアNにおいて、所定数の画素をランダムに選択するようにしてもよい。
【0155】
なお、照準Mの形状及び大きさの少なくとも1つに基づいてヒットエリアNを設定している。したがって、表示出力用画像Dにおいてプレーヤが狙いを定めた照準Mの形状の大きさに対応したオブジェクトに対して、ヒットさせるように制御することができる。
【0156】
例えば、図30(A)に示すように、円形の照準Mである場合には、ヒットエリアNを円形にしている。
【0157】
また、表示出力用画像Dで表示される照準Mの形状が菱形である場合には、図31(C)に示すように、ヒットエリアNを菱形にする。かかる場合には、演算処理用画像E1において指示位置Qの画素と、菱形の頂点(頂点付近)の画素とを選択するようにしてもよい。
【0158】
そして、本実施形態では、ヒットエリア内から画素が選択されると、画素の(R,G,B,A)(画素データの一例)に基づいて、弾オブジェクトと、所与のオブジェクトとのヒット判定を行う。
【0159】
例えば、図31(A)に示すように、選択した画素K1〜K9であるとすると、各画素K1〜K9それぞれの(R,G,B,A)に基づいて特定したオブジェクトにヒットしたと判定する。また、ヒットしたと判定されたオブジェクトのヒット部位を、各画素K1〜K9それぞれの(R,G,B,A)に基づいて判定する。
【0160】
例えば、画素K1の色情報(R,G)=(1,1)であるとすると、図28(B)に示すように、色情報(R,G)=(1,1)は、ID=1のオブジェクトであるので、敵オブジェクトOB1であると決定することができる。つまり、画素K1の色情報に基づいて、画素K1が示すオブジェクトが敵オブジェクトOB1であると決定することができる。そして、本実施形態では、弾オブジェクトが決定された敵オブジェクトOB1にヒットしたと判定する。また、図28(B)に示すように、画素K1の色情報B値=1である場合には、頭部F1であると決定することができる。つまり、画素K1の色情報に基づいて、画素K1が示すオブジェクトが敵オブジェクトOB1の頭部F1であると決定できる。したがって、本実施形態では、弾オブジェクトが敵オブジェクトOB1の頭部F1にヒットしたと判定する。つまり、画素K1の色情報及び半透明情報(R,G,B,A)が(1,1,1,1)である場合には、図28(B)に示すように、弾が敵オブジェクトOB1の頭部F1にヒットしたと判定する処理を行う。
【0161】
なお、Zバッファ233の画素K1〜K9それぞれの奥行き値を参照し、ヒットタイプ毎に、最も投影面に近い(最も視点に対して手前にある)オブジェクトに対してヒットしたと判定してもよい。
【0162】
例えば、画素K1〜K9の半透明情報Aに基づいて、画素K1〜K9をヒットタイプ毎に分類する。例えば、「キャラクタ」のヒットタイプ(A=1)の画素が、K1、K2である場合には、画素K1と、画素K2との奥行き値を参照し、仮想カメラに対して手前にある画素が画素K1である場合には、画素K1の(R,G,B,A)で決定されるキャラクタにヒットしたと判定する。同様に、背景のヒットタイプ(A=2)、他のオブジェクトのヒットタイプ(A=3)について、いずれのオブジェクトにヒットしたのかを判定する。
【0163】
また、入力部160の引き金が引かれたタイミングで(攻撃入力情報を検出したタイミングで)、ヒット判定処理を行っている。つまり、引き金が引かれるタイミングで、オブジェクト空間において、弾がオブジェクトにヒットしたものとみなしている。
【0164】
そして、選択した画素の(R,G,B,A)が示すオブジェクトが敵オブジェクトである場合には、敵オブジェクトに応じた所与の演算処理を行う。例えば、敵オブジェクトがヒット攻撃を受けるヒット処理を行う。より具体的には、敵オブジェクトの体力値などのパラメータを制御する処理(例えば減算処理)や、敵オブジェクトが攻撃を受けるエフェクト処理(攻撃を受ける動作処理)を行う。また、弾オブジェクトを敵オブジェクトにヒットさせる表示出力用画像を生成する処理を行う。なお、敵オブジェクトをヒットさせることによって、プレーヤキャラクタの得点を加算するなどの処理を行う。
【0165】
以上のように、レンダリングヒット処理によれば、広範囲におけるヒット判定の負荷を軽減することができる。レンダリングヒット処理では、3次元空間内で、弾と各オブジェクトとのヒット判定を行わずに、選択された画素の(R,G,B,A)に基づいて、弾とオブジェクトとのヒット判定処理を行うことができる。したがって、本実施形態の手法によれば、3次元の演算処理が不要になるので、従来よりも処理負荷が軽減されるという効果がある。
【0166】
なお、オブジェクト空間内に弾オブジェクトを存在させずに、ヒット処理を行うようにしてもよい。つまり、演算処理用画像において選択された画素の(R,G,B,A)に基づいて、弾オブジェクトが所与のオブジェクトにヒットしたとみなしてヒット判定処理を行ってもよい。
【0167】
(5)通常制御
図10は捕捉対象が同じである場合の照準(マーカ)の奥行き値の制御である通常制御について説明するための図である。仮想3次元空間における標的オブジェクトE20が経路360で移動する場合を例にとり説明する。EP−t1、EP−t2、EP−t3、EP−t4、EP−t5は、時刻t1、t2、t3、t4、t5に対応する各フレームにおける標的オブジェクトの位置を示している。このような場合、プレーヤが標的オブジェクトE20に狙いを定め、標的オブジェクトの移動に合わせてコントーラの指示位置を移動させた場合には、照準オブジェクトSが配置される捕捉点の時刻t1、t2、t3、t4、t5における位置CP−t1、CP−t2、CP−t3、CP−t4、CP−t5の奥行き成分(例えばZ座標)は、時刻t1、t2、t3、t4、t5における標的オブジェクトE20の位置EP−t1、EP−t2、EP−t3、EP−t4、EP−t5の奥行き成分(例えばZ座標)に応じて変化する。
【0168】
すなわち、捕捉対象が同じである場合(通常制御時)には、捕捉対象の奥行き値に対応する位置(例えば捕捉対象の奥行き値と同じ位置やΔZだけ仮想カメラに近い位置)に瞬時に位置づけられる。従って通常制御時は、捕捉点の奥行き値の変化度合いは、捕捉対象の奥行き値の変化度合い(例えば奥行き方向の移動速度)と同じとなり、奥行き値の変化値(例えば奥行き方向の移動距離)も捕捉対象の奥行き値の変化値と同じになる。
【0169】
図11は、捕捉対象が存在する状態から存在しない状態に変化した場合に通常制御を行うことによる問題点について説明するための図である。なおここでは、話を簡単にするために標的オブジェクトが移動せずに、捕捉方向を変化させる場合について説明する。
【0170】
例えば仮想3次元空間に標的オブジェクトE31、E32が存在し、時刻t1において捕捉方向(捕捉ライン)に標的オブジェクトE31が存在すると、時刻t1においては、照準オブジェクトSが配置される捕捉点は、捕捉対象である標的オブジェクトE31と若干手前(同じ位置でもよい)に設定される。
【0171】
その後時刻t2、t3、t4、t5において捕捉方向(捕捉ライン)がCL−t2、CL−t3、CL−t4、CL−t5と変化した場合、時刻t2、t3、t4には捕捉方向(捕捉ライン)CL−t2、CL−t3、CL−t4に捕捉対象となるオブジェクトが存在しないため、照準オブジェクSが設定される捕捉点は、捕捉方向(捕捉ライン)CL−t2、CL−t3、CL−t4において、奥行き値が捕捉方向において仮想カメラから最も離れた描画物、すなわち背景等の位置や、予め設定されている最奥位置(以下「最奥位置」という)である捕捉点CP−t2、CP−t3、CP−t4に設定される。
【0172】
その後時刻t5において捕捉方向(捕捉ライン)CL−t5に捕捉対象となる標的オブジェクトE32が存在する状態になると、照準オブジェクトSが配置される捕捉点CP−t5は、標的オブジェクトE32の若干手前(同じ位置でもよい)(捕捉点CP−t5)に配置される。
【0173】
この様に捕捉方向に捕捉対象が存在する状態から存在しない状態に変化した場合(捕捉対象をロストした場合、時刻t1〜時刻t2)、照準オブジェクトSの設定される捕捉点の奥行き値が急速に変化するため、照準が仮想3次元空間後方まで一気に移動してしまい、プレーヤは照準位置の把握が難しくなる。例えばプレーヤが捕捉対象を標的オブジェクトE31から標的オブジェクトE32に変更するためにコントローラ(シューティングデバイス)の向きを変化させる場合や、捕捉方向が変化せずに標的オブジェクトが移動することにより捕捉対象をロストする場合や、捕捉対象がシューティング等で消滅した場合にも同様の事態(奥行き値が後方に急激に変化する自体)が発生する。
【0174】
(6)捕捉点の奥行き値を所定期間変化させない制御
捕捉方向に捕捉対象が存在する状態から存在しない状態に変化した場合(捕捉対象をロストした場合)の捕捉点の奥行き値の制御の一例として、捕捉点の奥行き値を所定期間変化させない制御について説明する。
【0175】
図12に、捕捉方向が変化することにより捕捉対象をロストする場合に奥行き値を所定期間変化させない制御例を示す。図12に示すように時刻t1において捕捉方向CL−t1に捕捉対象である標的オブジェクトE31が存在し、時刻t2において、捕捉方向CL−t2に捕捉対象である標的オブジェクトが存在しない状態に変化する。
【0176】
このような場合、照準の急激な後方移動を回避するために、照準オブジェクトSが配置される捕捉点の奥行き値を所定時間変更しないようにしてもよい。
【0177】
たとえば捕捉対象が存在しない状態に変化してからk1フレーム間は、捕捉点の奥行き値を変更しないようにしてもよい。ここでt5−t2<k1とするとt2からt4の間は捕捉点の奥行き値は変更されないため、時刻t2〜t4においては捕捉点CP−t2〜CP−t4は、捕捉方向(捕捉ライン)CL−t2〜CL−t4上であって奥行き値が時刻t1の捕捉点CP−t1と同じ位置に配置される。そして時刻t5においては、捕捉対象が存在しない状態から捕捉対象が存在する状態に変化するため、捕捉点CP−t5の奥行き値は、捕捉対象の標的オブジェクトE32の若干手前(同じ位置でもよい)に瞬時に変化するようにしてもよい。
【0178】
この様にすると捕捉方向が変化して捕捉対象をロストしても、捕捉点の奥行き値は変化しないので、照準が急激に後退する状況を発生させることなく、近くにいる別の標的オブジェクトにスムーズに照準を移動させることができる。
【0179】
なお捕捉方向は変化しないが捕捉対象が移動することにより捕捉対象をロストした場合や、捕捉方向及び捕捉対象が両方移動することにより、捕捉対象をロストする場合にも同様の制御が有効である。またシューティング等により標的オブジェクトが消滅することにより捕捉対象をロストした場合も同様の制御が有効である。
【0180】
図13に、捕捉対象が消滅することにより捕捉対象をロストした場合に奥行き値を所定期間変化させない制御例を示す。
【0181】
図13に示すように時刻t0において捕捉方向CL−t0に捕捉対象である標的オブジェクトE31が存在していたが、時刻t1において、シューティング等により標的オブジェクトが消滅することにより、捕捉方向CL−t1に捕捉対象である標的オブジェクトが存在しない状態に変化する。この様な場合の照準の急激な後方移動を回避するために、図12の場合と同様に、照準の奥行き値を所定時間変更しないようにしてもよい。
【0182】
たとえば捕捉対象が存在しない状態に変化してからk1フレーム間は、捕捉点の奥行き値を変更しないようにしてもよい。ここでt5−t1<k1とするとt1からt4の間は捕捉点の奥行き値は変更されないため、時刻t1〜t4においては捕捉点CP−t1〜CP−t4は、捕捉方向(捕捉ライン)CL−t1〜CL−t4上であって奥行き値が時刻t0の捕捉点CP−t0と同じ位置に配置される。そして時刻t5においては、捕捉対象が存在しない状態から捕捉対象が存在する状態に変化するため、捕捉点CP−t5の奥行き値は、捕捉対象の標的オブジェクトE32の若干手前(同じ位置でもよい)に瞬時に変化するようにしてもよい。
【0183】
なおここでは捕捉方向が時間とともに変化している場合を例にとり説明したが、捕捉対象が消滅して、しばらく捕捉方向が変化しない場合も同様である。このような場合はしばらくの間は、捕捉点は変化せず同じ位置(捕捉方向が変化せずに、奥行き値も変化しないため同じ位置となる)となり、照準位置は変化しないことになる。
【0184】
この様にすると捕捉対象が消滅しても、捕捉点の奥行き値は変化しないので、照準が急激に後退する状況を発生させることなく、近くにいる別の標的オブジェクトにスムーズに照準を移動させることができる。
【0185】
なおここでは捕捉点の奥行き値を所定期間変化させない場合を例にとり説明したが、例えば、捕捉点の奥行き値を所定期間あいだは、少しだけ変化させて、所定期間が過ぎるとその方向における最奥位置に変化させるようにしてもよい。
【0186】
図14に、捕捉対象をロストした場合に、捕捉点の奥行き値を所定期間の間は少しだけ変化させ、所定期間が過ぎると最大設定値に変化させる制御例を示す。ここでは捕捉方向を変化させることにより捕捉対象をロストした場合について説明する。
【0187】
図14に示すように時刻t1において捕捉方向CL−t1に捕捉対象である標的オブジェクトE31が存在し、時刻t2において、捕捉方向CL−t2に捕捉対象である標的オブジェクトが存在しない状態に変化する。この様な場合照準の急激な後方移動を回避するために、捕捉点の奥行き値を所定期間の間は通常よりも小さく変化させ、所定期間k2が過ぎると最大設定値に変化させるようにしてもよい。
【0188】
たとえば捕捉対象が存在しない状態に変化してからk2フレーム間は、捕捉点の奥行き値を変更しないようにしてもよい。ここでt3−t1<k2とするとt1からt3の間は捕捉点の奥行き値は少しだけ変化した位置(第2の変化値l2だけ後退させた位置)に置かれるため、時刻t2〜t3においては捕捉点CP−t2〜CP−t3は、捕捉方向(捕捉ライン)CL−t2〜CL−t3上であって奥行き値が時刻t1の捕捉点CP−t0の奥行き値z(t1)から変化値l2だけ後退した位置z(t1)+l2に配置される。t4−t1>k2とすると時刻t4で捕捉点CP−t4の奥行き値は最大設定値に変化する。
【0189】
そして時刻t5においては、捕捉対象が存在しない状態から捕捉対象が存在する状態に変化するため、捕捉点CP−t5の奥行き値は、捕捉対象の標的オブジェクトE32の若干手前(同じ位置でもよい)に瞬時に変化するようにしてもよい。
【0190】
この様にすると捕捉対象をロストしても、捕捉点の奥行き値は変化しないので、照準が急激に後退する状況を発生させることなく、近くにいる別の標的オブジェクトにスムーズに照準を移動させることができる。
【0191】
なお所定期間k1、k2の長さは適宜設定することができる。例えば仮想3次元空間のオブジェクトの種類や大きさや配置状態(数、密度、分布の状態)、又は所定のパラメータ(敵の数、難易度、命中率、体力、ステージ等)、又はプレーヤが行う操作入力の変化(照準箇所の変更が激しい場合等)等の所与の条件に基づき、奥行き値の設定条件(例えば、変化させない時間や変化速度等)の一つである所定期間k1、k2の長さを変化させてもよい。
【0192】
(7)捕捉点の奥行き方向の移動速度を変更する制御
捕捉方向に捕捉対象が存在する状態から存在しない状態に変化した場合(捕捉対象をロストした場合)の捕捉点の奥行き値の一例として、捕捉点の奥行き方向の移動速度を変更する制御について説明する。
【0193】
図15に捕捉方向を変化させることにより捕捉対象をロストした場合の速度変化の制御例を示す。
【0194】
図15に示すように時刻t1において捕捉方向CL−t1に捕捉対象である標的オブジェクトE31が存在し、時刻t2において、捕捉方向CL−t2に捕捉対象である標的オブジェクトが存在しない状態に変化する。この様な場合、照準の急激な後方移動を回避するために、照準の奥行き方向の移動速度を変更する処理をおこなうようにしてもよい。照準の奥行き方向の移動速度を変更する処理は、例えば照準の奥行き方向の移動時間を長く設定するようにしてもよいし、1フレームあたりの変化値l4を奥行き方向の最大設定値より充分に小さな値に設定しておくことにより実現するようにしてもよい。
【0195】
たとえば1フレームあたりの変化値l4を設定し、捕捉対象がロストすることにより奥行き値が最奥位置になる場合には、奥行き値を1フレームで最奥位置に変化(瞬時変化)させずに、所定フレームの間、変化値l4だけ奥行き値を奥行き方向(仮想カメラから離れる方向)に変化させるようにしてもよい。
【0196】
すなわち時刻t2から、新たな捕捉対象に狙いが定まる前である時刻t4の間は捕捉点の奥行き値を変化値l2だけ奥行き方向に変化させてもよい。この様にすると、時刻t1の捕捉点CP−t1の奥行き値をz(t1)とすると、時刻t2の捕捉点CP−t2の奥行き値z(t2)はz(t1)+l2となり、時刻t3の捕捉点CP−t3の奥行き値z(t3)はz(t2)+l2となり、時刻t4の捕捉点CP−t4の奥行き値z(t4)はz(t3)+l2となる。そして時刻t5においては、捕捉対象が存在しない状態から捕捉対象が存在する状態に変化するため、捕捉点CP−t5の奥行き値は、捕捉対象の標的オブジェクトE32の若干手前(同じ位置でもよい)に瞬時に変化するようにしてもよい。
【0197】
この様にすると、捕捉点の奥行き値は少しずつ後退するので、あたかも照準の移動速度が遅くなったような効果を与える。従って捕捉対象をロストしても、捕捉点の奥行き値は急激に変化しないので、照準が急激に後退する状況を発生させることなく、近くにいる別の標的オブジェクトにスムーズに照準を移動させることができる。
【0198】
なお捕捉方向は変化しないが捕捉対象が移動することにより捕捉対象をロストした場合や、捕捉方向及び捕捉対象が両方移動することにより、捕捉対象をロストする場合にも同様の制御が有効である。
【0199】
次に捕捉対象をロストした場合に照準の奥行き方向への移動速度が、時間がたつにつれて大きくなるように捕捉点の奥行き値を設定する制御について説明する。
【0200】
図16に、捕捉方向を変化させることにより捕捉対象をロストした場合の速度変化の制御例(時間とともに移動速度を変化させる場合)を示す。
【0201】
図16に示すように時刻t1において捕捉方向CL−t1に捕捉対象である標的オブジェクトE31が存在し、時刻t2において、捕捉方向CL−t2に捕捉対象である標的オブジェクトが存在しない状態に変化し、しばらく捕捉対象が存在しない状態が続くとする。この様な場合、照準の急激な後方移動を回避するために、照準の奥行き方向の移動速度を時間がたつにつれて大きくなるように変化させる処理をおこなうようにしてもよい。
【0202】
たとえば1フレームあたりの基準変化値l3を設定し、捕捉対象がロストすることにより奥行き値が最奥位置になる場合には、奥行き値を1フレームで最奥位置に変化(瞬時変化)させずに、複数フレームの間、基準変化値l3×n(nは経過フレーム数)だけ奥行き値を奥行き方向(仮想カメラから離れる方向)に変化させるようにしてもよい。
【0203】
この様にすると、時刻t1の捕捉点CP−t1の奥行き値をz(t1)とすると、時刻t2の捕捉点CP−t2の奥行き値はz(t2)z(t1)+l3となり、時刻t3の捕捉点CP−t3の奥行き値z(t3)はz(t2)+l3×2となり、時刻t4の捕捉点CP−t4の奥行き値z(t4)はz(t3)+l3×3となり、時刻t5の捕捉点CP−t5の奥行き値z(t5)はz(t5)+l3×4となる。
【0204】
この様にすると、捕捉点の奥行き値は時間が立つにつれて後退速度が速くなるような視覚効果を与える。従って捕捉対象をロストしても、捕捉点の奥行き値は瞬時に変化せずに時間がたつにつれて変化がおおきくなるので、プレーヤの目がなれて違和感を覚えない照準画像を提供することができる。
【0205】
(8)オブジェクト群単位で捕捉対象に設定する処理
図17(A)(B)はゲーム画像の一例を示す図である。
【0206】
図17(A)は、仮想3次元空間を多数の標的オブジェクトが群れをなして移動している様子示す画像であり、図17(B)は、標的オブジェクトが個別に移動している様子を示す画像である。図17(A)のような場面では、プレーヤは多数のオブジェクトを次々にシューティングするため、シューティングにより標的オブジェクトが消失する度に照準が仮想3次元空間後方まで移動すると、周りに多数の標的オブジェクトがいるにもかかわらず照準画像が奥方向に移動するので、見にくくシューティングしづらいゲーム画像となってしまう。図17(A)のような場面では、群れをねらっている間は、照準が位置する標的オブジェクトを消滅させても、照準位置は後退しないほうが、プレーヤに取ってシューティングしやすいゲーム画像となる。
【0207】
そこで、複数の標的オブジェクトE21、E22、E23、E24、・・の集合であるオブジェクト群410に対してグループ設定をおこない、オブジェクト群単位で捕捉対象に設定する処理を行ってもよい。このようにすると、オブジェクト群が捕捉方向に存在する場合には、奥行き値はオブジェクト群に対応して設定されるため、例えばオブジェクト群410に属する標的オブジェクトE24をシューティングにより消滅させたとしても、捕捉点の奥行き値は、仮想3次元空間後方まで移動せずに、オブジェクト群に対応づけられた奥行き値に設定されている。
【0208】
オブジェクト群に対応づけられた奥行き値とは、例えばオブジェクト群に属するオブジェクトの奥行き値の平均値でもよいし、オブジェクト群に属するオブジェクトの奥行き値の中で、最も手前にある(仮想カメラに近い)オブジェクトの奥行き値でもよいし、オブジェクト群の代表オブジェクトを予め指定しておき、代表オブジェクトの奥行き値でもよい。
【0209】
標的オブジェクトに対するグループ設定は、予めさだめておいてもよい。例えば複数の標的オブジェクトの移動動作をグループとして制御(群れの制御等)を行う場合には、移動動作の制御単位でグループ設定を行っておいてもよい。
【0210】
また個別に移動動作する標的オブジェクトに対して、各フレームにおける標的オブジェクトの位置に基づきグループを設定し、オブジェクトの位置の変化によりグループの設定を動的に変化させてもよい。
【0211】
図22は、動的にグループ設定を行う例について説明するための図である。
【0212】
図22に示すように、仮想3次元空間内の標的オブジェクトE31〜E39が存在している場合に所与の標的オブジェクトE34に対して、当該オブジェクトから所定範囲内(例えば半径rの球内)に存在する標的オブジェクトの数が所定数以上である場合には、グループ設定を行うようにしてもよい。例えば所定範囲内に存在する標的オブジェクト2個以上であればグループを設定するというグループ設定条件がある場合、標的オブジェクトE34の所定範囲内420−1には標的オブジェクト31、32、35、36が存在するので、グループ設定条件を満たし、標的オブジェクト31、32、34、35、36を含むグループG1が設定される。また標的オブジェクトE37の所定範囲内420−2には標的オブジェクト36、38が存在するので、グループ設定条件を満たし、標的オブジェクト36、37、38を含むグループG2が設定される。また標的オブジェクトE39の所定範囲内420−3には標的オブジェクト38が1個だけしか存在しないのでグループ設定条件を満たさず、グループは設定しない。
【0213】
ここでは標的オブジェクト36は2つのグループG1、G2に属しているが、この様に1つの標的オブジェクトが複数のグループに属するようにグループ設定をおこなってもよい。
【0214】
また、グループ設定を予め定めておく方法と、動的にグループ設定を変化させる方法を、併用しても良い。例えば、オブジェクト群が、画面に登場するときには、予めグループと設定しておき、シューティングによりそのグループの中の多くの標的オブジェクトが消滅して、標的オブジェクトの数が減った場合には、グループ設定を解除しても良い。例えば、予めグループと設定された図17(A)のような群れに対し、シューティングを行った結果、図17(B)のように標的オブジェクトの数が減った場合、オブジェクトの個数や位置の分散等のパラメータによって、グループを解除するべきかの判定を行い、それによって、グループを解除しても良い。
【0215】
図18(A)(B)は、オブジェクト群単位で行う捕捉判定処理について説明するための図である。
【0216】
図18(A)に示すように、標的オブジェクトE21、E22、E23、E24のオブジェクト群に対してヒットチェックボリューム420を設定し、ヒットチェックボリューム420と捕捉方向(捕捉ライン)CLのヒットチェック(交差判定)を行うことで、オブジェクト群が捕捉対象であるか否か判定して、捕捉対象となるオブジェクト群を特定するようにしてもよい。
【0217】
ヒットチェックボリューム420の形状はオブジェクト群を構成する標的オブジェクトE21、E22、E23、E24の各フレームにおける配置状態に応じて動的に変更してもよい。例えば各フレームで標的オブジェクトの位置情報に基づきオブジェクト群を構成する標的オブジェクトE21、E22、E23、E24を内包するヒットチェックボリュームを求めてもよい。
【0218】
また群れを構成する標的オブジェクトの位置関係があまり変化しない場合には、群れに対して予め用意されているヒットチェックボリュームを用いてもよい。
【0219】
なおヒットチェックボリューム420と捕捉方向(捕捉ライン)CLのヒットチェック(交差判定)は、捕捉方向(捕捉ライン)CLの代わりに図21に示すような捕捉方向(捕捉ライン)CLに対応して設定されたヒットチェックボリュームHB2を設定しておこなってもよい。
【0220】
また図18(B)に示すように、標的オブジェクトE21、E22、E23、E24のオブジェクト群に対してヒットチェックプレート(2次元的な領域でもよい)430を設定し、ヒットチェックプレート430と捕捉方向(捕捉ライン)CLのヒットチェック(交差判定)を行うことで、オブジェクト群が捕捉対象であるか否か判定して、捕捉対象となるオブジェクト群を特定するようにしてもよい。ヒットチェックプレート430は法線423が視線方向になるように設定してもよい。
【0221】
ヒットチェックプレート430の形状はオブジェクト群を構成する標的オブジェクトE21、E22、E23、E24の各フレームにおける配置状態に応じて動的に変更してもよい。例えば図23に示すように標的オブジェクトE21、E22、E23、E24をスクリーン上に投影してこれらを含む2次元的な領域440を求めて、当該領域の形状を有するヒットチェックプレートを求めてもよい。
【0222】
また群れを構成する標的オブジェクトの位置関係があまり変化しない場合には、群れに対して予め用意されているヒットチェックプレートを用いてもよい。
【0223】
なおヒットチェックプレート420と捕捉方向(捕捉ライン)CLのヒットチェック(交差判定)は、捕捉方向(捕捉ライン)CLの代わりに図21に示すような捕捉方向(捕捉ライン)CLに対応して設定されたヒットチェックボリュームHB2を設定しておこなってもよい。
【0224】
(9)捕捉方向の変化予測による捕捉対象判定処理
捕捉方向の変化履歴に基づき捕捉方向の変化予測を行い、当該変化予測を加味して捕捉対象を特定する例について説明する。
【0225】
図19(A)(B)は捕捉点の変化予測について説明する図である。
【0226】
図19(A)は捕捉方向の変化予測を行わない場合の捕捉対象の判定例を示している。P、Pn+1、Pn+2は、時刻t1、t2、t3の画面460の指示位置を示している。
【0227】
この様な場合、2次元的に説明すると時刻t1においては指示位置Pの周りの所定エリアHEに描画される標的オブジェクトが存在する場合に、当該標的オブジェクトを補足対象とすることができ、時刻t2においては指示位置Pn+1の周りの所定エリアHEn+1に描画される標的オブジェクトが存在する場合に、当該標的オブジェクトを補足対象とすることができ、時刻t3においては指示位置Pn+2の周りの所定エリアHEn+2に描画されている標的オブジェクトが存在する場合に、当該標的オブジェクトを補足対象とすることができる。図19(A)では、いずれの場合も該当する標的オブジェクトは、存在しない。
【0228】
図19(B)は捕捉方向の変化予測を行い、変化予測を加味した捕捉対象の判定例を示している。P、Pn+1、Pn+2は、時刻t1、t2、t3の画面460の指示位置を示している。変化予測を加味した判定を行う場合には、例えば過去のフレームにおける指示位置の移動履歴に基づき、今回フレームにおける予想移動ベクトルvを加味した判定を行う場合には、例えば過去のフレームにおける指示位置の移動履歴に基づき、今回フレームにおける予想移動ベクトルv、vn+1、vn+2を推定する。予想移動ベクトルv、vn+1、vn+2は、例えば過去の所定フレーム分の現実の移動履歴に基づき求めてもよい。
【0229】
時刻t1における予想移動ベクトルvは、例えば時刻t1の直前の所定期間の移動実績に基づき所定期間の速度ベクトルを求めて、これを時刻t1の予想移動ベクトルv としてもよい。時刻t2、t3についても同様にして、それぞれ時刻t2、t3の直前の所定期間の移動実績に基づき速度ベクトルを求めて、これらをそれぞれ時刻t2、t3の予想移動ベクトルvn+1、vn+2 としてもよい。
【0230】
そして時刻t1においては指示位置Pの周りの所定エリアHEを予想移動ベクトルvに応じて変形させた判定エリアHE’を設定し、当該判定エリアHE’ に標的オブジェクトが存在する場合に、当該標的オブジェクトを補足対象とし、時刻t2においては指示位置Pn+1の周りの所定エリアHEn+1を予想移動ベクトルvn+1応じて変形させた判定エリアHE’n+1を設定し、当該判定エリアHE’n+1 に標的オブジェクトが存在する場合に、当該標的オブジェクトを補足対象とし、時刻t3においては指示位置Pn+2の周りの所定エリアHEn+2を予想移動ベクトルvn+2応じて変形させた判定エリアHE’n+2を設定し、当該判定エリアHE’n+2 に標的オブジェクトが存在する場合に、当該標的オブジェクトを補足対象としてもよい。
【0231】
判定エリアHE’ として、図19(A)の所定エリアHE が予想移動ベクトルvの方向に拡大された形状のエリアを設定してもよい。
【0232】
このようにすると、捕捉方向には標的オブジェクトが存在しない場合でも、捕捉方向の進行方に標的オブジェクトE40が存在する場合には、当該標的オブジェクトE40も捕捉対象となるので、照準が画面後方に後退する場面を減らすことができ、見やすい照準画像を提供することができる。
【0233】
図20(A)(B)は、図19(A)(B)のケースを仮想3次元空間内で立体的に見た様子を示す図である。
【0234】
図20(A)は捕捉方向の変化予測を行わない場合の捕捉対象の判定例を示している。S’は、図19(A)ディスプレイ460に対応して仮想3次元空間内に設定された仮想的なスクリーンを示しており、P’、P’n+1、P’n+2は、図19(A)の指示位置P、Pn+1、Pn+2 に対応する 仮想スクリーン上の点である。
【0235】
仮想3次元空間では時刻t1、t2、t3における捕捉方向(捕捉ライン)CL−t1、CL−t2、CL−t3に対して、それぞれヒットチェック用の判定空間HB−t1(例えばCL−t1を中心線とする円柱形状の空間)、判定空間HB−t2(例えばCL−t2を中心線とする円柱形状の空間)、判定空間HB−t3(例えばCL−t3を中心線とする円柱形状の空間)が設定されており、当該判定空間と標的オブジェクト(標的オブジェクトに対して設定されたヒットチェックボリュームでもよい)とのヒットチェックを行うことにより、捕捉対象の有無の検出や特定を行ってもよい。図19(B)では時刻t1、t2、t3のいずれの場合も捕捉対象は存在しない。
【0236】
また、判定空間は、円柱形状とは限らず、例えば銃口などの位置を頂点とする円錐形状であっても良い。また、それ以外の形状であっても良い。例えば、バズーカ砲のような武器を想定している場合には、円柱形状の判定空間が適しており、散弾銃のような武器を想定している場合には、円錐形状が適している。ゲーム中で武器の変更等が成された場合には、これらの判定空間を切り替えて用いても良い。
【0237】
図20(B)は補足方向の変化予測を行い、変化予測を加味した補足対象の判定例を示している。S’は、図19(B)ディスプレイ460に対応して仮想3次元空間内に設定された仮想的なスクリーンを示しており、P’、P’n+1、P’n+2は、図19(B)の指示位置P、Pn+1、Pn+2 に対応する 仮想スクリーン上の点である。
【0238】
仮想3次元空間では時刻t1、t2、t3における補足方向(補足ライン)CL−t1、CL−t2、CL−t3に対して、それぞれ変化予測を加味したヒットチェック用の判定空間HB−t1、HB−t2、HB−t3を設定している。各判定空間は図19(B)で説明した予想移動ベクトルv、vn+1、vn+2 に基づき、図20(A)の判定空間HB−t1、判定空間HB−t2、判定空間HB−t3を変形させたものでもよい。例えば各時刻における予想移動ベクトルv、vn+1、vn+2 の方向に、判定空間HB−t1、HB−t2、HB−t3を拡大した形状の空間でもよい
【0239】
3.本実施の形態の処理
図24は、本実施の形態の照準位置の補正処理の流れを示すフローチャート図である。
【0240】
以下の処理をフレーム毎に行い、フレーム毎に捕捉点の位置を求めて照準オブジェクトを配置する処理をおこなってもよい。
【0241】
まず入力情報に基づき画面上の指示位置Pを検出する(ステップS10)。例えば図9(A)から(C)で説明した処理で画面上の指示位置Pを求めてもよい。次に画面上の指示位置Pから、仮想空間内の対応点P’を求める(ステップS20)。
【0242】
1人称視点の場合(ステップS30でYESの場合)には、仮想空間内の対応点P’と仮想カメラの位置に基づき捕捉方向(捕捉ライン)を求める。また1人称視点でない場合(3人称視点の場合)(ステップS30でNOの場合)には、仮想空間内の対応点P’とキャラクタオブジェクトの位置に基づき捕捉方向(捕捉ライン)を求める(ステップS50)。
【0243】
次に捕捉ラインと仮想空間内の標的オブジェクト又は標的オブジェクト群とのヒットチェックを行い捕捉対象を特定する(ステップS60)。捕捉対象が存在する場合(ステップS70でYESの場合)には、捕捉対象の標的オブジェクト又は標的オブジェクト群に対応する奥行き値に基づき捕捉対象の奥行き値を決定する(ステップS80)。なお次回処理時に前回捕捉対象が存在するか否かを判定するために前回存在フラグ等を用いる場合には、今回フレームの処理が終了した時点で前回存在フラグをONにしておいてもよい。
【0244】
捕捉対象が存在しない場合(ステップS70でNOの場合)には、前回フレームで捕捉対象が存在したか否か判定する(ステップS90)。前回フレームで、捕捉対象が存在したか否かは、例えば前回フレームで設定された前回存在フラグに基づき判定してもよい。
【0245】
前回フレームでは捕捉対象が存在した場合(ステップS90でYESの場合)は、今回フレームで捕捉対象をロストした場合なので、奥行き値にたいして行う補正の内容(補正種別)に対応した補正期間だけ補正モードに設定する(ステップS100)。例えば補正期間をタイマーにセットして、タイマーが0になると補正モードが終了して、通常モードになるようにしてもよい。このようにすると、奥行き値の補正を複数フレームに渡って行う場合(例えば所定期間奥行き値を変更しない補正や所定期間にわたって少しずつ奥行き値を変更する補正等)に便利である。例えば、図11で説明したように、所定期間k1だけ奥行き値を変更しない補正を行う場合には、所定期間k1をタイマーにセットするようにしてもよい。
【0246】
補正モード中である場合(ステップS110でYESの場合)には、補正種別に対応した奥行き値の補正を行う(ステップS120)。例えば、所定期間だけ奥行き値を変更しない補正を行う場合には、前回フレームの奥行き値を採用する補正を行う。また奥行き値を少しずつ後退させる補正を行う場合には、図15で説明したように、前回フレームの奥行き値に所定の補正値を加算する補正を行う。
【0247】
補正モード中でない場合(ステップS110でNOの場合)には、捕捉点の奥行き値を最大設定値に決定する(ステップS130)。
【0248】
そして捕捉方向(捕捉ライン)と決定した奥行き値に基づき捕捉点の奥行き値を決定し、捕捉点にマーカオブジェクトを配置する(ステップS140)。
【0249】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0250】
上記実施の形態では、カメラ制御データの位置を例に取り説明したがそれに限られない。回転や画角についても同様の制御を行うことができる。
【0251】
例えば上記実施の形態では、生成される画像が通常の平面視画像である場合を例にとり説明したがこれに限られず、前記仮想3次元空間の画像は、立体視画像でもよい。
【0252】
例えば2眼メガネ式の立体視方式の画像を生成する場合には 前記マーカを含む前記仮想3次元空間を第1の仮想カメラ(右目用仮想カメラ)から見た第1の画像(右目画像)を生成する処理と、前記マーカを含む前記仮想3次元空間を第2の仮想カメラ(左目用仮想カメラ)から見た第2の画像(左目画像)を生成する処理と、を行い、生成された第1の画像(右目用画像)と第2の画像(左目画像)に基づき立体視画像を生成してもよい。
【0253】
また立体視画像を観察するのに適した位置に設定された、仮想カメラと捕捉点を結ぶ方向を捕捉方向(捕捉ライン)として、捕捉方向に存在する捕捉対象を検出してもよい。
【0254】
例えば2眼メガネ式の立体視方式の画像を生成する場合には、前記捕捉対象特定手段は、 第1の仮想カメラ(左目用カメラ)と第2の仮想カメラ(右目用カメラ)の中間点に配置された第3の仮想カメラ(センターカメラ)と捕捉点を結ぶ方向を捕捉方向として、捕捉方向(捕捉ライン)に存在する捕捉対象を検出してもよい。
【0255】
また、捕捉点の位置をいったん前の方に来るようにした上で、初期値を超えている場合は初期値にクランプするような制御を行う場合も本発明の範囲内である。
【0256】
例えば奥行き値の変化を制御するための関数(例えば時間tを変数として奥行き(Z)値を求める関数z=f(t))に基づき奥行き値を設定する場合、関数の出力値をフィルタリングするような場合も、本発明の奥行き値の補正に含まれる。
【0257】
例えば図25に示すように、時刻tにおける奥行き値zを求める関数をz=(t−a)−a で示すような2次関数で与えると、t=0の時、z=0、時刻t=aの時、最小値Z=−aをとる放物線となる。このとき、初期値をt=0の時のz=0とし、出力値であるzがz<0である場合には初期値にクランプするようなフィタリングを行うと、Z値が波線部分500にあたる時刻t=0〜時刻t=2aの期間は、Z値が0に固定されるので、所定期間を設定しその間は初期値に留め置く場合(例えば図13で説明したような所定期間奥行き値を変更しない制御)と同様の効果を得ることができるが、かかる場合も本発明の奥行き値の補正の範囲内である。
【0258】
なお上記では2次関数を用いたが、別の関数であっても良いことはもちろんである。
【0259】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【符号の説明】
【0260】
100 処理部、110 オブジェクト空間設定部、111 取得部、112 捕捉方向決定部、113 捕捉対象特定部、114 マーカ配置制御部、
114 移動・動作処理部、115 ゲーム演算部、
116 設定部、117 指示位置制御部、
120 画像生成部、130 音処理部、
160 入力部、162 検出部、180 情報記憶媒体、190 表示部、
192 音出力部、196 通信部、
200 記憶部、210 主記憶部、
221 画像バッファ、222 Zバッファ、
231 画像バッファ(描画面A)、232 画像バッファ(描画面B)、
231 Zバッファ(描画面C)

【特許請求の範囲】
【請求項1】
仮想3次元空間の画像を生成するプログラムであって、
仮想3次元空間にオブジェクトを配置する仮想3次元空間設定手段と、
入力情報に基づき仮想3次元空間内において捕捉点が配置される捕捉方向を特定する捕捉方向特定手段と、
前記捕捉方向に基づき仮想3次元空間の捕捉対象を特定する捕捉対象特定手段と、
捕捉対象特定結果に基づき捕捉点の奥行き値を設定し、捕捉点にマーカを配置するマーカ配置制御手段と、
前記マーカを含むオブジェクトが配置された前記仮想3次元空間を仮想カメラから見た画を生成する画像生成手段と、してコンピュータを機能させ、
前記捕捉対象特定手段は、
仮想3次元空間において、前記捕捉方向に存在する捕捉対象の有無を判定し、捕捉対象が存在する場合には捕捉対象を特定し、
前記マーカ配置制御手段は、
捕捉対象が存在する場合には、捕捉対象に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定し、
捕捉対象が存在しない場合の捕捉点の奥行き値として、捕捉方向において仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値を設定するよう構成され、
捕捉対象が存在する状態から存在しない状態に変化した場合には、捕捉点の奥行き値を補正する奥行き値補正処理を行うことを特徴とするプログラム。
【請求項2】
請求項1において、
前記マーカ配置制御手段は、
前記奥行き値補正処理として、捕捉点の奥行き値を所定期間変更しない処理、捕捉点の奥行き値の変化量を制限する処理、捕捉点の奥行き値が前記仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値に瞬時変化しないように補正する処理の少なくとも1つを行うことを特徴とするプログラム。
【請求項3】
請求項1乃至2のいずれかにおいて、
前記マーカ配置制御手段は、
捕捉対象が存在する状態から存在しない状態に変化した場合に、捕捉点に配置されるマーカの移動速度が、時間がたつにつれて大きくなるように捕捉点の奥行き値を設定する制御を行うことを特徴とするプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記マーカ配置制御手段は、
仮想3次元空間のオブジェクトの種類や大きさや配置状態、又は所定のパラメータ、又は所与の条件に基づき、奥行き値の設定条件を変化させることを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記捕捉対象特定手段は、
前記捕捉方向の変化履歴に基づき捕捉方向の変化予測を行い、当該変化予測を加味して捕捉対象を特定することを特徴とするプログラム。
【請求項6】
仮想3次元空間の画像を生成するプログラムであって、
仮想3次元空間にオブジェクトを配置する仮想3次元空間設定手段と、
入力情報に基づき仮想3次元空間内において捕捉点が配置される捕捉方向を特定する捕捉方向特定手段と、
前記捕捉方向に基づき仮想3次元空間の捕捉対象を特定する捕捉対象特定手段と、
捕捉対象特定結果に基づき捕捉点の奥行き値を設定し、捕捉点にマーカを配置するマーカ配置制御手段と、
前記マーカを含むオブジェクトが配置された前記仮想3次元空間を仮想カメラから見た画を生成する画像生成手段と、してコンピュータを機能させ、
前記捕捉対象特定手段は、
前記捕捉方向の変化履歴に基づき捕捉方向の変化予測を行い、当該変化予測を加味して捕捉対象を特定し、
前記マーカ配置制御手段は、
捕捉対象が存在する場合には、捕捉対象に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定し、前記捕捉方向の決定された奥行き値に対応する位置にマーカを配置することを特徴とするプログラム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記捕捉対象特定手段は、
捕捉対象検出処理として、前記捕捉方向に存在するオブジェクトを検出し、
前記マーカ配置制御手段は、
捕捉対象となるオブジェクトが検出された場合には、捕捉対象のオブジェクトに対応づけられた奥行き値に基づき捕捉点の奥行き値を決定することを特徴とするプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記捕捉対象特定手段は、
複数のオブジェクトの集合であるオブジェクト群に対してグループ設定を行い、捕捉対象検出処理として、前記捕捉方向に存在するオブジェクト群を検出し、
前記マーカ配置制御手段は、
捕捉対象となるオブジェクト群が検出された場合には、捕捉対象のオブジェクト群に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定することを特徴とするプログラム。
【請求項9】
仮想3次元空間の画像を生成するプログラムであって、
仮想3次元空間にオブジェクトを配置する仮想3次元空間設定手段と、
入力情報に基づき仮想3次元空間内において捕捉点が配置される捕捉方向を特定する捕捉方向特定手段と、
前記捕捉方向に基づき仮想3次元空間の捕捉対象を特定する捕捉対象特定手段と、
捕捉対象特定結果に基づき捕捉点の奥行き値を設定し、捕捉点にマーカを配置するマーカ配置制御手段と、
前記マーカを含むオブジェクトが配置された前記仮想3次元空間を仮想カメラから見た画を生成する画像生成手段と、してコンピュータを機能させ、
前記捕捉対象特定手段は、
複数のオブジェクトの集合であるオブジェクト群に対してグループ設定を行い、捕捉対象検出処理として、前記捕捉方向に存在するオブジェクト群を検出し、
前記マーカ配置制御手段は、
捕捉対象となるオブジェクト群が検出された場合には、捕捉対象のオブジェクト群に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定することを特徴とするプログラム。
【請求項10】
請求項1乃至9のいずれかにおいて、
前記捕捉対象特定手段は、
仮想3次元空間のオブジェクト又はオブジェクト群に対して第1のヒットチェック平面又は第1のヒットチェックボリュームを設定し、第1のヒットチェック平面又は第1のヒットチェックボリュームと、捕捉方向に基づきヒットチェックを行い、ヒットチェック結果に基づき捕捉対象となるオブジェクトを判断することを特徴とするプログラム。
【請求項11】
請求項1乃至10のいずれかにおいて、
前記捕捉対象特定手段は、
前記捕捉方向を、コントローラの一部に位置設定された仮想カメラと捕捉点を結ぶ方向として、捕捉方向に存在する捕捉対象を検出することを特徴とするプログラム。
【請求項12】
請求項1乃至11のいずれかにおいて、
前記仮想3次元空間の画像は、立体視画像であることを特徴とするプログラム。
【請求項13】
請求項12において、
前記画像生成手段は、
前記マーカを含む前記仮想3次元空間を第1の仮想カメラから見た第1の画像を生成する処理と、
前記マーカを含む前記仮想3次元空間を第2の仮想カメラから見た第2の画像を生成する処理と、を行い、
生成された第1の画像と第2の画像に基づき立体視画像を生成することを特徴とするプログラム。
【請求項14】
請求項12又は13において、
前記捕捉対象特定手段は、
前記立体視画像を観察するのに適した位置に設定された、仮想カメラと捕捉点を結ぶ方向を捕捉方向として、捕捉方向に存在する捕捉対象を検出することを特徴とするプログラム。
【請求項15】
請求項12乃至14のいずれかにおいて、
前記注目対象特定手段は、
前記注目方向を、第1の仮想カメラと第2の仮想カメラの中間点に配置された第3の仮想カメラと注目点を結ぶ方向として、注目方向に存在する注目対象を検出することを特徴とするプログラム。
【請求項16】
コンピュータにより読取可能な情報記憶媒体であって、請求項1〜14のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項17】
仮想3次元空間の画像を生成する画像生成システムであって、
仮想3次元空間にオブジェクトを配置する仮想3次元空間設定手段と、
入力情報に基づき仮想3次元空間内において捕捉点が配置される捕捉方向を特定する捕捉方向特定手段と、
前記捕捉方向に基づき仮想3次元空間の捕捉対象を特定する捕捉対象特定手段と、
捕捉対象特定結果に基づき捕捉点の奥行き値を設定し、捕捉点にマーカを配置するマーカ配置制御手段と、
前記マーカを含むオブジェクトが配置された前記仮想3次元空間を仮想カメラから見た画を生成する画像生成手段と、を含み、
前記捕捉対象特定手段は、
仮想3次元空間において、前記捕捉方向に存在する捕捉対象の有無を判定し、捕捉対象が存在する場合には捕捉対象を特定し、
前記マーカ配置制御手段は、
捕捉対象が存在する場合には、捕捉対象に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定し、
捕捉対象が存在しない場合の捕捉点の奥行き値として、捕捉方向において仮想カメラから最も離れた描画物の奥行き値または予め設定されている所定の奥行き値を設定するよう構成され、
捕捉対象が存在する状態から存在しない状態に変化した場合には、捕捉点の奥行き値を補正する奥行き値補正処理を行うことを特徴とするコンピュータを機能させることを特徴とする画像生成システム。
【請求項18】
仮想3次元空間の画像を生成する画像生成システムであって、
仮想3次元空間にオブジェクトを配置する仮想3次元空間設定手段と、
入力情報に基づき仮想3次元空間内において捕捉点が配置される捕捉方向を特定する捕捉方向特定手段と、
前記捕捉方向に基づき仮想3次元空間の捕捉対象を特定する捕捉対象特定手段と、
捕捉対象特定結果に基づき捕捉点の奥行き値を設定し、捕捉点にマーカを配置するマーカ配置制御手段と、
前記マーカを含むオブジェクトが配置された前記仮想3次元空間を仮想カメラから見た画を生成する画像生成手段と、を含み、
前記捕捉対象特定手段は、
前記捕捉方向の変化履歴に基づき捕捉方向の変化予測を行い、当該変化予測を加味して捕捉対象を特定し、
前記マーカ配置制御手段は、
捕捉対象が存在する場合には、捕捉対象に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定し、前記捕捉方向の決定された奥行き値に対応する位置にマーカを配置することを特徴とする画像生成システム。
【請求項19】
仮想3次元空間の画像を生成する画像生成システムであって、
仮想3次元空間にオブジェクトを配置する仮想3次元空間設定手段と、
入力情報に基づき仮想3次元空間内において捕捉点が配置される捕捉方向を特定する捕捉方向特定手段と、
前記捕捉方向に基づき仮想3次元空間の捕捉対象を特定する捕捉対象特定手段と、
捕捉対象特定結果に基づき捕捉点の奥行き値を設定し、捕捉点にマーカを配置するマーカ配置制御手段と、
前記マーカを含むオブジェクトが配置された前記仮想3次元空間を仮想カメラから見た画を生成する画像生成手段と、を含み、
前記捕捉対象特定手段は、
仮想3次元空間において、前記捕捉方向に存在する捕捉対象の有無を判定し、捕捉対象が存在する場合には捕捉対象を特定し、
前記捕捉対象特定手段は、
複数のオブジェクトの集合であるオブジェクト群に対してグループ設定を行い、捕捉対象検出処理として、前記捕捉方向に存在するオブジェク群を検出し、
前記マーカ配置制御手段は、
捕捉対象となるオブジェクト群が検出された場合には、捕捉対象のオブジェクト群に対応づけられた奥行き値に基づき捕捉点の奥行き値を決定することを特徴とする画像生成システム。

【図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

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図26】
image rotate


【公開番号】特開2012−59011(P2012−59011A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−201484(P2010−201484)
【出願日】平成22年9月8日(2010.9.8)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】