以下、本発明に係る実施形態を図面に基づいて説明する。なお、図面において同一又は対応する構成には同一の符号を付し、繰り返しの説明を省略することがある。また、特に図面を参照する必要のないときは、符号を省略して説明することがある。
[1.ゲーム装置のハードウェア構成]
図1は、本発明の実施形態に係るゲーム装置10(ゲーム制御装置)のハードウェア構成を示す図である。ゲーム装置10は、ユーザが操作するコンピュータであり、例えば、スマートフォンなどの携帯電話や、タブレット型コンピュータなどの携帯情報端末によって実現されてよい。他にも例えば、ゲーム装置10は、携帯型ゲーム機、据置型ゲーム機、ラップトップ型コンピュータ、又はデスクトップ型コンピュータによって実現されてもよい。本実施形態では、ゲーム装置10が、スマートフォンなどの携帯電話である場合を説明する。図1に示すように、ゲーム装置10は、制御部11、記憶部12、通信部13、操作部14、表示部15、及び音声出力部16を含む。
制御部11は、少なくとも1つのマイクロプロセッサなどを含み、オペレーティングシステムやその他のプログラムに従って処理を実行する。記憶部12は、主記憶部(例えば、RAM)及び補助記憶部(例えば、不揮発性の半導体メモリ)を含み、プログラムやデータを記憶する。なお、ゲーム装置10が、据置型ゲーム機、ラップトップ型コンピュータ又はデスクトップ型コンピュータである場合、記憶部12は、ハードディスクドライブやソリッドステートドライブなどの補助記憶部を含むようにしてもよい。通信部13は、通信ネットワークを介してデータ通信を行うネットワークカードを含む。
操作部14は、ユーザが操作を行うための入力デバイスである。操作部14は、ボタン、レバー、又はキーボードなどを含むようにしてもよいが、ここでは、操作部14は、ポインティングデバイス14Aを含む。ポインティングデバイス14Aは、平面(例えば、画面やタッチパネルなどの表面)上の位置を指定するための入力デバイスであり、例えば、タッチパネル、タッチパッド、非接触型パネル、マウス、家庭用ゲーム機で用いられるリモコン型コントローラである。ポインティングデバイス14Aは、検出した平面上の位置を示す信号を制御部11に出力する。以降、ポインティングデバイス14Aが検出した位置を検出位置という。検出位置は、スクリーン座標系の2次元座標で示される。スクリーン座標は、タッチパネルや画面などの所定の位置を原点(例えば、左上の点)としたX軸−Y軸の座標で示される。検出位置は、一定の検出周期ごとに検出される。
本実施形態では、ポインティングデバイス14Aがタッチパネルである場合を説明する。タッチパネルとしては、静電容量式などの各種方式を採用してよい。例えば、ポインティングデバイス14Aは、透明又は半透明に形成されており、後述する表示部15に重ねて設けられている。ポインティングデバイス14Aは、ユーザが接触した位置を所定期間(例えば、1/60秒間)ごとに繰り返し検出し、検出位置を制御部11に出力する。
表示部15は、液晶表示パネルや有機ELディスプレイなどであり、制御部11の指示に従って画像を表示する。音声出力部16は、スピーカやヘッドホンなどであり、制御部11の指示に従って音声を出力する。
なお、記憶部12に記憶されるものとして説明するプログラムやデータは、例えば、通信部13及び通信ネットワークを介してゲーム装置10に供給されてよい。また、ゲーム装置10は、情報記憶媒体(例えば、光ディスク又はメモリカードなど)に記憶されたプログラム又はデータを読み取るための構成要素(例えば、光ディスクドライブ又はメモリカードスロットなど)を含むようにしてもよい。この場合、上記情報記憶媒体を介してゲーム装置10にプログラムやデータが供給されるようにしてもよい。
[2.ゲーム装置が実行する処理の概要]
本実施形態では、ゲーム装置10で実行されるゲームの一例として、オブジェクトが仮想世界の中を移動するゲームについて説明する。本実施形態では、オブジェクトは、ユーザの操作対象であり、例えば、仮想世界の中を移動する物体である。キャラクタ、飛行機、戦車、又はアイテムなどがオブジェクトの一例に相当する。仮想世界は、ゲームの世界を表現するための仮想的な世界であり、2次元的な世界であってもよいし、3次元的な世界であってもよい。ゲームが始まると、仮想世界の様子を示すゲーム画像が表示部15に表示される。
図2は、ゲーム画像の一例を示す図である。図2に示すように、ゲーム画像20は、オブジェクト22が配置された仮想世界の様子を示す。ゲーム画像20には、仮想的な方向指示パッド30も表示される。方向指示パッド30は、ユーザがオブジェクト22の移動方向を指示するための画像である。ユーザは、方向指示パッド30上に指などを接触させることにより、オブジェクト22の移動方向を指示する。
図3は、方向指示パッド30の詳細を示す図である。なお、本実施形態では、上下左右の4方向を入力できるようにする場合について説明するが、4方向よりも多い方向を入力できるようにしたり、4方向よりも少ない方向を入力できるようにしたりしてもよい。例えば、上、下、左、右、左上、右上、左下、右下の8方向を入力できるようにしてもよい。ユーザが入力可能な方向の数に応じて方向指示パッド30の領域が分割されているようにすればよい。
本実施形態では、方向指示パッド30には、上下左右の4方向にそれぞれ対応する4つの領域として、上方向に対応する上領域32U、下方向に対応する下領域32D、左方向に対応する左領域32L、及び右方向に対応する右領域32Rが設定されている。上領域32U、下領域32D、左領域32L、及び右領域32Rは、それぞれ基準点34を中心として放射状に設定されている。なお、基準点34は、方向指示パッド30全体の重心又は外接矩形の中心である。基準点34を中心とした所定半径の円を、互いに直交する2本の境界線(所定の太さの「×」の線)で分割される4つの領域が、上領域32U、下領域32D、左領域32L、及び右領域32Rとなる。なお、図3の例では、上領域32U、下領域32D、左領域32L、及び右領域32Rの各々は互いに隣接又は重畳せず、所定の間隔を空けて配置されているが、これらは互いに隣接する位置に配置されてもよい。
上領域32Uは、基準点34の上側に位置している。上領域32Uは、基準点34から上方向に所定距離だけ離れた点34Uを基準にして上方向に広がる90度の扇形領域である。下領域32Dは、基準点34の下側に位置している。下領域32Dは、基準点34から下方向に所定距離だけ離れた点34Dを基準にして下方向に広がる90度の扇形領域である。左領域32Lは、基準点34の左側に位置している。左領域32Lは、基準点34から左方向に所定距離だけ離れた点34Lを基準にして左方向に広がる90度の扇形領域である。右領域32Rは、基準点34の右側に位置している。右領域32Rは、基準点34から右方向に所定距離だけ離れた点34Rを基準にして右方向に広がる90度の扇形領域である。
ユーザは、上領域32U、下領域32D、左領域32L、及び右領域32Rの何れかに指などを接触させることによって、上下左右のうちの何れかの方向を指示する。ユーザが何れかの方向を指示すると、当該方向に基づいてゲーム処理が実行される。ここでは、ユーザによって指示された方向に基づいてオブジェクト22の移動方向が設定される。
図4は、ユーザが方向指示パッド30を利用して方向を指示する様子を示す図である。例えば、ユーザが方向指示パッド30を見ながら方向を指示する場合、指示したい方向以外の所に触れないように、上領域32Uの中心点36U、下領域32Dの中心点36D、左領域32Lの中心点36L、及び右領域32Rの中心点36Rの何れかに触れると考えられる。なお、中心点36U,36D,36L,36Rは、それぞれ上領域32U、下領域32D、左領域32L、及び右領域32Rの重心又は外接矩形の中心であってもよいし、予め設定された任意の点であってもよい。
例えば、ユーザが方向指示パッド30を見ながら左領域32Lを触れようとすると、中心点36L付近の位置に触れる可能性が高い。例えば、中心点36L付近の位置P1をユーザが触れた位置とすると、オブジェクト22が左に移動する。その後、ユーザがオブジェクト22を右に移動させる場合、左領域32Lに触れている指を離さずにそのまま右領域32Rにスライドさせたり、左領域32Lに触れた指をいったん離して右領域32Rに触れたりする。
先述したように、ユーザは方向指示パッド30を見ずにゲームをプレイすることがあるので、例えば、ユーザが右領域32Rの中心点36Rに触れているつもりでも、実際には、右領域32Rの端部付近の位置P2に触れていることがある。その後、ユーザが指などをすぐに離したり、すぐに移動したりした場合は位置P2に誤って触れた可能性があると考えられるが、ユーザがそのまま位置P2付近に触れ続けている場合は意志を持って右を指示していると考えられる。
上記のように、ユーザが触れているつもりの中心点36Rと、実際に触れている位置P2付近と、に差異があると先述したように誤入力の原因となる(例えば、指がずれて下領域32Dに入ってしまう)。このため、本実施形態のゲーム装置10では、図4のような状態になると、上領域32U、下領域32D、左領域32L、及び右領域32Rが基準点34を中心にして右回りに回転移動し(後述する図10参照)、上記の差異を小さくして誤入力の発生を軽減するようになっている。以降、この技術の詳細を説明する。
[3.ゲーム装置において実現される機能]
図5は、ゲーム装置10で実現される機能のうち、本実施形態に関連する機能を示す機能ブロック図である。図5に示すように、ゲーム装置10は、検出位置取得部100、データ記憶部101、指示内容判定部102、静止状態判定部103、指示位置取得部104、及び領域変更部105を含む。データ記憶部101は、記憶部12を主として実現され、他の機能は、制御部11を主として実現される。
[3−1.検出位置取得部]
検出位置取得部100は、ポインティングデバイス14Aに入力されることにより検出される検出位置を取得する。ポインティングデバイス14Aに対して行われる入力は、ユーザの入力である。例えば、タッチパネルやタッチパッドに触れること、非接触型パネルに手などをかざすこと、マウスを移動させること、リモコン型コントローラの向きを変えることなどが入力に相当する。本実施形態では、ポインティングデバイス14Aの一例としてタッチパネルを説明するので、ユーザが指などでタッチパネルの表面に触れることが入力に相当する。
検出位置取得部100は、ポインティングデバイス14Aにおいて所定時間(例えば、1/60秒)ごとに繰り返し検出された検出位置を取得する。本実施形態では、検出位置取得部100は、検出時刻と検出位置とを関連付けて後述の検出位置データDT1に格納し、検出位置の履歴を記録する。検出時刻は、検出位置が検出された時点を特定可能な時刻であればよく、例えば、検出位置が検出された時点そのもの、又は、その時点の所定時間前後した時点である。検出時刻は、検出位置が検出されたことに応じて取得される時刻であり、日時又は時刻で表されてよいし、過去の所定時点(例えば、検出の開始時点)からの経過時間で表されてもよい。
[3−2.データ記憶部]
データ記憶部101は、ゲームを実行するために必要なデータを記憶する。ここでは、データ記憶部101が記憶するデータとして、検出位置データDT1を説明する。図6は、検出位置データDT1のデータ格納例を示す図である。図6に示すように、検出位置データDT1には、検出位置取得部100が検出した検出位置が時系列順に格納される。例えば、検出位置データDT1には、検出時刻と検出位置とが関連付けられて格納される。
なお、データ記憶部101は、他のデータを記憶してもよい。例えば、データ記憶部101は、実行中のゲームの状況を示すゲーム状況データDT2を記憶してもよい。図7は、ゲーム状況データDT2のデータ格納例を示す図である。例えば、ゲーム状況データDT2は、仮想世界の様子を示す情報を含み、オブジェクト22の位置、向き、及び移動方向などが格納される。他にも例えば、ゲーム状況データDT2は、方向指示パッド30の現在の状態を示す情報を含んでいてもよい。方向指示パッド30の現在の状態を示す情報は、方向指示パッド30の回転量やその算出に関するパラメータなどを含む。詳細は後述するが、本実施形態では、方向指示パッド30に対応するレイヤが回転するので、ゲーム状況データには、レイヤの回転軸を特定するための基準点に関するパラメータと、レイヤの回転角度に関するパラメータと、現在の領域に関するパラメータと、現在の領域の中心点に関するパラメータと、回転角度の初期値に関するパラメータと、が格納される。回転角度は、例えば、右回り(時計回り)を正として左回り(反時計回り)を負としてもよいし、これらが逆であってもよい。更に、角度の正負ではなく、回転方向を示す情報が回転角度とは別個に格納されていてもよい。図7に示すデータ格納例では、方向指示パッド30は、右回りに10度だけ回転した状態となっている。
現在の領域に関するパラメータは、現在入力されている領域に関するパラメータであり、現在入力されている領域を識別するパラメータともいえる。ここでは、現在の領域に関するパラメータは、4つの領域32の何れかに関するパラメータが格納される。即ち、本実施形態では、現在の領域に関するパラメータは、扇形の形状やその大きさ、表示位置を決定するために必要な座標、及び半径などが設定された各領域を識別するためのパラメータであればよい。現在の領域の中心点に関するパラメータは、領域に関するパラメータにより識別される領域に設定された点である。現在の領域の中心点に関するパラメータは、現在入力されている領域の中心点の位置を識別可能な情報であればよく、例えば、4つの中心点36の何れかの座標が格納される。図7のデータ格納例では、ユーザが右領域32Rに触れておりオブジェクトが右方向に移動している状態なので、現在の領域に関するパラメータには、右領域32Rに関するパラメータ(図7では、単に「右領域」と記載している。)が格納され、現在の領域の中心点に関するパラメータには、右領域32Rの中心点36Rの座標が格納される。なお、ユーザがどの領域32にも触れていない場合には、現在の領域に関するパラメータと現在の領域の中心点に関するパラメータには、何も格納されないようにしてもよい。回転角度の初期値に関するパラメータは、ゲーム開始時などにおける回転角度が格納され、ここでは、0度となる。
また、ゲーム状況データDT2には、現在の指示位置に関するパラメータが格納されていてもよい。現在の指示位置に関するパラメータは、指示位置を特定可能な情報であればよく、例えば、最新の指示位置の座標である。なお、ゲーム状況データに格納される内容は、上記の例に限られず、他にも例えば、レイヤL2,L3に関するパラメータやゲームのスコアなどの情報が格納されていてもよい。
[3−3.指示内容判定部]
指示内容判定部102は、複数の指示内容のそれぞれに対応するように設定された複数の領域と、検出位置と、の位置関係に基づいて指示内容を判定する。「指示内容」とは、例えば、ユーザがポインティングデバイス14Aを用いてゲーム装置10に指示する内容である。例えば、方向指示、操作対象の動作内容の指示、又は表示部15に表示すべき画面の指示などのゲーム装置10が実行すべき処理の指示が、指示内容に相当する。本実施形態では、複数の指示内容は、方向に関する指示である場合を説明する。方向は、互いに異なる方向であり、2次元的な方向であってもよいし、3次元的な方向であってもよい。例えば、上下左右の4方向である。
「領域」は、例えば、平面(例えば、タッチパネルや画面)上に設定される一定の広がりを持った範囲のことである。別の言い方をすれば、領域は、スクリーン座標系で表現される領域のことである。本実施形態では、方向指示パッド30の上領域32U、下領域32D、左領域32L、及び右領域32Rの各々が「領域」に相当する。以降、これらをまとめて単に領域32ともいう。「複数の指示内容のそれぞれに対応するように設定された複数の領域」とは、例えば、指示内容と領域32とが1対1で対応することになる。「位置関係」とは、例えば、2つの位置の距離又は方向であり、一方から見たときの他方の位置(相対位置)である。
例えば、指示内容判定部102は、領域32内に検出位置が含まれるか否か、又は、領域32から所定距離以内に検出位置があるか否かを判定する。ここでは、指示内容判定部102は、検出位置が複数の領域32の何れに含まれるかを判定することによって、指示内容を判定する場合を説明する。この判定自体は、公知の内外判定アルゴリズムを利用すればよい。なお、「検出位置が複数の領域32の何れに含まれる」とは、検出位置が何れかの領域32の内部にあることである。指示内容判定部102は、検出位置を含む領域32に対応する指示内容(即ち、方向)を、ユーザによる指示内容として取得することになる。
[3−4.静止状態判定部]
静止状態判定部103は、所定期間内に検出された検出位置を用いて、検出位置が静止状態であるかを判定する。「所定期間」とは、例えば、現時点の所定時間前から現時点までの期間、又は、現時点の第1時間前から、現時点の第2時間(第2時間は第1時間より短い)前までの期間としてよい。所定期間の長さは、固定値(例えば、1/2秒間)であってもよいし、可変値であってもよい。所定期間が可変値である場合には、所定期間はユーザにより指定された長さの期間であってよい。また、所定期間の間、検出位置が同一の領域内にあることを判定条件の一つとしてもよい。
「静止状態」とは、例えば、所定期間内に検出された複数の検出位置の変化量(即ち、複数の検出位置間の距離)が閾値未満になること、一定範囲内(例えば、所定期間の開始時点における検出位置を原点とする所定半径の円内)に検出位置が含まれる状態が所定期間継続すること、又は、検出位置が変化した速度が閾値未満になることである。別の言い方をすれば、静止状態は、所定期間継続してポインティングデバイス14Aに対する入力が略同一の状態に保持されている状態である。略同一の状態とは、入力の変化が閾値未満となることである。静止状態であると判定されると、誤入力ではなく、ユーザが明確な意志を持ってポインティングデバイス14Aに対して入力しているものと推定される。
図8は、静止状態の判定方法の説明図である。ここでは、説明の簡略化のために、静止状態判定部103が、所定期間内に取得された3つの検出位置P10〜P12に基づいて静止状態を判定する場合を説明する。なお、検出位置P10〜P12は、それぞれ検出時刻の時系列順であり、検出位置P10が最も古く、検出位置P12が最も新しい。例えば、静止状態判定部103は、検出位置P10〜P12の互いの距離が閾値未満であるかを判定し、閾値未満である場合に静止状態であると判定する。
他にも例えば、静止状態判定部103は、検出位置P10〜P12が一定範囲内(例えば、検出位置P10を中心とした所定半径の小円内)に含まれるかを判定し、含まれる場合に静止状態であると判定する。また例えば、静止状態判定部103は、検出位置P10〜P12が変化した速度が閾値未満であるかを判定し、閾値未満である場合に静止状態であると判定する。別の言い方をすれば、静止状態判定部103は、所定期間継続してポインティングデバイス14Aに対する入力の状態が略同一の状態かを判定し、略同一の状態の場合に静止状態であると判定する。
[3−5.指示位置取得部]
指示位置取得部104は、検出位置を用いて指示位置を取得する。「指示位置」とは、例えば、1つ以上の検出位置を用いて取得される位置であればよい。本実施形態では、検出位置がユーザの指示内容を特定するために用いられるのに対し、指示位置は領域32の回転角度及び回転方向を決めるために用いられる。指示位置は、検出位置と同じ位置であってもよいし、検出位置とは異なる位置であってもよい。
指示位置が検出位置と同じ位置である場合、指示位置は、ゲームプログラムとは異なるプログラム(例えば、OSやミドルウェアなど)から貰い受けた情報(位置情報)により示される位置としてよい。この場合、検出位置は、ゲームプログラムとは異なるプログラムが取得する位置となる。別の言い方をすれば、検出位置は、OSやミドルウェアに割り当てられているメモリ領域に記憶される位置となる。例えば、静止状態などの所与の条件が満たされると判定された場合の検出位置を指示位置としてもよく、その場合は指示位置と検出位置は同じ位置となる。所定の条件が満たされると判定された場合とは、所定の条件が満たされたと判定された時点、当該時点の所定時間前又は後の時点である。指示位置と検出位置とが同じ位置である場合、ゲームプログラムのメモリ領域には、位置情報と同一の情報が複製されてもよいし、上記他のプログラムに割り当てられたメモリ領域に格納される位置情報の格納先(アドレス)が生成されてもよい。
一方、指示位置が検出位置と異なる位置の場合、指示位置は、1以上の検出位置を計算式に代入して得られる位置としてよい。例えば、指示位置は、静止状態などの所与の条件が満たされると判定された場合に、その判定で用いた検出位置を計算式に代入して得られる位置であってよい。また例えば、指示位置は、複数の検出位置の位置座標について、これらの平均の位置座標を計算することで得られる位置としてよい。この場合の平均は、単純平均であってもよいし、加重平均であってもよい。加重平均の場合には、現時点に近いほど係数を高く(重み付けを重く)してもよい。
本実施形態では、指示位置取得部104は、所定期間内に検出された検出位置を用いて指示位置を取得する。例えば、指示位置取得部104は、静止状態判定部103により静止状態であると判定された場合に指示位置を取得する。先述したように、指示位置取得部104は、静止状態判定部103により静止状態であると判定された時点又はその前後における検出位置を、指示位置として取得してもよいし、所定期間における複数の検出位置を用いて算出した位置(例えば、複数の検出位置の平均)を、指示位置として取得してもよい。
ここでは、指示位置取得部104は、静止状態であると判定された場合の検出位置を指示位置として取得する。例えば、図8に示すように、検出位置P10〜P12に基づいて静止状態であると判定された場合、指示位置取得部104は、この判定で参照された検出位置P10〜P12の何れかを指示位置として取得してもよいし、これら検出位置P10〜P12の2つ以上を計算式に代入することで得られた位置を指示位置として取得してもよい。他にも例えば、指示位置取得部104は、検出位置P12よりも後に取得された検出位置を指示位置として取得してもよい。
[3−6.領域変更部]
領域変更部105は、検出位置を用いて取得される指示位置に基づいて、複数の領域32の一部又は全部を所与の点を中心に回転移動された状態に変更する。本実施形態では、領域変更部105が全部の領域32の状態を変更する場合を説明するが、ゲーム画像20に、方向指示パッド30以外に変更を必要としない領域(例えば、攻撃を指示する攻撃指示ボタンの領域など)が設定される場合には、領域変更部105は、一部の領域32の状態を変更することになる。
「所与の点」とは、例えば、回転の中心となる点であり、回転軸が通る点である。回転軸は、平面(例えば、タッチパネルや画面)上の所定の点を通り、かつ、平面と交わる軸である。例えば、回転軸は、領域32全体に対する中心点(重心点)を通り、かつ、領域32を含む平面と交わる(例えば、タッチパネル又は画面の表面と直交する)軸である。本実施形態では、基準点34が所与の点に相当する場合を説明する。
「回転移動された状態」とは、例えば、表示部15に対して領域32が回転移動された状態になることである。「回転移動された状態」は、例えば、領域32の配置位置が所定の回転軸回りに現在位置から回転移動して変更されることである。なお、「配置位置」とは、例えば、領域32が設定される位置であり、領域32を設定するための基準となる点である。別の言い方をすれば、「配置位置」は、例えば、コンピュータが領域を認識するための点である。「配置位置」は、領域32内の点であってもよいし、領域32外の点であってもよい。領域32外の点である場合には、配置位置から所定方向に所定距離だけ離れたところに領域32が設定される。例えば、「配置位置」は、領域32の中心又は重心であってもよいし、領域32の端部の点であってもよいし、領域32内部の全ての点を配置位置と呼ぶようにしてもよい。領域32の配置位置は、ゲーム状況データDT2に格納されるようにすればよい。
本実施形態では、中心点36U,36D,36L,36R(以降、これらをまとめて単に中心点36という。)が配置位置に相当する場合を説明する。このため、例えば、各中心点36が、他の中心点36と所定の位置関係を保ったまま、回転軸回りに同じ方向に同じ角度だけ回転移動された状態になることが、「回転移動された状態」に相当する。配置位置に対応する各領域32は、各領域32自身の向きを、配置位置の回転に合わせて変更させてもよい(以降、第1の方法と記載する。)し、変更させてなくてもよい(以降、第2の方法と記載する)。
本実施形態では第1の方法を例に挙げて説明し、第2の方法は後述の変形例(8)で説明する。「回転移動された状態」にするためには、例えば、領域変更部105は、方向指示パッド30に対応するレイヤ自体を回転させるようにしてもよいし、領域32の位置や向きを示すパラメータ(例えば、中心点36などの配置位置の座標)を変えるようにしてもよい。ここでは、領域変更部105が、レイヤを回転させることで回転移動された状態にする場合を説明する。
図9は、ゲーム画像20を表示させるためのレイヤの説明図である。図9に示すように、ここでは、方向指示パッド30に対応するレイヤL1、オブジェクト22に対応するレイヤL2、及び背景に対応するレイヤL3を例に挙げて説明する。図9の例では、レイヤの重なり順は、最上位がレイヤL1であり、最下位がレイヤL3となる。即ち、方向指示パッド30に対応するレイヤL1は、仮想世界の様子を示すレイヤL2,L3よりも上側にあるため、レイヤL2,L3よりも優先的に表示される。
領域変更部105は、基準点34を通りレイヤL1に直交する回転軸Aを中心にレイヤL1を回転させることで、領域32を回転移動された状態にすることができる。この場合、画面上では領域32は回転移動された状態になるが、あくまでレイヤL1ごと回転しているので、レイヤL1の中では領域32の配置は変わらない。なお、各レイヤの状態(例えば、重なり順や回転角度など)を示すパラメータは、ゲーム状況データDT2に格納すればよい。
また、本実施形態では、領域変更部105は、指示位置が一の領域32に含まれる場合に、一の領域32の中心点36と指示位置とが近づくように、一部又は全部の領域32の状態を変更する。「一の領域32の中心点36と指示位置とが近づく」とは、例えば、領域32の中心点36と指示位置との距離が、領域32の状態が変化する前よりも変化した後の方が短くなることである。例えば、一の領域32の中心点36と回転軸(例えば、基準点34)を結ぶ線上から見て指示位置がある側に領域32が回転すると、一の領域32の中心点36と指示位置とが近づく。この場合の回転角度は、一の領域32の中心点36(回転前の中心)と回転軸を結ぶ線と、回転軸と指示位置とを結ぶ線と、のなす角度(後述の図10参照)未満となる。
例えば、領域変更部105は、指示位置が一の領域32に含まれる場合に、一の領域32の中心点36(配置位置の一例)と指示位置との差異に基づいて定まる角度だけ回転移動された状態に、一部又は全部の領域32の状態を変更する。「中心点36と指示位置との差異」とは、例えば、中心点36と指示位置との位置の違いであり、中心点36と指示位置とを結ぶベクトル、中心点36と指示位置との距離、中心点36と回転軸を結ぶ直線と指示位置との距離(垂線の長さ)、又は回転軸から見たときの角度の差である。「差異に基づいて定まる角度」とは、例えば、差異が大きくなるほど角度が大きくなることであり、差異が小さくなるほど角度が小さくなることである。差異と角度の関係は、予め数式やテーブルで定めておけばよい。
図10は、領域32が回転移動する様子を示す図である。図10では、指示位置を「Q」の符号で示し、指示位置Qが右領域32R内にあるものとする。図10に示すように、指示位置取得部104により指示位置Qが取得されると、領域変更部105は、基準点34及び中心点36Rを結ぶ線分と、基準点34及び指示位置Qを結ぶ線分と、のなす角度θを計算する。そして、領域変更部105は、中心点36Rから見て指示位置Qがある方向に基づいて回転方向を決定する。例えば、領域変更部105は、指示位置Qが中心点36Rよりも下にあれば右回転(時計回り方向)とし、指示位置Qが中心点36Rよりも上にあれば左回転(反時計回り方向)とする。
領域変更部105は、上記のようにして決定した回転方向に角度θだけ領域32が回転移動された状態になるように、領域32を変更する。即ち、本実施形態では、領域変更部105は、回転軸Aを中心にして、上記決定した回転方向に角度θだけレイヤL1を回転させることになる。これにより、図10に示すように、基準点34と回転後の中心点36Rとを結ぶ直線上に指示位置Qが位置することになる。即ち、回転前は指示位置Qが右領域32Rの端部付近にある状態であったが、回転後は指示位置Qが右領域32Rの中心付近にある状態に変化する。
なお、領域変更部105は、中心点36Rが指示位置Qに近づくようにすればよく、例えば、角度θ未満の角度で領域32が回転移動された状態にしてもよいし、角度θ+α(αは所定数。例えば、10度)で領域32が回転移動された状態にしてもよい。ただし、角度θの倍以上の角度で領域32が回転移動してしまうと、回転前よりも指示位置Qが中心点36Rから遠くなってしまうので、回転角度は角度θの倍未満とする。
[4.ゲーム装置において実行される処理]
図11は、ゲーム装置10において実行される処理の一例を示すフロー図である。制御部11は、記憶部12に記憶されたプログラムに従って図11に示す処理を実行する。下記に説明する処理は、図5に示す機能ブロックの具体的な処理の一例である。下記の処理は、ゲームが起動する場合に実行される。
図11に示すように、まず、制御部11は、ゲームが起動すると、ゲーム状況データDT2に基づいてゲーム画像20を表示部15に表示させる(S101)。S101においては、制御部11は、ゲーム状況データDT2に格納された方向指示パッド30の状態に関するパラメータや各レイヤの状態に基づいてゲーム画像20を表示させる。制御部11は、ゲーム状況データDT2に格納された基準点を参照し、基準点(XS,YS)を中心位置として方向指示パッド30を表示させる。この場合、制御部11は、ゲーム状況データDT2に格納された回転角度の初期値分だけ領域32が回転された状態で、方向指示パッド30を表示させる。図7に示すデータ格納例の場合、回転角度の初期値は0度であるため、領域32が回転されない状態で表示されることになる。なお、本実施形態では、制御部11は、基準点(XS,YS)を参照しているが、これとは異なる値を参照しても良い。例えば、制御部11は、別途設定された点を参照して、方向指示パッド30を表示させてもよい。制御部11は、ポインティングデバイス14Aの信号に基づいて、検出位置が検出されたかを判定する(S103)。検出位置が検出されたと判定された場合(S103;Y)、制御部11は、ポインティングデバイス14Aが検出した検出位置を取得する(S105)。S105においては、制御部11は、取得した検出位置を検出時刻とともに検出位置データDT1に格納する。検出時刻は、制御部11のリアルタイムクロックを利用して取得されるようにすればよい。
制御部11は、領域に関するパラメータに基づいて、S105において取得した検出位置が何れかの領域32に含まれるかを判定する(S107)。S107においては、制御部11は、検出位置の2次元座標が何れかの領域32内に含まれるかを判定することになる。何れかの領域32に含まれると判定された場合(S107;Y)、制御部11は、判定された領域に関するパラメータを、ゲーム状況データDT2の現在の領域に格納し、当該領域に関するパラメータに対応する中心点36の座標を、ゲーム状況データDT2の現在の領域の中心点に格納することになる。制御部11は、格納された現在の領域に対応する方向(図7では右方向)をユーザが指示した方向として取得し、当該方向にオブジェクト22を移動させる(S109)。S109においては、制御部11は、ゲーム状況データDT2に格納されたオブジェクト22の位置、向き、及び移動方向を更新する。この更新されたオブジェクトの向き、及び、オブジェクトの移動方向に基づいて、オブジェクト22は移動することになる。また、この移動に伴って、オブジェクトの位置も更新され、ゲーム画像20の表示も更新することになる。
制御部11は、検出位置データDT1を参照し、所定期間内の検出位置に基づいて、静止状態であるかを判定する(S111)。S111においては、制御部11は、検出位置データDT1に格納された検出位置の履歴に基づいて静止状態であるか否かを判定する。例えば、制御部11は、直近0.5秒間における検出位置を検出時刻から特定する。そして、制御部11は、特定された検出位置の何れの点も特定の点からの距離が閾値未満である場合に、静止状態であると判定する。なお、先述したように、制御部11は、例えば、複数の検出位置が一定範囲内に収まっている場合や、検出位置が変化した速度が閾値未満である場合に、静止状態であると判定することとしてもよい。
静止状態であると判定された場合(S111:Y)、制御部11は、検出位置を用いて指示位置を取得する(S113)。ここでは、制御部11は、最新(S113の処理が実行される時点における最新)の検出位置を指示位置として取得するものとする。S113で取得した指示位置は、ゲーム状況データDT2及び指示位置データDT3に格納される。具体的には、ゲーム状況データDT2の現在の指示位置に、取得した指示位置(XSN,YSN)が記録されることになる。制御部11は、S113において取得した指示位置(XSN,YSN)と、当該指示位置を含む領域32の中心点36と、の差異に基づいて、領域32の回転角度及び回転方向を決定する(S115)。S115においては、制御部11は、ゲーム状況データDT2に格納された基準点(XS,YS)と、指示位置(XSN,YSN)が含まれる領域32の中心点36(即ち、現在の領域の中心点の座標。図7の場合は、右領域32Rの中心点(XSR,YSR))と、を特定する。そして、制御部11は、基準点34及び中心点36を結ぶ線分と、基準点34及び指示位置(XSN,YSN)を結ぶ線分と、のなす角度を回転角度として決定する。また、制御部11は、基準点34及び中心点36を結ぶ線分と、指示位置(XSN,YSN)と、の位置関係に基づいて回転方向を決定する。例えば、指示位置(XSN,YSN)がこの線分よりも下又は右にあれば、回転方向は右回りになり、指示位置(XSN,YSN)がこの線分よりも上又は左にあれば、回転方向は左回りになる。
制御部11は、S115で決定した回転角度及び回転方向に基づいて決定される回転角度を、ゲーム状況データDT2の回転角度に格納する。制御部11は、この回転角度に基づいて、領域32が基準点34を中心にして回転移動された状態になるように、領域32の状態を変更する(S117)。S117においては、制御部11は、方向指示パッド30に対応するレイヤL1を、基準点34を中心にして、S115で決定した回転方向に回転角度だけ回転させる。本実施形態では基準点34は移動しないので、ゲーム状況データDT2に格納された基準点34の位置は変化しないが、後述のように基準点34が変化する場合は、基準点34の値が更新されることとなる。
制御部11は、ゲーム状況データDT2を参照して、実行中のゲームが終了したかを判定する(S119)。S119においては、制御部11は、ゲームを終了するための所定条件が満たされたかを判定する。ゲームが終了したと判定されない場合(S119;N)、S103の処理に戻る。一方、ゲームが終了したと判定された場合(S119;Y)、本処理は終了する。
以上説明したゲーム装置10によれば、指示位置に基づいて、領域32が基準点34を中心に回転移動された状態に変更することで、指示位置を領域32の回転方向や回転量に影響させることができる。例えば、ゲーム画像20に実際に設定される領域32の位置や方向を、ユーザが認識している位置や方向に合わせることができる。このようにすることで、ユーザがポインティングデバイス14Aを利用して入力する場合の誤入力の発生を軽減することができる。
また例えば、ある時点の検出位置だけを用いて領域32の状態を変更すると、ユーザが誤った位置を指示してすぐにやめたようなときにも領域32の状態が変わってしまうが、所定期間内の検出位置を用いて取得される指示位置に基づいて、領域32の状態を変更することで、ユーザがある位置を触れたときに即座に領域32の状態が変更されることを防止することができる。即ち、ユーザの誤入力により領域32の状態が変わってしまうことを防止することができる。
また例えば、静止状態であると判定された場合の検出位置は、誤入力されたものではなく、ユーザがはっきりと意志を持ってその位置を指示したと推定されるので、静止状態であると判定される場合に取得した指示位置に基づいて領域32の状態を変更することで、ユーザが意志を持って指示した位置に基づいて領域32の状態を変更することができる。即ち、ユーザの誤入力により領域32の状態が変わってしまうことを、より効果的に防止することができる。
また例えば、ユーザは、ある指示入力をするときに、その指示内容に対応する領域32の中心点36を指し示そうとする傾向があるが、実際に取得された指示位置が中心点36に近づくようにすることで、ユーザが領域32の中心だと思っている位置に中心点36が近づくので、ユーザの感覚と実際の領域とのずれを少なくすることができ、誤入力の発生を効果的に軽減することができる。
また、指示位置を含む領域32の配置位置である中心点36と指示位置との差異に基づいて回転角度を決定することで、指示位置を含む領域32の配置位置である中心点36と、指示位置と、の差異を回転角度に影響させることができる。これにより、ユーザが領域32の中心だと思っている位置と実際の領域32の中心点36とのずれの分だけ、領域32を回転移動させることができる。その結果、ユーザの感覚と実際の領域32とのずれを少なくすることができ、誤入力の発生を効果的に軽減することができる。
また、検出位置が領域32の何れに含まれるかを判定して、その結果に基づいて指示内容を判定することができる。更に、複数の指示内容を方向に関する指示とすることで、方向入力をする際の誤入力の発生を軽減することができる。
[5.変形例]
本発明は以上説明した実施形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
図12は、変形例の機能ブロック図である。図12に示すように、変形例では、実施形態で説明した機能に加えて、提示部106、選択受付部107、ゲーム実行部108、有効判定部109、及び変更制限部110が実現される。ここでは、これら各機能は、制御部11を主として実現される。
(1)例えば、実施形態では、静止状態になった場合に取得される1つの指示位置に基づいて領域32の状態を変更する場合を説明したが、過去に取得された複数の指示位置に基づいて領域32の状態を変更するようにしてもよい。本変形例では、データ記憶部101は、指示位置の履歴を示す指示位置データDT3を記憶する。
図13は、指示位置データDT3のデータ格納例を示す図である。図13に示すように、指示位置データDT3には、取得時刻と指示位置とが関連付けられて格納される。取得時刻は、指示位置が取得された時点を特定可能な時刻であればよく、例えば、指示位置が取得された時点そのもの、又は、その時点の所定時間前後した時点である。取得時刻は、指示位置が取得されたことに応じて取得される時刻であり、日時又は時刻で表されてよいし、過去の所定時点(例えば、検出の開始時点)からの経過時間で表されてもよい。図13に示すように、指示位置データDT3には、指示位置取得部104が取得した指示位置が時系列順に格納される。指示位置取得部104は、指示位置を取得すると、取得時刻と関連付けて指示位置データDT3に格納することになる。
領域変更部105は、直近の所定数の指示位置、又は、直近の期間内における指示位置に基づいて、一部又は全部の領域32の状態を変更する。「直近」とは、例えば、コンピュータが処理を行う時点(現時点)に最も近い期間であり、当該時点の所定時間前から当該時点までの期間である。「所定数」は、2つ以上の数であればよい。「直近の所定数の指示位置」とは、例えば、コンピュータが処理を行う時点に近い順番の所定数の指示位置である。「直近の期間内における指示位置」とは、取得時刻が直近の期間に含まれる指示位置である。このため、直近の期間に取得された指示位置が1つであれば、直近の期間内における指示位置は1つのみとなり、直近の期間に取得された指示位置が2つ以上であれば、直近の期間内における指示位置は複数となる。
領域変更部105は、指示位置データDT3を参照して、直近の所定数の指示位置、又は、直近の期間内における指示位置を取得する。例えば、領域変更部105は、直近の所定数の指示位置の平均位置、又は、直近の期間内における指示位置の平均位置に基づいて、一部又は全部の領域の状態を変更する。平均位置は、単純平均であってもよいし、加重平均であってもよい。加重平均の場合には、現時点に近いほど係数を高く(重み付けを重く)してもよい。平均位置の計算式は、予めデータ記憶部101に記憶されているものとする。領域32の状態を変更する方法は、実施形態で説明した方法におけるゲーム状況データDT2の現在の指示位置を、指示位置の平均位置として実行すればよい。
変形例(1)によれば、直近の所定数の指示位置や直近の期間内における指示位置に基づいて領域32の状態を変更することで、指示位置の直近の傾向を領域32の状態の変更に影響させることができるので、より効果的に誤入力の発生を軽減することができる。
また、指示位置の平均位置は、指示位置の直近の傾向を平均化したしたものであり、ユーザの傾向をより正確に反映したものといえる。このため、平均位置に基づいて領域32の状態を変化させることで、ユーザの傾向をより正確に影響させることができるので、より効果的に誤入力の発生を軽減することができる。
なお、変形例(1)では、領域変更部105は、指示位置の平均位置に基づいて領域32の状態を変更する場合を説明したが、直近の所定数の指示位置又は直近の期間内における指示位置に基づいて領域32の状態を変更すればよく、平均位置を用いなくてもよい。例えば、領域変更部105は、平均以外の値を求めるための計算式に、直近の所定数の指示位置又は直近の期間内における指示位置を代入して得られた値に基づいて領域32の状態を変更してもよい。また例えば、領域変更部105は、直近の所定数の指示位置又は直近の期間内における指示位置の差異が閾値以上である場合に領域32の状態を変更するようにしてもよい。
(2)また例えば、ユーザが左を指示した後に右を指示する場合、ユーザは指を水平方向に動かすことになるが、ユーザが水平方向に指を動かしているつもりでも、実際には斜めに指を動かしていることが多い。ユーザが領域32をまたいで指を動かすときは、ユーザの傾向が出やすいので、実施形態のようにある1点の指示位置だけを考慮するのではなく、指示位置が領域32をまたいで移動したときの方向を考慮して、領域32の状態を変化させるようにしてもよい。
変形例(2)の領域変更部105は、指示位置が一の領域32内にある状態から他の領域32内にある状態に変化した場合に、一の領域32における指示位置と、他の領域32における指示位置と、を用いて、一部又は全部の領域32の状態を変更する。例えば、領域変更部105は、指示位置が一の領域32内にあったときの何れかの時点での指示位置と、指示位置が他の領域32内にあるときの何れかの時点での指示位置と、を結ぶ線分の傾きやその方向に基づいて、領域32の状態を変更する。
図14は、指示位置が移動する様子を示す図である。図14に示すように、ここでは、ユーザが左領域32L内を触れていた後に、指を動かして右領域32Rに触れた場合を説明する。即ち、左領域32L内に指示位置Q1がある状態から、右領域32R内に指示位置Q2がある状態に変化したものとする。領域変更部105は、指示位置Q1及び指示位置Q2を結ぶ線に基づいて、領域32の回転角度θ及び回転方向を決定する。
例えば、領域変更部105は、中心点36L及び中心点36Rを結ぶ線と、指示位置Q1及び指示位置Q2を結ぶ線と、のなす角度θを回転角度とする。また、領域変更部105は、中心点36L及び中心点36Rを結ぶ線から、指示位置Q1及び指示位置Q2を結ぶ線に向けた方向を回転方向とする。別の言い方をすれば、領域変更部105は、中心点36L及び中心点36Rを結ぶ線と、指示位置Q1及び指示位置Q2を結ぶ線と、が平行になるように、領域32の回転角度及び回転方向を決定することになる。回転角度及び回転方向が決定された後の処理は、実施形態で説明したものと同じである。
変形例(2)によれば、指示位置が一の領域32内にある状態から他の領域32内にある状態に変化した場合にはユーザの傾向が出やすいため、一の領域32における指示位置と他の領域32における指示位置とを用いて領域32の状態を変化させることで、ユーザの傾向をより正確に影響させることができるので、より効果的に誤入力の発生を軽減することができる。
(3)また例えば、領域32が回転移動しすぎると、ある領域32がもともと表示されていた場所に別の領域32が表示されてしまうことがある。例えば、左領域32Lが右回りに90度回転移動すると、上領域32Uが元々あった場所に左領域32Lが移動するので、その場所にあるのが上を指示するための上領域32Uなのか、左を指示するための左領域32Lなのかユーザが判断できなくなるので、領域32が回転移動しすぎないように制限を加えてもよい。
領域変更部105は、一部又は全部の領域32の初期位置からの回転角度が閾値未満に制限されるように、一部又は全部の領域32の状態を変更する。「初期位置」とは、例えば、領域32が設定された時点での位置であり、ゲームの開始時点での位置、又は、方向指示パッド30が直近で初めて表示された時点での位置である。別の言い方をすれば、「初期位置」は、例えば、領域変更部105が領域32の状態を変更していない場合の領域32の位置である。なお、図7のゲーム状況データDT2における「回転角度の初期値」も初期位置の一例である。ここでは、図3に示す状態が初期位置であるものとする。即ち、基準点34から見て垂直方向に中心点36U,36Dが位置し、基準点34から見て水平方向に中心点36L,36Rが位置する状態が初期位置である。
「初期位置からの回転角度」とは、例えば、領域32の初期位置から現在位置まで回転移動させるための角度であり、領域32の初期位置と現在位置の差異を示す角度である。閾値は、初期位置からの回転角度の上限値である。閾値は、データ記憶部101に予め記憶されていればよい。閾値は、固定値であってもよいし、可変値であってもよい。例えば、閾値は、90度以下の所定値であり、80度程度であってもよい。可変値である場合には、ユーザにより指定された値であってもよい。領域変更部105は、実施形態や変形例で説明する方法で計算される回転角度が閾値未満であれば、当該回転角度をそのまま用いて領域32の状態を変更し、回転角度が閾値以上であれば、回転角度を閾値又はそれ以下の値に変更したうえで領域32の状態を変更する。
変形例(3)によれば、領域32の初期位置からの回転角度が閾値未満になることを条件にすることで、初期位置からの回転量に上限を設けることができ、意図しない場所にまで回転してしまうことを防止することで、回転しすぎることによる誤入力を防止することができる。
(4)また例えば、領域32が一度に大きく回転移動すると、それまでの領域32の配置と大きく変わってしまい、ユーザに違和感を与えてしまう可能性がある。このため、一回あたりの領域32の回転角度に制限を加えてもよい。
領域変更部105は、一部又は全部の領域32の一度の回転移動における回転角度が閾値未満に制限されるように、一部又は全部の領域32の状態を変更する。「一度の回転移動」とは、例えば、領域32の回転が開始してからその回転が終了(停止)するまでのことである。別の言い方をすれば、「一度の回転移動」は、例えば、回転前の状態から回転後の状態に変化するまでのことである。
「閾値」は、例えば、一度の回転角度の上限値である。この閾値は、変形例(3)で説明した閾値よりも小さい。閾値は、データ記憶部101に予め記憶されていればよい。閾値は、固定値であってもよいし、可変値であってもよい。可変値である場合には、ユーザにより指定された値であってもよい。領域変更部105は、実施形態や変形例で説明する方法で計算される回転角度が閾値未満であれば、当該回転角度をそのまま用いて領域32の状態を変更し、回転角度が閾値以上であれば、回転角度を閾値又はそれ以下の値に変更したうえで領域32の状態を変更する。
変形例(4)によれば、領域32の一度の回転移動における回転角度が閾値未満になることを条件にすることで、一度に大きく回転することで、領域が視覚的に認識し辛くなることを防止することができる。
(5)また例えば、実施形態では、領域32全体の中心にある基準点34の位置が変わらずに領域32が回転移動し、領域32の全体としての位置は変わらない場合を説明したが、領域32全体を移動させるようにしてもよい。
領域変更部105は、一部又は全部の領域32を、当該一部又は全部の領域32全体が移動された状態に変更する。「領域32全体が移動された状態」とは、例えば、移動対象となる領域32全てを所定方向(回転方向とは異なる方向。全領域32で同じ方向。)に移動させることである。領域変更部105は、レイヤL1自体を移動させたり、領域32全体の基準点34を移動させたりすることによって、領域32全体が移動された状態に変更する。領域32全体の基準点34は、各領域32の配置位置を設定するための基準となる点であり、例えば、各領域32の配置位置の中心点や回転軸である。このため、基準点34が移動すると、領域32全体が移動することになる。
例えば、領域変更部105は、指示位置が一の領域32に含まれる場合に、一の領域32の中心と指示位置とが近づくように、一部又は全部の領域32の状態を変更する。「一の領域32の中心と指示位置とが近づく」とは、例えば、領域32の中心点36と指示位置との距離が、状態の変更前よりも変更後の方が短いことである。一の領域32の中心点36から見て指示位置がある方向に複数の領域32全体を移動させると、一の領域32の中心と指示位置とが近づく。
図15は、領域32の全体が移動する様子を示す図である。図15に示すように、まず、領域変更部105は、実施形態で説明した方法(図10)と同様にして、回転角度θ及び回転方向を決定する。そして、領域変更部105は、領域32が基準点34を中心にして当該決定された回転方向に回転角度θだけ回転移動するように、領域32の状態を変更する。この状態だと、中心点36Rと指示位置Qに差異があるので、これらを近づけるために、領域変更部105は、中心点36Rと指示位置Qとの位置関係に基づいて、領域32全体を移動させる。図15の例では、領域変更部105は、中心点36Rから指示位置Qに向けたベクトル分だけ、領域32全体を移動させることになる。このため、図15に示すように、中心点36Rが指示位置Qと一致する。なお、中心点36Rと指示位置Qは、略一致していればよく、完全に一致しなくてもよい。
なお、変形例(2)と変形例(5)を組み合わせる場合には、領域変更部105は、変形例(2)で説明した処理を実行して、図14に示す指示位置Q1及び指示位置Q2を結ぶ線分と、領域32の水平方向(中心点36Lと中心点36Rとを結ぶ方向)と、が平行になる状態にして、変形例(5)で説明した処理を実行して、指示位置Q1及び指示位置Q2を結ぶ線分と領域32の水平方向の線分(中心点36Lと中心点36Rとを結ぶ線分)とが重なる状態にすることになる。
変形例(5)によれば、回転移動だけでなく、領域32全体が移動された状態にすることで、より効果的に誤入力の発生を軽減することができる。
また、実際に取得されている指示位置に領域32の中心が近づく状態にすることで、ユーザが領域32の中心だと思っている位置に領域32の中心が近づくことになるので、実施形態における領域32の回転と、変形例(5)における領域32全体の移動と、を組み合わせることで、ユーザの感覚と実際の領域32とのずれを少なくすることができ、さらに誤入力の発生を軽減することができる。
なお、変形例(5)では、領域変更部105は、中心点36と指示位置との距離が近づくように領域32全体が移動された状態にする場合を説明したが、他の方法によって、領域32全体が移動された状態にしてもよい。領域変更部105は、指示位置に基づいて領域32全体が移動された状態にすればよく、例えば、基準点34が指示位置に近づくように領域32全体が移動された状態にしてもよい。他にも例えば、領域変更部105は、指示位置を含む領域32の中心点36から所定距離にある点が指示位置に近づくように、領域32全体が移動された状態にしてもよい。
(6)また例えば、実施形態では、領域32は面積や形状を維持したまま回転移動する場合を説明したが、領域32の面積や形状が変わってもよい。この場合、指示位置の履歴からユーザが触れることが多いと思われる領域32が広くなるようにしてもよい。
領域変更部105は、一部又は全部の領域32の状態を、当該一部又は全部の領域32の面積及び形状の少なくとも一方が変更された状態にする。「面積」は、例えば、領域32が占めるピクセル数である。「形状」は、例えば、領域32の輪郭である。ここでは、領域32の面積と形状の両方が変更される場合を説明するが、何れか片方のみが変更されてもよい。
例えば、領域変更部105は、指示位置の履歴に基づいて、一部又は全部の領域32の面積及び形状の少なくとも一方が変更された状態にする。「指示位置の履歴」とは、例えば、過去に取得された2つ以上の指示位置である。ここでは、指示位置データに格納された指示位置の一部又は全部が、指示位置の履歴に相当する。指示位置の一部が用いられる場合には、直近の所定数の指示位置、又は、直近の所定期間内の指示位置を用いればよい。
図16は、領域の面積と形状が変更される様子を示す図である。図16に示すように、指示位置の履歴が指示位置Q10〜Q25のような場合、右領域32Rは、指示位置が比較的分散されており、上領域32U、左領域32L、及び下領域32Dは指示位置が比較的密集している。例えば、領域変更部105は、ある領域32内の指示位置の平均位置を計算し、各指示位置と平均位置との差異(距離)を分散度合又は密集度合の指標として用いてもよい。この差異が大きいほど分散度合が高くなり密集度合が低くなる。即ち、差異が小さいほど分散度合が低くなり密集度合が高くなる。図16の場合、右領域32Rの指示位置Q13〜Q18の平均位置は中心点36R付近となるが、指示位置Q13〜Q18の各々は中心点36Rから比較的距離があるので、分散度合が高く密集度合が低いとされる。
領域変更部105は、指示位置の分散度合に基づいて、領域32の面積及び形状を決定する。例えば、領域変更部105は、指示位置の分散度合が高いほど領域32が広くなり、指示位置の分散度合が低いほど領域32が狭くなるように、領域32の面積及び形状を決定する。別の言い方をすれば、領域変更部105は、指示位置の密集度合が低いほど領域32が広くなり、指示位置の密集度合が高いほど領域32が狭くなるように、領域32の面積及び形状を決定する。
図16の場合、右領域32R内の指示位置は分散度合が高く、上領域32U、左領域32L、及び下領域32Dの指示位置は密集度合が高いので、領域変更部105は、右領域32Rが広くなり、上領域32U、左領域32L、及び下領域32Dが狭くなるように、領域32の状態を変更する。例えば、領域変更部105は、方向指示パッド30を分割する境界線を左方向にずらすことによって、右領域32Rの面積及び形状を変更させる。なお、領域32の面積や形状を変更する方法は、領域32の境界線を移動させる方法に限られない。例えば、領域変更部105は、領域32の境界線の傾きを変更したり、領域32自体を伸縮させたり、複数の形状の中で領域32の形状を切り替えたりするようにしてもよい。
変形例(6)によれば、回転移動だけでなく、領域32の面積や形状が変更された状態にすることで、指示位置を領域32の面積や形状に影響させることができるので、ユーザの操作に応じた面積や形状の領域32にすることができ、誤入力の発生を効果的に軽減することができる。
また、ユーザが実際に指示する位置の傾向は、指示位置の履歴に表れるので、指示位置の履歴を領域32の面積や形状に影響させることで、ユーザに応じてより効果的に誤入力の発生を軽減することができる。
なお、変形例(6)では、領域変更部105は、指示位置の履歴に基づいて領域32の面積や形状を変更する場合を説明したが、履歴に基づかずに、ある1つの指示位置に基づいて領域32の面積や形状を変更してもよい。この場合、領域変更部105は、指示位置を含む領域32が他の領域32よりも広くなるように、領域32の面積や形状を変更するようにすればよい。
(7)また例えば、領域32が回転移動された状態にするかどうかを、ユーザに選択させるようにしてもよい。変形例(7)のゲーム装置10は、提示部106及び選択受付部107を含む。提示部106は、領域変更部105による変更の要否を選択するための選択肢を提示する。「選択肢を提示する」とは、例えば、変更をするかしないかの選択肢、回転角度の選択肢である。選択肢は、画面上で画像として提示されてもよいし、音声で提示されてもよい。ここでは、選択肢が画像として提示される場合を説明する。
図17は、選択肢が提示される様子を示す図である。図17に示すように、提示部106は、領域32の状態を変更するか否かを問い合わせるメッセージとともに、ユーザが状態の変更要否を選択するための選択肢24A,24Bを表示させる。また、提示部106は、ユーザが選択肢24Aを選択した場合の方向指示パッド30の状態(即ち、領域32が回転移動された後の状態)も表示させる。これにより、ユーザは、選択肢24Aを選択すると、方向指示パッド30がどのような状態になるかを予め把握することができる。選択受付部107は、提示部106により提示された選択肢の選択を受け付ける。選択受付部107は、操作部14の検出信号に基づいて選択肢の選択を受け付けることになり、この選択でも、ポインティングデバイス14Aを利用してもよい。
例えば、提示部106は、領域32の変更が必要かどうかを過去の指示位置に基づいて判定する。この場合、提示部106は、過去の指示位置と領域32の中心点36との差異が閾値以上であれば、領域32の変更が必要と判定する。提示部106は、領域32の変更が必要と判定した場合に、選択肢24A,24Bをユーザに提示する。更に、提示部106は、ユーザが選択肢24Aを選択した場合の方向指示パッド30の状態もユーザに提示する。例えば、提示部106は、過去の指示位置と中心点36との差異に基づいて定まる回転方向及び回転角度で領域32が回転された状態の方向指示パッド30を、選択肢24A,24Bとともに提示することになる。また、領域32を変更するための選択肢24Aをユーザが変更した場合、領域変更部105は、過去の指示位置に基づいて領域32の状態を変更することになる。例えば、領域変更部105は、過去の指示位置と中心点36との差異に基づいて定まる回転方向及び回転角度で領域32が回転された状態に変更すればよい。なお、提示部により選択肢24A,24Bが提示された状態で、ユーザが回転角度を指定できるようにしてもよい。例えば、選択肢24A,24Bとともに表示された方向指示パッド30をユーザの操作に基づいて回転させることによって、ユーザが回転角度を指定する。ユーザは、方向指示パッド30を回転させて選択肢24Aを選択することで、回転角度を決定することになる。この場合、領域変更部105は、ユーザが指定した回転角度で領域32が回転された状態に変更する。
領域変更部105は、選択受付部107により受け付けられた選択結果に基づいて、一部又は全部の領域32の状態を変更する。領域変更部105は、領域32の状態を変更しない選択肢24Bをユーザが選択した場合、領域32の状態は変更せず、領域32の状態を変更する選択肢24Aをユーザが選択した場合、領域32の状態を変更する。なお、ユーザに回転角度又はその上限値を選択させるようにしてもよい。この場合、領域変更部105は、ユーザが選択した回転角度又は上限値に基づいて、領域32の状態を変更することになる。
変形例(7)によれば、選択肢を提示して選択させることを条件にすることで、ユーザの好みに応じた領域32の状態の変更をすることができ、操作性を向上させることができる。また、ユーザに選択肢や変更内容を提示することで、ユーザに対して、どのような操作を行っていたかを認識させることができる。
(8)また例えば、実施形態では、領域32そのものが回転移動して、表示部15に対する領域32の向きも変わる場合を説明したが、領域32の配置位置だけを変えて表示部15に対する向きが変わらないようにしてもよい。
実施形態では、領域32の状態の変更方法として2つの方法を説明したが、第1の方法をより詳細に説明すれば、例えば、領域32そのものが回転移動した状態になる。この場合、配置位置に相当するのは中心点36でなくてもよく、領域32内の任意の点(中心点など)であってもよいし、領域32内の全ての点であってもよい。別の言い方をすれば、第1の方法では、領域32内の各点が、どの点も同じ角度に同じ方向に回転し、表示部15に対する領域32の向き(スクリーン座標を基準としたときの向き)は回転前後で変わることになる。
一方、第2の方法では、例えば、回転移動後の中心点36(配置位置)に基づいて、回転前と同じ向きの領域32が設定される。別の言い方をすれば、領域32の中心点36と、領域32内の各点(又は領域32の輪郭上の各点)と、の位置関係は、回転前後で変わらない。第2の方法では、第1の方法とは異なり、領域32自体が回転移動するわけではないので、表示部15に対する各領域32の向き(スクリーン座標を基準としたときの向き)は回転前後で変わらない。
図18は、領域32の状態の変更に関する第1の方法と第2の方法とを比較するための図である。なお、ここでは、これらの違いが分かりやすいように、各領域32を扇形ではなく正方形として説明する。正方形であっても、各領域32の果たす役割及び機能は、実施形態や上記変形例で説明したものと同じである。なお、領域32は、正方形や扇形以外の任意の形状であってよい。図18に示すように、第1の方法では、先述したように、領域変更部105は、基準点34を中心にして領域32が回転移動された状態に変更し、表示部15に対する領域32の向きも変わることになる。
一方、第2の方法では、領域変更部105は、一部又は全部の領域32の中心点36(配置位置)を所与の点を中心に回転移動された状態に変更する。中心点36を回転移動させる方法自体は、公知の種々の回転移動アルゴリズムを適用可能であり、例えば、回転行列を用いればよい。領域変更部105は、基準点34を中心にして中心点36を回転移動させ、回転移動後の中心点36をもとに領域32を再設定する。表示部15に対する領域32の向きは、回転前後で変わらないことになる。
変形例(8)によれば、領域32の向きを自由に設定できるので、例えば、領域32の向きを変えたくないような場合であっても対応することができる。
(9)また例えば、ユーザが右領域32Rに触れ続けていたとしても、オブジェクト22の右側に壁などの他のオブジェクトがあり、右に移動できない状態の場合には、ユーザが明確な意志を持ってその操作をしているものではない可能性がある。
変形例(9)のゲーム制御装置は、ゲーム実行部108、有効判定部109、及び変更制限部110を含む。ゲーム実行部108は、指示内容判定部102により判定された指示内容に基づいて、ゲームを実行する。例えば、ゲーム実行部108は、オブジェクト22に指示内容が示す動作をさせたり、指示内容が示すゲーム上の効果を発生させたりする。ゲーム上の効果とは、パラメータを変化させることであり、例えば、能力値を増減させたり体力値を増減させたりすることである。ゲーム実行部108は、ゲームプログラムの実行結果又はユーザの操作に基づいて、ゲーム状況データDT2を更新する。
有効判定部109は、指示内容判定部102により判定された指示内容が、実行中のゲームにおいて有効であるかを判定する。「ゲームにおいて有効」とは、例えば、指示に応じてゲームの状況が変化することであり、オブジェクト22が移動可能であること、オブジェクト22が行動可能であること、又はゲーム上の効果が発生することである。オブジェクト22の移動方向に他のオブジェクトがある場合は移動可能ではないので、有効判定部109は、指示内容がゲームにおいて有効でないと判定する。また、オブジェクト22が行動するために必要なパラメータがない場合は行動可能ではないので、有効判定部109は、指示内容がゲームにおいて有効でないと判定する。また、ゲーム上の効果を発生させるために必要なパラメータやアイテムがない場合は効果が発生しないので、有効判定部109は、指示内容がゲームにおいて有効でないと判定する。
変更制限部110は、有効判定部109により有効であると判定されない場合、領域変更部105による変更を制限する。変更制限部110は、有効判定部109により有効であると判定されない場合、領域変更部105による処理の実行をさせず、有効判定部109により有効であると判定された場合、領域変更部105による処理の実行を許可する。
変形例(9)によれば、ゲームにおいて有効でない指示をしている場合は、ユーザは意志を持って指示していないと推定される。この場合に領域32の状態の変更を制限することで、ユーザが意志を持って指示していないと推定される場合にも領域32の状態が変更されてしまうことを防止することができ、誤入力防止の効果をより高くすることができる。
(10)また例えば、領域変更部105が、指示位置に基づいて、領域32が回転移動された状態に変更する場合を説明したが、領域変更部105は、指示位置に基づいて領域32の状態を変更すればよく、必ずしも領域32が回転移動された状態にしなくてもよい。即ち、変形例(10)のゲーム装置10では、領域32が回転移動する構成は必須ではなく、この構成は省略してもよい。例えば、領域変更部105は、指示位置に基づいて、領域32の配置位置、面積、及び形状の少なくとも1つが変更されるように、領域32の状態を変更するようにしてもよい。この場合も、例えば、領域変更部105は、指示位置と領域32の中心点36とが近くなるように、領域32の状態を変更するようにすればよい。領域32の配置位置、面積、及び形状の変更方法自体は、実施形態や上記変形例で説明した方法と同様である。
(11)また例えば、変形例(9)では、変更制限部110が、有効判定部109の判定結果に基づいて領域32が回転移動された状態になることを制限する場合を説明したが、有効判定部109の判定結果に基づいて、回転移動以外の状態変化を制限してもよい。即ち、変形例(11)のゲーム装置10では、領域32が回転移動する構成は必須ではなく、この構成は省略してもよい。本変形例の領域変更部105は、検出位置を用いて、領域32の状態を変更すればよく、指示位置に基づかなくてもよい。また、変形例(10)と同様、領域変更部105は、回転移動以外の状態変化を実行してもよい。変更制限部110は、有効判定部109により有効であると判定されない場合、領域変更部105による処理の実行をさせず、有効判定部109により有効であると判定された場合、領域変更部105による処理の実行を許可するようにすればよい。
(12)また例えば、上記の変形例(1)〜(11)の2つ以上を組み合わせてもよい。
また例えば、ユーザが方向指示をするために領域32が設定される場合を説明したが、領域32は、方向指示以外の用途で用いてもよい。例えば、領域32は、オブジェクト22が実行する動作を指定するために用いられてもよい。この場合、オブジェクト22は複数種類の動作をすることが可能であり、これら複数種類の動作のそれぞれに対応するように複数の領域32が設定されることになる。また例えば、領域32は、ユーザがパラメータを指定させるために用いられてもよい。例えば、攻撃などの強弱を示すパラメータをユーザが指定する場合を例に挙げると、ユーザは複数段階の強さのパラメータを指定可能であり、これら複数段階のパラメータのそれぞれに対応するように複数の領域32が設定されることになる。この場合、例えば、1つの大きな領域の中に複数の領域32が設定されているようにしてもよい。この場合、大きな領域の一端に近い領域32は、パラメータを大きくする処理が関連付けられており、他端に近い領域32は、パラメータを小さくする処理が関連付けられていてもよい。即ち、ある1つの領域内に複数の領域32が連続して設けられているようにしてもよい。例えば、あるパラメータの強弱を設定するために、1つの大きな領域内に複数の領域32が連続して設けられていてもよい。複数の領域32の各々に対して、パラメータの強さが段階的に定められていることになる。
また例えば、領域変更部105は、領域32の状態を変更した後に、ユーザが指などの接触を解除して検出位置が検出されなくなった場合には、領域32を初期状態に戻してもよい。
また例えば、静止状態の判定は省略してもよい。この場合、変形例(6)のように、ユーザが領域32をまたいで検出位置を移動させた場合に、領域変更部105は、その方向に基づいて領域32の状態を変更してもよい。また、所定期間内に検出された検出位置でなく、指示位置取得部104は、ある1時点における検出位置をそのまま指示位置として取得してもよい。
また例えば、上記説明した各機能がゲーム装置10で実現される場合を説明したが、複数台のコンピュータを含むゲームシステムにも本発明を適用することができる。即ち、本発明は、複数台のコンピュータ間でデータ通信を行いながら実行されるゲームにも適用することが可能である。
図19は、ゲームシステムの全体構成を示す図である。図19に示すように、ゲームシステム1はゲーム装置10とサーバ40とを含む。ゲーム装置10及びサーバ40は通信ネットワーク50に接続される。このため、ゲーム装置10とサーバ40との間で相互にデータ通信が可能である。
サーバ40は、例えば、サーバコンピュータによって実現される。図19に示すように、サーバ40は、制御部41、記憶部42、及び通信部43を含む。制御部41、記憶部42、及び通信部43は、ゲーム装置10の制御部11、記憶部12、及び通信部13と同様である。なお、プログラムやデータは、例えば、通信ネットワーク50を介してサーバ40に供給されるようにしてよい。サーバ40は、情報記憶媒体(例えば、光ディスク又はメモリカード等)に記憶されたプログラム又はデータを読み取るための構成要素を含むようにしてもよい。そして、プログラムやデータが情報記憶媒体を介してサーバ40に供給されるようにしてもよい。
この場合、図5及び図12に示す機能ブロックは、ゲーム装置10の制御部11又は記憶部12によって実現されるようにしてもよいし、サーバ40の制御部41又は記憶部42によって実現されるようにしてもよい。例えば、全ての機能ブロックがサーバ40(ゲーム制御装置)によって実現されるようにしてもよいし、機能ブロックがゲーム装置10とサーバ40で分担されるようにしてもよい。即ち、一部の機能ブロックがゲーム装置10によって実現され、残りの機能ブロックがサーバ40によって実現されるようにしてもよい。
例えば、データ記憶部101がサーバ40の記憶部42により実現される場合には、サーバ40は、ゲーム装置10から検出位置や指示位置を取得して検出位置データDT1や指示位置データDT3に格納すればよい。この場合、検出位置取得部100や指示位置取得部104は、サーバ40の制御部41により実現されるようにしてよい。
また例えば、指示内容判定部102がサーバ40の制御部41により実現される場合には、サーバ40は、ゲーム装置10から検出位置を取得して指示内容を判定すればよい。そして、サーバ40は、指示内容の判定結果をゲーム装置10に送信してもよいし、指示内容に基づいて実行したゲームの実行結果をゲーム装置10に送信してもよい。
また例えば、静止状態判定部103がサーバ40の制御部41により実現される場合には、サーバ40は、ゲーム装置10から検出位置を取得して静止状態を判定すればよい。そして、サーバ40は、静止状態の判定結果をゲーム装置10に送信すればよい。
また例えば、領域変更部105がサーバ40の制御部41により実現される場合には、サーバ40は、ゲーム装置10から指示位置を取得して領域32の状態を変更すればよい。そして、サーバ40は、変更後の領域32の状態を含むゲーム状況データDT2をゲーム装置10に送信すればよい。
また例えば、上記説明した各機能のうち、検出位置取得部100、指示内容判定部102、及び領域変更部105以外の機能は必須ではなく省略してもよい。また例えば、ユーザがオブジェクトの動作指示をするゲーム以外にも本発明を適用してもよい。例えば、ユーザに複数の領域を連続して触れることを要求するゲームにも本発明を適用することができる。他にも例えば、実施形態で説明したようなシューティングゲーム以外にも、アクションゲーム、ロールプレイングゲーム、及びスポーツゲーム等にも本発明を適用することができる。
[6.付記]
以上のような記載から、本発明は例えば以下のように把握される。なお、本発明の理解を容易にするために、適宜図面に記載された符号を括弧書きで記載するが、それにより本発明が図示の態様に限定されるものではない。
1)本発明の一態様に係るゲーム制御装置(10,40)は、ポインティングデバイス(14A)に入力されることにより検出される検出位置を取得する検出位置取得手段(100)と、複数の指示内容のそれぞれに対応するように設定された複数の領域と、前記検出位置と、の位置関係に基づいて指示内容を判定する指示内容判定手段(102)と、前記検出位置を用いて取得される指示位置に基づいて、前記複数の領域の一部又は全部を所与の点を中心に回転移動された状態に変更する領域変更手段(105)と、を含むことを特徴とする。
20)本発明の一態様に係るゲームシステム(1)は、ポインティングデバイス(14A)に入力されることにより検出される検出位置を取得する検出位置取得手段(100)と、複数の指示内容のそれぞれに対応するように設定された複数の領域と、前記検出位置と、の位置関係に基づいて指示内容を判定する指示内容判定手段(102)と、前記検出位置を用いて取得される指示位置に基づいて、前記複数の領域の一部又は全部を所与の点を中心に回転移動された状態に変更する領域変更手段(105)と、を含むことを特徴とする。
21)また、本発明の一態様に係るプログラムは、1)〜19)の何れかに記載のゲーム制御装置(10,40)又は20)に記載のゲームシステム(1)としてコンピュータを機能させる。
22)また、本発明の一態様に係る情報記憶媒体は、21)に記載のプログラムを記録したコンピュータで読み取り可能な情報記憶媒体である。
上記1)、20)〜22)に記載の発明によれば、指示位置に基づいて、一部又は全部の領域が所与の点を中心に回転移動された状態にすることで、指示位置を領域の回転方向や回転量に影響させることができ、例えば、ユーザが認識している方向と、設定される領域の方向と、を合わせることができるので、ユーザがポインティングデバイスを利用して入力する場合の誤入力の発生を軽減することができる。
2)本発明の一態様では、前記指示位置は、所定期間内に検出された前記検出位置を用いて取得される、ことを特徴とする。
2)に記載の発明によれば、所定期間内の検出位置を用いて取得される指示位置に基づいて領域の状態を変更することで、ユーザの誤入力により領域の状態が変わってしまうことを防止することができる。
3)本発明の一態様では、前記ゲーム制御装置(10,40)は、前記所定期間内に検出された前記検出位置を用いて、前記検出位置が静止状態であるかを判定する静止状態判定手段(103)を更に含み、前記指示位置は、前記静止状態判定手段(103)により静止状態であると判定された場合に取得される、ことを特徴とする。
3)に記載の発明によれば、静止状態であると判定された場合に取得される指示位置に基づいて領域の状態を変更することで、ユーザが意志を持って指示した位置をもとに領域の状態を変更することができるので、より効果的に誤入力の発生を軽減することができる。
4)本発明の一態様では、前記領域変更手段(105)は、直近の所定数の前記指示位置、又は、直近の期間内における前記指示位置に基づいて、前記一部又は全部の領域の状態を変更する、ことを特徴とする。
4)に記載の発明によれば、指示位置の直近の傾向を領域の状態の変更に影響させることができるので、より効果的に誤入力の発生を軽減することができる。
5)本発明の一態様では、前記領域変更手段(105)は、直近の所定数の前記指示位置の平均位置、又は、直近の期間内における前記指示位置の平均位置に基づいて、前記一部又は全部の領域の状態を変更する、ことを特徴とする。
5)に記載の発明によれば、ユーザが指示する位置の直近の傾向を平均化した平均位置に基づいて領域の状態を変化することで、ユーザの傾向をより正確に影響させることができるので、より効果的に誤入力の発生を軽減することができる。
6)本発明の一態様では、前記領域変更手段(105)は、前記指示位置が一の前記領域内にある状態から他の前記領域内にある状態に変化した場合に、前記一の領域における指示位置と、前記他の領域における指示位置と、を用いて、前記一部又は全部の領域の状態を変更する、ことを特徴とする。
6)に記載の発明によれば、指示位置が一の領域内にある状態から他の領域内にある状態に変化した場合にはユーザの傾向が出やすいため、一の領域における指示位置と他の領域における指示位置とを用いて領域の状態を変化させることで、ユーザの傾向をより正確に影響させることができるので、より効果的に誤入力の発生を軽減することができる。
7)本発明の一態様では、前記領域変更手段(105)は、前記指示位置が一の前記領域に含まれる場合に、前記一の領域の中心と前記指示位置とが近づくように、前記一部又は全部の領域の状態を変更する、ことを特徴とする。
7)に記載の発明によれば、実際に取得されている指示位置が領域の中心に近づくようにすることで、ユーザが領域の中心だと思っている位置に領域の中心が近づくので、ユーザの感覚と実際の領域とのずれを少なくすることができ、誤入力の発生を効果的に軽減することができる。
8)本発明の一態様では、前記領域変更手段(105)は、前記一部又は全部の領域の初期位置からの回転角度が閾値未満に制限されるように、前記一部又は全部の領域の状態を変更する、ことを特徴とする。
8)に記載の発明によれば、領域の初期位置からの回転角度が閾値未満になることを条件にすることで、初期位置からの回転量に上限を設けることができ、意図しない場所にまで回転してしまうことを防止することで、回転しすぎることによる誤入力を防止することができる。
9)本発明の一態様では、前記領域変更手段(105)は、前記一部又は全部の領域の一度の回転移動における回転角度が閾値未満に制限されるように、前記一部又は全部の領域の状態を変更する、ことを特徴とする。
9)に記載の発明によれば、領域の一度の回転移動における回転角度が閾値未満になることを条件にすることで、一度に大きく回転することで、領域が視覚的に認識し辛くなることを防止することができる。
10)本発明の一態様では、前記領域変更手段(105)は、前記一部又は全部の領域を、当該一部又は全部の領域全体が移動された状態に変更する、ことを特徴とする。
10)に記載の発明によれば、回転移動だけでなく、領域全体が移動された状態にすることで、より効果的に誤入力の発生を軽減することができる。
11)本発明の一態様では、前記領域変更手段(105)は、前記指示位置が一の前記領域に含まれる場合に、前記一の領域の中心と前記指示位置とが近づくように、前記一部又は全部の領域の状態を変更する、ことを特徴とする。
11)に記載の発明によれば、実際に取得されている指示位置に領域の中心が近づく状態にすることで、ユーザが領域の中心だと思っている位置に領域の中心が近づくことになるので、領域の回転と領域全体の移動とを組み合わせることで、ユーザの感覚と実際の領域とのずれを少なくすることができ、さらに誤入力の発生を軽減することができる。
12)本発明の一態様では、前記領域変更手段(105)は、前記一部又は全部の領域の状態を、当該一部又は全部の領域の面積及び形状の少なくとも一方が変更された状態にする、ことを特徴とする。
12)に記載の発明によれば、回転移動だけでなく、領域の面積や形状が変更された状態にすることで、指示位置を領域の面積や形状に影響させることができるので、ユーザに応じた面積や形状の領域にすることができ、誤入力の発生を効果的に軽減することができる。
13)本発明の一態様では、前記領域変更手段(105)は、前記指示位置の履歴に基づいて、前記一部又は全部の領域の面積及び形状の少なくとも一方が変更された状態にする、ことを特徴とする。
13)に記載の発明によれば、ユーザが実際に指示する位置の傾向は、指示位置の履歴に表れるので、指示位置の履歴を領域の面積や形状に影響させることで、ユーザに応じてより効果的に誤入力の発生を軽減することができる。
14)本発明の一態様では、前記ゲーム制御装置(10,40)は、前記領域変更手段(105)による変更の要否を選択するための選択肢を提示する提示手段(106)と、前記提示手段(106)により提示された選択肢の選択を受け付ける選択受付手段(107)と、を更に含み、前記領域変更手段(105)は、前記選択受付手段(107)により受け付けられた選択結果に基づいて、前記一部又は全部の領域の状態を変更する、ことを特徴とする。
14)に記載の発明によれば、選択肢を提示して選択させることを条件にすることで、ユーザの好みに応じた領域の状態の変更をすることができ、操作性を向上させることができる。また、ユーザに選択肢や変更内容を提示することで、ユーザに対して、どのような操作を行っていたかを認識させることができる。
15)本発明の一態様では、前記領域変更手段(105)は、前記指示位置が一の前記領域に含まれる場合に、前記一の領域の配置位置と前記指示位置との差異に基づいて定まる角度だけ回転移動された状態に、前記一部又は全部の領域の状態を変更する、ことを特徴とする。
15)に記載の発明によれば、指示位置を含む領域の配置位置と指示位置との差異を回転角度に影響させることができ、ユーザの感覚と実際の領域とのずれの分だけ回転移動させることができる。その結果、ユーザの感覚と実際の領域とのずれを少なくすることができ、誤入力の発生を効果的に軽減することができる。
16)本発明の一態様では、前記領域変更手段(105)は、前記一部又は全部の領域の配置位置を前記所与の点を中心に回転移動された状態に変更する、ことを特徴とする。
16)に記載の発明によれば、領域の向きを自由に設定できるので、例えば、領域の向きを変えたくないような場合であっても対応することができる。
17)本発明の一態様では、前記指示内容判定手段(102)は、前記検出位置が前記複数の領域の何れに含まれるかを判定することによって、指示内容を判定する、ことを特徴とする。
17)に記載の発明によれば、検出位置が領域の何れに含まれるかを判定することで指示内容を判定することができる。
18)本発明の一態様では、前記複数の指示内容は、方向に関する指示である、ことを特徴とする。
18)に記載の発明によれば、方向入力をする際の誤入力の発生を軽減することができる。
19)本発明の一態様では、前記ゲーム制御装置(10,40)は、前記指示内容判定手段(102)により判定された指示内容に基づいて、ゲームを実行する手段(108)と、前記指示内容判定手段(102)により判定された指示内容が、実行中の前記ゲームにおいて有効であるかを判定する有効判定手段(109)と、前記有効判定手段により有効であると判定されない場合、前記領域変更手段(105)による変更を制限する変更制限手段(110)と、を更に含むことを特徴とする。
19)に記載の発明によれば、ゲームにおいて有効でない指示をしている場合は、ユーザは意志を持って指示していないと推定される。この場合に領域の状態の変更を制限することで、ユーザが意志を持って指示していないと推定される場合にも領域の状態が変更されてしまうことを防止することができ、誤入力防止の効果をより高くすることができる。