説明

ゲームプログラム、ゲーム装置、および入力装置

【課題】 ポインティングデバイスを用いてジョイスティックを模した操作を行い、プレイヤの操作感覚に一致させることによって操作の混乱を防ぎ、操作のレスポンスも向上させたゲームプログラム、ゲーム装置、および入力装置を提供する。
【解決手段】 スティック方向をドラッグ方向で設定することによって、スティック値が示す方向がタッチパネルをプレイヤがタッチ操作したドラッグ方向となる。したがって、プレイヤのタッチ操作方向がスティック方向となり、ジョイスティックを操作するような感覚でタッチパネルを操作することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラム、ゲーム装置、および入力装置に関し、より特定的には、タッチパネル等のポインティングデバイスを用いたコンピュータゲームで用いられるゲームプログラム、ゲーム装置、および入力装置に関する。
【背景技術】
【0002】
従来、ジョイスティックをコントローラとして用いるゲームが各種開発されている。ジョイスティックにはレバーが設けられており、当該レバーをプレイヤが前後左右に倒すことによってその方向に応じた入力が行われる。一般的には、ジョイスティックを倒した方向を入力方向としてゲーム装置で処理される。そして、プレイヤがジョイスティックのレバーをある方向に倒してその位置で保持している場合、その位置情報が継続的に出力されて入力方向としてゲーム装置で処理される。なお、ジョイスティックは、家庭用ゲーム装置のコントローラの他に、一般的なパーソナルコンピュータにも用いられる。
【0003】
一方、プレイヤがタッチパネルを用いて操作する入力装置も開発されている(例えば、特許文献1および特許文献2参照)。特許文献1で開示された入力装置は、当該特許文献1の図1および図3に示されているように、プレイヤがタッチパネルを使用し、予めタッチパネル上の決められた原点からポインティングした点への方向および距離を、カーソルの移動方向および移動速度に利用していた。また、特許文献2で開示された入力装置では、当該特許文献2の図5に示されているように、タッチパネルが装着されたディスプレイにゲーム画面が表示されている。そして、プレイヤがタッチパネルをタッチした指の動きのベクトル量に応じた動きで、タッチして選択された対象をゲーム画面上で移動させる。
【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に開示された発明の入力方式をそのままジョイスティックを模した操作に適用すると種々の問題点がある。図6を参照して、特許文献1で開示された入力装置における課題を説明する。なお、紙面において左右方向をタッチパネル座標のX軸方向(右方向がプラス方向)とし、上下方向をY軸方向(上方がプラス方向)とする。また、Oがタッチパネル座標の原点である。図6は、プレイヤがタッチパネルを用いて真上へのスティック入力(ジョイスティックを真上に倒すことに相当する入力;スティック座標値がsx=0かつsy>0になるような入力)から右方向へのスティック入力(ジョイスティックを真右に倒すことに相当する入力;スティック座標値がsx>0かつsy=0になるような入力)に移行する際の操作例を示している。なお、図6において、手を表すマークが記されているが、これは、タッチパネルを押圧するプレイヤの手を模式的に表したものである。
【0007】
図6(a)において、タッチパネルを用いて真上へのスティック入力を行う場合、プレイヤは、タッチパネルに設けられた原点O(ox、oy)の上方向(Y軸に平行でY値が増す方向)にある点T1(t1x、t1y)を押圧する。そして、原点(ox、oy)および点T1(t1x、t1y)を用いて、真上方向のベクトル値V1が得られる。
【0008】
一方、図6(b)において、タッチパネルを用いて右方向へのスティック入力を行う場合、プレイヤは、タッチパネルに設けられた原点O(ox、oy)の右方向(X軸に平行でX軸が増す方向)にある点T2(t2x、t2y)を押圧する必要がある。そして、原点(ox、oy)および点T2(t2x、t2y)を用いて、右方向のベクトル値V2が得られる。したがって、プレイヤは、タッチパネルを用いて真上へのスティック入力から、右方向へのスティック入力に移行する際、図示破線で示すように点T1から見て右下のタッチポイントを目指してタッチパネルを押圧しなければならない。つまり、右方向へのスティック入力をしたい場合、プレイヤの操作としては現在ポインティングしている点から右方向(X軸に平行でX軸が増す方向)へ押圧点を動かしたくなるが(またはそのほうが都合が良いが)、現在ポインティングしている点が原点からみて上下方向にずれている場合、右方向に押圧点を動かしただけではいけないことになる。例えば、現在ポインティングしている点が原点の上方向である場合、右方向のスティック入力をする為には右下方向へ移動させる必要があり、感覚のズレが操作の混乱を招いてしまうし、原点の位置を絶えず確認しておく必要がある。実際のジョイスティックの場合、レバーをガイドする枠があるため、例えば上方向最大までレバーを倒した状態から右方向へ傾倒力を加えた場合、レバーはガイドに沿って自然と右下方向に移動し、やがて右方向最大までレバーを倒した状態となる。しかしながら、タッチパネルを用いてジョイスティックを模した操作を実現する場合、上記のようなガイドがないため、プレイヤは意図的に右下方向に押圧点を移動しなければならないのである。また、実際のジョイスティックの場合、レバーの傾倒状態は指や手の感覚で感じ取ることができるため、ジョイスティックの原点を目で確認する必要がないが、タッチパネルを用いてジョイスティックを模した操作を実現する場合、指の感覚で原点を感じることができないため、原点の位置を目で確認する必要が生じてしまうのである。
【0009】
なお、特許文献1には、プレイヤの指の移動軌跡にあわせ相対的にカーソルを移動させる方式も開示されている。また、特許文献2では、プレイヤがタッチパネルをタッチした指の動きのベクトルに応じた動きで、タッチして選択された対象をゲーム画面上で移動させる方式が開示されている。しかしながら、これらの方式では、プレイヤの指が移動しない限り入力がされないため、ジョイスティックを模した入力を実現することができない。なぜなら、実際のジョイスティックはレバーを所定位置で保持しているときに一定の入力が継続して出力されるものであるからである。より具体的に言えば、タッチした指の動きのベクトルに応じた動きでゲームオブジェクトを移動させる場合、ゲームオブジェクトを移動させるためには指を動かし続けなければならない。
【0010】
それ故に、本発明の目的は、ポインティングデバイスを用いてジョイスティックを模した操作を行い、プレイヤの操作感覚に一致させることによって操作の混乱を防ぎ、操作のレスポンスも向上させたゲームプログラム、ゲーム装置、および入力装置を提供することである。
【課題を解決するための手段】
【0011】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号(ステップをSと略称しステップ番号のみを記載する)等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【0012】
第1の発明は、ポインティングデバイス(13)によって操作されるゲーム装置(1)のコンピュータ(21)に実行されるゲームプログラムである。ポインティングデバイスは、プレイヤの操作に応じて指定される所定の座標系(タッチパネル座標系)に基づいた座標情報(tx、ty)を出力する。ゲームプログラムは、指示座標設定ステップ(S43)、入力方向設定ステップ(S46、S47)、およびゲーム制御ステップ(S49他)をコンピュータに実行させる。指示座標設定ステップは、ポインティングデバイスから出力される座標情報に基づいて、座標系における指示座標(接触点(tx、ty))を設定する。入力方向設定ステップは、指示座標設定ステップが前回設定した指示座標(旧接触点(ox、oy))から現在設定している指示座標に向かう座標系における方向(da)を、ゲーム制御に用いられる入力方向(sa)として設定する。ゲーム制御ステップは、入力方向設定ステップが設定した入力方向に基づいてゲーム制御を行い、指示座標設定ステップが前回設定した指示座標と現在設定している指示座標とが同じとき(S45でYes)、その入力方向設定ステップが設定した前回の入力方向と同じ方向を今回の入力方向としてゲーム制御を行う。なお、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、タッチパネル、マウス、トラックパッド、トラックボールなどで実現される。そして、それぞれの入力装置で用いられる座標系は、タッチパネル座標系や画面座標系である。
【0013】
第2の発明は、上記第1の発明において、ゲーム制御ステップは、ポインティングデバイスから連続的に同じ座標情報が出力されている場合に限り、入力方向設定ステップが設定した前回の入力方向と同じ方向を今回の入力方向としてゲーム制御を行う。
【0014】
第3の発明は、上記第1の発明において、ゲームプログラムは、入力方向記憶ステップ(S48)を、さらに、コンピュータに実行させる。入力方向記憶ステップは、入力方向設定ステップが設定した入力方向を、その設定に応じて更新して記憶する。入力方向設定ステップは、指示座標設定ステップが前回設定した指示座標と現在設定している指示座標とが異なるとき(S45でNo)、その前回設定した指示座標から現在設定している指示座標に向かう座標系における方向を入力方向として設定して入力方向記憶ステップでその入力方向を記憶させる。ゲーム制御ステップは、入力方向記憶ステップで記憶されている入力方向に基づいてゲーム制御を行う。
【0015】
第4の発明は、上記第3の発明において、入力方向記憶ステップは、ポインティングデバイスから座標情報が出力されなくなったときに、記憶した入力方向を初期化する(S51)。
【0016】
第5の発明は、上記第3の発明において、ゲームプログラムは、指示座標記憶ステップ(S44)を、さらにコンピュータに実行させる。指示座標記憶ステップは、指示座標設定ステップが設定した指示座標を記憶する。入力方向設定ステップは、指示座標記憶ステップで記憶された指示座標設定ステップが前回設定した指示座標と、指示座標設定ステップが現在設定している指示座標とが異なるとき、入力方向を設定する。
【0017】
第6の発明は、上記第1の発明において、周辺領域設定ステップを、さらにコンピュータに実行させる。周辺領域設定ステップは、ポインティングデバイスから出力される座標情報に基づいて設定される指示座標の周辺に周辺領域(遊び範囲)を設定する。指示座標設定ステップは、ポインティングデバイスから新たに出力される座標情報が示す位置が周辺領域内のとき指示座標を変更せず、その新たに出力される座標情報が示す位置が周辺領域外のとき、その座標情報が示す位置に基づいて指示座標を変更する。
【0018】
第7の発明は、第1の発明において、ゲーム制御ステップは、ポインティングデバイスから座標情報の出力がなくなったとき、その出力がなくなる前の入力方向に基づいて、ゲーム制御を継続して行う。
【0019】
第8の発明は、ポインティングデバイスによって操作されるゲーム装置である。ポインティングデバイスは、プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力する。ゲーム装置は、指示座標設定手段、入力方向設定手段、およびゲーム制御手段を備える。指示座標設定手段は、ポインティングデバイスから出力される座標情報に基づいて、座標系における指示座標を設定する。入力方向設定手段は、指示座標設定手段が前回設定した指示座標から現在設定している指示座標に向かう座標系における方向を、ゲーム制御に用いられる入力方向として設定する。ゲーム制御手段は、入力方向設定手段が設定した入力方向に基づいてゲーム制御を行い、指示座標設定手段が前回設定した指示座標と現在設定している指示座標とが同じとき、その入力方向設定手段が設定した前回の入力方向と同じ方向を今回の入力方向としてゲーム制御を行う。
【0020】
第9の発明は、ゲーム装置に情報を入力する入力装置である。ゲーム装置は、所定の座標系における方向を示す入力方向に基づいてゲーム制御を行う。入力装置は、座標情報出力手段(13)、指示座標設定手段、および入力方向設定手段とを備える。座標情報出力手段は、プレイヤの操作に応じて指定される座標系に基づいた座標情報を出力する。指示座標設定手段は、ポインティングデバイスから出力される座標情報に基づいて、座標系における指示座標を設定する。入力方向設定手段は、指示座標設定手段が前回設定した指示座標から現在設定している指示座標に向かう座標系における方向を、ゲーム制御に用いられる入力方向として設定する。ゲーム装置は、入力方向設定手段が設定した入力方向に基づいてゲーム制御を行い、指示座標設定手段が前回設定した指示座標と現在設定している指示座標とが同じとき、その入力方向設定手段が設定した前回の入力方向と同じ方向を今回の入力方向としてゲーム制御を行う。
【0021】
第10の発明は、ポインティングデバイスによって操作される情報処理装置のコンピュータに実行されるプログラムである。ポインティングデバイスは、ユーザの操作に応じて指定される所定の座標系に基づいた座標情報を出力する。プログラムは、指示座標設定ステップ、入力方向設定ステップ、および操作処理ステップをコンピュータに実行させる。指示座標設定ステップは、ポインティングデバイスから出力される座標情報に基づいて、座標系における指示座標を設定する。入力方向設定ステップは、指示座標設定ステップが前回設定した指示座標から現在設定している指示座標に向かう座標系における方向を、操作処理に用いられる入力方向として設定する。操作処理ステップは、入力方向設定ステップが設定した入力方向に基づいて操作処理を行い、指示座標設定ステップが前回設定した指示座標と現在設定している指示座標とが同じとき、その入力方向設定ステップが設定した前回の入力方向と同じ方向を今回の入力方向として操作処理を行う。
【発明の効果】
【0022】
第1の発明によれば、プレイヤがポインティングデバイスを用いて設定する指示座標を所望の方向に移動させることによって、原点の位置を意識せずにゲーム制御に用いられる入力方向を決定することができる。具体的には、プレイヤがポインティングデバイスを用いて指示する操作方向が入力方向となり、プレイヤの操作感覚に一致した高レスポンスの入力を実現させることができる。また、プレイヤがポインティングデバイスを用いて同じ指示座標を指示し続けた場合、同じ入力方向が繰り返して用いられるゲーム制御が行われる。したがって、ジョイスティックのレバーを所定位置で保持しているときに一定の入力が継続して出力される操作に応じた処理と同様のゲーム処理が実現され、ジョイスティックを操作するような感覚でポインティングデバイスを操作することができる。また、従来設定されていたポインティングデバイスにおける原点が設定されず、直前の接触点が原点のように扱われるため、プレイヤはポインティングデバイスで設定される原点を感覚的に把握することができ、ポインティングデバイス自体を視認しなくても、ジョイスティックを操作するような感覚で操作することができる。
【0023】
第2の発明によれば、プレイヤがポインティングデバイスを用いて同じ指示座標を指示し続けた場合、同じ入力方向が繰り返して用いられるゲーム制御が行われる。したがって、ジョイスティックのレバーを所定位置で保持しているときに一定の入力が継続して出力される操作に応じた処理と同様のゲーム処理が実現され、ジョイスティックを操作するような感覚でポインティングデバイスを操作することができる。
【0024】
第3の発明によれば、前回設定した指示座標と異なった指示座標が設定された際に新たな入力方向が設定され、前回設定した指示座標と同じ指示座標が設定された際には入力方向が更新されずに記憶されている。そして、ゲーム制御ステップでは、記憶された入力方向を用いるため、プレイヤがポインティングデバイスを用いて同じ指示座標を指示し続けた場合、同じ入力方向が繰り返して用いられるゲーム制御を容易に実現することができる。
【0025】
第4の発明によれば、プレイヤがポインティングデバイスの操作を止めた時点でゲーム制御に用いられる入力方向が初期化されるため、プレイヤが容易に入力方向の初期化を行うことができる。
【0026】
第5の発明によれば、指示座標が記憶されるため、時系列的に異なった指示座標を用いて設定する入力方向を容易に求めることができる。
【0027】
第6の発明によれば、ポインティングデバイスから指示される座標情報が1点に特定できずに変動しても、処理に使用する指示座標を座標情報とは別に定め、当該座標情報が示す位置に遊びを持たせることができる。
【0028】
第7の発明によれば、入力方向が継続されているため、操作が途切れることなくゲームを楽しむことができる。プレイヤが同じ操作を長時間継続することが不要となり、同じ操作を継続する操作が容易になる。
【0029】
また、本発明のゲーム装置、入力装置、およびプログラムによれば、上述したゲームプログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【0030】
図面を参照して、本発明の一実施形態に係るゲームプログラムを実行するゲーム装置について説明する。なお、図1は、本発明のゲームプログラムを実行するゲーム装置1の外観図である。ここでは、ゲーム装置1の一例として、携帯ゲーム装置を示す。
【0031】
図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が装着される。
【0032】
操作スイッチ部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における上部面(上部側面)の左右に設けられる。また、必要に応じて、動作スイッチをさらに追加してもかまわない。
【0033】
また、第2LCD12の上面には、本発明の入力装置の一例としてタッチパネル13(図1における破線領域)が装着される。タッチパネル13は、例えば、抵抗膜方式、光学式(赤外線方式)、静電容量結合式の何れの種類でもよく、その上面をスタイラス16(または指でも可)で押圧操作、移動操作、または撫でる操作をしたとき、スタイラス16の座標位置を検出して座標データを出力するポインティングデバイスの一例である。
【0034】
上部ハウジング18bの側面近傍には、必要に応じてタッチパネル13を操作するスタイラス16を収納するための収納孔(図1における二点破線領域)が形成される。この収納孔には、スタイラス16が収納される。下部ハウジング18aの側面の一部には、ゲームプログラムを記憶したメモリ(例えば、ROM)を内蔵したゲームカートリッジ17(以下、単にカートリッジ17と記載する)を着脱自在に装着するためのカートリッジ挿入部(図1における一点破線領域)が形成される。カートリッジ17は、ゲームプログラムを記憶する情報記憶媒体であり、例えば、ROMまたはフラッシュメモリのような不揮発性半導体メモリが用いられる。カートリッジ挿入部の内部には、カートリッジ17と電気的に接続するためのコネクタ(図2参照)が内蔵される。さらに、下部ハウジング18a(または上部ハウジング18bでも可)には、CPU等の各種電子部品を実装した電子回路基板が収納される。なお、ゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性半導体メモリに限らず、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【0035】
次に、図2を参照して、ゲーム装置1の内部構成について説明する。なお、図2は、ゲーム装置1の内部構成を示すブロック図である。
【0036】
図2において、ハウジング18に収納される電子回路基板には、CPUコア21が実装される。CPUコア21には、所定のバスを介して、カートリッジ17と接続するためのコネクタ28が接続されるとともに、入出力インターフェース(I/F)回路27、第1のグラフィック処理ユニット(第1GPU)24、第2のグラフィック処理ユニット(第2GPU)26、およびワーキングRAM(WRAM)22が接続される。
【0037】
コネクタ28には、カートリッジ17が着脱自在に接続される。カートリッジ17は、上述したようにゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するROM171とバックアップデータを書き換え可能に記憶するRAM172とを搭載する。カートリッジ17のROM171に記憶されたゲームプログラムは、WRAM22にロードされ、当該WRAM22にロードされたゲームプログラムがCPUコア21によって実行される。CPUコア21がゲームプログラムを実行して得られる一時的なデータや画像を生成するためのデータがWRAM22に記憶される。
【0038】
このように、ROM171には、ゲーム装置1のコンピュータ、特にCPUコア21によって実行可能な形式の命令群及びデータ群であるゲームプログラムが記録される。そして、このゲームプログラムは、WRAM22に適宜読み込まれ実行される。なお、本実施例では、ゲームプログラムなどをカートリッジ17に記録させたが、これらゲームプログラムを他の媒体や通信回線を通じて供給することもできる。
【0039】
I/F回路27には、タッチパネル13、操作スイッチ部14、およびスピーカ15が接続される。スピーカ15は、上述した音抜き孔の内側位置に配置される。
【0040】
第1GPU24には、第1ビデオRAM(以下「VRAM」)23が接続され、第2GPU26には、第2のビデオRAM(以下「VRAM」)25が接続される。第1GPU24は、CPUコア21からの指示に応じて、WRAM22に記憶される画像を生成するためのデータに基づいて第1ゲーム画像を生成し、第1VRAM23に描画する。第2GPU26は、CPUコア21からの指示に応じて、WRAM22に記憶される画像を生成するためのデータに基づいて第2ゲーム画像を生成し、第2VRAM25に描画する。
【0041】
第1GPU24が第1LCD11に接続され、第2GPU26が第2LCD12に接続される。第1GPU24は、CPUコア21からの指示に応じて第1VRAM23に描画された第1ゲーム画像を第1LCD11に出力する。そして、第1LCD11は、第1GPU24から出力された第1ゲーム画像を表示する。第2GPU26は、CPUコア21からの指示に応じて第2VRAM25に描画された第2ゲーム画像を第2LCD12に出力する。そして、第2LCD12は、第2GPU26から出力された第2ゲーム画像を表示する。
【0042】
I/F回路27は、タッチパネル13、操作スイッチ部14、およびスピーカ15等の外部入出力装置とCPUコア21との間のデータの受け渡しを行う回路である。タッチパネル13(タッチパネル用のデバイスドライバを含む)は、第2VRAM25の座標系に対応するタッチパネル座標系を有し、スタイラス16等によって入力(指示)された位置に対応する位置座標のデータを出力するものである。例えば、第2LCD12の表示画面の解像度は256dot×192dotであり、タッチパネル13の検出精度も表示画面に対応した256dot×192dotである。なお、タッチパネル13の検出精度は、第2LCD12の表示画面の解像度よりも低いものであってもよいし、高いものであってもよい。
【0043】
次に、図3〜図5を参照して、本発明のゲームプログラムによってゲーム装置1で実行されるタッチパネル13から入力される情報に基づいた処理について説明する。なお、図3は、当該ゲームプログラムを実行することによってゲーム装置1が処理する動作を示すフローチャートである。図4は、図3におけるステップ42のタッチ開始時の初期化処理について詳細な動作を示すサブルーチンである。図5は、図3に示すフローチャートに基づいた動作によって処理されるタッチ操作の一例を示す図である。なお、これらの処理を実行するためのプログラムは、ROM171に格納されたゲームプログラムに含まれており、ゲーム装置1の電源がオンになったときに、ROM171からWRAM22に読み出されて、CPUコア21によって実行される。
【0044】
まず、ゲーム装置1の電源(図示せず)がONされると、CPUコア21によってブートプログラム(図示せず)が実行され、これによりカートリッジ17に格納されているゲームプログラムがWRAM22にロードされる。当該ロードされたゲームプログラムがCPUコア21に実行されることによって、図3に示すステップ(図3および図4では「S」と略称する)が実行される。なお、上記ゲームプログラムを実行することによって、当該ゲームプログラムに応じたゲーム画像などが第1LCD11および第2LCD12に描画されるが、ゲーム内容についての詳細な説明を省略し、ここではタッチパネル13から入力される情報に基づいた処理について詳述する。
【0045】
図3において、CPUコア21は、プレイヤがタッチパネル13に触れているか否かを判断する(ステップ40)。タッチパネル13は、上述したようにタッチパネル座標系を有し、スタイラス16やプレイヤの指などによって入力(指示)された位置に対応する位置座標のデータを出力する。つまり、ステップ40では、CPUコア21がタッチパネル13(タッチパネル13を制御するデバイスドライバを含む)から出力される位置座標のデータ有無を検出する。そして、CPUコア21は、プレイヤがタッチパネル13に触れていない場合、接触フラグをOFFに設定し(ステップ50)、スティック値をニュートラル(sx=0、sy=0)に設定して(ステップ51)、当該フローチャートによる処理を終了する。一方、CPUコア21は、プレイヤがタッチパネル13に触れている場合、処理を次のステップ41に進める。
【0046】
ステップ41において、CPUコア21は、プレイヤのタッチパネル13に対するタッチ操作がタッチ開始時か否かを判断する(すなわち、非タッチ状態からタッチ状態に変化したか否かを判断する)。なお、CPUコア21は、後述で明らかとなる接触フラグのONまたはOFFの設定によってタッチ開始時か否かを判断することができる。そして、CPUコア21は、タッチ開始時である(接触フラグがOFF)場合、処理を次のステップ42に進める。一方、CPUコア21は、タッチ開始時でない(すなわち、タッチが継続している状態;接触フラグがON)場合、処理を次のステップ43に進める。
【0047】
ステップ42において、CPUコア21は、タッチ開始時の初期化処理を行う。以下、図4に示すサブルーチンを参照して、タッチ開始時の初期化処理について説明する。
【0048】
図4において、CPUコア21は、接触フラグをONに設定する(ステップ61)。そして、CPUコア21は、現在プレイヤがタッチパネル13をタッチ操作している接触点(以下、単に接触点と記載する)をタッチパネル13の旧接触点に設定する(ステップ62)。具体的には、上記タッチパネル座標系において、現在の接触点を(tx、ty)、旧接触点を(ox、oy)とすると、CPUコア21は、
ox=tx
oy=ty
として、旧接触点座標を設定する。
【0049】
次に、CPUコア21は、スティック方向saを無効に設定し(ステップ63)、当該サブルーチンによる処理を終了する。具体的には、CPUコア21は、
sa=−1
として、スティック方向saを無効に設定する。
【0050】
図3に戻り、ステップ43において、CPUコア21は、接触点の移動ベクトルを求める。具体的には、CPUコア21は、現在の接触点と旧接触点との差分から、移動ベクトル(vx、vy)を求める。上記タッチパネル座標系において、現在の接触点を(tx、ty)、旧接触点を(ox、oy)とすると、CPUコア21は、移動ベクトル(vx、vy)を、
vx=tx−ox
vy=ty−oyとして求める。
【0051】
次に、CPUコア21は、現在プレイヤがタッチパネル13をタッチ操作している現在の接触点をタッチパネル13の旧接触点として保存する(ステップ44)。具体的には、上記タッチパネル座標系において、現在の接触点を(tx、ty)、旧接触点を(ox、oy)とすると、CPUコア21は、
ox=tx
oy=ty
として、旧接触点座標を保存する。
【0052】
次に、CPUコア21は、移動ベクトル(vx、vy)の長さが0か否かを判断する(ステップ45)。そして、CPUコア21は、移動ベクトルの長さが0(つまり、vx=0、vy=0)の場合、次のステップ49に処理を進める。一方、CPUコア21は、移動ベクトルの長さが0でない場合、処理を次のステップ46に進める。
【0053】
ステップ46において、CPUコア21は、移動ベクトル(vx、vy)の方向(以下、ドラッグ方向daと記載する)を求める。具体的には、ドラッグ方向daを
da=atan(vx、vy)
で求める。なお、atan(x、y)は、2次元のベクトル値(x、y)から度数単位で0以上360未満の値を返す、ベクトルの逆正接を求める関数である。
【0054】
次に、CPUコア21は、スティック方向saを現在のドラッグ方向daで設定する(ステップ47)。具体的には、CPUコア21は、スティック方向saを、
sa=da
で設定する。
【0055】
次に、CPUコア21は、上記ステップ47で設定されたスティック方向saを保存し(ステップ48)、次のステップ49に処理を進める。なお、CPUコア21は、既に保存されているスティック方向saがある場合、保存されているスティック方向saを上記ステップ47で設定されたスティック方向saに更新する。
【0056】
上記ステップ45で移動ベクトルの長さが0であると判断された場合、または上記ステップ48でスティック方向saが保存された後、ステップ49が行われる。ステップ49において、CPUコア21は、現在保存されているスティック方向saからスティック値(sx、sy)を求めて、当該フローチャートによる処理を終了する。具体的には、CPUコア21は、スティック値(sx、sy)を
sx=cos(sa)
sy=sin(sa)
によって求める。なお、CPUコア21は、スティック方向saが無効(sa=−1)である場合、スティック値をニュートラル(sx=0、sy=0)に設定する。
【0057】
なお、ステップ49で求められたスティック値は、従来のジョイスティックを使用するゲームと同様、ゲーム処理に利用される。上記フローチャートでは、タッチパネル13を用いてジョイスティックを模した操作を実現し、必要な情報は、ジョイスティックの入力値に相当するXY2軸のベクトル値である。このベクトル値を、スティック座標系でスティック値(sx、sy)と表す。そして、このスティック値(sx、sy)が示す方向がジョイスティックを倒している方向である。そして、sx=−1〜+1、sy=−1〜+1で設定され、sx=0およびsy=0の時、ジョイスティックがニュートラル(直立)状態であることを示す。例えば、プレイヤがタッチパネル13上の同じ場所を接触点としてタッチ操作を続けた場合、移動ベクトルの長さが0となり(ステップ45でYes)、保存されているスティック方向saが更新されずに繰り返し用いられる。つまり、上述したフローチャートを処理周期に応じて繰り返すことによって同じスティック値が繰り返して求められる。したがって、ゲーム装置1におけるゲーム処理においては、同じスティック値を用いて繰り返しゲーム処理されることになり、ジョイスティックのレバーを所定位置で保持しているときに一定の入力が継続して出力される操作に応じた処理と同様のゲーム処理が実現される。
【0058】
以下、図5を参照して、ドラッグ方向に設定されるスティック方向の変化の一例を説明する。なお、図5は、ドラッグ方向に設定されるスティック方向が変化する一例を示す図である。
【0059】
図5(a)において、タッチパネル13に対して、非タッチ状態から最初にプレイヤが接触点T1をタッチし、その後タッチを継続したままT2までタッチ操作することによって、旧接触点T1および現在の接触点T2が設定されているとする。この場合、旧接触点T1から現在の接触点T2までが移動ベクトルに設定される。そして、旧接触点T1から現在の接触点T2までの移動ベクトルが示す方向がドラッグ方向da12に設定される。そして、スティック方向sa12は、ドラッグ方向da12となる。すなわち、最初の接触点T1から接触点T2に向かう方向が初期のスティック方向に設定される。
【0060】
その後、図5(b)において、タッチパネル13に対して、プレイヤがドラッグ方向da12を基準に接触点T2から右上方向となる接触点T3までタッチ操作することによって、旧接触点T2および現在の接触点T3が設定される。この場合、旧接触点T2から現在の接触点T3までが移動ベクトルに設定される。そして、旧接触点T2から現在の接触点T3までの移動ベクトルが示す方向がドラッグ方向da23に設定される。そして、上記ステップ47が実行されることによって、ドラッグ方向da23を用いて新たなスティック方向sa23が設定され、スティック方向sa23は、ドラッグ方向da23となる。すなわち、接触点T2から接触点T3に向かう方向が新たなスティック方向に設定される。
【0061】
このように、スティック方向をドラッグ方向で設定する処理によって、接触点を一定方向(プレイヤによるタッチ点が移動する方向;図5では右上方向)に継続的に移動していると、スティック値が示す方向(つまり、ジョイスティックを倒している方向)は、接触点の移動方向(右上方向)に設定される。これにより、プレイヤは指示座標を一定方向に移動させることによって原点の位置を意識せずにスティック入力の方向を決定することができる。つまり、プレイヤのタッチ操作方向がスティック方向となり、ジョイスティックを操作するような感覚でタッチパネル13を操作することができる。また、従来設定されていたタッチパネル上の原点が設定されず、直前の接触点が原点のように扱われるため、プレイヤはタッチパネル13に設定される原点を感覚的に把握することができ、タッチパネル13自体を視認しなくても、ジョイスティックを操作するような感覚でタッチパネル13を操作することができる。
【0062】
なお、上記実施例では、ジョイスティックのレバーを所定位置で保持しているときに一定の入力が継続して出力される操作に応じた処理と同様の処理をタッチパネル13で実現するために、スティック方向を保存し旧接触点と現在の接触点とが同じ(移動ベクトルの長さが0)の場合にスティック方向を更新せずに保存されたスティック方向を用いているが、他のパラメータを保存してもかまわない。例えば、接触点が移動しない限り旧接触点を更新せずに保存し、当該旧接触点と接触点との関係に基づいてスティック方向を演算してもかまわない。
【0063】
なお、上記実施例では、プレイヤがタッチパネル13をタッチ操作した接触点をそのままドラッグ方向の演算に用いたが、接触点の周りに遊び範囲を設けてもかまわない。つまり、プレイヤがタッチ操作したタッチパネル13上の点が上記遊び範囲の中に自由に配置され、タッチ操作した点が遊び範囲から外れるとその動きに合わせて遊び範囲が移動し、結果的にその中央の接触点が移動する。これによって、プレイヤがタッチパネル13をタッチ操作する際の手ブレ補正を行うことができる。
【0064】
また、上記ステップ42における処理では、プレイヤがタッチパネル13を最初にタッチ操作した位置が旧接触点に設定されるが、タッチパネル13で予め設定された所定位置(例えば中央)を旧接触点の初期位置に設定してもかまわない。この場合、プレイヤが最初にタッチ操作した接触点と旧接触点の初期位置との間でドラッグ方向が設定可能であるため、迅速にジョイスティックを模した操作を開始することができる。
【0065】
また、図3で説明したフローチャートでは、プレイヤがタッチパネル13へのタッチ操作を終了する(ステップ40でNo)と、スティック値がニュートラルに設定されるが、次のタッチ操作が行われるまで、または所定時間を経過するまで、タッチ操作終了前に設定されているスティック値をゲームパラメータとして継続して処理してもかまわない。次のタッチ操作が行われるまでスティック値をゲームパラメータとして継続して処理する場合、プレイヤが同じタッチ操作を長時間継続することが不要となり、同じ操作を継続する操作が容易になる。また、所定時間を経過するまでスティック値をゲームパラメータとして継続して処理する場合、プレイヤが意図しない状態でタッチパネル13へのタッチ操作が途切れても(例えば、不注意でタッチパネルから指が離れてしまった場合でも)、そのままの操作状態でゲームを継続することができる。
【0066】
また、図3で説明したフローチャートでは、プレイヤがタッチパネル13へのタッチ操作を終了し、再度タッチ操作をすると新たに旧接触点が設定されるが、次のタッチ操作が行われた場合、終了前のスティック方向を継続してもかまわない。例えば、ステップ51では、タッチ操作終了前のステップ48で保存されたスティック方向を引き続き記憶する。そして、タッチ操作が再開された際、そのスティック方向を用いてステップ49の処理を行う。一般的に、プレイヤがタッチパネル13をタッチ操作中にタッチパネル13の領域外に達すると、タッチパネル13の異なった位置を再度タッチ操作して同じ操作を継続しようとする。このようなタッチ操作のやり直しにおいても、スティック方向が継続されているため、操作が途切れることなくゲームを楽しむことができる。
【0067】
また、上記実施例では、ジョイスティックを模した操作を行う入力装置としてタッチパネルを用いたが、他のポインティングデバイスを用いてもかまわない。ここで、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、マウス、トラックパッド、トラックボールなどを入力装置として使用し、入力装置から出力される出力値から計算された画面座標系の情報を用いれば、本発明を同様に実現することができる。なお、マウス等のポインティングデバイスの場合、タッチ状態と非タッチ状態をクリックボタンのオンオフに対応させ、マウス等から出力される出力値から座標を計算する処理はゲーム装置等で行えばよい。
【0068】
また、上記実施例では、ゲーム装置1にタッチパネル13が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。さらに、上記実施例では表示器を2つ設けたが、表示器は1つであってもかまわない。すなわち、上記実施例において、第2LCD12設けず単にタッチパネル13のみを設けるようにしてもよい。また、上記実施例において、第2LCD12を設けず第1LCD11の上面にタッチパネル13を設けても良い。
【0069】
また、上記実施例では、ゲーム装置1にタッチパネル13が一体的に設けられているが、タッチパネルを入力装置の1つとする一般的なパーソナルコンピュータなどの情報処理装置でもかまわない。この場合、この情報処理装置のコンピュータが実行するプログラムは、典型的にゲームに用いられるゲームプログラムに限らず、上述した方式で得られたスティック値が上記情報処理装置に対する操作処理に用いられる汎用的なプログラムである。
【0070】
なお、上記実施例では、スティック入力の方向のみ決定するようにしたが、スティック入力の入力量(レバーの傾き量に相当する)は、ドラッグ入力の速度に応じて決定してもよい(このとき、ドラッグ入力がない場合には一定の入力量に設定するようにしてもよい)。または、タッチパネル上の基準点と接触点との距離に応じて決定してもよいし、ボタンスイッチ(14a、14b)等によって入力量を制御してもよい。
【産業上の利用可能性】
【0071】
本発明のゲームプログラム、ゲーム装置、および入力装置は、レスポンスを高めながらプレイヤの操作感覚に一致させてジョイスティックを模した操作を行うことができ、ポインティングデバイスを用いて操作するゲーム等に適用できる。
【図面の簡単な説明】
【0072】
【図1】本発明の一実施形態に係るゲームプログラムを実行するゲーム装置1の外観図
【図2】図1のゲーム装置1の内部構成を示すブロック図
【図3】本発明の一実施形態に係るゲームプログラムを実行することによってゲーム装置1が処理する動作を示すフローチャート
【図4】図3におけるステップ42のタッチ開始時の初期化処理について詳細な動作を示すサブルーチン
【図5】図3に示すフローチャートに基づいた処理が繰り返されることによって、スティック方向が変化する一例を示す図
【図6】従来のプレイヤがタッチパネルを用いて真上への入力から右方向への入力に移行する際の操作例
【符号の説明】
【0073】
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】
前記ゲームプログラムは、前記指示座標設定ステップが設定した指示座標を記憶する指示座標記憶ステップを、さらに前記コンピュータに実行させ、
前記入力方向設定ステップは、前記指示座標記憶ステップで記憶された前記指示座標設定ステップが前回設定した指示座標と、前記指示座標設定ステップが現在設定している指示座標とが異なるとき、前記入力方向を設定することを特徴とする、請求項3に記載のゲームプログラム。
【請求項6】
前記ポインティングデバイスから出力される座標情報に基づいて設定される前記指示座標の周辺に周辺領域を設定する周辺領域設定ステップを、さらに前記コンピュータに実行させ、
前記指示座標設定ステップは、前記ポインティングデバイスから新たに出力される座標情報が示す位置が前記周辺領域内のとき前記指示座標を変更せず、当該新たに出力される座標情報が示す位置が前記周辺領域外のとき、当該座標情報が示す位置に基づいて前記指示座標を変更することを特徴とする、請求項1に記載のゲームプログラム。
【請求項7】
前記ゲーム制御ステップは、前記ポインティングデバイスから座標情報の出力がなくなったとき、当該出力がなくなる前の前記入力方向に基づいて、ゲーム制御を継続して行うことを特徴とする、請求項1に記載のゲームプログラム。
【請求項8】
プレイヤの操作に応じて指定される所定の座標系に基づいた座標情報を出力するポインティングデバイスによって操作されるゲーム装置であって、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記指示座標設定手段が前回設定した指示座標から現在設定している指示座標に向かう前記座標系における方向を、ゲーム制御に用いられる入力方向として設定する入力方向設定手段と、
前記入力方向設定手段が設定した前記入力方向に基づいてゲーム制御を行い、前記指示座標設定手段が前回設定した指示座標と現在設定している指示座標とが同じとき、当該入力方向設定手段が設定した前回の入力方向と同じ方向を今回の入力方向としてゲーム制御を行うゲーム制御手段とを備える、ゲーム装置。
【請求項9】
所定の座標系における方向を示す入力方向に基づいてゲーム制御を行うゲーム装置に情報を入力する入力装置であって、
プレイヤの操作に応じて指定される前記座標系に基づいた座標情報を出力する座標情報出力手段と、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定手段と、
前記指示座標設定手段が前回設定した指示座標から現在設定している指示座標に向かう前記座標系における方向を、ゲーム制御に用いられる入力方向として設定する入力方向設定手段とを備え、
前記ゲーム装置は、前記入力方向設定手段が設定した前記入力方向に基づいてゲーム制御を行い、前記指示座標設定手段が前回設定した指示座標と現在設定している指示座標とが同じとき、当該入力方向設定手段が設定した前回の入力方向と同じ方向を今回の入力方向としてゲーム制御を行う、入力装置。
【請求項10】
ユーザの操作に応じて指定される所定の座標系に基づいた座標情報を出力するポインティングデバイスによって操作される情報処理装置のコンピュータに実行されるプログラムであって、
前記コンピュータに、
前記ポインティングデバイスから出力される座標情報に基づいて、前記座標系における指示座標を設定する指示座標設定ステップと、
前記指示座標設定ステップが前回設定した指示座標から現在設定している指示座標に向かう前記座標系における方向を、操作処理に用いられる入力方向として設定する入力方向設定ステップと、
前記入力方向設定ステップが設定した前記入力方向に基づいて操作処理を行い、前記指示座標設定ステップが前回設定した指示座標と現在設定している指示座標とが同じとき、当該入力方向設定ステップが設定した前回の入力方向と同じ方向を今回の入力方向として操作処理を行う操作処理ステップとを実行させる、プログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2006−68387(P2006−68387A)
【公開日】平成18年3月16日(2006.3.16)
【国際特許分類】
【出願番号】特願2004−257372(P2004−257372)
【出願日】平成16年9月3日(2004.9.3)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】