(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）等が挙げられる。
【００２８】
例えば、情報処理装置１０には、障害検出処理プログラム３１、動作制御処理プログラム３２及び障害回避動作制御処理プログラム３３等のゲームプログラムが格納された記録媒体２６ａを装着することが可能である。これらのプログラムは、外部Ｉ／Ｆ２６により読み出されて、ＲＡＭ２３に読み込まれる。
【００２９】
ＣＰＵ２１は、ＲＡＭ２３にロードされた上記の各種プログラムを処理し、グラフィックカード２５にゲームの進行に応じた画像の出力を指示する。グラフィックカード２５は、指示に従い画面に表示するゲーム場面に応じた画像処理を行い、ディスプレイ２９にプレイヤキャラクタＰＣの画像及びステージの画像を描画させる。これにより、グラフィック処理部１６及び表示部１８の機能が実行される。
【００３０】
グラフィックカード２５から出力される画像の一フレーム時間は、例えば１／３０〜１／６０秒である。グラフィックカード２５は、フレーム単位で１枚の画像の描画を実行する。すなわち、一秒間に３０回〜６０回のフレームの画像が描画される。
【００３１】
また、ＣＰＵ２１は、ＲＡＭ２３に読み込まれた上記の各種プログラムを処理し、ゲームの進行に応じてスピーカー２０から所定の音を出力させる。これにより、サウンド処理部１７及び音出力部１９の機能が実行される。
【００３２】
ディスプレイ２９はタッチパネル式としても良い。これにより、コントローラ１を用いずに入力操作を行うことができる。この場合、タッチパネルにより検出されたタッチ位置の入力情報は、ＲＡＭ２３に格納され、ＣＰＵ２１はＲＡＭ２３に格納された入力情報をもとに各種の演算処理を実行する。
【００３３】
通信Ｉ／Ｆ２７は、情報処理装置１０をネットワークに接続するインタフェースである。また、通信Ｉ／Ｆ２７は、アンテナを有する通信ユニットを介して、他のゲーム機器と無線により通信を行う機能を有していてもよい。
【００３４】
入力Ｉ／Ｆ２８は、コントローラ１に接続するインタフェースである。コントローラ１は、操作ボタン２及び方向キー３を有する。遊技者は、操作ボタン２を操作することでプレイヤーキャラクタＰＣに所定の動作を行わせることができる。また、遊技者は、方向キー３を操作することでプレイヤーキャラクタＰＣを所定の方向に移動させることができる。入力Ｉ／Ｆ２８は、遊技者がコントローラ１を用いて行った入力操作に基づく入力情報をＲＡＭ２３に格納させる。これにより、入力部１１の機能が実行される。
【００３５】
ＣＰＵ２１は、ＲＡＭ２３に格納された入力情報に基づきプレイヤーキャラクタＰＣの動作等の各種の演算処理を実行する。また、入力Ｉ／Ｆ２８は、ＣＰＵ２１からの指示に従いＲＡＭ２３に記憶されているゲームの進行状況を示すデータをメモリーカード２８ａに保存させ、メモリーカード２８ａに保存されている中断時のゲームのデータを読み出してＲＡＭ２３に転送する処理を行う。
【００３６】
［障害検出処理］
次に、本実施形態に係る障害検出処理の一例について図４を参照して説明する。図４は、一実施形態にかかる障害検出処理の一例を示すフローチャートである。本実施形態に係る障害検出処理は、ゲーム進行中にプレイヤーキャラクタＰＣの動作に応じて適宜実行される。プレイヤーキャラクタＰＣの動作は、ＣＰＵ２１が、動作制御処理プログラム３２を実行することで、入力操作に応じて仮想空間にて描画される。
【００３７】
本処理が開始されると、検出部１２は、入力部１１から、その時点でのプレイヤーキャラクタＰＣの操作方向を取得する（ステップＳ１０）。具体的には、検出部１２は、遊技者がコントローラ１を用いて行った方向キー３の入力操作に基づく入力情報から、その時点でのプレイヤーキャラクタＰＣの操作方向を取得する。
【００３８】
次に、検出部１２は、その時点でのプレイヤーキャラクタＰＣの位置情報及び移動速度を取得する（ステップＳ１２）。次に、検出部１２は、取得した位置、移動速度及び操作方向の各情報に応じた位置に仮想体Ｃ１〜Ｃ３を配置する（ステップＳ１４）。なお、検出部１２は、取得した位置、移動速度及び操作方向の少なくともいずれかの情報に応じた位置に仮想体Ｃ１〜Ｃ３を配置してもよい。
【００３９】
例えば、図５の画面例では、プレイヤーキャラクタＰＣ及びステージのオブジェクトＯｂ１，Ｏｂ２を描画した画面に仮想体Ｃ１〜Ｃ３の一例が示されている。仮想体Ｃ１〜Ｃ３は、実際にはゲーム中において画面に表示されない。
【００４０】
図５の例では、検出部１２は、プレイヤーキャラクタＰＣの前面に仮想体Ｃ２を配置する。また、検出部１２は、プレイヤーキャラクタＰＣの進行方向の上方に仮想体Ｃ１を配置する。また、検出部１２は、プレイヤーキャラクタＰＣの進行方向の下方に仮想体Ｃ３を配置する。ここでは、仮想体Ｃ１はカプセル状、Ｃ２は棒状、仮想体Ｃ３は球状である。ただし、検出部１２は、仮想体Ｃ１〜Ｃ３の大きさや形状を適宜変更させることができる。
【００４１】
例えば、仮想体Ｃは、矩形状、円錐状、多角形、楕円、円等の形状であってもよい。本実施形態にかかる情報処理装置１０が提供するゲームが３次元の仮想空間におけるゲームである場合、仮想体Ｃはこれに応じて３次元の仮想物体となる。本実施形態にかかる情報処理装置１０が提供するゲームが２次元の仮想空間におけるゲームである場合、仮想体Ｃは、これに応じて２次元の仮想物体となる。
【００４２】
また、仮想体Ｃのサイズは、ステージの建物や道等のオブジェクトＯｂの大きさから最適値に設定されてもよい。例えば、仮想体Ｃ１、Ｃ２は、オブジェクトＯｂ１とオブジェクトＯｂ２との間の溝Ｇに落ちないように溝Ｇよりも大きいサイズであることが好ましい。一方、仮想体Ｃ３は、オブジェクトＯｂ１とオブジェクトＯｂ２との溝Ｇの間をバウンドするように溝Ｇよりも小さいサイズであることが好ましい。
【００４３】
図４に戻り、検出部１２は、仮想体Ｃ１〜Ｃ３のそれぞれがいずれかのオブジェクトＯｂに衝突したか判定する（ステップＳ１６）。図５に示すように、本実施形態では、仮想体Ｃ１〜Ｃ３のそれぞれが背景のいずれかのオブジェクトＯｂに衝突したか否かを判定する。ただし、仮想体Ｃ２は、バウンドさせずに、プレイヤーキャラクタＰＣの移動に応じて同方向に直進してもよい。
【００４４】
検出部１２は、仮想体Ｃ１〜Ｃ３が該当オブジェクトに衝突しなかったと判定した場合、本処理を終了する。他方、検出部１２は、仮想体Ｃ１〜Ｃ３の少なくともいずれかがオブジェクトＯｂに衝突したと判定した場合、記録部１３は、衝突した座標を接触位置テーブル３０の接触位置情報３０２に記録する（ステップＳ１８）。例えば、図５の例では、仮想体Ｃ１がオブジェクトＯｂ１の屋根の最上部と衝突した座標（ｘ１、ｙ１）が、仮想体番号３０１「Ｃ１」に対応する接触位置情報３０２に保存される。また、仮想体Ｃ２がオブジェクトＯｂ１の屋根と衝突した座標（ｘ６、ｙ６）が仮想体番号３０１「Ｃ２」に対応する接触位置情報３０２に保存される。また、仮想体Ｃ３がオブジェクトＯｂ１の屋根と衝突した座標（ｘ９、ｙ９）が仮想体番号３０１「Ｃ３」に対応する接触位置情報３０２に保存される。
【００４５】
図４に戻り、次に、検出部１２は、オブジェクトＯｂの障壁を検出したかを判定する（ステップＳ２０）。検出部１２は、仮想体番号３０１「Ｃ１」に対応する接触位置情報３０２に基づきオブジェクトＯｂの障壁を検出する。例えば、仮想体番号３０１「Ｃ１」に対応する接触位置情報３０２に、図５に示す座標（ｘ１、ｙ１）及び座標（ｘ２、ｙ２）が保存されている場合、ｙ１＝ｙ２であるため、検出部１２は、オブジェクトＯｂの障壁を検出しないと判定し、本処理を終了する。
【００４６】
一方、仮想体番号３０１「Ｃ１」に対応する接触位置情報３０２に、図５に示す座標（ｘ１、ｙ１）、座標（ｘ２、ｙ２）及び座標（ｘ３、ｙ３）が保存されている場合、ｙ３＞ｙ２であるため、検出部１２は、オブジェクトＯｂの障壁を検出したと判定する。図４のステップＳ２０において、検出部１２は、オブジェクトＯｂの障壁を検出したと判定した場合、プレイヤーキャラクタＰＣの障壁回避動作制御処理を実行し（ステップＳ２２）、実行後、本処理を終了する。
【００４７】
なお、検出部１２は、図４に示すように、１フレームに対して１回のみステップＳ１６の衝突判定を行ってもよいし、１フレームに対して複数回ステップＳ１６の衝突判定を行ってもよい。
【００４８】
［障壁回避動作制御処理］
次に、本実施形態に係る障壁回避動作制御処理の一例について図６を参照して説明する。図６は、一実施形態にかかる障壁回避動作制御処理の一例を示すフローチャートである。図４のステップＳ２２にて障壁回避動作制御処理が呼び出されると、特定部１４は、特定された障害となるオブジェクトＯｂの高さとＰＣから障壁までの距離とを算出する（ステップＳ３０）。
【００４９】
例えば、図５の例では、特定部１４は、仮想体番号３０１が「Ｃ１」に対応する接触位置情報３０２の座標（ｘ２、ｙ２）及び座標（ｘ３、ｙ３）からオブジェクトＯｂ２の障壁の高さｈ１と溝Ｇの深さｈ２とを算出する。記録部１３は、図２に示す接触位置テーブル３０の高さ情報３０３に、オブジェクトＯｂ２の障壁の高さｈ１と溝Ｇの深さｈ２とを記録する。
【００５０】
また、特定部１４は、仮想体番号３０１が「Ｃ２」に対応する接触位置情報３０２の座標（ｘ８、ｙ８）から、障壁までの距離を算出する。ここで、プレイヤーキャラクタＰＣから障壁までの距離は、座標（ｘ８、ｙ８）で仮想体Ｃ２がオブジェクトＯｂ２に接触したとき（図５参照）の時刻をｔ＝０とし、プレイヤーキャラクタＰＣの速度をｖとしたときに（Ｐ１−ｖ×ｔ）で与えられる。記録部１３は、接触位置テーブル３０の仮想体番号３０１が「Ｃ２」に対応する距離情報３０４に、算出した距離（Ｐ１−ｖ×ｔ）を記録する。
【００５１】
また、特定部１４は、仮想体番号３０１が「Ｃ３」に対応する接触位置情報３０２の座標（ｘ１２、ｙ１２）及び座標（ｘ１３、ｙ１３）から、溝Ｇの距離（幅）を算出する。記録部１３は、接触位置テーブル３０の仮想体番号３０１が「Ｃ２」に対応する距離情報３０４に、算出した距離Ｐ２を記録する。
【００５２】
次に、特定部１４は、障壁となるオブジェクトＯｂの前後に段差又は溝があるかを判定する（ステップＳ３２）。例えば、特定部１４は、接触位置テーブル３０の高さ情報３０３及び距離情報３０４から障壁となるオブジェクトＯｂの前後に段差又は溝があるかを判定する。図２の例では、特定部１４は、障壁となるオブジェクトＯｂ２の前に溝Ｇがあることを判定する。
【００５３】
特定部１４は、障壁となるオブジェクトＯｂの前後に段差又は溝Ｇがないと判定した場合、ステップＳ３６に進む。特定部１４は、障壁となるオブジェクトＯｂの前後に段差又は溝Ｇがあると判定した場合、障壁となるオブジェクトＯｂの段差又は溝Ｇの位置及びサイズを特定する（ステップＳ３４）。図２の例では、障壁となるオブジェクトＯｂ２の溝Ｇの位置及び幅Ｐ２が特定される。
【００５４】
次に、動作制御部１５は、オブジェクトＯｂの障壁の高さ、障壁までの距離、オブジェクトＯｂの前後の段差、溝の位置及びサイズに応じてプレイヤーキャラクタＰＣのジャンプ動作を制御し（ステップＳ３６）、本処理を終了して、図４のステップＳ２２に戻る。
【００５５】
例えば、図５の例では、動作制御部１５は、オブジェクトＯｂ２の障壁を乗り越えるためにプレイヤーキャラクタＰＣにジャンプさせる。その際、図７に示すように、動作制御部１５は、オブジェクトＯｂ２の障壁の高さ「ｈ１＋（ｈ２−ｙ８）」、障壁までの距離「Ｐ１−ｖ×ｔ」、オブジェクトＯｂ２の前の溝Ｇの幅「Ｐ２」に応じてプレイヤーキャラクタＰＣのジャンプ動作を制御する。
【００５６】
以上に説明したように、本実施形態に係る動作制御方法によれば、仮想体Ｃをステージ上でバウンドさせることでオブジェクトＯｂとの衝突を発生させる。これにより、ゲーム中にリアルタイムにオブジェクトＯｂの形状、及びオブジェクトＯｂとプレイヤーキャラクタＰＣとの相対位置情報を取得することができる。これにより、プレイヤーキャラクタＰＣの動作状態に応じてプレイヤーキャラクタＰＣの進行方向に障害となるオブジェクトＯｂがあるときに、プレイヤーキャラクタＰＣに適切なジャンプ動作を行わせることができる。
【００５７】
プレイヤーキャラクタＰＣの動作状態としては、プレイヤーキャラクタＰＣの位置と、入力操作に応じたプレイヤーキャラクタＰＣの操作方向と、プレイヤーキャラクタＰＣの移動速度がある。これらの少なくともいずれかに応じてプレイヤーキャラクタＰＣに自動的に障害回避動作を行わせることで、障害物の有無に応じてプレイヤーキャラクタＰＣの動作を適切に制御することができる。
【００５８】
なお、図５及び図７では、特定部１４は、オブジェクトＯｂ２の前の溝Ｇの間に仮想体Ｃ３をバウンドさせることで溝Ｇのサイズを検出した。ただし、これに限らず、特定部１４は、図８に示すように、オブジェクトＯｂ２の後ろのオブジェクトＯｂ３上にて仮想体Ｃ３をバウンドさせることでオブジェクトＯｂ２の後ろの段差を検出してもよい。図８の例では、動作制御部１５は、オブジェクトＯｂ２の前の段差ｈ１及び後ろの段差ｈ３に応じて、プレイヤーキャラクタＰＣのジャンプ動作を制御する。なお、特定部１４は、オブジェクトＯｂ２の前後に複数の仮想体を配置してもよい。
【００５９】
以上では、プレイヤーキャラクタＰＣが建物のオブジェクトＯｂの屋根を進行する際の障壁や屋根と屋根との間の溝を検出し、検出した障害となるオブジェクトＯｂに対するプレイヤーキャラクタＰＣの動作を制御する例を挙げて説明した。しかしながら、本実施形態は、これに限らず、例えば、プレイヤーキャラクタＰＣがオブジェクトＯｂの壁と壁との間を進行する際の障害物を検出し、検出した障害となるオブジェクトＯｂに対するプレイヤーキャラクタＰＣの動作を制御してもよい。
【００６０】
その際には、プレイヤーキャラクタＰＣの進行方向の前方の両側に仮想体Ｃを配置し、プレイヤーキャラクタＰＣの前方の左右側壁に凸部等の障害があるかを検出し、検出した障害となるオブジェクトＯｂに対するプレイヤーキャラクタＰＣの動作を制御してもよい。＜変形例＞
次に、上記実施形態の変形例について説明する。本変形例では、オブジェクトＯｂのエッジ位置が検出可能である。エッジ位置の検出は、図４の障害検出処理のステップＳ２０の前において実行される。例えば、図９に接触位置テーブル３０の一例を示すように、ステップＳ１８にて記録した接触位置情報３０２に基づき、検出部１２は、オブジェクトＯｂのエッジの位置を検出したかを判定する。オブジェクトのエッジの位置は、オブジェクトの縁部であってもよいし、オブジェクトの角部であってもよい。図１０に示す仮想体Ｃ１〜Ｃ４がオブジェクトＯｂ１，Ｏｂ２をバウンドする例において、検出部１２は、図９の座標（ｘ９、ｙ９）〜（ｘ１３、ｙ１３）の変化から、仮想体番号「Ｃ３」が接触するオブジェクトＯｂ２のエッジ位置として座標（ｘ１３、ｙ１３）を検出する。記録部１３は、エッジ位置情報３０５に座標（ｘ１３、ｙ１３）を保存する。
【００６１】
これにより、図１０に示すように、障壁となるオブジェクトＯｂ２のエッジ位置Ａが座標（ｘ１３、ｙ１３）により特定される。ここでは、エッジ位置の一例として、建物の屋根の角部を挙げたが、これに限らず、エッジ位置は、木の先端部、人間の頭部、その他のオブジェクトの凸部、凹部、角部、縁部等であってもよい。
【００６２】
また、図１１に示すように、検出部１２は、オブジェクトＯｂにプレイヤーキャラクタＰＣがもぐる通路Ｒがある場合、仮想体Ｃ３をバウンドさせることで、通路Ｒの位置及びサイズと、通路Ｒの先のオブジェクトＯｂ３の屋根の高さを検出することができる。これにより、動作制御部１５は、上記実施形態にて説明したジャンプ動作に加えて、オブジェクトＯｂのエッジ位置にワイヤーを固定した状態でプレイヤーキャラクタＰＣを浮遊させる動作やオブジェクトＯｂの通路Ｒをもぐる動作を制御できる。以上の障害回避動作制御処理について以下に詳しく説明する。
【００６３】
［障壁回避動作制御処理］
本変形例に係る障壁回避動作制御処理の一例について図１２を参照して説明する。図１２は、本変形例にかかる障壁回避動作制御処理の一例を示すフローチャートである。図６に示した一実施形態にかかる障壁回避動作制御処理と同一ステップＳ３０〜Ｓ３４については、説明を省略する。
【００６４】
ステップＳ３４の処理後、特定部１４は、障害となるオブジェクトＯｂを回避する手段を判定する（ステップＳ３８）。具体的には、特定部１４は、接触位置テーブル３０に記録された高さ情報３０３、距離情報３０４及びエッジ位置情報３０５に基づき、障害となるオブジェクトＯｂを回避する手段を特定する。特定部１４は、障害となるオブジェクトＯｂを回避する手段として、ジャンプ動作を選択することができる。この場合、動作制御部１５は、オブジェクトＯｂの障壁の高さ、障壁までの距離、オブジェクトＯｂの前後の段差、溝の幅に応じてプレイヤーキャラクタＰＣがジャンプして移動する動作を制御し（ステップＳ３６）、本処理を終了する。
【００６５】
また、特定部１４は、障害となるオブジェクトＯｂを回避する手段として、エッジ位置にワイヤーを固定して、振り子運動により障害となるオブジェクトＯｂを回避して移動する動作を選択することができる。この場合、動作制御部１５は、遊技者のボタン操作に応じて、接触位置テーブル３０のエッジ位置情報３０５に基づき特定されるエッジの位置にワイヤーを固定させて、プレイヤーキャラクタＰＣが振り子運動により移動する動作を制御し（ステップＳ４０）、本処理を終了する。これにより、図１０に示すように、障害となるオブジェクトＯｂ２のエッジ位置Ａの座標（ｘ１３、ｙ１３）にワイヤーを固定した状態でプレイヤーキャラクタＰＣを振り子運動により浮遊させながら移動させることができる。
【００６６】
さらに、特定部１４は、障害となるオブジェクトＯｂを回避する手段として、プレイヤーキャラクタＰＣが通路を通り抜ける動作を選択することができる。この場合、動作制御部１５は、接触位置情報３０２に基づき特定される通路の位置及びサイズ、オブジェクトＯｂの前後の段差に基づき、プレイヤーキャラクタＰＣが通路を通り抜けて移動する動作を制御し（ステップＳ４２）、本処理を終了する。これにより、図１１に示すように、動作制御部１５は、遊技者のコントローラ１の操作に応じて、プレイヤーキャラクタＰＣは、オブジェクトＯｂ２内の通路Ｒに潜り込み、通路Ｒを通ってオブジェクトＯｂ２の障害を越え、その先のオブジェクトＯｂ３まで移動することができる。なお、プレイヤーキャラクタＰＣの障壁回避動作には、ジャンプ、振り子運動、潜る等の動作があるが、これに限らず、這う等の動作であってもよい。
【００６７】
以上、情報処理装置、動作制御方法及び動作制御プログラムを上記実施形態により説明したが、本発明にかかる情報処理装置、動作制御方法及び動作制御プログラムは上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。
【００６８】
例えば、上記実施形態では、建物のオブジェクトＯｂの障壁等の障害を検出し、検出した障害となるオブジェクトＯｂに対するプレイヤーキャラクタＰＣの動作を制御する例を挙げて説明した。しかしながら、本発明は、プレイヤーキャラクタＰＣの動作に障害となるオブジェクトＯｂを特定し、特定したオブジェクトＯｂを回避するようにプレイヤーキャラクタＰＣの動作を制御することに限らない。例えば、本発明は、プレイヤーキャラクタＰＣの目標となるオブジェクトＯｂを特定し、特定したオブジェクトＯｂに対してプレイヤーキャラクタＰＣの目標に対する動作を制御してもよい。
【００６９】
例えば、プレイヤーキャラクタＰＣの進行方向にリング状のオブジェクトＯｂが浮いていて、そのオブジェクトＯｂを特定し、特定したオブジェクトＯｂの内部を通るように、プレイヤーキャラクタＰＣの目標に対する動作を制御してもよい。
【００７０】
例えば、プレイヤーキャラクタＰＣの進行方向に馬のオブジェクトＯｂがあって、そのオブジェクトＯｂを特定し、特定したオブジェクトＯｂの背中に乗るように、プレイヤーキャラクタＰＣの目標に対する動作を制御してもよい。
【００７１】
また、検出部は、プレイヤーキャラクタＰＣの位置、プレイヤーキャラクタＰＣの移動速度及び入力操作に応じたプレイヤーキャラクタＰＣの操作方向の少なくともいずれかに応じて、仮想体の形状又は大きさを変化させてもよい。例えば、検出部は、プレイヤーキャラクタＰＣの移動速度が速い程、仮想体の長さを長くしてもよい。
【００７２】
また、例えば、上記実施形態に係る情報処理装置１０の構成は一例であり、本発明の範囲を限定するものではなく、用途や目的に応じて様々なシステム構成例があることは言うまでもない。例えば、情報処理装置１０とディスプレイ２９とが別体で構成されてもよい。情報処理装置１０をＴＶ装置に接続し、ＴＶ装置の画面をディスプレイ２９として使用するシステム形態であってもよい。
【符号の説明】
【００７３】
１０：情報処理装置
１１：入力部
１２：検出部
１３：記録部
１４：特定部
１５：動作制御部
１６：グラフィック処理部
１７：サウンド処理部
１８：表示部
１９：音出力部
２０：スピーカー
２１：ＣＰＵ
２２：ＲＯＭ
２３：ＲＡＭ
２４：ＨＤＤ
２５：グラフィックカード
２６：外部Ｉ／Ｆ
２６ａ：記録媒体
２７：通信Ｉ／Ｆ
２８：入力Ｉ／Ｆ
２８ａ：メモリーカード
２９：ディスプレイ
３０：接触位置テーブル
Ｃ１〜Ｃ４：仮想体
Ｏｂ１〜Ｏｂ３：オブジェクト
ＰＣ：プレイヤーキャラクタ
【図１】
0006612090.tif 000002
【図２】
0006612090.tif 000003
【図３】
0006612090.tif 000004
【図４】
0006612090.tif 000005
【図５】
0006612090.tif 000006
【図６】
0006612090.tif 000007
【図７】
0006612090.tif 000008
【図８】
0006612090.tif 000009
【図９】
0006612090.tif 000010
【図１０】
0006612090.tif 000011
【図１１】
0006612090.tif 000012
【図１２】
0006612090.tif 000013