(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023050529
(43)【公開日】2023-04-11
(54)【発明の名称】プログラム、情報処理装置および情報処理方法
(51)【国際特許分類】
A63F 13/5258 20140101AFI20230404BHJP
A63F 13/55 20140101ALI20230404BHJP
【FI】
A63F13/5258
A63F13/55
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021160682
(22)【出願日】2021-09-30
(71)【出願人】
【識別番号】511249637
【氏名又は名称】株式会社Cygames
(74)【代理人】
【識別番号】100135666
【弁理士】
【氏名又は名称】原 弘晃
(74)【代理人】
【識別番号】100131680
【弁理士】
【氏名又は名称】竹内 健一
(72)【発明者】
【氏名】松永 和也
(57)【要約】
【課題】 視認性の高い画像を生成することができるプログラム、情報処理装置および情報処理方法を提供すること。
【解決手段】 フレームが更新されてオブジェクトの配置が更新されるごとに、プレイヤーの入力や、自キャラクターと敵キャラクターの位置関係などに基づいて、1つの敵キャラクターを最優先ターゲットとして設定し、最優先ターゲットが自動的に表示されるように仮想カメラの位置および向きの少なくとも一方を補正する補正処理が行われるようにしている。
【選択図】
図12
【特許請求の範囲】
【請求項1】
仮想空間を仮想カメラから見た画像を生成するためのプログラムであって、
プレイヤーが操作可能な第1オブジェクトとプレイヤーが操作不可能な1または複数の第2オブジェクトの前記仮想空間における移動を制御するオブジェクト制御部と、
前記第1オブジェクトの周囲に存在する前記第2オブジェクトの中から最優先の前記第2オブジェクトを設定する最優先オブジェクト設定部と、
設定された最優先の前記第2オブジェクトの周囲に他の前記第2オブジェクトが存在する場合に、最優先の前記第2オブジェクトの位置と他の前記第2オブジェクトの位置に基づいて特定ポイントを決定する特定ポイント決定部と、
決定された前記特定ポイントに基づいて前記仮想カメラの位置および向きの少なくとも一方を制御する仮想カメラ制御部としてコンピューターを機能させるプログラム。
【請求項2】
請求項1において、
前記仮想カメラ制御部は、
前記仮想カメラから見た画像のうちの所定範囲内に前記特定ポイントが収まるように前記仮想カメラの向きを制御するプログラム。
【請求項3】
請求項1または2において、
前記仮想カメラ制御部は、
前記第1オブジェクトの行動の種類に基づいて前記仮想カメラの向きを制御するプログラム。
【請求項4】
請求項1~3のいずれかにおいて、
前記仮想カメラ制御部は、
前記第2オブジェクトの位置、数および大きさの少なくとも1つに基づいて前記仮想カメラの位置を制御するプログラム。
【請求項5】
仮想空間を仮想カメラから見た画像を生成するための情報処理装置であって、
プレイヤーが操作可能な第1オブジェクトとプレイヤーが操作不可能な1または複数の第2オブジェクトの前記仮想空間における移動を制御するオブジェクト制御部と、
前記第1オブジェクトの位置に応じた第1範囲内に存在する前記第2オブジェクトの中から最優先の前記第2オブジェクトを設定する最優先オブジェクト設定部と、
設定された最優先の前記第2オブジェクトの周囲に他の前記第2オブジェクトが存在する場合に、最優先の前記第2オブジェクトの位置と他の前記第2オブジェクトの位置に基づいて特定ポイントを決定する特定ポイント決定部と、
決定された前記特定ポイントに基づいて前記仮想カメラの位置および向きの少なくとも一方を制御する仮想カメラ制御部を含む情報処理装置。
【請求項6】
コンピューターにより実行され、仮想空間を仮想カメラから見た画像を生成するための情報処理方法であって、
プレイヤーが操作可能な第1オブジェクトとプレイヤーが操作不可能な1または複数の第2オブジェクトの前記仮想空間における移動を制御し、
前記第1オブジェクトの位置に応じた第1範囲内に存在する前記第2オブジェクトの中から最優先の前記第2オブジェクトを設定し、
設定された最優先の前記第2オブジェクトの周囲に他の前記第2オブジェクトが存在する場合に、最優先の前記第2オブジェクトの位置と他の前記第2オブジェクトの位置に基づいて特定ポイントを決定し、
決定された前記特定ポイントに基づいて前記仮想カメラの位置および向きの少なくとも一方を制御する情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
従来から、キャラクターなどのオブジェクトが配置されるオブジェクト空間(仮想的な3次元空間)において仮想カメラ(所与の視点)から見た画像を生成する情報処理装置が知られている。
【0003】
この種の情報処理装置には、プレイヤーが操作する自キャラクターから予め定められた距離内にある敵キャラクターが攻撃対象としてロックオンされ、ロックオンされた敵キャラクターの方向に自キャラクターの向きが向けられ、仮想カメラが自キャラクターを背後から撮影するように、仮想カメラが制御されるものがある(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、従来の情報処理装置では、自キャラクターと複数の敵キャラクターが接近した場合における仮想カメラの制御については考慮されていないため、自キャラクターと複数の敵キャラクターが接近した場合に生成される画像では、ロックオンされた敵キャラクター以外の敵キャラクターの視認性が低下してしまう。
【0006】
本発明は、上記事情に鑑みてなされたものであり、その目的は、視認性の高い画像を生成することができるプログラム、情報処理装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【0007】
(1)本発明は、仮想空間を仮想カメラから見た画像を生成するためのプログラムであって、プレイヤーが操作可能な第1オブジェクトとプレイヤーが操作不可能な1または複数の第2オブジェクトの前記仮想空間における移動を制御するオブジェクト制御部と、前記第1オブジェクトの周囲に存在する前記第2オブジェクトの中から最優先の前記第2オブジェクトを設定する最優先オブジェクト設定部と、設定された最優先の前記第2オブジェクトの周囲に他の前記第2オブジェクトが存在する場合に、最優先の前記第2オブジェクトの位置と他の前記第2オブジェクトの位置に基づいて特定ポイントを決定する特定ポイント決定部と、決定された前記特定ポイントに基づいて前記仮想カメラの位置および向きの少なくとも一方を制御する仮想カメラ制御部としてコンピューターを機能させるプログラムに関するものである。
【0008】
本発明では、最優先の第2オブジェクトの位置と他の第2オブジェクトの位置に基づいて特定ポイントが決定され、特定ポイントに基づいて仮想カメラの位置および向きの少なくとも一方が制御されるため、第1オブジェクトの周囲に複数の第2オブジェクトが存在しても、複数の第2オブジェクトが自動的かつ適切に表示されるようにすることができる。
【0009】
(2)また本発明は、前記仮想カメラ制御部は、前記仮想カメラから見た画像のうちの所定範囲内に前記特定ポイントが収まるように前記仮想カメラの向きを制御するようにしてもよい。
【0010】
このようにすれば、所定範囲付近に複数の第2オブジェクトが自動的かつ適切に表示されるようにすることができる。
【0011】
(3)また本発明は、前記仮想カメラ制御部は、前記第1オブジェクトの行動の種類に基づいて前記仮想カメラの向きを制御するようにしてもよい。
【0012】
このようにすれば、第1オブジェクトの行動の種類に応じて、複数の第2オブジェクトが自動的かつ適切に表示されるようにすることができる。
【0013】
(4)また本発明は、前記仮想カメラ制御部は、前記第2オブジェクトの位置、数および大きさの少なくとも1つに基づいて前記仮想カメラの位置を制御するようにしてもよい。
【0014】
このようにすれば、第2オブジェクトの位置、数および大きさの少なくとも1つに応じて、第2オブジェクトが自動的かつ適切に表示されるようにすることができる。
【0015】
(5)また本発明は、仮想空間を仮想カメラから見た画像を生成するための情報処理装置であって、プレイヤーが操作可能な第1オブジェクトとプレイヤーが操作不可能な1または複数の第2オブジェクトの前記仮想空間における移動を制御するオブジェクト制御部と、前記第1オブジェクトの位置に応じた第1範囲内に存在する前記第2オブジェクトの中から最優先の前記第2オブジェクトを設定する最優先オブジェクト設定部と、設定された最優先の前記第2オブジェクトの周囲に他の前記第2オブジェクトが存在する場合に、最優先の前記第2オブジェクトの位置と他の前記第2オブジェクトの位置に基づいて特定ポイントを決定する特定ポイント決定部と、決定された前記特定ポイントに基づいて前記仮想カメラの位置および向きの少なくとも一方を制御する仮想カメラ制御部を含む情報処理装置に関するものである。
【0016】
(6)また本発明は、コンピューターにより実行され、仮想空間を仮想カメラから見た画像を生成するための情報処理方法であって、プレイヤーが操作可能な第1オブジェクトとプレイヤーが操作不可能な1または複数の第2オブジェクトの前記仮想空間における移動を制御し、前記第1オブジェクトの位置に応じた第1範囲内に存在する前記第2オブジェクトの中から最優先の前記第2オブジェクトを設定し、設定された最優先の前記第2オブジェクトの周囲に他の前記第2オブジェクトが存在する場合に、最優先の前記第2オブジェクトの位置と他の前記第2オブジェクトの位置に基づいて特定ポイントを決定し、決定された前記特定ポイントに基づいて前記仮想カメラの位置および向きの少なくとも一方を制御する情報処理方法に関するものである。
【0017】
(7)また本発明は、仮想空間を仮想カメラから見た画像を生成するためのプログラムであって、プレイヤーが操作可能な第1オブジェクトとプレイヤーが操作不可能な1または複数の第2オブジェクトの前記仮想空間における移動を制御するオブジェクト制御部と、前記第1オブジェクトの周囲に存在する前記第2オブジェクトの中から最優先の前記第2オブジェクトを設定する最優先オブジェクト設定部と、設定された最優先の前記第2オブジェクトの周囲に他の前記第2オブジェクトが存在する場合に、最優先の前記第2オブジェクトの位置と他の前記第2オブジェクトの位置に基づいて特定ポイントを決定する特定ポイント決定部と、決定された前記特定ポイントに基づいて前記仮想カメラの位置および向きの少なくとも一方を制御する仮想カメラ制御部としてコンピューターを機能させるプログラムを格納する非一時的にコンピューターが読み取り可能な情報記憶媒体に関するものである。
【図面の簡単な説明】
【0018】
【
図1】本発明の実施形態の情報処理システムの構成を示す概略ブロック図である。
【
図2】本発明の実施形態のサーバー装置の機能を示す機能ブロック図である。
【
図3】本発明の実施形態の端末装置の機能を示す機能ブロック図である。
【
図4】本発明の実施形態の端末装置に表示される画像を示す図である。
【
図5】本発明の実施形態の端末装置のコントローラーを示す図である。
【
図6】本発明の実施形態の仮想3次元空間を示す図である。
【
図7】本発明の実施形態の仮想3次元空間を示す図である。
【
図8】本発明の実施形態の仮想3次元空間を示す図である。
【
図9】本発明の実施形態の仮想3次元空間を示す図である。
【
図10】本発明の実施形態の仮想3次元空間を示す図である。
【
図11】本発明の実施形態の仮想3次元空間を示す図である。
【
図12】本発明の実施形態の端末装置に表示される画像を示す図である。
【
図13】本発明の実施形態の処理の流れを示すフローチャートである。
【
図14】本発明の実施形態の処理の流れを示すフローチャートである。
【
図15】本発明の実施形態の処理の流れを示すフローチャートである。
【
図16】本発明の実施形態の処理の流れを示すフローチャートである。
【
図17】本発明の実施形態の処理の流れを示すフローチャートである。
【
図18】本発明の実施形態の処理の流れを示すフローチャートである。
【
図19】本発明の実施形態の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0019】
以下では、本発明の実施形態について説明する。なお以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0020】
1.情報処理システムの構成
図1は、本実施形態の情報処理システム10の構成を示す概略ブロック図である。
図1に示すように情報処理システム10では、サーバー装置12と複数の端末装置14が、インターネット、携帯電話網、LAN、WANなどのネットワーク16により接続されており、いわゆるクライアント・サーバー方式の通信システムが構成されている。そして複数の端末装置14のそれぞれは、ネットワーク16を介してサーバー装置12と互いに通信を行って種々の情報を送受信したり、ネットワーク16およびサーバー装置12を介して他の端末装置14と互いに通信を行って種々の情報を送受信したりする。
【0021】
サーバー装置12は、CPU等のプロセッサー、ROMやRAM等の主記憶装置、ハードディスク等の外部記憶装置、キーボード等の入力装置、液晶ディスプレイ等の表示装置、通信装置等を備えている。そしてサーバー装置12では、CPUが、主記憶装置に記憶されているプログラムや、外部記憶装置から主記憶装置にロードされたプログラムに従って各種の処理を実行し、通信装置によって端末装置14からの情報を受信したり、端末装置14に情報を送信したりする。
【0022】
端末装置14は、スマートフォン、タブレット、パーソナルコンピューター、携帯ゲーム機、据え置きゲーム機など種々の形態の情報処理装置とすることができ、これらもCPU等のプロセッサー、ROMやRAM等の主記憶装置、フラッシュメモリ、ハードディスク等の外部記憶装置、タッチパネルやキーボード、マイク等の入力装置、液晶ディスプレイや有機ELディスプレイ等の表示装置、スピーカー等の音出力装置、通信装置等を備えている。そして端末装置14でも、CPUが、主記憶装置に記憶されているプログラムや、外部記憶装置から主記憶装置にロードされたプログラムに従って各種の処理を実行し、通信装置によってサーバー装置12からの情報を受信したり、サーバー装置12や他の端末装置14に情報を送信したりする。
【0023】
図2は、本実施形態のサーバー装置12の機能を示す機能ブロック図である。
図2に示すように、本実施形態のサーバー装置12は、サーバー情報記憶媒体20、サーバー記憶部30、サーバー通信部36、サーバー情報処理部40を含む。なお、
図2の構成要素(各部)の一部を省略した構成としてもよい。
【0024】
サーバー情報記憶媒体20は、サーバー情報処理部40やサーバー通信部36が各種の処理を行うためのプログラムやデータなどを格納するものであり、その機能は、フラッシュメモリ、ハードディスク、光ディスク(DVD、BD)などにより実現できる。すなわちサーバー情報記憶媒体20には、本実施形態の各部としてコンピューターを機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶されている。
【0025】
サーバー記憶部30は、サーバー情報処理部40やサーバー通信部36のワーク領域となるものであり、その機能はRAM(メインメモリ)や、VRAM(ビデオメモリ)などにより実現できる。詳細にはサーバー記憶部30は、サーバー情報記憶媒体20からプログラムやデータが読み込まれる主記憶部32を含む。
【0026】
サーバー通信部36は、外部ネットワーク(例えば他のサーバー装置12や端末装置14)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサー(CPU(メインプロセッサー)、GPU(描画プロセッサー)、DSP等)、または通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0027】
サーバー情報処理部40は、サーバー通信部36が受信した受信データや、サーバー記憶部30の各種プログラムやデータなどに基づいて、ゲーム処理などの各種処理を、主記憶部32をワーク領域として行うものであり、その機能は、各種プロセッサー、ASICなどのハードウェアや、プログラムにより実現できる。
【0028】
そしてサーバー情報処理部40は、サーバーゲーム処理部42、サーバー通信制御部48を含む。なおこれらの一部を省略する構成としてもよい。
【0029】
サーバーゲーム処理部42は、サーバー通信部36が受信した受信データや、サーバー情報処理部40で行われる種々の処理の結果や、主記憶部32に読み込まれたプログラムやデータなどに基づいて、ゲーム開始条件が満たされた場合にゲームを開始する処理、複数種類のゲーム機能のうち選択されたゲーム機能を実行する処理、複数のプレイヤー(プレイヤー識別情報、プレイヤーID)をマッチングして1つのグループを形成する処理、1つのグループを形成する複数のプレイヤーを共通のゲームに参加させる処理、対戦ゲームを制御する処理、ゲームを進行させる処理、プレイヤーに提供(付与)するキャラクターやアイテムなどのゲーム媒体を複数のゲーム媒体から抽選により決定する処理、イベント発生条件が満たされた場合にイベントを発生させる処理、ゲーム結果を演算する処理、あるいはゲーム終了条件が満たされた場合にゲームを終了する処理などを行う。
【0030】
サーバー通信制御部48は、サーバー通信部36に他のサーバー装置12あるいは端末装置14と通信を行わせ、種々の情報を送受信するための処理を行う。例えばサーバー通信制御部48は、プレイヤーを情報処理システム10に新規登録する処理に必要な情報や、プレイヤーを情報処理システム10にログインさせる処理に必要な情報や、ログインさせたプレイヤーと協力あるいは対戦する相手プレイヤーを設定する処理に必要な情報や、複数の端末装置14を同期させる処理に必要な情報や、複数の端末装置14において共通のゲームを実行するための処理に必要な情報などをサーバー通信部36に送受信させる。またサーバー通信制御部48は、情報の宛先を示す宛先情報や、情報の送信元を示す送信元情報や、情報を生成した情報処理システム10を識別する識別情報などもサーバー通信部36に送受信させる。
【0031】
図3は、本実施形態の端末装置14の機能を示す機能ブロック図である。
図3に示すように、本実施形態の端末装置14は、プレイヤー入力検出部50、表示部52、音出力部54、端末情報記憶媒体56、端末記憶部60、端末通信部66、端末情報処理部100を含む。なお、
図3の構成要素(各部)の一部を省略した構成としてもよい。
【0032】
プレイヤー入力検出部50は、プレイヤーによる端末装置14に対する入力をプレイヤー入力として検出するためのものであり、その機能は、タッチセンサー、スイッチ、光学センサー、可変抵抗式センサー(ポテンショメーター)、加速度センサー、マイクなどにより実現できる。
【0033】
表示部52は、表示画面に画像を表示するものであり、その機能は、液晶ディスプレイや有機ELディスプレイなどにより実現できる。
【0034】
音出力部54は、音を出力するものであり、その機能は、スピーカー、ヘッドフォンなどにより実現できる。
【0035】
端末情報記憶媒体56は、端末情報処理部100や端末通信部66が各種の処理を行うためのプログラムやデータなどを格納するものであり、その機能は、フラッシュメモリ、ハードディスク、光ディスク(DVD、BD)などにより実現できる。すなわち端末情報記憶媒体56には、本実施形態の各部としてコンピューターを機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶されている。
【0036】
端末記憶部60は、端末情報処理部100や端末通信部66のワーク領域となるものであり、その機能はRAM(メインメモリ)や、VRAM(ビデオメモリ)などにより実現できる。詳細には端末記憶部60は、端末情報記憶媒体56からプログラムやデータが読み込まれる主記憶部62と、表示部52に表示させる画像が描画される描画バッファ64を含む。
【0037】
端末通信部66は、外部ネットワーク(例えばサーバー装置12や他の端末装置14)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサーまたは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0038】
なお本実施形態の各部としてコンピューターを機能させるためのプログラム(データ)は、サーバー装置12からネットワーク16および端末通信部66を介して端末装置14の端末情報記憶媒体56(あるいは主記憶部62)にダウンロードするようにしてもよく、このようなサーバー装置12の使用も本発明の範囲内に含めることができる。
【0039】
端末情報処理部100は、プレイヤー入力検出部50が検出したプレイヤー入力や、端末通信部66が受信した受信データや、端末記憶部60の各種プログラムやデータなどに基づいて、ゲーム処理、画像生成処理、音生成処理などの各種処理を、主記憶部62をワーク領域として行うものであり、その機能は、各種プロセッサー(CPU(メインプロセッサー)、GPU(描画プロセッサー)、DSP等)、ASICなどのハードウェアや、プログラムにより実現できる。
【0040】
そして端末情報処理部100は、端末ゲーム処理部102、入力受付部103、表示制御部104、画像生成部108、音生成部110、端末通信制御部112を含む。なおこれらの一部を省略する構成としてもよい。
【0041】
端末ゲーム処理部102(ゲーム処理部)は、プレイヤー入力検出部50が検出したプレイヤー入力や、端末通信部66が受信した受信データや、端末情報処理部100で行われる種々の処理の結果や、主記憶部62に読み込まれたプログラムやデータなどに基づいて、ゲーム開始条件が満たされた場合にゲームを開始する処理、複数種類のゲーム機能のうち選択されたゲーム機能を実行する処理、自端末のプレイヤー(プレイヤーID)を他端末のプレイヤー(他のプレイヤーID)とマッチングさせて共通のゲームに参加させるための処理、対戦ゲームを制御する処理、ゲームを進行させる処理、イベント発生条件が満たされた場合にイベントを発生させる処理、自端末のプレイヤーあるいはキャラクターの各種のパラメーターを更新する処理、ゲーム結果を演算する処理、あるいはゲーム終了条件が満たされた場合にゲームを終了する処理などを行う。
【0042】
入力受付部103は、プレイヤー入力検出部50が検出したプレイヤー入力や、端末通信部66が受信した受信データや、端末情報処理部100で行われる種々の処理の結果や、主記憶部62に読み込まれたプログラムやデータなどに基づいて、プレイヤーの入力を状況に応じた入力として受け付けたり、プレイヤーの入力を受け付けないようにしたりする。例えば、ボタンなどのGUIが表示されている状態でGUIがタップされると、表示されているGUIの種類に応じた入力として受け付ける。
【0043】
表示制御部104は、表示部52に表示される画像の表示制御を行う。具体的には、プレイヤー入力検出部50が検出したプレイヤー入力や、端末通信部66が受信した受信データや、端末情報処理部100で行われる種々の処理の結果や、主記憶部62に読み込まれたプログラムやデータなどに基づいて、種々のオブジェクトやプリレンダリング画像(ムービー画像)の表示内容、表示態様、表示タイミングなどの表示制御を行う。
【0044】
例えば、背景を表示するための背景オブジェクト、エフェクトを表示するためのエフェクトオブジェクト、ボタンなどのGUI(Graphic User Interface)を表示するためのGUIオブジェクト、プレイヤーが移動や動作を操作可能な自キャラクター(第1オブジェクト)やプレイヤーが移動や動作を操作不可能な1または複数の敵キャラクター(第2オブジェクト)を表示するためのキャラクターオブジェクト、建物、道具、乗り物、地形などのキャラクター以外の物を表示するための非キャラクターオブジェクトなどの種々のオブジェクトのオブジェクトデータ、および種々のプリレンダリング画像の画像データが、端末情報記憶媒体56に記憶されている。
【0045】
そして表示制御部104は、実行中のゲーム機能の種類や、ゲームの進行状況などに応じて、主記憶部62に読み込まれたオブジェクトデータやプリレンダリング画像の画像データに基づいて、オブジェクトやプリレンダリング画像の表示制御を行う。
【0046】
ここで表示制御部104は、3次元ゲーム画像を表示させる場合には、主記憶部62に読み込まれたオブジェクトデータに基づいて、オブジェクトを表すポリゴン、自由曲面、二次元画像などのプリミティブで構成されるオブジェクトを、仮想3次元空間(仮想空間)に配置したり、移動あるいは動作させたりする処理を行う。また表示制御部104は、仮想3次元空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の位置、向き(視線方向)および画角(視野範囲)を制御する処理を行う。
【0047】
より詳細には、表示制御部104は、オブジェクト制御部120、最優先オブジェクト設定部122、特定ポイント決定部124、仮想カメラ制御部126を含む。
【0048】
オブジェクト制御部120は、ポリゴンなどのプリミティブ面で構成される各種オブジェクトを仮想3次元空間に配置する処理を行う。具体的には、オブジェクト制御部120は、プレイヤー入力検出部50が検出したプレイヤー入力や、端末通信部66が受信した受信データや、端末情報処理部100で行われる種々の処理の結果や、主記憶部62に読み込まれたプログラムやデータなどに基づいて、1フレーム(1/30秒)ごとに、ワールド座標系でのオブジェクトの位置や向き(回転角度)を決定し、決定した位置(3次元座標)に決定した向きでオブジェクトを配置する。
【0049】
またオブジェクト制御部120は、自キャラクターや敵キャラクターなどの移動または動作するオブジェクトの移動演算や動作演算(移動または動作シミュレーション)を行う。具体的には、オブジェクト制御部120は、プレイヤー入力検出部50が検出したプレイヤー入力や、端末通信部66が受信した受信データや、端末情報処理部100で行われる種々の処理の結果や、主記憶部62に読み込まれた移動アルゴリズム、動作アルゴリズムや、モーションデータなどに基づいて、1フレームごとに、オブジェクトの移動情報(位置、回転角度、速度、加速度など)や動作情報(オブジェクトを構成する各パーツの位置、回転角度、速度、加速度など)を求め、仮想3次元空間内でオブジェクトを移動させたり、オブジェクトを構成する複数のパーツのそれぞれを動作(アニメーション)させたりする処理を行う。
【0050】
特に、オブジェクトがキャラクターオブジェクトである場合には、オブジェクト制御部120は、各キャラクターに対応づけられたモーションデータに基づいて、キャラクターオブジェクトの動作を制御する。具体的には、モーションデータには、キャラクターオブジェクトのスケルトンを構成する各骨(キャラクターを構成するパーツオブジェクト、関節、モーション骨)の位置や回転角度(親の骨に対する子の骨の回転角度)などが含まれ、オブジェクト制御部120は、モーションデータに基づいてキャラクターオブジェクトのスケルトンを構成する各骨を動かすことで、またはスケルトン形状を変形させることで、キャラクターオブジェクトの攻撃動作、防御動作、移動動作などを制御する。
【0051】
最優先オブジェクト設定部122は、自キャラクターの位置に応じた範囲内に存在する敵キャラクターを検出し、検出した敵キャラクターの中から最優先の敵キャラクターを設定する。
【0052】
特定ポイント決定部124は、設定された最優先の敵キャラクターの周囲に他の敵キャラクターが存在しない場合に、最優先の敵キャラクターの位置に基づいて特定ポイントを決定し、設定された最優先の敵キャラクターの周囲に他の敵キャラクターが存在する場合に、最優先の敵キャラクターの位置と他の敵キャラクターの位置に基づいて特定ポイントを決定する。
【0053】
仮想カメラ制御部126は、仮想3次元空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)を制御する処理を行う。具体的には、プレイヤー入力検出部50が検出したプレイヤー入力や、端末通信部66が受信した受信データや、端末情報処理部100で行われる種々の処理の結果や、主記憶部62に読み込まれたプログラムや仮想カメラ制御データなどに基づいて、1フレーム(1/30秒)ごとに、ワールド座標系での仮想カメラの位置、向き(回転角度)、画角を決定し、決定した位置に決定した向きと画角で仮想カメラを配置する。
【0054】
ここで、仮想カメラの向きは、仮想カメラが見る点である注視点を仮想3次元空間内に設定し、設定された注視点を向くように仮想カメラの向きを制御するようにしてもよい。また、仮想カメラの画角は、画角を拡大、縮小させることにより制御してもよいし、オブジェクトを投影するスクリーン(投影面)と仮想カメラとの距離を変化させることにより制御してもよい。なお、仮想カメラの画角を狭くする、またはスクリーンと仮想カメラの距離を遠ざけることにより対象オブジェクトをズームアップする画像を生成することができ、仮想カメラの画角を広くする、またはスクリーンと仮想カメラの距離を近づけることにより対象オブジェクトからズームバックする画像を生成することができる。
【0055】
また仮想カメラ制御部126は、プレイヤー入力に基づいて移動や動作を行う自キャラクターの位置および向きの変化に仮想カメラが追従するように、また、プレイヤー入力に基づいて仮想カメラの位置、向き、画角が変化するように、仮想カメラの位置、向き、画角を制御する。
【0056】
また仮想カメラ制御部126は、仮想カメラの位置(移動経路)、向き、画角、注視点を特定するための仮想カメラ制御データに基づいて、仮想カメラの位置が予め決められた位置に移動したり、予め決められた移動経路で移動したり、仮想カメラの向きが予め決められた回転角度で回転したり、仮想カメラの画角が予め決められた画角に変化したりするように、仮想カメラの位置、向き、画角を制御する。仮想カメラ制御データには、1フレームごとの仮想カメラの位置、回転角度、画角、注視点の位置や、仮想カメラの位置、回転角度、画角、注視点の1フレームごとの変化量、変化率、変化期間(フレーム数)などが含まれるようにしてもよい。
【0057】
また仮想カメラ制御部126は、特定ポイント決定部124により決定された特定ポイントに基づいて、仮想カメラの位置および向きの少なくとも一方を制御する。
【0058】
画像生成部108は、プレイヤー入力検出部50が検出したプレイヤー入力や、端末通信部66が受信した受信データや、端末情報処理部100で行われる種々の処理の結果、特に表示制御部104で行われる種々の処理の結果や、主記憶部62に読み込まれたプログラムやデータなどに基づいて、1フレームごとに描画バッファ64にゲーム画像を描画する処理を行うことにより、各種のオブジェクトや、各種のプリレンダリング画像が表示されるゲーム画像を生成し、生成したゲーム画像を表示部52に出力してゲーム画像を表示させる。
【0059】
3次元ゲーム画像を生成する場合には、表示制御部104の各種の処理結果に基づいて、オブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が取得され、取得したオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。
【0060】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データが変更(更新、調整)される。
【0061】
頂点処理が行われると、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセル(画素)とが対応づけられる。ラスタライズが行われると、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
【0062】
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム)に従って、テクスチャマッピング、隠面消去、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ64(ピクセル単位で画像情報を記憶できるバッファ、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色値、輝度値、Z値、法線、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理が行われる。これにより、仮想3次元空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0063】
音生成部110は、端末情報処理部100で行われる種々の処理の結果に基づいて音処理を行い、楽曲、BGM、効果音、または音声などのゲーム音を生成し、音出力部54に出力する。
【0064】
端末通信制御部112は、端末通信部66にサーバー装置12あるいは他の端末装置14と通信を行わせ、種々の情報を送受信させるための処理を行う。例えば端末通信制御部112は、プレイヤーを情報処理システム10に新規登録する処理に必要な情報や、プレイヤーを情報処理システム10にログインさせる処理に必要な情報や、ログインさせたプレイヤーと協力あるいは対戦する相手プレイヤーを設定する処理に必要な情報や、複数の端末装置14を同期させる処理に必要な情報や、複数の端末装置14において共通のゲームを実行するための処理に必要な情報などを端末通信部66に送受信させる。また端末通信制御部112は、情報の宛先を示す宛先情報や、情報の送信元を示す送信元情報や、情報を生成した情報処理システム10を識別する識別情報なども端末通信部66に送受信させる。
【0065】
なお、端末装置14の端末情報記憶媒体56の機能の全部または一部、端末記憶部60の機能の全部または一部、端末通信部66の機能の全部または一部、端末情報処理部100の機能の全部または一部を、サーバー装置12が備えるようにしてもよいし、サーバー装置12のサーバー情報記憶媒体20の機能の全部または一部、サーバー記憶部30の機能の全部または一部、サーバー通信部36の機能の全部または一部、サーバー情報処理部40の機能の全部または一部を、端末装置14が備えるようにしてもよい。
【0066】
2.本実施形態の制御手法
以下では、本実施形態の制御手法について、端末装置14をコンソールビデオゲーム機として、本実施形態のゲームプログラムをコンソールビデオゲーム機のゲームアプリケーションとして適用した場合を例に挙げて詳細に説明する。
【0067】
図4は、本実施形態のゲームプログラムにより生成され、ディスプレイ200に表示されるゲーム画像の例を示す図である。本実施形態のゲームプログラムは、三人称視点のアクションゲームを実行可能に構成されており、
図4に示すように、自キャラクターの右後方から自キャラクターを見た画像を生成し、ディスプレイ200に表示させる。
図4の例では、自キャラクターの前方に2人の敵キャラクターが表示されている。
【0068】
プレイヤーは、ディスプレイ200を見ながら、
図5に示すコンソールビデオゲーム機のコントローラー202を用いて自キャラクターを移動させたり動作させたりする入力を行い、所与のアルゴリズムにより移動したり動作したりする複数の敵キャラクターとバトルを行うゲームを楽しむ。
【0069】
図5に示すように、コントローラー202には、左アナログスティック204、右アナログスティック206、複数のボタン208、方向パッド210等が設けられており、左アナログスティック204、右アナログスティック206が倒された方向と量は、可変抵抗式センサーによって検出される。
【0070】
そして、左アナログスティック204を倒す操作が行われると、自キャラクターを移動させる移動入力として検出され、左アナログスティック204が倒された方向と量に応じて自キャラクターが移動する。右アナログスティック206を倒す操作が行われると、仮想カメラの向きを変化させる仮想カメラ入力として検出され、右アナログスティック206が倒された方向と量に応じて仮想カメラの向きが変化する。
【0071】
また、いずれかのボタン208や方向パッド210を押す操作が行われると、押されたボタン208の種類や押された方向パッド210の位置に応じて、自キャラクターに敵キャラクターへの攻撃アクションを行わせる攻撃入力として検出されたり、自キャラクターに敵キャラクターの攻撃に対する回避アクションを行わせる回避入力として検出されたりする。
【0072】
仮想カメラは、基本的には、自キャラクターの位置から右後方に所定の距離をおいた基準位置に配置され、自キャラクターの向きに対して僅かに左方向に傾くように向けられており、
図4に示すように、自キャラクターは、ディスプレイ200の表示領域の中心から左下方にずれた位置に表示される。そして、自キャラクターが移動して自キャラクターの位置や向きが変化すると、自キャラクターの位置や向きの変化に追従するように仮想カメラの位置や向きが制御される。
【0073】
詳細には、仮想カメラ入力や、攻撃入力や、回避入力が行われていない状態で、移動入力が行われることにより、キャラクターの位置および向きが変化すると、自キャラクターの位置と仮想カメラの位置の関係と、自キャラクターの向きと仮想カメラの向きの関係が所定の関係になるように、仮想カメラの位置および向きが制御される。
【0074】
しかし、敵キャラクターと接近戦を行う場合には、自キャラクターの向きに追従するように仮想カメラの向きが変化すると、敵キャラクターが表示されなくなることがあり、敵キャラクターと戦いにくくなってしまうなどの不都合が発生してしまう。
【0075】
そこで、本実施形態のゲームプログラムでは、フレームが更新されてオブジェクトの配置が更新されるごとに、プレイヤーの入力や、自キャラクターと敵キャラクターの位置関係などに基づいて、1つの敵キャラクターを最優先ターゲット(最優先オブジェクト)として設定し、最優先ターゲットが自動的に表示されるように仮想カメラの位置および向きの少なくとも一方を補正(制御)する補正処理が行われるようにしている。
【0076】
詳細には、移動入力、攻撃入力または回避入力が行われており、仮想カメラ入力が行われておらず、自キャラクターが近接武器を装備している場合に、まずは補正処理の対象となる敵キャラクターを検出する敵キャラクター検出処理が行われる。
【0077】
図6は、
図4の例の画像が生成されるときの仮想3次元空間を上から見た図である。敵キャラクター検出処理では、
図6に示すように、底面が正方形の直方体の検出範囲内(第1オブジェクトの周囲)に存在する敵キャラクターが検出され、検出された敵キャラクターが処理対象の敵キャラクターとして設定される。
【0078】
検出範囲は、自キャラクターの位置が検出範囲の底面の中心となり、仮想カメラの向きと同一の方向を向くように、自キャラクターの位置と仮想カメラの向きに追従するように設定される。
【0079】
ただし、自キャラクターから見て壁などのオブジェクトに遮蔽されている遮蔽状態の敵キャラクターは、検出範囲内に存在しても、処理対象の敵キャラクターから除外される。
【0080】
図6の例では、敵キャラクターA、敵キャラクターBおよび敵キャラクターCが検出範囲内の敵キャラクターとして検出されるが、敵キャラクターCは遮蔽状態であるため、敵キャラクターCを除外した敵キャラクターAおよび敵キャラクターBが、処理対象の敵キャラクターとして設定される。
【0081】
ただし、前のフレームにおいて最優先ターゲットに設定されていた敵キャラクターは、検出範囲内に存在すれば、遮蔽状態であっても、遮蔽状態のまま2秒が経過するまでは最優先ターゲットの設定が維持され、処理対象の敵キャラクターから除外されない。
【0082】
よって、前のフレームにおいて最優先ターゲットに設定されていた敵キャラクターは、遮蔽状態のまま2秒が経過すると、最優先ターゲットの設定が解除され、処理対象の敵キャラクターから除外される。
【0083】
これにより、自キャラクターあるいは最優先ターゲットに設定されている敵キャラクターの移動や、仮想カメラの向きの変化により、最優先ターゲットに設定されている敵キャラクターが一瞬だけ遮蔽状態になることがあっても、最優先ターゲットに維持されるため、最優先ターゲットが頻繁に変更されないようにすることができる。
【0084】
なお検出範囲は、仮想3次元空間に配置されている敵キャラクターの種類に応じて大きさが異なっており、敵キャラクターの大きさが大きいほど、設定される検出範囲も大きくなる。
【0085】
敵キャラクター検出処理の結果、処理対象の敵キャラクターが存在する場合には、処理対象の敵キャラクターのうちの1人の敵キャラクターを最優先ターゲットとして設定する最優先ターゲット設定処理が行われる。最優先ターゲットの条件は、ゲーム状況に応じて異なっており、自キャラクターが近接武器による攻撃アクション中である場合には、攻撃対象となっている敵キャラクターが最優先ターゲットとして設定され、自キャラクターが回避アクション中である場合には、自キャラクターを攻撃している敵キャラクターが最優先ターゲットとして設定される。
【0086】
また、自キャラクターが移動中である場合など、攻撃アクション中または回避アクション中ではない場合には、プレイヤーの入力や、自キャラクターと敵キャラクターの位置関係などに基づいて、最優先ターゲットの敵キャラクターが設定される。
【0087】
図7は、自キャラクターと敵キャラクターの位置関係を示す図である。
図7に示すように、自キャラクターの位置を中心とする第1範囲内に処理対象の敵キャラクターが存在する場合には、基本的には、自キャラクターに最も近い敵キャラクターが最優先ターゲットとして設定される。なお、第1範囲は、
図6に示す検出範囲に含まれる範囲であり、自キャラクターの位置を中心とする第2範囲は、第1範囲に含まれる範囲である。
【0088】
図7の例では、敵キャラクターAが自キャラクターに最も近い処理対象の敵キャラクターであるため、敵キャラクターAが最優先ターゲットとして設定される。
【0089】
ただし、前のフレームにおいて最優先ターゲットに設定されていた敵キャラクターは、自キャラクターに最も近くなくても、第1範囲内に存在しており、かつ第2範囲内において自キャラクターにより近い他の処理対象の敵キャラクターが存在しなければ、最優先ターゲットの設定が維持される。
【0090】
よって、前のフレームにおいて最優先ターゲットに設定されていた敵キャラクターが第1範囲内に存在せず、第1範囲内に他の処理対象の敵キャラクターが存在する場合には、前のフレームにおいて最優先ターゲットに設定されていた敵キャラクターに代えて、第1範囲内において自キャラクターに最も近い他の処理対象の敵キャラクターが最優先ターゲットとして設定される。
【0091】
また、前のフレームにおいて最優先ターゲットに設定されていた敵キャラクターは、第1範囲内に存在しても、第2範囲内において自キャラクターにより近い他の処理対象の敵キャラクターが存在する場合には、最優先ターゲットの設定が解除され、第2範囲内において自キャラクターに最も近い他の処理対象の敵キャラクターが、最優先ターゲットとして設定される。
【0092】
これにより、自キャラクターあるいは敵キャラクターの移動により、自キャラクターに最も近い敵キャラクターが第1範囲内であるが第2範囲外において入れ替わったとしても、最優先ターゲットは維持されるため、最優先ターゲットが頻繁に変更されないようにすることができる。
【0093】
一方、
図8に示すように、第1範囲内に処理対象の敵キャラクターが存在しない場合、すなわち第1範囲外に処理対象の敵キャラクターが存在する場合であって、移動入力がある場合には、自キャラクターの移動方向と自キャラクターからの敵キャラクターの方向の角度差が最も小さい敵キャラクターが最優先ターゲットとして設定される。
【0094】
図8の例では、敵キャラクターAが自キャラクターに最も近い処理対象の敵キャラクターであるが、自キャラクターの移動方向が図中右方向となっており、自キャラクターの移動方向と敵キャラクターBの方向の角度差A1の方が、自キャラクターの移動方向と敵キャラクターAの方向の角度差A2よりも小さく、敵キャラクターBが自キャラクターの移動方向との角度差が最も小さい処理対象の敵キャラクターであるため、敵キャラクターBが最優先ターゲットとして設定される。
【0095】
ただし、前のフレームにおいて最優先ターゲットに設定されていた敵キャラクターは、自キャラクターの移動方向との角度差が最も小さくなくても、自キャラクターの移動方向との角度差が第1角度以下となる他の処理対象の敵キャラクターが存在しなければ、前のフレームにおける最優先ターゲットの設定が維持される。
【0096】
よって、自キャラクターの移動方向との角度差が第1角度以下であって最優先ターゲットよりも小さい他の処理対象の敵キャラクターが存在する場合には、前のフレームにおいて最優先ターゲットに設定されていた敵キャラクターに代えて、自キャラクターの移動方向との角度差が最も小さい他の処理対象の敵キャラクターが最優先ターゲットとして設定される。
【0097】
これにより、自キャラクターあるいは敵キャラクターの移動により、自キャラクターの移動方向との角度差が最も小さい敵キャラクターが第1角度よりも大きい角度差で入れ替わったとしても、最優先ターゲットは維持されるため、最優先ターゲットが頻繁に変更されないようにすることができる。
【0098】
また、
図9に示すように、第1範囲内に処理対象の敵キャラクターが存在しない場合、すなわち第1範囲外に処理対象の敵キャラクターが存在する場合であって、移動入力がない場合には、仮想カメラの向きと自キャラクターからの敵キャラクターの方向の角度差が最も小さい敵キャラクターが最優先ターゲットとして設定される。
【0099】
図9の例では、仮想カメラの向きが図中左上方向となっており、仮想カメラの向きと敵キャラクターAの方向の角度差A3の方が、仮想カメラの向きと敵キャラクターBの方向の角度差A4よりも小さく、敵キャラクターAが仮想カメラの向きとの角度差が最も小さい処理対象の敵キャラクターであるため、敵キャラクターAが最優先ターゲットとして設定される。
【0100】
ただし、前のフレームにおいて最優先ターゲットに設定されていた敵キャラクターは、仮想カメラの向きとの角度差が最も小さくなくても、仮想カメラの向きとの角度差が第2角度以下となる他の処理対象の敵キャラクターが存在しなければ、前のフレームにおける最優先ターゲットの設定が維持される。
【0101】
よって、仮想カメラの向きとの角度差が第2角度以下であって最優先ターゲットよりも小さい他の処理対象の敵キャラクターが存在する場合には、前のフレームにおいて最優先ターゲットに設定されていた敵キャラクターに代えて、仮想カメラの向きとの角度差が最も小さい他の処理対象の敵キャラクターが最優先ターゲットとして設定される。
【0102】
これにより、自キャラクターあるいは敵キャラクターの移動により、仮想カメラの向きとの角度差が最も小さい敵キャラクターが第2角度よりも大きい角度差で入れ替わっても、最優先ターゲットは維持されるため、最優先ターゲットが頻繁に変更されないようにすることができる。
【0103】
最優先ターゲットが設定されると、最優先ターゲットの敵キャラクターの位置に基づいて、仮想カメラの向きを制御するための特定ポイントを決定する特定ポイント決定処理が行われる。
【0104】
図10は、最優先ターゲットと特定ポイントの位置関係を示す図である。
図10に示すように、最優先ターゲットの敵キャラクターの位置を中心とする第3範囲内(最優先の第2オブジェクトの周囲)に、他の処理対象の敵キャラクターが存在しない場合には、最優先ターゲットの敵キャラクターの位置が特定ポイントとして決定される。
【0105】
一方、
図11に示すように、第3範囲内に他の処理対象の敵キャラクターが存在する場合には、最優先ターゲットの敵キャラクターの位置と、他の処理対象の敵キャラクターの位置に基づいて、特定ポイントが決定される。
【0106】
詳細には、最優先ターゲットの敵キャラクターの位置の重み付けが最も重くなるように、第3範囲内の敵キャラクターの位置に重み付けがされつつ、第3範囲内の敵キャラクターの位置の重心が求められることにより、特定ポイントが決定される。
【0107】
図11の例では、第3範囲内において、最優先ターゲットの敵キャラクターAの右側に敵キャラクターBが存在するため、敵キャラクターAの位置と敵キャラクターBの位置と各敵キャラクターの位置の重み付けに基づいて、最優先ターゲットの敵キャラクターAの位置から右側にずれた位置に、特定ポイントが決定されている。
【0108】
これにより、複数の敵キャラクターが存在する場合であっても、各敵キャラクターの位置をプレイヤーが把握しやすくなるように、仮想カメラの向きを制御することができる。
【0109】
図12は、ディスプレイ200に表示されるゲーム画像の例を示す図である。
図12の例では、敵キャラクターAが最優先ターゲットとして設定されているが、上述した第3範囲内において最優先ターゲットの敵キャラクターAの右側に敵キャラクターBが存在するため、最優先ターゲットの敵キャラクターAの位置から右側にずれた位置に特定ポイントが決定されている。
【0110】
特定ポイントが決定されると、自キャラクターが近接武器による攻撃アクション中である場合、または自キャラクターが回避アクション中である場合には、
図12に示す第1判定範囲(所定範囲)内に特定ポイントを中心とする球状の特定範囲が収まるように、仮想カメラの向きを補正する仮想カメラ補正処理が行われる。
【0111】
具体的には、第1判定範囲は、仮想3次元空間に配置されたオブジェクトを投影するスクリーン上において、第1判定範囲の中心がスクリーンの中心となるように設定される。そして、仮想カメラの位置と特定範囲を結ぶ円錐状の範囲がスクリーンと第1判定範囲の内側で交差しない場合に、円錐状の範囲がスクリーンと第1判定範囲の内側で交差するように、仮想カメラの向きが補正される。
【0112】
これにより、自キャラクターが近接武器による攻撃アクション中である場合には、攻撃対象となっている敵キャラクターがなるべくディスプレイ200の表示領域の中心に表示され、自キャラクターが回避アクション中である場合には、自キャラクターを攻撃している敵キャラクターがなるべくディスプレイ200の表示領域の中心に表示されるようにすることができる。
【0113】
ただし、自キャラクターが回避アクション中である場合には、自キャラクターの移動速度が速いため、必ず第1判定範囲内に特定範囲が収まるように仮想カメラの向きが補正されるようにすると、仮想カメラの向きが急激に変化して、かえって見にくい画像が表示されてしまうことがある。
【0114】
そこで、自キャラクターが回避アクション中である場合には、仮想カメラの向きが急激に変化しないように、1フレームにおける仮想カメラの向きの補正量の制限内で、第1判定範囲内に特定範囲が収まるようになる最も近い位置に向けて仮想カメラの向きが補正される。従って、自キャラクターが回避アクション中である場合には、第1判定範囲内に特定範囲が収まりきらない場合もある。
【0115】
また、自キャラクターが移動中である場合には、
図12に示す第2判定範囲(所定範囲)内に特定ポイントを中心とする球状の特定範囲が収まるように、仮想カメラの向きが補正される。
【0116】
具体的には、第2判定範囲は、第1判定範囲よりも広く、スクリーン上において第2判定範囲の中心がスクリーンの中心からやや右側にずれるように設定される。そして、仮想カメラの位置と特定範囲を結ぶ円錐状の範囲がスクリーンと第2判定範囲の内側で交差しない場合に、円錐状の範囲がスクリーンと第2判定範囲の内側で交差するように、仮想カメラの向きが補正される。
【0117】
これにより、自キャラクターが移動中である場合には、自キャラクターが近接武器による攻撃アクション中である場合および自キャラクターが回避アクション中である場合よりも、特定ポイントに基づいて仮想カメラの向きが補正される頻度が減少するようにしつつ、ディスプレイ200の表示領域の中心から左下方にずれた位置に表示される自キャラクターの右側に、最優先ターゲットの敵キャラクターが表示されることが多くなるようにすることができる。
【0118】
なお、
図12に示す特定ポイント、特定範囲、第1判定範囲、第2判定範囲は、データとして存在するが、画像として表示されない。
【0119】
なお、図示しないが、ドラゴンなどの大型の敵キャラクターが最優先ターゲットとして設定されている場合には、大型の敵キャラクターの顔などの重要な部分に、上述した球状の特定範囲よりも大きい立方体状の特定範囲が設定され、立方体状の特定範囲が第1判定範囲内あるいは第2判定範囲内に収まるように、仮想カメラの向きが補正される。このように、敵キャラクターの大きさや形状に応じて、特定範囲の大きさや形状も異なっている。
【0120】
ただし、大型の敵キャラクターについては、大型の敵キャラクターの特定範囲が第1判定範囲内あるいは第2判定範囲内に収まっているが、大型の敵キャラクターの末端部分がスクリーンの外、すなわち表示範囲外となることがあり、ディスプレイ200に表示されないこともある。
【0121】
また、最優先ターゲットの敵キャラクターを中心とする第3範囲内の他の処理対象の敵キャラクターが大型の敵キャラクターである場合には、仮想カメラの向きの補正だけでは大型の敵キャラクターが表示されなくなってしまうことがあるため、仮想カメラの向きに沿った方向に仮想カメラの位置が自キャラクターから離れるように補正される。
【0122】
詳細には、大型の敵キャラクターの大きさや形状に応じた仮想カメラと自キャラクターの距離が、複数種類の大型の敵キャラクターのそれぞれについて定められており、仮想カメラと自キャラクターの距離が、大型の敵キャラクターについて定められた距離となるように、仮想カメラの位置が補正される。
【0123】
また、自キャラクターと最優先ターゲットとの距離が近いことにより、第3範囲内の敵キャラクターが表示範囲外となる場合には、第3範囲内の敵キャラクターが表示範囲内となるように、仮想カメラの向きに沿った方向に仮想カメラの位置が自キャラクターから離れるように補正される。
【0124】
また、処理対象の敵キャラクターの数が多いことにより、第3範囲内でなくても仮想カメラの後方の第4範囲内に敵キャラクターが存在する場合には、第4範囲内の敵キャラクターが表示範囲内となるように、仮想カメラの向きに沿った方向に仮想カメラの位置が自キャラクターから離れるように補正される。
【0125】
こうして本実施形態では、プレイヤーが仮想カメラ入力を行わなくても、あるいはプレイヤーが最優先ターゲットを選択する入力を行わなくても、自キャラクターと複数の敵キャラクターの位置、向き、大きさなどに応じて、表示させるべき敵キャラクターが自動的かつ適切に表示される。
【0126】
これにより本実施形態では、複数の敵キャラクターとバトルを行う際に、プレイヤーが移動入力、攻撃入力、あるいは回避入力に集中することができ、複数の敵キャラクターとのバトルを楽しむことができる。
【0127】
以下では、本実施形態の端末装置14の端末情報処理部100で行われる処理の流れを、
図13~
図19のフローチャートを用いて説明する。特に、
図14に示す敵キャラクター検出処理と、
図15および
図16に示す最優先ターゲット設定処理は、最優先オブジェクト設定部122により行われ、
図17に示す特定ポイント決定処理は、特定ポイント決定部124により行われ、
図18および
図19に示す仮想カメラ補正処理は、仮想カメラ制御部126により行われる。
【0128】
図13に示すように、フレームが更新されてオブジェクトの配置が更新されると(ステップS100でY)、プレイヤー入力があり(ステップS102でY)、仮想カメラ入力がある場合に(ステップS104でY)、最優先ターゲットが設定中であるか否か判断され(ステップS106)、最優先ターゲットが設定中である場合には(ステップS106でY)、最優先ターゲットの設定が解除されて(ステップS108)、処理が終了する。
【0129】
一方、プレイヤー入力があるが(ステップS102でY)、仮想カメラ入力がない場合には(ステップS104でN)、自キャラクターが近接武器を装備しているか否か判断され(ステップS110)、近接武器を装備している場合には(ステップS110でY)、敵キャラクター検出処理が行われ(ステップS112)、近接武器を装備していない場合には(ステップS110でN)、処理が終了する。
【0130】
敵キャラクター検出処理の結果、処理対象の敵キャラクターが存在する場合には(ステップS114でY)、最優先ターゲット設定処理(ステップS116)、特定ポイント決定処理(ステップS118)、仮想カメラ補正処理(ステップS120)が行われる。
【0131】
図14に示すように、敵キャラクター検出処理では、自キャラクターの位置と仮想カメラの向きに基づいて検出範囲が取得され(ステップS200)、取得された検出範囲内の敵キャラクターが検出される(ステップS202)。
【0132】
すると、最優先ターゲットが設定中であり(ステップS204でY)、最優先ターゲットが検出範囲内であるが(ステップS206でY)、最優先ターゲットが遮蔽状態であり(ステップS208でY)、遮蔽状態が所定期間継続している場合には(ステップS210でY)、最優先ターゲットの設定が解除される(ステップS212)。
【0133】
また、最優先ターゲットが検出範囲内でない場合にも(ステップS206でN)、最優先ターゲットの設定が解除される(ステップS212)。
【0134】
一方、最優先ターゲットが設定中でない場合(ステップS204でN)、最優先ターゲットが遮蔽状態でない場合(ステップS208でN)、または遮蔽状態が所定期間継続していない場合には(ステップS210でN)、最優先ターゲットの設定が解除されない。
【0135】
そして、検出した敵キャラクターから最優先ターゲットを除く遮蔽状態の敵キャラクターが除外されて、処理対象の敵キャラクターとして設定される(ステップS214)。
【0136】
図15に示すように、最優先ターゲット設定処理では、自キャラクターが近接武器による攻撃アクション中である場合には(ステップS220でY)、攻撃対象の敵キャラクターが最優先ターゲットに設定される(ステップS222)。
【0137】
また、自キャラクターが回避アクション中である場合には(ステップS224でY)、自キャラクターを攻撃している敵キャラクターが最優先ターゲットに設定される(ステップS226)。
【0138】
また、自キャラクターが近接武器による攻撃アクション中でなく(ステップS220でN)、自キャラクターが回避アクション中でなく(ステップS224でN)、第1範囲内に処理対象の敵キャラクターが存在する場合には(ステップS228でY)、第1範囲内に最優先ターゲットが存在するか否か判断される(ステップS230)。
【0139】
第1範囲内に最優先ターゲットが存在し(ステップS230でY)、第2範囲内に処理対象の敵キャラクターが存在し(ステップS232でY)、最優先ターゲットよりも自キャラクターに近い処理対象の敵キャラクターが存在する場合には(ステップS234でY)、最も近い処理対象の敵キャラクターが最優先ターゲットに設定される(ステップS236)。
【0140】
一方、第1範囲内に最優先ターゲットが存在しない場合には(ステップS230でN)、自キャラクターに最も近い処理対象の敵キャラクターが最優先ターゲットに設定される(ステップS236)。
【0141】
また、第1範囲内に処理対象の敵キャラクターが存在しない場合には(ステップS228でN)、
図16に示すように、移動入力があり(ステップS240でY)、第1範囲外に最優先ターゲットが存在し(ステップS242でY)、移動方向との角度差が第1角度以下の処理対象の敵キャラクターが存在し(ステップS244でY)、移動方向との角度差が最優先ターゲットよりも小さい処理対象の敵キャラクターが存在する場合には(ステップS246でY)、移動方向との角度差が最も小さい処理対象の敵キャラクターが最優先ターゲットに設定される(ステップS248)。
【0142】
また、移動入力がなく(ステップS240でN)、第1範囲外に最優先ターゲットが存在し(ステップS250でY)、仮想カメラの向きとの角度差が第2角度以下の処理対象の敵キャラクターが存在し(ステップS252でY)、仮想カメラの向きとの角度差が最優先ターゲットよりも小さい処理対象の敵キャラクターが存在する場合には(ステップS254でY)、仮想カメラの向きとの角度差が最も小さい処理対象の敵キャラクターが最優先ターゲットに設定される(ステップS256)。
【0143】
また、
図15に示すように、第1範囲内に最優先ターゲットが存在するが(ステップS230でY)、第2範囲内に処理対象の敵キャラクターが存在しない場合や(ステップS232でN)、最優先ターゲットよりも自キャラクターに近い処理対象の敵キャラクターが存在しない場合には(ステップS234でN)、前のフレームにおける最優先ターゲットの設定が維持される。
【0144】
また、
図16に示すように、第1範囲外に最優先ターゲットが存在するが(ステップS242でY)、移動方向との角度差が第1角度以下の処理対象の敵キャラクターが存在しない場合(ステップS244でN)、移動方向との角度差が最優先ターゲットよりも小さい処理対象の敵キャラクターが存在しない場合(ステップS246でN)、仮想カメラの向きとの角度差が第2角度以下の処理対象の敵キャラクターが存在しない場合(ステップS252でN)、仮想カメラの向きとの角度差が最優先ターゲットよりも小さい処理対象の敵キャラクターが存在しない場合には(ステップS254でN)、前のフレームにおける最優先ターゲットの設定が維持される。
【0145】
図17に示すように、特定ポイント決定処理では、最優先ターゲットを中心とする第3範囲内に他の処理対象の敵キャラクターが存在する場合には(ステップS270でY)、最優先ターゲットの位置と他の処理対象の敵キャラクターの位置に基づいて特定ポイントが決定される(ステップS272)。一方、第3範囲内に他の処理対象の敵キャラクターが存在しない場合には(ステップS270でN)、最優先ターゲットの位置が特定ポイントとして決定される(ステップS274)。
【0146】
図18に示すように、仮想カメラ補正処理では、自キャラクターが近接武器による攻撃アクション中であって(ステップS280でY)、特定範囲が第1判定範囲外である場合には(ステップS282でY)、特定範囲が第1判定範囲内となるように仮想カメラの向きが補正される(ステップS284)。一方、特定範囲が第1判定範囲外でない場合には(ステップS282でN)、仮想カメラの向きは補正されない。
【0147】
また、自キャラクターが回避アクション中であって(ステップS286でY)、特定範囲が第1判定範囲外である場合には(ステップS288でY)、補正量の制限内で特定範囲が第1判定範囲内となるように仮想カメラの向きが補正される(ステップS290)。一方、特定範囲が第1判定範囲外でない場合には(ステップS288でN)、仮想カメラの向きは補正されない。
【0148】
また、自キャラクターが近接武器による攻撃アクション中でなく(ステップS280でN)、かつ自キャラクターが回避アクション中でなく(ステップS286でN)、特定範囲が第2判定範囲外である場合には(ステップS292でY)、特定範囲が第2判定範囲内となるように仮想カメラの向きが補正される(ステップS294)。一方、特定範囲が第2判定範囲外でない場合には(ステップS292でN)、仮想カメラの向きは補正されない。
【0149】
また、
図19に示すように、第3範囲内の敵キャラクターが大型の敵キャラクターである場合には(ステップS296でY)、大型の敵キャラクターの種類に応じて仮想カメラの位置が補正される(ステップS298)。
【0150】
また、第3範囲内の敵キャラクターの位置が表示範囲外である場合には(ステップS300でY)、第3範囲内の敵キャラクターの位置が表示範囲内となるように仮想カメラの位置が補正される(ステップS302)。
【0151】
また、仮想カメラの後方の第4範囲内に敵キャラクターが存在する場合には(ステップS304でY)、第4範囲内の敵キャラクターが表示範囲内となるように仮想カメラの位置が補正される(ステップS306)。
【0152】
3.変形例
本発明は、上記の実施形態で説明したものに限らず、種々の変形実施が可能であり、以下に変形例を紹介する。なお、上記実施形態や、以下において変形例として説明する各種の手法は、本発明を実現する手法として適宜組み合わせて採用することができる。
【0153】
まず上記実施形態では、
図4に示すように、自キャラクターの右後方から自キャラクターを見た画像を生成する例を挙げて説明したが、自キャラクターの上後方から自キャラクターを見た画像を生成するようにしてもよい。この場合には、自キャラクターは、ディスプレイ200の表示領域の中心から下方にずれた位置に表示され、第2判定範囲は、第2判定範囲の中心がスクリーンの中心からやや上側にずれるように設定される。
【0154】
また上記実施形態では、自キャラクターの移動方向との角度差が第1角度以下となる他の処理対象の敵キャラクターが存在しなければ、また、仮想カメラの向きとの角度差が第2角度以下となる他の処理対象の敵キャラクターが存在しなければ、前のフレームにおける最優先ターゲットの設定が維持される例を挙げて説明したが、第1角度と第2角度は同一の角度であってもよいし、異なる角度であってもよい。
【0155】
また上記実施形態では、
図6に示す検出範囲、
図7に示す第1範囲および第2範囲は、自キャラクターの位置を中心として設定され、
図10に示す第3範囲は、最優先ターゲットの敵キャラクターの位置を中心として設定される例を挙げて説明したが、検出範囲、第1範囲、第2範囲および第3範囲が、仮想カメラの位置を中心として設定されるようにしてもよい。
【0156】
また上記実施形態では、
図12に示す第1判定範囲内や第2判定範囲内に特定ポイントを中心とする球状の特定範囲が収まるように、仮想カメラの向きが補正される例を挙げて説明したが、第1判定範囲内や第2判定範囲内に特定ポイントが収まるように、仮想カメラの向きが補正されるようにしてもよい。
【0157】
また上記実施形態では、自キャラクターが近接武器による攻撃アクション中である場合、または自キャラクターが回避アクション中である場合に、第1判定範囲に基づいて仮想カメラの向きが補正され、自キャラクターが移動中である場合に、第2判定範囲に基づいて仮想カメラの向きが補正される例を挙げて説明したが、自キャラクターが近接武器による攻撃アクション中である場合、自キャラクターが回避アクション中である場合、および自キャラクターが移動中である場合に、共通の判定範囲に基づいて仮想カメラの向きが補正されるようにしてもよいし、自キャラクターが近接武器による攻撃アクション中である場合、自キャラクターが回避アクション中である場合、および自キャラクターが移動中である場合のそれぞれで、異なる判定範囲に基づいて仮想カメラの向きが補正されるようにしてもよい。
【0158】
また、第1判定範囲内や第2判定範囲内に特定範囲あるいは特定ポイントが収まるように、仮想カメラの位置が補正されるようにしてもよいし、大型の敵キャラクターの種類に応じて仮想カメラの向きが補正されたり、第3範囲内の敵キャラクターの位置が表示範囲内となるように仮想カメラの向きが補正されたりするようにしてもよい。すなわち、特定ポイントに基づいて仮想カメラの位置および向きの少なくとも一方が制御されるようにしてもよい。
【0159】
また、最優先ターゲットの所定範囲内の敵キャラクターの数が所定数よりも多い場合に、仮想カメラの向きおよび位置の少なくとも一方が補正されるようにしてもよい。
【0160】
また上記実施形態では、本発明をソロプレイヤーのアクションゲームについて適用した場合の例を挙げて説明したが、本発明をマルチプレイヤーの対戦ゲームについて適用するようにしてもよく、この場合には、敵キャラクターは他のプレイヤーが操作可能であるようにしてもよい。
【0161】
また上記実施形態では、本発明をアクションゲームに適用した場合の例を挙げて説明したが、本発明をサッカーやバスケットボールなどのスポーツゲームや、格闘ゲーム、レースゲームなど、各種の三人称視点のゲームに適用してもよい。
【0162】
また上記実施形態では、本発明をコンソールビデオゲーム機のゲームアプリに適用した場合を例に挙げて説明したが、本発明をスマートフォン(情報処理装置)や、店舗に設置されるアーケードゲーム装置(情報処理装置)に適用してもよい。そして、本発明をスマートフォンやアーケードゲーム装置に適用する場合にも、端末装置をスマートフォンやアーケードゲーム装置として、複数の端末装置がサーバー装置と互いに通信を行うようにしてもよく、この場合には、端末装置あるいはサーバー装置に本発明を適用することができる。また、サーバー装置12に接続されないスタンドアロンのゲーム装置に本発明を適用してもよい。
【符号の説明】
【0163】
10 情報処理システム、12 サーバー装置、14 端末装置、16 ネットワーク、
20 サーバー情報記憶媒体、30 サーバー記憶部、36 サーバー通信部、
40 サーバー情報処理部、42 サーバーゲーム処理部、48 サーバー通信制御部、
50 プレイヤー入力検出部、52 表示部、54 音出力部、
56 端末情報記憶媒体、60 端末記憶部、62 主記憶部、
64 描画バッファ、66 端末通信部、
100 端末情報処理部、102 端末ゲーム処理部、103 入力受付部、
104 表示制御部、108 画像生成部、110 音生成部、112 端末通信制御部
120 オブジェクト制御部、122 最優先オブジェクト設定部、
124 特定ポイント決定部、126 仮想カメラ制御部