以下、図面を参照して、本発明の実施形態を詳細に説明する。
実施の形態1.
本実施形態においては、擬似的に定義されたレーシングカーを擬似的に定義されたレース場で擬似的に走らせるレースゲームにおいて、ユーザが手書きで紙媒体に描いた絵をスキャンし、生成された画像に基づいてレーシングカーの性能をパラメータとして生成すると共に、このパラメータを性能として有するレーシングカーとして生成された画像を表示させるレースゲーム装置について説明する。
図1は、本実施形態に係るレースゲーム装置1の運用態様を示す図である。図1に示すように、本実施形態に係るレースゲーム装置1は、画像を光学的に走査するスキャナ2に接続されて運用される。レースゲーム装置1は、CPU(Central Processing Unit)、RAM(Random Access Memory)及びHDD(Hard Disk Drive)等を備える一般的なPC(Personal Computer)等の情報処理装置に、専用のソフトウェアをインストールすることによって実現される。
図2を参照して、本実施形態に係るレースゲーム装置1について更に詳細に説明する。図2に示すように、本実施形態に係るレースゲーム装置1は、コントローラ100、ネットワークI/F110、入力デバイス120及びディスプレイモニタ130を有する。また、コントローラ100は、主制御部101、入出力制御部102、表示制御部103及びゲーム制御部104を有する。更に、ゲーム制御部104は、画像認識部141、パラメータ生成部142、画像修正部143、状態記憶部144、状態算出部145、状態解析部146、コース情報記憶部147及び描画処理部148を有する。
ネットワークI/F110は、レースゲーム装置1が他の機器と通信する際のインタフェースである。ネットワークI/F110は、例えばEthernet(登録商標)接続のインタフェースや、USB(Universal Serial Bus)接続のインタフェースによって実現される。本実施形態において、レースゲーム装置1は、スキャナ2からネットワークI/F110を介して画像情報を受信する。入力デバイス120は、キーボードやマウス等、ユーザがレースゲーム装置1に対して命令を与え、操作するためのユーザインタフェースである。ディスプレイモニタ130は、レースゲーム装置1において動画を表示する表示装置であり、LCD(Liquid Crystal Monitor)やCRT(Cathode Ray Tube)等、既存の表示装置によって実現可能である。
コントローラ100は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ROM(Read Only Memory)やEEPROM(Electronically Erasable and Programmable ROM)並びにHDDや光学ディスク等の不揮発性記憶媒体に格納されたファームウェア等の制御プログラムが、DRAM(Dynamic Random Access Memory)等の揮発性メモリ(以下、メモリ)にロードされ、CPUの制御に従って構成されるソフトウェア制御部と集積回路などのハードウェアとによってコントローラ100が構成される。コントローラ100は、レースゲーム装置1の動作を制御する制御部として機能する。
主制御部101は、コントローラ100に含まれる各部を制御する役割を担い、コントローラ100の各部に命令を与える。入出力制御部102は、主制御部101の制御に従い、外部からネットワークI/F110に入力された情報の受信を制御する。本実施形態において、入出力制御部102は、スキャナ2からネットワークI/F102に入力された画像情報をゲーム制御部104に入力する。表示制御部103は、主制御部101の制御に従い、ディスプレイモニタ130を制御してゲーム制御部104によって処理されたゲームの状態をディスプレイモニタ130に表示させる。
ゲーム制御部104は、以下に説明する夫々の構成の動作により、入力された画像情報に基づいてレースゲームを擬似的に実行する。画像認識部141は、入出力制御部102からゲーム制御部104に入力された画像情報を取得し、ゲームに登場するレーシングカーの画像として認識する。また、画像認識部141は、取得した画像情報の特徴となる情報を抽出する。パラメータ生成部142は、画像認識部141によって抽出された情報に基づき、入力された画像をレーシングカーとしてゲームに登場させる際のレーシングカーの性能となるパラメータを生成する。画像修正部143は、画像認識部141が認識した画像に修正を加え、ディスプレイモニタ130に表示するためのレーシングカーの画像を生成する。
状態記憶部144は、パラメータ生成部142が生成したパラメータに加えて、ゲーム中におけるレーシングカーの状態に関する情報を記憶している。状態算出部145は、状態記憶部144に記憶された情報に基づき、次のレーシングカーの状態、即ち、時間経過に伴って変化するレースの状態を算出する。状態解析部146は、状態算出部145によって算出された状態を解析し、レーシングカーのコースアウトやレースの終了を判断し、状態記憶部144に記憶された状態を更新する。
コース情報記憶部147は、ゲーム制御部104によって処理されるレースゲームにおけるレース場の情報を記憶している。レース場の情報は、ディスプレイモニタ130にレース場を表示するためのビットマップ情報と、このビットマップ情報の座標においてコース内、コース外及びスタートライン等を示す情報とを含む。描画処理部148は、画像修正部143が生成したレーシングカーの画像、コース情報記憶部147に記憶されているコース情報及び状態記憶部144に記憶されているレーシングカーの状態の情報に基づき、ゲーム画面を描画するための描画情報を生成して出力する。
次に、図3を参照して、本実施形態に係るスキャナ2について説明する。図3は、本実施形態に係るスキャナ2の全体構成を示すブロック図である。図3に示すように、本実施形態に係るスキャナ2は、コントローラ200、ADF(Auto Document Feeder:原稿自動搬送装置)201、スキャナユニット202、排紙トレイ203、ネットワークI/F204、ディスプレイパネル205及びHDD206を有する。また、コントローラ200は、主制御部211、エンジン制御部212、入出力制御部213、画像処理部214及びHDDコントローラ215を有する。尚、図3においては、電気的接続を実線の矢印で示しており、用紙若しくは文書束の流れを破線の矢印で示している。
ネットワークI/F204は、スキャナ2がレースゲーム装置1と通信する際のインタフェースである。スキャナ2がスキャンして生成した画像情報は、ネットワークI/F204を介してレースゲーム装置1に送信される。ディスプレイパネル205は、スキャナ2の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザがスキャナ2を直接操作する際の入力インタフェースでもある。コントローラ200は、レースゲーム装置1のコントローラ100と同様、ソフトウェアとハードウェアとの組み合わせによって構成され、スキャナ2を制御する制御部として機能する。
主制御部211は、コントローラ200に含まれる各部を制御する役割を担い、コントローラ200の各部に命令を与える。エンジン制御部212は、スキャナユニット202を制御する。入出力制御部213は、ディスプレイパネル205からユーザによって入力される操作情報を主制御部211に入力すると共に、主制御部211の命令に従ってディスプレイパネル205に情報表示を行い、またはネットワークI/F204を介して他の装置に情報を送信する。
画像処理部214は、主制御部211の制御に従い、スキャナユニット202から入力される撮像情報を処理し、画像情報を生成する。この画像情報とは、ユーザが手書で紙媒体に描画した絵をスキャンしたスキャン動作の結果物(結果情報)としてHDDコントローラ215を介してHDD206に格納され若しくはネットワークI/F204を介してレースゲーム装置1に送信される情報である。HDDコントローラ215は、主制御部211の制御に従い、HDD206への情報の記録若しくはHDD206からの情報の読み出しを制御する。
スキャナ2がスキャンを実行する場合、ユーザによるディスプレイパネル205の操作若しくはネットワークI/F204を介して入力されるスキャン実行命令の情報に応じて入出力制御部213が主制御部211にスキャン実行信号を送信する。主制御部211は、入出力制御部213から受信したスキャン実行信号に基づき、エンジン制御部212を制御する。エンジン制御部212は、ADF201を駆動し、ADF201にセットされた撮像対象原稿をスキャナユニット202に搬送する。また、エンジン制御部212は、スキャナユニット202を駆動し、ADF201から搬送される原稿を撮像する。また、ADF201に原稿がセットされておらず、スキャナユニット202に直接原稿がセットされた場合、スキャナユニット202は、エンジン制御部212の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット202が撮像部として動作する。
撮像動作においては、スキャナユニット202に含まれるCCD等の撮像素子が原稿を光学的に走査し、光学情報に基づいて撮像情報が生成される。エンジン制御部212は、スキャナユニット202が生成した撮像情報を画像処理部214に転送する。画像処理部214は、主制御部211の制御に従い、エンジン制御部212から受信した撮像情報に基づき画像情報を生成する。画像処理部214が生成した画像情報は順次HDD206等の記憶領域にスプールされる。画像処理部214によって生成され、スプールされた画像情報は、ユーザの指示に応じてそのままHDD206に格納され若しくは入出力制御部213及びネットワークI/F204を介してレースゲーム装置1に送信される。
このようなレースゲーム装置1及びスキャナ2において、本実施形態にかかる要旨は、ユーザが紙媒体に描画したレーシングカーの絵をスキャナ2がスキャンしてレーシングカーの画像情報を生成し、そのレーシングカーをレースゲーム装置1が処理するレースゲームに登場させることにある。また、もう一つの要旨としてレーシングカーの画像の特徴に応じて、レーシングカーの性能を示すパラメータ情報を生成することにある。以下、図面を参照して、本実施形態に係るレースゲーム装置1及びスキャナ2の動作について説明する。
図4は、本実施形態に係るレースゲーム装置1及びスキャナ2の動作を示すフローチャートである。図4に示すように、先ずはスキャナ2においてスキャンを実行し、画像情報を入力する(S401)。ここで、S401においてレースゲーム装置1のディスプレイモニタ130に表示されるGUI(Graphical User Interface)を図5に示す。図5に示すように、本実施形態に係るレースゲームのGUIは、コース表示部5a、レーシングカー表示部5b〜5e、コース選択ボタン5f及びスタートボタン5gを有する。図5に示すGUIは、当該GUIを描画するための情報を描画処理部148が生成し、その情報に基づいて表示制御部103がディスプレイモニタ130を制御することにより表示される。
コース表示部5aは、GUIにおいてコース情報記憶部147に記憶されているレース場の画像を表示する部分である。上述したように、コース情報記憶部147に記憶されているレース場の画像は2次元のビットマップ情報であるが、コース表示部5aにおいては、それを斜視したように遠近感を再現して擬似的に3次元で表示される。
S401の画像情報の入力に際して、ユーザは、図5に示すレーシングカー表示部5b〜5eに表示されている"スキャン"ボタンをマウス等の入力デバイス120を操作してクリックする。これにより、レースゲーム装置1からスキャナ2にスキャン実行命令が送信される。スキャン実効命令を受信したスキャナ2は、上述した処理によってADF201若しくはスキャナユニット202にセットされた原稿をスキャンし、画像情報を生成してレースゲーム装置1に送信する。これにより、レースゲーム装置1に画像情報が入力される。レースゲーム装置1に入力された画像情報は、ネットワークI/F110、入出力制御部102を介してゲーム制御部104の画像認識部141に入力される。即ち、スキャナ2、ネットワークI/F110及び入出力制御部102が画像情報入力部として機能する。また、画像認識部141が画像取得部として機能する。尚、図5に示す"呼び出し"ボタンは、既にスキャンされてレースゲーム装置1に記憶されている画像を呼び出すためのボタンである。
レースゲーム装置1に画像情報が入力されると、画像認識部141が入力された画像を認識し、画像情報からレーシングカーの画像を抽出する(S402)。ここで、S402における抽出処理について、図6(a)、図6(b)を参照して説明する。スキャナ2から図6(a)に示すような画像が入力された場合を考える。図6(a)において、斜線で示す部分は背景であり、ユーザによってレーシングカーが描画されていない空白部分である。この場合、画像認識部141は、図6(a)に示す画像においてユーザによって描画された画像、即ち、レーシングカーの上下端及び左右端を認識する。そして、認識された上下及び左右端よりも外側の範囲を消去する。これにより、図6(b)に示すにようにレーシングカーの画像が認識される。図6(a)に示す状態のまま画像をゲームに登場させた場合、画像の下端とレーシングカーの下端との間にギャップがあるため、レーシングカーが浮いたように表示されてしまう。図6(b)に示すように画像の余白を消去することにより、このような課題を解決することができる。尚、図6(b)に示すように、以降、レーシングカーの画像においては、縦方向をY軸、横方向をX軸とする。
画像認識部141が画像情報の認識を完了すると、次に、画像修正部143が、ディスプレイモニタ130に表示するレーシングカーの画像を生成するために、画像認識部141が認識した画像を修正する(S403)。尚、画像認識部141が認識した画像とは、図6(b)に示す状態の画像である。ここで、画像修正部143による画像の修正処理について、図6(b)、図6(c)及び図7を用いて説明する。図7に示すように、画像修正部143は、修正対象の画像(以降、対象画像とする)の背景が白か黒かを判断する(S701)。尚、本実施形態においては、2値、即ち白黒画像を例として説明する。対象画像の背景が白である場合(S701/YES)、画像修正部143は対象画像の収縮処理を行なう(S702)。他方、対象画像の背景が黒である場合(S701/NO)、画像修正部143は対象画像の膨張処理を行なう(S702)。
ここで、図8(a)、図8(b)を参照して、画像の収縮処理及び膨張処理について説明する。画像の収縮処理とは、図8(a)に示すように、画像を画素毎に夫々解析し、対象とする画素(対象画素)の隣接する画素に1つでも黒があれば、その対象画素を黒にする処理である。他方、画像の膨張処理とは、図8(b)に示すように、画像を画素毎に夫々解析し、対象画素の隣接する画素に1つでも白があれば、その対象画素を白にする処理である。即ち、画像修正部143は、対象画像を構成する画素を解析する画素解析手段及び画素の解析結果に応じて画素の情報を修正する画素修正手段とを含む。尚、図8(a)、(b)の例においては、上下左右に斜めも含めた8近傍の画素を判断する例を示したが、上下左右のみの4近傍の画素を判断するようにしても良い。
上述したように、本実施形態においては、ユーザが手書きで紙媒体に描画した絵をスキャンにより入力する。ユーザによって手書きで描画された絵は、線が細い場合や、薄くてかすれている場合が考えられる。このような絵をスキャンしてそのままレーシングカーとして表示しても、ゲーム上で見辛くなることが考えられる。これに対して、上記収縮若しくは膨張処理を行なうことにより、図6(c)に示すように、レーシングカーを構成する線を太くし、ユーザが手書きで書いた絵をゲーム中で見易く表示することが可能となる。
画像の収縮処理若しくは膨張処理が完了すると、画像修正部は、画像の背景を透明化する処理を行い(S704)処理を終了する。図6(a)に示す状態のまま画像をゲームに登場させた場合、レーシングカーの周囲の白い部分も同時に描画されてしまう。背景を透明化することにより、レース場とレーシングカーとを適正に重ね合わせて表示することができる。尚、S702の収縮処理若しくはS703の膨張処理は、画像の状態に応じて複数回繰り返しても良い。画像修正部143は、生成したレーシングカーの画像を記憶する。また、画像修正部143は、生成したレーシングカーの画像を画像認識部141に送信する。このように、本実施形態においては、画像認識部141及び画像修正部143の機能により、ゲーム画面であるGUIに表示すべきレーシングカーの表示情報であるレーシングカー情報が生成される。即ち、画像認識部141及び画像修正部143がレーシングカー情報取得部として機能する。
画像認識部141は、画像修正部143からレーシングカーの画像を受信すると、受信した画像の特徴を抽出する(S404)。即ち、画像認識部141が、画像特徴情報取得部として機能する。ここで、図9に、画像認識部141が抽出する画像の特徴情報(以降、画像特徴情報とする)を示す。図9に示すように、画像認識部141が抽出する画像特徴情報は、画像高さ情報及びホイールベース情報等の寸法に関する情報並びに画像面積情報を含む。ここで、ホイールベースとは、レーシングカーの前輪と後輪との間隔である。次に夫々の情報の抽出態様について、図10(a)〜(c)を参照して説明する。図10(a)は、画像高さ情報を抽出する態様を示す図である。図10(a)に示すように、画像認識部141は、S402において認識した画像における縦方向の両端の座標間隔を画像高さ情報として抽出する。即ち、画像高さ情報とは、入力された画像において、レーシングカーが表示されている範囲の上端から下端までの間隔の寸法である。
図10(b)は、ホイールベース情報の抽出態様を示す図である。ホイールベース情報の抽出に際して、画像認識部141は、画像のY軸方向の最下端から所定範囲上のY座標であって、X軸に平行な線、即ち、水平方向の線を走査線Sとし、この走査線S上において画像が存在するX軸上の範囲、即ちレーシングカーが表示されていて背景ではない範囲をホイールベース情報として求める。詳細には、走査線S上において、画像が存在する範囲のうち、最も左側、即ちX座標の最も小さい点から、最も右側、即ち、X座標の最も大きい点までの間隔を求め、これをホイールベース情報とする。
図10(c)は、画像面積情報の抽出態様を示す図である。画像認識部141は、画像面積情報の抽出に際して、背景以外の部分を認識し、そのピクセル数を算出する。ここで、背景以外の部分とは、図10(c)においては、レーシングカーを示す線の部分である。これらの処理により、画像認識部141は、図9に示すように画像特徴情報を抽出する。これらの処理により、S402の処理が完了する。画像認識部141は、抽出した画像特徴情報をパラメータ生成部142に入力する。
画像認識部141による画像特徴情報の抽出が完了すると、その情報に基づいてパラメータ生成部142がパラメータ生成処理を行なう(S405)。図11にパラメータ生成部142が生成するパラメータ情報を示す。図11に示すように、レーシングカーの性能を示すパラメータ情報は、レーシングカーのレーダー距離情報、最高速度情報、加速性能情報及び回転角度情報を含む。実際のレースゲームの処理はユーザによる操作ではなく自動で実行され、レーシングカーは進行方向前方がコース内かコース外かを検出してコースがカーブしていることを認識し、進行方向を変更する。レーダー距離とは、レーシングカーが進行方向前方のどの地点を検知するかを示す。ここで、各レーシングカーが、レーダー距離に基づいて進行方向前方を検知するポイントをレーダーポイントとする。即ち、レーダー距離が長いほど、レーダーポイントが先にあり、より早いタイミングでカーブを検知することができ、より早いタイミングで進行方向を変更することができるため、スムーズなコーナリングを行なうことができる。
最高速度とは、その名の通り、レーシングカーが単位時間に進むことができる距離の最大値を示す。ここで、本実施形態における距離とは、即ちビットマップによって示されるレース場の距離であり、ピクセル数で示される。また、本実施形態において、レースは画面を更新することによって進行する。即ち、本実施形態に係る単位時間とは画面を更新する間隔、換言する画面を描画する間隔である。従って、本実施形態に係る速度とは、1回の画面更新で進むピクセル数であり、"ピクセル/描画"の単位で示される。加速性能とは、レーシングカーが最高速度に達するまでの、単位時間辺りの速度の増加値であり、最高速度と同様に、"ピクセル/描画"の単位で示される。回転角度とは、レーシングカーがカーブを検出して進行方向を変更する際に、1回の画面更新で変更可能な進行方向の角度であり、"度/描画"で示される。
次に、パラメータ生成部142が画像特徴情報に基づいてパラメータ情報を生成する方法について説明する。先ずレーダー距離は、画像高さ情報に基づき、以下の式(1)によって生成される。
これは即ち、レーシングカーの車高が高い方が、遠くまで見渡せるということを示している。尚、式(1)における"最大画像高さ"とは、ユーザがレーシングカーを描画する際に描画可能な最大の高さであり、例えば、図6(a)に示す背景も含めた画像の高さである。また、"最大レーダー距離"とは、本実施形態に係るレースゲームのレーダー距離の限界値として設定される。
次に、最高速度は、画像面積情報に基づき、以下の式(2)によって生成される。
これは即ち、レーシングカーが大きい方が、より最高速度が高いことを示している。尚、式(2)における"最大画像面積"とは、ユーザがレーシングカーを描画する際に描画可能な最大の面積であり、例えば、図6(a)に示す背景も含めた画像の面積である。また、"最大最高速度"とは、本実施形態に係るレースゲームの最高速度の限界値として設定される。
また、加速性能は、画像面積情報に基づき、以下の式(3)によって生成される。
これは即ち、レーシングカーが小さい方が軽いため、最高速度に早く達することを示している。尚、式(3)における"基本加速性能"とは、本実施形態に係るレースゲームの加速性能の基準値を示し、式(3)に示すように、最大面積に対する画像面積の割合の逆数を乗じた数値がレーシングカーの加速性能となる。
また、回転角度は、ホイールベース情報に基づき、以下の式(4)によって生成される。
これは即ち、ホイールベースが短い方が、小回りが効くため、単位時間に回転可能な角度も大きいことを示している。尚、式(4)における"画像最大幅"とは、ユーザがレーシングカーを描画する際に描画可能な最大の幅であり、例えば、図6(a)に示す背景も含めた画像の幅である。また、"最大回転角度"とは、本実施形態に係るレースゲームの回転角度の限界値として設定される。
このような処理により、パラメータ生成部142によるパラメータ生成処理が完了する。即ち、パラメータ生成部142がパラメータ情報取得部として機能する。パラメータ生成部142によって生成されたパラメータ情報は、状態記憶部144に入力され、状態記憶部144によって記憶される。図12に、状態情報記憶部144によって記憶される情報の例を示す。図12に示すように、状態情報記憶部144は、パラメータ生成部142によって入力されたパラメータ情報に加えて、位置情報、速度情報及びベクトル情報を記憶している。これらの情報は、レースゲームのレース中の状態を示す情報である。パラメータ情報が生成された段階においては、位置情報には図5に示すコース表示部5aに表示されたレース場のスタート地点の座標が記憶される。また、速度情報は停止している状態を示す"0"が入力され、ベクトル情報には、スタート地点からコースの進行方向を示すベクトルが入力される。
画像修正部143による画像修正処理及びパラメータ生成部142によるパラメータ生成処理が完了した後、描画処理部148は、画像修正部143によって生成されたレーシングカーの画像を描画する(S406)。まだ入力する画像があれば(S407/NO)、S401からの処理を繰り返す。S401〜S406の処理が繰り返され、複数の画像が入力されて描画された状態を図13に示す。図13に示すように、GUIのレーシングカー表示部5b〜5eに、入力されたレーシングカーの画像が表示される。また、夫々のレーシングカー表示部5b〜5eには、パラメータ生成部142が生成したパラメータ情報が帯によって表示される。更に、コース表示部5aには、画像修正部143によって生成されたレーシングカーの画像が表示される。尚、レーシングカーの画像は紙媒体に表示された絵をスキャンしたものであり、2次元の画像であるが、図13に示すように、コース表示部5aにおいては、平面の画像がレース場の地面に垂直に立っているように、擬似的に3次元で表示される。
このように、全ての画像の入力が完了すると(S407/YES)、ユーザが入力デバイス120を操作することによりスタートボタン5gをクリックすると、レースが開始される(S408)。レースが開始されると、状態記憶部144、状態算出部145、状態解析部146及び描画処理部148によってレース処理が実行される(S409)。S408のレース処理が完了したら(S410)、処理を終了する。
ここで、図14を参照して、レース処理について詳しく説明する。図14は、S408における詳しい処理を示すフローチャートである。レースが開始されると、状態解析部146が状態記憶部144から各レーシングカーの状態の情報を取得し、各レーシングカーのレーダー距離及びベクトル情報に基づき、各レーシングカーのレーダーポイントの座標を算出する。そして、状態解析部146は、コース情報記憶部147からレース場の座標と夫々の座標がコース内かコース外かを示す情報を取得し、各レーシングカーのレーダーポイントがコース内か否かを判定する(S1401)。ここで、コース情報記憶部147に記憶されている、レース場の座標と夫々の座標がコース内かコース外かを示す情報について、図15を参照して説明する。
図15に示すように、コース情報記憶部147は、GUIに表示されるレース場のビットマップ情報に加えて、レース場のビットマップの座標に対応した座標とコース内/外を示す情報とが関連付けて記憶されている。ここで、コース内/外の情報は、コースから外れていないことを示す"コース内"、コースから外れている状態であって、コースの外側に外れていることを示す"コース外 外側"及びコースの内側に外れていることを示す"コース外 内側"の3つの状態に分けられる。
ここで、レーシングカーのレーダーポイントがコース外に外れた場合の例について、図16(a)、図16(b)を参照して説明する。図16(a)は、レーダーポイントPがコースの外側に外れた状態、即ち、図15における"コース外 外側"の状態を示す図である。他方、図16(b)は、レーダーポイントPがコースの内側に外れた状態、即ち、図15における"コース外 内側"の状態を示す図である。尚、ゲーム開始時において、各レーシングカーはスタートラインに配置されているので、レーダーポイントがコースから外れていることはない。
レーダーポイントがコース外に外れていなければ(S1401/NO)、状態解析部146は、状態記憶部144に記憶されている速度情報を、レーシングカーの加速性能の分だけ増加させる(S1403)。尚、S1404の速度の更新処理においては、状態記憶部144に記憶された最高速度が上限とされ、速度情報はそれ以上には増加しない。
次に、状態算出部145が、状態記憶部144に記憶された情報に基づいて各レーシングカーの位置情報、即ち、レース場における座標の更新値を算出する。(S1404)。更新値の算出に際しては、ベクトル情報が示す方向に速度情報が示すピクセル分だけ移動した座標を算出する。状態算出部145は、更新値を算出すると、算出した更新値を状態記憶部144の位置情報に上書きして位置情報を更新する(S1404)。
他方、S1401において、レーダーポイントがコース外に外れたことを検知すると(S1402/YES)、状態解析部146は、各レーシングカーの回転角度の分、状態記憶部144に記憶されているベクトル情報を変更する(S1402)。ここで、本実施形態においては、図13等に示すように、レース場は右回りのコースである。従って、レーダーポイントがコース外に外れた場合において、"コース外 外側"の場合、レース場を真上から見て時計回り方向に、"コース外 内側"の場合、反時計回り方向に、回転角度の分だけベクトル情報を変更する。また、S1403においてベクトルを変更する際、状態解析部146は、状態記憶部144に記憶されている速度情報を減ずる。これは、実際のレース等においても、カーブにおいて減速をすることを表現するためである。ベクトルの変更処理の後、S1404の座標変更処理に進む。
S1401〜S1404までの処理が完了すると、描画処理部148は、状態記憶部144から位置情報及びベクトル情報を取得し、コース表示部5aに表示される各レーシングカーの表示位置及び表示角度を変更する(S1405)。即ち、描画処理部148が、状態記憶部144に記憶された情報に基づいてGUIの表示を制御する描画制御部として機能する。
S1401〜S1405までの処理が、GUIにおいてコース表示部5aに表示されるレーシングカーの表示位置が1回更新される1サイクルの処理である。ゲーム制御部104が、S1401〜S1405の処理を繰り返すことにより、レースゲームが進行する。尚、S1401〜S1405の処理が実行される間隔は、ゲーム制御部104の設定により変更可能であるが、例えば0.5(秒)間隔である。
描画処理部148がコース表示部5aの表示を更新した後、状態解析部146は、レーシングカーが移動した軌跡、即ち、状態記憶部144に記憶されている位置情報の更新前の座標と更新後の座標とを結ぶ線分が、コース情報記憶部147に記憶されているスタートラインの線分と交差したか否かを判定する(S1406)。レーシングカーの移動軌跡とスタートラインとが交差していなければ(S1406/NO)、S1401からの処理を繰り返す。他方、レーシングカーの移動軌跡とスタートラインとが交差していれば(S1406/YES)、状態解析部146は、そのレーシングカーがゴールしたと判断し、そのレーシングカーの処理を終了する(S1407)。即ち、ゴールしたと判断されたレーシングカーについては、以降、状態算出部145は、位置情報の更新を行なわず、スタートライン近傍に停止した状態となる。
全レーシングカーについて、状態解析部146がゴールを判断し、処理が終了するまでS1401からの処理を繰り返す(S1408/NO)。全レーシングカーについて処理が終了したら(S1408/YES)、描画処理部148はレース終了を示すように画面を更新し(S1409)、処理を終了する。このような処理により、本実施形態に係るレースゲームの処理が実行される。本実施形態においては、ユーザによる操作ではなく、上述したように状態記憶部144、状態算出部145及び状態解析部146の処理によってレースが自動的に進行する。即ち、状態記憶部144、状態算出部145及び状態解析部146が連動してレース実行部として機能する。これにより、描画した絵から生成されたパラメータのみに基づいてゲームが進行する。従って、ユーザの操作技量に影響されること無く、入力した画像のみで勝敗を決定することができる。
以上説明したように、本実施形態に係るレースゲーム装置により、ユーザによって自由にデザインされた画像を用いて擬似的にレースを楽しむことが可能となる。
尚、上記の説明においては、ゲーム制御部104の制御によって自動的にレースが進行する例を説明したが、レーシングカーの加速や方向制御等については、入力デバイス120を介したユーザの操作によって制御されるようにしても良い。これにより、ユーザが入力した画像とユーザの操作技量との2つの要素で勝敗が決定されることとなり、より様々な勝敗要因を含んだゲームを実行することができる。
また、上記の説明においては、ユーザが手書きで紙媒体に描画した絵をスキャナ2を介して入力する例を説明した。この他、例えばPC等を用いて描画した画像を入力することも可能である。これによっても、上記と同様の効果を得ることが可能となる。
また、上記の説明においては、図11において説明したように、レーダー距離、最高速度、加速性能及び回転角度の情報をレーシングカーの性能を示すパラメータ情報とする例を説明した。これは一例であり、他の要素を入れることも可能である。例えば、コース情報記憶部147に記憶されたレース場の画像においてコースの最短距離となるラインを抽出し、そのラインへの追随性を示すパラメータを設定することも可能である。また、コースのカーブを検出してベクトルを変更する際に、速度が減速されるように処理を行なうが、その際の減速量を示すパラメータを設定しても良い。更には、入力されたレーシングカー画像の外形に応じて空気抵抗を算出し、加速性能や最高速度に影響させても良い。これらのパラメータは、上述した用に画像認識部141によって認識された画像に基づいて算出される。
また、上記の説明においては、式(1)〜(4)に示す方式によって各パラメータを算出する例を説明した。これは一例であり、他の計算方法によって算出することも可能である。例えば、上記の説明においては、レーシングカーの画像として2値画像を入力する例を説明したが、3値以上のカラー画像を入力し、その色に応じてパラメータを算出することも可能である。
また、上記の説明においては、式(1)〜(4)に示されるように、入力された画像の特徴に応じて各パラメータを算出する例を説明した。これにより、入力した画像をゲームに登場させるだけではなく、ゲームにおける性能が良くなるように絵を描画するという楽しみが生まれる。
また、上記の説明においては、画像修正部143が修正した後の画像に基づいて画像認識部141が画像特徴情報を抽出し、パラメータ生成部142がパラメータを生成する例を説明した。上述した通り、画像修正部143が修正する前の画像が線画等の場合、面積が非常に小さくなる。膨張・収縮処理を行なった後の画像の特徴を抽出することにより、このような課題を解決することができる。他方、入力される画像が、手書きではなくPCの描画アプリケーション等により生成された画像である場合は、修正処理を行なう前の画像から特徴情報を抽出しても良い。
実施の形態2.
実施の形態1においては、式(1)〜式(4)を用いてレーシングカーのパラメータ情報を算出する例を説明した。本実施形態においては、入力画像に対するパラメータの設定方法として他の例を説明する。尚、実施の形態1と同様の符号を付す構成については実施の形態1と同一又は相当部を示し、説明を省略する。
図17は、本実施形態に係るレースゲーム装置1を示すブロック図である。図17に示すように、本実施形態に係るレースゲーム装置1は、概ね図2に示す実施の形態1の態様と同様の構成を有する。ここで本実施形態に係るレースゲーム装置1は、パラメータ生成部142に代えて画像比較部149及びパラメータ記憶部150を有する。パラメータ記憶部150は、複数の画像とその画像に関連付けられたパラメータ情報とが記憶されている記憶部である。ここで、パラメータ記憶部150に記憶されている複数の画像とは、レーシングカーの画像として画像認識部141に入力された画像に設定するパラメータを判断するための基準となる画像である。また、画像比較部149は、パラメータ記憶部150に記憶されている画像と画像認識部141が認識した画像との類似点を検出し、入力された画像に最も類似する画像に関連付けられたパラメータ情報をパラメータ記憶部150から取得する。
図18に、パラメータ記憶部150に記憶されている情報の例を示す。図18に示すように、パラメータ記憶部150は、入力された画像との類似点を判断する画像を識別する画像ID、及びその画像IDに関連付けられたパラメータ情報として、レーダー距離、最高速度、加速性能及び回転角度の情報を記憶している。画像比較部149による画像の類似度の算出においては、例えば、実施の形態1の図9において説明したような画像特徴情報を抽出し、抽出された画像特徴情報を比較することによって類似度を算出することができる。この他、画像同士の類似度の算出においては、公知の技術を用いることができる。
本実施形態に係るレースゲーム装置1の動作は実施の形態1の図4において説明した動作と概ね同様である。ここで、本実施形態においては、図4のS404の処理が実施の形態1とは異なる。実施の形態1においては、図9に示すように抽出した画像特徴情報及び式(1)〜(4)の計算を用いてパラメータを生成した。本実施形態においては、上述したように、画像比較部149及びパラメータ記憶部150の機能によってパラメータ情報が取得され、状態記憶部144に入力される。その他の処理は、実施の形態1と同様である。
以上説明したように、本実施形態に係るレースゲーム装置においては、入力された画像に応じてパラメータ記憶部150に記憶されたパラメータ情報のうち1つが選択され、そのパラメータ情報に基づいてレースが実行される。これにより、レーシングカーのパラメータ情報を予めパラメータ記憶部150に記憶された情報のいずれか1つにすることができる。従って、予め各レーシングカーの性能の差を調整することが可能となるため、レーシングカーの性能差が大きく開き、一方的なレース展開となることを防ぐことができる。
尚、上記の説明においては、パラメータ記憶部150に比較対照の画像及び当該画像に関連付けられたパラメータの情報が記憶されている例を説明した。しかしながら、パラメータ記憶部150には、少なくとも画像比較部149が入力画像との類似点を判断可能な情報が記憶されていれば上記の効果を得ることが可能である。従って、上述したように、画像の特徴情報を抽出して類似点を判断する場合は、画像そのものではなく、夫々のパラメータに関連付けられた特徴情報が記憶されていれば上記と同様の効果を得ることが可能となる。
実施の形態3.
実施の形態1、2においては、図1に示すように、レースゲーム装置1が、ネットワークを介して接続されたスキャナ2から画像情報を取得して動作する例を説明した。本実施形態においては、レースゲーム装置1の一態様として、スキャナ等の画像入力機能を有する画像処理装置をレースゲーム装置として構成する例を説明する。尚、実施の形態1、2と同様の符号を付す構成については実施の形態1と同一又は相当部を示し、説明を省略する。
図19は、本実施形態に係るレースゲーム装置としての画像処理装置3の構成を示すブロック図である。図19に示すように、本実施例に係る画像処理装置3は、コントローラ100、ADF(Auto Document Feeder:原稿自動搬送装置)111、スキャナユニット112、排紙トレイ113、ネットワークI/F110、ディスプレイパネル131、給紙テーブル114、プリントエンジン1115及び排紙トレイ116を有する。本実施形態に係る画像処理装置3は、プリンタ、スキャナ、複写機及びファクシミリ等の機能を有するMFP(Multi Function Peripheral)として構成される。
また、コントローラ100は、主制御部101、入出力制御部102、操作表示制御部123、ゲーム制御部104、エンジン制御部105及び画像処理部106を有する。尚、図19においては、電気的接続を実線の矢印で示しており、用紙の流れを破線の矢印で示している。コントローラ100は、実施の形態1と同様に、ソフトウェアとハードウェアとの組み合わせによって構成される。
ディスプレイパネル131は、実施の形態1における入力デバイス120及びディスプレイモニタ130の機能を有する。即ち、ディスプレイパネル131は、画像処理装置3の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザが画像処理装置3を直接操作する際の入力インタフェースでもある。
エンジン制御部105は、プリントエンジン115やスキャナユニット112等を制御若しくは駆動する駆動手段としての役割を担う。入出力制御部102は、ネットワークI/F110を介して入力される印刷ジョブ等の情報を主制御部111に入力する。また、入出力制御部102は、主制御部111の命令に従ってネットワークI/F110を介してネットワークに接続された他の装置に情報を送信する。
画像処理部106は、主制御部101の制御に従い、印刷ジョブに含まれる情報等に基づいて描画情報を生成する。この描画情報とは、プリントエンジン115が画像形成動作において形成すべき画像を描画するための情報である。また、画像処理部106は、スキャナユニット112から入力される撮像データを処理し、画像情報を生成する。この画像情報とは、スキャナ動作の結果物として図示しないHDDに格納され若しくはネットワークI/F110を介して他の情報端末に送信される情報である。本実施形態において、画像処理部106は、スキャンに応じて生成した画像情報をゲーム制御部104に入力する。
操作表示制御部123は、実施の形態1に係る表示制御部103と同様に、主制御部101の制御に従い、ディスプレイパネル131に情報を表示させる。また、操作表示制御部123は、ディスプレイパネル105からユーザによって入力される操作情報を主制御部111に入力する。ゲーム制御部104は、実施の形態1、2と同様の構成であり、図2若しくは図17と同様の構成を有する。
画像処理装置3がプリンタとして動作する場合は、まず、入出力制御部102がネットワークI/F110に接続されたUSBやLANを介して印刷ジョブを受信する。これにより、画像処理装置3において、印刷ジョブが発生する。印刷ジョブが発生すると、主制御部101は、印刷ジョブに含まれる画像情報を画像処理部106に入力する。画像処理部106は、主制御部101の命令に従い、入力された画像情報に基づいて描画情報を生成する。画像処理部106によって生成された描画情報は、順次図示しないHDDに一時的に保持される。
エンジン制御部105は、主制御部101の制御に従い、給紙テーブル114を駆動して印刷用紙をプリントエンジン115に搬送する。また、エンジン制御部105は、図示しないHDDに保持された描画情報を取得し、プリントエンジン115に入力する。プリントエンジン115は、エンジン制御部105から受信した描画情報に基づき、給紙テーブル114から搬送される用紙に対して画像形成を実行する。即ち、プリントエンジン115が画像形成部として動作する。プリントエンジン115の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン115によって画像形成が施された文書は排紙トレイ116に排紙される。
画像処理装置3がスキャナとして動作する場合は、ユーザによるディスプレイパネル131の操作若しくはネットワークI/F110を介して入力されるスキャン実行指示に応じて、操作表示制御部103若しくは入出力制御部102が主制御部101にスキャン実行信号を送信する。主制御部101は、受信したスキャン実行信号に基づき、エンジン制御部105を制御する。エンジン制御部105は、ADF111を駆動し、ADF111にセットされた撮像対象原稿をスキャナユニット112に搬送する。
また、エンジン制御部105は、スキャナユニット112を駆動し、ADF111から搬送される原稿を撮像する。また、ADF111に原稿がセットされておらず、スキャナユニット112に原稿がセットされている場合、スキャナユニット112は、エンジン制御部105の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット112が撮像部として動作する。
撮像動作においては、スキャナユニット112に含まれるCCD等の撮像素子が原稿を光学的に走査し、光学情報に基づいて撮像情報が生成される。エンジン制御部105は、スキャナユニット112が生成した撮像情報を画像処理部106に転送する。画像処理部106は、主制御部101の制御に従い、エンジン制御部105から受信した撮像情報に基づき画像情報を生成する。画像処理部106が生成した画像情報は図示しないHDDに一時的に保持される。
画像処理部106によって生成され、図示しないHDDに保持された画像情報は、ユーザの指示に応じて格納され若しくは入出力制御部102及びネットワークI/F110を介して外部の情報端末に送信される。本実施形態においては、上記保持された画像情報は、ゲーム制御部104に入力される。また、画像処理装置3が複写機として動作する場合は、エンジン制御部105がスキャナユニット112から受信した撮像情報に基づき、画像処理部106が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部105がプリントエンジン115を駆動する。
このような画像処理装置3においては、本実施形態は、実施の形態1、2において説明したレースゲーム動作を画像処理装置3が単体で実行可能であることが要旨の1つとなる。本実施形態に係る画像処理装置3がレースゲームを実行する際の動作は、図4において説明した動作と略同様である。ここで、実施形態においては、図4のS401の処理を実行する装置が、画像処理装置3であることが実施の形態1とは異なる。
即ち、本実施形態においては、上記説明したエンジン制御部105、画像処理部106及びスキャナユニット112が動作することにより生成された画像情報がゲーム制御部104の画像認識部141に入力される。即ち、スキャナユニット112、エンジン制御部105及び画像処理部106が画像情報入力部として機能する。以降の処理は、実施の形態1と同様に実行される。
尚、実施の形態1において入力デバイス120及びディスプレイモニタ130が果たしていた機能は、本実施形態においては、ディスプレイパネル131が果たす。即ち、ディスプレイパネル131が、図5に示されるようなGUIを表示する。また、ユーザは、ディスプレイパネル131に表示されたGUIをタッチすることにより、スキャンの実行指示やレース開始の指示の命令を入力する。
以上説明したように、本実施形態に係る画像処理装置3は、単体で実施の形態1、2において説明したレースゲームを実行可能である。従って、レースゲーム装置とスキャナとを別個に用意する必要がない。また、ゲーム制御部104の機能を画像処理装置3に搭載することにより、付加価値を加えた画像処理装置を提供することが可能となる。
実施の形態4.
本実施形態においては、ネットワークを介して対戦が可能なゲームシステムの例を説明する。尚、実施の形態1〜3と同様の符号を付す構成については、同一又は相当部を示し、説明を省略する。
図20は、本実施形態に係るゲームシステムの運用形態の例を示す図である。本実施形態に係るゲームシステムは、PC4、スキャナ2、ゲームサーバ6及びMFP7を含む。PC4、ゲームサーバ6及びMFP7は、インターネット回線等の公衆回線網であるネットワーク8を介して通信可能に接続されている。本実施形態においては、ゲームサーバ6の処理により、PC4を操作しているユーザとMFP7を操作しているユーザとの間での対戦が可能となる。即ち、本実施形態においては、ネットワーク8を介しての対戦が可能となる。
PC4は、ユーザが操作する一般的な情報処理端末であり、一般的な情報処理端末としてのハードウェア構成を有する。PC4は、スキャナ2と接続されている。これにより、PC4は、スキャナ2がスキャンして生成した画像情報を処理可能となる。MFP7は、プリンタ、スキャナ、複写機及びファクシミリ等の機能を有する複合機としての画像処理装置である。本実施形態に係るMFP7は、図19に示す画像処理装置3が有する構成のうち、ゲーム制御部104以外の構成を有する。ゲームサーバ6は、本実施形態においてレースゲーム装置として動作する。図22に本実施形態に係るゲームサーバ6の構成を示す。
図21に示すように、本実施形態に係るゲームサーバ6は、図3において説明したレースゲーム装置1と略同様の構成を有する。ここで、本実施形態に係るゲームサーバ6のゲーム制御部104は、ログイン制御部151を更に有する。また、ゲームサーバ6は、ゲーム装置1から入力デバイス120、ディスプレイモニタ130及びコントローラ100の表示制御部103が省略されている。ログイン制御151は、本実施形態に係るゲームシステムにおいて、PC4やMFP7からのアクセスを管理する。また、ログイン制御部151は、PC4やMFP7を操作しているユーザのログインに関する情報及びユーザによって入力されたレーシングカーの画像情報を記憶している。
図22に、ログイン制御部151が記憶している情報(以降、ログイン情報とする)の例を示す。図22に示すように、ログイン情報は、ユーザID、IPアドレス、パラメータ情報及び画像格納パスの情報を含む。ユーザIDは、PC4若しくはMFP7を操作してログインしているユーザを一意に識別する情報である。IPアドレスは、PC4、MFP7のネットワーク8におけるアドレスを示す情報である。
パラメータ情報は、夫々のユーザによって入力されたレーシングカーのパラメータ情報であり、図11に示す情報と同様である。画像格納パスは、ログイン制御部151においてレーシングカーの画像情報が記憶されている記憶領域を示す情報である。ログイン制御部151は、ゲームシステムにログインしているユーザのログイン情報のみを記憶している。即ち、ログイン制御部151は、ゲームシステムからログアウトしたユーザのログイン情報を破棄する。
次に、本実施形態に係るゲームシステムの動作について説明する。図23は、本実施形態に係るゲームシステムの動作を示すシーケンス図である。図23においては、MFP7を操作するユーザが起点となって処理が実行される例を説明する。先ず、MFP7が、ユーザの操作に応じてゲームサーバ6からログイン画面を表示するための情報を取得し、MFP7のディスプレイパネルに表示する(S2301)。S2301において表示されるログイン画面のGUIの例を図24に示す。
図24に示すように、ログイン画面のGUIは、ユーザIDを入力する入力部と、スキャン及びログインの実行を指示するボタンを有する。ユーザは、ディスプレイパネル上に表示されたログイン画面のボタン部分をタッチすることにより、スキャン及びログインの実行を指示する。図24に示すGUIの情報には、MFP7のスキャナユニットを制御するためのコマンド情報も含まれる。このコマンド情報に従ってスキャンが実行される。
MFP7は、ユーザの指示に応じてスキャンを実行し、ゲームサーバ6に対してログイン要求を送信する(S2302)。MFP7が、S2302においてゲームサーバ6に送信する情報(以降、ログイン要求情報とする)の例を図25に示す。図25に示すように、ログイン要求情報は、ログイン要求であることを示すヘッダ情報、MFP7のIPアドレス情報及びスキャンによって生成された画像情報を含む。
入出力制御部102は、ネットワークI/F110を介して、ゲームサーバ6に送信されたログイン要求情報を受信する。入出力制御部102は、受信したログイン要求情報をゲーム制御部104のログイン制御部151に入力する。ログイン要求情報を受信したゲーム制御部104は、受信した画像情報に基づいてパラメータを生成する(S2303)。S2303の処理においては、図4のS402〜S405と同様の処理が実行される。
S2303の処理においては、先ず、ログイン制御部151が、受信したログイン要求情報のうち画像情報を画像認識部141に入力する。画像認識部141は、取得した画像情報を認識し、画像情報からレーシングカーの画像を抽出する(S402)。画像認識部141は、抽出したレーシングカーの画像を画像修正部143に入力する。画像修正部143は、入力されたレーシングカーの画像を修正する(S403)。画像修正部143は、抽出したレーシングカーの画像情報をログイン制御部151及び画像認識部141に入力する。
画像認識部141は、画像修正部143から入力されたレーシングカーの画像の特徴を抽出する(S404)。パラメータ生成部142は、画像認識部141が特徴の抽出を完了すると、抽出された特徴に基づいてパラメータ情報を生成する(S405)。パラメータ生成部142は、生成したパラメータ情報をログイン制御部151に入力する。
ログイン制御部151は、MFP7から受信したログイン要求情報、画像修正部143から取得したレーシングカーの画像情報及びパラメータ生成部142から取得したパラメータ情報をログイン情報として記憶する。これにより、図22において説明したようなログイン情報が生成される。
ゲームサーバ6は、パラメータ情報の生成が完了すると、ログイン要求の送信元であるMFP7に対して、対戦相手の選択画面を表示させるための画面表示情報を送信する(S2304)。S2304において送信される画面表示情報は、ログイン制御部151が記憶している全てのログイン情報を含む。S2304においては、ログイン制御部151が画面表示情報を生成し、生成した画面表示情報を入出力制御部102に入力する。これにより、入出力制御部102が、ネットワークI/F110を介して、MFP7に画面表示情報を送信する。
MFP7は、ゲームサーバ6から画面表示情報を受信すると、ディスプレイパネルに対戦相手の選択画面を表示する(S2305)。ここで、S2305において表示される対戦相手の選択画面を図26に示す。図26に示すように、対戦相手の選択画面のGUIは、自分のレーシングカーである自機を表示する部分(以降、自機表示部とする)と、ゲームシステムにログインしているユーザ及びそのレーシングカーを表示する部分(以降、対戦相手表示部とする)とを有する。これらの情報は、画面表示情報に含まれているログイン情報に基づいて表示されている。対戦相手表示部には、夫々の対戦相手毎に対戦要求ボタンが設けられている。ユーザによってこの対戦要求ボタンがタッチされると、MFP7は、そのレーシングカーとの対戦要求をゲームサーバ6に送信する(S2306)。
S2306において送信される情報には、対戦要求であることを示すヘッダ情報及び指定された対戦相手を識別する識別情報が含まれる。この識別情報としては、例えば上述したユーザIDを用いることができる。ゲームサーバ6は、対戦要求を受信すると、上記識別情報で指定されている対戦相手のIPアドレスを宛先として、対戦要求を通知する(S2307)。本実施形態においては、PC4を操作するユーザが対戦相手である場合を例とする。この他、複数のユーザを対戦相手として選択することも可能である。
PC4は、対戦要求の通知を受けると、要求を承諾するか否かの回答をユーザに入力させる画面を表示部に表示する。PC4は、ユーザの操作に応じて、対戦要求の承諾通知をゲームサーバ6に送信する(S2308)。尚、PC4を操作しているユーザが対戦を拒否した場合、その時点で処理を終了する。ゲームサーバ6は、PC4から対戦要求の承諾通知を受けると、MFP7及びPC4に対してゲーム開始通知を送信する(S2309)。
ここで、S2309の処理においては、図13において説明したGUIを表示するための情報が送信される。この際、ログイン制御部151が、描画処理部148にレーシングカー画像及びIPアドレス情報を入力する。ここで入力されるレーシングカー画像は、対戦の対象となっているMFP7及びPC4からログインしているユーザのレーシングカー画像である。また、入力されるIPアドレス情報は、MFP7及びPCのIPアドレス情報である。また、ログイン制御部151は、状態記憶部144にパラメータ情報を入力する。ここで入力されるパラメータ情報は、MFP7及びPC4からログインしているユーザのパラメータ情報である。
描画処理部148は、ログイン制御部151から入力されたレーシングカー画像及び状態記憶部144に記憶された情報に基づき、上記GUIを表示するための情報を生成する。そして、描画処理部148は、入力されたIPアドレス情報及び上記生成したGUIを表示するための情報を入出力制御部102に通知する。入出力制御部102は、通知されたIPアドレスを宛先として、上記GUIを表示するための情報を送信する。これにより、MFP7が、ゲーム画面を表示する(S2310)。また、PC4が、ゲーム画面を表示する(S2311)。
ゲームサーバ6は、ゲーム開始通知を送信すると、ゲーム処理を実行し、処理の情報をMFP7及びPC4に送信する(S2312)。S2312の処理においては、図14にと同様に処理が実行される。ここで、本実施形態において、描画処理部148は、図14のS1405及びS1409に対応する処理として、IPアドレス情報及び更新した表示情報を入出力制御部102に入力する。入出力制御部は、入力されたIPアドレスを宛先として、入力された表示情報を送信する。これにより、MFP7が、ゲーム画面を更新する(S2313)。また、PC4が、ゲーム画面を更新する(S2314)
このような処理により、本実施形態に係るゲームシステムの処理が完了する。本実施形態においては、ゲームサーバ6が、ネットワーク8を介してゲームを提供する。これにより、離れた位置にいるユーザ間での対戦が可能となる。従って、ユーザは、対戦相手を用意することなくゲームを楽しむことが可能となる。また、ゲームサーバ6を設けてログイン情報を管理することにより、各ユーザは、現在対戦可能な他のユーザの情報を図26に示す画面で容易に確認することができる。
尚、上記の説明においては、ゲームサーバ6が、ゲーム装置としての機能を提供するゲーム制御部104の全機能を有する例を説明した。この他、ゲームサーバ6は、ゲーム制御部104に含まれる構成のうち、上述したログイン制御部151のみを有するようにしても良い。この場合、ゲーム制御部104の他の機能は、図2若しくは図19において説明したように、PC4若しくはMFP7において提供される。このような例の動作について、図27に示す。図27は、ゲームサーバ6がログイン制御部151を有し、ログイン制御のみを実行する場合の動作を示すシーケンス図である。
図27の例の場合、S2701〜S2711までは図23のS2301〜S2311と同様に処理が実行される。MFP7は、S2710においてゲーム画面を表示した後、ゲーム処理を実行し、処理の情報をPC4に送信する(S2712)。MFP7は、S2712の処理においても、図23のS2312と同様に、図14において説明した処理を実行する。そして、MFP7は、図14のS1405及びS1409に対応する処理として、自身の表示部に表示されたゲーム画面を更新する(S2713)。また、MFP7は、図14のS1404及びS1406に対応する処理として、PC4に対して更新した表示情報を送信する。PC4は、更新された表示情報を受信すると、ゲーム画面を更新する(S2714)。
ゲームサーバ6が実行すべき処理は、ゲームシステムを利用するユーザ数に応じて増加する。そして、ゲームサーバ6が実行すべき処理の量をゲームサーバ6の処理能力が上回ると、システムの障害が発生する可能性がある。図27の例においては、ゲームサーバ6が実行すべき処理を低減することが可能であるため、好ましい。
また、図27の例においては、対戦要求側であるMFP7がゲーム処理を実行する例を説明した。しかしながら、同一のパラメータに基づいて自動的にゲーム処理を実行すれば、同一の結果が得られるはずである。従って、図28に示すように、ゲーム開始の通知(S2809)以降は、MFP7、PC4の夫々がゲーム処理を実行するようにしても良い。この場合、ゲーム画面を更新するための表示情報を送信する必要がないため、ネットワーク不可を低減することが可能となる。図28のシーケンス図は、図27の処理と略同一であるため、説明を省略する。
また、上記の説明においては、ゲームサーバ6がログイン制御部151の機能に基づいてユーザのログインを制御する例を説明した。これにより、ユーザは、図26において説明した画面を用いて対戦相手を選択することが可能となる。この他、予め対戦相手のIPアドレスが判明している場合、ゲームサーバ6を設けることなく上記と同様の効果を得ることも可能である。そのような例について、図29に示す。
図29は、PC4とMFP7との間で直接レーシングカー情報を交換してゲームを実行する例を示すシーケンス図である。図29の例の場合、PC4、MFP7は、夫々図2、図19において説明したように、ゲーム制御部104の機能を有する。MFP7は、ユーザの指示に応じてスキャンを実行し、上述した処理と同様の処理によりパラメータ情報を生成する(S2901)。そして、MFP7は、ユーザから入力されたIPアドレスを宛先として、対戦要求を送信する(S2902)。
S2902において送信される対戦要求には、MFP7において生成されたレーシングカー画像、パラメータ情報及びMFP7のIPアドレスの情報が含まれる。PC4は、対戦要求を受信すると、ユーザの操作に応じて、対戦要求の承諾通知を送信する(S2903)。S2903において送信される承諾通知には、PC4において生成されたレーシングカー画像、パラメータ情報が含まれる。
MFP7は、PC4から承諾通知を受信すると、PC4に対してゲーム開始通知を送信する(S2904)。S2904において送信される情報は、S2309と同様に、図13において説明したGUIを表示するための情報を含む。これにより、MFP7がゲーム画面を表示する(S2905)。また、PC4がゲーム画面を表示する(S2906)。
MFP7は、ゲーム画面を表示した後、ゲーム処理を実行し、処理の情報をPC4に送信する(S2907)。MFP7は、S2907の処理においても、図23のS2312と同様に、図14において説明した処理を実行する。そして、MFP7は、図14のS1405及びS1409に対応する処理として、自身の表示部に表示されたゲーム画面を更新する(S2908)。また、MFP7は、図14のS1405及びS1409に対応する処理として、PC4に対して更新した表示情報を送信する(S2907)。PC4は、更新された表示情報を受信すると、ゲーム画面を更新する(S2909)。
このような処理により、ゲームサーバ6を設けることなく、個人のユーザ間でのネットワークを介した対戦が可能となる。また、図30に示すように、図29のS2904以降は、MFP7、PC4の夫々で処理を実行するようにしても良い。この場合、図28の例と同様に、ゲーム画面を更新するための表示情報を送信する必要がないため、ネットワーク不可を低減することが可能となる。図30のシーケンス図は、図29の処理と略同一であるため、説明を省略する。
尚、上記の説明においては、MFP7が処理の起点となる場合を例として説明した。この他、PC4が処理の起点となる場合であっても、上記と同様に処理を実行することが可能であり、同様の効果を得ることが可能である。また、本実施形態に係るネットワークを介した対戦を実施の形態2の態様に適用することも可能である。