(57)【要約】【課題】オブジェクトをゲーム上の地形に応じてスムーズに動作させる。【解決手段】ゲーム画面に表示されているオブジェクトの下の仮想地面を特定する特定部と、特定した前記仮想地面の情報に基づき、前記オブジェクトの次のアクションを決定する決定部と、決定した前記次のアクションに基づき、前記ゲーム画面に表示するオブジェクトの動作を制御する動作制御部と、を有する情報処理装置が提供される。【選択図】図１０
2020127589.tif 000002
【特許請求の範囲】
【請求項１】
ゲーム画面に表示されているオブジェクトの下の仮想地面を特定する特定部と、
特定した前記仮想地面の情報に基づき、前記オブジェクトの次のアクションを決定する決定部と、
決定した前記次のアクションに基づき、前記ゲーム画面に表示するオブジェクトの動作を制御する動作制御部と、を有する情報処理装置。
【請求項２】
前記決定部は、
前記オブジェクトの大きさに応じて、ゲーム画面に表示されている表示部品において無視する段差及び／又は隙間を前記仮想地面に基づき変更し、無視する前記段差及び／又は隙間を変更して前記オブジェクトの次のアクションを決定する、
請求項１に記載の情報処理装置。
【請求項３】
前記特定部は、
前記オブジェクトの大きさに応じたサイズであって前記オブジェクトに重ねて移動する判定オブジェクトの前記表示部品からの押出方向に応じて前記仮想地面を特定する、
請求項２に記載の情報処理装置。
【請求項４】
前記動作制御部は、
決定した前記次のアクションに基づき前記オブジェクトを動作させた後の前記判定オブジェクトの位置を補正し、
前記特定部は、
補正した前記判定オブジェクトの前記表示部品からの押出方向に応じて前記仮想地面を特定する、
請求項３に記載の情報処理装置。
【請求項５】
前記決定部は、
特定した前記仮想地面の角度に基づき、前記オブジェクトの次のアクションを決定する、
請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項６】
前記決定部は、
特定した前記仮想地面の角度が所定の角度未満である場合、前記オブジェクトの次のアクションを前記オブジェクトの直前の動作と同じ動作に決定する、
請求項１〜５のいずれか一項に記載の情報処理装置。
【請求項７】
前記決定部は、
特定した前記仮想地面の角度が所定の角度以上である場合、前記オブジェクトの次のアクションを前記オブジェクトの直前の動作と異なる動作に決定する、
請求項１〜６のいずれか一項に記載の情報処理装置。
【請求項８】
前記決定部は、
前記仮想地面が特定されなかった場合、前記オブジェクトの次のアクションを、前記オブジェクトの直前の動作と異なる動作に決定する、
請求項１〜７のいずれか一項に記載の情報処理装置。
【請求項９】
前記特定部は、フレーム毎に前記仮想地面を特定する、
請求項１〜８のいずれか一項に記載の情報処理装置。
【請求項１０】
ゲーム画面に表示されているオブジェクトの下の仮想地面を特定し、
特定した前記仮想地面の情報に基づき、前記オブジェクトの次のアクションを決定し、
決定した前記次のアクションに基づき、前記ゲーム画面に表示するオブジェクトの動作を制御する、
処理をコンピュータが実行するゲーム処理方法。
【請求項１１】
ゲーム画面に表示されているオブジェクトの下の仮想地面を特定し、
特定した前記仮想地面の情報に基づき、前記オブジェクトの次のアクションを決定し、
決定した前記次のアクションに基づき、前記ゲーム画面に表示するオブジェクトの動作を制御する、
処理をコンピュータに実行させるゲーム処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、ゲーム処理方法及びゲーム処理プログラムに関する。
【背景技術】
【０００２】
ゲームにおいてキャラクタが移動する地面等の地形を検出するレイキャストの技術がある。この技術では、キャラクタの真下に向かってレイキャストを行い、地形情報を検出することが行われている。その際、レイ（光線）がヒットした場所の情報を取得し、取得した情報に基づきキャラクタの下の地面の位置及び角度を設定する。
【０００３】
また、地形を検出するための地形検出用オブジェクトを仮想空間に配置し、キャラクタと地形検出用オブジェクトとの衝突情報から地形を自動的に判定する技術が開示されている（例えば特許文献１、２参照）。
【０００４】
また、
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−４６９５１号公報
【特許文献２】特開２０１７−２１７３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、建物の間の狭い隙間や道路に設けられた低い段差等の特定の地形は無視してキャラクタを移動させる方が、キャラクタをゲーム上の地形に応じてスムーズに動作させることができ、ゲームの進行上好ましい場合がある。
【０００７】
そこで、本開示は、オブジェクトをゲーム上の地形に応じてスムーズに動作させることが可能な技術を提供する。
【課題を解決するための手段】
【０００８】
本開示の一の態様によれば、ゲーム画面に表示されているオブジェクトの下の仮想地面を特定する特定部と、特定した前記仮想地面の情報に基づき、前記オブジェクトの次のアクションを決定する決定部と、決定した前記次のアクションに基づき、前記ゲーム画面に表示するオブジェクトの動作を制御する動作制御部と、を有する情報処理装置が提供される。
【発明の効果】
【０００９】
一の側面によれば、オブジェクトをゲーム上の地形に応じてスムーズに動作させることができる。
【図面の簡単な説明】
【００１０】
【図１】従来の地形検出を説明するための図である。
【図２】一実施形態に係る情報処理装置の機能構成の一例を示す図である。
【図３】一実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【図４】一実施形態に係るアクション処理の概要を説明するための図である。
【図５】一実施形態に係るアクション処理の概要を説明するための図である。
【図６】一実施形態に係るキャラクタテーブルの一例を示す図である。
【図７】一実施形態に係る表示部品位置テーブルの一例を示す図である。
【図８】一実施形態に係る動作ルールテーブルの一例を示す図である。
【図９】一実施形態に係るアクション処理の一例を示すフローチャートである。
【図１０】一実施形態に係る仮想地面の作成を説明するための図である。
【図１１】一実施形態に係るアクション処理の効果の一例を示す図である。
【図１２】一実施形態に係るキャラクタの大きさに応じたアクション処理を説明するための図である。
【図１３】一実施形態に係るアクション処理の効果の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、一実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く場合がある。
【００１２】
以下の説明に際し、ゲーム画面においてキャラクタが動作する仮想空間に置かれた建物等のオブジェクトを「表示部品」という。また、以下では、「キャラクタ」は、プレイヤーによって操作されるプレイヤーキャラクタを想定して説明を行う。しかし、キャラクタは、これに限られず、通信ゲームの通信相手が操作するキャラクタであってもよいし、自動で動作するキャラクタ（ノンプレイヤキャラクタ）であってもよい。
＜従来の地形検出の一例＞
従来の地形検出の一例について図１を参照して説明する。図１は、従来の地形検出を説明するための図である。ゲーム画面に表示されているキャラクタ１００の足場の地形を判定する手法の一つとして、キャラクタの真下に向かってレイキャストを行う方法がある。この方法では、レイ（光線）がヒットした場所の情報を取得し、取得した情報に基づきキャラクタの下の地面の位置及び角度を検出し、キャラクタの足元の地面の高さ、角度を判定する。
【００１３】
かかる判定では、キャラクタ１００の落下やキャラクタ１００が隙間に挟まれてしまう等の意図しない動作が生じ、キャラクタ１００の動作が望む通りの挙動とならない場合がある。たとえば、図１（ａ）にて、キャラクタ１００が表示部品２０１、２０２の間の隙間２０３付近にいる場合、レイキャストでは、レイが隙間２０３に入る。その結果、キャラクタ１００は、図１（ｂ）に示すように隙間２０３に入り込み、図１（ｃ）に示すように隙間２０３の底部の地面の表示部品１０２（以下、「地面１０２」とも表記する。）上に着地する動作が行われる。これにより、キャラクタ１００は、隙間２０３に挟まった状態で動けなくなる場合がある。
【００１４】
レイキャストを複数回行ったとしても、図１（ｄ）に示すように表示部品２０４、２０５が細く、キャラクタが細い足場にいる場合、レイが表示部品２０４、２０５の間の隙間２０６に入り、キャラクタが隙間２０６に挟まってしまう。
【００１５】
また、図１（ｅ）に示すように地面１０２に無視できる程度の小さな段差を生じさせる表示部品２０７があり、その上にキャラクタ１００がいる場合、レイキャストを行った結果、表示部品２０７は傾斜が４５°以上の不正な足場と判定され、キャラクタ１００の落下処理が発生する場合がある。
【００１６】
そこで、狭い隙間や低い段差等の地形は無視してキャラクタ１００の動作が望む通りの挙動となることで、キャラクタ１００をスムーズに動作させることが可能な情報処理装置、ゲーム処理方法及びゲーム処理プログラムを提供する。
【００１７】
［情報処理装置の機能構成］
以下では、一実施形態に係る情報処理装置１０の機能構成の一例について、図２を参照しながら説明する。図２は、一実施形態に係る情報処理装置１０の機能構成の一例を示す図である。
【００１８】
本実施形態に係る情報処理装置１０は、プレイヤーがゲームをプレイする機器であればいずれの電子機器でもよく、スマートフォン、携帯ゲーム機、パーソナルコンピュータ、タブレット端末、家庭用ゲーム装置、業務用ゲーム装置等であってもよい。
【００１９】
情報処理装置１０は、記憶部１１、入力部１２、特定部１３、決定部１４、動作制御部１５、グラフィック処理部１６、サウンド処理部１７、表示部１８及び音出力部１９を有する。
【００２０】
記憶部１１は、キャラクタテーブル１１１、表示部品位置テーブル１１２、動作ルールテーブル１１３を記憶する。キャラクタテーブル１１１は、キャラクタの情報を記憶するテーブルである。表示部品位置テーブル１１２は、ゲーム画面に表示する表示部品の位置を記憶するテーブルである。動作ルールテーブル１１３は、キャラクタの動作を行うルールを定義したテーブルである。これらのテーブルについての具体例は後述する。
【００２１】
入力部１２は、プレイヤーからのコントローラ（図３参照）の操作を受け付ける。入力部１２は、プレイヤーからの操作をタッチパネルにより受け付けてもよい。
【００２２】
特定部１３は、ゲーム画面に表示されているキャラクタの足元の仮想地面を特定する。キャラクタの足元の仮想地面は、キャラクタの足元において仮想的に作成される非表示の地面であり、キャラクタの足場（足元の状態）を判定するために用いられる。なお、ゲーム画面に表示されているキャラクタは、ゲーム画面に表示されているオブジェクトの一例である。すなわち、オブジェクトは、キャラクタに限られず、車等の乗り物、キャラクタが乗った移動物、その他のゲーム画面に表示されるすべてのものを含む。また、キャラクタの足元（足場）の仮想地面は、オブジェクトの下の仮想地面の一例である。すなわち、オブジェクトは、キャラクタの足元に限られず、キャラクタがほふく前進していたり、寝そべっていたり、逆立ちしていたりしている場合、キャラクタの腹や背中や両手が「オブジェクトの下」となり、キャラクタの腹や背中や両手において仮想的に非表示の地面が作成される。
【００２３】
決定部１４は、特定した仮想地面の情報に基づき、キャラクタの次のアクションを決定する。決定部１４は、動作ルールテーブル１１３に定義されたルールに基づき、キャラクタの次のアクションを決定してもよい。動作制御部１５は、決定した次のアクションに基づき、キャラクタの動作を制御する。
【００２４】
グラフィック処理部１６は、動作制御部１５から描画命令が出力されると、表示部１８に所定の画像を表示するためのビデオ信号を出力する。これにより、表示部１８は、キャラクタと背景のステージとを仮想空間に表示する。グラフィック処理部１６から出力されるビデオ信号に含まれる画像の一フレーム時間は、例えば３０分の１秒である。よって、グラフィック処理部１６は、フレーム単位（すなわち、３０分の１秒単位）で１枚の画像の描画を実行する。
【００２５】
サウンド処理部１７は、グラフィック処理部１６からサウンド出力の指示命令が出力されると、音出力部１９に所定の音を出力するためのサウンド信号を出力する。これにより、ゲームの状況に応じたサウンドが出力される。
【００２６】
［情報処理装置のハードウェア構成］
次に、一実施形態に係る情報処理装置１０のハードウェア構成の一例について、図３を参照しながら説明する。図３は、一実施形態に係る情報処理装置１０のハードウェア構成の一例を示す図である。
【００２７】
情報処理装置１０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＨＤＤ２４、グラフィックカード２５、外部Ｉ／Ｆ（インターフェース）２６、通信Ｉ／Ｆ２７、入力Ｉ／Ｆ２８、ディスプレイ２９及びスピーカ３０を有する。各部は、バスで相互に接続されている。
【００２８】
ＲＯＭ２２は、電源を切っても内部データを保持することができる不揮発性の半導体メモリである。ＲＯＭ２２には、プログラム及びデータが格納されている。ＲＡＭ２３は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００２９】
ＨＤＤ２４は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムには、情報処理装置１０の全体を制御する基本ソフトウェア及びアプリケーションソフトウェアがある。ＨＤＤ２４には、各種のデータベースが格納されてもよい。本実施形態では、ＨＤＤ２４にアクション処理を実行するためのプログラムや基本ゲームプログラムが格納される。また、ＨＤＤ２４にキャラクタテーブル１１１、表示部品位置テーブル１１２及び動作ルールテーブル１１３の各情報が格納される。
【００３０】
ＣＰＵ２１は、ＨＤＤ２４からプログラムやデータをＲＡＭ２３上に読み出し、アクション処理や基本ゲーム処理を実行することで、情報処理装置１０の全体の制御や情報処理装置１０に搭載された機能を実現する。
【００３１】
具体的には、図２に示す特定部１３、決定部１４及び動作制御部１５の機能は、情報処理装置１０にインストールされたアクション処理を実行するためのプログラムがＣＰＵ２１に実行させる処理により実現される。
【００３２】
外部Ｉ／Ｆ２６は、情報処理装置１０を記録媒体２６ａ等の外部装置に接続するインターフェースである。これにより、情報処理装置１０は、外部Ｉ／Ｆ２６を介して記録媒体２６ａの読み取り及び書き込みを行うことができる。記録媒体２６ａの一例としては、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）が挙げられる。記録媒体２６ａは、ＳＤメモリーカード（SD Memory card）又はＵＳＢメモリ（Universal Serial Bus memory）等であってもよい。
【００３３】
例えば、情報処理装置１０には、アクション処理を実行するためのプログラム及び基本ゲームプログラムが格納された記録媒体２６ａを装着することが可能である。これらのプログラムは、外部Ｉ／Ｆ２６により読み出されて、ＲＡＭ２３に読み込まれる。
【００３４】
ＣＰＵ２１は、ＲＡＭ２３にロードされた上記の各種のプログラムを処理し、グラフィックカード２５にゲームの進行に応じた画像の出力を指示する。グラフィックカード２５は、指示に従い画面に表示するゲームの場面に応じた画像処理を行い、ディスプレイ２９にキャラクタの画像及びステージの画像を描画させる。これにより、グラフィック処理部１６及び表示部１８の機能が実行される。なお、グラフィックカード２５は、フレーム単位で１枚の画像の描画を実行し、一秒間に３０回〜６０回のフレームの画像が描画される。
【００３５】
また、ＣＰＵ２１は、ＲＡＭ２３に読み込まれた上記の各種のプログラムを処理し、ゲームの進行に応じてスピーカ３０から所定の音を出力させる。これにより、サウンド処理部１７及び音出力部１９の機能が実行される。
【００３６】
ディスプレイ２９はタッチパネル式としても良い。これにより、コントローラ１を用いずに入力操作を行うことができる。この場合、タッチパネルにより検出されたタッチ位置の入力情報は、ＲＡＭ２３に格納され、ＣＰＵ２１はＲＡＭ２３に格納された入力情報をもとに各種の演算処理を実行する。
【００３７】
通信Ｉ／Ｆ２７は、情報処理装置１０をネットワークに接続するインターフェースである。また、通信Ｉ／Ｆ２７は、アンテナを有する通信ユニットを介して、他のゲーム機器と無線により通信を行う機能を有していてもよい。
【００３８】
入力Ｉ／Ｆ２８は、コントローラ１に接続するインターフェースである。コントローラ１は、操作ボタン２及び方向キー３を有する。プレイヤーは、操作ボタン２を操作することでキャラクタに所定の動作を行わせることができる。また、プレイヤーは、方向キー３を操作することでキャラクタを所定の方向に移動させることができる。入力Ｉ／Ｆ２８は、プレイヤーがコントローラ１を用いて行った入力操作に基づく入力情報をＲＡＭ２３に格納させる。これにより、入力部１２の機能が実行される。
【００３９】
ＣＰＵ２１は、ＲＡＭ２３に格納された入力情報に基づきキャラクタの動作等の各種の演算処理を実行する。また、入力Ｉ／Ｆ２８は、ＣＰＵ２１からの指示に従いＲＡＭ２３に記憶されているゲームの進行状況を示すデータをメモリーカード２８ａに保存させ、メモリーカード２８ａに保存されている中断時のゲームのデータを読み出してＲＡＭ２３に転送する処理を行う。
【００４０】
［アクション処理の概要］
次に、図４及び図５を参照して、一実施形態に係るアクション処理の概要について説明する。図４及び図５は、一実施形態に係るアクション処理の概要を説明するための図である。本実施形態に係るアクション処理では、レイキャストではなく、キャラクタに重ねてキャラクタとともに移動する非表示の判定オブジェクトを使用し、判定オブジェクトの押出情報に基づき仮想地面が特定される。そして、仮想地面を用いてキャラクタの足場の状態が判定される。これにより、キャラクタは狭い隙間に落下することなく、小さな段差であれば段差でなく坂道とみなして乗り越えることができる。ただし、これらのキャラクタの動作は一例であり、キャラクタをゲーム上の地形に応じてスムーズに動作させることができる。
【００４１】
図４及び図５に示すように、キャラクタ１００には判定オブジェクト１０１が重ねて設けられる。プレイヤーには、キャラクタ１００は見えるが、判定オブジェクト１０１は見えない。ここでは、説明の便宜上、判定オブジェクト１０１を表示する。判定オブジェクト１０１は、キャラクタ１００の大きさに応じてサイズが異なってもよい。判定オブジェクト１０１は、キャラクタ１００の大きさに応じて形状が異なってもよい。
【００４２】
一実施形態に係るアクション処理では、キャラクタ１００の大きさに応じたサイズの判定オブジェクト１０１が予めキャラクタテーブル１１１に設定されている。キャラクタテーブル１１１の一例を図６に示す。例えば、キャラクタＩＤが「Ａａ」のキャラクタ１００には、判定オブジェクトＩＤが「Ｂａ」の判定オブジェクト１０１が重ねられる。キャラクタＩＤが「Ａｂ」のキャラクタ１００には、判定オブジェクトＩＤが「Ｂｂ」の判定オブジェクト１０１が重ねられる。「Ａａ」のキャラクタ１００が「Ａｂ」のキャラクタ１００の１．５倍の大きさであれば、「Ｂａ」の判定オブジェクト１０１は「Ｂｂ」の判定オブジェクト１０１の１．５倍の大きさに設定されてもよい。
【００４３】
ゲーム画面には、建物、地面、山等のキャラクタ以外のオブジェクト(以下、「表示部品」という。)が表示される。図４及び図５では、表示部品１０２、１０３、１０４が図示されている。
【００４４】
一実施形態に係るアクション処理に用いる表示部品の表示位置は、表示部品位置テーブル１１２に記憶される。一実施形態に係る表示部品位置テーブル１１２の一例を図７に示す。例えば、表示部品ＩＤが「Ｃａ」の表示部品１０３に対応する位置情報の左上の座標（ｘａ１、ｙａ１）及び右下の座標（ｘａ２、ｙａ２）から表示部品１０３の位置及び大きさが定まる。
【００４５】
図４は、表示部品１０２、１０３とキャラクタ１００が表示されている場面を示す。判定オブジェクト１０１は、ゲーム中のプレイヤーには見えないように非表示にして、キャラクタ１００の移動に応じてキャラクタ１００に重ねて移動される。なお、キャラクタ１００、判定オブジェクト１０１、表示部品１０２、１０３の大きさ及び形状は一例であり、これに限られない。
【００４６】
情報処理装置１０は、毎フレーム、すなわち、一フレーム毎に以下の手順（１）〜（４）を実行することで、キャラクタ１００のアクションを更新する。
（１）足場の判定
（２）アクションの決定
（３）移動
（４）判定オブジェクトの押出
図４（ａ）〜（ｄ）を参照して、キャラクタが表示部品１０３の側壁に衝突する場合のアクションの更新について説明する。まず、手順（１）において、特定部１３は、キャラクタ１００がいる位置の足場を判定する。図４（ａ）の例では、特定部１３は、キャラクタ１００の足場を判定した結果、キャラクタ１００の足元に所定幅の地面１０２があるため、足場があると判定する。特定部１３は、キャラクタ１００の足元に所定幅の面がある場合、後述する仮想地面を作成せずに「足場がある」と判定できる。
【００４７】
次に、手順（２）において、決定部１４は、判定結果に応じてキャラクタ１００の次のアクションを決定する。アクションを決定するための動作ルールは、動作ルールテーブル１１３に定義されている。
【００４８】
動作ルールテーブル１１３の一例を図８に示す。図８の動作ルールテーブル１１３の例では、条件が「足場がある」の場合であって足場の傾斜がない又は足場の傾斜が４５°未満の場合、キャラクタのアクションは「動作継続」に設定される。条件が「足場がある」の場合であって足場の傾斜が４５°以上の場合、キャラクタのアクションは「動作停止」又は「落下」に設定される。条件が「足場がない」の場合、キャラクタのアクションは「落下」に設定される。
【００４９】
よって、図４（ｂ）の例では、決定部１４は、動作ルールテーブル１１３を参照して、条件が「足場がある」の場合の「足場の傾斜なし」の条件に従い、次のアクションとして、キャラクタの動作継続を決定する。つまり、決定部１４は、キャラクタ１００の走りを継続させるようにアクションを決定する。
【００５０】
次に、手順（３）において、動作制御部１５は、決定した次のアクションに基づき、キャラクタの動作を制御する。図４（ｃ）の例では、動作制御部１５は、キャラクタ１００の走りを継続し、キャラクタ１００を移動させる。移動の結果、キャラクタ１００は表示部品１０３に衝突し、キャラクタ１００に重ねられた判定オブジェクト１０１とともに表示部品１０３内に押し込まれる。
【００５１】
次に、手順（４）において、動作制御部１５は、判定オブジェクト１０１の表示部品１０３からの押出を制御する。この結果、判定オブジェクト１０１が表示部品１０３から押し出される。このとき、判定オブジェクト１０１は、押し込まれた方向と逆の方向に押し出される。これにより、図４（ｄ）に示すように、キャラクタ１００が表示部品１０３の壁に衝突する動作が表示される。
【００５２】
次に、図５（ａ）〜（ｆ）を参照して、キャラクタが表示部品１０４の段差から落下する場合のアクションの更新について説明する。まず、手順（１）において、特定部１３は、キャラクタ１００がいる位置の足場を判定する。図５（ａ）の例では、特定部１３は、キャラクタ１００の足場を判定した結果、キャラクタ１００の足元に所定幅の表示部品１０４の上面があるため、地面があると判定する。
【００５３】
次に、手順（２）において、決定部１４は、判定結果に応じてキャラクタ１００の次のアクションを決定する。図５（ｂ）の例では、決定部１４は、動作ルールテーブル１１３を参照して、条件が「足場がある」の場合の「足場の傾斜なし」の条件に従い、次のアクションとして、キャラクタの動作の継続を決定する。つまり、決定部１４は、キャラクタ１００の走りを継続させるようにアクションを決定する。
【００５４】
次に、手順（３）において、動作制御部１５は、決定した次のアクションに基づき、キャラクタの動作を制御する。図５（ｃ）の例では、動作制御部１５は、キャラクタ１００の走りを継続し、キャラクタ１００を移動させる。移動の結果、キャラクタ１００は表示部品１０４の先に飛び出し、空中に浮いた状態となる。
【００５５】
次に、手順（４）において、動作制御部１５は、判定オブジェクト１０１の押出を行う。ここでは、判定オブジェクト１０１は、キャラクタ１００に重なる位置にて空中に浮き、表示部品１０４内に押し込まれていない。よって、動作制御部１５は、判定オブジェクト１０１を押し出す動作を行えず、図５（ｄ）に示すように、キャラクタ１００は空中に浮いた状態のままとなる。
【００５６】
次に、次のフレームの手順（１）において、特定部１３は、キャラクタ１００がいる位置の足場を判定する。図５（ｅ）の例では、特定部１３は、仮想地面を作成できず、キャラクタ１００の足場を判定した結果、地面がないと判定する。
【００５７】
次に、手順（２）において、決定部１４は、判定結果に応じてキャラクタ１００の次のアクションを決定する。決定部１４は、動作ルールテーブル１１３を参照して、条件が「足場がない」の場合のルールに従い、次のアクションとして、キャラクタの落下を決定する。この結果、動作制御部１５は、決定した次のアクションに基づき、ゲーム画面に表示するキャラクタの動作を制御する。その結果、図５（ｆ）の例では、動作制御部１５は、決定した次のアクションに従い、キャラクタ１００を表示部品１０４から落下する動作を実行する。
【００５８】
［アクション処理の詳細］
次に、図９及び図１０を参照して、一実施形態に係る仮想地面の作成を含むアクション処理の詳細について説明する。図９は、一実施形態に係るアクション処理の詳細を説明するための図である。
【００５９】
仮想地面の作成を含むアクション処理では、上記手順（１）〜（４）のうち、手順（１）において仮想地面の作成を行った後に足場の判定を行う。仮想地面の作成は、レイキャストを使用せずに判定オブジェクトの押出情報に基づき行う。また、上記手順（３）と手順（４）との間にキャラクタ１００の着地補正を行う。
【００６０】
図９の本処理が開始されると、入力部１２が、キャラクタ１００に対するプレイヤーの操作を受け付け、特定部１３は、キャラクタ１００の仮想地面を作成する（ステップＳ１）。図１０（ａ）の例では、地面１０２と平行に仮想地面が作成されてもよい。特定部１３は、キャラクタ１００の足元に所定幅の面がある場合、仮想地面を作成せずに「足場がある」と判定してもよい。
【００６１】
図９に戻り、次に、特定部１３は、足場の判定を行う（ステップＳ２）。特定部１３が「足場あり」と判定した場合、決定部１４は、キャラクタ１００の次のアクションを、動作ルールテーブル１１３に定義したルールに基づき決定する（ステップＳ３）。決定部１４は、水平方向に足場がある場合、動作ルールテーブル１１３に記憶された「動作継続」を次のアクションに決定する。図１０（ｂ）の例では、走りを継続するアクションに決定される。
【００６２】
図９に戻り、次に、動作制御部１５は、決定したアクションに従いキャラクタを動作させる（ステップＳ４）。これにより、図１０（ｃ）に示すように、キャラクタ１００が走りを継続する。その結果、図１０（ｃ）の例では、キャラクタ１００が、キャラクタ１００の前方に配置された表示部品１０５まで移動し、キャラクタ１００と判定オブジェクト１０１とが、表示部品１０５内に押し込まれる。
【００６３】
図９に戻り、次に、動作制御部１５は、決定したアクションに従い動作後のキャラクタの着地を補正する（ステップＳ５）。着地補正とは、キャラクタ１００と判定オブジェクト１０１とを地面に押し込ませることをいう。例えば、動作制御部１５は、図１０（ｄ）に示すように、キャラクタ１００が接触する地面１０２が水平であれば、地面１０２に対して垂直な方向に判定オブジェクト１０１とキャラクタ１００とを押し込ませる。キャラクタ１００が接触する地面１０２が斜めであれば、その角度に垂直な方向に判定オブジェクト１０１とキャラクタ１００とを押し込ませる。なお、押し込ませる対象は、判定オブジェクト１０１だけでもよい。
【００６４】
図９に戻り、次に、動作制御部１５は、表示部品１０５及び地面１０２に押し込まれた判定オブジェクト１０１を押し出す（ステップＳ６）。１０（ｅ）の例では、地面１０２と衝突した表示部品１０５からの押出により、判定オブジェクト１０１とキャラクタ１００とが左上の４５°の方向に斜めに押し出される。判定オブジェクト１０１の押出情報は、記憶部１１に記憶される。
【００６５】
図９に戻り、次に、特定部１３は、次のフレームの更新タイミングかを判定する（ステップＳ７）。特定部１３は、次のフレームの更新タイミングであると判定すると、ステップＳ１に戻り、キャラクタ１００の仮想地面を作成する（ステップＳ１）。
【００６６】
特定部１３は、前回の判定オブジェクト１０１の押出情報に基づき、判定オブジェクト１０１の押出方向に略垂直な方向に仮想地面を作成する。この結果、図１０（ｆ）に示すように、判定オブジェクト１０１の押出方向に応じて判定オブジェクト１０１の押出方向に略垂直な方向に仮想地面１５０が作成される。
【００６７】
図９に戻り、次に、特定部１３は、足場の判定を行う（ステップＳ２）。特定部１３は、仮想地面１５０が作成されている場合、足場があると判定する。足場があると判定された場合、前述したステップＳ３〜Ｓ７の処理が繰り返される。その結果、次のアクションは、動作継続に決定され、図１０（ｇ）〜図１０（ｊ）に示すキャラクタ１００の動作が実行される。
【００６８】
一方、特定部１３は、ステップＳ２において足場がないと判定すると、キャラクタ１００の次のアクションを、動作ルールテーブル１１３に記憶された動作ルールに基づき「落下」に決定する（ステップＳ８）。
【００６９】
次に、動作制御部１５は、決定したアクションに従いキャラクタを動作させる（ステップＳ９）。これに応じてキャラクタ１００が落下する。次に、動作制御部１５は、キャラクタ１００が落下した後の着地補正を行い（ステップＳ５）、判定オブジェクトの押出を行う（ステップＳ６）。次フレームの更新タイミングが来るたびに（ステップＳ７）、ステップＳ１に戻ってステップＳ１以降の処理が繰り返され、キャラクタの動作が更新される。
【００７０】
以上に説明したように、一実施形態に係るアクション処理によれば、キャラクタ１００に重ねて判定オブジェクト１０１を設け、判定オブジェクト１０１の押出情報に基づき、キャラクタ１００の足場である仮想地面１５０を作成し、キャラクタの足場を判定する。
【００７１】
これにより、図１１（ａ）に示すように、表示部品２０１、２０２の間に隙間２０３が生じていても、隙間２０３が所定以下の狭い隙間であればキャラクタ１００の下に作成された足場（仮想地面１５０）により、キャラクタ１００が隙間２０３に落下して身動きが取れない動作は発生しない。
【００７２】
また、図１１（ｂ）に示すように、小さな段差を形成する表示部品２０７が地面１０２に置かれている場合、キャラクタ１００の下に作成される仮想地面１５０と地面１０２との角度は４５°未満になる。このため、決定部１４は、動作ルールテーブル１１３に基づき次のアクションを「動作継続」に決定する。
【００７３】
これにより、表示部品２０７の小さな段差であれば、仮想地面１５０に基づき、キャラクタ１００は、表示部品２０７を段差でなく坂道とみなして乗り越える等の動作を行う。これにより、キャラクタ１００が小さな段差から落下するなどの不自然な動作を回避し、キャラクタ１００をゲーム上の地形に応じてスムーズに動作させることができる。
【００７４】
更に、特定部１３は、キャラクタ１００の大きさ及び／又は形状に応じて判定オブジェクト１０１のサイズを設定することで、キャラクタ１００の大きさ及び／又は形状に応じた仮想地面１５０を作成できる。
【００７５】
キャラクタテーブル１１１に一例を示した通り、キャラクタ１００毎に設定される判定オブジェクト１０１は、キャラクタ１００の大きさ及び／又は形状に応じてサイズを変えることができる。特定部１３は、判定オブジェクト１０１の表示部品からの押出方向に応じて仮想地面１５０を作成する。このため、作成される仮想地面１５０の傾斜角度はキャラクタ１００の大きさ及び／又は形状に応じて変わり、キャラクタ１００の乗り越えられる段差の高さがキャラクタ１００の大きさ及び／又は形状に応じて自動的に変わる。
【００７６】
例えば、図１２（ａ）〜（ｃ）に示すキャラクタ１００Ａは、図１２（ｄ）〜（ｆ）に示すキャラクタ１００Ｂよりも小さい。これに応じて、キャラクタ１００Ａに重ねる判定オブジェクト１０１Ａは、キャラクタ１００Ｂに重ねる判定オブジェクト１０１Ｂよりも小さく設定することができる。
【００７７】
これにより、図１２（ａ）及び（ｄ）に示すキャラクタ１００Ａ、１００Ｂの移動、図１２（ｂ）及び（ｅ）に示すキャラクタ１００Ａ、１００Ｂの着地補正の後の、図１２（ｃ）及び（ｆ）に示す判定オブジェクト１０１Ａ、１０１Ｂの押出方向が変わる。この結果、作成された仮想地面１５０Ａ，１５０Ｂの角度は、判定オブジェクト１０１Ａよりも大きい判定オブジェクト１０１Ｂ側の仮想地面１５０Ｂと地面１０２との角度θ２が、仮想地面１５０Ａと地面１０２との角度θ１よりも小さくなる。
【００７８】
このように、判定オブジェクト１０１の大きさをキャラクタ１００に応じて変えることで、判定オブジェクト１０１の押出方向が変わり、これにより、作成する仮想地面１５０の傾斜を変えることができる。これにより、キャラクタ１００Ａでは登ることが困難な高さの表示部品１０６であっても、キャラクタ１００Ａよりも大きなキャラクタ１００Ｂでは表示部品１０６を越える又は登る動作を、次のアクションに決定することが可能となる。
【００７９】
これにより、キャラクタ１００Ｂは、表示部品１０６を乗り越えられるが、キャラクタ１００Ａは、表示部品１０６を乗り越えられないというように、キャラクタ１００の大きさに応じて乗り越えられる段差の高さを自動的に変えることができる。これにより、キャラクタ１００の大きさに応じてキャラクタ１００の動作を自動で変え、キャラクタ１００をゲーム上の地形とキャラクタ１００の大きさ及び／又は形状に応じてスムーズに動作させることができる。
【００８０】
［変形例］
以上に説明したキャラクタ１００の次のアクションは、一例であり、これに限られない。例えば、図１３（ａ）に示した仮想地面１５０と地面１０２との角度θ３は４５°以上である。この場合、決定部１４は、動作ルールテーブル１１３に基づき、次のアクションを「動作停止」又は「落下」に決定する。
【００８１】
しかしながら、これに限らず、決定部１４は、仮想地面１５０と地面１０２との角度θ３が４５°以上である場合、キャラクタ１００を表示部品１０７の壁面に沿って走らせる壁走りのアクションに決定してもよい。
【００８２】
例えば、動作ルールテーブル１１３に、仮想地面の角度θ３が４５°以上の場合、壁走りのアクションを予め設定しておくことにより、決定部１４は、仮想地面の角度θ３が４５°以上の場合のキャラクタ１００の次のアクションを壁走りに決定することができる。また、キャラクタ１００の次のアクションは壁走りに限られず、表示部品１０７を登ったり、乗り越えたり、転がったりするアクションであってもよい。
【符号の説明】
【００８３】
１０：情報処理装置
１１：記憶部
１２：入力部
１３：特定部
１４：決定部
１５：動作制御部
１６：グラフィック処理部
１７：サウンド処理部
１８：表示部
１９：音出力部
２１：ＣＰＵ
２２：ＲＯＭ
２３：ＲＡＭ
２４：ＨＤＤ
２５：グラフィックカード
２６：外部Ｉ／Ｆ
２６ａ：記録媒体
２７：通信Ｉ／Ｆ
２８：入力Ｉ／Ｆ
２８ａ：メモリーカード
２９：ディスプレイ
３０：スピーカ
１１１：キャラクタテーブル
１１２：表示部品位置テーブル
１１３：動作ルールテーブル
１５０：仮想地面
【図１】
2020127589.tif 000003
【図２】
2020127589.tif 000004
【図３】
2020127589.tif 000005
【図４】
2020127589.tif 000006
【図５】
2020127589.tif 000007
【図６】
2020127589.tif 000008
【図７】
2020127589.tif 000009
【図８】
2020127589.tif 000010
【図９】
2020127589.tif 000011
【図１０】
2020127589.tif 000012
【図１１】
2020127589.tif 000013
【図１２】
2020127589.tif 000014
【図１３】
2020127589.tif 000015