(57)【要約】【課題】プレイヤの操作によることなく、複数のゲーム装置間でデータを転送し、利用可能なゲームシステムを提供すること。【解決手段】記憶部には、第１の区分に属するデータと第２の区分に属するデータとが識別可能に記憶される。通信部は、他のゲーム装置と通信する。送信制御部は、通信部を用いて、記憶部に記憶されたデータのうち少なくとも１つのデータを他のゲーム装置に送信する。受信制御部は、通信部を用いて、他のゲーム装置から送信されたデータを受信する。このような構成において、ゲーム装置は、受信制御部によって受信したデータを第２の区分に属するデータとして記憶部に記憶する。【選択図】図１８
2008125678.tif 000002
【特許請求の範囲】
【請求項１】
互いに通信可能な複数のゲーム装置によるゲームシステムであって、
前記ゲーム装置は、
第１の区分に属するデータと第２の区分に属するデータと識別可能に記憶するための記憶部と、
他の前記ゲーム装置と通信するための通信部と、
前記通信部を用いて、前記記憶部に記憶されたデータのうち少なくとも１つのデータを他のゲーム装置に送信するための送信制御部と、
前記通信部を用いて、他の前記ゲーム装置から送信された前記データを受信するための受信制御部とを備え、
前記受信制御部によって受信した前記データを前記第２の区分に属するデータとして前記記憶部に記憶する、ゲームシステム。
【請求項２】
前記ゲーム装置は、
前記記憶部に記憶される第１の区分に属するデータからプレイヤオブジェクトに関するデータを選択するプレイヤオブジェクト選択部と、
前記記憶部に記憶される第２の区分に属するデータからノンプレイヤオブジェクトに関するデータを選択するノンプレイヤオブジェクト選択部とを更に備える、請求項１に記載のゲームシステム。
【請求項３】
前記記憶部に記憶されるデータは、オブジェクトの画像データであり、
前記ゲーム装置は、前記プレイヤオブジェクト選択部により選択されたデータを用いてプレイヤオブジェクトを仮想空間内に表示し、前記ノンプレイヤオブジェクト選択部により選択されたデータを用いてノンプレイヤオブジェクトを仮想空間内に表示する表示制御部を更に備える、請求項２に記載のゲームシステム。
【請求項４】
前記ゲーム装置は、ユーザ操作に基いて、前記記憶部に記憶されるデータを編集する編集部をさらに備え、
前記編集部は、前記記憶部に記憶されるデータのうち、前記第１の区分に属するデータのみを編集対象に選択可能である、請求項１に記載のゲームシステム。
【請求項５】
前記第１の区分に属するデータのうち、当該第１の区分に属するデータの記憶されているゲーム装置で作成されていないデータは編集できない、請求項４に記載のゲームシステム。
【請求項６】
前記ゲーム装置は、
前記記憶部に記憶されたデータの中から、乱数を用いて選択をおこなう第１選択部をさらに備え、
前記送信制御部は、前記第１選択部によって選択されたデータを送信する、請求項１に記載のゲームシステム。
【請求項７】
前記記憶部は、他のゲーム装置の前記ネットワーク上における位置を示す情報である宛先情報を更に記憶し、
前記送信制御部は、前記宛先情報のうち乱数を用いて選択した宛先に前記データを送信する、請求項１に記載のゲームシステム。
【請求項８】
前記ゲーム装置は、
ユーザ操作に基いて、前記第１の記憶部に記憶されたデータのうち前記第１の区分に属するデータの中からユーザが所望するデータを選択する第２選択部を更に備え、
前記送信制御部は、前記第２選択部により選択されたデータを送信する、請求項１に記載のゲームシステム。
【請求項９】
前記送信制御部は、プレイヤの操作に関わらない所定のタイミングで、前記データを送信する、請求項１に記載のゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
互いに通信可能な複数のゲーム装置によるゲームシステムに関し、より特定的には、複数のゲーム装置間のゲームデータの転送に関する。
【背景技術】
【０００２】
従来より、複数のゲーム装置間で利用するためのデータの持ち運びを行う技術として、メモリカードがある（例えば、非特許文献１）。上記メモリカードは、第１のゲーム装置に接続し、当該ゲーム装置で実行されたゲーム処理のデータ（例えば、ロールプレイングゲームのセーブデータ）を記憶する。そして、上記ゲーム処理と同一のゲーム処理が実行可能な第２のゲーム装置に接続することで、上記第１のゲーム装置で記憶したデータを用いて同一のゲームを実行することができる。またこのとき、第２のゲーム装置に別のメモリカードが接続され、当該メモリカードに同一ゲームのデータが記憶されていれば、各メモリカードのデータを反映させ、同一ゲームにおいて、対戦プレイや協力プレイを行うことが可能であった。
【非特許文献１】「ニンテンドーゲームキューブ  メモリーカード２５１  取扱説明書」任天堂，２００２年７月１９日
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述したような特許文献１に開示されたメモリカードでは、従来から以下に示す問題点があった。上記メモリカードは、単なる記憶媒体であり、他のゲーム装置との間でデータ交換等を行おうとすると、当該メモリーカードをプレイヤが自ら持ち運ぶ必要があった。また、データ交換を行う際にも、例えばメモリーカードの管理画面等を立ち上げて、プレイヤが自らデータの交換操作を行う必要があった。
【０００４】
それ故に、本発明の目的は、プレイヤの操作によることなく、複数のゲーム装置間でデータを転送し、利用可能なゲームシステムを提供することである。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係の一例を示したものであって、本発明を何ら限定するものではない。
【０００６】
第１の発明は、複数のゲーム装置（３）がネットワークにより接続されるゲームシステムであって、ゲーム装置は、記憶部（３３）と、通信部（６）と、送信制御部（３０）と、受信制御部（３０）とを備える。記憶部は、第１の区分に属するデータと第２の区分に属するデータと識別可能に記憶する。通信部は、他のゲーム装置と通信する。送信制御部は、通信部を用いて、前記記憶部に記憶されたデータのうち少なくとも１つのデータを他のゲーム装置に送信する。受信制御部は、通信部を用いて、他の前記ゲーム装置から送信された前記データを受信する。そして、ゲーム装置は、受信制御部によって受信した前記データを前記第２の区分に属するデータとして前記記憶部に記憶する。なお、ゲーム装置は、ネットワークに接続され、当該ネットワークを介して互いに通信する構成でもよいし、ゲーム装置同士が近距離無線などで直接通信する構成でもよい。また、送信制御部は、ユーザ操作に基いて、または、プログラムにより自動的に、記憶部に記憶されたデータの中から少なくとも１つのデータを選択して、当該選択したデータを送信する。
【０００７】
第２の発明は、第１の発明において、ゲーム装置は、記憶部に記憶される第１の区分に属するデータからプレイヤオブジェクトに関するデータを選択するプレイヤオブジェクト選択部と、記憶部に記憶される第２の区分に属するデータからノンプレイヤオブジェクトに関するデータを選択するノンプレイヤオブジェクト選択部とを更に備える。なお、記憶部には、キャラクタの画像データ（テクスチャデータ、ポリゴンデータその他の画像データ）、キャラクタのパラメータ（能力パラメータ）などが記憶される。前者の場合、プレイヤオブジェクト選択部によって選択されたデータは、プレイヤオブジェクトを表示するために利用される。また、後者の場合、プレイヤオブジェクト選択部によって選択されたデータは、プレイヤオブジェクトのパラメータとして使用される。典型的には、プレイヤオブジェクト選択部は、ユーザ操作に基いて、記憶部に記憶される第１の区分に属するデータからユーザが所望するデータを選択し、ノンプレイヤオブジェクト選択部は、記憶部に記憶される第２の区分に属するデータから、プログラムにより自動的に（例えばランダムに）選択する。
【０００８】
第３の発明は、第２の発明において、記憶部に記憶されるデータは、オブジェクトの画像データである。また、ゲーム装置は、プレイヤオブジェクト選択部により選択されたデータを用いてプレイヤオブジェクトを仮想空間内に表示し、ノンプレイヤオブジェクト選択部により選択されたデータを用いてノンプレイヤオブジェクトを仮想空間内に表示する表示制御部を更に備える
【０００９】
第４の発明は、第１の発明において、ゲーム装置は、ユーザ操作に基いて、記憶部に記憶されるデータを編集する編集部をさらに備える。また、編集部は、記憶部に記憶されるデータのうち、第１の区分に属するデータのみを編集対象に選択可能である。
【００１０】
第５の発明は、第４の発明において、第１の区分に属するデータのうち、当該第１の区分に属するデータの記憶されているゲーム装置で作成されていないデータは編集できない、請求項４に記載のゲームシステム。
【００１１】
第６の発明は、第１の発明において、ゲーム装置は、記憶部に記憶されたデータの中から、乱数を用いて選択をおこなう第１選択部をさらに備える。また、送信制御部は、第１選択部によって選択されたデータを送信する。なお、第１選択部は、記憶部に記憶されたデータのうち、第１の区分に属するデータのみを選択対象にしてもよいし、第２の区分に属するデータのみを選択対象にしてもよいし、すべてのデータを選択対象にしてもよい。
【００１２】
第７の発明は、第１の発明において、記憶部は、他のゲーム装置のネットワーク上における位置を示す情報である宛先情報を更に記憶する。また、送信制御部は、宛先情報のうち乱数を用いて選択した宛先にデータを送信する。
【００１３】
第８の発明は、第１の発明において、ゲーム装置は、ユーザ操作に基いて、第１の記憶部に記憶されたデータのうち第１の区分に属するデータの中からユーザが所望するデータを選択する第２選択部を更に備える。また、送信制御部は、第２選択部により選択されたデータを送信する。
【００１４】
第９の発明は、第１の発明において、送信制御部は、プレイヤの操作に関わらない所定のタイミングで、データを送信する。
【発明の効果】
【００１５】
本発明によれば、プレイヤの送信操作がなくとも、自動的に第１の区分または第２の区分に属するデータの送受信を行い、更に、送信元が送るデータが第１の区分の属するか第２の区分に属するかに関わらず、送信先では、全て第２の区分に属するデータとして登録される。そのため、各ゲーム装置本体における第２の区分に属するデータの数を、プレイヤの知らないうちに増やしていくことが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【００１７】
（第１の実施形態）
図１を参照して、本発明の一実施形態に係る情報処理装置について説明する。以下、説明を具体的にするために、当該情報処理装置の一例の据置型のゲーム装置を含むゲームシステムについて説明する。なお、図１は、据置型のゲーム装置本体３を含むゲームシステム１の外観図であり、図２はゲーム装置本体３のブロック図である。以下、当該ゲームシステム１について説明する。
【００１８】
図１において、ゲームシステム１は、表示手段の一例の家庭用テレビジョン受像機（以下、モニタと記載する）２と、当該モニタを接続コードを介して接続する据置型のゲーム装置本体３とから構成される。モニタは、ゲーム装置本体３から出力された音声信号を音声出力するためのスピーカ２ａを備える。また、ゲーム装置本体３は、本願発明の情報処理プログラムの一例のゲームプログラムを記録した光ディスク４と、当該光ディスク４のゲームプログラムを実行してゲーム画面をモニタに表示出力させるためのコンピュータを搭載したゲーム装置本体３と、ゲーム画面に表示されたキャラクタなどの画像などのゲームに必要な操作情報をゲーム装置本体３に与えるためのコントローラ７とを備えている。
【００１９】
また、ゲーム装置本体３は、通信ユニット６を内蔵する。通信ユニット６は、コントローラ７から無線送信されるデータを受信し、ゲーム装置本体３からコントローラ７へデータを送信して、コントローラ７とゲーム装置本体３とは無線通信によって接続する。さらに、ゲーム装置本体３には、当該ゲーム装置本体３に対して交換可能に用いられる情報記憶媒体の一例の光ディスク４が脱着される。ゲーム装置本体３の前部主面には、当該ゲーム装置本体３の電源ＯＮ／ＯＦＦスイッチ、ゲーム処理のリセットスイッチ、光ディスク４を脱着する投入口、およびゲーム装置本体３の投入口から光ディスク４を取り出すイジェクトスイッチ等が設けられている。
【００２０】
また、ゲーム装置本体３には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ３８が搭載される。ゲーム装置本体３は、光ディスク４に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ２に表示する。さらに、ゲーム装置本体３は、フラッシュメモリ３８に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置本体３のユーザは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を楽しむことができる。また、ゲーム装置本体３内にはそのユニークなＩＤが不揮発的に記憶される。
【００２１】
コントローラ７は、通信ユニット６を内蔵するゲーム装置本体３へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて操作情報などの送信データを無線送信する。コントローラ７は、主にモニタ２の表示画面に表示されるゲーム空間に登場するプレイヤオブジェクト等を操作したりするための操作手段である。コントローラ７は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン（十字キーやスティック等を含む）が設けられている。また、後述により明らかとなるが、コントローラ７は、当該コントローラ７から見た画像を撮像する撮像情報演算部７４を備えている。また、撮像情報演算部７４の撮像対象の一例として、モニタ２の表示画面近傍に２つのＬＥＤモジュール（以下、マーカと記載する）８Ｌおよび８Ｒが設置される。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって例えば赤外光を出力する。また、コントローラ７内にはそのユニークなＩＤが不揮発的に記憶される。
【００２２】
ゲーム装置本体３（通信ユニット６）とコントローラ７（通信部７５）は通信接続して、その間で種々のデータを通信することが可能である。具合的には、ゲーム装置本体３からコントローラ７に対して、制御データやゲームデータ（メインメモリ３３上のゲームデータやフラッシュメモリ３８上のゲームデータ）を送信することができ、コントローラ７からゲーム装置本体３に対して、操作部７２の操作情報やゲームデータ（メモリ７５２上のゲームデータ）を送信することができる。なお、ゲーム装置本体３からコントローラ７に対してゲームデータを送信する場合、その旨を示す制御信号がゲーム装置本体３からコントローラ７に送信される。この制御信号にはそのゲームデータの格納先となるメモリ７５２のアドレスが指定される。また、コントローラ７からゲーム装置本体３に対してゲームデータを送信する場合、まず、ゲーム装置本体３からその旨を要求する制御信号がコントローラ７に送信され、その制御信号に応じてコントローラ７からゲーム装置本体３にゲームデータが送信される。この制御信号にはゲームデータを読み出すメモリ７５２のアドレスが指定される。また、コントローラ７は、ゲーム装置本体３の通信ユニット６から無線送信された送信データを通信部７５で受信して、当該送信データに応じた音や振動を発生させることもできる。
【００２３】
図２において、ゲーム装置本体３は、各種プログラムを実行する例えばＣＰＵ（セントラルプロセッシングユニット）３０を備える。ＣＰＵ３０は、図示しないブートＲＯＭに記憶された起動プログラムを実行し、メインメモリ３３等のメモリの初期化等を行った後、光ディスク４に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。ＣＰＵ３０には、メモリコントローラ３１を介して、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２、メインメモリ３３、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３４、およびＡＲＡＭ（Ａｕｄｉｏ  ＲＡＭ）３５などが接続される。また、メモリコントローラ３１には、所定のバスを介して、通信ユニット６、ビデオＩ／Ｆ（インターフェース）３７、フラッシュメモリ３８、オーディオＩ／Ｆ３９、およびディスクＩ／Ｆ４１が接続され、それぞれのインターフェースにモニタ２、外部メモリカード５、スピーカ２ａ、およびディスクドライブ４０が接続されている。なお、メインメモリ３３は揮発性のメモリであり、電力供給がなくなるとその記憶データを消失するものである。
【００２４】
ＧＰＵ３２は、ＣＰＵ３０の命令に基づいて画像処理を行うものあり、例えば、３Ｄグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。ＧＰＵ３２は、図示しない画像処理専用のメモリやメインメモリ３３の一部の記憶領域を用いて画像処理を行う。ＧＰＵ３２は、これらを用いてモニタ２に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ３１およびビデオＩ／Ｆ３７を介してモニタ２に出力する。
【００２５】
メインメモリ３３は、ＣＰＵ３０で使用される記憶領域であって、ＣＰＵ３０の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ３３は、ＣＰＵ３０によって光ディスク４から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ３３に記憶されたゲームプログラムや各種データ等がＣＰＵ３０によって実行される。
【００２６】
ＤＳＰ３４は、ゲームプログラム実行時にＣＰＵ３０において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのＡＲＡＭ３５が接続される。ＡＲＡＭ３５は、ＤＳＰ３４が所定の処理（例えば、先読みしておいたゲームプログラムやサウンドデータの記憶）を行う際に用いられる。ＤＳＰ３４は、ＡＲＡＭ３５に記憶されたサウンドデータを読み出し、メモリコントローラ３１およびオーディオＩ／Ｆ３９を介してモニタ２に備えるスピーカ２ａに出力させる。
【００２７】
メモリコントローラ３１は、データ転送を統括的に制御するものであり、上述した各種Ｉ／Ｆが接続される。通信ユニット６は、上記バスを介して、ゲーム装置本体３と接続される。上述したように通信ユニット６は、コントローラ７からの送信データを受信し、当該送信データをＣＰＵ３０へ出力する。また、通信ユニット６は、ＣＰＵ３０から出力された送信データをコントローラ７の通信部７５へ送信する。ビデオＩ／Ｆ３７には、モニタ２が接続される。オーディオＩ／Ｆ３９にはモニタ２に内蔵されるスピーカ２ａが接続され、ＤＳＰ３４がＡＲＡＭ３５から読み出したサウンドデータやディスクドライブ４０から直接出力されるサウンドデータをスピーカ２ａから出力可能に接続される。ディスクＩ／Ｆ４１には、ディスクドライブ４０が接続される。ディスクドライブ４０は、所定の読み出し位置に配置された光ディスク４に記憶されたデータを読み出し、ゲーム装置本体３のバスやオーディオＩ／Ｆ３９に出力する。
【００２８】
図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００２９】
図３および図４において、コントローラ７は、ハウジング７１と、当該ハウジング７１の表面に設けられた複数個の操作ボタンで構成される操作部７２とを備える。本実施例のハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさであり、例えばプラスチック成型によって形成されている。
【００３０】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。ユーザが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばユーザが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【００３１】
なお、十字キー７２ａは、上述したユーザの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に４つのプッシュスイッチを配設し、ユーザによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。
【００３２】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、ユーザがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置本体３が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
【００３３】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置本体３本体の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
【００３４】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をユーザに通知するために用いられる。具体的には、コントローラ７から通信ユニット６へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００３５】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ（図５のスピーカ７０６）からの音を外部に放出するための音抜き孔が形成されている。
【００３６】
一方、ハウジング７１下面には、凹部が形成されている。後述で明らかとなるが、ハウジング７１下面の凹部は、ユーザがコントローラ７の前面をマーカ８Ｌおよび８Ｒに向けて片手で把持したときに、当該ユーザの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。
【００３７】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００３８】
ここで、以下の説明を具体的にするために、コントローラ７に対して設定する座標系について定義する。図３および図４に示すように、互いに直交するｘｙｚ軸をコントローラ７に対して定義する。具体的には、コントローラ７の前後方向となるハウジング７１の長手方向をｚ軸とし、コントローラ７の前面（撮像情報演算部７４が設けられている面）方向をｚ軸正方向とする。また、コントローラ７の上下方向をｙ軸とし、ハウジング７１の下面（操作ボタン７２ｉが設けられた面）方向をｙ軸正方向とする。さらに、コントローラ７の左右方向をｘ軸とし、ハウジング７１の左側面（図３では表されずに図４で表されている側面）方向をｘ軸正方向とする。
【００３９】
次に、図５および図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上ハウジング（ハウジング７１の一部）を外した状態を後面側から見た斜視図である。図６は、コントローラ７の下ハウジング（ハウジング７１の一部）を外した状態を前面側から見た斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た斜視図となっている。
【００４０】
図５において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１等（図６、図７参照）に接続される。マイコン７５１は本願発明のボタンデータ発生手段の一例として、操作ボタン７２ａ等の種類に応じた操作ボタンデータを発生させるように機能する。この仕組みは公知技術であるが、例えばキートップ下側に配置されたタクトスイッチなどのスイッチ機構による配線の接触／切断をマイコン７５１が検出することによって実現されている。より具体的には、操作ボタンが例えば押されると配線が接触して通電するので、この通電がどの操作ボタンにつながっている配線で発生したかをマイコン７５１が検出し、操作ボタンの種類に応じた信号を発生させている。
【００４１】
また、コントローラ７は、図示しない無線モジュール７５３（図７参照）およびアンテナ７５４によって、ワイヤレスコントローラとして機能する。なお、ハウジング７１内部には図示しない水晶振動子７０３が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６およびアンプ７０８が設けられる。また、加速度センサ７０１は、操作ボタン７２ｄの左側の基板７００上（つまり、基板７００の中央部ではなく周辺部）に設けられる。したがって、加速度センサ７０１は、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ７の回転を良好な感度でゲーム装置本体３等が判定することができる。
【００４２】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。さらに、基板７００の下主面上にサウンドＩＣ７０７およびマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１およびアンプ７０８と接続され、ゲーム装置本体３から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。
【００４３】
そして、基板７００の下主面上には、バイブレータ７０４が取り付けられる。バイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４は、基板７００等に形成された配線によってマイコン７５１と接続され、ゲーム装置本体３から送信された振動データに応じてその作動をオン／オフする。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているユーザの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ７０４は、ハウジング７１のやや前方寄りに配置されるため、ユーザが把持している状態において、ハウジング７１が大きく振動することになり、振動を感じやすくなる。
【００４４】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成を示すブロック図である。
【００４５】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。
【００４６】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。後述により明らかとなるが、この撮像情報演算部７４から出力される処理結果データに基づいて、コントローラ７の位置や動きに応じた信号を得ることができる。
【００４７】
コントローラ７は、３軸（ｘ、ｙ、ｚ軸）の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、上下および左右方向（または他の対になった方向）のそれぞれに沿った直線加速度のみを検知する２軸の加速度検出手段を使用してもよい。例えば、この３軸または２軸の加速度センサ７０１は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。加速度センサ７０１は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式（静電容量結合式）であってもよい。しかしながら、既存の加速度検出手段の技術（例えば、圧電方式や圧電抵抗方式）あるいは将来開発される他の適切な技術を用いて３軸または２軸の加速度センサ７０１が提供されてもよい。
【００４８】
当業者には公知であるように、加速度センサ７０１に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度（直線加速度）のみを検知することができる。つまり、加速度センサ７０１からの直接の出力は、その２軸または３軸のそれぞれに沿った直線加速度（静的または動的）を示す信号である。このため、加速度センサ７０１は、非直線状（例えば、円弧状）の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【００４９】
しかしながら、加速度センサ７０１から出力される加速度の信号に対して追加の処理を行うことによって、コントローラ７に関するさらなる情報を推測または算出することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、静的な加速度（重力加速度）が検知されると、加速度センサ７０１からの出力を用いて、傾斜角度と検知された加速度とを用いた演算によって重力ベクトルに対する対象（コントローラ７）の傾きをそれぞれ推測することができる。このように、加速度センサ７０１をマイコン７５１（または他のプロセッサ）と組み合わせて用いることによって、コントローラ７の傾き、姿勢または位置を決定することができる。同様に、加速度センサ７０１を備えるコントローラ７が、例えばユーザの手で動的に加速されてそれぞれ動かされる場合に、加速度センサ７０１によって生成される加速度信号を処理することによって、コントローラ７のさまざまな動きおよび／または位置をそれぞれ算出または推測することができる。他の実施例では、加速度センサ７０１は、信号をマイコン７５１に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度（例えば、重力加速度）を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角に変換するものであってもよい。加速度センサ７０１でそれぞれ検知された加速度を示すデータは通信部７５に出力される。
【００５０】
他の実施形態の例では、コントローラ７の動きを検出する動きセンサとして、回転素子または振動素子などを内蔵したジャイロセンサを用いてもよい。この実施形態で使用されるＭＥＭＳジャイロセンサの一例として、アナログ・デバイセズ株式会社から入手可能なものがある。加速度センサ７０１と異なり、ジャイロセンサは、それが内蔵する少なくとも一つのジャイロ素子の軸を中心とした回転（または角速度）を直接検知することができる。このように、ジャイロセンサと加速度センサとは基本的に異なるので、個々の用途のためにいずれの装置が選択されるかによって、これらの装置からの出力信号に対して行う処理を適宜変更する必要がある。
【００５１】
具体的には、加速度センサの代わりにジャイロセンサを用いて傾きや姿勢を算出する場合には、大幅な変更を行う。すなわち、ジャイロセンサを用いる場合、検出開始の状態において傾きの値を初期化する。そして、当該ジャイロセンサから出力される角速度データを積分する。次に、初期化された傾きの値からの傾きの変化量を算出する。この場合、算出される傾きは、角度に対応する値が算出されることになる。一方、加速度センサによって傾きを算出する場合には、重力加速度のそれぞれの軸に関する成分の値を、所定の基準と比較することによって傾きを算出するので、算出される傾きはベクトルで表すことが可能であり、初期化を行わずとも、加速度検出手段を用いて検出される絶対的な方向を検出することが可能である。また、傾きとして算出される値の性質は、ジャイロセンサが用いられる場合には角度であるのに対して、加速度センサが用いられる場合にはベクトルであるという違いがある。したがって、加速度センサに代えてジャイロセンサが用いられる場合、当該傾きのデータに対して、２つのデバイスの違いを考慮した所定の変換を行う必要がある。加速度検出手段とジャイロスコープとの基本的な差異と同様にジャイロスコープの特性は当業者に公知であるので、本明細書ではさらなる詳細を省略する。ジャイロセンサは、回転を直接検知できることによる利点を有する一方、一般的には、加速度センサは、本実施形態で用いるようなコントローラに適用される場合、ジャイロセンサに比べて費用効率が良いという利点を有する。
【００５２】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置本体３からのデータに応じて、サウンドＩＣ７０７およびバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置本体３から送信されたサウンドデータ等を処理する。また、マイコン７５１は、通信部７５を介してゲーム装置本体３から送信された振動データ（例えば、バイブレータ７０４をＯＮまたはＯＦＦする信号）等に応じて、バイブレータ７０４を作動させる。また、上記メモリ７５２は、後述するように、ユーザが作成したキャラクタデータ等を記憶するためにも用いられる。なお、メモリ７５２は不揮発性のメモリである。
【００５３】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの加速度信号（ｘ、ｙ、およびｚ軸方向加速度データ；以下、単に加速度データと記載する）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、加速度データ、処理結果データ）を通信ユニット６へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から通信ユニット６への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ；登録商標）で構成される通信部７５の送信間隔は例えば５ｍｓである。マイコン７５１は、通信ユニット６への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥース（登録商標）の技術に基づいて、所定周波数の搬送波を用いて操作情報で変調し、その電波信号をアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からの加速度データ、および撮像情報演算部７４からの処理結果データが無線モジュール７５３で電波信号に変調されてコントローラ７から送信される。そして、ゲーム装置本体３の通信ユニット６でその電波信号を受信し、ゲーム装置本体３で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、加速度データ、および処理結果データ）を取得する。そして、ゲーム装置本体３のＣＰＵ３０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、ブルートゥース（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００５４】
ゲーム装置本体３、コントローラ７は、それぞれ、多数存在する（それぞれ多数が販売される）。通常、各ユーザは、ゲーム装置本体３と少なくとも１つのコントローラ７を所有している。あるコントローラ７はいずれのゲーム装置本体３の入力装置として使用することも可能である。すなわち、あるユーザのコントローラ７は、他のユーザのゲーム装置本体３の入力装置として使用することが可能である。しかしながら、あるコントローラ７をあるゲーム装置本体３の入力装置として使用するためには、まず、それらの間で通信リンクを確立することが必要である。具体的には、コントローラ７からゲーム装置本体３に対してリンク要求が送信される（例えば、いずれのゲーム装置本体３とも通信リンクを確立していないコントローラ７において、操作部７２のいずれかが操作されると、ゲーム装置本体３に対してリンク要求が送信される）。そして、当該リンク要求を受信したゲーム装置本体３と当該リンク要求を送信したコントローラ７との間で通信リンクが確立され、接続識別情報（例えば、ブルートゥースにおけるコネクションハンドル）が生成される。ここで、通信リンクを確立することができるのは、事前に登録したゲーム装置本体３とだけである。すなわち、コントローラ７（コントローラ７内のメモリ；不揮発であることが好ましい）に事前にゲーム装置本体３の識別情報を登録し、およびまたは、ゲーム装置本体３（本体３内のメモリ；不揮発であることが好ましい）に事前にコントローラ７の識別情報を登録する。そして、コントローラ７は事前に登録されたゲーム装置本体３にのみリンク要求を送信することができ（すなわち、コントローラ７は事前に登録された本体３の識別情報を含めてリンク要求を送信し）、およびまたは、ゲーム装置本体３は事前に登録（後述の本登録か仮登録のいずれでも良いから登録されていればよい）されたコントローラ７からのみリンク要求を受信できる（すなわち、コントローラ７は自己の識別情報をリンク要求に含めて送信し、本体３は事前に登録されたコントローラ７の識別情報を有するリンク要求のみを受信できる）。なお、事前登録の方法については後述する。
【００５５】
ここで、本実施例においては、ゲーム装置本体３は同時に複数（本実施例では４つ）のコントローラ７を入力装置として使用可能である。すなわち、ゲーム装置本体３（通信ユニット６）は、同時に、最大４つのコントローラ７（通信部７５）と通信リンクを確立することができ、各通信リンクに対してコネクションハンドルが生成されて、ゲーム装置本体３とコントローラ７で共有される。また、ゲーム装置本体３は、各コネクションハンドルに、所定の識別番号（チャンネル番号と呼ぶ）を付与することにより、各通信リンクを区別することができる。コネクションハンドルとチャンネル番号との対応関係は、内部メモリ（例えば、メインメモリ３３）上のチャンネル設定領域に記憶される。すなわち、当該チャンネル設定領域において、各チャンネル番号ごとのコネクションハンドルが記憶される。ゲーム装置本体３が複数のコントローラ７と通信リンクを確立したときに、どのコネクションハンドルをどのチャンネル番号に割り当てるかは任意であるが、例えば、最初に通信リンクを確立したコネクションハンドルにチャンネル番号１が付与され、その後通信リンクを確立するごとにチャンネル番号２、３、４と付与されるようにしてもよい。
そして、コントローラ７は操作部７２の操作情報やメモリ７５２に記憶されるゲームデータをゲーム装置本体３に送信するときに、当該コネクションハンドルを付して送信し、ゲーム装置本体３は、上記のチャンネル設定領域に設定されたコネクションハンドルを有する通信データを受信する。また、ゲーム装置本体３は、コントローラ７に制御データやゲームデータを送信するときに、当該コネクションハンドルを付して送信する。
なお、接続識別情報（コネクションハンドル）を生成することなく、リンク確立時に、コントローラ７の識別情報をゲーム装置本体３に登録するようにしてもよい。そして、コントローラ７はデータ送信するときに自己のコントローラ識別情報７を付して送信し、ゲーム装置本体３は、当該登録された識別情報を有する通信データを受信し、また、ゲーム装置本体３は、コントローラ７に制御データやゲームデータを送信するときに、当該登録された識別情報を付して送信し、コントローラ７は自己の識別情報を有する通信データを受信するようにしてもよい。
【００５６】
次に、前述の事前登録の方法を説明する。登録には、２種類の方法がある。以下の説明において、１つ目の方法を「本登録」と呼び、２つ目の方法を「仮登録」と呼ぶ。まず、本登録の方法について説明する。本登録の処理のためのプログラム（ゲーム装置本体３側）は、ゲーム装置本体３内の不揮発メモリ（例えば、フラッシュメモリ３８）に記憶され、ＣＰＵによって実行される。コントローラ７側のプログラムはコントローラ７側の不揮発メモリに記憶されコントローラ７内の処理部により実行される。本登録では、本体３が備える操作部ａ（図示せず）をユーザが操作すると、ゲーム装置本体３は、通信ユニット６を介して、周囲に存在するコントローラ７に所定のデータをブロードキャストしつつ、コントローラ７からの応答を待機し、当該応答があったときに、当該応答したコントローラ７との間で接続処理をおこなう。一方、コントローラ７が備える操作部ｂ（図示せず、または、図示する操作部のうちのいずれか）をユーザが操作すると、コントローラ７は、周囲に存在するゲーム装置本体３からの当該所定のデータの送信を待機し、当該所定のデータを受信すると、当該所定のデータを送信したゲーム装置本体３に対して応答して接続処理をおこなう。このようにして、ゲーム装置本体３とコントローラ７は接続する。そして、互いの識別情報（ブルートゥースアドレスやマックアドレス）を交換する。具体的には、ゲーム装置本体３、コントローラ７が備える不揮発メモリにはそれぞれユニークな識別情報としてブルートゥースアドレスやマックアドレスなどが記憶されている。そして、ゲーム装置本体３は、接続したコントローラ７の識別情報を受信して、その識別情報を内部の不揮発メモリ（例えば、フラッシュメモリ３８）のコントローラ登録領域に登録する。コントローラ登録領域は、自己に使用する可能性のあるコントローラの識別情報が複数登録可能な領域である。一方、コントローラ７は、接続したゲーム装置本体３の識別情報を受信して、その識別情報を内部の不揮発メモリ（例えば、メモリ７５２）の本体登録領域に登録する。本体登録領域は、自己が使用する可能性のある本体の識別情報が複数登録可能な領域である。ゲーム装置本体３は、複数のコントローラ７と上述の登録処理をおこなうことにより、自己のコントローラ登録領域に複数のコントローラ７の識別情報を登録可能であり、コントローラ７は、複数のゲーム装置本体３と上述の登録処理をおこなうことにより、自己の本体登録領域に複数のゲーム装置本体の識別情報を登録可能である。なお、通信方式によっては、ゲーム装置本体３の識別情報をコントローラ７に登録する処理は省略してもかまわない。
【００５７】
次に仮登録の方法について説明する。本体３において、所定のアプリケーション（光ディスク４に記憶されてディスクドライブにより読み取られて実行されるアプリケーション、または、フラッシュメモリ３８に記憶されるアプリケーション）を実行すると、当該アプリケーションに含まれる所定の命令をＣＰＵが実行することにより、上述の操作部ａがユーザ操作されたときと同等の処理が実行される。また、コントローラ７が備える操作部ｃ（操作部ｂでもよい）をユーザが操作すると、上述の操作部ｂがユーザ操作されたときと同等の処理が実行される。すなわち、その後は、上述と同等の処理がゲーム装置本体３とコントローラ７との間で実行され、ゲーム装置本体３にコントローラ７の識別情報が登録され、コントローラ７にゲーム装置本体３の識別情報が登録される。ただし、ここで、仮登録では、ゲーム装置本体３は、コントローラ７の識別情報を、揮発性メモリであるＲＡＭ３３上のコントローラ登録領域に登録する。すなわち、仮登録で登録されたコントローラの識別情報は、ゲーム装置本体３の電源がオフになると消滅する。なお、仮登録で登録されたコントローラ識別情報を別途のタイミングで消滅させてもよい（アプリケーションを終了したときなど）。なお、コントローラ７に登録される本体３の識別情報は、仮登録においても、本登録の場合と同じ領域に登録される。
【００５８】
上述のようにして、あるゲーム装置本体３に使用可能なコントローラ７の識別情報が当該ゲーム装置本体３に登録され、あるコントローラ７が使用可能なゲーム装置本体３の識別情報が当該コントローラ７に登録される。なお、ゲーム装置本体３の識別情報をコントローラ７に登録する処理は省略してもかまわないことは、本登録の場合と同様である。
【００５９】
次に、第１の実施形態で想定する処理の概要について説明する。第１の実施形態においては、ユーザは、ゲーム装置本体３でエディタアプリケーション（以下、キャラエディタと呼ぶ）を実行することで、所定のゲーム内で用いられるキャラクタオブジェクトの顔画像（以下、キャラ画像）を作成できる。第１の実施形態にかかる処理は、主に、コントローラ７を介した複数のゲーム装置本体間における当該キャラ画像のやりとりに関する処理である。なお、当該エディタアプリケーションは、フラッシュメモリ３８（または図示しない本体３内の不揮発性メモリ）に記憶されており、図示しないメニューアプリケーション（フラッシュメモリ３８または図示しない本体３内の不揮発メモリに記憶される）により当該エディタアプリケーションの起動が指示されたときに、メインメモリ上に展開されて実行される。なお、エディタアプリケーションを、光ディスク４に記憶して、ディスクドライブにより読み取ってメインメモリ上に展開して実行してもよい。
【００６０】
ゲーム装置本体３のフラッシュメモリ３８には、上記キャラ画像を記憶する領域として、２種類のデータベース領域が用意されている。１つめは、表キャラクタデータベース（以下、表ＤＢ）と呼ばれ、キャラ画像データ（以下、単にキャラ画像と呼ぶ）を１００体分、保存可能である。２つめは、裏キャラクタデータベース（以下、裏ＤＢ）と呼ばれ、キャラ画像を１万体分、保存可能である。上記表ＤＢに保存されるキャラ画像（以下、表キャラ画像）は、ユーザが自由に編集可能である。また、ユーザが新規作成したキャラ画像は、当該表ＤＢに保存される。その他、キャラ画像の閲覧や削除も可能である。一方、上記裏ＤＢに保存されるキャラ画像（以下、裏キャラ画像）については、ユーザは新規作成・編集はできない。閲覧もしくは削除だけが可能である。また、裏ＤＢから表ＤＢにキャラ画像を移動することも可能である。但し、この場合、他人が作成したキャラ画像については表ＤＢに保存されても、編集はできない。つまり、表ＤＢの保存されるキャラ画像のうち、編集可能なものは、自分が作成したキャラ画像だけである。また、プレイヤキャラクタを表示するための画像データとして、ユーザは、表ＤＢに保存されるキャラ画像の一覧から所望のキャラ画像を選択することが可能である。また、ノンプレイヤキャラクタを表示するための画像データとして、裏ＤＢに保存されるキャラ画像から自動的にランダムに選択される。
【００６１】
また、上述のように、コントローラ７にはメモリ７５２が内蔵されている。そのため、ユーザが作成したキャラ画像をゲーム装置本体３からコントローラ７に送信することによりメモリ７５２に保存し、さらに、当該メモリ７５２に記憶されたキャラ画像をコントローラ７から他のゲーム装置本体３に読み込ませて利用することができる。つまり、コントローラ７を介して、異なるゲーム装置本体３の間で、キャラ画像の移動・転送が可能となる。ここで、裏ＤＢは上記のように１万体という多量のキャラ画像の保存ができるが、これをユーザの手動操作による移動に頼っているのでは、なかなかキャラ画像の数が増えない。そのため、本実施形態にかかる処理を行うことで、裏ＤＢに保存される裏キャラ画像の数を増やすことが可能となる。
【００６２】
本実施形態では、以下のような動作が行われる。図８〜１０は、本実施形態におけるキャラ画像の転送処理の概要を説明するための図である。図８〜１０においては、コントローラ７が無線でゲーム装置本体３に接続されている。また、各ゲーム装置本体３は、表ＤＢ３３４と裏ＤＢ３３９を有している。
【００６３】
まず、ユーザＡが、自己のゲーム装置本体３ａ（以下、ゲーム機Ａ）で、エディタアプリケーション（以下、キャラエディタと呼ぶ）を実行してキャラクタの顔画像（表キャラ画像）を作成する。作成された顔画像データはフラッシュメモリ３８の表ＤＢ領域に保存される。そして、フラッシュメモリ３８の表ＤＢ領域に保存されたキャラ画像は一覧表示することができ、ユーザはこの中から任意のキャラ画像を選択して、当該キャラ画像をコントローラ７ａのメモリ７５２にコピーすることができる。この際、図８に示すように、ゲーム装置Ａの裏ＤＢ３３９に保存されている裏キャラ画像がユーザＡのコントローラ７ａのメモリ７５２にコピーされる。このとき、裏キャラ画像のうち、ランダムでいくつかの画像が選択されて、当該選択された画像がコピーされるようにしてもよい。また、表ＤＢ領域に保存されたキャラ画像のうち、ユーザに選択されなかったキャラ画像がコントローラ７ａのメモリ７５２にコピーされるようにしてもよい。このときも、ユーザに選択されなかったキャラ画像のうちランダムでいくつかの画像を選択してコピーされるようにしてもよい。
【００６４】
次に、ユーザＡは、コントローラ７ａを所持して、友達（以下、ユーザＢ）の家にいく。そして、ユーザＡの所持するコントローラ７ａをユーザＢのゲーム装置本体３ｂ（以下、ゲーム機Ｂ）に接続し、ユーザＢと、例えばテニスゲーム（後述のゲームプログラム３３２；このゲームプログラムは、光ディスク４に記憶されまたはフラッシュメモリ３８に記憶される）で遊ぶ。当該テニスゲームでは、各ユーザの表キャラ画像が用いられたキャラクタオブジェクトを自己のプレイヤオブジェクトとして使用できるが、この際、当該ゲームプログラム内に含まれる命令をＣＰＵが実行することにより、図９に示すように、ユーザＡのコントローラ７ａ内のキャラ画像３つが、ゲーム機Ｂの裏ＤＢ３３９に自動的にコピーされる。具体的には、例えば、当該ゲームプログラムの起動時に、当該自動的にコピーする処理が実行され、または、当該ゲームプログラムにおいて、ユーザによる表キャラ画像の選択がおこなうためのプログラムルーチンにおいて当該自動的にコピーする処理が実行される。なお、このゲームプログラムをＣＰＵが実行することにより、フラッシュメモリ３８の表キャラクタデータベースのキャラ画像データを一覧表示して、コントローラ７の操作に基いて、ユーザに当該一覧から所望のキャラ画像データを選択させ、当該選択されたキャラ画像データを用いて、プレイヤキャラクタオブジェクト（コントローラ７の操作に基いて動作するキャラクタオブジェクト）を表示する。また、フラッシュメモリ３８の裏キャラクタデータベースのキャラ画像データの中からランダムで選択したキャラ画像データを用いて、ノンプレイヤキャラクタオブジェクト（コンピュータ制御で動作するキャラクタオブジェクト）を表示する。
【００６５】
その後、ユーザＡが帰っても、図１０に示すように、ゲーム機Ｂの裏ＤＢ３３９にはユーザＡのコントローラ７ａからコピーされたキャラ画像が残っている。そして、ユーザＢがゲーム機Ｂで、上記テニスゲームを一人用で遊ぶと、上記ユーザＡの３体分のキャラ画像が使われたオブジェクトがノンプレイヤキャラクタ、例えば観客としてゲーム画面内に登場する。
【００６６】
このように、本実施形態では、ユーザが意図的に転送・登録のための操作を行わずとも、他人の作ったキャラである裏キャラ画像の数を増やすことが可能となる。その結果、他人の作ったキャラ画像を利用したキャラクタオブジェクトをゲーム内に登場させることができる。これにより、例えば、上記ユーザＡが、自分の顔に似せてキャラ画像を作成していた場合などは、自分（ユーザＢ）の友達（ユーザＡ）の顔にそっくりなキャラクタオブジェクトがいつの間にかゲーム内に登場し、ゲームの楽しさを高めることができる。
【００６７】
次に、ゲーム装置本体３によって実行されるゲーム処理の詳細を説明する。まず、ゲーム処理の際にコントローラ７のメモリ７５２、およびゲーム装置本体３のフラッシュメモリ３８およびメインメモリ３３に記憶されるデータについて説明する。
【００６８】
図１１は、コントローラ７のメモリ７５２のメモリマップを示す図である。図１１に示すように、メモリ７５２には、キャラクタデータ７５２１が１０件まで格納される。各キャラクタデータ７５２１には、キャラクタＩＤ７５２２、自動コピー禁止フラグ７５２３、表裏識別フラグ７５２４、キャラ画像データ７５２５等が記憶される。キャラクタＩＤ７５２２は、各キャラクタの作成時に割り振られる固有のＩＤである。具体的には、当該ＩＤは、前述のエディタアプリケーションによりキャラ画像が生成されたときに、当該エディタアプリケーションを実行するゲーム装置本体３の識別情報および当該ゲーム装置本体３においてキャラ画像が生成されるごとにインクリメントするカウンタ（当該カウンタ値はフラッシュメモリ３８内に記憶される）に基いて、エディタアプリケーションを実行するＣＰＵにより生成される（典型的には、当該識別情報＋当該カウンタ値が当該ＩＤとなる）。さらには、ゲーム装置本体３が備えるタイマ（図示せず）値を利用して、前述のエディタアプリケーションによりキャラ画像が生成されたときのタイマ値にも基くようにしてもよい。これにより、各キャラ画像にはユニークなＩＤが付与されることになる。自動コピー禁止フラグ７５２３は、各キャラ画像について、コピーを許可するか否かを示すためのフラグである。表裏識別フラグ７５２４は、各キャラクタデータが、表キャラであるか裏キャラであるかを識別するためのフラグである（より具体的には、転送元のゲーム装置本体３のフラッシュメモリ３８において表ＤＢ領域に記憶されていたキャラ画像は、コントローラ７のメモリ７５２に転送されるときに、当該転送のプログラムを実行するＣＰＵにより表キャラであることを示すフラグを付してコントローラ７に転送され、転送元のゲーム装置本体３のフラッシュメモリ３８において裏ＤＢ領域に記憶されていたキャラ画像は、コントローラ７のメモリ７５２に転送されるときに、裏キャラであることを示すフラグを付して転送される）。画像データ７５２５は、各キャラ画像の具体的な画像データである。
【００６９】
また、メモリ７５２には、上述した各種データの他、ゲーム装置本体との通信に関するデータ等、各種処理に必要なデータが記憶される。
【００７０】
図１２は、ゲーム装置本体３のフラッシュメモリ３８のメモリマップを示す図である。フラッシュメモリ３８には、表ＤＢ３３４、裏ＤＢ３３９、本体コピー禁止フラグ３４４が含まれる。
【００７１】
表ＤＢ３３４には、表キャラクタデータ３３５が１００体分、記憶される。各表キャラクタデータ３３５には、キャラクタＩＤ３３６、自動コピー禁止フラグ３３７、表キャラ画像データ３３８等が記憶される。キャラクタＩＤ３３６は、各キャラクタの作成時に割り振られる固有のＩＤである。自動コピー禁止フラグ３３７は、各キャラ画像について、コピーを許可するか否かを示すためのフラグである。表キャラ画像データ３３８は、各表キャラ画像の具体的な画像データである。
【００７２】
裏ＤＢ３３９には、裏キャラクタデータ３４０が１万体分、記憶される。各裏キャラクタデータ３４０には、表キャラクタデータ３３５と同様に、キャラクタＩＤ３４１、自動コピー禁止フラグ３４２、裏キャラ画像データ３４３等が記憶される。これらの内容は、上記表キャラクタデータ３４０と同様であるので、説明は省略する。
【００７３】
本体コピー禁止フラグ３４４は、キャラ画像の転送処理そのものを許可するか否かを示すためのフラグである。当該フラグがオンに設定されているゲーム装置本体３では、キャラ画像の自動転送は一切行われない（ユーザの手動による転送は可能である）。このフラグはユーザの設定に応じてオンオフされる。なお、本体コピー禁止フラグ３３４およびこのフラグに基く処理は省略してもかまわない。
【００７４】
図１３は、ゲーム装置本体３のメインメモリ３３のメモリマップを示す図である。メインメモリ３３には、プログラム記憶領域３３０およびデータ記憶領域３３３が含まれる。
【００７５】
プログラム記憶領域３３０は、光ディスク４に記憶されるプログラムまたはフラッシュメモリ３８に記憶されるプログラムが展開される領域である。この領域は、ＣＰＵ３０によって実行される各種プログラムを記憶し、キャラクタエディタプログラム３３１と、ゲームプログラム３３２などによって構成される。キャラクタエディタプログラム３３１は、主に、ユーザ操作に基づいてゲームデータを作成するためのプログラムであり、ＣＰＵに以下の機能を実行させる。
・ユーザ操作に基いてゲームデータ（キャラ画像データ）を作成してフラッシュメモリ３８に記憶する機能
・ゲーム装置本体２のフラッシュメモリ３８に記憶されるゲームデータのうち、ユーザ操作に基いて所望のゲームデータをコントローラ７のメモリ７５２に移動またはコピーする機能
・コントローラ７のメモリ７５２に記憶されるゲームデータのうち、ユーザ操作に基いて所望のゲームデータをゲーム装置本体２のフラッシュメモリ３８に移動またはコピーする機能
・ゲーム装置本体２のフラッシュメモリ３８に記憶されるゲームデータを、ユーザ操作に関わらず、コントローラ７のメモリ７５２に移動またはコピーする機能
・コントローラ７のメモリ７５２に記憶されるゲームデータのうち、ユーザ操作に関わらず、ゲーム装置本体２のフラッシュメモリ３８に移動またはコピーする機能
また、ゲームプログラム３３２は、キャラクタエディタプログラムによって作成されたゲームデータを利用してゲームプレイのための処理を実行するプログラムであって、ＣＰＵに以下の機能を実行させる。
・ゲーム装置本体３のフラッシュメモリ３８またはコントローラ７のメモリ７５２に記憶されるゲームデータを利用して、かつ、コントローラ７の操作情報を利用して、ゲームプレイのための処理を実行する機能
・ゲーム装置本体２のフラッシュメモリ３８に記憶されるゲームデータを、ユーザ操作に関わらず、コントローラ７のメモリ７５２にコピーする機能
・コントローラ７のメモリ７５２に記憶されるゲームデータのうち、ユーザ操作に関わらず、ゲーム装置本体２のフラッシュメモリ３８にコピーする機能
なお、典型的には、キャラクタエディタプログラム３３１とゲームプログラム３３２は択一的にメインメモリに記憶される。
【００７６】
キャラクタエディタプログラム３３１は、キャラクタの作成・編集や転送を行うための上記キャラエディタに対応するプログラムである。当該プログラムで実行されるキャラエディタには、作成モード、編集モード、閲覧モード、転送モードの４つの処理モードが含まれている。作成モードでは、ユーザは、上記キャラ画像の作成を行うことができる。編集モードでは、ユーザが作成したキャラ画像の編集や削除を行うことができる。閲覧モードでは、表ＤＢ３３４および裏ＤＢ３３９に保存されているキャラ画像を閲覧、削除することができる。転送モードでは、後述するような処理によって、コントローラ７（メモリ７５２）とゲーム装置本体３（フラッシュメモリ３８）との間で上記キャラ画像の転送（移動やコピー）を行うことができる。
【００７７】
ゲームプログラム３３２は、上記キャラエディタで作ったキャラ画像を用いたゲーム処理を行うためのプログラムである。
【００７８】
データ記憶領域３３３には、ゲーム処理等の必要に応じて、上記フラッシュメモリ３８に記憶されているキャラクタデータが適宜コピーされる。また、その他、エディット処理や仮想ゲーム空間に関するデータ（画像データ等）等、各種処理に必要なデータが記憶される。
【００７９】
次に、図１４〜図１５を参照して、ゲーム装置本体３によって実行されるキャラクタデータ転送処理について説明する。なお、図１４は、上記キャラエディタによるキャラクタデータ転送処理を示すフローチャートである。このフローチャートは、前述のキャラクタエディタプログラムをＣＰＵ３０が実行することによる処理の流れを示したものである。また、説明の便宜上、ここでは既にキャラエディタでキャラ画像が作成されており、表ＤＢ３３４に格納されているものとする。また、裏ＤＢ３３９にも、既に数体分の裏キャラ画像が格納されているものとして説明する。
【００８０】
なお、キャラエディタにおいてキャラ画像が作成される処理を簡単に説明すると、キャラクタエディタプログラムには、基本パーツ画像データが各部位ごとに複数記憶されている。具体的には、顔の輪郭画像、口の画像、目の画像、・・・の基本パーツ画像データがそれぞれ複数記憶されている。そして、それらの基本パーツ画像データに基づいて基本パーツ画像がモニタに一覧表示され、ユーザが操作部７２を操作することにより、当該操作情報に基づいて当該一覧の中から、各部位ごとに画像データを選択し、選択された各部位ごとの画像データを組合わせることによりキャラ画像が生成される。
【００８１】
まず、ＣＰＵ３０は、コントローラ７との間で通信リンクを確立する処理を行う。その後、ゲーム装置本体３において、ＣＰＵ３０は、ユーザの指示に基づいて上記キャラエディタを起動し、転送モードにする（ステップＳ１）。次に、ＣＰＵ３０は、コントローラ７のメモリ７５２に保存されているキャラクタデータ３３１のうち、表キャラのデータ（表裏識別フラグ７５２４で表キャラが示されているデータ）のみ読み込み、そのキャラ画像を画面に表示する（ステップＳ２）。なお、コントローラ７のメモリ７５２にキャラクタデータ３３１が１つも記憶されていない場合は、その旨が画面に表示される。
【００８２】
次に、ＣＰＵ３０は、コントローラ７内の各キャラクタデータ３３１の表裏識別フラグ７５２４を参照し、裏キャラが存在するか否かを判定する（ステップＳ３）。当該判定の結果、裏キャラがコントローラ７内に存在するときは（ステップＳ３でＹＥＳ）、ゲーム装置本体３の本体コピー禁止フラグ３４４がオフであるか否かを判定する（ステップＳ４）。その結果、オフであれば、本体への自動コピーが許可されていることになるので、コントローラ７内の裏キャラクタデータ（表裏識別フラグ７５２４が裏キャラであることを示しているデータ）を、ゲーム装置本体３のフラッシュメモリ３８の裏ＤＢ３３９にコピーする（ステップＳ５）。より具体的には、ＣＰＵ３０は、通信ユニット６を介してコントローラ７に当該裏キャラクタデータの送信要求を送信する。これに応じて、コントローラ７は、上記裏キャラクタデータをゲーム装置本体３に送信する。そして、ＣＰＵ３０は、これを当該データを受信して、裏ＤＢ３３９に書き込む。ステップＳ５の処理により、ユーザの操作の有無に関わらずコントローラ７のキャラクタデータがゲーム装置本体３に転送される。なお、コントローラ７のキャラクタデータを、表キャラ、裏キャラに関わらずゲーム装置本体３に転送して、裏ＤＢ３３９に書き込んでもかまわない。
【００８３】
次に、ユーザの操作に基づいて、表キャラのコントローラ７〜ゲーム装置本体３間の転送処理が行われる（ステップＳ６）。すなわち、ユーザ操作に基いて、ユーザが希望するキャラクタデータを選択して、コントローラ７からゲーム装置本体３への移動や、ゲーム装置本体３からコントローラ７へのキャラクタデータの移動処理が行われる。まず、コントローラ７のメモリ７５２に記憶される全領域のデータがゲーム装置本体３のメインメモリ３３に転送される。具体的には、ゲーム装置本体３から、コントローラ７に対して、メモリ７５２のデータをすべて転送することを指示する制御データが送信され、それに応答してコントローラ７から当該データが転送されてメインメモリ３３の所定領域（以下、コピー領域と呼ぶ）に記憶される。次に、ゲーム装置本体３は、当該コピー領域を参照して、当該領域に記憶されたキャラクタデータのうち、表裏識別フラグに「表キャラ」であることを示す値が設定されたキャラクタデータに基づいて、キャラ画像一覧Ａをモニタに表示する。そして、コントローラ７の操作部７２の操作に応じてカーソルを移動するなどして、当該キャラ画像一覧Ａから所望のキャラクタデータを選択する処理を実行する。その後、当該選択されたキャラクタデータを、フラッシュメモリ３３の表キャラクタデータベースの空き領域に記憶し、コピー領域の当該キャラクタデータを消去する。また、ゲーム装置本体３は、フラッシュメモリ３８の表キャラクタデータベースのキャラクタデータに基づいて、キャラ画像一覧Ｂをモニタに表示する。そして、コントローラ７の操作部７２の操作に応じて、当該キャラ画像一覧Ｂから所望のキャラクタデータを選択する処理を実行する。その後、当該選択されたキャラクタデータをコピー領域のキャラクタデータ領域の空き領域に記憶し（このとき、表裏識別フラグは「表キャラ」であることを示す値が設定される）、フラッシュメモリ３３の表キャラクタデータベースから消去する。選択が終了したら、コピー領域のデータがコントローラ７に転送されて、コントローラ７においてメモリ７５２の全領域のデータが上書きされる。
【００８４】
また、本実施例においては、ゲーム装置本体３には同時に複数のコントローラ７が通信リンク可能であるが、現在接続しているすべてのコントローラ７（メモリ７５２）とゲーム装置本体３（フラッシュメモリ３８）との間で上述の移動処理を実行可能であるようにしてもよい。すなわち、現在接続しているコントローラが２つあり、それぞれ、７ａ、７ｂとしたときに、コントローラ７ａのメモリ７５２とフラッシュメモリ３８の間、コントローラ７ｂのメモリ７５２とフラッシュメモリ３８の間、それぞれについて上述の移動処理を実行してもよい。このとき、接続しているコントローラ７ごとに上述の移動処理をおこなってもよく（方法１）、または、接続しているコントローラ７のすべてについて一度に上述の移動処理をおこなってもよい（方法２）。
【００８５】
方法１の場合、まず、接続しているコントローラ７のうちから対象となるコントローラ７をモニタ上で選択する（例えば、接続しているコントローラ７のうちの特定のコントローラ（例えば、チャンネル番号１のコントローラ）からの操作情報に基づいて当該選択をおこなう）。そして、選択されたコントローラ７のチャンネル番号をメインメモリ３３上に記憶する(図示しない「選択チャンネル番号データ」）。次に、選択チャンネル番号データを参照し、かつ、チャンネル設定領域を参照することにより、当該選択チャンネル番号データが示すコントローラ７に対して、メモリ７５２に記憶される全領域のデータを転送する制御データを送信し、それに応答して当該コントローラ７からメモリ７５２のデータが転送されてメインメモリ３３のコピー領域に記憶される。次に、ゲーム装置本体３は、当該コピー領域を参照して、上述の移動処理をおこなう。このとき、キャラ画像一覧から所望のキャラ画像を選択する処理を実行するときに、接続しているコントローラ７のうちの特定のコントローラ（例えば、チャンネル番号１のコントローラ）からの操作情報に基づいて選択してもよいし、選択チャンネル番号データが示すコントローラ７からの操作情報（選択チャンネル番号データが示すチャンネル番号に対応するコネクションハンドルを有する操作情報）に基づいて選択してもよい。選択が終了したら、コピー領域のデータが、選択チャンネル番号データで指定されるコントローラ７に転送されて、当該コントローラ７においてメモリ７５２の全領域のデータが上書きされる。
【００８６】
方法２の場合、接続しているすべてのコントローラ７に対して、メモリ７５２に記憶される全領域のデータを転送する制御データを送信し、それに応答して各コントローラ７からメモリ７５２のデータがそれぞれ転送されてメインメモリ３３のコピー領域に記憶される。このとき、各コントローラ７から受信したメモリ７５２のコピーデータは、当該コントローラ７のチャンネル番号を付して記憶される。具体的には、チャンネル設定領域のデータを参照して、各コントローラ７から受信したデータに付されるコネクションハンドルをチャンネル番号に変換して、当該チャンネル番号を付してメインメモリ３３のコピー領域に記憶される。すなわち、メインメモリ３３のコピー領域には、接続しているコントローラ７のそれぞれについて、コントローラ７のメモリ７５２のコピーデータが当該コントローラのチャンネル番号とともに記憶される。なお、チャンネル番号の代わりに、コントローラ７の識別情報（例えばブルートゥース）、または、コネクションハンドルを付しても良い。次に、ゲーム装置本体３は、当該コピー領域を参照して、上述の移動処理をおこなう（モニタ上には接続しているコントローラごとのキャラ画像一覧を順番に表示してもよいし一度に表示してもよい）。このとき、キャラ画像一覧から所望のキャラ画像を選択する処理を実行するときに、接続しているコントローラ７のうちの特定のコントローラ（例えば、チャンネル番号１のコントローラ）からの操作情報に基づいて選択してもよいし、接続しているコントローラ７のうちあるコントローラ７のチャンネル番号が付されたコピーデータに基づくキャラ画像一覧に対する選択について、当該コントローラ７の操作情報に基づいて選択してもよい。選択が終了したら、コピー領域のコピーデータのそれぞれについて、あるチャンネル番号が付されたコピーデータが、当該チャンネル番号に対応するコントローラ７に対して送信される。具体的に言うと、リンクしているコントローラ７が２つあって、それぞれ、７ａ、７ｂであって、コントローラ７ａのチャンネル番号が１で、コントローラ７ｂのチャンネル番号が２のときに、コントローラ７ａから受信したコピーデータａにはチャンネル番号１が付されてコピー領域に記憶され、コントローラ７ｂから受信したコピーデータｂにはチャンネル番号２が付されてコピー領域に記憶される。そして、コピーデータａに基いてキャラ画像一覧ａが表示され、コピーデータｂに基いてキャラ画像一覧ｂがモニタに表示される。そして、キャラ画像一覧ａに対する選択はコントローラ７ａから受信した操作情報に基づいておこなわれ、キャラ画像一覧ｂに対する選択はコントローラ７ｂから受信した操作情報に基づいておこなわれる（キャラ画像一覧ｂに対する選択も、コントローラ７ａから受信した操作情報に基づいておこなってもよい）。そして、更新されたコピーデータａはチャンネル番号１に対応するコントローラ７ａに転送され、更新されたコピーデータｂはチャンネル番号１に対応するコントローラ７ｂに転送される。
【００８７】
なお、本実施例では、無線通信による通信の負荷を考慮して、予め、コントローラ７のメモリ７５２のデータをメインメモリ３３上にコピーして、当該コピーデータを用いて上述の処理をおこなった。しかしながら、他の例として、ゲーム装置本体３の処理でコントローラ７のメモリ７５２上のデータが必要になったときに、その必要になったデータのアドレスをその都度指定して転送要求するようにしてもかまわない。
【００８８】
ここで、表キャラについて、コントローラ７（メモリ７５２）からゲーム装置本体３（フラッシュメモリ３８）へキャラクタデータの転送がされる場合、「コピー」ではなく「移動」が行われる。また、ユーザ操作に応じてコントローラ７からゲーム装置本体３へ表キャラを移動する際に、当該移動しようとする表キャラのキャラクタＩＤと同じＩＤを有するキャラクタがフラッシュメモリ３８の裏ＤＢ３３９に存在した場合は、裏ＤＢ３３９から当該ＩＤを有するキャラクタデータを削除する。つまり、表ＤＢ３３４と裏ＤＢ３３９との間において、ＩＤが重複するキャラクタは存在しない。また、ゲーム装置本体３からコントローラ７へ表キャラを移動する際に、ユーザは、自動コピー禁止フラグ３３７をオンに設定して移動することが可能である。但し、本体コピー禁止フラグ３４４がＯＮであれば、自動コピー禁止フラグ３３７は必ずＯＦＦに設定される。
【００８９】
次に、ＣＰＵ３０は、転送モードの終了指示がユーザによって出されたか否かを判定する（ステップＳ７）。判定の結果、終了指示が出ていれば（ステップＳ７でＹＥＳ）、続いて、ＣＰＵ３０は、コントローラ７に保存された表キャラのデータ件数が１０件か否かを判定する（ステップＳ８）。１０件であれば（ステップＳ８でＹＥＳ）、ＣＰＵ３０は、そのまま転送モードを終了する（ステップＳ１１）。
【００９０】
一方、コントローラ内の表キャラ数が１０件でないときは（ステップＳ８でＮＯ）、ゲーム装置本体３側で、キャラクタのコピーが許可されているか否かを判定するため、本体コピー禁止フラグ３４４がオフか否かを判定する（ステップＳ９）。判定の結果、当該フラグがオフ、つまりコピー許可がされていれば（ステップＳ９でＹＥＳ）、フラッシュメモリ３８の裏ＤＢ３３９から、（１０−表キャラ数）の分だけ裏キャラクタデータ３４０をランダムで選択し、表裏識別フラグを「裏キャラ」を示す値に設定して、上述のメインメモリ上のコピーデータを更新する（その後、コピーデータは、コントローラ７に転送されて、コントローラ７は転送されたデータをメモリ７５２に記憶する（ステップＳ１０）。このとき、コントローラ７のメモリ７５２内に既に記憶されている裏キャラについては、上書きコピーされる。そして、裏キャラのコピーが終われば、ＣＰＵ３０は、転送モードを終了する。
【００９１】
一方、ステップＳ９の判定の結果、本体コピー禁止フラグ３４４がオンであるときは（ステップＳ９でＮＯ）、自動コピーが一切禁止されていることになるため、ＣＰＵ３０は、裏キャラのコピーは行わずに転送モードを終了する（ステップＳ１１）。このように、ユーザがキャラエディタで表キャラの転送操作を行う際に、裏キャラについても自動的にコントローラ７にコピーされる。以上で、キャラエディタによるキャラクタデータ転送処理が終了する。
【００９２】
次に、ゲーム装置本体３によって実行されるゲーム処理（前述のプログラム３３２に基いて実行される処理）に際してのキャラ画像転送処理について説明する。なお、図１５はゲーム装置本体３によって実行されるゲーム処理の際のキャラ画像転送処理を示すフローチャートである。
【００９３】
図１５に示す処理の前提として、まず、上述した処理でコントローラ７に表キャラとしてキャラ画像を保存したユーザＡが、当該コントローラ７を持って、友達であるユーザＢの家に移動したものと仮定する。そして、ユーザＢが所有するゲーム装置本体３において、キャラ画像を使用するゲーム（以下、キャラ画像対応ゲームと呼ぶ）を起動することで、図１５に示す処理が行われる。図１５はプログラム３３２をＣＰＵが実行することにより実行される処理の流れである。
【００９４】
まず、キャラ画像対応ゲームが起動すれば、ＣＰＵ３０は、コントローラ７と通信リンクを確立する処理を行う（ステップＳ２１）。すなわち、各コントローラ７にそれぞれ設定されているコントローラ種別（以下、コントローラＩＤと呼ぶ）が、上記通信ユニット６に送信されるので、当該コントローラＩＤを用いて、各ユーザのコントローラを認識、識別することができる。ここでは、ユーザＡのコントローラ７ａとユーザＢのコントローラ７ｂの２つを認識したものとして説明を進める。
【００９５】
次に、ＣＰＵ３０は、各コントローラに保存されているキャラクタデータ３３１を読み込む（ステップＳ２２）。具体的には、各チャンネル番号に対応するコネクションハンドルを有する各コントローラ７に対して、当該コントローラ７のメモリ７５２内のキャラクタデータ３３１を転送する制御データを送信し、当該コントローラ７からキャラクタデータ３３１を受信する。そして、当該受信したキャラクタデータにそれを受信したチャンネル番号を付してメインメモリの所定領域に記憶する。
ここでは、ユーザＡのコントローラ７ａからキャラクタデータを読み込む場合を例として説明を続ける。すなわち、コントローラ７ａに保存されている１０体分のキャラクタデータ３３１がメインメモリ３３に読み込まれる。
【００９６】
次に、ＣＰＵ３０は、本体コピー禁止フラグ３４４がオフか否かを判定する（ステップＳ２３）。その結果、当該フラグがオフ、つまりコピー許可がされていれば（ステップＳ２３でＹＥＳ）、メインメモリ３３に読み込まれたコントローラ７ａ内のキャラクタデータのうち、自動コピー禁止フラグ３３７がオフに設定されているキャラクタデータのみを、フラッシュメモリ３８の裏ＤＢ３３９にコピーする。つまり、コントローラ７ａ内の、コピー許可がされているキャラクタについてのみ、表キャラであるか裏キャラであるかに関わらず、一律にゲーム機の裏ＤＢ３３９にコピーする。一方、本体コピー禁止フラグ３４４がオンのときは（ステップＳ２３でＮＯ）、ユーザＢのゲーム装置本体３では自動コピーが禁止されていることになるため、コントローラ７ａからのコピーは行われずに、処理を次のステップＳ２５に進める。
【００９７】
コントローラ７からのキャラクタデータの読み込みや転送が終われば、次に、ＣＰＵ３０は、各キャラクタデータのキャラ画像を用いて、ゲーム内で使用するキャラクタの選択画面を表示する（ステップＳ２５）。なお、ここでユーザが選択できるのは、ユーザＢのゲーム装置本体３の表ＤＢ３３４に格納されているキャラクタ、および各ユーザのコントローラ７に記憶されている表キャラのみである。
【００９８】
ここで、複数のコントローラ７が接続されている場合、接続しているコントローラ７ごとにキャラクタの選択画面を表示して当該選択の処理をおこなってもよく（方法１）、または、接続しているコントローラ７のすべてについて一度にキャラクタの選択画面を表示して当該選択の処理をおこなってもよい（方法２）。
【００９９】
方法１の場合、まず、接続しているコントローラ７のうちから対象となるコントローラ７をモニタ上で選択する（例えば、せつぞくしているコントローラ７のうちの特定のコントローラ（例えば、チャンネル番号１のコントローラ）からの操作情報に基づいて当該選択をおこなう）。または、接続しているコントローラ７を順番に対象にしてもよい。そして、対象となったコントローラ７のチャンネル番号をメインメモリ３３上に記憶する(図示しない「選択チャンネル番号データ」）。次に、選択チャンネル番号データを参照し、かつ、チャンネル設定領域を参照することにより、当該選択チャンネル番号データが示すコントローラ７に対して、メモリ７５２に記憶される全領域のデータを転送する制御データを送信し、それに応答して当該コントローラ７からメモリ７５２のデータが転送されてメインメモリ３３のコピー領域に記憶される。次に、ゲーム装置本体３は、当該コピー領域に記憶される表キャラのキャラクタデータおよびフラッシュメモリ３８に記憶される表キャラのキャラクタデータを参照して、それらのキャラクタのキャラ画像一覧を表示して、選択チャンネル番号データが示すコントローラ７からの操作情報（選択チャンネル番号データが示すチャンネル番号に対応するコネクションハンドルを有する操作情報）に基づいて、当該キャラ画像一覧から所望のキャラ画像を選択する処理を実行する。選択が終了したら、選択したキャラクタデータが当該選択チャンネル番号データに対応するキャラクタデータとして設定される（図示しないが、この設定情報がメインメモリ上に記憶される）。
【０１００】
方法２の場合、接続しているすべてのコントローラ７に対して、メモリ７５２に記憶される全領域のデータを転送する制御データを送信し、それに応答して各コントローラ７からメモリ７５２のデータがそれぞれ転送されてメインメモリ３３のコピー領域に記憶される。このとき、各コントローラ７から受信したメモリ７５２のコピーデータは、当該コントローラ７のチャンネル番号を付して記憶される。具体的には、チャンネル設定領域のデータを参照して、各コントローラ７から受信したデータに付されるコネクションハンドルをチャンネル番号に変換して、当該チャンネル番号が付される。すなわち、メインメモリ３３のコピー領域には、接続しているコントローラ７のそれぞれについて、コントローラ７のメモリ７５２のコピーデータが当該コントローラのチャンネル番号とともに記憶される。次に、ゲーム装置本体３は、当該コピー領域を参照して、上述のキャラクタ選択処理をおこなう（モニタ上にはリンクしているコントローラごとのキャラ画像一覧を順番に表示してもよいし一度に表示してもよい）。このとき、キャラ画像一覧から所望のキャラ画像を選択する処理を実行するときに、接続しているコントローラ７のうちあるコントローラ７のチャンネル番号が付されたコピーデータに基づくキャラ画像一覧に対する選択について、当該コントローラ７の操作情報に基づいて選択してもよい。選択したキャラクタデータがそれぞれのチャンネル番号に対応するキャラクタデータとして設定される（図示しないが、この設定情報がメインメモリ上に記憶される）。
【０１０１】
具体的に言うと、接続しているコントローラ７が２つあって、それぞれ、７ａ、７ｂであって、コントローラ７ａのチャンネル番号が１で、コントローラ７ｂのチャンネル番号が２のときに、コントローラ７ａから受信したコピーデータａにはチャンネル番号１が付されてコピー領域に記憶され、コントローラ７ｂから受信したコピーデータｂにはチャンネル番号２が付されてコピー領域に記憶される。そして、コピーデータａに基いてキャラ画像一覧ａが表示され、コピーデータｂに基いてキャラ画像一覧ｂがモニタに表示される。そして、キャラ画像一覧ａに対する選択はコントローラ７ａから受信した操作情報に基づいておこなわれ、キャラ画像一覧ｂに対する選択はコントローラ７ｂから受信した操作情報に基づいておこなわれる。キャラ画像一覧ａに対する選択により選択されたキャラクタデータはコントローラ７ａ（チャンネル番号１）に対応するキャラクタデータである旨の設定がメインメモリ上で記憶、キャラ画像一覧ｂに対する選択により選択されたキャラクタデータはコントローラ７ｂ（チャンネル番号２）に対応するキャラクタデータである旨の設定がメインメモリ上で記憶される。
【０１０２】
その後、ゲームが開始されれば、各ユーザが選択したキャラクタがゲーム画面に表示され、ゲーム処理（例えば、テニスゲーム）が行われることになる（ステップＳ２６）。以上で、第１の実施形態にかかるキャラクタデータ転送処理は終了する。より具体的には、チャンネル番号１，２に設定されたコントローラ７の操作情報に基づいて、それぞれ、チャンネル番号１，２に対応するキャラクタデータとして設定されたキャラクタデータを用いたゲーム処理が実行される。より具体的には、チャンネル番号１，２に対応するキャラクタデータとして設定されたキャラクタ画像を用いてプレイヤオブジェクトをそれぞれ仮想空間に表示し、チャンネル番号１、２に設定されたコントローラ７の操作情報に基づいて、それぞれのプレイヤオブジェクトの動作を制御する。
【０１０３】
このように、第１の実施形態では、ユーザＡが作成した表キャラが、コントローラ７を介してユーザＢのゲーム装置本体３に裏キャラとして自動的に格納される。更に、他人の作ったキャラである裏キャラもコントローラ７を介して、更に別の他人のゲーム装置本体へとコピーされる。例えば、ユーザＡが作成した表キャラが、ユーザＡのコントローラ７を介して、ユーザＢのゲーム装置本体３の裏ＤＢへとコピーされる。次に、ユーザＢが、自己の作成した表キャラをコントローラ７に保存する際に、ユーザＡの作ったキャラも裏キャラとして当該コントローラ７に保存される。そして、ユーザＢがユーザＣのゲーム装置本体に自己のコントローラ７を接続すれば、ユーザＣの裏ＤＢには、ユーザＡおよびＢが作成したキャラクタが自動的に裏キャラとしてコピーされる。このように、コントローラ７を所持して他人のゲーム装置本体３と接続して遊んでいくことで、自分あるいは他人が作成したキャラクタが他のゲーム装置本体にどんどんコピーされ、あたかも裏キャラがユーザの意識しないうちに増殖しているかのごとき効果を得ることができる。そして、これらの裏キャラのキャラ画像をゲーム内に登場するキャラクタに用いることで、各ユーザがそれぞれ作成した千差万別の個性を持つキャラ画像をゲーム内に表示させることができ、他人とのコミュニケーションによるゲームの新しい楽しさをユーザに提供することが可能となる。
【０１０４】
なお、コントローラ７からゲーム装置本体３へのキャラクタデータの転送について、上記実施形態では専用のエディタアプリケーション（キャラエディタ）を使用していた。このような専用のアプリケーションを用いずに、ユーザの転送指示がなくとも転送できるようにしてもよい。例えば、ゲーム装置本体３で、バックグラウンドで転送プログラムを常駐させておき、定期的に送信要求の信号をコントローラ７に送信する。そして、この要求に応じて、コントローラ７からゲーム装置本体３へ、キャラクタデータの転送を行うようにしても良い（コントローラ７のメモリ７５２に記憶されるすべてのキャラクタデータを転送してもよいし、表キャラのみを転送してもよいし、裏キャラのみを転送してもよい）。コントローラ７から転送されたキャラクタデータは、フラッシュメモリ３８の裏キャラ領域に記憶される。これにより、ユーザの特段の操作なしで裏キャラの転送を行うことが可能となる。
【０１０５】
また、ゲーム装置本体３の起動処理の一環として、ゲーム装置本体３のフラッシュメモリ３８とコントローラ７のメモリ７５２の間での上のキャラクタデータの送受信を行うようにしてもよい。すなわち、リンクしているコントローラ７の識別情報を不揮発的に記憶しておき、ゲーム装置本体３の電源を入れたときのブートアッププロセスにおいて、当該不揮発的に記憶されたコントローラ７とリンクを確立して、その時点で当該コントローラ７に上記送信要求を送る。これに応じて、コントローラ７からキャラクタデータが裏ＤＢ３３９に送信されるようにすればよい。そして、裏ＤＢへのコピーが終われば、今度は、ゲーム装置本体３からコントローラ７に、上述のように、（１０−表キャラ数）の裏キャラクタデータをランダムで選び、コントローラ７に上書きコピーするようにすればよい。これにより、ゲーム装置本体起動後に、所定のゲーム処理などにおいて新たに追加された裏キャラをすぐに反映して表示させることが可能となる。
【０１０６】
コントローラ７がゲーム装置本体３と接続されたタイミングで、ゲーム装置本体３から上記送信要求を送信するようにしてもよい。本実施形態では無線によって接続されているため、ゲーム装置本体３とコントローラ７とのリンクが確立したときに上記のような転送処理を行うようにすればよい。また、有線接続式のコントローラであれば、物理的に接続されたときに上記のような転送処理を行えばよい。これにより、ユーザの利便性を高めることができる。
【０１０７】
また、上記キャラエディタを使用していないときであっても、例えば、ゲーム処理における上記キャラクタ選択画面（図１５のステップＳ２５の処理）等において、ユーザによるキャラクタデータの転送指示操作に応じてキャラクタデータの転送を行うようにしてもよい。更に、この場合、複数のコントローラ７が接続されていれば、上記転送指示操作が行われたコントローラ７に対してのみ転送処理を行うようにしても良い。例えば、ゲーム装置本体にコントローラ７ａ、７ｂ、７ｃの３つのコントローラが接続されていると仮定する。そして、コントローラ７ｂから上述のような転送指示が出されたとすると、当該コントローラ７ｂに対してのみ表キャラクタデータのやりとり、および裏キャラクタデータのやりとりを行い、他のコントローラとはキャラクタデータのやりとりを行わないようにしても良い。これにより、ユーザの意思に基づいたキャラクタデータのやりとりを行うことが可能となる。
【０１０８】
また、コントローラ７のキャラクタデータをフラッシュメモリ３８に移動またはコピーする場合に、コントローラ７内に複数のキャラクタデータが保存されていれば、このうち任意のキャラクタデータをユーザが選択して移動またはコピーするようにしてもよい。なお、この選択されたキャラクタデータはフラッシュメモリ３８に表キャラとして記憶される。そして、このとき、選択されなかったキャラクタデータを含むキャラクタデータ（選択されたキャラクタを含んでも良い）を、フラッシュメモリ３８に転送して裏キャラとして記憶してもよい。なお、この場合に、ユーザはコントローラ７の表キャラのみを選択可能にしてもよい。また、フラッシュメモリ３８のキャラクタデータをコントローラ７に移動またはコピーする場合に、フラッシュメモリ３８内に複数のキャラクタデータが保存されていれば、このうち任意のキャラクタデータをユーザが選択して移動またはコピーするようにしてもよい。なお、この選択されたキャラクタデータはコントローラ７に表キャラとして記憶される。そして、このとき、選択されなかったキャラクタデータを含むキャラクタデータ（選択されたキャラクタを含んでも良い）を、コントローラ７に転送して裏キャラとして記憶してもよい。なお、この場合に、ユーザはフラッシュメモリ３８の表キャラのみを選択可能にしてもよい。
【０１０９】
更に、上記キャラエディタに、フラッシュメモリ３８上の表キャラのうちユーザが所望するキャラクタデータの削除機能を設けて、当該機能の実行中において、ユーザがフラッシュメモリ３８上の表キャラの削除指示を出した場合、表ＤＢ３３４から表キャラを削除すると同時に、当該表キャラを裏キャラとして、裏ＤＢ３３９に登録するようにしてもよい。換言すれば、削除指示が出されたときは、当該削除指示の出された表キャラを表ＤＢ３３４から削除する代わりに、裏ＤＢ３３９に移動するようにしてもよい。これにより、裏キャラの数を増やすことができる。
【０１１０】
（第２の実施形態）
次に、図１６から図１８を参照して、本発明の第２の実施形態について説明する。上述の第１の実施形態では、コントローラを介してキャラクタデータを別のゲーム装置本体に転送している。これに対して、第２の実施形態では、ネットワークを介してキャラクタデータを転送する。なお、本実施例では、常時接続型のネットワークを使用する。なお、当該実施形態に係るゲーム装置本体の機能ブロック図およびハードウェア構成を示すブロック図は、第１の実施形態と同様である（図１〜図７参照）。そのため、同一の参照符号を付して詳細な説明を省略する。
【０１１１】
まず、本発明の第２の実施形態にかかるネットワークの環境について説明する。本実施形態においては、ゲーム装置本体は常時接続型のネットワークを介して、相互に接続されている。また、各ゲーム装置本体３も、スタンバイモード等への移行も含め、２４時間稼働している状態である。
【０１１２】
また、ゲーム装置本体３には、電子メールアプリケーション（以下、メールアプリと呼ぶ）が標準機能として実装されている（このアプリケーションプログラムは、ゲーム装置本体３内の不揮発メモリ（例えば、フラッシュメモリ３８）に記憶されており、ＣＰＵにより実行される）。当該メールアプリでは、各ゲーム装置本体に保存されているアドレス帳（フラッシュメモリ３８に記憶される）から送信先を選んで電子メールを送ることが可能である。なお、当該電子メールでは、例えば、Ｗｅｂメールシステムを用いて送受信が行われる。ここで、本メールアプリでは、メールに自分の作成した表キャラのキャラクタデータ（少なくとも、キャラクタＩＤ、キャラ画像データを含む）を添付することができる。例えば、自分に似せたキャラ画像のキャラクタデータを添付することで、自分の顔写真をつけて相手にメールを送ることが可能である。
【０１１３】
次に、図１６を用いて、本実施形態で想定する転送処理の概要について説明する。図１６は、本実施形態で想定するネットワーク経由の転送処理の概要を説明するための図である。図１６では、ゲーム装置本体３ａ〜３ｄが、ネットワークを介して接続されている。また、各ゲーム装置本体３は、表ＤＢ３３４と裏ＤＢ３３９を有している。ここでは、ゲーム装置本体３ａの所持者であるユーザＡがゲーム装置本体３ｂの所持者であるユーザＢに電子メールを送信する場合を仮定して説明する。この場合、ユーザＡが、上述の電子メールアプリケーションを起動して、ゲーム装置本体３ａに保存されているアドレス帳データ（以下、アドレス帳と呼ぶ）からユーザＢを宛先として選ぶ。そして、自分の作った表キャラを「顔写真」としてメールに添付、送信する。具体的には、当該電子メールアプリケーションを起動してＣＰＵに実行させることにより、表ＤＢ３３９ａに格納されているデータ(キャラ画像データ）に基づいて、モニタに表ＤＢ３３９ａに格納されている表キャラの一覧表示をし、コントローラ７の操作情報に基づいて、当該一覧表示の中から所望のデータを選択して、当該選択されたキャラクタデータを添付する。ゲーム装置本体３ｂにおいては、メール受信アプリケーション（このアプリケーションプログラムは、ゲーム装置本体３内の不揮発メモリ（例えば、フラッシュメモリ３８）に記憶されており、ＣＰＵにより実行される）が起動しており、ＣＰＵ（または図示しないサブＣＰＵ）により当該アプリケーションが実行され、当該メールが受信され、受信ボックス（フラッシュメモリ３８内に受信ボックス領域を設ける）に保存される。その後、ユーザＢが電子メールアプリケーションを起動してＣＰＵに実行させることにより、受信ボックスに保存されている電子メールを開けると、当該電子メールに添付されているキャラクタデータ（「顔写真」のキャラ画像とキャラクタＩＤ）が、ゲーム装置本体３ｂの裏ＤＢ３３９ｂにコピーされる。このように、電子メールによって表キャラのキャラ画像を送信すると、受信先において、裏キャラとして登録され、その結果、裏キャラの数が増えていくことになる。
【０１１４】
図１７は、第２の実施形態にかかるキャラクタデータの転送処理を示すフローチャートである。このフローチャートのうちＳ３１からＳ３３は、前述の電子メールアプリケーションをゲーム装置本体３ａのＣＰＵが実行することによる処理の流れである。また、Ｓ３４は、前述のメール受信アプリケーションを、ゲーム装置本体３ｂのＣＰＵ（または図示しないサブＣＰＵ）が実行することによる処理の流れである。また、Ｓ３５は、前述の電子メールアプリケーションをゲーム装置本体３ｂのＣＰＵが実行することによる処理の流れである。
【０１１５】
まず、第１のゲーム装置本体において、ＣＰＵ３０は、ユーザの指示操作に応じてアドレス帳から宛先を選び、メールの送信先として設定する（ステップＳ３１）。
【０１１６】
次に、ユーザの指示操作に応じて、ＣＰＵ３０は、当該電子メールに、ユーザが指定した表キャラのキャラクタデータを添付する（ステップＳ３２）。
【０１１７】
次に、ユーザの送信指示に従って、当該電子メールを送信する（ステップＳ３３）。当該メールは、図示はしないが、所定のメールサーバに保持される。
【０１１８】
次に、第２のゲーム機において、電子メールを受信する（ステップＳ３４）。受信方法は、例えば定期的に上記メールサーバにアクセスして、新着メールのチェックを行う等の方法が考えられる。そして、受信したメールを、第２のゲーム機内の受信ボックスに保存する。
【０１１９】
次に、第２のゲーム機においてユーザがメールアプリを起動する。このとき、ＣＰＵ３０は、受信ボックスにアクセスし、新しい電子メールが届いていることを画面に表示する。そして、ユーザが受信した電子メールを開封したとき、ＣＰＵ３０は、当該電子メールのキャラ画像とキャラクタＩＤとを対応づけて、自己の裏ＤＢ３３９にコピーする（ステップＳ３５）。以上で、第２の実施形態にかかるキャラクタデータの転送処理が終了する。
【０１２０】
このように、第１のユーザ（ユーザＡ）が、自己の作成した表キャラ画像をメールヘッダ情報に設定して、第２のユーザに送信することで、第２のユーザの所持するゲーム装置本体に、第１のユーザの表キャラが、第２のユーザの所持するゲーム装置本体において、裏キャラとして保存される。そのため、メールのやりとりを行うだけで、裏キャラの数を増やすことが可能となる。
【０１２１】
なお、上述のようなユーザの意思による電子メールの送受信に限らず、ユーザの手を介さずに上述のような電子メールの送受信を行うようにしてもよい。例えば、所定のタイミングでＣＰＵ３０が、自機のアドレス帳からランダムに送信先を選ぶ。そして、表ＤＢ３３４あるいは裏ＤＢ３３９からランダムにキャラ画像を選んでメールヘッダに設定し、本文が空白のメール（以下、ばらまき用メールと呼ぶ）を作成して送信するようにしてもよい。
【０１２２】
図１８は、ユーザの手を介さない場合の、上記ばらまき用メールの送受信のフローを示す図である。このフローのうちＳ４１から４５は、ばらまき用プログラム（このアプリケーションプログラムは、ゲーム装置本体３内の不揮発メモリ（例えば、フラッシュメモリ３８）に記憶されている）を、送信元のゲーム装置本体のＣＰＵまたは図示しないサブＣＰＵにより実行される。また、Ｓ４６は、送信先にゲーム装置本体のＣＰＵまたは図示しないサブＣＰＵにより前述のメール受信アプリケーションが実行されるものであり、Ｓ４７は、ばらまき用プログラムを、送信先のゲーム装置本体のＣＰＵまたは図示しないサブＣＰＵにより実行されるものである。なお、ばらまき用プログラムは、ゲーム装置本体が起動しているときに、ＣＰＵまたはサブＣＰＵによって常時実行されており、予め定めるスケジュールに基いて、設定時刻になったときに、Ｓ４１以降の処理を実行する。なお、当該スケジュールデータは、フラッシュメモリ３８に設定される。また、スリープモード時に、サブＣＰＵに電力を供給し、スリープモード時にもばらまき用プログラムを動作させてもよい。
【０１２３】
まず、第１のゲーム機において、ＣＰＵ３０は、送信対象とするキャラ画像を選出するために、表ＤＢ３３４から２０件、裏ＤＢ３３９から１００件のキャラ画像をランダムに選出する（ステップＳ４１）。次に、ＣＰＵ３０は、選出した計１２０件のキャラ画像の中から、等確率で１件のキャラ画像を選ぶ（ステップＳ４２）。
【０１２４】
次に、ＣＰＵ３０は、送信先を選出するために、自機に保存されているアドレス帳から、宛先を８件、ランダムに選出する（ステップＳ４３）。
【０１２５】
次に、上記選出した８件の宛先に対するばらまき用メールを作成する（ステップＳ４４）。具体的には、上記ランダムに選出した８件を送信先として設定する。そして、メールに上記ランダムに選出したキャラ画像のデータを、当該キャラクタのキャラクタＩＤと共に添付する。またメール本文は空白のままとする。なお、ばらまき用メールであることを示すフラグをメール本文またはヘッダに付しても良い。
【０１２６】
次に、ＣＰＵ３０は、上記作成したばらまき用メールを送信する（ステップＳ４５）。次に、送信先となったゲーム装置本体において、上記メールサーバ経由で受信処理を行い、受信バッファ（フラッシュメモリ）に記憶する（ステップＳ４６）。ばらまき用プログラムは、受信バッファを参照して、ばらまき用メールがあるかをチェックし（前述のフラグによる）ばらまき用メールがあると、当該メールに添付されているキャラクタデータを裏ＤＢにコピーする（ステップＳ４７）。つまり、ユーザがメールを開封するか否かにかかわらず、送信先となったゲーム装置本体が電子メールを受信した時点で、裏ＤＢへのコピー処理が行われる。
【０１２７】
このように、第２の実施形態では、ユーザの送信操作がなくとも、自動的にキャラ画像の送受信を行い、更に、送信元が送るキャラクタが表キャラであるか裏キャラであるかに関わらず、送信先では、全て裏キャラとして登録される。そのため、各ゲーム装置本体の裏キャラの数を、ユーザの知らないうちに増やしていくことが可能となる。
【０１２８】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。上述の第１の実施形態では、コントローラを介して、あるゲーム装置本体３のフラッシュメモリ３８上のキャラクタデータを別のゲーム装置本体のフラッシュメモリ３８に転送していた。第３の実施形態では、単に、コントローラ７に保存したキャラクタデータをゲーム処理に利用するものである。なお、第３の実施形態に係るゲーム装置本体の機能ブロック図およびハードウェア構成を示すブロック図は、第１の実施形態と同様である（図１〜図７参照）。そのため、同一の参照符号を付して詳細な説明を省略する。
【０１２９】
次に、第３の実施形態にかかる処理について説明する。本実施形態で想定するゲームは、モンスターキャラクタによるチームバトル形式の対戦型ゲームである。この対戦型ゲームにおいて、まず、自己が使用するモンスタキャラクタデータ（キャラ画像、能力データなどを含む）を生成する処理をおこなう。この処理の具体的内容は任意であるが、例えば、複数のモンスタキャラクタデータをプログラムで用意しておき、ユーザが好みのデータを選択または所定条件を満たしたときにいずれかのキャラクタデータを選択するようにしてもよいし、乱数で決定してもよい。このモンスタキャラクタデータ（能力データ）はゲームプレイすることにより変化する。例えば、他のモンスターキャラクタと戦闘をすることにより変化する。このモンスタキャラクタデータはメインメモリ３３またはフラッシュメモリ３８に記憶される。そして、メインメモリ３３またはフラッシュメモリ３８に記憶されるモンスタキャラクタデータを、第１の実施形態と同様に、コントローラ７のメモリ７５２に移動又はコピーすることが可能である。そして、ユーザＡがモンスターキャラクタデータが記憶されたコントローラ７を所持してユーザＢの家に行き、ユーザＢの所持するゲーム装置本体３に当該コントローラを接続する。また、ユーザＢも、自身の所有するコントローラ７を接続する。そして、各ユーザのコントローラ７に記憶されているモンスターキャラクタデータをゲーム装置本体に読み込ませる。具体的には、ゲーム装置本体３はリンクをしている各コントローラに対して、モンスターキャラクタデータの送信指示するための制御データを送信し、各コントローラは、それに応じて自己のモンスターキャラクタデータをゲーム装置本体３に送信する。ゲーム装置本体３は、各コントローラから送信された各モンスターキャラクタデータをメインメモリ３３上に記憶する。（なお、ユーザＢに関しては、コントローラから読み込まずとも、自身の所有するゲーム装置本体に記憶されているチームデータを利用しても良い）。この際、ゲーム装置本体は、読み出し元のコントローラを識別するための情報（当該コントローラのチャンネル番号、接続識別情報、コントローラのユニークＩＤなど）と、読み出したモンスターキャラクタデータとを関連づけてメインメモリ３３に記憶する。そして、その後、接続している各コントローラからの操作情報を使用して、対戦ゲームプレイをさせる処理を実行するが、当該処理において、各コントローラからの操作情報に基づいて動作するモンスタキャラクタのデータは、メインメモリ上で当該コントローラに関連づけて記憶されたモンスターキャラクタのデータが使用される。すなわち、メインメモリ上において、ユーザＡのコントローラＡから読み込まれたモンスターキャラクタデータにはコントローラＡを識別するための識別情報Ａが付与され、ユーザＢのコントローラＢから読み込まれたモンスターキャラクタデータにはコントローラＢを識別するための識別情報Ｂが付与される。そして、コントローラＡからの操作情報に基づいて、メインメモリ上の識別情報Ａが付与されたモンスターキャラクタデータを用いてモンスターキャラクタＡを動作させる処理が実行され、コントローラＢからの操作情報に基づいて、メインメモリ上の識別情報Ｂが付与されたモンスターキャラクタデータを用いてモンスターキャラクタＢを動作させる処理が実行される。
【０１３０】
なお、コントローラ７に複数のモンスタキャラクタデータが記憶されている場合、当該複数のモンスタキャラクタデータをメインメモリ上に読み出して、対戦ゲームに利用するモンスタキャラクタとして、それらの中からユーザが所望のモンスタキャラクタデータを選択できるようにしてもよい。この場合においても、モンスタキャラクタデータには、上述のコントローラを識別するための情報が付してメインメモリ上に記憶され、各コントローラからの操作情報に基づいて選択されるモンスタキャラクタのデータは、メインメモリ上で当該コントローラに関連づけて記憶されたモンスターキャラクタのデータが使用される。すなわち、例えば、コントローラＡからの操作情報に基づいて、メインメモリ上の識別情報Ａが付与された複数のモンスターキャラクタデータの中から所望のモンスターキャラクタを選択する処理が実行される。
【０１３１】
図１９は、第３の実施形態に係るゲーム処理の詳細を示すフローチャートである。このフローチャートは、光ディスクに記憶され、または、フラッシュメモリ３８に記憶されて、ＣＰＵによって実行される対戦ゲームプログラムがＣＰＵに実行されるものである。図１８において、まず、ユーザＡが自己の所有するゲーム装置本体３で、対戦用のモンスタキャラクタデータを作成する（ステップＳ５１）。例えば、ユーザＡの指示操作に応じて、ＣＰＵ３０は所定のゲームプログラムを実行する。ユーザＡは、仮想ゲーム空間内でモンスターキャラクタを収集するための「一人用モード」をプレイし、モンスターキャラクタを集める。このモンスターキャラクタデータはメインメモリ３３またはフラッシュメモリ３８に記憶される。
【０１３２】
次に、ＣＰＵ３０は、メインメモリ３３またはフラッシュメモリ３８上のモンスタキャラクタデータを、コントローラ７にコピーする（ステップＳ５２）。例えば、対戦用チームが５体のモンスターキャラで構成されている場合は、当該５体分のモンスターキャラクタのデータと、チーム名等、そのチームに関するデータがコントローラ７にコピーされる。
【０１３３】
次に、ユーザＡが当該モンスタキャラクタデータが記憶されたコントローラ７を所持して、他のユーザＢの家に移動したと仮定する。そして、当該他のユーザＢの所持するゲーム装置本体３で、対戦用のゲームプログラムが実行される。これに応じて、ＣＰＵ３０は、上記コントローラ７に保存されたモンスタキャラクタデータを読み込む（ステップＳ５３）。次に、ＣＰＵ３０は、当該読み込んだデータと、読み込み元のコントローラを識別するための情報とを関連づけて、メインメモリ３３に記憶する（ステップＳ５４）。
【０１３４】
次に、所定のゲーム処理が実行される（ステップＳ５５）。このゲーム処理においては、上記モンスタキャラクタは、ユーザＡの所持するコントローラ７からの操作しか受け付けない。例えば、モンスターキャラクタ選択画面として、ユーザＡのモンスターキャラクタとユーザＢのモンスターキャラクタが一覧表示されていると仮定する。この場合に、例えば、ユーザＢが自己のコントローラ７を操作して、カーソルをユーザＡのモンスターキャラクタに合わせ、選択決定ボタンを押したとする。しかし、ＣＰＵ３０は、選択決定ボタンを押したコントローラ７のコントローラＩＤを識別することで、当該決定入力を無効とする。このとき、画面に、当該キャラクタは選択できない旨の表示を行ってもよい。また、ユーザＢが自己のコントローラ７を操作してもユーザＡのモンスターキャラクタに合う位置にカーソルが移動しないようにしてもよい。以上で、第３の実施形態に係るゲーム処理は終了する。
【０１３５】
このように、第３の実施形態では、コントローラと当該コントローラに記憶されていたデータとを関連づけた状態で利用することができる。また、データを保存するメモリとコントローラが一体化しているため、自己の所有するゲーム装置本体以外のゲーム装置本体に自己のデータを読み込ませた場合でも、そのまま当該他人のゲーム装置本体上で操作が可能となり、ユーザの利便性を高めることができる。
【０１３６】
また、コントローラからデータが読み込まれた時点で上述のような関連づけがされているため、例えば、キャラクター選択画面を表示せずとも、すぐに対戦等のプレイが可能となり、ユーザの利便性を向上させることができる。すなわち、従来であれば、読み込ませたモンスターデータを一覧表示して、各ユーザがそれぞれ選択するという操作が必要となっていた。しかし、上述のように、コントローラと当該コントローラから読み出されたデータを対応づけてゲーム装置本体に記憶しておくことにより、一覧表示〜選択操作をユーザに実行させることなく、速やかに対戦を開始することができる。
【０１３７】
また、自己の使い慣れたコントローラ７をそのまま使用できるため、各ユーザに応じた利便性を保持することが可能となる。例えば、キーコンフィグ等で、各ユーザが自分の使いやすいようにキー配置のカスタマイズや必殺技コマンドの登録を行っていれば、自宅の操作環境を、友達の家にそのまま持ち込んでプレイすることが可能となる。
【０１３８】
なお、上述したようなコントローラ内に記憶されている複数のモンスターキャラクタのうち、任意のモンスターキャラクタだけを選択してゲーム装置本体に読み込ませるようにしてもよい。例えば、コントローラ内のデータの読み込み画面を表示し、当該画面において、コントローラ内のモンスターキャラクタ一覧を画面に表示する。そして、ユーザの選択操作に応じて、選択されたモンスターキャラクタだけをゲーム装置本体に読み込むようにしても良い。これにより、ゲーム装置本体のメモリ領域を節約することができる。
【０１３９】
また、コントローラ７に記憶されているデータについて、ゲーム装置本体にはコピーしないようにしてゲーム処理を行うようにしても良い。例えば、対戦キャラクターのデータを読み込む際に、コントローラ内のデータをゲーム装置本体のメインメモリに記憶し、当該メインメモリにアクセスしてキャラクタを表示などするのではなく、直接コントローラ７のメモリにアクセスしてデータを読み込み、キャラクタを画面に表示するようにしても良い。これにより、ゲーム装置本体のメモリ領域を節約することができる。
【産業上の利用可能性】
【０１４０】
本発明にかかるゲームシステムは、入力装置にゲームデータを記憶させて持ち運ぶことができ、他人とのコミュニケーションを利用するゲームや情報処理等に有用である。
【図面の簡単な説明】
【０１４１】
【図１】本発明の実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置本体５の機能ブロック図
【図３】図１のコントローラ７の上面後方から見た斜視図
【図４】図３のコントローラ７を下面前方から見た斜視図
【図５】図３のコントローラ７の上ハウジングを外した状態を示す斜視図
【図６】図３のコントローラ７の下ハウジングを外した状態を示す斜視図
【図７】図３のコントローラ７の構成を示すブロック図
【図８】第１の実施形態におけるキャラ画像の転送処理の概要を説明するための図
【図９】第１の実施形態におけるキャラ画像の転送処理の概要を説明するための図
【図１０】第１の実施形態におけるキャラ画像の転送処理の概要を説明するための図
【図１１】コントローラ７のメモリ７５２のメモリマップ
【図１２】ゲーム装置本体３のフラッシュメモリ３８のメモリマップ
【図１３】ゲーム装置本体３のメインメモリ３３のメモリマップ
【図１４】キャラエディタによるキャラクタデータ転送処理を示すフローチャート
【図１５】ゲーム処理の際のキャラ画像転送処理を示すフローチャート
【図１６】第２の実施形態に係るネットワーク経由の転送処理の概要を説明するための図
【図１７】第２の実施形態にかかるキャラクタデータの転送処理を示すフローチャート
【図１８】ばらまき用メールの送受信のフローを示す図
【図１９】第３の実施形態に係るゲーム処理の詳細を示すフローチャート
【符号の説明】
【０１４２】
１…ゲームシステム
２…モニタ
２ａ、７０６…スピーカ
３…ゲーム装置
３０…ＣＰＵ
３１…メモリコントローラ
３２…ＧＰＵ
３３…メインメモリ
３４…ＤＳＰ
３５…ＡＲＡＭ
３７…ビデオＩ／Ｆ
３８…フラッシュメモリ
３９…オーディオＩ／Ｆ
４０…ディスクドライブ
４１…ディスクＩ／Ｆ
４…光ディスク
５…外部メモリカード
６…通信ユニット
７…コントローラ
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０３…水晶振動子
７０４…バイブレータ
７０７…サウンドＩＣ
７０８…アンプ
【図１】
2008125678.tif 000003
【図２】
2008125678.tif 000004
【図３】
2008125678.tif 000005
【図４】
2008125678.tif 000006
【図５】
2008125678.tif 000007
【図６】
2008125678.tif 000008
【図７】
2008125678.tif 000009
【図８】
2008125678.tif 000010
【図９】
2008125678.tif 000011
【図１０】
2008125678.tif 000012
【図１１】
2008125678.tif 000013
【図１２】
2008125678.tif 000014
【図１３】
2008125678.tif 000015
【図１４】
2008125678.tif 000016
【図１５】
2008125678.tif 000017
【図１６】
2008125678.tif 000018
【図１７】
2008125678.tif 000019
【図１８】
2008125678.tif 000020
【図１９】
2008125678.tif 000021