(57)【特許請求の範囲】
【請求項１】
仮想空間における、第１のオブジェクト、第２のオブジェクト、及び、アイテムの動作をそれぞれ制御する動作制御手段、
前記動作制御手段が第１のオブジェクトにアイテムを保持させた際に、前記第１のオブジェクトを識別する第１オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶手段に記憶するアイテム・オブジェクト記憶手段、及び、
前記仮想空間において、前記第１のオブジェクトから放たれた移動中の前記アイテムと第２のオブジェクトとが衝突したか否かを判定する衝突判定手段、としてコンピュータを機能させるためのオブジェクト制御プログラムであって、
前記動作制御手段は、前記衝突判定手段が前記アイテムと前記第２のオブジェクトが衝突したと判定した場合に、前記記憶手段から前記アイテム識別情報に関連付けて記憶された前記第１オブジェクト識別情報を取得し、該第１オブジェクト識別情報に基づいて、前記第２のオブジェクトに第１の動作を行わせることを特徴とするオブジェクト制御プログラム。
【請求項２】
前記オブジェクト制御プログラムは、更に、
前記第１のオブジェクトに前記アイテムを保持させるアイテム保持指示、及び、前記第１のオブジェクトに前記アイテムを前記第１のオブジェクトから放つ第２の動作を行わせる動作指示を取得する操作情報取得手段、
前記第２の動作に基づいたタイミングからの経過時間を計数する時間計数手段、及び
前記時間計数手段が所定の経過時間を計数した場合に、前記記憶手段に関連付けて記憶された前記第１オブジェクト識別情報及び前記アイテム識別情報を削除するアイテム・オブジェクト情報管理手段、
としてコンピュータを機能させるための請求項１記載のオブジェクト制御プログラム。
【請求項３】
前記オブジェクト制御プログラムは、更に、
前記アイテム識別情報に関連付けて、前記アイテムの質量を表す質量情報、前記アイテムのサイズを表すサイズ情報、前記アイテムの位置を表すアイテム位置情報を前記記憶手段に記憶するアイテム情報記憶手段、及び
前記質量情報、前記サイズ情報、前記アイテム位置情報に基づいて、前記第２の動作が行われた後の所定期間毎の前記アイテムの位置情報を求める物理演算手段、
としてコンピュータを機能させるための請求項２記載のオブジェクト制御プログラム。
【請求項４】
前記オブジェクト制御プログラムは、更に、
前記第１のオブジェクト、前記第２のオブジェクト、及び、前記アイテムの位置を表す位置情報をそれぞれ取得する位置情報取得手段、として、コンピュータを機能させ、
前記衝突判定手段は、前記位置情報取得手段により取得される前記第２のオブジェクトの位置情報及び前記アイテムの位置情報に基づいて、前記第２のオブジェクトと前記アイテムが衝突したか否かを判定することを特徴とする請求項１乃至３のいずれかに記載のオブジェクト制御プログラム。
【請求項５】
前記オブジェクト制御プログラムは、更に、
前記位置情報取得手段により取得される前記第１のオブジェクト及び前記アイテムの位置情報に基づいて、前記第１のオブジェクトが前記アイテムを保持可能か否か判定する保持判定手段、
としてコンピュータを機能させ、
前記動作制御手段は、前記保持判定手段が保持可能と判断した場合に、前記第１のオブジェクトに前記アイテムの保持動作を行わせることを特徴とする請求項４記載のオブジェクト制御プログラム。
【請求項６】
請求項１乃至５のいずれかに記載のオブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体。
【請求項７】
仮想空間における、第１のオブジェクト、第２のオブジェクト、及び、アイテムの動作をそれぞれ制御する動作制御手段と、
前記動作制御手段が第１のオブジェクトにアイテムを保持させた際に、前記第１のオブジェクトを識別する第１オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶するアイテム・オブジェクト記憶手段と、
前記仮想空間において、前記第１のオブジェクトから放たれた移動中の前記アイテムと第２のオブジェクトとが衝突したか否かを判定する衝突判定手段と、を有し、
前記動作制御手段は、前記衝突判定手段が前記アイテムと前記第２のオブジェクトが衝突したと判定した場合に、前記アイテム・オブジェクト記憶手段から前記アイテム識別情報に関連付けて記憶された前記第１オブジェクト識別情報を取得し、該第１オブジェクト識別情報に基づいて、前記第２のオブジェクトに所定の動作を行わせることを特徴とするオブジェクト制御装置。
【請求項８】
オブジェクト制御装置に備えられた動作制御手段が、仮想空間における、第１のオブジェクト、第２のオブジェクト、及び、アイテムの動作をそれぞれ制御し、
前記オブジェクト制御装置に備えられたアイテム・オブジェクト記憶手段が、第１のオブジェクトにアイテムを保持させた際に、前記第１のオブジェクトを識別する第１オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶し、
前記オブジェクト制御装置に備えられた衝突判定手段が、前記仮想空間において、前記第１のオブジェクトから放たれた移動中の前記アイテムと第２のオブジェクトとが衝突したか否かを判定し、
前記動作制御手段は、前記アイテムと前記第２のオブジェクトが衝突したと判定した場合に、前記アイテム識別情報に関連付けて記憶された前記第１オブジェクト識別情報を取得し、該第１オブジェクト識別情報に基づいて、前記第２のオブジェクトに所定の動作を行わせることを特徴とするオブジェクト制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト制御プログラム、オブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体、オブジェクト制御装置、オブジェクト制御方法に関する。
【背景技術】
【０００２】
プレイヤーによる指示操作に応じて操作対象のオブジェクトを移動させ、他のオブジェクトに対し、攻撃等の行動を行わせるゲームが知られている。具体的には、例えば、操作対象のキャラクタを仮想空間内で移動させ、遭遇した敵キャラクタと戦うゲーム等が知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記のようなゲームプログラム等で実現される仮想空間内において、例えば、１又は複数の操作対象のキャラクタが、アイテム、例えば、槍、矢、ボール等を保持し、当該所定のアイテムを敵キャラクタに投げる等の動作を行うことにより攻撃する場合がある。しかしながら、キャラクタから放たれたアイテムが敵キャラクタに衝突した場合、いずれのキャラクタから放たれたアイテムか判別できず、結果として、当該敵キャラクタに当該攻撃したキャラクタに対する攻撃等の動作を行わせることができない場合がある。
【０００４】
本発明は、上記観点から、例えば、アイテムが敵キャラクタに衝突等した場合に、当該アイテムがいずれのキャラクタの攻撃等に起因するものであるかを認識し、当該敵キャラクタに当該攻撃等したキャラクタに対して所定の動作（例えば、攻撃、移動等）を行わせることのできるオブジェクト制御プログラム、オブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体、オブジェクト制御装置、または、オブジェクト制御方法、を実現することを目的とする。
【課題を解決するための手段】
【０００５】
本発明のオブジェクト制御プログラムは、仮想空間における、第１のオブジェクト、第２のオブジェクト、及び、アイテムの動作をそれぞれ制御する動作制御手段、前記動作制御部が第１のオブジェクトにアイテムを保持させた際に、前記第１のオブジェクトを識別する第１オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶するアイテム・オブジェクト記憶手段、及び、前記仮想空間において、前記アイテムと第２のオブジェクトとが衝突したか否かを判定する衝突判定手段、としてコンピュータを機能させるためのオブジェクト制御プログラムであって、前記動作制御手段は、前記衝突判定手段が前記アイテムと前記第２のオブジェクトが衝突したと判定した場合に、前記アイテム・オブジェクト記憶手段から前記アイテム識別情報に関連付けて記憶された前記第１オブジェクト識別情報を取得し、該第１オブジェクト識別情報に基づいて、前記第２のオブジェクトに第１の動作を行わせることを特徴とする。
【０００６】
本発明のオブジェクト制御装置は、仮想空間における、第１のオブジェクト、第２のオブジェクト、及び、アイテムの動作をそれぞれ制御する動作制御手段と、前記動作制御部が第１のオブジェクトにアイテムを保持させた際に、前記第１のオブジェクトを識別する第１オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶するアイテム・オブジェクト記憶手段と、前記仮想空間において、前記アイテムと第２のオブジェクトとが衝突したか否かを判定する衝突判定手段と、を有し、前記動作制御手段は、前記衝突判定手段が前記アイテムと前記第２のオブジェクトが衝突したと判定した場合に、前記アイテム・オブジェクト記憶手段から前記アイテム識別情報に関連付けて記憶された前記第１オブジェクト識別情報を取得し、該第１オブジェクト識別情報に基づいて、前記第２のオブジェクトに所定の動作を行わせることを特徴とする。
【０００７】
本発明のオブジェクト制御方法は、仮想空間における、第１のオブジェクト、第２のオブジェクト、及び、アイテムの動作をそれぞれ制御し、前記動作制御部が第１のオブジェクトにアイテムを保持させた際に、前記第１のオブジェクトを識別する第１オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶し、前記仮想空間において、前記アイテムと第２のオブジェクトとが衝突したか否かを判定し、前記アイテムと前記第２のオブジェクトが衝突したと判定した場合に、前記アイテム識別情報に関連付けて記憶された前記第１オブジェクト識別情報を取得し、該第１オブジェクト識別情報に基づいて、前記第２のオブジェクトに所定の動作を行わせることを特徴とする。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態におけるオブジェクト制御装置の構成の概要について説明するための図である。
【図２】図１に示したオブジェクト制御装置の機能的な構成について説明するための図である。
【図３】図２に示した位置情報取得部の機能的な構成について説明するための図である。
【図４】図２に示したアイテム・オブジェクト情報記憶部の記憶形式について説明するための図である。
【図５】図２に示した動作制御部の機能的な構成について説明するための図である。
【図６】図２に示したアイテム情報記憶部の記憶形式について説明するための図である。
【図７】図２に示した経過時間情報記憶部の記憶形式について説明するための図である。
【図８】アイテムの保持に関する処理のフローについて説明するための図である。
【図９】操作オブジェクトが非操作オブジェクトを攻撃する際の処理のフローについて説明するための図である。
【図１０】アイテムと非操作オブジェクトとの衝突判定等についての処理のフローについて説明するための図である。
【図１１】本実施の形態の具体例について説明するための図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
【００１０】
図１は、本発明の実施の形態におけるオブジェクト制御装置の構成の概要について説明するための図である。図１に示すように、オブジェクト制御装置１００は、例えば、ＣＰＵやメモリ等で構成されるコンピュータで構成され、例えば、制御部１０１、記憶部１０２、通信部１０３、操作部１０４、表示部１０５を有する。なお、制御部１０１、記憶部１０２、通信部１０３、操作部１０４、表示部１０５は、内部バス１０６により互いに接続される。
【００１１】
制御部１０１は、例えば、ＣＰＵ、ＭＰＵ等であって、記憶部１０２に格納されたプログラムに従って動作する。記憶部１０２は、例えば、ＲＯＭやＲＡＭ、ハードディスク等の情報記録媒体で構成され、制御部１０１によって実行されるプログラムを保持する情報記録媒体である。また、記憶部１０２は、制御部１０１のワークメモリとしても動作する。なお、当該プログラムは、例えば、ネットワーク（図示なし）を介して、ダウンロードされて提供されてもよいし、または、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。
【００１２】
通信部１０３は、当該オブジェクト制御装置１００を、ネットワーク（図示なし）を介して、他の端末装置（図示なし）やデータベース（図示なし）等と接続する。操作部１０４は、例えば、キーボード、マウス、または、コントローラ等で構成され、ユーザの指示操作に応じて、当該指示操作の内容を制御部１０１に出力する。表示部１０５は、例えば、液晶ディスプレイ、有機ＥＬディスプレイ等であって、制御部１０１からの指示に従い、情報を表示する。なお、上記オブジェクト制御装置１００の構成は、一例であってこれに限定されるものではない。例えば、上記端末装置から、ネットワークを介して、ユーザの指示操作がオブジェクト制御装置１００に入力されるように構成してもよい。
【００１３】
図２は、図１に示したオブジェクト制御装置の機能的な構成について説明するための図である。なお、図２は、オブジェクト制御装置１００で実現される機能のうち、本発明に関連する機能的構成を中心に示す。図２に示すように、オブジェクト制御装置１００は、操作情報取得部２０１、位置情報取得部２０２、保持判定部２０３、アイテム・オブジェクト情報記憶部２０４、動作制御部２０５、アイテム情報記憶部２０６、衝突判定部２０７、時間計数部２０８、経過時間情報記憶部２０９、アイテム・オブジェクト情報管理部２１０、オブジェクト判定部２１１、オブジェクト情報記憶部２１２を有する。
【００１４】
操作情報取得部２０１は、操作対象のキャラクタ（操作オブジェクト）を指示するための各種の操作情報を取得する。当該操作情報は、例えば、ユーザが、操作部１０４であるキーボードやコントローラを用いて入力する。また、当該オブジェクト制御装置１００がネットワークを介して端末装置等と接続されている場合には、当該操作指示は当該端末の操作部から入力されてもよい。
【００１５】
具体的には、当該操作情報は、例えば、アイテム保持指示、移動指示、攻撃指示についての操作情報を含む。ここで、アイテム保持指示とは、例えば、操作オブジェクトにアイテムを保持させるための指示に相当する。攻撃指示とは、例えば、操作オブジェクトに、保持したアイテムを用いて、敵キャラクタ（ユーザの操作対象でない非操作オブジェクト）に対して、攻撃させるための指示に相当する。移動指示とは、例えば、仮想空間において操作オブジェクトを移動させるための指示であり、例えば、上下左右方向への移動指示等が含まれる。そして、当該移動指示に従って、仮想空間上を操作オブジェクトが移動する。また、アイテムとは、例えば、仮想空間内に表される、槍、矢、剣、ボール、箱等の操作オブジェクト及び後述する非操作オブジェクトとは別のオブジェクトに相当する。更に、攻撃指示とは、具体的には、例えば、当該槍、矢、剣等のアイテムを敵キャラクタに向かって投げる、発射する等の指示に相当する。
【００１６】
位置情報取得部２０２は、仮想空間における操作オブジェクト、アイテム、非操作オブジェクトの位置を表す位置情報を取得する。具体的には、図３に示すように、位置情報取得部２０２は、操作オブジェクト位置情報取得部３０１、非操作オブジェクト位置情報取得部３０２、アイテム位置情報取得部３０３、を含む。
【００１７】
操作オブジェクト位置情報取得部３０１は、仮想空間における操作オブジェクトの位置情報を取得する。アイテム位置情報取得部３０３は、仮想空間におけるアイテムの位置情報を取得する。非操作オブジェクト位置情報取得部３０２は、仮想空間における非操作オブジェクトの位置情報を取得する。なお、具体的には、例えば、上記各位置情報は、例えば、仮想空間におけるアイテム、操作オブジェクト、非操作オブジェクトの位置を示す３次元空間座標で取得される。
【００１８】
保持判定部２０３は、操作情報取得部２０１がアイテム保持指示を取得した際に、操作オブジェクトが当該アイテムを保持可能か否か判定する。具体的には、例えば、保持判定部２０３は、操作情報取得部２０１がアイテム保持指示を取得した際に、操作オブジェクト位置情報取得部３０１が操作オブジェクトの位置情報を取得するよう指示する。また、保持判定部２０３は、アイテム位置情報取得部３０３にアイテムの位置情報を取得するよう指示する。そして、保持判定部２０３は、取得された操作オブジェクトの位置情報及びアイテムの位置情報が所定の範囲内か否か判定する。そして、当該所定の範囲内であると判定した場合には、操作オブジェクトが当該アイテムを保持可能であると判定し、所定の範囲内でないと判定した場合には、保持不可能であると判定する。
【００１９】
アイテム・オブジェクト情報記憶部２０４は、保持判定部２０３が当該アイテムを保持可能であると判定した場合には、当該アイテムを識別するアイテム識別情報（ＩＤ）及び当該操作オブジェクトを識別するオブジェクト識別情報（ＩＤ）を関連付けて記憶する。具体的には、例えば、図４に示すように、アイテム・オブジェクト情報記憶部２０４は、アイテムＩＤ、Ｉ１についてオブジェクトＩＤ、Ｏ１、アイテムＩＤ、Ｉ２についてオブジェクトＩＤ、Ｏ２を、表の形式で記憶する。
【００２０】
動作制御部２０５は、仮想空間における複数のオブジェクトの動作を制御する。当該複数のオブジェクトとは、例えば、１または複数のユーザが操作する１または複数のキャラクタ、当該ユーザが操作する１または複数のキャラクタの敵に相当する１または複数の敵キャラクタや、当該ユーザが操作するキャラクタ等が保持または使用等可能なアイテムに相当する。具体的には、例えば、動作制御部２０５は、図５に示すように、操作オブジェクト動作制御部５０１、非操作オブジェクト動作制御部５０２、アイテム動作制御部５０３、物理エンジン５０４を含む。
【００２１】
操作オブジェクト動作制御部５０１は、１または複数の操作オブジェクト（例えば、ユーザが操作するキャラクタ）の動作を制御する。具体的には、例えば、上記保持判定部２０３がアイテムを保持可能であると判定した場合には、操作オブジェクトに所定の保持動作（第２の動作）をさせる。当該保持動作は、例えば、オブジェクト情報記憶部２１２に、オブジェクトＩＤ毎及び各動作に関連付けて記憶されたモーションデータ等を用いることにより行われる。なお、当該保持動作は、例えば、アイテムが仮想空間内における地面に落ちた槍や矢等であった場合には、当該槍や矢を拾い上げるような動作等であって、アイテムやアイテムの位置毎に異なる動作を行わせるよう構成してもよい。また、操作オブジェクト動作制御部５０１は、操作情報取得部２０１が取得した移動指示に応じて、仮想空間において操作オブジェクトを移動等させる。
【００２２】
アイテム動作制御部５０３は、アイテムの移動や表示等を制御する。具体的には、例えば、アイテム動作制御部５０３は、操作情報取得部２０１が攻撃指示を取得した場合に、後述するアイテム情報記憶部２０６から後述するアイテム情報を取得し、物理エンジン５０４に当該アイテム情報を送信する。そして、例えば、後述するように物理エンジン５０４から所定期間毎、例えば１フレーム期間毎のアイテムの位置情報を取得して、当該アイテムの位置情報に応じて、仮想空間内において当該アイテムを移動させる。また、物理エンジン５０４から取得したアイテムの位置情報により、後述するアイテム情報記憶部２０６に記憶されたアイテム位置情報を更新する。
【００２３】
アイテム情報記憶部２０６は、例えば、アイテムを識別するアイテム識別情報（ＩＤ）、当該アイテムの質量を表す質量情報、当該アイテムのサイズを表すサイズ情報、アイテムの位置を表すアイテム位置情報等を関連付けて記憶する。なお、これらの情報が、前述のアイテム情報に相当する。具体的には、アイテム情報記憶部２０６は、例えば、図６に示すように、アイテムＩＤ、Ｉ１のアイテムについて、質量情報、２、サイズ情報、３、アイテム位置情報、（ｘ１、ｙ１、ｚ１）等を関連付けて記憶する。なお、当該アイテム位置情報は、後述する物理エンジン５０４から取得したアイテムの位置情報により、所定期間毎に更新される。また、当該質量やサイズ等は例示であって、その他アイテムの形状に関する情報やアイテムの画像を識別する画像ＩＤ等を含んでもよい。
【００２４】
物理エンジン５０４は、上記取得されたアイテム情報や攻撃指示に応じて、例えば、攻撃指示後のアイテムの速度等を算出し、所定期間毎の位置情報を算出する。よって、例えば、攻撃指示が、例えば、アイテムとしての槍を投げる動作であった場合について説明すると、当該槍の質量情報が重い程、早く落下するようにシミュレーションされる。また、当該槍を投げる攻撃指示がアナログ値で入力されるように設計されている場合には、例えば強く投げるよう指示されるほど（例えば上記アナログ値がより大きいほど）、当該攻撃指示後の槍の速度が速くなる等、古典力学の法則に沿って攻撃指示後のアイテムの位置情報が所定期間毎に求められる。
【００２５】
なお、物理エンジン５０４は、例えば、質量・速度・摩擦・風といった、古典力学的な法則をシミュレーションする周知のコンピュータソフトウェアに相当するので、その詳細については説明を省略する。また、上記においては、物理エンジン５０４をアイテムのシミュレーションに用いる場合について説明したが、所定の場合には、非操作オブジェクトや操作オブジェクトの動作についても物理エンジン５０４を用いてシミュレーションし、当該シミュレーション結果を用いて操作オブジェクト等の動作を制御してもよい。
【００２６】
衝突判定部２０７は、取得されたアイテムの位置情報及び非操作オブジェクトの位置情報等に基づいてアイテムと非操作対象オブジェクトが衝突したか否かを判定する。ここで、当該衝突判定には、例えば、仮想空間における２のオブジェクトの間に、分離できる平面（分離平面）が存在するか否かを判定し、当該分離平面が存在しなければ、当該２の対象物が衝突していると判定するいわゆる分離軸法を用いればよい。なお、当該分離軸法を用いた衝突判定については周知であるので、詳細については省略する。また、当該衝突判定方法については、上記分離軸法の他、ＧＪＫ法等その他の衝突判定方法を用いてもよい。
【００２７】
オブジェクト判定部２１１は、衝突判定部２０７が衝突したと判定した場合には、当該衝突したと判定されたアイテムＩＤ及び当該アイテムＩＤに関連付けられて記憶されているオブジェクトＩＤがアイテム・オブジェクト情報記憶部２０４に記憶されているか否かを判定する。
【００２８】
非操作オブジェクト動作制御部５０２は、非操作オブジェクト（例えば、敵キャラクタ）の動作を制御する。具体的には、例えば、上記オブジェクト判定部２１１が、衝突したアイテムＩＤが記憶されていると判定した場合には、アイテム・オブジェクト情報記憶部２０４から、当該衝突したと判定されたアイテムＩＤに関連付けて記憶されているオブジェクトＩＤを取得する。これにより、非操作オブジェクト動作制御部５０２は、いずれのオブジェクトにより攻撃されたかを認識することができる。具体的には、非操作オブジェクトに衝突したアイテムが、いずれのオブジェクトから放たれたかを認識することができる。
【００２９】
そして、非操作オブジェクト動作制御部５０２は、非操作オブジェクトに、取得されたオブジェクトＩＤに基づいて所定の動作（第１の動作）を行わせる。ここで、所定の動作とは、例えば、取得されたオブジェクトＩＤで表されるオブジェクト（例えば、あるユーザが操作する操作キャラクタ）に基づく動作に相当し、より具体的には、例えば、当該オブジェクトの方向を向く、当該オブジェクトに向かって移動する、当該オブジェクトに対して攻撃動作を開始する等、取得されたオブジェクトＩＤに基づくあらかじめ設定された動作である。
【００３０】
なお、オブジェクト判定部２１１が、衝突したアイテムＩＤが記憶されていないと判定した場合には、後述するように当該アイテムＩＤで識別されるアイテムが操作オブジェクトにより放たれてから、所定の時間が経過しており、例えば、地面に存在している場合等に相当することから、当該アイテムとの衝突に関しては非操作オブジェクトに上記取得されたオブジェクトＩＤに基づくあらかじめ設定された動作を行わせることはない。なお、この場合、その他の動作、例えば、操作キャラクターとは無関係な動作であるアイテムにつまづく等の動作を行わせてもよいことはいうまでもない。これにより、例えば、仮想空間において、操作キャラクタが一度投げて地面に落ちているアイテムと敵キャラクタが接触した場合（衝突した場合）に、敵キャラクタに、以前に当該アイテムを投げたキャラクタを敵とみなして攻撃等行わせる等を防止することができる。
【００３１】
時間計数部２０８は、攻撃指示により操作オブジェクトが保持していたアイテムが操作オブジェクトから手放されてからの時間（経過時間）を計数する。具体的には、例えば、時間計数部２０８は、操作情報取得部２０１が攻撃指示を取得してからの時間を計数してもよいし、操作オブジェクト動作制御部５０１が当該攻撃指示に基づく所定の動作を終了してからの時間を計数するように構成してもよい。また、攻撃の種類等に応じて、アイテム保持指示等が取得された時間等から時間を計数するように構成してもよい。
【００３２】
経過時間情報記憶部２０９は、時間計数部２０８により計数された経過時間を、例えば、図７に示すように、当該操作オブジェクトのオブジェクトＩＤ毎及びアイテムＩＤ毎に、表の形式で、記憶する。ここで、当該オブジェクトＩＤ及びアイテムＩＤ毎に記憶された経過情報を経過時間情報と称する。例えば、図７においては、オブジェクトＩＤ、Ｏ１について、アイテムＩＤ、Ｉ１、経過時間１００が記憶されているので、オブジェクトＩＤ、Ｏ１の操作オブジェクトがアイテムＩＤ、Ｉ１のアイテムを用いて攻撃し当該アイテムが当該操作オブジェクトから離れてから、経過時間２（例えば、２秒）が経過した様子を示す。なお、当該経過時間は、所定期間毎（例えば、１秒毎）に更新される。なお、当該各オブジェクトＩＤ及びアイテムＩＤは、例えば、動作制御部２０５から時間計数部２０８を介して取得される。
【００３３】
アイテム・オブジェクト情報管理部２１０は、経過時間情報記憶部２０９に記憶された経過時間情報が所定の経過時間（例えば１０秒）以上を示した場合には、当該所定の経過時間が経過したアイテムＩＤについてのアイテム情報をアイテム・オブジェクト情報記憶部２０４から削除する。これにより、例えば、仮想空間において、操作キャラクタが一度投げて地面に落ちているアイテムと敵キャラクタが接触した場合（衝突した場合）に、敵キャラクタに、以前に当該アイテムを投げたキャラクタを敵とみなして攻撃等行わせる等を防止することができることは前述のとおりである。また、アイテム・オブジェクト情報管理部２１０は、時間計数部２０８が所定の経過時間を計数した場合には、当該所定の経過時間が経過したアイテムＩＤについての経過時間情報を削除する。
【００３４】
なお、上記オブジェクト制御装置１００の構成は一例であってこれに限定されるものではない。例えば、上記で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。例えば、上記所定の経過時間は、オブジェクトＩＤやアイテムＩＤ毎、攻撃の種類毎に異なるように設定可能な構成としてもよい。例えば、アイテムを任意の場所に設置し、当該アイテムに敵キャラクタが接触した場合に所定の攻撃となる、いわゆる罠を用いる攻撃等の場合には、当該所定の時間をより長く設定する等である。また、経過時間情報は、後述するようにアイテムが非操作オブジェクトと衝突したと判定された場合に、削除されるように構成してもよい。この場合、更に、例えば、複数の非操作オブジェクトが存在し、当該複数の非操作オブジェクトに、順にアイテムが衝突する場合には、１番目の非操作オブジェクトに衝突した際には関連する経過時間情報を削除せず、当該複数の非操作オブジェクト全てに衝突した後に関連する経過時間情報を削除するように構成してもよい。なお、この場合において、所定の場合には、当該１番目の非操作オブジェクトに衝突したと判定した際に経過時間情報を削除するよう構成してもよいことはいうまでもない。
【００３５】
次に、当該オブジェクト制御装置１００の処理のフローについて説明する。まず、アイテムの保持に関する処理のフローについて説明する。図８は、アイテムの保持に関する処理のフローについて説明するための図である。なお、下記においては、具体例として、操作オブジェクトのオブジェクトＩＤがＯ１である場合を用いて説明する。
【００３６】
図８に示すように、例えば、ユーザがアイテム保持指示を操作部１０４に入力することにより、操作情報取得部２０１は、アイテム保持指示（保持操作情報）を取得する（Ｓ１０１）。このとき、操作オブジェクト位置情報取得部３０１は、操作オブジェクト動作制御部５０１から、アイテム保持指示が取得された際の操作オブジェクトの位置情報を取得する（Ｓ１０２）。
【００３７】
また、アイテム位置情報取得部３０３は、アイテム情報記憶部２０６から、アイテム保持指示が取得された際のアイテムの位置情報を取得する（Ｓ１０３）。なお、ここで、アイテムが複数存在する場合には、Ｓ１０２で取得された操作オブジェクトの位置情報に最も近い１のアイテムの位置情報を取得する。具体的には、例えば、アイテム情報記憶部２０６に記憶されたアイテム情報が図６に示した場合であって、アイテムＩＤ、Ｉ１の位置情報がアイテムＩＤ、Ｉ２の位置情報よりも、上記取得された操作オブジェクトの位置情報に近い場合、アイテムＩＤ、Ｉ１の位置情報をアイテムＩＤ、Ｉ１とともに取得する。
【００３８】
保持判定部２０３は、Ｓ１０２及びＳ１０３で取得された操作オブジェクトの位置情報及びアイテムの位置情報が所定の範囲内か否か判定する。そして、所定の範囲内であると判定した場合には、操作オブジェクトが当該アイテムを保持可能であると判定し（Ｓ１０４）、Ｓ１０５に進む。一方、所定の範囲内でないと判定した場合には、Ｓ１０１に戻る。ここで、所定の範囲内とは、操作オブジェクトがアイテムを自然に保持することができる範囲内としてあらかじめ設定する。また、当該所定の範囲内は、操作オブジェクト毎、アイテム毎等により異なるように設定してもよい。
【００３９】
保持判定部２０３が保持可能であると判定した場合には、操作オブジェクト動作制御部５０１は、操作オブジェクトにアイテムの保持動作を行わせる（Ｓ１０５）。なお、当該保持動作は、例えば、オブジェクト情報記憶部２１２に記憶されたモーションデータ等を用いることにより行われることは前述のとおりである。
【００４０】
また、このとき、アイテム・オブジェクト情報記憶部２０４は、当該アイテムのアイテムＩＤと、操作オブジェクトを識別するオブジェクトＩＤを関連付けて記憶する（Ｓ１０６）。具体的には、上記例の場合、例えば、図４に示すように、アイテム・オブジェクト情報記憶部２０４に、アイテムＩＤ、Ｉ１と操作対象オブジェクトのＩＤ、Ｏ１を関連付けて記憶する。そして、処理を終了する。
【００４１】
次に、操作オブジェクトが保持したアイテムを用いて非操作オブジェクトを攻撃する際の処理のフローについて説明する。図９は、操作オブジェクトが非操作オブジェクトを攻撃する際の処理のフローについて説明するための図である。図９に示すように、例えば、ユーザが攻撃指示を操作部１０４に入力すると、操作情報取得部２０１は、当該攻撃指示を取得する（Ｓ２０１）。
【００４２】
操作情報取得部２０１が攻撃指示を取得すると、アイテム動作制御部５０３は、アイテム・オブジェクト情報記憶部２０４を参照し、当該操作対象の操作オブジェクトＩＤに関連付けて記憶されているアイテムＩＤを取得する（Ｓ２０２）。例えば、上記例の場合、当該操作対象のオブジェクトＩＤが、Ｏ１であり、図４を参照すると操作オブジェクトＩＤ、Ｏ１に関連付けてアイテムＩＤ、Ｉ１が記憶されているので、当該アイテムＩＤ、Ｉ１を取得する。
【００４３】
また、このとき、時間計数部２０８は、時間の計数を開始し、経過時間を、当該操作対象のオブジェクトＩＤ及びアイテムＩＤとともに、当該経過時間を経過時間情報記憶部２０９に記憶する（Ｓ２０３）。なお、経過時間情報記憶部２０９に記憶された当該経過時間は、所定の時間毎に時間計数部２０８により更新される。
【００４４】
そして、アイテム動作制御部５０３は、当該アイテムＩＤに基づいて当該アイテムＩＤについてのアイテム情報をアイテム情報記憶部２０６から取得し、当該アイテム情報を物理エンジン５０４に当該アイテム情報を送信する（Ｓ２０４）。例えば、上記例の場合、図６に示すように、アイテムＩＤ、Ｉ１に関連付けて記憶されている質量情報、サイズ情報、位置情報等のアイテム情報を物理エンジン５０４に送信する。
【００４５】
物理エンジン５０４は、当該アイテム情報に基づいて、物理演算を行い、仮想空間内における所定期間毎、例えば、１フレーム期間毎の当該アイテムの位置情報を算出する（Ｓ２０５）。アイテム動作制御部５０３は、物理エンジン５０４により算出されたアイテムの位置情報に基づいて、仮想空間における当該アイテムを移動させる（Ｓ２０６）。そして、処理を終了する。
【００４６】
次に、図１０を用いてアイテムと非操作オブジェクトとの衝突判定及び衝突した際の処理のフローについて説明する。図１０に示すように、まず、アイテム位置情報取得部３０３は、アイテムの位置情報を取得する（Ｓ３０１）。なお、アイテム位置情報取得部３０３は、アイテム情報記憶部２０６に記憶されたアイテム位置情報を取得してもよいし、物理エンジン５０４により算出されたアイテムの位置情報を取得するように構成してもよい。また、非操作オブジェクト位置情報取得部３０２は、非操作オブジェクトの位置情報を取得する（Ｓ３０２）。なお、当該非操作オブジェクトの位置情報は、例えば、非操作オブジェクト動作制御部５０２から取得する。
【００４７】
衝突判定部２０７は、取得されたアイテムの位置情報及び非操作オブジェクトの位置情報等に基づき、アイテムと非操作オブジェクトが衝突したか否かを判定する（Ｓ３０３）。なお、当該衝突判定には、上述のように、例えば、分離軸法用いる。
【００４８】
衝突判定部２０７が衝突したと判定した場合には、オブジェクト判定部２１１は、当該衝突したと判定されたアイテムのアイテムＩＤに関連付けてオブジェクトＩＤがアイテム・オブジェクト情報記憶部２０４に記憶されているか否かを判定し、記憶されていると判定した場合には当該オブジェクトＩＤを取得する（Ｓ３０４）。例えば、上記例の場合、図４に示すように、アイテムＩＤ、Ｉ１について、オブジェクトＩＤ、Ｏ１が関連付けて記憶されているので、オブジェクトＩＤ、Ｏ１を取得する。これにより、攻撃等したオブジェクトがオブジェクトＩＤ、Ｏ１で識別されるオブジェクトであると認識される。
【００４９】
一方、このとき、例えば、当該アイテムを用いた攻撃開始等から所定の時間が経過している場合には、上述のように、アイテム・オブジェクト情報管理部２１０により、当該アイテムを識別するアイテムＩＤ及び当該アイテムＩＤに関連付けられたオブジェクトＩＤが消去されている。したがって、Ｓ３０１に戻る。これにより、例えば、仮想空間において、操作オブジェクトにより槍のアイテムが投げられてから、所定の時間が経過して、地面に落ちているような場合、たとえ当該落ちている槍と非操作オブジェクトが衝突したと判定された場合であっても、当該非操作オブジェクトがＳ３０５において、操作オブジェクトに対して攻撃等開始することを防止することができる。
【００５０】
非操作オブジェクト動作制御部５０２は、非操作オブジェクトにＳ３０４で取得されたオブジェクトＩＤで示される操作オブジェクトに対する所定の動作を行わせる（Ｓ３０５）。ここで、所定の動作とは、上述のように、例えば、当該オブジェクトの方向を向く、当該オブジェクトに向かって移動する、当該オブジェクトに対して攻撃動作を開始する等、取得されたオブジェクトＩＤで表されるオブジェクトに対するあらかじめ設定された動作である。そして処理を終了する。
【００５１】
次に、上記の処理のフローにつき、図１１（Ａ）に示した具体例を用いて説明する。図１１（Ａ）は、当該オブジェクト制御装置１００で実現される仮想空間内において、操作オブジェクト６０１が非操作オブジェクト６０３に対して、アイテム６０２を投げる攻撃をして、当該アイテム６０２が、非操作オブジェクト６０３に衝突した様子を示す。また、図１１（Ｂ）は、当該アイテム６０２が非操作オブジェクト６０３に衝突し、非操作オブジェクトが当該アイテム６０２を用いて攻撃した操作オブジェクト６０１の方向へ頭部を向ける様子を示す。なお、例えば、上記仮想空間は、例えば、表示部１０５に表示されるように構成してもよいし、または、通信部１０３を介して外部の端末装置等に送信され、当該端末装置等の表示部に表示されるように構成してもよい。
【００５２】
上述のように、図１１（Ａ）に示した際には、アイテム６０２を識別するアイテムＩＤに関連付けて、操作オブジェクト６０１を識別する操作オブジェクトＩＤが、アイテム・オブジェクト情報記憶部２０４に記憶されており、当該アイテム６０２と非操作オブジェクト６０３が衝突した場合には、当該操作オブジェクト６０１（攻撃した操作オブジェクトに相当する）を示す操作オブジェクトＩＤが取得される。
【００５３】
そして、図１１（Ｂ）に示した際には、当該操作オブジェクト６０１を示すオブジェクトＩＤが取得され、当該オブジェクトＩＤに基づいて、非操作オブジェクト動作制御部５０２は、非操作オブジェクト６０３に所定の動作（この場合は、頭部を向ける）を行わせる。このように、非操作オブジェクト動作制御部５０２は、いずれの操作オブジェクト６０１または６０４が攻撃したのかを認識することができ、これにより、攻撃した操作オブジェクト（この場合は操作オブジェクト６０１）に対して、所定の動作を行わせることができる。
【００５４】
なお、本発明は、上記実施の形態に限定されるものではなく、種々の変形が可能である。例えば、上記実施の形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。
【００５５】
具体的には、例えば、操作オブジェクト、非操作オブジェクト、アイテムは、上記で示した数に限られず、それぞれ２以上の複数であってもよい。この場合、複数の操作オブジェクトは、１または複数のユーザにより操作されてもよいし、複数の非操作オブジェクトは、互いに独立して非操作オブジェクト動作制御部５０２により制御されてもよい。また、上記においては、操作オブジェクトと非操作オブジェクトとを用いて説明したが、操作オブジェクトは、必ずしもユーザの指示に基づいて動作する必要はなく、上記非操作オブジェクトと同様に、ユーザの指示によらずに、あらかじめ設定されたプログラム等に応じて動作するように構成してもよい。なお、例えば、特許請求の範囲における第１のオブジェクト及び第２のオブジェクトは、それぞれ、上記操作オブジェクト及び非操作オブジェクトを含む。
【符号の説明】
【００５６】
１００  オブジェクト制御装置、１０１  制御部、１０２  記憶部、１０３  通信部、１０４  操作部、１０５  表示部、２０１  操作情報取得部、２０２  位置情報取得部、２０３  保持判定部、２０４  アイテム・オブジェクト情報記憶部、２０５  動作制御部、２０６  アイテム情報記憶部、２０７  衝突判定部、２０８  時間計数部、２０９  経過時間情報記憶部、２１０  アイテム・オブジェクト情報管理部、２１１  オブジェクト判定部、２１２  オブジェクト情報記憶部、３０１  操作オブジェクト位置情報取得部、３０２  非操作オブジェクト位置情報取得部、３０３  アイテム位置情報取得部、５０１  操作オブジェクト動作制御部、５０２  非操作オブジェクト動作制御部、５０３  アイテム動作制御部、５０４  物理エンジン。
【図１】
0005579661.tif 000002
【図２】
0005579661.tif 000003
【図３】
0005579661.tif 000004
【図４】
0005579661.tif 000005
【図５】
0005579661.tif 000006
【図６】
0005579661.tif 000007
【図７】
0005579661.tif 000008
【図８】
0005579661.tif 000009
【図９】
0005579661.tif 000010
【図１０】
0005579661.tif 000011
【図１１】
0005579661.tif 000012