以下、本発明の実施の形態によるゲーム装置について、図面を参照して説明する。図1は、本発明の実施の形態によるゲーム装置のブロック図である。本実施の形態では、ゲーム装置として、例えば、タッチパネル式の表示部を備える携帯型のゲーム装置を採用する。但し、これは一例であり、スマートホンやボタン式の携帯電話等の通信装置を採用してもよい。
また、本実施の形態では、ゲームとしてゲーム空間内に設けられた打撃ゾーン(目標面の一例)において投手キャラクタが投げるボールオブジェクト(移動体の一例)の到達点をユーザに指定させる。そして、指定された到達点(指定到達点の一例)に向けボールオブジェクトを移動表示させ、ボールオブジェクトを打者キャラクタに打撃させる野球ゲームを採用する。
図1に示すゲーム装置は、読取部101、CPU(Central Processing Unit)102、通信部103、RAM(Random Access Memory)104、ROM(Read-Only Memory)105、サウンド処理回路106、画像処理回路107、モニタ108、入力部110、及びスピーカ111を含む。図1に示す読取部101〜スピーカ111の各ブロックは、バスラインBSを介して相互に接続されている。
読取部101は、ゲーム制御プログラムが記録されたコンピュータ読み取り可能な記録媒体を読み取る読取装置により構成され、記録媒体に記録されたゲーム制御プログラムを読み出し、RAM104にロードする。記録媒体としては、DVD−ROM、UMD(Universal Media Disc)等が採用される。したがって、読取部101は、使用される記録媒体の種類に対応する読取装置が採用される。また、読取部101は、必要に応じてユーザの現在のゲームの進行状況を示す情報を記録媒体に書き込む。
CPU102は、ROM105に記憶されたゲーム制御プログラムからの命令を解釈し、各種のデータ処理や制御を行う。通信部103は、CPU102により生成された送信対象のデータを、例えばCDMA(Code Division Multiple Access)等により拡散処理した後、QAM(Quadrature Amplitude phase Modulation)、PSK(Phase Shift Keying)、QPSK(Quadrature Phase Shift Keying)等により変調して送信する処理や、受信したデータを復調した後、逆拡散処理し、得られたデータをCPU102に出力する処理を行う。
RAM104は、CPU102に対する作業領域である。ROM105は、ゲーム装置の基本的な制御(たとえば起動制御)に必要なプログラム等を格納する。
サウンド処理回路106は、CPU102からの発音指令に応じたアナログ音声信号を生成してスピーカ111に出力する。画像処理回路107は、CPU102からの描画指令に応じてモニタ108を制御して、モニタ108に所定の画像を表示する。
画像処理回路107は、タッチ入力検出回路109を含み、モニタ108に種々の画像を表示する。タッチ入力検出回路109は、例えばタッチペンやユーザの指等の指示体がモニタ108に直接的に接触されると、接触位置の座標データをCPU102に出力し、接触位置をCPU102に認識させる。
また、タッチ入力検出回路109は、モニタ108に表示された対象物の位置において、指示体が直接的に接触されると、対象物の座標データをCPU102に出力し、対象物がタッチされたことをCPU102に認識させる。
モニタ108は、例えば、タッチパネル式の液晶パネルにより構成されている。タッチパネルとしては、例えば静電容量方式のものや抵抗膜方式のものが採用される。また、タッチパネルとしては、例えば、TFT(Thin Film Transistor)やSTN(Super Twisted Nematic)等の液晶パネルが採用され、例えば4096色のカラー表示が可能である。入力部110は、例えば、十字キー、複数のボタンキー等を含み、ユーザからの操作指示を受け付ける。
なお、図1では、携帯型のゲーム装置を採用したが、据え置き型のゲーム装置を採用してもよい。この場合、モニタ108は、ゲーム装置とは別に設けられた例えばテレビモニタにより構成され、タッチ入力検出回路109は不要となる。
図2は、本発明の実施の形態によるゲーム装置の機能構成の一例を示すブロック図である。ゲーム装置は、操作部201、指定部202、タイミング決定部203、ゲーム管理部204、範囲設定部205、移動体制御部206、キャラクタ制御部207、及び表示部208を含む。
操作部201は、図1に示す入力部110により構成され、ユーザからの操作指示を受け付ける。本実施の形態では、操作指示として、ボールオブジェクト(移動体の一例)を投げる投手キャラクタ(第1キャラクタの一例)に投球動作を開始させる動作開始指示、ストライクゾーンにおけるボールオブジェクトの到達点(指定到達点)を指定する到達点指定指示、及び投手キャラクタによるボールオブジェクトの移動開始タイミングを指定する移動開始指示等を受け付ける。
指定部202は、操作部201により受け付けられた到達点指定指示に基づいて、ストライクゾーンにボールオブジェクトの到達点である指定到達点を指定する。図4は、投手キャラクタCR1がボールオブジェクトBLを投げる際に表示部208に表示されるゲーム画面の一例を示した図である。
指定部202は、まず、打撃ゾーン内に設けられたストライクゾーン(基準範囲の一例)のデフォルトの位置にカーソル401Kを表示する。そして、指定部202はストライクゾーン内において、カーソル401をユーザに移動させることで指定到達点401をユーザに指定させる。
ここで、指定部202は、例えば、投手キャラクタCR1が投球動作を開始してからボールオブジェクトBLをリリースするまでの期間において指定到達点401の入力を受け付ける。したがって、ユーザは、動作開始指示を入力した後、カーソル401Kを移動させて最終的な指定到達点401にカーソル401Kを位置決めし、移動開始指示を入力することでボールオブジェクトを投手キャラクタCR1に投げさせる。なお、ストライクゾーンの形状としては、例えば、四角形が採用され、指定到達点401のデフォルト位置としては、例えば、ストライクゾーンの中心の位置が採用される。また、カーソル401Kの形状としては、円を採用することができる。
また、範囲設定部205は、指定部202により指定された指定到達点401に対してぶれて打撃ゾーンに到達するボールオブジェクトのブレ範囲402を設定し、表示部208に表示させる。具体的には、範囲設定部205は、ゲーム因子に応じてブレ範囲402の大きさを算出し、算出したブレ範囲402を、指定到達点401を中心として表示部208に表示させる。ここで、範囲設定部205は、ブレ範囲402を半透明状に表示されている。また、ブレ範囲402は、指定到達点401を中心とする円の形状を有している。また、ブレ範囲402は、円周上の透明度がそれ以外の箇所の透明度よりも多少低く設定され、ブレ範囲402の境界が明確化されている。
ブレ範囲402とは、指定到達点401に対してぶれて到達するボールオブジェクトの実際の到達点(実到達点)の候補位置の範囲である。つまり、図4に示すブレ範囲402内の各位置が実到達点の候補位置となり、ブレ範囲402のいずれかの位置にボールオブジェクトBLが到達することになる。したがって、ブレ範囲402が大きくなるにつれて、実到達点のぶれ幅は大きくなる。
実際の野球では、投手は狙った位置にボールを投げることができないことが頻繁に発生する。例えば、制球力の低い投手が投げたボールは、目標位置から大きくぶれてストライクゾーンに到達する。また、ピンチに弱い投手であれば、ピンチでない場合に比べて制球力が低下する傾向にある。更に、捕手のキャッチングが巧みであれば、投手の制球力が向上することもある。更に、ストライクゾーンのコーナーや、内角や、低めに目がけてボールを投げる場合、投手の制球力は低下する傾向にある。範囲設定部205は、これらの要因をゲーム因子としてゲーム内に取り込み、これらの要因がゲーム内に反映されるようにブレ範囲402の大きさを設定する。これにより、ユーザはブレ範囲402の大きさを通じて投手キャラクタCR1の能力値及び心理状況やピンチの度合いを認識することができる。
ゲーム因子としては、投手キャラクタCR1の能力値、ゲーム状況、捕手キャラクタCR3の能力値、及びストライクゾーンにおける指定到達点401の位置が採用される。
まず、範囲設定部205は、ブレ範囲402の大きさをデフォルトの大きさに設定する。ここで、デフォルトの大きさは投手キャラクタCR1の能力値等によらず予め定められた一定の大きさを持つ。そして、範囲設定部205は、投手キャラクタCR1の能力値、ゲーム状況、捕手キャラクタCR3の能力値、及び指定到達点401の位置に基づいて、ブレ範囲402のデフォルトの大きさを補正する。
投手キャラクタCR1の能力値としては、例えば、制球力のパラメータが採用される。制球力のパラメータはゲーム管理部204によって管理され、値が大きくなるにつれて制球力が高いことを示す。したがって、範囲設定部205は、ゲーム管理部204から制球力のパラメータを読み出し、読み出した制球力のパラメータが小さくなるにつれて、ブレ範囲402が大きくなるようにブレ範囲402を設定すればよい。
ゲーム状況としては、投手キャラクタCR1の現在のピンチの度合いが採用される。ピンチの度合いは、出塁している走者キャラクタの数が増大するにつれて値が増大される。例えば、走者キャラクタが出塁している場合、走者キャラクタが出塁していない場合に比べてピンチの度合いは大きく設定される。また、満塁の場合、走者キャラクタが1塁のみに出塁している場合に比べてピンチの度合いは大きく設定される。ピンチの度合いはゲーム管理部204により管理されている。したがって、範囲設定部205は、ピンチの度合いをゲーム管理部204から読み出し、読み出したピンチの度合いが大きくなるにつれてブレ範囲402を大きく設定すればよい。
また、ゲーム状況としては、投手キャラクタCR1のスタミナのパラメータ(疲労度の一例)が採用される。スタミナのパラメータは、登板開始直後は最大値を持ち、投球回数が増大するにつれて次第に低下していく。スタミナのパラメータは、ゲーム管理部204により管理されている。したがって、範囲設定部205は、スタミナのパラメータをゲーム管理部204から読み出し、読み出したスタミナのパラメータが小さくなるにつれてブレ範囲402を大きく設定すればよい。
また、ゲーム状況としては、得点状況が採用される。現実の野球では、投手のチームが相手チームに僅差で勝っている又は負けている場合、投手の緊張感は、相手チームに大差で勝っている又は負けている場合に比べて増大する傾向にある。そして、緊張感の増大に伴って投手の制球力は低下することもある。
この内容をゲーム内に取り入れるため、範囲設定部205は、投手キャラクタCR1のチームの得点と相手チームの得点とをゲーム管理部204から読み出し、両チームの得点差が低下するにつれてブレ範囲402を大きく設定してもよい。
また、ゲーム状況としては、現在行われている試合のシーズンにおける重要度を採用してもよい。例えば、本野球ゲームが実際の日本のプロ野球を模擬するものである場合、実際のプロ野球と同様、まず、ペナントレースでリーグ内での優勝を争う。そして、リーグ内の成績が3位以内に入れば、クライマックスシリーズの出場権を獲得する。そして、クライマックスシリーズで1位になれば、日本シリーズへの出場権を獲得し、最終的に日本シリーズで別リーグの勝者と日本一を争う。本野球ゲームでもこのようにして1つのシーズンにおける優勝チームを決定する。
実際のプロ野球では、日本シリーズ、クライマックスシリーズ、ペナントレースの順に重要度は高い。また、日本シリーズ、クライマックスシリーズであっても優勝へのリーチがかかった試合では他の試合に比べて重要度は高い。更に、ペナントレースであってもシーズンの終盤の試合の方が前半の試合よりも重要度は高い。そして、重要度の高い試合ほど投手の緊張感は高まり、それにより制球力が低下する傾向にある。
そこで、本実施の形態では、このような重要度をゲーム管理部204に管理させている。したがって、範囲設定部205は、ゲーム管理部204から現在行われている試合の重要度を読み出し、読み出した重要度が高くなるにつれてブレ範囲402を大きく設定すればよい。
また、範囲設定部205は、捕手キャラクタCR3の能力値をゲーム管理部204から読み出し、読み出した能力値が低下するにつれてブレ範囲402を大きく設定してもよい。
また、実際の野球では投手側のチームが1点差で勝っているが、2塁、3塁に走者が出塁し、1打逆転の場面に遭遇した場合、投手には心理的な緊張感が加わることもある。これをゲームに取り入れるために、投手キャラクタに対して緊張度のパラメータを設け、範囲設定部205は、緊張度が高くなるにつれてブレ範囲402を大きく設定してもよい。
ここで、緊張度のパラメータは、ゲーム管理部204に管理されている。緊張度のパラメータは、例えば、僅差で走者キャラクタが出塁した場合に高く設定される。
また、実際の野球では、ノーヒットノーランや完全試合、あるいはその他の記録がかかっている状況等でも投手の緊張感は高まる。
これを実現するために、例えば7回のイニングから徐々に緊張度を高め、範囲設定部205は、ブレ範囲402を徐々に大きく設定してもよい。
また、実際の野球では、強打者ほど投手の緊張度が高まることもある。これを実現するために、範囲設定部205は、打者キャラクタCR2の能力値が高くなるにつれて、緊張度を高く設定し、ブレ範囲402を大きく設定してもよい。
一方、緊迫した場面の方が却って集中力を発揮でき、良い結果を出すことができる投手も存在する。そこで、投手キャラクタCR1の特性として「逆境に強い」が設定されている場合、範囲設定部205は、緊張度やピンチの度合いが高まるにつれて、ブレ範囲402を小さく設定してもよい。
また、範囲設定部205は、打者キャラクタCR1が相手チームの投手キャラクタである場合、打者キャラクタCR1が野手キャラクタである場合に比べてブレ範囲402を小さく設定してもよい。
あるいは、最終イニングで自チームが大量リードしている場合には、負ける可能性が低くリラックスして投球できることから、逆にブレ範囲402を小さくするようにしてもよい。
以上のようなゲーム状況の各例は、現実の野球で投手が感じる緊張感やリラックスの度合い等をゲーム上に疑似的に反映したものであるため、ユーザはブレ範囲402の大きさの変動をゲーム状況の影響であると認識した上で、そのブレ範囲402を考慮した操作を行うことができ、従来ゲームにない遊戯性に加え、面白みを感じることができる。
さらにまた、範囲設定部205は、指定部202により指定された指定到達点401の位置に応じてブレ範囲402の大きさを変動させてもよい。具体的には、範囲設定部205は、指定到達点401がストライクゾーンSZの端に向かうにつれて、ブレ範囲402を大きく設定する。
現実の野球では、投手の制球力はストライクゾーンの端に投げる方がストライクゾーンの中心に投げるよりも低下する傾向にある。また、ストライクゾーンの端に投げる場合であっても、ストライクゾーンの頂点に投げる方が制球力は低下する。本実施の形態では、このような投手の制球力をゲーム内に取り入れている。
図5は、指定到達点401の位置に応じてブレ範囲402の大きさが変更される様子を示した画面図である。図5の右欄は図4においてバッターボックス付近をクローズアップして示した図であり、図5の左欄は、右欄に示すブレ範囲402を更にクローズアップして示した図である。
なお、図5の例では、ブレ範囲大の図の方がブレ範囲小の図に比べてブレ範囲402がストライクゾーンの中心に位置しているように見えるが、これは、仮想カメラの視線がストライクゾーンの正面方向に対して斜めに設定されているからである。実際には、ブレ範囲小の図では、ブレ範囲402はストライクゾーンの中心に位置し、ブレ範囲大の図では、ブレ範囲402はストライクゾーンの右側に位置している。
図5の左欄に示すように、指定到達点401がストライクゾーンの中心O1(後記する図6を参照)に設定された場合、指定到達点401がストライクゾーンの端に位置する場合に比べて、ブレ範囲402が小さく設定されていることが分かる。なお、ミートカーソル2001は打者キャラクタCR2がボールオブジェクトBLの打撃位置を指定するために使用される。
ミートカーソル2001は、芯の位置の示すサークル2001Kを備えている。打撃位置がサークル2001Kに近いほど打撃されたボールオブジェクトBLのパワーは大きくなる。なお、図5のブレ範囲小の図の例では、ブレ範囲402、カーソル401K、及びサークル2001Kが同心円で表示されている。これは、サークル2001Kの中心が指定到達点401に位置しているため、たまたま、このように表示されているにすぎない。実際には、サークル2001Kは、ミートカーソル2001と連動して移動するため、中心がブレ範囲402からずれて表示されることも当然にあり得る。
図6は、指定到達点401の位置に応じたブレ範囲402の大きさを示す模式図である。図6に示すように、範囲設定部205は、指定到達点401がストライクゾーンSZの中心O1に近づくにつれてブレ範囲402を小さく設定する。一方、範囲設定部205は、指定到達点401がストライクゾーンSZの頂点C601に近づくにつれて、ブレ範囲402を大きく設定する。そのため、図6に示すように、指定到達点401がストライクゾーンSZの頂点C601に指定された場合、中心O1に指定された場合に比べてブレ範囲402は大きく表示されている。
また、現実の野球では、投手の制球力は、外角を投げるよりも内角を投げる方が低下する傾向にある。そこで、範囲設定部205は、指定到達点401の位置が打者キャラクタCR2に近づくにつれて、ブレ範囲402を大きく設定してもよい。
図7は、内角、中央、外角のそれぞれに指定到達点401が指定された場合のブレ範囲402の大きさを示す模式図である。図7において、左側の円は指定到達点401が内角に指定された場合のブレ範囲402を示し、中央の円は指定到達点401が中央に指定された場合のブレ範囲402を示し、右側の円は指定到達点401が外角に指定された場合のブレ範囲402を示している。なお、図7において指定到達点401の高さの位置は同じであるとする。
図7に示すように、指定到達点401が内角に指定された場合、中央及び外角に指定された場合に比べてブレ範囲402が大きく設定されている。また、指定到達点401が外角に指定された場合、中央に指定された場合に比べてブレ範囲402が大きく設定されている。このように、本野球ゲームでは、指定到達点401の高さが同じであれば、指定到達点401の位置が中央から内角に向かうにつれてブレ範囲402が大きく設定されていることが分かる。なお、指定到達点401の位置が中央から外角に向かうにつれてブレ範囲402は大きくなっているが、指定到達点401が内角に設定された場合に比べて、ブレ範囲402は小さく設定されている。
これにより、指定到達点401を内角に指定した場合、中央及び外角に指定した場合に比べてボールオブジェクトBLのぶれが大きくなることをユーザに認識させることができる。
また、現実の野球では、投手の制球力は、低めほど低下する傾向にある。そこで、範囲設定部205は、指定到達点401の位置が低めに指定されるにつれて、ブレ範囲402を大きく設定してもよい。
図8は、高め、中央、低めのそれぞれに指定到達点401が指定された場合のブレ範囲402の大きさを示す模式図である。図8において、上側の円は指定到達点401が高めに指定された場合のブレ範囲402を示し、中央の円は指定到達点401が低めと高めと中間に指定された場合のブレ範囲402を示し、下側の円は指定到達点401が低めに指定された場合のブレ範囲402を示している。なお、図8において、指定到達点401の横方向の位置は同じであるとする。
図8に示すように指定到達点401が低めに指定された場合、中央及び高めに指定された場合に比べてブレ範囲402が大きく設定されている。また、指定到達点401が高めに指定された場合、中央に指定された場合に比べてブレ範囲402が大きく設定されている。このように、本野球ゲームでは、指定到達点401の横方向の位置が同じであれば、指定到達点401の位置が中央から低めに向かうにつれてブレ範囲402が大きく設定されていることが分かる。なお、指定到達点401の位置が中央から高めに向かうにつれてブレ範囲402は大きくなっているが、指定到達点401が低めに設定された場合に比べて、ブレ範囲402は小さくなっている。
これにより、指定到達点401を低めに指定した場合、中央及び高めに指定した場合に比べてボールオブジェクトのぶれが大きくなることをユーザに認識させることができる。
また、実際の野球では、デッドボールになる確率は内角になるほど高くなる。そこで、範囲設定部205は、指定到達点401が打者キャラクタCR2に近づくにつれて、ブレ範囲402と打者キャラクタCR2とが重なる領域が増大するようにブレ範囲402の大きさを変形させてもよい。
図9は、ブレ範囲402を打者キャラクタCR2に重ねて表示する場合のブレ範囲402を示した模式図である。図9に示すように、ブレ範囲402が打者キャラクタCR2に近づくにつれて、ブレ範囲402の形状が円形から長円形に変形していく。例えば、範囲設定部205は、指定到達点401が中央に指定された場合、ブレ範囲402を円形に表示し、中央から打者キャラクタCR2に近づくにつれて、長軸が長くなるように長円の形状を変形させればよい。これにより、高さが同じであれば、指定到達点401が打者キャラクタCR2に近い位置に指定されるにつれて、打者キャラクタCR2とブレ範囲402とが重なる領域が増大する。その結果、指定到達点401の位置が打者キャラクタCR2に近づくにつれてデッドボールになる確率が高くなることをユーザに報知することができる。
以上のゲーム因子に応じたブレ範囲402の設定を実現するために範囲設定部205は例えば下記の式(1)を用いてブレ範囲402の大きさBSを設定すればよい。
BS=α_x・α_y・f1(SS)・BS0 (1)
BS0は、ブレ範囲402の大きさのデフォルト値である。α_x、α_y、f1(SS)はデフォルト値BS0の補正係数である。α_xは、ストライクゾーンSZにおける指定到達点401のx成分に応じた補正係数である。α_yは、指定到達点401のy成分に応じた補正係数である。但し、xは水平成分、y垂直成分を示す。f1は、入力値SSに応じた補正係数である。なお、補正係数f1は1未満の値もとり得るため、ブレ範囲402の大きさBSがデフォルト値BS0より小さくなることもあり得る。
入力値SSは、式(2)で表される。
SS=k1・(1/制球力のパラメータ)+k2・ピンチの度合い+k3・試合の重要度+k4・(1/得点差)+k5・スタミナのパラメータ+k6・(1/捕手キャラクタの能力値)+k7・緊張度 (2)
補正係数f1は、入力値SSが増大するにつれて、出力値を予め定められた特性で増大させる関数である。予め定められた特性としては、リニア特性、ログ特性、二次曲線等の種々の特性が採用される。
式(2)において、制球力のパラメータ、得点差、捕手キャラクタの能力値が逆数になっているのは、これらの値の増大に伴って、ブレ範囲402を小さく設定するためである。k1〜k7は、それぞれ、制球力のパラメータ、ピンチの度合い、試合の重要度、得点差、スタミナのパラメータ、及び捕手キャラクタの能力値の値域を揃えるための係数である。なお、入力値SSを構成する7つの項は全て採用する必要はなく、いずれか1つ又は複数の項を省いてもよい。
次に、補正係数α_x、α_yについて説明する。図15は、打者キャラクタCR2の存在を考慮しない場合の補正係数α_xとx成分との関係を示したグラフである。図15において、縦軸は補正係数α_xを示し、横軸はストライクゾーンSZのx成分を示す。
打者キャラクタCR2の存在を考慮せずにブレ範囲402を設定する場合、範囲設定部205は、図15に示す補正係数α_xを採用すればよい。図15のグラフでは、x=0においてα_x=1であり、ストライクゾーンSZの左端のx成分であるx=X1及びストライクゾーンSZの右端のx成分であるx=X2においてα_x=A1(>1)である。そして、図15に示すα_xはリニアに変化している。よって、補正係数α_xはストライクゾーンSZの中央において1の値をとり、中央から左端及び右端に向けてα_x=A1となるまでリニアに増大している。これにより、ブレ範囲402は、指定到達点401のx成分がストライクゾーンSZの左端及び右端に近づくにつれて均等に増大する。
一方、打者キャラクタCR2の存在を考慮する場合、範囲設定部205は、図16に示す補正係数α_xを使用すればよい。図16は、打者キャラクタCR2の存在を考慮した場合の補正係数α_xとx成分との関係を示したグラフである。図16において、縦軸は補正係数α_xを示し、横軸はストライクゾーンSZのx成分を示す。図16の例では打者キャラクタCR2が左打者の場合の補正係数α_xを示している。
図16に示すように、左端X1においてα_x=A2(>A1)であり、左端X1からx=0に向けて、α_xがα_x=A2からα_x=1までリニアに減少している。図16において、右端X2からx=0に向けてのα_xの変化は図15と同じである。したがって、図16に示す補正係数α_xを採用した場合、ブレ範囲402は、指定到達点401のx成分が左端及び右端に近づくにつれて増大するが、左端に近づく方が右端に近づく場合に比べてブレ範囲402は増大する。これにより、指定到達点401のx成分が打者キャラクタCR2に近づくにつれてブレ範囲402を大きく設定することができる。なお、打者キャラクタCR2が右打者である場合、図16に示すグラフにおいて左右の関係を逆にしたグラフを補正係数α_xとして採用すればよい。
図17は、指定到達点401のy成分の値に応じて上下対称に補正係数α_yを変化させる場合の補正係数α_yとy成分との関係を示したグラフであり、縦軸は補正係数α_yを示し、横軸はストライクゾーンSZのy成分を示している。
図17のグラフでは、y=0においてα_y=1であり、ストライクゾーンSZの上端Y1においてα_y=B1(>1)であり、ストライクゾーンSZの下端Y2においてα_y=B1である。そして、図17に示すα_yはリニアに変化している。よって、補正係数α_yはストライクゾーンSZの中央において1の値をとり、中央から上端及び下端に向けてα_y=B1となるまで、リニアに増大している。これにより、ブレ範囲402は、指定到達点401のy成分がストライクゾーンSZの上端Y1及び下端Y2に近づくにつれて均等に増大する。
一方、指定到達点401がストライクゾーンSZの低めに設定された場合にブレ範囲402を大きくする態様を採用する場合、範囲設定部205は、図18に示す補正係数α_yを使用すればよい。図18は、指定到達点401をストライクゾーンSZの低めに設定した場合、ブレ範囲402を大きく設定する態様を採用した場合における補正係数α_yとy成分との関係を示したグラフである。図18において、縦軸は補正係数α_yを示し、横軸はストライクゾーンSZのy成分を示す。
図18に示すように、上端Y1においてα_y=B1(>1)であり、上端Y1からx=0に向けてα_y=B2からα_y=1に減少するようにα_yがリニアに変化している。また、図18において、下端Y2においてα_y=B2(>B1)であり、x=0から下端Y2に向けてα_yは、1からB2までリニアに変化している。これにより、指定到達点401のy成分の位置が低めになるにつれてブレ範囲402は大きく設定される。
なお、範囲設定部205は、ブレ範囲402の大きさに上限値及び下限値を設けてもよい。この場合、範囲設定部205は、式(1)により算出したブレ範囲402の大きさBSが上限値以上になった場合、ブレ範囲402の大きさBSを上限値に設定すればよい。また、範囲設定部205は、式(1)により算出されたブレ範囲402の大きさBSが下限値以下になった場合、ブレ範囲402の大きさBSを下限値に設定すればよい。これにより、ブレ範囲402が不用意に大きくなったり小さくなったりすることを防止し、下限値から上限値の範囲内でブレ範囲402の大きさBSを調整することができる。
図2に戻り、タイミング決定部203は、操作部201により受け付けられた動作開始指示に基づいて、投手キャラクタCR1の動作開始タイミングを決定する。また、タイミング決定部203は、操作部201により受け付けられた移動開始指示に基づいて、ボールオブジェクトBLが移動を開始する移動開始タイミングを決定する。
そして、範囲設定部205は、動作開始タイミングから所定時間経過した時点を基準タイミングとして決定し、移動開始指示の入力タイミングが基準タイミングから離れるにつれてブレ範囲402を大きく設定する。
図13は、動作開始指示及び移動開始指示の入力タイミングを示すシーケンス図である。まず、時刻T1において、ユーザが操作部201を用いて動作開始指示を入力すると、タイミング決定部203は、動作開始指示の入力タイミングを投手キャラクタCR1の動作開始タイミングとして決定する。これにより、キャラクタ制御部207は投手キャラクタCR1に投球動作を開始させる。次に、範囲設定部205は、時刻T1から所定時間経過した時点(時刻T3)を基準タイミングとして決定する。ここで、基準タイミングは、例えば、動作開始指示に応じて投球動作を開始した投手キャラクタCR1の利き腕がボールオブジェクトBLのリリースポイントに到達するタイミングが採用される。
次に、時刻T2において、操作部201が移動開始指示を受け付けると、タイミング決定部203は、時刻T2から所定時間経過した時点(時刻T4)を移動開始タイミングとして決定する。
そして、範囲設定部205は、移動開始指示の入力タイミング(時刻T2)と基準タイミング(時刻T3)との差分ΔTが増大するにつれて、ブレ範囲402を大きく設定する。この場合、範囲設定部205は、式(2)を変形した式(3)を用いてブレ範囲402を設定すればよい。
SS=k1・(1/制球力のパラメータ)+k2・ピンチの度合い+k3・試合の重要度+k4・(1/得点差)+k5・スタミナのパラメータ+k6・(1/捕手キャラクタの能力値)+k7・緊張度+k8・差分ΔT (3)
但し、k8は差分ΔTの値域を他の項の値域と揃えるための係数である。これにより、移動開始指示の入力タイミングが基準タイミングからずれるにつれてブレ範囲402が大きくされる。それに伴ってボールオブジェクトBLの指定到達点401からのずれ幅も大きくなるため、基準タイミングに近いタイミングで移動開始指示を入力することによるゲーム上のメリットをユーザに与えることができる。
なお、範囲設定部205は、時刻T3から所定時間前の時点(時刻T5)が到来すると、図4に示すマーカ403を表示させる。マーカ403は、カーソル401Kより半径が大きく、カーソル401Kと同心状の円である。範囲設定部205は、基準タイミングにおいてマーカ403の大きさがカーソル401Kの大きさになるようにマーカ403の半径を徐々に減少させていく。つまり、範囲設定部205は、マーカ403の大きさがカーソル401Kの大きさと一致した時点を基準タイミングとしてユーザに報知する。
基準タイミングに到達してもユーザにより移動開始指示が入力されなければ、範囲設定部205は、マーカ403の半径を更に減少させていく。そして、マーカ403の半径が0になっても移動開始指示が入力されなければ、範囲設定部205は、マーカ403の半径を徐々に増大させていく。
なお、図14に示すようにしてブレ範囲402を設定してもよい。図14は、動作開始指示及び移動開始指示の入力タイミングの他の一例を示すシーケンス図である。すなわち、範囲設定部205は、動作開始タイミング(時刻T1)から所定の第1期間TAが経過する以前に移動開始指示が入力された場合、第1期間TAの経過後に移動開始指示が入力される場合に比べてブレ範囲402を小さく設定する。
更に、範囲設定部205は、第1期間TAよりも大きな所定の第2期間TBの経過後から移動開始タイミングが経過するまでに移動開始指示が入力された場合、第2期間TBが経過する以前に移動開始指示が入力された場合に比べてブレ範囲402を大きく設定する。
具体的には、範囲設定部205は、式(2)を変形した式(4)を用いてブレ範囲402を補正すればよい。
SS=k1・(1/制球力のパラメータ)+k2・ピンチの度合い+k3・試合の重要度+k4・(1/得点差)+k5・スタミナのパラメータ+k6・(1/捕手キャラクタの能力値)+k7・緊張度+k8・タイミング修正値 (4)
タイミング修正値は、例えば、第1期間TA内に移動開始指示が入力された場合、1未満の所定の値が設定され、第1期間TAが経過してから第2期間TBが終了するまでに移動開始指示が入力された場合、1が設定され、第2期間TBの終了後に移動開始指示が入力された場合、1より大きな所定の値が設定される。
これにより、ユーザは、投手キャラクタCR1が移動を開始してから移動開始指示を早期に入力した場合、ブレ範囲402を小さくすることができる。よって、移動開始指示を早期に入力することによるゲーム上のメリットをユーザに与えることができる。
なお、図14において、範囲設定部205は、移動開始指示の入力タイミングが移動開始タイミングに近づくにつれて、連続的にブレ範囲402を大きく設定してもよい。
図2に戻り、移動体制御部206は、範囲設定部205により設定されたブレ範囲402に基づいて、ボールオブジェクトBLの実際の到達点である実到達点を打撃ゾーンに設定し、実到達点に向けてボールオブジェクトBLを表示部208に移動表示させる。
ここで、移動体制御部206は、ブレ範囲402の中からランダムに実到達点を決定すればよい。具体的には、移動体制御部206は、図13或いは図14に示す移動開始指示の入力タイミングにおいて範囲設定部205により設定されたブレ範囲402を最終的なブレ範囲402として確定し、この最終的なブレ範囲402の中からランダムに実到達点を設定する。
図20は、本野球ゲームが実行される3次元空間の模式図である。本実施の形態ではゲーム空間として、x軸、y軸、z軸の相互に直交する3軸によって規定される仮想3次元空間が採用されている。
なお、図20に示すz軸は仮想3次元空間内におけるピッチャーマウンドの中心O2とホームベースHBの中心O3とを結ぶ直線L3と平行な方向に設定され、y軸は垂直方向に設定され、x軸は水平方向に設定されている。また、仮想3次元空間の原点は、打撃ゾーンSFの中心に設定されている。
打撃ゾーンSFは、例えば、ホームベースHBの中心O3を通り、且つx−y平面と平行な平面である。ストライクゾーンSZは打撃ゾーンSF内に設定された四角形の領域である。ストライクゾーンSZの中心は打撃ゾーンSFの中心に位置する。指定到達点401及びブレ範囲402はストライクゾーンSZ内に位置する。ユーザにより操作部201が操作されると、ストライクゾーンSZにおいてカーソル401Kが移動し、指定到達点401が位置決めされる。なお、ミートカーソル2001もストライクゾーンSZ内を移動する。
投手キャラクタCR1はピッチャーマウンドの中心O2に配置され、打者キャラクタCR2はホームベースのx方向の左側又は右側に配置されたバッターボックスBXに配置される。そして、投手キャラクタCR1は、動作開始指示が入力されると投球動作を開始し、ボールオブジェクトBLをホームベースHBに向けて投げる。
移動開始指示が入力されると指定部202は操作部201により受け付けられた到達点指定指示にしたがって、カーソル401Kを移動させる。そして、操作部201により移動開始指示が受け付けられると、移動体制御部206は、そのときのブレ範囲402の中からランダムに実到達点2002を決定する。そして、移動体制御部206は、ボールオブジェクトBLが実到達点2002を通過するように移動開始位置PSから移動終了位置PEまでボールオブジェクトBLを移動させる。なお、移動開始位置PSは中心O2の上側に設けられ、移動終了位置PEはホームベースHBの後方に設けられている。
図2に戻り、ゲーム管理部204は、投手キャラクタCR1、打者キャラクタCR2、捕手キャラクタCR3、その他、ゲームに登場する各キャラクタの能力値を管理する。また、ゲーム管理部204は、両対戦チームのスコア、イニング、及びアウトカウント等の現在のゲーム状況を管理する。更に、ゲーム管理部204は、現在行われている試合の重要度を管理する。更に、ゲーム管理部204は、ゲームに登場するキャラクタの画像データや野球場の画像データ等を記憶する。
キャラクタ制御部207は、ボールオブジェクトBLが実到達点2002に到達するまでにボールオブジェクトBLを打撃する投手キャラクタCR1(第2キャラクタの一例)をストライクゾーンに隣接して208表示部に表示させる。
また、キャラクタ制御部207は、ゲームに登場するキャラクタをゲーム空間内で動作させ表示部208に表示させる。具体的には、キャラクタ制御部207は、タイミング決定部203により決定された動作開始タイミングにおいて投手キャラクタCR1の投球動作を開始させ、投手キャラクタCR1に投球動作を行わせる。また、キャラクタ制御部207は、打者キャラクタCR2に打撃動作を行わせる。表示部208は図1に示すモニタ108により構成されている。
なお、図2において、指定部202、タイミング決定部203、ゲーム管理部204、範囲設定部205、移動体制御部206、及びキャラクタ制御部207は、図1に示すCPUがゲーム制御プログラムを実行することで実現される。
図3は、本発明の実施の形態によるゲーム装置のフローチャートである。このフローチャートでは、投手キャラクタCR1がボールオブジェクトBLを投げる際の処理を示している。また、このフローチャートでは、投手キャラクタCR1はユーザにより操作され、打者キャラクタCR2はゲーム装置により制御される。
まず、操作部201がユーザから動作開始指示を受け付けると(S301でYES)、タイミング決定部203は、動作開始指示の入力タイミングを動作開始タイミングとして決定し、投手キャラクタCR1の投球動作を開始させるようにキャラクタ制御部207に指示する(S302)。これにより、図4に示すような投手キャラクタCR1の投球動作が表示部208に表示される。一方、操作部201が動作開始指示を受け付けない場合(S301でNO)、処理がS301に戻される。
次に、タイミング決定部203は、動作開始タイミングから所定時間経過した時点を基準タイミングとして決定する(S303)。次に、操作部201がユーザからの到達点指定指示を受け付けると(S304でYES)、指定部202は到達点指定指示によって示されるストライクゾーンSZ内の位置を指定到達点401として指定する(S305)。
次に、範囲設定部205は、指定到達点401を中心としてブレ範囲402を設定する(S305)。次に、範囲設定部205は、指定到達点401に重畳させてブレ範囲402を表示部208に表示する(S307)。これにより、図4に示すように指定到達点401を中心としてブレ範囲402が表示される。一方、操作部201が到達点指定指示を受け付けない場合(S304でNO)、処理がS308に進められる。
次に、操作部201がユーザから移動開始指示を受け付けない場合(S308でNO)、処理がS304に戻される。一方、操作部201がユーザから移動開始指示を受け付けると(S308でYES)、処理がS309に進められる。
つまり、移動開始指示が入力されるまで、S304〜S307の処理が繰り返され、ユーザは表示部208に表示された指定到達点401を、操作部201を操作して移動させることができる。そして、指定到達点401が移動される都度、範囲設定部205によりブレ範囲402が設定され、指定到達点401の位置に応じた大きさを持つブレ範囲402が表示部208に表示される。
これにより、ユーザは、指定到達点401の位置に応じたブレ範囲402の大きさを投球開始前に認識することができ、最終的に決定する指定到達点401の判断材料をユーザに提供することができる。その結果、ユーザはブレ範囲402を考慮した上で、指定到達点401の位置を決定することとなり、指定到達点を指定する際のユーザの興味を向上させることができ、ゲームに対するユーザの集中力を高め、従来にない遊戯性を実現することができる。
S309において、範囲設定部205は、基準タイミングと移動開始指示の入力タイミングとの差分ΔTを考慮に入れて現在設定されているブレ範囲402を補正し、補正後のブレ範囲402を最終的なブレ範囲402として確定する(S309)。
次に、移動体制御部206は、確定されたブレ範囲402の中からランダムに実到達点2002を決定する(S310)。次に、移動体制御部206は、実到達点2002を通過するようにボールオブジェクトBLの弾道を決定し、ボールオブジェクトBLの移動を開始させる(S311)。
次に、ゲーム管理部204は、ボールオブジェクトBLを打者キャラクタCR2に打撃させるか、空振りさせるか、或いは見送らせるかを判定する打撃判定を行う(S312)。次に、ゲーム管理部204は打撃判定の結果に応じて打撃処理を行う(S313)。例えば、ゲーム管理部204は、打者キャラクタCR2にボールオブジェクトBLを打撃させると判定した場合、打撃されたボールオブジェクトBLの弾道を決定し、決定した弾道に沿ってボールオブジェクトBLを移動させる。また、ゲーム管理部204は、打者キャラクタCR2にボールオブジェクトBLを空振りさせると判定した場合、打者キャラクタCR2が空振りの動作を行わせ、且つ、捕手キャラクタCR3にボールオブジェクトBLを捕球する動作を行わせるようにキャラクタ制御部207に指示する。また、ゲーム管理部204は、打者キャラクタCR2にボールオブジェクトBLを見送らせると判定した場合、打者キャラクタCR2に見送りの動作を行わせ、且つ、捕手キャラクタCR3にボールオブジェクトBLを捕球する動作を行わせるようにキャラクタ制御部207に指示する。
なお、範囲設定部205は、ブレ範囲402内に実到達点2002の確率分布を求め、求めた確率分布に応じた透明度でブレ範囲402を表示してもよい。図19は、実到達点2002の確率分布に応じて透明度が設定されたブレ範囲402の一例を示した模式図である。
ここで、範囲設定部205は、例えば、投手キャラクタCR1の特徴を示すパラメータをゲーム管理部204から読み出して確率分布を求めればよい。特徴を示すパラメータとしては、例えば、オーバースロー、スリークオーター、サイドスロー、及びアンダースロー等が挙げられる。
現実の野球では、サイドスロー、アンダースローの投手は、垂直方向よりも水平方向にボールがぶれる傾向にある。そこで、特徴を示すパラメータがサイドスロー或いはアンダースローを示す場合、範囲設定部205は、ブレ範囲402の中心から外周に向けて、長軸が水平方向に向かう楕円状に確率が徐々に低下するようにブレ範囲402の確率分布を求める。そして、範囲設定部205は、図19に示すように、確率が高い位置ほどブレ範囲402の透明度が低くなるようにブレ範囲402を半透明表示させればよい。この場合、範囲設定部205は、ブレ範囲402の画像データと背景の画像データとをαブレンディングにより重畳すればよい。これにより、実到達点2002となる確率が高い位置ほど、ブレ範囲402の濃度が濃く表示され、ユーザは一目で実到達点2002になる確率の高い位置を認識することができる。
一方、実際の野球ではオーバースローやスリークオーターの投手は、ボールが水平方向よりも垂直方向にぶれる傾向にある。そこで、特徴を示すパラメータがオーバースローの場合、範囲設定部205は、ブレ範囲402の中心から外周に向けて、長軸が垂直方向に向かう楕円状に確率が徐々に低下するようにブレ範囲402の確率分布を求める。そして、範囲設定部205はこの確率分布にしたがってブレ範囲402の各位置の透明度を設定し、ブレ範囲402を半透明表示すればよい。
そして、移動体制御部206は、範囲設定部205により算出された確率分布に従った抽選処理を行い、実到達点2002を決定すればよい。
なお、上記説明では、実到達点2002となる確率が高い位置ほどブレ範囲402の透明度を低く設定したが、これに限定されず、実到達点2002となる確率が高い位置ほどブレ範囲402の透明度を高く設定してもよい。
また、本実施の形態において、投手キャラクタCR1の能力値として、「尻上がりに調子が良くなる」の属性を含めてもよい。この場合、「尻上がりに調子が良くなる」の属性を持つ投手キャラクタCR1については、範囲設定部205は、投球回数が増大するにつれてブレ範囲402を小さく設定すればよい。
また、本実施の形態において、投手キャラクタCR1の能力値として「ピンチに強い」の属性を含めてもよい。この場合、「ピンチに強い」の属性を持つ投手キャラクタCR1については、範囲設定部205は、ピンチの度合いが増大するにつれてブレ範囲402を小さく設定してもよい。
また、上記説明では、ブレ範囲402は円形であるとして説明したが、これに限定されず、他の形状を採用してもよい。図10〜図12は、ブレ範囲402の形状の変形例を示した図である。
図10の例では、ブレ範囲402は、長軸が垂直方向に向かう楕円形状を有している。実際の野球ではオーバースローの投手は垂直方向にボールがぶれる傾向にある。そこで、投手キャラクタCR1が「オーバースロー」の属性を持つ場合、範囲設定部205は、図10に示す形状にブレ範囲402を設定すればよい。
図11の例では、ブレ範囲402は、長軸が斜め方向に向かう楕円形状を有している。実際の野球では、スリークオーターの投手、或いはアンダースローの投手は、斜め方向にボールがぶれる傾向にある。そこで、投手キャラクタCR1が「スリークオーター」又は「アンダースロー」の属性を持つ場合、範囲設定部205は、図11に示す形状にブレ範囲402を設定すればよい。
また、実際の野球ではサイドスローの投手は水平方向のボールがぶれる傾向にある。そこで、投手キャラクタCR1が「サイドスロー」の属性を持つ場合、範囲設定部205は、図12に示す形状にブレ範囲402を設定すればよい。
但し、図10〜12に示すブレ範囲402の形状は一例にすぎず、三角形、四角形、五角形、六角形等の多角形をブレ範囲402の形状として採用してもよい。
また、上記説明では、本野球ゲームは1台の装置により実現されたが本発明はこれに限定されない。例えば、本野球ゲームをサーバと携帯端末とがインターネットを介して接続された通信システムを用いて実現してもよい。
この場合、図2において、操作部201及び表示部208を携帯端末で構成し、残りのブロックをサーバ(ゲーム制御装置の一例)で構成すればよい。具体的には、操作部201は、ユーザにより入力された各種の指示を通信信号に変換し、ネットワークを介してサーバに送信すればよい。一方、サーバは、携帯端末から送信された通信信号から各種の指示を取り出し、取り出した指示にしたがってゲームを進行させる。そして、サーバは、処理結果を携帯端末に送信し、処理結果に応じたゲーム画像を携帯端末に表示させればよい。なお、ネットワークとしては、インターネットであってもよいし、家庭内のLANであってもよい。また、サーバ及び携帯端末はTCP/IP等の通信プロトコルを用いてデータを送受すればよい。
また、本発明はサッカーゲームのPK戦に適用してもよい。この場合、サッカーゴールの前面を目標面とする。そして、指定部202は、サッカーゴールの前面のゴールエリア内において指定到達点401をユーザに指定させる。そして、範囲設定部205は、上述したゲーム因子に応じて、ブレ範囲402の大きさを変更すればよい。現実のサッカーでは、ゴールエリアの端を狙う方がゴールエリアの中心を狙う場合に比べて難易度が高く、ボールのぶれ幅も大きくなる。これをゲームに取り入れるためにゲーム因子として、ゴールエリアの位置を採用してもよい。この場合、範囲設定部205は、指定到達点401がゴールエリアの端に指定されるにつれてブレ範囲402を大きく設定すればよい。
また、実際のPK戦では、ゴールキーパーが能力の高い選手である場合、キッカーの心理的なプレッシャーが増大し、コントロールが乱れることがある。これをゲームに取り入れるためにゲーム因子として、ゴールキーパーの能力値を採用してもよい。この場合、範囲設定部205は、ゴールキーパーの能力値が高くなるにつれてブレ範囲402が大きくなるようにブレ範囲402を設定すればよい。
また、実際のPK戦では、キック数が増大するにつれて、キッカーの心理的なプレッシャーが増大し、コントロールが乱れることもある。これをゲームに取り入れるためにゲーム因子として、PK戦のキック数を採用してもよい。この場合、範囲設定部205は、キック数が増大するにつれて、ブレ範囲402を小さく設定すればよい。
また、本発明は、ゴルフゲームに適用することも可能である。実際のゴルフでは、ショットの際、目標地点の途中或いは近傍に池やバンカーがあると、ゴルファーのコントロールが乱れることもある。これをゲームに取り入れるために、範囲設定部205は、指定到達点402の近傍やショット位置から指定到達点402までの間に障害物が存在する場合、ブレ範囲402を大きく設定してもよい。更に、この場合、範囲設定部205は、障害物の個数や大きさが大きくなるにつれて、ブレ範囲402を大きく設定してもよい。
また、実際のゴルフでは、優勝がかかっていたり、僅差でライバルと勝利を争う場合にゴルファーの心理的なプレッシャーが増大し、コントロールが乱れることもある。これをゲームに取り入れるために、範囲設定部205は、ゴルファーキャラクタの順位が上位(例えば1位〜3位)である場合、最終ホールに近づくにつれてブレ範囲402を大きく設定してもよい。また、範囲設定部205は、ゴルファーキャラクタの順位が上位である場合、順位が1つ下のゴルファーキャラクタとのスコアの差が減少するにつれてブレ範囲402を大きく設定してもよい。この場合、範囲設定部205は、最終ホールに近づくにつれて、或いは終盤のホール(17番ホールや18番ホール)において、ブレ範囲402を大きく設定すればよい。
また、実際のゴルフでは、緊迫する場面で能力を発揮できるゴルファーも存在する。これをゲームに取り入れるためにゴルフファーキャラクタの属性として「プレッシャーに強い」を設ける。そして、範囲設定部205は、「プレッシャーに強い」の属性を持つゴルファーキャラクタについては、ゲーム状況が緊迫した場面になるにつれてブレ範囲402を小さく設定してもよい。ここで、緊迫しているゲーム状況としては、例えば、上記のゴルファーの心理的なプレッシャーが増大するゲーム状況が挙げられる。
また、範囲設定部205は、ゴルファーキャラクタの能力値としてコントロールのパラメータが含まれていれば、コントロールのパラメータが高いゴルファーキャラクタほどブレ範囲402を小さく設定してもよい。
また、ゴルフゲームにおいて、天候のパラメータが存在している場合、範囲設定部402は天候のパラメータにしたがって、ブレ範囲402を設定してもよい。例えば、天候のパラメータが悪天候(例えば、雪、雨、霧)を示す場合、範囲設定部205は、晴れや曇りの場合に比べてブレ範囲402を大きく設定してもよい。
また、本発明は、上述したゲーム以外にも目標に対して移動体を到達させるゲームであれば、射撃、ダーツ、アーチェリー、バスケットボール等にも適用することが可能である。