(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023182475
(43)【公開日】2023-12-26
(54)【発明の名称】情報処理装置、プログラムおよび情報処理方法
(51)【国際特許分類】
A63F 13/426 20140101AFI20231219BHJP
A63F 13/837 20140101ALI20231219BHJP
【FI】
A63F13/426
A63F13/837
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022096099
(22)【出願日】2022-06-14
(71)【出願人】
【識別番号】000129149
【氏名又は名称】株式会社カプコン
(74)【代理人】
【識別番号】110002789
【氏名又は名称】弁理士法人IPX
(72)【発明者】
【氏名】丸山 敦史
(57)【要約】
【課題】プレイ環境に配慮したゲームの提供を支援する技術を提供すること。
【解決手段】本開示の一態様によれば、情報処理装置が提供される。この情報処理装置は、制御部を備える。制御部は、表示ステップと、受付ステップと、制御ステップと、決定ステップとを実行するように構成される。表示ステップでは、仮想空間をユーザのディスプレイに表示させる。受付ステップでは、ユーザ端末からユーザの操作入力を受け付ける。制御ステップでは、ユーザの操作入力に基づいて操作オブジェクトに特定動作を実行させる。特定動作は、標的オブジェクトに対する動作である。仮想空間のいずれかの位置に操作オブジェクトおよび標的オブジェクトが配置される。決定ステップでは、特定動作の操作入力を受け付けた時点における、特定動作の演算処理に用いられる標的オブジェクトの位置である演算位置と、ユーザのディスプレイに表示された標的オブジェクトの位置である表示位置と、の差に基づいて特定動作の結果を決定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
情報処理装置であって、
制御部を備え、
前記制御部は、表示ステップと、受付ステップと、制御ステップと、決定ステップとを実行するように構成され、
前記表示ステップでは、仮想空間をユーザのディスプレイに表示させ、
前記受付ステップでは、ユーザ端末から前記ユーザの操作入力を受け付け、
前記制御ステップでは、前記ユーザの操作入力に基づいて前記操作オブジェクトに特定動作を実行させ、
前記特定動作は、標的オブジェクトに対する動作で、
前記仮想空間のいずれかの位置に前記操作オブジェクトおよび標的オブジェクトが配置され、
前記決定ステップでは、前記特定動作の操作入力を受け付けた時点における、前記特定動作の演算処理に用いられる前記標的オブジェクトの位置である演算位置と、前記ユーザの前記ディスプレイに表示された前記標的オブジェクトの位置である表示位置と、の差に基づいて前記特定動作の結果を決定する、
情報処理装置。
【請求項2】
請求項1に記載の情報処理装置において、
前記制御部は、調整ステップをさらに実行するように構成され、
前記調整ステップでは、前記差に基づいて前記操作オブジェクトに対応付けられた第1判定領域の範囲と前記標的オブジェクトに対応付けられた第2判定領域の範囲とのうち少なくとも1つを調整する調整処理を実行し、
前記決定ステップでは、前記調整処理の後、前記特定動作によって前記第1判定領域と前記第2判定領域の位置関係に基づいて、前記特定動作の結果を決定する、
情報処理装置。
【請求項3】
請求項2に記載の情報処理装置において、
前記決定ステップでは、
前記調整処理が実行される前の前記第1判定領域と前記第2判定領域の位置関係に基づいて、前記特定動作による効果が成立しなかった場合、前記調整処理の実行後、前記特定動作の結果を決定する、
情報処理装置。
【請求項4】
請求項3に記載の情報処理装置において、
前記調整ステップでは、
前記調整処理が実行される前の前記第1判定領域および前記第2判定領域の位置関係に基づいて、前記特定動作による効果が成立しなかった場合、前記差が閾値以上であることを条件として、前記調整処理を実行し、
前記決定ステップでは、前記調整処理の実行後、前記特定動作の結果を決定する、
情報処理装置。
【請求項5】
請求項1に記載の情報処理装置において、
前記ユーザは、第1ユーザと第2ユーザとを含み、
前記決定ステップでは、前記第1ユーザの前記差が前記第2ユーザの前記差よりも大きい場合、前記第1ユーザに有利となるように前記特定動作の結果を決定する、
情報処理装置。
【請求項6】
請求項1に記載の情報処理装置において、
前記制御部は、マッチングステップをさらに実行するように構成され、
前記受付ステップでは、前記ユーザによって設定されたディスプレイにおいて単位時間あたりに更新される画面数を示すフレームレートをユーザ端末から取得し、
前記マッチングステップでは、前記フレームレートに基づいて、複数のユーザの中から第1ユーザと第2ユーザを選択し、
前記制御ステップでは、マッチングされた前記第1ユーザに対応する第1ユーザ端末において操作オブジェクトとして動作する第1オブジェクトと、前記第2ユーザに対応する第2ユーザ端末において操作オブジェクトとして動作する第2オブジェクトとを前記仮想空間に配置して、前記仮想空間におけるゲームを進行させる、
情報処理装置。
【請求項7】
請求項1に記載の情報処理装置において、
前記差は、前記ユーザによって設定された前記ディスプレイにおいて単位時間あたりに更新される画面数を示すフレームレートに基づいて算出される、
情報処理装置。
【請求項8】
請求項1に記載の情報処理装置において、
前記ユーザは、第1ユーザと第2ユーザとを含み、
前記受付ステップでは、第1ユーザ端末を介した前記第1ユーザの第1操作入力を受け付け、第2ユーザ端末を介した前記第2ユーザの第2操作入力を受け付け、
前記制御ステップでは、前記第1操作入力に基づいて前記操作オブジェクトである第1オブジェクトに前記特定動作を実行させ、
前記特定動作は、前記第2操作入力に基づいて動作する第2オブジェクトを標的オブジェクトとする動作で、
前記演算位置は、前記第2操作入力が前記第2ユーザ端末において受け付けられた時点を特定する情報に基づいて特定される、
情報処理装置。
【請求項9】
プログラムであって、
コンピュータに、請求項1~請求項8の何れか1つに記載の各ステップを実行させる、
プログラム。
【請求項10】
情報処理装置が実行する情報処理方法であって、
請求項1~請求項8の何れか1つに記載の情報処理装置における各ステップを備える、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、プログラムおよび情報処理方法に関する。
【背景技術】
【0002】
仮想空間に配置されたオブジェクト同士を戦わせるゲームが知られている。例えば、特許文献1では、仮想空間をキャラクタが移動しながら戦闘するゲームにおいて、スムーズなプレイを実現する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、瞬時の判断や操作が求められるシューティングゲームでは、一瞬の判断が勝敗を分けることとなる。一方、ユーザのプレイ環境によっては、ゲーム装置での処理結果がディスプレイに表示されるまでにはタイムラグが大きく、このタイムラグによる標的の位置の見誤りが致命的な結果を招くことがある。このような場合、ゲームの勝敗がユーザのプレイ環境に依存してしまうという問題があった。
【0005】
本開示では上記事情に鑑み、プレイ環境に配慮したゲームの提供を支援する技術を提供することとした。
【課題を解決するための手段】
【0006】
本開示の一態様によれば、情報処理装置が提供される。この情報処理装置は、制御部を備える。制御部は、表示ステップと、受付ステップと、制御ステップと、決定ステップとを実行するように構成される。表示ステップでは、仮想空間をユーザのディスプレイに表示させる。受付ステップでは、ユーザ端末からユーザの操作入力を受け付ける。制御ステップでは、ユーザの操作入力に基づいて操作オブジェクトに特定動作を実行させる。特定動作は、標的オブジェクトに対する動作である。仮想空間のいずれかの位置に操作オブジェクトおよび標的オブジェクトが配置される。決定ステップでは、特定動作の操作入力を受け付けた時点における、特定動作の演算処理に用いられる標的オブジェクトの位置である演算位置と、ユーザのディスプレイに表示された標的オブジェクトの位置である表示位置と、の差に基づいて特定動作の結果を決定する。
【0007】
本開示によれば、プレイ環境に配慮したゲームの提供を支援する技術を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る情報処理システム1のハードウェア構成を示すブロック図である。
【
図2】本実施形態に係る情報処理装置2のうち、制御部23の機能構成を示すブロック図である。
【
図3】情報処理システム1により実行される処理の流れの一例を示すアクティビティ図である。
【
図5】第1判定領域71と第2判定領域72とが接触した様子を示すイメージ図である。
【
図6】フレーム毎の処理の流れを示すイメージ図である。
【
図7】フレームレートが12fpsである処理の流れを示すイメージ図である。
【
図8】画面601、画面612、画面701および画面712を拡大表示させたイメージ図である。
【
図9】標的オブジェクト52に対応付けられた第2判定領域72の演算位置61aおよび表示位置62bの距離64を示すイメージ図である。
【
図10】調整部234による調整前後の標的オブジェクト52の第2判定領域72を示すイメージ図である。
【
図11】ディスプレイ4aに表示される画面の一例を示すイメージ図である。
【
図12】ディスプレイ4aに表示される画面の一例を示すイメージ図である。
【
図13】メンバー募集画面1301の一例を示すイメージ図である。
【
図14】試合開始前に表示される警告1401の一例を示すイメージ図である。
【
図15】第1ユーザおよび第2ユーザによる試合における処理の流れを示すイメージ図である。
【発明を実施するための形態】
【0009】
[実施形態]
以下、図面を用いて本開示の実施形態について説明する。以下に示す実施形態中で示した各種特徴事項は、互いに組み合わせ可能である。
【0010】
ところで、本実施形態に登場するソフトウェアを実現するためのプログラムは、コンピュータが読み取り可能な非一時的な記録媒体(Non-Transitory Computer-Readable Medium)として提供されてもよいし、外部のサーバからダウンロード可能に提供されてもよいし、外部のコンピュータで当該プログラムを起動させてクライアント端末でその機能を実現(いわゆるクラウドコンピューティング)するように提供されてもよい。
【0011】
また、本実施形態において「部」とは、例えば、広義の回路によって実施されるハードウェア資源と、これらのハードウェア資源によって具体的に実現されうるソフトウェアの情報処理とを合わせたものも含みうる。また、本実施形態においては様々な情報を取り扱うが、これら情報は、例えば電圧・電流を表す信号値の物理的な値、0または1で構成される2進数のビット集合体としての信号値の高低、または量子的な重ね合わせ(いわゆる量子ビット)によって表され、広義の回路上で通信・演算が実行されうる。
【0012】
また、広義の回路とは、回路(Circuit)、回路類(Circuitry)、プロセッサ(Processor)、およびメモリ(Memory)等を少なくとも適当に組み合わせることによって実現される回路である。すなわち、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、プログラマブル論理デバイス(例えば、単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)、複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、およびフィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA))等を含むものである。
【0013】
1.ゲームの説明
図1は、本実施形態に係る情報処理システム1のハードウェア構成を示すブロック図である。
図1に示す情報処理システム1では、情報処理装置2および複数のユーザ端末3が通信ネットワーク11を介して互いに通信可能に接続され、ユーザ端末3においてゲームが実行される。
【0014】
本実施形態に係るゲームは、情報処理システム1にて実行されるオンラインのゲームである。このゲームでは、ユーザ端末3のユーザは、1または複数のプレイヤキャラクタPCを仮想ゲーム空間で活動させたり、プレイヤキャラクタPCを、ノンプレイヤキャラクタNPCである敵キャラクタECと対戦させたりする。また、キャラクタCは、オブジェクト5の一例である。
【0015】
上記のようなゲームは、プレイステーション(登録商標)などの家庭用ゲーム機、ニンテンドースイッチ(登録商標)などの携帯用ゲーム機、仮想現実(以下、VR(Virtual Reality)という)用ヘッドセットを備えるOculus VR(登録商標)などのVRゲーム機、もしくは、パーソナルコンピュータ、スマートフォン、タブレット端末などの電子機器であるユーザ端末3を用いて実行される。
【0016】
2.情報処理システム1の概要
図1に示されるように、情報処理システム1は、情報処理装置2および複数のユーザ端末3にて構成される。情報処理装置2は、ゲームプログラムおよびゲームデータを記憶しており、ユーザ端末3の(下記のアカウント情報ごとの)ゲームデータの管理を行う。情報処理装置2は、例えばサーバにより構成される。複数のユーザ端末3それぞれは、互いに同じ構成を有する。なお、本実施形態において、システムとは、1つまたはそれ以上の装置または構成要素からなるものである。したがって、例えば後述の情報処理装置2やユーザ端末3単体であっても情報処理システム1の一例となりうる。
【0017】
ユーザ端末3は、ユーザの操作に基づいて所定のゲームを実行する。そのために、ユーザ端末3は、通信ネットワーク11を介して、情報処理装置2からゲームプログラムおよびゲームデータを受信(具体的にはダウンロードおよびインストール)する。各ユーザには、ユーザ端末3に対応づけて、識別情報およびパスワードを含むアカウント情報が、ユーザごとに割り当てられている。このアカウント情報は、ログイン時、ユーザ端末3から情報処理装置2に送信され、情報処理装置2におけるユーザ認証に利用される。
【0018】
ユーザ認証を経て、情報処理装置2とユーザ端末3との相互通信が可能となる。ログイン後、ユーザ端末3は、ゲーム進行に必要なデータ(ゲーム進行状況に関するデータ)を情報処理装置2から受信すると、ユーザの操作に基づいてゲーム画像や音声をディスプレイ4aおよびスピーカ4bに出力しながら、ゲームを進行させる。
【0019】
2.1 ハードウェア構成
以下、
図1を参照して、情報処理システム1の各ハードウェア構成について説明する。
【0020】
<情報処理装置2>
図1に示されるように、情報処理装置2は、通信部21、記憶部22および制御部23を有する。通信部21および記憶部22は、通信バス20を介して制御部23と電気的に接続されている。
【0021】
通信部21は、インターネットおよびLANなどの通信ネットワーク11を介して各ユーザ端末3と通信可能に接続される、いわゆるネットワークインターフェースである。情報処理装置2が通信部21を介して受信する主な情報としては、ゲームプログラムのダウンロード要求情報、ユーザの操作に応じたガチャの抽選要求、クエスト実行要求、オートプレイの実行/終了の要求、アカウント情報、ゲームデータなどが挙げられる。情報処理装置2が通信部21を介して送信する主な情報としては、ゲームプログラムをユーザ端末3が受信したことを確認するための情報、ガチャにて得られたゲーム媒体に関する情報などが挙げられる。
【0022】
記憶部22は、HDD(Hard Disk Drive)、RAM(Random Access Memory)、ROM(Read Only Memory)およびSSD(Solid State Drive)などで構成される。記憶部22には、本実施形態にかかるゲームプログラムの一部を含む各種プログラムやゲームに関する各種データなどが記憶されている。
【0023】
具体的には例えば、記憶部22は、ユーザDBや抽選リストなどを記憶している。ユーザDBには、ゲームをプレイするユーザの識別番号ごとに、ユーザ名、ユーザランク、ユーザが操作するプレイヤキャラクタPCに関するステータス等の情報、仮想ゲーム空間内にて使用可能な消費媒体の額、パラメータに関する情報などが、対応付けられて記憶されている。抽選リストは、一般にガチャと呼ばれる抽選処理に用いるものであって、選択対象となるゲーム媒体に関する情報を複数含む。抽選リストには、ゲーム媒体に関する情報(名称、能力パラメータ、レアリティ、レベルなど)と、抽選による選択割合とが、対応づけられている。また能力パラメータとは、例えば、ゲーム媒体がプレイヤキャラクタPCの場合、戦力、HP、攻撃力、防御力、賢さ、または速さなどを含む。
【0024】
制御部23は、CPUおよび半導体メモリを含むマイクロコンピュータで構成され、自装置である情報処理装置2の動作を制御する。特に、制御部23は、記憶部22に記憶された所定のプログラムを読み出すことによって、自装置である情報処理装置2に係る種々の機能を実現する。すなわち、記憶部22に記憶されているソフトウェアによる情報処理が、ハードウェアの一例である制御部23によって具体的に実現されることで、後述の各機能部が実行されうる。なお、制御部23は単一であることに限定されず、機能ごとに複数の制御部23を有するように実施してもよい。またそれらの組合せであってもよい。
【0025】
制御部23によって実行される情報処理として、例えば、課金の決済処理、ユーザアカウントの認証処理、ガチャの抽選選択処理などが挙げられる。課金の決済処理は、例えばゲーム中のパラメータを所定量回復するために必要な課金の要求に基づいて実行される。ユーザアカウントの認証処理は、例えばユーザ端末3から受信したユーザの識別情報を用いて実行される。ガチャの抽選選択処理は、ガチャの抽選要求に伴って、抽選リストの中から、ゲーム媒体ごとの選択確率に基づいて1以上のゲーム媒体を抽選により選択する処理である。ガチャの抽選選択処理によれば、選択したゲーム媒体に関する情報と、抽選要求の送信元となる操作を行ったユーザの識別情報とが、ユーザDBにて関連付けられ、これにより、当該ユーザには、自身でガチャを引いた結果当選したゲーム媒体が付与される。
【0026】
ここで、上記をさらに補足すると、「ゲーム媒体」とは、ゲームに関する要素を表した電子データであって、プレイヤキャラクタPCとして使用するキャラクタの名称、プレイヤキャラクタPCが仮想ゲーム空間内にて使用するアイテム(武器、防具、道具)などが含まれる。ユーザは、ゲーム媒体を、課金による直接購入やクエストクリアの他、ガチャと呼ばれる抽選方法によって入手することができる。入手したゲーム媒体は、そのゲーム媒体を所有することとなったユーザの識別情報と対応づけて、ユーザDBに記憶され管理される。さらに、「ガチャ」とは、情報処理装置2にて、抽選リストの中から、所定の選択割合に基づき任意のゲーム媒体を抽選により選択する方法である。選択された任意のゲーム媒体は、ユーザのユーザ端末3に付与される。「ガチャで選択したゲーム媒体を、ユーザに付与する/ユーザが所有する」とは、「抽選処理で選択されたゲーム媒体を、ユーザを示す識別情報と関連づける/関連づけられている」ことと同義である。
【0027】
<ユーザ端末3>
ユーザ端末3には、ディスプレイ4a、スピーカ4bおよび入力デバイス4cが外部接続または内蔵される。また、ユーザ端末3は、通信部31、記憶部32、制御部33、グラフィック処理部34a、オーディオ処理部34bおよび操作部34cを有する。通信部31、記憶部32、グラフィック処理部34a、オーディオ処理部34bおよび操作部34cは、通信バス30を介して制御部33と電気的に接続されている。
【0028】
通信部31は、ユーザ端末3と情報処理装置2との間で各種データを送受信するために、通信ネットワーク11に通信可能に接続される、いわゆるネットワークインターフェースである。ユーザ端末3が通信部31を介して受信する主な情報としては、アカウント情報、新たなゲームデータのダウンロード要求情報、ガチャ実行要求、クエスト実行要求などが挙げられる。ユーザ端末3が通信部31を介して送信する主な情報としては、ダウンロード要求情報に応じて情報処理装置2から送られてきた新たなゲームデータ、抽選処理により選択されたゲーム媒体に関する情報などが挙げられる。
【0029】
記憶部32は、HDD、SSD、RAMおよびROMなどで構成される。記憶部32には、情報処理装置2からダウンロードしたゲームデータ、ゲームプログラムの一部を含む各種プログラム、自装置であるユーザ端末3のアカウント情報、ユーザ情報などが格納されている。なお、ユーザ情報は、情報処理装置2の記憶部22で記憶するユーザDBの少なくとも一部の情報である。ユーザDBでユーザ情報のマスタを管理し、ユーザ端末3の記憶部32は、このマスタの少なくとも一部の情報が情報処理装置2から配信され、これを記憶する。
【0030】
制御部33は、CPUおよび半導体メモリを含むマイクロコンピュータで構成され、自装置であるユーザ端末3の動作を制御する。特に、制御部33は、記憶部32に記憶された所定のプログラムを読み出すことによって、自装置であるユーザ端末3に係る種々の機能を実現する。すなわち、記憶部32に記憶されているソフトウェアによる情報処理が、ハードウェアの一例である制御部33によって具体的に実現されることで、後述の各機能部が実行されうる。なお、制御部33は単一であることに限定されず、機能ごとに複数の制御部33を有するように実施してもよい。またそれらの組合せであってもよい。
【0031】
特に、制御部33は、自装置であるユーザ端末3のユーザによる入力デバイス4cの操作に従って、ゲームを実行するように構成される。具体的には、制御部33は、ゲームデータに含まれる仮想ゲーム空間のオブジェクト5およびテクスチャなどのデータを記憶部32から読み出すか、または情報処理装置2から受信したデータを用いて、2次元または3次元のゲーム画像情報を生成する。ゲーム画像情報がグラフィック処理部34aによって処理されることにより、ディスプレイ4aには処理後のゲーム画像が逐次表示される。換言すると、制御部33は、ゲームの実行にあたり、自装置であるユーザ端末3のユーザの操作などに応じてディスプレイ4aの表示制御およびスピーカ4bの音声出力制御を行うように構成される。
【0032】
グラフィック処理部34aは、制御部33から出力されるゲーム画像情報に従って、キャラクタおよび仮想ゲーム空間に関する各種オブジェクトを含むゲーム画像を、動画形式で描画する。グラフィック処理部34aは、例えば液晶型であるディスプレイ4aと接続されており、動画形式に描画されたゲーム画像は、ゲーム画面としてディスプレイ4a上に表示される。オーディオ処理部34bは、スピーカ4bと接続され、制御部33の指示に従ってゲーム音声を再生および合成すると、これをスピーカ4bから出力させる。操作部34cは、入力デバイス4cと接続され、操作入力に関するデータを入力デバイス4cとの間で送受信する。ユーザは、入力デバイス4cを操作することで、ユーザ端末3に操作信号を入力する。なお、入力デバイス4cは、ディスプレイ4aと一体化されたタッチパネル、外付けのゲームパッド、マウスやキーボード等の総称である。
【0033】
2.2 機能構成
次に、情報処理装置2の制御部23の各機能構成について説明する。ここで、本実施形態に係るシステムは、情報処理システム1により実現され、特に制御部23により実現される。
【0034】
図2は、本実施形態に係る情報処理装置2のうち、制御部23の機能構成を示すブロック図である。制御部23は、記憶部22に記憶された各種プログラムを実行することにより、受付部231と、ゲーム制御部232と、表示制御部233と、調整部234と、決定部235と、マッチング部236として機能する。すなわち、記憶部22に記憶されているソフトウェアによる情報処理がハードウェアの一例である制御部23によって具体的に実現されることで、制御部23に含まれる各機能部として実行されうる。
【0035】
受付部231は、受付ステップを実行可能に構成される。受付ステップにおいて、受付部231は、通信部21または記憶部22を介して情報を受け付け、これを作業メモリに読出可能に構成される。特に、受付部231は、通信ネットワーク11および通信部21を介して種々の情報を受け付けるように構成される。本実施形態では、受付部231が受け付けた種々の情報は、記憶部22に記憶されるものとして説明する。
【0036】
特に、受付部231は、入力デバイス4cを介して行われたユーザによる操作入力を受け付け可能に構成される。操作入力は、所定のコマンド操作による動作指示、ディスプレイ4aに表示されたボタンの押下による操作指示等を含む。例えば、受付部231は、操作オブジェクト51の移動、攻撃、防御、アイテムの使用、魔法の使用、体力回復その他の行動を指示する操作入力を受け付ける。
【0037】
ゲーム制御部232は、制御ステップを実行可能に構成される。制御ステップにおいて、本実施形態において、ゲーム制御部232は、仮想空間に配置されたオブジェクト5同士が戦闘を行うシューティングゲームの演算処理を実行してゲームを進行させる。詳細は後述する。なお、制御ステップとして、後述する特定の試合形式に基づいて対戦が進行されるゲームが例示されるが、ゲーム制御部232が実行する制御ステップはゲームに限定されず、仮想空間におけるオブジェクト5の各種制御を実行するものであればよい。例えば、各ユーザが仮想空間における特定のシナリオに沿って行動していくゲーム以外にも、仮想空間における特定のシナリオが存在せず、各ユーザが自由に活動することが可能な、所謂メタバースであってもよい。
【0038】
表示制御部233は、表示ステップを実行可能に構成される。表示ステップにおいて、表示制御部233は、記憶部32に記憶された種々の情報またはこれらを含む画面等を、ユーザ端末3で視認可能な態様で表示させる。具体的には、表示制御部233は、画面、画像、アイコン、メッセージ等の視覚情報を、ユーザ端末3のディスプレイ4aに表示させるように制御する。表示制御部233は、視覚情報をユーザ端末3に表示させるためのレンダリング情報だけを生成するものであってもよい。
【0039】
調整部234は、調整ステップを実行可能に構成される。調整ステップにおいて、調整部234は、条件を満たした場合、オブジェクト5に対応付けられた判定領域7の調整処理を実行する。詳細は後述する。
【0040】
決定部235は、決定ステップを実行可能に構成される。決定ステップにおいて、決定部235は、オブジェクト5に対する動作の操作入力を受け付けた場合、操作オブジェクト51の位置6と、標的オブジェクト52の位置6とに基づいて当たり判定を実行する。詳細は後述する。
【0041】
マッチング部236は、マッチングステップを実行可能に構成される。マッチングステップにおいて、マッチング部236は、複数のユーザの中から試合の対戦相手または試合のチームメンバーとなる少なくとも一人を候補者として選択する。詳細は後述する。
【0042】
3.種々の情報と用語の説明
本節では、情報処理システム1によって扱われる種々の情報、用語等について説明する。
【0043】
本実施形態の情報処理システム1で進行されるシューティングゲームは、例えば、FPS(First Person Shooter)である。FPSとは、ユーザにより操作されるプレイヤキャラクタPCなど一人称視点で見た画面でプレイするゲームである。試合形式は、例えば、他のプレイヤキャラクタPCまたはノンプレイヤキャラクタNPCと対戦するものであり、典型的には特定のプレイヤキャラクタPCまたはノンプレイヤキャラクタNPCが生き残るまで対戦が継続されるバトルロワイヤル形式である。表示制御部233は、ゲームの試合中、仮想空間をユーザのディスプレイ4aに表示させる。ユーザは、仮想空間のいずれかの位置6に配置されたプレイヤキャラクタPCを操作することにより、プレイヤキャラクタPCの標的である標的オブジェクト52に対して攻撃動作を実行することができる。なお、位置6とは、仮想空間におけるオブジェクト5が配置された座標を意味する。
【0044】
仮想空間に配置された各オブジェクト5には、予め少なくとも一つの判定領域7が設定されている。決定部235は、仮想空間に配置されたオブジェクト5同士が接触したか否かを判定する接触判定を行うことにより、攻撃が標的オブジェクト52にヒットしたか否かを決定する。本実施形態において、ユーザによる攻撃動作の実行に伴い標的オブジェクト52に対して動作するオブジェクト5を特に操作オブジェクト51と称する。
【0045】
情報処理システム1におけるゲームの進行は、フレームを単位として行われる。ゲーム制御部232は、フレーム毎に演算処理を実行し、その処理結果を含むステータス情報9をユーザ端末3に送信する。フレームとは、ゲームの進行にあたり演算処理、処理結果の送信、ゲーム画像の生成等が行われる時間間隔を示す1秒あたりに更新される画面数の単位は、fps(frames per second)で示される。ステータス情報9とは、そのフレームにおける各オブジェクト5の状態を示す情報であり、例えば、操作オブジェクト51の位置情報、移動方向、回転角度、移動速度、加速度を含む。
【0046】
一方、ユーザ端末3は、フレーム毎に、ユーザの操作入力に係る操作情報8をタイムスタンプ情報とともに情報処理装置2に送信する。操作情報8には、操作オブジェクト51の位置6を特定可能な情報が含まれる。例えば60fpsの場合、ユーザ端末3は、1/60秒毎に操作情報8を情報処理装置2に送信する。ゲーム制御部232は、ユーザ端末3から受信した操作情報8に基づいて演算処理を実行する。なお、制御部23は、過去数十フレーム分の操作情報8を必要に応じて参照可能である。ゲーム制御部232は、その処理結果に基づいてステータス情報9を更新する。表示制御部233は、更新されたステータス情報9をユーザ端末3に送信する。また、ユーザ端末3は、情報処理装置2から受信したステータス情報9に基づいて、仮想空間内でオブジェクト5を動作させる様子を示すゲーム画像をディスプレイ4aに送信する。このように、情報処理装置2およびユーザ端末3は、フレーム毎に上述の一連の処理を実行する。なお、上述した一連の処理の結果、ユーザ端末3のディスプレイ4aにおいて単位時間あたりに更新される画面数を本実施形態においてフレームレートと称する。なお、受付部231は、各ユーザ端末3からフレームレートを特定可能な情報を取得する。フレームレートを特定可能な情報とは、例えば、ユーザの選択により設定されたフレームレートの値、過去のクエストにおけるフレームレートの平均値等である。
【0047】
4.情報処理システム1の動作
本節では、前述した情報処理システム1の動作の流れについて説明する。
【0048】
4.1 情報処理の概要
図3は、情報処理システム1により実行される処理の流れの一例を示すアクティビティ図である。以下、このアクティビティ図に沿って情報処理の流れを概説する。好ましい態様の一例として、仮想空間内でユーザにより操作される操作オブジェクト51がノンプレイヤキャラクタNPCに攻撃動作を実行する場面を例に挙げて説明する。なお、ディスプレイ4aに表示された仮想空間が二次元の空間であり、判定領域7の形状が円形であるものとする。
【0049】
まず、表示制御部233は、標的オブジェクト52をディスプレイ4aに表示させる(アクティビティA101)。具体的には、表示制御部233は、標的オブジェクト52であるノンプレイヤキャラクタNPCのステータス情報9をネットワークおよび通信部31を介してユーザ端末3に送信する。ユーザ端末3の制御部33は、受信したステータス情報9を用いて標的オブジェクト52の位置6を更新したゲーム画像情報を生成する。ディスプレイ4aは、グラフィック処理部34aによって処理されたゲーム画像を表示させる。このゲーム画像を視認したユーザは、標的オブジェクト52に対する攻撃の操作指示を入力デバイス4cに入力する。ユーザ端末3の操作部34cは、入力デバイス4cを介して標的オブジェクト52に対する攻撃動作の操作入力を受け付ける。以下、対戦相手である標的オブジェクト52に対する、操作オブジェクト51による動作を特定動作と称する。制御部33は、この操作入力に係る情報を含む操作情報8を特定動作の操作入力を受け付けた時点を示すタイムスタンプ情報とともに情報処理装置2に送信する。
【0050】
受付部231は、ユーザ端末3から送信された操作情報8を受け付ける(アクティビティA102)。ゲーム制御部232は、操作情報8に基づいて、操作オブジェクト51に特定動作を実行させる。決定部235は、操作情報8に基づいて、受付部231が操作情報8を受け付けたタイミングにおける操作オブジェクト51の演算位置61を特定する(アクティビティA103)。決定部235は、その操作オブジェクト51に対応付けられた第1判定領域71の演算位置61を特定する(アクティビティA104)。
【0051】
また、決定部235は、受付部231が操作情報8を受け付けた時点のフレームにおける標的オブジェクト52の演算位置61aを特定する(アクティビティA105)。決定部235は、その標的オブジェクト52に対応付けられた第2判定領域72の演算位置61bを特定する(アクティビティA106)。
【0052】
ここで、決定部235は、操作情報8に基づいて、操作オブジェクト51による攻撃が標的オブジェクト52にヒットしたか否かを判定する(アクティビティA107)。具体的には例えば、決定部235は、特定された第1判定領域71と第2判定領域72との位置関係に基づいて、操作オブジェクト51による攻撃が標的オブジェクト52にヒットしたか否かを判定する。すなわち、決定部235は、第1判定領域71と第2判定領域72の位置関係に基づいて、特定動作による特定動作の結果を決定する。
【0053】
より具体的には、決定部235は、第1判定領域71と第2判定領域72とが接触したか否かに基づいて、操作オブジェクト51による攻撃が標的オブジェクト52にヒットしたか否かを判定する。第1判定領域71および第2判定領域72が接触したと判定された場合、決定部235は、攻撃がヒットしたものと決定する。すなわち、決定部235は、操作オブジェクト51の特定動作による効果が成立したと決定する。この場合、アクティビティA108~アクティビティA112をスキップしてアクティビティA113に進む。ここで、特定動作による効果とは、操作オブジェクト51による特定動作によって標的オブジェクト52に対して何らかの相互作用を発生させることであり、例えば、標的オブジェクト52にダメージを付与する作用を意味する。
【0054】
一方、第1判定領域71と第2判定領域72とが接触しなかったと判定された場合、決定部235は、演算位置61aと表示位置62aとのうち少なくとも一つに基づいて特定動作の結果を決定する。具体的には、決定部235は、演算位置61aと表示位置62aとの位置関係に基づいて特定動作の結果を決定する。演算位置61aは、特定動作の操作入力を受け付けた時点における、特定動作の演算処理に用いられる標的オブジェクト52の位置6である。表示位置62aは、特定動作の操作入力を受け付けた時点における、ディスプレイ4aに表示された標的オブジェクト52の位置6である。
【0055】
より具体的には例えば、決定部235は、受付部231が特定動作の操作入力を受け付けた時点における、演算位置61aと、第1ユーザ端末3aが特定動作の操作入力を受け付けた時点における表示位置62aと、の差に基づいて特定動作の結果を決定する。なお、特定動作の結果の決定は、当該差に基づいて決定することに限定されるものではないが、本実施形態においては主として特定動作の結果の決定を当該差に基づいて決定することについて例示することとし、具体的な処理の流れを以下説明する。
【0056】
一方、決定部235により特定動作による効果が成立しなかったと判定された場合、アクティビティA108に進む。アクティビティA108において、決定部235は、アクティビティA102で受け付けた操作情報8を参照する。決定部235は、タイムスタンプ情報と、ユーザ端末3のフレームレートとに基づいて、ユーザ端末3が特定動作の操作入力を受け付けたタイミングでディスプレイ4aに表示されていた表示位置62aを特定する(アクティビティA109)。また、決定部235は、その標的オブジェクト52に対応付けられた第2判定領域72の表示位置62bを特定する(アクティビティA110)。
【0057】
決定部235は、演算位置61bと表示位置62bとの差を特定する。具体的には、決定部235は、第2判定領域72それぞれを構成する円63の中心座標73の2点間の距離64を算出する。そして、決定部235は、距離64が閾値以上であるか否かを判定する。
【0058】
距離64が閾値以上であると判定された場合、調整部234は、第1判定領域71の範囲と第2判定領域72の範囲とのうち少なくとも1つを調整する。具体的には例えば、調整部234は、第2判定領域72の範囲を拡大する(アクティビティA111)。より具体的には、調整部234は、第2判定領域72の円63の半径を1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2倍に拡大する。このように、調整部234は、調整処理が実行される前の第1判定領域71および第2判定領域72の位置関係に基づいて、特定動作による効果が成立しなかった場合、演算位置61bと、表示位置62bとの差が閾値以上であることを条件として、調整処理を実行する。
【0059】
続いて、調整部234は、第1判定領域71と調整処理が行われた第2判定領域72とが接触したか否かに基づいて、第1判定領域71と第2判定領域72とが接触したか否かを再度判定する(アクティビティA112)。つまり、決定部235は、調整処理が実行される前の第1判定領域71と第2判定領域72の位置関係に基づいて、特定動作による効果が成立しなかった場合、調整処理の実行後、特定動作の結果を決定する。
【0060】
そして、ゲーム制御部232は、決定された結果に基づいて、各オブジェクト5のステータス情報9を更新する(アクティビティA113)。表示制御部233は、更新されたステータス情報9をユーザ端末3に送信する(アクティビティA114)。そして、ユーザ端末3の制御部33は、受信したステータス情報9を用いてゲーム画像情報を生成する。グラフィック処理部34aは、ゲーム画像情報に基づいて描画し、映像信号に変換してディスプレイ4aに送信する。ディスプレイ4aは、映像信号に基づいてゲーム画像を表示させる(アクティビティA115)。
【0061】
<まとめ>
以上をまとめると、本実施形態に係る情報処理装置2が実行する情報処理方法は、次の各ステップを備える。表示ステップでは、仮想空間をユーザのディスプレイ4aに表示させる。受付ステップでは、ユーザ端末3からユーザの操作入力を受け付ける。制御ステップでは、ユーザの操作入力に基づいて操作オブジェクト51に特定動作を実行させる。特定動作は、標的オブジェクト52に対する動作である。特定動作は、仮想空間のいずれかの位置に操作オブジェクト51および標的オブジェクト52が配置される。決定ステップでは、特定動作の操作入力を受け付けた時点における、特定動作の演算処理に用いられる標的オブジェクト52の位置である演算位置61と、ユーザのディスプレイ4aに表示された標的オブジェクト52の位置である表示位置62と、の差に基づいて特定動作の結果を決定する。
【0062】
また、別の態様によれば、本実施形態に係るプログラムは、コンピュータに、次の各ステップを実行させる。表示ステップでは、仮想空間をユーザのディスプレイ4aに表示させる。受付ステップでは、ユーザ端末3からユーザの操作入力を受け付ける。制御ステップでは、ユーザの操作入力に基づいて操作オブジェクト51に特定動作を実行させる。特定動作は、標的オブジェクト52に対する動作である。特定動作は、仮想空間のいずれかの位置に操作オブジェクト51および標的オブジェクト52が配置される。決定ステップでは、特定動作の操作入力を受け付けた時点における、特定動作の演算処理に用いられる標的オブジェクト52の位置である演算位置61と、ユーザのディスプレイ4aに表示された標的オブジェクト52の位置である表示位置62と、の差に基づいて特定動作の結果を決定する。
【0063】
このような態様によれば、情報処理システム1は、プレイ環境に配慮したゲームの提供を支援する技術を提供することができる。特に、通常では、ユーザはディスプレイ4aに表示された標的オブジェクト52を見ながら正確に照準を合わせて射撃を行った場合でも、実際のヒットの判定ではユーザが見ていた標的オブジェクト52の表示位置62とは異なる演算位置61を用いて判定が行われる。そのため、ユーザが想定していた結果とは異なる結果となり得る。これに対して、本実施形態によれば、標的オブジェクト52の表示位置62と演算位置61との差に基づいて判定が実行されるため、ユーザが使用するユーザ端末3の表示遅延が大きい場合にも、これによって不利にならずに試合を進めることができる。
【0064】
4.2 情報処理の詳細
続いて、イメージ図を参照しながら、前節で説明した情報処理の詳細をさらに説明する。
【0065】
図4は、判定領域7の一例を示すイメージ図である。判定領域7の形状は、特に限定されないが、例えば、円形、球形、円柱形、四角形、楕円である。
図4で示すように、例えば、矢で示される操作オブジェクト51には、矢先を中心座標73とする第1判定領域71が設定される。例えば、標的オブジェクト52には、胴体を中心座標73とする円形の第2判定領域72が設定される。また、判定領域7が設定されるオブジェクト5には、プレイヤキャラクタPCから出射される弾、矢、レーザ等のオブジェクト5、キャラクタCの攻撃動作に伴って仮想空間に出現する各種エフェクトが含まれる。判定領域7の大きさ、数等は、オブジェクト5の形状、大きさ、種類等に応じて設定される。また、標的オブジェクト52に対して、例えば身体の部位ごとに複数の第2判定領域72が設定され得る。
【0066】
図5は、第1判定領域71と第2判定領域72とが接触した様子を示すイメージ図である。
図5で示すように、決定部235は、特定動作によって操作オブジェクト51の位置6が標的オブジェクト52に向かって移動したことで、第1判定領域71と第2判定領域72が接触した場合、攻撃が標的オブジェクト52にヒットしたものと判定する。なお、決定部235は、かかるヒット判定をフレーム毎に複数回にわたって実行する。
【0067】
図6は、フレーム毎の処理の流れを示すイメージ図である。点線矢印で示されるように、ゲーム制御部232は、演算処理の実行を周期的に繰り返し、その処理結果を含むステータス情報9をユーザ端末3に送信する。ユーザ端末3は、ユーザの操作入力に係る操作情報8を周期的に情報処理装置2に送信する。また、ユーザ端末3は、受信したステータス情報9を用いてゲーム画像情報を生成し、映像信号に変換してディスプレイ4aに送信する。
図6では、フレームレートが8fpsである場合の例が示される。すなわち、125msごとに映像信号の送信が繰り返される場合の例が示される。なお、本図において、ディスプレイ4aは、ユーザ端末3から映像信号を受信する度に画面切替であるリフレッシュ処理を行い、そのリフレッシュの処理はユーザ端末3による映像信号の送信と同じ周期で実行される場合の例が示したが、これに限らない。
【0068】
画面601~画面605は、それぞれ各フレームでディスプレイ4aに表示される画面を示す。特に、画面601は、フレームF4のタイミングでディスプレイ4aに表示された画面を示す。フレームF4におけるタイミングT1は、ユーザ端末3がユーザによる特定動作の実行を指示する操作入力を受け付けたタイミングを示す。すなわち、画面601は、ユーザ端末3が特定動作の操作入力を受け付けた時点における標的オブジェクト52の表示位置62aを示す。この場合、ユーザは、画面601を見ながら標的オブジェクト52に対する特定動作の操作入力をしたことを示す。
【0069】
一方、ユーザ端末3は、特定動作の操作入力を受け付けると、かかる操作情報8を情報処理装置2に送信するとともに、特定動作に係る画像生成処理を実行する。特定動作が標的オブジェクト52に向けて銃を発砲する行為である場合、ユーザ端末3は、その発砲を行ったタイミングでのプレイヤキャラクタPCの位置6、発砲方向、発砲されたタイミングで等を含む操作情報8、および発砲の操作入力を受け付けたタイミングを示すタイムスタンプ情報を情報処理装置2に送信する。
【0070】
また、情報処理装置2は、銃の発砲モーションを示すゲーム画像を生成し、ディスプレイ4aに送信する。画面603は、銃の発砲モーションとして、プレイヤキャラクタPCから発砲された弾丸である操作オブジェクト51が描画されたゲーム画像の例を示す。その後、情報処理装置2から銃のヒット判定結果を受け付けた場合、情報処理装置2は、その結果に応じたゲーム画像を生成し、映像信号に変換してディスプレイ4aに送信する。画面605は、特定動作の結果として、銃がノンプレイヤキャラクタNPCに的中した場合のゲーム画像の例を示す。
【0071】
一方、画面611~画面613は、情報処理装置2により処理が行われる各タイミングにおける標的オブジェクト52の演算位置61を示す。特に画面612は、タイミングT1でユーザ端末3が受け付けた特定動作の演算処理が実行されるタイミングT2での標的オブジェクト52の演算位置61aを示す。このように、情報処理装置2で演算処理された標的オブジェクト52の位置6がユーザ端末3に表示されるタイミングが異なることで、演算位置61aにおける標的オブジェクト52の位置6と表示位置62aにおける標的オブジェクト52の位置6は異なり得る。
【0072】
図7は、フレームレートが12fpsである処理の流れを示すイメージ図である。
図7の例において、ユーザ端末3は、約83msごとにディスプレイ4aに対する映像信号の送信を実行する。画面701~画面705は、それぞれ各フレームでディスプレイ4aに表示される画面を示す。特に、画面601は、タイミングT1でディスプレイ4aに表示された画面を示す。一方、画面711~画面713は、情報処理装置2により処理が行われる各タイミングでの標的オブジェクト52の演算位置61を示す。特に画面712では、タイミングT1でユーザ端末3が受け付けた特定動作の演算処理が実行されるタイミングT2での標的オブジェクト52の演算位置61aを示す。
【0073】
図8は、画面601、画面612、画面701および画面712を拡大表示させたイメージ図である。
図8で示すように、異なるフレームレートにおける演算位置61および表示位置62を比較した場合、フレームレートが低いほど演算位置61と表示位置62の差が大きくなる。具体的には、フレームレートが12fpsである場合より8fpsである場合の方が演算位置61と表示位置62の差が大きくなる。このように、標的オブジェクト52の位置6の差は、ディスプレイ4aにおいてフレームレートに基づいて算出される。フレームレートがユーザにより選択されたものである場合、ユーザによって設定されたフレームレートに基づいて算出される。これにより、決定部235は、ユーザのプレイ環境に合わせて適切な判定処理を実行することができる。
【0074】
図9は、標的オブジェクト52に対応付けられた第2判定領域72の演算位置61bおよび表示位置62bの距離64を示すイメージ図である。標的オブジェクト52は、矢印901の方向に移動したとする。ここで、決定部235は、演算位置61bに対応する第2判定領域72を構成する円63の中心座標73aを特定するとともに、表示位置62bに対応する円63の中心座標73bを特定する。続いて、決定部235は、中心座標73aおよび中心座標73bの2点間の距離64を算出する。そして、決定部235は、距離64が閾値以上であるか否かを判定する。閾値は、判定対象となる第2判定領域72の大きさ、形状等により異なり得るが、例えば、閾値は、距離64が円63の半径以上であることである。具体的例えば、閾値は、距離64が円63の半径の1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2,3,4,5,6,7,8,9,10倍以上であることであり、ここで例示した数値の何れか2つの間の範囲内であってもよい。
図9の例では、距離64が円63の半径の5倍である状態の例が示される。
【0075】
図10は、調整部234による調整前後の標的オブジェクト52の第2判定領域72を示すイメージ図である。第2判定領域72cは、調整部234による調整前の第2判定領域72を示し、第2判定領域72dは、調整部234による調整後の第2判定領域72を示す。
図10で示されるように、調整部234は、標的オブジェクト52の第2判定領域72を拡大する調整処理を実行する。例えば、調整部234は、標的オブジェクト52の移動軌跡に対応する方向に第2判定領域72を拡大する調整処理を実行する。これにより、標的オブジェクト52の演算位置61と表示位置62が閾値以上異なる場合、演算位置61と表示位置62の間に対して第2判定領域72が拡張され、表示遅延によるヒット判定のズレを考慮した判定が実行可能となる。そして、調整後の第2判定領域72を用いて決定部235が特定動作のヒット判定を実行する際、操作オブジェクト51による攻撃が的中しやすくなる。
【0076】
図11は、ディスプレイ4aに表示される画面の一例を示すイメージ図である。例えば、表示制御部233は、ゲーム起動時またはゲームの試合前後にメニュー表示エリア1101を表示させる。メニュー表示エリア1101は、例えば、複数の操作ボタン1102を含む。操作ボタン1102は、各操作ボタン1102等に対応する画面の表示指示を受け付けるウィジェットである。
図11では、「設定」と表示された操作ボタン1102が選択された状態の画面が示される。「設定」と表示された操作ボタン1102が選択された場合、表示制御部233は、各種設定エリア1103を表示させる。各種設定エリア1103において、ユーザは、試合中のフレームレートを設定することができる。
図11の例では、「60fps」が設定された状態の例が示される。ユーザにより任意のfpsが選択された状態で設定完了ボタン1104が押下されると、選択されたfpsで試合が進行する。なお、
【0077】
図12は、ディスプレイ4aに表示される画面の一例を示すイメージ図である。
図11では、「マルチ」と表示された操作ボタン1102が選択された状態の画面が示される。「マルチ」と表示された操作ボタン1102が選択された場合、表示制御部233は、マルチプレイ設定エリア1201を表示させる。マルチプレイ設定エリア1201において、ユーザは、マルチプレイで試合を行う際のマッチング条件を指定することができる。マッチング条件は、例えば、自身とプレイヤキャラクタPCのレベルが近いこと、自分とゲームのプレイ環境が近いことである。
図12の例では、「自身とプレイヤキャラクタPCのレベルが近いこと」が選択された状態の画面が示される。
【0078】
また、マルチプレイ設定エリア1201は、メンバー募集開始ボタン1202およびパーティ参加ボタン1203を含む。メンバー募集開始ボタン1202またはパーティ参加ボタン1203を選択することにより、ユーザは、チームのホストまたはメンバーとして、試合に参加することができる。メンバー募集開始ボタン1202が選択された場合、表示制御部233は、
図13で示すメンバー募集画面1301に遷移させる。一方、パーティ参加ボタン1203が選択された場合、表示制御部233は、メンバーを募集しているパーティの参加画面に遷移させる。
【0079】
図13は、メンバー募集画面1301の一例を示すイメージ図である。メンバー募集画面1301が選択された場合、マッチング部236は、マッチング条件に基づいて、対戦相手の候補として表示させるメンバー募集画面1301を表示させる。ここで、マッチング条件に「ユーザ自身とゲームのプレイ環境が近いこと」が含まれる場合、マッチング部236は、各ユーザ端末3から取得したフレームレートに基づいて、候補者となるユーザを選択する。例えば、マッチング部236は、互いのフレームレートが所定の範囲内にあるユーザ同士をマッチングさせる。
図13では、ユーザにより設定されたフレームレートが60FPSであり、設定されたフレームレートとのフレームレートの差が15fps以下であるユーザがマッチングされた場合の例が示される。
【0080】
ここで、
図13に示すように、表示制御部233は、各候補者が使用するユーザ端末3のフレームレートを示す表示1302を表示させる。候補者に通信環境が不安定なユーザが含まれる場合、表示制御部233は、その旨を示す通信環境表示1303を表示させる。ユーザは、表示された候補者を対戦相手として試合を開始したい場合、試合開始ボタン1304を押下することで試合を開始することができる。一方、ユーザは、マッチングをやり直したい場合、やり直しボタン1305を押下することで、候補者を別のユーザに変更することができる。この場合、マッチング部236は、例えば、選択された候補者とは異なる複数のユーザの中から新たな候補者を選択する。
【0081】
図14は、試合開始前に表示される警告1401の一例を示すイメージ図である。表示制御部233は、マッチングされた対戦者同士のフレームレートの差が閾値以上である場合、試合開始前または試合中に警告1401を表示される。警告1401は、フレームレートが低い対戦者が別の対戦者に対して攻撃を実行する際、攻撃を受けた対戦者により操作されるオブジェクト5に対応付けられた判定領域7の調整処理を実行する旨を示す表示である。このまま試合を開始したい場合、ユーザは、操作ボタン1402を押下することで、試合を開始することができる。一方、操作ボタン1403が押下された場合、
図13で示す画面に戻り、マッチングをやり直すことができる。これにより、ユーザは、試合中にヒット判定の調整処理が行われ得る旨をユーザが予め確認した上で、試合を開始することができる。
【0082】
[その他]
前述の実施形態に係る情報処理システム1に関して、以下のような態様を採用してもよい。
【0083】
上述の実施形態では、対戦相手がノンプレイヤキャラクタNPCである場合を主たる例としたが、対戦相手が他のユーザにより操作されるプレイヤキャラクタPCであってもよい。以下において、マッチング部236により複数のユーザの中からマッチングされた2名のユーザ(第1ユーザと第2ユーザ)が試合を行う場合を例に説明する。また、説明上の主たるユーザを第1ユーザと称し、対戦相手であるユーザを第2ユーザと称する。
【0084】
図15は、第1ユーザおよび第2ユーザによる試合における処理の流れを示すイメージ図である。
図15では、第2ユーザに対応する第2ユーザ端末3bのフレームレートが第1ユーザに対応するユーザ端末3のフレームレートよりも低い場合の例が示される。
【0085】
第1オブジェクト5aは、第1ユーザ端末3aにおいて操作オブジェクト51として動作するオブジェクト5である。換言すると、第1オブジェクト5aは、第1ユーザ端末3aを介した第1ユーザの第1操作入力に基づいて動作する操作オブジェクト51である。第2オブジェクト5bは、第2ユーザ端末3bにおいて操作オブジェクト51として動作するオブジェクト5である。換言すると、第2オブジェクト5bは、第2ユーザ端末3bを介した第2ユーザの第2操作入力に基づいて動作する操作オブジェクト51である。
【0086】
ゲーム制御部232は、第1オブジェクト5aと、第2オブジェクト5bとを仮想空間に配置して、仮想空間におけるゲームを進行させる。そして、ゲーム制御部232は、第1オブジェクト5aに特定動作を実行させる。この場合の標的オブジェクト52は第2オブジェクト5bであるので、この場合の特定動作は、第2オブジェクト5bに対する動作を示す。また、ゲーム制御部232は、第2オブジェクト5bに特定動作を実行させる。この場合の標的オブジェクト52は第1オブジェクト5aであるので、この場合の特定動作は、第1オブジェクト5aに対する動作を示す。
【0087】
図15に含まれる各画面は、第2オブジェクト5bおよび第1オブジェクト5aの表示位置62を示す。説明の都合上、第1オブジェクト5aは、各画面に含まれるA~Fに対応するマス目を移動するものとする。また、第2オブジェクト5bは、a~fと対応するマス目を移動するものとする。
【0088】
各ユーザ端末3が受け付けた操作入力は情報処理装置2に送信され、受付部231は、第1ユーザ端末3aから第1操作入力を受け付けるとともに、第2ユーザ端末3bから第2操作入力を受け付ける。第1ユーザ端末3aは、第1オブジェクト5aをAからFまで移動させる第1操作入力を受け付ける。一方、第2ユーザ端末3bは、第2オブジェクト5bをaからdまで移動する第2操作入力を受け付ける。具体的には、
図15で示した各タイミングでそれぞれ操作入力を受け付ける。
【0089】
タイミングTa~タイミングTcは、第2ユーザ端末3bが第2操作入力を受け付けたタイミングを示す。
タイミングTaは、「第2オブジェクト5bをaからbに移動する」という第2操作入力を第2ユーザ端末3bが受け付けたタイミングを示す。
タイミングTbは、「第2オブジェクト5bをbからcに移動する」という第2操作入力を第2ユーザ端末3bが受け付けたタイミングを示す。
タイミングTcは、「第2オブジェクト5bをcからdに移動する」という第2操作入力を第2ユーザ端末3bが受け付けたタイミングを示す。
【0090】
タイミングTd~タイミングThは、第1ユーザ端末3aが第1操作入力を受け付けたタイミングを示す。
タイミングTdは、「第1オブジェクト5aをAからBに移動する」という第1操作入力を第1ユーザ端末3aが受け付けたタイミングを示す。
タイミングTeは、「第1オブジェクト5aをBからCに移動する」という第1操作入力を第1ユーザ端末3aが受け付けたタイミングを示す。
タイミングTfは、「第1オブジェクト5aをCからDに移動する」という第1操作入力を第1ユーザ端末3aが受け付けたタイミングを示す。
タイミングTgは、「第1オブジェクト5aをDからEに移動する」という第1操作入力を第1ユーザ端末3aが受け付けたタイミングを示す。
タイミングThは、「第1オブジェクト5aをEからFに移動する」という第1操作入力を第1ユーザ端末3aが受け付けたタイミングを示す。
タイミングTiは、タイミングTaで第2ユーザ端末3bが受け付けた第2操作入力と、タイミングTdで第1ユーザ端末3aが受け付けた第1操作入力とに基づく演算処理が情報処理装置2で実行されるタイミングを示す。
【0091】
ここで、タイミングTaで第2ユーザ端末3bが受け付けた第2操作入力は、情報処理装置2に送信され、タイミングTiで処理される。この処理結果は第1ユーザ端末3aおよび第2ユーザ端末3bに送信され、画面1504で示すように、第1ユーザ端末3aと接続するディスプレイ4aに反映される。このように、第2ユーザが行った操作入力は情報処理装置2で処理された後、第1ユーザが使用する第1ユーザ端末3aのディスプレイ4aに反映される。
【0092】
画面1501~画面1506は、タイミングTd~タイミングThのそれぞれのタイミングで、第1ユーザが視認するディスプレイ4aに表示された第1オブジェクト5aの表示位置62cおよび第2オブジェクト5bの表示位置62dを示す。画面1511~画面1536は、タイミングTa~タイミングTcのそれぞれのタイミングで、第2ユーザが視認するディスプレイ4aに表示された第1オブジェクト5aの表示位置62cおよび第2オブジェクト5bの表示位置62dを示す。
【0093】
タイミングTAで第2ユーザ端末3bが受け付けた「第1オブジェクト5aに対する攻撃」という第2操作入力は、タイミングTCで処理される。タイミングTAで第2ユーザのディスプレイ4aに表示された第1オブジェクト5aの表示位置62は、「B」である(画面1512参照)。
【0094】
ここで、マルチプレイにおいて、演算位置61は、標的オブジェクト52の操作入力がユーザ端末3において受け付けられた時点を特定する情報に基づいて特定される。この場合、標的オブジェクト52は第1オブジェクト5aであるため、演算位置61は、第1操作入力が第1ユーザ端末3aにおいて受け付けられた時点を特定する情報に基づいて特定される。決定部235は、タイムスタンプ情報に基づいて、第2ユーザ端末3bが特定動作の操作入力を受け付けた直前に、第1ユーザ端末3aにより受け付けられた第1操作入力に基づいて、第1オブジェクト5aの演算位置61を特定する。
【0095】
タイミングTAの前のタイミングTgで第1ユーザ端末3aは、「第1オブジェクト5aをDからEに移動する」という第1操作入力を受け付けている。また、第1ユーザ端末3aは、タイミングTAの後のタイミングThで「第1オブジェクト5aをEからFに移動する」という第1操作入力を受け付けている。この場合、かかる攻撃のヒット判定が処理される際の第1オブジェクト5aの演算位置61はタイミングTAで第1操作入力が受け付けられている「E」となる。つまり、決定部235は、第1オブジェクト5aの表示位置62「B」と、第1オブジェクト5aの演算位置61「E」は3コマ分の距離64があるものと特定する(イメージ1500参照)。
【0096】
一方、タイミングTBで第1ユーザ端末3aが受け付けた「第2オブジェクト5bに対する攻撃」という第1操作入力は、タイミングTCで処理される。また、画面1506で示すように、タイミングTBで第1ユーザのディスプレイ4aに表示された第1オブジェクト5aの表示位置62は、「c」となる。一方、かかる攻撃動作のヒット判定を行う際の演算位置61は、第2操作入力が第2ユーザ端末3bにおいて受け付けられた時点を特定する情報に基づいて特定される。決定部235は、タイムスタンプ情報に基づいて、第1ユーザ端末3aが特定動作の操作入力を受け付ける直前に、第2ユーザ端末3bにより受け付けられた第2操作入力に基づいて、第2オブジェクト5bの演算位置61を特定する。これにより、対戦相手のプレイ環境および通信遅延を考慮したヒット判定を実行することができる。ここでは、タイミングTBの前に第2ユーザ端末3bから「第2オブジェクト5bをcからdに移動する」という第2操作入力を受け付けているため、かかる攻撃のヒット判定が処理される際の第2オブジェクト5bの演算位置61は「d」である。つまり、決定部235は、第2オブジェクト5bの表示位置62「c」と、第2オブジェクト5bの演算位置61「d」は1コマ分の距離64があるものと特定する(イメージ1500参照)。
【0097】
ここで、決定部235は、試合中、各ユーザの視点からみてそれぞれ対戦相手となる標的オブジェクト52の演算位置61と表示位置62の差が最も大きいユーザが有利となるように特定動作の結果を決定する。具体的には、決定部235は、複数のユーザの中で、この差が大きいユーザによる攻撃のヒット判定の際、調整部234による調整処理の実行後に特定動作の結果を決定する。
【0098】
例えば、決定部235は、第2ユーザの差が第1ユーザの差よりも大きい場合、第2ユーザに有利となるように特定動作の結果を決定する。具体的には、決定部235は、第2オブジェクト5bによる第1オブジェクト5aに対する特定動作が実行された場合、第1オブジェクト5aに対応付けられた判定領域7aと第2オブジェクト5bに対応付けられた判定領域7bとが接触するか否かを判定する。そして、判定領域7aおよび判定領域7bが接触しないと判定された場合、決定部235は、判定領域7bと調整部234による調整処理後の判定領域7aとに基づいて判定領域7aと判定領域7bとが接触するか否かを判定する。そして、ゲーム制御部232は、決定された結果に基づいて、第1オブジェクト5aおよび第2オブジェクト5bのステータス情報9を更新する。
【0099】
一方、決定部235は、第1ユーザの差が第2ユーザの差よりも大きい場合、第1ユーザに有利となるように特定動作の結果を決定する。具体的には、決定部235は、第1オブジェクト5aによる第2オブジェクト5bに対する特定動作が実行された場合、第1オブジェクト5aに対応付けられた判定領域7aと第2オブジェクト5bに対応付けられた判定領域7bとが接触するか否かを判定する。そして、判定領域7aおよび判定領域7bが接触しないと判定された場合、決定部235は、判定領域7aと調整部234による調整処理後の判定領域7bとに基づいて判定領域7aと判定領域7bとが接触するか否かを判定する。これにより、表示遅延が最も大きいユーザが攻撃動作を実行する際に判定領域7の調整処理が行われ、プレイ環境の関係上、最も不利なユーザに対して判定処理の是正が行われる。
【0100】
図15の例では、第2ユーザの方が演算位置61と表示位置62の差が大きいため、決定部235は、第2ユーザに有利となるように特定動作の結果を決定する。例えば、調整部234は、タイミングTAにおける特定動作のヒット判定に用いる操作オブジェクト51の第2判定領域72を拡大する調整処理を実行する。そして、決定部235は、調整後の第2判定領域72に基づいて、かかる特定動作のヒット判定を実行する。
【0101】
上述の実施形態では、各ユーザの視点からみた標的オブジェクト52の演算位置61と表示位置62の差が最も大きいユーザが攻撃動作を実行した際に、調整処理を実行する場合を例に示したが、これに限られない。例えば、どのユーザが他のユーザの操作オブジェクト51に対して攻撃動作を実行しても、調整処理後の判定領域7に基づいて判定領域7の接触判定を実行してもよい。この場合、それぞれの差に応じて調整が実行され、結果として差が大きい方が有利になり得る。
【0102】
上述の実施形態では、調整部234は、標的オブジェクト52に対応付けられた第2判定領域72の調整処理を実行する場合の例を示したが、これに限られない。例えば、調整部234は、操作オブジェクト51に対応付けられた第1判定領域71の調整処理を実行してもよい。
【0103】
調整部234は、判定領域7の演算位置61bと表示位置62bの距離64の大きさに応じて第2判定領域72の範囲を変化せてもよい。例えば、調整部234は、距離64が大きいほど、第2判定領域72の拡張の度合いを大きくしてもよい。つまり、調整部234は、標的オブジェクト52の演算位置61aと表示位置62aとの差が大きいほど第2判定領域72を拡大させてもよい。
【0104】
調整部234は、特定動作の攻撃モーションが継続している間、継続的に調整処理を実行してもよい。例えば、攻撃モーションが20フレームにわたり実行されるものである場合、調整部234は、この20フレームの間のヒット判定に際して、調整処理を実行してもよい。
【0105】
調整部234は、標的オブジェクト52の特定の部位の第2判定領域72のみを調整してもよい。例えば、調整部234は、標的オブジェクト52に対応付けられた第2判定領域72の中で、最も操作オブジェクト51の第1判定領域71に近い位置6にある第2判定領域72のみを調整する。また、調整部234は、第2判定領域72の半径を拡大する調整処理を実行してもよい。
【0106】
上述の実施形態では、第1ユーザ端末3aが特定動作の操作入力を受け付けた時点でディスプレイ4aに表示された標的オブジェクト52の位置である表示位置62に基づいて特定動作の結果が決定される場合を例に示したが、これに限られない。例えば、決定部235は、受付部231が特定動作の操作入力を受け付けた時点における演算位置61aと、受付部231が特定動作の操作入力を受け付けた時点でディスプレイ4aに表示された表示位置62aと、差に基づいて特定動作の結果を決定してもよい。
【0107】
上述の実施形態では、アクティビティA107において、決定部235により特定動作による効果が成立しなかったと判定された場合、アクティビティA108~アクティビティA112の処理を実行する場合を例に示したが、これに限られない。例えば、アクティビティA107における判定結果にかかわらず、アクティビティA108~アクティビティA112の処理を実行する態様でもよい。
【0108】
本実施形態では、受付部231、ゲーム制御部232、表示制御部233、調整部234、決定部235およびマッチング部236を、情報処理装置2の制御部23によって実現される機能部として説明しているが、この少なくとも一部を、ユーザ端末3の制御部33によって実現される機能部として実施してもよい。
【0109】
さらに、次に記載の各態様で提供されてもよい。
【0110】
(1)情報処理装置であって、制御部を備え、前記制御部は、表示ステップと、受付ステップと、制御ステップと、決定ステップとを実行するように構成され、前記表示ステップでは、仮想空間をユーザのディスプレイに表示させ、前記受付ステップでは、ユーザ端末から前記ユーザの操作入力を受け付け、前記制御ステップでは、前記ユーザの操作入力に基づいて前記操作オブジェクトに特定動作を実行させ、前記特定動作は、標的オブジェクトに対する動作で、前記仮想空間のいずれかの位置に前記操作オブジェクトおよび標的オブジェクトが配置され、前記決定ステップでは、前記特定動作の操作入力を受け付けた時点における、前記特定動作の演算処理に用いられる前記標的オブジェクトの位置である演算位置と、前記ユーザの前記ディスプレイに表示された前記標的オブジェクトの位置である表示位置と、の差に基づいて前記特定動作の結果を決定する、情報処理装置。
【0111】
(2)上記(1)に記載の情報処理装置において、前記制御部は、調整ステップをさらに実行するように構成され、前記調整ステップでは、前記差に基づいて前記操作オブジェクトに対応付けられた第1判定領域の範囲と前記標的オブジェクトに対応付けられた第2判定領域の範囲とのうち少なくとも1つを調整する調整処理を実行し、前記決定ステップでは、前記調整処理の後、前記特定動作によって前記第1判定領域と前記第2判定領域の位置関係に基づいて、前記特定動作の結果を決定する、情報処理装置。
【0112】
(3)上記(2)に記載の情報処理装置において、前記決定ステップでは、前記調整処理が実行される前の前記第1判定領域と前記第2判定領域の位置関係に基づいて、前記特定動作による効果が成立しなかった場合、前記調整処理の実行後、前記特定動作の結果を決定する、情報処理装置。
【0113】
(4)上記(3)に記載の情報処理装置において、前記調整ステップでは、前記調整処理が実行される前の前記第1判定領域および前記第2判定領域の位置関係に基づいて、前記特定動作による効果が成立しなかった場合、前記差が閾値以上であることを条件として、前記調整処理を実行し、前記決定ステップでは、前記調整処理の実行後、前記特定動作の結果を決定する、情報処理装置。
【0114】
(5)上記(1)~(4)の何れか1つに記載の情報処理装置において、前記ユーザは、第1ユーザと第2ユーザとを含み、前記決定ステップでは、前記第1ユーザの前記差が前記第2ユーザの前記差よりも大きい場合、前記第1ユーザに有利となるように前記特定動作の結果を決定する、情報処理装置。
【0115】
(6)上記(1)~(5)の何れか1つに記載の情報処理装置において、前記制御部は、マッチングステップをさらに実行するように構成され、前記受付ステップでは、前記ユーザによって設定されたディスプレイにおいて単位時間あたりに更新される画面数を示すフレームレートをユーザ端末から取得し、前記マッチングステップでは、前記フレームレートに基づいて、複数のユーザの中から第1ユーザと第2ユーザを選択し、前記制御ステップでは、マッチングされた前記第1ユーザに対応する第1ユーザ端末において操作オブジェクトとして動作する第1オブジェクトと、前記第2ユーザに対応する第2ユーザ端末において操作オブジェクトとして動作する第2オブジェクトとを前記仮想空間に配置して、前記仮想空間におけるゲームを進行させる、情報処理装置。
【0116】
(7)上記(1)~(6)の何れか1つに記載の情報処理装置において、前記差は、前記ユーザによって設定された前記ディスプレイにおいて単位時間あたりに更新される画面数を示すフレームレートに基づいて算出される、情報処理装置。
【0117】
(8)上記(1)~(7)の何れか1つに記載の情報処理装置において、前記ユーザは、第1ユーザと第2ユーザとを含み、前記受付ステップでは、第1ユーザ端末を介した前記第1ユーザの第1操作入力を受け付け、第2ユーザ端末を介した前記第2ユーザの第2操作入力を受け付け、前記制御ステップでは、前記第1操作入力に基づいて前記操作オブジェクトである第1オブジェクトに前記特定動作を実行させ、前記特定動作は、前記第2操作入力に基づいて動作する第2オブジェクトを標的オブジェクトとする動作で、前記演算位置は、前記第2操作入力が前記第2ユーザ端末において受け付けられた時点を特定する情報に基づいて特定される、情報処理装置。
【0118】
(9)プログラムであって、コンピュータに、上記(1)~(8)の何れか1つに記載の各ステップを実行させる、プログラム。
【0119】
(10)情報処理装置が実行する情報処理方法であって、上記(1)~(8)の何れか1つに記載の情報処理装置における各ステップを備える、情報処理方法。
もちろん、この限りではない。
【0120】
最後に、本開示に係る種々の実施形態を説明したが、これらは、例として提示したものであり、開示の範囲を限定することは意図していない。当該新規な実施形態は、その他の様々な形態で実施されることが可能であり、開示の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。当該実施形態やその変形は、開示の範囲や要旨に含まれるとともに、特許請求の範囲に記載された開示とその均等の範囲に含まれるものである。
【符号の説明】
【0121】
1 :情報処理システム
11 :通信ネットワーク
2 :情報処理装置
20 :通信バス
21 :通信部
22 :記憶部
23 :制御部
3 :ユーザ端末
3a :第1ユーザ端末
3b :第2ユーザ端末
30 :通信バス
31 :通信部
32 :記憶部
33 :制御部
34a :グラフィック処理部
34b :オーディオ処理部
34c :操作部
4a :ディスプレイ
4b :スピーカ
4c :入力デバイス
5 :オブジェクト
5a :第1オブジェクト
5b :第2オブジェクト
7 :判定領域
7a :判定領域
7b :判定領域
8 :操作情報
9 :ステータス情報
51 :操作オブジェクト
52 :標的オブジェクト
61 :演算位置
61a :演算位置
61b :演算位置
62 :表示位置
62a :表示位置
62b :表示位置
62c :表示位置
62d :表示位置
63 :円
64 :距離
71 :第1判定領域
72 :第2判定領域
72c :第2判定領域
72d :第2判定領域
73 :中心座標
73a :中心座標
73b :中心座標
231 :受付部
232 :ゲーム制御部
233 :表示制御部
234 :調整部
235 :決定部
236 :マッチング部
601 :画面
603 :画面
605 :画面
611 :画面
612 :画面
613 :画面
701 :画面
705 :画面
711 :画面
712 :画面
713 :画面
901 :矢印
1101 :メニュー表示エリア
1102 :操作ボタン
1103 :設定エリア
1104 :設定完了ボタン
1201 :マルチプレイ設定エリア
1202 :メンバー募集開始ボタン
1203 :パーティ参加ボタン
1301 :メンバー募集画面
1302 :表示
1303 :通信環境表示
1304 :試合開始ボタン
1305 :ボタン
1401 :警告
1501 :画面
1504 :画面
1506 :画面
1511 :画面
1512 :画面
1536 :画面
C :キャラクタ
EC :敵キャラクタ
F4 :フレーム
T1 :タイミング
T2 :タイミング
TA :タイミング
TB :タイミング
TC :タイミング
Ta :タイミング
Tb :タイミング
Tc :タイミング
Td :タイミング
Te :タイミング
Tf :タイミング
Tg :タイミング
Th :タイミング
Ti :タイミング