IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社コーエーテクモゲームスの特許一覧

特開2024-29961ゲームプログラム、ゲーム制御方法及び情報処理装置
<>
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図1
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図2
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図3
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図4
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図5
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図6
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図7
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図8
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図9
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図10
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図11
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図12
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図13
  • 特開-ゲームプログラム、ゲーム制御方法及び情報処理装置 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024029961
(43)【公開日】2024-03-07
(54)【発明の名称】ゲームプログラム、ゲーム制御方法及び情報処理装置
(51)【国際特許分類】
   G06T 15/00 20110101AFI20240229BHJP
   A63F 13/52 20140101ALI20240229BHJP
   A63F 13/577 20140101ALI20240229BHJP
   G06T 19/00 20110101ALI20240229BHJP
【FI】
G06T15/00 501
A63F13/52
A63F13/577
G06T19/00 300A
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022132459
(22)【出願日】2022-08-23
(71)【出願人】
【識別番号】595000427
【氏名又は名称】株式会社コーエーテクモゲームス
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】隆藤 唯信
【テーマコード(参考)】
5B050
5B080
【Fターム(参考)】
5B050AA10
5B050BA09
5B050CA08
5B050EA24
5B050EA26
5B050FA02
5B080AA08
5B080BA00
5B080CA00
5B080FA00
5B080GA00
(57)【要約】
【課題】複数のオブジェクトの遮蔽検査を容易に行う。
【解決手段】仮想カメラが撮影しているゲーム画像の描画処理をコンピュータに実行させるゲームプログラムであって、(a)前記仮想カメラが撮影しているオブジェクトが複数存在する場合、複数の前記オブジェクトのそれぞれを一のオブジェクトとして、前記一のオブジェクトから所定距離以内の他のオブジェクトであって、かつ前記一のオブジェクトから前記仮想カメラへ向かう方向に対して所定角度以内の前記他のオブジェクトの有無に応じて前記一のオブジェクトの遮蔽レベルを算出する処理、(b)複数の前記オブジェクト毎の前記遮蔽レベルに基づき複数の前記オブジェクト毎の更新頻度を決定する処理、(c)複数の前記オブジェクト毎の更新頻度に基づき複数の前記オブジェクト毎の描画処理の更新を制御する処理を含む処理を実行させるゲームプログラムが提供される。
【選択図】図7
【特許請求の範囲】
【請求項1】
仮想空間にて仮想カメラが撮影しているゲーム画像の描画処理をコンピュータに実行させるゲームプログラムであって、
(a)前記仮想カメラが撮影しているオブジェクトが複数存在する場合、複数の前記オブジェクトのそれぞれを一のオブジェクトとして、前記一のオブジェクトから所定距離以内の他のオブジェクトであって、かつ前記一のオブジェクトから前記仮想カメラへ向かう方向に対して所定角度以内の前記他のオブジェクトの有無に応じて前記一のオブジェクトの遮蔽レベルを算出する処理と、
(b)複数の前記オブジェクト毎の前記遮蔽レベルに基づき複数の前記オブジェクト毎の更新頻度を決定する処理と、
(c)複数の前記オブジェクト毎の更新頻度に基づき複数の前記オブジェクト毎の描画処理の更新を制御する処理と、
を含む処理を実行させるゲームプログラム。
【請求項2】
前記(a)は、所定角度以内の前記他のオブジェクトがある場合、前記他のオブジェクトの遮蔽レベルよりも高い値に前記一のオブジェクトの遮蔽レベルを算出する、
請求項1に記載のゲームプログラム。
【請求項3】
前記(a)は、所定角度以内の前記他のオブジェクトがない場合、前記一のオブジェクトの遮蔽レベルを最も低いレベルに設定する、
請求項1に記載のゲームプログラム。
【請求項4】
前記(a)は、複数の前記オブジェクトのうち、前記仮想カメラに近いオブジェクトから順に一のオブジェクトとして、前記一のオブジェクトの遮蔽レベルを算出する、
請求項1~3のいずれか一項に記載のゲームプログラム。
【請求項5】
仮想空間にて仮想カメラが撮影しているゲーム画像の描画処理をコンピュータに実行させるゲームプログラムであって、
(a)前記仮想カメラが撮影しているオブジェクトが複数存在する場合、複数の前記オブジェクトの初期状態の遮蔽レベルを取得し、前記初期状態の遮蔽レベルを使用して次フレームの遮蔽レベルを算出する処理と、
(b)算出した前記次フレームの遮蔽レベルを前フレームの遮蔽レベルとして、前記前フレームの遮蔽レベルを使用して次フレームの遮蔽レベルを算出する処理と、
(c)複数の前記オブジェクト毎の前記遮蔽レベルに基づき複数の前記オブジェクト毎の更新頻度を決定する処理と、
(d)複数の前記オブジェクト毎の更新頻度に基づき複数の前記オブジェクト毎の描画処理の更新を制御する処理と、
を含み、
前記(a)は、複数の前記オブジェクトのそれぞれを一のオブジェクトとして前記一のオブジェクトから所定距離以内の他のオブジェクトであって、かつ前記一のオブジェクトから前記仮想カメラへ向かう方向に対して所定角度以内の前記他のオブジェクトがある場合、前記一のオブジェクトの次フレームの遮蔽レベルを前記初期状態の遮蔽レベルよりも上げ、
前記(b)は、複数の前記オブジェクトのそれぞれを一のオブジェクトとして前記一のオブジェクトから所定距離以内の他のオブジェクトであって、かつ前記一のオブジェクトから前記仮想カメラへ向かう方向に対して所定角度以内の前記他のオブジェクトがある場合、前記一のオブジェクトの次フレームの遮蔽レベルを前記前フレームの遮蔽レベルよりも上げる処理を実行させるゲームプログラム。
【請求項6】
前記(b)は、複数の前記オブジェクトの前記次フレームの遮蔽レベルが前記前フレームの遮蔽レベルから変化しなくなるまで複数の前記オブジェクト毎の遮蔽レベルを算出する、
請求項5に記載のゲームプログラム。
【請求項7】
複数の前記オブジェクトのそれぞれはコリジョンオブジェクトにより覆われ、複数の前記オブジェクトの衝突を判定可能であり、
前記(a)は、複数の前記オブジェクトのそれぞれを一のオブジェクトとして、前記一のオブジェクトと衝突すると判定された他のオブジェクトを特定し、特定した他のオブジェクトのうち前記一のオブジェクトから前記仮想カメラへ向かう方向に対して所定角度以内の前記他のオブジェクトの有無に応じて前記一のオブジェクトの遮蔽レベルを算出する、
請求項1~3のいずれか一項に記載のゲームプログラム。
【請求項8】
前記コリジョンオブジェクトは球状であり、
前記コリジョンオブジェクトの半径の2倍が、前記一のオブジェクトから前記仮想カメラへ向かう方向に対して所定角度以内及び前記一のオブジェクトから所定距離以内の領域の半径よりも大きい、
請求項7に記載のゲームプログラム。
【請求項9】
仮想空間にて仮想カメラが撮影しているゲーム画像の描画処理をコンピュータに実行させるゲーム制御方法であって、
(a)前記仮想カメラが撮影しているオブジェクトが複数存在する場合、複数の前記オブジェクトのそれぞれを一のオブジェクトとして、前記一のオブジェクトから所定距離以内の他のオブジェクトであって、かつ前記一のオブジェクトから前記仮想カメラへ向かう方向に対して所定角度以内の前記他のオブジェクトの有無に応じて前記一のオブジェクトの遮蔽レベルを算出する処理と、
(b)複数の前記オブジェクト毎の前記遮蔽レベルに基づき複数の前記オブジェクト毎の更新頻度を決定する処理と、
(c)複数の前記オブジェクト毎の更新頻度に基づき複数の前記オブジェクト毎の描画処理の更新を制御する処理と、
処理をコンピュータが実行する、ゲーム制御方法。
【請求項10】
仮想空間にて仮想カメラが撮影しているゲーム画像の描画処理を実行する情報処理装置であって、
前記仮想カメラが撮影しているオブジェクトが複数存在する場合、複数の前記オブジェクトのそれぞれを一のオブジェクトとして、前記一のオブジェクトから所定距離以内の他のオブジェクトであって、かつ前記一のオブジェクトから前記仮想カメラへ向かう方向に対して所定角度以内の前記他のオブジェクトの有無に応じて前記一のオブジェクトの遮蔽レベルを算出する算出部と、
複数の前記オブジェクト毎の前記遮蔽レベルに基づき複数の前記オブジェクト毎の更新頻度を決定し、複数の前記オブジェクト毎の更新頻度に基づき複数の前記オブジェクト毎の描画処理の更新を制御する更新制御部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ゲームプログラム、ゲーム制御方法及び情報処理装置に関する。
【背景技術】
【0002】
特許文献1には、プレイヤキャラクタの視野に露出するオブジェクトの表面積を測定し、測定された表面積のうち他のオブジェクトの表面積により遮蔽される面積が少ないオブジェクトを優先的にローディングさせることが記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第4503073号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、プレイヤキャラクタの視野に露出するオブジェクトが他のオブジェクトに遮蔽されるか否かの検査を遂行することができる多数のアルゴリズムを開示している。例えば、特許文献1は、当該遮蔽の検査に、遮蔽地平線(OccluSionHorizon)、シャフト遮蔽選別(ShaftOccluSionCulling)、ハードウェア遮蔽クエリ(HardwareOccluSionQuery)、階層的Z-バッファーリング(HierarchicalZ-Buffering)、階層的遮蔽マップアルゴリズム(TheHOMalgorithm)のようなアルゴリズムを多様に選択できることを記載している。
【0005】
本開示は、複数のオブジェクトの遮蔽検査を容易に行い、描画処理の負荷を軽減することができる技術を提案する。
【課題を解決するための手段】
【0006】
1つの実施態様では、仮想空間にて仮想カメラが撮影しているゲーム画像の描画処理をコンピュータに実行させるゲームプログラムであって、(a)前記仮想カメラが撮影しているオブジェクトが複数存在する場合、複数の前記オブジェクトのそれぞれを一のオブジェクトとして、前記一のオブジェクトから所定距離以内の他のオブジェクトであって、かつ前記一のオブジェクトから前記仮想カメラへ向かう方向に対して所定角度以内の前記他のオブジェクトの有無に応じて前記一のオブジェクトの遮蔽レベルを算出する処理と、(b)複数の前記オブジェクト毎の前記遮蔽レベルに基づき複数の前記オブジェクト毎の更新頻度を決定する処理と、(c)複数の前記オブジェクト毎の更新頻度に基づき複数の前記オブジェクト毎の描画処理の更新を制御する処理と、を含む処理を実行させるゲームプログラムが提供される。
【発明の効果】
【0007】
1つの側面では、本開示は、複数のオブジェクトの遮蔽検査を容易に行い、描画処理の負荷を軽減することができる。
【図面の簡単な説明】
【0008】
図1】実施形態に係るゲームシステムの構成例を示す図。
図2】実施形態に係るゲームシステムの他の構成例を示す図。
図3】実施形態に係るゲーム機のハードウェア構成を示す図。
図4】実施形態に係るゲーム機の機能構成を示す図。
図5】従来の描画におけるオブジェクトの更新頻度の判定を説明するための図。
図6】第1実施形態に係るゲーム制御方法を示すフローチャート。
図7】第1実施形態に係るゲーム制御方法における遮蔽レベルの算出例を示す図。
図8】第1実施形態に係るゲーム制御方法における遮蔽レベルの算出例を示す図。
図9】第2実施形態に係るゲーム制御方法を示すフローチャート。
図10】第2実施形態に係るゲーム制御方法における遮蔽レベルの算出例を示す図。
図11】第2実施形態に係るゲーム制御方法における遮蔽レベルの算出例を示す図。
図12】第2実施形態に係るゲーム制御方法における遮蔽レベルの算出例を示す図。
図13】第3実施形態に係るゲーム制御方法を示すフローチャート。
図14】第3実施形態に係るゲーム制御方法を比較例と比較して説明するための図。
【発明を実施するための形態】
【0009】
以下、本開示を実施するための形態について図面を参照して説明する。なお、本明細書及び図面において、実質的に同一の構成については、同一の符号を付することにより重複した説明を省く場合がある。
【0010】
[ゲームシステム]
図1は、実施形態に係るゲームシステム1の構成例を示す図である。ゲームシステム1は、情報処理装置の一例であるゲーム機3と、ゲームコントローラ5と、表示装置7とを有する。ゲームコントローラ5及び表示装置7の各々は、ゲーム機3と有線又は無線により通信可能に接続されている。
【0011】
ゲーム機3は、例えば据え置き型のゲーム専用機である。但し、これに限定されるものではなく、ゲーム機3は、例えば入力部や表示部等を一体に備えた携帯型のゲーム機でもよい。
【0012】
また、ゲーム機3はゲーム専用機に限らず、例えば、コンピュータ、デスクトップ型コンピュータ、ノート型コンピュータ、タブレット型コンピュータ等のように、コンピュータとして製造、販売等されているものや、スマートフォン、携帯電話、ファブレット等のように、電話機としても機能する携帯端末でもよい。これらの装置は、普段は汎用的な情報処理端末装置として利用されるが、プレイヤがインストールされたゲームプログラムを実行すると、ゲーム専用機と同様、プレイヤがゲームを進行できるようになる。
【0013】
ゲーム機3には、本実施形態のゲームプログラムがインストールされる。ゲームプログラムはCD-ROMなどの光記憶媒体やUSBメモリなどの半導体メモリに記憶された状態で配布されたり、サーバ装置からダウンロードされたりする形態で配布される。
【0014】
プレイヤは、ゲームコントローラ5を用いて各種の操作入力を行う。図1に示す例では、ゲームコントローラ5は例えば十字キー9、及び複数のボタン8等を有する。なお、ゲームコントローラ5は上記に代えて又は加えて、例えばジョイスティックやタッチパッド等を有してもよい。また、ゲームコントローラ5がマイクを備え、音声操作が可能でもよい。ゲームコントローラ5がジャイロセンサや加速度センサ等を備え、プレイヤがゲームコントローラ5の姿勢を変えることで操作が可能でもよい。
【0015】
また、ゲーム機3は更にネットワーク上のサーバ装置と通信してもよい(図2参照)。同じゲームプログラムを実行する複数のゲーム機3は、サーバ装置に接続するので、いわゆるオンラインゲームが可能になる。オンラインゲームとは、例えば、多人数で同じゲームプログラムを協調して操作できるゲームをいう。オンラインゲームのサーバ装置は、他のプレイヤの位置や操作コマンドを受け付け、他のプレイヤのゲーム機3に送信する処理等を行ってもよい。ゲーム機3では各プレイヤの描画や操作コマンドの反映処理など実際のゲーム処理を行う。
【0016】
図2は、実施形態におけるゲームシステム1の他の構成例を示す図である。実施形態のゲームシステム1は、ネットワークN(例えば、インターネット等)を介してゲームに関する各種サービスをプレイヤに提供する。ゲームシステム1は、サーバ装置2と端末装置30とを有する。サーバ装置2は、ゲームに関する各種サービスを端末装置30に提供する情報処理装置の一例である。サーバ装置2は、パーソナルコンピュータ、ワークステーション、クラウドコンピュータ等であってよい。
【0017】
端末装置30は、ゲームをプレイする際にプレイヤが使用する情報処理装置の一例である。端末装置30は、ゲーム機でもよいし、コンピュータ、デスクトップ型コンピュータ、ノート型コンピュータ、タブレット型コンピュータ等のように、コンピュータとして製造、販売等されているものや、スマートフォン、携帯電話、ファブレット等のように、電話機としても機能する携帯端末でもよい。
【0018】
端末装置30は、サーバ装置2に対してゲームに関する各種情報(ゲーム制御方法が記載されたゲームプログラムやゲーム画面等)の配信要求を行う。サーバ装置2は、端末装置30から各種情報の配信要求を受け付けると、端末装置30においてプレイするゲームプログラムやゲーム画面のWebページを配信する。
【0019】
端末装置30は、プレイヤにゲーム画面を表示するWebページを閲覧させるためのWebブラウザ機能を有する。これにより、端末装置30は、サーバ装置2から配信されたゲーム画面等のWebページを表示することができる。サーバ装置2は、プレイヤが動作させるプレイヤキャラクタ及びノンプレイヤキャラクタが敵及び味方に分かれて対戦するオンラインゲーム等のゲームを提供してもよい。
【0020】
ゲームシステム1は、図1に例示するゲーム機3や図2に例示する端末装置30が別のゲーム機3や別の端末装置30と通信するいわゆるP2P(Peer To Peer)方式でもよい。この場合、図2のサーバ装置2は設けなくてもよい。また、ゲームシステム1はいわゆるクラウドゲームでもよい。なお、図1及び図2のゲームシステム1は一例であり、用途や目的に応じて様々なシステム構成例が考えられる。以下では、主に図1の構成を用いて本実施形態のゲームシステム1について説明する。
【0021】
ゲーム機3は、対戦ゲーム、スポーツゲーム、レーシングゲーム、街づくりゲーム等、あらゆるゲームを提供できる。また、ゲーム機3は、ガチャ等によりゲームを提供できる。ただし、本実施形態にて開示するゲームシステム1で実行されるゲームは、仮想空間において実行される3Dゲーム又は2Dゲームであって、対戦ゲーム(アクションゲーム)が好適である。本実施形態では、第1キャラクタと第2キャラクタとの対戦において、より自然なゲームを演出するようにゲーム処理を制御する。
【0022】
なお、オブジェクトとは、本実施形態では主に仮想空間(例えば3D空間)に存在するキャラクタを含む物体をまとめてオブジェクトという。例えば、プレイヤキャラクタ(PC)、ノンプレイヤキャラクタ(以下、「NPC」ともいう。)、建物等、およそ仮想空間に登場するものはオブジェクトである。キャラクタには、敵キャラクタや味方キャラクタが含まれ、プレイヤが操作するプレイヤキャラクタでもよいし、AI等が自動操作するノンプレイヤキャラクタでもよい。
【0023】
[ゲーム機のハードウェア構成]
次に、ゲーム機3のハードウェア構成について、図3を参照して説明する。図3は、実施形態に係るゲーム機3のハードウェア構成を示す図である。ゲーム機3は、CPU(Central Processing Unit)121、メモリ122、通信装置123、入力装置124及び表示装置125を有する。CPU121は、ゲーム機3を制御する。メモリ122は、例えば、CPU121が直接アクセス可能なゲーム機3内の記憶媒体である。通信装置123は、他の装置との通信を制御するネットワーク回路などの通信デバイスである。入力装置124は、入力デバイスであり、ゲームコントローラ5のようにゲーム機3に接続され、ゲーム機3の内部に有しなくてもよい。入力装置124は、カメラ又はタッチパネルなどの入力デバイスでもよい。表示装置125は、ディスプレイなどの出力デバイスである。
【0024】
ゲーム機3は、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などの各種マイクロプロセッサ、VRAMやRAM、ROM等の各種のメモリ122を搭載してもよい。
【0025】
ゲーム機3は、演算処理によりゲームプレイするために必要な各種のゲームデータをメモリ122に記憶し、ゲーム処理を制御及び管理するゲーム管理機能を有する。CPU121が所定のゲームプログラム及びゲームデータに基づいて演算処理を行うことにより、ゲーム制御方法が実行される。
【0026】
[ゲーム機の機能構成]
次に、ゲーム機3の機能構成について図4を参照して説明する。図4は、実施形態に係るゲーム機3の機能構成を示す図である。ゲーム機3は、制御部11、記憶部12及び通信部13を有する。
【0027】
制御部11は、各部間のデータの受け渡しを行うと共にゲーム機3の制御を行う。制御部11は、CPU121がメモリ122に格納されたゲームプログラムを実行することによって実現される。
【0028】
記憶部12は、ゲームをコンピュータに実行させるゲームプログラム、各種のデータ及び各種の情報を記憶している。ゲームプログラムは、仮想空間にて仮想カメラが撮影しているゲーム画像の描画処理をコンピュータに実行させるプログラムを含む。記憶部12は、例えばメモリ122によって実現される。記憶部12は、ゲームプログラムが記憶された読み取り専用の記憶領域であるROM(Read Only Memory)と、制御部11による演算処理のワーク領域として使用される書き換え可能な記憶領域であるRAM(Random Access Memory)とを有している。記憶部12は、例えば、フラッシュメモリやハードディスク等の不揮発性の記憶装置によって実現される。ゲームプログラムの一部又は全部はRAMに格納されてもよい。
【0029】
更に、記憶部12は、遮蔽レベル21及びキャラクタ情報22を記憶する。遮蔽レベル21の算出については後述する。キャラクタ情報22は、キャラクタの大きさ、キャラクタの重要度、キャラクタの移動速度、キャラクタのモーション(攻撃モーション中か、攻撃されているか等)、キャラクタとプレイヤキャラクタとの距離、キャラクタと仮想カメラとの距離等が挙げられる。
【0030】
通信部13は、端末装置及び/又はその他の装置との間で通信を行うための機能を有する。通信部13は、端末装置及び/又はその他の装置から送信される各種データを受信する受信部としての機能と、制御部11の指令に応じて各種データを端末装置及び/又はその他の装置へ送信する送信部としての機能を有する。通信部13は、例えば、NIC(Network Interface Card)によって実現される。
【0031】
制御部11は、ゲーム実行処理部14、算出部15、更新制御部16、衝突判定部17及び表示制御部18を有する。ゲーム実行処理部14は、仮想空間内において例えばプレイヤが操作するプレイヤキャラクタが敵ボスキャラクタと対戦する対戦ゲームを実行する。ただし、ゲーム実行処理部14が行うゲームは、対戦ゲーム以外の様々なゲームであってよい。
【0032】
なお、本明細書におけるオブジェクトは、仮想空間に表示される表示部品であり、ゲーム画面に表示された、移動可能なオブジェクト及び固定オブジェクトが含まれる。移動可能なオブジェクトには、プレイヤキャラクタ、ノンプレイヤキャラクタ、馬、武器等が含まれる。建物や山等のオブジェクトは、通常固定オブジェクトであるが、移動可能なオブジェクトとしてもよい。
【0033】
算出部15は、仮想カメラが撮影しているオブジェクトが複数存在する場合、複数の前記オブジェクトのそれぞれを一のオブジェクトとして、前記一のオブジェクトから所定距離以内の他のオブジェクトであって、かつ前記一のオブジェクトから仮想カメラへ向かう方向に対して所定角度以内の前記他のオブジェクトの有無に応じて前記一のオブジェクトの遮蔽レベルを算出する。
【0034】
算出部15は、所定角度以内の他のオブジェクトがある場合、前記他のオブジェクトの遮蔽レベルよりも高い値に前記一のオブジェクトの遮蔽レベルを算出してもよい。所定角度以内の他のオブジェクトがない場合、前記一のオブジェクトの遮蔽レベルを最も低いレベルに設定してもよい。
【0035】
算出部15は、複数の前記オブジェクトのうち、前記仮想カメラに近いオブジェクトから順に一のオブジェクトとして、前記一のオブジェクトの遮蔽レベルを算出してもよい。
【0036】
算出部15は、複数の前記オブジェクトの最新フレーム(次フレーム)の遮蔽レベルが直前フレーム(前フレーム)の遮蔽レベルから変化しなくなるまで複数の前記オブジェクト毎の遮蔽レベルを算出してもよい。算出部15は、最新フレーム(次フレーム)における複数の前記オブジェクトの遮蔽レベルが、直前フレーム(前フレーム)における複数の前記オブジェクトの遮蔽レベルから変化しない場合、遮蔽レベルの算出を終了してもよい。
【0037】
更新制御部16は、複数の前記オブジェクト毎の前記遮蔽レベルに基づき複数の前記オブジェクト毎の更新頻度を決定し、複数の前記オブジェクト毎の更新頻度に基づき複数の前記オブジェクト毎の描画処理の更新を制御する。
【0038】
更新制御部16は、複数の前記オブジェクト毎の更新頻度に従い、フレーム毎に複数の前記オブジェクトの夫々について更新の有無を判定し、更新が必要であると判定されたオブジェクトの描画処理の更新を行ってもよい。
【0039】
衝突判定部17は、複数のオブジェクトの衝突判定を行う。衝突判定部17については第3実施形態にて詳述する。
【0040】
表示制御部18は、仮想空間にて仮想カメラが撮影しているゲーム画像の描画処理に従い、ゲーム画面にキャラクタ等のゲームシーンを描画する。表示制御部18は、複数の前記オブジェクト毎の更新頻度に基づき複数の前記オブジェクト毎の描画処理の更新を制御する。表示制御部18は、複数のキャラクタやその他のオブジェクトが登場する仮想空間をゲーム機3の表示装置125に表示させる。表示制御部18は、ゲーム画面のWebページを制御し、ゲーム画面のWebページを通信部13によりゲームを行う端末装置に送信し、端末装置の画面に表示してもよい。
【0041】
[従来の更新頻度の判定]
従来の更新頻度の判定について、図5を参照しながら説明する。図5は、従来の描画におけるオブジェクトの更新頻度の判定を説明するための図である。
【0042】
ゲーム画面にキャラクタ等のオブジェクトを描画する際、更新処理の間引きや遠方のオブジェクトの表示の簡略化が行われることがある。特に大量のキャラクタのアクション等の描画をフレーム毎に更新する際に、すべてのキャラクタのアクションを更新すると描画処理が重くなる。そこで、キャラクタ毎の更新頻度を決定するためにどのキャラクタの描画処理を間引いたり、表示を簡略化したりするかの更新優先度の判定を行うが、その判定手法のほとんどは仮想カメラからキャラクタまでの距離を用いている。
【0043】
このように従来手法では仮想カメラからの距離に応じてキャラクタ毎の更新優先度を決め、更新優先度が低いキャラクタに対して軽量な更新への変更、更新処理の間引きを行っている。例えば図5では、B領域に位置するキャラクタNは、仮想カメラから近い(見えやすい)ため、更新優先度を高くする。一方、A領域に位置するキャラクタNは、仮想カメラから遠い(前のキャラクタに隠れるので仮想カメラから見えにくい)ため、更新優先度を低くする。なお、図中の〇は、ノンプレイヤキャラクタ(NPC)を示すが、プレイヤキャラクタであってもよい。
【0044】
これに対して、本実施形態ではキャラクタ同士の隣接状態又は接触状況から遮蔽検査を行い、仮想カメラからの見えやすさ(見えにくさ)を推測し、更新頻度の決定に利用する。例えば、本実施形態では複数のオブジェクトの遮蔽検査を容易に行って遮蔽レベルを算出する。そして、遮蔽レベルに基づき更新頻度を決定して更新処理の間引きや遠方のオブジェクトの表示の簡略化を行い、描画処理の負荷を軽減する。
【0045】
これにより、クオリティの低い更新処理や、更新処理が間引かれたキャラクタはユーザから見えにくくする。これにより、描画処理の負荷を軽減しつつ、高品質なゲーム画像をユーザに提供することができる。以下、第1~第3実施形態に係るゲーム制御方法について順に説明する。
【0046】
<第1実施形態>
まず、図6図8を参照しながら、第1実施形態に係るゲーム制御方法について説明する。図6は、第1実施形態に係るゲーム制御方法を示すフローチャートである。図7及び図8は、第1実施形態に係るゲーム制御方法における遮蔽レベルの算出例を示す図である。
【0047】
[ゲーム制御方法]
ゲーム制御方法が開始されると、ゲーム機3は、図6に示すフローチャートの各処理を実行する。ゲーム実行処理部14により実行されるゲームの画面上のキャラクタは、仮想カメラ10により撮影されている。ここでは、仮想カメラ10が複数のキャラクタを撮影している例を挙げて説明する。キャラクタはノンプレイヤキャラクタ(NPC)であってもよいし、プレイヤキャラクタ(PC)であってもよい。
【0048】
まず、ステップS1において、更新制御部16は、仮想カメラ10に写る全キャラクタを未処理キャラクタ(遮蔽レベルの更新が未処理のキャラクタ)に設定する。次に、ステップS2において、算出部15は、フレーム毎に仮想カメラ10が撮影している未処理キャラクタを仮想カメラ10から近い順に並び替えたリストを作成する。
【0049】
次に、ステップS3において、算出部15は、遮蔽レベルの更新がされていない未処理のキャラクタがあるかを判定する。未処理のキャラクタがあると判定した場合、算出部15は、ステップS5に進む。未処理のキャラクタがないと判定した場合、算出部15は、ステップS13に進む。
【0050】
ステップS5では、算出部15は、未処理のキャラクタのうち最も仮想カメラ10に近いキャラクタを特定する。次に、ステップS7において、算出部15は、特定したキャラクタから一定距離以内、かつ特定したキャラクタからカメラ方向の左右45度以内の領域に他のキャラクタがあるかを判定する。なお、「特定したキャラクタから一定距離以内、かつ特定したキャラクタからカメラ方向の左右45度以内の領域に他のキャラクタがあるか」の条件を「条件1」とする。図7(a)及び(b)の扇状の領域Rは、条件1が示す「一定距離以内、かつカメラ方向の左右45度以内の領域」の一例である。図7(a)及び(b)では、キャラクタN1から半径Fの一定距離P以内であり、かつキャラクタN1から仮想カメラ10の方向Cの左右45度以内の領域」が扇状の領域Rになっている。なお、一定距離P及び仮想カメラ10の方向Cの左右45度以内は一例であり、任意の距離及び任意の角度に設定できる。
【0051】
ステップS7において条件1を満たす他のキャラクタがないと判定された場合、算出部15は、ステップS9に進み、特定したキャラクタの遮蔽レベルに「0」を設定し、ステップS3に戻る。図7(a)の場合、扇状の領域Rに他のキャラクタがいない。この場合、キャラクタN1の遮蔽レベルには「0」が設定される。図7(a)のキャラクタN1の内部に示される数値は、遮蔽レベルを示す。なお、特定したキャラクタの遮蔽レベルを最も低いレベルに設定すれば、「0」以外の値を用いてもよい。
【0052】
一方、ステップS7において条件1を満たす他のキャラクタがあると判定された場合、算出部15は、ステップS11に進む。算出部15は、ステップS11において、特定したキャラクタの遮蔽レベルに、条件1を満たす他のキャラクタの遮蔽レベルのうち最大遮蔽レベルに「1」を加算した値を設定し、ステップS3に戻る。図7(b)の場合、扇状の領域Rに他のキャラクタN2、N3がいる。この場合、キャラクタN1の遮蔽レベルに、他のキャラクタN2、N3の最大遮蔽レベル「1」に「1」を加算した値である「2」を設定する。なお、特定したキャラクタの遮蔽レベルを、条件1を満たす他のオブジェクトの遮蔽レベルよりも高い値に設定すれば、他のキャラクタの最大遮蔽レベルに「1」を加算した値以外の値を用いてもよい。
【0053】
以上に説明した、ステップS1~S11の処理は、ステップS3において前フレーム時から遮蔽レベルの更新がされていない未処理のキャラクタがないと判定されるまで繰り返される。これにより、図8に一例を示すように、全てのキャラクタに対して遮蔽レベルの更新処理が実行される。これにより、キャラクタN毎の最終的な遮蔽レベルが決定する。
【0054】
ステップS3において未処理のキャラクタがないと判定されたとき、ステップS13に進み、更新制御部16は、複数のキャラクタ毎の遮蔽レベルに基づき、複数のキャラクタ毎の更新頻度を決定する。例えば、更新制御部16は、遮蔽レベル4以上のキャラクタは5フレームに1回の割合で更新処理を行い、遮蔽レベル4未満1以上のキャラクタは3フレームに1回の割合で更新処理を行う。また、更新制御部16は、遮蔽レベル0のキャラクタはフレーム毎に更新処理を行う等、更新頻度の決定を行う。遮蔽レベルが高いキャラクタは仮想カメラ10から見えにくいため、更新頻度を減らす。
【0055】
次に、ステップS15において、表示制御部18は、複数のキャラクタ毎の更新頻度に基づき、複数のキャラクタ毎の更新を制御してゲーム画像を描画する。次に、ステップS17において、更新制御部16は、ゲームが終了するかを判定する。更新制御部16は、ステップS17においてゲームが終了すると判定した場合、本処理を終了する。更新制御部16は、ステップS17においてゲームが終了しないと判定した場合、ステップS1に戻り、仮想カメラ10に写る全キャラクタを未処理キャラクタ(遮蔽レベルの更新が未処理のキャラクタ)に設定し、処理を継続する。
【0056】
第1実施形態に係るゲーム制御方法によれば、遮蔽レベルを算出する特定のキャラクタからの距離及び仮想カメラ10の向きと、周辺にいるキャラクタの状況を制限する条件1に基づき複数のキャラクタの遮蔽検査を容易に行うことができる。これにより、キャラクタ毎の遮蔽レベルを決定し、遮蔽レベルに応じてキャラクタ毎の更新頻度を決定し、更新頻度に基づき各キャラクタの描画を更新する。これにより、クオリティの低い更新処理や更新処理が間引かれたキャラクタはユーザから見えにくくする。これにより、描画処理の負荷を軽減しつつ、ユーザに見えるゲーム映像をきれいに描画し、高品質なゲーム画像をユーザに提供することができる。
【0057】
<第2実施形態>
第1実施形態では、キャラクタ毎の遮蔽レベルを更新する際に、仮想カメラ10に近いキャラクタから更新を行わないと、正しい遮蔽レベルが算出されない。そのため、正しく更新を行うためにはキャラクタを仮想カメラ10から近い順に並び替えたリストを作る必要がある(図6 S1)。しかし、キャラクタ数が多くなるとこの並び替えの処理コストが大きくなってしまう。
【0058】
これに対し、第2実施形態に係るゲーム制御方法では、前回更新時(前フレーム)の遮蔽レベルを参照して現フレームの遮蔽レベルを算出し、複数フレームかけてキャラクタ毎の遮蔽レベルの計算を行っていく。これにより、キャラクタの並び替えを行わずに、複数のキャラクタ毎の遮蔽レベルを正しい遮蔽レベルの値に収束させることができる。これにより、前フレームの遮蔽レベルを流用し処理を簡略化することができ、この結果、描画処理の負荷を軽減しつつ、ユーザに見えるゲーム映像をきれいに描画し、高品質なゲーム画像をユーザに提供することができる。
【0059】
図9図12を参照しながら、第2実施形態に係るゲーム制御方法について説明する。図9は、第2実施形態に係るゲーム制御方法を示すフローチャートである。なお、図9のステップ番号が図6のステップ番号と同じ場合、同一処理を示す。図10図12は、第2実施形態に係るゲーム制御方法における遮蔽レベルの算出例を示す図である。
【0060】
[ゲーム制御方法]
ゲーム制御方法が開始されると、ゲーム機3は、図9に示すフローチャートの各処理を実行する。ゲーム実行処理部14により実行されるゲームの画面上のキャラクタは、仮想カメラ10により撮影されている。ここでは、仮想カメラ10が複数のキャラクタを撮影している例を挙げて説明する。キャラクタはノンプレイヤキャラクタ(NPC)であってもよいし、プレイヤキャラクタ(PC)であってもよい。
【0061】
まず、ステップS1において、更新制御部16は、仮想カメラ10に写る全キャラクタを未処理キャラクタ(遮蔽レベルの更新が未処理のキャラクタ)に設定する。図10は、仮想カメラ10により撮影されている未処理キャラクタN1~N10の初期状態の遮蔽レベルの一例を示す。全キャラクタの遮蔽レベルが「0」に設定されている。
【0062】
次に、ステップS3において、算出部15は、遮蔽レベルの更新がされていない未処理のキャラクタがあるかを判定する。未処理のキャラクタがあると判定した場合、算出部15は、ステップS4に進む。未処理のキャラクタがないと判定した場合、算出部15は、ステップS13に進む。
【0063】
ステップS4において、算出部15は、未処理のキャラクタのうち1体を選択する。ここでの選択は特定手順による選択ではなく、例えばランダムであってもよい。
【0064】
次に、ステップS7において、算出部15は、特定したキャラクタから一定距離以内、かつ特定したキャラクタからカメラ方向の左右45度以内の領域に他のキャラクタがあるか(条件1)を判定する。
【0065】
ステップS7において条件1を満たす他のキャラクタがないと判定された場合、算出部15は、ステップS9に進み、特定したキャラクタの遮蔽レベルに「0」を設定し、ステップS3に戻る。
【0066】
一方、ステップS7において条件1を満たす他のキャラクタがあると判定された場合、算出部15は、ステップS12に進む。算出部15は、ステップS12において、特定したキャラクタの遮蔽レベルに、条件1を満たす他のキャラクタの前フレームの遮蔽レベルのうち最大遮蔽レベルに「1」を加算した値を設定し、ステップS3に戻る。
【0067】
以上に説明した、ステップS1~S12の処理は、ステップS3において前フレーム時から遮蔽レベルの更新がされていない未処理のキャラクタがないと判定されるまで繰り返される。これにより、全てのキャラクタに対して遮蔽レベルの更新処理が実行される。これにより、キャラクタN毎の最終的な遮蔽レベルが決定する。
【0068】
ステップS3において未処理のキャラクタがないと判定されたとき、ステップS13に進み、更新制御部16は、複数のキャラクタ毎の遮蔽レベルに基づき、複数のキャラクタ毎の更新頻度を決定する。このとき、図11(a)の1回目に示すように、条件1を満たすキャラクタN1~N5の遮蔽レベルが「1」になる。キャラクタN6~N10の遮蔽レベルは「0」のままである。
【0069】
次に、ステップS14において、更新制御部16は、最新フレームの遮蔽レベルを前フレームの遮蔽レベルとして保存する。次に、ステップS15において、表示制御部18は、複数のキャラクタ毎の更新頻度に基づき、複数のキャラクタ毎の更新を制御してゲーム画像を描画する。次に、ステップS17において、更新制御部16は、ゲームが終了するかを判定する。更新制御部16は、ステップS17においてゲームが終了すると判定した場合、本処理を終了する。更新制御部16は、ステップS17においてゲームが終了しないと判定した場合、ステップS1に戻り、仮想カメラ10に写る全キャラクタを未処理キャラクタ(遮蔽レベルの更新が未処理のキャラクタ)に設定し、処理を継続する。
【0070】
ステップS1に戻った後、ステップ1~S12の処理が再度実行され、算出部15が、条件1を満たすキャラクタの遮蔽レベルに更に「1」を加算する。ステップS3で再び「No」と判定された場合、再度ステップS13が実行される。ステップS13において、更新制御部16は、複数のキャラクタ毎の遮蔽レベルに基づき、複数のキャラクタ毎の更新頻度を決定する。
【0071】
このとき、図11(b)の2回目に示すように、条件1を満たすキャラクタN1~N4の遮蔽レベルに更に「1」が加算されて「2」になる。この結果、キャラクタN5の遮蔽レベルは「1」になり、キャラクタN6~N10の遮蔽レベルは「0」のままである。
【0072】
3回目のステップS1~S12の処理において、算出部15が、条件1を満たすキャラクタの遮蔽レベルに更に「1」を加算する。ステップS3で再び「No」と判定された場合、再度ステップS13が実行される。ステップS13において、更新制御部16は、複数のキャラクタ毎の遮蔽レベルに基づき、複数のキャラクタ毎の更新頻度を決定する。このとき、図12(a)の3回目に示すように、条件1を満たすキャラクタN1~N2の遮蔽レベルに更に「1」が加算されて「3」になる。この結果、キャラクタN3,N4の遮蔽レベルは「2」になり、キャラクタN5の遮蔽レベルは「1」、キャラクタN6~N10の遮蔽レベルは「0」のままである。
【0073】
4回目のステップS1~S12の処理において、算出部15が、条件1を満たすキャラクタの遮蔽レベルに更に「1」を加算する。このとき、図12(b)の4回目に示すように、条件1を満たすキャラクタN1の遮蔽レベルに更に「1」が加算されて「4」になる。この結果、キャラクタN2の遮蔽レベルは「3」になり、キャラクタN3,N4の遮蔽レベルは「2」、キャラクタN5の遮蔽レベルは「1」、キャラクタN6~N10の遮蔽レベルは「0」のままである。
【0074】
ステップS3で再び「No」と判定された場合、再度ステップS13が実行される。ステップS13において、更新制御部16は、複数のキャラクタ毎の遮蔽レベルに基づき、複数のキャラクタ毎の更新頻度を決定する。次に、ステップS14において、更新制御部16は、最新フレームの遮蔽レベルを前フレームの遮蔽レベルとして保存する。次に、ステップS15において、表示制御部18は、複数のキャラクタ毎の更新頻度に基づき、複数のキャラクタ毎の更新を制御してゲーム画像を描画する。そして、ステップS17においてゲームが終了すると判定した場合、本処理を終了する。
【0075】
第2実施形態に係るゲーム制御方法によれば、1フレーム前の更新時の遮蔽レベルを参照し、複数フレームかけて遮蔽レベルの計算を行っていく。これにより、キャラクタの並び替えを行わずに複数のキャラクタ毎の遮蔽レベルを正しい遮蔽レベルの値に収束させることができる。これにより、描画処理の負荷を軽減しつつ、ユーザに見えるゲーム映像をきれいに描画し、高品質なゲーム画像をユーザに提供することができる。
【0076】
<第3実施形態>
[ゲーム制御方法]
次に、第3実施形態に係るゲーム制御方法について、図13及び図14を参照して説明する。図13は、第3実施形態に係るゲーム制御方法を示すフローチャートである。図14は、第3実施形態に係るゲーム制御方法を比較例と比較して説明するための図である。
【0077】
第1実施形態に係るゲーム制御方法では、図14(a)に示すように、各キャラクタの遮蔽レベルを計算する度に、対象となるキャラクタ(図14(a)の例ではキャラクタN1)と、その他のキャラクタN2~N10との距離を計算し、条件1が示す「一定距離以内」を満たすか否かを判定する。そうすると、N体のキャラクタすべてについて遮蔽レベルを計算するためには、N(N-1)回の他のキャラクタとの距離の計算が必要となり、Nが大きくなるほど処理の負荷が高くなる。
【0078】
そこで、第3実施形態に係るゲーム制御方法では、各キャラクタは、キャラクタ同士がめり込まないようにコリジョンオブジェクトによる押し出し処理を行っている。このコリジョンオブジェクトの接触情報を保存しておき、キャラクタ毎に、各キャラクタが接触した他のキャラクタのリストを作り、記憶部12に記憶することで計算回数を大幅に減らすことができる。また、コリジョンオブジェクトが接触する距離内であれば、周辺にいるキャラクタであるとみなすことで、上記距離の計算を省略することができる。
【0079】
図14(b)に示すように、各キャラクタはコリジョンオブジェクトDにより覆われ、各オブジェクトのコリジョンオブジェクトDにより各オブジェクトと他のオブジェクトとの衝突を判定可能である。つまり、衝突判定部17は、各キャラクタのコリジョンオブジェクトDが接触していれば、それらのキャラクタは衝突していると判定する。
【0080】
図14(b)の例では、衝突判定部17は、キャラクタN1のコリジョンオブジェクトDと接触するコリジョンオブジェクトDのキャラクタN2、N3、N9がキャラクタN1に衝突する他のキャラクタであると判定する。これにより、キャラクタN1の周辺にいるキャラクタをキャラクタN2、N3、N9と特定できる。そこで、キャラクタN2、N3、N9についてのみ領域R内にいるかどうかを判定すればよいため、処理コストを大幅に軽減でき、処理の高速化を図ることができる。
【0081】
コリジョンオブジェクトDは仮想体であり、画面上では表示されない。よって、プレイヤには、コリジョンオブジェクトDは見えていない。本実施形態では、オブジェクトCの形状は球状であるが、これに限らず、カプセル状、四角、球状、円柱状など、様々な形状及びサイズを用いることができる。
【0082】
なお、コリジョンオブジェクトDが球状である場合、コリジョンオブジェクトDの半径の2倍よりも扇状の領域Rの半径が大きくなると、扇状の領域R内に入っているのに接触しなかった他のキャラクタが存在することになる。このため、周辺にいるキャラクタの判定ができなくなる。よって、コリジョンオブジェクトDの半径の2倍が、一のオブジェクトから仮想カメラ10へ向かう方向に対して所定角度以内及び前記一のオブジェクトから所定距離以内の領域Rの半径よりも大きい必要がある。
【0083】
第3実施形態に係るゲーム制御方法について、図13を参照しながら説明する。なお、図13のステップ番号が図6のステップ番号と同じ場合、同一処理を示す。本処理が開始されると、まず、ステップS1において、更新制御部16は、仮想カメラ10に写る全キャラクタを未処理キャラクタ(遮蔽レベルの更新が未処理のキャラクタ)に設定する。次に、ステップS2において、算出部15は、フレーム毎に仮想カメラ10が撮影している未処理キャラクタを仮想カメラ10から近い順に並び替えたリストを作成する。
【0084】
次に、ステップS3において、算出部15は、遮蔽レベルの更新がされていない未処理のキャラクタがあるかを判定する。未処理のキャラクタがあると判定した場合、算出部15は、ステップS5に進む。未処理のキャラクタがないと判定した場合、算出部15は、ステップS13に進む。
【0085】
ステップS5では、算出部15は、未処理のキャラクタのうち最も仮想カメラ10に近いキャラクタを特定する。次に、ステップS37において、衝突判定部17は、特定したキャラクタに衝突する他のキャラクタを判定する。衝突判定部17は、特定したキャラクタのコリジョンオブジェクトDと接触するコリジョンオブジェクトDのキャラクタが特定したキャラクタに衝突する他のキャラクタであると判定する。
【0086】
次に、ステップS39において、算出部15は、衝突する他のキャラクタのうちカメラ方向の左右45度以内の領域に他のキャラクタがあるかを判定する。この条件を「条件2」とする。図14(b)では、衝突する他のキャラクタのうち領域R内にいる他のキャラクタはいない。つまり、衝突する他のキャラクタのうち条件2を満たすキャラクタはいない。なお、仮想カメラ10の方向Cの左右45度以内は一例であり、任意の角度に設定できる。
【0087】
ステップS39において条件2を満たすキャラクタがないと判定された場合、算出部15は、ステップS41に進み、特定したキャラクタの遮蔽レベルに「0」を設定し、ステップS3に戻る。例えば、図14(b)の場合、特定したキャラクタN1の遮蔽レベルには「0」が設定される。
【0088】
一方、ステップS39において条件2を満たすキャラクタがあると判定された場合、算出部15は、ステップS43に進み、特定したキャラクタの遮蔽レベルに、衝突すると判定された他のキャラクタのうちの最大遮蔽レベルに「1」を加算した値を設定し、ステップS3に戻る。
【0089】
以上に説明した、ステップS1~S5、S37~S43の処理は、ステップS3において前フレーム時から遮蔽レベルの更新がされていない未処理のキャラクタがないと判定されるまで繰り返される。これにより、全てのキャラクタに対して遮蔽レベルの更新処理が実行され、キャラクタ毎の最終的な遮蔽レベルが決定する。
【0090】
ステップS3において未処理のキャラクタがないと判定されたとき、ステップS13に進み、更新制御部16は、複数のキャラクタ毎の遮蔽レベルに基づき、複数のキャラクタ毎の更新頻度を決定する。
【0091】
次に、ステップS15において、表示制御部18は、複数のキャラクタ毎の更新頻度に基づき、複数のキャラクタ毎の更新を制御してゲーム画像を描画する。次に、ステップS17において、更新制御部16は、ゲームが終了するかを判定する。更新制御部16は、ステップS17においてゲームが終了すると判定した場合、本処理を終了する。更新制御部16は、ステップS17においてゲームが終了しないと判定した場合、ステップS1に戻り、仮想カメラ10に写る全キャラクタを未処理キャラクタ(遮蔽レベルの更新が未処理のキャラクタ)に設定し、処理を継続する。
【0092】
第3実施形態に係るゲーム制御方法によれば、コリジョンオブジェクトDによりキャラクタ同士の衝突判定を行うことで、衝突すると判定されたキャラクタを一のキャラクタの周辺にいる他のキャラクタと判定することができる。そして、周辺にいると判定された他のキャラクタについて、条件2を満たすかどうかによって一のキャラクタの遮蔽レベルを算出することにより、複数のオブジェクトの遮蔽検査をより容易に行い、描画処理の負荷をより軽減することができる。
【0093】
第1~第3実施形態のゲーム制御方法では、前フレームの遮蔽レベルとの変化がない場合、処理を終了する。その後、仮想カメラ10が撮影しているキャラクタの位置が変化したとき、第1~第3実施形態のいずれかのゲーム制御方法が再び開始される。
【0094】
[変形例]
第1~第3実施形態のゲーム制御方法では、更新頻度を変更する。ただし、更新頻度だけでなく更新内容を変更してもよい。例えばキャラクタのモーションを更新する際、首を向ける処理をなくすことで更新内容を減らすことができる。この場合、キャラクタの首を固定した状態で、キャラクタを動作させる。その他、キャラクタの足を地面につける処理をなくすことで更新内容を減らすことができる。
【0095】
通常、キャラクタの動作の更新処理は、(1)キャラクタのモーションを更新する、(2)キャラクタの位置を更新する、(3)キャラクタのモーションを補正するといった複数の工程を実行する。例えば、このうちの(3)を行わないことにより更新内容を減らしてもよい。
【0096】
また、遮蔽レベルだけを用いて更新頻度を決定することに限らず、遮蔽レベルとキャラクタの大きさによって更新頻度を決定してもよい。例えば、キャラクタが大きいほど更新頻度を高くし、キャラクタが小さいほど更新頻度を低くしてもよい。
【0097】
遮蔽レベルとキャラクタの重要度によって更新頻度を決定してもよい。例えば、キャラクタの重要度が高いほど更新頻度を高くし、キャラクタの重要度が低いほど更新頻度を低くしてもよい。
【0098】
遮蔽レベルとキャラクタの移動速度又は加速度によって更新頻度を決定してもよい。例えば、キャラクタの移動速度が速いほど更新頻度を高くし、キャラクタの移動速度が遅いほど更新頻度を低くしてもよい。逆に、キャラクタの移動速度が速いほど更新頻度を低くし、キャラクタの移動速度が遅いほど更新頻度を高くしてもよい。
【0099】
遮蔽レベルとキャラクタのアクションによって更新頻度を決定してもよい。例えば、キャラクタのアクションが攻撃モーション中の場合、更新頻度を高くしてもよい。例えば、キャラクタのアクションが攻撃されている場合、更新頻度を高くしてもよい。
【0100】
遮蔽レベルと仮想カメラ10からの距離とを用いて更新頻度を決定してもよい。例えば、仮想カメラ10からキャラクタまでの距離が短いほど更新頻度を高くし、仮想カメラ10からキャラクタまでの距離が長いほど更新頻度を低くしてもよい。
【0101】
遮蔽レベルとともに更新頻度を決定するキャラクタの大きさ、キャラクタの重要度、キャラクタの移動速度又は加速度、キャラクタのアクション、仮想カメラ10からの距離はキャラクタ情報22として記憶部12に記憶されている。上記例では、遮蔽レベルとキャラクタ情報22の少なくとも一つを用いて更新頻度を決定してもよい。
【0102】
以上、ゲームプログラム、ゲーム制御方法及び情報処理装置を上記実施形態により説明したが、本開示に係るゲームプログラム、ゲーム制御方法及び情報処理装置は上記実施形態に限定されるものではなく、本実施形態の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。
【符号の説明】
【0103】
1 ゲームシステム
2 サーバ装置
3 ゲーム機
11 制御部
12 記憶部
13 通信部
14 ゲーム実行処理部
15 算出部
16 更新制御部
17 衝突判定部
18 表示制御部
21 遮蔽レベル
22 キャラクタ情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14