(57)【特許請求の範囲】
【請求項１】
コンピュータを、
ユーザから操作入力を受け付ける入力受付部、
前記操作入力に応じてプレイヤーズキャラクタがゴルフをプレーするゲームを制御する制御部、
前記ゲームの画面を表示する画面生成部、として機能させ、
前記制御部は、
ユーザが入力デバイスを把持してスイングするときに、ショット開始時における前記入力デバイスの位置と、インパクト時における前記入力デバイスの位置とを取得し、それらを比較することにより、インパクトの位置を決定するインパクト決定部と、
前記インパクト決定部により決定されたインパクトの位置に基づいて、打撃されたボールの弾道を算出する弾道算出部と、を含む
ことを特徴とするゲーム制御プログラム。
【請求項２】
前記インパクト決定部は、前記入力デバイスを撮像するための撮像装置により撮像された前記入力デバイスの画像を解析することにより前記入力デバイスの位置を取得することを特徴とする請求項１に記載のゲーム制御プログラム。
【請求項３】
前記インパクト決定部は、前記画像を解析することにより、前記入力デバイスと前記撮像装置との間の距離と、前記画像における前記入力デバイスの位置座標とを取得し、ショット開始時における前記入力デバイスと前記撮像装置との間の距離と同じ距離に前記入力デバイスが戻ったときの前記画像における前記入力デバイスの位置座標と、ショット開始時の前記画像における前記入力デバイスの位置座標とを比較することにより、インパクトの位置を決定することを特徴とする請求項２に記載のゲーム制御プログラム。
【請求項４】
前記インパクト決定部は、前記プレイヤーズキャラクタ又は前記ユーザの属性に応じて、インパクトの位置を補正することを特徴とする請求項１から３のいずれかに記載のゲーム制御プログラム。
【請求項５】
前記弾道算出部は、前記入力デバイスに備えられた前記入力デバイスの速度、加速度、角速度、又は姿勢を検知するセンサから取得したセンサ値を更に用いて、打撃されたボールの弾道を算出することを特徴とする請求項１から４のいずれかに記載のゲーム制御プログラム。
【請求項６】
前記制御部は、ユーザがテークバックした度合いに応じてショットのパワーを決定するパワー決定部を更に含み、
前記パワー決定部は、ユーザが前記入力デバイスを把持してテークバックするときに、前記入力デバイスの位置を取得してテークバックの度合いを判定し、判定されたテークバックの度合いに応じて、その位置からダウンスイングしてボールを打撃したときのパワーの目安を示す指標を画面に表示する
ことを特徴とする請求項１から５のいずれかに記載のゲーム制御プログラム。
【請求項７】
ユーザから操作入力を受け付ける入力受付部と、
前記操作入力に応じてプレイヤーズキャラクタがゴルフをプレーするゲームを制御する制御部と、
前記ゲームの画面を生成する画面生成部と、を備え、
前記制御部は、
ユーザが入力デバイスを把持してスイングするときに、ショット開始時における前記入力デバイスの位置と、インパクト時における前記入力デバイスの位置とを取得し、それらを比較することにより、インパクトの位置を決定するインパクト決定部と、
前記インパクト決定部により決定されたインパクトの位置に基づいて、打撃されたボールの弾道を算出する弾道算出部と、を含む
ことを特徴とするゲーム装置。
【請求項８】
コンピュータに備えられた入力受付部が、ユーザから操作入力を受け付けるステップと、
コンピュータに備えられた制御部が、前記操作入力に応じてプレイヤーズキャラクタがゴルフをプレーするゲームを制御するステップと、
コンピュータに備えられた画面生成部が、前記ゲームの画面を表示するステップと、を含み、
前記制御部は、
ユーザが入力デバイスを把持してスイングするときに、ショット開始時における前記入力デバイスの位置と、インパクト時における前記入力デバイスの位置とを取得し、それらを比較することにより、インパクトの位置を決定するインパクト決定部と、
前記インパクト決定部により決定されたインパクトの位置に基づいて、打撃されたボールの弾道を算出する弾道算出部と、を含む
ことを特徴とするゲーム制御方法。
【請求項９】
請求項１から６のいずれかに記載のゲーム制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム制御技術に関し、とくに、ゴルフゲームを制御するゲーム装置、ゲーム制御方法、及びゲーム制御プログラムに関する。
【背景技術】
【０００２】
キャラクタを操作してゴルフをプレーするゲームが人気を博している。ゴルフは、現実の世界においても、幅広い年齢層にわたって競技人口が多く、不偏の人気を誇るスポーツである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
数多くのゴルフゲームが市場に出回っているが、もともと競技スタイルがシンプルであるが故に、特色を出すのが難しく、あまり変わり映えのしないものが多い。そのため、新鮮な面白さを味わうことのできる特色あるゴルフゲームの開発が望まれている。とくに、ボールをショットする際のユーザインタフェースは、ゴルフゲームの成績を決定する重要な要素であるから、ユーザにとって使いやすいのはもちろん、ユーザが思ったようなショットを打つことができるような、言い換えれば、ユーザの操作入力が的確にショットに反映されるようなユーザインタフェースであることが望ましい。
【０００４】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より娯楽性の高いゲーム制御技術を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、ゲーム制御プログラムに関する。このゲーム制御プログラムは、コンピュータを、ユーザから操作入力を受け付ける入力受付部、前記操作入力に応じてプレイヤーズキャラクタがゴルフをプレーするゲームを制御する制御部、前記ゲームの画面を表示する画面生成部、として機能させ、前記制御部は、ユーザが入力デバイスを把持してスイングするときに、ショット開始時における前記入力デバイスの位置と、インパクト時における前記入力デバイスの位置とを取得し、それらを比較することにより、インパクトの位置を決定するインパクト決定部と、前記インパクト決定部により決定されたインパクトの位置に基づいて、打撃されたボールの弾道を算出する弾道算出部と、を含むことを特徴とする。
【０００６】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００７】
本発明によれば、より娯楽性の高いゲーム制御技術を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施例にかかるゲームシステムの使用環境を示す図である。
【図２】入力デバイスの外観構成を示す図である。
【図３】入力デバイスの内部構成を示す図である。
【図４】ゲーム装置の構成を示す図である。
【図５】実施の形態に係るゲームシステムにおいてユーザがショットをしている様子を示す図である。
【図６】アプリケーション処理部の構成を示す図である。
【図７】プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す図である。
【図８】プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す図である。
【図９】インパクトの位置を判定する方法を説明するための図である。
【図１０】実施の形態に係るゲーム制御方法の手順を示すフローチャートである。
【図１１】図１０のＳ１１６の詳細な手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
実施の形態に係るゲーム装置は、ゴルフゲームを提供する。本実施の形態では、ユーザが把持する入力デバイスをゴルフクラブに見たて、ユーザが入力デバイスを実際にスイングすることによりショットを行う。本実施の形態のゲーム装置は、入力デバイスを撮像するための撮像装置を備えており、ユーザがショットを行っているときに入力デバイスを撮像し、ショット前の基準位置とインパクト時の入力デバイスの位置とを比較することにより、クラブヘッドによるボールの打撃位置を判定して、ショットの弾道に反映させる。これにより、ユーザが実際にゴルフクラブでボールを打っているような感覚で、入力デバイスをスイングしたときの打ち方がゴルフゲームにおけるショットの弾道に反映されるような、本格的なショットを可能とするゲーム装置を実現することができる。
【００１０】
図１は、本発明の実施例にかかるゲームシステム１の使用環境を示す。ゲームシステム１は、ゲームソフトウェアを実行するゲーム装置１０と、ゲーム装置１０による処理結果を出力する表示装置１２と、入力デバイス２０と、入力デバイス２０を撮像する撮像装置１４を備える。
【００１１】
入力デバイス２０は、ユーザが操作指示を行うための操作入力装置であり、ゲーム装置１０は、入力デバイス２０における操作指示をもとにゲームアプリケーションを処理して、ゲームアプリケーションの処理結果を示す画像信号を生成する処理装置である。
【００１２】
入力デバイス２０は、ユーザによる操作指示をゲーム装置１０に伝送する機能をもち、本実施例ではゲーム装置１０との間で無線通信可能な無線コントローラとして構成される。入力デバイス２０とゲーム装置１０は、Bluetooth（ブルートゥース）（登録商標）プロトコルを用いて無線接続を確立してもよい。なお入力デバイス２０は、無線コントローラに限らず、ゲーム装置１０とケーブルを介して接続される有線コントローラであってもよい。
【００１３】
入力デバイス２０はバッテリにより駆動され、ゲームを進行させる操作指示を行うための複数のボタンを有して構成される。ユーザが入力デバイス２０のボタンを操作すると、その操作指示が無線によりゲーム装置１０に送信される。ゲーム装置１０は、入力デバイス２０から操作指示を受信し、操作指示に応じてゲーム進行を制御して、ゲーム画像信号を生成する。生成されたゲーム画像信号は、表示装置１２より出力される。
【００１４】
撮像装置１４は、ＣＣＤ撮像素子またはＣＭＯＳ撮像素子などから構成されるビデオカメラであり、実空間を所定の周期で撮像して、周期ごとのフレーム画像を生成する。たとえば、撮像装置１４の撮像速度は３０枚／秒として、表示装置１２のフレームレートと一致させてもよい。撮像装置１４は、ＵＳＢ（Universal Serial Bus）あるいはその他のインタフェースを介してゲーム装置１０と接続する。
【００１５】
表示装置１２は画像を出力するディスプレイであって、ゲーム装置１０において生成された画像信号を受けて、ゲーム画面を表示する。表示装置１２は、ディスプレイおよびスピーカを有するテレビであってよく、またコンピュータディスプレイであってもよい。表示装置１２は、ゲーム装置１０に有線ケーブルで接続されてよく、また無線ＬＡＮ（Local Area Network）などにより無線接続されてもよい。
【００１６】
本実施例のゲームシステム１において、入力デバイス２０は発光体を有する。ゲーム中、発光体は所定色で発光し、撮像装置１４により撮像される。撮像装置１４は入力デバイス２０を撮像し、フレーム画像を生成してゲーム装置１０に供給する。ゲーム装置１０はフレーム画像を取得して、フレーム画像における発光体の画像の位置および大きさから、実空間における発光体の位置情報を導出する。ゲーム装置１０は、位置情報をゲームの操作指示として取り扱い、プレイヤーキャラクタの動作を制御するなど、ゲームの処理に反映させる。本実施例のゲーム装置１０は、入力デバイス２０のボタンなどの操作入力だけでなく、取得した発光体画像の位置情報も用いてゲームアプリケーションを処理する機能をもつ。
【００１７】
入力デバイス２０の発光体は、複数色で発光可能に構成される。発光体は、ゲーム装置１０からの発光指示により、発光色を変更できる。
【００１８】
また入力デバイス２０は加速度センサおよびジャイロセンサを有する。センサの検出値は、所定周期でゲーム装置１０に送信され、ゲーム装置１０は、センサの検出値を取得して、実空間における入力デバイス２０の姿勢情報を取得する。ゲーム装置１０は、姿勢情報をゲームの操作指示として取り扱い、ゲームの処理に反映させる。このように本実施例のゲーム装置１０は、取得した入力デバイス２０の姿勢情報も用いてゲームアプリケーションを処理する機能をもつ。
【００１９】
図２は、入力デバイス２０の外観構成を示す。図２（ａ）は、入力デバイス２０の上面構成を示し、図２（ｂ）は、入力デバイス２０の下面構成を示す。入力デバイス２０は、発光体２２およびハンドル２４を有する。発光体２２は、その外側を光透過性を有する樹脂で球体に形成され、内側に発光ダイオードや電球などの発光素子を有する。内側の発光素子が発光すると、外側の球体全体が光る。ハンドル２４の上面には、操作ボタン３０、３２、３４、３６、３８が設けられ、下面には操作ボタン４０が設けられる。ユーザはハンドル２４の端部を手で把持した状態で、操作ボタン３０、３２、３４、３６、３８を親指で操作し、操作ボタン４０を人差し指で操作する。操作ボタン３０、３２、３４、３６、３８は、押下式に構成され、ユーザは押下することで操作する。操作ボタン４０は、アナログ量を入力できるものであってよい。
【００２０】
ユーザは表示装置１２に表示されるゲーム画面を見ながらゲームを行う。撮像装置１４は、ゲームアプリケーションの実行中に発光体２２を撮像する必要があるため、その撮像範囲が表示装置１２と同じ方向を向くように配置されることが好ましい。一般にユーザは表示装置１２の正面でゲームをプレイすることが多いため、撮像装置１４は、その光軸の方向が表示装置１２の正面方向と一致するように配置される。具体的に、撮像装置１４は、表示装置１２の近傍において、表示装置１２の表示画面をユーザが視認可能な位置を撮像範囲に含むように配置されることが好ましい。これにより、撮像装置１４は、入力デバイス２０を撮像できる。
【００２１】
図３は、入力デバイス２０の内部構成を示す。入力デバイス２０は、無線通信モジュール４８、処理部５０、発光部６２および操作ボタン３０、３２、３４、３６、３８、４０を備える。無線通信モジュール４８は、ゲーム装置１０の無線通信モジュールとの間でデータを送受信する機能をもつ。処理部５０は、入力デバイス２０における所期の処理を実行する。
【００２２】
処理部５０は、メイン制御部５２、入力受付部５４、３軸加速度センサ５６、３軸ジャイロセンサ５８および発光制御部６０を有する。メイン制御部５２は、無線通信モジュール４８との間で必要なデータの送受を行う。
【００２３】
入力受付部５４は、操作ボタン３０、３２、３４、３６、３８、４０からの入力情報を受け付け、メイン制御部５２に送る。３軸加速度センサ５６は、ＸＹＺの３軸方向の加速度成分を検出する。３軸ジャイロセンサ５８は、ＸＺ平面、ＺＹ平面、ＹＸ平面における角速度を検出する。なお、ここでは、入力デバイス２０の幅方向をＸ軸、高さ方向をＹ軸、長手方向をＺ軸と設定する。３軸加速度センサ５６および３軸ジャイロセンサ５８は、入力デバイス２０のハンドル２４内に配置され、ハンドル２４内の中心近傍に配置されることが好ましい。無線通信モジュール４８は、操作ボタンからの入力情報とともに、３軸加速度センサ５６による検出値情報、および３軸ジャイロセンサ５８による検出値情報を、所定の周期でゲーム装置１０の無線通信モジュールに送信する。この送信周期は、たとえば１１．２５ｍ秒に設定される。
【００２４】
発光制御部６０は、発光部６２の発光を制御する。発光部６２は、赤色ＬＥＤ６４ａ、緑色ＬＥＤ６４ｂ、青色ＬＥＤ６４ｃを有し、複数色の発光を可能とする。発光制御部６０は、赤色ＬＥＤ６４ａ、緑色ＬＥＤ６４ｂ、青色ＬＥＤ６４ｃの発光を調整して、発光部６２を所望の色に発光させる。
【００２５】
無線通信モジュール４８はゲーム装置１０から発光指示を受け取ると、メイン制御部５２に供給し、メイン制御部５２は、発光制御部６０に発光指示を供給する。発光制御部６０は、発光部６２が発光指示により指定された色で発光するように、赤色ＬＥＤ６４ａ、緑色ＬＥＤ６４ｂ、青色ＬＥＤ６４ｃの発光を制御する。たとえば発光制御部６０は、各ＬＥＤをＰＷＭ（パルス幅変調）制御で点灯制御してもよい。
【００２６】
図４は、ゲーム装置１０の構成を示す。ゲーム装置１０は、フレーム画像取得部８０、画像処理部８２、デバイス情報導出部８４、無線通信モジュール８６、入力受付部８８、出力部９０およびアプリケーション処理部１００を備える。本実施例におけるゲーム装置１０の処理機能は、ＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現され、ここではそれらの連携によって実現される構成を描いている。プログラムは、ゲーム装置１０に内蔵されていてもよく、また記録媒体に格納された形態で外部から供給されるものであってもよい。したがってこれらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。なおハードウェアの構成上、ゲーム装置１０は複数のＣＰＵを有してもよい。
【００２７】
無線通信モジュール８６は、入力デバイス２０の無線通信モジュール４８との間で無線通信を確立する。これにより入力デバイス２０は、操作ボタンの状態情報、３軸加速度センサ５６および３軸ジャイロセンサ５８の検出値情報を、ゲーム装置１０に所定の周期で送信できるようになる。
【００２８】
無線通信モジュール８６は、入力デバイス２０から送信される操作ボタンの状態情報、およびセンサ検出値情報を受信し、入力受付部８８に供給する。入力受付部８８は、ボタン状態情報およびセンサ検出値情報を分離し、アプリケーション処理部１００に引き渡す。アプリケーション処理部１００は、ボタン状態情報およびセンサ検出値情報を、ゲームの操作指示として受け取る。アプリケーション処理部１００は、センサ検出値情報を、入力デバイス２０の姿勢情報として取り扱う。
【００２９】
フレーム画像取得部８０はＵＳＢインタフェースとして構成され、撮像装置１４から所定の撮像速度（たとえば３０フレーム／秒）でフレーム画像を取得する。画像処理部８２は、フレーム画像から発光体画像を抽出する。画像処理部８２は、フレーム画像中の発光体画像の位置、および大きさを特定する。入力デバイス２０の発光体２２が、たとえばユーザ環境内で使われそうにない色で点灯することで、画像処理部８２は、フレーム画像から高精度に発光体画像を抽出できる。画像処理部８２は、フレーム画像データを所定の閾値を用いて２値化処理し、２値化された画像を生成してもよい。この２値化処理により、所定の閾値より大きい輝度を保持する画素の画素値が“１”に符号化され、所定の閾値以下の輝度を保持する画素の画素値が“０”に符号化される。この所定の閾値を超える輝度で発光体２２を点灯させることで、画像処理部８２は、２値化された画像から、発光体画像の位置および大きさを特定できる。たとえば画像処理部８２は、フレーム画像における発光体画像の重心座標と、発光体画像の半径を特定する。
【００３０】
デバイス情報導出部８４は、画像処理部８２で特定された発光体画像の位置および大きさから、撮像装置１４からみた入力デバイス２０の位置情報を導出する。デバイス情報導出部８４は、発光体画像の重心座標からカメラ座標における位置座標を導出し、また発光体画像の半径から、撮像装置１４からの距離情報を導出する。この位置座標および距離情報は、入力デバイス２０の位置情報を構成する。デバイス情報導出部８４は、フレーム画像ごとに入力デバイス２０の位置情報を導出し、アプリケーション処理部１００に引き渡す。アプリケーション処理部１００は、入力デバイス２０の位置情報を、ゲームの操作指示として受け取る。
【００３１】
アプリケーション処理部１００は、入力デバイス２０の位置情報および姿勢情報と、ボタン状態情報とからゲームを進行させて、ゲームアプリケーションの処理結果を示す画像信号を生成する。画像信号は出力部９０から表示装置１２に送られ、表示画像として出力される。
【００３２】
図５は、実施の形態に係るゲームシステムにおいてユーザがショットをしている様子を示す図である。ユーザが入力デバイス２０をゴルフクラブのように把持してスイングすると、ゲーム装置１０は、撮像装置１４により入力デバイス２０を撮像して入力デバイス２０の移動軌跡を取得し、ユーザのスイングに合わせて、表示装置１２に表示されるプレイヤーズキャラクタをスイングさせる。また、後述するように、ユーザのスイングの軌跡に応じてショットのパワーとインパクト位置を決定し、弾道に反映させる。
【００３３】
図６は、アプリケーション処理部１００の構成を示す。アプリケーション処理部１００は、制御部１４０、パラメータ保持部１６０、及びゲームデータ保持部１７０を備える。制御部１４０は、ショット制御部１４１、弾道算出部１５０、及び画面生成部１６６を備える。ショット制御部１４１は、初期設定部１４２、パワー決定部１４４、及びインパクト決定部１４５を備える。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
【００３４】
制御部１４０は、ゴルフゲームのプログラムが格納されたゲームデータ保持部１７０からプログラムを読み出して実行し、入力デバイス２０から受け付けたユーザの操作入力に基づいて、ゲーム世界においてゴルフプレイヤーとして機能するプレイヤーズキャラクタの動作を制御しつつ、ゴルフゲームを進行させる。パラメータ保持部１６０は、ゴルフゲームの進行に必要なパラメータを保持する。ゲームデータ保持部１７０は、ゲームデータを保持する。画面生成部１６６は、制御部１４０により制御されるゲームの画面を生成し、出力部９０から出力して表示装置１２に表示させる。
【００３５】
図７は、プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す。画面１０２には、プレー中のホールの地形がレンダリングされた画像と、プレイヤーズキャラクタを後方から見た画像が表示されている。ユーザは、この画面において、入力デバイス２０を操作してショットのパワー及びインパクトを決定し、プレイヤーズキャラクタにショットを行わせる。
【００３６】
初期設定部１４２は、ユーザに、入力デバイス２０を把持して実際にボールを打つようにアドレスした姿勢と、スイングしてフォロースルーに入る前の両腕を前方に伸ばした姿勢をとらせて、それらの状態を撮像装置１４に撮像させ、それらの状態における入力デバイス２０の位置を取得する。初期設定部１４２は、それらの位置の間の距離を算出し、補正用パラメータとしてパラメータ保持部１６０に格納する。この補正用パラメータは、ユーザの腕の長さにほぼ比例する。後述するように、パワー決定部１４４は、ユーザがバックスイングしたときの入力デバイス２０の位置から、バックスイングの度合いを判定してパワーに反映させるが、ユーザの腕の長さによってバックスイングしたときの入力デバイス２０の位置が異なるので、初期設定部１４２が算出した補正用パラメータを参照して補正を行う。初期設定部１４２は、鉛直方向に平行で、上記の２つの状態における入力デバイス２０の位置を通る平面を算出し、スイング面としてパラメータ保持部１６０に格納する。初期設定部１４２は、スイング面と撮像装置１４の視線方向とが所定角以上ずれている場合は、ほぼ平行になるようにアドレスを正すようユーザに促してもよい。
【００３７】
パワー決定部１４４は、プレイヤーズキャラクタのショットのパワーを決定する。パワー決定部１４４は、ショットを開始する指示が割り当てられた操作入力を入力デバイス２０から受け付けると、そのときの入力デバイス２０の姿勢に関する情報を入力受付部８８から取得する。パワー決定部１４４は、入力デバイス２０がユーザにより正しくアドレスされた状態にあるか否かを判定する。例えば、３軸加速度センサ５６又は３軸ジャイロセンサ５８からセンサ値を取得して入力デバイス２０の姿勢を算出し、算出した姿勢が所定の範囲内であるか否かを判定する。入力デバイス２０の姿勢が所定の範囲内になければ、パワー決定部１４４は、入力デバイス２０を把持して正しく構えるようユーザに促す。入力デバイス２０の姿勢が所定の範囲内にあれば、パワー決定部１４４は、そのときの入力デバイス２０の位置座標及び距離情報を含む位置情報をデバイス情報導出部８４から取得し、基準位置としてパラメータ保持部１６０に格納して、ユーザによるショットの制御を開始する。
【００３８】
パワー決定部１４４は、入力デバイス２０の位置情報を所定の間隔でデバイス情報導出部８４から取得し、パラメータ保持部１６０に格納されている入力デバイス２０の基準位置と比較することにより、ユーザのスイングの度合いを判定する。このとき、パワー決定部１４４は、初期設定部１４２により設定された補正用パラメータを参照してスイングの度合いを補正する。例えば、入力デバイス２０の現在位置と基準位置との間の距離を算出し、補正用パラメータが大きい、すなわち、ユーザの腕の長さが長いほど小さく、補正用パラメータが小さい、すなわち、ユーザの腕の長さが短いほど大きい値を距離に乗じて補正値を算出し、算出された補正値からユーザのスイングの度合いを判定する。パワー決定部１４４は、スイング面と撮像装置１４の向きとを更に考慮してスイングの度合いを補正してもよい。パワー決定部１４４は、スイングの度合いと補正値との対応をゲームデータ保持部１７０に格納しておき、算出された補正値に対応するスイングの度合いを取得してもよい。撮像装置１４とユーザとの位置関係によっては、ユーザがバックスイングしているときに入力デバイス２０がユーザの頭又は体に隠れて撮像装置１４により撮像されない場合があるが、その場合は、パワー決定部１４４は、入力デバイス２０が撮像されている間の入力デバイス２０の移動軌跡と速度を算出し、入力デバイス２０が撮像されなかったときの入力デバイス２０の位置を外挿補間などにより推測してもよい。また、３軸加速度センサ５６又は３軸ジャイロセンサ５８のセンサ値を取得して、入力デバイス２０の位置を算出してもよい。
【００３９】
パワー決定部１４４は、判定されたスイングの度合いに応じて、プレイヤーズキャラクタがスイングしている様子を表示する。パワー決定部１４４は、プレイヤーズキャラクタがスイングする過程を表現した複数の画像を、スイングの度合いと対応づけてゲームデータ保持部１７０に格納しておき、判定されたスイングの度合いに対応する画像を読み出して表示してもよい。また、プレイヤーズキャラクタがスイングするときの姿勢情報を、スイングの度合いと対応づけてゲームデータ保持部１７０に格納しておき、判定されたスイングの度合いに対応する姿勢情報を適用して、プレイヤーズキャラクタの３次元形状データをレンダリングしてもよい。これにより、ユーザのスイングに合わせてプレイヤーズキャラクタもスイングしているように見せることができる。
【００４０】
パワー決定部１４４は、判定されたスイングの度合いに応じて、ショットのパワーの度合いを画面に表示する。パワー決定部１４４は、後述するように、ユーザがどこまでテークバックしたかを示す値と、インパクト時の入力デバイス２０の速度から、ショットのパワーを算出するが、ユーザがスイングしているときに、その位置からダウンスイングしてボールを打撃したときのショットのパワーの目安として、テークバックの度合いに応じたパワーゲージを表示する。パワー決定部１４４は、テークバックの度合い、すなわち、パワーの目安が所定の値に達したときに、音を出力してもよいし、入力デバイス２０を振動又は発光させてもよい。例えば、テークバックの度合いが５０％と１００％に達したときに、入力デバイス２０を振動させてもよい。
【００４１】
図８は、プレイヤーズキャラクタがショットを行うときのゲーム画面の例を示す。画面１０２には、ユーザのスイングの度合いに応じて、プレイヤーズキャラクタがスイングしている様子が表示されている。また、ユーザのテークバックの度合いに応じて、その状態から振り下ろしてショットしたときのパワーの目安を示すパワーゲージ１１０が表示されている。
【００４２】
ユーザがダウンスイングを行って、入力デバイス２０がショットの開始時の基準位置よりも撮像装置１４に近づくと、パワー決定部１４４は、ユーザがどこまでテークバックしたかを示す値と、インパクト時の入力デバイス２０の速度から、ショットのパワーを算出する。パワー決定部１４４は、ショットが開始されて、入力デバイス２０と撮像装置１４の間の距離が遠くなった後、再びショット開始時と同じ距離になったときをインパクトの瞬間とし、それまでのユーザのスイングの度合いの最大値をテークバックの度合いとする。また、パワー決定部１４４は、インパクトの瞬間の入力デバイス２０の速度を取得する。パワー決定部１４４は、３軸加速度センサ５６又は３軸ジャイロセンサ５８のセンサ値を取得して入力デバイス２０の速度を算出してもよいし、デバイス情報導出部８４から取得した入力デバイス２０の位置情報から入力デバイス２０の速度を算出してもよい。パワー決定部１４４は、テークバックの度合いと入力デバイス２０の速度からパワーを算出して弾道算出部１５０へ通知する。パワー決定部１４４は、テークバックの度合いが大きいほど、また、入力デバイス２０の速度が速いほど、パワーが大きくなるようにする。
【００４３】
インパクト決定部１４５は、インパクトの瞬間の入力デバイス２０の位置情報をデバイス情報導出部８４から取得し、ショット開始時の基準位置と比較することにより、クラブヘッドがボールを打撃した位置を判定する。インパクト決定部１４５は、基準位置における入力デバイス２０と撮像装置１４との間の距離と同じ距離になったときの入力デバイス２０の位置座標を取得する。同じ距離になったときの位置情報がない場合は、インパクト決定部１４５は、前後の複数のフレームの位置座標から内挿補間又は外挿補間により、同じ距離になったときの位置座標を取得してもよい。例えば、前後又は直前の３以上のフレームの位置座標を用いて、入力デバイス２０の軌道を多項式などにより表現される３次元曲線で近似し、３次元近似曲線上で同じ距離になったときの位置座標を算出してもよい。インパクト決定部１４５は、３軸加速度センサ５６又は３軸ジャイロセンサ５８のセンサ値を取得して、スイング中の入力デバイス２０と撮像装置１４との間の距離を算出してもよい。例えば、スイング面に平行な方向の加速度成分を積分することにより、入力デバイス２０の基準位置からの相対位置を算出してもよい。インパクト決定部１４５は、ショット開始時の基準位置とインパクト時の位置とのずれの大きさを算出し、ずれの大きさに応じてインパクトの位置を判定する。
【００４４】
図９は、インパクトの位置を判定する方法を説明するための図である。図８は、ショット開始時の発光体２２の位置２００と、インパクト時の発光体２２の位置２０２を示す。インパクト決定部１４５は、位置２００における発光体２２の中心位置を中心とした所定長の半径のゴルフボール２０４を想定し、位置２０２における発光体２２の中心位置２０６をクラブヘッドが打撃したと判定してもよい。このとき、プレイヤーズキャラクタの属性やユーザのレベルなどに応じて、ゴルフボール２０４の半径を調整してもよい。例えば、初級者用のプレイヤーズキャラクタが使用されている場合は、ゴルフボール２０４の半径を大きくして、基準位置とインパクト時の位置とのずれがインパクト位置のずれに反映されにくくしてもよい。逆に、上級者用のプレイヤーズキャラクタが使用されている場合は、ゴルフボール２０４の半径を小さくして、ずれがインパクト位置に反映されやすくしてもよい。インパクト決定部１４５は、ずれが所定の範囲内である場合は、ボールの中心位置を打撃したことにしてもよい。インパクト決定部１４５は、決定したインパクト位置を弾道算出部１５０に通知する。
【００４５】
弾道算出部１５０は、ショット制御部１４１により決定されたショットのパワー及びインパクトと、ボールのライ、風、地形などの外部要因に基づいて、ショットされたボールの弾道を物理計算により算出する。
【００４６】
弾道算出部１５０は、ショットに用いたクラブに応じて予め設定された初速度及びロフト角をパラメータ保持部１６０から読み出す。弾道算出部１５０は、読み出したロフト角と、インパクト決定部１４５から通知されたインパクト位置に基づいて、ボールが飛ぶ方向を決定する。弾道算出部１５０は、パワー決定部１４４により決定されたパワー、インパクト決定部１４５により決定されたインパクト位置、プレイヤーズキャラクタごとに設定された体力などの属性値、ボールのライなどに応じて、ボールの初速度を調整する。例えば、パワーが高いほど初速度が速くなるように、パワーの％値を初速度に乗じてもよい。また、インパクトの位置が中心から外れるほど狙った着地点からずれるように、ボールの飛ぶ方向や速度などを調整してもよい。例えば、ボールの左側を打撃した場合はボールの軌道を右に曲げてスライスボールとし、右側を打撃した場合は左に曲げてフックボールとしてもよい。また、パワーが所定の下限値以下であった場合や、インパクトの位置が所定値以上ボールの中心から外れていた場合は、ミスショットとして扱い、極端に初速度を小さくして弾道を算出してもよい。ラフやバンカーの場合は、フェアウェイよりも初速度を低くしてもよい。また、ボールの接地面の傾斜が大きければ初速度を低くしてもよい。ショットの際にプレイヤーが初速度やロフト角を変更する操作入力を行った場合には、さらにその影響を考慮して初速度やロフト角を調整してもよい。
【００４７】
弾道算出部１５０は、初速度とロフト角を決定すると、ボールに作用する力に応じて速度を調整しつつ、ボールの位置をフレームごとに算出する。弾道算出部１５０は、ボールの現在位置の座標に対して、フレームを単位とした速度を加算し、次のフレームにおけるボールの位置の座標を算出する。ボールの速度には、フレームごとに、重力、揚力、風力、空気抵抗が加算される。重力については、物理法則に則って、下向きに、９．８メートル毎秒毎秒とする。揚力は、上向きに、速度に比例する値とする。風力は、ホールの全ての場所において一定方向に一定速度としてもよいし、場所に応じて変化させてもよい。空気抵抗は、進行方向と逆向きに、速度に比例する値とする。このように、風の方向及び速度を考慮してボールの弾道を算出することにより、現実のゴルフと同様に、風の影響を考慮しながらショットを行う難しさを演出することができ、よりリアリティのあるゴルフゲームを実現することができる。
【００４８】
ボールが何かに衝突した場合は、衝突した面の属性に応じて予め設定された摩擦係数及び反発係数にしたがって、水平方向及び垂直方向の速度を調整する。摩擦係数及び反発係数は、フェアウェイ、ラフ、バンカーなどによって異なる値を設定してもよい。弾道算出部１５０は、さらに、演出効果として、物理法則とは関係のない特殊な演算を弾道に与えてもよい。これにより、ゴルフゲームに変化を持たせ、ゲームの娯楽性を向上させることができる。
【００４９】
画面生成部１６６は、弾道算出部１５０により算出されたボールの位置に応じて、ボールが画面に入るようにカメラの視点位置及び視線方向を設定し、ボールが飛ぶ様子を示す画面を生成する。ボールが停止すると、次のショットに移る。
【００５０】
図１０は、実施の形態に係るゲーム制御方法の手順を示すフローチャートである。ユーザが操作ボタン３０を押してショットが開始されると（Ｓ１００のＹ）、パワー決定部１４４は、そのときの入力デバイス２０の位置を取得し、基準位置としてパラメータ保持部１６０に記録する（Ｓ１０２）。ユーザがスイングしている間、パワー決定部１４４は、入力デバイス２０の位置を取得し（Ｓ１０４）、スイングの度合いを判定して（Ｓ１０６）、スイングの度合いに応じてプレイヤーズキャラクタの表示を更新し（Ｓ１０８）、パワーの指標となるパワーゲージの表示を更新する（Ｓ１１０）。パワー決定部１４４は、ボールがインパクトされたと判定されるまで（Ｓ１１２のＮ）、Ｓ１０４からＳ１１０の手順を繰り返す。
【００５１】
入力デバイス２０と撮像装置１４との間の距離が、基準位置におけるそれらの間の距離と等しくなったとき、パワー決定部１４４は、ボールがインパクトされたと判定し（Ｓ１１２のＹ）、テークバックの度合いとインパクト時の入力デバイス２０の速度に基づいてショットのパワーを決定する（Ｓ１１４）。インパクト決定部１４５は、インパクト時の入力デバイス２０の位置とショット開始時の基準位置とを比較して、インパクトの位置を決定する（Ｓ１１６）。弾道算出部１５０は、決定されたパワーとインパクトの位置に基づいてボールの弾道を算出し（Ｓ１１８）、画面生成部１６６は、算出された弾道を画面に表示する（Ｓ１２０）。ショットが開始されない場合は（Ｓ１００のＮ）、全ての手順をスキップする。
【００５２】
図１１は、図１０のＳ１１６の詳細な手順を示すフローチャートである。インパクト決定部１４５は、ショット開始時の入力デバイス２０の基準位置を取得するとともに（Ｓ１４０）、インパクト時の入力デバイス２０の位置を取得し（Ｓ１４２）、それらの間のずれを算出することにより、インパクトの位置を算出する（Ｓ１４４）。インパクト決定部１４５は、プレイヤーズキャラクタ又はユーザの属性に応じて、インパクトの位置を補正する（Ｓ１４６）。
【００５３】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００５４】
１  ゲームシステム、１０  ゲーム装置、１２  表示装置、１４  撮像装置、２０  入力デバイス、２２  発光体、１００  アプリケーション処理部、１４０  制御部、１４１  ショット制御部、１４２  初期設定部、１４４  パワー決定部、１４５  インパクト決定部、１５０  弾道算出部、１６０  パラメータ保持部、１６６  画面生成部、１７０  ゲームデータ保持部。
【図１】
0005514774.tif 000002
【図２】
0005514774.tif 000003
【図３】
0005514774.tif 000004
【図４】
0005514774.tif 000005
【図５】
0005514774.tif 000006
【図６】
0005514774.tif 000007
【図７】
0005514774.tif 000008
【図８】
0005514774.tif 000009
【図９】
0005514774.tif 000010
【図１０】
0005514774.tif 000011
【図１１】
0005514774.tif 000012