3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラム
【構成】 ゲーム装置10はLCD14を含み、LCD14に関連してタッチパネル22が設けられる。LCD14には、オブジェクトを含むゲーム画面が表示される。プレイヤがスティック24を用いて、2次元表示される球体のオブジェクトを撫でるように操作(ストローク操作)すると、その操作に従ってオブジェクトが描画(回転)される。たとえば、プレイヤがオブジェクトの中心付近をストローク操作すると、3次元仮想空間において、オブジェクトは、その中心を原点として、X軸回りおよびY軸回りに回転される。また、プレイヤがオブジェクトの外周付近をストローク操作すると、3次元仮想空間において、オブジェクトは、その中心を原点として、X軸回り、Y軸回りおよびZ軸回りに回転される。
【効果】 実際に卓上に置かれた球体を転がしているような操作感を得ることができる。
【効果】 実際に卓上に置かれた球体を転がしているような操作感を得ることができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラムに関し、特にたとえば、操作者の操作に基づいて表示器に仮想3次元空間のオブジェクトを描画する、3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラムに関する。
【背景技術】
【0002】
この種の従来の3次元画像処理装置の一例が特許文献1に開示される。この特許文献1によれば、表示された3次元オブジェクトの向きをタッチパネルで操作することができる。具体的には、表示された3次元オブジェクトの一部をタッチした後、この3次元オブジェクトの一部を表示させる目標位置をさらにタッチする。すると、3次元オブジェクトが回転され、最初にタッチした3次元オブジェクトの一部が目標位置に移動する。また、このようなタッチ操作(いわゆる一点入力)を或る軌跡に沿って連続的に行うと、その軌跡に従って3次元オブジェクトが回転するように表示される。
【0003】
また、この種の従来の3次元画像処理装置の他の例が特許文献2に開示される。この特許文献2によれば、表示された3次元オブジェクトをタッチすると、このタッチした位置と画面中心の位置との関係から、3次元オブジェクトについての回転表示処理を実行するときの回転軸と回転方向を導き出す。したがって、タッチした画面上の位置によって3次元オブジェクトの回転が変化する。また、画面上の或る一点をタッチし続けると、3次元オブジェクトは回転し続ける。
【特許文献1】特開平5−189541号
【特許文献2】特開2004−259065号
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に開示される技術では、3次元オブジェクトの一部とその一部を移動させたい目標位置とをタッチして指定するようにしてあるため、3次元オブジェクトを直接タッチして回転させているような臨場感を得ることができない。また、この従来技術では、予め設定された回転行列または算出された回転行列によって3次元オブジェクトを回転させるようにしてあるため、回転後の画像が操作者の意図しない表示状態になってしまう恐れがあった。
【0005】
また、特許文献2に開示される技術では、画面をタッチするだけで3次元オブジェクトが回転するため、特許文献1に開示される技術と同様に、3次元オブジェクトを直接タッチして回転させているような臨場感を得ることができない。つまり、不自然な操作になってしまう。また、タッチの位置と画面の中心位置とから、3次元オブジェクトの回転軸および回転角度を算出するので、処理負担が大きくなってしまう。
【0006】
それゆえに、この発明の主たる目的は、新規な、3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラムを提供することである。
【0007】
この発明の他の目的は、3次元オブジェクトを現実に触れているかのような操作感を得ることができる、3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラムを提供することである。
【0008】
この発明のその他の目的は、3次元オブジェクトの描画処理の負担を軽減できる、3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラムを提供することである。
【課題を解決するための手段】
【0009】
請求項1の発明は、タッチパネル、タッチ入力検出手段、3次元画像描画手段、およびタッチ位置記憶手段を備える。タッチパネルは、表示器に関連して設けられる。タッチ入力検出手段は、タッチパネルへのタッチ入力を一定時間毎に検出する。3次元画像描画手段は、表示器の横方向および縦方向ならびに奥行き方向を軸として、タッチ入力に応じて、仮想3次元空間にオブジェクトを描画して表示器に表示する。そして、タッチ位置記憶手段は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶する。また、3次元画像描画手段は、第1描画手段および第2描画手段を含む。第1描画手段は、タッチ入力が有る状態が継続し、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画する。また、第2描画手段は、タッチ入力が有る状態が継続し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0010】
請求項1の発明では、3次元画像描画装置(10)は、表示器(14)に関連して設けられるタッチパネル(22)を備える。タッチ入力検出手段(42,S7)は、タッチパネルへのタッチ入力を一定時間毎に検出する。3次元画像描画手段(42,S19)は、表示器の横方向(X軸方向)および縦方向(Y軸方向)ならべに奥行き方向(Z軸方向)を軸として、タッチ入力に応じて、仮想3次元空間にオブジェクト(102)を描画して表示器に表示する。タッチ位置記憶手段(42,48,S13)は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置すなわちタッチ座標を記憶する。たとえば、3次元画像描画手段は、第1描画手段(42,S49,S53)および第2描画手段(42,S51,S53)を含む。第1描画手段は、たとえば、ドラッグ操作やストローク操作のようにタッチパネルを撫でるように操作するとき(以下、同様である。)、タッチ入力が有る状態(タッチオンの状態)が継続し、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画する。第2描画手段は、タッチオンの状態が継続し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0011】
請求項1の発明によれば、オブジェクトをストローク操作するとき、タッチ座標の変化に基づいてオブジェクトを描画するので、実際にオブジェクトに触れているかのような操作感を得ることができる。
【0012】
また、タッチ位置の変化を算出するだけなので、演算処理が少なく、オブジェクトの描画処理の負担を比較的軽減することができる。
【0013】
請求項2の発明は請求項1に従属し、タッチ位置の変化に基づいてオブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出手段、および第1所定範囲を、オブジェクトを表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、第2所定範囲を、第1所定範囲外であり、当該第1所定範囲を囲む領域に設定する領域設定手段をさらに備え、第1描画手段は、オブジェクト回転角度算出手段によって算出された回転角度で、オブジェクトを2軸の座標に基づいて回転させた画像を描画し、第2描画手段は、オブジェクト回転角度算出手段によって算出された回転角度で、オブジェクトを3軸の座標に基づいて回転させた画像を描画する。
【0014】
請求項2の発明では、回転角度算出手段(42,S45)は、タッチ位置の変化すなわちストローク操作の変位量に基づいて、オブジェクトを回転表示させる回転角度を算出する。領域設定手段(42,48,S5)は、第1所定範囲を、オブジェクトを表示器に表示した場合の当該オブジェクトの中心を含む領域に設定し、第2所定範囲を、第1所定範囲外であり、当該第1所定範囲を囲む領域に設定する。第1描画手段は、算出された回転角度で、オブジェクトを2軸の座標に基づいて回転させた画像を描画する。つまり、オブジェクトの中心付近をストローク操作する場合には、2軸の座標に基づいてオブジェクトを回転させる。また、第2描画手段は、算出された回転角度で、オブジェクトを3軸の座標に基づいて回転させた画像を描画する。つまり、オブジェクトの中心付近から外れた位置をストローク操作する場合には、3軸の座標に基づいてオブジェクトを回転させる。
【0015】
請求項2の発明によれば、仮想3次元空間に描画されるオブジェクトを回転操作するときに、実際にオブジェクトを回転操作しているような感覚を得ることができる。
【0016】
請求項3の発明は、表示器、タッチパネル、タッチ入力検出手段、タッチ位置記憶手段、回転角度算出手段、3次元画像描画手段およびゲームクリア判定手段を備えるゲーム装置である。表示器は、少なくともオブジェクトを表示する。タッチパネルは、表示器に関連して設けられる。タッチ入力検出手段は、タッチパネルへのタッチ入力を一定時間毎に検出する。タッチ位置記憶手段は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶する。回転角度算出手段は、タッチパネルへのタッチ位置の変化に基づいて、オブジェクトを回転させる角度を算出する。3次元画像描画手段は、表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想3次元空間に、タッチ入力に応じて、オブジェクトを表示するための視点情報と、オブジェクトに関連付けられたテクスチャとに基づいて、オブジェクトを描画して表示器に表示する。ゲームクリア判定手段は、テクスチャが、視点情報と所定の関係になったことに応じてゲームクリアであると判定する。そして、3次元画像描画手段は、タッチ入力が有る状態が継続し、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画し、タッチ入力が有る状態が継続し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0017】
請求項3の発明では、ゲーム装置(10)は、表示器(14)を備え、この表示器上にタッチパネル(22)が設けられる。タッチ入力検出手段(42,S7)は、タッチパネルへのタッチ入力を一定時間毎に検出する。タッチ位置記憶手段(42,48,S13)は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置すなわちタッチ座標を記憶する。回転角度算出手段(42,S45)は、タッチパネルへのタッチ位置の変化に基づいて、オブジェクトを回転させる角度(回転角度)を算出する。3次元画像描画手段(42,S19)は、表示器の横方向(X軸方向)および縦方向(Y軸方向)ならびに奥行き方向(Z軸方向)を軸として、タッチ入力に応じて、仮想3次元空間に、オブジェクトを表示するための視点情報(たとえば、視点の位置座標)と、オブジェクトに関連付けられたてテクスチャとに基づいて、オブジェクトを描画して表示器に表示する。ゲームクリア判定手段(42,S21,S23)は、テクスチャが、視点情報と所定の関係になったことに応じて(S23で“YES”)、ゲームクリアであると判定する。たとえば、3次元画像描画手段は、ドラッグ操作やストローク操作のようにタッチパネルを撫でるように操作するとき、タッチオンの状態が継続し、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画する。また、3次元画像描画手段は、タッチオンの状態が継続し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0018】
請求項3の発明においても、請求項1の発明と同様に、実際にオブジェクトに触れているかのような操作感を得ることができる。また、回転角度を算出するだけなので、処理負担を比較的軽減することができる。
【0019】
請求項4は、表示器、および当該表示器に関連して設けられるタッチパネルを備える3次元画像処理装置の3次元画像処理プログラムである。この3次元画像処理プログラムは、3次元画像処理装置のプロセサに、タッチ入力検出ステップ、3次元画像描画ステップ、およびタッチ位置記憶ステップを実行させる。タッチ入力検出ステップは、タッチパネルへのタッチ入力を一定時間毎に検出する。3次元画像描画ステップは、表示器の横方向および縦方向ならびに奥行き方向を軸として仮想3次元空間に、タッチ入力に応じてオブジェクトを描画して表示器に表示する。そして、タッチ位置記憶ステップは、タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶する。また、3次元画像描画ステップは、第1描画ステップおよび第2描画ステップを含む。第1描画ステップは、タッチ入力が有る状態が継続し、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画する。第2描画ステップは、タッチ入力が有る状態が継続し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0020】
請求項4の発明においても、請求項1の発明と同様に、実際にオブジェクトに触れているかのような操作感を得ることができる。
【0021】
請求項5の発明は請求項4に従属し、タッチ位置の変化に基づいてオブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出ステップ、および第1所定範囲を、オブジェクトを表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、第2所定範囲を、第1所定範囲外であり、当該第1所定範囲を囲む領域に設定する領域設定ステップをさらに実行させ、第1描画ステップは、オブジェクト回転角度算出ステップによって算出された回転角度で、オブジェクトを2軸の座標に基づいて回転させた画像を描画し、第2描画ステップは、オブジェクト回転角度算出ステップによって算出された回転角度で、オブジェクトを3軸の座標に基づいて回転させた画像を描画する。
【0022】
請求項5の発明においても、請求項2の発明と同様に、実際にオブジェクトを回転操作しているような感覚を得ることができる。
【0023】
請求項6の発明は、少なくともオブジェクトを表示する表示器および当該表示器に関連して設けられるタッチパネルを備えるゲーム装置のゲームプログラムである。このゲームプログラムは、ゲーム装置のプロセサに、タッチ入力検出ステップ、タッチ位置記憶ステップ、回転角度算出ステップ、3次元画像描画ステップ、およびゲームクリア判定ステップを実行させる。タッチ入力検出ステップは、タッチパネルへのタッチ入力を一定時間毎に検出する。タッチ位置記憶ステップは、タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶する。回転角度算出ステップは、タッチパネルへのタッチ位置の変化に基づいて、オブジェクトを回転させる角度を算出する。3次元画像描画ステップは、表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想3次元空間に、タッチ入力に応じて、オブジェクトを表示するための視点情報と、オブジェクトに関連付けられたテクスチャとに基づいて、オブジェクトを描画して表示器に表示する。そして、ゲームクリア判定ステップは、テクスチャが、視点情報と所定の関係になったことに応じてゲームクリアであると判定する。また、3次元画像描画ステップは、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0024】
請求項6の発明においても、請求項3の発明と同様に、実際にオブジェクトに触れているかのような操作感を得ることができる。また、回転角度を算出するだけなので、オブジェクトの描画処理を比較的少なくでき、ゲーム処理への負担を軽減することができる。
【発明の効果】
【0025】
この発明によれば、プレイヤがストローク操作するときのタッチ位置の変化に応じてオブジェクトを描画するので、タッチ入力に従ってオブジェクトを表示することができる。このため、操作者はオブジェクトに直接触れているかのような、新しい操作感を得ることができる。
【0026】
また、この発明によれば、タッチ位置の変化に基づいて回転角度を算出するだけなので、処理負担を軽減することができる。
【0027】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0028】
図1を参照して、この発明の一実施例であるゲーム装置10は、3次元画像処理装置として機能し、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0029】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0030】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。下側ハウジング16bもまた、横長の平面形状を有し、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
【0031】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0032】
操作スイッチ20は、方向指示スイッチ(十字スイッチ)20a,スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり、上側ハウジング16aとの連結部以外に当該連結部を挟むように、左右に配置される。
【0033】
方向指示スイッチ20aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ20bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0034】
動作スイッチ20dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。
【0035】
動作スイッチ(左押しボタン)20Lおよび動作スイッチ(右押しボタン)20Rは、プッシュボタンで構成され、左押しボタン(Lボタン)20Lおよび右押しボタン(Rボタン)20Rは、Aボタン20dおよびBボタン20eと同様の操作に用いることができ、また、Aボタン20dおよびBボタン20eの補助的な操作に用いることができる。
【0036】
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたりすることにより操作すると、スティック24等の操作位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
【0037】
この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出精度もLCD14の表示面に対応して256dot×192dotとしてある。ただし、タッチパネル22の検出精度はLCD14の表示面の解像度よりも低くてもよく、高くてもよい。
【0038】
また、この実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(収納穴)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
【0039】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは下端(底面)に設けられる挿入口30から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード28にアクセス可能となる。
【0040】
なお、図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部にはスピーカ32(図2参照)が設けられる。
【0041】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0042】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるととともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出カインターフエース回路(以下、「I/F回路」という。)54およびLCDコントローラ60が接続される。
【0043】
コネコタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0044】
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)データおよびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0045】
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたゲームプログラムを実行する。また、CPUコア42は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM48に記憶しつつゲーム処理を実行する。
【0046】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM48に記憶(ロード)される。
【0047】
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
【0048】
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。なお、CPUコア42は、描画に必要な画像データをGPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして描画のためのゲーム画像データを作成し、GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成する。
【0049】
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。また、LCDコントローラ60は、レジスタ62のデータ値が「1」である場合には、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
【0050】
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接ゲーム画像データを読み出したり、GPU50およびGPU52を介してVRAM56およびVRAM58からゲーム画像データを読み出したりする。
【0051】
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22からの座標データがI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32から出力する。
【0052】
図3(A)および図3(B)は、この実施例のゲーム装置10のLCD14に表示されるゲーム画面の例を示す図解図である。図3(A)には、LCD14に表示されるゲーム画面100が示され、このゲーム画面100の中央には、円形のオブジェクト102が表示される。ただし、LCD14に表示されるゲーム画面100は2次元画像であるため、オブジェクト102は円形で示されるが、3次元仮想空間(ゲーム空間)においては球体(ボール)である(図4および図5参照)。また、オブジェクト102の表面には、その所定位置に、特定のキャラクタの画像(たとえば、顔画像)104が表示される。
【0053】
たとえば、操作者(以下、「プレイヤ」という。)は、タッチパネル22上で、スティック24を撫でるように操作(ドラッグ操作,ストローク操作)することにより、オブジェクト102を回転させ、オブジェクト表面に表示された(貼り付けられた)特定のキャラクタの顔画像104が、プレイヤ自身に見えるように表示させる。図3(A)および図3(B)では、分かり易く示すため、特定のキャラクタ以外のキャラクタは図示していないが、実際には、他のキャラクタも含めて表示される場合もある。このときには、プレイヤが、制限時間内に、全てのキャラクタの中で、特定のキャラクタの顔画像104を見えるように、オブジェクト102を回転させると、つまり図3(B)に示すような状態にすることができると、ゲームクリアとなる。一方、制限時間内に、特定のキャラクタの顔画像104が見えるように、オブジェクト102を回転させることができない場合には、ゲームオーバとなる。
【0054】
図4は、オブジェクト102、視点(仮想カメラ)、仮想スクリーン(LCD14)およびタッチパネル22の位置関係を観念的に示す図解図である。この図4に示すように、仮想スクリーン(LCD14)と視点(仮想カメラ)との間にタッチパネル22が設けられる。LCD14には、視点から見たオブジェクト102を含む3次元の画像(仮想カメラで撮影された画像)が、2次元の仮想スクリーンに投影され、投影された画像(投影画像)が図3(A)または図3(B)に示したようなゲーム画面100として表示される。したがって、上述したように、ゲームクリアか否かを判定する場合には、視点の位置座標(視点情報)側に、顔画像104が向いているか否かを判断するようにしてある。厳密には、顔画像104を貼り付けたオブジェクト102の表面上の所定位置が座標(Z値)に基づいて、顔画像104が視点側に向いているか否かを判断するようにしてある。
【0055】
なお、図示は省略するが、たとえば、LCD12には、ステージ毎の制限時間を示すタイマが表示されるとともに、ゲームクリアまたはゲームオーバになったときに、そのことを示すテキスト等が表示される。たとえば、タイマは、制限時間をカウントダウンするように表示される。また、クリアした面(ステージ)の数も表示するようにしてもよい。ただし、これらは、LCD14に表示されてもよい。
【0056】
上述したように、この実施例では、プレイヤが、スティック24を用いて、LCD14に表示されるオブジェクト102を回転させるように、タッチパネル22上でドラッグ操作またはストローク操作(以下、「ストローク操作」という。)すると、そのストローク操作に従ってオブジェクト102が回転され、その様子がLCD14に表示される。
【0057】
ここで、たとえば、実際の球体(ボール)を卓上で転がすとき、ボールを上から見て、その中心を指で触れつつ、上下または左右に転がすと、ボールは指の動きに従って、上下または左右に真っ直ぐ転がる。しかし、指がボールの中心から外れると、ボールに横回転が加わるため、上下または左右に真っ直ぐ転がらなくなる。
【0058】
このような、操作感を実現するため、この実施例では、プレイヤがストローク操作したオブジェクト102上の位置に応じて、異なるオブジェクト描画(回転)処理を実行するようにしてある。たとえば、図5の(i)で示すように、スティック24を(1)と(2)とで示す範囲でストローク操作した場合には、図6(A)に示すように、オブジェクト102を描画するマトリックス(3次元仮想空間)のx成分およびy成分だけを変化させる。また、図5の(ii)で示すように、スティック24を(2)と(3)とで示す範囲でストローク操作した場合には、図6(B)に示すように、オブジェクト102を描画するマトリックスのx成分、y成分およびz成分すべてを変化させる。
【0059】
この実施例では、2次元画像のオブジェクト102は、図3に示したように、その中心がLCD14(およびタッチパネル22)の中心と一致するように、LCD14に表示される。また、LCD14に表示されたオブジェクト102に対して、操作有効領域が設定される。ここで、操作有効領域とは、オブジェクト102をタッチしたか否かを判断するための領域であり、オブジェクト102の表示位置に対応して、タッチパネル22に設定される。具体的には、オブジェクト102の表示領域に対応するタッチパネル22の座標群(座標データ群)がRAM48に記憶される。ここで、座標は、LCD14の表示面およびタッチパネル22の検出面のdotに対応する。また、上述したように、LCD14の表示面のdot数とタッチパネル22の検出面のdot数とは同じにしてあるため、オブジェクト102の表示位置(表示領域)に対応して、操作有効領域を容易に設定することができる。
【0060】
この実施例では、図6(C)に示すように、操作有効領域は、オブジェクト102の中心を含む第1所定範囲(第1領域)112と、第1領域112以外の第2所定範囲(第2領域)114とに分割される。これは、プレイヤがオブジェクト102をストローク操作する場合には、オブジェクト102上を操作すると考えられるため、第1領域112内をストローク操作しているかどうかを判断するだけで、上述したような、異なる描画処理を選択的に実行するためである。
【0061】
ただし、第1領域112の大きさ(範囲)は、オブジェクト102の大きさ等によって、ゲームのプログラマないし開発者が予め設定する。
【0062】
したがって、プレイヤが第1領域112内をストローク操作する場合には、図6(A)に示したように、オブジェクト102をX軸回りとY軸回りとで回転させる。また、プレイヤが第2領域114内すなわち第1領域外をストローク操作する場合には、図6(B)に示したように、オブジェクト102をX軸回り、Y軸回りおよびZ軸回りに回転させる。
【0063】
ここで、オブジェクト102を回転させる角度(回転角度)θは、現在のフレーム(現フレーム)のタッチ座標(x1,y1)とその1フレーム前のフレーム(前フレーム)のタッチ座標(x2,y2)との差分(Δx,Δy)を検出し、その差分に基づいて算出する。具体的には、数1に従って、回転角度θが算出される。ただし、タッチ座標は、タッチパネル22から入力された座標データが示す座標である。
【0064】
[数1]
θ=tan−1(Δx/Δy)
Δx=x2−x1
Δy=y2−y1
このように算出された回転角度θがオブジェクト102を描画するためのマトリックス(3次元座標)の各軸に設定され、オブジェクト102が、その中心を原点として、2つの軸(X軸およびY軸)または3つの軸(X軸,Y軸およびZ軸)回りに、回転される。その様子が仮想カメラで撮影され、したがって、2次元画像に変換されたオブジェクト102がLCD14に表示される。
【0065】
ただし、プレイヤが第1領域112と第2領域114との境界でストローク操作する場合には、つまり現フレームのタッチ座標および前フレームのタッチ座標のいずれか一方が第1領域112内であり、他方が第2領域114内である場合には、現フレームのタッチ座標が第1領域112内であれば、2つの軸回りにオブジェクト102を回転させ、逆に、現フレームのタッチ座標が第1領域112外であれば、3つの軸回りにオブジェクト102を回転させるようにしてある。
【0066】
図7は、ゲーム装置10に設けられるRAM48のメモリマップの例を示す図解図である。この図7を参照して、RAM48は、プログラム記憶領域480およびデータ記憶領域482を含む。プログラム記憶領域480はゲームプログラムを記憶し、このゲームプログラムは、ゲームメイン処理プログラム480a、タッチ入力検出プログラム480b、座標変化算出プログラム480c、回転角度算出プログラム480d、タッチ座標判定プログラム420e、オブジェクト(3次元画像)描画プログラム480f、経過時間カウントプログラム480gおよびゲームクリア判定プログラム480h等によって構成される。
【0067】
ゲームメイン処理プログラム480aは、当該ゲーム装置10で実行されるゲーム(仮想ゲーム)のメインルーチンを処理するためのプログラムである。タッチ入力検出プログラム420bは、一定時間(1フレーム:画面更新単位時間)毎に、タッチ入力の有無(タッチオン/タッチオフ)を検出し、後述するタッチ入力フラグの482cのオン(成立)/オフ(不成立)を制御するとともに、タッチ入力が有る場合に、そのタッチ入力によりタッチパネル22から入力された座標データをデータ記憶領域482に記憶するためのプログラムである。
【0068】
座標変化算出プログラム480cは、タッチオンの状態が現フレームと直前のフレームとで連続するとき、その2つのフレームで検出された座標の変化、すなわちΔxとΔyとを算出するためのプログラムである。回転角度算出プログラム)480dは、座標変化算出プログラム480cに従って算出された座標の変化(Δx,Δy)に基づいて、オブジェクト102を回転させる回転角度を数1に従って算出するためのプログラムである。タッチ座標判定プログラム480eは、タッチ入力検出プログラム480bに従って検出されたタッチ位置がオブジェクト102に設定された第1領域112または第2領域114に含まれるか否かを判定するためのプログラムである。
【0069】
オブジェクト(3次元画像)描画処理プログラム480fは、後述するオブジェクトデータ482bを用いて、オブジェクト102や他のオブジェクトを描画するためのプログラムである。経過時間カウントプログラム480gは、図2では省略した内部タイマのカウント値を取得して、各ステージにおけるゲームプレイの経過時間をカウントするためのプログラムである。つまり、画面表示されたタイマをカウントダウンする。ゲームクリア判定プログラム480hは、ステージをクリアしたかどうかを判定するためのプログラムである。この実施例では、制限時間内に、オブジェクト102に貼り付けられた特定のキャラクタの顔画像104がプレイヤに見えるように、つまり仮想カメラによって顔画像104が撮影されるように、当該オブジェクト102を回転させると、ゲームクリアと判定される。ただし、顔画像104がプレイヤに見えることなく、制限時間を超えると、つまりタイムアップしてしまうと、ゲームオーバと判定される。
【0070】
なお、図示は省略するが、プログラム記憶領域480には、音再生プログラムやバックアッププログラムなども記憶される。音再生プログラムは、ゲームに必要な音(音楽)を再生するためのプログラムである。また、バックアッププログラムは、プレイヤの指示や所定のイベントに従って、ゲームの途中データや結果データをメモリカード28のRAM28bに記憶(セーブ)するためのプログラムである。
【0071】
データ記憶領域482には、タッチ座標バッファ482aが設けられる。タッチ座標バッファ482aは、少なくとも2フレーム分の座標データを記憶可能な領域を有し、タッチ入力検出プログラム480bに従って検出された座標データを記憶する。この実施例では、タッチ座標バッファ482aは、現フレームの座標データと前フレームの座標データとを記憶する。また、データ記憶領域482には、オブジェクトデータ482bが記憶される。オブジェクトデータ482は、ポリゴンデータ、位置データ(3次元座標のデータ)およびテクスチャデータを含む。
【0072】
さらに、データ記憶領域482には、タッチ入力フラグ482cが記憶される。タッチ入力フラグ482cは、上述したように、タッチ入力検出プログラム480bに従ってオン/オフされる。この実施例では、タッチ入力フラグ482cは、1ビットのレジスタによって構成され、タッチ入力がオンされると、レジスタデータ値が「1」に設定され、タッチ入力がオフされると、レジスタのデータ値が「0」に設定される。
【0073】
さらにまた、データ記憶領域482には、操作有効領域482dが記憶(設定)される。操作有効領域は、上述したように、第1領域112および第2領域114に対応する座標群のデータ(座標データ群)である。ただし、上述したように、この実施例では、プレイヤのスクロール操作が第1領域112に含まれるか否かを判別するようにしてあるだけなので、第1記憶領域112に対応する座標データ群のみを記憶するようにしてもよい。
【0074】
なお、図示は省略するが、データ記憶領域482には、ゲームに必要な音を出力するための音(音楽)データやゲームの進行に伴って発生するデータ(ゲームの途中データ,結果データ)やフラグ(イベントフラグ)なども記憶される。
【0075】
具体的には、上述したような動作を、図2に示したCPUコア42が図8および図9に示すフロー図に従って実行する。図8を参照して、CPUコア42はゲーム処理を開始すると、ステップS1で、初期設定する。具体的には、データ記憶領域482のバッファ領域やフラグをリセットしたりなどする。また、内部タイマをリセットおよびスタートし、制限時間のカウントを開始する。さらに、ゲームを前回の続きから開始する場合には、メモリカード28のRAM28bからゲームデータをロードする。
【0076】
続くステップS3では、オブジェクト102を初期状態で描画する。つまり、オブジェクトデータ482bを用いて、オブジェクト102を3次元仮想空間の所定位置(初期位置)に描画し、LCD14に表示する。このとき、オブジェクト102の表面の所定位置に顔画像104のテクスチャが貼り付けられる。ただし、ゲームを最初から開始した場合には、第1ステージについてのオブジェクト102が描画され、ゲームを続きから開始した場合には、当該続きのステージについてのオブジェクト102が描画される。なお、ステップS3では、後述するように、ゲーム終了判断(S29)において、ゲームクリアした後にゲーム終了と判断されない場合には、次のステージについてのオブジェクト102が描画され、ゲームオーバした後にゲーム終了と判断されない場合には、同じステージについてのオブジェクト102が描画される。そして、ステップS5では、オブジェクト102の操作有効領域、すなわち第1領域112および第2領域114を設定する。ただし、上述したように、この実施例では、第1領域112に対応する座標データ群をデータ記憶領域482に記憶する。
【0077】
続いて、ステップS7では、タッチ入力を検出する。具体的には、タッチパネル22から入力される座標データを検出する。次のステップS9では、タッチ入力があるかどうか、すなわち、座標データが入力されたかどうかを判断する。ステップS9で“NO”であれば、つまりタッチパネル22から座標データが入力されていなければ、タッチ入力が無い(タッチオフ)と判断し、ステップS11で、タッチ入力フラグ482cをオフして、図9に示すステップS21に進む。
【0078】
しかし、ステップS9で“YES”であれば、つまりタッチパネル22から座標データが入力されていれば、タッチ入力が有る(タッチオン)と判断し、ステップS13で、タッチ入力が示すタッチ座標(座標データ)をデータ記憶領域482の座標バッファ482aに記憶(一時記憶)し、ステップS15で、タッチ入力フラグ482cがオンかどうかを判断する。ステップS15で“NO”であれば、つまりタッチ入力フラグ482cがオフであれば、タッチオフの状態からタッチオンの状態に変化しているため、ストローク操作でないと判断し、ステップS17で、タッチ入力フラグ482cをオンして、ステップS21に進む。一方、ステップS15で“YES”であれば、つまりタッチ入力フラグ482cがオンであれば、タッチオンの状態が継続しているため、ストローク操作であると判断し、ステップS19で、後述するオブジェクト描画処理(図10参照)を実行してから、ステップS21に進む。
【0079】
図9に示すステップS21では、制限時間が経過したかどうかを判断する。つまり、タイムアップしたかどうかを判断する。ステップS21で“YES”であれば、つまり制限時間が経過すれば、ステップS27で、ゲームオーバ処理を実行して、ステップS29に進む。たとえば、ステップS27では、ゲームオーバになったことを表現するゲーム画面をLCD14(または、LCD12)に表示し、その後、ゲームを続行するか否かを選択するための選択画面を同じくLCD14(または、LCD12)に表示する。
【0080】
しかし、ステップS21で“NO”であれば、つまり制限時間が経過していなければ、ステップS23で、所定のテクスチャが視点側に存在するかどうかを判断する。この実施例では、上述したように、特定のキャラクタの顔画像104が仮想カメラ側に存在するかどうかを判断する。ステップS23で“NO”であれば、つまり所定のテクスチャが視点側に存在しない場合には、そのまま図8に示したステップS7に戻る。一方、ステップS23で“YES”であれば、つまり所定のテクスチャが視点側に存在する場合には、ステップS25で、ゲームクリア処理を実行して、ステップS29に進む。たとえば、ステップS25では、ゲームクリアしたことを表現するゲーム画面をLCD14(または、LCD12)に表示し、その後、次のステージに進むか否かを選択するための選択画面を同じくLCD14(または、LCD12)に表示する。また、プレイヤのレベルやライフを増加(上昇)させるなども処理を行うようにしてもよい。ただし、すべてのステージをクリアした場合には、エンドロール表示などが実行される。
【0081】
ステップS29では、ゲーム終了かどうかを判断する。具体的には、プレイヤによってゲーム終了の指示が入力されたり、ゲームオーバになったりしたかを判断する。ステップS29で“NO”であれば、つまりゲーム終了でなければ、図8に示したステップS1に戻る。一方、ステップS29で“YES”であれば、つまりゲーム終了であれば、ゲーム処理を終了する。
【0082】
なお、この図8および図9で示すゲーム処理のスキャンタイムは、一定時間(1フレーム期間)であり、したがって、タッチ入力検出の処理(S7)は一定時間毎に実行される。
【0083】
図10は、図8に示したステップS19のオブジェクト描画処理を示すフロー図である。この図10を参照して、CPUコア42はオブジェクト描画処理を開始すると、ステップS41で、前フレームおよび現フレームのタッチ座標(座標データ)をタッチ座標バッファ482aから読み出す。続くステップS43では、前フレームのタッチ座標と現フレームのタッチ座標との変化値(Δx,Δy)を算出する。次に、ステップS45では、オブジェクト102の回転角度θを数1に従って算出する。
【0084】
そして、ステップS47で、現フレームのタッチ座標が第1領域112内であるかどかを判断する。ステップS47で“YES”であれば、つまり現フレームのタッチ座標が第1領域112内である場合には、ステップS49で、オブジェクト描画用のマトリックス(3次元座標)のx成分およびy成分の回転角度に、ステップS45で算出した回転角度θをセットして、ステップS53に進む。
【0085】
しかし、ステップS47で“NO”であれば、つまり現フレームのタッチ座標が第2領域114内である場合には、ステップS51で、オブジェクト描画用マトリックス(仮想3次元空間)のx成分,y成分,z成分の回転角度に、ステップS45で算出した回転角度をセット(設定)して、ステップS53に進む。
【0086】
なお、この実施例では、ステップS47で、現フレームのタッチ座標が第1領域112内であるか否かを判断するようにしてあるが、前フレームのタッチ座標が第1領域112内であるか否かを判断するようにしてもよい。
【0087】
ステップS53では、オブジェクト102の回転描画処理を実行する。つまり、ステップS49またはステップS51で、セットされた回転角度θに従って、3次元仮想空間において、2つの軸回り(X軸回りおよびY軸回り)、または3つの軸回り(X軸回り,Y軸回りおよびZ軸回り)に、オブジェクト102を回転させる。続くステップS55では、テクスチャ貼付処理を実行する。ここでは、上述したように、オブジェクト102の表面の所定位置を中心に、特定のキャラクタの顔画像104についてのテクスチャが貼り付けられる。
【0088】
続いて、ステップS57で、視点変換処理を実行する。つまり、3次元仮想空間(ゲーム空間)が、視点(仮想カメラ)位置が中心(原点)となるように、座標(X軸,Y軸,Z軸)を変換(回転および平行移動)するのである。そして、ステップS59では、投影変換処理を実行して、オブジェクト描画処理をリターンする。つまり、ステップS59では、仮想スクリーンに、視点(仮想カメラ)から見た3次元仮想空間が投影される。これにより、視点から見た3次元仮想空間が2次元のゲーム画像に変換され、したがって、上述したようなゲーム画面100がLCD14に表示される。
【0089】
この実施例によれば、オブジェクトの回転をストローク操作により行うことができ、また、ストローク操作するオブジェクト上の領域ないし位置が中心付近とそれ以外とで、異なる回転処理を行うので、実際のオブジェクトを転がしているかのような新しい操作感を得ることができる。
【0090】
また、ストローク操作によるタッチ座標の変化量に基づいて回転角度を算出するだけなので、比較的処理負担を少なくでき、ゲーム処理への負担を軽減することができる。
【0091】
なお、この実施例では、連続2フレームのタッチ座標の変化量に基づいて回転角度を算出するようにしたが、連続する3フレーム以上のタッチ座標の変化量に基づいて回転角度を算出するようにしてもよい。ただし、連続するフレーム数が増えるに従って、オブジェクトの回転(移動)量が大きくなり、表示が煩雑になるため、臨場感を喪失しない程度にフレーム数を設定する必要がある。
【0092】
また、この実施例では、球体のオブジェクトをLCDの表示する場合について説明したが、他の形状のオブジェクトを表示するようにしてもよい。
【0093】
さらに、この実施例では、2つのLCDを設けて2つのゲーム画面を表示する場合について説明したが、1つのLCDを設けて、これに対応してタッチパネルを設けておき、当該LCDに1つのゲーム画面を表示するようにしてもよい。
【0094】
さらにまた、この実施例では、2つのLCDを設けたゲーム装置について説明したが、1つのLCDの表示領域を2つに分割し、少なくともいずれか一方の表示領域に対応してタッチパネルを設けるようにしてもよい。この場合、縦長のLCDを設ける場合には、縦に2つ表示領域が並ぶようにLCDの表示領域を分割し、横長のLCDを設ける場合には、横に2つの表示領域が並ぶようにLCDの表示領域を分割するようにすればよい。
【0095】
以上は本発明の一実施例(第1実施例)であるが、他の実施例も種々考えられる。以下には、本発明の他の実施例(第2実施例)について説明することにする。
【0096】
第2実施例のゲーム装置10は、1または2以上のオブジェクト102をLCD14の任意の位置に表示し、当該オブジェクト102の各々に対して操作有効領域を設定するようにした以外は、上述の第1実施例と同じであるため、重複した説明は省略する。
【0097】
図11(A)は、第2実施例のオブジェクト102に対して設定される操作有効領域を示す図解図である。図11(A)を参照して分かるように、第1領域112は、第1実施例で説明したように、オブジェクト102の中心を含む所定範囲に設定される。ただし、第2領域114は、第1領域112の外側であり、当該第1領域112を囲むように、リング(輪)状に設定される。第1領域112の大きさ(範囲)が、オブジェクト102の大きさ等によって、ゲームのプログラマないし開発者が予め設定される点は、第1実施例と同じである。また、第2領域114は、オブジェクト102および第1領域112の大きさ(範囲)に応じて、同様に適宜設定される。
【0098】
なお、第2領域112がオブジェクト102よりも少しはみ出すように設定してあるのは、プレイヤがオブジェクト102の外周部分をスティック24等でスクロール操作した場合であっても、当該オブジェクト102を回転するように表示させるためである。
【0099】
このように、第2実施例では、第1領域112および第2領域114を、1のオブジェクト102の位置(3次元空間における位置または、それに基づいて算出される表示位置)に対応して設定するようにしたので、図11(B)に示すように、オブジェクト102をLCD14(または、ゲーム画面100)の任意の位置に表示することができるようになる。また、図11(C)に示すように、複数(ここでは、3つ)のオブジェクト102をLCD14(の任意の位置)に表示することもできる。また、図11(C)から分かるように、オブジェクト102の大きさは自由に設定することができる。したがって、1つのオブジェクト102をLCD14の任意の位置に表示する場合には、第1実施例で示した操作有効領域482dには、第1領域112および第2領域114の各々についての座標データ群(第1領域112および第2領域114それぞれに対応する、3次元空間における所定範囲の位置座標のデータ、または座標データの範囲にかかる情報データ)が記憶される。また、複数のオブジェクト102をLCD14に表示する場合には、各オブジェクト102について、第1領域112および第2領域114の座標データ群が記憶されるのである。
【0100】
このように、オブジェクト102毎に操作有効領域を設定しておけば、プレイヤが指示(タッチ入力)している1つのオブジェクト102をタッチ位置に基づいて、対応する3次元空間の座標を算出することにより判別することができる。したがって、たとえば、複数のオブジェクトを表示する場合には、制限時間内に、各オブジェクト102に貼り付けられた特定のキャラクタの顔画像104を、すべてプレイヤに見えるようにオブジェクト102を回転させることができれば、ゲームクリアと判定することができる。一方、制限時間内に、各オブジェクト102に貼り付けられた特定のキャラクタの顔画像104を、すべてプレイヤに見えるようにオブジェクト102を回転させることができなければ、つまりいずれか1つの顔画像104でもプレイヤに見えるようにオブジェクト102を回転させることができなければ、ゲームオーバと判定することができる。
【0101】
また、たとえば、複数のオブジェクトのいずれか1つに特定のキャラクタの顔画像104を貼り付けておき、制限時間内に、当該オブジェクト102の顔画像104をプレイヤに見えるように回転させることができたときに、ゲームクリアと判定することもできる。かかる場合には、制限時間内に、当該オブジェクト102の顔画像104をプレイヤに見えるように回転させることができないとき、ゲームオーバと判定される。
【0102】
このように、第2実施例では、上述の実施例で示したゲームよりも難易度(レベル)の高いゲームを楽しむことが可能である。
【0103】
なお、1つのオブジェクト102をLCD14に表示する場合のゲームクリアまたはゲームオーバの判定は、第1実施例で示した場合と同じである。
【0104】
また、第2実施例では、第1実施例で示したオブジェクト描画処理(図10参照)と同様のオブジェクト描画処理(図12参照)が実行されるのであるが、2以上のオブジェクト102がLCD14に表示される場合には、各オブジェクト102についてオブジェクト描画処理(図12)が実行される。
【0105】
なお、図8および図9を用いて説明したゲーム処理は、第2実施例においても略同じであるため、重複した説明は省略する。第1実施例と異なるのは、ステップS3において、2以上のオブジェクト102が描画されることがある点、および、2以上のオブジェクト102が描画される場合には、ステップS5において、各オブジェクトについて操作有効領域が設定される点である。また、2以上のオブジェクト102が描画される場合には、ゲームクリアまたはゲームオーバの判定処理(S21,S23)が、上述したように、第1実施例とは少し異なる。
【0106】
図12は、第2実施例のオブジェクト描画処理を示すフロー図である。上述したように、このオブジェクト描画処理は、第1実施例のオブジェクト描画処理とは略同じであるため、重複した説明は省略する。また、図12においては、第1実施例と同じ処理については、同じ参照符号を付してある。さらに、図面の都合上、図10に示したオブジェクト描画処理と同じ処理の一部については、図示を省略してある。
【0107】
図12を参照して、CPUコア42がオブジェクト描画処理を開始し、ステップS41〜S45の処理を実行すると、ステップS46で、前フレームのタッチ座標および現フレームのタッチ座標(2つのタッチ座標)が、第1領域112または第2領域114に含まれるか否か(対応しているか否か)を判断する。つまり、プレイヤが操作有効領域内でストローク操作したか否かを判断する。ステップS46で“NO”であれば、つまり2つのタッチ座標のいずれか一方または両方が第1領域112または第2領域114に含まれない場合には、そのままオブジェクト描画処理をリターンする。一方、ステップS46で“YES”であれば、つまり2つのタッチ座標が第1領域112または第2領域114に含まれる(対応する)場合には、ステップS47に進む。ステップS47以降の処理は、第1実施例と同じであるため、重複した説明は諸略する。
【0108】
第2実施例においても、第1実施例と同様に、実際にオブジェクトに触れているかのような操作感を得ることができ、オブジェクトの描画処理の処理負担も軽減できる。
【0109】
また、第2実施例では、オブジェクトに対する操作有効領域の設定範囲をオブジェクトの表示領域と略同じ範囲(大きさ)に設定するので、1または2以上のオブジェクトを任意の位置に表示することができ、各オブジェクトをプレイヤのストローク操作によって回転させることができる。
【図面の簡単な説明】
【0110】
【図1】図1はこの発明のゲーム装置の一例を示す図解図である。
【図2】図2は図1に示すゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1に示すゲーム装置に設けられる第2のLCDの表示例を示す図解図である。
【図4】図4はこの実施例の仮想3次元空間、視点、第2のLCD(仮想スクリーン)およびタッチパネルの位置関係を概念的に示す図解図である。
【図5】図5は3次元仮想空間に配置されるオブジェクトおよび2次元画像のオブジェクトをタッチパネル上でストローク操作する様子を示す図解図である。
【図6】図6は図5に示すストローク操作に応じてオブジェクトを回転させる例を示す図解図および2次元画像のオブジェクトに対して設定される操作有効領域を示す図解図である。
【図7】図7は図2に示すゲーム装置に内蔵されるRAMのメモリマップを示す図解図である。
【図8】図8は図2に示すCPUコアのゲーム処理の一部を示すフロー図である。
【図9】図9は図8のフロー図に後続するゲーム処理の他の一部を示すフロー図である。
【図10】図10は図2に示すCPUコアのオブジェクト描画処理を示すフロー図である。
【図11】この発明の他の実施例においてオブジェクトに対して設定される操作有効領域およびゲーム画面の例を示す図解図である。
【図12】他の実施例のCPUコアのオブジェクト描画処理を示すフロー図である。
【符号の説明】
【0111】
10 …ゲーム装置
12,14 …LCD
16,16a,16b …ハウジング
20 …操作スイッチ
22 …タッチパネル
24 …スティック
28 …メモリカード
28a …ROM
28b,48 …RAM
40 …電子回路基板
42 CPUコア
50,52 …GPU
54 …I/F回路
56,58 …VRAM
60 …LCDコントローラ
【技術分野】
【0001】
この発明は3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラムに関し、特にたとえば、操作者の操作に基づいて表示器に仮想3次元空間のオブジェクトを描画する、3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラムに関する。
【背景技術】
【0002】
この種の従来の3次元画像処理装置の一例が特許文献1に開示される。この特許文献1によれば、表示された3次元オブジェクトの向きをタッチパネルで操作することができる。具体的には、表示された3次元オブジェクトの一部をタッチした後、この3次元オブジェクトの一部を表示させる目標位置をさらにタッチする。すると、3次元オブジェクトが回転され、最初にタッチした3次元オブジェクトの一部が目標位置に移動する。また、このようなタッチ操作(いわゆる一点入力)を或る軌跡に沿って連続的に行うと、その軌跡に従って3次元オブジェクトが回転するように表示される。
【0003】
また、この種の従来の3次元画像処理装置の他の例が特許文献2に開示される。この特許文献2によれば、表示された3次元オブジェクトをタッチすると、このタッチした位置と画面中心の位置との関係から、3次元オブジェクトについての回転表示処理を実行するときの回転軸と回転方向を導き出す。したがって、タッチした画面上の位置によって3次元オブジェクトの回転が変化する。また、画面上の或る一点をタッチし続けると、3次元オブジェクトは回転し続ける。
【特許文献1】特開平5−189541号
【特許文献2】特開2004−259065号
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に開示される技術では、3次元オブジェクトの一部とその一部を移動させたい目標位置とをタッチして指定するようにしてあるため、3次元オブジェクトを直接タッチして回転させているような臨場感を得ることができない。また、この従来技術では、予め設定された回転行列または算出された回転行列によって3次元オブジェクトを回転させるようにしてあるため、回転後の画像が操作者の意図しない表示状態になってしまう恐れがあった。
【0005】
また、特許文献2に開示される技術では、画面をタッチするだけで3次元オブジェクトが回転するため、特許文献1に開示される技術と同様に、3次元オブジェクトを直接タッチして回転させているような臨場感を得ることができない。つまり、不自然な操作になってしまう。また、タッチの位置と画面の中心位置とから、3次元オブジェクトの回転軸および回転角度を算出するので、処理負担が大きくなってしまう。
【0006】
それゆえに、この発明の主たる目的は、新規な、3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラムを提供することである。
【0007】
この発明の他の目的は、3次元オブジェクトを現実に触れているかのような操作感を得ることができる、3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラムを提供することである。
【0008】
この発明のその他の目的は、3次元オブジェクトの描画処理の負担を軽減できる、3次元画像処理装置、ゲーム装置、3次元画像処理プログラムおよびゲームプログラムを提供することである。
【課題を解決するための手段】
【0009】
請求項1の発明は、タッチパネル、タッチ入力検出手段、3次元画像描画手段、およびタッチ位置記憶手段を備える。タッチパネルは、表示器に関連して設けられる。タッチ入力検出手段は、タッチパネルへのタッチ入力を一定時間毎に検出する。3次元画像描画手段は、表示器の横方向および縦方向ならびに奥行き方向を軸として、タッチ入力に応じて、仮想3次元空間にオブジェクトを描画して表示器に表示する。そして、タッチ位置記憶手段は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶する。また、3次元画像描画手段は、第1描画手段および第2描画手段を含む。第1描画手段は、タッチ入力が有る状態が継続し、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画する。また、第2描画手段は、タッチ入力が有る状態が継続し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0010】
請求項1の発明では、3次元画像描画装置(10)は、表示器(14)に関連して設けられるタッチパネル(22)を備える。タッチ入力検出手段(42,S7)は、タッチパネルへのタッチ入力を一定時間毎に検出する。3次元画像描画手段(42,S19)は、表示器の横方向(X軸方向)および縦方向(Y軸方向)ならべに奥行き方向(Z軸方向)を軸として、タッチ入力に応じて、仮想3次元空間にオブジェクト(102)を描画して表示器に表示する。タッチ位置記憶手段(42,48,S13)は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置すなわちタッチ座標を記憶する。たとえば、3次元画像描画手段は、第1描画手段(42,S49,S53)および第2描画手段(42,S51,S53)を含む。第1描画手段は、たとえば、ドラッグ操作やストローク操作のようにタッチパネルを撫でるように操作するとき(以下、同様である。)、タッチ入力が有る状態(タッチオンの状態)が継続し、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画する。第2描画手段は、タッチオンの状態が継続し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0011】
請求項1の発明によれば、オブジェクトをストローク操作するとき、タッチ座標の変化に基づいてオブジェクトを描画するので、実際にオブジェクトに触れているかのような操作感を得ることができる。
【0012】
また、タッチ位置の変化を算出するだけなので、演算処理が少なく、オブジェクトの描画処理の負担を比較的軽減することができる。
【0013】
請求項2の発明は請求項1に従属し、タッチ位置の変化に基づいてオブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出手段、および第1所定範囲を、オブジェクトを表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、第2所定範囲を、第1所定範囲外であり、当該第1所定範囲を囲む領域に設定する領域設定手段をさらに備え、第1描画手段は、オブジェクト回転角度算出手段によって算出された回転角度で、オブジェクトを2軸の座標に基づいて回転させた画像を描画し、第2描画手段は、オブジェクト回転角度算出手段によって算出された回転角度で、オブジェクトを3軸の座標に基づいて回転させた画像を描画する。
【0014】
請求項2の発明では、回転角度算出手段(42,S45)は、タッチ位置の変化すなわちストローク操作の変位量に基づいて、オブジェクトを回転表示させる回転角度を算出する。領域設定手段(42,48,S5)は、第1所定範囲を、オブジェクトを表示器に表示した場合の当該オブジェクトの中心を含む領域に設定し、第2所定範囲を、第1所定範囲外であり、当該第1所定範囲を囲む領域に設定する。第1描画手段は、算出された回転角度で、オブジェクトを2軸の座標に基づいて回転させた画像を描画する。つまり、オブジェクトの中心付近をストローク操作する場合には、2軸の座標に基づいてオブジェクトを回転させる。また、第2描画手段は、算出された回転角度で、オブジェクトを3軸の座標に基づいて回転させた画像を描画する。つまり、オブジェクトの中心付近から外れた位置をストローク操作する場合には、3軸の座標に基づいてオブジェクトを回転させる。
【0015】
請求項2の発明によれば、仮想3次元空間に描画されるオブジェクトを回転操作するときに、実際にオブジェクトを回転操作しているような感覚を得ることができる。
【0016】
請求項3の発明は、表示器、タッチパネル、タッチ入力検出手段、タッチ位置記憶手段、回転角度算出手段、3次元画像描画手段およびゲームクリア判定手段を備えるゲーム装置である。表示器は、少なくともオブジェクトを表示する。タッチパネルは、表示器に関連して設けられる。タッチ入力検出手段は、タッチパネルへのタッチ入力を一定時間毎に検出する。タッチ位置記憶手段は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶する。回転角度算出手段は、タッチパネルへのタッチ位置の変化に基づいて、オブジェクトを回転させる角度を算出する。3次元画像描画手段は、表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想3次元空間に、タッチ入力に応じて、オブジェクトを表示するための視点情報と、オブジェクトに関連付けられたテクスチャとに基づいて、オブジェクトを描画して表示器に表示する。ゲームクリア判定手段は、テクスチャが、視点情報と所定の関係になったことに応じてゲームクリアであると判定する。そして、3次元画像描画手段は、タッチ入力が有る状態が継続し、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画し、タッチ入力が有る状態が継続し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0017】
請求項3の発明では、ゲーム装置(10)は、表示器(14)を備え、この表示器上にタッチパネル(22)が設けられる。タッチ入力検出手段(42,S7)は、タッチパネルへのタッチ入力を一定時間毎に検出する。タッチ位置記憶手段(42,48,S13)は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置すなわちタッチ座標を記憶する。回転角度算出手段(42,S45)は、タッチパネルへのタッチ位置の変化に基づいて、オブジェクトを回転させる角度(回転角度)を算出する。3次元画像描画手段(42,S19)は、表示器の横方向(X軸方向)および縦方向(Y軸方向)ならびに奥行き方向(Z軸方向)を軸として、タッチ入力に応じて、仮想3次元空間に、オブジェクトを表示するための視点情報(たとえば、視点の位置座標)と、オブジェクトに関連付けられたてテクスチャとに基づいて、オブジェクトを描画して表示器に表示する。ゲームクリア判定手段(42,S21,S23)は、テクスチャが、視点情報と所定の関係になったことに応じて(S23で“YES”)、ゲームクリアであると判定する。たとえば、3次元画像描画手段は、ドラッグ操作やストローク操作のようにタッチパネルを撫でるように操作するとき、タッチオンの状態が継続し、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画する。また、3次元画像描画手段は、タッチオンの状態が継続し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0018】
請求項3の発明においても、請求項1の発明と同様に、実際にオブジェクトに触れているかのような操作感を得ることができる。また、回転角度を算出するだけなので、処理負担を比較的軽減することができる。
【0019】
請求項4は、表示器、および当該表示器に関連して設けられるタッチパネルを備える3次元画像処理装置の3次元画像処理プログラムである。この3次元画像処理プログラムは、3次元画像処理装置のプロセサに、タッチ入力検出ステップ、3次元画像描画ステップ、およびタッチ位置記憶ステップを実行させる。タッチ入力検出ステップは、タッチパネルへのタッチ入力を一定時間毎に検出する。3次元画像描画ステップは、表示器の横方向および縦方向ならびに奥行き方向を軸として仮想3次元空間に、タッチ入力に応じてオブジェクトを描画して表示器に表示する。そして、タッチ位置記憶ステップは、タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶する。また、3次元画像描画ステップは、第1描画ステップおよび第2描画ステップを含む。第1描画ステップは、タッチ入力が有る状態が継続し、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画する。第2描画ステップは、タッチ入力が有る状態が継続し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0020】
請求項4の発明においても、請求項1の発明と同様に、実際にオブジェクトに触れているかのような操作感を得ることができる。
【0021】
請求項5の発明は請求項4に従属し、タッチ位置の変化に基づいてオブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出ステップ、および第1所定範囲を、オブジェクトを表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、第2所定範囲を、第1所定範囲外であり、当該第1所定範囲を囲む領域に設定する領域設定ステップをさらに実行させ、第1描画ステップは、オブジェクト回転角度算出ステップによって算出された回転角度で、オブジェクトを2軸の座標に基づいて回転させた画像を描画し、第2描画ステップは、オブジェクト回転角度算出ステップによって算出された回転角度で、オブジェクトを3軸の座標に基づいて回転させた画像を描画する。
【0022】
請求項5の発明においても、請求項2の発明と同様に、実際にオブジェクトを回転操作しているような感覚を得ることができる。
【0023】
請求項6の発明は、少なくともオブジェクトを表示する表示器および当該表示器に関連して設けられるタッチパネルを備えるゲーム装置のゲームプログラムである。このゲームプログラムは、ゲーム装置のプロセサに、タッチ入力検出ステップ、タッチ位置記憶ステップ、回転角度算出ステップ、3次元画像描画ステップ、およびゲームクリア判定ステップを実行させる。タッチ入力検出ステップは、タッチパネルへのタッチ入力を一定時間毎に検出する。タッチ位置記憶ステップは、タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶する。回転角度算出ステップは、タッチパネルへのタッチ位置の変化に基づいて、オブジェクトを回転させる角度を算出する。3次元画像描画ステップは、表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想3次元空間に、タッチ入力に応じて、オブジェクトを表示するための視点情報と、オブジェクトに関連付けられたテクスチャとに基づいて、オブジェクトを描画して表示器に表示する。そして、ゲームクリア判定ステップは、テクスチャが、視点情報と所定の関係になったことに応じてゲームクリアであると判定する。また、3次元画像描画ステップは、タッチ位置がオブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の2軸についての座標の変化のみに基づいてオブジェクトを描画し、タッチ位置が第1所定範囲外であり、少なくともオブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の3軸についての座標の変化に基づいてオブジェクトを描画する。
【0024】
請求項6の発明においても、請求項3の発明と同様に、実際にオブジェクトに触れているかのような操作感を得ることができる。また、回転角度を算出するだけなので、オブジェクトの描画処理を比較的少なくでき、ゲーム処理への負担を軽減することができる。
【発明の効果】
【0025】
この発明によれば、プレイヤがストローク操作するときのタッチ位置の変化に応じてオブジェクトを描画するので、タッチ入力に従ってオブジェクトを表示することができる。このため、操作者はオブジェクトに直接触れているかのような、新しい操作感を得ることができる。
【0026】
また、この発明によれば、タッチ位置の変化に基づいて回転角度を算出するだけなので、処理負担を軽減することができる。
【0027】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0028】
図1を参照して、この発明の一実施例であるゲーム装置10は、3次元画像処理装置として機能し、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0029】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0030】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。下側ハウジング16bもまた、横長の平面形状を有し、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
【0031】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0032】
操作スイッチ20は、方向指示スイッチ(十字スイッチ)20a,スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり、上側ハウジング16aとの連結部以外に当該連結部を挟むように、左右に配置される。
【0033】
方向指示スイッチ20aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ20bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0034】
動作スイッチ20dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。
【0035】
動作スイッチ(左押しボタン)20Lおよび動作スイッチ(右押しボタン)20Rは、プッシュボタンで構成され、左押しボタン(Lボタン)20Lおよび右押しボタン(Rボタン)20Rは、Aボタン20dおよびBボタン20eと同様の操作に用いることができ、また、Aボタン20dおよびBボタン20eの補助的な操作に用いることができる。
【0036】
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたりすることにより操作すると、スティック24等の操作位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
【0037】
この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出精度もLCD14の表示面に対応して256dot×192dotとしてある。ただし、タッチパネル22の検出精度はLCD14の表示面の解像度よりも低くてもよく、高くてもよい。
【0038】
また、この実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(収納穴)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
【0039】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは下端(底面)に設けられる挿入口30から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード28にアクセス可能となる。
【0040】
なお、図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部にはスピーカ32(図2参照)が設けられる。
【0041】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0042】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるととともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出カインターフエース回路(以下、「I/F回路」という。)54およびLCDコントローラ60が接続される。
【0043】
コネコタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0044】
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)データおよびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0045】
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたゲームプログラムを実行する。また、CPUコア42は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM48に記憶しつつゲーム処理を実行する。
【0046】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM48に記憶(ロード)される。
【0047】
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
【0048】
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。なお、CPUコア42は、描画に必要な画像データをGPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして描画のためのゲーム画像データを作成し、GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成する。
【0049】
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。また、LCDコントローラ60は、レジスタ62のデータ値が「1」である場合には、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
【0050】
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接ゲーム画像データを読み出したり、GPU50およびGPU52を介してVRAM56およびVRAM58からゲーム画像データを読み出したりする。
【0051】
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22からの座標データがI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32から出力する。
【0052】
図3(A)および図3(B)は、この実施例のゲーム装置10のLCD14に表示されるゲーム画面の例を示す図解図である。図3(A)には、LCD14に表示されるゲーム画面100が示され、このゲーム画面100の中央には、円形のオブジェクト102が表示される。ただし、LCD14に表示されるゲーム画面100は2次元画像であるため、オブジェクト102は円形で示されるが、3次元仮想空間(ゲーム空間)においては球体(ボール)である(図4および図5参照)。また、オブジェクト102の表面には、その所定位置に、特定のキャラクタの画像(たとえば、顔画像)104が表示される。
【0053】
たとえば、操作者(以下、「プレイヤ」という。)は、タッチパネル22上で、スティック24を撫でるように操作(ドラッグ操作,ストローク操作)することにより、オブジェクト102を回転させ、オブジェクト表面に表示された(貼り付けられた)特定のキャラクタの顔画像104が、プレイヤ自身に見えるように表示させる。図3(A)および図3(B)では、分かり易く示すため、特定のキャラクタ以外のキャラクタは図示していないが、実際には、他のキャラクタも含めて表示される場合もある。このときには、プレイヤが、制限時間内に、全てのキャラクタの中で、特定のキャラクタの顔画像104を見えるように、オブジェクト102を回転させると、つまり図3(B)に示すような状態にすることができると、ゲームクリアとなる。一方、制限時間内に、特定のキャラクタの顔画像104が見えるように、オブジェクト102を回転させることができない場合には、ゲームオーバとなる。
【0054】
図4は、オブジェクト102、視点(仮想カメラ)、仮想スクリーン(LCD14)およびタッチパネル22の位置関係を観念的に示す図解図である。この図4に示すように、仮想スクリーン(LCD14)と視点(仮想カメラ)との間にタッチパネル22が設けられる。LCD14には、視点から見たオブジェクト102を含む3次元の画像(仮想カメラで撮影された画像)が、2次元の仮想スクリーンに投影され、投影された画像(投影画像)が図3(A)または図3(B)に示したようなゲーム画面100として表示される。したがって、上述したように、ゲームクリアか否かを判定する場合には、視点の位置座標(視点情報)側に、顔画像104が向いているか否かを判断するようにしてある。厳密には、顔画像104を貼り付けたオブジェクト102の表面上の所定位置が座標(Z値)に基づいて、顔画像104が視点側に向いているか否かを判断するようにしてある。
【0055】
なお、図示は省略するが、たとえば、LCD12には、ステージ毎の制限時間を示すタイマが表示されるとともに、ゲームクリアまたはゲームオーバになったときに、そのことを示すテキスト等が表示される。たとえば、タイマは、制限時間をカウントダウンするように表示される。また、クリアした面(ステージ)の数も表示するようにしてもよい。ただし、これらは、LCD14に表示されてもよい。
【0056】
上述したように、この実施例では、プレイヤが、スティック24を用いて、LCD14に表示されるオブジェクト102を回転させるように、タッチパネル22上でドラッグ操作またはストローク操作(以下、「ストローク操作」という。)すると、そのストローク操作に従ってオブジェクト102が回転され、その様子がLCD14に表示される。
【0057】
ここで、たとえば、実際の球体(ボール)を卓上で転がすとき、ボールを上から見て、その中心を指で触れつつ、上下または左右に転がすと、ボールは指の動きに従って、上下または左右に真っ直ぐ転がる。しかし、指がボールの中心から外れると、ボールに横回転が加わるため、上下または左右に真っ直ぐ転がらなくなる。
【0058】
このような、操作感を実現するため、この実施例では、プレイヤがストローク操作したオブジェクト102上の位置に応じて、異なるオブジェクト描画(回転)処理を実行するようにしてある。たとえば、図5の(i)で示すように、スティック24を(1)と(2)とで示す範囲でストローク操作した場合には、図6(A)に示すように、オブジェクト102を描画するマトリックス(3次元仮想空間)のx成分およびy成分だけを変化させる。また、図5の(ii)で示すように、スティック24を(2)と(3)とで示す範囲でストローク操作した場合には、図6(B)に示すように、オブジェクト102を描画するマトリックスのx成分、y成分およびz成分すべてを変化させる。
【0059】
この実施例では、2次元画像のオブジェクト102は、図3に示したように、その中心がLCD14(およびタッチパネル22)の中心と一致するように、LCD14に表示される。また、LCD14に表示されたオブジェクト102に対して、操作有効領域が設定される。ここで、操作有効領域とは、オブジェクト102をタッチしたか否かを判断するための領域であり、オブジェクト102の表示位置に対応して、タッチパネル22に設定される。具体的には、オブジェクト102の表示領域に対応するタッチパネル22の座標群(座標データ群)がRAM48に記憶される。ここで、座標は、LCD14の表示面およびタッチパネル22の検出面のdotに対応する。また、上述したように、LCD14の表示面のdot数とタッチパネル22の検出面のdot数とは同じにしてあるため、オブジェクト102の表示位置(表示領域)に対応して、操作有効領域を容易に設定することができる。
【0060】
この実施例では、図6(C)に示すように、操作有効領域は、オブジェクト102の中心を含む第1所定範囲(第1領域)112と、第1領域112以外の第2所定範囲(第2領域)114とに分割される。これは、プレイヤがオブジェクト102をストローク操作する場合には、オブジェクト102上を操作すると考えられるため、第1領域112内をストローク操作しているかどうかを判断するだけで、上述したような、異なる描画処理を選択的に実行するためである。
【0061】
ただし、第1領域112の大きさ(範囲)は、オブジェクト102の大きさ等によって、ゲームのプログラマないし開発者が予め設定する。
【0062】
したがって、プレイヤが第1領域112内をストローク操作する場合には、図6(A)に示したように、オブジェクト102をX軸回りとY軸回りとで回転させる。また、プレイヤが第2領域114内すなわち第1領域外をストローク操作する場合には、図6(B)に示したように、オブジェクト102をX軸回り、Y軸回りおよびZ軸回りに回転させる。
【0063】
ここで、オブジェクト102を回転させる角度(回転角度)θは、現在のフレーム(現フレーム)のタッチ座標(x1,y1)とその1フレーム前のフレーム(前フレーム)のタッチ座標(x2,y2)との差分(Δx,Δy)を検出し、その差分に基づいて算出する。具体的には、数1に従って、回転角度θが算出される。ただし、タッチ座標は、タッチパネル22から入力された座標データが示す座標である。
【0064】
[数1]
θ=tan−1(Δx/Δy)
Δx=x2−x1
Δy=y2−y1
このように算出された回転角度θがオブジェクト102を描画するためのマトリックス(3次元座標)の各軸に設定され、オブジェクト102が、その中心を原点として、2つの軸(X軸およびY軸)または3つの軸(X軸,Y軸およびZ軸)回りに、回転される。その様子が仮想カメラで撮影され、したがって、2次元画像に変換されたオブジェクト102がLCD14に表示される。
【0065】
ただし、プレイヤが第1領域112と第2領域114との境界でストローク操作する場合には、つまり現フレームのタッチ座標および前フレームのタッチ座標のいずれか一方が第1領域112内であり、他方が第2領域114内である場合には、現フレームのタッチ座標が第1領域112内であれば、2つの軸回りにオブジェクト102を回転させ、逆に、現フレームのタッチ座標が第1領域112外であれば、3つの軸回りにオブジェクト102を回転させるようにしてある。
【0066】
図7は、ゲーム装置10に設けられるRAM48のメモリマップの例を示す図解図である。この図7を参照して、RAM48は、プログラム記憶領域480およびデータ記憶領域482を含む。プログラム記憶領域480はゲームプログラムを記憶し、このゲームプログラムは、ゲームメイン処理プログラム480a、タッチ入力検出プログラム480b、座標変化算出プログラム480c、回転角度算出プログラム480d、タッチ座標判定プログラム420e、オブジェクト(3次元画像)描画プログラム480f、経過時間カウントプログラム480gおよびゲームクリア判定プログラム480h等によって構成される。
【0067】
ゲームメイン処理プログラム480aは、当該ゲーム装置10で実行されるゲーム(仮想ゲーム)のメインルーチンを処理するためのプログラムである。タッチ入力検出プログラム420bは、一定時間(1フレーム:画面更新単位時間)毎に、タッチ入力の有無(タッチオン/タッチオフ)を検出し、後述するタッチ入力フラグの482cのオン(成立)/オフ(不成立)を制御するとともに、タッチ入力が有る場合に、そのタッチ入力によりタッチパネル22から入力された座標データをデータ記憶領域482に記憶するためのプログラムである。
【0068】
座標変化算出プログラム480cは、タッチオンの状態が現フレームと直前のフレームとで連続するとき、その2つのフレームで検出された座標の変化、すなわちΔxとΔyとを算出するためのプログラムである。回転角度算出プログラム)480dは、座標変化算出プログラム480cに従って算出された座標の変化(Δx,Δy)に基づいて、オブジェクト102を回転させる回転角度を数1に従って算出するためのプログラムである。タッチ座標判定プログラム480eは、タッチ入力検出プログラム480bに従って検出されたタッチ位置がオブジェクト102に設定された第1領域112または第2領域114に含まれるか否かを判定するためのプログラムである。
【0069】
オブジェクト(3次元画像)描画処理プログラム480fは、後述するオブジェクトデータ482bを用いて、オブジェクト102や他のオブジェクトを描画するためのプログラムである。経過時間カウントプログラム480gは、図2では省略した内部タイマのカウント値を取得して、各ステージにおけるゲームプレイの経過時間をカウントするためのプログラムである。つまり、画面表示されたタイマをカウントダウンする。ゲームクリア判定プログラム480hは、ステージをクリアしたかどうかを判定するためのプログラムである。この実施例では、制限時間内に、オブジェクト102に貼り付けられた特定のキャラクタの顔画像104がプレイヤに見えるように、つまり仮想カメラによって顔画像104が撮影されるように、当該オブジェクト102を回転させると、ゲームクリアと判定される。ただし、顔画像104がプレイヤに見えることなく、制限時間を超えると、つまりタイムアップしてしまうと、ゲームオーバと判定される。
【0070】
なお、図示は省略するが、プログラム記憶領域480には、音再生プログラムやバックアッププログラムなども記憶される。音再生プログラムは、ゲームに必要な音(音楽)を再生するためのプログラムである。また、バックアッププログラムは、プレイヤの指示や所定のイベントに従って、ゲームの途中データや結果データをメモリカード28のRAM28bに記憶(セーブ)するためのプログラムである。
【0071】
データ記憶領域482には、タッチ座標バッファ482aが設けられる。タッチ座標バッファ482aは、少なくとも2フレーム分の座標データを記憶可能な領域を有し、タッチ入力検出プログラム480bに従って検出された座標データを記憶する。この実施例では、タッチ座標バッファ482aは、現フレームの座標データと前フレームの座標データとを記憶する。また、データ記憶領域482には、オブジェクトデータ482bが記憶される。オブジェクトデータ482は、ポリゴンデータ、位置データ(3次元座標のデータ)およびテクスチャデータを含む。
【0072】
さらに、データ記憶領域482には、タッチ入力フラグ482cが記憶される。タッチ入力フラグ482cは、上述したように、タッチ入力検出プログラム480bに従ってオン/オフされる。この実施例では、タッチ入力フラグ482cは、1ビットのレジスタによって構成され、タッチ入力がオンされると、レジスタデータ値が「1」に設定され、タッチ入力がオフされると、レジスタのデータ値が「0」に設定される。
【0073】
さらにまた、データ記憶領域482には、操作有効領域482dが記憶(設定)される。操作有効領域は、上述したように、第1領域112および第2領域114に対応する座標群のデータ(座標データ群)である。ただし、上述したように、この実施例では、プレイヤのスクロール操作が第1領域112に含まれるか否かを判別するようにしてあるだけなので、第1記憶領域112に対応する座標データ群のみを記憶するようにしてもよい。
【0074】
なお、図示は省略するが、データ記憶領域482には、ゲームに必要な音を出力するための音(音楽)データやゲームの進行に伴って発生するデータ(ゲームの途中データ,結果データ)やフラグ(イベントフラグ)なども記憶される。
【0075】
具体的には、上述したような動作を、図2に示したCPUコア42が図8および図9に示すフロー図に従って実行する。図8を参照して、CPUコア42はゲーム処理を開始すると、ステップS1で、初期設定する。具体的には、データ記憶領域482のバッファ領域やフラグをリセットしたりなどする。また、内部タイマをリセットおよびスタートし、制限時間のカウントを開始する。さらに、ゲームを前回の続きから開始する場合には、メモリカード28のRAM28bからゲームデータをロードする。
【0076】
続くステップS3では、オブジェクト102を初期状態で描画する。つまり、オブジェクトデータ482bを用いて、オブジェクト102を3次元仮想空間の所定位置(初期位置)に描画し、LCD14に表示する。このとき、オブジェクト102の表面の所定位置に顔画像104のテクスチャが貼り付けられる。ただし、ゲームを最初から開始した場合には、第1ステージについてのオブジェクト102が描画され、ゲームを続きから開始した場合には、当該続きのステージについてのオブジェクト102が描画される。なお、ステップS3では、後述するように、ゲーム終了判断(S29)において、ゲームクリアした後にゲーム終了と判断されない場合には、次のステージについてのオブジェクト102が描画され、ゲームオーバした後にゲーム終了と判断されない場合には、同じステージについてのオブジェクト102が描画される。そして、ステップS5では、オブジェクト102の操作有効領域、すなわち第1領域112および第2領域114を設定する。ただし、上述したように、この実施例では、第1領域112に対応する座標データ群をデータ記憶領域482に記憶する。
【0077】
続いて、ステップS7では、タッチ入力を検出する。具体的には、タッチパネル22から入力される座標データを検出する。次のステップS9では、タッチ入力があるかどうか、すなわち、座標データが入力されたかどうかを判断する。ステップS9で“NO”であれば、つまりタッチパネル22から座標データが入力されていなければ、タッチ入力が無い(タッチオフ)と判断し、ステップS11で、タッチ入力フラグ482cをオフして、図9に示すステップS21に進む。
【0078】
しかし、ステップS9で“YES”であれば、つまりタッチパネル22から座標データが入力されていれば、タッチ入力が有る(タッチオン)と判断し、ステップS13で、タッチ入力が示すタッチ座標(座標データ)をデータ記憶領域482の座標バッファ482aに記憶(一時記憶)し、ステップS15で、タッチ入力フラグ482cがオンかどうかを判断する。ステップS15で“NO”であれば、つまりタッチ入力フラグ482cがオフであれば、タッチオフの状態からタッチオンの状態に変化しているため、ストローク操作でないと判断し、ステップS17で、タッチ入力フラグ482cをオンして、ステップS21に進む。一方、ステップS15で“YES”であれば、つまりタッチ入力フラグ482cがオンであれば、タッチオンの状態が継続しているため、ストローク操作であると判断し、ステップS19で、後述するオブジェクト描画処理(図10参照)を実行してから、ステップS21に進む。
【0079】
図9に示すステップS21では、制限時間が経過したかどうかを判断する。つまり、タイムアップしたかどうかを判断する。ステップS21で“YES”であれば、つまり制限時間が経過すれば、ステップS27で、ゲームオーバ処理を実行して、ステップS29に進む。たとえば、ステップS27では、ゲームオーバになったことを表現するゲーム画面をLCD14(または、LCD12)に表示し、その後、ゲームを続行するか否かを選択するための選択画面を同じくLCD14(または、LCD12)に表示する。
【0080】
しかし、ステップS21で“NO”であれば、つまり制限時間が経過していなければ、ステップS23で、所定のテクスチャが視点側に存在するかどうかを判断する。この実施例では、上述したように、特定のキャラクタの顔画像104が仮想カメラ側に存在するかどうかを判断する。ステップS23で“NO”であれば、つまり所定のテクスチャが視点側に存在しない場合には、そのまま図8に示したステップS7に戻る。一方、ステップS23で“YES”であれば、つまり所定のテクスチャが視点側に存在する場合には、ステップS25で、ゲームクリア処理を実行して、ステップS29に進む。たとえば、ステップS25では、ゲームクリアしたことを表現するゲーム画面をLCD14(または、LCD12)に表示し、その後、次のステージに進むか否かを選択するための選択画面を同じくLCD14(または、LCD12)に表示する。また、プレイヤのレベルやライフを増加(上昇)させるなども処理を行うようにしてもよい。ただし、すべてのステージをクリアした場合には、エンドロール表示などが実行される。
【0081】
ステップS29では、ゲーム終了かどうかを判断する。具体的には、プレイヤによってゲーム終了の指示が入力されたり、ゲームオーバになったりしたかを判断する。ステップS29で“NO”であれば、つまりゲーム終了でなければ、図8に示したステップS1に戻る。一方、ステップS29で“YES”であれば、つまりゲーム終了であれば、ゲーム処理を終了する。
【0082】
なお、この図8および図9で示すゲーム処理のスキャンタイムは、一定時間(1フレーム期間)であり、したがって、タッチ入力検出の処理(S7)は一定時間毎に実行される。
【0083】
図10は、図8に示したステップS19のオブジェクト描画処理を示すフロー図である。この図10を参照して、CPUコア42はオブジェクト描画処理を開始すると、ステップS41で、前フレームおよび現フレームのタッチ座標(座標データ)をタッチ座標バッファ482aから読み出す。続くステップS43では、前フレームのタッチ座標と現フレームのタッチ座標との変化値(Δx,Δy)を算出する。次に、ステップS45では、オブジェクト102の回転角度θを数1に従って算出する。
【0084】
そして、ステップS47で、現フレームのタッチ座標が第1領域112内であるかどかを判断する。ステップS47で“YES”であれば、つまり現フレームのタッチ座標が第1領域112内である場合には、ステップS49で、オブジェクト描画用のマトリックス(3次元座標)のx成分およびy成分の回転角度に、ステップS45で算出した回転角度θをセットして、ステップS53に進む。
【0085】
しかし、ステップS47で“NO”であれば、つまり現フレームのタッチ座標が第2領域114内である場合には、ステップS51で、オブジェクト描画用マトリックス(仮想3次元空間)のx成分,y成分,z成分の回転角度に、ステップS45で算出した回転角度をセット(設定)して、ステップS53に進む。
【0086】
なお、この実施例では、ステップS47で、現フレームのタッチ座標が第1領域112内であるか否かを判断するようにしてあるが、前フレームのタッチ座標が第1領域112内であるか否かを判断するようにしてもよい。
【0087】
ステップS53では、オブジェクト102の回転描画処理を実行する。つまり、ステップS49またはステップS51で、セットされた回転角度θに従って、3次元仮想空間において、2つの軸回り(X軸回りおよびY軸回り)、または3つの軸回り(X軸回り,Y軸回りおよびZ軸回り)に、オブジェクト102を回転させる。続くステップS55では、テクスチャ貼付処理を実行する。ここでは、上述したように、オブジェクト102の表面の所定位置を中心に、特定のキャラクタの顔画像104についてのテクスチャが貼り付けられる。
【0088】
続いて、ステップS57で、視点変換処理を実行する。つまり、3次元仮想空間(ゲーム空間)が、視点(仮想カメラ)位置が中心(原点)となるように、座標(X軸,Y軸,Z軸)を変換(回転および平行移動)するのである。そして、ステップS59では、投影変換処理を実行して、オブジェクト描画処理をリターンする。つまり、ステップS59では、仮想スクリーンに、視点(仮想カメラ)から見た3次元仮想空間が投影される。これにより、視点から見た3次元仮想空間が2次元のゲーム画像に変換され、したがって、上述したようなゲーム画面100がLCD14に表示される。
【0089】
この実施例によれば、オブジェクトの回転をストローク操作により行うことができ、また、ストローク操作するオブジェクト上の領域ないし位置が中心付近とそれ以外とで、異なる回転処理を行うので、実際のオブジェクトを転がしているかのような新しい操作感を得ることができる。
【0090】
また、ストローク操作によるタッチ座標の変化量に基づいて回転角度を算出するだけなので、比較的処理負担を少なくでき、ゲーム処理への負担を軽減することができる。
【0091】
なお、この実施例では、連続2フレームのタッチ座標の変化量に基づいて回転角度を算出するようにしたが、連続する3フレーム以上のタッチ座標の変化量に基づいて回転角度を算出するようにしてもよい。ただし、連続するフレーム数が増えるに従って、オブジェクトの回転(移動)量が大きくなり、表示が煩雑になるため、臨場感を喪失しない程度にフレーム数を設定する必要がある。
【0092】
また、この実施例では、球体のオブジェクトをLCDの表示する場合について説明したが、他の形状のオブジェクトを表示するようにしてもよい。
【0093】
さらに、この実施例では、2つのLCDを設けて2つのゲーム画面を表示する場合について説明したが、1つのLCDを設けて、これに対応してタッチパネルを設けておき、当該LCDに1つのゲーム画面を表示するようにしてもよい。
【0094】
さらにまた、この実施例では、2つのLCDを設けたゲーム装置について説明したが、1つのLCDの表示領域を2つに分割し、少なくともいずれか一方の表示領域に対応してタッチパネルを設けるようにしてもよい。この場合、縦長のLCDを設ける場合には、縦に2つ表示領域が並ぶようにLCDの表示領域を分割し、横長のLCDを設ける場合には、横に2つの表示領域が並ぶようにLCDの表示領域を分割するようにすればよい。
【0095】
以上は本発明の一実施例(第1実施例)であるが、他の実施例も種々考えられる。以下には、本発明の他の実施例(第2実施例)について説明することにする。
【0096】
第2実施例のゲーム装置10は、1または2以上のオブジェクト102をLCD14の任意の位置に表示し、当該オブジェクト102の各々に対して操作有効領域を設定するようにした以外は、上述の第1実施例と同じであるため、重複した説明は省略する。
【0097】
図11(A)は、第2実施例のオブジェクト102に対して設定される操作有効領域を示す図解図である。図11(A)を参照して分かるように、第1領域112は、第1実施例で説明したように、オブジェクト102の中心を含む所定範囲に設定される。ただし、第2領域114は、第1領域112の外側であり、当該第1領域112を囲むように、リング(輪)状に設定される。第1領域112の大きさ(範囲)が、オブジェクト102の大きさ等によって、ゲームのプログラマないし開発者が予め設定される点は、第1実施例と同じである。また、第2領域114は、オブジェクト102および第1領域112の大きさ(範囲)に応じて、同様に適宜設定される。
【0098】
なお、第2領域112がオブジェクト102よりも少しはみ出すように設定してあるのは、プレイヤがオブジェクト102の外周部分をスティック24等でスクロール操作した場合であっても、当該オブジェクト102を回転するように表示させるためである。
【0099】
このように、第2実施例では、第1領域112および第2領域114を、1のオブジェクト102の位置(3次元空間における位置または、それに基づいて算出される表示位置)に対応して設定するようにしたので、図11(B)に示すように、オブジェクト102をLCD14(または、ゲーム画面100)の任意の位置に表示することができるようになる。また、図11(C)に示すように、複数(ここでは、3つ)のオブジェクト102をLCD14(の任意の位置)に表示することもできる。また、図11(C)から分かるように、オブジェクト102の大きさは自由に設定することができる。したがって、1つのオブジェクト102をLCD14の任意の位置に表示する場合には、第1実施例で示した操作有効領域482dには、第1領域112および第2領域114の各々についての座標データ群(第1領域112および第2領域114それぞれに対応する、3次元空間における所定範囲の位置座標のデータ、または座標データの範囲にかかる情報データ)が記憶される。また、複数のオブジェクト102をLCD14に表示する場合には、各オブジェクト102について、第1領域112および第2領域114の座標データ群が記憶されるのである。
【0100】
このように、オブジェクト102毎に操作有効領域を設定しておけば、プレイヤが指示(タッチ入力)している1つのオブジェクト102をタッチ位置に基づいて、対応する3次元空間の座標を算出することにより判別することができる。したがって、たとえば、複数のオブジェクトを表示する場合には、制限時間内に、各オブジェクト102に貼り付けられた特定のキャラクタの顔画像104を、すべてプレイヤに見えるようにオブジェクト102を回転させることができれば、ゲームクリアと判定することができる。一方、制限時間内に、各オブジェクト102に貼り付けられた特定のキャラクタの顔画像104を、すべてプレイヤに見えるようにオブジェクト102を回転させることができなければ、つまりいずれか1つの顔画像104でもプレイヤに見えるようにオブジェクト102を回転させることができなければ、ゲームオーバと判定することができる。
【0101】
また、たとえば、複数のオブジェクトのいずれか1つに特定のキャラクタの顔画像104を貼り付けておき、制限時間内に、当該オブジェクト102の顔画像104をプレイヤに見えるように回転させることができたときに、ゲームクリアと判定することもできる。かかる場合には、制限時間内に、当該オブジェクト102の顔画像104をプレイヤに見えるように回転させることができないとき、ゲームオーバと判定される。
【0102】
このように、第2実施例では、上述の実施例で示したゲームよりも難易度(レベル)の高いゲームを楽しむことが可能である。
【0103】
なお、1つのオブジェクト102をLCD14に表示する場合のゲームクリアまたはゲームオーバの判定は、第1実施例で示した場合と同じである。
【0104】
また、第2実施例では、第1実施例で示したオブジェクト描画処理(図10参照)と同様のオブジェクト描画処理(図12参照)が実行されるのであるが、2以上のオブジェクト102がLCD14に表示される場合には、各オブジェクト102についてオブジェクト描画処理(図12)が実行される。
【0105】
なお、図8および図9を用いて説明したゲーム処理は、第2実施例においても略同じであるため、重複した説明は省略する。第1実施例と異なるのは、ステップS3において、2以上のオブジェクト102が描画されることがある点、および、2以上のオブジェクト102が描画される場合には、ステップS5において、各オブジェクトについて操作有効領域が設定される点である。また、2以上のオブジェクト102が描画される場合には、ゲームクリアまたはゲームオーバの判定処理(S21,S23)が、上述したように、第1実施例とは少し異なる。
【0106】
図12は、第2実施例のオブジェクト描画処理を示すフロー図である。上述したように、このオブジェクト描画処理は、第1実施例のオブジェクト描画処理とは略同じであるため、重複した説明は省略する。また、図12においては、第1実施例と同じ処理については、同じ参照符号を付してある。さらに、図面の都合上、図10に示したオブジェクト描画処理と同じ処理の一部については、図示を省略してある。
【0107】
図12を参照して、CPUコア42がオブジェクト描画処理を開始し、ステップS41〜S45の処理を実行すると、ステップS46で、前フレームのタッチ座標および現フレームのタッチ座標(2つのタッチ座標)が、第1領域112または第2領域114に含まれるか否か(対応しているか否か)を判断する。つまり、プレイヤが操作有効領域内でストローク操作したか否かを判断する。ステップS46で“NO”であれば、つまり2つのタッチ座標のいずれか一方または両方が第1領域112または第2領域114に含まれない場合には、そのままオブジェクト描画処理をリターンする。一方、ステップS46で“YES”であれば、つまり2つのタッチ座標が第1領域112または第2領域114に含まれる(対応する)場合には、ステップS47に進む。ステップS47以降の処理は、第1実施例と同じであるため、重複した説明は諸略する。
【0108】
第2実施例においても、第1実施例と同様に、実際にオブジェクトに触れているかのような操作感を得ることができ、オブジェクトの描画処理の処理負担も軽減できる。
【0109】
また、第2実施例では、オブジェクトに対する操作有効領域の設定範囲をオブジェクトの表示領域と略同じ範囲(大きさ)に設定するので、1または2以上のオブジェクトを任意の位置に表示することができ、各オブジェクトをプレイヤのストローク操作によって回転させることができる。
【図面の簡単な説明】
【0110】
【図1】図1はこの発明のゲーム装置の一例を示す図解図である。
【図2】図2は図1に示すゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1に示すゲーム装置に設けられる第2のLCDの表示例を示す図解図である。
【図4】図4はこの実施例の仮想3次元空間、視点、第2のLCD(仮想スクリーン)およびタッチパネルの位置関係を概念的に示す図解図である。
【図5】図5は3次元仮想空間に配置されるオブジェクトおよび2次元画像のオブジェクトをタッチパネル上でストローク操作する様子を示す図解図である。
【図6】図6は図5に示すストローク操作に応じてオブジェクトを回転させる例を示す図解図および2次元画像のオブジェクトに対して設定される操作有効領域を示す図解図である。
【図7】図7は図2に示すゲーム装置に内蔵されるRAMのメモリマップを示す図解図である。
【図8】図8は図2に示すCPUコアのゲーム処理の一部を示すフロー図である。
【図9】図9は図8のフロー図に後続するゲーム処理の他の一部を示すフロー図である。
【図10】図10は図2に示すCPUコアのオブジェクト描画処理を示すフロー図である。
【図11】この発明の他の実施例においてオブジェクトに対して設定される操作有効領域およびゲーム画面の例を示す図解図である。
【図12】他の実施例のCPUコアのオブジェクト描画処理を示すフロー図である。
【符号の説明】
【0111】
10 …ゲーム装置
12,14 …LCD
16,16a,16b …ハウジング
20 …操作スイッチ
22 …タッチパネル
24 …スティック
28 …メモリカード
28a …ROM
28b,48 …RAM
40 …電子回路基板
42 CPUコア
50,52 …GPU
54 …I/F回路
56,58 …VRAM
60 …LCDコントローラ
【特許請求の範囲】
【請求項1】
表示器に関連して設けられるタッチパネル、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出手段、
前記表示器の横方向および縦方向ならびに奥行き方向を軸として仮想3次元空間に、前記タッチ入力に応じてオブジェクトを描画して前記表示器に表示する3次元画像描画手段、および
前記タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶手段を備え、
前記3次元画像描画手段は、
タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第1所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向の2軸についての座標の変化のみに基づいて前記オブジェクトを描画する第1描画手段、および
タッチ入力が有る状態が継続し、前記タッチ位置が前記第1所定範囲外であり、少なくとも前記オブジェクトの第2所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の3軸についての座標の変化に基づいて前記オブジェクトを描画する第2描画手段を含む、3次元画像処理装置。
【請求項2】
前記タッチ位置の変化に基づいて前記オブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出手段、および
前記第1所定範囲を、前記オブジェクトを前記表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、前記第2所定範囲を、前記第1所定範囲外であり、当該第1所定範囲を囲む領域に設定する領域設定手段をさらに備え、
前記第1描画手段は、前記オブジェクト回転角度算出手段によって算出された回転角度で、前記オブジェクトを前記2軸の座標に基づいて回転させた画像を描画し、
前記第2描画手段は、前記オブジェクト回転角度算出手段によって算出された回転角度で、前記オブジェクトを前記3軸の座標に基づいて回転させた画像を描画する、請求項1記載の3次元画像処理装置。
【請求項3】
少なくともオブジェクトを表示する表示器、
前記表示器に関連して設けられるタッチパネル、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出手段、
前記タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶手段、
前記タッチパネルへのタッチ位置の変化に基づいて、前記オブジェクトを回転させる角度を算出する回転角度算出手段、
前記表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想3次元空間に、前記タッチ入力に応じて、前記オブジェクトを表示するための視点情報と、前記オブジェクトに関連付けられたテクスチャとに基づいて、前記オブジェクトを描画して前記表示器に表示する3次元画像描画手段、および
前記テクスチャが、前記視点情報と所定の関係になったことに応じてゲームクリアであると判定するゲームクリア判定手段を備え、
前記3次元画像描画手段は、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、前記横方向および前記縦方向の2軸についての座標の変化のみに基づいて前記オブジェクトを描画し、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記第1所定範囲外であり、少なくとも前記オブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の3軸についての座標の変化に基づいて前記オブジェクトを描画する、ゲーム装置。
【請求項4】
表示器、および当該表示器に関連して設けられるタッチパネルを備える3次元画像処理装置の3次元画像処理プログラムであって、
前記3次元画像処理装置のプロセサに、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出ステップ、
前記表示器の横方向および縦方向ならびに奥行き方向を軸として仮想3次元空間に、前記タッチ入力に応じてオブジェクトを描画して前記表示器に表示する3次元画像描画ステップ、および
前記タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶ステップを実行させ、
前記3次元画像描画ステップは、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第1所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向の2軸についての座標の変化のみに基づいて前記オブジェクトを描画する第1描画ステップ、および
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記第1所定範囲外であり、少なくとも前記オブジェクトの第2所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の3軸についての座標の変化に基づいて前記オブジェクトを描画する第2描画ステップを含む、3次元画像処理プログラム。
【請求項5】
前記タッチ位置の変化に基づいて前記オブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出ステップ、および
前記第1所定範囲を、前記オブジェクトを前記表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、前記第2所定範囲を、前記第1所定範囲外であり、当該第1所定範囲を囲む領域に設定する領域設定ステップをさらに実行させ、
前記第1描画ステップは、前記オブジェクト回転角度算出ステップによって算出された回転角度で、前記オブジェクトを前記2軸の座標に基づいて回転させた画像を描画し、
前記第2描画ステップは、前記オブジェクト回転角度算出ステップによって算出された回転角度で、前記オブジェクトを前記3軸の座標に基づいて回転させた画像を描画する、請求項4記載の3次元画像処理プログラム。
【請求項6】
少なくともオブジェクトを表示する表示器および当該表示器に関連して設けられるタッチパネルを備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のプロセサに、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出ステップ、
前記タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶ステップ、
前記タッチパネルへのタッチ位置の変化に基づいて、前記オブジェクトを回転させる角度を算出する回転角度算出ステップ、
前記表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想3次元空間に、前記タッチ入力に応じて、前記オブジェクトを表示するための視点情報と、前記オブジェクトに関連付けられたテクスチャとに基づいて、前記オブジェクトを描画して前記表示器に表示する3次元画像描画ステップ、および
前記テクスチャが、前記視点情報と所定の関係になったことに応じてゲームクリアであると判定するゲームクリア判定ステップを実行させ、
前記3次元画像描画ステップは、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第1所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向の2軸についての座標の変化のみに基づいて前記オブジェクトを描画し、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記第1所定範囲外であり、少なくとも前記オブジェクトの第2所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の3軸についての座標の変化に基づいて前記オブジェクトを描画する、ゲームプログラム。
【請求項1】
表示器に関連して設けられるタッチパネル、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出手段、
前記表示器の横方向および縦方向ならびに奥行き方向を軸として仮想3次元空間に、前記タッチ入力に応じてオブジェクトを描画して前記表示器に表示する3次元画像描画手段、および
前記タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶手段を備え、
前記3次元画像描画手段は、
タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第1所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向の2軸についての座標の変化のみに基づいて前記オブジェクトを描画する第1描画手段、および
タッチ入力が有る状態が継続し、前記タッチ位置が前記第1所定範囲外であり、少なくとも前記オブジェクトの第2所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の3軸についての座標の変化に基づいて前記オブジェクトを描画する第2描画手段を含む、3次元画像処理装置。
【請求項2】
前記タッチ位置の変化に基づいて前記オブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出手段、および
前記第1所定範囲を、前記オブジェクトを前記表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、前記第2所定範囲を、前記第1所定範囲外であり、当該第1所定範囲を囲む領域に設定する領域設定手段をさらに備え、
前記第1描画手段は、前記オブジェクト回転角度算出手段によって算出された回転角度で、前記オブジェクトを前記2軸の座標に基づいて回転させた画像を描画し、
前記第2描画手段は、前記オブジェクト回転角度算出手段によって算出された回転角度で、前記オブジェクトを前記3軸の座標に基づいて回転させた画像を描画する、請求項1記載の3次元画像処理装置。
【請求項3】
少なくともオブジェクトを表示する表示器、
前記表示器に関連して設けられるタッチパネル、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出手段、
前記タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶手段、
前記タッチパネルへのタッチ位置の変化に基づいて、前記オブジェクトを回転させる角度を算出する回転角度算出手段、
前記表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想3次元空間に、前記タッチ入力に応じて、前記オブジェクトを表示するための視点情報と、前記オブジェクトに関連付けられたテクスチャとに基づいて、前記オブジェクトを描画して前記表示器に表示する3次元画像描画手段、および
前記テクスチャが、前記視点情報と所定の関係になったことに応じてゲームクリアであると判定するゲームクリア判定手段を備え、
前記3次元画像描画手段は、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第1所定範囲内であるとき、タッチ位置の変化に応じて、前記横方向および前記縦方向の2軸についての座標の変化のみに基づいて前記オブジェクトを描画し、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記第1所定範囲外であり、少なくとも前記オブジェクトの第2所定範囲内であるとき、タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の3軸についての座標の変化に基づいて前記オブジェクトを描画する、ゲーム装置。
【請求項4】
表示器、および当該表示器に関連して設けられるタッチパネルを備える3次元画像処理装置の3次元画像処理プログラムであって、
前記3次元画像処理装置のプロセサに、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出ステップ、
前記表示器の横方向および縦方向ならびに奥行き方向を軸として仮想3次元空間に、前記タッチ入力に応じてオブジェクトを描画して前記表示器に表示する3次元画像描画ステップ、および
前記タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶ステップを実行させ、
前記3次元画像描画ステップは、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第1所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向の2軸についての座標の変化のみに基づいて前記オブジェクトを描画する第1描画ステップ、および
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記第1所定範囲外であり、少なくとも前記オブジェクトの第2所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の3軸についての座標の変化に基づいて前記オブジェクトを描画する第2描画ステップを含む、3次元画像処理プログラム。
【請求項5】
前記タッチ位置の変化に基づいて前記オブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出ステップ、および
前記第1所定範囲を、前記オブジェクトを前記表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、前記第2所定範囲を、前記第1所定範囲外であり、当該第1所定範囲を囲む領域に設定する領域設定ステップをさらに実行させ、
前記第1描画ステップは、前記オブジェクト回転角度算出ステップによって算出された回転角度で、前記オブジェクトを前記2軸の座標に基づいて回転させた画像を描画し、
前記第2描画ステップは、前記オブジェクト回転角度算出ステップによって算出された回転角度で、前記オブジェクトを前記3軸の座標に基づいて回転させた画像を描画する、請求項4記載の3次元画像処理プログラム。
【請求項6】
少なくともオブジェクトを表示する表示器および当該表示器に関連して設けられるタッチパネルを備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のプロセサに、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出ステップ、
前記タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶ステップ、
前記タッチパネルへのタッチ位置の変化に基づいて、前記オブジェクトを回転させる角度を算出する回転角度算出ステップ、
前記表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想3次元空間に、前記タッチ入力に応じて、前記オブジェクトを表示するための視点情報と、前記オブジェクトに関連付けられたテクスチャとに基づいて、前記オブジェクトを描画して前記表示器に表示する3次元画像描画ステップ、および
前記テクスチャが、前記視点情報と所定の関係になったことに応じてゲームクリアであると判定するゲームクリア判定ステップを実行させ、
前記3次元画像描画ステップは、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第1所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向の2軸についての座標の変化のみに基づいて前記オブジェクトを描画し、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記第1所定範囲外であり、少なくとも前記オブジェクトの第2所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の3軸についての座標の変化に基づいて前記オブジェクトを描画する、ゲームプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2006−122285(P2006−122285A)
【公開日】平成18年5月18日(2006.5.18)
【国際特許分類】
【出願番号】特願2004−313465(P2004−313465)
【出願日】平成16年10月28日(2004.10.28)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成18年5月18日(2006.5.18)
【国際特許分類】
【出願日】平成16年10月28日(2004.10.28)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]