(57)【要約】【課題】利便性の高いゲーム制御技術を提供する。【解決手段】ゲーム装置１６は、プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する制御部４０と、他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得するデータ受信部４７と、キャラクタ又はオブジェクトと、他のプレイヤーが操作中のキャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる画面生成部６６と、を備える。対戦相手表示部４８は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、他のプレイヤーが操作中のキャラクタ又はオブジェクトがゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させる。【選択図】図４
2008264408.tif 000002
【特許請求の範囲】
【請求項１】
プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する機能と、
前記キャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる機能と、
他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得する機能と、
前記ゲーム画面に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させる機能と、をコンピュータに実現させ、
前記表示させる機能は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させることを特徴とするゲーム制御プログラム。
【請求項２】
前記所定の条件は、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記ゲーム画面を生成するための視点位置から所定の範囲内にあること、前記プレイヤーが操作中のキャラクタ又はオブジェクトから所定の範囲内にあること、前記視点位置と前記キャラクタ又はオブジェクトの間にあること、前記プレイヤーが前記キャラクタ又はオブジェクトを移動させようとしている目標位置から所定の範囲内にあること、前記目標位置と前記キャラクタ又はオブジェクトの間にあること、前記キャラクタ又はオブジェクトの移動方向にあること、のうち少なくとも一つを含むことを特徴とする請求項１に記載のゲーム制御プログラム。
【請求項３】
前記制御する機能は、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトとは無関係に前記キャラクタ又はオブジェクトの動作又は移動を制御することを特徴とする請求項１又は２に記載のゲーム制御プログラム。
【請求項４】
前記取得する機能は、同時にゲームを行う複数のゲーム装置を管理する管理サーバから、他のゲーム装置において他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得し、
前記制御する機能により制御される前記キャラクタ又はオブジェクトに関する情報を前記管理サーバに送信する機能を更にコンピュータに実現させることを特徴とする請求項１から３のいずれかに記載のゲーム制御プログラム。
【請求項５】
前記取得する機能は、前記他のプレイヤーが操作中のキャラクタ又は前記オブジェクトの位置を示す情報を取得し、
前記表示させる機能は、前記ゲーム画面の所定のフレーム数分の前記位置を示す情報を取得するまで待機してから、前記位置を示す情報に基づいて、前記他のプレイヤーが操作中のキャラクタ又は前記オブジェクトを前記ゲーム画面に表示させることを特徴とする請求項１から４のいずれかに記載のゲーム制御プログラム。
【請求項６】
前記制御する機能は、前記プレイヤーが操作するキャラクタがゴルフをプレーするゲームを制御し、ホールのプレーが開始されてから前記キャラクタがホールアウトするまでの制限時間を設け、制限時間以内にホールアウトできなかった場合は、ゲームオーバーとすることを特徴とする請求項１から５のいずれかに記載のゲーム制御プログラム。
【請求項７】
前記制御する機能は、プレイヤーが他のプレイヤーよりも早くホールアウトした場合に、プレイヤーに利益を与えることを特徴とする請求項６に記載のゲーム制御プログラム。
【請求項８】
プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する制御部と、
他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得する取得部と、
前記キャラクタ又はオブジェクトと、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる表示部と、を備え、
前記表示部は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させることを特徴とするゲーム装置。
【請求項９】
プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御するステップと、
前記キャラクタ又はオブジェクトを含むゲーム画面を生成して表示させるステップと、
他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得するステップと、
前記ゲーム画面に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させるステップと、を備え、
前記表示させるステップは、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、透明度を上げて表示させることを特徴とするゲーム制御方法。
【請求項１０】
請求項１から７のいずれかに記載のゲーム制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１１】
ゲームを実行する複数のゲーム装置が前記ゲームを並行して実行して対戦する大会への参加を受け付ける参加受付部と、
前記大会に参加しているゲーム装置から、前記ゲーム装置において実行中のゲームにおけるキャラクタ又はオブジェクトの位置を示す情報を受信するデータ受信部と、
前記ゲーム装置から受信した情報を、同一の大会に参加している複数のゲーム装置のうち、所定の条件に合致するゲーム装置へ送信するデータ送信部と、
を備えることを特徴とする管理サーバ。
【請求項１２】
前記大会の順位を管理する管理部を更に備え、
前記データ送信部は、上位又は送信先のゲーム装置と順位の近いプレイヤー、或いは、送信先のゲーム装置のプレイヤーが予め登録していたプレイヤーの前記ゲーム装置へ送信することを特徴とする請求項１１に記載の管理サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム制御技術に関し、とくに、複数のプレイヤーが対戦するゲームを制御するゲーム装置、ゲーム制御方法、ゲーム制御プログラム、及び管理サーバに関する。
【背景技術】
【０００２】
キャラクタを操作してゴルフをプレーするゲームが人気を博している。ゴルフは、現実の世界においても、幅広い年齢層にわたって競技人口が多く、不偏の人気を誇るスポーツである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
複数のプレイヤーが同時にゴルフゲームを行う場合、現実世界でのプレーと同様に、一人ずつ順番にショットを打っていくので、一人でプレーする場合に比べて多くの時間を要する。また、同時にプレーする人数が多くなるほど待ち時間が多くなり、ゲームの興味が薄れてしまう。
【０００４】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より娯楽性の高いゲーム制御技術を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、ゲーム制御プログラムに関する。このゲーム制御プログラムは、プレイヤーからの指示入力を受け付けてキャラクタ又はオブジェクトを制御する機能と、前記キャラクタ又はオブジェクトを含むゲーム画面を生成して表示させる機能と、他のプレイヤーが操作中のキャラクタ又はオブジェクトに関する情報を取得する機能と、前記ゲーム画面に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させる機能と、をコンピュータに実現させ、前記表示させる機能は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトが前記ゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、前記他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない、又は、半透明にして表示させることを特徴とする。
【０００６】
本発明の別の態様は、管理サーバに関する。この管理サーバは、ゲームを実行する複数のゲーム装置が前記ゲームを並行して実行して対戦する大会への参加を受け付ける参加受付部と、前記大会に参加しているゲーム装置から、前記ゲーム装置において実行中のゲームにおけるキャラクタ又はオブジェクトの位置を示す情報を受信するデータ受信部と、前記ゲーム装置から受信した情報を、同一の大会に参加している複数のゲーム装置のうち、所定の条件に合致するゲーム装置へ送信するデータ送信部と、を備えることを特徴とする。
【０００７】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００８】
本発明によれば、より娯楽性の高いゲーム制御技術を提供することができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態に係るゲームシステムは、複数のプレイヤーがリアルタイムに対戦するゲームを提供する。本実施の形態では、とくに、ゴルフを例にとって説明する。
【００１０】
複数のプレイヤーでゴルフをプレーする場合、通常、前ホールでのスコアに応じて順にティショットを打った後、ボールの位置がカップから遠いプレイヤーから順に２打目以降のショットを打っていく。このように、現実のゴルフと同様に順番にショットを打っていく方式では、複数のプレイヤーでコースに出て対戦している感覚を与えることはできるが、他のプレイヤーがショットしている間の待ち時間が長くなり、一人でプレーする場合に比べて多大な時間を要するという問題がある。
【００１１】
本実施の形態では、各プレイヤーは他のプレイヤーとは無関係に一人でゲームをしているときと同様にボールを打つことができるようにしつつ、他のプレイヤーが操作するキャラクタや、ショットしたボールの軌跡などをゲーム画面に表示することで、他のプレイヤーの状況も画面上で確認できるようにする。これにより、リアルタイムに他のプレイヤーと対戦している感覚を失うことなく、各プレイヤーが独立してゲームを進行させ、ゲームに要する時間を短縮させることができる。また、複数のプレイヤーが同じホールで同時にプレーしており、他のプレイヤーのボールが飛んでいる様子が表示される中でショットを行うなど、現実のゴルフでは味わうことのできない斬新なゲーム観を提供することができる。
【００１２】
さらに、他のプレイヤーのショットを画面で確認することができるので、他のプレイヤーの戦略を確認しつつ自分のショットを行うことができる。例えば、グリーン上で自分のボールの近くに他のプレイヤーのボールがある場合、他のプレイヤーがパットを行うまで待って、ボールの軌跡を確認してから自分のパットを行うことができる。逆に、先に自分がショットを進めて他のプレイヤーにプレッシャーを与えることもできる。ルール上の打つ順番とは関係なく、このような戦略をとることができる。
【００１３】
図１は、実施の形態に係るゲームシステム１０の構成を示す。ゲームシステム１０は、複数のゲーム装置１６と、複数のゲーム装置１６のプレイヤーが参加して対戦する大会を管理する管理サーバ１４とを備える。複数のゲーム装置１６と管理サーバ１４は、ネットワークの一例であるインターネット１２を介して接続されている。各ゲーム装置１６は、自装置で実行されているゲームの状況を示す情報を管理サーバ１４に送信するとともに、他のゲーム装置１６で実行されているゲームの状況を示す情報を管理サーバ１４から受信し、自装置のゲーム画面に、他のゲーム装置１６におけるゲームの状況もリアルタイムに表示する。
【００１４】
図２は、管理サーバ１４の内部構成を示す。管理サーバ１４は、通信部８０、制御部９０、及び管理テーブル８２を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００１５】
通信部８０は、インターネット１２を介したゲーム装置１６との間の通信を制御する。管理テーブル８２は、複数のゲーム装置１６が参加して対戦する大会を管理するために必要なデータを格納する。
【００１６】
図３は、管理テーブル８２の内部データの例を示す。管理テーブル８２には、プレイヤーＩＤ欄２０２、プレイヤー名欄２０４、ＩＰアドレス欄２０６、スコア欄２０８、順位欄２１０、及びフレンドリスト欄２１２が設けられる。プレイヤーＩＤ欄２０２には、大会に参加しているプレイヤーのＩＤが格納される。プレイヤー名欄２０４には、プレイヤーの名称が格納される。ＩＰアドレス欄２０６には、プレイヤーのゲーム装置１６に割り当てられているＩＰアドレスが格納される。スコア欄２０８には、プレイヤーのスコアが格納される。順位欄２１０には、プレイヤーの順位が格納される。フレンドリスト欄２１２には、プレイヤーが、チャットしたり互いの状況を通知し合ったりする相手として登録したプレイヤーのＩＤのリストを格納する。管理サーバ１４が、複数の大会を同時に管理する場合は、複数の管理テーブル８２が設けられる。
【００１７】
制御部９０は、参加受付部９１、データ受信部９２、データ送信部９３、大会管理部９４、及び順位管理部９５を備える。参加受付部９１は、ゲームを実行する複数のゲーム装置１６がゲームを並行して実行して対戦する大会への参加を受け付ける。参加受付部９１は、ウェブページなどを用いてゲーム装置１６から大会への参加を受け付けてもよい。この場合、管理サーバ１４は、ウェブサーバとして機能するための構成を備える。参加受付部９１は、ゲーム装置１６から大会への参加を受け付けると、そのゲーム装置１６のプレイヤーのプレイヤーＩＤ、プレイヤー名、フレンドリスト、及びそのゲーム装置１６のＩＰアドレスを取得して管理テーブル８２に登録する。プレイヤーに関する情報は、図示しないユーザデータベースなどに予め格納されていてもよい。この場合、参加受付部９１は、プレイヤーＩＤを用いてユーザデータベースを検索し、プレイヤー名やフレンドリストなどの情報を取得してもよい。
【００１８】
データ受信部９２は、大会に参加しているゲーム装置１６から、ゲーム装置１６において実行中のゲームにおけるキャラクタ又はオブジェクトの位置を示す情報を受信する。データ受信部９２は、各ゲーム装置１６が、他のゲーム装置１６で実行中のゲームにおけるキャラクタ又はオブジェクトを自装置のゲーム画面に表示させるために必要なデータを受信する。本実施の形態では、ゲーム画面８フレーム分の下記の情報を各ゲーム装置１６から受信する。
【００１９】
・ゲーム世界におけるボールの位置の絶対座標（１フレーム目）
・ゲーム世界におけるキャラクタの位置の絶対座標（１フレーム目、ＸＺのみ）
・ボールの前フレームからの位置の差分（２フレーム目以降７フレーム分）
・キャラクタの前フレームからの位置の差分（２フレーム目以降７フレーム分、ＸＺのみ）
・キャラクタの動作を示すモーションナンバー（例えば、ショット：１、パット：２、芝を蒔く：３など）
・キャラクタのモーションフレーム数：ショット、パット、芝を蒔く動作などの動作のうち何フレーム目であるかを示す数。
・キャラクタの向いている角度
・キャラクタに関する情報フラグ：キャラクタが持っているクラブのタイプ（ウッド、アイアン、パター）、左打ち状態になっているか否か（右打ちの位置に木などの障害物があってアドレスできない場合は左打ちになる）。クラブセットの種類、キャラクタの服装など、ホールをプレーしている間に変更されない情報は、ホール開始時に一度だけ送信される。
・キャラクタの状態を示すフラグ：ショットを打つ前のスタンバイ状態、スイング中、ボール飛行中、ボール停止状態、ホールアウト時のガッツポーズ中、ホールアウト後のスコアカード閲覧中など。
データ受信部９２は、これらの情報を管理テーブル８２に記録してもよい。
【００２０】
データ送信部９３は、ゲーム装置１６から受信した情報を、同一の大会に参加している複数のゲーム装置１６のうち、所定の条件に合致するゲーム装置１６へ送信する。
【００２１】
大会管理部９４は、大会の進行を管理する。本実施の形態では、大会を迅速に進行させるために、各ホールに制限時間を設け、制限時間内にホールアウトできなかったプレイヤーは失格させる。管理サーバ１４側で制限時間を管理してもよいが、本実施の形態では、各ゲーム装置１６が制限時間を管理し、プレイヤーが制限時間内にホールアウトできなかった場合は、管理サーバ１４へその旨を通知する。大会管理部９４は、失格した旨の通知を受けると、管理テーブル８２の該当するプレイヤーの順位欄２１０に失格したことを示す「−１」を格納する。データ送信部９３は、失格したプレイヤーのゲーム装置１６には他のゲーム装置１６の情報を送信しない。大会管理部９４は、早くホールアウトしたプレイヤーに、ボーナスポイントを与えたり、特殊な効果のあるショットを打つ能力を与えたりするなどの利益を与えてもよい。
【００２２】
順位管理部９５は、大会に参加しているプレイヤーの順位を管理する。順位管理部９５は、各ゲーム装置１６からホールアウトしたプレイヤーのスコアをホールごとに取得し、管理テーブル８２のスコア欄２０８を更新するとともに、スコアに基づいて順位を算出して順位欄２１０を更新する。
【００２３】
データ送信部９３は、大会に参加しているプレイヤーのうち、上位から所定数のプレイヤーのゲーム装置１６から受信した情報を各ゲーム装置１６へ送信してもよい。これにより、各プレイヤーは、上位のプレイヤーのプレーを参考にしながらゲームを進行させることができる。データ送信部９３は、データの送信先のゲーム装置１６と順位の近い所定数のプレイヤーを抽出し、抽出されたプレイヤーのゲーム装置１６から受信した情報を送信先のゲーム装置１６へ送信してもよい。これにより、各プレイヤーは、自身と順位の近いプレイヤーのプレーを画面上で確認しながらプレーを進めることができる。データ送信部９３は、データの送信先のゲーム装置１６のプレイヤーがフレンドリストに登録している相手のゲーム装置１６から受信した情報を送信してもよい。このように、大会に参加しているプレイヤーの数が多くても、適当な数のプレイヤーを抽出して、抽出したプレイヤーのゲームの状況を示す情報を送信するので、各ゲーム装置１６の処理負荷を不適切に増大させることなく、他のゲーム装置１６の状況を表示させることができる。
【００２４】
データ送信部９３は、ゲーム装置１６から情報を受信したときに、その情報をすぐに他のゲーム装置１６へ送信してもよいし、そのゲーム装置１６へ情報を送信すべき全てのゲーム装置１６の情報が揃ってからまとめて送信してもよい。
【００２５】
図４は、ゲーム装置１６の構成を示す。ゲーム装置１６は、コントローラ２０、入力受付部３０、制御部４０、パラメータ保持部６０、記録媒体６２、通信部６４、画面生成部６６、及び表示装置６８を備える。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
【００２６】
通信部６４は、インターネット１２を介した管理サーバ１４との間の通信を制御する。入力受付部３０は、プレイヤーが操作するコントローラ２０から入力される制御信号を受け付ける。制御部４０は、ゴルフゲームのプログラムが格納された記録媒体６２からプログラムを読み出して実行し、入力受付部３０が受け付けたプレイヤーからの操作入力に基づいて、ゲーム世界においてゴルフプレイヤーとして機能するプレイヤーズキャラクタの動作を制御しつつ、ゴルフゲームを進行させる。パラメータ保持部６０は、ゴルフゲームの進行に必要なパラメータを保持する。画面生成部６６は、制御部４０により制御されるゲームの画面を生成し、表示装置６８に表示させる。
【００２７】
ショット制御部４１は、プレイヤーズキャラクタによるショットを制御する。ショット制御部４１は、カメラ制御部４２、パワー決定部４４、及びインパクト決定部４５を含む。
【００２８】
図５は、プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す。ゲーム画面１００には、プレー中のホールの地形がレンダリングされた画像と、プレイヤーズキャラクタを後方から見た画像が表示されている。プレイヤーは、この画面において、コントローラ２０を操作してショットのパワーとインパクトを決定し、プレイヤーズキャラクタにショットを行わせる。
【００２９】
カメラ制御部４２は、画面生成部６６がゲーム画面を生成する際のカメラの視点位置及び視線方向を制御する。カメラ制御部４２は、プレイヤーズキャラクタがショットを行うときのゲーム画面を生成する場合、初期設定として、プレイヤーズキャラクタの後方に視点位置を設定し、プレイヤーズキャラクタを見る方向に視線方向を設定する。プレイヤーは、ホールの地形を確認したり、ショットする方向や距離などを判断したりするために、コントローラ２０を操作して視点位置や視線方向を変更することができる。カメラ制御部４２は、後述するように、プレイヤーからの操作入力に応じて、カメラの視点位置及び視線方向を変更し、画面生成部６６に通知する。
【００３０】
パワー決定部４４は、プレイヤーズキャラクタのショットのパワーを決定する。パワー決定部４４は、ショットを開始する指示が割り当てられた操作入力をコントローラ２０から受け付けると、画面生成部６６に、プレイヤーズキャラクタがボールをショットするためにテークバックする動作を行っている画面を生成させ、表示装置６８に表示させる。プレイヤーは、プレイヤーズキャラクタがテークバックする動作の進行の度合いを指標として、パワーを決定する指示が割り当てられた操作入力をコントローラ２０により行う。パワー決定部４４は、パワーを決定するための操作入力を受け付けた時点におけるプレイヤーズキャラクタのショットする動作の進行の度合いに応じて、ショットのパワーを決定する。パワー決定部４４は、決定したパワーを弾道算出部５０に通知する。
【００３１】
図６（ａ）（ｂ）は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。図６（ａ）は、プレイヤーズキャラクタがテークバックを開始してから、フルスイングに要する時間の半分の時間が経過したときの状態を示す。この時点でプレイヤーから操作入力を受け付けると、パワー決定部４４は、ショットのパワーを５０％と決定する。図６（ｂ）は、プレイヤーズキャラクタがトップオブスイングに至った状態を示す。この時点でプレイヤーから操作入力を受け付けると、パワー決定部４４は、ショットのパワーを１００％と決定する。パワー決定部４４は、テークバック中に操作入力を受け付けずにトップスイングに至った場合、素振りであったことにしてショットを行わないようにしてもよい。
【００３２】
カメラ制御部４２は、プレイヤーズキャラクタがショットを行うときのゲーム画面を表示しているときに、プレイヤーからの指示入力に応じて、画面を生成する際の視点位置又は視線方向を変更するよう、画面生成部６６に指示する。ボールの周辺の地形や障害物などの状態によっては、プレイヤーズキャラクタのテークバック動作が見づらい可能性がある。このとき、プレイヤーがパワーを決定するための操作入力を行うタイミングを計りづらくなってしまうので、カメラ制御部４２は、プレイヤーズキャラクタのテークバック動作が見やすいように、カメラの視点位置又は視線方向を変更する。
【００３３】
図７（ａ）（ｂ）は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す。図７（ａ）に示すように、木などの障害物が邪魔になり、プレイヤーズキャラクタを後方から見た画面では、テークバック動作が見づらい場合がある。このとき、プレイヤーは、コントローラ２０の方向キーなどを用いて、カメラの視点位置又は視線方向を切り替える操作入力を行う。カメラ制御部４２は、プレイヤーからの操作入力に応じて、図７（ｂ）に示すように、プレイヤーズキャラクタのテークバック動作が見やすい画面となるように、カメラの視点位置又は視線方向を変更する。図７（ｂ）に示すように、プレイヤーズキャラクタの側方に視点位置を設定することにより、プレイヤーズキャラクタのテークバック動作の進行の度合いがより分かりやすくなり、操作性の良いユーザインタフェースを実現することができる。
【００３４】
カメラ制御部４２は、自動的に、プレイヤーズキャラクタのテークバック動作が見やすい位置にカメラの視点位置を移動させてもよい。とくに、プレイヤーズキャラクタがパッティングを行う場合は、テークバック動作が小さく、プレイヤーズキャラクタの後方から見てもパターの動きが分かりづらいので、カメラ制御部４２は、プレイヤーズキャラクタの側方にカメラの視点位置を切り替えてもよい。
【００３５】
インパクト決定部４５は、プレイヤーズキャラクタのショットのインパクトを決定する。インパクト決定部４５は、パワー決定部４４によりショットのパワーが決定された後、画面生成部６６に、プレイヤーズキャラクタがダウンスイングする動作を行っている画面を生成させ、表示装置６８に表示させる。プレイヤーは、プレイヤーズキャラクタがダウンスイングしてボールを打撃するタイミングに合わせて、インパクトを決定する指示が割り当てられた操作入力をコントローラ２０により行う。インパクト決定部４５は、プレイヤーズキャラクタがダウンスイングしてボールを打撃する時点と、インパクトを決定するための操作入力を受け付けた時点との時間差に応じて、ショットのインパクトを決定する。インパクト決定部４５は、決定したインパクトを弾道算出部５０に通知する。このとき、インパクトが１００％になる瞬間よりも速く操作入力を受け付けた場合はマイナス、遅い場合はプラスの符号をつけるなどして、タイミングが速かったのか遅かったのかを表現してもよい。
【００３６】
インパクト決定部４５は、タイミングをとるための指標の補助として、画面生成部６６に、時間の経過にしたがって収縮し、プレイヤーズキャラクタがボールを打撃する時点、すなわち、最も高いインパクトでショットすることができる時点で最小となる図形を含む画面を生成させ、表示装置６８に表示させる。プレイヤーは、収縮する図形を更に指標として、インパクトを決定するための操作入力を行うことができる。インパクト決定部４５は、ボールの位置を中心又は重心とした図形を表示し、ボールの位置に収束するように収縮させてもよい。これにより、プレイヤーが、プレイヤーズキャラクタがダウンスイングしている様子と、図形が収縮する様子の双方を視認しながら操作を行うことができ、より操作性の良いユーザインタフェースを実現することができる。
【００３７】
インパクト決定部４５は、例えば、プレイヤーズキャラクタがボールを打撃する時点、すなわち時間差がゼロである時点でのインパクトを１００％、時間差が所定の上限値となる時点でのインパクトを所定の下限値として、操作入力を受け付けた時点でのインパクトを内分により決定してもよい。後述するように、弾道算出部５０では、インパクト決定部４５により決定されたインパクトの値が低いほど、狙った着地点から大きく外れるように、飛距離や方向などが補正される。インパクト決定部４５は、プレイヤーズキャラクタのダウンスイングがボールを通過した後、操作入力を受け付けずに時間差が所定の上限値を超えた場合、素振りであったことにしてショットを行わないようにしてもよいし、インパクトを自動的に所定の下限値に設定してショットを行わせてもよい。
【００３８】
図８（ａ）（ｂ）は、プレイヤーズキャラクタがダウンスイングする動作を行っているときのゲーム画面の例を示す。図８（ａ）は、プレイヤーズキャラクタがダウンスイングを開始したときの状態を示す。インパクト決定部４５は、タイミングを計るための指標の補助として円１２０を表示している。また、インパクトが下限値となるときの円１２０の直径を示す図形１２２と、インパクトが上限値、例えば１００％となるときの円１２０の直径を示す図形１２４とを表示している。円１２０の直径が図形１２２が示す直径よりも大きいときに操作入力を受け付けた場合、インパクト決定部４５は、インパクトを所定の下限値に設定してもよい。また、この場合、後述するように、弾道算出部５０は、このショットをミスショットとして扱ってもよい。円１２０の直径が図形１２４が示す直径よりも小さいときに操作入力を受け付けた場合、インパクト決定部４５は、インパクトを所定の上限値、例えば１００％に設定してもよい。円１２０の直径が図形１２２が示す直径よりも小さく、図形１２４が示す直径よりも大きいときに操作入力を受け付けた場合、インパクト決定部４５は、操作入力を受け付けたタイミングに応じて、所定の上限値と下限値の間の値を設定してもよい。図８（ｂ）は、プレイヤーズキャラクタがボールを打撃する直前の状態を示す。インパクト決定部４５は、円１２０を収縮させ、プレイヤーズキャラクタがボールを打撃する瞬間に最小となるようにする。インパクト決定部４５は、プレイヤーズキャラクタがボールを打撃する瞬間まで操作入力を受け付けなかった場合、それ以降は円１２０を膨張させてもよい。この場合も、円１２０の直径が図形１２４が示す直径よりも小さい間はインパクトを上限値とし、図形１２２が示す直径よりも大きくなるとインパクトを下限値としてもよい。円１２０が図形１２２が示す直径よりも大きくなった時点でも操作入力を受け付けなかった場合は、自動的にインパクトを下限値に設定してショットを行わせてもよい。別の例として、インパクト決定部４５は、円１２０の直径が図形１２２が示す直径よりも大きいときはインパクトを下限値とし、直径が小さくなるほどインパクトが大きくなるようにし、図形１２４が示す直径と同じときにインパクトを上限値としてもよい。そして、それ以降は、円１２０の直径が図形１２４が示す直径よりも小さくなるにつれてインパクトが徐々に小さくなるようにしてもよい。
【００３９】
更に別の例として、インパクト決定部４５は、時間の経過にしたがって左右又は上下に、或いは任意の直線又は曲線上を移動する図形と、インパクトが最大となる図形の位置とを示すゲージを表示させ、プレイヤーが操作入力を行うタイミングをとるための指標としてもよい。また、インパクト決定部４５は、コントローラ２０のアナログスティックを倒す角度、速度、圧力などに応じてショットのインパクトやパワーを決定してもよい。
【００４０】
弾道算出部５０は、ショット制御部４１により決定されたショットのパワー及びインパクトと、ボールのライ、風、地形などの外部要因に基づいて、ショットされたボールの弾道を物理計算により算出する。
【００４１】
弾道算出部５０は、ショットに用いたクラブに応じて予め設定された初速度及びロフト角をパラメータ保持部６０から読み出す。弾道算出部５０は、読み出した初速度に、パワー決定部４４により決定されたパワー、インパクト決定部４５により決定されたインパクト、プレイヤーズキャラクタごとに設定された体力などの属性値、ボールのライなどに応じて初速度又はロフト角を調整する。例えば、パワーやインパクトが高いほど初速度が速くなるように、パワーやインパクトの％値を初速度に乗じてもよい。また、インパクトの値が小さいほど狙った着地点からずれるように、ボールの飛ぶ方向や速度などを調整してもよい。例えば、インパクトが１００％になる瞬間よりも速く操作入力を受け付けた場合はボールの軌道を右に曲げてスライスボールとし、遅い場合は左に曲げてフックボールとしてもよい。また、インパクトが所定の下限値以下であった場合は、ミスショットとして扱い、極端に初速度を小さくして弾道を算出してもよい。ラフやバンカーの場合は、フェアウェイよりも初速度を低くしてもよい。また、ボールの接地面の傾斜が大きければ初速度を低くしてもよい。ショットの際にプレイヤーが初速度やロフト角を変更する操作入力を行った場合には、さらにその影響を考慮して初速度やロフト角を調整してもよい。
【００４２】
弾道算出部５０は、初速度とロフト角を決定すると、ボールに作用する力に応じて速度を調整しつつ、ボールの位置をフレームごとに算出する。弾道算出部５０は、ボールの現在位置の座標に対して、フレームを単位とした速度を加算し、次のフレームにおけるボールの位置の座標を算出する。ボールの速度には、フレームごとに、重力、揚力、風力、空気抵抗が加算される。重力については、物理法則に則って、下向きに、９．８メートル毎秒毎秒とする。揚力は、上向きに、速度に比例する値とする。風力は、ホールの全ての場所において一定方向に一定速度としてもよいし、場所に応じて変化させてもよい。空気抵抗は、進行方向と逆向きに、速度に比例する値とする。このように、風の方向及び速度を考慮してボールの弾道を算出することにより、現実のゴルフと同様に、風の影響を考慮しながらショットを行う難しさを演出することができ、よりリアリティのあるゴルフゲームを実現することができる。
【００４３】
ボールが何かに衝突した場合は、衝突した面の属性に応じて予め設定された摩擦係数及び反発係数にしたがって、水平方向及び垂直方向の速度を調整する。摩擦係数及び反発係数は、フェアウェイ、ラフ、バンカーなどによって異なる値を設定してもよい。弾道算出部５０は、さらに、演出効果として、物理法則とは関係のない特殊な演算を弾道に与えてもよい。これにより、ゴルフゲームに変化を持たせ、ゲームの娯楽性を向上させることができる。
【００４４】
スコア管理部５１は、プレイヤーズキャラクタのスコアを管理する。スコア管理部５１は、プレイヤーズキャラクタがホールアウトすると、そのホールのスコアをパラメータ保持部６０に記録する。また、スコア管理部５１は、プレイヤーズキャラクタがホールアウトして、次のホールのティーショットを行うまでの間に、スコアボードを表示する。前述したように、本実施の形態では、各ホールに制限時間が設けられているので、スコア管理部５１は、ホールのプレーの開始時からタイマを用いて時間の経過を測定し、残り時間を画面に表示する。スコア管理部５１は、制限時間までにプレイヤーがホールアウトできなかった場合、ゲームオーバーとし、管理サーバ１４にその旨を通知する。
【００４５】
データ送信部４６は、自装置のゲームの状況を他のゲーム装置１６へ通知するための送信データを生成して管理サーバ１４へ送信する。送信データは、前述したように、キャラクタの位置やボールの位置を示す情報などを含む。データ送信部４６は、ゲーム画面８フレーム分のデータをまとめて、８フレームごとに管理サーバ１４へ送信する。
【００４６】
データ受信部４７は、他のゲーム装置１６の状況に関する情報を管理サーバ１４から受信し、パラメータ保持部６０に格納する。
【００４７】
対戦相手表示部４８は、データ受信部４７が受信した情報に基づいて、対戦相手のゲーム装置１６の状況を自装置のゲーム画面に表示させる。対戦相手表示部４８は、ゲーム画面に、他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示させる。
【００４８】
対戦相手表示部４８は、他のプレイヤーが操作中のキャラクタ又はオブジェクトの位置が、他のプレイヤーが操作中のキャラクタ又はオブジェクトがゲーム画面に表示されることでプレイヤーによるゲームの進行が妨げられるような所定の条件に合致する場合に、他のプレイヤーが操作中のキャラクタ又はオブジェクトを表示しない。この所定の条件は、例えば、他のプレイヤーのキャラクタ又はボールの位置が、ゲーム画面を生成するためのカメラの視点位置から所定の範囲内にあること、プレイヤーが操作中のキャラクタ又はボールから所定の範囲内にあること、カメラの視点位置とキャラクタ又はボールの間にあること、プレイヤーがキャラクタを移動させようとしている目標位置又はボールをショットしようとしている目標位置から所定の範囲内にあること、目標位置とキャラクタ又はボールの間にあること、キャラクタ又はボールの移動方向にあること、のうち少なくとも一つを含んでもよい。このような場合、対戦相手のキャラクタやボールが、自装置のキャラクタやボールに重なったり、ショットする方向やカップの方向に重なったり、パワーやインパクトを決定する際の指標となる動画像や指標などと重なったりして、プレイヤーによる操作の妨げになるおそれがあるので、対戦相手のキャラクタやボールを表示しない。対戦相手表示部４８は、このような場合に、対戦相手のキャラクタやボールの透明度を上げて半透明化して表示させてもよい。対戦相手表示部４８が、上記の条件に合致していない対戦相手のキャラクタやボールなどを半透明にして表示させる場合は、上記の条件に合致するキャラクタやボールの透明度を更に上げて、より透明な状態で表示させてもよい。
【００４９】
対戦相手表示部４８は、データ受信部４７が、ゲーム画面の所定のフレーム数、例えば２４フレーム分の情報を取得するまで待機してから、他のプレイヤーが操作中のキャラクタ又はボールをゲーム画面に表示させてもよい。前述したように、データ受信部４７は、管理サーバ１４から、８フレームごとに８フレーム分のデータを受信するが、通信状態によっては遅延が生じる場合もある。受信した８フレーム分のデータを表示させた後に、遅延により次のデータを受信できていない場合は、表示が止まってしまって不自然な動きになる。したがって、対戦相手表示部４８は、２４フレーム分のデータが蓄積されるまで待機してから表示に反映させる。これにより、２４フレーム分のデータを表示させている間に、その次のデータを受信していれば、動きを止めることなくスムーズに他のプレイヤーのキャラクタやボールを表示させることができる。実際に通信の遅延が生じて蓄積されているデータが残り少なくなった場合も、視点の切り替えやホールアウトなどで画面が切り替わったときに、再び２４フレーム分のデータが蓄積されるまで待機してもよい。シューティングゲームや格闘ゲームなど、対戦相手の状況をリアルタイムに確認しながらゲームを進行させる必要があるゲームとは異なり、ゴルフゲームやボーリングゲームなど、対戦相手の状況を確認しなくても単独で進行させることのできるゲームでは、対戦相手の状況の表示について、あまりリアルタイム性を要求されないので、予想される遅延時間分程度のデータを蓄積してから表示に反映させることで、よりスムーズな動きを表示させることができる。
【００５０】
なお、ショット制御部４１及び弾道算出部５０は、他のプレイヤーが操作中のキャラクタやボールとは無関係に、キャラクタやボールの動作又は移動を制御する。上述したように、ゴルフゲームやボーリングゲームなどでは、対戦相手の状況にかかわらず、独立してゲームを進行させることができるので、ショット制御部４１は、対戦相手の状況にかかわらず、プレイヤーズキャラクタのショットの操作をプレイヤーから受け付ける。また、弾道算出部５０は、対戦相手のキャラクタやボールなどが弾道に存在していたとしてもコリジョン判定を行わず、存在しなかったものとして弾道を算出する。これにより、対戦相手の状況を表示しつつも、対戦相手とは無関係にゲームを進行させることができるので、ショットの待機時間などをなくし、迅速にゲームを進行させることができる。また、弾道の算出を簡素化し、処理負荷を軽減させることができる。
【００５１】
画面生成部６６は、弾道算出部５０により算出されたボールの位置に応じて、ボールが画面に入るようにカメラの視点位置及び視線方向を設定し、ボールが飛ぶ様子を示す画面を生成して、表示装置６８に表示する。このとき、対戦相手表示部４８によりゲーム世界に配置された、対戦相手のキャラクタやボールなどもレンダリングされて表示される。
【００５２】
対戦相手表示部４８は、非表示とする条件に合致しなかった対戦相手のキャラクタの位置を示す座標と、キャラクタが向いている角度、所持しているクラブのタイプ、左打ち状態になっているか否かなどの情報を画面生成部６６に通知して、キャラクタをゲーム世界に配置させる。また、キャラクタが何らかの動作を行っている場合は、その動作のモーションナンバーとモーションフレーム数を画面生成部６６に通知する。さらに、対戦相手表示部４８は、対戦相手のボールの位置を示す座標を画面生成部６６に通知する。画面生成部６６は、キャラクタの種別や服装などのデータに基づいて、記録媒体６２からキャラクタの形状データを取得してレンダリングする。また、ボールの形状データを取得してレンダリングする。こうして、対戦相手のキャラクタ及びボールがゲーム画面に表示される。
【００５３】
本実施の形態では、対戦相手のゲーム装置１６における指示入力の情報などを取得して対戦相手のキャラクタのショットや弾道を算出するのではなく、レンダリングに必要な情報を取得してレンダリングのみを行うので、同時に対戦する相手が複数いたとしても、処理負荷の増大を抑え、リアルタイムにゲーム画面に表示させることができる。通信の遅延が生じたときのために、ボールの弾道を算出するのに必要なデータ、例えば速度ベクトルなどのデータも合わせてゲーム装置１６間で送受信されてもよい。
【００５４】
図９は、対戦相手のキャラクタやボールが表示されたゲーム画面の例を示す。ゲーム画面１００には、自装置のキャラクタ１６０及びボール１６２に加えて、対戦相手のキャラクタ１７０やボール１７２などが表示されている。これにより、対戦相手の状況を確認しながらゲームを進行させることができる。キャラクタがショットする方向に存在するキャラクタ１７４は、半透明化されて表示されている。これにより、プレイヤーの操作の妨げにならないようにすることができる。前述したように、ゴルフゲームなどのゲームでは、対戦相手の状況が表示されることは必須ではないので、邪魔になるような位置にキャラクタやオブジェクトなどが表示される場合には、プレイヤーの操作性を重視して非表示又は半透明化する。これにより、対戦している感覚を与えつつ、プレイヤーの操作性を向上させることができる。
【００５５】
図１０は、対戦相手のキャラクタやボールを表示するか否かを判定する様子を説明するための図である。対戦相手表示部４８は、自装置のボール１６２を中心とした所定の半径の円１８０の内部に存在する対戦相手のキャラクタ及びボールを非表示又は半透明とする。更に、対戦相手表示部４８は、ボール１６２を中心とし、ショットの方向へ広がる扇形１８２の内部に存在する対戦相手のキャラクタ及びボールを非表示又は半透明とする。対戦相手表示部４８は、さらに、自装置のキャラクタ１６０がスイングする軌道周辺の位置に存在する対戦相手のキャラクタ及びボールを非表示又は半透明としてもよい。
【００５６】
図１１は、ホールアウト時に表示されるスコアの表示画面の例を示す。プレイヤーがホールアウトすると、スコア管理部５１は、管理サーバ１４にスコアを通知する。大会管理部９４は、通知されたスコアをもとに管理テーブル８２を更新し、順位管理部９５は順位を更新する。データ送信部９３は、各プレイヤーのスコアと順位をホールアウトしたプレイヤーのゲーム装置１６へ送信する。ゲーム装置１６のスコア管理部５１は、取得した対戦相手のスコア及び順位をゲーム画面１００に表示する。いったんホールアウトした後にも、表示画面をホールに戻して、まだホールアウトしていない対戦相手のプレーを見ることができるようにしてもよい。
【００５７】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５８】
実施の形態で説明した技術は、ゴルフ以外にも、レース、ボーリングなど、一人でも独立して行うことができ、対戦する場合にも、対戦相手の状況を必ずしもリアルタイムに表示させる必要のないゲームに適用可能である。
【００５９】
実施の形態では、管理サーバを介して互いのゲームの状況に関するデータを送受信したが、管理サーバを介さずに、ゲーム装置間で直接データを送受信してもよい。また、１つのゲーム装置を用いて複数のプレイヤーが対戦する場合に、画面を分割してそれぞれのプレイヤーのゲーム画面を表示させる場合にも適用可能である。
【図面の簡単な説明】
【００６０】
【図１】実施の形態に係るゲームシステムの構成を示す図である。
【図２】管理サーバの内部構成を示す図である。
【図３】管理テーブルの内部データの例を示す図である。
【図４】ゲーム装置の構成を示す図である。
【図５】プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す図である。
【図６】図６（ａ）（ｂ）は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図７】図７（ａ）（ｂ）は、プレイヤーズキャラクタがテークバックする動作を行っているときのゲーム画面の例を示す図である。
【図８】図８（ａ）（ｂ）は、プレイヤーズキャラクタがダウンスイングする動作を行っているときのゲーム画面の例を示す図である。
【図９】対戦相手のキャラクタやボールが表示されたゲーム画面の例を示す図である。
【図１０】対戦相手のキャラクタやボールを表示するか否かを判定する様子を説明するための図である。
【図１１】ホールアウト時に表示されるスコアの表示画面の例を示す図である。
【符号の説明】
【００６１】
１０  ゲームシステム、１４  管理サーバ、１６  ゲーム装置、２０  コントローラ、３０  入力受付部、４０  制御部、４１  ショット制御部、４２  カメラ制御部、４４  パワー決定部、４５  インパクト決定部、４６  データ送信部、４７  データ受信部、４８  対戦相手表示部、５０  弾道算出部、５１  スコア管理部、６０  パラメータ保持部、６２  記録媒体、６４  通信部、６６  画面生成部、６８  表示装置、８０  通信部、８２  管理テーブル、９０  制御部、９１  参加受付部、９２  データ受信部、９３  データ送信部、９４  大会管理部、９５  順位管理部。
【図１】
2008264408.tif 000003
【図２】
2008264408.tif 000004
【図３】
2008264408.tif 000005
【図４】
2008264408.tif 000006
【図５】
2008264408.tif 000007
【図６】
2008264408.tif 000008
【図７】
2008264408.tif 000009
【図８】
2008264408.tif 000010
【図９】
2008264408.tif 000011
【図１０】
2008264408.tif 000012
【図１１】
2008264408.tif 000013