JP2004013621A - ゲームシステム及びゲームプログラム - Google Patents

ゲームシステム及びゲームプログラム Download PDF

Info

Publication number
JP2004013621A
JP2004013621A JP2002167654A JP2002167654A JP2004013621A JP 2004013621 A JP2004013621 A JP 2004013621A JP 2002167654 A JP2002167654 A JP 2002167654A JP 2002167654 A JP2002167654 A JP 2002167654A JP 2004013621 A JP2004013621 A JP 2004013621A
Authority
JP
Japan
Prior art keywords
posture
shadow
shadow volume
volume data
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002167654A
Other languages
English (en)
Other versions
JP4082937B2 (ja
Inventor
Satoru Osako
尾迫 悟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2002167654A priority Critical patent/JP4082937B2/ja
Priority to US10/408,368 priority patent/US6971957B2/en
Priority to GB0308860A priority patent/GB2389501B/en
Priority to DE10320112.2A priority patent/DE10320112B4/de
Publication of JP2004013621A publication Critical patent/JP2004013621A/ja
Application granted granted Critical
Publication of JP4082937B2 publication Critical patent/JP4082937B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • A63F13/10
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6646Methods for processing data by generating or executing the game program for rendering three dimensional images for the computation and display of the shadow of an object or character

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

【課題】ゲーム装置においてシャドウボリュームを使って影を描画するときに、シャドウボリュームの設定にかかる処理負担を軽減すると同時に、影を落とすオブジェクトの姿勢に応じたよりリアルな影を描画すること。
【解決手段】DVD−ROM300には、影を落とすオブジェクトのいくつかの姿勢にそれぞれ対応する複数のシャドウボリュームデータが予め記録されており、CPU10は、必要に応じてこれらシャドウボリュームデータに基づいた補間を行うことによってオブジェクトの姿勢に応じたシャドウボリュームを設定する。GPU11は、この設定されたシャドウボリュームに基づいて、ステンシルバッファ16を用いた影領域の判定を行い、この判定結果に基づいてカラーバッファ14に格納されている各ピクセルの輝度情報を更新する。
【選択図】    図2

Description

【0001】
【発明の属する技術分野】
本発明は、ゲームシステム及びゲームプログラムに関し、より特定的には、3次元のゲーム空間におけるオブジェクトの影をシャドウボリュームを利用して表示するゲームシステム及びゲームプログラムに関する。
【0002】
【従来の技術】
従来より、シャドウボリュームを使用して3次元仮想空間の影を描画する方法が知られている。従来のシャドウボリュームを使った影の描画方法には、大きく分けて以下に示す2種類の方法がある。
【0003】
第1の方法は、影を落とすオブジェクトの全てのポリゴンについて、その頂点を光線方向に延ばしてシャドウボリュームを設定する方法である。第2の方法は、影を落とすオブジェクトの輪郭を抽出して、その輪郭を光線方向に延ばしてシャドウボリュームを設定する方法である。
【0004】
しかしながら上記第1の方法では、影を落とすオブジェクトを構成する全てのポリゴンの全てのエッジに対して新たなポリゴンが生成されるため、シャドウボリュームを構成するポリゴンの数が多くなる。その結果、大きなメモリ空間が必要となり、また描画処理の負担も大きくなる。一方、上記第2の方法では、シャドウボリュームを構成するポリゴンの数は第1の方法に比べて少なくなるものの、影を落とすオブジェクトの輪郭を抽出するための処理が必要となり、その処理負担が大きくなる。
【0005】
このように上記の方法では、影の描画処理の負担が大きく、大きな処理時間が必要となるので、リアルタイムで仮想空間を描画する必要のあるゲームシステムで採用することは実質上不可能であった。
【0006】
そこで従来のゲームシステムでは、影の描画処理にかかる処理負担を軽減するために、例えば予め用意しておいた影用のポリゴンを用意しておき、これを適当な位置に配置して描画することにより影を描画している。しかしながらこのような方法では、影の落ちるオブジェクトに凹凸がある場合、正確な影を描画することができないという問題があった。
【0007】
ところで、前述のようにシャドウボリュームを使用すれば、影の落ちるオブジェクトの凹凸に応じた正確な影を描画することができる。そこで、シャドウボリュームデータを予め固定的に設定しておき、ゲーム装置で適宜このデータを読み出して使用するようにすれば、リアルタイムにシャドウボリュームデータを計算する処理が不要となるので、影の描画処理の負担が少ない。
【0008】
【発明が解決しようとする課題】
しかしながら、上述の解決方法では、シャドウボリュームの形状が予め決められているため、影を落とすオブジェクトの姿勢が回転等により変化した場合に不自然な影が描画されてしまうという問題がある。例えば図14に示すように、三角柱のオブジェクト(影を落とすオブジェクト)が、ある軸(ここではZ軸)を中心に回転した場合、回転に応じて影が変形するのが自然であるのに、上述の解決方法では、ゲーム空間の影は全く変化せず、不自然な影となってしまう。
【0009】
それゆえに本発明の目的は、ゲームシステムにおいてシャドウボリュームを用いて影を描画するときに、シャドウボリュームの設定にかかる処理負担を軽減すると同時に、影を落とすオブジェクトの姿勢に応じたよりリアルな影を描画することのできるゲームシステム及びゲームプログラムを提供することである。
【0010】
【課題を解決するための手段および発明の効果】
この発明は、上記の目的を達成するために、次のように構成される。
すなわち、請求項1に係る発明によれば、ゲームシステムは、3次元のゲーム空間におけるオブジェクトの影をシャドウボリュームを利用して表示するものであって、姿勢変化手段(実施例との対応関係を示せば、例えばステップS2およびS4を実行するCPU10;以下、単にステップ番号のみを示す)と、第1シャドウボリュームデータ記憶手段(DVD−ROM300またはメインメモリ17等の本体RAM)と、第2シャドウボリュームデータ記憶手段(DVD−ROM300またはメインメモリ17等の本体RAM)と、シャドウボリューム設定手段(S12)と、影描画手段(S13)とを備える。姿勢変化手段は、例えば、プレイヤの操作入力,他のオブジェクトとの接触,地面の傾斜等の影響を計算することによって、オブジェクトの姿勢を変化させる。第1シャドウボリュームデータ記憶手段は、オブジェクトの第1姿勢(例えばオブジェクト座標系のZ軸周りの回転角度が0°である状態。図5における0°の状態。)に対応する第1シャドウボリュームデータ(図5における0°のときのシャドウボリュームデータ)を予め記憶する。第2シャドウボリュームデータ記憶手段は、オブジェクトの第1姿勢とは異なる第2姿勢(例えばオブジェクト座標系のZ軸周りの回転角度が30°である状態。図5における例えば30°の状態。)に対応する第2シャドウボリュームデータ(図5における例えば30°のときのシャドウボリュームデータ)を予め記憶する。シャドウボリューム設定手段は、姿勢変化手段によって変化するオブジェクトのある時点の姿勢が第1姿勢と等しいときにシャドウボリュームを第1シャドウボリュームデータに基づいて設定し、オブジェクトのこのある時点の姿勢が第2姿勢と等しいときにシャドウボリュームを第2シャドウボリュームデータに基づいて設定する。影描画手段は、シャドウボリューム設定手段によって設定されたシャドウボリュームに基づいてある時点におけるオブジェクトの影を描画する。これにより、予め記憶されたシャドウボリュームデータを利用するので、シャドウボリュームの設定にかかる処理負担を軽減すると同時に、異なる2つの姿勢に対するシャドウボリュームデータを予め記憶するので、各姿勢に応じた影を表示することが可能となり、影を落とすオブジェクトの姿勢および影が落ちるオブジェクトの凹凸に応じたよりリアルな影を描画することができる。なお、括弧内の参照符号等は、本発明の理解を助けるために示したものであって、本発明を何ら限定するものではない。
【0011】
また、請求項2に係る発明によれば、シャドウボリューム設定手段は、ある時点におけるオブジェクトの姿勢が第1姿勢および第2姿勢のいずれとも異なるときに、第1シャドウボリュームデータおよび第2シャドウボリュームデータに基づく補間によってシャドウボリュームを設定する(S123)ことを特徴とする。これにより、予め用意しておくべきシャドウボリュームデータの個数を低減しつつ、多数の姿勢に応じた影を表示することが可能となる。
【0012】
また、請求項3に係る発明によれば、補間が線形補間であることを特徴とする。これにより、補間をより簡単に行うことができる。
【0013】
また、請求項4に係る発明によれば、第2シャドウボリュームデータ(図8における例えば30°のときのシャドウボリュームデータ)が、第1シャドウボリュームデータ(図8における0°のときのシャドウボリュームデータ)を基準としたオフセットデータであることを特徴とする。これにより、第2シャドウボリュームデータのデータ量を少なくすることができる。また、請求項2に従属する請求項4に係る発明によれば、オフセットデータを利用して補間計算をすることができるので、補間計算処理の負担が少ない。
【0014】
また、請求項5に係る発明によれば、姿勢変化手段は、オブジェクト座標系の所定軸(図5におけるZ軸;オブジェクト座標系のZ軸であり、言い換えるとオブジェクトの進行方向の軸)周りにオブジェクトを回転させ、第2姿勢は、オブジェクトを第1姿勢から所定軸周りにある角度だけ回転させたときの姿勢であり、シャドウボリューム設定手段は、所定軸周りのオブジェクトの回転角度に基づいてシャドウボリュームを設定することを特徴とする。これにより、オブジェクトが回転したときに、その回転に応じて影の表示を変化させることができる。
【0015】
また、請求項6に係る発明によれば、シャドウボリューム設定手段は、ある時点におけるオブジェクトの姿勢が第1姿勢(図13における例えば45°の状態)と所定の位置関係の第3姿勢(図13における例えば135°の状態)であるときに、この第3姿勢に対応するシャドウボリュームデータとして第1シャドウボリュームデータをそのまま、あるいは適宜変更して利用してシャドウボリュームを設定することを特徴とする。これにより、ある1つのシャドウボリュームデータを、複数の異なる姿勢に対応するシャドウボリュームを設定する際に共通に利用することができるので、予め用意しておくべきシャドウボリュームデータの個数を低減することができる。
【0016】
また、請求項7に係る発明によれば、オブジェクトの形状が所定軸を含むある平面(例えば、オブジェクト座標系のX軸をオブジェクトの右方向,Y軸を上方向,Z軸を進行方向に取った場合の、YZ平面)に対して対称であることを特徴とする。これにより、第1姿勢と第3姿勢についてシャドウボリュームデータを共通にしても、表示される影に違和感がない。
【0017】
また、請求項8に係る発明によれば、第3姿勢(図13における例えば−135°の状態)は、ワールド座標系においてオブジェクトを第1姿勢(図13における例えば45°の状態)から所定軸周りに180°回転させたときの姿勢であることを特徴とする。
【0018】
また、請求項9に係る発明によれば、ゲームプログラムは、3次元のゲーム空間におけるオブジェクトの影をシャドウボリュームを利用して表示するためにゲーム装置のコンピュータに実行されるものであって、このコンピュータに、姿勢変化ステップ(S2およびS4)と、第1シャドウボリュームデータ読み出しステップ(例えばS122)と、第2シャドウボリュームデータ読み出しステップ(例えばS123)と、シャドウボリューム設定ステップ(S124)と、影描画ステップ(S13)とを実行させる。姿勢変化ステップは、オブジェクトの姿勢を変化させる。第1シャドウボリュームデータ読み出しステップは、オブジェクトの第1姿勢(例えばオブジェクト座標系のZ軸周りの回転角度が0°である状態)に対応する予め記憶された第1シャドウボリュームデータを読み出す。第2シャドウボリュームデータ読み出しステップは、オブジェクトの第1姿勢とは異なる第2姿勢(例えばオブジェクト座標系のZ軸周りの回転角度が30°である状態)に対応する予め記憶された第2シャドウボリュームデータを読み出す。シャドウボリューム設定ステップは、姿勢変化ステップで変化するオブジェクトのある時点の姿勢が第1姿勢と等しいときにシャドウボリュームを第1シャドウボリュームデータに基づいて設定し、オブジェクトのこのある時点の姿勢が第2姿勢と等しいときにシャドウボリュームを第2シャドウボリュームデータに基づいて設定する。影描画ステップは、シャドウボリューム設定ステップで設定されたシャドウボリュームに基づいてある時点におけるオブジェクトの影を描画する。これにより、予め記憶されたシャドウボリュームデータを利用するので、シャドウボリュームの設定にかかる処理負担を軽減すると同時に、異なる2つの姿勢に対するシャドウボリュームデータを予め記憶するので、各姿勢に応じた影を表示することが可能となり、影を落とすオブジェクトの姿勢および影が落ちるオブジェクトの凹凸に応じたよりリアルな影を描画することができる。
【0019】
また、請求項10に係る発明によれば、シャドウボリューム設定ステップは、ある時点におけるオブジェクトの姿勢が第1姿勢および第2姿勢のいずれとも異なるときに、第1シャドウボリュームデータおよび第2シャドウボリュームデータに基づく補間によってシャドウボリュームを設定する(S123)ことを特徴とする。
【0020】
また、請求項11に係る発明によれば、補間が線形補間であることを特徴とする。
【0021】
また、請求項12に係る発明によれば、第2シャドウボリュームデータが、第1シャドウボリュームデータを基準としたオフセットデータであることを特徴とする。
【0022】
また、請求項13に係る発明によれば、姿勢変化ステップは、オブジェクトを、オブジェクト座標系の所定軸周りに回転させ、第2姿勢は、オブジェクトを第1姿勢から所定軸周りにある角度だけ回転させたときの姿勢であり、シャドウボリューム設定ステップは、所定軸周りのオブジェクトの回転角度に基づいてシャドウボリュームを設定することを特徴とする。
【0023】
また、請求項14に係る発明によれば、シャドウボリューム設定ステップは、ある時点におけるオブジェクトの姿勢が第1姿勢と所定の位置関係の第3姿勢であるときに、この第3姿勢に対応するシャドウボリュームデータとして第1シャドウボリュームデータをそのまま、あるいは適宜変更して利用してシャドウボリュームを設定することを特徴とする。
【0024】
また、請求項15に係る発明によれば、オブジェクトの形状が所定軸を含むある平面に対して対称であることを特徴とする。
【0025】
また、請求項16に係る発明によれば、第3姿勢は、ワールド座標系においてオブジェクトを第1姿勢から所定軸周りに180°回転させたときの姿勢であることを特徴とする。
【0026】
【発明の実施の形態】
図1は、本発明の一実施形態に係るゲームシステムの構成を示す外観図であり、図2はそのブロック図である。図1、図2に示すように、ゲームシステムは、ゲーム機本体100、DVD−ROM300、コントローラ200によって構成され、スピーカ600およびTVモニタ500に接続される。また、必要に応じて外部メモリカード400が追加される。DVD−ROM300および外部メモリカード400は、ゲーム機本体100に着脱自在に装着される。コントローラ200は、通信ケーブルを介して、ゲーム機本体100に設けられた複数(図1では4つ)のコントローラポート用コネクタのいずれかに接続される。TVモニタ500およびスピーカ600は、AVケーブル等によって接続される。なお、ゲーム機本体100とコントローラ200との通信は無線通信であってもよい。以下、図2を参照しながら、ゲームシステムの各部についてより詳細に説明する。
【0027】
DVD−ROM300は、ゲームプログラムやキャラクタデータ等のゲームに関するデータを固定的に記憶している。プレイヤがゲームを行う場合、DVD−ROM300はゲーム機本体100に装着される。なお、ゲームプログラム等を記憶する手段として、DVD−ROM300の代わりに例えばCD−ROM、MO、メモリカード、ROMカートリッジ等の外部記憶媒体を用いてもよい。
【0028】
外部メモリカード400は、例えばフラッシュメモリ等の書き換え可能な記憶媒体によって構成され、例えばゲームにおけるセーブデータ等のデータを記録する。
【0029】
ゲーム機本体100は、DVD−ROM300に記録されているゲームプログラムを読み出し、ゲーム処理を行う。
【0030】
コントローラ200は、プレイヤがゲーム操作に関する入力を行うための入力装置であり、複数の操作スイッチを有する。コントローラ200は、プレイヤによる操作スイッチの押圧等に応じて操作データをゲーム機本体100に出力する。
【0031】
TVモニタ500は、ゲーム機本体100から出力された画像データを画面に表示する。なお、スピーカ600は、典型的にはTVモニタ500に内蔵されており、ゲーム機本体100から出力されたゲーム中の音声を出力する。
【0032】
次に、ゲーム機本体100の構成について説明する。図2において、ゲーム機本体100には、CPU10およびそれに接続されるメモリコントローラ20が設けられる。さらにゲーム機本体100において、メモリコントローラ20は、グラフィックスプロセッシングユニット(GPU)11と、メインメモリ17と、DSP18と、各種インターフェース(I/F)21〜24,26とに接続される。メモリコントローラ20は、これら各構成要素間のデータ転送を制御する。
【0033】
ゲーム開始の際、まず、DVDドライブ25は、ゲーム機本体100に装着されたDVD−ROM300を駆動する。DVD−ROM300に記憶されているゲームプログラムは、DVDディスクI/F26およびメモリコントローラ20を介して、メインメモリ17に読み込まれる。メインメモリ17上のプログラムをCPU10が実行することによってゲームが開始される。ゲーム開始後、プレイヤは、操作スイッチを用いてコントローラ200に対してゲーム操作等の入力を行う。プレイヤによる入力に従い、コントローラ200は、操作データをゲーム機本体100に出力する。コントローラ200から出力される操作データは、コントローラI/F21およびメモリコントローラ20を介してCPU10に入力される。CPU10は、入力された操作データに応じてゲーム処理を行う。ゲーム処理における画像データ生成等に際して、GPU11やDSP18が用いられる。また、サブメモリ19は、DSP18が所定の処理を行う際に用いられる。
【0034】
GPU11は、ジオメトリユニット12およびレンダリングユニット13を含み、画像処理専用のメモリに接続されている。この画像処理専用メモリは、例えばカラーバッファ14やZバッファ15やステンシルバッファ16として利用される。ジオメトリユニット12は、仮想三次元空間であるゲーム空間に置かれた物体や図形に関する立体モデル(例えばポリゴンで構成されるオブジェクト)の座標についての演算処理を行うものであり、例えば立体モデルの回転・拡大縮小・変形や、ワールド座標系の座標から視点座標系やスクリーン座標系の座標への変換を行うものである。レンダリングユニット13は、所定のテクスチャに基づいて、スクリーン座標に投影された立体モデルについて各ピクセルごとのカラーデータ(RGBデータ)をカラーバッファ14に書き込むことによって、ゲーム画像を生成するためのものである。また、カラーバッファ14は、レンダリングユニット13によって生成されたゲーム画像データ(RGBデータ)を保持するために確保されたメモリ領域である。Zバッファ15は、3次元の視点座標から2次元のスクリーン座標に変換する際に失われる視点からの奥行情報を保持するために確保されたメモリ領域である。ステンシルバッファ16は、後述するシャドウボリュームを用いた影領域の判定を行うために確保されたメモリ領域である。GPU11は、これらバッファを用いてTVモニタ500に表示すべき画像データを生成し、メモリコントローラ20およびビデオI/F22を介して画像データをTVモニタ500に適宜出力する。なお、ゲームプログラム実行時にCPU10において生成される音声データは、メモリコントローラ20からオーディオI/F24を介してスピーカ600に出力される。なお本実施形態では、画像処理専用のメモリを別途設けたハードウェア構成としたが、これに限らず例えばメインメモリ17の一部を画像処理用のメモリとして利用する方式(UMA:Unified Memory Architecture)を使うようにしてもよい。
【0035】
以下、本実施形態の動作について説明する。
本実施形態では、影を落とすオブジェクトに対して予め複数のシャドウボリュームがシャドウボリュームデータとして用意されている。シャドウボリュームとは、あるオブジェクトが影を落とす空間、言い換えると、あるオブジェクトによって光源からの光が遮られるような空間を規定するものである。このシャドウボリュームを用いることにより、複雑な地形に落ちる影を正確に表示することができる。以下、このシャドウボリュームを用いた影描画処理について図面を参照して簡単に説明する。
【0036】
図3に示すように、地形オブジェクトにおいて、影を落とすオブジェクトのシャドウボリュームと交わる領域が影ができる領域(以下、影領域と称す)となる。なお図3では平行光の場合を示しているが、点光源である場合も同様である。影領域は、ステンシルバッファを用いることにより簡単に判定することができる。ステンシルバッファを用いて影領域を判定する一般的な手法としては、図4に示すように、まず(a)Zバッファを参照しながらシャドウボリュームの表面を描画する(ただし、このときカラーバッファの各ピクセルの色情報を更新する代わりに、ステンシルバッファの各ピクセルの値をインクリメントする)。それから(b)Zバッファを参照しながらシャドウボリュームの裏面を描画する(ただし、このときカラーバッファの各ピクセルの色情報を更新する代わりに、ステンシルバッファの各ピクセルの値をデクリメントする)。その結果、ステンシルバッファの各ピクセルの値は、初期値を“0”とした場合、影領域の部分は“1”になり、それ以外の部分は“0”となる。このステンシルバッファの各ピクセルの値に基づいてカラーバッファの色情報が変更される。例えば、地形オブジェクトのテクスチャに基づいてカラーバッファの各ピクセルに格納されている輝度情報のうち、影領域に対応するものについてはその値が低減される。その結果、リアルな影が表示されることとなる。
【0037】
本実施形態では、影を落とすオブジェクトの姿勢に応じた複数のシャドウボリュームデータが予め用意されており、これらシャドウボリュームデータに基づいてシャドウボリュームが設定される。この設定されたシャドウボリュームを使用してゲーム空間における影が描画される。
【0038】
本実施形態では、一例として、影を落とすオブジェクト(ここでは三角柱)がゲーム空間における所定の軸周り(ここではオブジェクト座標系におけるZ軸周りとする。以下、「オブジェクト座標系におけるZ軸」のことを単に「Z軸」と呼ぶことがある。)に基準位置から+90°〜−90°の範囲で回転する場合について説明する。実際のゲームでいえば、例えばカートレースゲームにおいてカートがその進行方向ベクトル周りに回転、つまり横転するような場合である(なお、本実施例では、進行方向を向いて右回りを回転のプラス方向としている)。オブジェクトの姿勢は、Z軸周りの回転角度により表される。
【0039】
本実施形態では、影を落とすオブジェクトに対して、オブジェクトの基本姿勢を0°とすると、オブジェクトのZ軸周りの回転角度がそれぞれ0°,30°,60°,90°,−30°,−60°,−90°である場合に対応する7つのシャドウボリュームデータが予め用意されている。図5に、オブジェクトのZ軸周りの回転角度が0°,30°,60°,90°である場合に対応するシャドウボリュームおよびゲーム空間における影をそれぞれ示す。また図6に、オブジェクトのZ軸周りの回転角度が0°,−30°,−60°,−90°である場合に対応するシャドウボリュームおよびゲーム空間における影をそれぞれ示す。ただし、図5および図6に示した影は、地形オブジェクト(影の落ちるオブジェクト)が平面である場合のものである。
前述の図14に示す方法では、オブジェクトが回転してもゲーム空間の影が変化しないものであったが、本発明によれば、図5および図6に示すように、オブジェクトの回転角度に応じてシャドウボリュームが異なるので、オブジェクトの回転角度に応じたリアルな影が生成される。
【0040】
予め用意しておくシャドウボリュームデータとしては、オブジェクトの形状に基づいて忠実に作成されたものであっても構わないし、オブジェクトの形状の大まかな凹凸に基づいて作成されたものであっても構わない。
【0041】
シャドウボリュームデータは、例えばDVD−ROM300に予め格納されており(回転角度が0°,30°,60°,90°,−30°,−60°,−90°に対応するシャドウボリュームデータが全て格納されている)、DVDドライブ25によって適宜ゲーム装置のメモリに読み出されてシャドウボリューム設定処理に利用される。なお、本実施例では、7つの回転角度(0°,30°,60°,90°,−30°,−60°,−90°)についてのシャドウボリュームデータをDVD−ROM300に予め格納するものとしたが、少なくとも2つの回転角度についてのシャドウボリュームデータが格納されていればよい。図7に、あるオブジェクト(ここではオブジェクトA)に対して予め用意されているシャドウボリュームデータを示す。図7において、オブジェクトAに対するシャドウボリュームデータとして、基本シャドウボリュームデータと変形オフセットデータが予め用意されている。基本シャドウボリュームデータは、オブジェクトAのZ軸周りの回転角度が0°である場合のシャドウボリュームの形状を各頂点座標(オブジェクト座標系における座標)により規定するものである。変形オフセットデータは、オブジェクトAのZ軸周りの回転角度が30°,60°,90°,−30°,−60°,−90°である場合のシャドウボリュームの形状を基本シャドウボリュームデータを基準としたオフセットデータによりそれぞれ規定するものである。例えば、基本シャドウボリュームデータの頂点Aの座標が(Xa,Ya,Za)であって、回転角度が30°であるときの頂点Aのオフセット値が各座標について(ΔXa30,ΔYa30,ΔZa30)である場合、回転角度が30°であるときの頂点Aの座標は(Xa+ΔXa30,Ya+ΔYa30,Za+ΔZa30)となる。
【0042】
図8に、変形オフセットデータと実際のシャドウボリュームの形状との関係を具体的に示す。基本シャドウボリュームの頂点Bの座標は(0,10,2)である。回転角度が30°であるときのシャドウボリュームの頂点Bの座標は、基本シャドウボリュームの頂点Bの座標(0,10,2)の各成分に、回転角度が30°であるときの頂点Bのオフセット値ΔB30=(1,0,0)の各成分をそれぞれ加算したもの、つまり(1,10,2)となる。また、回転角度が60°であるときのシャドウボリュームの頂点Bの座標は、基本シャドウボリュームの頂点Bの座標(0,10,2)の各成分に、回転角度が60°であるときの頂点Bのオフセット値ΔB60=(3,0,0)の各成分をそれぞれ加算したもの、つまり(3,10,2)となる。また、回転角度が90°であるときのシャドウボリュームの頂点Bの座標は、基本シャドウボリュームの頂点Bの座標(0,10,2)の各成分に、回転角度が90°であるときの頂点Bのオフセット値ΔB90=(4,0,0)の各成分をそれぞれ加算したもの、つまり(4,10,2)となる。なお、図示は省略するが、回転角度が−30°,−60°,−90°であるときのシャドウボリュームの頂点Bの座標についても同様に決定される。
【0043】
なお、図8ではシャドウボリュームの形状を頂点A〜頂点Jの10個の頂点により規定しているが、それら頂点の位置や個数は自由に決定することができる。また、図8に示す例では、三角柱が回転するときの影の変化の仕方が単純であるため、各頂点の移動方向がいずれもX軸方向のみとなっているが、本発明はこれに限らず、各頂点がオブジェクトの回転に応じて任意の方向に移動するように設定しても構わない。
【0044】
なお、本実施形態では、上述のように、オブジェクトの回転角度が30°,60°,90°,−30°,−60°,−90°に対応するシャドウボリュームデータとして、基本シャドウボリュームデータを基準としたオフセットデータを用意するとしたが、本発明はこれに限らず、オブジェクトの回転角度が30°,60°,90°,−30°,−60°,−90°に対応するシャドウボリュームデータとして、基本シャドウボリュームデータと同様に、それぞれ実際の頂点座標によりシャドウボリュームの形状を規定するものを用意しても構わない。
【0045】
以上のように、影を落とすオブジェクトの回転角度が0°,30°,60°,90°,−30°,−60°,−90°である場合には、図7に示すようなシャドウボリュームデータからシャドウボリュームを容易に設定することができる。次に、影を落とすオブジェクトのZ軸周りの回転角度が上記以外の角度である場合のシャドウボリュームの設定方法について説明する。
【0046】
本実施形態では、影を落とすオブジェクトの回転角度が0°,30°,60°,90°,−30°,−60°,−90°以外の角度である場合(例えば15°や−40°など)、予め用意されているシャドウボリュームデータに基づく線形補間によってシャドウボリュームを動的に設定する。以下、この線形補間についてより具体的に説明する。
【0047】
影を落とすオブジェクトの回転角度がα°のときシャドウボリュームの頂点Aの座標は、影を落とすオブジェクトの回転角度がα°であるときのオフセット値ΔAαを算出することにより求められる。ΔAαは、以下の式により算出される。なお、頂点A以外の頂点(頂点B,頂点C,・・・)についても同様である。
【0048】
(1)0<α<30のとき
ΔAα=ΔA30×α/30
(2)30<α<60のとき
ΔAα={ΔA30×(60−α)+ΔA60×(α−30)}/30
(3)60<α<90のとき
ΔAα={ΔA60×(90−α)+ΔA90×(α−60)}/30
(4)−30<α<0のとき
ΔAα=−ΔA−30×α/30
(5)−60<α<−30のとき
ΔAα=−{ΔA−30×(−60−α)+ΔA−60×(α+30)}/30
(6)−90<α<−60のとき
ΔAα=−{ΔA−60×(−90−α)+ΔA−90×(α+60)}/30
【0049】
このように、影を落とすオブジェクトの回転角度に対応するシャドウボリュームデータが予め用意されていない場合には、予め用意されているシャドウボリュームデータのうちの2つのシャドウボリュームデータに基づく線形補間によって、この回転角度に対応するシャドウボリュームを設定する。なお、補間には線形補間に限らず任意の関数式を用いることができる。ただし線形補間を用いればシャドウボリューム設定のための演算を単純化できる利点がある。
【0050】
以上のようにして影を落とすオブジェクトの回転角度に対応するシャドウボリュームが設定されると、この設定されたシャドウボリュームに基づいて影が描画される。その結果、影を落とすオブジェクトの姿勢に応じたリアルな影が表示されることになる。
【0051】
次に、本実施形態におけるCPU10またはGPU11の動作について、図9〜図12のフローチャートを参照して説明する。
【0052】
図9を参照してゲームメイン処理について説明する。まず、変数の初期化処理や初期状態の画面を表示する等の初期処理がおこなわれる(ステップS1)。次に、ゲームがスタートすると、プレイヤによる操作入力処理が受け付けられて(ステップS2)、プレイヤによる操作入力およびゲームにおける各種要素(オブジェクト同士の接触や地面から受ける力等)に基づいて、プレイヤオブジェクトの座標および姿勢が更新される(ステップS3)。ステップS3の後、DVD−ROM300に記憶されるノンプレイヤオブジェクトの移動制御プログラムに基づいて、ノンプレイヤオブジェクトの移動制御処理が行われ(ステップS4)、ノンプレイヤオブジェクトの座標および姿勢が更新される(ステップS5)。ステップS5の後、その他のゲーム処理(戦闘処理やメニュー処理等)がおこなわれ(ステップS6)、その後、描画処理がおこなわれる(ステップS7)。なお、この描画処理については、図10を参照して後述する。ステップS7の後、ステップS8において、ゲームオーバーになったか否かが判定されて、ゲームオーバーの場合は、ゲーム処理を終了し、ゲームオーバーでない場合は、ステップS1に戻って、ステップS1〜S8の処理を繰り返す。
【0053】
次に図10を参照して、図9のステップS7の描画処理について説明する。描画処理が開始すると、GPU11は、影の落ちるオブジェクト(地形オブジェクト)の奥行き情報とZバッファ15の値とを比較し、Zバッファ15の値を適宜更新しながら、影の落ちるオブジェクトをカラーバッファ14に描画する(ステップS11)。影の落ちるオブジェクトの描画が終了すると、CPU10は、影を落とすオブジェクト(プレイヤオブジェクトおよびノンプレイヤオブジェクト)のシャドウボリュームを設定するためのシャドウボリューム設定処理を実行する(ステップS12)。このシャドウボリューム設定処理の詳細は後述する。シャドウボリューム設定処理が終了すると、GPU11は、シャドウボリューム設定処理によって設定されたシャドウボリュームに基づいて影描画処理を実行する(ステップS13)。この影描画処理の詳細は後述する。影描画処理が終了すると、GPU11は、影を落とすオブジェクトの奥行き情報とZバッファ15の値とを比較し、Zバッファ15の値を適宜更新しながら、影を落とすオブジェクトをカラーバッファ14に描画する(ステップS14)。影を落とすオブジェクトの描画が終了すると描画処理を終了する。
【0054】
次に、図11を参照して、図10のステップS12のシャドウボリューム設定処理について説明する。シャドウボリューム設定処理が開始すると、CPU10は、影を落とすオブジェクトのZ軸周りの回転角度αを計算する(ステップS121)。次に、基本シャドウボリュームデータを読み込む(ステップS122)。それから、ステップS121で計算した回転角度αに応じた変形オフセットを計算する(ステップS123)。具体的には、回転角度αに対応する変形オフセットデータが予め用意されている場合にはそのデータを読み出し、そうでない場合には、予め用意されている回転角度αの近隣の回転角度に対応する2つのシャドウボリュームデータに基づいて線形補間を行い、回転角度αに対応する変形オフセット(前述のΔAαなど)を計算する。回転角度αに対応する変形オフセットの計算が完了すると、その変形オフセットと基本シャドウボリュームデータに基づいて(つまり、変形オフセットに基づいて基本シャドウボリュームを変形させることにより)シャドウボリュームを設定する(ステップS124)。シャドウボリュームの設定が完了すると、図10に示す描画処理に戻る。
【0055】
次に、図12を参照して、図10のステップS13の影描画処理について説明する。影描画処理が開始すると、まずGPU11は、影判定用バッファであるステンシルバッファ16の各ピクセルの値を0にクリアする(ステップS131)。そして、Zバッファ15を参照しながらシャドウボリュームの表面を描画する(ステップS132)。ここではカラーバッファ14に色情報を書き込む代わりにステンシルバッファ16の各ピクセルの値をインクリメントする。次に、Zバッファ15を参照しながらシャドウボリュームの裏面を描画する(ステップS133)。ここではカラーバッファ14に色情報を書き込む代わりにステンシルバッファ16の各ピクセルの値をデクリメントする。こうして書き込まれたステンシルバッファ16の各ピクセルの値に基づいて、GPU11はカラーバッファ14の各ピクセルの輝度情報を変更する(ステップS134)。こうして影描画処理が完了すると、図10に示す描画処理に戻る。
【0056】
以上のように本実施形態では、影を落とすオブジェクトのいくつかの姿勢に対応する複数のシャドウボリュームデータを予め用意しておき、必要に応じてこれらシャドウボリュームデータに基づいた補間を行うことによってオブジェクトの姿勢に応じたシャドウボリュームを設定する。したがって、例えばゲーム処理において、影を落とすオブジェクトの姿勢が変化するたびにこのオブジェクトの輪郭またはこのオブジェクトを構成する複数のポリゴンのエッジに基づいてシャドウボリュームを設定する必要がなくなり、その結果、影を描画するための処理負担を軽減することができる。また、シャドウボリュームを使用して影を描画するため、影の落ちるオブジェクトの凹凸を反映したよりリアルな影を描画することができる。
【0057】
なお本実施形態ではゲームプログラムはDVD−ROM300を介してゲーム機本体100に供給されるとしたが、これに限らず、DVD−ROM300以外の他のコンピュータ読み取り可能な記録媒体(例えばCD−ROM、MO、メモリカード、ROMカートリッジ等)に格納されてゲーム機本体100に供給されても構わないし、予めゲーム機本体100に組み込まれていても構わないし、通信回線を通じてゲーム機本体100に供給されても構わない。
【0058】
また本実施形態では描画処理等をGPU11が行うとしたが、CPU10が行ってもよい。
【0059】
また本実施形態では平行光によってできる影を描画する場合について説明したが、これに限らず、例えば点光源からの光によってできる影を描画する場合についても本発明を適用することができる。
【0060】
また本実施形態では、影を落とすオブジェクトの姿勢はZ軸周りに回転することによって変化するとしたが、影を落とすオブジェクトが複数軸での回転を行う場合にも本発明を適用することができる。その場合、例えばZ軸周りの回転角度とX軸周りの回転角度との組み合わせごとにシャドウボリュームデータを予め用意しておき、それらに基づいてシャドウボリュームを設定する。これにより、影を落とすオブジェクトの複数軸周りの回転に応じた影の描画が可能となる。
【0061】
また本実施形態では、影を落とすオブジェクトの姿勢がZ軸周りに回転することによって変化するとしたが、オブジェクトの形状自体が変わる場合にも本発明を適用することができる。その場合、例えば複数の変形状態にそれぞれ対応する複数のシャドウボリュームデータを予め用意しておき、それらに基づいてシャドウボリュームを設定する。これにより、影を落とすオブジェクトの変形に応じた影の描画が可能となる。
【0062】
なお、影を落とすオブジェクトの姿勢の対称性を利用することにより、DVD−ROM300等に予め記憶しておくべきシャドウボリュームデータの個数を削減することができる。以下、この工夫について図13を参照して説明する。
【0063】
図13は、カートレースゲームにおけるキャラクタオブジェクトがカートの進行方向を軸として回転した場合のオブジェクトの姿勢とシャドウボリュームの形状とをそれぞれ示す図である。ただしキャラクタオブジェクトの真上(進行方向に対して垂直上方)から平行光が照射されている場合のものである。図13の例では、回転角度が0°と180°についてはシャドウボリュームの形状が同一である。また回転角度が45°と135°についてもシャドウボリュームの形状が同一である。さらに回転角度が−45°と135°についてもシャドウボリュームの形状が同一である。したがって、回転角度が135°,180°,−135°のシャドウボリュームデータについては、回転角度が45°,0°,−45°のものをそれぞれ共用することができる。より一般的には、回転軸の半周(ここでは−90°〜90°)に対応するシャドウボリュームデータさえ用意しておけば、回転軸の全周(つまり360°)に対応するシャドウボリュームを設定することができる。ただし、これは、影を落とすオブジェクトの形状が回転軸を含むある平面に対して対称である場合に限られる。
【0064】
また、図13において、回転角度が45°のときのシャドウボリュームと回転角度が−135°のときのシャドウボリュームとを比較すると、これらシャドウボリュームの関係は、互いに図面上で左右反転させたものになっている。また回転角度が90°のときのシャドウボリュームと回転角度が−90°のときのシャドウボリュームについても同様である。さらに回転角度が135°のときのシャドウボリュームと回転角度が−45°のときのシャドウボリュームについても同様である。したがって、回転角度が−135°,−90°,−45°のシャドウボリュームデータについては、回転角度が45°,90°,135°のものをそれぞれ共用することができる。つまり、回転角度が180°異なる2つの姿勢についてはシャドウボリュームを共有することができる。ただしこの場合、シャドウボリュームを設定するときに、シャドウボリュームの形状を反転させるための簡単な演算(例えばオフセット値の変換や頂点座標の変換など)が別途必要となる。
【0065】
なお、上記の2つの工夫を組み合わせることにより、予め記憶しておくべきシャドウボリュームデータの個数をさらに減らすことができる。つまり、図13において、回転角度が180°のときのシャドウボリュームについては回転角度が0°のときのシャドウボリュームデータを利用することができる。また、回転角度が135°,−135°,−45°のときのシャドウボリュームについては回転角度が45°のときのシャドウボリュームデータを利用することができる。さらに、回転角度が−90°のときのシャドウボリュームについては回転角度が90°のときのシャドウボリュームデータを利用することができる。つまり、回転軸の4分の1周(ここでは0°〜90°)に対応するシャドウボリュームデータさえ用意しておけば、回転軸の全周(つまり360°)に対応するシャドウボリュームを設定することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るゲームシステムの外観を示す図である。
【図2】ゲームシステムの構成を示すブロック図である。
【図3】シャドウボリュームと影の関係を説明するための図である。
【図4】ステンシルバッファを用いた影描画手法について説明するための図である。
【図5】オブジェクトのZ軸周りの回転角度が0°,30°,60°,90°のときのシャドウボリュームの形状およびゲーム空間における影をそれぞれ示す図である。
【図6】オブジェクトのZ軸周りの回転角度が0°,−30°,−60°,−90°のときのシャドウボリュームの形状およびゲーム空間における影をそれぞれ示す図である。
【図7】シャドウボリュームデータの詳細を説明するための図である。
【図8】オフセット値とシャドウボリュームの形状との関係を具体的に示す図である。
【図9】ゲーム処理の流れを示すフローチャートである。
【図10】描画処理の流れを示すフローチャートである。
【図11】シャドウボリューム設定処理の流れを示すフローチャートである。
【図12】影描画処理の流れを示すフローチャートである。
【図13】シャドウボリュームデータの共有について説明するための図である。
【図14】仮想例においてオブジェクトの移動に伴って表示される影を示す図である。
【符号の説明】
10 CPU
11 GPU
12 ジオメトリユニット
13 レンダリングユニット
14 カラーバッファ
15 Zバッファ
16 ステンシルバッファ
17 メインメモリ
18 DSP
19 サブメモリ
20 メモリコントローラ
21 コントローラI/F
22 ビデオI/F
23 外部メモリI/F
24 オーディオI/F
25 DVDドライブ
26 DVDディスクI/F
100 ゲーム機本体
200 コントローラ
300 DVD−ROM
400 外部メモリカード
500 TVモニタ
600 スピーカ

Claims (16)

  1. 3次元のゲーム空間におけるオブジェクトの影をシャドウボリュームを利用して表示するゲームシステムであって、
    前記オブジェクトの姿勢を変化させる姿勢変化手段と、
    前記オブジェクトの第1姿勢に対応する第1シャドウボリュームデータを予め記憶する第1シャドウボリュームデータ記憶手段と、
    前記オブジェクトの前記第1姿勢とは異なる第2姿勢に対応する第2シャドウボリュームデータを予め記憶する第2シャドウボリュームデータ記憶手段と、
    前記姿勢変化手段によって変化する前記オブジェクトのある時点の姿勢が前記第1姿勢と等しいときに前記シャドウボリュームを前記第1シャドウボリュームデータに基づいて設定し、前記オブジェクトの当該ある時点の姿勢が前記第2姿勢と等しいときに前記シャドウボリュームを前記第2シャドウボリュームデータに基づいて設定するシャドウボリューム設定手段と、
    前記シャドウボリューム設定手段によって設定されたシャドウボリュームに基づいて前記ある時点における前記オブジェクトの影を描画する影描画手段とを備えるゲームシステム。
  2. 前記シャドウボリューム設定手段は、前記ある時点における前記オブジェクトの姿勢が前記第1姿勢および前記第2姿勢のいずれとも異なるときに、前記第1シャドウボリュームデータおよび前記第2シャドウボリュームデータに基づく補間によって前記シャドウボリュームを設定することを特徴とする、請求項1記載のゲームシステム。
  3. 前記補間が線形補間であることを特徴とする、請求項2記載のゲームシステム。
  4. 前記第2シャドウボリュームデータが、前記第1シャドウボリュームデータを基準としたオフセットデータであることを特徴とする、請求項1または2に記載のゲームシステム。
  5. 前記姿勢変化手段は、オブジェクト座標系の所定軸周りに前記オブジェクトを回転させ、
    前記第2姿勢は、前記オブジェクトを前記第1姿勢から前記所定軸周りにある角度だけ回転させたときの姿勢であり、
    前記シャドウボリューム設定手段は、前記所定軸周りの前記オブジェクトの回転角度に基づいて前記シャドウボリュームを設定することを特徴とする、請求項1記載のゲームシステム。
  6. 前記シャドウボリューム設定手段は、前記ある時点における前記オブジェクトの姿勢が前記第1姿勢と所定の位置関係の第3姿勢であるときに、当該第3姿勢に対応するシャドウボリュームデータとして前記第1シャドウボリュームデータをそのまま、あるいは適宜変更して利用して前記シャドウボリュームを設定することを特徴とする、請求項5記載のゲームシステム。
  7. 前記オブジェクトの形状が前記所定軸を含むある平面に対して対称であることを特徴とする、請求項6記載のゲームシステム。
  8. 前記第3姿勢は、前記オブジェクトを前記第1姿勢から前記所定軸周りに180°回転させたときの姿勢であることを特徴とする、請求項6記載のゲームシステム。
  9. 3次元のゲーム空間におけるオブジェクトの影をシャドウボリュームを利用して表示するためにゲーム装置のコンピュータに実行されるゲームプログラムであって、当該コンピュータに、
    前記オブジェクトの姿勢を変化させる姿勢変化ステップと、
    前記オブジェクトの第1姿勢に対応する予め記憶された第1シャドウボリュームデータを読み出す第1シャドウボリュームデータ読み出しステップと、
    前記オブジェクトの前記第1姿勢とは異なる第2姿勢に対応する予め記憶された第2シャドウボリュームデータを読み出す第2シャドウボリュームデータ読み出しステップと、
    前記姿勢変化ステップで変化する前記オブジェクトのある時点の姿勢が前記第1姿勢と等しいときに前記シャドウボリュームを前記第1シャドウボリュームデータに基づいて設定し、前記オブジェクトの当該ある時点の姿勢が前記第2姿勢と等しいときに前記シャドウボリュームを前記第2シャドウボリュームデータに基づいて設定するシャドウボリューム設定ステップと、
    前記シャドウボリューム設定ステップで設定されたシャドウボリュームに基づいて前記ある時点における前記オブジェクトの影を描画する影描画ステップとを実行させるゲームプログラム。
  10. 前記シャドウボリューム設定ステップは、前記ある時点における前記オブジェクトの姿勢が前記第1姿勢および前記第2姿勢のいずれとも異なるときに、前記第1シャドウボリュームデータおよび前記第2シャドウボリュームデータに基づく補間によって前記シャドウボリュームを設定することを特徴とする、請求項9記載のゲームプログラム。
  11. 前記補間が線形補間であることを特徴とする、請求項10記載のゲームプログラム。
  12. 前記第2シャドウボリュームデータが、前記第1シャドウボリュームデータを基準としたオフセットデータであることを特徴とする、請求項9または10に記載のゲームプログラム。
  13. 前記姿勢変化ステップは、オブジェクト座標系の所定軸周りに前記オブジェクトを回転させ、
    前記第2姿勢は、前記オブジェクトを前記第1姿勢から前記所定軸周りにある角度だけ回転させたときの姿勢であり、
    前記シャドウボリューム設定ステップは、前記所定軸周りの前記オブジェクトの回転角度に基づいて前記シャドウボリュームを設定することを特徴とする、請求項9記載のゲームプログラム。
  14. 前記シャドウボリューム設定ステップは、前記ある時点における前記オブジェクトの姿勢が前記第1姿勢と所定の位置関係の第3姿勢であるときに、当該第3姿勢に対応するシャドウボリュームデータとして前記第1シャドウボリュームデータをそのまま、あるいは適宜変更して利用して前記シャドウボリュームを設定することを特徴とする、請求項9記載のゲームプログラム。
  15. 前記オブジェクトの形状が前記所定軸を含むある平面に対して対称であることを特徴とする、請求項14記載のゲームプログラム。
  16. 前記第3姿勢は、前記オブジェクトを前記第1姿勢から前記所定軸周りに180°回転させた姿勢であることを特徴とする、請求項14記載のゲームプログラム。
JP2002167654A 2002-06-07 2002-06-07 ゲームシステム及びゲームプログラム Expired - Fee Related JP4082937B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2002167654A JP4082937B2 (ja) 2002-06-07 2002-06-07 ゲームシステム及びゲームプログラム
US10/408,368 US6971957B2 (en) 2002-06-07 2003-04-08 Game system and program using a shadow volume to display a shadow of an object in a three dimensional video game
GB0308860A GB2389501B (en) 2002-06-07 2003-04-16 Game system and game program
DE10320112.2A DE10320112B4 (de) 2002-06-07 2003-05-06 Spielsystem, Spielprogramm und Verfahren zur Steuerung eines Spielgeräts

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002167654A JP4082937B2 (ja) 2002-06-07 2002-06-07 ゲームシステム及びゲームプログラム

Publications (2)

Publication Number Publication Date
JP2004013621A true JP2004013621A (ja) 2004-01-15
JP4082937B2 JP4082937B2 (ja) 2008-04-30

Family

ID=19195067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002167654A Expired - Fee Related JP4082937B2 (ja) 2002-06-07 2002-06-07 ゲームシステム及びゲームプログラム

Country Status (4)

Country Link
US (1) US6971957B2 (ja)
JP (1) JP4082937B2 (ja)
DE (1) DE10320112B4 (ja)
GB (1) GB2389501B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007029568A1 (ja) * 2005-09-08 2007-03-15 Sega Corporation 画像処理プログラム及び,これを用いた画像処理システム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4001227B2 (ja) * 2002-05-16 2007-10-31 任天堂株式会社 ゲーム装置及びゲームプログラム
KR100632535B1 (ko) * 2004-12-29 2006-10-11 엘지전자 주식회사 이동통신단말기용 삼차원 그래픽 엔진 및 그래픽 제공 방법
JP2006280731A (ja) * 2005-04-01 2006-10-19 Aruze Corp ゲームプログラム、ゲーム装置及び記録媒体
US7352370B2 (en) * 2005-06-02 2008-04-01 Accuray Incorporated Four-dimensional volume of interest
US9563980B2 (en) * 2005-11-18 2017-02-07 Autodesk, Inc. Grip manipulatable shadows in 3D models
US8144266B2 (en) * 2007-02-27 2012-03-27 Sony Corporation Module system for permitting storage device interface with TV
JP4852555B2 (ja) * 2008-01-11 2012-01-11 株式会社コナミデジタルエンタテインメント 画像処理装置、画像処理方法、ならびに、プログラム
CN102074036B (zh) * 2010-12-07 2013-01-09 中国地质大学(武汉) 基于gpu加速的体数据动态剖切方法
US9645724B2 (en) 2012-02-01 2017-05-09 Facebook, Inc. Timeline based content organization
US9557876B2 (en) 2012-02-01 2017-01-31 Facebook, Inc. Hierarchical user interface
US9235318B2 (en) 2012-02-01 2016-01-12 Facebook, Inc. Transitions among hierarchical user-interface layers
CN113409468B (zh) * 2021-05-10 2024-06-21 北京达佳互联信息技术有限公司 一种图像处理方法、装置、电子设备及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58121091A (ja) 1982-01-14 1983-07-19 池上通信機株式会社 立体感表示方式
EP0591325B1 (en) * 1991-06-28 2007-12-05 LIM, Hong Lip Improvements in visibility calculations for 3d computer graphics
JP3052681B2 (ja) * 1993-08-06 2000-06-19 松下電器産業株式会社 3次元動画像生成装置
JP3442181B2 (ja) * 1995-02-17 2003-09-02 株式会社ナムコ 3次元ゲーム装置及び画像合成方法
US5936626A (en) 1996-02-07 1999-08-10 Silicon Graphics, Inc. Computer graphics silhouette load management
ES2239354T3 (es) 1996-06-05 2005-09-16 Sega Corporation Procesador de imagen para juegos.
JPH10211358A (ja) * 1997-01-28 1998-08-11 Sega Enterp Ltd ゲーム装置
JP4105788B2 (ja) * 1997-11-14 2008-06-25 任天堂株式会社 ビデオゲーム装置およびその記憶媒体
JP2980579B2 (ja) * 1997-12-09 1999-11-22 コナミ株式会社 フィッシングゲームシステムおよびゲーム用入力装置
US6667741B1 (en) * 1997-12-24 2003-12-23 Kabushiki Kaisha Sega Enterprises Image generating device and image generating method
JP2000163601A (ja) * 1998-11-24 2000-06-16 Sega Enterp Ltd 画像処理装置、画像処理方法および記録媒体
JP3599268B2 (ja) * 1999-03-08 2004-12-08 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置及び記録媒体
JP3124999B1 (ja) * 1999-07-09 2001-01-15 株式会社スクウェア レンダリング方法及び装置、ゲーム装置、並びに仮想空間内のオブジェクトの陰影に関するデータを計算するためのプログラムを格納するコンピュータ読み取り可能な記録媒体
JP3417883B2 (ja) 1999-07-26 2003-06-16 コナミ株式会社 画像作成装置、画像作成方法、画像作成プログラムが記録されたコンピュータ読み取り可能な記録媒体およびビデオゲーム装置
JP3502796B2 (ja) 1999-10-29 2004-03-02 株式会社スクウェア・エニックス ビデオゲームにおける立体モデル表示方法及び装置、ゲーム装置並びにビデオゲーム用立体モデル表示プログラムを格納したコンピュータ読み取り可能な記録媒体
JP3527672B2 (ja) * 1999-12-28 2004-05-17 株式会社スクウェア・エニックス 3次元コンピュータ画像処理のプログラムを記録したコンピュータ読み取り可能な記録媒体および影描画処理方法およびビデオゲーム装置
JP3369159B2 (ja) * 2000-02-17 2003-01-20 株式会社ソニー・コンピュータエンタテインメント 画像描画方法、画像描画装置、記録媒体及びプログラム
US6791544B1 (en) * 2000-04-06 2004-09-14 S3 Graphics Co., Ltd. Shadow rendering system and method
US6624833B1 (en) * 2000-04-17 2003-09-23 Lucent Technologies Inc. Gesture-based input interface system with shadow detection
JP2002058868A (ja) 2000-06-07 2002-02-26 Square Co Ltd 球技系ゲームのプログラムを記録したコンピュータ読み取り可能な記録媒体およびプログラム、ならびに、球技系ゲーム処理装置およびその方法
US6664962B1 (en) * 2000-08-23 2003-12-16 Nintendo Co., Ltd. Shadow mapping in a low cost graphics system
US6646640B2 (en) * 2001-02-06 2003-11-11 Sony Computer Entertainment Inc. System and method for creating real-time shadows of complex transparent objects
JP4001227B2 (ja) 2002-05-16 2007-10-31 任天堂株式会社 ゲーム装置及びゲームプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007029568A1 (ja) * 2005-09-08 2007-03-15 Sega Corporation 画像処理プログラム及び,これを用いた画像処理システム
JPWO2007029568A1 (ja) * 2005-09-08 2009-03-19 株式会社セガ 画像処理プログラム及び,これを用いた画像処理システム
US7742047B2 (en) 2005-09-08 2010-06-22 Sega Corporation Image processing program and image processing system using same
JP4930373B2 (ja) * 2005-09-08 2012-05-16 株式会社セガ 画像処理プログラム及び,これを用いた画像処理システム

Also Published As

Publication number Publication date
DE10320112B4 (de) 2014-05-22
JP4082937B2 (ja) 2008-04-30
GB2389501A8 (en) 2004-03-08
GB2389501A (en) 2003-12-10
GB2389501B (en) 2005-07-13
DE10320112A1 (de) 2003-12-18
US6971957B2 (en) 2005-12-06
US20030228905A1 (en) 2003-12-11
GB0308860D0 (en) 2003-05-21

Similar Documents

Publication Publication Date Title
US8602888B2 (en) Video game device and image processing program
US7104891B2 (en) Game machine and game program for displaying a first object casting a shadow formed by light from a light source on a second object on a virtual game space
JP4082937B2 (ja) ゲームシステム及びゲームプログラム
JP3661167B2 (ja) リフラクション・マッピングを実行する装置及び方法
JP4193979B2 (ja) シャドウボリューム生成プログラム及びゲーム装置
EP1126415A2 (en) Image drawing method and apparatus
JP3748451B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
US7068273B2 (en) Recording medium which stores 3D image processing program, 3D image processor, 3D image processing method, and video game machine
JP3990258B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2004298375A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4167358B2 (ja) 画像生成システム及び情報記憶媒体
JP4447000B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4073031B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP2011258117A (ja) 画像処理装置、画像処理方法、コンピュータプログラム、記録媒体、及び半導体装置
JP2000218036A (ja) ゲーム装置、ゲーム制御方法およびその記録媒体
JP3643036B2 (ja) 透視変換する装置及び方法
WO2002041257A1 (fr) Procédé de dessin de textures, dispositif pour divertissements et support d'enregistrement
JP2003288609A (ja) 3次元画像処理プログラム、3次元画像処理装置、3次元画像処理方法及びビデオゲーム装置
JP4079249B2 (ja) ゲーム装置及びゲームプログラム
JP3617960B2 (ja) 3次元ゲーム画像処理プログラム、3次元ゲーム画像処理方法及びビデオゲーム装置
JP4394211B2 (ja) 画像生成システム及び情報記憶媒体
JP4229316B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4229318B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3586679B2 (ja) 3次元ゲーム画像処理プログラム、3次元ゲーム画像処理方法及びビデオゲーム装置
JP4726347B2 (ja) 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080212

R150 Certificate of patent or registration of utility model

Ref document number: 4082937

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110222

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120222

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120222

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130222

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130222

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130222

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140222

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees