JP5184036B2 - ゲームプログラムおよびゲーム装置 - Google Patents

ゲームプログラムおよびゲーム装置 Download PDF

Info

Publication number
JP5184036B2
JP5184036B2 JP2007262600A JP2007262600A JP5184036B2 JP 5184036 B2 JP5184036 B2 JP 5184036B2 JP 2007262600 A JP2007262600 A JP 2007262600A JP 2007262600 A JP2007262600 A JP 2007262600A JP 5184036 B2 JP5184036 B2 JP 5184036B2
Authority
JP
Japan
Prior art keywords
game
area
coordinate system
data
local coordinate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007262600A
Other languages
English (en)
Other versions
JP2009089851A (ja
Inventor
幹人 市川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2007262600A priority Critical patent/JP5184036B2/ja
Priority to US12/073,753 priority patent/US20090093314A1/en
Publication of JP2009089851A publication Critical patent/JP2009089851A/ja
Application granted granted Critical
Publication of JP5184036B2 publication Critical patent/JP5184036B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • A63F13/10
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/843Special adaptations for executing a specific game genre or game mode involving concurrently two or more players on the same game device, e.g. requiring the use of a plurality of controllers or of a specific view of game data for each player
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0325Detection arrangements using opto-electronic means using a plurality of light emitters or reflectors or a plurality of detectors forming a reference frame from which to derive the orientation of the object, e.g. by triangulation or on the basis of reference deformation in the picked up image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • A63F13/497Partially or entirely replaying previous game actions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6036Methods for processing data by generating or executing the game program for offering a minigame in combination with a main game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/63Methods for processing data by generating or executing the game program for controlling the execution of the game in time
    • A63F2300/634Methods for processing data by generating or executing the game program for controlling the execution of the game in time for replaying partially or entirely the game actions since the beginning of the game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8088Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game involving concurrently several players in a non-networked game, e.g. on the same game console

Description

この発明は、ゲームプログラムおよびゲーム装置に関し、特にたとえば、2人以上でゲームをプレイする、ゲームプログラムおよびゲーム装置に関する。
この種のプログラムおよび装置の一例が特許文献1に開示されている。この背景技術では、2人で共通のゲーム(格闘ゲーム)をプレイする。
また、他の一例が特許文献2に開示されている。この背景技術でも、2人で共通のゲーム(囲碁ゲーム)をプレイするが、現実のプレイヤ(以下単に“プレイヤ”と呼ぶ)は2人のうち一方で、他方は仮想的なプレイヤ(コンピュータ)である。
特開2007‐83071号公報 特開2004‐105221号公報
しかし、特許文献1および特許文献2の各々は、2人で(すなわちプレイヤ対プレイヤないしプレイヤ対コンピュータで)共通のゲームをプレイする方策について開示するものの、これらは2人で独立にゲームをすることができないものである。その一方で、2人でそれぞれ別々のゲームを行う場合には、2人でゲームをする楽しみに欠けるという問題がある。
また、特許文献2は、プレイヤが自分とは別人の仮想的なプレイヤとゲームをプレイする方策について開示するものの、実在のプレイヤとのゲームプレイではないので、多人数プレイの楽しみが無いという問題がある。さらに、上記の引用文献1および2に記載されているのは、他のプレイヤやコンピュータと共にプレイすることであって、自分自身と共にゲームをプレイするという新規な発想については記載されていない。
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
この発明の他の目的は、複数のプレイヤがそれぞれ独立にゲームをプレイすることが可能であると同時に相互に影響を及ぼし合うことができる、ゲームプログラムおよびゲーム装置を提供することである。
この発明のその他の目的は、さらに、1人であっても他のプレイヤと共にゲームをするという興趣を得られる、ゲームプログラムおよびゲーム装置を提供することである。
この発明のさらに他の目的は、自分自身と共にプレイする感覚を得られるという新規なゲームプログラムおよびゲーム装置を提供することである。
この発明は、上記の課題を解決するために、以下の構成を採用した。
第1の発明は、ゲーム処理に応じたゲーム画面を表示装置の表示領域に表示するゲーム装置のコンピュータで実行されるゲームプログラムであって、第1のゲームのゲーム空間を表示させるための第1エリアと、第2のゲームのゲーム空間を表示させるための第2エリアとの少なくとも2つのエリアを表示領域上に設定し、第1エリアのゲーム空間に第1ローカル座標系を、第2エリアのゲーム空間に第2ローカル座標系を定義する表示エリア設定ステップと、第2のゲームにおいて、所定のゲーム処理を行い、ゲーム空間内の所定のオブジェクトである第2ゲームオブジェクトについて、第2ローカル座標系における座標を決定する第2ゲーム処理ステップと、第2ゲームオブジェクトに関して、第2ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置に変換する第1の位置変換ステップと、第2ゲームオブジェクトのワールド座標系での位置を、第1ローカル座標系での位置に変換する第2の位置変換ステップと、第2ゲームオブジェクトの位置が第1エリア上にあることを判定する判定ステップと、判定ステップで第1エリア上にあると判定された第2ゲームオブジェクトを、第1ローカル座標系での位置に基づいて、第1のゲームに影響させたゲーム処理を行う第1ゲーム処理ステップと、第1のゲームのゲーム空間を第1エリアに表示させ、第2のゲームのゲーム空間を第2エリアに表示させる表示ステップを、コンピュータに実行させる。
第1の発明では、ゲームプログラムは、ゲーム処理に応じたゲーム画面を表示装置の表示領域に表示するゲーム装置のコンピュータに、表示エリア設定ステップと、第2ゲーム処理ステップと、第1の位置変換ステップと、第2の位置変換ステップと、判定ステップと、第1ゲーム処理ステップと、表示ステップを実行させる。
表示エリア設定ステップは、第1のゲームのゲーム空間を表示させるための第1エリアと、第2のゲームのゲーム空間を表示させるための第2エリアとの少なくとも2つのエリアを表示領域上に設定し、第1エリアのゲーム空間に第1ローカル座標系を、第2エリアのゲーム空間に第2ローカル座標系を定義する。第2ゲーム処理ステップは、第2のゲームにおいて、所定のゲーム処理を行い、ゲーム空間内の所定のオブジェクトである第2ゲームオブジェクトについて、第2ローカル座標系における座標を決定する。第1の位置変換ステップは、第2ゲームオブジェクトに関して、第2ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置に変換する。第2の位置変換ステップは、第2ゲームオブジェクトのワールド座標系での位置を、第1ローカル座標系での位置に変換する。判定ステップは、第2ゲームオブジェクトの位置が第1エリア上にあることを判定する。第1ゲーム処理ステップは、判定ステップで第1エリア上にあると判定された第2ゲームオブジェクトを、第1ローカル座標系での位置に基づいて、第1のゲームに影響させたゲーム処理を行う。表示ステップは、第1のゲームのゲーム空間を第1エリアに表示させ、第2のゲームのゲーム空間を第2エリアに表示させる。
第2の発明は、第1の発明に従属し、コンピュータに、第1エリアおよび第2エリアの間の位置関係および第1エリアおよび第2エリアの間の大小関係の少なくとも一方の関係を、第1ゲーム処理ステップの実行結果および第2ゲーム処理ステップの少なくとも一方の実行結果に基づいて変更し、当該変更に伴い、第1および第2ローカル座標とワールド座標との対応関係を変更する、エリア変更ステップをさらに実行させる。
第2の発明では、プログラムはコンピュータにエリア変更ステップをさらに実行させる。エリア変更ステップは、第1エリアおよび第2エリアの間の位置関係および第1エリアおよび第2エリアの間の大小関係の少なくとも一方の関係を、第1ゲーム処理ステップの実行結果および第2ゲーム処理ステップの少なくとも一方の実行結果に基づいて変更し、当該変更に伴い、第1および第2ローカル座標とワールド座標との対応関係を変更する。
第3の発明は、第1の発明に従属し、第1ゲーム処理ステップにおけるゲーム処理は、ゲーム操作のための第1操作データに基づいて実行され、第2ゲーム処理ステップにおけるゲーム処理は、ゲーム操作のための第2操作データに基づいて実行される。
第4の発明は、第3の発明に従属し、第1操作データは、ユーザの操作に基づいて入力されるリアルタイム操作データであり、第2操作データは、ユーザの操作に替えてゲームを進行させるために記憶媒体に記憶されたリプレイ操作データである。
第5の発明は、第4の発明に従属し、コンピュータにリアルタイム操作データをリプレイ操作データとして記憶媒体に記憶させる記憶ステップをさらに実行させる。
第5の発明では、プログラムはコンピュータに記憶ステップをさらに実行させる。記憶ステップは、リアルタイム操作データをリプレイ操作データとして記憶媒体に記憶させる。
第6の発明は、第5の発明に従属し、他のゲーム装置とリプレイ操作データを通信手段を通じて送受信する通信ステップを、コンピュータにさらに実行させる。
第6の発明では、プログラムはコンピュータに通信ステップをさらに実行させる。通信ステップは、他のゲーム装置とリプレイ操作データを通信手段を通じて送受信する。
第7の発明は、第1の発明に従属し、表示領域は第1画面および第2画面から構成され、第1エリアおよび第2エリアは第1画面および第2画面にそれぞれ対応する。
第8の発明は、第1の発明に従属し、コンピュータに、第1ゲーム処理において、ゲーム空間内の所定のオブジェクトである第1ゲームオブジェクトについて、第1ローカル座標系における座標をさらに決定させ、第1の位置変換ステップにおいて、第1ゲームオブジェクトの第1ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置にさらに変換させ、第2の位置変換ステップにおいて、第1ゲームオブジェクトのワールド座標系での位置を、第2ローカル座標系での位置にさらに変換させ、判定ステップにおいて、第1ゲームオブジェクトの位置が第2エリア上にあることをさらに判定させ、第2ゲーム処理ステップにおいて、判定ステップで第2エリア上にあると判定された第1ゲームオブジェクトを、第2ローカル座標系での位置に基づいて、第2のゲームに影響させたゲーム処理をさらに行わせる。
第9の発明は、第8の発明に従属し、表示エリア設定ステップは、第k(kは3以上の自然数)のゲームのゲーム空間を表示させるための第kエリアを表示領域上にさらに設定し、第kエリアのゲーム空間に第kローカル座標系を定義するステップをさらに含み、第kのゲームにおいて、所定のゲーム処理を行う第kゲーム処理ステップを、コンピュータにさらに実行させる。
第10の発明は、ゲーム処理に応じたゲーム画面を表示装置の表示領域に表示するゲーム装置であって、第1のゲームのゲーム空間を表示させるための第1エリアと、第2のゲームのゲーム空間を表示させるための第2エリアとの少なくとも2つのエリアを表示領域上に設定し、それぞれのゲーム空間に第1および第2ローカル座標系を定義する表示エリア設定手段と、第2のゲームにおいて、所定のゲーム処理に基づき、ゲーム空間内の所定のオブジェクトである第2ゲームオブジェクトについて、第2ローカル座標系における座標を決定する第2ゲーム処理手段と、第2ゲームオブジェクトに関して、第2ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置に変換する第1の位置変換手段と、第2ゲームオブジェクトのワールド座標系での位置を、第1ローカル座標系での位置に変換する第2の位置変換手段と、第2ゲームオブジェクトの位置が第1エリア上にあることを判定する判定手段と、判定手段で第1エリア上にあると判定された第2ゲームオブジェクトを、第1ローカル座標系での位置に基づいて、第1のゲームに影響させたゲーム処理を行う第1ゲーム処理手段と、第1のゲームのゲーム空間を第1エリアに表示させ、第2のゲームのゲーム空間を第2エリアに表示させる表示手段を備える。
この発明によれば、同時に実行される複数のゲーム処理の間で相互に影響を及ぼし合うことができる。また、プレイヤは、プレイヤが複数いないときであっても、過去のプレイヤとゲームをプレイできる。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1を参照して、この発明の一実施例であるゲームシステム10は、ゲーム装置12およびコントローラ14を含む。図示は省略するが、この実施例のゲーム装置12は、最大4つのコントローラ14と通信可能に設計されている。また、ゲーム装置12と各コントローラ14とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。さらには、有線で接続されてもよい。
ゲーム装置12は、略直方体のハウジング16を含み、ハウジング16の前面にはディスクスロット18が設けられる。ディスクスロット18から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク24が挿入されて、ハウジング16内のディスクドライブ54(図2参照)に装着される。図示は省略するが、ディスクスロット18の周囲には、LEDと導光板とが配置され、様々な処理に応答させて、ディスクスロット1
8を点灯または点滅させることが可能である。
また、ゲーム装置12のハウジング16の前面の上部には、電源ボタン20aおよびリセットボタン20bが設けられ、その下部には、イジェクトボタン20cが設けられる。さらに、リセットボタン20bとイジェクトボタン20cとの間であり、ディスクスロット18の近傍には、外部メモリカード用コネクタカバー22が設けられる。この外部メモリカード用コネクタカバー22の内側には、外部メモリカード用コネクタ62(図2参照)が設けられ、図示しない外部メモリカード(以下、単に「メモリカード」という。)が挿入される。メモリカードは、光ディスク24から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。さらに、ゲーム装置12では、ゲーム以外の他のアプリケーションを実行することも可能であり、かかる場合には、メモリカードには当該他のアプリケーションのデータを保存することができる。
なお、メモリカードとしては、汎用のSDカードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。
図1では省略するが、ゲーム装置12のハウジング16の後面には、AVケーブルコネクタ58(図2参照)が設けられ、そのAVコネクタ58を用いて、AVケーブル26を通してゲーム装置12にモニタ28およびスピーカ30を接続する。このモニタ28およびスピーカ30は典型的にはカラーテレビジョン受像機であり、AVケーブル26によって、ゲーム装置12からの映像信号がカラーテレビのビデオ入力端子に入力され、ゲーム装置12からの音声信号が音声入力端子に入力される。したがって、カラーテレビ(モニタ)28の画面上にたとえば3次元(3D)ビデオゲームの仮想3次元ゲーム画像が表示され、左右のスピーカ30からゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ28の周辺(この実施例では、モニタ28の上側)には、2つの赤外LED(マーカ)32aおよび32bを備えるマーカ部32が設けられる。このマーカ部32は、電源線34を通してゲーム装置12に接続される。したがって、マーカ部32には、ゲーム装置12から電源が供給される。これによって、マーカ32aおよび32bは発光し、それぞれモニタ28の前方に向けて赤外光を出力する。
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
このゲームシステム10において、ユーザまたはプレイヤがゲーム(またはゲームに限らず、他のアプリケーション)をプレイするために、ユーザは電源スイッチ20aによってまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)のプログラムを記録している適宜の光ディスク24を選択し、その光ディスク24をゲーム装置12のディスクドライブ54にローディングする。応じて、ゲーム装置12がその光ディスク24に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始める。ユーザはゲーム装置12に入力を与えるためにコントローラ14を操作する。たとえば操作ボタンなどを含む入力手段36のどれかの操作ボタンを操作することによってゲームもしくは他のアプリケー
ションをスタートさせる。また、入力手段36に対する操作以外にも、コントローラ14自体を動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(カメラ位置)を変化させることができる。
ただし、ビデオゲームや他のアプリケーションのプログラムは、ゲーム装置12の内部メモリ(フラッシュメモリ44(図2参照))に記憶(インストール)しておき、当該内部メモリから実行するようにしてもよい。かかる場合には,光ディスク24のような記憶媒体に記憶されたプログラムを内部メモリにインストールしてもよいし、ダウンロードされたプログラムを内部メモリにインストールしてもよい。
図2は図1実施例のゲームシステム10の電気的な構成を示すブロック図である。図示は省略するが、ハウジング16内の各コンポーネントは、プリント基板に実装される。図2に示すように、ゲーム装置12には、CPU40が設けられ、ゲームプロセッサとして機能する。また、CPU40には、システムLSI42が接続される。このシステムLSI42には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV IC56が接続される。
外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、CPU40のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク24からプログラムやテクスチャデータ等を読み出し、CPU40の制御の下で、後述する内部メインメモリ42eまたは外部メインメモリ46に書き込む。
システムLSI42には、入出力プロセッサ42a、GPU(Graphics Processor Unit)42b,DSP(Digital Signal Processor)42c,VRAM42dおよび内部メイン
メモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、データのダウンロードを実行したりする。
GPU42bは、描画手段の一部を形成し、CPU40からのグラフィクスコマンド(
作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU
40は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU42bに与える。
図示は省略するが、上述したように、GPU42bにはVRAM42dが接続される。GPU42bが作画命令を実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU42bがVRAM42dにアクセスして取得する。ただし、CPU40は、描画に必要な画像データを、GPU42bを介してVRAM42dに書き込む。GPU42bは、VRAM42dにアクセスして描画のためのゲーム画像データを作成する。
なお、この実施例では、GPU42bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU42bは当該任意のアプリケーションについての画像データを生成する。
また、DSP42cは、オーディオプロセッサとして機能し、内部メインメモリ42eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ30から出力する音、音声或いは音楽に対応するオーディオデータを生成する。
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ28およびスピーカ30に出力される。したがって、ゲーム画面がモニタ28に表示され、ゲームに必要な音(音楽)がスピーカ30から出力される。
また、入出力プロセッサ42aには、フラッシュメモリ44、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60およびメモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
入出力プロセッサ42aは、無線通信モジュール50を介して、ネットワーク(図示せず)に接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ42aは、定期的にフラッシュメモリ44にアクセスし、ネットワークへ送信する必要があるデータ(「送信データ」とする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ42aは、他のゲーム装置から送信されるデータ(「受信データ」とする)を、ネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、当該受信データをフラッシュメモリ44に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ42aは、ダウンロードサーバ(図示せず)からダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、そのダウンロードデータをフラッシュメモリ44に記憶することもできる。
また、入出力プロセッサ42aは、コントローラ14から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ42eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU40の処理(たとえば、ゲーム処理)によって利用された後、バッファ領域から消去される。
なお、この実施例では、上述したように、無線コントローラモジュール52は、Bluetooth規格に従ってコントローラ14との間で通信を行う。
さらに、入出力プロセッサ42aには、拡張コネクタ60およびメモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインタフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ14とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。メモリカード用コネクタ62には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ42aは、拡張コネクタ60やメモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
詳細な説明は省略するが、図1にも示したように、ゲーム装置12(ハウジング16)には、電源ボタン20a,リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI42に接続される。この電源ボタン20aがオンされると、システムLSI42には、ゲーム装置12の各コンポーネントに図示しな
いACアダプタを経て電源が供給され、通常の通電状態となるモード(「通常モード」と呼ぶこととする)が設定される。一方、電源ボタン20aがオフされると、システムLSI42には、ゲーム装置12の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード(以下、「スタンバイモード」という)が設定される。
この実施例では、スタンバイモードが設定された場合には、システムLSI42は、入出力プロセッサ42a、フラッシュメモリ44、外部メインメモリ46、ROM/RTC48および無線通信モジュール50、無線コントローラモジュール52以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、この実施例では、スタンバイモードにおいて、CPU40がアプリケーションを実行することはない。
なお、システムLSI42には、スタンバイモードにおいても電源が供給されるが、GPU42b、DSP42cおよびVRAM42dへのクロックの供給を停止することにより、これらを駆動しないようにして、消費電力を低減するようにしてある。
また、図示は省略するが、ゲーム装置12のハウジング16内部には、CPU40やシステムLSI42などのICの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン20aがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
また、通常モードとスタンバイモードとの切り替えは、コントローラ14の電源スイッチ86(図3)のオン/オフの切り替えによって、遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール52aへの電源供給を行わない設定にしてもよい。
リセットボタン20bもまた、システムLSI42に接続される。リセットボタン20bが押されると、システムLSI42は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク24が排出される。
図3(A)および図3(B)は、コントローラ14の外観の一例を示す。図3(A)はコントローラ14の正面、上面および右側面を見せる斜視図であり、図3(B)はコントローラ14の背面、下面および左側面を見せる斜視図である。
図3(A)および図3(B)を参照して、コントローラ14は、たとえばプラスチック成型によって形成されたハウジング70を有している。ハウジング70は、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング70(コントローラ14)には、前述のように入力手段(複数のボタンないしスイッチ)36が設けられる。具体的には、図3(A)に示すように、ハウジング70の上面には、十字キー72,1ボタン74,2ボタン76,Aボタン78,−(マイナス)ボタン80,HOMEボタン82,+(プラス)ボタン84および電源スイッチ86が設けられる。また、図3(B)に示すように、ハウジング70の下面に傾斜面が形成されており、この傾斜面に、Bトリガースイッチ88が設けられる。
十字キー72は、4方向プッシュスイッチであり、矢印で示す4つの方向、前(または上)、後ろ(または下)、右および左の操作部を含む。この操作部のいずれか1つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト(プレイ
ヤキャラクタまたはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
1ボタン74および2ボタン76は、それぞれ、押しボタンスイッチである。たとえば3次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。または、1ボタン74および2ボタン76は、Aボタン78およびBトリガースイッチ88と同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
Aボタン78は、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。また、Aボタン78は、ゲーム画面上でポインタ(指示画像)が指示するアイコンないしボタン画像の決定を指示するために使用される。たとえば、アイコンやボタン画像が決定されると、これらに対応して予め設定されている指示ないし命令(ゲームのコマンド)を入力することができる。
−ボタン80、HOMEボタン82、+ボタン84および電源スイッチ86もまた、押しボタンスイッチである。−ボタン80は、ゲームモードを選択するために使用される。HOMEボタン82は、ゲームメニュー(メニュー画面)を表示するために使用される。+ボタン84は、ゲームを開始(再開)したり、一時停止したりするなどのために使用される。電源スイッチ86は、ゲーム装置12の電源を遠隔操作によってオン/オフするために使用される。
なお、この実施例では、コントローラ14自体をオン/オフするための電源スイッチは設けておらず、コントローラ14の入力手段36のいずれかを操作することによってコントローラ14はオンとなり、一定時間(たとえば、30秒)以上操作しなければ自動的にオフとなるようにしてある。
Bトリガースイッチ88もまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ14で選択した位置を指定したりするために使用される。また、Bトリガースイッチ88を押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Bトリガースイッチ88は、通常のBボタンと同様に機能し、Aボタン78によって決定したアクションやコマンドなどを取り消すなどのために使用される。
また、図3(A)に示すように、ハウジング70の後端面に外部拡張コネクタ90が設けられ、また、図3(B)に示すように、ハウジング70の上面であり、後端面側にはインジケータ92が設けられる。外部拡張コネクタ90は、コントローラ14とは異なる拡張コントローラ(図示せず)を接続するためなどに使用される。インジケータ92は、たとえば、4つのLEDで構成される。たとえば、インジケータ92では、4つのうちのいずれか1つを点灯させることにより、点灯したLEDに応じて、コントローラ14の識別情報(コントローラ番号)を示すことができる。また、インジケータ92では、点灯させるLEDの個数によってコントローラ14の電池残量を示すこともできる。
さらに、コントローラ14は、撮像情報演算部108(図4参照)を有しており、図3(B)に示すように、ハウジング70の先端面には撮像情報演算部108の光入射口94
が設けられる。また、コントローラ14は、スピーカ114(図4参照)を有しており、このスピーカ114は、図3(A)に示すように、ハウジング70の上面であり、1ボタン74とHOMEボタン82との間に設けられる音抜き孔96に対応して、ハウジング70内部に設けられる。
なお、図3(A)および図3(B)に示したコントローラ14の形状や、各入力手段36の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変されてもよい。
図4はコントローラ14の電気的な構成を示すブロック図である。この図4を参照して、コントローラ14はプロセッサ100を含み、このプロセッサ100には、内部バス(図示せず)によって、外部拡張コネクタ90、入力手段36、メモリ102、加速度センサ104、無線モジュール106、撮像情報演算部108、LED110(インジケータ92)、バイブレータ112、スピーカ114および電源回路116が接続される。また、無線モジュール106には、アンテナ118が接続される。
なお、簡単のため、図4では省略するが、上述したように、インジケータ92は4つのLED110によって構成される。
プロセッサ100は、コントローラ14の全体制御を司り、入力手段36、加速度センサ104および撮像情報演算部108によって入力された情報(入力情報)を、入力データとして無線モジュール106およびアンテナ118を介してゲーム装置12に送信(入力)する。このとき、プロセッサ100は、メモリ102を作業領域ないしバッファ領域として用いる。また、上述した入力手段36(72‐84)からの操作信号(操作データ)は、プロセッサ100に入力され、プロセッサ100は操作データを一旦メモリ102に記憶する。
加速度センサ104は、図3に示すようにコントローラ14の縦方向(y軸方向)、横方向(x軸方向)および前後方向(z軸方向)の3軸で各々の加速度を検出する。この加速度センサ104は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
たとえば、加速度センサ104は、第1所定時間毎に、x軸,y軸,z軸の各々についての加速度(ax,ay,az)を検出し、検出した加速度のデータ(加速度データ)をプロセッサ100に入力する。たとえば、加速度センサ104は、各軸方向の加速度を、−2.0G〜2.0G(Gは重力加速度である。以下、同じ。)の範囲で検出する。プロセッサ100は、加速度センサ104から与えられる加速度データを、第2所定時間毎に検出し、一旦メモリ102に記憶する。
プロセッサ100は、操作データ、加速度データおよび後述するマーカ座標データの少なくとも1つを含む入力データを作成し、作成した入力データを、第3所定時間(たとえば、5msec)毎にゲーム装置12に送信する。
なお、図3では省略したが、この実施例では、加速度センサ104は、ハウジング70内部の基板上の十字キー72が配置される付近に設けられる。
ここで、加速度センサ104から出力される加速度データに基づいて、ゲーム装置12のプロセッサ(たとえば、CPU40)またはコントローラ14のプロセッサ(たとえば、プロセッサ100)などのコンピュータが処理を行うことによって、コントローラ14に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。
たとえば、コントローラ14に1軸の加速度センサ104を搭載し、当該コントローラ14が静的な状態であることを前提としてコンピュータ側で処理する場合、すなわち、加速度センサ104によって検出される加速度が重力加速度のみであるとして処理する場合、コントローラ14が現実に静的な状態であれば、検出された加速度データに基づいてコントローラ14の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ104の検出軸が鉛直下方向である状態を基準としたとき、1G(重力加速度)がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかを知ることもできる。
また、コントローラ14に多軸の加速度センサ104を搭載する場合には、さらに各軸の加速度データに対して処理を施すことによって、重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ104の出力に基づいて、プロセッサ100がコントローラ14の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータの算出処理を行うことなく、加速度センサ104からの出力に基づいて、おおよその傾きを推定できるような処理としてもよい。このように、加速度センサ104をプロセッサ100と組み合わせることによって、コントローラ14の傾き、姿勢または位置を判定することができる。
一方、加速度センサ104が動的な状態を前提とする場合には、重力加速度成分に加えて加速度センサの動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動きの方向などを知ることができる。具体的には、加速度センサ104を搭載するコントローラ14がユーザの手で動的に加速されて動かされている場合に、加速度センサ104によって生成される加速度データを処理することによって、コントローラ14の様々な動きおよび/または位置を算出することができる。
なお、加速度センサ104が動的な状態であることを前提とする場合であっても、加速度センサ104の動きに応じた加速度を所定の処理により除去すれば、重力方向に対する傾きを知ることができる。他の実施例では、加速度センサ104は、加速度データをプロセッサ100に出力する前に、内蔵の加速度検出手段から出力される加速度信号(加速度データ)に対して所望の処理を行うための、組込み式の信号処理装置また他の種類の専用の処理装置を備えてもよい。たとえば、組込み式または専用の処理装置は、加速度センサ104が静的な加速度(たとえば、重力加速度)を検出するためのものである場合、検知された加速度データをそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
無線モジュール106は、たとえばBluetoothの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ118から放射する。つまり、入力データは、無線モジュール106によって微弱電波信号に変調されてアンテナ118(コントローラ14)から送信される。この微弱電波信号が上述したゲーム装置12に設けられた無線コントローラモジュール52によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置12(CPU40)は、コントローラ14からの入力データを取得することができる。そして、CPU40は、取得した入力データとアプリケーションプログラム(ゲームプログラム)とに従ってアプリケーションの処理(ゲーム処理)を行う。
さらに、上述したように、コントローラ14には、撮像情報演算部108が設けられる。この撮像情報演算部108は、赤外線フィルタ108a、レンズ108b、撮像素子108cおよび画像処理回路108dによって構成される。赤外線フィルタ108aは、コントローラ14の前方から入射する光から赤外線のみを通過させる。上述したように、モ
ニタ28の表示画面近傍(周辺)に配置されるマーカ32aおよび32bは、モニタ28の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ108aを設けることによってマーカ32aおよび32bの画像をより正確に撮像することができる。レンズ108bは、赤外線フィルタ108aを透過した赤外線を集光して撮像素子108cへ出射する。撮像素子108cは、たとえばCMOSセンサあるいはCCDのような固体撮像素子であり、レンズ108bによって集光された赤外線を撮像する。したがって、撮像素子108cは、赤外線フィルタ108aを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子108cによって撮像された画像を撮像画像と呼ぶ。撮像素子108cによって生成された画像データは、画像処理回路108dで処理される。画像処理回路108dは、撮像画像内における撮像対象(マーカ32aおよび32b)の位置を算出し、第4所定時間毎に、当該位置を示す各座標値を撮像データ(後述するマーカ座標データ)としてプロセッサ100に出力する。なお、画像処理回路108dにおける処理については後述する。
図5は、コントローラ14を用いてゲームプレイするときの状態を概説する図解図である。図5に示すように、ゲームシステム10でコントローラ14を用いてゲームをプレイする際、プレイヤは、一端がコントローラ14に結び付けられたストラップ120を一方の手の手首に巻いた状態で、その同じ手の手のひらでコントローラ14を把持する。厳密に言うと、プレイヤは、コントローラ14の先端面(図3で示す撮像情報演算部108が撮像する光の入射口94側)がマーカ32aおよび32bの方を向く状態でコントローラ14を把持する。これらマーカ32aおよび32bは、図示したように、モニタ28の画面の横(水平)方向と平行に配置されている。この状態で、プレイヤは、コントローラ14が指示する画面上の位置を変更したり、コントローラ14と各マーカ32aおよび32bとの距離を変更したりすることによってゲーム操作を行う。
図6は、マーカ32aおよび32bと、コントローラ14との視野角を説明するための図である。図6に示すように、マーカ32aおよび32bは、それぞれ、視野角θ1の範囲で赤外光を放射する。また、撮像情報演算部108の撮像素子108cは、コントローラ14の視線方向を中心とした視野角θ2の範囲で入射する光を受光することができる。たとえば、マーカ32aおよび32bの視野角θ1は、共に34°(半値角)であり、一方、撮像素子108cの視野角θ2は41°である。プレイヤは、撮像素子108cが2つのマーカ32aおよび32bからの赤外光を受光することが可能な位置および向きとなるように、コントローラ14を把持する。具体的には、撮像素子108cの視野角θ2の中にマーカ32aおよび32bの少なくとも一方が存在し、かつ、マーカ32aまたは32bの少なくとも一方の視野角θ1の中にコントローラ14が存在する状態となるように、プレイヤはコントローラ14を把持する。この状態にあるとき、コントローラ14は、マーカ32aおよび32bの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ14の位置および向きを変化させることによってゲーム操作を行うことができる。
なお、コントローラ14の位置および向きがこの範囲外となった場合、コントローラ14の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、必要な場合、上記範囲を「操作可能範囲」と呼ぶ。
操作可能範囲内でコントローラ14が把持される場合、撮像情報演算部108によって各マーカ32aおよび32bの画像が撮像される。すなわち、撮像素子108cによって得られる撮像画像には、撮像対象である各マーカ32aおよび32bの画像(対象画像)が含まれる。図7は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路108dは、各マーカ32aおよび32bの撮像画像における位置を表す座標(マーカ座標)を算出する。なお、ここで算出される座標は、撮像画像(ゲーム画面)の左上端を原点Oとするワールド座標系(X‐Y座標系:後述)に従う。
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路108dは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路108dは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である2つのマーカ32aおよび32bに対応する画像32a’および32b’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像である画像32a’および32b’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路108dは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子108cの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子108cによって撮像された撮像画像の解像度が126×96であるとし、重心位置は1024×768のスケールで算出されるものとする。つまり、マーカ座標は、(0,0)から(1024,768)までの整数値で表現される。
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをY軸正方向とし、右向きをX軸正方向とする座標系(XY座標系)で表現されるものとする。
また、対象画像が正しく検出される場合には、判定処理によって2つの高輝度部分が対象画像として判定されるので、2箇所のマーカ座標が算出される。画像処理回路108dは、算出された2箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ(マーカ座標データ)は、上述したように、プロセッサ100によって入力データに含まれ、ゲーム装置12に送信される。
ゲーム装置12(CPU40)は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ28の画面上におけるコントローラ14の指示位置P(指示座標PX,PY)と、コントローラ14からマーカ32aおよび32bまでの各距離とを算出することができる。具体的には、2つのマーカ座標の中点の位置から、コントローラ14の向いている位置すなわち指示位置が算出される。また、撮像画像における対象画像間の距離が、コントローラ14と、マーカ32aおよび32bとの距離に応じて変化するので、2つのマーカ座標間の距離を算出することによって、ゲーム装置12はコントローラ14とマーカ32aおよび32bとの間の距離を把握できる。
ゲーム装置12を用いた通信システム120の一例が図8に示される。図8に示すように、通信システム120は、複数のゲーム装置12を含み、各ゲーム装置12はインターネットやLANのようなネットワーク126を介して、メールサーバ122および配信サーバ124に接続される。このようなネットワーク126に接続されることによって、メールサーバ122を介したメールの送受信や配信サーバ124からのデータのダウンロードを行うことが可能となる。
ゲーム装置12同士は、ネットワーク126を介して通信可能である。プレイヤが入力したメッセージやゲーム装置12で生成したメッセージは、電子メールの形式に変換され、ネットワーク126およびメールサーバ122を介して、ゲーム装置12同士で送受信(やり取り)される。このため、メールサーバ122は、汎用的なメールサーバを用いることができる。したがって、ゲーム装置12は、PCや携帯電話機のような端末(他のゲーム装置12以外の端末)との間でメッセージすなわち電子メールをやり取りすることも可能である。また、電子メールにゲームデータを添付することで、他のゲーム装置12との間でゲームデータ(後述するリプレイデータなど)をやり取りすることができる。
以上のように構成されたゲームシステム10で同時に複数のゲームを行う場合(以下、平行ゲームと称する)の処理について、以下に説明する。最初、並行ゲームの概要を説明しておく。ここでは3つのゲーム処理を同時に実行するもので、これら3つのゲーム処理にそれぞれ対応する3つの画像が単一のゲーム画面(28)内に表示される。
3つのゲーム処理は、共通のルールに従うものでも、互いに異なるルールに従うものでもよい。すなわち、第1〜第3の3つのゲーム処理は、通常は第1〜第3の3つのゲームにそれぞれ対応するが、3つのゲームのうちいずれか2つまたは1つに対応してもよい。
また、3つのゲーム処理の各々は、通常は現在のユーザの操作に基づいて実行されるが、過去の操作のリプレイデータに基づいて実行されてもよい。したがって、2人または3人で同時にプレイしても、1人でプレイしてもよい。1人でプレイする場合には、他の2つのゲーム処理の各々は、過去の操作、つまり過去の自分の操作または過去の他人の操作のリプレイデータに基づいて実行される。また、他の2つのゲーム処理のうち、1つだけをリプレイに基づいて行い、もう1つは実行しないようにしてもよい。
3人で3つのゲームをプレイする場合のゲーム画面の一例を図9に示す。図9のゲーム画面では、3つのゲーム(第1〜第3ゲーム)が3人(プレイヤ1〜3)の現在の操作(リアルタイムプレイデータ)に基づいて進行する。
1人で3つのゲームをプレイする場合のゲーム画面の一例を図10に示す。図10のゲーム画面では、第1ゲーム(W1)だけがプレイヤ1の現在の操作に基づいて進行し、第2および第3のゲームは過去の操作(リプレイデータ)に基づいて進行する。ここでは、過去の操作はプレイヤ1自身の操作であるとする。したがってプレイヤ1は、過去の自分自身とプレイすることになる。
図9または図10を参照して、このゲーム画面は3つのウィンドウW1〜W3を含む。ここでは、第1ゲームの画像がウィンドウW1に表示され、第2ゲームの画像がウィンドウW2に表示され、そして第3ゲームの画像がウィンドウW3に表示される。また、ウィンドウW1〜W3にはプレイヤ1〜プレイヤ3が割り当てられる。したがって、第1ゲームはプレイヤ1の現在の操作に基づいて進行し、第2ゲームはプレイヤ2の現在の操作に基づいて進行し、そして第3ゲームはプレイヤ3の現在の操作に基づいて進行する。
ゲーム画面にはまた、ゲーム処理の進行状況を示す数値、具体的にはスコア,倍率およびステージをそれぞれ示す3つの数値がウィンドウ毎に(すなわちゲーム処理毎に)表示される。各ウィンドウに割り当てられた3つの数値は、対応するゲーム処理の進行につれて更新される。
第1ゲームの進行例を図11(A)〜図11(C)に示す。図11(A)を参照して、ゲーム画像は、円Cと、円Cに沿って移動するプレイヤオブジェクトPOと、円Cの内外を任意の方向に移動する敵オブジェクトEOとを含む。プレイヤオブジェクトPOの移動は、コントローラ14からの操作データ(リアルタイムデータ)またはフラッシュメモリ44などに格納されたリプレイデータに基づく。たとえば、Aボタン78への操作に応じて、プレイヤオブジェクトPOの移動方向が反転するとともに、飛び跳ねるなどの挙動をする。プレイヤオブジェクトPOが敵オブジェクトEOと衝突すると(図11(B)参照)、敵オブジェクトEOは爆発し、破片Frが周囲に飛び散る(図11(C)参照)。スコア,倍率およびステージは、こうして爆破した敵オブジェクトの個数などに基づいて算出される。
第2ゲームの進行例を図12(A)〜図12(C)に示す。図12(A)を参照して、ゲーム画像は、その一方端を中心に回転する棒Sと、棒Sの周辺を任意の方向に移動する敵オブジェクトEOとを含む。棒Sの移動は、上記と同様のリアルタイムデータまたはリプレイデータに基づいて制御される。たとえば、Aボタン78への操作に基づき、操作中は位置固定状態、操作解除時には移動可能状態というように状態を切り替える。位置固定状態のときには棒Sはその場で回転し、移動可能状態のときには回転の遠心力や慣性に基づいた処理によって、棒Sが回転しながらゲーム空間内を移動したりする。棒Sが敵オブジェクトEOと衝突すると(図12(B)参照)、敵オブジェクトEOは棒Sとは垂直な方向に弾き飛ばされる(図12(C)参照)。スコア,倍率およびステージは、こうして弾き飛ばした敵オブジェクトの個数などに基づいて算出される。
第3ゲームの進行例を図13(A)〜図13(C)に示す。図13(A)を参照して、ゲーム画像は、頭Hおよび尻尾Tを持ったプレイヤオブジェクトPOと、プレイヤオブジェクトPOの周辺に配置される敵オブジェクトEOとを含む。プレイヤオブジェクトPOの向きつまり頭Hの位置は、上記と同様のリアルタイムデータまたはリプレイデータに基づいて変化する。具体的には、頭Hは十字キー操作に応じて位置を変える。頭Hが敵オブジェクトEOに隣接すると(図13(B)参照)、敵オブジェクトEOは炎上し、これによる爆風Blが発生する(図13(C)参照)。スコア,倍率およびステージは、こうして焼き払った敵オブジェクトの個数などに基づいて算出される。
このような第1〜第3ゲームが並列に進行するとき、各ゲームは他のゲームから影響を受ける。ゲーム間で作用する影響の一例を図14(A)〜図14(C)に示す。図14(A)および図14(B)を参照して、第2ゲームの画面内で弾き飛ばされた敵オブジェクトEOは、ウィンドウW2およびW1の間の境界B1を越え、第1ゲームの画面内に入り込む。図14(C)を参照して、第1ゲームの画面内では、敵オブジェクトEOの進路上に別の敵オブジェクトEOが存在しており、両者は衝突して爆発する。
ゲーム間で作用する影響の他の一例を図29 (A)〜図29(C)に示す。図29(A)を参照して、ウィンドウW2内のプレイヤオブジェクトPOは、Aボタンが開放されている期間、自身の回転によってウィンドウW1側へと移動する。一方、ウィンドウW1内には、ウィンドウW2との境界B1の近傍に敵オブジェクトEOがある。図29(B)を参照して、プレイヤは、プレイヤオブジェクトPOがこの敵オブジェクトEOに対して適切な位置にきたタイミングで、Aボタンを押下する。応じて棒Sは、図29(C)に示すように、その一方端を中心に回転をし続け、その他方端が境界B1を越えてウィンドウW1内の敵オブジェクトEOと衝突する。
ゲーム間で作用する影響のその他の一例を図15(A)〜図15(C)に示す。図15(A)および図15(B)を参照して、第1ゲームの画面内で爆発により飛散した破片Frの1つは、まずウィンドウW1およびW2の間の境界B1を越え、第2ゲームの画面内に入り込む。第2ゲームの画面内では、越境してきた破片Frの進路上にオブジェクトは存在しない。このため破片Frは、第2画面を素通りし、その後ウィンドウW1およびW2の間の境界B1を越えて第3ゲームの画面内に入り込む。第3ゲームの画面内では、破片Frの進路上に敵オブジェクトEOが存在しており、敵オブジェクトEOは破片Frを受けて爆発する。このように、影響は、第2ゲームで隔てられた第1ゲームおよび第3ゲームの間でも作用する。
ゲーム間で作用する影響のその他の一例を図16(A)〜図16(C)に示す。図16(A)を参照して、図13(C)に示した敵オブジェクトEOの炎上による爆風Blは、周囲に拡散し、ウィンドウW3およびW2の間の境界B2を越えて第2ゲームの画面内に入り込む。第2ゲームの画面内では、境界B2の近傍に敵オブジェクトEOがあり、爆風Blはこの敵オブジェクトEOに到達する。図17(C)を参照して、敵オブジェクトEOは、爆風Blを受けて発火し、焼失する。
ところで、3つのウィンドウW1〜W3の間の大小関係および上下方向(Y方向)の位置関係は、3つのゲーム処理の間の進み具合の違いにより変化する。具体的には、ウィンドウ間の大小関係はゲーム処理間の倍率の違いにより変化し、ウィンドウ間の位置関係(重心位置の上下関係)はゲーム処理間のステージの違いにより変化する。なお、大小関係が変化するとき、3つのウィンドウの横幅の合計は一定に保たれる。
スコア,倍率およびステージが3ゲーム間で異なる場合のゲーム画面の一例を図17に示す。図17を参照して、倍率は、第1ゲーム(W1)および第3ゲーム(W3)の各々では“9”で、第2ゲームでは“1”なので、ウィンドウW1およびW3が同じ大きさであり、ウィンドウW2はこれより小さい。ステージは、第1〜第3ゲームでそれぞれ“12”,“01”および“06”なので、ウィンドウW1の重心が最も高い位置にあり、次に高いのがウィンドウW3で、最後はウィンドウW2となる。
以上のような並列ゲームでは、図18に示すようなワールド座標系および第1〜第3の3つのローカル座標系が利用される。図18を参照して、ゲーム画面(28)上の任意の点Pに対して、ゲーム画面の左上端を原点Oとするワールド座標系(X‐Y座標系)が定義され、“P(X,Y)”のように記述される。第1ゲームのゲーム空間に関しては、ウィンドウW1の左上端を原点o1とする第1ローカル座標系(x1‐y1座標系)が定義され、“P(x1,y1)”のように記述される。同様に、第2ゲームのゲーム空間に関してウィンドウW2の左上端を原点o2とする第2ローカル座標系(x2‐y2座標系)が定義され、“P(x2,y2)”のように記述される。そして第3ゲームのゲーム空間に関してウィンドウW3の左上端を原点o3とする第3ローカル座標系(x3‐y3座標系)が定義され、“P(x3,y3)”のように記述される。
原点o1のワールド座標を(X1,Y1)とすると、(X,Y)と(x1,y1)との間には、次式(1)の関係が成り立つ。
(x1,y1)=(X−X1,Y−Y1) …(1)
原点o2のワールド座標を(X2,Y2)とすると、(X,Y)と(x2,y2)との間には、次式(2)の関係が成り立つ。
(x2,y2)=(X−X2,Y−Y2) …(2)
原点o3のワールド座標を(X3,Y3)とすると、(X,Y)と(x3,y3)との間には、次式(3)の関係が成り立つ。
(x3,y3)=(X−X3,Y−Y3) …(3)
また、ウィンドウW1のサイズは“dx1×dy1”のように記述され、ウィンドウW2のサイズは“dx2×dy2”のように記述され、そしてウィンドウW3のサイズは“dx3×dy3”のように記述される。
並行ゲームを行う場合の内部メインメモリ42eのメモリマップを図19に示す。図19を参照して、メインメモリ42eは、プログラム領域130およびデータ領域140を含む。プログラムおよびデータの一部は、光ディスク22またはフラッシュメモリ44から一度に全部または必要に応じて部分的にかつ順次的に読み出され、内部メインメモリ42eに記憶され、そしてCPU40やシステムLSI42内のGPU42b,DSP42cなどで処理される。なお、図19にはメモリマップの一部のみが示されており、処理に必要な他のプログラムおよびデータも記憶される。
いま、プログラム領域130には、並行ゲームプログラム132,入出力制御プログラム134および通信制御プログラム136などが格納されている。並行ゲームプログラム132は、上述の並行ゲームを実現するためのプログラムであり、図23のフローチャート(メインルーチン)に対応する。
並行ゲームプログラム132は、第1〜第3ローカル処理プログラム132a〜132cおよびワールド処理プログラム132dをサブルーチンとして含む。第1〜第3ローカル処理プログラム132a〜132cは、第1〜第3ゲーム(ゲーム画面がウィンドウW1〜W3に示される:図9参照)を実現するためのプログラムであり、図23のステップS7〜S11に対応する。ワールド処理プログラム132dは、全体の制御や第1〜第3ゲーム間の関連付けを行うためのプログラムであり、図23のステップS13に対応する。なお、図23の残りのステップつまりステップS1〜S5およびS15は、並行ゲームプログラム132が受け持つ。
入出力制御プログラム134は、主として入出力プロセッサ42aを制御するためのプログラムであり、入出力プロセッサ42aは、このプログラムに従って、たとえば、コントローラ14からの操作データを内部メインメモリ42eのリアルタイムプレイデータ領域144に書き込む。
無線通信制御プログラム136は、主として無線通信モジュール50aを制御するためのプログラムであり、無線通信モジュール50aは、このプログラムに従い、他のゲーム装置12との間でリプレイデータ(図20参照)のやり取りを行う。なお、リプレイデータのやり取りは、ここでは電子メールを通じて行われる。
データ領域140は、影響オブジェクトデータ領域142,リアルタイムリプレイデータ領域144,リプレイデータ領域146,スコア・倍率・ステージデータ領域148,ウィンドウ位置・サイズデータ領域150および画像データ領域152などを含む。
影響オブジェクトデータ領域142は、第1〜第3ローカル処理(図24,図25参照)に割り当てられた第1〜第3ローカル領域142a〜142c,およびワールド処理(図26参照)に割り当てられたワールド領域142dを含む。
リアルタイムプレイデータ領域144は、リアルタイムプレイデータつまりコントローラ14からリアルタイムに出力される操作データ(現在の操作データ)を一時保持するための領域である。リプレイデータ領域146は、フラッシュメモリ44などから読み出されたリプレイデータ(過去の操作データ)を記憶するための領域である。スコア・倍率・ステージデータ領域148は、第1〜第3ローカル処理によって算出されるスコア,倍率およびステージの値を示すデータを記憶するための領域である。ウィンドウ位置・サイズデータ領域150は、メインルーチンによって算出されるウィンドウW1〜W3の原点位置およびサイズ(図18参照)を記憶するための領域である。画像データ領域152は、ウィンドウの内外にオブジェクトや背景を描画するための画像データなどが格納される。
リプレイデータの構造を図20に示す。図20を参照して、リプレイデータは、ある1つのプレイに対応するリプレイデータ1,他の1つのプレイに対応するリプレイデータ2,…を含む。リプレイデータ1,2,…はそれぞれ、ゲームID,ステージ生成データおよびフレーム再生データを含む。フレーム再生データは、フレーム1に対応するフレーム1データ,フレーム2に対応するフレーム2データ,…を含む。フレーム1データ,フレーム2データ,…はそれぞれ、操作データおよび影響オブジェクトデータを含む。
次に、第kローカル影響オブジェクトデータ(k=1,2または3)の構造を図21に示す。第kローカル影響オブジェクトデータは、影響1,影響2,…の各々について、ゲームID,オブジェクトID,サイズデータ,位置データ,速度(角速度)データ,影響種別データおよび影響範囲データを含む。ここでの位置データは、第kローカル座標系に従う。
ワールド影響オブジェクトデータの構造が図22に示されている。ワールド影響オブジェクトデータもまた、影響1,影響2,…の各々について、ゲームID,オブジェクトID,サイズデータ,位置データ,速度(角速度)データ,影響種別データおよび影響範囲データを含む。ここでの位置データは、ワールド座標系に従う。
CPU40は、プログラム領域130に格納された並行ゲームプログラム132に基づいて、図23のフローチャートに従う処理を実行する。図23を参照して、CPU40は最初、ステップS1で初期処理を実行する。初期処理には、データ領域140を初期化する処理,モニタ28に初期画面を表示する処理,コントローラ14によるモード選択操作を受け付ける処理,リプレイモードが選択されたときリプレイデータをフラッシュメモリ44から内部メインメモリ42eのリプレイデータ領域146に転送する処理,および各種の初期値を設定する処理などが含まれる。
初期処理が完了すると、CPU40は、ステップS3で、各ゲームのスコア,倍率およびステージの値をスコア・倍率・ステージデータ領域148から取得する。次のステップS5では、取得した値に基づいて、各ウィンドウW1〜W3の位置およびサイズを算出し、結果をウィンドウ位置・サイズデータ領域150に登録する。ここで各ウィンドウW1〜W3の位置は、前述した原点o1〜o3のワールド座標系で記述される(図18,上式(1)〜(3)参照)。
位置およびサイズの登録が完了すると、CPU40の処理は、ステップS7〜S15のループに入る。なお、このループ処理は、1フレーム毎に(たとえば1/60秒周期で)実行される。ステップS7では第1ゲーム(W1:図9参照)に対応する第1ローカル処理を実行し、ステップS9では第2ゲーム(W2)に対応する第2ローカル処理を実行し、そしてステップS11では第3ゲーム(W3)に対応する第3ローカル処理を実行する。
このようなゲーム毎の処理に続いて、CPU40は、ステップS13でワールド処理を実行する。第1〜第3ゲームは、このワールド処理を通じて相互に関連付けられる。ステップS15では、並行ゲームを終了するか否かを判別し、判別結果がNOであればステップS3に戻る。
上記ステップS7〜S15の第1〜第3ローカル処理、すなわち“第kローカル処理(k=1,2または3)は、詳しくは図24および図25のフローチャートに従う。まず図24を参照して、ステップS21では、リプレイモードが選択されているか否かを判別する。なお、モード選択操作の結果を示すモード情報(図示せず)は、フラッシュメモリ44などに格納されている。ステップS21の判別結果がYESであれば、ステップS23に移って、リプレイデータ領域146からリプレイデータを取得する一方、ステップS21の判別結果がNOであれば、ステップS25に移って、リアルタイムプレイデータ領域144からリアルタイムプレイデータを取得する。
CPU40はその後、ステップS27に移って、ワールド領域142dからワールド影響オブジェクトデータ(図22参照)を取得する。なお、前述のように、ワールド影響オブジェクトデータには、各ゲームで生成された影響オブジェクトに関する情報(ワールド座標に従う位置データを含む)が記述されている。
次のステップS29では、ステップS27で取得したワールド影響オブジェクトデータから、自ゲームつまり第kゲームの影響オブジェクトに関する部分を除去する。その次のステップS31では、除去結果つまり他ゲームの影響オブジェクトデータに含まれる位置データに対し、ワールド座標系から第kローカル座標系への変換処理を施す。この変換処理は、上式(1)〜(3)に基づいて実行される。その後、ステップS33に進む。
図25を参照して、ステップS33では、自ウィンドウWk内に他ゲームで生成された影響オブジェクト(他影響オブジェクト)があるか否かを判別して、結果がYESであればステップS35に進む一方、結果がNOであればステップS37に進む。すなわち、ステップS31で変換されたローカル座標が、ウィンドウの範囲内であるかどうか判別する。ステップS35では、ステップS23またはS25で取得したプレイデータおよびステップS31で変換処理を施した後の他影響オブジェクトデータの両方に基づくゲーム処理を実行する。ステップS37では、取得プレイデータのみに基づくゲーム処理を実行する。ゲーム処理は、上述のいずれの種類のゲームを実行しているかによってそれぞれ異なる。
ここで、ステップS35,S37のゲーム処理の具体例を説明する。たとえば、図14(A)〜図14(C)に示した図は、第2ゲーム(W2)から第1ゲーム(W1)に影響が及んでいる状態なので、第1ローカル処理ではステップS35が実行され、第2ローカル処理ではステップS37が実行される。この場合の影響オブジェクトは、第2ゲームによってウィンドウW2内に生成された敵オブジェクトEOである。この敵オブジェクトEOは、棒Sで弾かれて境界B1を越え、ウィンドウW1に入り込んでいる。
ゲーム処理は、リアルタイムプレイデータやリプレイデータに基づいて実行され、各オブジェクトの位置や状態等が決定される。リプレイデータに基づいて実行される場合には、フレーム毎に、リプレイデータ中の対応フレームの操作データを読み出し、ユーザの操作によって当該操作データが入力されたのと同様の処理を行って過去のプレイを再現する。さらに、過去のプレイ時における、他のゲームからの影響オブジェクトに関しては、操作データからだけでは再現できないので、当該フレームに対応する影響オブジェクトデータを読み出して、過去のプレイ時における影響オブジェクトとその影響を再現することになる。
なお、この敵オブジェクトEOの表示上のサイズおよび速度は、越境の前後で変わることがない。ウィンドウ間の大小関係や位置関係が変化しても、敵オブジェクトEOのサイズおよび速度は維持される。したがって、ウィンドウが小さい状態の場合には、相対的に大きな影響を受けることになる。
ただし、第1ゲーム(W1)および第2ゲーム(W2)では互いに異なるローカル座標系が利用されるため(図18参照)、位置データには座標変換処理を施す必要がある。この座標変換処理は、第2ローカル座標系からワールド座標系への第1変換処理,およびワールド座標系から第1ローカル座標系への第2変換処理の2つの変換処理を含む。
すなわち、最初、影響元である第2ローカル処理(S5)からワールド処理(S9)に第2ローカル影響オブジェクトデータ(図21参照)が渡され、ワールド処理はその位置データに第1変換処理を施す(S65:後述)。次に、ワールド処理から影響先である第1ローカル処理に第1変換処理の結果つまりワールド影響オブジェクトデータ(図22参照)が渡され、第1ローカル処理はその位置データに第2変換処理を施す(S31)。これにより、第1〜第3ローカル処理の間での影響伝達が可能となる。
このようなゲーム処理の後、CPU40は、ステップS35に移って、自ゲームつまり第kゲームの影響オブジェクトがゲーム処理によって生成されたか否かを判別する。この判別結果がYESであれば、ステップS41で第kローカル影響オブジェクトデータ(図21参照)を第kローカル領域(142a〜142c)に登録した後、ステップS43に進む。一方、判別結果がNOであれば、直ちにステップS43に進む。
ステップS43では、現フレームでの操作データつまりリアルタイムプレイデータを、リプレイデータとしてリプレイデータ領域146に記録する。さらに、他のゲームの影響オブジェクトが自ウィンドウに含まれている場合には、当該影響オブジェクトの情報もリプレイデータ領域146に記録する。続くステップS45では、ゲーム処理結果に基づいてスコア,倍率およびステージの値を計算し、これをスコア・倍率・ステージデータ領域148に登録する。そしてステップS47で、ゲーム処理結果および計算結果に基づいて、自ウィンドウWk内への描画を行う。この描画処理では、ウィンドウ位置・サイズデータ領域150のデータおよび画像データ領域152のデータが利用される。描画後、メインルーチンに復帰する。ここで、自ゲーム内のオブジェクトの位置や大きさはローカル座標系において規定されるものであるので、ウィンドウが大きい場合には、表示上大きなオブジェクトが描画されることになる。
以上のような第kローカル処理が、実行中のゲームの数だけそれぞれ行われる。なお、本実施形態では、k=3であるが、3に限らずkはいくらであってもよく、同時に実行するゲームの数、つまりウィンドウの数に応じて適宜設定され得るものである。
上記ステップS13のワールド処理は、詳しくは図26のフローチャートに従う。図26を参照して、CPU40は、まずステップS61で、各ゲームの影響オブジェクトデータつまり第1〜第kローカル影響オブジェクトデータ(図21参照)が影響オブジェクトデータ領域142に登録されているか否かを判別する。この判別結果がYESであればステップS63〜S67の一連の処理を経てステップS69に進み、NOであれば直ちにステップS69に進む。
ステップS63では、各ゲームの影響オブジェクトデータを影響オブジェクトデータ領域142から取得し、ステップS65では、取得データに含まれる位置データに各ローカル座標からワールド座標系への変換を施す。ステップS67では、座標変換後の位置データを含む影響オブジェクトデータつまりワールド影響オブジェクトデータ(図22参照)をワールド領域142dに登録し、そしてステップS69では、ウィンドウW1〜W3の外部の部分の描画を行う。この描画処理では、ウィンドウ位置・サイズデータ領域150のデータおよび画像データ領域152のデータが利用される。その後、メインルーチンへ復帰する。
以上から明らかなように、この実施例では、ゲーム装置12は第1〜第3のゲーム処理を同時に実行可能である。ゲーム装置12のCPU40は、第1ゲーム処理を第1操作データに基づいて実行して結果をウィンドウW1に表示し(S7)、第2ゲーム処理を第2操作データに基づいて実行して結果をウィンドウW2に表示し(S9)、そして第3ゲーム処理を第3操作データに基づいて実行して結果をウィンドウW3に表示する(S11)。
このときCPU40は、第1ゲーム処理の実行結果に基づく影響を第2ゲーム処理の実行結果が表示されたウィンドウW2内および第3ゲーム処理の実行結果が表示されたウィンドウW3内の各々に及ぼし、第2ゲーム処理の実行結果に基づく影響を第3ゲーム処理の実行結果が表示されたウィンドウW3内および第1ゲーム処理の実行結果が表示されたウィンドウW1内の各々に及ぼし、そして第3ゲーム処理の実行結果に基づく影響を第1ゲーム処理の実行結果が表示されたウィンドウW1内および第2ゲーム処理の実行結果が表示されたウィンドウW2内の各々に及ぼす。こうして、第1〜第3のゲーム処理のうち任意の1つのゲーム処理の影響が他の任意の1つのゲーム処理に及ぶ。
ここで、ウィンドウW1〜W3の各々は、モニタ28の画面内に配置された領域である。モニタ28の画面はワールド座標系(X‐Y座標系)と関連付けられ、ウィンドウW1は第1ローカル座標系(x1‐y1座標系)と関連付けられ、そしてウィンドウW2は第2ローカル座標系(x2‐y2座標系)と関連付けられ、そしてウィンドウW3は第3ローカル座標系(x3‐y3座標系)と関連付けられる。
また、第1処理ステップの実行結果はウィンドウW2および/またはW3に表示されるべき第1影響オブジェクトの位置データを含み、第2処理ステップの実行結果はウィンドウW3および/またはW1に表示されるべき第2影響オブジェクトの位置データを含み、そして第3処理ステップの実行結果はウィンドウW1および/またはW2に表示されるべき第3影響オブジェクトの位置データを含む。
CPU40は、第1影響オブジェクトの位置データに第1ローカル座標系からワールド座標系への第1変換処理を施し(S65)、そして第1変換処理後の位置データにワールド座標系から第2座標系への第2変換処理を施す(S31)。第2,第3オブジェクトの位置データに対しても同様の変換処理が施される。これにより、異なるローカル座標系に従うゲーム処理間で、相互に影響を及ぼし合うこと可能となる。
この実施例ではまた、第1〜第3操作データの少なくとも1つが現在の操作に基づくリアルタイム操作データであり、残りは過去の操作に基づくリプレイ操作データである。これにより、プレイヤは過去に実在したプレイヤとゲームをプレイできる。過去の操作はプレイヤ自身の操作でもよく、この場合、プレイヤは過去の自分自身とゲームをプレイできることになる。プレイヤはまた、将来のプレイが有利に進むように現在のプレイを進めることが可能で、これによりゲームの戦略性が高まる。
なお、この実施例では、第1〜第3の3つのゲーム処理を同時に実行したが、同時に実行されるゲーム処理の個数は、2個でも4個以上でもよい。
なお、この実施例では、リアルタイム操作データは、ゲームシステム10(ゲーム装置12)内で利用されたが、通信システム120を通じてゲームシステム10(ゲーム装置12)間でやり取りされてもよい。
なお、この実施例では、第1ゲーム処理の結果および第2ゲーム処理の結果を単一の画面(28)内の2つのウィンドウW1およびW2にそれぞれ表示したが、2つの画面にそれぞれ表示してもよい。2画面を有するゲーム装置の一例を図27および図28に示す。図27および図28を参照して、このゲーム装置12Aでは、CPUコア40Aが前実施例のCPU40と対応し、RAM42Aが前実施例の内部メインメモリ42eと対応する。第1ゲーム処理の結果(ウィンドウW1の表示内容)は第1LCD28Aに表示され、第2ゲーム処理の結果(W2)は第2LCD28Bに表示される。すなわち、第1ローカル処理(図24および図25参照)における描画処理(S47)は第1LCD28Aに対して行われ、第2ローカル処理(図24および図25参照)における描画処理(S47)は第2LCD28Bに対して行われる。
この場合、たとえば、ワールド座標系(X‐Y座標系)が割り当てられた仮想的な平面(モニタ28の画面に相当)上に第1LCD28Aおよび第2LCD28Bを配置して、第1LCD28Aおよび第2LCD28B(ウィンドウW1およびW2に相当)に第1ローカル座標系(x1‐y1座標系)および第2ローカル座標系(x2‐y2座標系)をそれぞれ割り当てる(図18参照:ただしLCDサイズは共通でよい)。これにより、第1ゲーム処理および第2ゲーム処理の間で、前実施例と同様の影響を及ぼし合うことができる。このほか、第1LCD28Aおよび第2LCD28Bに共通の座標系つまりワールド座標系を割り当てる方法もある。
以上では、一例として、ゲームシステム10について説明したが、この発明は、複数のゲーム処理を並列に実行可能な処理システムないし処理装置(たとえば携帯電話端末,パーソナルコンピュータなど)に適用できる。
この発明の一実施例のゲームシステムの概要を示す外観図である。 ゲームシステムの電気的構成の一例を示すブロック図である。 (A)はゲームシステムで用いられるコントローラを後方上側から見た斜視図であり、(B)はゲームシステムで用いられるコントローラを前方下側から見た斜視図である。 コントローラの電気的構成の一例を示すブロック図である。 コントローラを用いてゲームをプレイするときの状態を示す図解図である。 ゲームシステムにおけるマーカおよびコントローラの視野角を示す図解図である。 マーカの画像(対象画像)を含む撮像画像の一例を示す図解図である。 ゲームシステムと協働する通信システムの一例を示すブロック図である。 ゲーム画面の一例を示す図解図である。 ゲーム画面の他の一例を示す図解図である。 (A)〜(C)はゲーム画面に含まれる第1ゲーム画像の変化の一例を示す図解図である。 (A)〜(C)はゲーム画面に含まれる第2ゲーム画像の変化の一例を示す図解図である。 (A)〜(C)はゲーム画面に含まれる第3ゲーム画像の変化の一例を示す図解図である。 (A)〜(C)は第1ゲームが第2ゲームの影響を受ける様子を示す図解図である。 (A)〜(C)は第3ゲームが第1ゲームの影響を受ける様子を示す図解図である。 (A)〜(C)は第2ゲームが第3ゲームの影響を受ける様子を示す図解図である。 ゲーム画面の他の一例を示す図解図である。 この実施例に適用される座標系を示す図解図である。 内部メインメモリのメモリマップの一例を示す図解図である。 リプレイデータの構造を示す図解図である。 ローカル影響オブジェクトデータの構造を示す図解図である。 ワールド影響オブジェクトデータの構造を示す図解図である。 CPUの動作の一部を示すフロー図である。 CPUの動作の他の一部を示すフロー図である。 CPUの動作のその他の一部を示すフロー図である。 CPUの動作のさらにその他の一部を示すフロー図である。 この発明の他の実施例のゲーム装置の概要を示す外観図である。 図27のゲーム装置の電気的構成の一例を示すブロック図である。 (A)〜(C)は第1ゲームが第2ゲームの別の影響を受ける様子を示す図解図である。
符号の説明
10 …ゲームシステム
12,12A …ゲーム装置
14 …コントローラ
28 …モニタ
28A …第1LCD
28B …第2LCD
40,40A …CPU
42e …内部メインメモリ
42A …RAM
120 …通信システム
W1〜W3 …ウィンドウ

Claims (10)

  1. ゲーム処理に応じたゲーム画面を表示装置の表示領域に表示するゲーム装置のコンピュータで実行されるゲームプログラムであって、
    第1のゲームのゲーム空間を表示させるための第1エリアと、第2のゲームのゲーム空間を表示させるための第2エリアとの少なくとも2つのエリアを前記表示領域上に設定し、前記第1エリアのゲーム空間に第1ローカル座標系を、前記第2エリアのゲーム空間に第2ローカル座標系を定義する表示エリア設定ステップと、
    前記第2のゲームにおいて、所定のゲーム処理を行い、ゲーム空間内の所定のオブジェクトである第2ゲームオブジェクトについて、前記第2ローカル座標系における座標を決定する第2ゲーム処理ステップと、
    前記第2ゲームオブジェクトに関して、前記第2ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置に変換する第1の位置変換ステップと、
    前記第2ゲームオブジェクトの前記ワールド座標系での位置を、前記第1ローカル座標系での位置に変換する第2の位置変換ステップと、
    前記第2ゲームオブジェクトの位置が前記第1エリア上にあることを判定する判定ステップと、
    前記判定ステップで前記第1エリア上にあると判定された第2ゲームオブジェクトを、前記第1ローカル座標系での位置に基づいて、前記第1のゲームに影響させたゲーム処理を行う第1ゲーム処理ステップと、
    前記第1のゲームのゲーム空間を前記第1エリアに表示させ、前記第2のゲームのゲーム空間を前記第2エリアに表示させる表示ステップを、前記コンピュータに実行させるゲームプログラム。
  2. 前記コンピュータに、前記第1エリアおよび前記第2エリアの間の位置関係および前記第1エリアおよび前記第2エリアの間の大小関係の少なくとも一方の関係を、前記第1ゲーム処理ステップの実行結果および前記第2ゲーム処理ステップの少なくとも一方の実行結果に基づいて変更し、当該変更に伴い、前記第1および第2ローカル座標とワールド座標との対応関係を変更する、エリア変更ステップをさらに実行させる、請求項1に記載のゲームプログラム。
  3. 前記第1ゲーム処理ステップにおけるゲーム処理は、ゲーム操作のための第1操作データに基づいて実行され、
    前記第2ゲーム処理ステップにおけるゲーム処理は、ゲーム操作のための第2操作データに基づいて実行される、請求項1記載のゲームプログラム。
  4. 前記第1操作データは、ユーザの操作に基づいて入力されるリアルタイム操作データであり、前記第2操作データは、ユーザの操作に替えてゲームを進行させるために記憶媒体に記憶されたリプレイ操作データである、請求項3に記載のゲームプログラム。
  5. 前記コンピュータに前記リアルタイム操作データを前記リプレイ操作データとして記憶媒体に記憶させる記憶ステップをさらに実行させる、請求項4に記載のゲームプログラム。
  6. 他のゲーム装置とリプレイ操作データを通信手段を通じて送受信する通信ステップを、前記コンピュータにさらに実行させる、請求項5記載のゲームプログラム。
  7. 前記表示領域は第1画面および第2画面から構成され、
    前記第1エリアおよび前記第2エリアは第1画面および第2画面にそれぞれ対応する、請求項1記載のゲームプログラム。
  8. 前記コンピュータに、
    前記第1ゲーム処理において、ゲーム空間内の所定のオブジェクトである第1ゲームオブジェクトについて、前記第1ローカル座標系における座標をさらに決定させ、
    前記第1の位置変換ステップにおいて、前記第1ゲームオブジェクトの前記第1ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置にさらに変換させ、
    前記第2の位置変換ステップにおいて、前記第1ゲームオブジェクトの前記ワールド座標系での位置を、前記第2ローカル座標系での位置にさらに変換させ、
    前記判定ステップにおいて、第1ゲームオブジェクトの位置が前記第2エリア上にあることをさらに判定させ、
    前記第2ゲーム処理ステップにおいて、前記判定ステップで前記第2エリア上にあると判定された前記第1ゲームオブジェクトを、前記第2ローカル座標系での位置に基づいて、前記第2のゲームに影響させたゲーム処理をさらに行わせる、請求項1記載のゲームプログラム。
  9. 前記表示エリア設定ステップは、第k(kは3以上の自然数)のゲームのゲーム空間を表示させるための第kエリアを前記表示領域上にさらに設定し、第kエリアのゲーム空間に第kローカル座標系を定義するステップをさらに含み、
    前記第kのゲームにおいて、所定のゲーム処理を行う第kゲーム処理ステップを、前記コンピュータにさらに実行させる請求項8に記載のゲームプログラム。
  10. ゲーム処理に応じたゲーム画面を表示装置の表示領域に表示するゲーム装置であって、
    第1のゲームのゲーム空間を表示させるための第1エリアと、第2のゲームのゲーム空間を表示させるための第2エリアとの少なくとも2つのエリアを前記表示領域上に設定し、それぞれのゲーム空間に第1および第2ローカル座標系を定義する表示エリア設定手段と、
    前記第2のゲームにおいて、所定のゲーム処理に基づき、ゲーム空間内の所定のオブジェクトである第2ゲームオブジェクトについて、前記第2ローカル座標系における座標を決定する第2ゲーム処理手段と、
    前記第2ゲームオブジェクトに関して、前記第2ローカル座標系における位置を、表示領域上に定義されるワールド座標系の位置に変換する第1の位置変換手段と、
    前記第2ゲームオブジェクトの前記ワールド座標系での位置を、前記第1ローカル座標系での位置に変換する第2の位置変換手段と、
    前記第2ゲームオブジェクトの位置が前記第1エリア上にあることを判定する判定手段と、
    前記判定手段で前記第1エリア上にあると判定された第2ゲームオブジェクトを、前記第1ローカル座標系での位置に基づいて、前記第1のゲームに影響させたゲーム処理を行う第1ゲーム処理手段と、
    前記第1のゲームのゲーム空間を前記第1エリアに表示させ、前記第2のゲームのゲーム空間を前記第2エリアに表示させる表示手段を備える、ゲーム装置。
JP2007262600A 2007-10-05 2007-10-05 ゲームプログラムおよびゲーム装置 Active JP5184036B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007262600A JP5184036B2 (ja) 2007-10-05 2007-10-05 ゲームプログラムおよびゲーム装置
US12/073,753 US20090093314A1 (en) 2007-10-05 2008-03-10 Game program and game apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007262600A JP5184036B2 (ja) 2007-10-05 2007-10-05 ゲームプログラムおよびゲーム装置

Publications (2)

Publication Number Publication Date
JP2009089851A JP2009089851A (ja) 2009-04-30
JP5184036B2 true JP5184036B2 (ja) 2013-04-17

Family

ID=40523739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007262600A Active JP5184036B2 (ja) 2007-10-05 2007-10-05 ゲームプログラムおよびゲーム装置

Country Status (2)

Country Link
US (1) US20090093314A1 (ja)
JP (1) JP5184036B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5330640B2 (ja) * 2006-05-09 2013-10-30 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JP5508032B2 (ja) 2010-01-07 2014-05-28 任天堂株式会社 ゲームプログラム、ゲーム装置、および、ゲームの制御方法
JP5471667B2 (ja) * 2010-03-19 2014-04-16 日本電気株式会社 クライアント及び画像表示システム
US10162491B2 (en) * 2011-08-12 2018-12-25 Otoy Inc. Drag and drop of objects between applications
JP5739578B1 (ja) * 2014-12-19 2015-06-24 株式会社Cygames 情報処理システム、サーバ、プログラム、及び情報処理方法
JP6995285B2 (ja) * 2017-03-30 2022-01-14 株式会社コナミデジタルエンタテインメント ゲーム装置、及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10165649A (ja) * 1996-10-09 1998-06-23 Sega Enterp Ltd ゲーム処理装置、ゲーム処理方法および記録媒体
JP2003154173A (ja) * 1996-10-09 2003-05-27 Sega Corp ゲーム処理装置及びゲーム用画像処理方法
CN1165359C (zh) * 1996-11-22 2004-09-08 世嘉企业股份有限公司 游戏装置、游戏显示方法及游戏系统
US8961304B2 (en) * 1999-09-17 2015-02-24 Aristocrat Technologies, Inc. Gaming device video display system
JP2001314648A (ja) * 2000-05-10 2001-11-13 Namco Ltd ゲーム装置および情報記憶媒体
JP2004105671A (ja) * 2002-09-16 2004-04-08 Genki Kk 空間位置共有システム、データ共有システム、ネットワークゲームシステム及びネットワークゲーム用クライアント
JP4297804B2 (ja) * 2004-02-19 2009-07-15 任天堂株式会社 ゲーム装置及びゲームプログラム
JP4268081B2 (ja) * 2004-03-30 2009-05-27 任天堂株式会社 ゲームプログラム
JP4514198B2 (ja) * 2004-05-06 2010-07-28 任天堂株式会社 ゲームプログラムおよびゲーム装置
EP2206540A1 (en) * 2007-06-14 2010-07-14 Harmonix Music Systems, Inc. System and method for simulating a rock band experience

Also Published As

Publication number Publication date
US20090093314A1 (en) 2009-04-09
JP2009089851A (ja) 2009-04-30

Similar Documents

Publication Publication Date Title
JP5111312B2 (ja) 3次元画像処理プログラム、3次元画像処理装置、3次元画像処理システムおよび3次元画像処理方法
JP6029255B2 (ja) 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
US8427506B2 (en) Image processing system, storage medium storing image processing program, image processing apparatus and image processing method
JP5063930B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法
JP5457071B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法
JP5296599B2 (ja) ネットワークシステム,情報処理装置および情報処理プログラム
JP4987399B2 (ja) ゲームプログラムおよびゲーム装置
JP5255789B2 (ja) 画像処理プログラムおよび画像処理装置
US8690673B2 (en) Game apparatus, storage medium, game controlling method and game system
JP2007293191A (ja) 音出力プログラムおよび音出力装置
JP5184036B2 (ja) ゲームプログラムおよびゲーム装置
US20080119279A1 (en) Game system
US10653959B2 (en) Image processing apparatus and image processing method for displaying video image capable of achieving improved operability and realism, and non-transitory storage medium encoded with computer readable program for controlling image processing apparatus
US8851993B2 (en) Game device, game method, non-transitory storage medium encoded with computer readable program for controlling game device, and game system, allowing for fun in tactics and enhanced zest of game
US8350830B2 (en) Input device and information processing system
JP5758085B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、及びゲーム処理方法
JP2010142404A (ja) ゲームプログラムおよびゲーム装置
US8545336B2 (en) Storage medium storing game program, game apparatus and game controlling method
JP5350612B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法
JP5937791B2 (ja) 画像処理プログラム、画像処理装置、画像処理方法および画像処理システム
JP2014000438A (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130116

R150 Certificate of patent or registration of utility model

Ref document number: 5184036

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250