説明

ゲーム装置、ゲーム制御方法、及びゲーム制御プログラム

【課題】利便性の高いゲーム制御技術を提供する。
【解決手段】ゲーム装置10は、プレイヤーから操作入力を受け付ける入力受付部30と、操作入力のタイミングに応じてゲームを制御する制御部40と、ゲームの画面を生成する画面生成部66とを備え、画面生成部66は、画面のうち、操作入力のタイミングの指標となる第1領域を、その他の第2領域よりも高いフレームレートで生成する。画面生成部66は、バッファメモリ62a又は62bに、第2領域を描画したデータを格納し、それを他方のバッファメモリに複製した後、複数のフレームにおける第1領域を描画したデータのそれぞれを順次それぞれのバッファメモリ62a及び62bに追加することにより、画面を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム制御技術に関し、とくに、ゴルフゲームを制御するゲーム装置、ゲーム制御方法、及びゲーム制御プログラムに関する。
【背景技術】
【0002】
キャラクタを操作してゴルフをプレーするゲームが人気を博している。ゴルフは、現実の世界においても、幅広い年齢層にわたって競技人口が多く、不偏の人気を誇るスポーツである。
【発明の開示】
【発明が解決しようとする課題】
【0003】
数多くのゴルフゲームが市場に出回っているが、もともと競技スタイルがシンプルであるが故に、特色を出すのが難しく、あまり変わり映えのしないものが多い。新鮮な面白さを味わうことのできる特色あるゴルフゲームの開発が望まれている。
【0004】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より娯楽性の高いゲーム制御技術を提供することにある。
【課題を解決するための手段】
【0005】
本発明のある態様は、ゲーム制御プログラムに関する。このゲーム制御プログラムは、プレイヤーから操作入力を受け付ける機能と、前記操作入力のタイミングに応じてゲームを制御する機能と、前記ゲームの画面を生成する機能と、をコンピュータに実現させ、前記画面を生成する機能は、前記画面のうち、前記操作入力のタイミングの指標となる第1領域を、その他の第2領域よりも高いフレームレートで生成することを特徴とする。
【0006】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0007】
本発明によれば、より娯楽性の高いゲーム制御技術を提供することができる。
【発明を実施するための最良の形態】
【0008】
実施の形態に係るゲーム装置は、プレイヤーが操作するプレイヤーズキャラクタが、球を打撃する形式の球技を行うゲームを実現する。本実施の形態では、とくに、ゴルフを例にとって説明する。
【0009】
図1は、実施の形態に係るゲーム装置10の構成を示す。ゲーム装置10は、コントローラ20、入力受付部30、制御部40、パラメータ保持部60、バッファメモリ62a及び62b、画面生成部66、VRAM67、表示装置68、記憶媒体70、及びスピーカ72を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0010】
入力受付部30は、プレイヤーが操作するコントローラ20から入力される制御信号を受け付ける。制御部40は、ゴルフゲームのプログラムが格納された記憶媒体70からプログラムを読み出して実行し、入力受付部30が受け付けたプレイヤーからの操作入力に基づいて、ゲーム世界においてゴルフプレイヤーとして機能するプレイヤーズキャラクタの動作を制御しつつ、ゴルフゲームを進行させる。パラメータ保持部60は、ゴルフゲームの進行に必要なパラメータを保持する。画面生成部66は、制御部40により制御されるゲームの画面を生成し、VRAM67を介して表示装置68に表示させる。スピーカ72は、制御部40により制御されるゲームの音声を出力する。
【0011】
ショット制御部41は、プレイヤーズキャラクタによるショットを制御する。ショット制御部41は、カメラ制御部42、ライ表示部43、パワー決定部44、及びインパクト決定部45を含む。
【0012】
図2は、プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す。画面100には、プレー中のホールの地形がレンダリングされた画像と、プレイヤーズキャラクタを後方から見た画像と、ライの状態を示す領域102が表示されている。プレイヤーは、この画面において、コントローラ20を操作してショットのパワーとインパクトを決定し、プレイヤーズキャラクタにショットを行わせる。
【0013】
カメラ制御部42は、画面生成部66がゲーム画面を生成する際のカメラの視点位置及び視線方向を制御する。カメラ制御部42は、プレイヤーズキャラクタがショットを行うときのゲーム画面を生成する場合、初期設定として、プレイヤーズキャラクタの後方に視点位置を設定し、プレイヤーズキャラクタを見る方向に視線方向を設定する。プレイヤーは、ホールの地形を確認したり、ショットする方向や距離などを判断したりするために、コントローラ20を操作して視点位置や視線方向を変更することができる。カメラ制御部42は、後述するように、プレイヤーからの操作入力に応じて、カメラの視点位置及び視線方向を変更し、画面生成部66に通知する。
【0014】
ライ表示部43は、プレイヤーズキャラクタがボールをショットするときに、ボールが接地している位置の地面の状態を表示する。このとき、ライ表示部43は、地面の高い方から低い方へ向かってオブジェクトが移動する様子を表示することにより、地面の傾斜の状態を表現する。例えば、ライ表示部43は、図2に示すように、ボールが接地している位置の地面104を四角形に切り取って斜め上方から俯瞰した斜視図を表示し、四角形の各辺において粒子106が移動する様子を表示してもよい。このとき、粒子106の速度は、地面104の傾きが大きいほど速く、傾きが小さいほど遅くなるようにする。粒子106の速度は、ボールが接地している位置のライの状態を反映するように変化させてもよい。例えば、フェアウェイ、ラフ、バンカー、カート道などで粒子106の速度を異ならせてもよい。また、グリーン上において、芝目や芝の状態などを更に考慮して粒子106の速度を決定してもよい。なお、プレイヤーがショットやパットの狙いを定めるために、ボールの着地点又は到達地点付近が表示されるようにカメラの視点位置や視線方向を変更させたときに、ボールの着地点又は到達地点付近の所定領域にグリッドを表示し、グリッドに沿って粒子が流れるような画面を表示してもよい。この場合も、その領域の地形や、ライの状態、グリーンの芝目などに応じて、粒子の速度を決定してもよい。粒子106の速度が速過ぎたり遅過ぎたりするとプレイヤーが視認しにくくなってしまうので、例えば、0.5秒で1周する速度を上限値とし、10秒で1周する速度を下限値としてもよい。これにより、画面の水平方向の傾斜だけでなく、奥行き方向の傾斜も視覚的に分かりやすく表現することができるので、プレイヤーはライの状態を的確に把握し、ショットに反映させることができる。後述するように、本実施の形態のゴルフゲームでは、ボールの接地面の傾斜角を考慮した物理計算により、ショットされたボールの弾道を算出しているので、ボールの接地面の傾斜角を分かりやすく表示することがとくに重要となる。
【0015】
パワー決定部44は、プレイヤーズキャラクタのショットのパワーを決定する。パワー決定部44は、ショットを開始する指示が割り当てられた操作入力をコントローラ20から受け付けると、画面生成部66に、プレイヤーズキャラクタがボールをショットするためにテークバックする動作を行っている画面を生成させ、表示装置68に表示させる。プレイヤーは、プレイヤーズキャラクタがテークバックする動作の進行の度合いを指標として、パワーを決定する指示が割り当てられた操作入力をコントローラ20により行う。パワー決定部44は、パワーを決定するための操作入力を受け付けた時点におけるプレイヤーズキャラクタのショットする動作の進行の度合いに応じて、ショットのパワーを決定する。パワー決定部44は、決定したパワーを弾道算出部50に通知する。
【0016】
パワー決定部44は、フルスイングするときのテークバックする動作に要する時間と、テークバックを開始してからパワーを決定するための操作入力を受け付けるまでの時間又は表示画面のフレーム数との比に基づいて、ショットのパワーを決定する。例えば、テークバックを開始する時点でのパワーを0%、トップスイングの時点でのパワーを100%として、操作入力を受け付けた時点でのパワーを内分により決定してもよい。フルスイングに要する時間が2秒で、テークバック開始から1.6秒後に操作入力を受け付けた場合、パワーを80%としてもよい。また、フルスイングの動作を表示するときのフレーム数が100フレームで、テークバック開始から70フレーム後に操作入力を受け付けた場合、パワーを70%としてもよい。パワー決定部44は、プレイヤーがタイミングを計るための指標として、パワーが所定の値、例えば50%、100%に達したときに、その旨を表示したり、クラブヘッドの表示態様を変更したりしてもよい。
【0017】
図3(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。図3(a)は、プレイヤーズキャラクタがテークバックを開始してから、フルスイングに要する時間の半分の時間が経過したときの状態を示す。この時点でプレイヤーから操作入力を受け付けると、パワー決定部44は、ショットのパワーを50%と決定する。図3(b)は、プレイヤーズキャラクタがトップオブスイングに至った状態を示す。この時点でプレイヤーから操作入力を受け付けると、パワー決定部44は、ショットのパワーを100%と決定する。
【0018】
パワー決定部44は、テークバック中に操作入力を受け付けたときに、その時点でテークバックを終了してダウンスイングに移行させてもよいし、パワーが決定された後も引き続きテークバックを行わせ、フルスイングする様子を表示させてもよい。パワー決定部44は、テークバック中に操作入力を受け付けずにトップスイングに至った場合、素振りであったことにしてショットを行わないようにしてもよいし、ダウンスイング中はパワーが降下するものとして引き続き操作入力を受け付け、ダウンスイングを開始してから操作入力を受け付けるまでの時間に応じてパワーを決定してもよい。
【0019】
パワー決定部44は、ライの状態や、バンカーショットにおけるバンカーの地形、プレイヤーズキャラクタのスタンスなどによっては、フルスイングしても100%のパワーを達成できないようにしてもよい。また、アプローチショットなどの場合に、プレイヤーズキャラクタにフルスイングさせず、ハーフスイングしかできないようにしてもよい。このような場合であっても、上記のようにプレイヤーズキャラクタに素振りをさせる機能を設けることにより、プレイヤーは、まずはプレイヤーズキャラクタに素振りをさせてスイングとパワーとの関係を確認してから、ショットを行うことができる。
【0020】
従来は、ゴルフゲームにおいてショットのパワーを決定する際に、プレイヤーズキャラクタは静止した状態のままとし、パワーの状態を示すゲージなどを指標として表示する例が多かった。本実施の形態では、プレイヤーズキャラクタがショットする動作を高速かつ高フレームレートで生成することにより、ショット動作を指標としたユーザインタフェースを実現している。これにより、より現実感の高いゴルフゲームを実現することができる。ショット動作を高速かつ高フレームレートで生成して表示するための技術については、後で詳述する。
【0021】
パワー決定部44は、プレイヤーズキャラクタがショットするときのテークバック動作の進行の度合いが所定の値に達したときに、その旨を示す音をスピーカ72に出力する。パワー決定部44は、所定の値を複数設定し、それぞれ異なる音を出力してもよい。例えば、パワーが20%、40%、60%、80%、100%となる時点で、それぞれ、ド、レ、ミ、ファ、ソの音階の音を出力してもよい。
【0022】
図4は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。プレイヤーズキャラクタがパッティングを行うとき、どの程度テークバックをとるのかが事前に分かりにくいので、プレイヤーがパワーを決定するための操作入力を行うタイミングを計りづらい。したがって、パワー決定部44は、パワーが20%、40%、60%、80%、100%となる時点で、それぞれ、ド、レ、ミ、ファ、ソの音階の音をスピーカ72に出力する。これにより、プレイヤーは、スピーカ72から発生される音のリズムに合わせて、ショットのパワーを決定するための操作入力のタイミングを計ることができるので、操作性のよいユーザインタフェースを実現することができる。
【0023】
カメラ制御部42は、プレイヤーズキャラクタがショットを行うときのゲーム画面を表示しているときに、プレイヤーからの指示入力に応じて、画面を生成する際の視点位置又は視線方向を変更するよう、画面生成部66に指示する。ボールの周辺の地形や障害物などの状態によっては、プレイヤーズキャラクタのテークバック動作が見づらい可能性がある。このとき、プレイヤーがパワーを決定するための操作入力を行うタイミングを計りづらくなってしまうので、カメラ制御部42は、プレイヤーズキャラクタのテークバック動作が見やすいように、カメラの視点位置又は視線方向を変更する。
【0024】
図5(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。図5(a)に示すように、木などの障害物が邪魔になり、プレイヤーズキャラクタを後方から見た画面では、テークバック動作が見づらい場合がある。このとき、プレイヤーは、コントローラ20の方向キーなどを用いて、カメラの視点位置又は視線方向を切り替える操作入力を行う。カメラ制御部42は、プレイヤーからの操作入力に応じて、図5(b)に示すように、プレイヤーズキャラクタのテークバック動作が見やすい画面となるように、カメラの視点位置又は視線方向を変更する。図5(b)に示すように、プレイヤーズキャラクタの側方に視点位置を設定することにより、プレイヤーズキャラクタのテークバック動作の進行の度合いがより分かりやすくなり、操作性の良いユーザインタフェースを実現することができる。
【0025】
カメラ制御部42は、自動的に、プレイヤーズキャラクタのテークバック動作が見やすい位置にカメラの視点位置を移動させてもよい。とくに、プレイヤーズキャラクタがパッティングを行う場合は、テークバック動作が小さく、プレイヤーズキャラクタの後方から見てもパターの動きが分かりづらいので、カメラ制御部42は、図4に示したように、プレイヤーズキャラクタの側方にカメラの視点位置を切り替えてもよい。
【0026】
パワー決定部44は、プレイヤーズキャラクタがボールをショットするときのパワーを決定するための操作入力を受け付けるときに、その時点でのパワーでショットした場合のボールの軌跡又は到達位置を表示してもよい。前述したように、とくにパッティングの際には、テークバック動作を指標としたタイミングの調整が難しく、短いパットであっても徒に難易度が高くなってしまう可能性があるので、ボールの軌跡又は到達位置を表示することにより、プレイヤーがパワーを決定するための操作入力を行う際のタイミングを計りやすくする。
【0027】
図6は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。パワー決定部44は、ボールの現在位置からカップまでの距離が所定の値、例えば5メートルよりも短いときに、その時点でのパワーでパットしたときのボールの到達位置を示す円110を表示してもよい。ただし、グリーンの地形や芝目などを加味せず、その時点でのパワーでパットしたボールが平地を直線的に転がった場合の到達位置を表示するようにしてもよい。これにより、難易度が低くなり過ぎない程度にパッティングの際の操作入力を補助することができる。長い距離のパットは、現実の世界でも難易度が高いので、例えば5メートル以上のパットは補助を行わないことで、難易度を高く設定する。パワー決定部44は、ボールの現在位置から到達位置までの距離が長くなるにしたがって薄い色で円110を表示してもよい。また、パワー決定部44は、ボールの現在位置から到達位置までの距離が所定の値、例えば2.5メートルよりも短いときに、円110を表示してもよい。5メートル未満のパットは、到達距離が2.5メートルになるまでの間に限って、徐々に色を薄くしてフェードアウトするように円110を表示することで、難易度が低くなり過ぎない程度に補助を行う。残りの距離が2.5メートル未満である場合、地形や芝目の影響がないのであれば、円110がカップに重なる瞬間に操作入力を行えばボールがカップに入るようにパッティングを行うことができるので、プレイヤーはボールからカップまでの地形や芝目を考慮してタイミングを微調整すればよい。これにより、現実的な難易度に設定することができ、ゲームの娯楽性を向上させることができる。
【0028】
インパクト決定部45は、プレイヤーズキャラクタのショットのインパクトを決定する。インパクト決定部45は、パワー決定部44によりショットのパワーが決定された後、画面生成部66に、プレイヤーズキャラクタがダウンスイングする動作を行っている画面を生成させ、表示装置68に表示させる。プレイヤーは、プレイヤーズキャラクタがダウンスイングしてボールを打撃するタイミングに合わせて、インパクトを決定する指示が割り当てられた操作入力をコントローラ20により行う。インパクト決定部45は、プレイヤーズキャラクタがダウンスイングしてボールを打撃する時点と、インパクトを決定するための操作入力を受け付けた時点との時間差に応じて、ショットのインパクトを決定する。インパクト決定部45は、決定したインパクトを弾道算出部50に通知する。このとき、インパクトが100%になる瞬間よりも速く操作入力を受け付けた場合はマイナス、遅い場合はプラスの符号をつけるなどして、タイミングが速かったのか遅かったのかを表現してもよい。
【0029】
インパクト決定部45は、タイミングをとるための指標の補助として、画面生成部66に、時間の経過にしたがって収縮し、プレイヤーズキャラクタがボールを打撃する時点、すなわち、最も高いインパクトでショットすることができる時点で最小となる図形を含む画面を生成させ、表示装置68に表示させる。プレイヤーは、収縮する図形を更に指標として、インパクトを決定するための操作入力を行うことができる。インパクト決定部45は、ボールの位置を中心又は重心とした図形を表示し、ボールの位置に収束するように収縮させてもよい。これにより、プレイヤーが、プレイヤーズキャラクタがダウンスイングしている様子と、図形が収縮する様子の双方を視認しながら操作を行うことができ、より操作性の良いユーザインタフェースを実現することができる。
【0030】
インパクト決定部45は、例えば、プレイヤーズキャラクタがボールを打撃する時点、すなわち時間差がゼロである時点でのインパクトを100%、時間差が所定の上限値となる時点でのインパクトを所定の下限値として、操作入力を受け付けた時点でのインパクトを内分により決定してもよい。後述するように、弾道算出部50では、インパクト決定部45により決定されたインパクトの値が低いほど、狙った着地点から大きく外れるように、飛距離や方向などが補正される。インパクト決定部45は、プレイヤーズキャラクタのダウンスイングがボールを通過した後、操作入力を受け付けずに時間差が所定の上限値を超えた場合、素振りであったことにしてショットを行わないようにしてもよいし、インパクトを自動的に所定の下限値に設定してショットを行わせてもよい。
【0031】
図7(a)(b)は、プレイヤーズキャラクタがダウンスイングする動作を行っているときのゲーム画面の例を示す。図7(a)は、プレイヤーズキャラクタがダウンスイングを開始したときの状態を示す。インパクト決定部45は、タイミングを計るための指標の補助として円120を表示している。また、インパクトが下限値となるときの円120の直径を示す図形122と、インパクトが上限値、例えば100%となるときの円120の直径を示す図形124とを表示している。円120の直径が図形122が示す直径よりも大きいときに操作入力を受け付けた場合、インパクト決定部45は、インパクトを所定の下限値に設定してもよい。また、この場合、後述するように、弾道算出部50は、このショットをミスショットとして扱ってもよい。円120の直径が図形124が示す直径よりも小さいときに操作入力を受け付けた場合、インパクト決定部45は、インパクトを所定の上限値、例えば100%に設定してもよい。円120の直径が図形122が示す直径よりも小さく、図形124が示す直径よりも大きいときに操作入力を受け付けた場合、インパクト決定部45は、操作入力を受け付けたタイミングに応じて、所定の上限値と下限値の間の値を設定してもよい。図7(b)は、プレイヤーズキャラクタがボールを打撃する直前の状態を示す。インパクト決定部45は、円120を収縮させ、プレイヤーズキャラクタがボールを打撃する瞬間に最小となるようにする。インパクト決定部45は、プレイヤーズキャラクタがボールを打撃する瞬間まで操作入力を受け付けなかった場合、それ以降は円120を膨張させてもよい。この場合も、円120の直径が図形124が示す直径よりも小さい間はインパクトを上限値とし、図形122が示す直径よりも大きくなるとインパクトを下限値としてもよい。円120が図形122が示す直径よりも大きくなった時点でも操作入力を受け付けなかった場合は、自動的にインパクトを下限値に設定してショットを行わせてもよい。別の例として、インパクト決定部45は、円120の直径が図形122が示す直径よりも大きいときはインパクトを下限値とし、直径が小さくなるほどインパクトが大きくなるようにし、図形124が示す直径と同じときにインパクトを上限値としてもよい。そして、それ以降は、円120の直径が図形124が示す直径よりも小さくなるにつれてインパクトが徐々に小さくなるようにしてもよい。
【0032】
更に別の例として、インパクト決定部45は、時間の経過にしたがって左右又は上下に、或いは任意の直線又は曲線上を移動する図形と、インパクトが最大となる図形の位置とを示すゲージを表示させ、プレイヤーが操作入力を行うタイミングをとるための指標としてもよい。また、インパクト決定部45は、コントローラ20のアナログスティックを倒す角度、速度、圧力などに応じてショットのインパクトやパワーを決定してもよい。
【0033】
弾道算出部50は、ショット制御部41により決定されたショットのパワー及びインパクトと、ボールのライ、風、地形などの外部要因に基づいて、ショットされたボールの弾道を物理計算により算出する。
【0034】
弾道算出部50は、ショットに用いたクラブに応じて予め設定された初速度及びロフト角をパラメータ保持部60から読み出す。弾道算出部50は、読み出した初速度に、パワー決定部44により決定されたパワー、インパクト決定部45により決定されたインパクト、プレイヤーズキャラクタごとに設定された体力などの属性値、ボールのライなどに応じて初速度又はロフト角を調整する。例えば、パワーやインパクトが高いほど初速度が速くなるように、パワーやインパクトの%値を初速度に乗じてもよい。また、インパクトの値が小さいほど狙った着地点からずれるように、ボールの飛ぶ方向や速度などを調整してもよい。例えば、インパクトが100%になる瞬間よりも速く操作入力を受け付けた場合はボールの軌道を右に曲げてスライスボールとし、遅い場合は左に曲げてフックボールとしてもよい。また、インパクトが所定の下限値以下であった場合は、ミスショットとして扱い、極端に初速度を小さくして弾道を算出してもよい。ラフやバンカーの場合は、フェアウェイよりも初速度を低くしてもよい。また、ボールの接地面の傾斜が大きければ初速度を低くしてもよい。ショットの際にプレイヤーが初速度やロフト角を変更する操作入力を行った場合には、さらにその影響を考慮して初速度やロフト角を調整してもよい。
【0035】
弾道算出部50は、初速度とロフト角を決定すると、ボールに作用する力に応じて速度を調整しつつ、ボールの位置をフレームごとに算出する。弾道算出部50は、ボールの現在位置の座標に対して、フレームを単位とした速度を加算し、次のフレームにおけるボールの位置の座標を算出する。ボールの速度には、フレームごとに、重力、揚力、風力、空気抵抗が加算される。重力については、物理法則に則って、下向きに、9.8メートル毎秒毎秒とする。揚力は、上向きに、速度に比例する値とする。風力は、ホールの全ての場所において一定方向に一定速度としてもよいし、場所に応じて変化させてもよい。空気抵抗は、進行方向と逆向きに、速度に比例する値とする。このように、風の方向及び速度を考慮してボールの弾道を算出することにより、現実のゴルフと同様に、風の影響を考慮しながらショットを行う難しさを演出することができ、よりリアリティのあるゴルフゲームを実現することができる。
【0036】
ボールが何かに衝突した場合は、衝突した面の属性に応じて予め設定された摩擦係数及び反発係数にしたがって、水平方向及び垂直方向の速度を調整する。摩擦係数及び反発係数は、フェアウェイ、ラフ、バンカーなどによって異なる値を設定してもよい。弾道算出部50は、さらに、演出効果として、物理法則とは関係のない特殊な演算を弾道に与えてもよい。これにより、ゴルフゲームに変化を持たせ、ゲームの娯楽性を向上させることができる。
【0037】
画面生成部66は、弾道算出部50により算出されたボールの位置に応じて、ボールが画面に入るようにカメラの視点位置及び視線方向を設定し、ボールが飛ぶ様子を示す画面を生成して、表示装置68に表示する。ボールが停止すると、次のショットに移る。
【0038】
風流物制御部47は、風の影響を受けて動くオブジェクトの動きを制御する。風流物制御部47は、ゲーム画面に含まれる、風にあおられながら舞い落ちてくる葉、ラフでショットした後に舞う芝、ティインググラウンドで風の状態をみるためにまく芝などの面状のオブジェクト(以下、これらをまとめて「風流物」という)を描画する際に、風の方向及び速度と、風流物の面の方向とに基づいて、その挙動を物理計算により算出する。これにより、風の影響や空気抵抗を表現することができるので、現実に近い挙動をシミュレーションすることができる。
【0039】
風流物制御部47は、風流物が板状のオブジェクトであると仮定して物理計算を行う。板の平らな面がZ軸方向を向いているものとし、各変数を以下のように定義する。
板の回転角度:x, y, z
板の位置ベクトル:pos
板の速度ベクトル:v
フレームごとに発生する下向きの速度(定数):vg
フレームごとに風により発生する速度:vw
面の抵抗値(0.0〜1.0、0.0が抵抗なし):r
【0040】
計算方法は以下の通りである。
1.まず、板の回転角度x,y,zにランダムな回転を加えて、行列Mを生成する。このとき、風流物が現実的な範囲で回転しているように見せるために、値を調整してもよい。
x += random();
y += random();
z += random();
M = Matrix4::rotationZYX(Vector3(x, y, z));
2.vにvwとvgを加える。
v += vw + vg;
3.vを、M.z(MのZ成分)に平行な成分とそれに垂直な成分の二つのベクトルvh(平行)、vv(垂直)に分離する。
vh = dot(M.z, v) * M.z;
vv = v - vh;
4.vhに抵抗値を掛けたあと、vvを足して、vに格納する。vhは板に垂直な速度成分なので、抵抗値を掛けて面抵抗を表現する。
v = vh * r + vv;
5.vをposに加算する。
pos += v;
以上の1から5の手順を繰り返すことにより、面状のオブジェクトが風に舞って落下する様子をリアルに再現することができる。
【0041】
前述したように、本実施の形態のゴルフゲームでは、弾道算出部50において、風の影響を考慮した物理計算によりボールの弾道を算出しているため、ショットに先立って風の方向や速度を把握することが重要である。風に舞う面状のオブジェクトを描画する際に、風の方向及び速度を考慮した物理計算によりオブジェクトの挙動をシミュレーションすることにより、風の方向や速度をより精確に表現することができる。これにより、プレイヤーは、現実のゴルフと同様に、葉や芝などが舞う様子を見て風の方向及び速度を把握することができるので、よりリアリティ性のあるゴルフゲームを実現することができる。
【0042】
観客制御部46は、カメラ制御部42により視点位置又は視線方向が変更されたときに、プレイヤーズキャラクタのプレーを観覧する観客のキャラクタが、視点位置から所定の距離の範囲内に存在する場合、又は、視線方向から所定の角度の範囲内に存在する場合、観客のキャラクタが所定の範囲から外れるように移動させる。このとき、観客制御部46は、プレイヤーズキャラクタがプレーしているホールの地形を示すデータを取得し、地形に基づいて観客のキャラクタを移動させる方向を決定する。
【0043】
図8(a)(b)は、観客のキャラクタが表示された画面の例を示す。観客制御部46は、観客のキャラクタの観覧位置とキャラクタのポリゴンデータを取得し、画面生成部66に観客のキャラクタ130を含む画面を生成させる。図8(a)に示すように、画面の端付近に観客のキャラクタ130が表示されているときには、観客制御部46は、観客のキャラクタ130を移動させなくてもよい。図8(b)に示すように、観客のキャラクタ130が画面の中央付近の所定の角度、距離の範囲内に表示されるように視点位置又は視線方向が変更されたとき、観客制御部46は、観客のキャラクタ130を所定の範囲から外れるように移動させる。このように、観客が、カメラが自分の方向を撮影している、又は、プレイヤーズキャラクタが自身の方向を狙っているのに気付いて、急いで逃げていくような状況を演出することにより、今までにない新鮮な楽しさを提供することができる。観客制御部46は、観客のキャラクタ130がカメラに気付いて驚く様子を表示させてから、逃げていく様子を表示させてもよい。観客制御部46は、ホールの地形を示すデータを参照して、観客のキャラクタ130がフェアウェイに入らないように制御してもよい。図8(b)に示した例では、観客のキャラクタ130を左へ移動させるとフェアウェイに入ってしまうので、右へ移動させている。
【0044】
スコア管理部51は、プレイヤーズキャラクタのスコアを管理する。スコア管理部51は、プレイヤーズキャラクタがホールアウトすると、そのホールのスコアをパラメータ保持部60に記録する。また、スコア管理部51は、プレイヤーズキャラクタがホールアウトして、次のホールのティーショットを行うまでの間に、スコアボードを表示する。
【0045】
経路取得部52は、ホールアウトしたプレイヤーズキャラクタが、次のホールのティーインググラウンドへ移動する経路と、観客のキャラクタが次のホールの観覧位置へ移動する経路を取得する。移動状況表示部53は、プレイヤーズキャラクタがホールアウトした後に、プレイヤーズキャラクタや観客のキャラクタが、経路取得部により取得された経路に沿って移動する様子を表示する。
【0046】
経路取得部52は、記憶媒体70に格納されている予め設定された経路を取得してもよいし、記憶媒体70からホールの地形を示すデータを取得して、自動的に経路を決定してもよい。例えば、経路取得部52は、プレイヤーズキャラクタがホールアウトしたホールのグリーン及び次のホールのティーインググラウンドの位置を示すデータを取得し、それらに基づいてプレイヤーズキャラクタの経路を決定してもよい。また、経路取得部52は、観客のキャラクタの現在位置と次のホールの観覧位置を示すデータを取得し、それらに基づいて観客のキャラクタの経路を決定してもよい。
【0047】
経路取得部52は、ホール及びホール間の地形を示すデータを取得し、地形に基づいて通過しやすさを判定し、通過しにくい場所を回避し、通過しやすい場所を優先的に選択して経路を決定してもよい。例えば、所定の高さ以上の段差、所定の角度以上の傾斜面、池や川、バンカー、木などの障害物は通過しにくく、カート道、平坦な面などは通過しやすい場所であると判定してもよい。所定のルールでホール間に複数の経由地点の候補を設定し、それらの経由地点を通過する経路のうち、最も通過しやすい経路を選択してもよい。例えば、現在位置、経由地点、目的地を含む有向グラフを生成し、各辺に対して通過しやすさを示すスコアをつけ、最適経路問題を解くことにより経路を決定してもよい。
【0048】
経路取得部52は、近い位置にいる複数のキャラクタをグループ化して経路を決定してもよい。これにより、観客のキャラクタを多く配した場合であっても、経路を算出する際の負荷を軽減することができる。また、現実の世界においても、近い位置にいる観客は同じ経路を通って次のホールへ移動することが多いので、より自然な形で観客が移動する様子を表示することができる。
【0049】
経路取得部52は、キャラクタの属性に応じて、異なる判断基準で経路を決定してもよい。例えば、プレイヤーズキャラクタはフェアウェイを通過してもよいが、観客のキャラクタはフェアフェイの通過を禁止してもよい。経路取得部52は、通過しやすさを判定する際に、キャラクタの属性に応じて、異なるスコアをつけてもよい。
【0050】
移動状況表示部53は、プレイヤーズキャラクタがホールアウトした後、スコア管理部51がプレイヤーズキャラクタのスコアを画面に表示している背景で、プレイヤーズキャラクタが経路に沿って移動する様子を表示する。移動状況表示部53は、カメラの視点位置と視線方向を設定して、設定した視点位置から視線方向に見た画像を画面生成部66に生成させる。移動状況表示部53は、視点位置又は視線方向を変更してもよい。例えば、移動するキャラクタに追随して、キャラクタが画面に含まれるように視点位置又は視線方向を変更してもよい。これにより、特定のキャラクタに追随してホール間の移動を表示するなど、斬新な演出で新鮮な楽しさを提供することができる。
【0051】
図9は、ゴルフコースにおけるホールのレイアウトを示す。本実施の形態では、各ホールの地形を示すデータだけでなく、ホール間の位置関係を示すデータが用意され、記憶媒体70に格納されている。経路取得部52は、記憶媒体70からホールのレイアウトを示すデータを取得し、プレイヤーズキャラクタや観客のキャラクタの移動経路を決定する。
【0052】
図10は、経路取得部52により決定された移動経路の例を示す。経路取得部52は、ホール及びホール間の地形を示すデータを記憶媒体70から取得し、キャラクタが通過しにくい場所を回避し、通過しやすい場所を優先して経路を決定する。
【0053】
図11は、移動状況表示部53によりキャラクタが移動している状況が表示された画面の例を示す。スコア管理部51によりスコアボードが表示されている背景で、移動状況表示部53によりプレイヤーズキャラクタとキャディが経路に沿って歩いている様子が表示されている。このとき、プレイヤーズキャラクタとキャディが会話している様子を表示してもよい。また、最終ホールをホールアウトした後に、プレイヤーズキャラクタ、キャディ、観客のキャラクタなどが、表彰イベントを行う専用のグリーンに向かって歩いていく様子を表示してもよい。
【0054】
次に、高いフレームレートで描画される領域と低いフレームレートで描画される領域が混在した画面を生成する技術について説明する。前述したように、パワー決定時やインパクト決定時に操作入力のタイミングを計るための指標として表示する動画像、例えば、プレイヤーズキャラクタの動作や収縮する図形は、その他の領域よりも高いフレームレートで表示される。
【0055】
操作入力を検知する時間間隔を細かくすればするほど、パワーやインパクトを高精度で決定することができるが、このとき、タイミングを計るための指標となる動画像も、同じレートで更新されるのが望ましい。例えば、CPUの割り込み処理により入力受付部30が操作入力を受け付けたか否かを検知する場合、CPUの割り込み処理が1秒間に60回のレートで行われるのであれば、指標となる動画像も同様に1秒間に60フレームのレートで更新されるのが望ましい。
【0056】
しかし、画面全体を1秒間に60フレームのレートで更新すると、画面生成部66における3次元ポリゴンデータのレンダリングの量が多くなり、CPUに多くの負担がかかり、追随できなくなる可能性もある。したがって、本実施の形態では、タイミングを計るための指標となる領域を、操作入力を検知するタイミングと同程度に高いレートで画像を生成しつつ、その他の領域はより低いレートで生成することにより、レンダリングの量を抑えつつ、精度の高いユーザインタフェースを実現する。
【0057】
ここでは、ホールの地形などを示す画像や、プレイヤーズキャラクタなどの画像は30フレーム毎秒で描画し、タイミングの指標となる動画像は60フレーム毎秒で描画する例について説明する。画面生成部66は、まず、ホールの地形やプレイヤーズキャラクタなどの3次元データを取得してレンダリングした後、タイミングの指標となる動画像を追加描画して画面を生成するが、便宜上、30フレーム毎秒で描画される領域を「低レート領域」、60フレーム毎秒で描画される領域を「高レート領域」と呼ぶ。低レート領域は、高レート領域の2フレーム分ごとに1回更新されることになる。
【0058】
図12は、高いフレームレートで描画される領域と低いフレームレートで描画される領域が混在した画面の例を示す。図12は、パワー決定部44又はインパクト決定部45がショットのパワー又はインパクトを決定するためのユーザインタフェースとして、プレイヤーズキャラクタがショットを行っている様子と、パワー又はインパクトを決定するための指標となるゲージ140を表示した例を示す。この画面において、ショットの動作は30フレーム毎秒で描画され、ゲージ140は60フレーム毎秒で描画される。従来は、パワーやインパクトを決定している間はキャラクタは静止したままとし、パワーとインパクトが決定されてからキャラクタがショットを行う動画像を表示するユーザインタフェースが一般的であったが、本実施の形態の技術によれば、パワーやインパクトを決定するときに、ゲージ140とともに、プレイヤーズキャラクタがショットを行う様子も表示し、双方を指標として提供することができる。また、ゲージ140をより高いフレームレートで描画することにより、レンダリング処理の負荷の増大を抑えつつ、精度の高いユーザインタフェースを提供することができる。プレイヤーは、必要に応じて、キャラクタのショットの動作とゲージ140の動きのいずれか一方又は双方を指標とすることができる。例えば、より精度の高い指標を求めるのであれば、ゲージ140の動きを指標とすればよい。
【0059】
バッファメモリ62a及び62bは、それぞれが1フレームの画面のデータを格納可能な容量を有する。画面生成部66は、まず、複数のバッファメモリ62a及び62bのうちのいずれか1つに、低レート領域の画面を生成したデータを格納し、それを他のバッファメモリに複製する。その後、画面生成部66は、高レート領域の画面を生成したデータのそれぞれを順次それぞれのバッファメモリ62a、62bに追加することにより、高レート領域と低レート領域が混在した画面を生成する。
【0060】
図13は、画面生成部66が画面を生成して表示させる手順を説明するためのタイミングチャートである。画面生成部66は、低レート領域の画面「1」をバッファメモリ62aに描画し、バッファメモリ62bに複製した後、高レート領域の1フレーム目の画面「A」をバッファメモリ62aに追加描画し、1フレーム目の画面「1A」を完成させてVRAM67へ転送する。そして、バッファメモリ62aに格納されている1フレーム目の画面「1A」が表示装置68に表示されている間に、高レート領域の2フレーム目の画面「B」をバッファメモリ62bに追加描画する。1フレーム目の画面「1A」の表示が終了すると、バッファメモリ62bに格納されている2フレーム目の画面「1B」をVRAM67に転送し、表示装置68に表示させる。2フレーム目の画面「1B」が表示されている間に、既に表示が終わっている1フレーム目のデータが格納されているバッファメモリ62aに、次の低レート領域の画面「2」を描画する。バッファメモリ62bから2フレーム目の画面「1B」のデータがVRAM67へ転送されると、バッファメモリ62aに描画した次の低レート領域の画面「2」をバッファメモリ62bへ複製する。2フレーム目の画面「1B」の表示が終了するまでの間に、バッファメモリ62aに高レート領域の次の1フレーム目の画面「A」を追加描画し、2フレーム目の画面「1B」の表示が終了すると、バッファメモリ62aに格納されている次の1フレーム目の画面「2A」をVRAM67に転送する。このような処理を繰り返すことにより、低レート領域と高レート領域が混在した画面を生成して表示することができる。
【0061】
高レート領域の生成に比較的時間を要する場合は、もう1つ余分にバッファメモリを設けてもよい。この場合、画面生成部66は、第1のバッファメモリに低レート領域の画面をレンダリングし、第2のバッファメモリにコピーする。その後、第1のバッファメモリに1フレーム目の高レート領域を、第2のバッファメモリに2フレーム目の高レート領域を追加描画して、順次表示させる。1フレーム目と2フレーム目の画面を表示させている間に、第3のバッファメモリに次の低レート領域をレンダリングする。そして、1フレーム目の表示が終了すると、第3のバッファメモリから第1のバッファメモリに次の低レート領域のデータをコピーし、第3のバッファメモリに次の1フレーム目の高レート領域を追加描画する。これにより、2フレーム目の画面のデータがVRAM67へ全て転送されるのを待たずに、次の高レート領域の追加描画を開始することができるので、高レート領域の生成に時間を要する場合であっても、高速に画面を生成することができる。
【0062】
低レート領域の1フレームに対して、高レート領域を3フレーム以上生成する場合、すなわち、高レート領域のフレームレートが低レート領域のフレームレートの3倍以上である場合は、低レート領域の画面のデータを保持しておくバッファメモリと、それを複製して更に高レート領域の画面を追加描画するための2つのバッファメモリを設けておき、2つのバッファメモリを交互に利用して、低レート領域の画面を複製した後、高レート領域の画面を追加描画し、画面を完成させて表示させればよい。ある低レート領域の1フレームについて、最後から2番目の高レート領域を追加描画したフレームをVRAM67に転送した後に、そのバッファメモリを次の低レート領域の画面を描画するために利用してもよい。
【0063】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【0064】
【図1】実施の形態に係るゲーム装置の構成を示す図である。
【図2】プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す図である。
【図3】図3(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図4】プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図5】図5(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図6】プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図7】図7(a)(b)は、プレイヤーズキャラクタがダウンスイングする動作を行っているときのゲーム画面の例を示す図である。
【図8】図8(a)(b)は、観客のキャラクタが表示された画面の例を示す図である。
【図9】ゴルフコースにおけるホールのレイアウトを示す図である。
【図10】経路取得部により決定された移動経路の例を示す図である。
【図11】移動状況表示部によりキャラクタが移動している状況が表示された画面の例を示す図である。
【図12】高いフレームレートで描画される領域と低いフレームレートで描画される領域が混在した画面の例を示す図である。
【図13】画面生成部が画面を生成して表示させる手順を説明するためのタイミングチャートである。
【符号の説明】
【0065】
10 ゲーム装置、20 コントローラ、30 入力受付部、40 制御部、41 ショット制御部、42 カメラ制御部、43 ライ表示部、44 パワー決定部、45 インパクト決定部、46 観客制御部、47 風流物制御部、50 弾道算出部、51 スコア管理部、52 経路取得部、53 移動状況表示部、60 パラメータ保持部、62a,62b バッファメモリ、66 画面生成部、67 VRAM、68 表示装置、70 記憶媒体、72 スピーカ。

【特許請求の範囲】
【請求項1】
プレイヤーから操作入力を受け付ける機能と、
前記操作入力のタイミングに応じてゲームを制御する機能と、
前記ゲームの画面を生成する機能と、をコンピュータに実現させ、
前記画面を生成する機能は、前記画面のうち、前記操作入力のタイミングの指標となる第1領域を、その他の第2領域よりも高いフレームレートで生成することを特徴とするゲーム制御プログラム。
【請求項2】
前記画面を生成する機能は、それぞれが1フレームの前記画面のデータを格納可能な容量を有する複数のバッファメモリのうちのいずれか1つに、前記第2領域の画面を生成したデータを格納し、それを他のバッファメモリに複製した後、複数のフレームにおける前記第1領域の画面を生成したデータのそれぞれを順次それぞれのバッファメモリに追加することにより、前記画面を生成することを特徴とする請求項1に記載のゲーム制御プログラム。
【請求項3】
前記画面を生成する機能は、あるバッファメモリに格納されている画面が表示されている間に、後続のフレームにおける前記第1領域の画面を生成して別のバッファメモリに追加することを特徴とする請求項2に記載のゲーム制御プログラム。
【請求項4】
前記画面を生成する機能は、あるバッファメモリに格納されている画面が表示された後、後続の画面が表示されている間に、次の前記第2領域の画面を生成して、既に表示された画面のデータが格納されているバッファメモリに格納することを特徴とする請求項2又は3に記載のゲーム制御プログラム。
【請求項5】
前記操作入力を受け付ける機能は、前記第1領域のフレームレートと同じレートで前記プレイヤーから操作入力を受け付けることを特徴とする請求項1から4のいずれかに記載のゲーム制御プログラム。
【請求項6】
前記ゲームを制御する機能は、プレイヤーズキャラクタがゴルフをプレーするゲームを制御し、前記操作入力のタイミングに応じて、前記プレイヤーズキャラクタのショットのパワー又はインパクトを決定して球の弾道を算出し、
前記画面を生成する機能は、前記第1領域として、前記ショットのパワー又はインパクトを決定するための操作入力のタイミングの指標となる動画像を生成することを特徴とする請求項1から5のいずれかに記載のゲーム制御プログラム。
【請求項7】
前記画面を生成する機能は、前記画面に含まれる面状のオブジェクトを描画する際に、風の方向及び速度と、前記オブジェクトの面の方向とに基づいて、前記オブジェクトの位置を物理計算により算出することを特徴とする請求項6に記載のゲーム制御プログラム。
【請求項8】
前記ゲームを制御する機能は、前記風の方向及び速度を更に考慮して前記球の弾道を算出することを特徴とする請求項7に記載のゲーム制御プログラム。
【請求項9】
プレイヤーから操作入力を受け付ける入力受付部と、
前記操作入力のタイミングに応じてゲームを制御するゲーム実行部と、
前記ゲームの画面を生成する画面生成部と、を備え、
前記画面生成部は、前記画面のうち、前記操作入力のタイミングの指標となる第1領域を、その他の第2領域よりも高いフレームレートで生成することを特徴とするゲーム装置。
【請求項10】
それぞれが1フレームの画面のデータを格納可能な容量を有する複数のバッファメモリを更に備え、
前記画面生成部は、前記バッファメモリのうちいずれか1つに、前記第2領域を描画したデータを格納し、それを他のバッファメモリに複製した後、複数のフレームにおける前記第1領域を描画したデータのそれぞれを順次それぞれのバッファメモリに追加することにより、前記画面を生成することを特徴とする請求項9に記載のゲーム装置。
【請求項11】
プレイヤーから操作入力を受け付けるステップと、
前記操作入力のタイミングに応じてゲームを制御するステップと、
前記ゲームの画面を生成するステップと、含み、
前記画面を生成するステップは、前記画面のうち、前記操作入力のタイミングの指標となる第1領域を、その他の第2領域よりも高いフレームレートで生成することを特徴とするゲーム制御方法。
【請求項12】
プレイヤーから操作入力を受け付ける機能と、
前記操作入力のタイミングに応じてゲームを制御する機能と、
前記ゲームの画面を生成する機能と、をコンピュータに実現させ、
前記画面を生成する機能は、前記画面のうち、前記操作入力のタイミングの指標となる第1領域を、その他の第2領域よりも高いフレームレートで生成することを特徴とするゲーム制御プログラムを記録したコンピュータ読み取り可能な記録媒体。

【図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


【公開番号】特開2008−229170(P2008−229170A)
【公開日】平成20年10月2日(2008.10.2)
【国際特許分類】
【出願番号】特願2007−75327(P2007−75327)
【出願日】平成19年3月22日(2007.3.22)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 平成19年3月9日 株式会社 エンターブレイン発行の「週刊ファミ通 3月9日号、第22巻、第10号」に発表
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 平成19年3月9日 株式会社 メディアワークス発行の「電撃Play Station Vol.381 第13巻、第11号 通巻381号」に発表
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 平成19年3月16日 株式会社 エンターブレイン発行の「ファミ通PS2 3月16日号、第12巻、第4号 通巻230号」に発表
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】