以下、本発明の実施形態について説明する。
はじめに、図1を参照して、本発明の一実施形態に係る情報処理装置10について説明する。情報処理装置10は、例えばスマートフォン、PC、又はゲーム用機器等であって、本実施形態に係るゲームのアプリケーションを実行可能である。ゲームのアプリケーションは、例えばインターネットを介して所定のアプリケーション配信サーバから受信されてもよく、或いは情報処理装置10に備えられた記憶装置又は情報処理装置10が読取可能なメモリカード等の記憶媒体に予め記憶されていてもよい。
ここで、本実施形態に係るゲームの概要について説明する。本実施形態に係るゲームは、例えばロールプレイングゲーム又はシミュレーションゲーム等であって、ゲーム内のフィールド上でゲーム媒体を移動させるゲームである。
ゲーム媒体は、ゲームに使用される電子データであり、例えば、カード、アイテム、キャラクタ、アバタ、及びオブジェクト等、任意の媒体を含む。また、ゲーム媒体は、ゲーム内において、ユーザによって取得、保有、使用、管理、交換、合成、強化、売却、破棄、及び/又は贈与等され得る電子データであるが、ゲーム媒体の利用態様は本明細書で明示されるものに限られない。
以下、特に明示した場合を除き、「ユーザが所有するゲーム媒体」とは、ユーザのユーザIDに対応付けられたゲーム媒体を示す。また、「ゲーム媒体をユーザに付与する」とは、ゲーム媒体をユーザIDに対応付けることを示す。また、「ユーザが所有するゲーム媒体を破棄する」とは、ユーザIDとゲーム媒体との対応付けを解消することを示す。また、「ユーザが所有するゲーム媒体を消費する」とは、ユーザIDとゲーム媒体との対応付けの解消に応じて、何らかの効果又は影響をゲーム内で発生させ得ることを示す。また、「ユーザが所有するゲーム媒体を売却する」とは、ユーザIDと当該ゲーム媒体との対応付けを解消し、且つ、ユーザIDに他のゲーム媒体(例えば、仮想通貨又はアイテム等)を対応付けることを示す。また、「ユーザAが所有するゲーム媒体をユーザBに譲渡する」とは、ユーザAのユーザIDとゲーム媒体との対応付けを解消し、且つ、ユーザBのユーザIDに当該ゲーム媒体を対応付けることを示す。
本実施形態に係るゲームは、概略として、第1ゲームパートと、第2ゲームパートと、第3ゲームパートと、を含む。
第1ゲームパートにおいて、ユーザは、ユーザキャラクタを操作して、ゲーム内のフィールドを探索しながら、ゲームを進行させる。具体的には、ユーザ操作に応じてユーザキャラクタがフィールド上を移動する。フィールドには、例えば町及びダンジョン等の多様なエリアが設けられており、例えば町の住人キャラクタとの会話、及びダンジョン内で遭遇する敵キャラクタとの対戦等、エリアに応じた多様なイベントが発生する。イベントが実行されることによって、ゲームのメインストーリーが進行する。また第1ゲームパートにおいて、例えば敵キャラクタとの対戦に勝利すると、例えばアイテム、仮想通貨、又はキャラクタ等のゲーム媒体がユーザに付与され得る。付与されたゲーム媒体は、例えば後述する第3ゲームパートにおいて使用可能である。
後述するように、本実施形態に係るフィールドには、ユーザキャラクタが移動可能な通路が設けられる。具体的には、画面上の一方向(例えば、左右方向)に略平行に延びる複数の通路(横通路)と、画面上の他の方向(例えば、上下方向)に延びて2つの横通路を連結する複数の通路(縦通路)と、が設けられる。また後述するように、本実施形態においてユーザキャラクタは、横通路に沿って、ゲームフィールド上を所定のユーザ操作に応じた移動速度で移動する。一方、ユーザキャラクタは、縦通路に沿って、ゲームフィールド上を所定距離だけ、例えば1つの横通路から他の横通路までの距離だけ移動する。このように本実施形態において、ユーザキャラクタが横通路に沿って移動する場合と縦通路に沿って移動する場合とで、ユーザキャラクタを移動させる処理が異なる。ユーザキャラクタを移動させる処理の詳細については後述する。
第2ゲームパートにおいて、ユーザは、例えばアイテム、仮想通貨、及びキャラクタ等の多様なゲーム媒体を収集する。具体的には、フィールド上に設けられた採掘場及び釣り堀等の特定のエリアにユーザキャラクタを移動させ、又は特定のキャラクタ又はオブジェクト等のゲーム媒体を選択(例えば、画面に対するタッチ操作)すると、ゲーム媒体が取得可能なサブイベントが発生する。サブイベントは、例えばサブストーリーの進行、及びミニゲームの実行等を含むが、サブイベントの内容はこれらに限られない。サブイベントの実行結果に応じて、多様なゲーム媒体がユーザに付与され得る。付与されたゲーム媒体は、例えば後述する第3ゲームパートにおいて使用可能である。
第3ゲームパートにおいて、ユーザは、例えばユーザキャラクタの強化を行う。具体的には、上述したように第1ゲームバータ及び第2ゲームパートにおいてユーザに付与されたゲーム媒体が消費されることによって、ユーザキャラクタの多様なゲームパラメータが変化する。ゲームパラメータは、例えばユーザキャラクタのレベル、HP、攻撃力、防御力、属性、及びスキル等を含むが、これらに限られない。ユーザキャラクタのゲームパラメータの変化に応じて、ユーザキャラクタが強化される。ユーザキャラクタの強化によって、第1ゲームパートにおける敵キャラクタとの対戦でユーザキャラクタが勝利できる蓋然性が高まる。
このように、本実施形態に係るゲームにおいて、ユーザは第1ゲームパート、第2ゲームパート、及び第3ゲームパートを繰り返し行う。
次に、情報処理装置10の各構成要素について説明する。情報処理装置10は、記憶部11と、表示部12と、制御部13と、を備える。
記憶部11は、例えば記憶装置であって、ゲームの処理に必要な種々の情報及びプログラムを記憶する。例えば記憶部11は、ゲームのアプリケーションを記憶する。
また記憶部11は、3次元の仮想空間内に配置された種々のオブジェクトに投影(テクスチャマッピング)するための種々の画像(テクスチャ画像)を記憶する。
例えば記憶部11は、ユーザキャラクタの画像を記憶する。以下、ユーザキャラクタを第1ゲーム媒体といい、第1ゲーム媒体の画像が投影されたオブジェクトを第1オブジェクトともいう。
また記憶部11は、例えば建物、壁、樹木、又はNPC(Non Player Character)等の画像を記憶する。以下、建物、壁、樹木、又はNPC等を第2ゲーム媒体といい、第2ゲーム媒体の画像が投影されたオブジェクトを第2オブジェクトともいう。
また記憶部11は、例えば空又は遠景等の背景の画像(背景画像)を記憶する。背景画像は、後述する背景オブジェクトに投影される。
また記憶部11は、フィールド(例えば、地面)の画像(フィールド画像)を記憶する。フィールド画像は、後述するフィールドオブジェクトに投影される。フィールドの画像が投影されたフィールドオブジェクトが、ゲーム内における仮想のフィールド(地面)として用いられる。
ここでフィールド画像には、例えば図2に示すように、互いに直交するu軸及びv軸を有するテクスチャ座標系が設定されている。本実施形態において、フィールド画像には、第1ゲーム媒体が移動可能な複数の横通路に対応する複数の第1領域14、及び1以上の縦通路に対応する1以上の第2領域15が定められている。後述するように、フィールドオブジェクトに投影された第1領域14及び第2領域15が、それぞれ横通路及び縦通路に定められる。
また記憶部11は、第2オブジェクトと、フィールド画像のテクスチャ座標と、を対応付けた対応情報を記憶する。対応情報は、後述するように、第2ゲーム媒体をフィールドオブジェクト上に配置する処理を実行する制御部13によって用いられる。
表示部12は、例えば液晶ディスプレイ又は有機ELディスプレイ等の表示デバイスであって、種々の画面を表示する。
また表示部12は、例えばタッチパネルで構成され、多様なユーザ操作を検出するインターフェースとして機能する。
例えば表示部12は、ユーザのタップ操作、ロングタップ操作、フリック操作、及びスワイプ操作等を検出可能である。タップ操作は、ユーザが指で表示部12に触れ、その後に指を離す操作である。またロングタップ操作は、ユーザが指で表示部12に触れ、表示部12に触れたまま指を移動させずに保持する操作である。またフリック操作は、ユーザが指で表示部12に触れ、表示部12に触れたまま指を移動させつつ指を離す操作である。またスワイプ操作は、ユーザが指で表示部12に触れ、表示部12に触れたまま指を移動可能に保持する操作である。好適には、表示部12は、ユーザが複数の指を用いて行う上述の操作(例えば、マルチタップ操作等)を検出可能である。
制御部13は、専用のマイクロプロセッサ又は特定のプログラムを読み込むことにより特定の機能を実現するCPUである。制御部13は、情報処理装置10全体の動作を制御する。例えば制御部13は、表示部12に対するユーザ操作に応じてゲームのアプリケーションを実行する。また制御部13は、ゲームに関する多様な処理を実行する。
例えば制御部13は、フィールドオブジェクト及び第1オブジェクト等が表示される画面(フィールド画面)を表示部12に表示させる。また制御部13は、フィールド画面に対する所定のユーザ操作に応じて、仮想空間内において第1オブジェクトを、フィールドオブジェクトに対して相対的に、フィールドオブジェクト上で移動させる。以下、具体的に説明する。
はじめに図3を参照して、フィールドオブジェクト16について説明する。フィールドオブジェクト16は、多数のオブジェクト要素(例えば、多角形の平面メッシュ)で構成される。フィールドオブジェクト16には、互いに直交するXo軸、Yo軸、及びZo軸を有するオブジェクト座標系が設定されている。本実施形態において、フィールドオブジェクト16は、Yo−Zo平面に略平行な任意の面おける断面形状がXo軸方向に延設された形状を有しており、例えば実質的に厚みが無いシート状のオブジェクトである。本明細書において、オブジェクトの断面形状には、実質的に厚みが無いオブジェクトの断面形状、例えば直線若しくは曲線又はこれらの組み合わせに係る形状が含まれる。また、断面形状が延設された形状には、例えば断面形状が延設された後のフィールドオブジェクト16に対して、オブジェクト要素の追加、変形、又は削除をした後のフィールドオブジェクト16の形状が含まれる。例えば、図3に示すフィールドオブジェクト16に対して、仮想の「山」又は「谷」に相当する凹凸形状が形成された後のフィールドオブジェクト16の形状、又は一部のオブジェクト要素を削除した後のフィールドオブジェクト16の形状は、何れも「断面形状が延設された形状」に含まれる。またフィールドオブジェクト16は、第1部位17と、第2部位18と、を有する。
第1部位17は、本実施形態において略平面形状を有しており、Xo−Yo平面上に設けられる。第1部位17の形状は、平面形状に限られず、例えばYo−Zo平面に略平行な任意の面における第1部位17の断面形状が任意の曲率を有する形状であってもよい。かかる場合、第1部位17における例えば−Yo方向の端部がXo−Yo平面上に位置するように、第1部位17が設けられる。
第2部位18は、第1部位17における例えば−Yo方向の端部から延設され、Xo−Yo平面の一面側(例えば、+Zo側)に傾斜した部分(傾斜部)である。本実施形態において、第2部位18は、複数のオブジェクト要素の組み合わせで構成されるが、例えば各オブジェクト要素の大きさを十分小さくすることによって、実質的に曲面として構成されてもよい。或いは、第2部位18を構成する各オブジェクト要素が曲面であってもよい。
ここで制御部13は、フィールドオブジェクト16にフィールド画像を投影する。フィールド画像の投影は、例えばテクスチャマッピングによって行われる。具体的には、制御部13は、フィールドオブジェクト16上の多数の頂点(オブジェクト座標)に、フィールド画像上の点(テクスチャ座標)をそれぞれマッピングして、フィールド画像をフィールドオブジェクト16に投影する。ここで頂点とは、例えばオブジェクトを構成するオブジェクト要素であるメッシュにおける頂点である。
上述したように、フィールド画像が投影されたフィールドオブジェクト16は、ゲーム内における仮想のフィールド(地面)として用いられる。またフィールドオブジェクト16に投影されたフィールド画像上の第1領域14及び第2領域15が、それぞれ第1ゲーム媒体が移動可能な横通路19及び縦通路20に定められる。本実施形態において、例えば図3に示すように、複数の横通路19が、オブジェクト座標系のXo軸に略平行に延設される。また、複数の縦通路20が、2つの横通路19の間に延設され、当該2つの横通路19を連結する。好適には、横通路19の長手方向長さ(例えば、Xo軸方向の長さ)は、縦通路20の長手方向長さ(例えば、Yo軸方向の長さ)よりも長い。
続いて制御部13は、例えば図4に示すように、3次元の仮想空間内にフィールドオブジェクト16を配置する。図4においては説明の簡便のため、フィールドオブジェクト16に対応付けられた6つの頂点A〜Fのみを図示しているが、任意の数の頂点が設定されてもよい。ここで仮想空間には、互いに直交するXw軸(第1軸)、Yw軸(第2軸)、及びZw軸を有するワールド座標系が設定されている。制御部13は、例えばフィールドオブジェクト16のXo軸及びYo軸と、仮想空間のXw軸及びYw軸と、がそれぞれ一致するように、フィールドオブジェクト16を仮想空間内に配置する。したがって、仮想空間内に配置されたフィールドオブジェクト16の第2部位18(図4において、オブジェクト要素CD、DE、及びEF)は、仮想空間のXw−Yw平面の一面側(例えば、+Zw側)に存在する。
続いて制御部13は、仮想空間内に仮想カメラ21を配置する。仮想カメラ21は、後述するようにフィールド画面を生成する処理に用いられる。本実施形態において、仮想カメラ21の光軸22がYw−Zw平面に略平行となるように、仮想空間のXw−Yw平面の他面側(例えば、−Zw側)に仮想カメラ21が配置される。かかる場合、フィールドオブジェクト16の第2部位18は、仮想カメラ21の光軸22方向に離れるに従って、仮想カメラ21から見て下方に傾斜する。好適には、光軸22がフィールドオブジェクトと交わるように、仮想カメラ21が配置される。
続いて制御部13は、第1ゲーム媒体の画像が投影された第1オブジェクト23、第2ゲーム媒体の画像が投影された第2オブジェクト24、及び背景画像が投影された背景オブジェクト25を、それぞれ仮想空間内に配置する。
第1オブジェクト23は、仮想カメラ21の視野26内において、フィールドオブジェクト16上の任意の位置に配置される。本実施形態において、第1オブジェクト23は、フィールドオブジェクト16の第1部位17上に配置される。また第1オブジェクト23は、例えば厚みが無い平面形状のオブジェクトである。第1オブジェクト23は、画像の投影面が仮想カメラ21の光軸22に対して所定の条件を満たすように(例えば、光軸22に対して略垂直となるように)配置される。
また第2オブジェクト24は、フィールドオブジェクト16上の所定位置に配置される。具体的には、制御部13は、第2オブジェクト24と、フィールド画像のテクスチャ座標と、を対応付けた対応情報を記憶部11から読み出す。続いて制御部13は、対応情報に基づいて、第2オブジェクト24に対応付けられたテクスチャ座標に対応するフィールドオブジェクト16上の位置(オブジェクト座標)に、当該第2オブジェクト24を配置する。第2オブジェクト24に対応付けられたテクスチャ座標に対応するフィールドオブジェクト16のオブジェクト座標は、上述したテクスチャマッピングによって一意に定まる。本実施形態において、第2オブジェクト24は、例えば厚みが無い平面形状のオブジェクトである。第2オブジェクト24は、画像の投影面が仮想カメラ21の光軸22に対して所定の条件を満たすように(例えば、光軸22に対して略垂直となるように)配置される。
また背景オブジェクト25は、仮想カメラ21の視野26内に背景オブジェクト25の少なくとも一部が含まれるように、仮想空間内に配置される。本実施形態において、背景オブジェクト25は、仮想空間の−Yw方向におけるフィールドオブジェクト16の端部(図4においては、頂点F)に接するように配置される。また背景オブジェクト25は、例えば厚みが無い平面形状のオブジェクトである。背景オブジェクト25は、画像の投影面が仮想カメラ21の光軸22に対して所定の条件を満たすように(例えば、光軸22に対して略垂直となるように)配置される。
続いて制御部13は、仮想カメラ21を視点として仮想空間を眺めたフィールド画面を表示部12に表示させる。フィールド画面には、例えば図5に示すように、互いに直交するx軸(第3軸)及びy軸(第4軸)を含むスクリーン座標系が設定されている。本実施形態において、x軸方向がフィールド画面の長手方向(例えば、図5において左右方向)に略一致し、y軸方向がフィールド画面の短手方向(例えば、図5において上下方向)に略一致する。また、フィールド画面のx軸方向と、仮想空間のXw軸方向と、が略一致する。
上述したように配置された仮想カメラ21の視野26内には、例えば図4に示すように、フィールドオブジェクト16の少なくとも一部、背景オブジェクト25の一部、第1オブジェクト23、及び第2オブジェクト24が含まれ得る。かかる場合において、表示部12に表示されるフィールド画面は、例えば図5に示すように、フィールド領域27と、背景領域28と、を含む。
フィールド領域27は、フィールドオブジェクト16が表示される領域であって、仮想空間におけるフィールド(地面)に相当する。背景領域28は、背景オブジェクト25が表示される領域であって、仮想空間における空又は遠景等に相当する。ここでフィールド画面の下方側(本実施形態では、+y方向側)にフィールド領域27が設けられ、上方側(本実施形態では、ーy方向側)に背景領域28が設けられる。フィールド領域27と背景領域28との境界は、例えば仮想空間における地平線に相当する。
またフィールド領域27において、横通路19及び縦通路20が表示され得る。図5においては、2つの横通路19a、19bと、当該2つの横通路19a、19bを連結する1つの縦通路20と、が示されている。
またフィールド画面上には、第1オブジェクト23が表示される。図5においては、横通路19a上に2つの第1オブジェクト23が示されているが、任意の数の第1オブジェクト23が存在してもよい。後述するように、制御部13は、フィールド画面に対する所定のユーザ操作に応じて、第1オブジェクト23をフィールドオブジェクト16に対して相対的に移動させる。
また、フィールド画面上には、仮想カメラ21の視野26内に含まれる全ての第2オブジェクト24が表示される。図5においては、1つの第2オブジェクト24(建物)が示されている。
上述したように、第1オブジェクト23、第2オブジェクト24、及び背景オブジェクト25は、それぞれ平面形状のオブジェクトであって、仮想カメラ21の光軸22に略垂直にそれぞれ配置されている(図4参照)。したがって、フィールド画面上において、第1オブジェクト23、第2オブジェクト24、及び背景オブジェクト25がフィールド画面と略平行に(即ち、オブジェクトの投影面が画面の方向を向いて)表示される(図5参照)。
続いて制御部13は、フィールド画面に対する所定のユーザ操作に応じて、第1オブジェクト23を、フィールドオブジェクト16上で、フィールドオブジェクト16に対して相対的に移動させる。ここで相対的に移動させることには、第1オブジェクト23及びフィールドオブジェクト16の少なくとも一方を仮想空間内で移動させることが含まれる。本実施形態において、制御部13は、第1オブジェクト23を実質的に移動させることなく(即ち、第1オブジェクト23のワールド座標を実質的に変化させることなく)、フィールドオブジェクト16を移動させる(即ち、フィールドオブジェクト16のワールド座標を変化させる)ことによって、第1オブジェクト23をフィールドオブジェクト16に対して相対的に移動させる。
ここで、情報処理装置10に備えられた表示部12は長手方向(例えば、左右方向)及び短手方向(例えば、上下方向)を有することが一般的であり、本実施形態におけるフィールド画面は、表示部12の形状に合わせて、上述したように長手方向及び短手方向を有する。したがって、フィールド画面上で、長手方向には比較的長い(大きい)操作領域が存在し、短手方向には比較的短い(小さい)操作領域が存在する。
後述するように、制御部13は、第1ユーザ操作に応じて得られる情報のうち、フィールド画面の長手方向の比較的長い操作領域において得られる情報に基づいて、第1オブジェクト23のXw−Zw平面に略平行な方向に第1オブジェクト23を移動させる。一方、制御部13は、第1ユーザ操作に応じて得られる情報のうち、フィールド画面の短手方向の比較的短い操作領域において得られる情報に基づいて、第1オブジェクト23のYw−Zw平面に略平行な方向に第1オブジェクト23を移動させる。
以下、第1オブジェクト23を、フィールドオブジェクト16上で、フィールドオブジェクト16に対して相対的に移動させる制御部13の動作について、具体的に説明する。
まず、仮想空間のXw−Zw平面(第1平面)に略平行な方向に、第1オブジェクト23をフィールドオブジェクト16に対して相対的に移動させる制御部13の動作について説明する。本実施形態において、第1オブジェクト23は、仮想空間のXw軸方向に、フィールドオブジェクト16に対して相対的に移動する。ここでXw軸方向に移動とは、第1オブジェクト23の移動速度のXw軸方向成分がゼロよりも大きいことをいう。
はじめに制御部13は、フィールド画面に対する所定のユーザ操作(第1ユーザ操作)を検出する。また制御部13は、第1ユーザ操作が検出されている間、第1ユーザ操作に応じたフィールド画面上の第1位置及び第2位置を検出する。
本実施形態において、第1ユーザ操作はスワイプ操作である。第1位置のスクリーン座標は、スワイプ操作によって最初に指定されたフィールド画面上の位置に対応するスクリーン座標である。また第2位置のスクリーン座標は、スワイプ操作によって現在指定されているフィールド画面上の位置に対応するスクリーン座標である。したがって、本実施形態において、第2位置のスクリーン座標は、第1ユーザ操作に応じて時々刻々と変化し得る。第1ユーザ操作は、スワイプ操作に限られず、フィールド画面上の2点を指定する任意の操作であってもよい。例えば第1ユーザ操作は、ユーザが2本の指でそれぞれロングタップを行う操作(マルチロングタップ操作)であってもよい。かかる場合、第1位置及び第2位置の双方のスクリーン座標が、それぞれ第1ユーザ操作に応じて時々刻々と変化し得る。以下、第1位置を基準点とする第2位置の位置ベクトルを第1入力ベクトルともいう。
続いて制御部13は、第1位置と第2位置との間の長さのx軸方向成分(即ち、第1入力ベクトルのx軸方向成分の絶対値)に応じて、Xw軸に沿った第1オブジェクト23の移動速度を決定する。本実施形態において、第1位置と第2位置との間の長さのx軸方向成分が長いほど、Xw軸に沿った第1オブジェクト23の移動速度が大きい。Xw軸に沿った第1オブジェクト23の移動速度は、第1位置と第2位置との間の長さのx軸方向成分に応じて、連続的に変化してもよく、段階的に変化してもよい。ここで、移動速度が連続的に変化する態様には、移動速度が段階的に変化する態様のうち、移動速度の軸方向成分の、各段階に対応する範囲が十分に小さい態様が含まれてもよい。
続いて制御部13は、第1位置のx座標から第2位置のx座標を減算した値の正負(即ち、第1入力ベクトルのx軸方向成分の向き)に応じて、第1オブジェクト23の移動方向を、ワールド座標系の+Xw方向又は−Xw方向に決定する。そして制御部13は、第1オブジェクト23を、決定された方向に決定された移動速度で、フィールドオブジェクト16に対して相対的に移動させる。
本実施形態において、第1入力ベクトルのx軸方向成分の向きが+x方向である場合、制御部13は、第1オブジェクト23の移動方向をワールド座標系の+Xw方向に決定する。そして制御部13は、第1オブジェクト23を仮想空間内で実質的に移動させることなく、フィールドオブジェクト16を仮想空間内で−Xw方向に平行移動させる。一方、第1入力ベクトルのx軸方向成分の向きがーx方向である場合、制御部13は、第1オブジェクト23の移動方向をワールド座標系の−Xw方向に決定する。そして制御部13は、第1オブジェクト23を仮想空間内で実質的に移動させることなく、フィールドオブジェクト16を仮想空間内で+Xw方向に平行移動させる。
ここで図5乃至図7を参照して、上述した制御部13の動作について具体的に説明する。例えば制御部13は、図5に示すフィールド画面が表示部12に表示された状態で、第1ユーザ操作が検出されている間、第1位置及び第2位置を検出する。例えば図6に示すように、第1位置29に対して第2位置30がフィールド画面上で左上に位置している場合、第1入力ベクトル31のx軸方向成分の向きはーx方向である。したがって、制御部13は、第1オブジェクト23を仮想空間内で実質的に移動させることなく、フィールドオブジェクト16を仮想空間内で+Xw方向に平行移動させる。このときフィールド画面上では、例えば図7に示すように、第1オブジェクト23の位置(スクリーン座標)が実質的に変化することなく、フィールド領域27及び背景領域28においてそれぞれ表示されたフィールドオブジェクト16及び背景オブジェクト25が、画面の右方向(+x方向)に向かって流れるように移動する。
好適には、制御部13は、第1ユーザ操作の終了(例えば、スワイプ操作を行うユーザが表示部12から指を離すこと)を検出すると、第1オブジェクト23の移動速度を変化させながら、第1オブジェクト23をXw軸方向に移動させる。本実施形態において、制御部13は、第1ユーザ操作の終了の検出に応じて、第1オブジェクト23の移動速度を所定の時間変化率で減速させながら、第1オブジェクト23を移動させる。かかる構成によって、ユーザが表示部12から指を離しても第1オブジェクト23が減速しながらXw軸方向に移動し続けるので、第1オブジェクト23を横通路19に沿って比較的長い距離を移動させようとするユーザの操作負担が低減され、ゲームの操作性が向上する。
ここで第1オブジェクト23の移動速度の時間変化率は、定数であってもよく、制御部13によって算出されてもよい。例えば制御部13は、第1オブジェクト23の移動速度が大きいほど時間変化率が大きく又は小さくなるように、第1オブジェクト23の移動速度に応じて時間変化率を算出してもよい。また例えば、重さ又は素早さ等の第1ゲーム媒体の特性を示す所定パラメータが第1オブジェクト23に設定されており、制御部13は、当該パラメータが大きいほど第1オブジェクト23の移動速度の時間変化率が大きく又は小さくなるように、当該パラメータに応じて時間変化率を算出してもよい。また例えば、アスファルト又はぬかるみ等の地面の状態を示す所定のパラメータがフィールドオブジェクト16上の一部領域に設定されており、制御部13は、当該パラメータに応じて第1オブジェクト23の移動速度の時間変化率を算出してもよい。
また好適には、制御部13は、上述のように移動速度を変化させながら第1オブジェクト23を移動させている間に、フィールド画面に対する所定のユーザ操作(第2ユーザ操作)を検出すると、第1オブジェクト23の移動速度を所定値に定める。本実施形態において、制御部13は、第2ユーザ操作の検出に応じて、第1オブジェクト23の移動速度をゼロにする。ここで第2ユーザ操作は、例えばフィールド画面上の任意の位置で行われるタップ操作であるが、例えばマルチタップ操作等、任意のユーザ操作であってもよい。かかる構成によって、上述したように移動速度を変化させながらXw軸方向に移動する第1オブジェクト23の移動速度を、ユーザは任意のタイミングで所定値に変化させる(例えば、第1オブジェクト23を停止させる)ことができ、ゲームの操作性が向上する。
次に、仮想空間のYw−Zw平面(第2平面)に略平行な方向に、第1オブジェクト23をフィールドオブジェクト16に対して相対的に移動させる制御部13の動作について説明する。本実施形態において、第1オブジェクト23は、仮想空間のYw軸方向に、フィールドオブジェクト16に対して相対的に移動する。ここでYw軸方向に移動とは、第1オブジェクト23の移動速度のYw軸方向成分がゼロよりも大きいことをいう。
はじめに制御部13は、第1オブジェクト23が縦通路20の近傍の所定領域32内に位置するか否かを判定する。第1オブジェクト23が領域32内に位置すると判定された場合、制御部13は、検出されている第1ユーザ操作に応じた第2位置の変化に関する所定の条件(第1条件)が満たされるか否かを判定する。
本実施形態において、第1条件は、変化前の第2位置と変化後の第2位置との間の長さのy軸方向成分、即ち変化前の第2位置を基準点とする変化後の第2位置の位置ベクトル(第2入力ベクトル)のy軸方向成分の絶対値が所定の閾値以上であるとの条件、又は、第1ユーザ操作に応じて変化する第2位置の変化速度のy軸方向成分の絶対値(即ち、第2位置の速度ベクトルのy軸方向成分の大きさ)が所定の閾値以上であるとの条件を含む。
好適には、第1条件は、上述した領域32に対応する縦通路20が第1オブジェクト23に対して−Yw方向に位置する場合(例えば、フィールド画面上で縦通路20が奥行側に延びる場合)、変化前の第2位置のy座標から変化後の第2位置のy座標を減算した値が負である(即ち、第2入力ベクトルのy軸方向成分の向きがーy方向である)との条件を更に含む。また好適には、第1条件は、上述した領域32に対応する縦通路20が第1オブジェクト23に対して+Yw方向に位置する場合(例えば、フィールド画面上で縦通路20が手前側に延びる場合)、変化前の第2位置のy座標から変化後の第2位置のy座標を減算した値が正である(即ち、第2入力ベクトルのy軸方向成分の向きが+y方向である)との条件を更に含む。
第1条件が満たされると判定された場合、制御部13は、仮想空間における所定距離だけ、仮想空間のYw−Zw平面に略平行な方向に、第1オブジェクト23をフィールドオブジェクト16に対して相対的に移動させる。具体的には、制御部13は、第1オブジェクト23を仮想空間内で実質的に移動させることなく、フィールドオブジェクト16を仮想空間内で所定距離だけスライド移動させる。フィールドオブジェクト16がスライド移動する際、フィールドオブジェクト16上の複数の頂点のうち、Yw−Zw平面に略平行な面上に存在する頂点が、当該面上の所定の軌道に沿って移動する。ここで所定の軌道の形状は、Yw−Zw平面に略平行な当該面におけるフィールドオブジェクト16の断面形状を延長した形状に略一致する。したがって、例えば図8においては、フィールドオブジェクト16がスライド移動する際、Yw−Zw平面に略平行な面上におけるフィールドオブジェクト16の頂点A〜Fそれぞれが、フィールドオブジェクト16の断面形状に沿って滑るように移動する。即ち、制御部13は、フィールドオブジェクト16の形状を変化させながら、フィールドオブジェクト16を移動させる。また所定距離は、例えば縦通路20の長手方向(本実施形態では、Yw軸方向)の長さである。
好適には、制御部13は、フィールドオブジェクト16のスライド移動中に、第1オブジェクト23、第2オブジェクト24、及び背景オブジェクト25それぞれにおける画像の投影面が、仮想カメラ21の光軸22に対して上述した条件を満たすように(例えば、光軸22に対して略垂直となるように)制御する。具体的には、制御部13は、フィールドオブジェクト16をスライド移動させると同時に、例えば第1オブジェクト23とフィールドオブジェクト16とが為す角度を変化させることによって、第1オブジェクト23の投影面が光軸22に対して略垂直となるように制御する。かかる構成によって、フィールドオブジェクト16がスライド移動した場合であっても、フィールド画面上において、第1オブジェクト23、第2オブジェクト24、及び背景オブジェクト25がフィールド画面と略平行に(即ち、オブジェクトの投影面が画面の方向を向いて)表示されるので、フィールド画面の視認性が向上する。
ここで図7乃至図11を参照して、上述した制御部13の動作について具体的に説明する。例えば制御部13は、図7に示すフィールド画面が表示部12に表示された状態で、第1ユーザ操作に応じた第2位置の変化を検出する。ここで第1オブジェクト23は、第1オブジェクト23に対してワールド座標系の−Yw側に位置する縦通路20の近傍の所定領域32内に位置している。また図9に示すように、変化前の第2位置30に対して変化後の第2位置33がフィールド画面上で左上に位置しており、第2位置の変化に関する上述した第1条件が満たされているものとする。
かかる場合、制御部13は、仮想空間における所定距離だけ第1オブジェクト23を−Yw方向に向かって移動させる。具体的には、制御部13は、第1オブジェクト23を仮想空間内で実質的に移動させることなく、フィールドオブジェクト16を仮想空間内で+Yw方向に、縦通路20の長手方向の長さだけスライド移動させる(図8参照)。このときフィールド画面上では、例えば図10に示すように、第1オブジェクト23の位置(スクリーン座標)が実質的に変化することなく、フィールドオブジェクト16が画面の手前側に向かってスライドし、例えば図11に示すように、第1オブジェクト23が他の横通路19bまで移動する。
上述のようにして、制御部13は、フィールド画面に対するユーザ操作に応じて、仮想空間内において第1オブジェクト23を、フィールドオブジェクト16に対して相対的に、フィールドオブジェクト16上で移動させる。
また制御部13は、第1オブジェクト23のフィールドオブジェクト16上における位置に応じて異なる処理を実行する。例えば、フィールドオブジェクト16には、Xo軸方向(本実施形態では、Xw軸方向と同一)に連続する(隣接する)異なる領域(第1特定領域及び第2特定領域)が定められている。第1オブジェクト23は、第1特定領域と第2特定領域との間をシームレスに(例えば、フィールド画面の表示が切り替わったり、暗転したりすること無く)行き来可能である。例えば、第1特定領域はゲーム内における仮想の町の内部に相当し、第2特定領域は当該町の外部に相当する。かかる場合、制御部13は、第1オブジェクト23が第1特定領域内に存在するときに、例えば第1オブジェクト23(ユーザキャラクタ)と第2オブジェクト24(例えば、街の住人であるNPC)との会話等の処理を実行する。一方、制御部13は、第1オブジェクト23が第2特定領域内に存在するときに、例えば第1オブジェクト23(ユーザキャラクタ)と敵キャラクタとの対戦等の処理を実行する。また例えば、制御部13は、第1オブジェクト23が第1特定領域内に存在する場合と第2特定領域内に存在する場合とで、異なる音楽データ(BGM)を再生させてもよい。
次に、図12に示すフローチャートを参照して、情報処理装置10の動作について説明する。本動作は、例えば第1ゲームパートの実行中に、フィールド画面を表示させた状態で行われる。
ステップS100:はじめに制御部13は、フィールド画面に対する第1ユーザ操作の検出を待ち受ける。第1ユーザ操作は、例えばスワイプ操作である。第1ユーザ操作が検出された場合(ステップS100−Yes)、ステップS101に進む。
ステップS101:続いて制御部13は、第1ユーザ操作に応じたフィールド画面上の第1位置を検出する。第1位置は、例えばスワイプ操作によって最初に指定されたフィールド画面上の位置(スクリーン座標)である。
ステップS102:続いて制御部13は、第1ユーザ操作に応じたフィールド画面上の第2位置を検出する。第2位置は、例えばスワイプ操作によって現在指定されているフィールド画面上の位置(スクリーン座標)である。
ステップS103:続いて制御部13は、第1位置及び第2位置に基づいて、Xw−Zw平面に略平行な方向に第1オブジェクト23を移動させる処理を実行する。当該処理の詳細については後述する。
ステップS104:続いて制御部13は、第2位置の変化に応じて、Yw−Zw平面に略平行な方向に第1オブジェクト23を移動させる処理を実行する。当該処理の詳細については後述する。
ステップS105:続いて制御部13は、第1ユーザ操作の終了を検出したか否かを判定する。第1ユーザ操作の終了を検出したと判定された場合(ステップS105−Yes)、ステップS106に進む。一方、第1ユーザ操作の終了を検出していないと判定された場合(ステップS105−No)、ステップS102に戻る。
ステップS106:ステップS105で第1ユーザ操作の終了を検出したと判定された場合(ステップS105−Yes)、制御部13は、第1オブジェクト23の移動速度を変化(例えば、減速)させながら、第1オブジェクト23をXw軸方向に移動させる。
ステップS107:続いて制御部13は、第2ユーザ操作を検出したか否かを判定する。第2ユーザ操作は、例えばフィールド画面上の任意の位置で行われるタップ操作である。第2ユーザ操作を検出したと判定された場合(ステップS107−Yes)、ステップS108に進む。一方、第2ユーザ操作を検出していないと判定された場合(ステップS107−No)、ステップS109に進む。
ステップS108:ステップS107で第2ユーザ操作を検出したと判定された場合(ステップS107−Yes)、制御部13は、第1オブジェクト23の移動速度を所定値(例えば、ゼロ)に定める。
ステップS109:ステップS107で第2ユーザ操作を検出していないと判定された場合(ステップS107−No)、又はステップS108の後、制御部13は、第1ユーザ操作を新たに検出したか否かを判定する。第1ユーザ操作を新たに検出したと判定された場合(ステップS109−Yes)、ステップS101に戻る。一方、第1ユーザ操作を新たに検出していないと判定された場合(ステップS109−No)、ステップS106に戻る。
次に、図13に示すフローチャートを参照して、上述したXw−Zw平面に略平行な方向の移動処理(ステップS103)の詳細について説明する。
ステップS200:はじめに制御部13は、第1ユーザ操作に応じた第1位置及び第2位置に基づいて、第1オブジェクト23の移動速度及び移動方向を決定する。具体的には、制御部13は、第1位置と第2位置との間の長さのx軸方向成分(第1入力ベクトルのx軸方向成分の絶対値)に応じて、第1オブジェクト23の移動速度を決定する。また制御部13は、第1位置のx座標から第2位置のx座標を減算した値の正負(第1入力ベクトルのx軸方向成分の向き)に応じて、第1オブジェクト23の移動方向を+Xw方向又は−Xw方向に決定する。
ステップS201:そして制御部13は、ワールド座標系のXw軸方向に、第1オブジェクト23をフィールドオブジェクト16に対して相対的に移動させる。ここで、第1オブジェクト23の移動速度及び移動方向は、ステップS200で決定された移動速度及び移動方向である。その後、上述したステップS104に進む(図12参照)。
次に、図14に示すフローチャートを参照して、上述したYw−Zw平面に略平行な方向の移動処理(ステップS105)の詳細について説明する。
ステップS300:はじめに制御部13は、第1オブジェクト23が縦通路20の近傍の所定領域32内に位置するか否かを判定する。第1オブジェクト23が領域32内に位置すると判定された場合(ステップS300−Yes)、ステップS301に進む。一方、第1オブジェクト23が領域32内に位置しないと判定された場合(ステップS300−No)、上述したステップS105に進む(図12参照)。
ステップS301:ステップS300で第1オブジェクト23が領域32内に位置すると判定された場合(ステップS300−Yes)、制御部13は、第1ユーザ操作に応じた第2位置の変化に関する上述の第1条件が満たされるか否かを判定する。第1条件が満たされると判定された場合(ステップS301−Yes)、ステップS302に進む。一方、第1条件が満たされないと判定された場合(ステップS301−No)、上述したステップS105に進む(図12参照)。
ステップS302:ステップS301で第1条件が満たされると判定された場合(ステップS301−Yes)、制御部13は、仮想空間における所定距離だけ、Yw−Zw平面に略平行な方向に、第1オブジェクト23をフィールドオブジェクト16に対して相対的に移動させる。ここで所定距離は、例えば縦通路20の長手方向(本実施形態では、Yw軸方向)の長さである。
以上述べたように、本実施形態に係る情報処理装置10は、第1オブジェクト23をフィールドオブジェクト16に対して相対的に移動させる。ここでフィールドオブジェクト16は、仮想空間内に配置された状態で、Yw−Zw平面(第1平面)に略平行な面における断面形状がXw軸(第1軸)方向に延設された形状であり、且つ、仮想カメラ21の光軸22方向に離れるに従って仮想カメラ21から見て下方に傾斜する傾斜部を有する。かかる構成によって、以下に説明するように、フィールド画面の視認性が向上し、例えばスマートフォン等、画面サイズが限られた表示部d12を備える情報処理装置10に好適なフィールド画面が実現可能である。
例えばスマートフォン等が備える表示装置は、左右方向と上下方向とで寸法が異なり、画面サイズが比較的小さいことが一般的である。このため、例えば平坦なフィールドを上空から俯瞰したフィールド画面は、画面の短手方向において比較的小さい表示領域の範囲内でしかフィールドを表示できない。一方、上述した情報処理装置10によれば、フィールドオブジェクト16の傾斜部の少なくとも一部が、フィールド画面上で奥行方向に広がったフィールドとして表示される。即ち、傾斜部の少なくとも一部がフィールド画面の短手方向に歪んで(圧縮して)表示されるので、画面上で一度に表示されるフィールドの範囲が拡大し、フィールド画面の視認性が向上する。またフィールドオブジェクト16は、フィールド画面上の長手方向(左右方向)に延設された形状である。このため、フィールド画面上に表示されるフィールドオブジェクト16の、画面長手方向における歪みが低減され、フィールド画面の視認性が向上する。
また情報処理装置10は、Xw−Zw平面(第2平面)に略平行な方向に第1オブジェクト23を移動させる場合、フィールドオブジェクト16をXw軸(第1軸)方向に平行移動させる。また情報処理装置10は、Yw−Zw平面(第1平面)に略平行な方向に第1オブジェクト23を移動させる場合、Yw−Zw平面に略平行な方向に、平行移動とは異なる態様でフィールドオブジェクト16を移動させる。かかる構成によって、第1オブジェクト23をフィールド画面の短手方向に移動させる場合と長手方向に移動させる場合とで異なる視覚効果が実現され、フィールド画面におけるフィールドの奥行方向の広がりが表示可能となるので、例えば左右方向及び上下方向の双方で画面をスクロールして表示させる構成と比較して、フィールド画面の視認性が向上する。
また情報処理装置10は、第1オブジェクト23及び第2オブジェクト24の画像投影面が仮想カメラ21の光軸22に対して所定の条件を満たすように制御する。かかる構成によって、フィールド画面上で第1オブジェクト23及び雄第2オブジェクト24がフィールド画面と略平行に表示されるので、フィールド画面の視認性が更に向上する。
またフィールドオブジェクト16は、第1部位17と、第1部位17の端部から延設された第2部位18と、を有する。かかる構成によって、例えばフィールド画面における手前側ではフィールドを比較的大きく表示させつつ、奥行側では第2部位18によってフィールドが上下方向に圧縮して表示されるので、表示領域が限られた表示部12に好適なフィールド画面が実現可能である。
またフィールドオブジェクト16は、仮想空間内に配置された状態でXw軸方向に連続する第1特定領域及び第2特定領域を有している。情報処理装置10は、第1オブジェクト23が第1特定領域内に存在する場合と、第1オブジェクト23が第2特定領域内に存在する場合とで、異なる処理を実行する。かかる構成によって、第1オブジェクト23(ユーザキャラクタ)が例えば町の内外へシームレスに移動可能となる。したがって、例えば町の内外へ移動する際に画面の表示が切り替わる構成と比較して、画面が切り替わる表現の違和感の発生が抑制され、画面が切り替わるまでの待ち時間の発生が抑制される。このようにして、ゲーム内のフィールドの連続性を知覚するユーザ体験が実現可能である。
また、本実施形態に係る情報処理装置10は、第1ユーザ操作が検出されている間、第1位置及び第2位置を検出する。また情報処理装置10は、第1位置及び第2位置の双方に基づいて第1オブジェクト23をXw−Zw平面(第1平面)に略平行な方向に移動させ、第2位置の変化に応じて第1オブジェクト23をYw−Zw平面(第2平面)に略平行な方向に移動させる。このように、第1ユーザ操作に応じて検出される情報のうち、第1平面に略平行な方向の移動と第2平面に略平行な方向の移動とで異なる情報が用いられる。かかる構成によって、例えばユーザが第1オブジェクト23を第1平面に略平行な方向移動させたい場合に、第1ユーザ操作の微妙な位置ズレ等によって第1オブジェクト23が第2平面に略平行な方向移動してしまう等、ユーザが意図しない方向への第1オブジェクト23の移動の発生が抑制されるので、ゲームの操作性が向上する。
また情報処理装置10は、第1ユーザ操作の終了を検出すると、第1オブジェクト23の移動速度を変化(例えば、減速)させながら第1オブジェクト23をXw軸方向に移動させる。かかる構成によって、ユーザが表示部12から指を離しても第1オブジェクト23が減速しながらXw軸方向に移動し続けるので、第1オブジェクト23を横通路19に沿って比較的長い距離を移動させようとするユーザの操作負担が低減され、ゲームの操作性が更に向上する。
また情報処理装置10は、第1オブジェクト23の移動速度を変化させながら第1オブジェクト23をXw軸方向に移動させている間に、第2ユーザ操作を検出すると、第1オブジェクト23の移動速度を所定値(例えば、ゼロ)に定める。かかる構成によって、上述したように移動速度を変化させながらXw軸方向に移動する第1オブジェクト23の移動速度を、ユーザは任意のタイミングで所定値に変化させる(例えば、第1オブジェクト23を停止させる)ことができ、ゲームの操作性が更に向上する。
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。したがって、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各手段、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段やステップ等を1つに組み合わせたり、或いは分割したりすることが可能である。
例えば、制御部13は、第1ユーザ操作に応じて第1オブジェクト23をXw軸方向に移動させている間に、第1ユーザ操作に応じて第2位置の変化を検出すると、第2位置の変化速度(即ち、第2位置の速度ベクトルの大きさ)が所定の閾値以上である場合、第1オブジェクト23の移動速度を所定値(例えば、ゼロ)に定めて、第1ユーザ操作の終了を検出したと判定してもよい。かかる構成によって、第1ユーザ操作を行うユーザは、例えば第1オブジェクト23をXw軸方向に比較的高速で移動させている間に、表示部12に触れている指を素早く移動させる簡易な操作で、第1オブジェクト23の速度を所定値に変更可能である。このため、ゲームの操作性が更に向上する。
或いは、制御部13は、第2位置の変化速度が所定の閾値以上である場合、第1オブジェクト23に移動以外の他の動作、例えばジャンプ等の所定のアクションを実行させてもよい。かかる構成によって、例えば横通路19上に岩又は落とし穴等の障害物(ゲーム媒体)が存在する場合に、第1ユーザ操作を行うユーザは、第1ユーザ操作を終了することなく(例えば、表示部12から指を離すことなく)、第1オブジェクト23に障害物を飛び越えさせることができる。したがって、ゲームの操作性が更に向上し、またゲームのアクション性が形成されるので、ゲームの興趣性が向上する。
また例えば、制御部13は、第1ユーザ操作が検出されている間に(即ち、当該第1ユーザの終了を検出することなく)第1オブジェクト23をYw軸方向に移動させると、当該第1ユーザ操作の検出に応じて検出された第1位置のスクリーン座標を、例えばスワイプ操作によって最初に指定されたフィールド画面上の位置のスクリーン座標から他のスクリーン座標に自動的に更新させてもよい。
具体的には、制御部13は、第1ユーザ操作が検出されている状態で第1オブジェクト23をYw軸方向に移動させている間に(例えば、図10に示すフィールド画面が表示部12に表示されている状態で)、第1ユーザ操作に応じた第2位置の変化を検出すると、変化前の第2位置のスクリーン座標を新たな第1位置のスクリーン座標に定める。
好適には、制御部13は、例えば図15(a)に示すように、第1位置29を基準点とする変化前の第2位置33の位置ベクトル34のy軸方向成分の向き(図中では、−y方向)と、変化前の第2位置33を基準点とする変化後の第2位置35の位置ベクトル36(即ち、第2入力ベクトル)のy軸方向成分の向き(図中では、+y方向)と、が異なる場合に、図15(b)に示すように、変化前の第2位置33を新たな第1位置37に定める。
かかる構成によって、ユーザは、例えば第1オブジェクト23が縦通路20に沿って移動している間に、表示部12に触れたまま指を比較的短い距離だけ動かすことによって、第1オブジェクト23が他の横通路19bまで移動した後に第1オブジェクト23をXw軸に沿った任意の方向に移動可能である。具体的には、ユーザは、例えば図7に示すように手前側の横通路19aにおいて第1オブジェクト23を−Xw方向に移動させていき、縦通路20に沿って第1オブジェクト23を−Yw方向に移動させた後(図10参照)、他の横通路19bにおいて(図11参照)第1オブジェクト23を+Xw方向に移動させたい場合に、例えば図15(a)において指を第1位置29よりも+x側まで移動させる必要が無い。したがって、移動ユーザ操作の煩雑さが低減する。
また、上述の実施形態において、第1ユーザ操作に応じた第2位置の変化に関する第1条件が満たされるか否かに応じて、仮想空間のYw−Zw平面に略平行な方向に、第1オブジェクト23をフィールドオブジェクト16に対して相対的に移動させる構成について説明したが、第1ユーザ操作に応じた第1位置及び第2位置の双方に基づいて、仮想空間のYw−Zw平面に略平行な方向に第1オブジェクト23を移動させてもよい。
具体的には、はじめに制御部13は、第1オブジェクト23が縦通路20の近傍の所定領域32内に位置するか否かを判定する。第1オブジェクト23が領域32内に位置すると判定された場合、制御部13は、第1ユーザ操作、及び当該第1ユーザ操作に応じた第1位置及び第2位置を検出する。続いて制御部13は、第1位置と第2位置との間の長さのy軸方向成分(即ち、第1入力ベクトルのy軸方向成分の絶対値)に応じて、Yw−Zw平面に略平行な方向における第1オブジェクト23の移動速度を決定する。例えば、第1位置と第2位置との間の長さのy軸方向成分が長いほど、Yw−Zw平面に略平行な方向における第1オブジェクト23の移動速度が大きい。ここで、決定された移動速度で第1オブジェクト23を移動させる場合、決定された移動速度を上限として第1オブジェクト23を加速度運動させてもよい。Yw−Zw平面に略平行な方向における第1オブジェクト23の移動速度は、第1位置と第2位置との間の長さのy軸方向成分に応じて、連続的に変化してもよく、段階的に変化してもよい。
ここで好適には、制御部13は、第1位置と第2位置との間の長さのy軸方向成分が所定の閾値以上であるか否かを判定する。第1位置と第2位置との間の長さのy軸方向成分が所定の閾値以上であると判定された場合、制御部13は、第1オブジェクト23をYw−Zw平面に略平行な方向に移動させる。一方、1位置と第2位置との間の長さのy軸方向成分が当該閾値未満であると判定された場合、制御部13は、第1オブジェクト23をYw−Zw平面に略平行な方向に第1オブジェクト23のYw−Zw平面に略平行な方向の第1オブジェクト23の移動速度をゼロに定める。
また好適には、第1位置と第2位置との間の長さのx軸方向成分が所定の値(特定値)であるときのXw軸に沿った第1オブジェクト23の移動速度(移動速度Xw)と、第1位置と第2位置との間の長さのy軸方向成分が当該特定値であるときのYw−Zw平面に略平行な方向の第1オブジェクト23の移動速度(移動速度Yw)と、が異なる。このように、制御部13は、第1ユーザ操作に応じた第1位置及び第2位置を用いた異なるアルゴリズムを用いて移動速度Xw及び移動速度Ywをそれぞれ決定する。
ここで、上述したように表示部12は長手方向(例えば、左右方向)及び短手方向(例えば、上下方向)を有するため、画面上の操作領域の長さ(大きさ)が長手方向と短手方向とで異なる。ここでタッチパネルは、検出ピッチが左右方向と上下方向とで等しいことが一般的である。したがって、画面の長手方向にユーザ操作を検出可能なポイント数よりも、画面の短手方向にユーザ操作を検出可能なポイント数の方が少ない。このため、例えば第1オブジェクト23の移動速度Xwを決定するアルゴリズムと、移動速度Ywを決定するためのアルゴリズムとが同一である構成においては、長手方向の操作領域と比較して短手方向の操作領域におけるゲームの操作性が低い。これに対し、制御部13は、移動速度Xw及び移動速度Ywを、第1位置及び第2位置を用いた異なるアルゴリズムによって決定するので、上述したようにフィールド画面上の長手方向の操作領域の長さ(大きさ)と、短手方向の操作領域の長さ(大きさ)とが異なる構成において、短手方向の操作領域におけるゲームの操作性が更に向上可能である。
例えば、x軸方向成分が特定値であるときの移動速度Xwよりも、y軸方向成分が特定値であるときの移動速度Ywのほうが小さく又は大きくなるように定められる。好適には、y軸方向が短手方向である場合、移動速度Xwよりも移動速度Ywの方が大きくなるように定められる。ここで特定値は、第1位置と第2位置との間の長さのy軸方向成分(短手方向成分)が取り得る任意の値であってもよい。
具体的には、第1位置と第2位置との間の長さのx軸方向成分及びy軸方向成分に応じて、第1オブジェクト23の移動速度Xw及び移動速度Ywがそれぞれ連続的に変化する構成である場合、第1位置と第2位置との間の長さのx軸方向成分に対する移動速度Xwの変化の割合よりも、第1位置と第2位置との間の長さのy軸方向成分に対する移動速度Ywの変化の割合が小さく又は大きくなる。
また具体的には、第1位置と第2位置との間の長さのx軸方向成分及びy軸方向成分に応じて、第1オブジェクト23の移動速度Xw及び移動速度Ywが段階的に変化する構成である場合、移動速度Xwの段階数と、移動速度Ywの段階数と、が異なってもよい。例えば、制御部13は、n段階(2<n)の速度値のうち、第1位置と第2位置との間の長さのx軸方向成分に応じた段階の速度値を移動速度Xwに決定する。また制御部13は、m段階(1<m<n)の速度値のうち、第1位置と第2位置との間の長さのy軸方向成分に応じた段階に対応する速度値を移動速度Ywに定める。ここで、各段階に対応する速度値は、等間隔(例えば、0、5、10、…)に定められてもよく、或いは異なる間隔(例えば、0、1、5、15、…)に定められてもよい。また、移動速度の軸方向成分の、各段階に対応する範囲は、同一の大きさ(例えば、5ピクセル)に定められてもよく、或いは異なる大きさ(例えば、5ピクセル又は10ピクセル)に定められてもよい。
また、上述の実施形態において、第1ユーザ操作の終了に応じて、第1オブジェクト23の移動速度Xwを変化させる構成について説明したが、同様に移動速度Ywを変化させてもよい。具体的には、制御部13は、第1ユーザ操作の終了を検出すると、第1オブジェクト23の移動速度Xw及び移動速度Ywの少なくとも一方を変化させながら、第1オブジェクト23を移動させる。
また、上述の実施形態において、第1オブジェクト23をフィールドオブジェクト16に対して相対的に移動させる際、第1オブジェクト23を実質的に移動させることなく、フィールドオブジェクト16を移動させる構成について説明したが、例えばフィールドオブジェクト16を実質的に移動させることなく、第1オブジェクト23を移動させる構成であってもよい。かかる構成において、制御部13は、仮想カメラ21と第1オブジェクト23との相対位置関係が維持されるように、第1オブジェクト23の移動に応じて仮想カメラ21を移動させる。
また、上述の実施形態において、3次元の仮想空間内に配置されたフィールドオブジェクト16をフィールド(地面)として用いる構成について説明したが、例えば2次元の仮想空間が用いられてもよい。かかる場合、フィールド、第1ゲーム媒体、第2ゲーム媒体、及び背景等は、全て2次元の画像で構成される。
また、上述した実施形態にかかるゲームは、ロールプレイングゲーム又はシミュレーションゲーム等であるものとして説明したが、本発明は、ゲーム内のフィールド上でゲーム媒体を移動させる多様なジャンルのゲームに適用可能である。
また、情報処理装置10は、例えばインターネットを介してサーバ装置と通信可能であってもよい。かかる構成において、情報処理装置10は、第1オブジェクト23がフィールド上の所定位置(例えば、洞窟又は建物等の入り口等)まで移動した場合に、他のフィールド画像(例えば、洞窟又は建物等の内部を示すフィールドの画像)をサーバ装置から取得する。そして情報処理装置10は、サーバ装置から受信した他のフィールド画像を、新たに生成(定義)した他のフィールドオブジェクトに投影して、当該他のフィールドオブジェクト上に第1オブジェクト23等を配置する。かかる構成によって、情報処理装置10自体に記憶されたフィールド画像のみを用いる構成と比較して、フィールドのバリエーションが増加し、ゲームの興趣性が向上する。
また、上述した実施形態において、フィールドオブジェクト16が第1部位17及び第2部位18を有する構成について説明したが、フィールドオブジェクト16の形状はこれに限られない。実施形態の変形例に係るフィールドオブジェクト160は、オブジェクト座標系においてXo軸方向に延設された筒形状であって、上述した実施形態と同様に、仮想空間内に配置された状態で仮想カメラ21の光軸22方向に離れるに従い仮想カメラ21から見て下方に傾斜する傾斜部を有する。具体的には、フィールドオブジェクト160は、Xo軸に対して回転対称の角筒形状若しくは略円筒形状、又はXo軸に対して回転非対称の角筒形状若しくは略楕円筒形状である。例えば図16は、Xo軸に対して回転対称の角筒形状を有するフィールドオブジェクト160が上述した実施形態と同様に仮想空間内に配置された状態で、フィールドオブジェクト160をYw−Zw平面に略平行な面で切断した断面図である。図16において、例えばオブジェクト要素CD、DE等が傾斜部に相当する。
かかるフィールドオブジェクト160が採用される構成において、上述した第1条件が満たされると判定された場合、制御部13は、仮想空間における所定距離だけ、仮想空間のYw−Zw平面に略平行な方向に、第1オブジェクト23をフィールドオブジェクト160に対して相対的に移動させる。具体的には、制御部13は、第1オブジェクト23を仮想空間内で実質的に移動させることなく、フィールドオブジェクト160を仮想空間内でXw軸周りに回転させる。フィールドオブジェクト16が回転する際、フィールドオブジェクト16上の複数の頂点のうち、Yw−Zw平面に平行な面上に存在する各頂点が、当該面上でXw軸を中心とする同心円の軌道に沿って移動する。
また、上述した実施形態において、各種のゲーム画面の一部を、情報処理装置10との間で通信可能なサーバ装置が生成したデータに基づいて情報処理装置10に表示させるウェブ表示とし、ゲーム画面の一部(例えば、メニューボタンが配されるヘッダ領域及びフッタ領域)を、情報処理装置10にインストールされているネイティブアプリによって表示させるネイティブ表示としてもよい。このように、上述した実施形態に係るゲームは、情報処理装置10及びサーバ装置のそれぞれが処理の一部を担うハイブリッドゲームとすることもできる。
また、上述した実施形態に係る情報処理装置10として機能させるために、コンピュータ又は携帯電話等、情報処理を実行可能な装置を好適に用いることができる。このような装置は、実施形態に係る情報処理装置10の各機能を実現する処理内容を記述したプログラムを、装置の記憶部に格納し、装置のCPUによって当該プログラムを読み出して実行させることにより実現可能である。
以下に、本願の原出願の出願当初の特許請求の範囲に記載された発明を付記する。
[1]
ゲームを実行する情報処理装置に、
第1軸及び第2軸を有するワールド座標系が設定された仮想空間内のフィールドオブジェクト上に配置されたオブジェクトを、第3軸及び第4軸を有するスクリーン座標系が設定された画面上に表示させるステップと、
第1ユーザ操作を検出するステップと、
前記第1ユーザ操作が検出されている間、該第1ユーザ操作に応じた前記画面上の第1位置及び第2位置を検出するステップと、
検出された前記第1ユーザ操作に応じて、前記オブジェクトを前記仮想空間内で前記オブジェクトに対して相対的に移動させる第1移動ステップと、を実行させ、
前記第1移動ステップにおいて、前記オブジェクトの移動速度の前記第1軸方向成分である第1速度成分は、前記第1位置と前記第2位置との間の長さの前記第3軸方向成分に応じて定められ、前記オブジェクトの移動速度の前記第2軸方向成分である第2速度成分は、前記第1位置と前記第2位置との間の長さの前記第4軸方向成分に応じて定められ、
前記第1位置と前記第2位置との間の長さの前記第3軸方向成分が所定値であるときの前記第1速度成分と、前記第1位置と前記第2位置との間の長さの前記第4軸方向成分が前記所定値であるときの前記第2速度成分とが異なる、プログラム。
[2]
[1]に記載のプログラムであって、
前記第1移動ステップにおいて、前記第1位置と前記第2位置との間の長さの前記第4軸方向成分が所定の閾値以上である場合、前記第2軸方向に前記オブジェクトを移動させる、プログラム。
[3]
[1]又は[2]に記載のプログラムであって、
前記第1移動ステップにおいて、前記第1ユーザ操作に応じて前記第2位置のスクリーン座標が変化すると、変化前の第2位置と変化後の第2位置との間の長さの前記第4軸方向成分が所定閾値以上である場合、又は第2位置の変化速度の第4軸方向成分が所定閾値以上である場合、前記第2軸方向に前記オブジェクトを移動させる、プログラム。
[4]
[1]乃至[3]の何れか一項に記載のプログラムであって、
前記情報処理装置に、
前記第1ユーザ操作の終了を検出すると、前記オブジェクトの前記第1速度成分及び第2速度成分の少なくとも一方を変化させながら前記オブジェクトを移動させる第2移動ステップ
を更に実行させる、プログラム。
[5]
[4]に記載のプログラムであって、
前記情報処理装置に
前記第2移動ステップの後、第2ユーザ操作を検出すると、前記オブジェクトの前記第1速度成分を所定値に定めるステップ
を更に実行させる、プログラム
[6]
[1]乃至[5]の何れか一項に記載のプログラムであって、
前記情報処理装置に、
前記第1ユーザ操作に応じて前記第2位置のスクリーン座標が変化すると、前記第2位置の変化速度が所定閾値以上である場合、前記オブジェクトの前記第1速度成分を所定値に定め、又は前記オブジェクトに移動以外の動作を実行させるステップ
を更に実行させる、プログラム。
[7]
[1]乃至[6]の何れか一項に記載のプログラムであって、
前記第1移動ステップにおいて、前記第1ユーザ操作が検出されている間に前記第2軸方向に前記オブジェクトを移動させると、前記第1位置のスクリーン座標を他のスクリーン座標に自動的に更新させる、プログラム。
[8]
情報処理装置によって実行されるゲームの制御方法であって、
第1軸及び第2軸を有するワールド座標系が設定された仮想空間内のフィールドオブジェクト上に配置されたオブジェクトを、第3軸及び第4軸を有するスクリーン座標系が設定された画面上に表示させるステップと、
第1ユーザ操作を検出するステップと、
前記第1ユーザ操作が検出されている間、該第1ユーザ操作に応じた前記画面上の第1位置及び第2位置を検出するステップと、
検出された前記第1ユーザ操作に応じて、前記オブジェクトを前記仮想空間内で前記オブジェクトに対して相対的に移動させる第1移動ステップと、を含み、
前記第1移動ステップにおいて、前記オブジェクトの移動速度の前記第1軸方向成分である第1速度成分は、前記第1位置と前記第2位置との間の長さの前記第3軸方向成分に応じて定められ、前記オブジェクトの移動速度の前記第2軸方向成分である第2速度成分は、前記第1位置と前記第2位置との間の長さの前記第4軸方向成分に応じて定められ、
前記第1位置と前記第2位置との間の長さの前記第3軸方向成分が所定値であるときの前記第1速度成分と、前記第1位置と前記第2位置との間の長さの前記第4軸方向成分が前記所定値であるときの前記第2速度成分とが異なる、制御方法。
[9]
ゲームを実行する情報処理装置であって、
画面を表示する表示部と、
制御部と、を備え、
前記制御部は、
第1軸及び第2軸を有するワールド座標系が設定された仮想空間内のフィールドオブジェクト上に配置されたオブジェクトを、第3軸及び第4軸を有するスクリーン座標系が設定された画面上に表示させ、
第1ユーザ操作を検出し、
前記第1ユーザ操作が検出されている間、該第1ユーザ操作に応じた前記画面上の第1位置及び第2位置を検出し、
検出された前記第1ユーザ操作に応じて、前記オブジェクトを前記仮想空間内で前記オブジェクトに対して相対的に移動させる移動処理を実行し、
前記移動処理において、前記オブジェクトの移動速度の前記第1軸方向成分である第1速度成分は、前記第1位置と前記第2位置との間の長さの前記第3軸方向成分に応じて定められ、前記オブジェクトの移動速度の前記第2軸方向成分である第2速度成分は、前記第1位置と前記第2位置との間の長さの前記第4軸方向成分に応じて定められ、
前記第1位置と前記第2位置との間の長さの前記第3軸方向成分が所定値であるときの前記第1速度成分と、前記第1位置と前記第2位置との間の長さの前記第4軸方向成分が前記所定値であるときの前記第2速度成分とが異なる、情報処理装置。