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

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

▶ 任天堂株式会社の特許一覧

特開2025-24271ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム
<>
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図1
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図2
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図3
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図4
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図5
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図6
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図7
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図8
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図9
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図10
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図11
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図12
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図13
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図14
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図15
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図16
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図17
  • 特開-ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025024271
(43)【公開日】2025-02-20
(54)【発明の名称】ゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラム
(51)【国際特許分類】
   A63F 13/358 20140101AFI20250213BHJP
   A63F 13/52 20140101ALI20250213BHJP
   H04N 21/84 20110101ALI20250213BHJP
【FI】
A63F13/358
A63F13/52
H04N21/84
【審査請求】未請求
【請求項の数】27
【出願形態】OL
(21)【出願番号】P 2023128254
(22)【出願日】2023-08-07
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】岡村 祐一郎
(72)【発明者】
【氏名】武藤 将生
(72)【発明者】
【氏名】森 航
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA22
5C164MB13P
5C164MB44S
5C164SB41S
5C164YA21
(57)【要約】
【課題】フレームレートの低下を抑制できるゲーム開発支援システム、ゲーム開発支援方法、およびゲーム開発支援プログラムを提供すること。
【解決手段】ゲーム中の描画処理の負荷に応じて描画設定を変更させる動的描画設定のプログラムを含むゲームプログラムを実行させ、ゲーム中における所定のカットシーンを、動的描画設定を無効にして再生させ、カットシーンの再生中の描画処理の負荷を計測し、計測された負荷の推移に基づいて、所定の条件を満たすカットシーン内のタイミングについて、動的描画設定が有効な状態で当該カットシーンが再生される際に、当該タイミングにおいて実行中の描画処理の負荷に替えて動的描画設定に用いられる代替負荷を設定し、当該代替負荷のデータを記録する。
【選択図】図17
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを備え、前記プロセッサは、
ゲーム中の描画処理の負荷に応じて描画設定を変更させる動的描画設定のプログラムを含むゲームプログラムを実行させ、
前記ゲーム中における所定のカットシーンを、前記動的描画設定を無効にして再生させ、
前記カットシーンの再生中の描画処理の負荷を計測し、
前記計測された負荷の推移に基づいて、所定の条件を満たす前記カットシーン内のタイミングについて、前記動的描画設定が有効な状態で当該カットシーンが再生される際に、当該タイミングにおいて実行中の描画処理の負荷に替えて前記動的描画設定に用いられる代替負荷を設定し、当該代替負荷のデータを記録する、ゲーム開発支援システム。
【請求項2】
前記プロセッサは、
前記カットシーン内の所定タイミングにおいて、当該タイミング以降の第1の期間内の負荷の上昇度合いが所定の基準を超える第1の場合に、当該タイミングを示す前記カットシーン内の第1のタイミングについて前記代替負荷を設定する、請求項1記載のゲーム開発支援システム。
【請求項3】
前記カットシーンは少なくとも1つのカットから構成され、
前記第1の期間は、前記第1のタイミング以降の、前記カット内を範囲とした所定長さまでの期間である、請求項2記載のゲーム開発支援システム。
【請求項4】
前記プロセッサは、
前記カットの切り替えが発生した第2の場合に、切り替え後の所定期間経過後に始まる第2の期間内の最大負荷を、カット切り替え時の第2のタイミングにおける前記代替負荷として記憶させ、
前記第2のタイミングから第3の期間の間は、前記第1の場合に基づいた前記代替負荷を記憶させない、請求項3記載のゲーム開発支援システム。
【請求項5】
前記カットシーンは少なくとも1つのカットから構成され、
前記プロセッサは、
前記カットの切り替えが発生した第2の場合に、切り替え後の所定期間後に始まる第2の期間内の最大負荷を、前記カット切り替え時の第2のタイミングにおける前記代替負荷として記憶させる、請求項1記載のゲーム開発支援システム。
【請求項6】
前記プロセッサは、
前記第1の場合に、前記所定の基準を超えて上昇した前記第1の期間内の負荷を、前記第1のタイミングにおける前記代替負荷として設定する、請求項2から4のいずれか記載のゲーム開発支援システム。
【請求項7】
前記動的描画設定は少なくとも、前記ゲーム中の描画処理の負荷が高い場合に描画解像度を下げる動的解像度設定を含む、請求項1から5のいずれか記載のゲーム開発支援システム。
【請求項8】
前記動的描画設定は少なくとも、前記ゲーム中の描画処理の負荷が高い場合に描画解像度を下げると共に、前記代替負荷が低い場合、または描画解像度が下がってから所定期間経過以降に描画処理の負荷が低い場合に描画解像度を上げる動的解像度設定を含む、請求項4または5記載のゲーム開発支援システム。
【請求項9】
前記プロセッサは、
予め指定されたタイミングで定期的に、自動的に前記ゲームプログラムを実行し、前記ゲームに含まれる各カットシーンについて、カットシーンの再生と負荷の計測を行い、前記代替負荷データを更新して記憶させる、請求項1から5のいずれか記載のゲーム開発支援システム。
【請求項10】
ゲーム開発支援システムのコンピュータに実行させるゲーム開発支援方法であって、
前記コンピュータに、
ゲーム中の描画処理の負荷に応じて描画設定を変更させる動的描画設定のプログラムを含むゲームプログラムを実行させ、
前記ゲーム中における所定のカットシーンを、前記動的描画設定を無効にして再生させ、
前記カットシーンの再生中の描画処理の負荷を計測させ、
前記計測された負荷の推移に基づいて、所定の条件を満たす前記カットシーン内のタイミングについて、前記動的描画設定が有効な状態で当該カットシーンが再生される際に、当該タイミングにおいて実行中の描画処理の負荷に替えて前記動的描画設定に用いられる代替負荷を設定し、当該代替負荷のデータを記録させる、ゲーム開発支援方法。
【請求項11】
前記コンピュータに、
前記カットシーン内の所定タイミングにおいて、当該タイミング以降の第1の期間内の負荷の上昇度合いが所定の基準を超える第1の場合に、当該タイミングを示す前記カットシーン内の第1のタイミングについて前記代替負荷を設定させる、請求項10記載のゲーム開発支援方法。
【請求項12】
前記カットシーンは少なくとも1つのカットから構成され、
前記第1の期間は、前記第1のタイミング以降の、前記カット内を範囲とした所定長さまでの期間である、請求項11記載のゲーム開発支援方法。
【請求項13】
前記コンピュータに、
前記カットの切り替えが発生した第2の場合に、切り替え後の所定期間経過後に始まる第2の期間内の最大負荷を、カット切り替え時の第2のタイミングにおける前記代替負荷として記憶させ、
前記第2のタイミングから第3の期間の間は、前記第1の場合に基づいた前記代替負荷を記憶させない、請求項12記載のゲーム開発支援方法。
【請求項14】
前記カットシーンは少なくとも1つのカットから構成され、
前記コンピュータに、
前記カットの切り替えが発生した第2の場合に、切り替え後の所定期間後に始まる第2の期間内の最大負荷を、前記カット切り替え時の第2のタイミングにおける前記代替負荷として記憶させる、請求項10記載のゲーム開発支援方法。
【請求項15】
前記コンピュータに、
前記第1の場合に、前記所定の基準を超えて上昇した前記第1の期間内の負荷を、前記第1のタイミングにおける前記代替負荷として設定する、請求項11から13のいずれか記載のゲーム開発支援方法。
【請求項16】
前記動的描画設定は少なくとも、前記ゲーム中の描画処理の負荷が高い場合に描画解像度を下げる動的解像度設定を含む、請求項10から14のいずれか記載のゲーム開発支援方法。
【請求項17】
前記動的描画設定は少なくとも、前記ゲーム中の描画処理の負荷が高い場合に描画解像度を下げると共に、前記代替負荷が低い場合、または描画解像度が下がってから所定期間経過以降に描画処理の負荷が低い場合に描画解像度を上げる動的解像度設定を含む、請求項13または14記載のゲーム開発支援方法。
【請求項18】
前記コンピュータに、
予め指定されたタイミングで定期的に、自動的に前記ゲームプログラムを実行し、前記ゲームに含まれる各カットシーンについて、カットシーンの再生と負荷の計測を行い、前記代替負荷データを更新して記憶させる、請求項10から14のいずれか記載のゲーム開発支援方法。
【請求項19】
ゲーム装置と接続されたゲーム開発用端末のコンピュータに実行させるゲーム開発支援プログラムであって、
前記コンピュータに、
前記ゲーム装置において、ゲーム中の描画処理の負荷に応じて描画設定を変更させる動的描画設定を無効にして、当該動的描画設定を含むゲームプログラムの実行により当該ゲーム中における所定のカットシーンを再生させたときの、当該カットシーンの再生中の当該ゲーム装置における描画処理の負荷の計測結果を取得させ、
前記計測結果に基づいて、所定の条件を満たす前記カットシーン内のタイミングについて、前記動的描画設定が有効な状態で当該カットシーンが前記ゲーム装置で再生される際に、当該タイミングにおいて実行中の描画処理の負荷に替えて前記動的描画設定に用いられる代替負荷を設定させて、当該代替負荷のデータを記録させる、ゲーム開発支援プログラム。
【請求項20】
前記コンピュータに、
前記カットシーン内の所定タイミングにおいて、当該タイミング以降の第1の期間内の負荷の上昇度合いが所定の基準を超える第1の場合に、当該タイミングを示す前記カットシーン内の第1のタイミングについて前記代替負荷を設定させる、請求項19記載のゲーム開発支援プログラム。
【請求項21】
前記カットシーンは少なくとも1つのカットから構成され、
前記第1の期間は、前記第1のタイミング以降の、前記カット内を範囲とした所定長さまでの期間である、請求項20記載のゲーム開発支援プログラム。
【請求項22】
前記コンピュータに、
前記カットの切り替えが発生した第2の場合に、切り替え後の所定期間経過後に始まる第2の期間内の最大負荷を、カット切り替え時の第2のタイミングにおける前記代替負荷として記憶させ、
前記第2のタイミングから第3の期間の間は、前記第1の場合に基づいた前記代替負荷を記憶させない、請求項21記載のゲーム開発支援プログラム。
【請求項23】
前記カットシーンは少なくとも1つのカットから構成され、
前記コンピュータに、
前記カットの切り替えが発生した第2の場合に、切り替え後の所定期間後に始まる第2の期間内の最大負荷を、前記カット切り替え時の第2のタイミングにおける前記代替負荷として記憶させる、請求項19記載のゲーム開発支援プログラム。
【請求項24】
前記コンピュータに、
前記第1の場合に、前記所定の基準を超えて上昇した前記第1の期間内の負荷を、前記第1のタイミングにおける前記代替負荷として設定する、請求項20から22のいずれか記載のゲーム開発支援プログラム。
【請求項25】
前記動的描画設定は少なくとも、前記ゲーム中の描画処理の負荷が高い場合に描画解像度を下げる動的解像度設定を含む、請求項19から23のいずれか記載のゲーム開発支援プログラム。
【請求項26】
前記動的描画設定は少なくとも、前記ゲーム中の描画処理の負荷が高い場合に描画解像度を下げると共に、前記代替負荷が低い場合、または描画解像度が下がってから所定期間経過以降に描画処理の負荷が低い場合に描画解像度を上げる動的解像度設定を含む、請求項22または23記載のゲーム開発支援プログラム。
【請求項27】
前記コンピュータに、
予め指定されたタイミングで定期的に、自動的に前記ゲームプログラムを実行して、前記ゲームに含まれる各カットシーンの再生と負荷の計測を行う前記ゲーム装置から前記計測結果を取得させ、前記代替負荷データを更新して記憶させる、請求項19から23のいずれか記載のゲーム開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ゲーム処理における画像処理に関する。
【背景技術】
【0002】
従来から、ゲーム処理等に用いられる動的解像度、または可変解像度と呼ばれる技術が知られている(例えば、非特許文献1)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Unity Technologies、”Unityユーザーマニュアル 動的解像度”、[online]、[令和5年7月13日検索]、インターネット(URL:https://docs.unity3d.com/ja/2018.4/Manual/DynamicResolution.html)
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の技術は、GPU(Graphics Processing Unit)の処理負荷に応じて解像度を下げることで、GPUの負荷を軽減させるものである。しかし、当該技術は、現在のフレームよりも前のフレーム(例えば1フレーム前)におけるGPUの処理負荷に基づいて解像度を下げるか否かを判定するものである。そのため、GPUの処理負荷が急激に上がった場合、実際に解像度を下げる前に一時的にフレームレートの低下が発生する場合があった。そして、この点についてフレームレートの低下を抑制すべく改善する余地があった。
【課題を解決するための手段】
【0005】
上記の点に鑑みて、例えば以下のような構成例が挙げられる。
【0006】
(構成1)
構成1は、少なくとも1つのプロセッサを備えるゲーム開発支援システムである。プロセッサは、ゲーム中の描画処理の負荷に応じて描画設定を変更させる動的描画設定のプログラムを含むゲームプログラムを実行させ、ゲーム中における所定のカットシーンを、動的描画設定を無効にして再生させ、カットシーンの再生中の描画処理の負荷を計測し、計測された負荷の推移に基づいて、所定の条件を満たすカットシーン内のタイミングについて、動的描画設定が有効な状態で当該カットシーンが再生される際に、当該タイミングにおいて実行中の描画処理の負荷に替えて動的描画設定に用いられる代替負荷を設定し、当該代替負荷のデータを記録する。
【0007】
上記構成例によれば、動的描画設定を無効にしたうえでカットシーンの描画処理負荷を予め計測しておき、当該計測結果に基づいて、カットシーン内の所定のタイミングにおいて動的描画設定で用いられる代替負荷を決めて記録する。これにより、製品版のゲーム処理において、カットシーンを描画する際に、上記予め計測しておいた負荷に基づく代替負荷を用いることで、フレームレートが低下する前に描画設定を変更することができる。
【0008】
(構成2)
構成2は、上記構成1において、プロセッサは、カットシーン内の所定タイミングにおいて、当該タイミング以降の第1の期間内の負荷の上昇度合いが所定の基準を超える第1の場合に、当該タイミングを示すカットシーン内の第1のタイミングについて代替負荷を設定してもよい。
【0009】
上記構成例によれば、カットシーン内で描画処理の負荷が急激に上昇したタイミングに合わせて代替負荷を設定できる。これにより、当該タイミングで描画設定を変更させることができる。そのため、描画処理の負荷が急激に上昇することを防ぐことができる。
【0010】
(構成3)
構成3は、上記構成2において、カットシーンは少なくとも1つのカットから構成され、第1の期間は、第1のタイミング以降の、カット内を範囲とした所定長さまでの期間であってもよい。
【0011】
上記構成例によれば、カット単位で代替負荷を設定するため、各カットに応じた適切な代替負荷設定ができる。
【0012】
(構成4)
構成4は、上記構成3において、プロセッサは、カットの切り替えが発生した第2の場合に、切り替え後の所定期間経過後に始まる第2の期間内の最大負荷を、カット切り替え時の第2のタイミングにおける代替負荷として記憶させ、第2のタイミングから第3の期間の間は、第1の場合に基づいた代替負荷を記憶させないようにしてもよい。
【0013】
上記構成例によれば、カット中に、描画設定が下がり過ぎないようにすることができる。カットの切り替えが発生したフレームでは、切り替えに伴う処理によって、カット中に比べて負荷が高くなる場合があるが、その一方で、カットの内容(絵)が大きく変化することから、当該フレームにおける処理落ちは視認されにくい。そこで、切り替え発生時ではなく、そこから少し後から始まる第2の期間内の最大負荷を用いることで、描画設定が下がり過ぎないようにすることができる。また、第2のタイミングから第3の期間の間については、上記第1の場合による代替負荷の設定も不要とすることができる。
【0014】
(構成5)
構成5は、上記構成1において、カットシーンは少なくとも1つのカットから構成されていてもよい。また、プロセッサは、カットの切り替えが発生した第2の場合に、切り替え後の所定期間後に始まる第2の期間内の最大負荷を、カット切り替え時の第2のタイミングにおける代替負荷として記憶させてもよい。
【0015】
上記構成例によれば、カット切り替え発生時の処理落ちは視認されにくいことから、カット切り替え発生から所定期間後に始まる第2の期間内の最大負荷を代替負荷として用いることで、カット中に描画設定が下がり過ぎないようにできる。
【0016】
(構成6)
構成6は、上記構成2~4のいずれかにおいて、プロセッサは、第1の場合に、所定の基準を超えて上昇した第1の期間内の負荷を、第1のタイミングにおける代替負荷として設定してもよい。
【0017】
上記構成例によれば、上昇後の負荷が高い場合、負荷が上がる前のタイミングで描画設定を変更できる。
【0018】
(構成7)
構成7は、上記構成1~5のいずれかにおいて、動的描画設定は少なくとも、ゲーム中の描画処理の負荷が高い場合に描画解像度を下げる動的解像度設定を含んでいてもよい。
【0019】
上記構成例によれば、描画解像度を下げることで描画処理の負荷を軽減できる。
【0020】
(構成8)
構成8は、上記構成1~7のいずれかにおいて、動的描画設定は少なくとも、ゲーム中の描画処理の負荷が高い場合に描画解像度を下げると共に、前記代替負荷が低い場合、または描画解像度が下がってから所定期間経過以降に描画処理の負荷が低い場合に描画解像度を上げる動的解像度設定をしてもよい。
【0021】
上記構成例によれば、カット切り替え時に負荷が高い場合以外の状況でも代替負荷を用いることで、頻繁に解像度が切り替わることが抑制された設定において、カット切り替え後に負荷が下がっていた場合には、元の解像度が戻ることを許容できる。
【0022】
(構成9)
構成9は、上記構成1~5のいずれかにおいて、プロセッサは、予め指定されたタイミングで定期的に、自動的にゲームプログラムを実行し、ゲームに含まれる各カットシーンについてカットシーンの再生と負荷の計測を行い、代替負荷データを更新して記憶させてもよい。
【0023】
上記構成例によれば、開発中に描画処理やカットシーンの内容が変更されても、開発者による作業のやり直し等を経ずに最新のバージョンについて適切な描画設定を行うことができる。
【発明の効果】
【0024】
本開示によれば、カットシーンの再生時にフレームレートが一時的に低下してしまうことを抑制できるような描画設定を、ゲームの開発段階で自動的に行うことができる。
【図面の簡単な説明】
【0025】
図1】本実施形態に係る開発支援システムの全体像を示す模式図
図2】開発用端末1のハードウェア構成を示すブロック図
図3】ゲーム装置2のハードウェア構成を示すブロック図
図4】カットシーンについて説明するための図
図5】カットシーンについて説明するための図
図6】カットシーンについて説明するための図
図7】カットシーンについて説明するための図
図8】本実施形態の処理の概要を説明するための図
図9】本実施形態の処理の概要を説明するための図
図10】開発用端末1の記憶部12に記憶される各種データの一例を示すメモリマップ
図11】計測結果データ502のデータ構成の一例
図12】GPU負荷強制設定データ503のデータ構成の一例
図13】(開発段階での)ゲーム装置2の記憶部22に記憶される各種データの一例を示すメモリマップ
図14】ゲーム装置2の記憶部22に記憶される各種データの一例を示すメモリマップ
図15】定期計測処理の詳細を示すフローチャート
図16】負荷計測処理の詳細を示すフローチャート
図17】解析処理の詳細を示すフローチャート
図18】カットシーン描画処理の詳細を示すフローチャート
【発明を実施するための形態】
【0026】
以下、本発明の一実施形態について説明する。図1は、本実施形態に係るゲーム開発支援システムの全体像を示す模式図である。本実施形態のゲーム開発支援システム100は、開発用端末1と、ゲーム装置2とを含む。開発用端末1は、例えばパーソナルコンピュータ(パソコン)である。開発用端末1と、ゲーム装置2とは、有線で通信可能なように構成されている。本実施形態では、開発用端末1からゲーム装置2に所定の命令を送り、ゲーム装置に各種処理の実行させることができる。また、その実行状況や実行結果等をゲーム装置2から取得することもできる。つまり、ゲーム開発者は、開発用端末1に接続されたゲーム装置2で所定のプログラム等を動作させ、実機上でのゲーム処理結果等を確認しながら開発作業を進めることができるような環境が構築されている。
【0027】
[開発用端末のハードウェア構成]
次に、上記開発用端末1のハードウェア構成について説明する。図2は、開発用端末1のハードウェア構成を示すブロック図である。開発用端末1は、プロセッサ11を備える。プロセッサ11は、開発用端末1において実行される各種の情報処理を実行する情報処理部である。プロセッサ11は、記憶部12に記憶される情報処理プログラム(例えば、ゲーム開発用の各種ツールのプログラム)を実行することによって、各種の情報処理を実行する。なお、記憶部12は、例えば、フラッシュメモリやDRAM(Dynamic Random Access Memory)等の内部記憶媒体であってもよいし、図示しないスロットに装着される外部記憶媒体等を利用する構成でもよい。
【0028】
また、開発用端末1は、ゲーム装置2と通信を行うための通信部13を備える。本実施形態では、当該通信に有線接続による通信が用いられる場合を想定するが、他の実施形態では無線通信が用いられてもよい。
【0029】
また、開発用端末1は、キーボードやマウス等の各種の入力デバイス16と有線または無線通信を行うための入力デバイス通信部14を備える。また、開発用端末1は、画像音声出力部15を介して表示部17(例えば、パソコン用のモニタ)が接続される。プロセッサ11は、例えば、上記の情報処理の実行によって生成した画像や音声を、画像音声出力部15を介して表示部17に出力する。
【0030】
[ゲーム装置2のハードウェア構成]
図3は、本実施形態に係るゲーム装置2のハードウェア構成の一例を示すブロック図である。図3において、ゲーム装置2は、プロセッサ21を備える。プロセッサ21は、ゲーム装置2において実行される各種の情報処理を実行する情報処理部である。本実施形態では、プロセッサ21は、CPU(Central Processing Unit)機能、および、GPU(Graphics Processing Unit)機能を少なくとも含むSoC(System-on-a-chip)から構成されているとする。なお、CPUとGPUは別々の構成であってもよい。また、GPUを有さずCPUにてグラフィックス処理を行う構成であっても、本発明は適用可能である。プロセッサ21は、記憶部22に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。なお、記憶部22は、例えば、フラッシュメモリやDRAM(Dynamic Random Access Memory)等の内部記憶媒体であってもよいし、図示しないスロットに装着される外部記憶媒体等を利用する構成でもよい。
【0031】
また、ゲーム装置2は、上記開発用端末1と通信を行うための通信部23を備える。
【0032】
また、ゲーム装置2は、ゲーム装置2がゲーム機用コントローラ26と有線または無線通信を行うためのコントローラ通信部24を備える。
【0033】
また、ゲーム装置2には、画像音声出力部25を介して表示部27(例えば、テレビ等)が接続される。プロセッサ21は、例えば、上記の情報処理の実行によって生成した画像や音声を、画像音声出力部25を介して表示部27に出力する。
【0034】
[本実施形態で想定する開発環境および処理について]
次に、本実施形態で想定する処理の概要について説明する。本実施形態の処理は主に、ゲームの開発段階で用いられることを想定した処理である。具体的には、本実施形態は、ゲーム内の所定のイベントで映像表現されるカットシーン(イベントデモシーン等と呼ばれることもある)における描画処理の負荷対策のための処理が行われる。当該処理の概要を説明する前に、まず、本実施形態におけるカットシーンに関して説明する。本実施形態におけるカットシーンは、仮想ゲーム空間の様子をリアルタイムレンダリング(オンザフライレンダリング)で描画したもので示される。また、フレームレートは任意の値でよいが、本実施形態では例えば30fpsであるとする。また、本実施形態においては、カットシーン中は、プレイヤオブジェクトの動作を制御するためのプレイヤの操作(移動操作、攻撃操作等)は受け付けられない。カットシーン中は、仮想空間(描画範囲内)に配置されている各オブジェクトは、予め定められた動作パターンに基づいてそれぞれ動作する。つまり、本実施形態おけるカットシーンは、仮想空間のレンダリングを経て描画される場面の中で、プレイヤの操作に対するインタラクティブな応答を経ないものをいう。そのため、カットシーンは、再現性のある場面であるともいえる。ただし、描画処理の負荷に影響を与えない程度の制御が可能であってもよい。たとえば、若干のカメラ操作、小さなUI表示や字幕のオン/オフ、効果音の出力等、描画処理の負荷が大きく増減しない制御であれば、インタラクティブな応答をするシーンであっても適用可能である。
【0035】
上記カットシーンは、少なくとも1つの「カット」から構成されている。1つのカット内では、基本的には、視点(仮想カメラ)の切り替えは行われない。視点の切り替えは、仮想カメラの瞬間的な移動によって発生する。仮想カメラの高速でない継続的な移動はカット内でも行われる。各カットの切り替わりは、典型的には、視点が切り替わるタイミングである。
【0036】
図4に、あるカットシーンの構成の一例を模式的に示す。当該カットシーンは、カット#01~カット#03までの、3つのカットで構成されているとする。各カットの尺の長さとして、カット#01が5秒間、カット#02および#03はそれぞれ10秒間であるとする。また、図5図7に、各カットにおける仮想空間を俯瞰して示した模式図を示す。図5では、屋外となる仮想空間内にプレイヤオブジェクトと、3本の柱オブジェクトが存在していることが示されている。また、カット#01は、プレイヤオブジェクトの背面側に第1視点(すなわち仮想カメラの位置)が設定されている例である。そのため、カット#01は、第1視点から見た仮想空間の様子が描画されることになる。カット#02を示す図6では、カット#01の場面とは異なる位置となる所定の屋内に第2視点が設定されていることが示されている。そのため、カット#02では、場面が屋外から屋内に切り替わって、第2視点から見た屋内の様子が描画されることになる。また、カット#03を示す図7では、カット#01と同じ屋外の場所であって、第1視点とは異なる位置に第3視点が設定されていることが示されている。そのため、カット#03では、場面が屋内から屋外に切り替わって、カット#01と同じプレイヤオブジェクトおよび柱オブジェクトを、第3視点からから見た様子が描画されることになる。つまり、カットシーンとしては、第1視点から見た仮想空間の様子が5秒間描画され、その後、屋内に場面が切り替わり、第2視点から見た屋内の様子が10秒間描画される。その後、再度屋外に場面が切り替わり、第3視点から見た屋外の様子が10秒間描画される、というようなカット構成となる。
【0037】
ところで、上記のようにカットシーンはリアルタイムレンダリングしているため、描画対象の状況(オブジェクト数、ポリゴン数、各種エフェクトの有無)によってGPUの負荷も変動し得る。そして、例えば、描画内容が大きく変化し得るカットの切り替わりの際等、所定の状況下では、GPUの負荷がそのGPUの性能の限界近くまで急激に高くなることが考えられる。その結果、このような場合に、一時的にフレームレートが低下する(GPUの処理落ちが発生する)ことも考えられる。また例えば、あるフレームで、GPUの性能限界までGPU負荷が上がると、その後の数フレームにわたって処理落ちの状態が続く可能性もある。
【0038】
ここで、上記のようなGPUの処理負荷に関連して、「動的解像度」という技術が知られている。動的解像度は、端的に言えば、処理落ちが発生するくらいにGPUの処理負荷が高くなった場合、描画する解像度を下げることで、GPUの負荷を軽減するという技術である。上記ゲーム装置2にも、当該機能は実装されている。より具体的には、動的解像度では、1フレーム前のGPU負荷に基づき、解像度を下げるか否かを判定するような処理が行われる。例えば、解像度を720pとして処理していた1フレーム前のGPU負荷の計測結果が所定閾値を越えていた場合、今回のフレームは解像度を540pに下げて描画する、等である。これは、換言すれば、GPU負荷の測定が少なくとも1フレーム遅れることになるため、処理落ちが発生してから、解像度を下げるまでに間があるということでもある。そのため、GPUの処理負荷が急激に限界近くまで上がったときは、(まだ解像度を下げていない状況での処理のため)瞬間的に処理落ちが発生する状況となる。つまり、動的解像度は、GPU負荷の計測が終わってから解像度変更を行うため、処理落ちが発生する程度までGPU負荷が上がったフレームの処理(場合によっては、その後数フレーム分の処理)については、処理落ちの発生を防ぐことはできない。また、1フレームの処理負荷で解像度を変更する場合、解像度が急激に増減を繰り返す可能性があるが、そのような現象を防ぐ目的で、高負荷状態がある程度継続してから解像度を下げるように設定している場合もあり、そのような場合にはより処理落ちが目立つことになる。
【0039】
上記の点に鑑み、本実施形態では、以下のような処理を行うことで、上記のような処理落ちの発生に対処する。まず、開発段階で、カットシーンにおける各フレームのGPU負荷を予め調べておく。次に、当該GPU負荷の推移に基づき、GPU負荷が急激に高くなるフレームを解析する。当該フレームにおけるGPU負荷を「代替負荷」として記憶しておく。また、GPU負荷が急激に高くなるフレームの前の所定のフレーム(詳細は後述)を「解像度強制設定フレーム」として記憶する。そして、実際のゲーム処理(製品版ROM)においては、解像度強制設定フレームに係るフレーム番号の処理において、上記予め調べたGPU負荷を示す「代替負荷」という情報を用いて、上記のような動的解像度を機能させる。これにより、実際にGPU負荷が急激に高くなるフレームよりも手前の段階で、GPU負荷が高くなっているという状況を動的解像度の機能に認識させて、解像度を下げる処理を行わせる。その結果、上記GPU負荷が急激に高くなるフレームにおける処理が、解像度を下げられた状態で行われることになり、急激なGPU負荷の上昇による処理落ち(フレームレートの低下)が発生することを防ぐことができる。また、上述の「解像度強制設定フレーム」および「代替負荷」は、GPU負荷が急激に高くなる場合に限らず、様々な目的のために適用することが可能である。以下、図を用いて、上記解像度強制設定フレームや代替負荷の決め方等の概要を説明する。
【0040】
図8および図9は、本実施形態における処理の概要を説明するための図である。本実施形態では、図8で示すように、まず、上記カットシーンを描画するための基となるカットシーンデータを用いて、ゲーム装置2上で、カットシーンの描画処理と、各フレームにおけるGPU負荷を計測する処理を行わせる。この際、ゲーム装置2では、上記動的解像度の機能を用いないように設定して、描画処理を行わせる。つまり、ゲーム装置2で動的解像度の機能を使わない状態でカットシーンを再生させ、再生中におけるGPU負荷を調べる処理を行う。より具体的には、カットシーンの各フレームについて、GPU負荷と、カットの切り替えが発生したか否かを計測する。そして、当該計測結果が計測結果データとして出力される。
【0041】
次に、上記計測結果データを解析する処理が開発用端末1で実行される。当該解析処理では、次のような解析が行われる。
(1)カットの切り替わり直後におけるGPU負荷の推移の解析
カットが切り替わった直後は、GPU負荷の変動が大きくなる傾向があると考えられる。例えば、屋外のカットから屋内のカットに切り替わったような場合等、カットの切り替わり前後で描画される「絵」の内容も大きく変わることも考えられる。すなわち、描画対象となるオブジェクトが大きく入れ替わる等で、リアルタイムレンダリングにおける処理負荷の変動も大きくなると考えられる。このような点に鑑みて、本実施形態では、まず、カットの切り替え直後のフレームについて、上記解像度設定フレームとしてピックアップする。更に、カットの切り替わり後、5フレーム目から20フレーム目の期間中で最大となるGPU負荷を、上記代替負荷としてとしてピックアップする。
【0042】
なお、上記5フレーム目から20フレーム目までという期間は一例であり、これとは異なる期間を用いてもよい。例えば、カット切り替え後、2フレーム目から20フレーム目、という期間を用いてもよい。
【0043】
また、この解析では、GPU負荷について、「~%以上」等の閾値を用いた特段の判定は行わずに、単純に期間中の「最大」のGPU負荷をピックアップする。そのため、ピックアップされたGPU負荷は、必ずしも処理落ちが発生する程度に高いGPU負荷ではない場合もあり得る。
【0044】
(2)同一カット内での急激なGPU負荷の上昇の有無の解析
カットの切り替わり直後ではなくても、同一のカット内で急激にGPU負荷が上昇する場合も考えられる。そして、この場合も数フレーム処理落ちが発生する可能性がある。また、この場合、同一カット内で処理落ちが発生することになるため、カットの切り替わりのように「絵」が大きく変化するとは限らず、1~2フレーム程度の処理落ちであっても、目立つ可能性もある。そのため、このような同一カット内で急激にGPU負荷が上昇する場合についても、解像度強制設定フレームと代替負荷を設定する。具体的には、本実施形態では、同一カット内のフレームを、以下のルールに従って調べていく。
(2A)カット切り替わり後、上記カットの切り替わり直後の解析と重複する期間(本例では20フレーム目まで)については、解析対象外とする。
(2B)解析対象フレームに対して、以降40フレームの期間内にGPU負荷が30%以上上昇するフレームがあれば、当該解析対象フレームを解像度強制設定フレームとし、検出された負荷が上昇したフレームにおけるGPU負荷を代替負荷としてピックアップする。
(2C)前回解像度強制設定フレームとしてピックアップしたフレームから10フレームの間は、GPU負荷が30%以上上昇していても、上記解像度強制設定フレームおよび代替負荷のピックアップは行わない。これは、連続してGPU負荷が上がり続けている場合に、毎フレーム上記(2B)の条件が成立してしまうためである。
【0045】
なお、上記「40フレームの期間」や「30%以上上昇」という閾値も一例であり、カットシーンの内容やゲームの内容に応じて適宜異なる値が用いられてもよい。
【0046】
また、上記解析は、「同一カット」内での解析となるため、異なるカットをまたいでの判定は行われない。例えば、上記(2B)の解析で、40フレームの期間より短い期間でそのカットが終わる場合は、そのフレームまでが当該カットについての解析対象となる。
【0047】
上記のような解析処理の結果、ピックアップされた解像度強制設定フレームおよび代替負荷の情報は、「GPU負荷強制設定データ」として出力される。そして、最終的には、当該データが製品版のROMに含まれることになる。
【0048】
また、本実施形態では、上述したような負荷計測処理および解析処理が、定期的に実行されるように構成される。以下、これらの処理のことを「定期計測処理」と呼ぶ。例えば(バッチ処理的に)一日に一回、当該定期計測処理が自動的に実行されるように開発環境を構成されればよい。このように定期計測処理を実行させることで、開発者がカットシーンや描画処理の内容を更新した場合も、開発作業のやり直し等を経ることなく、更新後の内容に応じた適切な描画設定を行うことができる。これにより、開発作業における作業負荷の軽減が期待できる。
【0049】
次に、上記GPU負荷強制設定データを用いたゲーム処理の概要を図9を用いて説明する。まず、前提として、上記動的解像度処理がゲーム処理において用いられるものとする。そして、当該動的解像度処理は、上記のように、1フレーム前のGPU負荷に基づいて、現在のフレームにおける解像度を決定する。そのため、処理の大きな流れとしては、1フレーム前のGPU負荷の情報を取得→解像度の決定→描画処理、という流れになる。
【0050】
本実施形態では、毎フレームの処理において、まず、カットシーンのデータ、および、上記GPU負荷強制設定データを用いたGPU負荷指定処理が行われる。この処理では、今回処理するフレーム番号が上記GPU負荷強制設定データに登録されているか否かが判定される。そして、その結果に基づいて「負荷指定情報」が出力される。「負荷指定情報」の内容は、今回処理するフレーム番号が上記GPU負荷強制設定データに登録されていない場合は、1フレーム前のGPU負荷の情報が設定される。一方、今回処理するフレーム番号が上記GPU負荷強制設定データに登録されている場合は、当該GPU負荷強制設定データに設定されている代替負荷が設定される。つまり、開発段階で計測されたGPU負荷が設定される。
【0051】
次に、上記負荷指定情報を引数とした動的解像度処理が実行される。その結果決定された解像度を示す情報(以下、解像度指定情報)が出力され、描画処理に渡される。
【0052】
描画処理では、上記解像度指定情報で示される解像度に基づいてレンダリング等の各種処理が実行される、その結果、上記解像度指定情報で示される解像度のゲーム画像が生成されて、出力されることになる。
【0053】
なお、カット切り替わり時の解析では、上記のように単純に「GPU負荷が最大」であるフレームをピックアップしている。そのため、ピックアップした負荷が処理落ちが発生する程度に高いGPU負荷ではなかった場合等、必ずしも解像度が変更されるとは限らない。
【0054】
また、上記動的解像度の機能においては、チャタリング(頻繁な解像度の切り替わり)防止のため、解像度の変更後60フレーム(2秒)は解像度を更に変更しないようにする機能も有する。より具体的には、解像度を下げても依然として処理負荷が高い場合にはさらに下げることが考えられるので、解像度の変更後60フレーム(2秒)は解像度を上げないようにすればよい。この場合でも、上記動的解像度処理に際して、上記負荷指定情報を(強制的に)指定することで、下げられた解像度を強制的に戻すことを可能としてもよい。例えば、解像度が下げられた後、60フレームの経過前に、「処理落ちが発生する程度ではないGPU負荷」が負荷指定情報として動的解像度処理に渡された場合、このフレームの時点で解像度を強制的に戻すようにしてもよい。これにより、例えばカット切り替え後、比較的早いタイミングでGPU負荷が下がっていた場合に、速やかに解像度を戻すことを許容できる。
【0055】
[本実施形態の処理の詳細]
次に、図10図18を参照して、本実施形態における処理についてより詳細に説明する。
【0056】
[使用データについて]
まず、本実施形態で用いられる各種データに関して説明する。ここでは、先に、開発用端末1で用いられるデータについて説明し、その後、ゲーム装置2で用いられるデータについて説明する。
【0057】
[開発用端末1に記憶されるデータについて]
図10は、開発用端末1の記憶部12に記憶される各種データの一例を示すメモリマップである。記憶部12には、開発ツールプログラム501、計測結果データ502、GPU負荷強制設定データ503、等が記憶される。
【0058】
開発ツールプログラム501は、開発用端末1において上述したような処理を実行させるためのプログラムである。例えば、開発ツールプログラム501には、カットシーンの描画処理等の所定の処理の実行をゲーム装置2に命令するための機能や、ゲーム装置2からGPU負荷等の情報を取得するための機能が実現できるプログラムが含まれている。
【0059】
計測結果データ502は、上記のようにゲーム装置2に、動的解像度の機能を用いずにカットシーンを描画させたときのGPU負荷等を計測した結果である。図11に、計測結果データ502のデータ構成の一例を示す。計測結果データ502には、フレーム番号511、GPU負荷512、カット切り替えフラグ513とが含まれる。フレーム番号511は、上記カットシーンを構成する各フレームの番号である。GPU負荷512は、各フレームの処理におけるGPU負荷を示す情報である。本例では、0%~100%の範囲の値で示されるものとする。カット切り替えフラグ513は、カット切り替えが発生したフレームか否かを示すフラグである。Trueの場合は、そのフレームでカット切り替えが発生したことを示す。換言すれば、各カットの1フレーム目(先頭フレーム)に該当することを示す。Falseの場合は、カット切り替えが発生していないことを示す。
【0060】
図10に戻り、次に、GPU負荷強制設定データ503は、上記のような解析処理の結果として出力されるデータである。図12は、GPU負荷強制設定データ503のデータ構成の一例である。GPU負荷強制設定データ503は、強制設定フレーム番号514、代替負荷値515とを含む。強制設定フレーム番号514は、上述したような解析処理で解像度強制設定フレームとしてピックアップされたフレーム番号であり、代替負荷値515を適用させるフレーム番号を指定したものである。代替負荷値515は、上述したような解析処理で代替負荷としてピックアップされたGPU負荷512である。また、当該GPU負荷強制設定データ503は、最終的には、製品版のROMにゲームデータの一部として書き込まれるものでもある。
【0061】
[ゲーム装置2に記憶されるデータについて]
次に、ゲーム装置2に記憶されるデータについて説明する。ここでは、開発段階におけるゲーム装置2に記憶されるデータと、製品版のROMを用いたゲーム装置1の記憶部12に記憶されるデータとに分けて説明する。
【0062】
図13は、開発段階におけるゲーム装置1の記憶部12に記憶される各種データの一例を示すメモリマップである。記憶部12には、(開発段階の)ゲームプログラム601、カットシーンデータ602、およびオブジェクトデータ603等が記憶される。ゲームプログラム601は、カットシーンを描画するためのプログラム等が含まれている。また、毎フレームにおけるGPU負荷を計測するためのプログラムも含まれている。カットシーンデータ602には、上記カットシーンを描画するためのデータが含まれる。例えば、各カットにおいて表示するオブジェクト(仮想空間の内容)を特定する情報や、各種オブジェクトの動作パターンを定義したデータ、各カットにおける仮想カメラの位置や画角等のカメラパラメータ等が含まれる。また、上記カット切り替えフラグ513に相当する情報もカットシーンデータ602に含まれている。オブジェクトデータ603は、カットシーンにおいて描画される各種オブジェクトのデータである。オブジェクトデータ603には、各オブジェクトのモデリングデータやテクスチャデータ等が含まれている。
【0063】
[ゲーム装置2に記憶されるデータ(製品版ROM)について]
図14は、製品版のROMを用いたゲーム装置1の記憶部12に記憶される各種データの一例を示すメモリマップである。換言すれば、これらのデータは、製品版のROMに記憶されるデータでもある。記憶部12には、製品版のROMから読み込まれたゲームプログラム601、カットシーンデータ602、オブジェクトデータ603、GPU負荷強制設定データ503等が記憶される。ゲームプログラム601、カットシーンデータ602、オブジェクトデータ603については、製品版として確定された内容である点以外は、上記図15のデータを同趣旨のデータである。GPU負荷強制設定データ503は、上記解析処理の結果出力されたデータである。開発段階においては、GPU負荷強制設定データ503は複数回出力され得るが、このうち、製品版のROMに含めるものとして最終的に確定されたデータが製品版のROMに記憶される。なお、開発段階のデータにおいても、後述の定期計測処理以外の通常動作時のカットシーンの確認のために、その時点で最新のGPU負荷強制設定データ503が記憶されてもよいが、説明を省略する。
【0064】
次に、本実施形態における処理の詳細を説明する。なお、本実施形態では、1以上のプロセッサが1以上のメモリに記憶されたプログラムを読み込んで実行することにより、以下に示すフローチャートが実現される。また、当該フローチャートは、処理過程の単なる一例にすぎない。そのため、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判定ステップで利用される閾値も、単なる一例であり、必要に応じて他の値を採用してもよい。
【0065】
[定期計測処理について]
図15は、上記開発段階において定期的に実行される、定期計測処理の詳細を示すフローチャートである。図17において、まず、ステップS1で、開発用端末1のプロセッサ11は、負荷計測処理を実行する。その後、ステップS2で、プロセッサ11は、解析処理を実行する。本実施形態では、このような2つの処理が定期的に、かつ、自動的に実行される。以下、各処理について説明する。
【0066】
図16は、上記負荷計測処理の詳細を示すフローチャートである。図16において、まず、ステップS11で、プロセッサ11は、ゲーム装置2のプロセッサ21に対して、動的解像度機能を使用しないでカットシーン(複数のカットシーンがある場合は、それら全て)を再生する処理(描画処理)を開始する指示を送信する。これに応じて、ゲーム装置2では、動的解像度の機能を利用しないカットシーンの再生が開始される。また、図示は省略するが、ゲーム装置2では、当該再生中のカットシーンについて、現在のフレーム番号と、GPU負荷の情報と、カットの切り替わりに該当するフレームであるか否かを示す情報とを開発用端末1に送信する処理も行われる。
【0067】
次に、ステップS12で、プロセッサ11は、フレーム番号、GPU負荷の情報、および、カットの切り替わりを示す情報をゲーム装置2から取得する。なお、当該情報は、1フレーム毎に取得してもよいし、複数フレーム分の情報をゲーム装置2で溜めておき、まとめて取得するようにしてもよい。続くステップS13で、プロセッサ11は、上記取得した情報を計測結果データ502に登録する。
【0068】
次に、ステップS14で、プロセッサ11は、ゲーム装置2におけるカットシーンの再生処理が終了したか否かを判定する。その結果、まだ終了していない場合は(ステップS14でNO)、上記ステップS12に戻り、処理が繰り返される。一方、終了した場合は(ステップS14でYES)、ステップS15で、プロセッサ11は、計測結果データ502の内容を確定して保存する。以上で負荷計測処理は終了する。
【0069】
次に、上記ステップS2の解析処理の詳細を説明する。図17は、当該解析処理の詳細を示すフローチャートである。図17において、まず、ステップS21で、プロセッサ11は、計測結果データ502を読みこむ。
【0070】
次に、ステップS22で、プロセッサ11は、カットが切り替わった直後におけるGPU負荷の解析を行う。具体的には、プロセッサ11は、上記カット切り替えフラグ513に基づいて、各カットの期間を特定する。そして、プロセッサ11は、カットが切り替わった直後のフレームを上記解像度強制設定フレームとしてピックアップする。更に、プロセッサ11は、カット切り替わり後の5フレーム目から20フレーム目の期間中で、GPU負荷が最大であるフレームを、上記ピックアップした解像度強制設定フレームに対応する上記代替負荷としてピックアップする。
【0071】
次に、ステップS23で、プロセッサ11は、上述したような、同一カット内での急激なGPU負荷の上昇の有無の解析を行う。すなわち、同一カット内のフレームについて、上述したようなルールに従って調べていく処理が行われる。具体的には、プロセッサ11は、各カット内において、上記ステップS22の解析と重複する期間を除いて、各フレーム(比較基準とする解析対象フレーム)から40フレームの期間内に、GPU負荷が30%以上高いフレームがあるか否かをフレーム番号順に判定していく。30%以上高くなっているフレームがあれば、そのフレームが、前回に解像度強制設定フレームとしてピックアップしたフレームから10フレーム以内のフレームであるか否かも判定する。そして、10フレーム以内のフレームではない場合は、比較基準とした解析対象フレームを解像度強制設定フレームとしてピックアップする。また、当該GPU負荷が30%以上高くなっているフレームのGPU負荷を代替負荷としてピックアップする。例えば、200フレーム目のGPU負荷に対して、230フレーム目のGPU負荷が30%以上高くなっていた場合は、200フレーム目を解像度強制設定フレームとしてピックアップする。また、230フレーム目のGPU負荷を代替負荷としてピックアップする。なお、上記のように当該解析は、カット単位での解析となるため、異なるカットをまたいでの判定は行われない。
【0072】
次に、ステップS24で、プロセッサ11は、上記ステップS22およびS23の解析の結果に基づいて、GPU負荷強制設定データ503を生成して保存する。以上で、解析処理は終了する。
【0073】
以上で、開発用端末1で実行される処理の説明を終了する。
【0074】
[ゲーム装置2で実行されるカットシーンの描画処理について]
次に、上記GPU負荷強制設定データ503を用いた、ゲーム装置2で実行される処理について説明する。すなわち、最終的に確定されたGPU負荷強制設定データ503が製品版のゲームデータとして含まれているゲームのROMを用いたゲーム処理について説明する。なお、カットシーン以外の場面におけるゲーム処理については説明を省略する。図18は、製品版のゲームROMから読み出したプログラムおよびゲームデータに基づくカットシーン描画処理の一例を示すフローチャートである。なお、図18のフローチャートは、1フレーム分の描画処理を示す。そのため、例えば30fpsを想定する場合は、当該処理が1秒間に30回繰り返されることになる。
【0075】
図18において、まず、ステップS31で、プロセッサ21は、カットシーンデータ602から、今回の描画対象となる1フレーム分のデータを取得する。
【0076】
次に、ステップS32で、プロセッサ21は、今回描画対象となるフレーム番号が、GPU負荷強制設定データ503に登録されているか否かを判定する。当該判定の結果、登録されている場合は(ステップS32でYES)、ステップS33で、プロセッサ21は、代替負荷値515を「負荷指定情報」というパラメータに設定する。登録されていない場合は(ステップS32でNO)、ステップS34で、プロセッサ21は、1フレーム前におけるGPU負荷を「負荷指定情報」として設定する。
【0077】
次に、ステップS35で、プロセッサ21は、上記「負荷指定情報」を引数として動的解像度の機能を利用する。その結果、「負荷指定情報」に基づいて、今回のフレームの描画解像度が決定される。
【0078】
次に、ステップS36で、プロセッサ21は、上記決定された解像度でゲーム画像を描画する。そして、当該ゲーム画像を出力する。以上で。1フレーム分のゲーム画像の描画処理が終了する。
【0079】
以上で、ゲーム装置2におけるカットシーン描画処理の詳細説明を終了する。
【0080】
このように、本実施形態では、カットシーンにおけるGPU負荷を予め計測しておき、当該計測結果に基づいて上記解像度強制設定フレームおよび代替負荷を決定する。そして、実製品においては、解像度強制設定フレームとして指定されているフレームの処理においては、上記代替負荷を動的解像度の機能に渡すように処理している。これにより、代替負荷に基づいて動的解像度を機能させることができる。そのため、例えば、変更前の解像度ではGPU負荷が100%となるようなフレームに係る描画処理を、解像度を下げて実行させることができる。その結果、GPUの処理負荷を軽減させ、ひいては、一時的なフレームレートの低下が発生することを抑制できる。
【0081】
[変形例]
なお、上記実施形態では、GPU処理負荷の上昇によるフレームレート低下への対策として、解像度を下げる、という例を挙げた。この他、解像度以外の描画設定を変更することで、GPU処理負荷を軽減するようにしてもよい。つまり、上記代替負荷に基づく動的解像度の機能を用いる代わりに、例えばアンチエイリアス等の「重い」エフェクトの処理をオフにするように描画設定を一時的に変更してもよい。
【0082】
また、上記「代替負荷」として用いる値について、上記実施形態では、負荷計測処理で計測した値をそのまま用いる例を示した。他の実施形態では、代替負荷として用いる値は必ずしも実計測値でなくてもよい。例えば、実計測値にかかわらず、「100%」を常に代替負荷の値として用いてもよい。
【符号の説明】
【0083】
1 開発用端末
2 ゲーム装置
11 プロセッサ
12 記憶部
21 プロセッサ
22 記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18