(57)【要約】【課題】レイヤーを重ね合わせた画像を効果的に生成する技術を提供する。【解決手段】画像データに関連付けられたオブジェクトを、オブジェクトをノードとするツリー構造として互いに関連付けると共に、各親ノードの子ノード群に対して順序値を割り付け、着目するオブジェクトのノードからルートノードまで遡る部分木におけるツリー構造の深さ及び各ノードに割り付けられた順序値に基づいて着目するオブジェクトの画像データをレイヤーに振り分け、レイヤーを重ね合わせることによって画像を生成する。【選択図】図２
2015022612.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
画像データに関連付けられたオブジェクトを、オブジェクトをノードとするツリー構造として互いに関連付けると共に、各親ノードの子ノード群に対して順序値を割り付けたオブジェクトデータベースを記憶する記憶部を備え、
前記オブジェクトデータベースを参照して、着目するオブジェクトのノードからルートノードまで遡る部分木における前記ツリー構造の深さ及び各ノードに割り付けられた順序値に基づいて着目するオブジェクトの画像データをレイヤーに振り分け、レイヤーを重ね合わせることによって画像を生成することを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
2015022612.tif 000007
ただし、ｉはノードの深さ、Ｘｉは深さｉのノードの順序値、Ａ及びＢは定数、ｋは着目するオブジェクトのノードの深さ、
で表されるレイヤー値Ｌが所定の範囲内にあるオブジェクトの画像データを同一のレイヤーに振り分けることを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記定数Ｂは、前記順序値の最大値より大きな値とすることを特徴とする画像処理装置。
【請求項４】
請求項２又は３に記載の画像処理装置であって、
前記定数Ａは、
2015022612.tif 000008
ただし、Ｌｍａｘは処理対象となる最大のレイヤー数、（ΣＸｉ・Ｂ−ｉ）ｍａｘはΣＸｉ・Ｂ−ｉの最大値、
の関係を満たすことを特徴とする画像処理装置。
【請求項５】
請求項１〜４のいずれか１項に記載の画像処理装置であって、
前記順序値は、動的に変更されることを特徴とする画像処理装置。
【請求項６】
請求項１〜５のいずれか１項に記載の画像処理装置であって、
オブジェクトの属性値を前記ツリー構造の親ノードに割り当て、各親ノードの子ノード群は、共通の属性値を有するオブジェクト群からなることを特徴とする画像処理装置。
【請求項７】
請求項６に記載の画像処理装置であって、
前記属性値は、背景、キャラクタ、ＨＵＤを含むことを特徴とする画像処理装置。
【請求項８】
画像処理プログラムであって、
画像データに関連付けられたオブジェクトを、オブジェクトをノードとするツリー構造として互いに関連付けると共に、各親ノードの子ノード群に対して順序値を割り付けたオブジェクトデータベースを記憶する記憶部を備えるコンピュータを、
前記オブジェクトデータベースを参照して、着目するオブジェクトのノードからルートノードまで遡る部分木における前記ツリー構造の深さ及び各ノードに割り付けられた順序値に基づいて着目するオブジェクトの画像データをレイヤーに振り分け、レイヤーを重ね合わせることによって画像を生成する手段として機能させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のレイヤーを重ねて画像表示するための画像処理装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
コンピュータ、スマートフォン、タブレット等に設けられたディスプレイ上に画像を表示させる際に、複数のレイヤーを重ね合わせて１つの画像を構成して表示させる方法が知られている。すなわち、各レイヤーは透明フィルムのような画像領域であり、各レイヤーにおいて不透明なオブジェクトの画像領域以外の透明な画像領域では重ね合わされた下のレイヤーが透けて見えるように画像合成される。また、各レイヤーは他のレイヤーに対して相対位置を変えて重ね合わせることができ、各レイヤーをスライドさせるように動かすことによって各レイヤーに描画されたオブジェクトの画像を希望の位置に配置することができる。また、レイヤーの不透明度を変更して描画されたオブジェクトの画像を部分的に透明にすることもできる。
【０００３】
例えば、電子ゲームでは、背景画像が描画されたレイヤー、ゲームに登場するキャラクタの画像が描画されたキャラクタレイヤー、味方や敵のキャラクタの状態等を示す画像が描画されたＨＵＤレイヤー等を重ね合わせて１つの画像を構成してディスプレイ上に表示させる。
【０００４】
また、複数のレイヤーの画像を重ね合わせた合成画像において画像の入れ替えや変更により効果的な画像表示を行うために、レイアウト情報とレイヤー構造情報をレイヤー毎に設定する技術が開示されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００８−９３３９１公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
これまでのレイヤーによる画像処理方法では、複数のレイヤーが存在することが前提とされており、画像中に描写されるオブジェクトは予め各レイヤーに割り当てられている。
【０００７】
しかしながら、画像中に含まれるオブジェクトは複数であり、それらオブジェクトの集合をレイヤーへ適切に割り当て、効率よく画像を描画する技術が望まれている。
【課題を解決するための手段】
【０００８】
本発明の１つの態様は、画像処理装置であって、画像データに関連付けられたオブジェクトを、オブジェクトをノードとするツリー構造として互いに関連付けると共に、各親ノードの子ノード群に対して順序値を割り付けたオブジェクトデータベースを記憶する記憶部を備え、前記オブジェクトデータベースを参照して、着目するオブジェクトのノードからルートノードまで遡る部分木における前記ツリー構造の深さ及び各ノードに割り付けられた順序値に基づいて着目するオブジェクトの画像データをレイヤーに振り分け、レイヤーを重ね合わせることによって画像を生成することを特徴とする。
【０００９】
ここで、
【数１】
2015022612.tif 000003
ただし、ｉはノードの深さ、Ｘｉは深さｉのノードの順序値、Ａ及びＢは定数、ｋは着目するオブジェクトのノードの深さ、で表されるレイヤー値Ｌが所定の範囲内にあるオブジェクトの画像データを同一のレイヤーに振り分けることが好適である。
【００１０】
また、前記定数Ｂは、前記順序値の最大値より大きな値とすることが好適である。
【００１１】
また、前記定数Ａは、
【数２】
2015022612.tif 000004
ただし、Ｌｍａｘは処理対象となる最大のレイヤー数、（ΣＸｉ・Ｂ−ｉ）ｍａｘはΣＸｉ・Ｂ−ｉの最大値、の関係を満たすことが好適である。
【００１２】
また、前記順序値は、動的に変更されることが好適である。
【００１３】
また、オブジェクトの属性値を前記ツリー構造の親ノードに割り当て、各親ノードの子ノード群は、共通の属性値を有するオブジェクト群からなることが好適である。例えば、前記属性値は、背景、キャラクタ、ＨＵＤを含むことが好適である。
【００１４】
また、本発明の別の態様は、画像処理プログラムであって、画像データに関連付けられたオブジェクトを、オブジェクトをノードとするツリー構造として互いに関連付けると共に、各親ノードの子ノード群に対して順序値を割り付けたオブジェクトデータベースを記憶する記憶部を備えるコンピュータを、前記オブジェクトデータベースを参照して、着目するオブジェクトのノードからルートノードまで遡る部分木における前記ツリー構造の深さ及び各ノードに割り付けられた順序値に基づいて着目するオブジェクトの画像データをレイヤーに振り分け、レイヤーを重ね合わせることによって画像を生成する手段として機能させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、複数のオブジェクトをレイヤーに適切に割り当て、各オブジェクトの画像が描写されたレイヤーを重ね合わせた画像を効果的に生成することを可能とする。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態における画像処理装置の構成を示す図である。
【図２】本発明の実施の形態における画像の構成を示す図である。
【図３】本発明の実施の形態におけるオブジェクトデータベースのツリー構造を説明する図である。
【図４】本発明の実施の形態におけるレイヤー値Ｌの算出方法を説明する図である。
【発明を実施するための形態】
【００１７】
本発明の実施の形態における画像処理装置１００は、図１に示すように、処理部１０、記憶部１２、入力部１４及び出力部１６を含んで構成される。すなわち、画像処理装置１００は、コンピュータの基本構成を備えており、一般的なＰＣ、スマートフォン、タブレット、携帯電話機等とすることができる。
【００１８】
画像処理装置１００は、インターネット等のネットワーク１０４を介してサーバ１０２に接続され、サーバ１０２から情報を受けて処理を行う。例えば、画像処理装置１００は、サーバ１０２から電子ゲームのプログラム（ロジック）を受信し、プログラム（ロジック）に応じてゲームの処理を行う。
【００１９】
処理部１０は、ＣＰＵ等の演算処理を行う手段を含む。処理部１０は、記憶部１２に記憶されている画像処理プログラムを実行することによって、本実施の形態における画像処理を実現する。記憶部１２は、半導体メモリ、ハードディスク等の記憶装手段を含む。記憶部１２は、処理部１０とアクセス可能に接続され、画像処理プログラム、画像処理に供される各オブジェクトの画像データ、オブジェクトを管理するオブジェクトデータベース等を記憶する。入力部１４は、画像処理装置１００に情報を入力する手段を含む。入力部１４は、例えば、ユーザからの入力を受けるタッチパネルやキーボードを備える。また、入力部１４は、画像処理装置１００の外部から情報を受け取るネットワークインターフェース等を含み、画像処理プログラム、画像処理に供される各オブジェクトの画像データを受信する。出力部１６は、画像処理装置１００で処理された情報を出力する手段を含む。出力部１６は、例えば、ユーザに対して画像を呈示するディスプレイを備える。また、画像処理装置１００の外部へ情報を送信するネットワークインターフェース等を含み、サーバ１０２等に情報を送信する。
【００２０】
本実施の形態では、画像処理装置１００によって、電子ゲームでの画像処理を行う例について説明する。ただし、これに限定されるものではなく、複数のレイヤーを重ね合わせて表示する画像処理方法であれば適用することができる。
【００２１】
図２は、画像処理装置１００における画像２２の構成例を示す図である。画像処理装置１００において出力部１６に表示される画像２２は、複数のレイヤー２０（２０ａ，２０ｂ，２０ｃ・・・）を重ね合わせて合成した合成画像である。
【００２２】
各レイヤー２０には、単数又は複数のオブジェクトが割り当てられる。オブジェクトは、表示対象となる画像の属性を示す概念である。電子ゲームを例にとると、オブジェクトは、例えば、背景、キャラクタ、ＨＵＤ等の属性値を有する。さらに、背景の属性値が付されたオブジェクトは、山、樹木、道、家等の背景として共通の属性を有するオブジェクト群として表わされる。また、キャラクタの属性値が付されたオブジェクトは、味方キャラクタ、敵キャラクタ等のゲームに登場するキャラクタとして共通の属性を有するオブジェクト群として表わされる。また、ＨＵＤの属性が付されたオブジェクトは、ヒットポイント表示部、マジックポイント表示部等のＨＵＤとして共通の属性を有するオブジェクト群として表わされる。
【００２３】
各レイヤー２０は、それぞれ１つの画像であり、レイヤー２０毎に割り当てられたオブジェクトの画像データが描写される。
【００２４】
各レイヤー２０には、レイヤー２０を重ね合わせる際の優先度が設定される。複数のレイヤー２０を重ね合わせて合成画像を構成する際に、優先度が高いレイヤー２０を低いレイヤー２０より上に重ね合わせる。すなわち、重ね合わせた複数のレイヤー２０に描画されたオブジェクトの画像同士が重なった場合、より優先度の高いレイヤー２０の画像を優先して合成画像が構成される。また、各レイヤー２０においてオブジェクトの画像データが描写されていない領域は透明領域とされる。これにより、重ね合わせた複数のレイヤー２０に描画された画像同士が重ならなかった場合、下のレイヤー２０に描画されている画像が上のレイヤー２０を透過して見えるように合成画像が構成される。
【００２５】
例えば、図２に示すように、レイヤー３（２０ａ）、レイヤー１（２０ｂ）、レイヤー０（２０ｃ）の順に優先度が高いとすると、これらを重ね合わせると合成画像２２となる。すなわち、レイヤー３に描画された画像の領域にレイヤー０，１に描画された画像が重なったときには、レイヤー３に描画された画像が優先的に表示されるように合成される。また、レイヤー１に描画された画像の領域にレイヤー０に描画された画像が重なったときには、レイヤー１に描画された画像が優先的に表示されるように合成される。
【００２６】
本実施の形態では、表示対象となるオブジェクトをツリー構造のオブジェクトデータベースにより管理する。
【００２７】
図３は、オブジェクトデータベースのツリー構造の例を示す。ツリー構造は、ノードｎｍ（節点、頂点ともいう）と、各ノードｎｍ間を結ぶエッジ（枝、辺ともいう）で表される構造である。ここで、ｍはツリー構造に含まれれるノードの通し番号である。
【００２８】
各ノードｎｍは、子ノードを持つ場合がある。子ノードはツリー構造内では親ノードの下方に位置する。同一の親ノードを保つ子ノードを兄弟ノードという。このとき、最も上位に位置するルートノードから着目するノードまでのエッジ数をそのノードの「深さｉ」（ｉは、０以上の整数）という。また、各親ノードに属する子ノード群には順序値Ｘが付けられている。
【００２９】
オブジェクトデータベースのツリー構造では、１つのノードに１つのオブジェクトが割り当てられている。図３の例では、オブジェクト「背景」、「キャラクタ」、「ＨＵＤ」がそれぞれノードｎ１，ｎ２，ｎ３に割り当てられている。また、オブジェクト「背景」のノードｎ１を親ノードとして、ノードｎ１に属するオブジェクト「山」、「樹木」がそれぞれノードｎ４，ｎ５に割り当てられている。また、オブジェクト「キャラクタ」のノードｎ２を親ノードとして、ノードｎ２に属するオブジェクト「敵キャラクタ」、「味方キャラクタ」がそれぞれノードｎ６，ｎ７に割り当てられている。また、オブジェクト「味方キャラクタ」のノードｎ７を親ノードとして、ノードｎ７に属するオブジェクト「武器１」、「装備１」がそれぞれノードｎ８，ｎ９に割り当てられている。同様に、さらに多くのノードにオブジェクトを割り当ててもよい。オブジェクトをツリー構造で管理することによって、親ノード及びその下位ノード（子ノードや孫ノード）を優先度に応じて動的に移動させることが容易になる。
【００３０】
また、ゲームプログラムに従って各ノードには順序値が割り当てられる。順序値は、共通の親ノードを有する子ノード間において画像表示に対する相対的な優先度を示す値である。順序値は、必ずしも連番でなくてもよい。また、各ノードに付される順序値は、適宜変更してもよい。すなわち、順序値は共通の親ノードを有する子ノード間において画像表示に対する相対的な優先度を示す値であるので、ゲームプログラムに従って表示の優先度に変更があった場合には動的に順序値を変更してもよい。
【００３１】
図３の例では、ルートノードのすぐ下のノードｎ１，ｎ２，ｎ３は、深さ１であり、それぞれに順序値０，１，２（図中、各ノードの右側に記載した数値）が割り当てられている。すなわち、ノードｎ１，ｎ２，ｎ３間においては画像表示に対する相対的な優先度はノードｎ３＞ｎ２＞ｎ１の順に高い。また、ノードｎ１の下のノードｎ４，ｎ５は、深さ２であり、それぞれに順序値０，１が割り当てられている。すなわち、ノードｎ４，ｎ５間においては画像表示に対する相対的な優先度はノードｎ５＞ｎ４の順に高い。また、ノードｎ２の下のノードｎ６，ｎ７は、深さ２であり、それぞれに順序値０，１が割り当てられている。すなわち、ノードｎ６，ｎ７間においては画像表示に対する相対的な優先度はノードｎ７＞ｎ６の順に高い。また、ノードｎ７の下のノードｎ８，ｎ９は、深さ３であり、それぞれに順序値０，１が割り当てられている。すなわち、ノードｎ８，ｎ９間においては画像表示に対する相対的な優先度はノードｎ９＞ｎ８の順に高い。
【００３２】
本実施の形態では、オブジェクトデータベースのツリー構造を参照して、着目するオブジェクトのノードからルートノードまで遡る部分木におけるツリー構造の深さｋ及び各ノードに割り付けられた順序値Ｘに基づいて着目するオブジェクトの画像データをレイヤーに振り分ける。
【００３３】
具体的には、数式（１）で表されるレイヤー値Ｌが所定の範囲内にあるオブジェクトを同一のレイヤーに振り分ける。
【数３】
2015022612.tif 000005
ただし、ｉはノードの深さ、Ｘｉは深さｉのノードの順序値、Ａ及びＢは定数、ｋは着目するオブジェクトのノードの深さである。
【００３４】
すなわち、オブジェクトデータベースのツリー構造のルートノードｎ０から着目するオブジェクトが割り当てられたノードｎｍに向かう部分木の経路上にあるすべてのノードの順序値ＸｉにＢ−ｉを乗算した値の和を算出し、その和に定数Ａを乗算したレイヤー値Ｌを算出する。そして、算出されたレイヤー値Ｌに応じて、着目したオブジェクトが割り当てられるレイヤーを決定する。
【００３５】
図３の例において、定数Ａを１５とし、定数Ｂを１０としたときに、オブジェクト「味方キャラクタ」が割り当てられたノードｎ７のレイヤー値Ｌを算出する例を示す。図４に示すように、ルートノードｎ０から着目するノードｎ７に向かう部分木の経路には「キャラクタ」が割り当てられたノードｎ２と「味方キャラクタ」が割り当てられたノードｎ７が存在する。したがって、ノードｎ２について順序値１と１０−１との積、ノードｎ７について順序値１と１０−２との積、の和は０．１１となり、これに定数１５を乗算してレイヤー値Ｌ＝１．６５が算出される。同様に、他のノードについてもレイヤー値Ｌを算出することができ、ノードｎ１のレイヤー値は０、ノードｎ２のレイヤー値は１．５、ノードｎ３のレイヤー値は３、ノードｎ４のレイヤー値は０、ノードｎ５のレイヤー値は０．１５、ノードｎ６のレイヤー値は１．５、ノードｎ８のレイヤー値は１．６５、及びノードｎ９のレイヤー値は１．６６５となる。
【００３６】
このように算出されたレイヤー値に基づいて、各ノードｎｍに割り当てられたオブジェクトを各レイヤーに振り分けることができる。例えば、算出されたレイヤー値の整数部分に応じてレイヤーに振り分ける。具体的には、レイヤー値が０以上１未満のときにレイヤー０、１以上２未満のときにレイヤー１、２以上３未満のときにレイヤー２、３以上のときにレイヤー３に振り分けることができる。これにより、ノードｎ１，ｎ４，ｎ５はレイヤー０、ノードｎ２，ｎ６，ｎ７，ｎ８，ｎ９はレイヤー１、ノードｎ３はレイヤー３に割り当てられる。すなわち、各オブジェクトのレイヤー値の小数点以下を切り上げて整数値とし、その値をレイヤー数とするレイヤーに各オブジェクトを割り当てる。
【００３７】
ただし、レイヤー値に応じたオブジェクトのレイヤーの振り分け方法はこれに限定されるものではなく、レイヤー値Ｌが所定の範囲内にあるオブジェクトを同一のレイヤーに振り分けるものであればよい。
【００３８】
各オブジェクトの画像を描写する際には、オブジェクトが割り当てられたノードに対応するレイヤーに描写を行う。図３のオブジェクトデータベースの例では、ノードｎ４のオブジェクト「山」に対する描画処理が指示された場合、ノードｎ４が割り当てられたレイヤー０にオブジェクト「山」の画像を描写する。同様に、ノードｎ５のオブジェクト「樹木」はレイヤー０に描画される。また、ノードｎ６のオブジェクト「敵キャラクタ」、ノードｎ７のオブジェクト「味方キャラクタ」、ノードｎ８のオブジェクト「武器１」、ノードｎ９のオブジェクト「装備１」はレイヤー１に描画される。また、ノードｎ３のオブジェクト「ＨＵＤ」はレイヤー３に描画される。描画対象となるノードが属するレイヤーが存在しない場合には、新しいレイヤーを挿入し、そこに該当ノードのオブジェクトの画像を描画する。また、各オブジェクトの順序値が変化したり新たにオブジェクトが追加又は削除された場合には、各オブジェクトのレイヤー値が再計算され、それによって、オブジェクトが属するレイヤーが変化し得る。
【００３９】
このように各レイヤーに割り当てられたオブジェクトの画像を描写した後、優先順位に応じてレイヤーを合成することによって出力部１６に表示させる画像を構成することができる。
【００４０】
ここで、定数Ｂは、ノードに付される順序値の最大値より大きな値とすることが好適である。例えば、順序値の最大値が２であれば、定数Ｂを３以上に設定することが好適である。ただし、オブジェクトの将来的な増加を見込んで、将来的な順序値の最大値より大きな値等に設定することがより好適である。例えば、現在の順序値の最大値が５０であるが、将来的には順序値の最大値が９９であると見込まれる場合には定数Ｂを１００等に設定することが好適である。
【００４１】
また、定数Ａは、数式（２）を満たす値に設定することが好適である。
【数４】
2015022612.tif 000006
ただし、Ｌｍａｘは処理対象となる最大のレイヤー数、（ΣＸｉ・Ｂ−ｉ）ｍａｘはΣＸｉ・Ｂ−ｉの最大値である。
【００４２】
例えば、表示画像を構成するレイヤー数の最大値Ｌｍａｘが３であり、ΣＸｉ・Ｂ−ｉの最大値が０．２であれば、定数Ａは１５以下とすることが好適である。このように定数Ａを設定することにより、数式（１）によって算出されるレイヤー値Ｌをレイヤー数の最大値Ｌｍａｘ以下とすることができ、すべてのオブジェクトを間違いなく何れかのレイヤーに割り当てることができる。
【００４３】
本実施の形態における画像処理装置１００によれば、オブジェクトの画像の更新が必要でないレイヤーについては画像の再描画を必要とせず、キャッシュされたレイヤーを再利用ができるので処理の負担を軽減することができる。また、オブジェクトの画像の更新が必要な場合、更新対象となるオブジェクトが割り当てられたノードのレイヤー値を算出することによって、当該オブジェクトが割り当てられたレイヤーを容易に知ることができる。したがって、オブジェクトの管理が容易となり、特に多くのオブジェクトを使用する電子ゲーム等において画像処理の負担を軽減することができる。
【符号の説明】
【００４４】
１０  処理部、１２  記憶部、１４  入力部、１６  出力部、２０  レイヤー、２２  画像、１００  画像処理装置、１０２  サーバ、１０４  ネットワーク。
【図１】
2015022612.tif 000009
【図２】
2015022612.tif 000010
【図３】
2015022612.tif 000011
【図４】
2015022612.tif 000012