(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023122713
(43)【公開日】2023-09-05
(54)【発明の名称】方法、記録媒体および情報処理装置
(51)【国際特許分類】
A63F 13/56 20140101AFI20230829BHJP
【FI】
A63F13/56
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022026368
(22)【出願日】2022-02-24
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 株式会社コロプラが、2021年2月27日以降に、アプリケーション配信プラットフォームにてゲーム・アプリケーションを公開した。
(71)【出願人】
【識別番号】509070463
【氏名又は名称】株式会社コロプラ
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100162846
【弁理士】
【氏名又は名称】大牧 綾子
(72)【発明者】
【氏名】早川 栄作
(57)【要約】
【課題】オブジェクトを制御して、従来では予測可能であったオブジェクトの移動を、予測の難しいものとしてゲーム展開することができる方法、プログラムを記録した記録媒体、および端末装置を提供すること
【解決手段】プロセッサ、およびメモリを備えるコンピュータにより実装される方法であって、所定のフレーム・レートごとに、プロセッサによる、ゲーム空間において、第1オブジェクトと、第1オブジェクトに追従可能で、ユーザには操作されない第2オブジェクトとの間の配置関係を特定するステップと、ゲーム空間において、第2オブジェクトを移動させる方向を決定するステップであって、方向は、第2オブジェクトから見た第1オブジェクトへの方向に対し、メモリに格納された範囲情報と、特定された配置関係とに基づいて算出される角度だけシフトされるように決定される、ステップと、ゲーム空間において、第1オブジェクトに向けて決定された方向に第2オブジェクトを移動させるステップと、を含む、方法。
【選択図】
図3
【特許請求の範囲】
【請求項1】
プロセッサ、およびメモリを備えるコンピュータにより実装される方法であって、所定のフレーム・レートごとに、前記プロセッサによる、
ゲーム空間において、第1オブジェクトと、前記第1オブジェクトに追従可能で、ユーザには操作されない第2オブジェクトとの間の配置関係を特定するステップと、
前記ゲーム空間において、前記第2オブジェクトを移動させる方向を決定するステップであって、前記方向は、前記第2オブジェクトから見た前記第1オブジェクトへの方向に対し、前記メモリに格納された範囲情報と、特定された前記配置関係とに基づいて算出される角度だけシフトされるように決定される、ステップと、
前記ゲーム空間において、前記第1オブジェクトに向けて決定された前記方向に前記第2オブジェクトを移動させるステップと、
を備える、方法。
【請求項2】
前記範囲情報は、前記第1オブジェクトと前記第2オブジェクトとの間の距離に関連付けられる距離範囲と、前記第2オブジェクトを移動させる方向をシフトする角度範囲とを含み、
前記第2オブジェクトを移動させる方向を決定するステップは、
前記第1オブジェクトと前記第2オブジェクトとの間の距離を丸めた丸め値を求めるステップと、
前記丸め値と、前記角度範囲とに基づいて、シフトされる前記角度を決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記距離範囲は最小距離と最大距離との間の範囲であり、
前記丸め値は、前記第1オブジェクトと前記第2オブジェクトの間の距離が、
前記最小距離より小さいときは、前記最小距離として決定され、
前記最大距離より大きいときは、前記最大距離として決定され、
前記距離範囲内にあるときは、前記第1オブジェクトと前記第2オブジェクトとの間の距離として決定される、請求項2に記載の方法。
【請求項4】
前記角度範囲は最小角度と最大角度との間の範囲であり、
シフトされる前記角度は、
前記第1オブジェクトと前記第2オブジェクトの間の距離が、前記距離範囲の最小距離より小さいとき、および前記距離範囲の最大距離より大きいときは一定であり、
前記第1オブジェクトと前記第2オブジェクトの間の距離が、前記距離範囲内にあるときは、変化するよう決定される、請求項2または3に記載の方法。
【請求項5】
前記第1オブジェクトと前記第2オブジェクトの間の距離が、所定値以下のとき、前記第1オブジェクトに関する所定のアクションを、前記第2オブジェクトに行わせるステップをさらに含む、請求項1から4のいずれか1項に記載の方法。
【請求項6】
前記範囲情報と、シフトされる前記角度を決定する処理において求められる各種パラメータとのうち少なくとも1つは、予め定められた数値範囲内で発生する乱数で決定される、請求項1から5のいずれか1項に記載の方法。
【請求項7】
複数の前記第2オブジェクトのそれぞれに対し、前記第2オブジェクトを移動させる方向が決定される、請求項1から6のいずれか1項に記載の方法。
【請求項8】
複数の前記第2オブジェクトは、司令塔オブジェクトと、前記司令塔オブジェクトとの相対的な位置関係に応じて移動する部下オブジェクトとを含む、請求項1から7のいずれか1項に記載の方法。
【請求項9】
前記部下オブジェクトは、前記ゲーム空間の画面表示において、前記司令塔オブジェクトと前記第1オブジェクトとを通る仮想直線に対する一方の側に配置された部下オブジェクトと、前記仮想直線に対する他方の側に配置された部下オブジェクトとを含み、
前記一方の側に配置された前記部下オブジェクトを移動させる方向をシフトさせる前記角度と、前記他方の側に配置された前記部下オブジェクトを移動させる方向をシフトさせる前記角度の符号とを異ならせる、請求項8に記載の方法。
【請求項10】
プロセッサ、メモリ、および表示部を備えるコンピュータにより実装される方法であって、所定のフレーム・レートごとに、前記プロセッサによる、
ユーザの操作に応じて、ゲーム空間において第1オブジェクトを動作可能に前記表示部に表示させるステップと、
前記ゲーム空間において、ユーザには操作されない第2オブジェクトを、前記第1オブジェクトとの配置関係に基づいて決定される角度だけ、前記第2オブジェクトから前記第1オブジェクトへの方向からシフトした方向に連続的に移動させるように前記表示部に表示させるステップであって、前記第2オブジェクトが、前記第1オブジェクトから遠いときは直線的に、前記第1オブジェクトに近づくにつれて前記第1オブジェクトに回り込むように接近させる、ステップと、
を備える、方法。
【請求項11】
前記第2オブジェクトを表示させるステップは、複数の前記第2オブジェクトのそれぞれに対し、前記第2オブジェクトを移動させる方向が決定されることにより、前記複数の第2オブジェクトを、前記第1オブジェクトを取り囲むように前記第1オブジェクトに対して移動させることを特徴とする、請求項10に記載の方法。
【請求項12】
プロセッサにより実行されるプログラムが記録された記録媒体であって、前記プロセッサが前記記録媒体に記録されている前記プログラムを実行することにより、前記請求項1から11のいずれか1項に記載の方法を実行させる、記録媒体。
【請求項13】
プロセッサ、およびメモリを備える情報処理装置であって、前記プロセッサは前記メモリに記憶されたプログラムを実行することにより、所定のフレーム・レートごとに、前記プロセッサによる、
ゲーム空間において、第1オブジェクトと、前記第1オブジェクトに追従可能で、ユーザには操作されない第2オブジェクトとの間の配置関係を特定するステップと、
前記ゲーム空間において、前記第2オブジェクトを移動させる方向を決定するステップであって、前記方向が、前記第2オブジェクトから見た前記第1オブジェクトへの方向に対し、前記メモリに格納された範囲情報と、特定された前記配置関係とに基づいて算出される角度だけシフトするように決定されるステップと、
前記ゲーム空間において、前記第1オブジェクトに向けて決定された前記方向に前記第2オブジェクトを移動させるステップと、
を行わせる、情報処理装置。
【請求項14】
プロセッサ、メモリ、および表示部を備える情報処理装置であって、前記プロセッサは前記メモリに記憶されたプログラムを実行することにより、
ユーザの操作に応じて、ゲーム空間において第1オブジェクトを動作可能に前記表示部に表示する第1オブジェクト動作部と、
前記ゲーム空間において、ユーザには操作されない第2オブジェクトを、所定のフレーム・レートごとに前記第1オブジェクトとの配置関係に基づいて決定される角度だけ、前記第2オブジェクトから前記第1オブジェクトへの方向からシフトした方向に連続的に移動させるように前記表示部に表示する第2オブジェクト動作部であって、前記第2オブジェクトが、前記第1オブジェクトから遠いときは直線的に、前記第1オブジェクトに近づくにつれて前記第1オブジェクトに回り込むように接近させる、第2オブジェクト動作部と、
を備える、情報処理装置。
【請求項15】
複数の前記第2オブジェクトのそれぞれに対し、前記第2オブジェクトを移動させる方向が決定されることにより、前記複数の第2オブジェクトを、前記第1オブジェクトを取り囲むように前記第1オブジェクトに対して移動させる、請求項13または14に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、方法、記録媒体および情報処理装置に関する。より詳細には、ゲーム空間内に配置されたオブジェクトの移動を制御する方法、プログラムを記録した記録媒体、情報処理装置に関する。
【背景技術】
【0002】
ゲーム空間内には、プレイヤキャラクタやノンプレイヤキャラクタなどの様々なオブジェクトが配置される。これらのオブジェクトは、ゲーム空間内で様々な動作を行う。その動作の中には、プレイヤキャラクタとノンプレイヤキャラクタとの戦闘が含まれる(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ゲームでは、戦闘のときに、ノンプレイヤキャラクタはプレイヤキャラクタへ向けて直線的に移動する、あるいはノンプレイヤキャラクタはプレイヤキャラクタと一定の距離を保ちながら移動することがあった。
【0005】
しかしながら、このようなノンプレイヤキャラクタの動きは機械的で単調であり、予測が容易であった。
【0006】
本発明の目的は、オブジェクトを制御して、従来では予測の容易であったオブジェクトの移動を、予測の難しいものとしてゲーム展開することができる方法、プログラムを記録した記録媒体、および端末装置を提供することにある。
【課題を解決するための手段】
【0007】
本開示に係る方法は、プロセッサ、およびメモリを備えるコンピュータにより実装される。方法は、所定のフレーム・レートごとに、プロセッサによる、ゲーム空間において、第1オブジェクトと、第1オブジェクトに追従可能で、ユーザには操作されない第2オブジェクトとの間の配置関係を特定するステップと、ゲーム空間において、第2オブジェクトを移動させる方向を決定するステップであって、方向は、第2オブジェクトから見た第1オブジェクトへの方向に対し、メモリに格納された範囲情報と、特定された配置関係とに基づいて算出される角度だけシフトされるように決定される、ステップと、ゲーム空間において、第1オブジェクトに向けて決定された方向に第2オブジェクトを移動させるステップと、を備える。
【0008】
本開示に係る方法は、プロセッサ、メモリ、および表示部を備えるコンピュータにより実装される。方法は、所定のフレーム・レートごとに、プロセッサによる、ユーザの操作に応じて、ゲーム空間において第1オブジェクトを動作可能に表示部に表示させるステップと、ゲーム空間において、ユーザには操作されない第2オブジェクトを、第1オブジェクトとの配置関係に基づいて決定される角度だけ、第2オブジェクトから第1オブジェクトへの方向からシフトした方向に連続的に移動させるように表示部に表示させるステップであって、第2オブジェクトが、第1オブジェクトから遠いときは直線的に、第1オブジェクトに近づくにつれて第1オブジェクトに回り込むように接近させる、ステップと、を備える。
【0009】
本開示に係る情報処理装置は、プロセッサ、およびメモリを備える。情報処理装置のプロセッサはメモリに記憶されたプログラムを実行することにより、所定のフレーム・レートごとに、プロセッサによる、ゲーム空間において、第1オブジェクトと、第1オブジェクトに追従可能で、ユーザには操作されない第2オブジェクトとの間の配置関係を特定するステップと、ゲーム空間において、第2オブジェクトを移動させる方向を決定するステップであって、方向が、第2オブジェクトから見た第1オブジェクトへの方向に対し、メモリに格納された範囲情報と、特定された配置関係とに基づいて算出される角度だけシフトするように決定されるステップと、ゲーム空間において、第1オブジェクトに向けて決定された方向に第2オブジェクトを移動させるステップと、を行わせる。
【0010】
本開示に係る情報処理装置は、プロセッサ、メモリ、および表示部を備える。情報処理装置のプロセッサはメモリに記憶されたプログラムを実行することにより、ユーザの操作に応じて、ゲーム空間において第1オブジェクトを動作可能に表示部に表示する第1オブジェクト動作部と、ゲーム空間において、ユーザには操作されない第2オブジェクトを、所定のフレーム・レートごとに第1オブジェクトとの配置関係に基づいて決定される角度だけ、第2オブジェクトから第1オブジェクトへの方向からシフトした方向に連続的に移動させるように表示部に表示する第2オブジェクト動作部であって、第2オブジェクトが、第1オブジェクトから遠いときは直線的に、第1オブジェクトに近づくにつれて第1オブジェクトに回り込むように接近させる、第2オブジェクト動作部と、を備える。
【図面の簡単な説明】
【0011】
【
図1】本実施形態に係るゲームシステムのハードウェア構成を示す図である。
【
図2】本実施形態に係るユーザ端末およびサーバの機能的構成を示すブロック図である。
【
図3】本実施形態に係るゲームシステムによって実行される処理の流れを説明するフローチャートである。
【
図4】本実施形態に係るゲームシステムによって実行される処理の流れを説明するフローチャートである。
【
図5A】本実施形態においてゲーム空間に配置されたプレイヤキャラクタとノンプレイヤキャラクタを含むゲーム画面の一例を示す図である。
【
図5B】本実施形態においてゲーム空間に配置されたプレイヤキャラクタとノンプレイヤキャラクタを含むゲーム画面の一例を示す図である。
【
図5C】本実施形態においてゲーム空間に配置されたプレイヤキャラクタとノンプレイヤキャラクタを含むゲーム画面の一例を示す図である。
【
図6A】本実施形態に係るゲームシステムにおいて、ノンプレイヤキャラクタがプレイヤキャラクタへ向けて移動するときの軌跡の例を示す。
【
図6B】本実施形態において、複数のノンプレイヤキャラクタがプレイヤキャラクタへ接近したときの軌跡の例を示す。
【
図6C】本実施形態において、複数のノンプレイヤキャラクタがプレイヤキャラクタへ接近したときの軌跡の例を示す。
【発明を実施するための形態】
【0012】
〔実施形態1〕
本開示に係るゲームシステムは、複数のユーザにゲームを提供するためのシステムである。以下、ゲームシステムについて図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
【0013】
<ゲームシステム1のハードウェア構成>
図1は、ゲームシステム1のハードウェア構成を示す図である。ゲームシステム1は図示の通り、複数のユーザ端末100と、サーバ200とを含む。各ユーザ端末100は、サーバ200とネットワーク2を介して接続する。ネットワーク2は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。
【0014】
サーバ200(コンピュータ、情報処理装置)は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであってよい。サーバ200は、プロセッサ20と、メモリ21と、ストレージ22と、通信IF23と、入出力IF24とを備える。サーバ200が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
【0015】
ユーザ端末100(コンピュータ、情報処理装置)は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。ユーザ端末100は、ゲームプレイに適したゲーム装置であってもよい。ユーザ端末100は図示の通り、プロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15(表示部)と、カメラ17と、測距センサ18とを備える。ユーザ端末100が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、ユーザ端末100は、タッチスクリーン15に代えて、または、加えて、ユーザ端末100本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF14を備えていてもよい。
【0016】
また、
図1に示すように、ユーザ端末100は、1つ以上のコントローラ1020と通信可能に構成されることとしてもよい。コントローラ1020は、例えば、Bluetooth(登録商標)等の通信規格に従って、ユーザ端末100と通信を確立する。コントローラ1020は、1つ以上のボタン等を有していてもよく、該ボタン等に対するユーザの入力操作に基づく出力値をユーザ端末100へ送信する。また、コントローラ1020は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値をユーザ端末100へ送信する。
【0017】
なお、ユーザ端末100がカメラ17および測距センサ18を備えることに代えて、または、加えて、コントローラ1020がカメラ17および測距センサ18を有していてもよい。
【0018】
ユーザ端末100は、例えばゲーム開始時に、コントローラ1020を使用するユーザに、該ユーザの名前またはログインID等のユーザ識別情報を、該コントローラ1020を介して入力させることが望ましい。これにより、ユーザ端末100は、コントローラ1020とユーザとを紐付けることが可能となり、受信した出力値の送信元(コントローラ1020)に基づいて、該出力値がどのユーザのものであるかを特定することができる。
【0019】
ユーザ端末100が複数のコントローラ1020と通信する場合、各コントローラ1020を各ユーザが把持することで、ネットワーク2を介してサーバ200などの他の装置と通信せずに、該1台のユーザ端末100でマルチプレイを実現することができる。また
、各ユーザ端末100が無線LAN(Local Area Network)規格等の無線規格により互いに通信接続する(サーバ200を介さずに通信接続する)ことで、複数台のユーザ端末100によりローカルでマルチプレイを実現することもできる。1台のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、ユーザ端末100は、さらに、サーバ200が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末100は、サーバ200が備える後述する種々の機能を分散して備えていてもよい。
【0020】
なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末100はサーバ200と通信を行ってもよい。例えば、あるゲームにおける成績または勝敗等のプレイ結果を示す情報と、ユーザ識別情報とを対応付けてサーバ200に送信してもよい。
【0021】
また、コントローラ1020は、ユーザ端末100に着脱可能な構成であるとしてもよい。この場合、ユーザ端末100の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。該結合部を介して有線によりユーザ端末100とコントローラ1020とが結合している場合は、ユーザ端末100とコントローラ1020とは、有線を介して信号を送受信する。
【0022】
図1に示すように、ユーザ端末100は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF14を介して受け付けてもよい。これにより、ユーザ端末100は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えばゲームプログラムである。
【0023】
ユーザ端末100は、サーバ200等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末100のメモリ11に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ11に記憶してもよい。
【0024】
以上で説明したとおり、ユーザ端末100は、該ユーザ端末100に対して情報を入力する機構の一例として、通信IF13、入出力IF14、タッチスクリーン15、カメラ17、および、測距センサ18を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
【0025】
例えば、操作部が、カメラ17および測距センサ18の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末100の近傍の物体1010を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体1010としてのユーザの手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体1010の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末100は、カメラ17の撮影画像からユーザの手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザの手の一連の動き)を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
【0026】
あるいは、操作部がタッチスクリーン15で構成される場合、ユーザ端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、ユーザ端末100は、コントローラ1020から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
【0027】
<各装置のハードウェア構成要素>
プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ20は、サーバ200全体の動作を制御する。プロセッサ10および20は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。
【0028】
プロセッサ10は後述するストレージ12からプログラムを読み出し、後述するメモリ11に展開する。プロセッサ20は後述するストレージ22からプログラムを読み出し、後述するメモリ21に展開する。プロセッサ10およびプロセッサ20は展開したプログラムを実行する。
【0029】
メモリ11および21は主記憶装置である。メモリ11および21は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置で構成される。メモリ11は、プロセッサ10が後述するストレージ12から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ10に作業領域を提供する。メモリ11は、プロセッサ10がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ21は、プロセッサ20が後述するストレージ22から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ20に作業領域を提供する。メモリ21は、プロセッサ20がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
【0030】
本実施形態においてプログラムとは、ゲームをユーザ端末100により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームをユーザ端末100とサーバ200との協働により実現するためのゲームプログラムであってもよい。なお、ユーザ端末100とサーバ200との協働により実現されるゲームは、一例として、ユーザ端末100において起動されたブラウザ上で実行されるゲームであってもよい。あるいは、該プログラムは、該ゲームを複数のユーザ端末100の協働により実現するためのゲームプログラムであってもよい。また、各種データとは、ユーザ情報およびゲーム情報などのゲームに関するデータ、ならびに、ユーザ端末100とサーバ200との間または複数のユーザ端末100間で送受信する指示または通知を含んでいる。
【0031】
ストレージ12および22は補助記憶装置である。ストレージ12および22は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ12およびストレージ22には、ゲームに関する各種データが格納される。
【0032】
通信IF13は、ユーザ端末100における各種データの送受信を制御する。通信IF23は、サーバ200における各種データの送受信を制御する。通信IF13および23は例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
【0033】
入出力IF14は、ユーザ端末100がデータの入力を受け付けるためのインターフェースであり、またユーザ端末100がデータを出力するためのインターフェースである。入出力IF14は、USB(Universal Serial Bus)等を介してデータの入出力を行ってもよい。入出力IF14は、例えば、ユーザ端末100の物理ボタン、カメラ、マイク、または、スピーカ等を含み得る。サーバ200の入出力IF24は、サーバ200がデータの入力を受け付けるためのインターフェースであり、またサーバ200がデータを出力するためのインターフェースである。入出力IF24は、例えば、マウスまたはキーボード等の情報入力機器である入力部と、画像を表示出力する機器である表示部とを含み得る。
【0034】
ユーザ端末100のタッチスクリーン15は、入力部151と表示部152とを組み合わせた電子部品である。入力部151は、例えばタッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部152は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。
【0035】
入力部151は、入力面に対しユーザの操作(主にタッチ操作、スライド操作、スワイプ操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部151は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。なお、ユーザ端末100は、タッチスクリーン15を備える代わりに、別体の装置として構成された入力部151及び表示部152を備えていてもよい。
【0036】
図示していないが、ユーザ端末100は、該ユーザ端末100の保持姿勢を特定するための1以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。ユーザ端末100がセンサを備えている場合、プロセッサ10は、センサの出力からユーザ端末100の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ10は、ユーザ端末100が縦向きに保持されているときには、縦長の画像を表示部152に表示させる縦画面表示としてもよい。一方、ユーザ端末100が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ10は、ユーザ端末100の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
【0037】
カメラ17は、イメージセンサ等を含み、レンズから入射する入射光を電気信号に変換することで撮影画像を生成する。
【0038】
測距センサ18は、測定対象物までの距離を測定するセンサである。測距センサ18は、例えば、パルス変換した光を発する光源と、光を受ける受光素子とを含む。測距センサ18は、光源からの発光タイミングと、該光源から発せられた光が測定対象物にあたって反射されて生じる反射光の受光タイミングとにより、測定対象物までの距離を測定する。測距センサ18は、指向性を有する光を発する光源を有することとしてもよい。
【0039】
<ゲーム概要>
ゲームシステム1によって実行されるゲーム(以下、本ゲーム)は、ゲームにおいて作用を及ぼす対象となるオブジェクトをタッチ操作によって特定するゲームである。
【0040】
本ゲームでは、ゲーム空間に第1オブジェクト及び第2オブジェクトが配置される。第1オブジェクトは、ユーザの操作に応じて動作するオブジェクトである。第2オブジェクトは、本ゲームにおいて作用を及ぼす対象となるオブジェクトである。なお、本ゲームは、3次元のゲーム空間および3次元のオブジェクトで表現される3Dゲームであってもよいし、2次元のゲーム空間及び2次元のオブジェクトで表現される2Dゲームであってもよい。
【0041】
ここでは、第1オブジェクト及び第2オブジェクトとしてキャラクタを適用する。また、第2オブジェクトに与える作用として、第2オブジェクトであるキャラクタにダメージを与える攻撃を適用する。以降、第1オブジェクトを操作キャラクタとも記載し、第2オブジェクトを敵キャラクタとも記載する。本ゲームは、操作キャラクタを、同じゲーム空間に配置される敵キャラクタと戦闘させることにより進行する。この場合、本ゲームは、仮想的なゲーム空間内に配置された操作キャラクタを、ユーザが自由に操作して移動および戦闘させることができる、オープンワールドのゲームであってもよい。
【0042】
なお、第1オブジェクト及び第2オブジェクトは、必ずしもキャラクタに限らず、ゲームにおけるその他のオブジェクトであってもよい。例えば、第1オブジェクト及び第2オブジェクトの少なくとも一方は、パズルゲームにおけるパズル要素であってもよいし、シューティングゲームにおける自機又は他機であってもよいが、これらに限られない。また、第2オブジェクトに与える作用は、必ずしも攻撃に限らず、その他の作用であってもよい。例えば、第2オブジェクトに対する作用は、パズルゲームにおいて第2オブジェクトとしてのパズル要素を除去するための条件の少なくとも一部を満たす作用であってもよい。また、例えば、第2オブジェクトに対する作用は、シューティングゲームにおいて第2オブジェクトとしての他機を撃ち落とすための条件の少なくとも一部を満たす作用であってもよい。ただし、第2オブジェクトに対する作用は、これらに限られない。
【0043】
また、本ゲームは、特定のジャンルに限らず、あらゆるジャンルのゲームであってよい。例えば、テニス、卓球、ドッジボール、野球、サッカーおよびホッケーなどのスポーツを題材としたゲーム、パズルゲーム、クイズゲーム、RPG、アドベンチャーゲーム、シューティングゲーム、シミュレーションゲーム、育成ゲーム、ならびに、アクションゲームなどであってもよい。
【0044】
また、本ゲームは、特定のプレイ形態に限らず、あらゆるプレイ形態のゲームであってもよい。例えば、単一のユーザによるシングルプレイゲーム、および、複数のユーザによるマルチプレイゲーム、また、マルチプレイゲームの中でも、複数のユーザが対戦する対戦ゲーム、および、複数のユーザが協力する協力プレイゲームなどであってもよい。
【0045】
マルチプレイゲームの場合、本ゲームは、複数のユーザが、各自のユーザ端末100を介して同時に同じゲーム空間内で各自の操作キャラクタを動作させてゲームを進行させる、MMORPG(Massively Multiplayer Online Role-Playing Game)であってもよい。ただし、ゲームシステム1が実現するゲームのジャンル、プレイ形態およびゲーム内容は、上述したものに限定されない。
【0046】
<ゲームシステム1の機能的構成>
図2は、ゲームシステム1に含まれるサーバ200およびユーザ端末100の機能的構成を示すブロック図である。サーバ200およびユーザ端末100のそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
【0047】
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能する。
【0048】
サーバ200は、各ユーザ端末100と通信して、ユーザ端末100がゲームを進行させるのを支援する機能を有する。ゲームがマルチプレイゲームである場合には、サーバ200は、ゲームに参加する各ユーザ端末100と通信して、ユーザ端末100同士のやりとりを仲介する機能を有していてもよい。サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24等の協働によって、制御部210および記憶部220として機能する。
【0049】
記憶部120および記憶部220は、ゲームプログラム、ゲーム情報132およびユーザ情報133を格納する。ゲームプログラム131は、ユーザ端末100が実行するゲームプログラムである。ゲームプログラム231は、サーバ200が実行するゲームプログラムである。ゲーム情報132は、制御部110および制御部210がゲームプログラムを実行する際に参照するデータである。ユーザ情報133は、ユーザのアカウントに関するデータである。記憶部220において、ゲーム情報132およびユーザ情報133は、ユーザ端末100ごとに格納されている。
【0050】
(サーバ200の機能的構成)
制御部210は、記憶部220に格納されたゲームプログラム231を実行することにより、サーバ200を統括的に制御する。例えば、制御部210は、ユーザ端末100に各種データおよびプログラム等を送信する。制御部210は、ゲーム情報もしくはユーザ情報の一部または全部をユーザ端末100から受信する。ゲームがマルチプレイゲームである場合には、制御部210は、ユーザ端末100からマルチプレイの同期の要求を受信して、同期のためのデータをユーザ端末100に送信してもよい。
【0051】
制御部210は、ゲームプログラム231の記述に応じて機能する。制御部210は、実行するゲームの性質に応じて、ユーザ端末100におけるゲームの進行を支援するために、図示しないその他の機能ブロックとしても機能することができる。
【0052】
例えば、制御部210は、ユーザ端末100と通信し、ユーザ端末100が、本ゲームを進行させるための支援を行う。制御部210は、例えば、ユーザ端末100における本ゲームの進捗に応じて、そのときにユーザ端末100が参照すべき情報を適宜提供する。
【0053】
また、制御部210は、マルチプレイゲームの場合、各ユーザ端末100と通信して、ユーザ端末100同士のやりとりを仲介してもよい。さらに、制御部210は、マルチプレイゲームに参加する複数のユーザ端末100のマッチング、マルチプレイゲームの進行状況を同期させるための同期制御などを実行してもよい。
【0054】
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131およびユーザの操作にしたがって、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。
【0055】
制御部110は、ゲームプログラム131の記述に応じて、操作受付部111、表示制御部112、UI制御部113、アニメーション生成部114、ゲーム進行部115として機能する。
【0056】
なお、制御部110は、実行するゲームの性質に応じて、ゲームを進行させるために、図示しないその他の機能ブロックとしても機能することができる。
【0057】
操作受付部111は、入力部151に対するユーザの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールに対してユーザが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部110の各要素に出力する。
【0058】
具体的には、操作受付部111は、入力部151に対するタッチ操作を検出すると、当該タッチ操作に関する各種の情報を取得する。例えば、操作受付部111は、タッチ操作の位置(以下、タッチ位置とも記載する)の座標を取得する。また、操作受付部111は、入力部151において同時に複数のタッチ位置に対するタッチ操作を検出する場合もある。この場合、操作受付部111は、同時に受け付けられたタッチ位置の個数を取得する。また、操作受付部111は、タッチ操作が受け付けられてからその接触が解除されるまでの継続時間を取得する。また、操作受付部111は、タッチ操作の接触が解除されると、当該接触の解除をタッチオフ操作として特定する。なお、操作受付部111によって取得されるタッチ操作に関する情報は、上述した情報に限定されない。操作受付部111は、取得したタッチ操作に関する情報に基づいて、タッチ操作の種類を特定する。
【0059】
タッチ操作の種類は、ユーザによる入力部151への接触の仕方によって分類可能な範囲で適宜に決められる。例えば、タッチ操作の種類として、タップ操作、ダブルタップ操作、長押し操作、フリック操作、スワイプ操作、ドラッグ操作、ピンチアウト操作、ピンチイン操作等がある場合について説明する。
【0060】
タップ操作は、タッチ位置を移動させない短時間のタッチ操作である。短時間とは、閾値未満の継続時間である。ダブルタップ操作は、所定間隔以内で連続する複数回(例えば、2回)のタップ操作である。長押し操作は、タッチ位置を移動させずに所定時間以上タッチを継続させる操作である。フリック操作は、開始点から終了点まで所定速度以上でタッチ位置を移動させる操作である。フリック操作は、所定速度以上でタッチ位置を移動させたことにより「フリック操作」と判定されてもよいし、所定速度以上でタッチ位置を移動させた後にタッチオフが検出されることで「フリック操作」であると判定されてもよい。ドラッグ操作(またはスワイプ操作)は、開始点から終了点までタッチ操作を継続しながらタッチ位置を移動させる操作である。ドラッグ操作は、必ずしもタッチオフを伴わなくてもよい。スワイプ操作及びドラッグ操作は、ここでは同義であるものとする。ピンチイン操作(またはピンチアウト操作)は、第1タッチ位置及び第2タッチ位置に対するタッチ操作を継続させながら第1タッチ位置及び第2タッチ位置間の距離が狭まるように(又は広がるように)移動させる操作である。
【0061】
以降では、フリック操作及びドラッグ操作(またはスワイプ操作)を総称して、スライド操作とも記載する。
【0062】
UI制御部113は、UIを構築するために表示部152に表示させるUIオブジェクトを制御する。UIオブジェクトは、ユーザが、ゲームの進行上必要な入力をユーザ端末100に対して行うためのツール、または、ゲームの進行中に出力される情報をユーザ端末100から得るためのツールである。UIオブジェクトは、これには限定されないが、例えば、アイコン、ボタン、リスト、メニュー画面などである。
【0063】
アニメーション生成部114は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。具体的には、アニメーション生成部114は、第2オブジェクトが作用を受ける様子(例えば、敵キャラクタが攻撃によりダメージを受ける様子)を表現したアニメーション等を生成してもよい。
【0064】
表示制御部112は、タッチスクリーン15の表示部152に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。例えば、表示制御部112は、ユーザが操作可能な操作キャラクタを表示部152に表示させる。また、表示制御部112は、アニメーション生成部114によって生成されたアニメーションを含むゲーム画面を表示部152に表示してもよい。また、表示制御部112は、上述のUIオブジェクトを、該ゲーム画面に重畳して描画してもよい。
【0065】
なお、以降の説明において、操作受付部111によって入力部151に対する入力操作が検知され受け付けられることを、単に、入力操作が受け付けられる、とも記載する。また、他の機能ブロックが、各種のゲーム画面を表示制御部112によって表示部152に出力することを、単に、表示する、とも記載する。
【0066】
<ゲーム詳細>
ゲーム進行部115は、記憶部120に記憶されたゲーム情報132を参照することにより、ゲームを進行する。記憶部120には、ゲーム情報132として、ゲーム空間に配置するオブジェクトに関する情報、各オブジェクトが有するパラメータの情報、プレイ単位の進行状況を表す情報、プレイ単位に応じた課題の達成状況を表す情報等が記憶される。以下では、ゲーム進行部115により進行するゲームの詳細について説明する。
【0067】
本ゲームでは、第1オブジェクトと、ユーザ操作されない第2オブジェクトとをゲーム空間に配置し、第2オブジェクトは第1オブジェクトに追従して移動するよう制御される。ゲーム空間は2次元空間であっても3次元空間であってもよい。本ゲームは、ゲーム空間の1つである戦闘空間においてユーザ操作されるプレイヤキャラクタ(第1オブジェクトの例)とユーザ操作されない敵キャラクタ(第2オブジェクトの例)とを戦闘させることにより進行する戦闘パートを含んでもよい。戦闘パートでは、戦闘空間において操作キャラクタを他のキャラクタと共に敵キャラクタと戦闘させることによりゲームが進行してもよい。また、戦闘を行わないゲーム空間が提供されてもよい。そのようなゲーム空間の一例として、例えば、草原、街、学校などがあるが、これらに限られない。また戦闘空間または戦闘を行わないゲーム空間は、1種類に限らず、複数種類提供されてもよい。例えば、操作キャラクタを含む複数のキャラクタと敵キャラクタとを戦闘させるための他の戦闘空間があってもよい。また、複数のゲーム空間は、ユーザ操作に応答して互いに切り替え可能であってもよい。
【0068】
第1オブジェクトの例は、プレイヤキャラクタである。プレイヤキャラクタは、ユーザ操作に応答して、ノンプレイヤキャラクタに作用を及ぼすための各種アクションを実行可能である。例えば、プレイヤキャラクタが実行可能なアクションには、ノンプレイヤキャラクタに対してダメージを与える攻撃、ノンプレイヤキャラクタからの攻撃に対する防御、回避、移動等が含まれてもよい。プレイヤキャラクタが実行可能なアクションは、プレイヤキャラクタの種類、当該プレイヤキャラクタが有するパラメータに応じて定められていてもよい。第1オブジェクトの他の例は、ユーザの対戦相手が操作する敵キャラクタである。
【0069】
第2オブジェクトの例は、ノンプレイヤキャラクタである。ノンプレイヤキャラクタは、ユーザの操作によらずにゲームプログラム131によって操作されるキャラクタ(以下NPC:non player characterとも記載する)である。ノンプレイヤキャラクタは、アクションゲームにおける敵キャラクタや、味方のキャラクタ、サッカーゲームなどのスポーツゲームのキャラクタ、あるいはRPGのモブとしてのキャラクタである。また、第2オブジェクトの他の例として、アクションゲームで敵に向かって飛んでいく追尾弾、シューティングゲームの編隊飛行する飛行機などのオブジェクト、スポーツゲームで対戦相手のキャラクタに向かって飛んでいくボールなどがある。
【0070】
ノンプレイヤキャラクタは、ユーザ操作によらずにゲームプログラム131によって、プレイヤキャラクタに作用を及ぼすための各種アクションを実行可能である。例えば、ノンプレイヤキャラクタが実行可能なアクションには、プレイヤキャラクタに対してダメージを与える攻撃、プレイヤキャラクタからの攻撃に対する防御、攻撃をよけるための移動、回復等の種類があってもよいが、これに限られない。ノンプレイヤキャラクタが実行可能なアクションは、ノンプレイヤキャラクタの種類、当該ノンプレイヤキャラクタが有するパラメータに応じて定められていてもよい。
【0071】
以下においては、第1オブジェクトはプレイヤキャラクタ、第2オブジェクトはノンプレイヤキャラクタとする。本ゲームは、仮想3次元空間に設けられたフィールド上を、プレイヤキャラクタ(ユーザによる入力部151等の操作に従って動作するキャラクタ)と、プレイヤキャラクタに追従するノンプレイヤキャラクタとが移動していくことによりゲームが進行する部分を含むものとする。ゲーム空間内に配置されるプレイヤキャラクタと、ノンプレイヤキャラクタはそれぞれ1以上であってよい。本ゲームは、ゲーム空間の1つである戦闘空間において、プレイヤキャラクタとノンプレイヤキャラクタとを戦闘させることにより進行する戦闘パートを含んでもよい。
【0072】
<処理概要>
本実施形態では、ユーザ端末100は、ノンプレイヤキャラクタがプレイヤキャラクタに追従するときのノンプレイヤキャラクタの移動を制御するために、ゲームプログラム131に基づいて以下のステップ(ステップS302からステップS316)を実行するように構成されている。具体的にはユーザ端末100は、ユーザからの操作を受け付けて、クエストを開始するステップと(ステップS302)、ノンプレイヤキャラクタの移動に関連付けられた範囲情報とを取得するステップと(ステップS304)、プレイヤキャラクタとノンプレイヤキャラクタとの間の配置関係を特定するステップと(ステップS306)、特定された配置関係と、範囲情報とから、ノンプレイヤキャラクタを移動させる方向を決定するステップと(ステップS308)、決定した方向にノンプレイヤキャラクタを移動させるステップと(ステップS310)を実行するよう構成されている。さらにユーザ端末100は、プレイヤキャラクタとノンプレイヤキャラクタとの距離が所定値以下のときに、ノンプレイヤキャラクタに所定の動作を行わせ(ステップS314)、クエストを終了する(ステップS316)ように構成される。
【0073】
本開示によると、ノンプレイヤキャラクタのプレイヤキャラクタに向けて移動する方向は、決定された角度に応じて様々にシフトされる。これにより、ノンプレイヤキャラクタがプレイヤキャラクタへ接近するときの移動が単調ではなくなり、興趣性の高いゲームを提供することができる。
【0074】
<処理フロー>
図3は、本実施形態に係るゲームシステム1によって実行される処理の流れを説明するフローチャート300である。なお、以下の説明において、ゲーム進行部115は、操作受付部111によって特定されるタッチ操作の種類を取得することにより、タッチ操作の種類に基づく判断処理を実行するものとする。
【0075】
処理はステップS302において開始する。ステップS302において、ゲーム進行部115は、ユーザによる操作に応じて、ユーザがゲームをプレイする単位であるクエストを開始し、ゲーム空間内にプレイヤキャラクタとノンプレイヤキャラクタとを配置する。クエスト中、プレイヤキャラクタはユーザの操作に従って移動することができる。ノンプレイヤキャラクタは、プレイヤキャラクタへ追従して移動し、ノンプレイヤキャラクタとプレイヤキャラクタとの間の距離は随時変化する。
【0076】
次に、ステップS304において、ゲーム進行部115は、ノンプレイヤキャラクタの移動に関連付けられる範囲情報を取得する。ゲーム進行部115は、範囲情報を、サーバ200から受信してもよいし、ユーザ端末100の記憶部120に予め格納されているゲーム情報132から読み出してもよい。範囲情報は、プレイヤキャラクタとノンプレイヤキャラクタとの間の距離に関連付けられる距離範囲と、ノンプレイヤキャラクタの移動する方向をシフトする角度範囲とを含む。
【0077】
距離範囲は、ノンプレイヤキャラクタが移動する方向を変化させる、ノンプレイヤキャラクタとプレイヤキャラクタとの間の距離の範囲である。距離範囲は、最小距離と最大距離との間の範囲で定められる。最小距離と最大距離とは、ノンプレイヤキャラクタの種類、当該キャラクタが有する各種パラメータ(体力、知力、スキル)に応じて定められてもよい。ノンプレイヤキャラクタが複数存在するときは、ノンプレイヤキャラクタごと、あるいはノンプレイヤキャラクタの種類ごとに異なる距離範囲(最小距離、最大距離)が定められてもよい。距離範囲(最小距離、最大距離)は、予め定められた数値範囲内(例えば1から30)で発生する乱数で定められてもよい。
【0078】
角度範囲は、ノンプレイヤキャラクタの移動方向をシフトする角度の範囲である。シフトする角度(シフト角度)は、ノンプレイヤキャラクタから見たプレイヤキャラクタの方向に対しシフトする角度である。シフト角度は、ノンプレイヤキャラクタの位置を基点としてプレイヤキャラクタの位置へ延びる直線を始線L(0°)とし、この始線Lを、反時計回り(+)方向、あるいは時計回り(-)方向に回転させた動径と、始線Lとの間で構成される。角度範囲は、シフト角度の最小角度と最大角度との間の範囲で定められる。最小角度と最大角度は、ノンプレイヤキャラクタの種類、当該キャラクタが有する各種パラメータ(体力、知力、スキル)に応じて定められてもよい。ノンプレイヤキャラクタが複数存在するときは、キャラクタごとに異なる角度範囲(最小角度、最大角度)で定められてもよい。角度範囲(最小角度、最大角度)は、予め定められた数値範囲内の範囲内で発生する乱数で定められてもよい。
【0079】
ステップS306において、ゲーム進行部115は、ノンプレイヤキャラクタと、プレイヤキャラクタとの位置に基づいて、これらの配置関係を特定する。配置関係は、ノンプレイヤキャラクタから見たプレイヤキャラクタのゲーム空間における距離、および方向を含む。
【0080】
ステップS308において、ゲーム進行部115は、ステップS306にて特定された配置関係と、ステップS304にて取得した範囲情報とに基づいて決定される角度に基づいて、ノンプレイヤキャラクタを移動させる方向を決定する。ノンプレイヤキャラクタを移動させる方向の決定の詳細は
図4で後述する。
【0081】
ステップS310において、ゲーム進行部115は、ノンプレイヤキャラクタの正面が、プレイヤキャラクタの方を向いているか否かを判定する。正面を向いていない場合に、アニメーション生成部114は、ノンプレイヤキャラクタの正面がプレイヤキャラクタの方を向くよう、ノンプレイヤキャラクタの正面の向きを変化させる。またアニメーション生成部114は、ノンプレイヤキャラクタがプレイヤキャラクタに向けて、ステップS308にて決定した方向で移動する様子を、ゲーム画面に表示させる。一方、ノンプレイヤキャラクタの正面がプレイヤキャラクタの方を向いている場合、アニメーション生成部114は、ノンプレイヤキャラクタの向きを変更することなく、ノンプレイヤキャラクタがプレイヤキャラクタに向けて、ステップS308にて決定した移動方向で移動する様子を、ゲーム画面に表示させる。
【0082】
ステップS312において、ゲーム進行部115は、ノンプレイヤキャラクタとプレイヤキャラクタとの間の距離が所定値以下であるか否かを判定する。
【0083】
ノンプレイヤキャラクタとプレイヤキャラクタとの間の距離が所定値以下のとき、ステップS314に進む。ステップS314において、ゲーム進行部115は、ノンプレイヤキャラクタに所定のアクションを行わせる。所定のアクションは、ノンプレイヤキャラクタの移動を停止するアクションであってもよいし、さらにプレイヤキャラクタへの攻撃等の種類があってもよいが、これらに限られない。ゲームがシューティングシューティングゲームの場合、第2オブジェクトとしての追尾弾と、プレイヤキャラクタとの距離が所定値以下のとき、第2オブジェクトに対し、そこからプレイヤキャラクタに直進接近するアクションを行わせてもよい。
【0084】
一方、ステップS312において、ノンプレイヤキャラクタとプレイヤキャラクタとの距離が所定値以下ではないと判定した場合に、処理はステップS306へ戻る。ゲーム進行部115は、ノンプレイヤキャラクタとプレイヤキャラクタとの距離が所定値以下になるまで、所定のフレーム・レートで、ステップS306からステップS312の処理を繰り返す。
【0085】
次に、ステップS316において、ゲーム進行部115は、クエストが終了されているか否かを判定する。クエストが終了されていないと判定した場合に、処理はステップS306へ戻る。一方、クエストが終了されていると判定した場合には、ゲーム進行部115は処理を終了する。なお、以上ではステップS302からステップS316の処理をユーザ端末100側で実行する例を説明したが、これらの処理はサーバ200側で実行してもよい。ユーザ端末100はサーバ200で処理した結果を取得し、取得した結果に基づいて、表示部152に対して、ゲーム画面を表示させるようにしてもよい。
【0086】
図4は、本実施形態に係るゲームシステム1によって実行される処理の流れを説明するフローチャート400である。フローチャート400は、ノンプレイヤキャラクタの移動する方向を決定するための処理(
図3に示すステップS308)の詳細を例示する。
【0087】
ステップS402において、ゲーム進行部115は、ノンプレイヤキャラクタとプレイヤキャラクタとの配置関係から、プレイヤキャラクタとノンプレイヤキャラクタとの間の距離の丸め値を求める。丸め値は、プレイヤキャラクタとノンプレイヤキャラクタとの間の距離を、所定の規則に従って丸めた値であり、ステップS304において取得した範囲情報(距離範囲)と比較して求められる。
【0088】
具体的には、丸め値は、ノンプレイヤキャラクタとプレイヤキャラクタとの間の距離が、距離範囲の最小距離より小さいとき、最小距離とする。また、ノンプレイヤキャラクタとプレイヤキャラクタとの間の距離が距離範囲の最大距離より大きいとき、丸め値は最大距離とする。また、ノンプレイヤキャラクタとプレイヤキャラクタとの間の距離が距離範囲以内のとき、丸め値は、プレイヤキャラクタとノンプレイヤキャラクタとの間の距離とする。
【0089】
次に、ステップS404において、ゲーム進行部115は、丸め値の距離範囲における割合R_rateを求める。ここで、丸め値をR_d、距離範囲をD_range、距離範囲のうち最小距離をD_min、最大距離をD_maxとする。丸め値R_dの距離範囲D_rangeにおける割合R_rateは、丸め値R_dと最小距離D_minとの差分を、距離範囲D_rangeで除算して求められる。すなわち、丸め値R_dの距離範囲D_rangeにおける割合R_rateは、以下の式(1)で求められる。
R_rate = (R_d - D_min)/(D_max - D_min) …(1)
【0090】
次に、ステップS406において、ゲーム進行部115は、丸め値R_dの距離範囲D_rangeにおける割合R_rateと、角度範囲A_rangeとからノンプレイヤキャラクタがプレイヤキャラクタに向けて移動する方向を求める。距離範囲D_rangeの全体を「1」としたときの距離範囲D_rangeの全体から丸め値の割合R_rateを減算した残りが求められ、この減算した残りと、角度範囲A_rangeとに基づいて、ノンプレイヤキャラクタを移動させる方向が求められる。ここで、距離範囲の全体から丸め値R_dの割合を減算した残りを(1 - R_rate)、角度範囲の最大角度をA_max、最小角度をA_minとすると、シフト角度A_moveは以下の式(2)で決定される。
A_move=(1 - R_rate)*(A_max - A_min)+ A_min …(2)
【0091】
シフト角度A_moveは、ノンプレイヤキャラクタから見たプレイヤキャラクタの方向に対しシフトされる角度である。ノンプレイヤキャラクタは、始線Lからシフト角度A_move分ずれた角度で、プレイヤキャラクタに向けて移動される。
図5Aから
図5Cは、始線Lと、シフト角度A_moveと、ノンプレイヤキャラクタの移動方向との関係を示す。
図5Aから
図5Cの詳細は後述する。
【0092】
なお、式(2)からは、「正」のシフト角度A_moveが求められる。シフト角度A_moveが「正」のとき、ノンプレイヤキャラクタは、始線Lに対し反時計回り(正)方向から回り込むように移動される。式(2)で求められたシフト角度A_moveに「-1」を乗算すると、ノンプレイヤキャラクタを移動させる方向は、始線Lに対し時計回り(負)方向から回り込むように移動される。ノンプレイヤキャラクタを、始線Lに対し反時計回り(正)方向から移動させるか、時計回り(負)方向から移動させるかは、ノンプレイヤキャラクタごと、あるいはノンプレイヤキャラクタの種類ごとにランダムに定めることができる。シフト角度A_moveの符号を変えることで、複数のノンプレイヤキャラクタのそれぞれの動きを異ならせることができる。
【0093】
<移動角度の算出例>
以下、
図5Aから
図5Cを参照して、移動角度の算出例を説明する。
図5Aから
図5Cは、本実施形態に係るゲームシステム1においてユーザ端末100のタッチスクリーン15の表示部152に表示される簡略化したゲーム画面の一例である。ゲーム空間には1のプレイヤキャラクタと1のノンプレイヤキャラクタが配置されている。
【0094】
図5Aから
図5Cでは、距離範囲D_rangeと、角度範囲A_rangeとは同じであるが、
図5Aの例では、プレイヤキャラクタとノンプレイヤキャラクタとの距離が、最大距離D_maxより大きく、
図5Bの例では、距離範囲D_range内であり、
図5Cの例では、最小距離D_minより小さい点で異なる。
【0095】
以下の例では、距離範囲D_rangeを10、最小距離D_minを10、最大距離D_maxを20、とし、角度範囲A_rangeを30、最小角度A_minを30、最大角度A_maxを60とする。
【0096】
図5Aでは、プレイヤキャラクタとノンプレイヤキャラクタとの間の距離が30であり、最大距離D_max(=20)より大きいから、距離の丸め値R_dは20となる。丸め値R_dの距離範囲における割合R_rateは、式(1)より、(20-10)/(20-10)=1となる。距離範囲の全体を「1」としたときの距離範囲の全体から丸め値R_dの割合R_rateを減算した残りは0(=1-1)となる。よって、
図5Aの例におけるノンプレイヤキャラクタの始線Lに対するシフト角度A_moveは、+30°(=0×(60-30)+30)となる。シフト角度A_moveは「正」であるので、ノンプレイヤキャラクタの移動方向は、始線Lに対し反時計回り(正)方向となる。プレイヤキャラクタとノンプレイヤキャラクタとの間の距離が、最大距離D_maxより大きいときは、ノンプレイヤキャラクタがプレイヤキャラクタに向けて移動するときのシフト角度A_moveは最小角度A_minで一定となる。
【0097】
図5Bの例では、プレイヤキャラクタとノンプレイヤキャラクタとの間の距離が18であり、距離範囲D_range(10~20)以内であるから、丸め値R_dは18となる。丸め値の距離範囲における割合R_rateは、式(1)より、(18-10)/(20-10)=0.8となる。距離範囲の全体を「1」としたときの距離範囲D_rangeの全体から丸め値R_dの割合R_rateを減算した残りは0.2(=1-0.8)となる。よって、
図5Bの例におけるノンプレイヤキャラクタの始線Lに対するシフト角度A_moveは、+36°(=0.2×(60-30)+30)となる。シフト角度A_moveは「正」であるので、ノンプレイヤキャラクタの移動方向は、始線Lに対し反時計回り(正)方向となる。プレイヤキャラクタとノンプレイヤキャラクタとの間の距離が、距離範囲D_range以内のときは、シフト角度A_moveは変化する。プレイヤキャラクタとノンプレイヤキャラクタとの間の距離が、距離範囲D_range以内のときは、シフト角度A_moveは、プレイヤキャラクタとノンプレイヤキャラクタとの間の距離が最大距離D_maxのとき最小角度A_minであり、プレイヤキャラクタに近づくほど徐々に大きくなり、最小距離D_minのとき最大角度A_maxとなる。すなわち、シフト角度A_moveは、距離範囲D_range以内のときは、ノンプレイヤキャラクタがプレイヤキャラクタとの間の距離が離れているほど小さく、ノンプレイヤキャラクタがプレイヤキャラクタとが近づくにつれて大きくなる。
【0098】
図5Cの例では、プレイヤキャラクタとノンプレイヤキャラクタとの間の距離が5であり、最小距離D_minより小さいから、丸め値R_dは10となる。丸め値の距離範囲D_rangeにおける割合R_rateは、式(1)より、(10-10)/(20-10)=0となる。距離範囲D_rangeの全体を「1」としたときの距離範囲D_rangeの全体から丸め値R_dの割合を減算した残りは1(=1-0)となる。よって、
図5Cの例におけるノンプレイヤキャラクタの始線Lに対するシフト角度A_moveは、+60°(=1×(60-30)+30)となる。シフト角度A_moveは「正」であるので、ノンプレイヤキャラクタの移動方向は、始線Lに対し反時計回り(正)方向である。プレイヤキャラクタとノンプレイヤキャラクタとの間の距離が、最小距離D_minより小さいときは、ノンプレイヤキャラクタがプレイヤキャラクタに向けて移動するときのシフト角度A_moveは最大角度A_maxで一定となる。
【0099】
本開示によると、ノンプレイヤキャラクタがプレイヤキャラクタに向けて移動する方向は、ノンプレイヤキャラクタとプレイヤキャラクタとの間の距離に基づいて決定される。本開示によると、少ない計算で、予測の難しいノンプレイヤキャラクタの複雑な移動を実現することができる。
【0100】
<シミュレーション画面例>
図6Aから
図6Cは、本実施形態に係るゲームシステム1において、ノンプレイヤキャラクタがプレイヤキャラクタに向けて移動するときのノンプレイヤキャラクタの移動軌跡のシミュレーション例を示す。
図6Aから
図6Cの600Aから600Cは、XY座標で定められる2次元ゲーム空間を例示する。
図6Aから
図6Cの例において、距離範囲D_rangeは16、最小距離D_minは4、最大距離D_maxは20、角度範囲A_rangeは30、最小角度A_minは10、最大角度A_maxは40とする。
【0101】
図6Aの例では、ゲーム空間600Aに1のプレイヤキャラクタ602と、1のノンプレイヤキャラクタ604が配置されている。
図6Aは、プレイヤキャラクタ602とノンプレイヤキャラクタ604とを結ぶ始線Lに対し、反時計回り方向からノンプレイヤキャラクタ604がプレイヤキャラクタ602へ接近したときの軌跡の例を示す。ノンプレイヤキャラクタ604は初期位置(Nx1,Ny1)から、プレイヤキャラクタ602との距離が所定値(本例では1)以下となる最終位置(Nx2,Ny2)まで移動し、停止する。ノンプレイヤオブジェクト604は、ノンプレイヤオブジェクト604がプレイヤオブジェクト602から遠いときは直線的に、プレイヤオブジェクト602に近づくにつれてプレイヤオブジェクト602から見て時計回りで回り込むように接近する。
【0102】
図6Bの例では、ゲーム空間600Bに1のプレイヤキャラクタ602と、複数(本例では8)のノンプレイヤキャラクタ604が配置されている。
図6Bは、プレイヤキャラクタ602と各ノンプレイヤキャラクタ604とを結ぶ始線L(不図示)に対し、時計回り方向から8つのノンプレイヤキャラクタ604がプレイヤキャラクタ602へ接近したときの移動軌跡の例を示す。ノンプレイヤキャラクタ604は、プレイヤキャラクタ602との距離が所定値(本例では4)以下となると移動を停止する。ノンプレイヤオブジェクト604は、ノンプレイヤオブジェクト604がプレイヤオブジェクト602から遠いときは直線的に、プレイヤオブジェクト602に近づくにつれてプレイヤオブジェクト602から見て反時計回りで回り込むように接近する。
【0103】
図6Cの例では、ゲーム空間に1のプレイヤキャラクタ602と、複数(本例では8)のノンプレイヤキャラクタ604が配置されている。
図6Cは、一部(4つのノンプレイヤキャラクタ604A)が、始線L(不図示)に対し時計回り方向から、残り(4つのノンプレイヤキャラクタ604B)が反時計回り方向から、プレイヤキャラクタ602へ接近したときの移動軌跡の例を示す。ノンプレイヤキャラクタ604は、プレイヤキャラクタ602との距離が所定値(本例では4)以下となると移動を停止する。
【0104】
図6Bおよび
図6Cからわかるように、本開示によると、複数のノンプレイヤキャラクタ604は、プレイヤキャラクタ602との距離が所定値以下となると移動を停止し、プレイヤキャラクタ602を取り囲むよう位置する。このため、ノンプレイヤキャラクタ604は、プレイヤキャラクタ602近くに密集しないため、ゲーム画面の視認性が向上する。
【0105】
また、
図6Bおよび
図6Cからわかるように、本開示によると、複数のノンプレイヤキャラクタ604は、複雑であるが秩序だった動きをする。複数のノンプレイヤキャラクタ604は、初期の位置から一定の隊形を保持して集団でプレイヤキャラクタ602へ向けて移動する。このため、ユーザは一定の隊形を有する複数のノンプレイヤキャラクタ604に対処する必要があり、ユーザのプレイヤキャラクタ602の操作の困難性を上げることができる。また、ノンプレイヤキャラクタ604は隊形を保持することで相互に支援しあっているように見えるため、あたかもノンプレイヤキャラクタ604自身の意志にしたがって移動しているように見え、結果として、ゲームの興趣性を高めることができる。
【0106】
さらに、ノンプレイヤキャラクタ604は、プレイヤキャラクタ602から遠いとき真っ直ぐに、プレイヤキャラクタ602に近づくと、回り込んで接近する。このため、遠いノンプレイヤキャラクタ604がプレイヤキャラクタ602に到達する時間と、近いノンプレイヤキャラクタ604がプレイヤキャラクタ602に到達する時間との差が小さくなる。ユーザは、一斉に近づいてくるノンプレイヤキャラクタ604に対処する必要があり、ゲームの難易度をあげることができる。
【0107】
[変形例1]
ノンプレイヤキャラクタ604をプレイヤキャラクタ602に接近させる速度は、ノンプレイヤキャラクタ604とプレイヤキャラクタ602との間の距離とは独立に定めてもよいし、この距離に従属するよう定めてもよい。本実施形態においては、ノンプレイヤキャラクタ604とプレイヤキャラクタ602との間の距離に基づいて、ノンプレイヤキャラクタ604の速度が変化される。一例ではノンプレイヤキャラクタ604とプレイヤキャラクタ602との距離が長いほど遅く、距離が短いほど早くなるよう、ノンプレイヤキャラクタ604の速度を決定することができる。
【0108】
[変形例2]
本実施形態において、ゲーム空間は3次元空間であってもよい。ゲーム進行部115は、ノンプレイヤキャラクタの現在位置と、プレイヤキャラクタの現在位置とから、ノンプレイヤキャラクタとプレイヤキャラクタとの間の3次元空間における距離を求める。ゲーム進行部115は、求めた距離を用いて、上述したステップS402からステップS406の処理を実行し、ノンプレイヤキャラクタを移動させる方向を決定する。
【0109】
[変形例3]
図6Aから
図6Cの例では、ユーザにより操作されない第2オブジェクトがノンプレイヤキャラクタである例を説明したが、上述したように第2オブジェクトはノンプレイヤキャラクタに限られない。第2オブジェクトは、ユーザのプレイヤキャラクタが発出する武器等であってもよい。
【0110】
一例では、第2オブジェクトは、シューティングゲームにおける武器としての追尾弾であってもよい。プレイヤキャラクタが敵キャラクタへ向けて発射する複数の追尾弾(第2オブジェクト)が、敵キャラクタ(第1オブジェクト)に向かうように制御することができる。複数の追尾弾は、敵キャラクタに向けて直線的に移動せず、敵キャラクタに近づくほど大きな角度で、敵キャラクタを取り囲むように移動して停止する。このため、ユーザは、敵キャラクタは取り囲むように位置する複数の追尾弾を回避、爆破等する必要があり、興趣性の高いゲームを展開することができる。
【0111】
他の例では、第2オブジェクトは、テニスゲームにおけるボールであってもよい。プレイヤキャラクタが打つボール(第2オブジェクト)が、対戦相手の敵キャラクタ(第1オブジェクト)に向かうように制御することができる。ボールは、対戦相手の敵キャラクタに向けて直線的に移動せず、敵キャラクタに近づくほど大きな角度で移動する。対戦相手にとっては、ボールの移動軌跡の予測が難しい一方、ユーザにとっては対戦相手に対し、難易度の高いボールを打ち返すことができる。さらに、ゲーム進行部115は、移動中にゲーム空間内で1つのボールを複数に分離して、それぞれ別の軌跡で対戦相手の敵キャラクタに向かうように制御してもよい。対戦相手は一度に分離下複数のボールを打ち返す必要があり、対戦相手に対しゲームの難易度を高めることができる。
【0112】
[変形例4]
図6Aから
図6Cの例では、ユーザにより操作されない第2オブジェクトが1種類である例を説明したが、第2オブジェクトを複数種類としてもよい。複数種類の第2オブジェクトの例として、司令塔オブジェクトと、この司令塔オブジェクトとの相対的な位置関係に応じて移動が変わる部下オブジェクトとを含んでもよい。例えば、ゲーム空間の画面表示において、司令塔オブジェクトと第1オブジェクトとを通るゲーム空間の仮想直線に対し、一方の側に配置された部下オブジェクトと、仮想直線に対し他方の側に配置された部下オブジェクトとに対し、シフト角度の符号を異ならせることができる。第1オブジェクトから見て仮想直線に対し右側に配置された部下オブジェクト(
図6Cの604B)に、正のシフト角度を割り当てると、これら右側に配置された部下オブジェクトは、始線Lに対し反時計回り方向から回り込むように第1オブジェクトに接近する。第1オブジェクトから見て仮想直線に対し左側に配置された部下オブジェクト(
図6Cの604A)に対し負のシフト角度を割り当てると、これら左側に配置された部下オブジェクトは、始線Lに対し時計回り方向から回り込むように第1オブジェクトに接近する。
【0113】
[変形例5]
本実施形態においては、ゲーム進行部115は、
図4に示すステップS402からステップS406のシフト角度を決定する処理で計算される各種パラメータのうち少なくとも1つを、それぞれ予め定められた数値範囲内で発生する乱数に基づいて定めてもよい。各種パラメータは、丸め値R_d、丸め値の距離範囲における割合R_rate、シフト角度A_move等を含む。一例では、シフト角度A_moveは、予め定められた数値範囲(0から0.1)内で発生する乱数Rに基づき定めてもよい。乱数Rに基づき求められる角度α(例えばR/2π)を、
図4のステップS406の式(2)で求められるシフト角度A_moveに加算して得られた新たな角度を、第2オブジェクトを移動させる角度とする。第2オブジェクトは、始線Lからシフト角度A_move+角度α分ずれた角度で、第1オブジェクトに向けて移動される。シフト角度を決定する処理で計算される各種パラメータは、所定のフレーム・レートごとに発生する乱数に基づいて定められてもよいし、あるいは第2オブジェクトごとに発生する乱数に基づいて定められてもよい。本開示によると、第2オブジェクトを移動させる方向を、ランダムに決定することができ、ノンプレイヤキャラクタの動きにバリエーションを持たせることができる。
【0114】
また、他の実施形態において、ゲーム空間は現実空間でもよく、この場合、空間内に配置されるオブジェクトはドローンでもよい。オブジェクトの配置関係は、GPS(Global Positioning System)で取得し、この取得した配置関係に基づいて、第2オブジェクトを移動させる方向を決定する。
〔ソフトウェアによる実現例〕
制御部210の制御ブロック、ならびに、制御部110の制御ブロック(特に、操作受付部111、表示制御部112、UI制御部113、アニメーション生成部114、ゲーム進行部115)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
【0115】
後者の場合、制御部210または制御部110、もしくはその両方の機能を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0116】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【0117】
[付記事項]
本開示の一側面に係る内容を列記すると以下のとおりである。
【0118】
(項目1)方法について説明した。本開示のある局面によると、方法は、プロセッサ、およびメモリを備えるコンピュータにより実装される方法であって、所定のフレーム・レートごとに、プロセッサによる、ゲーム空間において、第1オブジェクトと、第1オブジェクトに追従可能で、ユーザには操作されない第2オブジェクトとの間の配置関係を特定するステップ(S306)と、ゲーム空間において、第2オブジェクトを移動させる方向を決定するステップであって、方向は、第2オブジェクトから見た第1オブジェクトへの方向に対し、メモリに格納された範囲情報と、特定された配置関係とに基づいて算出される角度(A_move)だけシフトされるように決定される、ステップ(S308)と、ゲーム空間において、第1オブジェクトに向けて決定された方向に第2オブジェクトを移動させるステップ(S310)と、を備える。これにより、第2オブジェクトの移動を複雑にすることができるので、ゲームの興趣性が向上する。
【0119】
(項目2) (項目1)において、範囲情報は、第1オブジェクトと第2オブジェクトとの間の距離に関連付けられる距離範囲(D_range)と、第2オブジェクトを移動させる方向をシフトする角度範囲(A_range)とを含み、第2オブジェクトを移動させる方向を決定するステップ(S308)は、第1オブジェクトと第2オブジェクトとの間の距離を丸めた丸め値を求めるステップ(S402)と、丸め値(R_d)と、角度範囲(A_range)とに基づいて、シフトされる角度(A_move)を決定するステップ(S406)とをさらに含む。
【0120】
(項目3) (項目2)において、距離範囲(D_range)は最小距離(D_min)と最大距離(D_max)との間の範囲であり、丸め値(R_d)は、第1オブジェクトと第2オブジェクトの間の距離が、最小距離(D_min)より小さいときは、最小距離(D_min)として決定され、最大距離(D_max)より大きいときは、最大距離(D_max)として決定され、距離範囲(D_range)内にあるときは、第1オブジェクトと第2オブジェクトとの間の距離として決定されてもよい。
【0121】
(項目4) (項目2)または(項目3)において、角度範囲(A_range)は最小角度(A_min)と最大角度(A_max)との間の範囲であり、シフトされる角度(A_move)は、第1オブジェクトと第2オブジェクトの間の距離が、距離範囲(D_range)の最小距離(D_min)より小さいとき、および距離範囲(D_range)の最大距離(D_max)より大きいときは一定であり、第1オブジェクトと第2オブジェクトの間の距離が、距離範囲(D_range)内にあるときは、変化するよう決定されてもよい。
【0122】
(項目5) (項目1)から(項目4)のいずれかにおいて、第1オブジェクトと第2オブジェクトの間の距離が、所定値以下のとき、第1オブジェクトに関する所定のアクションを、第2オブジェクトに行わせるステップ(S314)をさらに含んでもよい。これにより、第2オブジェクトが第1オブジェクトに近づいたときに第2オブジェクトにアクションを行わせることができるので、ゲームの興趣性が向上する。
【0123】
(項目6) (項目1)から(項目5)のいずれかにおいて、範囲情報と、シフトされる角度(A_move)を決定する処理において求められる各種パラメータとのうち少なくとも1つは、予め定められた数値範囲内で発生する乱数(R)で決定されてもよい。これにより、第2オブジェクトの移動を複雑にすることができるので、ゲームの興趣性が向上する。
【0124】
(項目7) (項目1)から(項目6)のいずれかにおいて、複数の第2オブジェクトのそれぞれに対し、第2オブジェクトを移動させる方向が決定されてもよい。これにより、複数の第2オブジェクトの移動をそれぞれ異ならせることができ、第2オブジェクトの移動を複雑にすることができるので、ゲームの興趣性が向上する。
【0125】
(項目8) (項目1)から(項目7)のいずれかにおいて、複数の第2オブジェクトは、司令塔オブジェクトと、司令塔オブジェクトとの相対的な位置関係に応じて移動する部下オブジェクトとを含んでもよい。これにより、複数種類の第2オブジェクトの移動を異ならせることができ、第2オブジェクトの移動を複雑にすることができるので、ゲームの興趣性が向上する。
【0126】
(項目9) (項目8)において、部下オブジェクトは、ゲーム空間の画面表示において、司令塔オブジェクトと第1オブジェクトとを通る仮想直線に対する一方の側に配置された部下オブジェクトと、仮想直線に対する他方の側に配置された部下オブジェクトとを含み、一方の側に配置された部下オブジェクトを移動させる方向をシフトさせる角度(A_move)と、他方の側に配置された部下オブジェクトを移動させる方向をシフトさせる角度(A_move)の符号とを異ならせてもよい。
【0127】
(項目10) 本開示のある局面によると、方法は、プロセッサ、メモリ、および表示部を備えるコンピュータにより実装される方法であって、所定のフレーム・レートごとに、プロセッサによる、ユーザの操作に応じて、ゲーム空間において第1オブジェクトを動作可能に表示部に表示させるステップと、ゲーム空間において、ユーザには操作されない第2オブジェクトを、第1オブジェクトとの配置関係に基づいて決定される角度だけ、第2オブジェクトから第1オブジェクトへの方向からシフトした方向に連続的に移動させるように表示部に表示させるステップであって、第2オブジェクトが、第1オブジェクトから遠いときは直線的に、第1オブジェクトに近づくにつれて第1オブジェクトに回り込むように接近させる、ステップと、を備える。これにより、第2オブジェクトの移動を複雑にすることができるので、ゲームの興趣性が向上する。
【0128】
(項目11) (項目10)において、第2オブジェクトを表示させるステップは、複数の第2オブジェクトのそれぞれに対し、第2オブジェクトを移動させる方向が決定されることにより、複数の第2オブジェクトを、第1オブジェクトを取り囲むように第1オブジェクトに対して移動させてもよい。これにより、第1オブジェクトを操作するユーザは、第1オブジェクトを取り囲むように位置する複数の第2オブジェクトに対処する必要があり、ゲームの興趣性が向上する。
【0129】
(項目12) 本開示のある局面によると、プロセッサにより実行されるプログラムが記録された記録媒体であって、プロセッサが記録媒体に記録されているプログラムを実行することにより、(項目1)から(項目11)のいずれかに記載の方法を実行させる、記録媒体でもよい。
【0130】
(項目13) 本開示のある局面によると、情報処理装置は、プロセッサ、およびメモリを備え、プロセッサはメモリに記憶されたプログラムを実行することにより、所定のフレーム・レートごとに、プロセッサによる、ゲーム空間において、第1オブジェクトと、第1オブジェクトに追従可能で、ユーザには操作されない第2オブジェクトとの間の配置関係を特定するステップ(S306)と、ゲーム空間において、第2オブジェクトを移動させる方向を決定するステップであって、方向が、第2オブジェクトから見た第1オブジェクトへの方向に対し、メモリに格納された範囲情報と、特定された配置関係とに基づいて算出される角度(A_move)だけシフトするように決定されるステップ(S308)と、ゲーム空間において、第1オブジェクトに向けて決定された方向に第2オブジェクトを移動させるステップ(S310)と、を行わせる。
【0131】
(項目14) 本開示のある局面によると、情報処理装置は、プロセッサ、メモリ、および表示部を備え、プロセッサはメモリに記憶されたプログラムを実行することにより、ユーザの操作に応じて、ゲーム空間において第1オブジェクトを動作可能に表示部に表示する第1オブジェクト動作部と、ゲーム空間において、ユーザには操作されない第2オブジェクトを、所定のフレーム・レートごとに第1オブジェクトとの配置関係に基づいて決定される角度だけ、第2オブジェクトから第1オブジェクトへの方向からシフトした方向に連続的に移動させるように表示部に表示する第2オブジェクト動作部であって、第2オブジェクトが、第1オブジェクトから遠いときは直線的に、第1オブジェクトに近づくにつれて第1オブジェクトに回り込むように接近させる、第2オブジェクト動作部と、を備える。
【0132】
(項目15) (項目13)または(項目14)において、複数の第2オブジェクトのそれぞれに対し、第2オブジェクトを移動させる方向が決定されることにより、複数の第2オブジェクトを、第1オブジェクトを取り囲むように第1オブジェクトに対して移動させてもよい。
【符号の説明】
【0133】
1 ゲームシステム、2 ネットワーク、10,20 プロセッサ、11,21 メモリ、12,22 ストレージ、13,23 通信IF(操作部)、14,24 入出力IF(操作部)、15 タッチスクリーン(表示部、操作部)、17 カメラ(操作部)、18 測距センサ(操作部)、100 ユーザ端末(情報処理装置)、110,210 制御部、111 操作受付部、112 表示制御部、113 UI制御部、114 アニメーション生成部、115 ゲーム進行部、120,220 記憶部、131,231 ゲームプログラム、132 ゲーム情報、133 ユーザ情報、151 入力部(操作部)、152 表示部、200 サーバ、1010 物体、1020 コントローラ(操作部)、1030 記憶媒体、A_move シフト角度、A_max 最大角度、A_min 最小角度、A_range 角度範囲、D_max 最大距離、D_min 最小距離、D_range 距離範囲、R_d 丸め値
【手続補正書】
【提出日】2023-07-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータにおいて実行されるプログラムであって、前記コンピュータを、
仮想空間において、第1オブジェクトと、ユーザには操作されない第2オブジェクトとの間の配置関係を特定する特定手段と、
前記第2オブジェクトから見た前記第1オブジェクトへの方向に対し、所定の範囲情報と、特定された前記配置関係とに基づいて算出される角度だけシフトするように前記第2オブジェクトを移動させる方向を決定する決定手段と、
決定された前記方向に前記第2オブジェクトを移動させる移動手段
として機能させる、プログラム。
【請求項2】
前記範囲情報は、前記第1オブジェクトと前記第2オブジェクトとの間の距離に関連付けられる距離範囲と、前記第2オブジェクトを移動させる方向をシフトする角度範囲とを含み、
前記決定手段は、
前記第1オブジェクトと前記第2オブジェクトとの間の距離を丸めた丸め値を求める手段と、
前記丸め値と、前記角度範囲とに基づいて、シフトされる前記角度を決定する手段と
をさらに含む、請求項1に記載のプログラム。
【請求項3】
前記距離範囲は最小距離と最大距離との間の範囲であり、
前記丸め値は、前記第1オブジェクトと前記第2オブジェクトの間の距離が、
前記最小距離より小さいときは、前記最小距離として決定され、
前記最大距離より大きいときは、前記最大距離として決定され、
前記距離範囲内にあるときは、前記第1オブジェクトと前記第2オブジェクトとの間の距離として決定される、請求項2に記載のプログラム。
【請求項4】
前記角度範囲は最小角度と最大角度との間の範囲であり、
シフトされる前記角度は、
前記第1オブジェクトと前記第2オブジェクトの間の距離が、前記距離範囲の最小距離より小さいとき、および前記距離範囲の最大距離より大きいときは一定であり、
前記第1オブジェクトと前記第2オブジェクトの間の距離が、前記距離範囲内にあるときは、変化するよう決定される、請求項2または3に記載のプログラム。
【請求項5】
前記第1オブジェクトと前記第2オブジェクトの間の距離が、所定値以下のとき、前記第1オブジェクトに関する所定のアクションを、前記第2オブジェクトに行わせる手段としてさらに機能させる、請求項1から4のいずれか1項に記載のプログラム。
【請求項6】
前記範囲情報と、シフトされる前記角度を決定する処理において求められる各種パラメータとのうち少なくとも1つは、予め定められた数値範囲内で発生する乱数で決定される、請求項1から5のいずれか1項に記載のプログラム。
【請求項7】
複数の前記第2オブジェクトのそれぞれに対し、前記第2オブジェクトを移動させる方向が決定される、請求項1から6のいずれか1項に記載のプログラム。
【請求項8】
複数の前記第2オブジェクトは、司令塔オブジェクトと、前記司令塔オブジェクトとの
相対的な位置関係に応じて移動する部下オブジェクトとを含む、請求項1から7のいずれか1項に記載のプログラム。
【請求項9】
前記部下オブジェクトは、前記仮想空間の画面表示において、前記司令塔オブジェクトと前記第1オブジェクトとを通る仮想直線に対する一方の側に配置された部下オブジェクトと、前記仮想直線に対する他方の側に配置された部下オブジェクトとを含み、
前記一方の側に配置された前記部下オブジェクトを移動させる方向をシフトさせる前記角度と、前記他方の側に配置された前記部下オブジェクトを移動させる方向をシフトさせる前記角度の符号とを異ならせる、請求項8に記載のプログラム。
【請求項10】
前記特定手段と、前記決定手段と、前記移動手段とを所定のフレーム・レートごとに機能させる、請求項1に記載のプログラム。
【請求項11】
コンピュータおいて実行されるプログラムであって、前記コンピュータを、
ユーザの操作に応じて、ゲーム空間において第1オブジェクトを動作可能に表示部に表示させる第1の表示手段と、
前記ゲーム空間において、ユーザには操作されない第2オブジェクトを、前記第1オブジェクトとの配置関係に基づいて決定される角度だけ、前記第2オブジェクトから前記第1オブジェクトへの方向からシフトした方向に連続的に移動させるように前記表示部に表示させる第2の表示手段であって、前記第2オブジェクトが、前記第1オブジェクトから遠いときは直線的に、前記第1オブジェクトに近づくにつれて前記第1オブジェクトに回り込むように接近させる、第2の表示手段
として機能させる、プログラム。
【請求項12】
前記第2オブジェクトを表示させる前記第2の表示手段は、複数の前記第2オブジェクトのそれぞれに対し、前記第2オブジェクトを移動させる方向が決定されることにより、前記複数の第2オブジェクトを、前記第1オブジェクトを取り囲むように前記第1オブジェクトに対して移動させることを特徴とする、請求項11に記載のプログラム。
【請求項13】
情報処理装置を備えるシステムであって、前記情報処理装置のプロセッサはメモリに記憶されたプログラムを実行することにより、
仮想空間において、第1オブジェクトと、ユーザには操作されない第2オブジェクトとの間の配置関係を特定するステップと、
前記第2オブジェクトから見た前記第1オブジェクトへの方向に対し、所定の範囲情報と、特定された前記配置関係とに基づいて算出される角度だけシフトするように前記第2オブジェクトを移動させる方向を決定するステップと、
決定された前記方向に前記第2オブジェクトを移動させるステップと、
を行わせる、システム。
【請求項14】
情報処理装置を備えるシステムであって、前記情報処理装置のプロセッサはメモリに記憶されたプログラムを実行することにより、
仮想空間において第1オブジェクトを動作可能に表示部に表示するステップと、
前記仮想空間において、ユーザには操作されない第2オブジェクトを、前記第1オブジェクトとの配置関係に基づいて決定される角度だけ、前記第2オブジェクトから前記第1オブジェクトへの方向からシフトした方向に連続的に移動させるように前記表示部に表示するステップであって、前記第2オブジェクトが、前記第1オブジェクトから遠いときは直線的に、前記第1オブジェクトに近づくにつれて前記第1オブジェクトに回り込むように接近させる、ステップと、
を行わせる、システム。
【請求項15】
複数の前記第2オブジェクトのそれぞれに対し、前記第2オブジェクトを移動させる方向が決定されることにより、前記複数の第2オブジェクトを、前記第1オブジェクトを取り囲むように前記第1オブジェクトに対して移動させる、請求項13または14に記載のシステム。