説明

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

【課題】仮想空間においてキャラクターを興味対象に向かって移動する場合において、興味対象の方向を向きつつ移動させたい場合がある。
【解決手段】オブジェクト制御プログラムであって、興味対象の位置情報を取得する興味対象特定手段、前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、前記障害物判定手段が前記障害物が存在すると判定してからの時間を計数する時間計数手段、前記時間計数手段により計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持する保持手段、前記所定時間経過前は、前記興味対象特定手段により取得された位置情報に基づいて、前記時間経過後は、前記保持手段に保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段、としてコンピュータを機能させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクト制御プログラム、オブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体、オブジェクト制御装置、オブジェクト制御方法に関する。
【背景技術】
【0002】
キャラクターが、興味対象を追跡するゲームプログラムが知られている。具体的には、例えば、仮想空間において、当該キャラクターが興味対象を追跡し、当該興味対象の位置まで移動した場合には、当該興味対象に対して所定の動作を行わせる等である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
この場合において、当該キャラクターが、人間や動物等のキャラクターに相当する場合には、興味対象に向かって移動する場合において、当該キャラクターの顔や頭部等を興味対象の方向を向かせつつ移動させたい場合がある。また、当該興味対象が仮想空間に配置された壁の後ろ等に移動した場合において、所定の場合には、壁の後ろ等に移動した興味対象の位置を推測して当該方向を向かせた方がより自然な動きを表現できる場合がある。
【0004】
本発明は、上記課題に鑑みて、仮想空間において、オブジェクトを構成する部位の一部、例えば、頭部や顔等が興味対象に向くように制御するとともに、当該興味対象が壁の後ろ側等に移動した場合においても、当該オブジェクトにより自然な動きを表現することのできるオブジェクト制御プログラム、オブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体、オブジェクト制御装置、オブジェクト制御方法を実現することを目的とする。
【課題を解決するための手段】
【0005】
(1)本発明のオブジェクト制御プログラムは、仮想空間における興味対象を特定し、該興味対象の位置情報を取得する興味対象特定手段、前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、前記障害物判定手段が前記障害物が存在すると判定してからの時間を計数する時間計数手段、前記時間計数手段により計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持する保持手段、及び、前記所定時間経過前は、前記興味対象特定手段により取得された位置情報に基づいて、前記時間経過後は、前記保持手段に保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段、としてコンピュータを機能させることを特徴とする。
【0006】
(2)上記(1)に記載のオブジェクト制御プログラムにおいて、前記オブジェクト動作制御手段は、前記所定時間経過後、前記判定手段が障害物オブジェクトが存在しないと判定した場合には、前記興味対象特定手段により取得される、前記判定手段が障害物オブジェクトが存在しないと判定した際の、興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、ことを特徴とする。
【0007】
(3)上記(1)または(2)に記載のオブジェクト制御プログラムにおいて、前記オブジェクト動作制御手段は、前記所定の期間経過後、前記興味対象の音の発生処理が行われた場合には、前記興味対象特定手段により取得される、前記興味対象の音の発生処理が行われた際の、前記興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、ことを特徴とする。
【0008】
(4)上記(1)乃至(3)のいずれかに記載のオブジェクト制御プログラムにおいて、前記障害物判定手段は、前記興味対象の位置情報と、前記オブジェクトの位置情報と、前記障害物の位置情報とに基づいて、判定することを特徴とする。
【0009】
(5)上記(4)に記載のオブジェクト制御プログラムにおいて、前記障害物判定手段は、前記興味対象と前記オブジェクトとを結んだ線分の間に、前記障害物が存在する場合には、前記障害物が存在すると判定することを特徴とする。
【0010】
(6)上記(1)乃至(5)のいずれかに記載のオブジェクト制御プログラムにおいて、前記オブジェクトの一部を構成する部位は、前記オブジェクトの頭部であり、前記オブジェクト動作制御手段は、前記所定時間経過前は、前記頭部が前記興味対象の方向を向くように制御することを特徴とする。
【0011】
(7)上記(6)に記載のオブジェクト制御プログラムにおいて、前記オブジェクト動作制御手段は、前記時間経過後は、前記頭部が、前記保持手段に保持された興味対象の位置情報で示される方向を向くように制御することを特徴とする。
【0012】
(8)本発明のオブジェクト制御装置は、仮想空間における興味対象を特定し、該興味対象の位置情報を取得する興味対象特定手段と、前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段と、前記障害物判定手段が前記障害物が存在すると判定してからの時間を計数する時間計数手段と、前記時間計数手段により計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持する保持手段と、前記所定時間経過前は、前記興味対象特定手段により取得された位置情報に基づいて、前記時間経過後は、前記保持手段に保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段と、を含むことを特徴とする。
【0013】
(9)本発明のオブジェクト制御方法は、仮想空間における興味対象を特定し、該興味対象の位置情報を取得し、前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定し、前記障害物が存在すると判定してからの時間を計数し、前記計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持し、前記所定時間経過前は、前記取得された位置情報に基づいて、前記所定時間経過後は、前記保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、ことを特徴とする。
【0014】
(10)本発明のオブジェクト制御プログラムは、仮想空間における1または複数の興味対象を特定し、該1または複数の興味対象の位置情報を取得する興味対象特定手段、前記仮想空間において、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、前記障害物判定手段が、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数する時間計数手段、前記時間計数手段により計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する保持手段と、を含むことを特徴とする。
【0015】
(11)上記(10)に記載のオブジェクト制御プログラムにおいて、前記所定の場合は、前記各所定期間経過後、障害物判定手段が、前記各興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定した場合を含むことを特徴とする。
【0016】
(12)上記(10)または(11)に記載のオブジェクト制御プログラムにおいて、前記所定の場合は、前記所定の期間経過後、前記各興味対象の音の発生処理が行われた場合を含むことを特徴とする。
【0017】
(13)上記(10)乃至(12)のいずれかに記載のオブジェクト制御プログラムにおいて、前記オブジェクト制御プログラムは、更に、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段として、コンピュータを機能させ、前記興味対象特定手段は、前記各興味対象のうち、該各興味対象に関連付けられた優先順位情報が最も高い優先興味対象を特定し、前記オブジェクト動作制御手段は、前記優先興味対象の現在の位置情報または前記保持手段に保持された前記優先興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする。
【0018】
(14)上記(13)に記載のオブジェクト制御プログラムにおいて、前記オブジェクト動作制御手段は、前記優先興味対象の位置情報が前記保持手段に保持されている場合には、該保持手段に保持された前記優先興味対象の位置情報に基づいて前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする。
【0019】
(15)上記(13)または(14)に記載のオブジェクト制御プログラムにおいて、前記オブジェクト動作制御手段は、前記優先興味対象の位置情報が前記保持手段に保持されていない場合には、前記優先興味対象の現在の位置情報に基づいて前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする。
【0020】
(16)上記(1)乃至(7)及び上記(10)乃至(15)のいずれかに記載のオブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体であることを特徴とする。
【0021】
(17)オブジェクト制御装置であって、仮想空間における1または複数の興味対象を特定し、該1または複数の興味対象の位置情報を取得する興味対象特定手段と、前記仮想空間において、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段と、前記障害物判定手段が、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数する時間計数手段と、前記時間計数手段により計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する保持手段と、を含むことを特徴とする。
【0022】
(18)オブジェクト制御方法であって、仮想空間における1または複数の興味対象を特定し、該1または複数の興味対象の位置情報を取得し、前記仮想空間において、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定し、前記障害物判定手段が、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数し、前記計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する、ことを特徴とする。
【図面の簡単な説明】
【0023】
【図1】本発明の実施の形態におけるオブジェクト制御装置の構成の概要について説明するための図である。
【図2】図1に示したオブジェクト制御装置の制御部及び記憶部等で実現される機能的な構成について説明するための図である。
【図3】本実施の形態における仮想空間の一例を示す図である。
【図4】図1に示した動作制御部の機能的構成について説明するための図である。
【図5】本実施の形態におけるAVD情報の記憶形式の一例を示す図である。
【図6】本実施の形態におけるAVD情報の一例について説明するための図である。
【図7】本実施の形態におけるランキング情報の記憶形式の一例を示す図である。
【図8A】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図8B】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図8C】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図8D】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図8E】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図8F】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図8G】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図8H】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図8I】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図9】本実施の形態におけるバウンディングボックスの一例について説明するための図である。
【図10】本実施の形態における代理ポイント取得処理の一例について説明するための図である。
【図11】本実施の形態におけるオブジェクト制御装置のフローの概要について説明するための図である。
【図12】本実施の形態におけるオブジェクト制御装置のフローの概要について説明するための図である。
【図13】本実施の形態におけるオブジェクト制御装置のフローの概要について説明するための図である。
【図14】本実施の形態におけるオブジェクト制御装置のフローの概要について説明するための図である。
【図15】非操作オブジェクトを構成する一部の部位の方向を制御する処理を実現するための機能的な構成について説明するための図である。
【図16A】非操作オブジェクトを構成する一部の部位の方向を制御する処理の一例を説明するための図である。
【図16B】非操作オブジェクトを構成する一部の部位の方向を制御する処理の一例を説明するための図である。
【図16C】非操作オブジェクトを構成する一部の部位の方向を制御する処理の一例を説明するための図である。
【図16D】非操作オブジェクトを構成する一部の部位の方向を制御する処理の一例を説明するための図である。
【図16E】非操作オブジェクトを構成する一部の部位の方向を制御する処理の一例を説明するための図である。
【図17】非操作オブジェクトを構成する一部の部位の方向を制御する処理のフローの概要を説明するための図である。
【図18】非操作オブジェクトを構成する一部の部位の方向を制御する処理のフローの概要を説明するための図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
【0025】
図1は、本発明の実施の形態におけるオブジェクト制御装置の構成の概要について説明するための図である。図1に示すように、オブジェクト制御装置100は、例えば、CPUやメモリ等で構成されるコンピュータで構成され、例えば、制御部101、記憶部102、通信部103、操作部104、表示部105を有する。なお、制御部101、記憶部102、通信部103、操作部104、表示部105は、内部バス106により互いに接続される。
【0026】
制御部101は、例えば、CPU、MPU等であって、記憶部102に格納されたプログラムに従って動作する。記憶部102は、例えば、ROMやRAM、ハードディスク等の情報記録媒体で構成され、制御部101によって実行されるプログラムを保持する情報記録媒体である。
【0027】
記憶部102は、制御部101のワークメモリとしても動作する。なお、当該プログラムは、例えば、ネットワーク(図示なし)を介して、ダウンロードされて提供されてもよいし、または、CD−ROMやDVD−ROM等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。
【0028】
通信部103は、当該オブジェクト制御装置100を、ネットワーク(図示なし)を介して、他の端末装置(図示なし)やデータベース(図示なし)等と接続する。操作部104は、例えば、キーボード、マウス、または、コントローラ等で構成され、ユーザの指示操作に応じて、当該指示操作の内容を制御部101に出力する。表示部105は、例えば、液晶ディスプレイ、有機ELディスプレイ等であって、制御部101からの指示に従い、情報を表示する。なお、上記オブジェクト制御装置100の構成は、一例であってこれに限定されるものではない。例えば、上記端末装置から、ネットワークを介して、ユーザの指示操作がオブジェクト制御装置100に入力されるように構成してもよい。
【0029】
図2は、図1に示したオブジェクト制御装置の制御部及び記憶部等で実現される機能的な構成について説明するための図である。図2に示すように、オブジェクト制御装置100は、機能的に、動作制御部201、空間DB202、空間情報生成部203、興味対象特定部204、AVD情報取得部205、ランキング情報記憶部206、AC位置情報取得部207、エリア分割部208、最近傍エッジ決定部209、レイキャスト判定部210、最寄りエッジ取得部211、AP展開部212、スペースチェック判定部213、AP取得部214、到達判定部215、最短エッジ取得部216、AP作成部217、代理ポイント取得部218、AVD情報記憶部219を含む。
【0030】
なお、下記においては、説明の簡略化のために、当該オブジェクト制御装置100で生成される仮想空間が図3に示した場合であって、例えば、非操作オブジェクトを興味対象に向かって移動させる場合を例として説明する。図3は、仮想空間の一例を示す図である。図3に示すように、操作オブジェクト301、非操作オブジェクト302、興味対象303、壁304、ウェイコリジョン305等が仮想空間に表される。ここで、操作オブジェクトは、例えば、ユーザが操作するキャラクター等に相当し、非操作オブジェクトは、例えば、敵キャラクター等、ユーザの操作対象でないキャラクター等に相当する。また、興味対象は、例えば、キャラクターや敵キャラクター等が保持または使用等行うアイテムに相当する。また、壁やウェイコリジョンは敵キャラクター等に対する障害となるオブジェクトに相当するが詳細には後述する。
【0031】
当該仮想空間において、操作オブジェクト301、非操作オブジェクト302、興味対象303の移動や動作等は、動作制御部201により行われる。具体的には、動作制御部201は、図4に示すように、操作オブジェクト動作制御部401、非操作オブジェクト動作制御部402、興味対象動作制御部403を有する。
【0032】
操作オブジェクト動作制御部401は、操作部104に入力される操作情報に応じて、操作オブジェクトを移動、動作させる。
【0033】
非操作オブジェクト動作制御部402は、ユーザの操作対象でないオブジェクトである非操作オブジェクトを移動、動作させる。具体的には、例えば、図3に示した場合、非操作オブジェクト動作制御部402は、非操作オブジェクト302を、仮想空間上に配置されたノード306、307、308とエッジ309、310を含んで構成されるパスに基づいて、移動させる。つまり、興味対象303に向かって非操作オブジェクト302を移動させる場合、エッジ309からエッジ310へ移動させる等である。ここで、非操作オブジェクトは、例えば、エッジ両端点にいわゆるベジェ曲線等を適用して、非操作オブジェクトが当該ベジェ曲線に沿って移動するように構成してもよい。また、当該パスは、実際に表示部105等に表示される仮想空間には表示されないように構成される。また、当該ノードやエッジ等の位置を示す情報は、例えば、空間DB202に保持される。なお、非操作オブジェクトのその他の移動や動作等の詳細については後述する。
【0034】
興味対象動作制御部403は、仮想空間において、興味対象の表示や移動を行う。具体的には、例えば、当該興味対象の位置情報や画像情報は、空間DB202に保持されており、当該位置情報等に基づいて、興味対象動作制御部403は、興味対象の表示等を行う。
【0035】
空間情報生成部203は、仮想空間を表す画像情報を生成する。具体的には、例えば、仮想空間における壁等の背景、操作オブジェクト、非操作オブジェクト、興味対象の位置情報や画像情報が、空間DB202に保持されており、当該壁等の位置情報や画像情報に基づいて、仮想空間を表す画像情報を生成する。なお、空間DB202に記憶されている操作オブジェクト、非操作オブジェクト、興味対象等の位置情報は、例えば、動作制御部201により、操作オブジェクト等の移動等に伴い、更新される。また、当該画像情報は、例えば、表示部105に表示されてもよいし、ネットワークを介して送信され、当該ネットワークに接続された端末装置の表示部(図示なし)等に表示されてもよい。
【0036】
また、空間情報生成部203は、同様にウェイコリジョン等を仮想空間に生成する。ここで、ウェイコリジョンとは、例えば、実際には表示されない、いわば見えない壁等に相当するものであって、表示される仮想空間に表される壁等に沿って所定の距離に配置される。非操作オブジェクト動作制御部402は、例えば、当該ウェイコリジョンを非操作オブジェクトに対する障害物とみなし、非操作オブジェクトを当該ウェイコリジョンより壁側等には移動させない。また、当該ウェイコリジョンは、オブジェクトのサイズ等をあらかじめ考慮して、壁等から所定の距離に配置されるよう、位置情報等が設定されている。よって、非操作オブジェクト動作制御部402が、非操作オブジェクトを壁にめり込ませる等の動作を防止することができる。
【0037】
以上の前提の下、まず、主に、後述する最寄りエッジ情報を取得する処理において実現される機能構成について説明する。
【0038】
興味対象特定部204は、所定の基準に応じて、非操作オブジェクトの興味対象を特定し、当該対象オブジェクトの興味対象識別情報(興味対象ID)及びその位置情報を取得する。具体的には、例えば、当該興味対象の特定は、動作制御部201または空間DB202からの非操作オブジェクト及び興味対象の位置情報に基づいて、仮想空間においてオブジェクトに最も近い位置に存在する興味対象を特定し、当該興味対象ID及びその位置情報を取得するように構成してもよい。
【0039】
また、例えば、非操作オブジェクトが動物等を表す場合にはその視界に入る興味対象のうちから、より近い位置に存在する興味対象を特定するように構成してもよい。更に、興味対象毎に点数情報が関連付けて記憶されており、当該点数情報に応じて、または、当該点数情報及び距離に応じて興味対象が特定されるように構成してもよい。なお、ここでは、図3において、興味対象特定部204が、興味対象303(興味対象識別情報(興味対象ID)、K1)を特定した場合を例として説明する。
【0040】
AVD情報取得部205は、興味対象特定部204が取得した興味対象IDに関連付けて記憶されているAVD(Approach Volume Data)情報を、その優先順位情報に基づいて、取得する。具体的には、後述する最寄りエッジが取得できなかった場合や非操作オブジェクトを移動させる目的地(AP:Approach Point)が取得できなかった場合に、次の優先順位のAVD情報を取得する。
【0041】
ここで、AVD情報とは、特定した興味対象に対して、非操作オブジェクトを移動させる目的地(以下、APと称する)の候補(以下、AP候補と称する)となる位置を表す情報に相当する。具体的には、例えば、図5に示すように各AVD情報は、それぞれAVDID、角度情報、分割数情報、AP半径情報、方向情報、AC距離情報を含む。なお、当該各AVD情報は、例えば、AVD情報記憶部219に記憶される。
【0042】
ここで、AVD情報について、図5に示したAVDID、1−1のAVD情報を例として説明する。図6に示すように、興味対象特定部204により取得された興味対象601の位置情報から、方向情報で示される(x、y、z)の方向に、AC距離情報で示される距離、2の位置にアプローチセンター(以下、ACと称する)、602を配置する。そして、ACからAP半径情報で示される半径、20の位置であって、ACから当該方向を中心として角度60°の扇形を形成する。そして、当該角度60°を分割数、3で除算した位置にAP候補群603を配置する。つまり、AVD情報は、特定された興味対象に対して配置するAP候補群の位置を求めるための情報に相当する。つまり、AC距離情報とは、興味対象とACとの距離を表す情報に相当し、AP半径情報とは、ACとAP候補との距離を表す情報に相当する。上記のようにして、各AP候補群の位置が求められる。
【0043】
なお、図6に示した各AP候補群の決定方法は、一例であって、これに限られず、その他角度180°や360°等の半円形や円形を形成し、分割数等に応じてAP候補群の位置が決定される等であってもよい。更に、その他、興味対象から所定の方向または所定の距離に位置するAP候補群が取得される限り、その他の方法を用いてもよい。
【0044】
ランキング情報記憶部206は、例えば、図7に示すように、興味対象ID毎に、優先順位情報、アクションID、AVDIDを関連付けて記憶する。ここで、アクションIDは、例えば、匂う、触る、たたく、噛む等の非操作オブジェクトに行わせる各動作を識別する情報である。また、アクションIDには、例えば、各動作に対応するモーションデータ等が関連付けられており、非操作オブジェクトは当該各モーションデータに応じた所定の動作を行う。AVD情報取得部205は、上記のように優先順位情報が高い順に、AVDIDを取得し、当該取得されたAVDIDに基づいて、AVD情報記憶部219から、対応するAVD情報を取得する。なお、各モーションデータは、角度情報等に応じて異なるデータとなるように構成してもよい。
【0045】
具体的には、例えば、AVD情報取得部205は、図7に示した場合であって、上記例のように、興味対象ID、K1が取得された場合、興味対象特定部204で取得された興味対象ID、K1に基づいて、AVDID、AVD1を取得する。そして、当該AVDID、AVD1に基づいて、AVD1−1に関連付けて記憶されているAVD情報を取得する。
【0046】
なお、図5は、AVDID、AVD1について2のAVDID(AVD1−1、AVD1−2)が記憶されている場合を示しているが、これに限られず、その他の数のAVDIDが記憶されてもよい。また、上記においては、ランキング情報記憶部206からAVDIDを取得し、当該AVDIDを介して対応するAVD情報をAVD情報記憶部219から取得する構成について説明したが、ランキング情報とAVD情報を関連付けて、1の記憶部、例えば、ランキング情報記憶部206またはAVD情報記憶部219、に記憶し、AVD情報取得部205は、当該1の記憶部から、興味対象IDに基づいて、対応するAVD情報を取得するように構成してもよい。
【0047】
AC位置情報取得部207は、興味対象特定部204が取得した興味対象の位置情報及びAVD情報取得部205が取得したAVD情報に基づいて、取得したAVD情報についてのACの位置情報を算出、取得する。具体的には、例えば、AVDID、AVD1−1に関連付けて記憶されたAC距離情報や方向情報、及び、興味対象の位置情報に基づいて、取得されたAVD情報に対応するAC位置情報を算出し、取得する。これにより、例えば、図6を用いて説明したように、ACの位置情報を算出、取得する。
【0048】
エリア分割部208は、AC位置情報取得部207で取得されたACの位置情報に基づいて、仮想空間を複数のエリアに分割する。具体的には、仮想空間に、図8Aに示すようなAC、パス801、壁802、ウェイコリジョン803が配置される場合を例として説明する。なお、例えば、ACの位置情報は、AC位置情報取得部207により取得され、パス801、壁802、ウェイコリジョン803の位置情報は空間DB202から取得されることは上述のとおりである。
【0049】
エリア分割部208は、図8Bに示すように、ACを中心に放射状に仮想空間を8分割する。なお、分割数は、一例であって、その他の数であってもよい。
【0050】
最近傍エッジ決定部209は、エリア分割部208により分割されたエリア毎にACからの距離が最も近いエッジである最近傍エッジを決定する。具体的には、例えば、最近傍エッジ決定部209は、空間DB202から各エッジの位置情報を取得し、ACの位置情報と当該位置情報に基づいて、各エッジにおけるACからの最近傍点を求め、エリア分割部208により分割された仮想空間のエリア毎の最近傍エッジを決定する。
【0051】
ここで、最近傍点とは、ACから各エッジへの垂線を引いた場合の各エッジとの交点に相当するが、当該交点がエッジの外側に存在する場合には、当該交点に近い方のエッジの端点に相当する。具体的には、例えば、図8Cに示した場合、エッジE0とACからE0への垂線との交点がエッジE0上にあり、当該交点がエリア7に属していることから、エッジE0はエリア7に属し、最近傍点を当該交点とする。一方、例えば、図8Dに示した場合には、ACからエッジE2への垂線の交点が当該エッジE2上にないので、当該交点に一番近いエッジの端点(ノード)を最近傍点とする。そして、当該最近傍点はエリア1に属していることからエッジE2は、エリア1に属すると判断する。
【0052】
また、同じエリアに複数のエッジが存在する場合には、その最近傍点がACにより近い方のエッジを最近傍エッジとする。例えば、図8Eに示したエッジE3とE5のように、2のエッジの最近傍点が同じエリアに含まれる場合には、ACからより近い方の最近傍点を有するエッジを最近傍エッジとする。つまり、図8Eに示した場合、エリア3に最近傍点が含まれるエッジは、エッジE3とエッジE5であるが、そのうちエッジE3が最近傍エッジとなる。上記のようにして、各エリアにおける最近傍エッジを決定する。図8Fはこのときの様子を示す。
【0053】
レイキャスト判定部210は、最近傍エッジ決定部209により決定された各エリアの最近傍エッジの両端点とACとの間における後述するレイキャスト判定を行う。そして、ACと当該両端点とのうちのいずれか一方の端点とのレイキャスト判定に成功すれば、当該エッジを最寄りエッジ候補として、後述する最寄りエッジ取得部211に取得させる。
【0054】
なお、全てのエリアの最近傍エッジについてのレイキャスト判定について失敗した場合には、次の優先順位情報を有するAVDIDを、AVD情報取得部205に取得させる。例えば、上記例のように、1の優先順位につき、複数のAVDID(AVDID1−1、AVDID1−2)が関連付けられている場合には、他のAVDID(上記例の場合は、AVDID1−2)についてのAVD情報を取得し、当該複数のAVDID全てにつき、上記レイキャスト判定が失敗した場合に、次のAVDID(上記例の場合、AVDID、AVD2)を取得する等である。
【0055】
ここで、レイキャスト判定とは、例えば、一方の点(この場合はエッジの両端点のうちの1の端点)と、ACとを直線で結んだ場合に、当該直線上に、非操作オブジェクトに対して障害物となるウェイコリジョンや壁が存在するか否かによって判定し、存在しない場合にはレイキャスト判定に成功したと判定し、存在しない場合には、レイキャスト判定に失敗したと判定する。
【0056】
具体的には、例えば、図8Gに示すように、エッジE0に対しては、その両端点に対してレイキャスト判定が成功するので、最寄りエッジ候補とする。また、エッジE2に対しても、一方の端点についてレイキャスト判定が成功するので、最寄りエッジ候補とする。一方、エッジE3については、ACと両端とを結ぶ直線上にウェイコリジョンが存在するので、レイキャスト判定部210はレイキャスト判定に失敗したと判定し最寄りエッジ候補とはしない。つまり、上記例の場合、最寄りエッジ候補は、エッジE0とE2となり、レイキャスト判定部210は、当該エッジE0及びE2を、最寄りエッジ取得部211に取得させる。
【0057】
最寄りエッジ取得部211は、レイキャスト判定部210から最寄りエッジ候補を示すエッジを取得し、ACから各最寄りエッジ候補の最近傍点までの距離を算出、比較し、最も距離が短い最寄りエッジ候補を、最寄りエッジとして、取得する。具体的には、例えば、図8Hに示すように、ACからエッジE0の最近傍点への距離と、ACからエッジE2の最近傍点への距離を比較すると、E0の最近傍点への距離が短いので、図8Iに示すように当該エッジE0を最寄りエッジとして取得する。なお、エッジの位置情報等は、空間DB202から取得し、当該位置情報に基づいて、上記距離等を算出する。上記のように、複数のエリアに分割して最寄りエッジを取得することで、オブジェクト制御プログラムの負荷を低減することができる。なお、上記は一例であって、エリア分割しないで、最寄りエッジを取得するよう構成してもよいことはいうまでもない。
【0058】
次に、主に、AP(非操作オブジェクトの移動の目的地に相当する)を決定する処理において実現される機能構成について説明する。AP展開部212は、最寄りエッジ取得部211が最寄りエッジを取得した場合、AVD情報取得部205で取得されたAVD情報に基づいて、対応するAP候補群の位置情報を算出、取得する。なお、当該AVD情報は、上記最寄りエッジが取得されたAVD情報に対応する。具体的には、例えば、上述のように、AVD情報に含まれる角度情報、分割数情報、AP半径情報等に基づいて、図6のように展開されたAP候補群603の位置情報を算出する。
【0059】
レイキャスト判定部210は、各AP候補とAC間においてレイキャスト判定する。また、レイキャスト判定部210は、更に、最寄りエッジの両端との間においてもレイキャスト判定する。具体的には、例えば、図6に示したAC602とAP候補603との間でレイキャスト判定するとともに、最寄りエッジ605の両端のノード606、607と各AP候補603との間でレイキャスト判定する。なお、レイキャスト判定の詳細については上記と同様である。一方、全てのAP候補についてレイキャスト判定が失敗した場合には、AVD情報取得部205に、上述のレイキャスト判定が失敗した場合と同様に、次の優先順位情報を有するAVD情報を取得させる。なお、この場合、既に上述した全てのエリアの最近傍エッジについてのレイキャスト判定について失敗したAVD情報が存在する場合には、そのAVD情報の次の優先順位情報を有するAVD情報から優先順位情報に従い取得させる。
【0060】
スペースチェック判定部213は、各AP候補とAC間、及び、最寄りエッジの両端とAC間のレイキャスト判定に成功した場合には、例えば、非操作オブジェクトについて関連付けられて記憶されているバウンディングボックスを用いてスペースチェックを行う。
【0061】
ここで、バウンディングボックス604とは、例えば、図9に示すように、非操作オブジェクト603上に配置される非操作オブジェクトが必要とするスペースに相当するボックス604である。スペースチェック判定部213は、当該バウンディングボックスが、仮想空間における壁等と干渉しない場合には、スペースチェック判定に成功したと判定し、干渉した場合には失敗したと判定する。なお、当該バウンディングボックスの形状や、大きさ、当該バウンディングボックスのオブジェクト上への配置位置等は、あらかじめ設定される。また、複数の非操作オブジェクトについて移動制御等を行う場合には、当該バウンディングボックスの形状や大きさ等については、非操作オブジェクト毎に異なるように構成してもよい。また、非操作オブジェクトに対して、当該非操作オブジェクトの形状等に応じて、形状や大きさの異なる複数のバウンディングボックスが配置されるように構成してもよい。
【0062】
AP取得部214は、スペースチェック判定部213によりスペースチェックに成功したと判定された各AP候補を取得し、当該各AP候補から非操作オブジェクトへの距離を算出する。そして、当該各AP候補からオブジェクトへの各距離を比較し、最も距離の短い距離を有するAP候補をAPとして取得する。
【0063】
非操作オブジェクト動作制御部402は、取得されたAPの位置情報が示す位置を目的地として仮想空間において非操作オブジェクトを移動させる。到達判定部215は、APと非操作オブジェクトの位置情報に基づいて、非操作オブジェクトがAPに到達したか否か判定し、到達したと判定した場合には、当該APに対応するAVDIDに関連付けて記憶されたアクションIDで識別される動作を行わせる。
【0064】
これにより、仮想空間において、興味対象の種類や当該興味対象に対して行わせる動作や障害物等の位置等に応じて、当該興味対象に対する非操作オブジェクトの目的地(AP)を設定し、当該目的地まで非操作オブジェクトを移動させて所定の動作を行わせることができる。
【0065】
次に、全てのAVDについて最寄りエッジを取得できなかった場合、または、全てのAVDについてAPを取得できなかった場合について、実現される主な機能構成について説明する。
【0066】
最短エッジ取得部216は、興味対象特定部204により取得された興味対象の位置情報と、エッジの位置情報に基づいて、特定された興味対象から一番距離の近いエッジである最短エッジのエッジIDを取得する。
【0067】
レイキャスト判定部210は、最短エッジ取得部216により取得された最短エッジの両端点と、優先順位情報が1のAVDのACとのレイキャスト判定を行う。なお、当該ACの位置情報は、例えば、上記と同様に、AC位置情報取得部207により算出、取得され、レイキャスト判定部210は、当該取得されたACの位置情報を用いて、レイキャスト判定を行う。なお、いずれか一方の端点と当該ACとの間のレイキャスト判定に成功した場合には、レイキャスト判定が成功したものとする等については上述と同様である。そして、レイキャスト判定に成功した場合には、AVDID、360のAVD情報を、AVD情報記憶部219から取得する。当該AVDID、360のAVD情報は、例えば、角度情報として360°(つまり、円形状となる)、及び、分割数情報として上記優先順位情報が1のAVD情報の分割数とは異なる分割数情報を有するものであって、その他の情報(距離情報等)については、非操作オブジェクトとウェイコリジョン等との干渉等が生じないようにあらかじめ設定される。
【0068】
AP展開部212、レイキャスト判定部210、スペースチェック判定部213、AP取得部214は、AVDID、360のAVD情報及び最短エッジに基づいて、上記APを取得する処理と同様の処理を行う。そして、APが取得された場合には、当該APを目的地として、非操作オブジェクトの移動を開始させ、当該APに到達した場合には、当該AVDIDに関連付けて記憶されている動作を行わせる。
【0069】
一方、AP作成部217は、当該AVDID、360のAVD情報を用いても、APが取得できなかった場合には、興味対象の位置に基づいて、当該最短エッジ上にAPを作成する。具体的には、例えば、興味対象の位置から最短エッジに垂線を下ろした場合の交点をAPとして作成し、当該APの位置情報を、動作制御部201にAP(ファイナルAP)として送信する。そして、同様に、当該ファイナルAPを目的地として、非操作オブジェクトの移動を開始させ、当該ファイナルAPに到達した場合には、当該AVDID、360に関連付けられて記憶されている動作を行わせる。
【0070】
これにより、全てのAVDについて最寄りエッジを取得できなかった場合、または、全てのAVDについてAPを取得できなかった場合についても、APを設定し、所定の動作を行わせることができる。
【0071】
一方、レイキャスト判定部210が、最短エッジの両端点と、上記AC(優先順位情報が1のAVDのAC)とのレイキャスト判定を行い、レイキャスト判定に失敗した場合には、代理ポイント取得部218は、最短エッジや興味対象、非操作オブジェクトの位置情報と、ウェイコリジョンの位置情報に基づいて、興味対象特定部204で特定された興味対象の位置情報の代理(代理ポイント)となる位置情報を取得する。
【0072】
具体的には、代理ポイント取得部218は、例えば、図10に示すように、非操作オブジェクトと興味対象601とを結んだ直線とウェイコリジョン305の境界線との交点の位置情報を代理ポイントの第1候補点111として取得する。また、興味対象601と最短エッジ311の両端点312、313とを結んだ直線と、ウェイコリジョン305の境界線との各交点の位置情報をそれぞれ、代理ポイントの第2及び第4候補点112、114として取得する。更に、興味対象601から最短エッジ311へ下した垂線と最短エッジとの交点の位置情報を代理ポイントの第3候補点113として取得する。そして、各候補点と上記ACとの位置情報を算出し、上記第1乃至第4の候補点111乃至114のうちから、最も上記ACから距離が短い候補点の位置情報(当該例の場合は、第3候補点113)の位置情報を抽出する。
【0073】
また、AVD情報取得部205は、例えば、代理のAVD情報、つまり、AVDID、DAのAVD情報を、AVD情報記憶部219から取得する。当該AVDID、DAのAVD情報は、例えば、非操作オブジェクトとウェイコリジョン等との干渉が生じないように、あらかじめ設定されている。具体的には、例えば、当該代理のAVD情報は、優先順位情報が1のAVD情報とAC距離が同じであって、分割数情報が異なる等である。
【0074】
AP展開部212、レイキャスト判定部210、スペースチェック判定部213、AP取得部214は、AVDID、DAのAVD情報に基づいて、上記APを取得する処理と同様の処理を行う。なお、この場合、ACの位置情報取得等については、興味対象の位置情報の代わりに、代理位置情報を用いて算出し、当該代理位置情報に基づいてAP候補群を展開等する。そして、APが取得された場合には、当該APを目的地として、非操作オブジェクトの移動を開始させ、当該APに到達した場合には、当該AVDIDに関連付けて記憶された動作を行わせる。なお、上記においては、代理のAVD情報を用いる場合について説明したが、元のAVD情報を用いるように構成してもよい。
【0075】
一方、AP作成部217は、当該AVDID、DAのAVD情報を用いても、APが取得できなかった場合には、興味対象の位置に基づいて、当該最短エッジ上にAPを作成等する点は上記と同様である。そして、同様に、当該ファイナルAPを目的地として、非操作オブジェクトの移動を開始させ、当該ファイナルAPに到達した場合には、当該AVDID、DAに関連付けられて記憶されている動作を行わせる。
【0076】
これにより、例えば、図10に示すように、興味対象がウェイコリジョンの内部にある場合(例えば、非操作オブジェクトが興味対象に到達できない場合)にも、非操作オブジェクトのAPを設定することができるとともに、非操作オブジェクトが当該APに到達した場合には非操作オブジェクトに所定の動作を行わせることができる。
【0077】
次に、オブジェクト制御装置の処理のフローについて説明する。図11乃至図14は、オブジェクト制御装置のフローの概要について説明するための図である。
【0078】
図11に示すように、興味対象特定部204は、所定の基準に応じて、非操作オブジェクトの興味対象を特定し、当該対象オブジェクトの興味対象ID及びその位置情報を取得する(S101)。AVD情報取得部205は、興味対象特定部204が取得した興味対象IDに関連付けて記憶されているAVD情報を、その優先順位情報に基づいて、取得する(S102)。
【0079】
後述するS201乃至S209で示すように、最寄りエッジを取得する最寄りエッジ取得処理を行う(S103)。具体的には、図12に示すように、まず、AC位置情報取得部207は、興味対象特定部204が取得した興味対象の位置情報及びAVD情報取得部205が取得したAVD情報に基づいて、取得したAVD情報についてのACの位置情報を算出、取得する(S201)。
【0080】
エリア分割部208は、AC位置情報取得部207で取得されたACの位置情報に基づいて、仮想空間を複数のエリアに分割する(S202)。最近傍エッジ決定部209は、エリア分割部208により分割されたエリア毎にACからの距離が最も近いエッジである最近傍エッジを決定する(S203)。
【0081】
レイキャスト判定部210は、最近傍エッジ決定部209に決定された各エリアの最近傍エッジの両端点とACとの間におけるレイキャスト判定を行う。具体的には、まず、最近傍エッジの第1の端点(第1のノード)とAC間のレイキャスト判定を行う(S204)。そして、当該レイキャスト判定に失敗した場合には、最近傍エッジの第2の端点(第2のノード)とAC間のレイキャスト判定を行う(S205)。
【0082】
そして、S204またはS205のいずれかにおいてレイキャスト判定に成功した場合には、S206に進み、最寄りエッジ取得部211に、当該最近傍エッジを識別するエッジ識別情報を、最寄りエッジ候補として取得させる(S206)。一方、S205でレイキャスト判定に失敗した場合にはS207に進む。
【0083】
次に、各エリアにおける最近傍エッジのレイキャスト判定が終了したか否かを判定する(S207)。終了していないと判定した場合には、S204に戻る。一方、終了したと判定した場合には、S208に進む。
【0084】
最寄りエッジ候補が取得されているか否かを判定する(S208)。S208で最寄りエッジが取得されていると判定した場合には、最寄りエッジ取得部211は、ACから各最寄りエッジ候補の最近傍点までの距離を算出、比較し、最も距離が短い最寄りエッジ候補を、最寄りエッジとして、取得する(S209)。そして、S104へ進む。
【0085】
一方、S208で最寄りエッジが取得されていないと判定した場合には、未処理のAVDIDが存在するか否か判定する(S210)。具体的には、例えば、特定された興味対象IDに関連付けられて記憶されている全てのAVDIDについて、最寄りエッジ取得処理が行われたか否かを判定する。未処理のAVDIDが存在すると判定した場合には、S102に進み、次の優先順位のAVD情報を取得する。一方、未処理のAVDIDが存在しないと判定した場合には、後述するS109に進む。
【0086】
S209で取得された最寄りエッジに対応するAVD情報に基づいて、AP取得処理を行う(S104)。具体的には、図13に示すように、まず、AP展開部212は、当該AVD情報に基づいて、AP候補群を展開し、各AP候補の位置情報を取得する(S301)。
【0087】
AP候補について後述する判定が行われたか否かを判定する(S302)。全てのAP候補について判定していないと判定した場合には、レイキャスト判定部210は、順にAP候補の位置情報を取得し、AP候補とAC間においてレイキャスト判定する(S303)。一方、全てのAP候補について判定したと判定した場合には、後述するS308に進む。
【0088】
一方、S303でAP候補とAC間のレイキャスト判定に成功したと判定した場合には、レイキャスト判定部210は、当該AP候補とS209で取得された最寄りエッジの第1のノードとの間においてレイキャスト判定する(S304)。
【0089】
S304のレイキャスト判定に失敗した場合には、AP候補とS209で取得された最寄りエッジの第2のノードとの間においてレイキャスト判定する(S305)。S305のレイキャスト判定に失敗したと判定した場合には、S302に戻る。
【0090】
S304またはS305でレイキャスト判定に成功した場合には、スペースチェック判定部213は、スペースチェックを行う(S306)。当該スペースチェックに失敗したと判定した場合には、S302に戻る。一方、スペースチェックに成功した場合には、AP取得部214は当該AP候補の位置情報をAP候補として登録する(S307)。次に、S302に戻る。そして、上記のように、全てのAP候補についてレイキャスト判定したと判定した場合には、AP候補が登録されているか否か判定し(S308)、登録されていると判定した場合にはS105に進み、登録されていないと判定した場合にはS109に進む。なお、上記においては1のAP候補とAC間におけるレイキャスト判定に成功する毎に当該AP候補とノード間におけるレイキャスト判定等行う処理について説明したが、これに限られず、まず全てのAP候補群及びACとのレイキャスト判定を行い、当該レイキャスト判定に成功したAP候補群について、次にノードとの間のレイキャスト判定を行う等、実質的に同一の処理である限り、異なる処理であってもよいことはいうまでもない。
【0091】
AP取得部214は、登録された各AP候補から非操作オブジェクトへの各距離を算出する。そして、当該各AP候補からオブジェクトへの各距離を比較し、最も距離の短い距離を有するAP候補を、APとして、取得する(S105)。
【0092】
非操作オブジェクト動作制御部402は、取得されたAPの位置情報が示す位置に向かってオブジェクトを移動させる(S106)。
【0093】
到達判定部215は、例えば、所定期間毎に、当該APの位置情報と非操作オブジェクトの位置情報に基づいて、非操作オブジェクトがAPに到達したか否かを判定する(S107)。そして、到達していないと判定した場合には、例えば、S101に戻り、再度上記と同様の処理を行う。一方、到達判定部215が、到達したと判定した場合には、当該APに対応するAVD情報に関連付けて記憶された動作を行わせる(S108)。
【0094】
次に、S210で未処理のAVDIDが存在しないと判定した場合、または、S303で全てのAP候補についてレイキャスト判定したと判定した場合の処理のフローについて図14を用いて説明する。
【0095】
図14に示すように、まず、最短エッジ取得部216は、興味対象特定部204により取得された興味対象の位置情報と、エッジの位置情報に基づいて、特定された興味対象から一番距離の近いエッジである最短エッジのエッジIDを取得する(S109)。
【0096】
レイキャスト判定部210は、最短エッジ取得部216により取得された最短エッジの両端点と、優先順位情報が1のAVDのACとのレイキャスト判定を行う(S110)。いずれか一方の端点と当該ACとの間のレイキャスト判定に成功した場合には、レイキャスト判定が成功したものとする等については上述と同様であるので、詳細なフローについては説明を省略する。
【0097】
S110でレイキャスト判定に成功した場合には、AVDID、360のAVD情報を、AVD情報記憶部219から取得する(S111)。S111で取得されたAVDID、360のAVD情報及びS110で取得された最短エッジに基づいて、S104のAP取得処理と同様の処理を行う(S112)。そして、AP候補が取得されたか否かを判定する(S113)。S112でAP候補が取得されたと判定した場合には、S105に進む。
【0098】
一方、S110で、レイキャスト判定に失敗したと判定した場合には、AVD情報取得部205は、AVDID、DAのAVD情報(代理ボリューム)を、例えば、AVD情報記憶部219から取得する(S114)。
【0099】
代理ポイント取得部218は、上述のように最短エッジや興味対象、非操作オブジェクトの位置情報と、ウェイコリジョンの位置情報に基づいて、興味対象特定部204で特定された興味対象の位置情報の代理(代理ポイント)となる位置情報(代理位置情報)を取得する(S115)。
【0100】
S114で取得されたAVDID、DAのAVD情報及びS110で取得された最短エッジに基づいて、S104のAP取得処理と同様の処理を行う(S116)。なお、この場合、ACの位置情報の取得については、興味対象の位置情報の代わりに、代理位置情報を用いてACの位置情報を算出し、当該ACの位置情報に基づいてAP候補群を展開等する。そして、AP候補が取得されたか否かを判定する(S117)。S116でAP候補が取得されたと判定した場合には、S105に進む。
【0101】
一方、S112またはS116でAP候補が取得されなかったと判定された場合には、AP作成部217は、興味対象の位置に基づいて、当該最短エッジ上にAPを作成する(S118)。そして、S105に進み、AP取得部214は、当該作成されたAPをAPとして、取得する。なお、上記処理のフローは、例えば、所定フレーム期間毎に行われるように構成してもよいし、上記処理のフローには、ある程度の時間を要するため、処理が一巡する毎に上記処理のフローが行われるように構成してもよい。つまり、例えば、本実施の形態によれば、移動に伴い、興味対象が特定され目的地が定められることから、移動に応じて目的地が変化することとなる。
【0102】
なお、上記図11乃至図14で示した処理のフローは一例であって、種々の変形が可能である。例えば、上記実施の形態で示した構成と実質的に同一のフロー、同一の作用効果を奏するフロー又は同一の目的を達成することができるフローで置き換えることができる。
【0103】
また、本発明は、上記実施の形態に限定されるものではなく、種々の変形が可能である。例えば、上記実施の形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。
【0104】
具体的には、例えば、操作オブジェクト、非操作オブジェクト、興味対象は、上記で示した数に限られず、それぞれ2以上の複数であってもよい。この場合、複数の操作オブジェクトは、1または複数のユーザにより操作されてもよいし、複数の非操作オブジェクトは、互いに独立して非操作オブジェクト制御部により制御されてもよい。また、上記においては、操作オブジェクトと非操作オブジェクトとを用いて説明したが、操作オブジェクトは、必ずしもユーザの指示に基づいて動作する必要はなく、上記非操作オブジェクトと同様に、ユーザの指示によらずに、あらかじめ設定されたプログラム等に応じて動作するように構成してもよい。
【0105】
なお、特許請求の範囲に記載の目的地候補情報記憶手段は、例えば、ランキング情報記憶部206及びAVD情報記憶部219を含み、目的地情報取得手段は、例えば、AP展開部212、スペースチェック判定部213、AP取得部214を含み、経路情報特定手段は、最寄りエッジ取得部211を含む。
【0106】
ここで、上記に加えて、非操作オブジェクトを構成する一部の部位、例えば、頭部や顔、の方向を制御する場合について説明する。
【0107】
図15は、非操作オブジェクトを構成する一部の部位の方向を制御する処理を行う際におけるオブジェクト制御装置の機能的な構成について説明するための図である。図15に示すように、オブジェクト制御装置100は、図2に示した構成に加えて、時間計数部151、時間判定部152、及び、保持部153を有する。なお、下記においては、説明の簡略化のため、当該オブジェクト制御装置100において実現される仮想空間が図16に示した場合を例として説明する。
【0108】
ここで、図16A乃至図16Eに示すように、非操作オブジェクト161は、非操作オブジェクト161を構成する部位の一部として、目等を含む顔や頭部162を有する。また、仮想空間において、非操作オブジェクト161に対する障害物としての壁163及び興味対象164が配置される。なお、下記において、上記と同様である点については説明を省略する。
【0109】
興味対象動作制御部403は、例えば、あらかじめ設定された経路に応じて、興味対象164を移動させる。具体的には、例えば、図16A乃至図16Eに示すように、興味対象動作制御部403は、図中矢印の方向(図中下方)に向かって興味対象164を移動させる等である。なお、当該経路は、例えば、空間DB202に記憶される等については上記と同様である。なお、図16A乃至図16Eにおいては、1の興味対象164のみを示しているが、複数の興味対象をそれぞれ移動等させる構成としてもよい。
【0110】
興味対象特定部204は、所定の基準に応じて、非操作オブジェクトの興味対象として、1または複数の興味対象を特定するとともに、当該特定された興味対象のうち、興味の優先度を示す興味レベルが最も高い(興味レベルが1)興味対象を特定する。なお、ここで、当該興味レベルは、例えば、各興味対象の位置情報や非操作オブジェクトの位置情報やその他の興味対象に関連付けられた点数等に基づいて決定される動的な情報であり、興味対象を識別する情報とともに、空間DB202に保持される。また、興味対象特定部204は、例えば、所定期間毎に、当該特定された興味対象の位置情報を取得する。具体的には、例えば、図16A乃至図16Eに示した場合、興味対象特定部204は、所定期間毎に興味対象164の位置情報を取得する。なお、図16A乃至図16Eにおいては、興味対象として興味対象164が特定されるとともに、興味レベルが1の興味対象として興味対象164が特定されたものとする。
【0111】
レイキャスト判定部210は、例えば、興味対象特定部204が特定した興味対象の位置情報及び非操作オブジェクトの位置情報を空間DB202から取得するとともに、壁等の非操作オブジェクトに対する障害物を形成する障害物の位置情報を取得する。そして、レイキャスト判定部210は、当該興味対象、非操作オブジェクト、及び、障害物の位置情報に基づいて、当該興味対象と当該非操作オブジェクトとのレイキャスト判定を行う。具体的には、興味対象と非操作オブジェクトとを結んだ線分上に障害物が存在するか否かを判定し、障害物が存在しない場合には、レイキャスト判定に成功したと判定する。なお、この場合において、非操作オブジェクトの位置情報としては、非操作オブジェクトを構成する一部の部位(例えば、頭部)の位置情報を用いてもよい。なお、複数の興味対象が特定されている場合には、各興味対象について、上述のレイキャスト判定が行われる。
【0112】
具体的には、レイキャスト判定部210は、例えば、図16Aに示した場合、興味対象164と非操作オブジェクト161とを結んだ線分165上に、壁163等は存在しないことから、レイキャスト判定に成功したと判定する。一方、レイキャスト判定部210は、例えば、図16Bに示した場合、興味対象164と非操作オブジェクト161とを結んだ線分166上に、壁163が存在することから、レイキャスト判定に失敗したと判定する。
【0113】
時間計数部151は、1または複数の興味対象と非操作オブジェクトとの間に、障害物が存在したと判定した場合に時間の計数を開始する。具体的には、上記例の場合、興味対象164が、図16Bに示した位置にまで移動した際に、時間の計数を開始する。そして、時間判定部152は、時間計数部151に計数される時間が所定時間に達したか否か判定する。時間判定部152が当該所定時間に達したと判定した場合には、保持部153は、そのときの興味対象の位置情報を取得し保持する。なお、当該興味対象の位置情報は、例えば、興味対象動作制御部403や空間DB202から取得される。また、当該所定時間は、障害物の種類や興味対象の種類等に応じて異なる値を設定してもよい。また、保持部153は、記憶部102に含まれるように構成してもよい。
【0114】
具体的には、例えば、図16Cに示した位置167(注視位置)が、図16Bに示した興味対象164の位置から所定時間経過後の興味対象164の位置であるとすると、保持部153は、注視位置167の位置情報を取得し保持する。また、保持部153は、レイキャスト判定部210が、当該興味対象について、レイキャスト判定に再び成功したと判定した場合や、興味対象動作制御部403が当該興味対象に所定の処理、例えば、音を出力させる処理、を行わせる場合には、保持された当該興味対象の位置情報を削除する。具体的には、例えば、図16Dに示したように、レイキャスト判定に再び成功した場合に、保持部153に保持されている当該興味対象164の位置情報を削除する。また、例えば、図16Eに示した位置において、興味対象164が音を発したとすると、保持部153に保持されている興味対象164の位置情報を削除する。なお、複数の興味対象が特定されている場合には、各興味対象について、上述の処理、つまり、時間計数の開始や所定時間経過後の位置情報の取得や削除が行われる。
【0115】
非操作オブジェクト動作制御部402は、後述する保持部153に上記興味レベルが1の興味対象が特定されているか否かを判定し、当該判定結果に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する。具体的には、興味レベル1の興味対象の位置情報が保持部153に保持されていると判定した場合には、当該保持部153に保持された興味レベルが1の位置情報を取得し、当該位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する。例えば、上記例の場合、図16A及び図16Bに示した場合については、興味対象164(興味レベル1の興味対象)の位置情報が保持部153に保持されていないため、非操作オブジェクト161の一部を構成する部位である顔または頭部162が、興味対象164の方向を向くように制御する。言い換えれば、興味対象164の移動に応じて、興味対象164の方向に顔または頭部162が回転等して追跡するように制御する。
【0116】
一方、興味レベル1の興味対象の位置情報が当該保持部153に保持されていると判定した場合には、現在の興味レベル1の興味対象の位置情報を、例えば、空間DB202から取得し、当該位置情報に基づいて、非操作オブジェクト161の一部を構成する部位の方向を制御する。例えば、上記例の場合、図16Cに示した場合には、上記のように興味対象164について注視位置167の位置情報が保持部153に保持されていることから、当該注視位置167の方向を非操作オブジェクト161の顔または頭部162が向くように(注視するように)非操作オブジェクト161の顔または頭部162を制御する。そして、図16Dに示すように、再度興味対象164と非操作オブジェクト161とのレイキャスト判定に成功した場合には、保持部153に保持された当該興味対象164の位置情報が削除されることから、非操作オブジェクト動作制御部402は、興味対象164の現在の位置情報に基づいて、非操作オブジェクト161の顔または頭部162を制御する。つまり、非操作オブジェクト161の顔または頭部162は、興味対象164を追跡するように回転等する。また、図16Eに示すように、再度興味対象164と非操作オブジェクト161とのレイキャスト判定に成功しない場合であっても、興味対象164が音を発する等の所定の処理を行う場合には、同様に、非操作オブジェクト動作制御部402は、興味対象164の現在の位置情報に基づいて、非操作オブジェクト161の顔または頭部162を制御する。言い換えれば、壁163越しに、興味対象164の移動に応じて、非操作オブジェクト161の顔または頭部162が興味対象164の方向を向くように制御する。
【0117】
つまり、動作制御部201に含まれる非操作オブジェクト動作制御部402は、上記のように非操作オブジェクトの移動等の動作制御に加え、時間計数部151に計数された時間が所定時間に達する前は、興味対象特定部204により取得された興味対象のうち非操作オブジェクトの興味の優先順位が最も高い興味対象(興味レベルが1の興味対象)の位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する。具体的には、例えば、図16A及び図16Bに示すように、非操作オブジェクト161が動物等を表す場合においては、当該非操作オブジェクト161の顔または頭部162が当該興味対象164の方向を向くように制御する。つまり、興味対象164の移動に応じて、非操作オブジェクト161の顔または頭部162が当該興味対象164を追跡するように回転等させる。
【0118】
一方、時間計数部151に計数された時間が所定時間に達した後は、非操作オブジェクト動作制御部402は、保持部153により保持された興味レベルが1の興味対象の位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する。具体的には、例えば、図16Cに示すように、当該非操作オブジェクト161の顔または頭部162が、保持部153により保持された興味レベルが1の興味対象164の位置情報で示される位置(注視位置167)の方向を向くように制御する(注視制御)。ここで、保持された興味対象の位置情報で示される位置とは、上述のように時間計数部151に計数された時間が所定時間に達した際における興味レベルが1の興味対象の位置に相当する。
【0119】
そして、当該注視制御は、再び興味対象が、非操作オブジェクトから見えるようになったとき、または、興味対象が音を発生する処理を行ったときまで継続して行われる。具体的には、例えば、レイキャスト判定部210は、時間計数部151に計数された時間が所定時間に達した後においても、所定期間毎に非操作オブジェクトと興味対象との間における上述のレイキャスト判定を行う。そして、例えば、図16Dに示すように、レイキャスト判定に成功した場合には、非操作オブジェクト動作制御部402は、当該注視制御を解除し、その後は、興味対象164の位置情報に基づいて、非操作オブジェクト161の一部を構成する部位の方向を制御する等上述の処理を行う。
【0120】
また、興味対象動作制御部403が興味対象に所定の処理、例えば、音を発する処理を行わせる場合には、同様に、非操作オブジェクト動作制御部402は、当該注視制御を解除し、その後は、興味対象の位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する等の上述した処理を行う。つまり、例えば、図16Eに示した興味対象164の位置において、当該興味対象164が音を出力したとすると、非操作オブジェクト動作制御部402は、非操作オブジェクト161の顔または頭部162が、注視位置167から、音を発した際の興味対象の位置の方向を向くように制御する。その後は、その後の興味対象164の位置情報に応じて、非操作オブジェクト161の一部を構成する顔または頭部162の方向を制御する。つまり、この場合、音を発した後は、顔または頭部162は、壁163越しに興味対象164の方向を向くこととなる。
【0121】
次に、図17、図18を用いて、非操作オブジェクトを構成する一部の部位の方向を制御する処理のフローの概要について説明する。なお、下記においても、説明の簡略化のため、図16A乃至図16Eに示した場合を例として説明する。
【0122】
図17に示すように、興味対象特定部204は、興味対象特定部204は、所定の基準に応じて、非操作オブジェクトの1または複数の興味対象を特定する(S401)。なお、複数の興味対象を特定する場合には、興味対象毎に下記の処理が行われる。
【0123】
レイキャスト判定部210は、所定期間毎に、当該興味対象、非操作オブジェクト、及び、障害物の位置情報に基づいて、当該興味対象と当該非操作オブジェクトとのレイキャスト判定を行う(S402)。
【0124】
そして、レイキャスト判定に成功した場合、つまり、例えば、図16Aに示す場合のように、当該興味対象と当該非操作オブジェクトとの間に障害物が存在しないと判定した場合には、S402に戻る。
【0125】
一方、S403でレイキャスト判定に失敗したと判定した場合、つまり、例えば、図16Cに示す場合のように、興味対象と非操作オブジェクトとの間に障害物が存在したと判定した場合、時間計数部151は、時間の計数を開始する(S403)。次に、時間判定部152は、時間計数部151に計数される時間が所定時間に達したか否かを判定し(S404)、所定時間に達したと判定した場合には、保持部153は、そのときの興味対象の位置情報(注視位置情報)を取得し保持する(S405)。例えば、図16Cの注視位置167にまで興味対象164が移動した際に所定時間に達したとすると、当該注視位置167の位置情報を取得し保持する。一方、所定時間に達していないと判定した場合には、S404に戻る。なお、S403で時間計数が開始されてからS404で所定時間経過するまでの間にレイキャスト判定に成功した場合(例えば、壁163の長さが短く、非操作オブジェクト161から見て壁163に興味対象164が隠れている状態が所定時間に達しない場合)においては、S402に戻る。
【0126】
レイキャスト判定部210は、所定期間毎に非操作オブジェクトと興味対象との間における上述のレイキャスト判定を行う(S406)。そして、S406でレイキャスト判定に成功したと判定した場合には、後述するS408に進む。
【0127】
一方、S406でレイキャスト判定に失敗したと判定した場合には、S407に進み、興味対象動作制御部403が興味対象に所定の処理、例えば、音を出力させる処理、を行わせるか否かを判定する(S407)。そして、興味対象動作制御部403が音を出力させる処理を行わせると判定した場合には、後述するS408に進む。一方、興味対象動作制御部403が音を出力させる処理を行わせていないと判定した場合には、S406に戻る。
【0128】
S406でレイキャスト判定に成功したと判定した場合、及び、S407で興味対象動作制御部403が音を出力させる処理を行わせると判定した場合には、保持部153に保持されている興味対象の位置情報を削除する(S408)。なお、上記のように、S401で非操作オブジェクトに対して複数の興味対象を特定する場合には、S402乃至S408の処理は、興味対象毎に行われる。この場合、保持部153には、例えば、各興味対象を識別する識別情報毎に、対応する各注視位置情報が保持され、また、削除される。
【0129】
次に、非操作オブジェクトを構成する一部の部位の方向を制御する処理のフローについて、非操作オブジェクト制御部402の処理のフローを主として説明する。なお、上記と同様に、説明の簡略化のため、図16A乃至図16Eに示した場合を例として説明する。
【0130】
図18に示すように、上記非操作オブジェクトの興味対象のうち、非操作オブジェクトの興味の優先度を示す興味レベルが最も高い(興味レベルが1)の興味対象を特定する(S501)。次に、非操作オブジェクト動作制御部402は、上記興味レベルが1の興味対象の位置情報が、保持部153に保持されているか否か判定する(S502)。興味レベル1の興味対象の位置情報が保持部153に保持されていると判定した場合には、当該保持部153に保持された興味レベルが1の位置情報を取得し、当該位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する(S503)。この場合、上記と同様に、例えば、図16Eに示すように、非操作オブジェクト動作制御部402は、非操作オブジェクト161の顔または頭部162が注視位置167の方向を向くように制御する。一方、興味レベル1の興味対象の位置情報が当該保持部153に保持されていないと判定した場合には、現在の興味レベル1の興味対象の位置情報を、例えば、空間DB202から取得し、当該位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する(S504)。上記と同様にこの場合、例えば、図16A、図16D、及び図16Eに示すように、非操作オブジェクト動作制御部402は、非操作オブジェクト161の顔または頭部162が、興味対象164の方向を向くように制御する。次に、非操作オブジェクト動作制御部402は、興味レベル1の興味対象が変更されたか否かを判定する(S505)。変更されていないと判定した場合には、S502に戻る。一方、変更されたと判定した場合には、S501に戻る。上記のように構成することで、仮想空間において、オブジェクトを構成する部位の一部、例えば、オブジェクトの頭部や顔等が興味対象に向くように制御するとともに、当該興味対象が壁の後ろ側等に移動した場合においても、オブジェクトにより自然な動きを表現することのできるオブジェクト制御プログラム、オブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体、オブジェクト制御装置、オブジェクト制御方法を実現することができる。また、複数の興味対象について、図17に示した処理(見失い処理)を図18に示した処理と独立して行わせることにより、例えば、興味レベルが1の興味対象が変更した場合においても、変更後の興味レベル1の興味対象についても見失い処理が行われる。よって、興味レベルが変更され、興味レベルが1の興味対象が変更された場合においても、当該興味対象についての見失い処理の内容を反映して、非操作オブジェクトの一部の部位の方向を制御することができる。例えば、当該変更後の興味レベルが1の興味対象が非操作オブジェクトからみて障害物に隠れているような場合においても、非操作オブジェクトが当該変更後の興味レベルが1の興味対象の方向を向くようにすることもできる。これは、特に、変更後に興味レベルが1の興味対象が、音を発する等に起因して興味レベルが変更等されたような場合に有用である。
【0131】
なお、上記に示した非操作オブジェクトを構成する一部の部位、例えば、顔または頭部、の方向を制御する場合のオブジェクト制御装置100の機能的な構成やその処理のフローは、一例にすぎず、種々の変形が可能である。例えば、上記においては、S406でレイキャスト判定を行った後に、S407で音等の発生についての判定を行う場合について説明したが、S405の処理の後に、S406とS407の処理を並列して行い、S406のレイキャスト判定に失敗した場合、及び、S407の音発生処理が行われない場合に、S406とS407の並列処理に戻るように構成してもよい。
【0132】
また、上記図16A乃至図16Eにおいては、説明の簡略化のため、興味対象が移動する場合を例として説明したが、興味対象と非操作オブジェクトの双方が移動し、非操作オブジェクトを構成する部位の一部が興味対象の方向を向きつつ非操作オブジェクトが移動するように構成してもよい。更に、上記においては、非操作オブジェクトを構成する部位の一部を興味対象の方向へ向かせる場合を例として説明したが、非操作オブジェクトを構成する部位の一部を操作オブジェクトに向かせる場合について適用してもよい。また、この場合、操作オブジェクトに代えて別の非操作オブジェクトを設け、非操作オブジェクト相互間で適用してもよい。
【0133】
また、上記においては、興味対象と非操作オブジェクトの間に壁等の障害物が存在すると判定した後、所定の条件が満たされるまで(例えば、再び非操作オブジェクトから興味対象が見えるようになる等)、興味対象の位置情報で示される位置を非操作オブジェクトを構成する部位の一部が向く構成について説明したが、これに限られず、興味対象と非操作オブジェクトの間に壁等の障害物が存在すると判定する直前の興味対象の位置情報等に基づいて、興味対象の移動速度や加速度情報を求め、当該移動速度や加速度情報に基づいて現在の興味対象の位置を求める演算部を設け、当該位置を向くように構成してもよい。更に、所定の場合には、上記保持部153に保持された興味対象の位置情報を、上記興味対象の目的地候補情報の位置情報を取得するために用いるように構成してもよい。
【符号の説明】
【0134】
100 オブジェクト制御装置、101 制御部、102 記憶部、103 通信部、104 操作部、105 表示部、151 時間計数部、152 時間判定部、153 保持部、201 動作制御部、202 空間DB、203 空間情報生成部、204 興味対象特定部、205 AVD情報取得部、206 ランキング情報記憶部、207 AC位置情報取得部、208 エリア分割部、209 最近傍エッジ決定部、210 レイキャスト判定部、211 最寄りエッジ取得部、212 AP展開部、213 スペースチェック判定部、214 AP取得部、215 到達判定部、216 最短エッジ取得部、217 AP作成部、218 代理ポイント取得部、219 AVD情報記憶部、401 操作オブジェクト動作制御部、402 非操作オブジェクト動作制御部、403 興味対象動作制御部。

【特許請求の範囲】
【請求項1】
仮想空間における興味対象を特定し、該興味対象の位置情報を取得する興味対象特定手段、
前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、
前記障害物判定手段が前記障害物が存在すると判定してからの時間を計数する時間計数手段、
前記時間計数手段により計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持する保持手段、及び、
前記所定時間経過前は、前記興味対象特定手段により取得された位置情報に基づいて、前記時間経過後は、前記保持手段に保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段、
としてコンピュータを機能させることを特徴とするオブジェクト制御プログラム。
【請求項2】
前記オブジェクト動作制御手段は、前記所定時間経過後、前記判定手段が障害物オブジェクトが存在しないと判定した場合には、前記興味対象特定手段により取得される、前記判定手段が障害物オブジェクトが存在しないと判定した際の、興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、
ことを特徴とする請求項1記載のオブジェクト制御プログラム。
【請求項3】
前記オブジェクト動作制御手段は、前記所定の期間経過後、前記興味対象の音の発生処理が行われた場合には、前記興味対象特定手段により取得される、前記興味対象の音の発生処理が行われた際の、前記興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、
ことを特徴とする請求項1または2記載のオブジェクト制御プログラム。
【請求項4】
前記障害物判定手段は、前記興味対象の位置情報と、前記オブジェクトの位置情報と、前記障害物の位置情報とに基づいて、判定することを特徴とする請求項1乃至3のいずれかに記載のオブジェクト制御プログラム。
【請求項5】
前記障害物判定手段は、前記興味対象と前記オブジェクトとを結んだ線分の間に、前記障害物が存在する場合には、前記障害物が存在すると判定することを特徴とする請求項4に記載のオブジェクト制御プログラム。
【請求項6】
前記オブジェクトの一部を構成する部位は、前記オブジェクトの頭部であり、前記オブジェクト動作制御手段は、前記所定時間経過前は、前記頭部が前記興味対象の方向を向くように制御することを特徴とする請求項1乃至5のいずれかに記載のオブジェクト制御プログラム。
【請求項7】
前記オブジェクト動作制御手段は、前記時間経過後は、前記頭部が、前記保持手段に保持された興味対象の位置情報で示される方向を向くように制御することを特徴とする請求項6に記載のオブジェクト制御プログラム。
【請求項8】
仮想空間における興味対象を特定し、該興味対象の位置情報を取得する興味対象特定手段と、
前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、
前記障害物判定手段が前記障害物が存在すると判定してからの時間を計数する時間計数手段と、
前記時間計数手段により計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持する保持手段と、
前記所定時間経過前は、前記興味対象特定手段により取得された位置情報に基づいて、前記時間経過後は、前記保持手段に保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段と、
を含むオブジェクト制御装置。
【請求項9】
仮想空間における興味対象を特定し、該興味対象の位置情報を取得し、
前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定し、
前記障害物が存在すると判定してからの時間を計数し、
前記計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持し、
前記所定時間経過前は、前記取得された位置情報に基づいて、前記所定時間経過後は、前記保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、
ことを特徴とするオブジェクト制御方法。
【請求項10】
仮想空間における1または複数の興味対象を特定し、該1または複数の興味対象の位置情報を取得する興味対象特定手段、
前記仮想空間において、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、
前記障害物判定手段が、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数する時間計数手段、
前記時間計数手段により計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する保持手段、
としてコンピュータを機能させることを特徴とするオブジェクト制御プログラム。
【請求項11】
前記所定の場合は、前記各所定期間経過後、障害物判定手段が、前記各興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定した場合を含むことを特徴とする請求項10記載のオブジェクト制御プログラム。
【請求項12】
前記所定の場合は、前記所定の期間経過後、前記各興味対象の音の発生処理が行われた場合を含むことを特徴とする請求項10または11記載のオブジェクト制御プログラム。
【請求項13】
前記オブジェクト制御プログラムは、更に、
前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段として、コンピュータを機能させ、
前記興味対象特定手段は、前記各興味対象のうち、該各興味対象に関連付けられた優先順位情報が最も高い優先興味対象を特定し、
前記オブジェクト動作制御手段は、前記優先興味対象の現在の位置情報または前記保持手段に保持された前記優先興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする請求項10乃至12のいずれかに記載のオブジェクト制御プログラム。
【請求項14】
前記オブジェクト動作制御手段は、前記優先興味対象の位置情報が前記保持手段に保持されている場合には、該保持手段に保持された前記優先興味対象の位置情報に基づいて前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする請求項13記載のオブジェクト制御プログラム。
【請求項15】
前記オブジェクト動作制御手段は、前記優先興味対象の位置情報が前記保持手段に保持されていない場合には、前記優先興味対象の現在の位置情報に基づいて前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする請求項13または14記載のオブジェクト制御プログラム。
【請求項16】
請求項1乃至7及び請求項10乃至15のいずれかに記載のオブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項17】
仮想空間における1または複数の興味対象を特定し、該1または複数の興味対象の位置情報を取得する興味対象特定手段と、
前記仮想空間において、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段と、
前記障害物判定手段が、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数する時間計数手段と、
前記時間計数手段により計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する保持手段と、
を含むオブジェクト制御装置。
【請求項18】
仮想空間における1または複数の興味対象を特定し、該1または複数の興味対象の位置情報を取得し、
前記仮想空間において、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定し、
前記障害物判定手段が、それぞれ、前記1または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数し、
前記計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する、
ことを特徴とするオブジェクト制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図8C】
image rotate

【図8D】
image rotate

【図8E】
image rotate

【図8F】
image rotate

【図8G】
image rotate

【図8H】
image rotate

【図8I】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16A】
image rotate

【図16B】
image rotate

【図16C】
image rotate

【図16D】
image rotate

【図16E】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2013−59423(P2013−59423A)
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2011−198875(P2011−198875)
【出願日】平成23年9月12日(2011.9.12)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】