ゲーム装置、ゲーム制御方法、ゲーム制御プログラム、及び管理サーバ
【課題】利便性の高いゲーム制御技術を提供する。
【解決手段】ゲーム装置16は、プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する制御部40と、他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得するデータ受信部47と、キャラクタ又はオブジェクトと、他のプレイヤーが操作中のキャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる画面生成部66と、を備える。対戦相手表示部48は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、他のプレイヤーが操作中のキャラクタ又はオブジェクトがゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させる。
【解決手段】ゲーム装置16は、プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する制御部40と、他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得するデータ受信部47と、キャラクタ又はオブジェクトと、他のプレイヤーが操作中のキャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる画面生成部66と、を備える。対戦相手表示部48は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、他のプレイヤーが操作中のキャラクタ又はオブジェクトがゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム制御技術に関し、とくに、複数のプレイヤーが対戦するゲームを制御するゲーム装置、ゲーム制御方法、ゲーム制御プログラム、及び管理サーバに関する。
【背景技術】
【0002】
キャラクタを操作してゴルフをプレーするゲームが人気を博している。ゴルフは、現実の世界においても、幅広い年齢層にわたって競技人口が多く、不偏の人気を誇るスポーツである。
【発明の開示】
【発明が解決しようとする課題】
【0003】
複数のプレイヤーが同時にゴルフゲームを行う場合、現実世界でのプレーと同様に、一人ずつ順番にショットを打っていくので、一人でプレーする場合に比べて多くの時間を要する。また、同時にプレーする人数が多くなるほど待ち時間が多くなり、ゲームの興味が薄れてしまう。
【0004】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より娯楽性の高いゲーム制御技術を提供することにある。
【課題を解決するための手段】
【0005】
本発明のある態様は、ゲーム制御プログラムに関する。このゲーム制御プログラムは、プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する機能と、前記キャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる機能と、他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得する機能と、前記ゲーム画面に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させる機能と、をコンピュータに実現させ、前記表示させる機能は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、半透明にして表示させることを特徴とする。
【0006】
本発明の別の態様は、管理サーバに関する。この管理サーバは、ゲームを実行する複数のゲーム装置が前記ゲームを並行して実行して対戦する大会への参加を受け付ける参加受付部と、前記大会に参加しているゲーム装置から、前記ゲーム装置において実行中のゲームにおけるキャラクタ又はオブジェクトの位置を示す情報を受信するデータ受信部と、前記ゲーム装置から受信した情報を、同一の大会に参加している複数のゲーム装置のうち、所定の条件に合致するゲーム装置へ送信するデータ送信部と、を備えることを特徴とする。
【0007】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0008】
本発明によれば、より娯楽性の高いゲーム制御技術を提供することができる。
【発明を実施するための最良の形態】
【0009】
実施の形態に係るゲームシステムは、複数のプレイヤーがリアルタイムに対戦するゲームを提供する。本実施の形態では、とくに、ゴルフを例にとって説明する。
【0010】
複数のプレイヤーでゴルフをプレーする場合、通常、前ホールでのスコアに応じて順にティショットを打った後、ボールの位置がカップから遠いプレイヤーから順に2打目以降のショットを打っていく。このように、現実のゴルフと同様に順番にショットを打っていく方式では、複数のプレイヤーでコースに出て対戦している感覚を与えることはできるが、他のプレイヤーがショットしている間の待ち時間が長くなり、一人でプレーする場合に比べて多大な時間を要するという問題がある。
【0011】
本実施の形態では、各プレイヤーは他のプレイヤーとは無関係に一人でゲームをしているときと同様にボールを打つことができるようにしつつ、他のプレイヤーが操作するキャラクタや、ショットしたボールの軌跡などをゲーム画面に表示することで、他のプレイヤーの状況も画面上で確認できるようにする。これにより、リアルタイムに他のプレイヤーと対戦している感覚を失うことなく、各プレイヤーが独立してゲームを進行させ、ゲームに要する時間を短縮させることができる。また、複数のプレイヤーが同じホールで同時にプレーしており、他のプレイヤーのボールが飛んでいる様子が表示される中でショットを行うなど、現実のゴルフでは味わうことのできない斬新なゲーム観を提供することができる。
【0012】
さらに、他のプレイヤーのショットを画面で確認することができるので、他のプレイヤーの戦略を確認しつつ自分のショットを行うことができる。例えば、グリーン上で自分のボールの近くに他のプレイヤーのボールがある場合、他のプレイヤーがパットを行うまで待って、ボールの軌跡を確認してから自分のパットを行うことができる。逆に、先に自分がショットを進めて他のプレイヤーにプレッシャーを与えることもできる。ルール上の打つ順番とは関係なく、このような戦略をとることができる。
【0013】
図1は、実施の形態に係るゲームシステム10の構成を示す。ゲームシステム10は、複数のゲーム装置16と、複数のゲーム装置16のプレイヤーが参加して対戦する大会を管理する管理サーバ14とを備える。複数のゲーム装置16と管理サーバ14は、ネットワークの一例であるインターネット12を介して接続されている。各ゲーム装置16は、自装置で実行されているゲームの状況を示す情報を管理サーバ14に送信するとともに、他のゲーム装置16で実行されているゲームの状況を示す情報を管理サーバ14から受信し、自装置のゲーム画面に、他のゲーム装置16におけるゲームの状況もリアルタイムに表示する。
【0014】
図2は、管理サーバ14の内部構成を示す。管理サーバ14は、通信部80、制御部90、及び管理テーブル82を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0015】
通信部80は、インターネット12を介したゲーム装置16との間の通信を制御する。管理テーブル82は、複数のゲーム装置16が参加して対戦する大会を管理するために必要なデータを格納する。
【0016】
図3は、管理テーブル82の内部データの例を示す。管理テーブル82には、プレイヤーID欄202、プレイヤー名欄204、IPアドレス欄206、スコア欄208、順位欄210、及びフレンドリスト欄212が設けられる。プレイヤーID欄202には、大会に参加しているプレイヤーのIDが格納される。プレイヤー名欄204には、プレイヤーの名称が格納される。IPアドレス欄206には、プレイヤーのゲーム装置16に割り当てられているIPアドレスが格納される。スコア欄208には、プレイヤーのスコアが格納される。順位欄210には、プレイヤーの順位が格納される。フレンドリスト欄212には、プレイヤーが、チャットしたり互いの状況を通知し合ったりする相手として登録したプレイヤーのIDのリストを格納する。管理サーバ14が、複数の大会を同時に管理する場合は、複数の管理テーブル82が設けられる。
【0017】
制御部90は、参加受付部91、データ受信部92、データ送信部93、大会管理部94、及び順位管理部95を備える。参加受付部91は、ゲームを実行する複数のゲーム装置16がゲームを並行して実行して対戦する大会への参加を受け付ける。参加受付部91は、ウェブページなどを用いてゲーム装置16から大会への参加を受け付けてもよい。この場合、管理サーバ14は、ウェブサーバとして機能するための構成を備える。参加受付部91は、ゲーム装置16から大会への参加を受け付けると、そのゲーム装置16のプレイヤーのプレイヤーID、プレイヤー名、フレンドリスト、及びそのゲーム装置16のIPアドレスを取得して管理テーブル82に登録する。プレイヤーに関する情報は、図示しないユーザデータベースなどに予め格納されていてもよい。この場合、参加受付部91は、プレイヤーIDを用いてユーザデータベースを検索し、プレイヤー名やフレンドリストなどの情報を取得してもよい。
【0018】
データ受信部92は、大会に参加しているゲーム装置16から、ゲーム装置16において実行中のゲームにおけるキャラクタ又はオブジェクトの位置を示す情報を受信する。データ受信部92は、各ゲーム装置16が、他のゲーム装置16で実行中のゲームにおけるキャラクタ又はオブジェクトを自装置のゲーム画面に表示させるために必要なデータを受信する。本実施の形態では、ゲーム画面8フレーム分の下記の情報を各ゲーム装置16から受信する。
【0019】
・ゲーム世界におけるボールの位置の絶対座標(1フレーム目)
・ゲーム世界におけるキャラクタの位置の絶対座標(1フレーム目、XZのみ)
・ボールの前フレームからの位置の差分(2フレーム目以降7フレーム分)
・キャラクタの前フレームからの位置の差分(2フレーム目以降7フレーム分、XZのみ)
・キャラクタの動作を示すモーションナンバー(例えば、ショット:1、パット:2、芝を蒔く:3など)
・キャラクタのモーションフレーム数:ショット、パット、芝を蒔く動作などの動作のうち何フレーム目であるかを示す数。
・キャラクタの向いている角度
・キャラクタに関する情報フラグ:キャラクタが持っているクラブのタイプ(ウッド、アイアン、パター)、左打ち状態になっているか否か(右打ちの位置に木などの障害物があってアドレスできない場合は左打ちになる)。クラブセットの種類、キャラクタの服装など、ホールをプレーしている間に変更されない情報は、ホール開始時に一度だけ送信される。
・キャラクタの状態を示すフラグ:ショットを打つ前のスタンバイ状態、スイング中、ボール飛行中、ボール停止状態、ホールアウト時のガッツポーズ中、ホールアウト後のスコアカード閲覧中など。
データ受信部92は、これらの情報を管理テーブル82に記録してもよい。
【0020】
データ送信部93は、ゲーム装置16から受信した情報を、同一の大会に参加している複数のゲーム装置16のうち、所定の条件に合致するゲーム装置16へ送信する。
【0021】
大会管理部94は、大会の進行を管理する。本実施の形態では、大会を迅速に進行させるために、各ホールに制限時間を設け、制限時間内にホールアウトできなかったプレイヤーは失格させる。管理サーバ14側で制限時間を管理してもよいが、本実施の形態では、各ゲーム装置16が制限時間を管理し、プレイヤーが制限時間内にホールアウトできなかった場合は、管理サーバ14へその旨を通知する。大会管理部94は、失格した旨の通知を受けると、管理テーブル82の該当するプレイヤーの順位欄210に失格したことを示す「−1」を格納する。データ送信部93は、失格したプレイヤーのゲーム装置16には他のゲーム装置16の情報を送信しない。大会管理部94は、早くホールアウトしたプレイヤーに、ボーナスポイントを与えたり、特殊な効果のあるショットを打つ能力を与えたりするなどの利益を与えてもよい。
【0022】
順位管理部95は、大会に参加しているプレイヤーの順位を管理する。順位管理部95は、各ゲーム装置16からホールアウトしたプレイヤーのスコアをホールごとに取得し、管理テーブル82のスコア欄208を更新するとともに、スコアに基づいて順位を算出して順位欄210を更新する。
【0023】
データ送信部93は、大会に参加しているプレイヤーのうち、上位から所定数のプレイヤーのゲーム装置16から受信した情報を各ゲーム装置16へ送信してもよい。これにより、各プレイヤーは、上位のプレイヤーのプレーを参考にしながらゲームを進行させることができる。データ送信部93は、データの送信先のゲーム装置16と順位の近い所定数のプレイヤーを抽出し、抽出されたプレイヤーのゲーム装置16から受信した情報を送信先のゲーム装置16へ送信してもよい。これにより、各プレイヤーは、自身と順位の近いプレイヤーのプレーを画面上で確認しながらプレーを進めることができる。データ送信部93は、データの送信先のゲーム装置16のプレイヤーがフレンドリストに登録している相手のゲーム装置16から受信した情報を送信してもよい。このように、大会に参加しているプレイヤーの数が多くても、適当な数のプレイヤーを抽出して、抽出したプレイヤーのゲームの状況を示す情報を送信するので、各ゲーム装置16の処理負荷を不適切に増大させることなく、他のゲーム装置16の状況を表示させることができる。
【0024】
データ送信部93は、ゲーム装置16から情報を受信したときに、その情報をすぐに他のゲーム装置16へ送信してもよいし、そのゲーム装置16へ情報を送信すべき全てのゲーム装置16の情報が揃ってからまとめて送信してもよい。
【0025】
図4は、ゲーム装置16の構成を示す。ゲーム装置16は、コントローラ20、入力受付部30、制御部40、パラメータ保持部60、記録媒体62、通信部64、画面生成部66、及び表示装置68を備える。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
【0026】
通信部64は、インターネット12を介した管理サーバ14との間の通信を制御する。入力受付部30は、プレイヤーが操作するコントローラ20から入力される制御信号を受け付ける。制御部40は、ゴルフゲームのプログラムが格納された記録媒体62からプログラムを読み出して実行し、入力受付部30が受け付けたプレイヤーからの操作入力に基づいて、ゲーム世界においてゴルフプレイヤーとして機能するプレイヤーズキャラクタの動作を制御しつつ、ゴルフゲームを進行させる。パラメータ保持部60は、ゴルフゲームの進行に必要なパラメータを保持する。画面生成部66は、制御部40により制御されるゲームの画面を生成し、表示装置68に表示させる。
【0027】
ショット制御部41は、プレイヤーズキャラクタによるショットを制御する。ショット制御部41は、カメラ制御部42、パワー決定部44、及びインパクト決定部45を含む。
【0028】
図5は、プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す。ゲーム画面100には、プレー中のホールの地形がレンダリングされた画像と、プレイヤーズキャラクタを後方から見た画像が表示されている。プレイヤーは、この画面において、コントローラ20を操作してショットのパワーとインパクトを決定し、プレイヤーズキャラクタにショットを行わせる。
【0029】
カメラ制御部42は、画面生成部66がゲーム画面を生成する際のカメラの視点位置及び視線方向を制御する。カメラ制御部42は、プレイヤーズキャラクタがショットを行うときのゲーム画面を生成する場合、初期設定として、プレイヤーズキャラクタの後方に視点位置を設定し、プレイヤーズキャラクタを見る方向に視線方向を設定する。プレイヤーは、ホールの地形を確認したり、ショットする方向や距離などを判断したりするために、コントローラ20を操作して視点位置や視線方向を変更することができる。カメラ制御部42は、後述するように、プレイヤーからの操作入力に応じて、カメラの視点位置及び視線方向を変更し、画面生成部66に通知する。
【0030】
パワー決定部44は、プレイヤーズキャラクタのショットのパワーを決定する。パワー決定部44は、ショットを開始する指示が割り当てられた操作入力をコントローラ20から受け付けると、画面生成部66に、プレイヤーズキャラクタがボールをショットするためにテークバックする動作を行っている画面を生成させ、表示装置68に表示させる。プレイヤーは、プレイヤーズキャラクタがテークバックする動作の進行の度合いを指標として、パワーを決定する指示が割り当てられた操作入力をコントローラ20により行う。パワー決定部44は、パワーを決定するための操作入力を受け付けた時点におけるプレイヤーズキャラクタのショットする動作の進行の度合いに応じて、ショットのパワーを決定する。パワー決定部44は、決定したパワーを弾道算出部50に通知する。
【0031】
図6(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。図6(a)は、プレイヤーズキャラクタがテークバックを開始してから、フルスイングに要する時間の半分の時間が経過したときの状態を示す。この時点でプレイヤーから操作入力を受け付けると、パワー決定部44は、ショットのパワーを50%と決定する。図6(b)は、プレイヤーズキャラクタがトップオブスイングに至った状態を示す。この時点でプレイヤーから操作入力を受け付けると、パワー決定部44は、ショットのパワーを100%と決定する。パワー決定部44は、テークバック中に操作入力を受け付けずにトップスイングに至った場合、素振りであったことにしてショットを行わないようにしてもよい。
【0032】
カメラ制御部42は、プレイヤーズキャラクタがショットを行うときのゲーム画面を表示しているときに、プレイヤーからの指示入力に応じて、画面を生成する際の視点位置又は視線方向を変更するよう、画面生成部66に指示する。ボールの周辺の地形や障害物などの状態によっては、プレイヤーズキャラクタのテークバック動作が見づらい可能性がある。このとき、プレイヤーがパワーを決定するための操作入力を行うタイミングを計りづらくなってしまうので、カメラ制御部42は、プレイヤーズキャラクタのテークバック動作が見やすいように、カメラの視点位置又は視線方向を変更する。
【0033】
図7(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。図7(a)に示すように、木などの障害物が邪魔になり、プレイヤーズキャラクタを後方から見た画面では、テークバック動作が見づらい場合がある。このとき、プレイヤーは、コントローラ20の方向キーなどを用いて、カメラの視点位置又は視線方向を切り替える操作入力を行う。カメラ制御部42は、プレイヤーからの操作入力に応じて、図7(b)に示すように、プレイヤーズキャラクタのテークバック動作が見やすい画面となるように、カメラの視点位置又は視線方向を変更する。図7(b)に示すように、プレイヤーズキャラクタの側方に視点位置を設定することにより、プレイヤーズキャラクタのテークバック動作の進行の度合いがより分かりやすくなり、操作性の良いユーザインタフェースを実現することができる。
【0034】
カメラ制御部42は、自動的に、プレイヤーズキャラクタのテークバック動作が見やすい位置にカメラの視点位置を移動させてもよい。とくに、プレイヤーズキャラクタがパッティングを行う場合は、テークバック動作が小さく、プレイヤーズキャラクタの後方から見てもパターの動きが分かりづらいので、カメラ制御部42は、プレイヤーズキャラクタの側方にカメラの視点位置を切り替えてもよい。
【0035】
インパクト決定部45は、プレイヤーズキャラクタのショットのインパクトを決定する。インパクト決定部45は、パワー決定部44によりショットのパワーが決定された後、画面生成部66に、プレイヤーズキャラクタがダウンスイングする動作を行っている画面を生成させ、表示装置68に表示させる。プレイヤーは、プレイヤーズキャラクタがダウンスイングしてボールを打撃するタイミングに合わせて、インパクトを決定する指示が割り当てられた操作入力をコントローラ20により行う。インパクト決定部45は、プレイヤーズキャラクタがダウンスイングしてボールを打撃する時点と、インパクトを決定するための操作入力を受け付けた時点との時間差に応じて、ショットのインパクトを決定する。インパクト決定部45は、決定したインパクトを弾道算出部50に通知する。このとき、インパクトが100%になる瞬間よりも速く操作入力を受け付けた場合はマイナス、遅い場合はプラスの符号をつけるなどして、タイミングが速かったのか遅かったのかを表現してもよい。
【0036】
インパクト決定部45は、タイミングをとるための指標の補助として、画面生成部66に、時間の経過にしたがって収縮し、プレイヤーズキャラクタがボールを打撃する時点、すなわち、最も高いインパクトでショットすることができる時点で最小となる図形を含む画面を生成させ、表示装置68に表示させる。プレイヤーは、収縮する図形を更に指標として、インパクトを決定するための操作入力を行うことができる。インパクト決定部45は、ボールの位置を中心又は重心とした図形を表示し、ボールの位置に収束するように収縮させてもよい。これにより、プレイヤーが、プレイヤーズキャラクタがダウンスイングしている様子と、図形が収縮する様子の双方を視認しながら操作を行うことができ、より操作性の良いユーザインタフェースを実現することができる。
【0037】
インパクト決定部45は、例えば、プレイヤーズキャラクタがボールを打撃する時点、すなわち時間差がゼロである時点でのインパクトを100%、時間差が所定の上限値となる時点でのインパクトを所定の下限値として、操作入力を受け付けた時点でのインパクトを内分により決定してもよい。後述するように、弾道算出部50では、インパクト決定部45により決定されたインパクトの値が低いほど、狙った着地点から大きく外れるように、飛距離や方向などが補正される。インパクト決定部45は、プレイヤーズキャラクタのダウンスイングがボールを通過した後、操作入力を受け付けずに時間差が所定の上限値を超えた場合、素振りであったことにしてショットを行わないようにしてもよいし、インパクトを自動的に所定の下限値に設定してショットを行わせてもよい。
【0038】
図8(a)(b)は、プレイヤーズキャラクタがダウンスイングする動作を行っているときのゲーム画面の例を示す。図8(a)は、プレイヤーズキャラクタがダウンスイングを開始したときの状態を示す。インパクト決定部45は、タイミングを計るための指標の補助として円120を表示している。また、インパクトが下限値となるときの円120の直径を示す図形122と、インパクトが上限値、例えば100%となるときの円120の直径を示す図形124とを表示している。円120の直径が図形122が示す直径よりも大きいときに操作入力を受け付けた場合、インパクト決定部45は、インパクトを所定の下限値に設定してもよい。また、この場合、後述するように、弾道算出部50は、このショットをミスショットとして扱ってもよい。円120の直径が図形124が示す直径よりも小さいときに操作入力を受け付けた場合、インパクト決定部45は、インパクトを所定の上限値、例えば100%に設定してもよい。円120の直径が図形122が示す直径よりも小さく、図形124が示す直径よりも大きいときに操作入力を受け付けた場合、インパクト決定部45は、操作入力を受け付けたタイミングに応じて、所定の上限値と下限値の間の値を設定してもよい。図8(b)は、プレイヤーズキャラクタがボールを打撃する直前の状態を示す。インパクト決定部45は、円120を収縮させ、プレイヤーズキャラクタがボールを打撃する瞬間に最小となるようにする。インパクト決定部45は、プレイヤーズキャラクタがボールを打撃する瞬間まで操作入力を受け付けなかった場合、それ以降は円120を膨張させてもよい。この場合も、円120の直径が図形124が示す直径よりも小さい間はインパクトを上限値とし、図形122が示す直径よりも大きくなるとインパクトを下限値としてもよい。円120が図形122が示す直径よりも大きくなった時点でも操作入力を受け付けなかった場合は、自動的にインパクトを下限値に設定してショットを行わせてもよい。別の例として、インパクト決定部45は、円120の直径が図形122が示す直径よりも大きいときはインパクトを下限値とし、直径が小さくなるほどインパクトが大きくなるようにし、図形124が示す直径と同じときにインパクトを上限値としてもよい。そして、それ以降は、円120の直径が図形124が示す直径よりも小さくなるにつれてインパクトが徐々に小さくなるようにしてもよい。
【0039】
更に別の例として、インパクト決定部45は、時間の経過にしたがって左右又は上下に、或いは任意の直線又は曲線上を移動する図形と、インパクトが最大となる図形の位置とを示すゲージを表示させ、プレイヤーが操作入力を行うタイミングをとるための指標としてもよい。また、インパクト決定部45は、コントローラ20のアナログスティックを倒す角度、速度、圧力などに応じてショットのインパクトやパワーを決定してもよい。
【0040】
弾道算出部50は、ショット制御部41により決定されたショットのパワー及びインパクトと、ボールのライ、風、地形などの外部要因に基づいて、ショットされたボールの弾道を物理計算により算出する。
【0041】
弾道算出部50は、ショットに用いたクラブに応じて予め設定された初速度及びロフト角をパラメータ保持部60から読み出す。弾道算出部50は、読み出した初速度に、パワー決定部44により決定されたパワー、インパクト決定部45により決定されたインパクト、プレイヤーズキャラクタごとに設定された体力などの属性値、ボールのライなどに応じて初速度又はロフト角を調整する。例えば、パワーやインパクトが高いほど初速度が速くなるように、パワーやインパクトの%値を初速度に乗じてもよい。また、インパクトの値が小さいほど狙った着地点からずれるように、ボールの飛ぶ方向や速度などを調整してもよい。例えば、インパクトが100%になる瞬間よりも速く操作入力を受け付けた場合はボールの軌道を右に曲げてスライスボールとし、遅い場合は左に曲げてフックボールとしてもよい。また、インパクトが所定の下限値以下であった場合は、ミスショットとして扱い、極端に初速度を小さくして弾道を算出してもよい。ラフやバンカーの場合は、フェアウェイよりも初速度を低くしてもよい。また、ボールの接地面の傾斜が大きければ初速度を低くしてもよい。ショットの際にプレイヤーが初速度やロフト角を変更する操作入力を行った場合には、さらにその影響を考慮して初速度やロフト角を調整してもよい。
【0042】
弾道算出部50は、初速度とロフト角を決定すると、ボールに作用する力に応じて速度を調整しつつ、ボールの位置をフレームごとに算出する。弾道算出部50は、ボールの現在位置の座標に対して、フレームを単位とした速度を加算し、次のフレームにおけるボールの位置の座標を算出する。ボールの速度には、フレームごとに、重力、揚力、風力、空気抵抗が加算される。重力については、物理法則に則って、下向きに、9.8メートル毎秒毎秒とする。揚力は、上向きに、速度に比例する値とする。風力は、ホールの全ての場所において一定方向に一定速度としてもよいし、場所に応じて変化させてもよい。空気抵抗は、進行方向と逆向きに、速度に比例する値とする。このように、風の方向及び速度を考慮してボールの弾道を算出することにより、現実のゴルフと同様に、風の影響を考慮しながらショットを行う難しさを演出することができ、よりリアリティのあるゴルフゲームを実現することができる。
【0043】
ボールが何かに衝突した場合は、衝突した面の属性に応じて予め設定された摩擦係数及び反発係数にしたがって、水平方向及び垂直方向の速度を調整する。摩擦係数及び反発係数は、フェアウェイ、ラフ、バンカーなどによって異なる値を設定してもよい。弾道算出部50は、さらに、演出効果として、物理法則とは関係のない特殊な演算を弾道に与えてもよい。これにより、ゴルフゲームに変化を持たせ、ゲームの娯楽性を向上させることができる。
【0044】
スコア管理部51は、プレイヤーズキャラクタのスコアを管理する。スコア管理部51は、プレイヤーズキャラクタがホールアウトすると、そのホールのスコアをパラメータ保持部60に記録する。また、スコア管理部51は、プレイヤーズキャラクタがホールアウトして、次のホールのティーショットを行うまでの間に、スコアボードを表示する。前述したように、本実施の形態では、各ホールに制限時間が設けられているので、スコア管理部51は、ホールのプレーの開始時からタイマを用いて時間の経過を測定し、残り時間を画面に表示する。スコア管理部51は、制限時間までにプレイヤーがホールアウトできなかった場合、ゲームオーバーとし、管理サーバ14にその旨を通知する。
【0045】
データ送信部46は、自装置のゲームの状況を他のゲーム装置16へ通知するための送信データを生成して管理サーバ14へ送信する。送信データは、前述したように、キャラクタの位置やボールの位置を示す情報などを含む。データ送信部46は、ゲーム画面8フレーム分のデータをまとめて、8フレームごとに管理サーバ14へ送信する。
【0046】
データ受信部47は、他のゲーム装置16の状況に関する情報を管理サーバ14から受信し、パラメータ保持部60に格納する。
【0047】
対戦相手表示部48は、データ受信部47が受信した情報に基づいて、対戦相手のゲーム装置16の状況を自装置のゲーム画面に表示させる。対戦相手表示部48は、ゲーム画面に、他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させる。
【0048】
対戦相手表示部48は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、他のプレイヤーが操作中のキャラクタ又はオブジェクトがゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない。この所定の条件は、例えば、他のプレイヤーのキャラクタ又はボールの位置が、ゲーム画面を生成するためのカメラの視点位置から所定の範囲内にあること、プレイヤーが操作中のキャラクタ又はボールから所定の範囲内にあること、カメラの視点位置とキャラクタ又はボールの間にあること、プレイヤーがキャラクタを移動させようとしている目標位置又はボールをショットしようとしている目標位置から所定の範囲内にあること、目標位置とキャラクタ又はボールの間にあること、キャラクタ又はボールの移動方向にあること、のうち少なくとも一つを含んでもよい。このような場合、対戦相手のキャラクタやボールが、自装置のキャラクタやボールに重なったり、ショットする方向やカップの方向に重なったり、パワーやインパクトを決定する際の指標となる動画像や指標などと重なったりして、プレイヤーによる操作の妨げになるおそれがあるので、対戦相手のキャラクタやボールを表示しない。対戦相手表示部48は、このような場合に、対戦相手のキャラクタやボールの透明度を上げて半透明化して表示させてもよい。対戦相手表示部48が、上記の条件に合致していない対戦相手のキャラクタやボールなどを半透明にして表示させる場合は、上記の条件に合致するキャラクタやボールの透明度を更に上げて、より透明な状態で表示させてもよい。
【0049】
対戦相手表示部48は、データ受信部47が、ゲーム画面の所定のフレーム数、例えば24フレーム分の情報を取得するまで待機してから、他のプレイヤーが操作中のキャラクタ又はボールをゲーム画面に表示させてもよい。前述したように、データ受信部47は、管理サーバ14から、8フレームごとに8フレーム分のデータを受信するが、通信状態によっては遅延が生じる場合もある。受信した8フレーム分のデータを表示させた後に、遅延により次のデータを受信できていない場合は、表示が止まってしまって不自然な動きになる。したがって、対戦相手表示部48は、24フレーム分のデータが蓄積されるまで待機してから表示に反映させる。これにより、24フレーム分のデータを表示させている間に、その次のデータを受信していれば、動きを止めることなくスムーズに他のプレイヤーのキャラクタやボールを表示させることができる。実際に通信の遅延が生じて蓄積されているデータが残り少なくなった場合も、視点の切り替えやホールアウトなどで画面が切り替わったときに、再び24フレーム分のデータが蓄積されるまで待機してもよい。シューティングゲームや格闘ゲームなど、対戦相手の状況をリアルタイムに確認しながらゲームを進行させる必要があるゲームとは異なり、ゴルフゲームやボーリングゲームなど、対戦相手の状況を確認しなくても単独で進行させることのできるゲームでは、対戦相手の状況の表示について、あまりリアルタイム性を要求されないので、予想される遅延時間分程度のデータを蓄積してから表示に反映させることで、よりスムーズな動きを表示させることができる。
【0050】
なお、ショット制御部41及び弾道算出部50は、他のプレイヤーが操作中のキャラクタやボールとは無関係に、キャラクタやボールの動作又は移動を制御する。上述したように、ゴルフゲームやボーリングゲームなどでは、対戦相手の状況にかかわらず、独立してゲームを進行させることができるので、ショット制御部41は、対戦相手の状況にかかわらず、プレイヤーズキャラクタのショットの操作をプレイヤーから受け付ける。また、弾道算出部50は、対戦相手のキャラクタやボールなどが弾道に存在していたとしてもコリジョン判定を行わず、存在しなかったものとして弾道を算出する。これにより、対戦相手の状況を表示しつつも、対戦相手とは無関係にゲームを進行させることができるので、ショットの待機時間などをなくし、迅速にゲームを進行させることができる。また、弾道の算出を簡素化し、処理負荷を軽減させることができる。
【0051】
画面生成部66は、弾道算出部50により算出されたボールの位置に応じて、ボールが画面に入るようにカメラの視点位置及び視線方向を設定し、ボールが飛ぶ様子を示す画面を生成して、表示装置68に表示する。このとき、対戦相手表示部48によりゲーム世界に配置された、対戦相手のキャラクタやボールなどもレンダリングされて表示される。
【0052】
対戦相手表示部48は、非表示とする条件に合致しなかった対戦相手のキャラクタの位置を示す座標と、キャラクタが向いている角度、所持しているクラブのタイプ、左打ち状態になっているか否かなどの情報を画面生成部66に通知して、キャラクタをゲーム世界に配置させる。また、キャラクタが何らかの動作を行っている場合は、その動作のモーションナンバーとモーションフレーム数を画面生成部66に通知する。さらに、対戦相手表示部48は、対戦相手のボールの位置を示す座標を画面生成部66に通知する。画面生成部66は、キャラクタの種別や服装などのデータに基づいて、記録媒体62からキャラクタの形状データを取得してレンダリングする。また、ボールの形状データを取得してレンダリングする。こうして、対戦相手のキャラクタ及びボールがゲーム画面に表示される。
【0053】
本実施の形態では、対戦相手のゲーム装置16における指示入力の情報などを取得して対戦相手のキャラクタのショットや弾道を算出するのではなく、レンダリングに必要な情報を取得してレンダリングのみを行うので、同時に対戦する相手が複数いたとしても、処理負荷の増大を抑え、リアルタイムにゲーム画面に表示させることができる。通信の遅延が生じたときのために、ボールの弾道を算出するのに必要なデータ、例えば速度ベクトルなどのデータも合わせてゲーム装置16間で送受信されてもよい。
【0054】
図9は、対戦相手のキャラクタやボールが表示されたゲーム画面の例を示す。ゲーム画面100には、自装置のキャラクタ160及びボール162に加えて、対戦相手のキャラクタ170やボール172などが表示されている。これにより、対戦相手の状況を確認しながらゲームを進行させることができる。キャラクタがショットする方向に存在するキャラクタ174は、半透明化されて表示されている。これにより、プレイヤーの操作の妨げにならないようにすることができる。前述したように、ゴルフゲームなどのゲームでは、対戦相手の状況が表示されることは必須ではないので、邪魔になるような位置にキャラクタやオブジェクトなどが表示される場合には、プレイヤーの操作性を重視して非表示又は半透明化する。これにより、対戦している感覚を与えつつ、プレイヤーの操作性を向上させることができる。
【0055】
図10は、対戦相手のキャラクタやボールを表示するか否かを判定する様子を説明するための図である。対戦相手表示部48は、自装置のボール162を中心とした所定の半径の円180の内部に存在する対戦相手のキャラクタ及びボールを非表示又は半透明とする。更に、対戦相手表示部48は、ボール162を中心とし、ショットの方向へ広がる扇形182の内部に存在する対戦相手のキャラクタ及びボールを非表示又は半透明とする。対戦相手表示部48は、さらに、自装置のキャラクタ160がスイングする軌道周辺の位置に存在する対戦相手のキャラクタ及びボールを非表示又は半透明としてもよい。
【0056】
図11は、ホールアウト時に表示されるスコアの表示画面の例を示す。プレイヤーがホールアウトすると、スコア管理部51は、管理サーバ14にスコアを通知する。大会管理部94は、通知されたスコアをもとに管理テーブル82を更新し、順位管理部95は順位を更新する。データ送信部93は、各プレイヤーのスコアと順位をホールアウトしたプレイヤーのゲーム装置16へ送信する。ゲーム装置16のスコア管理部51は、取得した対戦相手のスコア及び順位をゲーム画面100に表示する。いったんホールアウトした後にも、表示画面をホールに戻して、まだホールアウトしていない対戦相手のプレーを見ることができるようにしてもよい。
【0057】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0058】
実施の形態で説明した技術は、ゴルフ以外にも、レース、ボーリングなど、一人でも独立して行うことができ、対戦する場合にも、対戦相手の状況を必ずしもリアルタイムに表示させる必要のないゲームに適用可能である。
【0059】
実施の形態では、管理サーバを介して互いのゲームの状況に関するデータを送受信したが、管理サーバを介さずに、ゲーム装置間で直接データを送受信してもよい。また、1つのゲーム装置を用いて複数のプレイヤーが対戦する場合に、画面を分割してそれぞれのプレイヤーのゲーム画面を表示させる場合にも適用可能である。
【図面の簡単な説明】
【0060】
【図1】実施の形態に係るゲームシステムの構成を示す図である。
【図2】管理サーバの内部構成を示す図である。
【図3】管理テーブルの内部データの例を示す図である。
【図4】ゲーム装置の構成を示す図である。
【図5】プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す図である。
【図6】図6(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図7】図7(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図8】図8(a)(b)は、プレイヤーズキャラクタがダウンスイングする動作を行っているときのゲーム画面の例を示す図である。
【図9】対戦相手のキャラクタやボールが表示されたゲーム画面の例を示す図である。
【図10】対戦相手のキャラクタやボールを表示するか否かを判定する様子を説明するための図である。
【図11】ホールアウト時に表示されるスコアの表示画面の例を示す図である。
【符号の説明】
【0061】
10 ゲームシステム、14 管理サーバ、16 ゲーム装置、20 コントローラ、30 入力受付部、40 制御部、41 ショット制御部、42 カメラ制御部、44 パワー決定部、45 インパクト決定部、46 データ送信部、47 データ受信部、48 対戦相手表示部、50 弾道算出部、51 スコア管理部、60 パラメータ保持部、62 記録媒体、64 通信部、66 画面生成部、68 表示装置、80 通信部、82 管理テーブル、90 制御部、91 参加受付部、92 データ受信部、93 データ送信部、94 大会管理部、95 順位管理部。
【技術分野】
【0001】
本発明は、ゲーム制御技術に関し、とくに、複数のプレイヤーが対戦するゲームを制御するゲーム装置、ゲーム制御方法、ゲーム制御プログラム、及び管理サーバに関する。
【背景技術】
【0002】
キャラクタを操作してゴルフをプレーするゲームが人気を博している。ゴルフは、現実の世界においても、幅広い年齢層にわたって競技人口が多く、不偏の人気を誇るスポーツである。
【発明の開示】
【発明が解決しようとする課題】
【0003】
複数のプレイヤーが同時にゴルフゲームを行う場合、現実世界でのプレーと同様に、一人ずつ順番にショットを打っていくので、一人でプレーする場合に比べて多くの時間を要する。また、同時にプレーする人数が多くなるほど待ち時間が多くなり、ゲームの興味が薄れてしまう。
【0004】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より娯楽性の高いゲーム制御技術を提供することにある。
【課題を解決するための手段】
【0005】
本発明のある態様は、ゲーム制御プログラムに関する。このゲーム制御プログラムは、プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する機能と、前記キャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる機能と、他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得する機能と、前記ゲーム画面に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させる機能と、をコンピュータに実現させ、前記表示させる機能は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、半透明にして表示させることを特徴とする。
【0006】
本発明の別の態様は、管理サーバに関する。この管理サーバは、ゲームを実行する複数のゲーム装置が前記ゲームを並行して実行して対戦する大会への参加を受け付ける参加受付部と、前記大会に参加しているゲーム装置から、前記ゲーム装置において実行中のゲームにおけるキャラクタ又はオブジェクトの位置を示す情報を受信するデータ受信部と、前記ゲーム装置から受信した情報を、同一の大会に参加している複数のゲーム装置のうち、所定の条件に合致するゲーム装置へ送信するデータ送信部と、を備えることを特徴とする。
【0007】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0008】
本発明によれば、より娯楽性の高いゲーム制御技術を提供することができる。
【発明を実施するための最良の形態】
【0009】
実施の形態に係るゲームシステムは、複数のプレイヤーがリアルタイムに対戦するゲームを提供する。本実施の形態では、とくに、ゴルフを例にとって説明する。
【0010】
複数のプレイヤーでゴルフをプレーする場合、通常、前ホールでのスコアに応じて順にティショットを打った後、ボールの位置がカップから遠いプレイヤーから順に2打目以降のショットを打っていく。このように、現実のゴルフと同様に順番にショットを打っていく方式では、複数のプレイヤーでコースに出て対戦している感覚を与えることはできるが、他のプレイヤーがショットしている間の待ち時間が長くなり、一人でプレーする場合に比べて多大な時間を要するという問題がある。
【0011】
本実施の形態では、各プレイヤーは他のプレイヤーとは無関係に一人でゲームをしているときと同様にボールを打つことができるようにしつつ、他のプレイヤーが操作するキャラクタや、ショットしたボールの軌跡などをゲーム画面に表示することで、他のプレイヤーの状況も画面上で確認できるようにする。これにより、リアルタイムに他のプレイヤーと対戦している感覚を失うことなく、各プレイヤーが独立してゲームを進行させ、ゲームに要する時間を短縮させることができる。また、複数のプレイヤーが同じホールで同時にプレーしており、他のプレイヤーのボールが飛んでいる様子が表示される中でショットを行うなど、現実のゴルフでは味わうことのできない斬新なゲーム観を提供することができる。
【0012】
さらに、他のプレイヤーのショットを画面で確認することができるので、他のプレイヤーの戦略を確認しつつ自分のショットを行うことができる。例えば、グリーン上で自分のボールの近くに他のプレイヤーのボールがある場合、他のプレイヤーがパットを行うまで待って、ボールの軌跡を確認してから自分のパットを行うことができる。逆に、先に自分がショットを進めて他のプレイヤーにプレッシャーを与えることもできる。ルール上の打つ順番とは関係なく、このような戦略をとることができる。
【0013】
図1は、実施の形態に係るゲームシステム10の構成を示す。ゲームシステム10は、複数のゲーム装置16と、複数のゲーム装置16のプレイヤーが参加して対戦する大会を管理する管理サーバ14とを備える。複数のゲーム装置16と管理サーバ14は、ネットワークの一例であるインターネット12を介して接続されている。各ゲーム装置16は、自装置で実行されているゲームの状況を示す情報を管理サーバ14に送信するとともに、他のゲーム装置16で実行されているゲームの状況を示す情報を管理サーバ14から受信し、自装置のゲーム画面に、他のゲーム装置16におけるゲームの状況もリアルタイムに表示する。
【0014】
図2は、管理サーバ14の内部構成を示す。管理サーバ14は、通信部80、制御部90、及び管理テーブル82を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0015】
通信部80は、インターネット12を介したゲーム装置16との間の通信を制御する。管理テーブル82は、複数のゲーム装置16が参加して対戦する大会を管理するために必要なデータを格納する。
【0016】
図3は、管理テーブル82の内部データの例を示す。管理テーブル82には、プレイヤーID欄202、プレイヤー名欄204、IPアドレス欄206、スコア欄208、順位欄210、及びフレンドリスト欄212が設けられる。プレイヤーID欄202には、大会に参加しているプレイヤーのIDが格納される。プレイヤー名欄204には、プレイヤーの名称が格納される。IPアドレス欄206には、プレイヤーのゲーム装置16に割り当てられているIPアドレスが格納される。スコア欄208には、プレイヤーのスコアが格納される。順位欄210には、プレイヤーの順位が格納される。フレンドリスト欄212には、プレイヤーが、チャットしたり互いの状況を通知し合ったりする相手として登録したプレイヤーのIDのリストを格納する。管理サーバ14が、複数の大会を同時に管理する場合は、複数の管理テーブル82が設けられる。
【0017】
制御部90は、参加受付部91、データ受信部92、データ送信部93、大会管理部94、及び順位管理部95を備える。参加受付部91は、ゲームを実行する複数のゲーム装置16がゲームを並行して実行して対戦する大会への参加を受け付ける。参加受付部91は、ウェブページなどを用いてゲーム装置16から大会への参加を受け付けてもよい。この場合、管理サーバ14は、ウェブサーバとして機能するための構成を備える。参加受付部91は、ゲーム装置16から大会への参加を受け付けると、そのゲーム装置16のプレイヤーのプレイヤーID、プレイヤー名、フレンドリスト、及びそのゲーム装置16のIPアドレスを取得して管理テーブル82に登録する。プレイヤーに関する情報は、図示しないユーザデータベースなどに予め格納されていてもよい。この場合、参加受付部91は、プレイヤーIDを用いてユーザデータベースを検索し、プレイヤー名やフレンドリストなどの情報を取得してもよい。
【0018】
データ受信部92は、大会に参加しているゲーム装置16から、ゲーム装置16において実行中のゲームにおけるキャラクタ又はオブジェクトの位置を示す情報を受信する。データ受信部92は、各ゲーム装置16が、他のゲーム装置16で実行中のゲームにおけるキャラクタ又はオブジェクトを自装置のゲーム画面に表示させるために必要なデータを受信する。本実施の形態では、ゲーム画面8フレーム分の下記の情報を各ゲーム装置16から受信する。
【0019】
・ゲーム世界におけるボールの位置の絶対座標(1フレーム目)
・ゲーム世界におけるキャラクタの位置の絶対座標(1フレーム目、XZのみ)
・ボールの前フレームからの位置の差分(2フレーム目以降7フレーム分)
・キャラクタの前フレームからの位置の差分(2フレーム目以降7フレーム分、XZのみ)
・キャラクタの動作を示すモーションナンバー(例えば、ショット:1、パット:2、芝を蒔く:3など)
・キャラクタのモーションフレーム数:ショット、パット、芝を蒔く動作などの動作のうち何フレーム目であるかを示す数。
・キャラクタの向いている角度
・キャラクタに関する情報フラグ:キャラクタが持っているクラブのタイプ(ウッド、アイアン、パター)、左打ち状態になっているか否か(右打ちの位置に木などの障害物があってアドレスできない場合は左打ちになる)。クラブセットの種類、キャラクタの服装など、ホールをプレーしている間に変更されない情報は、ホール開始時に一度だけ送信される。
・キャラクタの状態を示すフラグ:ショットを打つ前のスタンバイ状態、スイング中、ボール飛行中、ボール停止状態、ホールアウト時のガッツポーズ中、ホールアウト後のスコアカード閲覧中など。
データ受信部92は、これらの情報を管理テーブル82に記録してもよい。
【0020】
データ送信部93は、ゲーム装置16から受信した情報を、同一の大会に参加している複数のゲーム装置16のうち、所定の条件に合致するゲーム装置16へ送信する。
【0021】
大会管理部94は、大会の進行を管理する。本実施の形態では、大会を迅速に進行させるために、各ホールに制限時間を設け、制限時間内にホールアウトできなかったプレイヤーは失格させる。管理サーバ14側で制限時間を管理してもよいが、本実施の形態では、各ゲーム装置16が制限時間を管理し、プレイヤーが制限時間内にホールアウトできなかった場合は、管理サーバ14へその旨を通知する。大会管理部94は、失格した旨の通知を受けると、管理テーブル82の該当するプレイヤーの順位欄210に失格したことを示す「−1」を格納する。データ送信部93は、失格したプレイヤーのゲーム装置16には他のゲーム装置16の情報を送信しない。大会管理部94は、早くホールアウトしたプレイヤーに、ボーナスポイントを与えたり、特殊な効果のあるショットを打つ能力を与えたりするなどの利益を与えてもよい。
【0022】
順位管理部95は、大会に参加しているプレイヤーの順位を管理する。順位管理部95は、各ゲーム装置16からホールアウトしたプレイヤーのスコアをホールごとに取得し、管理テーブル82のスコア欄208を更新するとともに、スコアに基づいて順位を算出して順位欄210を更新する。
【0023】
データ送信部93は、大会に参加しているプレイヤーのうち、上位から所定数のプレイヤーのゲーム装置16から受信した情報を各ゲーム装置16へ送信してもよい。これにより、各プレイヤーは、上位のプレイヤーのプレーを参考にしながらゲームを進行させることができる。データ送信部93は、データの送信先のゲーム装置16と順位の近い所定数のプレイヤーを抽出し、抽出されたプレイヤーのゲーム装置16から受信した情報を送信先のゲーム装置16へ送信してもよい。これにより、各プレイヤーは、自身と順位の近いプレイヤーのプレーを画面上で確認しながらプレーを進めることができる。データ送信部93は、データの送信先のゲーム装置16のプレイヤーがフレンドリストに登録している相手のゲーム装置16から受信した情報を送信してもよい。このように、大会に参加しているプレイヤーの数が多くても、適当な数のプレイヤーを抽出して、抽出したプレイヤーのゲームの状況を示す情報を送信するので、各ゲーム装置16の処理負荷を不適切に増大させることなく、他のゲーム装置16の状況を表示させることができる。
【0024】
データ送信部93は、ゲーム装置16から情報を受信したときに、その情報をすぐに他のゲーム装置16へ送信してもよいし、そのゲーム装置16へ情報を送信すべき全てのゲーム装置16の情報が揃ってからまとめて送信してもよい。
【0025】
図4は、ゲーム装置16の構成を示す。ゲーム装置16は、コントローラ20、入力受付部30、制御部40、パラメータ保持部60、記録媒体62、通信部64、画面生成部66、及び表示装置68を備える。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
【0026】
通信部64は、インターネット12を介した管理サーバ14との間の通信を制御する。入力受付部30は、プレイヤーが操作するコントローラ20から入力される制御信号を受け付ける。制御部40は、ゴルフゲームのプログラムが格納された記録媒体62からプログラムを読み出して実行し、入力受付部30が受け付けたプレイヤーからの操作入力に基づいて、ゲーム世界においてゴルフプレイヤーとして機能するプレイヤーズキャラクタの動作を制御しつつ、ゴルフゲームを進行させる。パラメータ保持部60は、ゴルフゲームの進行に必要なパラメータを保持する。画面生成部66は、制御部40により制御されるゲームの画面を生成し、表示装置68に表示させる。
【0027】
ショット制御部41は、プレイヤーズキャラクタによるショットを制御する。ショット制御部41は、カメラ制御部42、パワー決定部44、及びインパクト決定部45を含む。
【0028】
図5は、プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す。ゲーム画面100には、プレー中のホールの地形がレンダリングされた画像と、プレイヤーズキャラクタを後方から見た画像が表示されている。プレイヤーは、この画面において、コントローラ20を操作してショットのパワーとインパクトを決定し、プレイヤーズキャラクタにショットを行わせる。
【0029】
カメラ制御部42は、画面生成部66がゲーム画面を生成する際のカメラの視点位置及び視線方向を制御する。カメラ制御部42は、プレイヤーズキャラクタがショットを行うときのゲーム画面を生成する場合、初期設定として、プレイヤーズキャラクタの後方に視点位置を設定し、プレイヤーズキャラクタを見る方向に視線方向を設定する。プレイヤーは、ホールの地形を確認したり、ショットする方向や距離などを判断したりするために、コントローラ20を操作して視点位置や視線方向を変更することができる。カメラ制御部42は、後述するように、プレイヤーからの操作入力に応じて、カメラの視点位置及び視線方向を変更し、画面生成部66に通知する。
【0030】
パワー決定部44は、プレイヤーズキャラクタのショットのパワーを決定する。パワー決定部44は、ショットを開始する指示が割り当てられた操作入力をコントローラ20から受け付けると、画面生成部66に、プレイヤーズキャラクタがボールをショットするためにテークバックする動作を行っている画面を生成させ、表示装置68に表示させる。プレイヤーは、プレイヤーズキャラクタがテークバックする動作の進行の度合いを指標として、パワーを決定する指示が割り当てられた操作入力をコントローラ20により行う。パワー決定部44は、パワーを決定するための操作入力を受け付けた時点におけるプレイヤーズキャラクタのショットする動作の進行の度合いに応じて、ショットのパワーを決定する。パワー決定部44は、決定したパワーを弾道算出部50に通知する。
【0031】
図6(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。図6(a)は、プレイヤーズキャラクタがテークバックを開始してから、フルスイングに要する時間の半分の時間が経過したときの状態を示す。この時点でプレイヤーから操作入力を受け付けると、パワー決定部44は、ショットのパワーを50%と決定する。図6(b)は、プレイヤーズキャラクタがトップオブスイングに至った状態を示す。この時点でプレイヤーから操作入力を受け付けると、パワー決定部44は、ショットのパワーを100%と決定する。パワー決定部44は、テークバック中に操作入力を受け付けずにトップスイングに至った場合、素振りであったことにしてショットを行わないようにしてもよい。
【0032】
カメラ制御部42は、プレイヤーズキャラクタがショットを行うときのゲーム画面を表示しているときに、プレイヤーからの指示入力に応じて、画面を生成する際の視点位置又は視線方向を変更するよう、画面生成部66に指示する。ボールの周辺の地形や障害物などの状態によっては、プレイヤーズキャラクタのテークバック動作が見づらい可能性がある。このとき、プレイヤーがパワーを決定するための操作入力を行うタイミングを計りづらくなってしまうので、カメラ制御部42は、プレイヤーズキャラクタのテークバック動作が見やすいように、カメラの視点位置又は視線方向を変更する。
【0033】
図7(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。図7(a)に示すように、木などの障害物が邪魔になり、プレイヤーズキャラクタを後方から見た画面では、テークバック動作が見づらい場合がある。このとき、プレイヤーは、コントローラ20の方向キーなどを用いて、カメラの視点位置又は視線方向を切り替える操作入力を行う。カメラ制御部42は、プレイヤーからの操作入力に応じて、図7(b)に示すように、プレイヤーズキャラクタのテークバック動作が見やすい画面となるように、カメラの視点位置又は視線方向を変更する。図7(b)に示すように、プレイヤーズキャラクタの側方に視点位置を設定することにより、プレイヤーズキャラクタのテークバック動作の進行の度合いがより分かりやすくなり、操作性の良いユーザインタフェースを実現することができる。
【0034】
カメラ制御部42は、自動的に、プレイヤーズキャラクタのテークバック動作が見やすい位置にカメラの視点位置を移動させてもよい。とくに、プレイヤーズキャラクタがパッティングを行う場合は、テークバック動作が小さく、プレイヤーズキャラクタの後方から見てもパターの動きが分かりづらいので、カメラ制御部42は、プレイヤーズキャラクタの側方にカメラの視点位置を切り替えてもよい。
【0035】
インパクト決定部45は、プレイヤーズキャラクタのショットのインパクトを決定する。インパクト決定部45は、パワー決定部44によりショットのパワーが決定された後、画面生成部66に、プレイヤーズキャラクタがダウンスイングする動作を行っている画面を生成させ、表示装置68に表示させる。プレイヤーは、プレイヤーズキャラクタがダウンスイングしてボールを打撃するタイミングに合わせて、インパクトを決定する指示が割り当てられた操作入力をコントローラ20により行う。インパクト決定部45は、プレイヤーズキャラクタがダウンスイングしてボールを打撃する時点と、インパクトを決定するための操作入力を受け付けた時点との時間差に応じて、ショットのインパクトを決定する。インパクト決定部45は、決定したインパクトを弾道算出部50に通知する。このとき、インパクトが100%になる瞬間よりも速く操作入力を受け付けた場合はマイナス、遅い場合はプラスの符号をつけるなどして、タイミングが速かったのか遅かったのかを表現してもよい。
【0036】
インパクト決定部45は、タイミングをとるための指標の補助として、画面生成部66に、時間の経過にしたがって収縮し、プレイヤーズキャラクタがボールを打撃する時点、すなわち、最も高いインパクトでショットすることができる時点で最小となる図形を含む画面を生成させ、表示装置68に表示させる。プレイヤーは、収縮する図形を更に指標として、インパクトを決定するための操作入力を行うことができる。インパクト決定部45は、ボールの位置を中心又は重心とした図形を表示し、ボールの位置に収束するように収縮させてもよい。これにより、プレイヤーが、プレイヤーズキャラクタがダウンスイングしている様子と、図形が収縮する様子の双方を視認しながら操作を行うことができ、より操作性の良いユーザインタフェースを実現することができる。
【0037】
インパクト決定部45は、例えば、プレイヤーズキャラクタがボールを打撃する時点、すなわち時間差がゼロである時点でのインパクトを100%、時間差が所定の上限値となる時点でのインパクトを所定の下限値として、操作入力を受け付けた時点でのインパクトを内分により決定してもよい。後述するように、弾道算出部50では、インパクト決定部45により決定されたインパクトの値が低いほど、狙った着地点から大きく外れるように、飛距離や方向などが補正される。インパクト決定部45は、プレイヤーズキャラクタのダウンスイングがボールを通過した後、操作入力を受け付けずに時間差が所定の上限値を超えた場合、素振りであったことにしてショットを行わないようにしてもよいし、インパクトを自動的に所定の下限値に設定してショットを行わせてもよい。
【0038】
図8(a)(b)は、プレイヤーズキャラクタがダウンスイングする動作を行っているときのゲーム画面の例を示す。図8(a)は、プレイヤーズキャラクタがダウンスイングを開始したときの状態を示す。インパクト決定部45は、タイミングを計るための指標の補助として円120を表示している。また、インパクトが下限値となるときの円120の直径を示す図形122と、インパクトが上限値、例えば100%となるときの円120の直径を示す図形124とを表示している。円120の直径が図形122が示す直径よりも大きいときに操作入力を受け付けた場合、インパクト決定部45は、インパクトを所定の下限値に設定してもよい。また、この場合、後述するように、弾道算出部50は、このショットをミスショットとして扱ってもよい。円120の直径が図形124が示す直径よりも小さいときに操作入力を受け付けた場合、インパクト決定部45は、インパクトを所定の上限値、例えば100%に設定してもよい。円120の直径が図形122が示す直径よりも小さく、図形124が示す直径よりも大きいときに操作入力を受け付けた場合、インパクト決定部45は、操作入力を受け付けたタイミングに応じて、所定の上限値と下限値の間の値を設定してもよい。図8(b)は、プレイヤーズキャラクタがボールを打撃する直前の状態を示す。インパクト決定部45は、円120を収縮させ、プレイヤーズキャラクタがボールを打撃する瞬間に最小となるようにする。インパクト決定部45は、プレイヤーズキャラクタがボールを打撃する瞬間まで操作入力を受け付けなかった場合、それ以降は円120を膨張させてもよい。この場合も、円120の直径が図形124が示す直径よりも小さい間はインパクトを上限値とし、図形122が示す直径よりも大きくなるとインパクトを下限値としてもよい。円120が図形122が示す直径よりも大きくなった時点でも操作入力を受け付けなかった場合は、自動的にインパクトを下限値に設定してショットを行わせてもよい。別の例として、インパクト決定部45は、円120の直径が図形122が示す直径よりも大きいときはインパクトを下限値とし、直径が小さくなるほどインパクトが大きくなるようにし、図形124が示す直径と同じときにインパクトを上限値としてもよい。そして、それ以降は、円120の直径が図形124が示す直径よりも小さくなるにつれてインパクトが徐々に小さくなるようにしてもよい。
【0039】
更に別の例として、インパクト決定部45は、時間の経過にしたがって左右又は上下に、或いは任意の直線又は曲線上を移動する図形と、インパクトが最大となる図形の位置とを示すゲージを表示させ、プレイヤーが操作入力を行うタイミングをとるための指標としてもよい。また、インパクト決定部45は、コントローラ20のアナログスティックを倒す角度、速度、圧力などに応じてショットのインパクトやパワーを決定してもよい。
【0040】
弾道算出部50は、ショット制御部41により決定されたショットのパワー及びインパクトと、ボールのライ、風、地形などの外部要因に基づいて、ショットされたボールの弾道を物理計算により算出する。
【0041】
弾道算出部50は、ショットに用いたクラブに応じて予め設定された初速度及びロフト角をパラメータ保持部60から読み出す。弾道算出部50は、読み出した初速度に、パワー決定部44により決定されたパワー、インパクト決定部45により決定されたインパクト、プレイヤーズキャラクタごとに設定された体力などの属性値、ボールのライなどに応じて初速度又はロフト角を調整する。例えば、パワーやインパクトが高いほど初速度が速くなるように、パワーやインパクトの%値を初速度に乗じてもよい。また、インパクトの値が小さいほど狙った着地点からずれるように、ボールの飛ぶ方向や速度などを調整してもよい。例えば、インパクトが100%になる瞬間よりも速く操作入力を受け付けた場合はボールの軌道を右に曲げてスライスボールとし、遅い場合は左に曲げてフックボールとしてもよい。また、インパクトが所定の下限値以下であった場合は、ミスショットとして扱い、極端に初速度を小さくして弾道を算出してもよい。ラフやバンカーの場合は、フェアウェイよりも初速度を低くしてもよい。また、ボールの接地面の傾斜が大きければ初速度を低くしてもよい。ショットの際にプレイヤーが初速度やロフト角を変更する操作入力を行った場合には、さらにその影響を考慮して初速度やロフト角を調整してもよい。
【0042】
弾道算出部50は、初速度とロフト角を決定すると、ボールに作用する力に応じて速度を調整しつつ、ボールの位置をフレームごとに算出する。弾道算出部50は、ボールの現在位置の座標に対して、フレームを単位とした速度を加算し、次のフレームにおけるボールの位置の座標を算出する。ボールの速度には、フレームごとに、重力、揚力、風力、空気抵抗が加算される。重力については、物理法則に則って、下向きに、9.8メートル毎秒毎秒とする。揚力は、上向きに、速度に比例する値とする。風力は、ホールの全ての場所において一定方向に一定速度としてもよいし、場所に応じて変化させてもよい。空気抵抗は、進行方向と逆向きに、速度に比例する値とする。このように、風の方向及び速度を考慮してボールの弾道を算出することにより、現実のゴルフと同様に、風の影響を考慮しながらショットを行う難しさを演出することができ、よりリアリティのあるゴルフゲームを実現することができる。
【0043】
ボールが何かに衝突した場合は、衝突した面の属性に応じて予め設定された摩擦係数及び反発係数にしたがって、水平方向及び垂直方向の速度を調整する。摩擦係数及び反発係数は、フェアウェイ、ラフ、バンカーなどによって異なる値を設定してもよい。弾道算出部50は、さらに、演出効果として、物理法則とは関係のない特殊な演算を弾道に与えてもよい。これにより、ゴルフゲームに変化を持たせ、ゲームの娯楽性を向上させることができる。
【0044】
スコア管理部51は、プレイヤーズキャラクタのスコアを管理する。スコア管理部51は、プレイヤーズキャラクタがホールアウトすると、そのホールのスコアをパラメータ保持部60に記録する。また、スコア管理部51は、プレイヤーズキャラクタがホールアウトして、次のホールのティーショットを行うまでの間に、スコアボードを表示する。前述したように、本実施の形態では、各ホールに制限時間が設けられているので、スコア管理部51は、ホールのプレーの開始時からタイマを用いて時間の経過を測定し、残り時間を画面に表示する。スコア管理部51は、制限時間までにプレイヤーがホールアウトできなかった場合、ゲームオーバーとし、管理サーバ14にその旨を通知する。
【0045】
データ送信部46は、自装置のゲームの状況を他のゲーム装置16へ通知するための送信データを生成して管理サーバ14へ送信する。送信データは、前述したように、キャラクタの位置やボールの位置を示す情報などを含む。データ送信部46は、ゲーム画面8フレーム分のデータをまとめて、8フレームごとに管理サーバ14へ送信する。
【0046】
データ受信部47は、他のゲーム装置16の状況に関する情報を管理サーバ14から受信し、パラメータ保持部60に格納する。
【0047】
対戦相手表示部48は、データ受信部47が受信した情報に基づいて、対戦相手のゲーム装置16の状況を自装置のゲーム画面に表示させる。対戦相手表示部48は、ゲーム画面に、他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させる。
【0048】
対戦相手表示部48は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、他のプレイヤーが操作中のキャラクタ又はオブジェクトがゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない。この所定の条件は、例えば、他のプレイヤーのキャラクタ又はボールの位置が、ゲーム画面を生成するためのカメラの視点位置から所定の範囲内にあること、プレイヤーが操作中のキャラクタ又はボールから所定の範囲内にあること、カメラの視点位置とキャラクタ又はボールの間にあること、プレイヤーがキャラクタを移動させようとしている目標位置又はボールをショットしようとしている目標位置から所定の範囲内にあること、目標位置とキャラクタ又はボールの間にあること、キャラクタ又はボールの移動方向にあること、のうち少なくとも一つを含んでもよい。このような場合、対戦相手のキャラクタやボールが、自装置のキャラクタやボールに重なったり、ショットする方向やカップの方向に重なったり、パワーやインパクトを決定する際の指標となる動画像や指標などと重なったりして、プレイヤーによる操作の妨げになるおそれがあるので、対戦相手のキャラクタやボールを表示しない。対戦相手表示部48は、このような場合に、対戦相手のキャラクタやボールの透明度を上げて半透明化して表示させてもよい。対戦相手表示部48が、上記の条件に合致していない対戦相手のキャラクタやボールなどを半透明にして表示させる場合は、上記の条件に合致するキャラクタやボールの透明度を更に上げて、より透明な状態で表示させてもよい。
【0049】
対戦相手表示部48は、データ受信部47が、ゲーム画面の所定のフレーム数、例えば24フレーム分の情報を取得するまで待機してから、他のプレイヤーが操作中のキャラクタ又はボールをゲーム画面に表示させてもよい。前述したように、データ受信部47は、管理サーバ14から、8フレームごとに8フレーム分のデータを受信するが、通信状態によっては遅延が生じる場合もある。受信した8フレーム分のデータを表示させた後に、遅延により次のデータを受信できていない場合は、表示が止まってしまって不自然な動きになる。したがって、対戦相手表示部48は、24フレーム分のデータが蓄積されるまで待機してから表示に反映させる。これにより、24フレーム分のデータを表示させている間に、その次のデータを受信していれば、動きを止めることなくスムーズに他のプレイヤーのキャラクタやボールを表示させることができる。実際に通信の遅延が生じて蓄積されているデータが残り少なくなった場合も、視点の切り替えやホールアウトなどで画面が切り替わったときに、再び24フレーム分のデータが蓄積されるまで待機してもよい。シューティングゲームや格闘ゲームなど、対戦相手の状況をリアルタイムに確認しながらゲームを進行させる必要があるゲームとは異なり、ゴルフゲームやボーリングゲームなど、対戦相手の状況を確認しなくても単独で進行させることのできるゲームでは、対戦相手の状況の表示について、あまりリアルタイム性を要求されないので、予想される遅延時間分程度のデータを蓄積してから表示に反映させることで、よりスムーズな動きを表示させることができる。
【0050】
なお、ショット制御部41及び弾道算出部50は、他のプレイヤーが操作中のキャラクタやボールとは無関係に、キャラクタやボールの動作又は移動を制御する。上述したように、ゴルフゲームやボーリングゲームなどでは、対戦相手の状況にかかわらず、独立してゲームを進行させることができるので、ショット制御部41は、対戦相手の状況にかかわらず、プレイヤーズキャラクタのショットの操作をプレイヤーから受け付ける。また、弾道算出部50は、対戦相手のキャラクタやボールなどが弾道に存在していたとしてもコリジョン判定を行わず、存在しなかったものとして弾道を算出する。これにより、対戦相手の状況を表示しつつも、対戦相手とは無関係にゲームを進行させることができるので、ショットの待機時間などをなくし、迅速にゲームを進行させることができる。また、弾道の算出を簡素化し、処理負荷を軽減させることができる。
【0051】
画面生成部66は、弾道算出部50により算出されたボールの位置に応じて、ボールが画面に入るようにカメラの視点位置及び視線方向を設定し、ボールが飛ぶ様子を示す画面を生成して、表示装置68に表示する。このとき、対戦相手表示部48によりゲーム世界に配置された、対戦相手のキャラクタやボールなどもレンダリングされて表示される。
【0052】
対戦相手表示部48は、非表示とする条件に合致しなかった対戦相手のキャラクタの位置を示す座標と、キャラクタが向いている角度、所持しているクラブのタイプ、左打ち状態になっているか否かなどの情報を画面生成部66に通知して、キャラクタをゲーム世界に配置させる。また、キャラクタが何らかの動作を行っている場合は、その動作のモーションナンバーとモーションフレーム数を画面生成部66に通知する。さらに、対戦相手表示部48は、対戦相手のボールの位置を示す座標を画面生成部66に通知する。画面生成部66は、キャラクタの種別や服装などのデータに基づいて、記録媒体62からキャラクタの形状データを取得してレンダリングする。また、ボールの形状データを取得してレンダリングする。こうして、対戦相手のキャラクタ及びボールがゲーム画面に表示される。
【0053】
本実施の形態では、対戦相手のゲーム装置16における指示入力の情報などを取得して対戦相手のキャラクタのショットや弾道を算出するのではなく、レンダリングに必要な情報を取得してレンダリングのみを行うので、同時に対戦する相手が複数いたとしても、処理負荷の増大を抑え、リアルタイムにゲーム画面に表示させることができる。通信の遅延が生じたときのために、ボールの弾道を算出するのに必要なデータ、例えば速度ベクトルなどのデータも合わせてゲーム装置16間で送受信されてもよい。
【0054】
図9は、対戦相手のキャラクタやボールが表示されたゲーム画面の例を示す。ゲーム画面100には、自装置のキャラクタ160及びボール162に加えて、対戦相手のキャラクタ170やボール172などが表示されている。これにより、対戦相手の状況を確認しながらゲームを進行させることができる。キャラクタがショットする方向に存在するキャラクタ174は、半透明化されて表示されている。これにより、プレイヤーの操作の妨げにならないようにすることができる。前述したように、ゴルフゲームなどのゲームでは、対戦相手の状況が表示されることは必須ではないので、邪魔になるような位置にキャラクタやオブジェクトなどが表示される場合には、プレイヤーの操作性を重視して非表示又は半透明化する。これにより、対戦している感覚を与えつつ、プレイヤーの操作性を向上させることができる。
【0055】
図10は、対戦相手のキャラクタやボールを表示するか否かを判定する様子を説明するための図である。対戦相手表示部48は、自装置のボール162を中心とした所定の半径の円180の内部に存在する対戦相手のキャラクタ及びボールを非表示又は半透明とする。更に、対戦相手表示部48は、ボール162を中心とし、ショットの方向へ広がる扇形182の内部に存在する対戦相手のキャラクタ及びボールを非表示又は半透明とする。対戦相手表示部48は、さらに、自装置のキャラクタ160がスイングする軌道周辺の位置に存在する対戦相手のキャラクタ及びボールを非表示又は半透明としてもよい。
【0056】
図11は、ホールアウト時に表示されるスコアの表示画面の例を示す。プレイヤーがホールアウトすると、スコア管理部51は、管理サーバ14にスコアを通知する。大会管理部94は、通知されたスコアをもとに管理テーブル82を更新し、順位管理部95は順位を更新する。データ送信部93は、各プレイヤーのスコアと順位をホールアウトしたプレイヤーのゲーム装置16へ送信する。ゲーム装置16のスコア管理部51は、取得した対戦相手のスコア及び順位をゲーム画面100に表示する。いったんホールアウトした後にも、表示画面をホールに戻して、まだホールアウトしていない対戦相手のプレーを見ることができるようにしてもよい。
【0057】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0058】
実施の形態で説明した技術は、ゴルフ以外にも、レース、ボーリングなど、一人でも独立して行うことができ、対戦する場合にも、対戦相手の状況を必ずしもリアルタイムに表示させる必要のないゲームに適用可能である。
【0059】
実施の形態では、管理サーバを介して互いのゲームの状況に関するデータを送受信したが、管理サーバを介さずに、ゲーム装置間で直接データを送受信してもよい。また、1つのゲーム装置を用いて複数のプレイヤーが対戦する場合に、画面を分割してそれぞれのプレイヤーのゲーム画面を表示させる場合にも適用可能である。
【図面の簡単な説明】
【0060】
【図1】実施の形態に係るゲームシステムの構成を示す図である。
【図2】管理サーバの内部構成を示す図である。
【図3】管理テーブルの内部データの例を示す図である。
【図4】ゲーム装置の構成を示す図である。
【図5】プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す図である。
【図6】図6(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図7】図7(a)(b)は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図8】図8(a)(b)は、プレイヤーズキャラクタがダウンスイングする動作を行っているときのゲーム画面の例を示す図である。
【図9】対戦相手のキャラクタやボールが表示されたゲーム画面の例を示す図である。
【図10】対戦相手のキャラクタやボールを表示するか否かを判定する様子を説明するための図である。
【図11】ホールアウト時に表示されるスコアの表示画面の例を示す図である。
【符号の説明】
【0061】
10 ゲームシステム、14 管理サーバ、16 ゲーム装置、20 コントローラ、30 入力受付部、40 制御部、41 ショット制御部、42 カメラ制御部、44 パワー決定部、45 インパクト決定部、46 データ送信部、47 データ受信部、48 対戦相手表示部、50 弾道算出部、51 スコア管理部、60 パラメータ保持部、62 記録媒体、64 通信部、66 画面生成部、68 表示装置、80 通信部、82 管理テーブル、90 制御部、91 参加受付部、92 データ受信部、93 データ送信部、94 大会管理部、95 順位管理部。
【特許請求の範囲】
【請求項1】
プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する機能と、
前記キャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる機能と、
他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得する機能と、
前記ゲーム画面に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させる機能と、をコンピュータに実現させ、
前記表示させる機能は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させることを特徴とするゲーム制御プログラム。
【請求項2】
前記所定の条件は、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記ゲーム画面を生成するための視点位置から所定の範囲内にあること、前記プレイヤーが操作中のキャラクタ又はオブジェクトから所定の範囲内にあること、前記視点位置と前記キャラクタ又はオブジェクトの間にあること、前記プレイヤーが前記キャラクタ又はオブジェクトを移動させようとしている目標位置から所定の範囲内にあること、前記目標位置と前記キャラクタ又はオブジェクトの間にあること、前記キャラクタ又はオブジェクトの移動方向にあること、のうち少なくとも一つを含むことを特徴とする請求項1に記載のゲーム制御プログラム。
【請求項3】
前記制御する機能は、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトとは無関係に前記キャラクタ又はオブジェクトの動作又は移動を制御することを特徴とする請求項1又は2に記載のゲーム制御プログラム。
【請求項4】
前記取得する機能は、同時にゲームを行う複数のゲーム装置を管理する管理サーバから、他のゲーム装置において他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得し、
前記制御する機能により制御される前記キャラクタ又はオブジェクトに関する情報を前記管理サーバに送信する機能を更にコンピュータに実現させることを特徴とする請求項1から3のいずれかに記載のゲーム制御プログラム。
【請求項5】
前記取得する機能は、前記他のプレイヤーが操作中のキャラクタ又は前記オブジェクトの位置を示す情報を取得し、
前記表示させる機能は、前記ゲーム画面の所定のフレーム数分の前記位置を示す情報を取得するまで待機してから、前記位置を示す情報に基づいて、前記他のプレイヤーが操作中のキャラクタ又は前記オブジェクトを前記ゲーム画面に表示させることを特徴とする請求項1から4のいずれかに記載のゲーム制御プログラム。
【請求項6】
前記制御する機能は、前記プレイヤーが操作するキャラクタがゴルフをプレーするゲームを制御し、ホールのプレーが開始されてから前記キャラクタがホールアウトするまでの制限時間を設け、制限時間以内にホールアウトできなかった場合は、ゲームオーバーとすることを特徴とする請求項1から5のいずれかに記載のゲーム制御プログラム。
【請求項7】
前記制御する機能は、プレイヤーが他のプレイヤーよりも早くホールアウトした場合に、プレイヤーに利益を与えることを特徴とする請求項6に記載のゲーム制御プログラム。
【請求項8】
プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する制御部と、
他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得する取得部と、
前記キャラクタ又はオブジェクトと、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる表示部と、を備え、
前記表示部は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させることを特徴とするゲーム装置。
【請求項9】
プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御するステップと、
前記キャラクタ又はオブジェクトを含むゲーム画面を生成して表示させるステップと、
他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得するステップと、
前記ゲーム画面に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させるステップと、を備え、
前記表示させるステップは、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させることを特徴とするゲーム制御方法。
【請求項10】
請求項1から7のいずれかに記載のゲーム制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項11】
ゲームを実行する複数のゲーム装置が前記ゲームを並行して実行して対戦する大会への参加を受け付ける参加受付部と、
前記大会に参加しているゲーム装置から、前記ゲーム装置において実行中のゲームにおけるキャラクタ又はオブジェクトの位置を示す情報を受信するデータ受信部と、
前記ゲーム装置から受信した情報を、同一の大会に参加している複数のゲーム装置のうち、所定の条件に合致するゲーム装置へ送信するデータ送信部と、
を備えることを特徴とする管理サーバ。
【請求項12】
前記大会の順位を管理する管理部を更に備え、
前記データ送信部は、上位又は送信先のゲーム装置と順位の近いプレイヤー、或いは、送信先のゲーム装置のプレイヤーが予め登録していたプレイヤーの前記ゲーム装置へ送信することを特徴とする請求項11に記載の管理サーバ。
【請求項1】
プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する機能と、
前記キャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる機能と、
他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得する機能と、
前記ゲーム画面に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させる機能と、をコンピュータに実現させ、
前記表示させる機能は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させることを特徴とするゲーム制御プログラム。
【請求項2】
前記所定の条件は、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記ゲーム画面を生成するための視点位置から所定の範囲内にあること、前記プレイヤーが操作中のキャラクタ又はオブジェクトから所定の範囲内にあること、前記視点位置と前記キャラクタ又はオブジェクトの間にあること、前記プレイヤーが前記キャラクタ又はオブジェクトを移動させようとしている目標位置から所定の範囲内にあること、前記目標位置と前記キャラクタ又はオブジェクトの間にあること、前記キャラクタ又はオブジェクトの移動方向にあること、のうち少なくとも一つを含むことを特徴とする請求項1に記載のゲーム制御プログラム。
【請求項3】
前記制御する機能は、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトとは無関係に前記キャラクタ又はオブジェクトの動作又は移動を制御することを特徴とする請求項1又は2に記載のゲーム制御プログラム。
【請求項4】
前記取得する機能は、同時にゲームを行う複数のゲーム装置を管理する管理サーバから、他のゲーム装置において他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得し、
前記制御する機能により制御される前記キャラクタ又はオブジェクトに関する情報を前記管理サーバに送信する機能を更にコンピュータに実現させることを特徴とする請求項1から3のいずれかに記載のゲーム制御プログラム。
【請求項5】
前記取得する機能は、前記他のプレイヤーが操作中のキャラクタ又は前記オブジェクトの位置を示す情報を取得し、
前記表示させる機能は、前記ゲーム画面の所定のフレーム数分の前記位置を示す情報を取得するまで待機してから、前記位置を示す情報に基づいて、前記他のプレイヤーが操作中のキャラクタ又は前記オブジェクトを前記ゲーム画面に表示させることを特徴とする請求項1から4のいずれかに記載のゲーム制御プログラム。
【請求項6】
前記制御する機能は、前記プレイヤーが操作するキャラクタがゴルフをプレーするゲームを制御し、ホールのプレーが開始されてから前記キャラクタがホールアウトするまでの制限時間を設け、制限時間以内にホールアウトできなかった場合は、ゲームオーバーとすることを特徴とする請求項1から5のいずれかに記載のゲーム制御プログラム。
【請求項7】
前記制御する機能は、プレイヤーが他のプレイヤーよりも早くホールアウトした場合に、プレイヤーに利益を与えることを特徴とする請求項6に記載のゲーム制御プログラム。
【請求項8】
プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する制御部と、
他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得する取得部と、
前記キャラクタ又はオブジェクトと、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる表示部と、を備え、
前記表示部は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させることを特徴とするゲーム装置。
【請求項9】
プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御するステップと、
前記キャラクタ又はオブジェクトを含むゲーム画面を生成して表示させるステップと、
他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得するステップと、
前記ゲーム画面に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させるステップと、を備え、
前記表示させるステップは、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させることを特徴とするゲーム制御方法。
【請求項10】
請求項1から7のいずれかに記載のゲーム制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項11】
ゲームを実行する複数のゲーム装置が前記ゲームを並行して実行して対戦する大会への参加を受け付ける参加受付部と、
前記大会に参加しているゲーム装置から、前記ゲーム装置において実行中のゲームにおけるキャラクタ又はオブジェクトの位置を示す情報を受信するデータ受信部と、
前記ゲーム装置から受信した情報を、同一の大会に参加している複数のゲーム装置のうち、所定の条件に合致するゲーム装置へ送信するデータ送信部と、
を備えることを特徴とする管理サーバ。
【請求項12】
前記大会の順位を管理する管理部を更に備え、
前記データ送信部は、上位又は送信先のゲーム装置と順位の近いプレイヤー、或いは、送信先のゲーム装置のプレイヤーが予め登録していたプレイヤーの前記ゲーム装置へ送信することを特徴とする請求項11に記載の管理サーバ。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2008−264408(P2008−264408A)
【公開日】平成20年11月6日(2008.11.6)
【国際特許分類】
【出願番号】特願2007−114893(P2007−114893)
【出願日】平成19年4月24日(2007.4.24)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
【公開日】平成20年11月6日(2008.11.6)
【国際特許分類】
【出願日】平成19年4月24日(2007.4.24)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
[ Back to top ]