本発明の実施形態に係るゲームを実行するゲームプログラム、方法および情報処理装置の具体例を、以下に図面を参照しつつ説明する。本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
本開示のゲームは、ゲームキャラクタがゲーム空間内における第1の位置から第2の位置に向けて移動する移動体に作用を与えるゲームである。本実施形態では、投手が位置する第1の位置から捕手が位置する第2の位置に向けて投げたボールに対して、打者が打撃する野球ゲームを例示して説明する。
<ユーザ端末とゲーム端末との関係及び構成>
まず、図1を用いて、ゲームシステム1で用いられるユーザ端末100とゲームサーバ200との関係及びそれぞれの構成について説明する。ゲームシステム1は、複数のユーザ端末100と、ゲームサーバ200と、を含む。各ユーザ端末100とゲームサーバ200とは、ネットワーク2を介して接続されている。ネットワーク2は、インターネット、図示しない無線基地局によって構築される各種移動通信システム(例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution))、または、所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えば、WiFi(登録商標))を含み得る。
ユーザ端末100は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、または、タブレット型コンピュータ等の携帯端末であることがより好ましい。ユーザ端末100は、通信バスによって互いに電気的に接続されたプロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15とを備える。
入出力IF14は、USB(Universal Serial Bus)等を介した各種データ入出力機能および音声入出力機能を備える。
タッチスクリーン15は、入力部151と表示部152とを組み合わせた電子部品である。入力部151は、タッチセンシティブなデバイスであり、例えば、タッチパッド等によって構成される。表示部152は、例えば、液晶ディスプレイ、有機EL(electro-luminescence)ディスプレイ等によって構成される。入力部151は、タッチスクリーン15に対するユーザの指やスタイラスといった物体の接触または近接を検知し、操作入力として受け付ける。入力部151は、当該操作入力に含まれるユーザの作用(主に、タッチ操作、スワイプ操作、フリック操作、及びタップ操作等の物理的接触操作)が入力された画面位置の情報を検知して、該情報を外部へ情報信号として出力する機能を備える。タッチスクリーン15はタッチセンシティブであればよく、静電容量方式、抵抗膜方式等のどのような方式のデバイスを含んで構成したものであってもよい。
ゲームサーバ200は、ゲームに関する各種サービスを各ユーザ端末100に提供する。ゲームサーバ200は、ワークステーション、パーソナルコンピュータ等の汎用コンピュータであることがより好ましい。ゲームサーバ200は、通信バスにより互いに電気的に接続されたプロセッサ20と、メモリ21と、ストレージ22と、通信インターフェース(IF)23と、入出力IF24とを備える。
プロセッサ10、20は、CPU(Central Processing Unit)やMPU(Micro processing unit)、GPU(Graphics Processing Unit)等を含んで構成される。プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ20は、ゲームサーバ200全体の動作を制御する。メモリ11、21は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の揮発性記憶装置で構成され得る主記憶装置を含んで構成される。ストレージ12、22は、フラッシュメモリまたはHDD(Hard Disk Drive)などの不揮発性記憶装置によって構成され得る補助記憶装置を含んで構成される。メモリ11には、プロセッサ10がストレージ12からロードした各種プログラム及びデータが一時的に記憶される。メモリ21には、プロセッサ20がストレージ22からロードした各種プログラム及びデータが一時的に記憶される。これによりメモリ11はプロセッサ10に対して作業領域を提供する。メモリ11は、プロセッサ20に対して作業領域を提供する。
ゲームサーバ200のストレージ22にはゲームプログラム等のゲームデータが格納される。ユーザ端末100のストレージ12には、ゲームサーバ200からダウンロードされたゲームプログラム等のゲームデータが格納される。当該ゲームプログラムは、メモリ11、21に展開される。プロセッサ10は、メモリ11に展開されるゲームプログラムを実行する。プロセッサ20は、メモリ21に展開されるゲームプログラムを実行する。メモリ11には、プロセッサ10が当該ゲームプログラムにしたがって動作している間に生成した各種ゲームデータも一時的に格納される。メモリ21には、プロセッサ20が当該ゲームプログラムにしたがって動作している間に生成した各種ゲームデータも一時的に格納される。本実施形態では、各種データは所定のゲームプログラム、ユーザ情報およびゲーム情報等のゲームデータ、それらをユーザ端末100とゲームサーバ200との間に送受信させる指示、ゲームを進行させるための指示を含む。
通信IF13、23は、ユーザ端末100とゲームサーバ200との間で各種データを送受信するための通信制御機能を備える。通信制御機能には、例えば、無線LAN(Local Area Network)接続機能、有線LAN、無線LANおよび携帯電話回線網を介したインターネット接続機能ならびに近距離無線通信機能等が含まれる。
ゲームサーバ200の入出力IF24は、マウス、キーボード等の情報入力機器である入力部、および、液晶ディスプレイ等の出力部を備えており、コンピュータの情報をモニタリングするために用いられる。
次に図2を用いてユーザ端末100の機能的構成について説明する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、入出力IF14等の協働により、制御部110及び記憶部120として機能し得る。記憶部120に格納されたゲームプログラムは主記憶上に展開され、制御部110において実行される。制御部110は、当該ゲームプログラムによって、操作受付部111、オブジェクト位置判定部112、モーション画像生成部113、オブジェクト制御部114、打撃モード設定部115、および、表示制御部116として機能し得る。なお、主記憶上には、制御部110が当該プログラムにしたがって動作している間に生成した各種ゲームデータや制御部110によって利用される各種ゲームデータも一時的に格納される。記憶部120には、制御部110が前述した各部として機能するために必要なデータが記憶されている。当該データとしては、例えば、ゲームプログラム、ゲーム情報、ユーザ情報が含まれる。ゲーム情報としては、各種ゲームオブジェクトを管理するオブジェクト管理テーブル、ゲームキャラクタの各種スキルを管理するスキル管理テーブル、各ゲームキャラクタのモーションを定義するためのモーションデータ等が挙げられる。ユーザ情報としてはユーザ管理テーブル等が挙げられる。
制御部110は、ユーザ端末100全体の動作を制御し、各要素間におけるデータの送受信、ゲームの実行に必要な演算処理およびその他の処理を行う。制御部110は、例えば、操作受付部111で検知されたタッチスクリーン15に対する操作入力に基づいてゲームプログラムに従ったゲームを展開させ、その結果を示すゲーム画像を描画する。制御部110は、ゲームサーバ200から受信したユーザ情報、ゲームプログラムによる演算結果、ユーザの入力部151に対する作用に基づいて、表示部152に表示されるゲーム空間及びオブジェクト等の画像を生成する。また、制御部110は、タッチスクリーン15に対する操作入力に基づいてゲーム空間内におけるゲームオブジェクトを操作する。また、制御部110は、タッチスクリーン15に対する操作入力及び演算処理の結果等に基づいて、記憶部120に記憶されている各種データの更新等の処理を行う。なお、制御部110は、ゲームの進行状態に応じて、ゲーム空間の視野を指定するための仮想カメラの位置を制御する処理を行ってもよい。また、制御部110は、記憶部120に記憶された各種ユーザ情報及びゲーム情報を参照し、ゲーム進行に必要な各種判定を実行する。また、制御部110は、演算処理およびその他の処理を実行することにより生成したゲーム画面を表示部152に出力する。
操作受付部111は、タッチスクリーン15の入力部151に対するユーザの操作を検知する。操作受付部111は、入力部151及びその他の入出力IF14を介したコンソールによる操作指示等から、いかなる入力がなされたかを判別し、その結果をオブジェクト位置判定部112、モーション画像生成部113等の必要な要素に出力する。操作受付部111は、入力部151に対する作用入力がなされた場合には、入力位置の座標情報、作用の種類(タッチ操作、スライド操作)を検知する。操作受付部111は、連続して検知されていた入力が途切れることを検知することで、タッチスクリーン15から接触入力が解除されたことを検知する。
操作受付部111は、タッチスクリーン15に対するユーザの操作を判別することができる。例えば、タッチオン操作、タッチオフ操作、スワイプ操作、スライド操作、フリック操作、およびその他の操作を判別する。タッチオン操作は、タッチスクリーン15に対する物体の接触または近接による操作入力を開始させる操作である。タッチオフ操作は、タッチスクリーン15に対する物体の接触または近接を解除することによって、タッチスクリーン15への操作入力を解除する操作である。スワイプ操作は、タッチオン操作に引き続いて入力され、タッチスクリーン15に対する物体の接触または近接を維持した状態で、当該物体をタッチスクリーン15上で移動させる操作である。スライド操作は、ユーザがスワイプ操作を予め定められた時間よりも短い時間で行う操作である。フリック操作は、ユーザがスライド操作後にタッチオフ操作を行う操作であり、例えば、ユーザがタッチスクリーン15で指を弾くような操作である。
オブジェクト制御部114は、ユーザによる操作入力、および/または、ゲームプログラムに基づいて、打者601(キャラクタ)、バット602、投手603(キャラクタ)、ボール604(移動体)、ミートカーソル606(作用領域)等のオブジェクト(図4参照)を制御する。
オブジェクト位置判定部112は、ボール604、ミートカーソル606等のオブジェクトのゲーム空間内における位置を判定する。例えば、オブジェクト位置判定部112は、ボール604がストライクゾーン605又はボールゾーン608内のいずれの位置に到達するかを判定する。また、オブジェクト位置判定部112は、到達したボール604とミートカーソル606との位置関係を特定する。
打撃モード設定部115は、ユーザによる操作入力に基づいて、打者601の打撃の態様を示す打撃モードを設定する。本実施形態では、打撃モード設定部115は、第1の打撃モード(以下、「第1モード」という。)または第2の打撃モード(以下、「第2モード」という。)を設定する。
モーション画像生成部113は、オブジェクト制御部114による、ボール604、および、ミートカーソル606等の各オブジェクトの制御態様に基づいて、各オブジェクトのモーションを示す画像を生成する。例えば、モーション画像生成部113は、ミートカーソル606の制御態様に基づいて、打者601が振るバット602や、打者601のモーションに対応するアニメーションを生成してもよい。
表示制御部116は、タッチスクリーン15の表示部152に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。該ゲーム画面には、例えば、モーション画像生成部113によって生成された、ミートカーソル606、バット602、ボール604等のアニメーションが含まれる。
<ゲームシステムの処理の態様例>
本開示の一実施形態に係るゲームシステムにおいて実行される処理を、図3、図4に示す野球ゲームを例示して説明する。図3は、本ゲームシステムの動作を示すフローチャートである。図4は、本実施形態における処理によって生成される、野球ゲームのゲーム画面の一例である。図4において、ゲーム空間としての球場における一場面が示されている。本場面は打撃画面600を示しており、投手603が立っている位置(第1位置)からキャッチャー(図示せず)のいる位置(第2位置)まで投手603がボール604を投球して、打者601がボール604に対する打撃を行う場面が示されている。本実施形態において、「投球する」ことは、投手603がボール604を移動させることを意味する。「打撃する」ことは、打者601がボール604に作用を与えることを意味する。
球場における第1位置と第2位置との間に、ホームベース607が配置されている。制御部110は、ホームベース607上に、第1位置から第2位置に向かう方向に交差する方向に延在する交差面を設定する。制御部110は、交差面に基づいて、打者601がボール604を打撃したか否かを判定する。図4の例では、交差面は、ストライクゾーン605と、ストライクゾーン605の外側に配置されるボールゾーン608とを含む。操作受付部111が、投手603が投球したボール604が交差面に到達したタイミングで、ユーザからの打撃操作を受け付けると、打者601は、バット602をスイングすることによって、ボール604を打ち返す作用をボール604に与えることができる。図4に示すボール604は、投手603が投球したボール604が交差面に到達する際の到達予定位置、または、実際の到達位置の一例を示す。
オブジェクト制御部114は、交差面にミートカーソル606(作用領域における第1領域)および芯領域606a(作用領域における第2領域)を設定する。ミートカーソル606および芯領域606aは、ボール604に打撃を与える衝突判定が行われる領域である。芯領域606aは、バット602の芯に相当する領域である。このため、芯領域606aはミートカーソル606の内側に設定される領域である。また芯領域606aは、ミートカーソル606より小さい領域である。例えば、ミートカーソル606が楕円形である場合、オブジェクト制御部114は、芯領域606aをミートカーソル606の中心に設定することが好ましい。本実施形態では、このようにミートカーソル606および芯領域606aを設定する例について説明する。
オブジェクト制御部114は、打撃モード設定部115が打撃モードを第1モードに設定したとき、芯領域606aを作用領域として用いる。オブジェクト制御部114は、打撃モード設定部115が打撃モードを第2モードに設定したとき、ミートカーソル606を作用領域として用いる。
オブジェクト制御部114は、ボール604に与える作用量を決定する。なお、作用量とは、ボール604に与えられる作用の大きさをいう。本実施形態において作用量は、ボール604に与えられる初速度を定義する速度ベクトルである。
オブジェクト制御部114は、ボール604に与える速度ベクトルを、作用領域の所定位置から、ボール604と交わる作用領域中の位置までの距離(以下、「所定位置からの距離」という。)に応じて決定する。本実施形態では減衰関数が打撃モード毎に設定されている。減衰関数は、所定位置からの距離が大きくなるほどボール604に与える速度ベクトルが小さくなるように定められた関数である。減衰関数は、記憶部120に、各打撃モードに対応付けられて記憶されている(不図示)。なお、本実施形態では、所定位置はミートカーソル606および芯領域606aの中心である。
芯領域606aおよびミートカーソル606にはそれぞれ異なる減衰関数が関連付けられている。以下、芯領域606aに対応付けられている減衰関数を「第1関数」といい、ミートカーソル606に対応付けられている減衰関数を「第2関数」という。
第1関数は、第2関数より速度ベクトルの最大値および最小値が大きい。なお、前記最大値は、所定位置からの距離が0のときの速度ベクトルの大きさである。前記最小値は、所定位置からの距離が最も大きくなるときの速度ベクトルの大きさである。したがって、本実施形態では、仮にバット602における同じ位置でボール604を打撃した場合、第1モードにおいてボール604に与えられる速度ベクトルの大きさは、第2モードにおいてボール604に与えられる速度ベクトルの大きさより大きくなる。よって、オブジェクト制御部114は、ボール604に与える速度ベクトルを異ならせることができる。
図3に示すとおり、ステップS101において、メインメニュー画面(不図示)においてユーザが野球ゲームの実行を指示すると、制御部110は野球ゲームを開始する。制御部110は、各種オブジェクトのゲームデータを記憶部120に記憶させる。必要なゲームデータが記憶部120に記憶されていない場合には、制御部110はゲームサーバ200からダウンロードする。各種オブジェクトのゲームデータは、例えば打者601、バット602、投手603、ミートカーソル606、芯領域606a、ホームベース607等の各種オブジェクトに関するデータが含まれる。次に、ステップS102において、表示制御部116は、記憶部120から各種オブジェクトのゲームデータをロードし、図4に示されるような打者601、バット602、投手603、ミートカーソル606、ホームベース607等を含む打撃画面600を表示部152に表示させる。本実施形態では、表示制御部116は、ミートカーソル606の中心に芯領域606aが位置するように、ミートカーソル606および芯領域606aを表示部152に表示させる(図4参照)。なお、表示制御部116は、ストライクゾーン605、および、ボールゾーン608を表示部152に表示させなくてもよい。また、表示制御部116は、バット602がスイングされたときにバットが到達する予定の位置を示す仮想バットを表示部152に表示させてもよい。
ステップS103において、表示制御部116は表示部152の打撃画面600中に投手603による投球動作を表示させる。表示制御部116は、投手603による投球動作が開始された後所定のタイミングで、ストライクゾーン605またはボールゾーン608内にボール604の到達予定位置を示す表示(ボール604a、604b)を描画する。投手603が投球動作を開始するタイミングは、例えば、ユーザ端末100を操作するユーザがインターネットを介して別のユーザと対戦する場合には、当該別のユーザが操作するユーザ端末100から送信される投球開始指示に基づけばよい。また、コンピュータ制御による仮想の相手とユーザが対戦する場合には、ゲームプログラムによって適宜設定されたタイミングであればよい。表示制御部116はボール604の到達予定位置を表示部152に表示させた後、ミートカーソル606および芯領域606aを半透明に表示させて、ボール604の到達予定位置の表示を遮ることがないようにする。
ステップS104において、操作受付部111が、ユーザによる入力部151に対する移動操作(第1操作)を受け付ける。移動操作とは、ミートカーソル606および芯領域606aを移動させるための操作である。本実施形態では、移動操作はスワイプ操作である。制御部110は、移動操作に基づいて、ミートカーソル606および芯領域606aを移動させる。操作受付部111は、タッチスクリーン15の任意の位置に対する移動操作を受け付けることができる。例えば、操作受付部111は、タッチスクリーン15に対するユーザの最初の接触位置(初期タッチ座標)と、移動操作後の接触位置(タッチナウ座標)とを比較し、初期タッチ座標に対するタッチナウ座標の変化方向、および、変化量に基づいて、ミートカーソル606および芯領域606aの位置の変化方向、および、変化量をそれぞれ決定する。これにより、オブジェクト制御部114は、ホームベース607上の交差面と異なる領域における移動操作に対しても、それに連動して、ミートカーソル606および芯領域606aを間接的に移動させることができる。このようにすれば、ユーザの指によってミートカーソル606の視認が妨げられることを回避できる。
本実施形態では、ミートカーソル606は、その一部がストライクゾーン605に含まれる範囲で移動可能である。したがって、ミートカーソル606の一部はボールゾーン608に含まれ得る。しかし、ボールゾーン608のボールを打撃することは不可能なように設定されていてもよい。
ステップS105において、オブジェクト位置判定部112が、投手603により投球されたボール604が交差面から所定範囲内に入ったか否かを判定する。所定範囲とは、上述の第1位置と第2位置との間において、交差面から第1位置に向けて延びる所定の範囲である。ボール604が所定の範囲内に入っていると判定された場合、オブジェクト制御部114は、少なくとも一部の方向へのミートカーソル606および芯領域606aの移動を制限する。オブジェクト制御部114は、移動が制限されたことを示すように、ミートカーソル606および芯領域606aの色や模様といった表示態様を変化させてもよい。ミートカーソル606および芯領域606aは、後述する打撃操作の態様に基づいて、移動が制限されることが好ましい。例えば、打撃操作が、第1方向(典型的に上方向:0°〜180°方向)へのスライド操作やフリック操作である態様では、当該第1方向へのミートカーソル606の移動が制限されることが好ましい。これにより、例えば打撃操作が入力された場合に、誤ってミートカーソル606および芯領域606aの移動操作と判定されてしまうことが確実に防止される。なお、第1方向のみならず、第1方向と異なる第2方向(典型的には下方向:180°〜360°方向)への移動(すなわち、全方向への移動)も制限されていてもよい。
一方、ミートカーソル606および芯領域606aの移動が制限されている場合にも、第2方向への移動は許容されてもよい。例えば、変化球は下方向(180°〜360°方向の範囲内)において変化することが想定されるため、第2方向への移動が許容されることにより、ユーザはボール604が交差面に到達するぎりぎりまでミートカーソル606および芯領域606aを移動させることができる。このように、ミートカーソル606および芯領域606aを移動させるための操作入力と、打者601に打撃を行わせるための操作入力との競合を回避することが可能になる。また、図4に示すとおりボール604を飛ばす方向(例えばスタンド、外野方向)は、画面上、打撃位置より上方に描画されるため、ユーザが直感的に上方向へのスライド操作およびフリック操作を打撃操作と理解することができる。
ステップS106において、操作受付部111は、ユーザによる打撃操作(第2操作)を受け付ける。打撃操作とは、タッチスクリーン15に対するタッチ操作であって、打者601にボール604を打撃させるための操作のことである。本実施形態では、打撃操作は、移動操作によって生じた、タッチスクリーン15に対する物体の接触を維持したまま、タッチスクリーン15に入力される操作である。このような操作としては、例えば、タッチオフ操作、スライド操作、フリック操作が挙げられる。移動操作を入力するためのタッチ操作に引き続いて打撃操作が入力された場合には、操作受付部111は、打撃操作の開始位置を、ミートカーソル606および芯領域606aの移動が制限されたときにタッチスクリーン15に対して入力されていたタッチ操作の位置としてもよい。これにより、打撃操作の開始位置が明確になる。また、操作受付部111は、タッチスクリーン15上のいかなる位置に対して行なわれたこれらの操作も、打撃操作として受け付ける。したがってユーザは、タッチスクリーン15上の任意の位置に、打撃操作を行うことができる。
ステップS107において、操作受付部111は、開始位置から、打撃操作が完了した位置(完了位置)までの距離(以下、「移動距離」という。)が閾値以上か否かを判定する。完了位置の具体例としては、指がタッチスクリーン15から離れた位置、タッチスクリーン15における指の移動速度が所定値を下回った位置、および、指が静止した位置等が挙げられる。操作受付部111は、移動距離を算出し、該移動距離と記憶部120に記憶された閾値(不図示)とを比較する。
ステップS107でNOの場合、ステップS108において、操作受付部111は、完了位置においてタッチスクリーンから指が離れたか否かを判定する。例えば、操作受付部111は、タッチオフ操作、または、移動距離が閾値未満のフリック操作を受け付けた場合、完了位置においてタッチスクリーンから指が離れたと判定する。
S108でYESの場合、ステップS109において、打撃モード設定部115は、打者601の打撃モードを第2モードに設定する。ステップS110において、オブジェクト制御部114は、ミートカーソル606に基づいて、打者601がボール604に打撃を与えたか否かを判定する。例えば、オブジェクト制御部114は、交差面におけるボール604とミートカーソル606との位置関係に基づいて、打者601がボール604に打撃を与えたか否かを判定する。
オブジェクト制御部114は、ミートカーソル606の位置が、ボール604の打撃に適合した位置の範囲にあれば、打者601がボール604を打撃したと判定する。例えば、交差面においてボール604とミートカーソル606とが少なくとも部分的に重畳していれば、オブジェクト制御部114は、打者601がボール604を打撃したと判定すればよい。一方、交差面において、ボール604がミートカーソル606の外部に配置されていれば、オブジェクト制御部114は、打者601がボール604を打撃しなかったと判定すればよい。
例えば、ボール604の下部をミートカーソル606の上部で打撃した場合には、打球の角度が上がりフライとなる。また、ボール604の上部をミートカーソル606の下部で打撃した場合には、打球の角度が下がりゴロとなる。例えば、オブジェクト制御部114は、ミートカーソル606の中央の位置でボール604の中央を打撃する等の所謂ジャストミートの場合には、ライナーでボール604が飛ぶような移動経路を算出する。ジャストミート以外の場合には凡打と判定して、凡打に対応する移動経路を算出してもよい。
オブジェクト制御部114は、打撃操作のタイミングに基づいて、速度ベクトルの向きを特定してもよい。また、オブジェクト制御部114は、ゲーム空間内に設定された各種物理パラメータ、および、物理法則を規定する方程式に基づいて、ボール604の移動経路を算出すればよい。これにより表示制御部116は、定性的には現実の野球と同様の打球の移動結果を、表示部152に表示させることができる。例えば、打撃操作のタイミングが早い場合には、引っ張りうちの方向にボール604が移動し、一方、打撃操作のタイミングが遅い場合には、流し打ちの方向にボール604が移動する。
ステップS111において、オブジェクト制御部114は、ボール604に与える速度ベクトルを決定する。オブジェクト制御部114は、速度ベクトルに基づいて、打撃が与えられたボール604がゲーム空間において移動する際の移動経路を算出する。モーション画像生成部113は、決定された移動経路を飛んでいくボール604のアニメーションを生成する。
第2モードの場合におけるステップS111において、オブジェクト制御部114は、第2関数、および、ボール604とミートカーソル606との位置関係に基づいて、ボール604に与える速度ベクトルを決定する。また、オブジェクト制御部114は、バット602に衝突した直後のボール604の回転軸、回転量等を、ボール604を移動させるための初期条件として取得する。オブジェクト制御部114は、速度ベクトル、回転軸、回転量等に基づいて、ボール604の移動経路を算出する。
ステップS110においてNOの場合、オブジェクト制御部114がボール604の移動経路を算出することなく、モーション画像生成部113は、打者601がボール604を空振りするアニメーションを生成してもよい。
S108でNOの場合、打撃モード設定部115は打撃モードの設定を行わない。また、オブジェクト制御部114は、打者601がボール604に打撃を与えたか否かの判定を行わない。これにより、打者が投球されたボールを見送ったことが、野球ゲームにおいて再現される。なお、S108でNOの場合とは、操作受付部111が、タッチ位置の移動量が閾値未満のスライド操作を受け付けた場合である。
ステップS107でYESの場合には、S112において、オブジェクト制御部114は、ボール604に与える速度ベクトルを第2モードのときより大きくする。例えば、打撃モード設定部115は、打者601の打撃モードを第1モードに設定する。ステップS113において、オブジェクト制御部114は、交差面におけるボール604と芯領域606aとの位置関係に基づいて、打者601がボール604に打撃を与えたか否かを判定する。S113における判定の処理は、ミートカーソル606の代わりに芯領域606aを用いる以外はステップS110と同じであるため説明を繰り返さない。
ステップS113でYESの場合のステップS111の処理は、第2関数の代わりに第1関数を用い、ミートカーソル606の代わりに芯領域606aを用いる以外は、第2モードの場合におけるステップS111の処理と同様である。また、ステップS113でNOの場合の処理は、ステップS110でNOの場合の処理と同じであるため説明を繰り返さない。
以上より、ユーザは、作用領域の移動操作を行なった後に、打撃モードを設定できる。従来、ユーザはミートカーソルを移動させる前に打撃モードを選択しなければならない。しかし、ユーザは、ミートカーソルを上手く移動させることができた場合には、より遠くまでボールを打てる打撃モードを選択したいと望む。本開示によればこのような望みが満たされる。また、特許文献2に記載の技術では、ユーザはスワイプ量を意識しながら打撃操作を行なう必要があるため爽快感に欠ける虞がある。しかし、本開示によればスワイプ量を意識せずに打撃モードを切り替えることができるため爽快感を損なわない。また、第2モードを選択する場合等のように作用量を大きくするための操作がスワイプ操作である形態においては、操作が直感的になり、また、爽快感がさらに向上する。遠くに飛ばすために勢いよくバットを振る感覚と、勢いよくスワイプする感覚とが近いため、操作が直感的になるからである。また、指を大きく動かしたことによりボールを遠くに飛ばしたかのような爽快感が得られるからである。
(変形例)
以上の実施形態では、作用領域として芯領域606aまたはミートカーソル606を用いる形態について説明したが、芯領域606aを用いなくてもよい。オブジェクト制御部114は、打撃モードに応じてミートカーソル606の大きさを異ならせてもよい。例えば、打撃モードが第1モードであるとき、オブジェクト制御部114は、ミートカーソル606の大きさを、第2モードにおけるミートカーソルの大きさより小さくしてもよい。作用領域が異なる打撃モードの切り替えの操作をスムーズに行うことができる。
<打撃モードを設定するための操作および画面の例示>
図5は打撃モードを設定するための操作および画面の一例を示す図である。図5の画面(A)は第2モードにおけるゲーム画面を示す。図5の操作(B)は第2モードを選択するための操作を示す。図5の画面(C)は第1モードにおけるゲーム画面を示す。図5の操作(D)は第1モードを選択するための操作を示す。
図5の操作(B)に示すように、第2モードを選択するための操作の一例は、位置P1でのタッチオフ操作である。当該タッチオフ操作では、打撃操作における開始位置から完了位置までの移動量は閾値未満である。第2モードにおいてオブジェクト制御部114によって打撃が行われたと判定された場合、図5の画面(A)に示すように、モーション画像生成部113は、打者601の打撃モーションを示すアニメーションを生成する。表示制御部116は、該アニメーションをタッチスクリーン15に表示させる。
図5の操作(D)に示すように、第1モードを選択するための操作の一例は、位置P1から位置P2まで指を移動させて、移動量Lが閾値以上となる操作である。第1モードにおいてオブジェクト制御部114によって打撃が行われたと判定された場合、図5の画面(C)に示すように、モーション画像生成部113は、打者601の打撃モーションを示すアニメーションを生成する。表示制御部116は、該アニメーションをタッチスクリーン15に表示させる。
第1モードの場合、表示制御部116は、図5の画面(C)に示すように、ミートカーソル606を表示させなくてもよく、第2モードの場合と同様に、図5の画面(A)に示すように、ミートカーソル606および芯領域606aをタッチスクリーン15に表示させてもよい。後者の場合、表示制御部116は、ミートカーソル606と芯領域606aとを異なる表示態様で表示させてもよい。例えば、表示制御部116は、ミートカーソル606と芯領域606aとを異なる色や模様で表示させてもよい。これにより、ユーザは衝突判定が行われる領域が芯領域606aであると認識することができる。
〔ソフトウェアによる実現例〕
制御部110の制御ブロックは、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部110は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、前記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、前記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して前記コンピュータに供給されてもよい。なお、本発明は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1)ゲームの実行方法であって、前記方法は、プロセッサ、メモリ、およびタッチセンシティブな入力部と、画像を表示させる表示部と、を含むタッチスクリーンを備えるコンピュータにより実行され、前記ゲームは、ゲーム空間において第1位置から第2位置に向けて移動する移動体に対してキャラクタが作用を与えることによって進行され、前記プロセッサの制御により、前記移動体に前記作用を与えたか否かを判定するための交差面を、前記第1位置と前記第2位置との間に設定するステップと、前記作用を前記移動体に与えるための作用領域を前記交差面に設定するステップと、前記タッチスクリーンに対するタッチ操作であって、前記作用領域を移動させる第1操作を受け付けるステップと、前記第1操作に基づいて、前記作用領域を移動させるステップと、前記タッチスクリーンに対するタッチ操作であって、前記作用を与えさせるための第2操作を受け付けるステップと、前記作用領域と前記移動体との位置関係に基づいて、前記作用を前記移動体に与えたか否かを判定するステップと、前記作用を前記移動体に与えたと判定した場合、前記タッチスクリーンにおける、前記第2操作の入力が開始された開始位置から前記第2操作の入力が完了した完了位置までの距離が閾値以上か否かに基づいて、前記移動体に与える作用量を異ならせるステップと、を含む方法。これにより、打撃モード、特に、移動体に与える作用量をスムーズに切り替えることができる。
(項目2)前記移動体が前記交差面から前記第1位置に向けて延びる所定範囲内に入った場合、前記交差面における少なくとも一部の方向への前記第1操作に基づく前記作用領域の移動を制限する、項目1に記載の方法。これにより、ユーザが第2操作を入力したときに、作用領域が移動してしまうという状況を防ぐことができる。
(項目3)前記第2操作が、前記第1操作を入力するための前記タッチ操作に引き続いて入力された場合には、前記開始位置は、前記作用領域の移動が制限されたときに前記タッチスクリーンに対する前記タッチ操作が入力されていた位置である、項目2に記載の方法。これにより、物体の移動の開始位置が明確になるので、移動量が閾値を越えているか否かを明確に判定することができる。
(項目4)前記距離が前記閾値以上であるとき、前記作用量をより大きくする、項目1から3のいずれかに記載の方法。これにより、ユーザは移動量の大きい操作で打者に強振させるので、打者にボールを打撃させるための操作を、より直感的な操作とすることができる。
(項目5)前記距離が前記閾値以上か否かに基づいて、前記作用領域の大きさを異ならせるステップをさらに含む、項目1から4のいずれかに記載の方法。作用領域を異ならせる操作をスムーズに行なうことができる。
(項目6)前記距離が前記閾値以上であるとき、前記作用領域をより小さくする、項目5に記載の方法。作用領域を小さくさせる操作をスムーズに行なうことができる。
(項目7)前記作用領域は、第1領域と、第1領域の内側に設定される第2領域とを含み、前記距離が前記閾値未満であるとき、前記第1領域を前記作用領域として用い、前記距離が前記閾値以上であるとき、前記第2領域を前記作用領域として用いる、項目6に記載の方法。これにより、ユーザは移動量の大きい操作で打者に強振させるので、打者にボールを打撃させるための操作を、より直感的な操作とすることができる。
(項目8)項目1から7のいずれか1つに記載の方法の各ステップを、コンピュータに実行させるプログラム。
(項目9)項目8に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。