(57)【要約】【課題】プレイヤオブジェクトが存在する三次元仮想空間のゲームにおいて、所定サイズのオブジェクトを配置可能な複数の候補位置を自動的に生成し、このオブジェクトを最適な位置に配置するゲームプログラム等を提供する。【解決手段】プレイヤキャラクタが仲間キャラクタを呼び出す召喚動作を実行する際、プレイヤキャラクタの周辺に広い空間がない場合、プレイヤキャラクタを広い空間にワープさせて仲間キャラクタを召喚する。ワープ先は、複数の候補位置の中から選択した１の候補位置を基準位置とした領域である。【選択図】図１４
2020178970.tif 000002
【特許請求の範囲】
【請求項１】
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームの進行を制御する機能をコンピュータに実現させるためのゲームプログラムであって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、
前記複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置機能、
を実現させ、
前記算出機能では、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、
を実現させるゲームプログラム。
【請求項２】
前記配置機能では、前記複数の候補位置の中から、前記プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる請求項１］に記載のゲームプログラム。
【請求項３】
前記移動可能範囲には、予め設定されている複数の管理エリアが含まれ、
前記算出機能では、前記複数の候補位置を、所属する管理エリアに対応付けて記憶部に記憶させる機能、
前記配置機能では、前記プレイヤオブジェクトが位置する管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる請求項２に記載のゲームプログラム。
【請求項４】
前記複数の管理エリアには、親子関係が設定された親管理エリア及び子管理エリアが含まれ、
前記親管理エリアは、前記子管理エリアを含み、該子管理エリアに対応付けられた前記候補位置を除く候補位置が対応付けられ、
前記コンピュータに、さらに、
前記親管理エリア内の三次元仮想空間の状況に応じて、前記親子関係を第一状態及び第二状態のいずれか一方に設定する設定機能、
を実現させ、
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第二状態の親子関係であれば、前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる請求項３に記載のゲームプログラム。
【請求項５】
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第二状態の親子関係であれば、前記親管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる請求項４に記載のゲームプログラム。
【請求項６】
前記配置機能では、前記複数の候補位置のうち、前記プレイヤオブジェクトを除く三次元仮想空間で動作している動的オブジェクトであってフィルタ設定された動的オブジェクトに重複する候補位置は、前記所定サイズのオブジェクトの配置の対象外とする機能、
を実現させる請求項２〜５のいずれかに記載のゲームプログラム。
【請求項７】
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と通信ネットワークにより接続されるサーバ装置に、該ゲームの進行を制御させるためのゲームプログラムであって、
前記サーバ装置に、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、
前記複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置機能、
を実現させ、
前記算出機能では、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、
を実現させるゲームプログラム。
【請求項８】
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と、該端末装置と通信ネットワークにより接続されるサーバ装置と、を備えたゲームシステムであって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出手段、
前記複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置手段、
を含み、
前記算出手段は、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する、
ゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ゲームプログラム及びゲームシステムに関する。
【背景技術】
【０００２】
ゲーム空間である三次元仮想空間内において、プレイヤが操作するプレイヤキャラクタ（プレイヤオブジェクト）及び敵キャラクタ等のノンプレイヤキャラクタが移動、攻撃等のアクションをするゲームがある（例えば、特許文献１参照）。
【０００３】
このようなゲームでは、例えば、ノンプレイヤキャラクタ等の動的オブジェクトを、三次元仮想空間における予め設定された特定の位置から出現させたり、あるいは、予め設定された複数の候補位置の中から選択した位置に出現させたりする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−７４１６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のようなゲームでは、動的オブジェクトの出現位置は、開発者が予め決定してゲームデータに含められているが、このような開発者の作業負担を軽減することが課題である。特に、近年は、プレイヤキャラクタに比べて、サイズの非常に大きな動的オブジェクトが出現するゲームもある。また、ゲームプログラムのバージョンアップが行われるゲームが増加しつつある。バージョンアップによって、上述の出現位置の情報も更新される。そのため、開発者の負担が増大しつつある。
【０００６】
本発明の少なくとも１つの実施形態の目的は、関連する技術の不足を解決することである。
【課題を解決するための手段】
【０００７】
非限定的な観点によると、本発明の一実施形態に係るゲームプログラムは、三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームの進行を制御する機能をコンピュータに実現させるためのゲームプログラムであって、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する配置機能、を実現させ、算出機能では、移動可能範囲内においてオブジェクト同士の衝突判定を行い、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を候補位置として決定する機能、を実現させる。
【０００８】
非限定的な観点によると、本発明の一実施形態に係るゲームプログラムは、三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と通信ネットワークにより接続されるサーバ装置に、ゲームの進行を制御させるためのゲームプログラムであって、サーバ装置に、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する配置機能、を実現させ、算出機能では、移動可能範囲内においてオブジェクト同士の衝突判定を行い、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、を実現させる。
【０００９】
非限定的な観点によると、本発明の一実施形態に係るゲームシステムは、三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と、端末装置と通信ネットワークにより接続されるサーバ装置と、を備えたゲームシステムであって、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出手段、複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する配置手段、を含み、算出手段は、移動可能範囲内においてオブジェクト同士の衝突判定を行い、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を候補位置として決定する。
【発明の効果】
【００１０】
本願の各実施形態により１または２以上の不足が解決される。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態の少なくとも一つに対応するゲームシステムの構成の例を示すブロック図である。
【図２】本発明の実施形態の少なくとも一つに対応する算出処理の例を示すフローチャートである。
【図３】本発明の実施形態の少なくとも一つに対応する配置処理の例を示すフローチャートである。
【図４】本発明の実施形態の少なくとも一つに対応するゲームシステムの構成の例を示すブロック図である。
【図５】本発明の実施形態の少なくとも一つに対応するサーバ装置が算出処理を実行する場合のサーバ装置及び端末装置の動作の例を示すフローチャートである。
【図６】本発明の実施形態の少なくとも一つに対応するサーバ装置が配置理を実行する場合のサーバ装置及び端末装置の動作の例を示すフローチャートである。
【図７】本発明の実施形態の少なくとも一つに対応するゲームシステムの構成の例を示すブロック図である。
【図８】本発明の実施形態の少なくとも一つに対応する配置処理の例を示すフローチャートである。
【図９】本発明の実施形態の少なくとも一つに対応するゲームシステムの構成の例を示すブロック図である。
【図１０】本発明の実施形態の少なくとも一つに対応する算出処理の例を示すフローチャートである。
【図１１】本発明の実施形態の少なくとも一つに対応する配置処理の例を示すフローチャートである。
【図１２】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間の一例を示す図である。
【図１３】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるプレイヤキャラクタＰＣ及び仲間キャラクタＦＣの一例を示す図である。
【図１４】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間の一例を示す図である。
【図１５】本発明の実施形態の少なくとも一つに対応する衝突判定の判定用オブジェクトの一例を示す図である。
【図１６】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間の一例を示す図である。
【図１７】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間及びトリガーボリュームの一例を示す図である。
【図１８】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間の一例を示す図である。
【図１９】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間の一例を示す図である。
【図２０】本発明の実施形態の少なくとも一つに対応するポイントボリューム及び候補位置の管理テーブルの一例を示す図である。
【図２１】本発明の実施形態の少なくとも一つに対応するゲームシステムの構成の例を示すブロック図である。
【図２２】本発明の実施形態の少なくとも一つに対応する算出処理の例を示すフローチャートである。
【図２３】本発明の実施形態の少なくとも一つに対応するゲーム進行処理の例を示すフローチャートである。
【図２４】本発明の実施形態の少なくとも一つに対応する配置処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態の例について図面を参照して説明する。なお、以下で説明する各実施形態の例における各種構成要素は、矛盾等が生じない範囲で適宜組み合わせ可能である。また、ある実施形態の例として説明した内容については、他の実施形態においてその説明を省略している場合がある。また、各実施形態の特徴部分に関係しない動作や処理については、その内容を省略している場合がある。さらに、以下で説明する各種フローを構成する各種処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。
【００１３】
［第１の実施形態］
図１は、本発明の実施形態の少なくとも一つに対応するゲームシステム１００の構成の例を示すブロック図である。図１に示すように、ゲームシステム１００は、例えば、ユーザ（プレイヤ）が使用するコンピュータであるゲーム端末装置（端末装置）２０を含んでいる。なお、図１では、端末装置２０の構成の例である端末装置２０Ａの構成を示している。また、ゲームシステム１００の構成は、これに限定されるものではない。例えば、ユーザの端末装置が通信ネットワークを介してサーバ装置（ビデオゲーム処理サーバ）に接続され、このサーバ装置から端末装置に対してビデオゲームのサービスが提供される構成（図４参照）としてもよい。
【００１４】
ゲームシステム１００は、三次元仮想空間（ゲーム空間）においてユーザの操作に基づいてプレイヤオブジェクトが動作するビデオゲームを実行する各種機能を有する。プレイヤオブジェクトは、端末装置２０の操作部を介してユーザに操作されるオブジェクトであってゲーム空間を移動可能なオブジェクトである。
【００１５】
本実施形態の例では、ゲーム空間において、所定サイズのオブジェクトが配置される（出現する）ゲームが実行される。所定サイズのオブジェクトは、ゲーム空間内の複数の候補位置の中から選択した１の候補位置を基準位置とする領域に配置される。候補位置を基準位置とする領域は、所定サイズのオブジェクトを配置することが可能な領域である。すなわち、上記領域には、ゲーム空間に既に配置されている建物、キャラクタ等の他のオブジェクトに重複することなく、所定サイズのオブジェクトを配置することが可能である。
【００１６】
各候補位置は、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照して算出される。具体的には、上記移動可能範囲内においてオブジェクト同士の衝突判定（アタリ判定）を行い、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置が候補位置として決定される。
【００１７】
端末装置２０は、ビデオゲームを行うプレイヤによって管理され、例えば、据置型ゲーム装置、パーソナルコンピュータ、携帯電話端末やＰＤＡ（Personal Digital Assistants）、携帯型ゲーム装置等のビデオゲームを実行することが可能な端末装置によって構成される。
【００１８】
また、端末装置２０は、ゲームを実行するための操作部（タッチパネル、ゲームパッドなど）、ハードディスクドライブ等の記憶部、ゲームを実行してゲーム画像を生成するＣＰＵ等から構成される制御部、ゲーム画像を表示させる表示装置（表示部）等を備えるが、一般的な構成であるので詳細な説明は省略する。また、端末装置２０には、ビデオゲームを実行するとともにゲームの進行を制御するためのソフトウェア（ゲームプログラム）が記憶部に記憶されている。なお、ゲームプログラムには、ゲームデータも含まれる。
【００１９】
次に、端末装置２０の構成の例である端末装置２０Ａの構成について説明する。端末装置２０Ａは、制御部がゲームプログラムを実行することで、上述したゲームの進行を制御するための算出部（算出機能）３１及び配置部（配置機能）３２を少なくとも備える。
【００２０】
算出部３１は、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する。具体的には、算出部３１は、移動可能範囲内においてオブジェクト同士の衝突判定を行って、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を候補位置として決定する。なお、所定サイズのオブジェクトのデータ、地形データ等は、ゲームデータに含めておけばよい。また、算出した複数の候補位置は、例えば、端末装置２０Ａの記憶部に記憶しておけばよい。候補位置は、例えば、三次元仮想空間の座標系（ワールド座標系）の座標情報である。
【００２１】
配置部３２は、複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する。例えば、基準位置に、所定サイズのオブジェクトが配置される。
【００２２】
図２は、システム１００が実行する算出処理の例を示すフローチャートである。算出処理では、上述した複数の候補位置を算出するための処理が行われる。以下、端末装置２０Ａが算出処理を実行する場合を例にして説明する。
【００２３】
本実施形態の例の算出処理は、例えば、ゲームが実行されていない状況での、所定期間の経過毎（例えば、午前０時）に実行される。
【００２４】
算出処理において、端末装置２０Ａは、判定処理を行う（ステップＳ１０）。判定処理では、例えば、地形データを参照してゲーム空間の移動可能範囲における各位置において、衝突判定を行う。この場合、所定サイズのオブジェクトが含まれるオブジェクトと、ゲーム空間に配置されたオブジェクトとの衝突判定を行えばよい。
【００２５】
次に、端末装置２０Ａは、決定処理を行う（ステップＳ１１）。決定処理では、例えば、他のオブジェクトとの衝突のなかった位置が候補位置として決定し、記憶部に記憶される。その後、端末装置２０Ａは、算出処理を終了する。
【００２６】
図３は、システム１００が実行する配置処理の例を示すフローチャートである。配置処理では、上述した所定サイズのオブジェクトをゲーム空間に配置する処理が行われる。以下、端末装置２０Ａが配置処理を実行する場合を例にして説明する。
【００２７】
本実施形態の例の配置処理は、例えば、ゲームが実行されている状況において、所定サイズのオブジェクトの配置が決定した場合に実行される。
【００２８】
配置処理において、端末装置２０Ａは、候補位置の決定処理を実行する（ステップＳ３０）。決定処理では、複数の候補位置の中から１の候補位置が決定される。端末装置２０Ａは、例えば、プレイヤオブジェクトの現在位置から最も近い１の候補位置を選択すればよい。その後、端末装置２０Ａは、配置処理を行う（ステップＳ３１）。配置処理では、上述したように、選択された候補位置を基準位置とする領域に所定サイズのオブジェクトが配置される。
【００２９】
以上のように、第１の実施形態の一側面として、端末装置２０Ａが、算出部３１及び配置部３２を備える構成としているので、所定サイズのオブジェクトを配置可能な複数の候補位置が自動的に生成される。したがって、開発者の作業負担を軽減することができる。
【００３０】
なお、上述した第１の実施形態の例では、端末装置２０Ａが、ゲームプログラムを実行してゲームの進行を制御しているが、特にこれに限定されるものではない。例えば、図４に示すようなサーバ装置及び端末装置を含むゲームシステムとし、端末装置２０Ａに代えてサーバ装置が少なくともオブジェクトの算出部３１及び配置部３２を備える構成としてもよい。
【００３１】
サーバ装置は、図示しないハードディスクドライブ等の記憶部及びＣＰＵ等から構成される制御部などを有する。また、サーバ装置は、記憶部に記憶されている上述のゲームプログラムを制御部が実行することで、端末装置２０Ａと同様にビデオゲームの進行を制御する。サーバ装置は、制御部や通信部等のビデオゲームの進行を制御するための一般的な構成を備えるが、ここでの詳細な説明は省略する。
【００３２】
なお、サーバ装置は、端末装置２０Ａのようにビデオゲームを実行しない。サーバ装置は、例えば、インターネット回線（通信ネットワーク）に接続された通信部を有し、ビデオゲームを実行する端末装置と通信を行う。サーバ装置は、ユーザ（端末装置）から操作信号（操作情報）等を受信し、またゲーム進行に関する情報（画像情報等）を端末装置に送信する。なお、図４では１のサーバ装置及び１の端末装置について例示しているが、サーバ装置は、複数の端末装置とビデオゲームに関する通信を行って、各端末装置のビデオゲームの進行を制御してもよい。また、複数のサーバ装置が協働して上記ゲームプログラムを実行してもよく、サーバ装置及び端末装置が協働して上記ゲームプログラムを実行（ゲームの進行を制御）してもよい。
【００３３】
図５は、サーバ装置が図２に示す算出処理を実行する場合のサーバ装置及び端末装置の動作の例を示すフローチャートである。なお、この場合、端末装置は、ゲームが実行されていない状態となる。
【００３４】
算出処理において、サーバ装置は、判定処理を行う（ステップＳ５０）。判定処理では、例えば、地形データを参照してゲーム空間の移動可能範囲における各位置において、衝突判定を行う。次に、サーバ装置は、決定処理を行う（ステップＳ５１）。決定処理では、例えば、他のオブジェクトとの衝突のなかった位置を候補位置として決定し、サーバ装置の記憶部に記憶する。その後、サーバ装置は、算出処理を終了する。
【００３５】
図６は、サーバ装置が図３に示す配置処理を実行する場合のサーバ装置及び端末装置の動作の例を示すフローチャートである。
【００３６】
配置処理において、サーバ装置は、候補位置の決定処理を実行する（ステップＳ６０）。決定処理では、複数の候補位置の中から１の候補位置が決定される。サーバ装置は、例えば、プレイヤオブジェクトの現在位置から最も近い１の候補位置を選択すればよい。その後、サーバ装置は、配置処理を行う（ステップＳ６１）。配置処理では、上述したように、選択された候補位置を基準位置とする領域に所定サイズのオブジェクトが配置される。
【００３７】
サーバ装置は、図示しないが、ゲーム進行に応じたゲーム画像を生成するための画像情報を定期的に生成し、端末装置に送信する。
【００３８】
一方、端末装置は、受信した画像情報に基に基づくゲーム画像を出力（表示部に表示）する（ステップＳ７０）。そして、端末装置は、ゲーム終了と判断するまで（ステップＳ７１：ＹＥＳ）、ステップＳ７０の処理を繰り返し実行する。
【００３９】
なお、図５の算出処理をサーバ装置で実行し、図６の配置処理を端末装置が実行してもよい。この場合、サーバ装置は、算出した複数の候補位置を端末装置に送信すればよい。
【００４０】
なお、上述のプレイヤオブジェクトは、キャラクタ、アバター、戦闘機等の各種オブジェクトが該当する。なお、オブジェクトを生成するための画像データ（テクスチャ画像）等は、ゲームデータに含めておけばよい。
【００４１】
上述の所定サイズのオブジェクトは、プレイヤオブジェクトと同様に各種オブジェクトを採用可能であり、静的なオブジェクトでも動的なオブジェクトであってもよい。静的なオブジェクトとしては、例えば、巨大な岩のオブジェクトである。この場合、プレイヤオブジェクトが、魔法等の実行によって巨大な岩のオブジェクトをゲーム空間に出現させる構成としてもよい。また、動的なオブジェクトとしては、キャラクタのオブジェクトである。この場合、プレイヤオブジェクトが、魔法等の実行によって巨大な仲間キャラクタをゲーム空間に出現させる（召喚する）構成とすればよい。
【００４２】
また、所定サイズのオブジェクトは、プレイヤオブジェクトであってもよい。この場合、例えば、プレイヤオブジェクトが、魔法等の実行によって自身をゲーム空間の別の場所にワープさせる構成とすればよい。さらに、所定サイズのオブジェクトは、１体に限定されず、複数のオブジェクトであってもよい。この場合、例えば、プレイヤオブジェクトが、魔法等の実行によって自身をゲーム空間の別の場所にワープさせ、且つ、巨大な仲間キャラクタをプレイヤオブジェクトの周辺に出現させる（召喚する）構成とすればよい。
【００４３】
また、所定サイズのオブジェクトの配置タイミングは、例えば、上述したようにプレイヤオブジェクトの魔法等の所定動作が実行された場合がある。
【００４４】
さらに、所定サイズのオブジェクトを配置するための１の候補位置の決定は、任意の選択方法を採用可能である。例えば、複数の候補位置からランダムに決定してもよい。また、例えば、プレイヤオブジェクトから最も近い候補位置に決定してもよい。
【００４５】
また、所定サイズのオブジェクトの配置は、ゲーム空間の他のオブジェクトと衝突しない状態であれば、１の候補位置を基準位置とする領域に任意に配置可能である。例えば、プレイヤオブジェクトが、魔法等の実行によって自身をゲーム空間の別の場所にワープさせ、且つ、巨大な仲間キャラクタをプレイヤオブジェクトの周辺に出現させる（召喚する）構成の場合、プレイヤオブジェクトを基準位置に配置し、プレイヤオブジェクトの上方に仲間キャラクタを配置させればよい（図１３参照）。また、例えば、仲間キャラクタを基準位置に配置し、仲間キャラクタに乗った状態となるようにプレイヤオブジェクトを配置させてもよい。
【００４６】
上述の地形データとしては、例えば、ナビゲーションメッシュがある。ナビゲーションメッシュは、ゲーム空間においてＡＩキャラクタ（ノンプレイヤキャラクタ）の移動経路を決定する場合等に用いられるデータであり、ノンプレイヤキャラクタが移動可能な領域を特定するデータである。また、ナビゲーションメッシュは、ゲーム空間において、プレイヤオブジェクトが移動可能な範囲でもある。ナビゲーションメッシュは、複数のポリゴンを形成するデータ構造である（図１４参照）。
【００４７】
例えば、ナビゲーションメッシュの各ポリゴン（例えば、三角形のポリゴン）の重心位置に、所定サイズのオブジェクトを覆うサイズの簡易形状のオブジェクトを配置して、衝突判定を行う。簡易形状のポリゴンは、例えば、円柱のオブジェクトである（図１５参照）。この円柱の底面の中心位置を、上記重心位置に配置してゲーム空間の他のオブジェクトと衝突するか否かが判定される。衝突しなかった重心位置は、上述の候補位置となる。
【００４８】
なお、上述のゲームは、三次元仮想空間であるゲーム空間においてプレイヤオブジェクトが動作するゲームであれば、アクションゲーム、ロールプレイングゲーム、育成ゲーム等のいずれのジャンルのゲームを採用してもよい。
【００４９】
［第２の実施形態］
図７は、端末装置２０の例である端末装置２０Ｂの構成を示すブロック図である。本例において、端末装置２０Ｂは、算出部３１及び配置部３２Ｂを少なくとも備える。
【００５０】
算出部３１は、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する。具体的には、算出部３１は、移動可能範囲内においてオブジェクト同士の衝突判定を行って、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を候補位置として決定する。なお、所定サイズのオブジェクトのデータ、地形データ等は、ゲームデータに含めておけばよい。また、算出した複数の候補位置は、例えば、端末装置２０Ｂの記憶部に記憶しておけばよい。
【００５１】
配置部３２Ｂは、複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する。例えば、基準位置に、所定サイズのオブジェクトが配置される。本実施形態の例では、配置部３２Ｂは、複数の候補位置の中から、プレイヤオブジェクトから最も近い１の候補位置を基準位置として選択する。
【００５２】
図８は、システム１００が実行する配置処理の例を示すフローチャートである。配置処理では、上述した所定サイズのオブジェクトをゲーム空間に配置する処理が行われる。以下、端末装置２０Ｂが配置処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。また、算出処理は、上述の第１の実施形態と同様の構成であるので、説明を省略する。
【００５３】
本実施形態の例の配置処理は、例えば、ゲームが実行されている状況において、所定サイズのオブジェクトの配置が決定した場合に実行される。
【００５４】
配置処理において、端末装置２０Ｂは、候補位置の決定処理を実行する（ステップＳ３０−Ｂ）。決定処理では、複数の候補位置の中から１の候補位置が決定される。端末装置２０Ｂは、プレイヤオブジェクトの現在位置から最も近い１の候補位置を選択する。例えば、プレイヤオブジェクトと各候補位置との距離を算出し、距離が最も少ない１の候補位置を選択すればよい。その後、端末装置２０Ｂは、配置処理を行う（ステップＳ３１）。配置処理では、選択された候補位置を基準位置とする領域に所定サイズのオブジェクトが配置される。
【００５５】
以上のように、第２の実施形態の一側面として、端末装置２０Ｂが、算出部３１及び配置部３２Ｂを備える構成としているので、所定サイズのオブジェクトを配置可能な複数の候補位置が自動的に生成される。したがって、開発者の作業負担を軽減することができる。
【００５６】
［第３の実施形態］
図９は、端末装置２０の例である端末装置２０Ｃの構成を示すブロック図である。本例において、端末装置２０Ｃは、算出部３１Ｃ及び配置部３２Ｃを少なくとも備える。
【００５７】
算出部３１Ｃは、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する。具体的には、算出部３１Ｃは、移動可能範囲内においてオブジェクト同士の衝突判定を行って、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を候補位置として決定する。なお、所定サイズのオブジェクトのデータ、地形データ等は、ゲームデータに含めておけばよい。
【００５８】
また、本実施形態の例では、算出部３１Ｃは、算出した複数の候補位置を、所属する管理エリアに対応付けて端末装置２０Ｃの記憶部に記憶させる。本実施形態の例では、ゲーム空間の上記移動可能範囲には、複数の管理エリアが予め設定されている（図１８参照）。すなわち、移動可能範囲が、複数の管理エリアに区分さている。そして、上記各候補位置は、自身の位置が含まれる管理エリアに対応付けられる。例えば、管理エリアの識別情報と候補位置の座標情報とを対応付けて記憶させればよい。なお、各管理エリアのデータは、ゲームデータに含めておけばよい。
【００５９】
配置部３２Ｃは、複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する。本実施形態の例では、配置部３２Ｃは、プレイヤオブジェクトが位置する管理エリアに対応付けられた候補位置のうち、プレイヤオブジェクトから最も近い１の候補位置を基準位置として選択する。すなわち、選択の対象が複数の候補位置の全てではなく、プレイヤオブジェクトが位置する管理エリアに対応付けられた候補位置となる。
【００６０】
図１０は、システム１００が実行する算出処理の例を示すフローチャートである。算出処理では、上述した複数の候補位置を算出するための処理が行われる。以下、端末装置２０Ｃが算出処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【００６１】
本実施形態の例の算出処理は、例えば、ゲームが実行されていない状況での、所定期間の経過毎（例えば、午前０時）に実行される。
【００６２】
算出処理において、端末装置２０Ｃは、判定処理を行う（ステップＳ１０）。判定処理では、例えば、地形データを参照してゲーム空間の移動可能範囲における各位置において、衝突判定を行う。この場合、所定サイズのオブジェクトが含まれるオブジェクトと、ゲーム空間に配置されたオブジェクトとの衝突判定を行えばよい。
【００６３】
次に、端末装置２０Ｃは、決定処理を行う（ステップＳ１１−Ｃ）。決定処理では、例えば、他のオブジェクトとの衝突のなかった位置が候補位置として決定される。そして、上述したように、複数の管理エリアと複数の候補位置とが対応付けられ記憶部に記憶される。その後、端末装置２０Ｃは、算出処理を終了する。
【００６４】
図１１は、システム１００が実行する配置処理の例を示すフローチャートである。配置処理では、上述した所定サイズのオブジェクトをゲーム空間に配置する処理が行われる。以下、端末装置２０Ｃが配置処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【００６５】
本実施形態の例の配置処理は、例えば、ゲームが実行されている状況において、所定サイズのオブジェクトの配置が決定した場合に実行される。
【００６６】
配置処理において、端末装置２０Ｃは、候補位置の決定処理を実行する（ステップＳ３０−Ｃ）。決定処理では、複数の候補位置の中から１の候補位置が決定される。端末装置２０Ｃは、プレイヤオブジェクトが位置する管理エリアに対応付けられた候補位置のうち、プレイヤオブジェクトから最も近い１の候補位置を基準位置として選択する。例えば、プレイヤオブジェクトの現在の位置が含まれる管理エリアを特定する。そして、プレイヤオブジェクトとその管理エリアの各候補位置との距離を算出し、距離が最も少ない１の候補位置を選択すればよい。その後、端末装置２０Ｃは、配置処理を行う（ステップＳ３１）。配置処理では、選択された候補位置を基準位置とする領域に所定サイズのオブジェクトが配置される。
【００６７】
以上のように、第３の実施形態の一側面として、端末装置２０Ｃが、算出部３１Ｃ及び配置部３２Ｃを備える構成としているので、所定サイズのオブジェクトを配置可能な複数の候補位置が自動的に生成される。したがって、開発者の作業負担を軽減することができる。
【００６８】
また、プレイヤオブジェクトがいる管理エリアの候補位置の中から、プレイヤオブジェクトに最も近い１の候補位置が選択される。したがって、プレイヤオブジェクトがいる空間の中で候補位置が選択されるので、ゲーム進行において無関係な空間に所定サイズのオブジェクトが配置されることが防止される抑制。
【００６９】
例えば、所定サイズのオブジェクトが、プレイヤオブジェクトの敵キャラクタである場合について説明する。この場合、プレイヤオブジェクトがいる空間に隣接している空間に、敵キャラクタは配置されず、プレイヤオブジェクトがいる空間のいずれかの位置に配置される。したがって、配置直後にプレイヤオブジェクトと敵キャラクタとの戦闘が開始可能となる
【００７０】
また、例えば、プレイヤオブジェクトが、魔法等の実行によって自身をゲーム空間の別の場所にワープさせ、且つ、巨大な仲間キャラクタをプレイヤオブジェクトの周辺に出現させる（召喚する）構成の場合について説明する。この場合、プレイヤオブジェクトがいる現在の空間に隣接している空間に、ワープすることが防止され、プレイヤオブジェクトがいる現在の空間のいずれかの位置にワープする。そして、所定サイズのオブジェクトを召喚して、その空間にいる敵キャラクタ等を所定サイズのオブジェクトに攻撃させることができる。
【００７１】
［第４の実施形態］
図１２は、本実施形態の例のゲーム空間の一例を示す図である。本実施形態の例の端末装置２０Ｄは、インターネットなどの通信ネットワークを経由して他の端末装置と通信する通信機能を有する据え置き型のゲーム装置である。本実施形態の例では、ゲーム空間５０において、ユーザが操作するプレイヤキャラクタ（プレイヤオブジェクト）ＰＣに移動等の行動を実行させ、敵キャラクタＥＣ等のオブジェクトと戦闘させるゲームが実行される。ゲーム空間５０は、３軸（Ｘ軸，Ｙ軸，Ｚ軸）のワールド座標系で規定された三次元仮想空間である。
【００７２】
本実施形態の例では、ユーザは、プレイヤキャラクタＰＣに召喚のスキルを発動させることができる。召喚は、例えば、プレイヤキャラクタＰＣを助けてくれる仲間キャラクタをゲーム空間５０に出現させる（呼び出す）。図１３に示すように、仲間キャラクタＦＣは、プレイヤキャラクタよりも巨大な動的なオブジェクトであり、所定サイズのオブジェクトに該当する。図１３は、プレイヤキャラクタＰＣ及び仲間キャラクタＦＣの一例を示す図である。仲間キャラクタＦＣは、出現してから所定時間の経過後にゲーム空間５０から消滅する。
【００７３】
召喚の動作（召喚動作）は、プレイヤキャラクタＰＣが現在いる場所において実行される。例えば、仲間キャラクタＦＣは、図１３に示すように、プレイヤキャラクタＰＣが現在いる位置の上方に出現する。なお、上方に限らず、プレイヤキャラクタＰＣの周囲に仲間キャラクタを出現させるようにしてもよい。
【００７４】
しかし、プレイヤキャラクタＰＣが、仲間キャラクタＦＣを出現させられる空間のない狭い場所にいる場合、広い空間にワープした後に召喚動作を継続し、仲間キャラクタＦＣを出現させる。例えば、プレイヤキャラクタＰＣが図１２に示すような狭い場所にいる状態で召喚を開始した場合、プレイヤキャラクタＰＣは広い場所にワープする。
【００７５】
最初に、上述のワープの際のプレイヤキャラクタＰＣのワープ位置について説明する。ワープ位置は、複数の候補位置の中から選択された１の候補位置が基準位置となって算出される。複数の候補位置は、端末装置２０Ｄによって算出される。端末装置２０Ｄは、ゲーム空間５０におけるプレイヤキャラクタＰＣの移動可能範囲を特定可能な地形データを参照し、プレイヤキャラクタＰＣ及び仲間キャラクタＦＣを配置可能な空間が存在する位置を候補位置とする。
【００７６】
本実施形態の例では、地形データとしてナビゲーションメッシュを使用する。ナビゲーションメッシュは、ゲーム空間５０において敵キャラクタＥＣ等のＡＩキャラクタ（ノンプレイヤキャラクタ）の移動経路を決定する場合等に用いられるデータであり、ノンプレイヤキャラクタが移動可能な領域を特定するデータである。また、ナビゲーションメッシュは、ゲーム空間５０において、プレイヤキャラクタが移動可能な範囲でもある。したがって、プレイヤキャラクタＰＣがワープを行っても移動不能とはならない。なお、ナビゲーションメッシュは、一般的な構成であるので詳細な説明は省略する。
【００７７】
ナビゲーションメッシュ（以下、メッシュと称する）は、移動可能範囲を示す領域である。メッシュは、複数のポリゴンを形成するデータ構造である。図１４（Ａ）は、図１２で例示したゲーム空間５０に、メッシュＭＡを示した図である。メッシュＭＡは、例えば、図１４（Ａ）の部分拡大図に示すように、複数の三角形のポリゴンで形成される。
【００７８】
本実施形態の例では、メッシュＭＡの各ポリゴンの重心位置ＮＣＧを基準に、候補位置が算出される。具体的には、重心位置ＮＣＧを基準に衝突判定を行って候補位置が算出される。なお、衝突判定は一般的な構成であるので、詳細な説明は省略する。また、ナビゲーションメッシュは、ゲームデータに含まれる。
【００７９】
図１５は、衝突判定に用いられる判定用オブジェクトＣＯの一例を示す図である。判定用オブジェクトＣＯは、円筒状の簡易形状を呈し、プレイヤキャラクタＰＣ及び仲間キャラクタＦＣを内部に収容可能な大きさである。
【００８０】
本実施形態の衝突判定では、最初に、いずれか１の重心位置ＮＣＧに、底面の中心位置が重なるように判定用オブジェクトＣＯが配置される。そして、判定用オブジェクトＣＯがゲーム空間５０に配置されている壁面、岩等の他のオブジェクトと衝突するか否かが判定される。この場合、衝突なしと判定されれば、上記１の重心位置ＮＣＧは候補位置となる。一方、衝突すると判定されれば、上記１の重心位置ＮＣＧの上方（Ｙ軸方向）に所定距離だけ判定用オブジェクトＣＯを移動させる。移動した位置で、同様の衝突判定が行われる。そして、上記１の重心位置ＮＣＧに関して、衝突しない位置が発見されるまで、又は、移動した位置が上限高さに達するまで、判定用オブジェクトＣＯを上方に所定距離だけ移動させながら衝突判定が繰り返し実行される。
【００８１】
そして、メッシュＭＡの全ての重心位置ＮＣＧに関して、上記のように衝突判定が行われ、候補位置が算出される。
【００８２】
例えば、図１４（Ａ）に示す重心位置ＮＣＧ−１に判定用オブジェクトＣＯが配置された場合は、他のオブジェクトとは衝突しないので、重心位置ＮＣＧ−１が候補位置となって衝突判定が終了する。また、例えば、図１４（Ａ）に示す重心位置ＮＣＧ−２に関しては、上限高さまで衝突判定用オブジェクトＣＯと壁面のオブジェクトとが衝突する状態となるので、候補位置ＣＰはなしと判断される。例えば、図１４（Ａ）に示すゲーム空間５０では、図１４（Ｂ）に示すような候補位置ＣＰが算出される。
【００８３】
また、例えば、図１６（Ａ）に示すような傾斜のある地面Ｗにおいては、メッシュＭＡも傾斜状に形成され、重心位置ＮＣＧも斜面上にある。そのため、例えば、図１６（Ａ）に示すように、判定用オブジェクトＣＯが重心位置ＮＣＧ−３に配置された場合、判定用オブジェクトＣＯは地面Ｗと衝突する。そのため、傾斜のある地面Ｗの領域においては、少なくとも地面Ｗと衝突しない位置まで上方に移動させた位置が候補位置ＣＰとなる。例えば、図１６（Ａ）に示す重心位置ＮＣＧ−３では、候補位置ＣＰは、図１６（Ｂ）に示すような重心位置ＮＣＧ−３よりも上方の候補位置ＣＰ−３が算出される。
【００８４】
さらに、本実施形態の例では、メッシュＭＡに加え、トリガーボリュームも参照して候補位置ＣＰが算出される。トリガーボリュームは、ゲーム空間５０の一部の領域（トリガーエリア）を特定するデータである。トリガーボリュームは、ムービー再生等のゲーム内のイベントの実行、マップデータのロード等の実行トリガーとして機能する。例えば、プレイヤキャラクタＰＣがトリガーボリュームに入った場合に、ムービーの再生が開始される。この場合、プレイヤキャラクタＰＣとトリガーボリュームとの衝突判定が行われ、プレイヤキャラクタＰＣがトリガーボリュームに入ったことが判定される。トリガーボリュームは、ゲームの進行上、プレイヤキャラクタＰＣが通過する位置にある。
【００８５】
また、トリガーボリュームは、プレイヤキャラクタＰＣの移動可能範囲上にある。トリガーボリュームＴＶは、例えば、図１７（Ａ）に示すような薄板の立体形状である。トリガーボリュームＴＶは、図１７（Ｂ）に示すように、外周面が複数のポリゴンで形成されるデータ構造である。図１７（Ａ）は、ゲーム空間５０に配置されたトリガーボリュームＴＶの一例を示す。図１７（Ｂ）は、トリガーボリュームＴＶの一例を示す図である。なお、図１７（Ａ）は、説明の便宜上、トリガーボリュームＴＶの形状のみを示している。なお、メッシュＭＡ及びトリガーボリュームＴＶは、ユーザがプレイする際のゲーム画面には表示されない。
【００８６】
本実施形態の例では、トリガーボリュームＴＶの重心位置ＴＣＧ及び内部点ＩＰを基準に、候補位置が算出される。具体的には、重心位置ＴＣＧ及び内部点ＩＰを基準に衝突判定を行って候補位置が算出される。重心位置ＴＣＧは、トリガーボリュームＴＶの外周面のポリゴンの重心である。内部点ＩＰは、図１７（Ｂ）に示すように、トリガーボリュームＴＶの内部を水平線及び垂直線の格子線で格子状に区切った際の交点である。格子線は、例えば、格子線と格子線との間隔が所定値で均等になるように位置を決定すればよい。
【００８７】
トリーがボリュームＴＶにおける衝突判定では、最初に、選択した１の重心位置ＮＣＧ又は内部点ＩＰが、メッシュ（移動可能範囲）ＭＡ上にあるか否かが判定される。メッシュＭＡ上にある場合は、上記選択した１の重心位置ＮＣＧ又は内部点ＩＰに、底面の中心位置が重なるように判定用オブジェクトＣＯが配置される。そして、判定用オブジェクトＣＯがゲーム空間５０に配置されている壁面、岩等の他のオブジェクトと衝突するか否かが判定される。この場合、衝突なしと判定されれば、上記選択した１の重心位置ＮＣＧ又は内部点ＩＰは候補位置ＣＰとなる。一方、衝突すると判定されれば、候補位置ＣＰとして認定されない。そして、トリガーボリュームＴＶの全ての重心位置ＴＣＧ及び内部点ＩＰに関して、上記のように衝突判定が行われ、候補位置ＣＰが算出される。
【００８８】
上述のように、トリガーボリュームＴＶに候補位置ＣＰが設けられることで、プレイヤキャラクタＰＣがトリガーボリュームＴＶを通らずに、隣接する空間にワープしてしまうことを防止できる。例えば、図１７（Ａ）に示すゲーム空間５０−ＡにプレイヤキャラクタＰＣがいる状態で、トリガーボリュームＴＶを通過せずに、ゲーム空間５０−Ｂにワープ移動してしまうことが防止される。
【００８９】
上述のようにして算出された複数の候補位置ＣＰは、複数のポイントボリュームのいずれか１つに対応付けられて端末装置２０Ｄの記憶部に記憶される。ポイントボリューム（管理エリア）は、ユーザの移動可能範囲（メッシュＭＡ）の一部の領域を特定するデータである。すなわち、移動可能範囲が、複数のポイントボリュームに区分さている。ポイントボリュームは、上述のトリガーボリュームＴＶと同様に、外周面が複数のポリゴンで形成されるデータ構造である。衝突判定によってプレイヤキャラクタＰＣがポイントボリュームに入ったことが検知される。各候補位置ＣＰは、自身の位置を含むポイントボリュームに対応付けられる。
【００９０】
図１８は、ゲーム空間５０に配置されたポイントボリュームＰＶ（ＰＶ−１，ＰＶ−２）の一例を示す図である。図１８に示すゲーム空間５０は、壁ＷＡのオブジェクトによって仕切られている。ポイントボリュームＰＶ−１には、候補位置ＣＰ−Ａが対応付けられている。また、ポイントボリュームＰＶ−２には、候補位置ＣＰ−Ｂ〜ＣＰ−Ｈが対応付けられている。例えば、プレイヤキャラクタＰＣがポイントボリュームＰＶ−２内にいる場合には、基準位置は、候補位置ＣＰ−Ｂ〜ＣＰ−Ｈの中から決定される。
【００９１】
また、本実施形態の例の一部のポイントボリュームＰＶには、親子関係が設定されている。親子関係は、親となるポイントボリュームＰＶが、子となるポイントボリュームＰＶを含む関係である。例えば、図１９に示すように、親であるポイントボリュームＰＶ−３は、子であるポイントボリュームＰＶ−４を含んでいる。ただし、親子関係の２つのポイントボリュームＰＶであっても、それぞれに対応付けられる候補位置ＣＰは、互いに異なる。例えば、親であるポイントボリュームＰＶ−３には、子であるポイントボリュームＰＶ−４内にある候補位置ＣＰ−ｆ〜ＣＰ−ｊは対応付けられず、候補位置ＣＰ−ａ〜ＣＰ−ｅのみが対応付けられる。また、子であるポイントボリュームＰＶ−４には、候補位置ＣＰ−ｆ〜ＣＰ−ｊのみが対応付けられる。なお、親子関係の情報は、ゲームデータに含まれる。親子関係は、基準位置とする候補位置ＣＰの決定の際に参照される。詳細は後述する。
【００９２】
図２０（Ａ）は、ポイントボリュームＰＶの管理テーブル２００一例を示す図である。管理テーブル２００は、ボリュームＩＤ、エリアデータ、親子関係、フラグ等のフィールドから構成される。ボリュームＩＤのフィールドには、ポイントボリュームＰＶの識別情報が設定される。ボリュームＩＤに、エリアデータ、親子関係、フラグが対応付けられる。
【００９３】
エリアデータのフィールドには、ポイントボリュームＰＶの領域を特定するポリゴン頂点の座標情報等が設定されている。親子関係のフィールドには、子であるポイントボリュームＰＶの識別情報が設定される。例えば、上述したポイントボリュームＰＶ−３の親子関係には、子であるポイントボリュームＰＶ−４の識別情報が設定される。フラグのフィールドには、対応する制御フラグを特定する情報が設定される。制御フラグ（ＯＮ／ＯＦＦフラグ）は、子となるポイントボリュームＰＶにのみ対応付けられる。例えば、子であるポイントボリュームＰＶ−４には、制御フラグＦＦの情報が設定される。制御フラグの詳細は後述する。管理テーブル２００は、予めゲームデータに含まれている。
【００９４】
図２０（Ｂ）は、候補位置ＣＰの管理テーブル２５０の一例を示す図である。管理テーブル２００は、ボリュームＩＤ、出現ポイント等のフィールドから構成される。ボリュームＩＤのフィールドには、ポイントボリュームＰＶの識別情報が設定される。ボリュームＩＤに、出現ポイントが対応付けられる。出現ポイントのフィールドには、対応するポイントボリュームＰＶの候補位置ＣＰの座標情報が設定される。例えば、ポイントボリュームＰＶ−３の出現ポイントには、上述したように候補位置ＣＰ−ａ〜ＣＰ−ｅの座標情報が設定される。
【００９５】
端末装置２０Ｄは、所定の実行条件が成立する毎に、上述した複数の候補位置を算出するとともに、管理テーブル２５０を生成する。管理テーブル２５０は、管理装置２０Ｄの記憶部に記憶される。所定の実行条件は、例えば、ゲームが実行されていない状況、且つ、所定期間が経過した（例えば、午前０時）ことである。ゲームが実行されていない状況とは、ユーザがゲームをプレイしていない状況である。
【００９６】
次に、狭い場所で召喚動作した場合のワープ位置の決定について説明する。上述したように、プレイヤキャラクタＰＣは、仲間キャラクタＦＣを出現させられる空間を確保できない狭い場所にいる場合、広い空間にワープした後に召喚動作を継続し、仲間キャラクタＦＣを出現させる。
【００９７】
ワープ位置は、複数の候補位置の中から選択された１の候補位置が基準位置となって算出される。具体的には、基準位置を鉛直下方に移動させて、地面のオブジェクトに衝突する位置がワープ位置となる。すなわち、基準位置の直下にある地面上にワープ位置が決定される。したがって、プレイヤキャラクタは、ワープした場合、常に図１５に示すような地上にいる状態で召喚動作を行う。なお、常に地上で召喚動作を行わなくてもよい。常に基準位置をワープ位置としてもよい。
【００９８】
例えば、図１４（Ｂ）で例示した候補位置ＣＰ−１が基準位置となった場合、候補位置ＣＰ−１は地面の高さと同じ位置にあるので、ワープ位置は、候補位置ＣＰ−１となる。そして、プレイヤキャラクタＰＣ、仲間キャラクタＦＣが配置される。
【００９９】
また、例えば、図１６（Ｂ）に例示した候補位置ＣＰ−３が基準位置となった場合、候補位置ＣＰ−３の下方の地面Ｗに衝突する位置（重心位置ＮＣＧ−３）がワープ位置となる。また、トリガーボリュームＴＶにおいて算出された候補位置ＣＰが基準位置となった場合も同様の構成でワープ位置が決定される。
【０１００】
複数の候補位置の中から基準位置となる１の候補位置を選択する条件（選択条件）は、対象のポイントボリュームＰＶに対応付けられた候補位置ＣＰのうち、有効な候補位置であり、且つ、プレイヤキャラクタＰＣから最も近い候補位置であることである。
【０１０１】
対象のポイントボリュームＰＶは、図１８を用いて説明したように、基本的に、プレイヤキャラクタＰＣが現在存在するポイントボリュームＰＶとなる。ただし、プレイヤキャラクタＰＣが親子関係のあるポイントボリュームＰＶに存在する場合、上述した制御フラグの値（ＯＮ/ＯＦＦ）に基づいて、対象のポイントボリュームＰＶが決定される。具体的には、制御フラグがＯＮ（第一状態）の場合、親のポイントボリュームＰＶ及び子のポイントボリュームＰＶの両方が対象となる。
【０１０２】
また、制御フラグがＯＦＦ（第二状態）の場合、プレイヤキャラクタＰＣの存在している位置に応じて、親のポイントボリュームＰＶ及び子のポイントボリュームＰＶのいずれか一方が対象のポイントボリュームＰＶとなる。具体的には、制御フラグがＯＦＦで、プレイヤキャラクタＰＣが親のポイントボリュームＰＶ及び子のポイントボリュームＰＶの両方に含まれている場合、子のポイントボリュームＰＣが対象となる。また、制御フラグがＯＦＦで、プレイヤキャラクタＰＣが親のポイントボリュームＰＶにのみ含まれている場合、親のポイントボリュームＰＣが対象となる。
【０１０３】
例えば、図１９で例示したポイントボリュームＰＶ−３，ＰＶ−４の場合について説明する。親のポイントボリュームＰＶ−３は、ゲーム空間５０−Ｓ，５０−Ｔを包含する領域である。子のポイントボリュームＰＶ−４は、ゲーム空間５０−Ｔを包含する領域である。子のポイントボリュームＰＶ−４には、制御フラグＦＦが対応付けられている。制御フラグＦＦは、ゲーム空間５０−Ｓとゲーム空間５０−Ｔとを仕切る扉ＤＲのオブジェクトの開閉状態に応じて値が変化する。すなわち、扉ＤＲ：オープンで、制御フラグＦＦ＝１（ＯＮ）となる。また、扉ＤＲ：クローズで、制御フラフＦＦ＝０（ＯＦＦ）となる。なお、扉ＤＲは、例えば、一定間隔でオープン及びクローズを繰り返す。
【０１０４】
例えば、プレイヤキャラクタＰＣがゲーム空間５０−Ｔの地点Ｑ１に存在する場合について説明する。この場合、扉ＤＲ：オープンで制御フラグＦＦ＝１（ＯＮ）であれば、ポイントボリュームＰＶ−３，ＰＶ−４が対象となる。すなわち、ポイントボリュームＰＶ−３，ＰＶ−４に対応付けられた候補位置ＣＰ−ａ〜ＣＰ−ｊが選択の対象となる。候補位置ＣＰ−ａ〜ＣＰ−ｊが有効である場合、地点Ｑ１に最も近い候補位置ＣＰ−ｅが基準位置として選択される。また、扉ＤＲ：クローズで制御フラグＦＦ＝０（ＯＦＦ）であれば、ポイントボリュームＰＶ−４のみが対象となる。すなわち、ポイントボリュームＰＶ−４に対応付けられた候補位置ＣＰ−ｆ〜ＣＰ−ｊが選択の対象となる。候補位置ＣＰ−ｆ〜ＣＰ−ｊが有効である場合、地点Ｑ１に最も近い候補位置ＣＰ−ｈが基準位置として選択される。したがって、扉ＤＲがクローズの状態において、扉の向こう側にワープしてしまうことが防止される。
【０１０５】
また、例えば、プレイヤキャラクタＰＣがゲーム空間５０−Ｓの地点Ｑ２に存在する場合について説明する。この場合、扉ＤＲ：オープンで制御フラグＦＦ＝１（ＯＮ）であれば、ポイントボリュームＰＶ−３，ＰＶ−４が対象となる。すなわち、ポイントボリュームＰＶ−３，ＰＶ−４に対応付けられた候補位置ＣＰ−ａ〜ＣＰ−ｊが選択の対象となる。また、扉ＤＲ：クローズで制御フラグＦＦ＝０（ＯＦＦ）であれば、ポイントボリュームＰＶ−３が対象となる。すなわち、ポイントボリュームＰＶ−３に対応付けられた候補位置ＣＰ−ａ〜ＣＰ−ｅが選択の対象となる。
【０１０６】
なお、制御フラグのＯＮ／ＯＦＦは、扉ＤＲの開閉状態に限定されるものではない。親のポイントボリュームＰＶ内のゲーム空間の状況に応じて変更すればよい。例えば、現在のゲームの進行上、子のポイントボリューム内の空間にプレイヤキャラクタＰＣが入ることが禁止されている状態の場合には、制御フラグをＯＦＦとする。
【０１０７】
次に、選択条件における有効な候補位置ＣＰについて説明する。候補位置ＣＰが有効か否かは、フィルタ設定された動的オブジェクトを中心とする所定領域に含まれるか否かによって決定される。候補位置ＣＰが、動的オブジェクトを中心とする所定領域に含まれない場合は有効と判定される。一方、候補位置ＣＰが、動的オブジェクトを中心とする所定領域に含まれる場合は無効と判定される。なお、動的オブジェクトは、例えば、敵キャラクタＥＣ、他のユーザの操作するプレイヤキャラクタ等の移動するオブジェクトである。
【０１０８】
このように、候補位置ＣＰに対して有効／無効の設定を行うことで、ワープ位置において、プレイヤキャラクタＰＣ及び仲間キャラクタＦＣが、動的オブジェクトに重なってしまうことを防止できる。
【０１０９】
なお、上述の所定領域は、プレイヤキャラクタＰＣ及び仲間キャラクタＦＣが、動的オブジェクトに重ならないように有効／無効の判定ができる領域であることが望ましい。例えば、動的オブジェクト自体の形態の領域であってもよく、また動的オブジェクトを含む簡易形状の領域であってもよい。また、例えば、候補位置との所定領域との衝突判定で有効／無効を判定すればよい。
【０１１０】
なお、全ての敵キャラクタＥＣを、候補位置ＣＰの有効性の判定対象の動的オブジェクトとしなくてもよい。本実施形態の例では、例えば、所定サイズ以上の敵キャラクタＥＣのみを、候補位置ＣＰの有効性の判定対象とする。判定対象となる敵キャラクタＥＣの識別情報には、フィルタ設定がされている。すなわち、フィルタ設定のある敵キャラクタＥＣのみが上記有効性の判定対象となる。なお、フィルタ設定は、ゲームデータに含まれる。
【０１１１】
図２１は、端末装置２０の例である端末装置２０Ｄの構成を示すブロック図である。本例において、端末装置２０Ｄは、算出部３１Ｄ、配置部３２Ｄ、動作制御部３３Ｄ、イベント発生部３４Ｄ及び設定部３５Ｄを少なくとも備える。
【０１１２】
算出部３１Ｄは、ゲーム空間（三次元仮想空間）５０におけるプレイヤキャラクタＰＣの移動可能範囲を特定可能な地形データ（ナビゲーションメッシュＭＡ）、トリガーボリュームＴＶ等を参照して複数の候補位置ＣＰを算出する。算出部３１Ｄは、上述したように、移動可能範囲内の各位置において衝突判定を行って、判定用オブジェクトＣＯが他のオブジェクトと衝突しない位置を候補位置ＣＰとして決定する。なお、プレイヤキャラクタＰＣ、判定用オブジェクトＣＯ及び仲間キャラクタＦＣのデータ、ナビゲーションメッシュＭＡ、トリガーボリュームＴＶのデータ等は、ゲームデータに含まれる。
【０１１３】
算出部３１Ｄは、所定の実行条件が成立した場合、上述のように複数の候補位置ＣＰを算出する。また、算出部３１Ｄは、算出した複数の候補位置ＣＰを、所属するポイントボリューム（管理エリア）ＰＶに対応付けた管理テーブル２５０を生成する。管理テーブル２５０は、端末装置２０Ｄの記憶部に記憶される。
【０１１４】
配置部３２Ｄは、キャラクタ等の動的オブジェクトのゲーム空間５０への配置を行う。例えば、配置部３２Ｄは、プレイヤキャラクタＰＣの召喚が開始された場合、広い空間であれば、上述したように仲間キャラクタＦＣをプレイヤキャラクタの上方に配置する。また、配置部３２Ｄは、狭い空間である場合は、プレイヤキャラクタＰＣを広い空間（ワープ位置）にワープさせた後、仲間キャラクタＦＣを配置する。
【０１１５】
配置部３２Ｄは、上述したように、複数の候補位置ＣＰの中から選択した１の候補位置ＣＰを基準位置として、ワープ位置を算出する。そして、ワープ位置にプレイヤキャラクタＰＣを配置し、仲間キャラクタＦＣをプレイヤキャラクタＰＣの上方に配置する。すなわち、配置部３２Ｄは、複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、所定サイズのオブジェクト（プレイヤキャラクタＰＣ及び仲間キャラクタＦＣ）を配置する。本実施形態の例では、配置部３２Ｄは、管理テーブル２００，２５０等を参照し、上述した選択条件に合致する１の候補位置ＣＰを基準位置として選択する。
【０１１６】
動作制御部３３Ｄは、ユーザの操作部の操作に応じてプレイヤオブジェクト（プレイヤキャラクタＰＣ）の動作を制御する。例えば、プレイヤキャラクタＰＣに召喚動作を実行させる。その他、動作制御部３３Ｄは、仲間キャラクタＰＣ及び敵キャラクタＰＣ等の動作を制御する。
【０１１７】
イベント発生部３４Ｄは、トリガーボリュームＴＶで衝突判定を行って、トリガーエリア（トリガーボリュームＴＶ）にプレイヤオブジェクト（プレイヤキャラクタＰＣ）が移動した場合、このトリガーボリュームＴＶに対応付けられたゲーム内のイベントを発生させる。イベントは、ゲーム空間５０内で発生する事象を意味する。上述したように、ムービーの再生、所定の敵キャラクタＥＣの出現等がイベントに該当する。
【０１１８】
設定部３５は、親管理エリア（親であるポイントボリュームＰＶ）内のゲーム空間（三次元仮想空間）５０の状況に応じて、親子関係（制御フラグ）を第一状態及び第二状態のいずれか一方に設定する。
【０１１９】
図２２は、システム１００が実行する算出処理の例を示すフローチャートである。算出処理では、上述した複数の候補位置ＣＰを算出するための処理が行われる。以下、端末装置２０Ｄが算出処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【０１２０】
本実施形態の例の算出処理は、所定の実行条件（ゲームが実行されていない状況での、所定期間の経過毎（例えば、午前０時））が成立した場合に実行される。
【０１２１】
算出処理において、端末装置２０Ｄは、判定処理を行う（ステップＳ１０−Ｄ）。判定処理では、上述したように、地形データ（メッシュＭＡ）及びトリガーボリュームＴＶ等を参照して、ゲーム空間５０の移動可能範囲における各位置において衝突判定を行う。
【０１２２】
次に、端末装置２０Ｄは、決定処理を行う（ステップＳ１１−Ｄ）。決定処理では、上記判定処理で他のオブジェクトとの衝突のなかった位置が候補位置ＣＰとして決定される。そして、図２０（Ｂ）に例示したように、複数の管理エリア（ポイントボリュームＰＶ）と複数の候補位置ＣＰとが対応付けられた管理テーブル２５０が生成され、記憶部に記憶される。その後、端末装置２０Ｄは、算出処理を終了する。
【０１２３】
図２３は、システム１００が実行するゲーム進行処理の例を示すフローチャートである。ゲーム進行処理では、プレイヤキャラクタＰＣがゲーム空間５０において敵キャラクタＥＣ等と対戦する等のゲームを進行させるための処理が行われる。以下、端末装置２０Ｄがゲーム進行処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【０１２４】
本実施形態の例のゲーム進行処理は、例えば、ユーザによるゲーム開始の操作入力があったことを契機として実行される。
【０１２５】
ゲーム進行処理において、端末装置２０Ｄは、進行処理を行う（ステップＳ２０−Ｄ）。進行処理では、ゲーム空間５０でのプレイヤキャラクタ、敵キャラクタＥＣ等のオブジェクトの行動を制御する処理が行われる。
【０１２６】
また、進行処理では、端末装置２０Ｄは、親管理エリア（親であるポイントボリュームＰＶ）内の三次元仮想空間の状況に応じて、制御フラグの値を更新する。例えば、図１９で例示した、扉ＤＲの開閉に応じて制御フラグＦＦの値を更新する。
【０１２７】
さらに、進行処理では、端末装置２０Ｄは、プレイヤキャラクタＰＣに召喚動作を実行させる場合、現在のプレイヤキャラクタＰＣの位置において、仲間キャラクタＦＣを出現させる空間があるか否かを衝突判定で決定する。仲間キャラクタＦＣを出現させる空間がある場合、端末装置２０Ｄは、プレイヤキャラクタＰＣを移動（ワープ）させずに召喚動作を実行させる。そして、プレイヤキャラクタＰＣの上方に仲間キャラクタＦＣを出現させる（配置する）。
【０１２８】
一方、仲間キャラクタＦＣを出現させる空間がない場合、端末装置２０Ｄは、後述する配置処理を実行してプレイヤキャラクタＰＣを広い空間にワープさせた後、仲間キャラクタＦＣを出現させる（配置する）。
【０１２９】
その後、端末装置２０Ｄは、ゲームの終了か否かを判断する（ステップＳ２１−Ｄ）。例えば、プレイヤキャラクタＰＣが敵キャラクタＥＣの攻撃を受けて戦闘不能となった場合にゲームが終了したと判断すればよい。終了していない場合（ステップＳ２１−Ｄ：ＮＯ）、端末装置２０Ｄは、ステップＳ２０−Ｄの処理に戻る。一方、終了した場合（ステップＳ２１−Ｄ：ＹＥＳ）、端末装置２０Ｄは、ゲーム進行処理を終了する。
【０１３０】
次に、上述した進行処理で実行される配置処理について説明する。図２４は、システム１００が実行する配置処理の例を示すフローチャートである。配置処理では、ゲーム空間５０内でプレイヤキャラクタＰＣをワープさせて仲間キャラクタＦＣを配置する処理が行われる。以下、端末装置２０Ｄが配置処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【０１３１】
本実施形態の例の配置処理は、ゲームが実行されている状況において、進行処理でプレイヤキャラクタＰＣの召喚のためのワープが決定された場合に実行される。
【０１３２】
配置処理において、端末装置２０Ｄは、候補位置ＣＰの決定処理を実行する（ステップＳ３０−Ｄ）。決定処理では、上述したように、複数の候補位置の中から１の候補位置が決定される。端末装置２０Ｄは、上述したように選択条件に合致する１の候補位置ＣＰを選択する。
【０１３３】
その後、端末装置２０Ｄは、配置処理を行う（ステップＳ３１−Ｄ）。配置処理では、上述したように、選択された候補位置ＣＰとした基準位置から算出されたワープ位置にプレイヤキャラクタＰＣが配置される。そして、プレイヤキャラクタＰＣに召喚の動作を継続して行わせた後、プレイヤキャラクタＰＣの上方に仲間キャラクタＦＣを配置する。その後、端末装置２０Ｄは、上述の進行処理を継続して実行する。
【０１３４】
以上のように、第４の実施形態の一側面として、端末装置２０Ｄが、算出部３１Ｄ、配置部３２Ｄ、動作制御部３３Ｄ、イベント発生部３４Ｄ及び設定部３５Ｄを備える構成としているので、所定サイズのオブジェクト（プレイヤキャラクタ及び仲間キャラクタ）を配置可能な複数の候補位置が自動的に生成される。したがって、開発者の作業負担を軽減することができる。
【０１３５】
また、プレイヤキャラクタがいる管理エリア（ポイントボリューム）に対応付けられた候補位置の中から、プレイヤキャラクタに最も近い１の候補位置が選択される。したがって、プレイヤキャラクタがいる空間の中で候補位置が選択されるので、ゲーム進行において無関係な空間に所定サイズのオブジェクトが配置されることを防止できる。
【０１３６】
また、親子関係が設定された管理エリア（ポイントボリューム）が存在し、親管理エリア（親であるポイントボリューム）内の三次元仮想空間の状況に応じて選択対象となる候補位置が変化するので、ゲーム進行上、不自然案な位置に所定サイズのオブジェクトが配置されることが防止される。
【０１３７】
さらに、動的オブジェクトにはフィルタ設定があるので、所定サイズのオブジェクトを出現させた場合に、他の動的オブジェクトに重なって出現することが防止される。
【０１３８】
なお、上述の実施形態の例では、ナビゲーションメッシュ等のポリゴンの重心位置を基準として候補位置が算出されているが、移動可能範囲であれば、いずれの位置を基準に候補位置を算出してもよい。例えば、ナビゲーションメッシュのポリゴン頂点を用いて候補位置を算出してもよい。
【０１３９】
上述の実施形態の例では、召喚の実行においてゲーム空間が狭い場合に、１の候補位置を基準位置とする領域に所定サイズのオブジェクトが配置されるが、特にこれに限定されるものではない。例えば、ゲーム空間にいる敵キャラクタＥＣがワープする場合や、新たに動的オブジェクトをゲーム空間に出現させる場合等に、本発明の実施形態の例を適用してもよい。
【０１４０】
上述の実施形態の例では、プレイヤキャラクタがワープした後に仲間キャラクタが出現するが、これらキャラクタを同時に出現させてもよい。例えば、プレイヤキャラクタによる召喚の動作が終了した場合に、プレイヤキャラクタをワープさせ且つ仲間キャラクタを出現させるようにすればよい。また、プレイヤキャラクタは移動させず、仲間キャラクタだけを別の空間に出現させる構成としてもよい。なお、召喚によって出現させる仲間キャラクタは、１体に限定されない。
【０１４１】
上述の実施形態の例では、複数の候補位置を算出する実行条件として、ゲームが実行されていない状況、且つ、所定期間が経過した（例えば、午前０時）ことを例示したが、定期的に実行される構成であれば、いずれの実行条件を採用してもよい。例えば、ゲーム空間の形状が変更されたことを実行条件としてもよい。ゲームプログラムのバージョンアップによって、ゲーム空間の一部が変更される場合がある。
【０１４２】
上述の実施形態の例では、予め動的オブジェクトにフィルタ設定されているが、端末装置がフィルタ設定を行ってもよい。例えば、端末装置は、動的オブジェクトが所定サイズ以上か否かを判定し、所定サイズ以上の動的オブジェクトにフィルタ設定を行えばよい。
【０１４３】
上述の実施形態では、地形データとしてナビゲーションメッシュを使用しているが、特にこれに限定されるものではない。ゲーム空間においてプレイヤオブジェクトの移動可能範囲を特定可能なデータであれば、いずれのデータを採用してもよい。
【０１４４】
上述の実施形態では、管理エリア（ポイントボリューム）に候補位置が対応づけられているが、管理エリアは設けなくてもよい。また、トリガーエリア（トリガーボリューム）を参照して候補位置を算出しなくてもよい。
【０１４５】
［付記］
上述した実施形態の説明は、少なくとも下記発明を、当該発明の属する分野における通常の知識を有する者がその実施をすることができるように記載した。
【０１４６】
［１］
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームの進行を制御する機能をコンピュータに実現させるためのゲームプログラムであって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、
前記複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置機能、
を実現させ、
前記算出機能では、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、
を実現させるゲームプログラム。
【０１４７】
［２］
前記配置機能では、前記複数の候補位置の中から、前記プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる［１］に記載のゲームプログラム。
【０１４８】
［３］
前記移動可能範囲には、予め設定されている複数の管理エリアが含まれ、
前記算出機能では、前記複数の候補位置を、所属する管理エリアに対応付けて記憶部に記憶させる機能、
前記配置機能では、前記プレイヤオブジェクトが位置する管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる［２］に記載のゲームプログラム。
【０１４９】
［４］
前記複数の管理エリアには、親子関係が設定された親管理エリア及び子管理エリアが含まれ、
前記親管理エリアは、前記子管理エリアを含み、該子管理エリアに対応付けられた前記候補位置を除く候補位置が対応付けられ、
前記コンピュータに、さらに、
前記親管理エリア内の三次元仮想空間の状況に応じて、前記親子関係を第一状態及び第二状態のいずれか一方に設定する設定機能、
を実現させ、
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第二状態の親子関係であれば、前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる［３］に記載のゲームプログラム。
【０１５０】
［５］
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第二状態の親子関係であれば、前記親管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる［４］に記載のゲームプログラム。
【０１５１】
［６］
前記配置機能では、前記複数の候補位置のうち、前記プレイヤオブジェクトを除く三次元仮想空間で動作している動的オブジェクトであってフィルタ設定された動的オブジェクトに重複する候補位置は、前記所定サイズのオブジェクトの配置の対象外とする機能、
を実現させる［２］〜［５］のいずれかに記載のゲームプログラム。
【０１５２】
［７］
前記コンピュータに、さらに、
ユーザの操作に応じてプレイヤオブジェクトの動作を制御する動作制御機能、
を実現させ、
前記配置機能では、前記プレイヤオブジェクトが前記所定サイズのオブジェクトを出現させる召喚動作を実行する際、該プレイヤオブジェクトの位置周辺が該所定サイズのオブジェクトを配置する空間がない場合、前記基準位置を選択し、該基準位置とする領域に該プレイヤオブジェクト及び該所定サイズのオブジェクトを配置する機能、
を実現させる［２］〜［６］のいずれかに記載のゲームプログラム。
【０１５３】
［８］
前記算出機能では、衝突判定には、前記所定サイズのオブジェクトを含むサイズの簡易形状のオブジェクトを使用して衝突判定を行う機能、
を実現させる［１］〜［７］のいずれかに記載のゲームプログラム。
【０１５４】
［９］
前記算出機能では、所定の実行条件が成立する毎に、前記複数の候補位置を算出するとともに記憶部に記憶する機能、
を実現させる［１］〜［８］のいずれかに記載のゲームプログラム。
【０１５５】
［１０］
前記算出機能では、さらに、移動可能範囲の所定の位置を、所定の高さまで上方にずらしつつ衝突判定を行って、前記候補位置を算出する機能、
を実現させる［１］〜［９］のいずれかに記載のゲームプログラム。
【０１５６】
［１１］
前記コンピュータに、さらに、
三次元仮想空間の一部の領域であるトリガーエリアにプレイヤオブジェクトが移動した場合、該トリガーエリアに対応付けられたゲーム内のイベントを発生させるイベント発生機能、
を実現させ、
前記算出機能では、前記移動可能範囲に加え、前記トリガーエリアでも衝突判定を行って前記候補位置を算出する機能、
を実現させる［１］〜［１０］のいずれかに記載のゲームプログラム。
【０１５７】
［１２］
［１］〜［１１］のうちいずれかに記載のゲームプログラムをインストールした
ことを特徴とするサーバ装置。
【０１５８】
［１３］
表示部の表示画面にゲーム画像を表示させてビデオゲームを実行する機能を端末装置に実現させるための端末用プログラムであって、
前記端末装置に、
［１２］に記載のサーバ装置と通信ネットワークを介して接続する接続機能、
を実現させるための端末用プログラム。
【０１５９】
［１４］
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と通信ネットワークにより接続されるサーバ装置に、該ゲームの進行を制御させるためのゲームプログラムであって、
前記サーバ装置に、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、
前記複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置機能、
を実現させ、
前記算出機能では、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、
を実現させるゲームプログラム。
【０１６０】
［１５］
前記配置機能では、前記複数の候補位置の中から、前記プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる［１４］に記載のゲームプログラム。
【０１６１】
［１６］
前記移動可能範囲には、予め設定されている複数の管理エリアが含まれ、
前記算出機能では、前記複数の候補位置を、所属する管理エリアに対応付けて記憶部に記憶させる機能、
前記配置機能では、前記プレイヤオブジェクトが位置する管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる［１５］に記載のゲームプログラム。
【０１６２】
［１７］
前記複数の管理エリアには、親子関係が設定された親管理エリア及び子管理エリアが含まれ、
前記親管理エリアは、前記子管理エリアを含み、該子管理エリアに対応付けられた前記候補位置を除く候補位置が対応付けられ、
前記コンピュータに、さらに、
前記親管理エリア内の三次元仮想空間の状況に応じて、前記親子関係を第一状態及び第二状態のいずれか一方に設定する設定機能、
を実現させ、
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第二状態の親子関係であれば、前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる［１６］に記載のゲームプログラム。
【０１６３】
［１８］
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第二状態の親子関係であれば、前記親管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる［１７］に記載のゲームプログラム。
【０１６４】
［１９］
前記配置機能では、前記複数の候補位置のうち、前記プレイヤオブジェクトを除く三次元仮想空間で動作している動的オブジェクトであってフィルタ設定された動的オブジェクトに重複する候補位置は、前記所定サイズのオブジェクトの配置の対象外とする機能、
を実現させる［１５］〜［１８］のいずれかに記載のゲームプログラム。
【０１６５】
［２０］
前記コンピュータに、さらに、
ユーザの操作に応じてプレイヤオブジェクトの動作を制御する動作制御機能、
を実現させ、
前記配置機能では、前記プレイヤオブジェクトが前記所定サイズのオブジェクトを出現させる召喚動作を実行する際、該プレイヤオブジェクトの位置周辺が該所定サイズのオブジェクトを配置する空間がない場合、前記基準位置を選択し、該基準位置とする領域に該プレイヤオブジェクト及び該所定サイズのオブジェクトを配置する機能、
を実現させる［１５］〜［１９］のいずれかに記載のゲームプログラム。
【０１６６】
［２１］
前記算出機能では、衝突判定には、前記所定サイズのオブジェクトを含むサイズの簡易形状のオブジェクトを使用して衝突判定を行う機能、
を実現させる［１４］〜［２０］のいずれかに記載のゲームプログラム。
【０１６７】
［２２］
前記算出機能では、所定の実行条件が成立する毎に、前記複数の候補位置を算出するとともに記憶部に記憶する機能、
を実現させる［１４］〜［２１］のいずれかに記載のゲームプログラム。
【０１６８】
［２３］
前記算出機能では、さらに、移動可能範囲の所定の位置を、所定の高さまで上方にずらしつつ衝突判定を行って、前記候補位置を算出する機能、
を実現させる［１４］〜［２２］のいずれかに記載のゲームプログラム。
【０１６９】
［２４］
前記コンピュータに、さらに、
三次元仮想空間の一部の領域であるトリガーエリアにプレイヤオブジェクトが移動した場合、該トリガーエリアに対応付けられたゲーム内のイベントを発生させるイベント発生機能、
を実現させ、
前記算出機能では、前記移動可能範囲に加え、前記トリガーエリアでも衝突判定を行って前記候補位置を算出する機能、
を実現させる［１４］〜［２３］のいずれかに記載のゲームプログラム。
【０１７０】
［２５］
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と、該端末装置と通信ネットワークにより接続されるサーバ装置と、を備えたゲームシステムであって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出手段、
前記複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置手段、
を含み、
前記算出手段は、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する、
ゲームシステム。
【０１７１】
［２６］
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームの進行を制御する端末装置であって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出手段、
前記複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置手段、
を含み、
前記算出手段は、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する、
端末装置。
【０１７２】
［２７］
コンピュータに、属性が設定されているプレイヤオブジェクトをユーザが操作するゲームの進行を制御させるゲーム進行制御方法であって、
コンピュータに、三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームの進行を制御させるゲーム進行制御方法であって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出処理、
前記複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置処理、
を含み、
前記算出処理では、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する処理、
を含むゲーム進行制御方法。
【産業上の利用可能性】
【０１７３】
本発明の実施形態の一つによれば、プレイヤオブジェクトが存在する三次元仮想空間のゲームにおいて、サイズの非常に大きな所定サイズのオブジェクトを配置可能な複数の候補位置を自動的に生成し、このオブジェクトを最適な位置に配置するのに有用である。
【符号の説明】
【０１７４】
２０    端末装置
３１    算出部
３２    配置部
３３    動作制御部
３４    イベント発生部
３５    設定部
５０    ゲーム空間
ＭＡ    ナビゲーションメッシュ（地形データ）
ＣＰ    候補位置
ＴＶ    トリガーボリューム（トリガーエリア）
ＰＶ    ポイントボリューム（管理エリア）
【図１】
2020178970.tif 000003
【図２】
2020178970.tif 000004
【図３】
2020178970.tif 000005
【図４】
2020178970.tif 000006
【図５】
2020178970.tif 000007
【図６】
2020178970.tif 000008
【図７】
2020178970.tif 000009
【図８】
2020178970.tif 000010
【図９】
2020178970.tif 000011
【図１０】
2020178970.tif 000012
【図１１】
2020178970.tif 000013
【図１２】
2020178970.tif 000014
【図１３】
2020178970.tif 000015
【図１４】
2020178970.tif 000016
【図１５】
2020178970.tif 000017
【図１６】
2020178970.tif 000018
【図１７】
2020178970.tif 000019
【図１８】
2020178970.tif 000020
【図１９】
2020178970.tif 000021
【図２０】
2020178970.tif 000022
【図２１】
2020178970.tif 000023
【図２２】
2020178970.tif 000024
【図２３】
2020178970.tif 000025
【図２４】
2020178970.tif 000026
【手続補正書】
【提出日】令和2年7月21日(2020.7.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームの進行を制御する機能をコンピュータに実現させるためのゲームプログラムであって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、
前記複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置機能、
を実現させ、
前記移動可能範囲には、予め設定されている複数の管理エリアが含まれ、
前記算出機能では、
前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、
前記複数の候補位置を、所属する管理エリアに対応付けて記憶部に記憶させる機能、
を実現させ、
前記複数の管理エリアには、親子関係が設定された親管理エリア及び子管理エリアが含まれ、
前記親管理エリアは、前記子管理エリアを含み、該子管理エリアに対応付けられた前記候補位置を除く候補位置が対応付けられ、
前記コンピュータに、さらに、
前記親管理エリア内の三次元仮想空間の状況に応じて、前記親子関係を第一状態及び第二状態のいずれか一方に設定する設定機能、
を実現させ、
前記配置機能では、
前記プレイヤオブジェクトが位置する管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第二状態の親子関係であれば、前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させるゲームプログラム。
【請求項２】
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第二状態の親子関係であれば、前記親管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させる請求項１に記載のゲームプログラム。
【請求項３】
前記配置機能では、前記複数の候補位置のうち、前記プレイヤオブジェクトを除く三次元仮想空間で動作している動的オブジェクトであってフィルタ設定された動的オブジェクトに重複する候補位置は、前記所定サイズのオブジェクトの配置の対象外とする機能、
を実現させる請求項１又は請求項２に記載のゲームプログラム。
【請求項４】
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と通信ネットワークにより接続されるサーバ装置に、該ゲームの進行を制御させるためのゲームプログラムであって、
前記サーバ装置に、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、
前記複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置機能、
を実現させ、
前記移動可能範囲には、予め設定されている複数の管理エリアが含まれ、
前記算出機能では、
前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、
前記複数の候補位置を、所属する管理エリアに対応付けて記憶部に記憶させる機能、
前記複数の管理エリアには、親子関係が設定された親管理エリア及び子管理エリアが含まれ、
前記親管理エリアは、前記子管理エリアを含み、該子管理エリアに対応付けられた前記候補位置を除く候補位置が対応付けられ、
前記コンピュータに、さらに、
前記親管理エリア内の三次元仮想空間の状況に応じて、前記親子関係を第一状態及び第二状態のいずれか一方に設定する設定機能、
を実現させ、
前記配置機能では、
前記プレイヤオブジェクトが位置する管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第二状態の親子関係であれば、前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする機能、
を実現させるゲームプログラム。
【請求項５】
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と、該端末装置と通信ネットワークにより接続されるサーバ装置と、を備えたゲームシステムであって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出手段、
前記複数の候補位置の中から選択した１の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置手段、
を含み、
前記移動可能範囲には、予め設定されている複数の管理エリアが含まれ、
前記算出手段は、
前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定し、
前記複数の候補位置を、所属する管理エリアに対応付けて記憶部に記憶させ、
前記複数の管理エリアには、親子関係が設定された親管理エリア及び子管理エリアが含まれ、
前記親管理エリアは、前記子管理エリアを含み、該子管理エリアに対応付けられた前記候補位置を除く候補位置が対応付けられ、
前記親管理エリア内の三次元仮想空間の状況に応じて、前記親子関係を第一状態及び第二状態のいずれか一方に設定する設定手段、を更に含み、
前記配置手段は、
前記プレイヤオブジェクトが位置する管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とし、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とし、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第二状態の親子関係であれば、前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い１の候補位置を前記基準位置とする、
ゲームシステム。