(57)【特許請求の範囲】
【請求項１】
仮想空間にてキャラクタの動作を制御する動作制御部と、
キャラクタと背景とを表示する表示部と、
表示した前記背景のオブジェクトと、仮想空間の前記キャラクタと重ならない位置に設けられた仮想体とが接触する複数の接触位置情報を検出する検出部と、
検出した複数の前記接触位置情報に応じて、前記キャラクタの次の動作の目標位置を示す前記背景のオブジェクトのエッジの目標位置情報を特定する特定部と、を有し、
前記検出部は、
前記キャラクタの位置、該キャラクタの移動速度及び入力操作に基づく該キャラクタの操作方向の情報に応じた仮想空間の位置にて前記仮想体に所定の動作を行わせ、前記背景のオブジェクトと前記仮想体とが接触する複数の前記接触位置情報を検出し、
検出した複数の前記接触位置情報のうちから、前記キャラクタの次の動作の目標位置の候補として、記憶部に記憶された目標候補位置情報よりも前記背景のオブジェクトのエッジの位置に近いと判定された前記接触位置情報によって前記記憶部に記憶された目標候補位置情報を更新し、
前記特定部は、
前記記憶部を参照して、前記キャラクタの位置から前記目標候補位置情報が示す目標候補位置に向かってレイキャストを行い、レイキャストした前記キャラクタの位置と前記目標候補位置との間にオブジェクトが存在する場合、前記目標候補位置を、存在した前記オブジェクトのエッジとして認識し、該目標候補位置の情報を該オブジェクトのエッジの目標位置情報と特定する、情報処理装置。
【請求項２】
前記検出部は、複数の前記仮想体に所定の動作を行わせ、前記仮想体毎に前記オブジェクトと接触する複数の前記接触位置情報を検出する、
請求項１に記載の情報処理装置。
【請求項３】
前記動作制御部は、前記エッジの目標位置情報により特定されるエッジの目標位置を目標にした動作を制御する、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記動作制御部は、前記エッジの目標位置を目標にして該キャラクタの振り子運動による動作を制御する、
請求項３に記載の情報処理装置。
【請求項５】
前記動作制御部は、前記エッジの目標位置に対する一入力操作に応じてキャラクタと前記エッジの目標位置に存在するオブジェクトとを連携させて該キャラクタの動作を制御する、
請求項４に記載の情報処理装置。
【請求項６】
仮想空間にてキャラクタの動作を制御し、
キャラクタと背景とを表示し、
表示した前記背景のオブジェクトと、仮想空間の前記キャラクタと重ならない位置に設けられた仮想体とが接触する複数の接触位置情報を検出し、
検出した複数の前記接触位置情報に応じて、前記キャラクタの次の動作の目標位置を示す前記背景のオブジェクトのエッジの目標位置情報を特定し、
前記キャラクタの位置、該キャラクタの移動速度及び入力操作に基づく該キャラクタの操作方向の情報に応じた仮想空間の位置にて前記仮想体に所定の動作を行わせ、前記背景のオブジェクトと前記仮想体とが接触する複数の前記接触位置情報を検出し、
検出した複数の前記接触位置情報のうちから、前記キャラクタの次の動作の目標位置の候補として、記憶部に記憶された目標候補位置情報よりも前記背景のオブジェクトのエッジの位置に近いと判定された前記接触位置情報によって前記記憶部に記憶された目標候補位置情報を更新し、
前記記憶部を参照して、前記キャラクタの位置から前記目標候補位置情報が示す目標候補位置に向かってレイキャストを行い、レイキャストした前記キャラクタの位置と前記目標候補位置との間にオブジェクトが存在する場合、前記目標候補位置を、存在した前記オブジェクトのエッジとして認識し、該目標候補位置の情報を該オブジェクトのエッジの目標位置情報と特定する、
処理をコンピュータが実行する位置情報検出方法。
【請求項７】
仮想空間にてキャラクタの動作を制御し、
キャラクタと背景とを表示し、
表示した前記背景のオブジェクトと、仮想空間の前記キャラクタと重ならない位置に設けられた仮想体とが接触する複数の接触位置情報を検出し、
検出した複数の前記接触位置情報に応じて、前記キャラクタの次の動作の目標位置を示す前記背景のオブジェクトのエッジの目標位置情報を特定し、
前記キャラクタの位置、該キャラクタの移動速度及び入力操作に基づく該キャラクタの操作方向の情報に応じた仮想空間の位置にて前記仮想体に所定の動作を行わせ、前記背景のオブジェクトと前記仮想体とが接触する複数の前記接触位置情報を検出し、
検出した複数の前記接触位置情報のうちから、前記キャラクタの次の動作の目標位置の候補として、記憶部に記憶された目標候補位置情報よりも前記背景のオブジェクトのエッジの位置に近いと判定された前記接触位置情報によって前記記憶部に記憶された目標候補位置情報を更新し、
前記記憶部を参照して、前記キャラクタの位置から前記目標候補位置情報が示す目標候補位置に向かってレイキャストを行い、レイキャストした前記キャラクタの位置と前記目標候補位置との間にオブジェクトが存在する場合、前記目標候補位置を、存在した前記オブジェクトのエッジとして認識し、該目標候補位置の情報を該オブジェクトのエッジの目標位置情報と特定する、
処理をコンピュータに実行させる位置情報検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、位置情報検出方法及び位置情報検出プログラムに関する。
【背景技術】
【０００２】
仮想空間にプレイヤーキャラクタと背景とを表示し、遊技者の操作に応じてプレイヤーキャラクタに所定の動作を行わせる技術が知られている。（例えば、特許文献１参照）。
【０００３】
プレイヤーキャラクタを操作する遊技者が回転や並進等の入力操作を行うと、該入力操作に応じてプレイヤーキャラクタの位置、方向等がどのように変化するかを求める演算処理が行われる。次に、プレイヤーキャラクタの位置、方向等の変化に伴い、背景の建物等のオブジェクトが画面上でどのように見えるかを求める演算処理が行われる。この演算処理には、予め記憶部に記憶された各オブジェクトの位置情報が使用される。
【０００４】
上記二つの演算処理は、遊技者による操作に追従してリアルタイムで行われる。これにより、遊技者による操作に応じて背景のオブジェクト間を移動するプレイヤーキャラクタを画面上に表示することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２７６４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の技術では、背景のオブジェクト毎の位置情報を予め記憶する必要があり、煩雑である。また、上記の技術では、背景のオブジェクト毎の位置情報は固定値であり、プレイヤーキャラクタの移動方向やオブジェクトとの相対位置関係等のプレイヤーキャラクタの状態に応じて、仮想空間にてプレイヤーキャラクタを適切に動作させることは難しい。特に、オブジェクトが動的に移動する場合、仮想空間にてプレイヤーキャラクタをオブジェクトの位置に応じて適切に動作させることは困難である。
【０００７】
そこで、一側面では、本発明は、仮想空間にてキャラクタを適切に動作させることを目的とする。
【課題を解決するための手段】
【０００８】
一つの案では、仮想空間にてキャラクタの動作を制御する動作制御部と、キャラクタと背景とを表示する表示部と、表示した前記背景のオブジェクトと仮想空間に設けられた仮想体とが接触する接触位置情報を検出する検出部と、検出した前記接触位置情報に応じて前記背景のオブジェクトの形状に関する特徴位置情報を特定する特定部と、を有する、情報処理装置が提供される。
【発明の効果】
【０００９】
一側面によれば、仮想空間にてキャラクタを適切に動作させることができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態にかかる情報処理装置の機能構成の一例を示す図。
【図２】一実施形態にかかる接触位置テーブルのデータ構成の一例を示す図。
【図３】一実施形態にかかる目標候補位置テーブルのデータ構成の一例を示す図。
【図４】一実施形態にかかる情報処理装置のハードウェア構成の一例を示す図。
【図５】一実施形態にかかる衝突処理の一例を示すフローチャート。
【図６】一実施形態にかかるエッジ検出及び目標位置の一例を示す図。
【図７】一実施形態にかかる衝突位置の一例を示す図。
【図８】一実施形態にかかるエッジ検出及び目標位置の一例を示す図。
【図９】一実施形態にかかる目標位置判定処理の一例を示すフローチャート。
【図１０】一実施形態にかかるエッジ検出及び目標位置の一例を示す図。
【図１１】一実施形態にかかるエッジ検出及び目標位置の一例を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１２】
［情報処理装置の機能構成］
まず、本発明の一実施形態に係る情報処理装置１０の機能構成の一例について、図１を参照しながら説明する。本実施形態に係る情報処理装置１０は、パーソナルコンピュータ、タブレット型機器、ゲーム機器、スマートフォン等のいずれの電子機器であってもよい。
【００１３】
情報処理装置１０は、入力部１１、検出部１２、記録部１３、特定部１４、動作制御部１５、グラフィック処理部１６、サウンド処理部１７、表示部１８及び音出力部１９を有する。
【００１４】
入力部１１は、コントローラ等の入力装置からの入力情報を受け付ける。検出部１２は、表示部１８に表示した背景の建物や木等のオブジェクトと仮想空間に設けられた仮想体とが接触する接触位置情報を検出する。検出部１２は、仮想体をバウンドさせ、オブジェクトと接触する接触位置情報を検出する。
【００１５】
記録部１３は、接触位置テーブル３０及び目標候補位置テーブル３１の各データ項目を記録する。図２は、接触位置テーブル３０のデータ構成の一例を示す。接触位置テーブル３０は、仮想体番号３０１、接触位置情報３０２及び検出部１２が検出したエッジ位置情報３０３のデータ項目を有する。記録部１３は、バウンドしながら移動する仮想体と背景のオブジェクトとが接触した座標を接触位置情報３０２に記録する。記録部１３は、接触位置情報のうち最もオブジェクトのエッジ（例えば、建物の天井部の縁部や、建物の屋根の角部や、木の先端部）の位置に近い座標の接触位置情報を選択してエッジ位置情報３０３に記録する。
【００１６】
なお、本実施形態では、仮想体の数は四つであり、接触位置テーブル３０には四つの仮想体Ｃ１〜Ｃ４のそれぞれについての接触位置情報３０２及びエッジ位置情報３０３が記録される。ただし、仮想体の数は、これに限らず、例えば、一つであってもよいし、二つ以上であってもよい。また、仮想体のバウンド数は、１フレームに１回、つまり、１秒に３０〜６０回程度であってもよいし、これ以外の回数であってもよい。なお、仮想体Ｃ１〜Ｃ４を総称して仮想体Ｃともいう。
【００１７】
仮想体Ｃを用いてオブジェクトの接触位置を測定するときには、仮想体Ｃに所定の動作を行わせる。所定の動作には、仮想体Ｃをバウンドさせる、仮想体Ｃをすべらせる、及び仮想体Ｃを振動させる等の動作が含まれる。
【００１８】
図３は、目標候補位置テーブル３１のデータ構成の一例を示す。目標候補位置テーブル３１は、目標候補番号３１１及び目標候補位置情報３１２を有する。本実施形態では、仮想体の数と同数の目標候補番号Ｇ１〜Ｇ４の目標候補位置が目標候補位置テーブル３１に設定される。ただし、目標候補位置の数は、これに限らず、例えば、一つであってもよいし、二つ以上であってもよい。
【００１９】
図１に戻り、記録部１３は、各種データ及ぶ各種プログラムを記録する。各種プログラムには、エッジ検出処理プログラム３２、目標候補位置判定処理プログラム３３、目標位置決定処理プログラム３４及び動作制御処理プログラム３５が含まれる。これらのプログラムは、情報処理装置１０にて遊技者が所定のゲームを行う間に実行される。
【００２０】
特定部１４は、検出部１２が検出した接触位置情報に応じて背景のオブジェクトのエッジ位置情報を特定する。ここで検出されるエッジ位置情報は、画面に表示された背景のオブジェクトの形状に関する特徴を示す特徴位置情報の一例である。本実施形態では、オブジェクトのエッジ位置情報は、仮想体をバウンドさせ、オブジェクトの上部にて該オブジェクトと接触する接触位置情報のうちから選択される。特定するエッジ位置情報の一例としては、接触位置情報のうち建物の天井部の縁部、建物の屋根の角部、木の先端部、人間の頭部等に最も近い座標を持つ接触位置情報が挙げられる。
【００２１】
動作制御部１５は、仮想空間にてキャラクタの動作を制御する。なお、本実施形態では、プレイヤーキャラクタＰＣの動作を主に制御するが、動作制御部１５は、ノンプレイヤーキャラクタＮＰＣの動作や仮想空間にて動作可能なすべてのオブジェクトの動作を制御する。本実施形態では、例えば風になびく木等の動作可能なすべてのオブジェクト、ノンプレイヤーキャラクタＮＰＣ及びプレイヤーキャラクタＰＣを総称して「キャラクタ」という。
【００２２】
グラフィック処理部１６は、表示部１８に接続されている。動作制御部１５から描画命令が出力されると、グラフィック処理部１６は、表示部１８に画像を表示するビデオ信号を出力する。これにより、表示部１８は、プレイヤーキャラクタＰＣと背景とを表示する。グラフィック処理部１６から出力されるビデオ信号に含まれる画像の１フレーム時間は、例えば３０分の１秒である。グラフィック処理部１６は、フレーム単位（すなわち、３０分の１秒単位）で１枚の画像の描画を実行する。
【００２３】
サウンド処理部１７は、音出力部１９に接続されている。グラフィック処理部１６からサウンド出力の指示命令が出力されると、音出力部１９は、スピーカー２０にサウンド信号を出力する。これにより、プレイヤーキャラクタＰＣの状況に応じたサウンドが出力される。
【００２４】
［情報処理装置のハードウェア構成］
次に、本発明の一実施形態に係る情報処理装置１０のハードウェア構成の一例について、図４を参照しながら説明する。本実施形態に係る情報処理装置１０は、ＣＰＵ（Central Processing Unit）２１、ＲＯＭ（Read Only Memory）２２、ＲＡＭ（Random Access Memory）２３及びＨＤＤ（Hard Disk Drive）２４を有している。また、本実施形態に係る情報処理装置１０は、グラフィックカード２５、外部Ｉ／Ｆ（インターフェース）２６、通信Ｉ／Ｆ２７、入力Ｉ／Ｆ２８、ディスプレイ２９及びスピーカー２０を有している。各部は、それぞれがバスで相互に接続されている。
【００２５】
ＲＯＭ２２は、電源を切っても内部データを保持することができる不揮発性の半導体メモリである。ＲＯＭ２２には、プログラム及びデータが格納されている。ＲＡＭ２３は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００２６】
ＨＤＤ２４は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムには、情報処理装置１０の全体を制御する基本ソフトウェア及びアプリケーションソフトウェアがある。ＨＤＤ２４には、各種のデータベースが格納されてもよい。本実施形態では、ＨＤＤ２４には、エッジ検出処理プログラム３２、目標候補位置判定処理プログラム３３、目標位置決定処理プログラム３４及び動作制御処理プログラム３５等の各種プログラムが格納される。また、ＨＤＤ２４には、接触位置テーブル３０及び目標候補位置テーブル３１が格納される。
【００２７】
ＣＰＵ２１は、ＲＯＭ２２やＨＤＤ２４からプログラムやデータをＲＡＭ２３上に読み出し、上記各種処理を実行することで、情報処理装置１０の全体の制御や情報処理装置１０に搭載された機能を実現する。具体的には、図１に示す検出部１２の機能は、情報処理装置１０にインストールされたエッジ検出処理プログラム３２がＣＰＵ２１に実行させる処理により実現される。また、特定部１４の機能は、情報処理装置１０にインストールされた目標候補位置判定処理プログラム３３及び目標位置決定処理プログラム３４が、ＣＰＵ２１に実行させる処理により実現される。また、動作制御部１５の機能は、情報処理装置１０にインストールされた動作制御処理プログラム３５が、ＣＰＵ２１に実行させる処理により実現される。
【００２８】
外部Ｉ／Ｆ２６は、情報処理装置１０を外部装置に接続するインタフェースである。外部装置には、記録媒体２６ａなどがある。これにより、情報処理装置１０は、外部Ｉ／Ｆ２６を介して記録媒体２６ａの読み取り及び書き込みを行うことができる。記録媒体２６ａの一例としては、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（SD Memory card）又はＵＳＢメモリ（Universal Serial Bus memory）等が挙げられる。
【００２９】
例えば、情報処理装置１０には、エッジ検出処理プログラム３２、目標候補位置判定処理プログラム３３、目標位置決定処理プログラム３４及び動作制御処理プログラム３５等のゲームプログラムが格納された記録媒体２６ａを装着することが可能である。これらのプログラムは、外部Ｉ／Ｆ２６により読み出されて、ＲＡＭ２３に読み込まれる。
【００３０】
ＣＰＵ２１は、ＲＡＭ２３にロードされた上記の各種プログラムを処理し、グラフィックカード２５にゲームの進行に応じた画像の出力を指示する。グラフィックカード２５は、指示に従い画面に表示するゲーム場面に応じた画像処理を行い、ディスプレイ２９にプレイヤキャラクタＰＣの画像及び背景の画像を描画させる。これにより、グラフィック処理部１６及び表示部１８の機能が実行される。
【００３１】
グラフィックカード２５から出力される画像の一フレーム時間は、例えば１／３０〜１／６０秒である。グラフィックカード２５は、フレーム単位で１枚の画像の描画を実行する。すなわち、一秒間に３０回〜６０回のフレームの画像が描画される。
【００３２】
また、ＣＰＵ２１は、ＲＡＭ２３に読み込まれた上記の各種プログラムを処理し、ゲームの進行に応じてスピーカー２０から所定の音を出力させる。これにより、サウンド処理部１７及び音出力部１９の機能が実現される。
【００３３】
ディスプレイ２９はタッチパネル式としても良い。これにより、コントローラ１を用いずに入力操作を行うことができる。この場合、タッチパネルにより検出されたタッチ位置の入力情報は、ＲＡＭ２３に格納され、ＣＰＵ２１はＲＡＭ２３に格納された入力情報をもとに各種の演算処理を実行する。
【００３４】
通信Ｉ／Ｆ２７は、情報処理装置１０をネットワークに接続するインタフェースである。また、通信Ｉ／Ｆ２７は、アンテナを有する通信ユニットを介して、他のゲーム機器と無線により通信を行う機能を有していてもよい。
【００３５】
入力Ｉ／Ｆ２８は、コントローラ１に接続するインタフェースである。コントローラ１は、操作ボタン２及び方向キー３を有する。遊技者は、操作ボタン２を操作することでプレイヤーキャラクタＰＣに所定の動作を行わせることができる。また、遊技者は、方向キー３を操作することでプレイヤーキャラクタＰＣを所定の方向に移動させることができる。入力Ｉ／Ｆ２８は、遊技者がコントローラ１を用いて行った入力操作に基づく入力情報をＲＡＭ２３に格納させる。これにより、入力部１１の機能が実行される。
【００３６】
ＣＰＵ２１は、ＲＡＭ２３に格納された入力情報に基づきプレイヤーキャラクタＰＣの動作等の各種の演算処理を実行する。また、入力Ｉ／Ｆ２８は、ＣＰＵ２１からの指示に従いＲＡＭ２３に記憶されているゲームの進行状況を示すデータをメモリーカード２８ａに保存させ、メモリーカード２８ａに保存されている中断時のゲームのデータを読み出してＲＡＭ２３に転送する処理を行う。
【００３７】
［エッジ検出処理］
次に、本実施形態に係る衝突処理の一例について図５を参照して説明する。図５は、一実施形態にかかる衝突処理の一例を示すフローチャートである。
【００３８】
本処理が開始されると、検出部１２は、入力部１１から、その時点でのプレイヤーキャラクタＰＣの操作方向を取得する（ステップＳ１０）。具体的には、検出部１２は、遊技者がコントローラ１を用いて行った方向キー３の入力操作に基づく入力情報から、その時点でのプレイヤーキャラクタＰＣの操作方向を取得する。
【００３９】
次に、検出部１２は、その時点でのプレイヤーキャラクタＰＣの位置情報及び移動速度を取得する（ステップＳ１２）。次に、検出部１２は、取得した情報に基づき、プレイヤーキャラクタＰＣから所定距離離れた位置であって操作方向に応じた位置に仮想体Ｃ１、Ｃ２を配置する（ステップＳ１４）。例えば、図６には、遊技者により操作されるプレイヤーキャラクタＰＣの進行する方向Ｓ１が紙面の下から上へ移動する方向の場合の画面の一例を示す。この場合、プレイヤーキャラクタＰＣの中心位置から距離Ｐ１だけ離れた位置であって、プレイヤーキャラクタＰＣの前方左右の位置に中心Ａ１、Ａ２を持つ仮想体Ｃ１、Ｃ２が配置される。なお、距離Ｐ１は固定値であってもよいし、プレイヤーキャラクタＰＣの移動速度に応じて変化する可変値であってもよい。
【００４０】
図６の画面では、プレイヤーキャラクタＰＣが両側の建物のオブジェクトＯｂ１〜Ｏｂ４間の道路をＳ１に示す方向に向かって移動している。図６の画面は、背景を上方から平面視している場面を示し、四つのオブジェクトＯｂ１〜Ｏｂ４の天井部とプレイヤーキャラクタＰＣとが描画されている。以下、オブジェクトＯｂ１〜Ｏｂ４を総称してオブジェクトＯｂともいう。
【００４１】
仮想体Ｃ１、Ｃ２は、オブジェクトＯｂ１、Ｏｂ２のエッジの位置を検出するための仮想体の一例である。仮想体Ｃ１、Ｃ２は、実際にはゲーム中において画面に表示されない。本実施形態では、仮想体は、球体であるが、カプセル状、棒状、矩形状、円錐状、多角形、楕円、円等の形状であってもよい。本実施形態にかかる情報処理装置１０が提供するゲームが３次元の仮想空間におけるゲームである場合、仮想体は、これに応じて３次元の仮想物体となる。本実施形態にかかる情報処理装置１０が提供するゲームが２次元の仮想空間におけるゲームである場合、仮想体は、これに応じて２次元の仮想物体となる。
【００４２】
図５に戻り、次に、検出部１２は、プレイヤーキャラクタＰＣの移動速度及び操作方向に応じて仮想体の目標候補位置を決定する（ステップＳ１６）。記録部１３は、決定した目標候補位置情報を目標候補位置テーブル３１に記録する。なお、目標候補位置は四つに限られない。例えば、図８では、プレイヤーキャラクタＰＣの次の動作の目標候補位置として、六つの目標候補位置Ｇ１〜Ｇ６（Ｇ５、Ｇ６は点線で示す位置）が設定されている。
【００４３】
目標位置情報は、プレイヤーキャラクタＰＣの位置、移動速度及びプレイヤーキャラクタＰＣの操作方向の少なくともいずれかに基づき決定されてもよい。
【００４４】
次に、検出部１２は、プレイヤーキャラクタＰＣの進行方向に対して仮想体Ｃ１、Ｃ２よりも前方に仮想体Ｃ３，Ｃ４を配置する（ステップＳ１８）。仮想体Ｃ３、Ｃ４は、オブジェクトＯｂ３、Ｏｂ４のエッジの位置を検出するための仮想体の一例である。仮想体Ｃ３、Ｃ４は、実際にはゲーム中において画面に表示されない。
【００４５】
例えば、図６では、プレイヤーキャラクタＰＣの進行する方向Ｓ１に対して仮想体Ｃ１、Ｃ２よりも前方であって、プレイヤーキャラクタＰＣの前方左右にあるオブジェクトＯｂ３，Ｏｂ４の位置に中心Ａ３、Ａ４を持つ仮想体Ｃ３、Ｃ４が配置される。このとき、仮想体Ｃ３は、プレイヤーキャラクタＰＣの中心位置から距離Ｐ２だけ離れた位置に中心位置Ａ３を持つ。また、仮想体Ｃ４は、プレイヤーキャラクタＰＣの中心位置から距離Ｐ３だけ離れた位置に中心位置Ａ４を持つ。このとき、Ｐ２＞Ｐ１、Ｐ３＞Ｐ１の関係があるが、Ｐ２＝Ｐ３であってもよく、Ｐ２≠Ｐ３であってもよい。
【００４６】
ただし、以上の距離の関係は、プレイヤーキャラクタＰＣが正面を向いて正面方向へ移動している場合、すなわち、速度方向が正面へ向く場合に成り立つ。プレイヤーキャラクタＰＣが正面を向いたまま後に下がる場合、すなわち、速度方向が後ろへ向く場合、距離の関係は、Ｐ２＜Ｐ１、Ｐ３＜Ｐ１が成り立つ。
【００４７】
プレイヤーキャラクタＰＣの移動速度、操作方向及び位置の少なくともいずれかに応じて仮想体Ｃ１〜Ｃ４の位置を定めることができる。
【００４８】
仮想体Ｃのサイズは、背景の建物や道等のオブジェクトＯｂの大きさから最適値に設定されている。仮想体Ｃのサイズが小さすぎると、仮想体Ｃ内に建物のエッジの位置が含まれない確率が高くなり、エッジ検出が困難になる。よって、図６の例では、仮想体Ｃ１〜Ｃ４の直径は、少なくともプレイヤーキャラクタＰＣが通る道路よりも大きいことが好ましい。
【００４９】
図５に戻り、検出部１２は、仮想体Ｃ１〜Ｃ４のそれぞれがオブジェクトＯｂ〜Ｏｂ４のそれぞれに衝突したか判定する（ステップＳ２０）。
【００５０】
図７に仮想体Ｃ１を示すように、本実施形態では、仮想体Ｃ１〜Ｃ４のそれぞれが背景のいずれかのオブジェクトＯｂに衝突したとき、仮想体Ｃ１〜Ｃ４のそれぞれを上へとバウンドさせ、背景のオブジェクトＯｂの上部へと位置付ける。図７に示す画面例では、仮想体Ｃ１は、建物のオブジェクトＯｂ１の側面に衝突し、オブジェクトＯｂ１の天井方向へバウンドする。検出部１２は、オブジェクトＯｂ１の屋根の上方までバウンドした仮想体Ｃ１とオブジェクトＯｂ１の屋根との衝突位置を検出する。なお、仮想体Ｃ１がオブジェクトＯｂの上面で接触した場合と側面（壁）で接触した場合とでは、バウンド方向を変えてもよい。これにより、エッジ検出の精度を高めることができる。
【００５１】
検出部１２は、仮想体Ｃ１〜Ｃ４が該当オブジェクトに衝突しなかったと判定した場合、本処理を終了する。他方、検出部１２は、仮想体Ｃ１〜Ｃ４の少なくともいずれかがオブジェクトに衝突したと判定した場合、衝突位置の座標とその時点で保存している目標候補位置情報３１２に示される目標候補位置の座標（図３参照）とを比較し、衝突位置が目標候補位置よりもＰＣの動作に適しているかを判定する（ステップＳ２２）。
【００５２】
検出部１２は、衝突位置が目標候補位置よりもＰＣの動作に適していると判定した場合、記録部１３は、衝突位置の座標により目標候補位置テーブル３１の目標候補位置情報３１２を更新し（ステップＳ２４）、本処理を終了する。なお、記録部１３は、衝突位置の座標を接触位置テーブル３０の接触位置情報３０２に記録してもよい。
【００５３】
衝突位置が目標候補位置よりもプレイヤーキャラクタＰＣの動作に適しているかは、衝突位置と目標候補位置とのいずれがオブジェクトのエッジの位置に近いかによって判定してもよい。このとき、エッジの位置は、オブジェクトの縁部であってもよいし、オブジェクトの角部であってもよい。本実施形態では、図６に示すオブジェクトＯｂ１〜Ｏｂ４のそれぞれの四つ角部及びその近傍をオブジェクトのエッジとする。
【００５４】
なお、検出部１２は、図５に示すように、１フレームに対して１回のみステップＳ１８の衝突判定を行ってもよいし、１フレームに対して複数回ステップＳ１８の衝突判定を行ってもよい。これにより、図７に例えば仮想体Ｃ１についての衝突位置を示すように、衝突した座標が接触位置情報３０２に保存され、各衝突位置が目標候補位置よりもプレイヤーキャラクタＰＣの動作に適している場合、衝突位置の座標により目標候補位置情報３１２が入れ替えられる。
【００５５】
本実施形態に係るエッジ検出処理によれば、四つの仮想体Ｃ１〜Ｃ４を背景でバウンドさせることでオブジェクトＯｂとの衝突を発生させる。四つの仮想体Ｃ１〜Ｃ４は、プレイヤーキャラクタＰＣの位置、操作方向及び移動速度の少なくともいずれかに応じた位置に設定され、その近傍にてバウンドしながらオブジェクトＯｂと衝突する。
【００５６】
これにより、プレイヤーキャラクタＰＣの動作状態に応じてゲーム中にリアルタイムに取得した仮想体ＣとオブジェクトＯｂとの衝突位置（接触位置情報）を検出し、衝突位置に基づき、オブジェクトＯｂのエッジ位置を取得することができる。この結果、本実施形態では、予め背景のオブジェクトＯｂ毎の位置情報を予め記憶する必要がない。
【００５７】
なお、図５のステップＳ１８において、検出部１２は、仮想体Ｃ３、Ｃ４を配置する際、プレイヤーキャラクタＰＣの位置、操作方向及び移動速度の少なくともいずれに基づき仮想体Ｃ３、Ｃ４を配置することができる。
【００５８】
具体的に、図６及び図８を使用してプレイヤーキャラクタＰＣの移動速度に応じて仮想体Ｃの配置を制御する例を説明する。図６及び図８が示すプレイヤーキャラクタＰＣでは、操作方向Ｓ１、Ｓ２は同じであるが、移動速度が異なる。移動速度の違いは、操作方向Ｓ１，Ｓ２の矢印の長さで示されていて、図８のプレイヤーキャラクタＰＣの移動速度は、図６のプレイヤーキャラクタＰＣの移動速度よりも早い。図６及び図８では仮想体Ｃ１、Ｃ２の配置は同じである。
【００５９】
この場合、検出部１２は、図８に示す仮想体Ｃ１、Ｃ２に対する仮想体Ｃ３，Ｃ４を、図６に示す仮想体Ｃ１、Ｃ２に対する仮想体Ｃ３，Ｃ４よりも離れて配置する。この結果、プレイヤーキャラクタＰＣの前方左右にあるオブジェクトＯｂ５，Ｏｂ６の位置に中心Ａ３、Ａ４を持つ仮想体Ｃ３、Ｃ４が配置される。このとき、仮想体Ｃ３は、プレイヤーキャラクタＰＣの中心位置から距離Ｐ４だけ離れた位置に中心位置Ａ３を持つ。また、仮想体Ｃ４は、プレイヤーキャラクタＰＣの中心位置から距離Ｐ５だけ離れた位置に中心位置Ａ４を持つ。このとき、Ｐ４＞Ｐ１、Ｐ５＞Ｐ１の関係があるが、Ｐ４＝Ｐ５であってもよく、Ｐ４≠Ｐ５であってもよい。これにより、四つの仮想体Ｃ１〜Ｃ４の仮想空間における座標が決定する。
【００６０】
ただし、以上の距離の関係は、プレイヤーキャラクタＰＣが正面を向いて正面方向へ移動している場合、すなわち、速度方向が正面へ向く場合に成り立つ。プレイヤーキャラクタＰＣが正面を向いたまま後に下がる場合、すなわち、速度方向が後ろへ向く場合、距離の関係は、Ｐ４＜Ｐ１、Ｐ５＜Ｐ１が成り立つ。
【００６１】
図６及び図８が示すプレイヤーキャラクタＰＣでは、操作方向Ｓ１、Ｓ２は同じであった。これに対して、プレイヤーキャラクタＰＣの操作方向Ｓ１、Ｓ２が異なる場合、仮想体Ｃ３，Ｃ４は、プレイヤーキャラクタＰＣの操作方向Ｓ１，Ｓ２に応じてプレイヤーキャラクタＰＣの進行方向に傾いた位置に配置される。
【００６２】
例えば、プレイヤーキャラクタＰＣの操作方向が右斜め上方向であれば、仮想体Ｃ３，Ｃ４は、図６及び図８に描かれた仮想体Ｃ３，Ｃ４よりも右方向にずらして配置される。
【００６３】
［目標位置判定処理］
次に、本実施形態に係る目標位置判定処理の一例について図９を参照して説明する。図９は、一実施形態にかかる目標位置判定処理の一例を示すフローチャートである。本実施形態に係る目標位置判定処理は、ゲーム進行中に目標位置を目標にしたプレイヤーキャラクタＰＣの動作に応じて実行される。
【００６４】
本処理が開始されると、特定部１４は、プレイヤーキャラクタＰＣの位置から、目標候補位置テーブル３１に記録された目標候補位置に向かってレイキャストを実行する（ステップＳ４０）。
【００６５】
次に、特定部１４は、プレイヤーキャラクタＰＣの位置と目標候補位置との間にオブジェクトが存在するかを判定する（ステップＳ４２）。特定部１４は、プレイヤーキャラクタＰＣの位置と目標候補位置との間にオブジェクトが存在しないと判定した場合、本処理を終了する。
【００６６】
他方、特定部１４は、プレイヤーキャラクタＰＣの位置と目標候補位置との間にオブジェクトが存在すると判定した場合、目標候補位置を存在したオブジェクトのエッジとして認識し、その目標候補位置をそのオブジェクトのエッジの目標位置として入れ替える（ステップＳ４４）。
【００６７】
以上の図５及び図９に示した処理により、図３の目標候補番号３１１がＧ３の目標候補位置情報３１２の座標（ｘｇ３、ｙｇ３）が、図２の仮想体番号３０１がＣ３のエッジ位置情報３０３の座標（ｘ１４、ｙ１４）で書き替えられたとする。また、図３の目標候補番号３１１がＧ４の目標候補位置情報３１２の座標（ｘｇ４、ｙｇ４）が、図２の仮想体番号３０１がＣ４のエッジ位置情報３０３の座標（ｘ２０、ｙ２０）で書き替えられたとする。
【００６８】
この結果、例えば、図６では、目標候補番号がＧ３の目標候補位置を、予め定められた位置から仮想体Ｃ３のバウンドにより検出されたエッジ位置Ａ３に移動させ、目標候補位置を最適化することができる。また、目標候補番号がＧ４の目標候補位置が、仮想体Ｃ４のバウンドにより検出したエッジ位置Ａ４に移動させ、目標候補位置を最適化することができる。ここでは、目標候補番号がＧ１、Ｇ２の目標候補位置は移動しない。
【００６９】
同様にして、例えば、図８では、目標候補番号がＧ５の目標候補位置が、仮想体Ｃ３により検出されたエッジ位置Ａ３に移動する。また、目標候補番号がＧ６の目標候補位置が、仮想体Ｃ４により検出したエッジ位置Ａ４に移動する。目標候補番号がＧ１〜Ｇ４の目標候補位置は移動しない。なお、図８の目標候補位置Ｇ３、Ｇ４は、エッジ位置との比較の対象から除いてもよい。また、図８の目標候補位置Ｇ３、Ｇ４自体を目標候補位置から除いてもよい。
【００７０】
次に、動作制御部１５は、目標位置を目標にしたプレイヤーキャラクタＰＣの動作を制御する（ステップＳ４６）。その後、プレイヤーキャラクタＰＣ及びオブジェクトを連携して動作させ（ステップＳ４８）、本処理を終了する。このようにして、本実施形態では、一入力操作に応じてキャラクタと目標位置に存在するオブジェクトとを連携させてキャラクタの動作を制御することができる。
【００７１】
例えば、例えば、動作制御部１５は、遊技者の入力操作に応じて、目標位置に向けてプレイヤーキャラクタＰＣが持つ武器からレーザ光を射出するように、プレイヤーキャラクタＰＣの動作を制御してもよい。また、動作制御部１５は、目標位置に向けて銃から弾を放つ、剣又は矢を放つ、拳で叩く等、プレイヤーキャラクタＰＣの動作を制御してもよい。
【００７２】
また、例えば、動作制御部１５は、遊技者の入力操作に応じて、目標位置に向けてプレイヤーキャラクタＰＣが持つワイヤーを射出して目標位置にてワイヤーを固定するように、プレイヤーキャラクタＰＣの次の動作を制御してもよい。
【００７３】
例えば、動作制御部１５は、遊技者の入力操作に応じて、オブジェクトに固定された二本のワイヤーによるプレイヤーキャラクタＰＣの振り子運動によりプレイヤーキャラクタＰＣを移動させるように制御してもよい。なお、目標位置に向かうワイヤーの描画は、直線であってもよいし、所定の振幅の波であってもよい。
【００７４】
以上の処理により、本実施形態では、決定した目標位置情報により定められる目標位置に対する遊技者の１回のボタン操作だけで、プレイヤーキャラクタＰＣと目標位置に存在するオブジェクトＯｂとを係合させてプレイヤーキャラクタＰＣの動作を制御することができる。
【００７５】
例えば、図６及び図８では、遊技者がプレイヤーキャラクタＰＣが持つ武器を使用するためのボタン操作を１回行うだけで、プレイヤーキャラクタＰＣが持つ武器のうちのワイヤーを目標候補位置Ｇ３、Ｇ４（図８では目標候補位置Ｇ５、Ｇ６）に射出してオブジェクトＯｂに固定することができる。これにより、オブジェクトＯｂ３，Ｏｂ４とを連結させた状態でプレイヤーキャラクタＰＣに振り子運動をさせることで、浮遊感を感じさせるプレイヤーキャラクタＰＣの軽快な移動を描画できる。
【００７６】
また、例えば、図１０ではオブジェクトＯｂ１〜Ｏｂ６で構成されるオブジェクトをターゲットとして、遊技者がプレイヤーキャラクタＰＣが持つ武器を使用するためのボタン操作を１回行う。これにより、プレイヤーキャラクタＰＣが持つ武器から射出される網や弾丸を目標候補位置Ｇ１〜Ｇ３に当てることができる。これにより、プレイヤーキャラクタＰＣとオブジェクトＯｂ３，Ｏｂ４とを連結させた状態でプレイヤーキャラクタＰＣに次の動作を行わせることができる。
【００７７】
本実施形態では、オブジェクトＯｂの移動により仮想体の位置が変化することを考慮してエッジ位置を検出することができる。これにより、検出されたエッジ位置から最適な目標位置を選択することができる。特に、本実施形態では、図１０に示すように、動いているオブジェクトＯｂに対しても、検出されたエッジ位置から最適な目標位置を選択することができる。この結果、プレイヤーキャラクタＰＣがオブジェクトＯｂ側に引っ張られながら移動する動作を適切に制御できる。
【００７８】
なお、図５では、動作制御部１５は、プレイヤーキャラクタＰＣの位置、移動速度及びプレイヤーキャラクタＰＣの操作方向の少なくともいずれかに基づき、目標候補位置が決定した。この結果、図６では、プレイヤーキャラクタＰＣの操作方向Ｓ１及び移動速度に応じて、目標候補位置Ｇ３、Ｇ４が目標位置に選択された。また、図８では、プレイヤーキャラクタＰＣの操作方向Ｓ２及び移動速度に応じて、目標候補位置Ｇ５、Ｇ６が目標位置に選択された。他の例としては、図１１に示すように、プレイヤーキャラクタＰＣの操作方向Ｓ３及び移動速度に応じて、一つの目標候補位置Ｇ４が目標位置に選択される例が挙げられる。この場合、動作制御部１５は、オブジェクトＯｂ４に固定されたワイヤーによりプレイヤーキャラクタＰＣに振り子運動をさせることで、浮遊感を感じさせるプレイヤーキャラクタＰＣの軽快な移動を描画できる。
【００７９】
以上に説明したように、本実施形態に係る情報処理装置１０によれば、仮想体ＣをバウンドさせることでオブジェクトＯｂとの衝突を発生させる。これにより、プレイヤーキャラクタＰＣの動作状態に応じてゲーム中にリアルタイムにオブジェクトのエッジ位置を取得することができる。プレイヤーキャラクタＰＣの動作状態としては、プレイヤーキャラクタＰＣの位置と、入力操作に応じたプレイヤーキャラクタＰＣの操作方向と、プレイヤーキャラクタＰＣの移動速度がある。これらの少なくともいずれかに応じてゲーム中に自動的に適切なオブジェクトのエッジが検出される。そして、取得したエッジ位置を目標位置として仮想空間におけるプレイヤーキャラクタを適切に動作させることができる。特に、オブジェクトＯｂが動的に移動する場合においてもプレイヤーキャラクタＰＣをオブジェクトＯｂの位置に応じて適切に動作させることができる。
【００８０】
なお、目標位置が決定した時点で、仮想体Ｃは次のエッジ位置の検出のために次の所定の位置に移動する。
【００８１】
また、背景が大草原である場合、大草原に目標位置として適切な位置がない場合がある。この場合、図３の目標候補位置テーブル３１に保存された目標候補位置情報３１２はクリアされる。ただし、プレイヤーキャラクタＰＣが自己の進行方向を１８０°変化させると、背景が大草原からある程度建物を有する場所に変わる場合、特定部１４は、再び目標候補位置の座標を設定し、図３の目標候補位置テーブル３１の目標候補位置３１２に保存する。そして、再び、本実施形態のエッジ位置の検出が実行される。
【００８２】
以上、情報処理装置、位置情報検出方法及び位置情報検出プログラムを上記実施形態により説明したが、本発明にかかる情報処理装置、位置情報検出方法及び位置情報検出プログラムは上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。
【００８３】
例えば、上記実施形態では、オブジェクトのエッジ位置情報は、仮想体をバウンドさせ、オブジェクトの上部にて該オブジェクトと接触する接触位置情報のうちから選択された。しかしながら、これに限らず、オブジェクトのエッジ位置情報は、仮想体をバウンドさせ、オブジェクトの側部又は底部にて該オブジェクトと接触する接触位置情報のうちから選択されてもよい。また、オブジェクトのエッジ位置情報は、オブジェクトの突起部分、角部、凹み部分等のオブジェクトの特徴部分にて該オブジェクトと接触する接触位置情報のうちから選択されてもよい。
【００８４】
また、例えば、上記実施形態に係る情報処理装置１０の構成は一例であり、本発明の範囲を限定するものではなく、用途や目的に応じて様々なシステム構成例があることは言うまでもない。例えば、情報処理装置１０とディスプレイ２９とが別体で構成されてもよい。情報処理装置１０をＴＶ装置に接続し、ＴＶ装置の画面をディスプレイ２９として使用するシステム形態であってもよい。
【符号の説明】
【００８５】
１０：情報処理装置
１１：入力部
１２：検出部
１３：記録部
１４：特定部
１５：動作制御部
１６：グラフィック処理部
１７：サウンド処理部
１８：表示部
１９：音出力部
２０：スピーカー
２１：ＣＰＵ
２２：ＲＯＭ
２３：ＲＡＭ
２４：ＨＤＤ
２５：グラフィックカード
２６：外部Ｉ／Ｆ
２６ａ：記録媒体
２７：通信Ｉ／Ｆ
２８：入力Ｉ／Ｆ
２８ａ：メモリーカード
２９：ディスプレイ
３０：接触位置テーブル
３１：目標候補位置テーブル
Ｃ１〜Ｃ４：仮想体
Ｏｂ１〜Ｏｂ６：オブジェクト
Ａ１〜Ａ４：仮想体の中心位置
Ｇ１〜Ｇ６：目標候補位置
ＰＣ：プレイヤーキャラクタ
【図１】
0006706470.tif 000002
【図２】
0006706470.tif 000003
【図３】
0006706470.tif 000004
【図４】
0006706470.tif 000005
【図５】
0006706470.tif 000006
【図６】
0006706470.tif 000007
【図７】
0006706470.tif 000008
【図８】
0006706470.tif 000009
【図９】
0006706470.tif 000010
【図１０】
0006706470.tif 000011
【図１１】
0006706470.tif 000012