(57)【要約】【課題】  水領域における波の計算を行う場合に、その計算範囲を制御し、計算負荷を軽減させること。【解決手段】  先ず、データ配列が保持するデータを、キャラクタの移動方向とは逆の方向に、移動の分だけ移動させる処理を行う（Ｓ９０１）。そしてデータ配列内の「ます」に記憶されたデータが示す位置にあるセルを用いて波の挙動計算を行う（Ｓ９０３）。そして各セルの水領域平面から垂直方向の位置が求まれば、この位置をポリゴンの頂点とし、各セルの高低が表現する凹凸をポリゴンにより表現し、このポリゴン群を水領域平面上に配置し、波を描画する（Ｓ９０４）。【選択図】  図９
2005092753.tif 000002
【特許請求の範囲】
【請求項１】
キャラクタの移動に起因して生じる波の挙動を計算すべき水領域内を前記キャラクタが移動する場合に、２次元的な波の挙動を計算し、計算した結果に従った波のオブジェクトを生成する画像処理装置であって、
前記キャラクタの位置を含む近傍領域内のみで計算された、２次元的な波の挙動の計算結果データを格納する格納手段と、
前記キャラクタが前記水領域内で移動した場合に、前記保持手段が保持する計算結果データを、前記キャラクタの移動方向、前記キャラクタの移動量に応じて前記保持手段内で移動させるデータ移動制御手段と、
前記データ移動制御手段が移動させた前記保持手段内のデータを用いて再度計算された、２次元的な波の挙動の計算結果データを前記保持手段に上書きして更新する更新手段とを備え、
前記更新手段が更新した計算結果に基づいて、移動後の前記キャラクタの前記近傍領域内の２次元的な波の挙動を表す波のオブジェクトを生成することを特徴とする画像処理装置。
【請求項２】
キャラクタの移動に起因して生じる波の挙動を計算すべき水領域内を前記キャラクタが移動する場合に、２次元的な波の挙動を計算し、計算した結果に従った波のオブジェクトを生成する画像処理方法であって、
前記キャラクタの位置を含む近傍領域内のみで計算された、２次元的な波の挙動の計算結果データを保持手段に格納する格納工程と、
前記キャラクタが前記水領域内で移動した場合に、前記保持手段が保持する計算結果データを、前記キャラクタの移動方向、前記キャラクタの移動量に応じて前記保持手段内で移動させるデータ移動制御工程と、
前記データ移動制御工程で移動させた前記保持手段内のデータを用いて再度計算された、２次元的な波の挙動の計算結果データを前記保持手段に上書きして更新する更新工程とを備え、
前記更新工程で更新された計算結果に基づいて、移動後の前記キャラクタの前記近傍領域内の２次元的な波の挙動を表す波のオブジェクトを生成することを特徴とする画像処理方法。
【請求項３】
前記近傍領域は、前記近傍領域における前記キャラクタの位置が、前記キャラクタの移動方向に応じて異なるように制御されることを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記データ移動制御工程では、前記保持手段において前記キャラクタの移動方向とは逆の方向に対応する方向に、前記キャラクタの移動量に応じた量だけ、前記保持手段が保持する計算結果データを移動させることを特徴とする請求項２に記載の画像処理方法。
【請求項５】
コンピュータに請求項２乃至４の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム空間における計算領域の制御技術に関するものである。
【背景技術】
【０００２】
３次元仮想空間をゲーム空間として用いた場合に、このゲーム空間においてキャラクタを様々な位置に移動させ、所望の目的を達成するといったゲームには様々なジャンルがある。また、このゲーム空間には池や湖といった水のたまった領域や、草木が立ち並ぶ領域などが存在する場合が多く、キャラクタがそれらの領域を通過する際には、例えばキャラクタの移動に応じて水面が揺れたり、草木が曲がったりするような現象を模倣する処理が行われていた。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
例えばゲーム空間で水のたまっている領域として設定された領域（以下、水領域）にキャラクタが入り、且つその領域内を移動したりすると、この領域内に波を発生させたりする処理を行うのであるが、この波の発生は、例えばセルオートマトンを用いていた。より具体的には、水領域内に複数のセルを配置し、（水領域へのキャラクタの進入などに応じて）各セルに力が加えられるとその力に応じて各セル同士の力学計算を行い、その力学計算結果に従った振動を各セルに与えることにより行っていた。
【０００４】
しかし、波は水領域全体に及ぶものであるので、当然上記力学計算の対照となるセルは、水領域内の全てのセルとなる。しかし計算すべき対象のセルの数が多くなると、それだけ計算の負荷も大きくなり、リアルタイムにゲーム画面のレンダリングが要求されるゲームに適用することは困難なものとなる。
【０００５】
本発明はこのような点を考慮して成されたものであり、水領域における波の計算を行う場合に、その計算範囲を制御し、計算負荷を軽減させることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
【０００７】
即ち、キャラクタの移動に起因して生じる波の挙動を計算すべき水領域内を前記キャラクタが移動する場合に、２次元的な波の挙動を計算し、計算した結果に従った波のオブジェクトを生成する画像処理装置であって、
前記キャラクタの位置を含む近傍領域内のみで計算された、２次元的な波の挙動の計算結果データを格納する格納手段と、
前記キャラクタが前記水領域内で移動した場合に、前記保持手段が保持する計算結果データを、前記キャラクタの移動方向、前記キャラクタの移動量に応じて前記保持手段内で移動させるデータ移動制御手段と、
前記データ移動制御手段が移動させた前記保持手段内のデータを用いて再度計算された、２次元的な波の挙動の計算結果データを前記保持手段に上書きして更新する更新手段とを備え、
前記更新手段が更新した計算結果に基づいて、移動後の前記キャラクタの前記近傍領域内の２次元的な波の挙動を表す波のオブジェクトを生成することを特徴とする。
【０００８】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【０００９】
即ち、キャラクタの移動に起因して生じる波の挙動を計算すべき水領域内を前記キャラクタが移動する場合に、２次元的な波の挙動を計算し、計算した結果に従った波のオブジェクトを生成する画像処理方法であって、
前記キャラクタの位置を含む近傍領域内のみで計算された、２次元的な波の挙動の計算結果データを保持手段に格納する格納工程と、
前記キャラクタが前記水領域内で移動した場合に、前記保持手段が保持する計算結果データを、前記キャラクタの移動方向、前記キャラクタの移動量に応じて前記保持手段内で移動させるデータ移動制御工程と、
前記データ移動制御工程で移動させた前記保持手段内のデータを用いて再度計算された、２次元的な波の挙動の計算結果データを前記保持手段に上書きして更新する更新工程とを備え、
前記更新工程で更新された計算結果に基づいて、移動後の前記キャラクタの前記近傍領域内の２次元的な波の挙動を表す波のオブジェクトを生成することを特徴とする。
【発明の効果】
【００１０】
本発明の構成によって、水領域における波の計算を行う場合に、その計算範囲を制御し、計算負荷を軽減させることができる。
【発明を実施するための最良の形態】
【００１１】
以下添付図面を参照して、本発明の好適な実施形態について詳細に説明する。
【００１２】
［第１の実施形態］
本実施形態では、３次元仮想空間をゲームフィールドとして用いた場合に、このゲームフィールドにおいて、海や湖といった水がたまっているとして設定された領域（以下、水領域）に、プレーヤが操作するキャラクタなどが進入し、水領域内で移動する場合に、この水領域内でキャラクタの近傍領域のみで、キャラクタの移動に応じて発生する２次元的な波の挙動計算、挙動計算結果に従った波の画像の生成を行うといった画像処理を行う。以下、本実施形態に係る画像処理についてより詳細に説明する。
【００１３】
図１は本実施形態に係る画像処理を実行する画像処理装置として機能するコンピュータの基本構成を示すブロック図である。
【００１４】
１０１はＣＰＵで、ＲＡＭ１０２やＲＯＭ１０３に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、本実施形態に係る上記画像処理を実行する。
【００１５】
１０２はＲＡＭで、外部記憶装置１０７や記憶媒体ドライブ装置１０８からロードされたプログラムやデータを一時的に記憶するためのエリアを備えると共に、ＣＰＵ１０１が各種の処理を実行するために用いるワークエリアを備える。
【００１６】
１０３はＲＯＭで、ブートプログラムや本装置の設定に係るデータなどが格納されている。
【００１７】
１０４，１０５は夫々キーボード、マウスで、ＣＰＵ１０１に各種の指示を入力するために使用されるものである。なお、ＣＰＵ１０１に各種の指示を入力することができるデバイスとしてはこれ以外にも、例えばジョイスティックやゲームパッドなどの他のデバイスを用いることもできる。
【００１８】
１０６は表示部で、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１０１による処理結果を画像や文字などの情報により表示することができる。
【００１９】
１０７は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置として機能するものであり、ここにＯＳ（オペレーティングシステム）や、ＣＰＵ１０１に後述する本実施形態に係る画像処理を実行させるためのプログラムやデータ、ゲームフィールドにおけるキャラクタのデータ（キャラクタがポリゴンにより表現されるものである場合には、キャラクタを構成する各ポリゴンの各頂点座標位置、各ポリゴンの法線ベクトルを示すデータ、そしてこのキャラクタにテクスチャをマッピングする場合には、このテクスチャのデータ等）や、波を表現するためのデータ（詳細は後述する）等が保存されており、これらはＣＰＵ１０１による制御により、必要に応じてＲＡＭ１０２に読み出される。
【００２０】
１０８は記憶媒体ドライブ装置で、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されているプログラムやデータを読み出し、ＲＡＭ１０２や外部記憶装置１０７に出力するものである。なおＣＰＵ１０１に後述する本実施形態に係る画像処理を実行させるためのプログラムやデータ、上記キャラクタのデータ、上記波を表現するためのデータをこの記憶媒体に記録させておいても良く、その場合には、これらプログラムやデータは、ＣＰＵ１０１の制御による制御の下、記憶媒体ドライブ装置１０８によって記憶媒体から読み出され、ＲＡＭ１０２に出力される。また、記憶媒体がＣＤ−ＲやＤＶＤ−ＲＡＭなどの書き込み可能なものである場合には、記憶媒体ドライブ装置１０８はＣＰＵ１０１の制御により、この記憶媒体にプログラムやデータを書き込む処理を行う。
【００２１】
１０９は上記各部を繋ぐバスである。
【００２２】
次に、以上の構成を備えるコンピュータが行う、本実施形態に係る画像処理について説明する。本実施形態では説明を簡単にするために、水領域はゲームフィールド中に設けられた矩形の平面領域とする。また本実施形態では、波の挙動計算を行うために、周知の「セルオートマトン」の原理を用いて行うものとする。
【００２３】
図２は、ゲームフィールド上に水領域として設けられた平面（以下、水領域平面）２０１と、この水領域平面２０１上に設けられたセル２０２を含むセル群を示す図である。水領域の形状は特に限定するものではないが、ここでは説明を簡単にするために便宜上矩形とする。水領域平面上には、セルが所定の間隔で格子状に仮想的に配置されている。「仮想的に配置」とは、表示用に設けたものではなく、以下説明する波の挙動計算に用いるために便宜上設けるという意味である。また、各セルの水領域平面２０１上における位置は固定されている（水領域平面をｘ−ｙ平面とすると、各セルのｘ、ｙ座標値は固定されている）。
【００２４】
ここでセルを用いた一般的な波の挙動の計算について簡単に説明する。水領域内でキャラクタが移動すると、その移動に応じて各セルにある力が加えられるとするので、その力に応じて各セル同士の力学計算を行い、その力学計算結果に従った振動を各セルに与える。ここで「振動を与える」とは、水領域平面に垂直な方向（上下）の何れかに位置を与えることを示し、各セルの水領域平面に対する垂直方向の位置を計算する処理を画面が更新されるたびに行うことにより、結果として各セルはこの平面に対して「振動」していることになる。
【００２５】
そして、各セルについて水領域平面に対する垂直方向の位置を計算した場合には、各セルの位置をポリゴンの頂点位置と見なして、複数のポリゴンにより、各セルが表現する水領域上の凹凸を表現する。このようにセルを用いて波の高低を計算し、波をポリゴンで表現する技術は周知のものであるので、これ以上の説明は省略する。
【００２６】
図３は、上記水領域平面を所定の間隔で格子状に区切った場合に、区切られた各「ます」の位置が、水領域平面上におけるセルの位置に対応するものであるか否かを示すためのテーブルを示す図である。
【００２７】
同図において「９９」が記憶されている「ます」は、セルの位置以外の位置を示し、「０」が記憶されている「ます」は、セルの位置を示す。また、セルの位置にある「ます」に記憶されている「０」の意味するところは、セルの水領域平面に垂直な方向に対する位置である。
【００２８】
即ち、図３に示すテーブルは、波の立っていない水領域において、水領域平面内における各セルの位置を、「０」を記憶する「ます」のテーブル内の位置でもって示すためのテーブルである。同図のテーブルのデータは予め作成され、ＲＡＭ１０２にロードされているものとする。
【００２９】
ここで以下では、キャラクタが水領域平面上を移動する場合について説明するのであるが、本実施形態では、キャラクタの位置を含む近傍の領域内に含まれるセルのみを用いて、キャラクタの移動時に発生する波の挙動を計算するものとする。
【００３０】
図４はこの近傍領域を示す図で、同図において４０１はキャラクタ、４０２が近傍領域を示す。この近傍領域４０２のサイズは大きければ大きいほど、キャラクタ４０１の位置を中心としたより広い周囲について波を計算できるのであるが、その分この近傍領域４０２に含まれるセルの数は多くなり、処理コストも増大する。従って、この近傍領域４０２のサイズは、コンピュータの処理能力やメモリのサイズに応じて決めるのが好適である。
【００３１】
次に、近傍領域内のデータの管理について説明する。
【００３２】
キャラクタは上述の通り、水領域平面上を移動するのであるが、これは換言すれば、図３に示したテーブル上を移動することに等価である。従って近傍領域内のデータは、図３に示したテーブルにおいて近傍領域に相当する領域（キャラクタの位置を含む所定のサイズの領域）内の各「ます」が記憶するデータとなる。
【００３３】
ここで、キャラクタが水領域平面内でその位置を固定させて静止しており、水領域で波が発生していない（水領域平面に垂直な方向に対する各セルの位置が０）状態では、近傍領域内のデータは図５に示すようなデータ配列となる。図５は近傍領域内のデータを保持する２次元データ配列の一例を示す図である。この２次元配列はＲＡＭ１０２内に設けられるものであるので、当然この２次元配列が保持するデータもまた、ＲＡＭ１０２内に記憶されるものである。
【００３４】
このデータ配列は即ち、図３に示したテーブルにおいて近傍領域に相当する領域内の各「ます」のデータである。同図ではいくつかのセル（同図では９個）がこの近傍領域に含まれており、その何れのセルも水領域平面に垂直な方向に対する位置が０の状態を示すデータ配列となっている。
【００３５】
次に、キャラクタが水領域平面上を移動する場合について説明する。以下では移動方向の例として左方向とするが、以下の説明の本質が、キャラクタの移動方向が何れの場合であっても同じであるということは、以下の説明により明らかになるであろう。
【００３６】
キャラクタが水領域平面上を左方向に移動すると、キャラクタの近傍領域も当然それに応じて移動するので、当然上記データ配列が保持するデータもそれに応じて変化させる必要がある。より具体的には、データ配列が保持するデータは、水領域平面上でのキャラクタの移動方向とは逆の方向に、その移動の量に応じて移動させる必要がある。これは、水領域平面上でキャラクタが移動すれば近傍領域内でセルの位置は相対的にキャラクタの移動方向とは逆の方向に、その移動量に応じて移動するからである。
【００３７】
図６は、このキャラクタの移動に応じてデータ配列が保持するデータの移動の原理を説明する図である。同図（ａ）において６０１は移動前の近傍領域、６０２は移動後の近傍領域を示す。また６５０は水領域平面上における任意の「ます」を示す。
【００３８】
図６（ｂ）は、近傍領域６０１内の「ます」６５０の位置を示す図である。図６（ｃ）は、近傍領域６０２内の「ます」６５０の位置を示す図である。当然、夫々の近傍領域内における「ます」６５０の位置はずれており、その位置のずれは図６（ｄ）に示すように、２つの近傍領域を重ねてみると分かる。すなわち、同図の矢印６２１で示した方向に、矢印６２１の長さの分だけずれる。この矢印６２１の方向は上記矢印６１１の方向、即ち、キャラクタの移動方向であって、矢印６２１の長さは矢印６１１の長さに等しい。よって、これにより、近傍領域内に含まれる任意の「ます」の位置は、キャラクタの移動方向とは逆の方向に、その移動の分だけずれていくことが分かる。
【００３９】
データ配列は、近傍領域内に含まれる各「ます」の値を保持するので、上記原理によれば、キャラクタが移動すれば、当然保持するデータもその移動方向とは逆の方向に、その移動の分だけ移動させる必要がある。
【００４０】
図７は、キャラクタの移動に応じてデータ配列が保持するデータの移動を説明するための図である。水領域平面上においてある時点での近傍領域を７０１、このときのデータ配列を７１０で示すものであるとする。データ配列７１０において各「ます」内の数字は各「ます」に記憶されているデータに対するインデックスとする。ここで、キャラクタの移動、即ち近傍領域の移動に伴って波が生じないと仮定し、近傍領域が右上方向に移動し、近傍領域７０２の位置に移動したとすると、データ配列が保持している各データは上記原理により、キャラクタの移動方向とは逆の方向、即ち左下方向に移動し、７１１で示すものとなる。７１１において斜線部分は、近傍領域外から移動したデータが保持された「ます」を示す。
【００４１】
本実施形態では説明を簡単にするために、キャラクタの移動単位とセル間の間隔は同じものであるとしているので、キャラクタ１回移動するたびにデータ配列が保持するデータを１「ます」分（斜めの場合には斜め方向に１ます分）移動させているが、キャラクタの移動単位とセル間の間隔が同じものでない場合には、夫々の比に応じた分だけデータ移動を行えばよい。
【００４２】
例えばキャラクタの移動単位をｃ、セル間の距離をｔとした場合、データの移動量Δｄは、Δｄ＝ｃ／ｔとなる。
【００４３】
このように、キャラクタの移動に応じて、データ配列のデータを移動させることにより、データ配列が保持するデータと、図３に示すテーブルのデータとの整合性をとることができる。
【００４４】
次に、キャラクタの移動時に波が発生する場合の、データ配列が保持するデータについて説明する。この場合も先ず上記データ移動処理を行い、次に以下説明する処理を行う。
【００４５】
図８は、キャラクタが水領域平面上で左方向に移動することにより波が発生する場合の、データ配列が保持するデータの推移を示す図である。
【００４６】
８０１は、現時点でのデータ配列である。キャラクタが左方向に移動すると、データ配列８０１が保持するデータ群はその逆方向に移動した分だけ移動させる。８０２はこの移動後のデータ配列である。データ配列８０２が保持する全てのデータはデータ配列８０１が保持するデータを右方向に移動させたものであるが、移動の結果、データ配列８０２において最も左側の縦１列分の「ます」（同図では「−９９」を記憶する「ます」）に移動するデータは、データ配列８０１内には存在しない。そこで、これらの「ます」には、図３に示したテーブルにおいてこの「ます」に相当する部分のデータを取りだして書き込めばよい。即ち、データ配列８０２において最も左側の縦１列分の「ます」には、図３に示したテーブルにおいて近傍領域に含まれる各「ます」のうち、最も左側の縦１列分の「ます」が記憶する値を埋める。
【００４７】
８０３はその結果得られるデータ配列である（データ配列８０２において最も左側の縦１列分の「ます」に相当する図３に示したテーブル上のデータが全て「９９」のデータを保持していたものとしている）。
【００４８】
次に、このデータ配列８０３中で、各セルの水領域平面に垂直な方向に対する位置（同図では全て「０」）や、キャラクタの移動速度などを鑑みて周知の計算式に従って、上述の「キャラクタの移動による波の挙動」を計算する。そして、セルの位置を示す「ます」（データ配列７０３において「９９」以外の値を保持している「ます」）に、計算後の値（このセルの水領域平面に垂直な方向に対する位置）を書き込み、データ配列が保持するデータを更新する。
【００４９】
８０４は、波の計算後、計算結果を書き込んだデータ配列である。各「ます」において、「９９」以外の値を保持している「ます」は、近傍領域内におけるセルの位置を表していると共に、そのセルの水領域平面に垂直な方向に対する位置を示している。仮に上記データの移動処理を行わなかった場合、近傍領域が移動しても波はそれについて回ることになり、現象的に不可思議なものとなってしまう。よって以上のデータ移動処理を行うことにより、このような不可思議な現象を解消し、キャラクタの移動の後に残る波をも再現できる。
【００５０】
よって、このデータ配列を参照すれば、各セルの位置をポリゴンの頂点位置と見なして、複数のポリゴンにより、各セルが表現する水領域上の凹凸を表現することができ、なみのオブジェクトをポリゴンにより形成することができる。そして以上の処理は、ゲーム中毎回（毎フレーム）行われるものとする。
【００５１】
このように、以上の処理では、キャラクタの近傍領域内のセルのみを用いて波の挙動計算を行うので、常にその挙動を管理しているのは、近傍領域内のセルのみとなる。これにより、従来のように、水領域内全てのセルを管理し、全てのセルに対する挙動計算を行うのに比べても処理コストや処理に要するメモリ使用量を軽減させる効果を奏する。
【００５２】
また、データ配列内が保持するデータ位置もまた、キャラクタの移動に応じてデータ配列内で移動させる処理を行うので、このデータ配列内のデータを用いて波を生成し、水領域平面上に表示しても、位置的に整合の取れたものとなる。
【００５３】
なお、波の挙動計算について、波が近傍領域の端で消えるように減衰率を与えておけば、波が近傍領域の端でいきなり消えてしまうといった不自然な現象は防ぐことができる。更に、波のオブジェクトを構成する各ポリゴンに対するα値を、波が近傍領域の端に近づく程下げ、波が消えるように見せれば、より好適である。
【００５４】
図９は、以上説明した、データ配列中のデータの更新処理にフローチャートである。同図に示したフローチャートに従ったプログラムはＲＡＭ１０２にロードされ、ＣＰＵ１０１がこれを実行することで、本実施形態のコンピュータは同図のフローチャートに従った処理を行う。なお、本処理はゲームのメインの処理から、サブルーチンとして、呼び出されるものであり、各フレームの画像を更新する毎に呼び出されるものである。なお、各ステップにおける処理は以上の説明の通りであるので、ここでは簡単に説明する。
【００５５】
先ず、データ配列が保持するデータを、キャラクタの移動方向とは逆の方向に、移動の分だけ移動させる処理を行う（ステップＳ９０１）。次に、データ配列のうちでデータが移動してこなかった「ます」の部分（図８で例示した斜線部分）に、図３に示すテーブルにおいて、この「ます」の位置に相当する「ます」の値（データ）を埋める処理を行う（ステップＳ９０２）。
【００５６】
そして、データ配列のうちで、「９９」以外の値が記憶されている「ます」が即ちセルの位置であるので、この位置にあるセルを用いて上記波の挙動計算を行う（ステップＳ９０３）。なお、この計算において波の高さの初期値は、「９９」以外の値が記憶されている「ます」に記憶されている値である。
【００５７】
そして各セルの水領域平面から垂直方向の位置が上記計算により求まれば、この位置をポリゴンの頂点とし、各セルの高低が表現する凹凸をポリゴンにより表現し、このポリゴン群を水領域平面上に配置し、波を描画する（ステップＳ９０４）。
【００５８】
なお、本実施形態では水領域の形状は矩形状のものであるとしたが、これに限定されるものではなく、任意の形状のものであっても良い。
【００５９】
また、本実施形態では水領域平面上に各セルを格子状に配置したが、各セルの配置はこれに限定されるものではない。
【００６０】
また本実施形態では波の計算のために水領域平面上にセルを配置し、各セル間の力学計算を行うことにより、波の挙動の計算を行っているが、波の計算手段はこれに限定されるものではないし、何れの手段を用いて波の挙動計算を行ったとしても、波の高低を示すためのデータは上記データ配列中に格納されることになる。従って波の挙動計算を行うための手段が他の手段であっても、本実施形態に係る処理を適用することができる。
【００６１】
また、本実施形態で用いた、データ配列のサイズやデータ配列中の各「ます」が保持する値は説明上の一例であって、これに限定されるものではない。
【００６２】
［第２の実施形態］
上記近傍領域はキャラクタの位置を含むものであるとしており、第１の実施形態では実質キャラクタは近傍領域の中心に位置しており、更に近傍領域中のキャラクタの位置は固定されたものであるが、例えばカメラとキャラクタの位置関係によっては、近傍領域中のキャラクタの位置は中心でなくても良いし、またその位置は状況に応じて動的に変化させても良い。
【００６３】
例えば、大きな波が生じる場合、且つカメラの視界がキャラクタの進行方向を向いている場合は、キャラクタの進行方向に広がる波を表現した方がよいし、逆にキャラクタの進行方向とは逆の方向に広がる波はカメラに写らないために、表現しなくても良い。この場合、近傍領域中のキャラクタの位置は、図１０に示す如く、近傍領域１０１０の中心１０２０からキャラクタ１０１０の進行方向とは逆の方向に所定量ずれた位置であっても良い（即ち、そのように近傍領域を設定する）。同図において１００１がゲーム空間におけるプレーヤの視点としてのカメラで、１０１０がキャラクタ、１０００が近傍領域、１０２０が近傍領域の中心位置を示す。
【００６４】
またカメラの視界の水領域平面内での方向によっては、図１１に示す如く、カメラ１１０１の視線方向に所定量だけ近傍領域１１０３を移動させても良く（同図において１１０２が移動後の近傍領域）、その場合、結果的に近傍領域中のキャラクタ１１０２の位置が動的に変化することになる。
【００６５】
また、カメラの水領域平面からの高さの変化に応じて、近傍領域のサイズを動的に変更しても良い。カメラの水領域平面からの高さが高くなればその分だけ広く水領域が見えてしまうので、その場合には近傍領域のサイズを大きくし、より広く広がる波を表現しても良い。
【００６６】
また、以上の処理（例えば図９に示したフローチャートの一部、もしくは全部に従った処理）をプログラムとしてＣＤ−Ｒ、ＲＯＭやＤＶＤ−ＲＯＭ、ＭＯ、ゲームカートリッジ等の記憶媒体に記憶させ、この記憶媒体に記憶されているプログラムをコンピュータに読み込ませ（インストール、もしくはコピーさせる）、このコンピュータのＣＰＵ又はＭＰＵがこれを実行することでこのコンピュータに以上の処理を実現させることができる。従って、このプログラムを記憶した記憶媒体もまた本発明を実施可能なものにするので、この記憶媒体も本発明の範疇にあることは明白である。
【００６７】
また、サーバ装置に以上の処理（例えば図９に示したフローチャートの一部、もしくは全部に従った処理）のプログラムを保持させておき、周知の技術によりネットワークを介してコンピュータにこれらを供給することができる。そしてこれらプログラムやデータを供給されたコンピュータのＣＰＵ又はＭＰＵはこれを用いて以上の処理を実現させることができるので、このサーバ装置もまた上記記憶媒体として解釈することができるので、このサーバ装置も本発明の範疇にあることは明白である。
【００６８】
またこの記憶媒体は外部からコンピュータにプログラムやデータを提供するもの以外であっても良く、コンピュータに内蔵されたメモリチップなどであっても良いし、この記憶媒体成る定義はより広く解釈されるべきである。
【図面の簡単な説明】
【００６９】
【図１】本発明の第１の実施形態に係る画像処理を実行する画像処理装置として機能するコンピュータの基本構成を示すブロック図である。
【図２】ゲームフィールド上に水領域として設けられた平面（以下、水領域平面）２０１と、この水領域平面２０１上に設けられたセル２０２を含むセル群を示す図である。
【図３】水領域平面を所定の間隔で格子状に区切った場合に、区切られた各「ます」の位置が、水領域平面上におけるセルの位置に対応するものであるか否かを示すためのテーブルを示す図である。
【図４】近傍領域を示す図である。
【図５】近傍領域内のデータを保持する２次元データ配列の一例を示す図である。
【図６】キャラクタの移動に応じてデータ配列が保持するデータの移動の原理を説明する図である。
【図７】キャラクタの移動に応じてデータ配列が保持するデータの移動を説明するための図である。
【図８】キャラクタが水領域平面上で左方向に移動することにより波が発生する場合の、データ配列が保持するデータの推移を示す図である。
【図９】データ配列中のデータの更新処理にフローチャートである。
【図１０】本発明の第２の実施形態における、近傍領域とキャラクタとの位置関係を示す図である。
【図１１】本発明の第２の実施形態における、近傍領域とキャラクタとの位置関係を示す図である。
【図１】
2005092753.tif 000003
【図２】
2005092753.tif 000004
【図３】
2005092753.tif 000005
【図４】
2005092753.tif 000006
【図５】
2005092753.tif 000007
【図６】
2005092753.tif 000008
【図７】
2005092753.tif 000009
【図８】
2005092753.tif 000010
【図９】
2005092753.tif 000011
【図１０】
2005092753.tif 000012
【図１１】
2005092753.tif 000013