説明

ゲームプログラム

【課題】 3次元のゲーム空間内の任意のオブジェクトをプレイヤがタッチパネルを操作して移動させるときに、プレイヤが意図した点に正確に移動できるようにすること。
【解決手段】 CPUコアは、タッチパネルからの出力信号に基づいて、タッチパネルにスティックが接触しているかどうかを判定し、接触していない場合は、オブジェクトの重心に仮想カメラの注視点を移動させる。一方、タッチパネルにスティックが接触している場合は、カメラ設定値を固定し、タッチ座標に対応するゲーム空間中の位置に操作対象オブジェクトを出現させ、さらにプレイヤのドラッグ操作に応じてこの操作対象オブジェクトを移動させる。カメラ設定値は、タッチパネルからスティックが離れるまでの間、固定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はゲームプログラムに関し、特に、3次元のゲーム空間に配置されたオブジェクトを、当該ゲーム空間内に定義された仮想カメラに基づいて、タッチパネルを設置した表示装置に表示するためのゲームプログラムに関する。
【背景技術】
【0002】
従来、3次元のゲーム空間を表示画面に表示し、この表示画面上に設けられたタッチパネルを操作することによってゲームに関する入力操作を行えるようにしたゲーム装置が存在する(例えば特許文献1参照)。特許文献1に記載のゲーム装置では、3次元のゲーム空間に配置された主人公は剣を持っており、ユーザはタッチパネルに触れることによってその剣を操作することができる。具体的には、タッチパネル上の剣が表示されている位置をタッチし、タッチした指をタッチパネルに接触させたまま、敵が表示されている位置まで移動(ドラッグ)させることによって、主人公に剣で敵を切らせることができる。
【特許文献1】特開2002−939号公報、図23
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、上記特許文献1に記載のゲーム装置では、3次元のゲーム空間をこのゲーム空間に設けられた仮想カメラから見たときの様子を表示画面に表示しているが、上記特許文献1に記載のゲーム装置において、例えば、仮想カメラの注視点が常に主人公と敵との中間点になるように仮想カメラの向き(すなわち注視点)を自動的に制御することが考えられる。しかしながらこの場合には、以下のような問題が生じることになる。
【0004】
仮想カメラの注視点が常に主人公と敵との中間点になるように仮想カメラの向きを自動的に制御するようにした場合、主人公や敵の移動に応じて仮想カメラの向きが目まぐるしく変化することになる。そうすると、仮想カメラの向きの変化に応じて、表示画面に表示される主人公の位置、主人公が持つ剣の位置、敵の位置が目まぐるしく変化することになる。その結果、ユーザがタッチパネルによって剣を敵の位置までドラッグしようとしたときに、敵の位置が目まぐるしく変化するために正確に敵の位置までドラッグすることが難しいという問題がある。なお、ゲーム空間内を素早く移動する敵の動きを予測して剣を敵に当てることはゲーム性の向上に繋がるが、ゲーム空間内における敵の移動先地点を予測できたとしても、その地点が表示画面のどこに表示されるかは仮想カメラの位置に依存するため、仮想カメラの向きが目まぐるしく変化すると敵の動きを予想して敵を攻撃するという面白さが失われてしまう。例えば、図従Aのように、敵が走っているときに、敵の移動先を予測してその予測地点に向かってプレイヤが主人公の剣をドラッグしたとしても、敵が移動したことによって仮想カメラの注視点が移動してしまうため、プレイヤの予測が正確でも図従Bのように主人公は剣を空振りしてしまうことになる。
【0005】
なお上記の例は、仮想カメラの注視点が常に主人公と敵との中間点になるように仮想カメラの向きが自動的に変化する例であるが、仮想カメラの位置や画角が変化する場合にも同様の問題が発生する。
【0006】
それゆえに本発明は、タッチパネルを利用して3次元のゲーム空間内の任意の点をプレイヤが指示するときに、プレイヤが意図した点を正確に指示できるようなゲームプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明は以下の構成を採用した。なお、括弧内の参照符号および図番号は、本発明の理解を助けるために図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【0008】
第1の発明は、3次元のゲーム空間に配置されたオブジェクト(OB1〜OB3)を、当該ゲーム空間内に定義された仮想カメラ(VC)に基づいて、タッチパネル(15)を設置した表示装置(12)に表示するためのゲームプログラムである。
このゲームプログラムは、コンピュータ(21)に、カメラ制御ステップ(S21)、ゲーム画像生成ステップ(S35)、タッチ座標検出ステップ(S15)、カメラ固定ステップ(S23)、および指示座標算出ステップ(S25)を実行させるためのプログラムである。
カメラ制御ステップは、仮想カメラの位置(40a)、注視点(40b)、画角(40c)の少なくとも1つを示すカメラ設定値を変化させるステップであり、ゲーム画像生成ステップは、カメラ設定値に基づいてオブジェクトを描画することによって、表示装置に表示すべきゲーム画像を生成するステップであり、タッチ座標検出ステップは、タッチパネルからの出力信号に基づいて当該タッチパネルへの接触位置を示すタッチ座標(42)を検出するステップであり、カメラ固定ステップは、カメラ設定値が変化している途中でタッチ座標が検出されたときに、少なくともタッチ座標が検出されなくなるまで当該カメラ設定値を変動しないように固定するステップであり、指示座標算出ステップは、カメラ設定値が固定されている状態においてタッチ座標が変化したときに、当該変化後のタッチ座標に対応するゲーム空間内の3次元座標を、プレイヤによる指示座標(43)として順次算出するステップである。
【0009】
第2の発明は、第1の発明において、操作対象オブジェクト配置ステップ(S29)および操作対象オブジェクト移動ステップ(S33)をさらにコンピュータに実行させることを特徴とするものである。
操作対象オブジェクト配置ステップは、カメラ設定値が変化している途中でタッチ座標が検出されたときに、当該タッチ座標に対応するゲーム空間内の3次元座標に操作対象オブジェクト(CT1)を配置するステップであり、操作対象オブジェクト移動ステップは、指示座標算出ステップで順次算出される指示座標の変化に応じて操作対象オブジェクトを移動させるステップである。
【0010】
第3の発明は、第1の発明において、指示座標算出ステップは、タッチパネル上の各点を、ゲーム空間における視体積内に設定した所定面(VS)に写像することによって、タッチ座標検出ステップにおいて検出されたタッチ座標に対応する指示座標を算出することを特徴とする(図12)。
【0011】
第4の発明は、第1の発明において、カメラ制御ステップは、予め決められた計算式(S19)に基づいて単位時間ごとにカメラ設定値を変化させることを特徴とする。
【0012】
第5の発明は、3次元のゲーム空間に配置されたオブジェクト(OB1〜OB3)を、当該ゲーム空間内に定義された仮想カメラ(VC)に基づいて、タッチパネル(15)を設置した表示装置(12)に表示するためのゲームプログラムである。
このゲームプログラムは、コンピュータ(21)に、第1カメラ制御ステップ(S21)、ゲーム画像生成ステップ(S35)、タッチ座標検出ステップ(S15)、オブジェクト判定ステップ(S45)、カメラ固定ステップ(S47)、指示座標算出ステップ(S41)、および操作対象オブジェクト移動ステップ(S53)を実行させるためのプログラムである。
第1カメラ制御ステップは、仮想カメラの位置(40a)、注視点(40b)、画角(40c)の少なくとも1つを示すカメラ設定値を変化させるステップであり、ゲーム画像生成ステップは、仮想カメラに基づいてオブジェクトを描画することによって、表示装置に表示すべきゲーム画像を生成するステップであり、タッチ座標検出ステップは、タッチパネルからの出力信号に基づいて当該タッチパネルへの接触位置を示すタッチ座標(42)を検出するステップであり、オブジェクト判定ステップは、タッチ座標検出ステップにおいて検出されたタッチ座標に基づいて、当該タッチ座標に対応する表示装置の画面上の位置に操作対象オブジェクト(CT2)が表示されているかどうかを判定するステップであり、カメラ固定ステップは、カメラ設定値が変化している途中でオブジェクト判定ステップにおいてタッチ座標に対応する表示装置の画面上の位置に操作対象オブジェクトが表示されていると判定されたときに、少なくともタッチ座標が検出されなくなるまで当該カメラ設定値を変動しないように固定するステップであり、指示座標算出ステップは、カメラ設定値が固定されている状態においてタッチ座標が変化したときに、当該変化後のタッチ座標に対応するゲーム空間内の3次元座標を、プレイヤによる指示座標(43)として順次算出するステップであり、操作対象オブジェクト移動ステップは、指示座標算出ステップで順次算出される指示座標の変化に応じてゲーム空間における操作対象オブジェクトの位置を更新するステップである。
【0013】
第6の発明は、第5の発明において、カメラ設定値が変化している途中でオブジェクト判定ステップにおいてタッチ座標に対応する表示装置の画面上の位置に操作対象オブジェクトが表示されていないと判定されたときに、タッチ座標に応じてカメラ設定値を変化させる第2カメラ制御ステップ(S51)をさらにコンピュータに実行させることを特徴とする。
【0014】
第7の発明は、第5の発明において、カメラ制御ステップは、予め決められた計算式(S19)に基づいて単位時間ごとにカメラ設定値を変化させることを特徴とする。
【発明の効果】
【0015】
上記第1の発明によれば、タッチ座標が検出されたときに、少なくともタッチ座標が検出されなくなるまでカメラ設定値が一時的に固定されるので、プレイヤがタッチパネルを利用してゲーム空間内の所望の点を指示しようとするときにその点の表示位置が変化してしまうことがなくなり、プレイヤはゲーム空間内の所望の点をすばやくかつ正確に指示することができる。
【0016】
上記第2の発明によれば、タッチ座標が検出されたときに、少なくともタッチ座標が検出されなくなるまでカメラ設定値が一時的に固定されるので、プレイヤがタッチパネルを利用して操作対象オブジェクトをゲーム空間内の所望の点まで移動させようとするときにその点の表示位置が変化してしまうことがなくなり、プレイヤは操作対象オブジェクトをゲーム空間内の所望の点まですばやくかつ正確に移動させることができる。
【0017】
上記第3の発明によれば、タッチ座標をゲーム空間内の仮想面に写像することによって、2次元のタッチ座標をゲーム空間内の3次元座標に変換することができる。
【0018】
上記第4の発明によれば、カメラ設定値を所定のアルゴリズムに基づいて自動的に制御することができる。また、この場合においても、タッチ座標が検出されたときには、少なくともタッチ座標が検出されなくなるまでカメラ設定値が一時的に固定されるので、プレイヤがタッチパネルを利用してゲーム空間内の所望の点を指示しようとするときにその点の表示位置が変化してしまうことがなくなり、プレイヤはゲーム空間内の所望の点をすばやくかつ正確に指示することができる。
【0019】
上記第5の発明によれば、タッチ座標に対応する表示装置の画面上の位置に操作対象オブジェクトが表示されているときに、少なくともタッチ座標が検出されなくなるまでカメラ設定値が一時的に固定されるので、プレイヤがタッチパネルを利用して操作対象オブジェクトをゲーム空間内の所望の点まで移動させようとするときにその点の表示位置が変化してしまうことがなくなり、プレイヤは操作対象オブジェクトをゲーム空間内の所望の点まですばやくかつ正確に移動させることができる。
【0020】
上記第6の発明によれば、操作対象オブジェクトをゲーム空間内の所望の点まですばやくかつ正確に移動させることができるという第5の発明の効果に加えて、タッチ座標に対応する表示装置の画面上の位置に操作対象オブジェクトが表示されていないときにはタッチ座標に応じてカメラ設定値が変化するので、プレイヤはタッチパネルを利用してカメラ設定値を変更することができるという効果も得られる。
【0021】
上記第7の発明によれば、カメラ設定値を所定のアルゴリズムに基づいて自動的に制御することができる。また、この場合においても、タッチ座標に対応する表示装置の画面上の位置に操作対象オブジェクトが表示されているときに、少なくともタッチ座標が検出されなくなるまでカメラ設定値が一時的に固定されるので、プレイヤがタッチパネルを利用して操作対象オブジェクトをゲーム空間内の所望の点まで移動させようとするときにその点の表示位置が変化してしまうことがなくなり、プレイヤは操作対象オブジェクトをゲーム空間内の所望の点まですばやくかつ正確に移動させることができる。
【発明を実施するための最良の形態】
【0022】
以下、本発明の一実施形態に係るゲーム装置の構成および動作を説明する。
【0023】
図1は、本発明の一実施形態に係るゲーム装置の外観図である。図1において、ゲーム装置10は、第1のLCD(Liquid Crystal Display:液晶表示装置)11および第2のLCD12を含む。ハウジング13は上側ハウジング13aと下側ハウジング13bとによって構成されており、第1のLCD11は上側ハウジング13aに収納され、第2のLCD12は下側ハウジング13bに収納される。第1のLCD11および第2のLCD12の解像度はいずれも228dot×192dotである。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【0024】
上側ハウジング13aには、後述する1対のスピーカ(図2の30a、30b)からの音を外部に放出するための音抜き孔18a、18bが形成されている。
【0025】
下側ハウジング13bには、入力装置として、十字スイッチ14a、スタートスイッチ14b、セレクトスイッチ14c、Aボタン14d、Bボタン14e、Xボタン14f、Yボタン14g、Lボタン14LおよびRボタン14Rが設けられている。また、さらなる入力装置として、第2のLCD12の画面上にタッチパネル15が装着されている。また、下側ハウジング13bには、電源スイッチ19や、メモリカード17やスティック16を収納するための挿入口も設けられている。
【0026】
タッチパネル15としては、例えば抵抗膜方式や光学式(赤外線方式)や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル15は、その表面をスティック16で触れると、その接触位置に対応する座標データを出力する機能を有している。なお、以下ではプレイヤがタッチパネル15をスティック16で操作するものとして説明を行うが、スティック16の代わりにペン(スタイラスペン)や指でタッチパネル15を操作することももちろん可能である。本実施形態では、タッチパネル15として、第2のLCD12の解像度と同じく228dot×192dotの解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル15の解像度と第2のLCD12の解像度が一致している必要はない。
【0027】
メモリカード17はゲームプログラムを記録した記録媒体であり、下部ハウジング13bに設けられた挿入口に着脱自在に装着される。
【0028】
次に、図2を参照してゲーム装置10の内部構成を説明する。
【0029】
図2において、ハウジング13に収納される電子回路基板20には、CPUコア21が実装される。CPUコア21には、バス22を介して、コネクタ23が接続されるとともに、入出力インターフェース回路(図面ではI/F回路と記す)25、第1GPU(Graphics Processig 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の内側にそれぞれ配置される。
【0030】
第1GPU26には、第1VRAM(Video RAM)28が接続され、第2GPU27には、第2VRAM29が接続される。第1GPU26は、CPUコア21からの指示に応じて、RAM24に記憶されているゲーム画像を生成するためのデータに基づいて第1のゲーム画像を生成し、第1VRAM28に描画する。第2GPU27は、同様にCPUコア21からの指示に応じて第2のゲーム画像を生成し、第2VRAM29に描画する。第1VRAM28および第2VRAM29はLCDコントローラ31に接続されている。
【0031】
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に出力する。
【0032】
なお、上記のようなゲーム装置10の構成は単なる一例に過ぎず、本発明は、画面上にタッチパネルの設けられた少なくとも1つの表示装置を有する任意のコンピュータシステムに適用することができる。また、本発明のゲームプログラムは、メモリカード17などの外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよいし、さらにはコンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。
【0033】
以下、ゲーム画面例を参照しながら、ゲームプログラムに従ってゲーム装置10で実行されるゲームの概要を説明する。
【0034】
第2のLCD12には、3次元のゲーム空間の様子が表示される。このゲーム空間には、図3Aのように、犬を表す3つのオブジェクトOB1,OB2,OB3と、仮想カメラVCが配置されている。オブジェクトOB1,OB2,OB3は、所定のアルゴリズムに従って移動したり所定の動作をしたりする。仮想カメラVCの注視点は、常にオブジェクトOB1,OB2,OB3の重心に位置するようにその位置が自動的に制御される。オブジェクトOB1,OB2,OB3が図1Aの位置にいる場合、第2のLCD12には、オブジェクトOB1,OB2,OB3の重心(ここではSP1)を中心とした図3Bのようなゲーム画像が表示される。このように、仮想カメラVCの注視点をオブジェクトOB1,OB2,OB3の重心位置に自動的に移動させることにより、3つのオブジェクトOB1,OB2,OB3が第2のLCD12の画面上に常にバランス良く表示されることとなる。
【0035】
ここで、図3Aの状態からオブジェクトOB1が図3Aの矢印の先の地点に移動すると、仮想カメラVCの注視点は図4AのようにSP1からSP2に移動する。その結果、第2のLCD12に表示されるゲーム画像は図3Bから図4Bのように変化する。なお、ゲーム空間においてオブジェクトOB2,OB3は全く移動していないが、仮想カメラの注視点が変化した結果、第2のLCD12の画面におけるオブジェクトOB2,OB3の表示位置は変化する。
【0036】
本実施形態では、プレイヤはタッチパネル15を操作することによって犬に骨付き肉を与えることができる。以下、オブジェクトOB3に骨付き肉を与える場合を例として説明する。
【0037】
プレイヤは、ゲーム空間に骨付き肉を出現させるために、タッチパネル15上の任意の点にスティック16を接触させる。ここでは図5に示す矢印の先の点にスティックを接触させるものとする。
【0038】
プレイヤがスティック16をタッチパネル15に接触させると、その接触位置に対応する第2のLCD12の画面上の位置に、図6のように骨付き肉を表すオブジェクトCT1が表示される。なお、このオブジェクトCT1の位置はプレイヤの操作により制御されるので、以下ではオブジェクトCT1のことを操作対象オブジェクトCT1と称す。
【0039】
なお、プレイヤがスティック16をタッチパネル15に接触させると、ゲーム空間に操作対象オブジェクトCT1が出現すると同時に、それまでオブジェクトOB1,OB2,OB3の重心に位置するように自動的に制御されていた仮想カメラVCの注視点が、プレイヤがスティック16をタッチパネル15から離すまでの間、固定される。ここでは、プレイヤがスティック16をタッチパネル15に接触させる直前の仮想カメラVCの注視点の位置はSP2であるので、プレイヤがスティック16をタッチパネル15から離すまでの間、仮想カメラVCの注視点はSP2で固定されることとなる。なお、より正確には、プレイヤがスティック16をタッチパネル15に接触させている間は、仮想カメラVCの注視点だけでなく、仮想カメラVCの位置(視点位置)や画角も固定される。したがって、その間は、ゲーム空間において全く移動しないオブジェクトは、第2のLCD12の画面上でも終始同じ位置に表示されることとなる。
【0040】
第2のLCD12に図6のように操作対象オブジェクトCT1が表示されると、次にプレイヤは、図7のように、操作対象オブジェクトCT1をドラッグ操作によってオブジェクトOB3の口元に向かって移動させる。なおドラッグ操作とは、スティック16をタッチパネル15に接触させたまま移動させる操作である。なお、プレイヤが操作対象オブジェクトCT1を移動させているときに、図7のようにオブジェクトOB1,OB2が操作対象オブジェクトCT1に近寄ってくるが、仮想カメラVCの注視点はSP2に固定されているため、オブジェクトOB1,OB2,OB3の重心が移動しても、第2のLCD12に表示されているオブジェクトOB3の画面上の位置は全く変化しない。したがって、図16Bを参照して前に説明したような問題は生じず、プレイヤは操作対象オブジェクトCT1をゲーム空間内の所望の位置(ここではオブジェクトOB3の口元)にすばやくかつ正確に移動させることができる。
【0041】
図8のように操作対象オブジェクトCT1をオブジェクトOB3の口元まで移動し終えると、プレイヤはスティック16をタッチパネル15から離す。そうすると、それまでSP2に固定されていた仮想カメラVCの注視点が、オブジェクトOB1,OB2,OB3の重心(ここではSP3)に位置するように移動する。その結果、3つのオブジェクトOB1,OB2,OB3が、図9のように第2のLCD12の画面上にバランス良く表示されることとなる。
【0042】
次に、ゲームプログラムに基づくCPUコア21の動作を詳細に説明する。
【0043】
図10は、RAM24のメモリマップである。RAM24には、メモリカード17のROM17aから読み出されたゲームプログラムの他にも、ゲーム空間に配置される各オブジェクトに関するデータ、カメラ設定値、ドラッグ中フラグ41、タッチ座標42、および指示座標43が記憶される。
【0044】
ゲームプログラムの中には、オブジェクトO1,OB2,OB3を自動制御するためのプログラムや、仮想カメラの注視点を自動制御するためのプログラムや、仮想カメラに基づいてゲーム画像を生成するためのプログラムなども含まれている。
【0045】
オブジェクトに関するデータとしては、ゲーム空間におけるオブジェクトの位置を表す座標(ワールド座標系)、ポリゴンデータ、テクスチャデータなどがRAM24に記憶される。
【0046】
カメラ設定値としては、ゲーム空間における仮想カメラVCの位置を表す視点座標(ワールド座標系)、ゲーム空間における仮想カメラVCの注視点を表す注視点座標(ワールド座標系)、仮想カメラVCの画角などがRAM24に記憶される。
【0047】
ドラッグ中フラグ41は、プレイヤが操作対象オブジェクトCT1をドラッグ中かどうかを示すフラグであって、操作対象オブジェクトCT1に対するドラッグ操作の開始時にオンにされ、ドラッグ操作の終了時にオフにされる。
【0048】
タッチ座標42は、プレイヤがスティック16をタッチパネル15に接触させたときの接触位置を表す座標(タッチパネル系)であって、タッチパネル15からの出力信号に基づいてRAM24に随時記憶される。
【0049】
指示座標43は、タッチ座標42に対応して決定されるゲーム空間内の座標(ワールド座標系)である。タッチ座標42と指示座標43との対応関係については後述する。
【0050】
次に、図11のフローチャートを参照して、ゲームプログラムに基づくCPUコア21の処理の流れを説明する。
【0051】
まずステップS11で、CPUコア21は、例えば図3Aのようにゲーム空間にオブジェクトOB1〜OB3と仮想カメラVCをそれぞれの初期位置に配置する。
【0052】
ステップS13では、所定のアルゴリズムに基づいてゲーム空間内のオブジェクトOB1〜OB3を移動させる。
【0053】
ステップS15では、タッチパネル15からの出力信号に基づいて、タッチパネル15にスティック16が接触しているかどうかを判定し、接触していない場合(例えば図5や図9の状態)はステップS17に進み、接触している場合(例えば図6〜図8の状態)にはステップS23に進む。
【0054】
ステップS17では、RAM24に格納されているドラッグ中フラグ41をオフにする。ステップS19では、オブジェクトOB1〜OB3の重心の座標を計算する。重心のX座標、Y座標、Z座標は、オブジェクトOB1〜OB3のX座標、Y座標、Z座標をそれぞれ平均した値となる。ステップS21では、ステップS19で算出された重心に仮想カメラVCの注視点を移動させる。具体的には、RAM24に格納されている仮想カメラの注視点座標40bを、ステップS19で算出された重心の座標で上書きする。なお、ステップS19で算出された重心が、その時点での注視点の位置から大きく離れている場合には、注視点が重心に徐々に近づくように、注視点座標40bを数回に分けて更新するようにしてもよい。ステップS21の後、ステップS35でゲーム画像を生成する。ステップS35で生成されたゲーム画像は、適宜のタイミングで第2のLCD12に表示される。ステップS37では、ゲームが終了したかどうかを判断し、ゲームが終了していなければステップS13に戻る。
【0055】
ステップS23では、カメラ設定値(視点座標40a、注視点座標40b、画角40c)を固定する。例えば、カメラ設定値の変更の可否を示すフラグが設けられている場合には、カメラ設定値の変更が禁止されるようにそのフラグを更新する。
【0056】
ステップS25では、タッチ座標42から指示座標を算出し、その算出結果をRAM24に格納する。ここでの指示座標の算出方法の一例を、図12を参照して説明する。タッチパネル15上の各点は、ゲーム空間における視体積内に設定される仮想面VSの各点に対応しており、タッチパネル座標系のタッチ座標をゲーム空間の仮想面VSに写像することによって、タッチ座標に対応する指示座標が算出される。例えば、図12において、タッチパネル15上の点A1,A1,C1,D1は、仮想面VS上の点A2,B2,C2,D2にそえぞれ対応する。なお、視体積とは、ゲーム空間のうちの描画対象となる空間であって、仮想カメラVCの位置、注視点の位置、画角、ニアクリッピング面、ファークリッピング面に応じて画定される空間である。
【0057】
なお、図12の例では、カメラ座標系において所定のZ座標を有する平面を仮想面VSとして規定しているが、これに限らず、視体積内の任意の面を仮想面VSとして規定してもよい。例えば、仮想面VSが曲面であってもよい。また、仮想面VSが視体積内のいずれかのオブジェクトの表面(例えば地面など)であってもよい。
【0058】
ステップS27では、ドラッグ中フラグ41がオンかどうかを判断する。ドラッグ中フラグ41がオフである場合(これは図6のようにタッチパネル15にスティック16が接触した直後であることを意味する)には、ステップS29で操作対象オブジェクトCT1をステップS25で算出された指示座標43に配置し、さらにステップS31でドラッグ中フラグをオンにした後、ステップS35に進む。これにより、図6のようにタッチ座標に対応する第2のLCD12の画面上の位置に操作対象オブジェクトCT1が表示されることとなる。
【0059】
一方、ステップS27でドラッグ中フラグ41がオンであると判断された場合(これは図7や図8のようにプレイヤがドラッグ操作中であることを意味する)には、ステップS33で、操作対象オブジェクトCT1をステップS25で算出された指示座標43に移動させた後、ステップS35に進む。これにより、図7や図8のように操作対象オブジェクトCT1がタッチ座標に対応する第2のLCD12の画面上の位置に移動することとなる。
【0060】
以上のように、本実施形態によれば、プレイヤがタッチパネル15を用いて操作対象オブジェクトをドラッグ操作している間はカメラ設定値が固定されるので、プレイヤは操作対象オブジェクトをゲーム空間内の所望の位置まですばやくかつ正確に移動させることができる。
【0061】
なお、本実施形態では、プレイヤがタッチパネル15を使って操作対象オブジェクトCT1をドラッグする例を説明したが、本発明はこれに限らず、プレイヤがタッチパネル15を使って3次元のゲーム空間内の所望の位置を指示する必要がある任意のゲームに本発明を適用することができる。例えば、サッカーゲームにおいてシュート方向(例えばゴールの右上隅)をプレイヤがタッチパネル15を使って指示する場合にも、本発明は有効である。この場合、プレイヤはまず、第2のLCD12にゴールが表示された時点でタッチパネル15上の任意の位置にスティック16を接触させ、続いて、スティック16をタッチパネル15に接触させたまま、スティック16の先端を、第2のLCD12に表示されているゴールの右上隅まで移動させた後、タッチパネル15からスティック16を離す。すると、タッチパネル15からスティック16を離す直前のタッチ座標に基づいてシュート方向が決定され、そのシュート方向へサッカー選手がシュートを放つこととなる。この場合にも、プレイヤがタッチパネル15にスティック16を接触させてから離すまでの間、カメラ設定値が固定されるため、その間にたとえゲームがリアルタイムに進行していたとしても、第2のLCD12に表示されているゴールの位置は固定されるため、プレイヤはシュート方向を正確に指示することが可能である。
【0062】
また、本実施形態では、図11のステップS19、S21のように、タッチパネル15にスティック16が接触していない状態において、仮想カメラVCの注視点が自動的に制御される例を説明したが、本発明はこれに限らず、タッチパネル15にスティック16が接触していない状態において、仮想カメラVCの位置が自動的に制御されてもよいし、仮想カメラVCの画角が自動的に制御されてもよいし、さらにはプレイヤのキー操作(操作スイッチ部14を用いた入力操作)に応じて仮想カメラVCの位置、注視点、画角が制御されてもよい。
【0063】
また、本実施形態では、プレイヤがタッチパネル15にスティック16を接触させたときに、図6のようにその直前の位置(SP2)で注視点を固定する例を説明したが、本発明はこれに限らない。例えば、プレイヤがタッチパネル15にスティック16を接触させたときに、その直前の注視点の位置によらず、予め決められた固定位置に注視点を固定するようにしてもよい。また、この場合において、その予め決められた固定位置が、プレイヤがタッチパネル15にスティック16を接触させる直前の注視点の位置から大きく離れている場合には、注視点が固定位置に徐々に近づくように、注視点座標40bを数回に分けて更新するようにしてもよい。
【0064】
なお、本実施形態では、プレイヤがタッチパネル15にスティック16を接触させたときに初めて操作対象オブジェクトがゲーム空間に出現するとしたが、本発明はこれに限らず、1つまたは複数の操作対象オブジェクトがゲーム空間に予め配置されていても構わない。この場合、例えば、プレイヤがタッチパネル15にスティック16を接触させたときに、その接触位置に対応する操作対象オブジェクトを特定し、特定された操作対象オブジェクトを、その後のドラッグ操作に応じて移動させるようにすればよい。
【0065】
なお、上記のように1つまたは複数の操作対象オブジェクトがゲーム空間に予め配置されている場合において、プレイヤがタッチパネル15にスティック16を接触させたときに、その接触位置に対応する第2のLCD12の画面上に操作対象オブジェクトが表示されているか否かに応じて、その後の処理を変化させるようにしてもよい。例えば、図13Aのようにボールを表す操作対象オブジェクトCT2が第2のLCD12に表示されているときに、スティック16を操作対象オブジェクトCT2の表示領域に接触させたときには、カメラ設定値を固定した上で図13Bのようにその後のドラッグ操作に応じて操作対象オブジェクトCT2を移動させ、スティック16を操作対象オブジェクトCT2の表示領域以外の場所(例えば図14AのようにオブジェクトOB2の足下)に接触させたときには、その場所に注視点を移動させるようにしてもよい。以下、図15を参照して、この場合のCPUコア21の処理の流れを説明する。なお、図15において省略されているステップについては図11と同様であるため、説明を省略する。
【0066】
図11のステップS15で、タッチパネル15にスティック16が接触していると判断された場合、CPUコア21は、図15のステップS41で、タッチ座標42から指示座標を算出し、その算出結果をRAM24に格納する。
【0067】
ステップS43では、ドラッグ中フラグがオンかどうかを判断し、ドラッグ中フラグがオフである場合(これはプレイヤがスティック16をタッチパネル15に接触させた直後であることを意味する)には、ステップS45で、視点座標40aと指示座標43を通る直線上に操作対象オブジェクトCT2が存在するかどうかを判断する。
【0068】
ステップS45でYESと判断された場合(これはプレイヤがスティック16を操作対象オブジェクトCT2の表示領域に接触させたことを意味する)には、ステップS47でカメラ設定値を固定した後、ステップS49でドラッグ中フラグをオンにし、図11のステップS35に進む。また、ステップS45でNOと判断された場合(これはプレイヤがスティック16を操作対象オブジェクトCT2の表示領域以外の場所に接触させたことを意味する)には、ステップS51で、タッチ座標42に応じて注視点を移動(すなわち注視点座標40bを更新)させた後、図11のステップS35に進む。
【0069】
一方、ステップS43でドラッグ中フラグがオンであると判断された場合(これはドラッグ操作中であることを意味する)には、ステップS53で、指示座標43に応じて操作対象オブジェクトCT2を移動(すなわち操作対象オブジェクトCT2の座標を更新)させた後、図11のステップS35に進む。
【0070】
なお、図14Bの例では、プレイヤがスティック16を操作対象オブジェクトCT2の表示領域以外の場所に接触させたときに、仮想カメラVCの注視点を指示座標まで移動させているが、本発明はこれに限らない。例えば、プレイヤがスティック16を操作対象オブジェクトCT2の表示領域以外の場所に接触させたときには、その入力操作を無視するようにしてもよい。また他の例として、その接触位置の周辺領域が拡大表示されるようにしてもよい。
【図面の簡単な説明】
【0071】
【図1】本発明の一実施形態に係るゲーム装置の外観図
【図2】ゲーム装置の内部構成図
【図3A】ゲーム空間の様子を示す図
【図3B】図3Aに対応するゲーム画面例
【図4A】ゲーム空間の様子を示す図
【図4B】図3Aに対応するゲーム画面例
【図5】スティックをタッチパネルに接触させる直前のゲーム画面例
【図6】スティックをタッチパネルに接触させた直後のゲーム画面例
【図7】ドラッグ操作中のゲーム画面例
【図8】スティックをタッチパネルから離す直前のゲーム画面例
【図9】スティックをタッチパネルから離した直後のゲーム画面例
【図10】RAM24のメモリマップ
【図11】ゲームプログラムに基づくCPUコア21の処理の流れを示すフローチャート
【図12】タッチパネルとゲーム空間内の仮想面との対応関係を示す図
【図13A】操作対象オブジェクトに触れる直前のゲーム画面例
【図13B】操作対象オブジェクトに触れた直後のゲーム画面例
【図14A】操作対象オブジェクト以外の部分に触れる直前のゲーム画面例
【図14B】操作対象オブジェクト以外の部分に触れた直後のゲーム画面例
【図15】変形例に係るCPUコア21の処理の流れを示すフローチャート
【図16A】従来のゲーム装置のゲーム画面例
【図16B】従来のゲーム装置のゲーム画面例
【符号の説明】
【0072】
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 レジスタ
40a 視点座標
40b 注視点座標
40c 画角
41 ドラッグ中フラグ
42 タッチ座標
43 指示座標
OB1〜OB3 犬を表すオブジェクト
VC 仮想カメラ
SP1〜SP5 仮想カメラの注視点
CT1 骨付き肉を表す操作対象オブジェクト
VS 仮想面
CT2 ボールを表す操作対象オブジェクト


【特許請求の範囲】
【請求項1】
3次元のゲーム空間に配置されたオブジェクトを、当該ゲーム空間内に定義された仮想カメラに基づいて、タッチパネルを設置した表示装置に表示するためのゲームプログラムであって、コンピュータに、
前記仮想カメラの位置、注視点、画角の少なくとも1つを示すカメラ設定値を変化させるカメラ制御ステップ、
前記カメラ設定値に基づいて前記オブジェクトを描画することによって、前記表示装置に表示すべきゲーム画像を生成するゲーム画像生成ステップ、
前記タッチパネルからの出力信号に基づいて当該タッチパネルへの接触位置を示すタッチ座標を検出するタッチ座標検出ステップ、
前記カメラ設定値が変化している途中で前記タッチ座標が検出されたときに、少なくとも前記タッチ座標が検出されなくなるまで当該カメラ設定値を変動しないように固定するカメラ固定ステップ、および
前記カメラ設定値が固定されている状態において前記タッチ座標が変化したときに、当該変化後のタッチ座標に対応するゲーム空間内の3次元座標を、プレイヤによる指示座標として順次算出する指示座標算出ステップを実行させるためのゲームプログラム。
【請求項2】
前記カメラ設定値が変化している途中で前記タッチ座標が検出されたときに、当該タッチ座標に対応するゲーム空間内の3次元座標に操作対象オブジェクトを配置する操作対象オブジェクト配置ステップ、および
前記指示座標算出ステップで順次算出される指示座標の変化に応じて前記操作対象オブジェクトを移動させる操作対象オブジェクト移動ステップをさらに前記コンピュータに実行させることを特徴とする、請求項1に記載のゲームプログラム。
【請求項3】
前記指示座標算出ステップは、前記タッチパネル上の各点を、前記ゲーム空間における視体積内に設定した所定面に写像することによって、タッチ座標検出ステップにおいて検出されたタッチ座標に対応する前記指示座標を算出することを特徴とする、請求項1に記載のゲームプログラム。
【請求項4】
前記カメラ制御ステップは、予め決められた計算式に基づいて単位時間ごとに前記カメラ設定値を変化させることを特徴とする、請求項1に記載のゲームプログラム。
【請求項5】
3次元のゲーム空間に配置されたオブジェクトを、当該ゲーム空間内に定義された仮想カメラに基づいて、タッチパネルを設置した表示装置に表示するためのゲームプログラムであって、コンピュータに、
前記仮想カメラの位置、注視点、画角の少なくとも1つを示すカメラ設定値を変化させる第1カメラ制御ステップ、
前記仮想カメラに基づいて前記オブジェクトを描画することによって、前記表示装置に表示すべきゲーム画像を生成するゲーム画像生成ステップ、
前記タッチパネルからの出力信号に基づいて当該タッチパネルへの接触位置を示すタッチ座標を検出するタッチ座標検出ステップ、
前記タッチ座標検出ステップにおいて検出されたタッチ座標に基づいて、当該タッチ座標に対応する前記表示装置の画面上の位置に操作対象オブジェクトが表示されているかどうかを判定するオブジェクト判定ステップ、
前記カメラ設定値が変化している途中で前記オブジェクト判定ステップにおいてタッチ座標に対応する前記表示装置の画面上の位置に操作対象オブジェクトが表示されていると判定されたときに、少なくとも前記タッチ座標が検出されなくなるまで当該カメラ設定値を変動しないように固定するカメラ固定ステップ、
前記カメラ設定値が固定されている状態において前記タッチ座標が変化したときに、当該変化後のタッチ座標に対応するゲーム空間内の3次元座標を、プレイヤによる指示座標として順次算出する指示座標算出ステップ、および
前記指示座標算出ステップで順次算出される指示座標の変化に応じてゲーム空間における前記操作対象オブジェクトの位置を更新する操作対象オブジェクト移動ステップを実行させるためのゲームプログラム。
【請求項6】
前記カメラ設定値が変化している途中で前記オブジェクト判定ステップにおいてタッチ座標に対応する前記表示装置の画面上の位置に操作対象オブジェクトが表示されていないと判定されたときに、前記タッチ座標に応じて前記カメラ設定値を変化させる第2カメラ制御ステップをさらに前記コンピュータに実行させることを特徴とする、請求項5に記載のゲームプログラム。
【請求項7】
前記カメラ制御ステップは、予め決められた計算式に基づいて単位時間ごとに前記カメラ設定値を変化させることを特徴とする、請求項5に記載のゲームプログラム。


【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13A】
image rotate

【図13B】
image rotate

【図14A】
image rotate

【図14B】
image rotate

【図15】
image rotate

【図16A】
image rotate

【図16B】
image rotate


【公開番号】特開2006−122519(P2006−122519A)
【公開日】平成18年5月18日(2006.5.18)
【国際特許分類】
【出願番号】特願2004−317253(P2004−317253)
【出願日】平成16年10月29日(2004.10.29)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】