(57)【特許請求の範囲】
【請求項１】
第１位置から第２位置に向けて移動する移動体に対してキャラクタに作用を与えさせるゲームの実行方法であって、
前記方法は、プロセッサおよびメモリを備えるコンピュータにより実行され、前記プロセッサの制御により、
第１領域と当該第１領域の外側の第２領域とを含み、前記作用を前記移動体に与えたか否かを判定するための交差面を、前記第１位置と前記第２位置との間に設定するステップと、
前記作用を与えるための作用領域を前記交差面に設定するステップと、
前記作用領域を移動させる第１操作を受け付けるステップと、
前記第１操作に基づいて、前記作用領域の少なくとも一部が前記第１領域内に含まれるように前記作用領域を移動させるステップと、
基準モーションが関連付けられた複数の基準点の各々を、前記第１領域および前記第２領域のうち少なくとも一方に設定し、且つ、複数の前記基準点のうちの少なくとも一つを前記第２領域に設定するステップと、
前記第１操作による移動後の前記作用領域の位置、および、前記第１領域または前記第２領域のいずれかに設定されている前記基準点に関連付けられている前記基準モーションに基づいて、前記キャラクタのモーション画像を生成するステップと、
を含む、方法。
【請求項２】
前記コンピュータは、物体の接触または近接を検知できる入力部と、画像を表示させる表示部と、を含むタッチスクリーンを備え、
前記移動体が前記第２領域を通過するか否かを判定するステップと、
前記作用を与えさせるための第２操作を受け付けるステップと、を含み、
前記第１操作を受け付けるステップおよび前記第２操作を受け付けるステップでは、前記タッチスクリーンに対する物体の接触または近接に基づいて前記第１操作および前記第２操作を受け付け、
前記タッチスクリーンに対して、前記第１操作の受付の開始から前記第２操作を受け付けるまでにタッチされた位置の履歴情報を取得するステップ、を含み、
前記移動体が前記第２領域を通過すると判定した場合には、前記履歴情報と前記作用領域の位置とから、前記作用領域が仮想的に前記第２領域内に移動した場合の位置を算出するステップと、をさらに含み、
前記生成するステップでは、前記算出するステップで算出した位置、および、前記第２領域に設定されている前記基準点に関連付けられている基準モーションに基づいて、前記モーション画像を生成する、請求項１に記載の方法。
【請求項３】
前記コンピュータは、物体の接触または近接を検知できる入力部と、画像を表示させる表示部と、を含むタッチスクリーンを備え、
前記第１領域の内側方向に縁領域を設定するステップと、
前記作用領域の少なくとも一部が前記縁領域内にあるか否かを判定するステップと、
前記移動体が前記第２領域を通過するか否かを判定するステップと、
前記作用を与えさせるための第２操作を受け付けるステップと、を含み、
前記第１操作を受け付けるステップおよび前記第２操作を受け付けるステップでは、前記タッチスクリーンに対する物体の接触または近接に基づいて前記第１操作および前記第２操作を受け付け、
前記タッチスクリーンに対して、前記第１操作の受付の開始から前記第２操作を受け付けるまでにタッチされた位置の履歴情報を取得するステップと、
前記作用領域の少なくとも一部が前記縁領域内にあると判定して、かつ、前記移動体が前記第２領域を通過すると判定した場合には、前記履歴情報と前記作用領域の位置とから、前記作用領域が仮想的に前記第２領域内に移動した場合の位置を算出するステップと、をさらに含み、
前記生成するステップでは、前記算出するステップで算出した位置、および、前記第２領域に設定されている前記基準点に関連付けられている前記基準モーションから前記モーション画像を生成する、請求項１に記載の方法。
【請求項４】
前記基準点は、前記第１領域に少なくとも一つ設定されており、
前記生成するステップでは、前記第１領域に設定されている前記基準点に関連付けられている基準モーション、および、前記第２領域に設定されている前記基準点に関連付けられている基準モーションを、前記作用領域の位置とそれぞれの前記基準点の位置関係とから特定される合成比率に基づいて合成し、前記キャラクタのモーション画像を生成する、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記基準点を設定するステップでは、前記第１領域に前記基準点を一つ設定する、請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記生成するステップでは、全ての前記基準モーションに基づいて、前記キャラクタのモーション画像を生成する、請求項１から５のいずれか１項に記載の方法。
【請求項７】
請求項１から６のいずれか１項に記載の方法の各ステップをコンピュータに実行させるプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はゲームの実行方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
特許文献１には打具を有するキャラクタがボールを打撃するときのスイングモーションを生成するプログラムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２７５１３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載のプログラムでは、ストライクゾーンから外れたボールに手を出した様子を示すスイングモーションを生成することができない。理由は次の通りである。つまり、当該プログラムでは、バットとボールとの交差判定をするための平面領域として定められた打撃面内に離散的に複数の基準点が定められている。打撃位置から複数の基準点を選択して、当該基準点に関連付けられた基本スイングモーションを合成することで、スイングモーションが生成される。この基準点が定められている打撃面は、ボールを打撃可能な範囲であるため、基本スイングモーションはバットにボールを当てたときの動作を表現している。従って、打撃することのできないゾーンに投球されたボールに手を出してしまったときの動作を描画することができない。
【０００５】
本開示は前記の課題を解決するためになされたものである。そして、その目的は、打撃できない位置に投球されたボールに手を出してしまったときのモーションを生成することにある。
【課題を解決するための手段】
【０００６】
前記の課題を解決するために、本開示に係るゲームの実行方法は、第１位置から第２位置に向けて移動する移動体に対してキャラクタに作用を与えさせるゲームの実行方法であって、前記方法は、プロセッサおよびメモリを備えるコンピュータにより実行され、前記プロセッサの制御により、第１領域と当該第１領域の外側の第２領域とを含み、前記作用を前記移動体に与えたか否かを判定するための交差面を、前記第１位置と前記第２位置との間に設定するステップと、前記作用を与えるための作用領域を前記交差面に設定するステップと、前記作用領域を移動させる第１操作を受け付けるステップと、前記第１操作に基づいて、前記作用領域の少なくとも一部が前記第１領域内に含まれるように前記作用領域を移動させるステップと、基準モーションが関連付けられた複数の基準点の各々を、前記第１領域および前記第２領域のうち少なくとも一方に設定し、且つ、複数の前記基準点のうちの少なくとも一つを前記第２領域に設定するステップと、前記第１操作による移動後の前記作用領域の位置、および、前記第２領域に設定されている前記基準点に関連付けられている前記基準モーションに基づいて、前記キャラクタのモーション画像を生成するステップと、を含む。
【発明の効果】
【０００７】
本開示によれば、打撃できない位置に投球されたボールに手を出してしまったときのモーションを生成できるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】ユーザ端末の構成を示す図である。
【図２】ユーザ端末の機能的構成を示す図である。
【図３】ゲームシステムの動作を示すフローチャートである。
【図４】ゲームシステムのゲーム画面の例を示す図である。
【図５】ゲームシステムの動作を示すフローチャートである。
【図６】基準モーションの一例を示す図である。
【図７】従来のゲームシステムの動作を説明するための模式図である。
【発明を実施するための形態】
【０００９】
本発明の実施形態に係るゲームを実行する方法、および、プログラムの具体例を、以下に図面を参照しつつ説明する。本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
【００１０】
＜ユーザ端末とゲーム端末との関係及び構成＞
まず、図１を用いて、ゲームシステム１で用いられるユーザ端末１００とゲームサーバ２００との関係及びそれぞれの構成について説明する。ゲームシステム１は、複数のユーザ端末１００と、ゲームサーバ２００と、を含む。各ユーザ端末１００とゲームサーバ２００とは、ネットワーク２を介して接続されている。ネットワーク２は、インターネット、図示しない無線基地局によって構築される各種移動通信システム（例えば、所謂３Ｇ、４Ｇ移動通信システム、ＬＴＥ（Long Term Evolution））、または、所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク（例えば、WiFi（登録商標））を含み得る。
【００１１】
ユーザ端末１００は、スマートフォン、フィーチャーフォン、ＰＤＡ（Personal Digital Assistant）、または、タブレット型コンピュータ等の携帯端末であることがより好ましい。ユーザ端末１００は、通信バスによって互いに電気的に接続されたプロセッサ１０と、メモリ１１と、ストレージ１２と、通信インターフェース（ＩＦ）１３と、入出力ＩＦ１４と、タッチスクリーン１５とを備える。
【００１２】
入出力ＩＦ１４は、ＵＳＢ（Universal Serial Bus）等を介した各種データ入出力機能および音声入出力機能を備える。
【００１３】
タッチスクリーン１５は、入力部１５１と表示部１５２とを組み合わせた電子部品である。入力部１５１は、例えば、タッチパッド等によって構成される。また、表示部１５２は、例えば、液晶ディスプレイ、または、有機ＥＬ（electro-luminescence）ディスプレイ等によって構成される。入力部１５１は、タッチスクリーン１５に対するユーザの指やスタイラスといった物体の接触または近接を検知し、操作入力として受け付ける。そして、当該操作入力に含まれるユーザの作用（主に、タッチ操作、スライド操作、スワイプ操作、及びタップ操作等の物理的接触操作）が入力された画面位置の情報を検知して外部へ情報信号として出力する機能を備える。タッチスクリーン１５はタッチセンシング部を備えていればよい。タッチセンシング部は静電容量方式、または、抵抗膜方式等のどのような方式を採用したものであってもよい。
【００１４】
ゲームサーバ２００は、ゲームに関する各種サービスを各ユーザ端末１００に提供する。ゲームサーバ２００は、ワークステーション、パーソナルコンピュータ等の汎用コンピュータであることがより好ましい。ゲームサーバ２００は、通信バスにより互いに電気的に接続されたプロセッサ２０と、メモリ２１と、ストレージ２２と、通信インターフェース（ＩＦ）２３と、入出力ＩＦ２４とを備える。
【００１５】
プロセッサ１０、２０は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro processing unit）、ＧＰＵ（Graphics Processing Unit）等を含んで構成される。プロセッサ１０は、ユーザ端末１００全体の動作を制御する。プロセッサ２０は、ゲームサーバ２００全体の動作を制御する。メモリ１１、２１は、ＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）等の揮発性記憶装置で構成され得る主記憶装置を含んで構成される。ストレージ１２、２２は、フラッシュメモリまたはＨＤＤ（Hard Disk Drive）などの不揮発性記憶装置によって構成され得る補助記憶装置を含んで構成される。メモリ１１には、プロセッサ１０がストレージ１２からロードした各種プログラム及びデータが一時的に記憶される。メモリ２１には、プロセッサ２０がストレージ２２からロードした各種プログラム及びデータが一時的に記憶される。これによりメモリ１１はプロセッサ１０に対して作業領域を提供する。メモリ１１は、プロセッサ２０に対して作業領域を提供する。
【００１６】
ゲームサーバ２００のストレージ２２にはゲームプログラム等のゲームデータが格納される。ユーザ端末１００のストレージ１２には、ゲームサーバ２００からダウンロードされたゲームプログラム等のゲームデータが格納される。当該ゲームプログラムは、メモリ１１、２１に展開される。プロセッサ１０は、メモリ１１に展開されるゲームプログラムを実行する。プロセッサ２０は、メモリ２１に展開されるゲームプログラムを実行する。メモリ１１には、プロセッサ１０が当該ゲームプログラムに従って動作している間に生成した各種ゲームデータも一時的に格納される。メモリ２１には、プロセッサ２０が当該ゲームプログラムに従って動作している間に生成した各種ゲームデータも一時的に格納される。本実施形態では、前記各種データは所定のゲームプログラム、ユーザ情報およびゲーム情報等のゲームデータ、それらをユーザ端末１００とゲームサーバ２００との間に送受信させる指示、ゲームを進行させるための指示を含む。
【００１７】
通信ＩＦ１３、２３は、ユーザ端末１００とゲームサーバ２００との間で各種データを送受信するための通信制御機能を備える。通信制御機能には、例えば、無線ＬＡＮ（Local Area Network）接続機能、有線ＬＡＮ、無線ＬＡＮおよび携帯電話回線網を介したインターネット接続機能ならびに近距離無線通信機能等が含まれる。
【００１８】
ゲームサーバ２００の入出力ＩＦ２４は、マウス、キーボード等の情報入力機器である入力部、および、液晶ディスプレイ等の出力部を備えており、コンピュータの情報をモニタリングするために用いられる。
【００１９】
次に図２を用いてユーザ端末１００の機能的構成について説明する。ユーザ端末１００は、プロセッサ１０、メモリ１１、ストレージ１２、通信ＩＦ１３、入出力ＩＦ１４等の協働により、制御部１１０及び記憶部１２０として機能し得る。記憶部１２０に格納されたゲームプログラムは主記憶上に展開され、制御部１１０において実行される。制御部１１０は、当該ゲームプログラムによって、操作受付部１１１、オブジェクト位置判定部１１２、モーション画像生成部１１３、オブジェクト制御部１１４として機能し得る。なお、主記憶上には、制御部１１０が当該プログラムに従って動作している間に生成した各種ゲームデータや制御部１１０によって利用される各種ゲームデータも一時的に格納される。記憶部１２０には、制御部１１０が前記各部として機能するために必要なデータが記憶されている。当該データとしては、例えば、ゲームプログラム、ゲーム情報、ユーザ情報が含まれる。ゲーム情報としては、各種ゲームオブジェクトを管理するオブジェクト管理テーブル、ゲームキャラクタの各種スキルを管理するスキル管理テーブル、各ゲームキャラクタのモーションを定義するための基準モーションデータ１２１（後述）等が挙げられる。ユーザ情報としてはユーザ管理テーブル等が挙げられる。
【００２０】
制御部１１０は、ユーザ端末１００全体の動作を制御し、各要素間におけるデータの送受信、ゲームの実行に必要な演算処理その他の処理を行う。制御部１１０は、例えば、操作受付部１１１で検知されたタッチスクリーン１５に対する操作入力に基づいてゲームプログラムに従ったゲームを展開させ、その結果を示すゲーム画像を描画する。制御部１１０は、ゲームサーバ２００から受信したユーザ情報、ゲームプログラムによる演算結果、ユーザの入力部１５１に対する作用に基づいて、表示部１５２に表示されるゲーム空間及びオブジェクト等の画像を生成する。また、制御部１１０は、タッチスクリーン１５に対する操作入力に基づいて仮想空間内におけるゲームオブジェクトを操作する。また、制御部１１０は、タッチスクリーン１５に対する操作入力及び演算処理の結果等に基づいて、記憶部１２０に記憶されている各種データの更新等の処理を行なう。なお、制御部１１０は、ゲームの進行状態に応じて、ゲーム空間の視野を指定するための仮想カメラの位置を制御する処理を行ってもよい。また、制御部１１０は、記憶部１２０に記憶された各種ユーザ情報及びゲーム情報を参照し、ゲーム進行に必要な各種判定を実行する。
【００２１】
操作受付部１１１は、タッチスクリーン１５の入力部１５１に対するユーザの操作を検知する。操作受付部１１１は、入力部１５１及びその他の入出力ＩＦ１４を介したコンソールによる操作指示等から、いかなる入力がなされたかを判別し、その結果をオブジェクト位置判定部１１２、モーション画像生成部１１３等の必要な要素に出力する。操作受付部１１１は、入力部１５１に対する作用入力がなされた場合には、入力位置の座標情報、作用の種類（タッチ操作、スライド動作等）を検知する。操作受付部１１１は、連続して検知されていた入力が途切れることを検知することで、タッチスクリーン１５から接触入力が解除されたことを検知する。
【００２２】
オブジェクト制御部１１４は、ユーザによる操作入力、および／または、ゲームプログラムに基づいて、打者６０１（キャラクタ）、バット６０２（作用体）、投手６０３（キャラクタ）、ボール６０４（移動体）、ミートカーソル６０６（作用領域）等のオブジェクト（図４参照）を制御する。
【００２３】
オブジェクト位置判定部１１２は、後述するバット６０２、ボール６０４、ミートカーソル６０６等のオブジェクトのゲーム空間内における位置を判定する。例えば、オブジェクト位置判定部１１２は、ボール６０４がストライクゾーン６０５（第１領域）又はボールゾーン６０８（第２領域）内のいずれの位置に到達するかを判定する。
【００２４】
モーション画像生成部１１３は、オブジェクト制御部１１４によるキャラクタの制御態様に基づいて、キャラクタのモーションを示す画像を生成する。本実施形態においては、打者６０１のモーションに対応するアニメーション生成する処理について後述する。
【００２５】
＜ゲームシステムの処理の態様例＞
本開示の一実施形態に係るゲームシステムにおいて実行される処理を、図３、図４に示す野球ゲームを例示して説明する。図３は、本ゲームシステムの動作を示すフローチャートである。図４は、本実施形態における処理によって生成される、野球ゲームのゲーム画面の一例である。図４において、ゲーム空間としての球場における一場面が示されている。本場面は打撃画面を示しており、投手６０３が立っている位置（第１位置）からキャッチャー（図示せず）のいる位置（第２位置）まで投手６０３がボール６０４を投球して（移動体を移動させ）、打者６０１がボール６０４に対する打撃を行う（移動体に対して作用を与える）場面が示されている。また、制御部１１０は、交差面を第１位置と第２位置の間におけるホームベース６０７上に設定する。交差面はストライクゾーン６０５およびボールゾーン６０８を含む。投手６０３が投球したボールが交差面に到達したタイミングでユーザからの所定の操作入力を受け付けると、打者６０１はバット６０２をスイングし、ボール６０４を打ち返す作用を与える。ボール６０４ａ、ボール６０４ｂは、投手６０３が投球したボールが交差面に到達する際の到達予定位置、または、実際の到達位置を示す。ボール６０４ａは、ボール６０４がストライクゾーン６０５と交差する際の位置の一例を示している。ボール６０４ｂは、ボール６０４がボールゾーン６０８と交差する際の位置の一例を示している。また、制御部１１０は、縁領域６０５ａ〜６０５ｄを、ストライクゾーン６０５内における各辺から内側に伸びる矩形の領域として設定する。
【００２６】
交差面には、仮想バット６０２’およびミートカーソル６０６が表示される。仮想バット６０２’およびミートカーソル６０６は、バット６０２がスイングされた際に、交差面においてボール６０４に作用を与え得る領域を示す標識である。仮想バット６０２’はバット６０２がスイングされたときの到達予定位置を示す。ミートカーソル６０６は、仮想バット６０２’内に設定される領域であり、特に良好な打撃力によってボール６０４に作用を与えることができる領域である。なお、仮想バット６０２’を表示せず、ミートカーソル６０６のみを表示してもよい。
【００２７】
図３に示すように、ステップＳ１０１において、メインメニュー画面（不図示）においてユーザが野球ゲームの実行を指示すると、制御部１１０は野球ゲームを開始する。制御部１１０は、各種オブジェクトのゲームデータを記憶部１２０に記憶させる。必要なゲームデータが記憶部１２０に記憶されていない場合には、制御部１１０はゲームサーバ２００からダウンロードする。各種オブジェクトのゲームデータは、例えば打者６０１、バット６０２、投手６０３、ミートカーソル６０６、ホームベース６０７等であり、後述する打者６０１に適用される基準モーションデータを含む。次に、ステップＳ１０２において、制御部１１０は、記憶部１２０から各種オブジェクトのゲームデータをロードし、図４に示されるような打者６０１、バット６０２、投手６０３、ミートカーソル６０６、ホームベース６０７等を含む打撃画面６００を表示する。なお、制御部１１０は、ストライクゾーン６０５、ボールゾーン６０８、および、後述するモーション基準点を表示部１５２に表示させなくてもよい。
【００２８】
ステップＳ１０３において、制御部１１０は表示部１５２の打撃画面６００中に投手６０３による投球動作を表示させる。制御部１１０は、投手６０３による投球動作が開始された後所定のタイミングで、ストライクゾーン６０５またはボールゾーン６０８内にボール６０４の到達予定位置を示す表示（ボール６０４ａ，６０４ｂ）を描画する。投手６０３が投球動作を開始するタイミングは、例えば、ユーザ端末１００を操作するユーザがインターネットを介して別のユーザと対戦する場合には、当該別のユーザが操作するユーザ端末１００から送信される投球開始指示に基づけばよい。また、コンピュータ制御による仮想の相手とユーザが対戦する場合には、ゲームプログラムによって適宜設定されたタイミングであればよい。制御部１１０はボール６０４の到達予定位置を表示部１５２に表示させた後、ミートカーソル６０６を半透明に表示させて、ボール６０４の到達予定位置の表示を遮ることがないようにする。
【００２９】
ステップＳ１０４において、操作受付部１１１がユーザによる入力部１５１に対するスワイプ操作（第１操作）を受け付けると、制御部１１０は仮想バット６０２’およびミートカーソル６０６を移動させる。操作受付部１１１は、タッチスクリーン１５の任意の位置におけるスワイプ操作を受け付けて、ミートカーソル６０６の位置を移動させることができる。具体的には、操作受付部１１１は、タッチスクリーン１５に対するユーザの最初の接触位置（初期タッチ座標）と、スワイプ操作後の接触位置（タッチナウ座標）とを比較し、初期タッチ座標に対するタッチナウ座標の変化方向、および、変化量に基づいて、ミートカーソル６０６の位置の変化方向、および、変化量をそれぞれ決定する。これにより、オブジェクト制御部１１４は、ホームベース６０７上の交差面と異なる領域におけるスワイプ操作に対しても、それに連動して、ミートカーソル６０６を間接的に移動させることができる。このようにすれば、ユーザの指によってミートカーソル６０６の視認が妨げられることを回避できる。
【００３０】
本実施形態では、ミートカーソル６０６は、その一部がストライクゾーン６０５に含まれる範囲で移動可能である。従って、ミートカーソル６０６の一部はボールゾーン６０８に含まれ得る。しかし、ボールゾーン６０８のボールを打撃することは不可能なように設定されていてもよい。
【００３１】
ステップＳ１０５において、オブジェクト位置判定部１１２が、投手６０３により投球されたボール６０４が交差面から所定の範囲内に入ったか否かを判定する。所定の範囲は、第１位置（投手６０３の位置）と第２位置（キャッチャーの位置）の間において、交差面から第１位置に向けて延びる所定距離に含まれる範囲である。ボール６０４が所定の範囲内に入っていると判定された場合、オブジェクト制御部１１４はミートカーソル６０６の移動の少なくとも一部を制限する。移動が制限されたことを示すように、オブジェクト制御部１１４はミートカーソル６０６の色や模様といった表示態様を変化させてもよい。ミートカーソル６０６は、後述する打撃操作を開始するための操作入力の態様に基づいて、移動が制限されることが好ましい。例えば、第１方向（典型的に上方向：０°〜１８０°方向）にフリック操作が入力された場合に打撃操作を開始する場合には、当該第１方向へのミートカーソル６０６の移動が制限されることが好ましい。これにより、例えばフリック操作が入力された場合に、誤ってミートカーソル６０６の移動操作と判定されてしまうことが確実に防止される。なお、第１方向のみならず、第１方向と異なる第２方向（典型的には下方向：１８０°〜３６０°方向）への移動（すなわち、全方向への移動）も制限されていてもよい。
【００３２】
一方、ミートカーソル６０６の移動が制限されている場合にも、第２方向への移動は許容されてもよい。例えば、変化球は下方向（１８０°〜３６０°方向の範囲内）において変化することが想定されるため、第２方向への移動が許容されることにより、ユーザはボール６０４が交差面に到達するぎりぎりまでミートカーソル６０６を移動させることができる。このように、ミートカーソル６０６を移動させるための操作入力と、打撃を行うための操作入力との競合を回避することが可能になる。また、図４に示すようにボール６０４を飛ばす方向（例えばスタンド、外野方向）は、画面上、打撃位置より上方に描画されるため、ユーザが直感的に上方向へのフリック操作を打撃操作と理解することができる。
【００３３】
ステップＳ１０６において、操作受付部１１１はユーザからのボール６０４に対する打撃操作（第２操作）を開始するためのフリック操作を受け付ける。操作受付部１１１はタッチスクリーン１５上のいかなる位置に対して行なわれたフリック操作も打撃操作を開始するための操作として受け付ける。つまり、ユーザはタッチスクリーン１５上の任意の位置で打撃操作のためのフリック操作をすることができる。ステップＳ１０７において、操作受付部１１１は、入力されたタッチ位置の履歴を解析して、フリック操作の方向、スピード、および、タイミングを取得する。具体的には、操作受付部１１１は、フレーム毎にユーザ（ユーザにより操作される指またはスタイラスといった指示体）による接触が入力された入力部１５１における座標を取得する。これにより、タッチ位置の移動前後における座標を比較することによりフリック操作の方向が判定される。また、フレーム間におけるタッチ位置の座標変動量を求めることにより、フリック操作のスピードが判定される。また、フレーム間におけるタッチ位置の座標変動量が所定の閾値を越えた場合にフリック操作と判定されるように設定されていることにより、当該閾値を超えるスピードで初めてタッチ位置の座標が変動したフレームを、フリック操作が入力されたタイミングとして特定することができる。なお、フリック操作と判定されなかった場合には、打撃操作が入力されなかったものと判定できる。なお、フリック操作は、タッチスクリーン１５における任意の位置で検知することができる。ミートカーソル６０６を移動させるためのスワイプ操作から連続してフリック操作が入力された場合にもフリック操作を好適に判定することができ、ミートカーソル６０６の移動から打撃までをシームレスに行うことが可能な操作性をユーザに提供できる。
【００３４】
また、モーション画像生成部１１３は、操作受付部１１１によるフリック操作の解析結果、ボール６０４の位置、ミートカーソル６０６の位置等に基づいて、打者６０１がバット６０２を仮想バット６０２’に向けてスイングするモーションに対応するアニメーションの画像を生成する。本実施形態では、フリック操作のスピードによりスイングのスピードを決定してもよい。また、スイングのスピードを打者６０１の能力にも依存させるようにしてもよい。モーション画像の生成については後で詳述する。
【００３５】
ステップＳ１０８において、オブジェクト制御部１１４は、バット６０２によって作用を与えられたボール６０４をゲーム空間内において移動させるための条件を取得し、移動経路を算出する。例えば、バット６０２とボール６０４との衝突を力学的にモデル化し、衝突直後のボール６０４の速度ベクトル、回転軸、回転量等を移動の初期条件として取得すればよい。このとき、フリック操作の方向、タイミングに基づいて速度ベクトルの向きが特定され、フリック操作のスピードに基づいて速度ベクトルの大きさが特定されてもよい。その後、ゲーム空間内に設定された各種物理パラメータ、および、物理法則を規定する方程式に基づいて、移動経路を算出すればよい。これにより、定性的には現実の野球と同様の打球の移動結果が表示部１５２に表示できる。例えば、スイングのタイミングが早い場合には引っ張る方向へ打球が移動し、遅い場合には流し打ちの方向へ打球が移動する。また、ボール６０４への打撃に適合したタイミングから外れて、早過ぎたり遅すぎたりすると空振りとなる。また、スイングのタイミングが適合していても、スイングの軌跡が、ボールへの打撃に適合した位置範囲から外れていれば空振りとなる。
【００３６】
オブジェクト制御部１１４は、バット６０２とボール６０４との衝突の態様に応じてボール６０４の移動経路を算出する。例えば、ボール６０４の下部をバット６０２の上部で打撃した場合には、打球の角度が上がりフライとなる。また、ボール６０４の上部をバット６０２の下部で打撃した場合には、打球の角度が下がりゴロとなる。また、例えば、オブジェクト制御部１１４は、ミートカーソル６０６の中央の位置でボール６０４の中央を打撃する等の所謂ジャストミートの場合にはヒットまたはホームランと判定し、ジャストミート以外の場合には凡打と判定して、ホームランまたは凡打に対応する移動経路を算出してもよい。
【００３７】
バット６０２とボール６０４の衝突判定、および、打球の軌道の計算は、ミートカーソル６０６とボール６０４の位置関係、および、フリック操作の解析結果に基づいて行えばよい。即ち、バット６０２のスイングは演出のためのアニメーション表示であり、ミートカーソル６０６とボール６０４の位置関係、および、フリック操作の解析結果に基づいて打撃の結果（打球の軌道、または、空振り等）を計算するとともに、ミートカーソル６０６および仮想バット６０２’の位置に向けて、フリック操作が入力されたタイミングに、バット６０２がスイングしている様子を示すアニメーションを生成すれば、違和感の無い画面を表示することができる。
【００３８】
＜モーション画像の生成＞
図４〜図６を用いて打者６０１がバット６０２をスイングするとき、打者６０１を構成するオブジェクトが制御される態様（以下、モーション画像と称する）を制御する処理について説明する。図５は、モーション画像を生成する処理を示すフローチャートである。
【００３９】
ステップＳ３０１において、モーション画像生成部１１３は、記憶部１２０に記憶された打者６０１に対応するモーションデータをロードする。モーションデータは、後述する複数の基準モーションに相当するデータ、および、ボールを見送るモーションに相当するデータを含む。ステップＳ３０２において操作受付部１１１は打撃操作を受け付ける。打撃操作は、前述のステップＳ１０７のフリック操作である。なお、打撃操作が受け付けられなかった場合には、モーション画像生成部１１３はボールを見送るモーションに相当するデータに基づいて、ボール６０４を見送るモーション画像を生成する。
【００４０】
ステップＳ３０３において、オブジェクト位置判定部１１２は、ボール６０４がストライクゾーン６０５内を通過するか否かを判定する。例えば、オブジェクト位置判定部１１２は、ボール６０４が交差面のうちストライクゾーン６０５と交差したか否かを判定してもよい。また、オブジェクト位置判定部１１２は、ボール６０４の到達予定位置が交差面のうちストライクゾーン６０５内に位置しているかを判定してもよい。
【００４１】
ステップＳ３０３においてＹＥＳであった場合、ステップＳ３０６に進み、モーション画像生成部１１３がモーション画像を生成する。モーション画像は、打者６０１がバット６０２をスイングする前に構えている様子を示す構え画像、スイングしている様子を示すスイング画像、および、スイングした後の様子を示すフォロースルー画像を、この順で連続させた動画像となる。構え画像はキャラクタ毎に定まっており、ボール６０４およびミートカーソル６０６の位置の影響を受けない。ただし、構え画像は、ミートカーソル６０６の位置に応じて変化してもよい。例えば、ミートカーソル６０６が高い位置にあるときには、高い位置を振ろうとする構えの画像としてもよい。
【００４２】
図４に示すように、本実施形態では、ストライクゾーン６０５およびボールゾーン６０８内に、基準点Ａ〜Ｉ、縁領域６０５ａ〜６０５ｄが設定される。ストライクゾーン６０５、ボールゾーン６０８、基準点Ａ〜Ｉ、縁領域６０５ａ〜６０５ｄは、実際の打撃画面６００には表示されなくてもよい。
【００４３】
モーション画像生成部１１３は、基準モーションＡ’〜Ｉ’を合成してスイング画像を生成する。基準モーションＡ’〜Ｉ’は、それぞれ、基準点Ａ〜Ｉに関連付けられている。制御部１１０は、基準点Ａ〜Ｉをボールゾーン６０８およびストライクゾーン６０５に設定する。
【００４４】
基準点Ａ〜Ｈは、ボールゾーン６０８内であって、ストライクゾーン６０５を囲むように離散的に設定され、基準点Ｉはストライクゾーン６０５内に設定されている。そして、図６の（ｂ）に示すように、基準点Ａ〜Ｉには、基準モーションＡ’〜Ｉ’がそれぞれ関連付けられている。
【００４５】
操作受付部１１１は、ボール６０４を打撃するために図４で示す位置にミートカーソル６０６を移動させる操作（例えば、スワイプ操作）を受け付ける。モーション画像生成部１１３は、操作受付部１１１から供給されたミートカーソル６０６の位置情報を用いて、ミートカーソル６０６と全ての基準点Ａ〜Ｉとの位置関係を特定する。具体的には、モーション画像生成部１１３は、全ての基準点Ａ〜Ｉとミートカーソル６０６との距離を算出する。
【００４６】
次に、モーション画像生成部１１３は、基準点Ａ〜Ｉとミートカーソル６０６との距離の比に応じて、基準モーションＡ’〜Ｉ’を用いてスイング画像を生成する。例えば、モーション画像生成部１１３は、打者６０１の体の内の点（例えば関節等）、および、バット６０２中の点等のモーション画像の合成に用いる点に対応する基準モーションの各点の座標に対して、基準Ａ〜Ｉとミートカーソル６０６との距離に応じた重みづけ係数を算出する。次に、モーション画像生成部１１３は、算出した重みづけ係数を用いて、各座標の重みづけ平均を算出する。モーション画像生成部１１３は、各座標の重みづけ平均に対応する座標に前記各点が位置するように打者６０１およびバット６０２の打撃画像を生成する。
【００４７】
オブジェクト位置判定部１１２は、ミートカーソル６０６が、ストライクゾーン６０５内の内角、外角、中央のいずれの位置にあるかを判定して、判定結果をモーション画像生成部１１３に供給する。モーション画像生成部１１３は、判定結果に基づいて内角、外角、中央のいずれかのフォロースルー画像を選択して、スイング画像の後に表示されるようにモーション画像を生成する。以上の処理により、モーション画像生成部１１３は、打者６０１がバット６０２をスイングする一連のモーション画像を生成して、画像処理部１４は表示部１５２に当該モーション画像を表示させる。
【００４８】
ステップＳ３０３においてＮＯであった場合、つまりボールゾーン６０８に投球されたボール６０４ａを打撃する場合には、ステップＳ３０４において、オブジェクト位置判定部１１２はミートカーソル６０６がボール６０４ａに最も近い縁領域内にあるか否かを判定する。まず、オブジェクト位置判定部１１２はボール６０４ａに最も近い縁領域を特定する。例えば、オブジェクト位置判定部１１２は、縁領域の長辺の内、ストライクゾーン６０５の外周の辺となっている辺が、ボール６０４ａに最も近いものを、ボール６０４ａに最も近い縁領域であると特定する。本実施形態ではオブジェクト位置判定部１１２は縁領域６０５ａがボール６０４ａに最も近い縁領域であると特定する。次に、オブジェクト位置判定部１１２は、縁領域６０５ａ内に、ミートカーソル６０６の一部が位置しているか否かを判定する。本実施形態ではステップＳ３０４においてＹＥＳであるのでステップＳ３０５に進む。なお、ステップＳ３０４においてＮＯである場合、ステップＳ３０６に進む。この場合、ステップＳ３０３においてＹＥＳであるときに行うステップＳ３０６と同様の処理を行なうことによってモーション画像生成部１１３はモーション画像を生成する。
【００４９】
ステップＳ３０５において、オブジェクト位置判定部１１２は仮想ミートカーソル６０６’の位置を算出する。モーション画像生成部１１３は、ミートカーソル６０６の移動操作の入力が開始されてから打撃操作が入力されるまでにタッチスクリーン１５がタッチされた座標の履歴情報を取得する。履歴情報は、操作受付部１１１がフレーム毎に検知したタッチ位置座標の履歴として記憶部１２０によって一時的に記憶される。なお、履歴情報は移動の軌跡および速度を示す情報を含む。次に、モーション画像生成部１１３は、現在のミートカーソル６０６の位置と、履歴情報とから、ミートカーソル６０６が仮想的にボールゾーン６０８に移動したとしたときの位置に、仮想ミートカーソル６０６’を設定する。例えば、操作受付部１１１がミートカーソル６０６を下から上へ移動させる操作を受け付け、当該操作に基づいてオブジェクト制御部１１４が算出するミートカーソル６０６の位置がボールゾーン６０８内の位置になるとき、オブジェクト制御部１１４はストライクゾーン６０５内の最も上にミートカーソル６０６を配置し、前記ボールゾーン６０８内の位置に仮想ミートカーソル６０６’を設定する。制御部１１０は仮想ミートカーソル６０６’を打撃画面６００に表示しなくてもよい。
【００５０】
ステップＳ３０６において、モーション画像生成部１１３はモーション画像を生成する。このとき、ミートカーソル６０６の代わりにステップＳ３０５で算出した位置の仮想ミートカーソル６０６’を用いる以外は、前述のステップＳ３０３においてＹＥＳであった場合のステップＳ３０６と同様の処理が行われる。
【００５１】
本実施形態では、ボール６０４ａはボール６０４ｂより高い位置に投球されている。従って、打者６０１がボール６０４ａを打撃しようとするモーションは、ボール６０４ｂを打撃しようとするモーションに比べてアッパースイングとなる。このように、ボールゾーン６０８にある基準点Ａ〜Ｈに関連付けられた基準モーションＡ’〜Ｈ’を用いることで、ユーザは視覚的にボールゾーン６０８に投球されたボールに手を出してしまったことを知らせることができる。ボールゾーン６０８内の基準点Ａ〜Ｈに関連付けられる基準モーションＡ’〜Ｈ’を、ボールゾーン６０８に投球されたボールに手を出したときのモーションとしておくことができ、このような基準モーションの画像を用いてモーション画像を生成できるからである。また、前述の通り、ストライクゾーン６０５は打撃画面６００に表示されないが、ユーザはボールゾーン６０８のボール６０４ａに手を出してしまったことを、モーション画像から判断することができる。よって、ゲームの趣向性が高まる。
【００５２】
また、オブジェクト制御部１１４が仮想ミートカーソル６０６’を設定することで、ユーザが打撃しようと意図した位置でバット６０２を振る動作として、モーション画像生成部１１３は、よりリアリティの高いモーションを生成することができる。また、ユーザがボールゾーン６０８のボール６０４ａを打撃しようとせずに、あえて空振りをしたときに、モーション画像生成部１１３は、ボール６０４ａを打撃しようしたかのように挙動するモーション画像を生成しない。
【００５３】
なお、従来技術ではボールゾーン６０８に投球されたボール７０４に手を出したときのモーションを生成できない理由を、図７を用いて説明する。図７ではストライクゾーン内に基準点ｘ、ｙが配置されている。例えば、図７では、ボールゾーン６０８内のボール７０４ａも、ストライクゾーン６０５内のボール７０４ｂも、それぞれ、基準点ｘとの距離および基準点ｙとの距離が等しい。このように従来技術では、ストライクゾーン内のボールと基準点との位置関係と同じ位置関係となるボールゾーン内のボールが存在する。このような場合、生成されるモーション画像は同じになる。従って、ストライクゾーン内のボールを打撃するときと、ボールゾーン内のボールを打撃するときとで同じモーション画像が生成される。通常、ゲームシステムを提供する者は、ストライクゾーン内の基準点にボールゾーン内のボールに手を出したときの基準モーションを関連付けることはしないので、従来技術ではボールゾーン内のボールに手を出してしまったときのモーションを生成することはできない。
【００５４】
〔ソフトウェアによる実現例〕
制御部１１０の制御ブロックは、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【００５５】
後者の場合、制御部１１０は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、前記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、前記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して前記コンピュータに供給されてもよい。なお、本発明は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００５６】
本発明は前述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【００５７】
〔付記事項〕
本発明の一側面に係る内容を列記すると以下の通りである。
【００５８】
（項目１）第１位置から第２位置に向けて移動する移動体に対してキャラクタに作用を与えさせるゲームの実行方法であって、前記方法は、プロセッサおよびメモリを備えるコンピュータにより実行され、前記プロセッサの制御により、第１領域と当該第１領域の外側の第２領域とを含み、前記作用を前記移動体に与えたか否かを判定するための交差面を、前記第１位置と前記第２位置との間に設定するステップと、前記作用を与えるための作用領域を前記交差面に設定するステップと、前記作用領域を移動させる第１操作を受け付けるステップと、前記第１操作に基づいて、前記作用領域の少なくとも一部が前記第１領域内に含まれるように前記作用領域を移動させるステップと、基準モーションが関連付けられた複数の基準点の各々を、前記第１領域および前記第２領域のうち少なくとも一方に設定し、且つ、複数の前記基準点のうちの少なくとも一つを前記第２領域に設定するステップと、前記第１操作による移動後の前記作用領域の位置、および、前記第２領域に設定されている前記基準点に関連付けられている前記基準モーションに基づいて、前記キャラクタのモーション画像を生成するステップと、を含む、方法。打撃できない位置に投球されたボールに手を出してしまったときのモーションを生成することができる。ユーザはモーションにより当該ボールに手を出したことを認識できる。よって、ゲームの趣向性が高まる。
【００５９】
（項目２）前記コンピュータは、物体の接触または近接を検知できる入力部と、画像を表示させる表示部と、を含むタッチスクリーンを備え、前記移動体が前記第２領域を通過するか否かを判定するステップと、前記作用を与えさせるための第２操作を受け付けるステップと、を含み、前記第１操作を受け付けるステップおよび前記第２操作を受け付けるステップでは、前記タッチスクリーンに対する物体の接触または近接に基づいて前記第１操作および前記第２操作を受け付け、前記タッチスクリーンに対して、前記第１操作の受付の開始から前記第２操作を受け付けるまでにタッチされた位置の履歴情報を取得するステップ、を含み、前記移動体が前記第２領域を通過すると判定した場合には、前記履歴情報と前記作用領域の位置とから、前記作用領域が仮想的に前記第２領域内に移動した場合の位置を算出するステップと、をさらに含み、前記生成するステップでは、前記算出するステップで算出した位置、および、前記第２領域に設定されている前記基準点に関連付けられている基準モーションに基づいて、前記モーション画像を生成する、項目１の方法。仮想作用領域を設定することで、ユーザが打撃しようと意図した位置でバットを振る動作として、よりリアリティの高いモーションを生成することができる。
【００６０】
（項目３）前記コンピュータは、物体の接触または近接を検知できる入力部と、画像を表示させる表示部と、を含むタッチスクリーンを備え、前記第１領域の内側方向に縁領域を設定するステップと、前記作用領域の少なくとも一部が前記縁領域内にあるか否かを判定するステップと、前記移動体が前記第２領域を通過するか否かを判定するステップと、前記作用を与えさせるための第２操作を受け付けるステップと、を含み、前記第１操作を受け付けるステップおよび前記第２操作を受け付けるステップでは、前記タッチスクリーンに対する物体の接触または近接に基づいて前記第１操作および前記第２操作を受け付け、前記タッチスクリーンに対して、前記第１操作の受付の開始から前記第２操作を受け付けるまでにタッチされた位置の履歴情報を取得するステップと、前記作用領域の少なくとも一部が前記縁領域内にあると判定して、かつ、前記移動体が前記第２領域を通過すると判定した場合には、前記履歴情報と前記作用領域の位置とから、前記作用領域が仮想的に前記第２領域内に移動した場合の位置を算出するステップと、をさらに含み、前記生成するステップでは、前記算出するステップで算出した位置、および、前記第２領域に設定されている前記基準点に関連付けられている前記基準モーションから前記モーション画像を生成する、項目１の方法。縁領域に作用領域があるときに仮想作用領域を設定することにより、ユーザが打撃しようとせずにあえて空振りをしたときに、ボールを打撃しようしたかのように挙動するモーション画像を生成させないようにすることができる。
【００６１】
（項目４）前記基準点は、前記第１領域に少なくとも一つ設定されており、前記生成するステップでは、前記第１領域に設定されている前記基準点に関連付けられている基準モーション、および、前記第２領域に設定されている前記基準点に関連付けられている基準モーションを、前記作用領域の位置とそれぞれの前記基準点の位置関係とから特定される合成比率に基づいて合成し、前記キャラクタのモーション画像を生成する、項目１から３の方法。ユーザが打撃しようとする位置でバットを振る動作として、よりリアリティの高いモーションを生成することができる。
【００６２】
（項目５）前記基準点を設定するステップでは、前記第１領域に前記基準点を一つ設定する、項目１から４の方法。モーション画像を生成するための基準モーションのうち、第２領域の基準点の基準モーションの占める割合をより多くすることで、打撃できない位置に投球されたボールに手を出してしまったときのモーション画像としてよりリアリティの高い画像を生成することができる。
【００６３】
（項目６）前記生成するステップでは、全ての前記基準モーションに基づいて、前記キャラクタのモーション画像を生成する、項目１から５の方法。打撃をするときのモーション画像としてよりリアリティの高い画像を生成することができる。
【００６４】
（項目７）項目１から６の方法の各ステップをコンピュータに実行させるプログラム。
【００６５】
（項目８）項目７に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【符号の説明】
【００６６】
１４  画像処理部、１５  表示部、１００  ユーザ端末、１１０  制御部、１１１  操作受付部、１１２  オブジェクト位置判定部、１１３  モーション画像生成部、１１４  オブジェクト制御部、１２０  記憶部、１２１  基準モーションデータ、６００  ゲーム画面、６０１  打者、６０２  バット、６０２’  仮想バット、６０３  投手、６０４、６０４ａ、６０４ｂ  ボール（移動体）、６０５  ストライクゾーン（第１領域：交差面）、６０５ａ〜６０５ｄ  縁領域、６０６  ミートカーソル（作用領域）、６０６’  仮想ミートカーソル、６０７  ホームベース、６０８  ボールゾーン（第２領域：交差面）、Ａ〜Ｉ  基準点、Ａ’〜Ｉ’  基準モーション
【図１】
0006779048.tif 000002
【図２】
0006779048.tif 000003
【図３】
0006779048.tif 000004
【図４】
0006779048.tif 000005
【図５】
0006779048.tif 000006
【図６】
0006779048.tif 000007
【図７】
0006779048.tif 000008