(58)【調査した分野】(Int.Cl.,DB名)
請求項1記載のゲーム・プログラムであって、前記制御部が前記視界中心点を一定位置に保ったまま前記仮想カメラを移動させることは、前記視界中心点から垂直方向に伸びる回転軸を中心に所与の角度だけ、前記敵オブジェクトの位置からの距離を短くするように水平方向に回転させた位置に前記仮想カメラを移動させることを含む、請求項1記載のゲーム・プログラム。
前記制御部は、前記視界中心点が、前記ゲーム画像の中心点となるように位置合わせされることを特徴とする、請求項1から3のいずれか一項記載のゲーム・プログラム。
前記プレイヤ・オブジェクトの位置が、前記視界中心点の位置に関連付けて位置合わせされることを特徴とする、請求項1から4のいずれか一項記載のゲーム・プログラム。
前記特定検知部が前記プレイヤ・オブジェクトの特性に基づいて前記検知領域の大きさを決定することを特徴とする、請求項1から5のいずれか一項記載のゲーム・プログラム。
前記検知領域の形状が水平面上の円であり、前記特定検知部が前記円の半径を前記プレイヤ・オブジェクトの特性に基づいて決定することを特徴とする、請求項6記載のゲーム・プログラム。
【発明を実施するための形態】
【0014】
以下、図面を参照して、本発明の実施形態による仮想空間内に設けた仮想カメラの動作をコンピュータに制御させるゲーム・プログラムおよびこれに関連するゲーム・システムについて説明する。
【0015】
ゲーム・コンテンツの概要
まず
図1を参照して、本発明のゲーム・プログラムが実装される一例のゲーム・コンテンツの概要を示す。ここでは
図1の表示画面11のように、ゲーム・コンテンツ態様としてアクションRPGを想定する。表示画面11の中心に表示されるプレイヤ・オブジェクト1は、端末入力部を通じたユーザ命令にしたがってゲーム内仮想空間を原則水平面上に沿って移動可能である。プレイヤ・オブジェクト1の後方かつ上方には仮想カメラ3が配置され(図示せず)、仮想カメラ3からの視界領域に基づきゲーム画像6が生成され、表示画面11上に表示される。
【0016】
また、表示画面11には、ゲーム画像6としてプレイヤ・オブジェクト1を中心に円形状の敵オブジェクト検知領域7が任意に表示される(後述)。更に、表示画面11上部右側には、プレイヤ・オブジェクト1を中心とした仮想空間内の広域平面情報6aが、ゲーム画像6の一部として表示される。広域平面情報6aは、プレイヤ・オブジェクト1を中心にして、垂直方向からの平面図を、プレイヤ・オブジェクト1の方位および移動可能範囲と共に示しており、仮想カメラ3からの視界領域よりも広範囲な情報をユーザに提示可能である。
【0017】
この他、表示画面11上部左側には、アクションRPGにおけるプレイヤ・オブジェクト1の特性情報6bとして、キャラクタの種別、キャラクタ画像、強さ(ヒットポイント(HP)やセーブポイント(SP))等もゲーム画像6の一部として表示される。なお、
図1に示したプレイヤ・オブジェクト1は、武器として剣を保有していることが示されているが、アクションRPGではこのような保有武器によってもプレイヤ・オブジェクト1の強さが変わるように構成されるため、武器情報等も特性情報に含めるのがよい。
【0018】
図1では、敵オブジェクト2(図示せず。
図9以降で後述)は未だ周辺領域に存在していないため、ゲーム画像6上にも広域平面情報6aとしても表示されない。しかしながら、ユーザ命令によるプレイヤ・オブジェクト1の移動、および/または所与のプログラム命令による敵オブジェクト2の移動に伴い、これらオブジェクト同士が相互に接近した場合には、敵オブジェクト2の存在がまず広域平面情報6aに表示され、次いで、ゲーム画像6内に表示されることになる。なお、この場合は、ユーザ操作によりプレイヤ・オブジェクト1を敵オブジェクト2の位置まで更に移動させることで、ユーザはプレイヤ・オブジェクト1を敵オブジェクト2と対戦させることができる。
【0019】
本発明のゲーム・プログラムのコンテンツは、このようなアクションRPGに限定されない。仮想空間内に複数のオブジェクトを同時に存在させ、仮想カメラ3からの視界に基づいて表示画面上でこれらオブジェクトの全部または一部を特定可能であり、ユーザにより空間内を移動可能なゲームであればよく、アクションRPG以外にも例えばシューティング・ゲーム等にも適用可能である。
【0020】
ゲーム・システムの概要
図2および
図3を参照して、本発明の実施形態におけるゲーム・システム100の基本構成について説明する。なお、
図2および
図3は、ゲーム・システムの主要な構成要素のみを機能的に示したブロック図である。
図2に示すように、ゲーム・システム100は、ユーザ端末10とゲーム・サーバ50を備える。
【0021】
図2を参照すると、ユーザ端末10は、端末表示部11、端末入力部12、端末処理部13、端末通信部14および端末記憶部15等を備え、ネットワークを介してゲーム・サーバ50と相互作用が可能である。
【0022】
端末表示部11は、ゲーム・サーバ50で生成される、端末通信部14で受信したゲーム画面を端末記憶部15に一時的に格納して表示する。端末表示部11は、例えば液晶ディスプレイ(LCD)等によって実現される。端末入力部12は、プレイヤ・オブジェクト1を各種操作(「移動」、「敵オブジェクトとの対戦」)させるため命令を入力するものであり、例えば、タッチパネルや操作ボタン等によって実現される。端末入力部12からの入力命令に基づいて、端末処理部13はユーザ命令を作成して、端末通信部14およびネットワークを通じてゲーム・サーバ50と通信を行い、ゲーム・サーバ50内でプログラムを実行させる。なお、ユーザ端末10はスマートフォンとするのがよく、この点、端末入力部12はタッチパネルとするのが好ましい。
【0023】
ゲーム・サーバ50側では、通信部53を介して、ユーザ端末10からのユーザ命令を受け取ると、処理装置52は、記憶部51に格納された各種プログラム・モジュールを有するゲーム・プログラム510を、処理用データ520を用いて処理装置52に実行させ、ユーザ端末10に戻す。
【0024】
図2に関連して、情報処理装置としての機能の全部または一部は、ユーザ端末10が担うように構成してもよい。この場合には、ユーザ端末10単体で情報処理装置を構成するか、またはユーザ端末10およびゲーム・サーバ50が情報処理装置を構成する。
【0025】
更に、
図2および
図3を参照して、ゲーム・サーバ50の例示の各機能について説明する。
各種プログラム・モジュール510について説明する。プレイヤ・オブジェクト移動操作モジュール511は、ユーザ命令に従って仮想空間内でプレイヤ・オブジェクト1を移動させるプレイヤ・オブジェクト移動操作部61としての機能を実装する。ゲーム画像生成モジュール512は、仮想カメラ3からの視界領域に基づくゲーム画像6を生成するゲーム画像生成部62としての機能を実装する。敵オブジェクト特定モジュール513は、仮想空間内において敵オブジェクトの位置を特定し、特に、敵オブジェクト検知領域7内に敵オブジェクト2が進入したかを検知する敵オブジェクト特定検知部63としての機能を実装する。仮想カメラ制御モジュール514は、仮想カメラ3のカメラワーク動作を制御して視界領域を最適化する仮想カメラ制御部64としての機能を実装する(カメラワーク処理については後述)。
【0026】
処理用データ520について説明する。仮想空間データ521は、主に仮想空間を定義するデータを含む。上記
図1の例では、仮想空間内に水辺領域6A、砂場領域6B、岩壁領域6C、草場領域6Dを3次元空間データとして定義し、更にプレイヤ・オブジェクト1は砂場領域6B部分のみを水平面に沿って移動可能とするよう定義する。プレイヤ・オブジェクト・データ522は、仮想空間内における、プレイヤ・オブジェクト1の位置座標、方位、位置情報に関連付けられる敵オブジェクト検知領域7、敵オブジェクト検知領域7の形状や大きさ、およびプレイヤ特性情報等を含む。敵オブジェクト・データ523は、敵オブジェクトの数、それぞれの位置座標、動作、敵オブジェクト特性情報等を含む。仮想カメラ・データ524は、仮想カメラの座標位置、方位、視野角度、その他仮想カメラ3からの視界領域を定義するための各種データを含む。
【0027】
ゲーム内3次元仮想空間
図4および
図5を参照して、プレイヤ・オブジェクト1および仮想カメラ3を配置した3次元仮想空間について説明する。
【0028】
図4のとおり、XYZ−3次元空間内にプレイヤ・オブジェクト1および仮想カメラ3が配置される。仮想カメラ3は、視界領域8を設定して、プレイヤ・オブジェクト1の後方且つ上方からプレイヤ・オブジェクト1を撮影するように構成される。より具体的には、上記仮想カメラ制御モジュール514により、中心が視界中心点5となるように視界領域8を設定し、視界中心点5が常にゲーム画像6内の中心点となるように位置合わせする。視界中心点は、仮想カメラから延びる中心軸が水平面と交差する地点となる。
【0029】
図4の例では、視界中心点5の上にプレイヤ・オブジェクト1を配置しており、この場合は
図1のように、ゲーム画像6内の中心(破線交差点)にプレイヤ・オブジェクト1が表示される。仮想空間内のプレイヤ・オブジェクト1の移動に伴い、仮想カメラ3の位置と姿勢を制御して、視界中心点を移動させることにより、視野領域8が調整される。
【0030】
また、
図4では、XY平面上に視界中心点5を中心にした円領域として敵オブジェクトの検知領域7が示されている。図示のとおり、仮想カメラ3の視界領域8と敵オブジェクト検知領域7は、仮想空間内で独立して設定されるものであるから、これらが重複しない領域が存在する場合がある。即ち、敵オブジェクト検知領域7内に含まれるものの、視界領域8には含まれないブラインド領域9,9’が1つ以上存在する場合がある。そして、当該ブラインド領域9,9’に敵オブジェクト2が存在することになる場合には、敵オブジェクト2がプレイヤ・オブジェクト1に十分接近しているにも拘わらずゲーム画面6には映り込んでいないことを意味する。
【0031】
同様に
図5は、
図4をZ軸上方向から見たXY平面図である。視界中心点5に向いた仮想カメラが有する固定の視野角θ
fは、基本的には表示画面11の縦横比に基づいて決定される。上述したように、ユーザがスマートフォン・ゲームとしてタッチ画面を縦方向に固定して使用する場合には、視野角θ
fが非常に狭小なものとなるため、横方向の領域表示が十分に確保できないという課題がある。即ち、ユーザ端末10としてスマートフォンを適用した場合、画面横方向において上記ブラインド領域9,9’の面積が非常に大きくなる。このことは、ゲームの進行途中で、敵オブジェクト2が好ましくない形で横方向から突然現れるという状況を発生させ、ユーザに不快感を与える。したがって、上記課題を解決するためにも仮想カメラ3の表示領域の最適化が必要となる。
【0032】
なお、
図4および
図5では、敵オブジェクト検知領域7を、一例としてXY平面上の円領域で示したが、これに限定されず、任意の形状および大きさとすることができる。特に、当該検知領域7は、プレイヤ・オブジェクト1の強さや保有している武器の種類のような特性情報に基づいて決定するのがよい。例えば、上記のように敵オブジェクト検知領域7を円領域とした場合、当該円の半径を、プレイヤ・オブジェクト1が保有する武器の強さに基づいて決定すると対戦型ゲームとしての面白味が増す。強い武器を保有していればいるほど、プレイヤ・オブジェクト1をより多くの敵オブジェクト2と対戦させたいというユーザ・ニーズを満たすことができるためである。
【0033】
仮想カメラのカメラワーク動作制御処理
そこで、本発明のゲーム・プログラムおよび関連するゲーム・システムを用いた仮想カメラ3のカメラワークの動作制御処理について詳述する。
【0034】
図6は、仮想カメラ3のカメラワーク制御の処理概要を示すフローチャートである。まず、ステップS10では、プレイヤ・オブジェクト移動操作モジュール511により、端末入力部12からのユーザ命令に基づいて仮想空間に配置したプレイヤ・オブジェクト1を移動させる。そして、ステップS20では、仮想カメラ制御モジュール514により、プレイヤ・オブジェクト1の移動に従い、プレイヤ・オブジェクト1の位置を視界領域8内に含むように視界中心点5を移動させて、仮想カメラ3にプレイヤ・オブジェクト1を自動追尾させる。
【0035】
ここで、自動追尾の一態様について
図7を参照して説明する。プレイヤ・オブジェクト1が仮想空間内を
図7の左下から右上に移動経路4に沿ってXY平面上を水平移動する場合の仮想カメラ3の自動追尾の一例は次のように実施される。
【0036】
先に説明したとおり、視界中心点5は、仮想カメラから延びる中心軸が水平面と交差する地点であり、常にゲーム画像6内の中心点となるように位置合わせされる。プレイヤ・オブジェクト1の移動開始時には、仮想カメラ3はプレイヤ・オブジェクト1を視界中心点5上に配置する。つまり、ゲーム画面において中心となるように捉える。次いで、プレイヤ・オブジェクト1が移動経路4に沿って移動している場合、仮想カメラ3も一定のZ方向の高さを保ちつつ移動経路4に沿って移動して(
図7の点線矢印)、視界中心点5を移動させる。この際、視界中心点5’は、プレイヤ・オブジェクト1の位置に対し、移動経路4に沿って所定の距離だけ後方に下げるようにするとよい。即ち、移動経路4に沿って視界中心点5’の前方にプレイヤ・オブジェクト1が配置されることになる。最後に、プレイヤ・オブジェクト1が移動を終了すると、移動開始時と同様に、視界中心点5’’上に再度プレイヤ・オブジェクト1を配置する。
【0037】
このように、プレイヤ・オブジェクト1は、静止中は視界中心点5,5’’上にあり、移動中は視界中心点5’と一定の距離を空けるように構成され、即ち、視界中心点の位置に関連付けて位置合わせされることが理解される。なお、簡単のため、以降ではプレイヤ・オブジェクト1が視界中心点5上に配置されるものとして説明を進める。
【0038】
図6に戻り、引き続いて、敵オブジェクト特定モジュール513によって、ステップS30において、近辺にいる敵オブジェクト2の位置を特定して、視界中心点5に関連付けられる敵オブジェクト検知領域7内に敵オブジェクト2が進入したかを検知し、その場合に、更にステップS40において、その位置が仮想カメラ3からの視界領域8内でない(即ち視界領域8外のブラインド領域9(9’)内である)かについて判断する。
【0039】
敵オブジェクト2が上記ブラインド領域9に位置すると判断される場合には、次いでステップS50に進み、仮想カメラ制御モジュール514により、視界領域8における視界中心点5を一定位置に保ちつつ、視界中心点5から仮想カメラ3までの距離を長くするように(即ち、仮想カメラを視界中心点から引き離すように)、仮想カメラ3の位置および姿勢を調整して、視界領域8を最適化する(後述)。そして、ステップS60でゲーム画像生成モジュール512により、仮想カメラ3からの視界領域8に基づくゲーム画像を生成して、端末表示部11に表示できるようにする。
【0040】
上記ステップS50の視界領域8の最適化処理について、以降、
図8から
図13を参照してより詳細に説明する。
図8は、カメラ制御モジュール514によって実施される上記ステップS50の最適化処理をより詳細化したフローチャートである。
図9(1)のように敵オブジェクト2が敵オブジェクト検知領域7にも視界領域8にも位置していない状態に対し、
図9(2)は、敵オブジェクト検知領域7内ではあるが視界領域8外である(即ちブラインド領域9に位置する)状態である。
図9(2)のように敵オブジェクト2がブラインド領域に進入した場合、当該最適化処理によるカメラワーク制御が実施される。
【0041】
最初のステップ51に先立ち、最適化処理を開始する時点での仮想カメラ・データ524(特に仮想カメラ初期位置L1(x
1,y
1,z
1))は記憶部51に記憶しておくのがよい。何故ならば、最適化処理が完了し、次いでユーザが敵オブジェクト2に対しプレイヤ・オブジェクト1に所定のアクション(例えば「対戦」)を実施させた後には、当該記憶した仮想カメラ・データ524を用いて、元の位置に仮想カメラ3を配置し直すのがゲームの進行上好ましいからである。
【0042】
ステップS51において、中心点5に対して仮想カメラ3を任意の方向に所定の距離だけ遠ざけて、その位置を決定する。仮想カメラ3を遠ざけるとは、中心点5に対して仮想カメラ3の距離をd
1からd
2に長くする(d
1<d
2)ものであればいずれの態様でもよい。本発明者の実験によれば、
図10のように、仮想空間において仮想カメラ3を所与の距離hだけ垂直(Z)方向の高い位置に引き上げるように制御するのが、ユーザに与える臨場感を高めることができて好ましい。この場合の仮想カメラ位置は、L2(x
1,y
1,z
2)となる(z
2=z
1+h)。なお、これ以外にも、例えば、仮想カメラ3をプレイヤ・オブジェクト1に対して反対側に引いて遠ざけるようにしてもよい。
【0043】
仮想カメラ3を任意の方向に遠ざけた位置L2を決定した場合、次いでステップS53に進み、仮想カメラ位置の更なる回転移動処理を行う。具体的には、
図11の立体図に示すように、仮想カメラ位置を、更に、視界中心点から垂直方向に伸びる回転軸を中心にして所与の角度θ
rだけ、敵オブジェクトの位置からの距離を短くするように(即ち、仮想カメラ位置を敵オブジェクト2に近づけるように)、水平方向に回転させた位置を決定する。即ち、
図11において、仮想カメラ位置と敵オブジェクト2の位置との間の距離がd
3からd
4に短くなる(d
3>d
4)方向に、水平面PL3上において仮想カメラ位置を回転移動させる。回転移動後の仮想カメラ位置は、L3(x
2,y
2,z
2)となる。(なお、
図10から
図12では、簡単のためプレイヤ・オブジェクト1は図示していない。)
図8に戻り、ステップS53で回転移動後の仮想カメラ位置L3(x
2,y
2,z
2)を決定したら、仮想カメラ位置L1からL3まで仮想カメラを実際に移動させる移動経路を決定する。ステップS51およびS52で処理した順に、仮想カメラの引き上げおよび回転を段階的に実施して、仮想カメラ3の移動経路をL1→L2→L3と位置L2を経由するように設定してもよいが、カメラワークにおける臨場感を考慮した場合、
図12に示すように、位置L2を経由せずにL1からL3への移動経路を適宜設定するのがよい。当該L1からL3への移動経路は、仮想空間上、直線でも曲線でもいずれの態様で設定することができる。
【0044】
本発明者の実験により、水平面方向の仮想カメラ回転角度は、10度以下とするのが好ましいことが確認されている。即ち、仮に、角度制限を設けずに、プレイヤ・オブジェクト1が敵オブジェクト2の周りをぐるぐる回るような動きを許す場合には、これに伴い視界領域もぐるぐる回転することになる。これは、ユーザが遊園地のコーヒーカップに乗っているのに近い状態になるため、ユーザに画面酔い(映像酔い)を起こしやすくなり、適切とはいえない。また、仮に角度制限を30度程度とした場合には、ユーザによっては「より臨場感が得られる」と評価されるものの、やはり画面酔いしやすいユーザにはこの角度も不適切であることが判明した。他方、角度制限を10度以下であれば、ユーザに画面酔いを生じさせることはほとんどなかったため、回転角度を10度に設定するのがよい。
【0045】
最後に、
図8に示した一連の最適化処理を実施した際の実際のゲーム画像6について、その一例を
図13に示す。
図13(1)では、広域平面情報6aには複数の敵オブジェクト2の存在が示唆されており、実際に敵オブジェクト検知領域7にも敵オブジェクト2が位置している。しかしながら、敵オブジェクト2はブラインド領域9内にいるため、ユーザはその存在を視界領域8からは確認できない(
図9(2)も参照)。
【0046】
次いで、
図13(2),(3)では、
図8の最適化処理の結果として、仮想カメラ位置の引き上げ(ステップS51)および水平回転(ステップS53)に従って、敵オブジェクト2が視界領域8に含まれ、ゲーム画面6上でもユーザが捉えることが可能な状態となる。特に
図13(2)と(3)を比較すると、仮想カメラ位置の水平回転(ステップS53)により、敵オブジェクト2が画面中心の破線aに近づいた状態となる。このことは、点線bおよび実線cがずれていることからも理解できる。
【0047】
このように、ブラインド領域9に位置する敵オブジェクト2を視界領域に含めるように仮想カメラ3をカメラワーク制御することにより、上述したように、スマートフォン・ゲームとしてタッチ画面を縦方向に固定する場合に横方向の表示領域が十分に確保できず、ブラインド領域が必要以上に大きなものとなるため、ブラインド領域にいる敵オブジェクトからの不意打ちを許してしまうという課題を解決することができる。更に、仮想カメラ位置を水平回転させることにより、より高い臨場感をユーザに与え、敵オブジェクト2に対してアクションを取りやすいというユーザビリティの向上を達成できるものとなる。
【0048】
なお、本明細書全般を通じて、特に、スマートフォン・ゲームとしてタッチ画面を縦方向に固定する(縦持ちの)場合に、横方向の領域表示が課題となる点について説明してきたが、必ずしも縦持ちとする必要はない。横方向に固定する(横持ちの)場合であっても、上下方向の領域表示が同様に課題となるから、上下方向からの敵オブジェクトの不意打ちを防止することができるという、上記と同様の作用効果を奏する点に留意すべきである。
【0049】
以上、本発明の実施形態による仮想空間内に設けた仮想カメラの動作をコンピュータに制御させるゲーム・プログラムおよび関連するゲーム・システムについて説明した。上述した実施形態は、本発明の理解を容易にするための例示に過ぎず、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその均等物が含まれることは言うまでもない。