(57)【要約】      （修正有）【課題】割れ的画像を配置する行列式を算出するだけなので、画像処理を可及的簡素化することができる。【解決手段】ビデオゲーム装置１２はＣＰＵ３６を含み、ＣＰＵ３６はプレイヤが振り操作するコントローラ２２から送信される入力データに従ってゲームを進行する。プレイヤの振り操作に応じて、プレイヤキャラクタの打ったボールが的オブジェクトに衝突すると、その衝突位置が検出される。たとえば、通常の的画像と数種類の割れ的画像とが用意されており、衝突位置に応じて１の割れ的画像が選択される。また、的オブジェクトの中心から衝突位置に向かう方向と、割れ的画像の基準方向とが一致するように、割れ的画像を３次元仮想空間に配置するための行列式が算出される。そして、割れ的画像が配置され、その後、的オブジェクトが割れるように表示される。【選択図】図１
2008099899.tif 000002
【特許請求の範囲】
【請求項１】
操作手段と、記憶手段と、表示手段とを備えたゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータを、
前記操作手段から操作情報を取得する、操作情報取得手段、
前記操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを前記記憶手段に記憶された第1オブジェクト画像データに基づいて表示制御する、第1オブジェクト表示制御手段、
前記プレイヤが前記第１オブジェクトを接触させる目標となる目標オブジェクトを前記表示手段に表示する、目標オブジェクト表示手段、
複数の部分画像から成り、前記目標オブジェクトと同じ外観となる第２オブジェクトを、前記記憶手段に記憶された複数組の第２オブジェクト画像データのいずれかに基づいて表示制御する、第２オブジェクト表示制御手段、
前記第１オブジェクトと前記目標オブジェクトとが接触したかどうかを判定する、接触判定手段、
前記接触判定手段によって接触したことが判定されたとき、前記目標オブジェクトの中心から接触位置までの距離を算出する、距離算出手段、
前記接触判定手段によって接触したことが判定されたとき、前記目標オブジェクトの中心から前記接触位置に向かう方向を算出する、方向算出手段、および
前記距離算出手段で算出された距離に応じて、前記複数の第２オブジェクトのいずれかを選択する選択手段として機能させ、
前記第２オブジェクト表示制御手段は、前記選択手段によって選択された第２オブジェクトを前記方向算出手段で算出された方向を向くように表示させ、表示後に、当該第２オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる、ゲームプログラム。
【請求項２】
前記第２オブジェクト表示制御手段は、前記第２オブジェクトを構成する複数の部分画像のそれぞれを、ランダムに移動表示させるとき、当該複数の部分画像のそれぞれに、ランダムな大きさの初速度を設定し、表示画面下方に重力を設定した物理計算に基づいて移動表示させる、請求項１に記載のゲームプログラム。
【請求項３】
前記第２オブジェクト表示制御手段は、前記第２オブジェクトを構成する複数の部分画像の接合点についての第１ワールド座標を始点とし、当該複数の部分画像の各々の表示基準位置についての第２ワールド座標を終点とするベクトルの方向を、前記初速度の方向に決定する、請求項２記載のゲームプログラム。
【請求項４】
前記部分画像は１または複数のポリゴンによって構成される、請求項１ないし３のいずれかに記載のゲームプログラム。
【請求項５】
操作手段と、記憶手段と、表示手段とを備えたゲーム装置であって、
前記操作手段から操作情報を取得する、操作情報取得手段、
前記操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを前記記憶手段に記憶された第1オブジェクト画像データに基づいて表示制御する、第1オブジェクト表示制御手段、
前記プレイヤが前記第１オブジェクトを接触させる目標となる目標オブジェクトを前記表示手段に表示する、目標オブジェクト表示手段、
複数の部分画像から成り、前記目標オブジェクトと同じ外観となる第２オブジェクトを、前記記憶手段に記憶された複数組の第２オブジェクト画像データのいずれかに基づいて表示制御する、第２オブジェクト表示制御手段、
前記第１オブジェクトと前記目標オブジェクトとが接触したかどうかを判定する、接触判定手段、
前記接触判定手段によって接触したことが判定されたとき、前記目標オブジェクトの中心から接触位置までの距離を算出する、距離算出手段、
前記接触判定手段によって接触したことが判定されたとき、前記目標オブジェクトの中心から前記接触位置に向かう方向を算出する、方向算出手段、および
前記距離算出手段で算出された距離に応じて、前記複数の第２オブジェクトのいずれかを選択する選択手段を備え、
前記第２オブジェクト表示制御手段は、前記選択手段によって選択された第２オブジェクトを前記方向算出手段で算出された方向を向くように表示させ、表示後に、当該第２オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲームプログラムおよびゲーム装置に関し、特にたとえば、ボールを打ったり、弾を撃ったりすることにより、目標とする標的が砕けたり、予め設定された変化をしたりするゲームのための、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
一般的に、ボールを打ったり（跳ね返したり）、弾を撃ったり（射出したり）することにより、目標とする標的が砕けたり、予め設定された変化をしたりするゲームがよく知られている。特許文献１の画像処理装置は、崩壊後に分散させる表示ブロックの各々をまとまって移動可能な表示要素として予め設定しておき、オブジェクトが崩壊する様を表現する際、当該オブジェクトが他のオブジェクトと衝突した衝突部分のブロックを消滅させ、消滅させたブロックに隣接するブロックを衝突の強さに応じて飛ばすなどの様子を表示する。
【０００３】
また、特許文献２のゲーム装置は、攻撃対象への破損状態を分かりやすく表示するために、攻撃対象に弾が着弾したことに応じて、攻撃対象から分離パーツを新たに生成して分離する。
【特許文献１】特開２０００−１１３２２５
【特許文献２】特開２０００−１５７７２９
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、まとまって一つのオブジェクトを形成している表示ブロックの各々に対して、複雑な画像処理を行う必要がある。また、特許文献２に記載の技術も同様に、攻撃対象の破損を表示する時に、着弾箇所に応じて、分離パーツを分離する時に、新たにポリゴンを生成して処理を行う必要がある。
【０００５】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【０００６】
また、この発明の他の目的は、ゲーム画面が単調にならない範囲で画像処理を可及的簡素化できる、ゲープログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００８】
請求項１の発明は、操作手段と、記憶手段と、表示手段とを備えたゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータを、操作情報取得手段、第1オブジェクト表示制御手段、目標オブジェクト表示手段、第２オブジェクト表示制御手段、接触判定手段、距離算出手段、方向算出手段、および選択手段として機能させる。操作情報取得手段は、操作手段から操作情報を取得する。第1オブジェクト表示制御手段は、操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを記憶手段に記憶された第1オブジェクト画像データに基づいて表示制御する。目標オブジェクト表示手段は、プレイヤが第１オブジェクトを接触させる目標となる目標オブジェクトを表示手段に表示する。第２オブジェクト表示制御手段は、複数の部分画像から成り、目標オブジェクトと同じ外観となる第２オブジェクトを、記憶手段に記憶された複数組の第２オブジェクト画像データのいずれかに基づいて表示制御する。接触判定手段は、第１オブジェクトと目標オブジェクトとが接触したかどうかを判定する。距離算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置までの距離を算出する。方向算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置に向かう方向を算出する。選択手段は、距離算出手段で算出された距離に応じて、複数の第２オブジェクトのいずれかを選択する。そして、第２オブジェクト表示制御手段は、選択手段によって選択された第２オブジェクトを方向算出手段で算出された方向を向くように表示させ、表示後に、当該第２オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる。
【０００９】
請求項１の発明では、ゲーム装置（１２）は、操作手段（２２）と、記憶手段（４０）と、表示手段（３４）とを備える。ゲームプログラムは、ゲーム装置のコンピュータを、操作情報取得手段（３６，Ｓ５）、第1オブジェクト表示制御手段（３６，Ｓ３）、目標オブジェクト表示手段（３６，Ｓ１，Ｓ２１）、第２オブジェクト表示制御手段（３６，Ｓ１７）、接触判定手段（３６，Ｓ９，Ｓ１５）、距離算出手段（３６，Ｓ４３）、方向算出手段（３６，Ｓ４７）、および選択手段（３６，Ｓ４５）として機能させる。操作情報取得手段は、操作手段から操作情報を取得する。第1オブジェクト表示制御手段は、操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクト（１１０）を記憶手段に記憶された第1オブジェクト画像データ（９２ｂ）に基づいて表示制御する。目標オブジェクト表示手段は、プレイヤが第１オブジェクトを接触させる目標となる目標オブジェクト（１０８）を表示手段に表示する。第２オブジェクト表示制御手段は、複数の部分画像（Ｐ１，Ｐ２，Ｐ３，Ｐ４）から成り、目標オブジェクトと同じ外観となる第２オブジェクト（１４０，１５０，１６０）を、記憶手段に記憶された複数組の第２オブジェクト画像データ（９２ｄ）のいずれかに基づいて表示制御する。接触判定手段は、第１オブジェクトと目標オブジェクトとが接触したかどうかを判定する。距離算出手段は、接触判定手段によって接触したことが判定されたとき（Ｓ９およびＳ１５で“ＹＥＳ”）、目標オブジェクトの中心（Ｐ）から接触位置（Ｑ）までの距離（ｄ）を算出する。方向算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置に向かう方向を算出する。選択手段は、距離算出手段で算出された距離に応じて、複数の第２オブジェクトのいずれかを選択する。そして、第２オブジェクト表示制御手段は、選択手段によって選択された第２オブジェクトを方向算出手段で算出された方向を向くように表示させ、表示後に、当該第２オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる。したがって、第１オブジェクトが目標オブジェクトに接触したことにより、目標オブジェクトが割れる様子が表示される。
【００１０】
請求項１の発明によれば、接触位置に応じて選択された第２オブジェクトを、目標オブジェクトの中心から接触位置に向かう方向に向くように表示させるだけなので、ゲーム画面が単調にならない範囲で画像処理を可及的簡素化することができる。
【００１１】
請求項２の発明は請求項１に従属し、第２オブジェクト表示制御手段は、第２オブジェクトを構成する複数の部分画像のそれぞれを、ランダムに移動表示させるとき、当該複数の部分画像のそれぞれに、ランダムな大きさの初速度を設定し、表示画面下方に重力を設定した物理計算に基づいて移動表示させる。
【００１２】
請求項２の発明では、第２オブジェクト表示制御手段は、第２オブジェクトを構成する複数の部分画像のそれぞれに、ランダムな大きさの初速度を設定し、表示画面下方に重力を設定した物理計算に基づいて移動表示させる。つまり、部分画像は、放物運動や鉛直投射運動するように移動制御される。
【００１３】
請求項２の発明によれば、各部分画像を物理計算により、その移動を制御するだけなので、簡単な計算によって目標オブジェクトが割れた様子を表現することができる。
【００１４】
請求項３の発明は請求項２に従属し、第２オブジェクト表示制御手段は、第２オブジェクトを構成する複数の部分画像の接合点についての第１ワールド座標を始点とし、当該複数の部分画像の各々の表示基準位置についての第２ワールド座標を終点とするベクトルの方向を、初速度の方向に決定する。
【００１５】
請求項３の発明では、第２オブジェクト表示制御手段は、第２オブジェクトを構成する複数の部分画像の接続点（１２０）についての第１ワールド座標を始点とし、当該複数の部分画像の各々の表示基準位置（Ｐ１Ｇ，Ｐ２Ｇ，Ｐ３Ｇ，Ｐ４Ｇ）についての第２ワールド座標を終点とするベクトルの向きを初速度の方向に決定する。
【００１６】
請求項３の発明によれば、接続点を中心として複数の部分画像が放射状に移動するような初速度の方向が決定されるので、目標オブジェクトが割れて飛び散る様子を表現することができる。このため、リアリティのあるゲーム画面を表示することができる。
【００１７】
請求項４の発明は請求項１ないし３のいずれかに従属し、部分画像は１または複数のポリゴンによって構成される。
【００１８】
請求項４の発明では、部分画像は１または複数のポリゴンによって構成される。このような部分画像によって第２オブジェクトは構成される。
【００１９】
請求項４の発明によれば、平面的形状や立体的形状の標的オブジェクトについての第２オブジェクトを構成することができる。
【００２０】
請求項５の発明は、操作手段と、記憶手段と、表示手段とを備えたゲーム装置であって、操作情報取得手段、第1オブジェクト表示制御手段、目標オブジェクト表示手段、第２オブジェクト表示制御手段、接触判定手段、距離算出手段、方向算出手段、および選択手段を備える。操作情報取得手段は、操作手段から操作情報を取得する。第1オブジェクト表示制御手段は、操作情報取得手段によって取得された操作情報に基づいて、プレイヤが射出または跳ね返す第1オブジェクトを記憶手段に記憶された第1オブジェクト画像データに基づいて表示制御する。目標オブジェクト表示手段は、プレイヤが第１オブジェクトを接触させる目標となる目標オブジェクトを表示手段に表示する。第２オブジェクト表示制御手段は、複数の部分画像から成り、目標オブジェクトと同じ外観となる第２オブジェクトを、記憶手段に記憶された複数組の第２オブジェクト画像データのいずれかに基づいて表示制御する。接触判定手段は、第１オブジェクトと目標オブジェクトとが接触したかどうかを判定する。距離算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置までの距離を算出する。方向算出手段は、接触判定手段によって接触したことが判定されたとき、目標オブジェクトの中心から接触位置に向かう方向を算出する。選択手段は、距離算出手段で算出された距離に応じて、複数の第２オブジェクトのいずれかを選択する。そして、第２オブジェクト表示制御手段は、選択手段によって選択された第２オブジェクトを方向算出手段で算出された方向を向くように表示させ、表示後に、当該第２オブジェクトを構成する複数の部分画像のそれぞれをランダムに移動表示させる。
【００２１】
請求項５の発明においても、請求項１の発明と同様に、ゲーム画面が単調にならない範囲で画像処理を可及的簡素化することができる。
【発明の効果】
【００２２】
この発明によれば、接触位置に応じて選択された第２オブジェクトを、目標オブジェクトの中心から接触位置に向かう方向に向くように表示させるだけなので、ゲーム画面が単調にならない範囲で画像処理を可及的簡素化することができる。
【００２３】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２４】
図１を参照して、この発明の一実施例であるゲームシステム１０は、ビデオゲーム装置１２およびコントローラ２２を含む。なお、この実施例では、ビデオゲーム装置１２は、最大４つのコントローラ２２と通信可能に設計されている。また、ビデオゲーム装置１２と各コントローラ２２とは、無線によって接続される。たとえば、無線通信は、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格に従って実行されてもよい。
【００２５】
なお、この実施例では、ビデオゲーム装置１２とコントローラ２２との間では無線通信を実行するため、本来的には「接続」の用語を用いるべきではない。しかしながら、ビデオゲーム装置１２とコントローラ２２との間での通信可能な連係状態を表す用語として、有線通信の場合の用語を借りて、便宜上「接続」と表現することとする。
【００２６】
ビデオゲーム装置１２は、略直方体のハウジング１４を含み、ハウジング１４の前面にはディスクスロット１６が設けられる。ディスクスロット１６から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク１８が挿入されて、ハウジング１４内のディスクドライブ６８（図２参照）に装着される。
【００２７】
また、ビデオゲーム装置１２のハウジング１４の前面であり、ディスクスロット１６の近傍には、メモリカードスロットカバー２８が設けられる。このメモリカードスロットカバー２８の内側には、メモリカードスロット（図示せず）が設けられ、外部メモリカード（以下、単に「メモリカード」という。）３０（図２参照）が挿入される。メモリカード３０は、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカード３０に対して行うことに代えて、たとえばビデオゲーム装置１２の内部にフラッシュメモリ等の内部メモリを設けて、当該内部メモリに対して保存を行うようにしてもよい。
【００２８】
ビデオゲーム装置１２のハウジング１４の後面には、ＡＶケーブルコネクタ（図示せず）が設けられ、そのコネクタを用いて、ＡＶケーブル３２を通してビデオゲーム装置１２にモニタ３４を接続する。このモニタ３４は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２は、ビデオゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ（モニタ）３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声が出力される。
【００２９】
なお、ビデオゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、ビデオゲーム装置１２は、家庭用電源（商用電源）を、駆動に適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００３０】
このゲームシステム１０において、ユーザまたはプレイヤがゲーム（または他のアプリケーション）をプレイするために、ユーザはまずビデオゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）をストアしている適宜の光ディスク１８を選択し、その光ディスク１８をビデオゲーム装置１２のディスクスロット１６を通してディスクドライブ６８にローディングする。応じて、ビデオゲーム装置１２がその光ディスク１８にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはビデオゲーム装置１２に入力を与えるためにコントローラ２２を操作する。
【００３１】
図２は図１実施例のビデオゲームシステム１０の電気的な構成を示すブロック図である。ビデオゲーム装置１２には、ＣＰＵ３６が設けられる。このＣＰＵ３６は、ビデオゲーム装置１２の全体的な制御を担当する。ＣＰＵ３６は、ゲームプロセッサとして機能し、このＣＰＵ３６には、バスを介して、メモリコントローラ３８が接続される。メモリコントローラ３８は主として、ＣＰＵ３６の制御の下で、バスを介して接続されるメインメモリ４０の書込みや読出しを制御する。このメモリコントローラ３８にはＧＰＵ(Graphics Processing Unit) ４２が接続される。
【００３２】
ＧＰＵ４２は、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、メモリコントローラ３８を介してＣＰＵ３６からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従って、ジオメトリユニット４４およびレンダリングユニット４６によって３Ｄのゲーム画像を生成する。つまり、ジオメトリユニット４４は、３次元座標系の各種オブジェクト（複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも３つの頂点座標によって定義される多角形平面をいう。）の回転，移動，変形等の座標演算処理を行う。レンダリングユニット４６は、各種オブジェクトの各ポリゴンにテクスチャ（模様画像）を貼り付けるなどの画像生成処理を施す。したがって、ＧＰＵ４２によって、ゲーム画面上に表示すべき３次元画像データが作成され、その画像データがフレームバッファ４８内に記憶される。
【００３３】
なお、ＧＰＵ４２が作画コマンドを実行するにあたって必要なデータ（プリミティブまたはポリゴンやテクスチャ等）は、ＧＰＵ４２がメモリコントローラ３８を介して、メインメモリ４０から入手する。
【００３４】
フレームバッファ４８は、たとえばラスタスキャンモニタ３４の１フレーム分の画像データを描画（蓄積）しておくためのメモリであり、ＧＰＵ４２によって１フレーム毎に書き換えられる。具体的には、フレームバッファ４８は、１画素（ピクセル）毎に、画像の色情報を順序立てて記憶している。ここで、色情報は、Ｒ，Ｇ，Ｂ，Ａについてのデータであり、たとえば、８ビットのＲ（赤）データ、８ビットのＧ（緑）データ、８ビットのＢ（青）データおよび８ビットのＡ（アルファ）データである。なお、Ａデータは、マスク（マット画像）についてのデータである。後述のビデオＩ／Ｆ５８がメモリコントローラ３８を介してフレームバッファ４８のデータを読み出すことによって、モニタ３４の画面上に３次元ゲーム画像が表示される。
【００３５】
また、Ｚバッファ５０は、フレームバッファ４８に対応する画素数×１画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ４８の各記憶位置に対応するドットの奥行き情報または奥行きデータ（Ｚ値）を記憶するものである。
【００３６】
なお、フレームバッファ４８およびＺバッファ５０は、ともにメインメモリ４０の一部を用いて構成されてもよく、また、これらはＧＰＵ４２の内部に設けられてもよい。
【００３７】
メモリコントローラ３８はまた、ＤＳＰ(Digital Signal Processor)５２を介して、オーディオ用のＲＡＭ（以下、「ＡＲＡＭ」という。）５４に接続される。したがって、メモリコントローラ３８は、メインメモリ４０だけでなく、サブメモリとしてのＡＲＡＭ５４の書込みおよび／または読出しを制御する。
【００３８】
ＤＳＰ５２は、サウンドプロセッサとして働き、メインメモリ４０に記憶されたサウンドデータ（図示せず）を用いたり、ＡＲＡＭ５４に書き込まれている音波形（音色）データ（図示せず）を用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
【００３９】
メモリコントローラ３８は、さらに、バスによって、各インタフェース（Ｉ／Ｆ）５６，５８，６０，６２および６４に接続される。コントローラＩ／Ｆ５６は、ビデオゲーム装置１２にＢｌｕｅｔｏｏｔｈ通信ユニット６６を介して接続されるコントローラ２２のためのインタフェースである。具体的に言うと、Ｂｌｕｅｔｏｏｔｈ通信ユニット６６は、コントローラ２２から送信される入力データを受信し、コントローラＩ／Ｆ５６は、その入力データを、メモリコントローラ３８を通してＣＰＵ３６に与える。ただし、この実施例では、入力データは、後述する、操作データおよび加速度データの少なくとも一方を含む。
【００４０】
なお、図２では、簡単のため、１台のコントローラ２２を示してあるが、図１を用いて説明したように、ビデオゲーム装置１２には、最大で４台のコントローラ２２が通信可能に接続される。
【００４１】
ビデオＩ／Ｆ５８は、フレームバッファ４８にアクセスし、ＧＰＵ４２で作成した画像データを読み出して、画像信号または画像データ（ディジタルＲＧＢＡピクセル値）をＡＶケーブル３２（図１）を介してモニタ３４に与える。
【００４２】
外部メモリＩ／Ｆ６０は、ビデオゲーム装置１２に挿入されるメモリカード３０をメモリコントローラ３８に連係させる。それによって、メモリコントローラ３８を介して、ＣＰＵ３６がこのメモリカード３０にデータを書込み、またはメモリカード３０からデータを読み出すことができる。オーディオＩ／Ｆ６２は、メモリコントローラ３８を通してＤＳＰ５２から与えられるオーディオデータまたは光ディスク１８から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号（音声信号）をモニタ３４のスピーカ３４ａに与える。
【００４３】
そして、ディスクＩ／Ｆ６４は、ディスクドライブ６８をメモリコントローラ３８に接続し、したがって、ＣＰＵ３６がディスクドライブ１６を制御する。このディスクドライブ６８によって光ディスク１８から読み出されたプログラムデータやテクスチャデータ等が、ＣＰＵ３６の制御の下で、メインメモリ４０に書き込まれる。
【００４４】
図３（Ａ）および図３（Ｂ）は、コントローラ２２の外観の一例を示す。図３（Ａ）はコントローラ２２を上面側から見た斜視図であり、図３（Ｂ）はコントローラ２２を下面側から見た斜視図である。
【００４５】
図３（Ａ）および図３（Ｂ）を参照して、コントローラ２２は、たとえばプラスチック成型によって形成されたハウジング２２ａを有している。ハウジング２２ａは、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング２２ａ（コントローラ２２）には、入力手段（複数のボタンないしスイッチ）２６が設けられる。具体的には、図３（Ａ）に示すように、ハウジング２２ａの上面には、十字キー２６ａ，Ｘボタン２６ｂ，Ｙボタン２６ｃ，Ａボタン２６ｄ，セレクトスイッチ２６ｅ，メニュー（ホーム）スイッチ２６ｆ，スタートスイッチ２６ｇおよび電源スイッチ２６ｈが設けられる。また、図３（Ｂ）に示すように、ハウジング２２ａの下面に傾斜面が形成されており、この傾斜面に、Ｂトリガースイッチ２６ｉが設けられる。
【００４６】
十字キー２６ａは、４方向プッシュスイッチであり、矢印で示す４つの方向、前（または上）、後ろ（または下）、右および左の操作部を含む。この操作部のいずれか１つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト（プレイヤキャラクタまたはプレイヤオブジェクト）の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００４７】
Ｘボタン２６ｂおよびＹボタン２６ｃは、それぞれ、押しボタンスイッチであり、３次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整するために使用される。または、Ｘボタン２６ｂおよびＹボタン２６ｃは、Ａボタン２６ｄおよびＢトリガースイッチ２６ｉと同じ操作或いは補助的な操作をする場合に用いることもあり得る。
【００４８】
Ａボタンスイッチ２６ｄは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ（撃つ，跳ね返す）、投げる（射出する）、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、打つ、武器を使うなどを指示することができる。また、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
【００４９】
セレクトスイッチ２６ｅ、メニュースイッチ２６ｆ、スタートスイッチ２６ｇおよび電源スイッチ２６ｈもまた、押しボタンスイッチである。セレクトスイッチ２６ｅは、ゲームモードを選択するために使用される。メニュースイッチ２６ｆは、ゲームメニュー（メニュー画面）を表示するために使用される。スタートスイッチ２６ｇは、ゲームを開始（再開）したり、一時停止したりするなどのために使用される。電源スイッチ２６ｈは、ビデオゲーム装置１２の電源を遠隔操作によってオン／オフするために使用される。
【００５０】
なお、この実施例では、コントローラ２２自体をオン／オフするための電源スイッチは設けておらず、コントローラ２２の入力手段２６のいずれかを操作することによってコントローラ２２はオンとなり、一定時間（たとえば、３０秒）以上操作しなければ自動的にオフとなるようにしてある。
【００５１】
Ｂトリガースイッチ２６ｉもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガーを入力したり、コントローラ２２で選択した位置を指定したりするために使用される。ただし、Ｂトリガースイッチ２６ｉを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Ｂトリガースイッチ２６ｉは、通常のＢボタンと同様に機能し、Ａボタン２６ｄによって決定したアクションを取り消すなどのために使用される。
【００５２】
また、図３（Ａ）に示すように、ハウジング２２ａの後端面に外部拡張コネクタ２２ｂが設けられ、ハウジング２２ａの上面であり、後端面側にはインジケータ２２ｃが設けられる。外部拡張コネクタ２２ｂは、図示しない別のコントローラを接続するためなどに使用される。インジケータ２２ｃは、たとえば、４つのＬＥＤで構成され、４つのうちのいずれか１つを点灯することにより、コントローラ２２の識別情報（コントローラ番号）を示す。
【００５３】
なお、図３（Ａ）および図３（Ｂ）に示したコントローラ２２の形状や、各入力手段２６の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。
【００５４】
図４はコントローラ２２の電気的な構成を示すブロック図である。この図４を参照して、コントローラ２２はマイコン７０を含み、このマイコン７０には、内部バス（図示せず）によって、入力手段２６、メモリ７２、加速度センサ７４および無線モジュール７６が接続される。また、無線モジュール７６には、アンテナ７８が接続される。
【００５５】
なお、図４では、簡単のため、上述した外部拡張コネクタ２２ｂ、インジケータ２２ｃ（ＬＥＤ）および電源回路は省略してある。また、図示は省略するが、コントローラ２２には、バイブレータやスピーカなども内蔵される。
【００５６】
マイコン７０は、コントローラ２２の全体制御を司り、入力手段２６および加速度センサ７４によって入力された情報（入力情報）を、入力データとして無線モジュール７６およびアンテナ７８を介してビデオゲーム装置１２に送信（入力）する。このとき、マイコン７０は、メモリ７２を作業領域ないしバッファ領域として用いる。
【００５７】
上述した入力手段２６（２６ａ−２６ｉ）からの操作信号（操作データ）は、マイコン７０に入力され、マイコン７０は操作データを一旦メモリ７２に記憶する。
【００５８】
また、加速度センサ７４は、コントローラ２２の縦方向（ｙ軸方向）、横方向（ｘ軸方向）および前後方向（ｚ軸方向）の３軸で各々の加速度を検出する。この加速度センサ７４は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【００５９】
なお、図３（Ａ）および図３（Ｂ）では省略したが、この実施例では、加速度センサ７４は、ハウジング２２ａの内部であり、十字キー２６ａが配置される付近に設けられる。また、図３（Ａ）および図３（Ｂ）に示すように、加速度センサ７４（コントローラ２２）の座標系は固定的に決定される。
【００６０】
たとえば、加速度センサ７４は、第１所定時間（たとえば、２００ｍｓｅｃ）毎に、ｘ軸，ｙ軸，ｚ軸の各々についての加速度（ａｘ，ａｙ，ａｚ）を検出し、検出した加速度のデータ（加速度データ）をマイコン７０に入力する。たとえば、加速度センサ７４は、各軸方向の加速度を、−２．０ｇ〜２．０ｇ（ｇは現実世界における重力加速度である。以下、同じ。）の範囲で検出する。マイコン７０は、加速度センサ７４から与えられる加速度データを、第２所定時間（たとえば、１フレーム：画面更新単位時間（１／６０ｓｅｃ））毎に検出し、一旦メモリ７２に記憶する。
【００６１】
したがって、マイコン７０は、操作データおよび加速度データの少なくとも一方を含む入力データを作成し、作成した入力データを、第３所定時間（たとえば、１フレーム）毎にビデオゲーム装置１２に送信する。
【００６２】
無線モジュール７６は、たとえばＢｌｕｅｔｏｏｔｈの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ７８から放射する。つまり、入力データは、無線モジュール７６によって微弱電波信号に変調されてアンテナ７８（コントローラ２２）から送信される。この微弱電波信号が上述したビデオゲーム装置１２に設けられたＢｌｕｅｔｏｏｔｈ通信ユニット６６によって受信される。受信された微弱電波は、復調（復号）および増幅などの処理を施され、したがって、ビデオゲーム装置１２（ＣＰＵ３６）は、コントローラ２２からの入力データを取得することができる。そして、ＣＰＵ３６は、取得した入力データとプログラム（ゲームプログラム）とに従って処理（ゲーム処理）を行う。
【００６３】
図５は、この実施例のゲームシステム１０でプレイ可能な仮想ゲームのゲーム画面１００の一例を示す図解図である。この図５を参照して、ゲーム画面１００には、プレイヤキャラクタ１０２が表示され、このプレイヤキャラクタ１０２はラケット１０４を持っている。また、壁１０６には、標的（的）としてのオブジェクト（的オブジェクト）１０８が表示される。この実施例では、的オブジェクト１０８は円形ないし円盤の形状を有している。また、ゲーム画面１００には、ボール１１０が表示される。
【００６４】
たとえば、ゲーム画面１００では、プレイヤキャラクタ１０２は、プレイヤの操作に従って、サーブされたまたは壁１０６（的オブジェクト１０８を含む。）に当って跳ね返されたボール１１０を打つ。このとき、プレイヤは、的オブジェクト１０８に狙いを定める。ただし、サーブされるボール１１０は、ゲーム画面１００の任意の位置で出現し、壁１０６や床に当るなどして、プレイヤキャラクタ１０２に向かって移動される。
【００６５】
なお、図５のゲーム画面１００では、プレイヤキャラクタ１０２が壁１０６に当って跳ね返されたボール１１０を打った様子が示される。
【００６６】
また、この実施例では、３次元仮想空間の座標（ワールド座標）は、水平面の左右方向（横方向）にＸ軸があり、水平面の前後方向（奥行き方向）にＺ軸があり、上下方向（高さ方向）にＹ軸があるものとする。そして、右方向がＸ軸のプラス方向であり、紙面に対して垂直上方向がＺ軸のプラス方向であり、上方向がＹ軸のプラス方向である。
【００６７】
図示は省略するが、たとえば、プレイヤは、コントローラ２２を片手で持ち、実際のラケットを振るような動作（振り操作）をすることにより、プレイヤキャラクタ１０２にボール１１０を打撃する動作（打撃動作）をさせることができる。これは、上述したような加速度センサ７４からの加速度データを検出することにより可能である。詳細な説明は省略するが、プレイヤがコントローラ２２を正しく握り、振り操作を行うと、加速度センサ７４のｚ軸方向に一定値（２．０ｇ）以上の加速度が、一定時間（たとえば、数十フレーム）以上現れる。ＣＰＵ３６は、入力データを検出して、それに含まれる加速度データを検出し、振り操作すなわち打撃動作の指示があるかどうかを判断する。
【００６８】
ただし、この実施例では、コントローラ２２を振り操作することにより、打撃動作の指示を入力するようにしてあるが、コントローラ２２のボタン操作によって打撃動作を指示することもできる。
【００６９】
プレイヤキャラクタ１０２がボール１１０を打ち、そのボール１１０が的オブジェクト１０８に接触する（当る，衝突する）と、当該的オブジェクト１０８は割れて、地面ないし床面に落下する。図６（Ａ）は、プレイヤキャラクタ１０２が打ったボール１１０が的オブジェクト１０８に衝突した直後の様子を示すゲーム画面１００が表示される。ただし、分かり易く示すために、ボール１１０は省略してある。この図６（Ａ）のゲーム画面１００では、的オブジェクト１０８が割れる場合の中心位置（割れ中心位置）１２０を黒丸印で示してあるが、実際のゲーム画面１１０においては、この割れ中心位置１２０すなわち黒丸印は表示されない。また、図６（Ｂ）には、割れた的オブジェクト１０８が落下している様子を示すゲーム画面１００が表示される。
【００７０】
なお、プレイヤキャラクタ１０２が打ったボール１１０が的オブジェクト１０８に衝突すると、点数が加算（得点処理）される。たとえば、衝突位置が的オブジェクト１０８の中心に近い程、点数が高くなる。また、プレイヤキャラクタ１０２がボール１１０を的オブジェクト１０８に連続して当てることができた場合には、通常の点数にボーナスを加算するようにしてもよい。
【００７１】
ただし、図示は省略するが、プレイヤキャラクタ１０２が打ったボール１１０が的オブジェクト１０８に当らない場合には、そのまま壁１０８や床に当って跳ね返ったり、所定の範囲（図示しないコート）の外に出たりする。ただし、プレイヤキャラクタ１０２が打ったボール１１０がコートの外に出た場合には、点数が減算（減点処理）される。または、プレイヤキャラクタ１０２のライフ（たとえば、使用可能なボール１１０の数）が減算される。
【００７２】
ここで、上述したように、ボール１１０が的オブジェクト１０８に衝突したことにより、的オブジェクト１０８が割れる様子を表現するような場合には、たとえば、的オブジェクト１０８を多数の部分画像（部品）で構成しておき、ボール１１０の衝突した位置（衝突位置）を検出して、その衝突位置を中心として各部品（パーツ）が放射状に飛び散り、その後、各パーツが落下するように移動表示して、的オブジェクト１０８が割れる様子を表現することが考えられる。
【００７３】
しかし、１種類の的オブジェクト１０８を用いる場合には、様々な衝突位置を想定すると、当該的オブジェクト１０８を比較的細かい大きさのパーツで構成する必要がある。かかる場合には、各パーツについての移動軌跡を算出する必要があるため、その計算処理の負担が大きく、しかも画像処理の負担も大きくなってしまう。
【００７４】
このため、的オブジェクト１０８が割れる様子のアニメーションを複数種類用意しておき、ボール１０８の当った位置に応じて１のアニメーションを選択し、選択したアニメーションに従って的オブジェト１０８が割れる様子を再生することも考えられる。しかし、アニメーションを開発する手間やメモリ容量を考慮すると、そのような方法をゲームに採用することは適当ではない。また、開発の手間やメモリ容量の圧迫を回避するため、アニメーションの数を減らすと、ゲーム画面が不自然であったり、ゲーム画面が単調になったりして、プレイヤがゲームに飽きてしまう怖れがある。
【００７５】
そこで、この実施例では、単調なゲーム画面とならず、しかも見た目の不自然さを失わない範囲で画像処理を可及的簡素化するようにしてある。以下、具体的に説明する。
【００７６】
図７（Ａ）〜図７（Ｄ）に示すように、この実施例の仮想ゲームでは、ボール１１０が衝突していない通常の的オブジェクト１０８を表示するための画像（通常的画像）１３０およびボール１１０の衝突により的オブジェクト１０８が割れる様子を表示するための３種類の画像（割れ的１画像１４０，割れ的２画像１５０，割れ的３画像１６０）が予め用意されている。
【００７７】
図７（Ａ）に示す通常的画像１３０は、複数のポリゴンを組み合わせることにより形成された円形ないし円盤のポリゴンモデルに、大きさの異なる同心円によって領域が区別された模様を構成するテクスチャが貼り付けられている。図面の都合上、単に円を描くことにより、領域が区別されていることを示してあるが、実際には、色分けしたり、同一色で輝度を変化させたり、モノクロで輝度を変化させたりして、領域が区別される。
【００７８】
また、図７（Ｂ）は割れ的１画像１４０を示し、図７（Ｃ）は割れ的２画像１５０を示し、そして、図７（Ｄ）は割れ的３画像１６０を示す。後述するように、割れ的１画像１４０、割れ的２画像１５０および割れ的３画像１６０は、ボール１１０が的オブジェクト１０８に衝突した位置に応じて選択的に使用される。簡単に説明すると、ボール１１０が的オブジェクト１０８の中央ないしその近傍に衝突すると、割れ的１画像１４０が選択される。また、ボール１１０が的オブジェクト１０８の端部に衝突すると、割れ的３画像１６０が選択される。さらに、ボール１１０が的オブジェクト１０８の中央部と端部との間付近に衝突すると、割れ的２画像１５０が選択される。
【００７９】
図７（Ｂ）に示す割れ的１画像１４０は、４つの部分画像すなわちパーツＰ１，Ｐ２，Ｐ３，Ｐ４によって構成される。図面から分かるように、割れ的１画像１４０を構成する４つのパーツＰ１，Ｐ２，Ｐ３，Ｐ４は、接合点（割れ中心位置）１２０を基準にして接合されている。この状態では、割れ的画像１４０は、通常的画像１３０と外観が同じである（同一形状、同一の大きさ、同一模様。以下、同様。）。また、割れ的１画像１４０では、割れ中心位置１２０はその中心に設定される。
【００８０】
ただし、図７（Ｂ）に示す割れ的１画像１４０では、各パーツＰ１，Ｐ２，Ｐ３，Ｐ４の形状等を分かり易くするために、各パーツＰ１，Ｐ２，Ｐ３，Ｐ４の外形線（区切り線）を示してある。また、割れ中心位置１２０の黒丸印が表示されない点は上述したとおりである。さらに、図示は省略するが、パーツＰ１，Ｐ２，Ｐ３，Ｐ４のそれぞれは、複数のポリゴンによって構成される。ただし、パーツは、１のポリゴンで構成されることもあり得る。さらにまた、この実施例では、簡単のため、４つのパーツＰ１−Ｐ４で割れ的１画像１４０が構成されているように示してあるが、パーツの数や形状は適宜変更可能である。これらの点は、後述する割れ的２画像１５０および割れ的３画像１６０についても同じである。
【００８１】
図７（Ｃ）に示す割れ的２画像１５０もまた、４つのパーツＰ１，Ｐ２，Ｐ３，Ｐ４で構成される。図面から分かるように、割れ的２画像１５０を構成する４つのパーツＰ１，Ｐ２，Ｐ３，Ｐ４は、割れ中心位置１２０を基準にして接合されている。この状態では、割れ的２画像１５０は、通常的画像１３０と外観が同じである。また、割れ的２画像１５０では、割れ中心位置１２０は、その中心から少し外周方向に外れた位置に設定される。
【００８２】
図７（Ｄ）に示す割れ的３画像１６０もまた、４つのパーツＰ１，Ｐ２，Ｐ３，Ｐ４で構成される。図面から分かるように、割れ的３画像１６０を構成する４つのパーツＰ１，Ｐ２，Ｐ３，Ｐ４は、割れ中心位置１２０を基準にして接合されている。この状態においては、割れ的３画像１６０は、通常的画像１３０と外観が同じである。また、割れ的３画像１６０では、割れ中心位置１２０は、その外周近傍の端部に設定される。
【００８３】
ただし、割れ的画像（１４０，１５０，１６０）はそれぞれローカル座標を有しており、ローカル座標系では、図７（Ｂ）−図７（Ｄ）を参照して分かるように、それぞれの割れ中心位置１２０は、該当する割れ的画像（１４０，１５０，１６０）の基準軸（基準方向）となるＸ軸上のプラス（原点を含む。）側に来るように設定される。
【００８４】
次に、的オブジェクト１０８が割れる様子をゲーム画面１００に表示する方法について説明する。図８（Ａ）は、的オブジェクト１０８であり、ボール１１０の衝突位置Ｑが黒丸印で示される。この衝突位置Ｑは実際にボール１１０が的オブジェクト１０８に衝突した位置であり、割れ的画像（１４０，１５０，１６０）の割れ中心位置１２０とは異なる。
【００８５】
なお、図８（Ａ）に点線で示す横棒は、３次元仮想空間（ワールド座標）のＸ軸に平行な直線であり、同じく点線で示す縦棒は、ワールド座標のＹ軸に平行な直線であり、いずれの直線も的オブジェクト１０８の中心Ｐを通る。
【００８６】
たとえば、ボール１１０が的オブジェクト１０８に衝突すると、衝突位置Ｑが検出され、中心Ｐ（ｘ１，ｙ１，ｚ１）と衝突位置Ｑ（ｘ２，ｙ２，ｚ２）との距離ｄが算出される。具体的には、距離ｄは数１に従って算出される。なお、この実施例の的オブジェクト１０８は、平面的なオブジェクトであり、ｚ１とｚ２とは等しいため、Ｚ成分は無視してある。
【００８７】
［数１］
距離ｄ＝√｛（ｘ１−ｘ２）２＋（ｙ１−ｙ２）２｝
距離ｄが算出されると、この距離ｄに応じて、割れ的画像（１４０，１５０，１６０）が選択される。この実施例では、図９に示すような割れ的画像選択テーブルが用意されており、この割れ的画像選択テーブルに従って割れ的画像（１４０，１５０，１６０）が選択されるのである。図９を参照して分かるように、距離ｄが長さＬ１未満である場合には、衝突位置Ｑが通常的画像１３０の中心Ｏないしその近傍であるため、割れ的１画像１４０が選択される。また、距離ｄが長さＬ１以上長さＬ２未満である場合には、衝突位置Ｑが通常的画像１３０の中央よりも外側で端部よりも内側であるため、割れ的２画像１５０が選択される。そして、距離ｄが長さＬ２以上である場合には、衝突位置Ｑが通常的画像１３０の端部付近であるため、割れ的３画像１６０が選択される。このように、割れ的画像選択テーブルに従って割れ的画像（１４０，１５０，１６０）を選択するのは、衝突位置Ｑと割れ中心位置１２０とを一致ないしほぼ一致させて、的オブジェクト１０８が割れる様子を表示するためである。ここでは、図８（Ａ）に示した衝突位置Ｑに基づいて、図８（Ｂ）に示すように、割れ的２画像１５０が選択されたと仮定する。
【００８８】
なお、長さ（閾値）Ｌ１およびＬ２は、開発者ないしゲームプログラマが的オブジェクト１０８（通常的画像１３０）の大きさなどによって適宜設定する設計事項である。
【００８９】
次に、衝突位置Ｑに基づいて、割れ的画像（１４０，１５０，１６０）を３次元仮想空間（ワールド空間）に配置するための行列式を算出する。たとえば、的オブジェクト１０８の表示位置すなわち通常割れ画像１３０や割れ的画像（１４０，１５０，１６０）を、ワールド空間に配置する行列式Ａは、数２で示される。
【００９０】
ただし、図８（Ｂ）を参照して分かるように、割れ的２画像１５０（他の割れ的画像１４０，１６０も同様。）のローカル座標は、右方向にＸ軸のプラス方向、上方向にＹ軸のプラス方向、紙面に対して垂直上向きにＺ軸のプラス方向と定義する。また、割れ的画像（１４０，１５０，１６０）では、割れ中心位置１２０が、ローカル座標のＸ軸のプラス方向に作成されているものと定義する。
【００９１】
［数２］
2008099899.tif 000003
【００９２】
このとき、行列式の各要素は次の意味を持つ。通常的画像１３０や割れ的画像（１４０，１５０，１６０）をワールド空間に配置する場合に、要素（Ｘｘ，Ｘｙ，Ｘｚ）はローカル座標のＸ軸を当てはめる方向であり、要素（Ｙｘ，Ｙｙ，Ｙｚ）はローカル座標のＹ座標を当てはめる方向であり、要素（Ｚｘ，Ｚｙ，Ｚｚ）はローカル座標のＺ座標を当てはめる方向であり、要素（Ｐｘ，Ｐｙ，Ｐｚ）はローカル座標の中心Ｏを置くワールド座標である。
【００９３】
つまり、的オブジェクト１０８が、ワールド空間上で、ベクトル（ｎｘ，ｎｙ，ｎｚ）が示す方向を向き、ワールド座標（ｘ１，ｙ１，ｚ１）にその中心を置く場合の行列式Ｂは数３のように示される。ただし、ベクトル（ｎｘ，ｎｙ，ｎｚ）は、的オブジェクト１０８の中心Ｐから衝突位置Ｑに向かう方向（以下、「衝突方向」という。）についての単位ベクトルであり、ボール１１０が的オブジェクト１０８に衝突（接触）したときに、算出される。
【００９４】
ここで、的オブジェクト１０８の基準方向は、ワールド座標のＸ軸のプラス方向であり、通常的画像１３０の基準方向はローカル座標のＸ軸のプラス方向である。また、上述したように、割れ的画像（１４０，１５０，１６０）の基準方向はローカル座標のＸ軸のプラス方向である。これらの基準方向が各画像（オブジェクト）の向きを意味する。以下、同様である。
【００９５】
［数３］
2008099899.tif 000004
【００９６】
ただし、要素ａ１１，ａ１２，ａ２１，ａ２２，ａ３１，ａ３２は、ボール１１０の衝突位置Ｑに応じて算出される。
【００９７】
まず、割れ的画像（１４０，１５０，１６０）のローカル座標のＸ軸（基準方向）を当てはめる方向（方向ベクトル（ｍｘ，ｍｙ，ｍｚ））が、ワールド座標におけるボール１１０の中心Ｐ（ｘ１，ｙ１，ｚ１）と衝突位置Ｑ（ｘ２，ｙ２，ｚ２）とから数４に従って算出される。ただし、ｍｘ，ｍｙ，ｍｚのそれぞれは変数である。この数４に従って算出される方向ベクトル（ｍｘ，ｍｙ，ｍｚ）が、図８（Ａ）に示す衝突方向のベクトルである。
【００９８】
［数４］
ｍｘ＝ｘ２−ｘ１
ｍｙ＝ｙ２−ｙ１
ｍｚ＝ｚ２−ｚ１
次に、方向ベクトル（ｍｘ，ｍｙ，ｍｚ）は、数５に従って、的オブジェクト１０８の正面方向（Ｚ軸のプラス方向）の成分が無く、的オブジェクト１０８の面（ＸＹ平面に平行な面）と平行なベクトル（説明の便宜上、「平行ベクトル」という。）に変換される。
【００９９】
［数５］
ｍｘ＝ｍｘ−ｆ１×ｎｘ
ｍｙ＝ｍｙ−ｆ１×ｎｙ
ｍｚ＝ｍｚ−ｆ１×ｎｚ
ｆ１＝ｍｘ×ｎｘ＋ｍｙ×ｎｙ＋ｍｚ×ｎｚ
そして、平行ベクトルは、数６に従って、その長さ（大きさ）が１である単位ベクトルに変換される。
【０１００】
［数６］
ｍｘ＝ｍｘ／ｆ２
ｍｙ＝ｍｙ／ｆ２
ｍｚ＝ｍｚ／ｆ２
ｆ２＝√｛（ｍｘ）２＋（ｍｙ）２＋（ｍｚ）２｝
数６に従って決定された単位ベクトル（ｍｘ，ｍｙ，ｍｚ）が、数３に示した要素（ａ１１，ａ２１，ａ３１）である。したがって、行列式Ｂは数７で示される。
【０１０１】
［数７］
2008099899.tif 000005
【０１０２】
続いて、ワールド座標において、割れ的画像（１４０，１５０，１６０）のローカル座標のＹ軸を当てはめる方向（方向ベクトル（ｋｘ，ｋｙ，ｋｚ））が求められる。ここで、ローカル座標のＹ軸はローカル座標のＸ軸およびＺ軸の両方に直交する方向であるため、数８に示すように、方向ベクトル（ｋｘ，ｋｙ，ｋｚ）は、外積の計算によって簡単に求めることができる。ただし、ｋｘ，ｋｙ，ｋｚは変数である。
【０１０３】
［数８］
ｋｘ＝ｍｚ×ｎｙ−ｍｙ×ｎｚ
ｋｙ＝ｍｘ×ｎｚ−ｍｚ×ｎｘ
ｋｚ＝ｍｙ×ｎｘ−ｍｘ×ｎｙ
この数８に従って算出された方向ベクトル（ｋｘ，ｋｙ，ｋｚ）が、数３および数７に示した要素（ａ１２，ａ２２，ａ３２）である。したがって、行列式Ｂは数９で示される。なお、方向ベクトル（ｋｘ，ｋｙ，ｋｚ）は、その大きさが１の単位ベクトルである。
【０１０４】
［数９］
2008099899.tif 000006
【０１０５】
この数９で示される行列式Ｂを用いて割れ的画像（１４０，１５０，１６０）をワールド空間に配置することにより、所望の向き（衝突方向の単位ベクトル（ｎｘ，ｎｙ，ｎｚ）の向き）の割れ的画像（１４０，１５０，１６０）を的オブジェクト１０８として表示することができる。具体的には、図８（Ａ）に示す衝突位置Ｑに基づいて算出された行列式Ｂを用いて割れ的２画像１５０を３次元仮想空間に配置すると、図８（Ｃ）に示すように、割れ的２画像１５０は、そのローカル座標のＸ軸（基準方向）が図８（Ａ）に示した衝突方向Ｑを向くような状態で、その中心Ｏがワールド座標（ｘ１，ｙ１，ｚ１）に来るように、３次元仮想空間に配置されるのである。
【０１０６】
続いて、各パーツＰ１，Ｐ２，Ｐ３，Ｐ４の初速度（速度ベクトル）が算出され、その後、各パーツＰ１，Ｐ２，Ｐ３，Ｐ４は、算出された初速度と３次元仮想空間に設定される重力（重力加速度Ｇ）とに基づいて、鉛直投射運動ないし放物運動に従って移動される。つまり、簡単な物理計算によって、各パーツＰ１−Ｐ４は移動表示される。したがって、的オブジェクト１０８が割れて、パーツＰ１，Ｐ２，Ｐ３，Ｐ４が飛び散り、地面に落下する様子が表現される。
【０１０７】
なお、３次元仮想空間における重力加速度Ｇは、上述した現実世界の重力加速度ｇとは異なる。
【０１０８】
ここで、重力加速度Ｇは３次元仮想空間において固定的に設定されるが、初速度はランダムに決定される。ただし、厳密には、初速度の大きさはランダムに決定されるが、初速度の方向は所定のルールに従って決定される。これは、パーツＰ１，Ｐ２，Ｐ３，Ｐ４が、ボール１１０の衝突位置Ｑ（厳密には、割れ中心位置１２０）を中心に飛び散る様子を表現するためである。
【０１０９】
具体的には、図１０（Ａ）に示すように、割れ的２画像１５０では、パーツＰ１，Ｐ２，Ｐ３，Ｐ４のそれぞれが、ローカル座標を有し、ワールド座標に配置するときの基準位置すなわち中心（または重心）が設定されている。図示は省略するが、他の割れ的画像（１４０，１６０）も同様である。割れ的画像（１４０，１５０，１６０）を３次元仮想空間に配置した後における、中心Ｐ１Ｇ，Ｐ２Ｇ，Ｐ３Ｇ，Ｐ４Ｇと、割れ中心位置１２０とに基づいて、各パーツＰ１，Ｐ２，Ｐ３，Ｐ４の初速度の方向が決定される。
【０１１０】
図１０（Ｂ）に示すように、３次元仮想空間に配置された後の割れ的２画像１５０の割れ中心位置１２０から、各パーツＰ１−Ｐ４の中心座標Ｐ１Ｇ−Ｐ４Ｇに向かう方向が、各パーツＰ１−Ｐ４の初速度Ｖ０Ｐ１−Ｖ０Ｐ４の方向である。つまり、初速度Ｖ０Ｐ１−Ｖ０Ｐ４の方向は、割れ中心位置１２０を始点とし、自身の中心座標Ｐ１Ｇ−Ｐ４Ｇのそれぞれを終点とするベクトルの向きで決定されるのである。したがって、図１０（Ｃ）に示すように、初速度Ｖ０Ｐ１−Ｖ０Ｐ４の方向に、各パーツＰ１−Ｐ４は飛び散り、その後、重力加速度Ｇに従って移動（落下）する。
【０１１１】
なお、上述したように、この実施例では、初速度Ｖ０Ｐ１−Ｖ０Ｐ４の大きさは、ランダムに決定されるが、パーツＰ１−Ｐ４の大きさ（重さ）や衝突したボール１１０の衝撃力ないし力積（速度・重量）に応じて算出するようにしてもよい。
【０１１２】
図１１は図２に示したメインメモリ４０のメモリマップの一例を示す図解図である。この図１１を参照して、メインメモリ４０は、プログラム記憶領域９０およびデータ記憶領域９２を含む。プログラム記憶領域９０は、ゲームプログラムを記憶し、ゲームプログラムは、ゲームメイン処理プログラム９０ａ，操作情報取得プログラム９０ｂ，ボール表示制御プログラム９０ｃ，的表示制御プログラム９０ｄ，当り判定プログラム９０ｅ，衝突位置検出プログラム９０ｆ，割れ的画像選択プログラム９０ｇおよび割れ的画像表示制御プログラウ９０ｈなどによって構成される。
【０１１３】
ゲームメイン処理プログラム９０ａは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。操作情報取得プログラム９０ｂは、コントローラ２２から送信される操作情報（入力データ）を取得するためのプログラムである。たとえば、ＣＰＵ３６が操作情報取得プログラム９０ｂを実行すると、このＣＰＵ３６の指示に従って、メモリコントローラ３８は、コントローラＩ／Ｆ５６に設けられるバッファ（図示せず）を検索する。そして、メモリコントローラ３８は、コントローラＩ／Ｆ５６のバッファに入力データが記憶されていれば、それを取得し（読み出し）て、メインメモリ４０の入力データバッファ９２ａに一時記憶する（書き込む）。
【０１１４】
ボール表示制御プログラム９０ｃは、３次元仮想空間におけるボール１１０の移動を制御する。詳細な説明は省略するが、ＣＰＵ３６は、ボール表示制御プログラム９０ｃを実行することにより、ボール１１０を、サーブすることによりプレイヤキャラクタ１０２に向けて移動させたり、プレイヤキャラクタ１０２の打撃操作によって壁１０６ないし的オブジェクト１０８に向けて移動させたり、壁１０６ないし的オブジェクト１０８に当って跳ね返らせたりするように移動させる。
【０１１５】
なお、プレイヤキャラクタ１０２が打撃したボール１１０の移動方向および移動速度は、プレイヤによるコントローラ２２の振り操作のタイミングや速さ（強さ）で決定することができる。ただし、コントローラ２２のボタン操作によって打撃動作の指示を入力する場合には、速さ（強さ）はボタンの種類で変化させることができる。このような打撃動作によるボール１１０の移動方向や移動速度の決定については、周知のテニスボールゲームの技術を採用することができ、また、本願発明の本質的な内容ではないため、詳細な説明については省略する。
【０１１６】
的表示制御プログラム９０ｄは、後述する通常的画像データ９２ｃ（図１２参照）を用いて、通常的画像１３０の表示を制御するためのプログラムである。たとえば、３次元仮想空間に設けられる壁１０６の所定位置（この実施例では、（ｘ１，ｙ１，ｚ１））に通常的画像１３０のローカル座標の中心Ｏを置くように、通常的画像１３０が配置される。通常的画像１３０を仮想３次元空間に配置するタイミングは、ゲーム開始時にゲーム開始画面を表示する場合と、表示されている的オブジェクト１０８が割れた後に、ゲームを続行する場合とである。
【０１１７】
当り判定プログラム９０ｅは、ボール１１０が３次元仮想空間内の何らかのオブジェクト（この実施例では、壁（１０６），的オブジェクト１０８，床など）に当ったかどうかを判断するためのプログラムである。当り判定については既に周知であるため、詳細な説明は省略する。
【０１１８】
衝突位置検出プログラム９０ｆは、当り判定プログラム９０ｅに従ってボール１１０が的オブジェクト１０８に当ったことが判定された場合に、ボール１１０が的オブジェクト１０８に当った位置（衝突位置Ｑ）を検出する。具体的には、ボール１１０が的オブジェクト１０８に当ったことが検出されると、そのときのボール１１０の中心位置が検出され、その中心位置を的オブジェクト１０８上に平行移動した点が衝突位置Ｑとして決定される。
【０１１９】
割れ的画像選択プログラム９０ｇは、割れ的画像（１４０，１５０，１６０）を選択するためのプログラムである。具体的には、ＣＰＵ３６は、割れ的画像選択プログラム９０ｇを実行すると、的オブジェクト１０８の中心Ｐと、衝突位置検出プログラム９０ｆに従って検出された衝突位置Ｑとの距離ｄを数１に従って算出し、データ記憶領域９２ｅに記憶される割れ的画像選択テーブル９２ｅを参照して、割れ的画像（１４０，１５０，１６０）を選択する。
【０１２０】
割れ的画像表示制御プログラム９０ｈは、衝突位置検出プログラム９０ｆに従って検出された衝突位置Ｑに基づいて、割れ的画像選択プログラム９０ｇによって選択された割れ的画像（１４０，１５０，１６０）を的オブジェクト１０８として３次元仮想空間に配置し、割れた的オブジェクト１０８を構成するパーツ（Ｐ１，Ｐ２，Ｐ３，Ｐ４）をランダムに移動表示させるためのプログラムである。
【０１２１】
具体的には、的オブジェクト１０８の中心Ｐと衝突位置Ｑとで決まる方向に割れ的画像（１４０，１５０，１６０）の基準方向（ローカル座標のＸ軸）が当てはまるように、通常的画像１３０に代えて当該割れ的画像（１４０，１５０，１６０）を３次元仮想空間に配置する。ただし、上述したように、衝突位置Ｑに基づいて行列式Ｂが求められ、この行列式Ｂを用いて、割れ的画像（１４０，１５０，１６０）が配置されるのである。次に、各パーツＰ１−Ｐ４の初速度Ｖ０Ｐ１−Ｖ０Ｐ４が算出される。そして、各パーツＰ１−Ｐ４が、算出した初速度Ｖ０Ｐ１−Ｖ０Ｐ４と重力加速度Ｇとに基づいて鉛直投射運動ないし放物運動するように、移動制御される。
【０１２２】
なお、図示は省略するが、ゲームプログラムは、音出力プログラムやバックアッププログラムなどの他のプログラムも含む。音出力プログラムは、プレイヤキャラクタ１０２などのゲームキャラクタの音声や擬声音、効果音、ＢＧＭのようなゲームに必要な音（音声，音楽）を出力するためのプログラムである。バックアッププログラムは、プレイヤの指示や所定のゲームイベントに従って、ゲームデータをメモリカード３０に記憶（セーブ）するためのプログラムである。
【０１２３】
図１２は、図１１に示すデータ記憶領域９２の具体的な内容を示す。この図１２を参照して、データ記憶領域９２には、入力データバッファ９２ａが設けられるとともに、オブジェクトデータ９２ｂ，通常的画像データ９２ｃ，割れ的画像データ９２ｄおよび割れ的画像選択テーブルデータ９２ｅなどが記憶される。
【０１２４】
入力データバッファ９２ａは、上述したように、操作情報取得プログラム９０ｂに従って、ＣＰＵ３６の指示の下、メモリコントローラ３８が取得した入力データを一時記憶するための領域である。ＣＰＵ３６は、入力データバッファ９２ａを参照して、入力データの有無を検出し、たとえば、打撃動作の指示の有無を判断する。詳細な説明は省略するが、入力データは、プレイヤキャラクタ１０２に打撃動作をさせるようなゲーム処理に使用された後、入力データバッファ９２ａから消去される。
【０１２５】
オブジェクトデータ９２ｂは、プレイヤキャラクタ１０２，ラケット１０４，壁１０６およびボール１１０のようなゲームキャラクタないしはゲームオブジェクトについてのデータであり、画像データ９２０ａおよび位置データ９２０ｂを含む。画像データ９２０ａは、上述したようなゲームオブジェクトを生成するためのポリゴンデータやテクスチャデータなどである。位置データ９２０ｂは、上述したようなゲームオブジェクトを３次元仮想空間に配置するためのワールド座標の座標データである。
【０１２６】
なお、プレイヤキャラクタ１０２，ラケット１０４およびボール１１０の位置データは、プレイヤの指示やゲームの進行に従って更新される。
【０１２７】
通常的画像データ９２ｃは、通常的画像１３０についてのデータであり、画像データ９２２ａおよび位置データ９２２ｂを含む。画像データ９２２ａは、通常的画像１３０を生成するためのポリゴンデータやテクスチャデータなどである。位置データ９２２ｂは、通常的画像１３０を３次元仮想空間に配置するためのワールド座標の座標データである。
【０１２８】
割れ的画像データ９２ｄは、割れ的画像（１４０，１５０，１６０）の各々についてのデータである。つまり、割れ的画像データ９２は、割れ的１画像データ９２４ａ，割れ的２画像データ９２４ｂおよび割れ的３画像データ９２４ｃを含む。割れ的１画像データ９２４ａは、各パーツ（この実施例では、Ｐ１，Ｐ２，Ｐ３，Ｐ４）についての画像データを含む。つまり、割れ的１画像データ９２４ａは、パーツＰ１画像データ９２４０，パーツＰ２画像データ９２４２などによって構成される。パーツＰ１画像データ９２４０は、割れ的１画像１４０のパーツＰ１を生成するためのポリゴンデータおよびテクスチャデータなどである。詳細な説明は省略するが、パーツＰ２画像データ９２４２等も同様である。
【０１２９】
なお、割れ的２画像データ９２４ｂおよび割れ的３画像データ９２４ｃは、割れ的１画像データ９２４ａと同様であるため、詳細な説明は省略することにする。
【０１３０】
割れ的画像選択テーブルデータ９２ｅは、図９に示した割れ的画像選択テーブルについてのデータである。この割れ的画像選択テーブルデータ９２ｅは、上述したように、ＣＰＵ３６が割れ的画像選択プログラム９０ｇに従って割れ的画像（１４０，１５０，１６０）を選択するときに参照される。
【０１３１】
なお、図示は省略するが、データ記憶領域９２には、音データやゲームデータなどが記憶されるとともに、ゲーム処理に必要なカウンタ（タイマ）或いはレジスタまたはフラグなども設けられる。
【０１３２】
次に、具体的な処理を説明すると、図２に示したＣＰＵ３６が図１３に示すフロー図に従ってゲーム全体処理（メインルーチン）を実行する。図１３に示すように、ＣＰＵ３６は、ゲーム全体処理を開始すると、ステップＳ１で、初期設定を実行する。この初期設定では、ＣＰＵ３６の指示の下、メモリコントローラ３８が、バッファをクリアしたり、カウンタ、レジスタ、フラグを初期化したりする。ただし、ゲームを前回の続きから開始する場合には、メモリカード３０に記憶されたゲームデータがロードされ、たとえば、カウンタ（タイマ）、レジスタ、フラグの初期値が設定される。また、ステップＳ１では、ゲーム開始時におけるゲーム画面１００（ゲーム開始画面）が表示される。つまり、３次元空間にプレイヤキャラクタ１０２、ラケット１０４、壁１０６および的オブジェクト１０８などが生成および配置（モデリング）され、モニタ３４にゲーム開始画面が表示される。このとき、データ記憶領域９２に記憶されたオブジェクトデータ９２ｂおよび通常的画像データ９２ｃが用いられる。
【０１３３】
次のステップＳ３では、ボールの表示制御を実行する。具体的には、ＣＰＵ３６は、オブジェクトデータ９２ｂの位置データ９２０ｂに従ってボール１１０の位置を更新する。このため、ゲーム画面１００においてボール１１０が移動表示される。図示は省略するが、ボール１１０の位置データは、ボール１１０が飛んだり跳ねたりするように、物理計算により、時間に従って（１フレーム毎に）更新される。
【０１３４】
続いて、ステップＳ５では、操作情報を取得する。ここでは、ＣＰＵ３６の指示の下、メモリコントローラ３８が、コントローラＩ／Ｆ５６のバッファを参照し、入力データを取得し、入力データバッファ９２ａに一時記憶する。ただし、コントローラＩ／Ｆ５６のバッファに入力データが記憶されていない場合には、入力データバッファ９２ａに入力データは記憶されない。かかる場合には、ＣＰＵ３６は、プレイヤの指示が無いと判断する。
【０１３５】
続くステップＳ７では、プレイヤキャラクタ１０２を表示制御する。この実施例では、プレイヤキャラクタ１０２は、自動的にボール１１０を打撃可能な位置に移動される。つまり、ＣＰＵ３６は、ボール１１０の位置データに応じて、当該ボール１１０に近づくように、プレイヤキャラクタ１０２の位置データを更新するのである。
【０１３６】
そして、ステップＳ９では、ボール１１０が何らかのオブジェクトに当ったかどうかを判定する。ステップＳ９で“ＮＯ”であれば、つまりボール１１０が何らオブジェクトに当っていない場合には、ステップＳ１１で、ボール１１０がコートの範囲を外れたかどうかを判断する。ステップＳ１１で“ＮＯ”であれば、つまりボール１１０がコートの範囲を外れていなければ、そのままステップＳ２５に進む。一方、ステップＳ１１で“ＹＥＳ”であれば、つまりボール１１０がコートの範囲を外れていれば、ステップＳ１３で、減点処理を実行して、ステップＳ２５に進む。
【０１３７】
また、ステップＳ９で“ＹＥＳ”であれば、つまりボール１１０が何らかのオブジェククトに衝突すれば、ステップＳ１５で、当該オブジェクトが的オブジェクト１０８であるかどうかを判断する。ステップＳ１５で“ＮＯ”であれば、つまり当該オブジェクトが的オブジェクト１０８でなければ、ボール１１０が壁１０６に当ったと判断して、そのままステップＳ３に進む。
【０１３８】
一方、ステップＳ１５で“ＹＥＳ”であれば、つまり当該オブジェクトが的オブジェクト１０８であれば、ステップＳ１７で、後述する的割れ表示制御処理（図１４参照）を実行して、ステップＳ１９で、得点処理を実行する。そして、ステップＳ２１で、通常的画像１３０を次の的オブジェクト１０８として表示して、ステップＳ２３に進む。
【０１３９】
ステップＳ２３では、ボール跳ね返り処理を実行して、ステップＳ２５に進む。このボール跳ね返り処理は、物理学における跳ね返りによる物体の運動と同様であるため、詳細な説明は省略する。ただし、跳ね返り係数（反発係数）を、ゲームの難易度やゲームの進行に応じて適宜変更するようにすれば、ゲームが単調にならず、面白さを増大することができる。このボール跳ね返り処理によって、ボール１１０がラケット１０４，壁（１０６など），的オブジェクト１０８および床に当って跳ね返るように表示される。
【０１４０】
ステップＳ２５では、ゲーム終了かどうかを判断する。ここでは、プレイヤからのゲーム終了の指示があったか、またはゲームオーバになったかどうかを判断する。ステップＳ２５で“ＮＯ”であれば、つまりゲーム終了でなければ、そのままステップＳ３に戻る。一方、ステップＳ２５で“ＹＥＳ”であれば、つまりゲーム終了であれば、そのままゲーム全体処理を終了する。
【０１４１】
図１４は図１３に示したステップＳ１７の的割れ表示制御処理のフロー図である。図１４に示すように、ＣＰＵ３６は的割れ表示制御処理を開始すると、ステップＳ４１で、衝突位置Ｑを検出する。上述したように、３次元仮想空間において、ボール１１０が的オブジェクト１０８に当った位置（衝突位置Ｑ）を算出（検出）する。続くステップＳ４３では、的オブジェクト１０８の中心Ｐと衝突位置Ｑとの距離ｄを数１に従って算出する。
【０１４２】
次のステップＳ４５では、データ記憶領域９２に記憶された割れ的画像選択テーブルデータ９２ｅを参照して、ステップＳ４３において算出した距離ｄに応じた割れ的画像（１４０，１５０，１６０）を選択する。続く、ステップＳ４７では、数３〜数９で示したように、衝突位置Ｑに基づいて、ステップＳ４５において選択した割れ的画像（１４０，１５０、１６０）を３次元仮想空間に配置するための行列式Ｂを算出する。
【０１４３】
続いて、ステップＳ４９では、通常的画像１３０に代えて、割れ的画像（１４０，１５０，１６０）を、行列式Ｂを用いて３次元仮想空間に配置する。これによって、基準方向が衝突方向に向いた割れ的画像（１４０，１５０，１６０）が、的オブジェクト１０８としてゲーム画面１００に表示される。
【０１４４】
次に、ステップＳ５１では、割れ的画像（１４０，１５０，１６０）を構成する各パーツＰ１−Ｐ４の初速度Ｖ０Ｐ１−Ｖ０Ｐ４をランダムに算出する。ただし、ランダムに算出されるのは、初速度Ｖ０Ｐ１−Ｖ０Ｐ４の大きさだけであり、その向きは、上述したように、各パーツＰ１−Ｐ４の中心Ｐ１Ｇ，Ｐ２Ｇ，Ｐ３Ｇ，Ｐ４Ｇと、割れ中心位置１２０とに基づいて算出される。そして、ステップＳ５３では、パーツ（Ｐ１−Ｐ４）毎に物理計算をして、的オブジェクト１０８が割れる様子を表示し、ゲーム全体処理にリターンする。つまり、ステップＳ５３では、各パーツＰ１−Ｐ４について、一定時間（フレーム：画面更新単位時間（１／６０秒））毎の位置を、ステップＳ５１において算出した初速度Ｖ０Ｐ１−Ｖ０Ｐ４および重力加速度Ｇを用いて算出（更新）し、算出した位置に各パーツＰ１−Ｐ４の画像を配置（表示）するのである。
【０１４５】
この実施例によれば、通常の表示用の的画像と数種類の割れ的画像とを用意しておき、衝突位置に応じて選択された割れ的画像を、その割れ中心位置の向きを、的が画像の中から衝突位置に向かう方向に合わせるように配置するだけなので、画像処理の負担を増大させることなく、様々な衝突位置に応じて的が割れる様子を表現することができる。つまり、ゲーム画面が単調にならない範囲で画像処理を可及的簡素化することができる。
【０１４６】
なお、この実施例では、割れ的画像の向きを変えた場合であっても、見た目が不自然にならないように、円形の的オブジェクトを表示するようにした。しかし、見た目を重視しなくてもよい場合には、的オブジェクト（割れ的画像）の形状は、円形に限定される必要はなく、三角形や四角形のような多角形であってもよい。
【０１４７】
また、この実施例では、簡単のため、３次元仮想空間において２次元的（平面的）に表示される的オブジェクトについてのみ説明したが、これに限定される必要はない。
【０１４８】
たとえば、図１５に示すような球の的オブジェクトのように、立体的な形状であっても、この発明を適用することができる。ただし、図１５において、Ｘ´軸はワールド座標のＸ軸に平行であり的オブジェクトの中心Ｐを通る軸であり、Ｙ´軸はワールド座標のＹ軸に平行であり的オブジェクトの中心Ｐを通る軸である。図示は省略するが、かかる場合には、各割れ的画像も立体的なパーツで構成される。また、ローカル座標の３軸のうちのいずれか１軸（たとえば、Ｘ軸）が割れ的画像の基準軸（基準方向）であり、この軸上のプラス側に割れ中心位置が設定される。かかる場合の距離ｄは、数１０に従って算出される。ただし、的オブジェクトの中心Ｐの座標は（ｘ１，ｙ１，ｚ１）であり、衝突位置Ｑの座標は（ｘ２，ｙ２，ｚ２）である。
【０１４９】
［数１０］
ｄ＝√｛（ｘ１−ｘ２）２＋（ｙ１−ｙ２）２＋（ｚ１−ｚ２）２｝
割れ的画像の選択、割れ的画像の配置、割れ的画像の移動（落下）処理は、上述の実施例で説明したとおりであるため、重複した説明は省略する。
【０１５０】
なお、立体的な形状としては、上述の実施例と同様に、見た目を重視して、球の的オブジェクトを例示してある。しかし、見た目を重視しなければ、立方体、直方体または多面体のような他の立体的形状の的オブジェクトであっても本願発明を適用することができる。
【０１５１】
また、上述の実施例では、衝突位置に基づいて算出された行列式を用いて割れ的画像を３次元仮想空間に配置するようにした。しかし、他の方法により、割れ的画像を配置することも可能である。たとえば、図１６（Ａ）に示すように、的オブジェクト１０８の衝突位置Ｑが検出されると、その中心Ｐと衝突位置Ｑとを結ぶ線分ＰＱと、基準軸（Ｘ軸）とが成す角度θを算出する。そして、図１６（Ｂ）に示すように、選択された割れ的画像をローカル座標において、角度θだけ回転させた後に、ローカル座標の中心を３次元仮想空間の所望の位置に配置することもできる。かかる場合にも、割れ的画像の割れ中心位置の方向を、的オブジェクトの中心から衝突位置に向かう方向に一致させて、割れ的画像を配置することができる。ただし、割れ的画像を回転させる方向は、算出した角度θの方向と同じである。
【０１５２】
なお、図１６（Ｂ）は、上述の実施例の割れ的画像１５０をローカル座標の中心Ｏを中心に角度θだけ半時計周りに回転させた例を示してある。
【０１５３】
また、図１６（Ｃ）に示すように、衝突位置Ｑから中心Ｐを通りワールド座標のＸ軸に平行な直線に垂下した点Ｈを算出し、線分ＰＱ，線分ＰＨ，線分ＱＨのいずれか２つを用いることにより、三角関数によって角度θを簡単に求めることができる。
【０１５４】
さらに、上述の実施例では、ビデオゲーム装置、コントローラおよび表示装置が別個独立に設けられたゲームシステムについてのみ説明したが、それらが一体的に設けられた携帯型ゲーム装置、アーケードゲーム機、ゲーム機能付きの携帯端末などにも適用できることは言うまでもない。
【０１５５】
さらにまた、上述の実施例では、プレイヤキャラクタがボールを打ったり、打ち返したりして、的オブジェクトに当該ボールを当てるゲームについて説明したが、これに限定される必要はない。たとえば、プレイヤキャラクタ（プレイヤ）が銃のような道具ないし武器を用いて弾を撃ち（射出し）、的オブジェクトに当該弾を当てるゲームにも適用することができる。
【図面の簡単な説明】
【０１５６】
【図１】図１はこの発明のゲームシステムの一実施例を示す図解図である。
【図２】図２は図１に示すゲームシステムの電気的な構成を示すブロック図である。
【図３】図３は図１に示すコントローラの外観を説明するための図解図である。
【図４】図４は図１に示すコントローラの電気的な構成を示すブロック図である。
【図５】図５は図１に示すモニタに表示されるゲーム画面の一例を示す図解図である。
【図６】図６は図１に示すモニタに表示されるゲーム画面の他の例を示す図解図である。
【図７】図７はゲーム画面に的オブジェクトとして表示される通常的画像および数種類の的割れ画像を説明するための図解図である。
【図８】図８はゲーム画面において的オブジェクトを割れ表示するための表示方法を説明するための図解図である。
【図９】図９はゲーム画面において的オブジェクトを割れ表示する際に使用されるわれ的画像を選択するための割れ的画像選択テーブルの一例を示す図解図である。
【図１０】図１０はゲーム画面において的オブジェクトを割れ表示するための表示方法を説明するための図解図である。
【図１１】図１１は図２に示すメインメモリのメモリマップの一例を示す図解図である。
【図１２】図１２は図１１に示すデータ記憶領域の具体的な内容を示す図解図である。
【図１３】図１３は図２に示すＣＰＵのゲーム全体処理を示すフロー図である。
【図１４】図１４は図２に示すＣＰＵの的割れ表示制御処理を示すフロー図である。
【図１５】図１５はゲーム画面に表示される的オブジェクトの他の例を示す図解図である。
【図１６】図１６は割れ的オブジェクトを配置する他の方法を説明するための図解図である。
【符号の説明】
【０１５７】
１０  …ゲームシステム
１２  …ビデオゲーム装置
１８  …光ディスク
２２  …コントローラ
３４  …モニタ
３４ａ  …スピーカ
３６  …ＣＰＵ
３８  …メモリコントローラ
４０  …メインメモリ
４２  …ＧＰＵ
５２  …ＤＳＰ
５４  …ＡＲＡＭ
６２  …オーディオＩ／Ｆ
６６  …Ｂｌｕｅｔｏｏｔｈ通信ユニット
６８  …ディスクドライブ
７０  …マイコン
７４  …加速度センサ
７６  …無線モジュール
【図１】
2008099899.tif 000007
【図２】
2008099899.tif 000008
【図３】
2008099899.tif 000009
【図４】
2008099899.tif 000010
【図５】
2008099899.tif 000011
【図６】
2008099899.tif 000012
【図７】
2008099899.tif 000013
【図８】
2008099899.tif 000014
【図９】
2008099899.tif 000015
【図１０】
2008099899.tif 000016
【図１１】
2008099899.tif 000017
【図１２】
2008099899.tif 000018
【図１３】
2008099899.tif 000019
【図１４】
2008099899.tif 000020
【図１５】
2008099899.tif 000021
【図１６】
2008099899.tif 000022