(57)【要約】      （修正有）【課題】競争だけでなく協力してプレイを進行させるゲームプログラムを提供する。【解決手段】仮想空間内で複数のプレイヤキャラクタが移動可能であり、ゲーム終了時において各プレイヤキャラクタに付与された総得点を競うゲームプログラムである。ゲーム進行部３１０は、複数のプレイヤキャラクタと総得点とを画面表示させる。オブジェクト移動部３２０は、操作信号に基づき、当該プレイヤキャラクタを仮想空間内で移動させる。オブジェクト数判定部３３０は、仮想空間内の所定エリア又は所定オブジェクトに属するプレイヤキャラクタの数を判定する。得点付与部３４０は、所定エリア又は所定オブジェクトに属するプレイヤキャラクタに対して、判定されたプレイヤキャラクタの数に応じて得点を付与する。これにより、判定されたプレイヤキャラクタの数に応じて得点を付与することで、ユーザに協力してプレイする意欲をもたせることができる。【選択図】図２Ｂ
2012249860.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間内で複数のプレイヤキャラクタが移動可能であり、ゲーム終了時において前記プレイヤキャラクタに付与された総得点を競うゲームをコンピュータに実行させるゲームプログラムにおいて、
前記コンピュータを、
前記プレイヤキャラクタ、及び前記プレイヤキャラクタに付与された総得点を画面表示させるゲーム進行手段、
前記プレイヤキャラクタに対応する操作信号に基づき、該プレイヤキャラクタを前記仮想空間内で移動させる移動手段、
前記仮想空間内の所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタの数を算出するオブジェクト数判定手段、
前記所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタに対して、算出された前記プレイヤキャラクタの数に応じて得点を付与する付与手段として機能させる
ことを特徴とするゲーム装置の制御プログラム。
【請求項２】
前記コンピュータを、
前記プレイヤキャラクタが前記所定エリア又は所定オブジェクトに属した順番を算出する順番判定手段、
前記順番が早いプレイヤキャラクタに対応する前記操作信号によって、該プレイヤキャラクタが前記所定エリア又は所定オブジェクトから離脱した場合、前記順番が遅いプレイヤキャラクタを、当該所定エリア又は所定オブジェクトから離脱させる強制離脱手段として機能させる
ことを特徴とする請求項１に記載のゲーム装置の制御プログラム。
【請求項３】
前記付与手段は、前記所定エリア又は所定オブジェクトに属した前記プレイヤキャラクタの数が多いほど、多くの得点を該プレイヤキャラクタそれぞれに付与する
ことを特徴とする請求項１又は２に記載のゲーム装置の制御プログラム。
【請求項４】
前記付与手段は、設定された回数又は時間に従って、前記プレイヤキャラクタに得点を付与する
ことを特徴とする請求項１乃至３のいずれか１項に記載のゲーム装置の制御プログラム。
【請求項５】
前記コンピュータを、
前記所定エリア又は所定オブジェクトに属した順番が最も遅いプレイヤキャラクタに対応する操作信号に基づき、当該所定エリア又は所定オブジェクトに属する他のプレイヤキャラクタが当該所定エリアから離脱する方向を決定させる移動方向決定手段として機能させる
ことを特徴とする請求項１乃至４のいずれか１項に記載のゲーム装置の制御プログラム。
【請求項６】
前記コンピュータを、
前記所定エリア又は所定オブジェクトに属した前記プレイヤキャラクタの数を基に、回転の最高速度又は最低速度を調整し、回転速度加速の指示を検知した際の加速量を制限する回転制御手段として機能させ、
前記強制離脱手段は、前記所定エリア又は所定オブジェクトに属した前記プレイヤキャラクタの数に従って、飛び出す距離を小さくするように制御する
ことを特徴とする請求項１乃至５のいずれか１項に記載のゲーム装置の制御プログラム。
【請求項７】
前記付与手段は、前記所定エリア又は所定オブジェクトに属した前記プレイヤキャラクタが一回転することで、該プレイヤキャラクタに得点を付与する
ことを特徴とする請求項１乃至６のいずれか１項に記載のゲーム装置の制御プログラム。
【請求項８】
仮想空間内で複数のプレイヤキャラクタが移動可能であり、ゲーム終了時において前記プレイヤキャラクタに付与された総得点を競うゲームをコンピュータに実行させるゲームプログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータを、
前記プレイヤキャラクタ、及び前記プレイヤキャラクタに付与された総得点を画面表示させるゲーム進行手段、
前記プレイヤキャラクタに対応する操作信号に基づき、該プレイヤキャラクタを前記仮想空間内で移動させる移動手段、
前記仮想空間内の所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタの数を算出するオブジェクト数判定手段、
前記所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタに対して、算出された前記プレイヤキャラクタの数に応じて得点を付与する付与手段として機能させるためのゲーム装置の制御プログラムを記録した
ことを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項９】
仮想空間内で複数のプレイヤキャラクタが移動可能であり、ゲーム終了時において前記プレイヤキャラクタに付与された総得点を競うゲームを実行するゲーム装置において、
前記プレイヤキャラクタ、及び前記プレイヤキャラクタに付与された総得点を画面表示させるゲーム進行手段と、
前記プレイヤキャラクタに対応する操作信号に基づき、該プレイヤキャラクタを前記仮想空間内で移動させる移動手段と、
前記仮想空間内の所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタの数を算出するオブジェクト数判定手段と、
前記所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタに対して、算出された前記プレイヤキャラクタの数に応じて得点を付与する付与手段とを備える
ことを特徴とするゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特にゲーム装置の制御プログラム、記憶媒体、及びゲーム装置に関する。
【背景技術】
【０００２】
従来より、コンシューマ用ビデオゲーム装置や業務用ビデオゲーム装置（以下、ゲーム装置という。）において、複数のプレイヤキャラクタ同士が対戦する対戦ゲーム(対戦などの競争を行うゲーム。以下、同じ。）が存在する。
このような、対戦ゲームにおいては、自ユーザの指示により制御されるプレイヤキャラクタと、他ユーザの指示により制御されるプレイヤキャラクタと、場合によってはビデオゲーム装置の制御手段（ＣＰＵ、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置）が制御するプレイヤキャラクタが得点を競い合い、ゲームを行うことができる。最終的には、取得した総合得点（スコア）等により、各プレイヤキャラクタの順位を決定する。
【０００３】
このような、従来の複数のプレイヤキャラクタで対戦する対戦ゲームを行うゲーム装置として、特許文献１を参照すると、コースの各所にプレイヤキャラクタに対して得点を付与する得点エリアが設定されており、その得点エリアにプレイヤキャラクタが到達することで得点を付与した結果、その得点エリアが消滅するというアクションゲームが存在する(以下、従来技術１とする。）。
従来技術１の対戦ゲームでは、具体的に、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）の機能を利用して、複数プレイヤそれぞれがゲーム装置の位置検出情報を利用しながらゲームを行う。
従来技術１によれば、対戦ゲームの戦闘エリアには、得点ポイントを含む得点エリアが設定されており（［００３９］を参照）、ゲーム装置を持ったプレイヤが得点エリアを通過すると、得点処理が行われる（［００４８］を参照）。
また、得点エリアを２番目に通過すると、得点処理を行わなくしたり、異なる得点処理を行ったりする（［００７１］、［００７３］を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２１６３６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のゲームでは、複数のプレイヤキャラクタは常に対抗（競争）しており、ゲームの内容として、互いに協力することはなかった。
このため、競い合うだけのゲームとなり、対戦に対する駆け引き等があまり必要なく、単純なゲームの内容となっていた。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、上述の課題を解消することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のゲーム装置の制御プログラムは、仮想空間内で複数のプレイヤキャラクタが移動可能であり、ゲーム終了時において前記プレイヤキャラクタに付与された総得点を競うゲームをコンピュータに実行させるゲームプログラムにおいて、前記コンピュータを、前記プレイヤキャラクタ、及び前記プレイヤキャラクタに付与された総得点を画面表示させるゲーム進行手段、前記プレイヤキャラクタに対応する操作信号に基づき、該プレイヤキャラクタを前記仮想空間内で移動させる移動手段、前記仮想空間内の所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタの数を算出するオブジェクト数判定手段、前記所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタに対して、算出された前記プレイヤキャラクタの数に応じて得点を付与する付与手段として機能させることを特徴とする。
本発明のゲーム装置の制御プログラムは、前記コンピュータを、前記プレイヤキャラクタが前記所定エリア又は所定オブジェクトに属した順番を算出する順番判定手段、前記順番が早いプレイヤキャラクタに対応する前記操作信号によって、該プレイヤキャラクタが前記所定エリア又は所定オブジェクトから離脱した場合、前記順番が遅いプレイヤキャラクタを、当該所定エリア又は所定オブジェクトから離脱させる強制離脱手段として機能させることを特徴とする。
本発明のゲーム装置の制御プログラムは、前記付与手段は、前記所定エリア又は所定オブジェクトに属した前記プレイヤキャラクタの数が多いほど、多くの得点を該プレイヤキャラクタそれぞれに付与することを特徴とする。
本発明のゲーム装置の制御プログラムは、前記付与手段は、設定された回数又は時間に従って、前記プレイヤキャラクタに得点を付与することを特徴とする。
本発明のゲーム装置の制御プログラムは、前記コンピュータを、前記所定エリア又は所定オブジェクトに属した順番が最も遅いプレイヤキャラクタに対応する操作信号に基づき、当該所定エリア又は所定オブジェクトに属する他のプレイヤキャラクタが当該所定エリアから離脱する方向を決定させる移動方向決定手段として機能させることを特徴とする。
本発明のゲーム装置の制御プログラムは、前記コンピュータを、前記所定エリア又は所定オブジェクトに属した前記プレイヤキャラクタの数を基に、回転の最高速度又は最低速度を調整し、回転速度加速の指示を検知した際の加速量を制限する回転制御手段として機能させ、前記強制離脱手段は、前記所定エリア又は所定オブジェクトに属した前記プレイヤキャラクタの数に従って、飛び出す距離を小さくするように制御することを特徴とする。
本発明のゲーム装置の制御プログラムは、前記付与手段は、前記所定エリア又は所定オブジェクトに属した前記プレイヤキャラクタが一回転することで、該プレイヤキャラクタに得点を付与することを特徴とする。
本発明のコンピュータ読み取り可能な記憶媒体は、仮想空間内で複数のプレイヤキャラクタが移動可能であり、ゲーム終了時において前記プレイヤキャラクタに付与された総得点を競うゲームをコンピュータに実行させるゲームプログラムを記録したコンピュータ読み取り可能な記録媒体において、前記コンピュータを、前記プレイヤキャラクタ、及び前記プレイヤキャラクタに付与された総得点を画面表示させるゲーム進行手段、前記プレイヤキャラクタに対応する操作信号に基づき、該プレイヤキャラクタを前記仮想空間内で移動させる移動手段、前記仮想空間内の所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタの数を算出するオブジェクト数判定手段、前記所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタに対して、算出された前記プレイヤキャラクタの数に応じて得点を付与する付与手段として機能させるためのゲーム装置の制御プログラムを記録したことを特徴とする。
本発明のゲーム装置は、仮想空間内で複数のプレイヤキャラクタが移動可能であり、ゲーム終了時において前記プレイヤキャラクタに付与された総得点を競うゲームを実行するゲーム装置において、前記プレイヤキャラクタ、及び前記プレイヤキャラクタに付与された総得点を画面表示させるゲーム進行手段と、前記プレイヤキャラクタに対応する操作信号に基づき、該プレイヤキャラクタを前記仮想空間内で移動させる移動手段と、前記仮想空間内の所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタの数を算出するオブジェクト数判定手段と、前記所定エリア又は所定オブジェクトに属する前記プレイヤキャラクタに対して、算出された前記プレイヤキャラクタの数に応じて得点を付与する付与手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、プレイヤキャラクタの数に応じて得点を付与することで、複数のプレイヤキャラクタが競争と協力を繰り返すゲーム性の高いゲームを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係るゲーム装置１０の制御ブロック図である。
【図２Ａ】本発明の実施の形態に係る主記憶部１１０のプレイヤキャラクタデータ２１０と、バー回転データ２３０の構成を示す概念図である。
【図２Ｂ】本発明の実施の形態に係る補助記憶部１２０の協力ゲーム部３００の構成を示す概念図である。
【図３Ａ】本発明の実施の形態に係る協力ゲームの概念を示す画面例である。
【図３Ｂ】本発明の実施の形態に係るバー５００とプレイヤキャラクタ６１０の構成を示す概念図である。
【図４】本発明の実施の形態に係るゲーム装置１０の協力ゲーム処理のフローチャートである。
【図５】本発明の実施の形態に係るゲーム装置１０の協力ゲーム処理に係るコリジョン／回転処理のフローチャートである。
【図６】本発明の実施の形態に係るゲーム装置１０の協力ゲーム処理に係るＣＰＵ思考処理の難易度に係る概念図である。
【図７Ａ】本発明の実施の形態に係る通常コリジョン処理の概念図である。
【図７Ｂ】本発明の実施の形態に係るキャッチコリジョン処理の概念図である。
【図８】本発明の実施の形態に係るバー付与得点状態変更処理の描画の概念図である。
【図９】本発明の実施の形態に係る離脱処理の概念図である。
【図１０】本発明の実施の形態に係る得点付与処理のフローチャートである。
【図１１】本発明の実施の形態に係る連結数基準得点付与処理の概念図である。
【図１２】本発明の他の実施の形態に係る得点付与処理のフローチャートである。
【図１３】本発明の他の実施の形態に係る順番基準得点付与処理の概念図である。
【発明を実施するための形態】
【００１０】
＜実施の形態＞
〔ゲーム装置１０の制御構成〕
まず、図１を参照して、ゲーム装置１０の制御構成について説明する。
ゲーム装置１０は、携帯型や据え置き型のコンシューマ用ビデオゲーム装置、専用の店舗に設置される業務用ビデオゲーム装置、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、携帯電話、スマートフォン、携帯端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔ）等である。また、ゲーム装置１０は、本実施形態に係る協力ゲームを実行するためのハードウェア資源である。
ゲーム装置１０は、ＣＰＵ１００（制御手段、ゲーム実行手段）と、主記憶部１１０と、補助記憶部１２０と、ＢＩＯＳ１３０と、ペリフェラルＩ／Ｆ１４０（周辺機器接続インターフェイス手段）と、バスアービタ１５０と、グラフィックプロセッサ１６０（描画手段）と、グラフィックメモリ１７０と、ビデオＢＩＯＳ１７５と、オーディオプロセッサ１８０と、オーディオメモリ１９０と、通信Ｉ／Ｆ２００とを含んで構成される。
【００１１】
ＣＰＵ１００は、ＣＩＳＣ（Ｃｏｍｐｌｅｘ Ｉｎｓｔｒｕｃｔｉｏｎ Ｓｅｔ Ｃｏｍｐｕｔｅｒ、複合命令セットコンピュータ）方式やＲＩＳＣ（Ｒｅｄｕｃｅｄ Ｉｎｓｔｒｕｃｔｉｏｎ Ｓｅｔ Ｃｏｍｐｕｔｅｒ、縮小命令セットコンピュータ）方式のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置）、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｐｒｏｃｅｓｓｏｒ、特定用途向けプロセッサー）等である演算・制御能力を備えた制御手段である。
また、ＣＰＵ１００に、後述する、主記憶部１１０やバスアービタ１５０やグラフィックプロセッサ１６０やオーディオプロセッサ１８０等の機能を含ませることも可能である。
【００１２】
主記憶部１１０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の主記憶用に使われる高速な記憶手段を含んで構成される。
主記憶部１１０には、ゲーム装置１０をコンピュータとして機能させるためのＯＳが補助記憶部１２０から読み出されて記憶されている。
また、主記憶部１１０には、ＣＰＵ１００が実行する、各種プログラムやオブジェクト等が補助記憶部１２０からロードされて記憶され、プロセスやスレッド等として実行される。また、主記憶部１１０は、このプロセスに関わるデータについても記憶している。各プロセスやスレッド等は、ＯＳのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を介して、ゲーム装置１０の各機能にアクセス可能である。
また、主記憶部１１０には、プレイヤキャラクタデータ２１０、背景他オブジェクトデータ２２０、バー回転データ２３０が記憶されている。これらのデータは、各ステージのプレイ開始時にＣＰＵ１００が補助記憶部１２０から初期データを読み出して記憶し、プレイの進行に従って変更する。
プレイヤキャラクタデータ２１０は、ユーザが制御の指示をするプレイヤキャラクタに関連するデータを記憶する部位である。このプレイヤキャラクタデータ２１０の詳細は後述する。
背景他オブジェクトデータ２２０は、スクロールする背景、バー５００（図３Ａ）等のポリゴンの集合体である描画用オブジェクトを含むデータである。また、背景他オブジェクトデータ２２０は、各キャラクタが移動するマップの３次元座標データを含んでいる。さらに、背景他オブジェクトデータ２２０には、各キャラクタの移動範囲を限定するための領域データ、後述するゴールの基準範囲データ等を含ませることができる。
バー回転データ２３０は、後述する得点付与に係るバー５００（図３Ａ）に係るデータである。このバー回転データ２３０の詳細についても後述する。
また、これらの他にも、主記憶部１１０には、各プレイ時にユーザが選択したステージのＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、難易度、コントローラの種別等の設定等のデータを記憶する。さらに、最高スコアデータ、他のサーバのアクセスに係るデータ、プレイの結果、リプレイのデータ等を記憶してもよい。これらのデータは、補助記憶部１２０の不揮発性メモリにも記憶できる。
【００１３】
補助記憶部１２０は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等のフラッシュメモリディスク、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、磁気テープ装置、光ディスク装置等の補助記憶手段である。
補助記憶部１２０には、後述するように、アプリやＯＳのプログラムやデータが記憶されている。これらのプログラムやデータは、ＣＰＵ１００やＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）等を用いて、主記憶部１１０に記憶して実行可能である。
また、補助記憶部１２０には、本実施形態に係る協力ゲームに係るプログラムである協力ゲーム部３００と、これに付随するデータとが記憶されている。
協力ゲーム部３００は、ゲームプレイ時に、適宜、主記憶部１１０等に読み出されて、これをＣＰＵ１００が実行する。
協力ゲームに付随するデータとしては、プレイヤキャラクタデータ２１０や背景他オブジェクトデータ２２０に係る初期データ、ステージのマップ等のデータ、デモ画像等のデータ、ＢＧＭ（Ｂａｃｋｇｒｏｕｎｄ  ｍｕｓｉｃ）や効果音のデータ等、ゲームのプレイに必要なデータが記憶されている。
【００１４】
この協力ゲーム部３００を含む補助記憶手段は、例えば、ゲーム装置１０用の光学記憶媒体や磁気記憶媒体やフラッシュメモリディスク等を用い、ゲーム装置１０に挿入等して実行することも可能である。
すなわち、ゲーム装置１０は、補助記憶部１２０を切り換えることで、各種の他のゲーム等も実行するように構成できる。
また逆に、補助記憶部１２０のＨＤＤ等に、光学記憶媒体等から協力ゲーム部３００をインストールして記憶しておくような構成も可能である。
【００１５】
ＢＩＯＳ１３０は、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）が記憶されたＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）やＮＯＲ型フラッシュメモリやＳＲＡＭ等の不揮発性記憶媒体である。
このＢＩＯＳ１３０は、ファームウェア用のプログラムと、ゲーム装置１０の各種機能を実現するためのプログラムと、これらのプログラムの設定を記憶するＳＲＡＭ等の構成部位から構成されている。
具体的には、ＢＩＯＳ１３０は、ゲーム装置１０が起動する際に、ＣＰＵ１００のマイクロコードの設定を行ったり、各部の初期化を行ったり、補助記憶部１２０の例えば最初のパーティションからＯＳが実行されるよう指示したりする。
なお、ＢＩＯＳ１３０のプログラムをＮＯＲ型フラッシュメモリ等に記憶しておき、ＢＩＯＳ１３０の設定を記憶するフラッシュメモリやバッテリバックアップＳＲＡＭ（Ｓｔａｔｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）や、ＥＥＰＲＯＭ等の書き換え可能な不揮発性のメモリ等を別に備えていてもよい。
【００１６】
ペリフェラルＩ／Ｆ１４０は、各種周辺機器（ペリフェラル）に接続するための、ＵＳＢ、ＩＥＥＥ１３９４、シリアル、パラレル、赤外線、無線等のインターフェイスを提供する構成部位である。
ペリフェラルＩ／Ｆ１４０は、主に、携帯型や据え置き型のコンシューマ用ビデオゲーム装置やＰＣ等の場合は、ボタン、ジョイスティック、ジョイパッド、タッチパネル等のコントローラ、振動モーター等のフォースフィードバック部等を接続するためのインターフェイスとなる構成部位である。このペリフェラルＩ／Ｆ１４０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の無線インターフェイスを用いて構成してもよい。
また、ペリフェラルＩ／Ｆ１４０は、専用の店舗に設置される業務用ビデオゲーム装置の場合、照明、ＩＣカードリーダ／ライタ、スイッチ、コイン投入部等のような周辺機器と接続することができる。
他にも、スティック型コントローラ、加速度検出器、振動装置等のフォースフィードバック装置、足踏み／手押し式のスイッチ、ディスプレイモニタの画面上の位置を検出する位置検出器、タッチパッド、タッチパネル、キーボード、マウスやトラックボール等のポインティングデバイス等を、ペリフェラルＩ／Ｆ１４０に接続して用いることができる。
また、ペリフェラルＩ／Ｆ１４０は、電子スイッチ等を制御することもでき、各種周辺機器の電源をオン／オフにして消費電力を抑えたりすることもできる。
【００１７】
バスアービタ１５０は、いわゆる「チップセット」等の、各部を接続するためのバスインターフェイスを提供する集積回路である。このバスアービタ１５０で接続される各部のバスは、スピードが異なっていてもよく、上り及び下りで非対称であってもよい。
また、例えば、ＣＰＵ１００と、主記憶部１１０と、バスアービタ１５０の間は広帯域で高速なバスで接続され、グラフィックプロセッサ１６０とバスアービタ１５０の間も広帯域で高速なバスで接続されるのが好適である。
なお、ＣＰＵ１００にＤＤＲ３／４  ＳＤＲＡＭやＸＤＲ  ＤＲＡＭ等のバスインターフェイスが内蔵されて、主記憶部１１０を直接読み書きするように構成されていてもよい。
【００１８】
グラフィックプロセッサ１６０は、３次元ＣＧを描画する機能をもつグラフィックプロセッサである。グラフィックプロセッサ１６０は、ポリゴンのジオメトリ（座標）の計算を行うジオメトリ部１６２と、ジオメトリ計算が行われたポリゴンをラスタライズ又はレンダリング（描画）するレンダリング部１６４とを含んで構成される。
また、グラフィックプロセッサ１６０は、描画された画像をディスプレイモニタやプロジェクタ等の表示装置に出力するため、ＲＡＭＤＡＣ（ＲＡＭ  Ｄ／Ａコンバーター）やＨＤＭＩインターフェイス等を備えている。グラフィックプロセッサ１６０は、色差（Ｄ端子）出力や、ＨＤＭＩ出力を用いて、家庭用の通常のテレビ（Ｔｅｌｅｖｉｓｉｏｎ）を表示装置として、ゲームの仮想空間の表示を行うことができる。なお、このテレビは、スピーカ等から音声を再生させることもできる。
なお、ディスプレイモニタを、ゲーム装置１０に備えるような構成も可能である。携帯型ゲーム装置や携帯端末や携帯電話等を用いる場合、このディスプレイモニタには液晶、有機ＥＬ、ＬＥＤ、ＬＥＤアレイ、ＭＥＭＳプロジェクタ等を用いることができる。
【００１９】
ジオメトリ部１６２は、ポリゴンの３次元空間での座標（ワールド座標）について、行列の回転や拡大等を行って、アフィン変換等を行い、ポリゴンの２次元空間での座標を求める構成部位である。また、ジオメトリ部１６２は、ポリゴンの分割やスプライン補完等のテッセレーションを行う、「ジオメトリシェーダ」（又はバーテックスシェーダ）を備えることもできる。
レンダリング部１６４は、座標計算されたポリゴンについて、テクスチャと呼ばれる画像データを貼り付け、各種効果を加えてグラフィックメモリ１７０に描画する構成部位である。この各種効果としては、プログラマブル・シェーダ等を用いて、光点・影（シェーディング）計算、明暗の表現、半透明、ぶれ、霧、ぼかし、ＨＤＲ（ハイダイナミックレンジ合成）等の計算を行うことができる。また、レンダリング部１６４が描画するポリゴンの種類としては、点ポリゴン（ポイント）、線ポリゴン（ラインリスト）、三角形や四角形といった面ポリゴン、面ポリゴンの集合体等がある。加えて、レンダリング部１６４がレイトレーシング（Ｒａｙ  Ｔｒａｃｉｎｇ）等を用いて描画を行う際には、円、楕円、球、メタボール等の領域で定義される物体を描画することも可能である。
なお、ジオメトリ部１６２を、ＣＰＵ１００にて処理するように構成することも可能である。この場合は主記憶部１１０に記憶するプログラムをＣＰＵ１００が実行して作成したポリゴンの座標を、グラフィックメモリ１７０に転送等する。レンダリング部１６４は、このポリゴンの座標に従って、ポリゴンを描画する。
さらに、グラフィックプロセッサ１６０には、図示しない物理エンジン部を備えてもよい。物理エンジン部は、ポリゴン同士の接触・衝突演算や、服や波の動きといった物理現象のシミュレートをＣＰＵ１００より高速に実行することができる。
【００２０】
グラフィックメモリ１７０は、グラフィックプロセッサ１６０が描画するために高速に読み書きができる記憶媒体である。
たとえば、このグラフィックメモリとして、ＤＤＲやＧＤＤＲ（Ｇｒａｐｈｉｃｓ  Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）等の広帯域なメモリを高レベルのメモリインターリーブ等を用いて接続することができる。
また、システムＬＳＩのようにグラフィックメモリをグラフィックプロセッサ１６０に内蔵する構成も可能である。
また、グラフィックプロセッサ１６０が描画している間に、ディスプレイモニタに表示するためのデュアルポート構成を用いることも可能である。
なお、各オブジェクト又は各オブジェクトの一部のデータを主記憶部１１０に備え、直接、グラフィックメモリ１７０に転送し、描画するような構成も可能である。
【００２１】
ビデオＢＩＯＳ１７５は、グラフィックプロセッサ１６０用のＢＩＯＳが記憶されたフラッシュメモリ等である。
ＣＰＵ１００が、パッチによりこのビデオＢＩＯＳ１７５を更新することで、グラフィックプロセッサ１６０の機能や表示品質を向上させたり、表示上の不都合（バグ）を直したりすることができる。
【００２２】
オーディオプロセッサ１８０は、音楽や音声や効果音を出力するためのＰＣＭ（Ｗａｖｅ）音源等を備えたＤＳＰ（デジタル・シグナル・プロセッサ）等である。オーディオプロセッサ１８０は、物理演算音源、ＦＭ音源等の計算を行い、残響や反射等の各種音声効果を計算することもできる。
オーディオプロセッサ１８０の出力は、Ｄ／Ａ（デジタル・アナログ）変換され、デジタルアンプ等に接続されて、スピーカ等で音楽や音声や効果音として再生される。また、オーディオプロセッサ１８０は、マイクから入力した音声の音声認識等にも対応することができる。なお、上述のＨＤＭＩインターフェイスを用いて、音声出力信号をテレビ等に出力したり、別途Ｌｉｎｅ  ｏｕｔ端子や専用端子から出力したりする構成も可能である。
【００２３】
オーディオメモリ１９０は、音楽や音声や効果音のためのデジタル変換されたデータを記憶している記憶媒体である。
オーディオプロセッサ１８０とオーディオメモリ１９０とを一体的に構成することも当然可能である。
【００２４】
通信Ｉ／Ｆ２００は、ネットワークに接続するための（有線／無線ＬＡＮ、電話線、携帯電話網、ＰＨＳ網、電灯線ネットワーク、ＩＥＥＥ１３９４等）インターフェイスである。
通信Ｉ／Ｆ２００からネットワークを介して、ゲーム装置１０は、アプリやＯＳやパッチ等を図示しないサーバからダウンロードすることができる。また、逆に、通信Ｉ／Ｆ２００を用いて、他のゲーム装置１０のユーザと、複数のプレイヤによる協力ゲームを行うことができる。
また、複数のゲーム装置１０が通信可能に接続されることで、サーバ等を介して、ゲームのスコア（点数、総得点、得点等）の集計や、他の遊戯施設に配置されたゲーム装置との間で対戦ゲームを行ったり、ランキングを集計したりすることが可能である。
【００２５】
〔プレイヤキャラクタデータ２１０とバー回転データ２３０の構成〕
次に、図２Ａを参照して、プレイヤキャラクタデータ２１０とバー回転データ２３０の詳細について説明する。
プレイヤキャラクタデータ２１０は、各プレイヤキャラクタのプレイ時の各種属性のデータを記憶する部位である。図２Ａを参照すると、プレイヤキャラクタデータ２１０は、プレイヤ（のＩＤ）、移動指示、キャラクタ（の種類）、スコア、好意度、座標、属するバー、順番等の属性を記憶することができる。
「プレイヤ」の属性は、プレイヤのＩＤ等を記憶する部位である。このプレイヤのＩＤとともにプレイヤの名称等を記憶することもできる。
「移動指示」の属性は、移動やバーの把持や離脱等の各種ゲームに係る指示を行う対象を記憶する。具体的には、ペリフェラルＩ／Ｆ１４０のコントローラのＩＤに対応したユーザ１〜ユーザｎの操作信号により指示を行うか、ＣＰＵ１００が移動指示の思考処理による指示を行うかについての選択を記憶する。
「キャラクタ」の属性は、各プレイヤキャラクタについて、描画する際のキャラクタをどの種類のオブジェクトにするかの選択を記憶する。このキャラクタは、大きさや移動差速度や思考パターンやキャラクタ同士の好意度といった値について、それぞれ異なった値を備えることができる。
「スコア」の属性は、各プレイヤキャラクタのプレイ時の総得点となるスコアを記憶する。このスコアは、バー５００（図３Ａ）の「残回数」がある場合、回転する度に連結したプレイヤキャラクタの数に応じて付与される。本実施形態の協力ゲーム処理において、各プレイヤキャラクタは、ゴールに到達した際の最終的なスコアを協力しつつ競う。また、「スコア」の属性は、ゲーム開始から複数ステージのプレイに係る、各プレイヤキャラクタに付与されたスコアの合計も記憶することができる。
「好意度」の属性は、各プレイヤキャラクタ同士の「相性」となる好意度のテーブルである。この好意度のテーブルは、例えば、同時にプレイする各プレイヤキャラクタ分の好意度の値を記憶することができる。この好意度の値は、例えば、好意度が高ければプラス値を記憶し、好意度が低ければマイナス値を記憶する。好意度のテーブルには、例えば、プレイヤキャラクタの種類別に初期値が決まっており、更に、プレイの進行により変化する。また、ＣＰＵ１００は、好意度の値に従ってプレイヤキャラクタの動作を制御する。
「座標」の属性は、例えばステージのマップ上の座標や画面上の座標を、例えば２次元座標を用いて記憶することができる。この「座標」は、バー回転データ２３０の「座標」の属性と同様の座標系の値を記憶することができる。また、各キャラクタオブジェクトを描画する際の３次元座標、加速度、姿勢等は、この「座標」属性に記憶することができる。さらに、この「座標」属性は、各キャラクタオブジェクトが「属する」状態になっていた場合の回転角度や回転速度等も記憶することができる。
「属するバー」の属性は、「属する」状態になったバーの座標やバー＃（バー番号）の値等を記憶する。また、「属するバー」の属性には、当該プレイヤキャラクタがバー５００に属しておらず、マップ上を飛んでいる状態の場合には、「なし」の値を記憶することができる。
「順番」の属性は、当該プレイヤキャラクタがバー５００に「属する」状態になった場合の連結の順番を記憶する。この連結の順番については下記で述べる。ここで、当該プレイヤキャラクタがバー５００に属していない場合には、例えば、「０」の値を記憶することができる。
【００２６】
バー回転データ２３０は、バー５００（図３Ａ）の各種属性のデータを記憶する部位である。図２Ａを参照すると、バー回転データ２３０は、バーの番号やＩＤ（バー＃）、残回数、座標、バーの種類等の属性について各値を記憶する。このうち、バーの番号やＩＤとしては、ステージ上で出現する順番等に沿った番号のデータを並べて記憶することができる。
「バー＃」の属性は、バー５００（図３Ａ）の番号やＩＤ等を記憶する。このバー５００の番号やＩＤとしては、ステージ毎にスクロールの登場順に記憶することができる。
「残回数」の属性は、後述するバー付与得点状態変更処理（図５、図８）で用いるための値を記憶する。つまり、「残回数」の属性は、各バーで回転した場合に得点を付与できる残回数の値を記憶している。この残回数の値として、−１等の値を指定することで、何回でも得点を付与できるような属性を与えることもできる。また、残回数の値として、回転の回数ではなく、画面上に出現してからの時間やステージの経過時間を「残回数」に設定することもできる。
「座標」の属性は、例えば、スクロールするステージを２次元座標で捉えた仮想座標系を基にした「マップ」において、各バー５００の座標を記憶する。なお、この「座標」については、ステージの３次元座標を用いて記憶したり、各ステージのマップ上の座標と画面上の３次元座標との対応関係についても記憶したりすることができる。
「種類」の属性は、通常のバー、平行／回転移動するバー、把持するとプレイヤキャラクタがダメージを受けたり痺れたりして所定時間動けなくなるバー、一見把持できそうで把持できないバー、残回数が無かったり、通常のバーよりも残回数が多かったりする「スペシャル」のバー、把持すると高速で回転するバー、把持すると他プレイヤキャラクタを連結させないことによって「無敵状態」になるバー等の種類を記憶する。
【００２７】
〔協力ゲーム部３００の構成〕
次に、図２Ｂを参照して、補助記憶部１２０に記憶された協力ゲーム部３００の詳細について説明する。
協力ゲーム部３００は、主にゲーム進行部３１０（ゲーム進行手段）、オブジェクト移動部３２０（オブジェクト移動手段）、オブジェクト数判定部３３０（オブジェクト数判定手段）、得点付与部３４０（得点付与手段）、順番判定部３５０（順番判定手段）、及び強制離脱部３６０（強制離脱手段）、回転制御部３７０（回転制御手段）、キャラクタ属性データ部３８０、を含んで構成される。
ＣＰＵ１００は、協力ゲーム部３００の少なくとも一部を主記憶部１１０に読み出して実行することで、ハードウェア資源を用いて本発明の実施の形態に係る各処理を実現することができる。
【００２８】
ゲーム進行部３１０は、後述する協力ゲームのメインプログラムとなる部位である。具体的には、ゲーム進行部３１０は、協力ゲームのプレイ時の仮想空間やデモ画面等を描画させ、各種処理を行う。
また、ゲーム進行部３１０は、協力ゲームのプレイ時に、複数のプレイヤキャラクタを仮想空間内に描画するように指示し、ゲームの進行に従って他のオブジェクトや背景等を描画し、スコアを表示するよう、グラフィックプロセッサ１６０に指示する。
また、ゲーム進行部３１０は、オーディオプロセッサ１８０を用いてＢＧＭを演奏させ、効果音を出力させる。また、ゲーム進行部３１０は、各プレイヤキャラクタの総得点を画面表示させる。
また、ゲーム進行部３１０は、α−β枝刈りやモンテカルロ法等を行う人工知能プログラムを備えており、ＣＰＵ１００により操作の指示を行うプレイヤキャラクタについて、ターゲットとなるオブジェクトの設定、移動、把持、回転等の動作設定を行う。
【００２９】
オブジェクト移動部３２０は、ペリフェラルＩ／Ｆ１４０から入力された各ユーザのプレイヤキャラクタに対応する操作信号に基づき、当該プレイヤキャラクタを仮想空間内で移動させる部位である。
また、オブジェクト移動部３２０は、各プレイヤキャラクタの仮想空間内の座標を変更させることで、各プレイヤキャラクタを移動させる。この移動の際には、仮想空間の視点の移動等である「画面スクロール」を考慮した移動を行うことができる。
また、オブジェクト移動部３２０は、この各プレイヤキャラクタの移動の際に、他のプレイヤキャラクタやバー等のオブジェクトとの２次元や３次元での座標の差を、距離等として算出し、「つかみ判定」を行う。具体的には、当該距離等が近かったり、オブジェクト同士の距離の絶対値が所定距離未満だったりした場合には「接触」と判断する。
また、オブジェクト移動部３２０は、各プレイヤキャラクタの特性に基づき、当該プレイヤキャラクタオブジェクトを移動させ、後述するバー５００（図３Ａ）のオブジェクトにプレイヤキャラクタのオブジェクトが接触した場合に、後述する「回転」の処理を行う。この「回転」の処理中は、当該プレイヤキャラクタを接触したバー５００を把持（キャッチ）した状態になるような処理を行う。つまり、オブジェクト移動部３２０は、この把持した状態においては、バー５００と当該プレイヤキャラクタとを、データとして結びつけ、回転等の所定の処理を行える（以下、「属する」という。）ように設定する。
また、オブジェクト移動部３２０は、バー５００に「属する」状態になっていないプレイヤキャラクタ同士が接触した場合には、「通常コリジョン」によりプレイヤキャラクタ同士を反発させる。また、オブジェクト移動部３２０は、当該プレイヤキャラクタがバー５００に「属する」状態になって回転している場合、接触した他のプレイヤキャラクタを連結させ回転させる「キャッチコリジョン」の処理を行うことができる。これらの処理については後述する。
なお、オブジェクト移動部３２０は、この「接触」の検知としては、各オブジェクトの座標を単純に計算するのではなく、グラフィックプロセッサ１６０の物理エンジンを用いてポリゴン同士の座標の重なり等により検知することもできる。
【００３０】
オブジェクト数判定部３３０は、所定エリア又は所定オブジェクトに属するプレイヤキャラクタの数と、連結の順番とを判定する部位である。
オブジェクト数判定部３３０は、例えば、バー５００の周囲において、所定座標内や所定のポリゴン等で示される区画を「所定エリア」として、当該所定エリア内にいるプレイヤキャラクタの数を算出することができる。また、オブジェクト数判定部３３０は、１つのバー５００に複数のプレイヤキャラクタが「属する」状態となっている場合、この数を算出することもできる。
また、オブジェクト数判定部３３０は、バー５００にプレイヤキャラクタが「属する」状態になった順番を基に、連結の順番を算出することができる。なお、この場合、オブジェクト数判定部３３０は、全てのプレイヤキャラクタが当該バー５００から離脱したら、連結の順番は０となるように設定できる。
さらに、オブジェクト数判定部３３０は、バー５００の中心からの距離を用いて順位付けを行い、所定エリア内の「属する」状態になっているプレイヤキャラクタの連結の順番を算出することもできる。さらに、オブジェクト数判定部３３０は、より単純には、バー５００に「属する」際の並びのデータから、連結の順番を算出することもできる。
このように連結の順番を用いて、後述する得点の付与を変更したり強制離脱させたりといった処理を行うことで、ユーザのスコア取得のための選択が豊富になり、対抗（競争）と協力を使い分けてゲーム性を高めることができる。
【００３１】
得点付与部３４０は、所定エリア又は所定オブジェクトに属するプレイヤキャラクタに対して、得点を付与する部位である。
得点付与部３４０は、具体的には、オブジェクト数判定部３３０の算出したプレイヤキャラクタの数に応じて、得点を付与する。つまり、１つのバー５００に「属する」状態になったプレイヤキャラクタの数が多いほど、回転時に、高い得点を各プレイヤキャラクタに付与する。
また、得点付与部３４０は、後述するように、プレイヤキャラクタが回転した際に、プレイヤキャラクタに得点を付与できる回数又は時間を制限することができる。この回数又は時間の制限として、例えば、得点付与部３４０は、バー回転データ２３０から、「属する」状態になったバー５００に対応する「残回数」の属性を、回転の回数に従って減少させることができる。つまり、例えば、得点付与部３４０は、当該バー５００の「残回数」が０以下となった場合には、プレイヤキャラクタが回転しても、得点を付与しないように構成することができる。同様に、得点付与部３４０は、時間の制限としては、仮想空間の画面内に表示されてから所定時間が過ぎると、当該バー５００においてプレイヤキャラクタが回転しても得点を付与しないように構成することができる。これにより、ゲームに緊張感を与えて、どのバー５００を選んで移動するかについて戦略性を高めることができる。
なお、得点付与部３４０は、後述する他の実施の形態のように、プレイヤキャラクタの連結の順番に従って、付与する得点を変化させるように構成することもできる。
【００３２】
順番判定部３５０は、プレイヤキャラクタが所定エリア又は所定オブジェクトに属した順番を算出する部位である。
ここで、本発明の実施の形態に係る協力ゲームにおいては、複数のプレイヤキャラクタが１つのバー５００を中心に、連結して（連なって）回転することができる。
順番判定部３５０は、複数のプレイヤキャラクタが「属する」状態になった場合には、そのバー５００の中心からの順位が何番目であるかを示す、連結の順位の値等（以下、「連結の順番」という。）を設定する。
順番判定部３５０は、この順番としては、最初に「属する」状態になったプレイヤキャラクタを１番等の最も小さい順番にする。この上で、順番判定部３５０は、後述するキャッチコリジョンにより更に「属する」状態になったプレイヤキャラクタの順番を順次増加させるといった処理を行う。
また、順番判定部３５０は、バー５００に「属する」状態になったプレイヤキャラクタが複数いる場合、各プレイヤキャラクタの連結の順番を、プレイヤキャラクタデータ２１０を読み出して算出することもできる。
【００３３】
強制離脱部３６０は、順番が小さいプレイヤキャラクタが所定エリア又は所定オブジェクトから離脱した場合、順番が大きいプレイヤキャラクタを当該所定エリア又は所定オブジェクトから離脱させる部位である。
強制離脱部３６０は、プレイヤキャラクタに対応するコントローラ等からのバー５００から離脱する操作信号を受信した場合、このプレイヤキャラクタの回転を途中で停止させ、離脱させる。この際に、同じバー５００に、他のプレイヤキャラクタが「属する」状態になって回転している場合、離脱した当該プレイヤキャラクタよりも連結の順番が大きいプレイヤキャラクタは、同時に強制的に離脱させることができる。これにより、他のキャラクタが連結し回転することで高い得点を得ることを妨害する／許容するかについて、連結の順番が小さい、つまり早く「属する」状態になったキャラクタの操作を優先させる。これにより、ゲーム性を高めることができる。
また、強制離脱部３６０は、複数のプレイヤキャラクタが連結しているほど、離脱時の飛び出し速度又は距離を小さくさせるよう制御する。強制離脱部３６０は、キャラクタ属性データの回転加速比率及びジャンプ力比率を用いて、離脱時の飛び出し速度又は距離を算出する。
【００３４】
回転制御部３７０は、連結して回転する際の各プレイヤキャラクタの描画等を制御する部位である。
つまり、回転制御部３７０は、回転の速度、半径、強制離脱時の飛び出し速度等がゲームに適さない値にならないよう、調整を行う部位である。
ここで、本実施形態に係る協力ゲームにおいては、プレイヤキャラクタを描画する際に、画面上で識別性を高め見栄えを良くするよう、大きめに描画する。このため、連なって回転させる際、連結の順番に従って比例するように速度や回転の半径等を大きくすると、画面上に収まりきらなくなったり、連結した順番が遅く、外側で回転するプレイヤキャラクタにスピードが付きすぎてしまったりするという問題があった。
このため、回転制御部３７０は、複数のプレイヤキャラクタが連結しているほど、回転の最高速度、最低速度が小さくなるよう調整する。
また、回転制御部３７０は、複数のプレイヤキャラクタが連結しているほど、各プレイヤキャラクタが一度の回転速度の加速操作による加速量を制限する。この加速操作は、コントローラの加速度センサやアナログスティック等の値を基に、回転のスピード（角速度）を変化させるものである。回転制御部３７０は、連なって回転しているプレイヤキャラクタの加速量の合計により回転速度を算出するように構成する。このため、回転制御部３７０は、キャラクタ属性データ３８０の回転加速比率を用いて、回転の加速量の最大値を制限する。
これにより、複数のプレイヤキャラクタが連結しても、見栄えよく連なって回転させることができる。また、複数のプレイヤキャラクタが連結している場合、各プレイヤキャラクタが協力して加速操作することによって、回転速度を急加速させることができる。よって、プレイヤキャラクタが連なって回転するのを見たいというユーザの意欲を惹起させたり、協力操作をさせたりすることで、ゲーム性を高めることができる。
また、回転速度や飛び出し速度を制限することで、画面外に飛び出すことが少なくなり、ゲーム性を高めることができる。
【００３５】
キャラクタ属性データ部３８０は、各プレイヤキャラクタの種別によるパラメータ、全プレイヤキャラクタに共通するパラメータ、プレイヤキャラクタのオブジェクトの大きさ、ＣＰＵの思考処理データ等の各種データを変数等にて記憶している。
キャラクタ属性データ部３８０は、各プレイヤキャラクタの種類別のパラメータとしては、回転操作のタイミングに係るテクニック値、加速度に係るスピード値、最大のジャンプ力に係るパワー値、回転速度加速操作による加速量の最大値、他のプレイヤキャラクタの種別に対する好意度の初期値、体重、大きさ等のテーブル等を記憶する。
また、キャラクタ属性データ部３８０は、全プレイヤキャラクタに共通するパラメータとして、キャッチする座標の範囲、連結から離脱した際に、バー５００からの連結の番号に応じて付加するジャンプ力の倍率である「ジャンプ力倍率」を記憶する。さらに、連結から離脱した際のジャンプ力のパワー値を、連結の番号に応じて変化させる「ジャンプ力比率」も記憶する。加えて、回転速度加速操作による加速量の最大値を制限する「回転加速比率」等も記憶する。
キャラクタ属性データ部３８０の各データは、ユーザによるプレイヤキャラクタ６１０〜６４０の設定後、ゲームのプレイ開始時にＣＰＵ１００により補助記憶部１２０から読み出され、主記憶部１１０のプレイヤキャラクタデータ２１０等の部位に記憶される。
【００３６】
〔ゲーム装置１０の協力ゲーム処理〕
ここで、図３Ａ〜図１１を参照して、本発明の実施の形態に係るゲーム装置１０による協力ゲーム処理について詳しく説明する。
本発明の実施の形態に係るゲーム装置１０は、複数のプレイヤキャラクタでプレイするアクションゲームを実行する。特に、ゲーム装置１０は、複数のプレイヤキャラクタが獲得得点を競うゲームにおいて、複数のプレイヤキャラクタそれぞれが連なり合うことでプレイヤのプレイ操作と獲得得点に影響を与える協力ゲームを実行することができる。
このような本実施形態の協力ゲームでは、複数のプレイヤキャラクタ同士の関係性がゲームに大きな影響を与えるため、興趣性を向上させることができる。
【００３７】
ここで、図３Ａと図３Ｂとを参照して、本発明の実施の形態に係る協力ゲームの例の１つである、回転ジャンプゲームの概要について説明する。
図３Ａの画面例４００は、本実施形態に係る回転ジャンプゲームの仮想空間の概念図である。この回転ジャンプゲームは、各プレイヤキャラクタが、画面上に配置されたバー５００を回転して飛びつつ、ゴールを目指すという競争ゲームである。プレイ時に、ＣＰＵ１００は、協力ゲーム部３００を用いて、プレイヤキャラクタ同士で競い合い又は協力し合う各種の処理を行う。
より具体的に説明すると、本実施形態の回転ジャンプゲームでは、１つのステージが、例えば横方向に所定距離の長さを備えている。このステージは、プレイの進行に従い、所定速度でスクロールして動いていく。画面例４００においては、画面のスクロールの方向は左から右方向である。このスクロールは、背景他オブジェクトデータ２２０のステージに係るデータをグラフィックプロセッサ１６０にてレンダリングする際に、２．５次元の視点位置となるカメラを、ステージの左から右に移動させることで実現できる。このステージ上のスクロールされた位置は、例えば、画面上部に「スタート」から「ゴール」までの位置として表示することができる。カメラの距離は先頭と最後尾との距離に応じて、変動させることが好適である。また、カメラのアングルは、斜め後ろに設定するのが好適である。
各ステージには、バー５００が所定の間隔やパターンで配置されている。バー５００について、スクロールに対応して、主に右から左に動いてゆくことになる。
なお、スクロールとは別に、所定パターンで所定方向に平行移動したり回転したりする種類のバー５００を用いることも好適である。
また、ステージの背景をスクロールさせるのではなく、配置されたバー５００のみがスクロールするような描画を行うこともできる。また、所定速度で強制的にスクロールさせるのではなく、先頭のプレイヤキャラクタが画面例４００の右端から１５％〜３０％程度の位置にきたら、先頭の位置に合わせてスクロールするような構成も可能である。
また、各ステージには、バー５００以外にも、落下時の加速度とは反対の加速度を与える「トランポリン」や、プレイヤキャラクタを攻撃して落下させるような「敵キャラクタ」、その位置座標を通過すると得点が得られる「コイン」、把持すると当該プレイヤキャラクタを自由に移動させられる「風船」、無敵化／回転中のプレイヤキャラクタの自動追尾をしたり強制離脱させたりする／バー５００を引き寄せたりの残回数を回復させたりするといった特殊効果のある「アイテム」等を配置することもできる。
【００３８】
ここで、画面例４００では、４体のプレイヤキャラクタ６１０〜６４０が存在する例を示している。以下の説明においても、このプレイヤキャラクタ６１０〜６４０にて、ゲームのプレイを行う例について説明する。各プレイヤキャラクタは、ペリフェラルＩ／Ｆ１４０に接続されたコントローラのボタンや各種センサによる動作の指示の信号（入力情報、入力信号、操作信号）の検知、又はＣＰＵ１００が実行するゲーム進行部３１０の思考処理により動作が指示される。
プレイヤキャラクタ６１０〜６４０には、重力に対応する画面の下方向の加速度がかかっており、何も操作の指示をしないと下方に落下する。このため、プレイヤキャラクタ６１０〜６４０は、バー５００を把持して回転し、その勢いで上方に飛び出すといった動作を行う。ユーザは、コントローラにより、回転からの離脱時の飛び出し方向を程度変化させ、又落下時に落下方向をある程度変化させられる。なお、画面のスクロールに従って、画面外に出た場合にも、落下と同様の扱いとなる。この場合は、下方又は上方から、プレイヤキャラクタ６１０〜６４０が再登場するが、時間的なロスとなる。
プレイヤキャラクタ６１０〜６４０がバー５００を把持して回転する度に、ＣＰＵ１００は、後述するような所定の条件に従って得点を付与するかしないかを決定する。また、例えば、画面例４００のプレイヤキャラクタ６３０が回転している際に、プレイヤキャラクタ６４０が接触すると、「キャッチコリジョン」となり、連結して回転する。この連結の回転により、通常とは異なる得点を得ることができる。
画面例４００では、このようにして得た総得点であるスコアを、例えば、プレイヤキャラクタ毎に四隅に表示する。
所定時間が経過し、ステージの端までスクロールすると、画面は一旦停止して、所定時間以内に各プレイヤキャラクタが図示しない「ゴール」に着地して、１ステージが終了となる。この際のスコアにより、プレイヤキャラクタ６１０〜６４０の勝敗が決定される。
【００３９】
図３Ｂは、バー５００と、プレイヤキャラクタとの関係を示す概念図である。
各バー５００は、仮想空間内の空中に配置する棒のギミックである。各プレイヤキャラクタ６１０〜６４０は、このバー５００を把持して回転し、離脱時にジャンプする。
バー５００は、バー位置指示オブジェクト５１０の両端に、バーラインオブジェクト５２０が接続されているように描画することができる。ここで、バーラインオブジェクト５２０は、プレイヤキャラクタが連なって回転しているときに透過する可能性があるため、半透明の力場のような見た目に描画することが好適である。
図３Ｂの例では、プレイヤキャラクタ６１０は、このバーラインオブジェクト５２０に接触して、コントローラのボタンの押下等の指示により、把持することができる。プレイヤキャラクタ６１０は、把持が完了すると、当該バー５００に「属する」状態になり、回転することができる。なお、プレイヤキャラクタ６１０が、バーラインオブジェクト５２０に必ずしも重ならなくても、所定距離以内又は所定エリア内にいる場合には「接触」して把持できるように構成することで、より操作性を高めることができる。
以下で、この協力ゲーム処理について、図４のフローチャートを参照して、ステップ毎に詳細に説明する。
【００４０】
（ステップＳ１０１）
まず、ＣＰＵ１００は、協力ゲーム部３００のゲーム進行部３１０を用いて、初期化処理を行う。
具体的には、ＣＰＵ１００は、協力ゲーム部３００の記憶された記憶媒体（図示せず）を光学ドライブやフラッシュメモリディスクの挿入口等に投入されて、補助記憶部１２０が構成された際に、これを読み出して実行する。
この際に、まず、ＣＰＵ１００は、初期化画面を表示し、協力ゲームに係るムービー（動画像）等を再生する。この上で、ユーザがゲームのプレイの「開始」をペリフェラルＩ／Ｆ１４０に接続されたコントローラ等で指示したことを検知して、プレイを開始する。
この開始の際に、ＣＰＵ１００は、ユーザからのコントローラ等による指示を基にして、プレイヤキャラクタの人数、キャラクタ種別、コントローラの割り当て、ＣＰＵ１００が思考処理を担当するか否かといった設定等を行う。図４の例では、４体のプレイヤキャラクタ６１０〜６４０を用いる際に、ユーザが３人以下の場合、協力ゲーム部３００のプログラムで制御するプレイヤキャラクタを用いる。また、ＣＰＵ１００は、ユーザの指示に従って、プレイ時の難易度やステージを選択することもできる。
【００４１】
（ステップＳ１０２）
次に、ＣＰＵ１００は、ゲーム進行部３１０を用いて、モデル読み込み処理を行う。
具体的に、ＣＰＵ１００は、補助記憶部１２０からユーザが選択したプレイヤキャラクタの種別に応じたプレイヤキャラクタデータ２１０の初期データ（図示せず）を読み出し、主記憶部１１０にコピーする。
加えて、ＣＰＵ１００は、ユーザが選択したステージに対応する背景他オブジェクトデータ２２０を補助記憶部１２０から読み出して同様に主記憶部１１０に記憶する。
この際に、ＣＰＵ１００は、「ロード中」といった表示をグラフィックプロセッサ１６０に表示させ、オーディオプロセッサ１８０からＢＧＭを演奏させる。
ＣＰＵ１００は、その他のゲームに係るデータについても読み出して、主記憶部１１０に記憶する。
その後、ＣＰＵ１００は、ゲームを開始させる。
なお、ゲーム開始の前に、ＣＰＵ１００は、デモ画像等を表示することもできる。この際に、ステージを高速に一望するようにカメラ位置を移動させて、ユーザの期待感を高める等の演出を行ってもよい。
【００４２】
（ステップＳ１０３）
次に、ＣＰＵ１００は、ゲーム進行部３１０を用いて、プレイヤキャラクタ発射処理を行う。
具体的には、ＣＰＵ１００は、ユーザにより選択されたプレイヤキャラクタ６１０〜６４０について、最初に「選手紹介」のデモンストレーションを行い、大砲のようなオブジェクト（図示せず）に入るように演出する。
ＣＰＵ１００は、プレイヤキャラクタ６１０〜６４０を４体とも大砲のようなオブジェクトに入った後、「ＲＥＡＤＹ」の合図の後、一斉に発射し、カメラを上空へ移動させる。
ＣＰＵ１００は、ゲーム開始位置までカメラを移動したら、画面下から４体のプレイヤキャラクタ６１０〜６４０が打ち上がるよう、グラフィックプロセッサ１６０に描画させる。この際、ユーザのコントローラの指示により、プレイヤキャラクタ６１０〜６４０は、左右への方向操作が可能である。ＣＰＵ１００は、到達する高さが全てほぼ同じになるように設定する。
その後、ＣＰＵ１００は、「ＧＯ！」という表示とともに、スタート位置からカメラをステージの端に向かって通常のスクロールをさせてゆく。
これにより、各プレイヤキャラクタは回転とジャンプのアクションを駆使して、ゴール地点を目指してプレイを進行させる。
【００４３】
（ステップＳ１０４）
ゲームの進行に従って、ＣＰＵ１００は、ゲーム進行部３１０を用いて、ゲーム画像描画処理を行う。
具体的には、ＣＰＵ１００は、背景他オブジェクトデータ２２０を用いて、背景画像をグラフィックプロセッサ１６０により描画させ、バー５００のオブジェクトを表示する。この表示の際には、カメラの移動により上述した図３Ａのようなスクロールを行い、画面を描画する。
【００４４】
なお、ＣＰＵ１００は、プレイヤキャラクタ６１０〜６４０が画面上方向に移動したときにはカメラをズームアウトして描画させるような処理を行うことができる。これにより、プレイヤキャラクタ６１０〜６４０を見失わないようにすることができる。
このズームアウトは、画面横方向では判定しないようにすることで、すぐにズームアウトして、わずらわしい感じをユーザに与えるのを防ぐことができる。また、ズームアウトした際には、できるだけ早く通常のカメラに戻るように構成することが好適である。
【００４５】
（ステップＳ１０５）
次に、ＣＰＵ１００は、オブジェクト移動部３２０を用いて、当たり判定処理を行う。
具体的には、ＣＰＵ１００は、プレイヤキャラクタ６１０〜６４０が、ステージの２次元のマップ上で、他のオブジェクトと座標が近接等して「接触」状態になっているか否かについて算出する、いわゆる当たり判定を行う。
この処理では、まず、ＣＰＵ１００は、各プレイヤキャラクタ６１０〜６４０のオブジェクトの仮想空間内の３次元座標から、マップ上の２次元座標を算出する。この上で、ＣＰＵ１００は、プレイヤキャラクタ６１０〜６４０が、バー５００や他のプレイヤキャラクタ６１０〜６４０のオブジェクトと接触しているか否かを算出する。ここで、ＣＰＵ１００は、各オブジェクトが、完全にマップ上で座標が重なっていなくても、所定距離未満の場合には「接触」状態であると判定する。しかしながら、ＣＰＵ１００は、単なる背景となっているオブジェクト、例えば遠景のビル画像等とは、当たり判定を行わない。
さらに、ＣＰＵ１００は、プレイヤキャラクタ６１０〜６４０が、バー５００に「属する」状態になっている場合には、これも「接触」状態と検出する。
ＣＰＵ１００は、これらの当たり判定結果を、主記憶部１１０に記憶する。
【００４６】
（ステップＳ１０６）
次に、ＣＰＵ１００は、コリジョン／回転処理を行う。
具体的には、ＣＰＵ１００は、各プレイヤキャラクタ６１０〜６４０の「通常コリジョン」「キャッチコリジョン」を判定してそれぞれの処理を行う。
また、ＣＰＵ１００は、単独や連結しての回転による得点付与の処理を行う。この得点付与の際に、プレイヤキャラクタ６１０〜６４０は、単独での回転よりも、協力してバー５００を回転した方が付与される得点が多いため、協力することがプレイの戦略上必要になる。よって、協力ゲームを実現できる。
このコリジョン／回転処理の詳細については後述する。
【００４７】
（ステップＳ１０７）
ここで、ＣＰＵ１００は、オブジェクト移動部３２０を用いてキャラクタ移動描画処理を行う。
具体的には、ＣＰＵ１００は、プレイヤキャラクタ６１０〜６４０のそれぞれについて、バー５００に「属する」状態になり回転しているか、バー５００から離脱して飛んでいるかといった現在の状態に従って、グラフィックプロセッサ１６０に描画させる。
また、この際に、ＣＰＵ１００は、キャッチした際の効果用のオブジェクト、２次元描画のビルボード・オブジェクト、アニメーション等をグラフィックプロセッサ１６０に再生させる。また、プレイヤキャラクタ６１０〜６４０が得点を得た場合に、その得点も描画させる。またＣＰＵ１００は、オーディオプロセッサ１８０から、効果音等も再生させる。
【００４８】
（ステップＳ１０８）
次に、ＣＰＵ１００は、ゲーム進行部３１０を用いて、ステージのゴールに到達したか否かについて判定する。この判定では、移動したカメラの座標がステージのゴールに到達したかについて判定する。
Ｙｅｓ、すなわちゴールに到達した場合、ＣＰＵ１００は、処理をステップＳ１０９に進める。
Ｎｏ、すなわちまだゴールではない場合、ＣＰＵ１００は、処理をステップＳ１０４に戻し、さらにゲームのプレイを進行させる。
【００４９】
なお、ＣＰＵ１００は、このゴールに到達したか否かの判定について、カメラの座標ではなく、ゲーム開始からの所定時間を計算して判定することができる。また、ＣＰＵ１００は、バー回転データ２３０のバー＃が全て出現したことを検知することもできる。
【００５０】
また、ステージの所定箇所等でスクロールを一時的に停止して、例えば、「すべての棒を回れ」といった「お題」を提示し、その達成に従って各プレイヤキャラクタ６１０〜６４０に得点を付与するような処理も可能である。
【００５１】
（ステップＳ１０９）
ステージのゴールに到達した場合、ＣＰＵ１００は、ゲーム進行部３１０を用いて、終了処理を行う。
この終了処理においては、ＣＰＵ１００は、例えば空中に浮いているゴールのオブジェクト（図示せず）をグラフィックプロセッサ１６０に描画させ、プレイヤキャラクタ６１０〜６４０がこの上に着地した場合に、プレイを終了させる。この際、ＣＰＵ１００は、着地した順番、ゴールのオブジェクト上の所定の着地点からの距離、着地までの時間やタイミング等に応じて、「着地ボーナス」の得点を着地したプレイヤキャラクタ６１０〜６４０に付与する。このゴールのオブジェクト上の所定の着地点は、背景他オブジェクトデータ２２０の基準範囲データから求めることができる。また、ＣＰＵ１００は、例えば、着地した順番が早く、所定の着地点より距離が少なく、バー５００を離脱して着地までの時間やタイミングが早い、といった場合に高い着地ボーナスを付与するように構成することができる。
ＣＰＵ１００は、ゴールに到達して所定時間が経過したら、「ＧＯＡＬ！」表示をさせ、ステージを終了させる。この際、ＣＰＵ１００は、プレイヤキャラクタ６１０〜６４０について、当該ステージの総得点であるスコアにより、ランキングを計算して勝ち負けとして表示する。
以上により、協力ゲーム処理を終了する。
【００５２】
次に、図５のフローチャートを参照して、上述のコリジョン／回転処理の詳細について説明する。
このコリジョン／回転処理は、プレイヤキャラクタ毎に、移動、キャッチ、回転、回転からの離脱／強制離脱等の動作設定を行う。
【００５３】
〈コリジョン／回転処理の詳細〉
（ステップＳ２００）
まず、ＣＰＵ１００は、ゲーム進行部３１０を用いて、動作設定を行うプレイヤキャラクタ６１０〜６４０（以下、自プレイヤキャラクタという。）の移動指示をユーザから検知するのか、ＣＰＵ１００がプログラムにより動作設定の処理（以下、思考処理という。）を制御するのかを判定する。この判定については、ＣＰＵ１００は、プレイヤキャラクタデータ２１０から、対応するプレイヤキャラクタ６１０〜６４０の「移動指示」属性を読み出して判断する。
Ｙｅｓ、すなわち、ＣＰＵ１００が思考処理を行う場合、ＣＰＵ１００は、処理をステップＳ２０１に進める。
Ｎｏ、すなわち、ユーザの指示により動作設定を行う場合、ＣＰＵ１００は、処理をステップＳ２０２に進める。
【００５４】
（ステップＳ２０１）
自プレイヤキャラクタが、ＣＰＵ１００により動作設定をするように設定されていた場合、ＣＰＵ１００は、ゲーム進行部３１０を用いて、ＣＰＵ思考処理を行う。
ここで、図６を参照して、ＣＰＵ１００がプレイヤキャラクタ６３０を自プレイヤキャラクタとして動作設定をする際の、ＣＰＵ思考処理の例について説明する。
まず、ＣＰＵ１００は、ユーザにより設定された難易度に従って、どのような動作設定をするかを選択する。
たとえば、図６のように、プレイヤキャラクタ６３０のルート検索を行う検索範囲７００〜７２０を、難易度毎に設定する。すなわち、難易度が高い場合は広い検索範囲７００を用い、難易度が中程度の場合には中程度の検索範囲７１０を用い、難易度が低い場合には狭い検索範囲７２０を用いる。なお、この検索範囲７００〜７２０については、バー５００に「属する」状態になり、さらに他のプレイヤキャラクタ６１０〜６４０と連結している場合には、連結した人数に応じて広い検索範囲を用いることができる。
ここで、ＣＰＵ１００は、検索範囲内の最も右上に位置するバー５００を目標地点として、次に移動するバー５００を選択する。この上で、自プレイヤキャラクタが、バー５００を把持する毎、又は空中で移動している間に、次の移動先となるターゲットを検索する。ＣＰＵ１００は、移動先となるターゲットとして、基本的には検索範囲７００〜７２０内にあるバー５００を検索して選択する。また、ＣＰＵ１００は、オブジェクト数判定部３３０を用いて、所定エリア内に、プレイヤキャラクタ６１０〜６４０がいるかを検索し、ターゲット対象にすることもできる。
このターゲットの検索の際、ＣＰＵ１００は、現在位置から到達可能な全てのルートを検索する。検索範囲７００〜７２０が広くなると、二つ、三つ先のバー５００をターゲットとするようになる。その際は、当該ターゲットとなったバー５００に至るための最短及び最速のルートを検索して決定することができる。この最短ルートは、ターゲットに至る複数のルートを検索し、比較することで求められる。また、ダイクストラ法のようなアルゴリズムを用いて最短ルートを計算してもよい。
また、ＣＰＵ１００は、ターゲット候補をソートして、最適なターゲットを検索することもできる。たとえば、検索範囲７００〜７２０内に、下記で説明する好意度が一定以上になっているキャラがいるか、又は好意度が低いライバルキャラが存在するかによりソートできる。
【００５５】
このターゲットとルートの計算の際に、ＣＰＵ１００は、ターゲットとする条件については、各プレイヤキャラクタ６１０、６２０、６４０との間の好意度により制御する。
まず、ターゲットとルートの計算において、ＣＰＵ１００は、「好意度」を基に、どのターゲットを検索するか判断する。ここで、ＣＰＵ１００は、プレイ中での他のプレイヤキャラクタ６１０〜６４０との行動の「からみあい」状況を検知して、好意度を加算／減算することができる。たとえば、連結して回転すると好意度を上げることができる。また、連結した際に回転を強制離脱した場合や、通常コリジョンで下方に押しやった場合等に、好意度を下げることができる。
これにより、ＣＰＵ１００は、好意度が高いプレイヤキャラクタ６１０、６２０、６４０がターゲットの場合には、連結して回転しようとするように動作設定できる。また、ＣＰＵ１００は、逆に好意度が低いプレイヤキャラクタ６１０、６２０、６４０が連結して回転した際に強制離脱させたり、通常コリジョンでわざと下に押しやったりといった、「復讐」するような挙動を実現することができる。この各プレイヤキャラクタ６１０、６２０、６４０への好意度について、好意度が高く／低くなる行動と反対の行動を検知した場合には、初期値にリセットするように構成することもできる。
また、ＣＰＵ１００は、各プレイヤキャラクタ６１０、６２０、６４０のスコアに応じて、「好意度」を変化させる。たとえば、この例における自プレイヤキャラクタであるプレイヤキャラクタ６３０のスコアが２〜４位であった場合には、１位のプレイヤキャラクタへの好意度を下げ、連結しないように動作設定する。これにより、ゲームの進行に応じて１位のプレイヤキャラクタを入れ替えることができ、どのプレイヤキャラクタに連結（協力）しないようにするかを常に確認しながらゲームを進めることができる。よって、プレイヤキャラクタ６１０〜６４０が対抗と協力とを繰り返すことになり、ゲーム性を高めることができる。
【００５６】
このようにターゲットとルートを計算した後、ＣＰＵ１００は、次に把持したりキャッチしたりしようとする他プレイヤキャラクタやバー５００との相対座標及び自プレイヤキャラクタの状態により、実際の動作設定を行う。
具体的には、ＣＰＵ１００は、「属する」状態になっていない場合、左右移動の軌道制御を行うよう動作設定する。
また、ＣＰＵ１００は、ターゲットとなるバー５００に接触した場合、把持して「属する」状態にするか否かについて動作設定する。
また、ＣＰＵ１００は、ターゲットの他プレイヤキャラクタであるプレイヤキャラクタ６１０、６２０、６４０のいずれかに近い場合には、キャッチコリジョンするか通常コリジョンをするかについて動作設定する。
また、ＣＰＵ１００は、回転中は、回転を続けるか強制離脱するかについても、動作設定する。
【００５７】
（ステップＳ２０２）
次に、ＣＰＵ１００は、ユーザが自プレイヤキャラクタの動作設定を行う場合、ゲーム進行部３１０を用いて、プレイヤ入力取得処理を行う。
この処理においては、ＣＰＵ１００は、ペリフェラルＩ／Ｆ１４０に接続された自プレイヤキャラクタに対応したコントローラ等からの操作信号を検知して、その検知に従った動作設定を行う。
具体的には、ＣＰＵ１００は、ユーザが空中にいる場合には、コントローラの左右ボタン、アナログコントローラの左右、加速度センサの左右等の操作信号を検知して左右に移動するような動作設定を行う。これは、回転したバー５００から離脱した際の「ジャンプ」時にも同様である。
また、ＣＰＵ１００は、ユーザが所定のボタンを押下したことを検知して、接触しているオブジェクトの把持を行うための動作設定をする。この把持においては、バー５００と他のプレイヤキャラクタ６１０〜６４０（以下、他プレイヤキャラクタという。）が接触していた場合には、他プレイヤキャラクタを優先させるような動作設定が好適である。これにより、回転中の他プレイヤキャラクタを把持しやすくなり、ゲームの操作性を高めることができる。
さらに、ＣＰＵ１００は、回転時にユーザが所定のボタンを押下したことを検知して、離脱の動作設定を行う。この離脱の動作設定においては、回転のタイミングにより、高さや加速度等を変更して、連結している他プレイヤキャラクタを含めて「ジャンプ」させる。
【００５８】
（ステップＳ２０３）
次に、ＣＰＵ１００は、オブジェクト移動部３２０を用いて、自プレイヤキャラクタがバー５００に「属する」状態になり、回転しているか否かについて判定する。
Ｙｅｓ、すなわち、回転している場合、ＣＰＵ１００は、処理をステップＳ２１０に進める。
Ｎｏ、すなわち、回転していない場合、ＣＰＵ１００は、処理をステップＳ２０４に進める。
【００５９】
（ステップＳ２０４）
ここで、ＣＰＵ１００は、自プレイヤキャラクタが回転していない場合、オブジェクト移動部３２０を用いて、「通常コリジョン」をしているか否かについて判定する。
具体的には、ＣＰＵ１００は、自プレイヤキャラクタが、他プレイヤキャラクタと接触し、当該他プレイヤキャラクタがバー５００に「属する」状態でなかった場合には、「通常コリジョン」として、Ｙｅｓと判定する。また、当該他プレイヤキャラクタがバー５００に「属する」状態であっても、自プレイヤキャラクタについて把持の動作設定がなかった場合にも、Ｙｅｓと判定する。それ以外の場合、ＣＰＵ１００は、Ｎｏと判定する。
Ｙｅｓの場合、ＣＰＵ１００は、処理をステップＳ２０５に進める。
Ｎｏの場合、ＣＰＵ１００は、処理をステップＳ２０６に進める。
【００６０】
（ステップＳ２０５）
ＣＰＵ１００は、他プレイヤキャラクタと「通常コリジョン」していた場合、オブジェクト移動部３２０を用いて、通常コリジョン処理を行う。
図７Ａを参照して、この通常コリジョン処理について説明する。ここでは、プレイヤキャラクタ６２０を自プレイヤキャラクタ、プレイヤキャラクタ６１０を他プレイヤキャラクタとして説明する。
ＣＰＵ１００は、空中で自プレイヤキャラクタが他プレイヤキャラクタと接触した場合に、上述の当たり定により弾き合うように移動方向の動作設定を行う。この際、移動ベクトルと、自プレイヤキャラクタと他プレイヤキャラクタの大きさの差や体重差に応じて、加速度を付加し、弾きあうよう構成することができる。しかしながら、ＣＰＵ１００は、２次元の座標系において、上方から自プレイヤキャラクタが他プレイヤキャラクタに接触した場合、上方向へ跳ね上げるように加速度を付加する。これにより、ゲームの操作性を高めて、反発した際の見た目を面白くすることができる。
また、ＣＰＵ１００は、他プレイヤキャラクタがバー５００に属して回転中であったものの、ユーザが把持する指示をしていなかった場合、回転している他プレイヤキャラクタに弾かれるように、自プレイヤキャラクタに加速度を付加する。この際に、ＣＰＵ１００は、接触した瞬間の他プレイヤキャラクタの回転位置に依存するよう、自プレイヤキャラクタの飛んでいく方向を設定する。すなわち、弾かれる方向により、期待する方向に飛んだり、逆に意図しない方向に飛んだりするという効果が得られ、ゲームを複雑にしてユーザを楽しませることができる。
その後、ＣＰＵ１００は、処理をステップＳ２１７に進める。
なお、ＣＰＵ１００は、複数の他プレイヤキャラクタが連なって回転していた場合には、その人数に応じて加速度を増やし、「回転加速比率」により最大値を調整する。また、ＣＰＵ１００は、他プレイヤキャラクタに後ろから当たった場合は、弾かれないように設定できる。
【００６１】
（ステップＳ２０６）
ＣＰＵ１００は、通常コリジョンではなかった場合、オブジェクト移動部３２０を用いて、自プレイヤキャラクタと他プレイヤキャラクタとが「キャッチコリジョン」をしているか否かについて判定する。ここでは、他プレイヤキャラクタがバー５００に「属する」状態になっており、ユーザが自プレイヤキャラクタにおいて把持の指示をした操作信号を検知した場合、「キャッチコリジョン」としてＹｅｓであると判定する。それ以外の場合には、Ｎｏと判定する。
Ｙｅｓの場合、ＣＰＵ１００は、処理をステップＳ２０７に進める。
Ｎｏの場合、ＣＰＵ１００は、処理をステップＳ２０８に進める。
【００６２】
（ステップＳ２０７）
ＣＰＵ１００は、自プレイヤキャラクタが他プレイヤキャラクタと「キャッチコリジョン」した場合、順番判定部３５０を用いて、キャッチコリジョン処理を行う。
図７Ｂを参照して、キャッチコリジョン処理について説明する。図７Ｂにおいても、プレイヤキャラクタ６２０を自プレイヤキャラクタ、プレイヤキャラクタ６１０を他プレイヤキャラクタとして説明する。
ＣＰＵ１００は、自プレイヤキャラクタが落下しているときでも、バー５００を把持して「属する」状態になっている他プレイヤキャラクタがある場合、当該他プレイヤキャラクタを把持する「キャッチコリジョン」の処理を行うことができる。
具体的には、ＣＰＵ１００は、他プレイヤキャラクタの端部に移動して、把持するような形状で一緒に回転し始める。この際、ＣＰＵ１００は、他プレイヤキャラクタが複数、連結して回転している場合には、末端まで滑り落ちた後、最後尾を把持するように描画させる。
そして、ＣＰＵ１００は、プレイヤキャラクタデータ２１０のキャッチコリジョンした他キャラクタの「属するバー」属性の値を読み出して、自プレイヤキャラクタの「属するバー」属性に書き込む。また、ＣＰＵ１００は、連結の順番を算出し、自プレイヤキャラクタの「順番」属性に書き込む。
その後、ＣＰＵ１００は、処理をステップＳ２１７に進める。
【００６３】
（ステップＳ２０８）
ＣＰＵ１００は、通常コリジョンでもキャッチコリジョンでもなかった場合、自プレイヤキャラクタがバー５００に接触しているか否か判定する。ここでは、ＣＰＵ１００は、バー５００に接触した状態で、把持の動作設定がされている場合Ｙｅｓと判定する。上述したように、ユーザの場合はボタン押下等の指示があり、ＣＰＵ１００の思考処理で設定されていた場合に、把持の動作設定となる。また、上述したように、ＣＰＵ１００は、バー５００と必ずしもオブジェクト同士が重なっていなくても、近接していれば接触状態と判断する。
ここで、ＣＰＵ１００は、バー５００に自プレイヤキャラクタが接触して、把持の指示が出ている場合以外には、Ｎｏと判定する。
Ｙｅｓの場合、ＣＰＵ１００は、処理をステップＳ２０９に進める。
Ｎｏの場合、ＣＰＵ１００は、処理をステップＳ２１７に進める。
【００６４】
なお、ＣＰＵ１００は、敵キャラクタやコインや風船やアイテム等の他のオブジェクトに接触した場合には、それぞれの処理を行うこともできる。
また、ＣＰＵ１００は、一時停止時に所定のオブジェクトに着地した場合にも、別途、得点等を計算する処理を行うこともできる。
【００６５】
（ステップＳ２０９）
ＣＰＵ１００は、自プレイヤキャラクタがバー５００と接触し、把持の指示が動作設定されていた場合、バー接触回転開始処理を行う。
具体的には、ＣＰＵ１００は、プレイヤキャラクタデータ２１０の自プレイヤキャラクタの「属するバー」属性に、接触したバー５００の情報を書き込む。これにより、ＣＰＵ１００は、自プレイヤキャラクタを「属する」状態とする。そして、ＣＰＵ１００は、自プレイヤキャラクタの「座標」属性に、初期の回転角度を設定する。
また、ＣＰＵ１００は、連結の順番を「１」として、自プレイヤキャラクタの「順番」属性に書き込む。
その上で、ＣＰＵ１００は、処理をステップＳ２１７に進める。
【００６６】
（ステップＳ２１０）
ここで、自プレイヤキャラクタが回転している場合、ＣＰＵ１００は、オブジェクト数判定部３３０を用いて、バー連結数算出処理を行う。
具体的には、ＣＰＵ１００は、プレイヤキャラクタデータ２１０を読み出し、自プレイヤキャラクタの「属するバー」属性を読み出す。この上で、ＣＰＵ１００は、自プレイヤキャラクタと同じバー５００と「属する」状態になっている他プレイヤキャラクタが何体いるかを算出する。
また、ＣＰＵ１００は、自プレイヤキャラクタの連結の順番についても算出する。
【００６７】
（ステップＳ２１１）
次に、ＣＰＵ１００は、回転制御部３７０を用いて、回転処理を行う。
この回転処理においては、ＣＰＵ１００は、自プレイヤキャラクタの連結の順番に従って、「属する」状態になっているバー５００から所定の半径にて、所定のスピードにて自プレイヤキャラクタを回転させる。具体的には、ＣＰＵ１００は、回転した後で、プレイヤキャラクタデータ２１０の自プレイヤキャラクタの「座標」属性に、回転した角度等を変更して書き込む。
この回転の際には、ＣＰＵ１００は、上述したように連結の順番により調整するため、ユーザに見栄えよく描画し、ゲーム性を高めることができる。
すなわち、ＣＰＵ１００は、
・複数のプレイヤキャラクタが連結しているほど、回転の最高速度、最低速度を調整する
・複数のプレイヤキャラクタが連結しているほど、各プレイヤキャラクタの一度の回転速度加速操作による加速量を制限する
等の制御を行うことができる。
【００６８】
（ステップＳ２１２）
次に、ＣＰＵ１００は、回転制御部３７０を用いて、回転が終了したか否かについて判定する。具体的には、ＣＰＵ１００は、プレイヤキャラクタデータ２１０の自プレイヤキャラクタの回転した角度等が所定角度以上になっていた場合、一回転したと判定して、Ｙｅｓと判定する。それ以外の場合にはＮｏと判定する。
Ｙｅｓの場合、ＣＰＵ１００は、回転終了として、処理をステップＳ２１３に進める。
Ｎｏの場合、ＣＰＵ１００は、まだ回転中として、処理をステップＳ２１５に進める。
【００６９】
（ステップＳ２１３）
一回転が終了した場合、ＣＰＵ１００は、得点付与部３４０を用いて、バー付与得点状態算出処理を行う。
図８を参照して説明すると、各バー５００は、各バーで回転した場合に得点を付与できる残回数を記憶している。つまり、所定回数／所定時間以内に回転した場合までは得点を付与するものの、それ以上回転しても得点を得ることはできないように構成している。図８の例では、４回までは得点が得られるものの、それ以上回転しても得点が得られないことになる。すなわち、画面上に表示されているバー５００は有限なので、各プレイヤキャラクタは、残回数があるバー５００をターゲットとして回転する必要がある。
ＣＰＵ１００は、バー回転データ２３０から、自プレイヤキャラクタが「属する」状態になっているバー５００の「残回数」属性の値を読み出して主記憶部１１０に記憶する。その上で、バー５００の「残回数」属性を減算する。なお、ＣＰＵ１００は、他プレイヤキャラクタが、連結して回転している場合でも、例えば、一回転につき１回だけ「残回数」属性の値を減らすようにする。
また、ＣＰＵ１００は、当該バー５００の「残回数」属性の値を、バー位置指示オブジェクト５１０に、例えば、目盛りの減少、色の変化、明度の変化、といった変化をさせて描画させる。これにより、ユーザがバー５００の残回数を容易に視認することができ、ゲーム性を向上させられる。
【００７０】
（ステップＳ２１４）
次に、ＣＰＵ１００は、得点付与部３４０を用いて、得点付与処理を行う。
本実施形態においては、連結している人数が多ければ、連結した自プレイヤキャラクタ及び他プレイヤキャラクタが、全て、人数に応じた同一の得点を得ることができる連結数基準の得点付与処理を行う。
この連結数基準の得点付与処理の詳細については、後述する。
得点付与処理が終了した後、ＣＰＵ１００は、処理をステップＳ２１５に進める。
【００７１】
（ステップＳ２１５）
ここで、ＣＰＵ１００は、強制離脱部３６０を用いて、自プレイヤキャラクタが、回転からの離脱の指示が動作設定されているか否かについて判定する。
Ｙｅｓ、すなわち、離脱の指示が動作設定されている場合、ＣＰＵ１００は、処理をステップＳ２１６に進める。
Ｎｏ、すなわち、離脱の指示がなく、回転中又は回転が終了して把持している状態の場合は、ＣＰＵ１００は、処理をステップＳ２１７に進める。
【００７２】
（ステップＳ２１６）
ＣＰＵ１００は、回転の離脱の指示が動作設定されている場合、強制離脱部３６０を用いて、離脱処理を行う。
図９を参照して、この処理の詳細について説明する。
ＣＰＵ１００は、上述したように、離脱の指示があった場合には、プレイヤキャラクタをバー５００から離れさせジャンプさせる「離脱」を行う。ＣＰＵ１００は、本実施形態の強制離脱部３６０により、回転中であっても、「強制離脱」によりバー５００から離脱するように構成する。
この離脱の際には、連結の順番に従って、自プレイヤキャラクタと、自プレイヤキャラクタよりも後に連なって回転している他プレイヤキャラクタを強制的に離脱させるように構成することが好適である。これにより、内側の自プレイヤキャラクタは、外側の他プレイヤキャラクタと連なって回転して後述するように高い得点を得るか否かについて選択することができ、ゲームの戦略性を高めることができる。
【００７３】
また、ＣＰＵ１００は、離脱の際に、複数のプレイヤキャラクタが連結しているほど、飛び出し距離が小さくなるように制御する。
これにより、複数のプレイヤキャラクタが連結している場合は、飛び出し位置が画面端に近い一番外側のプレイヤキャラクタが画面外に飛び出すことが少なくなる。
【００７４】
また、ＣＰＵ１００は、離脱の際の回転角度により、ジャンプする方向を変化させるようにする。これにより、自プレイヤキャラクタはより柔軟に飛ぶ方向を変化させられ、又、他プレイヤキャラクタを意図した方向に押しやることができる。よって、ゲームの戦略性を高めることができる。
なお、逆に、ＣＰＵ１００は、離脱の際のジャンプの飛び出し範囲は、回転の段階に関わらず、上側１２０度の範囲に限定するように構成することも可能である。すなわち、この構成では、ＣＰＵ１００は、強制離脱の指示の動作設定を検知してから、ある程度の回転をさせ、その後、自プレイヤキャラクタと後の順番の他プレイヤキャラクタを離脱させる。これにより、回転の離脱の際に、あまり細かいタイミングの制御が必要となくなるため、ユーザが、回転の残回数があるバー５００を選択して、他プレイヤキャラクタと協力しながらゲームのプレイを進めやすくなるという効果が得られる。
【００７５】
また、回転操作と飛び出し操作のタイミング及び方向については、一番外側のプレイヤキャラクタが動作設定するような構成も可能である。このような構成の場合は、内側の連結された側のプレイヤキャラクタは、最後に連結したプレイヤキャラクタが離脱の動作設定をするまで、何もすることができない。これにより、連結して回転させるか、単独で回転させるかについて、より広い選択を与え、ゲーム性を高めることができる。
【００７６】
（ステップＳ２１７）
ここで、ＣＰＵ１００は、自プレイヤキャラクタのコリジョン又は回転についての処理が終わった後、すべてのプレイヤキャラクタについて当該処理を行ったか否かについて判定する。
Ｙｅｓ、すなわち、全てのプレイヤキャラクタについての処理が終了した場合、ＣＰＵ１００は、コリジョン／回転処理を終了する。
Ｎｏ、すなわち、まだ他のプレイヤキャラクタについての処理を行う場合には、ＣＰＵ１００は、処理をステップＳ２００に戻して処理を続ける。
以上により、コリジョン／回転処理を終了する。
【００７７】
〈得点付与処理の詳細〉
次に、図１０と図１１とを参照して、本発明の実施の形態に係る得点付与処理の詳細について説明する。
本実施形態では、連なって回転すると、連結したプレイヤキャラクタの人数ｎに応じて、全員の付与得点（ポイント）がｎ倍になるよう制御する。
以下で、図１０のフローチャートを参照して、各ステップの詳細について説明する。
【００７８】
（ステップＳ３０１）
まず、ＣＰＵ１００は、得点付与部３４０を用いて、連結数得点加算処理を行う。
ＣＰＵ１００は、バー連結数算出処理にてオブジェクト数判定部３３０により取得された、同じバー５００に連結して回転しているプレイヤキャラクタ６１０〜６４０の数を人数ｎとして取得する。
その上で、ＣＰＵ１００は、人数ｎ×所定値のポイント（ｐｏｉｎｔ、ｐｔ）を得点として算出する。たとえば、１体で回転する際に付与する所定値のポイントが１０ポイントの場合、ｎ×１０（ポイント）の得点を、全員に付与するポイントとする。すなわち、ＣＰＵ１００は、１体が回転した場合は１０ポイント、２体が連結して回転した場合は２０ポイント、３体の場合は３０ポイント、４体では４０ポイント、といった得点を算出する。
【００７９】
（ステップＳ３０２）
次に、ＣＰＵ１００は、得点付与部３４０を用いて、連結数基準得点付与処理を行う。
具体的には、ＣＰＵ１００は、上述の処理で算出された人数ｎに応じた得点を、プレイヤキャラクタデータ２１０の対応するプレイヤキャラクタの「スコア」属性に加算する。
ここで、途中から回転に加わり、すなわち連結して回転したプレイヤキャラクタであっても、同じ点数を付与することが好適である。
しかしながら、この際、ＣＰＵ１００は、「属する」状態になっているバーの残回数がない場合には、加算をしない。
また、ＣＰＵ１００は、回転が途中で、強制離脱されたキャラクタについても、得点を加算しないように構成できる。
なお、回転の途中で連結した場合、一回転が終了してからさらにもう一回転した時だけ、そのプレイヤキャラクタに得点を付与するように構成してもよい。また、上述したように、回転が途中でも得点を付与する構成も可能である。
以上により、得点付与処理を終了する。
【００８０】
以上のように構成することで、以下のような効果を得ることができる。
本発明の実施の形態に係るゲーム装置１０においては、バー５００に「属する」状態になったプレイヤキャラクタの数に応じて、得点付与部３４０が得点を付与する。
この際、スコアが２〜４位のプレイヤキャラクタを操作するユーザは、スコア１位のプレイヤキャラクタには、連結しないようにゲームを行うようになる。よって、ゲームのプレイの進行によって、１位のプレイヤキャラクタが入れ替わるため、ユーザはどのプレイヤキャラクタに連結（協力）しないようにするかを常に確認しながらゲームを進めることとなる。
これにより、プレイヤが競争（対抗）と協力とを繰り返すことになるため、ゲームの戦略性が高まるという効果が得られる。よって、複数のプレイヤに対し、従来とは異なる興趣性の高いゲームを提供することができる。
【００８１】
また、本発明の実施の形態に係るゲーム装置１０は、プレイヤキャラクタがバー５００に「属する」状態となった場合、内側から何番目であるか等の連結の順番を、順番判定部３５０により判定、算出する。
また、この順番に従って、回転状態において、自プレイヤキャラクタより連結の順番が大きい、すなわち外側の他プレイヤキャラクタを強制離脱部３６０により離脱させる。
これにより、ユーザは、自プレイヤキャラクタが回転中に他のプレイヤキャラクタが連結した場合でも、当該他プレイヤキャラクタのスコアの順位により、強制離脱するか回転を続けるかについて選択できる。よって、ユーザが競争（対抗）又は協力の戦略を使い分けることができ、ゲーム性を高めることができる。
【００８２】
また、本実施形態の得点付与部３４０は、同じバー５００に「属する」状態になったプレイヤキャラクタの人数ｎが多いほど多くの得点を、「属する」状態の全てのプレイヤキャラクタに付与する。
これにより、１体のプレイヤキャラクタが回転している際に、協力して回転してより多くの得点を得るというモチベーションを与えることができ、ゲーム性を高めることができる。
【００８３】
また、本実施形態の得点付与部３４０は、バー５００の残回数として、バー５００を所定回数以上回転したり、所定時間が経過したりすると、得点を付与しないように構成する。
これにより、バー５００の配置される本数がステージ毎に限られており、回転の残回数が設定されているバー５００から得点を得て、総合得点であるスコアを最大限に上げるというゲーム目的のために、プレイヤが協力することを求めることができる。
【００８４】
また、本実施形態の回転制御部３７０は、複数のプレイヤキャラクタが連結しているほど、回転の最高速度、最低速度を調整することができる。
また、本実施形態の回転制御部３７０は、複数のプレイヤキャラクタが連結しているほど、各プレイヤキャラクタの一度の回転速度加速操作による加速量を制限することができる。
これにより、連なって回転する際の、プレイヤキャラクタ同士の見栄えを良くすることができ、ユーザのプレイ意欲を惹起することができる。
また、プレイヤキャラクタ同士が協力して回転速度加速操作することによって、回転速度を急加速でき、ゲーム性を高めることができる。
【００８５】
また、本実施形態の強制離脱部３６０は、複数のプレイヤキャラクタが連結しているほど、飛び出し距離が小さくなるように調整できる。
これにより、連なって回転していた場合に、外側のプレイヤキャラクタが遠くに飛ばされ過ぎるのを防ぐことができ、ゲームの操作性を向上させ、難易度を適切にすることができる。
【００８６】
また、本実施形態の強制離脱部３６０は、連結の順番が小さいプレイヤキャラクタが、連結の順番が大きいプレイヤキャラクタに対して、バー５００から離脱させるよう制御することができる。
これにより、他のプレイヤキャラクタと連なって回転する協力をさせたくない際に、プレイヤキャラクタが操作することができ、ゲームのプレイ時の自由度を向上させ、ゲーム性を高めることができる。また、ユーザの苛立ちを抑え、ゲームのプレイへの意欲を惹起させられる。
【００８７】
＜他の実施の形態＞
ここで、図１２と図１３とを参照して、本発明の他の実施の形態について説明する。
本発明の他の実施の形態においては、ゲーム装置１０（図１）と同じ構成のゲーム装置を用いて協力ゲームを行う。
この際、ＣＰＵ１００は、協力ゲーム処理、コリジョン／回転処理についても、図４、図５のフローチャートと同様に処理することができる。
しかしながら、本発明の別の実施の形態において、ステップＳ２１４（図５）の得点付与処理について、ＣＰＵ１００は、順番を基準とした異なる処理を行い、得点付与の方法を変更する。
以下で、この本発明の他の実施の形態に係る順番基準の得点付与処理について、図１２のフローチャートを基に詳しく説明する。
【００８８】
〈得点付与処理の詳細〉
（ステップＳ３２１）
まず、ＣＰＵ１００は、順番判定部３５０を用いて、同じバー５００に「属する」状態になっているプレイヤキャラクタ毎に、連結の順番を算出する。
この連結の順番は、上述したのと同様に、一番内側、即ち最も早くバー５００に「属する」状態になったプレイヤキャラクタを１番として、プレイヤキャラクタ毎に順次増加させる。
【００８９】
（ステップＳ３２２）
次に、ＣＰＵ１００は、得点付与部３４０を用いて、順番基準得点付与処理を行う。
図１３を参照して説明すると、本発明の他の実施の形態においては、外側のプレイヤキャラクタに高い得点を付与する。
具体的には、ＣＰＵ１００は、得点付与部３４０により、連結の順番毎に、基本となるポイントをｎ倍したポイントを、各プレイヤキャラクタのスコア属性に加算する。ここでは、例えば、連結の順位が１番目のプレイヤキャラクタに付与する得点が１０ポイントであった場合、２番目のプレイヤキャラクタは２０ポイント、３番目は３０ポイント、４番目は４０ポイントといった点数を付与する。
つまり、把持して回転を始めたプレイヤキャラクタより外側で連なって回転した方がより多くのポイントを得られる。
これにより、自プレイヤキャラクタと他プレイヤキャラクタの位置関係と、協力関係とがより複雑になり、戦略性を高めることができる。
【００９０】
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。
【産業上の利用可能性】
【００９１】
本発明のゲームプログラムは、プレイ中に競争させるだけでなく協力させるように構成され、ゲーム性を高められるため、各種ゲーム装置に適用でき、産業上利用可能性がある。
【符号の説明】
【００９２】
１０  ゲーム装置
１００  ＣＰＵ
１１０  主記憶部
１２０  補助記憶部
１３０  ＢＩＯＳ
１４０  ペリフェラルＩ／Ｆ
１５０  バスアービタ
１６０  グラフィックプロセッサ
１６２  ジオメトリ部
１６４  レンダリング部
１７０  グラフィックメモリ
１７５  ビデオＢＩＯＳ
１８０  オーディオプロセッサ
１９０  オーディオメモリ
２００  通信Ｉ／Ｆ
２１０  プレイヤキャラクタデータ
２２０  背景他オブジェクトデータ
２３０  バー回転データ
３００  協力ゲーム部
３１０  ゲーム進行部
３２０  オブジェクト移動部
３３０  オブジェクト数判定部
３４０  得点付与部
３５０  順番判定部
３６０  強制離脱部
３７０  回転制御部
３８０  キャラクタ属性データ部
４００  画面例
５００  バー
５１０  バー位置指示オブジェクト
５２０  バーラインオブジェクト
６００、６１０、６２０、６３０、６４０  プレイヤキャラクタ
７００、７１０、７２０  検索範囲
【図１】
2012249860.tif 000003
【図２Ａ】
2012249860.tif 000004
【図２Ｂ】
2012249860.tif 000005
【図３Ａ】
2012249860.tif 000006
【図３Ｂ】
2012249860.tif 000007
【図４】
2012249860.tif 000008
【図５】
2012249860.tif 000009
【図６】
2012249860.tif 000010
【図７Ａ】
2012249860.tif 000011
【図７Ｂ】
2012249860.tif 000012
【図８】
2012249860.tif 000013
【図９】
2012249860.tif 000014
【図１０】
2012249860.tif 000015
【図１１】
2012249860.tif 000016
【図１２】
2012249860.tif 000017
【図１３】
2012249860.tif 000018