(57)【要約】【課題】仮想空間においてキャラクターを興味対象に向かって移動する場合において、興味対象の方向を向きつつ移動させたい場合がある。【解決手段】オブジェクト制御プログラムであって、興味対象の位置情報を取得する興味対象特定手段、前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、前記障害物判定手段が前記障害物が存在すると判定してからの時間を計数する時間計数手段、前記時間計数手段により計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持する保持手段、前記所定時間経過前は、前記興味対象特定手段により取得された位置情報に基づいて、前記時間経過後は、前記保持手段に保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段、としてコンピュータを機能させる。【選択図】図１５
2013059423.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間における興味対象を特定し、該興味対象の位置情報を取得する興味対象特定手段、
前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、
前記障害物判定手段が前記障害物が存在すると判定してからの時間を計数する時間計数手段、
前記時間計数手段により計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持する保持手段、及び、
前記所定時間経過前は、前記興味対象特定手段により取得された位置情報に基づいて、前記時間経過後は、前記保持手段に保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段、
としてコンピュータを機能させることを特徴とするオブジェクト制御プログラム。
【請求項２】
前記オブジェクト動作制御手段は、前記所定時間経過後、前記判定手段が障害物オブジェクトが存在しないと判定した場合には、前記興味対象特定手段により取得される、前記判定手段が障害物オブジェクトが存在しないと判定した際の、興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、
ことを特徴とする請求項１記載のオブジェクト制御プログラム。
【請求項３】
前記オブジェクト動作制御手段は、前記所定の期間経過後、前記興味対象の音の発生処理が行われた場合には、前記興味対象特定手段により取得される、前記興味対象の音の発生処理が行われた際の、前記興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、
ことを特徴とする請求項１または２記載のオブジェクト制御プログラム。
【請求項４】
前記障害物判定手段は、前記興味対象の位置情報と、前記オブジェクトの位置情報と、前記障害物の位置情報とに基づいて、判定することを特徴とする請求項１乃至３のいずれかに記載のオブジェクト制御プログラム。
【請求項５】
前記障害物判定手段は、前記興味対象と前記オブジェクトとを結んだ線分の間に、前記障害物が存在する場合には、前記障害物が存在すると判定することを特徴とする請求項４に記載のオブジェクト制御プログラム。
【請求項６】
前記オブジェクトの一部を構成する部位は、前記オブジェクトの頭部であり、前記オブジェクト動作制御手段は、前記所定時間経過前は、前記頭部が前記興味対象の方向を向くように制御することを特徴とする請求項１乃至５のいずれかに記載のオブジェクト制御プログラム。
【請求項７】
前記オブジェクト動作制御手段は、前記時間経過後は、前記頭部が、前記保持手段に保持された興味対象の位置情報で示される方向を向くように制御することを特徴とする請求項６に記載のオブジェクト制御プログラム。
【請求項８】
仮想空間における興味対象を特定し、該興味対象の位置情報を取得する興味対象特定手段と、
前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、
前記障害物判定手段が前記障害物が存在すると判定してからの時間を計数する時間計数手段と、
前記時間計数手段により計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持する保持手段と、
前記所定時間経過前は、前記興味対象特定手段により取得された位置情報に基づいて、前記時間経過後は、前記保持手段に保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段と、
を含むオブジェクト制御装置。
【請求項９】
仮想空間における興味対象を特定し、該興味対象の位置情報を取得し、
前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定し、
前記障害物が存在すると判定してからの時間を計数し、
前記計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持し、
前記所定時間経過前は、前記取得された位置情報に基づいて、前記所定時間経過後は、前記保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、
ことを特徴とするオブジェクト制御方法。
【請求項１０】
仮想空間における１または複数の興味対象を特定し、該１または複数の興味対象の位置情報を取得する興味対象特定手段、
前記仮想空間において、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、
前記障害物判定手段が、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数する時間計数手段、
前記時間計数手段により計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する保持手段、
としてコンピュータを機能させることを特徴とするオブジェクト制御プログラム。
【請求項１１】
前記所定の場合は、前記各所定期間経過後、障害物判定手段が、前記各興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定した場合を含むことを特徴とする請求項１０記載のオブジェクト制御プログラム。
【請求項１２】
前記所定の場合は、前記所定の期間経過後、前記各興味対象の音の発生処理が行われた場合を含むことを特徴とする請求項１０または１１記載のオブジェクト制御プログラム。
【請求項１３】
前記オブジェクト制御プログラムは、更に、
前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段として、コンピュータを機能させ、
前記興味対象特定手段は、前記各興味対象のうち、該各興味対象に関連付けられた優先順位情報が最も高い優先興味対象を特定し、
前記オブジェクト動作制御手段は、前記優先興味対象の現在の位置情報または前記保持手段に保持された前記優先興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする請求項１０乃至１２のいずれかに記載のオブジェクト制御プログラム。
【請求項１４】
前記オブジェクト動作制御手段は、前記優先興味対象の位置情報が前記保持手段に保持されている場合には、該保持手段に保持された前記優先興味対象の位置情報に基づいて前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする請求項１３記載のオブジェクト制御プログラム。
【請求項１５】
前記オブジェクト動作制御手段は、前記優先興味対象の位置情報が前記保持手段に保持されていない場合には、前記優先興味対象の現在の位置情報に基づいて前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする請求項１３または１４記載のオブジェクト制御プログラム。
【請求項１６】
請求項１乃至７及び請求項１０乃至１５のいずれかに記載のオブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１７】
仮想空間における１または複数の興味対象を特定し、該１または複数の興味対象の位置情報を取得する興味対象特定手段と、
前記仮想空間において、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段と、
前記障害物判定手段が、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数する時間計数手段と、
前記時間計数手段により計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する保持手段と、
を含むオブジェクト制御装置。
【請求項１８】
仮想空間における１または複数の興味対象を特定し、該１または複数の興味対象の位置情報を取得し、
前記仮想空間において、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定し、
前記障害物判定手段が、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数し、
前記計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する、
ことを特徴とするオブジェクト制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト制御プログラム、オブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体、オブジェクト制御装置、オブジェクト制御方法に関する。
【背景技術】
【０００２】
キャラクターが、興味対象を追跡するゲームプログラムが知られている。具体的には、例えば、仮想空間において、当該キャラクターが興味対象を追跡し、当該興味対象の位置まで移動した場合には、当該興味対象に対して所定の動作を行わせる等である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
この場合において、当該キャラクターが、人間や動物等のキャラクターに相当する場合には、興味対象に向かって移動する場合において、当該キャラクターの顔や頭部等を興味対象の方向を向かせつつ移動させたい場合がある。また、当該興味対象が仮想空間に配置された壁の後ろ等に移動した場合において、所定の場合には、壁の後ろ等に移動した興味対象の位置を推測して当該方向を向かせた方がより自然な動きを表現できる場合がある。
【０００４】
本発明は、上記課題に鑑みて、仮想空間において、オブジェクトを構成する部位の一部、例えば、頭部や顔等が興味対象に向くように制御するとともに、当該興味対象が壁の後ろ側等に移動した場合においても、当該オブジェクトにより自然な動きを表現することのできるオブジェクト制御プログラム、オブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体、オブジェクト制御装置、オブジェクト制御方法を実現することを目的とする。
【課題を解決するための手段】
【０００５】
（１）本発明のオブジェクト制御プログラムは、仮想空間における興味対象を特定し、該興味対象の位置情報を取得する興味対象特定手段、前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、前記障害物判定手段が前記障害物が存在すると判定してからの時間を計数する時間計数手段、前記時間計数手段により計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持する保持手段、及び、前記所定時間経過前は、前記興味対象特定手段により取得された位置情報に基づいて、前記時間経過後は、前記保持手段に保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段、としてコンピュータを機能させることを特徴とする。
【０００６】
（２）上記（１）に記載のオブジェクト制御プログラムにおいて、前記オブジェクト動作制御手段は、前記所定時間経過後、前記判定手段が障害物オブジェクトが存在しないと判定した場合には、前記興味対象特定手段により取得される、前記判定手段が障害物オブジェクトが存在しないと判定した際の、興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、ことを特徴とする。
【０００７】
（３）上記（１）または（２）に記載のオブジェクト制御プログラムにおいて、前記オブジェクト動作制御手段は、前記所定の期間経過後、前記興味対象の音の発生処理が行われた場合には、前記興味対象特定手段により取得される、前記興味対象の音の発生処理が行われた際の、前記興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、ことを特徴とする。
【０００８】
（４）上記（１）乃至（３）のいずれかに記載のオブジェクト制御プログラムにおいて、前記障害物判定手段は、前記興味対象の位置情報と、前記オブジェクトの位置情報と、前記障害物の位置情報とに基づいて、判定することを特徴とする。
【０００９】
（５）上記（４）に記載のオブジェクト制御プログラムにおいて、前記障害物判定手段は、前記興味対象と前記オブジェクトとを結んだ線分の間に、前記障害物が存在する場合には、前記障害物が存在すると判定することを特徴とする。
【００１０】
（６）上記（１）乃至（５）のいずれかに記載のオブジェクト制御プログラムにおいて、前記オブジェクトの一部を構成する部位は、前記オブジェクトの頭部であり、前記オブジェクト動作制御手段は、前記所定時間経過前は、前記頭部が前記興味対象の方向を向くように制御することを特徴とする。
【００１１】
（７）上記（６）に記載のオブジェクト制御プログラムにおいて、前記オブジェクト動作制御手段は、前記時間経過後は、前記頭部が、前記保持手段に保持された興味対象の位置情報で示される方向を向くように制御することを特徴とする。
【００１２】
（８）本発明のオブジェクト制御装置は、仮想空間における興味対象を特定し、該興味対象の位置情報を取得する興味対象特定手段と、前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段と、前記障害物判定手段が前記障害物が存在すると判定してからの時間を計数する時間計数手段と、前記時間計数手段により計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持する保持手段と、前記所定時間経過前は、前記興味対象特定手段により取得された位置情報に基づいて、前記時間経過後は、前記保持手段に保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段と、を含むことを特徴とする。
【００１３】
（９）本発明のオブジェクト制御方法は、仮想空間における興味対象を特定し、該興味対象の位置情報を取得し、前記仮想空間において、前記興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定し、前記障害物が存在すると判定してからの時間を計数し、前記計数される時間が所定時間に達した場合に、前記興味対象の位置を表す位置情報を保持し、前記所定時間経過前は、前記取得された位置情報に基づいて、前記所定時間経過後は、前記保持された興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御する、ことを特徴とする。
【００１４】
（１０）本発明のオブジェクト制御プログラムは、仮想空間における１または複数の興味対象を特定し、該１または複数の興味対象の位置情報を取得する興味対象特定手段、前記仮想空間において、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段、前記障害物判定手段が、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数する時間計数手段、前記時間計数手段により計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する保持手段と、を含むことを特徴とする。
【００１５】
（１１）上記（１０）に記載のオブジェクト制御プログラムにおいて、前記所定の場合は、前記各所定期間経過後、障害物判定手段が、前記各興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定した場合を含むことを特徴とする。
【００１６】
（１２）上記（１０）または（１１）に記載のオブジェクト制御プログラムにおいて、前記所定の場合は、前記所定の期間経過後、前記各興味対象の音の発生処理が行われた場合を含むことを特徴とする。
【００１７】
（１３）上記（１０）乃至（１２）のいずれかに記載のオブジェクト制御プログラムにおいて、前記オブジェクト制御プログラムは、更に、前記オブジェクトの一部を構成する部位の方向を制御するオブジェクト動作制御手段として、コンピュータを機能させ、前記興味対象特定手段は、前記各興味対象のうち、該各興味対象に関連付けられた優先順位情報が最も高い優先興味対象を特定し、前記オブジェクト動作制御手段は、前記優先興味対象の現在の位置情報または前記保持手段に保持された前記優先興味対象の位置情報に基づいて、前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする。
【００１８】
（１４）上記（１３）に記載のオブジェクト制御プログラムにおいて、前記オブジェクト動作制御手段は、前記優先興味対象の位置情報が前記保持手段に保持されている場合には、該保持手段に保持された前記優先興味対象の位置情報に基づいて前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする。
【００１９】
（１５）上記（１３）または（１４）に記載のオブジェクト制御プログラムにおいて、前記オブジェクト動作制御手段は、前記優先興味対象の位置情報が前記保持手段に保持されていない場合には、前記優先興味対象の現在の位置情報に基づいて前記オブジェクトの一部を構成する部位の方向を制御することを特徴とする。
【００２０】
（１６）上記（１）乃至（７）及び上記（１０）乃至（１５）のいずれかに記載のオブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体であることを特徴とする。
【００２１】
（１７）オブジェクト制御装置であって、仮想空間における１または複数の興味対象を特定し、該１または複数の興味対象の位置情報を取得する興味対象特定手段と、前記仮想空間において、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定する障害物判定手段と、前記障害物判定手段が、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数する時間計数手段と、前記時間計数手段により計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する保持手段と、を含むことを特徴とする。
【００２２】
（１８）オブジェクト制御方法であって、仮想空間における１または複数の興味対象を特定し、該１または複数の興味対象の位置情報を取得し、前記仮想空間において、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在するか否かを判定し、前記障害物判定手段が、それぞれ、前記１または複数の興味対象とオブジェクトとの間に前記オブジェクトに対する障害物が存在すると判定してからの時間を計数し、前記計数される時間がそれぞれ所定時間に達した場合に、前記各興味対象の位置を表す各位置情報を保持するとともに、所定の場合に、該保持手段に保持された前記各位置情報を削除する、ことを特徴とする。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施の形態におけるオブジェクト制御装置の構成の概要について説明するための図である。
【図２】図１に示したオブジェクト制御装置の制御部及び記憶部等で実現される機能的な構成について説明するための図である。
【図３】本実施の形態における仮想空間の一例を示す図である。
【図４】図１に示した動作制御部の機能的構成について説明するための図である。
【図５】本実施の形態におけるＡＶＤ情報の記憶形式の一例を示す図である。
【図６】本実施の形態におけるＡＶＤ情報の一例について説明するための図である。
【図７】本実施の形態におけるランキング情報の記憶形式の一例を示す図である。
【図８Ａ】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図８Ｂ】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図８Ｃ】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図８Ｄ】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図８Ｅ】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図８Ｆ】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図８Ｇ】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図８Ｈ】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図８Ｉ】本実施の形態における最寄りエッジ取得処理の一例について説明するための図である。
【図９】本実施の形態におけるバウンディングボックスの一例について説明するための図である。
【図１０】本実施の形態における代理ポイント取得処理の一例について説明するための図である。
【図１１】本実施の形態におけるオブジェクト制御装置のフローの概要について説明するための図である。
【図１２】本実施の形態におけるオブジェクト制御装置のフローの概要について説明するための図である。
【図１３】本実施の形態におけるオブジェクト制御装置のフローの概要について説明するための図である。
【図１４】本実施の形態におけるオブジェクト制御装置のフローの概要について説明するための図である。
【図１５】非操作オブジェクトを構成する一部の部位の方向を制御する処理を実現するための機能的な構成について説明するための図である。
【図１６Ａ】非操作オブジェクトを構成する一部の部位の方向を制御する処理の一例を説明するための図である。
【図１６Ｂ】非操作オブジェクトを構成する一部の部位の方向を制御する処理の一例を説明するための図である。
【図１６Ｃ】非操作オブジェクトを構成する一部の部位の方向を制御する処理の一例を説明するための図である。
【図１６Ｄ】非操作オブジェクトを構成する一部の部位の方向を制御する処理の一例を説明するための図である。
【図１６Ｅ】非操作オブジェクトを構成する一部の部位の方向を制御する処理の一例を説明するための図である。
【図１７】非操作オブジェクトを構成する一部の部位の方向を制御する処理のフローの概要を説明するための図である。
【図１８】非操作オブジェクトを構成する一部の部位の方向を制御する処理のフローの概要を説明するための図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
【００２５】
図１は、本発明の実施の形態におけるオブジェクト制御装置の構成の概要について説明するための図である。図１に示すように、オブジェクト制御装置１００は、例えば、ＣＰＵやメモリ等で構成されるコンピュータで構成され、例えば、制御部１０１、記憶部１０２、通信部１０３、操作部１０４、表示部１０５を有する。なお、制御部１０１、記憶部１０２、通信部１０３、操作部１０４、表示部１０５は、内部バス１０６により互いに接続される。
【００２６】
制御部１０１は、例えば、ＣＰＵ、ＭＰＵ等であって、記憶部１０２に格納されたプログラムに従って動作する。記憶部１０２は、例えば、ＲＯＭやＲＡＭ、ハードディスク等の情報記録媒体で構成され、制御部１０１によって実行されるプログラムを保持する情報記録媒体である。
【００２７】
記憶部１０２は、制御部１０１のワークメモリとしても動作する。なお、当該プログラムは、例えば、ネットワーク（図示なし）を介して、ダウンロードされて提供されてもよいし、または、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。
【００２８】
通信部１０３は、当該オブジェクト制御装置１００を、ネットワーク（図示なし）を介して、他の端末装置（図示なし）やデータベース（図示なし）等と接続する。操作部１０４は、例えば、キーボード、マウス、または、コントローラ等で構成され、ユーザの指示操作に応じて、当該指示操作の内容を制御部１０１に出力する。表示部１０５は、例えば、液晶ディスプレイ、有機ＥＬディスプレイ等であって、制御部１０１からの指示に従い、情報を表示する。なお、上記オブジェクト制御装置１００の構成は、一例であってこれに限定されるものではない。例えば、上記端末装置から、ネットワークを介して、ユーザの指示操作がオブジェクト制御装置１００に入力されるように構成してもよい。
【００２９】
図２は、図１に示したオブジェクト制御装置の制御部及び記憶部等で実現される機能的な構成について説明するための図である。図２に示すように、オブジェクト制御装置１００は、機能的に、動作制御部２０１、空間ＤＢ２０２、空間情報生成部２０３、興味対象特定部２０４、ＡＶＤ情報取得部２０５、ランキング情報記憶部２０６、ＡＣ位置情報取得部２０７、エリア分割部２０８、最近傍エッジ決定部２０９、レイキャスト判定部２１０、最寄りエッジ取得部２１１、ＡＰ展開部２１２、スペースチェック判定部２１３、ＡＰ取得部２１４、到達判定部２１５、最短エッジ取得部２１６、ＡＰ作成部２１７、代理ポイント取得部２１８、ＡＶＤ情報記憶部２１９を含む。
【００３０】
なお、下記においては、説明の簡略化のために、当該オブジェクト制御装置１００で生成される仮想空間が図３に示した場合であって、例えば、非操作オブジェクトを興味対象に向かって移動させる場合を例として説明する。図３は、仮想空間の一例を示す図である。図３に示すように、操作オブジェクト３０１、非操作オブジェクト３０２、興味対象３０３、壁３０４、ウェイコリジョン３０５等が仮想空間に表される。ここで、操作オブジェクトは、例えば、ユーザが操作するキャラクター等に相当し、非操作オブジェクトは、例えば、敵キャラクター等、ユーザの操作対象でないキャラクター等に相当する。また、興味対象は、例えば、キャラクターや敵キャラクター等が保持または使用等行うアイテムに相当する。また、壁やウェイコリジョンは敵キャラクター等に対する障害となるオブジェクトに相当するが詳細には後述する。
【００３１】
当該仮想空間において、操作オブジェクト３０１、非操作オブジェクト３０２、興味対象３０３の移動や動作等は、動作制御部２０１により行われる。具体的には、動作制御部２０１は、図４に示すように、操作オブジェクト動作制御部４０１、非操作オブジェクト動作制御部４０２、興味対象動作制御部４０３を有する。
【００３２】
操作オブジェクト動作制御部４０１は、操作部１０４に入力される操作情報に応じて、操作オブジェクトを移動、動作させる。
【００３３】
非操作オブジェクト動作制御部４０２は、ユーザの操作対象でないオブジェクトである非操作オブジェクトを移動、動作させる。具体的には、例えば、図３に示した場合、非操作オブジェクト動作制御部４０２は、非操作オブジェクト３０２を、仮想空間上に配置されたノード３０６、３０７、３０８とエッジ３０９、３１０を含んで構成されるパスに基づいて、移動させる。つまり、興味対象３０３に向かって非操作オブジェクト３０２を移動させる場合、エッジ３０９からエッジ３１０へ移動させる等である。ここで、非操作オブジェクトは、例えば、エッジ両端点にいわゆるベジェ曲線等を適用して、非操作オブジェクトが当該ベジェ曲線に沿って移動するように構成してもよい。また、当該パスは、実際に表示部１０５等に表示される仮想空間には表示されないように構成される。また、当該ノードやエッジ等の位置を示す情報は、例えば、空間ＤＢ２０２に保持される。なお、非操作オブジェクトのその他の移動や動作等の詳細については後述する。
【００３４】
興味対象動作制御部４０３は、仮想空間において、興味対象の表示や移動を行う。具体的には、例えば、当該興味対象の位置情報や画像情報は、空間ＤＢ２０２に保持されており、当該位置情報等に基づいて、興味対象動作制御部４０３は、興味対象の表示等を行う。
【００３５】
空間情報生成部２０３は、仮想空間を表す画像情報を生成する。具体的には、例えば、仮想空間における壁等の背景、操作オブジェクト、非操作オブジェクト、興味対象の位置情報や画像情報が、空間ＤＢ２０２に保持されており、当該壁等の位置情報や画像情報に基づいて、仮想空間を表す画像情報を生成する。なお、空間ＤＢ２０２に記憶されている操作オブジェクト、非操作オブジェクト、興味対象等の位置情報は、例えば、動作制御部２０１により、操作オブジェクト等の移動等に伴い、更新される。また、当該画像情報は、例えば、表示部１０５に表示されてもよいし、ネットワークを介して送信され、当該ネットワークに接続された端末装置の表示部（図示なし）等に表示されてもよい。
【００３６】
また、空間情報生成部２０３は、同様にウェイコリジョン等を仮想空間に生成する。ここで、ウェイコリジョンとは、例えば、実際には表示されない、いわば見えない壁等に相当するものであって、表示される仮想空間に表される壁等に沿って所定の距離に配置される。非操作オブジェクト動作制御部４０２は、例えば、当該ウェイコリジョンを非操作オブジェクトに対する障害物とみなし、非操作オブジェクトを当該ウェイコリジョンより壁側等には移動させない。また、当該ウェイコリジョンは、オブジェクトのサイズ等をあらかじめ考慮して、壁等から所定の距離に配置されるよう、位置情報等が設定されている。よって、非操作オブジェクト動作制御部４０２が、非操作オブジェクトを壁にめり込ませる等の動作を防止することができる。
【００３７】
以上の前提の下、まず、主に、後述する最寄りエッジ情報を取得する処理において実現される機能構成について説明する。
【００３８】
興味対象特定部２０４は、所定の基準に応じて、非操作オブジェクトの興味対象を特定し、当該対象オブジェクトの興味対象識別情報（興味対象ＩＤ）及びその位置情報を取得する。具体的には、例えば、当該興味対象の特定は、動作制御部２０１または空間ＤＢ２０２からの非操作オブジェクト及び興味対象の位置情報に基づいて、仮想空間においてオブジェクトに最も近い位置に存在する興味対象を特定し、当該興味対象ＩＤ及びその位置情報を取得するように構成してもよい。
【００３９】
また、例えば、非操作オブジェクトが動物等を表す場合にはその視界に入る興味対象のうちから、より近い位置に存在する興味対象を特定するように構成してもよい。更に、興味対象毎に点数情報が関連付けて記憶されており、当該点数情報に応じて、または、当該点数情報及び距離に応じて興味対象が特定されるように構成してもよい。なお、ここでは、図３において、興味対象特定部２０４が、興味対象３０３（興味対象識別情報（興味対象ＩＤ）、Ｋ１）を特定した場合を例として説明する。
【００４０】
ＡＶＤ情報取得部２０５は、興味対象特定部２０４が取得した興味対象ＩＤに関連付けて記憶されているＡＶＤ(Approach Volume Data)情報を、その優先順位情報に基づいて、取得する。具体的には、後述する最寄りエッジが取得できなかった場合や非操作オブジェクトを移動させる目的地（AP:Approach Point）が取得できなかった場合に、次の優先順位のＡＶＤ情報を取得する。
【００４１】
ここで、ＡＶＤ情報とは、特定した興味対象に対して、非操作オブジェクトを移動させる目的地（以下、ＡＰと称する）の候補（以下、ＡＰ候補と称する）となる位置を表す情報に相当する。具体的には、例えば、図５に示すように各ＡＶＤ情報は、それぞれＡＶＤＩＤ、角度情報、分割数情報、ＡＰ半径情報、方向情報、ＡＣ距離情報を含む。なお、当該各ＡＶＤ情報は、例えば、ＡＶＤ情報記憶部２１９に記憶される。
【００４２】
ここで、ＡＶＤ情報について、図５に示したＡＶＤＩＤ、１−１のＡＶＤ情報を例として説明する。図６に示すように、興味対象特定部２０４により取得された興味対象６０１の位置情報から、方向情報で示される（ｘ１、ｙ１、ｚ１）の方向に、ＡＣ距離情報で示される距離、２の位置にアプローチセンター（以下、ＡＣと称する）、６０２を配置する。そして、ＡＣからＡＰ半径情報で示される半径、２０の位置であって、ＡＣから当該方向を中心として角度６０°の扇形を形成する。そして、当該角度６０°を分割数、３で除算した位置にＡＰ候補群６０３を配置する。つまり、ＡＶＤ情報は、特定された興味対象に対して配置するＡＰ候補群の位置を求めるための情報に相当する。つまり、ＡＣ距離情報とは、興味対象とＡＣとの距離を表す情報に相当し、ＡＰ半径情報とは、ＡＣとＡＰ候補との距離を表す情報に相当する。上記のようにして、各ＡＰ候補群の位置が求められる。
【００４３】
なお、図６に示した各ＡＰ候補群の決定方法は、一例であって、これに限られず、その他角度１８０°や３６０°等の半円形や円形を形成し、分割数等に応じてＡＰ候補群の位置が決定される等であってもよい。更に、その他、興味対象から所定の方向または所定の距離に位置するＡＰ候補群が取得される限り、その他の方法を用いてもよい。
【００４４】
ランキング情報記憶部２０６は、例えば、図７に示すように、興味対象ＩＤ毎に、優先順位情報、アクションＩＤ、ＡＶＤＩＤを関連付けて記憶する。ここで、アクションＩＤは、例えば、匂う、触る、たたく、噛む等の非操作オブジェクトに行わせる各動作を識別する情報である。また、アクションＩＤには、例えば、各動作に対応するモーションデータ等が関連付けられており、非操作オブジェクトは当該各モーションデータに応じた所定の動作を行う。ＡＶＤ情報取得部２０５は、上記のように優先順位情報が高い順に、ＡＶＤＩＤを取得し、当該取得されたＡＶＤＩＤに基づいて、ＡＶＤ情報記憶部２１９から、対応するＡＶＤ情報を取得する。なお、各モーションデータは、角度情報等に応じて異なるデータとなるように構成してもよい。
【００４５】
具体的には、例えば、ＡＶＤ情報取得部２０５は、図７に示した場合であって、上記例のように、興味対象ＩＤ、Ｋ１が取得された場合、興味対象特定部２０４で取得された興味対象ＩＤ、Ｋ１に基づいて、ＡＶＤＩＤ、ＡＶＤ１を取得する。そして、当該ＡＶＤＩＤ、ＡＶＤ１に基づいて、ＡＶＤ１−１に関連付けて記憶されているＡＶＤ情報を取得する。
【００４６】
なお、図５は、ＡＶＤＩＤ、ＡＶＤ１について２のＡＶＤＩＤ（ＡＶＤ１−１、ＡＶＤ１−２）が記憶されている場合を示しているが、これに限られず、その他の数のＡＶＤＩＤが記憶されてもよい。また、上記においては、ランキング情報記憶部２０６からＡＶＤＩＤを取得し、当該ＡＶＤＩＤを介して対応するＡＶＤ情報をＡＶＤ情報記憶部２１９から取得する構成について説明したが、ランキング情報とＡＶＤ情報を関連付けて、１の記憶部、例えば、ランキング情報記憶部２０６またはＡＶＤ情報記憶部２１９、に記憶し、ＡＶＤ情報取得部２０５は、当該１の記憶部から、興味対象ＩＤに基づいて、対応するＡＶＤ情報を取得するように構成してもよい。
【００４７】
ＡＣ位置情報取得部２０７は、興味対象特定部２０４が取得した興味対象の位置情報及びＡＶＤ情報取得部２０５が取得したＡＶＤ情報に基づいて、取得したＡＶＤ情報についてのＡＣの位置情報を算出、取得する。具体的には、例えば、ＡＶＤＩＤ、ＡＶＤ１−１に関連付けて記憶されたＡＣ距離情報や方向情報、及び、興味対象の位置情報に基づいて、取得されたＡＶＤ情報に対応するＡＣ位置情報を算出し、取得する。これにより、例えば、図６を用いて説明したように、ＡＣの位置情報を算出、取得する。
【００４８】
エリア分割部２０８は、ＡＣ位置情報取得部２０７で取得されたＡＣの位置情報に基づいて、仮想空間を複数のエリアに分割する。具体的には、仮想空間に、図８Ａに示すようなＡＣ、パス８０１、壁８０２、ウェイコリジョン８０３が配置される場合を例として説明する。なお、例えば、ＡＣの位置情報は、ＡＣ位置情報取得部２０７により取得され、パス８０１、壁８０２、ウェイコリジョン８０３の位置情報は空間ＤＢ２０２から取得されることは上述のとおりである。
【００４９】
エリア分割部２０８は、図８Ｂに示すように、ＡＣを中心に放射状に仮想空間を８分割する。なお、分割数は、一例であって、その他の数であってもよい。
【００５０】
最近傍エッジ決定部２０９は、エリア分割部２０８により分割されたエリア毎にＡＣからの距離が最も近いエッジである最近傍エッジを決定する。具体的には、例えば、最近傍エッジ決定部２０９は、空間ＤＢ２０２から各エッジの位置情報を取得し、ＡＣの位置情報と当該位置情報に基づいて、各エッジにおけるＡＣからの最近傍点を求め、エリア分割部２０８により分割された仮想空間のエリア毎の最近傍エッジを決定する。
【００５１】
ここで、最近傍点とは、ＡＣから各エッジへの垂線を引いた場合の各エッジとの交点に相当するが、当該交点がエッジの外側に存在する場合には、当該交点に近い方のエッジの端点に相当する。具体的には、例えば、図８Ｃに示した場合、エッジＥ０とＡＣからＥ０への垂線との交点がエッジＥ０上にあり、当該交点がエリア７に属していることから、エッジＥ０はエリア７に属し、最近傍点を当該交点とする。一方、例えば、図８Ｄに示した場合には、ＡＣからエッジＥ２への垂線の交点が当該エッジＥ２上にないので、当該交点に一番近いエッジの端点（ノード）を最近傍点とする。そして、当該最近傍点はエリア１に属していることからエッジＥ２は、エリア１に属すると判断する。
【００５２】
また、同じエリアに複数のエッジが存在する場合には、その最近傍点がＡＣにより近い方のエッジを最近傍エッジとする。例えば、図８Ｅに示したエッジＥ３とＥ５のように、２のエッジの最近傍点が同じエリアに含まれる場合には、ＡＣからより近い方の最近傍点を有するエッジを最近傍エッジとする。つまり、図８Ｅに示した場合、エリア３に最近傍点が含まれるエッジは、エッジＥ３とエッジＥ５であるが、そのうちエッジＥ３が最近傍エッジとなる。上記のようにして、各エリアにおける最近傍エッジを決定する。図８Ｆはこのときの様子を示す。
【００５３】
レイキャスト判定部２１０は、最近傍エッジ決定部２０９により決定された各エリアの最近傍エッジの両端点とＡＣとの間における後述するレイキャスト判定を行う。そして、ＡＣと当該両端点とのうちのいずれか一方の端点とのレイキャスト判定に成功すれば、当該エッジを最寄りエッジ候補として、後述する最寄りエッジ取得部２１１に取得させる。
【００５４】
なお、全てのエリアの最近傍エッジについてのレイキャスト判定について失敗した場合には、次の優先順位情報を有するＡＶＤＩＤを、ＡＶＤ情報取得部２０５に取得させる。例えば、上記例のように、１の優先順位につき、複数のＡＶＤＩＤ（ＡＶＤＩＤ１−１、ＡＶＤＩＤ１−２）が関連付けられている場合には、他のＡＶＤＩＤ（上記例の場合は、ＡＶＤＩＤ１−２）についてのＡＶＤ情報を取得し、当該複数のＡＶＤＩＤ全てにつき、上記レイキャスト判定が失敗した場合に、次のＡＶＤＩＤ（上記例の場合、ＡＶＤＩＤ、ＡＶＤ２）を取得する等である。
【００５５】
ここで、レイキャスト判定とは、例えば、一方の点（この場合はエッジの両端点のうちの１の端点）と、ＡＣとを直線で結んだ場合に、当該直線上に、非操作オブジェクトに対して障害物となるウェイコリジョンや壁が存在するか否かによって判定し、存在しない場合にはレイキャスト判定に成功したと判定し、存在しない場合には、レイキャスト判定に失敗したと判定する。
【００５６】
具体的には、例えば、図８Ｇに示すように、エッジＥ０に対しては、その両端点に対してレイキャスト判定が成功するので、最寄りエッジ候補とする。また、エッジＥ２に対しても、一方の端点についてレイキャスト判定が成功するので、最寄りエッジ候補とする。一方、エッジＥ３については、ＡＣと両端とを結ぶ直線上にウェイコリジョンが存在するので、レイキャスト判定部２１０はレイキャスト判定に失敗したと判定し最寄りエッジ候補とはしない。つまり、上記例の場合、最寄りエッジ候補は、エッジＥ０とＥ２となり、レイキャスト判定部２１０は、当該エッジＥ０及びＥ２を、最寄りエッジ取得部２１１に取得させる。
【００５７】
最寄りエッジ取得部２１１は、レイキャスト判定部２１０から最寄りエッジ候補を示すエッジを取得し、ＡＣから各最寄りエッジ候補の最近傍点までの距離を算出、比較し、最も距離が短い最寄りエッジ候補を、最寄りエッジとして、取得する。具体的には、例えば、図８Ｈに示すように、ＡＣからエッジＥ０の最近傍点への距離と、ＡＣからエッジＥ２の最近傍点への距離を比較すると、Ｅ０の最近傍点への距離が短いので、図８Ｉに示すように当該エッジＥ０を最寄りエッジとして取得する。なお、エッジの位置情報等は、空間ＤＢ２０２から取得し、当該位置情報に基づいて、上記距離等を算出する。上記のように、複数のエリアに分割して最寄りエッジを取得することで、オブジェクト制御プログラムの負荷を低減することができる。なお、上記は一例であって、エリア分割しないで、最寄りエッジを取得するよう構成してもよいことはいうまでもない。
【００５８】
次に、主に、ＡＰ（非操作オブジェクトの移動の目的地に相当する）を決定する処理において実現される機能構成について説明する。ＡＰ展開部２１２は、最寄りエッジ取得部２１１が最寄りエッジを取得した場合、ＡＶＤ情報取得部２０５で取得されたＡＶＤ情報に基づいて、対応するＡＰ候補群の位置情報を算出、取得する。なお、当該ＡＶＤ情報は、上記最寄りエッジが取得されたＡＶＤ情報に対応する。具体的には、例えば、上述のように、ＡＶＤ情報に含まれる角度情報、分割数情報、ＡＰ半径情報等に基づいて、図６のように展開されたＡＰ候補群６０３の位置情報を算出する。
【００５９】
レイキャスト判定部２１０は、各ＡＰ候補とＡＣ間においてレイキャスト判定する。また、レイキャスト判定部２１０は、更に、最寄りエッジの両端との間においてもレイキャスト判定する。具体的には、例えば、図６に示したＡＣ６０２とＡＰ候補６０３との間でレイキャスト判定するとともに、最寄りエッジ６０５の両端のノード６０６、６０７と各ＡＰ候補６０３との間でレイキャスト判定する。なお、レイキャスト判定の詳細については上記と同様である。一方、全てのＡＰ候補についてレイキャスト判定が失敗した場合には、ＡＶＤ情報取得部２０５に、上述のレイキャスト判定が失敗した場合と同様に、次の優先順位情報を有するＡＶＤ情報を取得させる。なお、この場合、既に上述した全てのエリアの最近傍エッジについてのレイキャスト判定について失敗したＡＶＤ情報が存在する場合には、そのＡＶＤ情報の次の優先順位情報を有するＡＶＤ情報から優先順位情報に従い取得させる。
【００６０】
スペースチェック判定部２１３は、各ＡＰ候補とＡＣ間、及び、最寄りエッジの両端とＡＣ間のレイキャスト判定に成功した場合には、例えば、非操作オブジェクトについて関連付けられて記憶されているバウンディングボックスを用いてスペースチェックを行う。
【００６１】
ここで、バウンディングボックス６０４とは、例えば、図９に示すように、非操作オブジェクト６０３上に配置される非操作オブジェクトが必要とするスペースに相当するボックス６０４である。スペースチェック判定部２１３は、当該バウンディングボックスが、仮想空間における壁等と干渉しない場合には、スペースチェック判定に成功したと判定し、干渉した場合には失敗したと判定する。なお、当該バウンディングボックスの形状や、大きさ、当該バウンディングボックスのオブジェクト上への配置位置等は、あらかじめ設定される。また、複数の非操作オブジェクトについて移動制御等を行う場合には、当該バウンディングボックスの形状や大きさ等については、非操作オブジェクト毎に異なるように構成してもよい。また、非操作オブジェクトに対して、当該非操作オブジェクトの形状等に応じて、形状や大きさの異なる複数のバウンディングボックスが配置されるように構成してもよい。
【００６２】
ＡＰ取得部２１４は、スペースチェック判定部２１３によりスペースチェックに成功したと判定された各ＡＰ候補を取得し、当該各ＡＰ候補から非操作オブジェクトへの距離を算出する。そして、当該各ＡＰ候補からオブジェクトへの各距離を比較し、最も距離の短い距離を有するＡＰ候補をＡＰとして取得する。
【００６３】
非操作オブジェクト動作制御部４０２は、取得されたＡＰの位置情報が示す位置を目的地として仮想空間において非操作オブジェクトを移動させる。到達判定部２１５は、ＡＰと非操作オブジェクトの位置情報に基づいて、非操作オブジェクトがＡＰに到達したか否か判定し、到達したと判定した場合には、当該ＡＰに対応するＡＶＤＩＤに関連付けて記憶されたアクションＩＤで識別される動作を行わせる。
【００６４】
これにより、仮想空間において、興味対象の種類や当該興味対象に対して行わせる動作や障害物等の位置等に応じて、当該興味対象に対する非操作オブジェクトの目的地（ＡＰ）を設定し、当該目的地まで非操作オブジェクトを移動させて所定の動作を行わせることができる。
【００６５】
次に、全てのＡＶＤについて最寄りエッジを取得できなかった場合、または、全てのＡＶＤについてＡＰを取得できなかった場合について、実現される主な機能構成について説明する。
【００６６】
最短エッジ取得部２１６は、興味対象特定部２０４により取得された興味対象の位置情報と、エッジの位置情報に基づいて、特定された興味対象から一番距離の近いエッジである最短エッジのエッジＩＤを取得する。
【００６７】
レイキャスト判定部２１０は、最短エッジ取得部２１６により取得された最短エッジの両端点と、優先順位情報が１のＡＶＤのＡＣとのレイキャスト判定を行う。なお、当該ＡＣの位置情報は、例えば、上記と同様に、ＡＣ位置情報取得部２０７により算出、取得され、レイキャスト判定部２１０は、当該取得されたＡＣの位置情報を用いて、レイキャスト判定を行う。なお、いずれか一方の端点と当該ＡＣとの間のレイキャスト判定に成功した場合には、レイキャスト判定が成功したものとする等については上述と同様である。そして、レイキャスト判定に成功した場合には、ＡＶＤＩＤ、３６０のＡＶＤ情報を、ＡＶＤ情報記憶部２１９から取得する。当該ＡＶＤＩＤ、３６０のＡＶＤ情報は、例えば、角度情報として３６０°（つまり、円形状となる）、及び、分割数情報として上記優先順位情報が１のＡＶＤ情報の分割数とは異なる分割数情報を有するものであって、その他の情報（距離情報等）については、非操作オブジェクトとウェイコリジョン等との干渉等が生じないようにあらかじめ設定される。
【００６８】
ＡＰ展開部２１２、レイキャスト判定部２１０、スペースチェック判定部２１３、ＡＰ取得部２１４は、ＡＶＤＩＤ、３６０のＡＶＤ情報及び最短エッジに基づいて、上記ＡＰを取得する処理と同様の処理を行う。そして、ＡＰが取得された場合には、当該ＡＰを目的地として、非操作オブジェクトの移動を開始させ、当該ＡＰに到達した場合には、当該ＡＶＤＩＤに関連付けて記憶されている動作を行わせる。
【００６９】
一方、ＡＰ作成部２１７は、当該ＡＶＤＩＤ、３６０のＡＶＤ情報を用いても、ＡＰが取得できなかった場合には、興味対象の位置に基づいて、当該最短エッジ上にＡＰを作成する。具体的には、例えば、興味対象の位置から最短エッジに垂線を下ろした場合の交点をＡＰとして作成し、当該ＡＰの位置情報を、動作制御部２０１にＡＰ（ファイナルＡＰ）として送信する。そして、同様に、当該ファイナルＡＰを目的地として、非操作オブジェクトの移動を開始させ、当該ファイナルＡＰに到達した場合には、当該ＡＶＤＩＤ、３６０に関連付けられて記憶されている動作を行わせる。
【００７０】
これにより、全てのＡＶＤについて最寄りエッジを取得できなかった場合、または、全てのＡＶＤについてＡＰを取得できなかった場合についても、ＡＰを設定し、所定の動作を行わせることができる。
【００７１】
一方、レイキャスト判定部２１０が、最短エッジの両端点と、上記ＡＣ（優先順位情報が１のＡＶＤのＡＣ）とのレイキャスト判定を行い、レイキャスト判定に失敗した場合には、代理ポイント取得部２１８は、最短エッジや興味対象、非操作オブジェクトの位置情報と、ウェイコリジョンの位置情報に基づいて、興味対象特定部２０４で特定された興味対象の位置情報の代理（代理ポイント）となる位置情報を取得する。
【００７２】
具体的には、代理ポイント取得部２１８は、例えば、図１０に示すように、非操作オブジェクトと興味対象６０１とを結んだ直線とウェイコリジョン３０５の境界線との交点の位置情報を代理ポイントの第１候補点１１１として取得する。また、興味対象６０１と最短エッジ３１１の両端点３１２、３１３とを結んだ直線と、ウェイコリジョン３０５の境界線との各交点の位置情報をそれぞれ、代理ポイントの第２及び第４候補点１１２、１１４として取得する。更に、興味対象６０１から最短エッジ３１１へ下した垂線と最短エッジとの交点の位置情報を代理ポイントの第３候補点１１３として取得する。そして、各候補点と上記ＡＣとの位置情報を算出し、上記第１乃至第４の候補点１１１乃至１１４のうちから、最も上記ＡＣから距離が短い候補点の位置情報（当該例の場合は、第３候補点１１３）の位置情報を抽出する。
【００７３】
また、ＡＶＤ情報取得部２０５は、例えば、代理のＡＶＤ情報、つまり、ＡＶＤＩＤ、ＤＡのＡＶＤ情報を、ＡＶＤ情報記憶部２１９から取得する。当該ＡＶＤＩＤ、ＤＡのＡＶＤ情報は、例えば、非操作オブジェクトとウェイコリジョン等との干渉が生じないように、あらかじめ設定されている。具体的には、例えば、当該代理のＡＶＤ情報は、優先順位情報が１のＡＶＤ情報とＡＣ距離が同じであって、分割数情報が異なる等である。
【００７４】
ＡＰ展開部２１２、レイキャスト判定部２１０、スペースチェック判定部２１３、ＡＰ取得部２１４は、ＡＶＤＩＤ、ＤＡのＡＶＤ情報に基づいて、上記ＡＰを取得する処理と同様の処理を行う。なお、この場合、ＡＣの位置情報取得等については、興味対象の位置情報の代わりに、代理位置情報を用いて算出し、当該代理位置情報に基づいてＡＰ候補群を展開等する。そして、ＡＰが取得された場合には、当該ＡＰを目的地として、非操作オブジェクトの移動を開始させ、当該ＡＰに到達した場合には、当該ＡＶＤＩＤに関連付けて記憶された動作を行わせる。なお、上記においては、代理のＡＶＤ情報を用いる場合について説明したが、元のＡＶＤ情報を用いるように構成してもよい。
【００７５】
一方、ＡＰ作成部２１７は、当該ＡＶＤＩＤ、ＤＡのＡＶＤ情報を用いても、ＡＰが取得できなかった場合には、興味対象の位置に基づいて、当該最短エッジ上にＡＰを作成等する点は上記と同様である。そして、同様に、当該ファイナルＡＰを目的地として、非操作オブジェクトの移動を開始させ、当該ファイナルＡＰに到達した場合には、当該ＡＶＤＩＤ、ＤＡに関連付けられて記憶されている動作を行わせる。
【００７６】
これにより、例えば、図１０に示すように、興味対象がウェイコリジョンの内部にある場合（例えば、非操作オブジェクトが興味対象に到達できない場合）にも、非操作オブジェクトのＡＰを設定することができるとともに、非操作オブジェクトが当該ＡＰに到達した場合には非操作オブジェクトに所定の動作を行わせることができる。
【００７７】
次に、オブジェクト制御装置の処理のフローについて説明する。図１１乃至図１４は、オブジェクト制御装置のフローの概要について説明するための図である。
【００７８】
図１１に示すように、興味対象特定部２０４は、所定の基準に応じて、非操作オブジェクトの興味対象を特定し、当該対象オブジェクトの興味対象ＩＤ及びその位置情報を取得する（Ｓ１０１）。ＡＶＤ情報取得部２０５は、興味対象特定部２０４が取得した興味対象ＩＤに関連付けて記憶されているＡＶＤ情報を、その優先順位情報に基づいて、取得する（Ｓ１０２）。
【００７９】
後述するＳ２０１乃至Ｓ２０９で示すように、最寄りエッジを取得する最寄りエッジ取得処理を行う（Ｓ１０３）。具体的には、図１２に示すように、まず、ＡＣ位置情報取得部２０７は、興味対象特定部２０４が取得した興味対象の位置情報及びＡＶＤ情報取得部２０５が取得したＡＶＤ情報に基づいて、取得したＡＶＤ情報についてのＡＣの位置情報を算出、取得する（Ｓ２０１）。
【００８０】
エリア分割部２０８は、ＡＣ位置情報取得部２０７で取得されたＡＣの位置情報に基づいて、仮想空間を複数のエリアに分割する（Ｓ２０２）。最近傍エッジ決定部２０９は、エリア分割部２０８により分割されたエリア毎にＡＣからの距離が最も近いエッジである最近傍エッジを決定する（Ｓ２０３）。
【００８１】
レイキャスト判定部２１０は、最近傍エッジ決定部２０９に決定された各エリアの最近傍エッジの両端点とＡＣとの間におけるレイキャスト判定を行う。具体的には、まず、最近傍エッジの第１の端点（第１のノード）とＡＣ間のレイキャスト判定を行う（Ｓ２０４）。そして、当該レイキャスト判定に失敗した場合には、最近傍エッジの第２の端点（第２のノード）とＡＣ間のレイキャスト判定を行う（Ｓ２０５）。
【００８２】
そして、Ｓ２０４またはＳ２０５のいずれかにおいてレイキャスト判定に成功した場合には、Ｓ２０６に進み、最寄りエッジ取得部２１１に、当該最近傍エッジを識別するエッジ識別情報を、最寄りエッジ候補として取得させる（Ｓ２０６）。一方、Ｓ２０５でレイキャスト判定に失敗した場合にはＳ２０７に進む。
【００８３】
次に、各エリアにおける最近傍エッジのレイキャスト判定が終了したか否かを判定する（Ｓ２０７）。終了していないと判定した場合には、Ｓ２０４に戻る。一方、終了したと判定した場合には、Ｓ２０８に進む。
【００８４】
最寄りエッジ候補が取得されているか否かを判定する（Ｓ２０８）。Ｓ２０８で最寄りエッジが取得されていると判定した場合には、最寄りエッジ取得部２１１は、ＡＣから各最寄りエッジ候補の最近傍点までの距離を算出、比較し、最も距離が短い最寄りエッジ候補を、最寄りエッジとして、取得する（Ｓ２０９）。そして、Ｓ１０４へ進む。
【００８５】
一方、Ｓ２０８で最寄りエッジが取得されていないと判定した場合には、未処理のＡＶＤＩＤが存在するか否か判定する（Ｓ２１０）。具体的には、例えば、特定された興味対象ＩＤに関連付けられて記憶されている全てのＡＶＤＩＤについて、最寄りエッジ取得処理が行われたか否かを判定する。未処理のＡＶＤＩＤが存在すると判定した場合には、Ｓ１０２に進み、次の優先順位のＡＶＤ情報を取得する。一方、未処理のＡＶＤＩＤが存在しないと判定した場合には、後述するＳ１０９に進む。
【００８６】
Ｓ２０９で取得された最寄りエッジに対応するＡＶＤ情報に基づいて、ＡＰ取得処理を行う（Ｓ１０４）。具体的には、図１３に示すように、まず、ＡＰ展開部２１２は、当該ＡＶＤ情報に基づいて、ＡＰ候補群を展開し、各ＡＰ候補の位置情報を取得する（Ｓ３０１）。
【００８７】
ＡＰ候補について後述する判定が行われたか否かを判定する（Ｓ３０２）。全てのＡＰ候補について判定していないと判定した場合には、レイキャスト判定部２１０は、順にＡＰ候補の位置情報を取得し、ＡＰ候補とＡＣ間においてレイキャスト判定する（Ｓ３０３）。一方、全てのＡＰ候補について判定したと判定した場合には、後述するＳ３０８に進む。
【００８８】
一方、Ｓ３０３でＡＰ候補とＡＣ間のレイキャスト判定に成功したと判定した場合には、レイキャスト判定部２１０は、当該ＡＰ候補とＳ２０９で取得された最寄りエッジの第１のノードとの間においてレイキャスト判定する（Ｓ３０４）。
【００８９】
Ｓ３０４のレイキャスト判定に失敗した場合には、ＡＰ候補とＳ２０９で取得された最寄りエッジの第２のノードとの間においてレイキャスト判定する（Ｓ３０５）。Ｓ３０５のレイキャスト判定に失敗したと判定した場合には、Ｓ３０２に戻る。
【００９０】
Ｓ３０４またはＳ３０５でレイキャスト判定に成功した場合には、スペースチェック判定部２１３は、スペースチェックを行う（Ｓ３０６）。当該スペースチェックに失敗したと判定した場合には、Ｓ３０２に戻る。一方、スペースチェックに成功した場合には、ＡＰ取得部２１４は当該ＡＰ候補の位置情報をＡＰ候補として登録する（Ｓ３０７）。次に、Ｓ３０２に戻る。そして、上記のように、全てのＡＰ候補についてレイキャスト判定したと判定した場合には、ＡＰ候補が登録されているか否か判定し（Ｓ３０８）、登録されていると判定した場合にはＳ１０５に進み、登録されていないと判定した場合にはＳ１０９に進む。なお、上記においては１のＡＰ候補とＡＣ間におけるレイキャスト判定に成功する毎に当該ＡＰ候補とノード間におけるレイキャスト判定等行う処理について説明したが、これに限られず、まず全てのＡＰ候補群及びＡＣとのレイキャスト判定を行い、当該レイキャスト判定に成功したＡＰ候補群について、次にノードとの間のレイキャスト判定を行う等、実質的に同一の処理である限り、異なる処理であってもよいことはいうまでもない。
【００９１】
ＡＰ取得部２１４は、登録された各ＡＰ候補から非操作オブジェクトへの各距離を算出する。そして、当該各ＡＰ候補からオブジェクトへの各距離を比較し、最も距離の短い距離を有するＡＰ候補を、ＡＰとして、取得する（Ｓ１０５）。
【００９２】
非操作オブジェクト動作制御部４０２は、取得されたＡＰの位置情報が示す位置に向かってオブジェクトを移動させる（Ｓ１０６）。
【００９３】
到達判定部２１５は、例えば、所定期間毎に、当該ＡＰの位置情報と非操作オブジェクトの位置情報に基づいて、非操作オブジェクトがＡＰに到達したか否かを判定する（Ｓ１０７）。そして、到達していないと判定した場合には、例えば、Ｓ１０１に戻り、再度上記と同様の処理を行う。一方、到達判定部２１５が、到達したと判定した場合には、当該ＡＰに対応するＡＶＤ情報に関連付けて記憶された動作を行わせる（Ｓ１０８）。
【００９４】
次に、Ｓ２１０で未処理のＡＶＤＩＤが存在しないと判定した場合、または、Ｓ３０３で全てのＡＰ候補についてレイキャスト判定したと判定した場合の処理のフローについて図１４を用いて説明する。
【００９５】
図１４に示すように、まず、最短エッジ取得部２１６は、興味対象特定部２０４により取得された興味対象の位置情報と、エッジの位置情報に基づいて、特定された興味対象から一番距離の近いエッジである最短エッジのエッジＩＤを取得する（Ｓ１０９）。
【００９６】
レイキャスト判定部２１０は、最短エッジ取得部２１６により取得された最短エッジの両端点と、優先順位情報が１のＡＶＤのＡＣとのレイキャスト判定を行う（Ｓ１１０）。いずれか一方の端点と当該ＡＣとの間のレイキャスト判定に成功した場合には、レイキャスト判定が成功したものとする等については上述と同様であるので、詳細なフローについては説明を省略する。
【００９７】
Ｓ１１０でレイキャスト判定に成功した場合には、ＡＶＤＩＤ、３６０のＡＶＤ情報を、ＡＶＤ情報記憶部２１９から取得する（Ｓ１１１）。Ｓ１１１で取得されたＡＶＤＩＤ、３６０のＡＶＤ情報及びＳ１１０で取得された最短エッジに基づいて、Ｓ１０４のＡＰ取得処理と同様の処理を行う（Ｓ１１２）。そして、ＡＰ候補が取得されたか否かを判定する（Ｓ１１３）。Ｓ１１２でＡＰ候補が取得されたと判定した場合には、Ｓ１０５に進む。
【００９８】
一方、Ｓ１１０で、レイキャスト判定に失敗したと判定した場合には、ＡＶＤ情報取得部２０５は、ＡＶＤＩＤ、ＤＡのＡＶＤ情報（代理ボリューム）を、例えば、ＡＶＤ情報記憶部２１９から取得する（Ｓ１１４）。
【００９９】
代理ポイント取得部２１８は、上述のように最短エッジや興味対象、非操作オブジェクトの位置情報と、ウェイコリジョンの位置情報に基づいて、興味対象特定部２０４で特定された興味対象の位置情報の代理（代理ポイント）となる位置情報（代理位置情報）を取得する（Ｓ１１５）。
【０１００】
Ｓ１１４で取得されたＡＶＤＩＤ、ＤＡのＡＶＤ情報及びＳ１１０で取得された最短エッジに基づいて、Ｓ１０４のＡＰ取得処理と同様の処理を行う（Ｓ１１６）。なお、この場合、ＡＣの位置情報の取得については、興味対象の位置情報の代わりに、代理位置情報を用いてＡＣの位置情報を算出し、当該ＡＣの位置情報に基づいてＡＰ候補群を展開等する。そして、ＡＰ候補が取得されたか否かを判定する（Ｓ１１７）。Ｓ１１６でＡＰ候補が取得されたと判定した場合には、Ｓ１０５に進む。
【０１０１】
一方、Ｓ１１２またはＳ１１６でＡＰ候補が取得されなかったと判定された場合には、ＡＰ作成部２１７は、興味対象の位置に基づいて、当該最短エッジ上にＡＰを作成する（Ｓ１１８）。そして、Ｓ１０５に進み、ＡＰ取得部２１４は、当該作成されたＡＰをＡＰとして、取得する。なお、上記処理のフローは、例えば、所定フレーム期間毎に行われるように構成してもよいし、上記処理のフローには、ある程度の時間を要するため、処理が一巡する毎に上記処理のフローが行われるように構成してもよい。つまり、例えば、本実施の形態によれば、移動に伴い、興味対象が特定され目的地が定められることから、移動に応じて目的地が変化することとなる。
【０１０２】
なお、上記図１１乃至図１４で示した処理のフローは一例であって、種々の変形が可能である。例えば、上記実施の形態で示した構成と実質的に同一のフロー、同一の作用効果を奏するフロー又は同一の目的を達成することができるフローで置き換えることができる。
【０１０３】
また、本発明は、上記実施の形態に限定されるものではなく、種々の変形が可能である。例えば、上記実施の形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。
【０１０４】
具体的には、例えば、操作オブジェクト、非操作オブジェクト、興味対象は、上記で示した数に限られず、それぞれ２以上の複数であってもよい。この場合、複数の操作オブジェクトは、１または複数のユーザにより操作されてもよいし、複数の非操作オブジェクトは、互いに独立して非操作オブジェクト制御部により制御されてもよい。また、上記においては、操作オブジェクトと非操作オブジェクトとを用いて説明したが、操作オブジェクトは、必ずしもユーザの指示に基づいて動作する必要はなく、上記非操作オブジェクトと同様に、ユーザの指示によらずに、あらかじめ設定されたプログラム等に応じて動作するように構成してもよい。
【０１０５】
なお、特許請求の範囲に記載の目的地候補情報記憶手段は、例えば、ランキング情報記憶部２０６及びＡＶＤ情報記憶部２１９を含み、目的地情報取得手段は、例えば、ＡＰ展開部２１２、スペースチェック判定部２１３、ＡＰ取得部２１４を含み、経路情報特定手段は、最寄りエッジ取得部２１１を含む。
【０１０６】
ここで、上記に加えて、非操作オブジェクトを構成する一部の部位、例えば、頭部や顔、の方向を制御する場合について説明する。
【０１０７】
図１５は、非操作オブジェクトを構成する一部の部位の方向を制御する処理を行う際におけるオブジェクト制御装置の機能的な構成について説明するための図である。図１５に示すように、オブジェクト制御装置１００は、図２に示した構成に加えて、時間計数部１５１、時間判定部１５２、及び、保持部１５３を有する。なお、下記においては、説明の簡略化のため、当該オブジェクト制御装置１００において実現される仮想空間が図１６に示した場合を例として説明する。
【０１０８】
ここで、図１６Ａ乃至図１６Ｅに示すように、非操作オブジェクト１６１は、非操作オブジェクト１６１を構成する部位の一部として、目等を含む顔や頭部１６２を有する。また、仮想空間において、非操作オブジェクト１６１に対する障害物としての壁１６３及び興味対象１６４が配置される。なお、下記において、上記と同様である点については説明を省略する。
【０１０９】
興味対象動作制御部４０３は、例えば、あらかじめ設定された経路に応じて、興味対象１６４を移動させる。具体的には、例えば、図１６Ａ乃至図１６Ｅに示すように、興味対象動作制御部４０３は、図中矢印の方向（図中下方）に向かって興味対象１６４を移動させる等である。なお、当該経路は、例えば、空間ＤＢ２０２に記憶される等については上記と同様である。なお、図１６Ａ乃至図１６Ｅにおいては、１の興味対象１６４のみを示しているが、複数の興味対象をそれぞれ移動等させる構成としてもよい。
【０１１０】
興味対象特定部２０４は、所定の基準に応じて、非操作オブジェクトの興味対象として、１または複数の興味対象を特定するとともに、当該特定された興味対象のうち、興味の優先度を示す興味レベルが最も高い（興味レベルが１）興味対象を特定する。なお、ここで、当該興味レベルは、例えば、各興味対象の位置情報や非操作オブジェクトの位置情報やその他の興味対象に関連付けられた点数等に基づいて決定される動的な情報であり、興味対象を識別する情報とともに、空間ＤＢ２０２に保持される。また、興味対象特定部２０４は、例えば、所定期間毎に、当該特定された興味対象の位置情報を取得する。具体的には、例えば、図１６Ａ乃至図１６Ｅに示した場合、興味対象特定部２０４は、所定期間毎に興味対象１６４の位置情報を取得する。なお、図１６Ａ乃至図１６Ｅにおいては、興味対象として興味対象１６４が特定されるとともに、興味レベルが１の興味対象として興味対象１６４が特定されたものとする。
【０１１１】
レイキャスト判定部２１０は、例えば、興味対象特定部２０４が特定した興味対象の位置情報及び非操作オブジェクトの位置情報を空間ＤＢ２０２から取得するとともに、壁等の非操作オブジェクトに対する障害物を形成する障害物の位置情報を取得する。そして、レイキャスト判定部２１０は、当該興味対象、非操作オブジェクト、及び、障害物の位置情報に基づいて、当該興味対象と当該非操作オブジェクトとのレイキャスト判定を行う。具体的には、興味対象と非操作オブジェクトとを結んだ線分上に障害物が存在するか否かを判定し、障害物が存在しない場合には、レイキャスト判定に成功したと判定する。なお、この場合において、非操作オブジェクトの位置情報としては、非操作オブジェクトを構成する一部の部位（例えば、頭部）の位置情報を用いてもよい。なお、複数の興味対象が特定されている場合には、各興味対象について、上述のレイキャスト判定が行われる。
【０１１２】
具体的には、レイキャスト判定部２１０は、例えば、図１６Ａに示した場合、興味対象１６４と非操作オブジェクト１６１とを結んだ線分１６５上に、壁１６３等は存在しないことから、レイキャスト判定に成功したと判定する。一方、レイキャスト判定部２１０は、例えば、図１６Ｂに示した場合、興味対象１６４と非操作オブジェクト１６１とを結んだ線分１６６上に、壁１６３が存在することから、レイキャスト判定に失敗したと判定する。
【０１１３】
時間計数部１５１は、１または複数の興味対象と非操作オブジェクトとの間に、障害物が存在したと判定した場合に時間の計数を開始する。具体的には、上記例の場合、興味対象１６４が、図１６Ｂに示した位置にまで移動した際に、時間の計数を開始する。そして、時間判定部１５２は、時間計数部１５１に計数される時間が所定時間に達したか否か判定する。時間判定部１５２が当該所定時間に達したと判定した場合には、保持部１５３は、そのときの興味対象の位置情報を取得し保持する。なお、当該興味対象の位置情報は、例えば、興味対象動作制御部４０３や空間ＤＢ２０２から取得される。また、当該所定時間は、障害物の種類や興味対象の種類等に応じて異なる値を設定してもよい。また、保持部１５３は、記憶部１０２に含まれるように構成してもよい。
【０１１４】
具体的には、例えば、図１６Ｃに示した位置１６７（注視位置）が、図１６Ｂに示した興味対象１６４の位置から所定時間経過後の興味対象１６４の位置であるとすると、保持部１５３は、注視位置１６７の位置情報を取得し保持する。また、保持部１５３は、レイキャスト判定部２１０が、当該興味対象について、レイキャスト判定に再び成功したと判定した場合や、興味対象動作制御部４０３が当該興味対象に所定の処理、例えば、音を出力させる処理、を行わせる場合には、保持された当該興味対象の位置情報を削除する。具体的には、例えば、図１６Ｄに示したように、レイキャスト判定に再び成功した場合に、保持部１５３に保持されている当該興味対象１６４の位置情報を削除する。また、例えば、図１６Ｅに示した位置において、興味対象１６４が音を発したとすると、保持部１５３に保持されている興味対象１６４の位置情報を削除する。なお、複数の興味対象が特定されている場合には、各興味対象について、上述の処理、つまり、時間計数の開始や所定時間経過後の位置情報の取得や削除が行われる。
【０１１５】
非操作オブジェクト動作制御部４０２は、後述する保持部１５３に上記興味レベルが１の興味対象が特定されているか否かを判定し、当該判定結果に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する。具体的には、興味レベル１の興味対象の位置情報が保持部１５３に保持されていると判定した場合には、当該保持部１５３に保持された興味レベルが１の位置情報を取得し、当該位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する。例えば、上記例の場合、図１６Ａ及び図１６Ｂに示した場合については、興味対象１６４（興味レベル１の興味対象）の位置情報が保持部１５３に保持されていないため、非操作オブジェクト１６１の一部を構成する部位である顔または頭部１６２が、興味対象１６４の方向を向くように制御する。言い換えれば、興味対象１６４の移動に応じて、興味対象１６４の方向に顔または頭部１６２が回転等して追跡するように制御する。
【０１１６】
一方、興味レベル１の興味対象の位置情報が当該保持部１５３に保持されていると判定した場合には、現在の興味レベル１の興味対象の位置情報を、例えば、空間ＤＢ２０２から取得し、当該位置情報に基づいて、非操作オブジェクト１６１の一部を構成する部位の方向を制御する。例えば、上記例の場合、図１６Ｃに示した場合には、上記のように興味対象１６４について注視位置１６７の位置情報が保持部１５３に保持されていることから、当該注視位置１６７の方向を非操作オブジェクト１６１の顔または頭部１６２が向くように（注視するように）非操作オブジェクト１６１の顔または頭部１６２を制御する。そして、図１６Ｄに示すように、再度興味対象１６４と非操作オブジェクト１６１とのレイキャスト判定に成功した場合には、保持部１５３に保持された当該興味対象１６４の位置情報が削除されることから、非操作オブジェクト動作制御部４０２は、興味対象１６４の現在の位置情報に基づいて、非操作オブジェクト１６１の顔または頭部１６２を制御する。つまり、非操作オブジェクト１６１の顔または頭部１６２は、興味対象１６４を追跡するように回転等する。また、図１６Ｅに示すように、再度興味対象１６４と非操作オブジェクト１６１とのレイキャスト判定に成功しない場合であっても、興味対象１６４が音を発する等の所定の処理を行う場合には、同様に、非操作オブジェクト動作制御部４０２は、興味対象１６４の現在の位置情報に基づいて、非操作オブジェクト１６１の顔または頭部１６２を制御する。言い換えれば、壁１６３越しに、興味対象１６４の移動に応じて、非操作オブジェクト１６１の顔または頭部１６２が興味対象１６４の方向を向くように制御する。
【０１１７】
つまり、動作制御部２０１に含まれる非操作オブジェクト動作制御部４０２は、上記のように非操作オブジェクトの移動等の動作制御に加え、時間計数部１５１に計数された時間が所定時間に達する前は、興味対象特定部２０４により取得された興味対象のうち非操作オブジェクトの興味の優先順位が最も高い興味対象（興味レベルが１の興味対象）の位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する。具体的には、例えば、図１６Ａ及び図１６Ｂに示すように、非操作オブジェクト１６１が動物等を表す場合においては、当該非操作オブジェクト１６１の顔または頭部１６２が当該興味対象１６４の方向を向くように制御する。つまり、興味対象１６４の移動に応じて、非操作オブジェクト１６１の顔または頭部１６２が当該興味対象１６４を追跡するように回転等させる。
【０１１８】
一方、時間計数部１５１に計数された時間が所定時間に達した後は、非操作オブジェクト動作制御部４０２は、保持部１５３により保持された興味レベルが１の興味対象の位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する。具体的には、例えば、図１６Ｃに示すように、当該非操作オブジェクト１６１の顔または頭部１６２が、保持部１５３により保持された興味レベルが１の興味対象１６４の位置情報で示される位置（注視位置１６７）の方向を向くように制御する（注視制御）。ここで、保持された興味対象の位置情報で示される位置とは、上述のように時間計数部１５１に計数された時間が所定時間に達した際における興味レベルが１の興味対象の位置に相当する。
【０１１９】
そして、当該注視制御は、再び興味対象が、非操作オブジェクトから見えるようになったとき、または、興味対象が音を発生する処理を行ったときまで継続して行われる。具体的には、例えば、レイキャスト判定部２１０は、時間計数部１５１に計数された時間が所定時間に達した後においても、所定期間毎に非操作オブジェクトと興味対象との間における上述のレイキャスト判定を行う。そして、例えば、図１６Ｄに示すように、レイキャスト判定に成功した場合には、非操作オブジェクト動作制御部４０２は、当該注視制御を解除し、その後は、興味対象１６４の位置情報に基づいて、非操作オブジェクト１６１の一部を構成する部位の方向を制御する等上述の処理を行う。
【０１２０】
また、興味対象動作制御部４０３が興味対象に所定の処理、例えば、音を発する処理を行わせる場合には、同様に、非操作オブジェクト動作制御部４０２は、当該注視制御を解除し、その後は、興味対象の位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する等の上述した処理を行う。つまり、例えば、図１６Ｅに示した興味対象１６４の位置において、当該興味対象１６４が音を出力したとすると、非操作オブジェクト動作制御部４０２は、非操作オブジェクト１６１の顔または頭部１６２が、注視位置１６７から、音を発した際の興味対象の位置の方向を向くように制御する。その後は、その後の興味対象１６４の位置情報に応じて、非操作オブジェクト１６１の一部を構成する顔または頭部１６２の方向を制御する。つまり、この場合、音を発した後は、顔または頭部１６２は、壁１６３越しに興味対象１６４の方向を向くこととなる。
【０１２１】
次に、図１７、図１８を用いて、非操作オブジェクトを構成する一部の部位の方向を制御する処理のフローの概要について説明する。なお、下記においても、説明の簡略化のため、図１６Ａ乃至図１６Ｅに示した場合を例として説明する。
【０１２２】
図１７に示すように、興味対象特定部２０４は、興味対象特定部２０４は、所定の基準に応じて、非操作オブジェクトの１または複数の興味対象を特定する（Ｓ４０１）。なお、複数の興味対象を特定する場合には、興味対象毎に下記の処理が行われる。
【０１２３】
レイキャスト判定部２１０は、所定期間毎に、当該興味対象、非操作オブジェクト、及び、障害物の位置情報に基づいて、当該興味対象と当該非操作オブジェクトとのレイキャスト判定を行う（Ｓ４０２）。
【０１２４】
そして、レイキャスト判定に成功した場合、つまり、例えば、図１６Ａに示す場合のように、当該興味対象と当該非操作オブジェクトとの間に障害物が存在しないと判定した場合には、Ｓ４０２に戻る。
【０１２５】
一方、Ｓ４０３でレイキャスト判定に失敗したと判定した場合、つまり、例えば、図１６Ｃに示す場合のように、興味対象と非操作オブジェクトとの間に障害物が存在したと判定した場合、時間計数部１５１は、時間の計数を開始する（Ｓ４０３）。次に、時間判定部１５２は、時間計数部１５１に計数される時間が所定時間に達したか否かを判定し（Ｓ４０４）、所定時間に達したと判定した場合には、保持部１５３は、そのときの興味対象の位置情報（注視位置情報）を取得し保持する（Ｓ４０５）。例えば、図１６Ｃの注視位置１６７にまで興味対象１６４が移動した際に所定時間に達したとすると、当該注視位置１６７の位置情報を取得し保持する。一方、所定時間に達していないと判定した場合には、Ｓ４０４に戻る。なお、Ｓ４０３で時間計数が開始されてからＳ４０４で所定時間経過するまでの間にレイキャスト判定に成功した場合（例えば、壁１６３の長さが短く、非操作オブジェクト１６１から見て壁１６３に興味対象１６４が隠れている状態が所定時間に達しない場合）においては、Ｓ４０２に戻る。
【０１２６】
レイキャスト判定部２１０は、所定期間毎に非操作オブジェクトと興味対象との間における上述のレイキャスト判定を行う（Ｓ４０６）。そして、Ｓ４０６でレイキャスト判定に成功したと判定した場合には、後述するＳ４０８に進む。
【０１２７】
一方、Ｓ４０６でレイキャスト判定に失敗したと判定した場合には、Ｓ４０７に進み、興味対象動作制御部４０３が興味対象に所定の処理、例えば、音を出力させる処理、を行わせるか否かを判定する（Ｓ４０７）。そして、興味対象動作制御部４０３が音を出力させる処理を行わせると判定した場合には、後述するＳ４０８に進む。一方、興味対象動作制御部４０３が音を出力させる処理を行わせていないと判定した場合には、Ｓ４０６に戻る。
【０１２８】
Ｓ４０６でレイキャスト判定に成功したと判定した場合、及び、Ｓ４０７で興味対象動作制御部４０３が音を出力させる処理を行わせると判定した場合には、保持部１５３に保持されている興味対象の位置情報を削除する（Ｓ４０８）。なお、上記のように、Ｓ４０１で非操作オブジェクトに対して複数の興味対象を特定する場合には、Ｓ４０２乃至Ｓ４０８の処理は、興味対象毎に行われる。この場合、保持部１５３には、例えば、各興味対象を識別する識別情報毎に、対応する各注視位置情報が保持され、また、削除される。
【０１２９】
次に、非操作オブジェクトを構成する一部の部位の方向を制御する処理のフローについて、非操作オブジェクト制御部４０２の処理のフローを主として説明する。なお、上記と同様に、説明の簡略化のため、図１６Ａ乃至図１６Ｅに示した場合を例として説明する。
【０１３０】
図１８に示すように、上記非操作オブジェクトの興味対象のうち、非操作オブジェクトの興味の優先度を示す興味レベルが最も高い（興味レベルが１）の興味対象を特定する（Ｓ５０１）。次に、非操作オブジェクト動作制御部４０２は、上記興味レベルが１の興味対象の位置情報が、保持部１５３に保持されているか否か判定する（Ｓ５０２）。興味レベル１の興味対象の位置情報が保持部１５３に保持されていると判定した場合には、当該保持部１５３に保持された興味レベルが１の位置情報を取得し、当該位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する（Ｓ５０３）。この場合、上記と同様に、例えば、図１６Ｅに示すように、非操作オブジェクト動作制御部４０２は、非操作オブジェクト１６１の顔または頭部１６２が注視位置１６７の方向を向くように制御する。一方、興味レベル１の興味対象の位置情報が当該保持部１５３に保持されていないと判定した場合には、現在の興味レベル１の興味対象の位置情報を、例えば、空間ＤＢ２０２から取得し、当該位置情報に基づいて、非操作オブジェクトの一部を構成する部位の方向を制御する（Ｓ５０４）。上記と同様にこの場合、例えば、図１６Ａ、図１６Ｄ、及び図１６Ｅに示すように、非操作オブジェクト動作制御部４０２は、非操作オブジェクト１６１の顔または頭部１６２が、興味対象１６４の方向を向くように制御する。次に、非操作オブジェクト動作制御部４０２は、興味レベル１の興味対象が変更されたか否かを判定する（Ｓ５０５）。変更されていないと判定した場合には、Ｓ５０２に戻る。一方、変更されたと判定した場合には、Ｓ５０１に戻る。上記のように構成することで、仮想空間において、オブジェクトを構成する部位の一部、例えば、オブジェクトの頭部や顔等が興味対象に向くように制御するとともに、当該興味対象が壁の後ろ側等に移動した場合においても、オブジェクトにより自然な動きを表現することのできるオブジェクト制御プログラム、オブジェクト制御プログラムを記憶したコンピュータ読み取り可能な記録媒体、オブジェクト制御装置、オブジェクト制御方法を実現することができる。また、複数の興味対象について、図１７に示した処理（見失い処理）を図１８に示した処理と独立して行わせることにより、例えば、興味レベルが１の興味対象が変更した場合においても、変更後の興味レベル１の興味対象についても見失い処理が行われる。よって、興味レベルが変更され、興味レベルが１の興味対象が変更された場合においても、当該興味対象についての見失い処理の内容を反映して、非操作オブジェクトの一部の部位の方向を制御することができる。例えば、当該変更後の興味レベルが１の興味対象が非操作オブジェクトからみて障害物に隠れているような場合においても、非操作オブジェクトが当該変更後の興味レベルが１の興味対象の方向を向くようにすることもできる。これは、特に、変更後に興味レベルが１の興味対象が、音を発する等に起因して興味レベルが変更等されたような場合に有用である。
【０１３１】
なお、上記に示した非操作オブジェクトを構成する一部の部位、例えば、顔または頭部、の方向を制御する場合のオブジェクト制御装置１００の機能的な構成やその処理のフローは、一例にすぎず、種々の変形が可能である。例えば、上記においては、Ｓ４０６でレイキャスト判定を行った後に、Ｓ４０７で音等の発生についての判定を行う場合について説明したが、Ｓ４０５の処理の後に、Ｓ４０６とＳ４０７の処理を並列して行い、Ｓ４０６のレイキャスト判定に失敗した場合、及び、Ｓ４０７の音発生処理が行われない場合に、Ｓ４０６とＳ４０７の並列処理に戻るように構成してもよい。
【０１３２】
また、上記図１６Ａ乃至図１６Ｅにおいては、説明の簡略化のため、興味対象が移動する場合を例として説明したが、興味対象と非操作オブジェクトの双方が移動し、非操作オブジェクトを構成する部位の一部が興味対象の方向を向きつつ非操作オブジェクトが移動するように構成してもよい。更に、上記においては、非操作オブジェクトを構成する部位の一部を興味対象の方向へ向かせる場合を例として説明したが、非操作オブジェクトを構成する部位の一部を操作オブジェクトに向かせる場合について適用してもよい。また、この場合、操作オブジェクトに代えて別の非操作オブジェクトを設け、非操作オブジェクト相互間で適用してもよい。
【０１３３】
また、上記においては、興味対象と非操作オブジェクトの間に壁等の障害物が存在すると判定した後、所定の条件が満たされるまで（例えば、再び非操作オブジェクトから興味対象が見えるようになる等）、興味対象の位置情報で示される位置を非操作オブジェクトを構成する部位の一部が向く構成について説明したが、これに限られず、興味対象と非操作オブジェクトの間に壁等の障害物が存在すると判定する直前の興味対象の位置情報等に基づいて、興味対象の移動速度や加速度情報を求め、当該移動速度や加速度情報に基づいて現在の興味対象の位置を求める演算部を設け、当該位置を向くように構成してもよい。更に、所定の場合には、上記保持部１５３に保持された興味対象の位置情報を、上記興味対象の目的地候補情報の位置情報を取得するために用いるように構成してもよい。
【符号の説明】
【０１３４】
１００  オブジェクト制御装置、１０１  制御部、１０２  記憶部、１０３  通信部、１０４  操作部、１０５  表示部、１５１  時間計数部、１５２  時間判定部、１５３  保持部、２０１  動作制御部、２０２  空間ＤＢ、２０３  空間情報生成部、２０４  興味対象特定部、２０５  ＡＶＤ情報取得部、２０６  ランキング情報記憶部、２０７  ＡＣ位置情報取得部、２０８  エリア分割部、２０９  最近傍エッジ決定部、２１０  レイキャスト判定部、２１１  最寄りエッジ取得部、２１２  ＡＰ展開部、２１３  スペースチェック判定部、２１４  ＡＰ取得部、２１５  到達判定部、２１６  最短エッジ取得部、２１７  ＡＰ作成部、２１８  代理ポイント取得部、２１９  ＡＶＤ情報記憶部、４０１  操作オブジェクト動作制御部、４０２  非操作オブジェクト動作制御部、４０３  興味対象動作制御部。
【図１】
2013059423.tif 000003
【図２】
2013059423.tif 000004
【図３】
2013059423.tif 000005
【図４】
2013059423.tif 000006
【図５】
2013059423.tif 000007
【図６】
2013059423.tif 000008
【図７】
2013059423.tif 000009
【図８Ａ】
2013059423.tif 000010
【図８Ｂ】
2013059423.tif 000011
【図８Ｃ】
2013059423.tif 000012
【図８Ｄ】
2013059423.tif 000013
【図８Ｅ】
2013059423.tif 000014
【図８Ｆ】
2013059423.tif 000015
【図８Ｇ】
2013059423.tif 000016
【図８Ｈ】
2013059423.tif 000017
【図８Ｉ】
2013059423.tif 000018
【図９】
2013059423.tif 000019
【図１０】
2013059423.tif 000020
【図１１】
2013059423.tif 000021
【図１２】
2013059423.tif 000022
【図１３】
2013059423.tif 000023
【図１４】
2013059423.tif 000024
【図１５】
2013059423.tif 000025
【図１６Ａ】
2013059423.tif 000026
【図１６Ｂ】
2013059423.tif 000027
【図１６Ｃ】
2013059423.tif 000028
【図１６Ｄ】
2013059423.tif 000029
【図１６Ｅ】
2013059423.tif 000030
【図１７】
2013059423.tif 000031
【図１８】
2013059423.tif 000032