(57)【要約】【課題】仮想空間にてキャラクタを適切に表示することを目的とする。【解決手段】仮想空間に表示されたキャラクタを撮影する仮想カメラと、キャラクタと背景とを表示する表示部と、前記仮想カメラと前記キャラクタとの間に設けられた第１の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出する検出部と、検出した前記接触位置情報に基づき前記仮想カメラの動作の障害となる前記背景のオブジェクトを回避するように前記仮想カメラの動作を制御する動作制御部と、を有する、情報処理装置が提供される。【選択図】図６
2020042857.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間に表示されたキャラクタを撮影する仮想カメラと、
キャラクタと背景とを表示する表示部と、
前記仮想カメラと前記キャラクタとの間に設けられた第１の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出する検出部と、
検出した前記接触位置情報に基づき前記背景のオブジェクトを回避するように前記仮想カメラの動作を制御する動作制御部と、を有し、
前記検出部は、前記仮想カメラを包含する第２の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出し、
前記検出部は、前記接触したオブジェクトから前記第１の仮想体又は前記第２の仮想体に加えられる圧力を示す圧力情報を検出し、
前記動作制御部は、前記接触位置情報及び前記圧力情報に基づき前記仮想カメラを前記接触したオブジェクトから所定距離離して動作を制御する、
情報処理装置。
【請求項２】
仮想空間に表示されたキャラクタを撮影する仮想カメラと、
キャラクタと背景とを表示する表示部と、
前記仮想カメラと前記キャラクタとの間に設けられた第１の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出する検出部と、
検出した前記接触位置情報に基づき前記背景のオブジェクトを回避するように前記仮想カメラの動作を制御する動作制御部と、を有し、
前記検出部は、前記仮想カメラを包含する第２の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出し、
前記検出部は、前記接触したオブジェクトから前記第１の仮想体又は前記第２の仮想体までの距離を示す距離情報を検出し、
前記動作制御部は、前記接触位置情報及び前記距離情報に基づき前記仮想カメラを前記接触したオブジェクトから所定距離離して動作を制御する、
情報処理装置。
【請求項３】
前記検出部は、前記仮想カメラの前方方向、後方方向又は側方方向に設けられた第４の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出する、
請求項１又は２のいずれか一項に記載の情報処理装置。
【請求項４】
前記検出部は、表示した前記背景によって前記第１の仮想体、前記第２の仮想体を包含する記第３の仮想体及び第４の仮想体の大きさを制御し、表示した前記背景のオブジェクトと接触する接触位置情報を検出する、
請求項３に記載の情報処理装置。
【請求項５】
前記検出部は、前記キャラクタのアクションによって前記第１の仮想体、前記第２の仮想体を包含する前記第３の仮想体及び第４の仮想体の大きさを制御し、表示した前記背景のオブジェクトと接触する接触位置情報を検出する、
請求項３又は４に記載の情報処理装置。
【請求項６】
仮想カメラにより仮想空間に表示されたキャラクタを撮影し、
キャラクタと背景とを表示し、
前記仮想カメラと前記キャラクタとの間に設けられた第１の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出し、
検出した前記接触位置情報に基づき前記背景のオブジェクトを回避するように前記仮想カメラの動作を制御し、
前記仮想カメラを包含する第２の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出し、
前記接触したオブジェクトから前記第１の仮想体又は前記第２の仮想体に加えられる圧力を示す圧力情報を検出し、
前記接触位置情報及び前記圧力情報に基づき前記仮想カメラを前記接触したオブジェクトから所定距離離して動作を制御する、
処理をコンピュータが実行する動作制御方法。
【請求項７】
仮想カメラにより仮想空間に表示されたキャラクタを撮影し、
キャラクタと背景とを表示し、
前記仮想カメラと前記キャラクタとの間に設けられた第１の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出し、
検出した前記接触位置情報に基づき前記背景のオブジェクトを回避するように前記仮想カメラの動作を制御し、
前記仮想カメラを包含する第２の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出し、
前記接触したオブジェクトから前記第１の仮想体又は前記第２の仮想体までの距離を示す距離情報を検出し、
前記接触位置情報及び前記距離情報に基づき前記仮想カメラを前記接触したオブジェクトから所定距離離して動作を制御する、
処理をコンピュータが実行する動作制御方法。
【請求項８】
仮想カメラにより仮想空間に表示されたキャラクタを撮影し、
キャラクタと背景とを表示し、
前記仮想カメラと前記キャラクタとの間に設けられた第１の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出し、
検出した前記接触位置情報に基づき前記背景のオブジェクトを回避するように前記仮想カメラの動作を制御し、
前記仮想カメラを包含する第２の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出し、
前記接触したオブジェクトから前記第１の仮想体又は前記第２の仮想体に加えられる圧力を示す圧力情報を検出し、
前記接触位置情報及び前記圧力情報に基づき前記仮想カメラを前記接触したオブジェクトから所定距離離して動作を制御する、
処理をコンピュータに実行させる動作制御プログラム。
【請求項９】
仮想カメラにより仮想空間に表示されたキャラクタを撮影し、
キャラクタと背景とを表示し、
前記仮想カメラと前記キャラクタとの間に設けられた第１の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出し、
検出した前記接触位置情報に基づき前記背景のオブジェクトを回避するように前記仮想カメラの動作を制御し、
前記仮想カメラを包含する第２の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出し、
前記接触したオブジェクトから前記第１の仮想体又は前記第２の仮想体までの距離を示す距離情報を検出し、
前記接触位置情報及び前記距離情報に基づき前記仮想カメラを前記接触したオブジェクトから所定距離離して動作を制御する、
処理をコンピュータに実行させる動作制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、動作制御方法及び動作制御プログラムに関する。
【背景技術】
【０００２】
仮想空間にプレイヤーキャラクタ又はノンプレイヤーキャラクタ（以下、総称して「キャラクタ」ともいう。）と背景とを表示し、遊技者の操作に応じてキャラクタに所定の動作を行わせる技術が知られている。（例えば、特許文献１参照）。
【０００３】
キャラクタを操作する遊技者が回転や並進等の入力操作を行うと、該入力操作に応じてキャラクタの位置、方向等がどのように変化するかを求める演算処理が行われる。次に、キャラクタの位置、方向等の変化に伴い、背景の建物等のオブジェクトが画面上でどのように見えるかを求める演算処理が行われる。この演算処理には、予め記録部に記憶された各オブジェクトの位置情報が使用される。
【０００４】
上記二つの演算処理は、遊技者による操作に追従してリアルタイムで行われる。遊技者の操作に対するキャラクタの動作は、キャラクタの背後からキャラクタを捉える仮想カメラで撮影され、撮影結果が表示される。これにより、遊技者による操作に応じてキャラクタを画面上に表示することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２７６４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、キャラクタの動作が高速な場合やキャラクタの動作が急激に変化する場合、キャラクタを後方から追従する仮想カメラが、背景のオブジェクトに衝突する場合がある。その場合、仮想カメラがキャラクタに追従できず、キャラクタを適切に表示することが困難になる。
【０００７】
そこで、一側面では、本発明は、仮想空間にてキャラクタを適切に表示することを目的とする。
【課題を解決するための手段】
【０００８】
一つの案では、仮想空間に表示されたキャラクタを撮影する仮想カメラと、キャラクタと背景とを表示する表示部と、前記仮想カメラと前記キャラクタとの間に設けられた第１の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出する検出部と、検出した前記接触位置情報に基づき前記背景のオブジェクトを回避するように前記仮想カメラの動作を制御する動作制御部と、を有し、前記検出部は、前記仮想カメラを包含する第２の仮想体が、表示した前記背景のオブジェクトと接触する接触位置情報を検出し、前記検出部は、前記接触したオブジェクトから前記第１の仮想体又は前記第２の仮想体に加えられる圧力を示す圧力情報を検出し、前記動作制御部は、前記接触位置情報及び前記圧力情報に基づき前記仮想カメラを前記接触したオブジェクトから所定距離離して動作を制御する、情報処理装置が提供される。
【発明の効果】
【０００９】
一側面によれば、仮想空間にてキャラクタを適切に表示することができる。
【図面の簡単な説明】
【００１０】
【図１】従来のキャラクタの動作と仮想カメラの動作の一例を示す図。
【図２】一実施形態にかかる情報処理装置の機能構成の一例を示す図。
【図３】一実施形態にかかる接触位置テーブルの構成の一例を示す図。
【図４】一実施形態にかかる情報処理装置のハードウェア構成の一例を示す図。
【図５】一実施形態にかかる仮想カメラの障害回避動作の一例を示す図。
【図６】一実施形態にかかる仮想カメラ動作制御処理の一例を示すフローチャート。
【図７】一実施形態にかかる仮想カメラの障害回避動作制御処理の一例を示すフローチャート。
【図８】一実施形態にかかる仮想カメラの障害回避動作の一例を示す図。
【図９】一実施形態にかかる仮想カメラの障害回避動作の一例を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１２】
図１に示すように、仮想空間におけるプレイヤーキャラクタＰＣの動作は、例えば、プレイヤーキャラクタＰＣの背後等からプレイヤーキャラクタＰＣを捉える仮想カメラＶで撮影され、その撮影結果がディスプレイに表示される。
【００１３】
仮想カメラＶは、仮想体Ｃで包含されている。仮想体Ｃは、実際には画面上には表示されない。なお、後述する仮想体Ｃ１〜Ｃ８は、総称して仮想体Ｃとも称呼される。例えば、仮想体Ｃが画面に表示されているオブジェクトＯｂに接触すると、仮想体Ｃがクッションとなって内部の仮想カメラＶは外界の障害物（オブジェクト）から保護される。これにより、仮想カメラＶは、プレイヤーキャラクタＰＣに追従してプレイヤーキャラクタＰＣの動作を撮影し、スムーズに表示することができる。
【００１４】
ところが、プレイヤーキャラクタＰＣが高速に移動している場合やその動作が急激に変化する場合、仮想カメラＶがプレイヤーキャラクタＰＣに追従する際に追従しきれずにオブジェクトＯｂに衝突する場合がある。図１の下側は、プレイヤーキャラクタＰＣが急激に曲がったため、仮想体Ｃが潰され、仮想カメラＶを保護しきれずに仮想カメラＶがオブジェクトＯｂに衝突した一例を示す。この結果、仮想カメラＶはプレイヤーキャラクタＰＣを適切に表示することができない。そこで、本発明の一実施形態に係る情報処理装置１０では、仮想空間にてプレイヤーキャラクタＰＣを適切に表示可能な仮想カメラの動作制御を提供する。
【００１５】
［情報装置の機能構成］
まず、本発明の一実施形態に係る情報処理装置１０の機能構成の一例について、図２を参照しながら説明する。本実施形態に係る情報処理装置１０は、遊技者がプレイヤーキャラクタＰＣを操作することで所定のゲームを実行する。また、情報処理装置１０は、ゲーム中、仮想カメラの動作制御を行う。情報処理装置１０は、パーソナルコンピュータ、タブレット型機器、ゲーム機器、スマートフォン等のいずれの電子機器であってもよい。
【００１６】
情報処理装置１０は、入力部１１、撮影部１２、検出部１３、記録部１４、動作制御部１５、グラフィック処理部１６、サウンド処理部１７、表示部１８及び音出力部１９を有する。
【００１７】
入力部１１は、コントローラ等の入力装置からの入力情報を受け付ける。撮影部１２は、プレイヤーキャラクタＰＣを撮影する仮想カメラＶの機能を有する。検出部１３は、表示部１８に表示した背景のステージ上の建物等のオブジェクトと仮想空間に設けられた仮想体Ｃとが接触する接触位置情報を検出する。検出部１３は、仮想体をバウンド、回転又はスライド等させることでオブジェクトと接触する接触位置情報を検出してもよい。
【００１８】
接触位置情報には、オブジェクトと仮想体Ｃとの接触位置が含まれる。接触位置情報には、オブジェクトと仮想体Ｃとの接触深度及び接触回避方向が含まれてもよい。接触深度は、オブジェクトと仮想体Ｃとが接触したときに仮想体Ｃがオブジェクトから与えられる押し込み量を示す。接触回避方向は、オブジェクトと仮想体Ｃとの接触状態に応じて、仮想体Ｃがオブジェクトとの接触を回避するための方向を示す。
【００１９】
記録部１４は、図３に一例を示す接触位置テーブル３１に、仮想体番号３０１、接触位置情報３０２、圧力情報３０３及び距離情報３０４を記録する。検出部１３は、接触位置情報に含まれ得る接触位置、接触深度及び接触回避方向に基づき、仮想体Ｃに加えられる圧力を算出し、記録部１４は、算出された圧力を圧力情報３０３に記録する。この圧力情報３０３に基づき、後述される仮想カメラの障害回避が必要か否かが判断される。
【００２０】
記録部１４は、バウンド、回転又はスライドしながら移動する仮想体ＣとオブジェクトＯｂとが接触した座標を接触位置情報３０２に記録する。記録部１４は、接触時にオブジェクトＯｂと仮想体Ｃとの距離を距離情報３０４に記録する。具体的には、図５に示す仮想カメラＶを包含していない仮想体Ｃ１、Ｃ４〜Ｃ８の場合、記録部１４は、接触時にオブジェクトＯｂと仮想体Ｃ１、Ｃ４〜Ｃ８のそれぞれとの距離を距離情報３０４に記録する。他方、図５に示す仮想カメラＶを包含している仮想体Ｃ２、Ｃ３の場合、記録部１４は、接触時にオブジェクトＯｂと仮想体Ｃ２，Ｃ３のぞれぞれの接触面から仮想カメラＶのある点までの距離を距離情報３０４に記録する。
【００２１】
記録部１４は、各種データ及び各種プログラムを記録する。各種プログラムには、仮想カメラ動作制御処理プログラム３２及び仮想カメラの障害回避動作制御処理プログラム３３が含まれる。これらのプログラムは、情報処理装置１０にて遊技者が所定のゲームを行う間に実行される。
【００２２】
図２に戻り、動作制御部１５は、仮想空間にてキャラクタの動作を制御する。なお、本実施形態では、プレイヤーキャラクタＰＣの動作を主に制御するが、動作制御部１５は、ノンプレイヤーキャラクタＮＰＣの動作や仮想空間にて動作可能なすべてのオブジェクトの動作を制御する。本実施形態では、例えば風になびく木等の動作可能なすべてのオブジェクト、ノンプレイヤーキャラクタＮＰＣ及びプレイヤーキャラクタＰＣを総称して「キャラクタ」という。
【００２３】
動作制御部１５は、接触位置情報３０２に基づき背景のオブジェクトＯｂを回避するように仮想カメラＶの動作を制御する。また、動作制御部１５は、接触位置情報３０２のみならず圧力情報３０３に基づき、接触時に仮想カメラＶがオブジェクトＯｂから受けた圧力を考慮して仮想カメラＶがオブジェクトＯｂに衝突することを回避するように仮想カメラＶの動作を制御してもよい。また、例えば、動作制御部１５は、接触位置情報３０２のみならず距離情報３０４に基づき、接触時の仮想カメラＶとオブジェクトＯｂとの距離を考慮して仮想カメラＶがオブジェクトＯｂに衝突することを回避するように仮想カメラＶの動作を制御してもよい。
【００２４】
グラフィック処理部１６は、表示部１８に接続されている。動作制御部１５から描画命令が出力されると、グラフィック処理部１６は、表示部１８に画像を表示するビデオ信号を出力する。これにより、表示部１８は、プレイヤーキャラクタＰＣと背景のステージとを仮想空間に表示する。グラフィック処理部１６から出力されるビデオ信号に含まれる画像の１フレーム時間は、例えば３０分の１秒である。グラフィック処理部１６は、フレーム単位（すなわち、３０分の１秒単位）で１枚の画像の描画を実行する。
【００２５】
サウンド処理部１７は、音出力部１９に接続されている。グラフィック処理部１６からサウンド出力の指示命令が出力されると、音出力部１９は、スピーカー２０にサウンド信号を出力する。これにより、仮想空間にてプレイヤーキャラクタＰＣの状況に応じたサウンドが出力される。
【００２６】
［情報処理装置のハードウェア構成］
次に、本発明の一実施形態に係る情報処理装置１０のハードウェア構成の一例について、図４を参照しながら説明する。本実施形態に係る情報処理装置１０は、ＣＰＵ（Central Processing Unit）２１、ＲＯＭ（Read Only Memory）２２、ＲＡＭ（Random Access Memory）２３及びＨＤＤ（Hard Disk Drive）２４を有している。また、本実施形態に係る情報処理装置１０は、グラフィックカード２５、外部Ｉ／Ｆ（インターフェース）２６、通信Ｉ／Ｆ２７、入力Ｉ／Ｆ２８、ディスプレイ２９及びスピーカー２０を有している。各部は、それぞれがバスで相互に接続されている。
【００２７】
ＲＯＭ２２は、電源を切っても内部データを保持することができる不揮発性の半導体メモリである。ＲＯＭ２２には、プログラム及びデータが格納されている。ＲＡＭ２３は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００２８】
ＨＤＤ２４は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムには、情報処理装置１０の全体を制御する基本ソフトウェア及びアプリケーションソフトウェアがある。ＨＤＤ２４には、各種のデータベースが格納されてもよい。本実施形態では、ＨＤＤ２４には、仮想カメラ動作制御処理プログラム３２及び仮想カメラの障害回避動作制御処理プログラム３３等の各種プログラムが格納される。また、ＨＤＤ２４には、接触位置テーブル３１が格納される。
【００２９】
ＣＰＵ２１は、ＲＯＭ２２やＨＤＤ２４からプログラムやデータをＲＡＭ２３上に読み出し、上記各種処理を実行することで、情報処理装置１０の全体の制御や情報処理装置１０に搭載された機能を実現する。具体的には、図１に示す検出部１３及び動作制御部１５の機能は、情報処理装置１０にインストールされた仮想カメラ動作制御処理プログラム３２及び仮想カメラの障害回避動作制御処理プログラム３３がＣＰＵ２１に実行させる処理により実現される。
【００３０】
外部Ｉ／Ｆ２６は、情報処理装置１０を外部装置に接続するインターフェースである。外部装置には、記録媒体２６ａなどがある。これにより、情報処理装置１０は、外部Ｉ／Ｆ２６を介して記録媒体２６ａの読み取り及び書き込みを行うことができる。記録媒体２６ａの一例としては、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（SD Memory card）又はＵＳＢメモリ（Universal Serial Bus memory）等が挙げられる。
【００３１】
例えば、情報処理装置１０には、仮想カメラ動作制御処理プログラム３２及び仮想カメラの障害回避動作制御処理プログラム３３等のゲームプログラムが格納された記録媒体２６ａを装着することが可能である。これらのプログラムは、外部Ｉ／Ｆ２６により読み出されて、ＲＡＭ２３に読み込まれる。
【００３２】
ＣＰＵ２１は、ＲＡＭ２３に読み込まれた上記の各種プログラムを処理し、グラフィックカード２５にゲームの進行に応じた画像の出力を指示する。グラフィックカード２５は、指示に従い画面に表示するゲーム場面に応じた画像処理を行い、ディスプレイ２９にプレイヤーキャラクタＰＣの画像及びステージの画像を描画させる。これにより、グラフィック処理部１６及び表示部１８の機能が実行される。
【００３３】
グラフィックカード２５から出力される画像の一フレーム時間は、例えば１／３０〜１／６０秒である。グラフィックカード２５は、フレーム単位で１枚の画像の描画を実行する。すなわち、一秒間に３０回〜６０回のフレームの画像が描画される。
【００３４】
また、ＣＰＵ２１は、ＲＡＭ２３に読み込まれた上記の各種プログラムを処理し、ゲームの進行に応じてスピーカー２０から所定の音を出力させる。これにより、サウンド処理部１７及び音出力部１９の機能が実行される。
【００３５】
ディスプレイ２９はタッチパネル式としても良い。これにより、コントローラ１を用いずに入力操作を行うことができる。この場合、タッチパネルにより検出されたタッチ位置の入力情報は、ＲＡＭ２３に格納され、ＣＰＵ２１はＲＡＭ２３に格納された入力情報をもとに各種の演算処理を実行する。
【００３６】
通信Ｉ／Ｆ２７は、情報処理装置１０をネットワークに接続するインターフェースである。また、通信Ｉ／Ｆ２７は、アンテナを有する通信ユニットを介して、他のゲーム機器と無線により通信を行う機能を有していてもよい。
【００３７】
入力Ｉ／Ｆ２８は、コントローラ１に接続するインターフェースである。コントローラ１は、操作ボタン２及び方向キー３を有する。遊技者は、操作ボタン２を操作することでプレイヤーキャラクタＰＣに所定の動作を行わせることができる。また、遊技者は、方向キー３を操作することでプレイヤーキャラクタＰＣを所定の方向に移動させることができる。入力Ｉ／Ｆ２８は、遊技者がコントローラ１を用いて行った入力操作に基づく入力情報をＲＡＭ２３に格納させる。これにより、入力部１１の機能が実行される。
【００３８】
ＣＰＵ２１は、ＲＡＭ２３に格納された入力情報に基づきプレイヤーキャラクタＰＣの動作等の各種の演算処理を実行する。また、入力Ｉ／Ｆ２８は、ＣＰＵ２１からの指示に従いＲＡＭ２３に記憶されているゲームの進行状況を示すデータをメモリカード２８ａに保存させ、メモリカード２８ａに保存されている中断時のゲームのデータを読み出してＲＡＭ２３に転送する処理を行う。仮想空間に表示されたキャラクタを撮影する仮想カメラの機能は、ＣＰＵ２１が仮想カメラ動作制御処理プログラム３２及び仮想カメラの障害回避動作制御処理プログラム３３を実行することによって実現される。
【００３９】
（仮想体）
図５に仮想体Ｃの配置の一例を示すように、検出部１３は、仮想カメラＶとプレイヤーキャラクタＰＣとの間に仮想体Ｃ１を配置してもよい。仮想体Ｃの数は、１個でもよいし、プレイヤーキャラクタＰＣの位置に応じて複数個が設けられてもよい。例えば、仮想カメラＶを包含する仮想体Ｃ２を包含する位置に仮想体Ｃ３が設けられてもよい。この場合、検出部１３は、仮想カメラＶ及び仮想体Ｃ２を包含する仮想体Ｃ３が、オブジェクトＯｂと接触する接触位置を検出する。図５に仮想体Ｃ４〜Ｃ８にて示すように、仮想体Ｃを仮想カメラＶの前方方向、後方方向又は側方方向に一つ又は複数個設けられてもよい。
【００４０】
仮想体Ｃの振動（バウンド数）は、１フレームに１回、つまり、１秒に３０〜６０回程度であってもよいし、これ以外の回数であってもよい。仮想体Ｃを用いてオブジェクトの接触位置を測定するときには、仮想体Ｃに所定の動作を行わせる。所定の動作には、仮想体Ｃをバウンドさせる、仮想体Ｃをすべらせる、及び仮想体Ｃを振動させる、回転させる等の動作が含まれる。
【００４１】
なお、仮想体Ｃ１は、仮想カメラＶと記キャラクタとの間に設けられた第１の仮想体の一例である。仮想体Ｃ２は、仮想カメラＶを包含する第２の仮想体の一例である。仮想体Ｃ３は、仮想カメラＶ及び第２の仮想体を包含する第３の仮想体の一例である。仮想体Ｃ４〜Ｃ８は、仮想カメラＶの前方方向、後方方向又は側方方向に設けられた第４の仮想体の一例である。
【００４２】
［仮想カメラ動作制御処理］
次に、本実施形態に係る仮想カメラ動作制御処理について図６及び図７を参照して説明する。図６は、一実施形態にかかる仮想カメラ動作制御処理の一例を示すフローチャートである。図７は、一実施形態にかかる仮想カメラの障害回避動作制御処理の一例を示すフローチャートである。本実施形態に係る仮想カメラ動作制御処理は、ゲーム進行中にプレイヤーキャラクタＰＣの動作を撮影する。
【００４３】
図６の本処理が開始されると、撮影部１２は、プレイヤーキャラクタＰＣを撮影する（ステップＳ１０）。次に、検出部１３は、その時点でのプレイヤーキャラクタＰＣの位置情報及び移動速度を取得する（ステップＳ１２）。次に、検出部１３は、取得した位置情報及び移動速度に応じて仮想体Ｃを配置する（ステップＳ１４）。
【００４４】
図５に示すように、検出部１３は、プレイヤーキャラクタＰＣと仮想カメラＶとの間仮想体Ｃ１を配置してもよい。検出部１３は、仮想体Ｃ２を包含する位置に仮想体Ｃ３を配置してもよい。検出部１３は、仮想カメラＶの前方方向、後方方向又は側方方向に一つ又は複数個の仮想体Ｃ４〜Ｃ８を設けてもよい。
【００４５】
ここでは、図８に示すように、検出部１３は、プレイヤーキャラクタＰＣと仮想カメラＶとの間に仮想体Ｃ１を配置し、その他の仮想体を配置しない。なお、仮想体Ｃは球状である。ただし、検出部１３は、仮想体Ｃの大きさや形状を適宜変更させることができる。例えば、仮想体Ｃは、球状、カプセル状、棒状、矩形状、円錐状、多角形、楕円、円等の形状であってもよい。本実施形態にかかる情報処理装置１０が提供するゲームが３次元の仮想空間におけるゲームである場合、仮想体Ｃはこれに応じて３次元の仮想物体となる。本実施形態にかかる情報処理装置１０が提供するゲームが２次元の仮想空間におけるゲームである場合、これに応じて、仮想体Ｃは２次元の仮想物体となる。
【００４６】
検出部１３は、表示した背景（ステージ）の設定によって仮想体Ｃの大きさを可変に制御することができる。例えば、ステージが大きい場合には仮想体Ｃを大きくし、ステージが小さい場合には仮想体Ｃを小さくしてもよい。
【００４７】
検出部１３は、キャラクタのアクションによって仮想体Ｃの大きさを可変に制御してもよい。例えば、キャラクタのアクションとしてキャラクタの移動速度が速い程仮想体Ｃを大きくし、移動速度が遅い程仮想体Ｃを小さくしてもよい。
【００４８】
図６に戻り、検出部１３は、所定位置に配置された仮想体ＣがオブジェクトＯｂに衝突したかを判定する（ステップＳ１６）。検出部１３は、仮想体ＣがオブジェクトＯｂに衝突しないと判定した場合、通常通り仮想カメラＶをプレイヤーキャラクタＰＣに追従させる動作を制御し（ステップＳ２４）、本処理を終了する。
【００４９】
他方、ステップＳ１６にて、検出部１３は、仮想体ＣがオブジェクトＯｂに衝突したと判定した場合、記録部１４は、衝突した位置の座標を接触位置テーブル３１の接触位置情報３０２に記録する（ステップＳ１８）。記録部１４は、接触位置情報３０２とともに圧力情報３０３及び距離情報３０４を記録してもよい。
【００５０】
例えば、図８の例では、仮想体Ｃ１がオブジェクトＯｂの角部と接触（衝突）したときの座標（ｘ１、ｙ１）が、仮想体番号３０１「Ｃ１」に対応する接触位置情報３０２に保存される。また、接触の際にオブジェクトＯｂから仮想体Ｃ１に加わる圧力Ｐ１が圧力情報３０３に保存される。また、接触の際のオブジェクトＯｂと仮想カメラＶとの距離Ｄ１が距離情報３０４に保存される。
【００５１】
仮想体Ｃ１は、プレイヤーキャラクタＰＣと仮想カメラＶとの間に位置する。そのため、プレイヤーキャラクタＰＣが進む方向によって仮想カメラＶがオブジェクトＯｂと衝突するか否かは、オブジェクトＯｂと仮想カメラＶとの間に位置する仮想体Ｃ１の接触位置情報によって予測できる。
【００５２】
そこで、図６のステップＳ２０において、検出部１３は、仮想カメラＶの障害物があるかを判定する（ステップＳ２０）。検出部１３は、接触位置テーブル３１の仮想体番号３０１「Ｃ１」に対応する接触位置情報３０２に基づき仮想カメラＶの障害物を検出する。例えば、図３では、仮想体番号３０１「Ｃ１」に対応する接触位置情報３０２に、図８に示す座標（ｘ１、ｙ１）が保存されている。よって、検出部１３は、仮想カメラＶがプレイヤーキャラクタＰＣに追従する際の障害物にオブジェクトＯｂを検出し、障害の位置に座標（ｘ１、ｙ１）を検出する。この結果、検出部１３は、仮想カメラＶの障害物があると判定し、図７の仮想カメラの障害回避動作制御処理を実行し（ステップＳ２２）、本処理を終了する。
【００５３】
なお、ステップＳ２０にて、検出部１３は、仮想カメラＶの障害物がないと判定した場合、通常通り仮想カメラＶをプレイヤーキャラクタＰＣに追従させる動作を制御し（ステップＳ２４）、本処理を終了する。
【００５４】
なお、検出部１３は、１フレームに対して１回のみステップＳ１６の衝突判定を行ってもよいし、１フレームに対して複数回ステップＳ１６の衝突判定を行ってもよい。
【００５５】
［仮想カメラの障害回避動作制御処理］
次に、ステップＳ２２の仮想カメラの障害回避動作制御処理について、図７を参照して説明する。動作制御部１５は、接触位置テーブル３１から仮想体番号３０１が「Ｃ１」の接触位置情報３０２、圧力情報３０３及び距離情報３０４を取得する（ステップＳ３０）。次に、動作制御部１５は、取得した接触位置情報３０２、圧力情報３０３及び距離情報３０４に基づき、障害物を回避するための仮想カメラの動作を制御し（ステップＳ３２）、本処理を終了する。
【００５６】
例えば、動作制御部１５は、接触位置情報３０２に基づき特定される接触位置にて仮想カメラＶがオブジェクトＯｂと接触や衝突を起こさないように仮想カメラＶの動作を制御する。その際、動作制御部１５は、圧力情報３０３に基づき圧力が大きい程仮想カメラＶの軌道を接触位置から離すように仮想カメラＶの動作を制御してもよい。また、距離情報３０４に基づき距離が近い程仮想カメラＶの軌道を接触位置から離すように仮想カメラＶの動作を制御してもよい。
【００５７】
ただし、動作制御部１５は、ステップＳ３０、ステップＳ３２において、圧力情報３０３を考慮せずに接触位置情報３０２と距離情報３０４とを考慮して仮想カメラＶの動作を制御してもよい。距離情報３０４を考慮せずに接触位置情報３０２と圧力情報３０３とを考慮して仮想カメラＶの動作を制御してもよいし、接触位置情報３０２のみ考慮して仮想カメラＶの動作を制御してもよい。
【００５８】
例えば、図８（ａ）では、動作制御部１５は、仮想体Ｃ１がオブジェクトＯｂに接触したときの接触位置情報（ｘ１，ｙ１）、圧力情報Ｐ１及び距離情報Ｄ１に基づき、図８（ｂ）に示す仮想カメラＶの移動経路Ｒを仮想カメラＶに圧力が加えられた方向にずらす。その結果、仮想カメラＶは、オブジェクトＯｂに衝突しない経路Ｒを通ってプレイヤーキャラクタＰＣに追従できる。このように、本実施形態にかかる動作制御方法によれば、仮想カメラＶが進行方向に存在するオブジェクトＯｂに衝突するかを予測（先読み）し、これにより、スムーズなカメラ動作を実現する。この結果、仮想空間にてプレイヤーキャラクタＰＣの動作を適切に表示することができる。
【００５９】
（変形例）
以上、本実施形態にかかる仮想カメラＶの動作制御及び障害物回避動作制御では、背景のオブジェクトＯｂと接触する位置が、仮想カメラＶとプレイヤーキャラクタＰＣとの間に設けられた仮想体Ｃ１を用いて検出された。そして、検出した接触位置情報に基づきオブジェクトＯｂを回避するように仮想カメラＶの動作が制御された。
【００６０】
これに対して、変形例にかかる仮想カメラＶの動作制御及び障害物回避動作制御では、図９（ａ）に示すように、オブジェクトＯｂと接触する位置が、仮想カメラＶ及び仮想体Ｃ２を包含する仮想体Ｃ３を用いて検出される。仮想体Ｃ１によってもオブジェクトＯｂと接触する位置が検出される。そして、検出した接触位置情報等に基づきオブジェクトＯｂを回避するように仮想カメラＶの動作が制御される。なお、ここでは仮想体Ｃ３による接触位置情報の取得と仮想カメラＶの障害物回避動作制御について説明する。
【００６１】
図９（ａ）にてプレイヤーキャラクタＰＣが紙面の上方へ進行すると、仮想カメラＶはこれに追従する。プレイヤーキャラクタＰＣの前方方向の両側にオブジェクトＯｂがあり、狭い通路が形成されている。
【００６２】
図９（ｂ）にてプレイヤーキャラクタＰＣが狭い通路内を進行すると、仮想カメラＶはこれに追従する。このとき、仮想カメラＶの内側にある仮想体Ｃ２は、オブジェクトＯｂに接触しない。これに対して、仮想カメラＶ及び仮想体Ｃ２の外側にある仮想体Ｃ３は、オブジェクトＯｂに接触する。これにより、検出部１３は、接触位置及びオブジェルＯｂから得られる圧力を検出する。動作制御部１５は、検出結果に基づき、オブジェクトＯｂの壁で覆われた通路の幅を予測し、仮想カメラＶをまっすぐに進行させるように制御する。このようにして仮想カメラＶが進行する方向の障害物を予測することで、仮想カメラＶが障害物へ衝突することを回避し、スムーズなカメラ動作を実現することができる。この結果、仮想空間にてプレイヤーキャラクタＰＣを適切に表示することができる。
【００６３】
本実施形態及び変形例にかかる仮想カメラＶの動作制御方法によれば、仮想カメラＶがプレイヤーキャラクタＰＣに追従する際の経路上の障害物を予測するために一つ以上の仮想体Ｃを有する。例えば、仮想カメラＶとプレイヤーキャラクタＰＣとの間に仮想体Ｃ１を配置することで、プレイヤーキャラクタＰＣの進行方向であって仮想カメラＶの前方のオブジェクトＯｂを予測することができる。また、仮想カメラＶの周囲に、仮想カメラＶを囲む仮想体Ｃ２と異なる大型の仮想体Ｃ３を配置することで、仮想カメラＶの周囲の比較的広い範囲のオブジェクトＯｂを予測することができる。これにより、仮想カメラＶが前方又は周囲のオブジェクトＯｂに衝突する前に仮想カメラが移動する経路を変更させることで、スムーズなカメラ動作を実現し、仮想空間にてキャラクタを適切に表示することができる。
【００６４】
なお、図５に示すように、大型の仮想体Ｃ３を配置するとともに又は仮想体Ｃ３を配置する替わりに仮想カメラＶの後方に仮想体Ｃ４を配置してもよい。これにより、仮想カメラＶが後方のオブジェクトＯｂに衝突する前に、仮想体Ｃ４により後方にあるオブジェクトＯｂを予測することができる。これにより、プレイヤーキャラクタＰＣが後ずさりしたときに仮想カメラＶが後方へ移動する際に、後方のオブジェクトＯｂとの接触を回避することができる。
【００６５】
また、仮想体Ｃ４を配置するとともに又は仮想体Ｃ４を配置する替わりに、仮想カメラＶの両側に仮想体Ｃ５及び仮想体Ｃ６を配置してもよい。また、仮想カメラＶの前方方向に仮想体Ｃ７及び仮想体Ｃ８を配置してもよい。これにより、仮想体Ｃ１により、プレイヤーキャラクタＰＣと仮想カメラＶとの間の状態を先読みするとともに、仮想カメラＶの移動方向の前方の状態、両側の状態及び後方の状態を複数の仮想体Ｃ４〜Ｃ８により先読みすることができる。これにより、周囲のオブジェクトＯｂに衝突する前に仮想カメラＶの動作を的確に変更させることができる。
【００６６】
以上、情報処理装置、動作制御方法及び動作制御プログラムを上記実施形態により説明したが、本発明にかかる情報処理装置、動作制御方法及び動作制御プログラムは上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。
【符号の説明】
【００６７】
１０：情報処理装置
１１：入力部
１２：撮影部
１３：検出部
１４：特定部
１５：動作制御部
１６：グラフィック処理部
１７：サウンド処理部
１８：表示部
１９：音出力部
２０：スピーカー
２１：ＣＰＵ
２２：ＲＯＭ
２３：ＲＡＭ
２４：ＨＤＤ
２５：グラフィックカード
２６：外部Ｉ／Ｆ
２６ａ：記録媒体
２７：通信Ｉ／Ｆ
２８：入力Ｉ／Ｆ
２８ａ：メモリカード
２９：ディスプレイ
３０：記録部
３１：接触位置テーブル
Ｃ１〜Ｃ４：仮想体
Ｏｂ１〜Ｏｂ３：オブジェクト
ＰＣ：プレイヤーキャラクタ
【図１】
2020042857.tif 000003
【図２】
2020042857.tif 000004
【図３】
2020042857.tif 000005
【図４】
2020042857.tif 000006
【図５】
2020042857.tif 000007
【図６】
2020042857.tif 000008
【図７】
2020042857.tif 000009
【図８】
2020042857.tif 000010
【図９】
2020042857.tif 000011