説明

データ管理装置およびデータ配信システム

【課題】サーバに記録されるゴーストデータの総容量を予め決めた範囲内に制限でき、なおかつ全てのプレイヤが自分の技量に応じたゴーストデータを取得可能とすること。
【解決手段】ユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータが、複数のゲーム装置からデータ管理装置へ適宜に送信される。データ管理装置は、スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義に従って、複数のゲーム装置から受信したゴーストデータを記憶する。データ管理装置は、いずれかのゲーム装置からゴーストデータ配信リクエストを受信したときに、このゴーストデータ配信リクエストに含まれるスコアデータに対応するスコア区分に登録された少なくとも一つのゴーストデータをゲーム装置に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、データ管理装置およびデータ配信システムに関し、より特定的には、過去に行ったゲームの履歴を元にゴーストデータの表示を行う、データ管理装置およびデータ配信システムに関する。
【背景技術】
【0002】
特許文献1に記載のレーシングゲームシステムでは、個々のレーシングゲーム機でプレイされたゲームの三次元画像データ(ゴーストデータ)が、通信回線を通じてデータベースサーバへアップロードされ、データベースサーバの大容量記録装置に記録される。或るレーシングゲーム機のプレイヤが、過去の他のプレイヤによりプレイされたレーシングカー(ゴーストカー)との競争を望むとき、このレーシングゲーム機は、通信回線を通じてデータベースサーバにアクセスし、データベースサーバの大容量記録装置に記録された他のプレイヤによる過去のゲームの中から選ばれた一つのゲームのゴーストデータをダウンロードする。このとき、データベースサーバの管理装置により作成されたランキングリストに基づいて、このレーシングゲーム機のプレイヤの自己記録より一つ上もしくは二つか三つ上のランキングのゴーストデータが自動選択される。これにより、プレイヤの技量に見合った技量の過去のプレイヤのゴーストカーを対戦相手とすることができる。
【特許文献1】特開2003−320164号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、特許文献1に記載されているレーシングゲームシステムでは、個々のレーシングゲーム機からデータベースサーバにアップロードされた全てのゴーストデータを記録するために大容量記録装置が必要であるという問題がある。また、大容量記録装置であっても、その記録容量は有限であるため、データベースサーバにアップロードされるゴーストデータの数には限界がある。また、個々のレーシングゲーム機からデータベースサーバにアップロードされた全てのゴーストデータに基づいてランキングリストを作成するため、ランキングリストの作成に要する処理負荷が大きいという問題がある。
【0004】
なお、上記の問題を解消するために、個々のレーシングゲーム機からデータベースサーバにアップロードされた全てのゴーストデータを大容量記録装置に記録するのではなく、ランキングリストにおいて所定の順位よりも上位のゴーストデータ(例えば、上位1000個のゴーストデータ)だけを記録することも考えられる。しかしながら、この場合には、技量の低いプレイヤの場合、プレイヤの技量に見合った技量の過去のプレイヤのゴーストデータがデータベースサーバの大容量記録装置に記録されていないため、プレイヤの技量に見合った技量の過去のプレイヤのゴーストカーを対戦相手とすることはできない。
【0005】
それゆえに本発明は、サーバに記録されるデータの容量を想定した範囲内に制限でき、なおかつ全てのプレイヤが自分の技量に応じたゴーストデータを取得することができるようなシステムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号、図番号および補足説明は、図面との対応関係の一例を示したものであって、本発明の範囲を何ら限定するものではない。
【0007】
本発明のデータ管理装置(8)は、複数の情報端末(3)で発生したデータを収集し、前記情報端末からのリクエストに応じて適宜のデータを当該情報端末に送信するデータ管理装置であって、受信手段(81、84、S30)と、データベース処理手段(81、83、S34)とを備える。受信手段は、情報端末においてユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータ(図12)を、当該ゴーストデータに基づくゲームの巧拙を示す指標であるスコアデータ(走破タイム)とともに情報端末から受信する。データベース処理手段は、スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義(図14)に従って、前記受信したゴーストデータを記憶する。
【0008】
前記データベース処理手段は、データベース記憶手段(83)と、スコア区分判定手段(81、S31)と、登録手段(81、S34)と、削除手段(81、S33)とを含んでいてもよい。データベース記憶手段は、スコアデータの値に応じて複数のスコア区分が規定されたデータベースを記憶する。は、前記受信手段が或る情報端末からゴーストデータを受信したことを受けて、当該ゴーストデータとともに受信したスコアデータに基づいて、当該受信したゴーストデータがいずれのスコア区分に対応するかを判定する。登録手段は、前記スコア区分判定手段によって判定されたスコア区分に対応するデータベースに前記ゴーストデータを登録する。削除手段は、前記登録手段によって前記ゴーストデータが登録されるときに、当該ゴーストデータの登録先のスコア区分の登録可能上限数を超えないように、必要に応じて少なくとも1つの登録済みゴーストデータを削除する。なお、削除手段は、登録手段によって新たなゴーストデータが登録された後に、必要に応じて登録済みゴーストデータを削除するようにしてもよいし、登録手段によって新たなゴーストデータが登録される前に、必要に応じて登録済みゴーストデータを削除するようにしてもよい。前者の場合は、登録済みゴーストデータの数が登録可能上限数を一時的に超えることになり、後者の場合は、登録済みゴーストデータの数が登録可能上限数を超えることは一切無い。
【0009】
また、前記データ管理装置は、ゴーストデータを要求するゴーストデータ配信リクエストを前記情報端末から受信したときに、当該ゴーストデータ配信リクエストに応じた前記データベースのスコア区分に記憶されている少なくとも1つのゴーストデータを当該情報端末に送信する送信手段(81、84、S39)をさらに備えていてもよい。
【0010】
また、前記情報端末からのゴーストデータ配信リクエストには、当該情報端末で行われたゲームのスコアデータが含まれており、前記送信手段は、前記ゴーストデータ配信リクエストに含まれるスコアデータに対応するスコア区分に登録された少なくとも一つのゴーストデータを前記情報端末に送信してもよい。
【0011】
また、前記情報端末からのゴーストデータ配信リクエストには、当該情報端末で行われたゲームのスコアデータが含まれており、前記送信手段は、前記ゴーストデータ配信リクエストに含まれるスコアデータに対応するスコア区分の近辺のスコア区分に登録された少なくとも一つのゴーストデータを前記情報端末に送信してもよい。
【0012】
また、前記ゴーストデータには当該ゴーストデータが生成された地域情報が含まれ、また前記情報端末からのゴーストデータ配信リクエストには、当該情報端末の設置されている地域情報が含まれており、前記送信手段は、前記ゴーストデータ配信リクエストに含まれる地域情報と一致する地域情報を含むゴーストデータの中で、最良のスコアデータとともに受信したゴーストデータを前記情報端末に送信してもよい。
【0013】
また、前記ゴーストデータは、ユーザが操作した情報端末に備えるキーを時系列で記憶したキー操作履歴データ(図13)を含んでいてもよい。
【0014】
また、前記ゴーストデータは、情報端末に備えるキーをユーザが操作した際にゲーム空間で動作する操作対象(Op)の動作データを含んでいてもよい。
【0015】
また、前記ゲーム処理はユーザにゲームキャラクタを操作させるレースゲームの処理であって、前記ゴーストデータは、前記レースゲームのクリア時間もしくはコースの走破時間を競うゲームをプレイさせたときのユーザのゲームキャラクタ(Op)の動きを再現するデータであり、前記スコアデータは、前記クリア時間もしくは前記走破時間を示す時間情報であってもよい。
【0016】
また、前記削除手段は、前記新たなゴーストデータの登録先のスコア区分のゴーストデータのうち、前記データベースに最も早く登録されたゴーストデータを削除してもよい。
【0017】
また、前記削除手段は、前記新たなゴーストデータの登録先のスコア区分のゴーストデータのうち、前記情報端末で最も早く生成されたゴーストデータを削除してもよい。
【0018】
本発明のデータ配信システムは、複数の情報端末(3)で発生したデータをデータ管理装置(8)が収集し、前記情報端末からのリクエストに応じて適宜のデータを当該データ管理装置が当該情報端末に送信するデータ配信システムである。前記情報端末は、データ生成手段(10、S11)と、データ送信手段(10、S14)と、リクエスト送信手段(10、18、S17)とを備える。データ生成手段は、当該情報端末においてユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータ(図12)と、当該ゴーストデータに基づくゲームの巧拙を示す指標であるスコアデータとを生成する。データ送信手段は、前記データ生成手段で生成されたゴーストデータおよび当該ゴーストデータに基づくスコアデータを前記データ管理装置に送信する。リクエスト送信手段は、ゴーストデータを要求するゴーストデータ配信リクエストを前記データ管理装置に送信する。前記データ管理装置は、データ受信手段(81、84、S30)と、データベース処理手段(81、83、S34)と、データ送信手段(81、84、S39)とを備える。データ受信手段は、複数の情報端末からゴーストデータおよび当該ゴーストデータに基づくスコアデータ(走破タイム)を受信する。データベース処理手段は、スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義(図14)に従って、前記受信したゴーストデータを記憶する。データ送信手段は、前記情報端末から前記ゴーストデータ配信リクエストを受信したときに、前記データベース処理手段によって記憶されたゴーストデータの中から、前記ゴーストデータ配信リクエストに応じた前記データベースのスコア区分に記憶されている少なくとも一つのゴーストデータを当該情報端末に送信する。
【発明の効果】
【0019】
本発明によれば、サーバに記録されるゴーストデータの総容量を予め決めた範囲内に制限でき、なおかつ全てのプレイヤが自分の技量に応じたゴーストデータを取得することができる。
【発明を実施するための最良の形態】
【0020】
(ゲームシステムの全体構成)
図1を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、マーカ部6、およびコントローラ7を含む。本システムは、コントローラ7を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
【0021】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【0022】
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
【0023】
コントローラ7は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与える入力装置である。コントローラ7とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ7とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ7とゲーム装置3とは有線で接続されてもよい。
【0024】
(ゲーム装置3の内部構成)
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
【0025】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSIの内部構成について後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
【0026】
また、システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0027】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
【0028】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0029】
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
【0030】
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、および外部メモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0031】
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0032】
また、入出力プロセッサ11aは、コントローラ7から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0033】
さらに、入出力プロセッサ11aには、拡張コネクタ20および外部メモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20や外部メモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0034】
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンにされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。また、一旦電源がオンにされた状態で、再度電源ボタン24を押すと、低電力スタンバイモードへの移行が行われる。この状態でも、ゲーム装置3への通電は行われているため、インターネット等のネットワークに常時接続しておくことができる。なお、一旦電源がオンにされた状態で、電源をオフにしたいときは、電源ボタン24を所定時間以上長押しすることで、電源をオフとすることが可能である。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0035】
ここで、本実施形態にかかるゲーム装置3が行う通信の種類について説明する。当該通信の種類は、大きく分けて2種類ある。1つめは、上述の低電力スタンバイモード中においても通信を行い得る、常時接続型のネットワークを利用した通信(以下、常時接続利用型通信と呼ぶ)である。もう1つは、例えば、通信対戦ゲーム等のアプリケーションプログラムに依存し、必要に応じて、その都度接続、通信制御が行われる通信である(以下、随時接続型通信と呼ぶ)。常時接続利用型通信においては、後述するようなゲームプログラム等の各種プログラムに関わらず、上述のように入出力プロセッサ11aが独立して上記フラッシュメモリ17に書き込まれた送信データを送信し、また、受信したデータを当該フラッシュメモリ17に書き込む。そのため、常時接続利用型通信を利用するアプリケーション(例えばメールアプリケーション等)は、送信したいデータをフラッシュメモリ17に書込み、受信データをフラッシュメモリ17から読み出すだけでよい。また、常時接続利用型通信を利用すれば、上記低電力スタンバイモード中であっても、定期的に通信を行うことができ、更に、所定のゲームプログラムが実行中であっても、そのバックグラウンドのプロセスとして通信を行うことが可能である。
【0036】
図3および図4を参照して、コントローラ7について説明する。なお、図3は、コントローラ7の上面後方から見た斜視図である。図4は、コントローラ7を下面前方から見た斜視図である。
【0037】
図3および図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【0038】
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【0039】
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に4つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記4つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、4つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティック(いわゆる、ジョイスティック)を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー72aの代わりに設けてもかまわない。
【0040】
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、1番ボタン、2番ボタン、およびAボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン72a〜72gは、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図3に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0041】
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置3の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0042】
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7から無線通信モジュール18へ送信データを送信する際、上記コントローラ種別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。
【0043】
また、ハウジング71上面には、操作ボタン72bおよび操作ボタン72e〜72gの間に後述するスピーカ(図5のスピーカ706)からの音を外部に放出するための音抜き孔が形成されている。
【0044】
一方、ハウジング71下面には、凹部が形成されている。ハウジング71下面の凹部は、プレイヤがコントローラ7の前面をマーカ6Lおよび6Rに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部である。
【0045】
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コントローラ7が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコントローラ7の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング71の後面には、コネクタ73が設けられている。コネクタ73は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【0046】
ここで、以下の説明を具体的にするために、コントローラ7に対して設定する座標系について定義する。図3および図4に示すように、互いに直交するXYZ軸をコントローラ7に対して定義する。具体的には、コントローラ7の前後方向となるハウジング71の長手方向をZ軸とし、コントローラ7の前面(撮像情報演算部74が設けられている面)方向をZ軸正方向とする。また、コントローラ7の上下方向をY軸とし、ハウジング71の下面(操作ボタン72iが設けられた面)方向をY軸正方向とする。さらに、コントローラ7の左右方向をX軸とし、ハウジング71の左側面(図3では表されずに図4で表されている側面)方向をX軸正方向とする。
【0047】
次に、図5および図6を参照して、コントローラ7の内部構造について説明する。なお、図5は、コントローラ7の上筐体(ハウジング71の一部)を外した状態を後面側から見た斜視図である。図6は、コントローラ7の下筐体(ハウジング71の一部)を外した状態を前面側から見た斜視図である。ここで、図6に示す基板700は、図5に示す基板700の裏面から見た斜視図となっている。
【0048】
図5において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751等(図6、図7参照)に接続される。また、無線モジュール753(図7参照)およびアンテナ754によって、コントローラ7がワイヤレスコントローラとして機能する。なお、ハウジング71内部には図示しない水晶振動子703が設けられており、後述するマイコン751の基本クロックを生成する。また、基板700の上主面上に、スピーカ706およびアンプ708が設けられる。また、加速度センサ701は、操作ボタン72dの左側の基板700上(つまり、基板700の中央部ではなく周辺部)に設けられる。したがって、加速度センサ701は、コントローラ7の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ7の回転を良好な感度でゲーム装置3等が判定することができる。
【0049】
一方、図6において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コントローラ7の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられる。さらに、基板700の下主面上にサウンドIC707およびマイコン751が設けられている。サウンドIC707は、基板700等に形成された配線によってマイコン751およびアンプ708と接続され、ゲーム装置3から送信されたサウンドデータに応じてアンプ708を介してスピーカ706に音声信号を出力する。
【0050】
そして、基板700の下主面上には、バイブレータ704が取り付けられる。バイブレータ704は、例えば振動モータやソレノイドである。バイブレータ704は、基板700等に形成された配線によってマイコン751と接続され、ゲーム装置3から送信された振動データに応じてその作動をオン/オフする。バイブレータ704が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ704は、ハウジング71のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング71が大きく振動することになり、振動を感じやすくなる。
【0051】
次に、図7を参照して、コントローラ7の内部構成について説明する。なお、図7は、コントローラ7の構成を示すブロック図である。
【0052】
図7において、コントローラ7は、上述した操作部72、撮像情報演算部74、加速度センサ701、バイブレータ704、スピーカ706、サウンドIC707、およびアンプ708の他に、その内部に通信部75を備えている。
【0053】
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コントローラ7の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コントローラ7のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。
【0054】
コントローラ7は、3軸(X、Y、Z軸)の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向(図3に示すY軸)、左右方向(図3に示すX軸)、および前後方向(図3に示すZ軸)で直線加速度を検知する。
【0055】
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置3からのデータに応じて、サウンドIC707およびバイブレータ704の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置3から送信されたサウンドデータ等を処理する。また、マイコン751は、通信部75を介してゲーム装置3から送信された振動データ(例えば、バイブレータ704をONまたはOFFする信号)等に応じて、バイブレータ704を作動させる。
【0056】
コントローラ7に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの3軸方向の加速度信号(X、Y、およびZ軸方向加速度データ)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ)を無線通信モジュール18へ送信する送信データとして一時的にメモリ752に格納する。ここで、通信部75から無線通信モジュール18への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥース(登録商標)で構成される通信部75の送信間隔は5msである。マイコン751は、無線通信モジュール18への送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ754から放射する。つまり、コントローラ7に設けられた操作部72からのキーデータ、加速度センサ701からのX、Y、およびZ軸方向加速度データ、および撮像情報演算部74からの処理結果データがコントローラ7から送信される。そして、ゲーム装置3の無線通信モジュール18でその電波信号を受信し、ゲーム装置3で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、X、Y、およびZ軸方向加速度データ、および処理結果データ)を取得する。そして、ゲーム装置3のCPU10は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Bluetooth(登録商標)の技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【0057】
なお、上記のようなゲームシステム1の構成は単なる一例に過ぎず、本発明は携帯型ゲーム機や携帯電話機などの任意の情報端末に適用可能である。
【0058】
本実施形態では、図8に示すように、サーバ装置8と複数(図8の例では3台)のゲーム装置3a〜3cによってデータ配信システムが構成される。なお、以下の説明では、ゲーム装置3は、例えばインターネットなどの通信ネットワークを通じてサーバ装置8と通信することができる。ゲーム装置3とサーバ装置8との間の通信は、前述の常時接続利用型通信と随時接続型通信のいずれであってもよい。
【0059】
サーバ装置8は、典型的には図9に示すように、CPU81、RAM82、HDD83、通信部84を備えた一般的な汎用コンピュータである。
【0060】
以下、このデータ配信システムにおけるゲーム装置3とサーバ装置8の動作を具体的に説明する。
【0061】
図10は、ゲーム装置3において実行されるゲームのゲーム画面例である。本実施形態では、ゲーム装置3においてレースゲームを実行する場合について説明するが、本発明はレースゲームに限定されない。
【0062】
ゲーム装置3において実行されるレースゲームでは、プレイヤは、コントローラ7を用いてゲーム空間内のプレイヤオブジェクトOpを操作する。このレースゲームでは、プレイヤは、プレイヤオブジェクトOpだけがレースコースを走行するタイムアタックモードと、ゴーストオブジェクトOgと競争するゴースト対戦モードの少なくとも2つのゲームモードを任意に選択してプレイすることができる。図10は、ゴースト対戦モードをプレイしているときのゲーム画面例である。
【0063】
ゴーストオブジェクトOgとは、現在プレイしているプレイヤ(以下、現在プレイヤと称す)もしくは他のプレイヤが、過去に同じレースコースでプレイしたときのプレイヤオブジェクトOpの動きと全く同じ(またはほぼ同じ)動きをするオブジェクトである。ゴーストオブジェクトOgの動きは、その過去のプレイ時のプレイヤオブジェクトOpの動きを再現するためのゴーストデータ(詳細は後述する)に従ってCPU10によって制御される。ゴーストデータは、プレイヤがこのレースゲームをプレイしたときに生成される。
【0064】
サーバ装置8は、複数のゲーム装置3(ゲーム装置3a〜3cに限らず、例えば1万台のゲーム装置)からゴーストデータを収集してHDD83に記憶しておく。そしてサーバ装置8は、任意のゲーム装置3からの要求に応じて、HDD83に記憶されているゴーストデータの中から適当なゴーストデータを、このゲーム装置3に送信する。これにより、ゲーム装置3のユーザは、サーバ装置8に記憶されている他のゲーム装置3のユーザのゴーストデータを適宜にダウンロードして、このゴーストデータを用いて対戦プレイすることができる。
【0065】
なお、ゲーム装置3は、他のゲーム装置3において生成されたゴーストデータをサーバ装置8からダウンロードするだけでなく、通信回線や記録媒体を通じて他のゲーム装置3から直接受信してもよい。
【0066】
図11は、ゲーム装置3のフラッシュメモリ17のメモリマップを示している。フラッシュメモリ17には、自身のゲーム装置3においてレースゲームが実行された時に生成されたゴーストデータ(以下、自己ゴーストデータと称す)と、サーバ装置8からダウンロードすることによって、もしくは他のゲーム装置3から受信することによって入手したゴーストデータ(以下、受信ゴーストデータと称す)が保存される。
【0067】
本実施形態では、レースゲームには、第1コースから第32コースの32個のレースコースが存在しており、フラッシュメモリ17の自己ゴーストデータ保存領域には、レースコース毎に1つの自己ゴーストデータが保存される。すなわち、フラッシュメモリ17には、第1コースのゴーストデータGs1〜第2コースのゴーストデータGs32の合計32個の自己ゴーストデータが保存される。なお、1台のゲーム装置3を複数のプレイヤが利用する場合には、自己ゴーストデータ保存領域をプレイヤ毎に個別に用意してもよい。
【0068】
受信ゴーストデータ保存領域には、最大で32個の受信ゴーストデータGc1〜Gc32を保存可能である。
【0069】
図12は、ゴーストデータの一具体例である。ゴーストデータには、レースゲームをプレイしたユーザの名前、画面上でユーザを識別するためのユーザアイコンを定義するユーザアイコンID、ユーザの居住地域(すなわち、ゲーム装置3の設置されている地域)、ユーザがプレイしたレースコースのコース番号、ユーザが操作したレーシングカーの運転手を示すキャラクタ番号、ユーザが操作したレーシングカーの種類を示すマシン種別、ユーザの操作内容を示すプレイデータ、スタートからゴールまでの経過時間を1000分の1秒の精度で示す走破タイム、レースゲームをプレイした日時を示すプレイ日時(すなわち、このゴーストデータが生成された日時)、等の情報が含まれている。
【0070】
プレイデータは、図13に示すように、レースのスタートからゴールまでの期間におけるユーザの入力操作の遷移を示すデータである。例えば、図13のプレイデータからは、[0分0秒000](すなわちスタート時点)から[0分0秒354]までの期間はコントローラ7のAボタン72dと十字キー72aの前方操作部分が押された状態であり、[0分0秒354]から[0分1秒002]までの期間はコントローラ7のAボタン72dだけが押された状態であることが分かる。このようなプレイデータを用いれば、過去に行われたレースゲームにおけるプレイヤオブジェクトOpの動きを、任意のゲーム装置3において、必要なときにいつでも再現することができる。
【0071】
なお、本実施形態では、過去に行われたレースゲームにおけるプレイヤオブジェクトOpの動きを再現するためのプレイデータとして、ユーザの入力操作の遷移を示すデータを利用しているが、本発明はこれに限らず、他の例として、過去に行われたレースゲームにおけるプレイヤオブジェクトOpの挙動を示す動作データ(例えばプレイヤオブジェクトOpの位置を示す座標の遷移を示すデータ)をプレイデータとして利用してもよい。
【0072】
図14は、サーバ装置8のHDD83に記憶されるゴーストテーブルの一具体例を示す図である。ゴーストテーブルは、複数のゲーム装置3から収集したゴーストデータを、コース番号およびタイム区分番号と関連付けて記憶したデータベースである。コース番号は、前述のように、第1コースから第32コースまであるレースコースを識別するための番号である。タイム区分番号は、レースコース毎に、走破タイムを100個のタイム区分にそれぞれ区分したときの各タイム区分を識別するための番号である。各レースコースの各タイム区分の範囲は、図15に示すタイム区分設定データによって規定されている。タイム区分設定データは、ゴーストテーブルと同じく、サーバ装置8のHDD83に記憶されている。
【0073】
図15のタイム区分設定データによれば、例えば、コース番号[01](すなわち第1コース)のタイム区分[01]の範囲は、[2分1秒001]から[2分2秒000]の範囲と規定されている。また、コース番号[32]のタイム区分[02]の範囲は、[4分2秒001]から[4分3秒000]の範囲と規定されている。なお、各タイム区分の範囲をレースコース毎に個別に設定している理由は、レースコースの全長や難易度によって走破タイムは大きく変わってくるからである。例えば、コース番号[01]のレースコースでは、全長が短いため、ほとんどのプレイヤの走破タイムが[2分0秒001]から[3分40秒000]の範囲に収まるが、コース番号[02]のレースコースでは、全長が長いため、ほとんどのプレイヤの走破タイムが[4分0秒001]を超える。
【0074】
なお、本実施形態では上記のようなタイム区分設定データに基づいて各タイム区分の範囲を設定しているが、本発明はこれに限らない。例えば、各タイム区分の範囲は全てのレースコースで共通であってもよい。また、各タイム区分の範囲を、状況に応じてサーバ装置8のCPU81が自動的に変化させてもよい。
【0075】
図14に示すゴーストテーブルでは、上記のようなタイム区分設定データに基づいて、タイム区分毎にゴーストデータが保存される。具体的には、サーバ装置8のCPU81は、ゲーム装置3からゴーストデータを受信すると、受信したゴーストデータに含まれるコース番号と走破タイムを確認し、ゴーストテーブルにおけるどのコース番号のどのタイム区分番号の保存領域にこのゴーストデータを保存すべきかを判断する。例えば、ゲーム装置3から受信したゴーストデータに含まれるコース番号が[02]であり走破タイムが[5分35秒1101]である場合には、図15に示すタイム区分設定データから、このゴーストデータに対応するタイム区分番号は[02]と分かるので、このゴーストデータは、コース番号[02]のタイム区分番号[02]に対応するゴーストデータとしてゴーストテーブルに登録される。
【0076】
なお、本実施形態では、ゴーストテーブルの各レースコースの各タイム区分に登録可能なゴーストデータの上限数が20個と設定されている。したがって、サーバ装置8のCPU81は、同一のコースの同一のタイム区分にすでに登録されているゴーストデータの個数が20個である状態(すなわち、すでに登録されているゴーストデータの個数がすでに登録可能上限数に達している状態)で、さらにこのタイム区分に対応する新たなゴーストデータを受信した場合には、すでに登録されているゴーストデータの中から最も古いゴーストデータ(生成日が最も古いものであってもよいし、登録日が最も古いものであってもよい)をゴーストテーブルから削除したうえで、新たなゴーストデータをゴーストテーブルに登録する。なお、変形例として、新たなゴーストデータを登録した後で、すでに登録されているゴーストデータの中から最も古いゴーストデータを削除するようにしてもよい。この場合、ゴーストテーブルに登録されているゴーストデータの個数が、ほんの一時的にではあるが、登録可能上限数を超えることになる。
【0077】
なお、本実施形態では、ゴーストテーブルの各レースコースの各タイム区分に登録可能なゴーストデータの上限数が一律20個と規定されているが、本発明はこれに限らず、レースコース毎に、もしくはタイム区分毎に、異なる上限数を規定してもよい。さらには、各レースコースの各タイム区分の登録可能上限数を、状況に応じてサーバ装置8のCPU81が自動的に変化させてもよい。
【0078】
サーバ装置8のHDD83には、上記のようなゴーストテーブルやタイム区分設定データの他に、ワールドチャンピオンおよびローカルチャンピオン(例えば日本チャンピオンや米国チャンピオンや欧州チャンピオンなど)のゴーストデータが保持される。ワールドチャンピオンとは、全世界のユーザのゴーストデータの中で、最も走破タイムの速いゴーストデータである。ローカルチャンピオンとは、ゴーストデータの居住地域が示す地域において、最も走破タイムの速いゴーストデータである。これらのワールドチャンピオンおよびローカルチャンピオンのゴーストデータは、より速い走破タイムのゴーストデータがゴーストテーブルに登録される毎に、随時更新される。
【0079】
次に、図16のフローチャートを参照してゲーム装置3のCPU10の動作を説明する。なお、このフローチャートは、CPU10によって実行されるレースゲームプログラムに基づく処理の流れを示している。このレースゲームプログラムは光ディスク4に格納されており、必要に応じて内部メインメモリ11eまたは外部メインメモリ12にロードされる。
【0080】
レースゲームプログラムの実行を開始すると、まずステップS10において、CPU10は、コントローラ7から入力されるユーザの指示に基づいて、レースゲームを開始すべきかどうかを判断する。そして、ユーザによってレースゲームの開始が指示された場合にはステップS11に進み、そうでない場合はステップS15に進む。
【0081】
ステップS11では、CPU10は、ゲーム処理を実行する。具体的には、コントローラ7から入力される操作情報に基づいて、ゲーム世界のプレイヤオブジェクトOpを制御し、ゲーム画面を生成する。なお、ゴーストオブジェクトOgとの対戦モードでは、さらにゲーム装置3のフラッシュメモリ17に保存されている任意のゴーストデータ(自己ゴーストデータまたは受信ゴーストデータ)に従ってゲーム世界のゴーストオブジェクトOgを制御する。
【0082】
なおステップS11において、CPU10は、上記のゲーム処理と並行して、レースゲームのプレイ中にコントローラ7から入力される操作情報に基づいて、前述のプレイデータを含むゴーストデータを生成する処理も実行する。
【0083】
レースゲームが終了すると、ステップS12において、CPU10は、今回のレースゲームにおける走破タイムがプレイヤの自己記録を更新したかどうかを判断し、自己記録を更新した場合はステップS13に進み、そうでない場合はステップS15に進む。
【0084】
ステップS13では、CPU10は、フラッシュメモリ17に保存されている同レースコースの自己ゴーストデータを、ステップS11において生成されたゴーストデータを上書きすることによって更新する。
【0085】
ステップS14では、CPU10は、ステップS11において生成されたゴーストデータを、無線通信モジュール18および通信ネットワークを通じてサーバ装置8に送信する。こうしてサーバ装置8に送信されたゴーストデータは、サーバ装置8においてゴーストテーブルに登録される。
【0086】
ステップS15では、CPU10は、コントローラ7から入力されるユーザの指示に基づいて、サーバ装置8にゴーストデータを要求すべきかどうかを判断する。そして、ユーザによってゴーストデータのダウンロードが指示された場合にはステップS16に進み、そうでない場合はステップS20に進む。なお、サーバ装置8からのゴーストデータのダウンロードは、ユーザの指示に基づいて行われるだけでなく、例えば、レースゲームプログラムの実行開始時に行われるようにしてもよいし、前述の常時接続利用型通信を利用して定期的に(例えば1日に1回)行われるようにしてもよい。
【0087】
ステップS16では、CPU10は、コントローラ7から入力されるユーザの指示に基づいて、サーバ装置8に要求するゴーストデータの種類を決定する。ここで、サーバ装置8に要求することのできるゴーストデータの種類としては、例えば、ユーザの自己記録に近い走破タイムのゴーストデータ(すなわち、ユーザの自己記録とほぼ同じ走破タイムのゴーストデータや、ユーザの自己記録よりも少し速い走破タイムのゴーストデータなど)や、ワールドチャンピオンのゴーストデータや、ローカルチャンピオンのゴーストデータがある。なお、本実施形態では、サーバ装置8に要求するゴーストデータの種類をユーザが指示するが、本発明はこれに限らず、例えば前述の常時接続利用型通信を利用して、ユーザの自己記録に近い走破タイムのゴーストデータを定期的に自動的にサーバ装置8に要求するようにしてもよい。
【0088】
ステップS17では、CPU10は、無線通信モジュール18および通信ネットワークを通じてサーバ装置8にゴーストデータ配信リクエストを送信する。このゴーストデータ配信リクエストには、ステップS16で決定されたゴーストデータの種類と、必要に応じてゴーストデータを要求するレースコースのコース番号が含まれている。なお、サーバ装置8に要求するゴーストデータの種類が、ユーザの自己記録に近い走破タイムのゴーストデータである場合には、CPU10は、フラッシュメモリ17の自己ゴーストデータ保存領域(図11)に格納されている自己ゴーストデータの走破タイムを読み出して、これをゴーストデータ配信リクエストとともにサーバ装置8に送信する。また、サーバ装置8に要求するゴーストデータの種類が、ローカルチャンピオンのゴーストデータである場合には、CPU10は、ゴーストデータ配信リクエストとともに居住地域をサーバ装置8に送信する。
【0089】
ステップS18では、ステップS17で送信したゴーストデータ配信リクエストに対応するゴーストデータをサーバ装置8から受信する。
【0090】
ステップS19では、サーバ装置8から受信したゴーストデータをフラッシュメモリ17の受信ゴーストデータ保存領域(図11)に保存する。なお、受信ゴーストデータ保存領域にすでに保存可能上限数である32個の受信ゴーストデータが保存されている場合には、ユーザの指示に応じて受信ゴーストデータを1つ削除した後、ステップS19で受信したゴーストデータを新たに保存する。なお、サーバ装置8からゴーストデータをダウンロードした後、CPU10は自動的に、このゴーストデータを用いたゴースト対戦モードのゲーム処理を開始するようにしてもよい。
【0091】
ステップS20では、コントローラ7から入力されるユーザの指示に基づいて、ゲームを終了するかどうか(すなわちレースゲームプログラムの実行を終了するかどうか)を判断し、ゲームを続行する場合はステップS10に戻り、ゲームを終了する場合はゲームプログラムの実行を終了する。
【0092】
次に、図17のフローチャートを参照してサーバ装置8のCPU81の動作を説明する。なお、このフローチャートは、CPU81によって実行されるデータ管理プログラムに基づく処理の流れを示している。このデータ管理プログラムはHDD83に記録されており、必要に応じてRAM82にロードされる。
【0093】
データ管理プログラムの実行を開始すると、まずステップS30において、CPU81は、通信部84を通じていずれかのゲーム装置3からゴーストデータを受信したかどうかを判断する。そして、いずれかのゲーム装置3からゴーストデータを受信した場合はステップS31に進み、そうでない場合はステップS37に進む。
【0094】
ステップS31では、CPU81は、ステップS30で受信したゴーストデータに含まれているコース番号および走破タイムと、HDD83に記憶されているタイム区分設定データ(図15)とに基づいて、受信したゴーストデータがどのスコア区分に対応するかを判断する。
【0095】
ステップS32では、CPU81は、ゴーストテーブルにおける、ステップS30で受信したゴーストデータに対応するタイム区分の保存領域に、すでに登録可能上限数のゴーストデータがすでに登録されているかどうかを判断する。そして、ステップS30で受信したゴーストデータに対応するタイム区分の保存領域がすでに満杯である場合はステップS33に進み、そうでない場合はステップS34に進む。
【0096】
ステップS33では、CPU81は、ステップS30で受信したゴーストデータに対応するタイム区分の保存領域に保存されているゴーストデータの中から、プレイ日時が最も古い(すなわち作成日時が最も古い)ゴーストデータを削除する。ところで、ゴーストテーブルに古いゴーストデータが長い間残っていると、ユーザがゴーストデータをダウンロードするときに、過去にダウンロードしたゴーストデータを再度ダウンロードしてしまう可能性が高くなり、新鮮味に欠けるという問題があるが、本実施形態では、各タイム区分に保存されているゴーストデータが古い物から順番に削除されるので、古いゴーストデータがゴーストテーブルに長い間残り続けてしまうことがない。なお、プレイ日時が最も古いゴーストデータを削除する代りに、ゴーストテーブルに登録された日時が最も古いゴーストデータを削除するようにしてもよい。
【0097】
ステップS34では、CPU81は、ステップS30で受信したゴーストデータを、ゴーストテーブルの対応するタイム区分の保存領域に保存する。なお、ステップS34をステップS32の前に行うことにより、ステップS30で受信したゴーストデータを、ゴーストテーブルの対応するタイム区分の保存領域に保存した後に、受信したゴーストデータに対応するタイム区分の保存領域に登録可能上限数を超える数のゴーストデータが登録されているかどうかを判断して、登録可能上限数を超える数のゴーストデータが登録されている場合には、保存されているゴーストデータの中から、プレイ日時または登録された日時が最も古いゴーストデータを削除するようにしてもよい。
【0098】
ステップS35では、CPU81は、ステップS30で受信したゴーストデータの走破タイムと、HDD83に保存されている現在のワールドチャンピオンおよびローカルチャンピオンのゴーストデータの走破タイムとを比較し、ステップS30で受信したゴーストデータが新たなチャンピオン(ワールドチャンピオンまたはローカルチャンピオン)となるかどうかを判断する。ローカルチャンピオンの比較に関しては、ローカルチャンピオンとして登録されているゴーストデータのうち、ステップS30で受信したゴーストデータの居住地域と同じ居住地域を含むローカルチャンピオンのゴーストデータの走破タイムと、ステップS30で受信したゴーストデータの走破タイムとを比較する。そして、ステップS30で受信したゴーストデータが新たなチャンピオンとなる場合はステップS36に進み、そうでない場合はステップS37に進む。
【0099】
ステップS36では、CPU81は、HDD83に保存されているワールドチャンピオンまたはローカルチャンピオンのゴーストデータを更新する。ローカルチャンピオンのゴーストデータの更新は、ステップS30で受信したゴーストデータの居住地域と同じ居住地域を含むローカルチャンピオンのゴーストデータが更新対象となる。
【0100】
ステップS37では、CPU81は、通信部84を通じていずれかのゲーム装置3から前述のゴーストデータ配信リクエストを受信したかどうかを判断する。そして、いずれかのゲーム装置3からゴーストデータ配信リクエストを受信した場合はステップS38に進み、そうでない場合はステップS30に戻る。
【0101】
ステップS38では、CPU81は、ステップS37で受信したゴーストデータ配信リクエストに応じて、HDD83に保存されている複数のゴーストデータの中から1つのゴーストデータを選択する。具体的に説明すると、例えば、ユーザ(ゴーストデータ配信リクエストを送信したゲーム装置3のユーザ)の自己記録とほぼ同じ走破タイムのゴーストデータを要求された場合には、CPU81は、ゴーストデータ配信リクエストとともに受信したこのユーザの自己記録の走破タイムに基づいて、このユーザの走破タイムに対応するタイム区分に登録されているゴーストデータの中から1つのゴーストデータをランダムに選択する。また例えば、ユーザの自己記録よりも少し速い走破タイムのゴーストデータを要求された場合には、CPU81は、このユーザの走破タイムに対応するタイム区分より1段階だけ速いタイム区分に登録されているゴーストデータの中から1つのゴーストデータをランダムに選択する。また例えば、ワールドチャンピオンのゴーストデータを要求された場合には、CPU81は、HDD83に保存されているワールドチャンピオンのゴーストデータを選択する。また例えば、ローカルチャンピオンのゴーストデータを要求された場合には、CPU81は、HDD83に保存されているローカルチャンピオンのゴーストデータの中から、ユーザの居住地域に対応するゴーストデータを選択する。
【0102】
ステップS39では、CPU81は、ステップS38で選択されたゴーストデータをゲーム装置3に返信する。そしてステップS30に戻る。
【0103】
以上のように、本実施形態によれば、サーバに記録されるゴーストデータの総容量を予め決めた範囲内に制限でき、なおかつ全てのプレイヤが自分の技量に応じたゴーストデータを取得することができる。
【0104】
なお、本実施形態では、ゴーストテーブルにおいて、レースゲームの走破タイムに応じてゴーストテーブルを区分しているが、本発明はこれに限らない。例えば、パズルゲームにおけるステージクリア時間や、アクションゲームにおける獲得得点など、ゲームの巧拙を示す指標(すなわちユーザの技量を示す指標)であれば、走破タイムに限らず任意の指標に応じてゴーストテーブルを区分してもよい。
【図面の簡単な説明】
【0105】
【図1】本発明の一実施形態に係るゲームシステム1を説明するための外観図
【図2】ゲーム装置3の機能ブロック図
【図3】コントローラ7の上面後方から見た斜視図
【図4】コントローラ7を下面前方から見た斜視図
【図5】コントローラ7の上ハウジングを外した状態を示す斜視図
【図6】コントローラ7の下ハウジングを外した状態を示す斜視図
【図7】コントローラ7の構成を示すブロック図
【図8】第1の実施形態におけるデータ配信システムの構成を示す図
【図9】サーバ装置8の構成を示すブロック図
【図10】ゲーム装置3におけるゲーム実行時のゲーム画面例
【図11】フラッシュメモリ17のメモリマップの一例
【図12】ゴーストデータの一例
【図13】プレイデータの一例
【図14】ゴーストテーブルの一例
【図15】タイム区分設定データの一例
【図16】ゲーム装置3のCPU10の処理の流れを示すフローチャート
【図17】サーバ装置8のCPU81の処理の流れを示すフローチャート
【符号の説明】
【0106】
1 ゲームシステム
2 モニタ
2a スピーカ
3 ゲーム装置
4 光ディスク
7 コントローラ
10 CPU
11 システムLSI
11a 入出力プロセッサ
11b GPU
11c DSP
11d VRAM
11e 内部メインメモリ
12 外部メインメモリ
13 ROM/RTC
14 ディスクドライブ
15 AV−IC
16 AVコネクタ
17 フラッシュメモリ
18 無線通信モジュール
19 無線コントローラモジュール
20 拡張コネクタ
21 外部メモリカード用コネクタ
22 アンテナ
23 アンテナ
24 電源ボタン
25 リセットボタン
26 イジェクトボタン
71 ハウジング
72 操作部
73 コネクタ
74 撮像情報演算部
741 赤外線フィルタ
742 レンズ
743 撮像素子
744 画像処理回路
75 通信部
751 マイコン
752 メモリ
753 無線モジュール
754 アンテナ
700 基板
701 加速度センサ
702 LED
703 水晶振動子
704 バイブレータ
707 サウンドIC
708 アンプ
8 サーバ装置
81 CPU
82 RAM
83 HDD
84 通信部

【特許請求の範囲】
【請求項1】
複数の情報端末で発生したデータを収集し、前記情報端末からのリクエストに応じて適宜のデータを当該情報端末に送信するデータ管理装置であって、
情報端末においてユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータを、当該ゴーストデータに基づくゲームの巧拙を示す指標であるスコアデータとともに情報端末から受信する受信手段と、
スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義に従って、前記受信したゴーストデータを記憶するデータベース処理手段とを備えたデータ管理装置。
【請求項2】
前記データベース処理手段は、
スコアデータの値に応じて複数のスコア区分が規定されたデータベースを記憶するデータベース記憶手段と、
前記受信手段が或る情報端末からゴーストデータを受信したことを受けて、当該ゴーストデータとともに受信したスコアデータに基づいて、当該受信したゴーストデータがいずれのスコア区分に対応するかを判定するスコア区分判定手段と、
前記スコア区分判定手段によって判定されたスコア区分に対応するデータベースに前記ゴーストデータを登録する登録手段と、
前記登録手段によって前記ゴーストデータが登録されるときに、当該ゴーストデータの登録先のスコア区分の登録可能上限数を超えないように、必要に応じて少なくとも1つの登録済みゴーストデータを削除する削除手段と、を含む、請求項1に記載のデータ管理装置。
【請求項3】
ゴーストデータを要求するゴーストデータ配信リクエストを前記情報端末から受信したときに、当該ゴーストデータ配信リクエストに応じた前記データベースのスコア区分に記憶されている少なくとも1つのゴーストデータを当該情報端末に送信する送信手段をさらに備える、請求項1または請求項2に記載のデータ管理装置。
【請求項4】
前記情報端末からのゴーストデータ配信リクエストには、当該情報端末で行われたゲームのスコアデータが含まれており、
前記送信手段は、前記ゴーストデータ配信リクエストに含まれるスコアデータに対応するスコア区分に登録された少なくとも一つのゴーストデータを前記情報端末に送信する、請求項3に記載のデータ管理装置。
【請求項5】
前記情報端末からのゴーストデータ配信リクエストには、当該情報端末で行われたゲームのスコアデータが含まれており、
前記送信手段は、前記ゴーストデータ配信リクエストに含まれるスコアデータに対応するスコア区分の近辺のスコア区分に登録された少なくとも一つのゴーストデータを前記情報端末に送信する、請求項3に記載のデータ管理装置。
【請求項6】
前記ゴーストデータには当該ゴーストデータが生成された地域情報が含まれ、また前記情報端末からのゴーストデータ配信リクエストには、当該情報端末の設置されている地域情報が含まれており、
前記送信手段は、前記ゴーストデータ配信リクエストに含まれる地域情報と一致する地域情報を含むゴーストデータの中で、最良のスコアデータとともに受信したゴーストデータを前記情報端末に送信する、請求項3に記載のデータ管理装置。
【請求項7】
前記ゴーストデータは、ユーザが操作した情報端末に備えるキーを時系列で記憶したキー操作履歴データを含む、請求項1に記載のデータ管理装置。
【請求項8】
前記ゴーストデータは、情報端末に備えるキーをユーザが操作した際にゲーム空間で動作する操作対象の動作データを含む、請求項1に記載のデータ管理装置。
【請求項9】
前記ゲーム処理はユーザにゲームキャラクタを操作させるレースゲームの処理であって、
前記ゴーストデータは、前記レースゲームのクリア時間もしくはコースの走破時間を競うゲームをプレイさせたときのユーザのゲームキャラクタの動きを再現するデータであり、
前記スコアデータは、前記クリア時間もしくは前記走破時間を示す時間情報である、請求項1〜8のいずれかに記載のデータ管理装置。
【請求項10】
前記削除手段は、前記新たなゴーストデータの登録先のスコア区分のゴーストデータのうち、前記データベースに最も早く登録されたゴーストデータを削除する、請求項2に記載のデータ管理装置。
【請求項11】
前記削除手段は、前記新たなゴーストデータの登録先のスコア区分のゴーストデータのうち、前記情報端末で最も早く生成されたゴーストデータを削除する、請求項2に記載のデータ管理装置。
【請求項12】
複数の情報端末で発生したデータをデータ管理装置が収集し、前記情報端末からのリクエストに応じて適宜のデータを当該データ管理装置が当該情報端末に送信するデータ配信システムであって、
前記情報端末は、
当該情報端末においてユーザの操作に応じて実行されたゲーム処理を再現するためのゴーストデータと、当該ゴーストデータに基づくゲームの巧拙を示す指標であるスコアデータとを生成するデータ生成手段と、
前記データ生成手段で生成されたゴーストデータおよび当該ゴーストデータに基づくスコアデータを前記データ管理装置に送信するデータ送信手段と、
ゴーストデータを要求するゴーストデータ配信リクエストを前記データ管理装置に送信するリクエスト送信手段とを備え、
前記データ管理装置は、
複数の情報端末からゴーストデータおよび当該ゴーストデータに基づくスコアデータを受信するデータ受信手段と、
スコアデータの値に応じて複数のスコア区分が規定され、スコア区分毎に共通ないし個別にゴーストデータの登録可能上限数が規定されたデータベースの定義に従って、前記受信したゴーストデータを記憶するデータベース処理手段と、
前記情報端末から前記ゴーストデータ配信リクエストを受信したときに、前記データベース処理手段によって記憶されたゴーストデータの中から、前記ゴーストデータ配信リクエストに応じた前記データベースのスコア区分に記憶されている少なくとも一つのゴーストデータを当該情報端末に送信するデータ送信手段とを備える、データ配信システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate