(57)【要約】    【構成】  ビデオゲーム装置１２はＣＰＵ３６を含み、ＣＰＵ３６はＧＰＵ４２と連携して、ゲーム画像を生成および表示する。ゲーム画像を生成するとき、プレイヤオブジェクトおよび背景オブジェクトは、３次元の仮想空間に配置される。このとき、プレイヤオブジェクトは、その水平断面形状がカメラ角度で決定される割合だけ小さくされる。この仮想空間は、視野空間に配置し直されるとともに、全オブジェクトについて、仮想空間の水平面に対して垂直な方向に上記割合だけ小さくされる。そして、視野空間が２次元平面に並行投影され、モニタ３４の縦方向に上記割合に基づいて拡大スケーリングされる。このため、プレイヤオブジェクトは元の形状で表示される。また、背景オブジェクトは、その水平断面形状のみが拡大表示され、仮想空間で真上から見た形状と同じ形状で表示される。    【効果】  操作し易いゲーム画像を表示することができる。【選択図】  図２
2005063266.tif 000002
【特許請求の範囲】
【請求項１】
操作手段の操作対象である対象オブジェクトと操作対象以外の複数の非対象オブジェクトとが配置された３次元の仮想空間の様子を、前記仮想空間における仮想カメラに基づく投影平面に投影変換し、かつ描画領域に描画することによって前記仮想カメラから見える画像を生成する処理をコンピュータに実行させる画像生成プログラムであって、
前記コンピュータを、
前記仮想カメラの投影平面上の第１方向または前記第１方向に直行する第２方向のいずれか一方向に対して、前記投影平面上に投影された前記非対象オブジェクトを拡大または縮小するための倍率を、前記仮想空間における水平平面に対して前記仮想カメラが向いている角度に基づいて算出する倍率算出手段、および
前記非対象オブジェクトを前記投影平面に並行投影変換し、かつ前記投影平面に投影された非対象オブジェクトを前記倍率に基づいて拡大または縮小して、前記非対象オブジェクトを前記描画領域に描画する投影描画手段として機能させる、画像生成プログラム。
【請求項２】
前記倍率算出手段が、前記投影平面に投影された前記非対象オブジェクトの水平断面形状が、前記仮想空間における前記非対象オブジェクトの投影変換前の水平断面形状と略同じ形状になるように、前記投影平面上の第１方向または第２方向に拡大または縮小するための倍率を、前記仮想カメラが向いている角度に基づいて算出するように、前記コンピュータを機能させる、請求項１記載の画像生成プログラム。
【請求項３】
前記投影描画手段に、前記仮想空間におけるクリッピング領域内のすべてのオブジェクトに対して拡大または縮小の処理を実行させ、
拡大または縮小の処理を実行したときに前記対象オブジェクトの形状が元の形状に戻るように、前記対象オブジェクトの水平断面形状を縮小または拡大して配置する配置手段として、前記コンピュータをさらに機能させる、請求項１または２記載の画像生成プログラム。
【請求項４】
前記投影描画手段が、前記並行投影変換し、かつ前記倍率に基づく拡大または縮小するための行列式を生成し、前記行列式に基づいて投影変換および拡大または縮小処理を行わせた後、前記描画領域に前記オブジェクトを描画するように、前記コンピュータを機能させる、請求項１ないし３のいずれかに記載の画像生成プログラム。
【請求項５】
前記仮想空間の水平平面に対する前記仮想カメラの向いている角度を検出するカメラ角度検出手段として、前記コンピュータをさらに機能させる、請求項１ないし４のいずれかに記載の画像生成プログラム。
【請求項６】
前記拡大する方向は前記投影平面に対する縦方向であり、前記縮小する方向は前記投影平面に対する横方向である、請求項１ないし５のいずれかに記載の画像生成プログラム。
【請求項７】
前記非対象オブジェクトは地形オブジェクトまたは建物オブジェクトを含む、請求項１ないし６のいずれかに記載の画像生成プログラム。
【請求項８】
操作手段の操作対象である対象オブジェクトと操作対象以外の複数の非対象オブジェクトとが配置された３次元の仮想空間の様子を、前記仮想空間における仮想カメラに基づく投影平面に投影変換し、かつ描画領域に描画することによって前記仮想カメラから見える画像を生成する画像生成装置であって、
前記仮想カメラの投影平面上の第１方向または前記第１方向に直行する第２方向のいずれか一方向に対して、前記投影平面上に投影された前記非対象オブジェクトを拡大または縮小するための倍率を、前記仮想空間における水平平面に対して前記仮想カメラが向いている角度に基づいて算出する倍率算出手段、および
前記非対象オブジェクトを前記投影平面に並行投影変換し、かつ前記投影平面に投影された非対象オブジェクトを前記倍率に基づいて拡大または縮小して、前記非対象オブジェクトを前記描画領域に描画する投影描画手段を備える、画像生成装置。
【請求項９】
前記倍率算出手段は、前記投影平面に投影された前記非対象オブジェクトの水平断面形状が、前記仮想空間における前記非対象オブジェクトの投影変換前の水平断面形状と略同じ形状になるように、前記投影平面上の第１方向または第２方向に拡大または縮小するための倍率を、前記仮想カメラが向いている角度に基づいて算出する、請求項８記載の画像生成装置。
【請求項１０】
前記投影描画手段は、前記仮想空間におけるクリッピング領域内のすべてのオブジェクトに対して拡大または縮小の処理を実行し、
前記投影描画手段によって拡大または縮小の処理が実行されたときに、前記対象オブジェクトの形状が元の形状に戻るように、前記対象オブジェクトの水平断面形状を縮小または拡大して配置する配置手段をさらに備える、請求項８または９記載の画像生成装置。
【請求項１１】
前記投影描画手段は、前記並行投影変換し、かつ前記倍率に基づく拡大または縮小するための行列式を生成し、前記行列式に基づいて投影変換および拡大または縮小の処理を実行した後、前記描画領域に前記オブジェクトを描画する、請求項８ないし１０のいずれかに記載の画像生成装置。
【請求項１２】
前記仮想空間の水平平面に対する前記仮想カメラの向いている角度を検出するカメラ角度検出手段をさらに備える、請求項８ないし１１のいずれかに記載の画像生成装置。
【請求項１３】
前記拡大する方向は前記投影平面に対する縦方向であり、前記縮小する方向は前記投影平面に対する横方向である、請求項８ないし１２のいずれかに記載の画像生成装置。
【請求項１４】
前記非対象オブジェクトは地形オブジェクトまたは建物オブジェクトを含む、請求項８ないし１３のいずれかに記載の画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は画像生成プログラムおよび画像生成装置に関し、特にたとえば、プレイヤオブジェクトのようなプレイヤの操作対象である対象オブジェクトと、地形オブジェクトや建物オブジェクトのような操作対象でない非対象オブジェクトとが配置された３次元の仮想空間の様子を、当該仮想空間に配置される仮想カメラに基づく投影平面に投影変換し、かつ描画領域に描画することにより、仮想カメラから見える画像を生成する、画像生成プログラムおよび画像生成装置に関する。
【背景技術】
【０００２】
この種の従来の画像生成装置の一例が特許文献１に開示されている。この特許文献１に開示されるスポーツゲーム装置では、フィールドの真上に置いた視点から見たフィールドの画像を生成するときに、上側にくるサイドラインを、予め通常よりも太くしておく。このフィールドを透視変換してフィールドを横から斜め下に見下ろした画像を得る。このようにして、画面の奥側に表示されるサイドラインがかすれたり途切れたりすることなく、適正に表示されていた。
【特許文献１】特開２００１−１４９６４９号公報[Ａ６３Ｆ  １３／００，１３／１０，１３／１２，Ｇ０６Ｔ  １７／００]
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このように、通常、カメラは３次元モデルを効果的に見せるために、斜めからのアングルが用いられ、実際には長方形のフィールドが台形に歪んで表示されることになる。また、３次元のゲーム空間におけるゲーム（３Ｄゲーム）を実現させるための３Ｄゲームプログラムまたは３Ｄゲーム装置においては、コントローラに設けられたスティックの傾斜方向が３Ｄの仮想空間におけるオブジェクトの移動方向に対応しており、たとえば、プレイヤがスティックを４５度前方に傾けることによって、３Ｄの仮想空間内におけるプレイヤオブジェクトが４５度の方向（斜め方向）へ移動するようにプログラミングされていることが一般的である。このような３Ｄゲームプログラム等では、３Ｄの仮想空間における仮想カメラから見た画像を透視投影法により透視変換して、テレビ画面に表示させているため、２次元の画像でありながら奥行き方向が反映される。このため、３Ｄゲームでは、テレビ画面で見たそのままの感覚でスティックの操作を行うと、プレイヤの思い通りにオブジェクトを移動させることができないという問題が生じていた。このため、たとえば、本来は長方形であるフィールドのライン際に沿ってオブジェクト（プレイヤオブジェクト）を移動させるには、ある程度の空間把握能力（２次元表示されている画面を見て、その状態を３次元の空間として把握できる能力）を必要とし、したがって、万人にとってその操作は簡単ではなかった。
【０００４】
具体的には、３Ｄ空間内に配置される立方体の地形オブジェクトの前に、直方体のキャラクタオブジェクト（プレイヤオブジェクト）が存在し、これを斜め（４５度）の方向から仮想カメラで撮影している場合には、図１５に示すようなゲーム画像がディスプレイ（テレビ画面）に表示される。この図１５から分かるように、３Ｄ空間において、地形オブジェクトの側面（壁）が４５度の方向に延びていても、テレビ画面上におけるその角度は異なり、キャラクタオブジェクトに対面する壁においては、４５度よりも小さい角度になっている。たとえば、仮想カメラの角度（仮想カメラと注視点とを結ぶ直線と、３Ｄ空間の水平面とがなす角度）が４５度である場合には、キャラクタオブジェクトに対面する地形オブジェクトの壁の角度は２２度程度で表示されてしまう。プレイヤはこのようなテレビ画面を見ながらキャラクタオブジェクトの移動等を操作するので、たとえば、当該壁に沿うようにキャラクタオブジェクトを移動させる場合には、スティックによって、２２度の方向を指示してしまう。その結果、４５度方向に延びる壁に沿って移動させるつもりがゲーム空間内においてキャラクタオブジェクトが２２度の方向に移動してしまい、テレビ画面上ではより狭い角度（たとえば、１０度）で移動するように表示されてしまっていた。
【０００５】
それゆえに、この発明の主たる目的は、オブジェクトの簡単な操作を実現できる、画像生成プログラムおよび画像生成装置を提供することである。
【０００６】
また、この発明の他の目的は、斜めのアングルから捕えた３次元空間であっても、真上から見下ろしているように空間を把握できる、画像生成プログラムおよび画像生成装置を提供することできる。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は以下の構成を採用した。なお、括弧内の参照符号や図番号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【０００８】
請求項１は、操作手段（２２；実施例で示す参照符号。以下同じ。）の操作対象である対象オブジェクト（８２）と操作対象以外の複数の非対象オブジェクト（８４）とが配置された３次元の仮想空間の様子を、仮想空間（８０；ワールド座標系）における仮想カメラ（８６）に基づく投影平面（８８）に投影変換し、かつ描画領域（４８）に描画することによって仮想カメラから見える画像を生成する処理をコンピュータ（３６，４２）に実行させる画像生成プログラムであって、コンピュータを倍率算出手段および投影描画手段として昨日させる。倍率算出手段（Ｓ２３）は、コンピュータを、仮想カメラの投影平面上の第１方向（投影平面の横方向）または第１方向に直行する第２方向（投影平面の縦方向）のいずれか一方向に対して、投影平面上に投影された非対象オブジェクトを拡大または縮小するための倍率を、仮想空間における水平平面（ワールド座標系におけるＸＺ平面）に対して仮想カメラが向いている角度に基づいて算出するように機能させる。投影描画手段（Ｓ１１）は、コンピュータを、非対象オブジェクトを投影平面に並行投影変換（Ｓ５１）し、かつ投影平面に投影された非対象オブジェクトを倍率に基づいて拡大または縮小して、非対象オブジェクトを描画領域に描画するように機能させる。
【０００９】
請求項１の発明によれば、仮想空間の水平平面に対して向いている仮想カメラの角度に基づいて算出した倍率によって非対象オブジェクトを拡大または縮小して描画領域に描画しているので、非対象オブジェクトだけを真上から見たような状態でたとえばテレビ画面に表示させることができる。
【００１０】
請求項２は請求項１に従属し、倍率算出手段が、投影平面に投影された非対象オブジェクトの水平断面形状が、仮想空間における非対象オブジェクトの投影変換前の水平断面形状と略同じ形状になるように、投影平面上の第１方向または第２方向に拡大または縮小するための倍率を、仮想カメラが向いている角度に基づいて算出するように、コンピュータを機能させる。
【００１１】
請求項２の発明によれば、当該非対象オブジェクトを、仮想空間において真上から見たような形状で表示することができる。言い換えれば、斜めアングルから捕えた３次元空間にであっても、真上から見下ろしたように空間を把握することができる。
【００１２】
請求項３は請求項１または２に従属し、投影描画手段に、仮想空間におけるクリッピング領域内のすべてのオブジェクトに対して拡大または縮小の処理を実行させ、拡大または縮小の処理を実行したときに対象オブジェクトの形状が元の形状に戻るように、対象オブジェクトの水平断面形状を縮小または拡大して配置する配置手段として、コンピュータをさらに機能させる。
【００１３】
請求項３の発明によれば、たとえば、投影描画手段（Ｓ９，Ｓ１１）が拡大の処理を実行するときには、対象オブジェクトの水平断面形状を縮小しておき、逆に投影描画手段が縮小の処理を実行するときには、対象オブジェクトの水平断面形状を拡大しておく。したがって、対象オブジェクトはそのままの形状で表示されることとなるので、ゲームのリアリティを必要以上に損なうなどの不都合はなく、ゲームへの興味を減退してしまうこともない。
【００１４】
請求項４は請求項１ないし３のいずれかに従属し、投影描画手段が、並行投影変換し、かつ倍率に基づく拡大または縮小するための行列式を生成し、行列式に基づいて投影変換および拡大または縮小処理を行わせた後、描画領域にオブジェクトを描画するように、コンピュータを機能させる。
【００１５】
請求項４の発明によれば、行列式に従って、投影変換および拡大または縮小の処理を実行するので、座標変換を簡単に行うことができる。
【００１６】
請求項５は請求項１ないし４のいずれかに従属し、仮想空間の水平平面に対する仮想カメラの向いている角度を検出するカメラ角度検出手段として、コンピュータをさらに機能させる。
【００１７】
請求項５の発明によれば、検出された角度に基づく倍率で、投影平面に投影されたオブジェクトが縮小されるので、たとえば、当該倍率の逆数で拡大すれば、対象オブジェクトの形状を元の形状に戻すことができる。
【００１８】
請求項６は請求項１ないし５のいずれかに従属し、拡大する方向は投影平面に対する縦方向であり、縮小する方向は投影平面に対する横方向である。
【００１９】
請求項６の発明によれば、仮想カメラによって斜め上方から見た非対象オブジェクトを、真上から見たように表示することができる。
【００２０】
請求項７は請求項１ないし６のいずれかに従属し、非対象オブジェクトは地形オブジェクトまたは建物オブジェクトを含む。
【００２１】
請求項７の発明によれば、形状を変化させるのは、地形オブジェクトまたは建物オブジェクトのような背景オブジェクトであり、プレイヤオブジェクトのようなキャラクタオブジェクトはそのままの形状で表示するようにするので、ゲームのリアリティを必要以上に損なうことがない。すなわち、ゲームへの興味減退を防止することができる。
【００２２】
請求項８は、操作手段の操作対象である対象オブジェクトと操作対象以外の複数の非対象オブジェクトとが配置された３次元の仮想空間の様子を、仮想空間における仮想カメラに基づく投影平面に投影変換し、かつ描画領域に描画することによって仮想カメラから見える画像を生成する画像生成装置である。この画像生成装置は、仮想カメラの投影平面上の第１方向または第１方向に直行する第２方向のいずれか一方向に対して、投影平面上に投影された非対象オブジェクトを拡大または縮小するための倍率を、仮想空間における水平平面に対して仮想カメラが向いている角度に基づいて算出する倍率算出手段、および非対象オブジェクトを投影平面に並行投影変換し、かつ投影平面に投影された非対象オブジェクトを倍率に基づいて拡大または縮小して、非対象オブジェクトを描画領域に描画する投影描画手段を備える。
【００２３】
請求項８の発明においても請求項１の発明と同様に、仮想空間の水平平面に対して向いている仮想カメラの角度に基づいて算出した倍率によって非対象オブジェクトを拡大または縮小して描画領域に描画しているので、非対象オブジェクトだけを真上から見たような状態でテレビ画面に表示させることができる。
【００２４】
請求項９は請求項８に従属し、倍率算出手段は、投影平面に投影された非対象オブジェクトの水平断面形状が、仮想空間における非対象オブジェクトの投影変換前の水平断面形状と略同じ形状になるように、投影平面上の第１方向または第２方向に拡大または縮小するための倍率を、仮想カメラが向いている角度に基づいて算出する。
【００２５】
請求項１０は請求項８または９に従属し、投影描画手段は、仮想空間におけるクリッピング領域内のすべてのオブジェクトに対して拡大または縮小の処理を実行し、投影描画手段によって拡大または縮小の処理が実行されたときに、対象オブジェクトの形状が元の形状に戻るように、対象オブジェクトの水平断面形状を縮小または拡大して配置する配置手段をさらに備える。
【００２６】
請求項１１は請求項８ないし１０のいずれかに従属し、投影描画手段は、並行投影変換し、かつ倍率に基づく拡大または縮小するための行列式を生成し、行列式に基づいて投影変換および拡大または縮小の処理を実行した後、描画領域にオブジェクトを描画する。
【００２７】
請求項１２は請求項８ないし１１のいずれかに従属し、仮想空間の水平平面に対する仮想カメラの向いている角度を検出するカメラ角度検出手段をさらに備える。
【００２８】
請求項１３は請求項８ないし１２のいずれかに従属し、拡大する方向は投影平面に対する縦方向であり、縮小する方向は投影平面に対する横方向である。
【００２９】
請求項１４は請求項８ないし１３のいずれかに従属し、非対象オブジェクトは地形オブジェクトまたは建物オブジェクトを含む。
【発明の効果】
【００３０】
この発明によれば、投影平面に投影された建物オブジェクトや壁オブジェクトのような非対象オブジェクトを仮想カメラの角度に基づく倍率で拡大または縮小するので、画面上の当該非対象オブジェクトが真上から見たように表示される。これにより、たとえばテレビ画面などに表示された非対象オブジェクトに沿って対象オブジェクトを移動させる場合、操作手段の操作による対象オブジェクトの移動方向とテレビ画面上の対象オブジェクトの移動方向とが一致するので、対象オブジェクトの操作を簡単に行うことができる。すなわち、操作性を向上できる。
【００３１】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００３２】
図１を参照して、この発明の一実施例である画像生成プログラムまたは画像生成装置を備えるビデオゲーム装置１２を含むビデオゲームシステム１０について説明する。ビデオゲーム装置１２には電源が与えられるが、この電源は、実施例では、一般的なＡＣアダプタ（図示せず）であってよい。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、家庭用電源を、ビデオゲーム装置１２を駆動するのに適した低いＤＣ電圧に変換する。他の実施例としては、電源として、バッテリが用いられてもよい。
【００３３】
ビデオゲーム装置１２は、略立方体のハウジング１４を含み、ハウジング１４の上端には光ディスクドライブ１６が設けられる。光ディスクドライブ１６には、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク１８が装着される。ハウジング１４の前面には複数の（実施例では４つの）コネクタ２０が設けられる。これらコネクタ２０は、ケーブル２４によって、コントローラ２２をビデオゲーム装置１２に接続するためのものであり、この実施例では最大４つのコントローラ２２をビデオゲーム装置１２に接続することができる。
【００３４】
コントローラ２２には、その上面，下面，或いは側面などに、操作部（操作スイッチ）２６が設けられる。操作部２６は、たとえば２つのアナログジョイスティック，１つの十字キー，複数のボタンスイッチ等を含む。１つのアナログジョイスティックは、スティックの傾き量と方向とによって、プレイヤオブジェクト（プレイヤがコントローラ２２によって操作可能な動画オブジェクト）の移動方向および／または移動速度ないし移動量などを入力するために用いられる。他のアナログジョイスティックは、傾斜方向によって、仮想カメラの移動を制御する。十字スイッチは、アナログジョイスティックに代えてプレイヤオブジェクトの移動方向を指示するために用いられる。ボタンスイッチは、プレイヤオブジェクトの動作を指示するために利用されたり、３次元画像の仮想カメラの視点を切り換えたり、プレイヤオブジェクトの移動スピード調節等に用いられる。ボタンスイッチは、さらに、たとえばメニュー選択やポインタあるいはカーソル移動を制御する。
【００３５】
なお、この実施例ではコントローラ２２がそれと一体的に設けられるケーブル２４によってビデオゲーム装置１２に接続された。しかしながら、コントローラ２２は、他の方法、たとえば電磁波（たとえば電波または赤外線）を介してワイヤレスで、ビデオゲーム装置１２に接続されてもよい。また、コントローラ２２の操作部２６の具体的構成は、もちろん実施例の構成に限られるものではなく、任意の変形が可能である。たとえば、アナログジョイスティックは１つだけでもよいし、用いられなくてもよい。十字スイッチは用いられなくてもよい。
【００３６】
ビデオゲーム装置１２のハウジング１４の前面であり、コネクタ２０の下方には、１つまたは複数の（この実施例では２つの）メモリスロット２８が設けられる。このメモリスロット２８にはメモリカード３０が挿入される。メモリカード３０は、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（たとえばゲームの結果）を保存（セーブ）しておいたりするために利用される。
【００３７】
ビデオゲーム装置１２のハウジング１４の後面には、ＡＶケーブルコネクタ（図示せず）が設けられ、そのコネクタを用いて、ＡＶケーブル３２を通してビデオゲーム装置１２にモニタ３４を接続する。このモニタ３４は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２は、ビデオゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ（モニタ）３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声、または２スピーカであってもサラウンド効果を出すことが可能な場合は、サラウンド音声を含むゲーム音声が出力される。
【００３８】
このゲームシステム１０において、ユーザまたはゲームプレイヤがゲーム（または他のアプリケーション）をプレイするために、ユーザはまずビデオゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）をストアしている適宜の光ディスク１８を選択し、その光ディスク１８をビデオゲーム装置１２のディスクドライブ１６にローディングする。応じて、ビデオゲーム装置１２がその光ディスク１８にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはビデオゲーム装置１２に入力を与えるためにコントローラ２２を操作する。たとえば、操作部２６のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。操作部２６の他のものを動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３次元（３Ｄ）のゲーム世界におけるユーザの視点（カメラ位置）を変化させることができる。
【００３９】
図２は図１実施例のビデオゲームシステム１０の電気的な構成を示すブロック図である。ビデオゲーム装置１２には、中央処理ユニット（以下、「ＣＰＵ」という。）３６が設けられる。このＣＰＵ３６は、コンピュータ或いはプロセサなどとも呼ばれ、ビデオゲーム装置１２の全体的な制御を担当する。ＣＰＵ３６ないしコンピュータは、ゲームプロセサとして機能し、このＣＰＵ３６には、バスを介して、メモリコントローラ３８が結合される。メモリコントローラ３８は主として、ＣＰＵ３６の制御の下で、バスを介して結合されるメインメモリ４０の書込みや読出しを制御する。このメモリコントローラ３８にはＧＰＵ(Graphics Processing Unit:グラフィックス処理装置) ４２が結合される。
【００４０】
ＧＰＵ４２は、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、メモリコントローラ３８を介してＣＰＵ３６からのグラフィクスコマンド(graphics command ：作画命令) を受け、そのコマンドに従って、ジオメトリユニット４４およびレンダリングユニット４６によって３次元（３Ｄ）ゲーム画像を生成する。つまり、ジオメトリユニット４４は、３次元座標系の各種オブジェクトやオブジェクト（複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも３つの頂点座標によって定義される多角形平面をいう。）の回転，移動，変形等の座標演算処理を行う。レンダリングユニット４６は、各種オブジェクトの各ポリゴンにテクスチャ（Texture ：模様画像）を貼り付けるなどの画像生成処理を施す。したがって、ＧＰＵ４２によって、ゲーム画面上に表示すべき３Ｄ画像データが作成され、その画像データがフレームバッファ４８内に記憶される。
【００４１】
なお、ＧＰＵ４２が作画コマンドを実行するにあたって必要なデータ（プリミティブまたはポリゴンやテクスチャ等）は、ＧＰＵ４２がメモリコントローラ３８を介して、メインメモリ４０から入手する。
【００４２】
フレームバッファ４８は、たとえばラスタスキャンモニタ３４の１フレーム分の画像データを描画（蓄積）しておくためのメモリであり、ＧＰＵ４２によって１フレーム毎に書き換えられる。具体的には、フレームバッファ４８は、１画素（ピクセル）毎に、画像の色情報を順序立てて記憶している。ここで、色情報は、Ｒ，Ｇ，Ｂ，Ａについてのデータであり、たとえば、８ビットのＲ（赤）データ、８ビットのＧ（緑）データ、８ビットのＢ（青）データおよび８ビットのＡ（アルファ）データである。なお、Ａデータは、マスク（マット画像）についてのデータである。後述のビデオＩ／Ｆ５８がメモリコントローラ３８を介してフレームバッファ４８のデータを読み出すことによって、モニタ３４の画面上に３Ｄゲーム画像が表示される。
【００４３】
また、Ｚバッファ５０は、フレームバッファ４８に対応する画素数×１画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ４８の各記憶位置に対応するドットの奥行き情報または奥行きデータ（Ｚ値）を記憶するものである。
【００４４】
なお、フレームバッファ４８およびＺバッファ５０は、ともにメインメモリ４０の一部を用いて構成されてもよい。
【００４５】
メモリコントローラ３８はまた、ＤＳＰ(Digital Signal Processor)５２を介して、ＡＲＡＭ５４に結合される。したがって、メモリコントローラ３８は、メインメモリ４０だけでなく、サブメモリとしてのＡＲＡＭ５４の書込みおよび／または読出しを制御する。
【００４６】
ＤＳＰ５２は、サウンドプロセサとして働き、メインメモリ４０に記憶されたサウンドデータ４０４ｂ（図３参照）を用いたり、ＡＲＡＭ５４に書き込まれている音波形データ（図示せず）を用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
【００４７】
メモリコントローラ３８は、さらに、バスによって、各インタフェース（Ｉ／Ｆ）５６，５８，６０，６２および６４に結合される。コントローラＩ／Ｆ５６は、コントローラ２２のためのインタフェースであり、コントローラ２２の操作部２６の操作信号またはデータを、メモリコントローラ３８を通してＣＰＵ３６に与える。ビデオＩ／Ｆ５８は、フレームバッファ４８にアクセスし、ＧＰＵ４２で作成した画像データを読み出して、画像信号または画像データ（ディジタルＲＧＢＡピクセル値）をＡＶケーブル３２（図１）を介してモニタ３４に与える。
【００４８】
外部メモリＩ／Ｆ６０は、ビデオゲーム装置１２の前面に挿入されるメモリカード３０（図１）をメモリコントローラ３８に連係させる。それによって、メモリコントローラ３８を介して、ＣＰＵ３６がこのメモリカード３０にデータを書込み、またはメモリカード３０からデータを読み出すことができる。オーディオＩ／Ｆ６２は、メモリコントローラ３８を通してＤＳＰ５２から与えられるオーディオデータまたは光ディスク１８から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号（音声信号）をモニタ３４のスピーカ３４ａに与える。
【００４９】
なお、ステレオ音声の場合には、スピーカ３４ａは、少なくとも、左右１つずつ設けられる。また、サラウンド処理することで、左右２つのスピーカのみであっても後方から音が発生しているように音を聞かせることも可能である。
【００５０】
そして、ディスクＩ／Ｆ６４は、そのディスクドライブ１６をメモリコントローラ３８に結合し、したがって、ＣＰＵ３６がディスクドライブ１６を制御する。このディスクドライブ１６によって光ディスク１８から読み出されたプログラムデータやテクスチャデータ等が、ＣＰＵ３６の制御の下で、メインメモリ４０に書き込まれる。
【００５１】
図３にはメインメモリ４０のメモリマップが示される。メインメモリ４０は、プログラム記憶領域４０２およびデータ記憶領域４０４を含む。プログラム記憶領域４０２には、ゲームメイン処理プログラム４０２ａ，画像生成プログラム４０２ｂおよび画像表示プログラム４０２ｃなどのプログラムが記憶される。
【００５２】
ゲームメイン処理プログラム４０２ａは、ビデオゲーム装置１２によって実行されるゲームについてのメインルーチンを処理するプログラムである。画像生成プログラム４０２ｂは、当該ゲームに登場するプレイヤオブジェクトや敵（対戦相手）オブジェクトなどの動画オブジェクト、そのような動画オブジェクトによって使用されるアイテムのオブジェクト（アイテムオブジェクト）および当該ゲームの背景オブジェクト（地形オブジェクト、壁オブジェクト、建物オブジェクトおよび床オブジェクトなど）などのゲーム画像を生成するプログラムである。以下、この実施例においては、上述の動画オブジェクトとアイテムオブジェクトとをまとめて「キャラクタオブジェクト」と呼ぶことがある。画像表示プログラム４０２ｃは、画像生成プログラム４０２ｂによって生成されたゲーム画像をモニタ３４に表示するためのプログラムである。
【００５３】
また、データ記憶領域４０４には、画像データ４０４ａ，サウンドデータ４０４ｂおよび行列式データ４０４ｃなどのデータが記憶される。画像データ４０４ａは、上述したようなゲーム画像を生成するためのポリゴンデータやテクスチャデータのようなデータである。具体的には、当該ゲームに登場するキャラクタオブジェクトの画像データおよび背景オブジェクトの画像データである。サウンドデータ４０４ｂは、ゲーム中に演奏される音楽（ＢＧＭ）や効果音のような音（音楽）についてのデータである。行列式データ４０４ｃは、後述するように、画像生成処理において生成される行列式（モデル行列、カメラ行列および射影行列）についてのデータである。
【００５４】
なお、図示は省略するが、メインメモリ４０には、当該ゲームの進行に従って発生するゲームデータやフラグデータなども記憶される。
【００５５】
たとえば、図４（Ａ）に示すように、３Ｄの仮想空間８０においては、コントローラ２２（コントロール手段２６）の操作に従って、移動等の任意のアクションを制御されるプレイヤオブジェクトのようなキャラクタオブジェクト８２が配置される。また、コントローラ２２の操作を伴わないで、仮想空間８０の所定位置に、地形オブジェクト、壁オブジェクト、建物オブジェクトおよび床オブジェクト等の背景オブジェクト８４が配置される。このような仮想空間８０の所定位置には、さらに、仮想カメラ８６が配置され、この仮想カメラ８６によって撮影された画像（ゲーム画像）がモニタ３４に表示される。
【００５６】
このような３Ｄの仮想ゲームでは、３Ｄの仮想空間８０が２次元画像でモニタ３４に表示される。このため、３次元物体を２次元平面（スクリーン）に投影して表示する必要がある。また、３次元空間内に配置された物体を眺めた場合には、視点に近い物体ほど大きく、遠い物体ほど小さく見えるため、スクリーンに投影する場合には、透視投影されるのが一般的である。これにより、パースのかかったゲーム画像がモニタ３４に表示される。たとえば、図４(Ａ)の仮想カメラ８６で撮影されたゲーム画像は、図４（Ｂ）に示すように、モニタ３４に表示される。この図４（Ｂ）から分かるように、仮想空間８０に配置される正方形の板状の背景オブジェクト８４は、画面表示する場合に、台形形状に変形される。
【００５７】
プレイヤは、このゲーム画像を見ながらコントローラ２２を操作するが、通常、コントローラ２２に設けられるジョイスティックの傾斜方向は、３Ｄの仮想空間８０（ワールド座標系）の方向に対応しているため、キャラクタオブジェクト８２を背景オブジェクト８４の側面に沿って、画面の奥に向けて移動させる場合には、ジョイスティックを真上方向に傾ければよい。
【００５８】
しかし、ゲーム画像では、背景オブジェクト８４が台形形状で表示されるため、プレイヤは、台形形状の背景オブジェクト８４の斜辺に沿うように、キャラクタオブジェクト８２を移動させるべく、ジョイスティックを斜め上方に傾けてしまうことがある。すると、キャラクタオブジェクト８２は、背景オブジェクト８４の内部に向けて移動してしまい、プレイヤの操作方向（ジョイスティックの傾斜方向）と画面上のキャラクタオブジェクト８２の移動方向とが一致しない。このように、３Ｄの仮想ゲームでは、キャラクタオブジェクト８２を移動させるには、ある程度の空間把握能力（２次元表示されている画面を見て、その状態を３次元空間として把握できる）を要する。
【００５９】
そこで、この実施例では、空間把握能力を要しなくても、簡単にキャラクタオブジェクト８２を移動させることができるゲーム画像をモニタ３４に表示するようにしてある。以下、その内容について説明する。
【００６０】
まず、図５ないし図７を参照して、この実施例におけるゲーム画像の生成方法の考え方について説明することにする。図５に示すように、この実施例では、仮想カメラ８６によって撮影されたゲーム画像すなわち仮想カメラ８６から見たゲーム画像は、２次元平面（スクリーン）８８に並行投影（直交投影或いは正射影とも呼ばれる。）される。ただし、図５は、図４（Ａ）に示した仮想空間８０を視野空間に配置し直した状態を示しており、また、簡単のため、キャラクタオブジェクト８２を省略してある。このとき、スクリーン８８に投影されたオブジェクト（投影オブジェクト）８４´の長さＸ´は、元の背景オブジェクト８４の長さＸよりも短くされる。図５に示す例では、投影オブジェクト８４´の長さＸ´は、背景オブジェクト８４の長さＸのｃｏｓ（９０−θ）倍となる。ただし、θは仮想カメラ８６の角度（以下、「カメラ角度」という。）である。
【００６１】
つまり、図６（Ａ）に示すように、スクリーン８８には、長方形に変形された（縦方向につぶされた）背景オブジェクト８４の画像が表示される。ここで、この並行投影されたゲーム画像をそのままテレビモニタ３４に表示した場合であっても、コントローラ２２の操作方向と画面上のキャラクタオブジェクト８２の移動方向とは一致する。しかし、並行投影した際に、背景オブジェクト８４の縦方向の長さが短くされるため、プレイヤがコントローラ２２を操作してキャラクタオブジェクト８２を背景オブジェクト８４に沿ってその周囲を移動させた場合には、キャラクタオブジェクト８２が縦の辺に沿って移動する速度と横の辺に沿って移動する速度とに違いが生じてしまい、プレイヤは違和感を覚えてしまう。これは、３Ｄの仮想空間８０に配置される背景オブジェクト８４は正方形であり、その辺の長さはすべて同じだからである。
【００６２】
したがって、この実施例では、単に並行投影するだけでなく、さらに、スクリーン８８に投影された背景オブジェクト８４の形状を変形させて、そのような違和感が生じるのを回避してある。つまり、ｃｏｓ（９０−θ）倍された背景オブジェクト８４を元の大きさ（形状）と同じ或いは略同じに戻すようにしてある。具体的には、図６(Ａ)に示すように、スクリーン８８の長さＨからそのスクリーン８８の中央を基準に、長さｃｏｓ（９０−θ）Ｈに相当する部分だけ抜き出し、抜き出した部分が長さＨとなるように拡大して、描画バッファ（フレームバッファ４８）に描画するようにしてある。すると、背景オブジェクト８４は、図７に示すように、３Ｄの仮想空間８０における大きさと同じ或いは略同じ大きさであり、真上から見たように、モニタ３４に表示される。
【００６３】
このように、通常より小さな範囲を描画領域として指定する（抜き出す）ことにより、それが通常と同じビューポート設定で同じ範囲のフレームバッファ４８に対応させられると、結果として拡大されたように見えるのである。
【００６４】
ただし、プレイヤオブジェクトのように、コントローラ２２によってその移動等のアクションを制御されるキャラクタオブジェクト８２（操作対象のオブジェクト）については、その形状を変化させると、ゲームのリアリティを損なう恐れがあるため、その形状は変形させずに、図６（Ｂ）に示すように、背景オブジェクト８４の拡大に伴って、その位置のみを移動させるようにしてある。
【００６５】
また、敵オブジェクトのようなキャラクタオブジェクト８２は、ゲームプログラムに従って移動等の任意のアクションを制御されるため、コントローラ２２の操作対象ではないが、これらを変形して表示した場合にも、ゲームのリアリティを損ない、ゲーム自体への興味を減退させる恐れがあるため、非操作対象から除外してある。つまり、敵オブジェクトのようなキャラクタオブジェクト８２についても、プレイヤオブジェクトと同様に、その形状を変化させないようにしてある。
【００６６】
詳しく説明すると、レンダリングでは、３Ｄモデル（キャラクタオブジェクトおよび背景オブジェクト等）のモデルデータについてのローカル座標データがモデル行列に従って仮想空間８０に配置され、次にカメラ行列に従って視野空間に配置し直され、そして、射影行列に従って２次元に投影され、最後にビューポート設定により２次元座標系がフレームバッファ４８の座標系（アドレス）に変換されて色が塗られる。
【００６７】
この実施例では、このような処理のうち、モデル行列、カメラ行列および射影行列の行列生成時に、通常とは異なる計算方法を採用することにより、上述したような拡大スケーリング（ｓｃａｌｅ倍）が行われるようにする。以下、図面を参照しながら、具体的に説明する。
【００６８】
図８(Ａ)に示すように、３次元の仮想空間８０に、立方体形状のキャラクタオブジェクト８２と同じく立方体形状の背景オブジェクト８４を通常のモデル行列で配置し、それらを撮影するように、カメラ角度θを４５度に設定した仮想カメラ８６を配置する。ただし、ここでは、簡単に説明するために、キャラクタオブジェクト８２および背景オブジェクト８４の各辺の長さを「１」としてある。
【００６９】
次に、図８（Ａ）に示す仮想空間８０が、通常のカメラ行列に従って計算処理が施されると、図８（Ｂ）に示すように、仮想カメラ８６を中心とした視野空間に配置し直される。そして、通常の射影行列に従って視野空間が２次元平面（スクリーン８８）に並行投影される。このとき、図８(Ａ)における、キャラクタオブジェクト８２および背景オブジェクト８４の上面（仮想空間８０の地面に対して水平な面（辺））および側面（仮想空間８０の地面に対して垂直な面（辺））の長さがｃｏｓθ倍（ここでは、θ＝４５°であるため、１／√２倍）される。ただし、簡単のため、√２≒１．４とし、１／√２≒０．７としてある。以下、同様である。
【００７０】
ここで、上述したように、拡大スケーリングだけを行うとすると、上面だけでなく、側面も拡大されてしまう。かかる場合には、全体がテレビモニタ３４の縦方向に延びて表示されるだけであり、通常の並行投影を行った画面とほとんど変わらない。そこで、上面のみに拡大スケーリングを施すべく、オブジェクト（キャラクタオブジェクト８２および背景オブジェクト８４）が垂直方向につぶれて（１／ｓｃａｌｅ倍）見えるようなカメラ行列を生成するようにしてある。これにより、画面表示されるキャラクタオブジェクト８２および背景オブジェクト８４は、その上面（水平方向）にのみ拡大スケーリングが施され、側面（垂直方向）には拡大スケーリングが施されていないように見えるのである。
【００７１】
ただし、キャラクタオブジェクト８２については、形の歪みを完全に無くすために、カメラ行列による打消しだけでは補えない水平方向についての拡大スケーリングを打ち消すようなモデル行列が生成される。つまり、水平方向にだけつぶれて（１／ｓｃａｌｅ倍）見えるようなモデル行列が生成される。
【００７２】
具体的には、モデル行列は、背景オブジェクト８４についてのモデル行列（数１）と、キャラクタオブジェクト８２についてのモデル行列（数２）とが生成される。ローカル空間（仮想空間８０のうち仮想カメラ８６で撮影可能な範囲についての空間）の原点位置を持ってきたい仮想空間８０上の座標を（Ｐｘ，Ｐｙ，Ｐｚ）とし、ローカル空間のＸ軸を向けたい仮想空間８０上での単位ベクトルを（Ｘｘ，Ｘｙ，Ｘｚ）とし、ローカル空間のＹ軸を向けたい仮想空間８０上の単位ベクトルを（Ｙｘ，Ｙｙ，Ｙｚ）とし、ローカル空間のＺ軸を向けたい仮想空間８０上の単位ベクトルを（Ｚｘ，Ｚｙ，Ｚｚ）とすると、通常のモデル行列は数１で示される。この数１で示されるモデル行列が背景オブジェクト８４を仮想空間８０に配置するためのモデル行列である。
【００７３】
【数１】
2005063266.tif 000003
【００７４】
また、上述したように、キャラクタオブジェクト８２については、形の歪みを無くすようにするため、水平面と平行であり、テレビモニタ３４画面の縦方向となる方向（ｎｘ，０，ｎｚ）（；長さ１の単位ベクトル）に形をつぶして（１／ｓｃａｌｅ倍）配置するように、数２に示すようなモデル行列が生成される。この数２に示すモデル行列は、数１に示すモデル行列に基づいて生成される。
【００７５】
【数２】
2005063266.tif 000004
【００７６】
このようなモデル行列に従って、キャラクタオブジェクト８２および背景オブジェクト８４を３次元の仮想空間８０に配置すると、図９（Ａ）に示すように、キャラクタオブジェクト８２については、水平方向にだけつぶれたように表示される。ここで、キャラクタオブジェクト８２を水平方向にだけつぶれたように表示させる割合は、仮想カメラ８６のカメラ角度θによって決定される。上述したように、カメラ角度θは４５度に設定されるため、キャラクタオブジェクト８２は水平方向に１／√２倍される。
【００７７】
次に、仮想空間８０は、図９（Ｂ）に示すように、仮想カメラ８６を中心とする、視野空間に配置し直される。仮想カメラ８６が配置されている仮想空間８０上の座標を（Ｐｘ，Ｐｙ，Ｐｚ）とし、注視点から仮想カメラ８６へ向く仮想空間８０上の単位ベクトルを（Ｚｘ，Ｚｙ，Ｚｚ）とし、仮想カメラ８６の上方向が向いている仮想空間８０上の単位ベクトルを（Ｙｘ，Ｙｙ，Ｙｚ）とし、仮想カメラ８６の背後から見て仮想カメラ８６の右方向における仮想空間８０上の単位ベクトルを（Ｘｘ，Ｘｙ，Ｘｚ）とすると、通常のカメラ行列は数３で示される。
【００７８】
【数３】
2005063266.tif 000005
【００７９】
ただし、上述したように、この実施例では、仮想空間８０に配置されたキャラクタオブジェクト８２および背景オブジェクト８４が垂直方向（０，１，０）に１／ｓｃａｌｅ倍されて、視野空間に配置し直すようにしてあるため、数４に示すようなカメラ行列に変換される。
【００８０】
【数４】
2005063266.tif 000006
【００８１】
このようなカメラ行列に従って視野空間に配置し直されると、図９（Ｂ）に示すように、キャラクタオブジェクト８２および背景オブジェクト８４の側面（垂直面）が１／√２倍されて、その辺の長さが「０．７」にされる。
【００８２】
そして、図１０（Ａ）に示すように、視野空間がスクリーン８８に並行投影され、さらに、拡大スケーリングが施される。ここで、スクリーン８８に投影する視野空間の左端を「ｌｅｆｔ」、右端を「ｒｉｇｈｔ」、上端を「ｔｏｐ」、下端を「ｂｏｔｔｏｍ」、手前端を「ｎｅａｒ」、そして、奥端を「ｆａｒ」とすると、通常の射影行列は数５で示される。
【００８３】
【数５】
2005063266.tif 000007
【００８４】
ただし、この実施例では、視野空間の上下幅を１／ｓｃａｌｅ倍に指定するようにしてあるため、数５の射影行列は数６に示すように変換される。
【００８５】
【数６】
2005063266.tif 000008
【００８６】
この数６に従って並行投影を行うことにより、並行投影の処理と同時に、拡大スケーリング処理も実行されるのである。
【００８７】
なお、射影行列については、ハードウェアの座標系の違いにより、数６に示した場合とは異なる場合がある。たとえば、ＯｐｅｎＧＬなどの３次元グラフィックス・ライブラリでは、数６の３行目の要素がそれぞれ、０，０，−２／（ｆａｒ−ｎｅａｒ），−（ｆａｒ＋ｎｅａｒ）／（ｆａｒ−ｎｅａｒ）となる。
【００８８】
したがって、図１０（Ａ）に示すように、並行投影されると、すべてのオブジェクトはその上面および側面が１／√２倍され、その後、拡大スケーリングが施されることにより、その上面および側面が√２倍される。したがって、キャラクタオブジェクト８２については、並行投影により、その上面および側面についての辺の長さが約「０．５」にされ、その後、拡大スケーリングにより、各辺の長さが約「０．７」にされる。一方、背景オブジェクト８４については、並行投影により、その上面についての辺の長さが約「０．７」にされ、その側面についての辺の長さが約「０．５」にされる。その後、拡大スケーリングにより、背景オブジェクト８４の上面についての辺の長さが約「１」にされ、その側面についての辺の長さが約「０．７」にされる。
【００８９】
このように、並行投影および拡大スケーリングが施されるので、背景オブジェクト８４の上面だけが拡大されたようなゲーム画像が生成されるのである。したがって、たとえば、図１５に示したゲーム画像の元となる３次元の仮想ゲーム空間を、透視投影によらず、この実施例に従うモデリング、並行投影および拡大スケーリングを施すようにすれば、図１０（Ｂ）に示すようなゲーム画像がテレビモニタ３４に表示されるのである。この図１０（Ｂ）から分かるように、背景オブジェクト８４としての地形オブジェクトについては、その上面を真上から見たように表示される。このため、ゲーム画像に表示される背景オブジェクトの傾き方向とコントローラ２２の操作方向とが一致或いはほぼ一致するため、たとえば、キャラクタオブジェクト８２をその周囲に沿って移動させる場合であっても、操作し易い。
【００９０】
また、図８〜図１０に示した例では、背景オブジェクト８４を立方体形状としてあるため、その上面だけが拡大されるように説明した。しかし、土管のような背景オブジェクト８４では、仮想カメラ８６から見た（視野空間における）画像は、図１１（Ａ）のように示され、土管の上面（端面）だけでなく内面の一部も見えてしまう。このため、上述したように、この視野空間を並行投影し、拡大スケーリングを行うと、図１１（Ｂ）に示すような画像が生成される。つまり、土管の上面と内面の一部とが縦方向に拡大され、円形形状にされる。すなわち、投影後の背景オブジェクト８４の水平方向における断面形状（水平断面形状）が、投影前における３次元空間に配置された背景オブジェクト８４の水平断面形状に一致するように、拡大スケーリングを施していると言える。したがって、背景オブジェクト８４を真上から見たように表示することができるのである。
【００９１】
図１２は、図２に示したＣＰＵ３６のゲーム処理を示すフロー図である。この図１２を参照して、ＣＰＵ３６がゲーム処理を開始すると、ステップＳ１で、地面、建物等を形成するための背景オブジェクト８４を読み出し、仮想空間８０である３次元のワールド座標系に配置する。次に、ステップＳ３では、コントローラ２２の操作対象のキャラクタオブジェクト８２すなわちプレイヤオブジェクトおよび仮想カメラ８６を読み出し、同じくワールド座標系に配置する。
【００９２】
続くステップＳ５〜Ｓ１１に従ってゲーム画像の生成処理（画像生成処理）を実行する。まず、ステップＳ５では、キャラクタオブジェクト８２に対する移動指示があるかどうかを判断する。つまり、ＣＰＵ３６は、コントローラＩ／Ｆ５６に設けられるコントロールバッファ（図示せず）に、ジョイスティックからの操作信号（傾き方向、傾き量）が保持されているかどうかを判断する。ステップＳ５で“ＮＯ”であれば、つまりキャラクタオブジェクト８２に対する移動指示がなければ、そのままステップＳ９に移行する。一方、ステップＳ５で“ＹＥＳ”であれば、つまりキャラクタオブジェクト８２に対する移動指示があれば、ステップＳ７で、コントローラ２２からの入力に応じて、キャラクタオブジェクト８２および仮想カメラ８６の位置座標を算出する。つまり、ステップＳ７においては、コントロールバッファに保持されたジョイスティックの傾き方向および傾き量に応じてキャラクタオブジェクト８２の移動後の位置を算出する。また、仮想カメラ８６の位置は、キャラクタオブジェクト８２の足元或いはその近傍に設けられる注視点を向くように、移動後のキャラクタオブジェクト８２の位置に基づいて算出される。
【００９３】
ステップＳ９では、後述する行列生成処理（図１３参照）を実行し、ステップＳ１１では、後述するジオメトリ・レンダリング処理（図１４参照）を実行し、ステップＳ１３で、ゲーム画像を表示する。そして、ステップＳ１５では、ゲーム終了かどうかを判断する。ステップＳ１５で“ＮＯ”であれば、つまりゲーム終了でなければ、ステップＳ５に戻ってゲーム処理を続行する。一方、ステップＳ１５で“ＹＥＳ”であれば、つまりゲーム終了であれば、そのままゲーム処理を終了する。
【００９４】
なお、図１２においては、省略してあるが、ゲーム処理においては、ゲーム画像の表示処理だけでなく、ゲームメイン処理を実行したり、敵オブジェクトの移動等を制御したり、ゲームの進行に従って発生するゲームデータを更新したりするなどの処理も実行される。また、ゲームの進行に従って発生されたゲームデータは、所定のイベントやプレイヤの指示に従ってメモリカード３０に記憶（セーブ）される。
【００９５】
図１３に示すように、ＣＰＵ３６が行列生成処理を開始すると、ステップＳ２１で、仮想カメラ８６のカメラ角度θを読み出す（検出する）。なお、カメラ角度θのデフォルト値は４５度であるが、プレイヤがコントローラ２２によってカメラ角度θを変更することができるため、このステップＳ２１において検出するようにしてある。
【００９６】
続くステップＳ２３では、仮想カメラ８６のカメラ角度θに基づいて、投影後の水平断面形状が投影前のオブジェクトの水平断面形状（真上から見た形状）と略同じになるようなスケーリング倍率（ｓｃａｌｅ＝１／ｃｏｓ（９０−θ））を算出する。次に、ステップＳ２５では、ワールド座標系の水平面に平行であり、かつ奥行き方向、言い換えると、テレビモニタ３４画面の縦方向であり、ワールド座標系の水平面に平行な方向に、ｓｃａｌｅ倍されて見えるような並行投影による投影変換行列すなわち数６に示した射影行列を生成する。続いて、ステップＳ２７では、ワールド座標系に配置される全オブジェクトが垂直方向に１／ｓｃａｌｅ倍されて見えるようなカメラ行列、すなわち数４に示したカメラ行列を生成する。
【００９７】
そして、ステップＳ２９では、対象オブジェクトがキャラクタオブジェクト８２かどうかを判断する。ステップＳ２９で“ＹＥＳ”であれば、つまり対象オブジェクトがキャラクタオブジェクト８２であれば、ステップＳ３１で、テレビモニタ３４画面の縦方向に相当する方向（仮想空間における水平平面と平行な方向のみ）に、形状だけを１／ｓｃａｌｅ倍にするためのモデル行列、すなわち数２に示したモデル行列を生成して、ステップＳ３５に進む。一方、ステップＳ２９で“ＮＯ”であれば、つまり対象オブジェクトが背景オブジェクト８４であれば、ステップＳ３３で、位置も形もそのまま配置するためのモデル行列、すなわち数１に示したモデル行列を生成して、ステップＳ３５に進む。
【００９８】
なお、図示は省略したが、ステップＳ３１およびＳ３３で生成されたモデル行列のデータ、ステップＳ２５で生成されたカメラ行列のデータおよびステップＳ２３で生成された射影行列のデータは、いずれもデータ記憶領域４０４に一旦記憶される。
【００９９】
ステップＳ３５では、すべてのオブジェクトについてモデル行列を生成したかどうかを判断する。ステップＳ３５で“ＮＯ”であれば、つまりモデル行列を生成していないオブジェクトが存在すれば、そのままステップＳ２９に戻る。一方、ステップＳ３５で“ＹＥＳ”であれば、つまりすべてのオブジェクトについてモデル行列を生成すれば、ステップＳ３７で、すべての行列およびオブジェクトを構成するポリゴンの座標データ等をＧＰＵ４２に与えて、行列生成処理をリターンする。
【０１００】
また、図１４に示すように、ＣＰＵ３６の指示の下、ＧＰＵ４２がジオメトリ・レンダリング処理を開始すると、ステップＳ４１で、キャラクタオブジェクト８２の形状を縮小する。つまり、数２に示したようなモデル行列に従って、キャラクタオブジェクト（キャラクタオブジェクト８２）の形状を縮小する。つまり、１／ｓｃａｌｅ倍する。続くステップＳ４３では、キャラクタオブジェクト８２の配置位置を更新する。つまり、ステップＳ７において算出された、移動後のキャラクタオブジェクト８２の位置にキャラクタオブジェクト８２を移動させる。ただし、敵オブジェクトのようなゲームプログラムに従って移動を制御されるキャラクタオブジェクトについては、当該ゲームプログラムに従って計算された位置に移動される。
【０１０１】
なお、この実施例では、理解を容易にするためにステップＳ４１およびＳ４３が順番に実行されるように記載したが、実際のハードウェアによっては単一の行列式によって同時に実行される。
【０１０２】
次のステップＳ４５では、すべてのオブジェクトを仮想カメラ座標系に変換する。つまり、３次元の仮想空間８０を、数４に示したようなカメラ行列に従って、視野空間に変換する。そして、ステップＳ４７で、クリッピングおよび隠面処理を施す。詳細な説明は省略するが、クリッピングでは、仮想カメラ８６によって撮影可能な範囲からはみ出している部分が切り取られる。また、隠面処理では、仮想カメラ８６から見えない部分の線分や面が消去される。
【０１０３】
続くステップＳ４９では、光源を所定位置に配置したり、当該光源の光強度を設定したりするなどの光源処理を実行する。次に、ステップＳ５１で、投影平面（スクリーン８８）への並行行列生成処理を実行し、ステップＳ５３で、投影平面における描画領域を指定する。つまり、図６（Ａ）に示したように、ｓｃａｌｅ倍率に応じた描画範囲を指定しているのである。ただし、上述したように、この実施例では、投影行列に変形を加えているため、ＧＰＵ４２は、数６に示したような投影行列を用いて、ステップＳ５１およびステップＳ５３の処理を一度に実行しているのである。これにより、背景オブジェクト８４についてのみ、上述したような拡大スケーリングが施される。そして、ステップＳ５５で、指定された描画領域すなわちフレームバッファ４８にゲーム画像を描画する描画処理を実行して、ジオメトリ・レンダリング処理をリターンする。
【０１０４】
この実施例によれば、並行投影によりゲーム画像を生成するとともに、キャラクタオブジェクト以外の背景オブジェクトについて拡大スケーリングを施して、背景オブジェクトを真上から見たように表示するので、テレビ画面などに表示された非対象オブジェクトに沿って対象オブジェクトを移動させる場合、コントローラの操作によるオブジェクトの移動方向と、ゲーム画面上における当該オブジェクトの移動方向とを一致させることができる。つまり、操作が簡単である。
【０１０５】
また、拡大スケーリングすることにより、背景オブジェクトの奥行き方向の長さを正確に表現することができるので、操作上の違和感が生じることもない。
【０１０６】
さらに、背景オブジェクト以外のキャラクタオブジェクトについては、拡大スケーリングによる変形が生じないように手当てしてあるため、ゲーム世界のリアリティが必要以上に損なわれることがない。したがって、ゲームに対する興味の減退を防止することができる。
【０１０７】
なお、上述の実施例では、背景オブジェクトをモニタ画面の縦方向に拡大スケーリングするようにしたが、モニタ画面の横方向に縮小するようにしてもよい。かかる場合には、横方向に１／ｓｃａｌｅ倍するようにすれば、背景オブジェクトを真上方向から見たように表示することができる。
【０１０８】
また、上述の実施例では、すべてのオブジェクトに対して拡大スケーリングを施すので、描画時にキャラクタオブジェクトが間延びした画像になることを防止するために、予めキャラクタオブジェクトの水平方向に縮小するようにした。しかし、キャラクタオブジェクトだけ通常の並行投影変換を行い、他のオブジェクトに対してのみ拡大スケーリングを施すようにしてもよい。
【０１０９】
さらに、上述の実施例では、ビデオゲーム装置とモニタとが個別に設けられたゲームシステムについて説明したが、モニタとゲーム装置とが一体に設けられる携帯型のゲーム装置、ゲーム機能を備える携帯電話機、ＰＤＡやラップトップ型のＰＣのようなコンピュータにも適用できることは言うまでもない。
【図面の簡単な説明】
【０１１０】
【図１】この発明の一実施例のゲームシステムを示す図解図である。
【図２】図１に示すビデオゲーム装置の電気的な構成を示すブロック図である。
【図３】図２に示すメインメモリのメモリマップを示す図解図である。
【図４】キャラクタオブジェクト、背景オブジェクトおよび仮想カメラが配置される仮想空間の一例およびそのゲーム画像を示す図解図である。
【図５】仮想空間を視野空間に配置し直した背景オブジェクトを並行投影した状態を図解図である。
【図６】スクリーンに並行投影された背景オブジェクトおよびキャラクタオブジェクトを描画バッファに書き込んだ状態を示す図解図である。
【図７】背景オブジェクトの上面のみに拡大スケーリングを施した場合のゲーム画像の一例を示す図解図である。
【図８】キャラクタオブジェクト、背景オブジェクトおよび仮想カメラが配置される仮想空間の他の一例およびその仮想空間を通常のカメラ行列に従って配置し直した視野空間を示す図解図である。
【図９】キャラクタオブジェクト、背景オブジェクトおよび仮想カメラが配置される仮想空間のその他の一例およびその仮想空間を全オブジェクトの側面が短くされるように計算方法を変えたカメラ行列に従って配置し直した視野空間を示す図解図である。
【図１０】図９に示した視野空間を並行投影し、拡大スケーリングを行った状態を示す図解図およびゲーム画像のその他の一例を示す図解図である。
【図１１】仮想カメラから見た背景オブジェクトの画像とその画像を並行投影するとともに拡大スケーリングを行った画像を示す図解図である。
【図１２】図２に示すＣＰＵのゲーム処理を示すフロー図である。
【図１３】図２に示すＣＰＵの行列生成処理を示すフロー図である。
【図１４】図２に示すＧＰＵのジオメトリ・レンダリング処理を示すフロー図である。
【図１５】従来のゲーム装置によって表示されるゲーム画像の一例を示す図解図である。
【符号の説明】
【０１１１】
１０  …ゲームシステム
１２  …ゲーム装置
１８  …光ディスク
２２  …コントローラ
３４  …モニタ
３４ａ  …スピーカ
３６  …ＣＰＵ
３８  …メモリコントローラ
４０  …メインメモリ
４２  …ＧＰＵ
５２  …ＤＳＰ
５４  …ＡＲＡＭ
６２  …オーディオＩ／Ｆ
【図１】
2005063266.tif 000009
【図２】
2005063266.tif 000010
【図３】
2005063266.tif 000011
【図４】
2005063266.tif 000012
【図５】
2005063266.tif 000013
【図６】
2005063266.tif 000014
【図７】
2005063266.tif 000015
【図８】
2005063266.tif 000016
【図９】
2005063266.tif 000017
【図１０】
2005063266.tif 000018
【図１１】
2005063266.tif 000019
【図１２】
2005063266.tif 000020
【図１３】
2005063266.tif 000021
【図１４】
2005063266.tif 000022
【図１５】
2005063266.tif 000023