(57)【特許請求の範囲】
【請求項１】
入力部によって指示位置が入力されている期間中に、指示位置に基づいて入力方向を判定する処理を行うプログラムであって、
所定の周期毎に、接触検出領域において接触された接触位置を、前記指示位置として取得する取得部と、
前記所定の周期の第Ｎ−１のタイミングで取得された接触位置に基づいて、前記所定の周期の第Ｎのタイミングの基準位置を設定し、当該第Ｎのタイミングの基準位置を中心に複数の方向のそれぞれに対応する方向判定領域を設定するとともに、前記接触位置の移動に、前記複数の方向それぞれに対応する方向判定領域を追従させる領域設定部と、
前記第Ｎのタイミングで取得された接触位置が、前記第Ｎのタイミングの基準位置を中心に設定された複数の方向判定領域のいずれに属するかを判定し、前記第Ｎのタイミングで取得された接触位置が属する方向判定領域に対応する方向を入力方向として判定する入力方向判定部として、コンピュータを機能させ、
前記領域設定部が、
前記第Ｎ−１のタイミングで取得された接触位置と、前記第Ｎ−１のタイミングの基準位置とを結ぶ線上であって、前記第Ｎ−１のタイミングで取得された接触位置から所定距離だけ離れた位置を、前記第Ｎのタイミングの基準位置として設定することを特徴とするプログラム。
【請求項２】
請求項１において、
前記接触位置の移動に、入力方向を示す入力方向画像を追従させて表示させる表示制御部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項３】
請求項１又は２において、
オブジェクト空間において、前記入力方向判定部によって判定された入力方向に基づいてオブジェクトを移動させる処理を行う移動処理部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項４】
入力部によって指示位置が入力されている期間中に、指示位置に基づいて入力方向を判定する処理を行う端末装置であって、
所定の周期毎に、接触検出領域において接触された接触位置を、前記指示位置として取得する取得部と、
前記所定の周期の第Ｎ−１のタイミングで取得された接触位置に基づいて、前記所定の周期の第Ｎのタイミングの基準位置を設定し、当該第Ｎのタイミングの基準位置を中心に複数の方向のそれぞれに対応する方向判定領域を設定するとともに、前記接触位置の移動に、前記複数の方向それぞれに対応する方向判定領域を追従させる領域設定部と、
前記第Ｎのタイミングで取得された接触位置が、前記第Ｎのタイミングの基準位置を中心に設定された複数の方向判定領域のいずれに属するかを判定し、前記第Ｎのタイミングで取得された接触位置が属する方向判定領域に対応する方向を入力方向として判定する入力方向判定部とを含み、
前記領域設定部が、
前記第Ｎ−１のタイミングで取得された接触位置と、前記第Ｎ−１のタイミングの基準位置とを結ぶ線上であって、前記第Ｎ−１のタイミングで取得された接触位置から所定距離だけ離れた位置を、前記第Ｎのタイミングの基準位置として設定することを特徴とする端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び端末装置に関する。
【背景技術】
【０００２】
従来から、表示画面上で接触操作入力を可能にする接触検出領域（タッチパネル）を搭載した端末装置（携帯型ゲーム装置）が知られている。こうした接触操作入力を利用したゲームは、直感的な操作入力ができるとしてプレーヤから高い人気を得ている。
【０００３】
このような端末装置では、接触操作（タッチ操作）によって、オブジェクトを移動させる処理を行うものがある。例えば、表示画面上に設けられた接触検出領域（タッチパネル）において検出された接触位置の移動量に基づいて、オブジェクトを移動させる処理を行うものがある（特許文献１の０１７３〜０１７７段落参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１５３６８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来の端末装置は、プレーヤが直感的に方向指示の操作を行うことが難しく、また、入力方向が正しく判定されない場合があった。本発明は、上記課題に鑑みたものであり、プレーヤが直感的に方向指示の操作を行うことができ、更に、入力方向の判定を容易に行うことが可能なプログラム、情報記憶媒体、及び端末装置を提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、入力部によって指示位置が入力されている期間中に、指示位置に基づいて入力方向を判定する処理を行うプログラムであって、入力部によって入力された指示位置を取得する取得部と、過去の指示位置に基づいて、複数の方向のそれぞれに対応する方向判定領域を設定する領域設定部と、指示位置が属する方向判定領域に基づいて、入力方向を判定する入力方向判定部として、コンピュータを機能させ、前記領域設定部が、前記指示位置の移動に、前記複数の方向それぞれに対応する方向判定領域を追従させるプログラムに関する。本発明は、上記各部位を含む端末装置に関係する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【０００７】
本発明は、指示位置の移動に、複数の方向それぞれに対応する方向判定領域を追従させるので、入力方向の判定を容易に行うことができる。つまり、本発明によれば、方向判定領域を指示位置の移動に追従するので、プレーヤの入力方向を瞬時に正しく判定することができ、プレーヤは直感的に入力方向の操作を行うことができる。
【０００８】
（２）また、本発明のプログラム、情報記憶媒体及び端末装置は、前記取得部が、所定の周期毎に、入力された指示位置を取得し、前記領域設定部が、前記所定の周期の第Ｎ−１のタイミングで取得された指示位置に基づいて、前記複数の方向それぞれに対応する方向判定領域を設定し、前記入力方向判定部が、前記所定の周期の第Ｎのタイミングで取得された指示位置が属する方向判定領域に基づいて、入力方向を判定するようにしてもよい。本発明によれば、第Ｎ−１のタイミングで取得された指示位置に基づいて、複数の方向それぞれに対応する方向判定領域を設定し、第Ｎのタイミングで取得された指示位置が属する方向判定領域に基づいて、入力方向を判定するので、入力方向の判定について精度を上げることができる。
【０００９】
（３）また、本発明のプログラム、情報記憶媒体及び端末装置は、前記領域設定部が、
第Ｎ−１のタイミングで取得された指示位置を中心に、前記複数の方向のそれぞれに対応する方向判定領域を設定するようにしてもよい。本発明によれば、Ｎ−１のタイミングで取得された指示位置を中心に、複数の方向のそれぞれに対応する方向判定領域を設定するので、入力方向の判定について更に精度を上げることができる。
【００１０】
（４）また、本発明のプログラム、情報記憶媒体及び端末装置は、前記領域設定部が、第Ｎ−１のタイミングで取得された指示位置から所定距離だけ離れた位置を中心に、前記複数の方向のそれぞれに対応する方向判定領域を設定するようにしてもよい。本発明によれば、第Ｎ−１のタイミングで取得された指示位置から所定距離だけ離れた位置を中心に、前記複数の方向のそれぞれに対応する方向判定領域を設定するので、プレーヤの入力操作を簡易にすることができる。
【００１１】
（５）また、本発明のプログラム、情報記憶媒体及び端末装置は、前記取得部が、表示画面上に設けられた接触検出領域において接触された接触位置を、前記指示位置として取得し、前記領域設定部が、前記接触位置の移動に、前記複数の方向それぞれに対応する方向判定領域を追従させ、前記入力方向判定部が、前記接触位置が属する方向判定領域に基づいて、入力方向を判定するようにしてもよい。ここで、接触検出領域とは、例えばタッチパネルであり、接触された接触位置とは、例えば、タッチパネルにおいて検出されたタッチ位置である。本発明によれば、接触検出領域を触れるような操作を行う場合においても、入力方向判定の精度を上げることができ、また、プレーヤは直感的に方向を指示する入力操作を行うことができる。
【００１２】
（６）また、本発明のプログラム、情報記憶媒体及び端末装置は、指示位置の移動に、入力方向を示す入力方向画像を追従させて表示させる表示制御部として、コンピュータを更に機能させるようにしてもよい。本発明によれば、指示位置の移動に、入力方向を示す入力方向画像が表示されるので、プレーヤは瞬時に入力方向を認識することができる。
【００１３】
（７）また、本発明のプログラム、情報記憶媒体及び端末装置は、オブジェクト空間において、前記入力方向判定部によって判定された入力方向に基づいてオブジェクトを移動させる処理を行う移動処理部として、コンピュータを更に機能させるようにしてもよい。本発明によれば、入力方向判定部によって判定された入力方向に基づいてオブジェクトを移動させる処理を行うので、プレーヤは直感的にオブジェクトの移動方向を指示することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態の端末装置の機能ブロック図の一例。
【図２】図２（Ａ）、（Ｂ）は、本実施形態の端末装置の一例。
【図３】本実施形態の端末装置を用いて入力操作を行う様子を示す一例。
【図４】本実施形態の端末装置の表示画面の一例。
【図５】本実施形態の方向判定領域を説明するための図。
【図６】図６（Ａ）、（Ｂ）は、本実施形態の入力方向を判定する処理を説明するための図。
【図７】本実施形態の方向判定領域と入力方向との対応関係を示す図。
【図８】図８（Ａ）、（Ｂ）、（Ｃ）は、本実施形態の入力方向を判定する処理を説明するための図。
【図９】図９（Ａ）、（Ｂ）、（Ｃ）は、本実施形態の入力方向を判定する処理を説明するための図。
【図１０】図１０（Ａ）、（Ｂ）、（Ｃ）は、本実施形態の入力方向を判定する処理を説明するための図。
【図１１】図１１（Ａ）、（Ｂ）、（Ｃ）は、本実施形態の入力方向を判定する処理を説明するための図。
【図１２】図１２（Ａ）、（Ｂ）は、入力方向画像を表示させる表示制御を説明するための図。
【図１３】図１３（Ａ）、（Ｂ）は、入力方向画像を表示させる表示制御を説明するための図。
【図１４】本実施形態のフローチャート図。
【図１５】本実施形態において、２つの判定領域を設けた場合の入力方向を判定する処理を説明するための図。
【図１６】本実施形態において、移動制御を説明するための図。
【図１７】本実施形態において、移動制御を説明するための図。
【図１８】本実施形態の方向判定領域を説明するための図。
【発明を実施するための形態】
【００１５】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１６】
１．構成
まず、図１を用いて本実施形態における端末装置１０の構成について説明する。端末装置１０は、例えば、携帯電話、スマートフォン、携帯端末装置、ゲーム装置、携帯型ゲーム装置、画像生成装置などである。図１は、本実施形態における端末装置１０の機能ブロック図の一例である。なお、本実施形態の端末装置は、図２の構成要素（各部）の一部を省略した構成としてもよい。
【００１７】
入力部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、タッチパネル、タッチパネル型ディスプレイ、マウス、トラックボールなどにより実現できる。つまり、入力部１６０は、２次元の指示位置座標（ｘ，ｙ）を検出可能な検出部１６２を備えている。例えば、入力部１６０は、接触検出領域（タッチパネル）における、２次元の接触位置座標（ｘ，ｙ）を検出可能な検出部１６２を備えている。
【００１８】
つまり、接触位置（接触位置座標、指示位置の一例）は、プレーヤの接触操作により、接触検出領域から得られる位置情報である。接触検出領域に同時に複数の接触位置が検出される場合には、いずれか１つの接触位置（先に検出された接触位置）を用いるようにしてもよい。なお、接触検出領域に複数の判定領域が存在する場合には、各判定領域において、１つの接触位置（先に検出された接触位置）を用いるようにしてもよい。ここで、判定領域とは、取得した接触位置のうち、移動制御など処理部１００で処理するための接触位置を予め特定する接触検出領域上の範囲である。
【００１９】
特に、本実施形態では、図２（Ａ）（Ｂ）に示す表示画面（ディスプレイ）１２が、液晶ディスプレイと、プレーヤ（操作者、ユーザ）の接触位置を検出するためのタッチパネルとが積層されたタッチパネル型ディスプレイとなっている。従って、本実施形態では、表示画面１２が入力部１６０として機能するとともに表示部１９０としても機能する。なお、表示画面１２への接触操作は、指先を用いて行うようにしてもよいし、タッチペンなどの入力機器を用いて行うようにしてもよい。また入力部１６０を、操作部の操作子（ボール）の操作方向（回転方向）を変化させるものとして機能してもよい。
【００２０】
なお、入力部１６０は、指示位置以外の操作情報（操作信号）を入力可能なボタンやレバー、キーボード、ステアリング、マイク、加速度センサなどを備えていてもよい。
【００２１】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。そして、本実施形態の記憶部１７０は、ワーク領域として使用される主記憶部１７１と、最終的な表示画像等が記憶される画像バッファ１７２とを含む。なお、これらの一部を省略する構成としてもよい。
【００２２】
特に本実施形態の記憶部１７０では、取得部１１１において取得された接触位置、及び、判定領域、方向判定領域等を主記憶部１７１に記憶することができる。
【００２３】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００２４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。特に本実施形態では表示部１９０であるディスプレイ１２は、タッチパネルディスプレイを用いることによりプレーヤがゲーム操作を行う入力部１６０としても機能する。ここでタッチパネルとして、例えば抵抗膜方式（４線式、５線式）、静電容量方式、電磁誘導方式、超音波表面弾性波方式、赤外線走査方式などのタッチパネルを用いることができる。
【００２５】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２６】
通信部１９６は、外部（例えばホスト装置や他の端末装置）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２７】
なお、端末装置１０は、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部１７０に記憶してもよい。このようにプログラムやデータを受信して端末装置１０を機能させる場合も本発明の範囲内に含めることができる。
【００２８】
処理部１００（プロセッサ）は、入力部１６０からの入力データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここで、ゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、プレーヤオブジェクト、敵オブジェクトなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２９】
特に、本実施形態の処理部１００は、オブジェクト空間設定部１１０と、取得部１１１と、領域設定部１１２と、入力方向判定部１１３と、移動処理部１１４と、ゲーム演算部１１５と、表示制御部１１６と、描画部１２０と、音処理部１３０とを含む。なお、これらの一部を省略する構成としてもよい。
【００３０】
オブジェクト空間設定部１１０は、オブジェクト（プレーヤオブジェクト、移動体、敵オブジェクト）、移動経路、建物、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（スプライト、ビルボード、ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。具体的にはオブジェクト空間設定部１１０は、オブジェクト（モデルオブジェクト）の位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ）或いは（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ軸回りでの回転角度）或いは（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００３１】
ここで、オブジェクト空間とは、いわゆる仮想２次元空間、仮想３次元空間の両方を含む。２次元空間とは、例えば２次元座標（Ｘ，Ｙ）においてオブジェクトが配置される空間であり、３次元空間とは、例えば３次元座標（Ｘ，Ｙ，Ｚ）においてオブジェクトが配置される空間である。
【００３２】
そしてオブジェクト空間を２次元空間とした場合には、複数のオブジェクトそれぞれについて設定された優先順位に基づいてオブジェクトを配置する。例えば、奥側にあるように見せたいオブジェクト（スプライト）から順にオブジェクトを配置し、手前側にあるように見せたいオブジェクトを重ねて配置する処理を行うことができる。
【００３３】
また、描画サイズが大きなオブジェクトを画像の下方に配置し、描画サイズが小さなオブジェクトを画像の上方に配置すれば、画面の上方に対応するオブジェクト空間が奥側にあるように見せることができ、画面の下方に対応するオブジェクト空間が手前側にあるように見せることができる。
【００３４】
またオブジェクト空間を３次元空間とした場合には、ワールド座標系にオブジェクトを配置し、所与の視点から見える画像であって、奥行きがあるように見える画像を生成する。この場合仮想カメラ制御部が、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００３５】
例えば仮想カメラによりオブジェクト（例えば、キャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動処理部１１４で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００３６】
取得部１１１は、プレーヤが入力部１６０から入力した入力情報の認識処理を行う。具体的には、本実施形態の取得部１１１は、入力部１６０によって入力された指示位置を取得する。
【００３７】
例えば、取得部１１１は、プレーヤの接触操作（タッチ操作）を検出する接触検出領域（タッチパネル）における接触位置（２次元の接触位置座標）を指示位置として取得する。つまり、取得部１１１は、プレーヤが指でタッチパネルにタッチし、そのまま指を移動して最後にタッチパネルから離す操作を行う期間に相当する接触操作期間中（スライド操作期間中）における接触位置を取得する。
【００３８】
また、入力情報は、マウスなどによって指示された２次元の位置座標としてもよい。かかる場合には、取得部１１１は、プレーヤがマウスのボタンを押し、そのままの状態でマウスを移動（ドラッグ）させて、マウスのボタンを離すまでの期間中における、マウスが指示した位置座標を取得してもよい。
【００３９】
また、取得部１１１は、所定の周期毎に入力された指示位置を取得する。例えば、所定の周期とは１／６０秒、１／３０秒、１／１０秒とすることができる。つまり、周期が１／３０秒である場合には、１／３０秒毎に指示位置を取得する。また、取得部１１１は、描画フレームレートと同じ周期で指示位置を取得してもよい。
【００４０】
領域設定部１１２は、接触検出領域において方向判定領域を設定する。例えば、領域設定部１１２は、複数の方向のそれぞれに対応する方向判定領域を設定する。具体的には、領域設定部１１２は、上方向に対応する方向判定領域Ｃ１、右方向に対応する方向判定領域Ｃ２、下方向に対応する方向判定領域Ｃ３、左方向に対応する方向判定領域Ｃ４を、それぞれ判定領域Ａ上に設定する。
【００４１】
また、領域設定部１１２は、過去の指示位置に基づいて、方向判定領域を設定する。そして、領域設定部１１２は、指示位置の移動に、複数の方向それぞれに対応する方向判定領域を追従させる。なお、指示位置の移動に、複数の方向それぞれに対応する方向判定領域を追従させるとは、例えば、複数の方向それぞれに対応する方向判定領域を設定するための基準位置を指示位置の移動に追従させることである。言い換えると、タッチパネル上に設けた判定領域を分割するための基準位置（分割基準位置）を、指示位置の移動に追従させる。
【００４２】
例えば、領域設定部１１２は、プレーヤが指でタッチパネルにタッチし、そのまま指を移動するようなスライド操作を行う場合、接触位置の移動に、各方向判定領域を追従させて設定する。つまり、領域設定部１１２は、指（タッチペン）等が、接触検出領域（タッチパネル）へ接触してから離れるまでの間にタッチペンとタッチパネルとの接触により生じた接触操作軌跡を辿るように（或いは接触操作軌跡から所定距離Ｌずれたラインを辿るように）、リアルタイムに各方向判定領域を設定する。また、マウスでボタン入力を検出し、かつ指示位置の移動（ドラッグ）を検出している場合に、マウスが指示する指示位置の移動に各方向判定領域を追従させる。
【００４３】
具体的に説明すると、領域設定部１１２は、入力方向を判定する（所定の周期の）タイミングＮ（Ｎ≧２、Ｎは整数）において、（所定の周期の）タイミングＮ−１において取得した指示位置に基づいて、複数の方向のそれぞれに対応する方向判定領域を設定する。つまり、前回のタイミングで得た指示位置に基づいて、今回の方向判定領域を設定する。具体的には、前回のタイミングＮ−１において取得された指示位置を中心に、複数の方向のそれぞれに対応する方向判定領域を設定してもよいし、前回のタイミングＮ−１において取得された指示位置から所定距離だけ離れた位置を中心に、複数の方向のそれぞれに対応する方向判定領域を設定してもよい。
【００４４】
また、入力方向判定部１１３は、指示位置が属する方向判定領域に基づいて、入力方向を判定する。例えば、入力方向判定部１１３は、前回のタイミングで（所定周期の第Ｎ−１のタイミング）で取得した指示位置に基づき設定される各方向判定領域Ｃ１〜Ｃ４のいずれに、今回のタイミング（所定周期の第Ｎのタイミング）で取得された指示位置が位置しているのかを判定する。
【００４５】
移動処理部１１４は、オブジェクト（キャラクタオブジェクト、移動体オブジェクト等）の移動演算を行う。即ち、この移動処理部１１４は、入力部１６０によりプレーヤが入力した入力データ又はプログラム（移動アルゴリズム）や各種データ（モーションデータ）などに基づいて、移動体オブジェクトをオブジェクト空間内で移動させ、又は、移動体オブジェクトの動作（モーション、アニメーション）を制御するための処理を行う。
【００４６】
具体的には、本実施形態の移動処理部１１４は、オブジェクトの移動情報（移動方向、移動量、移動速度、位置、回転角度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（例えば１／６０秒）毎に順次求めるシミュレーション処理を行う。ここでフレームとは、オブジェクトの移動処理、動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。そして、本実施形態では、フレームレートは毎フレーム固定としてもよいし、処理負荷に応じて可変としてもよい。
【００４７】
本実施形態の移動処理部１１４は、入力方向判定部１１３において判定された入力方向に基づいて、オブジェクトを移動させる処理を行う。つまり、入力方向判定部１１３において判定された入力方向に対応する方向を移動方向とし、当該移動方向にオブジェクトを移動させる処理を行う。例えば、入力方向が右である場合には、画面の右方向（ｘ軸プラス方向）にオブジェクトを移動させる処理を行う。また、入力方向が下方向である場合には、画面の下方向（ｙ軸マイナス方向）にオブジェクトを移動させ、また、入力方向が左方向である場合には、画面の左方向（ｘ軸マイナス方向）にオブジェクトを移動させ、また、入力方向が上方向である場合には、画面の上方向（ｙ軸プラス方向）にオブジェクトを移動させる。
【００４８】
なお、移動処理部１１４は、３次元のオブジェクト空間において入力方向に基づいてオブジェクトを移動させる処理を行ってもよい。例えば、予め、入力方向毎に移動方向を対応づけ、入力方向に対応する移動方向にオブジェクトを移動させる。
【００４９】
ゲーム演算部１１５は、種々のゲーム演算処理を行う。例えば、ゲーム演算部１１５は、オブジェクト空間におけるプレーヤオブジェクト（第１のオブジェクト）と敵オブジェクト（第２のオブジェクト）とのヒットチェックを行う。例えば、プレーヤオブジェクト及び敵オブジェクトに予めヒットチェック範囲を設けて各ヒットチェック範囲が交差したか否かに基づいてヒットチェックを行ってもよい。
【００５０】
ここでオブジェクト空間がいわゆる２次元空間である場合には、プレーヤオブジェクトと敵オブジェクトに対応する、一のスプライトと他のスプライトとがヒットしたか否かで判定することができる。また、オブジェクト空間がいわゆる３次元空間である場合には、ポリゴンまたはバウンディングボリュームがヒットしたか否かで判定することができる。
【００５１】
また、ゲーム演算部１１５は、ヒットチェック結果に基づいて、ゲーム結果を判定してもよい。例えば、本実施形態のゲーム演算部１１５は、プレーヤオブジェクトと敵オブジェクトとがヒットした場合は、負けと判定する。
【００５２】
表示制御部１１６は、プレーヤオブジェクト、敵オブジェクトなどを含むゲーム画像を表示させる処理や、入力方向を示す入力方向画像を表示させる処理を行う。例えば、表示制御部１１６は、指示位置の移動に、入力方向を示す入力方向画像を追従させて表示させる。
【００５３】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部（ディスプレイ）１９０に出力する。描画部１２０が生成する画像は、いわゆる２次元画像であってもよいし、いわゆる３次元画像であってもよい。
【００５４】
ここで２次元画像を生成する場合には、描画部１２０は、設定された優先度が低いオブジェクトから順に描画して、オブジェクト同士が重なる場合には、優先度の高いオブジェクトを上書きして描画する。
【００５５】
また、３次元画像を生成する場合には、本実施形態の描画部１２０は、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理が行われる。なお、頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００５６】
また、頂点処理では、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（フラグメント処理）が行われる。
【００５７】
ピクセル処理では、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ１７２（フレームバッファ、ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。
【００５８】
これにより、オブジェクト空間内に設定された仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００５９】
なお、描画部１２０が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００６０】
そして、描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００６１】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理を行う。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）を記憶部１７０に記憶する。
【００６２】
テクスチャマッピングでは、記憶部１７０のテクスチャ記憶部に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングする処理を行う。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出し、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００６３】
なお、本実施形態では、オブジェクトを描画する際に、所与のテクスチャをマッピングする処理を行うようにしてもよい。この場合には、マッピングされるテクスチャの色分布（テクセルパターン）を動的に変化させることができる。
【００６４】
また、この場合において、色分布（ピクセルパターン）が異なるテクスチャを動的に生成してもよいし、複数の色分布が異なるテクスチャを予め用意しておき、使用するテクスチャを動的に切り替えるようにしてもよい。またオブジェクト単位でテクスチャの色分布を変化させてもよい。
【００６５】
隠面消去処理では、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行う。すなわち、オブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照するとともに、当該参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００６６】
αブレンディング（α合成）では、描画部１２０は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）を行う。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００６７】
特に、本実施形態での描画部１２０は、接触検出領域に対応する表示領域に表示させる画像を生成してもよい。表示領域に表示させる画像とは、例えばオブジェクトを含む画像でもよい。
【００６８】
音処理部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６９】
なお、本実施形態の端末装置は、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００７０】
また、複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末装置を用いて分散処理により生成してもよい。
【００７１】
２．本実施形態の処理の手法
２−１．概要
本実施形態では、端末装置１０を用いて、オブジェクト空間（ゲーム空間）に存在するオブジェクトを移動させるゲーム処理に関するものである。例えば、端末装置１０は、図２（Ａ）（Ｂ）に示すような携帯電話（スマートフォン）とすることができる。また、プレーヤは、図３に示すように、表示領域でもある接触検出領域を備えたディスプレイ（タッチパネル型ディスプレイ）１２を、指を用いて接触しながら移動させるスライド操作を行うことができる。
【００７２】
例えば、本実施形態では、図４に示すように、プレーヤオブジェクトＰＯＢ及び敵オブジェクトＥＯＢは、移動経路上を所定の速度で移動している。
【００７３】
本実施形態では、プレーヤオブジェクトＰＯＢが移動経路を通過することによって、移動経路に配置された餌オブジェクトＣＯＢを消去させる処理を行い、全ての餌オブジェクトＣＯＢが消去されることを条件に（全ての餌オブジェクトＣＯＢ上を通過することを条件に）ゲームクリアと判定する。一方、プレーヤオブジェクトＰＯＢが敵オブジェクトＥＯＢにヒットするとクリアできずに途中で終了することになる。つまり、本実施形態のゲームにおいて、プレーヤは、敵オブジェクトＥＯＢと遭遇しないように、かつ、全ての餌オブジェクトＣＯＢを消去するように、プレーヤオブジェクトＰＯＢの移動方向を指示するための入力操作を行うことになる。そこで、本実施形態では、プレーヤが直感的に方向指示を適切に行うことができるような入力判定処理を行っている。以下、本実施形態の入力判定処理について詳細に説明する。
【００７４】
２−２．方向判定領域の設定処理
本実施形態では、接触検出領域（タッチパネル）検出された接触位置（タッチ位置）を指示位置として取得し、取得された指示位置に基づいて入力方向を判定するための方向判定領域を設定する処理を行う。
【００７５】
例えば、図５に示すように、判定領域Ａは接触検出領域（タッチパネルディスプレイ）１２にある領域であり、本実施形態の判定領域Ａは接触検出領域の全領域としている。なお、判定領域Ａは、接触検出領域の一部の領域としてもよいし、四角形、三角形、六角形等の多角形に限らず、円形でもよいし不定形な形としてもよい。
【００７６】
そして、図５に示すように、本実施形態では、基準位置Ｂに基づいて、複数の方向判定領域Ｃ１〜Ｃ４を設定する。例えば、判定領域Ａを、基準位置（基準点）Ｂを基準に複数の領域に分割し、分割された各領域を方向判定領域Ｃ１〜Ｃ４として設定する。具体的には、基準位置Ｂを中心に９０度の角度で判定領域Ａを分割して、各方向判定領域Ｃ１〜Ｃ４を設定する。例えば、図５に示すように、ｘ軸の４５度から１３５度までの範囲θ１の領域を方向判定領域Ｃ１とし、基準位置Ｂを基準にｘ軸の−４５度から４５度までの範囲θ２の領域を方向判定領域Ｃ２とし、ｘ軸の２２５度から３１５度までの範囲θ３の領域を方向判定領域Ｃ３と、ｘ軸の１３５度から２２５度までの範囲θ４の領域を方向判定領域Ｃ４として、判定領域Ａを四分割する。
【００７７】
なお、本実施形態では、誤判定を防止するために、基準位置Ｂを中心とする半径ｒの円の領域を遊び領域Ｄとして設定している。
【００７８】
また、本実施形態では、接触検出領域において検出された接触位置に基づいて基準位置Ｂを決定する。例えば、図６（Ａ）に示すように、接触検出領域において検出された接触位置Ｐを基準位置Ｂとして設定してもよいし、図６（Ｂ）に示すように、接触位置Ｐから所定距離Ｌだけ離れた位置Ｑを基準位置Ｂとしてもよい。ここで、所定距離Ｌは、接触位置に近い距離であり、例えば、所定距離Ｌを、人間の平均的な指の横幅の長さよりやや大きめのサイズに設定する。なお、所定距離Ｌは、遊び領域Ｄの半径ｒと同じ（ほぼ同じ）長さとしてもよい。なお、端末装置の表示画面の解像度などによって、この所定距離を調整できるようにしてもよい。
【００７９】
なお、本実施形態では、４つの方向判定領域Ｃ１〜Ｃ４を設定しているが、これは４方向（上、右、下、左）を判定するためである。例えば、図７に示すように、各方向判定領域Ｃ１〜Ｃ４は、上（画面のｙ軸プラス方向）、右（画面のｘ軸プラス方向）、下（画面のｙ軸マイナス方向）、左（画面のｘ軸マイナス方向）の４つの方向に対応づけられている。このように、本実施形態では、判定すべき方向の数に応じて方向判定領域の数を決め、各方向に応じた方向判定領域を設定する。
【００８０】
２−３．入力方向を判定する処理
本実施形態では、過去の接触位置に基づいて、複数の方向判定領域を設定し、接触位置がいずれの方向判定領域に属しているかを判定し、接触位置が属する方向判定領域に対応する方向を、プレーヤが指示する入力方向として判定（決定）する処理を行う。
【００８１】
２−３−１．入力方向を判定する処理例１
まず、最初に検出された接触位置に基づいて設定された複数の方向判定領域を固定し、入力方向を判定する処理を、処理例１として説明する。なお、本実施形態において、最初に検出された接触位置とは、接触検出領域において、接触が検出されていない状態から接触が検出された状態に変化した時点タイミング）である。
【００８２】
例えば、図８（Ａ）に示すように、プレーヤがタッチパネルに触れると、接触位置Ｐ０が検出される。この接触位置Ｐ０を基準位置Ｂとし、判定領域Ａにおいて基準位置Ｂを中心に方向判定領域Ｃ１〜Ｃ４を設定する。
【００８３】
そして、プレーヤが、スライド操作を行った場合は、次のように入力方向を判定する。まず、最初の接触位置Ｐ０を検出したときの所定周期のタイミングを１回目のタイミングとすると、２回目のタイミングで（周期が１／６０秒である場合には１回目のタイミングから１／６０秒後に）検出された接触位置Ｐ１に基づいて入力方向を判定する。つまり、図８（Ｂ）に示すように、検出された接触位置Ｐ１が、複数の方向判定領域Ｃ１〜Ｃ４のうち、いずれの方向判定領域に属しているか判定することによって入力方向を判定する。例えば、検出された接触位置Ｐ１が方向判定領域Ｃ２に属しているので、方向判定領域Ｃ２に対応する方向である「右」を、入力方向として判定する。
【００８４】
なお、本実施形態では、遊び領域Ｄに接触位置が属している場合には、入力方向の判定を行わないように制御している。なお、以下の処理例２、３でも同様である。遊び領域Ｄを設けることにより、プレーヤの意図に反して入力判定してしまうことを防止することができるからである。
【００８５】
ところで、方向判定領域を固定する処理例１の場合には、次のような問題が生じる。例えば、図８（Ｃ）に示すように、所定周期の３回目のタイミング（周期が１／６０秒である場合には、２回目のタイミングから１／６０秒後）に、接触位置Ｐ２を検出したとする。すると、接触位置Ｐ２は、方向判定領域Ｃ２に属しているので、入力方向を「右」と判定する。ここで、Ｐ１からＰ２への方向は下方向であるので、入力方向を「下」と判定した方が自然であるが、このように方向判定領域Ｃ１〜Ｃ４を固定してしまうと、入力方向を判定する精度が落ちてしまい、プレーヤは直感的な方向の入力操作を行うことが難しくなってしまう。
【００８６】
２−３−２．入力方向を判定する処理例２
次に、指示位置の移動に方向判定領域Ｃ１〜Ｃ４を追従させて入力方向を判定する処理を、処理例２として説明する。処理例２は、処理例１の問題を解消でき、入力方向の判定の精度を上げることができ、プレーヤは直感的に方向指示を行うことができる。
【００８７】
例えば、図９（Ａ）に示すように、プレーヤがタッチパネルに触れると、接触位置Ｐ０が検出される。この接触位置Ｐ０を基準位置Ｂとし、判定領域Ａにおいて基準位置Ｂを中心に方向判定領域Ｃ１〜Ｃ４を設定する。
【００８８】
そして、最初に接触位置Ｐ０を検出したときのタイミングを１回目のタイミングとすると、所定周期の２回目のタイミングに検出された接触位置Ｐ１に基づいて入力方向を判定する。つまり、図９（Ｂ）に示すように、接触位置Ｐ１が方向判定領域Ｃ２に属しているので、方向判定領域Ｃ２に対応する方向である「右」を、入力方向として判定する。
【００８９】
そして、図９（Ｃ）に示すように、所定周期の３回目のタイミングで接触位置Ｐ２を検出した場合には、２回目のタイミングにおいて検出した接触位置Ｐ１（基準位置Ｂ）を中心に、方向入力判定Ｃ１〜Ｃ４を設定する。そして、３回目のタイミングで検出された接触位置Ｐ２に基づいて入力方向を判定する。つまり、図９（Ｃ）に示すように、接触位置Ｐ２が方向判定領域Ｃ３に属しているので、方向判定領域Ｃ３に対応する方向である「下」を、入力方向として判定する。
【００９０】
以後、スライド操作を行うことによって続けて接触位置を検出している場合には、直前のタイミング（第Ｎ−１のタイミング）で検出された接触位置を中心に方向判定領域Ｃ１〜Ｃ４を設定し、今回のタイミング（第Ｎのタイミング）で検出された接触位置がいずれの方向判定領域に属しているかを判定することによって入力方向を判定する。
【００９１】
このように、処理例２では、方向判定領域の基準となる基準位置Ｂが接触位置の移動に追従するので、結果的に方向判定領域が接触位置（広義には、指示位置）の移動に追従する。このように、処理例２では、方向判定領域が指示位置の移動に追従するので、プレーヤの入力方向を瞬時に正しく判定することができ、プレーヤは直感的に入力方向の操作を行うことができる。
【００９２】
２−３−３．入力方向を判定する処理例３
次に、指示位置の移動に、方向判定領域Ｃ１〜Ｃ４を追従させて、入力方向を判定する処理の他の例を、処理例３として説明する。処理例３は、接触位置Ｐから所定距離Ｌだけ離れた位置に基準位置Ｂを設定する。処理例３も、処理例１の問題を解消でき、入力方向の判定の精度を上げることができ、プレーヤは直感的に方向指示を行うことができる。
【００９３】
例えば、図１０（Ａ）に示すように、プレーヤがタッチパネルに触れると、接触位置Ｐ０が検出される。そして、接触位置Ｐ０を基準位置Ｂとし、判定領域Ａにおいて基準位置Ｂを中心に方向判定領域Ｃ１〜Ｃ４を設定する。
【００９４】
次に、最初に接触位置Ｐ０を検出したときのタイミングを１回目のタイミングとすると、所定周期の２回目のタイミングに検出された接触位置Ｐ１に基づいて入力方向を判定する。つまり、図１０（Ｂ）に示すように、接触位置Ｐ１が方向判定領域Ｃ２に属しているので、方向判定領域Ｃ２に対応する方向である「右」を、入力方向として判定する。
【００９５】
そして、図１０（Ｃ）に示すように、所定周期の３回目のタイミングで接触位置Ｐ３を検出した場合には、２回目のタイミングにおいて検出した接触位置Ｐ１から所定距離Ｌだけ離れた位置Ｑ１を基準位置Ｂとし、基準位置Ｂを中心に、方向入力判定Ｃ１〜Ｃ４を設定する。
【００９６】
言い換えると、図１０（Ｂ）に示すように、２回目のタイミングにおける基準位置Ｂを位置Ｐ０とし、２回目のタイミングにおける接触位置Ｐ１とすると、接触位置Ｐ１と基準位置Ｂとを結ぶライン上（直線上）であって、接触位置Ｐ１から所定距離Ｌだけ離れた位置Ｑ１を、図１０（Ｃ）に示すように、３回目のタイミングおける基準位置Ｂとして設定（更新）する。そして、位置Ｑ１を中心に、方向入力判定Ｃ１〜Ｃ４を設定する。
【００９７】
そして、図１０（Ｃ）に示すように、３回目のタイミングで検出された接触位置Ｐ２が方向判定領域Ｃ３に属しているので、方向判定領域Ｃ３に対応する方向である「下」を入力方向として判定する。
【００９８】
また、図１１（Ａ）に示すように、３回目のタイミングの基準位置Ｂとしている位置Ｑ１と、３回目のタイミングの接触位置Ｐ２とを結ぶ直線上であって、接触位置Ｐ２から所定距離Ｌだけ離れた位置Ｑ２を、４回目のタイミングにおける基準位置Ｂとする。つまり、４回目のタイミングにおいて、図１１（Ｂ）に示すように、位置Ｑ２（基準位置Ｂ）を中心に、方向判定領域Ｃ１〜Ｃ４を設定する。
【００９９】
以後、接触操作を行うことによって続けて接触位置を検出している場合には、直前のタイミング（第Ｎ−１のタイミング）で検出された接触位置から所定距離Ｌだけ離れた位置を中心に、方向判定領域Ｃ１〜Ｃ４を設定し、今回のタイミング（第Ｎのタイミング）で検出された接触位置がいずれの方向判定領域に属しているかを判定することによって入力方向を判定する。
【０１００】
このように、処理例３では、各方向判定領域Ｃ１〜Ｃ４を、接触位置から所定距離Ｌだけ離れた位置の移動に追従させるので（広義には、各方向判定領域Ｃ１〜Ｃ４を、接触位置の移動に追従させるので）、プレーヤの入力方向を瞬時に正しく判定することができ、プレーヤは直感的に入力方向の操作を行うことができる。
【０１０１】
なお、処理例３では、タッチパネルの接触位置が所定期間Ｔ１（例えば、１秒間）変動しない場合は、図１１（Ｃ）に示すように、所定期間Ｔ１経過した時点から第２の所定期間Ｔ２（例えば、１秒間）かけて、第Ｎのタイミングで検出した基準位置Ｂを、第Ｎ−１のタイミングで検出した接触位置Ｐ２に滑らかに移動させるようにしてもよい。このようにすれば、所定期間Ｔ２経過時から接触位置が移動した場合に、入力方向判定をより正しく行うことができる。
【０１０２】
また、本実施形態の処理例２、３において、接触位置の移動に方向判定領域Ｃ１〜Ｃ４が追従するとは、方向判定領域Ｃ１〜Ｃ４の大きさ（面積）、形状を変化させることを妨げるものではない。また、本実施形態の処理例２、３では、タッチパネルの全領域を判定領域Ａとしているが、タッチパネルの一部の領域を判定領域Ａとしてもよい。そして、タッチパネルの一部の領域を判定領域Ａとしている場合には、判定領域Ａの大きさ、形状の少なくとも１つを変化させてもよいし変化させなくてもよい。なお、判定領域Ａが移動する場合には、接触位置の移動に追従させて判定領域Ａを移動させてもよい。
【０１０３】
２−４．表示制御
本実施形態では、入力方向を示す入力方向画像（バーチャルパッド画像）Ｍ１、Ｍ２を表示させるようにしてもよい。例えば、図１２（Ａ）に示すようにプレーヤがタッチパネルをタッチし、図１２（Ｂ）に示すように、右方向にスライド操作することによって、右方向への入力方向であると判定された場合には、入力方向画像Ｍ１のプレーヤキャラクタの向きを右方向に向け、さらに、プレーヤキャラクタが所定位置から右方向にずれて動くように表示制御する。
【０１０４】
また、本実施形態では、接触位置の移動に、入力方向画像Ｍ２を追従させて表示させるようにしてもよい。つまり、右方向にスライド操作することにより、入力方向画像Ｍ２もプレーヤキャラクタが右方向を向き、かつ、入力方向画像Ｍ２自体を右方向に移動して表示させるようにしてもよい。このようにすれば、プレーヤは入力方向画像Ｍ１を見なくても、接触位置の近くにある入力方向画像Ｍ２を見ることにより、プレーヤの視線を大きくずらすことなく入力方向を認識することができる。なお、入力方向画像Ｍ２は接触位置と同じ位置に配置してもよいし、ややずれた位置（例えば、接触位置から所定距離Ｌだけ離れた位置、基準位置）に配置してもよい。
【０１０５】
また、図１３（Ａ）（Ｂ）に示すように、プレーヤが上方向にスライド操作することによって、入力方向が上方向であると判定された場合には、入力方向画像Ｍ２のプレーヤキャラクタの向きを上方向に向け、さらに、プレーヤキャラクタが所定位置から上方向にずれて動くように表示制御する。また、接触位置の移動に、入力方向画像Ｍ２を追従させて表示させるようにしてもよい。つまり、上方向にスライド操作することにより、入力方向画像Ｍ２も上方向に移動して表示させるようにしてもよい。
【０１０６】
なお、入力方向判定の処理例３において、タッチパネルの接触位置が所定期間Ｔ１変動しない場合において、第２の所定期間Ｔ２かけて基準位置を移動させる処理に連動して、入力方向画像Ｍ１をプレーヤキャラクタの位置を元の位置（所定位置）に戻すようにしてもよい。このようにすれば、プレーヤは、視覚的に、基準位置が接触位置に戻る様子を確認することができる。
【０１０７】
２−５．移動処理
本実施形態では、オブジェクト空間において、判定された入力方向に基づいてオブジェクトを移動させる処理を行う。つまり、本実施形態によれば、プレーヤが接触操作領域においてスライド操作を行うことによって、プレーヤオブジェクトＰＯＢの移動方向を指示することができる。
【０１０８】
例えば、図１２（Ａ）に示すように、プレーヤオブジェクトＰＯＢが下方向に移動していたとする。そして、プレーヤが右方向にスライド操作することによって、入力方向が右方向であると判定されると、図１２（Ｂ）に示すように、プレーヤオブジェクトＰＯＢの移動方向を右方向に変更する。
【０１０９】
また、例えば、図１３（Ａ）に示すように、プレーヤオブジェクトＰＯＢが右方向に移動していたとする。そして、プレーヤが上方向にスライド操作することによって、入力方向が上方向であると判定されると、図１３（Ｂ）に示すように、プレーヤオブジェクトＰＯＢの移動方向を上方向に変更する。
【０１１０】
なお、本実施形態では、プレーヤオブジェクトＰＯＢを、障害物に障害されない限り常に移動制御させている。つまり、接触位置が遊び領域Ｄに属している場合や接触位置を検出しない等で入力方向が検出されない場合においても、障害物に障害されない限り常にプレーヤオブジェクトＰＯＢを移動させている。かかる場合には、直前に判定された入力方向に基づいて決定される移動方向に、プレーヤオブジェクトＰＯＢを継続して移動制御させる。
【０１１１】
２−６．フローチャート
図１４を用いて、本実施形態における入力判定処理の流れについて説明する。まず、接触を検出したか否かを判断する（ステップＳ１）。例えば、判定領域Ａにおいて、所定の周期で（例えば、１／６０毎に）接触を検出したか否かを判定する。
【０１１２】
接触を検出すると（ステップＳ１のＹ）、接触位置を基準位置に設定し（ステップＳ２）、基準位置に基づいて、遊び領域、及び、方向判定領域を設定する（ステップＳ３）。例えば、基準位置に基づいて、判定領域Ａにおいて、遊び領域、及び、方向判定領域を設定する。
【０１１３】
次に、継続して接触検出しているか否かを判断する（ステップＳ４）。つまり、所定の周期で（例えば、１／６０秒経過する度に）、接触位置を検出しているか否かを判断する。そして、継続して接触検出している場合には（ステップＳ４のＹ）、ステップＳ５に進み、そうでない場合は（ステップＳ４のＮ）、処理を終了する。
【０１１４】
そして、接触位置が遊び領域外か否かを判断する（ステップＳ５）。例えば、接触位置が遊び領域外に位置している場合には（ステップＳ５のＹ）、ステップＳ６に進む。一方、接触位置が遊び領域内に位置している場合には（ステップＳ５のＮ）、ステップＳ８に進む。
【０１１５】
次に、接触位置が属する方向判定領域に基づいて、入力方向を判定する（ステップＳ６）。例えば、図７に示すように、接触位置が位置する方向判定領域がＣ１である場合には、方向判定領域Ｃ１が示す方向が上方向であるので、入力方向を「上方向」として判定する。
【０１１６】
次に、入力方向に基づいて、プレーヤオブジェクトを移動させる処理を行う（ステップＳ７）。例えば、入力方向が上方向である場合には、プレーヤオブジェクトの移動方向を画面の上方向に決定する。そして決定された方向（画面の上方向）にプレーヤオブジェクトを移動させる処理を行う。
【０１１７】
次に、接触位置と基準位置とのライン上であって接触位置から所定距離Ｌだけ離れた位置を、新たな基準位置として設定する（ステップＳ８）。例えば、図１０（Ｂ）に示すように、第Ｎのタイミングにおいて、基準位置Ｂが位置Ｐ０とすると、接触位置Ｐ１と基準位置Ｂとのライン上（直線上）であって、接触位置Ｐ１から所定距離Ｌだけ離れた位置Ｑ１を、第Ｎ＋１のタイミングの基準位置Ｂとして設定する。
【０１１８】
そして、新たに設定された基準位置に基づいて、遊び領域、及び、方向判定領域を設定する（ステップＳ９）。例えば、図１０（Ｃ）に示すように、新たな位置Ｑ１に設定された基準位置Ｂを中心に、遊び領域Ｄと、方向判定領域Ｃ１〜Ｃ４とを設定する。そして、ステップＳ９の処理が終了すると、ステップＳ４に戻る。例えば、継続して接触検出していない場合には（ステップＳ４のＮ）、処理を終了する。例えば、プレーヤが指をタッチパネルから離した場合などは処理を終了することになる。
【０１１９】
３．応用例
３−１．複数種類の方向制御
本実施形態では、複数の判定領域を設定し、プレーヤが各判定領域で方向入力操作を行えるようにしてもよい。このようにすれば、複数種類の方向制御を同時に行うことができる。
【０１２０】
具体的に説明すると、図１５に示すように、判定領域Ａ１において、基準位置Ｂ１を設定し、基準位置Ｂ１に基づいて４方向（上、右、下、左）の各方向に対応する方向判定領域Ｃ１１〜Ｃ１４、遊び領域Ｄ１を設定する。そして、判定領域Ａ１において、方向判定領域Ｃ１１〜Ｃ１４のうち、第１の接触位置が属する方向判定領域に基づいて、第１の入力方向を判定する。
【０１２１】
また、判定領域Ａ２において、基準位置Ｂ２を設定し、基準位置Ｂ２に基づいて４方向（上、右、下、左）の各方向に対応する方向判定領域Ｃ２１〜Ｃ２４、遊び領域Ｄ２を設定する。そして、判定領域Ａ２において、方向判定領域Ｃ２１〜Ｃ２４のうち、第２の接触位置が属する方向判定領域に基づいて、第２の入力方向を判定する。
【０１２２】
例えば、シューティングゲームの場合には、判定領域Ａ１において第１の入力方向を判定し、第１の入力方向に基づいてプレーヤキャラクタの移動方向を制御する。そして、判定領域Ａ２において第２の入力方向を判定し、第２の入力方向に基づいて弾の発射方向を制御する等、複数種類の方向制御を同時に行うことができる。
【０１２３】
なお、複数の判定領域Ａ１、Ａ２を設定する場合には、接触検出領域において各判定領域Ａ１、Ａ２が重複しないように設定する。各判定領域Ａ１、Ａ２が重複してしまうと、第１の入力方向と第２の入力方向それぞれの判定を正しく行うことができなくなるからである。なお、判定領域は１つ、２つに限らず、３つ以上設定してもよい。
【０１２４】
３−２．移動制御と停止制御を行う場合の方向判定領域の設定例
本実施形態では、アクションゲームなどのゲーム処理に応用してもよい。例えば、プレーヤオブジェクトを移動させるだけでなく、停止制御を行う処理に応用してもよい。
【０１２５】
例えば、接触検出領域において継続して接触位置を検出している場合には、接触位置が属する方向判定領域に基づいて入力方向を判定し、入力方向に基づいてプレーヤオブジェクトを移動させる。そして、接触検出領域において接触位置を検出していない場合には、プレーヤオブジェクトを停止させるように制御する。また、接触検出領域において遊び領域Ｄにおいて接触位置を検出した場合においてもプレーヤオブジェクトを停止させるように制御する。
【０１２６】
このように、プレーヤオブジェクトに対して移動制御と停止制御の両方を行う場合には、入力方向判定の処理例３で説明したように、接触位置から所定距離Ｌだけ離れた位置を基準位置とし、基準位置を中心に各方向判定領域を設定することが望ましい。このようにすれば、連続してスライドし続ける操作が不要になり、操作を簡単にすることができるからである。
【０１２７】
具体的に、接触位置に基準位置を設定した場合と、接触位置とは異なる位置に基準位置を設定する例と対比して説明する。
【０１２８】
例えば、接触位置に基準位置を設定する例について図１６（Ａ）〜（Ｃ）を用いて説明する。まず、図１６（Ａ）に示すように、プレーヤがタッチパネルに触れ、接触位置Ｐ０が検出されると接触位置Ｐ０に基準位置Ｂを設定する。
【０１２９】
そして、最初に接触位置Ｐ０を検出したときのタイミングを１回目のタイミングとすると、図１６（Ｂ）に示すように、プレーヤがスライド操作を行い、所定周期の２回目のタイミングに、検出された接触位置Ｐ１に基づいて入力方向を判定する。つまり、接触位置Ｐ１が方向判定領域Ｃ２に属しているので、右方向の入力方向であると判定し、プレーヤオブジェクトを右方向に移動させる。
【０１３０】
そして、図１６（Ｃ）に示すように、３回目のタイミングにおいて、２回目のタイミングで検出した接触位置Ｐ１を基準位置Ｂとし、当該基準位置Ｂを中心に方向判定領域Ｃ１〜Ｃ４を設定する。ここで、図１６（Ｃ）に示すように、３回目のタイミングにおいて取得した接触位置が位置Ｐ１を維持している場合には、プレーヤオブジェクトを停止させることになる。
【０１３１】
つまり、３回目のタイミングにおいて接触位置Ｐ１を検出した場合には、その接触位置Ｐ１は遊び領域Ｄに属することになるので、プレーヤオブジェクトは入力方向が判定されず、プレーヤオブジェクトを停止制御させる。したがって、例えば、３回目のタイミング以降継続して右方向にプレーヤオブジェクトを移動させたい場合には、さらに右方向にスライド操作をし続ける必要がある。このようにスライド操作が継続的に強いられてしまうと、操作環境が悪くなりプレーヤにとって使い勝手が悪くなる。
【０１３２】
一方、接触位置とは異なる位置に基準位置を設定する例を図１７（Ａ）〜（Ｃ）を用いて説明する。まず、図１７（Ａ）に示すように、プレーヤがタッチパネルに触れ、接触位置Ｐ０が検出されると接触位置Ｐ０に基準位置Ｂを設定する。
【０１３３】
そして、最初に接触位置Ｐ０を検出したときのタイミングを１回目のタイミングとすると、図１７（Ｂ）に示すように、プレーヤがスライド操作を行い、２回目のタイミングに検出された接触位置Ｐ１に基づいて入力方向を判定する。つまり、２回目のタイミングでは、右方向の入力方向であると判定し、プレーヤオブジェクトを右方向に移動させる。
【０１３４】
そして、図１７（Ｃ）に示すように、３回目のタイミングにおいて、２回目のタイミングで検出した接触位置Ｐ１から所定距離Ｌだけ離れた位置Ｑ１を基準位置Ｂとし、基準位置Ｂを中心に方向判定領域Ｃ１〜Ｃ４を設定する。このようにすれば、３回目のタイミングにおいて検出される接触位置が位置Ｐ１である場合であっても、接触位置Ｐ１が方向判定領域Ｃ２に属しているので右方向の入力方向であると判定し、プレーヤオブジェクトを右方向に移動させることができる。なお、第Ｎのタイミングの基準位置Ｂを、第Ｎ−１のタイミングで検出された指示位置から、第Ｎ−１のタイミングで設定された基準位置Ｂ側に所定距離Ｌだけ離れた位置に設定する。このようにすれば、例えば、図１７（Ｃ）に示すように右の方向指示を連続して行うことが容易となるからである。
【０１３５】
つまり、図１７（Ｃ）のように、プレーヤは、プレーヤオブジェクトを継続的に右方向に移動させたい場合は、タッチパネルの位置Ｐ１のあたりを維持したまま接触操作を行い、一方、プレーヤオブジェクトを停止させたい場合は、タッチパネルから指を離せばよいので、プレーヤは移動方向の指示、停止指示を簡単に行うことができる。このように、図１７（Ａ）〜（Ｃ）に示すように、基準位置Ｂを接触位置から所定距離Ｌだけ離れた位置に設定することによって、プレーヤにとって使い勝手の良い操作環境を提供できる。
【０１３６】
なお、上述した処理例３では、図１１（Ｂ）（Ｃ）に示すように、接触位置が所定期間Ｔ１変動しない場合において、所定期間Ｔ２かけて第Ｎのタイミングで検出した基準位置を第Ｎ−１のタイミングで検出した接触位置に移動させることを説明した。しかし、接触位置が遊び領域Ｄ内にある場合にプレーヤオブジェクトを停止制御する場合には、接触位置が所定期間Ｔ１変動しない場合であっても、第Ｎのタイミングで検出した基準位置を第Ｎ−１のタイミングで検出した接触位置に移動させないように制御する。第Ｎのタイミングの基準位置を第Ｎ−１で検出された接触位置に設定してしまうと、プレーヤオブジェクトが停止してしまい操作環境が悪くなってしまうからである。
【０１３７】
３−３．入力部の種類
本実施形態では、タッチパネルなどのタッチ操作による入力だけでなく、指示位置を検出する他の入力機器に応用してもよい。かかる場合には、検出された指示位置の移動に、各方向判定領域を追従させるように制御すればよい。
【０１３８】
例えば、他の入力機器の一例としてマウスを利用して指示位置を入力する場合には、マウスでボタンの信号を検出中に指示位置を検出し、入力方向を判定するようにしてもよい。そして、検出される指示位置の移動（ドラッグ）に、各方向判定領域を追従させて設定し、入力方向を判定するようにしてもよい。
【０１３９】
３−４．判定領域の数
本実施形態では、判定すべき方向が４つであるため、４つの方向判定領域を設定する例について説明したが、判定すべき方向が左方向と右方向の２つの場合には、基準位置Ｂに基づいて２つの方向判定領域を設定するようにしてもよい。例えば、図１８に示すように、基準位置Ｂに基づいて、左半分の方向判定領域Ｅ１を左方向に対応付け、右半分の方向判定領域Ｅ２を右方向に対応づける。そして、過去の指示位置に基づいて、方向判定領域Ｅ１、Ｅ２を設定し、指示位置の移動に、方向判定領域Ｅ１、Ｅ２を追従させるようにする。なお、判定すべき方向は、２つ、４つに限らず、３つ、５つ以上でもよい。つまり、入力判定すべき方向の数分の方向判定領域を設定すればよい。
【０１４０】
３−５．その他
本実施形態では、アクションゲーム、ロールプレイングゲーム、対戦ゲーム、レースゲーム、音楽ゲーム、格闘ゲーム、シューティングゲーム、フライトシューティングゲームなど種々のゲームに応用することができる。
【０１４１】
なお、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１４２】
本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【０１４３】
１０  端末装置、
１２  表示画面（ディスプレイ、タッチパネル、タッチパネル型ディスプレイ）、
ＰＯＢ  プレーヤオブジェクト、ＥＯＢ  敵オブジェクト、ＣＯＢ  餌オブジェクト
ｖ  移動方向、Ａ  判定領域、Ｂ  基準位置（基準点）、
Ｃ１、Ｃ２、Ｃ３、Ｃ４  方向判定領域、Ｄ  遊び領域、
Ｐ０、Ｐ１、Ｐ２  接触位置、Ｑ１、Ｑ２  特定位置、Ｌ  所定距離、１００  処理部、１１０  オブジェクト空間設定部、１１１  取得部、１１２  領域設定部、
１１３  入力方向判定部、１１４  移動処理部、１１５  ゲーム演算部、
１１６  表示制御部、１２０  描画部、１３０  音処理部、１７０  記憶部、
１７１  主記憶部、１７２  画像バッファ、１５０  撮像部、１６０  入力部、
１６２  検出部、１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９６  通信部
【図１】
0005813948.tif 000002
【図２】
0005813948.tif 000003
【図３】
0005813948.tif 000004
【図４】
0005813948.tif 000005
【図５】
0005813948.tif 000006
【図６】
0005813948.tif 000007
【図７】
0005813948.tif 000008
【図８】
0005813948.tif 000009
【図９】
0005813948.tif 000010
【図１０】
0005813948.tif 000011
【図１１】
0005813948.tif 000012
【図１４】
0005813948.tif 000013
【図１５】
0005813948.tif 000014
【図１６】
0005813948.tif 000015
【図１７】
0005813948.tif 000016
【図１８】
0005813948.tif 000017
【図１２】
0005813948.tif 000018
【図１３】
0005813948.tif 000019