以下、本発明によるゲームプログラム、ゲーム装置、およびゲーム制御方法の例示的実施形態について、図面を用いて詳細に説明する。図面において同一又は同様の構成要素は、同じ参照符号によって表される。
(システムの概略)
図1は、本発明のある実施形態によるゲームプログラムを用いるシステム100を示す図である。システム100は、典型的にはゲーム装置110、コントローラ130、およびディスプレイ(モニタとも呼ばれる)140を含む。ゲーム装置110は、記録媒体120からデータを読み出すドライブ112を備える。ゲーム装置110は、仮想的なゲーム空間内にキャラクタを生成し、ゲームのルールに従ってキャラクタを動かす。ゲームプログラムは、ゲーム空間、ゲームキャラクタ、およびゲームルールなどを記述する。
例えば野球ゲームのゲームプログラムであれば、ゲーム空間は、野球場を模擬する空間である。ゲームキャラクタには、例えば、投手キャラクタ、ボールキャラクタ、打者キャラクタ、バットキャラクタ、および野手キャラクタがある。ゲームルールには、例えば、ボールが打者に打たれることなくストライクゾーンを通過すると、ストライクとみなすルールなど、野球ゲームを規定するさまざまなルールがある。
記録媒体120は、本発明によるゲームプログラムを記録した任意の有体でありかつ非一時的なコンピュータ読み取り可能な記録媒体であり、典型的にはDVD−ROM(read only memory)である。しかし記録媒体120はこれには限られず、BD(Blu-ray disc)−ROM、CD(compact disc)−ROM、半導体メモリなどであってもよい。ただしこれら記録媒体には、搬送波など無体の一時的な媒体は含まれない。典型的には本発明によるゲームプログラムは、コンピュータで読み取り可能な、有体な非一時的な記録媒体に記録されて流通される。代替として、本発明によるゲームプログラムは、コンピュータで読み取り可能な無体の一時的な記録媒体、例えば搬送波にデータ信号として記録され、例えばインターネットを介して流通されてもよい。
プレイヤ(操作者、ユーザとも呼ばれる)は、コントローラ130を操作することによって、ゲーム空間内のキャラクタを動かすことができる。例えば野球ゲームの場合は、ゲーム空間内に投手キャラクタ、打者キャラクタ、野手キャラクタなどが配置される。プレイヤは、コントローラ130が備えるボタンを押すことによって、キャラクタを操作できる。例えばプレイヤは、打者キャラクタがバットを振る時の、バットの打撃部分の位置、バットを振る力の強さ、バットを振るタイミングなどをコントローラのボタンを押すことによって制御できる。このような制御によってプレイヤは、打者にボールを打たせる操作を行うことができる。
コントローラ130は、典型的には、L1ボタン131、および十字キー132(十字ボタン、方向キーとも呼ばれる)を備えるが、これだけではなく他のさまざまなボタンを備えてもよい。コントローラ130は、例えば有線でゲーム装置110と結合されるが、これには限られず無線で結合されてもよい。
ゲーム装置110は、ゲームプログラムに基づいて、さまざまなゲームを実行する。典型的にはゲーム装置110は、TVゲーム機と呼ばれる、ゲームプログラムを実行するための専用のハードウェアである。これには限られずゲーム装置110は、ゲームプログラムを実行することが可能なパーソナルコンピュータであり得る。
図1のシステム100の代替として、ゲーム装置110、記録媒体120、コントローラ130、およびディスプレイ140が小型の筐体に収められた携帯型ゲーム機がゲームプログラムを実行してもよい。そのような携帯型ゲーム機は、ゲーム専用機である必要はない。例えば、ユーザが触ることでデータを入力できるタッチパネルを有する携帯電話機であってもよい。この場合、ユーザは、コントローラ130の代わりに携帯電話機のタッチパネルを指などで触ることによってキャラクタを動かしたり、さまざまな操作をしたりする。
ゲーム装置110は、記録媒体120からゲームプログラムなどを読み込むためのドライブ112を有する。ドライブ112は、記録媒体120に対応する任意のドライブであり、例えばDVDドライブ、BDドライブ、CDドライブであり得る。記録媒体120として半導体メモリが用いられる時は、ドライブ112の代わりに、半導体メモリデバイスとゲーム装置110とを電気的に結合するコネクタが用いられる。ゲーム装置110が携帯型ゲーム機であるときは、半導体メモリデバイスはゲーム機の筐体内に設けられる。
ディスプレイ140は、ゲーム装置110によって生成されたゲーム空間内のさまざまなキャラクタをプレイヤに表示する。ディスプレイ140は、液晶テレビ、プラズマテレビなどであり得る。ディスプレイ140は、ゲーム装置110とは、典型的には有線で結合され、例えばHDMI(high-definition multimedia interface)ケーブルが用いられる。ゲーム装置110が携帯型ゲーム機であるときは、ディスプレイ140は、液晶表示パネルであってもよい。さらにそのような携帯型ゲーム機は、上述のようなタッチパネルを有してもよい。
ゲーム装置110は、仮想的なゲーム空間内にさまざまなゲームキャラクタ(単にキャラクタともいう)を生成する。ゲーム装置110は、その記憶装置に格納されているゲームルール、およびコントローラ130を介してプレイヤによって入力される信号などに従ってゲームキャラクタをゲーム空間において動かす。ゲーム装置110は、ゲーム空間、ゲームキャラクタなどをディスプレイ140上に表示する。
ゲームプログラムが野球ゲームを実行する場合は、ゲーム空間は野球場を模擬する空間である。この場合、典型的にはゲームキャラクタには、投手キャラクタ、打者キャラクタ、ボールキャラクタ、バットキャラクタ、ミートカーソルなどが含まれる。投手キャラクタは、ボールキャラクタを、ストライクゾーンまたはその周辺へ投げる。その他のキャラクタとしては、バットキャラクタや背景キャラクタなどがある。プレイヤの操作に応じて操作部(例えばコントローラ130)から出力される信号に基づいて、打者キャラクタは、ボールキャラクタに作用を及ぼす。ゲーム装置110の記憶装置に格納されているゲームプログラムは、ゲーム空間、ゲームキャラクタ、およびゲームルールなどを記述する。上述のゲームキャラクタは一例であって、ゲーム装置110が実行するゲームに依存して、任意のキャラクタであり得る。
ゲームルールには、プレイヤと情報をやりとりしつつ、ゲームを進めるためのさまざまなルールがある。例えば野球ゲームのゲームプログラムであれば、ボールが打者に打たれることなくストライクゾーンを通過すると、ストライクとみなすルールなど、野球ゲームを規定するさまざまなルールがある。このようなゲームルールは一例であって、ゲーム装置110が実行するゲームに依存して、任意のゲームルールであり得る。
プレイヤは、コントローラ130を操作することによって、ゲーム空間内のキャラクタを動かすことができる。例えば野球ゲームの場合は、ゲーム空間内に投手キャラクタ、打者キャラクタ、野手キャラクタなどが配置される。プレイヤは、L1ボタン131、および十字キー132などを用いてキャラクタを操作できる。例えばプレイヤは、打者キャラクタがバットを振る時の、バットの打撃部分の位置、バットを振る力の強さ、バットを振るタイミングなどをコントローラ130を操作することによって制御できる。このような制御によってプレイヤは、投手キャラクタにボールキャラクタを投げさせたり、打者キャラクタにボールキャラクタを打たせたりする操作を行うことができる。
(ゲームの概略)
図2は、本発明のある実施形態によるゲームプログラムがディスプレイ140上に表示するゲーム画面200を示す図である。投手キャラクタ210は、ボールキャラクタ220を打者キャラクタ230に向かって投げる。打者キャラクタ230は、バットキャラクタ240でボールキャラクタ220を打撃する(作用を及ぼす)。ゲーム空間内には、典型的には仮想的な作用面が設けられる。この作用面は、野球ゲームの場合、ホームベース付近において投手キャラクタ210に正対し、かつ野球場のグラウンドに垂直に設けられる。目標領域であるストライクゾーンは、典型的にはこの作用面上に位置する。本発明のゲームプログラムは、ストライクゾーンをディスプレイ140に表示してもよい。
打者キャラクタ230は、この作用面においてボールキャラクタ220を打撃する。ミートカーソル250は、打撃時のバットキャラクタ240の作用面での位置をプレイヤに示すためにディスプレイ140に表示される。
ゲームプログラムは、投手キャラクタ210が意図する到達点や球種、および投手キャラクタ210の属性などに基づいて、作用面におけるボールキャラクタ220の到達点260を決定する。投手キャラクタ210が意図する到達点や球種は、例えばプレイヤがコントローラ130を介してゲーム装置110に入力できる。プレイヤが投手キャラクタ210を操作しない場合は、代わりにゲームプログラムが適宜、必要なデータを生成し、プログラム中でそれらを用いる。
打者キャラクタ230を操作するプレイヤは、ミートカーソル250を到達点260に合わせるとともに、ボールキャラクタ220がちょうど到達点260を通過するタイミングを見計らってバットをスイングすることによって打撃する。ゲームプログラムは、操作部(例えばコントローラ130)から出力される信号に基づいて、ミートカーソル250を移動させる。
ゲームプログラムは、ミートカーソル250と到達点260との位置関係に基づいて打撃結果を計算し、ディスプレイ140に表示する。例えば、ミートカーソル250の中心と到達点260の中心との距離が十分に近ければ長打になりやすくなる。以下では具体的な例として、ミートカーソル250と到達点260との位置関係に応じて打撃結果を求めているが、これには限定されない。
(ゲームプログラムの動作)
図3は、本発明のある実施形態によるゲームプログラムのフロー300を示す図である。図3を参照しながら、本発明のある実施形態によるゲームプログラムの動作を説明する。図3に示すさまざまなステップは、ゲーム装置110のプログラム実行部400(図15を参照して後述する)によって実行される。具体的には、プログラム実行部400によって実行されるステップは、ゲーム装置110が備えるCPU(central processing unit)1502が、RAM(random access memory)1504やCPU1502のキャッシュに記憶された命令群を実行することなどによって実現される。
図4は、本発明のある実施形態によるゲームプログラムを用いるシステム100の構成を示す図である。システム100は、ゲームプログラムのフロー300を実行するプログラム実行部400を含む。プログラム実行部400は、特殊属性設定手段410、ゲーム状況設定手段420、ミートカーソル表示手段430、及び打撃判定手段450を備える。ミートカーソル表示手段430は、ミートカーソル拡張手段432、ミートカーソル縮小手段434、ミートカーソル構造設定手段436、打撃力勾配設定手段438、ボールキャラクタ飛翔距離調整手段440、及びミートカーソル生成手段442を含む。
プログラム実行部400は、操作部460、記憶部470、表示部480とデータの授受ができるよう結合される。操作部460は、プレイヤからのデータ入力を実現し、コントローラ130を含む。記憶部470は、プログラム実行部400が動作する際に一時的または半永久的にさまざまなデータを保持する。表示部480は、プログラム実行部400がフロー300を実行した結果をプレイヤに表示し、ディスプレイ140を含む。図4に示す手段は、典型的にはハードウェアおよびソフトウェアの組み合わせで実現され、必要な処理を行うためにデータの授受をデータバス490を介して行う。
図3及び図4を参照してゲームプログラムのフロー300を説明する。
まずステップ310では、特殊属性設定手段410は、特定のゲーム状況における打撃が所定の結果になる傾向が高くなる特殊属性(特殊能力とも呼ばれる)を打者キャラクタに設定する。この特殊属性には、大きく分けて打者キャラクタにとって有利になる(プラスの効果をもたらす)特殊属性(正の特殊属性)と、不利になる(マイナスの効果をもたらす)特殊属性(負の特殊属性)とがある。例えば、正の特殊属性には、3塁走者がいる時に外野フライを打って走者を帰す能力が高いことや、3塁走者がいる時にスクイズを成功させる能力が高いことが挙げられる。負の特殊属性としては、1塁走者がいる時にヒットになりにくいゴロ(弱い当たりのゴロ、俗に言うボテボテのゴロ)を打つ可能性が高いことや、スコアリングポジションに走者がいる時にフライを打ち上げてしまう可能性が高いことが挙げられる。特殊属性設定手段410は、このような特殊属性を表すデータ(特殊属性データ)を、打者キャラクタのデータと関連付けて、記憶部470に記憶する。記憶された特殊属性データは、ミートカーソルを生成する時にミートカーソル表示手段430によって用いられる。
ステップ320では、ゲーム状況設定手段420は、ゲームの状況を表すデータ(ゲーム状況データ)を記憶部470に記憶する。ゲーム状況データには、典型的には走者が特定の塁に存在するかどうかを表すデータが含まれるが、他には例えば、ボールカウント、アウトカウント、球種などを表すデータが含まれてもよい。
ステップ330では、ミートカーソル表示手段430は、打席に入った打者キャラクタ230が特殊属性設定手段410によって設定された特殊属性を有し、且つ、打者キャラクタ230が打席に入った時点におけるゲーム状況が特殊属性を構成する特定のゲーム状況であるときに、ミートカーソル250の構造を、打者キャラクタ230の打撃が特殊属性の構成内容である所定の結果になる傾向が高くなるように設定し、ミートカーソル250を表示部480に表示する。換言すれば、ミートカーソル250の構造は、ゲーム状況及び特殊属性に応じてミートカーソル表示手段430によって変更される。例えば、打席に入った打者キャラクタ230が、特殊属性設定手段410によって設定された、1塁走者がいる時にヒットになりにくいゴロを打つ傾向が強い特殊属性を有すると仮定する。この場合、打者キャラクタ230が打席に入った時点において1塁走者がいるなら、ミートカーソル250の形状は、ヒットになりにくいゴロを打つ可能性が高くなるように設定される。具体的な形状変形については図5〜図6を参照して後述する。
本発明の実施形態ではミートカーソル250の構造は、ステップ350で行われる打撃判定において打球の速度、飛翔距離、コースなどに影響を及ぼしえる。その結果、ゲーム状況及び特殊属性に応じて打球の速度、飛翔距離、コースなども変化することとなる。すなわちゲーム状況と打者キャラクタの特殊属性とが反映された打撃を模擬することが可能となる。その結果、現実世界の野球において発生するような、特定のゲーム状況下でその打者が示す打撃の傾向を擬似的にゲーム上で演出でき、従来にないリアリティと興趣性に満ちたゲームを実行できる。なお本明細書ではミートカーソル250の構造とは、作用面における平面的な形状、作用面に平行な方向から見た断面などを含む。
ステップ330は、典型的には図3に示すステップ332,334,336,338,340,342を含むが、これには限定されず、一部のステップが省略されてもよい。例えば、ミートカーソルの変形はその一部を拡張するのみであってもよいし、逆に、一部を縮小するものであってもよい。またステップ330を実行するときに、ステップ332,334,336,338,340,342のうちの一部の順序が図3に示すものと異なってもよい。さらに、ステップ332,334,336,338,340,342のうちの一部は、並列に処理されてもよく、または同じ処理ステップに統合されてもよい。
ミートカーソル500,600,700は、仮想的に3次元の形状を有するが、図5,6,7は作用面に正射影した(作用面の法線方向に投影した)平面形状を示す。本実施形態では、ボールキャラクタの到達点の中心がミートカーソル内のどこに位置するかによって、ボールキャラクタがバットキャラクタによって打撃されたかどうか、及び打撃された場合はその打球がどこに飛ぶかなどを決定する(打撃判定を行う)。例えば到達点の中心がミートカーソルの中心に当たっていれば、長打になりやすい。そのためミートカーソルの形状は、打撃(打球の速度、飛翔距離、コースなど)の結果に影響する。したがってミートカーソルの形状を変化させれば、打撃の結果も変わり、すなわちゲームに変化をもたせることが可能となる。
以下、図5〜図7を参照して、ミートカーソル変形の一例を示す。この一連の変形は、図3のステップ332、334に該当する。図5に示したミートカーソルは最終的に図7の実線部のようになる。この変形例では、図5と図7の見た目上のミートカーソル形状は同じであるが、打撃ポイントが移動することとなる。
図5は、ステップ330の処理が行われる前のミートカーソル500の形状を表す図である。ステップ330で、ミートカーソル表示手段430は、ミートカーソル500内に、最もヒット性が高い(最もヒットになりやすい)打撃ポイント510(スイートスポットともいう)を設ける。プレイヤが、打撃ポイント510をボールキャラクタ220の到達点260に合わせる(「ミートする」ともいう)と打球はまっすぐに飛ぶ。プレイヤが、中心線520よりも上の部分でミートすると打球は上に向かい(フライになり)、中心線520よりも下の部分でミートすると打球は下に向かう(ゴロになる)。以下の説明において、打撃ポイント510、中心線520などは表示部480に表示されてもよく、されなくてもよい。
図6は、ステップ332でミートカーソル拡張手段432によって拡張されたミートカーソル600の形状を表す図である(図7の形状に至る途中の形状である)。ステップ332では、ミートカーソル拡張手段432は、ミートカーソル500の下半分を矢印605に示すように拡張する。このとき、ミートカーソル600内の打撃ポイント610の位置は、打撃ポイント510と変わらない。
次に、図7に示すように、ミートカーソル縮小手段434は、ミートカーソル600の上半分を矢印705に示すように縮小する。このとき、ミートカーソル700内の最もヒット性が高い打撃ポイント710の位置は、打撃ポイント610と変わらない。
ここで、ミートカーソル縮小手段434によって、拡張されたミートカーソルの外周の一部と反対側の外周部を、拡張された部分とほぼ同じ程度、内側に後退させる(縮小する向きに変形する)。
以上のように、ステップ332でのミートカーソル拡張手段432によるミートカーソルの拡大及びステップ334でのミートカーソル縮小手段434によるミートカーソルの縮小を経ることによって、打撃ポイント710は、ミートカーソル700の上へ相対的にずれることになる。ところがプレイヤにとっては、拡大及び縮小を経たミートカーソル700の形状は、拡大及び縮小前のミートカーソル500と同じに見える。そのため、プレイヤはミートカーソル700の見かけの中心である点715に到達点260を合わせようとする。ところがこの見かけの中心点715は、図7に示すように、中心線720よりも下に位置するので、ゴロを打つ可能性が高くなる。
なお、上記変形例では、最終的なミートカーソル形状は変形前と同じで、打撃ポイントの位置のみが移動する例を示したが、必ずしも、最終形状が変形前と同じである必要はないのは勿論である。例えば、ミートカーソルの最終形状が、図6に示すような下半分が拡張された形状であってもよいし(ゴロが出やすくなる)、図面には示していないが、上半分が拡張された形状であってもよい(フライが出やすくなる)。但し、ゲームに精通したプレイヤの場合、ミートカーソルの変形を瞬時に把握して、その変形に合わせた打撃を行うことが可能なケースもあるので、上級者のプレイヤに対しては、図7のように見た目上、打撃ポイントのみが移動した変形のほうが分かり難く、難易度の高いゲームを提供することができる。
ステップ336では、ミートカーソル構造設定手段436は、ミートカーソル700の仮想的な3次元的な構造を設定する。ミートカーソル700の3次元構造には、作用面におけるその平面形状(図7)及び作用面に平行な方向から見た断面が含まれる。ミートカーソル700の断面は、打球の鉛直面内の軌跡を決定する。つまり打球がフライ、ライナー、ゴロなどのいずれになるかは、ミートカーソル700の断面形状に主に依存する。
図8は、ミートカーソル700の作用面における平面形状と、ミートカーソル700をバットキャラクタ240の軸に平行な方向から見た仮想的な断面800を示す図である。以下の説明で「ミートカーソルの断面」とは、ステップ350での打撃判定で用いられる、ミートカーソル700の仮想的な断面を言う。表示部480には平面形状しか表示されないが、ステップ350の打撃判定においてこの仮想的な断面にボールが当たると仮定して、打球の飛ぶ方向などが決定される。打球の飛ぶ方向を決定するには、立体物の衝突に関する物理的法則が成り立つと仮定して計算され得る。
断面800は、上部810、中央部820、及び下部830に分けられ、それぞれの部分は直線で構成される。上部810でボールキャラクタ220をミートすると、打球は方向812に飛ぶ(フライになる)。中央部820でボールキャラクタ220をミートすると、打球は方向822に飛ぶ(ライナーになる)。下部830でボールキャラクタ220をミートすると、打球は方向832に飛ぶ(ゴロになる)。上部810よりも下部830のほうが作用面に正射影させた面積が大きいので、断面800を用いるとフライになるよりもゴロになる傾向のほうが強い。
断面800のように上部810、中央部820、及び下部830のそれぞれが直線から構成されると、同じ部分でミートされた打球は全て同じ方向に(平行に)飛ぶ。そのためプレイヤの打撃操作は比較的、容易ではあるが、その反面、打撃操作に慣れやすく、いったん慣れてしまうと興趣に欠ける。この点を考慮し、ミートカーソル構造設定手段436は、同じ平面形状700であってもその断面形状を変化させることによって、ゲームを変化に富むものにできる。
図9は、ミートカーソル700の作用面における平面形状と、ミートカーソル700をバットキャラクタ240の軸に平行な方向から見た仮想的な断面900を示す図である。断面900は、上部910、中央部920、及び下部930に分けられ、それぞれの部分は曲線で構成される。上部910でボールキャラクタ220をミートすると、打球は方向912に飛ぶ(フライになる)。中央部920でボールキャラクタ220をミートすると、打球は方向922に飛ぶ(ライナーになる)。下部930でボールキャラクタ220をミートすると、打球は方向932,934に飛ぶ(ゴロになる)。断面800と同様に、上部910よりも下部930のほうが作用面に正射影させた面積が大きいので、断面900を用いるとフライになるよりもゴロになる傾向のほうが強い。
断面900のように上部910、中央部920、及び下部930のそれぞれが曲線から構成されると、同じ部分でミートされた打球であってもミートの位置によって異なる方向に飛ぶ。そのためプレイヤの打撃操作は比較的、難しくはなるが、その分、打撃操作にコツが必要で、興趣には富むという効果もある。
図10は、ミートカーソル700の作用面における平面形状と、ミートカーソル700をバットキャラクタ240の軸に平行な方向から見た仮想的な断面1000を示す図である。断面1000は、曲線で構成される点で断面900と似ているが、断面900よりも左側に尖った形状を有する。その結果、断面900と比較すると断面1000は、より狭い範囲しかライナー性のヒットにはならず、またゴロになる確率は高くなる。そのため打撃の難易度は高くなるが、打撃操作に習熟が必要な分、より興趣が増す。
ミートカーソル構造設定手段436は、特定のゲーム状況における打撃が所定の結果になる傾向をさらに高くするようミートカーソルの3次元的な表面形状を変化させることができる。ここでは、特定のゲーム状況における打撃がゴロになりやすくなるよう、断面800の代わりに断面900又は断面1000を利用できる。このようなミートカーソルの3次元的な構造(例えば断面形状)を変化させるかどうかは、例えば、打者キャラクタ230の特殊属性に基づいて決定できる。一例として、打者キャラクタ230の特殊属性が、1塁走者のいるときに当たりの弱いゴロを打ちやすいという属性であるなら、ミートカーソル構造設定手段436は、打撃の難易度が高い断面1000を用いることによって、打者キャラクタ230のそのゲーム状況における弱さを模擬できる。反対に、打者キャラクタ230の特殊属性が、1塁走者のいるときでもヒットを打ちやすいという属性であるなら、ミートカーソル構造設定手段436は、打撃の難易度が低い断面800を用いることによって、打者キャラクタ230のそのゲーム状況における強さを模擬できる。このようにミートカーソル構造設定手段436は、打者キャラクタが打席に入った時点でのゲーム状況、及びその打者キャラクタの特殊属性に応じて、ミートカーソルの3次元構造を変化させることができる。その結果、本発明のある実施形態によるゲームプログラムは、現実の野球をよりよく模擬し、興趣性を向上できるという効果を奏する。
ミートカーソルの断面形状は、断面800,900,1000には限定されず、他の形状であってもよい。打球のイレギュラー性を再現するために、より複雑な曲線を用いてもよい。断面形状は、ゲーム状況、及び特殊属性以外のパラメータ(例えばボールカウント、アウトカウント)に基づいて変化させてもよい。
ステップ338では、打撃力勾配設定手段438は、ミートカーソルの打撃力勾配を設定する。ミートカーソルの打撃力勾配は、鉛直方向でミートカーソルのどの位置に当たればどの程度の打撃力を打球が受けるかを規定する。よってミートカーソルの打撃力勾配は、単打になるか長打になるかを左右する。
図11は、ミートカーソル700の平面形状及び打撃力勾配1100を示す図である。図11の縦軸は鉛直方向における位置Yを表し、横軸はボールキャラクタ220が受ける打撃力Fを表す。打撃力勾配1100は、位置Yhにおいて最高値Fhを有する。これはボールキャラクタ220は、打撃ポイント710において最も強い打撃力Fhを受けることを意味する。
打撃力勾配設定手段438は、ミートカーソルの打撃領域の中にボールキャラクタへの打撃力が最も大きくなる打撃ポイントを設定すればよく、打撃力勾配の形状は、打撃力勾配1100には限定されない。ただし典型的には、打撃力勾配1100は、打撃ポイント710からの距離が大きくなるほど、打撃力Fが低下するように設定される。この構成により、バットの芯(ここでは打撃ポイント710)に近いほど、打球の速度が大きくなるという現実の野球をよりよく模擬できるという効果が得られる。
ステップ340では、ボールキャラクタ飛翔距離調整手段440は、特定のゲーム状況における打撃が所定の結果になる傾向がさらに高くなるように、ボールキャラクタの飛翔距離を調整する。図12は、ミートカーソル700の平面形状及び飛翔距離1200を示す図である。図12の縦軸は鉛直方向における位置Yを表し、横軸はボールキャラクタ220の飛翔距離Dを表す。飛翔距離1200は、位置YがY1〜Y2において、距離D1であり、位置YがY2〜Y3において、距離D2であり、ここでD1<D2(D1,D2:正の数)である。ある実施形態では、ボールキャラクタ飛翔距離調整手段440は、後述の打撃判定において、ボールキャラクタ220の飛翔距離を制限するよう動作する。具体的にはボールキャラクタ飛翔距離調整手段440が、中心線720より上の部分(Y2≦Y≦Y3)については、ボールキャラクタ220の飛翔距離をD2に制限するが、中心線720より下の部分(Y1≦Y≦Y2)ではその飛翔距離をD1に制限する。例えば、1塁に走者がいるときにスクイズを成功させる能力が高いという特殊属性を有する打者キャラクタの場合、ボールキャラクタ飛翔距離調整手段440は、ピッチャーがスクイズした打球を処理しにくいような距離D1に飛翔距離を制限する。反対にタッチアップを成功させる能力が高いという特殊属性を有する打者キャラクタの場合、ボールキャラクタ飛翔距離調整手段440は、打球が大きなフライになるように距離D2を大きく設定することによって、飛翔距離が大きくなっても制限されないようにする。
他の実施形態では、ボールキャラクタ飛翔距離調整手段440は、後述の打撃判定において、求められたボールキャラクタ220の飛翔距離を強制的により大きい値に変更する(オーバーライドする)よう動作してもよい。例えば、上のタッチアップの例では、求められたボールキャラクタ220の飛翔距離がD2より小さくても、タッチアップを成功させる能力が高い選手の場合には、フライの打球の飛翔距離がD2となるようにその値を変更してもよい。
上記のような構成によりボールキャラクタ飛翔距離調整手段440は、打者キャラクタが打席に入った時点でのゲーム状況、及びその打者キャラクタの特殊属性に応じて、飛翔距離に変更を加えることができる。その結果、ゲーム状況に応じて、リアル性に優れた打撃判定を行うことができるという効果を奏する。
ステップ342では、ミートカーソル生成手段442は、ミートカーソルを生成する。プレイヤに対する処理においては、ステップ332,334で求められたミートカーソル(例えば700)の形状を表示部480(例えばディスプレイ140)に表示する。内部の処理においては、ミートカーソル生成手段442は、ステップ332,334,336,338,340において求められたミートカーソルの3次元構造、打撃力勾配、及び飛翔距離を表すデータを打撃判定手段450にデータバス490を介して出力する。
ステップ350では、打撃判定手段450は、データバス490を介して受け取った他の手段からのデータ(例えばミートカーソルの3次元構造、打撃力勾配、飛翔距離、及びボールキャラクタ220の到達点260などを表すデータ)に基づいて打撃判定を行う。具体的には、打撃判定手段450は、ボールキャラクタ220の到達点260の中心がミートカーソル700内のどこに位置するかに基づいて、打撃判定を行い、ボールキャラクタ220の飛翔コースや距離などを決定する。上述のようにミートカーソル700の形状には、打者キャラクタ230が打席に入った時点におけるゲーム状況、及び特定のゲーム状況における打者キャラクタ230の打撃が所定の結果になる傾向が高くなる特殊属性が既に反映されている。例えば、打者キャラクタ230がスクイズで3塁走者を本塁に帰す能力が高いという特殊属性を持っており、打席に入った時に3塁に走者がいるゲーム状況なら、ステップ350においてミートカーソル700は、断面900、打撃力勾配1100、及び飛翔距離1200を有し、特に中心線720より下に到達点260の中心が位置する場合には、飛翔距離がピッチャーにとって処理しにくい距離D1に制限されている。その結果、打者キャラクタ230は、スクイズを成功させて、3塁走者を本塁に帰す可能性が高くなる。
ある実施形態において、特殊属性を構成する特定のゲーム状況は、走者が存在する状況(例えば3塁走者がいる状況)であり、この特殊属性を構成する「所定の結果」は、この走者を進塁させられること(例えば3塁走者をホームに帰すことができること)に対応するが、ゲーム状況及び特殊属性は、これらには限定されない。
図13は、ミートカーソル700の作用面における平面形状と、ミートカーソル700をバットキャラクタ240の軸に垂直で、かつ作用面に平行な方向から見た仮想的な断面1300を示す図である。図8〜10とは異なり、図13は、バットキャラクタ240を上から見た断面を示す。野球のグラウンドの上から法線方向に見下ろした打球のコースを決定するために、断面1300は用いられる。断面1300は、遠位端部1310、中央部1320、及び近位端部1330に分けられ、それぞれの部分は曲線で構成される。遠位端部1310でボールキャラクタ220をミートすると、打球は方向1312に飛ぶ。中央部1320でボールキャラクタ220をミートすると、打球は方向1322に飛ぶ。近位端部1330でボールキャラクタ220をミートすると、打球は方向1332に飛ぶ。このような仮想的な断面1300をミートカーソル700に設け、打撃判定ステップ350において考慮することによって、水平面内における打球のコースに変化を付けることができる。その結果、興趣性がさらに増す。
以上、説明したさまざまな断面は、図示されたものに限定されず、任意の形状の断面を本発明は用いることができる。図14は、ミートカーソル1400の作用面における平面形状と、ミートカーソル1400をバットキャラクタ240の軸に平行な方向から見た仮想的な断面1410を示す図である。断面1410は、断面900を上下反転させた形状である。断面900とは反対に、断面1410を用いるとゴロよりもフライになる傾向が強い。
なお打撃ポイント710や中心線720は、プレイヤがボールにミートカーソルを合わせるためのガイドとして表示してもよく、表示しなくてもよい。
図3のフローでは、ステップ334でミートカーソルを縮小することによって、ミートカーソルの大きさがステップ332の前と比較して同じになるように設定した。これには限定されず、ステップ334を省いてもよい。例えば、3塁走者がいる時にスクイズを成功させる能力が高い打者キャラクタの場合、ミートカーソル500の下部をステップ332で拡張し、かつミートカーソル600の下部に当たった時のボールキャラクタの飛翔距離をステップ340によって制限することができる。この場合、ミートカーソル600は、ミートカーソル500と比べて、下部が拡張されているのでプレイヤはゴロになりやすいことが推測できる。また3塁走者がいる時に外野フライを打って走者を帰す能力が高い打者キャラクタの場合、ミートカーソル500の上部をステップ332によって拡張し、かつミートカーソルの上部に当たったときに外野フライになりやすい(真上に打ち上げるのではなく、適度な角度で飛ぶ)角度にボールキャラクタが飛ぶようにステップ336によってミートカーソルの仮想的な構造(断面形状)を設定する。以上のように、ミートカーソル500に比べてミートカーソルの形状の変化がプレイヤに見て判る実施形態では、打者キャラクタを操作するプレイヤには難易度が低くなるが、打撃操作を習熟しやすい利点もある。
以上、説明したように本発明の実施形態では、1.ミートカーソルの仮想的な構造を設定すること(ステップ336)と、2.打撃力勾配の設定(ステップ338)又は飛翔距離の調整(ステップ340)との少なくとも1つを、所定の打撃結果が出やすいように設定すればよい。またステップ338,340は、両方が実行されなくてもよく、少なくとも1つが実行されればよい。
(システムのハードウェア)
図15は、システム100のハードウェアを示すブロック図である。システム100は、ゲーム装置110、コントローラ130、およびディスプレイ140を含む。ゲーム装置110は、ネットワーク1560を介して他のゲーム装置1550と接続されてもよい。
CPU1502は、ゲーム装置110の各構成要素と接続され、制御信号やデータをやりとりすることによって、その全体の動作を制御する。CPU1502は、RAM1504に記憶されたゲームプログラムを構成するステップ群を実行することによって、所望の機能を実現する。具体的にはCPU1502は、図2に示されるステップ群を実行することによって、ステップ群が規定する所望の機能群を実現する。
CPU1502は、レジスタに対してALU(Arithmetic Logic Unit)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。CPU1502は、マルチメディア処理のための加減乗除などの飽和演算、および三角関数などベクトル演算を高速に行えるように構成されてもよい。CPU1502は、演算を高速に行うためにコプロセッサを備えてもよい。
記録媒体120は、任意の適切なコンピュータ読み取り可能な記録媒体であり、本発明によるゲームプログラム、およびゲームに付随する画像データおよび音声データを記録する。ドライブ112は、CPU1502の制御によって、記録媒体120からゲームプログラムおよび付随するデータを読み出す。CPU1502は、読み出されたプログラムおよびデータをバス1506を介して、RAM1504に転送し、一時的に記憶する。
RAM1504は、データやプログラムを一時的に記憶する。RAM1504は、記録媒体120から読み出したゲームプログラム、ゲームプログラムに付随するデータ、ネットワーク対戦モードにおける他のプレイヤに関連するデータ、通信に関連するデータなどを記憶する。CPU1502は、RAM1504に変数領域を設け、変数領域に格納された値に対して直接に演算を行ってもよい。CPU1502は、RAM1504に記憶された値をいったんレジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻してもよい。
ROM1508は、電源投入直後に実行されるIPL(initial program loader)を記憶する。CPU1502は、IPLを実行することによって、記録媒体120に記録されたゲームプログラムを読み出す。CPU1502は、読み出されたゲームプログラムをRAM1504に記憶させ、ゲームプログラムの実行に必要な処理を行う。ROM1508は、ゲーム装置110の制御に必要なオペレーティングシステムのプログラムおよび各種データを記憶する。
インタフェース1510は、コントローラ130によって検出されたプレイヤの操作に関連付けられたデータを、バス1506を介してCPU1502などに送る。信号処理部1512および画像処理部1514は、図3でも示したように、バス1506を通してCPU1502と接続される。CPU1502は、ゲームプログラムからの命令を解釈し、各種のデータ処理および制御を行う。例えば、CPU1502は、信号処理部1512に対して、画像データを画像処理部に供給するように命令する。信号処理部1512は、例えばゲーム空間内におけるさまざまなキャラクタの計算、ゲーム空間からディスプレイ画面への座標変換計算、光源計算、および画像および音声データの生成を行う。
画像処理部1514は、2次元画像の重ね合わせ演算、αブレンディングなどの透過演算、各種の飽和演算などを高速に実行する。仮想3次元空間であるゲーム空間内には、各種のテクスチャ情報が付加されたポリゴンとして表現される、さまざまなキャラクタが配置される。画像処理部1514は、このポリゴンをZバッファ法によってレンダリングする。画像処理部1514は、ゲーム空間内に配置されたポリゴンを、所定の視点位置から所定の視線方向へ俯瞰したレンダリング画像を得るための演算を高速に実行できる。
CPU1502は、画像演算プロセッサ1514と協調して、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画したりする。
プログラム実行部400は、典型的にはCPU1502、RAM1504、ROM1508、信号処理部1512、および画像処理部1514によって構成される。プログラム実行部400は、図2および図3を参照して説明したさまざまなステップをCPU1502によって実行することにより、それぞれのステップに対応する手段を実現する。具体的には、プログラム実行部400は、ステップ210に対応する到達点決定手段304、ステップ220に対応する飛翔体キャラクタを送出する送出手段302、ステップ230に対応する到達予報領域表示手段308、ステップ235に対応する到達点表示手段310、ステップ240に対応する到達点位置記憶手段306、およびステップ250に対応する1打席終了の判定手段を少なくとも構成する。プログラム実行部400は、ゲームプログラムを実行するのに必要な他のさまざまな手段を構成してもよい。逆にプログラム実行部400は、上記手段のうちの一部を省略してもよい。
プログラム実行部400は、上述の構成要素に加えて他のハードウェアまたはソフトウェアの要素をさらに備えてもよい。例えばプログラム実行部400は、単一のCPU1502の代わりに複数のCPUを用いることによって並列処理を行い、計算速度を高速化してもよい。逆に、プログラム実行部400は、上述の構成要素の一部を含まなくてもよい。 画像出力部1516は、典型的にはデジタルアナログ変換器、フレームメモリを有する。このフレームメモリは、例えば画像処理部1514によって処理された画像データを記憶する。画像出力部1516は、画像データを所定の同期タイミングでビデオ信号に変換し、ディスプレイ140へ出力する。
音声出力部1518は、典型的にはデジタルアナログ変換器を有する。音声出力部1518は、記録媒体120から読み出された音声データをアナログ信号に変換し、出力する。ディスプレイ140は、変換されたアナログ信号を、例えばHDMIケーブルなどを通して受け取り、内蔵のスピーカから音声として出力する。CPU1502は、ゲームの実行中において、効果音および楽曲データを生成し、音声信号として出力してもよい。音声出力部1518は、記録媒体120に記録された音声データがMIDI(musical instrument digital interface)データである時は、関連付けられた音源データを参照することによって、MIDIデータをPCM(pulse code modulation)データに変換する。音声出力部1518は、音声データがADPCM(adaptive differential pulse code modulation)形式やOgg Vorbis形式などで圧縮されている時には、圧縮されたデータを展開してPCMデータに変換する。音声出力部1518は、PCMデータに対して、そのサンプリング周波数に応じたタイミングでデジタルアナログ変換を行って、出力する。
ネットワークインタフェース1520は、ネットワーク1560を通して他のゲーム装置1550と通信するのに用いられる。例えばネットワーク対戦モードで自分が用いる、相手のチームに関連するさまざまなデータは、ネットワークインタフェース1520によって、ネットワーク1560を通して受け取られる。逆に、ネットワーク対戦モードで相手が用いる、自分のチームに関連するさまざまなデータは、ネットワークインタフェース1520によって、ネットワーク1560を通して相手のゲーム装置1550に送られる。これによりネットワーク対戦モードで、遠隔地におけるプレイヤどうしでゲームの対戦が可能になる。システム100は、ネットワーク1560に接続することなく、ゲーム装置110単体でゲームプログラムを実行してもよい。
本発明によるゲームプログラムは、典型的には記録媒体120からゲーム装置110にロードされる。しかしこれには限られず、本発明によるゲームプログラムの全部または一部が、ネットワーク1560を介して、遠隔地にあるコンピュータ(例えばサーバ)からロードされてもよい。また本発明によるゲームプログラムに関連して用いられるデータの全部または一部が、ネットワーク1560を介して、遠隔地にあるコンピュータ(例えばサーバ)からロードされてもよい。
当業者には理解されるように、上述のさまざまな要素(ハードウェアの要素、ソフトウェアのステップなど)は、その一部が省略されてもよい。逆に、付加的な要素を用いてもよい。