説明

ゲーム装置、ゲームプログラム、ゲームシステムおよびゲーム制御方法

【構成】 ゲーム装置(10)は、CPU(44a)を含み、CPUは、ゴルフゲームのゲーム処理を実行し、打撃操作において、円の一部を消去した形状のガイド軌跡210を表示する。プレイヤはガイド軌跡をトレースするように、時計回りの方向にスライド操作を行った後に、反転させて、反時計回りの方向にスライド操作を行うと、これに従って、プレイヤキャラクタ202がスイング動作を行う。バックスイング、ダウンスイングおよびフォロースルーのそれぞれについてのスライド操作の正確さ、速さ、滑らかさが判断され、これに応じて、ボール106(206)の移動が制御される。
【効果】 スライド操作に従ってスイング動作が実行され、それに応じてボールが移動するため、実際のゴルフをプレイしているような感覚を味わうことができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲーム装置、ゲームプログラム、ゲームシステムおよびゲーム制御方法に関し、特にたとえば、タッチパネルのようなポインティングデバイスを用いた、ゲーム装置、ゲームプログラム、ゲームシステムおよびゲーム制御方法に関する。
【背景技術】
【0002】
この種のゲーム装置の一例が特許文献1に開示されている。この特許文献1のゲーム装置では、ゴルフゲームのショット動作を行う場合、パワーゲージが表示され、操作ボタンの操作が3回行われる。1回目の操作はショット開始操作であり、2回目の操作はパワー決定操作であり、3回目の操作はインパクト位置決定操作である。具体的には、横長のパワーゲージの内部を移動するカーソルが1回目の操作で左方向に移動を開始する。カーソルが左端に到達する前に、2回目の操作を行うと、ショットするパワーが設定され、その後カーソルは右方向に移動する。そして、3回目の操作でインパクト位置が決定される。
【特許文献1】特許第4213011号[A63F 13/00]
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、特許文献1に開示されたゲーム装置では、ボタン操作のタイミングによって、飛距離やインパクト位置が決定されるため、実際のゴルフらしいプレイ感覚が得られない。つまり、正確にスイングすることによって良いショットが実現できるというプレイ感覚が得られ難い。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲーム装置、ゲームプログラム、ゲームシステムおよびゲーム制御方法を提供することである。
【0005】
また、この発明の他の目的は、ポインティングデバイスを用いた新規な操作を提供できる、ゲーム装置、ゲームプログラム、ゲームシステムおよびゲーム制御方法を提供することである。
【0006】
さらに、この発明のその他の目的は、面白味を増大させたゴルフゲームをプレイできる、ゲーム装置、ゲームプログラム、ゲームシステムおよびゲーム制御方法を提供することである。
【課題を解決するための手段】
【0007】
第1の発明は、表示部と、タッチパネルと、タッチ位置取得部と、第1判定部と、第2判定部と、移動処理部と、表示制御部とを備えるゲーム装置である。表示部は、ゲーム画像を表示する。タッチパネルは、表示部上に設けられる。タッチ位置取得部は、タッチパネルに対するタッチ入力の位置を取得する。第1判定部は、タッチパネルに対して、所定の軌跡に沿った第1方向へタッチ位置を移動させる第1スライド入力が行われたとき、当該タッチ位置が所定の軌跡に沿っている度合いを判定する。第2判定部は、第1スライド入力に続き、第1方向とは反対方向であって、所定の軌跡に沿った第2方向へタッチ位置を移動させる第2スライド入力が行われたとき、当該タッチ位置が当該所定の軌跡に沿っている度合いを判定する。移動処理部は、少なくとも、第1判定部および第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う。そして、表示制御部は、表示部にゲーム空間を表示させる。
【0008】
第1の発明によれば、所定の軌跡に沿って第1方向へ第1のスライド入力を行った後に、第1方向とは逆の第2方向へ第2のスライド入力を行わせ、各スライド入力が所定の軌跡に沿っている度合いに応じて所定のオブジェクトを移動させるので、タッチパネルを用いた新規な操作を行うゲーム装置を提供することができる。
【0009】
第2の発明は、第1の発明に従属し、ゲーム装置は、タッチパネルのタッチ領域において、軌跡を所定の太さを有する曲線で設定する軌跡設定部をさらに備える。第1判定部および第2判定部は、タッチ位置が軌跡上であるか否かを判定する。
【0010】
第2の発明によれば、所定の太さを有する曲線で軌跡を設定するので反復するような動作を指示する場合のタッチ入力がその軌跡に沿っている度合いに応じて所定のオブジェクトを移動させることができる。
【0011】
第3の発明は、第2の発明に従属し、ゲーム装置は、プレイヤによる選択操作に基づいて軌跡の太さを変更する軌跡変更部をさらに備える。移動処理部は、細い曲線が選択されたときに、太い曲線が選択されたときに比べて大きい速度でオブジェクトを移動させる。つまり、所定の軌跡に沿ってタッチ入力する場合には、太い曲線の場合に比べて、細い曲線の場合の方が、操作が困難であると考えられ、その場合には、オブジェクトを大きい速度で移動させるようにしてある。
【0012】
第3の発明によれば、所定の軌跡の太さでオブジェクトを移動させる速度を変化させるので、結果的に、タッチ操作の仕方に応じて、オブジェクトを移動させる速度を変化させることができる。
【0013】
第4の発明は、第1ないし第3の発明に従属し、ゲーム装置は、第1スライド入力前に、プレイヤの指示に基づいて軌跡を変形させる軌跡変形部をさらに備える。移動処理部は、軌跡の変形に応じて、オブジェクトの移動方向を変化させる。
【0014】
第4の発明によれば、軌跡を変形させることにより、オブジェクトの移動方向を変化させるので、オブジェクトを移動させる場合の経路を考慮したゲームの攻略が可能である。
【0015】
第5の発明は、第4の発明に従属し、所定の軌跡は、第1方向への第1スライド入力を行うための第1軌跡、および第2方向への第2スライド入力を行うための第2軌跡を含む。軌跡変形部は、第2軌跡のみを変形させる。
【0016】
第5の発明によれば、所定の軌跡のうちの第2軌跡のみを変形させるので、第2スライド入力の仕方によって、オブジェクトの移動方向に影響を与えることができる。
【0017】
第6の発明は、第4の発明に従属し、移動処理部は、軌跡の変形度合いに応じて、オブジェクトの移動方向の変化量を決定する。
【0018】
第6の発明によれば、軌跡の変形度合いに応じてオブジェクトの移動方向の変化量を決定するので、オブジェクトを移動させる経路を自由に設定することができる。
【0019】
第7の発明は、第1ないし第6の発明に従属し、ゲーム装置は、タッチ位置が軌跡の所定位置を通過したかどうかを判定する通過判定部をさらに備える。移動処理部は、通過判定部によってタッチ位置が軌跡の所定位置を通過したと判定されたとき、オブジェクトの移動を開始させる。
【0020】
第7の発明によれば、タッチ位置が軌跡の所定位置を通過した場合に、オブジェクトの移動を開始させるので、オブジェクトの移動開始をタッチ操作によって行うことができる。したがって、別途ボタン等を操作する必要がなく、操作がしやすい。
【0021】
第8の発明は、第7の発明に従属し、所定位置であり、軌跡と直交する方向に一定の幅の通過判定領域が設けられる。通過判定部は、タッチ位置が通過判定領域を通過したかどうかをさらに判定し、移動処理部は、通過判定部によってタッチ位置が通過判定領域を通過していないと判定したとき、第1判定部および第2判定部の判定結果に拘わらず、オブジェクトを移動させる。
【0022】
第8の発明によれば、タッチ位置が通過判定領域を通過していない場合には、タッチ位置が所定の軌跡に沿っているかどうかに拘わらず、オブジェクトを移動させるので、たとえば、プレイヤの意図しない移動方向や速さでオブジェクトを移動させることができる。
【0023】
第9の発明は、第1ないし第8の発明に従属し、ゲーム装置は、タッチ位置の移動速度を検出する速度検出部をさらに備える。移動処理部は、速度検出によって検出されたタッチ位置の移動速度に基づいてオブジェクトの移動速度をさらに制御する。
【0024】
第9の発明によれば、タッチ位置の移動速度に応じてオブジェクトの移動速度を変化させるので、プレイヤのタッチ操作の仕方に応じてオブジェクトの移動速度も制御することができる。
【0025】
第10の発明は、第9の発明に従属し、ゲーム装置は、速度検出部によって検出されたタッチ位置の移動速度の変化を検出する移動速度変化検出部をさらに備える。移動処理部は、移動速度変化検出部によって移動速度の変化が所定量以上であることが判定されたとき、第1判定部および第2判定部の判定結果に拘わらず、オブジェクトを移動させる。
【0026】
第10の発明によれば、第8の発明と同様に、プレイヤの意図しない移動方向や速さでオブジェクトを移動させることができる。
【0027】
第11の発明は、第1ないし第10の発明に従属し、オブジェクトは、ゴルフボールのオブジェクトであって、ゲーム装置は、ゲーム空間内において、ゴルフショットのシミュレーションを行うキャラクタの動作を制御するキャラクタ制御部をさらに備える。キャラクタ制御部は、第1スライド入力が行われている間、キャラクタをバックスイング動作のアニメーションで表示させる。また、第2スライド入力が行われている間、キャラクタを少なくともダウンスイング動作のアニメーションで表示される。
【0028】
第11の発明によれば、ゴルフゲームにおいて、タッチ操作に応じてキャラクタのスイング動作をアニメーションで表示させるとともに、判定結果に応じてゴルフボールに移動が制御されるので、プレイヤの操作がゴルフゲームにおけるキャラクタのスイング動作に反映させることができ、それに応じてゴルフボールが移動される。フリーハンドのタッチ操作で軌跡を正確にトレースすることは難しい入力であるといえるが、ゴルフにおいて正確にスイングをすることもまた同様に難しさを伴うことである。したがって、本実施例の入力では、実際のゴルフをプレイしているような緊張感や操作感を得ることができる。したがって、ゴルフゲームをプレイする面白味を増大させることができる。
【0029】
第12の発明は、ゲーム画像を表示する表示部と、表示部に関連して設けられるポインティングデバイスと、ポインティングデバイスによって指示される表示部上の入力位置を取得する入力位置取得部と、入力位置取得部によって取得された入力位置が所定の軌跡に沿った第1方向に移動される第1スライド入力が行われたとき、当該入力位置が所定の軌跡に沿っている度合いを判定する第1判定部と、第1スライド入力に続き、第1方向とは反対方向であって、所定の軌跡に沿った第2方向へ入力位置が移動される第2スライド入力が行われたとき、当該入力位置が当該所定の軌跡に沿っている度合いを判定する第2判定部と、少なくとも、第1判定部および第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う移動処理部と、表示部にゲーム空間を表示させる表示制御部を備える、ゲーム装置である。
【0030】
第12の発明においても、第1の発明にと同様に、ポインティングデバイスを用いた新規な操作を行うゲーム装置を提供することができる。
【0031】
第13の発明は、ゲーム画像を表示する表示部と、表示部上に設けられるタッチパネルを備えるゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータを、タッチパネルに対するタッチ入力の位置を取得するタッチ位置取得部と、タッチパネルに対して、所定の軌跡に沿った第1方向へタッチ位置を移動させる第1スライド入力が行われたとき、当該タッチ位置が所定の軌跡に沿っている度合いを判定する第1判定部と、第1スライド入力に続き、第1方向とは反対方向であって、所定の軌跡に沿った第2方向へタッチ位置を移動させる第2スライド入力が行われたとき、当該タッチ位置が当該所定の軌跡に沿っている度合いを判定する第2判定部と、少なくとも、第1判定部および第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う移動処理部と、表示部にゲーム空間を表示させる表示制御部として機能させる、ゲームプログラムである。
【0032】
第13の発明においても、第1の発明と同様に、タッチパネルを用いた新規な操作を行うゲーム装置を提供することができる。
【0033】
第14の発明は、ゲーム画像を表示する表示部と、表示部に関連して設けられるポインティングデバイスを備えるゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータを、ポインティングデバイスによって指示される表示部上の入力位置を取得する入力位置取得部と、入力位置取得部によって取得された入力位置が所定の軌跡に沿った第1方向に移動される第1スライド入力が行われたとき、当該入力位置が所定の軌跡に沿っている度合いを判定する第1判定部と、第1スライド入力に続き、第1方向とは反対方向であって、所定の軌跡に沿った第2方向へ入力位置が移動される第2スライド入力が行われたとき、当該入力位置が当該所定の軌跡に沿っている度合いを判定する第2判定部と、少なくとも、第1判定部および第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う移動処理部と、表示部にゲーム空間を表示させる表示制御部として機能させる、ゲームプログラムである。
【0034】
第14の発明においても、第1の発明と同様に、ポインティングデバイスを用いた新規な操作を行うゲーム装置を提供することができる。
【0035】
第15の発明は、ゲーム画像を表示する表示部と、表示部上に設けられるタッチパネルと、タッチパネルに対するタッチ入力の位置を取得するタッチ位置取得部と、タッチパネルに対して、所定の軌跡に沿った第1方向へタッチ位置を移動させる第1スライド入力が行われたとき、当該タッチ位置が所定の軌跡に沿っている度合いを判定する第1判定部と、第1スライド入力に続き、第1方向とは反対方向であって、所定の軌跡に沿った第2方向へタッチ位置を移動させる第2スライド入力が行われたとき、当該タッチ位置が当該所定の軌跡に沿っている度合いを判定する第2判定部と、少なくとも、第1判定部および第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う移動処理部と、表示部にゲーム空間を表示させる表示制御部を備える、ゲームシステムである。
【0036】
第15の発明においても、第1の発明と同様に、タッチパネルを用いた新規な操作を行うゲーム装置を提供することができる。
【0037】
第16の発明は、ゲーム画像を表示する表示部と、表示部に関連して設けられるポインティングデバイスと、ポインティングデバイスによって指示される表示部上の入力位置を取得する入力位置取得部と、入力位置取得部によって取得された入力位置が所定の軌跡に沿った第1方向に移動される第1スライド入力が行われたとき、当該入力位置が所定の軌跡に沿っている度合いを判定する第1判定部と、第1スライド入力に続き、第1方向とは反対方向であって、所定の軌跡に沿った第2方向へ入力位置が移動される第2スライド入力が行われたとき、当該入力位置が当該所定の軌跡に沿っている度合いを判定する第2判定部と、少なくとも、第1判定部および第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う移動処理部と、表示部にゲーム空間を表示させる表示制御部を備える、ゲームシステムである。
【0038】
第16の発明においても、第1の発明と同様に、ポインティングデバイスを用いた新規な操作を行うゲーム装置を提供することができる。
【0039】
第17の発明は、ゲーム画像を表示する表示部と、表示部上に設けられるタッチパネルを備えるゲーム装置のゲーム制御方法であって、(a)タッチパネルに対するタッチ入力の位置を取得し、(b)タッチパネルに対して、所定の軌跡に沿った第1方向へタッチ位置を移動させる第1スライド入力が行われたとき、当該タッチ位置が所定の軌跡に沿っている度合いを判定し、(c)第1スライド入力に続き、第1方向とは反対方向であって、所定の軌跡に沿った第2方向へタッチ位置を移動させる第2スライド入力が行われたとき、当該タッチ位置が当該所定の軌跡に沿っている度合いを判定し、(d)少なくとも、ステップ(b)およびステップ(c)における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行い、そして(e)表示部にゲーム空間を表示させる、ゲーム制御方法である。
【0040】
第17の発明においても、第1の発明と同様に、タッチパネルを用いた新規な操作を行うゲーム装置を提供することができる。
【0041】
第18の発明は、ゲーム画像を表示する表示部と、表示部に関連して設けられるポインティングデバイスを備えるゲーム装置のゲーム制御方法であって、(a)ポインティングデバイスによって指示される表示部上の入力位置を取得し、(b)入力位置取得部によって取得された入力位置が所定の軌跡に沿った第1方向に移動される第1スライド入力が行われたとき、当該入力位置が所定の軌跡に沿っている度合いを判定し、(c)第1スライド入力に続き、第1方向とは反対方向であって、所定の軌跡に沿った第2方向へ入力位置が移動される第2スライド入力が行われたとき、当該入力位置が当該所定の軌跡に沿っている度合いを判定し、(d)少なくとも、ステップ(b)およびステップ(c)における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行い、そして(e)表示部にゲーム空間を表示させる、ゲーム制御方法である。
【0042】
第18の発明においても、第1の発明と同様に、ポインティングデバイスを用いた新規な操作を行うゲーム装置を提供することができる。
【発明の効果】
【0043】
この発明によれば、所定の軌跡に沿って第1方向へ第1のスライド入力を行った後に、第1方向とは逆の第2方向へ第2のスライド入力を行わせ、各スライド入力が所定の軌跡に沿っている度合いに応じて所定のオブジェクトを移動させるので、タッチパネルを用いた新規な操作を行うゲーム装置を提供することができる。
【0044】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0045】
【図1】図1はこの発明の一実施例であるゲーム装置の外観図であり、開状態における正面を示す。
【図2】図2はゲーム装置の外観図であり、(A)が閉状態における上面を示し、(B)が閉状態における左側面を示し、(C)が閉状態における正面を示し、(D)が閉状態における右側面を示し、(E)が閉状態における背面を示し、(F)が閉状態における下面を示す。
【図3】図3は3D調整スイッチの動作を説明するための図解図である。
【図4】図4はゲーム装置の電気的構成の一例を示すブロック図である。
【図5】図5は図4の電気的構成の要部(立体LCDとSOcの一部とで構成される立体LCD制御部)を示すブロック図である。
【図6】図6は視差バリア方式による3D/2D表示の原理を説明するための図解図であり、(A)が視差バリアON状態(3D表示)を示し、(B)が視差バリアOFF状態(2D表示)を示す。
【図7】図7は仮想空間において左右2つの仮想カメラでオブジェクトを撮影する様子を示す図解図である。
【図8】図8は2つの仮想カメラによる撮影画像(カメラ間距離が最大値D0の場合)を示す図解図であり、(A)がVRAMの左画像を示し、(B)がVRAMの右画像を示し、(C)が上LCDの立体視画像(3D最大)を示す。
【図9】図9はカメラ間距離による立体視画像の変化を説明するための図解図であり、(A)がカメラ間距離の一例(0.5×D0)を示し、(B)が当該距離に対応する立体視画像(3D中)を示す。
【図10】図10はカメラ間距離による3D調整を説明するための図解図であり、(A)がカメラ間距離の他の例(最小値0)を示し、(B)が当該距離に対応する立体視画像(3D最小=2D)を示す。
【図11】図11は打撃操作を行う場合に立体LCDに表示されるゲーム画面および下LCDに表示される操作画面の一例を示す図解図である。
【図12】図12は操作画面においてバックススイングを指示する場合の例を示す図解図である。
【図13】図13は操作画面においてダウンスイングを指示する場合の例を示す図解図である。
【図14】図14は操作画面においてフォロースルーを指示する場合の例を示す図解図である。
【図15】図15は操作画面においてスイング(スライド操作)を終了した場合の例およびガイド軌跡を変形する場合の操作画面の例を示す図解図である。
【図16】図16はガイド軌跡を変形する場合の操作画面の他の例を示す図解図である。
【図17】図17はガイド軌跡を変形する場合の操作画面のその他の例を示す図解図である。
【図18】図18はバックスイング用のガイド軌跡およびダウンスイングおよびフォロースルー用のガイド軌跡を示す図解図である。
【図19】図19はガイド軌跡の変形に伴ってゲーム画面の予想軌道が変化する様子を示す図解図である。
【図20】図20は他の種類のガイド軌跡を示す図解図である。
【図21】図21はパッティングを指示する場合の操作画面の例を示す図解図である。
【図22】図22はスライド操作による描画軌跡とガイド軌跡との差分を示す図解図である。
【図23】図23は通常ショットの場合およびインテンショナルショットの場合の重みテーブルを示す図解図である。
【図24】図24は図4に示したメインメモリのメモリマップの一例を示す図解図である。
【図25】図25は図24に示したデータ記憶領域の具体的な内容を示す図解図である。
【図26】図26は図4に示したCPUの打撃処理の第1の一部を示すフロー図である。
【図27】図27は図4に示したCPUの打撃処理の第2の一部であって、図26に後続するフロー図である。
【図28】図28は図4に示したCPUの打撃処理の第3の一部であって、図27に後続するフロー図である。
【図29】図29は図4に示したCPUの打撃処理の第4の一部であって、図28に後続するフロー図である。
【図30】図30は図4に示したCPUの打撃操作の第5の一部であって、図29に後続するフロー図である。
【図31】図31は図4に示したCPUの打撃処理の第6の一部であって、図27に後続するフロー図である。
【図32】図32は図4に示したCPUのガイド軌跡の変形処理を示すフロー図である。
【図33】図33は打撃操作を行う場合に立体LCDに表示されるゲーム画面および下LCDに表示される操作画面の別の例を示す図解図である。
【発明を実施するための形態】
【0046】
図1および図2には、本発明の一実施例であるゲーム装置10の外観が示される。ゲーム装置10は、折り畳み式のゲーム装置であり、図1は開状態におけるゲーム装置10の正面を示し、図2(A)〜図2(F)は閉状態におけるゲーム装置10の上面,左側面,前面,右側面,背面および下面を示している。
【0047】
ゲーム装置10は、図1に示されるように、互いに回動可能に連結された上側ハウジング10Aおよび下側ハウジング10Bを備え、上側ハウジング10Aの正面には、裸眼3D表示に対応した立体LCD12、内側カメラ18a、3D調整スイッチ20、3Dランプ20A、ならびに左右のスピーカ22aおよび22bなどが設けられる。下側ハウジング10Bの正面には、タッチパネル16付きの下LCD14、A,B,X,Yボタン24a−24d、十字キー(ボタン)24g、ホーム,セレクト,スタートボタン24h−24j、電源ボタン24k、アナログパッド26、およびマイク30が設けられる。
【0048】
また、図2(A)に示されるように、ゲーム装置10の上面(図1に示した上側ハウジング10Aの裏面)には、3D撮影に対応した左右の外側カメラ18bおよび18cが設けられる。また、図2(C)に示されるように、ゲーム装置10の前面には、ヘッドホン端子36、および電源ランプ42aなどが設けられる。また、図2(B),図2(E)および図2(D)に示されるように、ゲーム装置10の左側面から背面に跨ってLボタン24eが設けられ、右側面から背面に跨ってRボタン24fが設けられる。また、ゲーム装置10の左側面には、音量調整スイッチ32およびSDカードスロット34などがさらに設けられ、ゲーム装置10の右側面には、無線スイッチ28、無線ランプ42bなどがさらに設けられる。上述の3D調整スイッチ20は、この右側面から露見している。また、ゲーム装置10の背面には、赤外線受発光部40などがさらに設けられる。そして、図2(E)および図2(F)に示されるように、ゲーム装置10の背面から下面に跨ってゲームカードスロット38が設けられる。
【0049】
立体LCD12は、視差バリア(パララックスバリア)方式による3D液晶(図6参照)であり、裸眼で立体視が可能な画像(裸眼立体視画像)を表示する。立体LCD12では、液晶による視差バリアをOFFすることで、平面画像の表示も可能である。なお、視差バリア方式に限らず、凹凸付のシート(レンチキュラレンズ)を利用するレンチキュラ方式や、その他の裸眼3D方式を採用してもよい。
【0050】
内側カメラ18aは平面画像(2D画像)を撮影し、外側カメラ18bおよび18cは立体視画像(3D画像)を撮影する。プレイヤを撮影した2Dまたは3Dの画像は、ゲームプログラムのようなアプリケーションプログラムへの画像入力として利用可能である。この場合、ゲームプログラムは、画像認識を行うことで、プレイヤの顔や手の動き、視線方向(眼球の向き)などを検出し、検出結果に応じた処理を実行する。内側カメラ18aによる2D画像はまた、下LCD14に表示可能であり、外側カメラ18bおよび18cによる3D画像はまた、立体LCD12に表示可能である。
【0051】
3D調整スイッチ20は、立体LCD12の表示に関して、3Dおよび2Dの間の切り替えを手動で行い、さらには、3Dでの立体感の手動調整をも行うためのスライドスイッチであり、たとえば図3のように動作する。3Dの立体感は、この実施例では、スライダSdが上端にあるとき最大(Sd=1)であり、スライダSdを下げるに従って減少し、下端にあるとき最小(Sd=0)となる。そして、スライダSdを下端まで下げきると、3Dから2Dに切り替わる。
【0052】
なお、詳細は後述するが、このような3Dの立体感の変化は、仮想空間内に配置された左右の仮想カメラ(ICLおよびICR:図7参照)の間の距離(カメラ間距離D)を変化させることによって実現される(図7〜図10参照)。つまり、3D調整スイッチ20の動作に応じて、カメラ間距離Dが調整される。そして、カメラ間距離Dは、こうして手動調整されるだけでなく、ゲームプログラムによる自動調整(後述)も受ける。
【0053】
3Dランプ20Aは、立体LCD12の表示状態を示すランプであり、3Dでは点灯し、2Dでは消灯する。なお、単に点灯よび消灯するだけでなく、3Dの程度(立体感の大小)に応じて輝度や色を変化させてもよい。
【0054】
タッチパネル16や、A,B,X,Yボタン24a−24d、十字キー(ボタン)24g、ホーム,セレクト,スタートボタン24h−24j、あるいはアナログパッド26への操作は、ゲームプログラムへのタッチ/ボタン/パッド入力として利用される。電源ボタン24kは、ゲーム装置10の電源をオン/オフするために用いられる。電源ランプ42aは、電源のオン/オフと連動して点灯/消灯する。
【0055】
マイク30は、プレイヤの発話音声や環境音などを音声データに変換する。音声データは、ゲームプログラムへの音声入力として利用可能である。この場合、ゲームプログラムは、音声認識を行うことで、プレイヤの発話音声を検出し、検出結果に応じた処理を実行する。マイク30による音声データはまた、NAND型フラッシュメモリ48(図4参照)などに記録可能である。
【0056】
スピーカ22aおよび22bは、ゲーム音声やマイク音声などを出力する。ヘッドホン端子36には、図示しないヘッドホンが接続される。音量調整スイッチ32は、スピーカ22aおよび22bの音量またはヘッドホン端子36の出力を調整するためのスライドスイッチである。
【0057】
SDカードスロット34には、カメラ画像やマイク音声などを保存するためのSDメモリカード(図示せず)が装着され、ゲームカードスロット38には、ゲームプログラムなどが格納されたゲームカード(図示せず)が装着される。赤外線受発光部40は、他のゲーム装置との間での赤外線(IR)通信に利用される。
【0058】
図4には、ゲーム装置10の電気的構成が示される。ゲーム装置10は、CPU,GPU,VRAMおよびDSPなどで構成されたSoC(System-on-a-Chip)44を含む。SoC44には、上述した立体LCD12、下LCD14、内側カメラ(Inカメラ)18a、左右の外側カメラ(OCAM−LおよびOCAM−R)18bおよび18c、A,B,X,Y,L,Rボタン24a−24f、十字ボタン24g、SDカードスロット34、ゲームカードスロット38、および赤外線受発光部(IR)40が接続される。SoC44にはまた、マイコン56を介して、上述した3D調整スイッチ(3D Vol)20、3Dランプ20A、ホーム,セレクト,スタートボタン24h−24j、電源ボタン(Power)24k、無線スイッチ(WiFi)28、音量調整スイッチ(音量Vol)32,および電源,無線ランプ42a,42bが接続される。SoC44にはさらに、IF回路58を介して、上述したタッチパネル16、左右のスピーカ22aおよび22b、アナログパッド26、マイク(Mic)30およびヘッドホン端子36が接続される。
【0059】
また、SoC44には、上述した以外の要素として、無線モジュール46、NAND型フラッシュメモリ48およびメインメモリ50が接続される。無線モジュール46は、無線LANに接続する機能を有する。NAND型フラッシュメモリ48は、カメラ画像,マイク音声など保存用のデータを記憶する。メインメモリ50は、SoC44に作業領域を提供する。すなわち、メインメモリ50には、ゲームなどのアプリケーションで用いられる各種のデータやプログラムが記憶され、SoC44はメインメモリ50に記憶されたデータやプログラムを利用して作業を行う。
【0060】
マイコン56には、電源管理IC52および加速度センサ54が接続される。電源管理IC52はゲーム装置10の電源管理を行い、加速度センサ54はゲーム装置10の3軸方向の加速度を検出する。加速度センサ54の検出結果は、ゲームプログラムへの動き入力として利用可能である。この場合、ゲームプログラムは、検出結果に基づいてゲーム装置10自体の動きを計算し、計算結果に応じた処理を実行する。また、マイコン56は、RTC(リアルタイムクロック)56aを含み、RTC56aで時間をカウントしてSoC44に供給する。
【0061】
図5には、立体LCD12とSoC44の一部とで構成される立体LCD制御部12Aが示される。立体LCD12は、LCDコントローラ12a、バリア液晶12bおよび上LCD12cを含む。バリア液晶12bは、図6(A)に示されるように、縦(列)方向に伸びる複数の液晶スリットを含み、バックライトからの光を複数の液晶スリットで交互に遮ることによって、右目および左目に上LCD12cの異なる列の画素を通過した光が見えるようにする。上LCD12cは、下LCD14と同様、普通の(2D表示用の)液晶でよい。LCDコントローラ12aは、GPU44bひいてはCPU44aの制御下で、上LCD12cに描画を行い、かつバリア液晶12b(への印加電圧)をON/OFFする。バリア液晶12bをOFFすると、図6(B)に示されるように、右目および左目には、上LCD12cのどの列の画素を通過した光も見えるようになる。
【0062】
詳しくは、たとえば図7に示すように、仮想空間内で、オブジェクトOb1およびOb2を、左右に間隔(D=D0)を空けて配置された左仮想カメラICLおよび右仮想カメラICRで撮像する場合、CPU44aの制御下で、GPU44bがVRAM44cに図8(A)および図8(B)のような左画像44Lおよび右画像44Rを書き込み、LCDコントローラ12aは、VRAM44cに記憶された左画像44Lおよび右画像44Rを1列ずつ交互に読み出して、上LCD12cに順番に描画していく。これによって、上LCD12cには、図8(C)のような立体視画像(立体視を実現するための画像)が表示される。立体視画像へのバックライト光をバリア液晶12bで制限すると、左目には図8(A)のような左画像44Lが見え、右目には図8(B)のような右画像44Rが見える結果、裸眼による立体視が実現される。
【0063】
なお、図5には、立体LCD12に対応して、LCDコントローラ12a、GPU44bおよびVRAM44cが設けられるように示してあるが、当然に、下LCD14に対応して、LCDコントローラ、GPUおよびVRAMが設けられている。図5を参照して分かるように、下LCD14に対応するGPUもまた、CPU44aと信号を送受信可能に接続され、下LCD14に対応するGPUとVRAMとは信号を送受信可能に接続される。そして、CPU44a、下LCD14に対応するGPU、およびVRAMのそれぞれが、下LCD14に対応するLCDコントローラと信号を送受信可能に接続され、このLCDコントローラに下LCD14が接続されるのである。
【0064】
ところで、先述したように、図8(C)の立体視画像は、カメラ間距離Dが最大(D=D0:図7参照)のときの画像であり、カメラ間距離Dが図9(A)さらには図10(A)のように短くなるに従って、図9(B)さらには図10(B)のように変化する。カメラ間距離Dは、次式(1)で計算される。
【0065】
D=Sd×Pd×D0 …(1)
ここで、Sdは、図3に示した3D調整スイッチ20におけるスライダSdの値を示す変数であり、スライダSdの動作に応じて0から1の範囲で変化する(0≦Sd≦1)。Pdは、ゲームプログラムによって制御される変数であり、同じく0から1の範囲で変化する(0≦Pd≦1)。D0は、人間の2つの瞳の間隔に対応した定数であり、たとえば65mmに設定される(D0=65mm)。
【0066】
図7,図9(A)および図10(A)では、いずれも変数Sdは1であり、スライダSdは上端に固定されている(Sd=1)。ゲームプログラム72によって変数Pdが1→0.5→0のように変化する結果、カメラ間距離DはD0→(0.5×D0)→0のように変化している。そして、このようなカメラ間距離Dの短縮方向への変化に応じて、立体視画像は、図8(C)→図9(B)→図10(B)のように変化する。つまり、左画像44Lおよび右画像44Rの間の視差が減少していき、ついには平面画像と同等になる。
【0067】
なお、変数Sdがたとえば0.5に固定されていれば(Sd=0.5)、カメラ間距離Dは0から(0.5×D0)の範囲内で変化する。また、変数Sdがたとえば0に固定されていれば(Sd=0)、カメラ間距離Dは0のままである。
【0068】
図10(A)の状態つまり3D最小ないし2Dの場合、カメラ間距離Dは0なので、VRAM44cに書き込まれる左画像44Lおよび右画像44Rは同一(つまり視差が0)となる。この場合も、LCDコントローラ12aは、VRAM44cに記憶された左画像44Lおよび右画像44Rを1列ずつ交互に読み出して、上LCD12cに順番に描画していく。これによって、上LCD12cには、図10(B)のような平面画像(つまり視差のない画像)が表示される。立体視画像へのバックライト光を制限するバリア液晶12bをOFFすると、左右どちらの目にも、図10(B)のような平面画像が見える結果となる。
【0069】
なお、このときバリア液晶12bをOFFしなくても、図10(B)の平面画像が見える結果に変わりはない。ただし、バリア液晶12bをOFFすると、適視位置が拡大し、平面画像が明るく見えるようになる。また、LCDコントローラ12aは、交互読み出しを行う代わりに、左画像44Lおよび右画像44Rのいずれか一方を読み出して、上LCD12cに描画してもよい。この場合も、上LCD12cには、図10(B)のような平面画像が表示される。
【0070】
たとえば、電源ボタン24kがオンされ、ゲーム装置10の主電源がオンされると、ゲーム装置10が起動され、図示しないメインメニュー画面が下LCD14に表示される。メインメニュー画面では、ゲーム装置10で実行可能な仮想ゲームなどのアプリケーションの実行を指示することができる。この実施例の仮想ゲーム(ゴルフゲーム)の実行が指示されると、ゴルフゲームが開始され、図示しない初期画面において、プレイヤによって、プレイヤキャラクタが選択されたり、プレイするコースが選択されたりする。
【0071】
打撃操作を行う場合には、図11(A)に示すようなゲーム画面100が立体LCD12に表示されるとともに、図11(B)に示すような操作画面200が下LCD14に表示される。図11(A)に示すゲーム画面100には、プレイヤキャラクタ102が表示される。図11(A)から分かるように、プレイヤキャラクタ104はゴルフクラブ(以下、単に「クラブ」という)104を持っており、ゴルフボール(以下、単に「ボール」という)106を打撃する体勢に入った状態(アドレスの状態)で示される。また、ゲーム画面100には、予想されるボール106の軌道(移動軌跡)および着弾点を示す予想軌道110が表示される。この予想軌道110は、ボール106の飛び出し方向(ショット方向)、クラブ104の種類(クラブ飛距離Lmax)およびショットの種類(ストレート、フェード、スライス、フック、ドロー)に応じて変化される。
【0072】
また、ゲーム画面100には、その左下部に表示領域120および表示領域122が設けられる。表示領域120には、プレイヤキャラクタ102が使用するクラブ104の種類(ここでは、3番アイアン(3I))が表示される。また、表示領域122には、仮想のゲーム空間内における現在のボール106の位置からグリーンないしカップまでの距離(ここでは、210ヤード(Y))が表示される。
【0073】
詳細な説明は省略するが、ゲーム画面100では、仮想のゲーム空間すなわちゴルフコース(ホール)をプレイヤキャラクタ102の後方から見た画像が仮想カメラ(図示せず)で撮影され、その撮影画像が背景画像として表示される。
【0074】
なお、プレイヤキャラクタはゲーム画面200にも表示されるので、図33(A)に示すように、ゲーム画面100においては、より広範囲にホールの状況を確認できるように、遠距離からの視点や俯瞰的な視点にしてもよい。
【0075】
なお、図示は省略するが、ゲーム画面100に、風の有無、風の向きおよび風速を図柄(矢印)および文字で示してもよい。
【0076】
図11(B)に示す操作画面200には、プレイヤキャラクタ202が表示される。また、プレイヤキャラクタ202は、クラブ204を持っており、打撃操作が実行されるまでは、ゲーム画面100と同様に、プレイヤキャラクタ202はボール206(図12等を参照)を打撃するためのアドレスの状態で示される。詳細な説明は省略するが、ゲーム画面100に表示されるプレイヤキャラクタ102、クラブ104、ボール106と、操作画面200に表示されるプレイヤキャラクタ202、クラブ204、ボール206とは同一であり、それぞれ異なる画面に表示されているだけである。図33(B)に示すように、操作画面200にも背景が表示されるようにしてもよい。
【0077】
また、操作画面200には、プレイヤに打撃操作(スライド操作)を実行させるための軌跡(ガイド軌跡)210が表示される。ガイド軌跡210は、円の一部を消去した形状で示される。したがって、ガイド軌跡210は、2つの端点210a、210bを有している。また、ガイド軌跡210の最下端部に、スイングの開始判定およびインパクトの判定を行うための判定画像212が表示される。たとえば、判定画像212は、縦長の長方形で示される。
【0078】
この実施例では、判定画像212をタッチオンすることにより、スイング動作の指示を開始し、ガイド軌跡210をトレースするように、時計回りの方向にスライド操作を実行すると、プレイヤキャラクタ202にバックスイングさせることができる。そして、端点210aを超えない範囲で、スライド操作の方向を反転し、反時計回りの方向にスライド操作を実行すると、プレイヤキャラクタ202にダウンスイングさせることができる。さらに、インパクト位置すなわち判定画像212を超えて、反時計回りの方向にスライド操作を実行すると、プレイヤキャラクタ202にフォロースルーさせることができる。ただし、タッチオフした位置でスイング動作は終了されるが、タッチオフしなくても、端点210bまでスライド操作を実行すると、プレイヤキャラクタのスイング動作は終了される。
【0079】
さらに、操作画面200には、スイング(打撃操作)すなわちスライド操作の正確さなどを表示するための教示画像220が右上部に表示される。教示画像220は円で示され、スイング(打撃操作)に関する3つの要素(パラメータ)を表現するための目盛がその内部に表示される。この実施例では、教示画像220は、スイング(打撃操作)の正確さ(コントロール:C)、速さ(スピード:Sp)および滑らかさ(スムーズ:Sm)を示す。この3つのパラメータは、仮想のゲーム空間におけるボール106(206)の飛距離(移動速度)や移動(飛行)方向に影響を及ぼしたり、ミスショットかどうかの判定に用いられたりする。
【0080】
なお、この実施例では、教示画像220を円で示してあるが、これに限定される必要はない。スイング(打撃操作)の正確さ、速さおよび滑らかさのそれぞれを棒グラフや単なる数値で示してもよい。
【0081】
また、図11(B)に示すような操作画面200が表示されている状態で、ホームボタン24hを操作すると、図示は省略するが、選択画面が表示され、この設定画面において、使用するクラブ104(204)を変更(選択)したり、ショットタイプの変更を選択したりすることができる。
【0082】
さらに、図11(B)に示すような操作画面200が表示されている状態で、十字キー(ボタン)24gの左右のボタンを操作することにより、プレイヤキャラクタ202の向きを変更することができ、その向きによって、ボール106(206)の打ち出し方向(ショット方向)を変更することができる。また、詳細な説明は省略するが、図11(B)に示すような操作画面200が表示されている状態で、十字キー(ボタン)24gの上下ボタンを操作することにより、ボール106(206)を打つ位置(高さ方向の位置)を変更することもできる。
【0083】
この実施例では、プレイヤキャラクタ202のスイング動作と、プレイヤのスライド操作とは連動する。簡単に説明すると、操作画面200において、タッチペンや指などによって、ガイド軌跡210をトレースするようにスライド操作を実行すると、これに伴って、プレイヤキャラクタ202は、バックスイング、ダウンスイング、フォロースルーの動作をするように、そのアニメーションが表示される。
【0084】
図示は省略するが、たとえば、プレイヤキャラクタ202がスイングする場合のアニメーションは、90コマ(90アニメーションフレーム)で構成される。たとえば、アニメーションフレームが第0フレームの場合には、プレイヤキャラクタ202がトップ位置までクラブ104を振り上げた状態である。第1フレームからフレーム数が増加するに従って、ダウンスイングを実行するように、プレイヤキャラクタ202の姿勢およびクラブ204の角度が変化され、第60フレームでプレイヤキャラクタ202がボール206を打撃する状態(インパクトの状態)になる。さらに、フレーム数が増加することにより、フォロースルーを実行するように、プレイヤキャラクタ202の姿勢およびクラブ204の角度が変化され、第90フレームでプレイヤキャラクタ202がスイングを終了した状態になる。
【0085】
したがって、操作画面200が表示された当初では、プレイヤキャラクタ202は、アニメーションフレームが第60フレームで停止された状態で表示される。この状態において、プレイヤが判定画像212をタッチすると、アニメーションフレームのフレーム番号が減少するように再生(逆再生)が開始される。したがって、上述したように、プレイヤがガイド軌跡210に沿って時計回りの方向にスライド操作を行うと、それに従って、バックスイングしているようにプレイヤキャラクタ202が表示される。プレイヤがスライド操作を反転すると、反転された時点から、アニメーションフレームのフレーム番号が増加するように再生(順再生)が開始される。したがって、上述したように、プレイヤがガイド軌跡210に沿って反時計回りの方向にスライド操作を行うと、それに従って、ダウンスイングしているようにプレイヤキャラクタ202が表示される。
【0086】
なお、詳細な説明は省略するが、スライド操作の速さに応じてアニメーションフレームの再生速度(アニメーションフレームの更新速度)を変化させることにより、スライド操作とスイング動作(アニメーション)とを同期させることができる。
【0087】
その後もアニメーションフレームのフレーム番号が増加するように順再生され、スライド操作がインパクト位置(判定画像212の表示位置)を通過するとき、アニメーションフレームのフレーム番号が補正される。具体的には、スライド操作がインパクト位置を通過するときに、アニメーションフレームのフレーム番号が「60」未満である場合には、アニメーションフレームの更新速度を加速させて第60フレームまで進行させる。したがって、スライド操作による打撃の指示と、プレイヤキャラクタ202がボール206を打撃する動作が同期される。ただし、インパクトの時点において、アニメーションフレームのフレーム番号が「60」を超えている場合には、アニメーションフレームは補正されない。スイングの方向が逆向きになってしまうからである。
【0088】
その後も、アニメーションフレームのフレーム番号が増加するように順再生され、スライド操作に従って、フォロースルーしているようにプレイヤキャラクタ202が表示される。そして、プレイヤがタッチオフすると、スイングの指示についてのスライド操作が終了され、このとき、アニメーションフレームの再生が停止される。ただし、タッチオフされない場合であっても、タッチ位置が端点210bに到達すると、スイングの指示が終了される。
【0089】
なお、上述の実施例ではアニメーションフレームが少なくて済むが、別の実施例として、アドレス状態からバックスイング、ダウンスイングおよびフォロースルーまでの一連のアニメーションを順に再生するようにしても当然構わない。そのようにすれば、バックスイングとダウンスイングでのプレイヤキャラクタ202の姿勢に微妙な違いをつけることができ、より実際に近いアニメーションを表示させることができる。
【0090】
上述したように、この実施例では、スイング(打撃操作)すなわちスライド操作の正確さ(C)、速さ(Sp)および滑らかさ(Sm)の3つの指標(パラメータ)が、仮想のゲーム空間におけるボール106(206)の飛距離(移動速度)や移動(飛行)方向に影響を及ぼしたり、ミスショットかどうかの判定に用いられたりする。
【0091】
図12(A)に示すように、スライド操作が開始され、プレイヤキャラクタ202がスイング動作を実行すると、スライド操作に従って描画軌跡230が操作画面200上に表示される。図12(A)(図12(B)−図15(A)、図22も同じ)では、描画軌跡230を点線で示してあるが、実際にはガイド軌跡210と同様に、実線で表示される。ただし、ガイド軌跡210と描画軌跡230とを区別するために、線の太さや色を変えたりするようにしてある。
【0092】
また、分かり易く示すために、図12(A)に示す操作画面200(図12(B)−図15(A)も同様)では、タッチ位置を矢印の指示画像240で示してあるが、これは表示されなくてもよい。ただし、タッチパネル16以外のポインティングデバイスを使用する場合には、このような指示画像240が表示される必要がある。
【0093】
また、スライド操作に従って、教示画像220が変化する。この実施例では、スライド操作の正確さ、速さおよび滑らかさのそれぞれが所定の条件を満たす場合に、各パラメータの値が増加される。たとえば、各パラメータは、0(最小値)〜100(最大値)で設定される。したがって、100(最大値)を超える場合には、(100)最大値に補正される。また、スライド操作の正確さは、描画軌跡230がガイド軌跡210を正しくトレースしているかどうか、つまりタッチ位置がガイド軌跡210上であるかどうかで、所定の条件を満たすかどうかが判断される。また、スライド操作の速さは、予め決定された所定範囲内である(たとえば、タッチ位置が1ゲームフレームの間に1〜5ドット変化した)かどうかで、所定の条件を満たすかどうかが判断される。さらに、スライド操作の滑らかさは、スライド操作の速度の変化量、すなわち現在のスライド操作の速度とこの1つ手前のゲームフレームのスライド操作の速度との差が所定範囲(2〜3ドット/ゲームフレーム)内であるかどうかで、所定の条件を満たすくかどうかが判断される。ただし、1ゲームフレームは、画面更新単位時間(1/60秒)である。
【0094】
したがって、図12(A)に示す状態からスライド操作が継続されると、図12(B)に示すように、スライド操作に伴ってスイング動作が進行し、スライド操作の正確さ、速さ、滑らかさがそれぞれ所定の条件を満たす場合には、各パラメータの値が加算(蓄積)され、指標画像220aが変化される。指標画像220aは、各パラメータの数値を曲線で結ぶことにより円形状で表示される。指標画像220aが真丸に近い程、スライド操作の3つのパラメータのバランスが良いことを意味し、指標画像220aの形状が円から遠ざかるに従って、スライド操作の3つのパラメータのバランスが悪いことを意味する。
【0095】
図13(A)に示すように、たとえば、タッチ位置が端点210aに来たときに、プレイヤがスライド操作を折り返す(反転する)と、ダウンスイングの指示に移行する。たとえば、ガイド軌跡210の端点210aまでスライド操作を行った場合には、プレイヤキャラクタ202が持っているクラブ204はトップ位置に来た状態(第1フレーム)となる。また、この実施例では、分かり易く示すために、スライド操作が反転されたときに、描画軌跡230(バックスイングについての描画軌跡230)が消去(非表示)される。
【0096】
なお、ここでは、端点210aまでスライド操作を行った場合について示してあるが、プレイヤがガイド軌跡210の端点210aに到達する前に、スライド操作を反転させることにより、バックスイング量を調整することができる。したがって、ボール106(206)の移動距離を変化させることができる。これは、通常のゴルフと同様のゲーム処理を行うためである。
【0097】
また、この実施例では、スライド操作が反転されたときに、描画軌跡230を非表示するようにしてあるが、非表示しなくてもよい。たとえば、描画軌跡230の種類(色や太さなど)を変えて、ダウンスイングの指示のためのスライド操作に従う描画軌跡230と区別してもよい。
【0098】
さらに、詳細な説明は省略するが、スライド操作(スイング)中は、スライド操作の正確さ、速さおよび滑らかさは常に判定され、したがって、図13(A)および図13(B)に示すように、次第に指標画像220aが変化(増加)される。
【0099】
そして、図14(A)に示すように、スライド操作が、判定画像212が表示される位置(インパクト位置)を通過するとき、インパクトの判定が行われる。この実施例では、描画軌跡230が判定画像212上を通った場合には、基本的に、プレイヤキャラクタ202がボール206を正しく打ったことが判定される。一方、描画軌跡230が判定画像212上を通らない場合には、プレイヤキャラクタ202が空振りしたり、プレイヤキャラクタ202が撃ったボール106がチョロになったりしたことが判定される。ここで、「チョロ」とは、ミスショットでボール106が少し(数ヤード)しか転がらないことを意味する。ただし、インパクトの判定において、スライド操作(描画軌跡230)が判定画像212上を通った場合であっても、スライド操作の滑らかさの値が所定値(たとえば、50)以下である場合には、ミスショット(シャンク、ダフリまたはテンプラ)と判定される。ここで、シャンクとは、ボール106(206)がクラブフェイスのネック寄りにあたり、急激に右方向(左打者の場合には左方向)に飛ぶことを意味する。また、ダフリとは、ボール106(206)の下側の地面をクラブ104(204)のヘッドで叩いてしまうことにより、ボール106(206)がほとんど飛ばないことを意味する。さらに、テンプラとは、打撃したボール106(206)が高く上がり過ぎてしまい、超高弾道になることを意味する。
【0100】
なお、インパクトにおいて、スライド操作(描画軌跡230)が判定画像212上を通らない場合には、空振りまたはチョロがランダム(任意)に設定される。また、インパクトにおいて、スライド操作(描画軌跡230)が判定画像212上を通る場合であっても、スライド操作の滑らかさの値が所定値以下である場合には、シャンク、ダフリまたはテンプラがランダムに設定される。
【0101】
スライド操作が判定画像212の表示位置を超えるとき、ダウンスイングが終了され、上述したように、インパクトの判定がなされ、その結果に応じてボール206が移動を開始する。さらに、図14(B)に示すように、スライド操作が継続されると、プレイヤキャラクタ202がフォロースイングを行うアニメーションが表示される。そして、プレイヤがタッチオフしたり、タッチ位置が端点210bに到達したりすると、図15(A)に示すように、スライド操作が終了となり、スイング動作が終了される。
【0102】
図15(A)に示すように、スイング動作(スライド操作)を終了すること、後述するようにボール106の軌道が算出されて、ボール106が仮想のゲーム空間内を移動する。プレイヤは、図15(A)に示すように、各指標の値(指標画像220a)が確定した教示画像220を参照することにより、スイングの指示の全体についてのスライド操作の正確さ、速さ、滑らかさを知ることができる。
【0103】
なお、図示は省略するが、下LCD14の操作画面200には、ボール206を打った直後までの様子が表示され、その後のボール106が移動する様子については、立体LCD12のゲーム画面100に表示される。
【0104】
プレイヤがスライド操作を終了すると、ボール106(206)の弾道(軌道)が算出される。この実施例では、スライド操作の速さおよび滑らかさがボール106の飛距離(移動速度)に影響し、スライド操作の正確さがボール106の移動方向(曲がり具合)に影響する。
【0105】
具体的には、実際のゴルフと同様に、クラブ104の種類によって、基準となる飛距離(クラブ飛距離Lmax)が決定される。この実施例では、飛距離(クラブ飛距離Lmax)が決定されるようにしてあるが、ボール106の基準となる移動速度が決定されているともいうことができる。これは、移動速度が速ければ、飛距離は長くなるし、移動速度が遅ければ、飛距離は短くなるからである。また、一般的には、バックスイング量で実際の飛距離Lを調整するため、この実施例では、スライド操作が反転された位置で決まるバックスイング量によってクラブ飛距離Lmaxを調整する。つまり、判定画像212が表示された位置から端点210aまでのガイド軌跡210の長さに対する、判定画像212が表示された位置(スライド操作の開始位置)からスライド操作が判定された位置までの描画軌跡230(バックスイングを指示するスライド操作についての描画軌跡230)の長さの割合(バックスイング量の割合)P(0<P≦1)によって、クラブ飛距離Lmaxが調整される。
【0106】
また、スライド操作の速さおよびスライド操作の滑らかさも、飛距離Lに影響を与える。この実施例では、スライド操作の速さに基づく補正値α(0<α≦1)およびスライド操作の滑らかさに基づく補正値β(0<β≦1)によって、さらにクラブ飛距離Lmaxが調整される。詳細な説明は省略するが、ライの状態(フェアーウェイ、バンカー、ラフ)、風および雨の影響による補正値γ(0<γ≦1)によって、さらにクラブ飛距離Lmaxが調整される。ただし、補正値αおよび補正値βは、スライド操作時に加算(蓄積)されるスライド操作の速さおよび滑らかさの値(0〜100)を100で割ることにより求められる。また、補正値γは、ゲームプログラムによって自動的に決定される。
【0107】
[数1]
L=Lmax×P×α×β×γ
なお、インパクトにおけるクラブヘッドの速さは、飛距離Lに多大な影響を与えると考えられるため、判定画像212を横切る際のスライド操作の速さが所定値未満である場合には、スライド操作の速さの値に基づいて決定される補正値α(0.3を超えているものとする)に拘わらず、補正値αを0.3に強制的に設定するようにしてもよい。
【0108】
また、上述したように、プレイヤは打撃操作の前に、設定画面において、ショットタイプ(ドロー、フック、フェード、スライス)の変更を選択することができる。かかる場合には、プレイヤの操作に従ってガイド軌跡210が変形される。具体的には、ショットタイプを変更することが選択されると、図15(B)に示すように、たとえば、操作画面200のガイド軌跡210の左端部にポイント画像250が表示される。
【0109】
このポイント画像250をドラッグすると、ガイド軌跡210を変形させることができ、これによって、ショットタイプおよび曲がり具合を決定することができる。ただし、図15(B)に示すように、下LCD14には2次元の座標系が設定されており、その横方向がX軸方向であり、その縦方向がY軸方向である。また、下LCD14の左上の頂点が原点であり、右方向がX軸のプラス方向であり、下方向がY軸のプラス方向である。
【0110】
たとえば、図16(A)および図16(B)に示すように、ポイント画像250を操作画面200の左下方向にドラッグすると、ショットタイプとして、フェードまたはスライスを選択することができる。また、図17(A)および図17(B)に示すように、ポイント画像250を操作画面の右上方向にドラッグすると、ショットタイプとして、フックまたはドローを選択することができる。
【0111】
ショットタイプは、ポイント画像250の表示位置のY座標に応じて決定される。たとえば、下LCD14の縦の長さ(たとえば192ドット)が4等分され、Y座標が1−48ドットであれば、フックが選択され、Y座標が49−96ドットであれば、ドローが選択され、Y座標が97−144であれば、フェードが選択され、Y座標が145−196であれば、スライスが選択される。
【0112】
また、ポイント画像250の表示位置のX座標に応じて、曲がり量が決定される。この実施例では、ポイント画像250の初期位置である場合に、曲がり量は最小に設定され、ポイント画像250のX座標の値が小さくなるにつれて曲がり量が大きくされる。詳細な説明は省略するが、曲がり量は、ショットタイプ毎に、ポイント画像250のX座標に応じて予め決定されているものとする。
【0113】
なお、ガイド軌跡210を変形させる技術としては、一般的なグラフィックソフトで利用されているような既存の技術を用いることができる。この軌跡を変形させる技術自体は、本願発明の本質的な内容ではないため、その詳細な説明は省略することにする。
【0114】
また、ポイント画像250の位置に応じて、ガイド軌跡210のうち、フォロースルーについてのスライド操作を実行する部分も変形される。この実施例では、図16(A)および図16(B)に示すように、ショットタイプがフェードやスライスの場合には、ガイド軌跡210の端点210bが円の外側に開くように変形される。ただし、開く量は、ショットタイプと、ポイント画像250のX座標に応じて予め決定されている。軌跡の変形は、上述したような既存の技術が採用される。以下、同じ。
【0115】
ガイド軌跡210の変形操作においては、たとえばタッチ前はガイド軌跡210を半透明にし、タッチ後に通常表示する等して、変形モードであることを視覚的にわかりやすくしてもよい。
【0116】
また、図17(A)および図17(B)に示すように、ショットタイプがフックやドローである場合には、ガイド軌跡210の端点210bが円の内側に閉じるように変形される。ただし、閉じる量は、ショットタイプと、ポイント画像250のX座標に応じて予め決定されている。
【0117】
なお、タッチオフすると、タッチオフしたときのタッチ位置にポイント画像250の位置が決定され、これに従って、ショットタイプおよび曲がり量が決定される。その後、判定画像212がタッチオンされ、打撃操作の開始が判定されたときに、ショットタイプおよび曲がり量が確定される。したがって、一旦ポイント画像250の位置を決定しても、打撃操作を開始するまでは、ポイント画像250の位置を変更することができる。
【0118】
このように、インテンショナルショット(フェード、スライス、フック、ドロー)にショットタイプを変更する場合には、ガイド軌跡210が変形される。これは、通常のゴルフにおいて、ストレートの打球を打つよりも、インテンショナルショットを打つ方が難しいからであり、この仮想ゲームにおいても、ガイド軌跡210を円の形状から変形させ、さらに、曲がり量を大きくする場合には、その変形量を大きくすることにより、単なる円運動でスライド操作するよりも、スライド操作を困難にしてある。
【0119】
ただし、通常のゴルフにおいては、インテンショナルショットを打つ場合であっても、バックスイング自体はストレートを打つ場合とほとんど変わらない。このため、この実施例においても、ダウンスイングとフォロースルーを指示するスライド操作を、通常のショットを打つ場合と異なるようにして、インテンショナルショットを打つことができるようにしてある。
【0120】
つまり、図16(A)−図17(B)では、分かり易く示すために省略したが、ガイド軌跡210は、図18(A)および図18(B)に示すように、バックススイング用のガイド軌跡2100とダウンスイングおよびフォロースルー用のガイド軌跡2102とによって構成される。通常、ガイド軌跡2100とガイド軌跡2102とが重なった状態で示される。したがって、図16(A)−図17(B)に示したように、ガイド軌跡210が変形された場合には、ガイド軌跡2102が変形されるだけであり、ガイド軌跡2100はそのままである。したがって、プレイヤは、バックスイングを指示する場合には、通常のショットと同様に、円形のガイド軌跡2100をトレースするようにスライド操作を実行し、ダウンスイングおよびフォロースルーを指示する場合に、変形したガイド軌跡2102をトレースするようにスライド操作を実行するのである。これによって、インテンショナルショットを打つ場合の困難性を表現してある。
【0121】
また、図16(A)−図17(B)に示したように、ポイント画像250をドラッグした場合には、立体LCD12に表示されるゲーム画面100において、予想軌道110が変化される。たとえば、フェードやスライスが選択された場合には、図19(A)に示すように、ボール106が斜め左方向に飛び出した後に、次第に右方向に曲がる予想軌道110が表示される。また、フックやドローが選択された場合には、図19(B)に示すように、ボール106が斜め右方向に飛び出した後に、次第に左方向に曲がる予想軌道110が表示される。
【0122】
詳細な説明は省略するが、予想軌跡110は、シミュレーションによって求められる。このとき、ボール106の飛距離Lはクラブ飛距離Lmaxのみで決定され、ポイント画像250の位置(XY座標)に応じて決定されるショットタイプと曲がり量とに応じて、ボール106の飛び出し方向(ショット方向)および曲がり量が決定される。
【0123】
また、この実施例では、選択したクラブ104(204)に応じて、ガイド軌跡210の太さが変化される。これは、通常のゴルフにおいても、クラブによってショットの難しさが異なるためである。一般的には、長いクラブの方が短いクラブよりもショットが困難である。したがって、この実施例では、ガイド軌跡210の太さを、クラブ104(204)の種類に応じて、3種類(太い、中、細い)に分類してある。これによって、ガイド軌跡210の種類が「中」や「太い」である場合には、ガイド軌跡210上をトレースし易くなり、スライド操作の正確さが向上される。つまり、クラブ104が短くなるにつれて、正確なショットが打ちやすくなる。
【0124】
たとえば、図11−図18までに示したガイド軌跡210の種類は「細い(1ドット)」であり、図20(A)には、種類が「中(2ドット)」であるガイド軌跡210が示され、そして、図20(B)には、種類が「太い(3ドット)」であるガイド軌跡210が示される。この実施例では、クラブ104が1W(ウッド)−3Wまたは1I(アイアン)−3Iが選択された場合には、ガイド軌跡210の種類が「細い」に設定される。また、クラブ104が4W、5W、4I−8Iが選択された場合には、ガイド軌跡210の種類が「中」に設定される。そして、クラブ104が9I、SW(サンドウェッジ)、PW(ピッチングウェッジ)、PT(パター)が選択された場合には、ガイド軌跡210の種類が「太い」に設定される。
【0125】
なお、このガイド軌跡210の太さの分類は、単なる一例であり、どのクラブ104が選択された場合にガイド軌跡210の太さをどれに設定するかは、この仮想ゲームの開発者ないし設計者が任意に設定する事項である。また、この実施例では、ガイド軌跡210の太さを3種類で設定するようにしたが、2種類または4種類以上で設定するようにしてもよい。また、実際にあるクラブ以外にも、特別なショットが打てる特別なクラブを設定するようにしてもよい。そのような特別なクラブの例として、ガイド軌跡210が少なくとも一部表示されない等、正確な入力を非常に難しくする一方で、正確に入力ができた場合には飛距離が非常に大きいショットであるとか、必ずグリーンにオンするショットのような特別なショットが打てるようにすると、ゴルフゲームとしての興趣を一層高めることができる。
【0126】
詳細な説明は省略するが、図21に示すように、パッティング動作を指示する場合には、ガイド軌跡210の形状が異なる。これは、通常のゴルフの場合においても、パッティングのスイングが他のクラブ104のスイングとは異なるからである。図21に示すように、ガイド軌跡210はほぼ直線状に設定される。また、上述したように、PTが選択された場合には、ガイド軌跡210の種類は「太い」に設定される。
【0127】
この場合にも、判定画像212がタッチされると、スイングの開始が判定され、左方向にスライド操作を行うと、それに従って描画軌跡230が表示され、スライド操作が反転されたときに、バックスイング量の割合Pが決定され、右方向にスライド操作して、判定画像212の位置を通過したときに、ボール106(206)がショットされる。このとき、スライド操作(描画軌跡230)が判定画像212上を通っていない場合には、空振りとなる。一方、スライド操作(描画軌跡230)が判定画像212上を通った場合には、バックスイング量の割合P、スライド操作の速さ(補正値α)、スライド操作の滑らかさ(補正値β)によって、ボール106(206)の移動距離(ここでは、転がる距離)が決定され、スライド操作の正確さ(ガイド軌跡210と描画軌跡230の差分)によって、ボール106(206)の移動方向(ここでは、飛び出し方向すなわち移動開始時の方向のずれ量)が変化される。
【0128】
なお、パッティングの場合にも、ライの状態、風および雨による影響(補正値γ)がある。
【0129】
また、詳細な説明は省略する、パッティングの場合のアニメーションは、別途用意されており、パッティングの場合には、他のクラブ104によるショットの場合とは異なるアニメーションが表示される。その再生方法などは、上述した場合と同様である。
【0130】
また、この実施例では、上述したように、スライド操作の正確さによってボール106(206)の軌道(移動軌跡)が変化される。つまり、ガイド軌跡210と描画軌跡230との差が検出され、これによってボール106(206)の移動に影響が及ぼされるのである。この起動の変化は、インテンショナルショットによってボール106の軌道が変化されるのとは異なり、プレイヤの意図していない変化である。
【0131】
この実施例では、ガイド軌跡210と描画軌跡230とによって形成される閉領域の面積を、ガイド軌跡210の内側と外側とに分けてそれぞれ算出し、その合計値で曲がり量を決定するとともに、外側の面積と内側の面積との大きさに応じて曲がる方向を決定するようにしてある。ただし、上述したように、バックスイングの場合と、ダウンスイングおよびフォロースルーの場合とでは、ガイド軌跡210(2100、2102)が異なるため、それぞれの場合について示してある。図22(A)には、時計回りのスライド操作(バックスイングの指示)を行った場合の描画軌跡230とガイド軌跡210(2100)とが示される。また、図22(B)には、反時計回りのスライド操作(ダウンスイングおよびフォロースルーの指示)を行った場合の描画軌跡230とガイド軌跡210(2102)とが示される。
【0132】
図22(A)および図22(B)では、ガイド軌跡210の内側に形成される閉領域に斜線を付すとともに、ガイド領域210の外側に形成される閉領域に斑点模様を付してある。ただし、閉領域の面積は、それに含まれるドットの数で表される。
【0133】
図22(A)に示す例では、バックスイングの場合の差分として、ガイド軌跡2100の外側の面積SBOとガイド軌跡2100の内側の面積SBIとが求められる。また、図22(B)に示す例では、ダウンスイングの場合の差分として、ガイド軌跡2102の外側の面積SDOとガイド軌跡2102の内側の面積SDIとが求められるとともに、フォロースルーの場合の差分として、ガイド軌跡2102の外側の面積SFOとガイド軌跡2102の内側の面積SFI(図22(B)の例では、0)とが求められる。
【0134】
ただし、ダウンスイングとフォロースイングとは、判定画像212の表示位置(インパクト位置)で分離して、それぞれの面積を算出するようにしてある。
【0135】
この実施例では、数2に示すように、面積の総和によって、差分による曲がり量Rが決定される。この曲がり量Rは、ボール106(206)について算出された軌道を、この軌道を中心として左または右に曲げるためのベクトルのスカラ量である。ただし、曲がり量によってボール106(206)の軌道に変化が加えられるのは、或る程度(たとえば、2〜3秒)ボール106(206)が移動した後からである。ただし、Kは曲がり量に変換するための係数であり、仮想ゲームの開発者やプログラマによって予め設定された値である。また、w−w(w+w+w=1)の各々は、後述するように設定される重み係数である。
【0136】
[数2]
R=K{w(SBO+SBI)+w(SDO+SDI)+w(SFO+SFI)}
また、ボール106(206)が意図しない方向に曲がるのは、ダウンスイングの仕方に大きな原因があると考えられるため、この実施例では、ダウンスイングを指示する場合の外側の面積SDOと内側の面積SDIとの大きさに基づいて、曲がる方向(移動方向)を決定するようにしてある。つまり、曲がり量Rと曲がる方向(移動方向)とによって、ボール106(206)の軌道を変化させるベクトル(変化ベクトル)が決定される。この実施例では、外側の面積SDOが、内側の面積SDIよりも大きい場合には、右方向に曲がり量Rが加えられ、スライスする(右に曲がる)ように、ボール106の軌道に変化が加えられる。逆の場合には、左方向に曲がり量Rが加えられ、フックする(左に曲がる)ように、ボール106の軌道に変化が加えられる。
【0137】
したがって、通常のゴルフと同様に、ストレートボールを打ったにも関わらず、フックやスライスになってしまったり、フェードやドローを打ったにも関わらず、予想軌道110が示したよりも曲がらなかったり、予想軌道110よりも曲がり過ぎたりするような演出が可能である。
【0138】
なお、この実施例では、ダウンスイングを指示した場合の差分に基づいて、移動方向(曲がる方向)を決定するようにしたが、これに限定される必要はない。つまり、バックスイング、ダウンスイングおよびフォロースルーのすべてについての差分に基づいて、移動方向を決定してもよい。また、ダウンスイングとフォロースルーを指示した場合の差分に基づいて、移動方向を決定してもよい。さらには、バックススイングとダウンスイングを指示した場合の差分に基づいて、移動方向を決定してもよい。
【0139】
また、図示は省略するが、上述したように、ガイド軌跡210(2102)を変形した場合には、ダウンスイングおよびフォロースルーを指示した場合の差分については、変形したガイド軌跡2102と描画軌跡230とから求められる。
【0140】
さらに、図22(A)および図22(B)では、ガイド軌跡210と描画軌跡230とによって閉領域が形成される場合について示してあるが、必ずしもそれらの軌跡が交差するとは限らない。かかる場合には、スライド操作が反転した位置(スライド操作の速度が0になったときの位置)やタッチオフした位置と、ガイド軌跡210上の最も距離が短い点とを連結することにより、閉領域を形成して、面積が算出される。
【0141】
また、上述したように、スライド操作を実行する場合に、スライド操作の正確さ、速さ、滑らかさを、ボール106の移動距離および移動方向に反映させるようにしてある。ただし、バックスイング、ダウンスイングおよびフォロースイングに分けて考えると、ボール106の移動距離および移動方向に与える影響は、ダウンスイングが最も大きいと言える。また、インテンションナルショットの場合には、インパクト後のフォロースルーも比較的重要である。したがって、この実施例では、図23(A)および図23(B)に示すように、スライド操作において、バックスイング、ダウンスイングおよびフォロースルーを指示する場合に、ボール106に与える影響の重みづけをしてある。
【0142】
図23(A)に示すように、通常のショットの場合には、スライド操作の正確さ、速さおよび滑らかさがボール106の移動量および移動方向に与える影響は、いずれも、バックスイングが20%であり、ダウンスイングが70%であり、フォロースルーが10%である。
【0143】
また、図23(B)に示すように、インテンショナルショットの場合には、スライド操作の正確さ、速さおよび滑らかさがボール106の移動量および移動方向に与える影響は、いずれも、バックスイングが20%であり、ダウンスイングが50%であり、フォロースルーが30%である。
【0144】
したがって、図12(A)−図15(A)に示したように、スライド操作に従って、スライド操作の正確さ、速さおよび滑らかさの各パラメータの値を加算するようにしたが、この実施例では、加算する値がバックスイング、ダウンスイング、フォロースルーのそれぞれで異なる。また、本実施例においては、ゲームフレーム毎に、スライド操作の正確さ、速さおよび滑らかさが所定の条件を満たすかどうか判断される。所定の条件を満たす場合には、所定のポイントが加算されるが、バックススイング、ダウンスイング、フォロースルーの別に応じた重みづけによって、加算されるポイントが異なる。
【0145】
たとえば、図23(A)に示す通常ショットの重み付けの場合には、スライド操作の正確さ、速さおよび滑らかさが所定の条件を満たすと判断されたときに、バックスイング時には、0.2ポイント加算され、ダウンスイング時には0.7ポイント加算され、そして、フォロースルー時には、0.1ポイント加算されるようにし、条件を満たさなかった場合にはポイントが加算されないようにする。加算の有無の判定だけでなく、上述の値を最大値として条件との比較結果に応じた割合でポイントを加算するようにしてもよい。
【0146】
また、図23(B)に示すように、インテンショナルショットの場合には、スライド操作の正確さ、速さおよび滑らかさが所定の条件を満たすと判断された場合には、バックスイング時には、0.2ポイント加算され、ダウンスイング時には0.5ポイント加算され、そして、フォロースルー時には、0.3ポイント加算される。
【0147】
なお、図23(A)および図23(B)に示す重みづけは単なる一例であり、これに限定される必要はない。たとえば、スライド操作の正確さ、速さおよび滑らかさのそれぞれを、バックスイング、ダウンスイングおよびフォロースルーの別で可変的に設定してもよい。
【0148】
図24は図4に示したメインメモリ50のメモリマップ500の一例を示す図解図である。図24に示すように、メインメモリ50は、プログラム記憶領域502およびデータ記憶領域504を含む。プログラム記憶領域502には、この実施例のゴルフゲームのゲームプログラムが記憶される。このゲームプログラムは、SDカードスロット34やゲームカードスロット38に装着されたSDカードやゲームカードから読み込まれたり、NANDフラッシュメモリ48から読み込まれたりして、メインメモリ502に展開(ロード)される。後述する各種データやフラグについても同じである。
【0149】
ゲームプログラムは、メイン処理プログラム502a、画像生成プログラム502b、画像表示プログラム502c、ガイド軌跡太さ決定プログラム502d、ガイド軌跡変形プログラム502e、描画軌跡生成プログラム502f、パラメータ設定プログラム502g、インパクト判定プログラム502h、差分検出プログラム502iおよびオブジェクト移動プログラム502jなどによって構成される。
【0150】
メイン処理プログラム502aは、この実施例の仮想ゲーム(ゴルフゲーム)のメインルーチンを処理するためのプログラムである。画像生成プログラム502bは、後述する画像データ504bを用いて、ゲーム画面100および操作画面200のような画面を表示するための表示画像データを生成するためのプログラムである。画像表示プログラム502cは、画像生成プログラム502bに従って生成された表示画像データを立体LCD12または下LCD14に出力するためのプログラムである。
【0151】
ガイド軌跡太さ決定プログラム502dは、操作画面200に表示されるガイド軌跡210の太さ(ドット数)を決定するためのプログラムである。具体的には、ガイド軌跡太さ決定プログラム502dは、プレイヤが選択したクラブ104の種類に応じてガイド軌跡210の太さを決定する。ガイド軌跡変形プログラム502eは、操作画面200に表示されたガイド軌跡210の変形するためのプログラムである。具体的には、ガイド軌跡変形プログラム502eは、プレイヤがポイント画像250をドラッグすると、それに従ってポイント画像250の位置を変化させ、その位置に従ってガイド軌跡2102を変形させる。
【0152】
描画軌跡生成プログラム502fは、プレイヤのスライド操作に従って描画軌跡230を生成するためのプログラムであり、たとえば、時系列に従うゲームフレーム毎のタッチ位置についての座標データの集合である。パラメータ設定プログラム502gは、ボール106の移動に関するパラメータを設定するためのプログラムである。具体的には、パラメータ設定プログラム502gは、プレイヤが選択したクラブ104の種類に応じて、クラブ飛距離Lmaxを設定したり、ライの状態、風および雨による補正値γを設定したり、プレイヤのスライド操作に従って、バックスイング量の割合P、スライド操作の正確さによる変化ベクトル、スライド操作の速度による補正値αおよびスライド操作の滑らかさによる補正値βをそれぞれ設定および更新したりする。
【0153】
インパクト判定プログラム502hは、スライド操作(描画軌跡230)がインパクトの位置(判定画像212の表示位置)を通過したかどうかを判断するとともに、その描画軌跡230が判定画像212上を通ったかどうかを判定するためのプログラムである。ただし、インパクト判定プログラム520hは、ダウンスイング時(ダウンスイングフラグ504wがオン)である場合に、タッチ位置のX座標が判定画像212の表示位置のX座標よりも大きくなった場合に、インパクト位置を通過したと判断する。
【0154】
差分検出プログラム502iは、ガイド軌跡210と描画軌跡230との差分を検出するためのプログラムである。上述したように、ガイド軌跡210と描画軌跡230とによって形成される閉領域についての面積が算出される。
【0155】
オブジェクト移動プログラム502jは、インパクト判定プログラム502hの判定結果およびパラメータ設定プログラム502gによって設定された各パラメータに従って、仮想空間内において、ボール106(ボールオブジェクト)を移動させるためのプログラムである。
【0156】
なお、図示は省略するが、プログラム記憶領域502には、ゲームプログラムに含まれる音出力プログラムやバックアッププログラムも記憶される。音出力プログラムは、図示しない音データを用いて、プレイヤキャラクタの音声(擬声音)、効果音、BGMのような、ゲームに必要な音を生成および出力するためのプログラムである。バックアッププログラムは、プレイヤの指示や所定のイベントに従って、メインメモリ50(データ記憶領域504)に記憶されたゲームデータ(途中データ、結果データ)を、SDカードやNANDフラッシュメモリ48、ゲームカード内に設けられた記憶領域等に保存(セーブ)するためのプログラムである。
【0157】
読み出されてメインメモリ50に記憶される前のゲームプログラムやゲームデータは、ゲームカード内、NANDフラッシュメモリ28内、SDカード内等、いずれの記憶媒体に記憶されていてもよい。さらに、通信によってゴルフのコースデータ等を受信し、記憶媒体に追加データを記憶して利用できるようにしてもよい。
【0158】
ただし、図24に示す例では、ゴルフゲームのゲームプログラム(アプリケーションプログラム)が記憶される場合についてのみ示してあるが、このゲームプログラムに代えて、または、このゲームプログラムとともに、他のアプリケーションプログラムが記憶されることもある。
【0159】
図25は、メインメモリ50に含まれるデータ記憶領域504の具体的な内容を示す。この図25を参照して、データ記憶領域504には、操作データバッファ504aが設けられる。操作データバッファ504aは、タッチパネル16からの操作データ(座標データ)やA、B、X、Yボタン24a−24d、Lボタン24e、Rボタン24f、十字キー(ボタン)24g、ホーム、セレクト、スタートボタン24h−24j、アナログパッド26からの操作データを記憶(一時記憶)する。操作データバッファ504aに一時記憶された操作データは、CPU44aの処理に使用された後、消去される。
【0160】
また、データ記憶領域504には、画像データ504b、選択クラブデータ504c、ショット方向データ504d、ガイド軌跡データ504e、ボール軌道データ504f、重みテーブルデータ504g、現座標データ504h、前座標データ504i、正確さデータ504j、速さデータ504k、滑らかさデータ504m、描画軌跡データ504n、バックスイングの割合データ504p、インパクト判定データ504q、差分データ504r、ミスショットデータ504s、インテンショナルショットフラグ504t、スイング中フラグ504u、バックスイングフラグ504v、ダウンスイングフラグ504w、およびフォロースルーフラグ504xが記憶される。
【0161】
画像データ504bは、上述した表示画像データを生成するためのポリゴンデータやテクスチャデータであり、プレイヤキャラクタ202についてのスイング動作を示すアニメーションのデータも含む。
【0162】
選択クラブデータ504cは、コンピュータ(CPU44a)またはプレイヤが選択したクラブ104(204)の種類を示すデータである。これによって、クラブ飛距離Lmaxおよびガイド軌跡210の太さが決定される。ショット方向データ504dは、仮想空間におけるボール106の飛び出し方向(ショット方向)についてのデータである。ガイド軌跡データ504eは、選択クラブデータ504cが示すクラブ104(204)の種類に応じて決定された太さのガイド軌跡210のデータであり、具体的には、ガイド軌跡210を構成する複数の点についての座標データである。ただし、ガイド軌跡210が変形されると、それに従ってガイド軌跡データ504eも更新される。また、クラブ104の種類が決定されたときに、クラブ104の種類に応じて決定された太さで、通常のショットを打つ場合のガイド軌跡210についてのガイド軌跡データ504eが、ゲームプログラムを読み込んだ媒体(SDカード、ゲームカード、NANDフラッシュメモリ48)から読み込まれる。
【0163】
ボール軌道データ504fは、ボール106の軌道についてのデータである。上述したように、軌道は、ボール106のショット方向、選択したクラブ104(204)の種類(クラブ飛距離Lmax)、ショットの種類、各パラメータおよび変化ベクトルに応じてシミュレーションにより算出される。
【0164】
重みテーブル504gは、図22(A)に示した通常のショットの場合の重みテーブルおよび図22(B)に示したインテンショナルショットの場合の重みテーブルのデータである。現座標データ504hは、現在のゲームフレームのタッチ位置の座標についての座標データである。前座標データ504iは、現在のゲームフレームの1つ手前のタッチ位置の座標についての座標データである。
【0165】
正確さデータ504jは、スライド操作の正確さの値(0〜100)についてのデータである。速さデータ504kは、スライド操作の速さの値(0〜100)についてのデータである。このスライド操作の速さの値に基づいて補正値αが算出される。滑らかさデータ504mは、スライド操作の滑らかさの値(0〜100)についてのデータである。このスライド操作の滑らかさの値に基づいて補正値βが算出される。
【0166】
描画軌跡データ504nは、スライド操作に応じて入力される複数の座標データであって、複数の座標データが時系列に従って並べられる。バックスイングの割合データ504pは、ガイド軌跡210で設定される最大のバックスイング量に対する、バックスイングを指示するスライド操作によるバックスイング量の割合P(0<P≦1)についてのデータである。
【0167】
インパクト結果データ504qは、インパクトの位置をスライド操作(描画軌跡230)が通過した場合に、描画軌跡230が判定画像212上を通ったかどうかを示す判定結果のデータである。差分データ504rは、ガイド軌跡210に対する描画軌跡230の差分のデータであって、ガイド軌跡210と描画軌跡230とによって形成される閉領域の面積についてのデータである。上述したように、ガイド軌跡210に対して、外側に形成される閉領域の面積および内側に形成される閉領域の面積が、バックスイング、ダウンスイングおよびフォロースルーのそれぞれについて求められる。
【0168】
ミスショットデータ504sは、インパクトの判定結果やスイング操作の滑らかさに応じて決定されたミスショットの種類を設定するためのデータである。この実施例では、ミスショットとしては、空振り、チョロ、シャンク、ダフリまたはテンプラがあり、設定されたミスショットについての識別情報がミスショットデータ504sとして記憶(設定)される。したがって、ミスショットでない場合には、たとえば、ミスショットデータ504sとしてnullデータが記憶される。ただし、ダウンスイングの途中でスイングを止めた場合、つまりダウンスイングを指示するスライド操作の途中でタッチオフした場合にも、空振りまたはチョロが設定される。
【0169】
インテンショナルショットフラグ504tは、インテンショナルショットを打つことが選択されたかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。インテンショナルショットフラグ504tが成立(オン)されると、レジスタにはデータ値「1」が設定される。一方、インテンショナルショットフラグ504tが不成立(オフ)されると、レジスタにはデータ値「0」が設定される。ただし、インテンショナルショットを打つかどうかは、プレイヤが設定画面(図示せず)で選択する。
【0170】
スイング中フラグ504uは、スイング中であるかどうか、すなわち、プレイヤが打撃のためのスライド操作を実行中であるかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。スイング中フラグ504uがオンされると、レジスタにはデータ値「1」が設定される。一方、スイング中フラグ504uがオフされると、レジスタにはデータ値「0」が設定される。
【0171】
バックスイングフラグ504vは、バックスイングを指示するためのスライド操作であるかどうかを判定するためのフラグであり、1ビットのレジスタによって構成される。バックスイングフラグ504vがオンされると、レジスタにはデータ値「1」が設定される。一方、バックスイングフラグ504vがオフされると、レジスタにはデータ値「0」が設定される。
【0172】
ダウンスイングフラグ504wは、ダウンスイングを指示するためのスライド操作であるかどうかを判定するためのフラグであり、1ビットのレジスタによって構成される。ダウンスイングフラグ504wがオンされると、レジスタにはデータ値「1」が設定される。一方、ダウンスイングフラグ504wがオフされると、レジスタにはデータ値「0」が設定される。
【0173】
フォロースルーフラグ504xは、フォロースイングを指示するためのスライド操作であるかどうかを判定するためのフラグであり、1ビットのレジスタによって構成される。フォロースイングフラグ504xがオンされると、レジスタにはデータ値「1」が設定される。一方、フォロースルーフラグ504xがオフされると、レジスタにはデータ値「0」が設定される。
【0174】
当然のことではあるが、バックスイングフラグ504v、ダウンスイングフラグ504wおよびフォロースルーフラグ504xのいずれか1つがオンされている場合には、他の2つはオフされる。
【0175】
なお、図示は省略するが、データ記憶領域504には、予測軌道110についてのデータや音データのような他のデータが記憶されたり、ゲームプログラムの実行に必要な他のフラグやタイマ(カウンタ)も設定されたりする。
【0176】
図26−図31は、この実施例のゴルフゲームにおける打撃処理を示すフロー図である。図26に示すように、CPU44aは、打撃処理を開始すると、ステップS1で、クラブ104の選択かどうかを判断する。つまり、CPU44aは、図示しない設定画面が下LCD14に表示され、クラブ104(204)の選択が指示されたかどうかを判断する。
【0177】
なお、図示は省略するが、打撃処理が開始される当初では、グリーンないしカップまでの距離やライの状態に応じて、コンピュータ(CPU44a)によって選択されたクラブ104(204)が使用するクラブ104(204)として決定されている。このように、予め決定されたクラブ104(204)を選択することができる。
【0178】
ステップS1で“NO”であれば、つまりクラブ104の選択でなければ、そのままステップS5に進む。一方、ステップS1で“YES”であれば、つまりクラブ104の選択であれば、ステップS3で、選択されたクラブ104を使用するクラブ104に決定し、ステップS5で、クラブ飛距離Lmaxを決定する。
【0179】
続くステップS7では、ガイド軌跡210の太さを決定する。ここでは、CPU44aは、使用するクラブ104に応じて決定された太さで、通常のショットを打つ場合のガイド軌跡210についてのガイド軌跡データ504eを読み出して、データ記憶領域504に記憶する。次に、ステップS9で、図11(A)に示したようなゲーム画面100を立体LCD12に表示するとともに、図11(B)に示したような操作画面200を下LCD14に表示する。このとき、操作画面200では、ガイド軌跡データ504eに従うガイド軌跡210が所定位置に表示される。ただし、プレイヤないしコンピュータ(CPU44a)によって選択されたクラブ204を持ったアドレス状態のプレイヤキャラクタ202がガイド軌跡210の内側の所定位置に表示されるとともに、教示画像220がガイド軌跡210の右上方の所定位置に表示される。
【0180】
続くステップS11では、ショット方向の変更かどうかを判断する。ここでは、CPU44aは、操作データバッファ504aに、十字キー(ボタン)24gのうちの左ボタンまたは右ボタンについての操作データが記憶されているかどうかを判断する。ステップS11で“NO”であれば、つまりショット方向の変更でなければ、そのままステップS15に進む。一方、ステップS11で“YES”であれば、つまりショット方向の変更であれば、ステップS13で、プレイヤの操作に従って、ショット方向を変更して、ステップS15に進む。
【0181】
なお、詳細な説明は省略するが、打撃操作の前に、コンピュータ(CPU44a)が、現在のボール106の位置からカップの位置を直線で結ぶ方向をショット方向(2次元方向)として決定し、それに対応するショット方向データ504dが記憶されている。このように、予め設定されたショット方向を変更することができる。
【0182】
ステップS15では、インテンショナルショットの指示が有るかどうかを判断する。ここでは、CPU44aは、図示しない設定画面において、インテンショナルショットが選択されたかどうかを判断する。なお、インテンショナルショットを選択しない場合には、通常のショットが選択される。ステップS15で“NO”であれば、つまりインテンショナルショットの指示が無ければ、そのまま図27に示すステップS19に進む。一方、ステップS15で“YES”であれば、つまりインテンショナルショットの指示が有れば、ステップS17で、後述するガイド軌跡変形処理(図32参照)を設定して、ステップS19に進む。
【0183】
図27に示すステップS19では、ガイド軌跡210が変形されたかどうかを判断する。つまり、CPU44aは、ポイント画像250が初期位置以外の位置に移動されたかどうかを判断するのである。ステップS19で“NO”であれば、つまりガイド軌跡210が変形されていなければ、そのままステップS23に進む。一方、ステップS19で“YES”であれば、つまりガイド軌跡210が変形されていれば、ステップS21で、インテンショナルショットフラグ504tをオンして、ステップS23に進む。
【0184】
ステップS23では、タッチオンかどうかを判断する。つまり、CPU44aは、タッチパネル16からの座標データが操作データバッファ504aに記憶されているかどうかを判断する。ステップS23で“NO”であれば、つまりタッチオフであれば、図31に示すステップS81に進む。ステップS23で“YES”であれば、つまりタッチオンであれば、ステップS25で、スイングの開始であるかどうかを判断する。つまり、CPU44aは、タッチオフの状態からタッチオンの状態に変化し、そのタッチ位置が判定画像212上であるかどうかを判断する。
【0185】
ステップS25で“NO”であれば、つまりスイングの開始でなければ、ステップS27で、スイング中フラグ504uがオンであるかどうかを判断する。つまり、スイングの動作を指示するためのスライド操作を開始しているかどうかを判断する。ステップS27で“NO”であれば、つまりスイング中フラグ504uがオフであれば、スイング動作を指示するためのスライド操作が開始されていないと判断して、図26に示したステップS1に戻る。一方、ステップS27で“YES”であれば、つまりスイング中フラグ504uがオンであれば、スイング動作を指示するためのスライド操作は開始されていると判断して、図28に示すステップS35に進む。
【0186】
一方、ステップS25で“YES”であれば、つまりスイングの開始であれば、ステップS29で、インパクトの状態のフレーム(第60フレーム)からアニメーションフレームを逆再生する。したがって、バックスイングの動作が開始される。続いて、ステップS31で、スイング中フラグ504uをオンし、ステップS33で、バックスイングフラグ504vをオンして、ステップS35に進む。
【0187】
図28に示すように、ステップS35では、現フレームのタッチ位置を記憶する。ここでは、CPU44aは、現座標データ504hのコピーを前座標データ504iとして記憶し、現フレームのタッチ位置についての座標データを操作データバッファ504aから読み出して、現座標データ504hとして記憶する。次のステップS37では、現フレームのタッチ位置がガイド軌跡上であるかどうかを判断する。つまり、CPU44aは、現座標データ504hと同じ座標データがガイド軌跡データ504eに含まれているかどうかを判断する。
【0188】
ステップS37で“YES”であれば、つまり現フレームのタッチ位置がガイド軌跡210上であれば、スライド操作が正確であると判断して、ステップS39で、コントロール成分を増加して、ステップS41に進む。つまり、ステップS39では、CPU44aは、インテンショナルショットフラグ504t、バックスイングフラグ504v、ダウンスイングフラグ504wおよびフォロースルーフラグ504xを参照し、ショットの種類およびスイング動作に応じて、重みテーブルが示す割合のポイントを加算する。つまり、正確さデータ504jが更新され、したがって、教示画像220の正確さの成分(C)の表示が更新される。後述するステップS49およびS53で、パラメータを更新(ポイントを加算)する場合について同様である。一方、ステップS37で“NO”であれば、つまり現フレームのタッチ位置がガイド軌跡210上でなければ、スライド操作が正確でないと判断して、そのままステップS41に進む。
【0189】
ステップS41では、前フレームのタッチ位置と現フレームのタッチ位置とを線で結ぶ。つまり、前座標データ504iが示す位置と現座標データ504hが示す位置とを線で結ぶことにより、プレイヤのスライド操作についての軌跡が描画される。つまり、描画軌跡230が表示(更新)される。次のステップS43では、現フレームの速度を算出する。具体的には、前座標データ504iが示す位置と現座標データ504hが示す位置との間の距離を算出し、算出した距離を1ゲームフレーム(1/60秒)で割ることにより、現フレームの速度が算出される。つまり、スライド操作の速さが算出される。現フレームの速度を算出すると、ステップS45で、その速度を時系列に従って、データ記憶領域504のバッファ領域(図示は省略)に記憶する。
【0190】
続いて、ステップS47では、現フレームの速度が所定範囲内である(たとえば、タッチ位置が1フレームの間に1〜5ドット変化した)かどうかを判断する。ステップS47で“NO”であれば、つまり現フレームの速度が所定範囲外であれば、スライド操作が速すぎたり遅すぎたりすると判断して、そのままステップS51に進む。一方、ステップS47で“YES”であれば、つまり現フレームの速度が所定範囲内であれば、スライド操作の速さが想定の範囲内であると判断して、ステップS49で、スピード成分を増加して、ステップS51に進む。つまり、ステップS49では、速さデータ504kが更新され、したがって、教示画像220の速度の成分(Sp)の表示が更新される。
【0191】
ステップS51では、速度変化が所定値(たとえば、2〜3ドット/フレーム)以内であるかどうかを判断する。CPU44aは、バッファ領域に記憶した時系列に従う各フレームの速度を参照して、現フレームの速度とその1つ手前のフレームの速度との差(速度変化)が所定値以内であるかどうかを判断するのである。ステップS51で“NO”であれば、つまり速度変化が所定値を超えている場合には、スライド操作が滑らかでないと判断して、そのまま図29に示すステップS55に進む。一方、ステップS51で“YES”であれば、つまり速度変化が所定値以内である場合には、スライド操作が滑らかであると判断して、ステップS53で、スムーズ成分を増加して、ステップS55に進む。つまり、ステップS53では、滑らかさデータ504mが更新され、したがって、教示画像220の滑らかさの成分(Sm)の表示が更新される。
【0192】
図29に示すステップS55では、スライド方向が反転したかどうかを判断する。ここでは、CPU44aは、スライド操作の速度(現フレームの速度)が0のゲームフレーム(ここでは、「着目するフレーム」という)の1つ手前のゲームフレームで検出されたタッチ位置と、着目するフレームの1つ後のゲームフレームで検出されたタッチ位置とが、着目するフレームで検出されたタッチ位置から見て同じまたは略同じ方向であるかどうかを判断してある。そして、CPU44aは、同じまたはほぼ同じ方向である場合には、スライド方向が反転したと判断し、方向が90度を超えて異なる場合には、スライド方向が反転していないと判断する。
【0193】
ステップS55で“NO”であれば、つまりスライド方向が反転していなければ、バックススイングの指示を継続中であると判断して、そのまま図27に示したステップS23に戻る。一方、ステップS55で“YES”であれば、つまりスライド方向が反転すれば、ステップS57で、アニメーションフレームをそのフレーム番号から順再生する。したがって、ダウンスイングの動作が開始される。ステップS59で、バックスイング量の割合Pを決定し、ステップS61で、ダウンスイングフラグ504wをオンする。図示は省略するが、ダウンスイングフラグ504wがオンされたとき、バックスイングフラグ504vおよびフォロースルーフラグ504xがオフされる。さらに、ステップS63で、表示された描画軌跡230を消去する。つまり、バックスイングの指示についての描画軌跡230が消去される。
【0194】
次のステップS65では、インパクトかどうかを判断する。ここでは、CPU44aは、ダウンスイングフラグ504Wがオンであり、かつタッチ位置のX座標が判定画像212の表示位置のX座標よりも大きいかどうかを判断する。ステップS65で“NO”であれば、つまりインパクトでなければ、ダウンスイングの指示についてのスライド操作を行っていると判断して、ステップS23に戻る。一方、ステップS65で“YES”であれば、つまりインパクトであれば、図30に示すステップS67で、アニメーションを補正する。ここでは、アニメーションフレームのフレーム番号が「60」未満である場合に、インパクトについてのアニメーションフレーム(第60フレーム)まで加速して進められる。ただし、アニメーションフレームが「60」以上である場合には、補正する必要がないため、ステップS67の処理は実行されずに、ステップS69に進む。
【0195】
次のステップS69では、フォロースルーフラグ504xをオンする。図示は省略するが、フォロースルーフラグ504xがオンされると、バックスイングフラグ504vおよびダウンスイングフラグ504wがオフされる。続くステップS71では、描画軌跡230が判定画像212上を通ったかどうかを判断する。つまり、CPU44aは、描画軌跡データ504nに含まれる座標データが示す位置のうち、判定画像212の表示位置の範囲内である位置が存在するかどうかを判断する。ステップS71で“NO”であれば、つまり描画軌跡230が判定画像212上を通っていなければ、ステップS73で、空振りまたはチョロをランダムに選択して、打撃処理を終了する。つまり、ステップS73では、空振りまたはチョロを示す識別情報がミスショットデータ504sとして設定される。したがって、図示しないゴルフゲームのメインルーチンにて、空振りする様子やチョロの様子を示すゲーム画面100が立体LCD12に表示される。ただし、チョロの場合には、予め設定されている軌道でボール106は移動される。このように、スライド操作(描画軌跡230)が判定画像212を横切らない場合には、スライド操作の正確さ、速さおよび滑らかさに拘わらず、空振りやチョロのようなミスショットが選択される。
【0196】
また、ステップS71で“YES”であれば、つまり描画軌跡230が判定画像212上を通っていれば、ステップS75で、スムーズ成分が所定値(たとえば、50)以上あるかどうかを判断する。つまり、CPU44aは、滑らかさデータ504mが示す値が所定値以上であるかどうかを判断する。ステップS75で“NO”であれば、つまりスムーズ成分が所定値未満である場合には、ステップS77で、シャンク、ダフリまたはテンプラをランダムに選択して、打撃処理を終了する。つまり、ステップS77では、シャンク、ダフリまたはテンプラを示す識別情報がミスショットデータ504sとして設定される。したがって、ゴルフゲームのメインルーチンにて、シャンク、ダフリまたはテンプラの様子を示すゲーム画面100が立体LCD12に表示され、予め設定されている軌道に従ってボール106が移動される。このように、スライド操作(描画軌跡230)の正確さが極端に悪い場合には、スライド操作の速さおよび滑らかさに拘わらず、シャンク、ダフリまたはテンプラのようなミスショットが選択される。
【0197】
また、ステップS75で“YES”であれば、つまりスムーズ成分が所定値以上であれば、ステップS79で、操作画面200に表示されたボール206をショットの方向に移動開始して、つまりプレイヤキャラクタ202がボール206を打撃した様子の操作画面200を表示して、ステップS23に戻る。
【0198】
なお、この実施例では、インパクト時だけ、スライド操作を速く実行するような不正を排除するために、スライド操作の全体についての滑らかさによって、ミスショットにするかどうかを判断するようにしてある。ただし、これに限定される必要はない。たとえば、スライド操作の一部で大きな速度変化がみられる場合にも、ミスショットにするようにしてもよい。かかる場合には、あとえば、ステップS49とS51の間、またはステップS53とS55との間に、速度の変化量が或る閾値(たとえば、5ドット/ゲームフレーム)以上であるかを判断し、速度の変化量が閾値以上である場合には、ミスショット(たとえば、シャンク、ダフリまたはテンプラ)であると判定し、速度の変化量が閾値未満である場合には、スイング動作を継続するようにしてもよい。
【0199】
上述したように、ステップS23で“NO”であれば、つまりタッチオフであれば、図31に示すステップS81で、スイング中フラグ504uがオンであるかどうかを判断する。つまり、CPU44aは、スイング動作の指示を行っているかどうかを判断する。ステップS81で“NO”であれば、つまりスイング中フラグ504uがオフであれば、スイング動作の指示を行っていないと判断して、図26に示したステップS1に戻る。
【0200】
しかし、ステップS81で“YES”であれば、つまりスイング中フラグ504uがオンであれば、つまりスイング動作の指示を行っている場合には、その終了が指示されたと判断して、ステップS83で、フォロースルーフラグ504xがオンであるかどうかを判断する。つまり、CPU44aは、スイング動作の指示を途中で終了したか、スイング動作の指示をすべて行って終了したかを判断する。
【0201】
ステップS83で“NO”であれば、つまりフォローフラグ504xがオフであれば、スイング動作の指示を途中で終了したと判断して、ステップS85で、バックスイングフラグ504vがオンであるかどうかを判断する。ステップS85で“NO”であれば、つまりバックスイングフラグ504vがオフであれば、ダウンスイング中であると判断して、図30に示したステップS73に進む。つまり、ダウンスイングを途中で止めたことにより、ミスショット(空振り、チョロ)が判定される。一方、ステップS85で“YES”であれば、つまりバックスイングフラグ504vがオンであれば、スイングのやり直しであると判断して、ステップS87で、スイング中フラグ504uをオフし、ステップS89で、バックスイングフラグ504vをオフし、ステップS91で、描画軌跡230を消去して、図26に示したステップS5に戻る。ただし、ステップS91では、描画軌跡データ504nがすべて消去される。
【0202】
また、ステップS83で“YES”であれば、つまりフォロースルーフラグ504xがオンであれば、スイング動作の指示をすべて行って終了したと判断して、ステップS93で、飛距離Lを数1に従って算出する。このとき、プレイヤまたはコンピュータ(CPU44a)によって選択されたクラブ104のクラブ飛距離Lmaxが使用される。また、スライド操作によって決定された、バックスイングの割合データ504pが示すバックスイングの割合P、速さデータ504kが示すポイントに基づく補正値α、および滑らかさデータ504mが示すポイントに基づく補正値βが用いられる。さらに、仮想空間において決定されるライの状態などによる補正値γが用いられる。
【0203】
次のステップS95では、ガイド軌跡210と描画軌跡230との差分を算出する。上述したように、バックスイング、ダウンスイングおよびフォロースルーのそれぞれについて差分(閉領域の面積)が求められる。そして、ボール106の軌道の補正値すなわち変化ベクトル(方向および移動量)が決定される。
【0204】
そして、ステップS97で、ボール106の軌道をシミュレーションにより算出する。つまり、ステップS97では、ショットの種類、ショット方向、ステップS93で求めた飛距離L、およびステップS95で求めた変化ベクトルを用いて、ボール106の軌道を算出する。したがって、ゴルフゲームのメインルーチンにて、ボール106は、算出された軌道に従って移動する。そして、その様子が立体LCD12に示される。ただし、ボール106(206)を打った瞬間およびその直後(2〜3秒後まで)の画像は下LCD14で表示するようにしてあるため、立体LCD12には、その後の様子が分かるように、ボール106が移動する様子が表示される。
【0205】
なお、図26−図31に示した打撃処理では、タッチオフした場合にスイングの指示を終了するようにしてあるが、上述したように、タッチオンの場合にタッチ位置が端点210bに到達した場合にも、スイングの指示は終了する。かかる場合には、タッチ位置が必ずしも端点210bを指示するとは限らないため、フォロースイングフラグ504xがオンである場合に、タッチ位置のY座標が端点210bのY座標以下になった場合に、スイングの指示を終了したと判断するようにしてある。
【0206】
図32は、図26に示したステップS17のガイド軌跡変形処理を示すフロー図である。図32に示すように、CPU44aは、ガイド軌跡変形処理を開始すると、ステップS111で、下LCD14に、ガイド軌跡変形画面を表示する。つまり、図15(B)に示したように、ポイント画像250が表示された操作画面200が下LCD14に表示される。
【0207】
続くステップS113では、ポイント画像250がタッチされたかどうかを判断する。ステップS113で“NO”であれば、つまりポイント画像250がタッチされてにいなければ、そのまま同じステップS113に戻る。一方、ステップS113で“YES”であれば、つまりポイント画像250がタッチされれば、ステップS115で、ポイント画像250が移動されたかどうかを判断する。ただし、ドラッグ操作に従ってポイント画像250は移動されるため、CPU44aは、タッチ位置が変化したかどうかを判断するようにしてもよい。
【0208】
ステップS115で“NO”であれば、つまりポイント画像250が移動されていなければ、そのままステップS115に戻る。一方、ステップS115で“YES”であれば、ポイント画像250が移動されれば、ステップS117で、ポイント画像250の位置に応じて、ガイド軌跡210(ガイド軌跡2102)を変形させる。つまり、ステップS117では、ガイド軌跡データ504eに含まれる座標データが更新される。次のステップS119で、ボール106の予想軌道110を変更する。つまり、ステップS119では、ポイント画像250の位置(タッチ位置)に応じて決定されるショットの種類と、その位置のX座標に応じて決定される曲がり量とを用いて予想軌道110が変化される。
【0209】
続くステップS121では、タッチオフかどうかを判断する。ステップS121で“NO”であれば、つまりタッチオフでなければ、そのままステップS115に戻る。一方、ステップS121で“YES”であれば、つまりタッチオフであれば、打撃処理にリターンする。
【0210】
この実施例によれば、ガイド軌跡をゴルフのスイングに合わせてトレースする場合のスライド操作の正確さ、速さおよび滑らかさに応じて、ボールの移動を制御するので、実際にゴルフをプレイしている感覚を味わうことができる。つまり、タッチパネルのようなポインティングデバイスを用いた新規な操作を行うゲーム装置を提供することができる。また、ゴルフゲームの面白味を増大させることができる。
【0211】
なお、この実施例では、タッチパネルを備える携帯型のゲーム装置についてのみ説明したが、Wii(登録商標、出願人が製造および販売するゲーム装置)やコンピュータマウス、ペンタブレットまたはタッチパッドのような他のポインティングデバイスを用いたゲーム装置にも適用することができる。この場合には、実施例で示したような指示画像を操作画面に表示して、ポインティングデバイスによる指示位置をプレイヤに示す必要がある。
【0212】
また、この実施例では、ガイド軌跡を変形する場合には、ダウンスイングおよびフォロースルーについてのガイド軌跡のみを変形するようにしたが、バックスイングのガイド軌跡も変形するようにしてもよい。
【0213】
また、この実施例では、ゴルフゲームにおける打撃操作において、ガイド軌跡をトレースするようにスライド操作を実行させて、その正確さに応じてゴルフボールの移動を制御したが、これに限定される必要はない。たとえば、ボウリングゲームにおける投球動作において、上述の実施例で示したようなガイド軌跡を表示し、これをトレースするようにスライド操作を実行させて、その正確さ、速さ、滑らかさに応じてボウリングの球(ボールオブジェクト)を移動制御するようにしてもよい。
【0214】
さらに、この実施例では、ゲーム装置について説明したが、この発明は、裸眼立体視表示可能な表示装置に仮想空間を表示するための情報処理装置(ゲーム機のほか、たとえばPC,PDA,携帯電話機,TV,電子フォトフレーム,音楽/映像プレイヤ,各種情報家電など)に適用できる。
【0215】
さらにまた、この実施例では、表示装置(立体LCD12、下LCD14)は、ゲーム装置に一体的に設けたが、ゲーム装置とは別体でもよい。入力装置(たとえばタッチパネル16,ボタン24a−24k,アナログパッド26,マイク30,カメラ18a−18cなど)もまた、ゲーム装置に一体的に設けられても別体でもよい。
【0216】
この発明はまた、ゲーム処理(情報処理)のための各処理が複数のコンピュータ等によって分散処理されるようなゲームシステム(情報処理システム)にも適用可能である。
【符号の説明】
【0217】
10 …ゲーム装置
12 …立体LCD
12a …LCDコントローラ
12b …バリア液晶
12c …上LCD
14 …下LCD
16 …タッチパネル
18a−18c …カメラ(内側,外側左,外側右)
20 …3D調整スイッチ(3D Vol)
20A …3Dランプ
30 …マイク
24a−24k …ボタン(キー)
26 …アナログパッド
44 …SoC
44a …CPU
44b …GPU
44c …VRAM
50 …メインメモリ
54 …加速度センサ
Sd …スライダ
ICL,ICR …仮想カメラ(左,右)

【特許請求の範囲】
【請求項1】
ゲーム画像を表示する表示部と、
前記表示部上に設けられるタッチパネルと、
前記タッチパネルに対するタッチ入力の位置を取得するタッチ位置取得部と、
前記タッチパネルに対して、所定の軌跡に沿った第1方向へタッチ位置を移動させる第1スライド入力が行われたとき、当該タッチ位置が前記所定の軌跡に沿っている度合いを判定する第1判定部と、
前記第1スライド入力に続き、前記第1方向とは反対方向であって、前記所定の軌跡に沿った第2方向へタッチ位置を移動させる第2スライド入力が行われたとき、当該タッチ位置が当該所定の軌跡に沿っている度合いを判定する第2判定部と、
少なくとも、前記第1判定部および前記第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う移動処理部と、
前記表示部にゲーム空間を表示させる表示制御部を備える、ゲーム装置。
【請求項2】
前記タッチパネルのタッチ領域において、前記軌跡を所定の太さを有する曲線で設定する軌跡設定部をさらに備え、
前記第1判定部および前記第2判定部は、前記タッチ位置が前記軌跡上であるか否かを判定する、請求項1記載のゲーム装置。
【請求項3】
プレイヤによる選択操作に基づいて前記軌跡の太さを変更する軌跡変更部をさらに備え、
前記移動処理部は、細い曲線が選択されたときに、太い曲線が選択されたときに比べて大きい速度で前記オブジェクトを移動させる、請求項2記載のゲーム装置。
【請求項4】
前記第1スライド入力前に、プレイヤの指示に基づいて前記軌跡を変形させる軌跡変形部をさらに備え、
前記移動処理部は、前記軌跡の変形に応じて、前記オブジェクトの移動方向を変化させる、請求項1ないし3のいずれかに記載のゲーム装置。
【請求項5】
前記所定の軌跡は、前記第1方向への前記第1スライド入力を行うための第1軌跡、および前記第2方向への前記第2スライド入力を行うための第2軌跡を含み、
前記軌跡変形部は、前記第2軌跡のみを変形させる、請求項4記載のゲーム装置。
【請求項6】
前記移動処理部は、前記軌跡の変形度合いに応じて、前記オブジェクトの移動方向の変化量を決定する、請求項4記載のゲーム装置。
【請求項7】
前記タッチ位置が前記軌跡の所定位置を通過したかどうかを判定する通過判定部をさらに備え、
前記移動処理部は、前記通過判定部によって前記タッチ位置が前記軌跡の所定位置を通過したと判定されたとき、前記オブジェクトの移動を開始させる、請求項1ないし6のいずれかに記載のゲーム装置。
【請求項8】
前記所定位置であり、前記軌跡と直交する方向に一定の幅の通過判定領域が設けられ、
前記通過判定部は、前記タッチ位置が前記通過判定領域を通過したかどうかをさらに判定し、
前記移動処理部は、前記通過判定部によって前記タッチ位置が前記通過判定領域を通過していないと判定したとき、前記第1判定部および前記第2判定部の判定結果に拘わらず、前記オブジェクトを移動させる、請求項7記載のゲーム装置。
【請求項9】
前記タッチ位置の移動速度を検出する速度検出部をさらに備え、
前記移動処理部は、前記速度検出によって検出された前記タッチ位置の移動速度に基づいて前記オブジェクトの移動速度をさらに制御する、請求項1ないし8のいずれかに記載のゲーム装置。
【請求項10】
前記速度検出部によって検出された前記タッチ位置の移動速度の変化を検出する移動速度変化検出部をさらに備え、
前記移動処理部は、前記移動速度変化検出部によって前記移動速度の変化が所定量以上であることが判定されたとき、前記第1判定部および前記第2判定部の判定結果に拘わらず、前記オブジェクトを移動させる、請求項9記載のゲーム装置。
【請求項11】
前記オブジェクトは、ゴルフボールのオブジェクトであって、
前記ゲーム空間内において、ゴルフショットのシミュレーションを行うキャラクタの動作を制御するキャラクタ制御部をさらに備え、
前記キャラクタ制御部は、
前記第1スライド入力が行われている間、前記キャラクタをバックスイング動作のアニメーションで表示させ、
前記第2スライド入力が行われている間、前記キャラクタを少なくともダウンスイング動作のアニメーションで表示される、請求項1ないし10のいずれかに記載のゲーム装置。
【請求項12】
ゲーム画像を表示する表示部と、
前記表示部に関連して設けられるポインティングデバイスと、
前記ポインティングデバイスによって指示される前記表示部上の入力位置を取得する入力位置取得部と、
前記入力位置取得部によって取得された入力位置が所定の軌跡に沿った第1方向に移動される第1スライド入力が行われたとき、当該入力位置が前記所定の軌跡に沿っている度合いを判定する第1判定部と、
前記第1スライド入力に続き、前記第1方向とは反対方向であって、前記所定の軌跡に沿った第2方向へ入力位置が移動される第2スライド入力が行われたとき、当該入力位置が当該所定の軌跡に沿っている度合いを判定する第2判定部と、
少なくとも、前記第1判定部および前記第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う移動処理部と、
前記表示部にゲーム空間を表示させる表示制御部を備える、ゲーム装置。
【請求項13】
ゲーム画像を表示する表示部と、前記表示部上に設けられるタッチパネルを備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータを、
前記タッチパネルに対するタッチ入力の位置を取得するタッチ位置取得部と、
前記タッチパネルに対して、所定の軌跡に沿った第1方向へタッチ位置を移動させる第1スライド入力が行われたとき、当該タッチ位置が前記所定の軌跡に沿っている度合いを判定する第1判定部と、
前記第1スライド入力に続き、前記第1方向とは反対方向であって、前記所定の軌跡に沿った第2方向へタッチ位置を移動させる第2スライド入力が行われたとき、当該タッチ位置が当該所定の軌跡に沿っている度合いを判定する第2判定部と、
少なくとも、前記第1判定部および前記第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う移動処理部と、
前記表示部にゲーム空間を表示させる表示制御部として機能させる、ゲームプログラム。
【請求項14】
前記タッチパネルのタッチ領域において、前記軌跡を所定の太さを有する曲線で設定する軌跡設定部として前記コンピュータをさらに機能させ、
前記第1判定部および前記第2判定部は、前記タッチ位置が前記軌跡上であるか否かを判定する、請求項13記載のゲーム装置。
【請求項15】
プレイヤによる選択操作に基づいて前記軌跡の太さを変更する軌跡変更部として前記コンピュータをさらに機能させ、
前記移動処理部は、細い曲線が選択されたときに、太い曲線が選択されたときに比べて大きい速度で前記オブジェクトを移動させる、請求項14記載のゲームプログラム。
【請求項16】
前記第1スライド入力前に、プレイヤの指示に基づいて前記軌跡を変形させる軌跡変形部をさらに備え、
前記移動処理部は、前記軌跡の変形に応じて、前記オブジェクトの移動方向を変化させる、請求項13ないし15のいずれかに記載のゲームプログラム。
【請求項17】
前記所定の軌跡は、前記第1方向への前記第1スライド入力を行うための第1軌跡、および前記第2方向への前記第2スライド入力を行うための第2軌跡を含み、
前記軌跡変形部は、前記第2軌跡のみを変形させる、請求項16記載のゲームプログラム。
【請求項18】
前記移動処理部は、前記軌跡の変形度合いに応じて、前記オブジェクトの移動方向の変化量を決定する、請求項16記載のゲームプログラム。
【請求項19】
前記タッチ位置が前記軌跡の所定位置を通過したかどうかを判定する通過判定部として前記コンピュータをさらに機能させ、
前記移動処理部は、前記通過判定部によって前記タッチ位置が前記軌跡の所定位置を通過したと判定されたとき、前記オブジェクトの移動を開始させる、請求項13ないし18のいずれかに記載のゲームプログラム。
【請求項20】
前記所定位置であり、前記軌跡と直交する方向に一定の幅の通過判定領域が設けられ、
前記通過判定部は、前記タッチ位置が前記通過判定領域を通過したかどうかをさらに判定し、
前記移動処理部は、前記通過判定部によって前記タッチ位置が前記通過判定領域を通過していないと判定したとき、前記第1判定部および前記第2判定部の判定結果に拘わらず、前記オブジェクトを移動させる、請求項19記載のゲームプログラム。
【請求項21】
前記タッチ位置の移動速度を検出する速度検出部として前記コンピュータをさらに機能させ、
前記移動処理部は、前記速度検出によって検出された前記タッチ位置の移動速度に基づいて前記オブジェクトの移動速度をさらに制御する、請求項13ないし20のいずれかに記載のゲームプログラム。
【請求項22】
前記速度検出部によって検出された前記タッチ位置の移動速度の変化を検出する移動速度変化検出部として前記コンピュータをさらに機能させ、
前記移動処理部は、前記移動速度変化検出部によって前記移動速度の変化が所定量以上であることが判定されたとき、前記第1判定部および前記第2判定部の判定結果に拘わらず、前記オブジェクトを移動させる、請求項21記載のゲームプログラム。
【請求項23】
前記オブジェクトは、ゴルフボールのオブジェクトであって、
前記ゲーム空間内において、ゴルフショットのシミュレーションを行うキャラクタの動作を制御するキャラクタ制御部として前記コンピュータをさらに機能させ、
前記キャラクタ制御部は、
前記第1スライド入力が行われている間、前記キャラクタをバックスイング動作のアニメーションで表示させ、
前記第2スライド入力が行われている間、前記キャラクタを少なくともダウンスイング動作のアニメーションで表示される、請求項13ないし22のいずれかに記載のゲームプログラム。
【請求項24】
ゲーム画像を表示する表示部と、前記表示部に関連して設けられるポインティングデバイスを備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータを、
前記ポインティングデバイスによって指示される前記表示部上の入力位置を取得する入力位置取得部と、
前記入力位置取得部によって取得された入力位置が所定の軌跡に沿った第1方向に移動される第1スライド入力が行われたとき、当該入力位置が前記所定の軌跡に沿っている度合いを判定する第1判定部と、
前記第1スライド入力に続き、前記第1方向とは反対方向であって、前記所定の軌跡に沿った第2方向へ入力位置が移動される第2スライド入力が行われたとき、当該入力位置が当該所定の軌跡に沿っている度合いを判定する第2判定部と、
少なくとも、前記第1判定部および前記第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う移動処理部と、
前記表示部にゲーム空間を表示させる表示制御部として機能させる、ゲームプログラム。
【請求項25】
ゲーム画像を表示する表示部と、
前記表示部上に設けられるタッチパネルと、
前記タッチパネルに対するタッチ入力の位置を取得するタッチ位置取得部と、
前記タッチパネルに対して、所定の軌跡に沿った第1方向へタッチ位置を移動させる第1スライド入力が行われたとき、当該タッチ位置が前記所定の軌跡に沿っている度合いを判定する第1判定部と、
前記第1スライド入力に続き、前記第1方向とは反対方向であって、前記所定の軌跡に沿った第2方向へタッチ位置を移動させる第2スライド入力が行われたとき、当該タッチ位置が当該所定の軌跡に沿っている度合いを判定する第2判定部と、
少なくとも、前記第1判定部および前記第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う移動処理部と、
前記表示部にゲーム空間を表示させる表示制御部を備える、ゲームシステム。
【請求項26】
ゲーム画像を表示する表示部と、
前記表示部に関連して設けられるポインティングデバイスと、
前記ポインティングデバイスによって指示される前記表示部上の入力位置を取得する入力位置取得部と、
前記入力位置取得部によって取得された入力位置が所定の軌跡に沿った第1方向に移動される第1スライド入力が行われたとき、当該入力位置が前記所定の軌跡に沿っている度合いを判定する第1判定部と、
前記第1スライド入力に続き、前記第1方向とは反対方向であって、前記所定の軌跡に沿った第2方向へ入力位置が移動される第2スライド入力が行われたとき、当該入力位置が当該所定の軌跡に沿っている度合いを判定する第2判定部と、
少なくとも、前記第1判定部および前記第2判定部における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行う移動処理部と、
前記表示部にゲーム空間を表示させる表示制御部を備える、ゲームシステム。
【請求項27】
ゲーム画像を表示する表示部と、前記表示部上に設けられるタッチパネルを備えるゲーム装置のゲーム制御方法であって、
(a)前記タッチパネルに対するタッチ入力の位置を取得し、
(b)前記タッチパネルに対して、所定の軌跡に沿った第1方向へタッチ位置を移動させる第1スライド入力が行われたとき、当該タッチ位置が前記所定の軌跡に沿っている度合いを判定し、
(c)前記第1スライド入力に続き、前記第1方向とは反対方向であって、前記所定の軌跡に沿った第2方向へタッチ位置を移動させる第2スライド入力が行われたとき、当該タッチ位置が当該所定の軌跡に沿っている度合いを判定し、
(d)少なくとも、前記ステップ(b)および前記ステップ(c)における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行い、そして
(e)前記表示部にゲーム空間を表示させる、ゲーム制御方法。
【請求項28】
ゲーム画像を表示する表示部と、前記表示部に関連して設けられるポインティングデバイスを備えるゲーム装置のゲーム制御方法であって、
(a)前記ポインティングデバイスによって指示される前記表示部上の入力位置を取得し、
(b)前記入力位置取得部によって取得された入力位置が所定の軌跡に沿った第1方向に移動される第1スライド入力が行われたとき、当該入力位置が前記所定の軌跡に沿っている度合いを判定し、
(c)前記第1スライド入力に続き、前記第1方向とは反対方向であって、前記所定の軌跡に沿った第2方向へ入力位置が移動される第2スライド入力が行われたとき、当該入力位置が当該所定の軌跡に沿っている度合いを判定し、
(d)少なくとも、前記ステップ(b)および前記ステップ(c)における判定結果に基づいて、ゲーム空間内において所定のオブジェクトを移動させる処理を行い、そして
(e)前記表示部にゲーム空間を表示させる、ゲーム制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate


【公開番号】特開2012−70960(P2012−70960A)
【公開日】平成24年4月12日(2012.4.12)
【国際特許分類】
【出願番号】特願2010−218244(P2010−218244)
【出願日】平成22年9月29日(2010.9.29)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】