以下、本発明の一実施の形態に係るゲーム装置、ゲームシステム、ゲーム制御方法及びプログラムについて、図面を参照しながら説明する。
〔ゲーム装置の概要〕
本発明の一実施の形態に係るゲーム装置は、ゲームプログラムを実行可能な情報処理装置であれば様々なものを適用できる。例えば、ゲーム装置としては、据置型または携帯型のゲーム専用機、パーソナルコンピュータ(以下「PC」と呼称する)、タブレット型コンピュータ、スマートフォン、携帯電話端末、PHS(Personal Handy-phone System)端末、携帯情報端末(PDA:Personal Digital Assistant)、情報処理機能を備えた多機能型テレビジョン受像機(いわゆるスマートテレビ)等が適用できる。
本実施の形態のゲーム装置が制御するゲームは、移動体に対してキャラクタが作用を与える(例えば、打ち返す、捕える、打ち砕く)ゲームである。このゲームの一例としては、第1ユーザによって操作される第1キャラクタが、第2ユーザによって操作される第2キャラクタから送出される移動体に対して作用を与えるゲームがある。例えば、第1キャラクタの一例としての打者キャラクタが、第2キャラクタの一例としての投手キャラクタからリリースされた、移動体の一例としてのボールオブジェクト(以下、単に「ボール」と称する)に照準カーソルを合せて、作用の一例としての打撃を行う野球またはソフトボールゲームが挙げられる。
本実施の形態のゲーム装置100は、野球ゲームやソフトボールゲームに限らず、サッカー、テニス等、移動体に対して何らかの作用を与える様々なゲームにも適用できるが、以下には、野球ゲームへの適用例を説明する。
第2ユーザは、ゲーム装置のコントローラ等を操作して、投手キャラクタが投げるボールの移動パラメータ(投球コース、球種等)を指定することができる。ゲーム装置は、第2ユーザの操作に基づいて投球コースや球種等を決定し、ボールを打者キャラクタの方へ移動させる。
また、打者キャラクタを操作する第1ユーザは、投手キャラクタからボールがリリースされるまでに、投手キャラクタが投げるボールの移動パラメータ(投球コース、球種等)を予想することができる。ゲーム装置は、ボールの移動開始前または移動開始時に、第1ユーザによる投球コース等の予想入力の操作に基づいて、移動パラメータに対する予想情報を取得する。例えば、第1ユーザがアウトコースを予想する入力操作をすれば、ゲーム装置は予想情報としてアウトコースを取得する。
そして、ゲーム装置は、投手キャラクタからボールがリリースされた後の打者キャラクタの、バッティング動作またはボールを見送る動作を制御する。例えば、ゲーム装置は、第1ユーザによって打撃操作が行われた場合には、打者キャラクタのバッティング動作を制御し、打撃操作が行われなかった場合には、打者キャラクタのボール見送り動作を制御する。この場合、ゲーム装置は、第1ユーザが投球コース等を予想した予想情報と、実際の投球コース等との一致度に応じて、打者キャラクタの動作を異ならせる。
例えば、第1ユーザによる投球コースの予想が当たった場合(予想コースと、実際の投球コースとが一致した場合)には、打者キャラクタは体勢を崩すことなくスイングしたりボールを見送ったりする。一方、前記予想が外れた場合(予想コースと実際の投球コースとが一致しなかった場合)には、打者キャラクタはバランスの崩れた体勢でスイングしたり、ボールを見送ったりする。予想が外れた場合の一例としては、インコースの予想に対して、アウトコースにボールが来た場合は、それを打とうとして打者キャラクタは泳ぐような打撃姿勢になってバランスを崩す。ボールを見送る場合も、打者キャラクタはボールを目で追いかけながら上体が突っ込む姿勢になる。
これにより、第2ユーザは、投球後の打者キャラクタの動きを見て、投球に対する打者の事前予想の当否を推定することができ、よって次の投球を検討する材料とすることができる。すなわち、現実世界の野球のように、投球に対する打者の反応を見て、投手が次の投球を検討するといったリアル感のあるゲーム性を実現でき、投打の駆け引きがより一層楽しくなる。以下に、これを実現するゲーム装置の構成の一例を説明する。
〔ゲーム装置の構成〕
図1は、ゲーム装置100の構成を示すブロック図である。本実施の形態では、ゲーム装置100の一例として、家庭用のテレビジョン200に接続して使用する家庭用ビデオゲーム機について説明する。ゲーム装置100には、ゲームプログラムが記録されたコンピュータ読み出し可能な記録媒体300が装填され、当該記録媒体300よりゲームプログラムが適宜読み出されてゲームが実行される。
ゲーム装置100は、CPU(Central Processing Unit)1、バスライン2、グラフィックスデータ生成プロセッサ3、インターフェース回路(I/F)4、RAM(Random Access Memory)5、ROM(Read Only Memory)6、伸張回路7、パラレルポート8、シリアルポート9、描画プロセッサ10、音声プロセッサ11、デコーダ12、インターフェース回路(I/F)13、バッファ14〜16、記録媒体ドライブ17、メモリ18、及びコントローラ19を備えている。このゲーム装置100が接続されるテレビジョン200は、テレビジョンモニタ21、増幅回路22及びスピーカ23を備えている。
CPU1は、バスライン2及びグラフィックスデータ生成プロセッサ3に接続されている。バスライン2は、アドレスバス、データバス及びコントロールバス等を含んでいる。このバスライン2を介して、CPU1、インターフェース回路4、RAM5、ROM6、伸張回路7、パラレルポート8、シリアルポート9、描画プロセッサ10、音声プロセッサ11、デコーダ12、インターフェース回路13および通信制御部20が相互に接続されている。
描画プロセッサ10は、バッファ14及びテレビジョンモニタ21に接続されている。音声プロセッサ11は、バッファ15及びテレビジョン200の増幅回路22に接続されている。デコーダ12は、バッファ16及び記録媒体ドライブ17に接続されている。インターフェース回路13は、メモリ18及びコントローラ19に接続されている。
なお、ゲーム装置100がパーソナルコンピュータやワークステーションとして構成される場合、テレビジョンモニタ21等は、コンピュータ用のディスプレイに対応する。また、伸張回路7、描画プロセッサ10、及び音声プロセッサ11等は、それぞれ記録媒体300に記録されているゲーム制御プログラムのデータの一部又はコンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応する。また、インターフェース回路4、パラレルポート8、シリアルポート9及びインターフェース回路13は、コンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応する。また、バッファ14〜16は、それぞれRAM5又は拡張メモリの各記憶エリアに対応する。
前記グラフィックスデータ生成プロセッサ3は、CPU1のいわばコプロセッサとしての役割を果たすものであり、座標変換や光源計算、例えば固定小数点形式の行列やベクトルの演算を、並列処理によって行う。このグラフィックスデータ生成プロセッサ3が行う主な処理としては、CPU1から供給される画像データの2次元又は3次元空間内における各頂点の座標データ、移動量データ、及び回転量データ等に基づいて、所定の表示エリア上における処理対象画像のアドレスデータを求めてCPU1に返す処理、仮想的に設定された光源からの距離に応じて画像の輝度を計算する処理等がある。
インターフェース回路4は、周辺デバイス、例えばマウスやトラックボール等のポインティングデバイス等のインターフェース用に用いられる。RAM5は、メインメモリとして用いられる。ROM6にはゲーム装置100のオペレーティングシステムとなるプログラムデータ等が記憶されている。
伸張回路7は、動画に対するMPEG(Moving Picture Experts Group)規格や静止画に対するJPEG(Joint Photographic Experts Group)規格に準拠したイントラ符号化によって圧縮された圧縮画像に対し、伸張処理を施す。この伸張処理は、デコード処理(Variable Length Codeによってエンコードされたデータのデコード)、逆量子化処理、IDCT(Inverse Discrete Cosine Transform)処理、イントラ画像の復元処理等を含む。
描画プロセッサ10は、所定時間(例えば、1フレーム時間である1/60秒)ごとにCPU1が発行する描画命令に基づいて、バッファ14に対する描画処理を行う。バッファ14は、例えばRAMで構成され、表示エリア(フレームバッファ)と非表示エリアとに分けられる。表示エリアは、テレビジョンモニタ21の表示面上に表示する画像データの展開エリアで構成される。非表示エリアは、スケルトンを定義するデータ、ポリゴンを定義するモデルデータ、モデルに動きを行わせるアニメーションデータ、各アニメーションの内容を示すパターンデータ、テクスチャデータ及びカラーパレットデータ等の記憶エリアで構成される。ここで、テクスチャデータは2次元の画像データであり、カラーパレットデータはテクスチャデータ等の色を指定するためのデータである。CPU1は、これらのデータを記録媒体300から一度に又はゲームの進行状況に応じて複数回に分けて読み出して、予めバッファ14の非表示エリアに記録する。
音声プロセッサ11は、記録媒体300から読み出されたADPCM(Adaptive Differential Pulse Code Modulation)データを音源としてバッファ15に記憶させる。この音声プロセッサ11は、例えば、周波数44.1kHzのクロック信号に基づいてバッファ15からADPCMデータを読み出し、当該ADPCMデータに対してピッチ変換、ノイズ付加、エンベロープ設定、レベル設定及びリバーブ付加等の処理を施す。音声プロセッサ11で処理された音声データは、増幅回路22を介してスピーカ23から出力される。
記録媒体ドライブ17としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、ハードディスクドライブ、光ディスクドライブ、フレキシブルディスクドライブ、シリコンディスクドライブ、カセット媒体読み取り機等が用いられる。この場合、記録媒体300としては、DVD−ROM、CD−ROM、ハードディスク、光ディスク、フレキシブルディスク、半導体メモリ等が用いられる。記録媒体ドライブ17は、記録媒体300から画像データ、音声データ及びプログラムデータを読み出し、読み出したデータをデコーダ12に供給する。デコーダ12は、記録媒体ドライブ17で読み出されたデータに対してECC(Error Correction Code)によるエラー訂正処理を施し、当該処理後のデータをRAM5又は音声プロセッサ11に供給する。
メモリ18は、補助記憶装置であり、例えばゲームが中断された場合において、中断時点でのゲーム状態を保持するために各種ゲームパラメータ等を記憶する不揮発性の記憶領域を有する。また、メモリ18は、ゲームプログラムや各種データを記憶することができる。このメモリ18としては、例えばカード型メモリ、ハードディスク、半導体メモリ等を用いることができる。
コントローラ19は、操作者であるユーザが種々の操作指令を入力するために使用する操作装置であり、ユーザの操作に応じた操作信号を、インターフェース回路13を介してCPU1に送出する。このコントローラ19は、例えば、アナログスティック、方向キー、確定ボタン等を供えている。このコントローラ19は、特定領域505や照準カーソル503の移動、打者キャラクタ501による打撃等を実行させるコマンドを、CPU1に与えるために使用される。
次に、上記のゲーム装置100の概略動作について説明する。ゲーム装置100に電源が投入されると、ROM6に記憶されているオペレーティングシステムに基づいて、記録媒体300からゲームプログラムを読み出すように、CPU1は記録媒体ドライブ17に指示する。記録媒体ドライブ17が記録媒体300から読み出した画像データ、音声データ及びプログラムデータは、デコーダ12に供給されてエラー訂正処理が施される。
エラー訂正処理が施された画像データは、バスライン2を介して伸張回路7に供給されて上述した伸張処理が施される。その後、画像データは描画プロセッサ10に供給され、当該描画プロセッサ10によってバッファ14の非表示エリアに書き込まれる。また、デコーダ12によってエラー訂正処理が施された音声データは、RAM5又は音声プロセッサ11を介してバッファ15に書き込まれる。また、デコーダ12によってエラー訂正処理が施されたプログラムデータはRAM5に書き込まれる。
以降、CPU1は、RAM5に記憶されているゲーム制御プログラム及びユーザがコントローラ19を用いて指示する内容に基づいて、選手カード交換処理やゲーム進行処理を行う。すなわち、CPU1は、ユーザがコントローラ19を用いて指示する内容に基づいて、画像処理の制御、音声処理の制御及び内部処理の制御等を適宜行う。
また、ゲーム装置100は、通信インターフェースを含む通信制御部20を備えており、無線LAN通信、インターネット通信、距離無線通信または有線通信などにより他のゲーム装置100と接続し、両者間で同期をとりながらデータのやり取りを行うことによって、通信対戦型のゲームを実行することも可能である。
図2または図3に示すように、二人のユーザが通信対戦する形態では、二人のユーザがそれぞれ操作する2台のゲーム装置100がネットワーク600を介して通信可能に接続される。ネットワーク600としては、インターネット、公衆回線(電話回線、移動体通信回線等)、有線LAN(Local Area Network)、無線LAN、Bluetooth(登録商標)、UWB(Ultra Wide Band)等であってもよく、或いはこれらを組み合せたものであってもよい。
ネットワーク600を介した通信対戦の方式としては、図2に例示するように、複数のゲーム装置100間で直接通信して対戦する、いわゆるP2P(Peer to Peer)方式が適用できる。また、複数のゲーム装置100が直接無線通信を行うアドホックモードでの無線通信対戦や通信ケーブルを介した有線通信対戦も可能であり、これらはP2P方式に含まれる。通信対戦では、例えばP2P通信により2台のゲーム装置100が互いに同期をとりながら共通の仮想ゲーム空間を構築し、ゲームを進行する。
また、ネットワーク600を介した通信対戦の方式としては、図3に示すように、クライアントとしての複数のゲーム装置100がサーバ装置400を介して対戦する、いわゆるクライアント/サーバ方式も適用できる。すなわち、投手キャラクタから送出されたボールを、打者キャラクタが打ち返す対戦を、2台のゲーム装置100間で通信しながら実行するに際し、サーバ装置400を介して通信する形態であってもよい。
なお、本ゲームには、ユーザが他のユーザと通信対戦するゲームモード以外にも、ユーザがコンピュータと対戦するゲームモード(いわゆるCPU対戦モード)もある。以下には、主に、通信対戦のゲームモードを例に挙げて、ゲームの一例を説明する。
〔ゲームの一例〕
図2または図3に示すように、二人のユーザがネットワーク600を介して通信対戦する形態では、2台のゲーム装置100にそれぞれ接続されたテレビジョン200のテレビジョンモニタ21に、図4に例示する画面と図5に例示する画面とがそれぞれ表示される。すなわち、打者キャラクタ501を操作する側のゲーム装置100のテレビジョンモニタ21には、図4の画面が表示され、投手キャラクタ502を操作する側のゲーム装置100のテレビジョンモニタ21には、図5のゲーム画面が表示される。
図5は、投手キャラクタ502が打者キャラクタ501に対して投球した直後の状態を示している。同図は、投手側から打者側を見た状態の画像を示しており、投手キャラクタ502を操作する第2ユーザは、投打の対戦時にはこの画面を見ながらゲームを行なう。投手側の第2ユーザは投球前に球種および投球コースを選択できる。例えば、画面には球種選択用アイコン511が表示され、第2ユーザは、この球種選択用アイコン511を見ながらコントローラ19(アナログスティックまたは方向キー等)を操作して球種を選択し、決定ボタンを押すことで球種の選択を確定する。
図5に示す球種選択用アイコン511の例では、中央部から周囲に向かって6本のラインa、b、c、d、e、fが延びており、6種類の球種から1つを選択可能である。例えば、aが「ストレート」、bが「シュート」、cが「シンカー」、dが「フォーク」、eが「カーブ」、fが「スライダー」である。なお、図5の例では、6種類の球種が選択可能であるが、選択可能な球種は投手キャラクタ502毎に異なっており、例えば2種類〜5種類の球種しか選択できない場合もある。第2ユーザの操作によって選択された球種は、球種選択用アイコン511の上部に表示される。
上記のようにして球種が決定されると、投手キャラクタ502が投球モーションに入る。例えば、その後、投手キャラクタ502がボールをリリースするまでの間に、第2ユーザは投球コースを指定することができる。画面には、ストライクゾーン504および投球コースを指定するためのコース指定カーソル512が表示される。例えば、第2ユーザは、コントローラ19(アナログスティックまたは方向キー等)を操作してコース指定カーソル512を移動させ、投球コースを指定できる。
なお、画面一体型等のゲーム装置100において、画面がタッチパネルになっている場合には、第2ユーザが指またはスタイラス等で画面に接触することにより、接触位置を投球コースとして指定できるようにしてもよい。
上記のようにして投球コースを指定した後は、第2ユーザがコントローラ19の投球開始ボタンを押すことにより、又は自動的に、投手キャラクタ502が投球を開始し、ボールをリリースする。なお、図5では、便宜上、ストライクゾーン504、球種選択用アイコン511、コース指定カーソル512を表示しているが、例えばボールのリリース後はこれらの表示を消去してもよい。
ゲーム装置100は、第2ユーザによって選択された球種および投球コースに基づいて、投手キャラクタ502からリリースされたボールの軌道を算出し、ボールをホームベース方向へと移動させる。なお、ゲーム装置100は、球種および投球コースだけではなく、投手キャラクタ502の能力パラメータ(球速、コントロール、変化レベル等)に基づいて、投手キャラクタ502からリリースされたボールの軌道を算出してもよい。ボールの軌道の算出については、既知のアルゴリズムを適用できる。
なお、上記では投手側の第2ユーザが球種および投球コースを選択する例を示したが、投球コースのみを選択することにより、投手キャラクタ502が投球を開始するような、より簡易的な野球ゲームとすることもできる。
ところで、打者キャラクタ501を操作する第1ユーザには、投手側のゲーム装置100の画面(図5の画面)は見えないので、相手がどの球種や投球コースを選択したのかは分からない。
一方、打者キャラクタ501を操作する第1ユーザは、図4に例示する画面を見ながらゲームを行なう。同図は、打者側から投手側を見た状態の画像を示しており、打者キャラクタ501を操作する第1ユーザは、投打の対戦時にはこの画面を見ながらゲームを行なう。このゲーム画面には、第1ユーザによって操作される打者キャラクタ501、対戦相手の投手キャラクタ502、照準カーソル503、ストライクゾーン504等が表示される。野球ゲームでは、照準カーソル503はミートカーソルとも称され、打者キャラクタ501がボールを打撃可能な領域(あるいはボールを効果的に打撃可能な領域)となる。
打者キャラクタ501を操作する第1ユーザは、投手キャラクタ502が投げたボールに照準カーソル503が重なるように、照準カーソル503を移動させる操作を行う。ゲーム装置100は、第1ユーザの操作に応じて、画面上の照準カーソル503を移動させる。第1ユーザが照準カーソル503を移動させることにより、バットオブジェクトのスイングの位置を調整できる。
ここで、本実施の形態のゲームでは、照準カーソル503の大きさは一定ではなく、以下に示すように画面上の位置(座標)に応じて照準カーソル503の大きさが変化する。
図5に示すように、本ゲーム装置100は、照準カーソル503の移動が可能な特定領域505を画面上に設定する。特定領域505の画面上の位置については、任意に定めることができる。例えば、特定領域505は、ストライクゾーン504の位置に初期設定することができる。図5では、特定領域505をストライクゾーン504と一致するように初期設定した例を示している。
なお、特定領域505の大きさ(面積)は任意に設定可能であり、ストライクゾーン504よりも大きくしたり、小さくしたりしてもよい。また、照準カーソル503は、特定領域505の外側にも移動できるようにしてもよいし、特定領域505の外側には移動できないようにしてもよい。
そして、ゲーム装置100は、特定領域505における位置に応じて、前記照準カーソル503の大きさが変化するように、前記特定領域505内における前記照準カーソル503の大きさを設定する。従って、ユーザが特定領域505内で照準カーソル503を移動させれば、特定領域505の内部のローカル座標によって、照準カーソル503の大きさが変化する。ここで、ローカル座標としては、例えば、特定領域505の中央部(中心点)を原点とした座標系を適用できる。
例えば、照準カーソル503は、特定領域505の中央部において最も大きく、中央部から離れるほど照準カーソル503が小さくなるような設定にすることができる。これにより、図6に例示するように、特定領域505の中央部に存在する照準カーソル503を様々な方向へ移動させた場合、点線で示すように、特定領域505の外周に近づくに連れて連続的に(または段階的に)照準カーソル503が小さくなる。これは、現実の野球では、一般的にストライクゾーン504の中央部は打撃し易いが、ストライクゾーン504の端部は打撃し難いという状況を、ゲームに的確に反映させたものである。なお、図6では、上、下、左、右、右上、右下、左上、左下の8方向のみを示しているが、ユーザは照準カーソル503を任意の方向へ移動させることができる。
図6に示す特定領域505内における照準カーソル503の大きさ分布の設定によれば、図7に例示するように、ストライクゾーン504の真ん中のコースに存在する照準カーソル503の大きさが最大となるので、第1ユーザは真ん中のコースにきたボールを打撃し易くなる。一方、図8に例示するように、照準カーソル503がストライクゾーン504の真ん中からずれた位置に存在する場合は、照準カーソル503の大きさが図7の場合よりも小さくなるので、第1ユーザによる打撃操作がより困難になる。
この場合、投手側から見れば、単純にストライクゾーンの端部を狙えば有利になるので、このままでは投手側のみにメリットが発生することになる。そこで、本実施の形態のゲーム装置100では、さらに現実世界において見られる、打者のコース予想という概念を加え、第1ユーザ自らの操作により、特定領域505を移動できるようにしている。
すなわち、第1ユーザは、投手キャラクタ502からボールがリリースされるまでに、投球コースを予想し、特定領域505をストライクゾーン504からずれた位置に移動させることができる。例えば、第1ユーザがアウトコースを予想した場合、特定領域505をアウトコース側に移動させればよい。画面上で特定領域505が移動しても、基本的に、特定領域505の内部の設定(領域内の位置に応じて照準カーソル503の大きさが変化する設定)は維持される。よって、図9に例示するように、特定領域505の中央部をアウトコースに位置するように移動させた場合、アウトコースに存在する照準カーソル503の大きさが最大となり、第1ユーザは、アウトコースのボールを、あたかもストライクゾーン504の真ん中のボールのように打撃できる。すなわち、第1ユーザは、特定領域505をアウトコース側に移動させることにより、アウトコースを意識した打撃が可能となる。
一方、特定領域505の中央部をアウトコースに位置するように移動させたことによって、図10に例示するように、ストライクゾーン504の真ん中のコースに存在する照準カーソル503の大きさが小さくなるので、第1ユーザは真ん中のコースにきたボールが打撃し難くなる。
同様に、図11に例示するように、特定領域505の中央部をインコースに位置するように移動させた場合、インコースに存在する照準カーソル503の大きさが最大となり、第1ユーザは、インコースのボールを、あたかもストライクゾーン504の真ん中のボールのように打撃できる。その一方、図12に例示するように、ストライクゾーン504の真ん中のコースに存在する照準カーソル503の大きさが小さくなるので、第1ユーザは真ん中のコースにきたボールが打撃し難くなる。
すなわち、第1ユーザのコース予想が当たれば、打者にとって本来不利なはずのストライクゾーン504の端部の投球コースが打ち易くなるので、単純に投手側にのみメリットが生じることはなくなり、現実世界での投打の駆け引きを、ゲーム上により緻密でリアルに反映できる。
なお、第1ユーザがストライクゾーン504の真ん中のコースを予想(または意識)した場合、特定領域505の中央部がストライクゾーン504の中央部と一致しているデフォルトの位置から、特定領域505を移動させる必要はない。
なお、投手キャラクタ502を操作する第2ユーザは、図4、図7〜図12の画面は見えないので、打者側の第1ユーザがどのコースを予想して特定領域505を移動させたかは分からない。
投手キャラクタ502からボールがリリースされた後は、最早、第1ユーザが特定領域505を移動させることはできない。打者キャラクタ501を操作する第1ユーザは、投手キャラクタ502が投げたボールに重なるように照準カーソル503を移動させると共に、ボールを打撃可能なタイミングでスイングボタンを押すことにより、ボールを打ち返すことができる。ここで、ボールを打撃可能なタイミングとは、ボールが打者キャラクタ501の近傍を通過する所定の打撃可能時間帯(例えば、4フレーム時間)とすることができる。
ところで、投手キャラクタ502が投げたボールに照準カーソル503が重ならなければ、そのボールを打ち返せないようにしてもよい。この場合、打者キャラクタ501は、空振りする。
あるいは、照準カーソル503は、ボールを効果的に打てるバットの領域である、所謂、スイートスポットを含む所定領域としてもよい。この場合、照準カーソル503がボールに重ならない場合でも、バットに当たりさえすれば(すなわち、照準カーソル503の周辺のバットオブジェクトの存在する領域と、ボールとが重なれば)、凡打にはなるが、空振りにはならないようにすることができる。
もしも、ボールを打撃可能なタイミング以外でスイングボタンが押された場合には、打者キャラクタ501は空振りする。一方、ボールを打撃可能なタイミングでスイングボタンが押されたときに、照準カーソル503がボールと重なっている場合には、打者キャラクタ501がボールを打ち返す。ボールを打撃可能なタイミングでスイングボタンが押された場合でも、照準カーソル503がボールと重ならなければ、打者キャラクタ501は空振りする(またはバットに当たっても凡打となる)。
また、投手キャラクタ502からボールがリリースされた後、所定のタイミングまでに、第1ユーザがスイングボタンを押さなかった場合には、打者キャラクタ501がボールを見送る。ここで、所定のタイミングとは、例えば打撃可能時間帯の終了から3フレーム時間後とすることができる。あるいは、所定のタイミングを、例えば投手キャラクタ502からホームベースまでの距離の4分の3を通過するタイミングとしてもよい。打者キャラクタ501がバットを振るために要する時間を考慮し、打者キャラクタ501がバットを振り始めても間に合わないような任意のタイミングを、前記所定のタイミングに定めることができる。
そして、ゲーム装置100は、第1ユーザのコース予想等の予想結果に基づいて、投手キャラクタ502からボールがリリースされた後に行われる打者キャラクタ501の打撃動作またはボールを見送る動作を制御する。
先ず、打者キャラクタ501の打撃動作を例示する。例えば、第1ユーザがインコースの予想入力(特定領域505をインコース側にシフト)をしていたが、実際にはアウトコースにボールが来たものとする。これは、第1ユーザのコース予想が外れた場合に相当する。この場合、第1ユーザがスイングボタンを押せば、図13に例示するように、ゲーム画面には、アウトコースに来たボール540に対して、打者キャラクタ501が泳ぐような打撃姿勢になってバランスを崩しながらスイングする動作が表示される。なお、図13中の点線で示した打者キャラクタ501は、バッターボックス内でどの様な動きをしたかを分かり易くするために、便宜上、打者キャラクタ501のスイング前の姿勢を示している。他の図の点線で示した打者キャラクタ501も同様である。
これにより、現実世界の打者がとり得る動作を、打者の内面的な意識(予想)という要素も取り入れて、ゲーム上でリアルに再現できる。すなわち、現実世界では、インコースを意識している打者は、インコースのボールを打つのに適したアウトステップの打撃を行おうとする。それに反してアウトコースにボールが来た場合、打者の上体がアウトコース側に傾いて泳ぐような打撃姿勢になり、バランスを崩しながらスイングすることになる。本実施の形態のゲームでは、第1ユーザが事前にインコース予想の入力をすることにより、打者キャラクタ501がインコースを意識した打撃が可能となる。そして、第1ユーザによるインコース予想の入力に対してアウトコースにボールが来た場合に、現実世界と同様に、泳いでバランスを崩した打撃動作となるように打者キャラクタ501の動作を制御し、画面上でリアル感を醸し出している。
また、図13は、第2ユーザ側のゲーム装置100のゲーム画面を示しているが、同様に、第1ユーザ側のゲーム装置100のゲーム画面にも、打者キャラクタ501が泳ぐような打撃姿勢になってバランスを崩しながらスイングする動作が表示される。
上記のように第1ユーザの予想が外れた場合に、打者キャラクタ501がバランスを崩した打撃動作を行うが、必ずしも空振りしたり凡打になったりするとは限らない。打者キャラクタ501がバランスを崩しながらでも、ヒットを打つこともある。これについて以下に説明する。
第1ユーザのコース予想が外れれば、すなわち、投手キャラクタ502が投げたボールが、予め移動させておいた特定領域505の中央部から離れたコースに来れば、打撃の難易度が高くなる。これは、特定領域505の中央部から離れるほど照準カーソル503の面積が小さくなるためである。これにより、現実世界で打者のコース予想が外れた場合に、打者が空振りしたり凡打したりし易くなる状態を、ゲーム上でリアルに再現できる。但し、第1ユーザが、小さくなった照準カーソル503を、ボールの中心付近に重ねてタイミング良く打撃することができれば、ヒット性の打球になる。
但し、第1ユーザのコース予想が外れた場合、そのデメリットを明確化するために、打者キャラクタ501が打撃できなくなるようなゲーム仕様にすることも可能である。
また、例えば、第1ユーザがインコースの予想入力をしていたところ、実際にインコースにボールが来たものとする。これは、第1ユーザのコース予想が当たった場合に相当する。この場合、第1ユーザがスイングボタンを押せば、図14に例示するように、ゲーム画面には、打者キャラクタ501がバランスを崩すことなくスイングする動作が表示される。例えば、打者キャラクタ501は、インコースに来たボール540を打つのに適したアウトステップの打撃動作をバランスよく行う。
これも、現実世界の打者がとり得る動作を、打者の内面的な意識という要素も取り入れて、ゲーム上でリアルに再現したものである。すなわち、現実世界では、インコースを意識している打者は、インコースに来たボールを、バランスを崩すことなく打撃することができる。本実施の形態のゲームでは、第1ユーザが事前にインコース予想の入力をしたのに対して、実際にインコースにボールが来た場合に、現実世界と同様に、バランスを崩すことなく打者キャラクタ501の打撃動作を制御し、画面上でリアル感を醸し出している。
また、図示しない第1ユーザ側のゲーム装置100のゲーム画面にも、打者キャラクタ501が図14と同様の動作を行う画像(打者側から投手側を見た視点の異なる画像)が表示される。
上記のように第1ユーザの予想が当たった場合に、打者キャラクタ501がバランスを崩すことのない打撃動作を行うが、基本的に、ヒットを打てるか否かは第1ユーザの打撃操作にかかっている。
第1ユーザのコース予想が当たれば、すなわち、投手キャラクタ502が投げたボールが、予め移動させておいた特定領域505の中央部付近を通過するコースに来れば、打撃し易くなる。これは、特定領域505の中央部で、照準カーソル503の面積が最大となるためである。これにより、現実世界で打者のコース予想が当たった場合に、打者がボールを捉え易くなる状態を、ゲーム上でリアルに再現できる。但し、第1ユーザが、照準カーソル503をボールに重ね損ねたり、スイングボタンを押すタイミングが悪ければ、空振りしたり凡打したりすることもある。
次に、打者キャラクタ501がボールを見送る動作を例示する。例えば、第1ユーザがインコースの予想入力をしていたが、実際にはアウトコースにボールが来て、コース予想が外れたものとする。この場合、第1ユーザが所定のタイミングまでにスイングボタンを押さなければ、打者キャラクタ501は、図15に例示するボール540の見送り動作を行う。すなわち、打者キャラクタ501は、予想に反したコースに来たボール540を目で追いかけながらスイング動作に入り、途中でスイングを止めて上体がアウトコース側に突っ込んだ姿勢でバランスを崩してボール540を見送る。
これも、現実世界の打者がとり得る動作を、打者の内面的な意識という要素も取り入れて、ゲーム上でリアルに再現したものである。すなわち、現実世界では、インコースを意識しているのにアウトコースにボールが来た場合、打者は余裕をもってボールを見極めることができない場合が多い。従って、打者は、スイング動作に入った状態でボールと判断し、スイングを止めてボールを見送る。このため、打者の上体がアウトコース側に突っ込んだ姿勢でボールを見送ることになり、バランスを崩す。図15の画面例は、このような打者キャラクタ501のボール540の見送り動作を再現している。
また、例えば、第1ユーザがアウトコースの予想入力をしていたところ、実際にアウトコースにボールが来て、コース予想が当たったものとする。この場合、第1ユーザが所定のタイミングまでにスイングボタンを押さなければ、打者キャラクタ501は、図16に例示するボール540の見送り動作を行う。すなわち、打者キャラクタ501は、スイングを開始することもなく、バランスを崩さずにボール540を見送る。
これも、現実世界の打者がとり得る動作を、打者の内面的な意識という要素も取り入れて、ゲーム上でリアルに再現したものである。すなわち、現実世界では、アウトコースを意識している打者は、アウトコースに来たボールを、慌てずに余裕をもって見極めることができる。従って、打者は、スイングを開始せずに、余裕をもってボールを見送ることができる。図16の画面例は、このような打者キャラクタ501のボール540の見送り動作を再現している。
また、例えば、第1ユーザがアウトコースの予想入力をしていたが、実際にはインコースにボールが来て、コース予想が外れたものとする。この場合、第1ユーザが所定のタイミングまでにスイングボタンを押さなければ、打者キャラクタ501は、図17に例示するボール540の見送り動作を行う。すなわち、打者キャラクタ501は、ボール540が身体に当たるのを避けようとして腰を引いたり、のけぞったりして、バランスを崩した動作をとる。
これも、現実世界の打者がとり得る動作を、打者の内面的な意識という要素も取り入れて、ゲーム上でリアルに再現したものである。すなわち、現実世界において、打者がアウトコースを意識した状態でインコースにボールが来た場合、打者はボールが通常より身体に近づいて来るように感じ、必要以上に大きくボールを避けようとする。図17の画面例は、このような打者キャラクタ501のボール540の見送り動作を再現している。
また、例えば、第1ユーザがインコースの予想入力をしていたところ、実際にインコースにボールが来て、コース予想が当たったものとする。この場合、第1ユーザが所定のタイミングまでにスイングボタンを押さなければ、打者キャラクタ501は、図18に例示するボール540の見送り動作を行う。すなわち、打者キャラクタ501は、ボール540の衝突を回避する動作をとることも、スイングを開始することもなく、バランスを崩さずにボール540を見送る。
これも、現実世界の打者がとり得る動作を、打者の内面的な意識という要素も取り入れて、ゲーム上でリアルに再現したものである。すなわち、現実世界では、インコースを意識している打者は、インコースに来たボールを、慌てずに余裕をもって見極めることができる。従って、打者は、デッドボールになりそうなほど身体の近くを通過するボール以外は、腰を引いたり、のけぞったりすることなく、余裕をもってボールを見送ることができる。図18の画面例は、このような打者キャラクタ501のボール540の見送り動作を再現している。
なお、図13〜図18は、第2ユーザ側のゲーム装置100のゲーム画面(投手側から打者側を見た画像)を示しているが、第2ユーザと対戦している第1ユーザのゲーム装置100のゲーム画面にも、図13〜図18に示した動作と同様の動作を行う打者キャラクタ501の画像(打者側から投手側を見た視点の異なる画像)が表示される。
第1ユーザが打撃操作を行った場合において、打撃に成功した場合、ゲーム装置100は、スイングボタンが押されたタイミング、照準カーソル503の中心(重心)とボールの中心(重心)とのずれ量等に基づいて、打撃されたボールの軌道を算出し、ボールを移動させる。例えば、スイングボタンが押されたタイミングが、打撃可能時間帯の中間付近ならばセンター方向の打撃、それよりも早ければ、所謂、引っ張る打撃、それよりも遅ければ、所謂、流し打ちの打撃となる。また、照準カーソル503の中心とボールの中心とのずれ量が少ないほど、強いライナー性の打球となる。また、照準カーソル503の中心がボールの中心よりも上側にずれていれば、所謂、ゴロの打球、下側にずれていれば、所謂、フライの打球となる。このように、照準カーソル503とボールとの重なり方によって、打球の速度や打球の角度が変わる。さらに、ゲーム装置100は、打者キャラクタ501の能力パラメータ(パワー、弾道等)をも考慮して、打ち返されたボールの軌道を算出してもよい。ボールの軌道の算出については、既知のアルゴリズムを適用できる。
〔ゲーム装置の機能的構成および動作〕
次に、図19の機能ブロック図等を参照して、移動体に対してキャラクタが作用を与えるゲームを制御するゲーム装置100の主要な機能的構成について説明する。本ゲーム装置100は、第1ユーザによって操作される打者キャラクタ501が、第2ユーザによって操作される投手キャラクタ502が投じたボールを打撃する野球またはソフトボールゲームを制御する。
図19に示すように、ゲーム装置100は、主に、予想手段71、移動体移動手段の一例としてのボール移動手段72および動作制御手段73を備えている。これらの各手段は、ゲーム装置100のCPU1が、本実施の形態に係るプログラムを実行することにより実現されるものである。
予想手段71は、移動体の移動開始前または移動開始時に、キャラクタを操作する第1ユーザの操作に基づいて、移動体の移動に関する移動パラメータに対する予想情報を取得する機能を有する。本実施の形態の野球ゲームでは、投手キャラクタ502が投げるボールが移動体であり、移動体の移動開始前または移動開始時とは、投手キャラクタ502からボールが送出(リリース)される前または送出開始時である。
予想手段71が取得する予想情報には、移動体の移動コース、速さ、移動中の軌道変化の少なくとも1つの移動パラメータに対する予想情報を含めることが好ましい。「移動コース」としては投球コース、「速さ」としてはボールの球速(例えば、速球等の速い球、チェンジアップ等の遅い球)、「移動中の軌道変化」としては球種(ストレート、カーブ、シュート等)がそれぞれ該当する。これらのうちの1つ、又は2つ以.上を組み合わせて、移動体の移動に関する移動パラメータの予想を行うことができる。
投球コースの予想の場合は、インコース、アウトコース等の予想コースの領域を示す情報、または予想コースの座標情報を「予想情報」とすることができる。具体例を以下に説明する。
例えば、第1ユーザが、ストライクゾーン504と一致するように初期設定された特定領域505を、図9に例示するようにアウトコース側に移動させる操作を行った場合、予想手段71は、移動後の特定領域505の位置に基づいて、予想情報として「アウトコース」を取得する。なお、この場合、アウトコースを示すコード情報、例えば「0」を予想情報として取得してもよい。また、図11に例示するように、第1ユーザが特定領域505をインコース側に移動させる操作を行った場合、予想手段71は、予想情報として「インコース」またはそれを示すコード情報、例えば「1」を予想情報として取得してもよい。
また、例えば、第1ユーザが移動させた特定領域505の中央部の座標(グローバル座標)の情報を、投球コースの予想情報として取得してもよい。ここで、グローバル座標とは、例えば、ゲーム画面の左上角を基準とした座標である。
なお、図9等に示すように、本野球ゲームでは、ストライクゾーン504に重畳して配置した特定領域505を第1ユーザが画面上でシフトさせる操作によって投球コースの予想入力を行うというユーザインターフェースを実現している。但し、第1ユーザが投球コースの予想入力を行う操作は、特定領域505を用いた操作に限定されるものではない。例えば、「アウトコース」、「インコース」等の複数の投球コースが選択肢として画面上に表示され、その中から第1ユーザが予想する任意の投球コースを、コントローラ19等を操作して選択するようにしてもよい。あるいは、第1ユーザが予想する投球コースを、ポインティングデバイスを使用して画面上で入力してもよい。あるいは、画面がタッチパネルで構成されている場合には、指またはタッチペン等を画面上に接触させることによって、第1ユーザが予想する投球コースを画面上で入力してもよい。何れの操作によって投球コースの予想入力が行われた場合でも、予想手段71は、投手キャラクタ502からボールが送出される前または送出開始時に、第1ユーザがボールの投球コースを予想した予想投球コースの情報(予想コースの領域を示す情報または予想コースの座標情報)を取得する。
また、例えば、球種予想の場合は、直球、カーブ、スライダー等の予想球種の情報を「予想情報」とすることができる。第1ユーザが球種予想の入力操作を行う一例としては、図4に示した球種選択用アイコン511が、第1ユーザのゲーム画面にも表示され、この球種選択用アイコン511を使用して、球種予想の入力操作を行う。
また、例えば、球速予想の場合は、速球等の「速い球」、チェンジアップ等の「遅い球」の情報を「予想情報」とすることができる。第1ユーザが球速予想の入力操作を行う一例としては、例えば、「速い球」、「遅い球」という選択肢が画面上に表示され、その中から第1ユーザがコントローラ19等を操作して選択する。あるいは、例えば、球速が「130Km/h未満」、「130Km/h以上、且つ145Km/h未満」、「145Km/h以上」という選択肢が画面上に表示され、その中から第1ユーザがコントローラ19等を操作して選択するようにしてもよい。
また、予想手段71は、取得した予想情報を、記憶装置の一例であるRAM5に記憶する。この予想情報は、予想の一致度に応じた打者キャラクタ501の動作制御に用いられる。
以下には、主に、第1ユーザが投球コースの予想入力を行い、予想手段71が予想情報として予想投球コースの情報を取得する好ましい例について説明する。すなわち、予想手段71は、ボールの投手キャラクタ502からの送出開始前または送出開始時に、第1ユーザの操作に基づいて、ボールの投球コースを予想した予想投球コースの情報を取得するものとして、以下の説明を続ける。
次に、ボール移動手段72について説明する。ボール移動手段72は、移動体の一例としてのボールを操作する第2ユーザの操作に基づいて、移動パラメータを決定して前記移動体を移動させる機能を有する。本野球ゲームでは、第2ユーザが、投手キャラクタ502が投げるボールの移動パラメータとして投球コースや球種等を決定するための操作を行うことにより、ボール移動手段72が、当該操作に基づいて移動パラメータとしての投球コースや球種等を決定し、ボールを打者キャラクタ501の方へ移動させる。第2ユーザによる投球コースや球種の決定操作は、例えば図4に示した球種選択用アイコン511やコース指定カーソル512により行うことができる。
次に、動作制御手段73について説明する。動作制御手段73は、投手キャラクタ502からリリースされたボールの移動後の打者キャラクタ501の動作を制御する機能を有する。この動作制御手段73は、予想手段71によって取得された移動パラメータに対する予想情報(例えば予想投球コース)と、ボール移動手段72によって決定された移動パラメータ(例えば投球コース)との一致度に応じて、打者キャラクタ501の動作を異ならせる。ここで、一致度としては、移動パラメータに対する予想情報と実際の移動パラメータとの一致の程度を、例えば値またはレベルとして表すことができる。
例えば、移動パラメータに対する予想情報と実際の移動パラメータとが一致する場合の一致度を「1」または「レベルA」、不一致の場合の一致度を「0」または「レベルB」として、一致度を2段階の値またはレベルで表しても良い。例えば、第1ユーザの予想投球コースがインコースの場合、実際の投球コースがインコースか否かで、一致度を前記の2段階で評価する。
あるいは、移動パラメータに対する予想情報と実際の移動パラメータとの一致の程度を、3段階以上の値またはレベルで表しても良い。例えば、ボールがホームベース付近を通過する領域を、インコース、真ん中コース、アウトコースの各領域に3分割する。例えばストライクゾーン504を水平方向に3等分し、その真ん中を真ん中コース領域、真ん中コース領域よりもインコース側をインコース領域、真ん中コース領域よりもアウトコース側をアウトコース領域とする。そして、予想投球コースが例えばインコース領域の場合において、実際の投球コースがインコース領域であれば一致度を「2」または「レベルA(最大)」、真ん中コース領域であれば一致度を「1」または「レベルB」、アウトコース領域であれば一致度を「0」または「レベルC(最低レベル)」とする。また、予想投球コースがアウトコース領域の場合において、実際の投球コースがアウトコース領域であれば一致度を「2」または「レベルA」、真ん中コース領域であれば一致度を「1」または「レベルB」、インコースで領域あれば一致度を「0」または「レベルC」とする。また、予想投球コースが真ん中コース領域の場合において、実際の投球コースが真ん中コース領域であれば一致度を「2」または「レベルA」、インコース領域またはアウトコース領域であれば一致度を「1」または「レベルB」とする。
あるいは、予想情報が予想投球コースの座標情報であった場合、予想投球コースの座標と実際の投球コースの座標とのずれ量(両座標間の距離L)に基づいて、一致度を算出してもよい。例えば図20に示すように、画面内のストライクゾーン504を含むXY平面における、第1ユーザの予想投球コースの座標をA(X1,Y1)、第2ユーザの操作により投球された実際の投球コースの座標をB(X2,Y2)とする。そして、例えば、一致度Mを、AB間の距離Lに基づいて、下式(1)により算出する。
M=a−√{(X2−X1)2+(Y2−Y1)2} ・・・(1)
上式(1)において、aは定数であり、任意の値を設定可能である。例えば、ストライクゾーン504の対角の距離をaとして設定することができる。
前記動作制御手段73は、移動体の移動中に、第1ユーザによって移動体に作用を与えるための作用付与操作が行われた場合に、前記一致度に応じて、キャラクタにおける移動体に作用を与えるための動作を異ならせる。ここで、「作用付与操作」の一例としては、本野球ゲームでは、第1ユーザが行うスイングボタン操作である。なお、後述するサッカーゲームのPK戦では、ゴールキーパーキャラクタをボールに飛びつかせる操作が、前記作用付与操作に該当する。また、例えば、テニスゲームでは、ラケットスイング操作が、前記作用付与操作に該当する。これらは一例であり、ゲームの種類や内容に応じた作用付与操作を適用できる。
また、前記の「キャラクタにおける移動体に作用を与えるための動作」とは、例えば本野球ゲームでは、打者キャラクタ501がボールを打ち返そうとバットを振る動作である。また、例えば、サッカーゲームのPK戦では、ゴールキーパーキャラクタがボールを捕えよう(または弾こう)として飛びつく動作である。また、テニスゲームでは、サーブされたボールを、レシーバーキャラクタが打ち返そうとしてラケットを振る動作である。これらは一例であり、キャラクタは、ゲームの種類や内容に応じた動作を行う。
この構成によれば、第1ユーザによってスイングボタン操作等の作用付与操作が行われた場合に、一致度に応じて(すなわち、第1ユーザの予想の当否に応じて)、打者キャラクタ501の動作が異なる。この場合、動作制御手段73は、移動体に作用を及ぼすタイミングにおける打者キャラクタ501の動作を制御する。一例を挙げると、インコース予想に対して、アウトコースにボールが来た場合は、それを打とうとして打者キャラクタ501は泳ぐような打撃姿勢になる(バランスを崩す)。一方、アウトコース予想に対して、予想通りアウトコースにボールが来た場合は、打者キャラクタ501はバランスを崩すことなくアウトコースに適したインステップの打撃姿勢になる(バランスを崩さない)。これにより、投手側の第2ユーザは、打者キャラクタ501がバットを振る動作を見ることによって、第1ユーザの予想の当否を推測可能となる。
また、前記動作制御手段73は、移動体の移動中に、第1ユーザによって移動体に作用を与えるための作用付与操作が行われなかった場合に、前記一致度に応じて、キャラクタにおける移動体を見送る動作を異ならせる。
本構成では、第1ユーザによってスイングボタン操作等の作用付与操作が行われなかった場合でも、一致度に応じて(すなわち、第1ユーザの予想の当否に応じて)、打者キャラクタ501によるボールを見送る動作が異なる。例えば、アウトコース予想に対して、インコースにボールが来た場合は、打者キャラクタ501がボールを避けようとしてのけぞったり、腰を引いたりするような姿勢でボールを見送る(バランスを崩す)。一方、インコース予想に対して、予想通りインコースにボールが来た場合は、打者キャラクタ501は体勢を崩すことなく余裕をもってボールを見送る(バランスを崩さない)。これにより、投手側の第2ユーザは、打者側がボールを見送る場合も、第1ユーザの予想の当否を推測可能となる。
ここで、動作制御手段73は、前記一致度が所定の閾値またはレベル以上の場合に、打者キャラクタ501の動作を第1動作パターンとする一方、前記一致度が前記所定の閾値またはレベル未満の場合に、打者キャラクタ501の動作を前記第1動作パターンとは異なる第2動作パターンとすることが好ましい。
一致度が所定の閾値またはレベル以上とは、基本的に打者キャラクタ501を操作する第1ユーザの予想が当たった(または予想に近い)場合に相当する。この場合は、打者キャラクタ501が第1動作パターンの動作を行う。第1動作パターンでは、打者キャラクタ501がデフォルトの打撃またはボールを見送る動作を行う。本実施の形態では、打者キャラクタ501が、バランスを崩すことのない打撃またはボールを見送る動作を行うことをデフォルトとする。但し、前記デフォルトの動作において、ボールとバットの位置関係、ボールと打者キャラクタ501との位置関係等によって、打者キャラクタ501の動作の微妙な違いは表現されるものとしてもよい。例えば、打者キャラクタ501が高目のボールを打撃する場合には、高目のボールに適したバットスイング軌道の打撃動作となるし、低目のボールを打撃する場合には低目のボールに適したバットスイング軌道の打撃動作となる。また、例えば、打者キャラクタ501がインコースのボールを打撃する場合には、インコースのボールを打つのに適したアウトステップの打撃動作となるし、アウトコースを打撃する場合には、アウトコースのボールを打つのに適したインテップの打撃動作となる。
次に、所定の閾値またはレベルについて説明する。例えば、予想情報と実際の移動パラメータとが一致する場合の一致度を「1」または「レベルA」、不一致の場合の一致度を「0」または「レベルB」とする場合、所定の閾値を「1」または所定のレベルを「レベルA」とすることができる。
また、例えば、予想投球コースがインコースの場合において、実際の投球コースがインコースであれば一致度を「2」、真ん中コースであれば一致度を「1」、アウトコースであれば一致度を「0」とする場合、所定の閾値を「2」または「1」とすることができる。ここで、閾値を「2」とした場合は、インコース予想に対して実際にインコースにボールが来た場合のみ、バランスを崩さない第1動作パターンとする。一方、閾値を「1」とした場合は、インコース予想に対して実際にインコースまたは真ん中コースにボールが来た場合に、バランスを崩さない第1動作パターンとする。これは、真ん中コースは基本的に打者にとって打ち易いコースであるため、インコース(またはアウトコース)の予想に対して真ん中コースにボールが来ても、コース予想が外れたわけではないものとみなし、バランスを崩さない第1動作パターンとするものである。
また、上式(1)に例示するように、予想投球コースの座標と実際にボールが通過した座標とのずれ量に基づいて一致度を算出する場合、任意の値を閾値として設定することができる。一例を挙げると、ストライクゾーン504の水平方向の長さの2分の1の値を、閾値として設定できる。この例の場合、第1ユーザの予想投球コースの座標から、ストライクゾーン504の水平方向の長さの2分の1以内の範囲をボールが通過すれば、第1ユーザによる投球コースの予想が略当たったものとし、打者キャラクタ501がバランスを崩さない第1動作パターンをとるものとする。例えば、図14、16、18に例示するように、打者キャラクタ501は、バランスを崩すことなく打撃またはボールを見送る動作を行う。
一方、一致度が所定の閾値またはレベル未満の場合とは、基本的に打者キャラクタ501を操作する第1ユーザの予想が外れた(または予想から遠い)場合に相当する。この場合は、打者キャラクタ501が第2動作パターンの動作を行う。第2動作パターンでは、第1動作パターンにはない動作が加えられる。例えば、第2動作パターンでは、第1動作パターンとの相違を、少なくとも第2ユーザが明確に認識できるように、泳ぐ、のけぞる、腰を引く等、打者キャラクタ501がバランスの崩れた体勢で打撃またはボールを見送る動作を行う(図13、15、17参照)。
このように、移動パラメータに対する予想情報と実際の移動パラメータとの一致度に応じて、打者キャラクタ501の動作として、第1動作パターンまたは第2動作パターンの何れかが選択されるので、第2ユーザは、投球後の打者キャラクタ501の動作を見ることにより、相手側の事前予想の当否を明確に推測可能となる。
例えば、第2ユーザがアウトコースに投げる操作をしたことにより、投手キャラクタ502がアウトコースにボールを投げたものとする。これに対して、図13に示すように、打者キャラクタ501が泳ぐような打撃姿勢になってバランスを崩しながらスイングした場合(第2動作パターン)、それを見た第2ユーザは、対戦相手がアウトコース以外を予想していたと推測できる。また、打者キャラクタ501がボールを見送る場合も、図15に示すように、途中でスイングを止めて上体がアウトコース側に突っ込んだ姿勢でバランスを崩してボールを見送る(第2動作パターン)。それを見た第2ユーザは、対戦相手がアウトコース以外を予想していた(所謂、読みが外れた)と推測できる。一方、投手キャラクタ502がアウトコースにボールを投げたのに対して、打者キャラクタ501がバランスを崩さずにバットを振った場合(第1動作パターン)、その結果がヒット、凡打、ファールボール(foul ball)、空振りの何れであっても、第2ユーザは、対戦相手がアウトコースを予想していた(所謂、読みが当たった)可能性があると推測できる。また、図16に示すように、打者キャラクタ501がバランスを崩さずにボールを見送った場合も(第1動作パターン)、第2ユーザは、対戦相手がアウトコースを予想していた可能性があると推測できる。
また、例えば、第2ユーザがインコースに投げる操作をしたことにより、投手キャラクタ502がインコースにボールを投げたものとする。これに対して、打者キャラクタ501が、例えばのけ反りながらバランスを崩したスイングをした場合(第2動作パターン)、それを見た第2ユーザは、対戦相手がインコース以外を予想していたと推測できる。また、打者キャラクタ501がボールを見送る場合も、図17に示すように、腰を引いてバランスを崩してボールを見送る(第2動作パターン)。それを見た第2ユーザは、対戦相手がインコース以外を予想していたと推測できる。一方、投手キャラクタ502がインコースにボールを投げたのに対して、図14に示すように、打者キャラクタ501がバランスを崩さずにバットを振った場合(第1動作パターン)、その結果がヒット、凡打、ファールボール、空振りの何れであっても、第2ユーザは、対戦相手がインコースを予想していた可能性があると推測できる。また、図18に示すように、打者キャラクタ501がバランスを崩さずにボールを見送った場合も(第1動作パターン)、第2ユーザは、対戦相手がインコースを予想していた可能性があると推測できる。
なお、第2ユーザが真ん中コースに投げる操作をしたことにより、投手キャラクタ502が真ん中コースにボールを投げた場合、打者キャラクタ501の動作を次のようにすることができる。すなわち、前述のように、真ん中コースは基本的に打者にとって打ち易いコースであるため、第1ユーザのコース予想に関わらず、真ん中コースのボールについては、コース予想が外れたわけではないものとみなし、バランスを崩さない第1動作パターンとする。あるいは、第1ユーザのコース予想が真ん中コースであった場合に、バランスを崩さない第1動作パターンとし、第1ユーザのコース予想が真ん中コース以外であった場合にはバランスを崩す第2動作パターンとしてもよい。
本実施の形態の構成により、投球後の打者キャラクタ501の動きを見て、第2ユーザは投球に対する打者の事前予想の当否を推定することができ、よって第2ユーザが次の投球を検討する材料とすることができる。すなわち、現実世界の野球のように、投球に対する打者の反応を見て、投手が次の投球を検討するといったリアル感のあるゲーム性を実現でき、投打の駆け引きがより一層楽しくなる。
ゲームプログラムが記録された記録媒体300には、予め第1動作パターンおよび第2動作パターンの情報が格納されており、ゲーム装置100は、第1動作パターンおよび第2動作パターンの情報を記録媒体300から読み出して、打者キャラクタ501の動作を制御する。
第1動作パターンは、1つの固定パターンであってもよいし、複数の動作パターンが存在してもよい。同様に、第2動作パターンも、1つの固定パターンであってもよいし、複数の動作パターンが存在してもよい。
特に、前記一致度が所定の閾値またはレベル未満の場合に選択される第2動作パターンは、前記一致度に応じた複数の動作パターンが存在し、動作制御手段73は、前記一致度に応じて、第2動作パターンを変動させることが好ましい。例えば、一致度が低いほど(すなわち予想と現実とのずれが大きいほど)、打者キャラクタ501はより大きくバランスを崩した体勢の打撃や見送りの動作を行うようにする。すなわち、第1ユーザの予想通りであれば打者キャラクタ501の動作のバランスが崩れないが、予想から外れるほど打者キャラクタ501の動作のバランスが大きく崩れるようにする。その一例を、以下に説明する。
例えば、予想投球コースがインコースの場合において、実際の投球コースがインコースであれば一致度を「2」、真ん中コースであれば一致度を「1」、アウトコースであれば一致度を「0」とし、所定の閾値を「2」とする。この場合、実際の投球コースが真ん中コースまたはアウトコースの場合に一致度が閾値未満になり、打者キャラクタ501はバランスを崩した第2動作パターンの動きをする。ここで、実際の投球コースが真ん中コースの場合よりもアウトコースの場合の方が一致度は低い。そこで、動作制御手段73は、真ん中コースの場合は小さくバランスを崩し、アウトコースの場合は大きくバランスを崩すように、打者キャラクタ501の動作を制御する。
また、図20および上式(1)に例示するように、予想投球コースの座標と実際の投球コースの座標とのずれ量に基づいて一致度を算出する場合、一致度が所定の閾値以上の場合は、打者キャラクタ501が第2動作パターンの動作を行うが、一致度の低さに応じて、連続的にまたは段階的に、打者キャラクタ501がバランスを崩す程度を大きくする。例えば、第1ユーザのインコース予想に対してアウトコースにボールが来た場合、一致度が所定の閾値以上であれば、図13に示すように打者キャラクタ501が泳ぐような動作となるが、一致度が低ければ低いほど、バットと体がアウトコース側により大きく傾き、バランスの崩れ方が大きくなるようにする。また、この場合において、打者キャラクタ501がボールを見送る場合、一致度が所定の閾値以上であれば、図15に示すようにバランスを崩す動作となるが、一致度が低ければ低いほど、体がアウトコース側により大きく傾き、バランスの崩れ方が大きくなるようにする。
本構成により、第2ユーザは、相手の予想と現実とのずれの大きさを、打者キャラクタ501の動作から推定することができる。
なお、前述のように、第1動作パターン、第2動作パターンの何れか一方または両方とも、1動作パターンしか設けないことも可能である。その一例を挙げると、第1ユーザのインコース予想に対してアウトコースにボールが来た場合、一致度が所定の閾値以上であれば、図13に示すように打者キャラクタ501が泳ぐような第2動作パターンとなるが、その泳ぐ動作を、一致度に関わらず1種類しか設けないようにしてもよい。
次に、第1ユーザが予想投球コースを入力するためのユーザインターフェースを実現する構成について説明する。
図21の機能ブロック図に示すように、ゲーム装置100は、予想手段71、ボール移動手段72、動作制御手段73の他に、特定領域設定手段51および特定領域移動手段53をさらに備えていることが好ましい。
特定領域設定手段51は、照準カーソル503の移動が可能な特定領域505を画面上に設定する機能を有する。特定領域505の画面上の初期位置については、任意に定めることができる。本実施の形態の野球ゲームでは、図4に例示するように、特定領域設定手段51は、画面上の基準位置の一例としてのストライクゾーン504の位置に、特定領域505を初期設定する。すなわち、特定領域505の中央部(中心)の座標が、ストライクゾーン504の中央部(中心)の座標と一致するように、特定領域505を初期設定する。
例えば、ゲームプログラムがゲーム装置100のRAM5にロードされた場合、特定領域505が初期設定される画面上の基準位置のグローバル座標の情報もRAM5に格納される。特定領域設定手段51は、この基準位置のグローバル座標の情報に基づいて、特定領域505を画面上に初期設定する。
このように、特定領域505が移動される前の初期位置(デフォルトの位置)が、常に基準位置(ストライクゾーン504の位置等)に固定化されるので、ユーザにとって特定領域505の位置の認識が容易となり操作性が向上する。
特定領域505を初期設定するタイミングについては、ゲーム内容に応じて適宜定めることができる。本実施の形態では、打者キャラクタ501が打席に立ったタイミングで、特定領域設定手段51が、特定領域505をストライクゾーン504の位置に初期設定する。なお、投球コースの予想は1球毎に行うものであることから、その後も、投手キャラクタ502が投球の準備に入る1球毎に、特定領域505を基準位置であるストライクゾーン504の位置に初期設定(再設定)してもよい。例えば、ユーザが投球前に特定領域505を基準位置からアウトコース側へ移動させたとする。その後、打者キャラクタ501がその投球を見送る、打撃したがファールになる、または空振りすることにより、投手キャラクタ502が次の投球の準備に入るときに、アウトコース側へ移動されていた特定領域505が自動的に基準位置に戻される。
あるいは、打者キャラクタ501が打席に立ったタイミングで、特定領域設定手段51が特定領域505を基準位置であるストライクゾーン504の位置に初期設定した後は、当該打者キャラクタ501の打席が終了するまで、特定領域505を自動的に初期位置に戻すことはしないようにしてもよい。
また、特定領域505の画面上の大きさ、形状についても、任意に定めることができる。本実施の形態の例では、特定領域505を、ストライクゾーン504と同じ大きさ及び形状(矩形)としている。これにより、図4に例示するように、特定領域505は、基準位置においてストライクゾーン504と一致するように設定される。
基準位置に初期設定された特定領域505がストライクゾーン504と一致することにより、打者側のユーザが真ん中コースを予想する場合、特定領域505を移動させる必要はなく、それ以外のコースを予想する場合に、予想するコース側に特定領域505をシフトさせればよい。このように、ストライクゾーン504を基準にしたコース予想を実現することにより、ユーザの操作性が大幅に向上する。
次に、特定領域移動手段53について説明する。この特定領域移動手段53は、移動体の一例としてのボールの移動が開始されるまでの第1ユーザの操作に応じて、特定領域505を基準位置から移動させる機能を有する。本実施の形態では、投手キャラクタ502からボールがリリースされるまでの、第1ユーザのコントローラ19等を用いた操作に応じて、特定領域移動手段53が、画面上の特定領域505を移動させる。
特定領域505を移動させる方法としては、第1ユーザの操作に応じて特定領域505自体を移動させる方法と、第1ユーザが照準カーソル503を移動させる操作を行うことにより、照準カーソル503の位置に応じて特定領域505を自動的に移動させる方法とがある。まず、前者の方法について説明する。
特定領域移動手段53は、投手キャラクタ502が投じるボールの移動が開始されるまでの、第1ユーザによる特定領域505自体を移動させる操作に応じて、特定領域505を移動させる機能を有する。例えば、第1ユーザがコントローラ19の上下左右の方向キーを押す操作をすれば、当該操作に応じた方向に、特定領域505自体を移動させる。
特定領域505の移動の単位については、任意に定めることができる。例えば、図9または図11に示すように、ストライクゾーン504を水平方向および垂直方向にそれぞれ3等分して格子状に9分割し、その1マス単位で水平方向に(すなわち、インコースまたはアウトコースの方向に)特定領域505を移動できるようにする。この場合、ストライクゾーン504の水平方向の長さの3分の1の距離が、移動の最小単位である。これにより、例えば、図8に示すように、特定領域505が基準位置の一例としてのストライクゾーン504と一致している状態で、第1ユーザが右方向キーを1回押す操作をすれば、図9に示すように、特定領域505が右方向に1マス移動して、第1ユーザがアウトコースを予想している状態になる。このように、ストライクゾーン504の水平方向の長さの3分の1の距離を移動の最小単位とすることにより、少ない入力操作で、特定領域505の中央部を、ストライクゾーン504のアウトコースまたはインコースの中央部に、正確に一致させることができ、操作性の向上が図れる。
同様に、ストライクゾーン504を9等分した1マス単位で垂直方向に(すなわち、高目コースまたは低目コースの方向に)特定領域505を移動できるようにしてもよい。この場合、ストライクゾーン504の垂直方向の長さの3分の1の距離が、移動の最小単位である。これにより、少ない入力操作で、特定領域505の中央部を、ストライクゾーン504の高目コースまたは低目コースの中央部に、正確に一致させることができ、操作性の向上が図れる。
勿論、ストライクゾーン504を9等分した1マス単位で水平および垂直の両方向に特定領域505を移動できるようにしてもよい。この場合、インコース、アウトコース、高目、低目だけではなく、インコース高目、インコース低目、アウトコース高目、アウトコース低目の各方向に特定領域505を移動させることにより、ユーザは、特定領域505を移動させた方向の投球コースを予測できる。
図22に示すように、特定領域505に対する所定の移動可能範囲521を設定することが好ましい。例えば、特定領域505は、特定領域505がストライクゾーン504と一致している状態から、上下左右にそれぞれ1マス以上は移動できないようにする。このように特定領域505の移動を所定の移動可能範囲521に制限している理由は、次のとおりである。すなわち、照準カーソル503は、少なくとも特定領域505内を移動可能である。打者キャラクタ501はバッターボックス内で打撃する必要があるところ、特定領域505を制限なくどこにでも移動できるものとすると、打者キャラクタ501の打撃可能な範囲が不自然に広がり過ぎることになる。よって、これを回避するために、特定領域505に対して移動可能範囲521を設定し、その移動を妥当な範囲で制限する。
特定領域505の移動の単位については、上記の例に限定されるものではない。ストライクゾーン504を水平方向および垂直方向にそれぞれn等分(nは2以上の自然数)して格子状に複数分割し、その1マス単位で水平方向および/または垂直方向に特定領域505を移動できるようにすることができる。また、特定領域505の移動可能範囲521についても任意に定めることができる。
あるいは、特定領域505の移動可能範囲内で、1ドット単位で任意の位置に、特定領域505を移動できるようにしてもよい。
本構成では、投手キャラクタ502が投じるボールの移動が開始されるまでに、第1ユーザは、特定領域505自体を移動させる操作をして、コース予想に関する先行入力を行うことができる。この場合、画面上の特定領域505の位置が、ユーザが予想したコースの位置として明確化される。
ところで、特定領域505は、投手キャラクタ502からボールがリリースされるまでは可視化されて、第1ユーザが画面上で視認可能であるが、リリース後は透明化して不可視としてもよい。あるいは、リリース後は特定領域505の透明度を高めて、特定領域505の視認性をリリース前よりも低下させてもよい。なお、特定領域505が画面上で不可視となっても、特定領域505自体は存在するので、特定領域505内の照準カーソル503の大きさの設定は維持される。
なお、ストライクゾーン504については、常時可視化、常時不可視化、投手キャラクタ502が投球動作に入った後のみ不可視、投手キャラクタ502からボールがリリースされた後のみ不可視化等、様々な態様が考えられる。
そして、本実施の形態の予想手段71は、前記特定領域505の位置に基づいて、移動パラメータとしての移動コースに対する予想情報を取得する機能を有する。例えば、ストライクゾーン504と一致するように初期設定された特定領域505を、図9または図11に例示するように、アウトコース側またはインコース側に移動させる操作が行われた場合、予想手段71は、移動後の特定領域505の位置に基づいて、予想情報として「アウトコース」または「インコース」を取得する。あるいは、予想手段71は、例えば特定領域505の中央部の座標の情報を、投球コースの予想情報として取得する。
本構成によれば、基準位置の一例としてのストライクゾーン504の位置に、移動コースの一例としての投球コースを予想するための特定領域505(予想用として設けられた疑似的なストライクゾーン)が設定される。そして、第1ユーザが特定領域505を移動させる操作を行うことにより、投球コースの予想が可能となる。例えば、第1ユーザが特定領域505をアウトコース側にシフトさせれば、アウトコースの予想入力ができる。
このように、本構成によれば、基準位置に設けられた特定領域505を移動させるという、直観的で分かり易い予想入力が可能なユーザインターフェースを実現できる。
また、本実施の形態のゲームは、移動体に照準カーソル503を重ねて作用を与えるゲームである。このようなゲームを実行するゲーム装置100は、図24に示すように、図21に示した各手段の他に、領域内カーソル設定手段52およびカーソル移動手段54をさらに備えていることが好ましい。
前記領域内カーソル設定手段52は、特定領域505内の位置に応じて、照準カーソル503の大きさが変化するように、特定領域505内における照準カーソル503の大きさを設定する機能を有する。すなわち、特定領域505の内部の位置と照準カーソル503の大きさとの関係が予め定められている。
特定領域505の内部の位置の情報としては、例えば、特定領域505の中央部(中心点)等を原点としたローカル座標を適用できる。
あるいは、特定領域505の内部の位置の情報として、ゲーム画面全体のグローバル座標(例えば、画面の左上角を基準とした座標)を適用してもよい。この場合、特定領域505が初期設定される画面上の基準位置(本実施の形態ではストライクゾーン504の位置)におけるグローバル座標を適用する。
例えば、特定領域505の内部の位置と照準カーソル503の大きさとの関係を示すテーブルの情報が、ゲームプログラムが記録された記録媒体300に格納されており、ゲームの実行時に前記テーブルの情報がRAM5にロードされる。この場合、領域内カーソル設定手段52は、前記テーブルに基づいて、特定領域505内における照準カーソル503の大きさを設定する。
特定領域505内において、照準カーソル503の大きさが変化するが、どの位置の照準カーソル503も、基本的に相似の関係とすることができる。従って、例えば図6に示すように、照準カーソル503の形状を円形とした場合、照準カーソル503の大きさの情報として、半径または直径の情報を適用できる。
なお、照準カーソル503の形状は円形に限定されるものではなく、任意の形状とすることができる。野球ゲームではバットオブジェクト520でボールを打ち返すことから、図23に例示するように、バットオブジェクト520の形状を考慮して、照準カーソル503を略楕円形状としてもよい。この場合も、特定領域505内の照準カーソル503は、位置によって大きさが変化しても相似形とすることができる。よって、照準カーソル503の大きさの情報として、例えば楕円の長軸または短軸の情報を適用できる。
特定領域移動手段53によって特定領域505が移動しても、基本的に、特定領域505内の設定(領域内の位置に応じて照準カーソル503の大きさが変化する設定)は維持される。すなわち、特定領域505の画面上のグローバル座標が変化しても、特定領域505内のローカル座標と照準カーソル503の大きさとの相対的関係に変化は生じない。
特定領域505の移動によって、特定領域505の画面上の位置(グローバル座標)が変化した場合、特定領域505内のローカル座標は、既知の座標変換アルゴリズムを適用して、移動後のグローバル座標へ容易に変換できる。
ここで、領域内カーソル設定手段52は、図6に示すように、特定領域505の中央部から離れるほど照準カーソル503が小さくなるように、特定領域505内における照準カーソル503の大きさを設定することが好ましい。この場合も、領域内カーソル設定手段52は、前記テーブルに基づいて、特定領域505内における照準カーソル503の大きさを設定することができる。あるいは、照準カーソル503の大きさを、特定領域505の中央部からの距離の関数として数式化し、当該関数に基づいて特定領域505内における照準カーソル503の大きさを設定してもよい。
特定領域505内の設定を、特定領域505の中央部から離れるほど照準カーソル503が小さくなる設定とした場合、特定領域505の中央部において、照準カーソルが最も大きくなり、打撃がし易くなる。よって、第1ユーザは、特定領域505の中央部を基準とし、当該中央部が予想コースに位置するように特定領域505を移動させれば、的確にコース予想をゲーム上に反映させることができ、第1ユーザの操作性が向上する。
また、この場合、特定領域505内をボールが通過する場合であっても、特定領域505内におけるボールの通過コースと特定領域505の中央部との離間距離に応じて打撃の難易度が変化する。前記離間距離は予想の的確度を表わし、前記離間距離が小さいほど、予想が的確であり打撃がし易くなる一方、前記離間距離が大きいほど照準カーソル503は小さくなって打撃が困難になる。このように、予想の的確度を打撃の難易度として反映させることができる。
また、領域内カーソル設定手段52は、第1キャラクタの一例としての打者キャラクタ501のパラメータに基づいて、特定領域505内における照準カーソル503の大きさの設定を調整することが好ましい。
ここで、打者キャラクタ501のパラメータの一例としては、打撃の得意コースまたは不得意コースに関するパラメータが挙げられる。野球ゲームでは、オーダーに従って1番から9番の選手キャラクタが打者キャラクタ501として順番に打席に立つが、各選手キャラクタには、例えばインコースは得意であるがアウトインコースは苦手、高目コースは得意であるが低目コースは苦手等の得意コースおよび/または不得意コースのパラメータが設定されている。選手キャラクタ毎に、得意コースまたは不得意コースに関するパラメータは異なっている。
図25は、得意コースとしてインコース高目、不得意コースとしてアウトコース低目が設定されている右打ちの選手キャラクタAが、打者キャラクタ501として打席に立った場合の、特定領域505内の設定の一例を示している。この場合、図25に示すように、領域内カーソル設定手段52は、特定領域505内における照準カーソル503の大きさ分布の設定において、インコース高目領域522(図中のハッチング領域)のカーソルサイズを通常より大きくする一方、アウトコース低目領域523(図中のハッチング領域)のカーソルサイズを通常より小さくする調整を行う。図25において、インコース高目領域522およびアウトコース低目領域523以外の領域の設定は、図6と同様である。
このように、打者キャラクタ501の得意コースについては、特定領域505内の照準カーソル503の大きさを通常より大きくし、不得意コースについては特定領域505内の照準カーソル503の大きさを通常より小さくする。
また、領域内カーソル設定手段52は、打者キャラクタ501のパラメータの一例としてのミート能力に応じて、照準カーソル503の大きさを調整してもよい。ミート能力とはバットにボールを当てる能力の高さであり、打者キャラクタ501のミート能力が大きいほど照準カーソル503が大きくなるように調整する。この場合の照準カーソル503の大きさ調整は、特定領域505内の全体に対して行う。
本構成により、打者キャラクタ501のパラメータを、特定領域505内における打撃の操作難易度として的確に反映させることができ、遊戯性の向上が図られる。
次に、カーソル移動手段54について説明する。このカーソル移動手段54は、照準カーソルを、第1ユーザの操作に応じて移動させる機能を有する。例えば、第1ユーザがコントローラ19のアナログスティック、方向キー等を操作すれば、カーソル移動手段54が、当該操作に応じて照準カーソル503の画面上の位置を変化させる。第1ユーザによる照準カーソル503の移動操作は、投手キャラクタ502からボールがリリースされた後は勿論のこと、リリース前でも可能である。
カーソル移動手段54によって照準カーソル503が移動されることにより、特定領域505内の位置に応じて、照準カーソル503の大きさが変化する。前述のように、疑似的なストライクゾーンである特定領域505内の中央部が最も照準カーソル503が大きく、中央部から離れるほど照準カーソル503が小さくなるような設定にすることができる。第1ユーザはこの特定領域505を移動させることによりコース予想を行なうので、コース予想に応じて、照準カーソル503が大きくなる(即ち、打撃し易い)領域、照準カーソルが小さくなる(即ち、打撃し難い)領域が変動することになる。例えば、第1ユーザが特定領域505をアウトコース側にシフトすれば、本来のストライクゾーンの中央部にあった特定領域505の中央部がアウトコース側にシフトし、アウトコース領域において照準カーソル503が大きくなる一方、本来のストライクゾーンの中央部において照準カーソル503が小さくなる。
本構成によれば、第1ユーザによるコース予想の当否を、照準カーソル503の大きさ、即ち、打撃操作の難易度として反映させることができるので、ゲーム性を高めることができる。
前述のように、照準カーソル503は、少なくとも特定領域505内を移動可能である。照準カーソル503は、特定領域505の外部にも移動できるようにしてもよいし、特定領域505の外部には移動できないようにしてもよい。
ところで、現実世界でも、ストライクゾーンの球を打つよりもストライクゾーンから外れたボール球を打つ方が難しいが、ストライクゾーンから外れたボール球を巧く捉えてヒットにすることは可能である。これをゲームにリアル反映させるべく、図26の機能ブロック図に示すように、ゲーム装置100は、領域外カーソル設定手段58をさらに備えている構成とすることができる。
領域外カーソル設定手段58は、特定領域505外における照準カーソル503の大きさを、特定領域505内における特定領域505外との境界部に位置する照準カーソル503の大きさよりも小さくなるように設定する機能を有する。
本構成により、特定領域505外にも照準カーソル503を移動可能とする一方で、特定領域505内よりも照準カーソル503を小さくして打撃の難易度を高くすることにより、リアル感を高めることができる。
なお、照準カーソル503を特定領域505の外部にも移動できるようにする場合は、打撃可能な範囲が不自然に広がり過ぎることを回避するため、照準カーソル503を移動できる範囲に制限を設けることが好ましい。例えば、図22に例示する特定領域505の移動可能範囲521を、照準カーソル503の移動可能範囲とすることができる。
以上のように、本実施の形態のゲーム装置100は、打者キャラクタ501を操作する第1ユーザが、第2ユーザによって操作される投手キャラクタ502が投じたボールに照準カーソル503を重ねて打撃する野球ゲームを制御する。このゲーム装置100で第1ユーザがコース予想入力を行う好ましい構成は、照準カーソル503を、第1ユーザの操作に応じて移動させるカーソル移動手段54と、ストライクゾーン504に照準カーソル503の移動が可能な特定領域505を設定する特定領域設定手段51と、特定領域505の中央部から離れるほど照準カーソル503が小さくなるように、特定領域505内における照準カーソル503の大きさを設定する領域内カーソル設定手段52と、投手キャラクタ502がボールを投じるまでのユーザの操作に応じて、特定領域505をストライクゾーン504から移動させる特定領域移動手段53と、を備えている。
ところで、野球ゲームでは、イニング毎に攻守を変えてゲームが進行するので、ユーザは打者の立場でゲーム操作をすることも投手の立場でゲーム操作をすることもできる。ユーザは、打者の立場でゲーム操作をする場合に「第1ユーザ」、投手の立場でゲーム操作をする場合に「第2ユーザ」となる。そこで、図27の機能ブロック図に示すように、ゲーム装置100は、基本的に、打者キャラクタ501による打撃を制御するための打撃制御手段50および投手キャラクタ502による投球を制御するための投球制御手段60を備えている。
前述の予想手段71、動作制御手段73、特定領域設定手段51、領域内カーソル設定手段52、特定領域移動手段53およびカーソル移動手段54は、打撃制御手段50の機能に含めることができる。また、打撃制御手段50は、打撃結果決定手段55をさらに備えている。
打撃結果決定手段55は、前述のように、スイングボタンが押されたタイミング、照準カーソル503と投球されたボールとの重なりの程度、打者キャラクタ501の能力パラメータ等に基づいて、打撃結果を決定する機能を有する。
前述のボール移動手段72は、投球制御手段60の機能に含めることができる。また、ボール移動手段72は、投球パラメータ決定部72aと、ボール移動部72bとを含む構成とすることができる。
投球パラメータ決定部72aは、投手キャラクタ502を操作する第2ユーザの操作に基づいて、投球パラメータを決定する機能を有する。前述のように、第2ユーザは、コントローラ19等を操作して、投球コース、球種等を選択できる。投球パラメータ決定部72aは、第2ユーザによる投球コース、球種等の選択操作に基づいて、投球コース、球種(軌道の変化、ボールの移動速度)等のボールの移動に関する投球パラメータ(移動パラメータの一例)を決定する。
ボール移動部72bは、投球パラメータ決定部72aによって決定された投球パラメータに基づいて、投手キャラクタ502からリリースされたボールの軌道を算出し、ボールをホームベース方向へと移動させる機能を有する。
2人のユーザが、それぞれ自分のゲーム装置100を操作して通信対戦する場合、何れか一方のゲーム装置100がサーバ、他方がクライアントとして機能するようにしてもよい。あるいは、通信対戦する両ゲーム装置100が、機能分散を図りならが協働するようにしてもよい。
例えば、投手側の第2ユーザのゲーム装置100の投球パラメータ決定部72aによって決定された投球パラメータは、打者側の第1ユーザのゲーム装置100に送信される。従って、第1ユーザのゲーム装置100のボール移動部72bは、第2ユーザのゲーム装置100から受信した投球パラメータに基づいて、投手キャラクタ502からリリースされたボールを移動させる。
また、例えば、第1ユーザのゲーム装置100の動作制御手段73によって決定された打者キャラクタ501の動作情報は、第2ユーザのゲーム装置100に送信される。従って、第2ユーザのゲーム装置100の動作制御手段73は、この動作情報に基づいて打者キャラクタ501を動作させる。
ここで、本実施の形態のゲーム装置100の動作の一例を、図28ないし図31のフローチャートを参照しながら、以下に説明する。図28は、投手キャラクタ502を制御する処理の一例を示すフローチャートである。図29ないし図31は、打者キャラクタ501を制御する処理の一例を示すフローチャートである。
先ず、投手キャラクタ502が1人の打者キャラクタ501に対して投球する場合の処理の一例について説明する。図28に示すように、第2ユーザは、投球開始前に、球種決定操作(S1)および投球コース決定操作(S2)を行う。例えば、第2ユーザは、コントローラ19を操作して、図5に示す球種選択用アイコン511で球種を選択すると共に、コース指定カーソル512を任意の位置に移動させて投球コースを指定する。
ゲーム装置100は、上記の球種および投球コースを決定するための操作に基づいて、ボールの移動パラメータ(球種、投球コース)を決定する(S3)。その後、第2ユーザがコントローラ19の投球開始ボタンを押すことにより、又は自動的に、ゲーム装置100は、投手キャラクタ502にボールを送出させる(S4)。このとき、第1ユーザのゲーム装置100の画面には、図4に示すように打者側から投手側を見た画像が表示され、第2ユーザのゲーム装置100の画面には、図5に示すように投手側から打者側を見た、図4とは視点の異なる画像が表示されるが、両ゲーム装置100間で通信しながら、両画面とも、略同じタイミングで投手キャラクタ502がボールを送出するようにする。
その後、第1ユーザおよび第2ユーザのゲーム装置100は、投手キャラクタ502から送出されたボールを、前記S3で決定された移動パラメータに基づいて、ホームベース方向(打者キャラクタ501の方向)へと移動させる(S5)。これにより、投手キャラクタ502による1球の投球が完了する。
投手キャラクタ502が、現在打席に立っている打者キャラクタ501に対する投球を継続する場合は(S6でYES)、ステップS1に戻り、ステップS1〜S5が繰り返される。
次に、1人の打者キャラクタ501を制御する処理の一例について説明する。図29に示すように、ゲーム装置100は、打者キャラクタ501が打席に立った場合(S11)、特定領域505を画面に設定する(S12)。本実施の形態では、図4に示すように、ゲーム装置100は、画面上の基準位置としてのストライクゾーン504に、特定領域505を初期設定する。この特定領域505は、画面上で可視化される。
そして、ゲーム装置100は、特定領域505内の位置と照準カーソル503の大きさとの相対関係を設定する(S13)。すなわち、ゲーム装置100は、特定領域505内の位置に応じて照準カーソル503の大きさが変化するように、特定領域505内における照準カーソル503の大きさを設定する。本実施の形態では、図6に例示するように、ゲーム装置100は、特定領域505の中央部から離れるほど照準カーソル503が小さくなるように、特定領域505内における照準カーソル503の大きさを設定する。また、図25に例示するように、打者キャラクタ501の得意/不得意に関するパラメータ等に基づいて、特定領域505内における照準カーソル503の大きさの設定を調整してもよい。
ゲーム装置100の領域内カーソル設定手段52は、特定領域505内における照準カーソル503の大きさの設定情報を、記憶装置(例えばRAM5)に記憶する。ここで記憶される設定情報は、特定領域505の内部の位置と照準カーソル503の大きさとの関係を示すテーブルの情報とすることができる。例えば、ゲーム装置100は、特定領域505内のローカル座標(またはグローバル座標でもよい)と照準カーソル503の大きさとの関係を示すテーブルの情報をRAM5に記憶する。
また、画面に特定領域505が設定された場合、ゲーム装置100は、特定領域505の中央部、すなわちストライクゾーン504の中央部に、照準カーソル503を初期設定することが好ましい。
その後、第1ユーザは、投手キャラクタ502からボールがリリースされるまでに、投球コースを予想し、必要に応じて特定領域505を移動させる操作が可能である。例えば、第1ユーザがアウトコースの投球を予想した場合、図9に示すように、特定領域505の中央部がストライクゾーン504のアウトコース領域に位置するように、特定領域505を移動させればよい。これによって、アウトコースにおいて照準カーソル503の大きさが最大となってボールを捉え易くなり、アウトコースを意識した打撃操作が可能となる。一方、図10に示すように、特定領域505をアウトコース側へシフトさせたことにより、ストライクゾーン504の真ん中コースにおいて、照準カーソル503が図4の場合よりも小さくなってボールを捉えにくくなり、打撃操作の難易度が高まる。
また、例えば、第1ユーザがインコースの投球を予想した場合、図11に示すように、特定領域505の中央部がストライクゾーン504のインコース領域に位置するように、特定領域505を移動させればよい。これによって、インコースにおいて照準カーソル503の大きさが最大となってボールを捉え易くなり、インコースを意識した打撃操作が可能となる。
なお、第1ユーザがストライクゾーン504の真ん中のコースの投球を予想した場合、図4に示すように、特定領域505の中央部は、初期設定の状態でストライクゾーン504の中央部と一致しているため、特定領域505を移動させる必要はない。この場合、真ん中のコースにおいて照準カーソル503の大きさが最大となってボールを捉え易くなり、真ん中のコースを意識した打撃操作が可能となる。
第1ユーザによって特定領域505の移動操作が行われた場合(S14でYES)、ゲーム装置100は、特定領域505内の設定(領域内の位置に応じて照準カーソル503の大きさが変化する設定)を維持したまま、画面上の特定領域505を移動させる(S15)。
このように、画面上の特定領域505が移動された場合において、特定領域505の移動後の照準カーソル503の位置については、以下のようなバリエーションが考えられる。
特定領域505が移動された場合、移動後の特定領域505の中央部に、照準カーソル503を自動的に再設定してもよい。
あるいは、特定領域505が移動された場合、特定領域505と、特定領域505内に存在する照準カーソル503との相対的な位置関係を維持したまま、特定領域505の移動に伴って、照準カーソル503も自動的に移動させてもよい。すなわち、特定領域505の移動前と移動後とで、特定領域505内における照準カーソル503のローカル座標は変化しない。
あるいは、特定領域505が移動されても、照準カーソル503の画面上の絶対位置(グローバル座標)は変化しないようにしてもよい。
前記ステップS15の実行後、または前記ステップS14において特定領域505の移動操作が行われない場合、ステップS16に移行する。
上記のように第1ユーザの操作によって特定領域505が移動された場合、ゲーム装置100は、移動後の特定領域505の位置に基づいて、投球コースに関する予想情報を取得する(S16)。ゲーム装置100は、例えば、第1ユーザが特定領域505をアウトコース領域に移動させた場合は予想情報として「アウトコース」、インコース領域に移動させた場合は予想情報として「インコース」を取得する。あるいは、第1ユーザが移動させた特定領域505の中央部の座標の情報を、投球コースの予想情報として取得してもよい。
特定領域505の移動は、投手キャラクタ502がボールを送出するまで可能であり、特定領域505の移動によりその位置が変化すれば、投球コースの予想情報は更新される。あるいは、投手キャラクタ502からボールが送出される前は、予想情報の取得を行わずに、ボールが送出された時点で、そのときの特定領域505の位置に基づいて、投球コースの予想情報を取得してもよい。
なお、投手キャラクタ502がボールを送出するまでに、第1ユーザが、基準位置であるストライクゾーン504の位置から特定領域505を移動させなかった場合、第1ユーザが真ん中コースを予想したものとしてもよいし、後述するように第1ユーザが投球コースを予想しなかったものとしてもよい。第1ユーザが真ん中コースを予想したものとする場合、ゲーム装置100は、予想情報として「真ん中コース」または特定領域505の中央部の座標の情報を取得する。
また、第1ユーザは、照準カーソル503を移動させることができ、ゲーム装置100は第1ユーザの操作に基づいてカーソル移動処理を実行する(S17)。カーソル移動処理の一例を図31のフローチャートに基づいて説明する。
ユーザによって照準カーソル503の移動操作が行われた場合(S41でYES)、ゲーム装置100は、画面上の照準カーソル503を移動させる(S42)。この照準カーソル503の移動によって、特定領域505内の照準カーソル503の位置が変化するので、ゲーム装置100は、照準カーソル503の移動に伴って照準カーソル503の大きさを変更する(S43)。例えば、ゲーム装置100は、RAM5に記憶されている、特定領域505内のローカル座標と照準カーソル503の大きさとの関係を示すテーブルの情報に基づいて、特定領域505内の照準カーソル503の移動に伴って照準カーソル503の大きさを変更する。
前記のステップS14〜S17は、投手キャラクタ502からボールが送出されるまで繰り返される。投手キャラクタ502からボールが送出された場合(S18でYES)、ゲーム装置100は、投球されたボールを画面上で移動させる表示制御を実行する(S19)。このステップS19は、前述した図28のステップS5に相当する。
ここで、投手キャラクタ502からボールが送出された後は、特定領域505を不可視にすることが好ましい。これは、次の理由による。すなわち、投手キャラクタ502からボールが送出された後も特定領域505が可視化されたままでは、投球されたボールや照準カーソル503の視認性が悪くなる。そこで、これを回避して第1ユーザによる操作性の向上を図るため、ボールが送出された後は、特定領域505を不可視にする。
また、同様の理由で、投手キャラクタ502からボールが送出された後は、ストライクゾーン504の枠表示についても不可視にすることが好ましい。なお、投手キャラクタ502が足を上げる等して投球動作に入ったときに、ストライクゾーン504の枠表示を不可視にしてもよい。
なお、上記では、投手キャラクタ502からボールがリリースされるまで、すなわち移動体としてのボールの移動が開始されるまで、第1ユーザによる特定領域505の移動操作を可能とする例を示したが、次のようにすることもできる。例えば、投手キャラクタ502が投球動作に入るまでは、第1ユーザによる特定領域505の移動操作は可能であるが、投球動作が開始された後は、ボールのリリース前であっても、特定領域505の移動操作を禁止するようにしてもよい。このように、移動体(ボール等)の移動が開始されるまでの所定のタイミングまで、第1ユーザによる特定領域505の移動操作を可能とし、それ以降は当該移動操作を禁止するようにしてもよい。
投手キャラクタ502による投球動作が開始された後に、特定領域505の移動操作を禁止する場合、投球動作が開始された時点で、特定領域505を不可視にすることが好ましい。特定領域505の移動操作が禁止された時点で、特定領域505を不可視にすることにより、特定領域505が移動できないことをユーザに明確化できる。
また、ゲーム装置100は、投球後の打者キャラクタ501の動作を制御するために、ステップS16で取得した投球コースの予想情報と、図28のステップS3で決定した移動パラメータの投球コースとの一致の程度を示す一致度を取得する(S20)。前述のように、一致度は、2段階または3段階以上の値またはレベルとしてもよいし、図20および上式(1)に例示するように、予想投球コースの座標と実際の投球コースの座標とのずれ量に基づいて算出してもよい。
投手キャラクタ502からボールがリリースされた後において、第1ユーザは、移動するボールに重なるように照準カーソル503を移動させる操作を行う。ユーザによって照準カーソル503の移動操作が行われた場合、ゲーム装置100は、図31に例示したカーソル移動処理を実行する(S21)。前述のように、ゲーム装置100は、照準カーソル503の移動に伴って照準カーソル503の大きさを変更する。
例えば、第1ユーザがアウトコースの投球を予想し、図9に示すように、特定領域505をアウトコースに移動させる先行入力を行っていた場合を想定する。第1ユーザの予想が的中し、実際にアウトコースにボールが来た場合、アウトコースにおいて照準カーソル503の大きさが最大となってボールを捉え易くなる。一方、第1ユーザの予想が外れて、例えば、真ん中のコースにボールが来た場合、照準カーソル503を真ん中のコースに移動させれば、照準カーソル503が小さくなり、ボールを捉え難くなる。このように、第1ユーザがコース予想を行って先行入力(特定領域505の移動操作)をした場合、その予想が当たれば打撃し易くなるというメリットを生じる一方、予想が外れれば本来打ち易いはずの真ん中コースが打撃し難くなるというデメリットも生じる。
ステップS21の実行後、第1ユーザがスイングボタンを押す打撃操作を未だ行っていなければ(S22でNO)、投手キャラクタ502からボールが送出された後に所定のタイミングが経過したか否かが判定される(S23)。このステップS23において所定のタイミングが経過していなければ(S23でNO)、ステップS21に戻り、ステップS21〜S23が繰り返される。
所定のタイミングまでに第1ユーザが打撃操作を行った場合は(S22でYES)、ステップS24に移行し、ゲーム装置100が打者キャラクタ501の打撃動作を制御する。ステップS24では、ゲーム装置100が、ステップS20で取得した一致度が閾値以上か否かを判断する。一致度が閾値以上の場合とは、第1ユーザの予想が当たった(または予想のずれが少なかった)場合である。一方、一致度が閾値未満の場合とは、第1ユーザの予想が外れた(または予想のずれが大きかった)場合である。
ここで、一致度が閾値以上の場合には(S24でYES)、ゲーム装置100は、打者キャラクタ501が第1動作パターンでバットスイングするように制御する(S25)。この第1動作パターンでは、打者キャラクタ501が、バランスを崩すことのないデフォルトの打撃動作を行う(図14参照)。
一方、一致度が閾値未満の場合には(S24でNO)、ゲーム装置100は、打者キャラクタ501が第2動作パターンでバットスイングするように制御する(S26)。この第2動作パターンでは、打者キャラクタ501がバランスの崩れた体勢で打撃動作を行う。例えば、図13に示すように、アウトコースのボールに対して、打者キャラクタ501が泳ぐような打撃姿勢になってバランスを崩す。
その後、ゲーム装置100は、スイングボタンが押されたタイミング、照準カーソル503と投球されたボールとの重なりの程度、打者キャラクタ501の能力パラメータ等に基づいて、打撃結果を決定し(S27)、その結果を画面に表示する(S28)。例えば、打撃に成功した場合、ゲーム装置100は、スイングボタンが押されたタイミング、照準カーソル503の中心とボールの中心とのずれ量等に基づいて、打撃されたボールの軌道を算出し、ボール(打球)を移動させる。
また、投手キャラクタ502からボールが送出された後、第1ユーザが打撃操作を行うことなく所定のタイミングを経過した場合は(S23でYES)、ステップS29に移行し、ゲーム装置100が打者キャラクタ501のボール見送り動作を制御する。ステップS29では、ゲーム装置100が、ステップS20で取得した一致度が閾値以上か否かを判断する。
ここで、一致度が閾値以上の場合には(S29でYES)、ゲーム装置100は、打者キャラクタ501が第1動作パターンでボールを見送るように制御する(S30)。この第1動作パターンでは、打者キャラクタ501が、バランスを崩すことのないデフォルトのボール見送り動作を行う(図16、図18参照)。
一方、一致度が閾値未満の場合には(S29でNO)、ゲーム装置100は、打者キャラクタ501が第2動作パターンでボールを見送るように制御する(S31)。この第2動作パターンでは、打者キャラクタ501がバランスの崩れた体勢でボール見送り動作を行う。例えば図15に示すように、アウトコースのボールに対して、打者キャラクタ501がスイング動作に入り、途中でスイングを止めて上体がアウトコース側に突っ込んだ姿勢でバランスを崩してボールを見送る。また、例えば図17に示すように、インコースのボールに対して、打者キャラクタ501が腰を引いて(又はのけぞって)、バランスを崩したボール見送り動作をとる。
その後、ゲーム装置100は、打者キャラクタ501がボールを見送ったことによる結果を画面に表示する(S28)。図9等の画面では、ボールカウントやアウトカウント等の表示を省略しているが、例えば、ボールがストライクゾーン504を通過した場合には「ストライク」、ストライクゾーン504を外れた場合には「ボール」とし、ボールカウントの表示を更新する。
ステップS28の後、ゲーム装置100は、現在打席に立っている打者キャラクタ501に対する投球を継続するか否かを判断する(S32)。例えば、打者キャラクタ501が打撃したがファールになった場合、空振りしたが三振でない場合、ボールを見送ったが三振または四球でない場合は、同じ打者キャラクタ501に対する投球が継続されるので(S32でYES)、これらの場合は図29のステップS12に戻る。すなわち、ステップS12において、ゲーム装置100は、投手キャラクタ502が次の投球の準備に入るときに、特定領域505を基準位置であるストライクゾーン504の位置に再設定する。
一方、打者キャラクタ501の打席の結果(ヒットまたはアウト)が確定し、当該打者キャラクタ501に対する投球が継続されない場合は(S32でNO)、処理を終了する。新たな打者キャラクタ501が打席に立つ場合は、再度、図29および図30の処理が実行される。
第1ユーザおよび第2ユーザが通信対戦する場合、第1ユーザおよび第2ユーザの両ゲーム装置100間で通信しながら、ゲーム画面の表示制御が行われる。従って、前述の打者キャラクタ501の打撃またはボール見送り動作は、第1ユーザおよび第2ユーザの両ゲーム装置100のそれぞれの画面に表示される。
第1ユーザにとっては、自分の投球コースの予想が当たっていた場合(前記一致度が閾値以上の場合)には、打者キャラクタ501がバランスを崩さず、その予想が外れた場合(前記一致度が閾値未満の場合)に打者キャラクタ501がバランスを崩して打撃またはボール見送り動作を行うので、従来ゲームにはないリアル感を得ることができる。
すなわち、投手側の第2ユーザだけでなく、打者側の第1ユーザとしても、予想が外れた場合における打者キャラクタ501の姿勢の崩れを画面上で確認できるので、従来ゲームにないリアルさ、面白さを実現できる。また、第1ユーザは、自身の予想が外れたということを、打者キャラクタ501の姿勢の崩れによって改めて明確に認識できるので、これが投手攻略のための次の投球予想をどうするかといったフィードバックに繋がる。また、第1ユーザは、打者キャラクタ501の姿勢の崩れが相手投手(第2ユーザ)にも確認されているという認識をもつことになるので、より投打の駆け引きを考慮することとなり、ゲームの興趣性が高まる。
また、第2ユーザにとっては、自分の操作に基づく投球コースに対して、打者キャラクタ501がバランスを崩した打撃またはボール見送り動作を行った場合には、対戦相手の投球コースの読みをうまく外すことができたものと考えることができる。すなわち、第2ユーザは、投球後の打者キャラクタ501の動きを見て、次の投球を検討することができる。この第2ユーザによる投球検討の具体例を、以下に示す。
具体例1…走者が3塁にいる状況において、インコースに投球したところ、打者キャラクタ501(右打ち)が腰を引くような動作をした。この場合、第2ユーザは、相手打者(第1ユーザ)は走者をタッチアップさせるために流し打ちのフライを狙い、アウトコースを待っている(予想していた)と考えた。また、第2ユーザは、カウントが早い(投手が打者に対して投じた球数が少ない)ので、相手打者は再度、タッチアップを狙う、即ち、アウトコースを待つと考え、その逆をつき、もう一度、インコースに投げることにした。
具体例2…走者が1塁にいる状況において、アウトコースに投球したところ、打者キャラクタ501(右打ち)は泳ぐような姿勢で見送りをした。そのため、第2ユーザは、相手打者(第1ユーザ)が3塁方向へのヒットを狙い、引っ張る打撃を行うために、インコースを待っている(予想していた)と考えた。また、その前の投球もアウトコースであったが、打者キャラクタ501は同様の動きをしていたので、第2ユーザは、相手打者がしぶとくインコースを待っていると考えた。また、ボールカウントはストライクが先行しているので、第2ユーザは、相手打者の打ち損じを狙い、もう一度、アウトコースに投げることにした。
打者側のコース予想は、その打者の癖や考え方によって様々であるため、上記のような投手側の推測が常に正しいわけではないが、打者キャラクタ501の打撃姿勢の崩れといった情報があることによって、投手側は打者に対する攻略法を色々な角度から検討できることになるので、深いゲーム性を実現できる。
つまり、現実世界の野球のように、投球に対する打者の反応を見て、投手が次の投球を検討するといったリアル感のあるゲーム性を実現できる。これにより、ゲーム上でリアル感のある相手との駆け引きが実現できる。
また、特定領域505内の位置に応じて照準カーソル503の大きさが変化するように、特定領域505内における照準カーソル503の大きさを設定する構成を採用することにより、投手キャラクタ502が投球したボールの移動コースに応じた操作難易度をリアルに設定できる。そして、特定領域505における照準カーソル503の大きさの相対関係を維持したままで、第1ユーザが特定領域505を移動させてコース予想を可能とする構成を採用することにより、ゲーム上でコース予想をリアルに反映できる。
すなわち、投手キャラクタ502を操作する第2ユーザ(またはCPU対戦時のCPU1)は、本来は打者が打ち難いはずのストライクゾーンの端部のコースを狙った投球をすることができる。これに対して、打者キャラクタ501を操作する第1ユーザは、投球コースを予想し、特定領域505を予想した投球コースの方へ移動させることにより、その予想が的中すれば、打者にとって本来不利なはずのストライクゾーン504の端部の投球コースを打ち易くできる。一方、投球コースの予想が外れれば、通常よりも打撃操作の難易度が高まって不利となる。これにより、第1ユーザのコース予想をリアルに反映することができる興趣性の高いゲームを実現できる。
本実施の形態の構成により、投手側の第2ユーザは、前述のように投球後の打者キャラクタ501の動きを見て、次の投球を検討しながら打者に打たれないように投球コースを考えながらピッチングを組み立てる一方、打者側の第1ユーザは、投球コースを読みながら投手を打ち崩そうとする。これにより、現実世界での投打の駆け引きを、ゲーム上に緻密でリアルに反映できる。
なお、図29および図30に例示したフローチャートでは、基本的に、第1ユーザが投球コースを予想した場合の処理を示しているが、投球コースを予想しないことも可能としてもよい。例えば、投手キャラクタ502がボールを送出するまでに、第1ユーザが、基準位置であるストライクゾーン504の位置から特定領域505を移動させなかった場合には投球コースの予想が行われず、特定領域505を移動させた場合のみ投球コースの予想が行われたものとしてもよい。第1ユーザが投球コースを予想しなかった場合、ゲーム装置100は、予想の一致度に基づいて打者キャラクタ501の動作を異ならせる制御は行わず、打者キャラクタ501に対してデフォルトの打撃またはボール見送り動作をさせる。
また、第1ユーザがゲーム操作上、投球コースを予想しなかった場合(特定領域505を移動させなかった場合)には、当然ながら、上記の通り、予想が外れた場合における打者キャラクタの打撃姿勢の崩れは表示されない。従って、第1ユーザが第2ユーザに対して、例えば、ある投球時において自分の予想を知られたくないと考える場合には、あえて特定領域505を移動させないという方法もとり得る。従って、第2ユーザとしては、第1ユーザの打撃時あるいは見送り時の動作が安定していたからといって、必ずしも第1ユーザの事前予想が当たっていたとは限らず、単に特定領域505を移動させなかった可能性もある。これにより、投打の駆け引きがより複雑となり、ゲーム性をより向上させることができる。
〔その他の実施の形態〕
次に、第1ユーザが照準カーソル503を移動させる操作を行うことにより、照準カーソル503の位置に応じて特定領域505を自動的に移動させる構成について説明する。ゲーム装置100の特定領域移動手段53は、移動体(本実施の形態ではボール)の移動が開始されるまでの、第1ユーザによる照準カーソル503を移動させる操作に応じて、移動後の照準カーソル503が特定領域505の中央部に存在するように、照準カーソル503の移動に伴って特定領域505を移動させる機能を有する。
本構成によれば、投手キャラクタ502からボールがリリースされるまでは、第1ユーザがコントローラ19等の操作により照準カーソル503を移動させれば、それに連動して特定領域505が移動し、常に照準カーソル503が特定領域505の中央部に存在する状態になる。即ち、前述の実施形態では、特定領域505の移動と、照準カーソル503の移動とは別操作で行われるものであるが、本構成では一操作で、両者が同時に移動する点が異なる。
例えば、図4に示すように、特定領域505が、ストライクゾーン504の位置に初期設定され、特定領域505の中央部に照準カーソル503が存在しているとする。この状態から、図32に示すように、ユーザがコントローラ19を操作して、照準カーソル503をアウトコース低目へと移動させた場合、照準カーソル503が特定領域505の中央部に位置するように、特定領域505も移動する。
このように、照準カーソル503の移動に連動して特定領域505が移動しても、前述のとおり特定領域505内における照準カーソル503の大きさの設定は、基本的に維持される。
投手キャラクタ502からボールがリリースされた後は、最早、特定領域505の移動はできないため、ボールがリリースされたときの照準カーソル503の位置が、特定領域505の中央部の位置として確定される。例えば、投手キャラクタ502からボールがリリースされたときに、図32に示すように照準カーソル503がアウトコース低目に存在する場合、特定領域505もアウトコース低目に移動されており、ユーザはアウトコース低目を意識(予想)した打撃操作を行うことができる。
本構成の場合も、投手キャラクタ502からボールがリリースされた後は、特定領域505の移動ができなくなったことを明確化すると共に、打撃操作の妨げにならないように、特定領域505を不可視とすることが好ましい。
この構成の場合、ユーザは照準カーソル503を、例えば1ドット単位で任意の位置に移動できるので、照準カーソル503の移動に連動して、特定領域505も任意の位置に移動可能である。
以上のように、本構成によれば、投手キャラクタ502からボールがリリースされるまでは、第1ユーザが照準カーソル503を移動させる操作をすれば、照準カーソル503の移動に伴い、移動後の照準カーソル503の位置に応じて、自動的に特定領域505が移動する。よって、第1ユーザは、投手キャラクタ502からボールがリリースされるまでに、予想する投球コースの位置に照準カーソル503を移動させればよい。このように、照準カーソル503の移動操作をするだけで、それに連動して特定領域505が移動するので、第1ユーザによる操作の簡略化を図ることができる。
次に、照準カーソル503を移動させる操作をするだけで、自動的に特定領域505を移動させることができる構成のバリエーションを説明する。上記では、投手キャラクタ502からボールがリリースされるまでは、照準カーソル503の移動に連動して特定領域505も移動する例を示したが、次のような構成も可能である。すなわち、投手キャラクタ502からボールがリリースされる前は、照準カーソル503を移動させても、特定領域505が移動することはない。そして、投手キャラクタ502からボールがリリースされたときに、照準カーソル503の位置に応じて、特定領域505を移動させる。
例えば、図4に示すように、特定領域505が、ストライクゾーン504の位置に初期設定された場合、投手キャラクタ502からボールがリリースされる直前までは、特定領域505はストライクゾーン504の位置に固定される。そして、例えば、投手キャラクタ502からボールがリリースされた時点で、照準カーソル503がストライクゾーン504のアウトコース領域に存在すれば、図9に示すように、特定領域505がアウトコースへと自動的に移動する。
この構成でも、第1ユーザは、投手キャラクタ502からボールがリリースされるまでに、予想する投球コースの位置に照準カーソル503を移動させれば、特定領域505の位置決めが自動で行われるので、第1ユーザによる操作の簡略化を図ることができる。
次に、ゲーム装置100が予想情報を取得する方法のバリエーションについて説明する。野球ゲームのように、移動体の一例としてのボールに照準カーソルを重ねて作用を与えるゲームを制御するゲーム装置100の構成例を図33に示す。この構成のゲーム装置100は、第1ユーザの操作に応じて照準カーソル503を移動させるカーソル移動手段54を備え、予想手段71は、ボールの移動開始時における照準カーソル503の位置情報を、移動パラメータとしての移動コースに対する予想情報として取得する機能を有する。
すなわち、ボールが投手キャラクタ502からリリースされたタイミングで、そのときの照準カーソル503の位置情報を、投球コースに関する予想情報として取得するのである。例えば、第1ユーザがインコースを予想した場合、ボールが投手キャラクタ502からリリースされるまでに、前もって照準カーソル503をインコースの位置に移動させて待機するものと考えられる。これは、第1ユーザが前もって照準カーソル503を予想したコースに待機させておくことにより、もし予想が的中した場合、照準カーソル503の位置を微調整するだけで、ボールを的確に捉えることができるからである。そこで、ボールが投手キャラクタ502からリリースされたときの照準カーソル503の位置を、第1ユーザが予想した投球コースとみなし、その位置情報を予想情報として取得するのである。
照準カーソル503の位置情報としては、例えば照準カーソル503の中央部の座標情報とすることができる。あるいは、照準カーソル503の中央部の位置がインコース領域に存在すれば位置情報を「インコース」、アウトコース領域に存在すれば位置情報を「アウトコース」といったように、位置情報を「インコース」、「アウトコース」等で表してもよい。
本構成により、第1ユーザは、照準カーソル503の移動操作をするだけで、同時に移動体の移動コースの予想も可能となるので、操作の簡略化を図ることができる。
また、本構成は、画面上に特定領域505を設定する構成および特定領域505を設定しない構成の何れにも適用できる。
次に、領域内カーソル設定手段52のバリエーションを説明する。ストライクゾーン504の真ん中以外のコース(例えばアウトコースを)予想してそのコースを意識した打撃をした場合、その予想が的中すれば、予想しない場合よりも打ち易くなる。但し、コース予想はあくまで第1ユーザの意識に基づくものである。このため、現実的には、真ん中コースを意識した打撃をして、真ん中コースに来たボールを打撃するよりも、真ん中以外のコースを意識した打撃をして、意識したコースに来たボールを打撃する場合の方が、若干ボールを打ち難くなる。これをゲームにリアルに反映させるべく、領域内カーソル設定手段52は、以下の構成とすることができる。
すなわち、領域内カーソル設定手段52は、特定領域505が基準位置(本実施の形態ではストライクゾーン504の位置)から移動した場合における領域中央部の照準カーソル503の大きさを、特定領域505が基準位置に存在する場合における領域中央部の照準カーソル503の大きさよりも、小さく設定する。
例えば、図34Aに示すように、特定領域505が基準位置であるストライクゾーン504の位置に存在する場合において、領域中央部の照準カーソル503の直径をL1とする。また、図34Bに示すように、特定領域505が基準位置であるストライクゾーン504から右打者のアウトコース側へ移動した場合において、領域中央部の照準カーソル503の直径をL2とする。この場合、L1>L2となる。特定領域505をストライクゾーン504の位置からインコース側、高目側、または低目側に移動させた場合も同様である。
このように、特定領域505が基準位置であるストライクゾーン504の位置に存在する場合よりも、基準位置から移動した場合の方が、領域中央部の照準カーソル503の大きさを小さくすることにより、操作難易度を高くする。これにより、コース予想におけるリアル感をより向上させることができる。
ところで、図35に示すように、特定領域505が基準位置であるストライクゾーン504から移動した場合、基準位置に存在していた移動前の特定領域505における移動後の特定領域505と重ならない空白領域530ができる。同図において、便宜上、空白領域530はハッチングにより表している。図35では、特定領域505をストライクゾーン504の位置から右打者のアウトコース側へ移動させたことにより、インコース側に、空白領域530が発生した例を示している。
同様に、特定領域505をストライクゾーン504の位置から右打者のインコース側へ移動させれば、アウトコース側に空白領域530が発生する。また、特定領域505をストライクゾーン504の位置から高目コース側へ移動させれば低目コース側に空白領域530が発生し、低目コース側へ移動させれば高目コース側に空白領域530が発生する。この空白領域530の扱いについて、以下に説明する。
図36の機能ブロック図に示すように、ゲーム装置100は、空白領域内設定手段56をさらに備えていることが好ましい。この空白領域内設定手段56は、特定領域505が基準位置から移動したことにより発生した空白領域530内の照準カーソル503の大きさを、移動後の特定領域505内の照準カーソル503の最小サイズよりもさらに小さくなるように設定する機能を有する。すなわち、空白領域530については、特定領域505内における打撃操作の最大難易度よりも、さらに難易度が高くなるように、照準カーソル503の大きさを設定する。
例えば、図37に示すように、特定領域505の中央部から離れるほど照準カーソル503が小さくなるように、特定領域505内における照準カーソル503の大きさを設定した場合、特定領域505の四隅に存在する照準カーソル503aが、特定領域505内の照準カーソル503の最小サイズである。この場合、空白領域530内の照準カーソル503bについては、前記四隅の照準カーソル503aよりもさらに小さくなるように設定される。
なお、図37の例では、空白領域530内の全ての位置で、照準カーソル503bの大きさを同一としているが、これに限定されるものではない。例えば、空白領域530内の照準カーソル503bの大きさは、移動後の特定領域505の中央部から離れるほど、照準カーソル503bが小さくなるように設定してもよい。
上記のように、特定領域505を基準位置であるストライクゾーン504から移動させたことにより発生する空白領域530における照準カーソル503bの大きさを、移動後の特定領域505内の照準カーソル503の最小サイズよりもさらに小さくすることにより、コース予想が外れたことによるデメリットを明確化できる。これにより、第1ユーザの遊戯中の緊張感が高まり、遊戯性の向上が図られる。
本構成の場合、例えばアウトコースの投球を予想したが、実際にはインコースに存在する空白領域530にボールが来てコース予想が外れた場合、明確なデメリットを発生させるが、全く打撃をできなくするものではない。これは、空白領域530といえども、ストライクゾーン504の中に存在するため、打撃自体は可能とする代わりに、打撃操作の困難性を高めたものである。
なお、特定領域505および空白領域530以外の領域については、照準カーソル503を移動できないようにしてもよいし、移動可能としてもよい。特定領域505および空白領域530以外の領域にも照準カーソル503を移動可能とする場合、当該領域における照準カーソル503の大きさは、空白領域530内の照準カーソル503の大きさよりもさらに小さくなるように設定することができる。
次に、空白領域530の扱いについてのバリエーションを説明する。前述の空白領域530において、第1ユーザが打撃することを禁止し、ユーザによるコース予想が外れたことによるデメリットを、より明確化してもよい。これを実現するゲーム装置100は、図38の機能ブロック図に示すように、禁止手段57をさらに備えている。
禁止手段57は、前記空白領域530内では、移動体に対して作用を与えることを禁止する機能を有する。本実施の形態では、禁止手段57は、空白領域530内では、移動体の一例としてのボールに対して、作用の一例としての打撃(ボールを打ち返すこと)を禁止する。
空白領域530内で打撃を禁止する例としては、空白領域530内に照準カーソル503が存在する状態で、第1ユーザがスイングボタンを押して打撃操作を行っても、打者キャラクタ501がバットを振れないようにする、あるいは、バットを振っても空振りになるようにする。
本構成により、コース予想が外れたことによるデメリットをより明確化することができ、遊戯中の緊張感がより高まり、遊戯性の向上が図られる。
空白領域530内で打撃を禁止する他の例としては、そもそも空白領域530内に照準カーソル503を移動できないようにしてもよい。この場合、禁止手段57は、空白領域530内への照準カーソル503の移動を禁止する機能を有する。
構成によれば、第1ユーザは照準カーソル503を空白領域530内へ移動させる操作ができなくなるので、コース予想が外れたことによるデメリットを第1ユーザにさらに明確に認識させることができる。よって、遊戯中の緊張感がさらに高まり、遊戯性のさらなる向上が図られる。
ところで、前述の実施の形態では、特定領域505が画面上に初期設定される位置(基準位置)をストライクゾーン504の位置とする例について説明したが、これに限定されるものではない。例えば、特定領域505の中央部の座標が、ストライクゾーン504の中央部から所定方向に所定距離ずれた位置に、特定領域505が初期設定されるようにしてもよい。例えば、図9に示すように、特定領域505の中央部の座標が、ストライクゾーン504の中央部からアウトコース方向に1マス分ずれた位置に、特定領域505を初期設定したり、図11に示すように、インコース方向に1マス分ずれた位置に、特定領域505を初期設定したりしてもよい。ここで、1マスとは、例えばストライクゾーン504の水平方向の長さの3分の1の距離である。あるいは、特定領域505の中央部の座標が、ストライクゾーン504の中央部から上方または下方に1マス分ずれた位置に、特定領域505を初期設定してもよい。
例えば、図9に示すように特定領域505がアウトコース方向に1マス分ずれた位置を基準位置とする場合、第1ユーザがアウトコースを予想する場合は、特定領域505を移動させる必要はない。
また、特定領域505が初期設定される基準位置を、第1ユーザが任意に指定(設定)できるようにしてもよい。例えば、第1ユーザが、相手投手の投球の組み立てがアウトコース中心と予想した場合、基準位置を、図9のアウトコースに指定すればよい。そうすれば、アウトコース以外の投球を予想したときにだけ特定領域505を移動させればよいので、特定領域505を移動させる操作回数を削減できる。
また、相手投手の投球の組み立てが、右打者と左打者とで異なっていると予想される場合、右打者の場合の基準位置と、左打者の場合の基準位置とを、それぞれ第1ユーザが予め指定(設定)できるようにしてもよい。
第1ユーザが特定領域505の基準位置を指定する場合、図示しない設定画面で、ユーザがコントローラ19等を使用して基準位置を指定する操作を行う。この操作に基づいて、ゲーム装置100は指定された基準位置の情報(画面上の座標情報等)を記憶装置(メモリ18等)に保存し、以降は当該基準位置を適用する。この構成において、第1ユーザが特定領域505の基準位置を指定しない場合は、デフォルトの基準位置(例えば、特定領域505の中央部が、ストライクゾーン504の中央部と一致する位置)が適用されるようにすることができる。
また、前述の実施の形態では、特定領域505を、ストライクゾーン504と同じ大きさ及び形状(矩形)としたが、これに限定されるものではない。例えば、特定領域505をストライクゾーン504よりも大きくしたり、あるいは小さくしたりしてもよい。また、特定領域505は矩形に限らず、例えば、円形、楕円形等であってもよい。
また、前述の各実施の形態では、2人のユーザが対戦するゲームモードへの適用について説明したが、1人のユーザがコンピュータを相手に対戦するゲームモード(所謂、CPU対戦モード)にも適用可能である。
ユーザがCPU対戦モードにより一人でプレイする場合において、ユーザが打者キャラクタ501を操作する「第1ユーザ」の立場のとき、ゲーム装置100のCPU1は、AIプログラム(Artificial Intelligence Program)等に基づく自動制御で、投手キャラクタ502による投球を制御する。すなわち、ボール移動手段72の投球パラメータ決定部72aは、自動的に投球パラメータを決定する。例えば、投球パラメータ決定部72aは、特定領域505が初期設定された時点で(すなわち、ユーザが特定領域505を移動させる前に)、投球パラメータを決定している。CPU対戦モードの場合も、第1ユーザは、特定領域505を移動させる等の操作により、移動パラメータの予想を行うことができる。
また、CPU対戦モードにおいて、ユーザが投手キャラクタ502を操作する「第2ユーザ」の立場のとき、ゲーム装置100のCPU1は、AIプログラム等に基づく自動制御で、打者キャラクタ501による打撃を制御する。この場合、ゲーム装置100の予想手段71は、投手キャラクタ502が投げるボールの移動開始前または移動開始時に、自動的に、ボールの移動に関する移動パラメータに対する予想情報を取得する。例えば、第2ユーザが投球コース等を決定する前に、ゲーム装置100が投球コース等を自動で予想し、予想手段71が自動的に予想情報を取得する。
CPU対戦モードの場合も、予想手段71が取得した予想情報と、ボール移動手段72によって決定された移動パラメータとの一致度に応じて、打者キャラクタ501の動作が異なる。よって、第2ユーザは、対戦相手がコンピュータであっても、打者キャラクタ501の動作を見ながら投打の駆け引きを行うことができる。
また、前述の実施の形態では、主に、第1ユーザが予想する移動パラメータを「投球コース」とした場合について説明したが、予想する移動パラメータを「球種」または「球速」とした場合も、一致度に応じて打者キャラクタ501の動作が異なる。前述のように、第1ユーザ(またはコンピュータ)が球種予想を行う場合は、直球、カーブ、スライダー等の予想球種の情報を「予想情報」とすることができる。また、第1ユーザ(またはコンピュータ)が球速予想を行う場合は、速い球、遅い球等の情報を「予想情報」とすることができる。ここで、第1ユーザの球種(または球速)の予想と、実際のボールの球種(または球速)とが一致した場合(一致度が所定の閾値またはレベル以上の場合)、打者キャラクタ501は体勢を崩すことなくスイングしたりボールを見送ったりする(第1動作パターン)。一方、前記予想が外れた場合には、打者キャラクタ501の打撃のタイミングがずれて、バランスの崩れた体勢でスイングしたり、ボールを見送ったりする(第2動作パターン)。例えば、第1ユーザが直球(または速い球)を予想したのにカーブ(または遅い球)が来た場合、タイミングが合わずに泳いだような打撃動作となる。
また、前述の実施の形態では、主に野球ゲームへの適用例を示したが、これに限らず、サッカー、テニス等、移動体に対して何らかの作用を与える様々なゲームにも適用できる。以下には、サッカーゲームへの適用例を示す。
サッカーのPK戦では、第1ユーザによって操作されるゴールキーパーキャラクタが、第2ユーザによって操作されるキッカーキャラクタから送出される(蹴り出される)移動体の一例としてのボールを、捕えるまたは弾く。例えば、ゴールキーパーキャラクタを操作する第1ユーザは、照準カーソルをキッカーキャラクタから送出されたボールに重ねることにより、そのボールを、捕えるまたは弾くことができる。
このようなサッカーゲームの場合、ゲーム装置100の特定領域設定手段51は、ゴールキーパーキャラクタがボールを捕えるか弾くことが可能な領域を、前記特定領域として画面上に設定することができる。例えば、特定領域は、ゴールキーパーキャラクタの立ち位置を中心とする位置に初期設定することができる。
例えば、特定領域505の大きさは、ゴール全体よりは若干小さな面積とすることができる。また、ゴールキーパーキャラクタの能力パラメータが高い場合には、特定領域をゴールと同面積としてもよい。また、ゴールキーパーキャラクタの能力パラメータが低いほど、特定領域の面積を小さくしてもよい。このように、キャラクタのパラメータに応じて特定領域505の大きさを変更してもよい。
そして、ゲーム装置100の領域内カーソル設定手段52は、次に例示するように、特定領域内の位置に応じて照準カーソルの大きさが変化するように、特定領域内における照準カーソルの大きさを設定する。すなわち、特定領域内では、中央部がゴールキーパーキャラクタにとって最もボールを捕えやすいことから、照準カーソルを最も大きくし、中央部から特定領域の外周に向かって、照準カーソルを小さくするように設定できる。また、ゴールキーパーキャラクタにとっては、足より手の方がボールに触れ易いものとして、特定領域の上部の方が、下部よりも照準カーソルが大きくなるように設定してもよい。
そして、ゴールキーパーキャラクタを操作する第1ユーザは、キッカーキャラクタが右側のコースを狙っていると予想した場合には、キッカーキャラクタからボールが送出されるまでに、特定領域を右に移動させる操作を行う。これにより、ゲーム装置100の特定領域移動手段53は、特定領域内の位置と照準カーソルの大きさとの相対関係を維持したままで、画面上の特定領域を移動させる。また、ゲーム装置100の予想手段71は、第1ユーザの前記操作に基づいて(又はCPU対戦時は自動的に)、移動パラメータの一例としてのコースに対する予想情報を取得する。
この場合、第1ユーザのコース予想が当たり、特定領域を移動させた方向に、キッカーキャラクタがシュートしたボールが飛んで来れば、比較的大きな照準カーソルでボールを捕えることができるというメリットが発生する。一方、第1ユーザのコース予想が外れて、特定領域を移動させた方向とは異なる方向に、キッカーキャラクタがシュートしたボールが飛んで来れば、比較的小さな照準カーソルでボールを捕える必要が生じるというデメリットが発生する。
また、第1ユーザのコース予想が当たった場合(一致度が所定の閾値またはレベル以上の場合)、動作制御手段73は、ゴールキーパーキャラクタがバランスを崩すことのない第1動作パターンの捕球動作を行うように制御する。一方、第1ユーザのコース予想が外れた場合(一致度が所定の閾値またはレベル未満の場合)、動作制御手段73は、ゴールキーパーキャラクタがバランスを崩した第2動作パターンの捕球動作を行うように制御する。第2動作パターンでは、例えば、ゴールキーパーキャラクタが、キックされたボールの方向と異なる方向へ動きかけて、慌ててボールの方向へ移動するような動きを行う。
ところで、現実世界のゴールキーパーは、キッカーによってボールが蹴られた瞬間に、コースを予想して動きを開始するものであり、その予想の当たり外れをボールが蹴られた瞬間に認識できる。そこで、リアル感を出すために、動作制御手段73は、キックされたボールがゴール付近に来てからゴールキーパーキャラクタの動作を制御するのではなく、キックされたボールの移動開始後(移動直後)に、予想の一致度に応じてゴールキーパーキャラクタの動作を制御する構成とすることができる。例えば、予想が外れた場合は、キッカーによってボールが蹴られた直後に、ゴールキーパーキャラクタがバランスを崩した動作を行うようにする。
なお、予想の一致度に応じてゴールキーパーキャラクタの動作を制御する構成においては、第1ユーザがキックコースの予想入力を行う操作は、特定領域を用いた操作に限定されるものではない。例えば、第1ユーザが予想するキックコースを、ポインティングデバイス等を使用して画面上で入力してもよい。
このサッカーゲームでも、野球ゲームと同様に、現実世界でのキッカーとゴールキーパーとの駆け引きを、ゲーム上にリアルに反映できる。
次に、テニスゲームへの適用例を示す。テニスのサーブの場面では、第1ユーザによって操作されるレシーバーキャラクタが、第2ユーザによって操作されるサーバーキャラクタから送出される移動体の一例としてのボールを、打ち返す。例えば、レシーバーキャラクタを操作する第1ユーザは、照準カーソルをサーブされたボールに重ねることにより、そのボールを打ち返すことができる。このようなテニスゲームの場合、レシーバーキャラクタがボールをレシーブ可能な領域を、前記特定領域として画面上に設定することができる。例えば、特定領域は、レシーバーキャラクタの立ち位置を中心とする位置に初期設定される。
レシーバーキャラクタの真正面の位置よりも、ラケットを持っている手の位置の方がレシーブをし易いことから、特定領域内では、例えば、中央部よりもラケットを持っている手の方に若干ずれた位置で、照準カーソルを最も大きくし、当該位置から離れるほど照準カーソルが小さくなるように設定することができる。
そして、レシーバーキャラクタを操作するユーザは、サーブが来るコースを予想し、予想したコースに特定領域を移動させる操作を行う。この場合も、特定領域内の位置と照準カーソルの大きさとの相対関係が維持されたまま、特定領域が移動することになる。また、ゲーム装置100の予想手段71は、第1ユーザの前記操作に基づいて(又はCPU対戦時は自動的に)、移動パラメータの一例としてのコースに対する予想情報を取得する。
この場合、第1ユーザのコース予想が当たり、特定領域を移動させた方向に、サーブされたボールが飛んで来れば、比較的大きな照準カーソルでボールを捕えることができるというメリットが発生する。一方、第1ユーザのコース予想が外れて、特定領域を移動させた方向とは異なる方向に、サーブされたボールが飛んで来れば、比較的小さな照準カーソルでボールを捕える必要が生じるというデメリットが発生する。
また、第1ユーザのコース予想が当たった場合(一致度が所定の閾値またはレベル以上の場合)、動作制御手段73は、レシーバーキャラクタがバランスを崩すことのない第1動作パターンのレシーブ動作を行うように制御する。一方、第1ユーザのコース予想が外れた場合(一致度が所定の閾値またはレベル未満の場合)、動作制御手段73は、レシーバーキャラクタがバランスを崩した第2動作パターンのレシーブ動作を行うように制御する。例えば、第1ユーザがコーナーに来ると予想したのに対して、センターにボールが来たときには、レシーバーキャラクタがバランスを崩したようなレシーブ動作になってしまう。
ところで、現実世界のテニスの試合でも、レシーバーは、サーバーによってボールが打たれた瞬間に、コース予想の当たり外れを認識できる。そこで、リアル感を出すために、動作制御手段73は、サーブされたボールの移動直後に、予想の一致度に応じてレシーバーキャラクタの動作を制御する構成とすることができる。
このテニスゲームでも、野球ゲームと同様に、現実世界でのサーバーとレシーバーとの駆け引きを、ゲーム上にリアルに反映できる。
また、前述の実施の形態では、ユーザが操作するゲーム装置100においてゲームプログラムが実行される構成について説明したが、端末装置でのゲーム操作入力に応じてサーバ装置でゲームプログラムを実行し、その実行結果を各ユーザの端末装置に送信するゲームシステムを適用することもできる。このゲームシステムの構成例を、図39に示している。同図に示すように、このゲームシステムは、インターネットなどのネットワーク600上に設置されたサーバ装置1000と、ネットワーク600を介してサーバ装置1000と通信可能に接続できる各ユーザの端末装置2000とによって構成される。
サーバ装置1000は、ゲームを実行した結果のゲーム映像を、例えばストリーミング形式で端末装置2000に送信する、いわゆるクラウドゲーミングのサービスをユーザに提供する。このクラウドゲーミングを提供するサービス形態では、ユーザの端末装置2000にゲーム専用のソフトウェアをダウンロード又はインストールする必要がなく、端末装置2000をネットワーク600に接続できる環境であれば、ユーザはどこでも気軽にサーバ装置1000から提供されるゲームサービスを楽しむことができる。
サーバ装置1000および端末装置2000のハード構成は、CPU、ROM、RAM、補助記憶装置、通信インターフェース等を備えた、一般的なコンピュータの構成とすることができる。サーバ装置1000の機能的構成は、前述のゲーム装置100と同様に、予想手段71、ボール移動手段72および動作制御手段73を備える構成とすることができる。また、サーバ装置1000は、前述の手段51〜58等を備えていてもよい。このように、ゲーム装置100の機能をサーバ装置1000に持たせた場合も、ゲーム装置100と同様の作用効果を奏する。
また、サーバ装置1000および端末装置2000は互いに通信して各種データの送受が可能であり、共にCPU、ROM、RAM、補助記憶装置、通信インターフェース等を備えた情報処理装置(コンピュータ)であって、同様のハード構成を有する。よって、サーバ装置1000および端末装置2000を含むゲームシステムにおいて、上述の各実施の形態で説明したゲーム装置100が具備する各手段は、サーバ装置1000または端末装置2000の何れか一方が備えていればよい。すなわち、ゲーム装置100が具備する各手段を、サーバ装置1000と端末装置2000とに分散して設けることも可能である。この構成でも、前述の実施の形態と同様の作用効果を奏する。
また、各種情報を記憶装置に記憶する記憶制御機能を有する構成に関し、記憶装置そのものについては当該構成に含まれないので、ゲーム装置100、サーバ装置またはゲームシステムの内外を問わず、どこに設置されていてもよい。例えば、記憶装置は、ゲーム装置100が有するRAM5やメモリ18、サーバ装置が有するRAMや補助記憶装置、あるいはゲーム装置100やサーバ装置とは別構成のファイルサーバ(オンラインストレージ)等であってもよい。
また、前述の各実施の形態で説明した各構成は、適宜組み合わせて適用することができる。
また、本実施の形態に係るコンピュータ読み取り可能なプログラムは、ハードディスク、光ディスク(CD−ROM、DVD−ROM等)、フレキシブルディスク、半導体メモリ等のコンピュータ読み取り可能な非一時的な各種記録媒体に記録され、当該記録媒体から読み出されてゲーム装置、サーバ装置のCPUにより実行される。また、プログラムをゲーム装置等に提供する手段は、前述した記録媒体に限定されるものではなく、インターネット等の通信ネットワークを介して行うこともできる。
これまで説明してきたように、本実施の形態のゲーム装置等の概要は、以下のとおりである。
1)本発明の一態様によるゲーム装置(100、1000)は、移動体(例えばボール540)に対してキャラクタ(例えば打者キャラクタ501)が作用を与えるゲームを制御するものであって、前記移動体(540)の移動開始前または移動開始時に、前記キャラクタ(501)を操作する第1ユーザの操作に基づいて、又は自動的に、前記移動体(540)の移動に関する移動パラメータに対する予想情報を取得する予想手段(71)と、前記移動体(540)を操作する第2ユーザの操作に基づいて、前記移動パラメータを決定して前記移動体(540)を移動させる移動体移動手段(例えばボール移動手段72)と、前記移動体(540)の移動後の前記キャラクタ(501)の動作を制御する動作制御手段(73)と、を備え、前記動作制御手段(73)は、前記予想情報と前記移動体移動手段(72)によって決定された前記移動パラメータとの一致度に応じて、前記キャラクタ(501)の動作を異ならせる。
本構成のゲーム装置が制御するゲームは、移動体に作用を与えるゲームである。移動体の一例としては、スポーツシミュレーションゲームにおけるボールが挙げられる。また、作用の一例としては、移動体を打ち返す、捕える、打ち砕く等がある。このゲームの一例としては、投手キャラクタが投げたボール(移動体)を打者キャラクタが打ち返す(打撃)野球ゲームが挙げられる。野球ゲームに限らず、サッカー、テニス等、移動体に対して何らかの作用を与える様々なゲームにも適用できる。
本ゲーム装置では、予想手段が、移動体の移動開始前または移動開始時に、キャラクタを操作する第1ユーザの操作に基づいて、又は自動的に、移動体の移動に関する移動パラメータに対する予想情報を取得する。ここで、移動体の移動開始前または移動開始時とは、例えば野球ゲームでは、投手キャラクタからボールがリリースされる前またはリリースされたときである。また、例えば、サッカーゲームのPK戦では、キッカーがボールをキックする前またはキックしたときである。また、例えばテニスゲームでは、サーバーがサーブする前またはサーブしたときである。以下、主に野球ゲームを例として説明する。
キャラクタを操作する第1ユーザは、移動体の移動に関する移動パラメータを予想することができる。野球ゲームの例では、打者キャラクタを操作する第1ユーザは、移動パラメータの一例としての投球コース、球種、球速等を予想することができる。第1ユーザによる投球コース等の予想入力の操作に基づいて、予想手段は、移動パラメータに対する予想情報を取得する。
予想手段が取得する予想情報としては、次のような情報が挙げられる。例えば、野球ゲームの場合であれば、コース予想の場合は、インコース、アウトコース等の予想コースを示す情報、または予想コースの座標情報を「予想情報」とすることができる。また、例えば、球種予想の場合は、直球、カーブ、スライダー等の予想球種の情報を「予想情報」とすることができる。また、例えば、球速予想の場合は、速球等の「速い球」、チェンジアップ等の「遅い球」を予想して何れかを選択した情報を、「予想情報」とすることができる。
第1ユーザと第2ユーザとの対戦の場合は、第1ユーザの予想入力の操作に基づいて、予想手段が予想情報を取得するが、第2ユーザが一人プレイでコンピュータと対戦する場合(所謂、CPU対戦の場合)には第1ユーザは存在せず、例えば第2ユーザが投球コース等を決定する前にゲーム装置が投球コース等を自動で予想し、予想手段が自動的に予想情報を取得する。
また、移動体移動手段は、移動体を操作する第2ユーザの操作に基づいて、前記移動パラメータを決定して移動体を移動させる。例えば野球ゲームでは、第2ユーザが、投手キャラクタが投げるボールの移動パラメータとして投球コースや球種等を決定するための操作を行うことにより、移動体移動手段が、当該操作に基づいて投球コースや球種等を決定し、ボールを打者キャラクタの方へ移動させる。
また、動作制御手段は、移動体の移動後のキャラクタの動作を制御する。野球ゲームの例では、投手キャラクタからボールがリリースされた後の打者キャラクタの、バッティング動作またはボールを見送る動作を制御する。例えば、動作制御手段は、第1ユーザによって打撃操作が行われた場合には、打者キャラクタのバッティング動作を制御し、打撃操作が行われなかった場合には、打者キャラクタのボール見送り動作を制御する。
そして、動作制御手段は、予想手段によって取得された移動パラメータに対する予想情報と移動体移動手段によって決定された移動パラメータとの一致度に応じて、キャラクタの動作を異ならせる。ここで、一致度としては、移動パラメータに対する予想情報と実際の移動パラメータとの一致の程度を、例えば値またはレベルとして表すことができる。
例えば、移動パラメータに対する予想情報と実際の移動パラメータとが一致する場合の一致度を「1」または「レベルA」、不一致の場合の一致度を「0」または「レベルB」として、一致度を2段階の値またはレベルで表しても良い。あるいは、予想情報が予想コースの座標情報であった場合、予想コースの座標と実際に移動体が通過した座標とのずれ量(両座標間の距離)に基づいて、一致度を算出してもよい。
前記一致度に応じてキャラクタの動作を異ならせる一例を説明する。例えば、第1ユーザによる投球コースの予想が当たった場合(予想コースと、実際の投球コースとが一致した場合)には、打者キャラクタは体勢を崩すことなくスイングしたりボールを見送ったりする。一方、前記予想が外れた場合(予想コースと実際の投球コースとが一致しなかった場合)には、打者キャラクタはバランスの崩れた体勢でスイングしたり、ボールを見送ったりする。
予想が外れた場合の一例としては、インコースの予想に対して、アウトコースにボールが来た場合は、それを打とうとして打者キャラクタは泳ぐような打撃姿勢になってバランスを崩す。ボールを見送る場合も、打者キャラクタはボールを目で追いかけながら上体が突っ込む姿勢になる。
また、アウトコースの予想に対して、インコースにボールが来た場合は、ボールを避けようとして打者キャラクタはのけぞったり、腰を引いたりするような姿勢になる。
要するに、打者キャラクタ側のボールに対する事前予想(この例では、コース予想)が外れてしまうと、打者キャラクタの打撃姿勢等が崩れるのである。逆に、打撃姿勢が崩れなければ、打者キャラクタの事前予想は当たっていたとみることができる。このことから、第2ユーザは、いまの投球において、打者キャラクタ側がインコースを狙っていたのか、アウトコースを狙っていたのか等を推定することができる。そして、この推定が、打者キャラクタ側の打撃結果(空振り、ファール、見送り等)とともに、次の投球において、例えば打者キャラクタ側が引き続き同じコースを狙ってくるのか、あるいは異なるコースを狙ってくるのか、といった打撃予想を検討するための材料として、第2ユーザに供されることになる。すなわち、現実世界の野球のように、投球に対する打者の反応を見て、投手が次の投球を検討するといったリアル感のあるゲーム性を実現でき、投打の駆け引きがより一層楽しくなる。
以上のように、本構成によれば、第2ユーザは、移動体の移動後のキャラクタの動作を見ることにより、移動体の移動コース等に対する相手側(第1ユーザまたはCPU)の事前予想の当否を推測可能となり、ゲーム上でリアル感のある相手との駆け引きが実現できる。
2)上記の1)の構成において、前記動作制御手段(73)は、前記一致度が所定の閾値またはレベル以上の場合に、前記キャラクタ(501)の動作を第1動作パターンとする一方、前記一致度が前記所定の閾値またはレベル未満の場合に、前記キャラクタ(501)の動作を前記第1動作パターンとは異なる第2動作パターンとすることが好ましい。
一致度が所定の閾値またはレベル以上とは、基本的にキャラクタを操作する第1ユーザの予想が当たった(または予想に近い)場合に相当し、この場合はキャラクタが第1動作パターンの動作を行う。例えば、第1動作パターンでは、キャラクタがデフォルトの動作を行う。野球ゲームの例では、打者キャラクタがバランスを崩すことなく打撃またはボールを見送る動作を行う。但し、デフォルトといっても、ボールとバットの位置関係、ボールとキャラクタとの位置関係等、ゲーム内容に応じて、キャラクタの動作の微妙な違いは表現されるものとしてもよい。
一方、一致度が所定の閾値またはレベル未満とは、基本的にキャラクタを操作する第1ユーザの予想が外れた(または予想から遠い)場合に相当し、この場合はキャラクタが第2動作パターンの動作を行う。第2動作パターンでは、第1動作パターンにはない動作が加えられる。例えば、第2動作パターンでは、第1動作パターンとの相違を第2ユーザが明確に認識できるように、泳ぐ、のけぞる、腰を引く等、打者キャラクタがバランスの崩れた体勢で打撃または見送りの動作を行う。
第1動作パターンは、1つの固定パターンであってもよいし、第1動作パターンとして複数の動作パターンが存在してもよい。同様に、第2動作パターンも、1つの固定パターンであってもよいし、第2動作パターンとして複数の動作パターンが存在してもよい。
このように、移動パラメータに対する予想情報と実際の移動パラメータとの一致度に応じて、キャラクタの動作として、第1動作パターンまたは第2動作パターンの何れかが選択されるので、第2ユーザは、キャラクタの動作を見ることにより、相手側(第1ユーザまたはCPU)の事前予想の当否を明確に推測可能となる。
3)上記の2)の構成において、前記第2動作パターンは、前記一致度に応じた複数の動作パターンが存在し、前記動作制御手段(73)は、前記一致度に応じて、前記第2動作パターンを変動させることが好ましい。
一致度が所定の閾値またはレベル未満の場合に、キャラクタの動作として第2動作パターンが選択されるが、この第2動作パターンは1つではなく、一致度に応じて変動する。例えば、一致度が低いほど(すなわち予想と現実とのずれが大きいほど)、打者キャラクタはより大きくバランスを崩した体勢の打撃や見送りの動作を行う。
これにより、第2ユーザは、相手の予想と現実とのずれの大きさを、キャラクタの動作から推定することができる。
4)上記の1)ないし3)の何れかの構成において、画面上の基準位置に、前記移動体(540)の移動コースを予想するための特定領域(505)を設定する特定領域設定手段(51)と、前記移動体(540)の移動が開始されるまでの前記第1ユーザの操作に応じて、前記特定領域(505)を前記基準位置から移動させる特定領域移動手段(53)と、をさらに備え、前記予想手段(71)は、前記特定領域(505)の位置に基づいて、前記移動パラメータとしての移動コースに対する前記予想情報を取得することが好ましい。
野球ゲームを例に挙げると、前記基準位置をストライクゾーンの位置とすることができる。すなわち、ストライクゾーンの位置に、移動コースの一例としての投球コースを予想するための特定領域(予想用として設けられた疑似的なストライクゾーン)が設定される。そして、第1ユーザが特定領域を移動させる操作を行うことにより、投球コースの予想が可能である。例えば、ユーザが特定領域をアウトコース側にシフトさせれば、アウトコースの予想入力ができる。
このように、本構成によれば、基準位置に設けられた特定領域を移動させるという、直観的で分かり易い予想入力が可能なユーザインターフェースを実現できる。
5)上記の4)の構成において、前記ゲームは、前記移動体(540)に照準カーソル(503)を重ねて作用を与えるゲームであって、前記照準カーソル(503)を、前記第1ユーザの操作に応じて移動させるカーソル移動手段(52)と、前記特定領域(505)内の位置に応じて前記照準カーソル(503)の大きさが変化するように、前記特定領域(505)内における前記照準カーソル(503)の大きさを設定する領域内カーソル設定手段と、をさらに備えていることが好ましい。
この構成によれば、特定領域内の位置に応じて照準カーソルの大きさが変化する。例えば、野球ゲームの場合、疑似的なストライクゾーンである特定領域内の中央部が最も照準カーソルが大きく、中央部から離れるほど照準カーソルが小さくなるような設定にすることができる。第1ユーザはこの特定領域を移動させることによりコース予想を行なうので、コース予想に応じて、照準カーソルが大きくなる(野球では打ち易い)領域、照準カーソルが小さくなる(野球では打ち難い)領域が変動することになる。例えば、特定領域をアウトコース側にシフトすれば、本来のストライクゾーンの中央部にあった特定領域の中央部がアウトコース側にシフトし、アウトコース領域において照準カーソルが大きくなる一方、本来のストライクゾーンの中央部において照準カーソルが小さくなる。
本構成によれば、第1ユーザによるコース予想の当否を、照準カーソルの大きさ(野球では打撃操作の難易度)として反映させることができるので、ゲーム性を高めることができる。
6)上記の1)ないし3)の何れかの構成において、前記ゲームは、前記移動体(540)に照準カーソル(503)を重ねて作用を与えるゲームであって、前記照準カーソル(503)を、前記第1ユーザの操作に応じて移動させるカーソル移動手段(52)をさらに備え、前記予想手段(71)は、前記移動体(540)の移動開始時における前記照準カーソル(503)の位置情報を、前記移動パラメータとしての移動コースに対する前記予想情報として取得することが好ましい。
移動体の移動開始時とは、野球ゲームを例に挙げると、移動体の一例としてのボールが投手からリリースされたときである。この移動体の移動開始時における照準カーソルの位置情報を、移動コースの予想情報とする。野球ゲームでは、打者側の照準カーソルの位置を、打者側の第1ユーザが予想した移動コースの位置とみなす。例えば、打者がインコースを予想している場合、前もって照準カーソルをインコースの位置に移動させて待機するものと考えられるので、上記のような判断を行う。
本構成により、第1ユーザは、照準カーソルの移動操作をするだけで、同時に移動体の移動コースの予想も可能となるので、操作の簡略化を図ることができる。
7)上記の1)ないし6)の何れかの構成において、前記動作制御手段(73)は、前記移動体(540)の移動中に、前記第1ユーザによって前記移動体(540)に作用を与えるための作用付与操作が行われた場合に、前記一致度に応じて、前記キャラクタ(501)における前記移動体(540)に作用を与えるための動作を異ならせることが好ましい。
ここで、作用付与操作とは、例えば野球ゲームでは、第1ユーザが行うバットスイング操作である。また、サッカーゲームのPK戦では、ゴールキーパーキャラクタをボールに飛びつかせる操作である。また、例えば、テニスゲームでは、ラケットスイング操作である。これらは一例であり、ゲームの種類や内容に応じた作用付与操作を適用できる。
また、キャラクタにおける移動体に作用を与えるための動作とは、例えば野球ゲームでは、打者キャラクタがボールを打ち返そうとバットを振る動作である。また、例えば、サッカーゲームのPK戦では、ゴールキーパーキャラクタがボールを捕えよう(または弾こう)として飛びつく動作である。また、テニスゲームでは、サーブされたボールを、レシーバーキャラクタが打ち返そうとしてラケットを振る動作である。これらは一例であり、キャラクタは、ゲームの種類や内容に応じた動作を行う。
この構成によれば、第1ユーザによって作用付与操作が行われた場合に、第1ユーザの予想の当否に応じて、キャラクタの動作が異なる。野球ゲームを例に挙げると、インコース予想に対して、アウトコースにボールが来た場合は、それを打とうとして打者キャラクタは泳ぐような打撃姿勢になる(バランスを崩す)。一方、アウトコース予想に対して、予想通りアウトコースにボールが来た場合は、打者キャラクタは体勢を崩すことなくアウトコースに適したインステップの打撃姿勢になる(バランスを崩さない)。これにより、投手側の第2ユーザは、打者キャラクタがバットを振る動作を見ることによって、第1ユーザの予想の当否を推測可能となる。
8)上記の1)ないし7)の何れかの構成において、前記動作制御手段(73)は、前記移動体(540)の移動中に、前記第1ユーザによって前記移動体(540)に作用を与えるための作用付与操作が行われなかった場合に、前記一致度に応じて、前記キャラクタ(501)における前記移動体(540)を見送る動作を異ならせることが好ましい。
作用付与操作の例としては、野球のバットスイング操作を挙げることができる。野球ゲームを例に挙げると、本構成では、第1ユーザによってバットスイング操作が行われなかった場合でも、第1ユーザの予想の当否に応じて、打者キャラクタによるボールを見送る動作が異なる。例えば、アウトコース予想に対して、インコースにボールが来た場合は、打者キャラクタがボールを避けようとしてのけぞったり、腰を引いたりするような姿勢でボールを見送る(バランスを崩す)。一方、インコース予想に対して、予想通りインコースにボールが来た場合は、打者キャラクタは体勢を崩すことなく余裕をもってボールを見送る(バランスを崩さない)。これにより、投手側の第2ユーザは、打者側がボールを見送る場合も、第1ユーザの予想の当否を推測可能となる。
9)上記の1)ないし8)の何れかの構成において、前記予想情報には、前記移動体(540)の移動コース、速さ、移動中の軌道変化の少なくとも1つの移動パラメータに対する予想情報を含むことが好ましい。
野球ゲームを例に挙げると、「移動コース」としては投球コース(インコース、アウトコース等)、「速さ」としてはボールの球速(速球等の速い球、チェンジアップ等の遅い球)、「移動中の軌道変化」としては球種(ストレート、カーブ、シュート等)がそれぞれ該当する。これらのうちの1つ、又は2つ以.上を組み合わせて、移動体の移動に関する移動パラメータの予想を行うことができる。
10)本発明の他の一態様によるゲーム装置(100、1000)は、第1ユーザによって操作される打者キャラクタ(501)が、第2ユーザによって操作される投手キャラクタ(502)が投じたボールオブジェクトを打撃する野球またはソフトボールゲームを制御するものであって、前記ボールオブジェクト(540)の前記投手キャラクタ(502)からの送出開始前または送出開始時に、前記第1ユーザの操作に基づいて、前記ボールオブジェクト(540)の投球コースを予想した予想投球コースの情報を取得する予想手段(71)と、前記第2ユーザの操作に基づいて、前記投球コースを決定して前記ボールオブジェクト(540)を移動させるボール移動手段(72)と、前記ボールオブジェクト(540)の移動後の前記打者キャラクタ(501)の動作を制御する動作制御手段(73)と、を備え、前記動作制御手段(73)は、前記予想投球コースと前記ボール移動手段(72)によって決定された投球コースとの一致度に応じて、前記打者キャラクタ(501)の動作を異ならせる。
11)本発明の他の一態様によるゲームシステムは、第1ユーザが使用する端末装置(2000)および第2ユーザが使用する端末装置(2000)を含み、第1ユーザによって操作されるキャラクタ(501)が、第2ユーザによって操作される移動体(540)に作用を与えるゲームを制御するゲームシステムであって、前記移動体(540)の移動開始前または移動開始時に、前記第1ユーザの操作に基づいて、前記移動体(540)の移動に関する移動パラメータに対する予想情報を取得する予想手段(71)と、前記第2ユーザの操作に基づいて、前記移動パラメータを決定して前記移動体(540)を移動させる移動体移動手段(72)と、前記移動体(540)の移動後の前記キャラクタ(501)の動作を制御する動作制御手段(73)と、を備え、前記動作制御手段(73)は、前記予想情報と前記移動体移動手段(72)によって決定された前記移動パラメータとの一致度に応じて、前記キャラクタ(501)の動作を異ならせる。
12)本発明の他の一態様によるゲーム制御方法は、移動体(540)に対してキャラクタ(501)が作用を与えるゲームを制御するコンピュータにおけるゲーム制御方法であって、前記コンピュータが、前記移動体(540)の移動開始前または移動開始時に、前記キャラクタ(501)を操作する第1ユーザの操作に基づいて、又は自動的に、前記移動体(540)の移動に関する移動パラメータに対する予想情報を取得する予想ステップと、前記コンピュータが、前記移動体(540)を操作する第2ユーザの操作に基づいて、前記移動パラメータを決定して前記移動体(540)を移動させる移動体移動ステップと、前記コンピュータが、前記移動体(540)の移動後の前記キャラクタ(501)の動作を制御する動作制御ステップと、を含み、前記動作制御ステップでは、前記コンピュータが、前記予想情報と前記移動体移動ステップによって決定された前記移動パラメータとの一致度に応じて、前記キャラクタ(501)の動作を異ならせる。
13)本発明の他の一態様によるプログラムは、コンピュータを上記の1)ないし10)の何れかに記載のゲーム装置(100、1000)として動作させるためのプログラムであって、前記コンピュータを前記ゲーム装置(100、1000)が備えている各手段として機能させるためのプログラムである。