ゲームプログラム、ゲーム装置、および入力装置
【課題】 ポインティングデバイスを用いてジョイスティックを模した操作において、プレイヤにおける操作の混乱を防ぐゲームプログラム、ゲーム装置、および入力装置を提供する。
【解決手段】 ジョイスティックを模した操作を行うためにポインティングデバイスに設定される原点が、プレイヤがポインティングデバイスを用いて最初に指定した位置に設定されるため、プレイヤがポインティングデバイスを用いた操作において、操作感覚で直感的に原点を感じることができ、原点の位置を目で確認する必要がない。
【解決手段】 ジョイスティックを模した操作を行うためにポインティングデバイスに設定される原点が、プレイヤがポインティングデバイスを用いて最初に指定した位置に設定されるため、プレイヤがポインティングデバイスを用いた操作において、操作感覚で直感的に原点を感じることができ、原点の位置を目で確認する必要がない。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラム、ゲーム装置、および入力装置に関し、より特定的には、タッチパネル等のポインティングデバイスを用いたコンピュータゲームで用いられるゲームプログラム、ゲーム装置、および入力装置に関する。
【背景技術】
【0002】
従来、ジョイスティックをコントローラとして用いるゲームが各種開発されている。ジョイスティックにはレバーが設けられており、当該レバーをプレイヤが前後左右に倒すことによってその方向に応じた入力が行われる。一般的には、ジョイスティックを倒した方向とその倒し具合とを、それぞれ入力方向および入力量としてゲーム装置で処理される。そして、プレイヤがジョイスティックのレバーをある方向にある量だけ倒してその位置で保持している場合、その位置情報が継続的に出力されて入力方向および入力量としてゲーム装置で処理される。なお、ジョイスティックは、家庭用ゲーム装置のコントローラの他に、一般的なパーソナルコンピュータにも用いられる。
【0003】
一方、プレイヤがタッチパネルを用いて操作する入力装置も開発されている(例えば、特許文献1および特許文献2参照)。特許文献1で開示された入力装置は、当該特許文献1の図1および図3に示されているように、プレイヤがタッチパネルを使用し、予めタッチパネル上の決められた原点からポインティングした点への方向および距離を、カーソルの移動方向および移動速度に利用していた。また、特許文献2で開示された入力装置では、当該特許文献2の図6に示されているように、タッチパネルが装着されたディスプレイにゲーム画面が表示されている。そして、プレイヤがタッチパネルをタッチした指の動きのベクトル量に応じた動きで、タッチして選択された対象をゲーム画面上で移動させる。
【0004】
ここで、タッチパネルを備えるゲーム装置でジョイスティックを模した操作を実現することができれば便利である。この場合、結果的に欲しい情報は、ジョイスティックの入力値に相当するXY2軸のベクトル値である。このベクトル値を、スティック座標系でベクトル値(sx、sy)と表す。そして、このベクトル値(sx、sy)が示す方向がジョイスティックを倒している方向であり、このベクトル値の長さがジョイスティックの倒し具合となる。また、ジョイスティックを最大まで倒した状態を長さ「1」と設定する。この場合、sx=−1〜+1、sy=−1〜+1であり、長さ「0」の時、ジョイスティックがニュートラル(直立)状態であることを示す。
【0005】
また、スティック座標系のベクトル値(sx、sy)は、タッチパネル座標系で示されるタッチパネル上にある原点(ox、oy)およびプレイヤがタッチパネルを押圧している点(tx、ty)を用いて、次の式から求められる。
sx=(tx−ox)×ratio
sy=(ty−oy)×ratio
ここで、ratioは、タッチパネル座標系のどれくらいの長さをスティック座標系での長さ「1」と見なすかを定める変換比率である。例えば、タッチパネル座標系で原点から長さ「10」離れた所で、スティック座標系の「1」と見なす場合は、ratio=1÷10=0.1に設定される。
【特許文献1】特開平11−53115号公報
【特許文献2】特開平7−182092号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記特許文献1に開示された発明は、タッチパネルを押圧している点と原点との差を情報処理に利用したものであるが、特許文献1に開示された発明の入力方式がそのままジョイスティックを模した操作に適用されると種々の問題点がある。
【0007】
実際のジョイスティックの場合、プレイヤがレバーを所望の方向に所望の角度だけ倒した状態を継続することによって、その方向および角度に応じた入力値が継続して出力される。つまり、ジョイスティックは、レバーを所定位置で保持しているときに一定の入力が継続して出力されるものである。このような操作を上記特許文献1で開示された発明に適用した場合、タッチパネルの中央部に設けられた中心点(原点)に対するプレイヤがタッチパネルを押圧する入力点の角度および距離がジョイスティックを模した操作の入力値に用いられることになる。したがって、ジョイスティックを模した操作で用いられる原点がタッチパネルの中心点に固定されており、プレイヤがタッチパネルをタッチ操作する際、常にタッチパネルに設けられた原点の位置を確認しなければ正確な操作を行うことができない。実際のジョイスティックの場合、レバーの傾倒状態が指や手の感覚で感じ取ることができるため、ジョイスティックの原点をプレイヤが目で確認する必要がないが、タッチパネルを用いてジョイスティックを模した操作を実現する場合、指の感覚で原点を感じることができないため、原点の位置を目で確認する必要が生じてしまうのである。
【0008】
なお、特許文献1には、プレイヤの指の移動軌跡にあわせ相対的にカーソルを移動させる方式も開示されている。また、特許文献2では、プレイヤがタッチパネルをタッチした指の動きのベクトルに応じた動きで、タッチして選択された対象をゲーム画面上で移動させる方式が開示されている。しかしながら、これらの方式では、プレイヤの指が移動しない限り入力がされないため、ジョイスティックを模した入力を実現することができない。なぜなら、上述したように実際のジョイスティックはレバーを所定位置で保持しているときに一定の入力が継続して出力されるものであるからである。より具体的に言えば、特許文献2で開示された方式を用いてタッチした指の動きのベクトルに応じた動きでゲームオブジェクトを移動させる場合、ゲームオブジェクトを移動させるためには指を動かし続けなければならない。
【0009】
それ故に、本発明の目的は、ポインティングデバイスを用いてジョイスティックを模した操作において、プレイヤにおける操作の混乱を防ぐゲームプログラム、ゲーム装置、および入力装置を提供することである。
【課題を解決するための手段】
【0010】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号(ステップをSと略称しステップ番号のみを記載する)等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【0011】
第1の発明は、ポインティングデバイス(13)によって操作されるゲーム装置(1)のコンピュータ(21)に実行されるゲームプログラムである。ポインティングデバイスは、プレイヤの操作に応じて指定される所定の座標系(タッチパネル座標系)に基づいた座標情報(tx、ty)を出力する。ゲームプログラムは、基準座標設定ステップ(S43)、指示座標設定ステップ(S44)、およびゲーム制御ステップ(S48、S52、S53))をコンピュータに実行させる。基準座標設定ステップは、ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、座標系におけるゲーム制御を行うための基準座標(ox、oy)を設定する。指示座標設定ステップは、ポインティングデバイスから出力される座標情報に基づいて、座標系における指示座標(ux、uy)を設定する。ゲーム制御ステップは、基準座標から指示座標への方向である入力方向および基準座標から指示座標までの距離である入力距離の少なくとも一方(sx、sy)に基づいて、ゲーム制御を行う。なお、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、タッチパネル、マウス、トラックパッド、トラックボールなどで実現される。そして、それぞれの入力装置で用いられる座標系は、タッチパネル座標系や画面座標系である。
【0012】
第2の発明は、第1の発明において、基準座標設定ステップは、プレイヤがポインティングデバイスを用いて連続的な操作を行う際、プレイヤが最初に指定した座標情報に基づいて、座標系における基準座標を設定する。
【0013】
第3の発明は、第1の発明において、ゲームプログラムは、出力検出ステップ(S40、S42、S49〜S51)を、さらにコンピュータに実行させる。出力検出ステップは、ポインティングデバイスから出力される座標情報の出力有無に応じて(S40)、プレイヤがそのポインティングデバイスを操作している状態から非操作状態へ変化したことを検出する(S50)。基準座標設定ステップは、出力検出ステップが非操作状態を検出(S51で接触フラグOFF)した後、再度ポインティングデバイスから座標情報が出力されない状態から出力される状態になったとき(S40、S42がいずれもYes)の座標情報に基づいて、座標系における基準座標を再設定する。
【0014】
第4の発明は、第3の発明において、出力検出ステップは、ポインティングデバイスから座標情報が出力される状態から出力されない状態になったときに非出力状態が継続する時間の計時を開始(S49)し、その計時する時間が所定時間を超えた際(S50でYes)、プレイヤがそのポインティングデバイスを操作している状態から非操作状態へ変化したと判断する(S51)。
【0015】
第5の発明は、第1の発明において、ゲーム制御ステップは、ポインティングデバイスから座標情報の出力がなくなったとき、その出力がなくなる前の指示座標および基準座標に応じた入力方向および入力距離の少なくとも一方に基づいたゲーム制御を継続して行う。
【0016】
第6の発明は、第1の発明において、位置関係記憶ステップを、さらにコンピュータに実行させる。位置関係記憶ステップは、ポインティングデバイスから座標情報の出力がなくなったとき、その出力がなくなる前の指示座標および基準座標の相対的な位置関係を記憶する。指示座標設定ステップは、出力がなくなった後にポインティングデバイスから出力される最初の座標情報が示す位置を座標系における指示座標に設定する。基準座標設定ステップは、位置関係記憶ステップで記憶した相対的な位置関係に基づいて、最初の座標情報が示す位置を基準に座標系における基準座標を再設定する。
【0017】
第7の発明は、第1の発明において、ゲーム装置は、ポインティングデバイスに覆われた表示部(12)を備えている。基準座標位置表示ステップを、さらにコンピュータに実行させる。基準座標位置表示ステップは、基準座標の位置を示す画像を表示部に表示する。
【0018】
第8の発明は、ポインティングデバイスによって操作されるゲーム装置である。ポインティングデバイスは、プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力する。ゲーム装置は、基準座標設定手段、指示座標設定手段、およびゲーム制御手段を備える。基準座標設定手段は、ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、座標系におけるゲーム制御を行うための基準座標を設定する。指示座標設定手段は、ポインティングデバイスから出力される座標情報に基づいて、座標系における指示座標を設定する。ゲーム制御手段は、基準座標から指示座標への方向である入力方向および基準座標から指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行う。
【0019】
第9の発明は、プレイヤの操作に応じてゲーム装置に情報を入力する入力装置である。入力装置は、座標情報出力手段(13)、基準座標設定手段、および指示座標設定手段を備える。座標情報出力手段は、プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力する。基準座標設定手段は、ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、座標系におけるゲーム制御を行うための基準座標を設定する。指示座標設定手段は、座標情報出力手段から出力される座標情報に基づいて、座標系における指示座標を設定する。ゲーム装置は、基準座標から指示座標への方向である入力方向および基準座標から指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行う。
【0020】
第10の発明は、ポインティングデバイスによって操作される情報処理装置(1)のコンピュータに実行されるプログラムである。ポインティングデバイスは、ユーザの操作に応じて指定される所定の座標系に基づいた座標情報を出力する。プログラムは、基準座標設定ステップ、指示座標設定ステップ、およびゲーム制御ステップを、コンピュータに実行させる。基準座標設定ステップは、ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、座標系における操作処理を行うための基準座標を設定する。指示座標設定ステップは、ポインティングデバイスから出力される座標情報に基づいて、座標系における指示座標を設定する。ゲーム制御ステップは、基準座標から指示座標への方向である入力方向および基準座標から指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行う。
【発明の効果】
【0021】
第1の発明によれば、ポインティングデバイスによって設定される基準座標および指示座標を用いてジョイスティックを模した操作を行う際、連続的な操作において固定的に設定される基準座標がポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて設定される。したがって、プレイヤは、自分でポインティングデバイスを操作した感覚で自分が設定した基準座標を把握することができる。つまり、プレイヤは、操作感覚で基準座標を認識することができるため、基準座標の位置を目で確認する必要がない。また、ポインティングデバイスに対して常に固定された基準座標が設けられていないため、ポインティングデバイスの座標系における任意の位置から操作を始めることができる。
【0022】
第2の発明によれば、プレイヤがポインティングデバイスを用いた連続的な操作において最初に指定した座標情報に基づいて基準座標が設定されるため、プレイヤが操作感覚の中で容易に基準座標を設定することができ、直感的に基準座標がわかる。
【0023】
第3の発明によれば、プレイヤが容易に基準座標を再設定することができる。
【0024】
第4の発明によれば、プレイヤが意図しない状態でポインティングデバイスに対する操作が途切れても、そのままの操作状態でゲームを継続することができる。
【0025】
第5の発明によれば、プレイヤが同じ操作を長時間継続することが不要となり、同じ操作を継続する操作が容易になる。
【0026】
第6の発明によれば、基準座標および指示座標の相対的な位置関係が継続されているため、プレイヤが意図しない状態で操作が途切れても、そのままの操作状態でゲームを継続することができる。
【0027】
第7の発明によれば、表示部に基準座標の位置を示す画像を表示することによって、さらにプレイヤに基準の位置をリアルタイムに示すことができる。
【0028】
また、本発明のゲーム装置、入力装置、およびプログラムによれば、上述したゲームプログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【0029】
図面を参照して、本発明の一実施形態に係るゲームプログラムを実行するゲーム装置について説明する。なお、図1は、本発明のゲームプログラムを実行するゲーム装置1の外観図である。ここでは、ゲーム装置1の一例として、携帯ゲーム装置を示す。
【0030】
図1において、本実施形態のゲーム装置1は、2つの液晶表示器(LCD)11および12を所定の配置位置となるように、ハウジング18に収納して構成される。具体的には、第1液晶表示器(以下、「LCD」という)11および第2LCD12を互いに上下に配置して収納する場合は、ハウジング18が下部ハウジング18aおよび上部ハウジング18bから構成され、上部ハウジング18bが下部ハウジング18aの上辺の一部で回動自在に支持される。上部ハウジング18bは、第1LCD11の平面形状よりも少し大きな平面形状を有し、一方主面から第1LCD11の表示画面を露出するように開口部が形成される。下部ハウジング18aは、その平面形状が上部ハウジング18bよりも横長に選ばれ、横方向の略中央部に第2LCD12の表示画面を露出する開口部が形成され、第2LCD12を挟む何れか一方にスピーカ15の音抜き孔が形成されるとともに、第2LCD12を挟む左右に操作スイッチ部14が装着される。
【0031】
操作スイッチ部14は、第2LCD12の右横における下部ハウジング18aの一方主面に装着される動作スイッチ(Aボタン)14aおよび動作スイッチ(Bボタン)14bと、第2LCD12の左横における下部ハウジング18aの一方主面に装着される方向指示スイッチ(十字キー)14cと、スタートスイッチ14dと、セレクトスイッチ14eと、側面スイッチ14fおよび14gとを含む。動作スイッチ14aおよび14bは、例えばサッカーゲーム等のスポーツゲームにおいてはパスやシュートを行う等の指示、アクションゲームにおいてはジャンプ、パンチ、武器を動かす等の指示、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいてはアイテムの取得、武器またはコマンドの選択決定等の指示入力に使用される。方向指示スイッチ14cは、プレイヤによって操作スイッチ部14を用いて操作可能なプレイヤオブジェクト(またはプレイヤキャラクタ)の移動方向を指示したり、カーソルの移動方向を指示したりする等のゲーム画面における方向指示に用いられる。側面スイッチ(Lボタン)14fおよび側面スイッチ(Rボタン)14gは、下部ハウジング18aにおける上部面(上部側面)の左右に設けられる。また、必要に応じて、動作スイッチをさらに追加してもかまわない。
【0032】
また、第2LCD12の上面には、本発明の入力装置の一例としてタッチパネル13(図1における破線領域)が装着される。タッチパネル13は、例えば、抵抗膜方式、光学式(赤外線方式)、静電容量結合式の何れの種類でもよく、その上面をスタイラス16(または指でも可)で押圧操作、移動操作、または撫でる操作をしたとき、スタイラス16の座標位置を検出して座標データを出力するポインティングデバイスである。
【0033】
上部ハウジング18bの側面近傍には、必要に応じてタッチパネル13を操作するスタイラス16を収納するための収納孔(図1における二点破線領域)が形成される。この収納孔には、スタイラス16が収納される。下部ハウジング18aの側面の一部には、ゲームプログラムを記憶したメモリ(例えば、ROM)を内蔵したゲームカートリッジ17(以下、単にカートリッジ17と記載する)を着脱自在に装着するためのカートリッジ挿入部(図1における一点破線領域)が形成される。カートリッジ17は、ゲームプログラムを記憶する情報記憶媒体であり、例えば、ROMまたはフラッシュメモリのような不揮発性半導体メモリが用いられる。カートリッジ挿入部の内部には、カートリッジ17と電気的に接続するためのコネクタ(図2参照)が内蔵される。さらに、下部ハウジング18a(または上部ハウジング18bでも可)には、CPU等の各種電子部品を実装した電子回路基板が収納される。なお、ゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性半導体メモリに限らず、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【0034】
次に、図2を参照して、ゲーム装置1の内部構成について説明する。なお、図2は、ゲーム装置1の内部構成を示すブロック図である。
【0035】
図2において、ハウジング18に収納される電子回路基板には、CPUコア21が実装される。CPUコア21には、所定のバスを介して、カートリッジ17と接続するためのコネクタ28が接続されるとともに、入出力インターフェース(I/F)回路27、第1のグラフィック処理ユニット(第1GPU)24、第2のグラフィック処理ユニット(第2GPU)26、およびワーキングRAM(WRAM)22が接続される。
【0036】
コネクタ28には、カートリッジ17が着脱自在に接続される。カートリッジ17は、上述したようにゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するROM171とバックアップデータを書き換え可能に記憶するRAM172とを搭載する。カートリッジ17のROM171に記憶されたゲームプログラムは、WRAM22にロードされ、当該WRAM22にロードされたゲームプログラムがCPUコア21によって実行される。CPUコア21がゲームプログラムを実行して得られる一時的なデータや画像を生成するためのデータがWRAM22に記憶される。
【0037】
このように、ROM171には、ゲーム装置1のコンピュータ、特にCPUコア21によって実行可能な形式の命令群及びデータ群であるゲームプログラムが記録される。そして、このゲームプログラムは、WRAM22に適宜読み込まれ実行される。なお、本実施例では、ゲームプログラムなどをカートリッジ17に記録させたが、これらゲームプログラムを他の媒体や通信回線を通じて供給することもできる。
【0038】
I/F回路27には、タッチパネル13、操作スイッチ部14、およびスピーカ15が接続される。スピーカ15は、上述した音抜き孔の内側位置に配置される。
【0039】
第1GPU24には、第1ビデオRAM(以下「VRAM」)23が接続され、第2GPU26には、第2のビデオRAM(以下「VRAM」)25が接続される。第1GPU24は、CPUコア21からの指示に応じて、WRAM22に記憶される画像を生成するためのデータに基づいて第1ゲーム画像を生成し、第1VRAM23に描画する。第2GPU26は、CPUコア21からの指示に応じて、WRAM22に記憶される画像を生成するためのデータに基づいて第2ゲーム画像を生成し、第2VRAM25に描画する。
【0040】
第1GPU24が第1LCD11に接続され、第2GPU26が第2LCD12に接続される。第1GPU24は、CPUコア21からの指示に応じて第1VRAM23に描画された第1ゲーム画像を第1LCD11に出力する。そして、第1LCD11は、第1GPU24から出力された第1ゲーム画像を表示する。第2GPU26は、CPUコア21からの指示に応じて第2VRAM25に描画された第2ゲーム画像を第2LCD12に出力する。そして、第2LCD12は、第2GPU26から出力された第2ゲーム画像を表示する。
【0041】
I/F回路27は、タッチパネル13、操作スイッチ部14、およびスピーカ15等の外部入出力装置とCPUコア21との間のデータの受け渡しを行う回路である。タッチパネル13(タッチパネル用のデバイスドライバを含む)は、第2VRAM25の座標系に対応するタッチパネル座標系を有し、スタイラス16等によって入力(指示)された位置に対応する位置座標のデータを出力するものである。例えば、第2LCD12の表示画面の解像度は256dot×192dotであり、タッチパネル13の検出精度も表示画面に対応した256dot×192dotである。なお、タッチパネル13の検出精度は、第2LCD12の表示画面の解像度よりも低いものであってもよいし、高いものであってもよい。
【0042】
次に、図3〜図11を参照して、本発明のゲームプログラムによってゲーム装置1で実行されるタッチパネル13から入力される情報に基づいた処理について説明する。なお、図3は、当該ゲームプログラムを実行することによってゲーム装置1が処理する動作を示すフローチャートである。図4は、図3におけるステップ43のタッチ開始時の初期化処理について詳細な動作を示すサブルーチンである。図5は、図3におけるステップ44の接触点の手ブレ補正処理について詳細な動作を示すサブルーチンである。図6は、図3におけるステップ47の原点の引き寄せ処理について詳細な動作を示すサブルーチンである。図7〜図11は、図3に示すフローチャートに基づいた動作によって処理されるタッチ操作の一例を示す図である。なお、これらの処理を実行するためのプログラムは、ROM171に格納されたゲームプログラムに含まれており、ゲーム装置1の電源がオンになったときに、ROM171からWRAM22に読み出されて、CPUコア21によって実行される。
【0043】
まず、ゲーム装置1の電源(図示せず)がONされると、CPUコア21によってブートプログラム(図示せず)が実行され、これによりカートリッジ17に格納されているゲームプログラムがWRAM22にロードされる。当該ロードされたゲームプログラムがCPUコア21に実行されることによって、図3に示すステップ(図3〜図6では「S」と略称する)が実行される。なお、上記ゲームプログラムを実行することによって、当該ゲームプログラムに応じたゲーム画像などが第1LCD11および第2LCD12に描画されるが、ゲーム内容についての詳細な説明を省略し、ここではタッチパネル13から入力される情報に基づいた処理について詳述する。
【0044】
図3において、CPUコア21は、プレイヤがタッチパネル13に触れているか否かを判断する(ステップ40)。タッチパネル13は、上述したようにタッチパネル座標系を有し、スタイラス16やプレイヤの指などによって入力(指示)された位置に対応する位置座標のデータを出力する。つまり、ステップ40では、CPUコア21がタッチパネル13(タッチパネル13を制御するデバイスドライバを含む)から出力される位置座標のデータ有無を検出する。そして、CPUコア21は、プレイヤがタッチパネル13に触れている場合、処理を次のステップ41に進める。一方、CPUコア21は、プレイヤがタッチパネル13に触れていない場合、処理を次のステップ49に進める。
【0045】
ステップ41において、CPUコア21は、非接触カウンタCTを「0」にクリアする。ここで、非接触カウンタCTは、プレイヤがタッチパネル13に対して意識的に非タッチ状態としたか否かをCPUコア21が判断するためのカウンタである。後述で明らかとなるが、CPUコア21は、タッチパネル13から座標情報が出力されない状態となると非接触カウンタCTのカウントを開始する。
【0046】
次に、CPUコア21は、プレイヤのタッチパネル13に対するタッチ操作がタッチ開始時か否かを判断する(すなわち、非タッチ状態からタッチ状態に変化したか否かを判断するものであり、より具体的にはタッチパネル13から座標情報が出力されない状態から出力される状態になったか否かを判断するものである)。なお、CPUコア21は、後述で明らかとなる接触フラグのONまたはOFFの設定によってタッチ開始時か否かを判断することができる。そして、CPUコア21は、タッチ開始時である(接触フラグがOFF)場合、処理を次のステップ43に進める。一方、CPUコア21は、タッチ開始時でない(すなわち、タッチが継続している状態;接触フラグがON)場合、処理を次のステップ44に進める。
【0047】
ステップ43において、CPUコア21は、タッチ開始時の初期化処理を行う。以下、図4に示すサブルーチンを参照して、タッチ開始時の初期化処理について説明する。
【0048】
図4において、CPUコア21は、接触フラグをONに設定する(ステップ55)。そして、CPUコア21は、現在プレイヤがタッチパネル13をタッチ操作している接触点(以下、単に接触点と記載する)をタッチパネル13の原点(基準座標)に設定し記憶する(ステップ56)。具体的には、上記タッチパネル座標系において、接触点を(tx、ty)、原点を(ox、oy)とすると、CPUコア21は、
ox=tx
oy=ty
として、原点座標を設定する。つまり、CPUコア21は、タッチパネル13から座標情報が出力されない状態から出力される状態になったときに、最初にタッチパネル13から出力される接触点の座標情報に基づいて、タッチパネル13の原点座標(基準座標)を設定する。
【0049】
次に、CPUコア21は、接触点をタッチパネル13の指示点(以下、単に指示点と記載する)に設定し(ステップ57)、当該サブルーチンによる処理を終了する。具体的には、上記タッチパネル座標系において、接触点を(tx、ty)、指示点を(ux、uy)とすると、CPUコア21は、
ux=tx
uy=ty
として、指示点座標を設定する。
【0050】
図3に戻り、ステップ44において、CPUコア21は、接触点の手ブレ補正処理を行う。以下、図5に示すサブルーチンを参照して、接触点の手ブレ補正処理について説明する。例えば、タッチパネル13は、指先などの広い面積を有するものでタッチ操作した場合、接触点が1点に特定できずに接触点座標が振れる場合がある。そこで、接触点の手ブレ補正処理では、処理に使用する指示点座標を接触点座標とは別に定め、当該接触点座標に遊びを持たせる。すなわち、指示点座標から所定範囲以内で接触点座標が変動している間は、指示点座標を変更しないようにしている。例えば、指示点座標を中心とした円形枠(遊び範囲)を設定し、当該円形枠の中心を指示点座標とする。そして、指示点座標が当該円形枠の中に位置している間は円形枠を移動せず、接触点座標が当該円形枠から外れるとその動きに合わせて円形枠を移動させて結果的に指示点座標も移動させる。つまり、指示点座標は、接触点が円形枠の外縁と接触することによる円形枠の移動によって、その位置が移動する。なお、円形枠の半径が、タッチパネル13への手ブレの遊び範囲に相当する。なお、遊び範囲の領域は円形でなくてもよいし、指示点座標は領域の中心でなくてもよい。
【0051】
図5において、CPUコア21は、現在設定されている指示点と接触点との差分から、それらの距離L2を求める(ステップ61)。具体的には、上記タッチパネル座標系において、接触点を(tx、ty)、指示点を(ux、uy)とすると、CPUコア21は、差分vxおよびvyを、
vx=ux−tx
vy=uy−ty
として求める。そして、CPUコア21は、距離L2を
【数1】
として求める。これによって、タッチパネル座標系に基づいた指示点および接触点間の距離L2が求められる。
【0052】
次に、CPUコア21は、接触点が指示点に設けられた遊び範囲を逸脱しているか否かを判断する(ステップ62)。図7(a)に示すように、指示点(ux、uy)を中心とした所定領域は、遊び範囲として設定される。例えば、遊び範囲は、指示点(ux、uy)を中心とした所定半径を有する円領域で設定される。そして、CPUコア21は、上記ステップ61で求めた距離L2と遊び範囲の半径とを比較して、距離L2が大きい場合に接触点が遊び範囲を逸脱していると判断する。そして、CPUコア21は、接触点が遊び範囲を逸脱している場合(図7(a)の状態)、処理を次のステップ63に進める。一方、CPUコア21は、接触点が遊び範囲内に含まれている場合、当該サブルーチンによる処理を終了する。
【0053】
ステップ63において、CPUコア21は、後述する指示点の移動速度を求めるために、現在の指示点の座標を保存する。具体的には、図7(b)に示すように、上記タッチパネル座標系において、保存する指示点の座標を(uxa、uya)とすると、CPUコア21は、
uxa=ux
uya=uy
として設定する。
【0054】
次に、CPUコア21は、接触点が上記遊び範囲の外縁に位置するように指示点を移動させる(ステップ64)。例えば、図7(b)に示すように、CPUコア21は、指示点と接触点との間が距離L2となるように、指示点と接触点とを結ぶ直線に沿って指示点を移動させ、新たな指示点を設定する。具体的には、上記タッチパネル座標系において、新たな指示点を(ux、uy)とすると、
ux=tx+vx*r/L2
uy=ty+vy*r/L2
として設定する。ここで、rは、遊び範囲の半径である。
【0055】
次に、CPUコア21は、指示点の移動量を算出し(ステップ65)、当該サブルーチンによる処理を終了する。具体的には、CPUコア21は、指示点の移動量を、以下の式を用いて算出する。
uvx=ux−uxa
uvy=uy−uya
この移動ベクトル(uvx、uvy)は、原点の引き寄せ方向の調整に用いられるが、詳細は後述する。
【0056】
図3に戻り、CPUコア21は、現在設定されている原点と指示点との差分から、それらの距離L1を求める(ステップ45)。具体的には、上記タッチパネル座標系において、原点を(ox、oy)、指示点を(ux、uy)とすると、CPUコア21は、差分vxおよびvyを、
vx=ox−ux
vy=oy−uy
として求める。そして、CPUコア21は、距離L1を、
【数2】
として求める。これによって、タッチパネル座標系に基づいた原点および指示点間の距離L1が求められる。
【0057】
次に、CPUコア21は、指示点が原点に設けられた制限範囲を逸脱しているか否かを判断する(ステップ46)。図8に示すように、原点(ox、oy)を中心とした所定領域は、制限範囲として設定される。例えば、制限範囲は、原点(ox、oy)を中心とした所定半径を有する円領域で設定される。そして、CPUコア21は、上記ステップ45で求めた距離L1と制限範囲の半径Rとを比較して、距離L1が大きい場合に指示点が制限範囲を逸脱していると判断する。そして、CPUコア21は、指示点が制限範囲を逸脱している場合、処理を次のステップ47に進める。一方、CPUコア21は、指示点が制限範囲内に含まれている場合(図8の状態)、処理を次のステップ48に進める。
【0058】
ステップ47を説明する前に、指示点が原点の制限範囲内に含まれている場合(ステップ46でNo)のステップ48の処理について説明する。ステップ48において、CPUコア21は、原点から指示点へのベクトル値に基づいて、スティック値を求める。
【0059】
本実施例では、タッチパネル13を用いてジョイスティックを模した操作を実現し、必要な情報は、ジョイスティックの入力値(以下、スティック値と記載する)に相当するXY2軸のベクトル値である。このベクトル値を、スティック座標系でスティック値(sx、sy)と表す。そして、このスティック値(sx、sy)が示す方向がジョイスティックを倒している方向であり、このスティック値の長さがジョイスティックの倒し具合となる。また、ジョイスティックを最大まで倒した状態を長さ「1」と設定する。この場合、sx=−1〜+1、sy=−1〜+1であり、長さ「0」の時、ジョイスティックがニュートラル(直立)状態であることを示す。
【0060】
ステップ48において、スティック座標系のスティック値(sx、sy)は、タッチパネル座標系で示されるタッチパネル13上にある原点(ox、oy)および指示点(ux、uy)を用いて、次の式から求められる。
sx=(ux−ox)×ratio
sy=(uy−oy)×ratio
ここで、ratioは、タッチパネル座標系のどれくらいの長さをスティック座標系での長さ「1」と見なすかを定める変換比率である。なお、原点から指示点へのベクトル値は、ベクトル(ux−ox、uy−oy)で表される。
【0061】
本実施例では、原点の周辺にジョイスティックのレバーの倒し具合を機械的に止める枠に対応する制限範囲を設け、制限範囲の外縁部がタッチ操作されるとジョイスティックを限界まで倒した操作として取り扱う。そして、上記制限範囲を逸脱したタッチ操作は、制限範囲の外縁部への操作と同等に扱われる。つまり、原点に設けられる制限範囲の外縁部が、スティック座標系の「1」と見なされる。したがって、ratio=1/Rに設定される。ここで、Rは、タッチパネル座標系における制限範囲の半径である。
【0062】
図8に示すように、タッチパネル13に対して、プレイヤが制限範囲内の原点(ox、oy)の真上位置をタッチ操作することによって、指示点(ux1、uy1)が設定されている。この場合、原点から指示点へのベクトル値は、真上方向を示すベクトルv1(ux1−ox、uy1−oy)となる。そして、このベクトルv1に基づいて求められるスティック値も真上方向となり、その長さは「1」以下となる。
【0063】
その後、タッチパネル13に対して、プレイヤが制限範囲内で指示点(ux1、uy1)の右方向の位置をタッチ操作することによって、指示点(ux2、uy2)が設定される。この場合、原点から指示点へのベクトル値は、右上方向を示すベクトルv2(ux2−ox、uy2−oy)となる。そして、このベクトルv2に基づいて求められるスティック値も右上方向となり、その長さは「1」以下となる。
【0064】
図3に戻り、CPUコア21は、指示点が原点の制限範囲を逸脱している場合(ステップ46でYes)、ステップ47において原点の引き寄せ処理を行う。以下、図6に示すサブルーチンを参照して、原点の引き寄せ処理について説明する。
【0065】
図6において、CPUコア21は、原点の引き寄せ方向を設定する(ステップ71)。例えば、CPUコア21は、原点を引き寄せる方向をタッチパネル座標系において、引き寄せ方向(px、py)で設定する。そして、CPUコア21は、引き寄せ方向(px、py)を、
px=ox−(ux+uvx*m)
py=oy−(uy+uvy*m)
ここで、mは、原点を引き寄せる方向を調整する0以上のパラメータであり、その値が大きいほど、原点を引き寄せる方向が指示点の移動方向に近くなり、原点が指示点の後方(指示点の移動方向を前方とする)に回り込むことになる。すなわち、m=0のときは、原点と指示点を結ぶベクトルの方向が変化しないように原点が引き寄せられる。そして、mが大きくなるにつれて、原点から指示点へ向くベクトルの方向が指示点の移動ベクトルの方向に近づくように原点が引き寄せられることになる。このmの値を調整することによって、指示点と原点との位置関係を重視してスティック値のベクトル方向を決定するか(mが小さい)、それとも、指示点の移動方向を重視してスティック値のベクトル方向を決定するか(mが大きい)を調整することができるのである。なお、引き寄せ方向という用語を用いているが、実際に原点が引き寄せられる方向とは逆向きの方向であることに注意されたい。なお、パラメータmによる原点の引き寄せ方向の詳細については後述する。
【0066】
例えば、図9(a)に示すように、タッチパネル13に対して、プレイヤが制限範囲内の原点(ox、oy)の真上位置をタッチ操作することによって、指示点(ux1、uy1)が設定されているとする。この場合、指示点(ux1、uy1)が制限範囲内であるため、原点の引き寄せ処理は実行されない。その後、タッチパネル13に対して、プレイヤが指示点(ux1、uy1)の右方向で制限範囲を逸脱した位置をタッチ操作することによって、指示点(ux3、uy3)が設定される。そして、上記ステップ71によって、m=0の場合、原点(ox、oy)から指示点(ux3、uy3)を結ぶ方向が原点を引き寄せる方向(px、py)に設定される。
【0067】
次に、CPUコア21は、原点の移動先目標座標を算出する(ステップ72)。具体的には、CPUコア21は、まずステップ71で設定した引き寄せ方向(px、py)に基づいた長さL3を、
【数3】
で算出する。そして、CPUコア21は、タッチパネル座標系に基づいた原点の移動先目標座標(ox2、oy2)を、
ox2=ux+px*R/L3
oy2=uy+py*R/L3
で算出する。
【0068】
次に、CPUコア21は、原点を移動させて原点座標を更新して記憶し(ステップ73)、当該サブルーチンに基づく処理を終了する。なお、前述のようにして決定された移動先目標座標に原点を移動させてもよいが、移動先目標座標に少しずつ近づくように原点を移動してもよい。具体的には、CPUコア21は、移動後の原点座標(ox、oy)を、
ox=ox+(ox2−ox)*n
oy=oy+(oy2−oy)*n
で算出する。ここで、nは、原点を移動先目標座標に近づける割合を示すパラメータである。パラメータnの設定値によって、移動前の原点がステップ72で算出された移動先目標座標(ox2、oy2)への足りない差分に対してどれくらいの割合(パラメータn)を加算するかを調整することができる。
【0069】
例えば、図9(b)は、パラメータmおよびnをそれぞれm=0、n=1に設定して、指示点(ux3、uy3)に引き寄せられる原点(ox、oy)の一例を示している。図9(b)に示すように、指示点(ux3、uy3)が制限範囲(図示破線領域)を逸脱した位置に設定された場合、原点(ox、oy)が指示点(ux3、uy3)に引き寄せられ、その制限範囲も指示点(ux3、uy3)に引き寄せられる。m=0の場合、原点(ox、oy)が引き寄せられる方向は、移動前の原点から指示点(ux3、uy3)に向かう方向となる。そして、n=1の場合、原点(ox、oy)が移動することによって、当該原点の制限範囲の外縁に指示点(ux3、uy3)が配置され、移動後の原点と指示点との距離L1=制限範囲の半径Rとなる。このように、原点の引き寄せ処理によって、指示点が制限範囲外であるとき、原点を当該指示点に近づけるように変更される。
【0070】
次に、原点の引き寄せ処理後のステップ48の処理について説明する。ステップ48では、上述したように、CPUコア21が原点から指示点へのベクトル値に基づいて、スティック値を求めるが、ここでは、引き寄せ処理された原点を用いてベクトル値が算出される。以下、図10を参照して、引き寄せ処理された原点を用いてベクトル値の変化の一例を説明する。なお、図10は、原点の引き寄せ処理が繰り返されることによって、原点から指示点へのベクトル値が変化する一例を示す図であり、説明を具体的にするためにパラメータmおよびnをそれぞれm=0、n=1に設定している。
【0071】
図10(a)において、タッチパネル13に対して、プレイヤが制限範囲A1内の原点O1の真上位置をタッチ操作することによって、指示点U1が設定されている。この場合、原点O1から指示点U1へのベクトル値は、真上方向を示すベクトルV1となる。そして、このベクトルV1に基づいて求められるスティック値も真上方向となり、その長さは「1」以下となる。
【0072】
その後、指示点が右方向に移動して、図10(b)において、タッチパネル13に対して、プレイヤが指示点U1の右方向にある制限範囲A1の外縁部をタッチ操作することによって、指示点U2が設定される。この場合、原点O1から指示点U2へのベクトル値は、水平方向との間で角度θ2を形成する右上方向を示すベクトルV2となる。そして、このベクトルV2に基づいて求められるスティック値も同様の右上方向となり、その長さは「1」となる。
【0073】
さらに、指示点が右方向に移動して、図10(c)において、タッチパネル13に対して、プレイヤが指示点U1およびU2の右方向で制限範囲A1(図示破線領域)を逸脱した位置をタッチ操作することによって、指示点U3が設定される。そして、m=0の場合、原点(図示白抜き丸印)が指示点U3へ向かう方向に引き寄せられ、その制限範囲A2の外縁に指示点U3が配置されるように原点O2が設定される。この場合、原点O2から指示点U3へのベクトル値は、水平方向との間で角度θ3(θ3<θ2)を形成する右上方向を示すベクトルV3となる。そして、このベクトルV3に基づいて求められるスティック値も同様の右上方向となり、その長さは「1」となる。
【0074】
さらに、図10(d)において、タッチパネル13に対して、プレイヤが指示点U1、U2、およびU3の右方向で制限範囲A2(図示破線領域)を逸脱した位置をタッチ操作することによって、指示点U4が設定される。そして、m=0の場合、原点(図示白抜き丸印)が指示点U4へ向かう方向に引き寄せられ、その制限範囲A3の外縁に指示点U4が配置されるように原点O3が設定される。この場合、原点O3から指示点U4へのベクトル値は、水平方向との間で角度θ4(θ4<θ3)を形成する右上方向を示すベクトルV4となる。そして、このベクトルV4に基づいて求められるスティック値も同様の右上方向となり、その長さは「1」となる。
【0075】
なお、上述したように、パラメータnの設定値によって、原点を移動先目標座標に近づける割合(すなわち、スティック値が示す長さが所定距離R以上になったときに所定距離Rに近づける割合)が調整される。したがって、パラメータnの値によっては、原点と指示点との距離がRより離れることがある。この場合、上記ステップ48で求められるスティック値(sx、sy)において、sxの絶対値およびsyの絶対値が1以上となり、結果的にスティック値の長さが1より大きな値に設定されてしまう。しかしながら、上述したようにスティック値の長さがジョイスティックの倒し具合となり、ジョイスティックを最大まで倒した状態を長さ「1」と設定しているため、スティック値の長さが1より大きな値となった場合、スティック値の長さを「1」に設定する。
【0076】
このように、原点の引き寄せ処理によって、指示点を一定方向(プレイヤによるタッチ点が移動する方向;図10では右水平方向)に継続的に移動していると、スティック値が示す方向(つまり、ジョイスティックを倒している方向)は、指示点の移動方向(右水平方向)に次第に近づいていく。これにより、プレイヤは指示座標を一定方向に継続的に移動することによって原点の位置を意識せずにスティック入力の方向を決定することができる。
【0077】
図3に戻り、CPUコア21が上記ステップ40でプレイヤがタッチパネル13に触れていないと判断した場合、CPUコア21は、非接触カウンタCTを+1して進める(ステップ49)。次に、CPUコア21は、非接触カウンタCTのカウント値が所定値Cを超えたか否かを判断する(ステップ50)。そして、CPUコア21は、非接触カウンタCTのカウント値が所定値Cを超えている場合、処理を次のステップ51に進める。一方、CPUコア21は、非接触カウンタCTのカウント値が所定値C以下である場合、処理を次のステップ53に進める。
【0078】
ステップ51において、CPUコア21は、接触フラグをOFFに設定する。そして、CPUコア21は、スティック値をニュートラルに設定して(ステップ52)、当該フローチャートによる処理を終了する。ここで、スティック値がニュートラルとは、ジョイスティックがニュートラル(直立)状態であることを示す値であり、sx=0、sy=0である。
【0079】
一方、ステップ53において、CPUコア21は、前回の処理で求めた直前のスティック値を更新せずに継続して使用して、当該フローチャートによる処理を終了する。
【0080】
上記ステップ49〜52の処理で明らかなように、CPUコア21は、プレイヤによるタッチパネル13へのタッチ操作が途切れた場合に非接触カウンタCTのカウント値を進め、当該カウント値が所定値Cを超えた場合に接触フラグをOFFにしてプレイヤがタッチ操作を終了したと判断する。つまり、CPUコア21は、非接触カウンタCTのカウント値が所定値Cを超えた場合に、プレイヤがタッチパネル13をタッチ操作している状態から非タッチ操作状態(つまり、プレイヤが意図的にタッチ操作を止めた状態)へ変化したと判断する。したがって、プレイヤが意図しない状態でタッチパネル13へのタッチ操作が途切れても(例えば、不注意でタッチパネルから指が離れてしまった場合でも)、そのままの操作状態でゲームを継続することができる。
【0081】
なお、ステップ48で求められたスティック値、ステップ52で設定されたスティック値、およびステップ53で継続して使用するスティック値は、従来のジョイスティックを使用するゲームと同様、ゲーム処理に利用される。例えば、プレイヤがタッチパネル13上の同じ場所を接触点(指示点)としてタッチ操作を続けた場合、上述したフローチャートを処理周期に応じて繰り返すことによって同じスティック値が繰り返して求められる。つまり、ゲーム装置1におけるゲーム処理においては、同じスティック値を用いて繰り返しゲーム処理されることになり、ジョイスティックのレバーを所定位置で保持しているときに一定の入力が継続して出力される操作に応じた処理と同様のゲーム処理が実現される。
【0082】
なお、背景技術のように原点を固定した場合もスティック値が示す方向がタッチ操作する右水平方向に近づいていくが、角度θ4等が原点固定よりも小さくなり、原点の引き寄せ処理を行った方がタッチ操作する方向により近づくことは明らかである。また、指示点は、必ず制限範囲内に設定され、指示点と原点との距離は常に所定距離以内である。したがって、プレイヤが指示点(接触点)を原点から極端に遠い位置に動かし、ジョイスティックを限界まで倒してから戻していくような操作を行うときでも、タッチパネルの原点までの距離が所定距離以内であるため、操作のレスポンスが向上する。また、タッチパネル13に対する接触点に対して、常に一定範囲に原点が設定されるため、プレイヤはタッチパネル13に設定される原点を感覚的に把握することができ、タッチパネル13自体を視認しなくても、ジョイスティックを操作するような感覚でタッチパネル13を操作することができる。
【0083】
前述の通り、パラメータm設定値によって、移動先目標座標を指示点の後方(指示点の移動方向を前方とする)に回り込ませる割合(すなわち、スティック値が示す方向を指示点の移動方向に近づける割合)を調整することができる。また、パラメータnの設定値によって、原点を移動先目標座標に近づける割合(すなわち、スティック値が示す長さが所定距離R以上になったときに所定距離Rに近づける割合)を調整することができる。以下、図11を参照して、パラメータmおよびnと原点が引き寄せられる位置との関係について説明する。なお、図11は、パラメータmおよびnに応じて引き寄せられる原点の位置を説明するための図である。
【0084】
図11において、タッチパネル13に対して、プレイヤが原点O5に設定された制限範囲A5内をタッチ操作することによって、指示点U5が設定されている。その後、指示点が右に移動し、タッチパネル13に対して、プレイヤが指示点U5の右方向の直線s1上にある制限範囲A5外をタッチ操作することによって、指示点U6が設定される。そして、原点O5と指示点U5およびU6とに応じて原点が引き寄せられて原点O6が配置され、原点O6を基準に制限範囲A6が設定される。なお、図11で示す原点O6および制限範囲A6は、パラメータm=0およびn=1の場合を示している。
【0085】
上述したようにパラメータmは、原点を引き寄せる方向を調整し、m≧0である。そして、パラメータmの設定値が大きいほど指示点U5が指示点U6へ移動する方向(直線s1)の後方位置に原点が近づくように引き寄せられる。また、m=0の場合、原点O5から指示点U6を結ぶ方向(直線s2)が原点を引き寄せる方向に設定される。ここで、できるだけ直線s1に原点が近づくように引き寄せるためには、指示点U6が直線s1に沿った方向へさらに大きく動いたようにして計算をすればよい。このため、上記ステップ71で説明したように、原点O5と指示点U6との差分から引き寄せ方向(px、py)を求める際に、指示点U6が更に大きく動いたような値になるように、指示点の移動ベクトル(uvx、uvy)の所定割合(パラメータm)を加算している。したがって、パラメータmの設定値に応じて、原点は直線s1およびs2に挟まれた範囲に引き寄せられることになり、すなわち、移動先目標座標は、直線s1およびs2に挟まれた範囲に設定されることになる。また、前述の式から明らかなように、移動先目標座標は、指示点座標から所定距離(R)だけ離れた位置に設定されるので、結局、移動先目標座標が図11の円弧ar1上のいずれかの点に決定される。なお、移動先目標座標は、m=0のとき、直線s2と円弧ar1との交点に限りなく近づくように設定され、mが無限大のときに、直線s1と円弧ar1との交点に設定される。なお、mが一定以上大きな値になったときに、引き寄せ方向(px、py)を(uvx、uvy)と一致するように設定してもよい。そうすれば、mが一定以上大きな値になったときに、移動先目標座標を直線s2と円弧ar1との交点に設定できる。
【0086】
また、上述したようにパラメータnは、原点を移動先目標座標に引き寄せる強さを調整し、0<n≦1である。そして、n=1の場合、原点を移動先目標座標に移動させる処理となる。また、0<n<1の場合、原点と移動先目標座標を結ぶ線分上のいずれかの点(両端を含まず)へ移動させる処理となる。当該線分上のどの点に移動させるかはnの値によって異なり、nが小さいほど現在の原点に近い点が選択され、nが大きいほど移動先目標座標に近い点が選択される。
【0087】
したがって、パラメータmおよびnの設定値を調整することによって、原点は図11に示す領域α内の位置に引き寄せられる(移動する)。領域αは、半径Rで指示点U6を中心とする円周のうち直線s1と直線s2で切り取られる円弧ar1と、当該円弧ar1の両端と原点O5をそれぞれ結ぶ直線によって囲まれる領域である(ただし、原点O5を含まない)。
【0088】
また、引き寄せ方向(px、py)を求めた後、移動後の原点座標(ox、oy)を求めるときに、
ox=ux+(px/L3)*n´
oy=uy+(py/L3)*n´
(R≦n´<L4(O5とU6間の長さ))
で決定するようにすれば、原点を図12に示すの領域β内の位置に移動させることができる。領域βは、直線s1およびs2によって鋭角に挟まれる範囲で、半径Rで指示点U6を中心とする円弧ar1と指示点U6から原点O5までの長さを半径として指示点U6を中心とする円弧ar2との間の範囲である(ただし、円弧ar2上の点を含まない)。
【0089】
このようにパラメータmおよびn(またはn´)の設定値によって原点が引き寄せられる位置が調整可能であり、ゲーム毎のレスポンスや操作性に応じて最良の値に調整することができる。
【0090】
逆に、図12を参照して、領域βの外に原点を移動する場合を考える。まず、円弧ar1より指示座標U6側(例えば、図12に示す点O7)に原点を移動した場合、プレイヤは、スティック入力値の長さを増加させる方向に押圧点を移動しているにもかかわらず入力値の長さが減少することになり、プレイヤの操作感覚に一致しない。また、直線s1よりも紙面において上方の位置(例えば、図12に示す点O8)に原点を移動した場合、プレイヤは、原点に対して右斜め上の点をタッチし、かつ、タッチ位置を右方向に変化させているにもかかわらず、スティック入力値の方向が右下方向となってしまって、プレイヤの操作感覚に一致しない。さらに、直線s2よりも紙面において下方の位置(例えば、図12に示す点O9)に原点を移動した場合、プレイヤは、タッチ位置を右方向に変化させているにもかかわらず、スティック入力値の右方向成分が減少してしまって、プレイヤの操作感覚に一致しない。また、円弧ar2よりも指示点座標U6から離れる側に原点を移動させることは、原点と指示点座標との距離が長くなることを意味する。このように、領域βの中に原点を移動する場合と、領域βの外に原点を移動する場合とで、プレイヤに与える操作感覚に大きな差が生じるのである。
【0091】
このように、本発明では、ジョイスティックを模した操作を行うためにタッチパネル上に設定される原点が、プレイヤがタッチパネルを最初にタッチ操作した場所に設定される。したがって、プレイヤは、自分でタッチパネルを触った感覚で自分が設定した原点を把握することができる。つまり、プレイヤは、指の感覚で原点を感じることができるため、原点の位置を目で確認する必要がない。また、タッチパネルに対して固定された原点が設けられていないため、タッチパネル座標系における任意の位置から操作を始めることができる。さらに、プレイヤが意図せず少しの間だけ指を離してしまった場合に原点が再設定されてしまうことを防止しつつ、意図的に指を離した場合(一定時間以上指を離した場合)に原点を再設定することができる。
【0092】
なお、上記実施例では、原点の引き寄せ処理をした後スティック値を求めるようにしたが、スティック値を求めた後原点の引き寄せ処理をし、次回のスティック値を求める際に引き寄せ後の原点を利用するようにしてもよい。ただし、通常は、原点の引き寄せ処理をした後スティック値を求めるようにした方がよい。
【0093】
また、上記実施例で説明した原点および当該原点を中心に設定される制限範囲の少なくとも一方を表す画像を、第2LCD12に表示してもかまわない。本発明は、プレイヤがタッチパネル13を視認しなくても感覚的に原点位置を認識できるものであるが、タッチパネル13が覆う第2LCD12に原点や制限範囲を表示することによって、さらにプレイヤにタッチパネル13における原点や制限範囲の位置をリアルタイムに示すことができる。
【0094】
また、上記実施例では、指示点を中心とした遊び範囲の中に接触点が自由に配置されており、接触点が遊び範囲から外れるとその動きに合わせて遊び範囲が移動し、結果的に指示点が移動することによって接触点の手ブレ補正処理を行っている。しかしながら、手ブレ補正による効果を期待しない場合は、手ブレ補正処理を行わなくてもかまわない。この場合、接触点がそのまま指示点として取り扱われて遊び範囲は設定されず、上記ステップ44の処理は行われない。このように接触点をそのまま指示点として取り扱っても、本発明の効果を同様に得ることができる。
【0095】
また、図3で説明したフローチャートでは、プレイヤがタッチパネル13へのタッチ操作を終了し(ステップ40でNo)、非接触カウンタCTのカウントが所定値Cを超えると(ステップ50でYes)、スティック値がニュートラルに設定されるが、次のタッチ操作が行われるまで、タッチ操作終了前に設定されているスティック値をゲームパラメータとして継続して処理してもかまわない。次のタッチ操作が行われるまでスティック値をゲームパラメータとして継続して処理する場合、プレイヤが同じタッチ操作を長時間継続することが不要となり、同じ操作を継続する操作が容易になる。
【0096】
また、図3で説明したフローチャートでは、プレイヤがタッチパネル13へのタッチ操作を終了し、再度タッチ操作をすると新たに原点が設定されるが、次のタッチ操作が行われた場合、指示点と原点との相対的な位置関係を継続してもかまわない。例えば、タッチ操作終了前のステップ48で用いられた原点および指示点の相対的な位置関係を記憶し、タッチ操作が再開された際、その接触点が指示点に設定される。そして、記憶されている相対的な位置関係を用いて、指示点を基準に原点が設定される。一般的に、プレイヤがタッチパネル13をタッチ操作中にタッチパネル13の領域外に達すると、タッチパネル13の異なった位置を再度タッチ操作して同じ操作を継続しようとする。このようなタッチ操作のやり直しにおいても、原点および指示点の相対的な位置関係が継続されているため、操作が途切れることなくゲームを楽しむことができる。また、原点をタッチパネル13の外に設定することも可能となるため、ゲーム操作のバリエーションが広くなる。
【0097】
また、上記実施例における原点とは、厳密な意味でのタッチパネル座標の原点でなくてよい。すなわち、タッチパネル座標の原点は固定しておいて、スティック入力の基準となる基準点を変化させればよい。
【0098】
また、上記実施例では、ジョイスティックを模した操作を行う入力装置としてタッチパネルを用いたが、他のポインティングデバイスを用いてもかまわない。ここで、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、マウス、トラックパッド、トラックボールなどを入力装置として使用し、入力装置から出力される出力値から計算された画面座標系の情報を用いれば、本発明を同様に実現することができる。なお、マウス等のポインティングデバイスの場合、タッチ状態と非タッチ状態とをクリックボタンのオンオフに対応させ、マウス等から出力される出力値から座標を計算する処理はゲーム装置等で行えばよい。
【0099】
また、上記実施例では、ゲーム装置1にタッチパネル13が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上記実施例では表示器を2つ設けたが、表示器は1つであってもかまわない。すなわち、上記実施例において、第2LCD12設けず単にタッチパネル13のみを設けるようにしてもよい。また、上記実施例において、第2LCD12を設けず第1LCD11の上面にタッチパネル13を設けても良い。
【0100】
また、上記実施例では、ゲーム装置1にタッチパネル13が一体的に設けられているが、タッチパネルを入力装置の1つとする一般的なパーソナルコンピュータなどの情報処理装置でもかまわない。この場合、この情報処理装置のコンピュータが実行するプログラムは、典型的にゲームに用いられるゲームプログラムに限らず、上述した方式で得られたスティック値が上記情報処理装置に対する操作処理に用いられる汎用的なプログラムである。
【0101】
また、上記実施例においては、指示点座標が制限範囲から外れたときに、原点の引き寄せ処理をおこなうようにしたが、原点の引き寄せる処理を実行する条件は他の条件であってもよい。例えば、原点と指示点座標とのなす角度が前回の入力時と異なったとき、または、原点と指示点座標とのなす角度が所定角度以上になったとき等が考えられる。
【産業上の利用可能性】
【0102】
本発明のゲームプログラム、ゲーム装置、および入力装置は、プレイヤのタッチ操作に応じて原点を設定してジョイスティックを模した操作を行うことができ、ポインティングデバイスを用いて操作するゲーム等に適用できる。
【図面の簡単な説明】
【0103】
【図1】本発明の一実施形態に係るゲームプログラムを実行するゲーム装置1の外観図
【図2】図1のゲーム装置1の内部構成を示すブロック図
【図3】本発明の一実施形態に係るゲームプログラムを実行することによってゲーム装置1が処理する動作を示すフローチャート
【図4】図3におけるステップ43のタッチ開始時の初期化処理について詳細な動作を示すサブルーチン
【図5】図3におけるステップ44の接触点の手ブレ補正処理について詳細な動作を示すサブルーチン
【図6】図3におけるステップ47の原点の引き寄せ処理について詳細な動作を示すサブルーチン
【図7】図3に示すフローチャートに基づいた動作によって処理される手ブレ補正処理の一例を示す図
【図8】図3に示すフローチャートに基づいた動作によって処理される指示点、原点、および制限範囲の一例を示す図
【図9】図3に示すフローチャートに基づいた動作によって処理される原点の引き寄せ処理の一例を示す図
【図10】図3に示すフローチャートに基づいて原点の引き寄せ処理が繰り返されることによって、原点から指示点へのベクトル値が変化する一例を示す図
【図11】パラメータmおよびnに応じて引き寄せられる原点の位置を説明するための一例を示す図
【図12】パラメータmおよびnに応じて引き寄せられる原点の位置を説明するための他の例を示す図
【符号の説明】
【0104】
1…ゲーム装置
11…第1LCD
12…第2LCD
13…タッチパネル
14…操作スイッチ部
15…スピーカ
16…スタイラス
17…カートリッジ
171…ROM
172…RAM
18…ハウジング
21…CPUコア
22…WRAM
23…第1VRAM
24…第1GPU
25…第2VRAM
26…第2GPU
27…I/F回路
28…コネクタ
【技術分野】
【0001】
本発明は、ゲームプログラム、ゲーム装置、および入力装置に関し、より特定的には、タッチパネル等のポインティングデバイスを用いたコンピュータゲームで用いられるゲームプログラム、ゲーム装置、および入力装置に関する。
【背景技術】
【0002】
従来、ジョイスティックをコントローラとして用いるゲームが各種開発されている。ジョイスティックにはレバーが設けられており、当該レバーをプレイヤが前後左右に倒すことによってその方向に応じた入力が行われる。一般的には、ジョイスティックを倒した方向とその倒し具合とを、それぞれ入力方向および入力量としてゲーム装置で処理される。そして、プレイヤがジョイスティックのレバーをある方向にある量だけ倒してその位置で保持している場合、その位置情報が継続的に出力されて入力方向および入力量としてゲーム装置で処理される。なお、ジョイスティックは、家庭用ゲーム装置のコントローラの他に、一般的なパーソナルコンピュータにも用いられる。
【0003】
一方、プレイヤがタッチパネルを用いて操作する入力装置も開発されている(例えば、特許文献1および特許文献2参照)。特許文献1で開示された入力装置は、当該特許文献1の図1および図3に示されているように、プレイヤがタッチパネルを使用し、予めタッチパネル上の決められた原点からポインティングした点への方向および距離を、カーソルの移動方向および移動速度に利用していた。また、特許文献2で開示された入力装置では、当該特許文献2の図6に示されているように、タッチパネルが装着されたディスプレイにゲーム画面が表示されている。そして、プレイヤがタッチパネルをタッチした指の動きのベクトル量に応じた動きで、タッチして選択された対象をゲーム画面上で移動させる。
【0004】
ここで、タッチパネルを備えるゲーム装置でジョイスティックを模した操作を実現することができれば便利である。この場合、結果的に欲しい情報は、ジョイスティックの入力値に相当するXY2軸のベクトル値である。このベクトル値を、スティック座標系でベクトル値(sx、sy)と表す。そして、このベクトル値(sx、sy)が示す方向がジョイスティックを倒している方向であり、このベクトル値の長さがジョイスティックの倒し具合となる。また、ジョイスティックを最大まで倒した状態を長さ「1」と設定する。この場合、sx=−1〜+1、sy=−1〜+1であり、長さ「0」の時、ジョイスティックがニュートラル(直立)状態であることを示す。
【0005】
また、スティック座標系のベクトル値(sx、sy)は、タッチパネル座標系で示されるタッチパネル上にある原点(ox、oy)およびプレイヤがタッチパネルを押圧している点(tx、ty)を用いて、次の式から求められる。
sx=(tx−ox)×ratio
sy=(ty−oy)×ratio
ここで、ratioは、タッチパネル座標系のどれくらいの長さをスティック座標系での長さ「1」と見なすかを定める変換比率である。例えば、タッチパネル座標系で原点から長さ「10」離れた所で、スティック座標系の「1」と見なす場合は、ratio=1÷10=0.1に設定される。
【特許文献1】特開平11−53115号公報
【特許文献2】特開平7−182092号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記特許文献1に開示された発明は、タッチパネルを押圧している点と原点との差を情報処理に利用したものであるが、特許文献1に開示された発明の入力方式がそのままジョイスティックを模した操作に適用されると種々の問題点がある。
【0007】
実際のジョイスティックの場合、プレイヤがレバーを所望の方向に所望の角度だけ倒した状態を継続することによって、その方向および角度に応じた入力値が継続して出力される。つまり、ジョイスティックは、レバーを所定位置で保持しているときに一定の入力が継続して出力されるものである。このような操作を上記特許文献1で開示された発明に適用した場合、タッチパネルの中央部に設けられた中心点(原点)に対するプレイヤがタッチパネルを押圧する入力点の角度および距離がジョイスティックを模した操作の入力値に用いられることになる。したがって、ジョイスティックを模した操作で用いられる原点がタッチパネルの中心点に固定されており、プレイヤがタッチパネルをタッチ操作する際、常にタッチパネルに設けられた原点の位置を確認しなければ正確な操作を行うことができない。実際のジョイスティックの場合、レバーの傾倒状態が指や手の感覚で感じ取ることができるため、ジョイスティックの原点をプレイヤが目で確認する必要がないが、タッチパネルを用いてジョイスティックを模した操作を実現する場合、指の感覚で原点を感じることができないため、原点の位置を目で確認する必要が生じてしまうのである。
【0008】
なお、特許文献1には、プレイヤの指の移動軌跡にあわせ相対的にカーソルを移動させる方式も開示されている。また、特許文献2では、プレイヤがタッチパネルをタッチした指の動きのベクトルに応じた動きで、タッチして選択された対象をゲーム画面上で移動させる方式が開示されている。しかしながら、これらの方式では、プレイヤの指が移動しない限り入力がされないため、ジョイスティックを模した入力を実現することができない。なぜなら、上述したように実際のジョイスティックはレバーを所定位置で保持しているときに一定の入力が継続して出力されるものであるからである。より具体的に言えば、特許文献2で開示された方式を用いてタッチした指の動きのベクトルに応じた動きでゲームオブジェクトを移動させる場合、ゲームオブジェクトを移動させるためには指を動かし続けなければならない。
【0009】
それ故に、本発明の目的は、ポインティングデバイスを用いてジョイスティックを模した操作において、プレイヤにおける操作の混乱を防ぐゲームプログラム、ゲーム装置、および入力装置を提供することである。
【課題を解決するための手段】
【0010】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号(ステップをSと略称しステップ番号のみを記載する)等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【0011】
第1の発明は、ポインティングデバイス(13)によって操作されるゲーム装置(1)のコンピュータ(21)に実行されるゲームプログラムである。ポインティングデバイスは、プレイヤの操作に応じて指定される所定の座標系(タッチパネル座標系)に基づいた座標情報(tx、ty)を出力する。ゲームプログラムは、基準座標設定ステップ(S43)、指示座標設定ステップ(S44)、およびゲーム制御ステップ(S48、S52、S53))をコンピュータに実行させる。基準座標設定ステップは、ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、座標系におけるゲーム制御を行うための基準座標(ox、oy)を設定する。指示座標設定ステップは、ポインティングデバイスから出力される座標情報に基づいて、座標系における指示座標(ux、uy)を設定する。ゲーム制御ステップは、基準座標から指示座標への方向である入力方向および基準座標から指示座標までの距離である入力距離の少なくとも一方(sx、sy)に基づいて、ゲーム制御を行う。なお、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、タッチパネル、マウス、トラックパッド、トラックボールなどで実現される。そして、それぞれの入力装置で用いられる座標系は、タッチパネル座標系や画面座標系である。
【0012】
第2の発明は、第1の発明において、基準座標設定ステップは、プレイヤがポインティングデバイスを用いて連続的な操作を行う際、プレイヤが最初に指定した座標情報に基づいて、座標系における基準座標を設定する。
【0013】
第3の発明は、第1の発明において、ゲームプログラムは、出力検出ステップ(S40、S42、S49〜S51)を、さらにコンピュータに実行させる。出力検出ステップは、ポインティングデバイスから出力される座標情報の出力有無に応じて(S40)、プレイヤがそのポインティングデバイスを操作している状態から非操作状態へ変化したことを検出する(S50)。基準座標設定ステップは、出力検出ステップが非操作状態を検出(S51で接触フラグOFF)した後、再度ポインティングデバイスから座標情報が出力されない状態から出力される状態になったとき(S40、S42がいずれもYes)の座標情報に基づいて、座標系における基準座標を再設定する。
【0014】
第4の発明は、第3の発明において、出力検出ステップは、ポインティングデバイスから座標情報が出力される状態から出力されない状態になったときに非出力状態が継続する時間の計時を開始(S49)し、その計時する時間が所定時間を超えた際(S50でYes)、プレイヤがそのポインティングデバイスを操作している状態から非操作状態へ変化したと判断する(S51)。
【0015】
第5の発明は、第1の発明において、ゲーム制御ステップは、ポインティングデバイスから座標情報の出力がなくなったとき、その出力がなくなる前の指示座標および基準座標に応じた入力方向および入力距離の少なくとも一方に基づいたゲーム制御を継続して行う。
【0016】
第6の発明は、第1の発明において、位置関係記憶ステップを、さらにコンピュータに実行させる。位置関係記憶ステップは、ポインティングデバイスから座標情報の出力がなくなったとき、その出力がなくなる前の指示座標および基準座標の相対的な位置関係を記憶する。指示座標設定ステップは、出力がなくなった後にポインティングデバイスから出力される最初の座標情報が示す位置を座標系における指示座標に設定する。基準座標設定ステップは、位置関係記憶ステップで記憶した相対的な位置関係に基づいて、最初の座標情報が示す位置を基準に座標系における基準座標を再設定する。
【0017】
第7の発明は、第1の発明において、ゲーム装置は、ポインティングデバイスに覆われた表示部(12)を備えている。基準座標位置表示ステップを、さらにコンピュータに実行させる。基準座標位置表示ステップは、基準座標の位置を示す画像を表示部に表示する。
【0018】
第8の発明は、ポインティングデバイスによって操作されるゲーム装置である。ポインティングデバイスは、プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力する。ゲーム装置は、基準座標設定手段、指示座標設定手段、およびゲーム制御手段を備える。基準座標設定手段は、ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、座標系におけるゲーム制御を行うための基準座標を設定する。指示座標設定手段は、ポインティングデバイスから出力される座標情報に基づいて、座標系における指示座標を設定する。ゲーム制御手段は、基準座標から指示座標への方向である入力方向および基準座標から指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行う。
【0019】
第9の発明は、プレイヤの操作に応じてゲーム装置に情報を入力する入力装置である。入力装置は、座標情報出力手段(13)、基準座標設定手段、および指示座標設定手段を備える。座標情報出力手段は、プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力する。基準座標設定手段は、ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、座標系におけるゲーム制御を行うための基準座標を設定する。指示座標設定手段は、座標情報出力手段から出力される座標情報に基づいて、座標系における指示座標を設定する。ゲーム装置は、基準座標から指示座標への方向である入力方向および基準座標から指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行う。
【0020】
第10の発明は、ポインティングデバイスによって操作される情報処理装置(1)のコンピュータに実行されるプログラムである。ポインティングデバイスは、ユーザの操作に応じて指定される所定の座標系に基づいた座標情報を出力する。プログラムは、基準座標設定ステップ、指示座標設定ステップ、およびゲーム制御ステップを、コンピュータに実行させる。基準座標設定ステップは、ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、座標系における操作処理を行うための基準座標を設定する。指示座標設定ステップは、ポインティングデバイスから出力される座標情報に基づいて、座標系における指示座標を設定する。ゲーム制御ステップは、基準座標から指示座標への方向である入力方向および基準座標から指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行う。
【発明の効果】
【0021】
第1の発明によれば、ポインティングデバイスによって設定される基準座標および指示座標を用いてジョイスティックを模した操作を行う際、連続的な操作において固定的に設定される基準座標がポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて設定される。したがって、プレイヤは、自分でポインティングデバイスを操作した感覚で自分が設定した基準座標を把握することができる。つまり、プレイヤは、操作感覚で基準座標を認識することができるため、基準座標の位置を目で確認する必要がない。また、ポインティングデバイスに対して常に固定された基準座標が設けられていないため、ポインティングデバイスの座標系における任意の位置から操作を始めることができる。
【0022】
第2の発明によれば、プレイヤがポインティングデバイスを用いた連続的な操作において最初に指定した座標情報に基づいて基準座標が設定されるため、プレイヤが操作感覚の中で容易に基準座標を設定することができ、直感的に基準座標がわかる。
【0023】
第3の発明によれば、プレイヤが容易に基準座標を再設定することができる。
【0024】
第4の発明によれば、プレイヤが意図しない状態でポインティングデバイスに対する操作が途切れても、そのままの操作状態でゲームを継続することができる。
【0025】
第5の発明によれば、プレイヤが同じ操作を長時間継続することが不要となり、同じ操作を継続する操作が容易になる。
【0026】
第6の発明によれば、基準座標および指示座標の相対的な位置関係が継続されているため、プレイヤが意図しない状態で操作が途切れても、そのままの操作状態でゲームを継続することができる。
【0027】
第7の発明によれば、表示部に基準座標の位置を示す画像を表示することによって、さらにプレイヤに基準の位置をリアルタイムに示すことができる。
【0028】
また、本発明のゲーム装置、入力装置、およびプログラムによれば、上述したゲームプログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【0029】
図面を参照して、本発明の一実施形態に係るゲームプログラムを実行するゲーム装置について説明する。なお、図1は、本発明のゲームプログラムを実行するゲーム装置1の外観図である。ここでは、ゲーム装置1の一例として、携帯ゲーム装置を示す。
【0030】
図1において、本実施形態のゲーム装置1は、2つの液晶表示器(LCD)11および12を所定の配置位置となるように、ハウジング18に収納して構成される。具体的には、第1液晶表示器(以下、「LCD」という)11および第2LCD12を互いに上下に配置して収納する場合は、ハウジング18が下部ハウジング18aおよび上部ハウジング18bから構成され、上部ハウジング18bが下部ハウジング18aの上辺の一部で回動自在に支持される。上部ハウジング18bは、第1LCD11の平面形状よりも少し大きな平面形状を有し、一方主面から第1LCD11の表示画面を露出するように開口部が形成される。下部ハウジング18aは、その平面形状が上部ハウジング18bよりも横長に選ばれ、横方向の略中央部に第2LCD12の表示画面を露出する開口部が形成され、第2LCD12を挟む何れか一方にスピーカ15の音抜き孔が形成されるとともに、第2LCD12を挟む左右に操作スイッチ部14が装着される。
【0031】
操作スイッチ部14は、第2LCD12の右横における下部ハウジング18aの一方主面に装着される動作スイッチ(Aボタン)14aおよび動作スイッチ(Bボタン)14bと、第2LCD12の左横における下部ハウジング18aの一方主面に装着される方向指示スイッチ(十字キー)14cと、スタートスイッチ14dと、セレクトスイッチ14eと、側面スイッチ14fおよび14gとを含む。動作スイッチ14aおよび14bは、例えばサッカーゲーム等のスポーツゲームにおいてはパスやシュートを行う等の指示、アクションゲームにおいてはジャンプ、パンチ、武器を動かす等の指示、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいてはアイテムの取得、武器またはコマンドの選択決定等の指示入力に使用される。方向指示スイッチ14cは、プレイヤによって操作スイッチ部14を用いて操作可能なプレイヤオブジェクト(またはプレイヤキャラクタ)の移動方向を指示したり、カーソルの移動方向を指示したりする等のゲーム画面における方向指示に用いられる。側面スイッチ(Lボタン)14fおよび側面スイッチ(Rボタン)14gは、下部ハウジング18aにおける上部面(上部側面)の左右に設けられる。また、必要に応じて、動作スイッチをさらに追加してもかまわない。
【0032】
また、第2LCD12の上面には、本発明の入力装置の一例としてタッチパネル13(図1における破線領域)が装着される。タッチパネル13は、例えば、抵抗膜方式、光学式(赤外線方式)、静電容量結合式の何れの種類でもよく、その上面をスタイラス16(または指でも可)で押圧操作、移動操作、または撫でる操作をしたとき、スタイラス16の座標位置を検出して座標データを出力するポインティングデバイスである。
【0033】
上部ハウジング18bの側面近傍には、必要に応じてタッチパネル13を操作するスタイラス16を収納するための収納孔(図1における二点破線領域)が形成される。この収納孔には、スタイラス16が収納される。下部ハウジング18aの側面の一部には、ゲームプログラムを記憶したメモリ(例えば、ROM)を内蔵したゲームカートリッジ17(以下、単にカートリッジ17と記載する)を着脱自在に装着するためのカートリッジ挿入部(図1における一点破線領域)が形成される。カートリッジ17は、ゲームプログラムを記憶する情報記憶媒体であり、例えば、ROMまたはフラッシュメモリのような不揮発性半導体メモリが用いられる。カートリッジ挿入部の内部には、カートリッジ17と電気的に接続するためのコネクタ(図2参照)が内蔵される。さらに、下部ハウジング18a(または上部ハウジング18bでも可)には、CPU等の各種電子部品を実装した電子回路基板が収納される。なお、ゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性半導体メモリに限らず、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【0034】
次に、図2を参照して、ゲーム装置1の内部構成について説明する。なお、図2は、ゲーム装置1の内部構成を示すブロック図である。
【0035】
図2において、ハウジング18に収納される電子回路基板には、CPUコア21が実装される。CPUコア21には、所定のバスを介して、カートリッジ17と接続するためのコネクタ28が接続されるとともに、入出力インターフェース(I/F)回路27、第1のグラフィック処理ユニット(第1GPU)24、第2のグラフィック処理ユニット(第2GPU)26、およびワーキングRAM(WRAM)22が接続される。
【0036】
コネクタ28には、カートリッジ17が着脱自在に接続される。カートリッジ17は、上述したようにゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するROM171とバックアップデータを書き換え可能に記憶するRAM172とを搭載する。カートリッジ17のROM171に記憶されたゲームプログラムは、WRAM22にロードされ、当該WRAM22にロードされたゲームプログラムがCPUコア21によって実行される。CPUコア21がゲームプログラムを実行して得られる一時的なデータや画像を生成するためのデータがWRAM22に記憶される。
【0037】
このように、ROM171には、ゲーム装置1のコンピュータ、特にCPUコア21によって実行可能な形式の命令群及びデータ群であるゲームプログラムが記録される。そして、このゲームプログラムは、WRAM22に適宜読み込まれ実行される。なお、本実施例では、ゲームプログラムなどをカートリッジ17に記録させたが、これらゲームプログラムを他の媒体や通信回線を通じて供給することもできる。
【0038】
I/F回路27には、タッチパネル13、操作スイッチ部14、およびスピーカ15が接続される。スピーカ15は、上述した音抜き孔の内側位置に配置される。
【0039】
第1GPU24には、第1ビデオRAM(以下「VRAM」)23が接続され、第2GPU26には、第2のビデオRAM(以下「VRAM」)25が接続される。第1GPU24は、CPUコア21からの指示に応じて、WRAM22に記憶される画像を生成するためのデータに基づいて第1ゲーム画像を生成し、第1VRAM23に描画する。第2GPU26は、CPUコア21からの指示に応じて、WRAM22に記憶される画像を生成するためのデータに基づいて第2ゲーム画像を生成し、第2VRAM25に描画する。
【0040】
第1GPU24が第1LCD11に接続され、第2GPU26が第2LCD12に接続される。第1GPU24は、CPUコア21からの指示に応じて第1VRAM23に描画された第1ゲーム画像を第1LCD11に出力する。そして、第1LCD11は、第1GPU24から出力された第1ゲーム画像を表示する。第2GPU26は、CPUコア21からの指示に応じて第2VRAM25に描画された第2ゲーム画像を第2LCD12に出力する。そして、第2LCD12は、第2GPU26から出力された第2ゲーム画像を表示する。
【0041】
I/F回路27は、タッチパネル13、操作スイッチ部14、およびスピーカ15等の外部入出力装置とCPUコア21との間のデータの受け渡しを行う回路である。タッチパネル13(タッチパネル用のデバイスドライバを含む)は、第2VRAM25の座標系に対応するタッチパネル座標系を有し、スタイラス16等によって入力(指示)された位置に対応する位置座標のデータを出力するものである。例えば、第2LCD12の表示画面の解像度は256dot×192dotであり、タッチパネル13の検出精度も表示画面に対応した256dot×192dotである。なお、タッチパネル13の検出精度は、第2LCD12の表示画面の解像度よりも低いものであってもよいし、高いものであってもよい。
【0042】
次に、図3〜図11を参照して、本発明のゲームプログラムによってゲーム装置1で実行されるタッチパネル13から入力される情報に基づいた処理について説明する。なお、図3は、当該ゲームプログラムを実行することによってゲーム装置1が処理する動作を示すフローチャートである。図4は、図3におけるステップ43のタッチ開始時の初期化処理について詳細な動作を示すサブルーチンである。図5は、図3におけるステップ44の接触点の手ブレ補正処理について詳細な動作を示すサブルーチンである。図6は、図3におけるステップ47の原点の引き寄せ処理について詳細な動作を示すサブルーチンである。図7〜図11は、図3に示すフローチャートに基づいた動作によって処理されるタッチ操作の一例を示す図である。なお、これらの処理を実行するためのプログラムは、ROM171に格納されたゲームプログラムに含まれており、ゲーム装置1の電源がオンになったときに、ROM171からWRAM22に読み出されて、CPUコア21によって実行される。
【0043】
まず、ゲーム装置1の電源(図示せず)がONされると、CPUコア21によってブートプログラム(図示せず)が実行され、これによりカートリッジ17に格納されているゲームプログラムがWRAM22にロードされる。当該ロードされたゲームプログラムがCPUコア21に実行されることによって、図3に示すステップ(図3〜図6では「S」と略称する)が実行される。なお、上記ゲームプログラムを実行することによって、当該ゲームプログラムに応じたゲーム画像などが第1LCD11および第2LCD12に描画されるが、ゲーム内容についての詳細な説明を省略し、ここではタッチパネル13から入力される情報に基づいた処理について詳述する。
【0044】
図3において、CPUコア21は、プレイヤがタッチパネル13に触れているか否かを判断する(ステップ40)。タッチパネル13は、上述したようにタッチパネル座標系を有し、スタイラス16やプレイヤの指などによって入力(指示)された位置に対応する位置座標のデータを出力する。つまり、ステップ40では、CPUコア21がタッチパネル13(タッチパネル13を制御するデバイスドライバを含む)から出力される位置座標のデータ有無を検出する。そして、CPUコア21は、プレイヤがタッチパネル13に触れている場合、処理を次のステップ41に進める。一方、CPUコア21は、プレイヤがタッチパネル13に触れていない場合、処理を次のステップ49に進める。
【0045】
ステップ41において、CPUコア21は、非接触カウンタCTを「0」にクリアする。ここで、非接触カウンタCTは、プレイヤがタッチパネル13に対して意識的に非タッチ状態としたか否かをCPUコア21が判断するためのカウンタである。後述で明らかとなるが、CPUコア21は、タッチパネル13から座標情報が出力されない状態となると非接触カウンタCTのカウントを開始する。
【0046】
次に、CPUコア21は、プレイヤのタッチパネル13に対するタッチ操作がタッチ開始時か否かを判断する(すなわち、非タッチ状態からタッチ状態に変化したか否かを判断するものであり、より具体的にはタッチパネル13から座標情報が出力されない状態から出力される状態になったか否かを判断するものである)。なお、CPUコア21は、後述で明らかとなる接触フラグのONまたはOFFの設定によってタッチ開始時か否かを判断することができる。そして、CPUコア21は、タッチ開始時である(接触フラグがOFF)場合、処理を次のステップ43に進める。一方、CPUコア21は、タッチ開始時でない(すなわち、タッチが継続している状態;接触フラグがON)場合、処理を次のステップ44に進める。
【0047】
ステップ43において、CPUコア21は、タッチ開始時の初期化処理を行う。以下、図4に示すサブルーチンを参照して、タッチ開始時の初期化処理について説明する。
【0048】
図4において、CPUコア21は、接触フラグをONに設定する(ステップ55)。そして、CPUコア21は、現在プレイヤがタッチパネル13をタッチ操作している接触点(以下、単に接触点と記載する)をタッチパネル13の原点(基準座標)に設定し記憶する(ステップ56)。具体的には、上記タッチパネル座標系において、接触点を(tx、ty)、原点を(ox、oy)とすると、CPUコア21は、
ox=tx
oy=ty
として、原点座標を設定する。つまり、CPUコア21は、タッチパネル13から座標情報が出力されない状態から出力される状態になったときに、最初にタッチパネル13から出力される接触点の座標情報に基づいて、タッチパネル13の原点座標(基準座標)を設定する。
【0049】
次に、CPUコア21は、接触点をタッチパネル13の指示点(以下、単に指示点と記載する)に設定し(ステップ57)、当該サブルーチンによる処理を終了する。具体的には、上記タッチパネル座標系において、接触点を(tx、ty)、指示点を(ux、uy)とすると、CPUコア21は、
ux=tx
uy=ty
として、指示点座標を設定する。
【0050】
図3に戻り、ステップ44において、CPUコア21は、接触点の手ブレ補正処理を行う。以下、図5に示すサブルーチンを参照して、接触点の手ブレ補正処理について説明する。例えば、タッチパネル13は、指先などの広い面積を有するものでタッチ操作した場合、接触点が1点に特定できずに接触点座標が振れる場合がある。そこで、接触点の手ブレ補正処理では、処理に使用する指示点座標を接触点座標とは別に定め、当該接触点座標に遊びを持たせる。すなわち、指示点座標から所定範囲以内で接触点座標が変動している間は、指示点座標を変更しないようにしている。例えば、指示点座標を中心とした円形枠(遊び範囲)を設定し、当該円形枠の中心を指示点座標とする。そして、指示点座標が当該円形枠の中に位置している間は円形枠を移動せず、接触点座標が当該円形枠から外れるとその動きに合わせて円形枠を移動させて結果的に指示点座標も移動させる。つまり、指示点座標は、接触点が円形枠の外縁と接触することによる円形枠の移動によって、その位置が移動する。なお、円形枠の半径が、タッチパネル13への手ブレの遊び範囲に相当する。なお、遊び範囲の領域は円形でなくてもよいし、指示点座標は領域の中心でなくてもよい。
【0051】
図5において、CPUコア21は、現在設定されている指示点と接触点との差分から、それらの距離L2を求める(ステップ61)。具体的には、上記タッチパネル座標系において、接触点を(tx、ty)、指示点を(ux、uy)とすると、CPUコア21は、差分vxおよびvyを、
vx=ux−tx
vy=uy−ty
として求める。そして、CPUコア21は、距離L2を
【数1】
として求める。これによって、タッチパネル座標系に基づいた指示点および接触点間の距離L2が求められる。
【0052】
次に、CPUコア21は、接触点が指示点に設けられた遊び範囲を逸脱しているか否かを判断する(ステップ62)。図7(a)に示すように、指示点(ux、uy)を中心とした所定領域は、遊び範囲として設定される。例えば、遊び範囲は、指示点(ux、uy)を中心とした所定半径を有する円領域で設定される。そして、CPUコア21は、上記ステップ61で求めた距離L2と遊び範囲の半径とを比較して、距離L2が大きい場合に接触点が遊び範囲を逸脱していると判断する。そして、CPUコア21は、接触点が遊び範囲を逸脱している場合(図7(a)の状態)、処理を次のステップ63に進める。一方、CPUコア21は、接触点が遊び範囲内に含まれている場合、当該サブルーチンによる処理を終了する。
【0053】
ステップ63において、CPUコア21は、後述する指示点の移動速度を求めるために、現在の指示点の座標を保存する。具体的には、図7(b)に示すように、上記タッチパネル座標系において、保存する指示点の座標を(uxa、uya)とすると、CPUコア21は、
uxa=ux
uya=uy
として設定する。
【0054】
次に、CPUコア21は、接触点が上記遊び範囲の外縁に位置するように指示点を移動させる(ステップ64)。例えば、図7(b)に示すように、CPUコア21は、指示点と接触点との間が距離L2となるように、指示点と接触点とを結ぶ直線に沿って指示点を移動させ、新たな指示点を設定する。具体的には、上記タッチパネル座標系において、新たな指示点を(ux、uy)とすると、
ux=tx+vx*r/L2
uy=ty+vy*r/L2
として設定する。ここで、rは、遊び範囲の半径である。
【0055】
次に、CPUコア21は、指示点の移動量を算出し(ステップ65)、当該サブルーチンによる処理を終了する。具体的には、CPUコア21は、指示点の移動量を、以下の式を用いて算出する。
uvx=ux−uxa
uvy=uy−uya
この移動ベクトル(uvx、uvy)は、原点の引き寄せ方向の調整に用いられるが、詳細は後述する。
【0056】
図3に戻り、CPUコア21は、現在設定されている原点と指示点との差分から、それらの距離L1を求める(ステップ45)。具体的には、上記タッチパネル座標系において、原点を(ox、oy)、指示点を(ux、uy)とすると、CPUコア21は、差分vxおよびvyを、
vx=ox−ux
vy=oy−uy
として求める。そして、CPUコア21は、距離L1を、
【数2】
として求める。これによって、タッチパネル座標系に基づいた原点および指示点間の距離L1が求められる。
【0057】
次に、CPUコア21は、指示点が原点に設けられた制限範囲を逸脱しているか否かを判断する(ステップ46)。図8に示すように、原点(ox、oy)を中心とした所定領域は、制限範囲として設定される。例えば、制限範囲は、原点(ox、oy)を中心とした所定半径を有する円領域で設定される。そして、CPUコア21は、上記ステップ45で求めた距離L1と制限範囲の半径Rとを比較して、距離L1が大きい場合に指示点が制限範囲を逸脱していると判断する。そして、CPUコア21は、指示点が制限範囲を逸脱している場合、処理を次のステップ47に進める。一方、CPUコア21は、指示点が制限範囲内に含まれている場合(図8の状態)、処理を次のステップ48に進める。
【0058】
ステップ47を説明する前に、指示点が原点の制限範囲内に含まれている場合(ステップ46でNo)のステップ48の処理について説明する。ステップ48において、CPUコア21は、原点から指示点へのベクトル値に基づいて、スティック値を求める。
【0059】
本実施例では、タッチパネル13を用いてジョイスティックを模した操作を実現し、必要な情報は、ジョイスティックの入力値(以下、スティック値と記載する)に相当するXY2軸のベクトル値である。このベクトル値を、スティック座標系でスティック値(sx、sy)と表す。そして、このスティック値(sx、sy)が示す方向がジョイスティックを倒している方向であり、このスティック値の長さがジョイスティックの倒し具合となる。また、ジョイスティックを最大まで倒した状態を長さ「1」と設定する。この場合、sx=−1〜+1、sy=−1〜+1であり、長さ「0」の時、ジョイスティックがニュートラル(直立)状態であることを示す。
【0060】
ステップ48において、スティック座標系のスティック値(sx、sy)は、タッチパネル座標系で示されるタッチパネル13上にある原点(ox、oy)および指示点(ux、uy)を用いて、次の式から求められる。
sx=(ux−ox)×ratio
sy=(uy−oy)×ratio
ここで、ratioは、タッチパネル座標系のどれくらいの長さをスティック座標系での長さ「1」と見なすかを定める変換比率である。なお、原点から指示点へのベクトル値は、ベクトル(ux−ox、uy−oy)で表される。
【0061】
本実施例では、原点の周辺にジョイスティックのレバーの倒し具合を機械的に止める枠に対応する制限範囲を設け、制限範囲の外縁部がタッチ操作されるとジョイスティックを限界まで倒した操作として取り扱う。そして、上記制限範囲を逸脱したタッチ操作は、制限範囲の外縁部への操作と同等に扱われる。つまり、原点に設けられる制限範囲の外縁部が、スティック座標系の「1」と見なされる。したがって、ratio=1/Rに設定される。ここで、Rは、タッチパネル座標系における制限範囲の半径である。
【0062】
図8に示すように、タッチパネル13に対して、プレイヤが制限範囲内の原点(ox、oy)の真上位置をタッチ操作することによって、指示点(ux1、uy1)が設定されている。この場合、原点から指示点へのベクトル値は、真上方向を示すベクトルv1(ux1−ox、uy1−oy)となる。そして、このベクトルv1に基づいて求められるスティック値も真上方向となり、その長さは「1」以下となる。
【0063】
その後、タッチパネル13に対して、プレイヤが制限範囲内で指示点(ux1、uy1)の右方向の位置をタッチ操作することによって、指示点(ux2、uy2)が設定される。この場合、原点から指示点へのベクトル値は、右上方向を示すベクトルv2(ux2−ox、uy2−oy)となる。そして、このベクトルv2に基づいて求められるスティック値も右上方向となり、その長さは「1」以下となる。
【0064】
図3に戻り、CPUコア21は、指示点が原点の制限範囲を逸脱している場合(ステップ46でYes)、ステップ47において原点の引き寄せ処理を行う。以下、図6に示すサブルーチンを参照して、原点の引き寄せ処理について説明する。
【0065】
図6において、CPUコア21は、原点の引き寄せ方向を設定する(ステップ71)。例えば、CPUコア21は、原点を引き寄せる方向をタッチパネル座標系において、引き寄せ方向(px、py)で設定する。そして、CPUコア21は、引き寄せ方向(px、py)を、
px=ox−(ux+uvx*m)
py=oy−(uy+uvy*m)
ここで、mは、原点を引き寄せる方向を調整する0以上のパラメータであり、その値が大きいほど、原点を引き寄せる方向が指示点の移動方向に近くなり、原点が指示点の後方(指示点の移動方向を前方とする)に回り込むことになる。すなわち、m=0のときは、原点と指示点を結ぶベクトルの方向が変化しないように原点が引き寄せられる。そして、mが大きくなるにつれて、原点から指示点へ向くベクトルの方向が指示点の移動ベクトルの方向に近づくように原点が引き寄せられることになる。このmの値を調整することによって、指示点と原点との位置関係を重視してスティック値のベクトル方向を決定するか(mが小さい)、それとも、指示点の移動方向を重視してスティック値のベクトル方向を決定するか(mが大きい)を調整することができるのである。なお、引き寄せ方向という用語を用いているが、実際に原点が引き寄せられる方向とは逆向きの方向であることに注意されたい。なお、パラメータmによる原点の引き寄せ方向の詳細については後述する。
【0066】
例えば、図9(a)に示すように、タッチパネル13に対して、プレイヤが制限範囲内の原点(ox、oy)の真上位置をタッチ操作することによって、指示点(ux1、uy1)が設定されているとする。この場合、指示点(ux1、uy1)が制限範囲内であるため、原点の引き寄せ処理は実行されない。その後、タッチパネル13に対して、プレイヤが指示点(ux1、uy1)の右方向で制限範囲を逸脱した位置をタッチ操作することによって、指示点(ux3、uy3)が設定される。そして、上記ステップ71によって、m=0の場合、原点(ox、oy)から指示点(ux3、uy3)を結ぶ方向が原点を引き寄せる方向(px、py)に設定される。
【0067】
次に、CPUコア21は、原点の移動先目標座標を算出する(ステップ72)。具体的には、CPUコア21は、まずステップ71で設定した引き寄せ方向(px、py)に基づいた長さL3を、
【数3】
で算出する。そして、CPUコア21は、タッチパネル座標系に基づいた原点の移動先目標座標(ox2、oy2)を、
ox2=ux+px*R/L3
oy2=uy+py*R/L3
で算出する。
【0068】
次に、CPUコア21は、原点を移動させて原点座標を更新して記憶し(ステップ73)、当該サブルーチンに基づく処理を終了する。なお、前述のようにして決定された移動先目標座標に原点を移動させてもよいが、移動先目標座標に少しずつ近づくように原点を移動してもよい。具体的には、CPUコア21は、移動後の原点座標(ox、oy)を、
ox=ox+(ox2−ox)*n
oy=oy+(oy2−oy)*n
で算出する。ここで、nは、原点を移動先目標座標に近づける割合を示すパラメータである。パラメータnの設定値によって、移動前の原点がステップ72で算出された移動先目標座標(ox2、oy2)への足りない差分に対してどれくらいの割合(パラメータn)を加算するかを調整することができる。
【0069】
例えば、図9(b)は、パラメータmおよびnをそれぞれm=0、n=1に設定して、指示点(ux3、uy3)に引き寄せられる原点(ox、oy)の一例を示している。図9(b)に示すように、指示点(ux3、uy3)が制限範囲(図示破線領域)を逸脱した位置に設定された場合、原点(ox、oy)が指示点(ux3、uy3)に引き寄せられ、その制限範囲も指示点(ux3、uy3)に引き寄せられる。m=0の場合、原点(ox、oy)が引き寄せられる方向は、移動前の原点から指示点(ux3、uy3)に向かう方向となる。そして、n=1の場合、原点(ox、oy)が移動することによって、当該原点の制限範囲の外縁に指示点(ux3、uy3)が配置され、移動後の原点と指示点との距離L1=制限範囲の半径Rとなる。このように、原点の引き寄せ処理によって、指示点が制限範囲外であるとき、原点を当該指示点に近づけるように変更される。
【0070】
次に、原点の引き寄せ処理後のステップ48の処理について説明する。ステップ48では、上述したように、CPUコア21が原点から指示点へのベクトル値に基づいて、スティック値を求めるが、ここでは、引き寄せ処理された原点を用いてベクトル値が算出される。以下、図10を参照して、引き寄せ処理された原点を用いてベクトル値の変化の一例を説明する。なお、図10は、原点の引き寄せ処理が繰り返されることによって、原点から指示点へのベクトル値が変化する一例を示す図であり、説明を具体的にするためにパラメータmおよびnをそれぞれm=0、n=1に設定している。
【0071】
図10(a)において、タッチパネル13に対して、プレイヤが制限範囲A1内の原点O1の真上位置をタッチ操作することによって、指示点U1が設定されている。この場合、原点O1から指示点U1へのベクトル値は、真上方向を示すベクトルV1となる。そして、このベクトルV1に基づいて求められるスティック値も真上方向となり、その長さは「1」以下となる。
【0072】
その後、指示点が右方向に移動して、図10(b)において、タッチパネル13に対して、プレイヤが指示点U1の右方向にある制限範囲A1の外縁部をタッチ操作することによって、指示点U2が設定される。この場合、原点O1から指示点U2へのベクトル値は、水平方向との間で角度θ2を形成する右上方向を示すベクトルV2となる。そして、このベクトルV2に基づいて求められるスティック値も同様の右上方向となり、その長さは「1」となる。
【0073】
さらに、指示点が右方向に移動して、図10(c)において、タッチパネル13に対して、プレイヤが指示点U1およびU2の右方向で制限範囲A1(図示破線領域)を逸脱した位置をタッチ操作することによって、指示点U3が設定される。そして、m=0の場合、原点(図示白抜き丸印)が指示点U3へ向かう方向に引き寄せられ、その制限範囲A2の外縁に指示点U3が配置されるように原点O2が設定される。この場合、原点O2から指示点U3へのベクトル値は、水平方向との間で角度θ3(θ3<θ2)を形成する右上方向を示すベクトルV3となる。そして、このベクトルV3に基づいて求められるスティック値も同様の右上方向となり、その長さは「1」となる。
【0074】
さらに、図10(d)において、タッチパネル13に対して、プレイヤが指示点U1、U2、およびU3の右方向で制限範囲A2(図示破線領域)を逸脱した位置をタッチ操作することによって、指示点U4が設定される。そして、m=0の場合、原点(図示白抜き丸印)が指示点U4へ向かう方向に引き寄せられ、その制限範囲A3の外縁に指示点U4が配置されるように原点O3が設定される。この場合、原点O3から指示点U4へのベクトル値は、水平方向との間で角度θ4(θ4<θ3)を形成する右上方向を示すベクトルV4となる。そして、このベクトルV4に基づいて求められるスティック値も同様の右上方向となり、その長さは「1」となる。
【0075】
なお、上述したように、パラメータnの設定値によって、原点を移動先目標座標に近づける割合(すなわち、スティック値が示す長さが所定距離R以上になったときに所定距離Rに近づける割合)が調整される。したがって、パラメータnの値によっては、原点と指示点との距離がRより離れることがある。この場合、上記ステップ48で求められるスティック値(sx、sy)において、sxの絶対値およびsyの絶対値が1以上となり、結果的にスティック値の長さが1より大きな値に設定されてしまう。しかしながら、上述したようにスティック値の長さがジョイスティックの倒し具合となり、ジョイスティックを最大まで倒した状態を長さ「1」と設定しているため、スティック値の長さが1より大きな値となった場合、スティック値の長さを「1」に設定する。
【0076】
このように、原点の引き寄せ処理によって、指示点を一定方向(プレイヤによるタッチ点が移動する方向;図10では右水平方向)に継続的に移動していると、スティック値が示す方向(つまり、ジョイスティックを倒している方向)は、指示点の移動方向(右水平方向)に次第に近づいていく。これにより、プレイヤは指示座標を一定方向に継続的に移動することによって原点の位置を意識せずにスティック入力の方向を決定することができる。
【0077】
図3に戻り、CPUコア21が上記ステップ40でプレイヤがタッチパネル13に触れていないと判断した場合、CPUコア21は、非接触カウンタCTを+1して進める(ステップ49)。次に、CPUコア21は、非接触カウンタCTのカウント値が所定値Cを超えたか否かを判断する(ステップ50)。そして、CPUコア21は、非接触カウンタCTのカウント値が所定値Cを超えている場合、処理を次のステップ51に進める。一方、CPUコア21は、非接触カウンタCTのカウント値が所定値C以下である場合、処理を次のステップ53に進める。
【0078】
ステップ51において、CPUコア21は、接触フラグをOFFに設定する。そして、CPUコア21は、スティック値をニュートラルに設定して(ステップ52)、当該フローチャートによる処理を終了する。ここで、スティック値がニュートラルとは、ジョイスティックがニュートラル(直立)状態であることを示す値であり、sx=0、sy=0である。
【0079】
一方、ステップ53において、CPUコア21は、前回の処理で求めた直前のスティック値を更新せずに継続して使用して、当該フローチャートによる処理を終了する。
【0080】
上記ステップ49〜52の処理で明らかなように、CPUコア21は、プレイヤによるタッチパネル13へのタッチ操作が途切れた場合に非接触カウンタCTのカウント値を進め、当該カウント値が所定値Cを超えた場合に接触フラグをOFFにしてプレイヤがタッチ操作を終了したと判断する。つまり、CPUコア21は、非接触カウンタCTのカウント値が所定値Cを超えた場合に、プレイヤがタッチパネル13をタッチ操作している状態から非タッチ操作状態(つまり、プレイヤが意図的にタッチ操作を止めた状態)へ変化したと判断する。したがって、プレイヤが意図しない状態でタッチパネル13へのタッチ操作が途切れても(例えば、不注意でタッチパネルから指が離れてしまった場合でも)、そのままの操作状態でゲームを継続することができる。
【0081】
なお、ステップ48で求められたスティック値、ステップ52で設定されたスティック値、およびステップ53で継続して使用するスティック値は、従来のジョイスティックを使用するゲームと同様、ゲーム処理に利用される。例えば、プレイヤがタッチパネル13上の同じ場所を接触点(指示点)としてタッチ操作を続けた場合、上述したフローチャートを処理周期に応じて繰り返すことによって同じスティック値が繰り返して求められる。つまり、ゲーム装置1におけるゲーム処理においては、同じスティック値を用いて繰り返しゲーム処理されることになり、ジョイスティックのレバーを所定位置で保持しているときに一定の入力が継続して出力される操作に応じた処理と同様のゲーム処理が実現される。
【0082】
なお、背景技術のように原点を固定した場合もスティック値が示す方向がタッチ操作する右水平方向に近づいていくが、角度θ4等が原点固定よりも小さくなり、原点の引き寄せ処理を行った方がタッチ操作する方向により近づくことは明らかである。また、指示点は、必ず制限範囲内に設定され、指示点と原点との距離は常に所定距離以内である。したがって、プレイヤが指示点(接触点)を原点から極端に遠い位置に動かし、ジョイスティックを限界まで倒してから戻していくような操作を行うときでも、タッチパネルの原点までの距離が所定距離以内であるため、操作のレスポンスが向上する。また、タッチパネル13に対する接触点に対して、常に一定範囲に原点が設定されるため、プレイヤはタッチパネル13に設定される原点を感覚的に把握することができ、タッチパネル13自体を視認しなくても、ジョイスティックを操作するような感覚でタッチパネル13を操作することができる。
【0083】
前述の通り、パラメータm設定値によって、移動先目標座標を指示点の後方(指示点の移動方向を前方とする)に回り込ませる割合(すなわち、スティック値が示す方向を指示点の移動方向に近づける割合)を調整することができる。また、パラメータnの設定値によって、原点を移動先目標座標に近づける割合(すなわち、スティック値が示す長さが所定距離R以上になったときに所定距離Rに近づける割合)を調整することができる。以下、図11を参照して、パラメータmおよびnと原点が引き寄せられる位置との関係について説明する。なお、図11は、パラメータmおよびnに応じて引き寄せられる原点の位置を説明するための図である。
【0084】
図11において、タッチパネル13に対して、プレイヤが原点O5に設定された制限範囲A5内をタッチ操作することによって、指示点U5が設定されている。その後、指示点が右に移動し、タッチパネル13に対して、プレイヤが指示点U5の右方向の直線s1上にある制限範囲A5外をタッチ操作することによって、指示点U6が設定される。そして、原点O5と指示点U5およびU6とに応じて原点が引き寄せられて原点O6が配置され、原点O6を基準に制限範囲A6が設定される。なお、図11で示す原点O6および制限範囲A6は、パラメータm=0およびn=1の場合を示している。
【0085】
上述したようにパラメータmは、原点を引き寄せる方向を調整し、m≧0である。そして、パラメータmの設定値が大きいほど指示点U5が指示点U6へ移動する方向(直線s1)の後方位置に原点が近づくように引き寄せられる。また、m=0の場合、原点O5から指示点U6を結ぶ方向(直線s2)が原点を引き寄せる方向に設定される。ここで、できるだけ直線s1に原点が近づくように引き寄せるためには、指示点U6が直線s1に沿った方向へさらに大きく動いたようにして計算をすればよい。このため、上記ステップ71で説明したように、原点O5と指示点U6との差分から引き寄せ方向(px、py)を求める際に、指示点U6が更に大きく動いたような値になるように、指示点の移動ベクトル(uvx、uvy)の所定割合(パラメータm)を加算している。したがって、パラメータmの設定値に応じて、原点は直線s1およびs2に挟まれた範囲に引き寄せられることになり、すなわち、移動先目標座標は、直線s1およびs2に挟まれた範囲に設定されることになる。また、前述の式から明らかなように、移動先目標座標は、指示点座標から所定距離(R)だけ離れた位置に設定されるので、結局、移動先目標座標が図11の円弧ar1上のいずれかの点に決定される。なお、移動先目標座標は、m=0のとき、直線s2と円弧ar1との交点に限りなく近づくように設定され、mが無限大のときに、直線s1と円弧ar1との交点に設定される。なお、mが一定以上大きな値になったときに、引き寄せ方向(px、py)を(uvx、uvy)と一致するように設定してもよい。そうすれば、mが一定以上大きな値になったときに、移動先目標座標を直線s2と円弧ar1との交点に設定できる。
【0086】
また、上述したようにパラメータnは、原点を移動先目標座標に引き寄せる強さを調整し、0<n≦1である。そして、n=1の場合、原点を移動先目標座標に移動させる処理となる。また、0<n<1の場合、原点と移動先目標座標を結ぶ線分上のいずれかの点(両端を含まず)へ移動させる処理となる。当該線分上のどの点に移動させるかはnの値によって異なり、nが小さいほど現在の原点に近い点が選択され、nが大きいほど移動先目標座標に近い点が選択される。
【0087】
したがって、パラメータmおよびnの設定値を調整することによって、原点は図11に示す領域α内の位置に引き寄せられる(移動する)。領域αは、半径Rで指示点U6を中心とする円周のうち直線s1と直線s2で切り取られる円弧ar1と、当該円弧ar1の両端と原点O5をそれぞれ結ぶ直線によって囲まれる領域である(ただし、原点O5を含まない)。
【0088】
また、引き寄せ方向(px、py)を求めた後、移動後の原点座標(ox、oy)を求めるときに、
ox=ux+(px/L3)*n´
oy=uy+(py/L3)*n´
(R≦n´<L4(O5とU6間の長さ))
で決定するようにすれば、原点を図12に示すの領域β内の位置に移動させることができる。領域βは、直線s1およびs2によって鋭角に挟まれる範囲で、半径Rで指示点U6を中心とする円弧ar1と指示点U6から原点O5までの長さを半径として指示点U6を中心とする円弧ar2との間の範囲である(ただし、円弧ar2上の点を含まない)。
【0089】
このようにパラメータmおよびn(またはn´)の設定値によって原点が引き寄せられる位置が調整可能であり、ゲーム毎のレスポンスや操作性に応じて最良の値に調整することができる。
【0090】
逆に、図12を参照して、領域βの外に原点を移動する場合を考える。まず、円弧ar1より指示座標U6側(例えば、図12に示す点O7)に原点を移動した場合、プレイヤは、スティック入力値の長さを増加させる方向に押圧点を移動しているにもかかわらず入力値の長さが減少することになり、プレイヤの操作感覚に一致しない。また、直線s1よりも紙面において上方の位置(例えば、図12に示す点O8)に原点を移動した場合、プレイヤは、原点に対して右斜め上の点をタッチし、かつ、タッチ位置を右方向に変化させているにもかかわらず、スティック入力値の方向が右下方向となってしまって、プレイヤの操作感覚に一致しない。さらに、直線s2よりも紙面において下方の位置(例えば、図12に示す点O9)に原点を移動した場合、プレイヤは、タッチ位置を右方向に変化させているにもかかわらず、スティック入力値の右方向成分が減少してしまって、プレイヤの操作感覚に一致しない。また、円弧ar2よりも指示点座標U6から離れる側に原点を移動させることは、原点と指示点座標との距離が長くなることを意味する。このように、領域βの中に原点を移動する場合と、領域βの外に原点を移動する場合とで、プレイヤに与える操作感覚に大きな差が生じるのである。
【0091】
このように、本発明では、ジョイスティックを模した操作を行うためにタッチパネル上に設定される原点が、プレイヤがタッチパネルを最初にタッチ操作した場所に設定される。したがって、プレイヤは、自分でタッチパネルを触った感覚で自分が設定した原点を把握することができる。つまり、プレイヤは、指の感覚で原点を感じることができるため、原点の位置を目で確認する必要がない。また、タッチパネルに対して固定された原点が設けられていないため、タッチパネル座標系における任意の位置から操作を始めることができる。さらに、プレイヤが意図せず少しの間だけ指を離してしまった場合に原点が再設定されてしまうことを防止しつつ、意図的に指を離した場合(一定時間以上指を離した場合)に原点を再設定することができる。
【0092】
なお、上記実施例では、原点の引き寄せ処理をした後スティック値を求めるようにしたが、スティック値を求めた後原点の引き寄せ処理をし、次回のスティック値を求める際に引き寄せ後の原点を利用するようにしてもよい。ただし、通常は、原点の引き寄せ処理をした後スティック値を求めるようにした方がよい。
【0093】
また、上記実施例で説明した原点および当該原点を中心に設定される制限範囲の少なくとも一方を表す画像を、第2LCD12に表示してもかまわない。本発明は、プレイヤがタッチパネル13を視認しなくても感覚的に原点位置を認識できるものであるが、タッチパネル13が覆う第2LCD12に原点や制限範囲を表示することによって、さらにプレイヤにタッチパネル13における原点や制限範囲の位置をリアルタイムに示すことができる。
【0094】
また、上記実施例では、指示点を中心とした遊び範囲の中に接触点が自由に配置されており、接触点が遊び範囲から外れるとその動きに合わせて遊び範囲が移動し、結果的に指示点が移動することによって接触点の手ブレ補正処理を行っている。しかしながら、手ブレ補正による効果を期待しない場合は、手ブレ補正処理を行わなくてもかまわない。この場合、接触点がそのまま指示点として取り扱われて遊び範囲は設定されず、上記ステップ44の処理は行われない。このように接触点をそのまま指示点として取り扱っても、本発明の効果を同様に得ることができる。
【0095】
また、図3で説明したフローチャートでは、プレイヤがタッチパネル13へのタッチ操作を終了し(ステップ40でNo)、非接触カウンタCTのカウントが所定値Cを超えると(ステップ50でYes)、スティック値がニュートラルに設定されるが、次のタッチ操作が行われるまで、タッチ操作終了前に設定されているスティック値をゲームパラメータとして継続して処理してもかまわない。次のタッチ操作が行われるまでスティック値をゲームパラメータとして継続して処理する場合、プレイヤが同じタッチ操作を長時間継続することが不要となり、同じ操作を継続する操作が容易になる。
【0096】
また、図3で説明したフローチャートでは、プレイヤがタッチパネル13へのタッチ操作を終了し、再度タッチ操作をすると新たに原点が設定されるが、次のタッチ操作が行われた場合、指示点と原点との相対的な位置関係を継続してもかまわない。例えば、タッチ操作終了前のステップ48で用いられた原点および指示点の相対的な位置関係を記憶し、タッチ操作が再開された際、その接触点が指示点に設定される。そして、記憶されている相対的な位置関係を用いて、指示点を基準に原点が設定される。一般的に、プレイヤがタッチパネル13をタッチ操作中にタッチパネル13の領域外に達すると、タッチパネル13の異なった位置を再度タッチ操作して同じ操作を継続しようとする。このようなタッチ操作のやり直しにおいても、原点および指示点の相対的な位置関係が継続されているため、操作が途切れることなくゲームを楽しむことができる。また、原点をタッチパネル13の外に設定することも可能となるため、ゲーム操作のバリエーションが広くなる。
【0097】
また、上記実施例における原点とは、厳密な意味でのタッチパネル座標の原点でなくてよい。すなわち、タッチパネル座標の原点は固定しておいて、スティック入力の基準となる基準点を変化させればよい。
【0098】
また、上記実施例では、ジョイスティックを模した操作を行う入力装置としてタッチパネルを用いたが、他のポインティングデバイスを用いてもかまわない。ここで、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、マウス、トラックパッド、トラックボールなどを入力装置として使用し、入力装置から出力される出力値から計算された画面座標系の情報を用いれば、本発明を同様に実現することができる。なお、マウス等のポインティングデバイスの場合、タッチ状態と非タッチ状態とをクリックボタンのオンオフに対応させ、マウス等から出力される出力値から座標を計算する処理はゲーム装置等で行えばよい。
【0099】
また、上記実施例では、ゲーム装置1にタッチパネル13が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上記実施例では表示器を2つ設けたが、表示器は1つであってもかまわない。すなわち、上記実施例において、第2LCD12設けず単にタッチパネル13のみを設けるようにしてもよい。また、上記実施例において、第2LCD12を設けず第1LCD11の上面にタッチパネル13を設けても良い。
【0100】
また、上記実施例では、ゲーム装置1にタッチパネル13が一体的に設けられているが、タッチパネルを入力装置の1つとする一般的なパーソナルコンピュータなどの情報処理装置でもかまわない。この場合、この情報処理装置のコンピュータが実行するプログラムは、典型的にゲームに用いられるゲームプログラムに限らず、上述した方式で得られたスティック値が上記情報処理装置に対する操作処理に用いられる汎用的なプログラムである。
【0101】
また、上記実施例においては、指示点座標が制限範囲から外れたときに、原点の引き寄せ処理をおこなうようにしたが、原点の引き寄せる処理を実行する条件は他の条件であってもよい。例えば、原点と指示点座標とのなす角度が前回の入力時と異なったとき、または、原点と指示点座標とのなす角度が所定角度以上になったとき等が考えられる。
【産業上の利用可能性】
【0102】
本発明のゲームプログラム、ゲーム装置、および入力装置は、プレイヤのタッチ操作に応じて原点を設定してジョイスティックを模した操作を行うことができ、ポインティングデバイスを用いて操作するゲーム等に適用できる。
【図面の簡単な説明】
【0103】
【図1】本発明の一実施形態に係るゲームプログラムを実行するゲーム装置1の外観図
【図2】図1のゲーム装置1の内部構成を示すブロック図
【図3】本発明の一実施形態に係るゲームプログラムを実行することによってゲーム装置1が処理する動作を示すフローチャート
【図4】図3におけるステップ43のタッチ開始時の初期化処理について詳細な動作を示すサブルーチン
【図5】図3におけるステップ44の接触点の手ブレ補正処理について詳細な動作を示すサブルーチン
【図6】図3におけるステップ47の原点の引き寄せ処理について詳細な動作を示すサブルーチン
【図7】図3に示すフローチャートに基づいた動作によって処理される手ブレ補正処理の一例を示す図
【図8】図3に示すフローチャートに基づいた動作によって処理される指示点、原点、および制限範囲の一例を示す図
【図9】図3に示すフローチャートに基づいた動作によって処理される原点の引き寄せ処理の一例を示す図
【図10】図3に示すフローチャートに基づいて原点の引き寄せ処理が繰り返されることによって、原点から指示点へのベクトル値が変化する一例を示す図
【図11】パラメータmおよびnに応じて引き寄せられる原点の位置を説明するための一例を示す図
【図12】パラメータmおよびnに応じて引き寄せられる原点の位置を説明するための他の例を示す図
【符号の説明】
【0104】
1…ゲーム装置
11…第1LCD
12…第2LCD
13…タッチパネル
14…操作スイッチ部
15…スピーカ
16…スタイラス
17…カートリッジ
171…ROM
172…RAM
18…ハウジング
21…CPUコア
22…WRAM
23…第1VRAM
24…第1GPU
25…第2VRAM
26…第2GPU
27…I/F回路
28…コネクタ
【特許請求の範囲】
【請求項1】
プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力するポインティングデバイスによって操作されるゲーム装置のコンピュータに実行されるゲームプログラムであって、
前記コンピュータに、
前記ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御ステップとを実行させる、ゲームプログラム。
【請求項2】
前記基準座標設定ステップは、プレイヤが前記ポインティングデバイスを用いて連続的な操作を行う際、プレイヤが最初に指定した座標情報に基づいて、前記座標系における基準座標を設定することを特徴とする、請求項1に記載のゲームプログラム。
【請求項3】
前記ゲームプログラムは、前記ポインティングデバイスから出力される座標情報の出力有無に応じて、プレイヤが当該ポインティングデバイスを操作している状態から非操作状態へ変化したことを検出する出力検出ステップを、さらに前記コンピュータに実行させ、
前記基準座標設定ステップは、前記出力検出ステップが前記非操作状態を検出した後、再度前記ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、前記座標系における基準座標を再設定することを特徴とする、請求項1に記載のゲームプログラム。
【請求項4】
前記出力検出ステップは、前記ポインティングデバイスから座標情報が出力される状態から出力されない状態になったときに非出力状態が継続する時間の計時を開始し、当該計時する時間が所定時間を超えた際、プレイヤが当該ポインティングデバイスを操作している状態から非操作状態へ変化したと判断することを特徴とする、請求項3に記載のゲームプログラム。
【請求項5】
前記ゲーム制御ステップは、前記ポインティングデバイスから座標情報の出力がなくなったとき、当該出力がなくなる前の前記指示座標および前記基準座標に応じた前記入力方向および前記入力距離の少なくとも一方に基づいたゲーム制御を継続して行うことを特徴とする、請求項1に記載のゲームプログラム。
【請求項6】
前記ゲームプログラムは、前記ポインティングデバイスから座標情報の出力がなくなったとき、当該出力がなくなる前の前記指示座標および前記基準座標の相対的な位置関係を記憶する位置関係記憶ステップを、さらに前記コンピュータに実行させ、
前記指示座標設定ステップは、前記出力がなくなった後に前記ポインティングデバイスから出力される最初の座標情報が示す位置を前記座標系における指示座標に設定し、
前記基準座標設定ステップは、前記位置関係記憶ステップで記憶した相対的な位置関係に基づいて、前記最初の座標情報が示す位置を基準に前記座標系における基準座標を再設定することを特徴とする、請求項1に記載のゲームプログラム。
【請求項7】
前記ゲーム装置は、前記ポインティングデバイスに覆われた表示部を備えており、
前記基準座標の位置を示す画像を前記表示部に表示する基準座標位置表示ステップを、さらに前記コンピュータに実行させる、請求項1に記載のゲームプログラム。
【請求項8】
プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力するポインティングデバイスによって操作されるゲーム装置であって、
前記ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御手段とを備える、ゲーム装置。
【請求項9】
プレイヤの操作に応じてゲーム装置に情報を入力する入力装置であって、
プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力する座標情報出力手段と、
前記ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段とを備え、
前記ゲーム装置は、前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うことを特徴とする、入力装置。
【請求項10】
ユーザの操作に応じて指定される所定の座標系に基づいた座標情報を出力するポインティングデバイスによって操作される情報処理装置のコンピュータに実行されるプログラムであって、
前記コンピュータに、
前記ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、前記座標系における操作処理を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、操作処理を行う操作処理ステップとを実行させる、プログラム。
【特許請求の範囲】
【請求項1】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置のコンピュータに実行されるゲームプログラムであって、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態へ変化し、その後、座標入力されている状態が継続するときに、前記コンピュータに、
前記変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定ステップと、
前記座標入力されている状態が継続する間に前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御ステップとを実行させる、ゲームプログラム。
【請求項2】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置のコンピュータに実行されるゲームプログラムであって、
前記コンピュータに、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態へ変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御ステップとを実行させ、
前記基準座標設定ステップは、前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態へ変化するまで、前記座標系における基準座標を再設定しないことを特徴とする、ゲームプログラム。
【請求項3】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置のコンピュータに実行されるゲームプログラムであって、
前記コンピュータに、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御ステップと、
前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態へ変化したことを検出する出力検出ステップとを実行させ、
前記基準座標設定ステップは、前記出力検出ステップが前記変化を検出した後、再度前記ポインティングデバイスが座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における基準座標を再設定することを特徴とする、ゲームプログラム。
【請求項4】
前記出力検出ステップは、前記ポインティングデバイスから座標情報が出力される状態から出力されない状態になったときに非出力状態が継続する時間の計時を開始し、当該計時する時間が所定時間を超えた際、当該ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態へ変化したと判断することを特徴とする、請求項3に記載のゲームプログラム。
【請求項5】
前記ゲーム制御ステップは、前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態になったとき、当該座標入力されていない状態になる前の前記指示座標および前記基準座標に応じた前記入力方向および前記入力距離の少なくとも一方に基づいたゲーム制御を継続して行うことを特徴とする、請求項1乃至3の何れかに記載のゲームプログラム。
【請求項6】
前記ゲームプログラムは、前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態になったとき、当該座標入力されていない状態になる前の前記指示座標および前記基準座標の相対的な位置関係を記憶する位置関係記憶ステップを、さらに前記コンピュータに実行させ、
前記指示座標設定ステップは、前記座標入力されていない状態から座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報が示す位置を前記座標系における指示座標に設定し、
前記基準座標設定ステップは、前記位置関係記憶ステップで記憶した相対的な位置関係に基づいて、前記座標入力されていない状態から座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報が示す位置を基準に前記座標系における基準座標を再設定することを特徴とする、請求項1乃至3の何れかに記載のゲームプログラム。
【請求項7】
前記ゲーム装置は、前記ポインティングデバイスに覆われた表示部を備えており、
前記基準座標の位置を示す画像を前記表示部に表示する基準座標位置表示ステップを、さらに前記コンピュータに実行させる、請求項1乃至3の何れかに記載のゲームプログラム。
【請求項8】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置であって、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態へ変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態へ変化し、その後、座標入力されている状態が継続する間に前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御手段とを備える、ゲーム装置。
【請求項9】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置であって、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態へ変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御手段とを備え、
前記基準座標設定手段は、前記ポインティングデバイスがプレイヤにより座標入力されている状態を継続するときに、前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態へ変化するまで、前記座標系における基準座標を再設定しないことを特徴とする、ゲーム装置。
【請求項10】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置であって、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御手段と、
前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態へ変化したことを検出する出力検出手段とを備え、
前記基準座標設定手段は、前記出力検出手段が前記変化を検出した後、再度前記ポインティングデバイスがプレイヤにより座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における基準座標を再設定することを特徴とする、ゲーム装置。
【請求項11】
プレイヤの操作に応じてゲーム装置に情報を入力する入力装置であって、
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力する座標情報出力手段と、
前記座標情報出力手段がプレイヤにより座標入力されていない状態から座標入力されている状態へ変化したときに前記座標情報出力手段から出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記座標情報出力手段がプレイヤにより座標入力されていない状態から座標入力されている状態へ変化し、その後、座標入力されている状態が継続する間に前記座標情報出力手段から出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段とを備え、
前記ゲーム装置は、前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うことを特徴とする、入力装置。
【請求項12】
プレイヤの操作に応じてゲーム装置に情報を入力する入力装置であって、
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力する座標情報出力手段と、
前記座標情報出力手段がプレイヤにより座標入力されていない状態から座標入力されている状態へ変化したときに前記座標情報出力手段から出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記座標情報出力手段から出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段とを備え、
前記基準座標設定手段は、前記座標情報出力手段がプレイヤにより座標入力されている状態を継続するときに、前記座標情報出力手段がプレイヤにより座標入力されている状態から座標入力されていない状態へ変化するまで、前記座標系における基準座標を再設定せず、
前記ゲーム装置は、前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うことを特徴とする、入力装置。
【請求項13】
プレイヤの操作に応じてゲーム装置に情報を入力する入力装置であって、
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力する座標情報出力手段と、
前記座標情報出力手段がプレイヤにより座標入力されていない状態から座標入力されている状態になったときに前記座標情報出力手段から出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記座標情報出力手段から出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記座標情報出力手段がプレイヤにより座標入力されている状態から座標入力されていない状態へ変化したことを検出する出力検出手段とを備え、
前記基準座標設定手段は、前記出力検出手段が前記変化を検出した後、再度前記座標情報出力手段がプレイヤにより座標入力されている状態になったときに前記座標情報出力手段から出力される座標情報に基づいて、前記座標系における基準座標を再設定し、
前記ゲーム装置は、前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うことを特徴とする、入力装置。
【請求項14】
所定の座標系に基づいて、ユーザの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作される情報処理装置のコンピュータに実行されるプログラムであって、
前記ポインティングデバイスがユーザにより座標入力されていない状態から座標入力されている状態へ変化し、その後、座標入力されている状態が継続するときに、前記コンピュータに、
前記変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における操作処理を行うための基準座標を設定する基準座標設定ステップと、
前記座標入力されている状態が継続する間に前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、操作処理を行う操作処理ステップとを実行させる、プログラム。
【請求項15】
所定の座標系に基づいたユーザの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作される情報処理装置のコンピュータに実行されるプログラムであって、
前記コンピュータに、
前記ポインティングデバイスがユーザにより座標入力されていない状態から座標入力されている状態へ変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における操作処理を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、操作処理を行う操作処理ステップとを実行させ、
前記基準座標設定ステップは、前記ポインティングデバイスがユーザにより座標入力されている状態から座標入力されていない状態へ変化するまで、前記座標系における基準座標を再設定しないことを特徴とする、プログラム。
【請求項16】
所定の座標系に基づいて、ユーザの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作される情報処理装置のコンピュータに実行されるプログラムであって、
前記コンピュータに、
前記ポインティングデバイスがユーザにより座標入力されていない状態から座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における操作処理を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、操作処理を行う操作処理ステップと、
前記ポインティングデバイスがユーザにより座標入力されている状態から座標入力されていない状態へ変化したことを検出する出力検出ステップとを実行させ
前記基準座標設定ステップは、前記出力検出ステップが前記変化を検出した後、再度前記ポインティングデバイスがユーザにより座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における基準座標を再設定することを特徴とする、プログラム。
【請求項1】
プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力するポインティングデバイスによって操作されるゲーム装置のコンピュータに実行されるゲームプログラムであって、
前記コンピュータに、
前記ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御ステップとを実行させる、ゲームプログラム。
【請求項2】
前記基準座標設定ステップは、プレイヤが前記ポインティングデバイスを用いて連続的な操作を行う際、プレイヤが最初に指定した座標情報に基づいて、前記座標系における基準座標を設定することを特徴とする、請求項1に記載のゲームプログラム。
【請求項3】
前記ゲームプログラムは、前記ポインティングデバイスから出力される座標情報の出力有無に応じて、プレイヤが当該ポインティングデバイスを操作している状態から非操作状態へ変化したことを検出する出力検出ステップを、さらに前記コンピュータに実行させ、
前記基準座標設定ステップは、前記出力検出ステップが前記非操作状態を検出した後、再度前記ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、前記座標系における基準座標を再設定することを特徴とする、請求項1に記載のゲームプログラム。
【請求項4】
前記出力検出ステップは、前記ポインティングデバイスから座標情報が出力される状態から出力されない状態になったときに非出力状態が継続する時間の計時を開始し、当該計時する時間が所定時間を超えた際、プレイヤが当該ポインティングデバイスを操作している状態から非操作状態へ変化したと判断することを特徴とする、請求項3に記載のゲームプログラム。
【請求項5】
前記ゲーム制御ステップは、前記ポインティングデバイスから座標情報の出力がなくなったとき、当該出力がなくなる前の前記指示座標および前記基準座標に応じた前記入力方向および前記入力距離の少なくとも一方に基づいたゲーム制御を継続して行うことを特徴とする、請求項1に記載のゲームプログラム。
【請求項6】
前記ゲームプログラムは、前記ポインティングデバイスから座標情報の出力がなくなったとき、当該出力がなくなる前の前記指示座標および前記基準座標の相対的な位置関係を記憶する位置関係記憶ステップを、さらに前記コンピュータに実行させ、
前記指示座標設定ステップは、前記出力がなくなった後に前記ポインティングデバイスから出力される最初の座標情報が示す位置を前記座標系における指示座標に設定し、
前記基準座標設定ステップは、前記位置関係記憶ステップで記憶した相対的な位置関係に基づいて、前記最初の座標情報が示す位置を基準に前記座標系における基準座標を再設定することを特徴とする、請求項1に記載のゲームプログラム。
【請求項7】
前記ゲーム装置は、前記ポインティングデバイスに覆われた表示部を備えており、
前記基準座標の位置を示す画像を前記表示部に表示する基準座標位置表示ステップを、さらに前記コンピュータに実行させる、請求項1に記載のゲームプログラム。
【請求項8】
プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力するポインティングデバイスによって操作されるゲーム装置であって、
前記ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御手段とを備える、ゲーム装置。
【請求項9】
プレイヤの操作に応じてゲーム装置に情報を入力する入力装置であって、
プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力する座標情報出力手段と、
前記ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段とを備え、
前記ゲーム装置は、前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うことを特徴とする、入力装置。
【請求項10】
ユーザの操作に応じて指定される所定の座標系に基づいた座標情報を出力するポインティングデバイスによって操作される情報処理装置のコンピュータに実行されるプログラムであって、
前記コンピュータに、
前記ポインティングデバイスから座標情報が出力されない状態から出力される状態になったときの座標情報に基づいて、前記座標系における操作処理を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、操作処理を行う操作処理ステップとを実行させる、プログラム。
【特許請求の範囲】
【請求項1】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置のコンピュータに実行されるゲームプログラムであって、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態へ変化し、その後、座標入力されている状態が継続するときに、前記コンピュータに、
前記変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定ステップと、
前記座標入力されている状態が継続する間に前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御ステップとを実行させる、ゲームプログラム。
【請求項2】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置のコンピュータに実行されるゲームプログラムであって、
前記コンピュータに、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態へ変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御ステップとを実行させ、
前記基準座標設定ステップは、前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態へ変化するまで、前記座標系における基準座標を再設定しないことを特徴とする、ゲームプログラム。
【請求項3】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置のコンピュータに実行されるゲームプログラムであって、
前記コンピュータに、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御ステップと、
前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態へ変化したことを検出する出力検出ステップとを実行させ、
前記基準座標設定ステップは、前記出力検出ステップが前記変化を検出した後、再度前記ポインティングデバイスが座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における基準座標を再設定することを特徴とする、ゲームプログラム。
【請求項4】
前記出力検出ステップは、前記ポインティングデバイスから座標情報が出力される状態から出力されない状態になったときに非出力状態が継続する時間の計時を開始し、当該計時する時間が所定時間を超えた際、当該ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態へ変化したと判断することを特徴とする、請求項3に記載のゲームプログラム。
【請求項5】
前記ゲーム制御ステップは、前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態になったとき、当該座標入力されていない状態になる前の前記指示座標および前記基準座標に応じた前記入力方向および前記入力距離の少なくとも一方に基づいたゲーム制御を継続して行うことを特徴とする、請求項1乃至3の何れかに記載のゲームプログラム。
【請求項6】
前記ゲームプログラムは、前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態になったとき、当該座標入力されていない状態になる前の前記指示座標および前記基準座標の相対的な位置関係を記憶する位置関係記憶ステップを、さらに前記コンピュータに実行させ、
前記指示座標設定ステップは、前記座標入力されていない状態から座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報が示す位置を前記座標系における指示座標に設定し、
前記基準座標設定ステップは、前記位置関係記憶ステップで記憶した相対的な位置関係に基づいて、前記座標入力されていない状態から座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報が示す位置を基準に前記座標系における基準座標を再設定することを特徴とする、請求項1乃至3の何れかに記載のゲームプログラム。
【請求項7】
前記ゲーム装置は、前記ポインティングデバイスに覆われた表示部を備えており、
前記基準座標の位置を示す画像を前記表示部に表示する基準座標位置表示ステップを、さらに前記コンピュータに実行させる、請求項1乃至3の何れかに記載のゲームプログラム。
【請求項8】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置であって、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態へ変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態へ変化し、その後、座標入力されている状態が継続する間に前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御手段とを備える、ゲーム装置。
【請求項9】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置であって、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態へ変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御手段とを備え、
前記基準座標設定手段は、前記ポインティングデバイスがプレイヤにより座標入力されている状態を継続するときに、前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態へ変化するまで、前記座標系における基準座標を再設定しないことを特徴とする、ゲーム装置。
【請求項10】
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作されるゲーム装置であって、
前記ポインティングデバイスがプレイヤにより座標入力されていない状態から座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うゲーム制御手段と、
前記ポインティングデバイスがプレイヤにより座標入力されている状態から座標入力されていない状態へ変化したことを検出する出力検出手段とを備え、
前記基準座標設定手段は、前記出力検出手段が前記変化を検出した後、再度前記ポインティングデバイスがプレイヤにより座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における基準座標を再設定することを特徴とする、ゲーム装置。
【請求項11】
プレイヤの操作に応じてゲーム装置に情報を入力する入力装置であって、
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力する座標情報出力手段と、
前記座標情報出力手段がプレイヤにより座標入力されていない状態から座標入力されている状態へ変化したときに前記座標情報出力手段から出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記座標情報出力手段がプレイヤにより座標入力されていない状態から座標入力されている状態へ変化し、その後、座標入力されている状態が継続する間に前記座標情報出力手段から出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段とを備え、
前記ゲーム装置は、前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うことを特徴とする、入力装置。
【請求項12】
プレイヤの操作に応じてゲーム装置に情報を入力する入力装置であって、
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力する座標情報出力手段と、
前記座標情報出力手段がプレイヤにより座標入力されていない状態から座標入力されている状態へ変化したときに前記座標情報出力手段から出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記座標情報出力手段から出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段とを備え、
前記基準座標設定手段は、前記座標情報出力手段がプレイヤにより座標入力されている状態を継続するときに、前記座標情報出力手段がプレイヤにより座標入力されている状態から座標入力されていない状態へ変化するまで、前記座標系における基準座標を再設定せず、
前記ゲーム装置は、前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うことを特徴とする、入力装置。
【請求項13】
プレイヤの操作に応じてゲーム装置に情報を入力する入力装置であって、
所定の座標系に基づいて、プレイヤの操作に応じて指定される座標情報を出力する座標情報出力手段と、
前記座標情報出力手段がプレイヤにより座標入力されていない状態から座標入力されている状態になったときに前記座標情報出力手段から出力される座標情報に基づいて、前記座標系におけるゲーム制御を行うための基準座標を設定する基準座標設定手段と、
前記座標情報出力手段から出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記座標情報出力手段がプレイヤにより座標入力されている状態から座標入力されていない状態へ変化したことを検出する出力検出手段とを備え、
前記基準座標設定手段は、前記出力検出手段が前記変化を検出した後、再度前記座標情報出力手段がプレイヤにより座標入力されている状態になったときに前記座標情報出力手段から出力される座標情報に基づいて、前記座標系における基準座標を再設定し、
前記ゲーム装置は、前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、ゲーム制御を行うことを特徴とする、入力装置。
【請求項14】
所定の座標系に基づいて、ユーザの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作される情報処理装置のコンピュータに実行されるプログラムであって、
前記ポインティングデバイスがユーザにより座標入力されていない状態から座標入力されている状態へ変化し、その後、座標入力されている状態が継続するときに、前記コンピュータに、
前記変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における操作処理を行うための基準座標を設定する基準座標設定ステップと、
前記座標入力されている状態が継続する間に前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、操作処理を行う操作処理ステップとを実行させる、プログラム。
【請求項15】
所定の座標系に基づいたユーザの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作される情報処理装置のコンピュータに実行されるプログラムであって、
前記コンピュータに、
前記ポインティングデバイスがユーザにより座標入力されていない状態から座標入力されている状態へ変化したときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における操作処理を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、操作処理を行う操作処理ステップとを実行させ、
前記基準座標設定ステップは、前記ポインティングデバイスがユーザにより座標入力されている状態から座標入力されていない状態へ変化するまで、前記座標系における基準座標を再設定しないことを特徴とする、プログラム。
【請求項16】
所定の座標系に基づいて、ユーザの操作に応じて指定される座標情報を出力するポインティングデバイスによって操作される情報処理装置のコンピュータに実行されるプログラムであって、
前記コンピュータに、
前記ポインティングデバイスがユーザにより座標入力されていない状態から座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における操作処理を行うための基準座標を設定する基準座標設定ステップと、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記基準座標から前記指示座標への方向である入力方向および前記基準座標から前記指示座標までの距離である入力距離の少なくとも一方に基づいて、操作処理を行う操作処理ステップと、
前記ポインティングデバイスがユーザにより座標入力されている状態から座標入力されていない状態へ変化したことを検出する出力検出ステップとを実行させ
前記基準座標設定ステップは、前記出力検出ステップが前記変化を検出した後、再度前記ポインティングデバイスがユーザにより座標入力されている状態になったときに前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における基準座標を再設定することを特徴とする、プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2006−68385(P2006−68385A)
【公開日】平成18年3月16日(2006.3.16)
【国際特許分類】
【出願番号】特願2004−257370(P2004−257370)
【出願日】平成16年9月3日(2004.9.3)
【特許番号】特許第3734820号(P3734820)
【特許公報発行日】平成18年1月11日(2006.1.11)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成18年3月16日(2006.3.16)
【国際特許分類】
【出願日】平成16年9月3日(2004.9.3)
【特許番号】特許第3734820号(P3734820)
【特許公報発行日】平成18年1月11日(2006.1.11)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]