(57)【要約】【課題】  タッチパネルに覆われた表示画面上に表示されたキャラクタに対して、タッチパネルを用いてキャラクタの部位を直接コントロールすることのできるゲーム装置およびゲームプログラムを提供する。【解決手段】  タッチパネル１３に覆われた第２ＬＣＤ１２に表示されたキャラクタＣの頭部に対して、プレイヤがタッチパネル１３をタッチ操作すると、当該タッチ操作に応じて３次元オブジェクトであるキャラクタＣの頭部に設定されるジョイントＪの角度が変化する。例えば、プレイヤがタッチパネル１３を撫でるようにドラッグ操作すると、キャラクタＣの頭部が左右に振られていかにも本物のキャラクタＣを撫でているような演出が行われる。このように、タッチパネル１３へのタッチ操作がリアルタイムにジョイントＪの角度に反映して３次元キャラクタＣを動作させることによって、様々な演出を行うことができる。【選択図】  図６
2006122241.tif 000002
【特許請求の範囲】
【請求項１】
プレイヤの操作に応じて、ゲーム空間に登場するキャラクタを動作させるゲームを表現するゲーム装置であって、
前記キャラクタ画像を表示画面に表示する表示部と、
前記表示部の表示画面上を覆って設けられるタッチパネルと、
前記タッチパネルがタッチ操作されたタッチ操作入力データを一時記憶するタッチ操作入力データ記憶部と、
複数のボーンをそれぞれジョイントで連結する前記キャラクタの構造データを記憶する構造データ記憶部と、
前記ボーンのそれぞれに対応して規定される前記キャラクタの部位毎のポリゴンデータを記憶するポリゴンデータ記憶部と、
前記ゲーム空間における前記キャラクタの位置を制御するキャラクタ位置制御部と、
前記構造データ、前記ポリゴンデータ、および前記キャラクタの位置に基づいて、当該キャラクタを描画して前記表示画面に表示するキャラクタ表示制御部と、
前記タッチ操作入力データに対応する前記ゲーム空間における位置データを算出し、当該位置データに対応する前記キャラクタの部位を検出するタッチ部位検出部と、
前記位置データに対応する前記キャラクタの部位が検出されたとき、当該部位に対応する前記キャラクタのジョイントの角度を前記タッチ操作入力データに応じて変更するジョイント角度変更部とを備え、
前記キャラクタ表示制御部は、前記ジョイント角度変更部によってジョイント角度が変更された部位を当該角度に応じてリアルタイムに変更して前記キャラクタを描画し前記表示画面に表示することを特徴とする、ゲーム装置。
【請求項２】
前記ゲーム装置は、前記タッチ操作入力データに基づいて前記タッチパネルに対するタッチ操作状態を判定するタッチ操作状態判定部を、さらに備え、
前記ジョイント角度変更部は、前記タッチ操作状態判定部が前記タッチ操作状態を連続的にタッチ操作する位置が変更されるドラッグ操作であると判定したとき、当該ドラッグ操作の方向に応じて前記キャラクタのジョイントの角度を変更することを特徴とする、請求項１に記載のゲーム装置。
【請求項３】
前記ゲーム装置は、
前記キャラクタに対応して、ボーンおよびジョイントの位置の動きを予め複数パターン記憶するアニメーションデータ記憶部と、
前記タッチ操作状態判定部が前記タッチ操作状態を連続的にタッチ操作する位置が変更されるドラッグ操作であると判定したとき、当該ドラッグ操作による操作距離を蓄積する蓄積量算出部と、
前記蓄積量算出部が蓄積した操作距離に応じて、前記アニメーションデータ記憶部に記憶されたパターンを選択するアニメーション選択部とを、さらに備え、
前記キャラクタ表示制御部は、前記アニメーション選択部で選択されたパターンに応じて前記キャラクタを描画し前記表示画面に表示することを特徴とする、請求項２に記載のゲーム装置。
【請求項４】
前記ゲーム装置は、前記ジョイント角度変更部が変更するジョイントの角度を指定する領域を、前記キャラクタの部位の少なくとも一部分に設定する領域設定部を、さらに備え、
前記ジョイント角度変更部は、前記タッチ操作入力データに応じた前記位置データが前記領域設定部で設定された領域内を示すとき、当該領域で指定される角度を用いて前記キャラクタのジョイントの角度を変更することを特徴とする、請求項１に記載のゲーム装置。
【請求項５】
前記領域設定部は、前記キャラクタの部位を２つの領域に２分割し、当該領域によってそれぞれ回転方向が相反する同一の角度だけジョイントの角度を変更するように指定することを特徴とする、請求項４に記載のゲーム装置。
【請求項６】
前記領域設定部は、前記２つの領域を分割する方向を前記ゲーム空間のワールド座標系において常に固定して設定することを特徴とする、請求項５に記載のゲーム装置。
【請求項７】
プレイヤの操作に応じて、ゲーム空間に登場するキャラクタを動作させるゲームを表現するゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記ゲーム装置は、前記ゲーム空間を表示画面に表示する表示部、当該表示部の表示画面上を覆って設けられるタッチパネル、および記憶部を備えており、
前記コンピュータに、
前記タッチパネルがタッチ操作されたタッチ操作入力データを前記記憶部に一時記憶するタッチ操作入力データ記憶ステップと、
前記ゲーム空間における前記キャラクタの位置を制御するキャラクタ位置制御ステップと、
複数のボーンをそれぞれジョイントで連結する前記キャラクタの構造データ、当該ボーンのそれぞれに対応して規定される前記キャラクタの部位毎のポリゴンデータ、および前記キャラクタの位置に基づいて、当該キャラクタを描画して前記表示画面に表示するキャラクタ表示制御ステップと、
前記タッチ操作入力データに対応する前記ゲーム空間における位置データを算出し、当該位置データに対応する前記キャラクタの部位を検出するタッチ部位検出ステップと、
前記位置データに対応する前記キャラクタの部位が検出されたとき、当該部位に対応する前記キャラクタのジョイントの角度を前記タッチ操作入力データに応じて変更するジョイント角度変更ステップとを実行させ、
前記キャラクタ表示制御ステップは、前記ジョイント角度変更ステップによってジョイント角度が変更された部位を当該角度に応じてリアルタイムに変更して前記キャラクタを描画し前記表示画面に表示することを特徴とする、ゲームプログラム。
【請求項８】
前記タッチ操作入力データに基づいて前記タッチパネルに対するタッチ操作状態を判定するタッチ操作状態判定ステップを、さらに前記コンピュータに実行させ、
前記ジョイント角度変更ステップは、前記タッチ操作状態判定ステップで前記タッチ操作状態を連続的にタッチ操作する位置が変更されるドラッグ操作であると判定したとき、当該ドラッグ操作の方向に応じて前記キャラクタのジョイントの角度を変更することを特徴とする、請求項７に記載のゲームプログラム。
【請求項９】
前記タッチ操作状態判定ステップが前記タッチ操作状態を連続的にタッチ操作する位置が変更されるドラッグ操作であると判定したとき、当該ドラッグ操作による操作距離を前記記憶部に蓄積する蓄積量算出ステップと、
前記蓄積量算出ステップが蓄積した操作距離に応じて、前記キャラクタに対応したボーンおよびジョイントの位置の動きを示す複数パターンから１つのパターンを選択するアニメーション選択ステップとを、さらに前記コンピュータに実行させ、
前記キャラクタ表示制御ステップは、前記アニメーション選択ステップで選択されたパターンに応じて前記キャラクタを描画し前記表示画面に表示することを特徴とする、請求項８に記載のゲームプログラム。
【請求項１０】
前記ジョイント角度変更ステップが変更するジョイントの角度を指定する領域を、前記キャラクタの部位の少なくとも一部分に設定する領域設定ステップを、さらに前記コンピュータに実行させ、
前記ジョイント角度変更ステップは、前記タッチ操作入力データに応じた前記位置データが前記領域設定ステップで設定された領域内を示すとき、当該領域で指定される角度を用いて前記キャラクタのジョイントの角度を変更することを特徴とする、請求項７に記載のゲームプログラム。
【請求項１１】
前記領域設定ステップは、前記キャラクタの部位を２つの領域に２分割し、当該領域によってそれぞれ回転方向が相反する同一の角度だけジョイントの角度を変更するように指定することを特徴とする、請求項１０に記載のゲームプログラム。
【請求項１２】
前記領域設定ステップは、前記２つの領域を分割する方向を前記ゲーム空間のワールド座標系において常に固定して設定することを特徴とする、請求項１１に記載のゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム装置およびゲームプログラムに関し、より特定的には、表示画面を覆うタッチパネルを利用して当該表示画面に表示されたキャラクタをタッチ操作することによって、ゲームプレイが進行するゲームを実現するゲーム装置およびゲームプログラムに関する。
【背景技術】
【０００２】
従来、仮想３次元空間上で、ポリゴンを使ってキャラクタなどを立体表示し、２次元平面の表示画面に映し出してゲームプレイを進行することが多く行われている。これらキャラクタは、３次元座標によって定義され、ゲームをプレイするプレイヤによる操作に応じて座標変換されることによりキャラクタの動きが表現され、最終的に２次元平面に投影変換されて、表示画面に映し出される。
【０００３】
これらキャラクタを全てポリゴンの座標で定義した場合、キャラクタの動きを制御するときに、ポリゴン座標値を全て変換対象として制御するのは、処理的には煩雑となる。そこで、キャラクタの骨組みを複数のボーンおよびジョイント、すなわち人間に例えるなら骨および関節で定義し、キャラクタの動きを複数のボーンおよびジョイントで定義すれば処理的にかなり簡素化される（例えば、非特許文献１参照）。この非特許文献１で紹介されているようなソフトウェアは、キャラクタの動きを制御する方法の典型であり、ユーザは、コンピュータを利用して所望の３次元空間に描画されるキャラクタを生成し、３次元空間に生成したキャラクタのアニメーションを作成することができる。
【０００４】
このようなボーンおよびジョイント（文献中ではスケルトン）を、デフォルメされたゲームキャラクタに応用する動画像生成装置が開示されている（例えば、特許文献１参照）。一般的に、関節や凹凸の少ないデフォルメされたキャラクタは、そのままでは表現が単調になりがちである。しかしながら、上記特許文献１で開示されているデフォルメされたキャラクタにボーンおよびジョイントを隠しておいて、これらボーンおよびジョイントを制御すれば、デフォルメされたキャラクタであっても多様な表情を持たせることができる。また、上記特許文献１では、動画像生成装置に接続されたコントローラ入力に応じて、予め設定されたボーンおよびジョイントに基づくアニメーションが選択されて、適宜ゲーム画像として描画される技術について開示している。
【非特許文献１】ティム・コールマン（Ｔｉｍ  Ｃｏｌｅｍａｎ）、シェリー・シェリダン（Ｓｈｅｒｒｉ  Ｓｈｅｒｉｄａｎ）著、「目指せプロアニメータ  Ｍａｙａキャラクタアニメーション」、初版、株式会社ボーンデジタル、２００２年４月２５日、ｐ．１２５−１３３
【特許文献１】特開平１０−１８８０２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記非特許文献１では、ボーンおよびジョイントの定義とそれらを利用したアニメーションの作成とについての技術が開示されているが、いかにしてゲームプレイにその技術を応用するかについては何ら開示されていない。
【０００６】
また、上記特許文献１では、コントローラ入力に応じて描画すべきキャラクタの動作が選択されるが、直接キャラクタの動作自体を制御することについては何ら開示していない。
【０００７】
それ故に、本発明の目的は、タッチパネルに覆われた表示画面上に表示されたキャラクタに対して、タッチパネルを用いてキャラクタの部位を直接コントロールすることのできるゲーム装置およびゲームプログラムを提供することである。本発明の他の目的は、タッチパネルへのタッチ操作に対して、タッチされた部位に応じてキャラクタの動作が変化し、プレイヤとキャラクタとが実際にふれ合っているかのようなリアルな体験のできるゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号（「Ｓ」と略称する）等は、本発明の理解を助けるために、後述する図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【０００９】
第１の発明は、プレイヤの操作に応じて、ゲーム空間に登場するキャラクタ（Ｃ）を動作させるゲームを表現するゲーム装置（１）である。ゲーム装置は、表示部（１２）、タッチパネル（１３）、タッチ操作入力データ記憶部（Ｓ７１、２２８）、構造データ記憶部（２３１ａ）、ポリゴンデータ記憶部（２３１ｂ）、キャラクタ位置制御部（Ｓ５４、Ｓ５５）、キャラクタ表示制御部（Ｓ５２、Ｓ７７）、タッチ部位検出部（Ｓ５６、Ｓ７４）、およびジョイント角度変更部（Ｓ７６）を備える。表示部は、キャラクタ画像を表示画面に表示する。タッチパネルは、表示部の表示画面上を覆って設けられる。タッチ操作入力データ記憶部は、タッチパネルがタッチ操作されたタッチ操作入力データ（タッチ座標）を一時記憶する。構造データ記憶部は、複数のボーン（Ｂ）をそれぞれジョイント（Ｊ）で連結するキャラクタの構造データ（図７）を記憶する。ポリゴンデータ記憶部は、ボーンのそれぞれに対応して規定されるキャラクタの部位毎のポリゴンデータ（Ｐｏ）を記憶する。キャラクタ位置制御部は、ゲーム空間におけるキャラクタの位置を制御する。キャラクタ表示制御部は、構造データ、ポリゴンデータ、およびキャラクタの位置に基づいて、そのキャラクタを描画して表示画面に表示する。タッチ部位検出部は、タッチ操作入力データに対応するゲーム空間における位置データ（ゲーム空間座標）を算出し、その位置データに対応するキャラクタの部位を検出する。ジョイント角度変更部は、位置データに対応するキャラクタの部位が検出されたとき、その部位に対応するキャラクタのジョイントの角度（θ）をタッチ操作入力データに応じて変更する（図９）。キャラクタ表示制御部は、ジョイント角度変更部によってジョイント角度が変更された部位をその角度に応じてリアルタイムに変更してキャラクタを描画し表示画面に表示する。
【００１０】
第２の発明は、上記第１の発明において、ゲーム装置は、タッチ操作状態判定部（Ｓ７５、Ｓ７８）を、さらに備える。タッチ操作状態判定部は、タッチ操作入力データに基づいてタッチパネルに対するタッチ操作状態を判定する。ジョイント角度変更部は、タッチ操作状態判定部がタッチ操作状態を連続的にタッチ操作する位置が変更されるドラッグ操作であると判定したとき、そのドラッグ操作の方向に応じてキャラクタのジョイントの角度を変更する（図６）。
【００１１】
第３の発明は、上記第２の発明において、ゲーム装置は、アニメーションデータ記憶部（２３２）、蓄積量算出部（Ｓ７７）、およびアニメーション選択部（Ｓ７７）を、さらに備える。アニメーションデータ記憶部は、キャラクタに対応して、ボーンおよびジョイントの位置の動きを予め複数パターン（２３２ａ〜ｆ）記憶する。蓄積量算出部は、タッチ操作状態判定部がタッチ操作状態を連続的にタッチ操作する位置が変更されるドラッグ操作であると判定したとき、そのドラッグ操作による操作距離を蓄積する。アニメーション選択部は、蓄積量算出部が蓄積した操作距離に応じて、アニメーションデータ記憶部に記憶されたパターンを選択する。キャラクタ表示制御部は、アニメーション選択部で選択されたパターンに応じてキャラクタを描画し表示画面に表示する。
【００１２】
第４の発明は、上記第１の発明において、ゲーム装置は、領域設定部（図１０のＺＬ、ＺＲ）を、さらに備える。領域設定部は、ジョイント角度変更部が変更するジョイントの角度を指定する領域を、キャラクタの部位の少なくとも一部分に設定する。ジョイント角度変更部は、タッチ操作入力データに応じた位置データが領域設定部で設定された領域内を示すとき、その領域で指定される角度を用いてキャラクタのジョイントの角度を変更する。
【００１３】
第５の発明は、上記第４の発明において、領域設定部は、キャラクタの部位を２つの領域に２分割し、それら領域によってそれぞれ回転方向が相反する同一の角度だけジョイントの角度を変更するように指定する。
【００１４】
第６の発明は、上記第５の発明において、領域設定部は、２つの領域を分割する方向（Ｖａ）をゲーム空間のワールド座標系において常に固定して設定する。
【００１５】
第７の発明は、プレイヤの操作に応じて、ゲーム空間に登場するキャラクタを動作させるゲームを表現するゲーム装置のコンピュータ（２１）で実行されるゲームプログラムである。ゲーム装置は、ゲーム空間を表示画面に表示する表示部、その表示部の表示画面上を覆って設けられるタッチパネル、および記憶部（２２）を備えている。ゲームプログラムは、タッチ操作入力データ記憶ステップ（Ｓ７１）、キャラクタ位置制御ステップ（Ｓ５４、Ｓ５５）、キャラクタ表示制御ステップ（Ｓ５２、Ｓ７７）、タッチ部位検出ステップ（Ｓ５６、Ｓ７４）、およびジョイント角度変更ステップ（Ｓ７６）をコンピュータに実行させる。タッチ操作入力データ記憶ステップは、タッチパネルがタッチ操作されたタッチ操作入力データを記憶部に一時記憶する。キャラクタ位置制御ステップは、ゲーム空間におけるキャラクタの位置を制御する。キャラクタ表示制御ステップは、複数のボーンをそれぞれジョイントで連結するキャラクタの構造データ、それらボーンのそれぞれに対応して規定されるキャラクタの部位毎のポリゴンデータ、およびキャラクタの位置に基づいて、そのキャラクタを描画して表示画面に表示する。タッチ部位検出ステップは、タッチ操作入力データに対応するゲーム空間における位置データを算出し、その位置データに対応するキャラクタの部位を検出する。ジョイント角度変更ステップは、位置データに対応するキャラクタの部位が検出されたとき、その部位に対応するキャラクタのジョイントの角度をタッチ操作入力データに応じて変更する。キャラクタ表示制御ステップは、ジョイント角度変更ステップによってジョイント角度が変更された部位をその角度に応じてリアルタイムに変更してキャラクタを描画し表示画面に表示する。
【００１６】
第８の発明は、上記第７の発明において、タッチ操作状態判定ステップ（Ｓ７５、Ｓ７８）を、さらにコンピュータに実行させる。タッチ操作状態判定ステップは、タッチ操作入力データに基づいてタッチパネルに対するタッチ操作状態を判定する。ジョイント角度変更ステップは、タッチ操作状態判定ステップでタッチ操作状態を連続的にタッチ操作する位置が変更されるドラッグ操作であると判定したとき、そのドラッグ操作の方向に応じてキャラクタのジョイントの角度を変更する。
【００１７】
第９の発明は、上記第８の発明において、蓄積量算出ステップ（Ｓ７７）およびアニメーション選択ステップ（Ｓ７７）を、さらにコンピュータに実行させる。蓄積量算出ステップは、タッチ操作状態判定ステップがタッチ操作状態を連続的にタッチ操作する位置が変更されるドラッグ操作であると判定したとき、そのドラッグ操作による操作距離を記憶部に蓄積する。アニメーション選択ステップは、蓄積量算出ステップが蓄積した操作距離に応じて、キャラクタに対応したボーンおよびジョイントの位置の動きを示す複数パターンから１つのパターンを選択する。キャラクタ表示制御ステップは、アニメーション選択ステップで選択されたパターンに応じてキャラクタを描画し表示画面に表示する。
【００１８】
第１０の発明は、上記第７の発明において、領域設定ステップ（図１０のＺＬ、ＺＲ）を、さらにコンピュータに実行させる。領域設定ステップは、ジョイント角度変更ステップが変更するジョイントの角度を指定する領域を、キャラクタの部位の少なくとも一部分に設定する。ジョイント角度変更ステップは、タッチ操作入力データに応じた位置データが領域設定ステップで設定された領域内を示すとき、その領域で指定される角度を用いてキャラクタのジョイントの角度を変更する。
【００１９】
第１１の発明は、上記第１０の発明において、領域設定ステップは、キャラクタの部位を２つの領域に２分割し、それら領域によってそれぞれ回転方向が相反する同一の角度だけジョイントの角度を変更するように指定する。
【００２０】
第１２の発明は、上記第１１の発明において、領域設定ステップは、２つの領域を分割する方向をゲーム空間のワールド座標系において常に固定して設定する。
【発明の効果】
【００２１】
第１の発明によれば、タッチパネルを介してタッチされたキャラクタの部位に設けられたジョイントの角度を直接コントロールすることができる。したがって、タッチ操作に応じてジョイントの角度を変化させることができるので、プライヤがあたかもキャラクタを触っているかのような操作が可能なゲーム装置を提供できる。また、タッチパネルへのタッチ操作がリアルタイムにジョイントの角度に反映されてキャラクタを動作させるため、様々な演出を行うことができる。
【００２２】
第２の発明によれば、キャラクタの部位が頭部等であるときに、タッチパネルを撫でるようなドラッグ操作の方向に応じて、キャラクタが頭を振るような表現が可能となるので、よりキャラクタへのタッチがリアルに感じられるゲーム装置を提供できる。
【００２３】
第３の発明によれば、キャラクタに対するドラッグ操作の蓄積量に応じて、姿勢等のパターンを変更してキャラクタを描画するよう構成できるので、よりキャラクタとのコミュニケーションにリアルさを持たせたゲーム装置を提供できる。
【００２４】
第４の発明によれば、キャラクタの部位に設けられた領域で指定される角度だけジョイント角度を変更するため、ジョイント角度の制御の処理が容易になる。
【００２５】
第５の発明によれば、キャラクタの部位が２つの領域のいずれかに属するため、当該部位をタッチ操作している限り角度が制御されない状態がなくなり、キャラクタの動きが自然になる。また、２つの領域を往復するようなタッチ操作を行うことによって、キャラクタの部位が往復動作するような表現を行うことができる。
【００２６】
第６の発明によれば、ジョイントの角度の変化に伴って２つの領域を区分けする境界の方向が変化しないため、同じタッチ操作位置に対してジョイント角度の変化による領域の切り替わりを防止することができ、プレイヤがタッチ操作位置を移動させることに応じてキャラクタの部位を動作させることができる。
【００２７】
また、本発明のゲームプログラムによれば、コンピュータに実行されることによって上述したゲーム装置と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００２８】
図面を参照して、本発明の一実施形態に係るゲームプログラムを実行するゲーム装置について説明する。なお、図１は、本発明のゲームプログラムを実行するゲーム装置１の外観図である。ここでは、ゲーム装置１の一例として、携帯ゲーム装置を示す。
【００２９】
図１において、本実施形態のゲーム装置１は、２つの液晶表示器（ＬＣＤ）１１および１２を所定の配置位置となるように、ハウジング１８に収納して構成される。具体的には、第１液晶表示器（以下、「ＬＣＤ」という）１１および第２ＬＣＤ１２を互いに上下に配置して収納する場合は、ハウジング１８が下部ハウジング１８ａおよび上部ハウジング１８ｂから構成され、上部ハウジング１８ｂが下部ハウジング１８ａの上辺の一部で回動自在に支持される。上部ハウジング１８ｂは、第１ＬＣＤ１１の平面形状よりも少し大きな平面形状を有し、一方主面から第１ＬＣＤ１１の表示画面を露出するように開口部が形成される。下部ハウジング１８ａは、その平面形状が上部ハウジング１８ｂよりも横長に選ばれ、横方向の略中央部に第２ＬＣＤ１２の表示画面を露出する開口部が形成され、第２ＬＣＤ１２を挟む何れか一方にスピーカ１５の音抜き孔が形成されるとともに、第２ＬＣＤ１２を挟む左右に操作スイッチ部１４が装着される。
【００３０】
操作スイッチ部１４は、第２ＬＣＤ１２の右横における下部ハウジング１８ａの一方主面に装着される動作スイッチ（Ａボタン）１４ａおよび動作スイッチ（Ｂボタン）１４ｂと、第２ＬＣＤ１２の左横における下部ハウジング１８ａの一方主面に装着される方向指示スイッチ（十字キー）１４ｃと、スタートスイッチ１４ｄと、セレクトスイッチ１４ｅと、側面スイッチ１４ｆおよび１４ｇとを含む。動作スイッチ１４ａおよび１４ｂは、例えばサッカーゲーム等のスポーツゲームにおいてはパスやシュートを行う等の指示、アクションゲームにおいてはジャンプ、パンチ、武器を動かす等の指示、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいてはアイテムの取得、武器またはコマンドの選択決定等の指示入力に使用される。方向指示スイッチ１４ｃは、プレイヤによって操作スイッチ部１４を用いて操作可能なプレイヤオブジェクト（またはプレイヤキャラクタ）の移動方向を指示したり、カーソルの移動方向を指示したりする等のゲーム画面における方向指示に用いられる。側面スイッチ（Ｌボタン）１４ｆおよび側面スイッチ（Ｒボタン）１４ｇは、下部ハウジング１８ａにおける上部面（上部側面）の左右に設けられる。また、必要に応じて、動作スイッチをさらに追加してもかまわない。
【００３１】
また、第２ＬＣＤ１２の上面には、タッチパネル１３（図１における破線領域）が装着される。タッチパネル１３は、例えば、抵抗膜方式、光学式（赤外線方式）、静電容量結合式の何れの種類でもよく、その上面をスタイラス１６（または指でも可）で押圧操作、移動操作、または撫でる操作をしたとき、スタイラス１６の座標位置を検出して座標データを出力する２次元ポインティングデバイスである。
【００３２】
上部ハウジング１８ｂの側面近傍には、必要に応じてタッチパネル１３を操作するスタイラス１６を収納するための収納孔（図１における二点破線領域）が形成される。この収納孔には、スタイラス１６が収納される。下部ハウジング１８ａの側面の一部には、ゲームプログラムを記憶したメモリ（例えば、ＲＯＭ）を内蔵したゲームカートリッジ１７（以下、単にカートリッジ１７と記載する）を着脱自在に装着するためのカートリッジ挿入部（図１における一点破線領域）が形成される。カートリッジ１７は、ゲームプログラムを記憶する情報記憶媒体であり、例えば、ＲＯＭまたはフラッシュメモリのような不揮発性半導体メモリが用いられる。カートリッジ挿入部の内部には、カートリッジ１７と電気的に接続するためのコネクタ（図２参照）が内蔵される。さらに、下部ハウジング１８ａ（または上部ハウジング１８ｂでも可）には、ＣＰＵ等の各種電子部品を実装した電子回路基板が収納される。なお、ゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性半導体メモリに限らず、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【００３３】
図２は、ゲーム装置１のブロック図である。図２において、ハウジング１８に収納される電子回路基板２０には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、所定のバスを介して、コネクタ２８が接続されるとともに、入出力インターフェース（Ｉ／Ｆ）回路２７、第１グラフィック処理ユニット（第１ＧＰＵ）２４、第２グラフィック処理ユニット（第２ＧＰＵ）２６、ＷＲＡＭ２２、およびＬＣＤコントローラ２９が接続される。コネクタ２８には、カートリッジ１７が着脱自在に接続される。カートリッジ１７は、ゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するＲＯＭ１７１とバックアップデータを書き換え可能に記憶するＲＡＭ１７２とを搭載する。カートリッジ１７のＲＯＭ１７１に記憶されたゲームプログラムは、ＷＲＡＭ２２にロードされ、当該ＷＲＡＭ２２にロードされたゲームプログラムがＣＰＵコア２１によって実行される。ＣＰＵコア２１は、ゲームプログラムを実行して得られる一時的なデータや画像を生成するためのデータをＷＲＡＭ２２に記憶する。Ｉ／Ｆ回路２７には、操作スイッチ部１４およびタッチパネル１３が接続されるとともに、スピーカ１５が接続される。
【００３４】
第１ＧＰＵ２４には、第１ビデオＲＡＭ（第１ＶＲＡＭ）２３が接続され、第２ＧＰＵ２６には、第２ビデオＲＡＭ（第２ＶＲＡＭ）２５が接続される。第１ＧＰＵ２４は、ＣＰＵコア２１からの指示に応じて、ＷＲＡＭ２２に記憶されている、画像を生成するためのデータに基づいて第１のゲーム画像を生成し、第１ＶＲＡＭ２３に描画（格納）する。第２ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＷＲＡＭ２２に記憶されている、画像を生成するためのデータに基づいて第２のゲーム画像を生成し、第２ＶＲＡＭ２５に描画（格納）する。第１ＶＲＡＭ２３および第２ＶＲＡＭ２５はＬＣＤコントローラ２９に接続される。
【００３５】
ＬＣＤコントローラ２９は、レジスタ２９１を含む。レジスタ２９１は、ＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ２９は、レジスタ２９１の値が０の場合は、第１ＶＲＡＭ２３に描画されたゲーム画像を第１ＬＣＤ１１に出力し、第２ＶＲＡＭ２５に描画されたゲーム画像を第２ＬＣＤ１２に出力する。また、レジスタ２９１の値が１の場合は、第１ＶＲＡＭ２３に描画されたゲーム画像を第２ＬＣＤ１２に出力し、第２ＶＲＡＭ２５に描画されたゲーム画像を第１ＬＣＤ１１に出力する。
【００３６】
Ｉ／Ｆ回路２７は、操作スイッチ部１４、タッチパネル１３、およびスピーカ１５などの外部入出力装置とＣＰＵコア２１との間のデータの受け渡しを行う回路である。タッチパネル１３（タッチパネル用のデバイスドライバを含む）は、第２ＶＲＡＭ２５の座標系に対応する座標系を有し、スタイラス１６によって入力（指示）された位置に対応する位置座標のデータを出力するものである。なお、本実施例では、第２ＬＣＤ１２の表示画面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル１３の検出精度も第２ＬＣＤ１２の表示画面に対応した２５６ｄｏｔ×１９２ｄｏｔとして説明するが、タッチパネル１３の検出精度は第２ＬＣＤ１２の表示画面の解像度よりも低いものであってもよいし、高いものであってもよい。
【００３７】
以下、図３〜図６を参照して、上記ゲーム装置１によって実行されるゲームプログラムによる具体的な表示画面例を説明する。なお、図３〜図６は、それぞれ第２ＬＣＤ１２に表示されたゲーム画面の一例である。
【００３８】
図３に示すように、本実施例においてゲーム装置１によって実行されるゲームは、ゲーム空間の一部が少なくとも第２ＬＣＤ１２に表示される。具体的には、ゲーム空間には複数のキャラクタ（図３では犬がキャラクタＣの１つとして示されている）Ｃが登場し、キャラクタＣとプレイヤとがタッチパネル１３を用いてふれ合ってプレイするゲームである。
【００３９】
図４において、例えば、プレイヤがスタイラス１６でタッチパネル１３の任意のポイントをタッチ操作したとき、そのタッチ操作されたタッチパネル座標（タッチ座標）に対応するゲーム空間座標にキャラクタＣが引き寄せられて移動する。やがて、図５に示すように、キャラクタＣの所定ポイント（例えば、前頭部にある所定ポイント）が上記タッチ座標位置に対応するゲーム空間座標に一致するように、キャラクタＣが動作する。これらの動作によって、プレイヤがタッチパネル１３をタッチ操作している位置にキャラクタＣが寄って来るように表現され、さらに当該位置に所定ポイントをあてるような動作をキャラクタＣが行うため、あたかもキャラクタＣを呼び寄せたような感覚をプレイヤに与えられる。
【００４０】
その後、図６の上図に示すように、プレイヤが図５で示したタッチ状態からタッチパネル１３へのタッチ操作を続けたまま左（図示Ｕ方向）へドラッグする操作（以下、単にドラッグ操作と記載する）を行ったとき、キャラクタＣは、当該左へのドラッグ操作に応じるように向かって左回転方向（図示Ｌ方向）に頭部を振るような動作を行う。また、図６の下図に示すように、プレイヤがタッチパネル１３上で右（図示Ｖ方向）にドラッグ操作したとき、キャラクタＣは、当該右へのドラッグ操作に応じるように向かって右回転方向（図示Ｒ方向）に頭部を振るような動作を行う。つまり、プレイヤがタッチパネル１３を介してキャラクタＣの頭部を左右に撫でるようにタッチ操作すると、キャラクタＣの頭部が左右に振られて、あたかも本物のキャラクタＣを撫でてキャラクタＣが反応しているような演出が行われる。また、プレイヤがキャラクタＣの所定部位に対してドラッグ操作した累積操作量に応じて、キャラクタＣの表情や姿勢がアニメーションデータによって変更される。
【００４１】
以下、図７〜図１０を参照して、キャラクタＣのデータ構造について説明する。なお、図７は、キャラクタＣのデータ構造を示す図である。図８は、ボーンＢおよびジョイントＪに設定される座標軸を説明するための図である。図９は、キャラクタＣが動作する一例に応じたジョイントＪの回転動作を説明するための図である。図１０は、タッチ操作に応じてジョイントＪの回転角度および方向を決定する領域ＺＬおよびＺＲを示す図である。
【００４２】
図７において、キャラクタＣは、複数のボーンＢ（図７では多角形図形で示す）およびジョイントＪ（図７では球形図形で示す）を構造データとしてその骨組みが定義される。例えば、キャラクタＣを動物で例えるなら、ボーンＢが骨であり、ジョイントＪが関節である。また、描画されるキャラクタＣの表面は、各ボーンＢに対応して規定される所要数のポリゴンデータＰｏ（図７では破線で示す）によって構成されている。そして、各ポリゴンデータＰｏにテクスチャデータをマッピングすることによって、キャラクタＣが３次元表示される。
【００４３】
各ボーンＢは、ジョイントＪによって連結されており、ジョイントＪ自体を回転や移動等することでボーンＢを動かすことができる。そして、ボーンＢの動きに応じて、当該ボーンＢで規定されるポリゴンデータＰｏの位置や角度を変えて描画することによって、キャラクタＣが動作しているように表現される。
【００４４】
図８において、キャラクタＣのジョイントＪおよびボーンＢの組には、それぞれ３次元座標ＸＹＺが定義される。ジョイントＪの中心を通るボーンＢの方向をＸ軸と定義する。そして、ジョイントＪの中心を通りボーンＢに垂直な平面上にＹおよびＺ軸が定義され、Ｘ、Ｙ、およびＺ軸が互いに垂直にジョイントＪの中心で交差する。
【００４５】
図６の下図を用いて説明したように、プレイヤがタッチパネル１３上で右にキャラクタＣの頭部をドラッグ操作したとき、頭部が右回転方向に振るような動作を行う。図９を参照して、このときのジョイントＪおよびボーンＢの動作について説明する。例えば、上述したドラッグ操作に応じてキャラクタＣの頭部を表すポリゴンデータＰｏを規定するボーンＢが対象となり、当該ボーンＢを連結するジョイントＪが当該ドラッグ操作に応じて動作する（図９において実線で示すボーンＢおよびジョイントＪ）。具体的には、動作対象のジョイントＪがボーンＢの方向を示すＸ軸を中心として右回転方向（図示Ｒ方向）に角度θ回転する。これによって、Ｙ軸が図示Ｙｒ軸の位置に移動し、Ｚ軸が図示Ｚｒ軸の位置に移動する。この回転によって、対象となったボーンＢで定義されるポリゴンデータＰｏが図示Ｒ方向に角度θ回転する。このようなジョイントＪの回転によって、第２ＬＣＤ１２にはキャラクタＣが頭部を右回転方向に振るように表現される（図６下図参照）。
【００４６】
次に、図１０を参照して、タッチ操作されたタッチ座標とジョイントＪの回転角度および方向について説明する。図１０（ａ）に示すように、上述した回転動作を行うキャラクタＣのポリゴンデータＰｏ（例えば、犬の頭部）に対して、左回転領域ＺＬおよび右回転領域ＺＲが設定される。上記ポリゴンデータＰｏを規定するボーンＢを連結するジョイントＪの中心から、ワールド座標系における直上方向に角度基準ベクトルＶａが設定されている。なお、角度基準ベクトルＶａは、ワールド座標系においてその方向が直上方向に固定されている。上記ポリゴンデータＰｏは、角度基準ベクトルＶａによって２分割され、それぞれの領域が左回転領域ＺＬおよび右回転領域ＺＲに設定される。具体的には、ポリゴンデータＰｏが頭部の場合、当該頭部の略右半分（正面から見て略左半分）が左回転領域ＺＬに設定され、当該頭部の略左半分（正面から見て略右半分）が左回転領域ＺＬに設定される。
【００４７】
図６の上図を用いて説明したように、プレイヤがタッチパネル１３上で左にキャラクタＣの頭部をドラッグ操作したとき、当該ドラッグ操作で入力されるタッチ座標に対応するゲーム空間座標が左回転領域ＺＬ内となる。このドラッグ操作で左回転領域ＺＬが指定されたとき、ジョイントＪがボーンＢの方向を示すＸ軸を中心として正面から見て左回転方向に角度θ回転する。図１０（ｂ）に示すように、この回転によって、対象となったボーンＢで定義されるポリゴンデータＰｏ（頭部）が角度θだけ正面から見て左回転する。なお、角度基準ベクトルＶａは方向が固定されているため、この回転動作に応じてその方向は変化しない。したがって、ポリゴンデータＰｏに設定される左回転領域ＺＬおよび右回転領域ＺＲが図１０（ｂ）に示すように上記回転動作に応じて変化する。
【００４８】
一方、図６の下図を用いて説明したように、プレイヤがタッチパネル１３上で右にキャラクタＣの頭部をドラッグ操作したとき、当該ドラッグ操作で入力されるタッチ座標に対応するゲーム空間座標が右回転領域ＺＲ内となる。このドラッグ操作で右回転領域ＺＲが指定されたとき、ジョイントＪがボーンＢの方向を示すＸ軸を中心として正面から見て右回転方向に角度θ回転する。図１０（ｃ）に示すように、この回転によって、対象となったボーンＢで定義されるポリゴンデータＰｏ（頭部）が角度θだけ正面から見て右回転する。なお、角度基準ベクトルＶａは方向が固定されているため、この回転動作に応じてその方向は変化しない。したがって、ポリゴンデータＰｏに設定される左回転領域ＺＬおよび右回転領域ＺＲが図１０（ｃ）に示すように上記回転動作に応じて変化する。したがって、プレイヤが角度基準ベクトルＶａを跨ぐようにキャラクタＣの頭部をドラッグ操作したとき、キャラクタＣがそのドラッグ操作に応じて頭部を左右に角度θだけ振るように動作する。
【００４９】
このように、タッチパネル１３に覆われた第２ＬＣＤ１２に表示されたキャラクタＣの頭部（例えば前頭部）を、プレイヤがタッチパネル１３を介して撫でるようにタッチ操作すると、キャラクタＣの頭部が左右に振られていかにも本物のキャラクタＣを撫でているような演出が行われる。つまり、プレイヤがタッチパネル１３を撫でるようにドラッグ操作するとき、当該ドラッグ操作の方向に応じて３次元オブジェクトであるキャラクタＣの頭部に設定されるジョイントＪの角度が変化するため、あたかも頭部を撫でて反応しているような動作が演出できる。したがって、タッチパネル１３へのタッチ操作がリアルタイムにジョイントＪの角度に反映して３次元キャラクタＣを動作させることによって、様々な演出を行うことができる。
【００５０】
図１１は、カートリッジ１７から適時読み出して格納されるＷＲＡＭ２２のイメージを示す図である。図１１に示すように、ＷＲＡＭ２２には、ゲーム装置１のコンピュータ、特にＣＰＵコア２１によって実行可能な形式の命令群を記憶するプログラム記憶領域２２ａおよびデータ群を記憶するデータ記憶領域２２ｂと有している。なお、本実施例では、ゲームプログラムやデータをカートリッジ１７に記録させたが、これらプログラムおよびデータを他の媒体や通信回線を通じて供給することもできる。
【００５１】
プログラム記憶領域２２ａに適時格納されるゲームプログラムは、ゲーム装置１に実行させる機能ごとに分解したプログラムとして示せば、例えば、タッチパネルデータ取得プログラム２２１、タッチオン・オフ検出プログラム２２２、タッチ部位検出プログラム２２３、タッチ操作状態判定プログラム２２４、ジョイント角度変更プログラム２２５、およびキャラクタ描画プログラム２２６などによって構成される。
【００５２】
タッチパネルデータ取得プログラム２２１は、後述するタッチ座標データバッファ２２８からのデータを読み出すことによって、プレイヤがタッチパネル１３を操作したタッチパネル座標位置（タッチ座標）を取得するプログラムである。タッチオン・オフ検出プログラム２２２は、プレイヤがタッチパネル１３をタッチしているか否かを検出するプログラムである。タッチ部位検出プログラム２２３は、タッチパネルデータ取得プログラム２２１の実行によって取得されたタッチ座標に対応するゲーム空間座標を算出し、当該ゲーム空間座標が示すタッチ部位を検出するためのプログラムである。タッチ操作状態判定プログラム２２４は、タッチパネルデータ取得プログラム２２１の実行によって取得されたタッチ座標を分析して、プレイヤによるタッチパネル１３への操作が上述したドラッグ操作か否かを判断するためのプログラムである。
【００５３】
ジョイント角度変更プログラム２２５は、タッチ部位検出プログラム２２３の実行によって検出されたタッチ部位が示すポリゴンデータの領域に応じて、キャラクタのジョイント角度を変更するプログラムである。キャラクタ描画プログラム２２６は、構造データ（ボーンＢ、ジョイントＪ）、ポリゴンデータ、およびテクスチャデータに応じて、ゲーム空間内に設定されたキャラクタの画像を第２ＬＣＤ１２に表示させるためのものである。
【００５４】
データ記憶領域２２ｂに適時格納されるデータ群は、例えばタッチオンフラグ２２７、タッチ座標データバッファ２２８、タッチ座標変化記憶バッファ２２９、部位座標記憶バッファ２３０、キャラクタ描画データ２３１、およびアニメーションデータ２３２などである。
【００５５】
タッチオンフラグ２２７は、タッチオン・オフ検出プログラム２２２の実行によってプレイヤがタッチパネル１３をタッチしていると判断されたときにオンされるフラグである。タッチ座標データバッファ２２８は、タッチパネル１３から入力する入力情報（タッチパネル座標位置；タッチ座標）を一時的に保存しておく記憶領域である。タッチ座標変化記憶バッファ２２９は、単位時間毎のタッチ座標の変化を一時的に保存しておく記憶領域である。部位座標記憶バッファ２３０は、タッチ部位検出プログラム２２３の実行によって検出されたタッチ部位のゲーム空間座標を一時的に保存しておく記憶領域である。
【００５６】
キャラクタ描画データ２３１は、ゲーム画面に複数のキャラクタＣａ、Ｃｂ、…Ｃｎをそれぞれ表示するためのデータである。例えば、キャラクタＣａをゲーム画面に表示するためのキャラクタ描画データ２３１は、構造データ２３１ａ、ポリゴンデータ２３１ｂ、およびテクスチャデータ２３１ｃを含んでいる。なお、構造データ２３１ａは、上述したような複数のボーンＢおよびジョイントＪを含んでいる。
【００５７】
アニメーションデータ２３２は、ゲーム画面に表示するキャラクタＣの姿勢や表情を設定するためのデータである。例えば、キャラクタＣが犬の場合、四つ足２３２ａ、おすわり２３２ｂ、伏せ２３２ｃ、横伏せ２３２ｄ、仰向け２３２ｅ、および喜び２３２ｆなどのデータがアニメーションデータ２３２として設定される。これらのアニメーションデータ２３２が適時選択されることによって、キャラクタ描画データ２３１の構造データのジョイント角度等が変更され、キャラクタＣがアニメーションデータ２３２に応じた姿勢となって描画される。
【００５８】
次に、図１２および図１３を参照して、ゲーム装置１で処理されるゲーム処理の動作について説明する。なお、図１２は、ゲーム装置１で処理されるゲーム処理の動作を示すフローチャートである。図１３は、図１２のステップ５７におけるタッチ制御処理の詳細な動作を示すサブルーチンである。
【００５９】
まず、ゲーム装置１の電源（図示せず）がＯＮされると、ＣＰＵコア２１によってブートプログラム（図示せず）が実行され、これによりカートリッジ１７に格納されているゲームプログラムがＷＲＡＭ２２にロードされる。当該ロードされたゲームプログラムがＣＰＵコア２１に実行されることによって、図１２に示すステップ（図１２および図１３では「Ｓ」と略称する）が実行される。そして、上記ゲームプログラムを実行することによって、当該ゲームプログラムに応じたゲーム画像などが第２ＬＣＤ１２に描画される。
【００６０】
図１２において、ＣＰＵコア２１は、ゲーム処理における初期化設定を行い（ステップ５１）、処理を次のステップに進める。具体的には、ＣＰＵコア２１は、タッチ中フラグをオフに設定し、ゲーム空間に配置するキャラクタ毎にアニメーションデータ２３２を初期設定し、初期位置にキャラクタを配置する。
【００６１】
次に、ＣＰＵコア２１は、ゲーム空間に配置されたキャラクタをそれぞれアニメーションデータや表示位置に基づいて描画し（ステップ５２）、処理を次のステップに進める。これによって、第２ＬＣＤ１２にキャラクタＣが配置されたゲーム空間が表示される。
【００６２】
次に、ＣＰＵコア２１は、プレイヤがタッチパネル１３をタッチ操作しているか否かを判断する（ステップ５３）。プレイヤがタッチパネル１３をタッチ操作している場合、ＣＰＵコア２１は、タッチオンフラグ２２７をオンに設定して処理を次のステップ５４に進める。一方、プレイヤがタッチパネル１３をタッチ操作していない場合、ＣＰＵコア２１は、タッチオンフラグ２２７をオフに設定して上記ステップ５２に戻って処理を繰り返す。
【００６３】
ステップ５４において、ＣＰＵコア２１は、プレイヤがタッチパネル１３をタッチ操作することによって得られるタッチ座標に対応するゲーム空間座標を求め、当該ゲーム空間座標の位置にキャラクタＣが移動したか否かを判断する。例えば、ＣＰＵコア２１は、ゲーム空間内にタッチ座標を投影する仮想投影面を設定し、タッチ座標によって指示された当該仮想投影面上の位置に向かってキャラクタＣを移動させる。そして、ＣＰＵコア２１は、タッチ操作で指示された位置までキャラクタＣが移動した場合、処理を次のステップ５５に進める。一方、ＣＰＵコア２１は、タッチ操作で指示された位置までキャラクタＣが移動していない場合、上記ステップ５２に戻って処理を繰り返す。
【００６４】
ステップ５５において、ＣＰＵコア２１は、仮想カメラによる視点位置を固定し、タッチ操作で指示された位置まで移動したキャラクタＣをゲーム空間上の固定位置に表示する。これによって、ＣＰＵコア２１は、タッチパネル１３による２次元のタッチ座標と３次元のゲーム空間座標とを対応しやすくなる。そして、ＣＰＵコア２１は、処理を次のステップに進める。
【００６５】
次に、ＣＰＵコア２１は、タッチ座標に対応するゲーム空間座標が示すキャラクタＣへのタッチ部位を検出する（ステップ５６）。そして、ＣＰＵコア２１は、検出したタッチ部位がキャラクタＣを特別動作させる部位か否かを判断する（ステップ５７）。タッチ部位が特別動作させる部位である場合、ＣＰＵコア２１は、タッチ制御処理を行い（ステップ５８）、処理を次のステップ５９に進める。なお、ステップ５８における詳細な処理については後述する。一方、タッチ部位が特別動作させる部位でない場合、ＣＰＵコア２１は、そのまま処理を次のステップ５９に進める。
【００６６】
ステップ５９において、ＣＰＵコア２１は、タッチオンフラグ２２７がオフであるか否かを判断する。タッチオンフラグ２２７がオフでない（つまり、オン）場合、ＣＰＵコア２１は、上記ステップ５６に戻って処理を繰り返す。一方、タッチオンフラグ２２７がオフの場合、ＣＰＵコア２１は、ゲームを終了するか否かを判断する（ステップ６０）。そして、ＣＰＵコア２１は、ゲームを継続する場合に上記ステップ５２に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。
【００６７】
次に、図１３を参照して、上記ステップ５７におけるタッチ制御処理の詳細な動作について説明する。まず、ＣＰＵコア２１は、プレイヤがタッチパネル１３をタッチ操作しているタッチ座標を取得し（ステップ７１）、当該２次元のタッチ座標位置に対応する３次元のゲーム空間座標を算出する（ステップ７２）。例えば、ＣＰＵコア２１は、ゲーム空間内に設定された仮想投影面にタッチ座標を投影し、投影された当該仮想投影面上の位置をタッチ座標位置に対応するゲーム空間座標として算出する。そして、ＣＰＵコア２１は、上記ステップ７２で算出したゲーム空間座標にキャラクタＣの所定ポイントが一致するように、キャラクタＣのボーンＢおよびジョイントＪ（図７参照）を調整し（ステップ７３）、処理を次のステップに進める。なお、キャラクタＣの所定ポイントは、当該キャラクタＣを特別動作させる複数部位（例えば、前頭部や手）内にそれぞれ設けられている。
【００６８】
次に、ＣＰＵコア２１は、タッチ座標に対応するタッチ部位がキャラクタＣの頭部か否かを判断する（ステップ７４）。そして、ＣＰＵコア２１は、タッチ部位が頭部である場合、処理を次のステップ７５に進める。一方、タッチ部位が頭部でない場合、処理を次のステップ７９に進める。
【００６９】
ステップ７５において、ＣＰＵコア２１は、プレイヤがタッチパネル１３を用いてドラッグ操作（図６参照）しているか否かを判断する。そして、ドラッグ操作をしていない場合、ＣＰＵコア２１は、そのまま当該サブルーチンによる処理を終了する。一方、ドラッグ操作が行われている場合、ＣＰＵコア２１は、キャラクタＣの頭部に設定されたジョイントＪをドラッグ操作に応じて角度θ（図９参照）変化させる（ステップ７６）。具体的には、ドラッグ操作で入力されるタッチ座標に対応するゲーム空間座標が左回転領域ＺＬ内である場合、Ｘ軸（ボーンＢ）を中心として正面から見て左回転方向にキャラクタＣの頭部ジョイントＪを角度θ回転させる（図１０（ｂ）参照）。また、ドラッグ操作で入力されるタッチ座標に対応するゲーム空間座標が右回転領域ＺＲ内である場合、Ｘ軸を中心として正面から見て右回転方向にキャラクタＣの頭部ジョイントＪを角度θ回転させる（図１０（ｃ）参照）。そして、ＣＰＵコア２１は、連続してドラッグ操作される操作量を蓄積し、当該蓄積量に応じてキャラクタＣのアニメーションデータ２３２を変更して描画して（ステップ７７）、処理を次のステップに進める。例えば、ＣＰＵコア２１は、上記ドラッグ操作の蓄積量が増えるにしたがって、四つ足２３２ａ→おすわり２３２ｂ→伏せ２３２ｃ→横伏せ２３２ｄ→仰向け２３２ｅのようにアニメーションデータ２３２を変化させ、この変化に応じてキャラクタＣのジョイントＪの角度をそれぞれ変更することによって姿勢を変更して描画する。
【００７０】
次に、ＣＰＵコア２１は、プレイヤがタッチパネル１３を用いたドラッグ操作を終了したか否かを判断する（ステップ７８）。そして、ドラッグ操作が継続している場合、ＣＰＵコア２１は、上記ステップ７６に戻って処理を繰り返す。一方、ドラッグ操作が終了した場合、ＣＰＵコア２１は、当該サブルーチンによる処理を終了する。
【００７１】
一方、上記ステップ７４においてタッチ部位が頭部でない場合、ＣＰＵコア２１は、その部位に応じた処理（ステップ７９）をタッチ操作が終了するまで（ステップ８０）行う。そして、プレイヤがタッチパネル１３へのタッチ操作を終了（ステップ８０でＹｅｓ）すると、タッチオンフラグ２２７をオフに設定して当該サブルーチンによる処理を終了する。
【００７２】
なお、上述した説明では、タッチ操作に対して変化するジョイントの角度が、単一のジョイントにおいて固定された角度で往復動作する一例を示したが、タッチ操作に対するジョイント角度の制御は固定値でなくてもかまわない。例えば、プレイヤによるタッチ操作で指定されるタッチ座標に追従するようにジョイントの角度を変化させてもかまわない。また、タッチ操作に応じて複数のジョイントの角度を変化させてもかまわない。
【００７３】
このように、タッチパネル１３へのタッチ操作をリアルタイムにジョイントＪの角度に反映させることによって、３次元のキャラクタＣの動作を制御することができる。そして、３次元のキャラクタＣは、処理的に簡素化されたボーンおよびジョイントで定義されるため、動作制御が簡単になる。
【００７４】
なお、上記実施例では、ゲーム装置１にタッチパネル１３が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上記実施例では表示器を２つ設けたが、表示器は１つであってもかまわない。すなわち、上記実施例において、第１ＬＣＤ１１設けず単にタッチパネル１３に覆われた第２ＬＣＤ１２のみを設けるようにしてもよい。また、上記実施例において、第２ＬＣＤ１２を設けず第１ＬＣＤ１１の上面にタッチパネル１３を設けても良い。
【００７５】
また、上記実施例では、ゲーム装置１にタッチパネル１３が一体的に設けられているが、タッチパネルを入力装置の１つとする一般的なパーソナルコンピュータなどの情報処理装置でゲームプログラムが実行されてもかまわない。
【産業上の利用可能性】
【００７６】
本発明に係るゲーム装置およびゲームプログラムは、タッチパネルへのタッチ操作をリアルタイムにジョイントの角度に反映して３次元キャラクタを動作させることが可能であり、タッチパネル等を入力手段とするゲーム装置や当該ゲーム装置で実行されるゲームプログラムとして有用である。
【図面の簡単な説明】
【００７７】
【図１】本発明の一実施形態に係るゲームプログラムを実行するゲーム装置の外観図
【図２】図１のゲーム装置１のブロック図
【図３】図１の第２ＬＣＤ１２に表示されたゲーム画面の一例
【図４】図１の第２ＬＣＤ１２に表示されたゲーム画面の一例
【図５】図１の第２ＬＣＤ１２に表示されたゲーム画面の一例
【図６】図１の第２ＬＣＤ１２に表示されたゲーム画面の一例
【図７】キャラクタＣのデータ構造を示す図
【図８】ボーンＢおよびジョイントＪに設定される座標軸を説明するための図
【図９】キャラクタＣが動作する一例に応じたジョイントＪの回転動作を説明するための図
【図１０】タッチ操作に応じてジョイントＪの回転角度および方向を決定する領域ＺＬおよびＺＲを示す図
【図１１】図１のカートリッジ１７から適時読み出して格納されるＷＲＡＭ２２のイメージを示す図
【図１２】図１のゲーム装置１で処理されるゲーム処理の動作を示すフローチャート
【図１３】図１２のステップ５７におけるタッチ制御処理の詳細な動作を示すサブルーチン
【符号の説明】
【００７８】
１…ゲーム装置
１１…第１ＬＣＤ
１２…第２ＬＣＤ
１３…タッチパネル
１４…操作スイッチ部
１５…スピーカ
１６…スタイラス
１７…カートリッジ
１７１…ＲＯＭ
１７２…ＲＡＭ
１８…ハウジング
２０…電子回路基板
２１…ＣＰＵコア
２２…ＷＲＡＭ
２３…第１ＶＲＡＭ
２４…第１ＧＰＵ
２５…第２ＶＲＡＭ
２６…第２ＧＰＵ
２７…Ｉ／Ｆ回路
２８…コネクタ
２９…ＬＣＤコントローラ
２９１…レジスタ
【図１】
2006122241.tif 000003
【図２】
2006122241.tif 000004
【図３】
2006122241.tif 000005
【図４】
2006122241.tif 000006
【図５】
2006122241.tif 000007
【図６】
2006122241.tif 000008
【図７】
2006122241.tif 000009
【図８】
2006122241.tif 000010
【図９】
2006122241.tif 000011
【図１０】
2006122241.tif 000012
【図１１】
2006122241.tif 000013
【図１２】
2006122241.tif 000014
【図１３】
2006122241.tif 000015