(57)【特許請求の範囲】
【請求項１】
画像表示の対象となるオブジェクトが複数のレイヤーのいずれかに割り当てられ、複数のレイヤーを重ね合わせて１フレームの画像の描画処理を行う画像処理装置であって、
レイヤー毎にオブジェクトの描画命令のリストを含むオブジェクトデータベースを参照して、前記リストに含まれる描画命令数に応じて、１フレームの画像描画におけるレイヤーの各々に対するオブジェクトの描画処理数を動的に変更することを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
レイヤーに優先度が設定されており、前記優先度が低いレイヤーより前記優先度が高いレイヤーに対してオブジェクトの描画処理を優先的に行うことを特徴とする画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置であって、
１フレームの画像描画において実行可能な描画命令数を複数のレイヤーに対して振り分け、振り分けられた描画命令数に応じて複数のレイヤーに割り当てられたオブジェクトの描画処理を行うことを特徴とする画像処理装置。
【請求項４】
請求項１〜３のいずれか１項に記載の画像処理装置であって、
描画処理対象となるレイヤーに対してオブジェクトデータベースのリストに登録されている描画命令の数を、１フレームの描画処理において残されている実行可能な描画命令の数で除算して数値Ａを算出し、１フレームの描画処理において実行可能な描画命令の数を数値Ａで除算して数値Ｂを算出し、前記描画処理対象となるレイヤーに対して描画命令を数値Ｂだけ実行することを特徴とする画像処理装置。
【請求項５】
請求項１〜４のいずれか１項に記載の画像処理装置であって、
前記オブジェクトデータベースのリストに既に登録されている描画命令の対象であるオブジェクトに対して追加の描画命令が出された場合、前記既に登録されている描画命令と前記追加の描画命令とを足し合わせた描画命令に書き替えることを特徴とする画像処理装置。
【請求項６】
請求項１〜５のいずれか１項に記載の画像処理装置であって、
１フレームの画像描画において実行可能な描画命令数を実測し、その実測値に応じて１フレームの画像描画において実行可能な描画命令数を複数のレイヤーに対して振り分けることを特徴とする画像処理装置。
【請求項７】
画像表示の対象となるオブジェクトが複数のレイヤーのいずれかに割り当てられ、複数のレイヤーを重ね合わせて１フレームの画像の描画処理を行うための画像処理プログラムであって、
レイヤー毎にオブジェクトの描画命令のリストを含むオブジェクトデータベースを記憶する記憶部を備えるコンピュータを、
前記オブジェクトデータベースを参照して、前記リストに含まれる描画命令数に応じて、１フレームの画像描画におけるレイヤーの各々に対するオブジェクトの描画処理数を動的に変更する手段として機能させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のレイヤーを重ねて画像表示する画像処理装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
コンピュータ、スマートフォン、タブレット等に設けられたディスプレイ上に画像を表示させる際に、複数のレイヤーを重ね合わせて１つの画像を構成して表示させる方法が知られている。すなわち、各レイヤーは透明フィルムのような画像領域であり、各レイヤーにおいて不透明なオブジェクトの画像領域以外の透明な画像領域では重ね合わされた下のレイヤーが透けて見えるように画像合成される。また、各レイヤーは他のレイヤーに対して相対位置を変えて重ね合わせることができ、各レイヤーをスライドさせるように動かすことによって各レイヤーに描画されたオブジェクトの画像を希望の位置に配置することができる。また、レイヤーの不透明度を変更して描画されたオブジェクトの画像を部分的に透明にすることもできる。
【０００３】
例えば、電子ゲームでは、背景画像が描画されたレイヤー、ゲームに登場するキャラクタの画像が描画されたキャラクタレイヤー、味方や敵のキャラクタの状態等を示す画像が描画されたＨＵＤレイヤー等を重ね合わせて１つの画像を構成してディスプレイ上に表示させる。
【０００４】
このような画像のレンダリングを行う際に、ＣＰＵへの負担を軽減するために、操作入力のタイミングの指標となる第１領域をその他の第２領域よりも高いフレームレートでレンダリングする技術が開示されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４９４８２１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、高いフレームレートでレンダリングを行う領域が固定されていると適用される場合が限定的である。
【０００７】
また、レイヤー毎にオブジェクトを描画するためのＡＰＩを呼び出して処理を行う場合、コンピュータの性能等によって単位時間当たりに処理可能なＡＰＩのコール数が限定されていると、各レイヤーについて均等にＡＰＩをコールするとフレームがスムーズに表示されなくなるおそれがある。
【０００８】
そこで、様々な場面に適用可能であり、限られたＡＰＩのコール数での処理においてスムーズな映像表示を行うことを可能とする技術が望まれている。
【課題を解決するための手段】
【０００９】
本発明の１つの態様は、画像表示の対象となるオブジェクトが複数のレイヤーのいずれかに割り当てられ、複数のレイヤーを重ね合わせて１フレームの画像の描画処理を行う画像処理装置であって、レイヤー毎にオブジェクトの描画命令のリストを含むオブジェクトデータベースを参照して、前記リストに含まれる描画命令数に応じて、１フレームの画像描画におけるレイヤーの各々に対するオブジェクトの描画処理数を動的に変更することを特徴とする画像処理装置である。
【００１０】
また、本発明の別の態様は、画像表示の対象となるオブジェクトが複数のレイヤーのいずれかに割り当てられ、複数のレイヤーを重ね合わせて１フレームの画像の描画処理を行うための画像処理プログラムであって、レイヤー毎にオブジェクトの描画命令のリストを含むオブジェクトデータベースを記憶する記憶部を備えるコンピュータを、前記オブジェクトデータベースを参照して、前記リストに含まれる描画命令数に応じて、１フレームの画像描画におけるレイヤーの各々に対するオブジェクトの描画処理数を動的に変更する手段として機能させることを特徴とする画像処理プログラムである。
【００１１】
ここで、レイヤーに優先度が設定されており、前記優先度が低いレイヤーより前記優先度が高いレイヤーに対してオブジェクトの描画処理を優先的に行うことが好適である。
【００１２】
また、１フレームの画像描画において実行可能な描画命令数を複数のレイヤーに対して振り分け、振り分けられた描画命令数に応じて複数のレイヤーに割り当てられたオブジェクトの描画処理を行うことが好適である。
【００１３】
また、描画処理対象となるレイヤーに対してオブジェクトデータベースのリストに登録されている描画命令の数を、１フレームの描画処理において残されている実行可能な描画命令の数で除算して数値Ａを算出し、１フレームの描画処理において実行可能な描画命令の数を数値Ａで除算して数値Ｂを算出し、前記描画処理対象となるレイヤーに対して描画命令を数値Ｂだけ実行することが好適である。
【００１４】
また、前記オブジェクトデータベースのリストに既に登録されている描画命令の対象であるオブジェクトに対して追加の描画命令が出された場合、前記既に登録されている描画命令と前記追加の描画命令とを足し合わせた描画命令に書き替えることが好適である。
【００１５】
また、１フレームの画像描画において実行可能な描画命令数を実測し、その実測値に応じて１フレームの画像描画において実行可能な描画命令数を複数のレイヤーに対して振り分けることが好適である。
【発明の効果】
【００１６】
本発明によれば、複数のオブジェクトをレイヤーに割り当て、複数のレイヤーを重ね合わせて表示させる画像処理において、スムーズな画像表示を実現することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態における画像処理装置の構成を示す図である。
【図２】本発明の実施の形態における画像の構成を示す図である。
【図３】本発明の実施の形態におけるオブジェクトデータベースの登録例を示す図である。
【図４】本発明の実施の形態における画像処理のフローチャートである。
【図５】本発明の実施の形態におけるオブジェクトデータベースの登録例を示す図である。
【発明を実施するための形態】
【００１８】
本発明の実施の形態における画像処理装置１００は、図１に示すように、処理部１０、記憶部１２、入力部１４及び出力部１６を含んで構成される。すなわち、画像処理装置１００は、コンピュータの基本構成を備えており、一般的なＰＣ、スマートフォン、タブレット、携帯電話機等とすることができる。また、画像処理装置１００は、その機能の一部をインターネット等の通信手段１０４によって接続された外部サーバ１０２によって実現してもよい。
【００１９】
処理部１０は、ＣＰＵ等の演算処理を行う手段を含む。処理部１０は、記憶部１２に記憶されている画像処理プログラムを実行することによって、本実施の形態における画像処理を実現する。記憶部１２は、半導体メモリ、ハードディスク等の記憶装手段を含む。記憶部１２は、処理部１０とアクセス可能に接続され、画像処理プログラム、画像処理に供される各オブジェクトの画像データ、オブジェクトの描画命令のリストを含むオブジェクトデータベース等を記憶する。入力部１４は、画像処理装置１００に情報を入力する手段を含む。入力部１４は、例えば、ユーザからの入力を受けるタッチパネルやキーボードを備える。また、入力部１４は、画像処理装置１００の外部から情報を受け取るネットワークインターフェース等を含み、画像処理プログラム、画像処理に供される各オブジェクトの画像データを受信する。出力部１６は、画像処理装置１００で処理された情報を出力する手段を含む。出力部１６は、例えば、ユーザに対して画像を呈示するディスプレイを備える。また、画像処理装置１００の外部へ情報を送信するネットワークインターフェース等を含み、外部サーバ１０２等に情報を送信する。
【００２０】
本実施の形態では、画像処理装置１００によって、３つのレイヤーに割り当てられた複数のオブジェクトの描画（レンダリング）処理について説明する。ただし、レイヤーの数やオブジェクトの数はこれに限定されるものではない。
【００２１】
図２は、画像処理装置１００における画像２２の構成例を示す図である。画像処理装置１００において出力部１６に表示される画像２２は、複数のレイヤー２０（本実施の形態では３つのレイヤーＡ（２０ａ），レイヤーＢ（２０ｂ），レイヤーＣ（２０ｃ））を重ね合わせて合成した合成画像である。
【００２２】
各レイヤー２０には、単数又は複数のオブジェクトが割り当てられる。オブジェクトは、表示対象となる画像の属性を示す概念である。電子ゲームを例にとると、オブジェクトは、例えば、背景、キャラクタ、ＨＵＤ等の属性値を有する。さらに、ＨＵＤの属性が付されたオブジェクトは、ヒットポイント表示部、マジックポイント表示部等のＨＵＤとして１つのレイヤーＡ（２０ａ）に割り当てられる。また、キャラクタの属性値が付されたオブジェクトは、味方キャラクタ、敵キャラクタ等のゲームに登場するキャラクタとして１つのレイヤーＢ（２０ｂ）に割り当てられる。また、背景の属性値が付されたオブジェクトは、山、樹木、道、家等の背景として１つのレイヤーＣ（２０ｃ）に割り当てられる。
【００２３】
各レイヤー２０は、それぞれ１つの画像であり、レイヤー２０毎に割り当てられたオブジェクトの画像データが描写される。
【００２４】
例えば、図２の例では、レイヤーＡ（２０ａ）にはオブジェクトＡ１〜Ａ６が割り当てられ、オブジェクトＡ１〜Ａ６の画像がレイヤーＡ（２０ａ）に描画（レンダリング）されている。また、レイヤーＢ（２０ｂ）にはオブジェクトＢ１〜Ｂ３が割り当てられ、オブジェクトＢ１〜Ｂ３の画像がレイヤーＢ（２０ｂ）に描画（レンダリング）されている。また、レイヤーＣ（２０ｃ）にはオブジェクトＣ１〜Ｃ４が割り当てられ、オブジェクトＣ１〜Ｃ４の画像がレイヤーＣ（２０ｃ）に描画（レンダリング）されている。
【００２５】
なお、図２の例では、説明を分かり易くするために、各レイヤー２０に割り当てられるオブジェクトの数を少なくしているが、実際には各レイヤー２０にはより多くのオブジェクトが割り当てられる。
【００２６】
各レイヤー２０には、レイヤー２０を重ね合わせる際の優先度が設定される。複数のレイヤー２０を重ね合わせて合成画像を構成する際に、優先度が高いレイヤー２０を低いレイヤー２０より上に重ね合わせる。すなわち、重ね合わせた複数のレイヤー２０に描画されたオブジェクトの画像同士が重なった場合、より優先度の高いレイヤー２０の画像を優先して合成画像が構成される。また、各レイヤー２０においてオブジェクトの画像データが描写されていない領域は透明領域とされる。これにより、重ね合わせた複数のレイヤー２０に描画された画像同士が重ならなかった場合、下のレイヤー２０に描画されている画像が上のレイヤー２０を透過して見えるように合成画像が構成される。
【００２７】
図２の例では、レイヤーＡ（２０ａ）、レイヤーＢ（２０ｂ）、レイヤーＣ（２０ｃ）の順に優先度が高く設定されている。これらの３つのレイヤーＡ（２０ａ）、レイヤーＢ（２０ｂ）、レイヤーＣ（２０ｃ）を重ね合わせると合成画像２２となる。すなわち、レイヤーＡ（２０ａ）に描画された画像の領域にレイヤーＢ（２０ｂ），Ｃ（２０ｃ）に描画された画像が重なったときには、レイヤーＡ（２０ａ）に描画された画像が優先的に表示されるように合成される。また、レイヤーＢ（２０ｂ）に描画された画像の領域にレイヤーＣ（２０ｃ）に描画された画像が重なったときには、レイヤーＢ（２０ｂ）に描画された画像が優先的に表示されるように合成される。
【００２８】
図３は、記憶部１２に記憶されるオブジェクトデータベースの登録例を示す図である。オブジェクトデータベースは、画像を構成する複数のレイヤーの各々について登録される。レイヤー毎に、表示対象となるオブジェクトが割り当てられて登録される。例えば、図
２の例では、レイヤーＡ（２０ａ）には、オブジェクトＡ１〜Ａ５が割り当てられて登録されている。また、レイヤーＢ（２０ｂ）には、オブジェクトＢ１〜Ｂ３が割り当てられて登録され、レイヤーＣ（２０ｃ）には、オブジェクトＣ１〜Ｃ４が割り当てられて登録されている。
【００２９】
処理部１０は、電子ゲーム等のプログラムに含まれる画像処理プログラムを実行し、ゲームの進行等に伴って各レイヤーに割り当てられたオブジェクトの描画処理を行う。このとき、レイヤー毎に各オブジェクトを描画するための描画処理を指示するための描画命令、例えば描画処理を行うＡＰＩをコールする描画命令、がオブジェクトデータベースのリストに登録される。
【００３０】
図３の例では、レイヤーＡ（２０ａ）に対して、レイヤーＡに割り付けられているオブジェクトＡ１に含まれる数値を書き替える処理を行う描画命令が出されており、その描画命令がリストに登録されている。また、レイヤーＢ（２０ｂ）に対して、レイヤーＢに割り付けられているオブジェクトＢ１を右へ２ドット及び上へ３ドットほど移動させる処理を行う描画命令１が登録されている。レイヤーＢに対しては、描画命令２〜１０も同様に登録されている。さらに、レイヤーＣ（２０ｃ）に対して、レイヤーＣに割り付けられているオブジェクトＣ１を右へ３ドット及び上へ３ドットほど移動させる処理を行う描画命令１が登録されている。レイヤーＣに対しては、描画命令２〜１００も同様に登録されている。
【００３１】
ここで、１秒当たり６００の描画処理（ＡＰＩのコール）が可能なコンピュータによって１秒当たり６０フレームの描画を行う場合についての処理を説明する。この場合、１フレーム当たり１０の描画命令について処理を行うことが可能である。
【００３２】
ところで、図３の例では、オブジェクトデータベースには、レイヤーＡ（２０ａ）に対して１の描画命令、レイヤーＢ（２０ｂ）に対して１０の描画命令、レイヤーＣ（２０ｃ）に対して１００の描画命令が登録されており、その合計は１１１である。このように、総描画命令数が１フレーム当たりに処理可能な描画命令数（ここでは１０）を超える場合、１フレーム内にてすべての描画命令を処理することができない。
【００３３】
本実施の形態では、レイヤーの優先度に応じて各レイヤーでの描画処理量を異ならせ、スムーズな映像が表示されるように描画処理を行う。具体的には、図４に示すフローチャートに沿って処理を行う。
【００３４】
ステップＳ１０では、最も優先度の高いレイヤーに対して登録されている描画命令の処理を行う。図３のオブジェクトデータベースのリストの例では、最も優先度が高いレイヤーＡ（２０ａ）には１の描画命令が登録されているので、処理部１０はこの描画命令の描画処理を実行する。これにより、オブジェクトデータベースのレイヤーＡに関連付けて登録されている残りの描画命令数は０となる。
【００３５】
ステップＳ１２では、最も優先度の高いレイヤーよりも優先度が低いレイヤーに対して登録されている描画命令の処理を行う。まずは、最も優先度の高いレイヤーの次に優先度の高いレイヤー、すなわち２番目に優先度が高いレイヤーに対して処理する描画命令の数を決定する。
【００３６】
まず、処理対象となるレイヤーについてオブジェクトデータベースに登録されている描画命令数を現在処理中のフレームに対して残されている描画命令数で除算した数値Ａを算出する。図３のオブジェクトデータベースの場合、２番目に優先度が高いレイヤーＢ（２０ｂ）について１０の描画命令が登録されており、現在処理中のフレームに対しては９の描画命令が残されている。したがって、Ａ＝１０／９＝２（小数点以下は切り上げる）となる。そして、算出された数値Ａにより１フレーム当たり処理可能な描画命令数（ここでは１０）を除算した数値Ｂを当該レイヤーＢで処理する描画命令数とする。したがって、Ｂ＝１０／２＝５がレイヤーＢに対して処理する描画命令数となる。そこで、処理部１０は、レイヤーＢに対してオブジェクトデータベースのリストに登録されている描画命令のうちより優先順位の高い５つの描画命令を実行する。描画命令の優先順位は、例えば、オブジェクトデータベースのリストにより古くから登録されている描画命令をより優先順位が高い描画命令として決定すればよい。これにより、オブジェクトデータベースのレイヤーＡに関連付けて登録されている残りの描画命令数は５となる。
【００３７】
残りの処理可能な描画命令数は４となるので、その総てを最も優先度が低いレイヤーＣの処理に割り当てる。処理部１０は、レイヤーＣに対してオブジェクトデータベースのリストに登録されている描画命令のうちより優先順位の高い４つの描画命令を実行する。これにより、オブジェクトデータベースのレイヤーＣに関連付けて登録されている残りの描画命令数は９６となる。
【００３８】
なお、レイヤーＣよりも低い優先順位のレイヤーが存在する場合には、レイヤーＣについてもレイヤーＢと同様に処理を行う。すなわち、レイヤーＡ及びＢの描画処理によって、現在処理中のフレームに対して処理可能な残りの描画命令数は４であるので、数値Ａ＝１００／４＝２５及び数値Ｂ＝１０／２５＝１（小数点以下は切り上げ）となる。したがって、処理部１０は、レイヤーＣに対してオブジェクトデータベースのリストに登録されている描画命令のうちより優先順位の高い１つの描画命令を実行する。このような処理を最も優先度が低いレイヤーまで繰り返す。
【００３９】
ここまでの処理により、１秒間に６０回書き替えられるフレームのうち１回目のフレームの書き替えが完了する。そして、レイヤーＡに対する残りの描画命令数は０、レイヤーＢに対する残りの描画命令数は５、レイヤーＣに対する残りの描画命令数は９６となる。
【００４０】
次に、２回目以降のフレームの描画処理に入る。なお、１つのフレームの描画処理の途中や複数のフレームの描画処理の間に描画処理以外の処理を行ってもよい。ここでは、２回目以降のフレームの描画処理に入る前に、レイヤーＡに対して新たに１つの描画命令が加えられ、レイヤーＡに対する残りの描画命令数は１、レイヤーＢに対する残りの描画命令数は５、レイヤーＣに対する残りの描画命令数は９６となった場合について説明する。
【００４１】
ステップＳ１４では、前のフレームまでの画像の描画処理において各レイヤーに対して行った描画命令の平均値（移動平均）を用いて各レイヤーに対する描画処理を行う。２回目のフレームの描画では、１回目のフレームの描画処理における各レイヤーに対する描画処理数がそのまま適用される。すなわち、レイヤーＡに対しては１つの描画命令が実行され、レイヤーＢに対しては５つの描画命令が実行され、レイヤーＣに対しては４つの描画命令が実行される。ここまでの処理により、１秒間に６０回書き替えられるフレームのうち２回目のフレームの書き替えが完了する。そして、レイヤーＡに対する残りの描画命令数は０、レイヤーＢに対する残りの描画命令数は０、レイヤーＣに対する残りの描画命令数は９２となる。
【００４２】
次に、ステップＳ１４に処理は戻され、３回目以降のフレームの描画処理に入る。ここで、２回目以降のフレームの描画処理に入る前に、レイヤーＡに対して新たに１つの描画命令が加えられ、レイヤーＡに対する残りの描画命令数は１、レイヤーＢに対する残りの描画命令数は０、レイヤーＣに対する残りの描画命令数は９２となった場合について説明する。
【００４３】
３回目のフレームの描画では、１回目及び２回目のフレームの描画処理における各レイヤーに対する描画処理数の平均値が適用される。すなわち、レイヤーＡに対しては１つの描画命令が実行される。レイヤーＢに対しては５つの描画命令が適用される。しかしながら、オブジェクトデータベースにはレイヤーＢに対する描画命令が残っていないので、このような場合には次の優先度のレイヤーに回される。したがって、レイヤーＣに対しては９つの描画命令が実行される。ここまでの処理により、１秒間に６０回書き替えられるフレームのうち３回目のフレームの書き替えが完了する。そして、レイヤーＡに対する残りの描画命令数は０、レイヤーＢに対する残りの描画命令数は０、レイヤーＣに対する残りの描画命令数は８３となる。
【００４４】
なお、例えば、レイヤーＢに対して描画命令が３つ追加されていた場合には、レイヤーＢの３つの描画命令を実行した後、余った２つの描画命令を加えてレイヤーＣに対しては６つの描画命令を実行する。
【００４５】
４回目以降のフレームの描画においても同様にそれまでのフレームの描画処理における各レイヤーに対する描画処理数の平均値を適用して処理を行う。このとき、各レイヤーに対して描画命令が追加された場合には、優先度の高いレイヤーに対して過去の描画処理数の平均値だけ描画命令を実行し、実行できる描画命令の数が余った場合には次の優先度のレイヤーに割り当てる処理を行う。
【００４６】
本実施の形態によれば、複数のオブジェクトをレイヤーに割り当て、複数のレイヤーを重ね合わせて表示させる画像処理において、各レイヤーの描画の優先度に応じて各レイヤーの処理量に傾斜を持たせてオブジェクトの描画処理を行う。一方で、各フレームごとに、リストに描画命令がある全ての（あるいはできるだけ多くの）レイヤーについて、描画命令が実行される。これによって、単位時間当たりに処理可能なＡＰＩのコール数が限定されている場合であってもスムーズな映像を表示することができる。
【００４７】
これは、ユーザにみせたいオブジェクトがより多く含まれるレイヤーの優先度が高く設定されているという傾向を利用し、ユーザにとって表示される映像がスムーズに表示されているようにみせるものである。１フレームの描画処理において優先度が高いレイヤーに含まれるオブジェクトの描画数をより優先度の低いレイヤーに含まれるオブジェクトの描画数より多くすることによってユーザには映像がスムーズにみえるのである。
【００４８】
すなわち、優先度が高いレイヤーにはユーザからの注目度が高いオブジェクトが割り当てられており、このようなオブジェクトの描画を優先的に実行することによって、ユーザには映像がスムーズに表示されている印象を与えることができる。一方で、１フレームの描画処理において、優先度の高いレイヤーのみならず、優先度が低いレイヤーに割り当てられたオブジェクトも描画処理される。したがって、ユーザにはフレーム全体が常に少しずつ動いているような印象を与えることができるため、描画処理の遅れが目立ちにくい。このとき、優先度の低いレイヤーのオブジェクトは１回のフレームの描画処理ではすべて更新されないが、優先度の低いレイヤーは背景画像等のユーザにとって注目度の低いオブジェクトを含んでいるのですべてが一度に更新されなくても映像がスムーズに表示されているようにみえる。
【００４９】
これにより、処理能力が不十分なコンピュータ（携帯端末等）においても、オブジェクトの描画遅れが目立たず、全体として自然な動きをする映像として表示することができる。
【００５０】
＜変形例１＞
各レイヤーに対するオブジェクトの描画命令は、オブジェクトデータベースにリストとして管理されている。新しく描画命令が追加された場合、原則としてリストの最後にその描画命令が追加される。
【００５１】
本変形例では、オブジェクトデータベースのリストに既に登録されている描画命令の対象であるオブジェクトに対してさらに描画命令が出された場合には、そのオブジェクトに対する描画命令の内容を足し合わせる。
【００５２】
例えば、図５に示すように、レイヤーＢに割り当てられたオブジェクトＢ１に対して既に右へ３ドット及び上へ３ドットほど移動させる描画命令が登録されているときに、その描画命令が実行される前にさらにオブジェクトＢ１に追加の描画命令として右へ２ドット及び下へ１ドットほど移動させる描画命令が追加された場合、既に登録されている描画命令の内容を右へ５ドット及び上へ２ドットほど移動させる処理に書き替える。
【００５３】
このような描画処理を書き替える処理を行うことによって、オブジェクトデータベースのリストに登録される描画命令の数を減らすことができ、描画処理の遅延をさらに抑制することができる。
【００５４】
＜変形例２＞
上記実施の形態においては、１秒当たりに処理可能な描画処理数（ＡＰＩコール数）や１秒当たりに描画可能なフレーム数については予め設定するものとした。しかしながら、コンピュータの処理の負荷の変動等によって１秒当たりに処理可能な描画処理数（ＡＰＩコール数）や１秒当たりに描画可能なフレーム数を実測して、その実測値に合わせて処理を行ってもよい。
【００５５】
例えば、上記実施の形態では、１秒当たりに描画可能なフレーム数は１０としたが、実測値では８であった場合、前のフレームまでの画像の描画処理において各レイヤーに対して行った描画命令の平均値（移動平均）に１秒当たりに描画可能なフレーム数の基準値と変動値との比（８／１０）を乗算した値を各レイヤーの描画命令の実行数として適用すればよい。レイヤーＢに対して行った描画命令の平均値（移動平均）が５であった場合、５×８／１０＝４となるのでレイヤーＢに対しては４つの描画命令を実行すればよい。
【００５６】
また、１秒当たりに処理可能な描画処理数（ＡＰＩコール数）が変動した場合、それに基づいて１秒当たりに描画可能なフレーム数も変動するので、変動した１秒当たりに描画可能なフレーム数に応じて同様に処理を行えばよい。
【００５７】
このように、１秒当たりに描画可能なフレーム数の変動に応じて各レイヤーに対する描画命令の実行数を補正して処理を行うことによって、描画処理能力の変動に応じた映像の表示を行うことができる。特に、１秒当たりに描画可能なフレーム数の基準値と変動値との比（８／１０）によって補正を行うことによって、レイヤーの優先度に応じて各レイヤーのオブジェクトの描画処理を適切に行うことができる。
【００５８】
なお、１秒当たりに処理可能な描画処理数（ＡＰＩコール数）や１秒当たりに描画可能なフレーム数は所定時間毎に測定してもよいし、所定数のフレームの描画処理が終了する毎に測定してもよい。また、１秒当たりに処理可能な描画処理数（ＡＰＩコール数）や１秒当たりに描画可能なフレーム数の初期値を設定するために、ゲームのスタート時において計測を行ってもよい。
【符号の説明】
【００５９】
１０  処理部、１２  記憶部、１４  入力部、１６  出力部、２０  レイヤー、２２  画像、１００  画像処理装置、１０２  外部サーバ、１０４  通信手段。
【要約】
【課題】レイヤーを重ね合わせた画像を効果的に描画する技術を提供する。
【解決手段】画像表示の対象となるオブジェクトを複数のレイヤーのいずれかに割り当て、複数のレイヤーを重ね合わせて１フレームの画像の描画処理を行う際に、レイヤー毎にオブジェクトの描画命令のリストを含むオブジェクトデータベースを参照して、リストに含まれる描画命令数に応じて、１フレームの画像描画におけるレイヤーの各々に対するオブジェクトの描画処理数を動的に変更する。
【選択図】図４【図１】
0005466786.tif 000002
【図２】
0005466786.tif 000003
【図３】
0005466786.tif 000004
【図４】
0005466786.tif 000005
【図５】
0005466786.tif 000006