【文献】
SmokingWOLF,「WOLF RPGエディターではじめるゲーム制作」,日本,株式会社工学社,2011年12月25日,第1版第2刷,p.156-164
(58)【調査した分野】(Int.Cl.,DB名)
前記活動空間生成手段は、前記開始地点からの距離が所定の最大長になる地点まで前記活動空間を生成したときは、当該地点から前記開始地点までの間の任意の地点を分岐地点として選択し、当該分岐地点から活動空間を生成することを特徴とする請求項1記載のゲームプログラム。
前記活動空間生成手段は、所定の大きさのマップユニット単位で前記活動空間を生成するものであって、前記活動空間の中から任意の地点を選択し、当該地点から所定の方向に所定のマップユニットの数だけ前記活動空間を生成したときに前記活動空間の別の地点につながる場合は、前記地点から前記別の地点までの間に前記活動空間を生成することを特徴とする請求項1又は2記載のゲームプログラム。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について図面を用いて説明する。
【0017】
(ゲームシステム)
図1を参照して、本発明の実施の形態に係るゲームプログラムを実行するゲームシステム100を説明する。ゲームシステム100は、ゲーム機(コンピュータ)1と、外部機器であるモニタ138、外部メモリ145、スピーカ144、および記録媒体148とを備える。
【0018】
ゲーム機1は、コントローラ120、CPU(Central Processing Unit)131、RAM(Random Access Memory)132、バス133、GPU(Graphics Processing Unit)134、デコーダ137、I/Oポート139、DRV(Drive)140、SP(Sound Processor)142、増幅器143、ROM(Read Only Memory)146および通信制御部147を備える一般的なゲーム装置である。CPU131は、全体の動作を制御する。RAM132は、ゲームの進行に応じて各種のデータを記憶する。ROM146は、ゲーム機1を起動するとともに、ゲーム機1の基本的な機能を実現するためのシステムプログラムを記憶する。GPU134は、GP(Graphics Processor)136とRAM135を備えてゲーム空間及びゲーム空間内のオブジェクトを描画する。
【0019】
本発明の実施の形態において、ゲームプログラムはゲーム機1で実行される場合について説明するが、これに限られない。ゲームプログラムは、CPU、メモリなどを備えるコンピュータであればどのような装置で実行されても良い。
【0020】
本発明の実施の形態に係るゲームプログラムは、記録媒体(プログラム記憶部)148に記録される。ゲーム機1が、DRV140に挿入された記録媒体148からゲームプログラムを読み出して実行することにより、GPU134が描画したゲーム空間の画像がデコーダ137を介してモニタ138に出力されるとともに、SP142で処理された効果音や音楽が増幅器143を介してスピーカ144に出力される。記録媒体148は、DVD、CD、ハードディスクなどが考えられる。ゲーム機1が通信ネットワークに接続されている場合、記録媒体148は、通信ネットワーク上の記録媒体であっても良い。ゲーム機1が通信ネットワークに接続されている場合、通信制御部147が通信ネットワークとの通信を制御する。
【0021】
コントローラ120は無線あるいは有線でゲーム機1に接続される。プレイヤが、コントローラ120の操作ボタンやスティックなどの操作子群122を操作すると、コントローラ120のI/Oポート121によりプレイヤの操作情報がゲーム機1に出力される。CPU131は、I/Oポート139を介してプレイヤの操作情報を取得し、その操作情報に基づいて、プレイヤキャラクタ、ゲーム空間を制御する。プレイヤの操作情報は例えば、歩く、剣を構える、振り向く、アイテムを取得するなどの、プレイヤキャラクタの動作に関する指示や、メニューの操作などの、ゲームの進行に関する指示である。
【0022】
なお、ゲームは、ゲームプログラムおよびゲーム機1で構成されるゲームシステム100が、ユーザの操作に応じた処理を実行することで進行する。
【0023】
(ゲーム内容)
次に、本実施の形態におけるゲームプログラムによって提供されるゲームについて説明する。
【0024】
本ゲームは、プレイヤがプレイヤキャラクタを操作して3次元の仮想空間であるダンジョンあるいは建物内(以下まとめて「ダンジョン」とする)を探索するゲームである。
図2に、プレイヤキャラクタがダンジョンを探索しているゲーム画面の例を示す。同図に示すゲーム画面には、プレイヤキャラクタ50とダンジョン内に配置されたアイテム51が示されている。プレイヤキャラクタ50は、ダンジョン内を探索してアイテム51などを取得し、ゴールを目指す。図示していないが、ダンジョン内にはプレイヤキャラクタを攻撃してくるモンスターキャラクタが配置される。モンスターキャラクタは、プレイヤキャラクタのダンジョン探索を妨害する。
【0025】
ダンジョンは、プレイヤキャラクタがダンジョン内に入る度に自動的に生成される。ダンジョンは、平面的な広がりのみでなく、高さ方向にも移動可能な3次元的に広がる空間である。
【0026】
(ゲーム装置)
次に、本実施の形態におけるゲームプログラムをゲーム機が実行することで構成されるゲーム装置について説明する。
【0027】
図3は、本実施の形態におけるゲームプログラムによって構成されるゲーム装置の構成を示す機能ブロック図である。
図3に示すゲーム装置は、ダンジョン生成部11、ゲーム進行制御部12、描画音声処理部13、およびゲームデータ蓄積部14を備える。
【0028】
ダンジョン生成部11は、掘削部111、整地部112、テクスチャ部113、ライティング部114、およびNPC配置部115を備え、プレイヤキャラクタが行動する仮想の3次元ゲーム空間を生成する。
【0029】
掘削部111は、3次元空間内においてプレイヤキャラクタが移動可能な範囲である活動空間を生成する。活動空間は、例えば、地中を掘削して生成された迷路状のダンジョン、廊下や部屋で構成される建物内、建物や塀で囲まれた道路や広場で構成される街などである。
【0030】
整地部112は、活動空間の中のプレイヤキャラクタが移動できない段差に対して、傾斜をつけて坂道にしたり、はしごのオブジェクトを設置して移動可能にする。
【0031】
テクスチャ部113は、活動空間にテクスチャを貼る。
【0032】
ライティング部114は、活動空間に光源を設定する。
【0033】
NPC配置部115は、活動空間にノンプレイヤキャラクタ(例えばモンスターキャラクタ)やアイテムなどのオブジェクトを配置する。
【0034】
ゲーム進行制御部12は、コントローラ120で入力されたプイレヤの操作に応じてプレイヤキャラクタを制御するとともに、予め設定された処理内容でノンプレイヤキャラクタを制御し、ゲームを進行させる。
【0035】
描画音声処理部13は、ゲーム空間、プレイヤキャラクタ、ノンプレイヤキャラクタなどをレンダリングして画像を生成し、画像をモニタ138に出力するとともに、ゲームの進行に合わせて効果音、BGM、音声をスピーカ144に出力する。
【0036】
ゲームデータ蓄積部14は、ゲーム空間内に配置するオブジェクトのモデリングデータ、テクスチャデータ、効果音データ、BGMデータなどのゲームの進行に必要なデータを蓄積する。
【0037】
(ダンジョンの生成)
次に、掘削部111が活動空間を生成する処理について説明する。以下では、地中を掘削してダンジョンを生成する例について説明する。
【0038】
図4は、掘削部111が活動空間を生成する処理の流れを示すフローチャートである。
図5から
図8は、掘削部111が活動空間を広げる様子を示す平面図である。実際には、高さ方向(Y軸方向)にも活動空間は掘削(拡張)されるが、ここでは簡単のために、XZ平面のみに掘削する例で説明し、Y軸方向の掘削については後述する。
【0039】
まず、初期設定として、仮想の掘削器A,Bが開始地点Xに隣接する2箇所に配置されて、掘削器A,Bそれぞれにパラメータが設定される(ステップS11)。
図5に示す例では、掘削部111は、掘削器Aを開始地点Xの−X側(左側)に配置し、掘削器Bを+X側(右側)に配置した。掘削器A,Bには表1に示すパラメータが設定された。
【0040】
【表1】
表1は、掘削器A,Bのそれぞれが掘削する方向の割合を示す掘削分布パラメータである。掘削分布パラメータの数値が大きい方向は、より大きい割合で掘削器A,Bが掘削する方向である。活動空間は、掘削器A,Bが進んだ方向に拡張される。表1に示した掘削分布パラメータでは、掘削器Aについては+X方向に0が設定されているので+X方向には掘削しない。掘削器Bについては−X方向に0が設定されているので−X方向には掘削しない。したがって、掘削器Aは開始地点Xから左側に進み、掘削器Bは開始地点Xから右側に進む。掘削器A,BのZ方向に設定された値はX方向に設定された値に比べて小さいので、横長の活動空間が生成される。
【0041】
掘削器A,Bは、設定された掘削分布パラメータに基いてそれぞれ別々の方向にランダムに掘削し、活動空間を拡張する(ステップS12)。
図6(a)では掘削器Aは−X方向に掘削し、掘削器Bは+Z方向に掘削した。続く
図6(b)では掘削器Aは−X方向に掘削し、掘削器Bは+X方向に掘削した。掘削器A,Bは、XZ方向については予め設定された1マップユニット単位で掘削する。本実施例では、プレイヤキャラクタの高さを1.75mとして、XZ平面の掘削単位である1マップユニットの大きさを5m×5mの大きさとした。掘削器A,Bそれぞれが掘削したダンジョンは開始地点X以外では互いに連結しないものとする。ダンジョンの設定によっては、掘削器A,Bそれぞれが掘削したダンジョンを開始地点X以外で連結させてもよい。
【0042】
掘削器A,Bが1マップユニット掘削するごとに、生成されたダンジョンが所望の大きさになったか否かを判定する(ステップS13)。初期設定で生成するダンジョンの大きさを決めておく(例えば300マップユニット)。掘削器A,Bが掘削したマップユニットの数が予め決められた値以上になった場合は、ダンジョンが所望の大きさになったと判定する。ダンジョンが所望の大きさになった場合は(ステップS13のYES)、掘削処理を終了する。
【0043】
掘削器A,Bが1マップユニット掘削するごとに、開始地点Xから掘削器A,Bまでの距離が予め設定した最大値に達したか否かを判定する(ステップS14)。開始地点Xから掘削器A,Bまでの距離は、開始地点Xを0番目として、掘削器A,Bまでのマップユニットの数をカウントして求める。
図7の例では、掘削器A,Bのいずれも10マップユニット離れている。
【0044】
開始地点Xから掘削器A,Bまでの距離が最大値に達していない場合(ステップS14のNO)、ステップS12に戻り、ダンジョンの掘削を続ける。
【0045】
開始地点Xから掘削器A,Bまでの距離が最大値に達した場合(ステップS14のYES)、掘削器A,Bをいままで掘削したマップユニットに沿ってダンジョンの分岐場所まで戻す(ステップS15)。例えば、最大値を10マップユニットと設定していた場合、
図7の例では、いずれの掘削器A,Bも開始地点Xからの距離が最大値に達している。そこで、掘削器A,Bをいままで掘削したマップユニットに沿って分岐場所まで戻す。
図8の例では、掘削器Aは開始地点Xから7番目のマップユニットまで戻され、掘削器Bは開始地点Xから6番目のマップユニットまで戻された。掘削器A,Bを戻すマップユニット数を予め決めておいてもよいし、最初の曲がり角まで戻す、あるいは直線が続くところまで戻すなどの条件を決めてもよい。
【0046】
分岐場所まで戻された掘削器A,Bは、ステップS12に戻り、分岐場所から新たに掘削を開始する。
図8の矢印で示すように、掘削器A,Bは分岐場所から新たに掘削を進める。そして、ステップS12〜S14の処理を繰り返し、所望の大きさのダンジョンを生成する。
【0047】
図9に掘削が終わったダンジョンの平面図を示す。ダンジョンの掘削が終了すると、掘削器A,Bが掘削した領域それぞれからスタートとゴールを配置するマップユニットを選択する。掘削器Aが掘削した領域のマップユニットからスタートSを選んだ場合は、掘削器Bが掘削した領域のマップユニットからゴールGを選ぶ。掘削器Bが掘削した領域のマップユニットからスタートS’を選んだ場合は、掘削器Aが掘削した領域のマップユニットからゴールG’を選ぶ。スタートとゴールのマップユニットは、掘削開始地点Xからそれぞれ所定の距離(例えば7マップユニット)以上離れたマップユニットから選ぶ。あるいはスタートとゴールを行き止まりのマップユニットの中から選んでもよい。これにより、スタートSからゴールGまでの道のりは、必ず開始地点Xを通り、所定の距離以上となる。開始地点Xに重要なNPCやアイテムなどを配置することで、プレイヤキャラクタは重要なNPCやアイテムに必ず接触することとなる。さらに、複数プレイヤが同一ダンジョンでプレイする場合、一方のプレイヤにスタートS、ゴールGを設定し、他方のプレイヤにスタートS’、ゴールG’を設定することで、開始地点Xでプレイヤが互いにすれ違うことを期待できる。1つのゴールに対して複数のスタートを設定してもよいし、1つのスタートに対して複数のゴールを設定してもよい。
【0048】
本ダンジョン生成方法では、掘削器A,Bの初期配置および掘削分布パラメータを変更することで、ある程度の意図を反映したダンジョンを生成することが可能となる。例えば、上記の掘削分布パラメータの掘削器Aの−Y方向を0、掘削器Bの+Y方向を0にすることで、掘削器Aは左上方向に掘削し、掘削器Bは右下方向に掘削する。その結果、左から右にかけて下に潜るダンジョンを生成することができる。別の例としては、掘削器A,Bを開始地点Xの−Y側(下側)と+Y側(上側)に配置し、掘削分布パラメータの−Y方向、+Y方向の値を大きくすることで、高さ方向に広がる縦長のダンジョンを生成することができる。また、掘削器A,Bそれぞれが掘削するダンジョンの大きさが異なってもよい。例えば、掘削器Aが掘削するダンジョンの大きさと掘削器Bが掘削するダンジョンの大きさを2:1にする。さらに、開始地点Xから掘削器A,Bまでの距離の最大値が異なってもよい。
【0049】
上記では、2つの掘削器A,Bにより別々の方向に同時に掘削した例を説明したが、2方向同時に掘削しなくても、開始地点Xから別々の方向に一方向ずつ順番に掘削してもよい。具体的には、開始地点Xの右側方向に所望のダンジョンの大きさの半分を掘削した後、開始地点Xの左側方向に残りの大きさを掘削する。また、開始地点Xからの掘削方向は2方向に限らず、3方向以上であってもよい。
【0050】
(ダンジョン内の部屋)
次に、ダンジョン内の部屋の掘削について説明する。
【0051】
ダンジョン内には通路よりも広い空間の部屋を作成する。
図10に、通路の途中に2×2マップユニットの部屋を掘削した例を示す。本実施例では、部屋を大きい通路として作成する。具体的には、
図4のステップS12の掘削する処理において、掘削する部屋の大きさを決め、通路の代わりに部屋を掘削した場合に所定の条件を満たすか否かを判定し、所定の条件を満たす場合は部屋(大きい通路)を掘削する。所定の条件には、ダンジョンの大きさ、ダンジョンの大きさに対する部屋の割合(例えば30%)がある。掘削する部屋の大きさは、予め設定した部屋の最小サイズ(例えば2×2マップユニット)以上となるように決定する。
【0052】
ここで、具体的な数値を例に、部屋の掘削について説明する。部屋の割合を30%、掘削する部屋の大きさを2×2マップユニットとする。これまでに7マップユニット分の通路が掘削されていた場合、次の掘削で2×2マップユニットの部屋を掘削すると、ダンジョンの大きさは7+2×2=11マップユニットとなり、部屋の割合は2×2÷11=0.36となる。その結果、部屋の割合が設定値の30%を超えるので、部屋を掘削せずに通路を掘削する。8マップユニット分の通路が掘削されていた場合は、ダンジョンの大きさは8+2×2=12マップユニット、部屋の割合は2×2÷12=0.3となり、部屋の割合が設定値の30%を満たすので、2×2マップユニットの部屋を掘削する。
【0053】
(環状の通路)
次に、環状の通路の生成について説明する。
【0054】
本実施例では、掘削部111が設定に従って意図的にダンジョン内に環状の通路を作成する。掘削部111は、所望の大きさのダンジョンを生成後、任意のマップユニットを環状の通路の開始地点とし、その開始地点からいずれかの方向に所定のマップユニット数を掘削したときに別のマップユニットにつながる場合、その箇所に環状の通路を形成する。
【0055】
図11に、環状の通路を形成する例を示す。
図11(a)は環状の通路の形成前、
図11(b)は環状の通路の形成後を示す。
図11では、マップユニットCを環状の通路の開始地点とし、マップユニットCから右側に3マップユニット掘削して環状の通路を形成した。
【0056】
続いて、環状の通路を生成する処理の流れについて説明する。
図12は、環状の通路を生成する処理の流れを示すフローチャートである。まず、掘削部111は、環状の通路の開始地点となるマップユニットを選択する(ステップS21)。本実施例では、行き止まりのマップユニットを開始地点として選択する。曲がり角のマップユニットや直線途中のマップユニットを開始地点として選択してもよい。
【0057】
掘削部111は、開始地点から掘削していない方向を1つ選び、その方向に所定のマップユニットの数だけ掘削した場合に環状の通路ができるか否かを判定する(ステップS22)。所定のマップユニットの数は、初期値として設定される。掘削部111は、ステップS22で選んだ方向で環状の通路ができない場合は別の方向を選択し、すべての方向で環状の通路ができない場合はステップS21に戻り、別のマップユニットを環状の通路の開始地点として選択する(ステップS23)。
【0058】
例えば、
図13の平面図において、マップユニットCを開始地点として選択したときは、3つの方向61A,61B,61Cについて順番に環状の通路ができるか否かを判定する。
図13の方向61Aでは、1マップユニット目で別のマップユニットDにつながったので、環状の通路ができないと判定する。1マップユニット目で別のマップユニットにつながる場合は、環状の通路ではなくて部屋となる。
図13の方向61Bでは、所定のマップユニットの数(3マップユニット)を掘削しても別のマップユニットにつながらないので、環状の通路ができないと判定する。
図13の方向61Cでは、所定のマップユニットの数を掘削して別のマップユニットEにつながるので、環状の通路ができると判定する。
【0059】
選択したマップユニットで環状の通路ができる場合(ステップS22のYES)、掘削部111は、その方向へ掘削して活動空間を拡張し、環状の通路を生成する(ステップS24)。
【0060】
以上の処理により環状の通路が生成される。上記の処理を繰り返すことで、複数の地点に環状の通路を形成できる。生成する環状の通路の数は初期値として設定される。
【0061】
(高さ方向の掘削)
次に、高さ方向(Y軸方向)への掘削について説明する。
【0062】
上記では、簡単のために、掘削部111がXZ平面方向に1マップユニット単位で活動空間を拡張して平面的なダンジョンを生成する例で説明した。プレイヤキャラクタが高さを持ち、3次元空間内で活動する場合、掘削部111は、
図14に示す直方体(幅(X方向)×奥行(Z方向)×高さ(Y方向)=5m×5m×5.25m)を活動空間の拡張の単位とする。つまり、掘削器A,BがXZ平面上を1マップユニット移動すると、
図14の直方体の大きさ分ダンジョンが掘削されて、活動空間が拡張される。
【0063】
高さ方向(Y軸方向)への拡張については、掘削部111は、X方向、Z方向へ1マップユニット分活動空間を拡張する距離(5m)よりも短い距離(1.75m)で活動空間を拡張する。つまり、掘削器A,BがY方向へ掘削するときには、活動空間はY方向に直方体の3分の1の大きさだけ拡張される。
図15に、下方向に掘削したダンジョンの断面図を示す。同図に示すように、高さ方向については、掘削器A,Bは直方体の3分の1の体積分を掘削する。
【0064】
整地部112は、高さ方向に掘削してできた段差に対して、ハシゴをかける処理(
図16)、あるいは坂道にする処理(
図17)を施す。本実施例では、2段分(1.75m×2)以上の段差にはハシゴをかけ、1段分の段差は坂道とした。坂道の代わりに階段を設置してもよい。2段分以上の段差にはハシゴの代わりにロープやエレベータなどの昇降手段を設置してもよい。
【0065】
段差を坂道とする場合、整地部112は、
図18(a),(b)に示す坂道パーツを段差の箇所に設置する。
図18(a)の坂道パーツは、1段分の段差を埋める坂道パーツである。
図18(b)の坂道パーツは、
図18(a)の両側(三角形の面)に隣接して設置可能な坂道パーツである。
【0066】
段差が2段分以上であっても、通路が段差から2マップユニット以上真っ直ぐに続く場合、整地部112は、通路を削り、坂道を形成する。具体的には、2段分の段差があり、段差の上段に2マップユニットの通路がある場合(
図19(a))、整地部112は、斜線部の段差を削って1段ずつの段差とし(
図19(b))、各段差に坂道パースを設置する(
図19(c))。2段分以上の段差の下段に2マップユニット以上の通路が続く場合、整地部112は、段差を埋めて1段ずつの段差として、坂道パーツを設置してもよい。
【0067】
段差を坂道に加工することにより、ダンジョン内のハシゴの数を減らすことができ、プレイヤキャラクタがスムースに移動することが可能となる。段差を坂道の代わりに階段に加工しても同様の効果が得られる。
【0068】
(特徴のある通路)
次に、通路を特徴付ける処理について説明する。
【0069】
行き止まりやT字路にプレイヤキャラクタの行動に影響しない空間を形成することで、ダンジョン内の通路に特徴が与えられて、プレイヤは地形を覚えやすくなる。
【0070】
図20(a)は、通常の行き止まりにプレイヤキャラクタがいるときのゲーム画面の例を示す。
図20(b)は、上部に空間を形成した行き止まりにプレイヤキャラクタがいるときのゲーム画面の例を示す。掘削部111は直方体を単位として活動空間を拡張するので、いずれの行き止まりの形状も
図20(a)に示すように同じになる。本実施例では、
図20(b)に示すように、整地部112が、行き止まりの上部に空間52を形成して、行き止まりそれぞれを異なる形状にする。以下では、通路の上部に空間を形成する例と、通路の脇に崖を形成する例について説明する。
【0071】
まず、通路の上部に空間を形成する例について説明する。
【0072】
図21(a)は、上部に空間を形成した行き止まりのXZ平面図を示す。
図21(b)は、上部に空間を形成した行き止まりのXY断面図を示す。空間の大きさは、3×3マップユニット(直方体を9つ分)の大きさとする。空間の位置は、3×3マップユニットのいずれかのマップユニットがマップユニットHの上部の3分の1を含む位置とする。空間は、XY平面に関しては、マップユニットHの床から直方体の高さの3分の2の位置に存在する。プレイヤキャラクタの高さは直方体の高さの3分の1程度であるので、マップユニットHの床から3分の2の高さに形成した空間にプレイヤキャラクタは入ることができない。XZ平面の空間の位置に関しては、3×3の空間がマップユニットHを含むようにランダムに決定する。つまり、空間は、マップユニットHの床から直方体の高さの3分の2の位置で、XZ平面に関して、マップユニットHを中心した5×5マップユニット内のランダムな位置に3×3マップユニットの大きさで形成される。行き止まりごとにランダムな位置に空間を形成することで、行き止まりそれぞれが異なる形状となる。空間内にライトなどのオブジェクトを配置して見栄えに変化を付けてもよい。行き止まりだけでなく、T字路および部屋の隅の上部にも同様に空間を形成してもよい。
【0073】
続いて、通路の脇に崖を形成する例について説明する。
【0074】
図22に示す例では、T字路の分かれた先のマップユニットJ,Kのうち、一方のマップユニットKの脇(隣接するマップユニット)に崖を形成した。その崖が目印となり、プレイヤは地形を覚えやすくなる。
【0075】
図22(a)は、崖を形成したT字路のXZ平面図を示す。
図22(b)は、崖を形成したT字路のXY断面図を示す。崖は1マップユニット分の深さとする。崖のマップユニットは、通常の壁のマップユニットと同様に、プレイヤキャラクタの侵入を不可とするので、プレイヤキャラクタが崖から落ちることはない。
【0076】
崖を形成する位置の決め方は、まず、T字路の分かれた先のマップユニットJ,Kのうちのどちらかを基準となるマップユニットとして選択する。続いて、XZ平面に関して、基準となるマップユニットを含む3×3マップユニットをランダムに決定する。3×3マップユニットのうち、通路でも部屋でもないマップユニット(壁のマップユニット)とその下のマップユニットを掘削して崖として形成する。
図22の例では、マップユニットKを基準とし、マップユニットKを左上に含む3×3マップユニットがランダムに決定されて、その3×3マップユニットの内の通路でない6マップユニット(マップユニットKの右側の6マップユニット)に崖を形成した。
【0077】
なお、空間や崖を形成する数や空間や崖の大きさは初期値としてパラメータにより設定する。
【0078】
(ダンジョン形成後の処理)
掘削部111及び整地部112によりダンジョンの形が作られた後、テクスチャ部113、ライティング部114がダンジョン内の雰囲気を決定し、NPC配置部115がゲームの進行に必要なNPC、アイテムなどをダンジョン内に配置する。
【0079】
テクスチャ部113は、必要であれば壁面や天井に起伏のあるモデリングデータを適用したうえで、岩などのテクスチャを貼る。ダンジョンが建物の場合は、壁紙を張ったり、天井をアーチ状などの建物にあった形状に加工したうえで天井のテクスチャを貼る。テクスチャ部113は、部屋などの広い空間に、柱、泉などのオブジェクトを配置してもよい。
【0080】
ライティング部114は、光源が配置可能な床、天井、あるいは柱が存在するマップユニットの中からランダムにマップユニットを選択して光源を配置する。
【0081】
NPC配置部115は、平らな床のマップユニットで、曲がり角あるいは行き止まりのマップユニットの中からランダムにマップユニットを選択し、選択したマップユニットにモンスターキャラクタを配置する。NPC配置部115は、開発者の意図を反映してアイテムなどを配置する。具体的には、NPC配置部115はゲーム進行に必ず必要なものを開始地点Xに配置する。あるいは、NPC配置部115はレアなアイテム、装備をスタートS、ゴールGから離れた位置に配置する。
【0082】
以上説明したように、本実施の形態によれば、掘削部111が仮想ゲーム空間内の開始地点Xから別々の2方向に掘削分布パラメータに基いてダンジョンを拡張し、別々の2方向に拡張した領域からスタートSとゴールGをそれぞれ選択することで、開始地点Xを必ず通るスタートSとゴールGまでの道のりを形成することが可能となる。また、掘削分布パラメータで拡張する方向を指定することで、ダンジョン全体の形状を大まかに指定するもことが可能となる。
【0083】
本実施の形態では、掘削部111が、環状の通路の開始地点を選択し、開始地点からいずれかの方向に所定のマップユニットの数だけ掘削した場合に環状の通路ができるときは、その位置に環状の通路を生成することで、意図的に環状の通路を生成することが可能となる。
【0084】
本実施の形態によれば、プレイヤキャラクタの背丈程度の段差を坂道に加工することにより、ダンジョン内のハシゴの数を減らし、プレイヤキャラクタがダンジョン内をスムースに移動することが可能となる。
【0085】
本実施の形態によれば、行き止まりやT字路の上部に空間を形成したり、崖を形成することで、空間や崖が目印となり、プレイヤは地形を覚えやすくなる。