(57)【要約】【課題】対戦の盛り上がりに応じたノンプレーヤキャラクタの移動や動作の制御を実現できるプログラム、画像生成システム等の提供。【解決手段】画像生成システムは、プレーヤキャラクタ制御部と、プレーヤキャラクタと相手キャラクタとの間の対戦処理を含むゲーム演算処理を行うゲーム演算部と、ゲーム演算処理の結果に基づいて、盛り上がりパラメータの演算処理を行う盛り上がりパラメータ演算部と、ノンプレーヤキャラクタの制御処理を行うノンプレーヤキャラクタ制御部と、画像を生成する画像生成部を含む。ノンプレーヤキャラクタ制御部は、演算された前記盛り上がりパラメータに基づいて、ノンプレーヤキャラクタの移動及び動作の少なくとも一方を制御する。【選択図】図７
2010233751.tif 000002
【特許請求の範囲】
【請求項１】
プレーヤが操作するプレーヤキャラクタの制御処理を行うプレーヤキャラクタ制御部と、
前記プレーヤキャラクタと相手キャラクタとの間の対戦処理を含むゲーム演算処理を行うゲーム演算部と、
前記ゲーム演算処理の結果に基づいて、盛り上がりパラメータの演算処理を行う盛り上がりパラメータ演算部と、
前記プレーヤキャラクタ及び前記相手キャラクタ以外のノンプレーヤキャラクタの制御処理を行うノンプレーヤキャラクタ制御部と、
前記プレーヤキャラクタと前記相手キャラクタが対戦するための画像を生成する画像生成部として、
コンピュータを機能させ、
前記ノンプレーヤキャラクタ制御部は、
演算された前記盛り上がりパラメータに基づいて、前記ノンプレーヤキャラクタの移動及び動作の少なくとも一方を制御することを特徴とするプログラム。
【請求項２】
請求項１において、
前記ゲーム演算部は、
前記プレーヤキャラクタと前記相手キャラクタを対戦フィールド上で対戦させる対戦処理を行い、
前記ノンプレーヤキャラクタ制御部は、
前記対戦フィールド上での対戦処理において演算された前記盛り上がりパラメータに基づいて、前記ノンプレーヤキャラクタを移動元の位置から前記対戦フィールドの方へと移動させる制御を行うことを特徴とするプログラム。
【請求項３】
請求項２において、
前記ノンプレーヤキャラクタ制御部は、
前記ノンプレーヤキャラクタの移動元の位置と前記対戦フィールドとの間の距離情報と、前記盛り上がりパラメータとに基づいて、前記ノンプレーヤキャラクタを前記対戦フィールドの方に移動させるか否かを判定することを特徴とするプログラム。
【請求項４】
請求項２又は３において、
前記ノンプレーヤキャラクタ制御部は、
前記対戦フィールドの周囲に設定された配置ポジションに、前記ノンプレーヤキャラクタを移動させる制御を行うことを特徴とするプログラム。
【請求項５】
請求項４において、
前記ノンプレーヤキャラクタ制御部は、
ゲーム結果及び前記盛り上がりパラメータの少なくとも一方に応じて、前記配置ポジションの数を増加又は減少させることを特徴とするプログラム。
【請求項６】
請求項４又は５において、
前記ノンプレーヤキャラクタ制御部は、
前記配置ポジションに移動した後の前記ノンプレーヤキャラクタの動作を、前記盛り上がりパラメータに基づいて制御することを特徴とするプログラム。
【請求項７】
請求項４乃至６のいずれかにおいて、
前記対戦フィールドは、前記プレーヤキャラクタ用の第１のフィールドと、前記相手キャラクタ用の第２のフィールドを有し、
前記盛り上がりパラメータ演算部は、
複数の盛り上がり判定条件に基づいて、前記盛り上がりパラメータの演算処理を行い、
前記ノンプレーヤキャラクタ制御部は、
前記複数の盛り上がり判定条件のうちの第１の盛り上がり判定条件が満たされた場合には、前記第１、第２のフィールドのいずれか一方のみのフィールドの周囲の配置ポジションに前記ノンプレーヤキャラクタを移動させる制御を行い、
前記複数の盛り上がり判定条件のうちの第２の盛り上がり判定条件が満たされた場合には、前記第１、第２のフィールドの両方のフィールドの周囲の配置ポジションに前記ノンプレーヤキャラクタを移動させる制御を行うことを特徴とするプログラム。
【請求項８】
請求項1乃至７のいずれかにおいて、
前記盛り上がりパラメータ演算部は、
複数の盛り上がり判定条件に基づいて、前記盛り上がりパラメータの演算処理を行い、
前記ノンプレーヤキャラクタ制御部は、
前記複数の盛り上がり判定条件に基づき演算された前記盛り上がりパラメータに基づいて、前記ノンプレーヤキャラクタを制御することを特徴とするプログラム。
【請求項９】
請求項８において、
前記盛り上がりパラメータ演算部は、
前記複数の盛り上がり判定条件の各盛り上がり判定条件に基づいて、複数の個別盛り上がりパラメータの各個別盛り上がりパラメータの演算処理を行い、
前記ノンプレーヤキャラクタ制御部は、
演算された前記複数の個別盛り上がりパラメータに基づいて、前記ノンプレーヤキャラクタを制御することを特徴とするプログラム。
【請求項１０】
請求項８又は９において、
前記盛り上がりパラメータ演算部は、
前記複数の盛り上がり判定条件に基づいて、全体盛り上がりパラメータの演算処理を行い、
前記ノンプレーヤキャラクタ制御部は、
演算された前記全体盛り上がりパラメータに基づいて、前記ノンプレーヤキャラクタを制御することを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記ゲーム演算部は、
前記プレーヤキャラクタと前記相手キャラクタを対戦フィールド上で対戦させる対戦処理を行い、
前記ノンプレーヤキャラクタ制御部は、
前記ノンプレーヤキャラクタの移動元の位置と前記対戦フィールドとの間の距離情報と、前記全体盛り上がりパラメータとに基づいて、前記ノンプレーヤキャラクタを前記対戦フィールドの方に移動させるか否かを判定することを特徴とするプログラム。
【請求項１２】
請求項８において、
前記盛り上がりパラメータ演算部は、
前記複数の盛り上がり判定条件の各盛り上がり判定条件に基づいて、複数の個別盛り上がりパラメータの各個別盛り上がりパラメータの演算処理を行うと共に、前記複数の盛り上がり判定条件に基づいて、全体盛り上がりパラメータの演算処理を行い、
前記ノンプレーヤキャラクタ制御部は、
前記個別盛り上がりパラメータに基づく制御を行わないと判断されたノンプレーヤキャラクタについても、前記全体盛り上がりパラメータに基づいて制御することを特徴とするプログラム。
【請求項１３】
請求項８乃至１２のいずれかにおいて、
第１〜第Ｎのノンプレーヤキャラクタの第Ｋ（１≦Ｋ≦Ｎ）のノンプレーヤキャラクタに対して、前記複数の盛り上がり判定条件のうちの少なくとも１つの盛り上がり判定条件が対応づけられており、
前記ノンプレーヤキャラクタ制御部は、
前記第Ｋのノンプレーヤキャラクタに対応づけられた盛り上がり判定条件に基づいて、前記第Ｋのノンプレーヤキャラクタを制御することを特徴とするプログラム。
【請求項１４】
請求項１乃至１３のいずれかにおいて、
前記プレーヤキャラクタが所持する所持オブジェクト又は前記プレーヤキャラクタを構成する部位オブジェクトと、前記所持オブジェクト又は前記部位オブジェクトによりヒットされるヒット対象物とのヒット演算処理を行うヒット演算処理部として、
コンピュータを機能させ、
前記ヒット演算処理部は、
前記盛り上がりパラメータに基づいて、前記ヒット演算処理を行うことを特徴とするプログラム。
【請求項１５】
請求項１４において、
前記ヒット演算処理部は、
前記盛り上がりパラメータに基づいて、前記ヒット演算処理におけるヒット判定エリアを制御することを特徴とするプログラム。
【請求項１６】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１５のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１７】
プレーヤが操作するプレーヤキャラクタの制御処理を行うプレーヤキャラクタ制御部と、
前記プレーヤキャラクタと相手キャラクタとの間の対戦処理を含むゲーム演算処理を行うゲーム演算部と、
前記ゲーム演算処理の結果に基づいて、盛り上がりパラメータの演算処理を行う盛り上がりパラメータ演算部と、
前記プレーヤキャラクタ及び前記相手キャラクタ以外のノンプレーヤキャラクタの制御処理を行うノンプレーヤキャラクタ制御部と、
前記プレーヤキャラクタと前記相手キャラクタが対戦するための画像を生成する画像生成部とを含み、
前記ノンプレーヤキャラクタ制御部は、
演算された前記盛り上がりパラメータに基づいて、前記ノンプレーヤキャラクタの移動及び動作の少なくとも一方を制御することを特徴とするプログラム。
を含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システム等に関する。
【背景技術】
【０００２】
従来より、スポーツ選手を模したキャラクタ等のオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。テニスゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、コントローラなどの操作部を用いて自身のキャラクタを操作して、他のプレーヤやコンピュータが操作する相手キャラクタがショットしたボールをラケットで打ち返すことでゲームを楽しむ。このようなテニスゲームを楽しむことができる画像生成システムの従来技術としては、例えば特許文献１に開示される技術が知られている。
【０００３】
しかしながら、これまでの画像生成システムでは、盛り上がった試合に対してギャラリーが集まってくるようなシステムについては提案されていなかった。
【０００４】
例えば、試合を観戦するギャラリーを表現する手法として、多数のギャラリーが描かれたポリゴンを観客席の位置に配置する手法も考えられる。しかしながら、この手法では、ギャラリーの位置は固定的であり、集まったギャラリーの人数で盛り上がり感を演出することはできなかった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３０７１６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の幾つかの態様によれば、対戦の盛り上がりに応じたノンプレーヤキャラクタの移動や動作の制御を実現できるプログラム、情報記憶媒体、画像生成システム等を提供できる。
【課題を解決するための手段】
【０００７】
本発明の一態様は、プレーヤが操作するプレーヤキャラクタの制御処理を行うプレーヤキャラクタ制御部と、前記プレーヤキャラクタと相手キャラクタとの間の対戦処理を含むゲーム演算処理を行うゲーム演算部と、前記ゲーム演算処理の結果に基づいて、盛り上がりパラメータの演算処理を行う盛り上がりパラメータ演算部と、前記プレーヤキャラクタ及び前記相手キャラクタ以外のノンプレーヤキャラクタの制御処理を行うノンプレーヤキャラクタ制御部と、前記プレーヤキャラクタと前記相手キャラクタが対戦するための画像を生成する画像生成部とを含み、前記ノンプレーヤキャラクタ制御部は、演算された前記盛り上がりパラメータに基づいて、前記ノンプレーヤキャラクタの移動及び動作の少なくとも一方を制御する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００８】
本発明の一態様によれば、プレーヤキャラクタと相手キャラクタとの間の対戦処理を含むゲーム演算処理が行われ、ゲーム演算処理の結果に基づいて、盛り上がりパラメータの演算処理が行われる。そして演算された盛り上がりパラメータに基づいて、ノンプレーヤキャラクタの移動及び動作の少なくとも一方が制御される。このようにすれば、対戦の盛り上がりに応じたノンプレーヤキャラクタの移動や動作の制御を実現できる。
【０００９】
また本発明の一態様では、前記ゲーム演算部は、前記プレーヤキャラクタと前記相手キャラクタを対戦フィールド上で対戦させる対戦処理を行い、前記ノンプレーヤキャラクタ制御部は、前記対戦フィールド上での対戦処理において演算された前記盛り上がりパラメータに基づいて、前記ノンプレーヤキャラクタを移動元の位置から前記対戦フィールドの方へと移動させる制御を行ってもよい。
【００１０】
このようにすれば、プレーヤキャラクタと相手キャラクタを対戦フィールド上で対戦させる対戦処理が行われ、この対戦処理において演算された盛り上がりパラメータに基づいて、ノンプレーヤキャラクタが対戦フィールドの方へと移動するようになる。従って、対戦の盛り上がりに応じて、ノンプレーヤキャラクタを対戦フィールドの方へ集めることが可能になり、ノンプレーヤキャラクタが集まることによる盛り上がり感を実現できる。
【００１１】
また本発明の一態様では、前記ノンプレーヤキャラクタ制御部は、前記ノンプレーヤキャラクタの移動元の位置と前記対戦フィールドとの間の距離情報と、前記盛り上がりパラメータとに基づいて、前記ノンプレーヤキャラクタを前記対戦フィールドの方に移動させるか否かを判定してもよい。
【００１２】
このようにすれば、ノンプレーヤキャラクタの距離情報と盛り上がりパラメータの両方を考慮したノンプレーヤキャラクタの移動制御を実現できる。
【００１３】
また本発明の一態様では、前記ノンプレーヤキャラクタ制御部は、前記対戦フィールドの周囲に設定された配置ポジションに、前記ノンプレーヤキャラクタを移動させる制御を行ってもよい。
【００１４】
このようにすれば、ノンプレーヤキャラクタを対戦フィールドの方へ移動させる制御を簡素化できる。
【００１５】
また本発明の一態様では、前記ノンプレーヤキャラクタ制御部は、ゲーム結果及び前記盛り上がりパラメータの少なくとも一方に応じて、前記配置ポジションの数を増加又は減少させてもよい。
【００１６】
このようにすれば、ゲーム結果や盛り上がりパラメータに応じて、配置ポジションの数が増減するようになり、多様な盛り上がり感を表現できる。
【００１７】
また本発明の一態様では、前記ノンプレーヤキャラクタ制御部は、前記配置ポジションに移動した後の前記ノンプレーヤキャラクタの動作を、前記盛り上がりパラメータに基づいて制御してもよい。
【００１８】
このようにすれば、配置ポジションへの移動後も、ノンプレーヤキャラクタの動作を制御して、対戦の盛り上がり感を向上できるようになる。
【００１９】
また本発明の一態様では、前記対戦フィールドは、前記プレーヤキャラクタ用の第１のフィールドと、前記相手キャラクタ用の第２のフィールドを有し、前記盛り上がりパラメータ演算部は、複数の盛り上がり判定条件に基づいて、前記盛り上がりパラメータの演算処理を行い、前記ノンプレーヤキャラクタ制御部は、前記複数の盛り上がり判定条件のうちの第１の盛り上がり判定条件が満たされた場合には、前記第１、第２のフィールドのいずれか一方のみのフィールドの周囲の配置ポジションに前記ノンプレーヤキャラクタを移動させる制御を行い、前記複数の盛り上がり判定条件のうちの第２の盛り上がり判定条件が満たされた場合には、前記第１、第２のフィールドの両方のフィールドの周囲の配置ポジションに前記ノンプレーヤキャラクタを移動させる制御を行ってもよい。
【００２０】
このようにすれば、第１の盛り上がり判定条件が満たされた場合には、一方のフィールドの方にのみノンプレーヤキャラクタを集めて、対戦を盛り上げることが可能になる。一方、第２の盛り上がり判定条件が満たされた場合には、第１、第２のフィールドの両方にノンプレーヤキャラクタを集めて、全体的に対戦を盛り上げることが可能になる。
【００２１】
また本発明の一態様では、前記盛り上がりパラメータ演算部は、複数の盛り上がり判定条件に基づいて、前記盛り上がりパラメータの演算処理を行い、前記ノンプレーヤキャラクタ制御部は、前記複数の盛り上がり判定条件に基づき演算された前記盛り上がりパラメータに基づいて、前記ノンプレーヤキャラクタを制御してもよい。
【００２２】
このようにすれば、複数の盛り上がり判定条件により盛り上がりパラメータを演算して、ノンプレーヤキャラクタを制御できるようになる。
【００２３】
また本発明の一態様では、前記盛り上がりパラメータ演算部は、前記複数の盛り上がり判定条件の各盛り上がり判定条件に基づいて、複数の個別盛り上がりパラメータの各個別盛り上がりパラメータの演算処理を行い、前記ノンプレーヤキャラクタ制御部は、演算された前記複数の個別盛り上がりパラメータに基づいて、前記ノンプレーヤキャラクタを制御してもよい。
【００２４】
このようにすれば、各盛り上がり判定条件に対応する個別的な盛り上がりパラメータにより、ノンプレーヤキャラクタを制御できるようになる。
【００２５】
また本発明の一態様では、前記盛り上がりパラメータ演算部は、前記複数の盛り上がり判定条件に基づいて、全体盛り上がりパラメータの演算処理を行い、前記ノンプレーヤキャラクタ制御部は、演算された前記全体盛り上がりパラメータに基づいて、前記ノンプレーヤキャラクタを制御してもよい。
【００２６】
このようにすれば、複数の盛り上がり判定条件を利用した全体的な盛り上がりパラメータにより、ノンプレーヤキャラクタを制御できるようになる。
【００２７】
また本発明の一態様では、前記ゲーム演算部は、前記プレーヤキャラクタと前記相手キャラクタを対戦フィールド上で対戦させる対戦処理を行い、前記ノンプレーヤキャラクタ制御部は、前記ノンプレーヤキャラクタの移動元の位置と前記対戦フィールドとの間の距離情報と、前記全体盛り上がりパラメータとに基づいて、前記ノンプレーヤキャラクタを前記対戦フィールドの方に移動させるか否かを判定してもよい。
【００２８】
このようにすれば、ノンプレーヤキャラクタの距離情報と全体盛り上がりパラメータの両方を考慮したノンプレーヤキャラクタの移動制御を実現できる。
【００２９】
また本発明の一態様では、前記盛り上がりパラメータ演算部は、前記複数の盛り上がり判定条件の各盛り上がり判定条件に基づいて、複数の個別盛り上がりパラメータの各個別盛り上がりパラメータの演算処理を行うと共に、前記複数の盛り上がり判定条件に基づいて、全体盛り上がりパラメータの演算処理を行い、前記ノンプレーヤキャラクタ制御部は、前記個別盛り上がりパラメータに基づく制御を行わないと判断されたノンプレーヤキャラクタについても、前記全体盛り上がりパラメータに基づいて制御してもよい。
【００３０】
このようにすれば、個別盛り上がりパラメータによりノンプレーヤキャラクタが制御されない場合にも、全体盛り上がりパラメータによりノンプレーヤキャラクタを制御できるようになる。
【００３１】
また本発明の一態様では、第１〜第Ｎのノンプレーヤキャラクタの第Ｋ（１≦Ｋ≦Ｎ）のノンプレーヤキャラクタに対して、前記複数の盛り上がり判定条件のうちの少なくとも１つの盛り上がり判定条件が対応づけられており、前記ノンプレーヤキャラクタ制御部は、前記第Ｋのノンプレーヤキャラクタに対応づけられた盛り上がり判定条件に基づいて、前記第Ｋのノンプレーヤキャラクタを制御してもよい。
【００３２】
このようにノンプレーヤキャラクタに対して少なくも１つの盛り上がり判定条件を対応づければ、ノンプレーヤキャラクタが画一的に移動したり動作してしまう事態等を防止できる。
【００３３】
また本発明の一態様では、前記プレーヤキャラクタが所持する所持オブジェクト又は前記プレーヤキャラクタを構成する部位オブジェクトと、前記所持オブジェクト又は前記部位オブジェクトによりヒットされるヒット対象物とのヒット演算処理を行うヒット演算処理部を含み、前記ヒット演算処理部は、前記盛り上がりパラメータに基づいて、前記ヒット演算処理を行ってもよい。
【００３４】
このようすれば、ノンプレーヤキャラクタを制御するための盛り上がりパラメータを有効活用したヒット演算処理を実現できる。
【００３５】
また本発明の一態様では、前記ヒット演算処理部は、前記盛り上がりパラメータに基づいて、前記ヒット演算処理におけるヒット判定エリアを制御してもよい。
【００３６】
このようにすれば、盛り上がりパラメータに応じて、ヒット判定エリアの大きさ等を制御することが可能になる。
【図面の簡単な説明】
【００３７】
【図１】本実施形態の画像生成システムの構成例。
【図２】プレーヤによるコントローラの操作の説明図。
【図３】図３（Ａ）、図３（Ｂ）はコントローラの構成例。
【図４】コントローラの各座標軸回りでの回転角度情報の説明図。
【図５】図５（Ａ）、図５（Ｂ）はコート配置等の説明図。
【図６】図６（Ａ）、図６（Ｂ）は、盛り上がりパラメータに基づくノンプレーヤキャラクタの制御手法の説明図。
【図７】ノンプレーヤキャラクタの距離情報と盛り上がりパラメータに基づくノンプレーヤキャラクタの制御手法の説明図。
【図８】ノンプレーヤキャラクタの距離情報と盛り上がりパラメータに基づくノンプレーヤキャラクタの制御手法の説明図。
【図９】図９（Ａ）〜図９（Ｃ）はコートの周囲に設定された配置ポジションの説明図。
【図１０】配置ポジションへの移動後のノンプレーヤキャラクタの動作制御手法の説明図。
【図１１】盛り上がり判定条件の説明図。
【図１２】図１２（Ａ）〜図１２（Ｃ）は個別盛り上がり判定パラメータ、全体盛り上がりパラメータに基づくノンプレーヤキャラクタの制御手法の説明図。
【図１３】本実施形態の詳細な処理例のフローチャート。
【図１４】図１４（Ａ）、図１４（Ｂ）は本実施形態の詳細な処理例のフローチャート。
【図１５】図１５（Ａ）、図１５（Ｂ）はキャラクタのスイング動作の例。
【図１６】キャラクタのスイング動作の例。
【図１７】図１７（Ａ）〜図１７（Ｃ）はヒット時の回転角度情報に基づくヒット演算処理の説明図。
【図１８】図１８（Ａ）〜図１８（Ｃ）はヒット判定区間で取得された回転角度情報に基づくヒット演算処理の説明図。
【図１９】図１９（Ａ）〜図１９（Ｄ）はヒット後のボールの移動状態、動作状態の説明図。
【図２０】加速度情報と盛り上がりパラメータに基づくボールのヒット強さ情報の設定手法の説明図。
【図２１】基準ポジションの検出手法の説明図。
【図２２】図２２（Ａ）〜図２２（Ｆ）はヒット判定エリアの設定手法の説明図。
【発明を実施するための形態】
【００３８】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３９】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）のブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００４０】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、方向キー、操作ボタン、アナログスティック、レバー、各種センサ（角速度センサ、加速度センサ等）、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【００４１】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＤＲＡＭ、ＶＲＡＭ）などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。
【００４２】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ＨＤＤ（ハードディスクドライブ）、或いはメモリ（ＲＯＭ等）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００４３】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＬＣＤ、有機ＥＬディスプレイ、ＣＲＴ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００４４】
補助記憶装置１９４（補助メモリ、２次メモリ）は、記憶部１７０の容量を補うために使用される記憶装置であり、ＳＤメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
【００４５】
通信部１９６は、有線や無線のネットワークを介して外部（例えば他の画像生成システム、サーバ、ホスト装置）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００４６】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバ（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０、補助記憶装置１９４）に配信してもよい。このようなサーバ（ホスト装置）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００４７】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部１００は記憶部１７０をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＧＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４８】
処理部１００は、操作情報取得部１０１、ゲーム演算部１０２、オブジェクト空間設定部１０４、ヒット演算処理部１０６、盛り上がりパラメータ演算部１０８、キャラクタ制御部１１４、仮想カメラ制御部１１８、画像生成部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４９】
操作情報取得部１０１は、プレーヤが操作部１６０を用いて各種操作を行うと、その操作情報を取得する。例えば操作部１６０としてセンサ（例えば角速度センサ又は加速度センサ等）を有するコントローラ（図２参照）を用いたとする。この場合には操作情報取得部１０１は、このコントローラからのセンサ情報（センサの出力信号又は当該出力信号に所定の処理を施した情報）に基づいて、所定座標軸回り（少なくとも１つの座標軸回り）でのコントローラの回転角度情報（回転角度、回転角度と等価なパラメータ）を、操作情報として取得する。例えばコントローラの長手方向（長軸方向）に沿って設定された座標軸を第３の座標軸とし、第３の座標軸に直交する座標軸を第１、第２の座標軸としたとする。この場合に、操作情報取得部１０１は、第３の座標軸回りでの回転角度情報である第３の回転角度情報を取得する。或いは第１、第２の座標軸回りでの回転角度情報である第１、第２の回転角度情報を取得する。例えばコントローラが有する角速度センサのセンサ情報に基づいて第１、第２、第３の回転角度情報を取得する。またコントローラが加速度センサを有する場合には、例えば第３の座標軸に沿った方向での加速度情報を取得する。或いは、第１、第２の座標軸に沿った方向での加速度情報を取得してもよい。
【００５０】
ゲーム演算部１０２はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００５１】
本実施形態ではゲーム演算部１０２は、プレーヤキャラクタと相手キャラクタとの間の対戦処理を含むゲーム演算処理を行う。例えばプレーヤキャラクタと相手キャラクタを対戦フィールド上で対戦させる対戦処理を行う。ここでプレーヤキャラクタはプレーヤにより操作されるキャラクタである。即ち操作部１６０により操作され、その操作情報が操作情報取得部１０１により取得されるキャラクタである。一方、相手キャラクタ（対戦キャラクタ）は、相手プレーヤ又はコンピュータにより操作され、プレーヤキャラクタの対戦相手等となるキャラクタである。これらのプレーヤキャラクタや相手キャラクタは複数であってもよい。また対戦としては、例えばスポーツゲーム、格闘ゲーム、戦闘ゲーム、ボードゲーム、或いはカードゲームなどの種々のゲームの対戦を想定できる。また対戦フィールドは、プレーヤキャラクタと相手キャラクタの対戦が繰り広げられるフィールドであり、テニスゲームにおけるコート、野球ゲームにおけるグラウンド、格闘ゲームにおける格闘ステージ、戦闘ゲームにおける戦闘フィールド等の種々のフィールドを想定できる。
【００５２】
またゲーム演算部１０２が行う対戦処理としては、対戦開始条件が満たされた場合に、プレーヤキャラクタと相手キャラクタの対戦を開始する処理、プレーヤキャラクタと相手キャラクタの対戦を進行させる処理、対戦結果（得点、ポイント等）を演算する処理、或いは対戦終了条件が満たされた場合に対戦を終了する処理などがある。
【００５３】
オブジェクト空間設定部１０４は、キャラクタ等のモデルオブジェクト（人、ロボット、車、戦闘機、ミサイル、弾等の移動体）、マップ（地形）、建物、コース（道路）、樹木、壁などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のオブジェクトデータ記憶部１７２には、オブジェクトの位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。
【００５４】
ヒット演算処理部１０６は、ヒット体とヒット対象物のヒット演算処理を行う。例えば、操作情報取得部１０１により取得された回転角度情報に基づいて、ヒット体によりヒットされるヒット対象物のヒット後の移動状態及び動作状態の少なくとも一方を設定する。
【００５５】
ここでヒット体は、ヒット対象物をヒットするためのオブジェクトであり、例えばキャラクタが所持（把持）する所持オブジェクト（把持オブジェクト）や、キャラクタを構成する部位オブジェクトなどを想定できる。キャラクタの所持オブジェクトとしては、例えばテニス、卓球、バトミントン等のラケットや、野球のバットや、ゴルフのクラブや、剣等の武器や、マラカス等の楽器や、或いはドラムのスティック等を想定できる。キャラクタの部位オブジェクトとしては、手、足、頭、胴体等の部位を想定できる。ヒット対象物は、ヒット体によりヒットされるものであり、ヒット対象物としては、ボールや、他キャラクタの武器や、壁、床等の固定物や、他キャラクタの手、足、頭、胴体等の部位を想定できる。
【００５６】
またヒット対象物のヒット後の移動状態は、例えば、ヒット後のヒット対象物の移動方向、移動速度、或いは移動加速度等である。またヒット対象物のヒット後の動作状態は、例えばヒット後のヒット対象物の回転状態、或いはモーション状態等である。回転状態は、ヒット対象物の回転方向、回転速度（角速度）、或いは回転加速度（角加速度）等であり、モーション状態は、ヒット対象物をモーションデータ等により動作させた場合の各種状態である。
【００５７】
本実施形態ではヒット演算処理部１０６は、プレーヤキャラクタの所持オブジェクト又は部位オブジェクトと、所持オブジェクト又は部位オブジェクトによりヒットされるヒット対象物とのヒット演算処理を行う。この場合にヒット演算処理部１０６は、盛り上がりパラメータに基づいてヒット演算処理を行う。例えば盛り上がりパラメータに基づいて、ヒット演算処理におけるヒット判定エリアを制御する。例えばヒット判定エリアの大きさを変化させる。或いは、ヒット対象物のヒット後の移動状態及び動作状態の少なくとも一方を、盛り上がりパラメータに基づいて変化させる。例えばヒット対象物のヒット後の移動速度、回転速度、ヒットの強さ等を、盛り上がりパラメータに応じて変化させる。
【００５８】
また操作情報取得部１０１が、コントローラの長軸方向に沿って設定された第３の座標軸回りでの第３の回転角度情報を取得したとする。この場合にヒット演算処理部１０６は、第３の座標軸回りでの第３の回転角度情報に基づいて、ヒット対象物のヒット後の移動方向及び回転状態の少なくとも一方を設定する。またヒット対象物のヒット後の移動方向及び回転状態の少なくとも一方を、盛り上がりパラメータに基づいて変化させる。
【００５９】
盛り上がりパラメータ演算部１０８は盛り上がりパラメータの演算処理を行う。そして盛り上がりパラメータの演算結果（パラメータ値、フラグ）はパラメータ記憶部１７８に記憶（保存）される。ここで盛り上がりパラメータは、プレーヤキャラクタと相手キャラクタの対戦の盛り上がり度を数値データやフラグで表すパラメータである。
【００６０】
例えば本実施形態では、プレーヤキャラクタと相手キャラクタの間の対戦が盛り上がったか否かを判定するための盛り上がり判定条件が用意される。そして、盛り上がりパラメータ演算部１０８は、これらの盛り上がり判定条件に基づいて盛り上がりパラメータの演算処理を行う。ここで盛り上がり判定条件は、対戦状況や対戦結果が所定状況や所定結果になったどうかの条件であり、この条件が満たされると、対戦における盛り上がり度が変化したと判断される。例えば盛り上がりパラメータ演算部１０８は、対戦状況や対戦結果が所定状況や所定結果になった場合に、その所定状況や所定結果に対応づけられた盛り上がり判定条件が満たされたと判断し、その盛り上がり判定条件に対応づけられた盛り上がりパラメータの値を変化（増減）させたり、盛り上がりパラメータのフラグをセットする。
【００６１】
例えば盛り上がりパラメータ演算部１０８は、複数の盛り上がり判定条件の各盛り上がり判定条件に基づいて、複数の個別盛り上がりパラメータの各個別盛り上がりパラメータの演算処理を行う。例えば第１〜第ｎの盛り上がり判定条件に対して第１〜第ｎの個別盛り上がりパラメータが対応づけられたとすると、第１〜第ｎの各盛り上がり判定条件が成立したか否かを判断することで、第１〜第ｎの各個別盛り上がりパラメータの値を変化させたり、フラグをセットするなどの演算処理を行う。
【００６２】
また盛り上がりパラメータ演算部１０８は、複数の盛り上がり判定条件に基づいて、全体盛り上がりパラメータの演算処理を行う。ここで全体盛り上がりパラメータは、プレーヤキャラクタと相手キャラクタの対戦の全体的な盛り上がり度を数値データ等で表すパラメータである。全体盛り上がりパラメータは、複数の盛り上がり判定条件のトータルで判断される。例えば複数の盛り上がり判定条件の各盛り上がり判定条件が成立すると、成立した盛り上がり判定条件に対応づけられた加算ポイントの分だけ、全体盛り上がりパラメータの値が変化する。
【００６３】
なお盛り上がりパラメータ演算部１０８は、複数の盛り上がり判定条件の各盛り上がり判定条件に基づいて、複数の個別盛り上がりパラメータの各個別盛り上がりパラメータの演算処理を行うと共に、複数の盛り上がり判定条件に基づいて、全体盛り上がりパラメータの演算処理を行ってもよい。即ち個別盛り上がりパラメータと全体盛り上がりパラメータの両方を演算する。
【００６４】
キャラクタ制御部１１４は、キャラクタの制御処理を行う。キャラクタはゲームに登場する人、ロボット、動物等の移動体である。具体的にはキャラクタ制御部１１４は、キャラクタ（モデルオブジェクト）を移動させるための演算を行う。或いはキャラクタを動作させるための演算を行う。即ち操作情報取得部１０１により取得された操作情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、キャラクタをオブジェクト空間内で移動させたり、キャラクタを動作（モーション、アニメーション）させる処理を行う。具体的には、キャラクタの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００６５】
例えばキャラクタ制御部１１４は、モーション記憶部１７４に記憶されるモーションデータに基づいて、キャラクタのモーション処理（モーション生成、モーション再生）を行う。具体的には、キャラクタ（スケルトン）を構成する各部位オブジェクト（スケルトンを構成する骨）の位置又は回転角度（方向）等を含むモーションデータを、モーション記憶部１７４から読み出す。そして、キャラクタの各部位オブジェクト（骨）を動かすことで（スケルトン形状を変形させることで）、キャラクタを動作させる。
【００６６】
キャラクタ制御部１１４はプレーヤキャラクタ制御部１１５、ノンプレーヤキャラクタ制御部１１６を含む。
【００６７】
プレーヤキャラクタ制御部１１５は、プレーヤが操作するプレーヤキャラクタの制御処理を行う。例えば操作情報取得部１０１により取得されたプレーヤの操作情報に基づいて、プレーヤキャラクタを移動させたり、動作（モーション）させる処理を行う。
【００６８】
ノンプレーヤキャラクタ制御部１１６は、対戦中のプレーヤキャラクタ及び相手キャラクタ以外のキャラクタであるノンプレーヤキャラクタ（ＮＰＣ）の制御処理を行う。例えばノンプレーヤキャラクタを制御する所定のアルゴリズム（プログラム）にしたがって、ノンプレーヤキャラクタを移動させたり、動作（モーション）させる処理を行う。
【００６９】
そして本実施形態では、盛り上がりパラメータ演算部１０８が盛り上がりパラメータを演算すると、ノンプレーヤキャラクタ制御部１１６は、演算された盛り上がりパラメータ（パラメータ値、フラグ）に基づいて、ノンプレーヤキャラクタの移動及び動作の少なくとも一方を制御する。例えば盛り上がりパラメータにより、プレーヤキャラクタと相手キャラクタの対戦が盛り上がったと判断される場合には、その盛り上がりを表現（画像表現）するための移動や動作を、プレーヤキャラクタに行わせる。
【００７０】
具体的には、プレーヤキャラクタと相手キャラクタが対戦フィールド上で対戦する処理が行われたとする。この場合にはノンプレーヤキャラクタ制御部１１６は、対戦フィールド上での対戦処理において演算された盛り上がりパラメータに基づいて、ノンプレーヤキャラクタを移動元の位置から対戦フィールドの方へと移動させる制御を行う。例えば対戦フィールドから離れた場所に位置するノンプレーヤキャラクタを、対戦フィールドの近く（周囲等）に移動させる制御を行う。
【００７１】
この場合にノンプレーヤキャラクタ制御部１１６は、ノンプレーヤキャラクタの移動元の位置（ノンプレーヤキャラクタが元に居た場所）と、対戦フィールドとの間の距離情報を取得する。そして取得された距離情報と、盛り上がりパラメータとに基づいて、ノンプレーヤキャラクタを対戦フィールドの方（対戦フィールドの近傍、周囲）に移動させるか否かを判定する。例えば移動元の位置と対戦フィールドの距離が近い場合には、盛り上がりパラメータの値が小さくても、ノンプレーヤキャラクタを対戦フィールドの方に移動させる。一方、移動元の位置と対戦フィールドの距離が遠い場合には、盛り上がりパラメータの値が所定しきい値よりも大きくなければ、ノンプレーヤキャラクタを対戦フィールドの方に移動させない。即ち、移動元の位置と対戦フィールドの距離が遠いほど、ノンプレーヤキャラクタを対戦フィールドの方に移動させるための盛り上がりパラメータのしきい値を大きくする。なお距離情報は、ノンプレーヤキャラクタの移動元の位置と対戦フィールド（代表位置、配置ポジション）との間の距離を表す情報である。
【００７２】
またノンプレーヤキャラクタ制御部１１６は、対戦フィールドの周囲に設定された配置ポジションに、ノンプレーヤキャラクタを移動させる制御を行う。例えば対戦フィールドの周囲（対戦を行わない場所）に複数の配置ポジションを設定する。そして、これらの複数の配置ポジションのうちのいずれかの配置ポジションを選択し、対戦フィールドの方に移動させると判断されたノンプレーヤキャラクタを、選択された配置ポジションに移動させる。この場合に、ゲーム結果（対戦結果）及び盛り上がりパラメータの少なくとも一方に応じて、配置ポジションの数を増加又は減少させてもよい。例えば、そのプレーヤのゲーム結果が高いほど、或いは盛り上がりパラメータの値が高いほど、配置ポジションの数を増加させる。具体的には、ある対戦でのプレーヤのゲーム結果の評価値が所定しきい値よりも高いと判断された場合や、その対戦での盛り上がりパラメータの値が所定しきい値よりも高いと判断された場合には、例えば次の対戦での配置ポジションの数を増加させる。
【００７３】
またノンプレーヤキャラクタ制御部１１６は、配置ポジションに移動した後のノンプレーヤキャラクタの動作を、盛り上がりパラメータに基づいて制御してもよい。例えば対戦フィールドに集まったプレーヤキャラクタの動作（モーション、演出動作を、その対戦での盛り上がりパラメータに基づいて変化させる。
【００７４】
また対戦フィールドが、プレーヤキャラクタ用の第１のフィールド（例えばプレーヤ側のコート等）と、相手キャラクタ用の第２のフィールド（例えば相手側のコート等）を有していたとする。この場合にノンプレーヤキャラクタ制御部１１６は、複数の盛り上がり判定条件のうちの第１の盛り上がり判定条件が満たされた場合には、第１、第２のフィールドのいずれか一方のみのフィールドの周囲の配置ポジションに、ノンプレーヤキャラクタを移動させる制御を行う。例えば勝っている側のキャラクタや、スーパープレイなどの所定のプレイ（所定動作）を行ったキャラクタのフィールドの周囲の配置ポジションに、ノンプレーヤキャラクタを移動させる。一方、複数の盛り上がり判定条件のうちの第２の盛り上がり判定条件が満たされた場合には、第１、第２のフィールドの両方のフィールドの周囲の配置ポジションにノンプレーヤキャラクタを移動させる。即ち、プレーヤキャラクタと相手キャラクタの両方のプレイによって盛り上がったと判断される場合には、第１、第２のフィールドを区別することなく、第１、第２のフィールドの周囲の配置ポジションにノンプレーヤキャラクタを移動させる。
【００７５】
またノンプレーヤキャラクタ制御部１１６は、複数の盛り上がり判定条件に基づき演算された盛り上がりパラメータに基づいて、ノンプレーヤキャラクタを制御する。例えば各盛り上がり判定条件に基づいて各個別盛り上がりパラメータの演算処理が行われた場合には、ノンプレーヤキャラクタ制御部１１６は、演算された個別盛り上がりパラメータに基づいて、ノンプレーヤキャラクタを制御する。また複数の盛り上がり判定条件に基づいて、全体盛り上がりパラメータの演算処理が行われた場合には、演算された全体盛り上がりパラメータに基づいて、ノンプレーヤキャラクタを制御する。この場合に、ノンプレーヤキャラクタの移動元の位置と対戦フィールドとの間の距離情報と、全体盛り上がりパラメータとに基づいて、ノンプレーヤキャラクタを対戦フィールドの方に移動させるか否かを判定することが望ましい。またノンプレーヤキャラクタ制御部１１６は、個別盛り上がりパラメータに基づく制御を行わないと判断されたノンプレーヤキャラクタについても、全体盛り上がりパラメータに基づいて制御してよい。即ち全体盛り上がりパラメータが所定しきい値を超えた場合には、そのノンプレーヤキャラクタを対戦フィールドの方に移動させる制御を行う。
【００７６】
また複数の第１〜第Ｎのノンプレーヤキャラクタの第Ｋ（１≦Ｋ≦Ｎ）のノンプレーヤキャラクタに対して、複数の盛り上がり判定条件のうちの少なくとも１つの盛り上がり判定条件が対応づけておくことが望ましい。この場合には、ノンプレーヤキャラクタ制御部１１６は、第Ｋのノンプレーヤキャラクタに対応づけられた盛り上がり判定条件に基づいて、第Ｋのノンプレーヤキャラクタを制御すればよい。例えばノンプレーヤキャラクタ毎に、そのノンプレーヤキャラクタに対応づけられた盛り上がり判定条件が成立したか否かを判断し、成立した場合には、そのノンプレーヤキャラクタを対戦フィールドの方に移動させる制御を行う。
【００７７】
仮想カメラ制御部１１８は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００７８】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理、シミュレーション処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。具体的には、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を、描画バッファ１７６（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお描画処理は頂点シェーダ処理やピクセルシェーダ処理により実現してもよい。
【００７９】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００８０】
２．本実施形態の手法
２．１  プレーヤキャラクタの制御
以下、プレーヤキャラクタの制御手法の一例について図２〜図４を用いて説明する。但し、本実施形態のプレーヤキャラクタの制御手法は図２〜図４に示す手法には限定されず、例えば通常のゲームコントローラの操作ボタンやアナログスティック等の操作によりプレーヤキャラクタの動作や移動を制御してもよい。
【００８１】
例えば図２では、プレーヤは、コントローラ２００（ゲームコントローラ）を片手で所持し、あたかもテニスのラケットのようにコントローラ２００を振って、スイングを行う。またゲーム装置３００（画像生成システム）により生成される画像が表示される表示部１９０には、プレーヤが操作するプレーヤキャラクタＣＨが映し出される。そして、プレーヤがコントローラ２００を持ってスイングすると、画面上のプレーヤキャラクタＣＨも、プレーヤのスイングに応じたスイングを行う。例えばプレーヤがフラットショットのスイングを行うと、プレーヤキャラクタＣＨもフラットショットのスイングを行い、プレーヤがトップスピンショットやスライスショットのスイングを行うと、プレーヤキャラクタＣＨもトップスピンショットやスライスショットのスイングを行う。そして画面上のプレーヤキャラクタＣＨが、相手キャラクタＣＣが打ったボールＢＬを打ち返すことで、プレーヤはテニスゲームを楽しむ。
【００８２】
なお、以下では本実施形態をテニスゲームに適用した場合を主に例にとり説明する。このテニスゲームの場合には、ヒット体はラケットになり、ヒット対象物はボールになる。但し、本実施形態はテニスゲーム以外のスポーツゲーム（例えば卓球、バトミントン、野球、サッカー、バレーボール等）や、スポーツゲーム以外の各種ゲーム（例えば格闘ゲーム、戦闘ゲーム、ロールプレイングゲーム等）に適用できる。
【００８３】
図３（Ａ）、図３（Ｂ）にコントローラ２００の構成例を示す。図３（Ａ）はコントローラ２００を正面から見た正面図であり、図３（Ｂ）は正面向かって右側から見た右側面図である。コントローラ２００は、面取りされた略四角断面を有する棒状の形状になっており、プレーヤは棒を握る要領でコントローラ２００を片手で所持して操作する。
【００８４】
コントローラ２００の正面側（操作面側）には、方向指示キー２１０、Ａボタン２１２等の各種スイッチ類（入力デバイス）が設けられている。またコントローラ２００の裏面側（背面側）にはトリガボタン２１４が設けられている。
【００８５】
コントローラ２００は、撮像素子２２０、無線通信モジュール２２２、加速度センサ２２４、角速度センサ２３０を有する。またコントローラ２００は、図示しないコントローラ制御部やバイブレータ（振動機構）やスピーカ等も内蔵する。コントローラ制御部は例えば制御ＩＣ（ＣＰＵ、ＡＳＩＣ）やメモリにより構成され、コントローラ２００の全体の制御や各種処理を行う。バイブレータは、コントローラ制御部からの振動制御信号にしたがって振動を発生させ、コントローラ２００を把持するプレーヤの手に振動を感じさせる。スピーカは、コントローラ制御部から出力された音信号に応じた音を出力する。
【００８６】
撮像素子２２０はＣＣＤやＣＭＯＳセンサなどにより実現され、コントローラ２００の長手方向（長軸方向）の前方の様子を撮像する。
【００８７】
無線通信モジュール２２２は、図２のゲーム装置３００（ゲーム装置本体）と無線通信（近接無線通信）を行うためのものである。例えば、方向指示キー２１０、Ａボタン２１２等により入力された操作情報、撮像素子２２０により得られた撮像情報、加速度センサ２２４、角速度センサ２３０により得られたセンサ情報（加速度情報、角速度情報）は、無線通信モジュール２２２によりゲーム装置３００に無線通信される。
【００８８】
加速度センサ２２４は、ユーザがコントローラ２００を動かした時（振った時）の加速度情報を検出するセンサである。例えば加速度センサ２２４は直交３軸方向の各加速度情報を検出する。例えば図４において、コントローラ２００の長辺方向に沿って設定された座標軸をＺ軸（広義には第３の座標軸）とし、Ｚ軸に直交する座標軸をＸ軸、Ｙ軸（広義には第１、第２の座標軸）としたとする。この場合には加速度センサ２２４は、例えばＸ軸方向に沿った第１の加速度情報、Ｙ軸方向に沿った第２の加速度情報、Ｚ軸方向に沿った第３の加速度情報を検出して、センサ情報として出力する。
【００８９】
角速度センサ２３０は、ユーザがコントローラ２００を動かした時（回転させた時）の角速度情報を検出するセンサである。例えば角速度センサ２３０は、直交３軸での角速度情報を検出するセンサであり、コントローラ２００のＸ軸、Ｙ軸、Ｚ軸回りでの角速度情報を検出する。具体的には、図４においてＸ軸回りの回転角度をα、Ｙ軸回りの回転角度をβ、Ｚ軸回りの回転角度をγとすると、これらのα、β、γについての角速度を検出する。なおＸ、Ｙ、Ｚの座標軸の正負の向きや、α、β、γの回転方向は、図４に限定されず適宜設定できる。また角速度センサ２３０は、例えば多軸角速度センシングジャイロスコープなどにより実現できる。具体的にはＭＥＭＳ構造の多軸角速度センシングジャイロスコープなどにより実現できる。
【００９０】
なお角速度センサ２３０は、コントローラ２００の本体の拡張端子に接続される拡張ユニット２０２内に設けられているが、コントローラ２００の本体内に設けてもよい。また以下では説明を簡略化するため、コントローラ本体と拡張ユニットが一体に形成されているものとして図示する。
【００９１】
またコントローラ２００は、プレーヤが所持（把持、取り付け）可能であり、例えば長手方向に沿った座標軸で回転可能な形状であることが望ましいが、図３（Ａ）、図３（Ｂ）の形状（略直方体形状。長手方向に沿った切断面が略長方形形状）には限定されない。例えば図３（Ａ）、図３（Ｂ）の形状の一部が異なる形状にしたり、コントローラ２００を収納するケースを設けて使用するなどの種々の変形実施が可能である。
【００９２】
２．２  盛り上がりパラメータに基づくノンプレーヤキャラクタの制御
本実施形態では、人数や時間・人間環境などの環境を問わずにリゾート旅行気分を味わうことができ、気軽にも本格的にも楽しむことができるテニスゲームを実現している。
【００９３】
具体的には、このテニスゲームでは図５（Ａ）に示すようなリゾートアイランドでプレーヤはテニスゲームを楽しむ。このリゾートアイランドは、テニスのためのリゾートであり、リゾート内には複数のコートが設置されている。プレーヤは、このリゾートアイランドにおいて臨場感のあるロケーションに設置されたコートで、テニスをプレイできる。
【００９４】
図５（Ｂ）に示すように、プレーヤが操作するプレーヤキャラクタは、コート周辺を散策することができ、観客や現地人となるノンプレーヤキャラクタとの会話を楽しむことができる。そして会話を通して試合等を申し込むことで、テニスゲームを始めることができる。
【００９５】
図６（Ａ）は、プレーヤが操作するプレーヤキャラクタＣＨと、相手キャラクタＣＣとがテニスの対戦を行っている様子を示す図である。相手キャラクタＣＣは、マルチプレーヤゲームにおいて相手プレーヤが操作するキャラクタであってもよいし、コンピュータ対戦においてコンピュータが操作するキャラクタであってもよい。
【００９６】
図６（Ａ）でのプレーヤキャラクタＣＨと相手キャラクタＣＣの対戦において、後述する盛り上がり判定条件が成立したか否かなどを判定することで、対戦（試合）の盛り上がり度を表す盛り上がりパラメータの演算処理が行われる。例えばラリーが続いたり、スーパーショットが決まったりして、所定の盛り上がり判定条件が成立すると、盛り上がりパラメータのフラグが立ったり、盛り上がりパラメータの値が上昇する。そして、本実施形態では、対戦における盛り上がりパラメータに基づいて、プレーヤキャラクタＣＨ及び相手キャラクタＣＣ以外のノンプレーヤキャラクタの移動や動作を制御する。
【００９７】
具体的には図６（Ｂ）に示すように、試合が盛り上がって、盛り上がりパラメータが上昇したり、盛り上がりパラメータの所定フラグが立つと、試合を行っているコートから離れた場所に居たノンプレーヤキャラクタＮＰ１〜ＮＰ６がコートの方へと移動して来る。即ちコートの近くに集まって、ギャラリーとしてプレーヤキャラクタと相手キャラクタの試合を観戦したり応援したりする。即ち、ギャラリーとなるノンプレーヤキャラクタは、所定の条件を満たすと徐々にコートの周囲に集まってきて、応援したり、拍手喝采を行ったりする。またゲームのリプレイ中（リプレイ画像の再生中）や勝利ポーズ中などに、バックで一緒に喜んだりする。
【００９８】
このようにすれば、白熱した試合展開になり、ゲームが盛り上がると、それにつれてギャラリーの数が増えるようになる。従って、白熱した試合が益々盛り上がるようになり、プレーヤのゲーム熱中度を高めることができる。即ちプレーヤは、ゲームが盛り上がっているか否かをギャラリーの数によって視覚的に認識できる。そして、試合が白熱してギャラリーが増えると、それが励みになって、益々、ゲームに熱中するようになる。この場合に後述するように、ギャラリーであるノンプレーヤキャラクタは、例えば勝っている側のキャラクタのコートや、スーパーショットなどの良いプレイをした側のキャラクタのコートに集まってくる。従って、プレーヤは、より多くのギャラリーが自分のコートの方に集まるように、プレイに集中するようになる。従って、プレーヤのゲームの熱中度を高めることができ、これまでにないタイプのテニスゲームを提供できる。
【００９９】
図７は、他のコートで観戦していたノンプレーヤキャラクタが、プレーヤのコートに集まって来る様子を示した図である。
【０１００】
図７において、プレーヤは、コートＣＴ１においてプレーヤキャラクタＣＨを操作して、相手キャラクタＣＣと対戦している。そしてノンプレーヤキャラクタＮＰ１１、ＮＰ１２、ＮＰ１３がギャラリーとして試合を観戦している。
【０１０１】
一方、他のコートＣＴ２、ＣＴ３では、各々、ノンプレーヤキャラクタＮＰ２１〜ＮＰ２６、ＮＰ３１〜ＮＰ３８がギャラリーとして試合を観戦している。この場合、ギャラリーの数は各コートでの盛り上がりパラメータの大小に比例しており、コートＣＴ１のギャラリー数は他のコートＣＴ２、ＣＴ３に比べて少なくなっている。
【０１０２】
そして例えばコートＣＴ１での試合が盛り上がり、コートＣＴ１での盛り上がりパラメータが大きくなると、図７に示すように他のコートＣＴ２で観戦していたノンプレーヤキャラクタＮＰ２１、ＮＰ２２、ＮＰ２５が、コートＣＴ２（移動元の位置）からコートＣＴ１の方へ移動して、今度は、コートＣＴ１の試合を観戦したり応援するようになる。
【０１０３】
この場合に、いずれのノンプレーヤキャラクタが集まってくるかは、そのノンプレーヤキャラクタの元の位置と、コートＣＴ１の位置（例えば代表位置、配置ポジションの位置）との距離情報（距離や、距離と等価なパラメータ）とによって決めることが望ましい。例えば、コートＣＴ１から近い距離に位置するノンプレーヤキャラクタほど、コートＣＴ１に集まるようにする。
【０１０４】
具体的には、後述するように、コートＣＴ１との距離に応じて盛り上がりパラメータのしきい値が設定されている。そして図７では、ノンプレーヤキャラクタＮＰ２１、ＮＰ２２、ＮＰ２５の距離では、盛り上がりパラメータのしきい値は例えば１０になっている。従って、コートＣＴ１での盛り上がりパラメータの値が１０以上になると、ノンプレーヤキャラクタＮＰ２１、ＮＰ２２、ＮＰ２５は、コートＣＴ１の方に移動するようになる。
【０１０５】
一方、図８では、ノンプレーヤキャラクタＮＰ２６、ＮＰ３１、ＮＰ３２、ＮＰ３３、ＮＰ３７の距離では、盛り上がりパラメータのしきい値は例えば２０になっている。従って、コートＣＴ１での盛り上がりパラメータの値が２０以上になると、ノンプレーヤキャラクタＮＰ２６、ＮＰ３１、ＮＰ３２、ＮＰ３３、ＮＰ３７は、コートＣＴ１の方に移動するようになる。
【０１０６】
このように、コートＣＴ１での盛り上がりパラメータの値が上昇するにつれて、より遠くに位置するノンプレーヤキャラクタが、コートＣＴ１に集まって来るようになる。この結果、コートＣＴ１での試合が益々盛り上がるようになり、プレーヤのゲーム熱中度や集中度を高めることが可能になる。
【０１０７】
また、例えばネットワークゲームなどのマルチプレーヤ型ゲームにおいて、複数の各コートにおいて各プレーヤがゲームをプレイする場合を想定する。この場合には、コートＣＴ１では第１のプレーヤが相手キャラクタと対戦を行い、コートＣＴ２では第２のプレーヤが相手キャラクタと対戦を行い、コートＣＴ３では第３のプレーヤが相手キャラクタと対戦を行うことになる。
【０１０８】
このとき、各コートＣＴ１、ＣＴ２、ＣＴ３での盛り上がりパラメータの値の大小に応じて、各コートのギャラリー数が変化する。従って、第１〜第３の各プレーヤは、質の高いプレイや白熱した試合を行うことで、自身のコートに集まってくるギャラリーの数を競い合うことが可能になり、これまでにないタイプのマルチプレーヤ型ゲームを提供できる。即ち、プレーヤは、ギャラリー数を増やすことが動機になってゲームプレイに熱中するようになり、プレーヤのゲームへの熱中度を高めることができる。
【０１０９】
また図９（Ａ）に示すように、ノンプレーヤキャラクタの移動先の場所として、コート（広義には対戦フィールド）の周囲に配置ポジションを予め設定しておくことが望ましい。例えば図９（Ａ）ではコートの周囲に複数の配置ポジションＰ１〜Ｐ８が設定されている。このうち配置ポジションＰ１〜Ｐ４は、例えばプレーヤキャラクタ側のギャラリーとなるノンプレーヤキャラクタの配置ポジション（第１のフィールドの周囲の配置ポジション）である。一方、配置ポジションＰ５〜Ｐ８は、相手キャラクタ側のギャラリーとなるノンプレーヤキャラクタの配置ポジション（第２のフィールドの周囲の配置ポジション）である。例えば配置ポジションＰ１〜Ｐ４に配置されたノンプレーヤキャラクタは、プレーヤキャラクタ側を応援し、配置ポジションＰ５〜Ｐ８に配置されたノンプレーヤキャラクタは、相手キャラクタ側を応援する。
【０１１０】
また、プレーヤキャラクタ側が一方的に勝ったり、スーパーショットを決めるといった盛り上がり判定条件（第１の盛り上がり判定条件）が満たされた場合には、プレーヤキャラクタ側のコート（第１のフィールド）の周囲の配置ポジションＰ１〜Ｐ４に対してノンプレーヤキャラクタが移動するようになる。逆に相手キャラクタ側が一方的に勝ったり、スーパーショットを決めるといった盛り上がり判定条件（第１の盛り上がり判定条件）が満たされた場合には、相手キャラクタ側のコート（第２のフィールド）の周囲の配置ポジションＰ５〜Ｐ８に対してノンプレーヤキャラクタが移動するようになる。
【０１１１】
また図９（Ｂ）、図９（Ｃ）に示すように、配置ポジションの数を、ゲーム結果や盛り上がりパラメータに基づいて増減させることが望ましい。例えばゲーム結果が良好であったり、盛り上がりパラメータが高かった場合には、図９（Ｃ）に示すように配置ポジションの数を増やす。
【０１１２】
この場合に配置ポジションの数を増やすタイミングは、対戦中（試合中）であってもよいし、対戦終了後（試合終了後）であってもよい。例えばプレーヤキャラクタが勝利したというゲーム結果であった場合に、プレーヤキャラクタ側のコートの配置ポジションの数を増加させたり、プレーヤキャラクタのスーパーショット等により盛り上がりパラメータが上昇した場合に、プレーヤキャラクタ側のコートの配置ポジションの数を増加させる。即ち、プレーヤキャラクタ及び相手キャラクタの一方側が、他方側に比べてゲーム結果が良い場合や、盛り上がりパラメータの上昇に寄与している場合には、一方側の配置ポジションの増加率を、他方側に比べて高くする。こうすることで、ゲーム成績が良かったり盛り上げた側のギャラリー数を増加させることができ、プレーヤのゲームへの熱中度を高めることができる。
【０１１３】
また、以上では盛り上がりパラメータに基づいてノンプレーヤキャラクタの移動を制御する場合について主に説明したが、盛り上がりパラメータに基づいてノンプレーヤキャラクタの動作（モーション、アニメーション、演出動作）を制御してもよい。
【０１１４】
例えば図１０において、コートに集まったノンプレーヤキャラクタＮＰ１〜ＮＰ６は、盛り上がりパラメータに応じて様々な動作を行っている。即ち図９（Ａ）の配置ポジションに移動した後のノンプレーヤキャラクタの動作を、試合展開等により変化する盛り上がりパラメータに基づいて制御する。
【０１１５】
例えば、ノンプレーヤキャラクタは、応援している側（チーム）が得点したり、勝った場合には、飛び跳ねて喜ぶ等の大はしゃぎのモーションを行う。また応援のモーションや拍手のモーションを行う。例えば、負けたチームを応援していたノンプレーヤキャラクタは、健闘を称えるという意味で拍手のモーションを行う。或いは、口笛を吹くなどのモーションを行ってもよい。また、応援している側が得点したり、スーパーショットを放つと、ノンプレーヤキャラクタが喜んでいることを表すエフェクト（演出動作）を表示してもよい。或いは、応援している側が失点した場合等には、ギャラリーがモヤモヤしていることを表すエフェクトを表示してもよい。
【０１１６】
以上のようにすれば、試合の盛り上がりによりノンプレーヤキャラクタが集まってきて、ギャラリー数が増えるのみならず、集合して来たノンプレーヤキャラクタが、盛り上がりパラメータに応じた動作を行うことで、試合の盛り上がり感を更に高めることができる。これによりプレーヤは、あたかもギャラリーと一体となったような感覚でゲームをプレイすることができ、プレーヤの仮想現実感を向上できる。
【０１１７】
２．３  盛り上がり判定条件
本実施形態では複数の盛り上がり判定条件に基づいて盛り上がりパラメータの演算処理を行っている。図１１に盛り上がり判定条件の一例を示す。
【０１１８】
例えば盛り上がり判定条件ＤＣ１は、一方的な試合展開である場合に満たされる判定条件である。具体的には、例えば３ゲーム以上の差がつくと、この盛り上がり判定条件ＤＣ１が成立し、勝っている方のキャラクタのコート（チーム）に、ギャラリーであるノンプレーヤキャラクタが集まるようになる。或いは、コートへの移動後に、盛り上がり判定条件ＤＣ１が満たされると、そのノンプレーヤキャラクタは、勝っている方のキャラクタを応援したり、喜んだりするなどのモーション（広義には動作）を行う。
【０１１９】
盛り上がり判定条件ＤＣ２は、ポイントのラリーが続いた場合に満たされる判定条件である。具体的には、ポイントのラリー（ゲームのラリー）が続くと、盛り上がり判定条件ＤＣ２が成立し、両方のキャラクタのコートに、ギャラリーであるノンプレーヤキャラクタが集まるようになる。
【０１２０】
盛り上がり判定条件ＤＣ３は、スーパーショットが決まった場合に満たされる判定条件である。例えばキャラクタがスーパーショットを決めると、盛り上がり判定条件ＤＣ３が成立し、スーパーショットを決めたキャラクタのコートに、ギャラリーであるノンプレーヤキャラクタが集まるようになる。或いは、コートへの移動後に、盛り上がり判定条件ＤＣ３が満たされると、そのノンプレーヤキャラクタは、スーパショットを決めたキャラクタを応援したり、喜んだりするなどのモーションを行う。
【０１２１】
盛り上がり判定条件ＤＣ４は、ボールのラリーが続いた場合に満たされる判定条件である。具体的には、一定回数以上のラリーが発生すると、盛り上がり判定条件ＤＣ４が成立し、両方のキャラクタのコートに、ギャラリーであるノンプレーヤキャラクタが集まるようになる。
【０１２２】
盛り上がり判定条件ＤＣ５は、ポイント差がついた場合に満たされる判定条件である。具体的には、０−４０になると、盛り上がり判定条件ＤＣ５が成立し、勝っている方のキャラクタのコートに、ギャラリーであるノンプレーヤキャラクタが集まるようになる。或いは、コートへの移動後に、盛り上がり判定条件ＤＣ５が満たされると、そのノンプレーヤキャラクタは、勝っている方のキャラクタを応援したり、喜んだりするなどのモーションを行う。
【０１２３】
盛り上がり判定条件ＤＣ６は、連続アドバンテージの場合に満たされる判定条件である。具体的には、デュースが３回以上続くと、盛り上がり判定条件ＤＣ６が成立し、両方のキャラクタのコートに、ギャラリーであるノンプレーヤキャラクタが集まるようになる。
【０１２４】
図１１において、ＤＣ１、ＤＣ３、ＤＣ５は第１の盛り上がり判定条件に相当する。この第１の盛り上がり判定条件が満たされた場合には、プレーヤキャラクタと相手キャラクタのいずれか一方のコート（広義には第１、第２のフィールドのいずれか一方のフィールド）の周囲の配置ポジションに、ノンプレーヤキャラクタが移動するようになる。
【０１２５】
一方、ＤＣ２、ＤＣ４、ＤＣ６は第２の盛り上がり判定条件に相当する。この第２の盛り上がり判定条件が満たされた場合には、プレーヤキャラクタと相手キャラクタの両方のコート（広義には第１、第２のフィールドの両方のフィールド）の周囲の配置ポジションに、ノンプレーヤキャラクタが移動するようになる。即ちプレーヤキャラクタ側のコートであるか相手キャラクタ側のコートであるかを区別することなく、ノンプレーヤキャラクタが集まる。
【０１２６】
このようにすれば、盛り上がり判定条件ＤＣ１、ＤＣ３、ＤＣ５が満たされた場合には、一方側のコートがギャラリーで賑わうようになる。これにより、その一方側のコートを中心にして試合が盛り上がるというゲーム演出を実現できる。
【０１２７】
これに対して、盛り上がり判定条件ＤＣ２、ＤＣ４、ＤＣ６が満たされた場合には、両方のコートがギャラリーで賑わうようになる。これにより、コート全体で試合が盛り上がるというゲーム演出を実現できる。
【０１２８】
また図１２（Ａ）に示すように、ＤＣ１〜ＤＣ６の各盛り上がり判定条件に基づいて、ＰＲ１〜ＰＲ６の各個別盛り上がりパラメータ（フラグ）を演算することが望ましい。例えば盛り上がり判定条件ＤＣ１が満たされた場合には、ＤＣ１に対応する個別盛り上がりパラメータＰＲ１のフラグを１にセットしたり、個別盛り上がりパラメータＰＲ１の値を増加させる。また盛り上がり判定条件ＤＣ２が満たされた場合には、ＤＣ２に対応する個別盛り上がりパラメータＰＲ２のフラグを１にセットしたり、個別盛り上がりパラメータＰＲ２の値を増加させる。盛り上がり判定条件ＤＣ３〜ＤＣ６と個別盛り上がりパラメータＰＲ３〜ＰＲ６の関係も同様である。
【０１２９】
また図１２（Ａ）に示すように全体盛り上がりパラメータＰＡＬを更に用意することが望ましい。具体的には複数の盛り上がり判定条件ＤＣ１〜ＤＣ６に基づいて、全体盛り上がりパラメータＰＡＬを演算する。例えば盛り上がり判定条件ＤＣ１が満たされた場合には、個別盛り上がりパラメータＰＲ１のフラグを１にセットしたり、ＰＲ１の値を増加させると共に、ＰＲ１に応じた加算ポイント（加算値）を、全体盛り上がりパラメータＰＡＬに加算する。また盛り上がり判定条件ＤＣ２が満たされた場合には、個別盛り上がりパラメータＰＲ２のフラグを１にセットしたり、ＰＲ２の値を増加させると共に、ＰＲ２に応じた加算ポイントを、全体盛り上がりパラメータＰＡＬに加算する。盛り上がり判定条件ＤＣ３〜ＤＣ６が満たされた場合も同様である。
【０１３０】
このような全体盛り上がりパラメータＰＡＬを用意すれば、対戦の全体的な盛り上がり感を、ＰＡＬにより表現できるようになる。即ち、一方のキャラクタがスーパーショットを決めただけでは、個別盛り上がりパラメータＰＲ３は上昇するものの、全体盛り上がりパラメータＰＡＬはそれほど上昇しない。しかしながら、一方のキャラクタがスーパーショットを決めると共に、ポイントやボールのラリーが続いたり、連続アドバンテージになったりすると、全体盛り上がりパラメータＰＡＬも上昇するようになる。そしてこの全体盛り上がりパラメータＰＡＬに基づいて、ギャラリーとなるノンプレーヤキャラクタを集めたり、応援や喜びのモーションをノンプレーヤキャラクタに行わせることで、個別的な盛り上がり感のみならず、試合全体の盛り上がり感を表現できる。
【０１３１】
また図１２（Ｂ）に示すように、ＤＣ１〜ＤＣ６の各盛り上がり判定条件を、各ノンプレーヤキャラクタに対して対応づけることが望ましい。即ち、第１〜第Ｎのノンプレーヤキャラクタの第Ｋ（１≦Ｋ≦Ｎ）のノンプレーヤキャラクタに対して、盛り上がり判定条件ＤＣ１〜ＤＣ６のうちの少なくとも１つの盛り上がり判定条件を対応づける。そして、その第Ｋのノンプレーヤキャラクタに対応づけられた盛り上がり判定条件に基づいて、その第Ｋのノンプレーヤキャラクタの移動や動作を制御する。
【０１３２】
例えば図１２（Ｂ）では、ノンプレーヤキャラクタＮＰ１に対しては盛り上がり判定条件ＤＣ１が対応づけられており、ノンプレーヤキャラクタＮＰ１は、ＤＣ１に対応する個別盛り上がりパラメータＰＲ１に基づき制御される。具体的には、図１１で説明したように、一方的な試合展開になって盛り上がり判定条件ＤＣ１が満たされると、ノンプレーヤキャラクタＮＰ１がそのコートに移動してくる。そして勝っている方のキャラクタを応援するモーション等を行う。
【０１３３】
またノンプレーヤキャラクタＮＰ２に対しては盛り上がり判定条件ＤＣ２、ＤＣ４が対応づけられており、ノンプレーヤキャラクタＮＰ２は、ＤＣ２、ＤＣ４に対応する個別盛り上がりパラメータＰＲ２、ＰＲ４に基づき制御される。具体的には、ポイントのラリーが続いて盛り上がり判定条件ＤＣ２が満たされたり、ボールのラリーが続いて盛り上がり判定条件ＤＣ４が満たされると、ノンプレーヤキャラクタＮＰ２がそのコートに移動してくる。そして両方のキャラクタを応援するモーション等を行う。
【０１３４】
またノンプレーヤキャラクタＮＰ３に対しては盛り上がり判定条件ＤＣ３が対応づけられており、ノンプレーヤキャラクタＮＰ３は、ＤＣ３に対応する個別盛り上がりパラメータＰＲ３に基づき制御される。具体的には、一方のキャラクタがスーパーショットを決めて盛り上がり判定条件ＤＣ３が満たされると、ノンプレーヤキャラクタＮＰ３がそのコートに移動してくる。そしてスーパーショットを決めたキャラクタを応援するモーション等を行う。ノンプレーヤキャラクタＮＰ４も同様である。
【０１３５】
以上のように、各ノンプレーヤキャラクタに対して各盛り上がり判定条件を対応づければ、全てのノンプレーヤキャラクタが画一的に移動したり動作してしまうことで、画像表現が単調になってしまう事態などを防止できる。即ち、各ノンプレーヤキャラクタが各盛り上がり判定条件にしたがって移動、動作することで、あたかも意思を持ってノンプレーヤキャラクタが動いているかのような感覚をプレーヤに与えることができ、プレーヤの仮想現実感を高めることができる。
【０１３６】
なお図１２（Ｂ）では、ノンプレーヤキャラクタは、個別盛り上がりパラメータのみならず、全体盛り上がりパラメータＰＡＬに基づいても制御される。このようにすれば、個別盛り上がりパラメータに基づく制御を行わないと判断されたノンプレーヤキャラクタについても、全体盛り上がりパラメータＰＡＬに基づき制御できるようになる。
【０１３７】
例えばノンプレーヤキャラクタＮＰ１は、一方的な試合展開という盛り上がり判定条件ＤＣ１が満たされなければ、原則として、コートへの移動は行わないことになる。しかしながら、全体盛り上がりパラメータＰＡＬに基づいてノンプレーヤキャラクタＮＰ１を制御すれば、盛り上がり判定条件ＤＣ１が満たされていなくても、全体盛り上がりパラメータＰＡＬが高くなり、試合全体が盛り上がった場合には、このノンプレーヤキャラクタＮＰ１もコートに移動して、応援等のモーションを行うようになる。ノンプレーヤキャラクタＮＰ２〜ＮＰ４も同様である。このように全体盛り上がりパラメータＰＡＬに基づき制御することで、試合の全体的な盛り上がり感についても効率的に表現できる。
【０１３８】
また図７、図８に示すように、ノンプレーヤキャラクタの距離情報と盛り上がりパラメータとに基づいてノンプレーヤキャラクタを制御する場合には、図１２（Ｃ）に示すように、各距離範囲に対して盛り上がりパラメータのしきい値を設定して制御を行うことが望ましい。
【０１３９】
具体的には図１２（Ｃ）では、距離範囲０〜Ｌ１に対してはしきい値ＶＴ１が設定され、距離範囲Ｌ１〜Ｌ２に対してはしきい値ＶＴ２が設定され、ＶＴ２＞ＶＴ１になっている。また距離範囲Ｌ２〜Ｌ３に対してはしきい値ＶＴ３が設定され、ＶＴ３＞ＶＴ２になっている。
【０１４０】
例えばノンプレーヤキャラクタ（代表点）とコート（代表点、配置ポジション）との距離Ｌが、距離範囲０〜Ｌ１に属する場合には、盛り上がりパラメータのしきい値はＶＴ１になる。従って、そのノンプレーヤキャラクタは、Ｌ＜ＶＴ１の場合にはコートの方に移動せず、Ｌ≧ＶＴ１の場合にコートの方に移動するようになる。
【０１４１】
またノンプレーヤキャラクタとコートとの距離Ｌが、距離範囲Ｌ１〜Ｌ２に属する場合には、盛り上がりパラメータのしきい値はＶＴ２になる。従って、そのノンプレーヤキャラクタは、Ｌ＜ＶＴ２の場合にはコートの方に移動せず、Ｌ≧ＶＴ２の場合にコートの方に移動するようになる。
【０１４２】
このようにすれば図７、図８で説明したように、コートからの距離が近いノンプレーヤキャラクタについては、そのコートでの盛り上がりパラメータが小さな場合でも、そのコートの方に移動するが、コートからの距離が遠いノンプレーヤキャラクタについては移動しないようになる。そして、そのコートでの盛り上がりパラメータが大きくなると、そのコートからの距離が遠いノンプレーヤキャラクタも、そのコートの方に移動するようになる。従って、盛り上がりパラメータが大きくなるにつれて、広範囲の位置のノンプレーヤキャラクタもそのコートに移動してくるようになり、盛り上がり感の演出効果を更に向上できる。
【０１４３】
２．４  詳細な処理
次に本実施形態の詳細な処理例について図１３〜図１４（Ｂ）のフローチャートを用いて説明する。
【０１４４】
図１３は、盛り上がりパラメータの演算処理のフローチャートである。まずゲームのポイントが決まったか否かを判断する（ステップＳ２１）。テニスゲームを例にとれば、一方のキャラクタがショットを決めたり、他方のキャラクタがミスをすることで、一方のキャラクタがポイントを獲得したか否かを判断する。そして、ポイントが決まった場合にはｎ＝１にセットして、図１１で説明した盛り上がり判定条件ＤＣｎが成立したか否かを判断する（ステップＳ２２、Ｓ２３）。
【０１４５】
盛り上がり判定条件ＤＣｎが成立した場合には、その盛り上がり判定条件ＤＣｎに対応する個別盛り上がりパラメータＰＲｎのフラグを１にセットする（ステップＳ２４）。或いはＰＲｎのパラメータ値を増加させてもよい。そして、全体盛り上がりパラメータＰＡＬに対して、個別盛り上がりパラメータＰＲｎ対応する加算ポイントを加算し、ｎを１だけインクリメントする（ステップＳ２５、Ｓ２６）。そしてｎ＞６（個別判定条件の数）であるか否かを判断し（ステップＳ７）、ｎ≦６である場合にはステップＳ２３に戻り、次の盛り上がり判定ＤＣｎについての処理を行う。一方、ｎ＞６である場合には盛り上がりパラメータの演算処理を終了する。
【０１４６】
図１４（Ａ）、図１４（Ｂ）は、盛り上がりパラメータに基づくノンプレーヤキャラクタの制御処理のフローチャートである。
【０１４７】
図１４（Ａ）では、全てのノンプレーヤキャラクタについての処理が終了するまで、ノンプレーヤキャラクタ処理を繰り返す（ステップＳ３１、Ｓ３２）。そして各ノンプレーヤキャラクタでは図１４（Ｂ）の処理が行われる。
【０１４８】
まず、ノンプレーヤキャラクタに対応づけられた個別盛り上がりパラメータのフラグが１にセットされているか否かを判断する（ステップＳ４１）。即ち図１３のステップＳ２４において、対応する個別盛り上がりパラメータのフラグが１にセットされたか否かを判断する。そして、１にセットされていた場合には、移動先のコートの配置ポジションに、そのノンプレーヤキャラクタを移動させる（ステップＳ４２）。
【０１４９】
一方、個別盛り上がりパラメータのフラグが１にセットされていない場合には、ノンプレーヤキャラクタと移動先とのコートとの距離により得られるしきい値ＶＴと、全体盛り上がりパラメータＰＡＬを比較する（ステップＳ４３）。即ち図１２（Ｃ）で説明したように、ノンプレーヤキャラクタとコートとの距離が属する距離範囲からしきい値を取得し、そのしきい値と全体盛り上がりパラメータＰＡＬを比較する。そしてＰＡＬ≧ＶＴか否かを判断し、ＰＡＬ≧ＶＴである場合には、移動先のコートの配置ポジションに、そのノンプレーヤキャラクタを移動させる（ステップＳ４４、Ｓ４５）。
【０１５０】
以上のようにすることで、各ノンプレーヤキャラクタを、対応する個別盛り上がりパラメータに基づき制御すると共に、全体盛り上がりパラメータに基づいても制御できるようになる。
【０１５１】
２．５  コントローラの回転角度情報に基づくヒット演算処理
次に本実施形態のヒット演算処理の詳細例について説明する。なお本実施形態のヒット演算処理は以下に説明する処理に限定されず、種々の変形実施が可能である。
【０１５２】
図１５（Ａ）、図１５（Ｂ）、図１６に、図３（Ａ）〜図４で説明したコントローラ２００により操作されるプレーヤキャラクタＣＨ（以下、適宜、キャラクタＣＨと記載）のモーション（基準モーション）の例を示す。図１５（Ａ）は基準ポジションでのキャラクタＣＨのモーション（姿勢）の例である。図１５（Ｂ）はテークバック時のモーションの例であり、図１６はボールのヒット時（インパクト時）のモーションの例である。プレーヤが、図２のようにコントローラ２００を持って、テニスのラケットのようにコントローラ２００を振ってスイングを行うと、画面上のキャラクタＣＨも、図１５（Ａ）〜図１６のようにスイングを行う。ここではキャラクタＣＨは、フラットショットのスイングを行っている。即ち図１６に示すようにボール（広義にはヒット対象物）のインパクトの瞬間では、ラケットＲＫ（広義にはヒット体）の面は水平面（地面）に垂直な方向になっており、ラケット面にボールが直角にヒットするため、ボールは回転せずにフラットショットの軌道で飛ぶようになる。
【０１５３】
さて、現実世界のテニスでは、図１６のようなフラットショット以外にも、トップスピンやスライスなどの各種ショットがある。例えばトップスピンショットでは、図１６のフラットショットに比べて、ボールのインパクト時にラケット面の向きが下側に向き（水平面に対する角度が９０度よりも小さくなり）、ボールに対して順方向の回転がかかる。一方、スライスショットでは、図１６のフラットショットに比べて、ボールのインパクト時にラケット面の向きが上側に向き（水平面に対する角度が９０度よりも大きくなり）、ボールに対して逆方向の回転がかかる。
【０１５４】
しかしながら、これまでのテニスゲームでは、このようなトップスピンやスライスなどの各種ショットを、プレーヤが違和感を感じない操作で実現することが難しかった。例えばトップスピンやスライスの打ち分けを、方向指示キーやボタンの操作で行う手法も考えられる。具体的には方向指示キーで下側を指示した場合にはトップスピンのショットになり、上側を指示した場合にはスライスショットになるようにする。しかしながら、このような操作は、現実世界でのテニスのスイングの感覚とは異なるものであり、このような操作では、実際にテニスをプレイしているというような仮想現実感をプレーヤに与えることが難しい。
【０１５５】
特に図２のように、プレーヤがコントローラ２００をテニスラケットのようにスイングすることで、画面上のキャラクタＣＨがスイングしてボールＢＬを打ち返す場合には、このような方向指示キー等を用いたショットの打ち分けでは、プレーヤの仮想現実感を今ひとつ向上できない。即ち、コントローラ２００を振る動作については、現実世界のテニスと同様であるのに、トップスピンやスライスの打ち分けは、現実世界とは異なってしまい、図２のようなゲーム操作を実現した意味が薄れてしまう。
【０１５６】
そこで本実施形態では、コントローラ２００の所定座標軸回りでの回転角度情報、例えばＺ軸（第３の座標軸）回りでの回転角度情報を取得する。そして取得された回転角度情報に基づいて、ラケットＲＫ（広義にはヒット体）によりヒットされるボールＢＬ（広義にはヒット対象物）の移動状態や動作状態（移動方向や回転状態）を設定するヒット演算処理を行う。
【０１５７】
例えば図１７（Ａ）〜図１７（Ｃ）では、ラケットＲＫによるボールＢＬのヒットタイミングにおけるコントローラ２００の回転角度情報に基づいて、ボールＢＬの移動状態や動作状態を設定している。
【０１５８】
具体的には図１７（Ａ）では、ヒットタイミングＴＨでのコントローラ２００のＺ軸回りでの回転角度γは、基準ポジションでの初期値を例えば０（度）とした場合に、γ＝０になっている。このようにヒットタイミングＴＨでのＺ軸回りの回転角度がγ＝０である場合には、ラケットＲＫの面が水平面に対して垂直であると判断して、例えばフラットショットになるようにボールＢＬの移動方向や回転状態等を設定する。例えばボールＢＬが、ほぼ無回転で、比較的速い速度で、フラットショットの軌道で飛ぶように、ボールＢＬの移動演算処理を行う。
【０１５９】
一方、図１７（Ｂ）では、ヒットタイミングＴＨでのコントローラ２００の回転角度はγ＝γＡとなっている。従って、ラケット面と水平面のなす角度が９０度よりも小さくなっており、ラケット面の向きが下向きであると判断して、例えばトップスピンショットになるようにボールＢＬの移動方向や回転状態等を設定する。例えばボールＢＬが、順方向の回転でトップスピンショットの軌道で飛ぶように、ボールＢＬの移動演算処理を行う。
【０１６０】
図１７（Ｃ）では、ヒットタイミングＴＨでのコントローラ２００の回転角度はγ＝−γＢとなっている。従って、ラケット面と水平面のなす角度が９０度よりも大きくなっており、ラケット面の向きが上向きであると判断して、例えばスライスショットになるようにボールＢＬの移動方向や回転状態等を設定する。例えばボールＢＬが、逆方向の回転でスライスショットの軌道で飛ぶように、ボールＢＬの移動演算処理を行う。
【０１６１】
なお図１７（Ａ）〜図１７（Ｃ）の各ショットの切り替えは、例えば回転角度γが属する角度範囲を判定することで実現できる。一例としては、−γ１≦γ≦γ１である場合にはフラットショットであると判断し、γ１＜γ＜γ２である場合にはトップスピンショットであると判断し、−γ２＜γ＜−γ１である場合にはスライスショットであると判断すればよい。
【０１６２】
図１８（Ａ）〜図１８（Ｃ）では、ヒット判定期間におけるコントローラ２００の回転角度情報に基づいて、ボールＢＬのヒット後の移動状態や動作状態を設定している。具体的にはヒット判定期間における回転角度情報の変化情報に基づいて、ボールＢＬのヒット後の移動状態や動作状態を設定する。例えば第１のタイミングでの回転角度情報と第２のタイミングでの回転角度情報に基づいて、ボールＢＬの移動状態や動作状態を設定する。
【０１６３】
例えば図１８（Ａ）では、ヒットタイミングＴＨの前の第１のタイミングＴＭ１でのＺ軸回りでの回転角度はγ＝０になっており、ラケット面が水平面に対して垂直になっていると判断される。またヒットタイミングＴＨでは、回転角度はγ＝γＡとなっており、ラケット面の向きが、タイミングＴＭ１に比べて下方向に向いていると判断される。またヒットタイミングＴＨの後の第２のタイミングＴＭ２では、回転角度はγ＝γＢ＞γＡとなっており、ラケット面の向きが、ヒットタイミングＴＨに比べて更に下方向に向いていると判断される。このように、ヒットタイミングの前後で、ラケット面の向きが下方向に変化した場合には、例えばトップスピンショットになるようにボールＢＬの移動方向や回転状態等を設定する。またヒットタイミング前後での回転角度の変化が大きい場合には、例えばトップスピンの回転速度（回転量）を速くしてもよい。
【０１６４】
また図１８（Ｂ）では、ヒットタイミングＴＨの前の第１のタイミングＴＭ１でのＺ軸回りでの回転角度はγ＝０になっており、ラケット面が水平面に対して垂直になっていると判断される。またヒットタイミングＴＨでは、回転角度はγ＝−γＡとなっており、ラケット面の向きが、タイミングＴＭ１に比べて上方向に向いていると判断される。またヒットタイミングＴＨの後の第２のタイミングＴＭ２では、回転角度はγ＝−γＢ＜−γＡとなっており、ラケット面の向きが、ヒットタイミングＴＨに比べて更に上方向に向いていると判断される。このように、ヒットタイミングの前後で、ラケット面の向きが上方向に変化した場合には、例えばスライスショットになるようにボールＢＬの移動方向や回転状態等を設定する。またヒットタイミング前後での回転角度の変化が大きい場合には、スライスの回転速度（回転量）を速くしてもよい。
【０１６５】
また図１８（Ｃ）では、タイミングＴＭ１、ＴＨ、ＴＭ２において、ラケット面の向きが上方向に向いていると判断される。また例えばＹ軸回りでの回転角度β等に基づいて、ラケットＲＫの位置が徐々に上側に移動していると判断される。従って、この場合には、ボールＢＬが上方向に飛ぶロブショットになるようにボールＢＬの移動方向や回転状態等を設定する。
【０１６６】
このように、図１７（Ａ）〜図１７（Ｃ）では、ヒットタイミングＴＨでの回転角度だけを用いているのに対して、図１８（Ａ）〜図１８（Ｃ）では、ヒットタイミングＴＨの前後のタイミングＴＭ１、ＴＭ２での回転角度を反映させてボールＢＬの移動方向や回転状態等を設定している。このようにすることで、ヒット後のボールＢＬの軌道を現実世界の軌道に近づけることが可能になり、プレーヤの仮想現実感を更に向上できる。また、ヒットタイミングのみならず、その前後のタイミングでのコントローラの回転角度も反映されるため、フォロースルーやテークバックでのラケット面の角度も反映させたショットが可能になる。
【０１６７】
図１９（Ａ）〜図１９（Ｄ）に、フラット、トップスピン、スライス、ロブの各ショットの回転方向や移動方向の設定例を示す。同図に示すように、フラットやロブではボールＢＬはほぼ無回転で飛び、トップスピンでは順方向の回転になり、スライススピンでは逆方向の回転になる。またフラットではボールＢＬが水平に飛ぶのに対して、ロブでは上方向に飛ぶ。なおボールＢＬの回転方向や移動方向の設定は、図１９（Ａ）〜図１９（Ｄ）に限定されず、種々の変形実施が可能である。例えば、順方向に回転しながら上方向に飛ぶトップスピンロブなどを再現してもよい。また、ヒット後のボールＢＬのショットの軌道は、ヒット時に設定された移動状態や動作状態に基づく物理シミュレーション処理を行うことで求めてもよいし、複数のショット軌道の中から、ヒット時に設定された移動状態や動作状態に応じたショット軌道を選択することで求めてもよい。
【０１６８】
以上のように本実施形態では、コントローラ２００の所定座標軸回りでの回転角度情報を用いてヒット演算処理を実行している。このようにすれば、例えばテニスのラケット面のコントロール等を、コントローラ２００の所定座標軸回りでの回転操作により実現できる。従って、従来のスポーツゲーム等では実現することが難しかった操作インターフェース環境を提供できる共に、コントローラ２００の操作と、キャラクタの動きとがマッチするようになるため、プレーヤの仮想現実感を向上できる。
【０１６９】
例えば従来は、コントローラ２００に設けられた加速度センサ２２４を用いて、プレーヤによりコントローラ２００が振られたことを検知していた。このような加速度センサ２２４だけを用いる手法では、各座標軸回りでの絶対的な回転角度を正確に求めることは困難である。また加速度センサ２２４では、コントローラ２００の長手方向に沿ったＺ軸回りでの回転角度を求めることは難しい。
【０１７０】
これに対して本実施形態では、例えば角速度センサ２３０を用いてコントローラ２００の各座標軸回りでの回転角度を求め、この回転角度を用いてヒット演算処理を実現している。従って、加速度センサ２２４だけを用いる従来の手法に比べて、よりインテリジェントで精度の高いヒット演算処理を実現できる。なおコントローラ２００の各座標軸回りでの回転角度を求めるセンサとして、角速度センサ２３０以外のセンサを採用することも可能である。
【０１７１】
また本実施形態では、盛り上がりパラメータに基づいてヒット演算処理を行う。例えば試合が盛り上がって、盛り上がりパラメータが高くなると、図１９（Ｂ）、図１９（Ｃ）のトップスピンやスライスのショットの回転速度や移動速度等を速くする。これにより、いわゆるナイスショットやスーパーショットが決まりやすくなり、更に試合を盛り上げることができる。或いは、図１１で説明したように、一方のキャラクタが有利になる盛り上がり判定条件が満たされた場合には、その一方のキャラクタのトップスピンやスライスのショットの回転速度や移動速度等を速くする。このようにすることで、その一方のキャラクタのショットが決まりやすくなり、一方のキャラクタ側を更に盛り上げることが可能になる。
【０１７２】
２．６  ヒット強さの設定
さて、上述のように本実施形態では、コントローラ２００の角速度センサ２３０を用いて所定座標軸回りでの回転角度を求めて、ヒット演算処理を実行している。この時、例えば加速度センサ２２４で得られた加速度を用いて、ボールＢＬのヒットの強さ（ヒット力、ヒット加速度）を設定してもよい。
【０１７３】
具体的には図２０に示すように、加速度センサ２２４により、Ｚ軸に沿った方向（第３の座標軸に沿った方向）での加速度ＡＶを検出する。この加速度ＡＶは、コントローラ２００をスイングすることでＺ軸方向に生じる遠心力（正確には遠心力と重力の合力）に相当する加速度である。そして、検出された加速度ＡＶに基づいて、ラケットＲＫによりボールＢＬがヒットされた時のヒットの強さを設定する。
【０１７４】
例えば、プレーヤがコントローラ２００を速いスピードでスイングした場合には、Ｚ軸方向の遠心力に相当する加速度ＡＶは大きくなる。従って、この場合には、ボールＢＬが強くヒットされるようにする。例えばボールＢＬのヒット方向での加速度を大きな値に設定する。一方、プレーヤがコントローラ２００を遅いスピードでスイングした場合には、Ｚ軸方向の遠心力に相当する加速度ＡＶも小さくなる。従って、この場合には、ボールＢＬが弱くヒットされるようにする。例えばボールＢＬのヒット方向での加速度を小さな値に設定する。
【０１７５】
このようにすれば、スイングスピードとヒットの強さが比例するようになり、現実世界のボールＢＬのショットを、より忠実に再現できる。即ち角速度センサ２３０と加速度センサ２２４を上手く使い分けて、ラケットＲＫによるボールＢＬのヒット演算処理を実現できるようになる。なお、ボールＢＬのヒットの強さを、例えばＸ軸回りでの回転速度等も反映させて設定してもよい。例えばＸ軸回りでの回転速度が速い場合には、ボールＢＬのヒットの強さも大きくする。
【０１７６】
そして本実施形態では、盛り上がりパラメータに基づいてヒット演算処理を行う。例えば盛り上がりパラメータに基づいてボールＢＬのヒットの強さも設定する。具体的には試合が盛り上がって、盛り上がりパラメータが高くなると、ボールＢＬのヒットの強さも大きくする。これにより、キャラクタのショットが強いショットになって決まりやすくなり、更に試合を盛り上げることができる。或いは、一方のキャラクタが有利になる盛り上がり判定条件が満たされた場合には、その一方のキャラクタのショットの強さを強くする。このようにすることで、その一方のキャラクタのショットが決まりやすくなり、一方のキャラクタ側を更に盛り上げることが可能になる
２．７  基準ポジション
角速度センサ２３０を用いた場合には、センサから得られる情報は角速度になる。従って、絶対的な回転角度を求める場合には、角速度の積算処理等を行うことになるため、回転角度の初期値を設定することが望ましい。このため本実施形態では、基準ポジション検出部１０８が、コントローラ２００の基準ポジションを検出する。この基準ポジションは、例えばコントローラ２００のＸ、Ｙ、Ｚ軸回りでの回転角度α、β、γの初期値を設定するためのポジションである。
【０１７７】
この基準ポジションの検出手法としては種々の手法が考えられるが、本実施形態では、コントローラ２００が基準ポジションに設定されたことを知らせる所定の操作を、プレーヤが行った場合に、基準ポジションに設定されたと判断している。具体的には図２１では、プレーヤは、ラケットに相当するコントローラ２００を体の前側に持って、テニスと同様の基準ポジションの姿勢をとる。そしてトリガボタン２１４を押すことで、コントローラ２００が基準ポジションに設定されたことを、ゲーム装置３００側に知らせる。すると、コントローラ２００の回転角度α、β、γが初期値（例えば０度）に設定される。その後、プレーヤがコントローラ２００をラケットのように見なしてスイングを行うと、角速度センサ２３０で検出された角速度に基づいて、回転角度α、β、γが初期値から変化して、基準ポジションからの回転角度が取得される。そしてキャラクタＣＨが図１５（Ａ）〜図１６に示すようなスイングを行って、ボールＢＬのショットを行う。
【０１７８】
このようにすれば、プレーヤは、実際のテニスと同様に、ラケットに相当するコントローラ２００を体の前側に持った後に、トリガボタン２１４を押してスイングするという動作を繰り返すことで、相手キャラクタＣＣとのラリーを楽しむことができる。従って、プレーヤが違和感を感じない動作でテニスゲームを楽しむことができる。
【０１７９】
なお基準ポジションの検出手法は図２１の手法に限定されない。例えばトリガボタン２１４以外のボタン等の操作で、基準ポジションであることを知らせるようにしてもよい。或いは図３（Ａ）の撮像素子２２０による撮像で、表示部１９０に取り付けられた発光素子等を検出することで、基準ポジションを検出してもよい。例えばプレーヤが、撮像素子２２０を表示部１９０の画面側に向けた場合に基準ポジションを検出する。
【０１８０】
２．８  ヒット判定エリアの設定
本実施形態では角速度センサ２３０により取得されたコントローラ２００の回転角度γに基づいて、ラケットＲＫの面の角度を設定する。一方、角速度センサ２３０により取得されたコントローラ２００の回転角度α、β等に基づいて、ヒット判定エリアを設定してもよい。
【０１８１】
例えば図２２（Ａ）では、コントローラ２００は、基準方向ＤＲ（基準ポジションの場合の方向）に対してＸ軸回りにα＝αｉだけ回転している。この場合には図２２（Ｂ）に示すように、ヒット判定エリアＨＡについても、基準方向に対してα＝αｉだけ回転させた位置に設定する。例えばキャラクタＣＨの中心から所定半径位置にラケットＲＫがあると想定し、このラケットＲＫ（ラケット面）を含むヒット判定エリアＨＡ（ヒットボリューム）を設定する。そして、ラケットＲＫによりボールＢＬがヒットされたか否かは、ヒット判定エリアＨＡとボールＢＬとのヒットチェック処理を行うことで判定する。
【０１８２】
また図２２（Ｃ）では、コントローラ２００は、基準方向ＤＲに対してＹ軸回りにβ＝βｊだけ回転している。この場合には図２２（Ｄ）に示すように、ヒット判定エリアＨＡについても、基準方向に対してβ＝βｊだけ回転させた位置に設定する。
【０１８３】
このようにすれば、プレーヤが、コントローラ２００をラケットのように振り回すと、振り回した時の各位置に対応する位置にラケットＲＫが配置されて、ラケットＲＫを内包するヒット判定エリアＨＡとボールＢＬとのヒットチェック処理が行われるようになる。従って、プレーヤは、実際のテニスのようにコントローラ２００を振り回すことで、ボールＢＬをショットすることが可能になり、現実世界に忠実なテニスゲームを実現できる。
【０１８４】
なおヒット判定エリアＨＡの設定の際に、Ｚ軸回りでの回転角度γを反映させるようにしてもよい。例えばヒット判定エリアＨＡが板形状である場合には、その板形状の面の角度を、Ｚ軸回りでの回転角度γにより設定してもよい。
【０１８５】
そして本実施形態では、盛り上がりパラメータに基づいて、ヒット演算処理におけるヒット判定エリアＨＡを制御する。例えば盛り上がりパラメータに応じて、ヒット判定エリアＨＡの大きさを変化させる。
【０１８６】
例えば図２２（Ｅ）では、試合があまり盛り上がっておらず、盛り上がりパラメータの値が小さくなっているため、ラケットＲＫ（ラケット面）に設定されるヒット判定エリアＨＡの大きさを小さくする。このようにすれば、キャラクタのスイング時には、ラケットにボールがヒットしにくくなる。
【０１８７】
一方、図２２（Ｆ）では、試合が盛り上がっており、盛り上がりパラメータの値が大きくなっているため、ヒット判定エリアＨＡの大きさも大きくする。このようにすれば、キャラクタのスイング時には、ラケットにボールがヒットしやくすくなる。従って、ショットのミスが少なくなって、ラリーが続くようになったり、ナイスショットが決まりやすくなるため、試合を更に盛り上げることが可能になる。
【０１８８】
なお、一方のキャラクタが有利になる盛り上がり判定条件が満たされた場合には、その一方のキャラクタのラケットのヒット判定エリアＨＡの大きさを大きくしてもよい。このようにすることで、その一方のキャラクタのショットが決まりやすくなり、一方のキャラクタ側を更に盛り上げることが可能にな
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（ヒット体、ヒット対象物等）と共に記載された用語（ラケット、ボール等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ノンプレーヤキャラクタの制御処理、ヒット演算処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【符号の説明】
【０１８９】
１００  処理部、１０１  操作情報取得部、１０２  ゲーム演算部、
１０４  オブジェクト空間設定部、１０６  ヒット演算処理部、
１０８  盛り上がりパラメータ演算部、１１４  キャラクタ制御部、
１１５  プレーヤキャラクタ制御部、１１６  ノンプレーヤキャラクタ制御部、
１１８  仮想カメラ制御部、１２０  画像生成部、１３０  音生成部、
１６０  操作部、１７０  記憶部、１７２  オブジェクトデータ記憶部、
１７４  モーション記憶部、１７６  描画バッファ、１７８  パラメータ記憶部、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９４  補助記憶装置、
１９６  通信部、２００  コントローラ、２０２  拡張ユニット、
２１０  方向指示キー、２１２  Ａボタン、２１４  トリガボタン、２２０  撮像素子、
２２２  無線通信モジュール、２２４  加速度センサ、２３０  角速度センサ
【図１】
2010233751.tif 000003
【図２】
2010233751.tif 000004
【図３】
2010233751.tif 000005
【図４】
2010233751.tif 000006
【図６】
2010233751.tif 000007
【図７】
2010233751.tif 000008
【図８】
2010233751.tif 000009
【図９】
2010233751.tif 000010
【図１０】
2010233751.tif 000011
【図１１】
2010233751.tif 000012
【図１２】
2010233751.tif 000013
【図１３】
2010233751.tif 000014
【図１４】
2010233751.tif 000015
【図１７】
2010233751.tif 000016
【図１８】
2010233751.tif 000017
【図１９】
2010233751.tif 000018
【図２０】
2010233751.tif 000019
【図２１】
2010233751.tif 000020
【図２２】
2010233751.tif 000021
【図５】
2010233751.tif 000022
【図１５】
2010233751.tif 000023
【図１６】
2010233751.tif 000024