(57)【要約】【課題】仮想ゲーム世界においてゲームオブジェクトを配置するときに、より現実世界に近い位置に配置するゲームプログラムおよびゲーム装置を提供する。【解決手段】複数のオブジェクトを仮想ゲーム世界に配置する範囲および配置するオブジェクト間の許容距離が設定される。仮想ゲーム世界内に設定された範囲内の任意の位置に、１つのオブジェクトの配置が決定されるまでそのオブジェクトの位置を変更して仮配置され、既に範囲内に配置が決定されている別のオブジェクトとの間の距離を算出する。そして、算出した距離が許容距離以上であるとき、仮配置されたオブジェクトの配置を決定し、配置が決定された複数のオブジェクトを表示画面に表示する。【選択図】図４
2007117260.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトが存在する仮想ゲーム世界の少なくとも一部を表現したゲーム画像を表示画面上に表示するゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記コンピュータに、
前記複数のオブジェクトを仮想ゲーム世界に配置する範囲および配置するオブジェクト間の許容距離を設定する配置条件設定ステップと、
仮想ゲーム世界内に設定された前記範囲内の任意の位置に、１つのオブジェクトの配置が決定されるまで当該オブジェクトの位置を変更して仮配置するオブジェクト仮配置ステップと、
既に前記範囲内に配置が決定されている別のオブジェクトと前記オブジェクト仮配置ステップで仮配置したオブジェクトとの間の距離を算出するオブジェクト間距離算出ステップと、
前記オブジェクト間距離算出ステップで算出した距離が前記許容距離以上であるとき、仮配置されたオブジェクトの配置を決定するオブジェクト配置決定ステップと、
前記オブジェクト配置決定ステップによって配置が決定された複数のオブジェクトを前記表示画面に表示する表示制御ステップとを実行させる、ゲームプログラム。
【請求項２】
前記配置条件設定ステップでは、前記オブジェクト仮配置ステップが１つのオブジェクトに対して位置を変更して仮配置する回数を制限する制限回数がさらに設定され、
前記オブジェクト配置決定ステップでは、前記オブジェクト仮配置ステップが１つのオブジェクトに対して仮配置した回数が前記制限回数に到達したとき、前記オブジェクト間距離算出ステップで算出した距離が前記許容距離未満であっても、仮配置されているオブジェクトの配置が決定されることを特徴とする、請求項１に記載のゲームプログラム。
【請求項３】
前記配置条件設定ステップでは、前記範囲内にオブジェクトを配置する配置数がさらに設定され、
前記ゲームプログラムは、前記オブジェクト配置決定ステップで配置を決定するオブジェクトの数が前記配置数に到達するまで、前記オブジェクト仮配置ステップ、前記オブジェクト間距離算出ステップ、および前記オブジェクト配置決定ステップによる配置処理を繰り返して、前記コンピュータに実行させることを特徴とする、請求項１に記載のゲームプログラム。
【請求項４】
前記配置条件設定ステップでは、前記範囲内にオブジェクトを配置する制限時間がさらに設定され、
前記ゲームプログラムは、前記制限時間に到達するまで、前記オブジェクト仮配置ステップ、前記オブジェクト間距離算出ステップ、および前記オブジェクト配置決定ステップによる配置処理を繰り返して、前記コンピュータに実行させることを特徴とする、請求項１に記載のゲームプログラム。
【請求項５】
前記ゲームプログラムは、前記オブジェクトの配置が決定される毎に、複数種別に分類されるオブジェクト群から前記オブジェクト仮配置ステップで次に仮配置する１つのオブジェクトを選択するオブジェクト選択ステップを、さらに前記コンピュータに実行させる、請求項１に記載のゲームプログラム。
【請求項６】
前記オブジェクト選択ステップでは、選択されたオブジェクトの配置方向が任意に設定され、
前記オブジェクト仮配置ステップでは、前記配置方向に応じて選択されたオブジェクトが仮配置されることを特徴とする、請求項５に記載のゲームプログラム。
【請求項７】
複数のオブジェクトが存在する仮想ゲーム世界の少なくとも一部を表現したゲーム画像を表示画面上に表示するゲーム装置であって、
前記複数のオブジェクトを仮想ゲーム世界に配置する範囲および配置するオブジェクト間の許容距離を設定する配置条件設定手段と、
仮想ゲーム世界内に設定された前記範囲内の任意の位置に、１つのオブジェクトの配置が決定されるまで当該オブジェクトの位置を変更して仮配置するオブジェクト仮配置手段と、
既に前記範囲内に配置が決定されている別のオブジェクトと前記オブジェクト仮配置手段が仮配置したオブジェクトとの間の距離を算出するオブジェクト間距離算出手段と、
前記オブジェクト間距離算出手段が算出した距離が前記許容距離以上であるとき、仮配置されたオブジェクトの配置を決定するオブジェクト配置決定手段と、
前記オブジェクト配置決定手段によって配置が決定された複数のオブジェクトを前記表示画面に表示する表示制御手段とを備える、ゲーム装置。
【請求項８】
前記配置条件設定手段は、前記オブジェクト仮配置手段が１つのオブジェクトに対して位置を変更して仮配置する回数を制限する制限回数をさらに設定し、
前記オブジェクト配置決定手段は、前記オブジェクト仮配置手段が１つのオブジェクトに対して仮配置した回数が前記制限回数に到達したとき、前記オブジェクト間距離算出手段で算出した距離が前記許容距離未満であっても、仮配置されているオブジェクトの配置を決定することを特徴とする、請求項７に記載のゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、仮想ゲーム世界に複数のオブジェクトを配置するゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
従来、仮想ゲーム世界内に複数のゲームオブジェクトを配置してゲーム画像を生成することによって、より現実世界に近い画像を表現している。現実世界においてランダムな位置に存在する複数の物体を仮想ゲーム世界で表現する場合、より現実に近づけるためには当該物体を表現する複数のゲームオブジェクトも仮想ゲーム世界においてランダムな位置に配置しなければならない。
【０００３】
例えば、雪等の落下体を仮想３次元空間で表現する装置が開示されている（例えば、特許文献１参照）。特許文献１で開示された装置では、複数の落下体が３次元的に空間配置された落下オブジェクトを複数用いられる。そして、落下オブジェクトを所定の回転方向および回転角度で回転させながら仮想３次元空間内を落下させることによって、それぞれの落下オブジェクト内に配置された落下体が落下していく様子が表現される。なお、落下体の種類および空間配置は、処理負担を軽減するために全ての落下オブジェクトで同一にしたり、互いに異なる空間配置にしたりして、雪等の落下体が表現される。
【特許文献１】特開平１０−３１４１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、現実世界においては、ランダムな位置に存在する複数の物体でも、互いの重なりやすさ等によって互いの距離が影響されることがある。このような物体を仮想ゲーム世界で表現する場合、当該物体を表現するゲームオブジェクトを単にランダムに配置するだけでは自然な表現ができない。例えば、現実の世界において所定の範囲の地面に落ちている複数の物体（例えば、落葉樹の近傍に落ちている落ち葉等）は、それら物体が存在する位置がランダムであり、互いに重なり合って存在する。一方、現実の世界において所定の範囲の水等に浮かんでいる複数の物体（例えば、群生する浮き草等）は、存在する位置はランダムであるが、互いに重なり合うことが少ない。
【０００５】
このような複数の物体を仮想ゲーム世界で表現する場合、前者を示す物体を表現する複数のゲームオブジェクトを仮想ゲーム世界においてランダムな位置に配置しても、互いのゲームオブジェクトが重ならないように配置すると、プレイヤに違和感を与えてしまう。一方、後者を示す物体を表現する複数のゲームオブジェクトを仮想ゲーム世界においてランダムな位置に配置しても、互いのゲームオブジェクトが多数重なるように配置すると、プレイヤに違和感を与えてしまう。また、前者および後者共に、ゲームオブジェクト同士の重なりについて考慮した固定的な位置に配置すると、プレイヤが常に同じ配置関係となったゲームオブジェクトを見ることとなり、現実世界でランダムに存在する物体に対して違和感を与えてしまう。つまり、ゲームオブジェクト同士の重なりについて考慮せずにランダムに配置したり、ゲームオブジェクト同士の重なりについて考慮して固定的に配置したりするだけでは、表現する物体によってはプレイヤに違和感を与えてしまうことがある。
【０００６】
それ故に、本発明の目的は、仮想ゲーム世界においてゲームオブジェクトを配置するときに、より現実世界に近い位置に配置するゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号等は、本発明の理解を助けるために後述する最良の形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【０００８】
第１の発明は、複数のオブジェクト（ＯＢＪ）が存在する仮想ゲーム世界の少なくとも一部を表現したゲーム画像を表示画面（２）上に表示するゲーム装置（３）のコンピュータ（３０）で実行されるゲームプログラムである。ゲームプログラムは、配置条件設定ステップ（Ｓ５１）、オブジェクト仮配置ステップ（Ｓ５７）、オブジェクト間距離算出ステップ（Ｓ５８）、オブジェクト配置決定ステップ（Ｓ５９）、および表示制御ステップ（Ｓ６６）をコンピュータに実行させる。配置条件設定ステップは、複数のオブジェクトを仮想ゲーム世界に配置する範囲（Ａ）および配置するオブジェクト間の許容距離（Ｌｍｉｎ）を設定する。オブジェクト仮配置ステップは、仮想ゲーム世界内に設定された範囲内の任意の位置に、１つのオブジェクトの配置が決定されるまでそのオブジェクトの位置を変更して仮配置する。オブジェクト間距離算出ステップは、既に範囲内に配置が決定されている別のオブジェクトとオブジェクト仮配置ステップで仮配置したオブジェクトとの間の距離（Ｌ）を算出する。オブジェクト配置決定ステップは、オブジェクト間距離算出ステップで算出した距離が許容距離以上であるとき、仮配置されたオブジェクトの配置を決定する。表示制御ステップは、オブジェクト配置決定ステップによって配置が決定された複数のオブジェクトを表示画面に表示する。
【０００９】
第２の発明は、上記第１の発明において、配置条件設定ステップでは、オブジェクト仮配置ステップが１つのオブジェクトに対して位置を変更して仮配置する回数（Ｓ）を制限する制限回数（Ｓｍａｘ）がさらに設定される。オブジェクト配置決定ステップでは、オブジェクト仮配置ステップが１つのオブジェクトに対して仮配置した回数が制限回数に到達したとき（Ｓ６３でＹｅｓ）、オブジェクト間距離算出ステップで算出した距離が許容距離未満であっても、仮配置されているオブジェクトの配置が決定される。
【００１０】
第３の発明は、上記第１の発明において、配置条件設定ステップでは、範囲内にオブジェクトを配置する配置数（Ｎｍａｘ）がさらに設定される。ゲームプログラムは、オブジェクト配置決定ステップで配置を決定するオブジェクトの数（Ｎ）が配置数に到達するまで、オブジェクト仮配置ステップ、オブジェクト間距離算出ステップ、およびオブジェクト配置決定ステップによる配置処理を繰り返して、コンピュータに実行させる。
【００１１】
第４の発明は、上記第１の発明において、配置条件設定ステップでは、範囲内にオブジェクトを配置する制限時間（Ｔｍａｘ）がさらに設定される。ゲームプログラムは、制限時間に到達するまで、オブジェクト仮配置ステップ、オブジェクト間距離算出ステップ、およびオブジェクト配置決定ステップによる配置処理を繰り返して、コンピュータに実行させる。
【００１２】
第５の発明は、上記第１の発明において、ゲームプログラムは、オブジェクト選択ステップ（Ｓ５６）を、さらにコンピュータに実行させる。オブジェクト選択ステップは、オブジェクトの配置が決定される毎に、複数種別に分類されるオブジェクト群（Ｄ１ｇ）からオブジェクト仮配置ステップで次に仮配置する１つのオブジェクトを選択する（Ｄ３１ａ、Ｄ３２ａ、…、Ｄ３Ｍａ、…）。
【００１３】
第６の発明は、上記第５の発明において、オブジェクト選択ステップでは、選択されたオブジェクトの配置方向（θ）が任意に設定される。オブジェクト仮配置ステップでは、配置方向に応じて選択されたオブジェクトが仮配置される（Ｄ３１ｃ、Ｄ３２ｃ、…、Ｄ３Ｍｃ、…）。
【００１４】
第７の発明は、複数のオブジェクトが存在する仮想ゲーム世界の少なくとも一部を表現したゲーム画像を表示画面上に表示するゲーム装置である。ゲーム装置は、配置条件設定手段、オブジェクト仮配置手段、オブジェクト間距離算出手段、オブジェクト配置決定手段、および表示制御手段を備える。配置条件設定手段は、複数のオブジェクトを仮想ゲーム世界に配置する範囲および配置するオブジェクト間の許容距離を設定する。オブジェクト仮配置手段は、仮想ゲーム世界内に設定された範囲内の任意の位置に、１つのオブジェクトの配置が決定されるまでそのオブジェクトの位置を変更して仮配置する。オブジェクト間距離算出手段は、既に範囲内に配置が決定されている別のオブジェクトとオブジェクト仮配置手段が仮配置したオブジェクトとの間の距離を算出する。オブジェクト配置決定手段は、オブジェクト間距離算出手段が算出した距離が許容距離以上であるとき、仮配置されたオブジェクトの配置を決定する。表示制御手段は、オブジェクト配置決定手段によって配置が決定された複数のオブジェクトを表示画面に表示する。
【００１５】
第８の発明は、上記第７の発明において、配置条件設定手段は、オブジェクト仮配置手段が１つのオブジェクトに対して位置を変更して仮配置する回数を制限する制限回数をさらに設定する。オブジェクト配置決定手段は、オブジェクト仮配置手段が１つのオブジェクトに対して仮配置した回数が制限回数に到達したとき、オブジェクト間距離算出手段で算出した距離が許容距離未満であっても、仮配置されているオブジェクトの配置を決定する。
【発明の効果】
【００１６】
上記第１の発明によれば、仮想ゲーム世界の所定の範囲内において、他のオブジェクトとの距離を参照しながらオブジェクトを配置され、さらに、これらの各オブジェクトは所定の範囲内の任意の位置に配置されるので、所定の範囲内に極端な偏りを生じさせることなく一つ一つのオブジェクトをランダムに配置することができる。つまり、各オブジェクトは、所定範囲内に配置されるという規則性を持ちながら当該所定範囲内においては自然な感じで各オブジェクトが配置されるというゲームに適した表示をすることができる。
【００１７】
上記第２の発明によれば、制限回数だけトライして許容距離以上の位置にオブジェクトを仮配置できないとき、相対的に確率は低いものの許容距離未満の位置にもオブジェクトが配置されるため、さらに複数のオブジェクトの配置位置をランダムな配置関係で自然な状態で設定できる。また、制限回数を調整することによって、許容距離未満の位置に配置されるオブジェクトの割合を調整することができる。
【００１８】
上記第３の発明によれば、仮想ゲーム世界に設定された範囲内に配置するオブジェクトの数を調整することができる。
【００１９】
上記第４の発明によれば、仮想ゲーム世界を表示装置に表示する表示周期等の時間制限に応じて複数のオブジェクトを配置できるため、配置動作の遅延による処理エラーを防ぐことができる。
【００２０】
上記第５の発明によれば、同じ種類のオブジェクト（例えば、落ち葉）であっても、複数種別（例えば、サイズ違い）のオブジェクト群から配置するオブジェクトを１つ毎に選択できるため、さらに仮想ゲーム世界に配置されるオブジェクトのバリエーションが広がってより自然な表現が可能となる。
【００２１】
上記第６の発明によれば、配置するオブジェクトの方向が配置するオブジェクト毎に任意に設定されるため、さらに仮想ゲーム世界に配置されるオブジェクトが自然な状態で表現することが可能となる。
【００２２】
また、本発明のゲーム装置によれば、上述したゲームプログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００２３】
図１を参照して、本発明の一実施形態に係るゲームシステム１について説明する。なお、図１は、当該ゲームシステム１を説明するための外観図である。以下、据置型ゲーム装置を一例にして、本発明のゲームシステム１について説明する。
【００２４】
図１において、ゲームシステム１は、家庭用テレビジョン受像機等のスピーカ２ａを備えたＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ（以下、モニタと記載する）２に、接続コードを介して接続される据置型ゲーム装置（以下、単にゲーム装置と記載する）３によって構成される。ゲーム装置３は、接続コードを介してゲーム装置３と接続されるコントローラ６およびゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例の光ディスク４を含む。また、ゲーム装置３には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード５が必要に応じて着脱自在に装着される。ゲーム装置３は、光ディスク４に記憶されたゲームプログラムを実行することによって、その結果をゲーム画像としてモニタ２に表示する。さらに、ゲーム装置３は、外部メモリカード５に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置３のプレイヤは、モニタ２に表示されたゲーム画像を見ながら、コントローラ６を操作することによって、ゲーム進行を楽しむことができる。また、複数のプレイヤがゲームする場合、モニタ２に表示されたゲーム画像を見ながら、それぞれ複数のコントローラ６を操作することによって、ゲーム進行を楽しむこともできる。
【００２５】
コントローラ６は、上述したように接続コードを介してゲーム装置３に接続され、その接続コードは、ゲーム装置３に対して着脱自在である。コントローラ６は、主にモニタ２に表示されるゲーム空間に登場するプレイヤオブジェクトを操作するための操作手段であり、複数の操作ボタン、キー、およびスティック等の入力部を備えている。具体的には、コントローラ６には、プレイヤによって各々把持されるグリップ部が形成される。そして、コントローラ６は、プレイヤの左手の親指等によって操作可能なメインスティック６１および十字キー６７と、右手の親指等によって操作可能なＣスティック６８、Ａボタン６２、Ｂボタン６３、Ｘボタン６４、Ｙボタン６５、およびスタート−ポーズボタン６９を含む。さらに、コントローラ６には、プレイヤの左右の人差し指等によってそれぞれ操作可能なＲボタン６６ａおよびＬボタン６６ｂを備える。なお、これらの入力部は、後述するゲーム進行に応じてそれぞれ用いられるが、本発明の説明とは直接関連しないため詳細な説明を省略する。
【００２６】
光ディスク４には、ゲーム装置３のコンピュータ、特にＣＰＵ３０（後述）によって実行可能な形式の命令群およびデータ群であるゲームプログラムが記録される。このゲームプログラムは、メインメモリ３３に適宜読み込まれ実行される。なお、以下の説明では、光ディスク４に記憶されたゲームプログラムが実行される一例を説明する。
【００２７】
次に、図２を参照して、ゲーム装置３の構成について説明する。なお、図２は、ゲーム装置３の機能ブロック図である。
【００２８】
図２において、ゲーム装置３は、各種プログラムを実行する例えばリスク（ＲＩＳＣ）ＣＰＵ（セントラルプロセッシングユニット）３０を備える。ＣＰＵ３０は、図示しないブートＲＯＭに記憶された起動プログラムを実行し、メインメモリ３３等のメモリの初期化等を行った後、光ディスク４に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理を行うものである。ＣＰＵ３０には、メモリコントローラ３１を介して、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２、メインメモリ３３、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３４、およびＡＲＡＭ（Ａｕｄｉｏ  ＲＡＭ）３５が接続される。また、メモリコントローラ３１には、所定のバスを介して、コントローラＩ／Ｆ（インターフェース）３６、ビデオＩ／Ｆ３７、外部メモリＩ／Ｆ３８、オーディオＩ／Ｆ３９、およびディスクＩ／Ｆ４１が接続され、それぞれコントローラ６、モニタ２、外部メモリカード５、スピーカ２ａ、およびディスクドライブ４０が接続されている。
【００２９】
ＧＰＵ３２は、ＣＰＵ３０の命令に基づいて画像処理を行うものあり、例えば、３Ｄグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。ＧＰＵ３２は、図示しない画像処理専用のメモリやメインメモリ３３の一部の記憶領域を用いて画像処理を行う。ＧＰＵ３２は、これらを用いてモニタ２に表示すべきゲーム画像データを生成し、適宜メモリコントローラ３１およびビデオＩ／Ｆ３７を介してモニタ２に出力する。
【００３０】
メインメモリ３３は、ＣＰＵ３０で使用される記憶領域であって、ＣＰＵ３０の処理に必要なゲームプログラムやゲームデータ等を適宜記憶する。例えば、メインメモリ３３は、ＣＰＵ３０によって光ディスク４から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ３３に記憶されたゲームプログラムや各種データ等がＣＰＵ３０によって実行される。
【００３１】
ＤＳＰ３４は、ゲームプログラム実行時にＣＰＵ３０において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのＡＲＡＭ３５が接続される。ＡＲＡＭ３５は、ＤＳＰ３４が所定の処理（例えば、先読みしておいたゲームプログラムやサウンドデータの記憶）を行う際に用いられる。ＤＳＰ３４は、ＡＲＡＭ３５に記憶されたサウンドデータを読み出し、メモリコントローラ３１およびオーディオＩ／Ｆ３９を介してモニタ２に備えるスピーカ２ａに出力させる。
【００３２】
メモリコントローラ３１は、データ転送を統括的に制御するものであり、上述した各種Ｉ／Ｆが接続される。コントローラＩ／Ｆ３６は、例えば４つのコントローラＩ／Ｆ３６ａ〜３６ｄで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置３とを通信可能に接続する。例えば、コントローラ６は、接続コードを介して上記コネクタと嵌合し、コントローラＩ／Ｆ３６を介してゲーム装置３と接続される。ビデオＩ／Ｆ３７には、モニタ２が接続される。外部メモリＩ／Ｆ３８には、外部メモリカード５が接続され、その外部メモリカード５に設けられたバックアップメモリにアクセス可能となる。オーディオＩ／Ｆ３９にはモニタ２に内蔵されるスピーカ２ａが接続され、ＤＳＰ３４がＡＲＡＭ３５から読み出したサウンドデータやディスクドライブ４０から直接出力されるサウンドデータをスピーカ２ａから出力可能に接続される。ディスクＩ／Ｆ４１には、ディスクドライブ４０が接続される。ディスクドライブ４０は、所定の読み出し位置に配置された光ディスク４に記憶されたデータを読み出し、ゲーム装置３のバスやオーディオＩ／Ｆ３９に出力する。
【００３３】
なお、本発明のゲームプログラムは、光ディスク４等の外部記憶媒体を通じてゲーム装置３に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置３に供給されてもよい。また、ゲームプログラムは、ゲーム装置３内部の不揮発性記憶装置に予め記録されていてもよい。なお、ゲームプログラムを記憶する情報記憶媒体としては、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体に限らず、不揮発性半導体メモリでもよい。
【００３４】
メインメモリ３３には、上述したようにＣＰＵ３０の処理に必要なゲームプログラム等が適宜記憶され、ＣＰＵ３０によって光ディスク４から読み出されたゲームプログラムや各種データ等が格納される。以下、図３を参照して、本発明のゲームプログラムを実行する場合にメインメモリ３３に記憶されるデータの一例について説明する。なお、図３は、メインメモリ３３に記憶されるデータの一例について説明するための概略的なメモリマップである。
【００３５】
図３において、メインメモリ３３は、プログラム記憶領域およびデータ記憶領域を有しており、図３では本発明のオブジェクト配置に関する動作で用いられるデータ記憶領域のみを示している。具体的には、メインメモリ３３のデータ記憶領域には、大略的に配置条件データＤ１、配置状況データＤ２、および配置オブジェクトデータＤ３等が格納される。
【００３６】
配置条件データＤ１は、基準ポイント座標データＤ１ａ、配置範囲データＤ１ｂ、配置予定数データＤ１ｃ、配置最大トライ回数データＤ１ｄ、配置最小距離データＤ１ｅ、配置制限時間データＤ１ｆ、および配置対象オブジェクトデータＤ１ｇ等を含んでおり、複数のオブジェクトを配置する条件を示すデータである。基準ポイント座標データＤ１ａは、オブジェクトを仮想ゲーム世界に配置するとき、その配置範囲の基準位置となる基準ポイントの座標データであり、例えば、ゲームフィールド上の３次元ゲーム空間座標で設定される。配置範囲データＤ１ｂは、オブジェクトを仮想ゲーム世界に配置する範囲を示すデータであり、例えば、上記基準ポイントを中心とした所定半径の円形領域が配置範囲として示される。配置予定数データＤ１ｃは、上記配置範囲内に配置する予定の最大オブジェクト数（配置予定数Ｎｍａｘ）を示すデータである。配置最大トライ回数データＤ１ｄは、上記配置範囲内にオブジェクトを配置するとき、配置条件に合致するまでその配置位置を変更する回数の制限（配置最大トライ回数Ｓｍａｘ）を示すデータである。配置最小距離データＤ１ｅは、配置するオブジェクト同士の最小距離（配置最小距離Ｌｍｉｎ）を示すデータである。配置制限時間データＤ１ｆは、オブジェクトを配置する動作を継続する制限時間（配置制限時間Ｔｍａｘ；例えば、１フレーム分の時間）を示すデータである。配置対象オブジェクトデータＤ１ｇは、配置対象として選択するオブジェクトの種別を示すデータである。
【００３７】
配置状況データＤ２は、配置数データＤ２ａ、配置トライ回数データＤ２ｂ、および配置経過時間データＤ２ｃ等を含んでおり、複数のオブジェクトを配置するときに適宜更新される配置状況を示すデータである。配置数データＤ２ａは、複数のオブジェクトを配置するときに当該オブジェクトの配置を完了したオブジェクト数（配置数Ｎ）を示すデータである。配置トライ回数データＤ２ｂは、配置対象として選択されたオブジェクトを上記配置範囲内に配置するとき、その配置位置を変更した回数（配置トライ回数Ｓ）を示すデータである。配置経過時間データＤ２ｃは、オブジェクトを配置する動作を継続している経過時間（配置経過時間Ｔ）を示すデータである。
【００３８】
配置オブジェクトデータＤ３は、仮想ゲーム世界内に配置したオブジェクトを示すデータであり、配置したオブジェクトに応じて第１オブジェクトデータＤ３１、第２オブジェクトデータＤ３２、…第ＭオブジェクトデータＤ３Ｍがそれぞれ設定される。そして、オブジェクトデータＤ３１〜Ｄ３Ｍは、それぞれオブジェクト種別データＤ３１ａ〜Ｄ３Ｍａ、配置座標データＤ３１ｂ〜Ｄ３Ｍｂ、および配置方向データＤ３１ｃ〜Ｄ３Ｍｃ等を含んでいる。オブジェクト種別データＤ３１ａ〜Ｄ３Ｍａは、配置するオブジェクトの種別を示すデータであり、当該種別はオブジェクトの種類やサイズ等で区別されている。配置座標データＤ３１ｂ〜Ｄ３Ｍｂは、仮想ゲーム世界に配置された各オブジェクトの配置位置を示すデータであり、例えば、各オブジェクトの中心が位置するゲームフィールド上の３次元ゲーム空間座標で設定される。配置方向データＤ３１ｃ〜Ｄ３Ｍｃは、仮想ゲーム世界に配置された各オブジェクトの配置方向を示すデータであり、例えば、所定の基準方向に対する各オブジェクトの配置角度やベクトルデータで設定される。
【００３９】
次に、図４〜図１０を参照して、ゲーム装置３によって実行されるゲーム処理について説明する。なお、図４は、ゲーム装置３によってオブジェクトを配置するときに実行されるゲーム処理を示すフローチャートである。図５は、配置するオブジェクトＯＢＪの中心位置Ｃおよび配置方向θを説明するための図である。図６は、基準ポイントＰおよび配置範囲Ａを説明するための図である。図７は、基準ポイントＰ上に第１オブジェクトＯＢＪ１を配置した様子を示す図である。図８は、第２オブジェクトＯＢＪ２を配置する際に判定される第１オブジェクトＯＢＪ１との距離Ｌ１２を示す図である。図９は、第３オブジェクトＯＢＪ３を配置する際に判定される第１および第２オブジェクトＯＢＪ１およびＯＢＪ２との距離Ｌ１３およびＬ２３を示す図である。図１０は、図４のフローチャートによる処理によって、複数のオブジェクトＯＢＪの配置が完了した状態の一例を示す図である。なお、図４に示すフローチャートにおいては、ゲーム処理のうち、オブジェクトの配置に関するゲーム処理について説明し、本願発明と直接関連しない他のゲーム処理については詳細な説明を省略する。また、図４では、ＣＰＵ３０が実行する各ステップを「Ｓ」と略称する。
【００４０】
ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ３０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、メインメモリ３３等の各ユニットが初期化される。そして、光ディスク４に格納されたゲームプログラムがメインメモリ３３に読み込まれ、ＣＰＵ３０がそのゲームプログラムの実行を開始して、モニタ２にゲーム画像が表現されることによって、ゲームが開始される。
【００４１】
図４において、ＣＰＵ３０は、仮想ゲーム世界の所定位置に複数のオブジェクトＯＢＪを配置するとき、その配置条件を設定する（ステップ５１）。例えば、ＣＰＵ３０は、配置条件として、複数のオブジェクトを配置する仮想ゲーム世界における位置（基準ポイントＰ）、配置する範囲（配置範囲Ａ）、配置予定数Ｎｍａｘ、配置最大トライ回数Ｓｍａｘ、配置最小距離Ｌｍｉｎ、および配置制限時間Ｔｍａｘを、配置条件データＤ１に設定する。典型的には、ＣＰＵ３０は、オブジェクトを配置する仮想ゲーム世界の位置等に応じて、予め設定された配置条件を取得して配置条件データＤ１を設定する。そして、ＣＰＵ３０は、配置数Ｎ＝１および配置経過時間Ｔ＝０に初期化して配置状況データＤ２を更新し（ステップ５２）、処理を次のステップに進める。なお、配置経過時間Ｔは、適宜自動的に更新されていく。
【００４２】
次に、ＣＰＵ３０は、仮想ゲーム世界（例えば、ゲームフィールド上）に基準ポイントＰおよび配置範囲Ａを設定し（ステップ５３）、処理を次のステップに進める。例えば、図６に示すように、ゲームフィールド上に基準ポイントＰが設定され、当該基準ポイントＰを中心とした所定半径の円形領域が配置範囲Ａに設定される。
【００４３】
次に、ＣＰＵ３０は、基準ポイントＰ上にオブジェクトＯＢＪを配置して当該オブジェクトの配置を示す配置オブジェクトデータＤ３を記述し（ステップ５４）、処理を次のステップに進める。図５に示すように、仮想ゲーム世界に配置するオブジェクトＯＢＪは、当該オブジェクトＯＢＪの位置基準となる中心位置Ｃ（例えば、オブジェクトＯＢＪの重心位置）が仮想ゲーム世界に配置される座標と、当該オブジェクトＯＢＪが所定基準方向に対して配置される配置角度θとによって、配置される状態が決定される。図７に示すように、ステップ５４では、ＣＰＵ３０は、配置対象オブジェクトデータＤ１ｇに示される選択可能な種別（例えば、落ち葉）から１つのオブジェクト種別を選択し、当該オブジェクト種別に属するオブジェクトＯＢＪの中心位置Ｃが基準ポイントＰに一致するように当該オブジェクトＯＢＪを配置する。そして、ＣＰＵ３０は、配置するオブジェクトＯＢＪの配置角度θを、例えばランダムで決定する。なお、以下で説明する他のオブジェクトＯＢＪと区別するために、ステップ５４で配置するオブジェクトを中心位置Ｃ１が設定された第１オブジェクトＯＢＪ１とする。
【００４４】
次に、ＣＰＵ３０は、配置トライ回数Ｓ＝１に初期化して配置状況データＤ２を更新する（ステップ５５）。そして、ＣＰＵ３０は、配置対象オブジェクトデータＤ１ｇに示される選択可能な種別から１つのオブジェクト種別を選択し、当該オブジェクト種別に属するオブジェクトＯＢＪの配置角度θを設定（例えば、ランダムに設定）して（ステップ５６）、処理を次のステップに進める。
【００４５】
次に、ＣＰＵ３０は、ステップ５６で選択したオブジェクトＯＢＪを配置範囲Ａ内の任意の位置に仮配置する（ステップ５７）。そして、ＣＰＵ３０は、仮配置したオブジェクトＯＢＪと配置済の他のオブジェクトＯＢＪとの距離が、所定範囲内か否かを判断する（ステップ５８）。具体的には、ＣＰＵ３０は、仮配置したオブジェクトＯＢＪの中心位置Ｃから既に配置されているオブジェクトＯＢＪの中心位置Ｃまでの距離Ｌをそれぞれ算出し、当該距離Ｌが配置最小距離Ｌｍｉｎ以上か否かを判断する。図８に示すように、上記ステップ５７で第２オブジェクトＯＢＪ２を仮配置したとする。この場合、第１オブジェクトＯＢＪ１の中心位置Ｃ１から第２オブジェクトＯＢＪ２の中心位置Ｃ２までの距離Ｌ１２が算出され、当該距離Ｌ１２が配置最小距離Ｌｍｉｎ以上か否かが判断される。また、図９に示すように、第１および第２オブジェクトＯＢＪ１およびＯＢＪ２が既に配置された後、上記ステップ５７で第３オブジェクトＯＢＪ３を仮配置したとする。この場合、第１オブジェクトＯＢＪ１の中心位置Ｃ１から第３オブジェクトＯＢＪ３の中心位置Ｃ３までの距離Ｌ１３と、第２オブジェクトＯＢＪ２の中心位置Ｃ２から第３オブジェクトＯＢＪ３の中心位置Ｃ３までの距離Ｌ２３とが算出され、当該距離Ｌ１３およびＬ２３が共に配置最小距離Ｌｍｉｎ以上か否かが判断される。そして、ＣＰＵ３０は、既に配置されている全てのオブジェクトＯＢＪまでの距離Ｌが配置最小距離Ｌｍｉｎ以上である場合、処理を次のステップ５９に進める。一方、ＣＰＵ３０は、既に配置されているオブジェクトＯＢＪの何れかまでの距離Ｌが配置最小距離Ｌｍｉｎ未満である場合、処理を次のステップ６３に進める。
【００４６】
ステップ５９において、ＣＰＵ３０は、上記ステップ５７で仮配置されているオブジェクトＯＢＪを仮想ゲーム世界に配置することを決定して当該オブジェクトの配置を示す配置オブジェクトデータＤ３を記述する。このステップ５９によって、１つのオブジェクトＯＢＪの配置が決定される。次に、ＣＰＵ３０は、配置数Ｎを＋１して配置状況データＤ２を更新し（ステップ６０）、更新後の配置数Ｎが配置予定数Ｎｍａｘに到達したか否かを判断する（ステップ６１）。そして、ＣＰＵ３０は、配置数Ｎが配置予定数Ｎｍａｘに到達していない場合、処理を次のステップ６２に進める。一方、ＣＰＵ３０は、配置数Ｎが配置予定数Ｎｍａｘに到達した場合、オブジェクトの配置が予定数完了したと判断して、ステップ６６に処理を進める。
【００４７】
ステップ６２において、ＣＰＵ３０は、配置経過時間Ｔが配置制限時間Ｔｍａｘ以内か否かを判断する。そして、ＣＰＵ３０は、配置経過時間Ｔが配置制限時間Ｔｍａｘ以内の場合、上記ステップ５５に戻って処理を繰り返す。一方、ＣＰＵ３０は、配置経過時間Ｔが配置制限時間Ｔｍａｘに到達した場合、オブジェクトの配置に許可された制限時間を経過したと判断して、ステップ６６に処理を進める。
【００４８】
一方、上記ステップ５８で配置最小距離Ｌｍｉｎ未満の位置にオブジェクトＯＢＪが仮配置されたと判断された場合、ＣＰＵ３０は、配置トライ回数Ｓが配置最大トライ回数Ｓｍａｘに到達したか否かを判断する（ステップ６３）。そして、ＣＰＵ３０は、配置トライ回数Ｓが配置最大トライ回数Ｓｍａｘに到達した場合、上記ステップ５９に処理を進める。一方、ＣＰＵ３０は、配置トライ回数Ｓが配置最大トライ回数Ｓｍａｘに到達していない場合、処理を次のステップ６４に進める。
【００４９】
ステップ６４において、ＣＰＵ３０は、配置経過時間Ｔが配置制限時間Ｔｍａｘ以内か否かを判断する。そして、ＣＰＵ３０は、配置経過時間Ｔが配置制限時間Ｔｍａｘ以内の場合、配置トライ回数Ｓを＋１して配置状況データＤ２を更新し（ステップ６５）、上記ステップ５７に戻って処理を繰り返す。一方、ＣＰＵ３０は、配置経過時間Ｔが配置制限時間Ｔｍａｘに到達した場合、オブジェクトの配置に許可された制限時間を経過したと判断して、ステップ６６に処理を進める。
【００５０】
ステップ６６において、ＣＰＵ３０は、上記ステップ５９で配置が決定され配置オブジェクトデータＤ３に記述された複数のオブジェクトＯＢＪをモニタ２に表示して、当該フローチャートによる処理を終了する。
【００５１】
ここで、上記ステップ６３で配置トライ回数Ｓが配置最大トライ回数Ｓｍａｘに到達したと判断された状況について説明する。図４で示すフローチャートから明らかなように、上記ステップ６３でＹｅｓと判断されるときは、配置最大トライ回数ＳｍａｘだけオブジェクトＯＢＪを仮配置しても全て配置最小距離Ｌｍｉｎ未満の位置（つまり、オブジェクトＯＢＪ同士の距離が許容されている距離よりも接近している）であったときである。また、上記ステップ６３でＹｅｓと判断された時点でも、オブジェクトＯＢＪが仮配置されている位置が配置最小距離Ｌｍｉｎ未満の位置（つまり、オブジェクトＯＢＪ同士の距離が許容されている距離よりも接近している）になっている。そして、上記ステップ６３でＹｅｓと判断された後に上記ステップ５９を実行すると、他のオブジェクトＯＢＪとの間の距離が配置最小距離Ｌｍｉｎ未満の位置へオブジェクトＯＢＪを配置することが決定されることになる。つまり、設定回数（Ｎｍａｘ）だけトライした後、すなわち相対的に確率は低いものの、許容された距離未満の位置にもオブジェクトＯＢＪが配置されることになる。
【００５２】
図１０に示すように、上記フローチャートに基づいた処理を行うことによって、複数のオブジェクトＯＢＪが配置範囲Ａ内に配置される。具体的には、配置制限時間Ｔｍａｘ内で配置予定数Ｎｍａｘを目標としてオブジェクトＯＢＪがランダムに配置され、それらオブジェクトＯＢＪ同士の配置間隔が基本的には配置最小距離Ｌｍｉｎ以上になっている。そして、上述したように配置数自体は少ないものの、配置最小距離Ｌｍｉｎ未満となった位置に配置されたオブジェクトＯＢＪも配置されていることもある。このように、オブジェクトＯＢＪ同士の配置間隔をある程度制御しながら、ランダムな位置に設定個数のオブジェクトＯＢＪを配置することができる。
【００５３】
ここで、配置条件データＤ１の設定について説明する。配置最小距離データＤ１ｅは、オブジェクトＯＢＪ同士の配置間隔を大きくしたい場合は配置最小距離Ｌｍｉｎを大きな値に設定し、オブジェクトＯＢＪ同士の配置間隔を小さくして重なりも許容する場合は配置最小距離Ｌｍｉｎを小さな値に設定する。配置最大トライ回数データＤ１ｄは、配置最小距離Ｌｍｉｎ未満となった位置に配置するオブジェクトＯＢＪの数を多くしたい場合は配置最大トライ回数Ｓｍａｘを小さな値に設定し、配置最小距離Ｌｍｉｎ未満となった位置に配置するオブジェクトＯＢＪの数を少なくしたい場合は配置最大トライ回数Ｓｍａｘを大きな値に設定する。そして、配置予定数データＤ１ｃは、配置範囲Ａ内にオブジェクトＯＢＪを多数配置したい場合は配置予定数Ｎｍａｘを大きな値に設定し、配置範囲Ａ内にオブジェクトＯＢＪを少数配置したい場合は配置予定数Ｎｍａｘを小さな値に設定する。
【００５４】
したがって、複数のオブジェクトが所定範囲内に配置されたとき、極端な偏りなくランダム性をもって各オブジェクトが配置されるので、これら複数のオブジェクトを自然な感じで表示することができる。例えば、現実の世界において所定の範囲の水等に浮かんで互いに重なり合うことが少ない複数の物体（例えば、群生する浮き草等）を、仮想ゲーム世界において複数のオブジェクトＯＢＪを用いて表現する場合、オブジェクトＯＢＪ同士の重なりを許容しない値に配置最小距離Ｌｍｉｎを設定して配置最大トライ回数Ｓｍａｘを大きな値に設定する。例えば、図１１に示すように、上述した配置条件データＤ１の設定によって、水面に群生する互いに重なり合うことが少ない浮き草を複数のオブジェクトＯＢＪの配置によって自然な状態で表現できる。
【００５５】
一方、現実の世界において所定の範囲の地面に互いに重なり合って存在する複数の物体（例えば、落葉樹の近傍に落ちている落ち葉等）を、仮想ゲーム世界において複数のオブジェクトＯＢＪを用いて表現する場合、オブジェクトＯＢＪ同士の重なりを許容する値に配置最小距離Ｌｍｉｎを設定して配置最大トライ回数Ｓｍａｘを小さな値に設定する。例えば、図１２に示すように、上述した配置条件データＤ１の設定によって、互いに重なり合って地面に落ちている落ち葉を複数のオブジェクトＯＢＪの配置によって自然な状態で表現できる。また、いずれの場合にも、複数のオブジェクトが配置し直されるたびに所定範囲内にランダム性をもってオブジェクトが配置されるので、各オブジェクトは所定範囲内に配置されるという規則性を持ちながら当該所定範囲内においては自然な感じで各オブジェクトが配置されるというゲームに適した画像を生成することができる。
【００５６】
なお、上述した説明では、地面や水面等の２次元的な面に配置範囲Ａを設定して複数のオブジェクトＯＢＪを設定したが、３次元の空間でもかまわない。例えば、仮想３次元空間に配置空間を設定して当該配置空間内に同様にオブジェクトＯＢＪを配置していけば、同様に本発明を適用することができる。
【００５７】
また、上述した説明では、基準ポイントＰを中心とした円領域で示される配置範囲Ａを用いて説明したが、他の形状の配置範囲を用いてもかまわない。例えば、基準ポイントＰを中心とした矩形領域、多角形領域、楕円領域、中抜きとなった枠型形状等で示される範囲を配置範囲Ａに設定してもかまわない。これら配置範囲Ａの形状は、配置したい仮想ゲーム世界の状況に応じて適宜設定すればよい。
【産業上の利用可能性】
【００５８】
本発明に係るゲームプログラムおよびゲーム装置は、仮想ゲーム世界において複数のオブジェクトを自然界に近い状態で配置することができ、各種オブジェクト等が登場するゲームを表現するときに有用である。
【図面の簡単な説明】
【００５９】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置３の機能ブロック図
【図３】図２のメインメモリ３３に記憶されるデータの一例について説明するための概略的なメモリマップ
【図４】図１のゲーム装置３によってオブジェクトを配置するときに実行されるゲーム処理を示すフローチャート
【図５】配置するオブジェクトＯＢＪの中心位置Ｃおよび配置方向θを説明するための図
【図６】基準ポイントＰおよび配置範囲Ａを説明するための図
【図７】基準ポイントＰ上に第１オブジェクトＯＢＪ１を配置した様子を示す図
【図８】第２オブジェクトＯＢＪ２を配置する際に判定される第１オブジェクトＯＢＪ１との距離Ｌ１２を示す図
【図９】第３オブジェクトＯＢＪ３を配置する際に判定される第１および第２オブジェクトＯＢＪ１およびＯＢＪ２との距離Ｌ１３およびＬ２３を示す図
【図１０】図４のフローチャートによる処理によって、複数のオブジェクトＯＢＪの配置が完了した状態の一例を示す図
【図１１】水面に群生する互いに重なり合うことが少ない浮き草を複数のオブジェクトＯＢＪの配置によって表現した一例
【図１２】互いに重なり合って地面に落ちている落ち葉を複数のオブジェクトＯＢＪの配置によって表現した一例
【符号の説明】
【００６０】
１…ゲームシステム
２…モニタ
２ｂ…スピーカ
３…ゲーム装置
４…光ディスク
５…外部メモリカード
６…コントローラ
６１…メインスティック
６２…Ａボタン
６３…Ｂボタン
６４…Ｘボタン
６５…Ｙボタン
６６ａ…Ｒボタン
６６ｂ…Ｌボタン
６７…十字キー
６８…Ｃスティック
６９…スタート−ポーズボタン
３０…ＣＰＵ
３１…メモリコントローラ
３２…ＧＰＵ
３３…メインメモリ
３３１…プログラム記憶領域
３３２…データ記憶領域
３４…ＤＳＰ
３５…ＡＲＡＭ
３６…コントローラＩ／Ｆ
３７…ビデオＩ／Ｆ
３８…外部メモリＩ／Ｆ
３９…オーディオＩ／Ｆ
４０…ディスクドライブ
４１…ディスクＩ／Ｆ
【図１】
2007117260.tif 000003
【図２】
2007117260.tif 000004
【図３】
2007117260.tif 000005
【図４】
2007117260.tif 000006
【図５】
2007117260.tif 000007
【図６】
2007117260.tif 000008
【図７】
2007117260.tif 000009
【図８】
2007117260.tif 000010
【図９】
2007117260.tif 000011
【図１０】
2007117260.tif 000012
【図１１】
2007117260.tif 000013
【図１２】
2007117260.tif 000014