説明

オブジェクト制御プログラム、オブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体、オブジェクト制御装置、オブジェクト制御方法

【課題】第1のオブジェクトから放たれたアイテムが第2のオブジェクトに衝突した場合、第2のオブジェクトはいずれのオブジェクトから放たれたアイテムは判別できない。
【解決手段】
仮想空間における、第1のオブジェクト、第2のオブジェクト、及び、アイテムの動作をそれぞれ制御する動作制御手段、前記動作制御部が第1のオブジェクトにアイテムを保持させた際に、第1オブジェクト識別情報と、アイテム識別情報とを関連付けて記憶するアイテム・オブジェクト記憶手段、及び、前記アイテムと第2のオブジェクトとが衝突したか否かを判定する衝突判定手段、としてコンピュータを機能させるためのオブジェクト制御プログラムであって、前記動作制御手段は、前記衝突判定手段が前記アイテムと前記第2のオブジェクトが衝突したと判定した場合に、前記第1オブジェクト識別情報に基づいて、前記第2のオブジェクトに第1の動作を行わせる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクト制御プログラム、オブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体、オブジェクト制御装置、オブジェクト制御方法に関する。
【背景技術】
【0002】
プレイヤーによる指示操作に応じて操作対象のオブジェクトを移動させ、他のオブジェクトに対し、攻撃等の行動を行わせるゲームが知られている。具体的には、例えば、操作対象のキャラクタを仮想空間内で移動させ、遭遇した敵キャラクタと戦うゲーム等が知られている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
上記のようなゲームプログラム等で実現される仮想空間内において、例えば、1又は複数の操作対象のキャラクタが、アイテム、例えば、槍、矢、ボール等を保持し、当該所定のアイテムを敵キャラクタに投げる等の動作を行うことにより攻撃する場合がある。しかしながら、キャラクタから放たれたアイテムが敵キャラクタに衝突した場合、いずれのキャラクタから放たれたアイテムか判別できず、結果として、当該敵キャラクタに当該攻撃したキャラクタに対する攻撃等の動作を行わせることができない場合がある。
【0004】
本発明は、上記観点から、例えば、アイテムが敵キャラクタに衝突等した場合に、当該アイテムがいずれのキャラクタの攻撃等に起因するものであるかを認識し、当該敵キャラクタに当該攻撃等したキャラクタに対して所定の動作(例えば、攻撃、移動等)を行わせることのできるオブジェクト制御プログラム、オブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体、オブジェクト制御装置、または、オブジェクト制御方法、を実現することを目的とする。
【課題を解決するための手段】
【0005】
本発明のオブジェクト制御プログラムは、仮想空間における、第1のオブジェクト、第2のオブジェクト、及び、アイテムの動作をそれぞれ制御する動作制御手段、前記動作制御部が第1のオブジェクトにアイテムを保持させた際に、前記第1のオブジェクトを識別する第1オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶するアイテム・オブジェクト記憶手段、及び、前記仮想空間において、前記アイテムと第2のオブジェクトとが衝突したか否かを判定する衝突判定手段、としてコンピュータを機能させるためのオブジェクト制御プログラムであって、前記動作制御手段は、前記衝突判定手段が前記アイテムと前記第2のオブジェクトが衝突したと判定した場合に、前記アイテム・オブジェクト記憶手段から前記アイテム識別情報に関連付けて記憶された前記第1オブジェクト識別情報を取得し、該第1オブジェクト識別情報に基づいて、前記第2のオブジェクトに第1の動作を行わせることを特徴とする。
【0006】
本発明のオブジェクト制御装置は、仮想空間における、第1のオブジェクト、第2のオブジェクト、及び、アイテムの動作をそれぞれ制御する動作制御手段と、前記動作制御部が第1のオブジェクトにアイテムを保持させた際に、前記第1のオブジェクトを識別する第1オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶するアイテム・オブジェクト記憶手段と、前記仮想空間において、前記アイテムと第2のオブジェクトとが衝突したか否かを判定する衝突判定手段と、を有し、前記動作制御手段は、前記衝突判定手段が前記アイテムと前記第2のオブジェクトが衝突したと判定した場合に、前記アイテム・オブジェクト記憶手段から前記アイテム識別情報に関連付けて記憶された前記第1オブジェクト識別情報を取得し、該第1オブジェクト識別情報に基づいて、前記第2のオブジェクトに所定の動作を行わせることを特徴とする。
【0007】
本発明のオブジェクト制御方法は、仮想空間における、第1のオブジェクト、第2のオブジェクト、及び、アイテムの動作をそれぞれ制御し、前記動作制御部が第1のオブジェクトにアイテムを保持させた際に、前記第1のオブジェクトを識別する第1オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶し、前記仮想空間において、前記アイテムと第2のオブジェクトとが衝突したか否かを判定し、前記アイテムと前記第2のオブジェクトが衝突したと判定した場合に、前記アイテム識別情報に関連付けて記憶された前記第1オブジェクト識別情報を取得し、該第1オブジェクト識別情報に基づいて、前記第2のオブジェクトに所定の動作を行わせることを特徴とする。
【図面の簡単な説明】
【0008】
【図1】本発明の実施の形態におけるオブジェクト制御装置の構成の概要について説明するための図である。
【図2】図1に示したオブジェクト制御装置の機能的な構成について説明するための図である。
【図3】図2に示した位置情報取得部の機能的な構成について説明するための図である。
【図4】図2に示したアイテム・オブジェクト情報記憶部の記憶形式について説明するための図である。
【図5】図2に示した動作制御部の機能的な構成について説明するための図である。
【図6】図2に示したアイテム情報記憶部の記憶形式について説明するための図である。
【図7】図2に示した経過時間情報記憶部の記憶形式について説明するための図である。
【図8】アイテムの保持に関する処理のフローについて説明するための図である。
【図9】操作オブジェクトが非操作オブジェクトを攻撃する際の処理のフローについて説明するための図である。
【図10】アイテムと非操作オブジェクトとの衝突判定等についての処理のフローについて説明するための図である。
【図11】本実施の形態の具体例について説明するための図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
【0010】
図1は、本発明の実施の形態におけるオブジェクト制御装置の構成の概要について説明するための図である。図1に示すように、オブジェクト制御装置100は、例えば、CPUやメモリ等で構成されるコンピュータで構成され、例えば、制御部101、記憶部102、通信部103、操作部104、表示部105を有する。なお、制御部101、記憶部102、通信部103、操作部104、表示部105は、内部バス106により互いに接続される。
【0011】
制御部101は、例えば、CPU、MPU等であって、記憶部102に格納されたプログラムに従って動作する。記憶部102は、例えば、ROMやRAM、ハードディスク等の情報記録媒体で構成され、制御部101によって実行されるプログラムを保持する情報記録媒体である。また、記憶部102は、制御部101のワークメモリとしても動作する。なお、当該プログラムは、例えば、ネットワーク(図示なし)を介して、ダウンロードされて提供されてもよいし、または、CD−ROMやDVD−ROM等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。
【0012】
通信部103は、当該オブジェクト制御装置100を、ネットワーク(図示なし)を介して、他の端末装置(図示なし)やデータベース(図示なし)等と接続する。操作部104は、例えば、キーボード、マウス、または、コントローラ等で構成され、ユーザの指示操作に応じて、当該指示操作の内容を制御部101に出力する。表示部105は、例えば、液晶ディスプレイ、有機ELディスプレイ等であって、制御部101からの指示に従い、情報を表示する。なお、上記オブジェクト制御装置100の構成は、一例であってこれに限定されるものではない。例えば、上記端末装置から、ネットワークを介して、ユーザの指示操作がオブジェクト制御装置100に入力されるように構成してもよい。
【0013】
図2は、図1に示したオブジェクト制御装置の機能的な構成について説明するための図である。なお、図2は、オブジェクト制御装置100で実現される機能のうち、本発明に関連する機能的構成を中心に示す。図2に示すように、オブジェクト制御装置100は、操作情報取得部201、位置情報取得部202、保持判定部203、アイテム・オブジェクト情報記憶部204、動作制御部205、アイテム情報記憶部206、衝突判定部207、時間計数部208、経過時間情報記憶部209、アイテム・オブジェクト情報管理部210、オブジェクト判定部211、オブジェクト情報記憶部212を有する。
【0014】
操作情報取得部201は、操作対象のキャラクタ(操作オブジェクト)を指示するための各種の操作情報を取得する。当該操作情報は、例えば、ユーザが、操作部104であるキーボードやコントローラを用いて入力する。また、当該オブジェクト制御装置100がネットワークを介して端末装置等と接続されている場合には、当該操作指示は当該端末の操作部から入力されてもよい。
【0015】
具体的には、当該操作情報は、例えば、アイテム保持指示、移動指示、攻撃指示についての操作情報を含む。ここで、アイテム保持指示とは、例えば、操作オブジェクトにアイテムを保持させるための指示に相当する。攻撃指示とは、例えば、操作オブジェクトに、保持したアイテムを用いて、敵キャラクタ(ユーザの操作対象でない非操作オブジェクト)に対して、攻撃させるための指示に相当する。移動指示とは、例えば、仮想空間において操作オブジェクトを移動させるための指示であり、例えば、上下左右方向への移動指示等が含まれる。そして、当該移動指示に従って、仮想空間上を操作オブジェクトが移動する。また、アイテムとは、例えば、仮想空間内に表される、槍、矢、剣、ボール、箱等の操作オブジェクト及び後述する非操作オブジェクトとは別のオブジェクトに相当する。更に、攻撃指示とは、具体的には、例えば、当該槍、矢、剣等のアイテムを敵キャラクタに向かって投げる、発射する等の指示に相当する。
【0016】
位置情報取得部202は、仮想空間における操作オブジェクト、アイテム、非操作オブジェクトの位置を表す位置情報を取得する。具体的には、図3に示すように、位置情報取得部202は、操作オブジェクト位置情報取得部301、非操作オブジェクト位置情報取得部302、アイテム位置情報取得部303、を含む。
【0017】
操作オブジェクト位置情報取得部301は、仮想空間における操作オブジェクトの位置情報を取得する。アイテム位置情報取得部303は、仮想空間におけるアイテムの位置情報を取得する。非操作オブジェクト位置情報取得部302は、仮想空間における非操作オブジェクトの位置情報を取得する。なお、具体的には、例えば、上記各位置情報は、例えば、仮想空間におけるアイテム、操作オブジェクト、非操作オブジェクトの位置を示す3次元空間座標で取得される。
【0018】
保持判定部203は、操作情報取得部201がアイテム保持指示を取得した際に、操作オブジェクトが当該アイテムを保持可能か否か判定する。具体的には、例えば、保持判定部203は、操作情報取得部201がアイテム保持指示を取得した際に、操作オブジェクト位置情報取得部301が操作オブジェクトの位置情報を取得するよう指示する。また、保持判定部203は、アイテム位置情報取得部303にアイテムの位置情報を取得するよう指示する。そして、保持判定部203は、取得された操作オブジェクトの位置情報及びアイテムの位置情報が所定の範囲内か否か判定する。そして、当該所定の範囲内であると判定した場合には、操作オブジェクトが当該アイテムを保持可能であると判定し、所定の範囲内でないと判定した場合には、保持不可能であると判定する。
【0019】
アイテム・オブジェクト情報記憶部204は、保持判定部203が当該アイテムを保持可能であると判定した場合には、当該アイテムを識別するアイテム識別情報(ID)及び当該操作オブジェクトを識別するオブジェクト識別情報(ID)を関連付けて記憶する。具体的には、例えば、図4に示すように、アイテム・オブジェクト情報記憶部204は、アイテムID、I1についてオブジェクトID、O1、アイテムID、I2についてオブジェクトID、O2を、表の形式で記憶する。
【0020】
動作制御部205は、仮想空間における複数のオブジェクトの動作を制御する。当該複数のオブジェクトとは、例えば、1または複数のユーザが操作する1または複数のキャラクタ、当該ユーザが操作する1または複数のキャラクタの敵に相当する1または複数の敵キャラクタや、当該ユーザが操作するキャラクタ等が保持または使用等可能なアイテムに相当する。具体的には、例えば、動作制御部205は、図5に示すように、操作オブジェクト動作制御部501、非操作オブジェクト動作制御部502、アイテム動作制御部503、物理エンジン504を含む。
【0021】
操作オブジェクト動作制御部501は、1または複数の操作オブジェクト(例えば、ユーザが操作するキャラクタ)の動作を制御する。具体的には、例えば、上記保持判定部203がアイテムを保持可能であると判定した場合には、操作オブジェクトに所定の保持動作(第2の動作)をさせる。当該保持動作は、例えば、オブジェクト情報記憶部212に、オブジェクトID毎及び各動作に関連付けて記憶されたモーションデータ等を用いることにより行われる。なお、当該保持動作は、例えば、アイテムが仮想空間内における地面に落ちた槍や矢等であった場合には、当該槍や矢を拾い上げるような動作等であって、アイテムやアイテムの位置毎に異なる動作を行わせるよう構成してもよい。また、操作オブジェクト動作制御部501は、操作情報取得部201が取得した移動指示に応じて、仮想空間において操作オブジェクトを移動等させる。
【0022】
アイテム動作制御部503は、アイテムの移動や表示等を制御する。具体的には、例えば、アイテム動作制御部503は、操作情報取得部201が攻撃指示を取得した場合に、後述するアイテム情報記憶部206から後述するアイテム情報を取得し、物理エンジン504に当該アイテム情報を送信する。そして、例えば、後述するように物理エンジン504から所定期間毎、例えば1フレーム期間毎のアイテムの位置情報を取得して、当該アイテムの位置情報に応じて、仮想空間内において当該アイテムを移動させる。また、物理エンジン504から取得したアイテムの位置情報により、後述するアイテム情報記憶部206に記憶されたアイテム位置情報を更新する。
【0023】
アイテム情報記憶部206は、例えば、アイテムを識別するアイテム識別情報(ID)、当該アイテムの質量を表す質量情報、当該アイテムのサイズを表すサイズ情報、アイテムの位置を表すアイテム位置情報等を関連付けて記憶する。なお、これらの情報が、前述のアイテム情報に相当する。具体的には、アイテム情報記憶部206は、例えば、図6に示すように、アイテムID、I1のアイテムについて、質量情報、2、サイズ情報、3、アイテム位置情報、(x、y、z)等を関連付けて記憶する。なお、当該アイテム位置情報は、後述する物理エンジン504から取得したアイテムの位置情報により、所定期間毎に更新される。また、当該質量やサイズ等は例示であって、その他アイテムの形状に関する情報やアイテムの画像を識別する画像ID等を含んでもよい。
【0024】
物理エンジン504は、上記取得されたアイテム情報や攻撃指示に応じて、例えば、攻撃指示後のアイテムの速度等を算出し、所定期間毎の位置情報を算出する。よって、例えば、攻撃指示が、例えば、アイテムとしての槍を投げる動作であった場合について説明すると、当該槍の質量情報が重い程、早く落下するようにシミュレーションされる。また、当該槍を投げる攻撃指示がアナログ値で入力されるように設計されている場合には、例えば強く投げるよう指示されるほど(例えば上記アナログ値がより大きいほど)、当該攻撃指示後の槍の速度が速くなる等、古典力学の法則に沿って攻撃指示後のアイテムの位置情報が所定期間毎に求められる。
【0025】
なお、物理エンジン504は、例えば、質量・速度・摩擦・風といった、古典力学的な法則をシミュレーションする周知のコンピュータソフトウェアに相当するので、その詳細については説明を省略する。また、上記においては、物理エンジン504をアイテムのシミュレーションに用いる場合について説明したが、所定の場合には、非操作オブジェクトや操作オブジェクトの動作についても物理エンジン504を用いてシミュレーションし、当該シミュレーション結果を用いて操作オブジェクト等の動作を制御してもよい。
【0026】
衝突判定部207は、取得されたアイテムの位置情報及び非操作オブジェクトの位置情報等に基づいてアイテムと非操作対象オブジェクトが衝突したか否かを判定する。ここで、当該衝突判定には、例えば、仮想空間における2のオブジェクトの間に、分離できる平面(分離平面)が存在するか否かを判定し、当該分離平面が存在しなければ、当該2の対象物が衝突していると判定するいわゆる分離軸法を用いればよい。なお、当該分離軸法を用いた衝突判定については周知であるので、詳細については省略する。また、当該衝突判定方法については、上記分離軸法の他、GJK法等その他の衝突判定方法を用いてもよい。
【0027】
オブジェクト判定部211は、衝突判定部207が衝突したと判定した場合には、当該衝突したと判定されたアイテムID及び当該アイテムIDに関連付けられて記憶されているオブジェクトIDがアイテム・オブジェクト情報記憶部204に記憶されているか否かを判定する。
【0028】
非操作オブジェクト動作制御部502は、非操作オブジェクト(例えば、敵キャラクタ)の動作を制御する。具体的には、例えば、上記オブジェクト判定部211が、衝突したアイテムIDが記憶されていると判定した場合には、アイテム・オブジェクト情報記憶部204から、当該衝突したと判定されたアイテムIDに関連付けて記憶されているオブジェクトIDを取得する。これにより、非操作オブジェクト動作制御部502は、いずれのオブジェクトにより攻撃されたかを認識することができる。具体的には、非操作オブジェクトに衝突したアイテムが、いずれのオブジェクトから放たれたかを認識することができる。
【0029】
そして、非操作オブジェクト動作制御部502は、非操作オブジェクトに、取得されたオブジェクトIDに基づいて所定の動作(第1の動作)を行わせる。ここで、所定の動作とは、例えば、取得されたオブジェクトIDで表されるオブジェクト(例えば、あるユーザが操作する操作キャラクタ)に基づく動作に相当し、より具体的には、例えば、当該オブジェクトの方向を向く、当該オブジェクトに向かって移動する、当該オブジェクトに対して攻撃動作を開始する等、取得されたオブジェクトIDに基づくあらかじめ設定された動作である。
【0030】
なお、オブジェクト判定部211が、衝突したアイテムIDが記憶されていないと判定した場合には、後述するように当該アイテムIDで識別されるアイテムが操作オブジェクトにより放たれてから、所定の時間が経過しており、例えば、地面に存在している場合等に相当することから、当該アイテムとの衝突に関しては非操作オブジェクトに上記取得されたオブジェクトIDに基づくあらかじめ設定された動作を行わせることはない。なお、この場合、その他の動作、例えば、操作キャラクターとは無関係な動作であるアイテムにつまづく等の動作を行わせてもよいことはいうまでもない。これにより、例えば、仮想空間において、操作キャラクタが一度投げて地面に落ちているアイテムと敵キャラクタが接触した場合(衝突した場合)に、敵キャラクタに、以前に当該アイテムを投げたキャラクタを敵とみなして攻撃等行わせる等を防止することができる。
【0031】
時間計数部208は、攻撃指示により操作オブジェクトが保持していたアイテムが操作オブジェクトから手放されてからの時間(経過時間)を計数する。具体的には、例えば、時間計数部208は、操作情報取得部201が攻撃指示を取得してからの時間を計数してもよいし、操作オブジェクト動作制御部501が当該攻撃指示に基づく所定の動作を終了してからの時間を計数するように構成してもよい。また、攻撃の種類等に応じて、アイテム保持指示等が取得された時間等から時間を計数するように構成してもよい。
【0032】
経過時間情報記憶部209は、時間計数部208により計数された経過時間を、例えば、図7に示すように、当該操作オブジェクトのオブジェクトID毎及びアイテムID毎に、表の形式で、記憶する。ここで、当該オブジェクトID及びアイテムID毎に記憶された経過情報を経過時間情報と称する。例えば、図7においては、オブジェクトID、O1について、アイテムID、I1、経過時間100が記憶されているので、オブジェクトID、O1の操作オブジェクトがアイテムID、I1のアイテムを用いて攻撃し当該アイテムが当該操作オブジェクトから離れてから、経過時間2(例えば、2秒)が経過した様子を示す。なお、当該経過時間は、所定期間毎(例えば、1秒毎)に更新される。なお、当該各オブジェクトID及びアイテムIDは、例えば、動作制御部205から時間計数部208を介して取得される。
【0033】
アイテム・オブジェクト情報管理部210は、経過時間情報記憶部209に記憶された経過時間情報が所定の経過時間(例えば10秒)以上を示した場合には、当該所定の経過時間が経過したアイテムIDについてのアイテム情報をアイテム・オブジェクト情報記憶部204から削除する。これにより、例えば、仮想空間において、操作キャラクタが一度投げて地面に落ちているアイテムと敵キャラクタが接触した場合(衝突した場合)に、敵キャラクタに、以前に当該アイテムを投げたキャラクタを敵とみなして攻撃等行わせる等を防止することができることは前述のとおりである。また、アイテム・オブジェクト情報管理部210は、時間計数部208が所定の経過時間を計数した場合には、当該所定の経過時間が経過したアイテムIDについての経過時間情報を削除する。
【0034】
なお、上記オブジェクト制御装置100の構成は一例であってこれに限定されるものではない。例えば、上記で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。例えば、上記所定の経過時間は、オブジェクトIDやアイテムID毎、攻撃の種類毎に異なるように設定可能な構成としてもよい。例えば、アイテムを任意の場所に設置し、当該アイテムに敵キャラクタが接触した場合に所定の攻撃となる、いわゆる罠を用いる攻撃等の場合には、当該所定の時間をより長く設定する等である。また、経過時間情報は、後述するようにアイテムが非操作オブジェクトと衝突したと判定された場合に、削除されるように構成してもよい。この場合、更に、例えば、複数の非操作オブジェクトが存在し、当該複数の非操作オブジェクトに、順にアイテムが衝突する場合には、1番目の非操作オブジェクトに衝突した際には関連する経過時間情報を削除せず、当該複数の非操作オブジェクト全てに衝突した後に関連する経過時間情報を削除するように構成してもよい。なお、この場合において、所定の場合には、当該1番目の非操作オブジェクトに衝突したと判定した際に経過時間情報を削除するよう構成してもよいことはいうまでもない。
【0035】
次に、当該オブジェクト制御装置100の処理のフローについて説明する。まず、アイテムの保持に関する処理のフローについて説明する。図8は、アイテムの保持に関する処理のフローについて説明するための図である。なお、下記においては、具体例として、操作オブジェクトのオブジェクトIDがO1である場合を用いて説明する。
【0036】
図8に示すように、例えば、ユーザがアイテム保持指示を操作部104に入力することにより、操作情報取得部201は、アイテム保持指示(保持操作情報)を取得する(S101)。このとき、操作オブジェクト位置情報取得部301は、操作オブジェクト動作制御部501から、アイテム保持指示が取得された際の操作オブジェクトの位置情報を取得する(S102)。
【0037】
また、アイテム位置情報取得部303は、アイテム情報記憶部206から、アイテム保持指示が取得された際のアイテムの位置情報を取得する(S103)。なお、ここで、アイテムが複数存在する場合には、S102で取得された操作オブジェクトの位置情報に最も近い1のアイテムの位置情報を取得する。具体的には、例えば、アイテム情報記憶部206に記憶されたアイテム情報が図6に示した場合であって、アイテムID、I1の位置情報がアイテムID、I2の位置情報よりも、上記取得された操作オブジェクトの位置情報に近い場合、アイテムID、I1の位置情報をアイテムID、I1とともに取得する。
【0038】
保持判定部203は、S102及びS103で取得された操作オブジェクトの位置情報及びアイテムの位置情報が所定の範囲内か否か判定する。そして、所定の範囲内であると判定した場合には、操作オブジェクトが当該アイテムを保持可能であると判定し(S104)、S105に進む。一方、所定の範囲内でないと判定した場合には、S101に戻る。ここで、所定の範囲内とは、操作オブジェクトがアイテムを自然に保持することができる範囲内としてあらかじめ設定する。また、当該所定の範囲内は、操作オブジェクト毎、アイテム毎等により異なるように設定してもよい。
【0039】
保持判定部203が保持可能であると判定した場合には、操作オブジェクト動作制御部501は、操作オブジェクトにアイテムの保持動作を行わせる(S105)。なお、当該保持動作は、例えば、オブジェクト情報記憶部212に記憶されたモーションデータ等を用いることにより行われることは前述のとおりである。
【0040】
また、このとき、アイテム・オブジェクト情報記憶部204は、当該アイテムのアイテムIDと、操作オブジェクトを識別するオブジェクトIDを関連付けて記憶する(S106)。具体的には、上記例の場合、例えば、図4に示すように、アイテム・オブジェクト情報記憶部204に、アイテムID、I1と操作対象オブジェクトのID、O1を関連付けて記憶する。そして、処理を終了する。
【0041】
次に、操作オブジェクトが保持したアイテムを用いて非操作オブジェクトを攻撃する際の処理のフローについて説明する。図9は、操作オブジェクトが非操作オブジェクトを攻撃する際の処理のフローについて説明するための図である。図9に示すように、例えば、ユーザが攻撃指示を操作部104に入力すると、操作情報取得部201は、当該攻撃指示を取得する(S201)。
【0042】
操作情報取得部201が攻撃指示を取得すると、アイテム動作制御部503は、アイテム・オブジェクト情報記憶部204を参照し、当該操作対象の操作オブジェクトIDに関連付けて記憶されているアイテムIDを取得する(S202)。例えば、上記例の場合、当該操作対象のオブジェクトIDが、O1であり、図4を参照すると操作オブジェクトID、O1に関連付けてアイテムID、I1が記憶されているので、当該アイテムID、I1を取得する。
【0043】
また、このとき、時間計数部208は、時間の計数を開始し、経過時間を、当該操作対象のオブジェクトID及びアイテムIDとともに、当該経過時間を経過時間情報記憶部209に記憶する(S203)。なお、経過時間情報記憶部209に記憶された当該経過時間は、所定の時間毎に時間計数部208により更新される。
【0044】
そして、アイテム動作制御部503は、当該アイテムIDに基づいて当該アイテムIDについてのアイテム情報をアイテム情報記憶部206から取得し、当該アイテム情報を物理エンジン504に当該アイテム情報を送信する(S204)。例えば、上記例の場合、図6に示すように、アイテムID、I1に関連付けて記憶されている質量情報、サイズ情報、位置情報等のアイテム情報を物理エンジン504に送信する。
【0045】
物理エンジン504は、当該アイテム情報に基づいて、物理演算を行い、仮想空間内における所定期間毎、例えば、1フレーム期間毎の当該アイテムの位置情報を算出する(S205)。アイテム動作制御部503は、物理エンジン504により算出されたアイテムの位置情報に基づいて、仮想空間における当該アイテムを移動させる(S206)。そして、処理を終了する。
【0046】
次に、図10を用いてアイテムと非操作オブジェクトとの衝突判定及び衝突した際の処理のフローについて説明する。図10に示すように、まず、アイテム位置情報取得部303は、アイテムの位置情報を取得する(S301)。なお、アイテム位置情報取得部303は、アイテム情報記憶部206に記憶されたアイテム位置情報を取得してもよいし、物理エンジン504により算出されたアイテムの位置情報を取得するように構成してもよい。また、非操作オブジェクト位置情報取得部302は、非操作オブジェクトの位置情報を取得する(S302)。なお、当該非操作オブジェクトの位置情報は、例えば、非操作オブジェクト動作制御部502から取得する。
【0047】
衝突判定部207は、取得されたアイテムの位置情報及び非操作オブジェクトの位置情報等に基づき、アイテムと非操作オブジェクトが衝突したか否かを判定する(S303)。なお、当該衝突判定には、上述のように、例えば、分離軸法用いる。
【0048】
衝突判定部207が衝突したと判定した場合には、オブジェクト判定部211は、当該衝突したと判定されたアイテムのアイテムIDに関連付けてオブジェクトIDがアイテム・オブジェクト情報記憶部204に記憶されているか否かを判定し、記憶されていると判定した場合には当該オブジェクトIDを取得する(S304)。例えば、上記例の場合、図4に示すように、アイテムID、I1について、オブジェクトID、O1が関連付けて記憶されているので、オブジェクトID、O1を取得する。これにより、攻撃等したオブジェクトがオブジェクトID、O1で識別されるオブジェクトであると認識される。
【0049】
一方、このとき、例えば、当該アイテムを用いた攻撃開始等から所定の時間が経過している場合には、上述のように、アイテム・オブジェクト情報管理部210により、当該アイテムを識別するアイテムID及び当該アイテムIDに関連付けられたオブジェクトIDが消去されている。したがって、S301に戻る。これにより、例えば、仮想空間において、操作オブジェクトにより槍のアイテムが投げられてから、所定の時間が経過して、地面に落ちているような場合、たとえ当該落ちている槍と非操作オブジェクトが衝突したと判定された場合であっても、当該非操作オブジェクトがS305において、操作オブジェクトに対して攻撃等開始することを防止することができる。
【0050】
非操作オブジェクト動作制御部502は、非操作オブジェクトにS304で取得されたオブジェクトIDで示される操作オブジェクトに対する所定の動作を行わせる(S305)。ここで、所定の動作とは、上述のように、例えば、当該オブジェクトの方向を向く、当該オブジェクトに向かって移動する、当該オブジェクトに対して攻撃動作を開始する等、取得されたオブジェクトIDで表されるオブジェクトに対するあらかじめ設定された動作である。そして処理を終了する。
【0051】
次に、上記の処理のフローにつき、図11(A)に示した具体例を用いて説明する。図11(A)は、当該オブジェクト制御装置100で実現される仮想空間内において、操作オブジェクト601が非操作オブジェクト603に対して、アイテム602を投げる攻撃をして、当該アイテム602が、非操作オブジェクト603に衝突した様子を示す。また、図11(B)は、当該アイテム602が非操作オブジェクト603に衝突し、非操作オブジェクトが当該アイテム602を用いて攻撃した操作オブジェクト601の方向へ頭部を向ける様子を示す。なお、例えば、上記仮想空間は、例えば、表示部105に表示されるように構成してもよいし、または、通信部103を介して外部の端末装置等に送信され、当該端末装置等の表示部に表示されるように構成してもよい。
【0052】
上述のように、図11(A)に示した際には、アイテム602を識別するアイテムIDに関連付けて、操作オブジェクト601を識別する操作オブジェクトIDが、アイテム・オブジェクト情報記憶部204に記憶されており、当該アイテム602と非操作オブジェクト603が衝突した場合には、当該操作オブジェクト601(攻撃した操作オブジェクトに相当する)を示す操作オブジェクトIDが取得される。
【0053】
そして、図11(B)に示した際には、当該操作オブジェクト601を示すオブジェクトIDが取得され、当該オブジェクトIDに基づいて、非操作オブジェクト動作制御部502は、非操作オブジェクト603に所定の動作(この場合は、頭部を向ける)を行わせる。このように、非操作オブジェクト動作制御部502は、いずれの操作オブジェクト601または604が攻撃したのかを認識することができ、これにより、攻撃した操作オブジェクト(この場合は操作オブジェクト601)に対して、所定の動作を行わせることができる。
【0054】
なお、本発明は、上記実施の形態に限定されるものではなく、種々の変形が可能である。例えば、上記実施の形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。
【0055】
具体的には、例えば、操作オブジェクト、非操作オブジェクト、アイテムは、上記で示した数に限られず、それぞれ2以上の複数であってもよい。この場合、複数の操作オブジェクトは、1または複数のユーザにより操作されてもよいし、複数の非操作オブジェクトは、互いに独立して非操作オブジェクト動作制御部502により制御されてもよい。また、上記においては、操作オブジェクトと非操作オブジェクトとを用いて説明したが、操作オブジェクトは、必ずしもユーザの指示に基づいて動作する必要はなく、上記非操作オブジェクトと同様に、ユーザの指示によらずに、あらかじめ設定されたプログラム等に応じて動作するように構成してもよい。なお、例えば、特許請求の範囲における第1のオブジェクト及び第2のオブジェクトは、それぞれ、上記操作オブジェクト及び非操作オブジェクトを含む。
【符号の説明】
【0056】
100 オブジェクト制御装置、101 制御部、102 記憶部、103 通信部、104 操作部、105 表示部、201 操作情報取得部、202 位置情報取得部、203 保持判定部、204 アイテム・オブジェクト情報記憶部、205 動作制御部、206 アイテム情報記憶部、207 衝突判定部、208 時間計数部、209 経過時間情報記憶部、210 アイテム・オブジェクト情報管理部、211 オブジェクト判定部、212 オブジェクト情報記憶部、301 操作オブジェクト位置情報取得部、302 非操作オブジェクト位置情報取得部、303 アイテム位置情報取得部、501 操作オブジェクト動作制御部、502 非操作オブジェクト動作制御部、503 アイテム動作制御部、504 物理エンジン。

【特許請求の範囲】
【請求項1】
仮想空間における、第1のオブジェクト、第2のオブジェクト、及び、アイテムの動作をそれぞれ制御する動作制御手段、
前記動作制御部が第1のオブジェクトにアイテムを保持させた際に、前記第1のオブジェクトを識別する第1オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶するアイテム・オブジェクト記憶手段、及び、
前記仮想空間において、前記アイテムと第2のオブジェクトとが衝突したか否かを判定する衝突判定手段、としてコンピュータを機能させるためのオブジェクト制御プログラムであって、
前記動作制御手段は、前記衝突判定手段が前記アイテムと前記第2のオブジェクトが衝突したと判定した場合に、前記アイテム・オブジェクト記憶手段から前記アイテム識別情報に関連付けて記憶された前記第1オブジェクト識別情報を取得し、該第1オブジェクト識別情報に基づいて、前記第2のオブジェクトに第1の動作を行わせることを特徴とするオブジェクト制御プログラム。
【請求項2】
前記オブジェクト制御プログラムは、更に、
前記第1のオブジェクトに前記アイテムを保持させるアイテム保持指示、及び、前記第1のオブジェクトに前記アイテムを用いて第2の動作を行わせる動作指示を取得する操作情報取得手段、
前記第2の動作に基づいたタイミングからの経過時間を計数する時間計数手段、及び
前記時間計数部が所定の経過時間を計数した場合に、前記アイテム・オブジェクト記憶手段に関連付けて記憶された前記第1オブジェクト識別情報及び前記アイテム識別情報を削除するアイテム・オブジェクト情報管理手段、
としてコンピュータを機能させるための請求項1記載のオブジェクト制御プログラム。
【請求項3】
前記オブジェクト制御プログラムは、更に、
前記アイテム識別情報に関連付けて、前記アイテムの質量を表す質量情報、前記アイテムのサイズを表すサイズ情報、前記アイテムの位置を表すアイテム位置情報を記憶するアイテム情報記憶手段、及び
前記質量情報、前記サイズ情報、前記アイテム位置情報に基づいて、前記第2の動作が行われた後の所定期間毎の前記アイテムの位置情報を求める物理演算手段、
としてコンピュータを機能させるための請求項1または2記載のオブジェクト制御プログラム。
【請求項4】
前記オブジェクト制御プログラムは、更に、
前記第1のオブジェクト、前記第2のオブジェクト、及び、前記アイテムの位置を表す位置情報をそれぞれ取得する位置情報取得手段、として、コンピュータを機能させ、
前記衝突判定手段は、前記位置情報取得手段により取得される前記第2のオブジェクトの位置情報及び前記アイテムの位置情報に基づいて、前記第2のオブジェクトと前記アイテムが衝突したか否かを判定することを特徴とする請求項1乃至3のいずれかに記載のオブジェクト制御プログラム。
【請求項5】
前記オブジェクト制御プログラムは、更に、
前記位置情報取得手段により取得される前記第1のオブジェクト及び前記アイテムの位置情報に基づいて、前記第1のオブジェクトが前記アイテムを保持可能か否か判定する保持判定手段、
としてコンピュータを機能させ、
前記動作制御手段は、前記保持判定部が保持可能と判断した場合に、前記第1のオブジェクトに前記アイテムの保持動作を行わせることを特徴とする請求項4記載のオブジェクト制御プログラム。
【請求項6】
請求項1乃至5のいずれかに記載のオブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体。
【請求項7】
仮想空間における、第1のオブジェクト、第2のオブジェクト、及び、アイテムの動作をそれぞれ制御する動作制御手段と、
前記動作制御部が第1のオブジェクトにアイテムを保持させた際に、前記第1のオブジェクトを識別する第1オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶するアイテム・オブジェクト記憶手段と、
前記仮想空間において、前記アイテムと第2のオブジェクトとが衝突したか否かを判定する衝突判定手段と、を有し、
前記動作制御手段は、前記衝突判定手段が前記アイテムと前記第2のオブジェクトが衝突したと判定した場合に、前記アイテム・オブジェクト記憶手段から前記アイテム識別情報に関連付けて記憶された前記第1オブジェクト識別情報を取得し、該第1オブジェクト識別情報に基づいて、前記第2のオブジェクトに所定の動作を行わせることを特徴とするオブジェクト制御装置。
【請求項8】
仮想空間における、第1のオブジェクト、第2のオブジェクト、及び、アイテムの動作をそれぞれ制御し、
前記動作制御部が第1のオブジェクトにアイテムを保持させた際に、前記第1のオブジェクトを識別する第1オブジェクト識別情報と、前記アイテムを識別するアイテム識別情報とを関連付けて記憶し、
前記仮想空間において、前記アイテムと第2のオブジェクトとが衝突したか否かを判定し、
前記アイテムと前記第2のオブジェクトが衝突したと判定した場合に、前記アイテム識別情報に関連付けて記憶された前記第1オブジェクト識別情報を取得し、該第1オブジェクト識別情報に基づいて、前記第2のオブジェクトに所定の動作を行わせることを特徴とするオブジェクト制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−208(P2013−208A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−132040(P2011−132040)
【出願日】平成23年6月14日(2011.6.14)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】