(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025098215
(43)【公開日】2025-07-01
(54)【発明の名称】ゲームプログラム、ゲーム処理方法、及びゲーム装置
(51)【国際特許分類】
A63F 13/422 20140101AFI20250624BHJP
A63F 13/812 20140101ALI20250624BHJP
A63F 13/56 20140101ALI20250624BHJP
【FI】
A63F13/422
A63F13/812 A
A63F13/56
【審査請求】有
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2025054907
(22)【出願日】2025-03-28
(62)【分割の表示】P 2021041277の分割
【原出願日】2021-03-15
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 1.行為1 発売日 令和2年7月9日 公開場所 株式会社コナミデジタルエンタテインメントが製造するゲームソフトを販売する全国の小売店 2.行為2 ストア公開日 令和2年7月9日 公開場所 任天堂株式会社が運営しているオンラインストア(My Nintendo Store) URL:https://store-jp.nintendo.com/list/software/70010000025092.html ソニー・インタラクティブエンタテインメントが運営しているオンラインストア(PlayStation Store) URL:https://store.playstation.com/ja-jp/product/JP0101-CUSA18304_00-PAWAPURO2020C001 3.行為3 ウェブサイトの掲載日 令和2年6月12日~令和3年3月6日 ウェブサイトのURL パワプロ・プロスピ公式チャンネル(https://www.youtube.com/channel/UCWzEh28vj3mQKpe0fzVTOUw/videos)内の合計71の動画
(71)【出願人】
【識別番号】506113602
【氏名又は名称】株式会社コナミデジタルエンタテインメント
(72)【発明者】
【氏名】藤田 淳一
(72)【発明者】
【氏名】野本 哲也
(57)【要約】
【課題】煩雑な操作を必要とせずにユーザの意図を反映した操作対象の切り替えを可能にすること。
【解決手段】ゲームプログラムは、複数のキャラクタの中からユーザの操作対象となるキャラクタが切り替わるゲームの処理を実行するコンピュータに、複数のキャラクタのうち特定のオブジェクトとの距離が最小のキャラクタを操作対象として選択するステップと、操作対象として選択された操作対象キャラクタを移動させるためのユーザの操作及び操作方向を検出するステップと、ユーザの操作が検出された場合、ユーザの操作方向と操作対象キャラクタから特定のオブジェクトへの方向とに基づいて操作対象を切り替えるか否かを判定するステップと、操作対象を切り替えると判定された場合、複数のキャラクタのうちの他のキャラクタを操作対象に切り替えるステップと、を実行させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のキャラクタの中からユーザの操作対象となるキャラクタが切り替わるゲームの処理を実行するコンピュータに、
前記複数のキャラクタのうち特定のオブジェクトとの距離が最小のキャラクタを前記操作対象として選択するステップと、
前記操作対象として選択された操作対象キャラクタを移動させるためのユーザの操作及び操作方向を検出するステップと、
前記ユーザの操作が検出された場合、前記ユーザの操作方向と前記操作対象キャラクタから前記特定のオブジェクトへの方向とに基づいて前記操作対象を切り替えるか否かを判定するステップと、
前記操作対象を切り替えると判定された場合、前記複数のキャラクタのうちの他のキャラクタを前記操作対象に切り替えるステップと、
を実行させるためのゲームプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラム、ゲーム処理方法、及びゲーム装置に関する。
【背景技術】
【0002】
ゲームにおいて、操作対象となり得る複数のキャラクタの中から、ユーザが特定のキャラクタを操作する場面がある。例えば野球ゲームにおいて、ユーザの操作対象のチームが守備側で打球を捕球する際に、打球が落下する位置の周辺に複数の守備側の選手(キャラクタ)がいるような場面である。このような場面では、ユーザは、複数の選手のうち操作対象となる一人の選手を操作するが、打球や選手の位置によって操作したい選手を切替えたいことがある。
【0003】
例えば、特許文献1には、ユーザ自身が操作対象の選手を切り替える操作を行う方法が開示されている。また、特許文献2には、操作対象の手とボールとの距離やボールに関連付けられている敵キャラクタの移動方向と味方キャラクタとのなす角等に基づいて、操作対象を自動で切り替えるか否かを判断する方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005-131310号公報
【特許文献2】特許第5325141号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に開示されているようにユーザ自身が操作対象を切り替える操作を行う場合、操作対象を切り替える操作と操作対象への操作の両方が必要となるため操作が煩雑となる。また、特許文献2に開示されている方法は、自動で操作対象が切り替わるものの、ユーザの操作を考慮していないため、ユーザの意図した操作対象にならないことがあった。
【0006】
本発明のいくつかの態様は、煩雑な操作を必要とせずにユーザの意図を反映した操作対象の切り替えが可能なゲームプログラム、ゲーム処理方法、及びゲーム装置を提供することを目的の一つとする。
【0007】
また、本発明の他の態様は、後述する実施形態に記載した作用効果を奏することを可能にするゲームプログラム、ゲーム処理方法、及びゲーム装置を提供することを目的の一つとする。
【課題を解決するための手段】
【0008】
上述した課題を解決するために、本発明の一態様は、複数のキャラクタの中からユーザの操作対象となるキャラクタが切り替わるゲームの処理を実行するコンピュータに、前記複数のキャラクタのうち特定のオブジェクトとの距離が最小のキャラクタを前記操作対象として選択するステップと、前記操作対象として選択された操作対象キャラクタを移動させるためのユーザの操作及び操作方向を検出するステップと、前記ユーザの操作が検出された場合、前記ユーザの操作方向と前記操作対象キャラクタから前記特定のオブジェクトへの方向とに基づいて前記操作対象を切り替えるか否かを判定するステップと、前記操作対象を切り替えると判定された場合、前記複数のキャラクタのうちの他のキャラクタを前記操作対象に切り替えるステップと、を実行させるためのゲームプログラムである。
【0009】
また、本発明の一態様は、複数のキャラクタの中からユーザの操作対象となるキャラクタが切り替わるゲームの処理を実行するコンピュータにより実行されるゲーム処理方法であって、前記複数のキャラクタのうち特定のオブジェクトとの距離が最小のキャラクタを前記操作対象として選択するステップと、前記操作対象として選択された操作対象キャラクタを移動させるためのユーザの操作及び操作方向を検出するステップと、前記ユーザの操作が検出された場合、前記ユーザの操作方向と前記操作対象キャラクタから前記特定のオブジェクトへの方向とに基づいて前記操作対象を切り替えるか否かを判定するステップと、前記操作対象を切り替えると判定された場合、前記複数のキャラクタのうちの他のキャラクタを前記操作対象に切り替えるステップと、を含むゲーム処理方法である。
【0010】
また、本発明の一態様は、複数のキャラクタの中からユーザの操作対象となるキャラクタが切り替わるゲームの処理を実行するゲーム装置であって、前記複数のキャラクタのうち特定のオブジェクトとの距離が最小のキャラクタを前記操作対象として選択する選択部と、前記操作対象として選択された操作対象キャラクタを移動させるためのユーザの操作及び操作方向を検出する検出部と、前記ユーザの操作が検出された場合、前記ユーザの操作方向と前記操作対象キャラクタから前記特定のオブジェクトへの方向とに基づいて前記操作対象を切り替えるか否かを判定する判定部と、前記操作対象を切り替えると判定された場合、前記複数のキャラクタのうちの他のキャラクタを前記操作対象に切り替える切替部と、を備えるゲーム装置である。
【図面の簡単な説明】
【0011】
【
図1】実施形態に係る操作対象決定処理の概要を説明する図。
【
図2】実施形態に係るゲームシステムの構成の一例を示すブロック図。
【
図3】実施形態に係るゲーム装置の機能構成の一例を示すブロック図。
【
図4】実施形態に係るゲーム処理によるゲーム空間の一例を示す模式図。
【
図5】実施形態に係るゲーム処理の一例を示すフローチャート。
【
図6】実施形態に係る選手キャラクタのパラメータ例を示す図。
【
図7】実施形態に係るボールオブジェクトのパラメータ例を示す図。
【
図8】実施形態に係る選手キャラクタ及びボールオブジェクトの位置の推定結果を 示すイメージ図。
【
図9】実施形態に係る操作方向の判定に用いる方向範囲の一例を示す模式図。
【
図10】実施形態に係る操作対象決定処理の一例を示すフローチャート。
【
図11】実施形態に係るゲームフィールド上のゲームオブジェクトの位置関係の一 例を示す模式図。
【
図12】実施形態に係る操作対象の切り替わりの第1例を示すタイミングチャート 。
【
図13】実施形態に係る操作対象の切り替わりの第2例を示すタイミングチャート 。
【発明を実施するための形態】
【0012】
[実施形態]
以下、本発明の一実施形態について、図面を参照して説明する。
〔ゲーム装置の概要〕
まず、本実施形態に係るゲーム装置で実行されるゲームの処理の一例について、その概要を説明する。本実施形態に係るゲーム装置は、典型的には家庭用のゲーム機を例示できるが、ゲームセンターなどの遊戯施設などに設置されるものであってもよい。家庭用のゲーム機としては、テレビ(テレビ受像機)などのディスプレイにゲーム映像を出力してプレイする据え置き型のゲーム機や、ディスプレイが内蔵された携帯型のゲーム機などを例示できる。
【0013】
また、本実施形態に係るゲームは、複数のキャラクタを用いて行うゲームである。キャラクタとは、ゲームに登場する人物、動物、物体(例えば、乗り物)等のゲームキャラクタであり、ゲーム画面に画像(キャラクタ画像)として表示される。ユーザは、複数のキャラクタのうちのいずれか選択されたキャラクタを操作対象としてプレイする。ここでは、ユーザの操作対象となるチームと対戦相手のチームとで試合を行う野球ゲームを例として説明する。ユーザは、操作対象となるチームが攻撃側のときには、打順に従って選択された選手キャラクタ(バッター)に打撃を行わせる打撃操作などを行う。一方、ユーザは、操作対象となるチームが守備側のときには、投手として選択された選手キャラクタ(ピッチャー)に投球を行わせる投球操作や、野手として選択された選手キャラクタに守備を行わせる守備操作などを行う。
【0014】
ここで、守備操作について説明する。ユーザの操作対象となるチームが守備側で打球を捕球する際に、打球が落下する位置の周辺に複数の守備側の選手キャラクタが存在する場面がある。このような場面では、複数の選手キャラクタのうちの一つの選手キャラクタがユーザの操作対象として選択され、他の選手キャラクタは例えばNPC(Non Player Character)としてゲーム装置によって制御される。例えば、打球に最も近い選手キャラクタを自動的に操作対象として選択する方法がある。しかしながら、単に打球に最も近い選手キャラクタを自動的に操作対象として選択するのみでは、ユーザが意図する操作対象が必ずしも打球に最も近い選手とは限らないため、ユーザの意図が反映された操作対象にならないことがある。また、打球に最も近い選手は時々刻々と変化するため、操作対象の選手キャラクタが頻繁に変わってしまい操作が困難になる場合もある。そこで、本実施形態では、打球に最も近い選手キャラクタを自動的に選択するのみではなくユーザの操作も考慮して操作対象となる選手キャラクタを決定する。
【0015】
図1を参照して、操作対象となる選手キャラクタを決定する操作対象決定処理の概要を説明する。
図1は、本実施形態に係る操作対象決定処理の概要を説明する図である。本実施形態に係る操作対象決定処理は、「操作対象選択処理」と、「操作対象変更処理」とを含む。操作対象選択処理は、ユーザによる選手キャラクタの移動を指示する操作がない場合、ゲーム装置(システム)が自動的に操作対象となる選手キャラクタを選択する処理である。
図1には、選手キャラクタである選手A及び選手Bと、打球を示すボールオブジェクトBOとが表示されている。図示するように、選手AとボールオブジェクトBOとの距離Laより選手BとボールオブジェクトBOとの距離Lbの方が小さい場合、ボールに最も近い選手Bが操作対象として選択される。また、操作対象として選択されていることを示すカーソルP1が選手Bに関連付けられて(例えば、選手Bを指す位置に)表示される。詳細には、3次元空間を飛翔するボールに対して、地面に相当する平面(2次元)に射影したボールの座標と同平面上の選手の座標との距離が最小の選手キャラクタが操作対象として選択される。
【0016】
操作対象変更処理は、ユーザによる選手キャラクタの移動を指示する操作があった場合に、当該操作に基づいて取得された移動の「方向」(以下、「ユーザの操作方向」と称する)を考慮して、操作対象の選手キャラクタを切り替える処理である。例えば、操作対象選択処理により操作対象として選択された選手BからボールオブジェクトBOへの方向Dbとユーザの操作方向Duとが一致するか否かの判断が行われ、一致しないと判断された場合、次にボールとの距離が最小の選手Aに操作対象が変更される。なお、一致すると判断された場合には、操作対象は選手Bのまま変更されない。選手Aに操作対象が変更された後は、選手AからボールオブジェクトBOへの方向Daとユーザの操作方向Duとが一致する。このユーザの操作方向Duは、ユーザが選手Aを操作することを意図した操作によるものであり、ユーザの意図した選手キャラクタに操作対象が切り替わったことになる。
【0017】
以下、本実施形態について詳しく説明する。
〔ゲームシステムの構成〕
図2は、本実施形態に係るゲームシステム1の構成の一例を示すブロック図である。ゲームシステム1は、ゲーム装置10とサーバ装置30とを含んで構成されており、これらの装置は通信ネットワークNWを介して接続される。ここでは、ユーザが使用するゲーム装置10の1台を図示しているが、他のユーザが使用する複数のゲーム装置10が通信ネットワークNWを介してサーバ装置30と接続され、複数のユーザがそれぞれのゲーム装置10を使用してオンラインで対戦することも可能である。
【0018】
サーバ装置30は、ゲーム装置10でゲーム処理を実行するために必要なゲームプログラムやゲームプログラム等を管理する。例えば、サーバ装置30は、ゲーム運営会社が管理するコンピュータ装置であり、複数のサーバマシン、ストレージ、ネットワークスイッチ、ルーター・ファイアウォール等で構成されたシステムとして捉えることもできる。
【0019】
サーバ装置30が管理するゲームプログラムには、ゲーム処理の少なくとも一部のプログラムが含まれる。ゲームプログラムには、ゲーム開始前にゲーム装置10にダウンロードされるものだけなく、ゲーム開始後にゲーム装置10にダウンロードされるものが含まれる。なお、ゲーム開始前にゲーム装置10にダウンロードされるゲームプログラムは、サーバ装置30で管理されているものに限らず、ゲーム装置10で動作するプログラムを配信しているサーバ装置で管理されているものであってもよい。なお、サーバ装置30は、ゲーム処理の一部を実行してもよい。
【0020】
ゲーム装置10は、ユーザがプレイするゲーム処理を実行するコンピュータ装置である。ここでは、ゲーム装置10は、据え置き型のゲーム機である場合を例として説明する。図示するように、ゲーム装置10は、通信部11と、入出力IF部12と、記憶部13と、CPU(Central Processing Unit)14とを含んで構成されている。
【0021】
通信部11は、ゲーム装置10とサーバ装置30が通信可能な無線LAN、有線LAN、移動体通信(LTE)等の通信ネットワークNWの通信規格に対応した通信を行うデバイスである。
【0022】
入出力IF部12は、外部の入力装置及び出力装置などと接続するためのインターフェースである。例えば、入出力IF部12には、コントローラ15、表示装置16などが接続される。
【0023】
コントローラ15は、ユーザがゲームの操作を入力するための入力装置である。例えば、コントローラ15には、操作レバーや操作ボタンなどが設けられている。例えば、ユーザは、選手キャラクタの移動方向を指示する操作を、操作レバーを用いて行うことができる。一例として、ユーザは、選手キャラクタを移動させたい方向へ操作レバーを倒す操作を行う。当該操作レバーを倒す方向が、ユーザの操作方向に対応する。なお、ユーザがコントローラ15で操作する方向(例えば、操作レバーを倒す方向)と選手キャラクタの移動方向とは必ずしも一致はしない。入出力IF部12は、コントローラ15の操作状態を検出し、検出した操作状態に基づく操作信号をCPU14へ出力する。
【0024】
表示装置16は、ゲーム装置10が実行するゲーム処理に基づくゲーム画像を表示するとともに、ゲーム処理に基づく音声を出力する。表示装置16は、表示部161及び音声出力部162を備える。表示部161は、例えば、液晶ディスプレイパネル、有機EL(ElectroLuminescence)ディスプレイパネルなどを含んで構成されている。音声出力部162は、例えば、スピーカを含んで構成されている。また、音声出力部162は、イヤフォンまたはヘッドフォンなどに音声を出力する音声出力端子などを含んで構成されてもよい。
【0025】
なお、表示装置16は、テレビの放送波を受信する機能を有するテレビであってもよいし、テレビの放送波を受信する機能を有していないモニタであってもよい。また、表示装置16は、音声出力部162を備えていない構成としてもよい。音声出力部162は、表示装置16とは別の装置として構成されてもよい。
【0026】
記憶部13は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、ROM(Read-Only Memory)、RAM(Random Access Memory)などを含み、ゲーム装置10が処理に用いる各種データ、プログラム等を記憶する。なお、記憶部13は、ゲーム装置10に内蔵されるものに限らず、入出力IF部12などを介して接続される外付け型の記憶装置でもよい。
【0027】
CPU14は、ゲーム装置10が備える各部を制御する制御中枢として機能する。
例えば、CPU14は、記憶部13に記憶されているゲームプログラムを実行することにより野球ゲームのゲーム処理を実行する。
【0028】
〔ゲーム装置10の機能構成〕
次に、
図3を参照して、ゲーム装置10の機能構成について説明する。
図3は、本実施形態に係るゲーム装置10の機能構成の一例を示すブロック図である。図示するゲーム装置10は、記憶部13に記憶されているゲームプログラムをCPU14が実行することにより実現される機能構成として、ゲーム処理部140を備えている。ゲーム処理部140は、操作検出部141(検出部の一例)と、描画処理部142と、操作対象制御部143とを含んで構成されている。
【0029】
操作検出部141は、コントローラ15に対するユーザの操作を検出する。例えば操作検出部141は、コントローラ15に対するユーザの操作に応じて入出力IF部12を介して入力される操作信号を取得し、取得した操作信号に基づいてユーザの操作を検出する。ユーザの操作とは、例えば、ゲームのプレイに関する操作である。ゲームのプレイに関する操作には、操作対象として選択された選手キャラクタを移動させるための操作及び操作方向などが含まれる。描画処理部142は、ゲーム処理に基づくゲーム画像を描画し、所定のフレームレート(例えば、30fps)でゲーム画像を更新する。
【0030】
図4は、本実施形態に係るゲーム処理によるゲーム空間の一例を示す模式図である。図示するゲーム空間には、野球場のグラウンドを模したゲームフィールドFLが含まれる。ゲームフィールドFLは、XY座標による2次元空間として表される。このゲームフィールドFL(2次元の座標面)上に、守備側の9人の選手キャラクタと、攻撃側の1人のバッターとしての選手キャラクタと、攻撃側の最大で3人の走者としての選手キャラクタと、ボールオブジェクトとが表示される。3次元空間を飛翔するボールオブジェクトは、ゲームフィールドFL(2次元の座標面)上に射影した座標で表される。
【0031】
図4に示す例では、ユーザの操作に応じて投手としての選手キャラクタC1から投球されたボールオブジェクトBOを対戦相手のバッターとしての選手キャラクタC2が打って、打たれたボールオブジェクトBOが矢印Y1の方向へ移動している状態を示している。この状態では、守備側の9人の選手キャラクタのうちユーザの操作対象となる選手キャラクタは1人であり、残りの8人の選手キャラクタはNPCである。ここでは、守備側の9人の選手キャラクタのうちカーソルP1が示す選手キャラクタC3がボールオブジェクトBOに最も近いため操作対象の選手キャラクタでとして選択されている。例えば、この選手キャラクタC3が
図1に示す選手Bに対応し、選手キャラクタC3の次にボールオブジェクトBOに最も近い選手キャラクタC4が
図1に示す選手Aに対応する。
【0032】
選手キャラクタとボールオブジェクトBOとをゲームオブジェクトの一つとするとゲームフィールドFL上に存在するゲームオブジェクトの数は最大で14となる。ゲーム処理部140は、最大で14のゲームオブジェクトの位置を制御する。ゲーム処理部140は、操作対象の選手キャラクタをユーザの操作に応じて制御する。また、ゲーム処理部140は、操作対象の選手キャラクタ以外の選手キャラクタ(NPC)及びボールオブジェクトBOを、ユーザの操作によらず、ゲームフィールドFL上の状態(各種ゲームオブジェクトの位置関係など)や試合の進行状況などに応じて制御する。CPU14は、
図5に示すように、ゲーム処理部140の機能として、このゲーム処理による制御を所定のフレームレート(例えば、30fps)で1フレーム毎に実行し、ゲーム画像を更新する。
【0033】
図5は、本実施形態に係るゲーム処理の一例を示すフローチャートである。CPU14は、コントローラ15に対するユーザの操作に基づく入力処理を実行する(ステップS10)。例えば、CPU14は、コントローラ15に対するユーザの操作に基づく操作信号を取得し、取得した操作信号に基づく処理を実行する。一例として、CPU14は、操作対象の選手キャラクタに対する操作に基づいて、当該選手キャラクタの加速度及び方向を決定する。また他の例として、CPU14は、対戦相手の打者としての選手キャラクタに対する操作またはNPCの制御に基づいて、ボールオブジェクトBOの加速度及び方向を決定する。また、CPU14は、操作対象以外の他の選手キャラクタ(NPC)の加速度及び方向を決定する。
【0034】
次に、CPU14は、ステップS10の入力処理に基づいてゲーム処理を実行する(ステップS20)。例えば、CPU14は、ステップS10で決定されたゲームオブジェクトの加速度及び方向に基づいて、ゲームフィールドFL上に存在する最大で14のゲームオブジェクトの位置などを更新する。
【0035】
そして、CPU14は、ステップS20で更新したゲームオブジェクトの位置などに基づいて、当該ゲームオブジェクトが含まれるゲーム画像を描画して更新する(ステップS30)。CPU14は、このステップS10~S30のゲーム処理を1フレームに1回、所定のフレームレート(例えば、30fps)で実行する。なお、CPU14は、ステップS10およびステップS20の処理とS30の処理とを非同期に行ってもよい。例えば、CPU14は、ステップS10およびステップS20の処理は可変フレームレートで実行し、ステップS30の処理のみ所定のフレームレートで実行してもよい。
【0036】
ステップS20のゲーム処理の中で、
図1を参照して説明した操作対象決定処理が行われる。操作対象制御部143は、操作対象決定処理を行う機能構成として、操作対象選択部144(選択部の一例)と、操作対象変更部145(切替部の一例)と、位置推定部146と、判定部147(判定部の一例)とを含んで構成されている。
【0037】
操作対象選択部144は、ユーザの操作によらずに、操作対象となる選手キャラクタを選択する。例えば、操作対象選択部144は、複数の選手キャラクタのうちボールオブジェクトBOとの距離が最小の選手キャラクタを操作対象として選択する。
【0038】
操作対象変更部145は、ユーザの操作に基づいて、操作対象となる選手キャラクタを切り替える。例えば、操作対象変更部145は、ユーザの操作が検出された場合、ユーザの操作方向と操作対象の選手キャラクタからボールオブジェクトBOへの方向とが一致するか否かに基づいて操作対象を切り替える。
【0039】
ここで、ユーザの操作方向と選手キャラクタからボールオブジェクトBOへの方向とが一致するか否かの判定は、例えばユーザが操作した時点の位置関係だけではなく所定期間先(例えば、所定フレーム先)までの選手キャラクタまたはボールオブジェクトBOの移動を考慮した位置関係に基づいて行われる。これは、ユーザが選手キャラクタを移動させるための操作を行う際には、選手キャラクタとボールオブジェクトBOの現在の位置のみではなく、少し先の位置へ移動することを考慮して操作を行うためである。
【0040】
位置推定部146は、ユーザの操作が検出された時点から所定期間先までの操作対象の選手キャラクタの位置とボールオブジェクトBOの位置とを推定する。例えば、位置推定部146は、ユーザの操作が検出された時点のフレームから所定フレーム先までの操作対象の選手キャラクタの位置とボールオブジェクトBOの位置とを推定する。以下、選手キャラクタの位置とボールオブジェクトBOの位置との推定について具体的に説明する。
【0041】
位置推定部146は、ユーザが操作した時点を1フレーム目とし、当該操作がそのまま継続されると仮定して所定フレーム先(例えば、300フレーム目)までの選手キャラクタの位置を推定する。例えば、位置推定部146は、ユーザの操作に応じて決定される選手キャラクタの移動の加速度及び方向に基づいて、1フレーム目から所定フレーム先(例えば、300フレーム目)までの選手キャラクタの位置を推定する。位置推定部146は、各フレームの選手キャラクタの位置の座標(X,Y)を記憶部13に保持する。
【0042】
また、位置推定部146は、ユーザが操作した時点を1フレーム目とし、打撃に応じて移動するボールオブジェクトBOの位置を所定フレーム先(例えば、300フレーム目)まで推定する。位置推定部146は、ボールオブジェクトBOの移動の加速度及び方向に基づいて、1フレーム目から所定フレーム先(例えば、300フレーム目)までのボールオブジェクトBOの位置を推定する。位置推定部146は、各フレームのボールオブジェクトBOの位置の座標(X,Y)を記憶部13に保持する。
【0043】
図6は、本実施形態に係る選手キャラクタのパラメータ例を示す図である。図示する選手パラメータ131は、記憶部13に保持された選手キャラクタのパラメータの一例を示している。選手パラメータ131には、加速度、速度、及び方向(角度)を示すパラメータと、選手キャラクタのNフレーム目の位置のXY座標(n)とが含まれる(N、nは、正の整数)。加速度及び方向は、ユーザの選手キャラクタに対する操作に応じて決定される。速度は、加速度と方向とに基づいて算出される。1フレーム目の選手キャラクタのXY座標(1)は、ユーザが操作した時点の1フレーム目の実際の座標である。選手キャラクタの2フレーム目のXY座標(2)から300フレーム目のXY座標(300)までは、1フレーム目のXY座標(1)と加速度(速度)及び方向とに基づいて算出された推定値である。
【0044】
なお、各選手キャラクタがNPCとして動作する場合、上記パラメータのうち加速度と方向はシステムにより決定され、決定された加速度と方向の値に基づいて他のパラメータの値が算出される。
【0045】
図7は、本実施形態に係るボールオブジェクトのパラメータ例を示す図である。図示するボールパラメータ132は、記憶部13に保持されたボールオブジェクトBOのパラメータの一例を示している。ボールパラメータ132には、加速度、速度、及び方向(角度)を示すパラメータと、ボールオブジェクトBOのNフレーム目の位置のXY座標(n)とが含まれる。加速度及び方向は、対戦相手の操作またはNPCの制御により決定される。速度は、加速度と方向とに基づいて算出される。1フレーム目のボールオブジェクトBOのXY座標(1)は、
図6に示す1フレーム目におけるボールオブジェクトBOの実際の座標である。ボールオブジェクトBOの2フレーム目のXY座標(2)から300フレーム目のXY座標(300)までは、1フレーム目のXY座標(1)と加速度(速度)及び方向とに基づいて算出された推定値である。
【0046】
図8は、本実施形態に係る選手キャラクタ及びボールオブジェクトの位置の推定結果を示すイメージ図である。この図において、選手BとボールオブジェクトBOとは
図1に示す選手BとボールオブジェクトBOとに対応している。なお、ユーザの操作方向Duは
図1と異なる方向である。この図において、選手B(操作対象)に対するユーザの操作があった時点(1フレーム目)から300フレーム先までの選手BとボールオブジェクトBOの位置とを推定した結果を示している。各フレームにおける選手Bの位置とボールオブジェクトBOの位置とに基づいて、各フレームにおける選手BからボールオブジェクトBOへの方向(ベクトル)Db1、・・・、Dbn、・・・、Db300が定まる。
【0047】
判定部147は、ユーザの操作が検出された場合、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとに基づいて操作対象を切り替えるか否かを判定する。例えば、判定部147は、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致する場合、操作対象を切り替えないと判定する。一方、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致しない場合、操作対象を切り替えると判定する。
【0048】
ここで、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致するとは、ユーザの操作方向Duが所定の方向範囲に含まれることである。所定の方向範囲とは、操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbに基づく範囲である。判定部147は、ユーザの操作が検出された時点のフレームから所定フレーム先(例えば300フレーム先)までユーザの操作方向Duが所定の方向範囲に含まれるか否かを判定する。
【0049】
所定の方向範囲について、
図9を参照してより詳しく説明する。
図9は、本実施形態に係る操作方向の判定に用いる方向範囲の一例を示す模式図である。この図では、Nフレーム目における選手BからボールオブジェクトBOへの方向(ベクトル)DbnとN+1フレーム目の選手BからボールオブジェクトBOへの方向(ベクトル)Dbn+1との間の角度θの範囲が、上記所定の方向範囲に相当する。図示する例では、ユーザの操作方向Duが所定の方向範囲(角度θの範囲)に含まれているため、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致すると判定される。
【0050】
判定部147は、ユーザの操作方向Duが、Nフレーム目の操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbnと、N+1フレーム目の操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbn+1とにより定まる所定の方向範囲(角度θの範囲)に含まれるか否かを、ユーザの操作が検出されたフレームから300フレーム先まで判定する。
【0051】
そして、判定部147は、1フレーム目から300フレーム目までのうち少なくとも1つのフレームにおいてユーザの操作方向Duが所定の方向範囲に含まれると判定した場合、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致すると判定し、操作対象を切り替えないと判定する。一方、判定部147は、1フレーム目から300フレーム目までのうちユーザの操作方向が所定の方向範囲に含まれるフレームが無いと判定した場合、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致しないと判定し、操作対象を切り替えると判定する。
【0052】
なお、ユーザの操作方向を判定する所定の方向範囲は、Nフレーム目とN+1フレーム目とのそれぞれの選手BからボールオブジェクトBOへの方向により定まる角度θの範囲に対して角度αを追加した範囲としてもよい。図示するように、Nフレーム目における選手BからボールオブジェクトBOへの方向Dbnに角度αを追加した方向Dbn′と、N+1フレーム目における選手BからボールオブジェクトBOへの方向Dbn+1に角度αを追加した方向Dbn+1′との間の角度(θ+2α)の範囲を所定の方向範囲としてもよい。
【0053】
また、判定部147は、1フレーム目から300フレーム目までのうちユーザの操作方向Duが所定の方向範囲に含まれるフレームが所定の割合(例えば、50%または100%など)以上であるか否かによって、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致するか否かを判定してもよい。例えば、判定部147は、1フレーム目から300フレーム目までのうちユーザの操作方向Duが所定の方向範囲に含まれるフレームが所定の割合以上である場合には、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致すると判定してもよい。一方、判定部147は、1フレーム目から300フレーム目までのうちユーザの操作方向Duが所定の方向範囲に含まれるフレームが所定の割合未満である場合には、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致しないと判定してもよい。
【0054】
また、Nフレーム目の方向DbnとN+1フレーム目の方向Dbn+1とに代えて、Nフレーム目の方向DbnとN+Mフレーム目の方向とを用いてもよい(Mは、整数)。例えば、判定部147は、Nフレーム目とN+2フレーム目とのそれぞれの選手BからボールオブジェクトBOへの方向Dbにより定まる所定の方向範囲にユーザの操作方向Duが含まれるか否かによって、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致するか否かを判定してもよい。
【0055】
また、判定部147は、1フレーム目の選手BからボールオブジェクトBOへの方向Db1と300フレーム目の選手BからボールオブジェクトBOへの方向Db300とにより定まる所定の方向範囲にユーザの操作方向Duが含まれるか否かによって、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致するか否かを判定してもよい。また、判定部147は、1フレーム目の選手BからボールオブジェクトBOへの方向Db1と、当該方向Db1となす角が最大となる方向Dbn(Nフレーム目の選手BからボールオブジェクトBOへの方向)とにより定まる所定の方向範囲にユーザの操作方向Duが含まれるか否かによって、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致するか否かを判定してもよい。
【0056】
また、所定の方向範囲は、1フレーム目の選手BからボールオブジェクトBOへの方向Db1を基準とした所定の角度の範囲としてもよい。例えば、所定の方向範囲は、1フレーム目の選手BからボールオブジェクトBOへの方向Db1からの所定の角度の範囲としてもよいし、当該方向Db1を中心とした所定の角度の範囲としてもよい。つまり、判定部147は、1フレーム目の選手BからボールオブジェクトBOへの方向Db1を基準とした所定の角度の範囲にユーザの操作方向Duが含まれるか否かによって、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致するか否かを判定してもよい。
【0057】
また、所定の方向範囲は、各フレームの選手BからボールオブジェクトBOへの方向Db1を基準とした予め設定された角度の範囲としてもよい。例えば、所定の方向範囲は、各レームの選手BからボールオブジェクトBOへの方向Db1からの予め設定された角度の範囲としてもよいし、当該方向Db1を中心とした予め設定された角度の範囲としてもよい。つまり、判定部147は、1フレーム目から300フレーム目までの各フレームの選手BからボールオブジェクトBOへの方向Db1を基準とした予め設定された角度の範囲にユーザの操作方向Duが含まれるか否かに基づいて、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致するか否かを判定してもよい。この場合、少なくとも一つのフレームにおいてユーザの操作方向Duが予め設定された角度の範囲に含まれる場合に一致すると判定してもよいし、所定の割合のフレームにおいてユーザの操作方向Duが予め設定された角度の範囲に含まれる場合に一致すると判定してもよい。なお、予め設定された角度は0度、即ち完全一致を判定するものであってもよい。
【0058】
また、ユーザの操作が検出されたフレームから300フレーム先までを判定の対象とした例を説明したが、300フレーム先までに限定されるものではなく、判定の対象とするフレーム数は任意に定めることができる。
【0059】
なお、位置推定部146が、選手B(操作対象の選手キャラクタ)とボールオブジェクトBOとの両方の移動を考慮して、所定フレーム先までの両方の位置を推定する例を説明したが、いずれか一方のみの位置を推定してもよい。例えば、位置推定部146は、選手B(操作対象の選手キャラクタ)の位置は1フレーム目の位置から移動させずに、ボールオブジェクトBOの位置のみを所定フレーム先まで推定してもよい。この場合、各フレームにおける選手BからボールオブジェクトBOへの方向Dbは、1フレーム目の選手Bの位置と各フレームにおけるボールオブジェクトBOの位置とにより定まる。
【0060】
判定部147は、ユーザの操作方向Duと操作対象の選手キャラクタからボールオブジェクトBOへの方向Dbとが一致しないと判定した場合、操作対象を切り替えると判定する。この場合、操作対象変更部145は、操作対象の選手キャラクタの次にボールオブジェクトBOとの距離が最小の選手キャラクタを操作対象に切り替える。
【0061】
このように、操作対象変更部145は、ユーザの操作が検出されている場合、単にボールオブジェクトBOとの距離が最小の選手キャラクタを操作対象として選択するのではなく、当該ユーザの操作を考慮して操作対象の選手キャラクタを切り替える「操作対象変更処理」を行う。例えば、操作対象変更部145は、ボールオブジェクトBOとの距離が最小である操作対象の選手キャラクタからボールオブジェクトBOへの方向がユーザの操作方向と一致しない場合には、操作対象の選手キャラクタの次にボールオブジェクトBOとの距離が最小の選手キャラクタを操作対象に切り替える。
【0062】
一方、操作対象選択部144は、ユーザの操作が検出されなくなった場合、且つ操作対象のキャラクタよりもボールオブジェクトBOとの距離が最小の選手キャラクタが存在する場合、当該距離が最小の選手キャラクタを操作対象として選択する「操作対象選択処理」を行う。即ち、操作対象選択部144は、ユーザの操作が検出されなくなった場合、且つボールオブジェクトBOとの距離が最小の選手キャラクタが操作対象ではない場合、ボールオブジェクトBOとの距離が最小の選手キャラクタを操作対象に切り替える。
【0063】
なお、操作対象とする選手キャラクタを切り替える際に、ゲームフィールドFL上に存在する選手キャラクタのうち一部の選手キャラクタは操作対象の切り替えの対象から除外されてもよい。一部の選手キャラクタとは、現在操作対象となっている選手キャラクタ、または現在操作対象ではない選手キャラクタのうち、カバーに向かっている野手、カバーしている野手、打球よりも手前(本塁側)にいる内野手などの選手キャラクタである。例えば、ベースカバーをしている捕手の選手キャラクタは、操作対象の切り替えの対象から除外される。
【0064】
また、操作対象選択処理または操作対象変更処理により操作対象が切り替えられた場合、その後の所定期間は操作対象の切り替えを禁止する。操作対象選択部144は、ユーザの操作が検出されない状態でボールオブジェクトBOとの距離に基づいて操作対象を切り替えた場合、切り替え後の所定期間(第2期間)は操作対象の切り替えを禁止する。また、操作対象変更部145は、ユーザの操作方向と操作対象のキャラクタからボールオブジェクトBOへの方向とに基づいて操作対象を切り替えた場合、切り替え後の所定期間(第1期間)は操作対象の切り替えを禁止する。
【0065】
ここで、操作対象選択部144がユーザの操作によらない操作対象選択処理により操作対象を切り替えた場合と、操作対象変更部145がユーザの操作を考慮した操作対象変更処理により操作対象を切り替えた場合とで、操作対象の切り替えを禁止する所定期間を異ならせてもよい。例えば、操作対象選択部144が操作対象選択処理により操作対象を切り替えた場合より、操作対象変更部145が操作対象変更処理により操作対象を切り替えた場合の方が操作対象の切り替えを禁止する所定期間が長い期間設定されてもよい。一例として、操作対象選択部144が操作対象選択処理により操作対象を切り替えた場合に操作対象の切り替えを禁止する所定期間(第2期間)を500msec、操作対象変更部145が操作対象変更処理により操作対象を切り替えた場合に操作対象の切り替えを禁止する所定期間(第1期間)を800msecとしてもよい。
【0066】
なお、操作対象選択部144または操作対象変更部145が操作対象の切り替えを禁止する場合、切り替えるか否かの判定を行わなくてもよいし、当該判定は行うが判定結果を無視して切り替えを行わなくてもよい。
【0067】
〔処理の動作〕
次に、
図5に示すステップS20のゲーム処理の中で行われる操作対象決定処理の動作について説明する。
図10は、本実施形態に係る操作対象決定処理の一例を示すフローチャートである。
【0068】
まず、CPU14は、コントローラ15に対するユーザの操作の有無を判定する(ステップS201)。ユーザの操作とは、操作対象の選手キャラクタを移動させる操作である。なお、ユーザの意図としては、操作対象ではない選手キャラクタを移動させる操作である場合もあるが、CPU14としては、ユーザの意図とは関係なく操作対象の選手キャラクタを移動させる操作として受け取る。CPU14は、ユーザの操作ありと判定した場合(ステップS201:YES)、ステップS210の操作対象変更処理に進む。一方、CPU14は、ユーザの操作なしと判定した場合(ステップS201:NO)、ステップS220の操作対象選択処理に進む。
【0069】
まず、ステップS210の操作対象変更処理について説明する。CPU14は、操作対象変更処理により操作対象を切り替えてから所定期間(例えば、800msec)以上経過したか否かを判定する(ステップS211)。CPU14は、操作対象変更処理により操作対象を切り替えてから所定期間(例えば、800msec)以上経過していないと判定した場合(ステップS211:NO)、操作対象の切り替えを行わずに操作対象変更処理を終了する。そして、ステップS230の処理へ進む。
【0070】
一方、CPU14は、操作対象変更処理により操作対象を切り替えてから所定期間(例えば、800msec)以上経過したと判定した場合(ステップS211:YES)、ステップS213の処理に進む。ステップS213において、CPU14は、ユーザの操作が検出された時点のフレームから所定フレーム先まで、操作対象の選手キャラクタとボールオブジェクトBOの位置を推定し、操作対象の選手キャラクタからボールオブジェクトBOへの方向を算出する(
図8参照)。
【0071】
次に、CPU14は、ユーザの操作方向が所定の方向範囲内であるか否かを判定する(ステップS215)。所定の方向範囲とは、例えば、Nフレーム目とN+1フレーム目(N=1,2,・・・,299)とのそれぞれの操作対象の選手キャラクタからボールオブジェクトBOへの方向の間の角度θの範囲(或いは、当該範囲に角度α×2を追加した範囲)である(
図9参照)。例えば、CPU14は、1フレーム目から300フレーム目においてユーザの操作方向が所定の方向範囲に含まれるか否かに基づいて、ユーザの操作方向が所定の方向範囲内であるか否かを判定する。
【0072】
CPU14は、ユーザの操作方向が所定の方向範囲内であると判定した場合(ステップS215:YES)、操作対象の切り替えを行わずに操作対象変更処理を終了する。そして、ステップS230の処理へ進む。
【0073】
一方、CPU14は、ユーザの操作方向が所定の方向範囲内でないと判定した場合(ステップS215:NO)、操作対象の選手キャラクタの次にボールオブジェクトBOとの距離が最小の選手キャラクタを操作対象に切り替える(ステップS217)。そして、CPU14は、操作対象変更処理を終了し、ステップS230の処理へ進む。
【0074】
次に、ステップS220の操作対象選択処理について説明する。CPU14は、操作対象選択処理により操作対象を切り替えてから所定期間(例えば、500msec)以上経過したか否かを判定する(ステップS221)。CPU14は、操作対象選択処理により操作対象を切り替えてから所定期間(例えば、500msec)以上経過していないと判定した場合(ステップS221:NO)、操作対象の切り替えを行わずに操作対象選択処理を終了する。そして、ステップS230の処理へ進む。
【0075】
一方、CPU14は、操作対象選択処理により操作対象を切り替えてから所定期間(例えば、500msec)以上経過したと判定した場合(ステップS221:YES)、ステップS223の処理に進む。ステップS223において、CPU14は、ボールオブジェクトBOとの距離が最小の選手キャラクタが操作対象の選手キャラクタであるか否かを判定する(ステップS223)。
【0076】
CPU14は、ボールオブジェクトBOとの距離が最小の選手キャラクタが操作対象の選手キャラクタであると判定した場合(ステップS223:YES)、操作対象の切り替えを行わずに操作対象選択処理を終了する。そして、ステップS230の処理へ進む。一方、CPU14は、ボールオブジェクトBOとの距離が最小の選手キャラクタが操作対象の選手キャラクタではないと判定した場合(ステップS223:NO)、ボールオブジェクトBOとの距離が最小の選手キャラクタを操作対象に切り替える(ステップS225)。そして、CPU14は、操作対象選択処理を終了し、ステップS230の処理へ進む。
【0077】
ステップS230において、CPU14は、操作対象変更処理または操作対象選択処理により決定した操作対象の選手キャラクタを含むゲームフィールドFL上のすべてのゲームオブジェクトを更新する。
【0078】
なお、ステップS230の処理は、ステップS201の前に実行されてもよい。つまり、ゲームオブジェクトの更新は、当該フレームにおける操作対象変更処理または操作対象選択処理の処理結果を反映した更新であってもよいし、直前のフレームにおける操作対象変更処理または操作対象選択処理の処理結果を反映した更新であってもよい。
【0079】
次に、
図11~
図13を参照して、操作対象の切り替わりの具体例を説明する。なお、ここで説明する内容は、単に操作対象の切り替わりの例を説明するためのものであり、実際の野球ゲームにおける状況と対応するものではない。
【0080】
図11は、ゲームフィールドFL上のゲームオブジェクトの位置関係の一例を示す模式図である。この
図11は、選手キャラクタとボールオブジェクトBOとの位置関係、ユーザの操作方向、及び操作対象の一例を模式的に表している。選手キャラクタCaのことを選手Aと称する。選手キャラクタCbのことを選手Bと称する。選手キャラクタCcのことを選手Cと称する。ボールオブジェクトBOについては、時刻t1、時刻t2、時刻t3、及び時刻t4のそれぞれの位置と、時刻t2のボールオブジェクトBOの位置を1フレーム目の位置としたときの200フレーム目と300フレーム目のボールオブジェクトBOの推定位置とを示している。この図において、時刻t1における選手AとボールオブジェクトBOとの距離をL1とする。時刻t2における選手AとボールオブジェクトBOとの距離をL2、選手BとボールオブジェクトBOとの距離をL3、選手CとボールオブジェクトBOとの距離をL4とする。それぞれの距離の関係は、L2>L4>L3>L1である。また、
図12は、操作対象の切り替わりの第1例を示すタイミングチャートである。また、
図13は、操作対象の切り替わりの第2例を示すタイミングチャートである。
【0081】
まず、
図11及び
図12を参照して、操作対象の切り替わりの第1例を説明する。時刻t1から時刻t2までの期間は、選手AがボールオブジェクトBOに最も近い。そのため、操作対象選択処理により選手Aが操作対象として選択され、カーソルP1が選手Aに表示される。このとき、カーソルP2及びP3は非表示である。時刻t2において、ボールオブジェクトBOに最も近い選手が選手Aから選手Bに代わるため、操作対象選択処理により操作対象が選手Aから選手Bに切り替わる。カーソルP1が非表示となりカーソルP2が表示される。操作対象選択処理により操作対象が切り替わったため、時刻t2から500msecの期間は、ユーザからいずれの方向への操作がされても、操作対象の切り替えは禁止される。
【0082】
時刻t2において、ユーザが選手Bへの操作を意図した操作方向Du1への操作を行うと、ユーザの操作方向Du1と選手BからボールオブジェクトBOへの方向とが一致すると判定される。そのため、時刻t2から500msec後に、操作対象の切り替えが可能になっても、操作対象変更処理による操作対象の切り替えは生じない。
【0083】
その後、時刻t4において、ユーザが選手Cへの操作を意図した操作方向Du2への操作を行うと、ユーザの操作方向Du2と選手BからボールオブジェクトBOへの方向とが一致しないと判定され、操作対象変更処理により、次にボールオブジェクトBOに近い選手Cに操作対象が切り替わる。カーソルP2が非表示となりカーソルP3が表示される。時刻t4から800msecの期間は、操作対象の切り替えは禁止される。
【0084】
次に、
図11及び
図13を参照して、操作対象の切り替わりの第2例を説明する。時刻t1から時刻t2までは、第1例と同様に選手Aが操作対象として選択され、カーソルP1が選手Aに表示される。時刻t2において、ボールオブジェクトBOに最も近い選手が選手Aから選手Bに代わるため、操作対象選択処理により操作対象が選手Aから選手Bに切り替わる。カーソルP1が非表示となりカーソルP2が表示される。
【0085】
この第2例では、時刻t2において、第1例と異なりユーザが選手Cへの操作を意図した操作方向Du2への操作を行ったとする。時刻t2から500msecの期間は操作対象の切り替えが禁止されているため、選手Bがそのまま操作対象となり、ユーザの操作方向Duへの操作は、選手Bへの操作として処理される。時刻t2から500msec後に、操作対象の切り替えが可能になると、ユーザの操作方向Du2と選手BからボールオブジェクトBOへの方向とが一致しないと判定され、操作対象変更処理により、次にボールオブジェクトBOに近い選手Cに操作対象が切り替わる(時刻t3)。カーソルP2が非表示となりカーソルP3が表示される。時刻t3から800msecの期間は、操作対象の切り替えは禁止される。
【0086】
〔実施形態のまとめ〕
以上説明してきたように、本実施形態に係るゲーム装置10は、複数の選手キャラクタ(キャラクタの一例)の中からユーザの操作対象となる選手キャラクタが切り替わるゲームの処理を実行する。例えば、ゲーム装置10は、複数の選手キャラクタのうちボールオブジェクトBO(特定のオブジェクトの一例)との距離が最小の選手キャラクタを操作対象として選択する。また、ゲーム装置10は、操作対象として選択された操作対象の選手キャラクタ(操作対象キャラクタの一例)を移動させるためのユーザの操作及び操作方向を検出する。ゲーム装置10は、ユーザの操作が検出された場合、ユーザの操作方向と操作対象の選手キャラクタからボールオブジェクトBOへの方向とに基づいて操作対象を切り替えるか否かを判定する。そして、ゲーム装置10は、操作対象を切り替えると判定された場合、複数の選手キャラクタのうちの他の選手キャラクタを操作対象に切り替える。
【0087】
これにより、ゲーム装置10は、選手キャラクタとボールオブジェクトBOとの距離のみではなく選手キャラクタを移動させるユーザの操作を考慮して操作対象を決定するため、煩雑な操作を必要とせずにユーザの意図を反映した操作対象に切り替えが可能である。
【0088】
例えば、ゲーム装置10は、操作対象を切り替えると判定された場合、操作対象の選手キャラクタの次にボールオブジェクトBOとの距離が最小の選手キャラクタを操作対象に切り替える。
【0089】
これにより、ゲーム装置10は、操作対象を切り替える際に、次にボールオブジェクトBOとの距離が最小の選手キャラクタを操作対象とするため、ユーザの意図を反映した操作対象に切り替えが可能である。
【0090】
例えば、ゲーム装置10は、ユーザの操作方向が、操作対象の選手キャラクタからボールオブジェクトBOへの方向に基づく所定の方向範囲に含まれない場合、操作対象を切り替えると判定する。
【0091】
これにより、ゲーム装置10は、ユーザの操作に基づいて、操作対象の選手キャラクタがユーザの意図した操作対象でない場合に、操作対象を切り替えることができる。
【0092】
例えば、ユーザは、選手キャラクタを移動させるための操作を行う際には、選手キャラクタとボールオブジェクトBOの現在の位置のみではなく少し先の位置へ移動することを考慮して操作を行う。そこで、ゲーム装置10は、ユーザの操作が検出された時点から所定期間先までの操作対象の選手キャラクタの位置とボールオブジェクトBOの位置との少なくとも一方を推定する。そして、ゲーム装置10は、操作対象の選手キャラクタの位置とボールオブジェクトBOの位置との少なくとも一方の推定結果に基づいて、ユーザの操作が検出された時点から所定期間先までユーザの操作方向が所定の方向範囲に含まれるか否かを判定する。
【0093】
これにより、ゲーム装置10は、選手キャラクタまたはボールオブジェクトBOの移動を考慮したユーザの操作方向を所定期間にわたって判定することにより、操作対象の選手キャラクタがユーザの意図した操作対象であるか否かを適切に判定することができる。
【0094】
例えば、ゲーム装置10は、複数の選手キャラクタ及びボールオブジェクトBOが含まれるゲームの画像を所定のフレームレートで描画する。そして、ゲーム装置10は、ユーザの操作が検出された時点のフレームから所定フレーム先まで、ユーザの操作方向が所定の方向範囲に含まれるか否かを判定する。
【0095】
これにより、ゲーム装置10は、選手キャラクタまたはボールオブジェクトBOの移動を考慮したユーザの操作方向を所定フレームにわたって判定することにより、操作対象の選手キャラクタがユーザの意図した操作対象であるか否かを適切に判定することができる。
【0096】
一例として、ゲーム装置10は、N(Nは、正の整数)フレーム目のユーザの操作方向が、Nフレーム目の操作対象の選手キャラクタからボールオブジェクトBOへの方向とN+1フレーム目の操作対象の選手キャラクタからボールオブジェクトBOへの方向とにより定まる所定の方向範囲に含まれるか否かを、ユーザの操作が検出されたフレームから所定のフレーム先まで判定する。
【0097】
これにより、ゲーム装置10は、選手キャラクタまたはボールオブジェクトBOの移動を考慮したユーザの操作方向を所定フレームにわたって判定することにより、操作対象の選手キャラクタがユーザの意図した操作対象であるか否かを適切に判定することができる。
【0098】
ゲーム装置10は、ユーザの操作が検出されなくなった場合、且つ操作対象の選手キャラクタよりもボールオブジェクトBOとの距離が最小のキャラクタが存在する場合、当該距離が最小のキャラクタを操作対象として設定する。
【0099】
これにより、ゲーム装置10は、ユーザが選手キャラクタに対する操作をしていない場合、ユーザが操作する可能性の高い選手キャラクタを操作対象とすることができる。
【0100】
ゲーム装置10は、ユーザの操作方向と操作対象の選手キャラクタからボールオブジェクトBOへの方向とに基づいて操作対象を切り替えた場合、切り替え後の第1期間(例えば、800msec)は操作対象の切り替えを禁止する。
【0101】
これにより、ゲーム装置10は、選手キャラクタとボールオブジェクトBOとの位置関係やユーザの操作方向などの若干の変化によって、短時間で必要以上に操作対象が切り替わってしまうことを抑制することができる。
【0102】
ゲーム装置10は、ユーザの操作が検出されない状態でボールオブジェクトBOとの距離に基づいて操作対象を切り替えた場合、切り替え後の第2期間(例えば、500msec)は操作対象の切り替えを禁止する。
【0103】
これにより、ゲーム装置10は、選手キャラクタとボールオブジェクトBOとの位置関係やユーザの操作方向などの若干の変化によって、短時間で必要以上に操作対象が切り替わってしまうことを抑制することができる。
【0104】
例えば、上記第1期間(例えば、800msec)の方が上記第2期間(例えば、500msec)よりも長い期間に設定されている。
【0105】
これにより、ゲーム装置10は、ユーザの操作に基づいて操作対象を切り替える判定をした場合には、ユーザの操作によらないシステムによる操作対象の切り替えの判定よりも重視して、操作対象の切り替えが起きにくいようにすることができる。
【0106】
また、複数の選手キャラクタ(キャラクタの一例)の中からユーザの操作対象となる選手キャラクタが切り替わるゲームの処理を実行するゲーム装置10におけるゲーム処理方法は、複数の選手キャラクタのうちボールオブジェクトBO(特定のオブジェクトの一例)との距離が最小の選手キャラクタを操作対象として選択するステップと、操作対象として選択された操作対象の選手キャラクタ(操作対象キャラクタの一例)を移動させるためのユーザの操作及び操作方向を検出するステップと、ユーザの操作が検出された場合、ユーザの操作方向と操作対象の選手キャラクタからボールオブジェクトBOへの方向とに基づいて操作対象を切り替えるか否かを判定するステップと、操作対象を切り替えると判定された場合、複数の選手キャラクタのうちの他の選手キャラクタを操作対象に切り替えるステップと、を含む。
【0107】
これにより、ゲーム装置10におけるゲーム処理方法は、選手キャラクタとボールオブジェクトBOとの距離のみではなく選手キャラクタを移動させるユーザの操作を考慮して操作対象を決定するため、煩雑な操作を必要とせずにユーザの意図を反映した操作対象に切り替えが可能である。
【0108】
[変形例]
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成は上述の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、上述の実施形態において説明した各構成は、任意に組み合わせることができる。
【0109】
なお、上述の実施形態において、操作対象変更部145は、ユーザの操作方向と操作対象の選手キャラクタからボールオブジェクトへの方向とが一致しない場合、操作対象の選手キャラクタの次にボールオブジェクトBOとの距離が最小の選手キャラクタを操作対象に切り替える例を説明した。これに限られるものはなく、操作対象変更部145は、操作対象に切り替える際に、ユーザの操作方向がボールオブジェクトへの方向と一致する選手キャラクタを操作対象として決定してもよい。
【0110】
また、上記実施形態では、野球ゲームを例に説明したが、野球ゲームに限られるものではない。例えば、複数のキャラクタの中からユーザの操作対象となるキャラクタが切り替わるゲームであれば、サッカーや、ラグビー、アメリカンフットボールなどのスポーツを題材とした様々なゲームに適用することができる。また、スポーツを題材としたゲームにも限られるものではなく、複数の戦士キャラクタが特定の敵オブジェクトを捕獲または攻撃するような戦闘ゲームなど任意のゲームに適用することができる。
【0111】
また、上述のゲーム処理部140の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりゲーム処理部140としての処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD-ROM等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。配信サーバの記録媒体に記憶されるプログラムのコードは、端末装置で実行可能な形式のプログラムのコードと異なるものでもよい。すなわち、配信サーバからダウンロードされて端末装置で実行可能な形でインストールができるものであれば、配信サーバで記憶される形式は問わない。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に端末装置で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0112】
また、上述のゲーム処理部140の一部または全部の機能を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【0113】
また、上記実施形態では、ゲーム装置10が備える記憶部13に記憶されるデータの少なくとも一部は、外部接続される記憶装置に記憶されてもよい。外部接続される記憶装置は、ゲーム装置10と有線又は無線で接続される記憶装置である。例えば、外部接続される記憶装置は、USB(Universal Serial Bus)や、無線LAN(Local Area Network)、有線LANなどで接続される記憶装置でもよいし、インターネットなどを介して接続される記憶装置(データサーバ)であってもよい。このインターネットなどを介して接続される記憶装置(データサーバ)は、クラウドコンピューティングを用いて利用されるものであってもよい。
【0114】
また、ゲーム処理部140が備える各部の少なくとも一部に相当する構成は、インターネットなどを介して接続されるサーバ装置30が備えてもよい。例えば、ゲームの処理がサーバ装置30で実行される、所謂クラウドゲームに上記実施形態を適用することもできる。
【0115】
[付記]
以上の記載から本発明は例えば以下のように把握される。なお、本発明の理解を容易にするために添付図面の参照符号を便宜的に括弧書きにて付記するが、それにより本発明が図示の態様に限定されるものではない。
【0116】
(付記1)本発明の一態様に係るゲームプログラムは、複数のキャラクタの中からユーザの操作対象となるキャラクタが切り替わるゲームの処理を実行するコンピュータに、前記複数のキャラクタのうち特定のオブジェクト(BO)との距離が最小のキャラクタを前記操作対象として選択するステップ(S220)と、前記操作対象として選択された操作対象キャラクタを移動させるためのユーザの操作及び操作方向を検出するステップ(S10)と、前記ユーザの操作が検出された場合、前記ユーザの操作方向(Du)と前記操作対象キャラクタから前記特定のオブジェクトへの方向(Db)とに基づいて前記操作対象を切り替えるか否かを判定するステップ(S215)と、前記操作対象を切り替えると判定された場合、前記複数のキャラクタのうちの他のキャラクタを前記操作対象に切り替えるステップ(S217)と、を実行させる。
【0117】
付記1の構成によれば、ゲームプログラムは、キャラクタと特定のオブジェクトとの距離のみではなくキャラクタを移動させるユーザの操作を考慮して操作対象を決定するため、煩雑な操作を必要とせずにユーザの意図を反映した操作対象の切り替えが可能である。
【0118】
(付記2)本発明の一態様は、付記1に記載のゲームプログラムであって、前記切り替えるステップ(S217)において、前記操作対象を切り替えると判定された場合、前記操作対象キャラクタの次に前記特定のオブジェクトとの距離が最小のキャラクタを前記操作対象に切り替える。
【0119】
付記2の構成によれば、ゲームプログラムは、操作対象を切り替える際に、次に特定のオブジェクトとの距離が最小のキャラクタを操作対象とするため、ユーザの意図を反映した操作対象に切り替えが可能である。
【0120】
(付記3)本発明の一態様は、付記1または付記2に記載のゲームプログラムであって、前記判定するステップ(S215)において、前記ユーザの操作方向が、前記操作対象キャラクタから前記特定のオブジェクトへの方向に基づく所定の方向範囲に含まれない場合、前記操作対象を切り替えると判定する。
【0121】
付記3の構成によれば、ゲームプログラムは、ユーザの操作に基づいて、操作対象のキャラクタがユーザの意図した操作対象でない場合に、操作対象を切り替えることができる。
【0122】
(付記4)本発明の一態様は、付記3に記載のゲームプログラムであって、前記コンピュータに、前記ユーザの操作が検出された時点から所定期間先までの前記操作対象キャラクタの位置と前記特定のオブジェクトの位置との少なくとも一方を推定するステップ(S213)、をさらに実行させ、前記判定するステップ(S215)において、前記操作対象キャラクタの位置と前記特定のオブジェクトの位置との少なくとも一方の推定結果に基づいて、前記ユーザの操作が検出された時点から前記所定期間先まで前記ユーザの操作方向が前記所定の方向範囲に含まれるか否かを判定する。
【0123】
付記4の構成によれば、ゲームプログラムは、キャラクタまたは特定のオブジェクトの移動を考慮したユーザの操作方向を所定期間にわたって判定することにより、操作対象のキャラクタがユーザの意図した操作対象であるか否かを適切に判定することができる。
【0124】
(付記5)本発明の一態様は、付記4に記載のゲームプログラムであって、前記コンピュータに、前記複数のキャラクタ及び前記特定のオブジェクトが含まれる前記ゲームの画像を所定のフレームレートで描画するステップ(S30)、をさらに実行させ、前記判定するステップ(S215)において、前記ユーザの操作が検出された時点のフレームから所定フレーム先(例えば、300フレーム先)まで、前記ユーザの操作方向が前記所定の方向範囲に含まれるか否かを判定する。
【0125】
付記5の構成によれば、ゲームプログラムは、キャラクタまたは特定のオブジェクトの移動を考慮したユーザの操作方向を所定フレームにわたって判定することにより、操作対象のキャラクタがユーザの意図した操作対象であるか否かを適切に判定することができる。
【0126】
(付記6)本発明の一態様は、付記5に記載のゲームプログラムであって、前記判定するステップ(S215)において、N(Nは、正の整数)フレーム目の前記ユーザの操作方向が、Nフレーム目の前記操作対象キャラクタから前記特定のオブジェクトへの方向とN+1フレーム目の前記操作対象キャラクタから前記特定のオブジェクトへの方向とにより定まる前記所定の方向範囲に含まれるか否かを、前記ユーザの操作が検出されたフレームから所定のフレーム先まで判定する。
【0127】
付記6の構成によれば、ゲームプログラムは、キャラクタまたは特定のオブジェクトの移動を考慮したユーザの操作方向を所定フレームにわたって判定することにより、操作対象のキャラクタがユーザの意図した操作対象であるか否かを適切に判定することができる。
【0128】
(付記7)本発明の一態様は、付記1から付記6のいずれか一に記載のゲームプログラムであって、前記選択するステップ(S220)において、前記ユーザの操作が検出されなくなった場合、且つ前記操作対象キャラクタよりも前記特定のオブジェクトとの距離が最小のキャラクタが存在する場合、当該距離が最小のキャラクタを前記操作対象として設定する。
【0129】
付記7の構成によれば、ゲームプログラムは、ユーザがキャラクタに対する操作をしていない場合、ユーザが操作する可能性の高いキャラクタを操作対象とすることができる。
【0130】
(付記8)本発明の一態様は、付記1から付記7のいずれか一に記載のゲームプログラムであって、前記切り替えるステップ(S217)において、前記ユーザの操作方向と前記操作対象キャラクタから前記特定のオブジェクトへの方向とに基づいて前記操作対象を切り替えた場合、切り替え後の第1期間(例えば、800msec)は前記操作対象の切り替えを禁止する。
【0131】
付記8の構成によれば、ゲームプログラムは、キャラクタと特定のオブジェクトとの位置関係やユーザの操作方向などの若干の変化によって、短時間で必要以上に操作対象が切り替わってしまうことを抑制することができる。
【0132】
(付記9)本発明の一態様は、付記8に記載のゲームプログラムであって、前記切り替えるステップ(S217)において、前記ユーザの操作が検出されない状態で前記特定のオブジェクトとの距離に基づいて前記操作対象を切り替えた場合、切り替え後の第2期間(例えば、500msec)は前記操作対象の切り替えを禁止する。
【0133】
付記9の構成によれば、ゲームプログラムは、キャラクタと特定のオブジェクトとの位置関係やユーザの操作方向などの若干の変化によって、短時間で必要以上に操作対象が切り替わってしまうことを抑制することができる。
【0134】
(付記10)本発明の一態様は、付記9に記載のゲームプログラムであって、前記第1期間(例えば、800msec)の方が前記第2期間(例えば、500msec)よりも長い期間に設定されている。
【0135】
付記10の構成によれば、ゲームプログラムは、ユーザの操作に基づいて操作対象を切り替える判定をした場合には、ユーザの操作によらないシステムによる操作対象の切り替えの判定よりも重視して、操作対象の切り替えが起きにくいようにすることができる。
【0136】
(付記11)本発明の一態様に係るゲーム処理方法は、複数のキャラクタの中からユーザの操作対象となるキャラクタが切り替わるゲームの処理を実行するコンピュータにより実行されるゲーム処理方法であって、前記複数のキャラクタのうち特定のオブジェクト(BO)との距離が最小のキャラクタを前記操作対象として選択する(S220)ステップと、前記操作対象として選択された操作対象キャラクタを移動させるためのユーザの操作及び操作方向を検出するステップ(S10)と、前記ユーザの操作が検出された場合、前記ユーザの操作方向(Du)と前記操作対象キャラクタから前記特定のオブジェクトへの方向(Db)とに基づいて前記操作対象を切り替えるか否かを判定するステップ(S215)と、前記操作対象を切り替えると判定された場合、前記複数のキャラクタのうちの他のキャラクタを前記操作対象に切り替えるステップ(S217)と、を含む。
【0137】
付記11の構成によれば、ゲーム処理方法は、キャラクタと特定のオブジェクトとの距離のみではなくキャラクタを移動させるユーザの操作を考慮して操作対象を決定するため、煩雑な操作を必要とせずにユーザの意図を反映した操作対象の切り替えが可能である。
【0138】
(付記12)本発明の一態様に係るゲーム装置(10)は、複数のキャラクタの中からユーザの操作対象となるキャラクタが切り替わるゲームの処理を実行するゲーム装置であって、前記複数のキャラクタのうち特定のオブジェクト(BO)との距離が最小のキャラクタを前記操作対象として選択する選択部(144、S220)と、前記操作対象として選択された操作対象キャラクタを移動させるためのユーザの操作及び操作方向を検出する検出部(141、S10)と、前記ユーザの操作が検出された場合、前記ユーザの操作方向(Du)と前記操作対象キャラクタから前記特定のオブジェクトへの方向(Db)とに基づいて前記操作対象を切り替えるか否かを判定する判定部(147、S215)と、前記操作対象を切り替えると判定された場合、前記複数のキャラクタのうちの他のキャラクタを前記操作対象に切り替える切替部(145、S217)と、を備える。
【0139】
付記12の構成によれば、ゲーム装置は、キャラクタと特定のオブジェクトとの距離のみではなくキャラクタを移動させるユーザの操作を考慮して操作対象を決定するため、煩雑な操作を必要とせずにユーザの意図を反映した操作対象の切り替えが可能である。
【符号の説明】
【0140】
1 ゲームシステム、10 ゲーム装置、11 通信部、12 入出力IF部、13 記憶部、14 CPU、15 コントローラ、16 表示装置、140 ゲーム処理部、141 操作検出部、142 描画処理部、143 操作対象制御部、144 操作対象選択部、145 操作対象変更部、146 位置推定部、147 判定部、161 表示部、162 音声出力部