(57)【特許請求の範囲】
【請求項１】
ゲーム処理に応じたゲーム画面を表示装置の表示領域に表示するゲーム装置のコンピュータで実行されるゲームプログラムであって、
第１のゲームのゲーム空間を表示させるための第１エリアと、第２のゲームのゲーム空間を表示させるための第２エリアとの少なくとも２つのエリアを前記表示領域上に設定し、前記第１エリアのゲーム空間に第１ローカル座標系を、前記第２エリアのゲーム空間に第２ローカル座標系を定義する表示エリア設定ステップと、
前記第２のゲームにおいて、所定のゲーム処理を行い、ゲーム空間内の所定のオブジェクトである第２ゲームオブジェクトについて、前記第２ローカル座標系における座標を決定する第２ゲーム処理ステップと、
前記第２ゲームオブジェクトに関して、前記第２ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置に変換する第１の位置変換ステップと、
前記第２ゲームオブジェクトの前記ワールド座標系での位置を、前記第１ローカル座標系での位置に変換する第２の位置変換ステップと、
前記第２ゲームオブジェクトの位置が前記第１エリア上にあることを判定する判定ステップと、
前記判定ステップで前記第１エリア上にあると判定された第２ゲームオブジェクトを、前記第１ローカル座標系での位置に基づいて、前記第１のゲームに影響させたゲーム処理を行う第１ゲーム処理ステップと、
前記第１のゲームのゲーム空間を前記第１エリアに表示させ、前記第２のゲームのゲーム空間を前記第２エリアに表示させる表示ステップを、前記コンピュータに実行させるゲームプログラム。
【請求項２】
前記コンピュータに、前記第１エリアおよび前記第２エリアの間の位置関係および前記第１エリアおよび前記第２エリアの間の大小関係の少なくとも一方の関係を、前記第１ゲーム処理ステップの実行結果および前記第２ゲーム処理ステップの少なくとも一方の実行結果に基づいて変更し、当該変更に伴い、前記第１および第２ローカル座標とワールド座標との対応関係を変更する、エリア変更ステップをさらに実行させる、請求項１に記載のゲームプログラム。
【請求項３】
前記第１ゲーム処理ステップにおけるゲーム処理は、ゲーム操作のための第１操作データに基づいて実行され、
前記第２ゲーム処理ステップにおけるゲーム処理は、ゲーム操作のための第２操作データに基づいて実行される、請求項１記載のゲームプログラム。
【請求項４】
前記第１操作データは、ユーザの操作に基づいて入力されるリアルタイム操作データであり、前記第２操作データは、ユーザの操作に替えてゲームを進行させるために記憶媒体に記憶されたリプレイ操作データである、請求項３に記載のゲームプログラム。
【請求項５】
前記コンピュータに前記リアルタイム操作データを前記リプレイ操作データとして記憶媒体に記憶させる記憶ステップをさらに実行させる、請求項４に記載のゲームプログラム。
【請求項６】
他のゲーム装置とリプレイ操作データを通信手段を通じて送受信する通信ステップを、前記コンピュータにさらに実行させる、請求項５記載のゲームプログラム。
【請求項７】
前記表示領域は第１画面および第２画面から構成され、
前記第１エリアおよび前記第２エリアは第１画面および第２画面にそれぞれ対応する、請求項１記載のゲームプログラム。
【請求項８】
前記コンピュータに、
前記第１ゲーム処理において、ゲーム空間内の所定のオブジェクトである第１ゲームオブジェクトについて、前記第１ローカル座標系における座標をさらに決定させ、
前記第１の位置変換ステップにおいて、前記第１ゲームオブジェクトの前記第１ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置にさらに変換させ、
前記第２の位置変換ステップにおいて、前記第１ゲームオブジェクトの前記ワールド座標系での位置を、前記第２ローカル座標系での位置にさらに変換させ、
前記判定ステップにおいて、第１ゲームオブジェクトの位置が前記第２エリア上にあることをさらに判定させ、
前記第２ゲーム処理ステップにおいて、前記判定ステップで前記第２エリア上にあると判定された前記第１ゲームオブジェクトを、前記第２ローカル座標系での位置に基づいて、前記第２のゲームに影響させたゲーム処理をさらに行わせる、請求項１記載のゲームプログラム。
【請求項９】
前記表示エリア設定ステップは、第ｋ（ｋは３以上の自然数）のゲームのゲーム空間を表示させるための第ｋエリアを前記表示領域上にさらに設定し、第ｋエリアのゲーム空間に第ｋローカル座標系を定義するステップをさらに含み、
前記第ｋのゲームにおいて、所定のゲーム処理を行う第ｋゲーム処理ステップを、前記コンピュータにさらに実行させる請求項８に記載のゲームプログラム。
【請求項１０】
ゲーム処理に応じたゲーム画面を表示装置の表示領域に表示するゲーム装置であって、
第１のゲームのゲーム空間を表示させるための第１エリアと、第２のゲームのゲーム空間を表示させるための第２エリアとの少なくとも２つのエリアを前記表示領域上に設定し、それぞれのゲーム空間に第１および第２ローカル座標系を定義する表示エリア設定手段と、
前記第２のゲームにおいて、所定のゲーム処理に基づき、ゲーム空間内の所定のオブジェクトである第２ゲームオブジェクトについて、前記第２ローカル座標系における座標を決定する第２ゲーム処理手段と、
前記第２ゲームオブジェクトに関して、前記第２ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置に変換する第１の位置変換手段と、
前記第２ゲームオブジェクトの前記ワールド座標系での位置を、前記第１ローカル座標系での位置に変換する第２の位置変換手段と、
前記第２ゲームオブジェクトの位置が前記第１エリア上にあることを判定する判定手段と、
前記判定手段で前記第１エリア上にあると判定された第２ゲームオブジェクトを、前記第１ローカル座標系での位置に基づいて、前記第１のゲームに影響させたゲーム処理を行う第１ゲーム処理手段と、
前記第１のゲームのゲーム空間を前記第１エリアに表示させ、前記第２のゲームのゲーム空間を前記第２エリアに表示させる表示手段を備える、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ゲームプログラムおよびゲーム装置に関し、特にたとえば、２人以上でゲームをプレイする、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
この種のプログラムおよび装置の一例が特許文献１に開示されている。この背景技術では、２人で共通のゲーム（格闘ゲーム）をプレイする。
【０００３】
また、他の一例が特許文献２に開示されている。この背景技術でも、２人で共通のゲーム（囲碁ゲーム）をプレイするが、現実のプレイヤ（以下単に“プレイヤ”と呼ぶ）は２人のうち一方で、他方は仮想的なプレイヤ（コンピュータ）である。
【特許文献１】特開２００７‐８３０７１号公報
【特許文献２】特開２００４‐１０５２２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１および特許文献２の各々は、２人で（すなわちプレイヤ対プレイヤないしプレイヤ対コンピュータで）共通のゲームをプレイする方策について開示するものの、これらは２人で独立にゲームをすることができないものである。その一方で、２人でそれぞれ別々のゲームを行う場合には、２人でゲームをする楽しみに欠けるという問題がある。
【０００５】
また、特許文献２は、プレイヤが自分とは別人の仮想的なプレイヤとゲームをプレイする方策について開示するものの、実在のプレイヤとのゲームプレイではないので、多人数プレイの楽しみが無いという問題がある。さらに、上記の引用文献１および２に記載されているのは、他のプレイヤやコンピュータと共にプレイすることであって、自分自身と共にゲームをプレイするという新規な発想については記載されていない。
【０００６】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【０００７】
この発明の他の目的は、複数のプレイヤがそれぞれ独立にゲームをプレイすることが可能であると同時に相互に影響を及ぼし合うことができる、ゲームプログラムおよびゲーム装置を提供することである。
【０００８】
この発明のその他の目的は、さらに、１人であっても他のプレイヤと共にゲームをするという興趣を得られる、ゲームプログラムおよびゲーム装置を提供することである。
【０００９】
この発明のさらに他の目的は、自分自身と共にプレイする感覚を得られるという新規なゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【００１０】
この発明は、上記の課題を解決するために、以下の構成を採用した。
【００１１】
第１の発明は、ゲーム処理に応じたゲーム画面を表示装置の表示領域に表示するゲーム装置のコンピュータで実行されるゲームプログラムであって、第１のゲームのゲーム空間を表示させるための第１エリアと、第２のゲームのゲーム空間を表示させるための第２エリアとの少なくとも２つのエリアを表示領域上に設定し、第１エリアのゲーム空間に第１ローカル座標系を、第２エリアのゲーム空間に第２ローカル座標系を定義する表示エリア設定ステップと、第２のゲームにおいて、所定のゲーム処理を行い、ゲーム空間内の所定のオブジェクトである第２ゲームオブジェクトについて、第２ローカル座標系における座標を決定する第２ゲーム処理ステップと、第２ゲームオブジェクトに関して、第２ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置に変換する第１の位置変換ステップと、第２ゲームオブジェクトのワールド座標系での位置を、第１ローカル座標系での位置に変換する第２の位置変換ステップと、第２ゲームオブジェクトの位置が第１エリア上にあることを判定する判定ステップと、判定ステップで第１エリア上にあると判定された第２ゲームオブジェクトを、第１ローカル座標系での位置に基づいて、第１のゲームに影響させたゲーム処理を行う第１ゲーム処理ステップと、第１のゲームのゲーム空間を第１エリアに表示させ、第２のゲームのゲーム空間を第２エリアに表示させる表示ステップを、コンピュータに実行させる。
【００１２】
第１の発明では、ゲームプログラムは、ゲーム処理に応じたゲーム画面を表示装置の表示領域に表示するゲーム装置のコンピュータに、表示エリア設定ステップと、第２ゲーム処理ステップと、第１の位置変換ステップと、第２の位置変換ステップと、判定ステップと、第１ゲーム処理ステップと、表示ステップを実行させる。
【００１３】
表示エリア設定ステップは、第１のゲームのゲーム空間を表示させるための第１エリアと、第２のゲームのゲーム空間を表示させるための第２エリアとの少なくとも２つのエリアを表示領域上に設定し、第１エリアのゲーム空間に第１ローカル座標系を、第２エリアのゲーム空間に第２ローカル座標系を定義する。第２ゲーム処理ステップは、第２のゲームにおいて、所定のゲーム処理を行い、ゲーム空間内の所定のオブジェクトである第２ゲームオブジェクトについて、第２ローカル座標系における座標を決定する。第１の位置変換ステップは、第２ゲームオブジェクトに関して、第２ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置に変換する。第２の位置変換ステップは、第２ゲームオブジェクトのワールド座標系での位置を、第１ローカル座標系での位置に変換する。判定ステップは、第２ゲームオブジェクトの位置が第１エリア上にあることを判定する。第１ゲーム処理ステップは、判定ステップで第１エリア上にあると判定された第２ゲームオブジェクトを、第１ローカル座標系での位置に基づいて、第１のゲームに影響させたゲーム処理を行う。表示ステップは、第１のゲームのゲーム空間を第１エリアに表示させ、第２のゲームのゲーム空間を第２エリアに表示させる。
【００１４】
第２の発明は、第１の発明に従属し、コンピュータに、第１エリアおよび第２エリアの間の位置関係および第１エリアおよび第２エリアの間の大小関係の少なくとも一方の関係を、第１ゲーム処理ステップの実行結果および第２ゲーム処理ステップの少なくとも一方の実行結果に基づいて変更し、当該変更に伴い、第１および第２ローカル座標とワールド座標との対応関係を変更する、エリア変更ステップをさらに実行させる。
【００１５】
第２の発明では、プログラムはコンピュータにエリア変更ステップをさらに実行させる。エリア変更ステップは、第１エリアおよび第２エリアの間の位置関係および第１エリアおよび第２エリアの間の大小関係の少なくとも一方の関係を、第１ゲーム処理ステップの実行結果および第２ゲーム処理ステップの少なくとも一方の実行結果に基づいて変更し、当該変更に伴い、第１および第２ローカル座標とワールド座標との対応関係を変更する。
【００１６】
第３の発明は、第１の発明に従属し、第１ゲーム処理ステップにおけるゲーム処理は、ゲーム操作のための第１操作データに基づいて実行され、第２ゲーム処理ステップにおけるゲーム処理は、ゲーム操作のための第２操作データに基づいて実行される。
【００１７】
第４の発明は、第３の発明に従属し、第１操作データは、ユーザの操作に基づいて入力されるリアルタイム操作データであり、第２操作データは、ユーザの操作に替えてゲームを進行させるために記憶媒体に記憶されたリプレイ操作データである。
【００１８】
第５の発明は、第４の発明に従属し、コンピュータにリアルタイム操作データをリプレイ操作データとして記憶媒体に記憶させる記憶ステップをさらに実行させる。
【００１９】
第５の発明では、プログラムはコンピュータに記憶ステップをさらに実行させる。記憶ステップは、リアルタイム操作データをリプレイ操作データとして記憶媒体に記憶させる。
【００２０】
第６の発明は、第５の発明に従属し、他のゲーム装置とリプレイ操作データを通信手段を通じて送受信する通信ステップを、コンピュータにさらに実行させる。
【００２１】
第６の発明では、プログラムはコンピュータに通信ステップをさらに実行させる。通信ステップは、他のゲーム装置とリプレイ操作データを通信手段を通じて送受信する。
【００２２】
第７の発明は、第１の発明に従属し、表示領域は第１画面および第２画面から構成され、第１エリアおよび第２エリアは第１画面および第２画面にそれぞれ対応する。
【００２３】
第８の発明は、第１の発明に従属し、コンピュータに、第１ゲーム処理において、ゲーム空間内の所定のオブジェクトである第１ゲームオブジェクトについて、第１ローカル座標系における座標をさらに決定させ、第１の位置変換ステップにおいて、第１ゲームオブジェクトの第１ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置にさらに変換させ、第２の位置変換ステップにおいて、第１ゲームオブジェクトのワールド座標系での位置を、第２ローカル座標系での位置にさらに変換させ、判定ステップにおいて、第１ゲームオブジェクトの位置が第２エリア上にあることをさらに判定させ、第２ゲーム処理ステップにおいて、判定ステップで第２エリア上にあると判定された第１ゲームオブジェクトを、第２ローカル座標系での位置に基づいて、第２のゲームに影響させたゲーム処理をさらに行わせる。
【００２４】
第９の発明は、第８の発明に従属し、表示エリア設定ステップは、第ｋ（ｋは３以上の自然数）のゲームのゲーム空間を表示させるための第ｋエリアを表示領域上にさらに設定し、第ｋエリアのゲーム空間に第ｋローカル座標系を定義するステップをさらに含み、第ｋのゲームにおいて、所定のゲーム処理を行う第ｋゲーム処理ステップを、コンピュータにさらに実行させる。
【００２５】
第１０の発明は、ゲーム処理に応じたゲーム画面を表示装置の表示領域に表示するゲーム装置であって、第１のゲームのゲーム空間を表示させるための第１エリアと、第２のゲームのゲーム空間を表示させるための第２エリアとの少なくとも２つのエリアを表示領域上に設定し、それぞれのゲーム空間に第１および第２ローカル座標系を定義する表示エリア設定手段と、第２のゲームにおいて、所定のゲーム処理に基づき、ゲーム空間内の所定のオブジェクトである第２ゲームオブジェクトについて、第２ローカル座標系における座標を決定する第２ゲーム処理手段と、第２ゲームオブジェクトに関して、第２ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置に変換する第１の位置変換手段と、第２ゲームオブジェクトのワールド座標系での位置を、第１ローカル座標系での位置に変換する第２の位置変換手段と、第２ゲームオブジェクトの位置が第１エリア上にあることを判定する判定手段と、判定手段で第１エリア上にあると判定された第２ゲームオブジェクトを、第１ローカル座標系での位置に基づいて、第１のゲームに影響させたゲーム処理を行う第１ゲーム処理手段と、第１のゲームのゲーム空間を第１エリアに表示させ、第２のゲームのゲーム空間を第２エリアに表示させる表示手段を備える。
【発明の効果】
【００２６】
この発明によれば、同時に実行される複数のゲーム処理の間で相互に影響を及ぼし合うことができる。また、プレイヤは、プレイヤが複数いないときであっても、過去のプレイヤとゲームをプレイできる。
【００２７】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２８】
図１を参照して、この発明の一実施例であるゲームシステム１０は、ゲーム装置１２およびコントローラ１４を含む。図示は省略するが、この実施例のゲーム装置１２は、最大４つのコントローラ１４と通信可能に設計されている。また、ゲーム装置１２と各コントローラ１４とは、無線によって接続される。たとえば、無線通信は、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格に従って実行されてもよい。さらには、有線で接続されてもよい。
【００２９】
ゲーム装置１２は、略直方体のハウジング１６を含み、ハウジング１６の前面にはディスクスロット１８が設けられる。ディスクスロット１８から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク２４が挿入されて、ハウジング１６内のディスクドライブ５４（図２参照）に装着される。図示は省略するが、ディスクスロット１８の周囲には、ＬＥＤと導光板とが配置され、様々な処理に応答させて、ディスクスロット１
８を点灯または点滅させることが可能である。
【００３０】
また、ゲーム装置１２のハウジング１６の前面の上部には、電源ボタン２０ａおよびリセットボタン２０ｂが設けられ、その下部には、イジェクトボタン２０ｃが設けられる。さらに、リセットボタン２０ｂとイジェクトボタン２０ｃとの間であり、ディスクスロット１８の近傍には、外部メモリカード用コネクタカバー２２が設けられる。この外部メモリカード用コネクタカバー２２の内側には、外部メモリカード用コネクタ６２（図２参照）が設けられ、図示しない外部メモリカード（以下、単に「メモリカード」という。）が挿入される。メモリカードは、光ディスク２４から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置１２の内部に設けられるフラッシュメモリ４４（図２参照）のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。さらに、ゲーム装置１２では、ゲーム以外の他のアプリケーションを実行することも可能であり、かかる場合には、メモリカードには当該他のアプリケーションのデータを保存することができる。
【００３１】
なお、メモリカードとしては、汎用のＳＤカードを用いることができるが、メモリスティックやマルチメディアカード（登録商標）のような他の汎用のメモリカードを用いることもできる。
【００３２】
図１では省略するが、ゲーム装置１２のハウジング１６の後面には、ＡＶケーブルコネクタ５８（図２参照）が設けられ、そのＡＶコネクタ５８を用いて、ＡＶケーブル２６を通してゲーム装置１２にモニタ２８およびスピーカ３０を接続する。このモニタ２８およびスピーカ３０は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル２６によって、ゲーム装置１２からの映像信号がカラーテレビのビデオ入力端子に入力され、ゲーム装置１２からの音声信号が音声入力端子に入力される。したがって、カラーテレビ（モニタ）２８の画面上にたとえば３次元（３Ｄ）ビデオゲームの仮想３次元ゲーム画像が表示され、左右のスピーカ３０からゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ２８の周辺（この実施例では、モニタ２８の上側）には、２つの赤外ＬＥＤ（マーカ）３２ａおよび３２ｂを備えるマーカ部３２が設けられる。このマーカ部３２は、電源線３４を通してゲーム装置１２に接続される。したがって、マーカ部３２には、ゲーム装置１２から電源が供給される。これによって、マーカ３２ａおよび３２ｂは発光し、それぞれモニタ２８の前方に向けて赤外光を出力する。
【００３３】
なお、ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置１２は、家庭用電源（商用電源）を、駆動に適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００３４】
このゲームシステム１０において、ユーザまたはプレイヤがゲーム（またはゲームに限らず、他のアプリケーション）をプレイするために、ユーザは電源スイッチ２０ａによってまずゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）のプログラムを記録している適宜の光ディスク２４を選択し、その光ディスク２４をゲーム装置１２のディスクドライブ５４にローディングする。応じて、ゲーム装置１２がその光ディスク２４に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始める。ユーザはゲーム装置１２に入力を与えるためにコントローラ１４を操作する。たとえば操作ボタンなどを含む入力手段３６のどれかの操作ボタンを操作することによってゲームもしくは他のアプリケー
ションをスタートさせる。また、入力手段３６に対する操作以外にも、コントローラ１４自体を動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３Ｄのゲーム世界におけるユーザの視点（カメラ位置）を変化させることができる。
【００３５】
ただし、ビデオゲームや他のアプリケーションのプログラムは、ゲーム装置１２の内部メモリ（フラッシュメモリ４４（図２参照））に記憶（インストール）しておき、当該内部メモリから実行するようにしてもよい。かかる場合には，光ディスク２４のような記憶媒体に記憶されたプログラムを内部メモリにインストールしてもよいし、ダウンロードされたプログラムを内部メモリにインストールしてもよい。
【００３６】
図２は図１実施例のゲームシステム１０の電気的な構成を示すブロック図である。図示は省略するが、ハウジング１６内の各コンポーネントは、プリント基板に実装される。図２に示すように、ゲーム装置１２には、ＣＰＵ４０が設けられ、ゲームプロセッサとして機能する。また、ＣＰＵ４０には、システムＬＳＩ４２が接続される。このシステムＬＳＩ４２には、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８、ディスクドライブ５４およびＡＶ  ＩＣ５６が接続される。
【００３７】
外部メインメモリ４６は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、ＣＰＵ４０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ４８は、いわゆるブートＲＯＭであり、ゲーム装置１２の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ５４は、光ディスク２４からプログラムやテクスチャデータ等を読み出し、ＣＰＵ４０の制御の下で、後述する内部メインメモリ４２ｅまたは外部メインメモリ４６に書き込む。
【００３８】
システムＬＳＩ４２には、入出力プロセッサ４２ａ、ＧＰＵ(Graphics Processor Unit)４２ｂ，ＤＳＰ(Digital Signal Processor)４２ｃ，ＶＲＡＭ４２ｄおよび内部メイン
メモリ４２ｅが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【００３９】
入出力プロセッサ（Ｉ／Ｏプロセッサ）４２ａは、データの送受信を実行したり、データのダウンロードを実行したりする。
【００４０】
ＧＰＵ４２ｂは、描画手段の一部を形成し、ＣＰＵ４０からのグラフィクスコマンド(
作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵ
４０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ４２ｂに与える。
【００４１】
図示は省略するが、上述したように、ＧＰＵ４２ｂにはＶＲＡＭ４２ｄが接続される。ＧＰＵ４２ｂが作画命令を実行するにあたって必要なデータ（画像データ：ポリゴンデータやテクスチャデータなどのデータ）は、ＧＰＵ４２ｂがＶＲＡＭ４２ｄにアクセスして取得する。ただし、ＣＰＵ４０は、描画に必要な画像データを、ＧＰＵ４２ｂを介してＶＲＡＭ４２ｄに書き込む。ＧＰＵ４２ｂは、ＶＲＡＭ４２ｄにアクセスして描画のためのゲーム画像データを作成する。
【００４２】
なお、この実施例では、ＧＰＵ４２ｂがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、ＧＰＵ４２ｂは当該任意のアプリケーションについての画像データを生成する。
【００４３】
また、ＤＳＰ４２ｃは、オーディオプロセッサとして機能し、内部メインメモリ４２ｅや外部メインメモリ４６に記憶されるサウンドデータや音波形（音色）データを用いて、スピーカ３０から出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【００４４】
上述のように生成されたゲーム画像データおよびオーディオデータは、ＡＶ  ＩＣ５６によって読み出され、ＡＶコネクタ５８を介してモニタ２８およびスピーカ３０に出力される。したがって、ゲーム画面がモニタ２８に表示され、ゲームに必要な音（音楽）がスピーカ３０から出力される。
【００４５】
また、入出力プロセッサ４２ａには、フラッシュメモリ４４、無線通信モジュール５０および無線コントローラモジュール５２が接続されるとともに、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。また、無線通信モジュール５０にはアンテナ５０ａが接続され、無線コントローラモジュール５２にはアンテナ５２ａが接続される。
【００４６】
入出力プロセッサ４２ａは、無線通信モジュール５０を介して、ネットワーク（図示せず）に接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ４２ａは、定期的にフラッシュメモリ４４にアクセスし、ネットワークへ送信する必要があるデータ（「送信データ」とする）の有無を検出し、当該送信データが有る場合には、無線通信モジュール５０およびアンテナ５０ａを介してネットワークに送信する。また、入出力プロセッサ４２ａは、他のゲーム装置から送信されるデータ（「受信データ」とする）を、ネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、当該受信データをフラッシュメモリ４４に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ４２ａは、ダウンロードサーバ（図示せず）からダウンロードしたデータ（ダウンロードデータとする）をネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、そのダウンロードデータをフラッシュメモリ４４に記憶することもできる。
【００４７】
また、入出力プロセッサ４２ａは、コントローラ１４から送信される入力データをアンテナ５２ａおよび無線コントローラモジュール５２を介して受信し、内部メインメモリ４２ｅまたは外部メインメモリ４６のバッファ領域に記憶（一時記憶）する。入力データは、ＣＰＵ４０の処理（たとえば、ゲーム処理）によって利用された後、バッファ領域から消去される。
【００４８】
なお、この実施例では、上述したように、無線コントローラモジュール５２は、Ｂｌｕｅｔｏｏｔｈ規格に従ってコントローラ１４との間で通信を行う。
【００４９】
さらに、入出力プロセッサ４２ａには、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。拡張コネクタ６０は、ＵＳＢやＳＣＳＩのようなインタフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ１４とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ６０に有線ＬＡＮアダプタを接続し、無線通信モジュール５０に代えて当該有線ＬＡＮを利用することもできる。メモリカード用コネクタ６２には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ４２ａは、拡張コネクタ６０やメモリカード用コネクタ６２を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００５０】
詳細な説明は省略するが、図１にも示したように、ゲーム装置１２（ハウジング１６）には、電源ボタン２０ａ，リセットボタン２０ｂおよびイジェクトボタン２０ｃが設けられる。電源ボタン２０ａは、システムＬＳＩ４２に接続される。この電源ボタン２０ａがオンされると、システムＬＳＩ４２には、ゲーム装置１２の各コンポーネントに図示しな
いＡＣアダプタを経て電源が供給され、通常の通電状態となるモード（「通常モード」と呼ぶこととする）が設定される。一方、電源ボタン２０ａがオフされると、システムＬＳＩ４２には、ゲーム装置１２の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード（以下、「スタンバイモード」という）が設定される。
【００５１】
この実施例では、スタンバイモードが設定された場合には、システムＬＳＩ４２は、入出力プロセッサ４２ａ、フラッシュメモリ４４、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８および無線通信モジュール５０、無線コントローラモジュール５２以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、この実施例では、スタンバイモードにおいて、ＣＰＵ４０がアプリケーションを実行することはない。
【００５２】
なお、システムＬＳＩ４２には、スタンバイモードにおいても電源が供給されるが、ＧＰＵ４２ｂ、ＤＳＰ４２ｃおよびＶＲＡＭ４２ｄへのクロックの供給を停止することにより、これらを駆動しないようにして、消費電力を低減するようにしてある。
【００５３】
また、図示は省略するが、ゲーム装置１２のハウジング１６内部には、ＣＰＵ４０やシステムＬＳＩ４２などのＩＣの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
【００５４】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン２０ａがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【００５５】
また、通常モードとスタンバイモードとの切り替えは、コントローラ１４の電源スイッチ８６（図３）のオン／オフの切り替えによって、遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール５２ａへの電源供給を行わない設定にしてもよい。
【００５６】
リセットボタン２０ｂもまた、システムＬＳＩ４２に接続される。リセットボタン２０ｂが押されると、システムＬＳＩ４２は、ゲーム装置１２の起動プログラムを再起動する。イジェクトボタン２０ｃは、ディスクドライブ５４に接続される。イジェクトボタン２０ｃが押されると、ディスクドライブ５４から光ディスク２４が排出される。
【００５７】
図３（Ａ）および図３（Ｂ）は、コントローラ１４の外観の一例を示す。図３（Ａ）はコントローラ１４の正面、上面および右側面を見せる斜視図であり、図３（Ｂ）はコントローラ１４の背面、下面および左側面を見せる斜視図である。
【００５８】
図３（Ａ）および図３（Ｂ）を参照して、コントローラ１４は、たとえばプラスチック成型によって形成されたハウジング７０を有している。ハウジング７０は、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング７０（コントローラ１４）には、前述のように入力手段（複数のボタンないしスイッチ）３６が設けられる。具体的には、図３（Ａ）に示すように、ハウジング７０の上面には、十字キー７２，１ボタン７４，２ボタン７６，Ａボタン７８，−（マイナス）ボタン８０，ＨＯＭＥボタン８２，＋（プラス）ボタン８４および電源スイッチ８６が設けられる。また、図３（Ｂ）に示すように、ハウジング７０の下面に傾斜面が形成されており、この傾斜面に、Ｂトリガースイッチ８８が設けられる。
【００５９】
十字キー７２は、４方向プッシュスイッチであり、矢印で示す４つの方向、前（または上）、後ろ（または下）、右および左の操作部を含む。この操作部のいずれか１つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト（プレイ
ヤキャラクタまたはプレイヤオブジェクト）の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００６０】
１ボタン７４および２ボタン７６は、それぞれ、押しボタンスイッチである。たとえば３次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。または、１ボタン７４および２ボタン７６は、Ａボタン７８およびＢトリガースイッチ８８と同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
【００６１】
Ａボタン７８は、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。また、Ａボタン７８は、ゲーム画面上でポインタ（指示画像）が指示するアイコンないしボタン画像の決定を指示するために使用される。たとえば、アイコンやボタン画像が決定されると、これらに対応して予め設定されている指示ないし命令（ゲームのコマンド）を入力することができる。
【００６２】
−ボタン８０、ＨＯＭＥボタン８２、＋ボタン８４および電源スイッチ８６もまた、押しボタンスイッチである。−ボタン８０は、ゲームモードを選択するために使用される。ＨＯＭＥボタン８２は、ゲームメニュー（メニュー画面）を表示するために使用される。＋ボタン８４は、ゲームを開始（再開）したり、一時停止したりするなどのために使用される。電源スイッチ８６は、ゲーム装置１２の電源を遠隔操作によってオン／オフするために使用される。
【００６３】
なお、この実施例では、コントローラ１４自体をオン／オフするための電源スイッチは設けておらず、コントローラ１４の入力手段３６のいずれかを操作することによってコントローラ１４はオンとなり、一定時間（たとえば、３０秒）以上操作しなければ自動的にオフとなるようにしてある。
【００６４】
Ｂトリガースイッチ８８もまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ１４で選択した位置を指定したりするために使用される。また、Ｂトリガースイッチ８８を押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Ｂトリガースイッチ８８は、通常のＢボタンと同様に機能し、Ａボタン７８によって決定したアクションやコマンドなどを取り消すなどのために使用される。
【００６５】
また、図３（Ａ）に示すように、ハウジング７０の後端面に外部拡張コネクタ９０が設けられ、また、図３（Ｂ）に示すように、ハウジング７０の上面であり、後端面側にはインジケータ９２が設けられる。外部拡張コネクタ９０は、コントローラ１４とは異なる拡張コントローラ（図示せず）を接続するためなどに使用される。インジケータ９２は、たとえば、４つのＬＥＤで構成される。たとえば、インジケータ９２では、４つのうちのいずれか１つを点灯させることにより、点灯したＬＥＤに応じて、コントローラ１４の識別情報（コントローラ番号）を示すことができる。また、インジケータ９２では、点灯させるＬＥＤの個数によってコントローラ１４の電池残量を示すこともできる。
【００６６】
さらに、コントローラ１４は、撮像情報演算部１０８（図４参照）を有しており、図３（Ｂ）に示すように、ハウジング７０の先端面には撮像情報演算部１０８の光入射口９４
が設けられる。また、コントローラ１４は、スピーカ１１４（図４参照）を有しており、このスピーカ１１４は、図３（Ａ）に示すように、ハウジング７０の上面であり、１ボタン７４とＨＯＭＥボタン８２との間に設けられる音抜き孔９６に対応して、ハウジング７０内部に設けられる。
【００６７】
なお、図３（Ａ）および図３（Ｂ）に示したコントローラ１４の形状や、各入力手段３６の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変されてもよい。
【００６８】
図４はコントローラ１４の電気的な構成を示すブロック図である。この図４を参照して、コントローラ１４はプロセッサ１００を含み、このプロセッサ１００には、内部バス（図示せず）によって、外部拡張コネクタ９０、入力手段３６、メモリ１０２、加速度センサ１０４、無線モジュール１０６、撮像情報演算部１０８、ＬＥＤ１１０（インジケータ９２）、バイブレータ１１２、スピーカ１１４および電源回路１１６が接続される。また、無線モジュール１０６には、アンテナ１１８が接続される。
【００６９】
なお、簡単のため、図４では省略するが、上述したように、インジケータ９２は４つのＬＥＤ１１０によって構成される。
【００７０】
プロセッサ１００は、コントローラ１４の全体制御を司り、入力手段３６、加速度センサ１０４および撮像情報演算部１０８によって入力された情報（入力情報）を、入力データとして無線モジュール１０６およびアンテナ１１８を介してゲーム装置１２に送信（入力）する。このとき、プロセッサ１００は、メモリ１０２を作業領域ないしバッファ領域として用いる。また、上述した入力手段３６（７２‐８４）からの操作信号（操作データ）は、プロセッサ１００に入力され、プロセッサ１００は操作データを一旦メモリ１０２に記憶する。
【００７１】
加速度センサ１０４は、図３に示すようにコントローラ１４の縦方向（ｙ軸方向）、横方向（ｘ軸方向）および前後方向（ｚ軸方向）の３軸で各々の加速度を検出する。この加速度センサ１０４は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【００７２】
たとえば、加速度センサ１０４は、第１所定時間毎に、ｘ軸，ｙ軸，ｚ軸の各々についての加速度（ａｘ，ａｙ，ａｚ）を検出し、検出した加速度のデータ（加速度データ）をプロセッサ１００に入力する。たとえば、加速度センサ１０４は、各軸方向の加速度を、−２．０Ｇ〜２．０Ｇ（Ｇは重力加速度である。以下、同じ。）の範囲で検出する。プロセッサ１００は、加速度センサ１０４から与えられる加速度データを、第２所定時間毎に検出し、一旦メモリ１０２に記憶する。
【００７３】
プロセッサ１００は、操作データ、加速度データおよび後述するマーカ座標データの少なくとも１つを含む入力データを作成し、作成した入力データを、第３所定時間（たとえば、５ｍｓｅｃ）毎にゲーム装置１２に送信する。
【００７４】
なお、図３では省略したが、この実施例では、加速度センサ１０４は、ハウジング７０内部の基板上の十字キー７２が配置される付近に設けられる。
【００７５】
ここで、加速度センサ１０４から出力される加速度データに基づいて、ゲーム装置１２のプロセッサ（たとえば、ＣＰＵ４０）またはコントローラ１４のプロセッサ（たとえば、プロセッサ１００）などのコンピュータが処理を行うことによって、コントローラ１４に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。
【００７６】
たとえば、コントローラ１４に１軸の加速度センサ１０４を搭載し、当該コントローラ１４が静的な状態であることを前提としてコンピュータ側で処理する場合、すなわち、加速度センサ１０４によって検出される加速度が重力加速度のみであるとして処理する場合、コントローラ１４が現実に静的な状態であれば、検出された加速度データに基づいてコントローラ１４の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ１０４の検出軸が鉛直下方向である状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかを知ることもできる。
【００７７】
また、コントローラ１４に多軸の加速度センサ１０４を搭載する場合には、さらに各軸の加速度データに対して処理を施すことによって、重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ１０４の出力に基づいて、プロセッサ１００がコントローラ１４の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータの算出処理を行うことなく、加速度センサ１０４からの出力に基づいて、おおよその傾きを推定できるような処理としてもよい。このように、加速度センサ１０４をプロセッサ１００と組み合わせることによって、コントローラ１４の傾き、姿勢または位置を判定することができる。
【００７８】
一方、加速度センサ１０４が動的な状態を前提とする場合には、重力加速度成分に加えて加速度センサの動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動きの方向などを知ることができる。具体的には、加速度センサ１０４を搭載するコントローラ１４がユーザの手で動的に加速されて動かされている場合に、加速度センサ１０４によって生成される加速度データを処理することによって、コントローラ１４の様々な動きおよび／または位置を算出することができる。
【００７９】
なお、加速度センサ１０４が動的な状態であることを前提とする場合であっても、加速度センサ１０４の動きに応じた加速度を所定の処理により除去すれば、重力方向に対する傾きを知ることができる。他の実施例では、加速度センサ１０４は、加速度データをプロセッサ１００に出力する前に、内蔵の加速度検出手段から出力される加速度信号（加速度データ）に対して所望の処理を行うための、組込み式の信号処理装置また他の種類の専用の処理装置を備えてもよい。たとえば、組込み式または専用の処理装置は、加速度センサ１０４が静的な加速度（たとえば、重力加速度）を検出するためのものである場合、検知された加速度データをそれに相当する傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００８０】
無線モジュール１０６は、たとえばＢｌｕｅｔｏｏｔｈの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ１１８から放射する。つまり、入力データは、無線モジュール１０６によって微弱電波信号に変調されてアンテナ１１８（コントローラ１４）から送信される。この微弱電波信号が上述したゲーム装置１２に設けられた無線コントローラモジュール５２によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置１２（ＣＰＵ４０）は、コントローラ１４からの入力データを取得することができる。そして、ＣＰＵ４０は、取得した入力データとアプリケーションプログラム（ゲームプログラム）とに従ってアプリケーションの処理（ゲーム処理）を行う。
【００８１】
さらに、上述したように、コントローラ１４には、撮像情報演算部１０８が設けられる。この撮像情報演算部１０８は、赤外線フィルタ１０８ａ、レンズ１０８ｂ、撮像素子１０８ｃおよび画像処理回路１０８ｄによって構成される。赤外線フィルタ１０８ａは、コントローラ１４の前方から入射する光から赤外線のみを通過させる。上述したように、モ
ニタ２８の表示画面近傍（周辺）に配置されるマーカ３２ａおよび３２ｂは、モニタ２８の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ１０８ａを設けることによってマーカ３２ａおよび３２ｂの画像をより正確に撮像することができる。レンズ１０８ｂは、赤外線フィルタ１０８ａを透過した赤外線を集光して撮像素子１０８ｃへ出射する。撮像素子１０８ｃは、たとえばＣＭＯＳセンサあるいはＣＣＤのような固体撮像素子であり、レンズ１０８ｂによって集光された赤外線を撮像する。したがって、撮像素子１０８ｃは、赤外線フィルタ１０８ａを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子１０８ｃによって撮像された画像を撮像画像と呼ぶ。撮像素子１０８ｃによって生成された画像データは、画像処理回路１０８ｄで処理される。画像処理回路１０８ｄは、撮像画像内における撮像対象（マーカ３２ａおよび３２ｂ）の位置を算出し、第４所定時間毎に、当該位置を示す各座標値を撮像データ（後述するマーカ座標データ）としてプロセッサ１００に出力する。なお、画像処理回路１０８ｄにおける処理については後述する。
【００８２】
図５は、コントローラ１４を用いてゲームプレイするときの状態を概説する図解図である。図５に示すように、ゲームシステム１０でコントローラ１４を用いてゲームをプレイする際、プレイヤは、一端がコントローラ１４に結び付けられたストラップ１２０を一方の手の手首に巻いた状態で、その同じ手の手のひらでコントローラ１４を把持する。厳密に言うと、プレイヤは、コントローラ１４の先端面（図３で示す撮像情報演算部１０８が撮像する光の入射口９４側）がマーカ３２ａおよび３２ｂの方を向く状態でコントローラ１４を把持する。これらマーカ３２ａおよび３２ｂは、図示したように、モニタ２８の画面の横（水平）方向と平行に配置されている。この状態で、プレイヤは、コントローラ１４が指示する画面上の位置を変更したり、コントローラ１４と各マーカ３２ａおよび３２ｂとの距離を変更したりすることによってゲーム操作を行う。
【００８３】
図６は、マーカ３２ａおよび３２ｂと、コントローラ１４との視野角を説明するための図である。図６に示すように、マーカ３２ａおよび３２ｂは、それぞれ、視野角θ１の範囲で赤外光を放射する。また、撮像情報演算部１０８の撮像素子１０８ｃは、コントローラ１４の視線方向を中心とした視野角θ２の範囲で入射する光を受光することができる。たとえば、マーカ３２ａおよび３２ｂの視野角θ１は、共に３４°（半値角）であり、一方、撮像素子１０８ｃの視野角θ２は４１°である。プレイヤは、撮像素子１０８ｃが２つのマーカ３２ａおよび３２ｂからの赤外光を受光することが可能な位置および向きとなるように、コントローラ１４を把持する。具体的には、撮像素子１０８ｃの視野角θ２の中にマーカ３２ａおよび３２ｂの少なくとも一方が存在し、かつ、マーカ３２ａまたは３２ｂの少なくとも一方の視野角θ１の中にコントローラ１４が存在する状態となるように、プレイヤはコントローラ１４を把持する。この状態にあるとき、コントローラ１４は、マーカ３２ａおよび３２ｂの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ１４の位置および向きを変化させることによってゲーム操作を行うことができる。
【００８４】
なお、コントローラ１４の位置および向きがこの範囲外となった場合、コントローラ１４の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、必要な場合、上記範囲を「操作可能範囲」と呼ぶ。
【００８５】
操作可能範囲内でコントローラ１４が把持される場合、撮像情報演算部１０８によって各マーカ３２ａおよび３２ｂの画像が撮像される。すなわち、撮像素子１０８ｃによって得られる撮像画像には、撮像対象である各マーカ３２ａおよび３２ｂの画像（対象画像）が含まれる。図７は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路１０８ｄは、各マーカ３２ａおよび３２ｂの撮像画像における位置を表す座標（マーカ座標）を算出する。なお、ここで算出される座標は、撮像画像（ゲーム画面）の左上端を原点Ｏとするワールド座標系（Ｘ‐Ｙ座標系：後述）に従う。
【００８６】
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路１０８ｄは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路１０８ｄは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である２つのマーカ３２ａおよび３２ｂに対応する画像３２ａ’および３２ｂ’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像である画像３２ａ’および３２ｂ’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【００８７】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路１０８ｄは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子１０８ｃの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子１０８ｃによって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、マーカ座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。
【００８８】
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをＹ軸正方向とし、右向きをＸ軸正方向とする座標系（ＸＹ座標系）で表現されるものとする。
【００８９】
また、対象画像が正しく検出される場合には、判定処理によって２つの高輝度部分が対象画像として判定されるので、２箇所のマーカ座標が算出される。画像処理回路１０８ｄは、算出された２箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ（マーカ座標データ）は、上述したように、プロセッサ１００によって入力データに含まれ、ゲーム装置１２に送信される。
【００９０】
ゲーム装置１２（ＣＰＵ４０）は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ２８の画面上におけるコントローラ１４の指示位置Ｐ（指示座標ＰＸ，ＰＹ）と、コントローラ１４からマーカ３２ａおよび３２ｂまでの各距離とを算出することができる。具体的には、２つのマーカ座標の中点の位置から、コントローラ１４の向いている位置すなわち指示位置が算出される。また、撮像画像における対象画像間の距離が、コントローラ１４と、マーカ３２ａおよび３２ｂとの距離に応じて変化するので、２つのマーカ座標間の距離を算出することによって、ゲーム装置１２はコントローラ１４とマーカ３２ａおよび３２ｂとの間の距離を把握できる。
【００９１】
ゲーム装置１２を用いた通信システム１２０の一例が図８に示される。図８に示すように、通信システム１２０は、複数のゲーム装置１２を含み、各ゲーム装置１２はインターネットやＬＡＮのようなネットワーク１２６を介して、メールサーバ１２２および配信サーバ１２４に接続される。このようなネットワーク１２６に接続されることによって、メールサーバ１２２を介したメールの送受信や配信サーバ１２４からのデータのダウンロードを行うことが可能となる。
【００９２】
ゲーム装置１２同士は、ネットワーク１２６を介して通信可能である。プレイヤが入力したメッセージやゲーム装置１２で生成したメッセージは、電子メールの形式に変換され、ネットワーク１２６およびメールサーバ１２２を介して、ゲーム装置１２同士で送受信（やり取り）される。このため、メールサーバ１２２は、汎用的なメールサーバを用いることができる。したがって、ゲーム装置１２は、ＰＣや携帯電話機のような端末（他のゲーム装置１２以外の端末）との間でメッセージすなわち電子メールをやり取りすることも可能である。また、電子メールにゲームデータを添付することで、他のゲーム装置１２との間でゲームデータ（後述するリプレイデータなど）をやり取りすることができる。
【００９３】
以上のように構成されたゲームシステム１０で同時に複数のゲームを行う場合（以下、平行ゲームと称する）の処理について、以下に説明する。最初、並行ゲームの概要を説明しておく。ここでは３つのゲーム処理を同時に実行するもので、これら３つのゲーム処理にそれぞれ対応する３つの画像が単一のゲーム画面（２８）内に表示される。
【００９４】
３つのゲーム処理は、共通のルールに従うものでも、互いに異なるルールに従うものでもよい。すなわち、第１〜第３の３つのゲーム処理は、通常は第１〜第３の３つのゲームにそれぞれ対応するが、３つのゲームのうちいずれか２つまたは１つに対応してもよい。
【００９５】
また、３つのゲーム処理の各々は、通常は現在のユーザの操作に基づいて実行されるが、過去の操作のリプレイデータに基づいて実行されてもよい。したがって、２人または３人で同時にプレイしても、１人でプレイしてもよい。１人でプレイする場合には、他の２つのゲーム処理の各々は、過去の操作、つまり過去の自分の操作または過去の他人の操作のリプレイデータに基づいて実行される。また、他の２つのゲーム処理のうち、１つだけをリプレイに基づいて行い、もう１つは実行しないようにしてもよい。
【００９６】
３人で３つのゲームをプレイする場合のゲーム画面の一例を図９に示す。図９のゲーム画面では、３つのゲーム（第１〜第３ゲーム）が３人（プレイヤ１〜３）の現在の操作（リアルタイムプレイデータ）に基づいて進行する。
【００９７】
１人で３つのゲームをプレイする場合のゲーム画面の一例を図１０に示す。図１０のゲーム画面では、第１ゲーム（Ｗ１）だけがプレイヤ１の現在の操作に基づいて進行し、第２および第３のゲームは過去の操作（リプレイデータ）に基づいて進行する。ここでは、過去の操作はプレイヤ１自身の操作であるとする。したがってプレイヤ１は、過去の自分自身とプレイすることになる。
【００９８】
図９または図１０を参照して、このゲーム画面は３つのウィンドウＷ１〜Ｗ３を含む。ここでは、第１ゲームの画像がウィンドウＷ１に表示され、第２ゲームの画像がウィンドウＷ２に表示され、そして第３ゲームの画像がウィンドウＷ３に表示される。また、ウィンドウＷ１〜Ｗ３にはプレイヤ１〜プレイヤ３が割り当てられる。したがって、第１ゲームはプレイヤ１の現在の操作に基づいて進行し、第２ゲームはプレイヤ２の現在の操作に基づいて進行し、そして第３ゲームはプレイヤ３の現在の操作に基づいて進行する。
【００９９】
ゲーム画面にはまた、ゲーム処理の進行状況を示す数値、具体的にはスコア，倍率およびステージをそれぞれ示す３つの数値がウィンドウ毎に（すなわちゲーム処理毎に）表示される。各ウィンドウに割り当てられた３つの数値は、対応するゲーム処理の進行につれて更新される。
【０１００】
第１ゲームの進行例を図１１（Ａ）〜図１１（Ｃ）に示す。図１１（Ａ）を参照して、ゲーム画像は、円Ｃと、円Ｃに沿って移動するプレイヤオブジェクトＰＯと、円Ｃの内外を任意の方向に移動する敵オブジェクトＥＯとを含む。プレイヤオブジェクトＰＯの移動は、コントローラ１４からの操作データ（リアルタイムデータ）またはフラッシュメモリ４４などに格納されたリプレイデータに基づく。たとえば、Ａボタン７８への操作に応じて、プレイヤオブジェクトＰＯの移動方向が反転するとともに、飛び跳ねるなどの挙動をする。プレイヤオブジェクトＰＯが敵オブジェクトＥＯと衝突すると（図１１（Ｂ）参照）、敵オブジェクトＥＯは爆発し、破片Ｆｒが周囲に飛び散る（図１１（Ｃ）参照）。スコア，倍率およびステージは、こうして爆破した敵オブジェクトの個数などに基づいて算出される。
【０１０１】
第２ゲームの進行例を図１２（Ａ）〜図１２（Ｃ）に示す。図１２（Ａ）を参照して、ゲーム画像は、その一方端を中心に回転する棒Ｓと、棒Ｓの周辺を任意の方向に移動する敵オブジェクトＥＯとを含む。棒Ｓの移動は、上記と同様のリアルタイムデータまたはリプレイデータに基づいて制御される。たとえば、Ａボタン７８への操作に基づき、操作中は位置固定状態、操作解除時には移動可能状態というように状態を切り替える。位置固定状態のときには棒Ｓはその場で回転し、移動可能状態のときには回転の遠心力や慣性に基づいた処理によって、棒Ｓが回転しながらゲーム空間内を移動したりする。棒Ｓが敵オブジェクトＥＯと衝突すると（図１２（Ｂ）参照）、敵オブジェクトＥＯは棒Ｓとは垂直な方向に弾き飛ばされる（図１２（Ｃ）参照）。スコア，倍率およびステージは、こうして弾き飛ばした敵オブジェクトの個数などに基づいて算出される。
【０１０２】
第３ゲームの進行例を図１３（Ａ）〜図１３（Ｃ）に示す。図１３（Ａ）を参照して、ゲーム画像は、頭Ｈおよび尻尾Ｔを持ったプレイヤオブジェクトＰＯと、プレイヤオブジェクトＰＯの周辺に配置される敵オブジェクトＥＯとを含む。プレイヤオブジェクトＰＯの向きつまり頭Ｈの位置は、上記と同様のリアルタイムデータまたはリプレイデータに基づいて変化する。具体的には、頭Ｈは十字キー操作に応じて位置を変える。頭Ｈが敵オブジェクトＥＯに隣接すると（図１３（Ｂ）参照）、敵オブジェクトＥＯは炎上し、これによる爆風Ｂｌが発生する（図１３（Ｃ）参照）。スコア，倍率およびステージは、こうして焼き払った敵オブジェクトの個数などに基づいて算出される。
【０１０３】
このような第１〜第３ゲームが並列に進行するとき、各ゲームは他のゲームから影響を受ける。ゲーム間で作用する影響の一例を図１４（Ａ）〜図１４（Ｃ）に示す。図１４（Ａ）および図１４（Ｂ）を参照して、第２ゲームの画面内で弾き飛ばされた敵オブジェクトＥＯは、ウィンドウＷ２およびＷ１の間の境界Ｂ１を越え、第１ゲームの画面内に入り込む。図１４（Ｃ）を参照して、第１ゲームの画面内では、敵オブジェクトＥＯの進路上に別の敵オブジェクトＥＯが存在しており、両者は衝突して爆発する。
【０１０４】
ゲーム間で作用する影響の他の一例を図２９ （Ａ）〜図２９（Ｃ）に示す。図２９（Ａ）を参照して、ウィンドウＷ２内のプレイヤオブジェクトＰＯは、Ａボタンが開放されている期間、自身の回転によってウィンドウＷ１側へと移動する。一方、ウィンドウＷ１内には、ウィンドウＷ２との境界Ｂ１の近傍に敵オブジェクトＥＯがある。図２９（Ｂ）を参照して、プレイヤは、プレイヤオブジェクトＰＯがこの敵オブジェクトＥＯに対して適切な位置にきたタイミングで、Ａボタンを押下する。応じて棒Ｓは、図２９（Ｃ）に示すように、その一方端を中心に回転をし続け、その他方端が境界Ｂ１を越えてウィンドウＷ１内の敵オブジェクトＥＯと衝突する。
【０１０５】
ゲーム間で作用する影響のその他の一例を図１５（Ａ）〜図１５（Ｃ）に示す。図１５（Ａ）および図１５（Ｂ）を参照して、第１ゲームの画面内で爆発により飛散した破片Ｆｒの１つは、まずウィンドウＷ１およびＷ２の間の境界Ｂ１を越え、第２ゲームの画面内に入り込む。第２ゲームの画面内では、越境してきた破片Ｆｒの進路上にオブジェクトは存在しない。このため破片Ｆｒは、第２画面を素通りし、その後ウィンドウＷ１およびＷ２の間の境界Ｂ１を越えて第３ゲームの画面内に入り込む。第３ゲームの画面内では、破片Ｆｒの進路上に敵オブジェクトＥＯが存在しており、敵オブジェクトＥＯは破片Ｆｒを受けて爆発する。このように、影響は、第２ゲームで隔てられた第１ゲームおよび第３ゲームの間でも作用する。
【０１０６】
ゲーム間で作用する影響のその他の一例を図１６（Ａ）〜図１６（Ｃ）に示す。図１６（Ａ）を参照して、図１３（Ｃ）に示した敵オブジェクトＥＯの炎上による爆風Ｂｌは、周囲に拡散し、ウィンドウＷ３およびＷ２の間の境界Ｂ２を越えて第２ゲームの画面内に入り込む。第２ゲームの画面内では、境界Ｂ２の近傍に敵オブジェクトＥＯがあり、爆風Ｂｌはこの敵オブジェクトＥＯに到達する。図１７（Ｃ）を参照して、敵オブジェクトＥＯは、爆風Ｂｌを受けて発火し、焼失する。
【０１０７】
ところで、３つのウィンドウＷ１〜Ｗ３の間の大小関係および上下方向（Ｙ方向）の位置関係は、３つのゲーム処理の間の進み具合の違いにより変化する。具体的には、ウィンドウ間の大小関係はゲーム処理間の倍率の違いにより変化し、ウィンドウ間の位置関係（重心位置の上下関係）はゲーム処理間のステージの違いにより変化する。なお、大小関係が変化するとき、３つのウィンドウの横幅の合計は一定に保たれる。
【０１０８】
スコア，倍率およびステージが３ゲーム間で異なる場合のゲーム画面の一例を図１７に示す。図１７を参照して、倍率は、第１ゲーム（Ｗ１）および第３ゲーム（Ｗ３）の各々では“９”で、第２ゲームでは“１”なので、ウィンドウＷ１およびＷ３が同じ大きさであり、ウィンドウＷ２はこれより小さい。ステージは、第１〜第３ゲームでそれぞれ“１２”，“０１”および“０６”なので、ウィンドウＷ１の重心が最も高い位置にあり、次に高いのがウィンドウＷ３で、最後はウィンドウＷ２となる。
【０１０９】
以上のような並列ゲームでは、図１８に示すようなワールド座標系および第１〜第３の３つのローカル座標系が利用される。図１８を参照して、ゲーム画面（２８）上の任意の点Ｐに対して、ゲーム画面の左上端を原点Ｏとするワールド座標系（Ｘ‐Ｙ座標系）が定義され、“Ｐ（Ｘ，Ｙ）”のように記述される。第１ゲームのゲーム空間に関しては、ウィンドウＷ１の左上端を原点ｏ１とする第１ローカル座標系（ｘ１‐ｙ１座標系）が定義され、“Ｐ（ｘ１，ｙ１）”のように記述される。同様に、第２ゲームのゲーム空間に関してウィンドウＷ２の左上端を原点ｏ２とする第２ローカル座標系（ｘ２‐ｙ２座標系）が定義され、“Ｐ（ｘ２，ｙ２）”のように記述される。そして第３ゲームのゲーム空間に関してウィンドウＷ３の左上端を原点ｏ３とする第３ローカル座標系（ｘ３‐ｙ３座標系）が定義され、“Ｐ（ｘ３，ｙ３）”のように記述される。
【０１１０】
原点ｏ１のワールド座標を（Ｘ１，Ｙ１）とすると、（Ｘ，Ｙ）と（ｘ１，ｙ１）との間には、次式（１）の関係が成り立つ。
【０１１１】
（ｘ１，ｙ１）＝（Ｘ−Ｘ１，Ｙ−Ｙ１）  …（１）
原点ｏ２のワールド座標を（Ｘ２，Ｙ２）とすると、（Ｘ，Ｙ）と（ｘ２，ｙ２）との間には、次式（２）の関係が成り立つ。
【０１１２】
（ｘ２，ｙ２）＝（Ｘ−Ｘ２，Ｙ−Ｙ２）  …（２）
原点ｏ３のワールド座標を（Ｘ３，Ｙ３）とすると、（Ｘ，Ｙ）と（ｘ３，ｙ３）との間には、次式（３）の関係が成り立つ。
【０１１３】
（ｘ３，ｙ３）＝（Ｘ−Ｘ３，Ｙ−Ｙ３）  …（３）
また、ウィンドウＷ１のサイズは“ｄｘ１×ｄｙ１”のように記述され、ウィンドウＷ２のサイズは“ｄｘ２×ｄｙ２”のように記述され、そしてウィンドウＷ３のサイズは“ｄｘ３×ｄｙ３”のように記述される。
【０１１４】
並行ゲームを行う場合の内部メインメモリ４２ｅのメモリマップを図１９に示す。図１９を参照して、メインメモリ４２ｅは、プログラム領域１３０およびデータ領域１４０を含む。プログラムおよびデータの一部は、光ディスク２２またはフラッシュメモリ４４から一度に全部または必要に応じて部分的にかつ順次的に読み出され、内部メインメモリ４２ｅに記憶され、そしてＣＰＵ４０やシステムＬＳＩ４２内のＧＰＵ４２ｂ，ＤＳＰ４２ｃなどで処理される。なお、図１９にはメモリマップの一部のみが示されており、処理に必要な他のプログラムおよびデータも記憶される。
【０１１５】
いま、プログラム領域１３０には、並行ゲームプログラム１３２，入出力制御プログラム１３４および通信制御プログラム１３６などが格納されている。並行ゲームプログラム１３２は、上述の並行ゲームを実現するためのプログラムであり、図２３のフローチャート（メインルーチン）に対応する。
【０１１６】
並行ゲームプログラム１３２は、第１〜第３ローカル処理プログラム１３２ａ〜１３２ｃおよびワールド処理プログラム１３２ｄをサブルーチンとして含む。第１〜第３ローカル処理プログラム１３２ａ〜１３２ｃは、第１〜第３ゲーム（ゲーム画面がウィンドウＷ１〜Ｗ３に示される：図９参照）を実現するためのプログラムであり、図２３のステップＳ７〜Ｓ１１に対応する。ワールド処理プログラム１３２ｄは、全体の制御や第１〜第３ゲーム間の関連付けを行うためのプログラムであり、図２３のステップＳ１３に対応する。なお、図２３の残りのステップつまりステップＳ１〜Ｓ５およびＳ１５は、並行ゲームプログラム１３２が受け持つ。
【０１１７】
入出力制御プログラム１３４は、主として入出力プロセッサ４２ａを制御するためのプログラムであり、入出力プロセッサ４２ａは、このプログラムに従って、たとえば、コントローラ１４からの操作データを内部メインメモリ４２ｅのリアルタイムプレイデータ領域１４４に書き込む。
【０１１８】
無線通信制御プログラム１３６は、主として無線通信モジュール５０ａを制御するためのプログラムであり、無線通信モジュール５０ａは、このプログラムに従い、他のゲーム装置１２との間でリプレイデータ（図２０参照）のやり取りを行う。なお、リプレイデータのやり取りは、ここでは電子メールを通じて行われる。
【０１１９】
データ領域１４０は、影響オブジェクトデータ領域１４２，リアルタイムリプレイデータ領域１４４，リプレイデータ領域１４６，スコア・倍率・ステージデータ領域１４８，ウィンドウ位置・サイズデータ領域１５０および画像データ領域１５２などを含む。
【０１２０】
影響オブジェクトデータ領域１４２は、第１〜第３ローカル処理（図２４，図２５参照）に割り当てられた第１〜第３ローカル領域１４２ａ〜１４２ｃ，およびワールド処理（図２６参照）に割り当てられたワールド領域１４２ｄを含む。
【０１２１】
リアルタイムプレイデータ領域１４４は、リアルタイムプレイデータつまりコントローラ１４からリアルタイムに出力される操作データ（現在の操作データ）を一時保持するための領域である。リプレイデータ領域１４６は、フラッシュメモリ４４などから読み出されたリプレイデータ（過去の操作データ）を記憶するための領域である。スコア・倍率・ステージデータ領域１４８は、第１〜第３ローカル処理によって算出されるスコア，倍率およびステージの値を示すデータを記憶するための領域である。ウィンドウ位置・サイズデータ領域１５０は、メインルーチンによって算出されるウィンドウＷ１〜Ｗ３の原点位置およびサイズ（図１８参照）を記憶するための領域である。画像データ領域１５２は、ウィンドウの内外にオブジェクトや背景を描画するための画像データなどが格納される。
【０１２２】
リプレイデータの構造を図２０に示す。図２０を参照して、リプレイデータは、ある１つのプレイに対応するリプレイデータ１，他の１つのプレイに対応するリプレイデータ２，…を含む。リプレイデータ１，２，…はそれぞれ、ゲームＩＤ，ステージ生成データおよびフレーム再生データを含む。フレーム再生データは、フレーム１に対応するフレーム１データ，フレーム２に対応するフレーム２データ，…を含む。フレーム１データ，フレーム２データ，…はそれぞれ、操作データおよび影響オブジェクトデータを含む。
【０１２３】
次に、第ｋローカル影響オブジェクトデータ（ｋ＝１，２または３）の構造を図２１に示す。第ｋローカル影響オブジェクトデータは、影響１，影響２，…の各々について、ゲームＩＤ，オブジェクトＩＤ，サイズデータ，位置データ，速度（角速度）データ，影響種別データおよび影響範囲データを含む。ここでの位置データは、第ｋローカル座標系に従う。
【０１２４】
ワールド影響オブジェクトデータの構造が図２２に示されている。ワールド影響オブジェクトデータもまた、影響１，影響２，…の各々について、ゲームＩＤ，オブジェクトＩＤ，サイズデータ，位置データ，速度（角速度）データ，影響種別データおよび影響範囲データを含む。ここでの位置データは、ワールド座標系に従う。
【０１２５】
ＣＰＵ４０は、プログラム領域１３０に格納された並行ゲームプログラム１３２に基づいて、図２３のフローチャートに従う処理を実行する。図２３を参照して、ＣＰＵ４０は最初、ステップＳ１で初期処理を実行する。初期処理には、データ領域１４０を初期化する処理，モニタ２８に初期画面を表示する処理，コントローラ１４によるモード選択操作を受け付ける処理，リプレイモードが選択されたときリプレイデータをフラッシュメモリ４４から内部メインメモリ４２ｅのリプレイデータ領域１４６に転送する処理，および各種の初期値を設定する処理などが含まれる。
【０１２６】
初期処理が完了すると、ＣＰＵ４０は、ステップＳ３で、各ゲームのスコア，倍率およびステージの値をスコア・倍率・ステージデータ領域１４８から取得する。次のステップＳ５では、取得した値に基づいて、各ウィンドウＷ１〜Ｗ３の位置およびサイズを算出し、結果をウィンドウ位置・サイズデータ領域１５０に登録する。ここで各ウィンドウＷ１〜Ｗ３の位置は、前述した原点ｏ１〜ｏ３のワールド座標系で記述される（図１８，上式（１）〜（３）参照）。
【０１２７】
位置およびサイズの登録が完了すると、ＣＰＵ４０の処理は、ステップＳ７〜Ｓ１５のループに入る。なお、このループ処理は、１フレーム毎に（たとえば１／６０秒周期で）実行される。ステップＳ７では第１ゲーム（Ｗ１：図９参照）に対応する第１ローカル処理を実行し、ステップＳ９では第２ゲーム（Ｗ２）に対応する第２ローカル処理を実行し、そしてステップＳ１１では第３ゲーム（Ｗ３）に対応する第３ローカル処理を実行する。
【０１２８】
このようなゲーム毎の処理に続いて、ＣＰＵ４０は、ステップＳ１３でワールド処理を実行する。第１〜第３ゲームは、このワールド処理を通じて相互に関連付けられる。ステップＳ１５では、並行ゲームを終了するか否かを判別し、判別結果がＮＯであればステップＳ３に戻る。
【０１２９】
上記ステップＳ７〜Ｓ１５の第１〜第３ローカル処理、すなわち“第ｋローカル処理（ｋ＝１，２または３）は、詳しくは図２４および図２５のフローチャートに従う。まず図２４を参照して、ステップＳ２１では、リプレイモードが選択されているか否かを判別する。なお、モード選択操作の結果を示すモード情報（図示せず）は、フラッシュメモリ４４などに格納されている。ステップＳ２１の判別結果がＹＥＳであれば、ステップＳ２３に移って、リプレイデータ領域１４６からリプレイデータを取得する一方、ステップＳ２１の判別結果がＮＯであれば、ステップＳ２５に移って、リアルタイムプレイデータ領域１４４からリアルタイムプレイデータを取得する。
【０１３０】
ＣＰＵ４０はその後、ステップＳ２７に移って、ワールド領域１４２ｄからワールド影響オブジェクトデータ（図２２参照）を取得する。なお、前述のように、ワールド影響オブジェクトデータには、各ゲームで生成された影響オブジェクトに関する情報（ワールド座標に従う位置データを含む）が記述されている。
【０１３１】
次のステップＳ２９では、ステップＳ２７で取得したワールド影響オブジェクトデータから、自ゲームつまり第ｋゲームの影響オブジェクトに関する部分を除去する。その次のステップＳ３１では、除去結果つまり他ゲームの影響オブジェクトデータに含まれる位置データに対し、ワールド座標系から第ｋローカル座標系への変換処理を施す。この変換処理は、上式（１）〜（３）に基づいて実行される。その後、ステップＳ３３に進む。
【０１３２】
図２５を参照して、ステップＳ３３では、自ウィンドウＷｋ内に他ゲームで生成された影響オブジェクト（他影響オブジェクト）があるか否かを判別して、結果がＹＥＳであればステップＳ３５に進む一方、結果がＮＯであればステップＳ３７に進む。すなわち、ステップＳ３１で変換されたローカル座標が、ウィンドウの範囲内であるかどうか判別する。ステップＳ３５では、ステップＳ２３またはＳ２５で取得したプレイデータおよびステップＳ３１で変換処理を施した後の他影響オブジェクトデータの両方に基づくゲーム処理を実行する。ステップＳ３７では、取得プレイデータのみに基づくゲーム処理を実行する。ゲーム処理は、上述のいずれの種類のゲームを実行しているかによってそれぞれ異なる。
【０１３３】
ここで、ステップＳ３５，Ｓ３７のゲーム処理の具体例を説明する。たとえば、図１４（Ａ）〜図１４（Ｃ）に示した図は、第２ゲーム（Ｗ２）から第１ゲーム（Ｗ１）に影響が及んでいる状態なので、第１ローカル処理ではステップＳ３５が実行され、第２ローカル処理ではステップＳ３７が実行される。この場合の影響オブジェクトは、第２ゲームによってウィンドウＷ２内に生成された敵オブジェクトＥＯである。この敵オブジェクトＥＯは、棒Ｓで弾かれて境界Ｂ１を越え、ウィンドウＷ１に入り込んでいる。
【０１３４】
ゲーム処理は、リアルタイムプレイデータやリプレイデータに基づいて実行され、各オブジェクトの位置や状態等が決定される。リプレイデータに基づいて実行される場合には、フレーム毎に、リプレイデータ中の対応フレームの操作データを読み出し、ユーザの操作によって当該操作データが入力されたのと同様の処理を行って過去のプレイを再現する。さらに、過去のプレイ時における、他のゲームからの影響オブジェクトに関しては、操作データからだけでは再現できないので、当該フレームに対応する影響オブジェクトデータを読み出して、過去のプレイ時における影響オブジェクトとその影響を再現することになる。
【０１３５】
なお、この敵オブジェクトＥＯの表示上のサイズおよび速度は、越境の前後で変わることがない。ウィンドウ間の大小関係や位置関係が変化しても、敵オブジェクトＥＯのサイズおよび速度は維持される。したがって、ウィンドウが小さい状態の場合には、相対的に大きな影響を受けることになる。
【０１３６】
ただし、第１ゲーム（Ｗ１）および第２ゲーム（Ｗ２）では互いに異なるローカル座標系が利用されるため（図１８参照）、位置データには座標変換処理を施す必要がある。この座標変換処理は、第２ローカル座標系からワールド座標系への第１変換処理，およびワールド座標系から第１ローカル座標系への第２変換処理の２つの変換処理を含む。
【０１３７】
すなわち、最初、影響元である第２ローカル処理（Ｓ５）からワールド処理（Ｓ９）に第２ローカル影響オブジェクトデータ（図２１参照）が渡され、ワールド処理はその位置データに第１変換処理を施す（Ｓ６５：後述）。次に、ワールド処理から影響先である第１ローカル処理に第１変換処理の結果つまりワールド影響オブジェクトデータ（図２２参照）が渡され、第１ローカル処理はその位置データに第２変換処理を施す（Ｓ３１）。これにより、第１〜第３ローカル処理の間での影響伝達が可能となる。
【０１３８】
このようなゲーム処理の後、ＣＰＵ４０は、ステップＳ３５に移って、自ゲームつまり第ｋゲームの影響オブジェクトがゲーム処理によって生成されたか否かを判別する。この判別結果がＹＥＳであれば、ステップＳ４１で第ｋローカル影響オブジェクトデータ（図２１参照）を第ｋローカル領域（１４２ａ〜１４２ｃ）に登録した後、ステップＳ４３に進む。一方、判別結果がＮＯであれば、直ちにステップＳ４３に進む。
【０１３９】
ステップＳ４３では、現フレームでの操作データつまりリアルタイムプレイデータを、リプレイデータとしてリプレイデータ領域１４６に記録する。さらに、他のゲームの影響オブジェクトが自ウィンドウに含まれている場合には、当該影響オブジェクトの情報もリプレイデータ領域１４６に記録する。続くステップＳ４５では、ゲーム処理結果に基づいてスコア，倍率およびステージの値を計算し、これをスコア・倍率・ステージデータ領域１４８に登録する。そしてステップＳ４７で、ゲーム処理結果および計算結果に基づいて、自ウィンドウＷｋ内への描画を行う。この描画処理では、ウィンドウ位置・サイズデータ領域１５０のデータおよび画像データ領域１５２のデータが利用される。描画後、メインルーチンに復帰する。ここで、自ゲーム内のオブジェクトの位置や大きさはローカル座標系において規定されるものであるので、ウィンドウが大きい場合には、表示上大きなオブジェクトが描画されることになる。
【０１４０】
以上のような第ｋローカル処理が、実行中のゲームの数だけそれぞれ行われる。なお、本実施形態では、ｋ＝３であるが、３に限らずｋはいくらであってもよく、同時に実行するゲームの数、つまりウィンドウの数に応じて適宜設定され得るものである。
【０１４１】
上記ステップＳ１３のワールド処理は、詳しくは図２６のフローチャートに従う。図２６を参照して、ＣＰＵ４０は、まずステップＳ６１で、各ゲームの影響オブジェクトデータつまり第１〜第ｋローカル影響オブジェクトデータ（図２１参照）が影響オブジェクトデータ領域１４２に登録されているか否かを判別する。この判別結果がＹＥＳであればステップＳ６３〜Ｓ６７の一連の処理を経てステップＳ６９に進み、ＮＯであれば直ちにステップＳ６９に進む。
【０１４２】
ステップＳ６３では、各ゲームの影響オブジェクトデータを影響オブジェクトデータ領域１４２から取得し、ステップＳ６５では、取得データに含まれる位置データに各ローカル座標からワールド座標系への変換を施す。ステップＳ６７では、座標変換後の位置データを含む影響オブジェクトデータつまりワールド影響オブジェクトデータ（図２２参照）をワールド領域１４２ｄに登録し、そしてステップＳ６９では、ウィンドウＷ１〜Ｗ３の外部の部分の描画を行う。この描画処理では、ウィンドウ位置・サイズデータ領域１５０のデータおよび画像データ領域１５２のデータが利用される。その後、メインルーチンへ復帰する。
【０１４３】
以上から明らかなように、この実施例では、ゲーム装置１２は第１〜第３のゲーム処理を同時に実行可能である。ゲーム装置１２のＣＰＵ４０は、第１ゲーム処理を第１操作データに基づいて実行して結果をウィンドウＷ１に表示し（Ｓ７）、第２ゲーム処理を第２操作データに基づいて実行して結果をウィンドウＷ２に表示し（Ｓ９）、そして第３ゲーム処理を第３操作データに基づいて実行して結果をウィンドウＷ３に表示する（Ｓ１１）。
【０１４４】
このときＣＰＵ４０は、第１ゲーム処理の実行結果に基づく影響を第２ゲーム処理の実行結果が表示されたウィンドウＷ２内および第３ゲーム処理の実行結果が表示されたウィンドウＷ３内の各々に及ぼし、第２ゲーム処理の実行結果に基づく影響を第３ゲーム処理の実行結果が表示されたウィンドウＷ３内および第１ゲーム処理の実行結果が表示されたウィンドウＷ１内の各々に及ぼし、そして第３ゲーム処理の実行結果に基づく影響を第１ゲーム処理の実行結果が表示されたウィンドウＷ１内および第２ゲーム処理の実行結果が表示されたウィンドウＷ２内の各々に及ぼす。こうして、第１〜第３のゲーム処理のうち任意の１つのゲーム処理の影響が他の任意の１つのゲーム処理に及ぶ。
【０１４５】
ここで、ウィンドウＷ１〜Ｗ３の各々は、モニタ２８の画面内に配置された領域である。モニタ２８の画面はワールド座標系（Ｘ‐Ｙ座標系）と関連付けられ、ウィンドウＷ１は第１ローカル座標系（ｘ１‐ｙ１座標系）と関連付けられ、そしてウィンドウＷ２は第２ローカル座標系（ｘ２‐ｙ２座標系）と関連付けられ、そしてウィンドウＷ３は第３ローカル座標系（ｘ３‐ｙ３座標系）と関連付けられる。
【０１４６】
また、第１処理ステップの実行結果はウィンドウＷ２および／またはＷ３に表示されるべき第１影響オブジェクトの位置データを含み、第２処理ステップの実行結果はウィンドウＷ３および／またはＷ１に表示されるべき第２影響オブジェクトの位置データを含み、そして第３処理ステップの実行結果はウィンドウＷ１および／またはＷ２に表示されるべき第３影響オブジェクトの位置データを含む。
【０１４７】
ＣＰＵ４０は、第１影響オブジェクトの位置データに第１ローカル座標系からワールド座標系への第１変換処理を施し（Ｓ６５）、そして第１変換処理後の位置データにワールド座標系から第２座標系への第２変換処理を施す（Ｓ３１）。第２，第３オブジェクトの位置データに対しても同様の変換処理が施される。これにより、異なるローカル座標系に従うゲーム処理間で、相互に影響を及ぼし合うこと可能となる。
【０１４８】
この実施例ではまた、第１〜第３操作データの少なくとも１つが現在の操作に基づくリアルタイム操作データであり、残りは過去の操作に基づくリプレイ操作データである。これにより、プレイヤは過去に実在したプレイヤとゲームをプレイできる。過去の操作はプレイヤ自身の操作でもよく、この場合、プレイヤは過去の自分自身とゲームをプレイできることになる。プレイヤはまた、将来のプレイが有利に進むように現在のプレイを進めることが可能で、これによりゲームの戦略性が高まる。
【０１４９】
なお、この実施例では、第１〜第３の３つのゲーム処理を同時に実行したが、同時に実行されるゲーム処理の個数は、２個でも４個以上でもよい。
【０１５０】
なお、この実施例では、リアルタイム操作データは、ゲームシステム１０（ゲーム装置１２）内で利用されたが、通信システム１２０を通じてゲームシステム１０（ゲーム装置１２）間でやり取りされてもよい。
【０１５１】
なお、この実施例では、第１ゲーム処理の結果および第２ゲーム処理の結果を単一の画面（２８）内の２つのウィンドウＷ１およびＷ２にそれぞれ表示したが、２つの画面にそれぞれ表示してもよい。２画面を有するゲーム装置の一例を図２７および図２８に示す。図２７および図２８を参照して、このゲーム装置１２Ａでは、ＣＰＵコア４０Ａが前実施例のＣＰＵ４０と対応し、ＲＡＭ４２Ａが前実施例の内部メインメモリ４２ｅと対応する。第１ゲーム処理の結果（ウィンドウＷ１の表示内容）は第１ＬＣＤ２８Ａに表示され、第２ゲーム処理の結果（Ｗ２）は第２ＬＣＤ２８Ｂに表示される。すなわち、第１ローカル処理（図２４および図２５参照）における描画処理（Ｓ４７）は第１ＬＣＤ２８Ａに対して行われ、第２ローカル処理（図２４および図２５参照）における描画処理（Ｓ４７）は第２ＬＣＤ２８Ｂに対して行われる。
【０１５２】
この場合、たとえば、ワールド座標系（Ｘ‐Ｙ座標系）が割り当てられた仮想的な平面（モニタ２８の画面に相当）上に第１ＬＣＤ２８Ａおよび第２ＬＣＤ２８Ｂを配置して、第１ＬＣＤ２８Ａおよび第２ＬＣＤ２８Ｂ（ウィンドウＷ１およびＷ２に相当）に第１ローカル座標系（ｘ１‐ｙ１座標系）および第２ローカル座標系（ｘ２‐ｙ２座標系）をそれぞれ割り当てる（図１８参照：ただしＬＣＤサイズは共通でよい）。これにより、第１ゲーム処理および第２ゲーム処理の間で、前実施例と同様の影響を及ぼし合うことができる。このほか、第１ＬＣＤ２８Ａおよび第２ＬＣＤ２８Ｂに共通の座標系つまりワールド座標系を割り当てる方法もある。  
【０１５３】
以上では、一例として、ゲームシステム１０について説明したが、この発明は、複数のゲーム処理を並列に実行可能な処理システムないし処理装置（たとえば携帯電話端末，パーソナルコンピュータなど）に適用できる。
【図面の簡単な説明】
【０１５４】
【図１】この発明の一実施例のゲームシステムの概要を示す外観図である。
【図２】ゲームシステムの電気的構成の一例を示すブロック図である。
【図３】（Ａ）はゲームシステムで用いられるコントローラを後方上側から見た斜視図であり、（Ｂ）はゲームシステムで用いられるコントローラを前方下側から見た斜視図である。
【図４】コントローラの電気的構成の一例を示すブロック図である。
【図５】コントローラを用いてゲームをプレイするときの状態を示す図解図である。
【図６】ゲームシステムにおけるマーカおよびコントローラの視野角を示す図解図である。
【図７】マーカの画像（対象画像）を含む撮像画像の一例を示す図解図である。
【図８】ゲームシステムと協働する通信システムの一例を示すブロック図である。
【図９】ゲーム画面の一例を示す図解図である。
【図１０】ゲーム画面の他の一例を示す図解図である。
【図１１】（Ａ）〜（Ｃ）はゲーム画面に含まれる第１ゲーム画像の変化の一例を示す図解図である。
【図１２】（Ａ）〜（Ｃ）はゲーム画面に含まれる第２ゲーム画像の変化の一例を示す図解図である。
【図１３】（Ａ）〜（Ｃ）はゲーム画面に含まれる第３ゲーム画像の変化の一例を示す図解図である。
【図１４】（Ａ）〜（Ｃ）は第１ゲームが第２ゲームの影響を受ける様子を示す図解図である。
【図１５】（Ａ）〜（Ｃ）は第３ゲームが第１ゲームの影響を受ける様子を示す図解図である。
【図１６】（Ａ）〜（Ｃ）は第２ゲームが第３ゲームの影響を受ける様子を示す図解図である。
【図１７】ゲーム画面の他の一例を示す図解図である。
【図１８】この実施例に適用される座標系を示す図解図である。
【図１９】内部メインメモリのメモリマップの一例を示す図解図である。
【図２０】リプレイデータの構造を示す図解図である。
【図２１】ローカル影響オブジェクトデータの構造を示す図解図である。
【図２２】ワールド影響オブジェクトデータの構造を示す図解図である。
【図２３】ＣＰＵの動作の一部を示すフロー図である。
【図２４】ＣＰＵの動作の他の一部を示すフロー図である。
【図２５】ＣＰＵの動作のその他の一部を示すフロー図である。
【図２６】ＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図２７】この発明の他の実施例のゲーム装置の概要を示す外観図である。
【図２８】図２７のゲーム装置の電気的構成の一例を示すブロック図である。
【図２９】（Ａ）〜（Ｃ）は第１ゲームが第２ゲームの別の影響を受ける様子を示す図解図である。
【符号の説明】
【０１５５】
１０  …ゲームシステム
１２，１２Ａ  …ゲーム装置
１４  …コントローラ
２８  …モニタ
２８Ａ  …第１ＬＣＤ
２８Ｂ  …第２ＬＣＤ
４０，４０Ａ  …ＣＰＵ
４２ｅ  …内部メインメモリ
４２Ａ  …ＲＡＭ
１２０  …通信システム
Ｗ１〜Ｗ３  …ウィンドウ
【図１】
0005184036.tif 000002
【図２】
0005184036.tif 000003
【図３】
0005184036.tif 000004
【図４】
0005184036.tif 000005
【図５】
0005184036.tif 000006
【図６】
0005184036.tif 000007
【図７】
0005184036.tif 000008
【図８】
0005184036.tif 000009
【図９】
0005184036.tif 000010
【図１０】
0005184036.tif 000011
【図１１】
0005184036.tif 000012
【図１２】
0005184036.tif 000013
【図１３】
0005184036.tif 000014
【図１４】
0005184036.tif 000015
【図１５】
0005184036.tif 000016
【図１６】
0005184036.tif 000017
【図１７】
0005184036.tif 000018
【図１８】
0005184036.tif 000019
【図１９】
0005184036.tif 000020
【図２０】
0005184036.tif 000021
【図２１】
0005184036.tif 000022
【図２２】
0005184036.tif 000023
【図２３】
0005184036.tif 000024
【図２４】
0005184036.tif 000025
【図２５】
0005184036.tif 000026
【図２６】
0005184036.tif 000027
【図２７】
0005184036.tif 000028
【図２８】
0005184036.tif 000029
【図２９】
0005184036.tif 000030