JP3428562B2 - オブジェクトの動きを処理する方法および記録媒体、並びに、ゲーム装置 - Google Patents

オブジェクトの動きを処理する方法および記録媒体、並びに、ゲーム装置

Info

Publication number
JP3428562B2
JP3428562B2 JP2000123955A JP2000123955A JP3428562B2 JP 3428562 B2 JP3428562 B2 JP 3428562B2 JP 2000123955 A JP2000123955 A JP 2000123955A JP 2000123955 A JP2000123955 A JP 2000123955A JP 3428562 B2 JP3428562 B2 JP 3428562B2
Authority
JP
Japan
Prior art keywords
wind
virtual
particle object
particle
virtual wind
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.)
Expired - Lifetime
Application number
JP2000123955A
Other languages
English (en)
Other versions
JP2001307129A (ja
Inventor
新樹 大久保
Original Assignee
株式会社スクウェア
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 株式会社スクウェア filed Critical 株式会社スクウェア
Priority to JP2000123955A priority Critical patent/JP3428562B2/ja
Priority to US09/559,127 priority patent/US6508708B1/en
Publication of JP2001307129A publication Critical patent/JP2001307129A/ja
Application granted granted Critical
Publication of JP3428562B2 publication Critical patent/JP3428562B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • 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
    • 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/6638Methods for processing data by generating or executing the game program for rendering three dimensional images for simulating particle systems, e.g. explosion, fireworks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、ビデオゲームにお
いて粒子オブジェクトの振る舞いを、よりリアリティを
もって表現できるようにするための技術に関する。
【0002】
【従来の技術】ビデオゲームでは、仮想三次元空間にお
けるキャラクタ周辺の環境が、実世界における同様の環
境により近似するように表現されることが望まれてい
る。例えば、雪が降る様子を画面に表示することによ
り、キャラクタ周辺の環境を表現する場合がある。この
場合、雪が舞い散る様子をよりリアリティをもって表現
することで、寒い冬をイメージさせる画面を表示するこ
とができるようになる。
【0003】例えば、特開平10−31410号公報で
は、雪である落下体を複数含む落下オブジェクトを所与
の回転方向、回転速度でオブジェクト空間内で落下さ
せ、雪がひらひら舞いながら落ちる様子を表現する技術
を開示している。また、本公報では、落下オブジェクト
の速度、速度方向、数を、オブジェクト空間内の場所、
時間情報に基づいて変化させ、これにより場所、時間に
より変化する横風を表現できる。
【0004】
【発明が解決しようとする課題】ビデオゲームでは、仮
想三次元空間内を移動する様々なオブジェクトが画面表
示される。移動するオブジェクトには例えば列車のオブ
ジェクトがある。現実の世界で列車が移動すると、その
列車の周囲に風が発生する。雪が降っている中を列車が
移動すれば、列車周辺の雪は、列車の移動により発生し
た風の影響を受け、落下方向などが変化する。ところ
が、上記公報記載の技術では、雪の落下速度等の制御に
関し、他のオブジェクトの動き等は考慮されていない。
ビデオゲームにおいても、三次元空間内の列車などのオ
ブジェクトの移動に応じて、雪の落下方向等を制御する
ことが望まれる。
【0005】よって本発明の目的は、オブジェクトの移
動に応じて生じる風に影響を受ける粒子オブジェクトの
振る舞いを、よりリアリティをもって表現するための技
術を提供することである。
【0006】
【課題を解決するための手段】本発明の第1の態様に係
る、仮想三次元空間で処理される粒子オブジェクトの動
きを処理するゲームプログラムを処理する方法は、画面
上で1または複数の所定サイズの仮想的な風の影響範囲
をあらかじめ決められた規則もしくはプレイヤの操作に
応じて移動させ、画面上に1または複数の粒子オブジェ
クトを表示させ、粒子オブジェクトと仮想的な風の影響
範囲との位置関係を判断し、仮想的な風の影響範囲と粒
子オブジェクトとの位置関係の変化に応じて粒子オブジ
ェクトの画面上での移動条件を決定し、当該決定された
移動条件にしたがって粒子オブジェクトを画面上で移動
させるものである。
【0007】上で述べた位置関係を仮想的な風の影響範
囲の基準点と粒子オブジェクトの基準点との距離に基づ
いて判断するような構成も可能である。また、仮想的な
風の影響範囲が複数存在した場合、複数の仮想的な風の
影響範囲のうち、粒子オブジェクトに最も近い仮想的な
風の影響範囲と粒子オブジェクトとの距離で位置関係を
判断するような構成も可能である。
【0008】さらに、粒子オブジェクトが複数存在する
場合には、位置関係の判断を粒子オブジェクトごとに行
なうような構成も可能である。さらに、上で述べた移動
条件を決定する場合には、移動条件を位置関係の変化に
対応させて更新させるような構成も可能である。
【0009】上で述べた移動条件が仮想的な風の影響範
囲内の位置ごとに相異させて決定されるような構成も可
能である。さらに上で述べた移動条件が位置関係の更新
の度に計算されるような構成も可能である。
【0010】さらに上で述べた移動条件の更新をフレー
ム処理単位に行なうような構成も可能である。上で述べ
た移動条件が、仮想的な風の影響範囲と粒子オブジェク
トとの距離に応じて移動速度を変化させるような構成と
することも可能である。上で述べた移動条件があらかじ
め記憶されているような構成とすることも可能である。
【0011】本発明の第1の態様に係る、仮想三次元空
間で処理される粒子オブジェクトの動きを処理するゲー
ムプログラムを処理する方法をコンピュータに実行させ
るプログラムを作成することは可能である。その際、第
1の態様に対する上記のような変形は、当該プログラム
に対しても応用可能である。本発明に係るプログラム
は、例えばCD−ROM(Compact Disc - Read Only M
emory)、DVD(Digital Versatile Disc)、フロッ
ピーディスク、メモリカートリッジ、メモリ、ハードデ
ィスクなどの記録媒体又は記憶装置に格納される。記録
媒体又は記憶装置に格納されるプログラムをコンピュー
タに読み込ませることで以下で述べるゲーム装置を実現
できる。また、記録媒体によって本発明に係るプログラ
ムをソフトウエア製品として装置と独立して容易に配
布、販売することができるようになる。さらに、コンピ
ュータなどのハードウエアを用いて本発明に係るプログ
ラムを実行することにより、コンピュータ等のハードウ
エアで本発明の技術が容易に実施できるようになる。
【0012】本発明の第2の態様に係る、仮想三次元空
間で処理される粒子オブジェクトの動きを表示画面上で
制御するゲーム装置は、プログラムにしたがってゲーム
を実行するユニットと、プログラムを全部もしくは一部
を格納するメモリと、ユニットで実行されるゲームを表
示する表示画面とを備える。そして、上で述べたユニッ
トは、メモリに格納されたプログラムにしたがって、表
示画面上で1または複数の所定サイズの仮想的な風の影
響範囲をあらかじめ決められた規則もしくはプレイヤの
操作に応じて移動させ、表示画面上に仮想三次元空間で
処理される1または複数の粒子オブジェクトを表示さ
せ、粒子オブジェクトと仮想的な風の影響範囲との位置
関係を判断し、仮想的な風の影響範囲と粒子オブジェク
トとの位置関係の変化に応じて粒子オブジェクトの表示
画面上での移動条件を決定し、決定された移動条件にし
たがって粒子オブジェクトを表示画面上で移動させる。
【0013】上で述べたユニットを、位置関係を仮想的
な風の影響範囲の基準点と粒子オブジェクトの基準点と
の距離に基づいて判断するような構成とすることも可能
である。また、上で述べたユニットを、仮想的な風の影
響範囲が複数存在した場合、複数の仮想的な風の影響範
囲のうち、粒子オブジェクトに最も近い仮想的な風の影
響範囲と粒子オブジェクトとの距離で位置関係を判断す
るような構成とすることも可能である。
【0014】さらに、上で述べたユニットを、粒子オブ
ジェクトが複数存在する場合、位置関係の判断を粒子オ
ブジェクトごとに行なうような構成とすることも可能で
ある。
【0015】本発明の第1の態様に対する上記のような
変形は、本発明の第2の態様に係るゲーム装置に応用可
能である。
【0016】
【発明の実施の形態】(実施の形態1)本実施の形態を
コンピュータ・プログラムにより実施する場合において
当該コンピュータ・プログラムを実行する家庭用ゲーム
機101の一例を図1に示す。家庭用ゲーム機101
は、例えば内部バス119に接続されたCPU(Centra
lProcessing Unit)103、ROM(Read Only Memor
y)104、RAM(Random Access Memory)105、
HDD(Hard Disk Drive)107、サウンド処理部1
09、グラフィックス処理部111、CD−ROMドラ
イブ113、通信インターフェース115、及びインタ
ーフェース部117を備える。グラフィックス処理部1
11は、フレームバッファ112を備える。フレームバ
ッファ112はVRAM(Video RAM)と示す場合もあ
る。
【0017】家庭用ゲーム機101のサウンド処理部1
09及びグラフィックス処理部111は表示画面120
及びスピーカ122を有するTVセット121に接続さ
れている。また、CD−ROMドライブ113には着脱
可能なCD−ROM131が装着される。CD−ROM
131には、本発明にかかるゲームプログラム133及
びデータ135が記録されている。通信インターフェー
ス115はネットワーク151と通信媒体141を介し
て接続される。インターフェース部117には、操作ボ
タンを備えたキーパッド161及びメモリカード171
が接続される。
【0018】CPU103は、ROM104に格納され
たプログラム、及びCD−ROM131上に記録された
ゲームプログラム133を実行し、家庭用ゲーム機10
1の制御を行う。RAM105は、CPU103のワー
クエリアである。HDD107は、例えばCD−ROM
131上に記録されたゲームプログラム133及びデー
タ135を保管するための記憶領域である。メモリカー
ド171は、ゲームプログラム133により参照される
データを保存するための記憶領域である。サウンド処理
部109は、CPU103により実行されているプログ
ラムがサウンド出力を行うよう指示している場合に、そ
の指示を解釈して、TVセット121にサウンド信号を
出力する。そして、サウンド信号はTVセット121の
スピーカ122からサウンドとして出力される。
【0019】グラフィックス処理部111は、CPU1
03から出力される描画命令に従って、画像データを生
成してフレームバッファ112に書き込む。そして、書
き込んだ画像データを表示画面120に表示するための
信号をTVセット121に出力する。CD−ROMドラ
イブ113は、CD−ROM131上のゲームプログラ
ム133及びデータ135を読み出す。通信インターフ
ェース115は、通信媒体141を介してネットワーク
151に接続され、他のコンピュータ等との間で行われ
るデータ通信の入出力制御を行う。インターフェース部
117は、キーパッド161からの入力をRAM105
に出力し、CPU103がキーパッド161からの入力
を解釈して演算処理を実施する。
【0020】本実施の形態に係るゲームプログラム13
3及びデータ135は最初例えばCD−ROM131に
記録されている。そして、ゲームプログラム133及び
データ135は実行時にCD−ROMドライブ113に
より読み出されて、RAM105にロードされる。な
お、CD−ROM131に記録されている本実施の形態
に係るゲームプログラム133及びデータ135を、予
めCD−ROMドライブ113により読み出し、HDD
107に格納しておくようにしてもよい。HDD107
に本実施の形態に係るゲームプログラム及びデータ10
8が格納されている場合には、HDD107からRAM
105にゲームプログラム及びデータ108がロードさ
れる。
【0021】CPU103はRAM105にロードされ
た、本実施の形態に係るゲームプログラム133及びデ
ータ135を処理し、描画命令をグラフィックス処理部
111に出力する。なお、中間的なデータはRAM10
5に記憶される。グラフィックス処理部111はCPU
103からの描画命令に従って処理を行い、画像データ
をフレームバッファ112に書き込み、表示画面120
に表示するための信号をTVセット121に出力する。
【0022】以上のような家庭用ゲーム機101におい
て実行される本実施の形態に係るゲームプログラムのア
ルゴリズム及び使用されるデータについて以下で詳しく
述べる。
【0023】図2乃至図4を用いて本実施の形態で使用
されるデータについて説明する。
【0024】図2は本実施の形態に係るゲームプログラ
ム133実行中におけるRAM105の状態を示す模式
図である。RAM105には、移動するキャラクタのオ
ブジェクト・データ200と、粒子オブジェクトに関す
るパーティクルデータ・テーブル300とが記憶されて
いる。移動するキャラクタのオブジェクト・データ20
0には、オブジェクトのポリゴン等に関するモデルデー
タ2100と、当該オブジェクトに対応付けられた仮想
的な風に関する風データ・テーブル2200とが含まれ
る。
【0025】図3に風データ・テーブル2200の一例
を示す。風データ・テーブル2200は、対応付けられ
たオブジェクト毎に設けられる。オブジェクトに対応し
て、例えば複数の仮想的な風が設定される。図3の例で
は4つの仮想的な風が設定され、仮想的な風には風番号
の欄2201に格納される各番号が付される。仮想的な
風には、風の基準位置と、風向きと、風力と、風の影響
範囲とが定義される。よって、風データ・テーブル22
00には、風の基準位置の欄2203と、風向きの欄2
205と、風力の欄2207と、風の影響範囲の欄22
09とが設けられている。
【0026】風の基準位置の欄2203には、対応付け
られたオブジェクトの基準となる位置からの相対位置座
標が格納される。風向きの欄2205には、風の向きを
表す単位ベクトルが格納される。風力の欄2207に
は、風力を表すスカラ値が格納される。風の影響範囲の
欄2209には、球である風の影響範囲の半径が格納さ
れる。
【0027】図3においては、風番号1の仮想的な風に
は、風の基準位置wind_pos1と、風向きwind_dir1と、風
力wind_pow1と、風の影響範囲wind_dist1とが定義され
ている。また、風番号2の仮想的な風には、風の基準位
置wind_pos2と、風向きwind_dir2と、風力wind_pow2
と、風の影響範囲wind_dist2とが定義されている。風番
号3の仮想的な風には、風の基準位置wind_pos3と、風
向きwind_dir3と、風力wind_pow3と、風の影響範囲wind
_dist3とが定義されている。風番号4の仮想的な風に
は、風の基準位置wind_pos4と、風向きwind_dir4と、風
力wind_pow4と、風の影響範囲wind_dist4とが定義され
ている。
【0028】なおオブジェクトに対応付けられる仮想的
な風の数は複数でなく単数であってもよい。
【0029】図4にパーティクルデータ・テーブル30
0の一例を示す。各粒子オブジェクトには、パーティク
ル番号が付されており、パーティクル番号の欄301に
格納される。各粒子オブジェクトの現在位置座標(prtl
_pos)は、位置の欄303に格納される。各粒子オブジ
ェクトのデフォルトの移動方向(prtcl_dir)を表す単
位ベクトルは、方向の欄305に格納される。各粒子オ
ブジェクトのデフォルトの移動量(prtcl_pow)を表す
スカラ値は、力の欄307に格納される。各粒子オブジ
ェクトの移動方向を求めるために使用される、補間によ
り風向きが変更される場合における補間開始方向(prtc
l_windnowdir:単位ベクトル)は、風向変更の開始方向
の欄309に格納される。補間開始方向の初期値は、粒
子オブジェクトのデフォルトの移動方向である。各粒子
オブジェクトの移動方向を求めるために使用される、補
間により風向きが変更される場合における補間終了方向
(prtcl_windnextdir:単位ベクトル)は、風向変更の
終了方向の欄311に格納される。
【0030】各粒子オブジェクトの風から受ける風力
(prtcl_windpow)を表すスカラ値は、受ける風力の欄
313に格納される。各粒子オブジェクトに対する風向
きを変更するための補間処理において使用される最大補
間フレーム数(prtcl_windanimfrmmax)は、最大補間フ
レーム数の欄315に格納される。最大補間フレーム数
の初期値は、例えば16乃至32のうちのランダムな整
数である。各オブジェクトに対する風向きを変更するた
めの補間処理において使用される現在フレーム番号(pr
tcl_windanimfrm)は、現在フレーム番号の欄317に
格納される。現在フレーム番号の初期値は0である。各
粒子オブジェクトが現在受けている仮想的な風の現在の
風向き(prtcl_winddir)は、現在の風向きの欄319
に格納される。
【0031】図4において、パーティクル番号が1の粒
子オブジェクトの位置はpos1であり、移動方向はdir1で
あり、移動量はpow1である。また、パーティクル番号が
1の粒子オブジェクトの補間開始方向はwindnowdir1で
あり、補間終了方向はwindnextdir1であり、受ける風力
はwindpow1である。さらにパーティクル番号が1の粒子
オブジェクトの最大補間フレーム数はwindanimfrmmax1
であり、現在フレーム番号はwindanimfrm1であり、現在
の風向きはwinddir1である。
【0032】パーティクル番号が2の粒子オブジェクト
の位置はpos2であり、移動方向はdir2であり、移動量は
pow2である。また、パーティクル番号が2の粒子オブジ
ェクトの補間開始方向はwindnowdir2であり、補間終了
方向はwindnextdir2であり、受ける風力はwindpow2であ
る。さらにパーティクル番号が2の粒子オブジェクトの
最大補間フレーム数はwindanimfrmmax2であり、現在フ
レーム番号はwindanimfrm2であり、現在の風向きはwind
dir2である。
【0033】パーティクル番号が3の粒子オブジェクト
の位置はpos3であり、移動方向はdir3であり、移動量は
pow3である。また、パーティクル番号が3の粒子オブジ
ェクトの補間開始方向はwindnowdir3であり、補間終了
方向はwindnextdir3であり、受ける風力はwindpow3であ
る。さらにパーティクル番号が3の粒子オブジェクトの
最大補間フレーム数はwindanimfrmmax3であり、現在フ
レーム番号はwindanimfrm3であり、現在の風向きはwind
dir3である。
【0034】パーティクル番号が4の粒子オブジェクト
の位置はpos4であり、移動方向はdir4であり、移動量は
pow4である。また、パーティクル番号が4の粒子オブジ
ェクトの補間開始方向はwindnowdir4であり、補間終了
方向はwindnextdir4であり、受ける風力はwindpow4であ
る。さらにパーティクル番号が4の粒子オブジェクトの
最大補間フレーム数はwindanimfrmmax4であり、現在フ
レーム番号はwindanimfrm4であり、現在の風向きはwind
dir4である。
【0035】粒子オブジェクトの数は、予め固定されて
いなくともよい。後に述べるように例えばオブジェクト
に接触したことにより消滅させ、プログラムよってラン
ダムに発生させるようにしてもよい。粒子オブジェクト
を消滅させた場合にはパーティクルデータ・テーブル3
00から当該粒子オブジェクトのデータを削除する。ま
た、新たに発生させた場合には当該新たに発生した粒子
オブジェクトのデータをパーティクルデータ・テーブル
300に登録する。
【0036】なお本実施の形態に係るゲーム・プログラ
ム133もRAM105に格納されている。
【0037】次に、本実施の形態の概要を図5乃至図7
を用いて説明する。図5乃至図7は、列車であるオブジ
ェクト400が表示画面120の中央から右方向に移動
する場面を表している。このオブジェクト400は、C
PU103の演算処理又はプレイヤによるキーパッド1
61を用いた操作入力に応答して移動する。また、オブ
ジェクト400には仮想的な風k,l,m及びnが4つ
対応付けられている。オブジェクト400の進行方向を
前方とすると、仮想的な風の発生元の位置はオブジェク
ト400の後方(表示画面120内における左側)に定
義されている。仮想的な風kの影響範囲は二点鎖線で表
された範囲Kである。仮想的な風lの影響範囲は細かい
点線で表された範囲Lである。仮想的な風mの影響範囲
は粗い点線で表された範囲Mである。仮想的な風nの影
響範囲は一点鎖線で表された範囲Nである。各仮想的な
風の位置に表された三角形は風の向きを示している。
【0038】図5において、雪を表す粒子オブジェクト
a,b,c,d,e及びfは、オブジェクト400の上
部から発生され、デフォルトの方向にデフォルトの移動
量で移動する。デフォルトの方向及びデフォルトの移動
量は各粒子オブジェクトの下に表された矢印で表され
る。但し、粒子オブジェクトaは、仮想的な風k及びl
の影響範囲K及びLに入っている。なお、粒子オブジェ
クトaに一番近い仮想的な風は仮想的な風kである。ま
た、粒子オブジェクトbは、仮想的な風kの影響範囲K
に入っている。さらに、粒子オブジェクトdは、移動す
るとオブジェクト400に接触するので、次のフレーム
では消滅する。
【0039】図6は図5に示された状態から数フレーム
後の状態を示している。列車であるオブジェクト400
の先頭部分は表示画面120から外れてしまっている。
仮想的な風k,l,m及びnはオブジェクト400の移
動と共に移動している。オブジェクト400と仮想的な
風k,l,m及びnの相対的な位置は変化しない。
【0040】図6において粒子オブジェクトaは全ての
仮想的な風の影響範囲に入っているが、最初に影響を受
けた仮想的な風kの風向きに応じて移動している。粒子
オブジェクトbも仮想的な風k,l及びnの影響範囲
K,L及びNに入っているが、最初に影響を受けた仮想
的な風kの風向きに応じて移動している。粒子オブジェ
クトcは仮想的な風kの影響範囲Kに入っており、仮想
的な風kの風向きに応じて移動している。なお、粒子オ
ブジェクトの移動方向については本発明に係るプログラ
ムの処理フローにおいて詳しく述べる。粒子オブジェク
トe及びfについてはデフォルトの方向にデフォルトの
移動量で移動する。
【0041】図7は図6に示された状態から数フレーム
後の状態を示している。列車であるオブジェクト400
は、後端部を残して表示画面120から外れてしまって
いる。仮想的な風k,l,m及びnはオブジェクト40
0の移動と共に移動している。オブジェクト400と仮
想的な風k,l,m及びnの相対的な位置は変化しな
い。
【0042】図7において粒子オブジェクトaは既に全
ての仮想的な風の影響範囲から脱している。しかし、最
後に影響を受けた仮想的な風lの風向きに応じて移動し
ている。粒子オブジェクトbは、仮想的な風k以外の影
響範囲L,M及びNに入っているが、仮想的な風mの影
響が残っており、仮想的な風mの風向きに応じた方向に
移動している。粒子オブジェクトcは、全ての仮想的な
風の影響範囲に入っているが、最も近い仮想的な風lの
風向きに応じた方向に移動している。粒子オブジェクト
eは図7の状態になる前にオブジェクト400に接触し
て消滅させられている。粒子オブジェクトfは全ての仮
想的な風の影響範囲に入っているが、最初に影響を受け
た仮想的な風kの風向きに応じた方向に移動している。
【0043】図5乃至図7にて説明したように、本実施
の形態においてはオブジェクトの移動に伴い仮想的な風
の影響範囲も移動する。そして、粒子オブジェクトは影
響を受けた仮想的な風の風向きに応じた方向に移動す
る。
【0044】以上のような前提を元にして以下に本実施
の形態にかかる処理フローを説明する。
【0045】CPU103は、起動時に、ROM104
等に記憶されているオペレーティングシステムに基づ
き、CD−ROMドライブ113を介してCD−ROM
131から画像処理やゲームの実行に必要なゲームプロ
グラム133やデータ135を読み出し、RAM105
に転送させる。そして、CPU103は、RAM105
に転送されたゲームプログラム133を実行することに
より、以下に記載する処理を実現する。
【0046】なお、家庭用ゲーム装置101で行われる
制御及び処理の中には、CPU103以外の回路がCP
U103と協働して実際の制御及び処理を行っている場
合もある。説明の便宜上、以下では、CPU103が関
係する制御及び処理は、CPU103が直接的に実行し
ているものとして説明する。
【0047】また、画像処理やゲームを実行するために
必要なゲームプログラム133やデータ135は、実際
にはCPU103からの命令に従って処理の進行状況に
応じて順次CD−ROM131から読み出されてRAM
105に転送される。しかし、以下に示す説明では、発
明の理解を容易にするため、CD−ROM131からの
データの読み出しや、RAM105への転送に関する記
述は省略している。
【0048】もし画像処理やゲームを実行するために必
要なゲームプログラム133やデータ135がHDD1
07に格納されている場合には、CPU103からの命
令に従って処理の進行状況に応じて順次HDD107か
ら読み出されてRAM105に転送される。しかし、以
下に示す説明では、上で述べたのと同様の理由で、HD
D107からのデータの読み出しや、RAM105への
転送に関する記述は省略している。
【0049】図8にオブジェクト及び粒子オブジェクト
の表示処理のメイン・フローを示す。最初に、オブジェ
クトの移動処理が実施される(ステップS1)。例え
ば、ユーザによるキーパッド161の操作に応じて又は
プログラムから指示に従って、オブジェクトの移動量を
計算し、オブジェクトの位置を決定する。次に、粒子オ
ブジェクトの移動処理が実施される(ステップS3)。
粒子オブジェクトの移動処理については後に詳しく述べ
る。
【0050】次にオブジェクトと接触した粒子オブジェ
クトについては処理対象から除外するための処理が実施
される(ステップS5)。オブジェクトと粒子オブジェ
クトが接触したか否かについては例えば以下のような処
理にて判断する。
【0051】例えば図9に示したように、移動前の粒子
オブジェクト501が位置500aから位置500bに
移動した時に、オブジェクト400(図5に示す)に接
触したか否かを判断する場合を想定する。この場合、オ
ブジェクト400を内包する直方体のオブジェクト40
0aを想定する。このオブジェクト400a内におい
て、最も小さいx座標値Vxminと、最も大きいx座標値
Vxmaxを見つけ、移動後の粒子オブジェクト502の位
置500bのx座標がVxmin以上Vxmax以下であるか判
断する。もし、粒子オブジェクト502の位置500b
のx座標がVxmin以上Vxmax以下である場合には、オブ
ジェクト400a内において、最も小さいy座標値Vym
inと、最も大きいy座標値Vymaxを見つけ、粒子オブジ
ェクト502の位置500bのy座標がVymin以上Vym
ax以下であるか判断する。
【0052】もし、粒子オブジェクト502の位置50
0bのy座標がVymin以上Vymax以下である場合には、
オブジェクト400a内において、最も小さいz座標値
Vzminと、最も大きいz座標値Vzmaxを見つけ、粒子オ
ブジェクト502の位置500bのz座標がVzmin以上
Vzmax以下であるか判断する。もし、粒子オブジェクト
500の位置500bのz座標がVzmin以上Vzmax以下
である場合には、粒子オブジェクト502はオブジェク
ト400aに接触する。上で述べたいずれかの条件を満
たさない場合には、接触したとはみなされない。なお、
図9では点Vminはオブジェクト400aにおいてx,
y,z座標値が全て最も小さい点であり、点Vmaxはオ
ブジェクト400においてx,y,z座標値が全て最も
大きい点である。オブジェクト400aに接触した場合
には、オブジェクト400(図5に示す)にも接触する
ものと判断する。
【0053】以上のように粒子オブジェクトがオブジェ
クトに接触していると判断されると、当該粒子オブジェ
クトは処理の対象外とされ、当該粒子オブジェクトのデ
ータはパーティクルデータ・テーブル300から消去さ
れる。
【0054】次にオブジェクトの描画処理が行われる
(ステップS7)。オブジェクトについて光源計算及び
透視変換が実施され、結果がフレームバッファ112に
書き込まれる。透視変換は、世界座標系のポリゴンの各
頂点の座標値をスクリーン座標系における座標値に変換
するものである。そして透視変換後の画像がフレームバ
ッファ112に描画される。光源計算は、光源から発せ
られた仮想的な光線により生じる陰影(輝度)を計算す
るものである。
【0055】また粒子オブジェクトの描画処理が行われ
る(ステップS9)。粒子オブジェクトについて光源計
算及び透視変換が実施され、結果がフレームバッファ1
12に書き込まれる。そして、フレームバッファ112
の内容が表示される(ステップS10)。
【0056】その後ゲーム終了か否かが判断される(ス
テップS11)。ゲームを終了させるか否かは、例えば
ユーザがキーパッド161を操作してゲーム終了を命じ
たか又はゲームのストーリー上ゲーム終了の条件が満た
されたかに基づき判断される。ゲームを終了させない場
合には、ステップS1に戻る。ゲームを終了させる場合
には処理を終了させる。
【0057】次に図10乃至図13を用いて粒子オブジ
ェクト移動処理を説明する。図8のステップS1におけ
るオブジェクトの移動処理を行っているので、前フレー
ムのオブジェクトの位置と現フレームのオブジェクトの
位置からオブジェクトの移動ベクトルが取得される(ス
テップS23)。そして、仮想的な風の位置をオブジェ
クトの移動に伴い移動させるために、仮想的な風の基準
位置wind_posにオブジェクトの移動ベクトルが加算され
る(ステップS25)。
【0058】次に、粒子オブジェクトのカウンタである
sが1に初期化され(ステップS27)、粒子オブジェ
クトのカウンタsの値が粒子オブジェクトの個数nを超
えたかが判断される(ステップS29)。もし、全粒子
オブジェクトを実施した場合には、処理を終了する。一
方、全ての粒子オブジェクトを処理していない場合に
は、s番目の粒子オブジェクトについて、prtcl_dir
(粒子オブジェクトのデフォルトの移動方向)×prtcl_
pow(粒子オブジェクトのデフォルトの移動量)により
粒子オブジェクトのデフォルトの移動ベクトルが計算さ
れる(ステップS31)。
【0059】そして粒子オブジェクトの位置prtcl_pos
に移動ベクトルが加算される(ステップS33)。加え
て、重力が存在する場合には、粒子オブジェクトの位置
prtcl_posに重力ベクトルが加算される(ステップS3
5)。ここで端子Aを介して図11に移行する。
【0060】図11ではまず粒子オブジェクトの位置pr
tcl_posと仮想的な風の基準位置wind_posから最も近い
仮想的な風の探索が行われる(ステップS37)。ステ
ップS37では、例えば粒子オブジェクトの位置と各仮
想的な風の基準位置との距離が順番に求められ、最も小
さい値を有する仮想的な風との距離及び当該仮想的な風
の番号が保持される。これにより、全ての仮想的な風に
ついて処理した時点で、最も近い仮想的な風を探し出す
ことができる。
【0061】次に、最も近い仮想的な風との距離がその
影響範囲wind_dist以下であるかが判断される(ステッ
プS39)。すなわち、現在処理されている粒子オブジ
ェクトが最も近い仮想的な風の影響範囲に包含されてい
るか否かが判断される。もし、現在処理されている粒子
オブジェクトが最も近い仮想的な風の影響範囲に入って
いなければ、端子Bを介して図12の処理に移行する。
一方、現在処理されている粒子オブジェクトが最も近い
仮想的な風の影響範囲に入っていれば、現在フレーム番
号prtcl_windanimfrmが最大補間フレーム数prtcl_winda
nimfrmmax以上となっているかが判断される(ステップ
S41)。もし、prtcl_windanimfrmが最大補間フレー
ム数prtcl_windanimfrmmax未満である場合には、端子C
を介して図12の処理に移行する。ここで、図5に示し
た例のように、雪のオブジェクトを画面の上方から下方
へ移動させる場合、オブジェクトを画面上方で発生させ
た直後は、仮想的な風の影響範囲に入っていない。その
後、仮想的な風の影響範囲に入るが、仮想的な風の影響
範囲に入ったフレームでは、最大補間フレーム数に現在
フレーム番号が達していない。そこで、図12の処理を
先に説明する。
【0062】図12では、端子Bを介してステップS5
3に移行して、ステップS55乃至ステップS63の処
理を一度でも行ったことがあるか判断される。例えば、
初めての処理において最も近い仮想的な風の影響範囲に
入っていなければ、ステップS55の補間処理を一度も
行っていないということになる。このような場合には、
粒子オブジェクトのカウンタであるsを1インクリメン
トし(ステップS54)、端子Dを介して図10のステ
ップS29に戻る。
【0063】一方、ステップS55の補間処理を一度で
も実行したことがある場合や、prtcl_windanimfrmが最
大補間フレーム数prtcl_windanimfrmmax未満である場合
(端子Dの場合)には、当該粒子オブジェクトが影響を
受ける現在の風向きprtcl_winddirを計算する(ステッ
プS55)。prtcl_winddirは、以下のような式で計算
される。 prtcl_winddir=prtcl_windnowdir+ (prtcl_windnextdir−prtcl_windnowdir) /prtcl_windanimfrmmax×prtcl_windanimfrm (1)
【0064】(1)式は、補間開始方向prtcl_windnowd
irから補間終了方向prtcl_windnextdirまでを最大補間
フレームに渡って補間することを示している。prtcl_wi
ndnowdirの初期値は、粒子オブジェクトのデフォルトの
移動方向prtcl_dirであり、prtcl_windnextdirの初期値
は影響を受ける仮想的な風の風向きwind_dirである。
【0065】次に、現在フレーム番号prtcl_windanimfr
mを1インクリメントする(ステップS57)。ステッ
プS57はステップS63までの間に行われればよく、
順番を入れ替えることができる。そして、粒子オブジェ
クトの位置prtcl_posを変更する(ステップS59)。
粒子オブジェクトの位置prtcl_posは以下の式にて計算
される。 prtcl_pos=prtcl_pos+prtcl_winddir×prtcl_windpow (2) 但し、影響を受ける仮想的な風からの力prtcl_windpow
の初期値は、以下の式にて計算される。 prtcl_windpow=(1.0−(風との距離/wind_dist))×wind_pow (3) (3)式において「風との距離」とは、s番目の粒子オ
ブジェクトの位置prtcl_posと、その粒子オブジェクト
に最も近い仮想的な風との距離である。
【0066】(3)式は影響を受ける仮想的な風からの
力を、仮想的な風の基準位置からの距離に比例して小さ
くすることを示している。すなわち仮想的な風の基準位
置と粒子オブジェクトの位置が近ければ近いほど仮想的
な風の風力に近づき、遠くなれば遠くなるほど小さくな
る。
【0067】粒子オブジェクトの位置を計算するのに用
いた、影響を受ける仮想的な風からの力prtcl_windpow
はフレームが進む毎に弱められる。すなわちステップS
61において、次回の計算のためにprtcl_windpowは
0.99倍されている。但し、0.99は一例であって
1未満の他の値を用いてもよい。
【0068】そして、他の粒子オブジェクトへの処理に
移行すべく、粒子オブジェクトのカウンタsの値を1イ
ンクリメントする(ステップS63)。端子Dを介して
図10のステップS29に戻る。
【0069】以上述べたようにステップS55乃至ステ
ップS63で行われる処理は、同じ粒子オブジェクトに
ついて図11のステップS41でprtcl_windanimfrm≧p
rtcl_windanimfrmmaxと判断されるまで繰り返される。
ステップS41でprtcl_windanimfrm≧prtcl_windanimf
rmmaxと判断された場合には、現在フレーム番号prtcl_w
indanimfrmを0にリセットする(ステップS43)。そ
して、補間開始方向prtcl_windnowdirに今までの補間終
了方向prtcl_windnextdirを代入する(ステップS4
5)。また、補間終了方向prtcl_windnextdirに、最も
近い仮想的な風の風向きwind_dirを所定の範囲でランダ
ムに変更した方向を代入する(ステップS47)。
【0070】そして、影響を受ける仮想的な風からの力
prtcl_windpowを上で述べた(1)式で計算し直す(ス
テップS49)。また、最大補間フレーム数prtcl_wind
animfrmmaxに例えば16乃至32のランダムな整数を代
入する(ステップS51)。この後ステップS43乃至
S51にて設定した新たな条件の下、端子Bを介して接
続される図12の処理を実施する。
【0071】ここで図13乃至図19を用いて、一つの
粒子オブジェクトの移動について簡単な例を示してお
く。
【0072】図13には粒子オブジェクト500が1つ
存在しており、仮想的な風も1つ存在している。仮想的
な風の基準位置w0は、対応付けられたオブジェクトの
移動に伴い位置w1に移動したとする。仮想的な風の影
響範囲は、仮想的な風の新たな基準位置w1を中心とし
且つ距離wind_distを半径とする球となり、図13では
点線で表される。
【0073】最初に、図10のステップS31乃至S3
5の処理にて、粒子オブジェクト500のデフォルトの
移動ベクトル及び重力ベクトルが粒子オブジェクト50
0の位置p0に加算される。移動ベクトル及び重力ベク
トルが加算されると、粒子オブジェクト500の位置は
p1に移動する。
【0074】次に図11のステップS37及びS39で
粒子オブジェクト500の位置p1が最も近い仮想的な
風の影響範囲に入っているか判断される。図13では影
響範囲を表す点線の範囲に、粒子オブジェクト500の
位置p1は含まれており、当該仮想的な風の影響を受け
ると判断される。初めて粒子オブジェクト500が仮想
的な風の影響範囲に入ったとすると、現在フレーム番号
prtcl_windanimfrmは0であり、且つ最大補間フレーム
数prtcl_windanimfrmmaxは上で述べた例では16から3
2のランダムな整数である。よって、図11のステップ
S41では端子Cを介して図12に移行する。なお、説
明を簡単にするために、以下では最大補間フレーム数pr
tcl_windanimfrmmaxは3であるとする。
【0075】端子Cを介して図12の処理に移行する
と、ステップS55において現在受けている仮想的な風
の風向きprtcl_winddirを計算する。図14に示すよう
に、水平方向に補間終了方向prtcl_windnextdirが設定
されており、垂直方向に補間開始方向prtcl_windnowdir
が設定されている場合には、補間終了方向prtcl_windne
xtdirの始点と補間開始方向prtcl_windnowdirの始点を
同一にし、補間終了方向prtcl_windnextdirの終点と補
間開始方向prtcl_windnowdirの終点を結んだ線分を計算
する。そして、当該線分を最大補間フレーム数prtcl_wi
ndanimfrmmaxで均等に分割した点を各々終点とし、補間
開始方向prtcl_windnowdir及び補間終了方向prtcl_wind
nextdirの始点を始点とする各ベクトルv1,v2が求め
られる。最初の表示フレームでは現在受けている風の風
向きprtcl_winddirはベクトルv0(=prtcl_windnowdi
r)となり、二番目の表示フレームでprtcl_winddirはベ
クトルv1となり、三番目のフレームでprtcl_winddirは
ベクトルv2となる。v1及びv2は単位ベクトルではな
いので、単位ベクトルにすることも可能である。
【0076】次に現在フレーム番号prtcl_windanimfrm
を1インクリメントした後(prtcl_windanimfrm=
1)、粒子オブジェクト500の表示すべき位置p2を
決定する(ステップS59)。ステップS59では、ス
テップS55で求められた現在受けている仮想的な風の
風向きprtcl_winddir(=v0=prtcl_windnowdir)と、
初期的には仮想的な風の基準位置w1と粒子オブジェク
ト500の位置p1との距離に応じて変化する、影響を
受ける仮想的な風からの力prtcl_windpowとを用いて、
粒子オブジェクト500の表示すべき位置p2を計算す
る。(3)式で影響を受ける仮想的な風からの力prtcl_
windpowは計算されるが、本例では簡単のためwind_pow
=1であるものとする。そうすると、図15に示すよう
に、粒子オブジェクト500の表示すべき位置p2は、
ベクトルv0上で且つベクトルv0の始点寄りの位置とな
る。これは、(3)式の(1.0−(風との距離/wind_dis
t))の部分から生ずる。
【0077】これにて最初の表示フレームにおける粒子
オブジェクト500の位置p2が決定された。次のフレ
ームのための処理として図12のステップS61(影響
を受ける仮想的な風からの力を弱める処理)及び次の粒
子オブジェクトのための処理としてステップS63(本
例では粒子オブジェクトは1つであるから実質的にスキ
ップできる)が行われる。
【0078】第2の表示フレームにおける処理を図16
及び図17を用いて説明する。図16では、仮想的な風
は位置w1からさらに位置w2まで、対応付けられたオブ
ジェクトと共に移動している。粒子オブジェクト500
の位置は位置p2にデフォルトの移動ベクトル及び重力
ベクトルが加算される。移動ベクトル及び重力ベクトル
が加算されると、粒子オブジェクト500の位置はp3
に移動する。
【0079】仮想的な風の影響範囲は、位置w2からwin
d_dist離れた範囲にまで及ぶ。よって、今回もステップ
S37及びS39(図11)において、粒子オブジェク
ト500は当該仮想的な風の影響範囲に入っていると判
断される。また、最初の表示フレームのための処理にお
いて現在フレーム番号prtcl_windanimfrmは1インクリ
メントされており、1である。最大補間フレーム数prtc
l_windanimfrmmax=3であるから、ステップS41にお
いて端子Cを介して図12の処理に移行する。
【0080】図12のステップS55では図14で述べ
たような計算が行われて、本表示フレームではベクトル
v1が影響を受ける仮想的な風の風向きprtcl_winddirと
して得られる。ステップS57では現在フレーム番号pr
tcl_windanimfrmが1インクリメントされ、prtcl_winda
nimfrm=2となる。ステップS59では、前の表示フレ
ームにおけるステップS61の計算で弱められた、影響
を受ける仮想的な風からの力prtcl_windpowと、ステッ
プS55で求められたprtcl_winddirを用いて表示すべ
き粒子オブジェクト500の位置p4が計算される。図
17に示したように、粒子オブジェクト500の位置p
4は、ステップS55において求められたベクトルv1上
にあり、且つベクトルv1の始点寄りに存在している。
【0081】これにて第2の表示フレームにおける粒子
オブジェクト500の位置p4が決定された。ステップ
S61ではさらにprtcl_windpowが小さくされる。
【0082】第3の表示フレームにおける処理を図18
を用いて説明する。図18では、仮想的な風は位置w2
からさらに位置w3まで、対応付けられたオブジェクト
と共に移動している。粒子オブジェクト500の位置は
位置p4にデフォルトの移動ベクトル及び重力ベクトル
が加算される。移動ベクトル及び重力ベクトルが加算さ
れると、粒子オブジェクト500の位置はp5に移動す
る。
【0083】仮想的な風の影響範囲は、位置w3からwin
d_dist離れた範囲にまで及ぶ。よって、今回もステップ
S37及びS39(図11)において、粒子オブジェク
ト500は当該仮想的な風の影響範囲に入っていると判
断される。また、最初の表示フレームのための処理にお
いて現在フレーム番号prtcl_windanimfrmは1インクリ
メントされて2である。最大補間フレーム数prtcl_wind
animfrmmax=3であるから、ステップS41において端
子Cを介して図12の処理に移行する。
【0084】図12のステップS55では図14で述べ
たような計算が行われて、本表示フレームではベクトル
v2が影響を受ける仮想的な風の風向きprtcl_winddirと
して得られる。ステップS57では現在フレーム番号pr
tcl_windanimfrmが1インクリメントされ、prtcl_winda
nimfrm=3となる。ステップS59では、前の表示フレ
ームにおけるステップS61の計算で弱められた、影響
を受ける仮想的な風からの力prtcl_windpowと、ステッ
プS55で求められたprtcl_winddirを用いて表示すべ
き粒子オブジェクト500の位置p6が計算される。粒
子オブジェクト500の位置p6は、ステップS55に
おいて求められたベクトルv2上にあり、且つベクトル
v2の始点寄りに存在している。ベクトルv1とベクトル
v2の長さが同じであれば、p3とp4の距離はp5とp6
の距離よりも長くなる。これは前の表示フレームにおけ
るステップS61の計算にてprtcl_windpowが小さくさ
れているからである。
【0085】これにて第3の表示フレームにおける粒子
オブジェクト500の位置p6が決定された。ステップ
S61ではさらにprtcl_windpowが小さくされる。
【0086】第4の表示フレームにおける処理は第1乃
至第3の表示フレームにおける処理とは多少異なる。図
10のステップS31乃至S35の処理は前とは変わら
ないが、最も近い仮想的な風の影響範囲に入っていると
図11のステップS37及びS39の処理で判断された
場合には、ステップS41でprtcl_windanimfrm=prtcl
_windanimfrmmax=3であるから、端子Cを介して図1
2の処理に移行するのではなく、ステップS43に移行
する。ステップS43では現在フレーム番号が0に初期
化される。そして、補間開始方向prtcl_windnowdirに補
間終了方向prtcl_windnextdirを代入する(ステップS
45)。図13乃至図18で説明した例では、図19
(a)に示したように新たなprtcl_windnowdirは水平方
向を向いていた旧prtcl_windnextdirと同じになる。
【0087】次に、ステップS45で新たな補間終了方
向prtcl_windnextdirを決定する。ステップS37で最
も近い仮想的な風が特定できているので、特定されてい
る仮想的な風の風向きwind_dirを用いて補間終了方向pr
tcl_windnextdirを決定する。但し、wind_dirをそのま
ま使用しないで、wind_dirを中心とした所定のランダム
範囲から補間終了方向prtcl_windnextdirを決定する。
【0088】図13乃至図18で説明した例では、第4
の表示フレームにおいても粒子オブジェクト500に最
も近い仮想的な風は変わらないので、図19(b)に示
すようにwind_dir(=旧prtcl_windnextdir)を中心と
したランダム範囲内において、新たなprtcl_windnextdi
rが決定される。第4の表示フレーム以降は、図19
(c)に示したような補間終了方向prtcl_windnextdir
が用いられるようになる。
【0089】次に、影響を受ける仮想的な風からの力pr
tcl_windpowも、新たな最も近い仮想的な風について
(3)式に基づき計算される。そしてステップS51で
最大補間フレーム数も16乃至32のうちのランダムな
整数に再設定される。以下、端子Bを介して図12の処
理に移行する。第4の表示フレーム以降も、図13乃至
図18において説明した処理を新たなprtcl_windnowdi
r,prtcl_windnextdir,prtcl_windpow,prtcl_windani
mfrm,prtcl_windanimfrmmaxを用いて計算する。
【0090】このように、実施の形態1では、仮想三次
元空間内のオブジェクトが、プレイヤの操作入力また
は、予め決められた規則に基づいて移動されると、その
オブジェクトに対応付けられた仮想的な風の影響範囲が
移動する。また、雪を表す粒子オブジェクトと風の影響
範囲との位置関係に基づいて、粒子オブジェクトの移動
条件が決定される。すなわち、粒子オブジェクトと風の
影響範囲との位置関係が変化すれば、それに応じて粒子
オブジェクトの移動条件も変化する。そして、粒子オブ
ジェクトは、移動条件にしたがって移動する。
【0091】現実の世界で風が発生した場合、その風の
強さは場所によって異なる。また、移動する物体(たと
えば、列車)の移動によって発生する風は、その発生場
所が逐次移動する。実施の形態1によれば、風の影響範
囲と雪を表す粒子オブジェクトとの関係に応じて、粒子
オブジェクトの移動方向や移動速度を変えることができ
る。したがって、場所によって強さの異なる風により雪
が舞い散るような画像表示を、コンピュータに実行させ
ることができる。また、風の影響範囲を、時間進行に伴
い移動させることができる。そのため、発生場所が移動
する風の影響により雪が舞い散るような画像表示を、コ
ンピュータに実行させることができる。
【0092】(実施の形態2)実施の形態1に示した図
10乃至図12の処理フローは様々な変形が可能であ
る。実施の形態1では、一度最も近い仮想的な風が見つ
かると、例え最も近い仮想的な風が他の仮想的な風に変
わっても、ステップS55乃至S63の処理を現在フレ
ーム番号prtcl_windanimfrmが最大補間フレーム数prtcl
_windanimfrmmax以上になるまで繰り返すような処理フ
ローとなっている。しかし以下に示すように、2度目以
降の補間処理において最も近い仮想的な風が他の仮想的
な風に変化した場合には、他の仮想的な風に影響を受け
るような処理フローに変更することも可能である。
【0093】実施の形態2における処理フローを以下に
説明する。実施の形態2のメイン・フローは図8に示さ
れている限りにおいて同じである。すなわち最初に、オ
ブジェクトの移動処理が実施される(ステップS1)。
例えば、ユーザによるキーパッド161の操作に応じて
又はプログラムから指示に従って、オブジェクトの移動
量を計算し、オブジェクトの位置を決定する。次に、粒
子オブジェクトの移動処理が実施される(ステップS
3)。粒子オブジェクトの移動処理については後に詳し
く述べる。
【0094】次にオブジェクトと接触した粒子オブジェ
クトについては処理対象から除外するための処理が実施
される(ステップS5)。粒子オブジェクトがオブジェ
クトに接触していると判断されると、当該粒子オブジェ
クトは処理の対象外とされ、当該粒子オブジェクトのデ
ータはパーティクルデータ・テーブル300から消去さ
れる。
【0095】次にオブジェクトの描画処理が行われる
(ステップS7)。オブジェクトについて光源計算及び
透視変換が実施され、結果がフレームバッファ112に
書き込まれる。また粒子オブジェクトの描画処理が行わ
れる(ステップS9)。粒子オブジェクトについて光源
計算及び透視変換が実施され、結果がフレームバッファ
112に書き込まれる。そして、フレームバッファ11
2の内容が表示される(ステップS10)。
【0096】その後ゲーム終了か否かが判断される(ス
テップS11)。ゲームを終了させるか否かは、例えば
ユーザがキーパッド161を操作してゲーム終了を命じ
たか又はゲームのストーリー上ゲーム終了の条件が満た
されたかに基づき判断される。ゲームを終了させない場
合には、ステップS1に戻る。ゲームを終了させる場合
には処理を終了させる。
【0097】次に図10、図12及び図20を用いて粒
子オブジェクト移動処理を説明する。最初に、図8のス
テップS1におけるオブジェクトの移動処理を行ってい
るので、前フレームのオブジェクトの位置と現フレーム
のオブジェクトの位置からオブジェクトの移動ベクトル
が取得される(ステップS23)。そして、仮想的な風
の位置をオブジェクトの移動に伴い移動させるために、
仮想的な風の基準位置wind_posにオブジェクトの移動ベ
クトルを加算する(ステップS25)。
【0098】次に、粒子オブジェクトのカウンタである
sが1に初期化され(ステップS27)、粒子オブジェ
クトのカウンタsの値が粒子オブジェクトの個数nを超
えたかが判断される(ステップS29)。もし、全粒子
オブジェクトの処理を実施した場合には、処理を終了す
る。一方、全ての粒子オブジェクトを処理していない場
合には、s番目の粒子オブジェクトについて、prtcl_di
r(粒子オブジェクトのデフォルトの移動方向)×prtcl
_pow(粒子オブジェクトのデフォルトの移動量)により
粒子オブジェクトのデフォルトの移動ベクトルを計算す
る(ステップS31)。
【0099】そして粒子オブジェクトの位置prtcl_pos
に移動ベクトルを加算する(ステップS33)。加え
て、重力が存在する場合には、粒子オブジェクトの位置
prtcl_posに重力ベクトルを加算する(ステップS3
5)。ここで端子Aを介して図20に移行する。
【0100】図20では、初めての補間を実施中である
かが判断される(ステップS71)。初めての補間を実
施中とは、図12におけるステップS55を少なくとも
一度は実施しており且つ現在フレーム番号prtcl_windan
imfrmが一度も最大補間フレーム数prtcl_windanimfrmma
xに達していない状態を意味する。よって、一度もステ
ップS55を実施していないような最初の処理において
はステップS73に移行する。そして、粒子オブジェク
トの位置prtcl_posと仮想的な風の基準位置wind_posか
ら最も近い仮想的な風の探索が行われる(ステップS7
3)。ステップS73では、粒子オブジェクトの位置と
各仮想的な風の基準位置との距離を順番に求め、最も小
さい値を有する仮想的な風の距離及び当該仮想的な風の
番号を保持しておけば、全ての仮想的な風について処理
した時点で、最も近い仮想的な風を探し出すことができ
る。
【0101】次に、最も近い仮想的な風との距離がその
影響範囲wind_dist以下であるかが判断される(ステッ
プS75)。もし、現在処理されている粒子オブジェク
トが最も近い仮想的な風の影響範囲に入っていなけれ
ば、端子Bを介して図12の処理に移行する。一方、現
在処理されている粒子オブジェクトが最も近い仮想的な
風の影響範囲に入っていれば、最も近い仮想的な風が他
の仮想的な風に変化したかが判断される(ステップS7
7)。もし、影響を受ける最も近い仮想的な風に変化が
ある場合には、ステップS55における補間を、新たに
影響を受けるようになった最も近い仮想的な風を基に行
うため、現在フレーム番号prtcl_windanimfrmが最大補
間フレーム数prtcl_windanimfrmmaxに達したことにする
(ステップS79)。一方、影響を受ける最も近い仮想
的な風に変化がない場合には、ステップS81に移行す
る。初めて仮想的な風の影響範囲に入った場合にも、影
響を受ける最も近い仮想的な風に変化がないと判断され
る。
【0102】ステップS77の後又はステップS79の
後に、現在フレーム番号prtcl_windanimfrmが最大補間
フレーム数prtcl_windanimfrmmax以上となっているかが
判断される(ステップS81)。もし、prtcl_windanim
frmが最大補間フレーム数prtcl_windanimfrmmax未満で
ある場合には、端子Cを介して図12の処理に移行す
る。ステップS55の処理を一度も実施していない場合
には、当然最大補間フレーム数に現在フレーム番号が達
していないので、図12の処理を先に説明する。
【0103】図12では、端子Bを介してステップS5
3に移行して、ステップS55の補間処理を一度でも行
ったことがあるか判断される。例えば、初めての処理に
おいて最も近い仮想的な風の影響範囲に入っていなけれ
ば、ステップS53において補間処理を一度も行ってい
ないということになる。このような場合には、粒子オブ
ジェクトのカウンタであるsが1インクリメントされ
(ステップS54)、端子Dを介して図10のステップ
S29に戻る。
【0104】一方、補間処理を一度でも実行したことが
ある場合や、prtcl_windanimfrmが最大補間フレーム数p
rtcl_windanimfrmmax未満である場合(端子Dの場合)
には、当該粒子オブジェクトが受ける現在の風向きprtc
l_winddirが計算される(ステップS55)。prtcl_win
ddirは、(1)式に従って計算される。(1)式は、補
間開始方向prtcl_windnowdirから補間終了方向prtcl_wi
ndnextdirまでを最大補間フレームに渡って補間するこ
とを示している。prtcl_windnowdirの初期値は、粒子オ
ブジェクトのデフォルトの移動方向prtcl_dirであり、p
rtcl_windnextdirの初期値は影響を受ける仮想的な風の
風向きwind_dirである。
【0105】次に、現在フレーム番号prtcl_windanimfr
mが1インクリメントされる(ステップS57)。そし
て、粒子オブジェクトの位置prtcl_posが変更される
(ステップS59)。粒子オブジェクトの位置prtcl_po
sは(2)式にて計算される。
【0106】但し、影響を受ける仮想的な風からの力pr
tcl_windpowの初期値は、(3)式にて計算される。
(3)式は影響を受ける仮想的な風からの力prtcl_wind
dirを仮想的な風の基準位置からの距離に比例して小さ
くすることを示している。
【0107】粒子オブジェクトの位置を計算するのに用
いた、影響を受ける仮想的な風からの力prtcl_windpow
は弱められる。すなわちステップS61において、次回
の計算のためにprtcl_windpowは0.99倍されてい
る。但し、0.99は一例であって1未満の他の値を用
いてもよい。
【0108】そして、他の粒子オブジェクトへの処理に
移行すべく、粒子オブジェクトのカウンタsの値が1イ
ンクリメントされる(ステップS63)。端子Dを介し
て図10のステップS29に戻る。
【0109】以上述べたようにステップS55乃至ステ
ップS63の処理は、同じ粒子オブジェクトについて図
11のステップS41で現在フレーム番号prtcl_windan
imfrmが最大補間フレーム数prtcl_windanimfrmmaxに達
したと判断されるまで繰り返される。
【0110】もし、最初の補間処理が終了したと判断さ
れる、すなわちprtcl_windanimfrmがprtcl_windanimfrm
maxに到達した場合、処理はステップS71からステッ
プS73に移行して、再度最も近い仮想的な風を探す。
もし、粒子オブジェクトが最も近い仮想的な風の影響範
囲外である場合には端子Bを介して図12の処理に移行
する。
【0111】一方、粒子オブジェクトが最も近い仮想的
な風の影響範囲内である場合には、影響を受ける最も近
い仮想的な風が変化したかが判断される(ステップS7
7)。仮想的な風の基準位置及び粒子オブジェクトは移
動するので、変化する可能性がある。もし、影響を受け
る最も近い仮想的な風に変化があった場合には、現在フ
レーム番号prtcl_windanimfrmを最大補間フレーム数prt
cl_windanimfrmmaxに達したものと設定する(ステップ
S79)。影響を受ける最も近い仮想的な風に変化がな
ければ、ステップS81に移行する。
【0112】そしてステップS81ではprtcl_windanim
frm≧prtcl_windanimfrmmaxか判断する。prtcl_windani
mfrm≧prtcl_windanimfrmmaxと判断された場合には、現
在フレーム番号prtcl_windanimfrmが0にリセットされ
る(ステップS83)。そして、補間開始方向prtcl_wi
ndnowdirに今までの補間終了方向prtcl_windnextdirが
代入される(ステップS85)。また、補間終了方向pr
tcl_windnextdirに、最も近い仮想的な風の風向きwind_
dirを所定の範囲でランダムに変更した方向が代入され
る(ステップS87)。
【0113】そして、影響を受ける仮想的な風からの力
prtcl_windpowが上で述べた(1)式で計算し直される
(ステップS89)。また、最大補間フレーム数prtcl_
windanimfrmmaxに例えば16乃至32のランダムな整数
が代入される(ステップS91)。この後ステップS8
3乃至S91にて設定した新たな条件の下、端子Bを介
して接続される図12の処理を実施する。
【0114】図13乃至図19で説明した例は、実施の
形態2でも同様である。但し、仮想的な風の数が複数の
場合には、prtcl_windanimfrmが最初にprtcl_windanimf
rmmaxになった後は、prtcl_windnowdirとprtcl_windnex
tdirとが頻繁に変更される可能性がある。
【0115】以上述べたように、本実施の形態により、
仮想三次元空間内における仮想的な風の影響範囲を、当
該風に予め対応付けられたオブジェクトの移動に伴い移
動し(ステップS23及びS25)、各粒子オブジェク
トが、移動された仮想的な風の影響範囲に基づき仮想的
な風から影響を受けるか否か判断する(ステップS37
及びS39)。そして、影響を与える仮想的な風の風向
きに応じて、影響を受けると判断された粒子オブジェク
トの位置を決定し(ステップS55及びステップS5
9)、決定された粒子オブジェクトの位置に、影響を受
けると判断された粒子オブジェクトを表示する(ステッ
プS10)。
【0116】このようにすれば、オブジェクトの移動に
伴い仮想的な風も移動し、移動した風に影響を受ける粒
子オブジェクトが仮想的な風の風向きに応じて移動す
る。よって、あたかもオブジェクトの移動により風が発
生したように画面に表示されるため、より現実の世界に
近い表現を行うことができるようになる。
【0117】また、影響を受けると判断された粒子オブ
ジェクトの位置を、影響を与える仮想的な風の風向き及
び風の強さに応じて決定したり、重力を考慮して決定し
たりする。これにより、強い風や弱い風をも表現でき、
また例えば雪が舞い散っても最終的には地面に落ちてく
るような様子を画面に表示することができるようにな
る。なお、風の強さを仮想的な風が対応付けられている
オブジェクトの移動速度等に関連付けるような態様も可
能である。
【0118】さらに、影響を受けると判断された粒子オ
ブジェクトの位置を、(3)式に表されるように、影響
を与える仮想的な風の風向き及び当該仮想的な風の基準
位置と影響を受けると判断された粒子オブジェクトとの
距離に基づく風の強さに応じて決定すれば、単純な風の
強さだけでなく、例えば仮想的な風の基準位置から遠い
粒子オブジェクトは当該仮想的な風からあまり影響を受
けないということを画面上に表現することができるよう
になる。
【0119】さらに加えて、影響を受けると判断された
粒子オブジェクトの位置を、仮想的な風と影響を受ける
と判断された粒子オブジェクトとの距離に基づく風の強
さを表示フレーム毎に弱めるような構成を採用したり、
ランダムに最大補間フレーム数を決定したりすると、粒
子オブジェクトの例である雪が舞い落ちる様子をよりリ
アリスティックに表現できるようになる。
【0120】加えて、影響を受けると判断された粒子オ
ブジェクトの位置を、(1)式で表現されるように、影
響を与える仮想的な風の風向きと粒子オブジェクトが前
に受けた力の向きとを所定表示フレームに渡って補間さ
せ、当該補間により得られる方向に応じて、当該影響を
受けると判断された粒子オブジェクトの位置を決定すれ
ば、粒子オブジェクトの例である雪の舞い散り方が微妙
に変化するため、よりリアリスティックな画像を生成で
きるようになる。
【0121】(他の実施の形態) (1)図12の処理の最初にステップS53において補
間処理を一度でも行ったことがあるか判断しているが、
この判断を行わなくともよい。例えば、仮想的な風から
影響を受けていない場合には、影響を受けた仮想的な風
のからの力prtcl_windpowを0にすればよい。又は、
(3)式が負の値となる場合には0とするような扱いで
もよい。現在フレーム番号prtcl_windanimfrmや、prtcl
_winddir等の値は変化してしまうが、粒子オブジェクト
は仮想的な風の影響では移動しないため、特別な影響は
ない。
【0122】(2)図8のステップS7とステップS9
は順番を入れ替えても表示内容に変化は無い。
【0123】(3)実施の形態1及び2では重力の存在
を前提としているが、重力が存在しないような状態を想
定することも可能である。例えば煙オブジェクトの場合
には、重力に従って下に落ちるわけではなく、上方向に
移動する。
【0124】(4)図1は一例であって、様々な変更が
可能である。通信インターフェース115を備えるか否
かは任意である。本発明は直接サウンド処理には関係し
ないので、サウンド処理部109を備えている必要は無
い。
【0125】また、CD−ROMは記録媒体の一例であ
って、ROMのような内部メモリ、CD−ROM、DV
D−ROM、メモリカートリッジ、フロッピーディス
ク、磁気ディスク、DVD−RAM等の他の記録媒体で
あってもよい。その場合にはCD−ROMドライブ11
3を、対応する媒体で読み出し可能なドライブにする必
要がある。
【0126】さらに、以上は本発明をコンピュータ・プ
ログラムにより実装した場合であるが、コンピュータ・
プログラムと電子回路などの専用の装置の組み合せ、又
は電子回路などの専用の装置のみによっても実装するこ
とは可能である。
【0127】以上、本発明を実施の形態に基づいて具体
的に説明したが、本発明は上記実施の形態に限定される
ものではない。要旨を逸脱しない範囲で適宜変更可能で
ある。例えば、上記実施の形態では、家庭用ゲーム機を
プラットフォームとして本発明を実現した場合について
述べたが、本発明は通常のコンピュータ、アーケードゲ
ーム機などをプラットフォームとして実現しても良い。
また、携帯情報端末、カーナビゲーション・システム等
をプラットフォームにして実現することも考えられる。
【0128】また、本発明を実現するためのプログラム
やデータは、コンピュータやゲーム機に対して着脱可能
なCD−ROM等の記録媒体により提供される形態に限
定されない。すなわち、本発明を実現するためのプログ
ラムやデータを、図1に示す通信インターフェース11
5、通信回線141を介して接続されたネットワーク1
51上の他の機器側のメモリに記録し、プログラムやデ
ータを通信回線141を介して必要に応じて順次RAM
105に格納して使用する形態であってもよい。
【0129】(表示例)図21に本発明に従って粒子オ
ブジェクトである雪を降らせた状態の表示例を示す。雪
a乃至hには、見やすくするために矢印を付している。
これら雪a乃至hはオブジェクトである列車400の紙
面奥への移動に伴い発生する仮想的な風により影響を受
けている。キャラクタ600は列車400を追いかけて
走っているが、キャラクタ600にも仮想的な風を定義
して雪の移動に影響を与えるような設定をすることも可
能である。
【0130】
【発明の効果】以上述べたように本発明によれば、オブ
ジェクトの移動に応じて生じる風に影響を受ける他のオ
ブジェクトの振る舞いを、よりリアリティをもって表現
することができるようになる。
【図面の簡単な説明】
【図1】家庭用ゲーム機のブロック構成図である。
【図2】本発明に係るゲームプログラム実行時における
RAMの状態を示す模式図である。
【図3】風データ・テーブルの一例を示す図である
【図4】パーティクルデータ・テーブルの一例を示す図
である。
【図5】本発明の原理を説明するための模式図(その
1)である。
【図6】本発明の原理を説明するための模式図(その
2)である。
【図7】本発明の原理を説明するための模式図(その
3)である。
【図8】本発明の処理のメインフローを示すフローチャ
ートである。
【図9】オブジェクトの粒子オブジェクトが接触したか
判定するための処理を説明するための模式図である。
【図10】実施の形態1及び2における粒子オブジェク
ト移動処理のフローチャート(その1)である。
【図11】実施の形態1における粒子オブジェクト移動
処理のフローチャート(その2)である。
【図12】実施の形態1及び2における粒子オブジェク
ト移動処理のフローチャート(その3)である。
【図13】1つの粒子オブジェクトと1つの仮想的な風
が存在する場合において、当該粒子オブジェクトがどの
ように移動するかを説明するための模式図(その1)で
ある。
【図14】補間開始方向prtcl_windnowdirと補間終了方
向prtcl_windnextdirの補間を説明するための模式図で
ある。
【図15】1つの粒子オブジェクトと1つの仮想的な風
が存在する場合において、当該粒子オブジェクトがどの
ように移動するかを説明するための模式図(その2)で
ある。
【図16】1つの粒子オブジェクトと1つの仮想的な風
が存在する場合において、当該粒子オブジェクトがどの
ように移動するかを説明するための模式図(その3)で
ある。
【図17】1つの粒子オブジェクトと1つの仮想的な風
が存在する場合において、当該粒子オブジェクトがどの
ように移動するかを説明するための模式図(その4)で
ある。
【図18】1つの粒子オブジェクトと1つの仮想的な風
が存在する場合において、当該粒子オブジェクトがどの
ように移動するかを説明するための模式図(その5)で
ある。
【図19】新たな補間開始方向と新たな補間終了方向を
説明するための模式図である。
【図20】実施の形態2における粒子オブジェクト移動
処理のフローチャート(その2)である。
【図21】本発明を使用した場合における表示画面例を
示す。
【符号の説明】
101 家庭用ゲーム機 103 CPU 104
ROM 105 RAM 107 HDD 109 サウン
ド処理部 112 フレームバッファ 111 グラフィックス
処理部 113 CD−ROMドライブ 115 通信インタ
ーフェース 117 インターフェース部 119 内部バス
121 TVセット 120 表示画面 131 CD−ROM 141
通信媒体 151 ネットワーク 161 キーパッド 17
1 メモリカード 200 オブジェクト・データ 2100 モデルデ
ータ 2200 風データ・テーブル 300 パーティク
ルデータ・テーブル
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06T 15/00 - 15/70 A63F 13/00

Claims (24)

    (57)【特許請求の範囲】
  1. 【請求項1】仮想三次元空間における仮想的な風の影響
    を受ける粒子オブジェクトの動きを処理するゲームプロ
    グラムを記録したコンピュータ読取り可能な記録媒体で
    あって、 前記コンピュータに、 画面上で、各々風力が定義されている1または複数の所
    定サイズの前記仮想的な風の影響範囲をあらかじめ決め
    られた規則もしくはプレイヤの操作に応じて移動させ、 画面上に1または複数の粒子オブジェクトを表示させ、
    前記粒子オブジェクトと前記仮想的な風の影響範囲との
    位置関係を判断し、 前記粒子オブジェクトと前記仮想的な風の影響範囲との
    位置関係の変化に応じて前記粒子オブジェクトの画面上
    での移動条件を決定し、 前記決定された移動条件にしたがって前記粒子オブジェ
    クトを画面上で移動させること、 を実行させるプログラムを記録したコンピュータ読取り
    可能な記録媒体。
  2. 【請求項2】前記位置関係を前記仮想的な風の影響範囲
    の基準点と前記粒子オブジェクトの基準点との距離に基
    づいて判断することを特徴とする請求項1記載の記録媒
    体。
  3. 【請求項3】仮想的な風の影響範囲が複数存在した場
    合、前記複数の仮想的な風の影響範囲のうち、前記粒子
    オブジェクトに最も近い仮想的な風の影響範囲と前記粒
    子オブジェクトとの距離で位置関係を判断することを特
    徴とする請求項2記載の記録媒体。
  4. 【請求項4】粒子オブジェクトが複数存在する場合に
    は、前記位置関係の判断を粒子オブジェクトごとに行な
    うことを特徴とする請求項3記載の記録媒体。
  5. 【請求項5】前記移動条件を決定する場合には、前記移
    動条件を前記位置関係の変化に対応させて更新させるこ
    とを特徴とする請求項1記載の記録媒体。
  6. 【請求項6】前記移動条件は前記仮想的な風の影響範囲
    内の位置ごとに相異させて決定されることを特徴とする
    請求項5記載の記録媒体。
  7. 【請求項7】前記移動条件は前記位置関係の更新の度に
    計算されることを特徴とする請求項5記載の記録媒体。
  8. 【請求項8】前記移動条件の更新をフレーム処理単位に
    行なうことを特徴とする請求項5記載の記録媒体。
  9. 【請求項9】前記移動条件は、前記仮想的な風の影響範
    囲と前記粒子オブジェクトとの距離に応じて移動速度を
    変化させることを特徴とする請求項5記載の記録媒体。
  10. 【請求項10】前記移動条件はあらかじめ記憶されてい
    ることを特徴とする請求項1記載の記録媒体。
  11. 【請求項11】仮想三次元空間で処理される粒子オブジ
    ェクトの動きを処理するゲームプログラムを処理する方
    法であって、 その方法は、 画面上で、各々風力が定義されている1または複数の所
    定サイズの仮想的な風の影響範囲をあらかじめ決められ
    た規則もしくはプレイヤの操作に応じて移動させ、 画面上に1または複数の粒子オブジェクトを表示させ、
    前記粒子オブジェクトと前記仮想的な風の影響範囲との
    位置関係を判断し、 前記仮想的な風の影響範囲と前記粒子オブジェクトとの
    位置関係の変化に応じて前記粒子オブジェクトの画面上
    での移動条件を決定し、 前記決定された移動条件にしたがって前記粒子オブジェ
    クトを画面上で移動させる。
  12. 【請求項12】前記位置関係を前記仮想的な風の影響範
    囲の基準点と前記粒子オブジェクトの基準点との距離に
    基づいて判断することを特徴とする請求項11記載の方
    法。
  13. 【請求項13】仮想的な風の影響範囲が複数存在した場
    合、前記複数の仮想的な風の影響範囲のうち、前記粒子
    オブジェクトに最も近い仮想的な風の影響範囲と前記粒
    子オブジェクトとの距離で位置関係を判断することを特
    徴とする請求項12記載の方法。
  14. 【請求項14】粒子オブジェクトが複数存在する場合に
    は、前記位置関係の判断を粒子オブジェクトごとに行な
    うことを特徴とする請求項13記載の方法。
  15. 【請求項15】前記移動条件を決定する場合には、前記
    移動条件を前記位置関係の変化に対応させて更新させる
    ことを特徴とする請求項11記載の方法。
  16. 【請求項16】前記移動条件は前記仮想的な風の影響範
    囲内の位置ごとに相異させて決定されることを特徴とす
    る請求項15記載の方法。
  17. 【請求項17】前記移動条件は前記位置関係の更新の度
    に計算されることを特徴とする請求項15記載の方法。
  18. 【請求項18】前記移動条件の更新をフレーム処理単位
    に行なうことを特徴とする請求項15記載の方法。
  19. 【請求項19】前記移動条件は、前記仮想的な風の影響
    範囲と前記粒子オブジェクトとの距離に応じて移動速度
    を変化させることを特徴とする請求項15記載の方法。
  20. 【請求項20】前記移動条件はあらかじめ記憶されてい
    ることを特徴とする請求項11記載の方法。
  21. 【請求項21】仮想三次元空間で処理される粒子オブジ
    ェクトの動きを表示画面上で制御するゲーム装置であっ
    て、 プログラムにしたがってゲームを実行するユニットと、 前記プログラムを全部もしくは一部を格納するメモリ
    と、 前記ユニットで実行されるゲームを表示する表示画面
    と、 を備え、 前記ユニットは、 前記メモリに格納されたプログラムにしたがって、 表示画面上で、各々風力が定義されている1または複数
    の所定サイズの仮想的な風の影響範囲をあらかじめ決め
    られた規則もしくはプレイヤの操作に応じて移動させ、 表示画面上に仮想三次元空間で処理される1または複数
    の粒子オブジェクトを表示させ、前記粒子オブジェクト
    と前記仮想的な風の影響範囲との位置関係を判断し、 前記仮想的な風の影響範囲と前記粒子オブジェクトとの
    位置関係の変化に応じて前記粒子オブジェクトの表示画
    面上での移動条件を決定し、 前記決定された移動条件にしたがって前記粒子オブジェ
    クトを表示画面上で移動させる、 ことを特徴とするゲーム装置。
  22. 【請求項22】前記ユニットは、前記位置関係を前記仮
    想的な風の影響範囲の基準点と前記粒子オブジェクトの
    基準点との距離に基づいて判断することを特徴とする請
    求項21記載のゲーム装置。
  23. 【請求項23】前記ユニットは、仮想的な風の影響範囲
    が複数存在した場合、前記複数の仮想的な風の影響範囲
    のうち、前記粒子オブジェクトに最も近い仮想的な風の
    影響範囲と前記粒子オブジェクトとの距離で位置関係を
    判断することを特徴とする請求項22記載のゲーム装
    置。
  24. 【請求項24】前記ユニットは、粒子オブジェクトが複
    数存在する場合、前記位置関係の判断を粒子オブジェク
    トごとに行なうことを特徴とする請求項23記載のゲー
    ム装置。
JP2000123955A 2000-04-25 2000-04-25 オブジェクトの動きを処理する方法および記録媒体、並びに、ゲーム装置 Expired - Lifetime JP3428562B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000123955A JP3428562B2 (ja) 2000-04-25 2000-04-25 オブジェクトの動きを処理する方法および記録媒体、並びに、ゲーム装置
US09/559,127 US6508708B1 (en) 2000-04-25 2000-04-28 Method for processing object movements, game machine using said method, and recording medium on which a related program is recorded

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000123955A JP3428562B2 (ja) 2000-04-25 2000-04-25 オブジェクトの動きを処理する方法および記録媒体、並びに、ゲーム装置

Publications (2)

Publication Number Publication Date
JP2001307129A JP2001307129A (ja) 2001-11-02
JP3428562B2 true JP3428562B2 (ja) 2003-07-22

Family

ID=18634166

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000123955A Expired - Lifetime JP3428562B2 (ja) 2000-04-25 2000-04-25 オブジェクトの動きを処理する方法および記録媒体、並びに、ゲーム装置

Country Status (2)

Country Link
US (1) US6508708B1 (ja)
JP (1) JP3428562B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5183878B2 (ja) * 2006-03-06 2013-04-17 任天堂株式会社 ゲームプログラム、ゲームシステム
JP5031260B2 (ja) 2006-05-02 2012-09-19 任天堂株式会社 オブジェクト制御プログラム、オブジェクト制御装置、オブジェクト制御システムおよびオブジェクト制御方法
JP5179020B2 (ja) 2006-05-09 2013-04-10 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法
US8581721B2 (en) * 2007-03-08 2013-11-12 Cfph, Llc Game access device with privileges
JP4861862B2 (ja) * 2007-03-08 2012-01-25 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、及び、画像生成システム
JP5450718B2 (ja) 2012-06-11 2014-03-26 株式会社スクウェア・エニックス ゲーム装置及びゲームプログラム
JP6441843B2 (ja) * 2016-02-24 2018-12-19 株式会社カプコン ゲームプログラムおよびゲームシステム
CN106445143B (zh) * 2016-09-27 2020-01-14 依偎科技(南昌)有限公司 一种数据处理的方法及头戴式虚拟现实设备
US11373356B2 (en) 2018-03-28 2022-06-28 Robert Bosch Gmbh Method and system for efficient rendering of 3D particle systems for weather effects
CN111246095B (zh) * 2020-01-17 2021-04-27 腾讯科技(深圳)有限公司 控制镜头运动的方法、装置、设备及存储介质
CN112562050B (zh) * 2020-11-27 2023-07-18 成都完美时空网络技术有限公司 虚拟对象风动画的生成方法及装置、存储介质、终端

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3519216B2 (ja) 1996-07-16 2004-04-12 株式会社ナムコ 3次元シミュレータ装置及び情報記憶媒体
US6217444B1 (en) * 1996-09-24 2001-04-17 Konami Co., Ltd. Simulative golf game system and a method for providing a simulative golf game and a storage medium for storing a simulative golf game program
JPH11179052A (ja) * 1997-12-17 1999-07-06 Konami Co Ltd ビデオゲーム装置、ビデオゲームにおける予測ガイド表示方法及び予測ガイド表示プログラムが記録された記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CGアニメーションのための人間行動シミュレーション,PIXEL,日本,図形処理情報センター,1993年 2月 1日,No.125,96−97

Also Published As

Publication number Publication date
US6508708B1 (en) 2003-01-21
JP2001307129A (ja) 2001-11-02

Similar Documents

Publication Publication Date Title
JP4180065B2 (ja) 画像生成方法、画像生成装置、および画像生成プログラム
US6413163B1 (en) Video game machine, method for switching viewpoint on game screen of video game, and computer-readable recording medium containing game-screen-viewpoint switching program
EP0844587B1 (en) Image processor, image processing method, game machine and recording medium
JP3426105B2 (ja) ビデオゲームシステムおよびビデオゲーム用記憶媒体
JP4177381B2 (ja) 画像生成方法、画像生成装置、および画像生成プログラム
US20040157662A1 (en) Video game that displays player characters of multiple players in the same screen
JP2000308759A (ja) ビデオゲームのキャラクタを制御する方法、ビデオゲーム装置、及び記録媒体
JP3428562B2 (ja) オブジェクトの動きを処理する方法および記録媒体、並びに、ゲーム装置
JP2007244536A (ja) ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
US6878065B2 (en) Video game system, character action control method, and readable storage medium storing character action control program
US6762746B2 (en) Entertainment apparatus, storage medium and operation method of manipulating object
JP3363137B2 (ja) 当たり判定方法、その装置、当たり判定処理プログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲーム装置
EP1203603A2 (en) Recording medium, program, program executing system, and program executing device
JP4114822B2 (ja) 画像生成装置及び情報記憶媒体
US7402104B2 (en) Game performing method, game apparatus, storage medium, data signal and program
JP3887810B2 (ja) ゲーム装置
JP3602835B2 (ja) ビデオゲーム装置およびその制御方法ならびにゲームプログラム
JP4397410B2 (ja) 画像生成装置及び情報記憶媒体
US20010044335A1 (en) Game apparatus, specified position determining method and recording medium and program
JP3809294B2 (ja) ゲーム装置、ゲーム方法、コンピュータ読取可能な記録媒体
JP4443716B2 (ja) ゲーム装置、および、情報記憶媒体
JP4467590B2 (ja) 描画装置、描画方法、および描画プログラム
JP4955929B2 (ja) 三次元アニメーションの表示装置、その表示装置を実現するためのプログラム
JP2000102675A (ja) オブジェクト表示方法、ゲ―ムシステム及びゲ―ムプログラムが記録されたコンピュ―タ読取可能な記録媒体
JP4100643B2 (ja) シミュレーション装置及び情報記憶媒体

Legal Events

Date Code Title Description
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: 20030422

R150 Certificate of patent or registration of utility model

Ref document number: 3428562

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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: 20090516

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20090516

Year of fee payment: 6

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

Free format text: PAYMENT UNTIL: 20090516

Year of fee payment: 6

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20090516

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20090516

Year of fee payment: 6

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20090516

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090516

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090516

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100516

Year of fee payment: 7

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: 20110516

Year of fee payment: 8

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: 20110516

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 9

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: 20130516

Year of fee payment: 10

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: 20130516

Year of fee payment: 10

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20140516

Year of fee payment: 11

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

EXPY Cancellation because of completion of term