説明

入力処理プログラムおよび入力処理装置

【課題】タッチパネル等を用いたゲームにおいて、画面内に表示されるオブジェクトを直感的に指示し、指示されたオブジェクトをズームアップして表示する、ゲームプログラムおよびゲーム装置を提供すること。
【解決手段】ゲーム空間内のオブジェクトに当たり判定範囲を設定する。仮想カメラを原点として、プレイヤが入力したタッチパネルの座標に対応する3次元空間内の座標を通過する直線を算出し、当該直線がゲーム空間内のオブジェクトに当たっているか否か判定する。いずれかのオブジェクトに当たっていれば、そのオブジェクトをズームアップして表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、所定の画面内のオブジェクトを指示できる入力デバイスの操作に基づいて3次元ゲーム空間に登場するオブジェクトの表示を変化させるゲーム装置およびゲームプログラムに関する。
【背景技術】
【0002】
従来、ゲーム画面に表示されるオブジェクトをズームアップして表示するするゲームが各種開発されている。このようなゲームでは、例えば、ゲーム画面に表示された複数のオブジェクトの中から遊戯者によって選択されたオブジェクトをズームアップして表示している。具体的には、当該オブジェクトにカメラの注視点を設定し、カメラの視点を切り替えるとともに、選択されたオブジェクトをズームアップしている(例えば、特許文献1参照)。
【特許文献1】特開2001−178963号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上述したような従来の技術では、プレイヤがズームアップして表示したいオブジェクトを選択するために十字キーやボタンを使用するので、直接オブジェクトを指定するような直感的な操作を行うことができなかった。
【0004】
それ故に、本発明の目的は、直感的にオブジェクトを指示し、指示されたオブジェクトがズームアップされるゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0005】
請求項1記載の発明は、表示装置(実施例との対応関係を示せば、例えば第2のLCD12)と、入力装置(15)とを有するゲーム装置のコンピュータで実行されるゲームプログラムである。ゲームプログラムは、第1のカメラ設定ステップ(実施例との対応関係を示せば、例えばステップS11;以下単にステップ番号だけを示す)と、第1の表示ステップ(S12)と、位置検出ステップ(S23)と、直線算出ステップ(S24)と、オブジェクト特定ステップ(S25)と、第2のカメラ設定ステップ(S14)と、第2の表示ステップ(S12)とを有する。表示装置は、オブジェクトが登場する仮想の3次元ゲーム空間を仮想カメラから見たゲーム画像を表示する。入力装置は、表示装置の画面上の位置を指定するための装置である。第1のカメラ設定ステップは、仮想カメラのパラメータの値を設定する。第1の表示ステップは、第1のカメラ設定ステップにおいて設定されたパラメータに従ってゲーム画像を表示装置に表示させる。位置検出ステップは、第1の表示ステップによってゲーム画像が表示されているときに入力装置に対して行われた操作によって指定された画面上の位置を検出する。直線算出ステップは、位置検出ステップにおいて検出された位置に対応する3次元ゲーム空間内における位置と仮想カメラの位置とを通る直線を算出する。オブジェクト特定ステップは、直線と交わるオブジェクトを特定する。第2のカメラ設定ステップは、特定されたオブジェクトをズームアップして表示するように仮想カメラのパラメータの値を変更する。第2の表示ステップは、第2のカメラ設定ステップにおいて変更された後のパラメータに従ってゲーム画像を表示装置に表示させる。
【0006】
請求項2記載の発明は、請求項1記載のゲームプログラムにおいて、オブジェクト毎に所定の領域を設定する領域設定ステップ(S11)を更にコンピュータに実行させる。また、オブジェクト特定ステップにおいては、領域と直線とが交わるときにオブジェクトが
特定される。
【0007】
請求項3記載の発明は、請求項2記載のゲームプログラムにおいて、領域設定ステップで設定される領域は球であることを特徴とする。
【0008】
請求項4記載の発明は、請求項2記載のゲームプログラムにおいて、第2のカメラ設定ステップでは、仮想カメラの注視点を前記特定されたオブジェクトの所定点に合わせるとともに仮想カメラの画角を特定されたオブジェクトに設定されている領域に基づいて設定することで仮想カメラのパラメータの値が変更される。
【0009】
請求項5記載の発明は、請求項1記載のゲームプログラムにおいて、オブジェクト特定ステップにおいてオブジェクトが特定されたとき、指示操作が継続して行われている時間である指示継続時間が第1の所定値を越えたか否かを判定する第1の条件判別ステップ(S31)を更にコンピュータに実行させる。また、第2のカメラ設定ステップは、第1の条件判別ステップにおいて第1の所定値を越えたことが判別されたとき、パラメータの値を変更する。
【0010】
請求項6記載の発明は、請求項1記載のゲームプログラムにおいて、第2の条件判別ステップ(S41)と、第3のカメラ設定ステップ(S42)とを有する。第2の条件判別ステップは、オブジェクト特定ステップにおいてオブジェクトが特定されたとき、指示操作が継続して行われている時間である指示継続時間が第2の所定値を越えたか否かを判別する。第3のカメラ設定ステップにおいては、第2の条件判別ステップにおいて第2の所定値を越えたことが判別されたとき、仮想カメラのパラメータの値を第1のカメラ設定ステップにおいて設定した値に戻す。
【0011】
請求項7記載の発明は、請求項6記載のゲームプログラムにおいて、操作種別判別ステップ(S27)と、パラメータ変化ステップ(S28)と、第2の所定値設定ステップ(S29)とをさらに有する。操作種別判別ステップは、前記第2の表示ステップによってゲーム画像が表示されているときのプレイヤの操作内容に基づいてプレイヤが行った操作の種別を判別する。パラメータ変化ステップは、操作種別に基づいてオブジェクトのパラメータの値を変化させる。第2の所定値設定ステップは、パラメータ変化ステップにおいて変化されたパラメータの値に基づいて第2の所定値を設定する。
【0012】
請求項8記載の発明は、表示装置(12)と、入力装置(15)と、第1のカメラ設定手段(S11)と、第1の表示手段(S12)と、位置検出手段(S23)と、直線算出手段(S24)と、オブジェクト特定手段(S25)と、第2カメラの設定手段(S14)と、第2の表示手段(S12)とを有するゲーム装置である。表示装置は、オブジェクトが登場する仮想の3次元ゲーム空間を仮想カメラから見たゲーム画像を表示する。入力装置は、表示装置の画面上の位置を指定するための装置である。第1のカメラ設定手段は、仮想カメラのパラメータの値を設定する。第1の表示手段は、第1のカメラ設定手段において設定されたパラメータに従ってゲーム画像を表示装置に表示させる。位置検出手段は、第1の表示手段によってゲーム画像が表示されているときに入力装置に対して行われた操作によって指定された画面上の位置を検出する。直線算出手段は、位置検出手段において検出された位置に対応する3次元ゲーム空間内における位置と仮想カメラの位置とを通る直線を算出する。オブジェクト特定手段は、直線と交わるオブジェクトを特定する。第2のカメラ設定手段は、特定されたオブジェクトをズームアップして表示するように仮想カメラのパラメータの値を変更する。第2の表示手段は、第2のカメラ設定手段において変更された後のパラメータに従ってゲーム画像を表示装置に表示させる。
【発明の効果】
【0013】
上記第1の発明によれば、プレイヤがオブジェクトを指示する操作を行ったとき、当該オブジェクトをズームアップして表示するため、プレイヤに操作対象オブジェクトを把握しやすくさせると共に、オブジェクトに対するプレイヤの操作を行いやすくすることができる。
【0014】
上記第2および第3の発明によれば、オブジェクト毎に設けられた所定の領域を用いてオブジェクトの特定を行うため、オブジェクトを特定する処理の負荷を軽減することができる。
【0015】
上記第4の発明によれば、オブジェクトにそれぞれ領域を設定し、オブジェクトをズームするときは、各オブジェクトの領域に基づいてカメラの画角を制御する。そのため、ズームするときにその都度オブジェクトの大きさを算出してカメラの画角を算出する場合に比べ、より簡単な処理でオブジェクトをズームアップすることができる。また、オブジェクト毎にズームアップするためのカメラの画角を容易に設定することができる。
【0016】
上記第5の発明によれば、指示操作の継続時間が所定時間以上経過したときに、そのオブジェクトをズームアップするようにカメラ制御を行うので、プレイヤの意思によらない誤操作により誤って選択されたオブジェクトに基づいてカメラ制御が行われるのを防止することができる。また、プレイヤのオブジェクト指示操作が所定時間以上継続した後でなければ、カメラ制御を行わないので、視点が頻繁に切り替わることがなく、ゲーム性を向上することができる。
【0017】
上記第6の発明によれば、一旦オブジェクトをズームアップするようにカメラ制御した後、さらにプレイヤの操作の継続時間が所定時間以上経過した後は、カメラ制御を元に戻すことができる。
【0018】
上記第7の発明によれば、オブジェクトをズームアップするように設定したカメラ制御を元に戻すまでの時間をオブジェクトのパラメータに基づいて設定するので、オブジェクト毎にカメラ制御を元に戻す時間を設定することができる。また、パラメータ値は、プレイヤの操作種別に応じて変化するので、カメラ制御を元に戻すまでの時間をプレイヤの操作内容に応じて変化させることができる。
【0019】
また、第8の発明によれば、上述した第1の発明と同様の効果を得られる。
【発明を実施するための最良の形態】
【0020】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【0021】
図1は、本発明の一実施形態に係るゲーム装置の外観図である。図1において、ゲーム装置10は、第1のLCD(Liquid Crystal Display:液晶表示装置)11および第2のLCD12を含む。ハウジング13は上側ハウジング13aと下側ハウジング13bとによって構成されており、第1のLCD11は上側ハウジング13aに収納され、第2のLCD12は下側ハウジング13bに収納される。第1のLCD11および第2のLCD12の解像度はいずれも256dot×192dotである。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【0022】
上側ハウジング13aには、後述する1対のスピーカ(図2の30a、30b)からの音を外部に放出するための音抜き孔18a、18bが形成されている。
【0023】
下側ハウジング13bには、入力装置として、十字スイッチ14a、スタートスイッチ14b、セレクトスイッチ14c、Aボタン14d、Bボタン14e、Xボタン14f、Yボタン14g、Lボタン14LおよびRボタン14Rが設けられている。また、さらなる入力装置として、第2のLCD12の画面上にタッチパネル15が装着されている。また、下側ハウジング13bには、電源スイッチ19や、メモリカード17やスティック16を収納するための挿入口も設けられている。
【0024】
タッチパネル15としては、例えば抵抗膜方式や光学式(赤外線方式)や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル15は、その表面をスティック16で触れると、その接触位置に対応する座標データを出力する機能を有している。なお、以下ではプレイヤがタッチパネル15をスティック16で操作するものとして説明を行うが、スティック16の代わりにペン(スタイラスペン)や指でタッチパネル15を操作することももちろん可能である。本実施形態では、タッチパネル15として、第2のLCD12の解像度と同じく256dot×192dotの解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル15の解像度と第2のLCD12の解像度が一致している必要はない。
【0025】
メモリカード17はゲームプログラムを記録した記録媒体であり、下部ハウジング13bに設けられた挿入口に着脱自在に装着される。
【0026】
次に、図2を参照してゲーム装置10の内部構成を説明する。
【0027】
図2において、ハウジング13に収納される電子回路基板20には、CPUコア21が実装される。CPUコア21には、バス22を介して、コネクタ23が接続されるとともに、入出力インターフェース回路(図面ではI/F回路と記す)25、第1GPU(Graphics Processing Unit)26、第2GPU27、RAM24およびLCDコントローラ31が接続される。コネクタ23には、メモリカード17が着脱自在に接続される。メモリカード17は、ゲームプログラムを記憶するROM17aと、バックアップデータを書き換え可能に記憶するRAM17bを搭載する。メモリカード17のROM17aに記憶されたゲームプログラムはRAM24にロードされ、RAM24にロードされたゲームプログラムがCPUコア21によって実行される。RAM24には、ゲームプログラムの他にも、CPUコア21がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータが記憶される。I/F回路25には、タッチパネル15、右スピーカ30a、左スピーカ30bおよび図1の十字スイッチ14aやAボタン14d等から成る操作スイッチ部14が接続される。右スピーカ30aと左スピーカ30bは、音抜き孔18a、18bの内側にそれぞれ配置される。
【0028】
第1GPU26には、第1VRAM(Video RAM)28が接続され、第2GPU27には、第2VRAM29が接続される。第1GPU26は、CPUコア21からの指示に応じて、RAM24に記憶されているゲーム画像を生成するためのデータに基づいて第1のゲーム画像を生成し、第1VRAM28に描画する。第2GPU27は、同様にCPUコア21からの指示に応じて第2のゲーム画像を生成し、第2VRAM29に描画する。第1VRAM28および第2VRAM29はLCDコントローラ31に接続されている。
【0029】
LCDコントローラ31はレジスタ32を含む。レジスタ32はCPUコア21からの指示に応じて0または1の値を記憶する。LCDコントローラ31は、レジスタ32の値が0の場合は、第1VRAM28に描画された第1のゲーム画像を第1のLCD11に出力し、第2VRAM29に描画された第2のゲーム画像を第2のLCD12に出力する。
また、レジスタ32の値が1の場合は、第1VRAM28に描画された第1のゲーム画像を第2のLCD12に出力し、第2VRAM29に描画された第2のゲーム画像を第1のLCD11に出力する。
【0030】
なお、上記のようなゲーム装置10の構成は単なる一例に過ぎず、本発明は、画面上にタッチパネルの設けられた少なくとも1つの表示装置を有する任意のコンピュータシステムに適用することができる。また、本発明のゲームプログラムは、メモリカード17などの外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよいし、さらにはコンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。
【0031】
次に、図3および図4を用いて、本実施形態で想定するゲームの概要について説明する。図3は、本実施形態で想定するゲームの画面の一例である。図3において、第2のLCD12には、オブジェクト(仮想のペットである犬)51および52が表示される。このゲームは、画面に表示されるオブジェクトにプレイヤがスティック等で触ることに応じてオブジェクトが行う種々の反応をプレイヤが楽しむゲームである。このゲームにおいては、オブジェクト51或いは52をプレイヤがスティック16等で触ることによって、図4に示すように、プレイヤが触ったオブジェクトがズームアップされる。プレイヤは、ズームアップされたオブジェクトに対して、スティック16等を用いて「なでる」、「叩く」等の操作を行い、当該オブジェクトの反応を楽しむ。
【0032】
次に、図5〜図11を参照して、ゲーム装置10によって実行されるゲーム画像生成処理について説明する。なお、図5はゲーム装置10によって実行されるゲーム画像生成処理の全体処理を示すフローチャートである。また、図7は、図5の操作処理の詳細な動作を示すサブルーチンであり、図9は、図5のオブジェクトズーム処理の詳細な動作を示すサブルーチンであり、図11は、図5のズーム解除処理の詳細な動作を示すサブルーチンである。
【0033】
ゲーム装置10の電源が投入されると、ゲーム装置10のCPUコア21は、図示しないブートROMに記憶されている起動プログラムを実行し、RAM24等の各ユニットが初期化される。そして、メモリカード17に格納されたゲームプログラムと各種データがコネクタ23を介してRAM24に読み込まれ、そのゲームプログラムの実行が開始される。
【0034】
図5において、まず、ゲームの初期設定処理が行われる(ステップS11)。このステップS11の処理をより具体的に説明すると、CPUコア21は、表示するオブジェクトや背景等の画像を3次元空間内に適宜配置する。次に、画面に表示する各オブジェクトにそれぞれ半径値を設定する。当該半径値は、後述するオブジェクトズーム処理等において、3次元ゲーム空間内に設定される仮想カメラの画角を決定するために用いられるものである。更に、各オブジェクトに当たり判定範囲を設定する。当該当たり判定範囲は、3次元空間内で球状に設定され、ズームアップの対象となるオブジェクトの決定等に用いられる(以下、当たり判定範囲を当たり判定球と称す)。併せて、後述するオブジェクトズーム処理等において、閾値として用いる第1設定値の設定も行う。当該第1設定値は、プレイヤがタッチパネル15を所定時間以上触り続けているか否かを判定するための閾値となる。例えば、第1設定値に「3秒」という値を設定したとき、利用者がオブジェクトを3秒以上触り続けないと、そのオブジェクトはズームされない(詳細は後述)。次に、仮想カメラのパラメータを初期値に設定する。当該パラメータは、仮想カメラの位置、画角および注視点を含んでいる。そして、当該初期値には、画面に表示するオブジェクトが全て画面に収まるような値が予め設定されている。
【0035】
以上のような初期設定処理が終われば、次にCPUコア21は、仮想カメラから見た画像を第2のLCD12へ表示する(ステップS12)。具体的には、上記各オブジェクトを構成するポリゴンの座標データであるモデリング座標系を、仮想カメラを原点にした視点座標系に変換する。そして、遠近法などの効果や前面の物体に隠れる部分などを計算し、投影変換を行う。最後に、表示される画面に合わせたスクリーン座標系に変換し、第2のLCD12に表示する。
【0036】
図6は、上記ステップS11における初期設定後のカメラと3次元空間の関係を示す図である。初期設定の状態における3次元空間についてステップS12の処理により画像が描画されると、図3に示すように、オブジェクト51および52が画面内に収まるように表示される。ステップS12の処理が終われば、CPUコア21は、次のステップS13へ処理を進める。
【0037】
図7は、上記ステップS13で示す操作処理の詳細を示すフローチャートである。図7において、まず、CPUコア21は、タッチパネル15による入力操作(以下、タッチ操作と称す)が行われたかどうかを判定する(ステップS21)。当該判定の結果、タッチ操作が行われていなければ(ステップS21でNO)、操作処理を終了する。一方、タッチ操作が行われていれば(ステップS21でYES)、処理を次のステップS22に進める。ステップS22では、現在オブジェクトがズームアップされている状態か否かを示すズームアップフラグがONか否かを判定する。ステップS22の判定の結果、ズームアップフラグがONのときは(ステップS22でYES)、処理を後述するステップS27に進める。一方、ズームアップフラグがOFFのときは(ステップS22でNO)、処理を次のステップS23に進める。ステップS23では、タッチパネル15上の入力された座標値(X、Y)が検出される。
【0038】
次に、CPUコア21は、仮想カメラ位置とタッチパネル15上の入力された座標値に対応する3次元空間内の座標(以下、ユーザ指定座標)とを通過する直線(以下、判定直線)を算出する(ステップS24)。以下、ステップS24の処理をより具体的に説明する。なお、3次元空間内において、ワールド座標系のZ軸は、投影面と垂直に交わる方向にとられている。また、X軸は、投影面の横方向に、Y軸は投影面の縦方向に対応している。本実施形態における3次元空間は、このような座標系を有するものとして、以下説明を続ける。
【0039】
まず、以下に示す式を用いて、タッチパネル15上の座標値(x,y)をユーザ指定座標(X,Y,Z)に変換する。
X=camX+(dXY×x)
Y=camY+(dXY×y)
Z=camZ+dZ
上記の式において、camX、camY、camZは、3次元空間内における仮想カメラの座標を示す。dXYは、タッチパネル15の入力座標値を3次元空間内の座標値に変換するために用いる変数である。dZは、仮想カメラから投影面までの距離を示す。なお、変数dXYは、dZと、仮想カメラの画角θのタンジェント(tan)とに基づいて、次に示す式で求めることができる。
dXY=dZ×tanθ
ユーザ指定座標が算出できれば、次に、仮想カメラの位置とユーザ指定座標とを通過する判定直線を算出する。
【0040】
次に、CPUコア21は、プレイヤが指示しているオブジェクトを特定する処理を行う(ステップS25)。具体的には、3次元空間内のいずれかのオブジェクトに設定されている当たり判定球のいずれかと上記判定直線とが交わっているか否かを判定する。当該判
定の結果、判定直線がいずれの当たり判定球とも交わっていなければ(ステップS25でNO)、いずれのオブジェクトをも指示していないと判定し、操作処理を終了する。一方、判定直線がいずれかの当たり判定球に交わっていれば(ステップS25でYES)、当該当たり判定球を有するオブジェクトをプレイヤが指示していることになる。このときは、プレイヤがタッチパネル15に触れ続けている時間、すなわち、オブジェクトを指示し続けている時間(以下、継続時間と称す)のカウントが開始される(ステップS26)。上述した図8の場合を例に取ると、判定直線は、オブジェクト51の当たり判定球(犬のキャラクタの頭部)に当たっている。そのため、プレイヤがオブジェクト51を指示していることになり、プレイヤがタッチパネル15に触れ続けている時間がカウントされ始める。
【0041】
次に、操作種別の判別が行われる(ステップS27)。操作種別には、例えばスティック16をタッチパネル15に接触させたまま動かすような「なでる」操作や、スティック16をタッチパネル15に接触させたり離したりする動作を短時間で繰り返すような「たたく」操作が考えられる。操作種別の判別方法としては、例えば、次のような方法が考えられる。まず、ズームアップした後のスティック16の入力履歴を記録する。次に、スティック16の接触状態および入力座標値の変化を当該入力履歴から検出する。そして、接触状態がずっと接触し続けている状態で、かつ入力座標値が所定範囲内で変化していれば「なでる」操作であると判定する。当該所定範囲は、例えば、プレイヤが指示しているオブジェクトの当たり判定球の座標をタッチパネル15における2次元座標に変換した範囲である。また、接触・非接触が繰り返されており、入力座標値が上記所定範囲内に収まっていれば「たたく」操作であると判定する。以上のような方法で、プレイヤが仮想のペット(犬)であるオブジェクトに対してどういう行動を取っているのかを判別することができる。
【0042】
次に、CPUコア21は、上記ステップS27で判別した操作種別に基づいて、オブジェクトに固有に設定されているパラメータを変化させる(ステップS28)。本実施形態では、仮想のペット(犬)であるオブジェクトに対して、「なつき度」というパラメータが設定されている。ステップS28では、上述の操作種別が「なでる」の場合は「なつき度」の値を上げ、「たたく」の場合は「なつき度」の値を下げるといった処理を行う。
【0043】
次に、上記パラメータに基づいて第2設定値が設定される(ステップS29)。第2設定値は、後述するズーム処理のズームアップの解除タイミングを示す値として用いられる。例えば、「なつき度」が所定値未満のとき(あまりなついていないとき)は、当該第2設定値を5秒と設定し、「なつき度」が所定値以上のとき(よくなついているとき)は、当該第2設定値を10秒と設定する。ステップS29で第2設定値を設定すれば、CPUコア21は、当該操作処理を終了し、図5のオブジェクトズーム処理(ステップS14)へ処理を進める。
【0044】
図9は、図5におけるステップS14で示したオブジェクトズーム処理の詳細を示すフローチャートである。図9において、まず、CPUコア21は、継続時間が第1設定値を越えたか否か(すなわち、プレイヤがタッチパネル15を所定時間以上触り続けているか否か)を判定する(ステップS31)。当該判定の結果、第1設定値を越えていなければ(ステップS31でNO)、オブジェクトズーム処理を終了する。
【0045】
一方、第1設定値を越えていれば(ステップS31でYES)、CPUコア21は、継続時間が第2設定値を越えたか否かを判定する(ステップS32)。当該判定の結果、第2設定値を越えていれば(ステップS32でYES)、オブジェクトズーム処理を終了する。一方、第2設定値を越えていなければ(ステップS32でYES)、処理を次のステップS33に進める。
【0046】
ステップS33では、CPUコア21は、判定直線と接しているオブジェクト(以下、対象オブジェクト)上の所定点(例えば当該対象オブジェクトの中心点)を注視点として設定する。そして、CPUコア21は、処理を次のステップS34に進める。
【0047】
ステップS34では、CPUコア21は、対象オブジェクトに設定されている半径値に基づいて仮想カメラの画角を変化させる。併せて、ズームアップフラグをONに設定する。図10を例として具体的に説明すると、まず、対象オブジェクト51の中心を注視点とする。そして、当該注視点を中心点として当該オブジェクト51に設定されている半径から成る球の直径が、画面の縦方向の大きさと一致するような画角(すなわち、オブジェクト51がズームアップ表示されるような画角)を仮想カメラに設定する。ステップS34の後、ステップS12の処理(画面描画処理)が行われると、上述した図4に示すような、オブジェクトがズームアップされた画面が表示されることとなる。
【0048】
ステップS34の処理が終われば、CPUコア21は、オブジェクトズーム処理を終了し、図5のズーム解除処理(ステップS15)へ処理を進める。ステップS15におけるズーム解除処理では、ズームアップ中にプレイヤが何らかの操作を行っていても、第2設定値に設定されている時間が経過すれば、ズームアップ表示(図4参照)を元の表示(図3参照)に戻す処理を行う。また、ズームアップ後に所定時間以上プレイヤが操作を行わないときも、同様にズームアップ表示を元の表示に戻す処理を行う。
【0049】
図11は、上記ステップS15で示したズーム解除処理の詳細を示すフローチャートである。図11において、まず、CPUコア21は、継続時間が上記第2設定値を越えたか否かを判定する(ステップS41)。当該判定の結果、第2設定値を越えていれば(ステップS41でYES)、仮想カメラの設定を初期値にする。併せて、上記ステップS26で開始した継続時間のカウントを停止する(ステップS42)。これは、例えば、第2設定値が10秒と設定されているとき、ズームアップ中に10秒以上仮想のペット(犬)であるオブジェクトを撫で続けた場合等が該当する。一方、第2設定値を越えていないときは(ステップS41でNO)、処理をステップS43に進める。
【0050】
ステップS43においては、所定時間内にオブジェクトへのタッチ操作があったか否かが判定される。すなわち、オブジェクトをズームアップした後、上記第2設定値、例えば10秒以内に当該オブジェクトに何らかのタッチ操作を行ったか否かを判定する。そして、当該判定の結果、所定時間内にタッチ操作があったときは(ステップS43でYES)、プレイヤはオブジェクトに対して何らかのタッチ操作をしている最中であるため、カメラ設定はそのまま(ズーム表示のまま)でズーム解除処理を終了する。一方、所定時間内にタッチ操作がされなかったときは(ステップS43でNO)、CPUコア21は、処理を上述したステップS42へ進める。すなわち、オブジェクト(犬)をズームアップした後、タッチ操作せずに放置している場合は、所定時間、例えば5秒経過後、カメラ設定が初期値に戻りズームアップが解除されることとなる。以上で、ズーム解除処理は終了する。
【0051】
図5に戻り、ステップS15におけるズーム解除処理が終われば、次に、所定のゲーム終了条件が満たされているか否かが判断される(ステップS16)。所定のゲーム終了条件が満たされていなければ(ステップS16でNO)、ステップS12に戻り、ゲーム終了条件が満たされるまで、ステップS12〜S16の動作が繰り返される。一方、ゲーム終了条件が満たされていれば(ステップS16でYES)、所定のゲームオーバー処理(ゲームを継続するか否かを選択する処理等)が行われ、ゲームを終了する。以上で、本実施形態に係るゲーム画像生成処理は終了する。
【0052】
このように、本発明のゲームプログラムは、プレイヤがタッチパネルを介して画面に表示されるオブジェクトに触れることで、触れたオブジェクトをズームアップして表示することができる。そのため、オブジェクトに対する操作を行いやすくすることができる。
【0053】
また、オブジェクトに触れているか否かの判定は、3次元空間内における上記判定直線と上記当たり判定球とが交わるか否かで判定している。ここで、プレイヤがオブジェクトを指示しているか否かを判定する方法として、2次元座標上で判定する方法がある。この方法では、まず、3次元空間内の各オブジェクトを2次元座標に変換する。そして、プレイヤの入力座標が各オブジェクトに設定されている当たり判定範囲内に入っているか否かを判定する。従って、オブジェクトの数が多いと、2次元座標に変換する処理が増える。更に、3次元座標から2次元座標に変換するためには数多くの計算を行う必要があり、変換処理自体の負荷も高い。これに対して、本発明によれば、プレイヤのタッチパネル上の入力座標を3次元空間内の座標に変換さえすれば、後は直線と球が交わるかどうかを判定すればよい。そのため、上記の2次元座標上で判定する処理に比べ、処理負担を軽減することができる。
【0054】
また、各オブジェクトに設定されている半径値に基づいてズームアップ制御を行うため、ズームアップするときにその都度オブジェクトの大きさを算出してカメラの画角を算出する場合に比べ、より簡単な処理でオブジェクトをズームアップすることができる。
【0055】
また、プレイヤがタッチパネルに触れている時間を計測し、オブジェクトをズームアップするタイミングを調整している。これにより、間違ってちょっと触れてしまっただけでオブジェクトがズームアップされてしまうというような、プレイヤの誤操作による不要なズーム処理を防止することができる。すなわち、タッチパネルを用いた操作を行う場合、一般には表示画面全域を操作対象とするため、通常のボタン操作に比べてプレイヤの操作ミスやタッチパネル座標の誤検出等が生じやすい。そのため、タッチパネルを用いて操作するゲーム等において、上述した特許文献1のようなカメラ移動技術を用いると、操作ミスや誤検出等によってプレイヤが意図しないオブジェクトが選択されたとき、その都度ズームアップが行われる。その結果、視点が頻繁に切り替わり、非常にゲーム性の悪いものになってしまう。そのため、本発明では、プレイヤがタッチパネルに触れている時間を計測し、オブジェクトをズームアップするタイミングを調整するようにしている。
【0056】
また、オブジェクトのズームアップ表示後、さらに操作の継続時間が所定時間以上経過した後は、カメラ制御を元に戻すことができる。また、当該所定時間を各オブジェクトのパラメータに基づいて設定するので、オブジェクト毎にカメラ制御を元に戻す時間を設定することができる。また、パラメータ値は、オブジェクトの指示状態に応じて変化するので、カメラ制御を元に戻すまでの時間をプレイヤの操作内容に応じて変化させることができる。
【0057】
なお、上述した実施形態における仮想カメラのパラメータとして、仮想カメラの位置、画角および注視点を用いているが、これに限らず、その値を変化させることによってズームアップ表示することができるパラメータであれば何でも良い。
【0058】
また、上述した実施形態ではタッチパネルを用いているが、タッチパネルの代りにマウスを用いてプレイヤがオブジェクトを指示する形態であってもよい。
【産業上の利用可能性】
【0059】
本発明にかかるゲームプログラムおよびゲーム装置は、画面に表示されるオブジェクトをプレイヤがタッチ操作することによりズームアップ表示することができ、タッチパネルを用いた操作に連動してカメラ制御を行うゲーム装置等の用途に有用である。
【図面の簡単な説明】
【0060】
【図1】本発明の実施形態に係るゲーム装置の外観図
【図2】図1のゲーム装置10の内部構成図
【図3】図1のゲーム装置10で実行されるゲームプログラムに基づいて表示されるゲーム画面の一例
【図4】図1のゲーム装置10で実行されるゲームプログラムに基づいて表示されるゲーム画面の一例
【図5】ゲーム装置10によって実行されるゲーム画像生成処理の全体処理を示すフローチャート
【図6】図5のステップS12における初期設定後のカメラと3次元空間の関係を示す図
【図7】図5のステップS14の詳細な動作を示すサブルーチン
【図8】仮想カメラ、入力座標値、判定直線の関係を示す図
【図9】図5のステップS15の詳細な動作を示すサブルーチン
【図10】図9のステップS34における仮想カメラの画角の変化を示す図
【図11】図5のステップS16の詳細な動作を示すサブルーチン
【符号の説明】
【0061】
10 ゲーム装置
11 第1のLCD
12 第2のLCD
13 ハウジング
13a 上側ハウジング
13b 下側ハウジング
14 操作スイッチ部
14a 十字スイッチ
14b スタートスイッチ
14c セレクトスイッチ
14d Aボタン
14e Bボタン
14f Xボタン
14g Yボタン
14L Lボタン
14R Rボタン
15 タッチパネル
16 スティック
17 メモリカード
17a ROM
17b RAM
18a,18b 音抜き孔
19 電源スイッチ
20 電子回路基板
21 CPUコア
22 バス
23 コネクタ
24 RAM
25 I/F回路
26 第1GPU
27 第2GPU
28 第1VRAM
29 第2VRAM
30a 右スピーカ
30b 左スピーカ
31 LCDコントローラ
32 レジスタ
51、52 オブジェクト
53 仮想カメラ
54 入力位置

【特許請求の範囲】
【請求項1】
オブジェクトが登場する仮想の3次元ゲーム空間を仮想カメラから見たゲーム画像を表示する表示装置と、当該表示装置の画面上の位置を指定するための入力装置とを有するゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記仮想カメラのパラメータの値を設定する第1のカメラ設定ステップと、
前記第1のカメラ設定ステップにおいて設定されたパラメータに従ってゲーム画像を前記表示装置に表示させる第1の表示ステップと、
前記第1の表示ステップによってゲーム画像が表示されているときに前記入力装置に対して行われた操作によって指定された画面上の位置を検出する位置検出ステップと、
前記位置検出ステップにおいて検出された位置に対応する前記3次元ゲーム空間内における位置と前記仮想カメラの位置とを通る直線を算出する直線算出ステップと、
前記直線と交わるオブジェクトを特定するオブジェクト特定ステップと、
前記特定されたオブジェクトをズームアップして表示するように前記仮想カメラのパラメータの値を変更する第2のカメラ設定ステップと、
前記第2のカメラ設定ステップにおいて変更された後のパラメータに従ってゲーム画像を前記表示装置に表示させる第2の表示ステップとを前記コンピュータに実行させる、ゲームプログラム。
【請求項2】
前記オブジェクト毎に所定の領域を設定する領域設定ステップをさらに前記コンピュータに実行させ、
前記オブジェクト特定ステップにおいて、前記領域と前記直線とが交わるときに前記オブジェクトが特定されることを特徴とする、請求項1記載のゲームプログラム。
【請求項3】
前記領域設定ステップにおいて設定される領域は球であることを特徴とする、請求項2記載のゲームプログラム。
【請求項4】
前記第2のカメラ設定ステップにおいて、前記仮想カメラの注視点を前記特定されたオブジェクトの所定点に合わせるとともに前記仮想カメラの画角を前記特定されたオブジェクトに設定されている前記領域に基づいて設定することで前記仮想カメラのパラメータの値が変更される、請求項2記載のゲームプログラム。
【請求項5】
前記オブジェクト特定ステップにおいてオブジェクトが特定されたとき、前記指示操作が継続して行われている時間である指示継続時間が第1の所定値を越えたか否かを判定する第1の条件判別ステップを更に前記コンピュータに実行させ、
前記第2のカメラ設定ステップは、前記第1の条件判別ステップにおいて第1の所定値を越えたことが判別されたとき、前記パラメータの値を変更することを特徴とする、請求項1記載のゲームプログラム。
【請求項6】
前記オブジェクト特定ステップにおいてオブジェクトが特定されたとき、前記指示操作が継続して行われている時間である指示継続時間が第2の所定値を越えたか否かを判別する第2の条件判別ステップと、
前記第2の条件判別ステップにおいて第2の所定値を越えたことが判別されたとき、前記仮想カメラのパラメータの値を前記第1のカメラ設定ステップにおいて設定した値に戻す第3のカメラ設定ステップを前記コンピュータに実行させる、請求項1記載のゲームプログラム。
【請求項7】
前記第2の表示ステップによってゲーム画像が表示されているときのプレイヤの操作内容に基づいてプレイヤが行った操作の種別を判別する操作種別判別ステップと、
前記判別された種別に基づいて前記オブジェクトのパラメータの値を変化させるパラメ
ータ変化ステップと、
前記パラメータ変化ステップにおいて変化されたパラメータの値に基づいて前記第2の所定値を設定する第2の所定値設定ステップとをさらに前記コンピュータに実行させる、請求項6記載のゲームプログラム。
【請求項8】
オブジェクトが登場する仮想の3次元ゲーム空間を仮想カメラから見たゲーム画像を表示する表示装置と、当該表示装置の画面上の位置を指定するための入力装置と、
前記仮想カメラのパラメータの値を設定する第1のカメラ設定手段と、
前記第1のカメラ設定手段において設定されたパラメータに従ってゲーム画像を前記表示装置に表示させる第1の表示手段と、
前記第1の表示手段によってゲーム画像が表示されているときに前記入力装置に対して行われた操作によって指定された画面上の位置を検出する位置検出手段と、
前記位置検出手段において検出された位置に対応する前記3次元ゲーム空間内における位置と前記仮想カメラの位置とを通る直線を算出する直線算出手段と、
前記直線と交わるオブジェクトを特定するオブジェクト特定手段と、
前記特定されたオブジェクトをズームアップして表示するように前記仮想カメラのパラメータの値を変更する第2のカメラ設定手段と、
前記第2のカメラ設定手段において変更された後のパラメータに従ってゲーム画像を前記表示装置に表示させる第2の表示手段とを有するゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2009−78157(P2009−78157A)
【公開日】平成21年4月16日(2009.4.16)
【国際特許分類】
【出願番号】特願2008−283495(P2008−283495)
【出願日】平成20年11月4日(2008.11.4)
【分割の表示】特願2005−67812(P2005−67812)の分割
【原出願日】平成17年3月10日(2005.3.10)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】