(57)【要約】【課題】  自動生成されたゲームフィールドのフィールドマップ表示をより見易くする。【解決手段】複数の単位領域がマトリクス上に配置されたマップ構築可能領域２２内に、複数の通路や部屋といったゲームフィールドを構成する要素を少なくともその一部をランダム配置してフィールドマップを生成する。フィールドマップの外形範囲を、マップ構築可能領域２２で部屋又は通路が配置されているＸ軸、Ｙ軸それぞれの最大座標と最小座標とで囲まれる矩形のトリミング枠２４として求め、このトリミング枠２４でマップ構築可能領域２２をトリミングしてフィールドマップをコンパクト化する。【選択図】図６
2008136693.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、ゲーム画像を生成させてゲームを実行させるためのプログラムであって、
予め大きさが定められたゲームフィールド構築可能領域内に、複数の通路部及び複数の部屋部のうち少なくとも一部をランダムに配置してキャラクタが移動可能なゲームフィールドを構築するゲームフィールド構築手段、
前記ゲームフィールド構築可能領域の中から前記構築されたゲームフィールドの外形範囲を抽出する外形範囲抽出手段、
ゲーム画面中の予め定められた位置に表示されるゲームフィールド全体表示部にゲームフィールド全体範囲を表示する際に、前記外形範囲抽出手段により抽出された範囲を当該ゲームフィールド全体表示部に適合する所定サイズ及び／又は所定形状に適正化させて表示させる全体表示部制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項２】
請求項１に記載のプログラムであって、
前記ゲームフィールド構築手段により構築されたゲームフィールドのうち、部屋部にＮＰＣ（ノン・プレーヤキャラクタ）を初期配置するＮＰＣ初期配置手段、
所与の位置に初期配置されたＰＣ（プレーヤキャラクタ）をプレーヤの操作入力に従って制御するＰＣ制御手段、
前記ＮＰＣ初期配置手段により配置されたＮＰＣを制御するＮＰＣ制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項３】
請求項２に記載のプログラムであって、
前記ＮＰＣ初期配置手段が、通路部にはＮＰＣを初期配置しないように前記コンピュータを機能させるためのプログラム。
【請求項４】
請求項２又は３に記載のプログラムであって、
前記各部屋部には属性が定められており、
前記ＮＰＣ初期配置手段が、前記各部屋部の属性に応じて、配置するＮＰＣを決定するように前記コンピュータを機能させるためのプログラム。
【請求項５】
請求項４に記載のプログラムであって、
前記通路部には属性が定められており、
前記ゲームフィールド構築手段が、配置する通路部を、当該通路部が通じる部屋部の属性に応じた通路部とするように前記コンピュータを機能させるためのプログラム。
【請求項６】
請求項１〜５の何れか一項に記載のプログラムであって、
前記ゲームフィールド構築手段により構築された前記ゲームフィールドの通路部を短縮化させて前記ゲームフィールドを補正する短縮化手段として前記コンピュータを機能させるためのプログラム。
【請求項７】
請求項６に記載のプログラムであって、
前記ゲームフィールド構築可能領域は、複数の単位領域が複数軸座標系で格子状配列された領域であり、
前記ゲームフィールド構築手段が、直線部分を有する通路部を配置し、
前記短縮化手段が、前記直線部分の一部の単位領域を、該直線部分の直線方向の座標成分が該単位領域と同じ他の単位領域と共に削除する、
ように前記コンピュータを機能させるためのプログラム。
【請求項８】
請求項１〜７の何れか一項に記載のプログラムであって、
前記ゲームフィールド構築手段が、
前記ゲームフィールド構築可能領域内に複数の通路部及び複数の部屋部を配置する配置手段と、
前記配置手段により配置された通路部及び部屋部の全てが一体に連結されているか否かを判定する一体連結判定手段と、
前記一体連結判定手段によって否定判定された場合に、互いに非一体の部屋部を選択し、選択した部屋部間を連結させる連結通路を配置する連結通路配置手段と、
を有するように前記コンピュータを機能させるためのプログラム。
【請求項９】
請求項８に記載のプログラムであって、
前記連結通路配置手段が、互いに非一体の部屋部の内、他の部屋部や通路部と連結されていない孤立状態の部屋部を優先的に選択して連結通路を配置するように前記コンピュータを機能させるためのプログラム。
【請求項１０】
請求項７又は８に記載のプログラムであって、
前記連結通路配置手段が、前記各部屋部に定められている属性に基づいて、連結させる部屋部を選択するように前記コンピュータを機能させるためのプログラム。
【請求項１１】
請求項１〜１０の何れか一項に記載のプログラムであって、
前記ゲームフィールド構築手段による新たなゲームフィールドの構築と、当該構築されたゲームフィールドでのゲーム進行とを繰り返し実行させる進行制御手段、
新たなゲームフィールドに非ランダムに配置する部屋部の数、大きさ及び位置のうち少なくとも１つを、従前のゲームフィールドまでのゲーム進行結果に基づいて決定する非ランダム配置決定手段、
として前記コンピュータを機能させ、
前記ゲームフィールド構築手段が、前記非ランダム配置決定手段により非ランダムに配置する旨決定された部屋部を該決定に従って配置するように前記コンピュータを機能させる、
ためのプログラム。
【請求項１２】
請求項１〜１１の何れか一項に記載のプログラムを記憶したコンピュータ読取可能な情報記憶媒体。
【請求項１３】
予め大きさが定められたゲームフィールド構築可能領域内に、複数の通路部及び複数の部屋部のうち少なくとも一部をランダムに配置してキャラクタが移動可能なゲームフィールドを構築するゲームフィールド構築手段と、
前記ゲームフィールド構築可能領域の中から前記構築されたゲームフィールドの外形範囲を抽出する外形範囲抽出手段と、
ゲーム画面中の予め定められた位置に表示されるゲームフィールド全体表示部にゲームフィールド全体範囲を表示する際に、前記外形範囲抽出手段により抽出された範囲を当該ゲームフィールド全体表示部に適合する所定サイズ及び／又は所定形状に適正化させて表示させる全体表示部制御手段と、
を備えたゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに、ゲーム画像を生成させてゲームを実行させるためのプログラム等に関する。
【背景技術】
【０００２】
近年のビデオゲームでは、３次元仮想空間に形成されたゲームフィールドに、プレーヤが操作するゲームキャラクタのオブジェクトを配置してプレーヤによる操作入力や予め設定された動きでそれらを動作制御し、その様子を仮想カメラで撮影した画像を生成してゲーム画面に表示するものが多くみられる。
【０００３】
ここで言う「ゲームフィールド」は、ゲーム内でプレーヤが操作するプレーヤキャラクタが移動可能な領域であり、例えばロールプレイングゲーム（ＲＰＧ）におけるダンジョンは最も分かり易い例である。多くのゲームソフトでは、予めゲームフィールドの構造データが用意されていてゲームを何時始めても同じ構造のゲームフィールドを楽しめる構成となっているが、中にはゲームをする都度ゲームフィールドの構造が異なるようにゲームフィールドの自動生成機能が設けられたゲームも有る。
【０００４】
ゲームフィールドの自動生成に係る技術としては、例えば、ｍ×ｎ個（ｍ、ｎは自然数）の複数の矩形ブロックからなる格子空間内に所定数のブロックが連なってなる一本の本通路を形成し、この本通路を構成するブロック群のうち末端を除く中間のブロックから選択された分岐起点ブロックを起点として分岐路を形成することによって迷路を自動的に生成する技術が知られている（例えば、特許文献１参照）。
【０００５】
また、ゲームフィールドの外形や構造を定めるフィールドマップの境界線を変形させてより自然な輪郭を形成する技術も知られるところである（例えば、特許文献２参照）。
【特許文献１】特許第３２７０９２９号公報
【特許文献２】特許第３２７０９２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、従来技術のようにゲームフィールドを自動生成する場合、ゲームフィールドを構築可能な範囲（特許文献１の例では格子空間がこれに該当する。）に満遍なくゲームフィールドが形成されるとは限らず、ゲームフィールドが偏って形成され、ゲームフィールドの構成要素が何も形成されていない空領域が残されてしまうケースが見られる。
【０００７】
そうした場合、ゲーム画面内の一部に設定された所謂「マップ表示画面」や「レーダ画面」内にゲームフィールドの地図情報としてフィールドマップを表示しようとすると、ゲームフィールドの要素が何も形成されていない空領域も含めて表示することになる。そのため、ゲームフィールドが偏って形成されているほど、本来必要なゲームフィールドが所定領域内で占める表示割合が小さくなり、「マップ表示画面」や「レーダ画面」として甚だ見難いものになってしまうといった問題があった。
【０００８】
また、ゲームフィールドには、プレーヤキャラクタが移動可能な複数の移動経路部と、この移動経路部よりも広い複数の活動領域部とが連結されて構成されたものがある。こうしたタイプのゲームフィールドは、例えば複数の部屋（活動領域部）が通路（移動経路部）で結ばれて一体に連結されたダンジョン、道路や鉄道（移動経路部）などで結ばれた街（活動領域部）、通信回線（移動経路部）で結ばれた複数のコンピュータ（活動領域部）、運河（移動経路部）で結ばれた複数の湖沼（活動領域部）、橋（移動経路部）で結ばれた島群などといった設定となって用いられる。
【０００９】
こうしたタイプのゲームフィールドでは、活動領域部ではプレーヤキャラクタの行動は、敵との交戦やノン・プレーヤキャラクタとの会話、アイテムの探索など比較的豊富でありゲームプレイの中核を成すのであるが、移動経路部を移動中のプレーヤキャラクタは移動が主たる動作となることが多い。つまり、プレーヤにとって見れば移動経路部での移動は単なる部屋や活動場所の変更に付随するものでしかなく、移動によってゲームの緊張感や集中力も途切れがちになり、謂わば「つまらない」時間となる。こうした状況はゲームを楽しむ観点からすれば好ましくない。
【００１０】
更には、移動経路部の長さが長くなるとその分ゲームフィールドに係るデータ量が多くなるため、処理負荷軽減の観点からしても、できるだけコンパクトなゲームフィールドであることが望まれる。
【００１１】
本発明は、こうした事情を鑑みてなされたものであり、その目的とするところは、自動生成されたゲームフィールドのフィールドマップ表示をより見易くすることである。更には、プレーヤキャラクタが移動可能な複数の移動経路部と、この移動経路部よりも広い複数の活動領域部とが連結されて構成されたゲームフィールドを生成する際には、活動領域部間の移動距離ができるだけ短くなるようにコンパクトなゲームフィールドを生成することを目的としている。
【課題を解決するための手段】
【００１２】
上記の課題を解決する第１の発明は、コンピュータに、ゲーム画像を生成させてゲームを実行させるためのプログラムであって、予め大きさが定められたゲームフィールド構築可能領域（例えば、図３のマップ構築可能領域２２）内に、複数の通路部（例えば、図３の通路ＰＳ１〜ＰＳ４）及び複数の部屋部（例えば、図３の部屋Ｒ１〜Ｒ５）のうち少なくとも一部をランダムに配置してキャラクタが移動可能なゲームフィールドを構築するゲームフィールド構築手段（例えば、図８の処理部２００、ゲーム演算部２１０、マップ自動生成部２１２、図１２のステップＳ２、Ｓ１０）、前記ゲームフィールド構築可能領域の中から前記構築されたゲームフィールドの外形範囲を抽出する外形範囲抽出手段（例えば、図８の処理部２００、ゲーム演算部２１０、マップトリミング部２１４、図１２のステップＳ４）、ゲーム画面中の予め定められた位置に表示されるゲームフィールド全体表示部（例えば、図２のマップ表示領域１６）にゲームフィールド全体範囲を表示する際に、前記外形範囲抽出手段により抽出された範囲を当該ゲームフィールド全体表示部に適合する所定サイズ及び／又は所定形状に適正化させて表示させる全体表示部制御手段（例えば、図８の処理部２００、画像生成部２６０、図１２のステップＳ１８）、として前記コンピュータを機能させるためのプログラムである。
【００１３】
また、別の形態としての第１２の発明は、予め大きさが定められたゲームフィールド構築可能領域内に、複数の通路部及び複数の部屋部のうち少なくとも一部をランダムに配置してキャラクタが移動可能なゲームフィールドを構築するゲームフィールド構築手段と、
前記ゲームフィールド構築可能領域の中から前記構築されたゲームフィールドの外形範囲を抽出する外形範囲抽出手段と、ゲーム画面中の予め定められた位置に表示されるゲームフィールド全体表示部にゲームフィールド全体範囲を表示する際に、前記外形範囲抽出手段により抽出された範囲を当該ゲームフィールド全体表示部に適合する所定サイズ及び／又は所定形状に適正化させて表示させる全体表示部制御手段と、を備えたゲーム装置である。
【００１４】
第１及び第１２の発明によれば、ゲームフィールド構築手段で構築したゲームフィールドの外形範囲に含まれる部分を、ゲームフィールド全体表示部に適合する所定サイズ及び／又は所定形状に適正化して表示させることができる。つまり、ゲームフィールド構築可能領域では有るがゲームフィールドとして利用されない領域部分をゲームフィールド全体表示部に表示させずに済むので、その分実際にゲーム中に利用可能なゲームフィールドの範囲をゲームフィールド全体表示部に適合するより大きなサイズで表示でき、プレーヤはプレイし易くなる。
【００１５】
第２の発明は、第１の発明のプログラムであって、前記ゲームフィールド構築手段により構築されたゲームフィールドのうち、部屋部にＮＰＣ（ノン・プレーヤキャラクタ；例えば、図２の敵キャラクタ８）を初期配置するＮＰＣ初期配置手段（例えば、図８の処理部２００、ゲーム演算部２１０、図１２のステップＳ１０）、所与の位置に初期配置されたＰＣ（プレーヤキャラクタ；例えば、図２のプレーヤキャラクタ６）をプレーヤの操作入力に従って制御するＰＣ制御手段（例えば、図８の処理部２００、ゲーム演算部２１０、図１２のステップＳ１２）、前記ＮＰＣ初期配置手段により配置されたＮＰＣを制御するＮＰＣ制御手段（例えば、図８の処理部２００、ゲーム演算部２１０、図１２のステップＳ１２）、として前記コンピュータを機能させるためのプログラムである。
【００１６】
第２の発明によれば、第１の発明と同様の効果を奏するとともに、部屋部にＮＰＣを配置する一方でＰＣをゲームフィールドの所与の位置に配置して、プレーヤの操作入力に従ってＰＣを制御し、また配置されたＮＰＣを制御することができる。つまり、ＰＣを部屋部から部屋部へ移動させながらゲームを楽しむことができる。
【００１７】
第３の発明は、第２の発明のプログラムであって、
前記ＮＰＣ初期配置手段が、通路部にはＮＰＣを初期配置しないように前記コンピュータを機能させるためのプログラムである。
【００１８】
第３の発明によれば、第２の発明と同様の効果を奏するとともに、通路部にはＮＰＣを初期配置しなくて済む。つまり、様々な大きさが想定されるＮＰＣが配置可能なように通路部の幅を設定しなくて済むので、通路部の幅をプレーヤキャラクタ（ＰＣ）が移動するのに必要十分な幅に設定すればよく、ゲームフィールドのコンパクト化を高めるのに寄与する。
【００１９】
第４の発明は、第２又は第３の発明のプログラムであって、前記各部屋部には属性が定められており、前記ＮＰＣ初期配置手段が、前記各部屋部の属性に応じて、配置するＮＰＣを決定するように前記コンピュータを機能させるためのプログラムである。
【００２０】
ここで言う「属性」とは、例えばＲＰＧならば「火」「水」「闇」など魔法属性に類するものや、ゲームフィールドを屋外とする設定ならば部屋部を「草原」「砂漠」「沼地」など地理的属性といったものがこれに該当する。
第４の発明によれば、第２又は第３の発明と同様の効果を奏するとともに、部屋部の属性に応じてＮＰＣを配置できるので、あたかも部屋部の特徴にあったＮＰＣが生活・生息しているかのようなゲームフィールドを生成できるので、ゲーム内世界のリアリティを高めることができる。
【００２１】
第５の発明は、第４の発明のプログラムであって、前記通路部には属性が定められており、前記ゲームフィールド構築手段が、配置する通路部を、当該通路部が通じる部屋部の属性に応じた通路部とするように前記コンピュータを機能させるためのプログラムである。
【００２２】
第５の発明によれば、第４の発明と同様の効果を奏するとともに、通路が通じる部屋部の属性に応じた通路部とすることができる。例えば、「石造り」の部屋部に通じる通路部に「石造り」風のテクスチャを適用することで、部屋部と通路部との視覚的な繋がり感を高め、更にはゲームフィールドの一体感を高めることができる。
【００２３】
第６の発明は、第１〜第５の何れかの発明のプログラムであって、前記ゲームフィールド構築手段により構築された前記ゲームフィールドの通路部を短縮化させて前記ゲームフィールドを補正する短縮化手段（例えば、図８の処理部２００、ゲーム演算部２１０、マップ自動生成部２１２、図１３のステップＳ６６）として前記コンピュータを機能させるためのプログラムである。
【００２４】
第６の発明によれば、第１〜第５の何れかの発明と同様の効果を奏するとともに、構築された前記ゲームフィールドの通路部を短縮化させることができる。したがって、プレーヤキャラクタ（ＰＣ）を部屋部から部屋部へ移動させるのに要する操作や時間を少なくすることができる。移動によってゲームの緊張感や集中力も途切れがちになる謂わば「つまらない」時間を削減できるので、ゲームプレイの楽しさを維持することができる。
【００２５】
第７の発明は、第６の発明のプログラムであって、前記ゲームフィールド構築可能領域は、複数の単位領域が複数軸座標系で格子状配列された領域であり、前記ゲームフィールド構築手段が、直線部分を有する通路部を配置し、前記短縮化手段が、前記直線部分の一部の単位領域を、該直線部分の直線方向の座標成分が該単位領域と同じ他の単位領域と共に削除するように前記コンピュータを機能させるためのプログラムである。
【００２６】
第７の発明によれば、第６の発明のプログラムと同様の効果を奏するとともに、格子状配列のゲームフィールド構築可能領域を単位領域の列を単位に削除できるので、通路部を短縮化でき、また、ゲームフィールドに係るデータ量を少なくすることができる。
【００２７】
第８の発明によれば、第１〜第７の何れかの発明のプログラムであって、前記ゲームフィールド構築手段が、前記ゲームフィールド構築可能領域内に複数の通路部及び複数の部屋部を配置する配置手段（例えば、図８の処理部２００、ゲーム演算部２１０、図１３のステップＳ４０、Ｓ４２）と、前記配置手段により配置された通路部及び部屋部の全てが一体に連結されているか否かを判定する一体連結判定手段（例えば、図８の処理部２００、ゲーム演算部２１０、図１３のステップＳ４４〜Ｓ４６、Ｓ５８〜Ｓ６０）と、前記一体連結判定手段によって否定判定された場合に、互いに非一体の部屋部を選択し、選択した部屋部間を連結させる連結通路を配置する連結通路配置手段（例えば、図８の処理部２００、ゲーム演算部２１０、図１３のステップＳ４８〜Ｓ５２）と、を有するように前記コンピュータを機能させるためのプログラムである。
【００２８】
第８の発明によれば、第１〜第７の発明と同様の効果を奏するとともに、配置された通路部及び部屋部の全てが一体に連結されていない場合に、互いに非一体の部屋部を選択し、選択した部屋部間を連結させる連結通路を配置することで、効率的に全体を一体に連結させることができる。
【００２９】
第９の発明は、第８の発明のプログラムであって、前記連結通路配置手段は、互いに非一体の部屋部の内、他の部屋部や通路部と連結されていない孤立状態の部屋部を優先的に選択して連結通路を配置するように前記コンピュータを機能させるためのプログラムである。
【００３０】
第９の発明によれば、第８の発明と同様の効果を奏するとともに、孤立状態の部屋を優先的に選択して連結させることによって、より一層効率的に全体を一体に連結させることができる。
【００３１】
第１０の発明は、第７又は第８の発明のプログラムであって、
前記連結通路配置手段が、前記各部屋部に定められている属性に基づいて、連結させる部屋部を選択するように前記コンピュータを機能させるためのプログラムである。
【００３２】
第１０の発明によれば、第７又は第８の発明と同様の効果を奏するとともに、ゲームフィールド１０に複数の部屋にまたがる区域の特性を与えることができるので、ゲームの世界のリアリティを高めることができる。
【００３３】
第１１の発明は、第１〜第１０何れかの発明のプログラムであって、前記ゲームフィールド構築手段による新たなゲームフィールドの構築と、当該構築されたゲームフィールドでのゲーム進行とを繰り返し実行させる進行制御手段（例えば、図８の処理部２００、ゲーム演算部２１０）、新たなゲームフィールドに非ランダムに配置する部屋部の数、大きさ及び位置のうち少なくとも１つを、従前のゲームフィールドまでのゲーム進行結果に基づいて決定する非ランダム配置決定手段（例えば、図８の処理部２００、ゲーム演算部２１０、図１８の部屋配置条件設定データ５２８Ｂに基づく部屋配置処理、図１９のステップＳ２８によるマップ自動生成処理への戻り）として前記コンピュータを機能させ、前記ゲームフィールド構築手段が、前記非ランダム配置決定手段により非ランダムに配置する旨決定された部屋部を該決定に従って配置するように前記コンピュータを機能させるためのプログラムである。
【００３４】
第１１の発明は、第１〜第１０の何れかの発明と同様の効果を奏するとともに、従前のゲームフィールドまでのゲーム進行結果に基づいて新たなゲームフィールドに非ランダムに配置する部屋部の数、大きさ及び位置のうち少なくとも１つを決定することができる。したがって、ゲーム進行結果が反映された多様性のあるゲームフィールドを構築することができる。
【００３５】
第１２の発明は、第１〜第１１の何れか一つのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ＩＣメモリ、ゲームカセットなどを含む。第１２の発明によれば、第１〜第１１の何れか一つの発明のプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第１〜第１１の何れか一つの発明と同様の効果を発揮させることができる。
【発明の効果】
【００３６】
本発明によれば、ゲームフィールド構築手段で構築したゲームフィールドの外形範囲に含まれる部分を、ゲームフィールド全体表示部に適合する所定サイズ及び／又は所定形状に適正化させて表示させることで、自動生成されたゲームフィールドのフィールドマップ表示をより見易くすることができる。
【発明を実施するための最良の形態】
【００３７】
〔第１実施形態〕
以下、本発明を適用した第１実施形態として、家庭用ゲーム装置でロールプレイングゲーム（ＲＰＧ）を実行する例を挙げて説明する。
【００３８】
［ゲーム装置の構成］
図１は、本実施形態における家庭用ゲーム装置の構成例を説明するシステム構成図である。家庭用ゲーム装置１２００のゲーム装置本体１２０１は、例えばＣＰＵや画像処理用ＬＳＩ、ＩＣメモリ等が実装された制御ユニット１２１０と、光学ディスク１２０２やメモリカード１２０４といった情報記憶媒体の読み取り装置１２０６，１２０８を備える。そして、家庭用ゲーム装置１２００は、光学ディスク１２０２やメモリカード１２０４からゲームプログラム及び各種設定データを読み出し、ゲームコントローラ１２３０に為される操作入力に基づいて各種のゲーム演算を実行し、所与のビデオゲームを実行する。
【００３９】
家庭用ゲーム装置１２００の制御ユニット１２１０で生成されたゲーム画像やゲーム音は、信号ケーブル１２０９で接続されたビデオモニタ装置１２２０に出力される。プレーヤは、ビデオモニタ装置１２２０のディスプレイ１２２２に表示されるゲーム画像を見つつ、スピーカ１２２４から出力されるＢＧＭや効果音といったゲーム音を聞きながら、ゲームコントローラ１２３０から各種操作を入力してゲームを楽しむ。
【００４０】
ゲームコントローラ１２３０は、選択の決定やキャンセル、タイミングの入力などに用いられるコントローラ上面に設けられたプッシュボタン１２３２と、側面に設けられたプッシュボタン１２３３と、図で言うところの上下左右の各方向を単独入力するための方向入力キー１２３４と、右アナログレバー１２３６と、左アナログレバー１２３８とを備える。
【００４１】
右アナログレバー１２３６及び左アナログレバー１２３８は、図で言うところの上下方向と左右方向の２軸方向を同時入力可能な方向入力デバイスである。通常はゲームコントローラ１２３０を左右の手で把持し、レバー頭部１２３６ａ，１２３８ａにそれぞれ親指を添えて操作する。レバー頭部１２３６ａ，１２３８ａを倒すことによって２軸成分を含む任意の方向入力と、レバーの傾倒量に応じた任意操作量を入力することができる。また、何れのアナログレバーも、操作入力していない中立状態からレバーの軸方向に押し込むことでプッシュスイッチとしても使用することもできる。
【００４２】
本実施形態では、方向入力キー１２３４や、右アナログレバー１２３６からの操作入力によってプレーヤキャラクタの移動操作を入力し、プッシュボタン１２３２やプッシュボタン１２３３で動作の種類やタイミングの入力をする。
【００４３】
尚、ゲーム実行に必要なゲームプログラム及び各種設定データは、通信装置１２１２を介して通信回線１に接続し、外部装置からダウンロードして取得する構成であっても良い。ここで言う、通信回線とは、データ授受が可能な通信路を意味する。すなわち、通信回線とは、直接接続のための専用線（専用ケーブル）やイーサネット（登録商標）等によるＬＡＮ（Local Area Network）の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線／無線を問わない。
【００４４】
図２は、本実施形態におけるゲーム画面の例を示す図である。ゲーム画面４は、例えば３次元仮想空間に形成されたゲームフィールド１０に、プレーヤが操作するプレーヤキャラクタ６のオブジェクトと敵キャラクタ８のオブジェクトとが配置・動作制御される様子を仮想カメラで撮影した画像を元に生成される。本実施形態ではロールプレイングゲーム（ＲＰＧ）を実行するので、プレーヤはプレーヤキャラクタ６（本実施形態では「魔法使い」である。）を操作して種々の魔法を駆使して敵キャラクタ８を倒しながら迷路状のゲームフィールド１０を移動し、敵キャラク８の内最も強い所謂「ボスキャラクタ」を探し出して倒すことを目的とする。
【００４５】
尚、プレーヤキャラクタ６、敵キャラクタ８にはそれぞれ固有のヒットポイントが割り当てられており、逐次相手キャラクタからの攻撃によるダメージ値が与えられると、そのダメージ値がヒットポイントから減算され、ヒットポイントが「０」になると、該キャラクタは倒されたことになる。そして、プレーヤキャラクタ６が倒されるか、敵キャラク８の内最も強い所謂「ボスキャラクタ」を探し出して倒すとゲーム終了となる。
【００４６】
本実施形態におけるゲームフィールド１０は、プレーヤキャラクタ６が移動可能な領域である複数の通路１２と、通路１２よりも広く設定され敵キャラクタ８との交戦等が行われる主たる活動領域である複数の部屋１４とが所定面上に配置され、それらが一体的に連結されて迷路構造、所謂「ダンジョン構造」を成した仮想の世界である。通路１２や部屋１４の連結関係つまりゲームフィールド１０の構造はフィールドマップ（以下、単に「マップ」とも言う。）で定義されており、ゲーム画面４内に設定されている所定サイズのマップ表示領域１６にはフィールドマップに基づいて生成されたゲームフィールド１０を俯瞰視したマップ画像１８が表示される。マップ画像１８にはプレーヤキャラクタ６の現在位置がマーカ２０で表示されており、プレーヤはこのマーカ２０の位置を参照しながらプレーヤキャラクタ６を操作してゲームフィールド１０を攻略する。
【００４７】
尚、本実施形態では通路１２及び部屋１４は、共に３次元モデリングされたゲームキャラクタのオブジェクトを配置可能に２次元状（平面状）に配置されたモデルとするが、ゲームフィールド１０を建物や洞窟、大型客船などの乗物を模した設定とするならば、適宜通路１２及び部屋１４を高さ方向にも配置して、３次元状（立体状）の配置構成としても良い。その場合、マップ画像１８を、階層表示すると好適である。
【００４８】
本実施形態ではゲームフィールド１０を自動生成する。
図３〜図５は、本実施形態におけるゲームフィールドの自動生成の原理を説明するための概念図である。図３（ａ）に示すように、ゲームフィールド１０は、複数の単位領域が多軸座標系で格子状配列されたマップ構築可能領域２２の領域範囲内にフィールドの構成要素である通路や部屋が一体的に連結配置されたフィールドマップ（＝マップ）によってその構造が定義される。本実施形態におけるマップ構築可能領域２２は、３次元仮想空間における一平面上に有り、ＸＹ直交座標系（Ｘ＝０，１，２，・・・１９：Ｙ＝０，１，２・・・１９）を有し、各軸方向に２０ケの単位領域が設定されている。
【００４９】
通路及び部屋の形態や配置位置は、全ての通路及び部屋をランダム設定するとしても良いし、幾つかについては予め設定値を与えその他についてはランダム設定するとしても良い。偶然性に期待してより多彩なゲームフィールドを生成させる観点からは前者を採用すればよい。ある程度ゲームの作り手側の意図を反映し、演出的効果を期待するならば後者を採用するのが好ましい。本実施形態では、後者を採用するものとして説明する。
【００５０】
ゲームフィールドの生成過程においては、先ず図３（ｂ）に示すように、複数の通路ＰＳ１〜ＰＳ４を、マップ構築可能領域２２内に配置・設定する。図中一連の矩形で表現されているのが一つの通路を示しており、通路同士で重なっている部分の境界には破線を記している。通路同士が重なった箇所は、それら通路間が連結している状態を意味する。同図の状態では、通路ＰＳ１の右端が通路ＰＳ２の上端に重合して配置されており連結していると見なされる。同様に、通路ＰＳ２の下端が通路ＰＳ３の右端から２つ目の単位領域の場所と重合して連結している。そして、通路ＰＳ４は他の通路とは連結せず単独で配置されている。
【００５１】
次いで図３（ｃ）に示すように、複数の部屋Ｒ１〜Ｒ５をマップ構築可能領域２２内に配置・設定する。図中一連の矩形（縦横のサイズが単位領域２つ以上の矩形。但し、縦及び／又は横のサイズを単位領域１つの部屋として、通路の同様の形状の部屋が存在し得るとしてもよい。）で表現されているのが一つの部屋を示し、それぞれ他の部屋や通路と重なっている部分の境界には破線を記している。他の部屋や通路と重なった箇所は、重合する部屋或いは通路が連結している状態を意味する。同図の状態では、部屋Ｒ１の上部が通路ＰＳ１と重合して連結しており、部屋Ｒ２を通路ＰＳ４で縦に串刺しするように重合して連結している。部屋Ｒ３〜Ｒ５は、他の部屋や通路とは重合・連結せずに孤立した部屋（孤立部屋）となっている。
【００５２】
次に、配置された通路及び部屋を一体的に連結させる。本実施形態では、先ず孤立部屋を抽出して、孤立部屋同士を優先的に連結させ、孤立部屋が単数の場合には近傍の他の部屋からランダムに選択された部屋と連結させる。
【００５３】
図３（ｃ）の状態を引き継いだ図４（ａ）の例では、部屋Ｒ３〜Ｒ５の複数（奇数）の孤立部屋が抽出できる。先ず、マップ構築可能領域２２の原点（左上端）に近い部屋Ｒ３と最近傍の孤立部屋（この場合、部屋Ｒ４）とを結ぶ連結通路ＰＳ５を配置する。この際、連結構造に多様性を設けるために、連結通路ＰＳ５の始点（図中黒丸）となる単位領域を部屋Ｒ３の範囲内からランダムに選択し、終点（図中白丸）となる単位領域を連結対象の部屋の領域内からランダムに選択する。更に、通路形態を「直線」、「Ｌ字」、「クランク」の何れかをランダムで選択して、先に選択された始点の単位領域と終点の単位領域とを選択した形態の通路で結ぶように連結通路ＰＳ５を配置する。
【００５４】
部屋Ｒ３と部屋Ｒ４が連結されたことで部屋Ｒ５は単独の孤立部屋となるので、連結対象を部屋Ｒ５の近傍の他の部屋（この場合、部屋Ｒ２）とし、これらを結ぶ連結通路ＰＳ６を配置する。連結通路ＰＳ６も、連結通路ＰＳ５と同様にして通路の始点（図中黒三角）となる単位領域を部屋Ｒ５の領域内からランダムに選択し、終点（図中白三角）となる単位領域を連結対象の部屋の領域内からランダムに選択し、通路形態をランダムに選択して（この場合、「クランク」が選択されている。）連結通路ＰＳ６で連結する。
【００５５】
孤立部屋が無くなったところで、更に部屋及び通路が一体的に連結されているグループを抽出し、抽出されたグループが複数の場合にはそれらを連結する。
連結通路ＰＳ５及びＰＳ６を配置したことによって、通路及び部屋は一連に連結されたグループＧｒ１及びＧｒ２に分かれた状態となる。したがって、両者を結ぶように連結通路ＰＳ７を連結通路ＰＳ５，ＰＳ６と同様にして配置する。例えば、図４（ｂ）に示すように、連結対象となるグループからそれぞれ一つずつ部屋を選択し、選択された部屋の範囲内から始点或いは終点となる単位領域を選択する。そして、この選択された始点或いは終点となる単位領域（同図の場合白星と黒星）を結ぶようにして連結通路ＰＳ７を配置する。この結果、図４（ｃ）に示すように、複数の部屋Ｒ１〜Ｒ５が通路で一体に連結された一つのグループＧｒ３となり、これで一つの迷路状の構造ができたことになる。
【００５６】
ここまでの過程で、配置する通路並びに部屋の少なくとも一部をランダムに配置することで、多様性に富んだゲームフィールド１０のマップを生成できたことになる。３次元仮想空間には、このマップに従って通路１２や部屋１４のオブジェクトが配置されてゲームフィールド１０が形成されるので、実質的にマップの生成がゲームフィールド１０の生成と同義となる。
【００５７】
さて、本実施形態では更にできるだけゲームフィールド１０をコンパクトにする。より具体的には、連結構造の特徴的形状部分に当る通路の屈曲部を残すようにして、既に配置されている各部屋を寄せ集める。
【００５８】
例えば、図５（ａ）に示すように、先ずＸ軸方向に、同Ｙ軸座標を有する単位領域列を検索して「通路は配置されているが、部屋や通路の屈曲部が設定されていない単位領域列」を抽出する。同図の場合、斜線ハッチングを施した縦２列の領域列が抽出される。そして、抽出された単位領域列に含まれる通路を削除して、これら単位領域列より右側に配置されている通路や部屋の連結関係を維持したまま、左側に平行移動させて配置位置を更新する。
【００５９】
次いで図５（ｂ）に示すように、同様にＹ軸方向に、同Ｘ軸座標を有する領域列を検索して、「通路は配置されているが、部屋や通路の屈曲部が設定されていない単位領域列」を抽出する。同図の場合、斜線ハッチングを施した横３列分の領域列が抽出される。そして、抽出された単位領域列に含まれる通路を削除して、これら単位領域列より下側に配置されている通路や部屋の連結関係を維持したまま、上側に平行移動させて配置位置を更新する。
【００６０】
図５（ａ）及び（ｂ）で抽出された単位領域列に含まれる通路の直線部分は、ゲームフィールド１０の構造から見ると単なる通路の延長方向の長短のみに係り、削除したとしても通路の屈曲や通路と部屋の連結関係などの構造的特徴に影響を与えない。したがって、抽出された単位領域列の分だけ部屋Ｒ１〜Ｒ５を寄せ集めることとなり、ゲームフィールド１０をコンパクト化し、部屋から部屋への移動距離を短縮化することができる。
【００６１】
さてここでマップ構築可能領域２２に構築されたマップ全体を見ると、部屋Ｒ１〜Ｒ５や通路ＰＳ１〜ＰＳ７が配置されたその外周に何も配置されていない空領域が存在する。このままのマップ構築可能領域２２の俯瞰視全景をゲームフィールド１０のマップ画面１８としてマップ表示領域１６（図２参照）内に表示させようとすると、空領域を含めて所定範囲内に収めるように表示することになり、マップ画面１８がどうしても小さくなって見づらくなるとともに、偏りのあるマップ画面１８となる。そこで、本実施形態ではマップ構築可能領域２２に構築されたマップつまりはゲームフィールド１０の外形範囲を求め、該外形範囲でトリミング処理する。
【００６２】
具体的には、例えば図６（ａ）に示すように、部屋または通路が配置されている単位領域のＸ軸方向とＹ軸方方向それぞれ最大・最小の座標値を求め、これらの座標で囲まれる矩形のトリミング枠２４を求める。そして、図６（ｂ）に示すように、トリミング枠２４でマップ構築可能領域２２をトリミングする。つまり、トリミング枠２４の外側の単位領域を削減し、残った部分の左上をマップの座標原点とする。
【００６３】
これによって、マップ構築可能領域２２が必要十分な大きさに変更されることになるので、ゲーム画面４のマップ表示領域１６にマップ画像１８を表示する際、マップ表示領域１６を有効に利用して、マップ画像１８をより大きく見易く表示させることが可能になる。
【００６４】
例えば、図７（ａ）は、トリミングされたマップ構築可能領域２２に基づくマップ表示領域１６の表示例をしており、図７（ｂ）はトリミングしなかった場合のマップ構築可能領域２２に基づくマップ表示領域１６の表示例をしている。
図７（ａ）（ｂ）どちらの例でも、マップ表示領域１６の表示可能範囲１７に収まるようにマップ画像１８の縦横寸法比をそのまま維持して画像サイズが調整・適正化されているが、前者の方はマップ構築可能領域２２がトリミングされて不要な空領域が削除されている分、大きく表示されて見易くなり、また偏りがない。
【００６５】
［機能ブロックの説明］
次に、上述のような特徴を実現するための機能構成について説明する。
図８は、本実施形態における機能構成の一例を示す機能ブロック図である。同図に示すように本実施形態では、操作入力部１００と、処理部２００と、音出力部３５０と、画像表示部３６０と、通信部３７０と、記憶部５００とを備える。
【００６６】
操作入力部１００は、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部２００に出力する。図１では、ゲームコントローラ１２３０が操作入力部１００に該当する。
【００６７】
処理部２００は、例えばマイクロプロセッサやＡＳＩＣ（特定用途向け集積回路）、ＩＣメモリなどの電子部品によって実現され、操作入力部１００や記憶部５００を含むゲーム装置１２００の各機能部との間でデータの入出力を行うとともに、所定のプログラムやデータ、操作入力部１００からの操作入力信号に基づいて各種の演算処理を実行して、ゲーム装置１２００の動作を制御する。図１では、ゲーム装置本体１２０１に内蔵された制御ユニット１２１０が処理部２００に該当する。
そして本実施形態における処理部２００は、ゲーム演算部２１０と、音生成部２５０と、画像生成部２６０と、通信制御部２７０とを備える。
【００６８】
ゲーム演算部２１０は、ゲームの進行に係る処理を実行する。例えば、ゲーム空間を仮想空間中に形成する処理や、敵キャラクタ８の自動動作制御処理、ヒット判定処理、物理演算処理、ゲーム結果の算出処理が実行対象に含まれる。そして本実施形態のゲーム演算部２１０は、マップ自動生成部２１２と、マップトリミング部２１４とを含んでいる。
【００６９】
マップ自動生成部２１２は、ゲームフィールド１０の構造を定義するフィールドマップ（＝マップ）を自動生成することでゲームフィールド１０を自動生成する。具体的には、所定サイズのマップ構築可能領域２２内に複数の通路１２や部屋１４を配置する処理、配置された通路１２や部屋１４が一体的に連結されているか否かを判定し、連結されていない場合にそれらを一体的に連結させる処理、配列された通路１２と部屋１４との連結関係や通路１２の屈曲といった連結構造の特徴に影響を与えずに配置された部屋１４を寄せ集めるように補正する処理を実行する。
【００７０】
マップトリミング部２１４は、マップ自動生成部２１２によって配置された通路１２並びに部屋１４の全てを含むように、マップ構築可能領域２２をトリミング処理してマップをコンパクト化する。
【００７１】
音生成部２５０は、例えばデジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサやその制御プログラムによって実現され、ゲーム演算部２１０による処理結果に基づいてゲームに係る効果音やＢＧＭ、各種操作音の音信号を生成し、音出力部３５０に出力する。
【００７２】
音出力部３５０は、音生成部２５０から入力される音信号に基づいて効果音やＢＧＭ等を音出力する装置によって実現される。図１ではビデオモニタ装置１２２０のスピーカ１２２４がこれに該当する。
【００７３】
画像生成部２６０は、例えば、デジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ＩＣメモリ等によって実現される。画像生成部２６０は、ゲーム演算部２１０による処理結果に基づいて１フレーム時間（１／６０秒）で１枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部３６０に出力する。
【００７４】
画像表示部３６０は、画像生成部２６０から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管（ＣＲＴ）、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図１ではビデオモニタ装置１２２０のディスプレイ１２２２が該当する。
【００７５】
通信制御部２７０は、データ通信に係るデータ処理を実行し、通信部３７０を介して外部装置とのデータのやりとりを実現する。
【００７６】
通信部３７０は、通信回線１と接続して通信を実現する。例えば、無線通信機、モデム、ＴＡ（ターミナルアダプタ）、回線終端装置、ネットワークカード、有線ケーブルのコネクタ、データ変換用制御回路などによって実現され、図１では通信装置１２１２がこれに該当する。
【００７７】
記憶部５００は、処理部２００にゲーム装置１２００を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なゲームプログラム、各種データ等を記憶する。また、処理部２００の作業領域として用いられ、処理部２００が各種プログラムに従って実行した演算結果や操作入力部１００から入力される入力データ等を一時的に記憶する。この機能は、例えばＲＡＭやＲＯＭなどのＩＣメモリ、ハードディスク等の磁気ディスク、ＣＤ−ＲＯＭやＤＶＤなどの光学ディスクなどによって実現される。
【００７８】
本実施形態では、記憶部５００はシステムプログラム５０１と、ゲームプログラム５０２を記憶している。ゲームプログラム５０２は更にマップ自動生成プログラム５０４と、マップトリミングプログラム５０６とを含んでいる。
処理部２００がゲームプログラム５０２を読み出して実行することによって、処理部２００にゲーム演算部２１０としての機能を実現させることができる。
【００７９】
また、記憶部５００には、予め用意されるデータとしてゲーム空間設定データ５２０、キャラクタ初期設定データ５２２、マップ表示設定データ５２４、通路配置条件設定データ５２６、部屋配置条件設定データ５２８が記憶されている。
【００８０】
更にゲームの進行に伴って生成されて適宜書き換えられるデータとして、マップデータ５３０、キャラクタ制御データ５３２、マップ画像１８の画像データを格納するマップ画像データ５３４を記憶する。また、ゲームの進行に係る処理で必要となるタイマー値、各種のフラグ、仮想カメラの位置や姿勢制御に関する情報なども適宜記憶される。
【００８１】
ゲーム空間設定データ５２０には、仮想空間にゲーム空間を形成するための各種データが格納されている。例えば、マップ構築可能領域２２の単位領域分に相当する通路単位モデルおよび部屋単位モデルの矩形盤状のモデルデータやテクスチャデータが含まれる。マップ構築可能領域２２において通路１２が設定されている領域には、３次元仮想空間のマップ構築可能領域２２に対応する位置に、通路用単位モデルを配置して通路１２を形成する。同様にマップ構築可能領域２２において部屋１４が設定されている領域には、部屋用単位モデルを敷き詰めるように配置して部屋１４を形成する。
【００８２】
キャラクタ初期設定データ５２２には、プレーヤキャラクタ６及び敵キャラクタ８の初期設定データが格納されている。例えば、キャラクタのモデルデータ、テクスチャデータ、モーションデータが含まれる。
【００８３】
そして、プレーヤキャラクタ６及び敵キャラクタ８をゲーム実行中で制御するためのデータは、キャラクタ制御データ５３２に格納される。例えば、ゲームフィールド１０におけるキャラクタの位置座標、ヒットポイントの現在値、クリアしたゲームステージ数、倒した敵キャラクタ８の数など適宜設定することができる。
【００８４】
マップ表示設定データ５２４は、ゲーム画面４内におけるマップの表示に係る設定を格納する。例えば、ゲーム画面座標系におけるマップ表示領域１６の表示範囲の設定、該表示範囲におけるマップ画像１８の表示可能範囲、マップデータ５３０からマップ画像１８を生成する際の表示形態の設定が含まれる。
【００８５】
通路配置条件設定データ５２６は、マップ構築可能領域２２に配置する通路の設定を格納する。図９は、本実施形態における通路配置条件設定データ５２６のデータ構成例を示すデータ構成図である。同図に示すように、通路配置条件設定データ５２６は、通路番号５２６ａと、初期通路配置座標５２６ｂと、通路サイズ５２６ｃとを対応付けて一本の通路１２を定義している。初期通路配置座標５２６ｂは、マップ構築可能領域２２の何所の単位領域に当該通路の左上端を合わせて配置するかを定めている。通路サイズ５２６ｃは、当該通路の長さを定義している。同図の通路番号５２６ａが「ＰＳ１」の通路は、座標（Ｘ，Ｙ）＝（１，１）の位置に左上をあわせ、Ｘ軸方向に１１単位領域、Ｙ軸方向に１領域の長さで設定されている。図３（ｂ）における通路ＰＳ１がこれに該当する。
【００８６】
部屋配置条件設定データ５２８は、マップ構築可能領域２２に配置する部屋の設定を格納する。図１０は、本実施形態における部屋配置条件設定データ５２８のデータ構成例を示すデータ構成図である。同図に示すように、部屋配置条件設定データ５２８は、部屋番号５２８ａと、初期部屋配置座標５２８ｂと、部屋配置座標可変幅５２８ｃと、初期部屋サイズ５２８ｄと、部屋サイズ可変幅５２８ｅと、重なり許可フラグ５２８ｆとを対応付けて一つの部屋１４を定義している。
【００８７】
初期部屋配置座標５２８ｂは、マップ構築可能領域２２の何所に当該部屋の左上端を合わせるか基準となる座標を定め、部屋配置座標可変幅５２８ｃはその可変幅を設定している。したがって、実際に部屋が配置される座標は、初期部屋配置座標５２８ｂの座標値を部屋配置座標可変幅５２８ｃの座標幅内でランダムに可変した値となる。また、初期部屋配置座標５２８ｂが（Ｘ，Ｙ）＝（−１，−１）に設定されている部屋は、初期の配置位置をマップ構築可能領域２２の座標範囲内でランダムに選択することを示している。
【００８８】
配置される部屋のサイズは、初期部屋サイズ５２８ｄで定義されたＸ軸方向成分、Ｙ軸方向成分を基準とした幅とし、部屋サイズ可変幅５２８ｅの範囲内でランダムに可変した値とされる。尚、部屋配置座標可変幅５２８ｃは、本実施形態では「０」を含む自然数として設定される。
【００８９】
重なり許可フラグ５２８ｆは、当該部屋を配置する際に他の部屋との重合配置の可／不可を定義する。本実施形態では、予め設定が規定されている部屋（部屋Ｒ１，Ｒ２）については不許可として「０」を設定し、ランダム配置可能な部屋の少なくとも一部（部屋Ｒ３，Ｒ４）については許可として「１」を設定している。
【００９０】
例えば、部屋番号５２８ａが「Ｒ１」の部屋の場合、座標（Ｘ，Ｙ）＝（１〜３，１〜３）の範囲内からランダムに座標値が選択され、この選択された座標に左上を合わせて配置される。そして部屋のサイズは、初期部屋サイズ５２８ｄで定義されたＸ軸方向幅＝４、Ｙ軸方向幅＝４のサイズを最小とし、部屋サイズ可変幅５２８ｅで定義された幅を加えた最大Ｘ軸方向幅＝５、最大Ｙ軸方向幅＝５を最大とした範囲で、ランダムに部屋のサイズが決定・設定される。図３（ｃ）における部屋Ｒ１がこれに該当する。
【００９１】
尚、本実施形態の部屋配置条件設定データ５２８では、予め初期部屋配置座標５２８ｂが定められた非ランダム配置の部屋から順に読み出し可能に設定し、非ランダム配置の部屋以降に、ランダム配置の部屋の定義が読み出される構成とする。
【００９２】
また、本実施形態では、全ての通路の配置位置や大きさを予め規定しておく一方で、部屋の一部の配置位置を大枠で限定するとともに、他の部屋をランダム配置可能な設定としている。これによって、大枠のマップデザインをゲームの作り手が方向付けつつも、実際のマップの生成段階では多様性が生じるようにされている。勿論、通路並びに部屋の設定はこれらに限るものではなく、部屋の設定を全て予め規定しておいて通路の設定をランダム配置されるもの（例えば初期通路配置座標５２６ｂを（−１，−１）に設定された通路。）を含むように設定する構成でも良いし、通路の全てをランダム配置としても良い。
【００９３】
マップデータ５３０は、マップ構築可能領域２２の単位領域毎に設定されている通路や部屋の識別情報を格納する。図１１は、本実施形態におけるマップデータ５３０のデータ構成の一例を示す図である。同図に示すように、例えば、単位領域の座標５３０ａと、当該単位領域に設定されている部屋番号５３０ｂ及び通路番号５３０ｃとを対応付けて格納している。部屋番号５３０ｂ及び通路番号５３０ｃは、「０」が初期状態に相当し通路も部屋も何れも配置・設定されていないことを示す。当該領域に部屋が設定されると、その部屋番号や通路番号に更新される。部屋番号５３０ｂ及び通路番号５３０ｃは何れも複数格納可能であり、部屋或いは通路が互いに当該単位領域で重合配置されていることを示す。例えば、同図の座標５３０ａが（Ｘ，Ｙ）＝（１，１）の単位領域では、部屋Ｒ１の一部と、通路ＰＳ１の一部とが重合して配置されていることを示している（図３（ｃ）参照）。また、座標５３０ａが（Ｘ，Ｙ）＝（１，１１）の単位領域では、通路ＰＳ１の一部と通路ＰＳ２の一部とが重合して配置されていることを示している（図３（ｃ）参照）。
【００９４】
［動作の説明］
次に、本発明の動作について説明する。
図１２は、本実施形態における主たる処理の流れを説明するためのフローチャートである。ここで説明される処理は、処理部２００がシステムプログラム５０１、ゲームプログラム５０２を読み出し実行することによって実現される。尚、ここで説明する一連の処理は、ゲーム画面の描画サイクルよりも十分に短い制御サイクルで繰り返し実行される。また、ゲーム音声の生成並びに出力に係る制御は、公知のビデオゲームと同様に実行すれば良いのでここでの説明は省略する。
【００９５】
同図に示すように、先ずゲーム演算部２１０は、マップ自動生成処理を実行する（ステップＳ２）。マップ自動生成処理は、マップデータ５３０を生成することでゲームフィールド１０を生成する処理である。
【００９６】
図１３は、本実施形態におけるマップ自動生成処理の流れを説明するためのフローチャートである。同図に示すように、マップ自動生成処理では先ずゲーム演算部２１０は、マップデータ５３０を初期化した後、通路配置条件設定データ５２６を参照して、該データに格納されている順番にマップ構築可能領域２２に通路を配置する（ステップＳ４０）。具体的には、通路配置条件設定データ５２６の通路番号５２６ａの登録順に、初期通路配置座標５２６ｂを左上にして通路サイズ５２６ｃに含まれる単位領域についてマップデータ５３０の通路番号５３０ｃに当該通路番号５２６ａの情報を格納する。全ての通路について配置を終了すると、マップ構築可能領域２２は、例えば図３（ｂ）のような状態となる。
【００９７】
次にゲーム演算部２１０は、部屋配置処理を実行する（ステップＳ４２）。
図１４は、本実施形態における部屋配置処理の流れを説明するためのフローチャートである。部屋配置処理では先ず、ゲーム演算部２１０は、部屋配置条件設定データ５２８で定義されている順番に全ての部屋についてループＡの処理を実行する（ステップＳ８０〜Ｓ１０８）。
【００９８】
ループＡの処理では先ず処理対象の部屋がランダム配置する部屋であるか否かを判定する（ステップＳ８２）。処理対象の部屋の初期部屋配置座標５２８ｂが（Ｘ，Ｙ）＝（−１，−１）であれば肯定判定し（ステップＳ８２のＹＥＳ）、部屋配置座標をマップ構築可能領域２２の範囲内でランダムに選択決定する（ステップＳ８４）。一方、処理対象の部屋の初期部屋配置座標５２８ｂが（Ｘ，Ｙ）＝（−１，−１）ではない場合には否定判定し（ステップＳ８２のＮＯ）、初期部屋配置座標５２８ｂを、部屋配置座標可変幅５２８ｃの範囲内でランダムに可変して部屋配置座標を決定する（ステップＳ８６）。
【００９９】
次に、初期部屋サイズ５２８ｄを部屋サイズ可変幅５２８ｅの範囲内で可変して部屋サイズを設定する（ステップＳ８８）。ここで、当該処理対象の部屋がランダム配置する部屋である場合には（ステップＳ９０のＹＥＳ）、予測配置範囲がマップ構築可能領域２２内に収まるか否かを判定する（ステップＳ９８）。予測配置範囲は、先に決定された部屋配置座標と部屋サイズで新たに部屋を配置すると仮定した場合に予測される該部屋の配置範囲である。したがって、ステップＳ９８では、例えば先のステップＳ８４で決定された部屋配置座標に部屋サイズを加算して予測配置範囲の右下の座標を求める。そして、この右下の座標がマップ構築可能領域２２の範囲内であれば肯定判定し、範囲外であれば否定判定する。
【０１００】
予測配置範囲がマップ構築可能領域２２内でなければ（ステップＳ９８のＮＯ）、ランダムに決定された部屋配置位置座標をマップ構築可能領域２２の中央方向に所定座標分だけ移動させ（ステップＳ１００）、再び予測配置範囲がマップ構築可能領域２２内に収まるか否かを判定する。
【０１０１】
予測配置範囲がマップ構築可能領域２２内に収まる場合（ステップＳ９８のＹＥＳ）、ゲーム演算部２１０は更に予測配置範囲内に既に部屋が配置されているか否かを判定する（ステップＳ１０２）。マップデータ５３０の部屋番号５３０ｂが「０」でなければ他の部屋が既に配置されていることになる。
【０１０２】
既に他の部屋が配置されている場合には（ステップＳ１０２のＹＥＳ）、処理対象の部屋又は予測配置範囲内に既に配置されている部屋に、重なり配置が禁止されているか否かを判定する（ステップＳ１０４）。具体的には、処理対象の部屋および予測範囲内の既配置部屋に対応する重なり許可フラグ５２８ｆに「０」が設定されていれば重なり配置（重合配置）が禁止されていると判定する。
【０１０３】
重なり配置の禁止が設定されている場合（ステップＳ１０４のＹＥＳ）、ステップＳ８４に戻って部屋配置座標のランダム設定からやり直す。
【０１０４】
一方、重なり配置の禁止が設定されていない場合（ステップＳ１０４のＮＯ）、及び予測配置範囲内に既に配置されている部屋が無い場合（ステップＳ１０２のＮＯ）、ランダム配置する部屋ではない場合（ステップＳ９０のＮＯ）には、ゲーム演算部２１０は、当該処理対象の部屋をマップ構築可能領域２２に配置し（ステップＳ１０６）、ループＡの処理を終了する（ステップＳ１０８）。つまり、部屋配置座標を左上にして、部屋サイズに含まれる範囲のマップデータ５３０の部屋番号５３０ｂに当該処理対象の部屋の部屋番号５２８ａの情報を格納し、ループＡの処理を終了する。
そして、部屋配置条件設定データ５２８で設定されている全ての部屋についてループＡの処理を実行したならば部屋配置処理を終了し、図１３のフローに戻る。
【０１０５】
図１３のフローに戻って、ゲーム演算部２１０は次に、通路と連結されていない孤立部屋を抽出する（ステップＳ４４）。具体的には、マップデータ５３０を参照し、部屋番号５３０ｂに部屋の識別情報のみが格納されていて、且つ対応する通路番号５３０ｃが「０」である場合に、当該部屋番号５３０ｂに格納されている識別情報の部屋を抽出する。そして、孤立部屋が抽出された場合（ステップＳ４６のＹＥＳ）、抽出された全ての孤立部屋についてループＢの処理を実行して他の部屋と連結させる（ステップＳ４８〜Ｓ５６）。
【０１０６】
ループＢの処理では、先ず処理対象の孤立部屋の他に孤立部屋があるか否かを判定する（ステップＳ５０）。そして、他の孤立部屋が有る場合には（ステップＳ５０のＹＥＳ）、処理対象の孤立部屋と、ランダムに選択された近傍の孤立部屋とを対象に連結通路生成処理を実行して（ステップＳ５２）、ループＢの処理を終了する。反対に他に孤立部屋が無い場合には（ステップＳ５０のＮＯ）、処理対象の孤立部屋と、ランダムに選択された近傍のその他の部屋とを対象にして連結通路生成処理を実行して（ステップＳ５４）、ループＢの処理を終了する。
【０１０７】
図１５は、本実施形態における連結通路生成処理の流れを説明するためのフローチャートである。同図に示すように、連結通路生成処理では先ず一方の対象の部屋に含まれる単位領域から始点とする単位領域を何れかランダムに一つ選択し（ステップＳ１２０）、同様に他方の対象の部屋から終点となる単位領域を一つ選択する（ステップＳ１２２）。
【０１０８】
次いで、新たに配置する連結通路の形態をランダムに選択する（ステップＳ１２４）。本実施形態では、直線、Ｌ字型またはクランク型の何れかを選択する。換言すると連結通路の屈曲点の数を選択するとも言える。そして、既に選択されている始点となる単位領域と終点となる単位領域とを結ぶ連結通路を、選択された通路形態で配置する（ステップＳ１２６）そして、連結通路生成処理を終了し図１３のフローに戻る。
【０１０９】
ループＢにおける処理を具体的に示すと、例えば、図３（ｃ）〜図４（ａ）として示される。図３（ｃ）の状態では、部屋Ｒ３〜Ｒ５は何れも他の通路や部屋と連結していない孤立部屋と見なされる。そこで、マップ構築可能領域２２の原点に近い部屋Ｒ３からループＢの対象とされる。部屋Ｒ３の他にも孤立部屋（部屋Ｒ４、Ｒ５）が存在するので、その最近傍の孤立部屋（部屋Ｒ４）が部屋Ｒ３に対する連結対象となる。
【０１１０】
図４（ａ）の例では、連結対象の一方の部屋Ｒ３の中から黒丸が付された単位領域が始点として選択され、連結対象の他方の部屋Ｒ４の中から白丸が付された単位領域が終点として選択されている。そして、通路形態がＬ字型であれば、始点のあるＸ軸座標と終点のあるＹ軸座標の第１交点、又は始点のあるＹ軸座標と終点のあるＸ軸座標の第２交点の何れかがランダムに選択され、選択した交点を通る１本の屈曲通路、つまりＬ字型の連結通路ＰＳ５が配置されている。
そして、部屋Ｒ３と部屋Ｒ４が互いに連結されるとその段階では孤立部屋は部屋Ｒ５のみとなるので、部屋Ｒ５には近傍の他の部屋が連結対象としてランダムに選ばれる。図４（ａ）の例では、部屋Ｒ５と部屋Ｒ２とが連結対象となり、部屋Ｒ５内の黒三角の付された単位領域を始点、部屋Ｒ２内の白三角の付された単位領域を終点とするクランク型の連結通路ＰＳ６が配置されている。
【０１１１】
図１３のフローに戻って、ゲーム演算部２１０は次に一繋がりになっている部屋と通路をグループとして抽出し（ステップＳ５８）、抽出されたグループが複数の場合には（ステップＳ６０のＹＥＳ）、配置されている通路並びに部屋が一体的に連結されていないと判断する。そして、抽出されたグループから最寄りの２つのグループを選択し、一方のグループに属する第１の部屋を選択し、他方のグループに属する第２の部屋を選択し（ステップＳ６２）、選択された第１の部屋と第２の部屋とを連結対象として連結通路生成処理を実行して（ステップＳ６４）、再びステップＳ５８に戻る。
【０１１２】
具体的には、例えば図４（ｂ）の例では、部屋Ｒ１と部屋Ｒ３と部屋Ｒ４とが通路で連結された第１のグループＧｒ１、部屋Ｒ２と部屋Ｒ５とが通路で連結された第２のグループＧｒ２として抽出される。グループが複数なので、各々のグループから連結対象の部屋が選択される。同図の例では、部屋Ｒ４と部屋Ｒ５が連結対象の第１の部屋及び第２の部屋として選択されたことになる。そして、先に述べた連結通路生成処理によって、連結通路ＰＳ７が設定される。
【０１１３】
一方、抽出されたグループが複数でない場合には（図１３のステップＳ６０のＮＯ）、配置されている通路並びに部屋が一体的に連結されていると判断されるので、ゲーム演算部２１０は、次に部屋集中処理を実行する（ステップＳ６６）。
【０１１４】
図１６は、本実施形態における部屋集中処理の流れを説明するためのフローチャートである。同図に示すように、部屋集中処理では先ずマップ構築可能領域２２において、同じＸ軸座標を有してＹ座標方向に直列する単位領域列毎に検索して、通路は配置されているが、通路の屈曲部又は部屋が配置されていない単位領域列を抽出する（ステップＳ７０）。そして、抽出されたＹ座標方向の単位領域列に含まれる通路の配置を削除し、該単位領域列よりＸ軸増加方向に配置されている通路及び部屋を該単位領域列の分だけ原点方向に平行移動するように再配置する（ステップＳ７２）。
【０１１５】
続いて同様にして、Ｙ軸座標を有してＸ座標方向に直列する単位領域列毎に検索して、通路は配置されているが、通路の屈曲部又は部屋が配置されていない単位領域列を抽出する（ステップＳ７４）。そして、抽出されたＸ座標方向の単位領域列に含まれる通路の配置を削除し、該単位領域列よりＹ軸増加方向に配置されている通路及び部屋を該単位領域列の分だけ原点方向に平行移動するように再配置し（ステップＳ７６）、部屋集中処理を終了する。
【０１１６】
具体的には、例えば図５（ａ）の例では、ステップＳ７０によって斜線ハッチングされたＹ軸方向に直列した単位領域列が抽出され、これらの単位領域列に設定されている通路ＰＳ１、ＰＳ３、ＰＳ７の横直線部分が削除・短縮される。そして、これらの単位領域列より図の右側に配置されている通路や部屋が連結関係をそのまま維持して図の左方向に平行移動される。この結果、図５（ｂ）に示すように、当初配置された通路や部屋のレイアウトの特徴を維持したままＸ軸方向にコンパクトな構造とすることができる。
【０１１７】
同様に、図５（ｂ）の例では、ステップＳ７４によって斜線ハッチングされたＸ軸方向に直列した単位領域列が抽出され、これらの単位領域列に設定されている通路ＰＳ２、ＰＳ４、ＰＳ５、ＰＳ６の縦直線部分が削除・短縮され、これらの単位領域列より図の下側に配置されている通路や部屋が連結関係をそのまま維持して図の上方向に平行移動される。この結果、図５（ｃ）に示すように、当初配置された通路や部屋のレイアウトの特徴を維持したままＹ軸方向にコンパクトな構造とすることができる。
【０１１８】
尚、部屋集中処理では単位領域列の分だけ原点方向に平行移動するように再配置するのではなく、抽出した単位領域ごと削除して、マップ構築可能領域２２を縮小する構成としても良いのは勿論である。
【０１１９】
部屋集中処理を終了したならばマップ自動生成処理を終了して、図１２のフローに戻る。そして、ゲーム演算部２１０は次に、マップの外形範囲を求める処理として通路又は部屋が設定されている単位領域の各軸方向の最大座標・最小座標で囲まれる長方形のトリミング枠を選択する（ステップＳ４）。そして、マップ構築可能領域２２をトリミング枠でトリミング処理し、トリミング枠の外側に当る部分を削除する（ステップＳ６）。マップデータ５３０の座標５３０ａは、削除部分の登録が抹消されるとともに、トリミングに伴って座標値を更新される。
【０１２０】
次にゲーム演算部２１０は、マップ構築可能領域２２において通路及び部屋が配置されている単位領域と、何も設定されていない空の単位領域とを異なる表示形態で示したマップ画像１８を生成し、マップ画像データ５３２に格納する（ステップＳ８）。
【０１２１】
次いで、ゲーム空間設定データ５２０及びキャラクタ初期設定データ５２２を参照して、マップ構築可能領域２２に生成されたマップに基づいて、３次元仮想空間に部屋１２や部屋１４を構成するオブジェクトを配置してゲームフィールド１０を形成するとともに、プレーヤキャラクタ６及び敵キャラクタ８のオブジェクトを配置する（ステップＳ１０）。具体的には、プレーヤキャラクタ６をランダムに選択した何れかの部屋内に配置する。そして、敵キャラクタ８のうち所謂ボスキャラクタはプレーヤキャラクタ６が配置された部屋から最も離れた部屋内に配置し、ボスキャラクタ以外の敵キャラクタについては各部屋内に所定数ランダムに配置する。このように、本実施形態では、敵キャラククタ８は部屋１４にのみに配置され、通路１２には配置されない。こうした配置の条件によって、マップ自動生成処理において、通路１２に様々なサイズの敵キャラクタ８が配置可能にするのに備えて複数単位領域に及ぶ幅を持たせる必要が無いので、ゲームフィールド１０、つまりはマップをよりコンパクトに形成するという目的を果たすのに寄与することとなる。
【０１２２】
次に、ゲーム演算部２１０はプレーヤキャラクタ６と敵キャラクタ８の動作を制御する（ステップＳ１２）。すなわち、操作入力部１００からの操作入力に応じてプレーヤキャラクタ６の動作を制御し、敵キャラクタ８の動作を自動制御する。そして、その様子を仮想カメラで撮影したゲーム空間画像を画像生成部２６０で生成し（ステップＳ１４）、更に現在のプレーヤキャラクタ６の配置位置にマーカ２０をマップ画像１８に合成してマップ画像データ５３４を更新する（ステップＳ１６）。
【０１２３】
次いで、画像生成部２６０は、マップ表示設定データ５２４を参照し、マップ表示領域１６の表示可能範囲１７内にマップ画像１８の縦横寸法比を維持して最大サイズで収めるように画像サイズを調整して先に生成されたゲーム画像に合成する（ステップＳ１８）。つまり、マップ表示領域１６に適合する所定の最大サイズとなるようにマップ画像１８を拡大又は縮小して画像サイズを調整・適正化する。そして、合成したゲーム画像を表示出力させる（ステップＳ２０）。結果、図２に示したようなゲーム画像がディスプレイ１２２２に表示される。
【０１２４】
尚、マップ画像１８の縦横寸法比を固定する構成としているが、ゲームフィールド１０との対応関係が不明にならない程度に縦横寸法比の違いを許容するとしても良いのは勿論である。また、マップ表示領域１６とマップ画像１８とが異形に分類される場合には、マップ表示領域１６の形状に応じて適合化する。具体的には、例えばマップ表示領域１６が丸型で、マップ画像１８が四角形の場合には、マップ画像１８の対角長をマップ表示領域１６の表示可能範囲１７の直径に合わせるように画像サイズを調整する。更には、四角形の画像を円板の表面にサーフェースマッピングする要領で表示可能範囲１７の丸形範囲にマッピングするとしても良い。
【０１２５】
次に、ゲーム演算部２１０は、プレーヤキャラクタ６や敵キャラク８のヒットポイントの更新、ステージクリアの判定などのゲーム結果の算出処理を行い（ステップＳ２２）、その結果のゲーム結果が所定のゲーム終了条件を満たすか否かを判定する（ステップＳ２４）。
【０１２６】
ゲーム終了条件を満たしていなければ（ステップＳ２４のＮＯ）、ステップＳ１２に戻り、ゲーム終了条件を満たしているならば（ステップＳ２４のＹＥＳ）、ゲーム終了の演出処理を行って（ステップＳ２６）、一連の処理を終了する。
【０１２７】
以上の処理によって、ゲームフィールド１０の構造情報であるマップを自動生成することで、ゲームフィールド１０を自動生成することができる。更には、自動生成されたマップを、一旦自動的に配置された部屋１４を寄せ集めるように部屋１４の配置位置を補正し、プレーヤキャラクタ６が部屋間を移動する距離の短いコンパクトなゲームフィールド１０とすることができる。したがって、プレーヤキャラクタ６を操作して通路１２を移動させる際の、単純で得てしてつまらなくなりがちなプレイ時間を削減し、ゲームプレイをスピーディにし、興奮を持続させ易くして、飽きさせない、より楽しいゲームプレイにできる。
【０１２８】
また、生成されたマップは通路や部屋の外形範囲でトリミングされているので、ゲームフィールド１０のマップ画像１８をゲーム画面４に表示する場合、限られた範囲内に無駄なくより大きく表示させることが可能になるので、マップ表示をより見易くして操作性を向上することができる。
【０１２９】
［ハードウェア構成］
次に図１７は、本実施形態における家庭用ゲーム装置１２００を実現するためのハードウェア構成の一例について説明する図である。家庭用ゲーム装置１２００は、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、画像生成ＩＣ１００８、音生成ＩＣ１０１０、Ｉ／Ｏポート１０１２，１０１４がシステムバス１０１６により相互にデータ入出力可能に接続されている。Ｉ／Ｏポート１０１２にはコントロール装置１０２２が、Ｉ／Ｏポート１０１４には通信装置１０２４が、それぞれ接続されている。
【０１３０】
ＣＰＵ１０００は、情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（装置本体の初期化情報等）、コントロール装置１０２２によって入力される信号等に従って、装置全体の制御や各種データ処理を行う。
【０１３１】
ＲＡＭ１００４は、ＣＰＵ１０００の作業領域等として用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００２内の所与の内容、ＣＰＵ１０００の演算結果等が格納される。
【０１３２】
情報記憶媒体１００６は、プログラム、画像データ、音データ、プレーデータ等が主に格納されるものであり、情報記憶媒体として、ＲＯＭ等のメモリやハードディスクや、ＣＤ−ＲＯＭ、ＤＶＤ、ＩＣカード、磁気ディスク、光ディスク等が用いられる。尚、この情報記憶媒体１００６は、ＲＯＭ１００２及びＲＡＭ１００４とともに図８に示す記憶部５００を構成する要素に含まれる。
【０１３３】
また、この装置に設けられている画像生成ＩＣ１００８と音生成ＩＣ１０１０により、音や画像の好適な出力が行えるようになっている。
【０１３４】
画像生成ＩＣ１００８は、ＣＰＵ１０００の命令によって、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６等から送られる情報に基づいて画素情報を生成する集積回路であり、生成される画像信号は、表示装置１０１８に出力される。表示装置１０１８は、ＣＲＴやＬＣＤ、ＥＬＤ、プラズマディスプレイ、或いはプロジェクター等により実現され、図８に示す画像表示部３６０に相当する。
【０１３５】
また、音生成ＩＣ１０１０は、ＣＰＵ１０００の命令によって、情報記憶媒体１００６やＲＯＭ１００２に記憶される情報、ＲＡＭ１００４に格納される音データに応じた音信号を生成する集積回路であり、生成される音信号はスピーカ１０２０によって出力される。スピーカ１０２０は、図８に示す音出力部３５０に相当するものである。
【０１３６】
コントロール装置１０２２は、プレーヤがゲームに係る操作を入力するための装置であり、その機能は、レバー、ボタン、筐体等のハードウェアにより実現される。尚、このコントロール装置１０２２は、図８に示す操作入力部１００に相当するものである。
【０１３７】
通信装置１０２４は装置内部で利用される情報を外部とやりとりするものであり、プログラムに応じた所与の情報を他の装置と送受すること等に利用される。尚、この通信装置１０２４は、図８に示す通信部３７０に相当するものである。
【０１３８】
そして、上記した処理は、図８のゲームプログラム５０２等を格納した情報記憶媒体１００６と、これらプログラムに従って動作するＣＰＵ１０００、画像生成ＩＣ１００８、音生成ＩＣ１０１０等によって実現される。ＣＰＵ１０００、画像生成ＩＣ１００８、及び音生成ＩＣ１０１０は、図８に示す処理部２００に相当するものであり、主にＣＰＵ１０００がゲーム演算部２１０、画像生成ＩＣ１００８が画像生成部２６０に、音生成ＩＣ１０１０が音生成部２５０にそれぞれ相当する。
【０１３９】
尚、画像生成ＩＣ１００８、音生成ＩＣ１０１０等で行われる処理は、ＣＰＵ１０００或いは汎用のＤＳＰ等によりソフトウェア的に行ってもよい。この場合には、ＣＰＵ１０００が、図８に示す処理部２００に相当することとなる。
【０１４０】
〔第２実施形態〕
次に本発明を適用した第２実施形態について説明する。本実施形態は基本的に第１実施形態と同様の構成を有するが、一つのゲームフィールドを一つのステージとし、ゲームクリアには所定数のステージをクリアする必要のある構成とする。また、ステージをクリアして次のステージに進む際に次のステージとなるゲームフィールドをその都度生成し、従前のステージをクリアした結果に応じて新たに生成されるゲームフィールドの構成を変化させる点が異なる。尚、第１実施形態と共通する構成要素については説明を省略して特徴的な点についてのみ述べることとし、第１実施形態と同様の構成要素については同じ符号を付与し説明は省略する。
【０１４１】
図１８は、本実施形態における部屋配置条件設定データ５２８Ｂのデータ構成例を示すデータ構成図である。同図に示すように、基本的には第１実施形態における部屋配置条件設定データ５２８と同じであるが、部屋番号５２８ａに部屋出現条件５２８ｇが対応付けられている点が異なる。部屋出現条件５２８ｇが、当該部屋をマップ構築可能領域２２に配置するための条件を定義しており、例えば既にクリアしたステージの数や、プレーヤキャラクタ６のレベル（＝プレーヤキャラクタの技能の程度を示す段階的な指標）、プレーヤキャラクタ６が倒した敵キャラクタ８の累計、プレーヤキャラクタ６の所持するアイテムの種類、プレーヤキャラクタ６のヒットポイントの値といった項目を条件とする。
【０１４２】
例えば、同図における部屋番号５２８ａが「Ｒ６」の例では、部屋配置座標可変幅５２８ｃと初期部屋サイズ５２８ｄに、既にクリアしたステージの数ＳＣＬがパラメータとして含まれている。また、部屋出現条件５２８ｇにおいても既にクリアしたステージの数ＳＣＬが含まれている。従って、部屋Ｒ６は、ステージを６つクリアして７つ目のステージで初めてマップ構築可能領域２２に配置されるようになる。そして７つ目のステージ以降、その部屋の配置座標や部屋サイズはクリアしたステージが多くなるほど大きくなる。本実施形態では第１実施形態と同様にボスキャラクタ以外の敵キャラクタは部屋内にランダムに配置されるので、部屋が大きくなるとそれだけより多くの敵キャラクタ８が部屋Ｒ６に配置され、集中攻撃されることにもなりかねない。したがって、ステージを多くクリアするほど、ステージを攻略する難易度を高める作用を生む。なお、「Ｒ６」の部屋の部屋出現条件３２８ｇには、クリアしたステージの数ＳＣＬの条件の他に、プレーヤキャラクタのレベルが１０以上の条件が設定されているため、クリアしたステージの数ＳＣＬの条件を満たさずとも、プレーヤキャラクタのレベルが１０以上となった場合に「Ｒ６」の部屋が出現することとなる。
【０１４３】
図１９は、第２実施形態における主たる処理の流れを説明するためのフローチャートである。同図に示すように、本実施形態ではステップＳ２４においてゲーム結果が所定のゲーム終了条件を満たしていない場合、ゲーム演算部２１０は更にゲーム結果から現在プレイ中のステージがクリアしたか否かを判定する（ステップＳ２８）。例えば、プレイ中のゲームフィールド１０に配置された全ての敵キャラクタ８を倒すと当該ステージをクリアしたと判定することとする。
【０１４４】
そして、ステージをクリアしていないと判定した場合には（ステップＳ２８のＮＯ）、第１実施形態と同様にステップＳ１２に戻り、ステージをクリアしたと判定した場合にはステップ２に戻ってマップ自動生成処理を実行して、次にプレイする新たなステージのゲームフィールドを作る。
【０１４５】
この結果、ステージをクリアする毎に新たな構成のゲームフィールドを楽しむことができるうえに、ステージクリアの結果に応じて新たに生成されるゲームフィールドが変化することになり、例えばプレーヤの技量に応じた難易度を反映した多様性に富んだゲームフィールドを作ることができる。
【０１４６】
〔第３実施形態〕
次に本発明を適用した第３実施形態について説明する。本実施形態は基本的に第１実施形態または第２実施形態と同様の構成を有するが、部屋のランダム配置の仕方と、部屋集中処理とが異なる。尚、第１実施形態及び第２実施形態と共通する構成要素については説明を省略して特徴的な点についてのみ述べることとし、第１実施形態及び第２実施形態と同様の構成要素については同じ符号を付与し説明は省略する。
【０１４７】
図２０は、本実施形態における部屋配置処理Ｂの流れを説明するためのフローチャートである。同図に示すように部屋配置処理Ｂでは、第１及び第２実施形態の部屋配置処理に比べるとステップＳ８４を省略し、ステップＳ９２〜Ｓ９６を追加している。具体的には、ステップＳ８４でループＡの処理対象となっている部屋の部屋配置座標をランダムに決定する代わりに、処理対象の部屋がランダム配置する部屋で有る場合（ステップＳ９０）、マップ構築可能領域２２を参照して既に通路が配置されている単位領域を一つ重合予定単位領域として選択する（ステップＳ９２）。そして、処理対象の部屋内から単位領域を一つ選択して（ステップＳ９４）、この選択された単位領域を、先に選択された重合予定単位領域に重ね合わせて処理対象の部屋を配置すると仮定して予測配置範囲を求める（ステップＳ９６）。
【０１４８】
具体的には、例えば図２１（ａ）のようにマップ構築可能領域２２に通路ＰＳ１〜ＰＳ４が配置された状態から固定配置の部屋Ｒ１及びＲ２を配置して、次いでランダム配置の部屋Ｒ３ｂ〜Ｒ５ｂを配置するとした場合、図２１（ｂ）に示すように、部屋Ｒ３ｂ〜Ｒ５ｂそれぞれについて重合予定単位領域（図中黒丸付された単位領域）が選択され、各々の部屋に含まれる単位領域からランダムに選択された単位領域の位置をそれらに合わせるようにして配置される。この結果、図２１（ｃ）に示すように、ランダム配置される部屋Ｒ３ｂ〜Ｒ５ｂは、必ず既に配置されている通路ＰＳ１〜ＰＳ４のどこかで連結するように配置されることになり、ランダム配置される部屋に関しての第１及び第２実施形態におけるマップ自動生成処理のステップＳ４８〜Ｓ５６（図１３参照）を実質的に省略することが可能になり処理負荷を軽減させることができる。そして、図２１（ｃ）の例であれば通路と部屋が一繋がりになったグループＧｒ３とＧｒ４の２つとなり、両者を結ぶ連結通路ＰＳ１２を配置すれば全ての通路と部屋が一体となったマップを少ない処理で作ることができる。このように、トータルで連結通路生成処理の実行回数を削減して処理負荷を軽減する効果もある。
【０１４９】
図２２は、本実施形態における部屋集中処理Ｂの処理の流れを説明するためのフローチャートである。同図に示すように、部屋集中処理Ｂでは先ずゲーム演算部２１０はマップ構築可能領域２２に配置されている全ての部屋についてループＣの処理を実行する。
【０１５０】
ループＣの処理では、先ず処理対象の部屋へ連結する通路毎に連結方向を判定し、（ステップＳ１３２）、判定した連結方向が同じであれば（ステップＳ１３４のＹＥＳ）、処理対象の部屋を、連結する通路の方向に１単位領域分だけ平行移動させるように配置を変更する（ステップＳ１３６）。そして、配置変更後の状態において、処理対象の部屋に既に連結している通路以外で、他の部屋又は通路と新たに隣接したか、つまり隣の単位領域に他の部屋又は通路が存在するか否かを判定する（ステップＳ１３８）。そして、否定判定の場合には（ステップＳ１３８のＮＯ）、ステップＳ１３４にもどり、肯定判定の場合には（ステップＳ１３８のＹＥＳ）、当該処理対象の部屋へのループＣの処理を終了する。
全てのマップ構築可能領域２２に配置されている全ての部屋についてループＣの処理を実行したならば、部屋集中処理Ｂを終了する。
【０１５１】
図２３は、部屋集中処理Ｂによる部屋の寄せ集めの様子を示す図である。図２３（ａ）の部屋Ｒ１ｃをループＣの処理対象とすると、部屋Ｒ１ｃに連結される通路は通路ＰＳ１ｃのみであり連結方向はＸ軸プラス方向で単一なので、部屋Ｒ１ｃはＸ軸プラス方向に１単位領域ずつ平行移動される。そして、通路ＰＳ２ｃと隣接するまで平行移動が繰り返される。また、部屋Ｒ４ｃをループＣの処理対象とすると、部屋Ｒ４ｃに連結される通路は通路ＰＳ３ｃと通路ＰＳ１２ｃの二つあるが連結方向はＸ軸プラス方向で同じなので、同様にして、部屋Ｒ４ｃはＸ軸プラス方向に１単位領域ずつ平行移動される。そして、通路ＰＳ２ｃと隣接するまで平行移動が繰り返される。
【０１５２】
この結果、図２３（ｂ）に示すように、部屋Ｒ１ｃは、その右側部が通路ＰＳ２ｃの左側部と当接する位置まで寄せられる。また、部屋Ｒ４ｃは、その右上端が通路ＰＳ２ｃの下端と当接するまで寄せられている。
【０１５３】
〔変形例〕
以上、本発明の第１〜第３実施形態について説明したが、本発明の適用形態がこれらに限定されるものではなく、発明の主旨を逸脱しない限りにおいて適宜変更を加えることができる。
【０１５４】
例えば、家庭用ゲーム装置でビデオゲームを実行する構成を例に挙げたが、業務用のゲーム装置やパソコン、携帯型ゲーム装置などでゲームを実行することもできる。
【０１５５】
また、上記実施形態ではマップ構築可能領域２２をトリミングすることで、マップ表示領域においてできるだけ大きくマップ表示できる構成としたがこれに限らない。例えば図２４は、主たる処理の流れの変形例を説明するためのフローチャートであるが、同図に示すように、上記実施形態のステップＳ１４〜Ｓ１６に代えてステップＳ１３ａ〜Ｓ１３ｄを実行し、マップ画像をトリミング処理する構成としても良い。具体的には、画像生成部２６０が、通路・部屋が配置されている単位領域と、非配置の単位領域とを異なる表示形態で描画した原マップ画像を生成し（ステップＳ１３ａ）、通路又は部屋が設定されている単位領域のＸＹ各軸方向の最大座標・最小座標で囲まれる外形範囲をトリミング枠として選択する（ステップＳ１３ｂ）。そして、原マップ画像を選択したトリミング枠でトリミング処理し、トリミング済マップ画像を生成し（ステップＳ１３ｃ）、このトリミング済マップ画像をマップ表示領域の表示可能範囲内に縦横寸法比を維持して最大サイズで収めるように画像サイズを調整してゲーム画像に合成する（ステップＳ１３ｄ）。
【０１５６】
また、上記実施形態では敵キャラクタ８のうちザコキャラクタを部屋１４にランダムに配置する構成としたが、配置する敵キャラクタ８と部屋に関連性を持たせる構成としても良い。
例えば、キャラクタ初期設定データ５２２及び部屋配置条件設定データ５２８において、敵キャラクタ８及び部屋１４のそれぞれに属性の設定を対応付けておく。属性としては、例えばＲＰＧならば「火」「水」「闇」など魔法属性に類するものや、ゲームフィールド１０を屋外とする設定ならば部屋１４を「草原」「砂漠」「沼地」など地理的属性を設定することができる。そして、図１２のステップＳ１０にて敵キャラクタ８を配置する際には、マップ構築可能領域２２に配置されている部屋１４の属性と同属性の敵キャラクタ８のみを選択して、同部屋のランダムな位置にランダム数の敵キャラクタを配置する。勿論、配置されている部屋１４の属性と異属性の敵キャラクタ８を混入配置するとすることもできる。この場合、部屋と同属性の敵キャラクタ８を多く配置するように選択すると良い。
【０１５７】
また、このように部屋１４に属性を与える場合には、図１３のステップＳ５２及びＳ５４において孤立部屋を他の部屋と連結する処理において、近傍の部屋から処理対象の孤立部屋の属性と同族性の部屋を優先的に選択して連結対象とする。これによって、ゲームフィールド１０に複数の部屋にまたがる区域の特性を与えることができるので、ゲームの世界のリアリティを高めることができる。勿論同様の考え方を、図１３のステップＳ６２及びＳ６４において適用することもできる。
【０１５８】
また更には、通路１２を、連結する部屋１４の属性に応じて該通路の属性を変える構成としても良い。
例えば、部屋１４に「草原」「砂漠」「沼地」など地理的属性を設定するならば、ゲーム空間設定データ５２０に通路１２に適用されるテクスチャとして「草原」「砂漠」「沼地」など通路の地理的属性に適したデータを予め用意しておくとともに、適用されるモデルデータも各属性別に予め用意しておく。
そして、図１２のステップＳ１０において３次元仮想空間にゲームフィールド１０を形成する際に、形成対象の通路が連結する部屋の属性を比較し、同属性である場合には該属性に対応するモデルデータとテクスチャで通路のオブジェクトを配置する。また、異属性である場合には何れか一方の属性をランダムに選択し、選択した属性に対応するモデルデータとテクスチャとで当該通路のオブジェクトを配置する。よって、例えば「沼地」属性の部屋１４を連結する通路１２は、「沼地」の様子を描いたテクスチャで「沼地」を思わせる形状の通路部として配置する。この結果、当該通路と連結された「沼地」属性の部屋１４とで「沼地」区域を作りだし、通路１２と部屋１４の視覚的な繋がり感を高めることができる。
【０１５９】
また、上記実施形態ではマップ構築可能領域２２を２次元空間としたが、３次元空間としても良いのは勿論である。
【０１６０】
また、上記実施形態では通路１２を直線又は直線部が屈曲部で連結された形態としたがこれに限るものではなく曲線を用いても良い。
【図面の簡単な説明】
【０１６１】
【図１】第１実施形態における家庭用ゲーム装置の構成例を示すシステム構成図。
【図２】第１実施形態におけるゲーム画面の例を示す図。
【図３】第１実施形態におけるゲームフィールドの自動生成の原理を説明する概念図。
【図４】図３につづくゲームフィールドの自動生成の原理を説明する概念図。
【図５】図４につづくゲームフィールドの自動生成の原理を説明する概念図。
【図６】第１実施形態における部屋の寄せ集めの原理を説明する概念図。
【図７】マップ表示領域の表示例を示す図。
【図８】第１実施形態における機能構成の一例を示す機能ブロック図。
【図９】第１実施形態における通路配置条件設定データのデータ構成例を示すデータ構成図。
【図１０】第１実施形態における部屋配置条件設定データのデータ構成例を示すデータ構成図。
【図１１】マップデータのデータ構成の一例を示す図。
【図１２】第１実施形態における主たる処理の流れを説明するためのフローチャート。
【図１３】マップ自動生成処理の流れを説明するためのフローチャート。
【図１４】部屋配置処理の流れを説明するためのフローチャート。
【図１５】連結通路生成処理の流れを説明するためのフローチャート。
【図１６】部屋集中処理の流れを説明するためのフローチャート。
【図１７】家庭用ゲーム装置を実現するためのハードウェア構成の一例について説明する図。
【図１８】第２実施形態における部屋配置条件設定データのデータ構成例を示すデータ構成図。
【図１９】第２実施形態における主たる処理の流れを説明するためのフローチャート。
【図２０】第３実施形態における部屋配置処理Ｂの流れを説明するためのフローチャート。
【図２１】第３実施形態におけるマップ自動生成過程を説明する図。
【図２２】第３実施形態における部屋集中処理Ｂの処理の流れを説明するためのフローチャート。
【図２３】部屋集中処理Ｂによる部屋の寄せ集めの様子を示す図。
【図２４】主たる処理の流れの変形例を説明するためのフローチャート。
【符号の説明】
【０１６２】
４    ゲーム画面
１６  マップ表示領域
１８  マップ画像
１００  操作入力部
２００  処理部
２１０  ゲーム演算部
２１２  マップ自動生成部
２１４  マップトリミング部
５００  記憶部
５２６  通路配置条件設定データ
５２８  部屋配置条件設定データ
５３０  マップデータ
５３４  マップ画像データ
【図１】
2008136693.tif 000003
【図２】
2008136693.tif 000004
【図３】
2008136693.tif 000005
【図４】
2008136693.tif 000006
【図５】
2008136693.tif 000007
【図６】
2008136693.tif 000008
【図７】
2008136693.tif 000009
【図８】
2008136693.tif 000010
【図９】
2008136693.tif 000011
【図１０】
2008136693.tif 000012
【図１１】
2008136693.tif 000013
【図１２】
2008136693.tif 000014
【図１３】
2008136693.tif 000015
【図１４】
2008136693.tif 000016
【図１５】
2008136693.tif 000017
【図１６】
2008136693.tif 000018
【図１７】
2008136693.tif 000019
【図１８】
2008136693.tif 000020
【図１９】
2008136693.tif 000021
【図２０】
2008136693.tif 000022
【図２１】
2008136693.tif 000023
【図２２】
2008136693.tif 000024
【図２３】
2008136693.tif 000025
【図２４】
2008136693.tif 000026