(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-11
(45)【発行日】2022-03-22
(54)【発明の名称】プログラム、画像処理方法、及び画像処理装置
(51)【国際特許分類】
G06T 19/00 20110101AFI20220314BHJP
A63F 13/358 20140101ALI20220314BHJP
A63F 13/52 20140101ALI20220314BHJP
G06F 3/04815 20220101ALI20220314BHJP
【FI】
G06T19/00 300B
A63F13/358
A63F13/52
G06F3/0481 150
(21)【出願番号】P 2018001356
(22)【出願日】2018-01-09
【審査請求日】2020-10-15
(73)【特許権者】
【識別番号】595000427
【氏名又は名称】株式会社コーエーテクモゲームス
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】今井 将吾
【審査官】橘 高志
(56)【参考文献】
【文献】特開2008-084302(JP,A)
【文献】特開2005-275797(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
A63F 13/358
A63F 13/52
G06F 3/04815
(57)【特許請求の範囲】
【請求項1】
画像処理装置に、
仮想3次元空間上の所定の位置からの距離が第1の閾値以上の第1のオブジェクトに対し、第1の解像度の画素の値を示す第1のデータを、所定の記録媒体からメモリに読み込むステップと、
前記第1のオブジェクトの前記距離が前記第1の閾値未満である場合、前記第1の解像度の画素の少なくとも一部を含む第2の解像度の画素の値のうち、前記第1のデータに含まれない画素の値を示す第2のデータを、前記所定の記録媒体から前記メモリに読み込むステップと、
前記第1のデータ、及び前記第2のデータに基づいて、前記第2の解像度の画像を生成するステップと、
生成した前記第2の解像度の画像を用いて、前記第1のオブジェクトを画面に表示するステップと、
前記第1のオブジェクトの前記距離が前記第1の閾値以上に変化した場合、生成した前記第2の解像度の画像を用いて、前記第1の解像度の画像を生成するステップと、
生成した前記第1の解像度の画像を用いて、前記第1のオブジェクトを表示するステップと、
前記第2の解像度の画像を前記メモリから消去するステップと、
を実行させるプログラム。
【請求項2】
前記所定の位置は、ユーザにより操作される第2のオブジェクトの位置、または前記仮想3次元空間上の前記ユーザの視点の位置である、
請求項1に記載のプログラム。
【請求項3】
前記第1のオブジェクトの前記距離が前記第1の閾値よりも小さい第2の閾値未満である場合、前記第2の解像度の画素の少なくとも一部を含む第3の解像度の画素の値のうち、前記第1のデータ及び前記第2のデータに含まれない画素の値を示す第3のデータを、前記所定の記録媒体から前記メモリに読み込むステップと、
前記第1のデータ、前記第2のデータ、及び前記第3のデータに基づいて、前記第3の解像度の画像を生成するステップと、
生成した前記第3の解像度の画像を用いて、前記第1のオブジェクトを表示するステップと、
を実行させる、請求項1または2に記載のプログラム。
【請求項4】
前記第2の解像度の画像に対応付けて、前記第2の解像度の画像を、前記第1のオブジェクトの表示に用いた時刻を記録するステップと、
前記メモリの空き容量が所定の閾値以下となった際、前記時刻が最も古い画像のデータを前記メモリから消去するステップと、
を実行させる、請求項1乃至
3のいずれか一項に記載のプログラム。
【請求項5】
画像処理装置が、
仮想3次元空間上の所定の位置からの距離が第1の閾値以上の第1のオブジェクトに対し、第1の解像度の画素の値を示す第1のデータを、所定の記録媒体からメモリに読み込むステップと、
前記第1のオブジェクトの前記距離が前記第1の閾値未満である場合、前記第1の解像度の画素の少なくとも一部を含む第2の解像度の画素の値のうち、前記第1のデータに含まれない画素の値を示す第2のデータを、前記所定の記録媒体から前記メモリに読み込むステップと、
前記第1のデータ、及び前記第2のデータに基づいて、前記第2の解像度の画像を生成するステップと、
生成した前記第2の解像度の画像を用いて、前記第1のオブジェクトを画面に表示するステップと、
前記第1のオブジェクトの前記距離が前記第1の閾値以上に変化した場合、生成した前記第2の解像度の画像を用いて、前記第1の解像度の画像を生成するステップと、
生成した前記第1の解像度の画像を用いて、前記第1のオブジェクトを表示するステップと、
前記第2の解像度の画像を前記メモリから消去するステップと、
を実行する画像処理方法。
【請求項6】
仮想3次元空間上の所定の位置からの距離が第1の閾値以上の第1のオブジェクトに対し、第1の解像度の画素の値を示す第1のデータを、所定の記録媒体からメモリに読み込み、
前記第1のオブジェクトの前記距離が前記第1の閾値未満である場合、前記第1の解像度の画素の少なくとも一部を含む第2の解像度の画素の値のうち、前記第1のデータに含まれない画素の値を示す第2のデータを、前記所定の記録媒体から前記メモリに読み込む制御部と、
前記第1のデータ、及び前記第2のデータに基づいて、前記第2の解像度の画像を生成する生成部と、
生成した前記第2の解像度の画像を用いて、前記第1のオブジェクトを画面に表示する表示制御部と、
を有し、
前記生成部は、前記第1のオブジェクトの前記距離が前記第1の閾値以上に変化した場合、生成した前記第2の解像度の画像を用いて、前記第1の解像度の画像を生成し、
前記表示制御部は、生成した前記第1の解像度の画像を用いて、前記第1のオブジェクトを表示し、
前記制御部は、前記第2の解像度の画像を前記メモリから消去する、
画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、画像処理方法、及び画像処理装置に関する。
【背景技術】
【0002】
従来、コンピュータゲームやシミュレーション等において、3次元コンピュータグラフィックスにより、ユーザ(プレイヤー)が操作するキャラクター等のオブジェクトを、仮想3次元空間上で移動できるように表示する技術が知られている。
【0003】
この技術において、それぞれ異なる複数の解像度のテクスチャ画像等を、一つのオブジェクトに対して予め用意しておき、ユーザが操作するキャラクターの仮想3次元空間上の位置等からの距離に応じて、当該オブジェクトを表示するために用いるテクスチャ画像等の解像度を切り替える技術が知られている(例えば、特許文献1乃至3を参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-202716号公報
【文献】特許第5292146号公報
【文献】特許第4502678号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術には、表示するオブジェクトの数が比較的多い等の場合、画像をメモリに読み込む処理に時間がかかる。そのため、ユーザの視点の位置が比較的急に変化した場合等において、当該位置からの距離が近くなったオブジェクトが、距離に応じた解像度で表示されるまでに時間がかかる場合があるという問題がある。
【0006】
そこで、一側面では、オブジェクトの表示をより円滑に行える技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、画像処理装置に、仮想3次元空間上の所定の位置からの距離が第1の閾値以上の第1のオブジェクトに対し、第1の解像度の画素の値を示す第1のデータを、所定の記録媒体からメモリに読み込むステップと、前記第1のオブジェクトの前記距離が前記第1の閾値未満である場合、前記第1の解像度の画素の少なくとも一部を含む第2の解像度の画素の値のうち、前記第1のデータに含まれない画素の値を示す第2のデータを、前記所定の記録媒体から前記メモリに読み込むステップと、前記第1のデータ、及び前記第2のデータに基づいて、前記第2の解像度の画像を生成するステップと、生成した前記第2の解像度の画像を用いて、前記第1のオブジェクトを画面に表示するステップと、前記第1のオブジェクトの前記距離が前記第1の閾値以上に変化した場合、生成した前記第2の解像度の画像を用いて、前記第1の解像度の画像を生成するステップと、生成した前記第1の解像度の画像を用いて、前記第1のオブジェクトを表示するステップと、前記第2の解像度の画像を前記メモリから消去するステップと、を実行させるプログラムが提供される。
【発明の効果】
【0008】
一側面によれば、オブジェクトの表示をより円滑に行うことができる。
【図面の簡単な説明】
【0009】
【
図1】実施形態に係る画像処理装置のハードウェア構成例を示す図である。
【
図2】実施形態に係る画像処理装置の機能ブロック図である。
【
図3】画像処理装置の処理の一例を示すフローチャートである。
【
図4A】基準位置からの距離に応じて用いられるテクスチャ画像の解像度について説明する図である。
【
図4B】基準位置からの距離に応じて用いられるテクスチャ画像の解像度について説明する図である。
【
図5A】基準位置からの距離に応じたテクスチャ画像用のデータの一例について説明する図である。
【
図5B】基準位置からの距離に応じたテクスチャ画像用のデータの一例について説明する図である。
【
図6A】仮想3次元空間の表示画面例について説明する図である。
【
図6B】仮想3次元空間の表示画面例について説明する図である。
【発明を実施するための形態】
【0010】
以下、図面に基づいて本発明の実施形態を説明する。
【0011】
<ハードウェア構成>
図1は、実施形態に係る画像処理装置10のハードウェア構成例を示す図である。
図1に示す画像処理装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
【0012】
画像処理装置10での処理を実現するゲームプログラムは、記録媒体101によって提供される。ゲームプログラムを記録した記録媒体101がドライブ装置100にセットされると、ゲームプログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、ゲームプログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたゲームプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0013】
メモリ装置103は、例えば、DRAM(Dynamic Random Access Memory)、またはSRAM(Static Random Access Memory)等のメモリであり、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って画像処理装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107は、コントローラ等、キーボード及びマウス等、またはタッチパネル及びボタン等で構成され、様々な操作指示を入力させるために用いられる。
【0014】
なお、記録媒体101の一例としては、CD-ROM、DVDディスク、ブルーレイディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【0015】
<機能構成>
次に、
図2を参照し、画像処理装置10の機能構成について説明する。
図2は、実施形態に係る画像処理装置10の機能ブロック図である。
【0016】
画像処理装置10は、記憶部11を有する。記憶部11は、例えば、補助記憶装置102等を用いて実現される。記憶部11は、3次元データ111等を記憶する。3次元データ111は、各オブジェクトの3次元モデルのデータであり、各オブジェクトのモデルのデータ、及びテクスチャ画像のデータ等を含むデータである。
【0017】
また、画像処理装置10は、受付部12、制御部13、生成部14、及び表示制御部15を有する。これら各部は、画像処理装置10にインストールされた1以上のプログラムが、画像処理装置10のCPU104に実行させる処理により実現される。
【0018】
受付部12は、プレイヤーキャラクターを仮想3次元空間上で移動させる等の操作をユーザから受け付ける。
【0019】
制御部13は、ゲームの進行等を制御する。また、制御部13は、受付部12により受け付けた操作等に応答して、仮想3次元空間上の所定の位置からの距離が所定の閾値以上のオブジェクトに対し、比較的低い解像度の画素の値を示す第1のデータを、記録媒体101、または補助記憶装置102からメモリ装置103に読み込む。ここで、所定の位置(以下で、「基準位置」とも称する。)は、例えば、仮想3次元空間上のプレイヤーキャラクターの位置または仮想3次元空間上のユーザの視点(仮想的なカメラ、仮想カメラ)の位置である。なお、制御部13は、仮想カメラにより撮影される仮想3次元空間を、3次元コンピュータグラフィックスにより画面に表示する。
仮想カメラの位置は、例えば、プレイヤーキャラクターの中心位置から仮想3次元空間上で所定の距離離れた球面上の位置であり、ユーザの操作により当該球面上で移動されてもよい。また、当該所定の距離は、ユーザの操作により変更されてもよい。
【0020】
また、制御部13は、受付部12により受け付けた操作等に応答して、仮想3次元空間上の所定の位置から当該オブジェクトまでの距離が所定の閾値となった場合、当該比較的低い解像度の画素の少なくとも一部を含む比較的高い解像度の画素の値のうち、第1のデータに含まれない画素の値を示す第2のデータを、記録媒体101、または補助記憶装置102からメモリ装置103に読み込む。
【0021】
生成部14は、メモリ装置103に記憶している比較的低い解像度のデータと、制御部13により、補助記憶装置102等の記録媒体から読み取られた比較的高い解像度用の差分データとに基づいて、比較的高い解像度の画像を生成する。また、生成部14は、メモリ装置103に記憶している比較的高い解像度のデータに基づいて、比較的低い解像度の画像を生成する。
【0022】
表示制御部15は、制御部13からの指示に従い、生成部14により生成された画像データを用いて、ゲームにおける画像を画面に表示させる。
【0023】
<処理>
次に、
図3乃至
図6Bを参照して、画像処理装置10の処理について説明する。
図3は、画像処理装置10の処理の一例を示すフローチャートである。
図4A、及び
図4Bは、基準位置からの距離に応じて用いられるテクスチャ画像の解像度について説明する図である。
図5A、及び
図5Bは、基準位置からの距離に応じたテクスチャ画像用のデータの一例について説明する図である。
図6A、及び
図6Bは、仮想3次元空間の表示画面例について説明する図である。
【0024】
以下では、オープンワールド(サンドボックス、フリーローミング)のゲームを例として説明する。オープンワールドのゲームでは、ユーザにより操作されるプレイヤーキャラクターの移動に応じて、プレイヤーキャラクターの周辺の地形、建造物、草木等の3次元データ等を読み込んで表示する。これにより、ユーザは、プレイヤーキャラクターを、比較的広大な仮想3次元空間上の世界において、マップの切り替え等がなされずにシームレスに動き回ることができる。
【0025】
ステップS1において、制御部13は、ユーザの操作等によりゲームが起動されると、3次元データ111等を含むゲームのデータを、補助記憶装置102または記録媒体101から読み込み、読み込んだデータと、読み込んだデータから生成部14により生成されたテクスチャ画像とをメモリ装置103に記憶させる。
【0026】
ここで、読み込んだデータには、仮想3次元空間上の各オブジェクトに対する、基準位置から当該各オブジェクトの位置までの距離に応じた解像度(ピクセル数)のテクスチャ画像を生成部14により生成させるためのデータが含まれる。なお、仮想3次元空間上の各オブジェクトには、例えば、地形、建造物、草木、及びキャラクター等が含まれる。
【0027】
ここで、例えば、プレイヤーキャラクター等の位置から遠方に位置する建造物や木等のオブジェクトは、画面に表示される画素のサイズが比較的小さい。そのため、当該オブジェクトに対し、画面に表示される画素よりも一定程度以上解像度が高いテクスチャ画像を用いてテクスチャマッピングをする場合、当該テクスチャ画像に含まれるデータのうちテクスチャマッピングに利用されないデータの割合が比較的高くなる。そこで、本実施形態では、
図4A、及び
図4Bに示すような解像度のテクスチャ画像を用いることで、テクスチャマッピングに利用されないデータの割合を低減している。
【0028】
図4A、及び
図4Bに示すように、制御部13は、仮想3次元空間における基準位置からオブジェクトの位置までの距離に応じて、当該距離が小さくなる(プレイヤーキャラクター等がオブジェクトに近づく)に従って、より高い解像度のテクスチャ画像を用いて、オブジェクトの3次元モデルに対するテクスチャマッピングを実行させる。
【0029】
図4A、及び
図4Bの例では、基準位置からオブジェクトの位置までの距離に応じて、以下のように5段階の解像度が規定されている。なお、解像度の段階は5に限定されない。
【0030】
(1)
図4Aに示すように、基準位置400からの距離が第1の閾値401以上のオブジェクト411に対して、N×N画素の解像度421(「第1の解像度」の一例。)が規定されている。ここで、Nは、例えば64等でもよい。
【0031】
(2)
図4Aに示すように、基準位置400からの距離が、第1の閾値401よりも小さい第2の閾値402以上であり、かつ第1の閾値401未満のオブジェクト412に対して、2N×2N画素の解像度422(「第2の解像度」の一例。)が規定されている。
【0032】
(3)
図4Bに示すように、基準位置400からの距離が、第2の閾値402よりも小さい第3の閾値403以上であり、かつ第2の閾値402未満のオブジェクト413に対して、4N×4N画素の解像度423(「第3の解像度」の一例。)が規定されている。なお、
図4Bは、
図4Aにおける、基準位置400からの距離が第2の閾値402よりも小さい範囲を拡大したものである。
【0033】
(4)
図4Bに示すように、基準位置400からの距離が、第3の閾値403よりも小さい第4の閾値404以上であり、かつ第3の閾値403未満のオブジェクト414に対して、8N×8N画素の解像度424が規定されている。
【0034】
(5)
図4Bに示すように、基準位置400からの距離が、第4の閾値404未満のオブジェクト415に対して、16N×16N画素の解像度425が規定されている。
【0035】
なお、第1の閾値401の値、第2の閾値402の値、第3の閾値403の値、第4の閾値404の値は、それぞれ、第5の閾値405の値の16倍、8倍、4倍、2倍としてもよい。
【0036】
また、本実施形態では、
図5Aに示すように、補助記憶装置102または記録媒体101には、仮想3次元空間上の各オブジェクトのIDに対応付けて、以下のデータをそれぞれ含む3次元データ111が予め記録されている。
【0037】
(1)基準位置400からの距離が第1の閾値401以上のオブジェクト411に対して用いられるN×N画素の解像度421のテクスチャ画像を表す第1データ501(「第1のデータ」の一例。)。
【0038】
(2)基準位置400からの距離が、第1の閾値401よりも小さい第2の閾値402以上であり、かつ第1の閾値401未満のオブジェクト412に対して用いられる2N×2N画素の解像度422のテクスチャ画像のうち、第1データ501に含まれない部分の2N×2N-N×N画素の第2データ502(「第2のデータ」の一例。)。
【0039】
(3)基準位置400からの距離が、第2の閾値402よりも小さい第3の閾値403以上であり、かつ第2の閾値402未満のオブジェクト413に対して用いられる4N×4N画素の解像度423のテクスチャ画像のうち、第1データ501、及び第2データ502に含まれない部分の4N×4N-2N×2N-N×N画素の第3データ503(「第3のデータ」の一例。)。
【0040】
(4)基準位置400からの距離が、第3の閾値403よりも小さい第4の閾値404以上であり、かつ第3の閾値403未満のオブジェクト414に対して用いられる8N×8N画素の解像度424のテクスチャ画像のうち、第1データ501、第2データ502、及び第3データ503に含まれない部分の8N×8N-4N×4N-2N×2N-N×N画素の第4データ504。
【0041】
(5)基準位置400からの距離が、第4の閾値404未満のオブジェクト415に対して用いられる16N×16N画素の解像度425のテクスチャ画像のうち、第1データ501、第2データ502、第3データ503、及び第4データ504に含まれない部分の16N×16N-8N×8N-4N×4N-2N×2N-N×N画素の第5データ505。
【0042】
図5Bの○で示すように、例えば、第1データ501は、16N×16Nが画素の解像度425のテクスチャ画像における、16N-1画素間隔のデータである。
【0043】
また、
図5Bの●で示すように、第2データ502は、16N×16Nが画素の解像度425のテクスチャ画像における、8N-1画素間隔の画素のデータのうち、第1データ501に含まれない画素のデータである。
【0044】
また、
図5Bの△で示すように、第3データ503は、16N×16Nが画素の解像度425のテクスチャ画像における、4N-1画素間隔の画素のデータのうち、第1データ501、及び第2データ502に含まれない画素のデータである。
【0045】
また、
図5Bの▲で示すように、第4データ504は、16N×16Nが画素の解像度425のテクスチャ画像における、2N-1画素間隔の画素のデータのうち、第1データ501乃至第3データ503に含まれない画素のデータである。
【0046】
また、
図5Bの□で示すように、第5データ505は、16N×16Nが画素の解像度425のテクスチャ画像における画素のデータのうち、第1データ501乃至第4データ504に含まれない画素のデータである。
【0047】
上述したステップS1の処理により、仮想3次元空間上の各オブジェクトについて、基準位置から当該各オブジェクトの位置までの距離に応じて、生成部14により生成された、以下の(1)乃至(5)のいずれかのテクスチャ画像がメモリ装置103に記憶される。
(1)第1データ501のみに基づいて生成された解像度421のテクスチャ画像。
(2)第1データ501及び第2データ502に基づいて生成された解像度422のテクスチャ画像。
(3)第1データ501乃至第3データ503に基づいて生成された解像度423のテクスチャ画像。
(4)第1データ501乃至第4データ504に基づいて生成された解像度424のテクスチャ画像。
(5)第1データ501乃至第5データ505に基づいて生成された解像度425のテクスチャ画像。
【0048】
続いて、制御部13は、3次元コンピュータグラフィックスにより、メモリ装置103に記憶されたデータを用いて、仮想3次元空間上の各オブジェクトを表示制御部15により画面に表示させる(ステップS2)。ここで、表示制御部15により、
図6A、及び
図6Bに示すような画像が表示される。
図6Aの例では、比較的近く位置する木のオブジェクト601、及び比較的遠くに位置する木のオブジェクト602等が表示されている。
図6Bの例では、比較的近く位置する木のオブジェクト611、及び比較的遠くに位置する木のオブジェクト612等が表示されている。
【0049】
ここで、制御部13は、オブジェクト601、及びオブジェクト611については、それぞれ、各オブジェクトに対応付けられたデータのうち、第1データ501乃至第5データ505を用いて、16N×16N画素の解像度のテクスチャ画像を生成し、生成したテクスチャ画像を用いて表示させている。また、制御部13は、オブジェクト602、及びオブジェクト612については、それぞれ、第1データ501乃至第4データ504を用いて、8N×8N画素の解像度のテクスチャ画像を生成し、生成したテクスチャ画像を用いて表示させている。
【0050】
なお、制御部13は、例えば、画像処理装置10のOS(Operating System)等のプログラムにより提供されるAPI(Application Programming Interface)により実現される表示制御部15を用いて、テクスチャマッピングを実行させてもよい。例えば、テクスチャ画像、及びオブジェクトの3次元モデルのデータを当該APIに入力すると、OS等のプログラムにより、当該オブジェクトが画面に表示される画素のサイズに応じたテクスチャマッピングがされてもよい。
【0051】
続いて、受付部12は、プレイヤーキャラクターを移動させる操作をユーザから受け付ける(ステップS3)。
【0052】
続いて、制御部13は、ユーザの操作に応答して、プレイヤーキャラクターを仮想3次元空間上で移動させる(ステップS4)。
【0053】
続いて、制御部13は、仮想3次元空間上の各オブジェクトのうち、画面に表示される各オブジェクトを判定する(ステップS5)。なお、制御部13は、例えば、仮想3次元空間上のユーザの視点に対して、他のオブジェクトの影に隠れて見えない位置のオブジェクト、及びユーザの視界に入らない位置のオブジェクトに対しては、以下の処理を実行しなくてもよい。
【0054】
続いて、制御部13は、メモリ装置103に記憶されているテクスチャ画像を用いて、画面に表示される各オブジェクトを表示制御部15により画面に表示させる(ステップS6)。これにより、例えば、プレイヤーキャラクターが、比較的長い距離を急に移動した場合でも、ステップS1にてゲームの起動時に読み込んでメモリ装置103に記憶されている最低解像度のテクスチャ画像を表す第1データ501を用いて、各オブジェクトが表示される。そのため、ユーザが、例えば、プレイヤーキャラクターが、以前に訪れたことがある街等に瞬時に移動できる機能を利用した場合であっても、距離に応じて規定されている解像度による画質よりも低いものの、瞬時に各オブジェクトを表示させておくことができる。
【0055】
続いて、制御部13は、画面に表示される各オブジェクトのうち、一のオブジェクトを、処理対象のオブジェクトとして選択する(ステップS7)。以下で、画面に表示される各オブジェクトのうちの任意の一つのオブジェクトを、「処理対象のオブジェクト」と称する。従って、以下の処理は、画面に表示される各オブジェクトに対してそれぞれ実行される。
【0056】
続いて、制御部13は、上述した基準位置から、処理対象のオブジェクトの位置までの仮想3次元空間上の距離を算出する(ステップS8)。
【0057】
続いて、制御部13は、算出した距離に応じて規定されている解像度(以下で「距離に応じた解像度」と称する。)が、処理対象のオブジェクトに対して現在メモリ装置103に記憶されている解像度(以下で「現在の解像度」と称する。)と同一であるか否かを判定する(ステップS9)。
【0058】
距離に応じた解像度と現在の解像度が同一である場合(ステップS9でYES)、後述するステップS16の処理に進む。
【0059】
距離に応じた解像度と現在の解像度が同一でない場合(ステップS9でNO)、制御部13は、距離に応じた解像度が、現在の解像度よりも高いか否かを判定する(ステップS10)。
【0060】
距離に応じた解像度が、現在の解像度よりも高い場合(ステップS10でYES)、制御部13は、処理対象のオブジェクトに対する、距離に応じた解像度のテクスチャ画像のうち、現在メモリ装置103に記憶されていない部分の画像データ(差分データ)のみを、補助記憶装置102または記録媒体101から読み込む(ステップS11)。
【0061】
続いて、制御部13は、読み込んだ差分データと、メモリ装置103に記憶されているデータとに基づいて、処理対象のオブジェクトに対する、距離に応じた解像度のテクスチャ画像を生成部14により生成させてメモリ装置103に記憶する(ステップS12)。
【0062】
続いて、制御部13は、メモリ装置103に記憶されているテクスチャ画像を用いて、処理対象のオブジェクトの表示を表示制御部15により更新し(ステップS13)、後述するステップS16の処理に進む。
【0063】
一方、距離に応じた解像度が、現在の解像度よりも高くない場合(ステップS10でNO)、制御部13は、メモリ装置103に記憶されている処理対象のオブジェクトのテクスチャ画像(以下で「原画像データ」と称する。)に基づいて、距離に応じた解像度のテクスチャ画像を生成部14により生成させてメモリ装置103に記憶する(ステップS14)。
【0064】
続いて、制御部13は、原画像データをメモリ装置103から消去する(ステップS15)。
【0065】
続いて、制御部13は、画面に表示される各オブジェクトのうち、処理対象のオブジェクトとして選択されていない未処理のオブジェクトがあるか否かを判定する(ステップS16)。
【0066】
未処理のオブジェクトがある場合(ステップS16でYES)、当該未処理のオブジェクトを処理対象のオブジェクトとして選択し(ステップS17)、ステップS8の処理に進む。
【0067】
未処理のオブジェクトがない場合(ステップS16でNO)、制御部13は、ユーザの操作等により、ゲームを終了するか否かを判定する(ステップS18)。ゲームを終了しない場合(ステップS18でNO)、ステップS3の処理に進む。ゲームを終了する場合(ステップS18でYES)、処理を終了する。
【0068】
<変形例>
制御部13は、ステップS15で、距離に応じた解像度のテクスチャ画像を生成した際に、原画像データをメモリ装置103から消去する代わりに、メモリ装置103の空きが所定の閾値以下となった際に、原画像データをメモリ装置103から消去するようにしてもよい。そして、制御部13は、原画像データをメモリ装置103に残っている場合は、ステップS11乃至ステップS12で、補助記憶装置102または記録媒体101からデータを読み込んで距離に応じた解像度のテクスチャ画像を生成する代わりに、当該原画像データを再利用してもよい。これにより、オブジェクトの表示をさらに円滑に行うことができる。
【0069】
この場合、制御部13は、例えば、原画像データに、当該原画像データが最後に表示のために利用された時刻(以下で「最終利用時刻」と称する。)を対応付けて記憶しておく。そして、制御部13は、メモリ装置103の空き容量が所定の閾値以下となった際に、最終利用時刻が最も古い原画像データを、メモリ装置103から消去するようにしてもよい。この場合、例えば、2N×2N画素の解像度422、4N×4N画素の解像度423、8N×8N画素の解像度424、及び16N×16N画素の解像度425の各々に対して、メモリ装置103に記録可能な画像の数の上限値を予め制御部13に設定しておく。そして、制御部13は、一の解像度に対して記録している画像の数が、当該一の解像度に対して設定された上限値を超える場合、複数のオブジェクトに対する当該一の解像度の画像群のうち、最終利用時刻が最も古い画像のデータを、メモリ装置103から消去する。
【0070】
<効果>
プレイヤーキャラクターが広大な仮想3次元空間上の世界を自由に移動できるオープンワールドのゲームでは、高い位置から一帯の風景を眺める場合等において、スケールの大きな映像表現が可能である。この場合、周辺の建物や木等のオブジェクトのみならず、遠くに位置するオブジェクトもできる限り表示することが臨場感の点で好ましい。
【0071】
そのため、オープンワールドのゲームでは、個々の空間の端に到達したら別の空間に切り替えるようなオープンワールドではないゲームと比較して、メモリに読み込んでおくべきオブジェクト等のデータ量や、オブジェクトの表示等のための処理の負荷が大きい。
【0072】
一方で、ゲーム装置のハードウェアの性能により、メモリサイズやCPU等の演算速度には上限がある。そのため、従来技術では、例えば、オープンワールドのゲーム等、表示するオブジェクトの数が多いこと等により処理負荷が比較的高い3次元コンピュータグラフィックスにおいて、表示させるオブジェクトの数を減らすなどの対応が必要になる。
【0073】
一方、上述した実施形態によれば、仮想3次元空間上の所定の位置からの距離が閾値以上のオブジェクトに対し、第1の解像度の画素の値を示す第1のデータを、所定の記録媒体からメモリに読み込む。そして、当該第1のオブジェクトとの距離が当該閾値未満となった場合、第1の解像度の画素の少なくとも一部を含む第2の解像度の画素の値のうち、第1のデータに含まれない画素の値を示す第2のデータをメモリに読み込む。そして、第1のデータ、及び前記第2のデータに基づいて、第2の解像度の画像を生成し、生成した第2の解像度の画像を用いて、第1のオブジェクトを画面に表示する。
【0074】
すなわち、上述した実施形態によれば、オブジェクトとの距離が近づいた際に、第2の解像度の画像のデータのうち、当該オブジェクトに対して既にメモリに読み込んでいる第1のデータとの差分である第2データのみをメモリに追加で読み込む。なお、HDD等の補助記憶装置102、及びブルーレイディスク等の記録媒体101等の記録媒体からCPU104がデータを読み取る速度は、メモリからCPU104がデータを読み取る速度と比較してかなり遅い。そのため、上述した実施形態によれば、従来技術のように、オブジェクトとの距離が近づいた際に、第2の解像度の画像のデータ全体を記録媒体から読み取る処理と比較して、オブジェクトの表示をより円滑に行うことができる。
【0075】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0076】
画像処理装置10の各機能部は、例えば1以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。また、画像処理装置10は、ユーザの端末にゲームの画面を表示させる、オンラインゲーム用のサーバであってもよい。
【0077】
なお、上述した実施形態では、オープンワールドのゲームを例として説明したが、開示の技術は、オープンワールド以外のゲーム、シミュレーション等の3次元コンピュータグラフィックスにおいて、仮想3次元空間上で所定のオブジェクトを他のオブジェクトの上に乗せる場合に適用できる。
【0078】
なお、記録媒体101、及び補助記憶装置102は、それぞれ、「記録媒体」の一例である。また、メモリ装置103は、「メモリ」の一例である。
【符号の説明】
【0079】
10 画像処理装置
11 記憶部
111 3次元データ
12 受付部
13 制御部
14 生成部
15 表示制御部