(57)【特許請求の範囲】
【請求項１】
制御手段と記憶手段とを備え、仮想３次元空間に、視点と、所定の形状を有する移動路と、該移動路上を移動する複数の移動体とが配置されており、前記視点の視野範囲である視錐台内に存在する前記移動体を２次元平面に投影して描画する画像処理装置で実行される画像生成プログラムであって、
前記制御手段に、
前記視錐台内に存在する前記移動路の面積を算出させる第１のステップと、
前記面積に基づいて、前記移動体を発生させるか否かを決定させる第２のステップと、
前記移動体を発生させると決定された場合、前記発生させる移動体の情報を前記記憶手段に記憶させる第３のステップと、
前記記憶手段に記憶された前記複数の移動体の情報に基づき、前記視錐台内に存在する前記移動体の位置を更新させる第４のステップと、
前記複数の移動体の画像を生成させる第５のステップと、を実行させ、
前記第２のステップでは、
前記制御手段に、前記移動体の数を制限するために、前記視錐台内に存在する前記移動路の所定の区分領域毎の面積と、当該区分領域毎に設定された移動体密度とに基づいて前記移動体を発生させるか否かを決定させる、
ことを特徴とする画像生成プログラム。
【請求項２】
制御手段と記憶手段とを備え、仮想３次元空間に、視点と、所定の形状を有する移動路と、該移動路上を移動する複数の移動体とが配置されており、前記視点の視野範囲である視錐台内に存在する前記移動体を２次元平面に投影して描画する画像処理装置で実行される画像生成プログラムであって、
前記制御手段に、
前記視錐台内に存在する前記移動路の面積を算出させる第１のステップと、
前記面積に基づいて、前記移動体を発生させるか否かを決定させる第２のステップと、
前記移動体を発生させると決定された場合、前記発生させる移動体の情報を前記記憶手段に記憶させる第３のステップと、
前記記憶手段に記憶された前記複数の移動体の情報に基づき、前記視錐台内に存在する前記移動体の位置を更新させる第４のステップと、
前記複数の移動体の画像を生成させる第５のステップと、を実行させ、
前記第３のステップでは、
前記制御手段に、前記移動路の区分領域毎に設定された移動体速度に基づいて、前記発生させる移動体の移動速度を設定させる、
ことを特徴とする画像生成プログラム。
【請求項３】
前記第２のステップでは、
前記発生させる移動体を、前記仮想３次元空間内に設定された前記視錐台外の所定の場所に発生させるように当該移動体の情報を前記記憶手段に記憶させる
ことを特徴とする請求項１または２に記載の画像生成プログラム。
【請求項４】
前記移動体が前記仮想３次元空間に設定された前記視錐台を含む所定領域から外れると消滅させる第６のステップ
を備えることを特徴とする請求項１または２に記載の画像生成プログラム。
【請求項５】
前記移動体が消滅する前記所定領域は、前記視錐台に対して、新しい移動体が発生する領域よりも外側に設定された
ことを特徴とする請求項４に記載の画像生成プログラム。
【請求項６】
前記移動体が前記視錐台を外れ、所定時間経過すると消滅させる第６のステップ
を備えることを特徴とする請求項１または２に記載の画像生成プログラム。
【請求項７】
前記視錐台内に前記移動路が複数存在する場合に、前記移動路の前記区分領域の移動体密度に基づいて算出される前記移動体の上限数に対する充足率が低い方の前記移動路に前記移動体を発生させる
ことを特徴とする請求項１に記載の画像生成プログラム。
【請求項８】
請求項１乃至請求項７のいずれか１項に記載の画像生成プログラムが記憶されている、
ことを特徴とする記憶媒体。
【請求項９】
記憶手段を備え、仮想３次元空間に、視点と、所定の形状を有する移動路と、該移動路上を移動する複数の移動体とが配置されており、前記視点の視野範囲である視錐台内に存在する前記移動体を２次元平面に投影して描画する画像処理装置の画像処理方法であって、
前記画像処理装置に、
前記視錐台内に存在する前記移動路の面積を算出する第１のステップと、
前記面積に基づいて、前記移動体を発生させるか否かを決定する第２のステップと、
前記移動体を発生させると決定された場合、前記発生させる移動体の情報を前記記憶手段に記憶させる第３のステップと、
前記記憶手段に記憶された前記複数の移動体の情報に基づき、前記視錐台内に存在する前記移動体の位置を更新する第４のステップと、
前記複数の移動体の画像を生成させる第５のステップと、を実行させ、
前記第２のステップでは、
前記画像処理装置に、前記移動体の数を制限するために、前記視錐台内に存在する前記移動路の所定の区分領域毎の面積と、当該区分領域毎に設定された移動体密度とに基づいて前記移動体を発生させるか否かを決定させる、
ことを特徴とする画像処理方法。
【請求項１０】
記憶手段を備え、仮想３次元空間に、視点と、所定の形状を有する移動路と、該移動路上を移動する複数の移動体とが配置されており、前記視点の視野範囲である視錐台内に存在する前記移動体を２次元平面に投影して描画する画像処理装置の画像処理方法であって、
前記画像処理装置に、
前記視錐台内に存在する前記移動路の面積を算出させる第１のステップと、
前記面積に基づいて、前記移動体を発生させるか否かを決定させる第２のステップと、
前記移動体を発生させると決定された場合、前記発生させる移動体の情報を前記記憶手段に記憶させる第３のステップと、
前記記憶手段に記憶された前記複数の移動体の情報に基づき、前記視錐台内に存在する前記移動体の位置を更新させる第４のステップと、
前記複数の移動体の画像を生成させる第５のステップと、を実行させ、
前記第３のステップでは、
前記画像処理装置に、前記移動路の区分領域毎に設定された移動体速度に基づいて、前記発生させる移動体の移動速度を設定させる、
ことを特徴とする画像処理方法。
【請求項１１】
制御手段と記憶手段とを備え、仮想３次元空間に、視点と、所定の形状を有する移動路と、該移動路上を移動する複数の移動体とが配置されており、前記視点の視野範囲である視錐台内に存在する前記移動体を２次元平面に投影して描画する画像処理装置であって、
前記視錐台内に存在する前記移動路の面積を算出する面積算出手段と、
前記面積に基づいて、前記移動体を発生させるか否かを決定する決定手段と、
前記移動体を発生させると決定された場合、前記発生させる移動体の情報を前記記憶手段に記憶させる記憶制御手段と、
前記記憶手段に記憶された前記複数の移動体の情報に基づき、前記視錐台内に存在する前記移動体の位置を更新する更新手段と、
前記複数の移動体の画像を生成させる画像生成手段と、を備え、
前記決定手段では、
前記移動体の数を制限するために、前記視錐台内に存在する前記移動路の所定の区分領域毎の面積と、当該区分領域毎に設定された移動体密度とに基づいて前記移動体を発生させるか否かを決定する、
ことを特徴とする画像処理装置。
【請求項１２】
制御手段と記憶手段とを備え、仮想３次元空間に、視点と、所定の形状を有する移動路と、該移動路上を移動する複数の移動体とが配置されており、前記視点の視野範囲である視錐台内に存在する前記移動体を２次元平面に投影して描画する画像処理装置であって、
前記視錐台内に存在する前記移動路の面積を算出する面積算出手段と、
前記面積に基づいて、前記移動体を発生させるか否かを決定する決定手段と、
前記移動体を発生させると決定された場合、前記発生させる移動体の情報を前記記憶手段に記憶させる記憶制御手段と、
前記記憶手段に記憶された前記複数の移動体の情報に基づき、前記視錐台内に存在する前記移動体の位置を更新する更新手段と、
前記複数の移動体の画像を生成させる画像生成手段と、を備え、
前記記憶制御手段では、
前記移動路の区分領域毎に設定された移動体速度に基づいて、前記発生させる移動体の移動速度を設定する、
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成プログラム、記憶媒体、画像処理方法及び画像処理装置に関し、例えば３次元アクションアドベンチャータイプのゲームを提供するゲーム装置に適用して好適なものである。
【背景技術】
【０００２】
従来、３次元アクションアドベンチャータイプのゲームとして、繁華街を舞台とし、ユーザキャラクタが街内を移動して、そこにいる人々と会話や戦闘を行いながらストーリーを進めてゆくものがある。この種のゲームでは、ゲーム進行に関与しない通行人をゲーム画面上に多数表示することにより、繁華街の演出を図っている。
【０００３】
ところが、かかるゲームにおいて、通行人の一人一人についてＡＩ（Artificial Intelligence）等により綿密な管理を行うものとすると、ゲーム装置のＣＰＵ（Central Processing Unit）に大変な負荷がかかってしまい、実用上十分な描画処理を行い得ない問題があった。
【０００４】
かかる問題点を解決するための手法として、ゲーム画面に登場させる通行人の人数を制限することが考えられる（例えば特許文献１参照）。ただし、この場合にも単に１つのゲーム画面上に出現させる通行人の数を制限するだけでは、グラフィカル面からみたゲームの質を低下させることとなる。
【０００５】
従って、ゲーム画面に出現する通行人の数を制限するに際しても、ゲーム画面の全面に渡って均一的に通行人の人数を制限するのではなく、ゲーム画面内のある部分については通行人の人数を制限せず、他のある部分については通行人の人数を制限する、より細かい管理を行い得るようにすることができれば、ゲームの質の低下を防止しながら、より細かい画面制御を行い得るものと考えられる。
【特許文献１】特開平１０−１６５６４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来開示されている方法では、上述のようなゲーム画面内に出現する通行人の数の制限をゲーム画面の部分毎に行うことはできない。
【０００７】
また従来のゲームでは、ゲーム画面から外れたオブジェクト（人や物）についてはその位置や行動を管理する必要がないにも係わらず、そのゲーム画面から外れた後もそのオブジェクトの管理のためにメモリリソースが確保され続けているという問題があり、さらにいくらかのコードを実行している無駄な（ゲーム画面には何も表示されないのにメモリリソースが使われる）ケースも存在するという問題もあった。
【０００８】
本発明は以上の点を考慮してなされたもので、リソースの無駄を防止しながら、より細かい画像制御を行い得る画像生成プログラム、記憶媒体、画像処理方法及び画像処理装置を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明においては、制御手段と記憶手段と画像表示手段とを備え、仮想３次元空間に、視点と、所定の形状を有する移動路と、該移動路上を移動する複数の移動体とが配置されており、前記視点の視野範囲である視錐台内に存在する前記移動体を２次元平面に投影して描画する画像処理装置で実行される画像生成プログラムであって、前記制御手段に、視野領域に基づく領域内に存在する前記移動路の面積を算出する第１のステップと、前記面積に基づいて、前記移動体を発生させるか否かを決定する第２のステップと、前記移動体を発生させると決定された場合、前記発生させる移動体の情報を前記記憶手段に記憶させる第３のステップと、前記記憶手段に記憶された前記複数の移動体の情報に基づき、前記視錐台内に存在する前記移動体の位置を更新する第４のステップと、前記複数の移動体の画像を生成させる第５のステップとを実行させるようにした。
【００１０】
また本発明においては、記憶媒体において、かかる画像生成プログラムを格納するようにした。
【００１１】
さらに本発明においては、仮想３次元空間に、視点と、所定の形状を有する移動路と、該移動路上を移動する複数の移動体とが配置されており、前記視点の視野範囲である視錐台内に存在する前記移動体を２次元平面に投影して描画する画像処理方法であって、視野領域に基づく領域内に存在する前記移動路の面積を算出する第１のステップと、前記面積に基づいて、前記移動体を発生させるか否かを決定する第２のステップと、前記移動体を発生させると決定された場合、前記発生させる移動体の情報を前記記憶手段に記憶させる第３のステップと、前記記憶手段に記憶された前記複数の移動体の情報に基づき、前記視錐台内に存在する前記移動体の位置を更新する第４のステップと、前記複数の移動体の画像を生成させる第５のステップとを備えることを特徴とする。
【００１２】
さらに本発明においては、制御手段と記憶手段と画像表示手段とを備え、仮想３次元空間に、視点と、所定の形状を有する移動路と、該移動路上を移動する複数の移動体とが配置されており、前記視点の視野範囲である視錐台内に存在する前記移動体を２次元平面に投影して描画する画像処理装置であって、視野領域に基づく領域内に存在する前記移動路の面積を算出する面積算出手段と、前記面積に基づいて、前記移動体を発生させるか否かを決定する決定手段と、前記移動体を発生させると決定された場合、前記発生させる移動体の情報を前記記憶手段に記憶させる記憶制御手段と、前記記憶手段に記憶された前記複数の移動体の情報に基づき、前記視錐台内に存在する前記移動体の位置を更新する更新手段と、前記複数の移動体の画像を生成させる画像生成手段とを備えるようにした。
【発明の効果】
【００１３】
本発明によれば、ゲーム画面内に出現する通行人の数の制限をゲーム画面の部分毎に行うことができ、またゲーム画面から外れた移動体の管理のためにメモリリソースが無駄に使用されるのを防止できる。かくしてリソースの無駄を防止しながら、より細かい画像制御を行い得る画像生成プログラム、記憶媒体、画像処理方法及び画像処理装置を実現できる。
【発明を実施するための最良の形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）本実施の形態によるゲーム装置の構成
図１は、本実施の形態によるゲーム装置１の画像処理回路２のハードウエアブロックの一例を示す。この画像処理回路２は、業務用又は家庭用向けのゲーム装置や、パーソナルコンピュータ、携帯型コンピュータ、携帯電話などに適応可能である。
【００１６】
このゲーム装置１は、プログラムにより動作し、ゲーム装置１全体を制御するＣＰＵ（Central Processing Unit）１０と、ＣＰＵ１０が使用するプログラムやデータを格納するシステムメモリ１１と、ゲームプログラムや出力する画像や音声などのデータが記憶されたプログラムデータ用ＲＯＭ（Read Only Memory）などの記憶媒体１２と、ゲーム装置１を起動させた際に各ブロックを初期化するためのプログラムを格納するブートロム１３と、各ブロック間でプログラムやデータのやり取りを行うバスを制御するバスアービタ１４と、ディスプレイに表示する（ポリゴン）オブジェクト（表示体）の３次元仮想空間又は２次元座標内での位置座標や向きを計算するジオメトリプロセッサ１５と、ジオメトリプロセッサ１５によって算出されたオブジェクトの向きや位置座標等に基づいて、ディスプレイに出力する画像を生成（描画）するレンダリングプロセッサ１６と、それに接続され、画像を生成するためのデータやコマンドなど格納するグラフィックメモリ１７と、スピーカに出力する音声を生成するオーディオプロセッサ１８と、それに接続され、音声を生成するためのデータやコマンドなど格納するオーディオメモリ１９とで構成される。符号２０は、通信Ｉ／Ｆであり、符号２１はペリフェラルインターフェースである。
【００１７】
なお、システムメモリ１１、グラフィックメモリ１７、サウンドメモリ１９は、１つのメモリをバスアービタ１４に接続して各機能で共通に使用するようにしてもよい。また各機能ブロックも機能として画像処理回路２内に存在すればよく、機能ブロック同士が統合されていても、また、機能ブロック内部の各構成要素が他のブロックとして分離されていても良い。
【００１８】
例えばプログラムデータ用ＲＯＭでなる記憶媒体１２は、マスクロムやフラッシュロムなどの電気的にデータを読み出せるＩＣメモリや、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの光学的にデータを読み出せる装置と光ディスクまたは磁気ディスク等であっても良い。ペリフェラルインターフェース２１には、外部からのデータ入出力を行うインターフェースが組み込まれており、ここに周辺装置としてのペリフェラルが接続される。
【００１９】
ペリフェラルには、マウス（ポインティングデバイス）やキーボード、ゲーム用コントローラ等のキー操作のためのスイッチ、及びタッチペンの他、プログラムの途中経過や生成したデータを保存するバックアップメモリ、表示装置、撮影装置等、画像処理装置本体あるいは他のペリフェラルに接続可能なものが含まれる。
【００２０】
（２）リソース管理機能
次に、かかるゲーム装置１により実行されるゲームに採用されたリソース管理機能について説明する。このリソース管理機能は、ＣＰＵ１０が記憶媒体１２に格納されたゲームプログラムを実行することにより再生されるゲーム中において、当該ゲームプログラムに基づきＣＰＵ１０の制御のもとに発揮される機能である。
【００２１】
本ゲームの場合、仮想３次元空間（以下、これをゲーム空間と呼ぶ）内の任意の視点位置からゲーム空間を見た場合に、例えば四角錐台状の視野範囲（以下、これを視錐台と呼ぶ）内に存在する建物や通行人などのゲーム空間内の光景を２次元平面に投影して描画することにより得られた画像をゲーム画面としてディスプレイモニタに表示される。そして本ゲームでは、このゲーム画面上に表示されるストーリー進行とは関係のない通行人の数を制限することによって、通行人の管理に要するＣＰＵの負荷及びリソースの無駄を低減させ得るようになされている。
【００２２】
実際上、本ゲームにおいては、図２に示すように、ゲーム空間内に仮想的な所定形状のパス（移動路）３０が予め固定的に幾つか設けられており、ゲーム空間内に存在するゲームのストーリー進行とは関係のない通行人３１がこれらパス３０上のみを移動するようになされている。各パス３０は、図３に示すように、それぞれその長手方向に沿って複数の区間（以下、これをパスセグメントと呼ぶ）Ｐｉ（ｉ＝１，２，……）に区分されており、これらパスセグメントＰｉ毎にそれぞれそのパスセグメントＰｉにおける人口密度Ｄｉ（ｉ＝１，２，……）が予め設定されている。そしてＣＰＵ１０は、ゲーム実行時には、これらパス３０内の対応するパスセグメントＰｉについて設定された人口密度Ｄｉを記憶媒体１２に格納されているプログラムデータ内から読み出し、この人口密度Ｄｉに基づいて、そのパス３０における上述の視錐台Ｖ１内を移動する通行人３１の数を制限する。
【００２３】
また各パス３０の各パスセグメントＰｉには、それぞれ移動速度Ｖｉ（ｉ＝１，２，……）が予め設定されている。そしてＣＰＵ１０は、ゲーム実行時には、これらパス３０内の対応するパスセグメントＰｉについて設定された移動速度Ｖｉを記憶媒体１２に格納されているプログラムデータ内から読み出し、そのパスセグメントＰｉ上を移動する通行人３１がその移動速度Ｖｉで移動するように通行人３１の移動速度を制御する。
【００２４】
さらに通行人３１の管理を視錐台Ｖ１外においても行うものとすると、ＣＰＵ１０に過大な負荷をかけ、さらに多くのメモリリソースを使用することとなる。そこで本ゲームの場合、通行人３１を視錐台Ｖ１内に入る直前で発生させると共に、かかる管理を視錐台Ｖ１内を移動する通行人３１についてのみ行い、その通行人３１が視錐台Ｖ１から外れた段階でその通行人３１をゲーム空間上から削除する処理を行うことによって、ＣＰＵ１０の負荷をより一層と低減すると共にメモリリソースの無駄を防止し得るようになされている。
【００２５】
図４は、このような本実施の形態によるリソース管理機能のうち、通行人３１の発生アルゴリズムに関するＣＰＵ１０の処理手順を示すフローチャートである。ＣＰＵ１０は、この処理手順を一定期間毎に実行することによって、必要なタイミングで通行人３１を一人ずつ発生させる。
【００２６】
すなわちＣＰＵ１０は、一定時間毎にこの処理手順をステップＳＰ０において開始し、続くステップＳＰ１において、ゲーム画面を表示するための視錐台Ｖ１内にその一部又は全部が入るパス３０が存在するか否かを判断する。
【００２７】
ＣＰＵ１０は、このステップＳＰ１において否定結果を得ると、ステップＳＰ１０に進んでこの処理手順を終了し、これに対してステップＳＰ１において肯定結果を得ると、そのうちの１つのパス３０を選択した後にステップＳＰ２に進んで、ゲーム画面内に発生可能な最大の通行人３１の数である発生可能人数Ｓをリセット（発生可能人数として「０」を設定）する。
【００２８】
続いてＣＰＵ１０は、ステップＳＰ３に進んで、そのパス３０における視錐台Ｖ１内に入っているすべてのパスセグメントＰｉに対する後述の演算処理（ステップＳＰ４）が終了したか否かを判断する。
【００２９】
ＣＰＵ１０は、このステップＳＰ３において否定結果を得ると、ステップＳＰ４に進んで、そのパス３０における視錐台Ｖ１内に入っている１つのパスセグメントＰｉを選択し、そのパスセグメントＰｉにおける視錐台Ｖ１内に入っている部分（例えば図３においてパスセグメントＰｉ及びＰｉ＋１の斜線がひかれた部分）の面積と、そのパスセグメントＰｉについて予め設定された人口密度Ｄｉとを乗算することにより、そのときそのパス３０に発生可能な上限数Ｑを算出すると共に、この上限数Ｑをそのとき記憶している発生可能人数Ｓに加算する。そしてＣＰＵ１０は、この後そのパス３０における視錐台Ｖ１内に入っているすべてのパスセグメントＰｉに対する同様の演算処理を終えるまで、ステップＳＰ３−ＳＰ４−ＳＰ３のループを繰り返し、これによりこのときそのパス３０上に発生可能な通行人３１の最大人数である発生可能人数Ｓを算出する。
【００３０】
ＣＰＵ１０は、やがてそのパス３０における視錐台Ｖ１内に入っているすべてのパスセグメントＰｉに対するステップＳＰ４の演算処理を終えることによりステップＳＰ３において肯定結果を得ると、ステップＳＰ５に進んで、そのとき記憶している発生可能人数Ｓがすでにそのパス３０上にいる通行人３１の数よりも小さいか否かを判断する。
【００３１】
ここで、このステップＳＰ５において肯定結果を得ることは、そのとき対象としているパス３０では、そのパス３０上に発生されている通行人３１の数が既に発生可能人数Ｓを超えていることを意味する。かくして、このときＣＰＵ１０は、ステップＳＰ７に進んで後述の処理を行う。
【００３２】
これに対して、ステップＳＰ５において否定結果を得ることは、そのとき対象としているパス３０では、そのパス３０上に存在している通行人３１の数が未だ発生可能人数Ｓを超えていないことを意味する。かくして、このときＣＰＵ１０は、ステップＳＰ６に進んで、そのパス３０を通行人３１を発生させるべきパスの候補として登録した後、ステップＳＰ７に進む。
【００３３】
ＣＰＵ１０は、ステップＳＰ７に進むと、視錐台Ｖ１内に一部又は全部が入っているすべてのパス３０について、上述したステップＳＰ３〜ステップＳＰ５のチェックを終えたか否かを判断する。そしてＣＰＵ１０は、このステップＳＰ７において否定結果を得るとステップＳＰ２に戻り、この後ステップＳＰ７において肯定結果を得るまで、ステップＳＰ２〜ＳＰ７−ＳＰ２のループを繰り返す。
【００３４】
一方、ＣＰＵ１０は、ステップＳＰ７において肯定結果を得ると、ステップＳＰ８に進んで、図５に示す処理手順に従って、そのとき通行人を発生させるべきパスをステップＳＰ４において登録したパス３０の中から選択する。
【００３５】
具体的に、ＣＰＵ１０は、ステップＳＰ８に進むと、図５に示す処理手順をステップＳＰ２０において開始し、続くステップＳＰ２１において、図４の処理手順のステップＳＰ６において登録したパス３０の中から１つのパス３０を選択した後、後述する比較基準値Ｒｍｉｎの初期値として予め設定された所定値を設定する。なお、後述の充足率Ｒｉは基本的に１以下の値をとるため、この所定値は１よりも大きな値であればどのような値であっても良い。
【００３６】
続いてＣＰＵ１０は、ステップＳＰ２２に進んで、図４の処理手順のステップＳＰ６において候補として登録したすべてのパス３０について、後述のステップＳＰ２３〜ステップＳＰ２５の処理を終えたか否かを判断する。
【００３７】
そしてＣＰＵ１０は、このステップＳＰ２２において肯定結果を得ると、ステップＳＰ２６に進んでこの処理手順を終了し、この後図４の処理手順のステップＳＰ９に進む。これに対してＣＰＵ１０は、ステップＳＰ２２において否定結果を得ると、ステップＳＰ２３に進んで、既にこのパス３０に発生している通行人３１の人数を上述のステップＳＰ４において算出したそのとき対応するパス３０に発生可能な上限数Ｑで割ることにより、そのパス３０についての充足率Ｒｉを算出する。
【００３８】
続いてＣＰＵ１０は、ステップＳＰ２４に進んで、ステップＳＰ２３において算出した充足率Ｒｉが比較基準値Ｒｍｉｎよりも低いか否かを判断する。そしてＣＰＵ１０は、このステップＳＰ２４において否定結果を得ると、ステップＳＰ２２に戻り、この後候補として登録された他の各パス３０についてステップＳＰ２２〜ステップＳＰ２４を同様に処理する。
【００３９】
これに対してＣＰＵ１０は、ステップＳＰ２４において肯定結果を得ると、ステップＳＰ２５に進んで、このパス３０の充足率Ｒｉを比較基準値Ｒｍｉｎに設定し、この後ステップＳＰ２２に戻って、この後候補として登録された他の各パス３０についてステップＳＰ２２〜ステップＳＰ２４を同様に処理する。
【００４０】
そしてＣＰＵ１０は、やがて視錐台Ｖ１に候補として登録されたすべてのパス３０についてステップＳＰ２２〜ステップＳＰ２４を処理し終えることによりステップＳＰ２４において肯定結果を得ると、ステップＳＰ２５に進んで、そのパス３０を、通行人３１を発生させるパス３０として最終候補に設定する。この結果、上述の充足率Ｒｉが最も低いパス３０が最終候補に設定される。
【００４１】
そしてＣＰＵ１０は、この後ステップＳＰ２２に戻り、このステップＳＰ２２において肯定結果を得るまでステップＳＰ２２〜ステップＳＰ２５を繰り返す。この後ＣＰＵ１０は、やがてこのステップＳＰ２２において肯定結果を得ると、図４に示す処理手順のステップＳＰ８に戻り、この後ステップＳＰ９に進んで上述のように最終候補に選択されたパス３０上に通行人３１を一人だけ発生させる。
【００４２】
この際、その通行人３１に対するＣＰＵ１０の管理時間をできるだけ短くすることを目的として、例えば図６（Ａ）に示すように、そのパス３０上に視錐台Ｖ１を投影したときの境界線Ｋ１上に通行人の基点（例えば重心。ただし、通行人の中心近傍であれば重心に限定されない。）ＰＴ１が位置するようにその通行人３１の描画を開始するものとすると、通行人３１がある程度の大きさをもっているために、ゲーム画面の端部に通行人３１の基点ＰＴ１よりも視錐台Ｖ１側の部分（図６（Ａ）の斜線で示す部分）が突然現れるように表示される可能性があり、遊戯者に不自然さを感じさせるおそれがある。
【００４３】
そこで、本実施の形態の場合、ＣＰＵ１０は、図６（Ｂ）に示すように、通行人３１を完全に含む球ＳＰの半径分だけ、視錐台Ｖ１の各境界面をそれぞれ外側の法線方向に移動させてなる描画開始位置規定領域Ｖ２をゲーム空間内に設定し、そのパス３０上に描画開始位置規定領域Ｖ２を投影したときの境界線Ｋ２上に通行人３１の基点ＰＴ２が位置するようにその通行人３１の描画を開始する。
【００４４】
具体的に、ＣＰＵ１０は、ジオメトリプロセッサ１５を制御して通行人３１のゲーム空間内での位置座標や向きを計算させると共に、この計算結果と、記憶媒体１２にゲームプログラムの一部として格納されている通行人３１の外形等の情報とに基づく当該通行人３１を描画するために必要な情報をグラフィックメモリ１７に格納する。これにより、このグラフィックメモリ１７に格納された情報に基づいて、対応するパス３０上に描画開始位置規定領域Ｖ２を投影したときの境界線Ｋ２上に自己の基点ＰＴ２が位置するようにその通行人３１が描画されることとなる。これによりこのゲームでは、通行人３１の描画開始時に当該通行人３１が視錐台Ｖ１内に現れることがなく、通行人３１を自然なかたちで視錐台Ｖ１内に出現させることができる。
【００４５】
なお、このようにグラフィックメモリ１７に格納される各通行人３１の位置の情報は、上述のように対応するパス３０の各パスセグメントＰｉにそれぞれ設定された移動速度Ｖｉなどに基づいて、ＣＰＵ１０の制御のもとに順次更新される。これによりこのグラフィックメモリ１７に格納された各通行人３１の位置情報に基づいて、各通行人３１が、あたかも対応するパス３０の対応するパスセグメントＰｉに設定された移動速度Ｖｉで移動しているようにレンダリングプロセッサ１６により描画されることとなる。
【００４６】
ところで、通行人３１に対する管理の開始位置及び終了位置を共にパス３０上に描画開始位置規定領域Ｖ２を投影したときの境界線Ｋ２上とすると、視錐台Ｖ１の振り（向き変更）に対して不自然な状況が生じ易い。例えば視錐台Ｖ１の振りによって通行人３１が視錐台Ｖ１外に消えた後に直ぐにまた元の方向に視錐台Ｖ１を向けた場合などである。この場合、通行人３１に対する管理の終了位置が上述の境界線Ｋ２上であるときには、一度通行人３１が視錐台Ｖ１から外れた段階で通行人３１がゲーム空間から消去されて再度視錐台Ｖ１が元の方向に向けられたときにかかる通行人３１がゲーム画面上に現れず、遊戯者に不自然さを感じさせることとなる。
【００４７】
そこで、本ゲームでは、図７に示すように、視錐台Ｖ１の周囲に描画開始位置規定領域Ｖ２よりもさらに大きい管理終了位置規定領域Ｖ３を設定し、通行人３１の基点ＰＴ１がこの管理終了位置規定領域Ｖ３の外側に出た段階でその通行人３１に対する管理を終了して、この通行人３１をゲーム空間から消去するようになされている。
【００４８】
図８は、このような通行人３１の消去アルゴリズムに関するＣＰＵ１０の処理手順を示すフローチャートである。ＣＰＵ１０は、一定期間毎にこの処理手順を実行することにより、視錐台Ｖ１から外れた通行人３１をゲーム空間から削除する。
【００４９】
すなわちＣＰＵ１０は、この処理手順をステップＳＰ３０において開始すると、続くステップＳＰ３１において、そのとき管理終了位置規定領域Ｖ３内に存在するすべての通行人３１について、ステップＳＰ３２について後述するチェックを行ったか否かを判断する。
【００５０】
ＣＰＵ１０は、このステップＳＰ３１において否定結果を得ると、ステップＳＰ３２に進んで、その通行人３１について設定した基点ＰＴ１（図６）が管理終了位置規定領域Ｖ３よりも外に出たか否かを判断する。そしてＣＰＵ１０は、このステップＳＰ３２において否定結果を得るとステップＳＰ３１に戻り、この後対象とする通行人３１を順次他の通行人３１に代えながら、ステップＳＰ３１−ＳＰ３２−３１のループを繰り返す。またＣＰＵ１０は、ステップＳＰ３２において肯定結果を得ると、ステップＳＰ３３に進んで、その通行人３１をゲーム空間から消去した後、ステップＳＰ３１に戻る。
【００５１】
そしてＣＰＵ１０は、この後ステップＳＰ３１において肯定結果を得るまでステップＳＰ３１〜ＳＰ３３−ＳＰ３１のループを繰り返し、やがてステップＳＰ３１において肯定結果を得ると、ステップＳＰ３４に進んでこの処理手順を終了する。
【００５２】
このように、本ゲームでは、ゲーム空間内に仮想的なパス３０を定義し、パス３０を複数のパスセグメントＰｉに区分すると共にパスセグメントＰｉ毎に人口密度Ｄｉを設定し、し、これらパスセグメントＰｉ毎に人口密度Ｄｉに基づいてゲーム画面上に出現させる通行人３１の数を制限するようにしているため、通行人３１の数の制限をゲーム画面の部分毎に行うことができる。また本ゲームでは、視錐台Ｖ１の外側に管理終了位置規定領域Ｖ３を設定し、この管理終了位置規定領域Ｖ３を外れた通行人３１をゲーム空間から消去するようにしているため、その通行人３１がゲーム画面から外れた後もその通行人３１の管理のためにメモリリソースが確保され続けていることを有効に防止できる。従って、このゲームによれば、リソースの無駄を防止しながら、より細かい画像制御を行うことができる。
【００５３】
（３）他の実施の形態
なお上述の実施の形態においては、パスの各セグメントに対してそれぞれ人口密度を１種類ずつ設定するようにした場合について述べたが、本発明はこれに限らず、通行人を例えば男性及び女性というように複数種類に分け、種類毎の人口密度をパスの各セグメントに設定するようにしても良い。この場合ＣＰＵが、これら種類ごとの人口密度を用いてそのパスを移動する通行人の数を通行人の種類単位で抑制するようにすれば良く、これにより通行人の管理をより一層細かく行うことができる。
【００５４】
また上述の実施の形態においては、視錐台Ｖ１の周囲に描画開始位置規定領域Ｖ２よりもさらに大きい管理終了位置規定領域Ｖ３を設定し、通行人３１の基点ＰＴ１がこの管理終了位置規定領域Ｖ３の外側に出た段階でその通行人３１に対する管理を終了して、この通行人３１をゲーム空間から消去するようにした場合について述べたが、本発明はこれに限らず、例えば通行人３１が視錐台Ｖ１から外れて所定時間経過した後にその通行人３１をゲーム空間から消滅させるようにしても良い。
【００５５】
さらに上述の実施の形態においては、管理対象が通行人３１である場合について述べたが、本発明はこれに限らず、動物や車などを含めた各種移動体や、移動体以外の建物などの非移動体などの描画にも広く適用することができる。
【産業上の利用可能性】
【００５６】
本発明は、業務用及び家庭用のいずれのゲーム装置にも適用することができる。
【図面の簡単な説明】
【００５７】
【図１】本実施の形態によるゲーム装置の画像処理回路２構成を示すブロック図である。
【図２】パス及び視錐台の説明に供する概念図である。
【図３】パスセグメントの説明に供する概念図である。
【図４】通行人の発生処理に関するＣＰＵの処理手順を示すフローチャートである。
【図５】通行人の発生処理に関するＣＰＵの処理手順を示すフローチャートである。
【図６】描画開始位置規定領域の説明に供する概念図である。
【図７】管理終了位置規定領域の説明に供する概念図である。
【図８】通行人の消去処理に関するＣＰＵの処理手順を示すフローチャートである。
【符号の説明】
【００５８】
１……ゲーム装置、２……画像処理回路、１０……ＣＰＵ、１２……記憶媒体、３０……パス、３１……通行人、Ｄｉ……人口密度、Ｐｉ……パスセグメント、Ｋ１，Ｋ２，Ｋ２Ａ，Ｋ２Ｂ……境界線、Ｖ１……視錐台、Ｖ２……描画開始位置規定領域、Ｖ３……管理終了位置規定領域。
【図１】
0004711223.tif 000002
【図２】
0004711223.tif 000003
【図３】
0004711223.tif 000004
【図４】
0004711223.tif 000005
【図５】
0004711223.tif 000006
【図６】
0004711223.tif 000007
【図７】
0004711223.tif 000008
【図８】
0004711223.tif 000009