以下、本発明の好ましい第1の実施の形態として、プレイヤが自己の作成したオリジナルキャラクタを用いて他のキャラクタと戦う格闘ゲームを家庭用ゲーム装置(以下、「ゲーム装置」とする。)において実施する場合を例にして具体的に説明する。
まず、本実施形態のハード構成について説明する。
図1は、本発明に係るゲーム装置を示す構成図である。ゲーム装置1は、本体11、操作コントローラ12、モニタ13、ディスク14、及びメモリカード15によって構成されている。
本体11は、制御部111、描画処理部112、音声処理部113、ディスクドライブユニット114、メモリカード接続ユニット115、及びI/Oインターフェース部116によって構成されている。制御部111には、描画処理部112、音声処理部113、及びI/Oインターフェース部116が接続されている。また、I/Oインターフェース部116には、ディスクドライブユニット114、メモリカード接続ユニット115、操作コントローラ12、及びモニタ13が接続されている。
ゲーム装置1では、上記格闘ゲームのソフトウェアが記録されたディスク14がディスクドライブユニット114に装着され、このディスクドライブユニット114からディスク14内のゲームプログラム及びゲームデータが制御部111内のRAM111c(後述)に読み込まれる。読み込まれたゲームプログラムがCPU111a(後述)によって実行されることにより、プレイヤはゲーム内容を楽しむことができる。プレイヤは、操作コントローラ12の操作部材12a〜12c(後述)を操作することによりゲームを進行させることができる。
ディスク14内のゲームプログラムには、2人のプレイヤで対戦を行なう2名プレイモードとゲーム装置1内の制御部111(擬似的なプレイヤ)と対戦する1名プレイモードとが用意されている。2名プレイモードの場合は2台の操作コントローラ12が必要となる。
ディスク14内のゲームデータには、既定のキャラクタや背景などの画像データ、効果音などの音声データ、及び、ゲーム進行や描画の際に参照される各種テーブルなどが含まれる。各種テーブルには、既定のキャラクタの画像データを参照するためのキャラクタデータテーブル(図2参照。詳細は後述する。)が含まれる。
本実施形態においては、すべての既定のキャラクタが同じ大きさとなるように画像データが作成されている。図3は、既定のキャラクタの画像データと、画面表示される既定のキャラクタを説明するための図である。図3(a)は、実際には描画処理に用いられるポリゴンデータやテクスチャデータなどの数値データである画像データを、便宜上画像で表したものである。図3(b)は、図3(a)の画像データを有するキャラクタA及びキャラクタBを画面表示したものである。
2つの既定のキャラクタは大きさの異なるキャラクタであるが、画像データとしては同じ大きさとなるように作成されている(図3(a)参照)。各既定のキャラクタは、キャラクタデータテーブル(図2参照)に設定されている拡縮率に応じて、拡大あるいは縮小されて表示される(図3(b)参照)。拡縮率とは、その既定のキャラクタの相対的な大きさを示す値で、各既定のキャラクタ毎に予め設定されている。
また、本実施形態においては、既定のキャラクタの画像データは頭、胴、腕、脚の4つのパーツに分けられており、各パーツにはパーツIDが付されている(図3(a)参照)。既定のキャラクタを画面表示する際には、キャラクタデータテーブル(図2参照)で各パーツのパーツIDを参照し、当該パーツIDに対応する画像データが用いられる。既定のキャラクタの描画処理についての詳細は後述する。
制御部111は、本体11の全体動作を司るマイクロコンピュータを有している。マイクロコンピュータは、CPU111a、ROM111b、及びRAM111c等からなり、各部は、それぞれバスラインで接続されている。CPU111aは、ディスクドライブユニット114によってディスク14からRAM111cに読み込まれるゲームプログラムを実行することより、ゲーム進行を統括的に制御する。
より具体的には、操作コントローラ12からプレイヤが操作することによる操作信号が入力されると、CPU111aは、ゲームプログラムにしたがってその操作信号に対する所定のゲーム進行処理を行い、その処理結果をモニタ13に例えば三次元画像によって表示するとともに、モニタ13のスピーカ13a(後述)から効果音によって出力する。
ROM111bには、ディスクローディング機能等のゲーム装置1の基本的な機能やディスク14に記録されたゲームプログラム及びゲームデータを読み出す手順等を示す基本プログラムが記憶されている。CPU111aは、ディスクドライブユニット114にディスク14が装着されると、ROM111bの基本プログラムにしたがってディスクドライブユニット114を動作させ、ディスク14からゲームプログラム及びゲームデータをRAM111cに読み込み、ゲーム開始状態に設定する。
RAM111cは、ディスクドライブユニット114によってディスク14から読み込まれたゲームプログラムやゲームデータが格納されるエリアと、CPU111aがゲームプログラムを実行するためのワークエリアとを提供するものである。
上記ゲームプログラムは、複数のプログラムが組み合わされて構成されており、例えばモニタ13に表示されているキャラクタの動作を操作コントローラ12からのプレイヤの操作信号に基づいて制御するゲーム進行プログラムやモニタ13に表示すべき三次元画像を制御するグラフィック制御プログラム等によって構成されている。
CPU111aは、操作コントローラ12からのプレイヤの操作信号に基づき、必要に応じてディスク14からゲームプログラムや画像データ等をRAM111cに読み込み、これらのデータを処理したりゲームプログラムを実行したりすることにより、モニタ13に表示すべき三次元画像の内容を決定する。
また、CPU111aは、後述する方法によりオリジナルキャラクタを作成するための制御を行なう。すなわち、プレイヤに各パーツを選択させるための画像をモニタ13に表示させ、プレイヤが選択した各パーツに基づいて演算を行い、オリジナルキャラクタをモニタ13に表示させる。
描画処理部112は、描画処理に必要な各種の演算処理を行うものである。CPU111aは、モニタ13に表示すべき画像を決定し、その画像の描画に必要な画像データ(キャラクタ及び背景のポリゴンデータ及びテクスチャデータ)、キャラクタの拡縮率及び光源データ等をRAM111cから読み出して描画処理部112に供給する。また、CPU111aは、操作コントローラ12から入力される操作信号を描画処理部112に供給する。
描画処理部112は、CPU111aから供給される画像データ等及び操作信号に基づいて、描画に必要なデータ(キャラクタ及び背景の位置関係、モニタ13の画面上におけるキャラクタ及び背景を構成するポリゴンの座標、各ポリゴンに対応するテクスチャ、並びに各ポリゴンの反射特性等のデータ)を演算し、その演算結果に基づいて描画処理部112内のVRAM(図示せず)にゲーム画面の画像データを作成する。作成されたゲーム画面の画像データは、映像信号としてモニタ13に出力されて表示される。
音声処理部113は、効果音等の音声を発生させる処理に必要な各種の演算処理を行うものである。CPU111aは、モニタ13のスピーカ13aから出力すべき効果音若しくはBGMの音響内容を決定すると、音声処理部113に音声指令を出力する。音声処理部113は、CPU111aからの音声指令に基づき、RAM111cから効果音もしくはBGMの音声データを読み出し、所定の加工処理とD/A変換処理とを施した後、スピーカ13aに出力する。
ディスクドライブユニット114は、ディスク14に記録されたゲームプログラムやゲームデータを読み出すものである。
メモリカード接続ユニット115は、CPU111aによるメモリカード15へのゲーム進行に関する情報の読み/書きを可能にするためのものである。CPU111aは、ゲーム進行中やゲーム終了時にプレイヤから「データのセーブ」が指令されると、メモリカード接続ユニット115を介してメモリカード15に、ゲーム進行に関する情報を記憶する。また、メモリカード15に記憶されたゲーム進行に関する情報は、ゲーム開始前にRAM111cに読み出される。
ゲーム進行に関する情報としては、具体的には、作成されたオリジナルキャラクタの情報、ゲームの対戦成績等の情報が挙げられる。なお、本実施形態では、オリジナルキャラクタとしての画像データは作成されず、オリジナルキャラクタの情報として、各パーツの画像データを参照するためのオリジナルキャラクタテーブル(図4参照。詳細は後述する。)が作成される。オリジナルキャラクタの作成についての詳細は後述する。
I/Oインターフェース部116は、ディスクドライブユニット114やメモリカード接続ユニット115によって読み出されたゲームプログラムやゲームデータ、及び操作コントローラ12からの操作信号等を制御部111に伝送したり、制御部111からの映像信号やオーディオ信号等をモニタ13に伝送したりするものである。
操作コントローラ12は、キャラクタを動作させたり、ゲームに関する各種の設定を行ったりするためにプレイヤによって操作されるものであり、複数のボタン12aと左レバー12bと右レバー12cとを有する。プレイヤによって操作コントローラ12が操作されると、その操作信号が制御部111に伝送され、モニタ13に表示されたキャラクタが所定の動作を行う。所定の動作としては、例えば、走る、しゃがむ、ジャンプする等の移動動作や殴る、蹴る等の攻撃動作がある。移動動作は、主に左レバー12bによって操作され、攻撃動作は主に複数のボタン12aおよび右レバー12cによって操作される。
モニタ13は、本体11から送られてきた映像信号に応じてゲーム進行状態を示すゲーム画面を映し出したり、本体11から送られてきたオーディオ信号に応じてスピーカ13aから効果音等の音声を出力させたりするための装置である。モニタ13は、映像信号やオーディオ信号を入力するための外部入力端子を備えた、例えばテレビジョン受像機によって構成されている。
ディスク14は、例えばDVD−ROM又はCD−ROM等によって構成されている。ディスク14には、ゲームプログラムやそのゲームプログラムの実行に必要な種々のデータや画像データが記録されている。メモリカード15は、例えばフラッシュメモリ等のデータの書き換えが可能な不揮発性の記録媒体によって構成されている。RAM111cのワークエリアの記録は、ゲーム装置本体11の電源を切ると消滅してしまう。メモリカード15は、RAM111cのワークエリアの記録のうち消滅させずに残しておくべきゲーム進行に関する情報を記録するものである。
次に、本実施形態における、既定のキャラクタの描画処理について説明する。
前述したように、既定のキャラクタの画像データは、既定のキャラクタをモニタ13に表示するために描画処理部112で演算に用いられるポリゴンデータやテクスチャデータであり、ディスク14からRAM111cに読み込まれるゲームデータに含まれている。また、ゲームデータには、これらの画像データを参照するためのキャラクタデータテーブルも含まれる。
図2は、ディスク14からRAM111cに読み込まれたキャラクタデータテーブルの一例である。キャラクタデータテーブルは、既定のキャラクタごとに設定されているデータを格納しているテーブルである。キャラクタデータテーブルには、各既定のキャラクタの各パーツに対応するデータとして、パーツID、能力値、拡縮率、必殺技、アクセサリが記録されている。
パーツIDは、パーツを特定するための番号であり、各既定のキャラクタのパーツ毎に異なる番号が設定されている。例えば、図2において、既定のキャラクタ「リュウ」の頭パーツには‘ID01’、胴パーツには‘ID02’、腕パーツには‘ID03’、脚パーツには‘ID04’が、それぞれ設定されている。
能力値は、ゲームにおける、その既定のキャラクタの特性として設定されているもので、胴パーツには防御力の、腕パーツには攻撃力の、脚パーツには素早さの各能力値が設定されている。各能力値が高いほど、その既定のキャラクタのその能力は高いものとして、格闘ゲームに反映される。例えば、図2において、既定のキャラクタ「リュウ」の胴パーツには‘20’の防御力、腕パーツには‘20’の攻撃力、脚パーツには‘20’の素早さがそれぞれ設定されている。
拡縮率は、その既定のキャラクタの相対的な大きさを示す値であり、モニタ13に表示されるための画像を作成する際に用いられる。基準となる既定のキャラクタの拡縮率は‘100%’とされており、この基準となる既定のキャラクタより大きい既定のキャラクタの拡縮率には100%以上の値が、小さい既定のキャラクタの拡縮率には100%より小さい値がその大きさに応じて設定されている。例えば、図2において、基準となる既定のキャラクタ「リュウ」より小柄な既定のキャラクタ「春麗」の拡縮率として、‘90%’が設定されている。これにより、モニタ13に表示されるときには、「春麗」は、「リュウ」より小さく表示される。なお、拡縮率は、既定のキャラクタ毎に設定されているので、同じキャラクタのパーツであれば同じ値が設定されている。
必殺技は、既定のキャラクタ毎に設定されている、特殊な攻撃方法である。キャラクタデータテーブルには必殺技を特定する必殺技IDが設定されているが、図2においては、その必殺技名で記載している。腕から繰り出されるパンチ等の必殺技は腕パーツに設定されており、脚から繰り出されるキック等の必殺技は脚パーツに設定されている。例えば、図2において、既定のキャラクタ「リュウ」の腕パーツには「波動拳」と「昇竜拳」という必殺技が、脚パーツには「竜巻旋風脚」という必殺技が設定されている。各必殺技は、ゲームにおいて、操作コントローラ12で所定の操作をすることにより繰り出すことができ、必殺技を受けた対戦相手のキャラクタは大きなダメージを受けることになる。必殺技に対応するキャラクタの動きや相手に与えるダメージ等のデータは、必殺技IDに対応させて、RAM111cに記憶されている。
アクセサリは、キャラクタの各パーツを装飾するものであり、選択可能のものが設定されている。キャラクタデータテーブルにはアクセサリを特定するアクセサリIDが設定されているが、図2においては、そのアクセサリ名で記載している。例えば、図2において、既定のキャラクタ「リュウ」の頭パーツには「ヒゲ」と「ちょんまげ」が、胴パーツには「柔道着」が、腕パーツと脚パーツには「剛毛」が設定されている。プレイヤは、自分が作成したオリジナルキャラクタの各パーツに設定されているアクセサリから好きなものを選択して、オリジナルキャラクタを装飾することができる。アクセサリの画像データは、アクセサリIDに対応付けて、RAM111cに記憶されている。
既定のキャラクタをモニタ13に描画する際には、キャラクタデータテーブルで参照された画像データと入力される操作信号とを用いて描画処理部112で各種の演算を行って表示のための画像データが作成される。例えば、図2のキャラクタデータテーブルの既定のキャラクタ「春麗」が描画される場合、以下のような処理が行われる。
まず、キャラクタデータテーブルから「春麗」の拡縮率‘90%’が読み出される(図2参照)。各キャラクタは4つのパーツに分けられており、更に各パーツは描画のためにいくつかの部分に分けられている。各部分同士を結合する点は基準点として設定されている。例えば、腕パーツは左右それぞれ、肩から肘、肘から手首、手首から指先の部分に分けられており、肩、肘、手首、指先が基準点として設定されている。各パーツに設定されている基準点は、連結されてキャラクタの全体像を形成する。これら基準点同士の間隔にはそれぞれ既定値が設定されている。この既定値にキャラクタ毎に設定されている拡縮率を乗算することで、基準点同士の間隔は拡大あるいは縮小される。「春麗」の場合、拡縮率が‘90%’なので、基準点同士の間隔は縮小されることになる。
次に、キャラクタデータテーブルから「春麗」の各パーツのパーツIDが読み出される。読み出されたパーツIDにより各パーツの画像データが読み出される。読み出された各パーツの画像データは、拡縮率によりパーツの画像が拡大あるいは縮小されて描画されるように、データ変換される。「春麗」の場合、拡縮率が‘90%’なので、描画される画像が縮小されるように画像データが変換される。
次に、変換された各部分の画像データを用いて、基準点を基に当該部分の画像を描画する。
図5は、表示画面上に「春麗」を描画している途中の画像で左側の腕パーツUのみが描画された状態である。基準点および基準点同士を結ぶ線は、実際には表示されない。各基準点の間隔は、「春麗」の拡縮率‘90%’に応じて縮小された間隔となるようにその位置が決定されている。
「春麗」の左側の腕パーツUは、その間隔が縮小された肩の基準点U1と肘の基準点U2を基に縮小された肩から肘の部分U12が描画され、同様に肘の基準点U2と手首の基準点U3を基に肘から手首の部分U23が描画され、手首の基準点U3と指先の基準点U4を基に手の部分U34が描画されている。
基準点や各パーツの画像データであるポリゴンデータ及びテクスチャデータは、3次元のゲーム空間上に設定されている3次元の座標で記録されている。入力される操作情報やプログラムによる制御に基づいて、キャラクタはゲーム空間上で動作する。キャラクタの姿勢は、複数の基準点の3次元座標により決定される。これらの基準点を基に各パーツの画像が描画されることでキャラクタが描画される。3次元のゲーム空間上におけるキャラクタをモニタ13に画像として描画するために、実際には3次元座標で表される各データに透視投影処理や陰面処理を行って描画しているが、これらの処理についての説明は省略する。
次に、本発明の特徴であるオリジナルキャラクタの作成について説明する。
本実施形態では、プレイヤは、既定のキャラクタを構成する各パーツの中から希望するパーツを選択し、それらを組み合わせてオリジナルキャラクタを作成する。前述したように、各既定のキャラクタは、頭、胴、腕、脚の4つのパーツを組み合わせて構成されており、キャラクタごとの拡縮率が各パーツに設定されている(図2参照)。プレイヤが作成したオリジナルキャラクタの各パーツをその設定されている拡縮率に応じてそれぞれ拡大あるいは縮小して表示すると、不均整なキャラクタが表示されてしまう(図10参照)。
本実施形態では、選択されたパーツを組み合わせてオリジナルキャラクタを作成する際、各パーツに設定されている拡縮率から拡縮率の平均値を算出してオリジナルキャラクタの拡縮率とし、各パーツをオリジナルキャラクタの拡縮率を用いて拡大または縮小している。
図6は、拡縮率が‘150%’である既定のキャラクタAの頭部及び胴体と、拡縮率が‘80%’である既定のキャラクタBの両腕及び両脚とを組み合わせて作成されたオリジナルキャラクタC’を説明するための図である。図6において、下段は各キャラクタの画像データを便宜上画像で表したものである。各画像データは、そのキャラクタがすべて同じ大きさとなるように設定されている(図6下段において、キャラクタA、キャラクタB、オリジナルキャラクタC’とも同じ大きさとなっている)。オリジナルキャラクタC’の画像データは、キャラクタAの頭部及び胴体とキャラクタBの両腕及び両脚の画像データを組み合わせたものである。オリジナルキャラクタC’の拡縮率は、組み合わされた各パーツに設定されている拡縮率から算出されており、‘115%{=(キャラクタAの頭パーツの拡縮率‘150%’+キャラクタAの胴パーツの拡縮率‘150%’+キャラクタBの腕パーツの拡縮率‘80%’+キャラクタBの脚パーツの拡縮率‘80%’)/4}’である。
図6において、上段は各キャラクタをモニタ13に表示した場合の画像を示している。キャラクタAは、拡縮率が150%なので、画像データの基準となる表示サイズの1.5倍に拡大されて表示されている。キャラクタBは、拡縮率が80%なので、画像データの基準となる表示サイズの0.8倍に縮小されて表示されている。オリジナルキャラクタC’は、拡縮率が115%なので、各パーツの拡縮率にかかわらず、画像データの基準となる表示サイズの1.15倍に拡大されて表示されている。図6に示すように、オリジナルキャラクタC’は、図10のオリジナルキャラクタCと比べて、均整の取れたキャラクタとなっている。なお、実際には、キャラクタのゲーム空間上の位置やゲーム空間を見る視点の位置により、モニタ13に表示されるキャラクタの大きさは変わってくる。
n個のパーツからなるオリジナルキャラクタの拡縮率SOは、各パーツの拡縮率をそれぞれS1,S2,…,Snとすると、下記(1)式となる。本実施形態ではオリジナルキャラクタは4つのパーツから構成されるので、n=4となる。
例えば、プレイヤが、図2に示すキャラクタデータテーブルから、「リュウ」の頭パーツ、「春麗」の脚パーツ、「ガイ」の腕パーツ、「ザンギエフ」の胴パーツを選択してオリジナルキャラクタ「キャラX」を作成する場合について説明する。
図2に示すように、「リュウ」の頭パーツには拡縮率‘100%’、「春麗」の脚パーツには拡縮率‘90%’、「ガイ」の腕パーツには拡縮率‘100%’、「ザンギエフ」の胴パーツには拡縮率‘120%’がそれぞれ設定されている。したがって、オリジナルキャラクタの拡縮率、すなわち各パーツの拡縮率の平均値は、式(1)より、SO=(100+90+100+120)/4=102.5となる。このオリジナルキャラクタの拡縮率‘102.5%’は、RAM111cのオリジナルキャラクタテーブルに記録される。
図4は、RAM111cに記録されるオリジナルキャラクタテーブルの一例である。オリジナルキャラクタテーブルは、オリジナルキャラクタの情報が格納されたテーブルである。オリジナルキャラクタテーブルには、作成されたオリジナルキャラクタ毎に、各パーツのパーツIDおよびアクセサリ、並びに拡縮率が記録されている。オリジナルキャラクタテーブルには、実際にはアクセサリを特定するアクセサリIDが設定されているが、図4においては、そのアクセサリ名で記載している。拡縮率は、当該オリジナルキャラクタが作成されたときに算出された拡縮率である。
各パーツのパーツIDは、当該オリジナルキャラクタが作成されたときに選択された各パーツのパーツIDであり、図2に示すキャラクタデータテーブルのパーツIDに対応する。したがって、オリジナルキャラクタの各パーツに対応する特性は、キャラクタデータテーブルから参照される。例えば、「キャラX」の腕パーツのパーツIDは‘ID23’なので(図4参照)、「キャラX」の攻撃力は‘20’であり、必殺技「崩山斗」を有する(図2参照)。
各パーツのアクセサリは、当該オリジナルキャラクタが作成されたときに選択されたアクセサリであり、当該オリジナルキャラクタの画像を作成する際に参照される。なお、アクセサリは、オリジナルキャラクタの作成時に選択されることに加えて、その後にも追加削除され、その都度オリジナルキャラクタテーブルが書き換えられる。
オリジナルキャラクタを描画するときは、オリジナルキャラクタテーブルに設定されている拡縮率および各パーツのパーツIDが参照される。オリジナルキャラクタの各パーツは、参照されたパーツIDに対応付けられた画像データと、参照されたオリジナルキャラクタの拡縮率とを用いて描画される。
例えば、「キャラX」を描画する場合について説明する。「キャラX」の頭パーツのパーツIDは‘ID01’、胴パーツのパーツIDは‘ID32’、腕パーツのパーツIDは‘ID23’、脚パーツのパーツIDは‘ID14’であり、拡縮率は‘102.5%’である(図4参照)。「キャラX」を描画する際には、各パーツの画像データをRAM111cからパーツIDで参照して読み出し、各パーツに設定されている拡縮率にかかわらず、「キャラX」に設定されている拡縮率‘102.5%’で拡大して描画する。このとき、頭パーツに設定されているアクセサリ「ヒゲ」、及び、胴パーツに設定されているアクセサリ「チャンピオンベルト」(図4参照)も各パーツに設定されている拡縮率にかかわらず、「キャラX」に設定されている拡縮率‘102.5%’で拡大されて描画される。
なお、オリジナルキャラクタの拡縮率はオリジナルキャラクタテーブルに記録せず、描画のたびに算出するようにしてもよい。この場合は、描画のたびに、オリジナルキャラクタテーブルに記録されているパーツIDに基づいてキャラクタデータテーブルから各パーツの拡縮率を参照し、これらの平均値を算出すればよい。
次に、本発明に係るゲーム装置1で実行されるオリジナルキャラクタ作成の処理手順について、図7に示すフローチャートを参照して説明する。
図7は、オリジナルキャラクタ作成処理を示すフローチャートである。この処理は、メインメニューにおいてキャラクタ作成モードが選択されたときに行なわれる。
プレイヤによりキャラクタ作成モードが選択されると、モニタ13の画面上にパーツの選択画面が表示される(S1)。パーツの選択画面上には、複数の既定のキャラクタの画像とパーツを指定するためのパーツ選択ボタンとが表示され、プレイヤに希望の既定のキャラクタのパーツを選択するよう促すメッセージが表示される。各既定のキャラクタは、キャラクタデータテーブル(図2参照)より参照された各パーツIDに基づいてRAM111cに記録されている画像データを参照し、パーツの選択画面上に表示される。
プレイヤは、操作コントローラ12を操作することにより希望の既定のキャラクタと該当するパーツ選択ボタンとを指定して、希望する既定のキャラクタのパーツを選択することができる。パーツを選択したとき、そのパーツに設定されているアクセサリ(図2参照)の画像が表示され、プレイヤは希望するアクセサリを選択することができる。選択されたパーツのパーツIDとアクセサリIDとは、オリジナルキャラクタテーブル(図4参照)に記録される。
次に、必要なパーツの選択が完了したか否かが判別される(S2)。本実施形態の場合は、頭、胴、腕、脚の各パーツが全て選択されたか否かが判別される。選択が完了していない場合(S2:NO)、ステップS1に戻り、選択が完了するまでステップS1とS2を繰り返す。すなわち、選択が完了するまで待機状態となる。選択が完了した場合(S2:YES)、ステップS3に進む。なお、選択が完了したかをプレイヤに確認して、完了していない場合はステップS1に戻るようにしてもよい。
ステップS3において、プレイヤが選択したパーツのパーツIDに対応する拡縮率が、キャラクタデータテーブル(図2参照)から読み出される(S3)。次に、読み出された各パーツの拡縮率から平均拡縮率が算出され(S4)、オリジナルキャラクタテーブル(図4参照)に記録される(S5)。次に、オリジナルキャラクタの名前を入力するようにプレイヤに促すメッセージが表示され、入力された名前がオリジナルキャラクタテーブル(図4参照)に記録される。
次に、作成されたオリジナルキャラクタが描画される(S6)。すなわち、オリジナルキャラクタテーブル(図4参照)に設定された各パーツのパーツIDおよびアクセサリIDに対応付けて記憶されている画像データと、オリジナルキャラクタテーブル(図4参照)に設定されたオリジナルキャラクタの拡縮率とを用いて描画される。
次に、変更があるか否かを選択させる選択ボタンとメッセージが表示され、プレイヤからの入力を待つ状態となる。いずれの選択ボタンが選択されたかが判別され(S7)、変更がある場合(S7:YES)はステップS1に戻る。変更がない場合(S7:NO)は、オリジナルキャラクタ作成処理が終了される。
上述したように本実施形態によると、プレイヤは、複数の既定のキャラクタの中からパーツを選択して組み合わせて、オリジナルキャラクタを作成することができる。これにより、プレイヤは、オリジナルキャラクタの作成にあたり、好みの既定のキャラクタから希望するパーツを選択することができ、バリエーション豊富なオリジナルのキャラクタを作成することができる。また、既定のキャラクタの能力値および必殺技は、各パーツに対応付けて設定されているので、作成されたオリジナルキャラクタを構成するパーツの能力値および必殺技を当該オリジナルキャラクタの能力値および必殺技とすることができる。これにより、プレイヤは、デザインだけでなくその能力値および必殺技等のキャラクタの特性も考慮して、オリジナルキャラクタを作成することができる。
また、本実施形態によると、オリジナルキャラクタの描画の際の拡縮率に各パーツの拡縮率から算出された平均値が用いられるので、各パーツの描画に元の既定のキャラクタの拡縮率が用いられる場合と比べて、オリジナルキャラクタを均整のとれたキャラクタとして描画することができる。
上記実施形態では、各既定のキャラクタが同じ大きさとなるように画像データが作成されており各既定のキャラクタ毎に設定されている拡縮率に応じて拡大縮小して画面表示されていたが、各既定のキャラクタの画面表示される大きさに合わせて画像データが作成されていてもよい。この場合は、各既定のキャラクタのデータとして、拡縮率の代わりに、相対的な大きさを表すサイズを設定する。基準となる既定のキャラクタのサイズを‘100’とし、この基準となる既定のキャラクタより大きい既定のキャラクタのサイズには100以上の値を、小さい既定のキャラクタのサイズには100より小さい値をその大きさに応じて設定する。既定のキャラクタを描画する際には、上記実施形態で説明した方法で拡縮率を用いずに処理を行なう。
オリジナルキャラクタを作成するときは、各パーツに設定されているサイズの平均値を算出し、オリジナルキャラクタテーブルにオリジナルキャラクタのサイズとして記録する。描画する際は、上記実施形態で説明した方法とは異なり、各パーツに設定されているサイズでオリジナルキャラクタのサイズを除した値である拡大率あるいは縮小率で各パーツを拡大あるいは縮小して描画する。
例えば、「キャラX」を描画する場合について説明する。キャラクタデータテーブルおよびオリジナルキャラクタテーブルは、図2のキャラクタデータテーブルおよび図4のオリジナルキャラクタテーブルの拡縮率の欄をそれぞれサイズの欄とし、値はそのままとしたものとする。
「キャラX」の頭パーツのパーツIDは‘ID01’、胴パーツのパーツIDは‘ID32’、腕パーツのパーツIDは‘ID23’、脚パーツのパーツIDは‘ID14’である(図4参照)。パーツID‘ID01’のサイズは‘100’、パーツID‘ID32’のサイズは‘120’、パーツID‘ID23’のサイズは‘100’、パーツID‘ID14’のサイズは‘90’である(図2参照)。「キャラX」のサイズは‘102.5’なので(図4参照)、頭パーツの拡大率は102.5%(=102.5/100)、胴パーツの縮小率は85.4%(=102.5/120)、腕パーツの拡大率は102.5%(=102.5/100)、脚パーツの拡大率は113.9%(=102.5/90)と算出される。
「キャラX」を描画する際には、各パーツの画像データをRAM111cからパーツIDで参照して読み出し、各パーツの拡大率あるいは縮小率でそれぞれ拡大あるいは縮小して描画する。このとき、頭パーツに設定されているアクセサリ「ヒゲ」(図4参照)は頭パーツの拡大率で拡大されて描画され、胴パーツに設定されているアクセサリ「チャンピオンベルト」(図4参照)は胴パーツの縮小率で縮小されて描画される。
なお、オリジナルキャラクタのサイズはオリジナルキャラクタテーブルに記録せず、描画のたびに算出するようにしてもよい。この場合は、描画のたびに、オリジナルキャラクタテーブルに記録されているパーツIDに基づいてキャラクタデータテーブルから各パーツのサイズを参照し、これらの平均値を算出すればよい。また、オリジナルキャラクタのサイズから各パーツの拡大率あるいは縮小率をあらかじめ算出し、オリジナルキャラクタテーブルに記録するようにしてもよい。この場合は、描画のたびに各パーツの拡大率あるいは縮小率を算出する必要がなくなる。
なお、上記実施形態では、キャラクタデータテーブルにおいて、パーツ毎に拡縮率が記録されている場合(図2参照)について説明したが、キャラクタ毎に拡縮率が記録されていてもよい。
図8は、キャラクタ毎に拡縮率が記録されているキャラクタデータテーブルの一例である。拡縮率がパーツごとではなくキャラクタ毎に記録されている点以外は、図2のキャラクタデータテーブルと同様である。この場合、オリジナルキャラクタの拡縮率は、プレイヤが選択したパーツを有する既定のキャラクタの拡縮率を用いて算出される。
例えば、プレイヤが、図8に示すキャラクタデータテーブルから、「リュウ」の頭パーツ、「春麗」の脚パーツ、「ガイ」の腕パーツ、「ザンギエフ」の胴パーツを選択してオリジナルキャラクタ「キャラX」を作成する場合について説明する。
図8に示すように、頭パーツが選択された「リュウ」には拡縮率‘100%’、脚パーツが選択された「春麗」には拡縮率‘90%’、腕パーツが選択された「ガイ」には拡縮率‘100%’、胴パーツを選択された「ザンギエフ」には拡縮率‘120%’がそれぞれ設定されている。したがって、オリジナルキャラクタの拡縮率は、SO=(100+90+100+120)/4=102.5となる。このオリジナルキャラクタの拡縮率‘102.5%’は、RAM111cのオリジナルキャラクタテーブルに記録される。
上記実施形態では、家庭用ゲーム装置1において実施する場合を説明したがこれに限られない。本発明は、携帯型ゲーム装置、アーケードゲーム装置、および、ゲームソフトが搭載されているパーソナルコンピュータ等にも適用することができる。また、上記実施形態では、ゲーム装置1を単独で用いる場合について説明したがこれに限られない。本発明は、2台のゲーム装置1をケーブル、あるいは無線通信により接続して対戦する場合や、サーバにインターネット回線で接続されたゲーム装置1同士で対戦する場合にも適用することができる。
サーバにインターネット回線で接続されたゲーム装置1同士で対戦する、いわゆるオンラインゲームとして上述した格闘ゲームを実施する場合を第2の実施形態として以下に説明する。
図9は、本発明に係るゲーム装置1を含むゲームシステムを示す構成図である。このゲームシステムは、インターネット回線を介して複数のゲーム装置1がサーバに接続されたものであり、各ゲーム装置1を操作する複数のプレイヤが同一のゲーム空間を共有する、いわゆるオンラインゲームを構築するものである。図9において、ゲーム装置1は、ネットワークアダプタ16を追加した以外は上記第1の実施の形態のゲーム装置1と同一なので、同一の符号を付している。
このゲームシステムは、インターネット等の通信回線2(以下、「ネットワーク回線2」という。)と、このネットワーク回線2に接続された多数のゲーム装置1と、このネットワーク回線2に接続されたゲームサーバ3とで構成されている。
ゲーム装置1は、ネットワーク回線2を介してゲームサーバ3と通信可能な機能を備えており、上記第1の実施形態のゲーム装置1にネットワーク回線2に接続するためのネットワークアダプタ16を追加したものである。以下、上記第1の実施形態のゲーム装置1と共通する部分は説明を省略する。
RAM111cに読み込まれるゲームプログラムには、上述したゲーム進行プログラムやグラフィック制御プログラムの他に、プレイヤのオンラインゲームへの入場を制御するためのサーバ対応プログラムやゲームサーバ3との間でデータ(例えば、他のプレイヤのゲーム装置1の操作信号やオリジナルキャラクタのパーツID等)の送受信を制御するためのネットワーク制御プログラム等が含まれる。また、RAM111cには、他のプレイヤのゲーム装置1から送信されたオリジナルキャラクタの各パーツID等のゲームデータも格納される。
I/Oインターフェース部116は、ネットワーク回線2及びネットワークアダプタ16を介してゲームサーバ3との間でデータの伝送を行う。
CPU111aは、操作コントローラ12からのプレイヤの操作信号に加えて、ゲームサーバ3を介して入力される他のゲーム装置1からの操作信号に基づき、モニタ13に表示すべき三次元画像の内容を決定する。また、CPU111aは、これらの操作信号を描画処理部112に供給する。また、CPU111aは、操作コントローラ12からのプレイヤの操作信号やオリジナルキャラクタのパーツID等をゲームサーバ3に送信する。
ゲームサーバ3は、ネットワーク回線2に接続された1台又は複数台のサーバによって構成されており、ネットワーク回線2を介して各ゲーム装置1との通信を制御するとともに、ネットワーク回線2を介して各ゲーム装置1において行われるオンラインゲームの進行を制御するものである。
ゲームサーバ3は、CPU31、ROM32、RAM33、ハードディスク装置34、及びI/F(Interface)35によって構成されている。CPU31、ROM32、RAM33及びI/F35は、バスライン36で接続されている。また、ハードディスク装置34は、I/F35及びバスライン36を介してCPU31に接続されている。
CPU31は、ゲーム装置1のゲームの進行及び運営を統括制御する。CPU31は、ゲームが行われている各ゲーム装置1との間でゲームの進行に必要な各種のデータの送受信を行う。具体的には、CPU31は、各ゲーム装置1からの対戦要求信号を受信する。2台のゲーム装置1から対戦要求信号を受信すると、対戦成立信号を両ゲーム装置1に返信する。対戦成立信号を受信したゲーム装置1は、オリジナルキャラクタを使用する場合、そのオリジナルキャラクタの情報(オリジナルキャラクタの名前および拡縮率、各パーツのパーツID、アクセサリID等)をゲームサーバ3に送信する。CPU31は、受信したオリジナルキャラクタの情報を、対戦相手であるゲーム装置1に送信する。なお、オリジナルキャラクタを使用せずに、既定のキャラクタを使用する場合は、既定のキャラクタを特定するID情報がゲームサーバ3を介して、対戦相手であるゲーム装置1に送信される。
また、CPU31は、対戦を行なう2台のゲーム装置1のうち、一方のゲーム装置1から操作信号が入力されると、他方のゲーム装置1に送信する。これにより、各ゲーム装置1では、リアルタイムにゲームが進行される。
また、CPU31は、ゲーム装置1からログアウトや対戦中止要求が入力されると、その要求をしたゲーム装置1の対戦相手のゲーム装置1にゲーム進行を強制的に中断させる指令データを送信し、ログアウト処理や対戦中止処理を行わせる。
ROM32には、ゲームサーバ3の基本的な機能、ハードディスク装置34に記録されたデータを読み出す手順等を示す基本プログラム、及び各ゲーム装置1との通信を行うための通信制御プログラム等が記憶されている。
RAM33は、CPU31のワークエリアとして機能するものであり、RAM33には、ゲームの進行における必要なデータが随時記憶される。
ハードディスク装置34には、オンラインゲームの運用・管理を制御するための運用プログラム、各ゲーム装置1におけるオンラインゲームの進行を制御するための進行プログラムが記憶されている。
I/F35は、ハードディスク装置34から読み出されたプログラムやデータをネットワーク回線2を介して各ゲーム装置1に送信したり、各ゲーム装置1からの操作信号やゲームに関する制御情報を受信し、CPU31に伝送したりするものである。
ゲームサーバ3が提供するオンラインゲームでは、不特定多数のプレイヤが任意のタイミングでオンラインゲームに入場して格闘ゲームを実行し、任意のタイミングでオンラインゲームから退場するという行為が繰り返される。運用プログラムは、その入退場の変化を適正に制御したり、多数のゲーム装置1との双方向通信を適切に維持したりする機能を果たすプログラムである。進行プログラムは、対戦相手を決定する処理や、対戦中の2台のゲーム装置1間で相互に各ゲーム装置1の操作信号を中継する制御を行うプログラムである。
ネットワーク回線2は、ゲームサーバ3及び複数のゲーム装置1を接続し、各装置を双方向の通信が可能なように接続する通信回線であり、本実施形態では、例えばインターネット回線が適用される。
本実施形態においても、第1の実施形態と同様にオリジナルキャラクタが作成される。プレイヤがゲーム装置1で作成したオリジナルキャラクタを用いてゲームを行なう場合、ゲームサーバ3を介して、対戦相手となるゲーム装置1にオリジナルキャラクタの各パーツID等が送信される。また、ゲームサーバ3を介して、対戦相手となるゲーム装置1からオリジナルキャラクタの各パーツID等を受信した場合、これらの情報はオリジナルキャラクタテーブル(図4参照)に記録される。相手側のオリジナルキャラクタを描画する際にも、オリジナルキャラクタテーブルとキャラクタデータテーブル(図2参照)とが参照される。
本実施形態において、ゲームサーバ3を介して送受信される情報は、オリジナルキャラクタの各パーツID等だけである。したがって、オリジナルキャラクタの画像情報が送受信される場合と比べて、送受信される情報量が大幅に削減される。
なお、サーバを経由せずに2台のゲーム装置を直接接続する場合には、ゲームの開始前にオリジナルキャラクタの各パーツID等を交換するように構成すればよい。
なお、上述した実施形態においては、実施されるゲームを格闘ゲームとして説明したが、これに限られない。例えば、プレイヤが分身となるキャラクタを操作し、ゲーム画面上の他のキャラクタと互いに協力して敵キャラクタ(例えばモンスター)を倒すといった構成のチーム協力型アクションゲームにおいて、プレイヤの分身となるオリジナルキャラクタを作成する場合にも、本発明を適用することができる。また、ゲームに限られず、ウエブメールやブログの画面上に表示されるオリジナルキャラクタを作成する場合にも、本発明を適用することができる。