IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 任天堂株式会社の特許一覧 ▶ 株式会社キャメロットの特許一覧

特開2022-87933ゲームプログラム、ゲーム装置およびゲーム制御方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022087933
(43)【公開日】2022-06-14
(54)【発明の名称】ゲームプログラム、ゲーム装置およびゲーム制御方法
(51)【国際特許分類】
   A63F 13/573 20140101AFI20220607BHJP
   A63F 13/812 20140101ALI20220607BHJP
   A63F 13/58 20140101ALI20220607BHJP
   A63F 13/537 20140101ALI20220607BHJP
【FI】
A63F13/573
A63F13/812 C
A63F13/58
A63F13/537
【審査請求】未請求
【請求項の数】22
【出願形態】OL
(21)【出願番号】P 2020200081
(22)【出願日】2020-12-02
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(71)【出願人】
【識別番号】503090533
【氏名又は名称】株式会社キャメロット
(74)【代理人】
【識別番号】100090181
【弁理士】
【氏名又は名称】山田 義人
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】山村 知弘
(72)【発明者】
【氏名】松本 広大
(72)【発明者】
【氏名】齋藤 伸也
(72)【発明者】
【氏名】高橋 宏之
(72)【発明者】
【氏名】高橋 秀五
(57)【要約】      (修正有)
【課題】ゲームの興趣を向上させるゲームプログラム、ゲーム装置およびゲーム制御方法を提供する。
【解決手段】ゲームシステムは、本体装置に内蔵されるプロセッサを含み、プロセッサは、プレイヤが第2のパラメータ決定操作を開始すると、パラメータ決定画面300において、移動ゲージ320内を下端から上端に向けて第1指標画像326を移動させる。プレイヤの操作に応じて第1指標画像が停止されると、停止した位置に基づいてボール306の打撃力が決定される。第1指標画像が停止されると、第2指標画像が、移動ゲージ内を下端から第1指標画像が停止された位置まで移動する。プレイヤは第2指標が移動されている間に方向入力を行う。すると、ボールが移動開始した後の軌道が、方向入力に基づく方向に移動される。たとえば、ボールを打撃した場合の基準となる放物線を基準軌道とした場合に、この基準軌道が方向入力に基づいて変化される。
【選択図】図11
【特許請求の範囲】
【請求項1】
プレイヤの操作に応じて移動オブジェクトを移動させることで進行するスポーツゲームをコンピュータに実行させるゲームプログラムであって、
前記コンピュータに、
プレイヤの操作に従って開始され、前記移動オブジェクトを移動させるためのパラメータを決定するパラメータ決定ステップ、
前記パラメータ決定ステップの実行中の所定期間において、前記移動オブジェクトの移動開始後の軌道の変化を決定するための経時的な方向入力を示すプレイヤの操作を検出する検出ステップ、
前記パラメータ決定ステップの実行後に、前記検出ステップにおいて検出した経時的な方向入力を示す前記プレイヤの操作に基づいて、当該経時的な方向入力を経時的に軌道に反映させながら前記移動オブジェクトを移動させる移動ステップを実行させる、ゲームプログラム。
【請求項2】
前記パラメータ決定ステップは、前記移動オブジェクトの移動距離に関する移動距離パラメータを設定する移動距離パラメータ設定ステップを含み、
前記検出ステップにおける前記所定期間は、設定された前記移動距離パラメータが大きい程長くされる、請求項1記載のゲームプログラム。
【請求項3】
前記パラメータ決定ステップは、前記移動オブジェクトの移動距離に関する移動距離パ ラメータ設定ステップを含み、
前記移動距離パラメータ設定ステップは、
初期位置から一端に向けて、前記移動距離パラメータを示す第1指標を移動させる第 1指標移動ステップ、および
前記プレイヤの操作に従って前記第1指標を停止させる第1指標停止ステップを含み、
前記検出ステップにおける前記所定期間は、前記初期位置から前記第1指標を停止させた停止位置までの距離が大きい程長く設定される、請求項1または2記載のゲームプログラム。
【請求項4】
前記移動距離パラメータ設定ステップの実行を終えると、前記初期位置から少なくとも前記停止位置に向けて、前記経時的な方向入力についての第2指標を移動させる第2指標移動ステップを前記コンピュータにさらに実行させ、
前記検出ステップは、前記第2指標が前記初期位置から前記停止位置に移動するまでの間における前記経時的な方向入力を示すプレイヤの操作を検出する、請求項3記載のゲームプログラム。
【請求項5】
前記検出ステップにおいて検出した経時的な方向入力を示す指示画像を、前記第2指標の移動経路に重ねてまたは沿って表示部に表示する指示画像表示ステップを前記コンピュータにさらに実行させる、請求項4記載のゲームプログラム。
【請求項6】
前記指示画像表示ステップは、検出した前記プレイヤの操作が示す前記経時的な方向入力の数よりも少ない数で前記指示画像を表示する、請求項5記載のゲームプログラム。
【請求項7】
前記指示画像は、前記所定期間における複数の区間の各々において、前記経時的な複数の方向入力に基づいて決定した1つの方向入力である区間方向入力を示す、請求項5または6記載のゲームプログラム。
【請求項8】
前記区間方向入力は、前記区間における前記経時的な複数の方向入力の強さを踏まえて決定される、請求項7記載のゲームプログラム。
【請求項9】
前記指示画像が示す区間方向入力に対して、前記経時的な方向入力の強さを踏まえて決定した強さを付与し、付与した強さを、強さに応じて設定された複数の分類に分類する分類ステップを前記コンピュータにさらに実行させる、請求項8記載のゲームプログラム。
【請求項10】
前記第1指標を移動させる前記初期位置および前記一端を含み、当該第1指標の前記停止位置を決定するためのゲージを前記表示部に表示し、
前記ゲージは、前記複数の区間に対応して予め分割され、
前記指示画像表示ステップは、分割された前記ゲージの分割領域毎に、前記指示画像を表示する、請求項5から9までのいずれかに記載のゲームプログラム。
【請求項11】
前記第1指標が前記分割領域の途中で停止された場合には、当該第1指標が当該分割領域の終端で停止された場合に比べて、前記所定期間が短くされる、請求項10記載のゲームプログラム。
【請求項12】
前記複数の区間の数は、前記プレイヤが使用するキャラクタの種類、当該キャラクタの能力および当該キャラクタが使用するアイテムの少なくとも1つに応じて設定される、請求項5から11までのいずれかに記載のゲームプログラム。
【請求項13】
前記移動ステップにおいて、移動中の前記移動オブジェクトの位置に対応する前記指示画像を目立たせる、請求項5から12までのいずれかに記載のゲームプログラム。
【請求項14】
前記移動ステップにおいて、移動中の前記移動オブジェクトの位置に対応する前記区間を目立たせる、請求項10から13までのいずれかに記載のゲームプログラム。
【請求項15】
前記移動ステップは、前記第1指標が前記初期位置から停止されるまで移動した距離が前記移動オブジェクトの基準の軌道の直線的な移動距離に相当すると仮定した場合において、当該移動オブジェクトが移動を開始してからの時間における当該基準の軌道の位置に対応する位置を含む対象の前記区間における前記経時的な複数の方向入力による変化を、当該移動オブジェクトの軌道に反映させる、請求項7から14までのいずれかに記載のゲームプログラム。
【請求項16】
前記移動ステップは、前記複数の区間の各々について、前記経時的な複数の方向入力を1つにまとめた方向入力である区間方向入力を決定し、前記対象の区間について決定した当該区間方向入力による変化を、前記移動オブジェクトの軌道に反映させる、請求項15記載のゲームプログラム。
【請求項17】
前記移動ステップは、前記経時的な複数の方向入力の各々を、前記複数の区間毎に、対応する前記区間方向入力に置き換え、前記移動オブジェクトが移動を開始してからの時間における前記基準の軌道の位置に対応する位置の当該区間方向入力を含む所定数の前記区間方向入力による変化を、前記移動オブジェクトの軌道に反映させる、請求項16記載のゲームプログラム。
【請求項18】
前記区間方向入力は、前記区間における前記経時的な複数の方向入力の強さを踏まえて決定され、
前記移動ステップは、前記強さを用いて、前記区間方向入力による変化を前記移動オブジェクトの軌道に反映する、請求項16記載のゲームプログラム。
【請求項19】
所定の条件を満たすことで、次回以降において、前記移動オブジェクトの移動に関する能力を上昇可能にされ、
前記所定の条件は、前記設定処理において設定される前記移動距離パラメータが所定値未満であることを含む、請求項2から18までの何れかに記載のゲームプログラム。
【請求項20】
前記スポーツゲームの進行状況に応じて、前記ゲージは縮小または拡大され、前記第2指標は、縮小または拡大された長さに比例した速度で移動する、請求項10または11記載のゲームプログラム。
【請求項21】
プレイヤの操作に応じて移動オブジェクトを移動させることで進行するスポーツゲームを実行するゲーム装置であって、
前記ゲーム装置はプロセッサを備え、
前記プロセッサは、
プレイヤの操作に従って開始され、前記移動オブジェクトを移動させるためのパラメータを決定し、
前記パラメータを決定する間の所定期間において、前記移動オブジェクトの移動開始後の軌道の変化を決定するための経時的な方向入力を示すプレイヤの操作を検出し、
前記パラメータを決定した後に、検出した経時的な方向入力を示す前記プレイヤの操作に基づいて、当該経時的な方向入力を経時的に軌道に反映させながら前記移動オブジェクトを移動させる、ゲーム装置。
【請求項22】
プレイヤの操作に応じて移動オブジェクトを移動させることで進行するスポーツゲームを実行するコンピュータのゲーム制御方法であって、
(a)プレイヤの操作に従って開始され、前記移動オブジェクトを移動させるためのパラメータを決定するステップ、
(b)前記ステップ(a)の実行中の所定期間において、前記移動オブジェクトの移動開始後の軌道の変化を決定するための経時的な方向入力を示すプレイヤの操作を検出するステップ、
(c)前記ステップ(a)の実行後に、前記ステップ(b)において検出した前記経時的な方向入力を示す前記プレイヤの操作に基づいて、当該経時的な方向入力を経時的に軌道に反映させながら前記移動オブジェクトを移動させるステップを含む、ゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ゲームプログラム、ゲーム装置およびゲーム制御方法に関し、特にたとえば、移動オブジェクトの軌道を変化させる、ゲームプログラム、ゲーム装置およびゲーム制御方法に関する。
【背景技術】
【0002】
背景技術の一例が特許文献1に開示される。この特許文献1に開示されるゴルフゲームでは、プレイヤに、ゴルフクラブを選択させたり、打撃操作を実行させたりして、ゴルフボールをプレイヤキャラクタに打撃させる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許4213011号
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載のゴルフゲームでは、打撃操作の前にゴルフボールの打点位置を決定し、それに応じて打撃したゴルフボールがスライスするかフックするかなどの軌道が決定されることが開示されるが、打撃した後のゴルフボールの軌道をどのように決定するかについては、興趣の観点から改善の余地がある。
【0005】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラム、ゲーム装置およびゲーム制御方法を提供することである。
【0006】
また、この発明の他の目的は、ゲームの興趣を向上させることができる、ゲームプログラム、ゲーム装置およびゲーム制御方法を提供することである。
【課題を解決するための手段】
【0007】
第1の発明は、プレイヤの操作に応じて移動オブジェクトを移動させることで進行するスポーツゲームをコンピュータに実行させるゲームプログラムであって、コンピュータに、プレイヤの操作に従って開始され、移動オブジェクトを移動させるためのパラメータを決定するパラメータ決定ステップ、パラメータ決定ステップの実行中の所定期間において、移動オブジェクトの移動開始後の軌道の変化を決定するための経時的な方向入力を示すプレイヤの操作を検出する検出ステップ、パラメータ決定ステップの実行後に、検出ステップにおいて検出した経時的な方向入力を示すプレイヤの操作に基づいて、当該経時的な方向入力を経時的に軌道に反映させながら移動オブジェクトを移動させる移動ステップを実行させる、ゲームプログラムである。
【0008】
第1の発明によれば、移動オブジェクトを移動させるためのパラメータを決定するパラメータ決定ステップの実行中の所定期間における経時的な方向入力を経時的に反映させながら移動オブジェクトを移動させるので、方向入力自体に興味を持たせることができ、移動オブジェクトの軌道がどうなるかについても興味を持たせることができる。つまり、プレイヤに継続的に興味を持たせることができる。したがって、ゲームの興趣を向上させることができる。
【0009】
第2の発明は、第1の発明に従属し、パラメータ決定ステップは、移動オブジェクトの移動距離に関する移動距離パラメータを設定する移動距離パラメータ設定ステップを含み、検出ステップにおける所定期間は、設定された移動距離パラメータが大きい程長くされる関するパラメータを設定する設定処理を含み、移動距離が大きい程、所定期間は長くされる。
【0010】
第2の発明によれば、移動距離が大きい程、所定期間は長くされるので、経時的な方向入力も長く行うことができる。よって、ゲームの興趣を向上させることができる。
【0011】
第3の発明は、第1または第2の発明に従属し、パラメータ決定ステップは、移動オブジェクトの移動距離に関する移動距離パラメータ設定ステップを含み、移動距離パラメータ設定ステップは、初期位置から一端に向けて、移動距離パラメータを示す第1指標を移動させる第1指標移動ステップ、およびプレイヤの操作に従って第1指標を停止させる第1指標停止ステップを含み、検出ステップにおける所定期間は、初期位置から第1指標を停止させた停止位置までの距離が大きい程長く設定される。
【0012】
第4の発明は、第3の発明に従属し、移動距離パラメータ設定ステップの実行を終えると、初期位置から少なくとも停止位置に向けて、経時的な方向入力についての第2指標を移動させる第2指標移動ステップをコンピュータにさらに実行させ、検出ステップは、第2指標が初期位置から停止位置に移動するまでの間における経時的な方向入力を示すプレイヤの操作を検出する。
【0013】
第4の発明によれば、第2指標が移動することにより、方向入力できる期間を容易に知ることができる。したがって、操作性が良い。
【0014】
第5の発明は、第4の発明に従属し、検出ステップにおいて検出した経時的な方向入力を示す指示画像を、第2指標の移動経路に重ねてまたは沿って表示部に表示する指示画像表示ステップをコンピュータにさらに実行させる。
【0015】
第5の発明によれば、検出した経時的な方向入力を示す指示画像を表示するので、移動オブジェクトがどのような軌道で移動するかを考慮しながら、方向入力を行うことができる。
【0016】
第6の発明は、第5の発明に従属し、指示画像表示ステップは、検出したプレイヤの操作が示す経時的な方向入力の数よりも少ない数で指示画像を表示する。
【0017】
第6の発明によれば、指示画像を表示する数を、検出した方向入力の数よりも少なくするので、移動ボブジェクトの移動方向が分かり易い。
【0018】
第7の発明は、第5または第6の発明に従属し、指示画像は、所定期間における複数の区間の各々において、経時的な複数の方向入力に基づいて決定した1つの方向入力である区間方向入力を示す。
【0019】
第8の発明は、第7の発明に従属し、区間方向入力は、区間における経時的な複数の方向入力の強さを踏まえて決定される。
【0020】
第8の発明によれば、方向入力の強さも考慮されるため、軌道に反映される変化の大きさを可変的に設定することができる。
【0021】
第9の発明は、第8の発明に従属し、指示画像が示す区間方向入力に対して、経時的な方向入力の強さを踏まえて決定した強さを付与し、付与した強さを、強さに応じて設定された複数の分類に分類する分類ステップをコンピュータにさらに実行させる。
【0022】
第9の発明によれば、強さを複数の分類に分類するので、方向入力の強さを直感的に知ることができる。
【0023】
第10の発明は第5の発明から第9の発明までのいずれかに従属し、第1指標を移動させる初期位置および一端を含み、当該第1指標の停止位置を決定するためのゲージを表示部に表示し、ゲージは、複数の区間に対応して予め分割され、指示画像表示ステップは、分割されたゲージの分割領域毎に、指示画像を表示する。
【0024】
第10の発明によれば、第1指標を当初から表示させることにより、打撃力のみならず、方向入力をどの程度行うかについても考慮して第1指標を停止させるので、ゲームの戦略性も向上させる。
【0025】
第11の発明は、第10の発明に従属し、第1指標が分割領域の途中で停止された場合には、当該第1指標が当該分割領域の終端で停止された場合に比べて、所定期間が短くされる。
【0026】
第12の発明は、第5の発明から第11の発明までのいずれかに従属し、複数の区間の数は、プレイヤが使用するキャラクタの種類、当該キャラクタの能力および当該キャラクタが使用するアイテムの少なくとも1つに応じて設定される。
【0027】
第12の発明によれば、使用するキャラクタの種類等に応じて複数の区間の数が設定されるので、プレイヤの操作能力または/および戦略に応じて使用するキャラクタを選択したり、使用するアイテムを選択したりすることができる。
【0028】
第13の発明は、第5の発明から第12の発明までのいずれかに従属し、移動ステップにおいて、移動中の移動オブジェクトの位置に対応する指示画像を目立たせる。
【0029】
第13の発明よれば、移動オブジェクトの移動中に指示画像を目立たせるので、方向入力が示す方向に移動オブジェクトが移動していることを容易に確認することができる。
【0030】
第14の発明は、第10の発明から第13の発明までのいずれかに従属し、移動ステップにおいて、移動中の移動オブジェクトの位置に対応する区間を目立たせる。
【0031】
第14の発明によれば、移動オブジェクトがどの区間に対応する位置を移動しているかを容易に知ることができる。
【0032】
第15の発明は、第7の発明から第14の発明までのいずれかに従属し、移動ステップは、第1指標が初期位置から停止されるまで移動した距離が移動オブジェクトの基準の軌道の直線的な移動距離に相当すると仮定した場合において、当該移動オブジェクトが移動を開始してからの時間における当該基準の軌道の位置に対応する位置を含む対象の区間における経時的な複数の方向入力による変化を、当該移動オブジェクトの軌道に反映させる。
【0033】
第15の発明によれば、区間毎に決定される方向入力の方向に移動オブジェクトを移動させることができる。
【0034】
第16の発明は、第15の発明に従属し、移動ステップは、複数の区間の各々について、経時的な複数の方向入力を1つにまとめた方向入力である区間方向入力を決定し、対象の区間について決定した当該区間方向入力による変化を、移動オブジェクトの軌道に反映させる。
【0035】
第17の発明は、第16の発明に従属し、移動ステップは、経時的な複数の方向入力の各々を、複数の区間毎に、対応する区間方向入力に置き換え、移動オブジェクトが移動を開始してからの時間における基準の軌道の位置に対応する位置の当該区間方向入力を含む所定数の区間方向入力による変化を、移動オブジェクトの軌道に反映させる。
【0036】
第17の発明によれば、区間を跨ぐ場合にも移動オブジェクトの軌道が滑らかに変化される。
【0037】
第18の発明は、第16の発明に従属し、区間方向入力は、区間における経時的な複数の方向入力の強さを踏まえて決定され、移動ステップは、強さを用いて、区間方向入力による変化を移動オブジェクトの軌道に反映する。
【0038】
第18の発明によれば、強さも考慮して方向入力を行うので、方向入力自体に興味を持たせることができる。
【0039】
第19の発明は、第2の発明から第18の発明までのいずれかに従属し、所定の条件を満たすことで、次回以降において、移動オブジェクトの移動に関する能力を上昇可能にされ、所定の条件は、設定処理において設定される移動オブジェクトの移動距離または当該移動距離に関するパラメータが所定値未満であることを含む。
【0040】
第19の発明よれば、移動距離を優先するか、移動に関する能力の上昇を優先するかの戦略性が生まれ、ゲームの興趣が向上される。
【0041】
第20の発明は、第10または第11の発明に従属し、スポーツゲームの進行状況に応じて、ゲージは縮小または拡大され、第2指標は、縮小または拡大された長さに比例した速度で移動する。
【0042】
第20の発明によれば、ゲージの縮小または拡大により移動距離を変化させることができ、ゲージの長さに比例した速度で第2指標を移動させるので、ゲージが縮小または拡大されたことに起因して所定期間が短くされることはない。つまり、操作性が損なわれることはない。
【0043】
第21の発明は、プレイヤの操作に応じて移動オブジェクトを移動させることで進行するスポーツゲームを実行するゲーム装置であって、ゲーム装置はプロセッサを備え、プロセッサは、プレイヤの操作に従って開始され、移動オブジェクトを移動させるためのパラメータを決定し、パラメータを決定する間の所定期間において、移動オブジェクトの移動開始後の軌道の変化を決定するための経時的な方向入力を示すプレイヤの操作を検出し、パラメータを決定した後に、検出した経時的な方向入力を示すプレイヤの操作に基づいて、当該経時的な方向入力を経時的に軌道に反映させながら移動オブジェクトを移動させる、ゲーム装置である。
【0044】
第22の発明は、プレイヤの操作に応じて移動オブジェクトを移動させることで進行するスポーツゲームを実行するコンピュータのゲーム制御方法であって、(a)プレイヤの操作に従って開始され、移動オブジェクトを移動させるためのパラメータを決定するステップ、(b)ステップ(a)の実行中の所定期間において、移動オブジェクトの移動開始後の軌道の変化を決定するための経時的な方向入力を示すプレイヤの操作を検出するステップ、(c)ステップ(a)の実行後に、ステップ(b)において検出した経時的な方向入力を示すプレイヤの操作に基づいて、当該経時的な方向入力を経時的に軌道に反映させながら移動オブジェクトを移動させるステップを含む、ゲーム制御方法である。
【0045】
第21および第22の発明においても、第1の発明と同様に、ゲームの興趣を向上させることができる。
【発明の効果】
【0046】
この発明によれば、移動オブジェクトの移動が開始される前の所定期間に入力された経時的な方向入力を、移動オブジェクトの軌道に経時的に反映させるので、プレイヤに、方向入力自体に興味を持たせることができるとともに、移動オブジェクトの実際の軌道がどうなるかについても興味を持たせることができる。つまり、プレイヤに継続的に興味を持たせることができる。したがって、ゲームの興趣を向上させることができる。
【0047】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0048】
図1図1はこの実施例の本体装置に左コントローラおよび右コントローラを装着した状態の限定しない一例を示す図である。
図2図2は本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の限定しない一例を示す図である。
図3図3図1および図2に示した本体装置の限定しない一例を示す六面図である。
図4図4図1および図2に示した左コントローラの限定しない一例を示す六面図である。
図5図5図1および図2に示した右コントローラの限定しない一例を示す六面図である。
図6図6図1および図2に示した本体装置の内部構成の限定しない一例を示すブロック図である。
図7図7図1および図2に示した本体装置と左コントローラおよび右コントローラとの内部構成の限定しない一例を示すブロック図である。
図8図8はパラメータ決定画面の限定しない第1の例を示す図である。
図9図9はパラメータ決定画面の限定しない第2の例を示す図である。
図10図10はパラメータ決定画面の限定しない第3の例を示す図である。
図11図11はパラメータ決定画面の限定しない第4の例を示す図である。
図12図12はパラメータ決定画面の限定しない第5の例を示す図である。
図13図13(A)はぶれが決定される範囲の限定しない一例を説明するための図であり、図13(B)はぶれが決定される範囲の限定しない他の例を説明するための図である。
図14図14はパラメータ決定画面の限定しない第6の例を示す図である。
図15図15(A)はフレーム毎の方向入力の限定しない一例を示す表であり、図15(B)は操作区間毎に平均化した方向入力の限定しない一例を示す表である。
図16図16は基準軌道における移動時間と水平距離の対応表の限定しない一例を示す図である。
図17図17は或る時間においてボールの軌道に影響を与える方向入力を決定する方法の限定しない一例を示す図である。
図18図18(A)はボールの速度ベクトルを右方向に回転する方法の限定しない一例を説明するための図であり、図18(B)はボールの速度ベクトルを上方向に回転する方法の限定しない一例を説明するための図である。
図19図19はパラメータ決定画面の限定しない第7の例を示す図である。
図20図20はパラメータ決定画面の限定しない第8の例を示す図である。
図21図21はパラメータ決定画面の限定しない第9の例を示す図である。
図22図22図6に示す本体装置のDRAMのメモリマップの限定しない一例を示す図である。
図23図23図22に示すデータ記憶領域の限定しない一例を示す図である。
図24図24図23に示すキャラクタデータの具体的な内容の限定しない一例を示す図である。
図25図25図6に示す本体装置のプロセッサの全体的なゲーム処理の限定しない一例を示すフロー図である。
図26図26図25に示すゲーム制御処理の限定しない一例の一部を示すフロー図である。
図27図27図25に示すゲーム制御処理の限定しない一例の他の一部であって、図26に後続するフロー図である。
図28図28図26に示す第1のパラメータ決定処理の限定しない一例を示すフロー図である。
図29図29図26に示す第2のパラメータ決定処理の限定しない一例の一部を示すフロー図である。
図30図30図26に示す第2のパラメータ決定処理の限定しない一例の他の一部であって、図29に後続するフロー図である。
図31図31図26に示す第2のパラメータ決定処理の限定しない一例のその他の一部であって、図30に後続するフロー図である。
図32図32図26に示すボール移動処理の限定しない一例の一部を示すフロー図である。
図33図33図26に示すボール移動処理の限定しない一例の他の一部であって、図32に後続するフロー図である。
【発明を実施するための形態】
【0049】
以下、この実施例の限定しない一例に係るゲームシステムについて説明する。この実施例におけるゲームシステム1の一例は、本体装置(情報処理装置;この実施例ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、この実施例のゲームシステム1のハードウェア構成について説明し、その後に、この実施例のゲームシステム1の制御について説明する。
【0050】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0051】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0052】
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。この実施例において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0053】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0054】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。この実施例においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0055】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。この実施例においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0056】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0057】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0058】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0059】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。この実施例において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、この実施例においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0060】
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。この実施例においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1および図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0061】
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、この実施例においては、アナログスティック32を押下する入力が可能である。
【0062】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33~36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および-(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上にLボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面のうち、本体装置2に装着される際に装着される側の面に、SLボタン43およびSRボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0063】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0064】
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。この実施例においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0065】
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。この実施例においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53~56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上にRボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、SLボタン65およびSRボタン66を備える。
【0066】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0067】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0068】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0069】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0070】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0071】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0072】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。この実施例においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0073】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、この実施例においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0074】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信(または、取得)する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信(または、取得)する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、この実施例においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、表示画像データや音声データ)を据置型モニタ等に出力することができる。
【0075】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0076】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0077】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0078】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0079】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0080】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0081】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
【0082】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。この実施例においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0083】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0084】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0085】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0086】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判断することができる。
【0087】
左コントローラ3は、電力供給部108を備える。この実施例において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0088】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0089】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0090】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0091】
次に、図8図21を参照して、この実施例のゲームシステム1において実行される仮想のゴルフゲームのゲーム処理についての概要を説明する。詳細な説明は省略するが、仮想のゴルフゲームでは、プレイヤは、単独でまたは他のプレイヤ(人間またはコンピュータのプレイヤ)とストロークプレイを行うことができる。ただし、マッチプレイなどの他のゴルフゲームもプレイすることができる。以下においては、プレイヤがプレイヤキャラクタを使用してゴルフゲームをプレイする場合について説明し、他のプレイヤについてはプレイヤと同様であるため、重複する説明は省略することにする。
【0092】
この実施例では、ゴルフゲームのアプリケーションが実行されると、プレイするゴルフゲームの種類(たとえば、ストロークプレイまたはマッチプレイ)、プレイするゴルフコース、および、プレイヤが使用するキャラクタが複数のキャラクタの中から選択される。これらの選択が終了すると、プレイヤの操作に従って、または、自動的に、ゴルフゲームが開始される。
【0093】
詳細な説明は省略するが、この実施例では、複数のキャラクタは、それぞれ、他のキャラクタとは外観が異なり、個別に、クラブ毎の最大飛距離が割り当てられている。
【0094】
本体装置2は、画像処理装置としても機能し、ゲーム画像などの各種画面に対応する表示画像データを生成および出力(または、表示)する。プロセッサ81は、3次元の仮想空間に各種のオブジェクトおよびキャラクタを配置し、或る情景または場面を生成する。この情景または場面を仮想のカメラで撮影した(つまり、視点から見た)画像がゲーム画像としてディスプレイ12に表示される。
【0095】
なお、この明細書においては、グリーン上においてゴルフボールを入れる穴を「カップ」と呼び、ゴルフコース内において、ティーイングエリアからグリーンまでのプレイする区域または領域(すなわち、キャラクタが移動可能な範囲)を「ホール」と呼ぶことにする。また、この明細書において、「カップイン」とは、ゴルフボールがカップに入ることを意味する。
【0096】
ゴルフゲームが開始されると、選択されたゴルフコースの最初のホールにおけるティーイングエリアおよびそのティーイングエリアから見えるホールの一部の画像(背景画像)を含むゲーム画像がディスプレイ12に表示される。たとえば、ゴルフコースのうちの最初のホールがゲーム空間またはゲームフィールドに生成され、ティーイングエリアの後方の所定位置からプレイヤキャラクタがボールを打撃する方向を向くように仮想カメラの位置および向きが設定される。ゲーム画像の限定しない一例として、図8に示すようなパラメータ決定画面300が表示装置(たとえば、ディスプレイ12)に表示される。
【0097】
図8に示すように、パラメータ決定画面300には、プレイヤキャラクタ302が表示され、プレイヤキャラクタ302は、仮想のゴルフクラブ(以下、単に「クラブ」という)304を握っている。図8からも分かるように、プレイヤキャラクタ302は、アドレスした状態で表示され、ティーアップされた仮想のゴルフボール(以下、単に「ボール」という)306が所定の位置に配置されている。上述したように、パラメータ決定画面300には、背景画像308が表示される。図8に示す例では、背景画像308として、ティーイングエリア、左右のティマーカ、フェアウェイ、樹木、空および雲などの仮想のオブジェクトが表示されている。また、図8では、パラメータ決定画面300のほぼ中心に仮想のピン310が表示される。
【0098】
パラメータ決定画面300の右下の角部には、プレイヤキャラクタ302が打撃に使用するクラブ304の種類を表示するための表示領域314が設けられる。パラメータ決定画面300において、クラブ304の種類が変更されると、プレイヤキャラクタ302が握っているクラブ304の画像が変更後の種類のクラブ304の画像に変更される。このとき、表示領域314に表示されるクラブ304の種類も変更される。この実施例では、Lボタン38またはRボタン60を押下することにより、クラブ304の種類を変更することができる。Lボタン38が押下されると、現在のクラブ304よりも長いクラブ304に変更され、Rボタン60が押下されると、現在のクラブ304よりも短いクラブ304に変更される。クラブ304の種類に応じて、100%の打撃量でボール306を打撃した場合のボール306の飛距離が決定される。ただし、飛距離はプレイヤキャラクタ302の種類に応じて変えてもよい。
【0099】
また、表示領域314の上方には、星形の能力ゲージ316が表示される。能力ゲージ316は、使用するクラブ304の能力を上げることができるかどうかを決定するためのパラメータ(以下、「能力上昇パラメータ」という)の大きさ(または、蓄積量)を表示するものである。能力上昇パラメータが蓄積されると、蓄積量に応じて、星形の能力ゲージ316内の色が変化する。能力ゲージ316が一杯になると、すなわち、能力上昇パラメータが最大値(たとえば、100)に達すると、プレイヤの操作に応じて、使用するクラブ304の能力を上げることができる。たとえば、プレイヤがYボタン56を押下するこにより、クラブ304の能力を上昇させることが選択される。再度Yボタン56を押下するか、Bボタン54を押下することにより、クラブ304の能力を上昇させることをキャンセルすることができる。また、クラブ304の能力を上げた状態で、プレイヤキャラクタ302がボール306を打撃すると、能力上昇パラメータは最小値(たとえば、0)にされる。
【0100】
この実施例では、所定の条件を満たすと、能力上昇パラメータが蓄積される。一例として、所定の条件は、最大値(100%)の75%未満の打撃力でボール306を打撃したことである。他の実施例では、所定の条件は、所定のアイテムを取得または使用したこと、または/および、所定のノルマを達成したことでもよい。能力上昇パラメータの蓄積量は、固定値でもよいし、可変値でもよい。たとえば、打撃力が75%未満であれば、所定の蓄積量(たとえば、20)が能力上昇パラメータに加算される。ただし、蓄積量は、打撃力が75%から小さくなるにつれて増大されてもよい。
【0101】
クラブ304の種類の変更およびクラブ304の能力の上昇、すなわち、ボール306の移動に関する一部のパラメータ(以下、「第1のパラメータ」という)を決定する操作(以下、「第1のパラメータ決定操作」という)は、後述する、移動ゲージ320を用いたボール306の移動に関する第2のパラメータ(以下、「第2のパラメータ」という)を決定する操作(以下、「第2のパラメータ決定操作」という)の前に行われる。また、詳細な説明は省略するが、第2のパラメータ決定操作の前においては、クラブ304の選択および能力を上昇させるかどうかの選択のみならず、プレイヤの操作に応じて、ボール306の左右の打ち出し方向、すなわち、ボール306の移動開始時における左右の方向を変更することができる。この左右の打ち出し方向も上記のボール306の移動に関する第1のパラメータである。たとえば、ボール306の左右の打ち出し方向は、アナログスティック32を左または右に傾倒させることにより変更することができる。
【0102】
さらに、パラメータ決定画面300の中央から右寄りであり、表示領域314および能力ゲージ316の左側には、ボール306の移動に関する第2のパラメータを決定するための移動ゲージ320が表示される。この実施例では、ボール306の移動に関する第2のパラメータは、ボール306の打撃力、ボール306の軌道の変化およびボール306の軌道のぶれである。
【0103】
この実施例では、軌道の変化は、ボール306を予め決定した打ち出し方向に打撃した場合の基準の軌道(以下、「基準軌道」という)に対する上下および左右への変化の方向と変化量(または、変化の強さ)を意味する。ここで、基準軌道は、使用するクラブ304の種類(具体的には、上下方向の打ち出し角度)および打撃力(具体的には、ボール306の初速度)によって決定される放物線を意味する(図17参照)。また、この実施例では、軌道のぶれは、ボール306の打ち出し方向のぶれの方向(この実施例では、左右の方向)とぶれ量を意味する。
【0104】
放物線は斜方投射の一般的な物理計算で数1に従って算出することができる。また、時間tにおけるボール306の位置は数2に従って算出することができる。ただし、仮想のゲーム空間には、所定の重力加速度gが設定されているものとする。また、θはボール306の上下方向の打ち出し角度であり、v0はボール306の初速度である。ボール306の上下方向の打ち出し角度θは、クラブ304毎に予め設定されている。さらに、ボール306の初速度v0は、打撃力と使用するクラブ304の最大飛距離に応じて設定される。また、tは時間(フレーム)である。フレームは、画面更新の単位時間であり、たとえば、1/60秒である。
【0105】
また、基準軌道を算出する場合には、ローカル座標が設定される。具体的には、ボール106の現在位置が基準(原点)に設定され、ボール106の現在位置から仮想の着弾点に向かって水平に延びる軸がx軸に設定され、このx軸に垂直であり、仮想空間の高さ方向に延びる軸がy軸に設定される。さらに、x軸とy軸の両方に垂直なz軸が設定される。また、ボール106の現在位置から仮想の着弾点に向かって水平に延びる方向がx軸のプラス方向に設定され、仮想空間の上方に向かう方向がy軸のプラス方向に設定され、x軸のプラス方向を見た場合の右方に向かう方向がz軸のプラス方向に設定される。
【0106】
ただし、基準軌道を算出する場合には、地形(または、地面)に傾斜が無いものとする。したがって、ゲーム空間内において、ボール306の現在位置から、この現在位置における高さと同じ高さになる位置(すなわち、水平到達距離における位置)までの放物線が基準軌道として算出される。
【0107】
[数1]
基準軌道 y=tanθ・x-(gx2)/(2v0 2cos2θ)
[数2]
位置 x=v0cosθ・t y=v0sinθ-(gt2)/2
なお、この実施例では、基準軌道は一般的な物理計算で算出される放物線であるが、仮想空間における空気抵抗およびボールスピンに伴う揚力の影響も加味したシミュレーション処理に基づいて求めるようにしてもよい。
【0108】
ここで、移動ゲージ320について詳しく説明する。図8に示したように、移動ゲージ320は、縦長の棒状(または、帯状)に形成された長方形の領域(以下、「基本領域」という)322を含み、基本領域322は4つの区間(または、領域)に分割されている。この実施例では、分割された4つの区間を、パラメータ決定画面300において下から順に、第1操作区間322a、第2操作区間322b、第3操作区間322cおよび第4操作区間322dと呼ぶことにする。移動ゲージ320は、一例として、白色の線で表示され、第2のパラメータ決定操作の前において、基本領域322内は黒色にされる。
【0109】
また、移動ゲージ320は、基本領域322の外側に、大きさおよび形状が可変的に設定される領域(以下、「リスク領域」という)324を含む。詳細は後述するが、リスク領域324は、基本領域322の範囲を超えて、ボール306の左または右への方向のぶれを決定するための領域である。このリスク領域324は、使用するクラブ304およびライの状態に基づいて可変的に大きさおよび形状が決定される。簡単に説明すると、一般的な現実のゴルフの場合と同様に、打撃の難易度が高くなると、リスク領域324の大きさが大きくされる。また、一例として、リスク領域324内は赤色にされる。
【0110】
この実施例では、リスク領域324を分かり易く示すために、基本領域322とリスク領域324を色分けして示してあるが、これらは色分けせずに一体的に示されてもよい。たとえば、基本領域322の一部が変形して左右の方向に広がることにより、リスク領域324が形成されてもよい。
【0111】
図8に示すパラメータ決定画面300において、第2のパラメータ決定操作の開始の指示(この実施例では、Aボタン53の押下)が有ると、第1指標画像326が初期位置(すなわち、移動ゲージ320の下端)から一端(すなわち、移動ゲージ320の上端)に向けて移動を開始する。第1指標画像326は、打撃力を決定するための指標であり、移動速度V1で移動する。
【0112】
図9に示すように、第1指標画像326が移動すると、移動ゲージ320内の第1指標画像326が移動した部分の色が変化される(図9における斜線部分)。一例として、第1指標画像326が移動ゲージ320内を移動すると、移動した部分の色が黄色に変化される。この実施例では、基本領域322の色は変化されるが、リスク領域324の色は変化されない。
【0113】
なお、この実施例では、第1指標画像326が移動した部分の色を変化するようにしたが、第1指標画像326の移動に代えて、移動ゲージ320内の色が、移動ゲージ320の下端から上端に向けて次第に変化されてもよい。この場合、色が変化される速度が移動速度V1である。
【0114】
打撃力は、第1指標画像326を停止させた位置に応じて決定され、最小値(0%)よりも大きく、最大値(100%)以下で決定される。ただし、第1指標画像326が移動ゲージ320の下端に位置する場合に、打撃力は最小であり、第1指標画像326が移動ゲージ320の上端に位置する場合に、打撃力は最大である。第1指標画像326は、停止の指示(この実施例では、Aボタン53の押下)が有ると、移動を停止する。打撃力は、移動ゲージ320の全長に対する、移動ゲージ320の下端から停止した第1指標画像326までの長さの割合で決定される。厳密には、第1指標画像326は、移動ゲージ320の下端から上端に向かうに従って、各操作区間322a-322dの変形に応じて次第に斜めに傾くため、打撃力は、移動ゲージ320の下端から第1指標画像326の中心の位置までの長さで決定される。つまり、第1指標画像326が移動ゲージ320の上端に近い程、打撃力は大きくなる。上述したように、打撃力に基づいてボール306の初速度v0は決定されるため、第1指標画像326が移動ゲージ320の上端に近い程、ボール306の移動距離が大きくなる。
【0115】
第1指標画像326は、停止の指示が無い場合には、移動ゲージ320の上端まで到達すると、移動方向を反転して、移動ゲージ320の下端に向けて移動する。第1指標画像326が移動ゲージ320の下端まで到達すると、第1指標画像326は移動を停止し、第2のパラメータ決定操作のやり直し、または、ミスショットまたは空振りとなる。
【0116】
なお、第1指標画像236が移動ゲージ320の下端に向けて移動している場合にも、プレイヤは第1指標画像326の移動を停止させることができる。
【0117】
また、他の実施例では、第1指標画像326は、移動ゲージ320の上端まで到達すると、再び、下端から上端に向けて移動するようにしてもよい。
【0118】
図10は第1指標画像326の移動が停止された場合の限定しない一例のパラメータ決定画面300を示す。図10に示すように、第1指標画像326は、第4操作区間322dの中央から上端寄りの位置で停止している。第1指標画像326が停止すると、第2指標画像330が移動ゲージ320の下端から上端に向けて移動速度V2で移動を開始する。第2指標画像330は、ボール306の軌道を変化させる方向および変化させる大きさ(すなわち、変化量)を入力可能な所定期間(以下、「方向入力期間」という)およびボール306の軌道を変化させる部分(または、区間)を示す指標である。一例として、移動速度V2は、移動速度V1と同じであるが、異なる速度でもよい。
【0119】
第2指標画像330は、移動ゲージ320の下端から、停止した第1指標画像326の位置まで移動する。この期間が方向入力期間である。したがって、第1指標画像326が操作区間322a、322b、322cまたは322dの途中で停止された場合には、この第1指標画像326が同じ操作区間322a、322b、322cまたは322dの終端で停止された場合に比べて、方向入力期間が短くされる。プレイヤは、第1指標画像326の移動を停止することにより打撃力を指定すると、方向入力期間において、経時的に方向入力を行うことができる。この経時的な方向入力によって、打撃した後のボール306の軌道を、基準軌道から変化させることができる。つまり、経時的な方向入力を経時的に軌道に反映させながらボール306を移動させることができる。上記のように、第2指標画像330は、移動速度V2で移動するため、方向入力期間は、第1指標画像326の位置に応じて可変的に設定される。
【0120】
したがって、プレイヤは、打撃力のみならず、方向入力期間を考慮して第1指標画像326を停止させるのでゲームの興趣および戦略性が向上する。
【0121】
ただし、経時的な方向入力は、方向入力期間において検出される方向入力であり、この方向入力期間において、プレイヤが常に方向入力を行っているとは限らない。
【0122】
プレイヤは、アナログスティック32を傾倒することにより、方向入力を行うことができる。アナログスティック32は360度の方向に傾倒することが可能であり、したがって、360度の方向入力が可能である。また、アナログスティック32を傾倒させる角度の大きさ、すなわち傾倒量に応じて、傾倒させた方向(以下、「傾倒方向」という)にボール306の軌道を変化させる大きさ(または、強さ)が決定される。つまり、プレイヤはボール306の軌道を変化させる方向のみならず、変化の度合いも決定することができる。したがって、方向入力自体に興味を持たせることができる。
【0123】
図11は第2指標画像330が移動中である場合の限定しない一例のパラメータ決定画面300を示す。図11に示すように、第2指標画像330が移動すると、移動ゲージ320内の第2指標画像330が移動した部分の色がオレンジ色に変化される。ただし、リスク領域324の色は変化されない。また、図11では、第1指標画像326が移動したことにより変化された色と、第2指標画像330が移動したことにより変化された色を分かり易く示すために、図9および図10に示したパラメータ決定画面300とは、斜線の向きと隣接する斜線間の幅を変えてあり、さらに、第1指標画像326が移動したことにより変化された色を示す斜線は省略してある。また、第2指標画像330の移動に代えて、移動ゲージ320内の色が、移動ゲージ320の下端から、停止した第1指標画像326の位置まで次第に変化されてもよい。この場合、色が変化される速度が移動速度V2である。
【0124】
また、図11に示すように、第1操作区間322aの中央には、方向入力を示す画像(以下、「矢印画像」という)332が表示される。矢印画像332は、表示される操作区間322a、322b、322cまたは322dにおいて、フレーム毎に検出された複数の方向入力を、1つにまとめた方向入力(以下、「区間方向入力」という)を示す画像である。上述したように、方向入力は、アナログスティック32を上下および左右のそれぞれに傾倒した傾倒量であり、したがって、区間方向入力は、上下および左右の入力値がそれぞれで加算された1つの2次元ベクトルである。つまり、操作区間322a-322dの各々において、フレーム毎に検出された複数の方向入力の平均値が区間方向入力として算出される。
【0125】
この実施例では、矢印画像332は、複数の方向入力をまとめた1つの区間方向入力を示す画像であるため、検出した方向入力よりも少ない数の区間方向入力が表示される。したがって、区間方向入力が分かり易い。
【0126】
矢印画像332が表示されるタイミングは、一例として、所定数(たとえば、10-12)の方向入力が検出されたタイミングである。したがって、所定数の方向入力が検出されると、区間方向入力が算出され、区間入力方向を示す矢印画像332が対応する操作区間322a、322b、322cまたは322dに表示される。したがって、第2指標画像330が操作区間322a、322b、322cまたは322dの途中を移動中であっても、所定数の方向入力が検出された時点において、区間方向入力が算出され、算出された区間方向入力を示す矢印画像332が当該操作区間322a、322b、322cまたは322dに表示される。
【0127】
他の例では、第2指標画像330が操作区間322a、322b、322cまたは322dの中央に到達したときに、区間方向入力が算出され、算出された区間方向入力を示す矢印画像332が当該操作区間322a、322b、322cまたは322dに表示されるようにしてもよい。
【0128】
ただし、いずれの場合であっても、最終的には、操作区間322a、322b、322cまたは322dにおいて検出されたすべての方向入力から算出された区間方向入力に対応する矢印画像332が当該操作区間322a、322b、322cまたは322dに表示される。つまり、第2指標画像330が移動中の操作区間322a、322b、322cまたは322dにおいて途中で表示された矢印画像332は、第2指標画像330が当該操作区間322a、322b、322cまたは322dの終端まで移動したときに更新される。
【0129】
したがって、第2指標画像330が操作区間322a、322b、322cまたは322dの移動中に表示された矢印画像332を見て、この矢印画像332が示す区間方向入力が所望の方向および大きさ(または、強さ)でない場合には、区間方向入力が所望の方向および大きさになるように、方向入力を修正することができる。このため、矢印画像332は、単に区間方向入力を示すだけでなく、区間方向入力を修正するための指標とも言える。
【0130】
この実施例では、方向入力の傾倒量に応じて、ボール306の軌道を変化させる強さが異なり、その強さが分かるように、矢印画像332を表示または非表示するとともに、強さの段階に応じた内容に変更するようにしてある。この実施例では、ボール306の軌道を変化させる強さは、傾倒量が0である場合を含み、傾倒量が0よりも大きい場合については、3つの段階(たとえば、強、中、弱)に分類される。アナログスティック32の傾倒量は0から1.0の間で0.1ずつ変化し、傾倒しない場合の傾倒量は0であり、最大限に傾倒した場合の傾倒量は1.0である。また、傾倒量が0よりも大きく0.3以下である場合に、強さの段階が弱に決定され、傾倒量が0.3よりも大きく0.7以下である場合に、強さの段階が中(すなわち、強と弱の間)に決定され、傾倒量が0.7よりも大きく1.0以下である場合に、強さの段階が強に決定される。
【0131】
したがって、この実施例では、ボール306の軌道を変化させる場合には、ボール306の軌道を変化させる強さを3段階で表現した矢印画像332が表示され、ボール306の軌道を変化させない場合には、矢印画像332は表示されない。図11に示す矢印画像332は、ボール306の軌道を変化させる強さが強である場合の矢印画像332であり、矢印(矢先)が3つ並べて表示される。図示は省略するが、ボール306の軌道を変化させる強さが弱である場合には、矢印が1つの矢印画像332が表示される。また、ボール306の軌道を変化させる強さが中である場合には、矢印が2つの矢印画像332が表示される。
【0132】
ただし、上記の強さの分類は、矢印画像332を表示または非表示するために行っているだけであり、実際に軌道を変化させる場合には利用されない。他の実施例では、この分類を実際に軌道を変化させる場合に利用するようにしてもよい。ボール306の軌道を変化させる方法については、後で説明することにする。
【0133】
なお、この実施例では、アナログスティック32の傾倒量が0よりも大きい場合については、ボール306の軌道を変化させる強さを3つの段階に分類するようにしてあるが、これは一例であり、2つの段階以上であれば、4段階以上に分類することも可能である。
【0134】
図12は第2指標画像330が第1指標画像326が停止した位置まで移動した場合の限定しない一例のパラメータ決定画面300を示す。図12に示すように、第2指標画像330は非表示され、移動ゲージ320の初期位置から第1指標画像326が停止した位置までの色がオレンジ色に変化されている。また、図12に示すパラメータ決定画面300では、各操作区間322a-322dには、矢印画像332が表示されている。ボール306は、矢印画像332が示す方向に軌道が変化される。したがって、図12に示す例では、プレイヤキャラクタ302がボール306を打撃すると、ボール306は、基準軌道が第1操作区間322aに相当する部分において右に変化され、第2操作区間322bに相当する部分において左に変化され、第3操作区間322cに相当する部分において右斜め上方に変化され、第4操作区間322dに相当する部分において左斜め上方に変化された軌道に従って移動する。
【0135】
さらに、図12に示すパラメータ決定画面300では、第1指標画像326の下側に接触する画像(以下、「指示画像」という)328が表示される。指示画像328は、ボール306の軌道のぶれを示す画像である。この実施例では、プレイヤの操作によって、打撃力が決定され、さらに、軌道の変化が決定されたときに、軌道のぶれが抽選で決定される。
【0136】
指示画像328が表示される位置は、移動ゲージ320(または第1指標画像326)の横幅の範囲内において、抽選で決定される。この実施例では、所定の長さ(たとえば、0.5秒(30フレーム)程度)の抽選期間(以下、「ぶれの抽選期間」という)が設定される。ぶれは抽選期間の終了時に自動で決定される。また、ぶれの抽選期間において、指示画像328の表示位置は、第1指標画像326に沿ってランダムに変化され、その様子がパラメータ決定画面300で表示(以下、「抽選表示」ということがある)される。
【0137】
指示画像328が移動ゲージ320の横幅の中央に位置する場合には、ぶれは無く、左右のぶれ量は0である。指示画像328が移動ゲージ320の中央から左寄りに位置する場合には、ボール306の軌道は左にぶれる。また、指示画像328が移動ゲージ320の中央から右寄りに位置する場合には、ボール306の軌道は右にぶれる。ボール206が左または右にぶれる場合には、いずれの場合にも、ぶれ量は、指示画像328が移動ゲージ320の横幅の中央から離れるに従って大きくされる。
【0138】
図13(A)はぶれが決定される範囲の限定しない一例を説明するための図であり、図13(B)はぶれが決定される範囲の限定しない他の例を説明するための図である。図13(A)では、第1指標画像326は、移動ゲージ320のうち、リスク領域324が設けられていない位置で停止されている。したがって、図13(A)に示す場合には、ぶれは基本領域322の範囲内で決定される。一方、図13(B)では、第1指標画像326は、移動ゲージ20のうち、リスク領域324が設けられている位置で停止されている。このとき、図13(B)に示す場合には、ぶれは基本領域322とリスク領域324の範囲内で決定される。このため、図13(B)に示す場合には、図13(A)に示す場合よりも、打撃力が大きいため、ボール306の移動距離は長くなるが、ぶれ量が大きくなる可能性もある。したがって、プレイヤは、移動距離を重視するか、方向性を重視するかで、クラブ304の選択および打撃力の大きさを考慮してゴルフゲームをプレイすることができる。
【0139】
この実施例では、ぶれが有る場合には、ボール306の左右の打ち出し方向が変化される。ボール306の打ち出し方向の変化量は、ぶれ量に比例して大きくされる。ただし、他の例では、ぶれが有る場合には、軌道の一部または全部を、ぶれの方向に、ぶれ量に応じた大きさだけ変化(または、移動)させるようにしてもよい。その他の例では、ぶれが有る場合には、ボール306の打ち出し方向および軌道の両方を変化させるようにしてもよい。これらは、プレイヤキャラクタ302または/およびクラブ304の種類に応じて個別に採用されてもよい。
【0140】
また、第1操作区間322a、第2操作区間322b、第3操作区間322cおよび第4操作区間322dのそれぞれの終端(または、上端)側の線は、斜めに設定される。第1操作区間322aから第4操作区間322dに向かうに従って、各操作区間322a-322dの終端側の線の傾斜度合は大きくされる。この傾斜度合は、ボール306の左右のぶれ量に関係している。一般的に、ドローボールとフェードボールでは、ドローボールの方が飛距離が大きい。したがって、右打ちのキャラクタの場合には、図13(A)および図13(B)に示すように、終端側の線は左から右に向かうに従って下方に傾斜する。つまり、右打ちのキャラクタでは、左にぶれる方が右にぶれる場合よりも、飛距離が長くされる。ただし、終端側の線だけが傾斜するのではなく、各操作区間322a-322dが、移動ゲージ320の下端から上端に向かうに従って変化が大きくなるように変形している。
【0141】
したがって、上述したように、第1指標画像326は、移動ゲージ320の下端から上端に向かうに従って、徐々に傾斜する。
【0142】
図示は省略するが、左打ちのキャラクタの場合には、各操作区間322a-322dの終端側の境界線の傾斜の向きが右打ちのキャラクタの場合と逆になる。
【0143】
なお、詳細な説明は省略するが、ぶれが有る場合には、ぶれによって変化される移動距離はボール306が着弾してから転がる距離に影響を与えるようにしてある。打撃力を決定した位置よりも指示画像328の方が移動ゲージ320の上端に近い場合には、ボール306が転がる距離が長くされ、逆に、打撃力を決定した位置よりも指示画像328の方が移動ゲージ320の上端から遠い場合には、ボール306が転がる距離が短くされる。ただし、地形が傾斜している場合および着弾した地点がバンカー、ラフおよびハザードである場合には、ボール306は地形の傾斜に従って転がり、また、着弾した地点に応じて移動または停止される。
【0144】
方向入力期間が終了したときに、ぶれの抽選が開始され、これと並行して、プレイヤキャラクタ302はスイング動作を開始し、ボール306を打撃する。ただし、方向入力期間が終了し、さらに、ぶれの抽選が終了したとき、プレイヤキャラクタ302のスイング動作が開始されてもよい。
【0145】
図14はプレイヤキャラクタ302がボール306を打撃した直後のパラメータ決定画面300の限定しない一例を示す。図14に示す例では、指示画像328は、基本領域322の横幅の中央付近に位置するため、ぶれは無いか、少し右寄りである。したがって、ボール306は、予め決定した打ち出し方向または予め決定した打ち出し方向から少し右向きに移動を開始する。
【0146】
ボール306が移動を開始すると、図示は省略するが、仮想カメラは、ボール306の後方であり、斜め上方から俯瞰的に撮影するように移動される。ただし、詳細な説明は省略するが、仮想カメラは、基準軌道でボール306が移動したと仮定した場合の架空のボールを追従するように移動される。これは、ボール306の軌道の変化をゲーム画面によってプレイヤに示すためである。したがって、ボール306がゲーム画面に収まるように、仮想カメラの画角が適宜調整される。
【0147】
また、ボール306が移動を開始すると、パラメータ決定画面300およびボール306が着弾し、停止するまでのゲーム画面においては、移動ゲージ320において、現在移動中のボール306の位置に対応する操作区間322a、322b、322cまたは322dが識別可能に表示され、当該操作区間322a、322b、322cまたは322dの矢印画像332が表示される。現在移動中のボール306の位置に対応する操作区間322a、322b、322cまたは322dは、他の操作区間の色(この実施例では、オレンジ色)と異なる色(たとえば、黄色)で表示される。ただし、方向入力期間において表示された各操作区間322a-322dの矢印画像332の各々は、方向入力期間が終了し、プレイヤキャラクタ302がスイング操作を開始したときに、一旦白色にされ、現在移動中のボール306の位置に対応する操作区間322a、322b、322cまたは322dの矢印画像332は、他の操作区間と異なる色(たとえば、黒)で表示されてもよい。つまり、現在移動中のボール306の位置に対応する、操作区間322a、322b、322cまたは322dおよびその矢印画像332が目立たせられる(または、ハイライトされる)。したがって、プレイヤは、自身の方向入力に従う向きにボール306の軌道が変化していることを知ることができる。
【0148】
ただし、この明細書において、現在移動中のボール306の位置に対応する操作区間322a、322b、322cまたは322dは、移動ゲージ320の初期位置から打撃力を決定したときの第1指標画像326の停止位置までの長さが基準軌道の水平到達距離に相当すると仮定した場合に、ボール306の移動開始からの時間tにおける基準軌道の水平方向の移動距離(以下、「水平距離」という)に相当する移動ゲージ320上の位置を含む操作区間322a、322b、322cまたは322dを意味する。
【0149】
なお、プレイヤキャラクタ302がボール306を打撃すると、一旦、移動ゲージ320内の色は打撃力を決定したときの色(黄色)に戻され、各操作区間322a-322dの矢印画像332は非表示される。ただし、矢印画像332は半透明の白色で表示されていてもよい。
【0150】
また、この実施例では、現在移動中のボール306の位置に対応する操作区間322a、322b、322cまたは322dの全体が識別可能に表示されるようにしてあるが、これに限定される必要はない。現在移動中のボール306の位置に対応する移動ゲージ320の位置に点または線などの所定の指示画像を表示するようにしてもよい。また、現在移動中のボール306の位置に対応する操作区間322a、332b、332cまたは322dの矢印画像332を表示するだけでもよい。この場合、各操作区間322a-322dに矢印画像332を表示しておき、現在移動中のボール306の位置に対応する操作区間322a、332b、332cまたは322dの矢印画像332の色を変化させるようにしてもよい。
【0151】
図14に示すパラメータ決定画面300は、プレイヤキャラクタ302がボール306を打撃した直後の状態を示すため、第1操作区間322aが識別可能に表示され、当該第1操作区間322aの矢印画像332が表示される。各操作区間322a-322dを識別可能に表示する場合には、各操作区間322a-322dに所定の色(この実施例では、オレンジ色)を付すことで行われる。
【0152】
次に、方向入力を用いてボール306の軌道を変化させる方法について説明する。上述したように、プレイヤは、ボール306の軌道を、基準軌道から変化させたい場合には、変化させたい方向に、アナログスティック32を傾倒する。プレイヤの操作入力は、毎フレーム検出されるため、アナログスティック32が傾倒されている場合には、傾倒方向および傾倒量が毎フレーム検出される。
【0153】
この実施例では、ボール306の軌道は、移動ゲージ320の各操作区間322a-322dにおける方向入力(以下、「区間方向入力」という。)を用いて変化される。方向入力は、打撃力の決定後、第2指標画像330が初期位置から第1指標画像326が停止されている位置までの方向入力期間において、毎フレーム検出される。この実施例では、経時的な方向入力(すなわち、区間方向入力)を経時的に軌道に反映させながら、ボール306が移動される。ただし、プレイヤは、方向入力期間の全部または一部において、方向入力を行わない場合もある。たとえば、方向入力期間において、1回の方向入力しか検出しない場合もある。また、後述するように、操作区間322a-322d毎に、毎フレーム検出される方向入力が平均化された区間方向入力が算出される。したがって、経時的な区間方向入力は、2つ以上の操作区間(この実施例では、322a-322d)において、時間的に連続する操作区間毎の区間方向入力であり、時系列に従ってボール306の軌道に影響を与える。
【0154】
後述するように、ボール306の軌道を変化させる場合には、上下方向と左右方向に分けて計算するため、方向入力は上下方向の傾倒量と左右方向の傾倒量に分けて記憶される。ただし、この明細書においては、アナログスティック32を傾倒させる方向は、左コントローラ3を正面から見た場合の上下左右の方向を意味する。つまり、図1および図3に示すように、ゲームシステム1およびその構成部品(つまり、本体装置2、左コントローラ3、右コントローラ4)について所定の3軸(xyz軸)を設定した場合において、左右の方向はx軸方向に相当し、上下の方向はy軸方向に相当する。また、ボール306の軌道は、プレイヤの方向入力に基づいて、ボール306の基準軌道をローカル座標の原点からX軸のプラス方向を見た場合の上下左右の方向に変化される(図17参照)。ただし、ローカル座標の原点は、ボール306の移動開始位置である。移動開始位置は、打撃する前のボール306の位置である。
【0155】
図15(A)は方向入力期間においてフレーム毎に検出された方向入力の表の限定しない一例を示す。後述する基準軌道のフレーム数と区別するために、方向入力の表では、フレーム数を操作フレーム数と表記することにする。このことは、図15(B)に示す平均化した方向入力の表についても同じである。
【0156】
方向入力の表では、上下方向では、上方向の傾倒がプラスの数字で表され、下方向の傾倒がマイナスの数字で表される。また、左右方向では、右方向の傾倒がプラスの数字で表され、左方向の傾倒がマイナスの数字で表される。上記のとおり、数字の大きさは、傾倒量を示し、0から1.0までの数で表される。
【0157】
この実施例では、矢印画像332が示す方向にボール306を移動させるため、操作区間322a-322d毎に、複数の方向入力が平均化される。つまり、操作区間322a-322d毎に、区間方向入力が算出される。区間方向入力が算出されると、区間方向入力が算出された操作区間322a、322b、322cまたは322dにおいて検出された方向入力として書き戻される。つまり、各々の操作区間322a-322dにおいては、同じ値の方向入力(すなわち、区間方向入力)が記載される。図15(B)は、操作区間322a-322d毎に平均化された方向入力の表の限定しない一例を示す。このように、書き戻された方向入力すなわち区間方向入力を用いて、ボール306の軌道が変化される。
【0158】
ボール30の軌道のどの部分にどの区間方向入力を反映させるかを決定するために、この実施例では、基準軌道についての移動時間毎(つまり、フレーム毎)の水平距離を記載した対応表が作成される。図16は対応表の限定しない一例を示す。図16に示すように、対応表では、フレーム数(以下、「移動フレーム数」という)に対応して、ボール306が基準軌道で移動する場合の移動開始後の水平距離dn(nは1以上の整数)が記載される。ただし、上述したように、基準軌道は、ボール306を打撃したときに、ボール306の初速度v0および打ち出し角度θを用いて数1で算出され、水平距離dnは、数2に従って算出される位置xである。
【0159】
図17は、打撃力が100%に決定された場合の移動ゲージ320、この場合に検出された操作区間322a-322d毎の方向入力、および打撃力に基づく基準軌道の一例を示す。図17に示すように、打撃力が100%であるため、操作区間322a-322dを第2指標画像330が移動する時間が方向入力期間である。また、図17では、移動ゲージ320を横向きに記載し、移動ゲージ320に対応させて基準軌道を記載してある。
【0160】
なお、図17では、打撃力が100%の場合について示し、この図17を用いてボール306の軌道を変化せる方法について説明するが、打撃力が100%未満の場合についても、同様である。
【0161】
一例として、或る時間t(フレーム)における基準軌道の水平距離dnを対応表から取得し、この水平距離dnに対応する位置における1つの区間方向入力を特定し、特定した1つの区間方向入力を用いてボール306の軌道を変化することが考えられる。或る時間tにおける基準軌道の水平距離dnは、移動開始から時間tまでの移動フレーム数に対応する水平距離dnである。
【0162】
なお、この1つの区間方向入力は、上述したように、操作区間322a-322d毎に複数の方向入力を1つにまとめたものであるため、特に、操作区間322a-322dを跨ぐときに、ボール306の軌道が滑らかに変化しない可能性がある。
【0163】
そこで、この実施例では、図17の点線枠で示すように、或る時間tにおける水平距離dnに対応する位置の区間方向入力を中心に、前後数フレーム~十数フレーム分の複数の区間方向入力の平均値を算出し、平均化した区間方向入力を用いて次のフレームのボール306の位置を算出するようにしてある。このため、操作区間322a-322dを跨ぐ場合にも、ボール306の軌道がより滑らかに変化することができる。
【0164】
この実施例では、方向入力期間が終了したときに、対応表の水平距離dn(または、移動フレーム数n)毎に、ボール306の軌道に影響を与える操作フレーム数pの範囲(以下、「対応範囲」という)が決定される。そして、次のフレームのボール306の位置を算出する場合には、現フレームにおける基準軌道の水平距離dnに対応する対応範囲に含まれる複数の区間方向入力の平均値が算出される。
【0165】
ただし、上記の方法は一例であり、限定される必要はない。他の実施例では、基本的に、或る時間tにおける水平距離dnに対応する位置の区間方向入力を用いて次のフレームのボール306の位置を算出し、1フレームの開始時刻が操作区間322a、322bまたは322cの終わり付近に相当し、当該1フレームの終了時刻が次の操作区間322b、322cまたは322dの開始付近に相当する場合のように、1フレームの効果が区間を跨ぐ場合に限り、1フレームにおける時間の割合に応じて、隣接する2つの区間の区間方向入力を合成した区間方向入力を用いて次のボール306の位置を算出するようにしてもよい。
【0166】
次のフレームのボール306の位置を算出する場合には、現フレームにおけるボール306の速度ベクトルと、現フレームにおける基準軌道の水平距離dnに対応する対応表に含まれる複数の区間方向入力を平均化した平均値についての2次元ベクトルが合成される。
【0167】
ただし、ボール306の速度ベクトルは、現フレームにおける、ボール306の移動方向および移動量である。移動方向は、ボール306の打ち出し方向を初期の方向として、斜方投射の物理計算に従って次第に変化されるとともに、区間方向入力の影響により変化される。また、移動量は、次のフレームまでの水平距離dn+1から、現フレームまでの水平距離dnを減算した値である。水平距離は、図16に示した対応表から取得することができる。
【0168】
また、この実施例では、図18(A)および図18(B)に示すように、平均化した区間方向入力を示す2次元ベクトルの左右方向の成分と上下方向の成分のそれぞれについて速度ベクトルを回転させる。
【0169】
ただし、ボール306の移動は、上述したローカル座標で算出され、図18(A)はローカル座標の仮想空間を真上から見た図であり、図18(B)はローカル座標の仮想空間を真横から見た図である。
【0170】
なお、図18(A)および図18(B)に示すように、フレームNの直前すなわちフレームN-1において、速度ベクトルは、ローカル座標のx軸の方向と平行であり、かつ、ローカル座標のy軸およびz軸のそれぞれと直交する。
【0171】
また、図18(A)および図18(B)では、簡単のため、各フレームにおける速度ベクトルの大きさは同じにしてある。実際には、アナログスティック32の傾倒量すなわち方向入力の強さも考慮される。
【0172】
さらに、図18(A)に示す上下入力回転軸は、アナログスティック32を上下方向に傾倒する場合の回転軸に相当し、図18(B)に示す左右入力回転軸は、アナログスティック32を左右方向に傾倒する場合の回転軸に相当する。
【0173】
図18(A)に示すように、フレームNの速度ベクトルは、直前(フレームN-1)の速度ベクトルに対して、フレームNでの上下入力回転軸に対して垂直な左右入力回転軸の周りに、左右方向の方向入力に応じて回転される。図18(A)に示す例は、左右入力回転軸を中心として右方向に約30度回転されている。また、図18(A)に示すように、平均化した区間方向入力によりフレームN+1の移動ベクトルの向きを決定する場合には、左右入力回転軸は、ローカル座標のY軸と平行である。詳細な説明は省略するが、次のフレームN+1の速度ベクトルは、フレームNの速度ベクトルの向きに対して、左右入力回転軸を中心として右方向に約30度回転される。
【0174】
また、図18(B)に示すように、フレームNの速度ベクトルは、直前の速度ベクトルに対して、フレームNでの左右入力回転軸に対して垂直な上下入力回転軸の周りに、上下方向の方向入力に応じて回転される。図18(B)に示す例は、上下入力回転軸を中心として上方向に約30度回転されている。また、図18(B)に示すように、平均化した区間方向入力の上下方向の成分によりフレームN+1の移動ベクトルの向きを決定する場合には、上下入力回転軸は、ローカル座標のZ軸と平行である。詳細な説明は省略するが、次のフレームN+1の速度ベクトルは、フレームNの速度ベクトルの向きに対して、上下入力回転軸を中心として上方向に約30度回転される。
【0175】
このように、移動ベクトルが、平均化された区間方向入力についての2次元ベクトルを用いて、左右入力回転軸および上下入力回転軸のそれぞれの軸周りに回転され、ローカル座標における、次のフレームN+1のボール306の位置が算出される。
【0176】
なお、ゲーム画像を表示する場合には、ローカル座標で算出されたボール306の位置がワールド座標系のボール306の位置に変換される。
【0177】
また、方向入力による軌道の変化は、基準軌道についての水平到達位置まで、すなわち、対応表の移動フレーム数の最大値(nmax)まで行われる。
【0178】
ただし、対応表の移動フレーム数の最大値に進むまでの間に、ボール306がカップインしたり、地面(フェアウェイ、バンカー、ラフ、ウォーターハザード、アウトオブバウンズ(OB))のオブジェクトに当たったり、地上に配置されたオブジェクト(たとえば、樹木、建物、壁)に当たったり、空中に配置されたオブジェクト(たとえば、飛行船、気球、宙に浮いたブロック)に当たったりした場合には、方向入力による軌道の変化は終了される。
【0179】
また、対応表の移動フレーム数の最大値まで進んだ場合でも、ボール306がカップインしたり、地面のオブジェクトに当たったり、地上のオブジェクトに当たったり、空中のオブジェクトに当たったりしない場合には、ボール306は、いずれかにオブジェクトに当たるまで、最後に算出された速度ベクトルの方向に仮想空間における重力の影響を受けながら移動する。
【0180】
ただし、仮想空間における空気抵抗およびボールスピンに伴う揚力の影響も加味されてもよい。
【0181】
ボール306がフェアウェイまたはラフのオブジェクトに当たった場合には、ボール306がフェアウェイまたはラフのオブジェクトで跳ねた後に、転がり、さらに、止まる処理が実行される。ただし、跳ねたり転がったりする処理は、ライの状態に応じて変化される。また、ボール306がウォーターハザードおよびOBのオブジェクトに当たった場合には、ボール306がウォーターハザードまたはOBゾーンに当たった時点で止まり、ボール306がペナルティ加算後に打撃する位置に自動的に移動する処理が実行される。さらに、ボール306がバンカーのオブジェクトに当たった場合には、そのまま砂に減り込んで停止する処理が実行されたり、跳ねた後に、転がり、さらに、止まる処理が実行されたりする。また、ボール306が地上に配置されたオブジェクトに当たると、跳ね返ったり、向きを変えて移動したり、その場に落下したりする。ボール306が、跳ね返ったり、向きを変えて移動したりする場合には、その後、上記のように、地面またはウォーターハザードのオブジェクに当たる。以下、これらの処理をまとめて、「移動停止処理」と呼ぶことにする。
【0182】
また、ボール306がカップインするまでは、プレイヤキャラクタ302は次にボール306を打撃する位置(以下、「次の打撃位置」という)まで自動で移動され、アドレスした状態にされる。つまり、次にボール306を移動させるためのパラメータ決定画面300がディスプレイ12に表示される。ただし、プレイヤキャラクタ302は次の打撃位置までプレイヤの操作に従って移動するようにしてもよい。この場合、移動中にアイテムを取得することができてもよい。
【0183】
ボール306がカップインすると、ボール306がカップインしたホールのスコアが算出され、記録される。そして、次のホールが有る場合には、プレイヤキャラクタ302は、次のホールのティーイングエリアに自動で移動される。次のホールが無い場合には、プレイヤキャラクタ302のトータルのスコアが算出および記録され、今回プレイしたゴルフコースについてのゴルフゲームが終了する。
【0184】
なお、他のプレイヤとプレイする場合には、プレイヤについても上記のような処理が実行される。ただし、打撃する順番がゴルフのルールに従って決定され、ゴルフゲームが進行される。
【0185】
また、図19はバンカーに在るボール306を打撃する場合のパラメータ決定画面300の限定しない一例を示す。図19に示すパラメータ決定画面300では、移動ゲージ320の長さがフェアウェイに在るボール306を打撃する場合と比較して短く設定される。図19に示す例では、図8等に示した他のパラメータ決定画面300の移動ゲージ320の80%の長さに設定される。これは、一般的なスポーツのゴルフにおいて、バンカーショットでは、フェアウェイでボール306を打撃するよりも飛距離が短くなるためである。したがって、図示は省略するが、いわゆる目玉の場合には、移動ゲージ320は、図8等に示した他のパラメータ決定画面300の移動ゲージ320の50%の長さに設定される。
【0186】
ただし、移動ゲージ320の長さを短くする場合には、移動ゲージ320の全体を縮小し、これに伴って、移動ゲージ320の長さに比例して、第1指標画像326の移動速度V1および第2指標画像330の移動速度V2は小さくされる。したがって、移動ゲージ320が短くされたことに起因して、方向入力期間が短くなることはない。
【0187】
図示は省略するが、ラフに在るボール306を打撃する場合には、ラフの深さに応じて、移動ゲージ320の長さが短くされる。他の実施例では、プレイヤまたは他のプレイヤの操作或いは所定のイベントの発生によって、プレイヤキャラクタ302が使用するボール306の重量が大きくされたり、仮想空間における重力加速度gが大きくされたりした場合にも、移動ゲージ320の長さが短くされる。
【0188】
ただし、他の実施例では、バンカーまたはラフのような打撃の難易度が比較的高い位置からボール306を打撃する場合には、移動ゲージ320の長さを短くしても、第1指標画像326の移動速度V1および第2指標画像330の移動速度V2を変化させないようにしてもよい。かかる場合には、打撃力の決定が可能な期間および方向入力期間を短くすることで、打撃の難易度が高いことに合わせて、操作の難易度が高くされる。
【0189】
また、プレイヤまたは他のプレイヤの操作或いは所定のイベントの発生によって、プレイヤキャラクタ302が使用するボール306の重量が小さくされたり、仮想空間における重力加速度gが小さくされたりした場合には、移動ゲージ320の長さが長くされる。したがって、移動ゲージ320の長さを長くしない場合と同じ打撃力であっても、ボール306の飛距離が長くされる。この場合、移動ゲージ320の長さが長くなるが、長さが短くされる場合と同様に、移動ゲージ320の全体を拡大し、これに伴って、移動ゲージ320の長さに比例して、第1指標画像326の移動速度V1および第2指標画像330の移動速度V2は大きくされる。したがって、方向入力期間が長くなることはない。
【0190】
また、現実のゴルフにおいて、バンカーショットでは一般的にミスショットが出やすい。つまり、打撃の難易度が高いため、使用するクラブ304がアイアンまたはウェッジであっても、リスク領域324は比較的大きくされる。図19に示す例では、クラブ304はサンドウェッジ(SW)であるが、打撃力が85%付近からリスク領域324が設けられている。すなわち、たとえばフェアウェイから打撃する場合に比べて、リスク領域324が、移動ゲージ320のより低い打撃力に対応する部分から設けられている。なお、他の実施例では、このようなリスク領域324の設定に代えて、あるいは加えて、リスク領域324の横幅をより広くしてもよい。
【0191】
図20図19に示したパラメータ決定画面300と同様の状況において、クラブ304を1Wに変更した場合のパラメータ決定画面300の限定しない一例を示す。バンカーショットでは、1Wを使用する場合には、アイアンまたはウェッジを使用する場合よりも打撃の難易度が高いため、図19に示した場合よりも、さらに、リスク領域324は大きくされる。図20に示す例では、リスク領域324は、打撃力の50%付近から設けられ、打撃力が大きくなるにつれて大きくなり、さらに、打撃力の85%付近から大きくなる度合が大きくされる。
【0192】
図21図19に示したパラメータ決定画面300と同様の状況において、能力上昇パラメータが最大値に達した場合に、使用するクラブ304の能力を上昇させることを選択した状態のパラメータ決定画面300の限定しない一例を示す。能力上昇パラメータが最大値に達した場合に、プレイヤがYボタン56を押下すると、使用するクラブ304の能力を上昇させることが選択される。すると、図21に示すように、リスク領域324が縮小される。一例として、リスク領域324の上下方向の長さおよび左右方向の長さがそれぞれ半分にされる。このように、使用するクラブ304の能力が上昇されると、リスク領域324が縮小されることにより、ボール306が大幅にぶれることが無くなる。つまり、ぶれ量が少なくされ、ボール306が移動する場合の方向性が良くなる。
【0193】
図示は省略するが、上述したように、使用するクラブ304の能力を上昇させた状態で、プレイヤキャラクタ302がボール306を打撃すると、打撃上昇パラメータは最小値にされ、星形の能力ゲージ316内の色が消去される。
【0194】
なお、この実施例では、使用するクラブ304の能力が上昇されると、ぶれ量を少なくするようにしたが、これに限定される必要はない。他の例では、使用するクラブ304の飛距離が大きくされてもよい。または、使用するクラブ304の種類に応じて、飛距離が大きくされたり、ぶれ量が少なくされたりしてもよい。
【0195】
また、この実施例では、「使用するクラブ304の能力が上昇される」と説明してあるが、飛距離が大きくされたり、ぶれ量が少なくされたりするため、プレイヤキャラクタ302の打撃の技量が上昇されるということもできる。したがって、使用するプレイヤキャラクタ302の種類に応じて、飛距離が大きくされたり、ぶれ量が少なくされたりしてもよい。
【0196】
図22図6に示したDRAM85のメモリマップ850の限定しない一例を示す図である。図22に示すように、DRAM85は、プログラム記憶領域852およびデータ記憶領域854を含む。プログラム記憶領域852には、ゲームアプリケーションのプログラム(つまり、ゴルフゲームのゲームプログラム)が記憶される。図19に示すように、ゲームプログラムは、メイン処理プログラム852a、画像生成プログラム852b、操作検出プログラム852c、第1のパラメータ決定プログラム852d、第2のパラメータ決定プログラム852e、全方向入力記憶プログラム852f、区間方向入力決定プログラム852g、移動制御プログラム852hおよび画像表示プログラム852iなどを含む。ただし、ゲーム画像などの画像を表示する機能は本体装置2が備える機能である。したがって、画像表示プログラム852iは、ゲームプログラムに含まれない。
【0197】
詳細な説明は省略するが、各プログラム852a-852iは、本体装置2に電源が投入された後の適宜のタイミングで、フラッシュメモリ84および/またはスロット23に装着された記憶媒体からその一部または全部が読み込まれてDRAM85に記憶される。ただし、各プログラム852a-852iの一部または全部は、本体装置2と通信可能な他のコンピュータから取得するようにしてもよい。
【0198】
メイン処理プログラム852aは、この実施例の仮想のゴルフゲームの全体的なゲーム処理を実行するためのプログラムである。画像生成プログラム852bは、後述する画像生成データ854bを用いて、ゲーム画像などの各種の画像に対応する表示画像データを生成するためのプログラムである。操作検出プログラム852cは、左コントローラ3または/および右コントローラ4からの操作データ854aおよび他のコントローラからの操作データ854aを取得(または、受信)し、データ記憶領域854に識別可能に記憶するためのプログラムである。ここで、他のコントローラは、左コントローラ3または右コントローラ4と同等のコントローラまたは左コントローラ3および右コントローラ4を組み合わせたコントローラと同等のコントローラである。
【0199】
第1のパラメータ決定プログラム852dは、第2のパラメータ決定操作の開始前に、プレイヤの操作に基づいて、使用するクラブ304を変更したり、ボール306の左右の打ち出し方向を変更したり、使用するクラブ304の能力を上げたりするためのプログラムである。ただし、第2のパラメータ決定操作の開始前に、使用するクラブ304の能力を上げることをキャンセルすることもできる。第2のパラメータ決定プログラム852eは、プレイヤの操作に基づいて、ボール306の打撃力を決定したり、ボール306の基準軌道に対する変化方向を決定したり、プレイヤの操作に拘わらずにボール306のぶれを決定するためのプログラムである。
【0200】
全方向入力記憶プログラム852fは、方向入力期間において検出した方向入力をフレーム毎に記憶するとともに、後述する区間方向入力決定プログラム852gに従ってフレーム毎に検出した方向入力を操作区間322a-322dの各々でまとめた区間方向入力を、対応する操作区間322a-322dの方向入力として操作フレーム毎に書き戻すためのプログラムである。
【0201】
区間方向入力決定プログラム852gは、操作区間322a-322d毎に、フレーム毎に検出した方向入力を、所定数検出した場合と第2指標画像330が各操作区間322a-322dの終端に到達した場合に、1つにまとめた区間方向入力を決定するためのプログラムである。
【0202】
移動制御プログラム852hは、ボール306の移動を制御するためのプログラムである。クラブ304の種類および打撃力に基づいて決定される基準軌道を用いて、ぶれおよび経時的な方向入力による影響を受けたボール306の軌道を決定し、決定した軌道に従ってボール306を移動させる。ただし、この実施例は、1フレーム毎に移動後のボール306の位置が算出される。他の例では、ボール306が移動を開始する前に、軌道の全部が算出され、算出された軌道に従って移動されてもよい。
【0203】
画像表示プログラム852iは、画像生成プログラム852bに従って生成した表示画像データを表示装置に出力するためのプログラムである。したがって、表示画像データに対応する画像(つまり、パラメータ決定画面300など)がディスプレイ12などの表示装置に表示される。
【0204】
なお、プログラム記憶領域852には、BGM等の音を出力するための音出力プログラム、他の機器と通信するための通信プログラム、データをフラッシュメモリ84などの不揮発性の記憶媒体に記憶するためのバックアッププログラムなども記憶される。
【0205】
また、図23に示すように、データ記憶領域854には、操作データ854a、画像生成データ854b、キャラクタデータ854c、ゲームデータ854d、打撃力データ854e、ぶれデータ854f、方向入力データ854g、強さデータ854h、対応表データ854i、対応範囲データ854j、ボール位置データ854kおよびハイライト対象データ854mが記憶される。また、データ記憶領域854には、第1のパラメータ決定フラグ854n、第2のパラメータ決定フラグ854pおよびボール移動フラグ854qが記憶される。
【0206】
操作データ854aは、左コントローラ3または/および右コントローラ4から受信される操作データおよび他のコントローラから受信される操作データである。この実施例においては、本体装置2が左コントローラ3、右コントローラ4および他のコントローラのうちの2つ以上から操作データを受信する場合には、本体装置2は、それぞれのコントローラに分類して操作データ854aを記憶する。
【0207】
なお、複数の人間のプレイヤがゴルフゲームをプレイする場合には、各プレイヤが使用するコントローラと、複数のプレイヤまたは複数のプレイヤキャラクタが対応付けられ、操作データ854aは、プレイヤまたはプレイヤキャラクタを識別可能にしてデータ記憶領域854に記憶される。
【0208】
また、コンピュータ(プロセッサ81)が操作する対戦相手のキャラクタについては、一例として、コンピュータ(プロセッサ81)が生成した操作データ854aがデータ記憶領域854に記憶される。
【0209】
画像生成データ854bは、ポリゴンデータおよびテクスチャデータなど、表示画像データを生成するために必要なデータである。キャラクタデータ854cは、この実施例のゴルフゲームをプレイするキャラクタについてのデータである(図24参照)。キャラクタデータ854cについては後で詳細に説明する。ゲームデータ854dは、この実施例のゴルフゲームの途中または結果についてのデータであり、後述するプレイデータ900cを含む。
【0210】
打撃力データ854eは、プレイヤの操作によって決定された打撃力の値(%)についてのデータである。ぶれデータ854fは、ランダムに決定されたぶれ方向およびぶれ量についてのデータである。
【0211】
方向入力データ854gは、第2のパラメータ決定操作において、方向入力期間にフレーム毎に検出した方向入力のデータであり、区間方向入力が算出された後では、フレーム毎に検出した方向入力のデータが、操作区間322a-322d毎に、算出された区間方向入力のデータに書き換えられる。ただし、各方向入力および各区間方向入力は、アナログスティック32の傾倒方向および傾倒量を示す。
【0212】
強さデータ854hは、操作区間322a-322d毎の区間方向入力の強さについてデータである。上述したように、区間方向入力の傾倒量の大きさに応じて、区間方向入力の強さが4段階で分類される。
【0213】
対応表データ854iは、図16に示したような対応表についてのデータである。上述したように、対応表では、基準軌道について、移動フレーム数nに対応して水平距離dnが記載される。対応範囲データ854jは、対応表の各水平距離dnについて決定された対応範囲(すなわち、操作フレーム数pの範囲)についてのデータである。
【0214】
ボール位置データ854kは、仮想空間におけるボール306の現在位置(この実施例では、3次元位置)の座標データである。ハイライト対象データ854mは、移動ゲージ320において、ハイライトする操作区間322a、322b、322cまたは322dおよびその矢印画像332を示すデータである。
【0215】
第1のパラメータ決定フラグ854nは、第1のパラメータを決定するかどうかを判断するためのフラグである。第1のパラメータ決定操作を行う場合に、第1のパラメータ決定フラグ854nはオンされ、第2のパラメータ決定操作を開始すると、第1のパラメータ決定フラグ854nはオフされる。
【0216】
第2のパラメータ決定フラグ854pは、第2のパラメータを決定するかどうかを判断するためのフラグである。第2のパラメータ決定操作を行う場合に、第2のパラメータ決定フラグ854pはオンされ、第2のパラメータ決定操作を終了し、ぶれが決定されると、第2のパラメータ決定フラグ854pはオフされる。
【0217】
ボール移動フラグ854qは、ボール306を移動させるかどうかを判断するためのフラグである。ボール306が打撃されたときに、ボール移動フラグ854qはオンされ、ボール306の移動が停止したときに、ボール移動フラグ854qはオフされる。
【0218】
図示は省略するが、データ記憶領域854には、ゴルフゲームの実行に必要な他のデータが記憶されたり、ゴルフゲームの実行に必要な他のフラグおよびタイマ(またはカウンタ)が設けられたりする。
【0219】
図24は、図23に示したキャラクタデータ854cの具体的な内容を示す図である。図24に示すように、キャラクタデータ854cは、プレイヤキャラクタ302および対戦相手のキャラクタについてのデータである。この実施例では、対戦相手のキャラクタがいない場合について説明するため、図24では、キャラクタデータ854cは、プレイヤキャラクタデータ900を含む。
【0220】
なお、1または複数の対戦相手のキャラクタデータの内容は、プレイヤキャラクタデータ900と同じである。
【0221】
図24に示すように、プレイヤキャラクタデータ900は、種類データ900a、現在位置データ900b、プレイデータ900cおよび能力上昇パラメータデータ900dなどを含む。また、プレイヤキャラクタデータ900は、カップインフラグ900eを含む。
【0222】
種類データ900aは、プレイヤキャラクタ302の種類であり、プレイヤによって選択されたキャラクタを識別する識別情報についてのデータである。現在位置データ900bは、仮想空間におけるプレイヤキャラクタ302の現在位置(この実施例では、3次元位置)の座標データである。
【0223】
プレイデータ900cは、ゴルフゲームをプレイした場合のプレイヤキャラクタ302についてのデータである。一例として、ストロークプレイの場合には、プレイデータ900cとして、ホール毎に、ティーショットからカップインまでの打数および現在のホールまでのトータルの打数のデータが記憶される。
【0224】
能力上昇パラメータデータ900dは、プレイヤキャラクタ302の能力上昇パラメータの数値のデータである。カップインフラグ900eは、プレイヤキャラクタ302のボール306がカップインしたかどうかを判断するためのフラグである。この実施例では、ボール306がカップインしたときに、カップインフラグ900eがオンされ、次の打撃位置に移動したときに、カップインフラグ900eがオフされる。
【0225】
図25は、本体装置2のプロセッサ81(またはコンピュータ)のゲームプログラムの処理(すなわち、「全体的なゲーム処理」)の限定しない一例を示すフロー図である。図26および図27は、本体装置2のプロセッサ81(またはコンピュータ)のゲーム制御処理の限定しない一例を示すフロー図である。さらに、図28は、本体装置2のプロセッサ81(またはコンピュータ)の第1のパラメータ決定処理の限定しない一例を示すフロー図である。さらにまた、図29図31は、本体装置2のプロセッサ81(またはコンピュータ)のボールの第2のパラメータ決定処理の限定しない一例を示すフロー図である。また、図32および図33は、本体装置2のプロセッサ81(またはコンピュータ)のボール移動処理の限定しない一例を示すフロー図である。
【0226】
ただし、図25図33の各処理では、他のプレイヤについての処理は省略し、プレイヤについての処理のみを説明する。他のプレイヤについての処理は、プレイヤについての処理と同じであり、一般的なスポーツのゴルフと同じルールに従う順番でボールを打撃するように実行される。
【0227】
以下、図25図33を用いて、全体的なゲーム処理、ゲーム制御処理、第1のパラメータ決定処理、第2のパラメータ決定処理およびボール移動処理について説明するが、同じ処理を実行するステップについての重複する説明は省略する。
【0228】
ただし、図25図33に示すフロー図における各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、この実施例では、基本的には、図25図33に示すフロー図における各ステップの処理をプロセッサ81が実行するものとして説明するが、プロセッサ81以外のプロセッサや専用回路が一部のステップを実行するようにしてもよい。
【0229】
本体装置2の電源が投入されると、全体的なゲーム処理の実行に先立って、プロセッサ81は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってDRAM85等の各ユニットが初期化される。本体装置2は、プレイヤによって、この実施例のゲームプログラムの実行が指示されると、全体的なゲーム処理を開始する。
【0230】
図25に示すように、プロセッサ81は、全体的なゲーム処理を開始すると、ステップS1で、初期設定を実行する。この実施例では、ストロークプレイのゴルフゲームまたはマッチプレイのゴルフゲームを選択するためのゲーム選択画面が表示され、プレイヤの選択操作に従ってプレイするゴルフゲームの種類が決定される。以下では、一人のプレイヤがストロークプレイを選択した場合について説明するが、複数人のプレイヤでストロークプレイする場合には、通常のゴルフのルールに従ってボールからカップまでの距離が遠い順にボールを打撃し、ゴルフゲームが進行される。また、マッチプレイが選択された場合には、マッチプレイのルールに従ってゴルフゲームが進行される。
【0231】
続くステップS3では、左コントローラ3または/および右コントローラ4から送信された操作データ854aを取得し、ステップS5では、後で詳細に説明する、ゲーム制御処理(図26および図27参照)を実行する。ただし、ステップS3では、取得した操作データ854aをデータ記憶領域854に記憶する。
【0232】
次のステップS7では、ゲーム画像を生成する。ここでは、プロセッサ81は、ステップS5のゲーム制御処理の結果に基づいてゲーム画像(つまり、パラメータ決定画面300などの各種画面)に対応するゲーム画像データを生成する。なお、パラメータ決定画面300に対応するゲーム画像データを生成する場合には、クラブ304の種類およびボール306のライに応じて、移動ゲージ320(リスク領域324を含む)の大きさが適宜変化される。また、ゲーム制御処理と並行してプレイヤキャラクタ302のスイング動作の処理が実行されている場合には、ゲーム制御処理の結果とスイング動作の結果に基づいてゲーム画像データが生成される。
【0233】
また、ステップS9では、ゲーム音声を生成する。ここでは、プロセッサ81は、ステップS5のゲーム制御処理の結果に応じたゲーム音声に対応する音声データを生成する。
【0234】
続いて、ステップS11では、ゲーム画像を表示する。ここでは、プロセッサ81は、ステップS7で生成したゲーム画像データをディスプレイ12に出力する。また、ステップS13では、ゲーム音声を出力する。ここでは、プロセッサ81は、ステップS9で生成したゲーム音声データを、コーデック回路87を介してスピーカ88に出力する。
【0235】
そして、ステップS15では、ゲームを終了するかどうかを判断する。ステップS15の判断は、プレイヤがゲームを終了する指示を行ったか否か等によって行われる。ステップS15で“NO”であれば、つまりゲームを終了しない場合には、ステップS3に戻る。一方、ステップS15で“YES”であれば、つまりゲームを終了する場合には、全体的なゲーム処理を終了する。
【0236】
図26に示すように、プロセッサ81は、ステップS5に示したゲーム制御処理を開始すると、ステップS21で、ゴルフゲームのプレイ中かどうかを判断する。ステップS21で“YES”であれば、つまり、ゴルフゲームのプレイ中であれば、ステップS31に進む。一方、ステップS21で“NO”であれば、つまり、ゴルフゲームのプレイ中でなければ、ステップS23で、ゴルフゲームの開始かどうかを判断する。ここでは、プロセッサ81は、プレイヤによってゴルフゲームの開始が指示されたかどうかを判断する。
【0237】
ステップS23で“NO”であれば、つまり、ゴルフゲームの開始でなければ、ステップS25で、各種選択処理を実行して、ゲーム制御処理を終了し、図25に示した全体的なゲーム処理にリターンする。
【0238】
なお、各種選択処理は、プレイヤキャラクタの選択処理およびゴルフコースの選択処理である。ストロークプレイのゴルフゲームをプレイする場合には、他のプレイヤの数および他のプレイヤの各々の種類(すなわち、人間またはコンピュータ)の選択処理およびホール数の選択処理がさらに実行される。また、マッチプレイのゴルフゲームをプレイする場合には、対戦相手である他のプレイヤの種類の選択処理が実行される。図示は省略するが、プロセッサ81は、各種選択処理を終了すると、プレイヤの操作に応じて、ゴルフゲームを開始する。
【0239】
一方、ステップS23で“YES”であれば、つまり、ゴルフゲームの開始であれば、ステップS27で、プレイヤキャラクタ302をスタートホールのティーイングエリアの打撃位置に配置し、ステップS29で、第1のパラメータ決定フラグ854nをオンして、全体的なゲーム処理にリターンする。ただし、ステップS29で、第1のパラメータ決定処理を開始すると、プロセッサ81は、全体的なゲーム処理において、図8に示したようなパラメータ決定画面300のゲーム画像を生成し、ディスプレイ12に出力する。
【0240】
また、ステップS21で“YES”であれば、つまり、ゴルフゲームのプレイ中であれば、ステップS31で、第1のパラメータを決定するかどうかを判断する。ここでは、プロセッサ81は、第1のパラメータ決定フラグ854nがオンであるかどうかを判断する。ステップS31で“NO”であれば、つまり、第1のパラメータを決定しない場合には、ステップS41に進む。
【0241】
一方、ステップS31で“YES”であれば、つまり、第1のパラメータを決定する場合には、ステップS33で、後述する第1のパラメータ決定処理(図28参照)を実行して、ステップS35で、第2のパラメータ決定操作の開始かどうかを判断する。ここでは、プロセッサ81は、第1指標画像326が初期位置に停止した状態のパラメータ決定画面300が表示されている場合に、Aボタン53が押下されたかどうかを判断する。
【0242】
ステップS35で“NO”であれば、つまり、第2のパラメータ決定操作の開始でなければ、全体的なゲーム処理にリターンする。一方、ステップS35で“YES”であれば、つまり、第2のパラメータ決定操作の開始であれば、ステップS37で、第2のパラメータ決定フラグ854pをオンし、ステップS39で、第1のパラメータ決定フラグ854nをオフして、全体的なゲーム処理にリターンする。
【0243】
ステップS41では、第2のパラメータを決定するかどうかを判断する。ここでは、プロセッサ81は、第2のパラメータ決定フラグ854pがオンであるかどうかを判断する。ステップS41で“YES”であれば、つまり、第2のパラメータを決定する場合には、後述する第2のパラメータ決定処理(図29図31参照)を実行して、全体的なゲーム処理にリターンする。一方、ステップS41で“NO”であれば、つまり、第2のパラメータを決定しない場合には、図27に示すステップS45で、ボール306を移動させるかどうかを判断する。ここでは、プロセッサ81は、ボール移動フラグ854qがオンであるかどうかを判断する。
【0244】
ステップS45で“YES”であれば、つまり、ボール306を移動させる場合には、ステップS47で、後述するボール移動処理(図32および図33参照)を実行して、全体的なゲーム処理にリターンする。一方、ステップS45で“NO”であれば、つまり、ボール306を移動させない場合には、ステップS49で、プレイヤキャラクタ302がボール306を打撃した時点であるかどうかを判断する。
【0245】
ステップS49で“YES”であれば、つまり、プレイヤキャラクタ302がボール306を打撃した時点であれば、ステップS51で、ボール移動フラグ854qをオンし、全体的なゲーム処理にリターンする。一方、ステップS49で“NO”であれば、つまり、プレイヤキャラクタ302がボール306を打撃した時点でなければ、ステップS52で、スイング動作の処理中であるかどうかを判断する。
【0246】
ステップS52で“YES”であれば、スイング動作の処理中であれば、プレイヤキャラクタ302がスイング動作を開始してからボール306を打撃する前であると判断し、全体的なゲーム処理にリターンする。一方、ステップS52で“NO”であれば、スイング動作の処理中でなければ、ステップS53で、カップインフラグ900eがオンであるかどうかを判断する。
【0247】
ステップS53で“NO”であれば、つまり、カップインフラグ900eがオフであれば、ステップS55で、プレイヤキャラクタ302を次の打撃位置に移動させ、ステップS57で、第1のパラメータ決定フラグ854nをオンして、全体的なゲーム処理にリターンする。一方、ステップS53で“YES”であれば、つまり、カップインフラグ900eがオンであれば、ステップS59で、スコアを算出する。ここでは、プロセッサ81は、カップインしたホールのスコアと、現在のホールまでの合計のスコアを算出する。
【0248】
続くステップS61では、プレイする次のホールが有るかどうかを判断する。ステップS61で“YES”であれば、つまり、プレイする次のホールが有れば、ステップS63で、プレイヤキャラクタ302を次のホールのティーイングエリアの打撃位置に移動させ、ステップS65で、第1のパラメータ決定フラグ854nをオンし、ステップS67で、カップインフラグ900eをオフして、全体的なゲーム処理にリターンする。
【0249】
一方、ステップS61で“NO”であれば、つまり、プレイする次のホールが無ければ、ステップS69で、現在のゴルフコースのプレイを終了して、全体的なゲーム処理にリターンする。
【0250】
なお、図示は省略するが、後述するように、プレイヤキャラクタ302のスイング動作が開始された後では、図26および図27に示すゲーム制御処理と並行して、プレイヤキャラクタ302のスイング動作の処理が実行される。プレイヤキャラクタ302のスイング動作の処理では、プレイヤキャラクタ302のスイング動作のアニメーションフレームが、最後のアニメーションフレームまでフレーム毎に進められる。
【0251】
図28に示すように、プロセッサ81は、ステップS33に示した第1のパラメータ決定処理を開始すると、ステップS101で、クラブ選択かどうかを判断する。ここでは、プロセッサ81は、Lボタン38またはRボタン60が押下されたかどうかを判断する。ステップS101で“YES”であれば、つまり、クラブ選択であれば、ステップS103で、プレイヤの操作に従って使用するクラブ304を変更して、ゲーム制御処理にリターンする。一方、ステップS101で“NO”であれば、つまり、クラブ選択でなければ、ステップS105で、打ち出し方向の変更かどうかを判断する。ここでは、プロセッサ81は、アナログスティック32が左または右に傾倒されたかどうかを判断する。
【0252】
ステップS105で“YES”であれば、つまり、打ち出し方向の変更であれば、ステップS107で、プレイヤの操作に従って打ち出し方向を変更して、ゲーム制御処理にリターンする。一方、ステップS105で“NO”であれば、つまり、打ち出し方向の変更でなければ、ステップS109で、使用するクラブ304の能力を上げるかどうかを判断する。ここでは、プロセッサ81は、Yボタン56が押下されたかどうかを判断する。ただし、能力上昇パラメータが最大値(100)に満たない場合には、Yボタン56が押下されたとしても、その操作は無効にされる。
【0253】
ステップS109で“YES”であれば、つまり、使用するクラブ304の能力を上げる場合には、ステップS111で、リスク領域324を縮小して、ゲーム制御処理にリターンする。一方、ステップS109で“NO”であれば、つまり、使用するクラブ304の能力を上げない場合には、ゲーム制御処理にリターンする。
【0254】
図29に示すように、プロセッサ81は、ステップS43に示した第2のパラメータ決定処理を開始すると、ステップS201で、打撃力が決定されているかどうかを判断する。プロセッサ81は、打撃力データ854eがDRAM85のデータ記憶領域854に記憶されているかどうかを判断する。ステップS201で“YES”であれば、つまり、打撃力が決定されていれば、図30に示すステップ217に進む。一方、ステップS201で“NO”であれば、つまり、打撃力が決定されていなければ、ステップS203で、打撃力の決定操作が有るかどうかを判断する。ここでは、プロセッサ81は、パラメータ決定画面300において、第1指標画像326が移動している場合に、Aボタン53が押下されたかどうかを判断する。
【0255】
ステップS203で“NO”であれば、つまり、打撃力の決定操作が無ければ、ステップS205で、第1指標画像326を1フレーム分移動させて、ゲーム制御処理にリターンする。上述したように、第1指標画像326は、初期位置から移動ゲージ320の上端に向けて移動し、移動ゲージ320の上端に達すると、初期位置に向けて移動する。一方、ステップS203で“YES”であれば、つまり、打撃力の決定操作が有れば、ステップS207で、第1指標画像326を停止し、ステップS209で、打撃力を記憶する。つまり、プロセッサ81は、決定された打撃力に対応する打撃力データ854eをデータ記憶領域854に記憶する。
【0256】
次のステップS211では、決定された打撃力が75%未満であるかどうかを判断する。ステップS211で“YES”であれば、つまり、決定された打撃力が75%未満であれば、ステップS213で、能力上昇パラメータを所定値(たとえば、20)加算して、ステップS215に進む。一方、ステップS211で“NO”であれば、つまり、決定された打撃力が75%以上であれば、ステップS215に進む。
【0257】
ステップS215では、図16に示したような対応表を生成し、ゲーム制御処理にリターンする。ただし、プロセッサ81は、生成した対応表に対応する対応表データ854iをデータ記憶領域854に記憶する。
【0258】
図30に示すように、ステップS217では、方向入力期間が終了したかどうかを判断する。つまり、第2指標画像330が、第1指標画像326が停止している位置に到達したかどうかを判断する。ステップS217で“NO”であれば、つまり、方向入力期間が終了していなければ、ステップS219で、第2指標画像330を1フレーム分移動させて、ステップS221で、今回検出した方向入力を記憶する。上述したように、方向入力は、アナログスティック32の傾倒方向と傾倒量であり、この実施例では、上下方向の傾倒量と左右方向の傾倒量に分けられる。
【0259】
そして、ステップS223で、第2指標画像330が移動中の操作区間322a、322b、322cまたは322dの終端に到達したかどうかを判断する。ステップS223で“YES”であれば、つまり、第2指標画像330が移動中の操作区間322a、322b、322cまたは322dの終端に到達すれば、ステップS225で、当該操作区間322a、322b、322cまたは322dにおけるすべての方向入力を合わせて1つの方向入力すなわち区間方向入力を決定し、ステップS227で、決定した1つの区間方向入力についての強さのレベルを分類し、ステップS229で、決定した1つの方向入力を当該操作区間322a、322b、322cまたは322dにおける各方向入力として書き戻して、ゲーム制御処理にリターンする。
【0260】
なお、ステップS229の処理が実行された当該操作区間322a、322b、322cまたは322dについては、その後の第2のパラメータ決定処理において、決定された1つの区間方向入力および分類された強さが変更されることはない。
【0261】
プロセッサ81は、当該操作区間322a、322b、322cまたは322dで検出した各方向入力に対応する方向入力データを、ステップS225で決定した1つの区間方向入力に対応する区間方向入力データで書き換え、方向入力データ854gを更新する。
【0262】
なお、ステップS225で決定した1つの区間方向入力は、第2指標画像330が当該操作区間322a、322b、322cまたは322dの終端まで移動した後に、プレイヤキャラクタ302がボール306を打撃するまでの間において、当該操作区間322a、322b、322cまたは322dに矢印画像332を表示するために使用される。また、この矢印画像332は、ステップS227で分類した強さのレベルに応じた画像である。このことは、後述するステップS235についても同様である。
【0263】
一方、ステップS223で“NO”であれば、つまり、第2指標画像330が移動中の操作区間322a、322b、322cまたは322dの終端に到達していなければ、ステップS231で、第2指標画像330が移動中の操作区間322a、322b、322cまたは322dで検出した方向入力の数が所定数(たとえば、10)に達したかどうかを判断する。ステップS231で“NO”であれば、つまり、第2指標画像330が移動中の操作区間322a、322b、322cまたは322dで検出した方向入力の数が所定数に達していなければ、ゲーム制御処理にリターンする。一方、ステップS231で“YES”であれば、つまり、第2指標画像330が移動中の操作区間322a、322b、322cまたは322dで検出した方向入力の数が所定数に達していれば、ステップS233で、当該操作区間322a、322b、322cまたは322dで検出した所定数の方向入力を合わせた1つの区間方向入力を決定し、ステップS235で、決定した1つの区間方向入力についての強さのレベルを分類して、ゲーム制御処理にリターンする。
【0264】
また、ステップS217で“YES”であれば、つまり、方向入力期間が終了すれば、図31に示すステップS237で、ぶれの抽選期間中であるかどうかを判断する。ステップS237で“YES”であれば、つまり、ぶれの抽選期間中であれば、ステップS239で、指示画像328の位置をランダムに変更して、ゲーム制御処理にリターンする。
【0265】
一方、ステップS237で“NO”であれば、つまり、ぶれの抽選期間中でなければ、ステップS241で、ぶれの抽選期間の終了かどうを判断する。ステップS241で“NO”であれば、つまり、ぶれの抽選期間の終了でなければ、ぶれの抽選を開始していないと判断して、ステップS243で、ぶれの抽選を開始する。次のステップS245では、対応表の各移動フレームについて、ボール306の軌跡に影響を与える対応範囲を決定し、ステップS247で、プレイヤキャラクタ302のスイング動作を開始して、ゲーム制御処理にリターンする。
【0266】
また、ステップS241で“YES”であれば、つまり、ぶれの抽選期間の終了であれば、ステップS249で、ぶれを決定し、ステップS251で、第2のパラメータ決定フラグ854pをオフして、ゲーム制御処理にリターンする。ステップS249では、プロセッサ81は、決定したぶれに対応するぶれデータ854fをデータ記憶領域854に記憶する。
【0267】
なお、図30に示したステップS233で決定した1つの区間方向入力は、第2指標画像330が当該操作区間322a、322b、322cまたは322dの終端まで移動する間に、当該操作区間322a、322b、322cまたは322dに矢印画像332を表示するために使用される。
【0268】
図32に示すように、プロセッサ81は、ステップS47に示したボール移動処理を開始すると、ステップS301で、ボール306が移動中であるかどうかを判断する。ステップS301で“YES”であれば、つまり、ボール306が移動中であれば、ステップS303で、ボール306が背景オブジェクトに当たったかどうかを判断する。つまり、プロセッサ81は、ボール306がフェアウェイ、ラフおよびバンカーなどの地面オブジェクトに着弾したり、ウォーターハザードまたはOBゾーンのオブジェクトに当たったり、木または建物などの地上オブジェクト、飛行船、気球またはブロックなどの空中オブジェクトに当たったかどうかを判断する。
【0269】
ステップS303で“NO”であれば、つまり、ボール306が背景オブジェクトに当たっていなければ、図33に示すステップS317に進む。一方、ステップS303で“YES”であれば、つまり、ボール306が背景オブジェクトに当たっていれば、ステップS305で、上述したような移動停止処理を実行して、ゲーム制御処理にリターンする。
【0270】
また、ステップS301で“NO”であれば、つまり、ボール306が移動中でなければ、ステップS307で、ボール306が移動開始前であるかどうかを判断する。ステップS307で“NO”であれば、つまり、ボール306が移動開始前でなければ、ボール306が停止したと判断して、ステップS309で、ボール306がカップインしたかどうかを判断する。
【0271】
ステップS309で“NO”であれば、つまり、ボール306がカップインしていなければ、ステップS313に進む。一方、ステップS309で“YES”であれば、つまり、ボール306がカップインしていれば、ステップS311で、カップインフラグ900eをオンして、ステップS313に進む。ステップS313では、ボール移動フラグ854qをオフし、ゲーム制御処理にリターンする。
【0272】
なお、ステップS313の処理が実行されることにより、ボール306は移動中ではなくなる。
【0273】
また、ステップS307で“YES”であれば、つまり、ボール306が移動開始前であれば、ステップS315で、変数nを1に設定して(n=1)、図33に示すステップS321に進む。変数nは、対応表における移動フレーム数を示す。
【0274】
図33に示すように、ステップS317では、変数nが最大値nmaxを超えているかどうかを判断する。ステップS317で“NO”であれば、つまり、変数nが最大値nmaxを超えていなければ、ステップS325に進む。一方、ステップS317で“YES”であれば、つまり、変数nが最大値nmaxを超えていれば、ステップS319で、変数nが最大値nmaxのときに算出した速度ベクトルを用いて、1フレーム分移動後のボール306の位置を算出して、ゲーム制御処理にリターンする。
【0275】
また、ステップS321では、ぶれが有るかどうかを判断する。ステップS321で“NO”であれば、つまり、ぶれが無ければ、ステップS325に進む。一方、ステップS321で“YES”であれば、つまり、ぶれが有れば、ステップS323で、ぶれに応じてボール306の打ち出し方向を変化させて、ステップS325に進む。
【0276】
ステップS325では、移動フレーム数nに対応する位置の操作フレーム数pの方向入力を検出した操作区間322a、322b、322cまたは322dおよび当該操作区間322a、322b、322cまたは322dの矢印画像332をハイライトの対象に決定する。次のステップS327では、移動フレーム数nに対応する対応範囲における複数の区間方向入力を平均化した方向を反映して、1フレーム分移動後のボール306の位置を算出する。そして、ステップS329で、変数nを1加算して(n=n+1)、ゲーム制御処理にリターンする。
【0277】
この実施例によれば、打撃力を決定してからプレイヤキャラクタがスイング動作を開始するまでの間に検出した経時的な方向入力に基づく方向にボールを移動させることができるので、つまり、経時的な方向入力を経時的に軌道に反映させながらボールを移動させるので、プレイヤに、方向入力自体に興味を持たせることができるとともに、移動後のボールの軌道の変化にも興味を持たせることができる。つまり、プレイヤに継続的に興味を持たせることができる。したがって、ゲームの興趣を向上させることができる。
【0278】
なお、この実施例では、第1指標画像を停止させる位置に応じて、ボールを打撃する場合の打撃力を決定するようにしたが、ボールの初速度、ボールの水平到達距離またはボールの移動距離を決定するようにしてもよい。つまり、第1指標画像を停止させる位置に応じて、ボールの移動距離に関するパラメータのいずれかが決定される。
【0279】
また、この実施例では、移動ゲージを予め決定された位置に表示し、移動ゲージ内を第1指標画像および第2指標画像が移動するようにしたが、これに限定される必要はない。移動ゲージを予め表示せずに、単に、初期位置から他方端に向けてゲージ(または、バー)が徐々に伸びるように表示し、プレイヤの操作に応じて、ゲージが伸びるのを停止して、打撃力を決定し、打撃力を決定するために表示したゲージ上を、または、ゲージに沿って、初期位置からゲージの上端まで第2指標画像に相当する指標を移動させ、その間に検出した方向入力に基づいてボールの軌道を変化させてもよい。
【0280】
さらに、この実施例では、方向入力期間に検出した方向入力を区間毎にまとめた区間方向入力を用いて、矢印画像を表示するとともに、軌道の全体または一部を変化させるようにしたが、これに限定される必要はない。他の実施例では、矢印画像を表示する場合と、軌道を変化させる場合とで、区間方向入力の算出方法を異ならせてもよい。一例として、矢印画像を表示する場合には、実施例に記載のとおり、操作区間における複数の方向入力の平均値を算出するが、軌道を変化させる場合には、操作区間における複数の方向入力から最大の傾倒量である方向入力を算出(または、抽出)する。また、同じ平均値を算出する場合であっても、矢印画像の表示の場合と、軌道の変化の場合とで、平均値の算出に用いる方向入力の数を異ならせるようにしてもよい。
【0281】
さらにまた、この実施例では、第2指標画像は、移動ゲージの下端から、停止した第1指標画像の位置まで移動するようにしたが、移動ゲージの下端から上端まで移動してもよい。この場合であっても、方向入力期間は、第2指標画像が、移動ゲージの下端から、停止した第1指標の画像の位置に移動するまでの時間である。ただし、方向入力期間は、第2指標画像が移動ゲージの下端から上端に移動するまでの時間であってもよい。すなわち、第1指標画像が停止された位置に拘わらず、一定の方向入力期間が設けられるようにしてもよい。
【0282】
また、この実施例では、操作区間毎に、各操作区間におけるすべての方向入力についての平均値を算出するようにしたが、これに限定される必要はない。他の実施例では、区間毎に、区間の中における所定のタイミングで検出された方向入力を、当該区間の方向入力に決定してもよい。
【0283】
さらに、この実施例では、移動ゲージを均等に分割するようにしたが、均等に分割しなくてもよい。たとえば、移動ゲージは、それぞれ、第1操作区間から第4操作区間に向かうに従って長くなるように設定されてよい。
【0284】
さらにまた、この実施例では、移動ゲージを4つの操作区間に分割するようにしたが、操作区間が2つ以上であれば、移動ゲージを5つ以上に分割することもできる。ただし、操作区間が多くなるにつれて、一打においてボールの軌道を変化させるための操作の回数が多くなるため、ゲームの難易度またはプレイヤのレベルが高くなるにつれて、移動ゲージが分割される数が増えるようにしてもよい。この場合、ゲームを開始した当初においては、移動ゲージを分割せずに、ゲームの難易度またはプレイヤのレベルが或る程度高くなると、2つに分割し、さらに、ゲームの難易度またはプレイヤのレベルが高くなるにつれて、分割される数が次第に増加されてもよい。また、プレイヤが使用するキャラクタの種類、キャラクタのレベルなどの能力に応じて、移動ゲージが分割される数が設定されるようにしてもよい。さらに、プレイヤまたはプレイヤキャラクタが所定のアイテムを使用することで、移動ゲージが分割される数が設定されても良い。また、プレイヤが所望の分割数を設定できてもよい。
【0285】
また、この実施例では、移動ゲージは、横幅を有し、縦方向に延びる形状にしたが、これに限定される必要はない。移動ゲージは、横方向に延びる形状にしてもよいし、角丸のL字状に形成されてもよい。つまり、第1指標画像および第2指標画像が一方端から他方端に向けて移動可能な形状であればよい。
【0286】
さらに、この実施例では、移動ゲージは、固定位置に表示されるようにしたが、これに限定される必要はない。他の実施例では、第2のパラメータ決定操作が開始されると、背景画像の邪魔にならない任意の位置に第1指標を表示し、第1指標を最初に表示した位置を初期位置として予め決められた方向(たとえば、上方)に向けて移動させるようにしてもよい。ただし、移動可能な範囲(長さ)は実施例に示した移動ゲージと同様に予め決定されている。
【0287】
さらにまた、この実施例では、移動ゲージは、各領域の終端側の線を傾斜させるようにしたが、傾斜させなくてもよい。この場合には、ぶれに応じて移動距離を変化させてもよいし、変化させなくてもよい。
【0288】
また、この実施例では、第1指標画像と指示画像は別の画像にしたが、これに限定される必要はない。たとえば、第1指標画像と指示画像として機能する点画像を表示し、打撃力を決定する場合には、移動ゲージ内をその長手方向に移動し、ぶれを決定する場合には、移動ゲージ内のその短手方向に移動するようにしてもよい。
【0289】
さらに、この実施例では、移動ゲージのうちの基本領域の外側にリスク領域を設けるようにしたが、基本領域の内にリスク領域を設けるようにしてもよい。かかる場合には、打撃力が大きくなるにつれて、ぶれる率およびぶれ量が大きくなるように、リスク領域が大きくされる。
【0290】
さらにまた、この実施例では、移動ゲージのうちの基本領域内であっても、ぶれは有るが、他の実施例では、基本領域内ではぶれは無く、リスク領域内でぶれが有るようにしてもい。
【0291】
また、この実施例では、方向入力期間が終了したときに、ぶれを決定するようにしたが、打撃力が決定された後であれば、ボールが移動開始する前までの任意のタイミングで決定することができる。
【0292】
さらに、この実施例では、ぶれを抽選で決定するようにしたが、これに限定される必要はない。プレイヤの操作に応じて指示画像の移動が停止され、指示画像の位置すなわちぶれが決定されてもよい。
【0293】
さらにまた、この実施例では、第1指標画像を停止させた位置に応じて打撃力を決定するようにしたが、ぶれを決定したときの指示画像の位置に応じて打撃力を決定するようにしてもよい。上述したように、第1指標画像は移動ゲージの終端に向かうに従って傾斜されるため、ぶれに応じて打撃力の大きさが変化するため、基準軌道の水平到達距離が変化される。このようにしても、ドローボールとフェードボールの違いにより移動距離を変化させることができる。
【0294】
また、この実施例では、移動ゲージ内を第1指標画像および第2指標画像が移動し、それに伴って、移動した部分の色を変化させるようにしたが、色は変化させなくてもよい。
【0295】
さらに、この実施例では、コントローラの操作ボタンおよびアナログスティックを操作することにより、操作入力を行うようにしたが、これに限定される必要はない。他の実施例では、コントローラに2軸または3軸のジャイロセンサのようなモーションセンサを設けて、プレイヤが本体装置2から外したコントローラ(左コントローラ3および右コントローラ4のいずれか一方)を握ってスイングすることで操作入力するようにしてもよい。つまり、プレイヤがコントローラを動かす動作で、一度に、打撃力およびボールの軌道が決定される。この場合、プレイヤが、アドレス状態から、コントローラを振り上げたときの振り上げの大きさをジャイロセンサで検出し、コントローラを振り上げた位置からコントローラを振り下ろしてアドレス状態の位置に戻ってくるまでの手首の回転角度をジャイロセンサで検出する。一例として、コントローラの振り上げの大きさで打撃力が決定される。また、予め正しくスイングした場合の手首の回転角度の時間変化(以下、「基準の回転角度」)が記憶されており、基準の回転角度と、プレイヤがコントローラを動かしたときの手首の回転角度の違いに基づいて、ボールの軌道の種類(たとえば、ドロー、フェード、フック、スライス)が判定される。この判定結果に従って、ボールの軌道の種類に応じて予め決定された矢印画像が移動ゲージ内に表示され、ボールは判定された軌道に従って移動される。ただし、ボールの打ち出し角度は選択したクラブによって決まっている。また、加速度センサを設けることにより、コントローラを振り下ろしてアドレス状態の位置に戻ってきたときのコントローラの加速度を検出して、打撃力に換算してもよい。
【0296】
さらにまた、この実施例では、ゴルフゲームについて説明したが、他のスポーツゲームにも適用可能である。他のスポーツとしては、サッカー、野球、テニス、バレーボール、ボウリングおよびバドミントンなどが該当する。サッカーの場合には、シュートやフリーキックの場面で、キックしたボールの軌道を経時的な方向入力に従って変更することができる。また、野球の場合には、ピッチャーが投球したり、バッターが打撃したりしたボールの軌道を経時的な方向入力に従って変更することができる。さらに、テニスおよびバレーボールでは、手またはラケットで打ったボールの軌道を経時的な方向入力に従って変更することができる。ボウリングでは、野球のピッチャーと同様に、投球したボールの軌道を経時的な方向入力に従って変更することができる。そして、バドミントンでは、テニスと同様に、ラケットで打ったシャトルの軌道が経時的な方向入力に従って変更することができる。
【0297】
また、上述の実施例では、情報処理システムの一例としてゲームシステム1を示したが、その構成は限定される必要は無く、他の構成を採用することが可能である。たとえば、上記「コンピュータ」は、上述の実施例においては、1つのコンピュータ(具体的には、プロセッサ81)であるが、他の実施例においては、複数のコンピュータであってもよい。上記「コンピュータ」は、例えば、複数の装置に設けられる(複数の)コンピュータであってもよく、より具体的には、上記「コンピュータ」は、本体装置2のプロセッサ81と、コントローラが備える通信制御部(マイクロプロセッサ)101、111とによって構成されてもよい。
【0298】
さらに、他の実施例では、インターネットのようなネットワーク上のサーバで、全体的なゲーム処理の一部(S5-S9)を実行するようにしてもよい。かかる場合には、本体装置2のプロセッサ81は、左コントローラ3および右コントローラ4から取得した操作データを、ネットワーク通信部82およびネットワークを介して上記のサーバに送信し、サーバで全体的なゲーム処理の一部を実行された結果(つまり、ゲーム画像のデータおよびゲーム音声のデータ)を受信して、ゲーム画像をディスプレイ12に表示するとともに、ゲーム音声をスピーカ88から出力する。つまり、上述の実施例で示したゲームシステム1とネットワーク上のサーバを含む情報処理システムを構成することもできる。
【0299】
また、上述の実施例では、ディスプレイ12にゲーム画像を表示する場合について説明したが、これに限定される必要はない。本体装置2を、クレードルを介して据置型モニタ(たとえば、テレビモニタ)に接続することにより、ゲーム画像を据置型モニタに表示することもできる。かかる場合には、ゲームシステム1と据置型モニタを含む情報処理システムを構成することもできる。
【0300】
さらに、上述の実施例では、本体装置2に左コントローラ3および右コントローラ4を着脱可能な構成のゲームシステム1を用いた場合について説明したが、これに限定される必要はない。たとえば、左コントローラ3および右コントローラ4と同様の操作ボタンおよびアナログスティックを有する操作部を本体装置2に一体的に設けたゲーム装置またはゲームプログラムを実行可能な他の電子機器のような情報処理装置を用いることもできる。他の電子機器としては、スマートフォンまたはタブレットPCなどが該当する。かかる場合には、操作部はソフトウェアキーで構成することもできる。
【0301】
さらにまた、上述の実施例で示した具体的な数値および画像の構成は一例であり、実際の製品に応じて適宜変更可能である。
【0302】
たとえば、ぶれの決定は、打撃力が決定された後、方向入力の検出を終了するまでの間に行っても良いし、プレイヤキャラクタがスイング動作を開始した後、ボールを打撃するまでの間に行っても良い。
【0303】
また、第2のパラメータ決定処理は、大きく分けて、打撃力を決定する処理(S203-S209)、プレイヤによる方向入力を検出する処理(S217-S221)およびぶれを決定する処理(S237-S243、S249)を含むが、プレイヤによる方向入力を検出する処理だけを含んでもよい。かかる場合には、たとえば、打撃力を決定する処理およびぶれを決定する処理は無くてもよいし、あるいは他の(たとえば、第3の)パラメータ決定処理として、第2のパラメータ決定処理の前に実行されてもよい。
【符号の説明】
【0304】
1 …ゲームシステム
2 …本体装置
3 …左コントローラ
4 …右コントローラ
32、52 …アナログスティック
39 …ZLボタン
60 …Rボタン
61 …ZRボタン
81 …プロセッサ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33