(57)【要約】【課題】利便性の高いゲーム制御技術を提供する。【解決手段】ゲーム装置１０は、プレイヤーから操作入力を受け付ける入力受付部３０と、操作入力のタイミングに応じてゲームを制御する制御部４０と、ゲームの画面を生成する画面生成部６６とを備え、画面生成部６６は、画面のうち、操作入力のタイミングの指標となる第１領域を、その他の第２領域よりも高いフレームレートで生成する。画面生成部６６は、バッファメモリ６２ａ又は６２ｂに、第２領域を描画したデータを格納し、それを他方のバッファメモリに複製した後、複数のフレームにおける第１領域を描画したデータのそれぞれを順次それぞれのバッファメモリ６２ａ及び６２ｂに追加することにより、画面を生成する。【選択図】図１
2008229170.tif 000002
【特許請求の範囲】
【請求項１】
プレイヤーから操作入力を受け付ける機能と、
前記操作入力のタイミングに応じてゲームを制御する機能と、
前記ゲームの画面を生成する機能と、をコンピュータに実現させ、
前記画面を生成する機能は、前記画面のうち、前記操作入力のタイミングの指標となる第１領域を、その他の第２領域よりも高いフレームレートで生成することを特徴とするゲーム制御プログラム。
【請求項２】
前記画面を生成する機能は、それぞれが１フレームの前記画面のデータを格納可能な容量を有する複数のバッファメモリのうちのいずれか１つに、前記第２領域の画面を生成したデータを格納し、それを他のバッファメモリに複製した後、複数のフレームにおける前記第１領域の画面を生成したデータのそれぞれを順次それぞれのバッファメモリに追加することにより、前記画面を生成することを特徴とする請求項１に記載のゲーム制御プログラム。
【請求項３】
前記画面を生成する機能は、あるバッファメモリに格納されている画面が表示されている間に、後続のフレームにおける前記第１領域の画面を生成して別のバッファメモリに追加することを特徴とする請求項２に記載のゲーム制御プログラム。
【請求項４】
前記画面を生成する機能は、あるバッファメモリに格納されている画面が表示された後、後続の画面が表示されている間に、次の前記第２領域の画面を生成して、既に表示された画面のデータが格納されているバッファメモリに格納することを特徴とする請求項２又は３に記載のゲーム制御プログラム。
【請求項５】
前記操作入力を受け付ける機能は、前記第１領域のフレームレートと同じレートで前記プレイヤーから操作入力を受け付けることを特徴とする請求項１から４のいずれかに記載のゲーム制御プログラム。
【請求項６】
前記ゲームを制御する機能は、プレイヤーズキャラクタがゴルフをプレーするゲームを制御し、前記操作入力のタイミングに応じて、前記プレイヤーズキャラクタのショットのパワー又はインパクトを決定して球の弾道を算出し、
前記画面を生成する機能は、前記第１領域として、前記ショットのパワー又はインパクトを決定するための操作入力のタイミングの指標となる動画像を生成することを特徴とする請求項１から５のいずれかに記載のゲーム制御プログラム。
【請求項７】
前記画面を生成する機能は、前記画面に含まれる面状のオブジェクトを描画する際に、風の方向及び速度と、前記オブジェクトの面の方向とに基づいて、前記オブジェクトの位置を物理計算により算出することを特徴とする請求項６に記載のゲーム制御プログラム。
【請求項８】
前記ゲームを制御する機能は、前記風の方向及び速度を更に考慮して前記球の弾道を算出することを特徴とする請求項７に記載のゲーム制御プログラム。
【請求項９】
プレイヤーから操作入力を受け付ける入力受付部と、
前記操作入力のタイミングに応じてゲームを制御するゲーム実行部と、
前記ゲームの画面を生成する画面生成部と、を備え、
前記画面生成部は、前記画面のうち、前記操作入力のタイミングの指標となる第１領域を、その他の第２領域よりも高いフレームレートで生成することを特徴とするゲーム装置。
【請求項１０】
それぞれが１フレームの画面のデータを格納可能な容量を有する複数のバッファメモリを更に備え、
前記画面生成部は、前記バッファメモリのうちいずれか１つに、前記第２領域を描画したデータを格納し、それを他のバッファメモリに複製した後、複数のフレームにおける前記第１領域を描画したデータのそれぞれを順次それぞれのバッファメモリに追加することにより、前記画面を生成することを特徴とする請求項９に記載のゲーム装置。
【請求項１１】
プレイヤーから操作入力を受け付けるステップと、
前記操作入力のタイミングに応じてゲームを制御するステップと、
前記ゲームの画面を生成するステップと、含み、
前記画面を生成するステップは、前記画面のうち、前記操作入力のタイミングの指標となる第１領域を、その他の第２領域よりも高いフレームレートで生成することを特徴とするゲーム制御方法。
【請求項１２】
プレイヤーから操作入力を受け付ける機能と、
前記操作入力のタイミングに応じてゲームを制御する機能と、
前記ゲームの画面を生成する機能と、をコンピュータに実現させ、
前記画面を生成する機能は、前記画面のうち、前記操作入力のタイミングの指標となる第１領域を、その他の第２領域よりも高いフレームレートで生成することを特徴とするゲーム制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム制御技術に関し、とくに、ゴルフゲームを制御するゲーム装置、ゲーム制御方法、及びゲーム制御プログラムに関する。
【背景技術】
【０００２】
キャラクタを操作してゴルフをプレーするゲームが人気を博している。ゴルフは、現実の世界においても、幅広い年齢層にわたって競技人口が多く、不偏の人気を誇るスポーツである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
数多くのゴルフゲームが市場に出回っているが、もともと競技スタイルがシンプルであるが故に、特色を出すのが難しく、あまり変わり映えのしないものが多い。新鮮な面白さを味わうことのできる特色あるゴルフゲームの開発が望まれている。
【０００４】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より娯楽性の高いゲーム制御技術を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、ゲーム制御プログラムに関する。このゲーム制御プログラムは、プレイヤーから操作入力を受け付ける機能と、前記操作入力のタイミングに応じてゲームを制御する機能と、前記ゲームの画面を生成する機能と、をコンピュータに実現させ、前記画面を生成する機能は、前記画面のうち、前記操作入力のタイミングの指標となる第１領域を、その他の第２領域よりも高いフレームレートで生成することを特徴とする。
【０００６】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００７】
本発明によれば、より娯楽性の高いゲーム制御技術を提供することができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態に係るゲーム装置は、プレイヤーが操作するプレイヤーズキャラクタが、球を打撃する形式の球技を行うゲームを実現する。本実施の形態では、とくに、ゴルフを例にとって説明する。
【０００９】
図１は、実施の形態に係るゲーム装置１０の構成を示す。ゲーム装置１０は、コントローラ２０、入力受付部３０、制御部４０、パラメータ保持部６０、バッファメモリ６２ａ及び６２ｂ、画面生成部６６、ＶＲＡＭ６７、表示装置６８、記憶媒体７０、及びスピーカ７２を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００１０】
入力受付部３０は、プレイヤーが操作するコントローラ２０から入力される制御信号を受け付ける。制御部４０は、ゴルフゲームのプログラムが格納された記憶媒体７０からプログラムを読み出して実行し、入力受付部３０が受け付けたプレイヤーからの操作入力に基づいて、ゲーム世界においてゴルフプレイヤーとして機能するプレイヤーズキャラクタの動作を制御しつつ、ゴルフゲームを進行させる。パラメータ保持部６０は、ゴルフゲームの進行に必要なパラメータを保持する。画面生成部６６は、制御部４０により制御されるゲームの画面を生成し、ＶＲＡＭ６７を介して表示装置６８に表示させる。スピーカ７２は、制御部４０により制御されるゲームの音声を出力する。
【００１１】
ショット制御部４１は、プレイヤーズキャラクタによるショットを制御する。ショット制御部４１は、カメラ制御部４２、ライ表示部４３、パワー決定部４４、及びインパクト決定部４５を含む。
【００１２】
図２は、プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す。画面１００には、プレー中のホールの地形がレンダリングされた画像と、プレイヤーズキャラクタを後方から見た画像と、ライの状態を示す領域１０２が表示されている。プレイヤーは、この画面において、コントローラ２０を操作してショットのパワーとインパクトを決定し、プレイヤーズキャラクタにショットを行わせる。
【００１３】
カメラ制御部４２は、画面生成部６６がゲーム画面を生成する際のカメラの視点位置及び視線方向を制御する。カメラ制御部４２は、プレイヤーズキャラクタがショットを行うときのゲーム画面を生成する場合、初期設定として、プレイヤーズキャラクタの後方に視点位置を設定し、プレイヤーズキャラクタを見る方向に視線方向を設定する。プレイヤーは、ホールの地形を確認したり、ショットする方向や距離などを判断したりするために、コントローラ２０を操作して視点位置や視線方向を変更することができる。カメラ制御部４２は、後述するように、プレイヤーからの操作入力に応じて、カメラの視点位置及び視線方向を変更し、画面生成部６６に通知する。
【００１４】
ライ表示部４３は、プレイヤーズキャラクタがボールをショットするときに、ボールが接地している位置の地面の状態を表示する。このとき、ライ表示部４３は、地面の高い方から低い方へ向かってオブジェクトが移動する様子を表示することにより、地面の傾斜の状態を表現する。例えば、ライ表示部４３は、図２に示すように、ボールが接地している位置の地面１０４を四角形に切り取って斜め上方から俯瞰した斜視図を表示し、四角形の各辺において粒子１０６が移動する様子を表示してもよい。このとき、粒子１０６の速度は、地面１０４の傾きが大きいほど速く、傾きが小さいほど遅くなるようにする。粒子１０６の速度は、ボールが接地している位置のライの状態を反映するように変化させてもよい。例えば、フェアウェイ、ラフ、バンカー、カート道などで粒子１０６の速度を異ならせてもよい。また、グリーン上において、芝目や芝の状態などを更に考慮して粒子１０６の速度を決定してもよい。なお、プレイヤーがショットやパットの狙いを定めるために、ボールの着地点又は到達地点付近が表示されるようにカメラの視点位置や視線方向を変更させたときに、ボールの着地点又は到達地点付近の所定領域にグリッドを表示し、グリッドに沿って粒子が流れるような画面を表示してもよい。この場合も、その領域の地形や、ライの状態、グリーンの芝目などに応じて、粒子の速度を決定してもよい。粒子１０６の速度が速過ぎたり遅過ぎたりするとプレイヤーが視認しにくくなってしまうので、例えば、０．５秒で１周する速度を上限値とし、１０秒で１周する速度を下限値としてもよい。これにより、画面の水平方向の傾斜だけでなく、奥行き方向の傾斜も視覚的に分かりやすく表現することができるので、プレイヤーはライの状態を的確に把握し、ショットに反映させることができる。後述するように、本実施の形態のゴルフゲームでは、ボールの接地面の傾斜角を考慮した物理計算により、ショットされたボールの弾道を算出しているので、ボールの接地面の傾斜角を分かりやすく表示することがとくに重要となる。
【００１５】
パワー決定部４４は、プレイヤーズキャラクタのショットのパワーを決定する。パワー決定部４４は、ショットを開始する指示が割り当てられた操作入力をコントローラ２０から受け付けると、画面生成部６６に、プレイヤーズキャラクタがボールをショットするためにテークバックする動作を行っている画面を生成させ、表示装置６８に表示させる。プレイヤーは、プレイヤーズキャラクタがテークバックする動作の進行の度合いを指標として、パワーを決定する指示が割り当てられた操作入力をコントローラ２０により行う。パワー決定部４４は、パワーを決定するための操作入力を受け付けた時点におけるプレイヤーズキャラクタのショットする動作の進行の度合いに応じて、ショットのパワーを決定する。パワー決定部４４は、決定したパワーを弾道算出部５０に通知する。
【００１６】
パワー決定部４４は、フルスイングするときのテークバックする動作に要する時間と、テークバックを開始してからパワーを決定するための操作入力を受け付けるまでの時間又は表示画面のフレーム数との比に基づいて、ショットのパワーを決定する。例えば、テークバックを開始する時点でのパワーを０％、トップスイングの時点でのパワーを１００％として、操作入力を受け付けた時点でのパワーを内分により決定してもよい。フルスイングに要する時間が２秒で、テークバック開始から１．６秒後に操作入力を受け付けた場合、パワーを８０％としてもよい。また、フルスイングの動作を表示するときのフレーム数が１００フレームで、テークバック開始から７０フレーム後に操作入力を受け付けた場合、パワーを７０％としてもよい。パワー決定部４４は、プレイヤーがタイミングを計るための指標として、パワーが所定の値、例えば５０％、１００％に達したときに、その旨を表示したり、クラブヘッドの表示態様を変更したりしてもよい。
【００１７】
図３（ａ）（ｂ）は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。図３（ａ）は、プレイヤーズキャラクタがテークバックを開始してから、フルスイングに要する時間の半分の時間が経過したときの状態を示す。この時点でプレイヤーから操作入力を受け付けると、パワー決定部４４は、ショットのパワーを５０％と決定する。図３（ｂ）は、プレイヤーズキャラクタがトップオブスイングに至った状態を示す。この時点でプレイヤーから操作入力を受け付けると、パワー決定部４４は、ショットのパワーを１００％と決定する。
【００１８】
パワー決定部４４は、テークバック中に操作入力を受け付けたときに、その時点でテークバックを終了してダウンスイングに移行させてもよいし、パワーが決定された後も引き続きテークバックを行わせ、フルスイングする様子を表示させてもよい。パワー決定部４４は、テークバック中に操作入力を受け付けずにトップスイングに至った場合、素振りであったことにしてショットを行わないようにしてもよいし、ダウンスイング中はパワーが降下するものとして引き続き操作入力を受け付け、ダウンスイングを開始してから操作入力を受け付けるまでの時間に応じてパワーを決定してもよい。
【００１９】
パワー決定部４４は、ライの状態や、バンカーショットにおけるバンカーの地形、プレイヤーズキャラクタのスタンスなどによっては、フルスイングしても１００％のパワーを達成できないようにしてもよい。また、アプローチショットなどの場合に、プレイヤーズキャラクタにフルスイングさせず、ハーフスイングしかできないようにしてもよい。このような場合であっても、上記のようにプレイヤーズキャラクタに素振りをさせる機能を設けることにより、プレイヤーは、まずはプレイヤーズキャラクタに素振りをさせてスイングとパワーとの関係を確認してから、ショットを行うことができる。
【００２０】
従来は、ゴルフゲームにおいてショットのパワーを決定する際に、プレイヤーズキャラクタは静止した状態のままとし、パワーの状態を示すゲージなどを指標として表示する例が多かった。本実施の形態では、プレイヤーズキャラクタがショットする動作を高速かつ高フレームレートで生成することにより、ショット動作を指標としたユーザインタフェースを実現している。これにより、より現実感の高いゴルフゲームを実現することができる。ショット動作を高速かつ高フレームレートで生成して表示するための技術については、後で詳述する。
【００２１】
パワー決定部４４は、プレイヤーズキャラクタがショットするときのテークバック動作の進行の度合いが所定の値に達したときに、その旨を示す音をスピーカ７２に出力する。パワー決定部４４は、所定の値を複数設定し、それぞれ異なる音を出力してもよい。例えば、パワーが２０％、４０％、６０％、８０％、１００％となる時点で、それぞれ、ド、レ、ミ、ファ、ソの音階の音を出力してもよい。
【００２２】
図４は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。プレイヤーズキャラクタがパッティングを行うとき、どの程度テークバックをとるのかが事前に分かりにくいので、プレイヤーがパワーを決定するための操作入力を行うタイミングを計りづらい。したがって、パワー決定部４４は、パワーが２０％、４０％、６０％、８０％、１００％となる時点で、それぞれ、ド、レ、ミ、ファ、ソの音階の音をスピーカ７２に出力する。これにより、プレイヤーは、スピーカ７２から発生される音のリズムに合わせて、ショットのパワーを決定するための操作入力のタイミングを計ることができるので、操作性のよいユーザインタフェースを実現することができる。
【００２３】
カメラ制御部４２は、プレイヤーズキャラクタがショットを行うときのゲーム画面を表示しているときに、プレイヤーからの指示入力に応じて、画面を生成する際の視点位置又は視線方向を変更するよう、画面生成部６６に指示する。ボールの周辺の地形や障害物などの状態によっては、プレイヤーズキャラクタのテークバック動作が見づらい可能性がある。このとき、プレイヤーがパワーを決定するための操作入力を行うタイミングを計りづらくなってしまうので、カメラ制御部４２は、プレイヤーズキャラクタのテークバック動作が見やすいように、カメラの視点位置又は視線方向を変更する。
【００２４】
図５（ａ）（ｂ）は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。図５（ａ）に示すように、木などの障害物が邪魔になり、プレイヤーズキャラクタを後方から見た画面では、テークバック動作が見づらい場合がある。このとき、プレイヤーは、コントローラ２０の方向キーなどを用いて、カメラの視点位置又は視線方向を切り替える操作入力を行う。カメラ制御部４２は、プレイヤーからの操作入力に応じて、図５（ｂ）に示すように、プレイヤーズキャラクタのテークバック動作が見やすい画面となるように、カメラの視点位置又は視線方向を変更する。図５（ｂ）に示すように、プレイヤーズキャラクタの側方に視点位置を設定することにより、プレイヤーズキャラクタのテークバック動作の進行の度合いがより分かりやすくなり、操作性の良いユーザインタフェースを実現することができる。
【００２５】
カメラ制御部４２は、自動的に、プレイヤーズキャラクタのテークバック動作が見やすい位置にカメラの視点位置を移動させてもよい。とくに、プレイヤーズキャラクタがパッティングを行う場合は、テークバック動作が小さく、プレイヤーズキャラクタの後方から見てもパターの動きが分かりづらいので、カメラ制御部４２は、図４に示したように、プレイヤーズキャラクタの側方にカメラの視点位置を切り替えてもよい。
【００２６】
パワー決定部４４は、プレイヤーズキャラクタがボールをショットするときのパワーを決定するための操作入力を受け付けるときに、その時点でのパワーでショットした場合のボールの軌跡又は到達位置を表示してもよい。前述したように、とくにパッティングの際には、テークバック動作を指標としたタイミングの調整が難しく、短いパットであっても徒に難易度が高くなってしまう可能性があるので、ボールの軌跡又は到達位置を表示することにより、プレイヤーがパワーを決定するための操作入力を行う際のタイミングを計りやすくする。
【００２７】
図６は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。パワー決定部４４は、ボールの現在位置からカップまでの距離が所定の値、例えば５メートルよりも短いときに、その時点でのパワーでパットしたときのボールの到達位置を示す円１１０を表示してもよい。ただし、グリーンの地形や芝目などを加味せず、その時点でのパワーでパットしたボールが平地を直線的に転がった場合の到達位置を表示するようにしてもよい。これにより、難易度が低くなり過ぎない程度にパッティングの際の操作入力を補助することができる。長い距離のパットは、現実の世界でも難易度が高いので、例えば５メートル以上のパットは補助を行わないことで、難易度を高く設定する。パワー決定部４４は、ボールの現在位置から到達位置までの距離が長くなるにしたがって薄い色で円１１０を表示してもよい。また、パワー決定部４４は、ボールの現在位置から到達位置までの距離が所定の値、例えば２．５メートルよりも短いときに、円１１０を表示してもよい。５メートル未満のパットは、到達距離が２．５メートルになるまでの間に限って、徐々に色を薄くしてフェードアウトするように円１１０を表示することで、難易度が低くなり過ぎない程度に補助を行う。残りの距離が２．５メートル未満である場合、地形や芝目の影響がないのであれば、円１１０がカップに重なる瞬間に操作入力を行えばボールがカップに入るようにパッティングを行うことができるので、プレイヤーはボールからカップまでの地形や芝目を考慮してタイミングを微調整すればよい。これにより、現実的な難易度に設定することができ、ゲームの娯楽性を向上させることができる。
【００２８】
インパクト決定部４５は、プレイヤーズキャラクタのショットのインパクトを決定する。インパクト決定部４５は、パワー決定部４４によりショットのパワーが決定された後、画面生成部６６に、プレイヤーズキャラクタがダウンスイングする動作を行っている画面を生成させ、表示装置６８に表示させる。プレイヤーは、プレイヤーズキャラクタがダウンスイングしてボールを打撃するタイミングに合わせて、インパクトを決定する指示が割り当てられた操作入力をコントローラ２０により行う。インパクト決定部４５は、プレイヤーズキャラクタがダウンスイングしてボールを打撃する時点と、インパクトを決定するための操作入力を受け付けた時点との時間差に応じて、ショットのインパクトを決定する。インパクト決定部４５は、決定したインパクトを弾道算出部５０に通知する。このとき、インパクトが１００％になる瞬間よりも速く操作入力を受け付けた場合はマイナス、遅い場合はプラスの符号をつけるなどして、タイミングが速かったのか遅かったのかを表現してもよい。
【００２９】
インパクト決定部４５は、タイミングをとるための指標の補助として、画面生成部６６に、時間の経過にしたがって収縮し、プレイヤーズキャラクタがボールを打撃する時点、すなわち、最も高いインパクトでショットすることができる時点で最小となる図形を含む画面を生成させ、表示装置６８に表示させる。プレイヤーは、収縮する図形を更に指標として、インパクトを決定するための操作入力を行うことができる。インパクト決定部４５は、ボールの位置を中心又は重心とした図形を表示し、ボールの位置に収束するように収縮させてもよい。これにより、プレイヤーが、プレイヤーズキャラクタがダウンスイングしている様子と、図形が収縮する様子の双方を視認しながら操作を行うことができ、より操作性の良いユーザインタフェースを実現することができる。
【００３０】
インパクト決定部４５は、例えば、プレイヤーズキャラクタがボールを打撃する時点、すなわち時間差がゼロである時点でのインパクトを１００％、時間差が所定の上限値となる時点でのインパクトを所定の下限値として、操作入力を受け付けた時点でのインパクトを内分により決定してもよい。後述するように、弾道算出部５０では、インパクト決定部４５により決定されたインパクトの値が低いほど、狙った着地点から大きく外れるように、飛距離や方向などが補正される。インパクト決定部４５は、プレイヤーズキャラクタのダウンスイングがボールを通過した後、操作入力を受け付けずに時間差が所定の上限値を超えた場合、素振りであったことにしてショットを行わないようにしてもよいし、インパクトを自動的に所定の下限値に設定してショットを行わせてもよい。
【００３１】
図７（ａ）（ｂ）は、プレイヤーズキャラクタがダウンスイングする動作を行っているときのゲーム画面の例を示す。図７（ａ）は、プレイヤーズキャラクタがダウンスイングを開始したときの状態を示す。インパクト決定部４５は、タイミングを計るための指標の補助として円１２０を表示している。また、インパクトが下限値となるときの円１２０の直径を示す図形１２２と、インパクトが上限値、例えば１００％となるときの円１２０の直径を示す図形１２４とを表示している。円１２０の直径が図形１２２が示す直径よりも大きいときに操作入力を受け付けた場合、インパクト決定部４５は、インパクトを所定の下限値に設定してもよい。また、この場合、後述するように、弾道算出部５０は、このショットをミスショットとして扱ってもよい。円１２０の直径が図形１２４が示す直径よりも小さいときに操作入力を受け付けた場合、インパクト決定部４５は、インパクトを所定の上限値、例えば１００％に設定してもよい。円１２０の直径が図形１２２が示す直径よりも小さく、図形１２４が示す直径よりも大きいときに操作入力を受け付けた場合、インパクト決定部４５は、操作入力を受け付けたタイミングに応じて、所定の上限値と下限値の間の値を設定してもよい。図７（ｂ）は、プレイヤーズキャラクタがボールを打撃する直前の状態を示す。インパクト決定部４５は、円１２０を収縮させ、プレイヤーズキャラクタがボールを打撃する瞬間に最小となるようにする。インパクト決定部４５は、プレイヤーズキャラクタがボールを打撃する瞬間まで操作入力を受け付けなかった場合、それ以降は円１２０を膨張させてもよい。この場合も、円１２０の直径が図形１２４が示す直径よりも小さい間はインパクトを上限値とし、図形１２２が示す直径よりも大きくなるとインパクトを下限値としてもよい。円１２０が図形１２２が示す直径よりも大きくなった時点でも操作入力を受け付けなかった場合は、自動的にインパクトを下限値に設定してショットを行わせてもよい。別の例として、インパクト決定部４５は、円１２０の直径が図形１２２が示す直径よりも大きいときはインパクトを下限値とし、直径が小さくなるほどインパクトが大きくなるようにし、図形１２４が示す直径と同じときにインパクトを上限値としてもよい。そして、それ以降は、円１２０の直径が図形１２４が示す直径よりも小さくなるにつれてインパクトが徐々に小さくなるようにしてもよい。
【００３２】
更に別の例として、インパクト決定部４５は、時間の経過にしたがって左右又は上下に、或いは任意の直線又は曲線上を移動する図形と、インパクトが最大となる図形の位置とを示すゲージを表示させ、プレイヤーが操作入力を行うタイミングをとるための指標としてもよい。また、インパクト決定部４５は、コントローラ２０のアナログスティックを倒す角度、速度、圧力などに応じてショットのインパクトやパワーを決定してもよい。
【００３３】
弾道算出部５０は、ショット制御部４１により決定されたショットのパワー及びインパクトと、ボールのライ、風、地形などの外部要因に基づいて、ショットされたボールの弾道を物理計算により算出する。
【００３４】
弾道算出部５０は、ショットに用いたクラブに応じて予め設定された初速度及びロフト角をパラメータ保持部６０から読み出す。弾道算出部５０は、読み出した初速度に、パワー決定部４４により決定されたパワー、インパクト決定部４５により決定されたインパクト、プレイヤーズキャラクタごとに設定された体力などの属性値、ボールのライなどに応じて初速度又はロフト角を調整する。例えば、パワーやインパクトが高いほど初速度が速くなるように、パワーやインパクトの％値を初速度に乗じてもよい。また、インパクトの値が小さいほど狙った着地点からずれるように、ボールの飛ぶ方向や速度などを調整してもよい。例えば、インパクトが１００％になる瞬間よりも速く操作入力を受け付けた場合はボールの軌道を右に曲げてスライスボールとし、遅い場合は左に曲げてフックボールとしてもよい。また、インパクトが所定の下限値以下であった場合は、ミスショットとして扱い、極端に初速度を小さくして弾道を算出してもよい。ラフやバンカーの場合は、フェアウェイよりも初速度を低くしてもよい。また、ボールの接地面の傾斜が大きければ初速度を低くしてもよい。ショットの際にプレイヤーが初速度やロフト角を変更する操作入力を行った場合には、さらにその影響を考慮して初速度やロフト角を調整してもよい。
【００３５】
弾道算出部５０は、初速度とロフト角を決定すると、ボールに作用する力に応じて速度を調整しつつ、ボールの位置をフレームごとに算出する。弾道算出部５０は、ボールの現在位置の座標に対して、フレームを単位とした速度を加算し、次のフレームにおけるボールの位置の座標を算出する。ボールの速度には、フレームごとに、重力、揚力、風力、空気抵抗が加算される。重力については、物理法則に則って、下向きに、９．８メートル毎秒毎秒とする。揚力は、上向きに、速度に比例する値とする。風力は、ホールの全ての場所において一定方向に一定速度としてもよいし、場所に応じて変化させてもよい。空気抵抗は、進行方向と逆向きに、速度に比例する値とする。このように、風の方向及び速度を考慮してボールの弾道を算出することにより、現実のゴルフと同様に、風の影響を考慮しながらショットを行う難しさを演出することができ、よりリアリティのあるゴルフゲームを実現することができる。
【００３６】
ボールが何かに衝突した場合は、衝突した面の属性に応じて予め設定された摩擦係数及び反発係数にしたがって、水平方向及び垂直方向の速度を調整する。摩擦係数及び反発係数は、フェアウェイ、ラフ、バンカーなどによって異なる値を設定してもよい。弾道算出部５０は、さらに、演出効果として、物理法則とは関係のない特殊な演算を弾道に与えてもよい。これにより、ゴルフゲームに変化を持たせ、ゲームの娯楽性を向上させることができる。
【００３７】
画面生成部６６は、弾道算出部５０により算出されたボールの位置に応じて、ボールが画面に入るようにカメラの視点位置及び視線方向を設定し、ボールが飛ぶ様子を示す画面を生成して、表示装置６８に表示する。ボールが停止すると、次のショットに移る。
【００３８】
風流物制御部４７は、風の影響を受けて動くオブジェクトの動きを制御する。風流物制御部４７は、ゲーム画面に含まれる、風にあおられながら舞い落ちてくる葉、ラフでショットした後に舞う芝、ティインググラウンドで風の状態をみるためにまく芝などの面状のオブジェクト（以下、これらをまとめて「風流物」という）を描画する際に、風の方向及び速度と、風流物の面の方向とに基づいて、その挙動を物理計算により算出する。これにより、風の影響や空気抵抗を表現することができるので、現実に近い挙動をシミュレーションすることができる。
【００３９】
風流物制御部４７は、風流物が板状のオブジェクトであると仮定して物理計算を行う。板の平らな面がＺ軸方向を向いているものとし、各変数を以下のように定義する。
板の回転角度：x, y, z
板の位置ベクトル：pos
板の速度ベクトル：v
フレームごとに発生する下向きの速度（定数）：vg
フレームごとに風により発生する速度：vw
面の抵抗値（0.0〜1.0、0.0が抵抗なし）：r
【００４０】
計算方法は以下の通りである。
１．まず、板の回転角度x,y,zにランダムな回転を加えて、行列Mを生成する。このとき、風流物が現実的な範囲で回転しているように見せるために、値を調整してもよい。
x += random();
y += random();
z += random();
M = Matrix4::rotationZYX(Vector3(x, y, z));
２．vにvwとvgを加える。
v += vw + vg;
３．vを、M.z（MのZ成分）に平行な成分とそれに垂直な成分の二つのベクトルvh（平行）、vv（垂直）に分離する。
vh = dot(M.z, v) * M.z;
vv = v - vh;
４．vhに抵抗値を掛けたあと、vvを足して、vに格納する。vhは板に垂直な速度成分なので、抵抗値を掛けて面抵抗を表現する。
v = vh * r + vv;
５．vをposに加算する。
pos += v;
以上の１から５の手順を繰り返すことにより、面状のオブジェクトが風に舞って落下する様子をリアルに再現することができる。
【００４１】
前述したように、本実施の形態のゴルフゲームでは、弾道算出部５０において、風の影響を考慮した物理計算によりボールの弾道を算出しているため、ショットに先立って風の方向や速度を把握することが重要である。風に舞う面状のオブジェクトを描画する際に、風の方向及び速度を考慮した物理計算によりオブジェクトの挙動をシミュレーションすることにより、風の方向や速度をより精確に表現することができる。これにより、プレイヤーは、現実のゴルフと同様に、葉や芝などが舞う様子を見て風の方向及び速度を把握することができるので、よりリアリティ性のあるゴルフゲームを実現することができる。
【００４２】
観客制御部４６は、カメラ制御部４２により視点位置又は視線方向が変更されたときに、プレイヤーズキャラクタのプレーを観覧する観客のキャラクタが、視点位置から所定の距離の範囲内に存在する場合、又は、視線方向から所定の角度の範囲内に存在する場合、観客のキャラクタが所定の範囲から外れるように移動させる。このとき、観客制御部４６は、プレイヤーズキャラクタがプレーしているホールの地形を示すデータを取得し、地形に基づいて観客のキャラクタを移動させる方向を決定する。
【００４３】
図８（ａ）（ｂ）は、観客のキャラクタが表示された画面の例を示す。観客制御部４６は、観客のキャラクタの観覧位置とキャラクタのポリゴンデータを取得し、画面生成部６６に観客のキャラクタ１３０を含む画面を生成させる。図８（ａ）に示すように、画面の端付近に観客のキャラクタ１３０が表示されているときには、観客制御部４６は、観客のキャラクタ１３０を移動させなくてもよい。図８（ｂ）に示すように、観客のキャラクタ１３０が画面の中央付近の所定の角度、距離の範囲内に表示されるように視点位置又は視線方向が変更されたとき、観客制御部４６は、観客のキャラクタ１３０を所定の範囲から外れるように移動させる。このように、観客が、カメラが自分の方向を撮影している、又は、プレイヤーズキャラクタが自身の方向を狙っているのに気付いて、急いで逃げていくような状況を演出することにより、今までにない新鮮な楽しさを提供することができる。観客制御部４６は、観客のキャラクタ１３０がカメラに気付いて驚く様子を表示させてから、逃げていく様子を表示させてもよい。観客制御部４６は、ホールの地形を示すデータを参照して、観客のキャラクタ１３０がフェアウェイに入らないように制御してもよい。図８（ｂ）に示した例では、観客のキャラクタ１３０を左へ移動させるとフェアウェイに入ってしまうので、右へ移動させている。
【００４４】
スコア管理部５１は、プレイヤーズキャラクタのスコアを管理する。スコア管理部５１は、プレイヤーズキャラクタがホールアウトすると、そのホールのスコアをパラメータ保持部６０に記録する。また、スコア管理部５１は、プレイヤーズキャラクタがホールアウトして、次のホールのティーショットを行うまでの間に、スコアボードを表示する。
【００４５】
経路取得部５２は、ホールアウトしたプレイヤーズキャラクタが、次のホールのティーインググラウンドへ移動する経路と、観客のキャラクタが次のホールの観覧位置へ移動する経路を取得する。移動状況表示部５３は、プレイヤーズキャラクタがホールアウトした後に、プレイヤーズキャラクタや観客のキャラクタが、経路取得部により取得された経路に沿って移動する様子を表示する。
【００４６】
経路取得部５２は、記憶媒体７０に格納されている予め設定された経路を取得してもよいし、記憶媒体７０からホールの地形を示すデータを取得して、自動的に経路を決定してもよい。例えば、経路取得部５２は、プレイヤーズキャラクタがホールアウトしたホールのグリーン及び次のホールのティーインググラウンドの位置を示すデータを取得し、それらに基づいてプレイヤーズキャラクタの経路を決定してもよい。また、経路取得部５２は、観客のキャラクタの現在位置と次のホールの観覧位置を示すデータを取得し、それらに基づいて観客のキャラクタの経路を決定してもよい。
【００４７】
経路取得部５２は、ホール及びホール間の地形を示すデータを取得し、地形に基づいて通過しやすさを判定し、通過しにくい場所を回避し、通過しやすい場所を優先的に選択して経路を決定してもよい。例えば、所定の高さ以上の段差、所定の角度以上の傾斜面、池や川、バンカー、木などの障害物は通過しにくく、カート道、平坦な面などは通過しやすい場所であると判定してもよい。所定のルールでホール間に複数の経由地点の候補を設定し、それらの経由地点を通過する経路のうち、最も通過しやすい経路を選択してもよい。例えば、現在位置、経由地点、目的地を含む有向グラフを生成し、各辺に対して通過しやすさを示すスコアをつけ、最適経路問題を解くことにより経路を決定してもよい。
【００４８】
経路取得部５２は、近い位置にいる複数のキャラクタをグループ化して経路を決定してもよい。これにより、観客のキャラクタを多く配した場合であっても、経路を算出する際の負荷を軽減することができる。また、現実の世界においても、近い位置にいる観客は同じ経路を通って次のホールへ移動することが多いので、より自然な形で観客が移動する様子を表示することができる。
【００４９】
経路取得部５２は、キャラクタの属性に応じて、異なる判断基準で経路を決定してもよい。例えば、プレイヤーズキャラクタはフェアウェイを通過してもよいが、観客のキャラクタはフェアフェイの通過を禁止してもよい。経路取得部５２は、通過しやすさを判定する際に、キャラクタの属性に応じて、異なるスコアをつけてもよい。
【００５０】
移動状況表示部５３は、プレイヤーズキャラクタがホールアウトした後、スコア管理部５１がプレイヤーズキャラクタのスコアを画面に表示している背景で、プレイヤーズキャラクタが経路に沿って移動する様子を表示する。移動状況表示部５３は、カメラの視点位置と視線方向を設定して、設定した視点位置から視線方向に見た画像を画面生成部６６に生成させる。移動状況表示部５３は、視点位置又は視線方向を変更してもよい。例えば、移動するキャラクタに追随して、キャラクタが画面に含まれるように視点位置又は視線方向を変更してもよい。これにより、特定のキャラクタに追随してホール間の移動を表示するなど、斬新な演出で新鮮な楽しさを提供することができる。
【００５１】
図９は、ゴルフコースにおけるホールのレイアウトを示す。本実施の形態では、各ホールの地形を示すデータだけでなく、ホール間の位置関係を示すデータが用意され、記憶媒体７０に格納されている。経路取得部５２は、記憶媒体７０からホールのレイアウトを示すデータを取得し、プレイヤーズキャラクタや観客のキャラクタの移動経路を決定する。
【００５２】
図１０は、経路取得部５２により決定された移動経路の例を示す。経路取得部５２は、ホール及びホール間の地形を示すデータを記憶媒体７０から取得し、キャラクタが通過しにくい場所を回避し、通過しやすい場所を優先して経路を決定する。
【００５３】
図１１は、移動状況表示部５３によりキャラクタが移動している状況が表示された画面の例を示す。スコア管理部５１によりスコアボードが表示されている背景で、移動状況表示部５３によりプレイヤーズキャラクタとキャディが経路に沿って歩いている様子が表示されている。このとき、プレイヤーズキャラクタとキャディが会話している様子を表示してもよい。また、最終ホールをホールアウトした後に、プレイヤーズキャラクタ、キャディ、観客のキャラクタなどが、表彰イベントを行う専用のグリーンに向かって歩いていく様子を表示してもよい。
【００５４】
次に、高いフレームレートで描画される領域と低いフレームレートで描画される領域が混在した画面を生成する技術について説明する。前述したように、パワー決定時やインパクト決定時に操作入力のタイミングを計るための指標として表示する動画像、例えば、プレイヤーズキャラクタの動作や収縮する図形は、その他の領域よりも高いフレームレートで表示される。
【００５５】
操作入力を検知する時間間隔を細かくすればするほど、パワーやインパクトを高精度で決定することができるが、このとき、タイミングを計るための指標となる動画像も、同じレートで更新されるのが望ましい。例えば、ＣＰＵの割り込み処理により入力受付部３０が操作入力を受け付けたか否かを検知する場合、ＣＰＵの割り込み処理が１秒間に６０回のレートで行われるのであれば、指標となる動画像も同様に１秒間に６０フレームのレートで更新されるのが望ましい。
【００５６】
しかし、画面全体を１秒間に６０フレームのレートで更新すると、画面生成部６６における３次元ポリゴンデータのレンダリングの量が多くなり、ＣＰＵに多くの負担がかかり、追随できなくなる可能性もある。したがって、本実施の形態では、タイミングを計るための指標となる領域を、操作入力を検知するタイミングと同程度に高いレートで画像を生成しつつ、その他の領域はより低いレートで生成することにより、レンダリングの量を抑えつつ、精度の高いユーザインタフェースを実現する。
【００５７】
ここでは、ホールの地形などを示す画像や、プレイヤーズキャラクタなどの画像は３０フレーム毎秒で描画し、タイミングの指標となる動画像は６０フレーム毎秒で描画する例について説明する。画面生成部６６は、まず、ホールの地形やプレイヤーズキャラクタなどの３次元データを取得してレンダリングした後、タイミングの指標となる動画像を追加描画して画面を生成するが、便宜上、３０フレーム毎秒で描画される領域を「低レート領域」、６０フレーム毎秒で描画される領域を「高レート領域」と呼ぶ。低レート領域は、高レート領域の２フレーム分ごとに１回更新されることになる。
【００５８】
図１２は、高いフレームレートで描画される領域と低いフレームレートで描画される領域が混在した画面の例を示す。図１２は、パワー決定部４４又はインパクト決定部４５がショットのパワー又はインパクトを決定するためのユーザインタフェースとして、プレイヤーズキャラクタがショットを行っている様子と、パワー又はインパクトを決定するための指標となるゲージ１４０を表示した例を示す。この画面において、ショットの動作は３０フレーム毎秒で描画され、ゲージ１４０は６０フレーム毎秒で描画される。従来は、パワーやインパクトを決定している間はキャラクタは静止したままとし、パワーとインパクトが決定されてからキャラクタがショットを行う動画像を表示するユーザインタフェースが一般的であったが、本実施の形態の技術によれば、パワーやインパクトを決定するときに、ゲージ１４０とともに、プレイヤーズキャラクタがショットを行う様子も表示し、双方を指標として提供することができる。また、ゲージ１４０をより高いフレームレートで描画することにより、レンダリング処理の負荷の増大を抑えつつ、精度の高いユーザインタフェースを提供することができる。プレイヤーは、必要に応じて、キャラクタのショットの動作とゲージ１４０の動きのいずれか一方又は双方を指標とすることができる。例えば、より精度の高い指標を求めるのであれば、ゲージ１４０の動きを指標とすればよい。
【００５９】
バッファメモリ６２ａ及び６２ｂは、それぞれが１フレームの画面のデータを格納可能な容量を有する。画面生成部６６は、まず、複数のバッファメモリ６２ａ及び６２ｂのうちのいずれか１つに、低レート領域の画面を生成したデータを格納し、それを他のバッファメモリに複製する。その後、画面生成部６６は、高レート領域の画面を生成したデータのそれぞれを順次それぞれのバッファメモリ６２ａ、６２ｂに追加することにより、高レート領域と低レート領域が混在した画面を生成する。
【００６０】
図１３は、画面生成部６６が画面を生成して表示させる手順を説明するためのタイミングチャートである。画面生成部６６は、低レート領域の画面「１」をバッファメモリ６２ａに描画し、バッファメモリ６２ｂに複製した後、高レート領域の１フレーム目の画面「Ａ」をバッファメモリ６２ａに追加描画し、１フレーム目の画面「１Ａ」を完成させてＶＲＡＭ６７へ転送する。そして、バッファメモリ６２ａに格納されている１フレーム目の画面「１Ａ」が表示装置６８に表示されている間に、高レート領域の２フレーム目の画面「Ｂ」をバッファメモリ６２ｂに追加描画する。１フレーム目の画面「１Ａ」の表示が終了すると、バッファメモリ６２ｂに格納されている２フレーム目の画面「１Ｂ」をＶＲＡＭ６７に転送し、表示装置６８に表示させる。２フレーム目の画面「１Ｂ」が表示されている間に、既に表示が終わっている１フレーム目のデータが格納されているバッファメモリ６２ａに、次の低レート領域の画面「２」を描画する。バッファメモリ６２ｂから２フレーム目の画面「１Ｂ」のデータがＶＲＡＭ６７へ転送されると、バッファメモリ６２ａに描画した次の低レート領域の画面「２」をバッファメモリ６２ｂへ複製する。２フレーム目の画面「１Ｂ」の表示が終了するまでの間に、バッファメモリ６２ａに高レート領域の次の１フレーム目の画面「Ａ」を追加描画し、２フレーム目の画面「１Ｂ」の表示が終了すると、バッファメモリ６２ａに格納されている次の１フレーム目の画面「２Ａ」をＶＲＡＭ６７に転送する。このような処理を繰り返すことにより、低レート領域と高レート領域が混在した画面を生成して表示することができる。
【００６１】
高レート領域の生成に比較的時間を要する場合は、もう１つ余分にバッファメモリを設けてもよい。この場合、画面生成部６６は、第１のバッファメモリに低レート領域の画面をレンダリングし、第２のバッファメモリにコピーする。その後、第１のバッファメモリに１フレーム目の高レート領域を、第２のバッファメモリに２フレーム目の高レート領域を追加描画して、順次表示させる。１フレーム目と２フレーム目の画面を表示させている間に、第３のバッファメモリに次の低レート領域をレンダリングする。そして、１フレーム目の表示が終了すると、第３のバッファメモリから第１のバッファメモリに次の低レート領域のデータをコピーし、第３のバッファメモリに次の１フレーム目の高レート領域を追加描画する。これにより、２フレーム目の画面のデータがＶＲＡＭ６７へ全て転送されるのを待たずに、次の高レート領域の追加描画を開始することができるので、高レート領域の生成に時間を要する場合であっても、高速に画面を生成することができる。
【００６２】
低レート領域の１フレームに対して、高レート領域を３フレーム以上生成する場合、すなわち、高レート領域のフレームレートが低レート領域のフレームレートの３倍以上である場合は、低レート領域の画面のデータを保持しておくバッファメモリと、それを複製して更に高レート領域の画面を追加描画するための２つのバッファメモリを設けておき、２つのバッファメモリを交互に利用して、低レート領域の画面を複製した後、高レート領域の画面を追加描画し、画面を完成させて表示させればよい。ある低レート領域の１フレームについて、最後から２番目の高レート領域を追加描画したフレームをＶＲＡＭ６７に転送した後に、そのバッファメモリを次の低レート領域の画面を描画するために利用してもよい。
【００６３】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【００６４】
【図１】実施の形態に係るゲーム装置の構成を示す図である。
【図２】プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す図である。
【図３】図３（ａ）（ｂ）は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図４】プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図５】図５（ａ）（ｂ）は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図６】プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図７】図７（ａ）（ｂ）は、プレイヤーズキャラクタがダウンスイングする動作を行っているときのゲーム画面の例を示す図である。
【図８】図８（ａ）（ｂ）は、観客のキャラクタが表示された画面の例を示す図である。
【図９】ゴルフコースにおけるホールのレイアウトを示す図である。
【図１０】経路取得部により決定された移動経路の例を示す図である。
【図１１】移動状況表示部によりキャラクタが移動している状況が表示された画面の例を示す図である。
【図１２】高いフレームレートで描画される領域と低いフレームレートで描画される領域が混在した画面の例を示す図である。
【図１３】画面生成部が画面を生成して表示させる手順を説明するためのタイミングチャートである。
【符号の説明】
【００６５】
１０  ゲーム装置、２０  コントローラ、３０  入力受付部、４０  制御部、４１  ショット制御部、４２  カメラ制御部、４３  ライ表示部、４４  パワー決定部、４５  インパクト決定部、４６  観客制御部、４７  風流物制御部、５０  弾道算出部、５１  スコア管理部、５２  経路取得部、５３  移動状況表示部、６０  パラメータ保持部、６２ａ，６２ｂ  バッファメモリ、６６  画面生成部、６７  ＶＲＡＭ、６８  表示装置、７０  記憶媒体、７２  スピーカ。
【図１】
2008229170.tif 000003
【図２】
2008229170.tif 000004
【図３】
2008229170.tif 000005
【図４】
2008229170.tif 000006
【図５】
2008229170.tif 000007
【図６】
2008229170.tif 000008
【図７】
2008229170.tif 000009
【図８】
2008229170.tif 000010
【図９】
2008229170.tif 000011
【図１０】
2008229170.tif 000012
【図１１】
2008229170.tif 000013
【図１２】
2008229170.tif 000014
【図１３】
2008229170.tif 000015