特許第6880102号(P6880102)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社スクウェア・エニックスの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6880102
(24)【登録日】2021年5月7日
(45)【発行日】2021年6月2日
(54)【発明の名称】ゲームプログラム及びゲームシステム
(51)【国際特許分類】
   A63F 13/56 20140101AFI20210524BHJP
   A63F 13/577 20140101ALI20210524BHJP
   G06T 19/00 20110101ALI20210524BHJP
【FI】
   A63F13/56
   A63F13/577
   G06T19/00 C
【請求項の数】5
【全頁数】34
(21)【出願番号】特願2019-85072(P2019-85072)
(22)【出願日】2019年4月26日
(65)【公開番号】特開2020-178970(P2020-178970A)
(43)【公開日】2020年11月5日
【審査請求日】2019年4月26日
【新規性喪失の例外の表示】特許法第30条第2項適用 平成31年3月15日 UE4を用いた大規模開発事例紹介〜スクウェア・エニックス様をお招きして〜 平成31年3月30日 GAME CREATORS CONFERENCE’19 平成31年4月1日 https://www.slideshare.net/koichimiura3/game−creators−conference−2019−koichi−miura
(73)【特許権者】
【識別番号】308033283
【氏名又は名称】株式会社スクウェア・エニックス
(74)【代理人】
【識別番号】100155550
【弁理士】
【氏名又は名称】田嶋 諭
(72)【発明者】
【氏名】片岡 克倫
(72)【発明者】
【氏名】中 健吾
(72)【発明者】
【氏名】三浦 康一
【審査官】 田中 洋行
(56)【参考文献】
【文献】 特開2011−156051(JP,A)
【文献】 特開2008−067863(JP,A)
【文献】 特開2013−248521(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24
A63F 13/00−13/98
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームの進行を制御する機能をコンピュータに実現させるためのゲームプログラムであって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、
前記複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置機能、
を実現させ、
前記移動可能範囲には、予め設定されている複数の管理エリアが含まれ、
前記算出機能では、
前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、
前記複数の候補位置を、所属する管理エリアに対応付けて記憶部に記憶させる機能、
を実現させ、
前記複数の管理エリアには、親子関係が設定された親管理エリア及び子管理エリアが含まれ、
前記親管理エリアは、前記子管理エリアを含み、該子管理エリアに対応付けられた前記候補位置を除く候補位置が対応付けられ、
前記コンピュータに、さらに、
前記親管理エリア内の三次元仮想空間の状況に応じて、前記親子関係を第一状態及び第二状態のいずれか一方に設定する設定機能、
を実現させ、
前記配置機能では、
前記プレイヤオブジェクトが位置する管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第二状態の親子関係であれば、前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
を実現させるゲームプログラム。
【請求項2】
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第二状態の親子関係であれば、前記親管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
を実現させる請求項1に記載のゲームプログラム。
【請求項3】
前記配置機能では、前記複数の候補位置のうち、前記プレイヤオブジェクトを除く三次元仮想空間で動作している動的オブジェクトであってフィルタ設定された動的オブジェクトに重複する候補位置は、前記所定サイズのオブジェクトの配置の対象外とする機能、
を実現させる請求項1又は請求項2に記載のゲームプログラム。
【請求項4】
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と通信ネットワークにより接続されるサーバ装置に、該ゲームの進行を制御させるためのゲームプログラムであって、
前記サーバ装置に、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、
前記複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置機能、
を実現させ、
前記移動可能範囲には、予め設定されている複数の管理エリアが含まれ、
前記算出機能では、
前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、
前記複数の候補位置を、所属する管理エリアに対応付けて記憶部に記憶させる機能、
前記複数の管理エリアには、親子関係が設定された親管理エリア及び子管理エリアが含まれ、
前記親管理エリアは、前記子管理エリアを含み、該子管理エリアに対応付けられた前記候補位置を除く候補位置が対応付けられ、
前記サーバ装置に、さらに、
前記親管理エリア内の三次元仮想空間の状況に応じて、前記親子関係を第一状態及び第二状態のいずれか一方に設定する設定機能、
を実現させ、
前記配置機能では、
前記プレイヤオブジェクトが位置する管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第二状態の親子関係であれば、前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
を実現させるゲームプログラム。
【請求項5】
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と、該端末装置と通信ネットワークにより接続されるサーバ装置と、を備えたゲームシステムであって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出手段、
前記複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置手段、
を含み、
前記移動可能範囲には、予め設定されている複数の管理エリアが含まれ、
前記算出手段は、
前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定し、
前記複数の候補位置を、所属する管理エリアに対応付けて記憶部に記憶させ、
前記複数の管理エリアには、親子関係が設定された親管理エリア及び子管理エリアが含まれ、
前記親管理エリアは、前記子管理エリアを含み、該子管理エリアに対応付けられた前記候補位置を除く候補位置が対応付けられ、
前記親管理エリア内の三次元仮想空間の状況に応じて、前記親子関係を第一状態及び第二状態のいずれか一方に設定する設定手段、を更に含み、
前記配置手段は、
前記プレイヤオブジェクトが位置する管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とし、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とし、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第二状態の親子関係であれば、前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする、
ゲームシステム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ゲームプログラム及びゲームシステムに関する。
【背景技術】
【0002】
ゲーム空間である三次元仮想空間内において、プレイヤが操作するプレイヤキャラクタ(プレイヤオブジェクト)及び敵キャラクタ等のノンプレイヤキャラクタが移動、攻撃等のアクションをするゲームがある(例えば、特許文献1参照)。
【0003】
このようなゲームでは、例えば、ノンプレイヤキャラクタ等の動的オブジェクトを、三次元仮想空間における予め設定された特定の位置から出現させたり、あるいは、予め設定された複数の候補位置の中から選択した位置に出現させたりする。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2017−74162号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上述のようなゲームでは、動的オブジェクトの出現位置は、開発者が予め決定してゲームデータに含められているが、このような開発者の作業負担を軽減することが課題である。特に、近年は、プレイヤキャラクタに比べて、サイズの非常に大きな動的オブジェクトが出現するゲームもある。また、ゲームプログラムのバージョンアップが行われるゲームが増加しつつある。バージョンアップによって、上述の出現位置の情報も更新される。そのため、開発者の負担が増大しつつある。
【0006】
本発明の少なくとも1つの実施形態の目的は、関連する技術の不足を解決することである。
【課題を解決するための手段】
【0007】
非限定的な観点によると、本発明の一実施形態に係るゲームプログラムは、三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームの進行を制御する機能をコンピュータに実現させるためのゲームプログラムであって、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する配置機能、を実現させ、算出機能では、移動可能範囲内においてオブジェクト同士の衝突判定を行い、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を候補位置として決定する機能、を実現させる。
【0008】
非限定的な観点によると、本発明の一実施形態に係るゲームプログラムは、三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と通信ネットワークにより接続されるサーバ装置に、ゲームの進行を制御させるためのゲームプログラムであって、サーバ装置に、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する配置機能、を実現させ、算出機能では、移動可能範囲内においてオブジェクト同士の衝突判定を行い、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、を実現させる。
【0009】
非限定的な観点によると、本発明の一実施形態に係るゲームシステムは、三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と、端末装置と通信ネットワークにより接続されるサーバ装置と、を備えたゲームシステムであって、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出手段、複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する配置手段、を含み、算出手段は、移動可能範囲内においてオブジェクト同士の衝突判定を行い、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を候補位置として決定する。
【発明の効果】
【0010】
本願の各実施形態により1または2以上の不足が解決される。
【図面の簡単な説明】
【0011】
図1】本発明の実施形態の少なくとも一つに対応するゲームシステムの構成の例を示すブロック図である。
図2】本発明の実施形態の少なくとも一つに対応する算出処理の例を示すフローチャートである。
図3】本発明の実施形態の少なくとも一つに対応する配置処理の例を示すフローチャートである。
図4】本発明の実施形態の少なくとも一つに対応するゲームシステムの構成の例を示すブロック図である。
図5】本発明の実施形態の少なくとも一つに対応するサーバ装置が算出処理を実行する場合のサーバ装置及び端末装置の動作の例を示すフローチャートである。
図6】本発明の実施形態の少なくとも一つに対応するサーバ装置が配置理を実行する場合のサーバ装置及び端末装置の動作の例を示すフローチャートである。
図7】本発明の実施形態の少なくとも一つに対応するゲームシステムの構成の例を示すブロック図である。
図8】本発明の実施形態の少なくとも一つに対応する配置処理の例を示すフローチャートである。
図9】本発明の実施形態の少なくとも一つに対応するゲームシステムの構成の例を示すブロック図である。
図10】本発明の実施形態の少なくとも一つに対応する算出処理の例を示すフローチャートである。
図11】本発明の実施形態の少なくとも一つに対応する配置処理の例を示すフローチャートである。
図12】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間の一例を示す図である。
図13】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるプレイヤキャラクタPC及び仲間キャラクタFCの一例を示す図である。
図14】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間の一例を示す図である。
図15】本発明の実施形態の少なくとも一つに対応する衝突判定の判定用オブジェクトの一例を示す図である。
図16】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間の一例を示す図である。
図17】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間及びトリガーボリュームの一例を示す図である。
図18】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間の一例を示す図である。
図19】本発明の実施形態の少なくとも一つに対応するゲームシステムによって形成されるゲーム空間の一例を示す図である。
図20】本発明の実施形態の少なくとも一つに対応するポイントボリューム及び候補位置の管理テーブルの一例を示す図である。
図21】本発明の実施形態の少なくとも一つに対応するゲームシステムの構成の例を示すブロック図である。
図22】本発明の実施形態の少なくとも一つに対応する算出処理の例を示すフローチャートである。
図23】本発明の実施形態の少なくとも一つに対応するゲーム進行処理の例を示すフローチャートである。
図24】本発明の実施形態の少なくとも一つに対応する配置処理の例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態の例について図面を参照して説明する。なお、以下で説明する各実施形態の例における各種構成要素は、矛盾等が生じない範囲で適宜組み合わせ可能である。また、ある実施形態の例として説明した内容については、他の実施形態においてその説明を省略している場合がある。また、各実施形態の特徴部分に関係しない動作や処理については、その内容を省略している場合がある。さらに、以下で説明する各種フローを構成する各種処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。
【0013】
[第1の実施形態]
図1は、本発明の実施形態の少なくとも一つに対応するゲームシステム100の構成の例を示すブロック図である。図1に示すように、ゲームシステム100は、例えば、ユーザ(プレイヤ)が使用するコンピュータであるゲーム端末装置(端末装置)20を含んでいる。なお、図1では、端末装置20の構成の例である端末装置20Aの構成を示している。また、ゲームシステム100の構成は、これに限定されるものではない。例えば、ユーザの端末装置が通信ネットワークを介してサーバ装置(ビデオゲーム処理サーバ)に接続され、このサーバ装置から端末装置に対してビデオゲームのサービスが提供される構成(図4参照)としてもよい。
【0014】
ゲームシステム100は、三次元仮想空間(ゲーム空間)においてユーザの操作に基づいてプレイヤオブジェクトが動作するビデオゲームを実行する各種機能を有する。プレイヤオブジェクトは、端末装置20の操作部を介してユーザに操作されるオブジェクトであってゲーム空間を移動可能なオブジェクトである。
【0015】
本実施形態の例では、ゲーム空間において、所定サイズのオブジェクトが配置される(出現する)ゲームが実行される。所定サイズのオブジェクトは、ゲーム空間内の複数の候補位置の中から選択した1の候補位置を基準位置とする領域に配置される。候補位置を基準位置とする領域は、所定サイズのオブジェクトを配置することが可能な領域である。すなわち、上記領域には、ゲーム空間に既に配置されている建物、キャラクタ等の他のオブジェクトに重複することなく、所定サイズのオブジェクトを配置することが可能である。
【0016】
各候補位置は、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照して算出される。具体的には、上記移動可能範囲内においてオブジェクト同士の衝突判定(アタリ判定)を行い、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置が候補位置として決定される。
【0017】
端末装置20は、ビデオゲームを行うプレイヤによって管理され、例えば、据置型ゲーム装置、パーソナルコンピュータ、携帯電話端末やPDA(Personal Digital Assistants)、携帯型ゲーム装置等のビデオゲームを実行することが可能な端末装置によって構成される。
【0018】
また、端末装置20は、ゲームを実行するための操作部(タッチパネル、ゲームパッドなど)、ハードディスクドライブ等の記憶部、ゲームを実行してゲーム画像を生成するCPU等から構成される制御部、ゲーム画像を表示させる表示装置(表示部)等を備えるが、一般的な構成であるので詳細な説明は省略する。また、端末装置20には、ビデオゲームを実行するとともにゲームの進行を制御するためのソフトウェア(ゲームプログラム)が記憶部に記憶されている。なお、ゲームプログラムには、ゲームデータも含まれる。
【0019】
次に、端末装置20の構成の例である端末装置20Aの構成について説明する。端末装置20Aは、制御部がゲームプログラムを実行することで、上述したゲームの進行を制御するための算出部(算出機能)31及び配置部(配置機能)32を少なくとも備える。
【0020】
算出部31は、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する。具体的には、算出部31は、移動可能範囲内においてオブジェクト同士の衝突判定を行って、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を候補位置として決定する。なお、所定サイズのオブジェクトのデータ、地形データ等は、ゲームデータに含めておけばよい。また、算出した複数の候補位置は、例えば、端末装置20Aの記憶部に記憶しておけばよい。候補位置は、例えば、三次元仮想空間の座標系(ワールド座標系)の座標情報である。
【0021】
配置部32は、複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する。例えば、基準位置に、所定サイズのオブジェクトが配置される。
【0022】
図2は、システム100が実行する算出処理の例を示すフローチャートである。算出処理では、上述した複数の候補位置を算出するための処理が行われる。以下、端末装置20Aが算出処理を実行する場合を例にして説明する。
【0023】
本実施形態の例の算出処理は、例えば、ゲームが実行されていない状況での、所定期間の経過毎(例えば、午前0時)に実行される。
【0024】
算出処理において、端末装置20Aは、判定処理を行う(ステップS10)。判定処理では、例えば、地形データを参照してゲーム空間の移動可能範囲における各位置において、衝突判定を行う。この場合、所定サイズのオブジェクトが含まれるオブジェクトと、ゲーム空間に配置されたオブジェクトとの衝突判定を行えばよい。
【0025】
次に、端末装置20Aは、決定処理を行う(ステップS11)。決定処理では、例えば、他のオブジェクトとの衝突のなかった位置が候補位置として決定し、記憶部に記憶される。その後、端末装置20Aは、算出処理を終了する。
【0026】
図3は、システム100が実行する配置処理の例を示すフローチャートである。配置処理では、上述した所定サイズのオブジェクトをゲーム空間に配置する処理が行われる。以下、端末装置20Aが配置処理を実行する場合を例にして説明する。
【0027】
本実施形態の例の配置処理は、例えば、ゲームが実行されている状況において、所定サイズのオブジェクトの配置が決定した場合に実行される。
【0028】
配置処理において、端末装置20Aは、候補位置の決定処理を実行する(ステップS30)。決定処理では、複数の候補位置の中から1の候補位置が決定される。端末装置20Aは、例えば、プレイヤオブジェクトの現在位置から最も近い1の候補位置を選択すればよい。その後、端末装置20Aは、配置処理を行う(ステップS31)。配置処理では、上述したように、選択された候補位置を基準位置とする領域に所定サイズのオブジェクトが配置される。
【0029】
以上のように、第1の実施形態の一側面として、端末装置20Aが、算出部31及び配置部32を備える構成としているので、所定サイズのオブジェクトを配置可能な複数の候補位置が自動的に生成される。したがって、開発者の作業負担を軽減することができる。
【0030】
なお、上述した第1の実施形態の例では、端末装置20Aが、ゲームプログラムを実行してゲームの進行を制御しているが、特にこれに限定されるものではない。例えば、図4に示すようなサーバ装置及び端末装置を含むゲームシステムとし、端末装置20Aに代えてサーバ装置が少なくともオブジェクトの算出部31及び配置部32を備える構成としてもよい。
【0031】
サーバ装置は、図示しないハードディスクドライブ等の記憶部及びCPU等から構成される制御部などを有する。また、サーバ装置は、記憶部に記憶されている上述のゲームプログラムを制御部が実行することで、端末装置20Aと同様にビデオゲームの進行を制御する。サーバ装置は、制御部や通信部等のビデオゲームの進行を制御するための一般的な構成を備えるが、ここでの詳細な説明は省略する。
【0032】
なお、サーバ装置は、端末装置20Aのようにビデオゲームを実行しない。サーバ装置は、例えば、インターネット回線(通信ネットワーク)に接続された通信部を有し、ビデオゲームを実行する端末装置と通信を行う。サーバ装置は、ユーザ(端末装置)から操作信号(操作情報)等を受信し、またゲーム進行に関する情報(画像情報等)を端末装置に送信する。なお、図4では1のサーバ装置及び1の端末装置について例示しているが、サーバ装置は、複数の端末装置とビデオゲームに関する通信を行って、各端末装置のビデオゲームの進行を制御してもよい。また、複数のサーバ装置が協働して上記ゲームプログラムを実行してもよく、サーバ装置及び端末装置が協働して上記ゲームプログラムを実行(ゲームの進行を制御)してもよい。
【0033】
図5は、サーバ装置が図2に示す算出処理を実行する場合のサーバ装置及び端末装置の動作の例を示すフローチャートである。なお、この場合、端末装置は、ゲームが実行されていない状態となる。
【0034】
算出処理において、サーバ装置は、判定処理を行う(ステップS50)。判定処理では、例えば、地形データを参照してゲーム空間の移動可能範囲における各位置において、衝突判定を行う。次に、サーバ装置は、決定処理を行う(ステップS51)。決定処理では、例えば、他のオブジェクトとの衝突のなかった位置を候補位置として決定し、サーバ装置の記憶部に記憶する。その後、サーバ装置は、算出処理を終了する。
【0035】
図6は、サーバ装置が図3に示す配置処理を実行する場合のサーバ装置及び端末装置の動作の例を示すフローチャートである。
【0036】
配置処理において、サーバ装置は、候補位置の決定処理を実行する(ステップS60)。決定処理では、複数の候補位置の中から1の候補位置が決定される。サーバ装置は、例えば、プレイヤオブジェクトの現在位置から最も近い1の候補位置を選択すればよい。その後、サーバ装置は、配置処理を行う(ステップS61)。配置処理では、上述したように、選択された候補位置を基準位置とする領域に所定サイズのオブジェクトが配置される。
【0037】
サーバ装置は、図示しないが、ゲーム進行に応じたゲーム画像を生成するための画像情報を定期的に生成し、端末装置に送信する。
【0038】
一方、端末装置は、受信した画像情報に基に基づくゲーム画像を出力(表示部に表示)する(ステップS70)。そして、端末装置は、ゲーム終了と判断するまで(ステップS71:YES)、ステップS70の処理を繰り返し実行する。
【0039】
なお、図5の算出処理をサーバ装置で実行し、図6の配置処理を端末装置が実行してもよい。この場合、サーバ装置は、算出した複数の候補位置を端末装置に送信すればよい。
【0040】
なお、上述のプレイヤオブジェクトは、キャラクタ、アバター、戦闘機等の各種オブジェクトが該当する。なお、オブジェクトを生成するための画像データ(テクスチャ画像)等は、ゲームデータに含めておけばよい。
【0041】
上述の所定サイズのオブジェクトは、プレイヤオブジェクトと同様に各種オブジェクトを採用可能であり、静的なオブジェクトでも動的なオブジェクトであってもよい。静的なオブジェクトとしては、例えば、巨大な岩のオブジェクトである。この場合、プレイヤオブジェクトが、魔法等の実行によって巨大な岩のオブジェクトをゲーム空間に出現させる構成としてもよい。また、動的なオブジェクトとしては、キャラクタのオブジェクトである。この場合、プレイヤオブジェクトが、魔法等の実行によって巨大な仲間キャラクタをゲーム空間に出現させる(召喚する)構成とすればよい。
【0042】
また、所定サイズのオブジェクトは、プレイヤオブジェクトであってもよい。この場合、例えば、プレイヤオブジェクトが、魔法等の実行によって自身をゲーム空間の別の場所にワープさせる構成とすればよい。さらに、所定サイズのオブジェクトは、1体に限定されず、複数のオブジェクトであってもよい。この場合、例えば、プレイヤオブジェクトが、魔法等の実行によって自身をゲーム空間の別の場所にワープさせ、且つ、巨大な仲間キャラクタをプレイヤオブジェクトの周辺に出現させる(召喚する)構成とすればよい。
【0043】
また、所定サイズのオブジェクトの配置タイミングは、例えば、上述したようにプレイヤオブジェクトの魔法等の所定動作が実行された場合がある。
【0044】
さらに、所定サイズのオブジェクトを配置するための1の候補位置の決定は、任意の選択方法を採用可能である。例えば、複数の候補位置からランダムに決定してもよい。また、例えば、プレイヤオブジェクトから最も近い候補位置に決定してもよい。
【0045】
また、所定サイズのオブジェクトの配置は、ゲーム空間の他のオブジェクトと衝突しない状態であれば、1の候補位置を基準位置とする領域に任意に配置可能である。例えば、プレイヤオブジェクトが、魔法等の実行によって自身をゲーム空間の別の場所にワープさせ、且つ、巨大な仲間キャラクタをプレイヤオブジェクトの周辺に出現させる(召喚する)構成の場合、プレイヤオブジェクトを基準位置に配置し、プレイヤオブジェクトの上方に仲間キャラクタを配置させればよい(図13参照)。また、例えば、仲間キャラクタを基準位置に配置し、仲間キャラクタに乗った状態となるようにプレイヤオブジェクトを配置させてもよい。
【0046】
上述の地形データとしては、例えば、ナビゲーションメッシュがある。ナビゲーションメッシュは、ゲーム空間においてAIキャラクタ(ノンプレイヤキャラクタ)の移動経路を決定する場合等に用いられるデータであり、ノンプレイヤキャラクタが移動可能な領域を特定するデータである。また、ナビゲーションメッシュは、ゲーム空間において、プレイヤオブジェクトが移動可能な範囲でもある。ナビゲーションメッシュは、複数のポリゴンを形成するデータ構造である(図14参照)。
【0047】
例えば、ナビゲーションメッシュの各ポリゴン(例えば、三角形のポリゴン)の重心位置に、所定サイズのオブジェクトを覆うサイズの簡易形状のオブジェクトを配置して、衝突判定を行う。簡易形状のポリゴンは、例えば、円柱のオブジェクトである(図15参照)。この円柱の底面の中心位置を、上記重心位置に配置してゲーム空間の他のオブジェクトと衝突するか否かが判定される。衝突しなかった重心位置は、上述の候補位置となる。
【0048】
なお、上述のゲームは、三次元仮想空間であるゲーム空間においてプレイヤオブジェクトが動作するゲームであれば、アクションゲーム、ロールプレイングゲーム、育成ゲーム等のいずれのジャンルのゲームを採用してもよい。
【0049】
[第2の実施形態]
図7は、端末装置20の例である端末装置20Bの構成を示すブロック図である。本例において、端末装置20Bは、算出部31及び配置部32Bを少なくとも備える。
【0050】
算出部31は、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する。具体的には、算出部31は、移動可能範囲内においてオブジェクト同士の衝突判定を行って、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を候補位置として決定する。なお、所定サイズのオブジェクトのデータ、地形データ等は、ゲームデータに含めておけばよい。また、算出した複数の候補位置は、例えば、端末装置20Bの記憶部に記憶しておけばよい。
【0051】
配置部32Bは、複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する。例えば、基準位置に、所定サイズのオブジェクトが配置される。本実施形態の例では、配置部32Bは、複数の候補位置の中から、プレイヤオブジェクトから最も近い1の候補位置を基準位置として選択する。
【0052】
図8は、システム100が実行する配置処理の例を示すフローチャートである。配置処理では、上述した所定サイズのオブジェクトをゲーム空間に配置する処理が行われる。以下、端末装置20Bが配置処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。また、算出処理は、上述の第1の実施形態と同様の構成であるので、説明を省略する。
【0053】
本実施形態の例の配置処理は、例えば、ゲームが実行されている状況において、所定サイズのオブジェクトの配置が決定した場合に実行される。
【0054】
配置処理において、端末装置20Bは、候補位置の決定処理を実行する(ステップS30−B)。決定処理では、複数の候補位置の中から1の候補位置が決定される。端末装置20Bは、プレイヤオブジェクトの現在位置から最も近い1の候補位置を選択する。例えば、プレイヤオブジェクトと各候補位置との距離を算出し、距離が最も少ない1の候補位置を選択すればよい。その後、端末装置20Bは、配置処理を行う(ステップS31)。配置処理では、選択された候補位置を基準位置とする領域に所定サイズのオブジェクトが配置される。
【0055】
以上のように、第2の実施形態の一側面として、端末装置20Bが、算出部31及び配置部32Bを備える構成としているので、所定サイズのオブジェクトを配置可能な複数の候補位置が自動的に生成される。したがって、開発者の作業負担を軽減することができる。
【0056】
[第3の実施形態]
図9は、端末装置20の例である端末装置20Cの構成を示すブロック図である。本例において、端末装置20Cは、算出部31C及び配置部32Cを少なくとも備える。
【0057】
算出部31Cは、三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する。具体的には、算出部31Cは、移動可能範囲内においてオブジェクト同士の衝突判定を行って、所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を候補位置として決定する。なお、所定サイズのオブジェクトのデータ、地形データ等は、ゲームデータに含めておけばよい。
【0058】
また、本実施形態の例では、算出部31Cは、算出した複数の候補位置を、所属する管理エリアに対応付けて端末装置20Cの記憶部に記憶させる。本実施形態の例では、ゲーム空間の上記移動可能範囲には、複数の管理エリアが予め設定されている(図18参照)。すなわち、移動可能範囲が、複数の管理エリアに区分さている。そして、上記各候補位置は、自身の位置が含まれる管理エリアに対応付けられる。例えば、管理エリアの識別情報と候補位置の座標情報とを対応付けて記憶させればよい。なお、各管理エリアのデータは、ゲームデータに含めておけばよい。
【0059】
配置部32Cは、複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、所定サイズのオブジェクトを配置する。本実施形態の例では、配置部32Cは、プレイヤオブジェクトが位置する管理エリアに対応付けられた候補位置のうち、プレイヤオブジェクトから最も近い1の候補位置を基準位置として選択する。すなわち、選択の対象が複数の候補位置の全てではなく、プレイヤオブジェクトが位置する管理エリアに対応付けられた候補位置となる。
【0060】
図10は、システム100が実行する算出処理の例を示すフローチャートである。算出処理では、上述した複数の候補位置を算出するための処理が行われる。以下、端末装置20Cが算出処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【0061】
本実施形態の例の算出処理は、例えば、ゲームが実行されていない状況での、所定期間の経過毎(例えば、午前0時)に実行される。
【0062】
算出処理において、端末装置20Cは、判定処理を行う(ステップS10)。判定処理では、例えば、地形データを参照してゲーム空間の移動可能範囲における各位置において、衝突判定を行う。この場合、所定サイズのオブジェクトが含まれるオブジェクトと、ゲーム空間に配置されたオブジェクトとの衝突判定を行えばよい。
【0063】
次に、端末装置20Cは、決定処理を行う(ステップS11−C)。決定処理では、例えば、他のオブジェクトとの衝突のなかった位置が候補位置として決定される。そして、上述したように、複数の管理エリアと複数の候補位置とが対応付けられ記憶部に記憶される。その後、端末装置20Cは、算出処理を終了する。
【0064】
図11は、システム100が実行する配置処理の例を示すフローチャートである。配置処理では、上述した所定サイズのオブジェクトをゲーム空間に配置する処理が行われる。以下、端末装置20Cが配置処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【0065】
本実施形態の例の配置処理は、例えば、ゲームが実行されている状況において、所定サイズのオブジェクトの配置が決定した場合に実行される。
【0066】
配置処理において、端末装置20Cは、候補位置の決定処理を実行する(ステップS30−C)。決定処理では、複数の候補位置の中から1の候補位置が決定される。端末装置20Cは、プレイヤオブジェクトが位置する管理エリアに対応付けられた候補位置のうち、プレイヤオブジェクトから最も近い1の候補位置を基準位置として選択する。例えば、プレイヤオブジェクトの現在の位置が含まれる管理エリアを特定する。そして、プレイヤオブジェクトとその管理エリアの各候補位置との距離を算出し、距離が最も少ない1の候補位置を選択すればよい。その後、端末装置20Cは、配置処理を行う(ステップS31)。配置処理では、選択された候補位置を基準位置とする領域に所定サイズのオブジェクトが配置される。
【0067】
以上のように、第3の実施形態の一側面として、端末装置20Cが、算出部31C及び配置部32Cを備える構成としているので、所定サイズのオブジェクトを配置可能な複数の候補位置が自動的に生成される。したがって、開発者の作業負担を軽減することができる。
【0068】
また、プレイヤオブジェクトがいる管理エリアの候補位置の中から、プレイヤオブジェクトに最も近い1の候補位置が選択される。したがって、プレイヤオブジェクトがいる空間の中で候補位置が選択されるので、ゲーム進行において無関係な空間に所定サイズのオブジェクトが配置されることが防止される抑制。
【0069】
例えば、所定サイズのオブジェクトが、プレイヤオブジェクトの敵キャラクタである場合について説明する。この場合、プレイヤオブジェクトがいる空間に隣接している空間に、敵キャラクタは配置されず、プレイヤオブジェクトがいる空間のいずれかの位置に配置される。したがって、配置直後にプレイヤオブジェクトと敵キャラクタとの戦闘が開始可能となる
【0070】
また、例えば、プレイヤオブジェクトが、魔法等の実行によって自身をゲーム空間の別の場所にワープさせ、且つ、巨大な仲間キャラクタをプレイヤオブジェクトの周辺に出現させる(召喚する)構成の場合について説明する。この場合、プレイヤオブジェクトがいる現在の空間に隣接している空間に、ワープすることが防止され、プレイヤオブジェクトがいる現在の空間のいずれかの位置にワープする。そして、所定サイズのオブジェクトを召喚して、その空間にいる敵キャラクタ等を所定サイズのオブジェクトに攻撃させることができる。
【0071】
[第4の実施形態]
図12は、本実施形態の例のゲーム空間の一例を示す図である。本実施形態の例の端末装置20Dは、インターネットなどの通信ネットワークを経由して他の端末装置と通信する通信機能を有する据え置き型のゲーム装置である。本実施形態の例では、ゲーム空間50において、ユーザが操作するプレイヤキャラクタ(プレイヤオブジェクト)PCに移動等の行動を実行させ、敵キャラクタEC等のオブジェクトと戦闘させるゲームが実行される。ゲーム空間50は、3軸(X軸,Y軸,Z軸)のワールド座標系で規定された三次元仮想空間である。
【0072】
本実施形態の例では、ユーザは、プレイヤキャラクタPCに召喚のスキルを発動させることができる。召喚は、例えば、プレイヤキャラクタPCを助けてくれる仲間キャラクタをゲーム空間50に出現させる(呼び出す)。図13に示すように、仲間キャラクタFCは、プレイヤキャラクタよりも巨大な動的なオブジェクトであり、所定サイズのオブジェクトに該当する。図13は、プレイヤキャラクタPC及び仲間キャラクタFCの一例を示す図である。仲間キャラクタFCは、出現してから所定時間の経過後にゲーム空間50から消滅する。
【0073】
召喚の動作(召喚動作)は、プレイヤキャラクタPCが現在いる場所において実行される。例えば、仲間キャラクタFCは、図13に示すように、プレイヤキャラクタPCが現在いる位置の上方に出現する。なお、上方に限らず、プレイヤキャラクタPCの周囲に仲間キャラクタを出現させるようにしてもよい。
【0074】
しかし、プレイヤキャラクタPCが、仲間キャラクタFCを出現させられる空間のない狭い場所にいる場合、広い空間にワープした後に召喚動作を継続し、仲間キャラクタFCを出現させる。例えば、プレイヤキャラクタPCが図12に示すような狭い場所にいる状態で召喚を開始した場合、プレイヤキャラクタPCは広い場所にワープする。
【0075】
最初に、上述のワープの際のプレイヤキャラクタPCのワープ位置について説明する。ワープ位置は、複数の候補位置の中から選択された1の候補位置が基準位置となって算出される。複数の候補位置は、端末装置20Dによって算出される。端末装置20Dは、ゲーム空間50におけるプレイヤキャラクタPCの移動可能範囲を特定可能な地形データを参照し、プレイヤキャラクタPC及び仲間キャラクタFCを配置可能な空間が存在する位置を候補位置とする。
【0076】
本実施形態の例では、地形データとしてナビゲーションメッシュを使用する。ナビゲーションメッシュは、ゲーム空間50において敵キャラクタEC等のAIキャラクタ(ノンプレイヤキャラクタ)の移動経路を決定する場合等に用いられるデータであり、ノンプレイヤキャラクタが移動可能な領域を特定するデータである。また、ナビゲーションメッシュは、ゲーム空間50において、プレイヤキャラクタが移動可能な範囲でもある。したがって、プレイヤキャラクタPCがワープを行っても移動不能とはならない。なお、ナビゲーションメッシュは、一般的な構成であるので詳細な説明は省略する。
【0077】
ナビゲーションメッシュ(以下、メッシュと称する)は、移動可能範囲を示す領域である。メッシュは、複数のポリゴンを形成するデータ構造である。図14(A)は、図12で例示したゲーム空間50に、メッシュMAを示した図である。メッシュMAは、例えば、図14(A)の部分拡大図に示すように、複数の三角形のポリゴンで形成される。
【0078】
本実施形態の例では、メッシュMAの各ポリゴンの重心位置NCGを基準に、候補位置が算出される。具体的には、重心位置NCGを基準に衝突判定を行って候補位置が算出される。なお、衝突判定は一般的な構成であるので、詳細な説明は省略する。また、ナビゲーションメッシュは、ゲームデータに含まれる。
【0079】
図15は、衝突判定に用いられる判定用オブジェクトCOの一例を示す図である。判定用オブジェクトCOは、円筒状の簡易形状を呈し、プレイヤキャラクタPC及び仲間キャラクタFCを内部に収容可能な大きさである。
【0080】
本実施形態の衝突判定では、最初に、いずれか1の重心位置NCGに、底面の中心位置が重なるように判定用オブジェクトCOが配置される。そして、判定用オブジェクトCOがゲーム空間50に配置されている壁面、岩等の他のオブジェクトと衝突するか否かが判定される。この場合、衝突なしと判定されれば、上記1の重心位置NCGは候補位置となる。一方、衝突すると判定されれば、上記1の重心位置NCGの上方(Y軸方向)に所定距離だけ判定用オブジェクトCOを移動させる。移動した位置で、同様の衝突判定が行われる。そして、上記1の重心位置NCGに関して、衝突しない位置が発見されるまで、又は、移動した位置が上限高さに達するまで、判定用オブジェクトCOを上方に所定距離だけ移動させながら衝突判定が繰り返し実行される。
【0081】
そして、メッシュMAの全ての重心位置NCGに関して、上記のように衝突判定が行われ、候補位置が算出される。
【0082】
例えば、図14(A)に示す重心位置NCG−1に判定用オブジェクトCOが配置された場合は、他のオブジェクトとは衝突しないので、重心位置NCG−1が候補位置となって衝突判定が終了する。また、例えば、図14(A)に示す重心位置NCG−2に関しては、上限高さまで衝突判定用オブジェクトCOと壁面のオブジェクトとが衝突する状態となるので、候補位置CPはなしと判断される。例えば、図14(A)に示すゲーム空間50では、図14(B)に示すような候補位置CPが算出される。
【0083】
また、例えば、図16(A)に示すような傾斜のある地面Wにおいては、メッシュMAも傾斜状に形成され、重心位置NCGも斜面上にある。そのため、例えば、図16(A)に示すように、判定用オブジェクトCOが重心位置NCG−3に配置された場合、判定用オブジェクトCOは地面Wと衝突する。そのため、傾斜のある地面Wの領域においては、少なくとも地面Wと衝突しない位置まで上方に移動させた位置が候補位置CPとなる。例えば、図16(A)に示す重心位置NCG−3では、候補位置CPは、図16(B)に示すような重心位置NCG−3よりも上方の候補位置CP−3が算出される。
【0084】
さらに、本実施形態の例では、メッシュMAに加え、トリガーボリュームも参照して候補位置CPが算出される。トリガーボリュームは、ゲーム空間50の一部の領域(トリガーエリア)を特定するデータである。トリガーボリュームは、ムービー再生等のゲーム内のイベントの実行、マップデータのロード等の実行トリガーとして機能する。例えば、プレイヤキャラクタPCがトリガーボリュームに入った場合に、ムービーの再生が開始される。この場合、プレイヤキャラクタPCとトリガーボリュームとの衝突判定が行われ、プレイヤキャラクタPCがトリガーボリュームに入ったことが判定される。トリガーボリュームは、ゲームの進行上、プレイヤキャラクタPCが通過する位置にある。
【0085】
また、トリガーボリュームは、プレイヤキャラクタPCの移動可能範囲上にある。トリガーボリュームTVは、例えば、図17(A)に示すような薄板の立体形状である。トリガーボリュームTVは、図17(B)に示すように、外周面が複数のポリゴンで形成されるデータ構造である。図17(A)は、ゲーム空間50に配置されたトリガーボリュームTVの一例を示す。図17(B)は、トリガーボリュームTVの一例を示す図である。なお、図17(A)は、説明の便宜上、トリガーボリュームTVの形状のみを示している。なお、メッシュMA及びトリガーボリュームTVは、ユーザがプレイする際のゲーム画面には表示されない。
【0086】
本実施形態の例では、トリガーボリュームTVの重心位置TCG及び内部点IPを基準に、候補位置が算出される。具体的には、重心位置TCG及び内部点IPを基準に衝突判定を行って候補位置が算出される。重心位置TCGは、トリガーボリュームTVの外周面のポリゴンの重心である。内部点IPは、図17(B)に示すように、トリガーボリュームTVの内部を水平線及び垂直線の格子線で格子状に区切った際の交点である。格子線は、例えば、格子線と格子線との間隔が所定値で均等になるように位置を決定すればよい。
【0087】
トリーがボリュームTVにおける衝突判定では、最初に、選択した1の重心位置NCG又は内部点IPが、メッシュ(移動可能範囲)MA上にあるか否かが判定される。メッシュMA上にある場合は、上記選択した1の重心位置NCG又は内部点IPに、底面の中心位置が重なるように判定用オブジェクトCOが配置される。そして、判定用オブジェクトCOがゲーム空間50に配置されている壁面、岩等の他のオブジェクトと衝突するか否かが判定される。この場合、衝突なしと判定されれば、上記選択した1の重心位置NCG又は内部点IPは候補位置CPとなる。一方、衝突すると判定されれば、候補位置CPとして認定されない。そして、トリガーボリュームTVの全ての重心位置TCG及び内部点IPに関して、上記のように衝突判定が行われ、候補位置CPが算出される。
【0088】
上述のように、トリガーボリュームTVに候補位置CPが設けられることで、プレイヤキャラクタPCがトリガーボリュームTVを通らずに、隣接する空間にワープしてしまうことを防止できる。例えば、図17(A)に示すゲーム空間50−AにプレイヤキャラクタPCがいる状態で、トリガーボリュームTVを通過せずに、ゲーム空間50−Bにワープ移動してしまうことが防止される。
【0089】
上述のようにして算出された複数の候補位置CPは、複数のポイントボリュームのいずれか1つに対応付けられて端末装置20Dの記憶部に記憶される。ポイントボリューム(管理エリア)は、ユーザの移動可能範囲(メッシュMA)の一部の領域を特定するデータである。すなわち、移動可能範囲が、複数のポイントボリュームに区分さている。ポイントボリュームは、上述のトリガーボリュームTVと同様に、外周面が複数のポリゴンで形成されるデータ構造である。衝突判定によってプレイヤキャラクタPCがポイントボリュームに入ったことが検知される。各候補位置CPは、自身の位置を含むポイントボリュームに対応付けられる。
【0090】
図18は、ゲーム空間50に配置されたポイントボリュームPV(PV−1,PV−2)の一例を示す図である。図18に示すゲーム空間50は、壁WAのオブジェクトによって仕切られている。ポイントボリュームPV−1には、候補位置CP−Aが対応付けられている。また、ポイントボリュームPV−2には、候補位置CP−B〜CP−Hが対応付けられている。例えば、プレイヤキャラクタPCがポイントボリュームPV−2内にいる場合には、基準位置は、候補位置CP−B〜CP−Hの中から決定される。
【0091】
また、本実施形態の例の一部のポイントボリュームPVには、親子関係が設定されている。親子関係は、親となるポイントボリュームPVが、子となるポイントボリュームPVを含む関係である。例えば、図19に示すように、親であるポイントボリュームPV−3は、子であるポイントボリュームPV−4を含んでいる。ただし、親子関係の2つのポイントボリュームPVであっても、それぞれに対応付けられる候補位置CPは、互いに異なる。例えば、親であるポイントボリュームPV−3には、子であるポイントボリュームPV−4内にある候補位置CP−f〜CP−jは対応付けられず、候補位置CP−a〜CP−eのみが対応付けられる。また、子であるポイントボリュームPV−4には、候補位置CP−f〜CP−jのみが対応付けられる。なお、親子関係の情報は、ゲームデータに含まれる。親子関係は、基準位置とする候補位置CPの決定の際に参照される。詳細は後述する。
【0092】
図20(A)は、ポイントボリュームPVの管理テーブル200一例を示す図である。管理テーブル200は、ボリュームID、エリアデータ、親子関係、フラグ等のフィールドから構成される。ボリュームIDのフィールドには、ポイントボリュームPVの識別情報が設定される。ボリュームIDに、エリアデータ、親子関係、フラグが対応付けられる。
【0093】
エリアデータのフィールドには、ポイントボリュームPVの領域を特定するポリゴン頂点の座標情報等が設定されている。親子関係のフィールドには、子であるポイントボリュームPVの識別情報が設定される。例えば、上述したポイントボリュームPV−3の親子関係には、子であるポイントボリュームPV−4の識別情報が設定される。フラグのフィールドには、対応する制御フラグを特定する情報が設定される。制御フラグ(ON/OFFフラグ)は、子となるポイントボリュームPVにのみ対応付けられる。例えば、子であるポイントボリュームPV−4には、制御フラグFFの情報が設定される。制御フラグの詳細は後述する。管理テーブル200は、予めゲームデータに含まれている。
【0094】
図20(B)は、候補位置CPの管理テーブル250の一例を示す図である。管理テーブル200は、ボリュームID、出現ポイント等のフィールドから構成される。ボリュームIDのフィールドには、ポイントボリュームPVの識別情報が設定される。ボリュームIDに、出現ポイントが対応付けられる。出現ポイントのフィールドには、対応するポイントボリュームPVの候補位置CPの座標情報が設定される。例えば、ポイントボリュームPV−3の出現ポイントには、上述したように候補位置CP−a〜CP−eの座標情報が設定される。
【0095】
端末装置20Dは、所定の実行条件が成立する毎に、上述した複数の候補位置を算出するとともに、管理テーブル250を生成する。管理テーブル250は、管理装置20Dの記憶部に記憶される。所定の実行条件は、例えば、ゲームが実行されていない状況、且つ、所定期間が経過した(例えば、午前0時)ことである。ゲームが実行されていない状況とは、ユーザがゲームをプレイしていない状況である。
【0096】
次に、狭い場所で召喚動作した場合のワープ位置の決定について説明する。上述したように、プレイヤキャラクタPCは、仲間キャラクタFCを出現させられる空間を確保できない狭い場所にいる場合、広い空間にワープした後に召喚動作を継続し、仲間キャラクタFCを出現させる。
【0097】
ワープ位置は、複数の候補位置の中から選択された1の候補位置が基準位置となって算出される。具体的には、基準位置を鉛直下方に移動させて、地面のオブジェクトに衝突する位置がワープ位置となる。すなわち、基準位置の直下にある地面上にワープ位置が決定される。したがって、プレイヤキャラクタは、ワープした場合、常に図15に示すような地上にいる状態で召喚動作を行う。なお、常に地上で召喚動作を行わなくてもよい。常に基準位置をワープ位置としてもよい。
【0098】
例えば、図14(B)で例示した候補位置CP−1が基準位置となった場合、候補位置CP−1は地面の高さと同じ位置にあるので、ワープ位置は、候補位置CP−1となる。そして、プレイヤキャラクタPC、仲間キャラクタFCが配置される。
【0099】
また、例えば、図16(B)に例示した候補位置CP−3が基準位置となった場合、候補位置CP−3の下方の地面Wに衝突する位置(重心位置NCG−3)がワープ位置となる。また、トリガーボリュームTVにおいて算出された候補位置CPが基準位置となった場合も同様の構成でワープ位置が決定される。
【0100】
複数の候補位置の中から基準位置となる1の候補位置を選択する条件(選択条件)は、対象のポイントボリュームPVに対応付けられた候補位置CPのうち、有効な候補位置であり、且つ、プレイヤキャラクタPCから最も近い候補位置であることである。
【0101】
対象のポイントボリュームPVは、図18を用いて説明したように、基本的に、プレイヤキャラクタPCが現在存在するポイントボリュームPVとなる。ただし、プレイヤキャラクタPCが親子関係のあるポイントボリュームPVに存在する場合、上述した制御フラグの値(ON/OFF)に基づいて、対象のポイントボリュームPVが決定される。具体的には、制御フラグがON(第一状態)の場合、親のポイントボリュームPV及び子のポイントボリュームPVの両方が対象となる。
【0102】
また、制御フラグがOFF(第二状態)の場合、プレイヤキャラクタPCの存在している位置に応じて、親のポイントボリュームPV及び子のポイントボリュームPVのいずれか一方が対象のポイントボリュームPVとなる。具体的には、制御フラグがOFFで、プレイヤキャラクタPCが親のポイントボリュームPV及び子のポイントボリュームPVの両方に含まれている場合、子のポイントボリュームPCが対象となる。また、制御フラグがOFFで、プレイヤキャラクタPCが親のポイントボリュームPVにのみ含まれている場合、親のポイントボリュームPCが対象となる。
【0103】
例えば、図19で例示したポイントボリュームPV−3,PV−4の場合について説明する。親のポイントボリュームPV−3は、ゲーム空間50−S,50−Tを包含する領域である。子のポイントボリュームPV−4は、ゲーム空間50−Tを包含する領域である。子のポイントボリュームPV−4には、制御フラグFFが対応付けられている。制御フラグFFは、ゲーム空間50−Sとゲーム空間50−Tとを仕切る扉DRのオブジェクトの開閉状態に応じて値が変化する。すなわち、扉DR:オープンで、制御フラグFF=1(ON)となる。また、扉DR:クローズで、制御フラフFF=0(OFF)となる。なお、扉DRは、例えば、一定間隔でオープン及びクローズを繰り返す。
【0104】
例えば、プレイヤキャラクタPCがゲーム空間50−Tの地点Q1に存在する場合について説明する。この場合、扉DR:オープンで制御フラグFF=1(ON)であれば、ポイントボリュームPV−3,PV−4が対象となる。すなわち、ポイントボリュームPV−3,PV−4に対応付けられた候補位置CP−a〜CP−jが選択の対象となる。候補位置CP−a〜CP−jが有効である場合、地点Q1に最も近い候補位置CP−eが基準位置として選択される。また、扉DR:クローズで制御フラグFF=0(OFF)であれば、ポイントボリュームPV−4のみが対象となる。すなわち、ポイントボリュームPV−4に対応付けられた候補位置CP−f〜CP−jが選択の対象となる。候補位置CP−f〜CP−jが有効である場合、地点Q1に最も近い候補位置CP−hが基準位置として選択される。したがって、扉DRがクローズの状態において、扉の向こう側にワープしてしまうことが防止される。
【0105】
また、例えば、プレイヤキャラクタPCがゲーム空間50−Sの地点Q2に存在する場合について説明する。この場合、扉DR:オープンで制御フラグFF=1(ON)であれば、ポイントボリュームPV−3,PV−4が対象となる。すなわち、ポイントボリュームPV−3,PV−4に対応付けられた候補位置CP−a〜CP−jが選択の対象となる。また、扉DR:クローズで制御フラグFF=0(OFF)であれば、ポイントボリュームPV−3が対象となる。すなわち、ポイントボリュームPV−3に対応付けられた候補位置CP−a〜CP−eが選択の対象となる。
【0106】
なお、制御フラグのON/OFFは、扉DRの開閉状態に限定されるものではない。親のポイントボリュームPV内のゲーム空間の状況に応じて変更すればよい。例えば、現在のゲームの進行上、子のポイントボリューム内の空間にプレイヤキャラクタPCが入ることが禁止されている状態の場合には、制御フラグをOFFとする。
【0107】
次に、選択条件における有効な候補位置CPについて説明する。候補位置CPが有効か否かは、フィルタ設定された動的オブジェクトを中心とする所定領域に含まれるか否かによって決定される。候補位置CPが、動的オブジェクトを中心とする所定領域に含まれない場合は有効と判定される。一方、候補位置CPが、動的オブジェクトを中心とする所定領域に含まれる場合は無効と判定される。なお、動的オブジェクトは、例えば、敵キャラクタEC、他のユーザの操作するプレイヤキャラクタ等の移動するオブジェクトである。
【0108】
このように、候補位置CPに対して有効/無効の設定を行うことで、ワープ位置において、プレイヤキャラクタPC及び仲間キャラクタFCが、動的オブジェクトに重なってしまうことを防止できる。
【0109】
なお、上述の所定領域は、プレイヤキャラクタPC及び仲間キャラクタFCが、動的オブジェクトに重ならないように有効/無効の判定ができる領域であることが望ましい。例えば、動的オブジェクト自体の形態の領域であってもよく、また動的オブジェクトを含む簡易形状の領域であってもよい。また、例えば、候補位置との所定領域との衝突判定で有効/無効を判定すればよい。
【0110】
なお、全ての敵キャラクタECを、候補位置CPの有効性の判定対象の動的オブジェクトとしなくてもよい。本実施形態の例では、例えば、所定サイズ以上の敵キャラクタECのみを、候補位置CPの有効性の判定対象とする。判定対象となる敵キャラクタECの識別情報には、フィルタ設定がされている。すなわち、フィルタ設定のある敵キャラクタECのみが上記有効性の判定対象となる。なお、フィルタ設定は、ゲームデータに含まれる。
【0111】
図21は、端末装置20の例である端末装置20Dの構成を示すブロック図である。本例において、端末装置20Dは、算出部31D、配置部32D、動作制御部33D、イベント発生部34D及び設定部35Dを少なくとも備える。
【0112】
算出部31Dは、ゲーム空間(三次元仮想空間)50におけるプレイヤキャラクタPCの移動可能範囲を特定可能な地形データ(ナビゲーションメッシュMA)、トリガーボリュームTV等を参照して複数の候補位置CPを算出する。算出部31Dは、上述したように、移動可能範囲内の各位置において衝突判定を行って、判定用オブジェクトCOが他のオブジェクトと衝突しない位置を候補位置CPとして決定する。なお、プレイヤキャラクタPC、判定用オブジェクトCO及び仲間キャラクタFCのデータ、ナビゲーションメッシュMA、トリガーボリュームTVのデータ等は、ゲームデータに含まれる。
【0113】
算出部31Dは、所定の実行条件が成立した場合、上述のように複数の候補位置CPを算出する。また、算出部31Dは、算出した複数の候補位置CPを、所属するポイントボリューム(管理エリア)PVに対応付けた管理テーブル250を生成する。管理テーブル250は、端末装置20Dの記憶部に記憶される。
【0114】
配置部32Dは、キャラクタ等の動的オブジェクトのゲーム空間50への配置を行う。例えば、配置部32Dは、プレイヤキャラクタPCの召喚が開始された場合、広い空間であれば、上述したように仲間キャラクタFCをプレイヤキャラクタの上方に配置する。また、配置部32Dは、狭い空間である場合は、プレイヤキャラクタPCを広い空間(ワープ位置)にワープさせた後、仲間キャラクタFCを配置する。
【0115】
配置部32Dは、上述したように、複数の候補位置CPの中から選択した1の候補位置CPを基準位置として、ワープ位置を算出する。そして、ワープ位置にプレイヤキャラクタPCを配置し、仲間キャラクタFCをプレイヤキャラクタPCの上方に配置する。すなわち、配置部32Dは、複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、所定サイズのオブジェクト(プレイヤキャラクタPC及び仲間キャラクタFC)を配置する。本実施形態の例では、配置部32Dは、管理テーブル200,250等を参照し、上述した選択条件に合致する1の候補位置CPを基準位置として選択する。
【0116】
動作制御部33Dは、ユーザの操作部の操作に応じてプレイヤオブジェクト(プレイヤキャラクタPC)の動作を制御する。例えば、プレイヤキャラクタPCに召喚動作を実行させる。その他、動作制御部33Dは、仲間キャラクタPC及び敵キャラクタPC等の動作を制御する。
【0117】
イベント発生部34Dは、トリガーボリュームTVで衝突判定を行って、トリガーエリア(トリガーボリュームTV)にプレイヤオブジェクト(プレイヤキャラクタPC)が移動した場合、このトリガーボリュームTVに対応付けられたゲーム内のイベントを発生させる。イベントは、ゲーム空間50内で発生する事象を意味する。上述したように、ムービーの再生、所定の敵キャラクタECの出現等がイベントに該当する。
【0118】
設定部35は、親管理エリア(親であるポイントボリュームPV)内のゲーム空間(三次元仮想空間)50の状況に応じて、親子関係(制御フラグ)を第一状態及び第二状態のいずれか一方に設定する。
【0119】
図22は、システム100が実行する算出処理の例を示すフローチャートである。算出処理では、上述した複数の候補位置CPを算出するための処理が行われる。以下、端末装置20Dが算出処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【0120】
本実施形態の例の算出処理は、所定の実行条件(ゲームが実行されていない状況での、所定期間の経過毎(例えば、午前0時))が成立した場合に実行される。
【0121】
算出処理において、端末装置20Dは、判定処理を行う(ステップS10−D)。判定処理では、上述したように、地形データ(メッシュMA)及びトリガーボリュームTV等を参照して、ゲーム空間50の移動可能範囲における各位置において衝突判定を行う。
【0122】
次に、端末装置20Dは、決定処理を行う(ステップS11−D)。決定処理では、上記判定処理で他のオブジェクトとの衝突のなかった位置が候補位置CPとして決定される。そして、図20(B)に例示したように、複数の管理エリア(ポイントボリュームPV)と複数の候補位置CPとが対応付けられた管理テーブル250が生成され、記憶部に記憶される。その後、端末装置20Dは、算出処理を終了する。
【0123】
図23は、システム100が実行するゲーム進行処理の例を示すフローチャートである。ゲーム進行処理では、プレイヤキャラクタPCがゲーム空間50において敵キャラクタEC等と対戦する等のゲームを進行させるための処理が行われる。以下、端末装置20Dがゲーム進行処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【0124】
本実施形態の例のゲーム進行処理は、例えば、ユーザによるゲーム開始の操作入力があったことを契機として実行される。
【0125】
ゲーム進行処理において、端末装置20Dは、進行処理を行う(ステップS20−D)。進行処理では、ゲーム空間50でのプレイヤキャラクタ、敵キャラクタEC等のオブジェクトの行動を制御する処理が行われる。
【0126】
また、進行処理では、端末装置20Dは、親管理エリア(親であるポイントボリュームPV)内の三次元仮想空間の状況に応じて、制御フラグの値を更新する。例えば、図19で例示した、扉DRの開閉に応じて制御フラグFFの値を更新する。
【0127】
さらに、進行処理では、端末装置20Dは、プレイヤキャラクタPCに召喚動作を実行させる場合、現在のプレイヤキャラクタPCの位置において、仲間キャラクタFCを出現させる空間があるか否かを衝突判定で決定する。仲間キャラクタFCを出現させる空間がある場合、端末装置20Dは、プレイヤキャラクタPCを移動(ワープ)させずに召喚動作を実行させる。そして、プレイヤキャラクタPCの上方に仲間キャラクタFCを出現させる(配置する)。
【0128】
一方、仲間キャラクタFCを出現させる空間がない場合、端末装置20Dは、後述する配置処理を実行してプレイヤキャラクタPCを広い空間にワープさせた後、仲間キャラクタFCを出現させる(配置する)。
【0129】
その後、端末装置20Dは、ゲームの終了か否かを判断する(ステップS21−D)。例えば、プレイヤキャラクタPCが敵キャラクタECの攻撃を受けて戦闘不能となった場合にゲームが終了したと判断すればよい。終了していない場合(ステップS21−D:NO)、端末装置20Dは、ステップS20−Dの処理に戻る。一方、終了した場合(ステップS21−D:YES)、端末装置20Dは、ゲーム進行処理を終了する。
【0130】
次に、上述した進行処理で実行される配置処理について説明する。図24は、システム100が実行する配置処理の例を示すフローチャートである。配置処理では、ゲーム空間50内でプレイヤキャラクタPCをワープさせて仲間キャラクタFCを配置する処理が行われる。以下、端末装置20Dが配置処理を実行する場合を例にして説明する。なお、サーバ装置の動作を示すフローチャートについては、重複説明を避ける観点から記載を省略する。
【0131】
本実施形態の例の配置処理は、ゲームが実行されている状況において、進行処理でプレイヤキャラクタPCの召喚のためのワープが決定された場合に実行される。
【0132】
配置処理において、端末装置20Dは、候補位置CPの決定処理を実行する(ステップS30−D)。決定処理では、上述したように、複数の候補位置の中から1の候補位置が決定される。端末装置20Dは、上述したように選択条件に合致する1の候補位置CPを選択する。
【0133】
その後、端末装置20Dは、配置処理を行う(ステップS31−D)。配置処理では、上述したように、選択された候補位置CPとした基準位置から算出されたワープ位置にプレイヤキャラクタPCが配置される。そして、プレイヤキャラクタPCに召喚の動作を継続して行わせた後、プレイヤキャラクタPCの上方に仲間キャラクタFCを配置する。その後、端末装置20Dは、上述の進行処理を継続して実行する。
【0134】
以上のように、第4の実施形態の一側面として、端末装置20Dが、算出部31D、配置部32D、動作制御部33D、イベント発生部34D及び設定部35Dを備える構成としているので、所定サイズのオブジェクト(プレイヤキャラクタ及び仲間キャラクタ)を配置可能な複数の候補位置が自動的に生成される。したがって、開発者の作業負担を軽減することができる。
【0135】
また、プレイヤキャラクタがいる管理エリア(ポイントボリューム)に対応付けられた候補位置の中から、プレイヤキャラクタに最も近い1の候補位置が選択される。したがって、プレイヤキャラクタがいる空間の中で候補位置が選択されるので、ゲーム進行において無関係な空間に所定サイズのオブジェクトが配置されることを防止できる。
【0136】
また、親子関係が設定された管理エリア(ポイントボリューム)が存在し、親管理エリア(親であるポイントボリューム)内の三次元仮想空間の状況に応じて選択対象となる候補位置が変化するので、ゲーム進行上、不自然案な位置に所定サイズのオブジェクトが配置されることが防止される。
【0137】
さらに、動的オブジェクトにはフィルタ設定があるので、所定サイズのオブジェクトを出現させた場合に、他の動的オブジェクトに重なって出現することが防止される。
【0138】
なお、上述の実施形態の例では、ナビゲーションメッシュ等のポリゴンの重心位置を基準として候補位置が算出されているが、移動可能範囲であれば、いずれの位置を基準に候補位置を算出してもよい。例えば、ナビゲーションメッシュのポリゴン頂点を用いて候補位置を算出してもよい。
【0139】
上述の実施形態の例では、召喚の実行においてゲーム空間が狭い場合に、1の候補位置を基準位置とする領域に所定サイズのオブジェクトが配置されるが、特にこれに限定されるものではない。例えば、ゲーム空間にいる敵キャラクタECがワープする場合や、新たに動的オブジェクトをゲーム空間に出現させる場合等に、本発明の実施形態の例を適用してもよい。
【0140】
上述の実施形態の例では、プレイヤキャラクタがワープした後に仲間キャラクタが出現するが、これらキャラクタを同時に出現させてもよい。例えば、プレイヤキャラクタによる召喚の動作が終了した場合に、プレイヤキャラクタをワープさせ且つ仲間キャラクタを出現させるようにすればよい。また、プレイヤキャラクタは移動させず、仲間キャラクタだけを別の空間に出現させる構成としてもよい。なお、召喚によって出現させる仲間キャラクタは、1体に限定されない。
【0141】
上述の実施形態の例では、複数の候補位置を算出する実行条件として、ゲームが実行されていない状況、且つ、所定期間が経過した(例えば、午前0時)ことを例示したが、定期的に実行される構成であれば、いずれの実行条件を採用してもよい。例えば、ゲーム空間の形状が変更されたことを実行条件としてもよい。ゲームプログラムのバージョンアップによって、ゲーム空間の一部が変更される場合がある。
【0142】
上述の実施形態の例では、予め動的オブジェクトにフィルタ設定されているが、端末装置がフィルタ設定を行ってもよい。例えば、端末装置は、動的オブジェクトが所定サイズ以上か否かを判定し、所定サイズ以上の動的オブジェクトにフィルタ設定を行えばよい。
【0143】
上述の実施形態では、地形データとしてナビゲーションメッシュを使用しているが、特にこれに限定されるものではない。ゲーム空間においてプレイヤオブジェクトの移動可能範囲を特定可能なデータであれば、いずれのデータを採用してもよい。
【0144】
上述の実施形態では、管理エリア(ポイントボリューム)に候補位置が対応づけられているが、管理エリアは設けなくてもよい。また、トリガーエリア(トリガーボリューム)を参照して候補位置を算出しなくてもよい。
【0145】
[付記]
上述した実施形態の説明は、少なくとも下記発明を、当該発明の属する分野における通常の知識を有する者がその実施をすることができるように記載した。
【0146】
[1]
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームの進行を制御する機能をコンピュータに実現させるためのゲームプログラムであって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、
前記複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置機能、
を実現させ、
前記算出機能では、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、
を実現させるゲームプログラム。
【0147】
[2]
前記配置機能では、前記複数の候補位置の中から、前記プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
を実現させる[1]に記載のゲームプログラム。
【0148】
[3]
前記移動可能範囲には、予め設定されている複数の管理エリアが含まれ、
前記算出機能では、前記複数の候補位置を、所属する管理エリアに対応付けて記憶部に記憶させる機能、
前記配置機能では、前記プレイヤオブジェクトが位置する管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
を実現させる[2]に記載のゲームプログラム。
【0149】
[4]
前記複数の管理エリアには、親子関係が設定された親管理エリア及び子管理エリアが含まれ、
前記親管理エリアは、前記子管理エリアを含み、該子管理エリアに対応付けられた前記候補位置を除く候補位置が対応付けられ、
前記コンピュータに、さらに、
前記親管理エリア内の三次元仮想空間の状況に応じて、前記親子関係を第一状態及び第二状態のいずれか一方に設定する設定機能、
を実現させ、
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第二状態の親子関係であれば、前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
を実現させる[3]に記載のゲームプログラム。
【0150】
[5]
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第二状態の親子関係であれば、前記親管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
を実現させる[4]に記載のゲームプログラム。
【0151】
[6]
前記配置機能では、前記複数の候補位置のうち、前記プレイヤオブジェクトを除く三次元仮想空間で動作している動的オブジェクトであってフィルタ設定された動的オブジェクトに重複する候補位置は、前記所定サイズのオブジェクトの配置の対象外とする機能、
を実現させる[2]〜[5]のいずれかに記載のゲームプログラム。
【0152】
[7]
前記コンピュータに、さらに、
ユーザの操作に応じてプレイヤオブジェクトの動作を制御する動作制御機能、
を実現させ、
前記配置機能では、前記プレイヤオブジェクトが前記所定サイズのオブジェクトを出現させる召喚動作を実行する際、該プレイヤオブジェクトの位置周辺が該所定サイズのオブジェクトを配置する空間がない場合、前記基準位置を選択し、該基準位置とする領域に該プレイヤオブジェクト及び該所定サイズのオブジェクトを配置する機能、
を実現させる[2]〜[6]のいずれかに記載のゲームプログラム。
【0153】
[8]
前記算出機能では、衝突判定には、前記所定サイズのオブジェクトを含むサイズの簡易形状のオブジェクトを使用して衝突判定を行う機能、
を実現させる[1]〜[7]のいずれかに記載のゲームプログラム。
【0154】
[9]
前記算出機能では、所定の実行条件が成立する毎に、前記複数の候補位置を算出するとともに記憶部に記憶する機能、
を実現させる[1]〜[8]のいずれかに記載のゲームプログラム。
【0155】
[10]
前記算出機能では、さらに、移動可能範囲の所定の位置を、所定の高さまで上方にずらしつつ衝突判定を行って、前記候補位置を算出する機能、
を実現させる[1]〜[9]のいずれかに記載のゲームプログラム。
【0156】
[11]
前記コンピュータに、さらに、
三次元仮想空間の一部の領域であるトリガーエリアにプレイヤオブジェクトが移動した場合、該トリガーエリアに対応付けられたゲーム内のイベントを発生させるイベント発生機能、
を実現させ、
前記算出機能では、前記移動可能範囲に加え、前記トリガーエリアでも衝突判定を行って前記候補位置を算出する機能、
を実現させる[1]〜[10]のいずれかに記載のゲームプログラム。
【0157】
[12]
[1]〜[11]のうちいずれかに記載のゲームプログラムをインストールした
ことを特徴とするサーバ装置。
【0158】
[13]
表示部の表示画面にゲーム画像を表示させてビデオゲームを実行する機能を端末装置に実現させるための端末用プログラムであって、
前記端末装置に、
[12]に記載のサーバ装置と通信ネットワークを介して接続する接続機能、
を実現させるための端末用プログラム。
【0159】
[14]
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と通信ネットワークにより接続されるサーバ装置に、該ゲームの進行を制御させるためのゲームプログラムであって、
前記サーバ装置に、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出機能、
前記複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置機能、
を実現させ、
前記算出機能では、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する機能、
を実現させるゲームプログラム。
【0160】
[15]
前記配置機能では、前記複数の候補位置の中から、前記プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
を実現させる[14]に記載のゲームプログラム。
【0161】
[16]
前記移動可能範囲には、予め設定されている複数の管理エリアが含まれ、
前記算出機能では、前記複数の候補位置を、所属する管理エリアに対応付けて記憶部に記憶させる機能、
前記配置機能では、前記プレイヤオブジェクトが位置する管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
を実現させる[15]に記載のゲームプログラム。
【0162】
[17]
前記複数の管理エリアには、親子関係が設定された親管理エリア及び子管理エリアが含まれ、
前記親管理エリアは、前記子管理エリアを含み、該子管理エリアに対応付けられた前記候補位置を除く候補位置が対応付けられ、
前記コンピュータに、さらに、
前記親管理エリア内の三次元仮想空間の状況に応じて、前記親子関係を第一状態及び第二状態のいずれか一方に設定する設定機能、
を実現させ、
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリア及び前記子管理エリアに位置する場合、前記第二状態の親子関係であれば、前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
を実現させる[16]に記載のゲームプログラム。
【0163】
[18]
前記配置機能では、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第一状態の親子関係であれば、前記親管理エリア及び前記子管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
前記プレイヤオブジェクトが前記親管理エリアに位置し且つ前記子管理エリアに位置していない場合、前記第二状態の親子関係であれば、前記親管理エリアに対応付けられた前記候補位置のうち、該プレイヤオブジェクトから最も近い1の候補位置を前記基準位置とする機能、
を実現させる[17]に記載のゲームプログラム。
【0164】
[19]
前記配置機能では、前記複数の候補位置のうち、前記プレイヤオブジェクトを除く三次元仮想空間で動作している動的オブジェクトであってフィルタ設定された動的オブジェクトに重複する候補位置は、前記所定サイズのオブジェクトの配置の対象外とする機能、
を実現させる[15]〜[18]のいずれかに記載のゲームプログラム。
【0165】
[20]
前記コンピュータに、さらに、
ユーザの操作に応じてプレイヤオブジェクトの動作を制御する動作制御機能、
を実現させ、
前記配置機能では、前記プレイヤオブジェクトが前記所定サイズのオブジェクトを出現させる召喚動作を実行する際、該プレイヤオブジェクトの位置周辺が該所定サイズのオブジェクトを配置する空間がない場合、前記基準位置を選択し、該基準位置とする領域に該プレイヤオブジェクト及び該所定サイズのオブジェクトを配置する機能、
を実現させる[15]〜[19]のいずれかに記載のゲームプログラム。
【0166】
[21]
前記算出機能では、衝突判定には、前記所定サイズのオブジェクトを含むサイズの簡易形状のオブジェクトを使用して衝突判定を行う機能、
を実現させる[14]〜[20]のいずれかに記載のゲームプログラム。
【0167】
[22]
前記算出機能では、所定の実行条件が成立する毎に、前記複数の候補位置を算出するとともに記憶部に記憶する機能、
を実現させる[14]〜[21]のいずれかに記載のゲームプログラム。
【0168】
[23]
前記算出機能では、さらに、移動可能範囲の所定の位置を、所定の高さまで上方にずらしつつ衝突判定を行って、前記候補位置を算出する機能、
を実現させる[14]〜[22]のいずれかに記載のゲームプログラム。
【0169】
[24]
前記コンピュータに、さらに、
三次元仮想空間の一部の領域であるトリガーエリアにプレイヤオブジェクトが移動した場合、該トリガーエリアに対応付けられたゲーム内のイベントを発生させるイベント発生機能、
を実現させ、
前記算出機能では、前記移動可能範囲に加え、前記トリガーエリアでも衝突判定を行って前記候補位置を算出する機能、
を実現させる[14]〜[23]のいずれかに記載のゲームプログラム。
【0170】
[25]
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームを実行する端末装置と、該端末装置と通信ネットワークにより接続されるサーバ装置と、を備えたゲームシステムであって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出手段、
前記複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置手段、
を含み、
前記算出手段は、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する、
ゲームシステム。
【0171】
[26]
三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームの進行を制御する端末装置であって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出手段、
前記複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置手段、
を含み、
前記算出手段は、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する、
端末装置。
【0172】
[27]
コンピュータに、属性が設定されているプレイヤオブジェクトをユーザが操作するゲームの進行を制御させるゲーム進行制御方法であって、
コンピュータに、三次元仮想空間においてユーザの操作に基づいてプレイヤオブジェクトが動作するゲームの進行を制御させるゲーム進行制御方法であって、
三次元仮想空間におけるプレイヤオブジェクトの移動可能範囲を特定可能な地形データを参照し、三次元仮想空間において所定サイズのオブジェクトを配置することが可能な複数の候補位置を算出する算出処理、
前記複数の候補位置の中から選択した1の候補位置を基準位置とする領域に、前記所定サイズのオブジェクトを配置する配置処理、
を含み、
前記算出処理では、前記移動可能範囲内においてオブジェクト同士の衝突判定を行い、前記所定サイズのオブジェクトが他のオブジェクトと衝突しない位置を前記候補位置として決定する処理、
を含むゲーム進行制御方法。
【産業上の利用可能性】
【0173】
本発明の実施形態の一つによれば、プレイヤオブジェクトが存在する三次元仮想空間のゲームにおいて、サイズの非常に大きな所定サイズのオブジェクトを配置可能な複数の候補位置を自動的に生成し、このオブジェクトを最適な位置に配置するのに有用である。
【符号の説明】
【0174】
20 端末装置
31 算出部
32 配置部
33 動作制御部
34 イベント発生部
35 設定部
50 ゲーム空間
MA ナビゲーションメッシュ(地形データ)
CP 候補位置
TV トリガーボリューム(トリガーエリア)
PV ポイントボリューム(管理エリア)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24