説明

プログラム、情報記憶媒体及び端末装置

【課題】プレーヤが直感的に方向指示を行うことができ、入力方向の判定を容易に行うことができること。
【解決手段】入力部によって入力された指示位置を取得し、過去の指示位置に基づいて、複数の方向のそれぞれに対応する方向判定領域を設定し、指示位置が属する方向判定領域に基づいて、入力方向を判定する。そして、指示位置の移動に、複数の方向それぞれに対応する方向判定領域を追従させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び端末装置に関する。
【背景技術】
【0002】
従来から、表示画面上で接触操作入力を可能にする接触検出領域(タッチパネル)を搭載した端末装置(携帯型ゲーム装置)が知られている。こうした接触操作入力を利用したゲームは、直感的な操作入力ができるとしてプレーヤから高い人気を得ている。
【0003】
このような端末装置では、接触操作(タッチ操作)によって、オブジェクトを移動させる処理を行うものがある。例えば、表示画面上に設けられた接触検出領域(タッチパネル)において検出された接触位置の移動量に基づいて、オブジェクトを移動させる処理を行うものがある(特許文献1の0173〜0177段落参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−153681号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、従来の端末装置は、プレーヤが直感的に方向指示の操作を行うことが難しく、また、入力方向が正しく判定されない場合があった。本発明は、上記課題に鑑みたものであり、プレーヤが直感的に方向指示の操作を行うことができ、更に、入力方向の判定を容易に行うことが可能なプログラム、情報記憶媒体、及び端末装置を提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明は、入力部によって指示位置が入力されている期間中に、指示位置に基づいて入力方向を判定する処理を行うプログラムであって、入力部によって入力された指示位置を取得する取得部と、過去の指示位置に基づいて、複数の方向のそれぞれに対応する方向判定領域を設定する領域設定部と、指示位置が属する方向判定領域に基づいて、入力方向を判定する入力方向判定部として、コンピュータを機能させ、前記領域設定部が、前記指示位置の移動に、前記複数の方向それぞれに対応する方向判定領域を追従させるプログラムに関する。本発明は、上記各部位を含む端末装置に関係する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【0007】
本発明は、指示位置の移動に、複数の方向それぞれに対応する方向判定領域を追従させるので、入力方向の判定を容易に行うことができる。つまり、本発明によれば、方向判定領域を指示位置の移動に追従するので、プレーヤの入力方向を瞬時に正しく判定することができ、プレーヤは直感的に入力方向の操作を行うことができる。
【0008】
(2)また、本発明のプログラム、情報記憶媒体及び端末装置は、前記取得部が、所定の周期毎に、入力された指示位置を取得し、前記領域設定部が、前記所定の周期の第N−1のタイミングで取得された指示位置に基づいて、前記複数の方向それぞれに対応する方向判定領域を設定し、前記入力方向判定部が、前記所定の周期の第Nのタイミングで取得された指示位置が属する方向判定領域に基づいて、入力方向を判定するようにしてもよい。本発明によれば、第N−1のタイミングで取得された指示位置に基づいて、複数の方向それぞれに対応する方向判定領域を設定し、第Nのタイミングで取得された指示位置が属する方向判定領域に基づいて、入力方向を判定するので、入力方向の判定について精度を上げることができる。
【0009】
(3)また、本発明のプログラム、情報記憶媒体及び端末装置は、前記領域設定部が、
第N−1のタイミングで取得された指示位置を中心に、前記複数の方向のそれぞれに対応する方向判定領域を設定するようにしてもよい。本発明によれば、N−1のタイミングで取得された指示位置を中心に、複数の方向のそれぞれに対応する方向判定領域を設定するので、入力方向の判定について更に精度を上げることができる。
【0010】
(4)また、本発明のプログラム、情報記憶媒体及び端末装置は、前記領域設定部が、第N−1のタイミングで取得された指示位置から所定距離だけ離れた位置を中心に、前記複数の方向のそれぞれに対応する方向判定領域を設定するようにしてもよい。本発明によれば、第N−1のタイミングで取得された指示位置から所定距離だけ離れた位置を中心に、前記複数の方向のそれぞれに対応する方向判定領域を設定するので、プレーヤの入力操作を簡易にすることができる。
【0011】
(5)また、本発明のプログラム、情報記憶媒体及び端末装置は、前記取得部が、表示画面上に設けられた接触検出領域において接触された接触位置を、前記指示位置として取得し、前記領域設定部が、前記接触位置の移動に、前記複数の方向それぞれに対応する方向判定領域を追従させ、前記入力方向判定部が、前記接触位置が属する方向判定領域に基づいて、入力方向を判定するようにしてもよい。ここで、接触検出領域とは、例えばタッチパネルであり、接触された接触位置とは、例えば、タッチパネルにおいて検出されたタッチ位置である。本発明によれば、接触検出領域を触れるような操作を行う場合においても、入力方向判定の精度を上げることができ、また、プレーヤは直感的に方向を指示する入力操作を行うことができる。
【0012】
(6)また、本発明のプログラム、情報記憶媒体及び端末装置は、指示位置の移動に、入力方向を示す入力方向画像を追従させて表示させる表示制御部として、コンピュータを更に機能させるようにしてもよい。本発明によれば、指示位置の移動に、入力方向を示す入力方向画像が表示されるので、プレーヤは瞬時に入力方向を認識することができる。
【0013】
(7)また、本発明のプログラム、情報記憶媒体及び端末装置は、オブジェクト空間において、前記入力方向判定部によって判定された入力方向に基づいてオブジェクトを移動させる処理を行う移動処理部として、コンピュータを更に機能させるようにしてもよい。本発明によれば、入力方向判定部によって判定された入力方向に基づいてオブジェクトを移動させる処理を行うので、プレーヤは直感的にオブジェクトの移動方向を指示することができる。
【図面の簡単な説明】
【0014】
【図1】本実施形態の端末装置の機能ブロック図の一例。
【図2】図2(A)、(B)は、本実施形態の端末装置の一例。
【図3】本実施形態の端末装置を用いて入力操作を行う様子を示す一例。
【図4】本実施形態の端末装置の表示画面の一例。
【図5】本実施形態の方向判定領域を説明するための図。
【図6】図6(A)、(B)は、本実施形態の入力方向を判定する処理を説明するための図。
【図7】本実施形態の方向判定領域と入力方向との対応関係を示す図。
【図8】図8(A)、(B)、(C)は、本実施形態の入力方向を判定する処理を説明するための図。
【図9】図9(A)、(B)、(C)は、本実施形態の入力方向を判定する処理を説明するための図。
【図10】図10(A)、(B)、(C)は、本実施形態の入力方向を判定する処理を説明するための図。
【図11】図11(A)、(B)、(C)は、本実施形態の入力方向を判定する処理を説明するための図。
【図12】図12(A)、(B)は、入力方向画像を表示させる表示制御を説明するための図。
【図13】図13(A)、(B)は、入力方向画像を表示させる表示制御を説明するための図。
【図14】本実施形態のフローチャート図。
【図15】本実施形態において、2つの判定領域を設けた場合の入力方向を判定する処理を説明するための図。
【図16】本実施形態において、移動制御を説明するための図。
【図17】本実施形態において、移動制御を説明するための図。
【図18】本実施形態の方向判定領域を説明するための図。
【発明を実施するための形態】
【0015】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0016】
1.構成
まず、図1を用いて本実施形態における端末装置10の構成について説明する。端末装置10は、例えば、携帯電話、スマートフォン、携帯端末装置、ゲーム装置、携帯型ゲーム装置、画像生成装置などである。図1は、本実施形態における端末装置10の機能ブロック図の一例である。なお、本実施形態の端末装置は、図2の構成要素(各部)の一部を省略した構成としてもよい。
【0017】
入力部160は、プレーヤが操作データを入力するためのものであり、その機能は、タッチパネル、タッチパネル型ディスプレイ、マウス、トラックボールなどにより実現できる。つまり、入力部160は、2次元の指示位置座標(x,y)を検出可能な検出部162を備えている。例えば、入力部160は、接触検出領域(タッチパネル)における、2次元の接触位置座標(x,y)を検出可能な検出部162を備えている。
【0018】
つまり、接触位置(接触位置座標、指示位置の一例)は、プレーヤの接触操作により、接触検出領域から得られる位置情報である。接触検出領域に同時に複数の接触位置が検出される場合には、いずれか1つの接触位置(先に検出された接触位置)を用いるようにしてもよい。なお、接触検出領域に複数の判定領域が存在する場合には、各判定領域において、1つの接触位置(先に検出された接触位置)を用いるようにしてもよい。ここで、判定領域とは、取得した接触位置のうち、移動制御など処理部100で処理するための接触位置を予め特定する接触検出領域上の範囲である。
【0019】
特に、本実施形態では、図2(A)(B)に示す表示画面(ディスプレイ)12が、液晶ディスプレイと、プレーヤ(操作者、ユーザ)の接触位置を検出するためのタッチパネルとが積層されたタッチパネル型ディスプレイとなっている。従って、本実施形態では、表示画面12が入力部160として機能するとともに表示部190としても機能する。なお、表示画面12への接触操作は、指先を用いて行うようにしてもよいし、タッチペンなどの入力機器を用いて行うようにしてもよい。また入力部160を、操作部の操作子(ボール)の操作方向(回転方向)を変化させるものとして機能してもよい。
【0020】
なお、入力部160は、指示位置以外の操作情報(操作信号)を入力可能なボタンやレバー、キーボード、ステアリング、マイク、加速度センサなどを備えていてもよい。
【0021】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。そして、本実施形態の記憶部170は、ワーク領域として使用される主記憶部171と、最終的な表示画像等が記憶される画像バッファ172とを含む。なお、これらの一部を省略する構成としてもよい。
【0022】
特に本実施形態の記憶部170では、取得部111において取得された接触位置、及び、判定領域、方向判定領域等を主記憶部171に記憶することができる。
【0023】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0024】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。特に本実施形態では表示部190であるディスプレイ12は、タッチパネルディスプレイを用いることによりプレーヤがゲーム操作を行う入力部160としても機能する。ここでタッチパネルとして、例えば抵抗膜方式(4線式、5線式)、静電容量方式、電磁誘導方式、超音波表面弾性波方式、赤外線走査方式などのタッチパネルを用いることができる。
【0025】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0026】
通信部196は、外部(例えばホスト装置や他の端末装置)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0027】
なお、端末装置10は、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して端末装置10を機能させる場合も本発明の範囲内に含めることができる。
【0028】
処理部100(プロセッサ)は、入力部160からの入力データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここで、ゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、プレーヤオブジェクト、敵オブジェクトなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0029】
特に、本実施形態の処理部100は、オブジェクト空間設定部110と、取得部111と、領域設定部112と、入力方向判定部113と、移動処理部114と、ゲーム演算部115と、表示制御部116と、描画部120と、音処理部130とを含む。なお、これらの一部を省略する構成としてもよい。
【0030】
オブジェクト空間設定部110は、オブジェクト(プレーヤオブジェクト、移動体、敵オブジェクト)、移動経路、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(スプライト、ビルボード、ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。具体的にはオブジェクト空間設定部110は、オブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y)或いは(X、Y、Z)にその回転角度(X、Y軸回りでの回転角度)或いは(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0031】
ここで、オブジェクト空間とは、いわゆる仮想2次元空間、仮想3次元空間の両方を含む。2次元空間とは、例えば2次元座標(X,Y)においてオブジェクトが配置される空間であり、3次元空間とは、例えば3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0032】
そしてオブジェクト空間を2次元空間とした場合には、複数のオブジェクトそれぞれについて設定された優先順位に基づいてオブジェクトを配置する。例えば、奥側にあるように見せたいオブジェクト(スプライト)から順にオブジェクトを配置し、手前側にあるように見せたいオブジェクトを重ねて配置する処理を行うことができる。
【0033】
また、描画サイズが大きなオブジェクトを画像の下方に配置し、描画サイズが小さなオブジェクトを画像の上方に配置すれば、画面の上方に対応するオブジェクト空間が奥側にあるように見せることができ、画面の下方に対応するオブジェクト空間が手前側にあるように見せることができる。
【0034】
またオブジェクト空間を3次元空間とした場合には、ワールド座標系にオブジェクトを配置し、所与の視点から見える画像であって、奥行きがあるように見える画像を生成する。この場合仮想カメラ制御部が、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
【0035】
例えば仮想カメラによりオブジェクト(例えば、キャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動処理部114で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0036】
取得部111は、プレーヤが入力部160から入力した入力情報の認識処理を行う。具体的には、本実施形態の取得部111は、入力部160によって入力された指示位置を取得する。
【0037】
例えば、取得部111は、プレーヤの接触操作(タッチ操作)を検出する接触検出領域(タッチパネル)における接触位置(2次元の接触位置座標)を指示位置として取得する。つまり、取得部111は、プレーヤが指でタッチパネルにタッチし、そのまま指を移動して最後にタッチパネルから離す操作を行う期間に相当する接触操作期間中(スライド操作期間中)における接触位置を取得する。
【0038】
また、入力情報は、マウスなどによって指示された2次元の位置座標としてもよい。かかる場合には、取得部111は、プレーヤがマウスのボタンを押し、そのままの状態でマウスを移動(ドラッグ)させて、マウスのボタンを離すまでの期間中における、マウスが指示した位置座標を取得してもよい。
【0039】
また、取得部111は、所定の周期毎に入力された指示位置を取得する。例えば、所定の周期とは1/60秒、1/30秒、1/10秒とすることができる。つまり、周期が1/30秒である場合には、1/30秒毎に指示位置を取得する。また、取得部111は、描画フレームレートと同じ周期で指示位置を取得してもよい。
【0040】
領域設定部112は、接触検出領域において方向判定領域を設定する。例えば、領域設定部112は、複数の方向のそれぞれに対応する方向判定領域を設定する。具体的には、領域設定部112は、上方向に対応する方向判定領域C1、右方向に対応する方向判定領域C2、下方向に対応する方向判定領域C3、左方向に対応する方向判定領域C4を、それぞれ判定領域A上に設定する。
【0041】
また、領域設定部112は、過去の指示位置に基づいて、方向判定領域を設定する。そして、領域設定部112は、指示位置の移動に、複数の方向それぞれに対応する方向判定領域を追従させる。なお、指示位置の移動に、複数の方向それぞれに対応する方向判定領域を追従させるとは、例えば、複数の方向それぞれに対応する方向判定領域を設定するための基準位置を指示位置の移動に追従させることである。言い換えると、タッチパネル上に設けた判定領域を分割するための基準位置(分割基準位置)を、指示位置の移動に追従させる。
【0042】
例えば、領域設定部112は、プレーヤが指でタッチパネルにタッチし、そのまま指を移動するようなスライド操作を行う場合、接触位置の移動に、各方向判定領域を追従させて設定する。つまり、領域設定部112は、指(タッチペン)等が、接触検出領域(タッチパネル)へ接触してから離れるまでの間にタッチペンとタッチパネルとの接触により生じた接触操作軌跡を辿るように(或いは接触操作軌跡から所定距離Lずれたラインを辿るように)、リアルタイムに各方向判定領域を設定する。また、マウスでボタン入力を検出し、かつ指示位置の移動(ドラッグ)を検出している場合に、マウスが指示する指示位置の移動に各方向判定領域を追従させる。
【0043】
具体的に説明すると、領域設定部112は、入力方向を判定する(所定の周期の)タイミングN(N≧2、Nは整数)において、(所定の周期の)タイミングN−1において取得した指示位置に基づいて、複数の方向のそれぞれに対応する方向判定領域を設定する。つまり、前回のタイミングで得た指示位置に基づいて、今回の方向判定領域を設定する。具体的には、前回のタイミングN−1において取得された指示位置を中心に、複数の方向のそれぞれに対応する方向判定領域を設定してもよいし、前回のタイミングN−1において取得された指示位置から所定距離だけ離れた位置を中心に、複数の方向のそれぞれに対応する方向判定領域を設定してもよい。
【0044】
また、入力方向判定部113は、指示位置が属する方向判定領域に基づいて、入力方向を判定する。例えば、入力方向判定部113は、前回のタイミングで(所定周期の第N−1のタイミング)で取得した指示位置に基づき設定される各方向判定領域C1〜C4のいずれに、今回のタイミング(所定周期の第Nのタイミング)で取得された指示位置が位置しているのかを判定する。
【0045】
移動処理部114は、オブジェクト(キャラクタオブジェクト、移動体オブジェクト等)の移動演算を行う。即ち、この移動処理部114は、入力部160によりプレーヤが入力した入力データ又はプログラム(移動アルゴリズム)や各種データ(モーションデータ)などに基づいて、移動体オブジェクトをオブジェクト空間内で移動させ、又は、移動体オブジェクトの動作(モーション、アニメーション)を制御するための処理を行う。
【0046】
具体的には、本実施形態の移動処理部114は、オブジェクトの移動情報(移動方向、移動量、移動速度、位置、回転角度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。ここでフレームとは、オブジェクトの移動処理、動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。そして、本実施形態では、フレームレートは毎フレーム固定としてもよいし、処理負荷に応じて可変としてもよい。
【0047】
本実施形態の移動処理部114は、入力方向判定部113において判定された入力方向に基づいて、オブジェクトを移動させる処理を行う。つまり、入力方向判定部113において判定された入力方向に対応する方向を移動方向とし、当該移動方向にオブジェクトを移動させる処理を行う。例えば、入力方向が右である場合には、画面の右方向(x軸プラス方向)にオブジェクトを移動させる処理を行う。また、入力方向が下方向である場合には、画面の下方向(y軸マイナス方向)にオブジェクトを移動させ、また、入力方向が左方向である場合には、画面の左方向(x軸マイナス方向)にオブジェクトを移動させ、また、入力方向が上方向である場合には、画面の上方向(y軸プラス方向)にオブジェクトを移動させる。
【0048】
なお、移動処理部114は、3次元のオブジェクト空間において入力方向に基づいてオブジェクトを移動させる処理を行ってもよい。例えば、予め、入力方向毎に移動方向を対応づけ、入力方向に対応する移動方向にオブジェクトを移動させる。
【0049】
ゲーム演算部115は、種々のゲーム演算処理を行う。例えば、ゲーム演算部115は、オブジェクト空間におけるプレーヤオブジェクト(第1のオブジェクト)と敵オブジェクト(第2のオブジェクト)とのヒットチェックを行う。例えば、プレーヤオブジェクト及び敵オブジェクトに予めヒットチェック範囲を設けて各ヒットチェック範囲が交差したか否かに基づいてヒットチェックを行ってもよい。
【0050】
ここでオブジェクト空間がいわゆる2次元空間である場合には、プレーヤオブジェクトと敵オブジェクトに対応する、一のスプライトと他のスプライトとがヒットしたか否かで判定することができる。また、オブジェクト空間がいわゆる3次元空間である場合には、ポリゴンまたはバウンディングボリュームがヒットしたか否かで判定することができる。
【0051】
また、ゲーム演算部115は、ヒットチェック結果に基づいて、ゲーム結果を判定してもよい。例えば、本実施形態のゲーム演算部115は、プレーヤオブジェクトと敵オブジェクトとがヒットした場合は、負けと判定する。
【0052】
表示制御部116は、プレーヤオブジェクト、敵オブジェクトなどを含むゲーム画像を表示させる処理や、入力方向を示す入力方向画像を表示させる処理を行う。例えば、表示制御部116は、指示位置の移動に、入力方向を示す入力方向画像を追従させて表示させる。
【0053】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部(ディスプレイ)190に出力する。描画部120が生成する画像は、いわゆる2次元画像であってもよいし、いわゆる3次元画像であってもよい。
【0054】
ここで2次元画像を生成する場合には、描画部120は、設定された優先度が低いオブジェクトから順に描画して、オブジェクト同士が重なる場合には、優先度の高いオブジェクトを上書きして描画する。
【0055】
また、3次元画像を生成する場合には、本実施形態の描画部120は、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理が行われる。なお、頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0056】
また、頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。
【0057】
ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ172(フレームバッファ、ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。
【0058】
これにより、オブジェクト空間内に設定された仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0059】
なお、描画部120が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0060】
そして、描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0061】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理を行う。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)を記憶部170に記憶する。
【0062】
テクスチャマッピングでは、記憶部170のテクスチャ記憶部に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングする処理を行う。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出し、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0063】
なお、本実施形態では、オブジェクトを描画する際に、所与のテクスチャをマッピングする処理を行うようにしてもよい。この場合には、マッピングされるテクスチャの色分布(テクセルパターン)を動的に変化させることができる。
【0064】
また、この場合において、色分布(ピクセルパターン)が異なるテクスチャを動的に生成してもよいし、複数の色分布が異なるテクスチャを予め用意しておき、使用するテクスチャを動的に切り替えるようにしてもよい。またオブジェクト単位でテクスチャの色分布を変化させてもよい。
【0065】
隠面消去処理では、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行う。すなわち、オブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照するとともに、当該参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0066】
αブレンディング(α合成)では、描画部120は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)を行う。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0067】
特に、本実施形態での描画部120は、接触検出領域に対応する表示領域に表示させる画像を生成してもよい。表示領域に表示させる画像とは、例えばオブジェクトを含む画像でもよい。
【0068】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0069】
なお、本実施形態の端末装置は、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0070】
また、複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末装置を用いて分散処理により生成してもよい。
【0071】
2.本実施形態の処理の手法
2−1.概要
本実施形態では、端末装置10を用いて、オブジェクト空間(ゲーム空間)に存在するオブジェクトを移動させるゲーム処理に関するものである。例えば、端末装置10は、図2(A)(B)に示すような携帯電話(スマートフォン)とすることができる。また、プレーヤは、図3に示すように、表示領域でもある接触検出領域を備えたディスプレイ(タッチパネル型ディスプレイ)12を、指を用いて接触しながら移動させるスライド操作を行うことができる。
【0072】
例えば、本実施形態では、図4に示すように、プレーヤオブジェクトPOB及び敵オブジェクトEOBは、移動経路上を所定の速度で移動している。
【0073】
本実施形態では、プレーヤオブジェクトPOBが移動経路を通過することによって、移動経路に配置された餌オブジェクトCOBを消去させる処理を行い、全ての餌オブジェクトCOBが消去されることを条件に(全ての餌オブジェクトCOB上を通過することを条件に)ゲームクリアと判定する。一方、プレーヤオブジェクトPOBが敵オブジェクトEOBにヒットするとクリアできずに途中で終了することになる。つまり、本実施形態のゲームにおいて、プレーヤは、敵オブジェクトEOBと遭遇しないように、かつ、全ての餌オブジェクトCOBを消去するように、プレーヤオブジェクトPOBの移動方向を指示するための入力操作を行うことになる。そこで、本実施形態では、プレーヤが直感的に方向指示を適切に行うことができるような入力判定処理を行っている。以下、本実施形態の入力判定処理について詳細に説明する。
【0074】
2−2.方向判定領域の設定処理
本実施形態では、接触検出領域(タッチパネル)検出された接触位置(タッチ位置)を指示位置として取得し、取得された指示位置に基づいて入力方向を判定するための方向判定領域を設定する処理を行う。
【0075】
例えば、図5に示すように、判定領域Aは接触検出領域(タッチパネルディスプレイ)12にある領域であり、本実施形態の判定領域Aは接触検出領域の全領域としている。なお、判定領域Aは、接触検出領域の一部の領域としてもよいし、四角形、三角形、六角形等の多角形に限らず、円形でもよいし不定形な形としてもよい。
【0076】
そして、図5に示すように、本実施形態では、基準位置Bに基づいて、複数の方向判定領域C1〜C4を設定する。例えば、判定領域Aを、基準位置(基準点)Bを基準に複数の領域に分割し、分割された各領域を方向判定領域C1〜C4として設定する。具体的には、基準位置Bを中心に90度の角度で判定領域Aを分割して、各方向判定領域C1〜C4を設定する。例えば、図5に示すように、x軸の45度から135度までの範囲θ1の領域を方向判定領域C1とし、基準位置Bを基準にx軸の−45度から45度までの範囲θ2の領域を方向判定領域C2とし、x軸の225度から315度までの範囲θ3の領域を方向判定領域C3と、x軸の135度から225度までの範囲θ4の領域を方向判定領域C4として、判定領域Aを四分割する。
【0077】
なお、本実施形態では、誤判定を防止するために、基準位置Bを中心とする半径rの円の領域を遊び領域Dとして設定している。
【0078】
また、本実施形態では、接触検出領域において検出された接触位置に基づいて基準位置Bを決定する。例えば、図6(A)に示すように、接触検出領域において検出された接触位置Pを基準位置Bとして設定してもよいし、図6(B)に示すように、接触位置Pから所定距離Lだけ離れた位置Qを基準位置Bとしてもよい。ここで、所定距離Lは、接触位置に近い距離であり、例えば、所定距離Lを、人間の平均的な指の横幅の長さよりやや大きめのサイズに設定する。なお、所定距離Lは、遊び領域Dの半径rと同じ(ほぼ同じ)長さとしてもよい。なお、端末装置の表示画面の解像度などによって、この所定距離を調整できるようにしてもよい。
【0079】
なお、本実施形態では、4つの方向判定領域C1〜C4を設定しているが、これは4方向(上、右、下、左)を判定するためである。例えば、図7に示すように、各方向判定領域C1〜C4は、上(画面のy軸プラス方向)、右(画面のx軸プラス方向)、下(画面のy軸マイナス方向)、左(画面のx軸マイナス方向)の4つの方向に対応づけられている。このように、本実施形態では、判定すべき方向の数に応じて方向判定領域の数を決め、各方向に応じた方向判定領域を設定する。
【0080】
2−3.入力方向を判定する処理
本実施形態では、過去の接触位置に基づいて、複数の方向判定領域を設定し、接触位置がいずれの方向判定領域に属しているかを判定し、接触位置が属する方向判定領域に対応する方向を、プレーヤが指示する入力方向として判定(決定)する処理を行う。
【0081】
2−3−1.入力方向を判定する処理例1
まず、最初に検出された接触位置に基づいて設定された複数の方向判定領域を固定し、入力方向を判定する処理を、処理例1として説明する。なお、本実施形態において、最初に検出された接触位置とは、接触検出領域において、接触が検出されていない状態から接触が検出された状態に変化した時点タイミング)である。
【0082】
例えば、図8(A)に示すように、プレーヤがタッチパネルに触れると、接触位置P0が検出される。この接触位置P0を基準位置Bとし、判定領域Aにおいて基準位置Bを中心に方向判定領域C1〜C4を設定する。
【0083】
そして、プレーヤが、スライド操作を行った場合は、次のように入力方向を判定する。まず、最初の接触位置P0を検出したときの所定周期のタイミングを1回目のタイミングとすると、2回目のタイミングで(周期が1/60秒である場合には1回目のタイミングから1/60秒後に)検出された接触位置P1に基づいて入力方向を判定する。つまり、図8(B)に示すように、検出された接触位置P1が、複数の方向判定領域C1〜C4のうち、いずれの方向判定領域に属しているか判定することによって入力方向を判定する。例えば、検出された接触位置P1が方向判定領域C2に属しているので、方向判定領域C2に対応する方向である「右」を、入力方向として判定する。
【0084】
なお、本実施形態では、遊び領域Dに接触位置が属している場合には、入力方向の判定を行わないように制御している。なお、以下の処理例2、3でも同様である。遊び領域Dを設けることにより、プレーヤの意図に反して入力判定してしまうことを防止することができるからである。
【0085】
ところで、方向判定領域を固定する処理例1の場合には、次のような問題が生じる。例えば、図8(C)に示すように、所定周期の3回目のタイミング(周期が1/60秒である場合には、2回目のタイミングから1/60秒後)に、接触位置P2を検出したとする。すると、接触位置P2は、方向判定領域C2に属しているので、入力方向を「右」と判定する。ここで、P1からP2への方向は下方向であるので、入力方向を「下」と判定した方が自然であるが、このように方向判定領域C1〜C4を固定してしまうと、入力方向を判定する精度が落ちてしまい、プレーヤは直感的な方向の入力操作を行うことが難しくなってしまう。
【0086】
2−3−2.入力方向を判定する処理例2
次に、指示位置の移動に方向判定領域C1〜C4を追従させて入力方向を判定する処理を、処理例2として説明する。処理例2は、処理例1の問題を解消でき、入力方向の判定の精度を上げることができ、プレーヤは直感的に方向指示を行うことができる。
【0087】
例えば、図9(A)に示すように、プレーヤがタッチパネルに触れると、接触位置P0が検出される。この接触位置P0を基準位置Bとし、判定領域Aにおいて基準位置Bを中心に方向判定領域C1〜C4を設定する。
【0088】
そして、最初に接触位置P0を検出したときのタイミングを1回目のタイミングとすると、所定周期の2回目のタイミングに検出された接触位置P1に基づいて入力方向を判定する。つまり、図9(B)に示すように、接触位置P1が方向判定領域C2に属しているので、方向判定領域C2に対応する方向である「右」を、入力方向として判定する。
【0089】
そして、図9(C)に示すように、所定周期の3回目のタイミングで接触位置P2を検出した場合には、2回目のタイミングにおいて検出した接触位置P1(基準位置B)を中心に、方向入力判定C1〜C4を設定する。そして、3回目のタイミングで検出された接触位置P2に基づいて入力方向を判定する。つまり、図9(C)に示すように、接触位置P2が方向判定領域C3に属しているので、方向判定領域C3に対応する方向である「下」を、入力方向として判定する。
【0090】
以後、スライド操作を行うことによって続けて接触位置を検出している場合には、直前のタイミング(第N−1のタイミング)で検出された接触位置を中心に方向判定領域C1〜C4を設定し、今回のタイミング(第Nのタイミング)で検出された接触位置がいずれの方向判定領域に属しているかを判定することによって入力方向を判定する。
【0091】
このように、処理例2では、方向判定領域の基準となる基準位置Bが接触位置の移動に追従するので、結果的に方向判定領域が接触位置(広義には、指示位置)の移動に追従する。このように、処理例2では、方向判定領域が指示位置の移動に追従するので、プレーヤの入力方向を瞬時に正しく判定することができ、プレーヤは直感的に入力方向の操作を行うことができる。
【0092】
2−3−3.入力方向を判定する処理例3
次に、指示位置の移動に、方向判定領域C1〜C4を追従させて、入力方向を判定する処理の他の例を、処理例3として説明する。処理例3は、接触位置Pから所定距離Lだけ離れた位置に基準位置Bを設定する。処理例3も、処理例1の問題を解消でき、入力方向の判定の精度を上げることができ、プレーヤは直感的に方向指示を行うことができる。
【0093】
例えば、図10(A)に示すように、プレーヤがタッチパネルに触れると、接触位置P0が検出される。そして、接触位置P0を基準位置Bとし、判定領域Aにおいて基準位置Bを中心に方向判定領域C1〜C4を設定する。
【0094】
次に、最初に接触位置P0を検出したときのタイミングを1回目のタイミングとすると、所定周期の2回目のタイミングに検出された接触位置P1に基づいて入力方向を判定する。つまり、図10(B)に示すように、接触位置P1が方向判定領域C2に属しているので、方向判定領域C2に対応する方向である「右」を、入力方向として判定する。
【0095】
そして、図10(C)に示すように、所定周期の3回目のタイミングで接触位置P3を検出した場合には、2回目のタイミングにおいて検出した接触位置P1から所定距離Lだけ離れた位置Q1を基準位置Bとし、基準位置Bを中心に、方向入力判定C1〜C4を設定する。
【0096】
言い換えると、図10(B)に示すように、2回目のタイミングにおける基準位置Bを位置P0とし、2回目のタイミングにおける接触位置P1とすると、接触位置P1と基準位置Bとを結ぶライン上(直線上)であって、接触位置P1から所定距離Lだけ離れた位置Q1を、図10(C)に示すように、3回目のタイミングおける基準位置Bとして設定(更新)する。そして、位置Q1を中心に、方向入力判定C1〜C4を設定する。
【0097】
そして、図10(C)に示すように、3回目のタイミングで検出された接触位置P2が方向判定領域C3に属しているので、方向判定領域C3に対応する方向である「下」を入力方向として判定する。
【0098】
また、図11(A)に示すように、3回目のタイミングの基準位置Bとしている位置Q1と、3回目のタイミングの接触位置P2とを結ぶ直線上であって、接触位置P2から所定距離Lだけ離れた位置Q2を、4回目のタイミングにおける基準位置Bとする。つまり、4回目のタイミングにおいて、図11(B)に示すように、位置Q2(基準位置B)を中心に、方向判定領域C1〜C4を設定する。
【0099】
以後、接触操作を行うことによって続けて接触位置を検出している場合には、直前のタイミング(第N−1のタイミング)で検出された接触位置から所定距離Lだけ離れた位置を中心に、方向判定領域C1〜C4を設定し、今回のタイミング(第Nのタイミング)で検出された接触位置がいずれの方向判定領域に属しているかを判定することによって入力方向を判定する。
【0100】
このように、処理例3では、各方向判定領域C1〜C4を、接触位置から所定距離Lだけ離れた位置の移動に追従させるので(広義には、各方向判定領域C1〜C4を、接触位置の移動に追従させるので)、プレーヤの入力方向を瞬時に正しく判定することができ、プレーヤは直感的に入力方向の操作を行うことができる。
【0101】
なお、処理例3では、タッチパネルの接触位置が所定期間T1(例えば、1秒間)変動しない場合は、図11(C)に示すように、所定期間T1経過した時点から第2の所定期間T2(例えば、1秒間)かけて、第Nのタイミングで検出した基準位置Bを、第N−1のタイミングで検出した接触位置P2に滑らかに移動させるようにしてもよい。このようにすれば、所定期間T2経過時から接触位置が移動した場合に、入力方向判定をより正しく行うことができる。
【0102】
また、本実施形態の処理例2、3において、接触位置の移動に方向判定領域C1〜C4が追従するとは、方向判定領域C1〜C4の大きさ(面積)、形状を変化させることを妨げるものではない。また、本実施形態の処理例2、3では、タッチパネルの全領域を判定領域Aとしているが、タッチパネルの一部の領域を判定領域Aとしてもよい。そして、タッチパネルの一部の領域を判定領域Aとしている場合には、判定領域Aの大きさ、形状の少なくとも1つを変化させてもよいし変化させなくてもよい。なお、判定領域Aが移動する場合には、接触位置の移動に追従させて判定領域Aを移動させてもよい。
【0103】
2−4.表示制御
本実施形態では、入力方向を示す入力方向画像(バーチャルパッド画像)M1、M2を表示させるようにしてもよい。例えば、図12(A)に示すようにプレーヤがタッチパネルをタッチし、図12(B)に示すように、右方向にスライド操作することによって、右方向への入力方向であると判定された場合には、入力方向画像M1のプレーヤキャラクタの向きを右方向に向け、さらに、プレーヤキャラクタが所定位置から右方向にずれて動くように表示制御する。
【0104】
また、本実施形態では、接触位置の移動に、入力方向画像M2を追従させて表示させるようにしてもよい。つまり、右方向にスライド操作することにより、入力方向画像M2もプレーヤキャラクタが右方向を向き、かつ、入力方向画像M2自体を右方向に移動して表示させるようにしてもよい。このようにすれば、プレーヤは入力方向画像M1を見なくても、接触位置の近くにある入力方向画像M2を見ることにより、プレーヤの視線を大きくずらすことなく入力方向を認識することができる。なお、入力方向画像M2は接触位置と同じ位置に配置してもよいし、ややずれた位置(例えば、接触位置から所定距離Lだけ離れた位置、基準位置)に配置してもよい。
【0105】
また、図13(A)(B)に示すように、プレーヤが上方向にスライド操作することによって、入力方向が上方向であると判定された場合には、入力方向画像M2のプレーヤキャラクタの向きを上方向に向け、さらに、プレーヤキャラクタが所定位置から上方向にずれて動くように表示制御する。また、接触位置の移動に、入力方向画像M2を追従させて表示させるようにしてもよい。つまり、上方向にスライド操作することにより、入力方向画像M2も上方向に移動して表示させるようにしてもよい。
【0106】
なお、入力方向判定の処理例3において、タッチパネルの接触位置が所定期間T1変動しない場合において、第2の所定期間T2かけて基準位置を移動させる処理に連動して、入力方向画像M1をプレーヤキャラクタの位置を元の位置(所定位置)に戻すようにしてもよい。このようにすれば、プレーヤは、視覚的に、基準位置が接触位置に戻る様子を確認することができる。
【0107】
2−5.移動処理
本実施形態では、オブジェクト空間において、判定された入力方向に基づいてオブジェクトを移動させる処理を行う。つまり、本実施形態によれば、プレーヤが接触操作領域においてスライド操作を行うことによって、プレーヤオブジェクトPOBの移動方向を指示することができる。
【0108】
例えば、図12(A)に示すように、プレーヤオブジェクトPOBが下方向に移動していたとする。そして、プレーヤが右方向にスライド操作することによって、入力方向が右方向であると判定されると、図12(B)に示すように、プレーヤオブジェクトPOBの移動方向を右方向に変更する。
【0109】
また、例えば、図13(A)に示すように、プレーヤオブジェクトPOBが右方向に移動していたとする。そして、プレーヤが上方向にスライド操作することによって、入力方向が上方向であると判定されると、図13(B)に示すように、プレーヤオブジェクトPOBの移動方向を上方向に変更する。
【0110】
なお、本実施形態では、プレーヤオブジェクトPOBを、障害物に障害されない限り常に移動制御させている。つまり、接触位置が遊び領域Dに属している場合や接触位置を検出しない等で入力方向が検出されない場合においても、障害物に障害されない限り常にプレーヤオブジェクトPOBを移動させている。かかる場合には、直前に判定された入力方向に基づいて決定される移動方向に、プレーヤオブジェクトPOBを継続して移動制御させる。
【0111】
2−6.フローチャート
図14を用いて、本実施形態における入力判定処理の流れについて説明する。まず、接触を検出したか否かを判断する(ステップS1)。例えば、判定領域Aにおいて、所定の周期で(例えば、1/60毎に)接触を検出したか否かを判定する。
【0112】
接触を検出すると(ステップS1のY)、接触位置を基準位置に設定し(ステップS2)、基準位置に基づいて、遊び領域、及び、方向判定領域を設定する(ステップS3)。例えば、基準位置に基づいて、判定領域Aにおいて、遊び領域、及び、方向判定領域を設定する。
【0113】
次に、継続して接触検出しているか否かを判断する(ステップS4)。つまり、所定の周期で(例えば、1/60秒経過する度に)、接触位置を検出しているか否かを判断する。そして、継続して接触検出している場合には(ステップS4のY)、ステップS5に進み、そうでない場合は(ステップS4のN)、処理を終了する。
【0114】
そして、接触位置が遊び領域外か否かを判断する(ステップS5)。例えば、接触位置が遊び領域外に位置している場合には(ステップS5のY)、ステップS6に進む。一方、接触位置が遊び領域内に位置している場合には(ステップS5のN)、ステップS8に進む。
【0115】
次に、接触位置が属する方向判定領域に基づいて、入力方向を判定する(ステップS6)。例えば、図7に示すように、接触位置が位置する方向判定領域がC1である場合には、方向判定領域C1が示す方向が上方向であるので、入力方向を「上方向」として判定する。
【0116】
次に、入力方向に基づいて、プレーヤオブジェクトを移動させる処理を行う(ステップS7)。例えば、入力方向が上方向である場合には、プレーヤオブジェクトの移動方向を画面の上方向に決定する。そして決定された方向(画面の上方向)にプレーヤオブジェクトを移動させる処理を行う。
【0117】
次に、接触位置と基準位置とのライン上であって接触位置から所定距離Lだけ離れた位置を、新たな基準位置として設定する(ステップS8)。例えば、図10(B)に示すように、第Nのタイミングにおいて、基準位置Bが位置P0とすると、接触位置P1と基準位置Bとのライン上(直線上)であって、接触位置P1から所定距離Lだけ離れた位置Q1を、第N+1のタイミングの基準位置Bとして設定する。
【0118】
そして、新たに設定された基準位置に基づいて、遊び領域、及び、方向判定領域を設定する(ステップS9)。例えば、図10(C)に示すように、新たな位置Q1に設定された基準位置Bを中心に、遊び領域Dと、方向判定領域C1〜C4とを設定する。そして、ステップS9の処理が終了すると、ステップS4に戻る。例えば、継続して接触検出していない場合には(ステップS4のN)、処理を終了する。例えば、プレーヤが指をタッチパネルから離した場合などは処理を終了することになる。
【0119】
3.応用例
3−1.複数種類の方向制御
本実施形態では、複数の判定領域を設定し、プレーヤが各判定領域で方向入力操作を行えるようにしてもよい。このようにすれば、複数種類の方向制御を同時に行うことができる。
【0120】
具体的に説明すると、図15に示すように、判定領域A1において、基準位置B1を設定し、基準位置B1に基づいて4方向(上、右、下、左)の各方向に対応する方向判定領域C11〜C14、遊び領域D1を設定する。そして、判定領域A1において、方向判定領域C11〜C14のうち、第1の接触位置が属する方向判定領域に基づいて、第1の入力方向を判定する。
【0121】
また、判定領域A2において、基準位置B2を設定し、基準位置B2に基づいて4方向(上、右、下、左)の各方向に対応する方向判定領域C21〜C24、遊び領域D2を設定する。そして、判定領域A2において、方向判定領域C21〜C24のうち、第2の接触位置が属する方向判定領域に基づいて、第2の入力方向を判定する。
【0122】
例えば、シューティングゲームの場合には、判定領域A1において第1の入力方向を判定し、第1の入力方向に基づいてプレーヤキャラクタの移動方向を制御する。そして、判定領域A2において第2の入力方向を判定し、第2の入力方向に基づいて弾の発射方向を制御する等、複数種類の方向制御を同時に行うことができる。
【0123】
なお、複数の判定領域A1、A2を設定する場合には、接触検出領域において各判定領域A1、A2が重複しないように設定する。各判定領域A1、A2が重複してしまうと、第1の入力方向と第2の入力方向それぞれの判定を正しく行うことができなくなるからである。なお、判定領域は1つ、2つに限らず、3つ以上設定してもよい。
【0124】
3−2.移動制御と停止制御を行う場合の方向判定領域の設定例
本実施形態では、アクションゲームなどのゲーム処理に応用してもよい。例えば、プレーヤオブジェクトを移動させるだけでなく、停止制御を行う処理に応用してもよい。
【0125】
例えば、接触検出領域において継続して接触位置を検出している場合には、接触位置が属する方向判定領域に基づいて入力方向を判定し、入力方向に基づいてプレーヤオブジェクトを移動させる。そして、接触検出領域において接触位置を検出していない場合には、プレーヤオブジェクトを停止させるように制御する。また、接触検出領域において遊び領域Dにおいて接触位置を検出した場合においてもプレーヤオブジェクトを停止させるように制御する。
【0126】
このように、プレーヤオブジェクトに対して移動制御と停止制御の両方を行う場合には、入力方向判定の処理例3で説明したように、接触位置から所定距離Lだけ離れた位置を基準位置とし、基準位置を中心に各方向判定領域を設定することが望ましい。このようにすれば、連続してスライドし続ける操作が不要になり、操作を簡単にすることができるからである。
【0127】
具体的に、接触位置に基準位置を設定した場合と、接触位置とは異なる位置に基準位置を設定する例と対比して説明する。
【0128】
例えば、接触位置に基準位置を設定する例について図16(A)〜(C)を用いて説明する。まず、図16(A)に示すように、プレーヤがタッチパネルに触れ、接触位置P0が検出されると接触位置P0に基準位置Bを設定する。
【0129】
そして、最初に接触位置P0を検出したときのタイミングを1回目のタイミングとすると、図16(B)に示すように、プレーヤがスライド操作を行い、所定周期の2回目のタイミングに、検出された接触位置P1に基づいて入力方向を判定する。つまり、接触位置P1が方向判定領域C2に属しているので、右方向の入力方向であると判定し、プレーヤオブジェクトを右方向に移動させる。
【0130】
そして、図16(C)に示すように、3回目のタイミングにおいて、2回目のタイミングで検出した接触位置P1を基準位置Bとし、当該基準位置Bを中心に方向判定領域C1〜C4を設定する。ここで、図16(C)に示すように、3回目のタイミングにおいて取得した接触位置が位置P1を維持している場合には、プレーヤオブジェクトを停止させることになる。
【0131】
つまり、3回目のタイミングにおいて接触位置P1を検出した場合には、その接触位置P1は遊び領域Dに属することになるので、プレーヤオブジェクトは入力方向が判定されず、プレーヤオブジェクトを停止制御させる。したがって、例えば、3回目のタイミング以降継続して右方向にプレーヤオブジェクトを移動させたい場合には、さらに右方向にスライド操作をし続ける必要がある。このようにスライド操作が継続的に強いられてしまうと、操作環境が悪くなりプレーヤにとって使い勝手が悪くなる。
【0132】
一方、接触位置とは異なる位置に基準位置を設定する例を図17(A)〜(C)を用いて説明する。まず、図17(A)に示すように、プレーヤがタッチパネルに触れ、接触位置P0が検出されると接触位置P0に基準位置Bを設定する。
【0133】
そして、最初に接触位置P0を検出したときのタイミングを1回目のタイミングとすると、図17(B)に示すように、プレーヤがスライド操作を行い、2回目のタイミングに検出された接触位置P1に基づいて入力方向を判定する。つまり、2回目のタイミングでは、右方向の入力方向であると判定し、プレーヤオブジェクトを右方向に移動させる。
【0134】
そして、図17(C)に示すように、3回目のタイミングにおいて、2回目のタイミングで検出した接触位置P1から所定距離Lだけ離れた位置Q1を基準位置Bとし、基準位置Bを中心に方向判定領域C1〜C4を設定する。このようにすれば、3回目のタイミングにおいて検出される接触位置が位置P1である場合であっても、接触位置P1が方向判定領域C2に属しているので右方向の入力方向であると判定し、プレーヤオブジェクトを右方向に移動させることができる。なお、第Nのタイミングの基準位置Bを、第N−1のタイミングで検出された指示位置から、第N−1のタイミングで設定された基準位置B側に所定距離Lだけ離れた位置に設定する。このようにすれば、例えば、図17(C)に示すように右の方向指示を連続して行うことが容易となるからである。
【0135】
つまり、図17(C)のように、プレーヤは、プレーヤオブジェクトを継続的に右方向に移動させたい場合は、タッチパネルの位置P1のあたりを維持したまま接触操作を行い、一方、プレーヤオブジェクトを停止させたい場合は、タッチパネルから指を離せばよいので、プレーヤは移動方向の指示、停止指示を簡単に行うことができる。このように、図17(A)〜(C)に示すように、基準位置Bを接触位置から所定距離Lだけ離れた位置に設定することによって、プレーヤにとって使い勝手の良い操作環境を提供できる。
【0136】
なお、上述した処理例3では、図11(B)(C)に示すように、接触位置が所定期間T1変動しない場合において、所定期間T2かけて第Nのタイミングで検出した基準位置を第N−1のタイミングで検出した接触位置に移動させることを説明した。しかし、接触位置が遊び領域D内にある場合にプレーヤオブジェクトを停止制御する場合には、接触位置が所定期間T1変動しない場合であっても、第Nのタイミングで検出した基準位置を第N−1のタイミングで検出した接触位置に移動させないように制御する。第Nのタイミングの基準位置を第N−1で検出された接触位置に設定してしまうと、プレーヤオブジェクトが停止してしまい操作環境が悪くなってしまうからである。
【0137】
3−3.入力部の種類
本実施形態では、タッチパネルなどのタッチ操作による入力だけでなく、指示位置を検出する他の入力機器に応用してもよい。かかる場合には、検出された指示位置の移動に、各方向判定領域を追従させるように制御すればよい。
【0138】
例えば、他の入力機器の一例としてマウスを利用して指示位置を入力する場合には、マウスでボタンの信号を検出中に指示位置を検出し、入力方向を判定するようにしてもよい。そして、検出される指示位置の移動(ドラッグ)に、各方向判定領域を追従させて設定し、入力方向を判定するようにしてもよい。
【0139】
3−4.判定領域の数
本実施形態では、判定すべき方向が4つであるため、4つの方向判定領域を設定する例について説明したが、判定すべき方向が左方向と右方向の2つの場合には、基準位置Bに基づいて2つの方向判定領域を設定するようにしてもよい。例えば、図18に示すように、基準位置Bに基づいて、左半分の方向判定領域E1を左方向に対応付け、右半分の方向判定領域E2を右方向に対応づける。そして、過去の指示位置に基づいて、方向判定領域E1、E2を設定し、指示位置の移動に、方向判定領域E1、E2を追従させるようにする。なお、判定すべき方向は、2つ、4つに限らず、3つ、5つ以上でもよい。つまり、入力判定すべき方向の数分の方向判定領域を設定すればよい。
【0140】
3−5.その他
本実施形態では、アクションゲーム、ロールプレイングゲーム、対戦ゲーム、レースゲーム、音楽ゲーム、格闘ゲーム、シューティングゲーム、フライトシューティングゲームなど種々のゲームに応用することができる。
【0141】
なお、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0142】
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【0143】
10 端末装置、
12 表示画面(ディスプレイ、タッチパネル、タッチパネル型ディスプレイ)、
POB プレーヤオブジェクト、EOB 敵オブジェクト、COB 餌オブジェクト
v 移動方向、A 判定領域、B 基準位置(基準点)、
C1、C2、C3、C4 方向判定領域、D 遊び領域、
P0、P1、P2 接触位置、Q1、Q2 特定位置、L 所定距離、100 処理部、110 オブジェクト空間設定部、111 取得部、112 領域設定部、
113 入力方向判定部、114 移動処理部、115 ゲーム演算部、
116 表示制御部、120 描画部、130 音処理部、170 記憶部、
171 主記憶部、172 画像バッファ、150 撮像部、160 入力部、
162 検出部、180 情報記憶媒体、190 表示部、192 音出力部、
196 通信部

【特許請求の範囲】
【請求項1】
入力部によって指示位置が入力されている期間中に、指示位置に基づいて入力方向を判定する処理を行うプログラムであって、
入力部によって入力された指示位置を取得する取得部と、
過去の指示位置に基づいて、複数の方向のそれぞれに対応する方向判定領域を設定する領域設定部と、
指示位置が属する方向判定領域に基づいて、入力方向を判定する入力方向判定部として、コンピュータを機能させ、
前記領域設定部が、
前記指示位置の移動に、前記複数の方向それぞれに対応する方向判定領域を追従させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記取得部が、
所定の周期毎に、入力された指示位置を取得し、
前記領域設定部が、
前記所定の周期の第N−1のタイミングで取得された指示位置に基づいて、前記複数の方向それぞれに対応する方向判定領域を設定し、
前記入力方向判定部が、
前記所定の周期の第Nのタイミングで取得された指示位置が属する方向判定領域に基づいて、入力方向を判定することを特徴とするプログラム。
【請求項3】
請求項2において、
前記領域設定部が、
第N−1のタイミングで取得された指示位置を中心に、前記複数の方向のそれぞれに対応する方向判定領域を設定することを特徴とするプログラム。
【請求項4】
請求項2において、
前記領域設定部が、
第N−1のタイミングで取得された指示位置から所定距離だけ離れた位置を中心に、前記複数の方向のそれぞれに対応する方向判定領域を設定することを特徴とするプログラム。
【請求項5】
請求項1〜4のいずれかにおいて、
前記取得部が、
表示画面上に設けられた接触検出領域において接触された接触位置を、前記指示位置として取得し、
前記領域設定部が、
前記接触位置の移動に、前記複数の方向それぞれに対応する方向判定領域を追従させ、
前記入力方向判定部が、
前記接触位置が属する方向判定領域に基づいて、入力方向を判定することを特徴とするプログラム。
【請求項6】
請求項1〜5のいずれかにおいて、
指示位置の移動に、入力方向を示す入力方向画像を追従させて表示させる表示制御部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項7】
請求項1〜6のいずれかにおいて、
オブジェクト空間において、前記入力方向判定部によって判定された入力方向に基づいてオブジェクトを移動させる処理を行う移動処理部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項8】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜7のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項9】
入力部によって指示位置が入力されている期間中に、指示位置に基づいて入力方向を判定する処理を行う端末装置であって、
入力部によって入力された指示位置を取得する取得部と、
過去の指示位置に基づいて、複数の方向のそれぞれに対応する方向判定領域を設定する領域設定部と、
指示位置が属する方向判定領域に基づいて、入力方向を判定する入力方向判定部とを含み、
前記領域設定部が、
前記指示位置の移動に、前記複数の方向それぞれに対応する方向判定領域を追従させることを特徴とする端末装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−133481(P2012−133481A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2010−283469(P2010−283469)
【出願日】平成22年12月20日(2010.12.20)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】