JP2002222434A - ゲームシステム、プログラム及び情報記憶媒体 - Google Patents

ゲームシステム、プログラム及び情報記憶媒体

Info

Publication number
JP2002222434A
JP2002222434A JP2001020360A JP2001020360A JP2002222434A JP 2002222434 A JP2002222434 A JP 2002222434A JP 2001020360 A JP2001020360 A JP 2001020360A JP 2001020360 A JP2001020360 A JP 2001020360A JP 2002222434 A JP2002222434 A JP 2002222434A
Authority
JP
Japan
Prior art keywords
vector field
fluid
game
target object
operation target
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.)
Withdrawn
Application number
JP2001020360A
Other languages
English (en)
Inventor
Yuichi Hiraiwa
祐一 平岩
Hidetoshi Aoyanagi
秀俊 青柳
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.)
Namco Ltd
Original Assignee
Namco 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 Namco Ltd filed Critical Namco Ltd
Priority to JP2001020360A priority Critical patent/JP2002222434A/ja
Publication of JP2002222434A publication Critical patent/JP2002222434A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 【課題】 流体の動作を応用して今までにない操作感を
有する新しいタイプのゲームシステム、プログラム及び
情報記憶媒体を提供することである。 【解決手段】 間接制御演算部110はプレーヤからの
操作入力に基づき、ゲーム空間における操作対象オブジ
ェクトを囲む仮想流体の動作及び状態の少なくともひと
つを制御し、前記仮想流体の動作及び状態の少なくとも
ひとつを作用させて操作対象オブジェクトの配置演算を
行う。ベクトル場を生成して前記操作入力に基づきベク
トル場における流体シミュレーション演算を行う。前記
流体シミュレーション演算は、連続体の運動を支配する
所与の物理方程式に関連付けて得られた差分方程式を用
いて、ベクトル場に属する各点の時間nの速度情報に基
づき時間n+1の速度情報を求めるための物理シミュレ
ーション演算である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ゲームシステム、
プログラム及び情報記憶媒体に関する。
【0002】
【背景技術及び発明が解決しようとする課題】従来よ
り、テクスチャアニメーション等の技法を用いてゲーム
画像としての水動き等を擬似的に再現するものはあっ
た。しかし、水等の流体の動きをリアルに再現すること
は困難であり、特にインタラクティブに発生する外因を
反映した流体の動作をリアルタイムに表現することはで
きなかった。
【0003】一方従来のゲーム装置では、プレーヤは操
作対象オブジェクトを直接するタイプのものが主流であ
った。したがって操作対象オブジェクトの動きはプレー
ヤの操作をダイレクトに反映したものとなり、予想外の
動きをすることがない。
【0004】ここにおいて本願発明者はインタラクティ
ブに発生する外因を流体の動作に反映させたゲームシス
テムの開発を行っている。そこで、かかる流体の動作を
応用して、今までにない操作感を有する新しいタイプの
ゲームシステムを考案した。
【0005】本発明は、以上のような課題に鑑みてなさ
れたものであり、その目的とするところは、流体の動作
を応用して今までにない操作感を有する新しいタイプの
ゲームシステム、プログラム及び情報記憶媒体を提供す
ることである。
【0006】
【課題を解決するための手段】(1)本発明は画像生成
を行うゲームシステムであって、ゲーム空間における操
作対象オブジェクトを囲む仮想流体の流れを制御するた
めの操作入力を受け付ける手段と、前記操作入力に基づ
き、ゲーム空間において仮想流体に囲まれた操作対象オ
ブジェクトの移動又は回転を間接的に制御するために必
要な処理を行う手段と、ゲーム空間の所与の視点から見
える画像を生成する手段とを含むことを特徴とする。
【0007】また本発明にかかるプログラムは、コンピ
ュータにより使用可能なプログラム(情報記憶媒体又は
搬送波に具現化されるプログラム)であって、上記手段
をコンピュータに実現させることを特徴とする。また本
発明にかかる情報記憶媒体は、コンピュータにより使用
可能な情報記憶媒体、上記手段をコンピュータに実現さ
せるためのプログラムを含むことを特徴とする。
【0008】ここにおいて仮想流体とはゲーム空間に仮
想的に設定された流体のことであり、例えば液体や気体
等の流体の性質を模した動作又は状態をとるものであ
る。したがって仮想流体に対して何らかのアクションを
加えた場合には、仮想流体は液体や気体等の流体の性質
に応じた反応をとる。例えば現実の気体や液体の動作を
模して、加えられた力に応じた流れが発生し、流れの影
響が仮想流体を伝播し、流れの向きや大きさが時間的空
間的に連続的して変化したりする。なお仮想流体はゲー
ム上、可視的に表示されていてもよいし、目には見えな
いが空間の一部又は全部を満たしているような場合でも
よい。
【0009】仮想流体に囲まれた操作対象オブジェクト
の移動又は回転を間接的に制御するために必要な処理と
は、例えば液体や気体に外力が加えられた場合の液体や
気体に浮かんだ操作対象オブジェクトの動作を模擬的に
再現するような処理であり、仮想流体の流れの影響を及
ぼして操作対象オブジェクトを移動、回転させる処理等
である。
【0010】本実施の形態によればプレーヤが仮想流体
の流れを制御することにより、間接的に操作対象オブジ
ェクトの移動又は回転を制御することができる。
【0011】従ってプレーヤは仮想流体に流れを起こし
て仮想流体のなかの操作対象オブジェクトを動かすとい
う間接的な操作を楽しむことができるゲームシステムを
提供することができる。
【0012】(2)本発明は、画像生成を行うゲームシ
ステムであって、プレーヤからの操作入力に基づき、ゲ
ーム空間における操作対象オブジェクトを囲む仮想流体
の動作及び状態の少なくともひとつを制御する手段と、
前記仮想流体の動作及び状態の少なくともひとつを作用
させて操作対象オブジェクトの配置演算を行う手段と、
ゲーム空間の所与の視点から見える画像を生成する手段
とを含むことを特徴とする。
【0013】また本発明にかかるプログラムは、コンピ
ュータにより使用可能なプログラム(情報記憶媒体又は
搬送波に具現化されるプログラム)であって、上記手段
をコンピュータに実現させることを特徴とする。また本
発明にかかる情報記憶媒体は、コンピュータにより使用
可能な情報記憶媒体、上記手段をコンピュータに実現さ
せるためのプログラムを含むことを特徴とする。
【0014】ここにおいて仮想流体とはゲーム空間に仮
想的に設定された流体のことであり、例えば液体や気体
等の流体の性質を模した動作又は状態をとるものであ
る。したがって仮想流体に対して何らかのアクションを
加えた場合には、仮想流体は液体や気体等の流体の性質
に応じた反応をとる。例えば現実の気体や液体の動作を
模して、加えられた力に応じた流れが発生し、流れの影
響が仮想流体を伝播し、流れの向きや大きさが時間的空
間的に連続的して変化したりする。なお仮想流体はゲー
ム上、可視的に表示されていてもよいし、目には見えな
いが空間の一部又は全部を満たしているような場合でも
よい。
【0015】また操作対象オブジェクトの配置とは操作
対象オブジェクトの位置及び回転の少なくともひとつで
ある。
【0016】仮想流体の動作とは例えば仮想流体の流れ
であり、仮想流体の状態とは例えば仮想流体の所与の点
における速度情報等である。
【0017】仮想流体の動作及び状態の少なくともひと
つを作用させて操作対象オブジェクトの配置演算を行う
とは例えば、仮想流体の流れや仮想流体の所与の点にお
ける速度情報等を加味して操作対象オブジェクトを回
転、移動させて、操作対象オブジェクトの位置や回転を
求めることである。
【0018】本発明によればプレーヤが仮想流体の流れ
を制御することにより、間接的に操作対象オブジェクト
の移動又は回転を制御することができる。
【0019】従ってプレーヤは仮想流体に流れを起こし
て仮想流体のなかの操作対象オブジェクトを動かすとい
う間接的な操作を楽しむことができるゲームシステムを
提供することができる。
【0020】(3)また本発明に係る画像生成システ
ム、プログラム及び情報記憶媒体は、流体の動作及び状
態の少なくともひとつをシミュレーションするためのベ
クトル場を生成して前記操作入力に基づきベクトル場に
おける流体シミュレーション演算を行い、流体シミュレ
ーション演算の結果得られたベクトル場の状態に基づき
仮想流体の流れ、動作及び状態の少なくともひとつを制
御することを特徴とする。
【0021】場とは対象となる空間の所与の点に対し、
各点の位置及び時間をパラメータとする所与の関数によ
り得られた物理量が与えられた空間である。たとえば対
象の空間を格子状又はメッシュ状に分割し、所与の関数
を用いてある時点における各格子点の物理量をもとめる
ことで、場の状態を求めることができる。そして時間の
経過やフレームの進行に伴って、所与の物理シミュレー
ション演算を行うことによって各点にその位置及び時間
に応じた物理量を与えることができ、場における状態の
変化を求めることができる。
【0022】ここでベクトル場とは場のひとつであり、
前記物理シミュレーション演算として流体シミュレーシ
ョン演算を行う場合を意味する。従ってベクトル場の所
与の点における物理量とは例えば流れに関連した物理量
である。
【0023】本発明によれば、流体の動作及び状態の少
なくともひとつシミュレーションするためのベクトル場
を生成して前記操作入力に基づきベクトル場における流
体シミュレーション演算を行うため、インタラクティブ
に発生するプレーヤ操作入力を反映して仮想流体をリア
ルに動作させることができる。
【0024】従ってプレーヤの操作に対する仮想流体の
動作がよりリアルになり、リアルで迫力のある操作感を
有するゲームシステムを提供することができる。
【0025】(4)本発明は、画像生成を行うゲームシ
ステムであって、プレーヤからの操作入力に基づき、ゲ
ーム空間における操作対象オブジェクトの周りに設定さ
れたベクトル場の流体シミュレーション演算を行う手段
と、前記流体シミュレーション演算により求められたベ
クトル場の状態を反映させて操作対象オブジェクトの配
置演算を行う手段と、ゲーム空間の所与の視点から見え
る画像を生成する手段と、を含むことを特徴とする。
【0026】また本発明にかかるプログラムは、コンピ
ュータにより使用可能なプログラム(情報記憶媒体又は
搬送波に具現化されるプログラム)であって、上記手段
をコンピュータに実現させることを特徴とする。また本
発明にかかる情報記憶媒体は、コンピュータにより使用
可能な情報記憶媒体、上記手段をコンピュータに実現さ
せるためのプログラムを含むことを特徴とする。
【0027】ここにおいて操作対象オブジェクトの配置
情報とは操作対象オブジェクトの位置及び回転情報の少
なくともひとつである。
【0028】また場とは対象となる空間の所与の点に対
し、各点の位置及び時間をパラメータとする所与の関数
により得られた物理量が与えられた空間である。たとえ
ば対象の空間を格子状又はメッシュ上に分割し、所与の
関数を用いてある時点における各格子点の物理量をもと
めることで、場の状態を求めることができる。そして時
間の経過やフレームの進行に伴って、所与の物理シミュ
レーション演算を行うことによって各点にその位置及び
時間に応じた物理量を与えることができ、場における状
態の変化を求めることができる。
【0029】ここでベクトル場とは場のひとつであり、
前記物理シミュレーション演算として流体シミュレーシ
ョン演算を行い得られたものをいう。従ってベクトル場
の所与の点における物理量とは例えば流れに関連した物
理量である。
【0030】本発明によればプレーヤからの操作入力に
基づきゲーム空間における操作対象オブジェクトの周り
に設定されたベクトル場の流体シミュレーション演算を
行うので、インタラクティブに発生するプレーヤ操作入
力をベクトル場の状態に反映させることができる。
【0031】本発明によればプレーヤが操作入力に基づ
きベクトル場の状態を変化させ、変化したベクトル場の
状態を反映させて操作対象オブジェクトの配置演算を行
うことにより、間接的に操作対象オブジェクトの移動又
は回転等の動作を制御することができる。
【0032】またベクトル場を生成し流体シミュレーシ
ョンを行うことで、あたかも本当の流体の中にあるよう
に操作対象オブジェクトを動かすことができる。
【0033】そして操作対象オブジェクトの周りの空間
に流れを起こして操作対象オブジェクトを動かすという
今までにない操作感を楽しむことができるゲームシステ
ムを提供することができる。
【0034】(5)また本発明に係る画像生成システ
ム、プログラム及び情報記憶媒体は、前記流体シミュレ
ーション演算は、連続体の運動を支配する所与の物理方
程式に関連付けて得られた差分方程式を用いて、ベクト
ル場に属する各点の時間nの速度情報に基づき時間n+
1の速度情報を求めるための物理シミュレーション演算
であって、プレーヤからの操作入力に基づき前記点に与
える時間nの速度情報を制御して流体シミュレーション
演算を行うことを特徴とする。
【0035】連続体の運動を支配する所与の物理方程式
とは例えばNavier-Stokes方程式等である。ベクトル場
に属する各点とは例えばベクトル場を格子状に分割した
場合には各格子点である。
【0036】本発明によれば連続体の運動を支配する所
与の物理方程式を用いた流体シミュレーションの結果を
ベクトル場の各点の速度情報として取り出すことができ
る。
【0037】従ってプレーヤからの操作入力に応じた速
度情報を時間nの速度情報として与え、これに基づくベ
クトル場の状態の変化を演算することが可能となる。
【0038】(6)また本発明に係る画像生成システ
ム、プログラム及び情報記憶媒体は、プレーヤの操作入
力に基づき、ベクトル場又は仮想流体に作用させる速度
ベクトルに関する情報を演算し、当該速度ベクトルの位
置とベクトル場に属する点との位置関係に基づき速度ベ
クトルを作用させるベクトル場に属する点を選択し、選
択された点に対し前記速度ベクトルを作用させて前記流
体シミュレーション演算を行うことを特徴とする。
【0039】本発明によれば、プレーヤの操作入力に応
じた位置、大きさ及び方向の速度ベクトルをベクトル場
に作用させて流体シミュレーション演算を行うことがで
きる。従ってプレーヤにリアルな操作感を与えることが
できる。
【0040】(7)また本発明に係る画像生成システ
ム、プログラム及び情報記憶媒体は、前記流体シミュレ
ーション演算により前記ベクトル場に属する点の速度ベ
クトルを求め、ベクトル場に属する点と操作対象オブジ
ェクトの位置関係に応じてベクトル場に属する点の速度
ベクトルを操作対象オブジェクトに作用させ、操作対象
オブジェクトの移動及び回転の少なくともひとつを行う
ことを特徴とする。
【0041】本発明によれば、操作対象オブジェクトの
存在する位置に応じてベクトル場の状態を状態を反映さ
せることができる。従って、操作対象オブジェクトにリ
アルな動作をさせることができる。
【0042】(8)また本発明に係る画像生成システ
ム、プログラム及び情報記憶媒体は、前記仮想流体又は
ベクトル場の流れの操作の目安となるシンボルマークの
画像を生成し、プレーヤからの操作入力に基づき前記シ
ンボルマーク付近の流れを制御する処理を行うことを特
徴とする。
【0043】ゲーム画像から前記仮想流体又はベクトル
場の流れの状態をプレーヤが把握することは困難な場合
が多く、特に仮想流体が可視的に表示されていない場合
には困難である。
【0044】本発明によれば仮想流体又はベクトル場の
流れの操作の目安となるシンボルマークの画像が表示さ
れるため、プレーヤ仮想流体やベクトル場たいして操作
入力を行う際の目安とすることができる。
【0045】シンボルマークとは例えば矢印のようなも
のでもよい。
【0046】プレーヤからの操作入力に基づき前記シン
ボルマーク付近の流れを制御する処理とは、例えば矢印
の位置付近に矢印の方向に流れを生成するような処理で
もよい。
【0047】本発明によればプレーヤはシンボルマーク
を介して仮想流体又はベクトル場にたいして操作入力を
行うことができる。このため仮想流体又はベクトル場の
流れの状態を介して操作対象オブジェクトの間接操作を
行うという状況において、操作の困難性を緩和し、より
楽しめるゲームシステムを提供することができる。
【0048】(9)また本発明に係る画像生成システ
ム、プログラム及び情報記憶媒体は、前記仮想流体又は
ベクトル場の流れの操作の目安となるシンボルマークを
表示し、プレーヤからの操作入力に基づき前記シンボル
マークの位置、回転、形状の少なくともひとつを制御す
る処理を行うことを特徴とする。
【0049】ゲーム画像から前記仮想流体又はベクトル
場の流れの状態をプレーヤが把握することは困難な場合
が多く、特に仮想流体が可視的に表示されていない場合
には困難である。
【0050】本発明によれば仮想流体又はベクトル場の
流れの操作の目安となるシンボルマークの画像が表示さ
れるため、プレーヤが仮想流体やベクトル場にたいして
操作入力を行う際の目安とすることができる。
【0051】シンボルマークとは例えば矢印のようなも
のでもよい。
【0052】本発明によればプレーヤからの操作入力に
基づき前記シンボルマークの位置、回転、形状の少なく
ともひとつを制御する処理を行うので、プレーヤは自己
の操作入力によって仮想流体又はベクトル場に発生する
流れの位置や方向や大きさ等をシンボルマークを介して
可視的に確認することができる。
【0053】従ってプレーヤはシンボルマークの位置、
回転、形状を参考にしながら仮想流体又はベクトル場に
たいして操作入力を行うことができる。このため仮想流
体又はベクトル場の流れの状態を介して操作対象オブジ
ェクトの間接操作を行うという状況において、操作の困
難性を緩和し、より楽しめるゲームシステムを提供する
ことができる。
【0054】(10)また本発明に係る画像生成システ
ム、プログラム及び情報記憶媒体は、前記ベクトル場と
して2次元のベクトル場を用いることを特徴とする。
【0055】2次元のベクトル場を用いることにより、
流体シミュレーション演算を行う際の演算負荷を軽減す
ることができる。
【0056】(11)また本発明に係る画像生成システ
ム、プログラム及び情報記憶媒体は、ゲームフィールド
又は仮想流体領域よりも小さなベクトル場を用いて流体
シミュレーション演算を行うことを特徴とする。
【0057】例えば表示領域をカバーできる程度のベク
トル場を生成して、表示領域の部分のみにベクトル場を
マッピングすることが好ましい。このようにすること
で、見た目に効果をあまり低下させずに流体シミュレー
ション演算に伴う演算負荷を軽減することができる。
【0058】ここにおいて操作対象オブジェクトが移動
する場合には、ベクトル場がマッピングされる領域も移
動するため、マッピング領域の移動に応じてベクトル場
の補正を行うことで、前回演算した流体シミュレーショ
ン演算の結果を連続して使用することができる。
【0059】(12)また本発明に係る画像生成システ
ム、プログラム及び情報記憶媒体は、仮想流体又はベク
トル場に障害物が存在する場合、前記ベクトル場に占め
る障害物エリアの属する点に所定の速度情報を設定する
ことを特徴とする。
【0060】ここにおいて障害物とは仮想流体又はベク
トル場のなかに存在する場合でもよいし、例えば堤防の
ように仮想流体又はベクトル場の端に位置するものでも
よい。
【0061】前記所定の速度情報の値は固定値でもよい
し、障害物の速度に応じた値でもよい。
【0062】なおベクトル場が操作対象オブジェクトに
追従する場合にはベクトル場又に占める障害物エリアも
変化するので、ベクトル場の所与の点に与える速度情報
もその変化に応じて変更するようにする。
【0063】(13)また本発明に係る画像生成システ
ム、プログラム及び情報記憶媒体は、操作対象オブジェ
クトの近くに障害物が存在する場合、操作対象オブジェ
クトの移動をアシストする処理を行うことを特徴とす
る。
【0064】一般に障害物(例えば壁)の近くの流体は
速度が0になるように設定される場合がおおいため、操
作対象オブジェクトが障害物の近くに存在する場合、周
囲にながれを発生させることは困難になる。
【0065】操作対象オブジェクトの移動をアシストす
るとは、プレーヤからの流体シミュレーション演算結果
に関わらず強制的な流れを発生させたり、流体シミュレ
ーションの結果得られたベクトル場に補正を加えたりし
て、操作対象オブジェクトがスムーズに流れるようにす
ることである。
【0066】本発明によればかかる場合に操作対象オブ
ジェクトの移動をアシストしてプレーヤの間接操作を補
助することができる。
【0067】(14)また本発明に係る画像生成システ
ム、プログラム及び情報記憶媒体は、ゲームの難易度に
応じて前記流体シミュレーション演算で用いる粘性に関
連するパラメータをコントロールする処理を行うことを
特徴とする。
【0068】流体のシミュレーションにおいて使用され
る粘性に関連するパラメータの値を変更することで、仮
想流体の振る舞いやベクトル場の状態を変えることがで
きる。粘性が高くなると動きが鈍くなり、流れが静かに
なるまでの時間も早い。逆に、粘性が低くなると動きが
激しくなり、流れもなかなか収まらない。
【0069】間接操作の性質上、粘性が高い方が操作対
象オブジェクトの動きが少なく操作し易く、粘性が低く
なると操作対象オブジェクトボールの動きが大きくなり
操作が難しくなる。
【0070】本発明によれば、ゲームの難易度に応じて
粘性に関連するパラメータ値をコントロールすること
で、ゲーム自体の難易度を調整することを可能にしてい
る。
【0071】
【発明の実施の形態】以下、本発明の好適な実施形態に
ついて図面を用いて説明する。
【0072】1.構成 図1に、本実施形態のゲームシステムのブロック図の一
例を示す。なお同図において本実施形態は、少なくとも
処理部100を含めばよく(或いは処理部100と記憶
部170、或いは処理部100と記憶部170と情報記
憶媒体180を含めばよく)、それ以外のブロック(例
えば操作部160、表示部190、音出力部192、携
帯型情報記憶装置194、通信部196)については、
任意の構成要素とすることができる。
【0073】ここで処理部100は、システム全体の制
御、システム内の各ブロックへの命令の指示、ゲーム処
理、画像処理、又は音処理などの各種の処理を行うもの
であり、その機能は、各種プロセッサ(CPU、DSP
等)、或いはASIC(ゲートアレイ等)などのハード
ウェアや、所与のプログラム(ゲームプログラム)によ
り実現できる。
【0074】操作部160は、プレーヤが操作データを
入力するためのものであり、その機能は、マウスやトラ
ックボールやレバーやキーボードやボタン、筺体などの
ハードウェアにより実現できる。
【0075】記憶部170は、処理部100や通信部1
96などのワーク領域となるもので、その機能はRAM
などのハードウェアにより実現できる。
【0076】情報記憶媒体(コンピュータにより使用可
能な記憶媒体)180は、プログラムやデータなどの情
報を格納するものであり、その機能は、光ディスク(C
D、DVD)、光磁気ディスク(MO)、磁気ディス
ク、ハードディスク、磁気テープ、或いはメモリ(RO
M)などのハードウェアにより実現できる。処理部10
0は、この情報記憶媒体180に格納される情報に基づ
いて本発明(本実施形態)の種々の処理を行う。即ち情
報記憶媒体180には、本発明(本実施形態)の手段
(特に処理部100に含まれるブロック)を実行するた
めの情報(プログラム或いはデータ)が格納される。
【0077】なお、情報記憶媒体180に格納される情
報の一部又は全部は、システムへの電源投入時等に記憶
部170に転送されることになる。また情報記憶媒体1
80に記憶される情報は、本発明の処理を行うためのプ
ログラムコード、画像データ、音データ、表示物の形状
データ、テーブルデータ、リストデータ、本発明の処理
を指示するための情報、その指示に従って処理を行うた
めの情報等の少なくとも1つを含むものである。
【0078】表示部190は、本実施形態により生成さ
れた画像を出力するものであり、その機能は、CRT、
LCD、或いはHMD(ヘッドマウントディスプレイ)
などのハードウェアにより実現できる。
【0079】音出力部192は、本実施形態により生成
された音を出力するものであり、その機能は、スピーカ
などのハードウェアにより実現できる。
【0080】携帯型情報記憶装置194は、プレーヤの
個人データやセーブデータなどが記憶されるものであ
り、この携帯型情報記憶装置194としては、メモリカ
ードや携帯型ゲーム装置などを考えることができる。
【0081】通信部196は、外部(例えばホスト装置
や他のゲームシステム)との間で通信を行うための各種
の制御を行うものであり、その機能は、各種プロセッ
サ、或いは通信用ASICなどのハードウェアや、プロ
グラムなどにより実現できる。
【0082】なお本発明(本実施形態)の手段を実行す
るためのプログラム或いはデータは、ホスト装置(サー
バー)が有する情報記憶媒体からネットワーク及び通信
部196を介して情報記憶媒体180に配信するように
してもよい。このようなホスト装置(サーバー)の情報
記憶媒体の使用も本発明の範囲内に含まれる。
【0083】処理部100は、間接制御演算部110、
ゲーム処理部130、画像生成部140、音生成部15
0を含む。
【0084】ここで間接制御演算部110は、例えばゲ
ーム空間における操作対象オブジェクトを囲む仮想流体
の流れを制御するための操作入力を受け付け、前記操作
入力に基づき、ゲーム空間において仮想流体に囲まれた
操作対象オブジェクトの移動又は回転を間接的に制御す
るために必要な処理を行う。
【0085】また間接制御演算部110は、例えばプレ
ーヤからの操作入力に基づき、ゲーム空間における操作
対象オブジェクトを囲む仮想流体の動作及び状態の少な
くともひとつを制御し、前記仮想流体の動作及び状態の
少なくともひとつを作用させて操作対象オブジェクトの
配置演算を行う。
【0086】また間接制御演算部110は、例えばプレ
ーヤからの操作入力に基づき、ゲーム空間における操作
対象オブジェクトの周りに設定されたベクトル場の流体
シミュレーション演算を行い、流体シミュレーション演
算により求められたベクトル場の状態を反映させて操作
対象オブジェクトの配置演算を行う。
【0087】また間接制御演算部110は、例えば流体
の動作及び状態の少なくともひとつシミュレーションす
るためのベクトル場を生成して前記操作入力に基づきベ
クトル場における流体シミュレーション演算を行い、流
体シミュレーション演算の結果得られたベクトル場の状
態に基づき仮想流体の流れ、動作及び状態の少なくとも
ひとつを制御する処理を行う。
【0088】ここにおいて前記流体シミュレーション演
算は、例えば連続体の運動を支配する所与の物理方程式
に関連付けて得られた差分方程式を用いて、ベクトル場
に属する各点の時間nの速度情報に基づき時間n+1の
速度情報を求めるための物理シミュレーション演算であ
って、プレーヤからの操作入力に基づき前記点に与える
時間nの速度情報を制御して流体シミュレーション演算
を行う。
【0089】また間接制御演算部110は、例えばプレ
ーヤの操作入力に基づき、ベクトル場又は仮想流体に作
用させる速度ベクトルに関する情報を演算し、当該速度
ベクトルの位置とベクトル場に属する点との位置関係に
基づき速度ベクトルを作用させるベクトル場に属する点
を選択し、選択された点に対し前記速度ベクトルを作用
させて前記流体シミュレーション演算を行う。
【0090】また間接制御演算部110は、前記流体シ
ミュレーション演算により前記ベクトル場に属する点の
速度ベクトルを求め、ベクトル場に属する点と操作対象
オブジェクトの位置関係に応じてベクトル場に属する点
の速度ベクトルを操作対象オブジェクトに作用させ、操
作対象オブジェクトの移動及び回転の少なくともひとつ
を行う。
【0091】また間接制御演算部110は、例えばプレ
ーヤからの操作入力に基づき前記仮想流体又はベクトル
場の流れの操作の目安となるシンボルマーク付近の流れ
を制御する処理を行う。
【0092】また間接制御演算部110は、例えばプレ
ーヤからの操作入力に基づき前記仮想流体又はベクトル
場の流れの操作の目安となる前記シンボルマークの位
置、回転、形状の少なくともひとつを制御する処理を行
う。
【0093】また間接制御演算部110は、例えば前記
ベクトル場として2次元のベクトル場を用いる。
【0094】また間接制御演算部110は、例えばゲー
ムフィールド又は仮想流体領域よりも小さなベクトル場
を用いて流体シミュレーション演算を行う。
【0095】また間接制御演算部110は、例えば仮想
流体又はベクトル場に障害物が存在する場合、前記ベク
トル場に占める障害物エリアの属する点に所定の速度情
報を設定する。
【0096】また間接制御演算部110は、例えば操作
対象オブジェクトの近くに障害物が存在する場合、操作
対象オブジェクトの移動をアシストする処理を行う。
【0097】また間接制御演算部110は、ゲームの難
易度に応じて前記流体シミュレーション演算で用いる粘
性に関連するパラメータをコントロールする処理を行
う。
【0098】ゲーム処理部130は、コイン(代価)の
受け付け処理、各種モードの設定処理、ゲームの進行処
理、選択画面の設定処理、ヒットチェック処理、ゲーム
結果(成果、成績)を演算する処理、複数のプレーヤが
共通のゲーム空間でプレイするための処理、或いはゲー
ムオーバー処理などの種々のゲーム処理を、操作部16
0からの操作データや、携帯型情報記憶装置194から
の個人データ、保存データや、ゲームプログラムなどに
基づいて行う。
【0099】またゲーム処理部130は、例えばプレー
ヤがゲーム空間において前記操作対象オブジェクトを囲
む仮想流体又は流体場の流れを操作することにより、前
記操作対象オブジェクトをゲーム空間内の所与の経路に
沿って移動させる場合、移動状況に基づきゲーム結果を
判断する処理を行う。
【0100】またゲーム処理部130は、例えばプレー
ヤがゲーム空間において前記操作対象オブジェクトを囲
む仮想流体又は流体場の流れを操作することにより、前
記操作対象オブジェクトをゲーム空間内の所与のエリア
に移動させる場合、移動状況に基づきゲーム結果を判断
する処理を行う。ここにおいて、前記所与のエリアに入
った操作対象オブジェクトの量でゲームの優劣を判断す
るようにしてもよい。
【0101】またゲーム処理部130は、例えばゲーム
空間において敵である前記操作対象オブジェクトがプレ
ーヤキャラクタ又はプレーヤ領域に近づいてきた場合
に、プレーヤが前記操作対象オブジェクトを囲む仮想流
体又は流体場の流れを操作することにより敵である前記
操作対象オブジェクトを追い払い、追い払い状況に基づ
きゲーム結果を判断する処理を行う。
【0102】またゲーム処理部130は、例えばプレー
ヤが前記操作対象オブジェクトを囲む仮想流体又は流体
場の流れを操作することにより、前記操作対象オブジェ
クトを回転させる場合、回転量に基づきゲーム結果を判
断する処理を行う。
【0103】画像生成部140は、ゲーム処理部130
からの指示等にしたがって各種の画像処理を行い、例え
ばオブジェクト空間内で仮想カメラ(視点)から見える
画像を生成して、表示部190に出力する処理を行う。
【0104】例えば画像生成部140はオブジェクト
(1又は複数のプリミティブ面)の位置や回転角度
(X、Y又はZ軸回り回転角度)を求める処理、オブジ
ェクトを動作させる処理(モーション処理)、視点の位
置(仮想カメラの位置)や視線角度(仮想カメラの回転
角度)を求める処理、マップオブジェクトなどのオブジ
ェクトをオブジェクト空間へ配置する処理を行う。
【0105】また例えば画像生成部140は、ローカル
座標系からワールド座標系への座標変換、ワールド座標
系から視点座標系への座標変換、スクリーン座標系への
透視変換、クリッピングなどの種々のジオメトリ処理
(3次元演算)を行う。そして、ジオメトリ処理により
得られた描画データ(2次元のプリミティブ面の定義点
の位置座標、テクスチャ座標、色(輝度)データ、或い
はα値等)は、記憶部170のメインメモリ172に格
納されて、保存される。
【0106】また例えば画像生成部140は、ジオメト
リ処理により得られ、メインメモリ172に保存された
描画データに基づいて、テクスチャマッピングや色(輝
度)データの補間処理や陰面消去などを行いながら、オ
ブジェクトのプリミティブ面をフレームバッファ174
に描画する処理を行う。これによりオブジェクトが配置
されるオブジェクト空間内の所与の視点(仮想カメラ)
での画像が生成されるようになる。
【0107】音生成部150は、ゲーム処理部110か
らの指示等にしたがって各種の音処理を行い、BGM、
効果音、又は音声などの音を生成し、音出力部192に
出力する。
【0108】なお、ゲーム処理部110、画像生成部1
40、音生成部150の機能は、その全てをハードウェ
アにより実現してもよいし、その全てをプログラムによ
り実現してもよい。或いは、ハードウェアとプログラム
の両方により実現してもよい。
【0109】なお、本実施形態のゲームシステムは、1
人のプレーヤのみがプレイできるシングルプレーヤモー
ド専用のシステムにしてもよいし、このようなシングル
プレーヤモードのみならず、複数のプレーヤがプレイで
きるマルチプレーヤモードも備えるシステムにしてもよ
い。
【0110】また複数のプレーヤがプレイする場合に、
これらの複数のプレーヤに提供するゲーム画像やゲーム
音を、1つの端末を用いて生成してもよいし、ネットワ
ーク(伝送ライン、通信回線)などで接続された複数の
端末を用いて生成してもよい。
【0111】2.本実施形態の特徴 2.1 ベクトル場 本実施の形態では操作対象オブジェクトの周りの仮想流
体に対してプレーヤからの操作入力をインタラクティブ
に反映させるためにベクトル場を用いて流体シミュレー
ション演算を行い、仮想流体の各点における速度ベクト
ルを求める。
【0112】ベクトル場は、前記仮想流体の影響を及ぼ
す空間を格子状に適当な数に分割して生成する。そして
流体シミュレーション演算によって時間の経過やフレー
ムの進行に伴って変化する各格子点における速度ベクト
ルを求め、場の情報を更新する。
【0113】流体シミュレーションは、所与の境界条件
のもと、求める物理量が時間的空間的に連続性を有し、
与えられた外力の影響を直接的、間接的にベクトル場の
全格子点に及ぼすことができるような所与の計算式によ
って行われる。例えば水や空気のように連続体の運動を
シミュレーションする際には非圧縮性のNavier-Stokes
方程式等を用いてベクトル場の演算を行うことができ
る。
【0114】流体シミュレーション演算を行う際の手順
について説明する。
【0115】流体をシミュレートする空間(ベクトル
場)の、ある瞬間(例えばあるフレーム)における状態
を設定した後、Navier-Stokes方程式等を解くことで、
次の瞬間(次のフレーム)におけるベクトル場の状態が
求まる。
【0116】図2は流体計算を行う際の手順について説
明するための模式的な図であり、図3は流体シミュレー
ション計算を行う際の手順について説明するためのフロ
ーチャート図である。
【0117】図2の210−1はある瞬間におけるベク
トル場の様子を模式的に表したものであり、210−2
は次の瞬間におけるベクトル場の様子を模式的に表した
ものである。220はベクトル場の各格子点であり、場
の状態はある時点で各格子点220に与えられた速度ベ
クトルであらわすことができる。
【0118】なお図2では見た目のわかり易さのため、
ベクトル場を2次元的に表しており、格子点とベクトル
の始点はずらしてある。
【0119】次の瞬間のベクトル場210−2の状態を
求める際には以下のような手順で流体シミュレーション
演算を行う(図3参照)。
【0120】まず各格子点にある瞬間における速度情報
(速度ベクトル)を与える(ステップS10)(図2の
210−1参照)。
【0121】次に各格子点設定された速度情報をもとに
流体計算を行う(ステップS20)。
【0122】そして流体シミュレーション演算結果によ
り求まった各格子点の速度情報が次の瞬間のベクトル場
の状態を表す情報とする(ステップS30)(図2の2
10−2参照)。
【0123】これ以降は、ステップS30で得た速度情
報をステップS10のある瞬間における各格子点の速度
情報として与え再び計算を行うことで、ベクトル場の状
態変化を追うことができる。
【0124】なお、初期状態は基本的に自由に設定でき
るため、任意の時間、任意の点に外力を加えることも可
能である外力をベクトル場に反映させるためには、対応
する格子点(例えば外力が加わった位置に近い格子点)
に、外力に対応した適当な速度ベクトルを与えるとよ
い。
【0125】図4(A)(B)(C)はベクトル場に外
力を与えた場合の場の状態の変化を模式的に表した図で
ある。
【0126】なお図4(A)(B)(C)では見た目の
わかり易さのため、ベクトル場を2次元的に表してお
り、格子点とベクトルの始点はずらしてある。
【0127】例えば、図4(A)のようなベクトル場2
10に対して、図4(B)のように外力230を与えれ
ば、流体シミュレーション演算後、図4(C)のような
ベクトル場を得ることができる。
【0128】ここで外力を流体シミュレーション演算に
反映させる方法としては、例えば外力の方向及び大きさ
に応じて得られる速度ベクトルを、外力の加わった位置
の最寄りの格子点に初期情報として与える場合でもよ
い。また外力の方向及び大きさに応じて得られる速度ベ
クトルを外力の加わった位置の周囲の格子点220−
1、220−2、220−3、220−4に分散して初
期情報として与える場合でもよい。
【0129】このような操作によって、仮想流体にイン
タラクティブ性を持たせることが可能になる。
【0130】次にベクトル場を設定する際の境界条件に
ついて説明する。シミュレートする空間(流体対場)に
おける端での値を境界条件と呼ぶ。
【0131】境界条件は、流体シミュレーション演算を
行う上で非常に重要な要素であり、この値の与えかた一
つで仮想流体の様々な振る舞いを再現することができ
る。
【0132】例えば、下端における速度を下方向に設定
すれば、仮想流体は上から下へと流れる川の水のような
動きになる。
【0133】端での値をすべて0にすれば、風呂場の湯
船の水面のように、閉じた空間での動きになり、渦を巻
く様子が確認できる。
【0134】例えば図5に示すように、下端での条件と
して上向きに吹き出すような速度240を設定すること
で、常に下から上へと気体が流れる状態のベクトル場を
生成することができる。
【0135】この状態で放置しておけば、程なくすると
定常的な流れとなりそれだけでは流体シミュレーション
演算を行っているメリットはあまりないが、「風を送
る」というような操作が先に述べたような方法で手軽に
できるため、従来の方法では困難であったインタラクテ
ィブな操作を可能にしている。
【0136】2.2 Navier-Stokes方程式を用いた流
体シミュレーションについて 水や空気のような連続体の運動を支配する方程式はNavi
er-Stokes方程式と呼ばれる。流体の流れが音速に比べ
て十分小さい場合は非圧縮性を仮定してよく、この場合
のNavier-Stokes方程式は以下のようになる。
【0137】
【数1】
【0138】ここで、Vは流速、pは圧力、ρは密度、
μは流体の粘性率である。また、∇は勾配演算子、Δは
ラプラシアンを表す。
【0139】これらの方程式を差分化することで各格子
点における解を数値的に得ることができる。差分化によ
って解析を行う空間をベクトル場として格子状に分割
し、各格子点にそれぞれ速度情報を持たせて計算を行
う。
【0140】以下差分化する手法の一例について具体的
に説明する。
【0141】(E1)は質量保存則を表す偏微分方程式
であり、「連続の式」と呼ばれる。また、(E2)は運
動量保存則を表し、(狭義の)Navier-Stokes方程式と
呼ばれる。
【0142】この式において、流れの代表的な長さを
L、代表的な速度をUとして以下のようにおく。
【0143】
【数2】
【0144】これよりx,V,t,pは無次元量とな
る。これらを(E1)、(E2)に代入すると以下の式
が導かれる。
【0145】
【数3】
【0146】またReはReynolds数と呼ばれ以下の式で
定義される無次元のパラメータである。
【0147】
【数4】
【0148】この方程式に現れるパラメータはただひと
つであり、外力が働かない場合、流れはReynolds数に応
じて変化する。
【0149】その定義から、流速が小さいこと、流れの
スケールが小さいこと、粘性が大きいこと、すべてReyn
olds数を小さくするという意味で同じ効果をもつ。Reyn
olds数は、物理的には慣性力と粘性力の比を表し、Reyn
olds数が小さいことは、粘性力が慣性力より卓越するこ
とを意味する。すなわち、直感的には粘い流体の流れと
なる。
【0150】(E1)’、(E2)’の変数をあらため
てx,V,t,pと置きなおすことにより以下の式が得
られる。
【0151】
【数5】
【0152】(E3)、(E4)の式は、式(E4)
の左辺第2項が非線形であること、最高階の微係数は
式(E4)の右辺第2項の2階でありさらにパラメータ
を含んでいること、速度Vについては時間発展型にな
っているが圧力pについては時間発展型になっているこ
とといった特徴を表している。
【0153】特に、は非圧縮性特有の問題であり、Na
vier-Stokes方程式の数値解法を困難にしている要因で
ある。つまり、速度Vを時間発展的に求める場合、各時
間ステップで連続の式(E3)を満たすように、圧力p
を決める必要がある。
【0154】非圧縮性Navier-Stokes方程式を数値的に
解く方法として、圧力を独立に求める方法を採用すると
いかのようになる。
【0155】式(E4)において、両辺の発散をとる
と、
【0156】
【数6】
【0157】D=∇・Vとおくと以下のようになる。
【0158】
【数7】
【0159】連続の式(E3)によれば、D=0となる
はずであるが、(E5)を差分化して解く際、離散化誤
差が集積してDが大きな値となることがあるので、わざ
と残してある。さて、(E5)において、D=0として
求めた圧力分布は以下の式を満たす。
【0160】
【数8】
【0161】ただし、(E6)は必ずしもD=0を意味
しない。それは、D=定数(≠0)が(E6)を満たす
ことからもわかる。境界上で常にD=0が満足され、さ
らに領域内すべてでD=0を満足するように初期条件が
与えられれば式(E6)はD=0を意味するが、これら
の条件を満たすのは困難である。
【0162】そこで、まず式(E5)をtについて離散
化する。
【0163】
【数9】
【0164】ここでDn+1=0とおくと、(E5)は以
下のようになる。
【0165】
【数10】
【0166】このようにして求まるpはDn≠0であっ
ても、Dn+1=0となるように決めているため、境界条
件の不正確さや時間進行による誤差集積に対して常にD
を小さな値にとどめておくことができる。
【0167】式(E7)から圧力が決まれば、式(E
4)に圧力を代入することにより、Vを時間発展的に求
めることが可能になる。この方法は一般に、MAC法と
呼ばれる。
【0168】また、(E7)において、Δtは十分小さ
いため、α=0と、みなすことができる。
【0169】従って、非圧縮性Navier-Stokes方程式を
解くためには、以下の2式を解くことになる。
【0170】
【数11】
【0171】2次元のデカルト座標系として、(E
8)、(E9)を成分表示すると以下のようになる。
【0172】
【数12】
【0173】式(E10)は圧力に関するPoisson方程
式である。
【0174】また、式(E11)、(E12)に関して
は、それぞれの非線型項uux+vuy,uvx+vvy
対し以下の式を用いることができる。
【0175】
【数13】
【0176】以下、計算の一例としてキャビティ問題を
とりあげる。
【0177】図6(A)(B)(C)は具体的な計算例
について説明する際に用いる図である。
【0178】ここでいうキャビティ問題とは、図6
(A)のような正方形領域を満たしている流体を考え、
DC上を速度1で右方向に移動させた際の、内部の流体
の動きを数値的に求めることである。
【0179】まず、速度の境界条件を考えると、AD、
AB、BC上において、u=v=0であり、CD上にお
いて、u=1,v=0である。
【0180】次に、圧力の境界条件を考える。
【0181】式(E9)において、粘性項を除いてV=
0を代入すると以下の式が成り立つ。
【0182】
【数14】
【0183】この式は、AD、BC上ではy方向に沿っ
てu=0であるから以下の式が成り立つ。
【0184】
【数15】
【0185】また、AB、CD上ではx方向に沿ってv
=0であるから以下の式が成り立つ。
【0186】
【数16】
【0187】ここで差分化に際して、スタガード格子と
呼ばれる格子を用いている。これは、図6(B)に示す
ように、ここの物理量の定義が同一でないもので、これ
とは逆に、全ての物理量が同一の点で定義される格子は
レギュラー格子と呼ばれる。
【0188】図6(B)からわかるように、スタガード
格子の利点として、一つの格子セルで連続の式が自然に
表現でき、「各方向の圧力勾配がその方向の速度を決め
る」というNavier-Stokes方程式の性質が自然に表現で
きる、といった点が挙げられる。
【0189】具体的に図6(B)のセルにおいて連続の
式を近似すると以下の式が成り立つ。
【0190】
【数17】
【0191】スタガード格子を用いてNavier-Stokes方
程式を解く場合の注意点として、例えばuに対する方程
式を考えると、方程式中に以下の項が現れる。
【0192】
【数18】
【0193】この項中のvは本来であればuの定義点に
おける値をとるべきであるが、スタガード格子を用いた
場合、その点ではvの値が定義されていない。従って、
vの定義点から何らかの方法で値を決定する必要があ
る。ここでは、まわりの点の平均値によって定めた。
【0194】すなわち、先の例の場合以下のようにな
る。
【0195】
【数19】
【0196】vに関する方程式についても同様である。
【0197】また、圧力に関するPoisson方程式(E1
0)の右辺に関しても同様の処理を行うものとする。
【0198】これでNavier-Stokes方程式を解くために
必要な条件が揃ったことになるので、後は(E10)、
(E11)、(E12)を差分化して計算すれば良い。
【0199】念のため、以下に差分化した結果を示して
おく。
【0200】
【数20】
【0201】なお、いずれの式も上添え字のnは省略し
てある。
【0202】方程式を解く際の手順であるが、速度の初
期条件あるいは、前の時間ステップにおける速度から
(F1)のPoisson方程式を解いて圧力を求め、その圧
力と速度を用いることで(F2)、(F3)を解き、次
の時間ステップでの速度を求める。この手順を繰り返す
ことで、解を時間発展的に求めることが可能になる。
【0203】本実施の形態ではベクトル場を構成する各
格子点ごとに、(F1)〜(F3)をといて、各格子点
に与える速度ベクトルを求める。
【0204】ここで(F1)は圧力を求める方程式であ
り、(F2)はx方向の速度を求める方程式であり、
(F3)はy方向の速度を求める方程式である。また
i、jはそれそれ2次元ベクトル場における各格子点の
x、y座標を表す添え字である。またuの上添え字のn
+1は、次の瞬間のuの値を意味している。
【0205】本実施の形態でプレーヤの操作入力に基づ
き仮想流体やベクトル場に対して与えられる速度ベクト
ルを流体シミュレーション演算に反映させる場合には、
(F2)式のuijとして前記速度ベクトルのx成分を用
い、(F3)式のvijとして前記速度ベクトルのy成分
を用いるとよい。
【0206】最後に、境界条件について述べる。
【0207】速度の境界条件については、壁面を図6
(C)に示すような位置にとると、u w=0となる。
【0208】圧力の境界条件については、例えば仮想点
P’における圧力をp’とすると、式(E14)から、
以下のようになる。
【0209】
【数21】
【0210】また、速度の2階微分は図の点Wにおいて
評価する必要があるが、1次精度の片側差分で近似する
と以下のようになる。
【0211】
【数22】
【0212】中心差分で近似するときは仮想点Aにおけ
るuの値が必要となるが、この場合はuA=uBととる。
また、vに関して仮想点での値が必要な時はvD=−vE
ととる。(このとき、vWをまわりの4点の平均とする
と、vW=0が成り立つ。) 2.3 仮想流体(ベクトル場)を介した間接的な操作 まず操作対象オブジェクトを直接操作する方法と間接的
に操作する方法の相違点について説明する。
【0213】図7(A)(B)は操作対象オブジェクト
を直接操作する場合について説明するための図であり、
図8(A)(B)は操作対象オブジェクトを間接的に操
作する場合について説明するための図である。従来は操
作対象オブジェクト250(図7(A)参照)を例えば
右に動かしたい場合に、マウスやレバー等の所与の入力
装置を用いて操作対象オブジェクト250を直接右方向
に動かしていた(図7(B)参照)。
【0214】本実施の形態では操作対象オブジェクト2
50の周りは仮想流体260に囲まれており(図8
(A)参照)、プレーヤは操作対象オブジェクト250
を直接操作するのではなく、操作対象オブジェクト25
0を囲む仮想流体を操作する。具体的には仮想流体に与
える速度ベクトル270を入力する。
【0215】例えばプレーヤがマウス等で画面上の27
2をポイントしてlだけ270の矢印の示す方向にドラ
ッグしたとすると、始点が272で大きさがlで方向が
270の矢印の示す方向である速度ベクトル270が、
外力として仮想流体に与えられると考える。この速度ベ
クトル270を用いて流体シミュレーション演算を行う
ことで、例えば図8(B)の280のような流れを仮想
流体260に生じさせることができる。そして操作対象
オブジェレクトはこの仮想流体に生じた流れによって流
される形で移動する。すなわち本実施の形態では、操作
対象オブジェクト250の周りの仮想流体260に生じ
た流れ280によって操作対象オブジェクト250が間
接的に操作されることになる。
【0216】本実施の形態では、プレーヤからの操作入
力が仮想流体に与える影響をシミュレーションするため
にベクトル場を生成する。
【0217】なお、実際のベクトル場は図2,図4、図
5で説明したように格子状に分割され、各格子点毎に速
度ベクトルを有しているが、説明の都合上特に問題のな
い場合には見やすくするためにベクトル場に生じた流れ
のみを模式的に図示するにとどめている。
【0218】図9はプレーヤの操作入力とベクトル場に
生じる流れの関係について説明するための図である。
【0219】本実施の形態では、操作対象オブジェクト
250の周りのベクトル場300がプレーヤによってマ
ウスでドラッグされると、速度ベクトル270が外力と
してベクトル場に加えられたものとして流体シミュレー
ション演算を行う。
【0220】すると速度ベクトル270によりベクトル
場の状態が変化し、320に示すような流れ(速度ベク
トル)がベクトル場300に新たに生じることになる。
【0221】図10(A)(B)は、操作対象オブジェ
クトがベクトル場から受ける力を求める処理について説
明するための図である。図10(A)は流体シミュレー
ション演算後のベクトル場の状態を表しており、図10
(B)は操作対象オブジェクトの近傍のベクトル場の状
態を表している。
【0222】図10(A)のベクトル場の各格子点22
0の速度ベクトル350は、流体シミュレーション演算
によってプレーヤがベクトル場に加えた外力を反映した
ものとなっている。
【0223】図10(B)の220−1、220−2、
220−3、220−4は、操作対象オブジェクト25
0を囲む格子点であり、350−1、350−2、35
0−3、350−4は、流体シミュレーション演算の結
果前記各格子点に与えられた速度ベクトルである。
【0224】本実施の形態では、操作対象オブジェクト
250に最も近い格子点220−1に与えられた速度ベ
クトル350−1を、操作対象オブジェクトに与える
(360参照)。
【0225】そして操作対象オブジェクト250は与え
られた速度ベクトル360により移動する。これにより
プレーヤが仮想流体やベクトル場の流れを操作すること
で間接的に操作対象ベクトルを操作することが可能とな
る。
【0226】2.4 オブジェクトの移動に伴うベクト
ル場の移動 流体シミュレーションを行う領域よりもゲームのステー
ジ領域の方が広い場合、画面のスクロールに合わせてシ
ミュレーション領域の情報を適用する必要がある。
【0227】図11は仮想の空間であるベクトル場(流
体シミュレーション領域380)において流体シミュレ
ーションを行い、その空間を実際のゲームのステージに
重ねるような形でシミュレーション結果を適用する様子
を図示したものである。
【0228】390はゲームステージにおけるシミュレ
ーション結果適用領域であり、流体シミュレーション領
域380が重ねられる領域である。
【0229】本実施の形態では、仮想流体又はベクトル
場を介して操作対象オブジェクトを間接的に操作するた
め、操作対象オブジェクト250の周囲をゲームステー
ジにおけるシミュレーション結果適用領域390とす
る。
【0230】ここにおいてゲーム画面がスクロールしそ
の画面に流体シミュレーションの結果を適用する場合、
ゲーム画面に合わせてシミュレーションの結果もスクロ
ールする必要がある。
【0231】図12(A)(B)(C)は画面のスクロ
ールに伴う流体シミュレーション領域の状態の変更処理
について説明するための図である。
【0232】例えば、図12(A)のようにゲームステ
ージ400中をRのように流れる川があったとする。
【0233】現在、Aが表示領域(操作対象オブジェク
トを含む領域)であり、410−1がそのシミュレーシ
ョン領域であるとする。
【0234】ここにおいて表示領域(操作対象オブジェ
クトを含む領域)がAからBに変わると410−1の状
態でシミュレーションを続けていたのでは望む結果が得
られない。そこで、表示領域を変える際にシミュレーシ
ョン領域410−1において1、2、3で示される流れ
をf、1、2(410−2参照)とすることによって自
然な流れを表現する。なおfはゲームデータとしてあら
かじめ保持してあるデータを与える。
【0235】このような手順を繰り返すことにより、シ
ミュレーション領域よりも広いマップを持つゲームのス
テージも、単一のシミュレーション領域で表現すること
が可能となる。
【0236】2.5 仮想流体(ベクトル場)に障害物
が存在する場合の処理 流体シミュレーションを行う領域に障害物が存在する場
合、障害物及びその近傍エリア(以下、障害物エリアと
いう)について周囲の仮想流体エリアと同様に扱うと、
例えば操作対象オブジェクトが障害物を乗り越えてしま
う等の不自然な画像が生成されてしまう。そこで、障害
物エリアのように周りの流れからの影響以外の要素で流
れが決まるようにエリアに対しては、何らかの対処を施
す必要がある。
【0237】本実施の形態では、そのようなエリアに対
して望むような効果が得られるような流れを強制的に与
える。
【0238】図13(A)(B)は、障害物の周りのベ
クトル場の設定について説明するための図である。図1
3(A)は仮想流体に満たされた領域420に障害物4
30が存在している様子を示した図であり、図13
(B)はかかる領域420に適用するベクトル場440
の様子を表している。このような場合、本実施の形態で
は図13(B)の障害物エリア450の流れを強制的に
0にしている。具体的には障害物エリア450に属する
格子点に設定する速度ベクトルを0にする。このように
することで、操作対象オブジェクトの移動が障害物に邪
魔される様子を表現することができる。
【0239】なお障害物とは仮想流体の中のオブジェク
トに限られず、例えば堤防等の仮想流体の両端に位置す
るオブジェクトでもよい。
【0240】また図13(A)(B)では仮想流体の中
に障害物が存在する場合について説明したが、同様の手
法を用いて強制的な流れを作る速度ベクトルをベクトル
場に設定することで渦をまく様子や水が湧き出す様子な
ども表現することが可能である。
【0241】2.6 粘性パラメータ等による難易度設
定 流体のシミュレーションにおいて使用される「粘性」に
関するパラメータの値を変更することで、仮想流体の振
る舞いを変えることができる。粘性が高くなると動きが
鈍くなり、流れが静かになるまでの時間も早い。逆に、
粘性が低くなると動きが激しくなり、流れもなかなか収
まらない。この性質を、ゲームの難易度設定に応用する
ことが可能である。
【0242】流体のシミュレーション演算において「粘
性」を変更する場合には例えば(f2)(f3)式にお
けるReの値を変更するとよい。
【0243】図14は、粘性パラメータ等による難易度
設定を行うゲームの一例について説明するための図であ
る。本ゲームはプレイヤーが仮想流体460を操作する
ことによりボール(操作対象オブジェクト)450に対
して間接的な操作を行い、ボール(操作対象オブジェク
ト)450が壁470や障害物480に触れないように
運ぶという内容のゲームである。
【0244】このようなゲームの場合、間接操作の性質
上、粘性が高い方がボールの動きが少なく操作し易く、
粘性が低くなるとボールの動きが大きくなり、操作が難
しくなる。したがって、粘性のパラメータ値をコントロ
ールすることで、ゲーム自体の難易度を調整することが
可能になる。
【0245】2.7 間接操作により操作対象オブジェ
クトの配置を求める処理 図15は間接操作により操作対象オブジェクトの配置を
求める処理の流れを説明するためのフローチャート図で
ある。本実施の形態では、各フレーム毎にステップS1
10〜S180の処理を行うことで、プレーヤの入力に
よって間接的に操作される今回フレームの操作対象オブ
ジェクトの配置を演算する。
【0246】まず前回の流体シミュレーション演算の結
果得られたベクトル場を、操作対象オブジェクトの周り
にマッピングするベクトル場の初期状態として設定する
(ステップS110)。
【0247】次にプレーヤからの操作入力に基づき、ベ
クトル場に作用させる速度ベクトルの方向及び大きさ、
ベクトル場における位置を演算する(ステップS12
0)。
【0248】ここにおいて速度ベクトルは、例えばプレ
ーヤがマウス等でクリックした画面上のポイントに対応
するベクトル場の点をその位置として、プレーヤがマウ
スをドラッグした方向をその方向とし、ドラッグした距
離をその大きさとすることができる。
【0249】次にベクトル場の格子点の中で、ステップ
S120で演算された速度ベクトルの位置に最も近い格
子点を検出する(ステップS130)。
【0250】次に検出された格子点に、ステップS12
0で演算された速度ベクトルを設定する(ステップS1
40)。
【0251】具体的には当該格子点について流体シミュ
レーション演算を行う際に、(F2)式(F3)式にお
ける時間nにおけるx方向及びy方向の速度の値をステ
ップS120で演算された速度ベクトルのx成分、y成
分で置き換えることで実現する。
【0252】次に障害物に最も近い格子点に所定の速度
ベクトルを設定する(ステップS150)。所定の速度
ベクトルとは例えば0である。
【0253】次にベクトル場を構成する各格子点につい
て流体シミュレーション演算を行い、今回フレームで各
格子点に与えられる速度ベクトルを求める(ステップS
160)。
【0254】次に流体シミュレーション演算により求ま
ったベクトル場の状態を、操作対象オブジェクトの周り
にマッピングして、操作対象オブジェクトに最も近い格
子点を検出する(ステップS170)。
【0255】そして検出された格子点の速度ベクトルを
操作対象オブジェクトに与え、操作対象オブジェクトの
配置を演算する(ステップS180)。
【0256】なお前記処理のステップS130、S14
0では、速度ベクトルに最も近い格子点の速度ベクトル
のみ置き換える場合について説明したがこれに限られな
い。例えば速度ベクトルの周りの複数の格子点に速度ベ
クトルを距離に応じて適宜按分して与えるようにしても
よい。
【0257】また前記処理のステップS170では、操
作対象オブジェクトに最も近い格子点の速度ベクトルを
操作対象オブジェクトに与える場合について説明したが
これに限られない。例えば操作対象オブジェクトの周り
の複数の格子点の速度ベクトルもちいて補間演算して得
られた速度ベクトルを操作対象オブジェクトに与えるよ
うにしてもよい。
【0258】なお、粘性パラメータの設定は流体シミュ
レーション計算に先立って行う必要がある。基本的に、
このパラメータを小さくすれば粘性が高くなり、大きく
すれば粘性が低くなる。どちらが難易度が高くなるかは
ゲーム内容によるが、粘性が低い方が流れの乱れ方が大
きくなるので、一般的には、難易度を高くする場合は粘
性を高く設定する。
【0259】なお流体のシミュレーション演算において
「粘性」を変更する場合には例えば(f2)(f3)式
におけるReの値を変更するとよい。
【0260】3.流体シミュレーション計算を応用した
ゲームの具体例 3.1 操作対象オブジェクトを所与の経路に沿って移
動させるゲーム 図16は操作対象オブジェクトを所与の経路に沿って移
動させるゲームについて説明するための図である。本ゲ
ームは、ボール(操作対象オブジェクト)510の周囲
を仮想流体520が満たしていると考え、障害物530
が配置されたゲームステージ中に置かれているボール
(操作対象オブジェクト)510を障害物に接触しない
ように運んでいくゲームである。
【0261】ボール(操作対象オブジェクト)510の
周辺をマウスでドラッグすることで仮想流体520が動
き、ボール(操作対象オブジェクト)510はその仮想
流体の流れに沿って動くものとする。ボール(操作対象
オブジェクト)510の動きに従って画面はスクロール
し、ゴールまで運ぶことができればプレイヤーの勝ちと
なる。
【0262】3.2 操作対象オブジェクトを所与のエ
リアに移動させるゲームその1(ボールの仕分けゲー
ム) 図17は操作対象オブジェクトを所与のエリアに移動さ
せるゲームの一例であるボールの仕分けゲームについて
説明するための図である。本ゲームは、水などを模した
仮想流体560で満たされた水槽でボール(操作対象オ
ブジェクト)580を落下させ、所定のエリアに入れる
ゲームである。
【0263】ゲームフィールドに配置された棚590の
上にはいくつかのボール(操作対象オブジェクト)58
0が乗せてある。ここでボールは3色に色分けされてい
るものとし、水槽の底の部分の3つに分割された領域5
70、572、574もそれぞれ赤、黄、青に色分けさ
れているものとする。
【0264】これらのボール(操作対象オブジェクト)
580を棚から落とし、ボール(操作対象オブジェク
ト)580の色に合った領域に入れることで、ボール
(操作対象オブジェクト)580をその色によって仕分
けする。ボール(操作対象オブジェクト)580は重力
gの影響を受けて落下していくが、プレイヤーは仮想流
体560の任意の場所をマウスでドラッグすることで水
流を作り、ボール(操作対象オブジェクト)580がう
まく同じ色の領域570、572、574に入るように
コントロールする。
【0265】最終的に、色の合った領域570、57
2、574にあるボール(操作対象オブジェクト)58
0の数が多いほど高得点になる。
【0266】3.3 シンボルマークを操作し操作対象
オブジェクトを所与のエリアに移動させるゲームその2
(エアーホッケー風ゲーム) 図18は操作対象オブジェクトを所与のエリアに移動さ
せるゲームの一例であるエアーホッケー風ゲームについ
て説明するための図である。
【0267】本ゲームではゲームステージ700−1は
左右の陣地710、720に分けられており、2人のプ
レイヤーが左右の陣地710、720に別れて戦う。プ
レイヤーは自分の陣地内の矢印712、722をコント
ローラ等で操作する。
【0268】ここでゲームステージ700−1は仮想流
体に満たされており、矢印が仮想流体又はベクトル場の
流れの操作の目安となるシンボルマークとなる。矢印7
12、722は360゜好きな方向に向けることが可能
で、さらに、矢印712、722からは任意の強さの水
流を作ることができるようになっている。従って、自分
の陣地内であれば任意の位置に任意の水流を作ることが
できる。
【0269】こうして作られた水流に沿って、ステージ
中に配置された幾つかのボール(操作対象オブジェク
ト)730が動く。一定時間後、自分の陣地にあるボー
ル(操作対象オブジェクト)730の数が少ないプレイ
ヤーの勝ちとなる。そのため、プレイヤーは、できるだ
け相手陣地にボールを残せるように矢印をコントロール
する。
【0270】700−2は一定時間経過後のゲームステ
ージの様子を表している。ここでは向かって左側の陣地
710内にあるボール(操作対象オブジェクト)730
が向かって右側の陣地720内にあるボール(操作対象
オブジェクト)730より少ないため、向かって左側の
陣地720のプレーヤの勝ちとなる。
【0271】3.4 シンボルマークを操作し操作対象
オブジェクトを回転させるゲーム 図19は操作対象オブジェクト770を回転させるゲー
ムについて説明するための図である。本ゲームは、仮想
流体760で満たされたゲームステージに浮かんでいる
星型の操作対象オブジェクト770を回転させるゲーム
である。
【0272】プレイヤーは下方にある矢印780を操作
し、矢印780から水流790を作ることができる。水
流790に従って星型の操作対象オブジェクト770が
回転し(772参照)、制御時間内に何回転できるかを
競う。
【0273】3.5 シンボルマークを操作し前記操作
対象オブジェクトを追い払うゲーム 図20は前記操作対象オブジェクトを追い払うゲームに
ついて説明するための図である。本ゲームは、画面上方
から攻め寄せてくる敵オブジェクト810に対し、プレ
イヤーは矢印820から作りだされる水流830を当て
て追い返すゲームである。一番上まで追い返すと、その
敵オブジェクト810を倒すことができる。
【0274】制限時間内でどれだけ敵を倒せるかを競う
ゲームである。
【0275】3.6 シンボルマークを操作し操作対象
オブジェクトを所与のエリアに移動させるゲームその3 図21はプレイヤーが画面下方の矢印870を操作し
て、仮想流体850に囲まれたボール(操作対象オブジ
ェクト)860をゴール地点892まで運ぶゲームであ
る。プレイヤーが画面下方の矢印870を操作すると仮
想流体850に水流880が生じ、その水流880にボ
ール(操作対象オブジェクト)860が動かされる。画
面はボール(操作対象オブジェクト)860の進行状況
に応じて上下にスクロールする。ゲームステージには数
々の障害物890が置かれている。プレーヤはこれら数
々の障害物890をかわして、ゴール地点892までボ
ール(操作対象オブジェクト)860を運ぶことができ
れば勝ちとなる。
【0276】なお障害となるのは物体に限定されない。
【0277】例えば、ある地点において、ボールの進行
を邪魔するような流れを意図的に設定しておくことも可
能である。
【0278】図22のように、P1地点からP2地点ま
での間、左から右へと人工的な流れを840設定してお
けば、ボール(操作対象オブジェクト)860がそのエ
リアに差し掛かった時、プレイヤーの操作とは関係なく
右側へ流されるという効果を実現できる。
【0279】4.ハードウェア構成 次に、本実施形態を実現できるハードウェアの構成の一
例について図23を用いて説明する。
【0280】メインプロセッサ900は、CD982
(情報記憶媒体)に格納されたプログラム、通信インタ
ーフェース990を介して転送されたプログラム、或い
はROM950(情報記憶媒体の1つ)に格納されたプ
ログラムなどに基づき動作し、ゲーム処理、画像処理、
音処理などの種々の処理を実行する。
【0281】コプロセッサ902は、メインプロセッサ
900の処理を補助するものであり、高速並列演算が可
能な積和算器や除算器を有し、マトリクス演算(ベクト
ル演算)を高速に実行する。例えば、オブジェクトを移
動させたり動作(モーション)させるための物理シミュ
レーションに、マトリクス演算などの処理が必要な場合
には、メインプロセッサ900上で動作するプログラム
が、その処理をコプロセッサ902に指示(依頼)す
る。
【0282】ジオメトリプロセッサ904は、座標変
換、透視変換、光源計算、曲面生成などのジオメトリ処
理を行うものであり、高速並列演算が可能な積和算器や
除算器を有し、マトリクス演算(ベクトル演算)を高速
に実行する。例えば、座標変換、透視変換、光源計算な
どの処理を行う場合には、メインプロセッサ900で動
作するプログラムが、その処理をジオメトリプロセッサ
904に指示する。
【0283】データ伸張プロセッサ906は、圧縮され
た画像データや音データを伸張するデコード処理を行っ
たり、メインプロセッサ900のデコード処理をアクセ
レートする処理を行う。これにより、オープニング画
面、インターミッション画面、エンディング画面、或い
はゲーム画面などにおいて、所与の画像圧縮方式で圧縮
された動画像を表示できるようになる。なお、デコード
処理の対象となる画像データや音データは、ROM95
0、CD982に格納されたり、或いは通信インターフ
ェース990を介して外部から転送される。
【0284】描画プロセッサ910は、ポリゴンや曲面
などのプリミティブ面で構成されるオブジェクトの描画
(レンダリング)処理を高速に実行するものである。オ
ブジェクトの描画の際には、メインプロセッサ900
は、DMAコントローラ970の機能を利用して、オブ
ジェクトデータを描画プロセッサ910に渡すと共に、
必要であればテクスチャ記憶部924にテクスチャを転
送する。すると、描画プロセッサ910は、これらのオ
ブジェクトデータやテクスチャに基づいて、Zバッファ
などを利用した陰面消去を行いながら、オブジェクトを
フレームバッファ922に高速に描画する。また、描画
プロセッサ910は、αブレンディング(半透明処
理)、デプスキューイング、ミップマッピング、フォグ
処理、トライリニア・フィルタリング、アンチエリアシ
ング、シェーディング処理なども行うことができる。そ
して、1フレーム分の画像がフレームバッファ922に
書き込まれると、その画像はディスプレイ912に表示
される。
【0285】サウンドプロセッサ930は、多チャンネ
ルのADPCM音源などを内蔵し、BGM、効果音、音
声などの高品位のゲーム音を生成する。生成されたゲー
ム音は、スピーカ932から出力される。
【0286】ゲームコントローラ942からの操作デー
タや、メモリカード944からのセーブデータ、個人デ
ータは、シリアルインターフェース940を介してデー
タ転送される。
【0287】ROM950にはシステムプログラムなど
が格納される。なお、業務用ゲームシステムの場合に
は、ROM950が情報記憶媒体として機能し、ROM
950に各種プログラムが格納されることになる。な
お、ROM950の代わりにハードディスクを利用する
ようにしてもよい。
【0288】RAM960は、各種プロセッサの作業領
域として用いられる。
【0289】DMAコントローラ970は、プロセッ
サ、メモリ(RAM、VRAM、ROM等)間でのDM
A転送を制御するものである。
【0290】CDドライブ980は、プログラム、画像
データ、或いは音データなどが格納されるCD982
(情報記憶媒体)を駆動し、これらのプログラム、デー
タへのアクセスを可能にする。
【0291】通信インターフェース990は、ネットワ
ークを介して外部との間でデータ転送を行うためのイン
ターフェースである。この場合に、通信インターフェー
ス990に接続されるネットワークとしては、通信回線
(アナログ電話回線、ISDN)、高速シリアルバスな
どを考えることができる。そして、通信回線を利用する
ことでインターネットを介したデータ転送が可能にな
る。また、高速シリアルバスを利用することで、他のゲ
ームシステムとの間でのデータ転送が可能になる。
【0292】なお、本発明の各手段は、その全てを、ハ
ードウェアのみにより実行してもよいし、情報記憶媒体
に格納されるプログラムや通信インターフェースを介し
て配信されるプログラムのみにより実行してもよい。或
いは、ハードウェアとプログラムの両方により実行して
もよい。
【0293】そして、本発明の各手段をハードウェアと
プログラムの両方により実行する場合には、情報記憶媒
体には、本発明の各手段をハードウェアを利用して実行
するためのプログラムが格納されることになる。より具
体的には、上記プログラムが、ハードウェアである各プ
ロセッサ902、904、906、910、930等に
処理を指示すると共に、必要であればデータを渡す。そ
して、各プロセッサ902、904、906、910、
930等は、その指示と渡されたデータとに基づいて、
本発明の各手段を実行することになる。
【0294】図24(A)に、本実施形態を業務用ゲー
ムシステムに適用した場合の例を示す。プレーヤは、デ
ィスプレイ1100上に映し出されたゲーム画像を見な
がら、レバー1102、ボタン1104等を操作してゲ
ームを楽しむ。内蔵されるシステムボード(サーキット
ボード)1106には、各種プロセッサ、各種メモリな
どが実装される。そして、本発明の各手段を実行するた
めの情報(プログラム或いはデータ)は、システムボー
ド1106上の情報記憶媒体であるメモリ1108に格
納される。以下、この情報を格納情報と呼ぶ。
【0295】図24(B)に、本実施形態を家庭用のゲ
ームシステムに適用した場合の例を示す。プレーヤはデ
ィスプレイ1200に映し出されたゲーム画像を見なが
ら、ゲームコントローラ1202、1204を操作して
ゲームを楽しむ。この場合、上記格納情報は、本体シス
テムに着脱自在な情報記憶媒体であるCD1206、或
いはメモリカード1208、1209等に格納されてい
る。
【0296】図24(C)に、ホスト装置1300と、
このホスト装置1300とネットワーク1302(LA
Nのような小規模ネットワークや、インターネットのよ
うな広域ネットワーク)を介して接続される端末130
4-1〜1304-nとを含むシステムに本実施形態を適用
した場合の例を示す。この場合、上記格納情報は、例え
ばホスト装置1300が制御可能な磁気ディスク装置、
磁気テープ装置、メモリ等の情報記憶媒体1306に格
納されている。端末1304-1〜1304-nが、スタン
ドアロンでゲーム画像、ゲーム音を生成できるものであ
る場合には、ホスト装置1300からは、ゲーム画像、
ゲーム音を生成するためのゲームプログラム等が端末1
304-1〜1304-nに配送される。一方、スタンドア
ロンで生成できない場合には、ホスト装置1300がゲ
ーム画像、ゲーム音を生成し、これを端末1304-1〜
1304-nに伝送し端末において出力することになる。
【0297】なお、図24(C)の構成の場合に、本発
明の各手段を、ホスト装置(サーバー)と端末とで分散
して実行するようにしてもよい。また、本発明の各手段
を実行するための上記格納情報を、ホスト装置(サーバ
ー)の情報記憶媒体と端末の情報記憶媒体に分散して格
納するようにしてもよい。
【0298】またネットワークに接続する端末は、家庭
用ゲームシステムであってもよいし業務用ゲームシステ
ムであってもよい。そして、業務用ゲームシステムをネ
ットワークに接続する場合には、業務用ゲームシステム
との間で情報のやり取りが可能であると共に家庭用ゲー
ムシステムとの間でも情報のやり取りが可能な携帯型情
報記憶装置(メモリカード、携帯型ゲーム装置)を用い
ることが望ましい。
【0299】なお本発明は、上記実施形態で説明したも
のに限らず、種々の変形実施が可能である。
【0300】例えば、本発明のうち従属請求項に係る発
明においては、従属先の請求項の構成要件の一部を省略
する構成とすることもできる。また、本発明の1の独立
請求項に係る発明の要部を、他の独立請求項に従属させ
ることもできる。
【0301】また、本実施の形態では2次元のベクトル
場を用いて流体シミュレーション演算を行う場合を例に
とり説明したがそれに限られない。例えば3次元のベク
トル場をもちいて流体シミュレーション演算を行う場合
でもよい。
【0302】また本実施の形態では連続体の運動を支配
する所与の物理方程式としてNavier-Stokes方程式を例
にとり説明したがこれに限られない。例えば他の物理方
程式に基づき流体シミュレーション演算を行う場合でも
よい。
【0303】また本実施の形態ではベクトル場に属する
点として格子点を例にとり説明したがこれに限られな
い。格子状に並んでいない点でもよい。
【0304】また本実施の形態ではマウスを用いて操作
入力を行う場合を例にとり説明したがこれに限られな
い。例えばレバーやボタンやキーボードやトラックボー
ルやコンソールタッチパネルその他の入力装置を用いる
場合でもよい。
【0305】また本実施の形態では流体シミュレーショ
ン計算を応用したゲームの具体例をいくつかあげたが仮
想流体に対して操作入力が可能で、操作入力に基づき流
体シミュレーション演算を行うゲームであればよい。
【0306】また本実施の形態では、仮想流体又はベク
トル場の流れの操作の目安となるシンボルマークとして
矢印を例にとり説明したがこれに限られない。他のマー
クでもよい。また操作状況に応じてシンボルマークの位
置や回転が変化する場合に限られず、例えば流れの状態
に応じて形状が変化する場合でもよい。
【0307】また本発明は種々のゲーム(格闘ゲーム、
シューティングゲーム、ロボット対戦ゲーム、スポーツ
ゲーム、競争ゲーム、ロールプレイングゲーム、音楽演
奏ゲーム、ダンスゲーム等)に適用できる。
【0308】また本発明は、業務用ゲームシステム、家
庭用ゲームシステム、多数のプレーヤが参加する大型ア
トラクションシステム、シミュレータ、マルチメディア
端末、ゲーム画像を生成するシステムボード等の種々の
ゲームシステム(ゲームシステム)に適用できる。
【図面の簡単な説明】
【図1】本実施形態のゲームシステムのブロック図の一
例を示す。
【図2】本実施の形態で流体計算を行う際の手順につい
て説明するための模式的な図である。
【図3】本実施の形態で流体計算を行う際の手順につい
て説明するためのフローチャート図である。
【図4】図4(A)(B)(C)はベクトル場に外力を
与えた場合の場の状態の変化を模式的に表した図であ
る。
【図5】上向きに吹き出すような速度が設定されたベク
トル場の一例である。
【図6】図6(A)(B)(C)は具体的な計算例につ
いて説明する際に用いる図である。
【図7】図7(A)(B)は操作対象オブジェクトを直
接操作する場合について説明するための図である。
【図8】図8(A)(B)は操作対象オブジェクトを間
接的に操作する場合について説明するための図である。
【図9】プレーヤの操作入力とベクトル場に生じる流れ
の関係について説明するための図である。
【図10】図10(A)(B)は、操作対象オブジェク
トがベクトル場から受ける力を求める処理について説明
するための図である。
【図11】仮想の空間であるベクトル場において流体シ
ミュレーションを行い、その空間を実際のゲームのステ
ージに重ねるような形でシミュレーション結果を適用す
る様子を図示したものである。
【図12】図12(A)(B)(C)は画面のスクロー
ルに伴う流体シミュレーション領域の状態の変更処理に
ついて説明するための図である。
【図13】図13(A)(B)は、障害物の周りのベク
トル場の設定について説明するための図である。
【図14】粘性パラメータ等による難易度設定を行うゲ
ームの一例について説明するための図である。
【図15】間接操作により操作対象オブジェクトの配置
を求める処理の流れを説明するためのフローチャート図
である。
【図16】操作対象オブジェクトを所与の経路に沿って
移動させるゲームについて説明するための図である。
【図17】操作対象オブジェクトを所与のエリアに移動
させるゲームの一例であるボールの仕分けゲームについ
て説明するための図である。
【図18】操作対象オブジェクトを所与のエリアに移動
させるゲームの一例であるエアーホッケー風ゲームにつ
いて説明するための図である。
【図19】操作対象オブジェクトを回転させるゲームに
ついて説明するための図である。
【図20】前記操作対象オブジェクトを追い払うゲーム
について説明するための図である。
【図21】図21はプレイヤーが画面下方の矢印を操作
して、仮想流体に囲まれたボール(操作対象オブジェク
ト)をゴールまで運ぶゲームである。
【図22】ゲーム空間に人工的な流れを設定する例につ
いて説明した図である。
【図23】本実施形態を実現できるハードウェアの構成
の一例を示す図である。
【図24】図24(A)、(B)、(C)は、本実施形
態が適用される種々の形態のシステムの例を示す図であ
る。
【符号の説明】
100 処理部 110 間接制御演算処理 130 ゲーム処理部 140 画像生成部 150 音生成部 160 操作部 170 記憶部 172 メインメモリ 174 フレームバッファ 180 情報記憶媒体 190 表示部 192 音出力部 194 携帯型情報記憶装置 196 通信部 210、210−1、210−2 ベクトル場 220、220−1、220−2 格子点 250 操作対象オブジェクト 260 仮想流体 300 ベクトル場 350 速度ベクトル

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 画像生成を行うゲームシステムであっ
    て、 ゲーム空間における操作対象オブジェクトを囲む仮想流
    体の流れを制御するための操作入力を受け付ける手段
    と、 前記操作入力に基づき、ゲーム空間において仮想流体に
    囲まれた操作対象オブジェクトの移動又は回転を間接的
    に制御するために必要な処理を行う手段と、 ゲーム空間の所与の視点から見える画像を生成する手段
    とを含むことを特徴とするゲームシステム。
  2. 【請求項2】 画像生成を行うゲームシステムであっ
    て、 プレーヤからの操作入力に基づき、ゲーム空間における
    操作対象オブジェクトを囲む仮想流体の動作及び状態の
    少なくともひとつを制御する手段と、 前記仮想流体の動作及び状態の少なくともひとつを作用
    させて操作対象オブジェクトの配置演算を行う手段と、 ゲーム空間の所与の視点から見える画像を生成する手段
    と、 を含むことを特徴とするゲームシステム。
  3. 【請求項3】 請求項1乃至2のいずれかにおいて、 流体の動作及び状態の少なくともひとつをシミュレーシ
    ョンするためのベクトル場を生成して前記操作入力に基
    づきベクトル場における流体シミュレーション演算を行
    い、流体シミュレーション演算の結果得られたベクトル
    場の状態に基づき仮想流体の流れ、動作及び状態の少な
    くともひとつを制御することを特徴とするゲームシステ
    ム。
  4. 【請求項4】 画像生成を行うゲームシステムであっ
    て、 プレーヤからの操作入力に基づき、ゲーム空間における
    操作対象オブジェクトの周りに設定されたベクトル場の
    流体シミュレーション演算を行う手段と、 前記流体シミュレーション演算により求められたベクト
    ル場の状態を反映させて操作対象オブジェクトの配置演
    算を行う手段と、 ゲーム空間の所与の視点から見える画像を生成する手段
    と、 を含むことを特徴とするゲームシステム。
  5. 【請求項5】 請求項3乃至4のいずれかにおいて、 前記流体シミュレーション演算は、連続体の運動を支配
    する所与の物理方程式に関連付けて得られた差分方程式
    を用いて、ベクトル場に属する各点の時間nの速度情報
    に基づき時間n+1の速度情報を求めるための物理シミ
    ュレーション演算であって、プレーヤからの操作入力に
    基づき前記点に与える時間nの速度情報を制御して流体
    シミュレーション演算を行うことを特徴とするゲームシ
    ステム。
  6. 【請求項6】 請求項3乃至5のいずれかにおいて、 プレーヤの操作入力に基づき、ベクトル場又は仮想流体
    に作用させる速度ベクトルに関する情報を演算し、当該
    速度ベクトルの位置とベクトル場に属する点との位置関
    係に基づき速度ベクトルを作用させるベクトル場に属す
    る点を選択し、選択された点に対し前記速度ベクトルを
    作用させて前記流体シミュレーション演算を行うことを
    特徴とするゲームシステム。
  7. 【請求項7】 請求項3乃至6のいずれかにおいて、 前記流体シミュレーション演算により前記ベクトル場に
    属する点の速度ベクトルを求め、ベクトル場に属する点
    と操作対象オブジェクトの位置関係に応じてベクトル場
    に属する点の速度ベクトルを操作対象オブジェクトに作
    用させ、操作対象オブジェクトの移動及び回転の少なく
    ともひとつを行うことを特徴とするゲームシステム。
  8. 【請求項8】 請求項1乃至7のいずれかにおいて、 前記仮想流体又はベクトル場の流れの操作の目安となる
    シンボルマークを表示し、 プレーヤからの操作入力に基づき、前記シンボルマーク
    付近の流れを制御する処理を行うことを特徴とするゲー
    ムシステム。
  9. 【請求項9】 請求項1乃至8のいずれかにおいて、 前記仮想流体又はベクトル場の流れの操作の目安となる
    シンボルマークを表示し、 プレーヤからの操作入力に基づき、前記シンボルマーク
    の位置、回転、形状の少なくともひとつを制御する処理
    を行うことを特徴とするゲームシステム。
  10. 【請求項10】 請求項3乃至9のいずれかにおいて、 前記ベクトル場として2次元のベクトル場を用いること
    を特徴とするゲームシステム。
  11. 【請求項11】 請求項3乃至10のいずれかにおい
    て、 ゲームフィールド又は仮想流体領域よりも小さなベクト
    ル場を用いて流体シミュレーション演算を行うことを特
    徴とするゲームシステム。
  12. 【請求項12】 請求項3乃至11のいずれかにおい
    て、 仮想流体又はベクトル場に障害物が存在する場合、前記
    ベクトル場に占める障害物エリアの属する点に所定の速
    度情報を設定することを特徴とするゲームシステム。
  13. 【請求項13】 請求項1乃至12のいずれかにおい
    て、 操作対象オブジェクトの近くに障害物が存在する場合、
    操作対象オブジェクトの移動をアシストする処理を行う
    ことを特徴とするゲームシステム。
  14. 【請求項14】 請求項3乃至13のいずれかにおい
    て、 ゲームの難易度に応じて前記流体シミュレーション演算
    で用いる粘性に関連するパラメータをコントロールする
    処理を行うことを特徴とするゲームシステム
  15. 【請求項15】 コンピュータが使用可能なプログラム
    であって、 ゲーム空間における操作対象オブジェクトを囲む仮想流
    体の流れを制御するための操作入力を受け付ける手段
    と、 前記操作入力に基づき、ゲーム空間において仮想流体に
    囲まれた操作対象オブジェクトの移動又は回転を間接的
    に制御するために必要な処理を行う手段と、 ゲーム空間の所与の視点から見える画像を生成する手段
    とをコンピュータに実現させることを特徴とするプログ
    ラム。
  16. 【請求項16】 コンピュータが使用可能なプログラム
    であって、 プレーヤからの操作入力に基づき、ゲーム空間における
    操作対象オブジェクトを囲む仮想流体の動作及び状態の
    少なくともひとつを制御する手段と、 前記仮想流体の動作及び状態の少なくともひとつを作用
    させて操作対象オブジェクトの配置演算を行う手段と、 ゲーム空間の所与の視点から見える画像を生成する手段
    とをコンピュータに実現させることを特徴とするプログ
    ラム。
  17. 【請求項17】 請求項15乃至16のいずれかにおい
    て、 流体の動作及び状態の少なくともひとつをシミュレーシ
    ョンするためのベクトル場を生成して前記操作入力に基
    づきベクトル場における流体シミュレーション演算を行
    い、流体シミュレーション演算の結果得られたベクトル
    場の状態に基づき仮想流体の流れ、動作及び状態の少な
    くともひとつを制御することを特徴とするプログラム。
  18. 【請求項18】 コンピュータが使用可能なプログラム
    であって、 プレーヤからの操作入力に基づき、ゲーム空間における
    操作対象オブジェクトの周りに設定されたベクトル場の
    流体シミュレーション演算を行う手段と、 前記流体シミュレーション演算により求められたベクト
    ル場の状態を反映させて操作対象オブジェクトの配置演
    算を行う手段と、 ゲーム空間の所与の視点から見える画像を生成する手段
    と、 をコンピュータに実現させることを特徴とするプログラ
    ム。
  19. 【請求項19】 請求項17乃至18のいずれかにおい
    て、 前記流体シミュレーション演算は、連続体の運動を支配
    する所与の物理方程式に関連付けて得られた差分方程式
    を用いて、ベクトル場に属する各点の時間nの速度情報
    に基づき時間n+1の速度情報を求めるための物理シミ
    ュレーション演算であって、プレーヤからの操作入力に
    基づき前記点に与える時間nの速度情報を制御して流体
    シミュレーション演算を行うことを特徴とするプログラ
    ム。
  20. 【請求項20】 請求項17乃至19のいずれかにおい
    て、 プレーヤの操作入力に基づき、ベクトル場又は仮想流体
    に作用させる速度ベクトルに関する情報を演算し、当該
    速度ベクトルの位置とベクトル場に属する点との位置関
    係に基づき速度ベクトルを作用させるベクトル場に属す
    る点を選択し、選択された点に対し前記速度ベクトルを
    作用させて前記流体シミュレーション演算を行うことを
    特徴とするプログラム。
  21. 【請求項21】 請求項17乃至20のいずれかにおい
    て、 前記流体シミュレーション演算により前記ベクトル場に
    属する点の速度ベクトルを求め、ベクトル場に属する点
    と操作対象オブジェクトの位置関係に応じてベクトル場
    に属する点の速度ベクトルを操作対象オブジェクトに作
    用させ、操作対象オブジェクトの移動及び回転の少なく
    ともひとつを行うことを特徴とするプログラム。
  22. 【請求項22】 請求項15乃至21のいずれかにおい
    て、 前記仮想流体又はベクトル場の流れの操作の目安となる
    シンボルマークの画像を生成し、プレーヤからの操作入
    力に基づき前記シンボルマーク付近の流れを制御する処
    理を行うことを特徴とするプログラム。
  23. 【請求項23】 請求項15乃至22のいずれかにおい
    て、 前記仮想流体又はベクトル場の流れの操作の目安となる
    シンボルマークを表示し、プレーヤからの操作入力に基
    づき前記シンボルマークの位置、回転、形状の少なくと
    もひとつを制御する処理を行うことを特徴とするプログ
    ラム。
  24. 【請求項24】 請求項15乃至23のいずれかにおい
    て、 前記ベクトル場として2次元のベクトル場を用いること
    を特徴とするプログラム。
  25. 【請求項25】 請求項15乃至24のいずれかにおい
    て、 ゲームフィールド又は仮想流体領域よりも小さなベクト
    ル場を用いて流体シミュレーション演算を行うことを特
    徴とするプログラム。
  26. 【請求項26】 請求項15乃至25のいずれかにおい
    て、 仮想流体又はベクトル場に障害物が存在する場合、前記
    ベクトル場に占める障害物エリアの属する点に所定の速
    度情報を設定することを特徴とするプログラム。
  27. 【請求項27】 請求項15乃至26のいずれかにおい
    て、 操作対象オブジェクトの近くに障害物が存在する場合、
    操作対象オブジェクトの移動をアシストする処理を行う
    ことを特徴とするプログラム。
  28. 【請求項28】 請求項15乃至27のいずれかにおい
    て、 ゲームの難易度に応じて前記流体シミュレーション演算
    で用いる粘性に関連するパラメータをコントロールする
    処理を行うことを特徴とするプログラム。
  29. 【請求項29】 コンピュータにより使用可能な情報記
    憶媒体であって、請求項15乃至28のいずれかのプロ
    グラムを含むことを特徴とする情報記憶媒体。
JP2001020360A 2001-01-29 2001-01-29 ゲームシステム、プログラム及び情報記憶媒体 Withdrawn JP2002222434A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001020360A JP2002222434A (ja) 2001-01-29 2001-01-29 ゲームシステム、プログラム及び情報記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001020360A JP2002222434A (ja) 2001-01-29 2001-01-29 ゲームシステム、プログラム及び情報記憶媒体

Publications (1)

Publication Number Publication Date
JP2002222434A true JP2002222434A (ja) 2002-08-09

Family

ID=18886076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001020360A Withdrawn JP2002222434A (ja) 2001-01-29 2001-01-29 ゲームシステム、プログラム及び情報記憶媒体

Country Status (1)

Country Link
JP (1) JP2002222434A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006271782A (ja) * 2005-03-30 2006-10-12 Konami Digital Entertainment:Kk ゲームプログラム、ゲーム装置及びゲーム制御方法
JP2010233958A (ja) * 2009-03-31 2010-10-21 Namco Bandai Games Inc プログラム、情報記憶媒体及びゲーム装置
JP2011128768A (ja) * 2009-12-16 2011-06-30 Kuu-Kan Com Inc ボウリング場の映像表示システム及び映像表示方法
JP2021032694A (ja) * 2019-08-23 2021-03-01 正裕 岩永 システム、方法およびプログラム
CN112446941A (zh) * 2020-11-27 2021-03-05 网易(杭州)网络有限公司 图像处理方法、装置、电子设备及存储介质
CN114598824A (zh) * 2022-03-09 2022-06-07 北京字跳网络技术有限公司 特效视频的生成方法、装置、设备及存储介质
CN117036560A (zh) * 2023-10-10 2023-11-10 福州朱雀网络科技有限公司 一种适用于虚拟场景的风场模拟方法、介质和设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006271782A (ja) * 2005-03-30 2006-10-12 Konami Digital Entertainment:Kk ゲームプログラム、ゲーム装置及びゲーム制御方法
JP2010233958A (ja) * 2009-03-31 2010-10-21 Namco Bandai Games Inc プログラム、情報記憶媒体及びゲーム装置
JP2011128768A (ja) * 2009-12-16 2011-06-30 Kuu-Kan Com Inc ボウリング場の映像表示システム及び映像表示方法
JP2021032694A (ja) * 2019-08-23 2021-03-01 正裕 岩永 システム、方法およびプログラム
JP7299613B2 (ja) 2019-08-23 2023-06-28 正裕 岩永 システム、方法およびプログラム
CN112446941A (zh) * 2020-11-27 2021-03-05 网易(杭州)网络有限公司 图像处理方法、装置、电子设备及存储介质
CN114598824A (zh) * 2022-03-09 2022-06-07 北京字跳网络技术有限公司 特效视频的生成方法、装置、设备及存储介质
CN114598824B (zh) * 2022-03-09 2024-03-19 北京字跳网络技术有限公司 特效视频的生成方法、装置、设备及存储介质
CN117036560A (zh) * 2023-10-10 2023-11-10 福州朱雀网络科技有限公司 一种适用于虚拟场景的风场模拟方法、介质和设备
CN117036560B (zh) * 2023-10-10 2024-01-02 福州朱雀网络科技有限公司 一种适用于虚拟场景的风场模拟方法、介质和设备

Similar Documents

Publication Publication Date Title
US7497779B2 (en) Video game including time dilation effect and a storage medium storing software for the video game
US20040209684A1 (en) Method of controlling game system, program, information storage medium and game system
US7084876B1 (en) Method for presenting a virtual reality environment for an interaction
JP2006122241A (ja) ゲーム装置およびゲームプログラム
JP4037889B2 (ja) 画像生成装置、画像生成方法、ならびに、プログラム
JP6872401B2 (ja) ゲームシステム及びプログラム
JP4187748B2 (ja) 画像生成装置、画像生成方法、ならびに、プログラム
JP2002222434A (ja) ゲームシステム、プログラム及び情報記憶媒体
JP2002222435A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2007105499A (ja) ゲームシステム、プログラム及び情報記憶媒体
JP2001204957A (ja) ゲームシステム及び情報記憶媒体
JP6900208B2 (ja) ゲームシステム及びプログラム
JP2002222433A (ja) ゲームシステム、プログラム及び情報記憶媒体
Vince Handbook of computer animation
JP2003091738A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4743733B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2003091740A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2001229403A (ja) ゲームシステム及び情報記憶媒体
JP6863678B2 (ja) プログラム及びゲーム装置
JP3420987B2 (ja) ゲームシステム及び情報記憶媒体
JP6945699B2 (ja) プログラム及びゲーム装置
JP2006318196A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2003091741A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4803909B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP6989363B2 (ja) プログラム、サーバ装置、及びゲームシステム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080401