(57)【要約】    【構成】  ゲーム装置１０はＬＣＤ１４を含み、ＬＣＤ１４に関連してタッチパネル２２が設けられる。ＬＣＤ１４には、オブジェクトを含むゲーム画面が表示される。プレイヤがスティック２４を用いて、２次元表示される球体のオブジェクトを撫でるように操作（ストローク操作）すると、その操作に従ってオブジェクトが描画（回転）される。たとえば、プレイヤがオブジェクトの中心付近をストローク操作すると、３次元仮想空間において、オブジェクトは、その中心を原点として、Ｘ軸回りおよびＹ軸回りに回転される。また、プレイヤがオブジェクトの外周付近をストローク操作すると、３次元仮想空間において、オブジェクトは、その中心を原点として、Ｘ軸回り、Ｙ軸回りおよびＺ軸回りに回転される。    【効果】  実際に卓上に置かれた球体を転がしているような操作感を得ることができる。【選択図】  図１
2006122285.tif 000002
【特許請求の範囲】
【請求項１】
表示器に関連して設けられるタッチパネル、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出手段、
前記表示器の横方向および縦方向ならびに奥行き方向を軸として仮想３次元空間に、前記タッチ入力に応じてオブジェクトを描画して前記表示器に表示する３次元画像描画手段、および
前記タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶手段を備え、
前記３次元画像描画手段は、
タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第１所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向の２軸についての座標の変化のみに基づいて前記オブジェクトを描画する第１描画手段、および
タッチ入力が有る状態が継続し、前記タッチ位置が前記第１所定範囲外であり、少なくとも前記オブジェクトの第２所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の３軸についての座標の変化に基づいて前記オブジェクトを描画する第２描画手段を含む、３次元画像処理装置。
【請求項２】
前記タッチ位置の変化に基づいて前記オブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出手段、および
前記第１所定範囲を、前記オブジェクトを前記表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、前記第２所定範囲を、前記第１所定範囲外であり、当該第１所定範囲を囲む領域に設定する領域設定手段をさらに備え、
前記第１描画手段は、前記オブジェクト回転角度算出手段によって算出された回転角度で、前記オブジェクトを前記２軸の座標に基づいて回転させた画像を描画し、
前記第２描画手段は、前記オブジェクト回転角度算出手段によって算出された回転角度で、前記オブジェクトを前記３軸の座標に基づいて回転させた画像を描画する、請求項１記載の３次元画像処理装置。
【請求項３】
少なくともオブジェクトを表示する表示器、
前記表示器に関連して設けられるタッチパネル、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出手段、
前記タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶手段、
前記タッチパネルへのタッチ位置の変化に基づいて、前記オブジェクトを回転させる角度を算出する回転角度算出手段、
前記表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想３次元空間に、前記タッチ入力に応じて、前記オブジェクトを表示するための視点情報と、前記オブジェクトに関連付けられたテクスチャとに基づいて、前記オブジェクトを描画して前記表示器に表示する３次元画像描画手段、および
前記テクスチャが、前記視点情報と所定の関係になったことに応じてゲームクリアであると判定するゲームクリア判定手段を備え、
前記３次元画像描画手段は、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第１所定範囲内であるとき、タッチ位置の変化に応じて、前記横方向および前記縦方向の２軸についての座標の変化のみに基づいて前記オブジェクトを描画し、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記第１所定範囲外であり、少なくとも前記オブジェクトの第２所定範囲内であるとき、タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の３軸についての座標の変化に基づいて前記オブジェクトを描画する、ゲーム装置。
【請求項４】
表示器、および当該表示器に関連して設けられるタッチパネルを備える３次元画像処理装置の３次元画像処理プログラムであって、
前記３次元画像処理装置のプロセサに、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出ステップ、
前記表示器の横方向および縦方向ならびに奥行き方向を軸として仮想３次元空間に、前記タッチ入力に応じてオブジェクトを描画して前記表示器に表示する３次元画像描画ステップ、および
前記タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶ステップを実行させ、
前記３次元画像描画ステップは、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第１所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向の２軸についての座標の変化のみに基づいて前記オブジェクトを描画する第１描画ステップ、および
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記第１所定範囲外であり、少なくとも前記オブジェクトの第２所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の３軸についての座標の変化に基づいて前記オブジェクトを描画する第２描画ステップを含む、３次元画像処理プログラム。
【請求項５】
前記タッチ位置の変化に基づいて前記オブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出ステップ、および
前記第１所定範囲を、前記オブジェクトを前記表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、前記第２所定範囲を、前記第１所定範囲外であり、当該第１所定範囲を囲む領域に設定する領域設定ステップをさらに実行させ、
前記第１描画ステップは、前記オブジェクト回転角度算出ステップによって算出された回転角度で、前記オブジェクトを前記２軸の座標に基づいて回転させた画像を描画し、
前記第２描画ステップは、前記オブジェクト回転角度算出ステップによって算出された回転角度で、前記オブジェクトを前記３軸の座標に基づいて回転させた画像を描画する、請求項４記載の３次元画像処理プログラム。
【請求項６】
少なくともオブジェクトを表示する表示器および当該表示器に関連して設けられるタッチパネルを備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のプロセサに、
前記タッチパネルへのタッチ入力を一定時間毎に検出するタッチ入力検出ステップ、
前記タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶するタッチ位置記憶ステップ、
前記タッチパネルへのタッチ位置の変化に基づいて、前記オブジェクトを回転させる角度を算出する回転角度算出ステップ、
前記表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想３次元空間に、前記タッチ入力に応じて、前記オブジェクトを表示するための視点情報と、前記オブジェクトに関連付けられたテクスチャとに基づいて、前記オブジェクトを描画して前記表示器に表示する３次元画像描画ステップ、および
前記テクスチャが、前記視点情報と所定の関係になったことに応じてゲームクリアであると判定するゲームクリア判定ステップを実行させ、
前記３次元画像描画ステップは、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記オブジェクトの第１所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向の２軸についての座標の変化のみに基づいて前記オブジェクトを描画し、
前記タッチ入力が有る状態が継続し、前記タッチ位置が前記第１所定範囲外であり、少なくとも前記オブジェクトの第２所定範囲内であるとき、前記タッチ位置の変化に応じて、前記横方向および前記縦方向ならびに前記奥行き方向の３軸についての座標の変化に基づいて前記オブジェクトを描画する、ゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は３次元画像処理装置、ゲーム装置、３次元画像処理プログラムおよびゲームプログラムに関し、特にたとえば、操作者の操作に基づいて表示器に仮想３次元空間のオブジェクトを描画する、３次元画像処理装置、ゲーム装置、３次元画像処理プログラムおよびゲームプログラムに関する。
【背景技術】
【０００２】
この種の従来の３次元画像処理装置の一例が特許文献１に開示される。この特許文献１によれば、表示された３次元オブジェクトの向きをタッチパネルで操作することができる。具体的には、表示された３次元オブジェクトの一部をタッチした後、この３次元オブジェクトの一部を表示させる目標位置をさらにタッチする。すると、３次元オブジェクトが回転され、最初にタッチした３次元オブジェクトの一部が目標位置に移動する。また、このようなタッチ操作（いわゆる一点入力）を或る軌跡に沿って連続的に行うと、その軌跡に従って３次元オブジェクトが回転するように表示される。
【０００３】
また、この種の従来の３次元画像処理装置の他の例が特許文献２に開示される。この特許文献２によれば、表示された３次元オブジェクトをタッチすると、このタッチした位置と画面中心の位置との関係から、３次元オブジェクトについての回転表示処理を実行するときの回転軸と回転方向を導き出す。したがって、タッチした画面上の位置によって３次元オブジェクトの回転が変化する。また、画面上の或る一点をタッチし続けると、３次元オブジェクトは回転し続ける。
【特許文献１】特開平５−１８９５４１号
【特許文献２】特開２００４−２５９０６５号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示される技術では、３次元オブジェクトの一部とその一部を移動させたい目標位置とをタッチして指定するようにしてあるため、３次元オブジェクトを直接タッチして回転させているような臨場感を得ることができない。また、この従来技術では、予め設定された回転行列または算出された回転行列によって３次元オブジェクトを回転させるようにしてあるため、回転後の画像が操作者の意図しない表示状態になってしまう恐れがあった。
【０００５】
また、特許文献２に開示される技術では、画面をタッチするだけで３次元オブジェクトが回転するため、特許文献１に開示される技術と同様に、３次元オブジェクトを直接タッチして回転させているような臨場感を得ることができない。つまり、不自然な操作になってしまう。また、タッチの位置と画面の中心位置とから、３次元オブジェクトの回転軸および回転角度を算出するので、処理負担が大きくなってしまう。
【０００６】
それゆえに、この発明の主たる目的は、新規な、３次元画像処理装置、ゲーム装置、３次元画像処理プログラムおよびゲームプログラムを提供することである。
【０００７】
この発明の他の目的は、３次元オブジェクトを現実に触れているかのような操作感を得ることができる、３次元画像処理装置、ゲーム装置、３次元画像処理プログラムおよびゲームプログラムを提供することである。
【０００８】
この発明のその他の目的は、３次元オブジェクトの描画処理の負担を軽減できる、３次元画像処理装置、ゲーム装置、３次元画像処理プログラムおよびゲームプログラムを提供することである。
【課題を解決するための手段】
【０００９】
請求項１の発明は、タッチパネル、タッチ入力検出手段、３次元画像描画手段、およびタッチ位置記憶手段を備える。タッチパネルは、表示器に関連して設けられる。タッチ入力検出手段は、タッチパネルへのタッチ入力を一定時間毎に検出する。３次元画像描画手段は、表示器の横方向および縦方向ならびに奥行き方向を軸として、タッチ入力に応じて、仮想３次元空間にオブジェクトを描画して表示器に表示する。そして、タッチ位置記憶手段は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶する。また、３次元画像描画手段は、第１描画手段および第２描画手段を含む。第１描画手段は、タッチ入力が有る状態が継続し、タッチ位置がオブジェクトの第１所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の２軸についての座標の変化のみに基づいてオブジェクトを描画する。また、第２描画手段は、タッチ入力が有る状態が継続し、タッチ位置が第１所定範囲外であり、少なくともオブジェクトの第２所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の３軸についての座標の変化に基づいてオブジェクトを描画する。
【００１０】
請求項１の発明では、３次元画像描画装置（１０）は、表示器（１４）に関連して設けられるタッチパネル（２２）を備える。タッチ入力検出手段（４２，Ｓ７）は、タッチパネルへのタッチ入力を一定時間毎に検出する。３次元画像描画手段（４２，Ｓ１９）は、表示器の横方向（Ｘ軸方向）および縦方向（Ｙ軸方向）ならべに奥行き方向（Ｚ軸方向）を軸として、タッチ入力に応じて、仮想３次元空間にオブジェクト（１０２）を描画して表示器に表示する。タッチ位置記憶手段（４２，４８，Ｓ１３）は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置すなわちタッチ座標を記憶する。たとえば、３次元画像描画手段は、第１描画手段（４２，Ｓ４９，Ｓ５３）および第２描画手段（４２，Ｓ５１，Ｓ５３）を含む。第１描画手段は、たとえば、ドラッグ操作やストローク操作のようにタッチパネルを撫でるように操作するとき（以下、同様である。）、タッチ入力が有る状態（タッチオンの状態）が継続し、タッチ位置がオブジェクトの第１所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の２軸についての座標の変化のみに基づいてオブジェクトを描画する。第２描画手段は、タッチオンの状態が継続し、タッチ位置が第１所定範囲外であり、少なくともオブジェクトの第２所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の３軸についての座標の変化に基づいてオブジェクトを描画する。
【００１１】
請求項１の発明によれば、オブジェクトをストローク操作するとき、タッチ座標の変化に基づいてオブジェクトを描画するので、実際にオブジェクトに触れているかのような操作感を得ることができる。
【００１２】
また、タッチ位置の変化を算出するだけなので、演算処理が少なく、オブジェクトの描画処理の負担を比較的軽減することができる。
【００１３】
請求項２の発明は請求項１に従属し、タッチ位置の変化に基づいてオブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出手段、および第１所定範囲を、オブジェクトを表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、第２所定範囲を、第１所定範囲外であり、当該第１所定範囲を囲む領域に設定する領域設定手段をさらに備え、第１描画手段は、オブジェクト回転角度算出手段によって算出された回転角度で、オブジェクトを２軸の座標に基づいて回転させた画像を描画し、第２描画手段は、オブジェクト回転角度算出手段によって算出された回転角度で、オブジェクトを３軸の座標に基づいて回転させた画像を描画する。
【００１４】
請求項２の発明では、回転角度算出手段（４２，Ｓ４５）は、タッチ位置の変化すなわちストローク操作の変位量に基づいて、オブジェクトを回転表示させる回転角度を算出する。領域設定手段（４２，４８，Ｓ５）は、第１所定範囲を、オブジェクトを表示器に表示した場合の当該オブジェクトの中心を含む領域に設定し、第２所定範囲を、第１所定範囲外であり、当該第１所定範囲を囲む領域に設定する。第１描画手段は、算出された回転角度で、オブジェクトを２軸の座標に基づいて回転させた画像を描画する。つまり、オブジェクトの中心付近をストローク操作する場合には、２軸の座標に基づいてオブジェクトを回転させる。また、第２描画手段は、算出された回転角度で、オブジェクトを３軸の座標に基づいて回転させた画像を描画する。つまり、オブジェクトの中心付近から外れた位置をストローク操作する場合には、３軸の座標に基づいてオブジェクトを回転させる。
【００１５】
請求項２の発明によれば、仮想３次元空間に描画されるオブジェクトを回転操作するときに、実際にオブジェクトを回転操作しているような感覚を得ることができる。
【００１６】
請求項３の発明は、表示器、タッチパネル、タッチ入力検出手段、タッチ位置記憶手段、回転角度算出手段、３次元画像描画手段およびゲームクリア判定手段を備えるゲーム装置である。表示器は、少なくともオブジェクトを表示する。タッチパネルは、表示器に関連して設けられる。タッチ入力検出手段は、タッチパネルへのタッチ入力を一定時間毎に検出する。タッチ位置記憶手段は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置を記憶する。回転角度算出手段は、タッチパネルへのタッチ位置の変化に基づいて、オブジェクトを回転させる角度を算出する。３次元画像描画手段は、表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想３次元空間に、タッチ入力に応じて、オブジェクトを表示するための視点情報と、オブジェクトに関連付けられたテクスチャとに基づいて、オブジェクトを描画して表示器に表示する。ゲームクリア判定手段は、テクスチャが、視点情報と所定の関係になったことに応じてゲームクリアであると判定する。そして、３次元画像描画手段は、タッチ入力が有る状態が継続し、タッチ位置がオブジェクトの第１所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の２軸についての座標の変化のみに基づいてオブジェクトを描画し、タッチ入力が有る状態が継続し、タッチ位置が第１所定範囲外であり、少なくともオブジェクトの第２所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の３軸についての座標の変化に基づいてオブジェクトを描画する。
【００１７】
請求項３の発明では、ゲーム装置（１０）は、表示器（１４）を備え、この表示器上にタッチパネル（２２）が設けられる。タッチ入力検出手段（４２，Ｓ７）は、タッチパネルへのタッチ入力を一定時間毎に検出する。タッチ位置記憶手段（４２，４８，Ｓ１３）は、タッチ入力検出手段によって検出されたタッチ入力が示すタッチ位置すなわちタッチ座標を記憶する。回転角度算出手段（４２，Ｓ４５）は、タッチパネルへのタッチ位置の変化に基づいて、オブジェクトを回転させる角度（回転角度）を算出する。３次元画像描画手段（４２，Ｓ１９）は、表示器の横方向（Ｘ軸方向）および縦方向（Ｙ軸方向）ならびに奥行き方向（Ｚ軸方向）を軸として、タッチ入力に応じて、仮想３次元空間に、オブジェクトを表示するための視点情報（たとえば、視点の位置座標）と、オブジェクトに関連付けられたてテクスチャとに基づいて、オブジェクトを描画して表示器に表示する。ゲームクリア判定手段（４２，Ｓ２１，Ｓ２３）は、テクスチャが、視点情報と所定の関係になったことに応じて（Ｓ２３で“ＹＥＳ”）、ゲームクリアであると判定する。たとえば、３次元画像描画手段は、ドラッグ操作やストローク操作のようにタッチパネルを撫でるように操作するとき、タッチオンの状態が継続し、タッチ位置がオブジェクトの第１所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の２軸についての座標の変化のみに基づいてオブジェクトを描画する。また、３次元画像描画手段は、タッチオンの状態が継続し、タッチ位置が第１所定範囲外であり、少なくともオブジェクトの第２所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の３軸についての座標の変化に基づいてオブジェクトを描画する。
【００１８】
請求項３の発明においても、請求項１の発明と同様に、実際にオブジェクトに触れているかのような操作感を得ることができる。また、回転角度を算出するだけなので、処理負担を比較的軽減することができる。
【００１９】
請求項４は、表示器、および当該表示器に関連して設けられるタッチパネルを備える３次元画像処理装置の３次元画像処理プログラムである。この３次元画像処理プログラムは、３次元画像処理装置のプロセサに、タッチ入力検出ステップ、３次元画像描画ステップ、およびタッチ位置記憶ステップを実行させる。タッチ入力検出ステップは、タッチパネルへのタッチ入力を一定時間毎に検出する。３次元画像描画ステップは、表示器の横方向および縦方向ならびに奥行き方向を軸として仮想３次元空間に、タッチ入力に応じてオブジェクトを描画して表示器に表示する。そして、タッチ位置記憶ステップは、タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶する。また、３次元画像描画ステップは、第１描画ステップおよび第２描画ステップを含む。第１描画ステップは、タッチ入力が有る状態が継続し、タッチ位置がオブジェクトの第１所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の２軸についての座標の変化のみに基づいてオブジェクトを描画する。第２描画ステップは、タッチ入力が有る状態が継続し、タッチ位置が第１所定範囲外であり、少なくともオブジェクトの第２所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の３軸についての座標の変化に基づいてオブジェクトを描画する。
【００２０】
請求項４の発明においても、請求項１の発明と同様に、実際にオブジェクトに触れているかのような操作感を得ることができる。
【００２１】
請求項５の発明は請求項４に従属し、タッチ位置の変化に基づいてオブジェクトを回転表示させる回転角度を算出するオブジェクト回転角度算出ステップ、および第１所定範囲を、オブジェクトを表示器に表示したときの当該オブジェクトの中心を含む領域に設定し、第２所定範囲を、第１所定範囲外であり、当該第１所定範囲を囲む領域に設定する領域設定ステップをさらに実行させ、第１描画ステップは、オブジェクト回転角度算出ステップによって算出された回転角度で、オブジェクトを２軸の座標に基づいて回転させた画像を描画し、第２描画ステップは、オブジェクト回転角度算出ステップによって算出された回転角度で、オブジェクトを３軸の座標に基づいて回転させた画像を描画する。
【００２２】
請求項５の発明においても、請求項２の発明と同様に、実際にオブジェクトを回転操作しているような感覚を得ることができる。
【００２３】
請求項６の発明は、少なくともオブジェクトを表示する表示器および当該表示器に関連して設けられるタッチパネルを備えるゲーム装置のゲームプログラムである。このゲームプログラムは、ゲーム装置のプロセサに、タッチ入力検出ステップ、タッチ位置記憶ステップ、回転角度算出ステップ、３次元画像描画ステップ、およびゲームクリア判定ステップを実行させる。タッチ入力検出ステップは、タッチパネルへのタッチ入力を一定時間毎に検出する。タッチ位置記憶ステップは、タッチ入力検出ステップによって検出されたタッチ入力が示すタッチ位置を記憶する。回転角度算出ステップは、タッチパネルへのタッチ位置の変化に基づいて、オブジェクトを回転させる角度を算出する。３次元画像描画ステップは、表示器の横方向および縦方向ならびに奥行き方向を軸とした仮想３次元空間に、タッチ入力に応じて、オブジェクトを表示するための視点情報と、オブジェクトに関連付けられたテクスチャとに基づいて、オブジェクトを描画して表示器に表示する。そして、ゲームクリア判定ステップは、テクスチャが、視点情報と所定の関係になったことに応じてゲームクリアであると判定する。また、３次元画像描画ステップは、タッチ位置がオブジェクトの第１所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向の２軸についての座標の変化のみに基づいてオブジェクトを描画し、タッチ位置が第１所定範囲外であり、少なくともオブジェクトの第２所定範囲内であるとき、タッチ位置の変化に応じて、横方向および縦方向ならびに奥行き方向の３軸についての座標の変化に基づいてオブジェクトを描画する。
【００２４】
請求項６の発明においても、請求項３の発明と同様に、実際にオブジェクトに触れているかのような操作感を得ることができる。また、回転角度を算出するだけなので、オブジェクトの描画処理を比較的少なくでき、ゲーム処理への負担を軽減することができる。
【発明の効果】
【００２５】
この発明によれば、プレイヤがストローク操作するときのタッチ位置の変化に応じてオブジェクトを描画するので、タッチ入力に従ってオブジェクトを表示することができる。このため、操作者はオブジェクトに直接触れているかのような、新しい操作感を得ることができる。
【００２６】
また、この発明によれば、タッチ位置の変化に基づいて回転角度を算出するだけなので、処理負担を軽減することができる。
【００２７】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２８】
図１を参照して、この発明の一実施例であるゲーム装置１０は、３次元画像処理装置として機能し、第１の液晶表示器（ＬＣＤ）１２および第２のＬＣＤ１４を含む。このＬＣＤ１２およびＬＣＤ１４は、所定の配置位置となるようにハウジング1６に収納される。この実施例では、ハウジング１６は、上側ハウジング１６ａと下側ハウジング１６ｂとによって構成され、ＬＣＤ１２は上側ハウジング１６ａに収納され、ＬＣＤ１４は下側ハウジング１６ｂに収納される。したがって、ＬＣＤ１２とＬＣＤ１４とは縦（上下）に並ぶように近接して配置される。
【００２９】
なお、この実施例では、表示器としてＬＣＤを用いるようにしてあるが、ＬＣＤに代えて、ＥＬ(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【００３０】
図１からも分かるように、上側ハウジング１６ａは、ＬＣＤ１２の平面形状よりも大きな平面形状を有し、一方主面からＬＣＤ１２の表示面を露出するように開口部が形成される。下側ハウジング１６ｂもまた、横長の平面形状を有し、横方向の略中央部にＬＣＤ１４の表示面を露出するように開口部が形成される。また、下側ハウジング１６ｂには、音抜き孔１８が形成されるとともに、操作スイッチ２０（２０ａ，２０ｂ，２０ｃ，２０ｄ，２０ｅ，２０Ｌおよび２０Ｒ）が設けられる。
【００３１】
また、上側ハウジング１６ａと下側ハウジング１６ｂとは、上側ハウジング１６ａの下辺（下端）と下側ハウジング１６ｂの上辺（上端）の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、ＬＣＤ１２の表示面とＬＣＤ１４の表示面とが対面するように、上側ハウジング１６ａを回動させて折りたたんでおけば、ＬＣＤ１２の表示面およびＬＣＤ１４の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング１６ａと下側ハウジング１６ｂとは、回動可能に連結せずに、それらを一体的（固定的）に設けたハウジング１６を形成するようにしてもよい。
【００３２】
操作スイッチ２０は、方向指示スイッチ（十字スイッチ）２０ａ，スタートスイッチ２０ｂ、セレクトスイッチ２０ｃ、動作スイッチ（Ａボタン）２０ｄ、動作スイッチ（Ｂボタン）２０ｅ、動作スイッチ（Ｌボタン）２０Ｌおよび動作スイッチ（Ｒボタン）２０Ｒを含む。スイッチ２０ａ，２０ｂおよび２０ｃは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の左側に配置される。また、スイッチ２０ｄおよび２０ｅは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の右側に配置される。さらに、スイッチ２０Ｌおよびスイッチ２０Ｒは、それぞれ、下側ハウジング１６ｂの上端（天面）の一部であり、上側ハウジング１６ａとの連結部以外に当該連結部を挟むように、左右に配置される。
【００３３】
方向指示スイッチ２０ａは、ディジタルジョイスティックとして機能し、４つの押圧部の１つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ２０ｂは、プッシュボタンで構成され、ゲームを開始（再開）したり、一時停止(Pause)したりする等に用いられる。セレクトスイッチ２０ｃは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【００３４】
動作スイッチ２０ｄすなわちＡボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(ＲＰＧ)やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ２０ｅすなわちＢボタンは、プッシュボタンで構成され、セレクトスイッチ２０ｃで選択したゲームモードの変更やＡボタン２０ｄで決定したアクションの取り消し等のために用いられる。
【００３５】
動作スイッチ（左押しボタン）２０Ｌおよび動作スイッチ（右押しボタン）２０Ｒは、プッシュボタンで構成され、左押しボタン（Ｌボタン）２０Ｌおよび右押しボタン（Ｒボタン）２０Ｒは、Ａボタン２０ｄおよびＢボタン２０ｅと同様の操作に用いることができ、また、Ａボタン２０ｄおよびＢボタン２０ｅの補助的な操作に用いることができる。
【００３６】
また、ＬＣＤ１４の上面には、タッチパネル２２が装着される。タッチパネル２２としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル２２は、その上面をスティック２４ないしはペン（スタイラスペン）或いは指（以下、これらを「スティック２４等」という場合がある。）で、押圧したり、撫でたり、触れたりすることにより操作すると、スティック２４等の操作位置の座標を検出して、検出した座標（検出座標）に対応する座標データを出力する。
【００３７】
この実施例では、ＬＣＤ１４（ＬＣＤ１２も同じ、または略同じ。）の表示面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル２２の検出精度もＬＣＤ１４の表示面に対応して２５６ｄｏｔ×１９２ｄｏｔとしてある。ただし、タッチパネル２２の検出精度はＬＣＤ１４の表示面の解像度よりも低くてもよく、高くてもよい。
【００３８】
また、この実施例では、スティック２４は、たとえば上側ハウジング１６ａの側面（右側面）近傍に設けられる収納部（収納穴）２６に収納することができ、必要に応じて取り出される。ただし、スティック２４を設けない場合には、収納部２６を設ける必要もない。
【００３９】
さらに、ゲーム装置１０はメモリカード（またはゲームカートリッジ）２８を含み、このメモリカード２８は着脱自在であり、下側ハウジング１６ｂの裏面ないしは下端（底面）に設けられる挿入口３０から挿入される。図１では省略するが、挿入口３０の奥部には、メモリカード２８の挿入方向先端部に設けられるコネクタ（図示せず）と接合するためのコネクタ４６（図２参照）が設けられており、したがって、メモリカード２８が挿入口３０に挿入されると、コネクタ同士が接合され、ゲーム装置１０のＣＰＵコア４２（図２参照）がメモリカード２８にアクセス可能となる。
【００４０】
なお、図１では表現できないが、下側ハウジング１６ｂの音抜き孔１８と対応する位置であり、この下側ハウジング１６ｂの内部にはスピーカ３２（図２参照）が設けられる。
【００４１】
また、図１では省略するが、たとえば、下側ハウジング１６ｂの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング１６ｂの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【００４２】
図２はゲーム装置１０の電気的な構成を示すブロック図である。図２を参照して、ゲーム装置１０は電子回路基板４０を含み、この電子回路基板４０にはＣＰＵコア４２等の回路コンポーネントが実装される。ＣＰＵコア４２は、バス４４を介してコネクタ４６に接続されるととともに、ＲＡＭ４８、第１のグラフィック処理ユニット（ＧＰＵ）５０、第２のＧＰＵ５２、入出カインターフエース回路（以下、「Ｉ／Ｆ回路」という。）５４およびＬＣＤコントローラ６０が接続される。
【００４３】
コネコタ４６には、上述したように、メモリカード２８が着脱自在に接続される。メモリカード２８は、ＲＯＭ２８ａおよびＲＡＭ２８ｂを含み、図示は省略するが、ＲＯＭ２８ａおよびＲＡＭ２８ｂは、互いにバスで接続され、さらに、コネクタ４６と接合されるコネクタ（図示せず）に接続される。したがって、上述したように、ＣＰＵコア４２は、ＲＯＭ２８ａおよびＲＡＭ２８ｂにアクセスすることができるのである。
【００４４】
ＲＯＭ２８ａは、ゲーム装置１０で実行すべきゲーム（仮想ゲーム）のためのゲームプログラム、画像（キャラクタ画像、背景画像、アイテム画像、アイコン（ボタン）画像、メッセージ画像など）データおよびゲームに必要な音（音楽）のデータ（音データ）等を予め記憶する。ＲＡＭ（バックアップＲＡＭ）２８ｂは、そのゲームの途中データやゲームの結果データを記憶（セーブ）する。
【００４５】
ＲＡＭ４８は、バッファメモリないしはワーキングメモリとして使用される。つまり、ＣＰＵコア４２は、メモリカード２８のＲＯＭ２８ａに記憶されたゲームプログラム、画像データおよび音データ等をＲＡＭ４８にロードし、ロードしたゲームプログラムを実行する。また、ＣＰＵコア４２は、ゲームの進行に応じて一時的に発生するデータ（ゲームデータやフラグデータ）をＲＡＭ４８に記憶しつつゲーム処理を実行する。
【００４６】
なお、ゲームプログラム、画像データおよび音データ等は、ＲＯＭ２８ａから一度に全部、または部分的かつ順次的に読み出され、ＲＡＭ４８に記憶（ロード）される。
【００４７】
ＧＰＵ５０およびＧＰＵ５２は、それぞれ、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、ＣＰＵコア４２からのグラフィックスコマンド（graphics command ：作画命令）を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵコア４２は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム（ゲームプログラムに含まれる。）をＧＰＵ５０およびＧＰＵ５２のそれぞれに与える。
【００４８】
また、ＧＰＵ５０には、第１のビデオＲＡＭ（以下、「ＶＲＡＭ」という。）５６が接続され、ＧＰＵ５２には、第２のＶＲＡＭ５８が接続される。ＧＰＵ５０およびＧＰＵ５２が作画コマンドを実行するにあたって必要なデータ（画像データ：ポリゴンやテクスチャ等のデータ）は、ＧＰＵ５０およびＧＰＵ５２が、それぞれ、第１のＶＲＡＭ５６および第２のＶＲＡＭ５８にアクセスして取得する。なお、ＣＰＵコア４２は、描画に必要な画像データをＧＰＵ５０およびＧＰＵ５２を介して第１のＶＲＡＭ５６および第２のＶＲＡＭ５８に書き込む。ＧＰＵ５０はＶＲＡＭ５６にアクセスして描画のためのゲーム画像データを作成し、ＧＰＵ５２はＶＲＡＭ５８にアクセスして描画のためのゲーム画像データを作成する。
【００４９】
ＶＲＡＭ５６およびＶＲＡＭ５８は、ＬＣＤコントローラ６０に接続される。ＬＣＤコントローラ６０はレジスタ６２を含み、レジスタ６２はたとえば１ビットで構成され、ＣＰＵコア４２の指示によって「０」または「１」の値（データ値）を記憶する。ＬＣＤコントローラ６０は、レジスタ６２のデータ値が「０」である場合には、ＧＰＵ５０によって作成されたゲーム画像データをＬＣＤ１２に出力し、ＧＰＵ５２によって作成されたゲーム画像データをＬＣＤ１４に出力する。また、ＬＣＤコントローラ６０は、レジスタ６２のデータ値が「１」である場合には、ＧＰＵ５０によって作成されたゲーム画像データをＬＣＤ１４に出力し、ＧＰＵ５２によって作成されたゲーム画像データをＬＣＤ１２に出力する。
【００５０】
なお、ＬＣＤコントローラ６０は、ＶＲＡＭ５６およびＶＲＡＭ５８から直接ゲーム画像データを読み出したり、ＧＰＵ５０およびＧＰＵ５２を介してＶＲＡＭ５６およびＶＲＡＭ５８からゲーム画像データを読み出したりする。
【００５１】
Ｉ／Ｆ回路５４には、操作スイッチ２０，タッチパネル２２およびスピーカ３２が接続される。ここで、操作スイッチ２０は、上述したスイッチ２０ａ，２０ｂ，２０ｃ，２０ｄ，２０ｅ，２０Ｌおよび２０Ｒであり、操作スイッチ２０が操作されると、対応する操作信号（操作データ）がＩ／Ｆ回路５４を介してＣＰＵコア４２に入力される。また、タッチパネル２２からの座標データがＩ／Ｆ回路５４を介してＣＰＵコア４２に入力される。さらに、ＣＰＵコア４２は、ゲーム音楽（ＢＧＭ）、効果音またはゲームキャラクタの音声（擬制音）などのゲームに必要な音データをＲＡＭ４８から読み出し、Ｉ／Ｆ回路５４を介してスピーカ３２から出力する。
【００５２】
図３（Ａ）および図３（Ｂ）は、この実施例のゲーム装置１０のＬＣＤ１４に表示されるゲーム画面の例を示す図解図である。図３（Ａ）には、ＬＣＤ１４に表示されるゲーム画面１００が示され、このゲーム画面１００の中央には、円形のオブジェクト１０２が表示される。ただし、ＬＣＤ１４に表示されるゲーム画面１００は２次元画像であるため、オブジェクト１０２は円形で示されるが、３次元仮想空間（ゲーム空間）においては球体（ボール）である（図４および図５参照）。また、オブジェクト１０２の表面には、その所定位置に、特定のキャラクタの画像（たとえば、顔画像）１０４が表示される。
【００５３】
たとえば、操作者（以下、「プレイヤ」という。）は、タッチパネル２２上で、スティック２４を撫でるように操作（ドラッグ操作，ストローク操作）することにより、オブジェクト１０２を回転させ、オブジェクト表面に表示された（貼り付けられた）特定のキャラクタの顔画像１０４が、プレイヤ自身に見えるように表示させる。図３（Ａ）および図３（Ｂ）では、分かり易く示すため、特定のキャラクタ以外のキャラクタは図示していないが、実際には、他のキャラクタも含めて表示される場合もある。このときには、プレイヤが、制限時間内に、全てのキャラクタの中で、特定のキャラクタの顔画像１０４を見えるように、オブジェクト１０２を回転させると、つまり図３（Ｂ）に示すような状態にすることができると、ゲームクリアとなる。一方、制限時間内に、特定のキャラクタの顔画像１０４が見えるように、オブジェクト１０２を回転させることができない場合には、ゲームオーバとなる。
【００５４】
図４は、オブジェクト１０２、視点（仮想カメラ）、仮想スクリーン（ＬＣＤ１４）およびタッチパネル２２の位置関係を観念的に示す図解図である。この図４に示すように、仮想スクリーン（ＬＣＤ１４）と視点（仮想カメラ）との間にタッチパネル２２が設けられる。ＬＣＤ１４には、視点から見たオブジェクト１０２を含む３次元の画像（仮想カメラで撮影された画像）が、２次元の仮想スクリーンに投影され、投影された画像（投影画像）が図３（Ａ）または図３（Ｂ）に示したようなゲーム画面１００として表示される。したがって、上述したように、ゲームクリアか否かを判定する場合には、視点の位置座標（視点情報）側に、顔画像１０４が向いているか否かを判断するようにしてある。厳密には、顔画像１０４を貼り付けたオブジェクト１０２の表面上の所定位置が座標（Ｚ値）に基づいて、顔画像１０４が視点側に向いているか否かを判断するようにしてある。
【００５５】
なお、図示は省略するが、たとえば、ＬＣＤ１２には、ステージ毎の制限時間を示すタイマが表示されるとともに、ゲームクリアまたはゲームオーバになったときに、そのことを示すテキスト等が表示される。たとえば、タイマは、制限時間をカウントダウンするように表示される。また、クリアした面（ステージ）の数も表示するようにしてもよい。ただし、これらは、ＬＣＤ１４に表示されてもよい。
【００５６】
上述したように、この実施例では、プレイヤが、スティック２４を用いて、ＬＣＤ１４に表示されるオブジェクト１０２を回転させるように、タッチパネル２２上でドラッグ操作またはストローク操作（以下、「ストローク操作」という。）すると、そのストローク操作に従ってオブジェクト１０２が回転され、その様子がＬＣＤ１４に表示される。
【００５７】
ここで、たとえば、実際の球体（ボール）を卓上で転がすとき、ボールを上から見て、その中心を指で触れつつ、上下または左右に転がすと、ボールは指の動きに従って、上下または左右に真っ直ぐ転がる。しかし、指がボールの中心から外れると、ボールに横回転が加わるため、上下または左右に真っ直ぐ転がらなくなる。
【００５８】
このような、操作感を実現するため、この実施例では、プレイヤがストローク操作したオブジェクト１０２上の位置に応じて、異なるオブジェクト描画（回転）処理を実行するようにしてある。たとえば、図５の（i）で示すように、スティック２４を（１）と（２）とで示す範囲でストローク操作した場合には、図６（Ａ）に示すように、オブジェクト１０２を描画するマトリックス（３次元仮想空間）のｘ成分およびｙ成分だけを変化させる。また、図５の（ii）で示すように、スティック２４を（２）と（３）とで示す範囲でストローク操作した場合には、図６（Ｂ）に示すように、オブジェクト１０２を描画するマトリックスのｘ成分、ｙ成分およびｚ成分すべてを変化させる。
【００５９】
この実施例では、２次元画像のオブジェクト１０２は、図３に示したように、その中心がＬＣＤ１４（およびタッチパネル２２）の中心と一致するように、ＬＣＤ１４に表示される。また、ＬＣＤ１４に表示されたオブジェクト１０２に対して、操作有効領域が設定される。ここで、操作有効領域とは、オブジェクト１０２をタッチしたか否かを判断するための領域であり、オブジェクト１０２の表示位置に対応して、タッチパネル２２に設定される。具体的には、オブジェクト１０２の表示領域に対応するタッチパネル２２の座標群（座標データ群）がＲＡＭ４８に記憶される。ここで、座標は、ＬＣＤ１４の表示面およびタッチパネル２２の検出面のｄｏｔに対応する。また、上述したように、ＬＣＤ１４の表示面のｄｏｔ数とタッチパネル２２の検出面のｄｏｔ数とは同じにしてあるため、オブジェクト１０２の表示位置（表示領域）に対応して、操作有効領域を容易に設定することができる。
【００６０】
この実施例では、図６（Ｃ）に示すように、操作有効領域は、オブジェクト１０２の中心を含む第１所定範囲（第１領域）１１２と、第１領域１１２以外の第２所定範囲（第２領域）１１４とに分割される。これは、プレイヤがオブジェクト１０２をストローク操作する場合には、オブジェクト１０２上を操作すると考えられるため、第１領域１１２内をストローク操作しているかどうかを判断するだけで、上述したような、異なる描画処理を選択的に実行するためである。
【００６１】
ただし、第１領域１１２の大きさ（範囲）は、オブジェクト１０２の大きさ等によって、ゲームのプログラマないし開発者が予め設定する。
【００６２】
したがって、プレイヤが第１領域１１２内をストローク操作する場合には、図６（Ａ）に示したように、オブジェクト１０２をＸ軸回りとＹ軸回りとで回転させる。また、プレイヤが第２領域１１４内すなわち第１領域外をストローク操作する場合には、図６（Ｂ）に示したように、オブジェクト１０２をＸ軸回り、Ｙ軸回りおよびＺ軸回りに回転させる。
【００６３】
ここで、オブジェクト１０２を回転させる角度（回転角度）θは、現在のフレーム（現フレーム）のタッチ座標（ｘ１，ｙ１）とその１フレーム前のフレーム（前フレーム）のタッチ座標（ｘ２，ｙ２）との差分（Δｘ，Δｙ）を検出し、その差分に基づいて算出する。具体的には、数１に従って、回転角度θが算出される。ただし、タッチ座標は、タッチパネル２２から入力された座標データが示す座標である。
【００６４】
[数１]
θ＝ｔａｎ−１（Δｘ／Δｙ）
Δｘ＝ｘ２−ｘ１
Δｙ＝ｙ２−ｙ１
このように算出された回転角度θがオブジェクト１０２を描画するためのマトリックス（３次元座標）の各軸に設定され、オブジェクト１０２が、その中心を原点として、２つの軸（Ｘ軸およびＹ軸）または３つの軸（Ｘ軸，Ｙ軸およびＺ軸）回りに、回転される。その様子が仮想カメラで撮影され、したがって、２次元画像に変換されたオブジェクト１０２がＬＣＤ１４に表示される。
【００６５】
ただし、プレイヤが第１領域１１２と第２領域１１４との境界でストローク操作する場合には、つまり現フレームのタッチ座標および前フレームのタッチ座標のいずれか一方が第１領域１１２内であり、他方が第２領域１１４内である場合には、現フレームのタッチ座標が第１領域１１２内であれば、２つの軸回りにオブジェクト１０２を回転させ、逆に、現フレームのタッチ座標が第１領域１１２外であれば、３つの軸回りにオブジェクト１０２を回転させるようにしてある。
【００６６】
図７は、ゲーム装置１０に設けられるＲＡＭ４８のメモリマップの例を示す図解図である。この図７を参照して、ＲＡＭ４８は、プログラム記憶領域４８０およびデータ記憶領域４８２を含む。プログラム記憶領域４８０はゲームプログラムを記憶し、このゲームプログラムは、ゲームメイン処理プログラム４８０ａ、タッチ入力検出プログラム４８０ｂ、座標変化算出プログラム４８０ｃ、回転角度算出プログラム４８０ｄ、タッチ座標判定プログラム４２０ｅ、オブジェクト（３次元画像）描画プログラム４８０ｆ、経過時間カウントプログラム４８０ｇおよびゲームクリア判定プログラム４８０ｈ等によって構成される。
【００６７】
ゲームメイン処理プログラム４８０ａは、当該ゲーム装置１０で実行されるゲーム（仮想ゲーム）のメインルーチンを処理するためのプログラムである。タッチ入力検出プログラム４２０ｂは、一定時間（１フレーム：画面更新単位時間）毎に、タッチ入力の有無（タッチオン／タッチオフ）を検出し、後述するタッチ入力フラグの４８２ｃのオン（成立）／オフ（不成立）を制御するとともに、タッチ入力が有る場合に、そのタッチ入力によりタッチパネル２２から入力された座標データをデータ記憶領域４８２に記憶するためのプログラムである。
【００６８】
座標変化算出プログラム４８０ｃは、タッチオンの状態が現フレームと直前のフレームとで連続するとき、その２つのフレームで検出された座標の変化、すなわちΔｘとΔｙとを算出するためのプログラムである。回転角度算出プログラム）４８０ｄは、座標変化算出プログラム４８０ｃに従って算出された座標の変化（Δｘ，Δｙ）に基づいて、オブジェクト１０２を回転させる回転角度を数１に従って算出するためのプログラムである。タッチ座標判定プログラム４８０ｅは、タッチ入力検出プログラム４８０ｂに従って検出されたタッチ位置がオブジェクト１０２に設定された第１領域１１２または第２領域１１４に含まれるか否かを判定するためのプログラムである。
【００６９】
オブジェクト（３次元画像）描画処理プログラム４８０ｆは、後述するオブジェクトデータ４８２ｂを用いて、オブジェクト１０２や他のオブジェクトを描画するためのプログラムである。経過時間カウントプログラム４８０ｇは、図２では省略した内部タイマのカウント値を取得して、各ステージにおけるゲームプレイの経過時間をカウントするためのプログラムである。つまり、画面表示されたタイマをカウントダウンする。ゲームクリア判定プログラム４８０ｈは、ステージをクリアしたかどうかを判定するためのプログラムである。この実施例では、制限時間内に、オブジェクト１０２に貼り付けられた特定のキャラクタの顔画像１０４がプレイヤに見えるように、つまり仮想カメラによって顔画像１０４が撮影されるように、当該オブジェクト１０２を回転させると、ゲームクリアと判定される。ただし、顔画像１０４がプレイヤに見えることなく、制限時間を超えると、つまりタイムアップしてしまうと、ゲームオーバと判定される。
【００７０】
なお、図示は省略するが、プログラム記憶領域４８０には、音再生プログラムやバックアッププログラムなども記憶される。音再生プログラムは、ゲームに必要な音（音楽）を再生するためのプログラムである。また、バックアッププログラムは、プレイヤの指示や所定のイベントに従って、ゲームの途中データや結果データをメモリカード２８のＲＡＭ２８ｂに記憶（セーブ）するためのプログラムである。
【００７１】
データ記憶領域４８２には、タッチ座標バッファ４８２ａが設けられる。タッチ座標バッファ４８２ａは、少なくとも２フレーム分の座標データを記憶可能な領域を有し、タッチ入力検出プログラム４８０ｂに従って検出された座標データを記憶する。この実施例では、タッチ座標バッファ４８２ａは、現フレームの座標データと前フレームの座標データとを記憶する。また、データ記憶領域４８２には、オブジェクトデータ４８２ｂが記憶される。オブジェクトデータ４８２は、ポリゴンデータ、位置データ（３次元座標のデータ）およびテクスチャデータを含む。
【００７２】
さらに、データ記憶領域４８２には、タッチ入力フラグ４８２ｃが記憶される。タッチ入力フラグ４８２ｃは、上述したように、タッチ入力検出プログラム４８０ｂに従ってオン／オフされる。この実施例では、タッチ入力フラグ４８２ｃは、１ビットのレジスタによって構成され、タッチ入力がオンされると、レジスタデータ値が「１」に設定され、タッチ入力がオフされると、レジスタのデータ値が「０」に設定される。
【００７３】
さらにまた、データ記憶領域４８２には、操作有効領域４８２ｄが記憶（設定）される。操作有効領域は、上述したように、第１領域１１２および第２領域１１４に対応する座標群のデータ（座標データ群）である。ただし、上述したように、この実施例では、プレイヤのスクロール操作が第１領域１１２に含まれるか否かを判別するようにしてあるだけなので、第１記憶領域１１２に対応する座標データ群のみを記憶するようにしてもよい。
【００７４】
なお、図示は省略するが、データ記憶領域４８２には、ゲームに必要な音を出力するための音（音楽）データやゲームの進行に伴って発生するデータ（ゲームの途中データ，結果データ）やフラグ（イベントフラグ）なども記憶される。
【００７５】
具体的には、上述したような動作を、図２に示したＣＰＵコア４２が図８および図９に示すフロー図に従って実行する。図８を参照して、ＣＰＵコア４２はゲーム処理を開始すると、ステップＳ１で、初期設定する。具体的には、データ記憶領域４８２のバッファ領域やフラグをリセットしたりなどする。また、内部タイマをリセットおよびスタートし、制限時間のカウントを開始する。さらに、ゲームを前回の続きから開始する場合には、メモリカード２８のＲＡＭ２８ｂからゲームデータをロードする。
【００７６】
続くステップＳ３では、オブジェクト１０２を初期状態で描画する。つまり、オブジェクトデータ４８２ｂを用いて、オブジェクト１０２を３次元仮想空間の所定位置（初期位置）に描画し、ＬＣＤ１４に表示する。このとき、オブジェクト１０２の表面の所定位置に顔画像１０４のテクスチャが貼り付けられる。ただし、ゲームを最初から開始した場合には、第１ステージについてのオブジェクト１０２が描画され、ゲームを続きから開始した場合には、当該続きのステージについてのオブジェクト１０２が描画される。なお、ステップＳ３では、後述するように、ゲーム終了判断（Ｓ２９）において、ゲームクリアした後にゲーム終了と判断されない場合には、次のステージについてのオブジェクト１０２が描画され、ゲームオーバした後にゲーム終了と判断されない場合には、同じステージについてのオブジェクト１０２が描画される。そして、ステップＳ５では、オブジェクト１０２の操作有効領域、すなわち第１領域１１２および第２領域１１４を設定する。ただし、上述したように、この実施例では、第１領域１１２に対応する座標データ群をデータ記憶領域４８２に記憶する。
【００７７】
続いて、ステップＳ７では、タッチ入力を検出する。具体的には、タッチパネル２２から入力される座標データを検出する。次のステップＳ９では、タッチ入力があるかどうか、すなわち、座標データが入力されたかどうかを判断する。ステップＳ９で“ＮＯ”であれば、つまりタッチパネル２２から座標データが入力されていなければ、タッチ入力が無い（タッチオフ）と判断し、ステップＳ１１で、タッチ入力フラグ４８２ｃをオフして、図９に示すステップＳ２１に進む。
【００７８】
しかし、ステップＳ９で“ＹＥＳ”であれば、つまりタッチパネル２２から座標データが入力されていれば、タッチ入力が有る（タッチオン）と判断し、ステップＳ１３で、タッチ入力が示すタッチ座標（座標データ）をデータ記憶領域４８２の座標バッファ４８２ａに記憶（一時記憶）し、ステップＳ１５で、タッチ入力フラグ４８２ｃがオンかどうかを判断する。ステップＳ１５で“ＮＯ”であれば、つまりタッチ入力フラグ４８２ｃがオフであれば、タッチオフの状態からタッチオンの状態に変化しているため、ストローク操作でないと判断し、ステップＳ１７で、タッチ入力フラグ４８２ｃをオンして、ステップＳ２１に進む。一方、ステップＳ１５で“ＹＥＳ”であれば、つまりタッチ入力フラグ４８２ｃがオンであれば、タッチオンの状態が継続しているため、ストローク操作であると判断し、ステップＳ１９で、後述するオブジェクト描画処理（図１０参照）を実行してから、ステップＳ２１に進む。
【００７９】
図９に示すステップＳ２１では、制限時間が経過したかどうかを判断する。つまり、タイムアップしたかどうかを判断する。ステップＳ２１で“ＹＥＳ”であれば、つまり制限時間が経過すれば、ステップＳ２７で、ゲームオーバ処理を実行して、ステップＳ２９に進む。たとえば、ステップＳ２７では、ゲームオーバになったことを表現するゲーム画面をＬＣＤ１４（または、ＬＣＤ１２）に表示し、その後、ゲームを続行するか否かを選択するための選択画面を同じくＬＣＤ１４（または、ＬＣＤ１２）に表示する。
【００８０】
しかし、ステップＳ２１で“ＮＯ”であれば、つまり制限時間が経過していなければ、ステップＳ２３で、所定のテクスチャが視点側に存在するかどうかを判断する。この実施例では、上述したように、特定のキャラクタの顔画像１０４が仮想カメラ側に存在するかどうかを判断する。ステップＳ２３で“ＮＯ”であれば、つまり所定のテクスチャが視点側に存在しない場合には、そのまま図８に示したステップＳ７に戻る。一方、ステップＳ２３で“ＹＥＳ”であれば、つまり所定のテクスチャが視点側に存在する場合には、ステップＳ２５で、ゲームクリア処理を実行して、ステップＳ２９に進む。たとえば、ステップＳ２５では、ゲームクリアしたことを表現するゲーム画面をＬＣＤ１４（または、ＬＣＤ１２）に表示し、その後、次のステージに進むか否かを選択するための選択画面を同じくＬＣＤ１４（または、ＬＣＤ１２）に表示する。また、プレイヤのレベルやライフを増加（上昇）させるなども処理を行うようにしてもよい。ただし、すべてのステージをクリアした場合には、エンドロール表示などが実行される。
【００８１】
ステップＳ２９では、ゲーム終了かどうかを判断する。具体的には、プレイヤによってゲーム終了の指示が入力されたり、ゲームオーバになったりしたかを判断する。ステップＳ２９で“ＮＯ”であれば、つまりゲーム終了でなければ、図８に示したステップＳ１に戻る。一方、ステップＳ２９で“ＹＥＳ”であれば、つまりゲーム終了であれば、ゲーム処理を終了する。
【００８２】
なお、この図８および図９で示すゲーム処理のスキャンタイムは、一定時間（１フレーム期間）であり、したがって、タッチ入力検出の処理（Ｓ７）は一定時間毎に実行される。
【００８３】
図１０は、図８に示したステップＳ１９のオブジェクト描画処理を示すフロー図である。この図１０を参照して、ＣＰＵコア４２はオブジェクト描画処理を開始すると、ステップＳ４１で、前フレームおよび現フレームのタッチ座標（座標データ）をタッチ座標バッファ４８２ａから読み出す。続くステップＳ４３では、前フレームのタッチ座標と現フレームのタッチ座標との変化値（Δｘ，Δｙ）を算出する。次に、ステップＳ４５では、オブジェクト１０２の回転角度θを数１に従って算出する。
【００８４】
そして、ステップＳ４７で、現フレームのタッチ座標が第１領域１１２内であるかどかを判断する。ステップＳ４７で“ＹＥＳ”であれば、つまり現フレームのタッチ座標が第１領域１１２内である場合には、ステップＳ４９で、オブジェクト描画用のマトリックス（３次元座標）のｘ成分およびｙ成分の回転角度に、ステップＳ４５で算出した回転角度θをセットして、ステップＳ５３に進む。
【００８５】
しかし、ステップＳ４７で“ＮＯ”であれば、つまり現フレームのタッチ座標が第２領域１１４内である場合には、ステップＳ５１で、オブジェクト描画用マトリックス（仮想３次元空間）のｘ成分，ｙ成分，ｚ成分の回転角度に、ステップＳ４５で算出した回転角度をセット（設定）して、ステップＳ５３に進む。
【００８６】
なお、この実施例では、ステップＳ４７で、現フレームのタッチ座標が第１領域１１２内であるか否かを判断するようにしてあるが、前フレームのタッチ座標が第１領域１１２内であるか否かを判断するようにしてもよい。
【００８７】
ステップＳ５３では、オブジェクト１０２の回転描画処理を実行する。つまり、ステップＳ４９またはステップＳ５１で、セットされた回転角度θに従って、３次元仮想空間において、２つの軸回り（Ｘ軸回りおよびＹ軸回り）、または３つの軸回り（Ｘ軸回り，Ｙ軸回りおよびＺ軸回り）に、オブジェクト１０２を回転させる。続くステップＳ５５では、テクスチャ貼付処理を実行する。ここでは、上述したように、オブジェクト１０２の表面の所定位置を中心に、特定のキャラクタの顔画像１０４についてのテクスチャが貼り付けられる。
【００８８】
続いて、ステップＳ５７で、視点変換処理を実行する。つまり、３次元仮想空間（ゲーム空間）が、視点（仮想カメラ）位置が中心（原点）となるように、座標（Ｘ軸，Ｙ軸，Ｚ軸）を変換（回転および平行移動）するのである。そして、ステップＳ５９では、投影変換処理を実行して、オブジェクト描画処理をリターンする。つまり、ステップＳ５９では、仮想スクリーンに、視点（仮想カメラ）から見た３次元仮想空間が投影される。これにより、視点から見た３次元仮想空間が２次元のゲーム画像に変換され、したがって、上述したようなゲーム画面１００がＬＣＤ１４に表示される。
【００８９】
この実施例によれば、オブジェクトの回転をストローク操作により行うことができ、また、ストローク操作するオブジェクト上の領域ないし位置が中心付近とそれ以外とで、異なる回転処理を行うので、実際のオブジェクトを転がしているかのような新しい操作感を得ることができる。
【００９０】
また、ストローク操作によるタッチ座標の変化量に基づいて回転角度を算出するだけなので、比較的処理負担を少なくでき、ゲーム処理への負担を軽減することができる。
【００９１】
なお、この実施例では、連続２フレームのタッチ座標の変化量に基づいて回転角度を算出するようにしたが、連続する３フレーム以上のタッチ座標の変化量に基づいて回転角度を算出するようにしてもよい。ただし、連続するフレーム数が増えるに従って、オブジェクトの回転（移動）量が大きくなり、表示が煩雑になるため、臨場感を喪失しない程度にフレーム数を設定する必要がある。
【００９２】
また、この実施例では、球体のオブジェクトをＬＣＤの表示する場合について説明したが、他の形状のオブジェクトを表示するようにしてもよい。
【００９３】
さらに、この実施例では、２つのＬＣＤを設けて２つのゲーム画面を表示する場合について説明したが、１つのＬＣＤを設けて、これに対応してタッチパネルを設けておき、当該ＬＣＤに１つのゲーム画面を表示するようにしてもよい。
【００９４】
さらにまた、この実施例では、２つのＬＣＤを設けたゲーム装置について説明したが、１つのＬＣＤの表示領域を２つに分割し、少なくともいずれか一方の表示領域に対応してタッチパネルを設けるようにしてもよい。この場合、縦長のＬＣＤを設ける場合には、縦に２つ表示領域が並ぶようにＬＣＤの表示領域を分割し、横長のＬＣＤを設ける場合には、横に２つの表示領域が並ぶようにＬＣＤの表示領域を分割するようにすればよい。
【００９５】
以上は本発明の一実施例（第１実施例）であるが、他の実施例も種々考えられる。以下には、本発明の他の実施例（第２実施例）について説明することにする。
【００９６】
第２実施例のゲーム装置１０は、１または２以上のオブジェクト１０２をＬＣＤ１４の任意の位置に表示し、当該オブジェクト１０２の各々に対して操作有効領域を設定するようにした以外は、上述の第１実施例と同じであるため、重複した説明は省略する。
【００９７】
図１１（Ａ）は、第２実施例のオブジェクト１０２に対して設定される操作有効領域を示す図解図である。図１１（Ａ）を参照して分かるように、第１領域１１２は、第１実施例で説明したように、オブジェクト１０２の中心を含む所定範囲に設定される。ただし、第２領域１１４は、第１領域１１２の外側であり、当該第１領域１１２を囲むように、リング（輪）状に設定される。第１領域１１２の大きさ（範囲）が、オブジェクト１０２の大きさ等によって、ゲームのプログラマないし開発者が予め設定される点は、第１実施例と同じである。また、第２領域１１４は、オブジェクト１０２および第１領域１１２の大きさ（範囲）に応じて、同様に適宜設定される。
【００９８】
なお、第２領域１１２がオブジェクト１０２よりも少しはみ出すように設定してあるのは、プレイヤがオブジェクト１０２の外周部分をスティック２４等でスクロール操作した場合であっても、当該オブジェクト１０２を回転するように表示させるためである。
【００９９】
このように、第２実施例では、第１領域１１２および第２領域１１４を、１のオブジェクト１０２の位置（３次元空間における位置または、それに基づいて算出される表示位置）に対応して設定するようにしたので、図１１（Ｂ）に示すように、オブジェクト１０２をＬＣＤ１４（または、ゲーム画面１００）の任意の位置に表示することができるようになる。また、図１１（Ｃ）に示すように、複数（ここでは、３つ）のオブジェクト１０２をＬＣＤ１４（の任意の位置）に表示することもできる。また、図１１（Ｃ）から分かるように、オブジェクト１０２の大きさは自由に設定することができる。したがって、１つのオブジェクト１０２をＬＣＤ１４の任意の位置に表示する場合には、第１実施例で示した操作有効領域４８２ｄには、第１領域１１２および第２領域１１４の各々についての座標データ群（第１領域１１２および第２領域１１４それぞれに対応する、３次元空間における所定範囲の位置座標のデータ、または座標データの範囲にかかる情報データ）が記憶される。また、複数のオブジェクト１０２をＬＣＤ１４に表示する場合には、各オブジェクト１０２について、第１領域１１２および第２領域１１４の座標データ群が記憶されるのである。
【０１００】
このように、オブジェクト１０２毎に操作有効領域を設定しておけば、プレイヤが指示（タッチ入力）している１つのオブジェクト１０２をタッチ位置に基づいて、対応する３次元空間の座標を算出することにより判別することができる。したがって、たとえば、複数のオブジェクトを表示する場合には、制限時間内に、各オブジェクト１０２に貼り付けられた特定のキャラクタの顔画像１０４を、すべてプレイヤに見えるようにオブジェクト１０２を回転させることができれば、ゲームクリアと判定することができる。一方、制限時間内に、各オブジェクト１０２に貼り付けられた特定のキャラクタの顔画像１０４を、すべてプレイヤに見えるようにオブジェクト１０２を回転させることができなければ、つまりいずれか１つの顔画像１０４でもプレイヤに見えるようにオブジェクト１０２を回転させることができなければ、ゲームオーバと判定することができる。
【０１０１】
また、たとえば、複数のオブジェクトのいずれか１つに特定のキャラクタの顔画像１０４を貼り付けておき、制限時間内に、当該オブジェクト１０２の顔画像１０４をプレイヤに見えるように回転させることができたときに、ゲームクリアと判定することもできる。かかる場合には、制限時間内に、当該オブジェクト１０２の顔画像１０４をプレイヤに見えるように回転させることができないとき、ゲームオーバと判定される。
【０１０２】
このように、第２実施例では、上述の実施例で示したゲームよりも難易度（レベル）の高いゲームを楽しむことが可能である。
【０１０３】
なお、１つのオブジェクト１０２をＬＣＤ１４に表示する場合のゲームクリアまたはゲームオーバの判定は、第１実施例で示した場合と同じである。
【０１０４】
また、第２実施例では、第１実施例で示したオブジェクト描画処理（図１０参照）と同様のオブジェクト描画処理（図１２参照）が実行されるのであるが、２以上のオブジェクト１０２がＬＣＤ１４に表示される場合には、各オブジェクト１０２についてオブジェクト描画処理（図１２）が実行される。
【０１０５】
なお、図８および図９を用いて説明したゲーム処理は、第２実施例においても略同じであるため、重複した説明は省略する。第１実施例と異なるのは、ステップＳ３において、２以上のオブジェクト１０２が描画されることがある点、および、２以上のオブジェクト１０２が描画される場合には、ステップＳ５において、各オブジェクトについて操作有効領域が設定される点である。また、２以上のオブジェクト１０２が描画される場合には、ゲームクリアまたはゲームオーバの判定処理（Ｓ２１，Ｓ２３）が、上述したように、第１実施例とは少し異なる。
【０１０６】
図１２は、第２実施例のオブジェクト描画処理を示すフロー図である。上述したように、このオブジェクト描画処理は、第１実施例のオブジェクト描画処理とは略同じであるため、重複した説明は省略する。また、図１２においては、第１実施例と同じ処理については、同じ参照符号を付してある。さらに、図面の都合上、図１０に示したオブジェクト描画処理と同じ処理の一部については、図示を省略してある。
【０１０７】
図１２を参照して、ＣＰＵコア４２がオブジェクト描画処理を開始し、ステップＳ４１〜Ｓ４５の処理を実行すると、ステップＳ４６で、前フレームのタッチ座標および現フレームのタッチ座標（２つのタッチ座標）が、第１領域１１２または第２領域１１４に含まれるか否か（対応しているか否か）を判断する。つまり、プレイヤが操作有効領域内でストローク操作したか否かを判断する。ステップＳ４６で“ＮＯ”であれば、つまり２つのタッチ座標のいずれか一方または両方が第１領域１１２または第２領域１１４に含まれない場合には、そのままオブジェクト描画処理をリターンする。一方、ステップＳ４６で“ＹＥＳ”であれば、つまり２つのタッチ座標が第１領域１１２または第２領域１１４に含まれる（対応する）場合には、ステップＳ４７に進む。ステップＳ４７以降の処理は、第１実施例と同じであるため、重複した説明は諸略する。
【０１０８】
第２実施例においても、第１実施例と同様に、実際にオブジェクトに触れているかのような操作感を得ることができ、オブジェクトの描画処理の処理負担も軽減できる。
【０１０９】
また、第２実施例では、オブジェクトに対する操作有効領域の設定範囲をオブジェクトの表示領域と略同じ範囲（大きさ）に設定するので、１または２以上のオブジェクトを任意の位置に表示することができ、各オブジェクトをプレイヤのストローク操作によって回転させることができる。
【図面の簡単な説明】
【０１１０】
【図１】図１はこの発明のゲーム装置の一例を示す図解図である。
【図２】図２は図１に示すゲーム装置の電気的な構成を示すブロック図である。
【図３】図３は図１に示すゲーム装置に設けられる第２のＬＣＤの表示例を示す図解図である。
【図４】図４はこの実施例の仮想３次元空間、視点、第２のＬＣＤ（仮想スクリーン）およびタッチパネルの位置関係を概念的に示す図解図である。
【図５】図５は３次元仮想空間に配置されるオブジェクトおよび２次元画像のオブジェクトをタッチパネル上でストローク操作する様子を示す図解図である。
【図６】図６は図５に示すストローク操作に応じてオブジェクトを回転させる例を示す図解図および２次元画像のオブジェクトに対して設定される操作有効領域を示す図解図である。
【図７】図７は図２に示すゲーム装置に内蔵されるＲＡＭのメモリマップを示す図解図である。
【図８】図８は図２に示すＣＰＵコアのゲーム処理の一部を示すフロー図である。
【図９】図９は図８のフロー図に後続するゲーム処理の他の一部を示すフロー図である。
【図１０】図１０は図２に示すＣＰＵコアのオブジェクト描画処理を示すフロー図である。
【図１１】この発明の他の実施例においてオブジェクトに対して設定される操作有効領域およびゲーム画面の例を示す図解図である。
【図１２】他の実施例のＣＰＵコアのオブジェクト描画処理を示すフロー図である。
【符号の説明】
【０１１１】
１０  …ゲーム装置
１２，１４  …ＬＣＤ
１６，１６ａ，１６ｂ  …ハウジング
２０  …操作スイッチ
２２  …タッチパネル
２４  …スティック
２８  …メモリカード
２８ａ  …ＲＯＭ
２８ｂ，４８  …ＲＡＭ
４０  …電子回路基板
４２  ＣＰＵコア
５０，５２  …ＧＰＵ
５４  …Ｉ／Ｆ回路
５６，５８  …ＶＲＡＭ
６０  …ＬＣＤコントローラ
【図１】
2006122285.tif 000003
【図２】
2006122285.tif 000004
【図３】
2006122285.tif 000005
【図４】
2006122285.tif 000006
【図５】
2006122285.tif 000007
【図６】
2006122285.tif 000008
【図７】
2006122285.tif 000009
【図８】
2006122285.tif 000010
【図９】
2006122285.tif 000011
【図１０】
2006122285.tif 000012
【図１１】
2006122285.tif 000013
【図１２】
2006122285.tif 000014