(58)【調査した分野】(Int.Cl.,DB名)
前記表示制御ステップは、第1投影法により表される前記第1オブジェクトと、第2投影法により表される前記第2オブジェクトとを含む画像を、前記表示媒体に表示させる制御を実行する、
請求項1乃至6のうち何れか1項に記載の情報プログラム。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について、図面を用いて説明する。
【0011】
なお、以下において、単に「画像」と呼ぶ場合には、「動画像」と「静止画像」との両方を含むものとする。
また、「動画像」には、次の第1処理乃至第3処理の夫々により表示される画像を含むものとする。
第1処理とは、平面画像(2D画像)におけるオブジェクト(例えばゲームキャラクタ)の夫々の動作に対して、複数枚からなる一連の静止画像を時間経過と共に連続的に切り替えて表示させる処理をいう。具体的には例えば、2次元アニメーション、いわゆるパラパラ漫画的な処理が第1処理に該当する。
第2処理とは、立体画像(3Dモデルの画像)におけるオブジェクト(例えばゲームキャラクタ)の夫々の動作に対応するモーションを設定しておき、時間経過と共に当該モーションを変化させて表示させる処理をいう。具体的には例えば、3次元アニメーションが第2処理に該当する。
第3処理とは、オブジェクト(例えばゲームキャラクタ)の夫々の動作に対応した映像(即ち動画)を準備しておき、時間経過と共に当該映像を流していく処理をいう。
【0012】
図1は、本発明の一実施形態に係るプレイヤー端末1のハードウェア構成を示すブロック図である。
【0013】
プレイヤー端末1は、スマートフォン等で構成される。
プレイヤー端末1は、CPU(Central Processing Unit)21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23と、バス24と、入出力インターフェース25と、タッチ操作入力部26と、表示部27と、入力部28と、記憶部29と、通信部30と、ドライブ31と、を備えている。
【0014】
CPU21は、ROM22に記録されているプログラム、又は、記憶部29からRAM23にロードされたプログラムに従って各種の処理を実行する。
RAM23には、CPU21が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【0015】
CPU21、ROM22及びRAM23は、バス24を介して相互に接続されている。このバス24にはまた、入出力インターフェース25も接続されている。入出力インターフェース25には、タッチ操作入力部26、表示部27、入力部28、記憶部29、通信部30及びドライブ31が接続されている。
【0016】
タッチ操作入力部26は、例えば表示部27に積層される静電容量式又は抵抗膜式(感圧式)の位置入力センサにより構成され、タッチ操作がなされた位置の座標を検出する。
ここで、タッチ操作とは、タッチ操作入力部26に対する物体の接触又は近接の操作をいう。タッチ操作入力部26に対して接触又は近接する物体は、例えばプレイヤーの指やタッチペン等である。なお、以下、タッチ操作がなされた位置を「タッチ位置」と呼び、タッチ位置の座標を「タッチ座標」と呼ぶ。
表示部27は、液晶等のディスプレイにより構成され、ゲームに関する画像等、各種画像を表示する。
このように、本実施形態では、タッチ操作入力部26と表示部27とにより、タッチパネルが構成されている。
なお、本明細書で「表示媒体」と呼ぶ場合、単に表示部27を意味せず、タッチ操作入力部26と表示部27とから構成される「タッチパネル」を意味する。
【0017】
ここで、タッチパネルにおけるタッチ操作の種類としては、例えば、スワイプとフリックが存在する。
ただし、スワイプもフリックも、表示媒体への物体の接触又は近接が開始された第1状態から、表示媒体への接触又は近接が維持されて物体の位置が変化する第2状態(タッチ位置が変化する第2状態)を経て、表示媒体への物体の接触又は近接が解除される第3状態(物体が表示媒体から離間する第3状態)まで至る一連の操作である点は変わらない。そこで、本明細書では、このような一連の操作をまとめて「スワイプ」と呼ぶことにする。
換言すると、本明細書でいう「スワイプ」は、一般的に呼ばれるスワイプの他、上述のフリック等も含まれる広義な概念である。
【0018】
入力部28は、各種ハードウェア釦等で構成され、プレイヤーの指示操作に応じて各種情報を入力する。
記憶部29は、DRAM(Dynamic Random Access Memory)等で構成され、各種データを記憶する。
通信部30は、図示せぬインターネットを含むネットワークを介して他の装置(図示せぬサーバや図示せぬ他のプレイヤー端末)との間で行う通信を制御する。
【0019】
ドライブ31は、必要に応じて設けられる。ドライブ31には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア32が適宜装着される。ドライブ31によってリムーバブルメディア32から読み出されたプログラムは、必要に応じて記憶部29にインストールされる。また、リムーバブルメディア32は、記憶部29に記憶されている各種データも、記憶部29と同様に記憶することができる。
【0020】
このような
図1のプレイヤー端末1の各種ハードウェアと各種ソフトウェアとの協働により、プレイヤー端末1で3Dゲームの実行が可能になる。
例えば本実施形態では、
図2に示すような画像がタッチパネル(表示媒体)に表示される3Dゲームが、プレイヤー端末1で実行可能になる。
即ち、
図2は、
図1のプレイヤー端末1に表示される3Dゲームの実行画面41の一例を示している。
【0021】
図2に示す3Dゲームでは、所定のグローバル座標系で構築される仮想的な3次元空間(以下、単に「仮想空間」と呼ぶ)が、ゲーム空間として用いられている。
本実施形態では、3Dゲームには様々な3次元形状のオブジェクトが用いられるが、各オブジェクトは、夫々個別のローカル座標系が設定されており、各ローカル座標系の座標がグローバル座標に変換されて仮想空間に配置されている。
この仮想空間内において、仮想の3次元形状のキャラクタCが移動する。即ち、当該3Dゲームにおける操作対象のオブジェクトが、キャラクタCである。
【0022】
本実施形態では、このキャラクタCの移動(仮想空間内のグローバル座標系における座標変化)を操作するための仮想的なコントローラとして、回転コントローラRCが採用されている。
回転コントローラRCは、仮想の球体状のオブジェクトであり、
図2に示すように、仮想空間内に表示される。
回転コントローラRCにおいては、プレイヤーからの所定の指示に応じて、ローカル座標系における回転に関する1種以上の量が変化する。ここで、変化対象の量は、回転に関するものであれば特に限定されないが、本実施形態では、回転量、回転方向、及び回転速度が採用されている。
また、回転コントローラRCに対するプレイヤーからの所定の指示の手法も、タッチ操作であれば特に限定されないが、本実施形態ではスワイプが採用されている。
【0023】
なお、
図2に示すボタンB1乃至B4は、キャラクタCに対して、回転コントローラRCによる指示以外の指示を与えるためのソフトウェアボタンである。本実施形態では、ボタンB1乃至B4に対するプレイヤーからの所定の指示の手法としては、タップ(指等の押下操作)が採用されている。
【0024】
ここで図示はしないが、未だタッチ操作がなされていない初期状態においては、回転コントローラRCはプレイヤーが視認可能な状態になされていないものとする。
この初期状態において、タッチパネルにおけるボタンB1乃至B4が表示されている以外の領域に対してタッチ操作がなされると、そのタッチ位置を平面上の中心或いは重心として回転コントローラRCが表示される。即ち、プレイヤーにとっては、タッチ位置に対応する仮想空間内の位置に、回転コントローラRCがあたかも出現したように視認される。
【0025】
ここで、タッチ操作の後タッチ位置が略変化せずにに解除されると、即ちプレイヤーの指等が位置をほぼ変えずにタッチパネルから離間されると、タップとして認識される。この場合、回転コントローラRCは静止状態のまま表示され続ける。
【0026】
一方、プレイヤーの指等がタッチパネルから離れないでタッチ操作が解除されないままにタッチ位置が変化すると、最初のタッチ操作はスワイプの第1状態として取り扱われて、タッチ位置が変化するスワイプの第2状態が検出される。
この場合、回転コントローラRCは自転を開始する。その自転の方向は、所定の時間間隔において夫々検出されるタッチ位置の変化方向、即ちスワイプの方向となる。このスワイプの方向は、キャラクタCに対する移動方向の指示としても与えられ、当該指示に従ってキャラクタCが方向転換して移動する。
即ち、プレイヤーによるスワイプの方向(タッチ位置の変化方向)に回転コントローラRCが自転すると共に、当該回転コントローラRCと連動するように、仮想空間内において当該スワイプの方向にキャラクタCが移動する。
【0027】
さらに、本実施形態では、所定の時間間隔において夫々検出されるタッチ位置の変化量(スワイプの量)に応じて、回転コントローラRCの自転量が変化すると共に、当該回転コントローラRCと連動するように、キャラクタCの移動量も変化する。
また、所定の時間間隔において夫々検出されるタッチ位置の変化速度(スワイプの速度)に応じて、回転コントローラRCの自転速度が変化すると共に、当該回転コントローラRCと連動するように、キャラクタの移動速度も変化する。
【0028】
ここで、キャラクタCについては、指示操作(スワイプ)によって、グローバル座標系における量(移動方向、移動量、移動速度等)が少なくとも変化する。ここで、「少なくとも」と記載したのは、キャラクタCについては、グローバル座標系における量の変化と共に、ローカル座標系の量(例えば姿勢や角度等)が変化する場合もあるからである。ただし、以下便宜上、キャラクタCの移動とは、グローバル座標系における座標変化を意味するものとして説明する。
これに対して、回転コントローラRCについては、自転と記載しているように、回転コントローラRCに対する指示操作(スワイプ)によって、ローカル座標系における量(回転方向、回転量、回転速度等)が変化する。
つまり、
図2の例では、回転コントローラRCは、キャラクタCを操作するための疑似的なトラックボールとして用いられている。即ち、プレイヤーは、あたかも現実のトラックボールを自転操作するかのように、スワイプをすることで、当該回転コントローラをその中心まわりに回転、つまり自転させ、その自転に連動するようにキャラクタCを仮想空間内で移動させることができる。
【0029】
ここで、現実世界ではプレイヤーは弾くようにトラックボールから手を離す操作をよく行う。現実のトラックボールは、プレイヤーの手が離されても、ある程度惰性で自転を継続する。その際、プレイヤーの手の動きが速い程、トラックボールの自転速度も速くなる。ただし、現実世界では摩擦があるため、トラックボールの自転速度は徐々に減速していき、最終的にはその自転は停止する。
【0030】
本実施形態では、このような現実のトラックボールの動きを模擬すべく、タッチ位置が変化しているスワイプの第2状態から、プレイヤーの指等がタッチパネルから離間するスワイプの第3状態(スワイプの終了)に移行すると、当該第3状態は、現実のトラックボールからプレイヤーの手が離された状態と等価なものとして取り扱われる。
即ち、スワイプの終了の検出時点以前の所定時点において検出されたタッチ位置の変化速度に基づいて、回転コントローラRCの自転速度が決定される。そして、決定された自転速度で、回転コントローラRCが自転する。その後、回転コントローラRCの自転速度は徐々に減少していき、最終的にはその自転は停止する。
【0031】
なお、スワイプの第3状態(スワイプの終了)の検出に伴うキャラクタCの移動指示については、3Dゲームの内容に応じて任意の設計が可能である。
例えば、スワイプの第3状態(スワイプの終了)の検出時点、キャラクタCの移動指示は解除されたものとして、キャラクタCは仮想空間内で停止状態になるようにしてもよい。
また例えば、スワイプの第3状態(スワイプの終了)の検出時点ではキャラクタCの移動指示は解除されずに、回転コントローラRCの自転が終了する等の所定タイミングまで移動指示が継続するようにしてもよい。
【0032】
以上まとめると、プレイヤーは、あたかも現実のトラックボールを操作するような感覚で、タッチパネル上の回転コントローラRCに対してスワイプを行うことができる。
この場合、当該回転コントローラRCはあたかも現実のトラックボールと同様の自転運動をすると共に、その自転運動に連動してキャラクタCも仮想空間内を移動する。即ち、プレイヤーは、操作感覚のみならず視覚的にも、現実のトラックボールに対する操作をした場合と同様の体験をすることができる。
【0033】
さらに、タッチパネルにおける回転コントローラRCの表示位置は、特に限定されず、例えば各種ボタンB1乃至B4のように固定位置でもよい。ただし、本実施形態では、回転コントローラRCの表示位置は、上述のようにタッチ操作の開始位置(タップ操作又はスワイプの第1状態のタッチ位置)となる。これにより、プレイヤーは、タッチパネルの所望の位置にタッチ操作をすることで、回転コントローラRCをタッチパネル内の所望の位置に登場させることが容易にできる。
【0034】
以上説明した回転コントローラRCとキャラクタCとの連動は、プレイヤー端末1におけるハードウェアとソフトウェアの協働により実現される。この場合、プレイヤー端末1は、例えば
図3に示す機能的構成を有することができる。
【0035】
図3に示すように、回転コントローラRCとキャラクタCとの連動が可能となるように、プレイヤー端末1のCPU21においては、操作検出部51と、タッチ位置保持部52と、表示形態決定部53と、表示制御部54とが機能する。
また、記憶部29の一領域として、ボタン格納部71と、回転コントローラ格納部72と、キャラクタ格納部73と、背景等格納部74とが設けられている。
なお、図示はしないが、前提として、回転コントローラRCとキャラクタCとが連動する3Dゲームについて、その実行を制御する機能ブロック(ゲーム実行部)がCPU21において機能しているものとする。
【0036】
操作検出部51は、所定の時間間隔毎に、タッチ操作入力部26におけるタッチ操作の有無を検出し、タッチ操作が有った場合にはそのタッチ位置を検出する。
タッチ位置保持部52は、操作検出部51により最新に検出されたタッチ位置を含む、所定の個数のタッチ位置を保持する。
【0037】
ここで、「所定の時間間隔」毎に検出される複数のタッチ位置は、上述したように、タッチ位置の変化方向、変化量、及び変化速度を演算するために用いられる。
即ち、タッチ位置の検出の「所定の時間間隔」は、これらの演算が可能であれば、特に限定されない。ただし、本実施形態では、タッチパネルにフレームが表示される毎にタッチ位置が検出されるものとし、「所定の時間間隔」は、連続して表示される2つのフレームの時間間隔であるものとする。
即ち、本実施形態では、タッチ位置の変化方向等は、最新フレームにおけるタッチ位置と、当該最新フレームの1つ前のフレームにおけるタッチ位置との差分に基づいて、決定されるものとする。
ただし、スワイプの終了時点、即ちユーザの指等がタッチパネルから離間される第3状態の検出時点では、タッチ位置は検出されない。そこで、スワイプの終了時点には、最新フレームからみて1つ前のフレームと、さらにその1つ前のフレームとの差分により、タッチ位置の変化速度が求められるものとする。そして、このタッチ位置の変化速度に基づいて、上述の回転コントローラRCの自転速度が決定されるものとする。
つまり、本実施形態では、このようなスワイプの終了時点の処理を考慮して、最新のフレームを含めて3フレーム(若しくは3回)分のタッチ位置が、タッチ位置保持部52に少なくとも保持されている。
【0038】
表示形態決定部53は、タッチパネルに表示されるゲームの実行画面における各種表示形態を決定するものであり、ボタン表示形態決定部61と、回転コントローラ表示形態決定部62と、キャラクタ表示形態決定部63と、仮想空間配置部64と、投影部65とを備えている。
【0039】
ボタン表示形態決定部61は、ボタン格納部71に格納されたボタンB1乃至B4(
図2)の各オブジェクトを取得し、これらボタンB1乃至B4がタッチパネルに表示される際の各種表示形態を決定する。
【0040】
回転コントローラ表示形態決定部62は、回転コントローラ格納部72に格納された回転コントローラRCのオブジェクトを取得し、当該回転コントローラRCがタッチパネルに表示される際の各種表示形態を決定する。
【0041】
例えば、回転コントローラ表示形態決定部62は、タッチ操作の開始が検出されたとき、即ちタップ操作又はスワイプの第1状態が検出されたとき、その検出時点のタッチ位置を、当該回転コントローラRCの表示位置(重心等の配置位置)として決定する。なお、回転コントローラRCの表示位置は、本実施形態では、仮想空間のグローバル座標系で管理されるものとする。
【0042】
例えば、回転コントローラ表示形態決定部62は、所定の時間間隔において夫々検出されるタッチ位置の変化量に基づいて、回転コントローラRCのローカル座標系における回転量を決定する。
具体的には本実施形態では、最新のフレームとその1つ前のフレームにおいて夫々検出された2つのタッチ位置が、タッチ位置保持部52に保持されている。そこで、回転コントローラ表示形態決定部62は、最新のフレームとその1つ前のフレームにおいて夫々検出された2つのタッチ位置の差分に基づいて、タッチ位置の変化量を求める。そして、回転コントローラ表示形態決定部62は、当該タッチ位置の変化量に基づいて、回転コントローラRCのローカル座標系における回転量を決定する。
【0043】
例えば、回転コントローラ表示形態決定部62は、所定の時間間隔において夫々検出されるタッチ位置の変化方向に基づいて、回転コントローラRCのローカル座標系における回転方向を決定する。
具体的には本実施形態では、回転コントローラ表示形態決定部62は、最新のフレームとその1つ前のフレームにおいて夫々検出された2つのタッチ位置の差分に基づいて、タッチ位置の変化方向を求める。そして、回転コントローラ表示形態決定部62は、当該タッチ位置の変化方向に基づいて、回転コントローラRCのローカル座標系における回転方向を決定する。
【0044】
例えば、回転コントローラ表示形態決定部62は、所定の時間間隔において夫々検出されるタッチ位置の変化速度に基づいて、回転コントローラRCのローカル座標系における回転速度を決定する。
具体的には本実施形態では、スワイプの第2状態の場合、即ちタッチ位置が変化している場合、回転コントローラ表示形態決定部62は、最新のフレームとその1つ前のフレームにおいて夫々検出された2つのタッチ位置の差分に基づいて、タッチ位置の変化速度を求める。そして、回転コントローラ表示形態決定部62は、当該タッチ位置の変化速度に基づいて、回転コントローラRCのローカル座標系における回転速度を決定する。
これに対して、スワイプが終了した場合、即ちプレイヤーの指等がタッチパネルから離間されてスワイプの第3状態が検出された場合には、回転コントローラ表示形態決定部62は、最新のフレームからみて1つ前のフレームと、さらにその1つ前のフレーム(最新のフレームからみて2つ前のフレーム)とにおいて夫々検出された2つのタッチ位置の差分に基づいて、タッチ位置の変化速度を求める。そして、回転コントローラ表示形態決定部62は、当該タッチ位置の変化速度に基づいて、回転コントローラRCのローカル座標系における回転速度を決定する。
【0045】
キャラクタ表示形態決定部63は、キャラクタ格納部73に格納されたキャラクタのオブジェクトを取得し、当該キャラクタCがタッチパネルに表示される際の各種表示形態を決定する。
【0046】
例えば、キャラクタ表示形態決定部63は、所定の時間間隔において夫々検出されるタッチ位置の変化量に基づいて、キャラクタCのグローバル座標系における移動量(グローバル座標系における移動ベクトルの長さ)を決定する。
【0047】
具体的には本実施形態では、最新のフレームとその1つ前のフレームにおいて夫々検出された2つのタッチ位置が、タッチ位置保持部52に保持されている。そこで、キャラクタ表示形態決定部63は、最新のフレームとその1つ前のフレームにおいて夫々検出された2つのタッチ位置の差分に基づいて、タッチ位置の変化量を求める。
キャラクタ表示形態決定部63は、当該タッチ位置の変化量に基づいて、キャラクタのグローバル座標系における移動量を決定する。
【0048】
例えば、キャラクタ表示形態決定部63は、所定の時間間隔において夫々検出されるタッチ位置の変化方向に基づいて、キャラクタCのグローバル座標系における移動方向(グローバル座標系における移動ベクトルの向き)を決定する。
【0049】
具体的には本実施形態では、キャラクタ表示形態決定部63は、最新のフレームとその1つ前のフレームにおいて夫々検出された2つのタッチ位置の差分に基づいて、タッチ位置の変化方向を求める。
キャラクタ表示形態決定部63は、当該タッチ位置の変化方向に基づいて、キャラクタCのグローバル座標系座標系における回転方向を決定する。
【0050】
例えば、キャラクタ表示形態決定部63は、所定の時間間隔において夫々検出されるタッチ位置の変化速度に基づいて、キャラクタCのグローバル座標系における移動速度を決定する。
【0051】
具体的には本実施形態では、スワイプの第2状態の場合(タッチ位置が変化している場合)、キャラクタ表示形態決定部63は、最新のフレームとその1つ前のフレームにおいて夫々検出された2つのタッチ位置の差分に基づいて、タッチ位置の変化速度を求める。
キャラクタ表示形態決定部63は、当該タッチ位置の変化速度に基づいて、キャラクタCのグローバル座標系における移動速度を決定する。
【0052】
これに対して、スワイプの第3状態の場合(プレイヤーの指等がタッチパネルにから離間されて、スワイプが終了した場合)、キャラクタ表示形態決定部63は、最新のフレームからみて、その1つ前のフレームとさらにその1つ前のフレームにおいて夫々検出された2つのタッチ位置の差分に基づいて、タッチ位置の変化速度を求める。
キャラクタ表示形態決定部63は、当該タッチ位置の変化速度に基づいて、キャラクタCのグローバル座標系における移動速度を決定する。
【0053】
なお、ここでは便宜上、タッチ位置の変化量、変化方法、及び変化速度は、回転コントローラ表示形態決定部62とキャラクタ表示形態決定部63との夫々で個別に演算されるように説明した。
しかしながら、本実施形態では上述の如く、同一のタッチ操作に対して、回転コントローラRCとキャラクタCとは連動する(連動しているようにプレイヤーに視認される)。
そこで、タッチ位置の変化量、変化方法、及び変化速度は、回転コントローラ表示形態決定部62とキャラクタ表示形態決定部63とのうち、一方で演算されて、その演算結果が他方に通知されるようにしてもよい。
【0054】
また、キャラクタ表示形態決定部63は、必要に応じて、キャラクタCのローカル座標系内での変化(例えばキャラクタC自体のモーション変化や回転等)を決定する。
【0055】
仮想空間配置部64は、各種オブジェクトを、決定された表示形態に対応するように、グローバル座標系の仮想空間内に配置させる。
ここでいうオブジェクトには、上述したように、ボタンB1乃至B4、回転コントローラRC、及びキャラクタCの各オブジェクトの他に、背景等格納部74に格納される背景等を構成する各種オブジェクトも含まれる。
【0056】
ここで、3次元の仮想空間に置かれたオブジェクトを2次元の表示面(タッチパネル)に表示させるためには、当該オブジェクトを2次元に投影する必要がある。換言すると、当該仮想空間内にある仮想のカメラが当該オブジェクトを撮影した様子を、タッチパネルに表示させる必要がある。
そこで、投影部65は、所定の投影手法に従って、仮想空間内の各オブジェクトを2次元に投影する。
【0057】
投影手法は、特に限定されないが、本実施形態では、キャラクタCや背景等のオブジェクトに対しては一般的な透視投影が採用されている。一方、回転コントローラRCやボタンB1乃至B4のオブジェクトに対しては平行投影が採用されている。
【0058】
透視投影とは、いわゆる遠近法を用いた投影手法であり、肉眼でみた場合と同じような投影結果となる投影手法である。なお、透視投影は、「中心投影」や「パース」とも呼ばれている。
透視投影により投影されたオブジェクトは、仮想的なカメラの位置(視点)から遠くに位置する場合には小さくタッチパネルに表示され、仮想的なカメラの位置(視点)から近くに位置する場合には大きくタッチパネルに表示される。
【0059】
これに対して、平行投影とは、同一の大きさのオブジェクトを、3次元の仮想空間内の位置によらず同一の大きさで投影する投影方法をいう。
平行投影が採用されたオブジェクトは、仮想的なカメラの位置(視点)から遠くに位置する場合でも近くに位置する場合でも、常に同一の大きさでタッチパネルに表示される。
【0060】
ここで、回転コントローラRCとキャラクタCとの投影法は同一にすることもできる。
【0061】
しかしながら、透視投影で統一された場合には、タッチパネルにおける回転コントローラRCの表示上の大きさ(表示面積)が変化してしまう。このため、回転コントローラRCを、3Dゲームの仮想的なコントローラ(模擬的なトラックボール)として用いることは不適になる。
即ち、回転コントローラRCを3Dゲームの仮想的なコントローラ(模擬的なトラックボール)として用いるためには、タッチパネルにおける回転コントローラRCの表示上の大きさは、変化せずに常に一定であることが要求される。
透視投影で統一された場合に当該要求に応えるためには、回転コントローラRCと視点(カメラの位置)との距離が常に一定になるよう演算して、その演算結果に基づいて回転コントローラRCの座標を決定する必要があるため、処理負担が増大する。
【0062】
一方、平行投影で統一した場合、このような処理負担の増大は解消されるものの、キャラクタC等のゲーム上の仮想空間に存在すべきオブジェクトに対して、遠近法を採用できなくなる。つまり、3Dゲームを実現すること自体が非常に困難になってしまう。
【0063】
以上のことから本実施形態では、回転コントローラRCの投影法(カメラ)としては平行投影が採用されている。一方、その操作対象のキャラクタCの投影法(カメラ)としては透視投影が採用されている。
【0064】
なお、本実施形態では、仮想的なカメラの位置(視点)は、少なくともキャラクタCの投影法(カメラ)に従った投影では変化する。
例えば本実施形態では、キャラクタCの後方の所定距離だけ離間した位置が、視点とされている。この場合、キャラクタCの移動に連動して視点も移動することになる。具体的には例えば、プレイヤーが右方向にスワイプすると、キャラクタCの移動方向も右方向に転換するので、同様に視点も右方向に転換する。
【0065】
表示制御部54は、投影部65の投影結果を示す2次元の画像を、フレーム単位で、タッチパネル(正確には表示部27)に表示させる制御を実行する。
即ち、回転コントローラRCの自転とキャラクタCの仮想空間内の移動とがプレイヤーのスワイプに応じて連動する画像、具体的には例えば上述した
図2のゲームの実行画面41が、タッチパネルに表示される。
【0066】
次に、
図4を参照して、
図1のプレイヤー端末1が実行する処理のうち、3Dゲーム実行中に実行画面(例えば
図2のゲームの実行画面41)を表示するための一連の処理(以下、「ゲーム表示処理」と呼ぶ)について説明する。
即ち、
図4は、ゲーム表示処理の流れの一例を説明するフローチャートである。
ゲーム表示処理は、ゲーム実行開始を契機として開始される。
【0067】
ステップS1において、
図3の表示制御部54は、キャラクタCを含むゲーム空間(仮想空間)を、タッチパネル(正確には表示部27)に表示させる。
なお、ステップS1の段階では、回転コントローラRCは仮想空間内に含まれていないものとする。
【0068】
ステップS2において、操作検出部51は、タッチ操作を受付けたか否かを判定する。
ユーザの指等がタッチパネルに接触又は近接していない状態では、ステップS2においてNOであると判定されて、処理はステップS12に進む。
ステップS12において、操作検出部51等は、処理の終了が指示されたか否かを判定する。処理の終了の指示は、特に限定されないが、例えばここではゲームの終了指示が採用されているものとする。
即ち、ゲームの終了指示がなされた場合、ステップS12においてYESであると判定されて、ゲーム表示処理は終了となる。
これに対して、ゲームの終了指示が未だなされていない場合、ステップS12においてNOであると判定されて、処理はステップS2に戻され、それ以降の処理が繰り返される。
即ち、ゲームの終了指示が未だなされておらず、ユーザの指等がタッチパネルに接触又は近接していない状態では、ステップS2NO及びステップS12NOのループ処理が繰り返される。
【0069】
当該ループ処理中においてユーザの指等がタッチパネルに接触又は近接すると、タッチ操作が受け付けられ、ステップS2においてYESであると判定されて、処理はステップS3に進む。
【0070】
ステップS3において、操作検出部51は、ステップS2において受け付けられたタッチ位置は、ボタン位置であるか否かを判定する。
ボタン位置とは、ボタン(
図2の例ではボタンB1乃至B4)が配置されたタッチパネル上の領域をいう。
所定ボタン(
図2の例ではボタンB1乃至B4のうち何れか)がタップされた場合には、ステップS3においてYESであると判定されて、処理はステップS4に進む。
ステップS4において、CPU21(図示せぬゲーム実行部等)は、ボタン実行処理を実行する。ボタン実行処理とは、タップされたボタンに割り付けられた機能を発揮させる処理をいう。
ボタン実行処理が実行されると、処理はステップS12に進む。
【0071】
これに対して、ボタン位置以外の位置にタッチ操作がなされた場合、ステップS3においてYESであると判定され、処理はステップS5に進む。
【0072】
ステップS5において、表示制御部54は、回転コントローラRCをタッチパネルに表示させる。
なお本実施形態では、回転コントローラRCの表示位置は、ステップS2の処理で受け付けられたタッチ位置となる。
【0073】
ステップS6において、操作検出部51は、タッチ位置が変化したか否かを判定する。
例えばステップS2において受け付けられたタッチ操作がタップの場合、ステップS6においてNOであると判定されて、処理はステップS12に進む。
【0074】
これに対して、タッチ位置が変化した場合とは、スワイプの第2状態が検出された場合を意味する。このような場合、ステップS6においてYESであると判定されて、処理はステップS7に進む。
ステップS7において、表示形態決定部53は、回転コントローラRCとキャラクタCとの連動した表示形態を決定する。
ステップS8において、表示制御部54は、回転コントローラRCとキャラクタCを、ステップS7において決定された表示形態でタッチパネルに表示させる。
なお、ここでいう表示形態とは、回転コントローラRCの場合には、ローカル座標系における回転方向、回転量、及び回転速度を意味する一方、キャラクタCの場合には、グローバル座標系における移動方向、移動量、及び移動速度を意味する。
【0075】
ステップS9において、操作検出部51は、タッチ操作が解除されたか否かを判定する。
【0076】
タッチ操作が継続している場合、即ちスワイプの第2状態が継続している場合、ステップS9においてNOであると判定されて、処理はステップS6に戻され、それ以降の処理が繰り返される。
即ち、タッチ位置が変化し続けている場合(スワイプの第2状態が継続している場合)、ステップS6乃至S9のループ処理が繰り返され、回転コントローラRCの自転とキャラクタCの仮想空間内の移動とがスワイプに応じて連動する画像、具体的には例えば上述した
図2のゲームの実行画面41が、タッチパネルに表示される。
【0077】
これに対して、タッチ操作が解除された場合、即ちスワイプの終了を示すスワイプの第3状態が検出された場合、ステップS9においてYESであると判定され、処理はステップS10に進む。
ステップS10において、表示形態決定部53は、回転コントローラRCの表示形態を決定する。なお、ここでいう表示形態とは、回転コントローラRCの回転速度を意味する。
ステップS11において、表示制御部54は、タッチパネルに対して、ゲーム空間(仮想空間)内のキャラクタRCの移動を停止させる表示をすると共に、回転コントローラRCを、ステップS12において決定された表示形態で表示させる。
その後処理はステップS12に進む。
【0078】
以上本発明の一実施形態について説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【0079】
例えば上述の実施形態では、所定の指示操作により連動するオブジェクトは、回転コントローラRCとキャラクタCとされたが、特にこの組に限定されない。
ここで、回転コントローラRCに対応するオブジェクトを「第1オブジェクト」と呼び、キャラクタCに対応するオブジェクトを「第2オブジェクト」と呼ぶものとする。
この場合、第1オブジェクトと第2オブジェクトとは、次のような関係を有するものであれば足り、夫々任意のオブジェクトを採用することができる。
即ち、第1オブジェクトは、所定の指示に応じてローカル座標系における回転に関する1種以上の量が変化する仮想の3次元形状の回転体を示すオブジェクトであれば足りる。
第2オブジェクトは、当該所定の指示(同一の指示)に応じて1種以上の量が変化するオブジェクトであれば足りる。
即ち、第1オブジェクトと第2オブジェクトとは、同一の指示操作により連動して変化するものであり、前者の変化量は、ローカル座標系における回転に関する1種以上の任意の量であって、後者の変化量は、1以上の任意の量である。
つまり、第2オブジェクトを操作対象のオブジェクトとする必要は特に無く、第1オブジェクトを仮想的なコントローラとする必要も特にない。
ただし、3Dゲームに適用する場合には、第2オブジェクトを操作対象のコンテンツとして、第1オブジェクトを仮想的なコントローラとすることで、プレイヤーの操作性が増すため好適である。
【0080】
具体的には、第1オブジェクトは、例えば
図5に示すような各種各様な回転体を示すオブジェクトを採用することができる。
図5(A)の第1オブジェクトRC1は、上述の実施形態の回転コントローラRCと同様に、球体状のオブジェクトである。
図5(B)の第1オブジェクトRC2は、ワイン樽状のオブジェクトである。
図5(C)の第1オブジェクトRC3は、円柱状のオブジェクトである。
図5(D)の第1オブジェクトRC4は、円錐状のオブジェクトである。
このように、第1オブジェクトは、実空間上で回転可能な回転体を模した仮想の3次元形状であれば足り、
図5(D)の円錐のように対称的な形状である必要も特にない。
ただし、第1オブジェクトを、上述の実施形態の回転コントローラRCのように仮想的なコントローラとして用いる場合、球体状であると好適である。多方向の入力表現への対応が容易に可能となるからである。
また、
図5に示すように、第1オブジェクトに対してテクスチャを貼り付けて模様をつけると、当該第1オブジェクトの回転の様子がプレイヤーに明確に伝わるため好適である。
【0081】
ここで、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、
図3の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が情報処理システムに備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に
図3の例に限定されない。また、機能ブロックの存在場所も、
図3に特に限定されず、任意でよい。
具体的には例えば、
図3に示す各機能ブロックは、上述の実施形態ではネイティブアプリケーションとしてプレイヤー端末1に備えられていたが、HTMLとJavaScript(登録商標)を用いてWebアプリケーションとして実装することで、図示せぬサーバ等に備えることもできる。
また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【0082】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えばサーバの他汎用のスマートフォンやパーソナルコンピュータであってもよい。
【0083】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図示せぬリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。
【0084】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
【0085】
換言すると、本発明が適用される情報処理プログラムは、上述の
図3の実施形態としての情報処理システムを含め、次のような構成を有する各種各様の実施形態を取ることができる。
即ち、本発明が適用される情報処理プログラムは、
画像を表示媒体(例えば
図3のタッチ操作入力部76及び表示部27からなるタッチパネル)に表示させる制御を実行するコンピュータに、
所定の指示に応じてローカル座標系における回転に関する1種以上の量が変化する仮想の3次元形状の回転体を示す第1オブジェクト(例えば
図2の回転コントローラRC)と、当該所定の指示に応じて1種以上の量が変化する第2オブジェクト(例えば
図2のキャラクタC)とを含む画像(例えば
図2のゲームの実行画面41)を、前記表示媒体に表示させる表示制御ステップ(例えば
図3の表示制御部54が実行するステップ)と、
前記所定の指示の操作として、前記表示媒体への物体の接触又は近接の操作を検出する検出ステップ(例えば
図3の操作検出部51が実行するステップ)と、
検出された前記操作に基づいて、前記第1オブジェクトの回転に関する前記1種以上の量を決定すると共に、前記第2オブジェクトの前記1種以上の量を決定する決定ステップと(例えば
図3の表示形態決定部53が実行するステップ)、
を含む制御処理を実行させる情報処理プログラム。
【0086】
このように、第1オブジェクトと第2オブジェクトとは、同一の指示により連動して変化するものであり、前者の変化量は、ローカル座標系における回転に関する1種以上の任意の量であって、後者の変化量は、1以上の任意の量である。
そこで、第2オブジェクトを、グローバル座標系の仮想空間に配置させて、操作対象のオブジェクトとして用いることで、各種各様な3Dゲームが実現可能になる。
この場合、第1オブジェクトを、第2オブジェクトの操作用の仮想的なコントローラとして用いることができる。
これにより、プレイヤーにとっては、所定の指示を第1オブジェクトにすることで、それに連動して第2オブジェクトが移動したと実感することができる。
しかも、第2オブジェクトは、仮想の3次元形状を有しているので、3次元の仮想空間にマッチする。
このようにして、3Dゲームにとって好適な仮想的なコントローラを実現可能な技術が確立される。
【0087】
なお、上記情報処理プログラムは、あくまでも3Dゲームにとって好適な仮想的なコントローラを実現可能なものであるに過ぎず、3Dゲーム専用のものではない。即ち、上述したように、同一の指示に対して第1オブジェクトと第2オブジェクトとを連動させる任意の分野に対して、上記情報処理プログラムを適用することができる。
【0088】
ここで、前記検出ステップは、前記表示媒体に前記物体が接触又は近接している間、前記表示媒体における前記物体の位置を繰り返し検出し、
前記決定ステップは、所定の時間間隔において夫々検出される前記物体の位置の変化量に基づいて、前記第1オブジェクトのローカル座標系における回転量を決定するステップを含むようにすることができる。
また、前記決定ステップは、前記所定の時間間隔において夫々検出される前記物体の位置の変化方向に基づいて、前記第1オブジェクトのローカル座標系における回転方向を決定するステップを含むようにすることができる。
従って、所定の指示としてスワイプを採用すると、スワイプの量(タッチパネルにおける指等の移動量)やスワイプの方向(タッチパネルにおける指等の移動方向)に従って、第1オブジェクトの回転方向や回転量が変化する。
これにより、第1オブジェクトを、仮想的なトラックボール(コントローラ)として取り扱うことが可能になる。
【0089】
この場合、前記第2オブジェクトは、仮想の3次元空間内を移動するオブジェクトであり、
前記決定ステップは、さらに、前記所定の時間間隔において夫々検出される前記物体の位置の変化量に基づいて前記第2オブジェクトのグローバル座標系における移動量を決定すると共に、前記所定の時間間隔において夫々検出される前記物体の位置の変化方向に基づいて前記第2オブジェクトの移動方向を決定するステップを含むことができる。
これにより、仮想的なトラックボールとみたてた第1オブジェクトの回転量や回転方向に連動して、第2オブジェクトのグローバル座標系における移動量や移動方向も変化する。つまり、第2オブジェクトを、仮想的なトラックボール(仮想的なコントローラ)による操作対象のオブジェクトとして用いることができる。
これにより、プレイヤーは、現実のトラックボールを操作するのと同様な感覚で、第1オブジェクトに対してスワイプを行うことで、仮想空間内の第2オブジェクトを自在に移動させることができる。この場合、第1オブジェクトはあたかも現実のトラックボールと同様の自転運動をすると共に、その自転運動に連動して第2オブジェクトも仮想空間を移動する。
即ち、プレイヤーは、操作感覚のみならず視覚的にも、現実のトラックボールに対する操作時と同様の体験をすることができる。
【0090】
さらに、前記決定ステップは、前記検出ステップにおいて前記物体の前記表示媒体の接触又は近接の解除が検出されたとき、解除の検出時点以前の所定時点において検出された前記物体の位置の変化速度に基づいて、前記第1オブジェクトのローカル座標系における回転速度を決定するステップを含むようにすることができる。
前記決定ステップは、前記物体の前記表示媒体の接触又は近接の解除の状態が維持されている場合、前記第1オブジェクトの回転速度を減速させていく決定をすることができる。
これにより、プレイヤーの指等がタッチパネルから離間するスワイプの第3状態(スワイプの終了)は、現実のトラックボールからプレイヤーの手が離された状態と等価に取り扱われる。その結果、現実のトラックボールからプレイヤーの手が離された後の当該現実のトラックボールの回転の動きを模した様子が、仮想のトラックボールとしての第1オブジェクトの回転の動きとして再現可能になる。
【0091】
ここで、前記表示制御ステップは、第1投影法により表される前記第1オブジェクトと、第2投影法により表される前記第2オブジェクトとを含む画像を、前記表示媒体に表示させる制御を実行する、ことができる。
これにより、第1オブジェクトを、第2オブジェクトが存在する仮想空間内に適切に表示させることができる。
特に第1オブジェクトを仮想のコントローラ(トラックボール)として採用した場合には、第1オブジェクトの大きさは常に同一であることが望ましい。この場合、前記第1投影法は平行投影法であり、前記第2投影法は透視投影法であるようにすることができる。
【0092】
以上説明したように、本発明が適用される情報処理プログラム等の実行により、同一の所定の指示に基づいて、第1オブジェクトと第2オブジェクトとの各変化量が決定される。ここで、第1オブジェクトの変化量は、ローカル座標系における回転に関する1種以上の任意の量であって、後者の変化量は、1以上の任意の量である。
なお、本発明は、以上説明した情報処理プログラム等によらず、次のような処理を実行可能なプログラム等にも容易に適用可能である、
例えば、所定の指示(例えばプレイヤーのタッチ操作)に基づいて第1オブジェクトの変化量(例えば仮想的なコントローラの回転の動き)が決定され、当該変化量に基づいて第2オブジェクトの変化量(例えばキャラクタ等の動き等)が決定される処理を実行可能なプログラム等にも容易に適用可能である。
例えば、逆に、所定の指示(例えばプレイヤーのタッチ操作)に基づいて当該変化量に基づいて第2オブジェクトの変化量(例えばキャラクタ等の動き等)が決定され、当該変化量に基づいて第1オブジェクトの変化量(例えば仮想的なコントローラの回転の動き)が決定される処理を実行可能なプログラム等にも容易に適用可能である。
【解決手段】回転コントローラRCは、所定のタッチ操作に応じてローカル座標系における回転方向、回転量、及び回転速度が変化する、仮想の球体の回転体を示すオブジェクトである。キャラクタCは、同一のタッチ操作に応じて、仮想空間のグローバル座標系における移動方向、移動量、及び移動速度が変化する。