(57)【要約】【課題】キャラクター同士の対戦においてキャラクターの位置によって有利・不利が偏り過ぎないように調整する。【解決手段】仮想空間には第１キャラクターと第２キャラクターと障害物が配置される。ゲーム装置２００において、判定部２０１は第１キャラクターからの攻撃が第２キャラクターに命中したか否かを判定する。記憶部２０２は命中した攻撃に対応する命中情報を記憶する。命中情報は命中した攻撃の出発位置と到達位置とを対応付ける情報である。分類部２０３は記憶された複数の命中情報の類似度に基づいてクラスター分析を行い、複数のクラスターに分類する。取得部２０４は分類された複数のクラスターの中からいずれか１つを選択し、選択したクラスターのセントロイドで指定される出発位置と到達位置を取得する。配置部２０５は取得した出発位置と到達位置との間に新たな障害物を配置する。【選択図】図２
2010213846.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間内において複数のキャラクターが対戦するゲームを実現するゲーム装置であって、
前記複数のキャラクターのうち、第１キャラクターから発せられた攻撃が前記障害物に遮られずに第２キャラクターに命中したか否かを判定する判定部と、
前記命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を記憶する記憶部と、
前記記憶された命中情報をクラスター分析して複数のクラスターに分類する分類部と、
前記複数のクラスターから所定個数のクラスターを選択し、当該選択されたクラスターのそれぞれのセントロイドに指定される出発位置と到達位置とを取得する取得部と、
前記仮想空間内において、前記取得された出発位置から前記取得された到達位置までの間に障害物を配置する配置部と、
を備えることを特徴とするゲーム装置。
【請求項２】
仮想空間内において複数のキャラクターが対戦するゲームを実現するゲーム装置であって、
前記複数のキャラクターのうち、第１キャラクターから発せられた攻撃が前記障害物に遮られずに第２キャラクターに命中したか否かを判定する判定部と、
前記命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を複数記憶する記憶部と、
前記記憶された命中情報に指定される到達位置のそれぞれについて、当該到達位置から第１の所定距離範囲内の他の到達位置の数（以下「第１の数」という。）を求め、当該第１の数に基づいて、当該複数の到達位置を複数のクラスター（以下「第１クラスター」という。）に分類し、当該分類された複数の第１クラスターの中から少なくとも１つの第１クラスターを選択し、当該選択した第１クラスターの中心に対応する到達位置を取得する第１の分類取得部と、
前記取得された第１クラスターに含まれる複数の到達位置に対応付けられる出発位置のそれぞれについて、当該出発位置から第２の所定距離範囲内の他の出発位置の数（以下「第２の数」という。）を求め、当該第２の数に基づいて、当該複数の出発位置を複数のクラスター（以下「第２クラスター」という。）に分類し、当該分類された複数の第２クラスターの中から少なくとも１つの第２クラスターを選択し、当該選択した第２クラスターの中心に対応する出発位置を取得する第２の分類取得部と、
前記仮想空間内において、前記取得された第１クラスターに対応する出発位置から、前記取得された第２クラスターに対応する到達位置までの間に、障害物を配置する配置部と、
を備えることを特徴とするゲーム装置。
【請求項３】
請求項１に記載のゲーム装置であって、
前記取得部は、前記複数のクラスターのそれぞれについて、当該クラスターに含まれる命中情報の個数に基づいてクラスターを選択する、
ことを特徴とするゲーム装置。
【請求項４】
請求項１に記載のゲーム装置であって、
前記記憶部は、前記命中しなかったと判定された攻撃を発したキャラクターの位置を出発位置として指定する失敗情報を更に記憶し、
前記取得部は、前記複数のクラスターのそれぞれについて、当該クラスターに含まれる命中情報の個数と、当該命中情報に指定される出発位置が含まれる領域（以下「出発領域」という。）に含まれる位置を出発点として指定する失敗情報の個数と、に基づいて、クラスターを選択する、
ことを特徴とするゲーム装置。
【請求項５】
請求項１に記載のゲーム装置であって、
前記記憶部は、前記命中しなかったと判定された攻撃を発したキャラクターの位置を出発位置として指定する失敗情報を更に記憶し、
前記取得部は、前記複数のクラスターのそれぞれについて、当該クラスターに含まれる命中情報に指定される出発位置が含まれる領域（以下「出発領域」という。）と、当該命中情報に指定される到達位置が含まれる領域（以下「到達領域」という。）と、を取得し、前記記憶された失敗情報のうち、当該失敗情報に指定される出発位置から当該失敗情報に指定される到達位置への向きが、当該出発領域から当該到達領域への向きと実質的に同じであり、且つ、当該失敗情報に指定される出発位置が当該出発領域に含まれる、失敗情報の個数と、当該クラスターに含まれる命中情報の個数と、に基づいて、クラスターを選択する、
ことを特徴とするゲーム装置。
【請求項６】
請求項１乃至５のいずれか１項に記載のゲーム装置であって、
前記配置部は、前記障害物の個数が所定の閾値を超えると、当該障害物のうち、配置されてからの期間が長い障害物から消去する、
ことを特徴とするゲーム装置。
【請求項７】
請求項１乃至５のいずれか１項に記載のゲーム装置であって、
前記配置部は、更に、前記仮想空間に既に配置した障害物のうち、前記取得された出発位置又は前記取得された到達位置から最も離れている障害物を消去する、
ことを特徴とするゲーム装置。
【請求項８】
仮想空間内において複数のキャラクターが対戦するゲームを実現するゲームシステムであって、
前記ゲームシステムには、複数のゲーム装置が含まれ、
前記複数のゲーム装置のうち一のゲーム装置（以下「第１のゲーム装置」という。）は、
前記複数のキャラクターのうち、第１キャラクターから発せられた攻撃が前記障害物に遮られずに第２キャラクターに命中したか否かを判定する判定部と、
前記命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を記憶する記憶部と、
前記記憶された命中情報をクラスター分析して複数のクラスターに分類する分類部と、
前記複数のクラスターから所定個数のクラスターを選択し、当該選択されたクラスターのそれぞれのセントロイドに指定される出発位置と到達位置とを取得する取得部と、
前記仮想空間内において、前記取得された出発位置から前記取得された到達位置までの間に障害物を配置する第１の配置部と、
前記配置された障害物を指定する情報を、前記複数のゲーム装置のうち他の一のゲーム装置（以下「第２のゲーム装置」という。）に送信する送信部と、
を備え、
前記第２のゲーム装置は、
前記第１のゲーム装置から前記障害物を指定する情報を受信する受信部と、
前記受信した障害物を指定する情報に基づいて、仮想空間内に障害物を配置する第２の配置部と、
を備えることを特徴とするゲームシステム。
【請求項９】
仮想空間内において複数のキャラクターが対戦するゲームを実現するゲームシステムであって、
前記ゲームシステムには、複数のゲーム装置が含まれ、
前記複数のゲーム装置のうち一のゲーム装置（以下「第１のゲーム装置」という。）は、
前記複数のキャラクターのうち、第１キャラクターから発せられた攻撃が前記障害物に遮られずに第２キャラクターに命中したか否かを判定する判定部と、
前記命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を複数記憶する記憶部と、
前記記憶された命中情報に指定される到達位置のそれぞれについて、当該到達位置から第１の所定距離範囲内の他の到達位置の数（以下「第１の数」という。）を求め、当該第１の数に基づいて、当該複数の到達位置を複数のクラスター（以下「第１クラスター」という。）に分類し、当該分類された複数の第１クラスターの中から少なくとも１つの第１クラスターを選択し、当該選択した第１クラスターの中心に対応する到達位置を取得する第１の分類取得部と、
前記取得された第１クラスターに含まれる複数の到達位置に対応付けられる出発位置のそれぞれについて、当該出発位置から第２の所定距離範囲内の他の出発位置の数（以下「第２の数」という。）を求め、当該第２の数に基づいて、当該複数の出発位置を複数のクラスター（以下「第２クラスター」という。）に分類し、当該分類された複数の第２クラスターの中から少なくとも１つの第２クラスターを選択し、当該選択した第２クラスターの中心に対応する出発位置を取得する第２の分類取得部と、
前記仮想空間内において、前記取得された第１クラスターに対応する出発位置から、前記取得された第２クラスターに対応する到達位置までの間に、障害物を配置する第１の配置部と、
前記配置された障害物を指定する情報を、前記複数のゲーム装置のうち他の一のゲーム装置（以下「第２のゲーム装置」という。）に送信する送信部と、
を備え、
前記第２のゲーム装置は、
前記第１のゲーム装置から前記障害物を指定する情報を受信する受信部と、
前記受信した障害物を指定する情報に基づいて、仮想空間内に障害物を配置する第２の配置部と、
を備えることを特徴とするゲームシステム。
【請求項１０】
請求項８又は９に記載のゲームシステムであって、
前記第１の配置部は、前記仮想空間に既に配置した障害物のうちのいずれかを消去し、
前記送信部は、前記消去される障害物を指定する情報を前記第２のゲーム装置に送信し、
前記受信部は、前記消去される障害物を指定する情報を前記第１のゲーム装置から受信し、
前記第２の配置部は、前記受信した消去される障害物を指定する情報に基づいて、前記仮想空間から障害物を消去する、
ことを特徴とするゲームシステム。
【請求項１１】
仮想空間内において複数のキャラクターが対戦するゲームを実現し、判定部、記憶部、分類部、取得部、配置部を有するゲーム装置にて実行されるゲーム処理方法であって、
前記判定部が、前記複数のキャラクターのうち、第１キャラクターから発せられた攻撃が前記障害物に遮られずに第２キャラクターに命中したか否かを判定する判定ステップと、
前記記憶部が、前記命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を記憶する記憶ステップと、
前記分類部が、前記記憶された命中情報をクラスター分析して複数のクラスターに分類する分類ステップと、
前記取得部が、前記複数のクラスターから所定個数のクラスターを選択し、当該選択されたクラスターのそれぞれのセントロイドに指定される出発位置と到達位置とを取得する取得ステップと、
前記配置部が、前記仮想空間内において、前記取得された出発位置から前記取得された到達位置までの間に障害物を配置する配置ステップと、
を備えることを特徴とするゲーム処理方法。
【請求項１２】
仮想空間内において複数のキャラクターが対戦するゲームを実現し、判定部、記憶部、第１の分類取得部、第２の分類取得部、配置部を有するゲーム装置にて実行されるゲーム処理方法であって、
前記判定部が、前記複数のキャラクターのうち、第１キャラクターから発せられた攻撃が前記障害物に遮られずに第２キャラクターに命中したか否かを判定する判定ステップと、
前記記憶部が、前記命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を、複数記憶する記憶ステップと、
前記第１の分類取得部が、前記記憶された命中情報に指定される到達位置のそれぞれについて、当該到達位置から第１の所定距離範囲内の他の到達位置の数（以下「第１の数」という。）を求め、当該第１の数に基づいて、当該複数の到達位置を複数のクラスター（以下「第１クラスター」という。）に分類し、当該分類された複数の第１クラスターの中から少なくとも１つの第１クラスターを選択し、当該選択した第１クラスターの中心に対応する到達位置を取得する第１の分類取得ステップと、
前記第２の分類取得部が、前記取得された第１クラスターに含まれる複数の到達位置に対応付けられる出発位置のそれぞれについて、当該出発位置から第２の所定距離範囲内の他の出発位置の数（以下「第２の数」という。）を求め、当該第２の数に基づいて、当該複数の出発位置を複数のクラスター（以下「第２クラスター」という。）に分類し、当該分類された複数の第２クラスターの中から少なくとも１つの第２クラスターを選択し、当該選択した第２クラスターの中心に対応する出発位置を取得する第２の分類取得ステップと、
前記配置部が、前記仮想空間内において、前記取得された第１クラスターに対応する出発位置から、前記取得された第２クラスターに対応する到達位置までの間に、障害物を配置する配置ステップと、
を備えることを特徴とするゲーム処理方法。
【請求項１３】
仮想空間内において複数のキャラクターが対戦するゲームを実現するコンピュータを、
前記複数のキャラクターのうち、第１キャラクターから発せられた攻撃が前記障害物に遮られずに第２キャラクターに命中したか否かを判定する判定部、
前記命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を記憶する記憶部、
前記記憶された命中情報をクラスター分析して複数のクラスターに分類する分類部、
前記複数のクラスターから所定個数のクラスターを選択し、当該選択されたクラスターのそれぞれのセントロイドに指定される出発位置と到達位置とを取得する取得部、
前記仮想空間内において、前記取得された出発位置から前記取得された到達位置までの間に障害物を配置する配置部、
として機能させることを特徴とするプログラム。
【請求項１４】
仮想空間内において複数のキャラクターが対戦するゲームを実現するコンピュータを、
前記複数のキャラクターのうち、第１キャラクターから発せられた攻撃が前記障害物に遮られずに第２キャラクターに命中したか否かを判定する判定部、
前記命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を複数記憶する記憶部、
前記記憶された命中情報に指定される到達位置のそれぞれについて、当該到達位置から第１の所定距離範囲内の他の到達位置の数（以下「第１の数」という。）を求め、当該第１の数に基づいて、当該複数の到達位置を複数のクラスター（以下「第１クラスター」という。）に分類し、当該分類された複数の第１クラスターの中から少なくとも１つの第１クラスターを選択し、当該選択した第１クラスターの中心に対応する到達位置を取得する第１の分類取得部、
前記取得された第１クラスターに含まれる複数の到達位置に対応付けられる出発位置のそれぞれについて、当該出発位置から第２の所定距離範囲内の他の出発位置の数（以下「第２の数」という。）を求め、当該第２の数に基づいて、当該複数の出発位置を複数のクラスター（以下「第２クラスター」という。）に分類し、当該分類された複数の第２クラスターの中から少なくとも１つの第２クラスターを選択し、当該選択した第２クラスターの中心に対応する出発位置を取得する第２の分類取得部、
前記仮想空間内において、前記取得された第１クラスターに対応する出発位置から、前記取得された第２クラスターに対応する到達位置までの間に、障害物を配置する配置部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャラクター同士の対戦において、キャラクターの位置によって有利・不利が偏り過ぎないように調整するために好適なゲーム装置、ゲーム処理方法、ゲームシステム、ならびに、プログラムに関する。
【背景技術】
【０００２】
プレイヤーが仮想空間内のキャラクターオブジェクト（以下「キャラクター」という。）を操作してキャラクター同士を戦わせる対戦ゲームがある。仮想空間には、プレイヤーが操作するキャラクターのほか、攻撃の妨げとなり得る障害物などのオブジェクトが配置される。仮想空間内の様々なオブジェクトのレイアウトのことを一般にはマップと呼ぶ。
【０００３】
例えば銃やミサイル等を打ち合う対戦ゲームにおいて、一方のキャラクターが他方のキャラクターを攻撃し、その攻撃が命中すると、攻撃をした側が勝者となり、攻撃をされた側が敗者となる。対戦ゲームでは、一方のキャラクターが他方のキャラクターよりも攻撃を成功させやすいエリア（あるいは攻撃を受けやすいエリア）が偏ってしまい、局所的にゲームが難しかったり易しかったりしてゲームバランスが崩れてしまうことがある。特許文献１には、敵キャラクターを出現させる位置を調整することにより、ゲームが難しすぎたり易しすぎたりすることがないようにするゲーム装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４０９４６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、対戦ゲームにおけるマップは、ゲーム制作者がストーリーや様々なゲーム状況を予め考えた上で決定されるのが一般的である。しかし、いくら熟考して作成されたマップであっても、対戦を重ねるうちに、ある特定の場所にいるキャラクターにとってゲームが難しすぎたり易しすぎたりしてしまうことがあった。
【０００６】
本発明はこのような課題を解決するものであり、キャラクター同士の対戦において、キャラクターの位置によって有利・不利が偏り過ぎないように調整するために好適なゲーム装置、ゲーム処理方法、ゲームシステム、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００８】
本発明の第１の観点に係るゲーム装置は、仮想空間内において複数のキャラクターが対戦するゲームを実現するゲーム装置であって、判定部、記憶部、分類部、取得部、配置部を備える。
判定部は、複数のキャラクターのうち、第１キャラクターから発せられた攻撃が障害物に遮られずに第２キャラクターに命中したか否かを判定する。
記憶部は、命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を記憶する。
分類部は、記憶された命中情報をクラスター分析して複数のクラスターに分類する。
取得部は、複数のクラスターから所定個数のクラスターを選択し、当該選択されたクラスターのそれぞれのセントロイドに指定される出発位置と到達位置とを取得する。
配置部は、仮想空間内において、取得された出発位置から取得された到達位置までの間に障害物を配置する。
【０００９】
本発明のゲーム装置で実行される典型的なゲームは、仮想空間内で複数のキャラクターが対戦するゲームである。仮想空間内には、複数のキャラクターと障害物が配置される。それぞれのキャラクターは、プレイヤーからの入力によって操作されてもよいし、ゲーム装置の所定のアルゴリズムに従って操作されてもよい。キャラクター同士の対戦では、一方のキャラクター（以下「攻撃をする側のキャラクター」もしくは「第１キャラクター」という。）が他方のキャラクター（以下「攻撃をされる側のキャラクター」もしくは「第２キャラクター」という。）を攻撃し、戦闘が発生する。
【００１０】
攻撃の際に近くに障害物が存在すると、その攻撃が障害物によって妨げられることがある。障害物には、ゲーム開始時にデフォルトで配置される障害物と、ゲーム進行中にゲーム装置により新たに配置される障害物とがある。例えば、仮想空間内でキャラクターが銃を撃って対戦するゲームにおいて、建物、地形、樹木、車両などが障害物となり得る。ただし、ゲーム中（例えばゲーム開始直後）において、障害物が存在しないことがあってもよい。
【００１１】
ゲーム装置には、第１キャラクターによる第２キャラクターへの攻撃を示す情報が記憶される。攻撃を示す情報は、具体的には、攻撃が命中したときの第１キャラクターの位置（以下「出発位置」という。）と第２キャラクターの位置（以下「到達位置」という。）とを対応付ける情報（以下「命中情報」という。）である。命中情報は、所定件数だけ記憶されてもよいし、所定期間内の不特定件数が記憶されていってもよい。
【００１２】
ゲーム装置は、記憶されたすべての命中情報からなる全体集合を、非類似度に基づいて、複数の部分集合に分類する。具体的には、ゲーム装置は、すべての命中情報を分析対象とするクラスター分析を行う。生成される部分集合のそれぞれをクラスターと呼ぶ。出発位置が近く且つ到達位置も近い攻撃同士、つまり同じクラスターに分類される命中情報が示す攻撃同士は、互いに類似する攻撃であると判断される。
【００１３】
命中情報を複数のクラスターに分類すると、ゲーム装置は、複数のクラスターの中から所定個数のクラスターを選択する。例えば、複数のクラスターの中から、命中情報の数が最も多いクラスターを１つ選択する。命中情報が多いクラスターにおいて、各命中情報が示す出発位置付近は、攻撃をする側にとって特に有利なエリアであることを示す。また、命中情報が多いクラスターにおいて、各命中情報が示す到達位置付近は、攻撃をされる側にとって特に不利なエリアである。従って、各クラスターに含まれる命中情報の数に偏りが生じるほど、一方のキャラクターが他方のキャラクターよりも有利になり過ぎる（不利になり過ぎる）エリアが存在することになり、ゲームバランスが崩れてしまう原因になりかねない。
【００１４】
そこで、ゲーム装置は、攻撃をする側に有利になり過ぎている（又は攻撃を受ける側に不利になり過ぎている）と推定される位置に、攻撃の妨げとなる障害物を配置することにより、一方的に攻撃が成功しやすい状況を解消し、ゲームバランスを調整する。例えば、選択したクラスターのセントロイド（重心）に相当する出発位置と到達位置は、対戦の有利・不利のバランスが崩れている可能性が高い代表的な位置と推定される。ゲーム装置は、選択したクラスターのセントロイドに指定される出発位置と到達位置との間に、新たに障害物を配置する。例えば、出発位置と到達位置とを結ぶ線分上の任意の位置に、攻撃の妨げとなる新たな障害物が配置される。本発明によれば、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整することができる。
【００１５】
なお、本発明は、１つのゲーム装置で行われるゲームだけでなく、複数のゲーム装置を互いに接続して行われるネットワークゲームにも適用することが可能である。
【００１６】
本発明のその他の観点に係るゲーム装置は、仮想空間内において複数のキャラクターが対戦するゲームを実現するゲーム装置であって、判定部、記憶部、第１の分類取得部、第２の分類取得部、配置部として機能する。
判定部は、複数のキャラクターのうち、第１キャラクターから発せられた攻撃が障害物に遮られずに第２キャラクターに命中したか否かを判定する。
記憶部は、命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を複数記憶する。
第１の分類取得部は、記憶された命中情報に指定される到達位置のそれぞれについて、当該到達位置から第１の所定距離範囲内の他の到達位置の数（以下「第１の数」という。）を求め、当該第１の数に基づいて、当該複数の到達位置を複数のクラスター（以下「第１クラスター」という。）に分類し、当該分類された複数の第１クラスターの中から少なくとも１つの第１クラスターを選択し、当該選択した第１クラスターの中心に対応する到達位置を取得する。
第２の分類取得部は、取得された第１クラスターに含まれる複数の到達位置に対応付けられる出発位置のそれぞれについて、当該出発位置から第２の所定距離範囲内の他の出発位置の数（以下「第２の数」という。）を求め、当該第２の数に基づいて、当該複数の出発位置を複数のクラスター（以下「第２クラスター」という。）に分類し、当該分類された複数の第２クラスターの中から少なくとも１つの第２クラスターを選択し、当該選択した第２クラスターの中心に対応する出発位置を取得する。
配置部は、仮想空間内において、取得された第１クラスターに対応する出発位置から、取得された第２クラスターに対応する到達位置までの間に、障害物を配置する。
【００１７】
上記発明では、ゲーム装置は、出発位置と到達位置との組み合わせで表される命中情報をクラスター分析し、攻撃をする側にとって最も有利と推定される位置と、攻撃をされる側にとって最も不利と推定される位置とをまとめて取得している。しかし、クラスター分析の対象となるデータ（命中情報）の数が多いほど計算量が増え、ゲーム装置が行う処理の負荷が大きくなる恐れがある。そこで、ゲーム装置が行う処理の量を減らし且つ同様の効果を奏するようにゲーム装置を構成することもできる。
【００１８】
すなわち、ゲーム装置は、まず、命中情報に含まれる出発位置と到達位置のうち、到達位置のみ類似する命中情報同士を同じクラスターに分類する。到達位置は複数のクラスター（第１クラスター）に分類される。第１クラスターに分類される各到達位置で示されるエリアは、何らかの攻撃を受けやすい不利なエリアである。ただし、この時点ではその攻撃がどこから発せられるのかまでは特定されない。
【００１９】
次に、ゲーム装置は、複数の第１クラスターのうち含まれる到達位置の数が多い第１クラスターを選択する。例えば、ゲーム装置は、到達位置の数が最も多い第１クラスターを１つだけ選択する。選択した第１クラスターに含まれる到達位置で示されるエリアは、何らかの攻撃を最も受けやすいエリアである。選択した第１クラスターの中心に対応する到達位置は、何らかの攻撃を最も受けやすい代表的な位置である。
【００２０】
更に、ゲーム装置は、すべての出発位置のうち、選択した第１クラスターに含まれる到達位置に対応付けられている出発位置をクラスターに分類する。すべての出発位置のうち、選択した第１クラスターに含まれる到達位置に対応付けられている出発位置のみが、複数のクラスター（第２クラスター）に分類される。従って、攻撃を受けやすいエリアがどこかに加えて、どの辺りから攻撃されやすいのかが分かる。選択した第２クラスターの中心に対応する出発位置は、最も攻撃をしやすい代表的な位置である。
【００２１】
そして、ゲーム装置は、選択した第１クラスターの中心に対応する到達位置と、選択した第２クラスターの中心に対応する出発位置との間に、新たに障害物を配置する。例えば、出発位置と到達位置とを結ぶ線分上の任意の位置に、攻撃の妨げとなる新たな障害物が配置される。本発明によれば、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整することができる。
【００２２】
取得部は、複数のクラスターのそれぞれについて、当該クラスターに含まれる命中情報の個数に基づいてクラスターを選択してもよい。
【００２３】
例えば、命中情報が最も多いクラスターを１つだけ選択したり、命中情報が多い上位所定個数のクラスターを選択したりしてもよい。命中情報の数が多いクラスターに含まれる出発位置と到達位置が示す各エリアは、いわゆる“激戦区”に相当する。従って、戦闘が発生しやすい場所に障害物が配置されることになり、ゲームの緊迫感が増し、且つ、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整できるようになる。なお、ゲーム装置は、複数のクラスターを選択した場合、選択したそれぞれのクラスターに対応する障害物を配置する。
【００２４】
記憶部は、命中しなかったと判定された攻撃を発したキャラクターの位置を出発位置として指定する失敗情報を更に記憶してもよい。
そして、取得部は、複数のクラスターのそれぞれについて、当該クラスターに含まれる命中情報の個数と、当該命中情報に指定される出発位置が含まれる領域（以下「出発領域」という。）に含まれる位置を出発点として指定する失敗情報の個数と、に基づいて、クラスターを選択してもよい。
【００２５】
すなわち、新たに配置される障害物の位置は、相手に命中した攻撃（成功した攻撃）だけでなく、相手に命中しなかった攻撃（失敗した攻撃）も考慮して決定される。例えば、命中情報が多く且つ失敗情報が少ないエリアは、攻撃する側にとって有利である。しかし、命中情報が多く且つ失敗情報も多いエリアは、必ずしも攻撃する側にとって有利とは限らない。従って、命中情報に加えて失敗情報も考慮することにより、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整できる効果が増す。
【００２６】
記憶部は、命中しなかったと判定された攻撃を発したキャラクターの位置を出発位置として指定する失敗情報を更に記憶してもよい。
そして、取得部は、複数のクラスターのそれぞれについて、当該クラスターに含まれる命中情報に指定される出発位置が含まれる領域（以下「出発領域」という。）と、当該命中情報に指定される到達位置が含まれる領域（以下「到達領域」という。）と、を取得し、記憶された失敗情報のうち、当該失敗情報に指定される出発位置から当該失敗情報に指定される到達位置への向きが、当該出発領域から当該到達領域への向きと実質的に同じであり、且つ、当該失敗情報に指定される出発位置が当該出発領域に含まれる、失敗情報の個数と、当該クラスターに含まれる命中情報の個数と、に基づいて、クラスターを選択してもよい。
【００２７】
すなわち、新たに配置される障害物の位置は、相手に命中した攻撃（成功した攻撃）だけでなく、相手を狙ったものの命中しなかったと推定される攻撃（失敗した攻撃）も考慮して決定される。例えば、命中情報が多く且つ命中情報に類似する失敗情報が少ないエリアは、攻撃する側にとって有利である。しかし、命中情報が多く且つ命中情報に類似する失敗情報も多いエリアは、必ずしも攻撃する側にとって有利とは限らない。従って、命中情報に加えて失敗情報も考慮することにより、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整できる効果が増す。
【００２８】
配置部は、障害物の個数が所定の閾値を超えると、当該障害物のうち、配置されてからの期間が長い障害物から消去してもよい。
【００２９】
障害物を配置した後に更にゲームが進行すると、ゲームバランスを調整するために適切と判断される位置が変わる可能性がある。そこで、ゲーム装置は、新たに障害物を配置するだけでなく、古い障害物を消去する。ゲーム装置は、障害物の数が多すぎることがないように調整しつつ、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整することができる。
【００３０】
配置部は、更に、仮想空間に既に配置した障害物のうち、取得された出発位置又は取得された到達位置から最も離れている障害物を消去してもよい。
【００３１】
つまり、ゲーム装置は、障害物を消去する際、“激戦区”に近い障害物を優先的に残し、“激戦区”から遠い障害物を優先的に消去する。ゲーム装置は、なるべく存在意義が大きい位置に障害物を配置するように調整しつつ、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整することができる。
【００３２】
本発明のその他の観点に係るゲームシステムは、仮想空間内において複数のキャラクターが対戦するゲームを実現するゲームシステムである。ゲームシステムには、複数のゲーム装置が含まれる。
複数のゲーム装置のうち一のゲーム装置（以下「第１のゲーム装置」という。）は、判定部、記憶部、分類部、取得部、第１の配置部、送信部を備える。
判定部は、複数のキャラクターのうち、第１キャラクターから発せられた攻撃が障害物に遮られずに第２キャラクターに命中したか否かを判定する。
記憶部は、命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を記憶する。
分類部は、記憶された命中情報をクラスター分析して複数のクラスターに分類する。
取得部は、複数のクラスターから所定個数のクラスターを選択し、当該選択されたクラスターのそれぞれのセントロイドに指定される出発位置と到達位置とを取得する。
第１の配置部は、仮想空間内において、取得された出発位置から、取得された到達位置まで、の間に障害物を配置する。
送信部は、配置された障害物を指定する情報を、複数のゲーム装置のうち他の一のゲーム装置（以下「第２のゲーム装置」という。）に送信する。
また、第２のゲーム装置は、受信部と第２の配置部を備える。
受信部は、第１のゲーム装置から障害物を指定する情報を受信する。
第２の配置部は、受信した障害物を指定する情報に基づいて、仮想空間内に障害物を配置する。
【００３３】
第１のゲーム装置と第２のゲーム装置は、例えばインターネットなどのネットワークで接続される。典型的には、第１のプレイヤーが第１のゲーム装置を操作して第１のキャラクターに指示を与え、第２のプレイヤーが第２のゲーム装置を操作して第２のキャラクターに指示を与える。第１のゲーム装置と第２のゲーム装置は、所定のタイミングで互いに同期を取りながら、それぞれ仮想空間で第１のキャラクターと第２のキャラクターが対戦するゲームを実行する。
【００３４】
第１のゲーム装置は、上述のゲーム装置と同様に、第１のゲーム装置がゲームを行う仮想空間内において、選択した第１クラスターの中心に対応する到達位置と、選択した第２クラスターの中心に対応する出発位置との間に、新たに障害物を配置する。そして、新たな障害物の座標や新たな障害物の種類などを指定する情報を第２のゲーム装置に送信する。この第１のゲーム装置は、障害物の配置を管理するゲームサーバとして機能する。
【００３５】
第２のゲーム装置は、新たな障害物を指定する情報を第１のゲーム装置から受信して、第２のゲーム装置がゲームを行う仮想空間内において、新たな障害物を配置する。つまり、第１のゲーム装置が実行するゲームの仮想空間内と同じ障害物が、第２のゲーム装置が実行するゲームの仮想空間内に配置され、障害物の同期が取られる。この第２のゲーム装置は、ゲームクライアントとして機能する。
【００３６】
本発明によれば、ネットワークゲームにおいても、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整することができる。なお、ネットワークに接続される複数のゲーム装置のうち少なくとも１つが第１のゲーム装置（ゲームサーバ）となればよい。第１のゲーム装置と第２のゲーム装置は、同等のハードウェア構成を有するゲーム装置であってもよいし、ゲームサーバとなる第１のゲーム装置のみ、対戦ゲームのプレイヤーが操作しない専用サーバであってもよい。
【００３７】
本発明のその他の観点に係るゲームシステムは、仮想空間内において複数のキャラクターが対戦するゲームを実現するゲームシステムである。ゲームシステムには、複数のゲーム装置が含まれる。
複数のゲーム装置のうち一のゲーム装置（以下「第１のゲーム装置」という。）は、判定部、記憶部、第１の分類取得部、第２の分類取得部、第１の配置部、送信部と備える。
判定部は、複数のキャラクターのうち、第１キャラクターから発せられた攻撃が障害物に遮られずに第２キャラクターに命中したか否かを判定する。
記憶部は、命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を複数記憶する。
第１の分類取得部は、記憶された命中情報に指定される到達位置のそれぞれについて、当該到達位置から第１の所定距離範囲内の他の到達位置の数（以下「第１の数」という。）を求め、当該第１の数に基づいて、当該複数の到達位置を複数のクラスター（以下「第１クラスター」という。）に分類し、当該分類された複数の第１クラスターの中から少なくとも１つの第１クラスターを選択し、当該選択した第１クラスターの中心に対応する到達位置を取得する。
第２の分類取得部は、取得された第１クラスターに含まれる複数の到達位置に対応付けられる出発位置のそれぞれについて、当該出発位置から第２の所定距離範囲内の他の出発位置の数（以下「第２の数」という。）を求め、当該第２の数に基づいて、当該複数の出発位置を複数のクラスター（以下「第２クラスター」という。）に分類し、当該分類された複数の第２クラスターの中から少なくとも１つの第２クラスターを選択し、当該選択した第２クラスターの中心に対応する出発位置を取得する。
第１の配置部は、仮想空間内において、取得された第１クラスターに対応する出発位置から、取得された第２クラスターに対応する到達位置までの間に、障害物を配置する。
送信部は、配置された障害物を指定する情報を、複数のゲーム装置のうち他の一のゲーム装置（以下「第２のゲーム装置」という。）に送信する。
また、第２のゲーム装置は、受信部と第２の配置部を備える。
受信部は、第１のゲーム装置から障害物を指定する情報を受信する。
第２の配置部は、受信した障害物を指定する情報に基づいて、仮想空間内に障害物を配置する。
【００３８】
本発明によれば、ネットワークゲームにおいても、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整することができる。なお、ネットワークに接続される複数のゲーム装置のうち少なくとも１つが第１のゲーム装置（ゲームサーバ）となればよい。第１のゲーム装置と第２のゲーム装置は、同等のハードウェア構成を有するゲーム装置であってもよいし、ゲームサーバとなる第１のゲーム装置のみ、対戦ゲームのプレイヤーが操作しない専用サーバであってもよい。
【００３９】
第１の配置部は、仮想空間に既に配置した障害物のうちのいずれかを消去してもよい。
また、送信部は、消去される障害物を指定する情報を第２のゲーム装置に送信してもよい。
さらに、受信部は、消去される障害物を指定する情報を第１のゲーム装置から受信してもよい。
そして、第２の配置部は、受信した消去される障害物を指定する情報に基づいて、仮想空間から障害物を消去してもよい。
【００４０】
本発明によれば、ゲームシステムは、障害物を配置するだけでなく消去することにより、障害物の配置を調整し、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整することができる。
【００４１】
本発明のその他の観点に係るゲーム処理方法は、仮想空間内において複数のキャラクターが対戦するゲームを実現し、判定部、記憶部、分類部、取得部、配置部を有するゲーム装置にて実行されるゲーム処理方法であって、判定ステップ、記憶ステップ、分類ステップ、取得ステップ、配置ステップを備える。
判定ステップでは、判定部が、複数のキャラクターのうち、第１キャラクターから発せられた攻撃が障害物に遮られずに第２キャラクターに命中したか否かを判定する。
記憶ステップでは、記憶部が、命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を記憶する。
分類ステップでは、分類部が、記憶された命中情報をクラスター分析して複数のクラスターに分類する。
取得ステップでは、取得部が、複数のクラスターから所定個数のクラスターを選択し、当該選択されたクラスターのそれぞれのセントロイドに指定される出発位置と到達位置とを取得する。
配置ステップでは、配置部が、仮想空間内において、取得された出発位置から取得された到達位置までの間に障害物を配置する。
【００４２】
本発明によれば、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整することができる。
【００４３】
本発明のその他の観点に係るゲーム処理方法は、仮想空間内において複数のキャラクターが対戦するゲームを実現し、判定部、記憶部、第１の分類取得部、第２の分類取得部、配置部を有するゲーム装置にて実行されるゲーム処理方法であって、判定ステップ、記憶ステップ、第１の分類取得ステップ、第２の分類取得ステップ、配置ステップを備える。
判定ステップでは、判定部が、複数のキャラクターのうち、第１キャラクターから発せられた攻撃が障害物に遮られずに第２キャラクターに命中したか否かを判定する。
記憶ステップでは、記憶部が、命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を、複数記憶する。
第１の分類取得ステップでは、第１の分類取得部が、記憶された命中情報に指定される到達位置のそれぞれについて、当該到達位置から第１の所定距離範囲内の他の到達位置の数（以下「第１の数」という。）を求め、当該第１の数に基づいて、当該複数の到達位置を複数のクラスター（以下「第１クラスター」という。）に分類し、当該分類された複数の第１クラスターの中から少なくとも１つの第１クラスターを選択し、当該選択した第１クラスターの中心に対応する到達位置を取得する。
第２の分類取得ステップでは、第２の分類取得部が、取得された第１クラスターに含まれる複数の到達位置に対応付けられる出発位置のそれぞれについて、当該出発位置から第２の所定距離範囲内の他の出発位置の数（以下「第２の数」という。）を求め、当該第２の数に基づいて、当該複数の出発位置を複数のクラスター（以下「第２クラスター」という。）に分類し、当該分類された複数の第２クラスターの中から少なくとも１つの第２クラスターを選択し、当該選択した第２クラスターの中心に対応する出発位置を取得する。
配置ステップでは、配置部が、仮想空間内において、取得された第１クラスターに対応する出発位置から、取得された第２クラスターに対応する到達位置までの間に、障害物を配置する。
【００４４】
本発明によれば、キャラクター同士の対戦における有利・不利が偏り過ぎないように調整することができる。
【００４５】
本発明のその他の観点に係るプログラムは、仮想空間内において複数のキャラクターが対戦するゲームを実現するコンピュータを、判定部、記憶部、分類部、取得部、配置部として機能させる。
判定部は、複数のキャラクターのうち、第１キャラクターから発せられた攻撃が障害物に遮られずに第２キャラクターに命中したか否かを判定する。
記憶部は、命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を記憶する。
分類部は、記憶された命中情報をクラスター分析して複数のクラスターに分類する。
取得部は、複数のクラスターから所定個数のクラスターを選択し、当該選択されたクラスターのそれぞれのセントロイドに指定される出発位置と到達位置とを取得する。
配置部は、仮想空間内において、取得された出発位置から取得された到達位置までの間に障害物を配置する。
【００４６】
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
【００４７】
本発明のその他の観点に係るプログラムは、仮想空間内において複数のキャラクターが対戦するゲームを実現するコンピュータを、判定部、記憶部、第１の分類取得部、第２の分類取得部、配置部として機能させる。
判定部は、複数のキャラクターのうち、第１キャラクターから発せられた攻撃が障害物に遮られずに第２キャラクターに命中したか否かを判定する。
記憶部は、命中したと判定された攻撃を発したキャラクターの位置を出発位置とし、当該攻撃が命中したキャラクターの位置を到達位置として指定する命中情報を複数記憶する。
第１の分類取得部は、記憶された命中情報に指定される到達位置のそれぞれについて、当該到達位置から第１の所定距離範囲内の他の到達位置の数（以下「第１の数」という。）を求め、当該第１の数に基づいて、当該複数の到達位置を複数のクラスター（以下「第１クラスター」という。）に分類し、当該分類された複数の第１クラスターの中から少なくとも１つの第１クラスターを選択し、当該選択した第１クラスターの中心に対応する到達位置を取得する。
第２の分類取得部は、取得された第１クラスターに含まれる複数の到達位置に対応付けられる出発位置のそれぞれについて、当該出発位置から第２の所定距離範囲内の他の出発位置の数（以下「第２の数」という。）を求め、当該第２の数に基づいて、当該複数の出発位置を複数のクラスター（以下「第２クラスター」という。）に分類し、当該分類された複数の第２クラスターの中から少なくとも１つの第２クラスターを選択し、当該選択した第２クラスターの中心に対応する出発位置を取得する。
配置部は、仮想空間内において、取得された第１クラスターに対応する出発位置から、取得された第２クラスターに対応する到達位置までの間に、障害物を配置する。
【００４８】
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
【００４９】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００５０】
本発明によれば、キャラクター同士の対戦において、キャラクターの位置によって有利・不利が偏り過ぎないように調整するために好適なゲーム装置、ゲーム処理方法、ゲームシステム、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【００５１】
【図１】本発明のゲーム装置が実現される典型的な情報処理装置の概要構成を示す図である。
【図２】ゲーム装置の機能的な構成を説明するための図である。
【図３】ゲーム画面の構成例を示す図である。
【図４】仮想空間を所定方向から俯瞰したマップの例を示す図である。
【図５】命中情報リストの構成例を示す図である。
【図６】出発位置と到達位置をプロットしたマップの例を示す図である。
【図７】命中情報をクラスターに分類した結果を表す概念図である。
【図８】クラスターのセントロイドで指定される出発位置と到達位置を説明するための図である。
【図９】新たな障害物を配置したときのマップの例を示す図である。
【図１０】（ａ）〜（ｄ）は、新たな障害物を配置する処理を説明するための図である。
【図１１】ゲーム処理を説明するためのフローチャートである。
【図１２】実施形態２において、命中情報リストの構成例を示す図である。
【図１３】命中情報をクラスターに分類した結果を表す概念図である。
【図１４】新たな障害物を配置したときのマップの例を示す図である。
【図１５】実施形態３において、失敗情報の中から命中情報が示す攻撃に類似するものを求める処理を説明するための図である。
【図１６】失敗情報の中から命中情報が示す攻撃に類似するものを求める処理を説明するための図である。
【図１７】新たな障害物を配置したときのマップの例を示す図である。
【図１８】実施形態４において、ゲーム装置の機能的な構成を説明するための図である。
【図１９】複数の到達位置をクラスターに分類する処理を説明するための図である。
【図２０】複数の出発位置をクラスターに分類する処理を説明するための図である。
【図２１】新たな障害物を配置したときのマップの例を示す図である。
【図２２】新たな障害物を配置したときのマップの例を示す図である。
【図２３】新たに配置した障害物を示す情報の構成例を示す図である。
【図２４】実施形態５において、障害物の消去処理を説明するためのフローチャートである。
【図２５】消去対象の障害物を選択する処理を説明するための図である。
【図２６】複数のゲーム装置から構成されるゲームシステムを示す図である。
【発明を実施するための形態】
【００５２】
（実施形態１）
本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００５３】
図１は、プログラムを実行することにより、本発明のゲーム装置の機能を果たす典型的な情報処理装置１００の概要構成を示す模式図である。以下、本図を参照して説明する。
【００５４】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェース１０４と、コントローラ１０５と、外部メモリ１０６と、ＤＶＤ−ＲＯＭ（Digital Versatile Disk - Read Only Memory）ドライブ１０７と、画像処理部１０８と、音声処理部１０９と、ＮＩＣ（Network Interface Card）１１０と、を備える。
【００５５】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０７に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態のゲーム装置が実現される。
【００５６】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００５７】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００５８】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００５９】
インターフェース１０４を介して接続されたコントローラ１０５は、プレイヤーがダンスゲームやサッカーゲームなどのゲームの実行の際に行う操作入力を受け付ける。インターフェース１０４には、複数のコントローラ１０５が接続されていてもよい。
【００６０】
インターフェース１０４を介して着脱自在に接続された外部メモリ１０６には、ゲームのプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワークを用いたゲームのチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。プレイヤーは、コントローラ１０５を介して操作入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００６１】
ＤＶＤ−ＲＯＭドライブ１０７に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０７は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００６２】
画像処理部１０８は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０８が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０８が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０８に接続されるモニター（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００６３】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００６４】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００６５】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００６６】
また、ゲームの画像などの情報をＤＶＤ−ＲＯＭに用意しておき、これをフレームメモリに展開することによって、ゲームの様子などを画面に表示することができるようになる。
【００６７】
音声処理部１０９は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカー（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカーから出力させる。
【００６８】
音声処理部１０９では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation）形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカーに出力することにより、音声出力が可能となる。
【００６９】
ＮＩＣ  １１０は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００７０】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０７に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００７１】
次に、上記構成を有する情報処理装置１００により実現される本実施形態のゲーム装置２００の機能的な構成などについて説明する。
【００７２】
図２は、本実施形態のゲーム装置２００の機能的な構成を示す図である。
図３は、ゲーム装置２００にて実行されるゲームの画面３００の構成例を示す図である。
図４は、ゲームが行われる３次元仮想空間を（地面の真上から）俯瞰したマップ４００の例を示す図である。
【００７３】
まず、本実施形態のゲーム装置２００が行うゲームの内容について説明する。ゲーム装置２００で実行される典型的なゲームのひとつに、仮想空間において、複数のプレイヤー同士が対戦するか、もしくは、１人のプレイヤーとゲーム装置２００とが対戦する（いわゆる“ＣＰＵ対戦”する）シューティングゲームがある。例えば、一般にＦＰＳ（First Person Shooting、又は、First Person Shooter）と呼ばれるゲームでは、仮想空間内に配置されるキャラクターの目（一人称視点）から見た画像がモニターに表示される。プレイヤーは、キャラクターから見た仮想空間の光景を体感しながら、キャラクターになりきってゲームをプレイすることができる。
【００７４】
ゲームの内容は本発明によって限定されないが、以下の説明では、１人のプレイヤーが３次元仮想空間に配置されるプレイヤーキャラクターオブジェクト（以下「プレイヤーキャラクター」という。）３１０を操り、この３次元仮想空間内に次々と出現する敵と戦いながら仮想空間内を動き回り、予め決められたミッションを達成することを目標とする対戦ゲームを例にとって説明する。ただし、複数のプレイヤーがそれぞれ異なるプレイヤーキャラクターを操って対戦するゲームでもよい。また、３次元仮想空間ではなく２次元仮想空間であってもよい。
【００７５】
ＣＰＵ  １０１は、画像処理部１０８を制御して、仮想空間内に配置されるプレイヤーキャラクター３１０の視点の位置から、プレイヤーキャラクター３１０の視線の向きに、所定の投影面へこの仮想空間を投影することにより、画面（投影画像）３００を生成し、画面３００をモニターに表示する。
【００７６】
画面３００には、例えば、プレイヤーキャラクター３１０、敵キャラクターオブジェクト（以下「敵キャラクター」という。）３２０、障害物オブジェクト（以下「障害物」という。）３３０、ライフメーター３４０、銃の残り弾数を示すゲージ３５０などが含まれる。ただし、本実施形態では、プレイヤーキャラクター３１０の一人称視点から見た画像が表示されるので、画面３００には、プレイヤーキャラクター３１０の視点から見える一部分（図３ではプレイヤーキャラクター３１０が所持する銃のみ）が表示される。
【００７７】
プレイヤーは、コントローラ１０５を操作してプレイヤーキャラクター３１０を移動させたり所定の動作（例えば銃を発射する、走る等）をさせたりする。ＣＰＵ  １０１は、所定のアルゴリズムに従って敵キャラクター３２０を移動させたり所定の動作をさせたりする。ＣＰＵ  １０１は、仮想空間内の任意の位置に敵キャラクター３２０を配置することができる。
【００７８】
ＣＰＵ  １０１は、仮想空間内の任意の位置に障害物３３０を配置したり、既に配置された障害物３３０を移動あるいは消去したりすることができる。障害物３３０には、例えば、建物、樹木、地形などのように位置が固定されるもののほか、トラック、戦車、敵ではない人物などのように移動可能なものも含まれる。
【００７９】
障害物３３０は、一方のキャラクターから他方のキャラクターへの攻撃の妨げになる可能性がある。例えば、プレイヤーキャラクター３１０の銃から発射された弾丸が、敵キャラクター３２０に命中せずに障害物３３０に当たった場合、この攻撃は失敗したことになる。
【００８０】
ＣＰＵ  １０１は、障害物３３０を新たに配置する場合、所定期間内にプレイヤーキャラクター３１０が敵キャラクター３２０に（又は敵キャラクター３２０がプレイヤーキャラクター３１０に）攻撃を発した位置の分布や、所定期間内にプレイヤーキャラクター３１０が敵キャラクター３２０から（又は敵キャラクター３２０がプレイヤーキャラクター３１０から）攻撃を受けた位置の分布を解析することにより、障害物３３０を配置する場所を決定することができる。
【００８１】
例えば、ＣＰＵ  １０１は、
（１）プレイヤーキャラクター３１０が敵キャラクター３２０に攻撃を発したときのプレイヤーキャラクター３１０の位置であって、その攻撃が敵キャラクター３２０に命中したときの位置（以下、「出発位置」という。）と、
（２）その攻撃が命中したときの敵キャラクター３２０の位置（以下、「到達位置」という。）と、
をＲＡＭ  １０３に一時記憶しておく。これらの位置を示すデータが累積されると、所定期間内におけるプレイヤーキャラクター３１０の位置の集合（分布）と、所定期間内における敵キャラクター３２０の位置の集合（分布）と、が得られる。
【００８２】
簡単に言えば、出発位置は攻撃が成功した位置であり、到達位置は攻撃を受けた位置である。
【００８３】
ＣＰＵ  １０１は、得られた出発位置を示す各データ及び／又は到達位置を示す各データを分析対象とする。ＣＰＵ  １０１は、すべての分析対象のうち類似するもの同士を１つの部分集合に分類する。そして、ＣＰＵ  １０１は、分析対象の類似度に基づいて、分析対象の全体集合を幾つかの部分集合に分類する。
【００８４】
例えば、ＣＰＵ  １０１は、出発位置が所定距離以内にあるそれぞれの分析対象を１つの部分集合に分類する。ＣＰＵ  １０１は、すべての分析対象を複数の部分集合に分類する。１つの部分集合は、出発位置が互いに近い分析対象同士から構成される。すなわち、プレイヤーキャラクター３１０が敵キャラクター３２０を攻撃したときのプレイヤーキャラクター３１０の位置のうち、敵キャラクター３２０への攻撃が命中しやすい位置の分布が得られる。もしくは、敵キャラクター３２０がプレイヤーキャラクター３１０を攻撃したときの敵キャラクター３２０の位置のうち、プレイヤーキャラクター３１０への攻撃が命中しやすい位置の分布が得られる。得られる分布は、キャラクターにとって有利なエリアを表す。
【００８５】
例えば、ＣＰＵ  １０１は、到達位置が所定距離以内にあるそれぞれの分析対象を１つの部分集合に分類する。ＣＰＵ  １０１は、すべての分析対象を複数の部分集合に分類する。１つの部分集合は、到達位置が互いに近い、１つ以上の分析対象から構成される。すなわち、プレイヤーキャラクター３１０が敵キャラクター３２０を攻撃したときの敵キャラクター３２０の位置のうち、プレイヤーキャラクター３１０からの攻撃が命中しやすい位置の分布が得られる。もしくは、敵キャラクター３２０がプレイヤーキャラクター３１０を攻撃したときのプレイヤーキャラクター３１０の位置のうち、敵キャラクター３２０からの攻撃が命中しやすい位置の分布が得られる。得られる分布は、キャラクターにとって不利なエリア、危険なエリアを表す。
【００８６】
例えば、ＣＰＵ  １０１は、出発位置が所定距離以内にあり、且つ、到達位置が所定距離以内にあるそれぞれの分析対象を１つの部分集合に分類する。ＣＰＵ  １０１は、すべての分析対象を複数の部分集合に分類する。１つの部分集合は、出発位置が互いに近く、且つ、到達位置が互いに近い、１つ以上の分析対象から構成される。すなわち、プレイヤーキャラクター３１０から敵キャラクター３２０への攻撃が命中しやすい（もしくは敵キャラクター３２０からプレイヤーキャラクター３１０への攻撃が命中しやすい）状態の、プレイヤーキャラクター３１０の位置と敵キャラクター３２０の位置との組み合わせの分布が得られる。得られる分布は、攻撃する側のキャラクターがより有利なエリア（言い換えれば、攻撃される側のキャラクターがより不利なエリア）を表す。
【００８７】
本実施形態では、ＣＰＵ  １０１は、一方のキャラクターが他方のキャラクターより相対的に有利に（不利に）なりすぎないように、障害物３３０を配置する。ＣＰＵ  １０１が分析対象の全体集合を複数の部分集合に分類する手法のひとつにクラスター分析（あるいはクラスタリングとも呼ばれる）があるが、詳細は後述する。
【００８８】
マップ４００には、ゲームのある時点における、プレイヤーキャラクター３１０の位置と、敵キャラクター３２０（図４では３２０Ａ，３２０Ｂ，３２０Ｃの３つ）の位置と、障害物３３０（図４では３３０Ａ，３３０Ｂ，３３０Ｃ，３３０Ｄの４つ）の位置と、が示されている。説明の簡略化のため、マップ４００は平面に描かれているが、仮想空間は３次元であり、実際には高さを含む立体的なマップとなる。
【００８９】
プレイヤーキャラクター３１０が敵キャラクター３２０から攻撃を受け、敵キャラクター３２０から発射された弾が当たるなどして負傷すると、ライフメーター３４０が示す値が減少する。ライフメーター３４０が示す値が所定値（典型的にはゼロ）に達したり、プレイヤーキャラクター３１０が所定数以上被弾したりすると、ゲーム終了（ミッション失敗）となる。また、敵キャラクター３２０が所定数以上被弾すると、敵キャラクター３２０は無力化（死亡）する。
【００９０】
（クラスター分析）
次に、ゲーム装置２００で実行されるクラスター分析の概要について説明する。
【００９１】
クラスター分析では、分類対象となる点の集合は、幾つかの部分集合に分類される。部分集合のそれぞれは「クラスター」と呼ばれる。
【００９２】
本実施形態における分析対象は、上述の出発位置と到達位置との組み合わせである。より詳細には、出発位置と到達位置は、いずれも、３次元仮想空間内に予め定義されるグローバル座標系を用いた座標値で表される。従って、グローバル座標系にＸＹＺ直行座標系を用いる場合、出発位置（ａ１，ａ２，ａ３）と到達位置（ａ４，ａ５，ａ６）との組み合わせは、６つのパラメータａ１，ａ２，ａ３，ａ４，ａ５，ａ６を用いる６次元空間の中の１点の座標（ａ１，ａ２，ａ３，ａ４，ａ５，ａ６）を意味する。
【００９３】
簡単にクラスター分析のアルゴリズムについて説明する。
（１）Ｎ個（Ｎは１以上の整数。ただしＮは３以上であることが望ましい。）の分析対象からなるデータ集合Ｐがあるとき、初期状態として、分析対象をそれぞれ１個だけ含むＮ個のクラスターを作る。データ集合Ｐと分析対象Ｐｉ，Ｐｊ（ｉ≠ｊ、１≦ｉ≦Ｎ、１≦ｊ≦Ｎ）は、それぞれ、［数１］、［数２］、［数３］で表される。
【００９４】
Ｐ＝｛Ｐ１，Ｐ２，・・・，ＰＮ｝      ・・・［数１］
Ｐｉ＝（ａ１，ａ２，ａ３，ａ４，ａ５，ａ６）    ・・・［数２］
Ｐｊ＝（ｂ１，ｂ２，ｂ３，ｂ４，ｂ５，ｂ６）    ・・・［数３］
【００９５】
（２）任意の２つの分析対象Ｐｉ，Ｐｊの非類似度を計算する。非類似度は、分析対象Ｐｉ，Ｐｊ間の距離Ｄ（Ｐｉ，Ｐｊ）である。距離Ｄ（Ｐｉ，Ｐｊ）が小さいほど、分析対象ＰｉとＰｊとは類似していると解釈される。
【００９６】
距離Ｄ（Ｐｉ，Ｐｊ）は、例えば、［数４］で表されるユークリッド距離である。
【００９７】
Ｄ（Ｐｉ，Ｐｊ）  ＝  ｓｑｒｔ（Σ｛ａｎ−ｂｎ｝＾２）      ・・・［数４］
ただし、
ｎ  ：  １から６までの整数
ｓｑｒｔ（ｘ）  ：  ｘの平方根
ｘ＾２  ：  ｘの２乗
Σ  ：  ｎ＝１からｎ＝６までの和
である。
【００９８】
なお、距離Ｄ（Ｐｉ，Ｐｊ）を計算するための関数の違いにより、クラスター分析にはウォード法、最短距離法、最長距離法などが知られているが、ここでは詳しい説明は省略する。
【００９９】
（３）データ集合Ｐの中から、最も類似している分析対象の組み合わせを特定する。つまり、距離Ｄ（Ｐｉ，Ｐｊ）が最も小さい分析対象Ｐｉ，Ｐｊの組み合わせを特定する。
【０１００】
（４）上記（３）で特定された分析対象Ｐｉ，Ｐｊの組み合わせを１つのクラスターに併合し、新たなクラスターＫを生成する。すなわち、特定された分析対象Ｐｉ，Ｐｊをデータ集合Ｐから削除し、新たに生成されたクラスターＫをデータ集合Ｐに加える。クラスターＫの重心点をセントロイドという。
【０１０１】
（５）以上の処理を、所定の終了条件を満たすまで繰り返す。例えば、所定の終了条件には、「所定数のクラスターに分類されるまで」、「すべての分析対象が１つのクラスターに分類されるまで」、「所定の類似度が得られなくなるまで」などがある。
【０１０２】
結果として、Ｎ個の分析対象は、デンドログラムと呼ばれる階層構造で並べられる。Ｎ個の分析対象は、複数のクラスターに分類される。同じクラスターに分類された分析対象同士は、所定の条件の下、互いに類似する性格をもつ。
【０１０３】
本実施形態では、クラスター分析の対象となるデータは、出発位置の座標と到達位置の座標との組み合わせ（ａ１，ａ２，ａ３，ａ４，ａ５，ａ６）である。クラスター分析により、出発位置が近く且つ到達位置が近い座標の組み合わせが取得される。簡単に言えば、相手に最も攻撃をしやすい位置と、相手から最も攻撃を受けやすい位置と、の組み合わせが求まる。
【０１０４】
なお、２次元仮想空間の場合には、出発位置（ａ１’，ａ２’）と到達位置（ａ３’，ａ４’）との組み合わせは、４つのパラメータａ１’，ａ２’，ａ３’，ａ４’を用いる４次元空間の中の１点の座標（ａ１’，ａ２’，ａ３’，ａ４’）を意味する。クラスター分析の対象となるデータは、出発位置の座標と到達位置の座標との組み合わせ（ａ１’，ａ２’，ａ３’，ａ４’）である。
【０１０５】
次に、ゲーム装置２００の機能的な構成の詳細について説明する。本実施形態のゲーム装置２００は、判定部２０１、記憶部２０２、分類部２０３、取得部２０４、配置部２０５を備える。
【０１０６】
ゲーム装置２００にて実行される仮想空間内におけるゲームには、１つ以上のプレイヤーキャラクター３１０と１つ以上の敵キャラクター３２０とを含む複数のキャラクター、及び、１つ以上の障害物３３０が存在する。このゲームでは、プレイヤーキャラクター３１０と敵キャラクター３２０が、例えば銃を撃ち合って、戦闘する。
【０１０７】
判定部２０１は、ゲーム内の複数のキャラクターのうち、第１キャラクター（攻撃をする側）から発せられた攻撃が障害物３３０に遮られずに第２キャラクター（攻撃をされる側）に命中したか否かを判定する。第１キャラクターがプレイヤーキャラクター３１０の場合には第２キャラクターが敵キャラクター３２０であり、逆に第１キャラクターが敵キャラクター３２０の場合には第２キャラクターがプレイヤーキャラクター３１０である。ＣＰＵ  １０１が判定部２０１として機能する。
【０１０８】
より詳細には、ＣＰＵ  １０１は、第１キャラクターの位置（あるいは銃の位置）、第１キャラクターの向き（あるいは銃の向き）、銃の発射速度、仮想空間内の重力場、仮想空間内の風の強さや向きなどから、発射された弾丸オブジェクトが進む軌道を計算し、計算された軌道上に障害物３３０が存在せず且つ第２キャラクターが存在すれば、攻撃が命中したと判定する。
【０１０９】
記憶部２０２は、判定部２０１により命中したと判定された攻撃を発した第１キャラクターの位置を出発位置とし、その攻撃が命中したときの第２キャラクターの位置を到達位置として指定する、命中情報リスト２５０を記憶する。また、記憶部２０２は、仮想空間内に配置される障害物３３０の位置を記憶する。ＣＰＵ  １０１と外部メモリ１０６が協働して記憶部２０２として機能する。
【０１１０】
図５は、命中情報リスト２５０の構成例を示す図である。命中情報リスト２５０には、項番と、１つの出発位置の座標値と、１つの到達位置の座標値と、が対応付けられて記憶される。１組の項番と出発位置と到達位置の組み合わせを「命中情報」と呼ぶ。命中情報のそれぞれが、後述する分類部２０３による分析対象となる。項番は、命中情報を区別するための識別子である。
【０１１１】
ＣＰＵ  １０１は、プレイヤーキャラクター３１０から敵キャラクター３２０への１つの攻撃が命中するごとに１個の命中情報を追加していき、現在から所定期間だけ過去の期間の命中情報を蓄積していく。ＣＰＵ  １０１は、記憶されてから所定期間が経過した命中情報を、命中情報リスト２５０から削除する。例えば、命中情報リスト２５０には、過去Ｘ時間以内に成功したＮ回（Ｎは１以上の整数）の攻撃のそれぞれに対応するＮ個の命中情報が記憶される。例えば、命中情報リスト２５０には、直近のＸ回のゲームの中で成功したＮ回の攻撃のそれぞれに対応するＮ個の命中情報が記憶される。
【０１１２】
あるいは、ＣＰＵ  １０１は、命中情報の数が所定の上限値に達するまで、１つの攻撃が命中するごとに１個の命中情報を追加してもよい。そして、全レコード数が上限値に達した後に更に攻撃が命中すると、ＣＰＵ  １０１は、既に記憶されている命中情報のうち最も古い命中情報を削除し、最も新しく命中した攻撃に対応する命中情報を追加してもよい。
【０１１３】
本実施形態では、ＣＰＵ  １０１は、プレイヤーキャラクター３１０から敵キャラクター３２０への攻撃に対応する命中情報を外部メモリ１０６に記憶させる。しかし、ＣＰＵ  １０１は、プレイヤーキャラクター３１０から敵キャラクター３２０への攻撃の代わりに、あるいは、プレイヤーキャラクター３１０から敵キャラクター３２０への攻撃に加えて、敵キャラクター３２０からプレイヤーキャラクター３１０への攻撃に対応する命中情報を外部メモリ１０６に記憶させてもよい。
【０１１４】
次に、分類部２０３は、命中情報リスト２５０に記憶される命中情報をクラスター分析して、それぞれの命中情報を複数のクラスターに分類する。すなわち、ＣＰＵ  １０１は、命中情報リスト２５０に含まれるすべて命中情報の中から類似するもの同士を同じクラスターに分類し、すべての命中情報を幾つかのクラスターにグループ分けする。互いに類似する命中情報は、所定の条件に基づき、同一のクラスターに分類されることとなる。ＣＰＵ  １０１と画像処理部１０８が協働して分類部２０３として機能する。
【０１１５】
図６は、マップ４００上に、所定期間内における命中情報（出発位置と到達位置の組み合わせ）をプロットした図である。説明の簡略化のため、Ｚ方向を省略し、平面のマップで表現している。白マルが出発位置を示し、黒マルが到達位置を示す。数字は命中情報の項番を示す。
【０１１６】
本実施形態では、ＣＰＵ  １０１は、図５に示す出発位置の座標と到達位置の座標との組み合わせから構成される６次元パラメータをクラスター分析する。クラスター分析に用いる距離として、上記［数４］で表されるユークリッド距離を採用する。ユークリッド距離が所定距離Ｒ以内にある命中情報は、同一のクラスターに分類される。
【０１１７】
例えば図６において、項番「１」の出発位置と項番「１」の到達位置との組み合わせである命中情報Ｐ１（ａ１，ａ２，ａ３，ａ４，ａ５，ａ６）と、項番「２」の出発位置と項番「２」の到達位置との組み合わせである命中情報Ｐ２（ｂ１，ｂ２，ｂ３，ｂ４，ｂ５，ｂ６）と、対応する距離Ｄ１２は、［数５］で表される。
【０１１８】
Ｄ１２＝ｓｑｒｔ｛（ｂ１−ａ１｝＾２  ＋  （ｂ２−ａ２｝＾２
＋  （ｂ３−ａ３｝＾２  ＋  （ｂ４−ａ４｝＾２
＋  （ｂ５−ａ５｝＾２  ＋  （ｂ６−ａ６｝＾２｝  ・・・［数５］
【０１１９】
ＣＰＵ  １０１は、距離Ｄ１２を計算し、距離Ｄ１２が所定距離Ｒ以下か否かを判別する。距離Ｄ１２が所定距離Ｒ以下であると判別した場合、ＣＰＵ  １０１は、２つの命中情報Ｐ１，Ｐ２を同じクラスターに分類する。
【０１２０】
同様に、ＣＰＵ  １０１は、項番「１」の出発位置と項番「１」の到達位置との組み合わせである命中情報Ｐ１（ａ１，ａ２，ａ３，ａ４，ａ５，ａ６）と、項番「３」の出発位置と項番「３」の到達位置との組み合わせである命中情報Ｐ３（ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６）と、対応する距離Ｄ１３を計算する。そして、距離Ｄ１３が所定距離Ｒ以下であると判別した場合、ＣＰＵ  １０１は、２つの命中情報Ｐ１，Ｐ３を同じクラスターに分類する。
【０１２１】
ＣＰＵ  １０１は、同様の処理を繰り返し、Ｎ個の命中情報をクラスター分析する。
【０１２２】
図７は、図６に示される命中情報のそれぞれをクラスターに分けた結果を表す概念図である。図７では、１０個の命中情報が５個のクラスター７０１〜７０５に分類されている。各クラスターに含まれる命中情報は次の通りである。
【０１２３】
第１のクラスター７０１  ：  ｛Ｐ１，Ｐ２，Ｐ３，Ｐ４｝
第２のクラスター７０２  ：  ｛Ｐ５，Ｐ６，Ｐ７｝
第３のクラスター７０３  ：  ｛Ｐ８｝
第４のクラスター７０４  ：  ｛Ｐ９｝
第５のクラスター７０５  ：  ｛Ｐ１０｝
【０１２４】
なお、図７は、クラスターに分けた結果の一例に過ぎない。命中情報同士の距離の計算の仕方、あるいは、所定距離Ｒの定義によっては、異なる結果が得られることは言うまでもない。
【０１２５】
次に、取得部２０４は、分類部２０３によって分類されて得られる複数のクラスターの中から、所定個数のクラスターを選択する。そして、取得部２０４は、選択したクラスターのそれぞれのセントロイドに指定される出発位置と到達位置とを取得する。セントロイドはクラスターの重心である。ＣＰＵ  １０１が取得部２０４として機能する。
【０１２６】
所定個数が複数の場合、ＣＰＵ  １０１は、分類部２０３によって得られたクラスターのそれぞれについて、クラスターに含まれる命中情報の個数に基づいて、クラスターを選択する。
【０１２７】
例えば、図７において、ＣＰＵ  １０１は、クラスターに含まれる命中情報の数が最も多いクラスター７０１を選択してもよい。
【０１２８】
ＣＰＵ  １０１は、クラスターに含まれる命中情報の数が多い順に、２つ以上のクラスターを選択してもよい。
【０１２９】
更に、ＣＰＵ  １０１は、選択したクラスターのセントロイドを計算し、セントロイドが示す出発位置と到達位置を計算する。セントロイドは、クラスターに含まれる命中情報が示す座標の平均値で表される。例えば、図７に示すクラスター７０１のセントロイドＣ７０１の座標は、［数６］で表される。
【０１３０】
Ｃ７０１  ：  （Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６）
Ｃｉ  ＝  （ａｉ＋ｂｉ＋ｃｉ＋ｄｉ）／４    （ｉ＝１，２，３，４，５，６）
・・・［数６］
【０１３１】
そして、ＣＰＵ  １０１は、選択したクラスターのセントロイドに指定される出発位置の座標と到達位置の座標とを取得する。
【０１３２】
図８は、セントロイド８００で指定される出発位置と到達位置を説明するための図である。図８に示すように、ＣＰＵ  １０１は、セントロイド８００を表す６次元座標のうち、出発位置に相当する１番目から３番目のパラメータＣ１，Ｃ２，Ｃ３を組み合わせて得られる点ＣＳＴＡＲＴの座標（Ｃ１，Ｃ２，Ｃ３）と、到達位置に相当する４番目から６番目のパラメータＣ４，Ｃ５，Ｃ６を組み合わせて得られる点ＣＥＮＤの座標（Ｃ４，Ｃ５，Ｃ６）と、を取得する。
【０１３３】
線分８４０は、点ＣＳＴＡＲＴと点ＣＥＮＤを結ぶ線であり、典型的には直線の形状をしている。この線分８４０上において、点ＣＳＴＡＲＴからの距離と点ＣＥＮＤからの距離が等しい点が中点８５０である。
【０１３４】
なお、クラスターを２つ以上選択する場合、ＣＰＵ  １０１は、選択したクラスターのそれぞれについて、セントロイドに指定される出発位置の座標と到達位置の座標とを取得する。
【０１３５】
次に、配置部２０５は、取得部２０４によって取得された点ＣＳＴＡＲＴから、同じく取得部２０４によって取得された点ＣＥＮＤまでの間に、障害物３３０を配置する。ＣＰＵ  １０１が配置部２０５として機能する。
【０１３６】
具体的には、図９に示すように、ＣＰＵ  １０１は、点ＣＳＴＡＲＴと点ＣＥＮＤとを結ぶ線分８４０上に、新たな障害物９００を配置する。例えば、ＣＰＵ  １０１は、線分８４０の中点８５０と障害物９００の中心点とが重なるように、新たな障害物９００を配置する。新たに配置する障害物９００は、例えば、建物、樹木、丘などの地形、車両、敵ではない人物などのオブジェクトである。
【０１３７】
ただし、ＣＰＵ  １０１は、線分８４０上の任意の点が障害物３３０と重なるように、新たな障害物９００を配置してもよい。
【０１３８】
ＣＰＵ  １０１は、仮想空間内に新たな障害物９００を出現させてもよいし、既に配置されている障害物３３０の配置、大きさ、向きなどを変更することにより、新たな障害物９００を配置したときと同じ効果が得られるようにしてもよい。つまり、仮想空間内の障害物３３０，９００の総数が増加してもよいし、変わらなくてもよい。
【０１３９】
例えば図１０（ａ）は、セントロイドで指定される点ＣＳＴＡＲＴ，点ＣＥＮＤ付近を拡大し、Ｚ方向から（真上から）俯瞰したマップ１０１０である。図１０（ａ）に示すように、ＣＰＵ  １０１は、トラック、戦車などの移動可能な車両オブジェクト１０１５を仮想空間内に新たに登場させ、線分８４０上の任意の点の位置に停車させることにより、新たな障害物９００を配置することとしてもよい。あるいは、ＣＰＵ  １０１は、仮想空間内に既に配置している車両オブジェクト１０１５を線分８４０上の任意の点の位置に向かって走らせ、停車させることにより、新たな障害物９００を配置することとしてもよい。このようにすれば、特定のプレイヤーが極端に有利（不利）にならないように、且つ、プレイヤーに違和感を与えることのないように、仮想空間内に障害物９００を配置することができる。
【０１４０】
例えば図１０（ｂ）は、セントロイドで指定される点ＣＳＴＡＲＴ，点ＣＥＮＤ付近を拡大し、Ｚ方向から俯瞰したマップ１０２０である。図１０（ｂ）に示すように、ＣＰＵ  １０１は、線分８４０から所定距離範囲内に既に配置されている建物オブジェクト１０２５を線分８４０と交差するように倒壊させる（つまり、建物オブジェクト１０２５の形状や向きを変化させる）ことによって、新たな障害物９００を配置したものとしてもよい。このようにすれば、特定のプレイヤーが極端に有利（不利）にならないように、且つ、プレイヤーに違和感を与えることのないように、仮想空間内に障害物９００を配置することができる。
【０１４１】
例えば図１０（ｃ），（ｄ）は、セントロイドで指定される点ＣＳＴＡＲＴ，点ＣＥＮＤ付近を拡大し、Ｘ方向から（真横から）見たマップ１０３０である。ＣＰＵ  １０１は、図１０（ｃ）に示すように地面オブジェクト１０３２の上に既に配置している樹木オブジェクト１０３５Ａ，１０３５Ｂ，１０３５Ｃのうち中点８５０に最も近い樹木オブジェクト１０３５Ｂを、図１０（ｄ）に示すように線分８４０と交差するまでＺ方向に伸ばす（つまり、樹木オブジェクト１０３５Ｂの形状、向き、大きさを変化させる）ことによって、新たな障害物９００を配置したものとしてもよい。あるいは、ＣＰＵ  １０１は、既に配置している樹木オブジェクト１０３５Ｂを、新たな樹木オブジェクト（新たな障害物オブジェクト）９００に置き換えても良い。ただし、ＣＰＵ  １０１は、樹木オブジェクト１０３５Ｂの代わりに、もしくは、樹木オブジェクト１０３５Ｂに加えて、樹木オブジェクト１０３５Ａ及び／又は樹木オブジェクト１０３５Ｃを、新たな樹木オブジェクト（新たな障害物オブジェクト）９００に置き換えても良い。
【０１４２】
なお、クラスターを２つ以上選択する場合、ＣＰＵ  １０１は、選択したクラスターのセントロイドに指定されるそれぞれの出発位置ＣＳＴＡＲＴの座標と到達位置ＣＥＮＤの座標とを用いて、新たな障害物９００を配置する位置を求め、障害物９００を配置する。つまり、選択したクラスターと同数の障害物９００が配置される。
【０１４３】
次に、本実施形態の上記各部が実行するゲーム処理について、図１１のフローチャートを用いて説明する。
【０１４４】
以下の説明においては、第１キャラクター（攻撃をする側のキャラクター）がプレイヤーキャラクター３１０であり、第２キャラクター（攻撃をされる側のキャラクター）が敵キャラクター３２０であるとする。ただし、反対に、第１キャラクターを敵キャラクター３２０とし、第２キャラクターをプレイヤーキャラクター３１０としてもよい。仮想空間内には、１つのプレイヤーキャラクター３１０と、１つ以上の敵キャラクター３２０と、が存在する。
【０１４５】
まず、ＣＰＵ  １０１は、第１キャラクターが発した攻撃が第２キャラクターに命中したか否かを判別する（ステップＳ１１０１）。
【０１４６】
攻撃が命中していないと判別した場合（ステップＳ１１０１；ＮＯ）、ＣＰＵ  １０１は、ステップＳ１１０１の処理を繰り返す。
【０１４７】
攻撃が命中したと判別した場合（ステップＳ１１０１；ＹＥＳ）、ＣＰＵ  １０１は、攻撃が命中したときの第１キャラクター（プレイヤーキャラクター３１０）の位置を出発位置とし、攻撃が命中したときの第２キャラクター（敵キャラクター３２０）の位置を到達位置とする１つの命中情報を、命中情報リスト２５０に追加する（ステップＳ１１０２）。それぞれの位置は３次元の座標値で表される。命中情報は、出発位置の３次元座標と到着位置の３次元座標を組み合わせて表される。１つの命中情報は、６次元空間内の１つの点に相当する。
【０１４８】
次に、ＣＰＵ  １０１は、命中情報リスト２５０に格納されている命中情報の総数が所定個数（Ｎ個）に達したか否かを判別する（ステップＳ１１０３）。言い換えれば、ＣＰＵ  １０１は、プレイヤーキャラクター３１０が敵キャラクター３２０（敵キャラクター３２０が複数の場合にはそれらのうちのいずれか）をＮ回攻撃し且つそれらのＮ回の攻撃が命中したかどうか、が判別される。
【０１４９】
攻撃が命中した回数が所定個数に達していないと判別した場合（ステップＳ１１０３；ＮＯ）、ＣＰＵ  １０１は、ステップＳ１１０１〜Ｓ１１０３の処理を繰り返す。つまり、命中情報の数が所定個数に達するまで同様の処理が繰り返される。
【０１５０】
攻撃が命中した回数が所定個数に達したと判別した場合（ステップＳ１１０３；ＹＥＳ）、ＣＰＵ  １０１は、格納されているＮ個の命中情報を、複数のクラスターに分類する（ステップＳ１１０４）。具体的には、ＣＰＵ  １０１は、格納されているすべての命中情報から構成される全体集合を、上述のクラスター分析を用いて、複数の部分集合（クラスター）に分類する。例えば、ＣＰＵ  １０１は、上記［数４］を用いて任意の２つの命中情報の組み合わせについて距離を求め、求めた距離が所定値以下である組み合わせが示す２つの命中情報を、同一のクラスターに分類する。
【０１５１】
つまり、プレイヤーキャラクター３１０から敵キャラクター３２０へのＮ回の攻撃の中に、攻撃が命中したときのプレイヤーキャラクター３１０の位置と敵キャラクター３２０の位置がいずれも近い２つの攻撃がある場合、それらの攻撃は「互いに類似する攻撃」に分類される。互いに類似する命中情報は、プレイヤーキャラクター３１０の敵キャラクター３２０への攻撃が成功しやすいような両者の位置関係を表す。
【０１５２】
また、ＣＰＵ  １０１は、分類されたクラスターの中から、クラスターを選択する（ステップＳ１１０５）。本実施形態では、ＣＰＵ  １０１は、分類されたクラスターの中から、含まれる命中情報が最も多いクラスターを１つだけ選択する。
【０１５３】
含まれる命中情報が最も多いクラスターは、互いに類似する攻撃が最も多いことを意味する。すなわち、選択されたクラスターに含まれる命中情報が示す出発位置の分布は、プレイヤーキャラクター３１０にとって最も有利な攻撃元エリアの目安となる。また、選択されたクラスターに含まれる命中情報が示す到達位置の分布は、プレイヤーキャラクター３１０にとって最も有利な攻撃先エリアの目安となる。
【０１５４】
更に、ＣＰＵ  １０１は、選択したクラスターのセントロイドを求め、求めたセントロイドで指定される出発位置ＣＳＴＡＲＴと到達位置ＣＥＮＤを取得する（ステップＳ１１０６）。
【０１５５】
取得される出発位置は、プレイヤーキャラクター３１０にとって最も有利な攻撃元エリアの中心位置である。また、取得される到達位置は、プレイヤーキャラクター３１０にとって最も有利な攻撃先エリアの中心位置である。プレイヤーキャラクター３１０は、選択されたクラスターのセントロイドで指定される出発位置ＣＳＴＡＲＴから、選択されたクラスターのセントロイドで指定される到達位置ＣＥＮＤへの攻撃が、最も成功しやすい、と推定される。
【０１５６】
そして、ＣＰＵ  １０１は、ステップＳ１１０６で取得した出発位置ＣＳＴＡＲＴと到達位置ＣＥＮＤとの間に、障害物９００を配置する（ステップＳ１１０７）。例えば、ＣＰＵ  １０１は、取得した出発位置ＣＳＴＡＲＴと到達位置ＣＥＮＤとを結ぶ線分８４０の中点８５０に、障害物９００を配置する。つまり、プレイヤーキャラクター３１０から敵キャラクター３２０への攻撃が最も成功しやすいと推定される軌道上に、攻撃が失敗する可能性が高まるような新たな障害物９００が配置される。
【０１５７】
本実施形態によれば、ゲーム装置２００は、キャラクター同士が対戦するゲームにおいて、一方のキャラクターが他方のキャラクターに比べて有利になりすぎないように（不利になりすぎないように）ゲームバランスを調整することができる。例えば、ゲーム制作者がゲームのシナリオや敵キャラクター３２０の配置の仕方を予め考えてマップ４００を用意し、プレイヤーにゲームをプレイしてもらうと、ゲーム制作者が想定していない攻撃やゲームバランスを大きく損ねる攻撃が可能なことが後で分かる場合がある。もし、そのような想定外の攻撃が可能な状況をそのまま放置しておくと、ゲームが簡単になり過ぎてしまったり難しくなり過ぎてしまったりする恐れがある。また、プレイヤーのゲームへの関心・執着心が薄れてしまう恐れがある。しかし、本発明によれば、仮にゲームバランスを大きく損ねる攻撃が可能なことがゲームのリリース後に判明したとしても、ゲームバランスの偏りを無くすようにゲーム装置２００が自動的に調整することが可能になる。
【０１５８】
（実施形態２）
次に、本発明のその他の実施形態について説明する。上記実施形態では、一方のキャラクターから他方のキャラクターへのすべての攻撃のうち、命中した攻撃のみの出発位置と到達位置を用いて、新たな障害物を配置する位置が決められる。本実施形態では、すべての攻撃のうち命中しなかった（失敗した）攻撃についての情報も考慮され、新たな障害物を配置する位置が決められる点で、上記実施形態と異なる。
【０１５９】
図１２は、本実施形態における命中情報リスト１２００の構成例を示す図である。命中情報リスト１２００には、相手に命中した攻撃に対応付けられる命中情報（図１２では項番「１，２，３，Ｘ」の４項目。）と、それ以外の情報（以下「失敗情報」という。図１２では項番「ｍ，ｎ」の２項目。）と、が含まれる。本実施形態では、記憶部２０２には、図５に示す命中情報リスト２５０の代わりに、図１２に示す命中情報リスト１２００が記憶される。
【０１６０】
命中情報リスト１２００は、項番と出発位置と到達位置に加えて、その攻撃が成功したか失敗したかを示すフラグを更に対応付けて記憶する。ＣＰＵ  １０１は、プレイヤーキャラクター３１０が攻撃を発すると、その攻撃に対応する命中情報又は失敗情報を外部メモリ１０６に記憶させる。ただし、ＣＰＵ  １０１は、プレイヤーキャラクター３１０による攻撃の代わりに、もしくは、プレイヤーキャラクター３１０による攻撃に加えて、敵キャラクター３２０による攻撃に対応する命中情報又は失敗情報を外部メモリ１０６に記憶させてもよい。
【０１６１】
失敗情報が示す出発位置は、第１キャラクターによる攻撃であって第２キャラクターには命中しなかった攻撃を発したときの第１キャラクターの位置である。
【０１６２】
失敗情報が示す到達位置は、第１キャラクターによる攻撃であって第２キャラクターには命中しなかった攻撃がなされた攻撃対象位置である。例えば、第１キャラクターがミサイルを発射したものの第２キャラクターに命中しなかったとき、そのミサイルの着弾位置が失敗位置である。
【０１６３】
なお、失敗情報については、少なくとも出発位置が記憶されていればよく、必ずしも到達位置が対応付けられて記憶されていなくてもよい。
【０１６４】
図１３は、マップ上に、所定期間内における命中情報（出発位置と到達位置の組み合わせ）と、同じ所定期間内における失敗情報（出発位置と到達位置の組み合わせ）をプロットした図である。説明の簡略化のため、Ｚ方向を省略し、平面のマップで表現している。白マルが命中情報の出発位置を示し、黒マルが命中情報の到達位置を示し、白サンカクが失敗情報の出発位置を示し、黒サンカクが失敗情報の到達位置を示す。数字は命中情報又は失敗情報の項番を示す。例えば図１３には、項番「１〜７」の７つの命中情報と、項番「８〜１２」の５つの失敗情報とがある。つまり、第１キャラクターは、７回攻撃が成功し、５回攻撃が失敗したことになる。
【０１６５】
本実施形態では、取得部２０４は、分類部２０３によって分類された複数のクラスターのそれぞれについて、クラスターに含まれる命中情報の個数と、クラスターに含まれる命中情報に指定される出発位置で表される領域（以下「出発領域」という。）内の位置を出発点として指定する失敗情報の個数と、の比を計算する。そして、取得部２０４は、計算された比に基づいて、所定個数のクラスターを選択する。
【０１６６】
ＣＰＵ  １０１は、上述の実施形態におけるステップＳ１１０１〜Ｓ１１０４の処理を行った後、ステップＳ１１０５において、出発領域を求め、求めた出発領域内に出発点をもつ失敗情報の個数に基づいて、いずれか１つ以上のクラスターを選択する。
【０１６７】
具体的には、ＣＰＵ  １０１は、クラスターのそれぞれについて、クラスターに含まれる命中情報が示す出発位置のすべてを含む球であって、半径が最小となる球を求める。例えば図１３に示すように、ＣＰＵ  １０１は、クラスター１３０１に含まれる項番「１〜４」の４つの命中情報が示す出発位置を含む球であって、半径が最小となる球１３２１を求める。求めた球１３２１によって囲まれる領域が、クラスター１３０１に対応する出発領域である。
【０１６８】
同様に、ＣＰＵ  １０１は、クラスター１３０２に含まれる項番「５〜７」の３つの命中情報が示す出発位置を含む球であって、半径が最小となる球１３２２を求める。求めた球１３２２によって囲まれる領域が、クラスター１３０２に対応する出発領域である。
【０１６９】
本実施形態では３次元仮想空間を扱っているので、クラスター１３０１，１３０２に対応する出発領域の形状を球にしている。しかし、２次元仮想空間を扱う場合には、クラスターに対応する出発領域の形状を円にすればよい。
【０１７０】
なお、出発領域の大きさと形状は任意であり、本発明によって限定されない。例えば、ＣＰＵ  １０１は、クラスターのセントロイドを含み、任意の図形（円、多角形、立体など）で囲まれる領域を、出発領域としてもよい。
【０１７１】
更に、ＣＰＵ  １０１は、求めた出発領域の中に出発位置が含まれる失敗情報の個数を求める。例えば図１３では、クラスター１３０１に対応する出発領域１３２１の中に出発位置が含まれる失敗情報は、項番「８〜１１」の４つの失敗情報である。残りの項番「１２」の失敗情報は、出発位置が出発領域１３２１に含まれないため、除外される。クラスター１３０２に対応する出発領域１３２２に出発位置が含まれる失敗情報の個数はゼロである。
【０１７２】
また、ＣＰＵ  １０１は、クラスター１３０１に含まれる命中情報の個数（＝４）と、出発領域１３２１に含まれる失敗情報の個数（＝４）と、の比を計算する。図１３の場合、この比は４：４である。別の表現を用いれば、クラスター１３０１に含まれる命中情報と失敗情報の総数（＝８）に対する、クラスター１３０１に含まれる命中情報の個数（＝４）の割合は、５０％である。
【０１７３】
同様に、ＣＰＵ  １０１は、クラスター１３０２に含まれる命中情報の個数（＝３）と、出発領域１３２２に含まれる失敗情報の個数（＝０）と、の比を計算する。図１３の場合、この比は３：０である。別の表現を用いれば、クラスター１３０２に含まれる命中情報と失敗情報の総数（＝３）に対する、クラスター１３０２に含まれる命中情報の個数（＝３）の割合は、１００％である。
【０１７４】
そして、ＣＰＵ  １０１は、すべてのクラスターの中から、クラスターに含まれる命中情報と失敗情報の総数に対する、クラスターに含まれる命中情報の個数の割合が、最も大きいクラスターを１つ選択する。図１３の場合、ＣＰＵ  １０１は、クラスター１３０２を選択する。
【０１７５】
更に、ステップＳ１１０６において、ＣＰＵ  １０１は、選択したクラスターのセントロイドを求め、求めたセントロイドで指定される出発位置ＣＳＴＡＲＴと到達位置ＣＥＮＤを取得する。
【０１７６】
また、ステップＳ１１０７において、ＣＰＵ  １０１は、ステップＳ１１０６で取得した出発位置ＣＳＴＡＲＴと到達位置ＣＥＮＤとの間に、新たな障害物１４００を配置する。
【０１７７】
図１４は、新たな障害物１４００が配置されたマップを表す図である。例えば、ＣＰＵ  １０１は、セントロイドで指定される出発位置ＣＳＴＡＲＴと、同じくセントロイドで指定される到達位置ＣＥＮＤと、を結ぶ線分上に、新たな障害物１４００を配置する。プレイヤーキャラクター３１０から敵キャラクター３２０への攻撃が最も成功しやすいと推定される軌道上に、攻撃が失敗する可能性が高まるような新たな障害物１４００が配置される。
【０１７８】
本実施形態によれば、ゲーム装置２００は、一方のキャラクターが他方のキャラクターに比べて有利になりすぎないように（不利になりすぎないように）ゲームバランスを調整することができる。
【０１７９】
（実施形態３）
次に、本発明のその他の実施形態について説明する。本実施形態においても、すべての攻撃のうち命中しなかった（失敗した）攻撃についての情報も考慮され、新たな障害物を配置する位置が決められる。
【０１８０】
図１５は、マップ上に、所定期間内における命中情報と、同じ所定期間内における失敗情報と、をプロットした図である。説明の簡略化のためＺ方向を省略し、平面のマップで表現している。白マルが命中情報の出発位置を示し、黒マルが命中情報の到達位置を示す。また、白サンカクが失敗情報の出発位置を示し、黒サンカクが失敗情報の到達位置を示す。数字は命中情報又は失敗情報の項番を示す。例えば図１５には、項番「１〜６」の６つの命中情報と、項番「７，８」の２つの失敗情報とがある。つまり、第１キャラクターは、６回攻撃が成功し、２回攻撃が失敗したことになる。
【０１８１】
ＣＰＵ  １０１は、分類された複数のクラスターのそれぞれについて、クラスターに含まれる命中情報に指定される出発位置が含まれる領域（つまり上述の出発領域）と、同じくクラスターに含まれる命中情報に指定される到達位置が含まれる領域（以下「到達領域」という。）と、を取得する。
【０１８２】
また、ＣＰＵ  １０１は、命中情報リスト２５０に記憶された失敗情報のうち、次の条件（ｉ），（ｉｉ）を両方とも満たす失敗情報の個数を求める。
（ｉ）失敗情報に指定される出発位置が、出発領域に含まれること。
（ｉｉ）失敗情報に指定される出発位置から失敗情報に指定される到達位置への向きが、出発領域から到達領域への向きと実質的に同じであること。
【０１８３】
ＣＰＵ  １０１は、条件（ｉ），（ｉｉ）を両方とも満たす場合に、命中情報が示す攻撃と失敗情報が示す攻撃が類似する、と判断する。条件（ｉ），（ｉｉ）を両方とも満たす攻撃は、失敗した攻撃であるものの、成功した攻撃（クラスターに含まれる命中情報が示す攻撃）と類似する攻撃である、と判断される。
【０１８４】
具体的には、例えば図１５に示すように、ＣＰＵ  １０１は、項番「１〜３」の命中情報から構成されるクラスターについて、クラスターに含まれる命中情報が示す出発位置から求められる出発領域１５１１と、クラスターに含まれる命中情報が示す到達位置から求められる到達領域１５１２と、の両方に接する接線１５１３，１５１４によって挟まれる領域１５１５を求める。
【０１８５】
また、ＣＰＵ  １０１は、出発位置が出発領域１５１１の中にあり、且つ、到達位置が領域１５１５の中にある失敗情報の個数を求める。
【０１８６】
図１５の場合、項番「８」の失敗情報は、出発領域１５１１の中に出発位置があるものの、到達位置が領域１５１５の中には含まれない。従って、項番「８」の失敗情報は、条件（ｉｉ）を満たさず、個数はゼロである。
【０１８７】
同様に、ＣＰＵ  １０１は、項番「４〜６」の命中情報から構成されるクラスターについて、クラスターに含まれる命中情報が示す出発位置から求められる出発領域１５２１と、クラスターに含まれる命中情報が示す到達位置から求められる到達領域１５２２と、の両方に接する接線１５２３，１５２４によって挟まれる領域１５２５を求める。
【０１８８】
また、ＣＰＵ  １０１は、出発位置が出発領域１５２１の中にあり、且つ、到達位置が領域１５２５の中にある失敗情報の個数を求める。
【０１８９】
図１５の場合、項番「７」の失敗情報は、出発領域１５２１の中に出発位置があり、且つ、到達位置が領域１５２５の中に含まれる。従って、項番「７」の失敗情報は、上記条件（ｉ），（ｉｉ）をいずれも満たし、個数は１である。
【０１９０】
上述のように、ＣＰＵ  １０１は、条件（ｉ），（ｉｉ）をいずれも満たす攻撃は互いに類似した攻撃である、と判断する。これは、攻撃が失敗したとはいえ、弾の発射場所が、攻撃が成功したときの弾の発射場所の近くであり、且つ、着弾場所が、攻撃が成功したときの着弾場所の近くであるならば、その攻撃は入力間違いではなくプレイヤーの意志によるものであると推定されるからである。また、その攻撃先の近くに攻撃対象があった可能性が高い、もしくは、プレイヤーはその攻撃先の近くに攻撃対象があると判断して攻撃を仕掛けた可能性が高い、と推定されるからである。
【０１９１】
なお、ＣＰＵ  １０１は、出発位置が出発領域１５１１の中にあり、且つ、到達位置が到達領域１５１２の中にある失敗情報の個数を求めてもよい。これは、図１５に図示したとき、出発位置（白サンカクの記号）が出発領域１５１１を表す球（又は円）内にあり、且つ、到達位置（黒サンカクの記号）が到達領域１５２１を表す球（又は円）内にある失敗情報の個数のことである。
【０１９２】
あるいは、ＣＰＵ  １０１は、図１６に示すように、接線１５１３，１５１４によって挟まれる領域（図１５の領域１５１５に相当する。）のうち、攻撃側（第１キャラクター）から見て到達領域１５１２より後方にある領域１６１５（図１６の網がけ部分）を求める。そして、ＣＰＵ  １０１は、出発位置が出発領域１５１１の中にあり、且つ、到達位置が領域１６１５の中にある失敗情報の個数を求めてもよい。
同様に、ＣＰＵ  １０１は、接線１５２３，１５２４によって挟まれる領域（図１５の領域１５２５に相当する。）のうち、攻撃側（第１キャラクター）から見て到達領域１５２２より後方にある領域１６２５を求める。そして、ＣＰＵ  １０１は、出発位置が出発領域１５２１の中にあり、且つ、到達位置が領域１６２５の中にある失敗情報の個数を求めてもよい。
【０１９３】
ＣＰＵ  １０１は、条件（ｉ），（ｉｉ）を両方とも満たす失敗情報の個数を求めると、求めた失敗情報の個数と、クラスターに含まれる命中情報の個数と、に基づいて、クラスターを選択する。
【０１９４】
具体的には、ＣＰＵ  １０１は、図１５に示す項番「１〜３」の命中情報から構成される第１クラスターについて、第１クラスターに含まれる命中情報の個数（＝３）と、条件（ｉ），（ｉｉ）を両方とも満たす失敗情報の個数（＝０）と、の比を計算する。図１５の場合、この比は３：０である。別の表現を用いれば、命中情報と失敗情報の総数（＝３）に対する、命中情報の個数（＝３）の割合は、１００％である。
【０１９５】
同様に、ＣＰＵ  １０１は、図１５に示す項番「４〜６」の命中情報から構成される第２クラスターについて、第２クラスターに含まれる命中情報の個数（＝３）と、条件（ｉ），（ｉｉ）を両方とも満たす失敗情報の個数（＝１）と、の比を計算する。図１５の場合、この比は３：１である。別の表現を用いれば、命中情報と失敗情報の総数（＝４）に対する、命中情報の個数（＝３）の割合は、７５％である。
【０１９６】
ＣＰＵ  １０１は、命中情報の個数の割合が大きい方のクラスターを選択する。図１５の場合、ＣＰＵ  １０１は、項番「１〜３」の命中情報から構成される第１クラスターを選択する。
【０１９７】
そして、図１７に示すように、ＣＰＵ  １０１は、上記実施形態と同様に、選択したクラスターのセントロイドを求め、求めたセントロイドで指定される出発位置ＣＳＴＡＲＴと到達位置ＣＥＮＤを取得する。ＣＰＵ  １０１は、取得した出発位置ＣＳＴＡＲＴと到達位置ＣＥＮＤとの間に、新たな障害物１７００を配置する。典型的には、ＣＰＵ  １０１は、取得した出発位置ＣＳＴＡＲＴと到達位置ＣＥＮＤとを結ぶ線分の中点に、新たな障害物１７００を配置する。
【０１９８】
本実施形態によれば、ゲーム装置２００は、一方のキャラクターが他方のキャラクターに比べて有利になりすぎないように（不利になりすぎないように）ゲームバランスを調整することができる。
【０１９９】
（実施形態４）
次に、本発明のその他の実施形態について説明する。上記各実施形態では、ＣＰＵ  １０１は、６次元空間内の複数の点（複数の命中情報が示す点）をクラスター分析している。多次元空間におけるクラスター分析のためには多くの計算が必要である。しかし、一般に広く普及しているゲーム機などで上記処理を行うと、ゲームの実行に支障を来す程度に多大な負荷がかかってしまう恐れがある。そこで、本実施形態では、上述の分類部２０３と取得部２０４が行う処理を簡素化する工夫がなされている。以下詳述する。
【０２００】
図１８は、本実施形態のゲーム装置１８００の機能的な構成を示す図である。ゲーム装置１８００は、判定部１８０１、記憶部１８０２、第１の分類取得部１８０３、第２の分類取得部１８０４、配置部１８０５を備える。
【０２０１】
判定部１８０１は、上記各実施形態における判定部２０１と同様の構成を有する。すなわち、判定部１８０１は、ゲーム内の複数のキャラクターのうち、第１キャラクター（攻撃をする側のキャラクター）から発せられた攻撃が第２キャラクター（攻撃を受ける側のキャラクター）に命中したか否かを判定する。第１キャラクターがプレイヤーキャラクター３１０の場合には第２キャラクターが敵キャラクター３２０であり、逆に第１キャラクターが敵キャラクター３２０の場合には第２キャラクターがプレイヤーキャラクター３１０である。ＣＰＵ  １０１が判定部１８０１として機能する。
【０２０２】
記憶部１８０２は、上記各実施形態における記憶部２０２と同様の構成を有する。すなわち、記憶部１８０２は、判定部１８０１により命中したと判定された攻撃を発した第１キャラクターの位置を出発位置とし、その攻撃が命中したときの第２キャラクターの位置を到達位置として指定する、命中情報リスト１８５０を記憶する。命中情報リスト１８５０は、上記各実施形態における命中情報リスト２５０と同様の構成を有する。ＣＰＵ  １０１と外部メモリ１０６が協働して記憶部１８０２として機能する。
【０２０３】
第１の分類取得部１８０３は、命中情報リスト１８５０に記憶された命中情報に指定される到達位置のそれぞれについて、到達位置から第１所定距離Ｒ１範囲内の他の到達位置の数（以下「第１の数」という。）を求める。また、第１の分類取得部１８０３は、求めた第１の数に基づいて、複数の到達位置を複数のクラスター（以下「第１クラスター」という。）に分類する。そして、第１の分類取得部１８０３は、分類された複数の第１クラスターの中から、少なくとも１つの第１クラスターを取得する。ＣＰＵ  １０１と画像処理部１０８が協働して第１の分類取得部１８０３として機能する。
【０２０４】
具体的には、図１９に示すように、ＣＰＵ  １０１は、項番「１」の到達位置の座標と、項番「１」以外の他の到達位置の座標と、の距離を計算する。そして、ＣＰＵ  １０１は、計算された距離がＲ１以内であれば、項番「１」の到達位置と当該他の到達位置とを同じクラスターに分類する。ＣＰＵ  １０１は、同様の処理を他の到達位置についても行う。この時点で、１つの到達位置は、複数の異なるクラスターに分類されることがある。例えば図１９では、すべての到達位置は、２つの第１クラスター１９１０，１９２０に分類されている。
【０２０５】
ＣＰＵ  １０１は、計算された距離がＲ１以内の到達位置の組み合わせの数が所定の閾値以上の場合にのみ、それらの到達位置を同じクラスターに分類することとしてもよい。言い換えれば、１つのクラスターには少なくとも所定の閾値以上の個数の到達位置が含まれるようにしてもよい。
【０２０６】
ＣＰＵ  １０１は、第１クラスターに含まれる到達位置の数（第１の数）をそれぞれ求める。例えば図１９では、第１クラスター１９１０に含まれる到達位置は４個であり、第１クラスター１９２０に含まれる到達位置は５個である。
【０２０７】
ＣＰＵ  １０１は、求めた第１の数が最も多いクラスターを１つ選択する。例えば図１９では、第１クラスター１９２０が選択される。選択されたクラスターに含まれる到達位置の分布は、第２キャラクター（攻撃を受ける側のキャラクター）にとって最も不利なエリアがどこであるかを判断するための目安となる。
【０２０８】
そして、ＣＰＵ  １０１は、選択したクラスターの中心に対応する到達位置ＣＥＮＤを取得する。クラスターの中心は、典型的には、選択したクラスターに含まれる到達位置の座標の平均値で表される。
【０２０９】
次に、第２の分類取得部１８０４は、第１の分類取得部１８０３により取得された第１クラスターに含まれる複数の到達位置に対応付けられる出発位置のそれぞれについて、出発位置から第２所定距離Ｒ２範囲内の他の出発位置の数（以下「第２の数」という。）を求める。また、第２の分類取得部１８０４は、求めた第２の数に基づいて、複数の出発位置を複数のクラスター（以下「第２クラスター」という。）に分類する。そして、第２の分類取得部１８０４は、分類された複数の第２クラスターの中から、少なくとも１つの第２クラスターを取得する。ＣＰＵ  １０１と画像処理部１０８が協働して第２の分類取得部１８０４として機能する。
【０２１０】
具体的には、図２０に示すように、ＣＰＵ  １０１は、選択した第１クラスター１９２０に含まれる到達位置（項番「５〜９」の５つ）に対応する出発位置の１つ（例えば項番「６」の出発位置）の座標と、同じ第１クラスターに含まれる到達位置に対応する他の出発位置の座標と、の距離を計算する。そして、ＣＰＵ  １０１は、計算された距離がＲ２以内であれば、項番「６」の出発位置と当該他の出発位置とを同じクラスターに分類する。ＣＰＵ  １０１は、同様の処理を他の出発位置についても行う。この時点で、１つの出発位置は、複数の異なるクラスターに分類されることがある。例えば図２０では、すべての出発位置は、２つの第２クラスター２０１０，２０２０に分類されている。
【０２１１】
ＣＰＵ  １０１は、計算された距離がＲ２以内の出発位置の組み合わせの数が所定の閾値以上の場合にのみ、それらの出発位置を同じクラスターに分類することとしてもよい。言い換えれば、１つのクラスターには少なくとも所定の閾値以上の個数の出発位置が含まれるようにしてもよい。
【０２１２】
ＣＰＵ  １０１は、第２クラスターに含まれる到達位置の数（第２の数）をそれぞれ求める。例えば図２０では、第２クラスター２０１０に含まれる出発位置は１個であり、第２クラスター２０２０に含まれる到達位置は４個である。
【０２１３】
ＣＰＵ  １０１は、求めた第２の数が最も多いクラスターを少なくとも１つ選択する。例えば図２０では、第２クラスター２０２０が選択される。選択されたクラスターに含まれる出発位置の分布は、第２キャラクター（攻撃を受ける側のキャラクター）が最も不利なエリアに存在するときに、第１キャラクター（攻撃をする側にキャラクター）が最も攻撃しやすいエリアがどこであるか、を判断するための目安となる。つまり、第１キャラクターが最も攻撃しやすく、且つ、第２キャラクターが最も攻撃されやすいような位置関係が分かる。
【０２１４】
そして、ＣＰＵ  １０１は、選択したクラスターの中心に対応する出発位置ＣＳＴＡＲＴを取得する。クラスターの中心は、典型的には、選択したクラスターに含まれる出発位置の座標の平均値で表される。
【０２１５】
次に、配置部１８０５は、第１の分類取得部１８０３により取得された到達位置ＣＥＮＤから、第２の分類取得部１８０４により取得された出発位置ＣＳＴＡＲＴまでの間に、図２１に示すように、障害物２１００を配置する。ＣＰＵ  １０１が配置部１８０５として機能する。
【０２１６】
具体的には、ＣＰＵ  １０１は、選択した第１クラスターの中心点と、選択した第１クラスターに含まれる到達位置と、の距離の最大値を半径とする球２１４０上（もしくは円上）の点であって、点ＣＳＴＡＲＴと点ＣＥＮＤとを結ぶ線分２１２０と交わる点の位置に、新たな障害物２１００を配置する。
【０２１７】
あるいは、図２２に示すように、ＣＰＵ  １０１は、点ＣＳＴＡＲＴと点ＣＥＮＤとを結ぶ線分２１２０上の任意の位置に、新たな障害物２１００を配置してもよい。例えば、ＣＰＵ  １０１は、線分２１２０の中点と障害物２１００の中心点とが重なるように、新たな障害物２１００を配置してもよい。
【０２１８】
本実施形態によれば、ゲーム装置１８００は、一方のキャラクターが他方のキャラクターに比べて有利になりすぎないように（不利になりすぎないように）ゲームバランスを調整することができる。また、上記各実施形態に比べて、ゲーム装置１８００が行う処理が簡単になり、負荷を軽減することができる。
【０２１９】
（実施形態５）
次に、本発明のその他の実施形態について説明する。本実施形態では、ゲーム装置２００は、所定の消去条件を満たす場合に、既に配置した障害物３３０を消去することができる。本実施形態は、上述の各実施形態のいずれとも組み合わせて実施することができる。以下の説明では、実施形態１の変形例として説明する。
【０２２０】
所定の消去条件は、「仮想空間内に新たに配置した障害物９００の数が所定の閾値を超えること」である。命中情報が１件も記憶されていない状態において配置される既定の障害物３３０は、消去の対象から除外される。
【０２２１】
図２３に示すように、本実施形態の記憶部２０２は、新たに配置した障害物９００の識別符号と、障害物９００の位置座標と、障害物９００を配置した日時と、の組み合わせ（以下「障害物情報」という。）を更に記憶する。記憶部２０２には、障害物９００の個数だけ障害物情報が記憶される。
【０２２２】
ＣＰＵ  １０１は、上記ステップＳ１１０７で新たに障害物９００を配置すると、障害物９００の識別符号と、障害物９００の位置座標と、障害物９００を配置した日時と、を対応付けて外部メモリ１０６に記憶させる。ＣＰＵ  １０１は、消去条件が満たされると判別すると、障害物９００のいずれかに対応する障害物情報を削除し、該当する障害物９００を仮想空間から消去する。消去された障害物９００は、モニターに表示されず、また、消去以降の第１キャラクターから第２キャラクターへの攻撃に何ら影響を与えない。
【０２２３】
図２４は、本実施形態のゲーム装置２００が行う消去処理を説明するためのフローチャートである。図２４に示す消去処理は、ゲーム処理を行いつつ、所定の時間間隔で定期的にバックグラウンドで行われることが望ましい。
【０２２４】
まず、ＣＰＵ  １０１は、障害物情報の件数を取得し、新たに配置した障害物９００、すなわち、命中情報が１件も記憶されていない状態において配置される既定の障害物３３０を除く障害物９００の個数が、閾値に達しているか否かを判別する（ステップＳ２４０１）。
【０２２５】
閾値に達していないと判別した場合（ステップＳ２４０１；ＮＯ）、ＣＰＵ  １０１は、消去処理を終了する。
【０２２６】
一方、閾値に達していると判別した場合（ステップＳ２４０１；ＹＥＳ）、ＣＰＵ  １０１は、障害物情報の中から、配置した日時が最も古い障害物情報を特定し、この特定した障害物情報を削除する（ステップＳ２４０２）。
【０２２７】
配置した日時が最も古い障害物情報が複数存在する場合、該当するすべての障害物情報の中からランダムに１つ選択して削除してもよいし、該当するすべての障害物情報を削除してもよい。
【０２２８】
ＣＰＵ  １０１は、削除した障害物情報に対応する障害物を仮想空間から消去する。
【０２２９】
本実施形態によれば、仮想空間内に配置される障害物の数を制限することができる。例えば、一方のキャラクターにとって他方のキャラクターを比較的攻撃しやすい攻撃パターン（自分と相手の位置関係という意味での攻撃パターン）が複数あったとき、それらすべての攻撃パターンを阻止するように新たな障害物９００を配置すると、戦闘が発生しにくくなり、却ってゲームがつまらなくなってしまう恐れがある。しかし、障害物が多すぎないようにすることにより、適度に戦闘を発生させやすくし、且つ、一方のキャラクターが他方のキャラクターに比べて有利になりすぎないように（不利になりすぎないように）ゲームバランスを調整することができる。
【０２３０】
なお、障害物を消去するための所定の消去条件を自由に変更した実施形態を採用することができる。
【０２３１】
例えば、消去条件は、「仮想空間内のすべての障害物３３０，９００の数が所定の閾値を超えること」でもよい。この場合、命中情報が１件も記憶されていない状態において配置される既定の障害物３３０も、消去の対象となり得る。
【０２３２】
また、ＣＰＵ  １０１は、配置した日時が最も古い障害物情報の代わりに、ステップＳ１１０５で選択したクラスターからの距離が最も大きい障害物に対応する障害物情報を削除してもよい。
【０２３３】
図２５は、仮想空間を表すマップの例である。障害物２５３０Ｄは、ステップＳ１１０７で新たに配置した障害物であり、障害物２５３０Ａ，２５３０Ｂ，２５３０Ｃは、障害物２５３０Ｄが配置される前から既に配置されていた障害物である。
【０２３４】
ＣＰＵ  １０１は、ステップＳ１１０５で選択したクラスターにより示される出発領域２５１０と到達領域２５２０とを結ぶ線分上に、新たに障害物２５３０Ｄを配置する。障害物の数の上限値を３個に設定している場合、障害物２５３０Ｄを配置することにより上限値を超えてしまう。
【０２３５】
そこで、ＣＰＵ  １０１は、選択したクラスターのセントロイドで指定される到達位置ＣＥＮＤと、障害物２５３０Ａ，２５３０Ｂ，２５３０Ｃとの距離ＲＡ１，ＲＢ１，ＲＣ１をそれぞれ求める。図２５では、ＲＡ１＜ＲＢ１＜ＲＣ１である。そして、ＣＰＵ  １０１は、最も距離が大きい障害物２５３０Ｃを消去する。
【０２３６】
もしくは、ＣＰＵ  １０１は、選択したクラスターのセントロイドで指定される出発位置ＣＳＴＡＲＴと、障害物２５３０Ａ，２５３０Ｂ，２５３０Ｃとの距離ＲＡ２，ＲＢ２，ＲＣ２をそれぞれ求めてもよい。図２５では、ＲＡ２＜ＲＣ２＜ＲＢ２である。そして、ＣＰＵ  １０１は、最も距離が大きい障害物２５３０Ｂを消去してもよい。
【０２３７】
選択したクラスターのセントロイドで指定される出発位置ＣＳＴＡＲＴと到達位置ＣＥＮＤは、第１キャラクターと第２キャラクターの戦場としてありふれた場所（激戦区）であると推定される。この激戦区から最も離れているということは、障害物としての存在意義が比較的小さいことになる。そこで、ＣＰＵ  １０１は、戦闘への影響が最も小さい場所にある障害物を消去し、戦闘への影響が最も大きい場所に障害物を新たに配置するのである。従って、ゲーム装置２００は、バランスよく障害物を配置することができる。
【０２３８】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【０２３９】
例えば、本発明は、１つのゲーム装置２００で実行されるゲームに適用できるばかりでなく、図２６に示すように、複数のゲーム装置２００（図２６では２００Ａ，２００Ｂ，２００Ｃ，２００Ｄの４つ）をインターネットやＬＡＮ等のネットワーク２６５０で互いに接続して実行されるネットワークゲームにも適用することができる。
【０２４０】
本発明をネットワークゲームに適用する場合、４つのゲーム装置２００Ａ〜２００Ｄのうち少なくとも１つ（図２６ではゲーム装置２００Ａ。「第１のゲーム装置」ともいう。）が、上記判定部２０１、記憶部２０２、分類部２０３、取得部２０４、配置部２０５の各構成（あるいは、判定部１８０１、記憶部１８０２、第１の分類取得部１８０３、第２の分類取得部１８０４、配置部１８０５の各構成）を備え、更に、新たな障害物の配置場所を指定する情報及び／又は消去する障害物を指定する情報を他の３つのゲーム装置２００に送信する送信部２０６を備えればよい。この送信部２０６を更に備えるゲーム装置２００は、ネットワークゲームのゲームサーバとして機能する。
【０２４１】
また、他のゲーム装置２００（図２６ではゲーム装置２００Ｂ，２００Ｃ，２００Ｄ。「第２のゲーム装置」ともいう。）は、少なくとも、新たな障害物の配置場所を指定する情報及び／又は消去する障害物を指定する情報を第１のゲーム装置から受信する受信部２０７と、受信部２０７が受信した障害物を指定する情報に基づいて仮想空間内に障害物を配置する配置部２０５（あるいは１８０５）と、を備えればよい。
【０２４２】
ＣＰＵ  １０１とＮＩＣ  １１０が協働することにより、送信部２０６あるいは受信部２０７として機能する。
【０２４３】
なお、ネットワーク２６５０で互いに接続されるゲーム装置２００Ａ〜２００Ｄから構成されるゲームシステム２６００全体を、本発明の１つのゲーム装置２００とみなすことができる。
【０２４４】
ゲーム装置２００の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【０２４５】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【０２４６】
以上説明したように、本発明によれば、キャラクター同士の対戦において、キャラクターの位置によって有利・不利が偏り過ぎないように調整するために好適なゲーム装置、ゲーム方法、ゲームシステム、ならびに、プログラムを提供することができる。
【符号の説明】
【０２４７】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェース
１０５  コントローラ
１０６  外部メモリ
１０７  ＤＶＤ−ＲＯＭドライブ
１０８  画像処理部
１０９  音声処理部
１１０  ＮＩＣ
２００，１８００  ゲーム装置
２０１，１８０１  判定部
２０２，１８０２  記憶部
２０３  分類部
２０４  取得部
２０５，１８０５  配置部
２０６  送信部
２０７  受信部
２５０，１２００，１８５０  命中情報リスト
３００  画面（投影画像）
３１０  プレイヤーキャラクター
３２０，３２０Ａ，３２０Ｂ，３２０Ｃ  敵キャラクター
３３０，３３０Ａ，３３０Ｂ，３３０Ｃ，３３０Ｄ  障害物
４００，１０１０，１０２０，１０３０  マップ
７０１〜７０５，１３０１，１３０２  クラスター
８００  セントロイド
８４０，２１２０  線分
８５０  線分の中点
９００，１４００，１７００，２１００  障害物（新たな障害物）
１０１５  車両オブジェクト
１０２５  建物オブジェクト
１０３２  地面オブジェクト
１０３５  樹木オブジェクト
１５１１，１５２１  出発領域
１５１２，１５２２  到達領域
１５１３，１５１４，１５２３，１５２４  接線
１５１５，１５２５，１６１５，１６２５  領域
１８０３  第１の分類取得部
１８０４  第２の分類取得部
１９１０，１９２０  第１クラスター
２０１０，２０２０  第２クラスター
２１４０  球
２５１０  出発領域
２５２０  到達領域
２５３０Ａ，２５３０Ｂ，２５３０Ｃ，２５３０Ｄ  障害物
２６００  ゲームシステム
２６５０  ネットワーク
【図１】
2010213846.tif 000003
【図２】
2010213846.tif 000004
【図３】
2010213846.tif 000005
【図４】
2010213846.tif 000006
【図５】
2010213846.tif 000007
【図６】
2010213846.tif 000008
【図７】
2010213846.tif 000009
【図８】
2010213846.tif 000010
【図９】
2010213846.tif 000011
【図１０】
2010213846.tif 000012
【図１１】
2010213846.tif 000013
【図１２】
2010213846.tif 000014
【図１３】
2010213846.tif 000015
【図１４】
2010213846.tif 000016
【図１５】
2010213846.tif 000017
【図１６】
2010213846.tif 000018
【図１７】
2010213846.tif 000019
【図１８】
2010213846.tif 000020
【図１９】
2010213846.tif 000021
【図２０】
2010213846.tif 000022
【図２１】
2010213846.tif 000023
【図２２】
2010213846.tif 000024
【図２３】
2010213846.tif 000025
【図２４】
2010213846.tif 000026
【図２５】
2010213846.tif 000027
【図２６】
2010213846.tif 000028