(57)【特許請求の範囲】
【請求項１】
１または複数の静止物体と１または複数の移動物体とをそれらの前後関係を考慮して二次元平面に表示するための映像を、前記静止物体及び前記移動物体の既存の映像データを用いて生成する装置において、各移動物体の既存の映像データの前後２つのフレームの間において先のフレームの所定の座標に有って、後のフレームの該座標にない前記移動物体の画素と、後のフレームの所定の座標に有って先のフレームの該座標にない前記移動物体の画素とを区別して示す変化部分について、他の移動物体及び静止物体との前後関係を求め、求めた前後関係を参照して映像を生成するように構成したことを特徴とする映像生成装置。
【請求項２】
１または複数の静止物体と１または複数の移動物体とをそれらの前後関係を考慮して二次元平面に表示するための映像を、前記静止物体及び前記移動物体の既存の映像データを用いて生成する装置において、各移動物体の既存の映像データのフレーム間の差異データを入力し、該移動物体に割り当てた固有のビットを用いたビットマップに前記差異データを展開する第１バッファと、前記差異データに基づいて、ビットマップに対する前記移動物体固有のビットのセット，リセットを行う第２バッファと、該第２バッファにおける全ての移動物体についてのビットのセット，リセット結果に応じて１フレーム分の画素データをビットマップ展開する第３バッファとを備えることを特徴とする映像生成装置。
【請求項３】
前記１または複数の静止物体の中で最も前方に位置する静止物体を各画素毎に特定するデータを示すテーブルを有し、フレーム間で差異があった画素の位置における該テーブルの前後方向座標と当該移動物体の前後方向座標とを比較し、その比較結果に応じて前記第３バッファにビットマップ展開する画素データの種類を決定するように構成したことを特徴とする請求項２記載の映像生成装置。
【請求項４】
前記差異データは離れたフレーム間の差異を示すデータであり、この離れたフレーム間の差異データから隣合うフレーム間の差異データを補間生成する手段を備えることを特徴とする請求項２記載の映像生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、映像生成装置に関し、特に、静止物体と移動物体とをそれらの前後関係を考慮して二次元平面に表示するための映像を生成する装置に関するものである。
【０００２】
【従来の技術】
近年、マンマシンインターフェース、ヒューマンインターフェースというような人間と計算機との対話方法に対する要求があり、人工現実感（ＡＲ）、仮想現実感（ＶＲ）といった技術により人間の五感を利用した直観的な対話方法が開発されるようになってきた。また、パーソナルコンピュータ（ＰＣ）等の分野でもゲームに代表されるような高速映像生成，アニメーション機能に人間の操作で映像が変化するものが登場してきている。
【０００３】
そして、コンピュータシステムの高性能化に伴って、自立したオブジェクト群から構成される人工生物が考えられており、コンピュータ上でその人工生物が住む世界を実現する試みもなされている。このような人工生物の動作を映像表示するための映像生成装置が、本願出願人より出願されている（特願平６−３２８８４７号）。この映像生成装置は、人工生物が考えて行いたい行動パターンを命令として入力し、この命令に従って、多数の映像パターンから所望の映像を選択して連続映像を生成，表示することにより人工生物の行動を映像化し、実世界におけるような体験を可能とするものである。
【０００４】
【発明が解決しようとする課題】
このような映像生成装置にあっては、実際には３次元空間に存在する、人工生物などの移動物体、及び、木，山などの静止物体を、二次元画面に表示するので、これらの前後関係（画面の奥行き方向の関係）を考慮して、表示用の映像を生成しなければならないのは勿論である。そして、従来では以下のようにして、これらの各物体の重なりを示す映像を生成している。
【０００５】
静止物体である背景データを準備し、直前のフレームで描画した移動物体の領域（移動物体の全体を含む長方形状の領域）に準備した背景を描画する。例えば実写の映像データを入力し、すべての表示物体のＺ値（前後方向の位置を示す値であって大きいほど前方に位置している）を比較する。そして、移動物体を描画した後、移動物体よりもＺ値が大きい静止物体を描画する。
【０００６】
しかしながら、上述の従来の方式では、移動物体の全体を含む長方形状領域を単位として前後関係を考慮して次の新しいフレーム映像を生成している。よって、移動物体が移動することによって実際にフレーム間でデータが変化する画素は、その長方形状領域内の一部の画素であるにもかかわらず、長方形状領域内のすべての画素について物体の前後関係を考慮しなければならないので、前後関係を考慮する画素数が多くなり、処理速度が遅いと課題がある。
【０００７】
本発明は斯かる事情に鑑みてなされたものであり、フレーム間で変化があった画素についてのみ、その画素における各物体の前後関係を考慮して、フレーム映像を生成することにより、従来より高速な映像生成処理を行える映像生成装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本願の請求項１に係る映像生成装置は、１または複数の静止物体と１または複数の移動物体とをそれらの前後関係を考慮して二次元平面に表示するための映像を、前記静止物体及び前記移動物体の既存の映像データを用いて生成する装置において、各移動物体の既存の映像データの前後２つのフレームの間において先のフレームの所定の座標に有って、後のフレームの該座標にない前記移動物体の画素と、後のフレームの所定の座標に有って先のフレームの該座標にない前記移動物体の画素とを区別して示す変化部分について、他の移動物体及び静止物体との前後関係を求め、求めた前後関係を参照して映像を生成するように構成したことを特徴とする。
【０００９】
本願の請求項２に係る映像生成装置は、１または複数の静止物体と１または複数の移動物体とをそれらの前後関係を考慮して二次元平面に表示するための映像を、前記静止物体及び前記移動物体の既存の映像データを用いて生成する装置において、各移動物体の既存の映像データのフレーム間の差異データを入力し、該移動物体に割り当てた固有のビットを用いたビットマップに前記差異データを展開する第１バッファと、前記差異データに基づいて、ビットマップに対する前記移動物体固有のビットのセット，リセットを行う第２バッファと、該第２バッファにおける全ての移動物体についてのビットのセット，リセット結果に応じて１フレーム分の画素データをビットマップ展開する第３バッファとを備えることを特徴とする。
【００１０】
本願の請求項３に係る映像生成装置は、請求項２において、前記１または複数の静止物体の中で最も前方に位置する静止物体を各画素毎に特定するデータを示すテーブルを有し、フレーム間で差異があった画素の位置における該テーブルの前後方向座標と当該移動物体の前後方向座標とを比較し、その比較結果に応じて前記第３バッファにビットマップ展開する画素データの種類を決定するように構成したことを特徴とする。
【００１１】
本願の請求項４に係る映像生成装置は、請求項２において、前記差異データは離れたフレーム間の差異を示すデータであり、この離れたフレーム間の差異データから隣合うフレーム間の差異データを補間生成する手段を備えることを特徴とする。
【００１２】
図１は、本発明の概念を示す模式図である。ディスクまたはメモリから、隣合うフレーム間または離れたフレーム間の移動物体（移動オブジェクト）の差異を示す差異データがオブジェクトバッファに入力される。ディスクにはその変化パターンが定型でない人工生物（キャラクタ）などの移動オブジェクトの映像データが格納されている。一方、メモリには、例えば常に一定のパターンで羽ばたいている虫のようにその変化パターンが定型である移動オブジェクトの映像データが格納されている。
【００１３】
オブジェクトバッファは、それぞれの移動オブジェクト毎に１つずつ存在し、各オブジェクトバッファには、対応する移動オブジェクトを特定するオブジェクトＩＤとその移動オブジェクトのＺ値が記載されている。そして、各オブジェクト毎に入力された差異データが対応する各オブジェクトバッファにビットマップで展開される。
【００１４】
図２は、フレーム間の変化の一例を示す図である。木などの静止物体（静止オブジェクト）Ａの後ろを鳥などの移動オブジェクトＢが移動した情景を表しており、実線は移動前の位置を、破線は移動後の位置を示している。移動オブジェクトＢの移動により、新たに移動オブジェクトＢを表示する画素（図２の領域ａ内の画素）と、移動オブジェクトＢを表示しなくなった画素（図２の領域ｂ内の画素）と、相変わらず移動オブジェクトＢを表示する画素（図２の領域ｃ内の画素）とに分かれる。この中で、新たに移動オブジェクトＢが現れた画素を“＋”画素、移動オブジェクトＢが消失した画素を“−”画素と定義する。よって、各オブジェクトバッファには、その移動オブジェクトにおけるどの画素が、“＋”画素，“−”画素であるかが、つまり“＋”画素，“−”画素の二次元画面における座標（Ｕ，Ｖ）が示されている。
【００１５】
フェイクがあったフレームである場合には、オブジェクトバッファに展開された差異データがスケーリングされて第１スケールバッファに転送される。このとき、第１スケールバッファに格納されている一つ前の差異データが第２スケールバッファに転送される。この結果、第１スケールバッファ，第２スケールバッファにはそれぞれ、現在の差異データ，一つ前の差異データが格納される。ここで言うフェイクとは、上述した特願平６−３２８８４７号でも説明しているように、一つの映像パターンをずらして（平行移動または拡大・縮小など）新しい映像パターンを生成することである。
【００１６】
フェイクがない場合には、差異データに基づいて変化リストが生成される。また、フェイクがある場合には、第１，第２スケールバッファの格納データを比較して、変化リストが生成される。各変化リストには、画素の位置を示す二次元座標（Ｕ，Ｖ）、どの移動オブジェクトに由来するかを示すオブジェクトＩＤ、“＋”画素か“−”画素かの区別を一組にした情報がそれぞれに入っている。
【００１７】
生成した変化リストに従って、重畳バッファにおいて、各移動オブジェクト毎に固有に割り当てたビットをセット，リセットする。“＋”画素である場合には、重畳バッファにおいて、その移動オブジェクトのビットをセットし、“−”画素である場合には、重畳バッファにおいて、その移動オブジェクトのビットをリセットする。
【００１８】
図３は、この重畳バッファにおけるビットのセット，リセットの一例を示す図である。前述した図２と同様に、木などの静止オブジェクトＡの後ろを鳥などの移動オブジェクトＢが移動した情景が示されている。各オブジェクトは４ビットで表現されており、木（静止オブジェクトＡ）にはビット“１”が割り当てられ、鳥（移動オブジェクトＢ）にはビット“２”が割り当てられている。このとき、各ビットの位置はＺの値により決まっているものではない。木と鳥とが重なる部分の画素は、ビット“３”となる。そして、新たに鳥が出現する画素にはビット“２”がセットされ、鳥が消失する画素ではビット“２”がリセットされてビット“０”となる。
【００１９】
静止ＩＤテーブルには、複数の静止オブジェクトの中で最も前方にある静止オブジェクトを特定するオブジェクトＩＤが各画素毎に示されている。各移動オブジェクトにおいて、“＋”画素または“−”画素であるものについて、その移動オブジェクトのＺ値と、該当する画素における静止ＩＤテーブルでの静止オブジェクトのＺ値との比較処理などが行われて、各画素において表示すべき映像データが決定される。決定された各画素毎の映像データがフレームバッファにビットマップ展開される。
【００２０】
次に、本発明の処理動作について、その手順を示す図４〜図７のフローチャートを参照して説明する。まず、ディスクまたはフレームから、ある移動オブジェクトαにおけるフレーム間の差異データを入力し（ステップＳ１）、その差異データを、オブジェクトＩＤ及びＺ値が付された対応するオブジェクトバッファに展開する（ステップＳ２）。フェイクがあったか否かを判断し（ステップＳ３）、フェイクがない場合には、その差異データに基づいて画素単位の変化リストを生成する（ステップＳ６）。フェイクがある場合には、オブジェクトバッファに展開されたデータをスケーリングして第１スケールバッファに転送し（ステップＳ４）、第１スケールバッファと第２スケールバッファとの内容を比較し（ステップＳ５）、その比較結果に基づいて画素単位の変化リストを生成する（ステップＳ６）。
【００２１】
次いで、各変化リスト毎に、以下のステップＳ７〜Ｓ２１の処理を行う。まず、その変化リストが“−”画素であるか否かを判断する（ステップＳ７）。“−”画素である場合には、重畳バッファにおいて該当画素におけるその移動オブジェクトαのビットをリセットする（ステップＳ８）。その移動オブジェクトαのＺ値と、該当画素における静止ＩＤテーブルでの静止オブジェクトβのＺ値とを比較して（ステップＳ９）、移動オブジェクトαのＺ値が静止オブジェクトβのＺ値より小さいか否かを判断する（ステップＳ１０）。
【００２２】
前者のＺ値が後者のＺ値より小さい場合には、その静止オブジェクトβのデータをフレームバッファに展開する（ステップＳ１１）。一方、前者のＺ値が後者のＺ値より小さくない場合には、重畳バッファにおいて該当画素におけるビットが他の移動オブジェクトのものであるか否かを判断する（ステップＳ１２）。他の移動オブジェクトのものでないときには、該当画素における静止ＩＤテーブルでの静止オブジェクトβのデータをフレームバッファに展開する（ステップＳ１１）。他の移動オブジェクトのものであるときには、この移動オブジェクトαの次にＺ値が大きい他の移動オブジェクトγを決定し、その移動オブジェクトγのデータをフレームバッファに展開する（ステップＳ１３）。
【００２３】
ステップＳ７において、その変化リストが“−”画素でない場合、つまり、その変化リストが“＋”画素である場合、重畳バッファにおける該当画素においてその移動オブジェクトαのビットをセットする（ステップＳ１４）。その移動オブジェクトαのＺ値と、該当画素における静止ＩＤテーブルでの静止オブジェクトδのＺ値とを比較して（ステップＳ１５）、移動オブジェクトαのＺ値が静止オブジェクトδのＺ値より小さいか否かを判断する（ステップＳ１６）。
【００２４】
前者のＺ値が後者のＺ値より小さい場合には、その静止オブジェクトδのデータをフレームバッファに展開する（ステップＳ１７）。一方、前者のＺ値が後者のＺ値より小さくない場合には、重畳バッファにおいて該当画素におけるビットが他の移動オブジェクトのものであるか否かを判断する（ステップＳ１８）。他の移動オブジェクトのものであるときには、最も手前にある、即ちＺ値が最も大きい移動オブジェクトεを決定し、その移動オブジェクトεのデータをフレームバッファに展開する（ステップＳ１９）。他の移動オブジェクトのものでないときには、その移動オブジェクトαのデータをフレームバッファに展開する（ステップＳ２０）。
【００２５】
なお、上述の説明において、静止オブジェクトβと静止オブジェクトδとは一致する場合もあるし、異なる場合もある。同様に、移動オブジェクトγと移動オブジェクトεとは一致するときもあるし、異なるときもある。
【００２６】
その移動オブジェクトαに関するすべての変化リストに対する処理が終了したか否かを判断する（ステップＳ２１）。終了していない場合には、ステップＳ７に戻って、移動オブジェクトαに関する別の変化リストについて、ステップＳ７〜Ｓ２１の一連のループを繰り返す。
【００２７】
すべての変化リストに対する処理が終了すると、再び、フェイクがあったか否かを判断する（ステップＳ２２）。フェイクがない場合にはそのままステップＳ２４に進む。一方、フェイクがあった場合には、第１スケールバッファに格納されているデータを第２スケールバッファに転送した後、ステップＳ２４に進む。以上にて移動オブジェクトαにおける処理は終了する。
【００２８】
ステップＳ２４において、すべての移動オブジェクトについて処理が終了したか否かを判断する。もし、処理が終了していない移動オブジェクトが存在すれば、ステップＳ１に戻って、その移動オブジェクトに対して、上述した移動オブジェクトαにおける処理と同様の処理（ステップＳ１〜Ｓ２４の一連のループ）を繰り返す。
【００２９】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。図８は本発明の映像生成装置の構成を示すブロック図である。
【００３０】
図８において、１，２は、移動オブジェクトの既存の映像データが格納されているディスク，メモリである。ディスク１には、変化パターンが定型でない鳥などのキャラクタの映像データが格納されており、メモリ２には、特定の動きを周期的に行う虫などのキャラクタの映像データが格納されている。ディスク１またはメモリ２から、隣合うフレーム間または離れたフレーム間の移動オブジェクトの差異を示す差異データがオブジェクトバッファ３に入力される。ここで、時間的変化が大きい生物（鳥，虫等）などの移動オブジェクトについては、隣合うフレーム間の差異データが入力され、時間的変化が比較的小さい雲，雷，水などの移動オブジェクトについては、離れたフレーム間の差異データが入力される。
【００３１】
オブジェクトバッファ３は、表示される各移動オブジェクト毎に１つずつ設けられており、オブジェクトＩＤとＺ値が記載されている。そして、各オブジェクトの差異データを対応する各オブジェクトバッファ３に展開する。
【００３２】
フェイクがない場合、隣合うフレーム間の差異データは変化リスト生成部９に出力され、離れたフレーム間の差異データは補間器７に出力される。補間器７は、離れたフレーム間の差異データを補間処理して隣合うフレーム間の差異データを作成し、それを変化リスト生成部９に出力する。
【００３３】
一方、フェイクがある場合、オブジェクトバッファ３に展開されたデータがスケーリングされて第１スケールバッファ４に転送される。このとき、第１スケールバッファ４の格納データは第２スケールバッファ５に転送される。比較器６は第１，第２スケールバッファ４，５の格納データを比較して、隣合うフレーム間の比較結果は変化リスト生成部９に出力し、離れたフレーム間の比較結果は補間器８に出力する。補間器８は、離れたフレーム間の比較結果を補間処理して隣合うフレーム間の比較結果を作成し、それを変化リスト生成部９に出力する。
【００３４】
変化リスト生成部９は、入力される隣合うフレーム間の差異データまたは比較結果に基づき、各移動オブジェクト毎に変化があった各画素を単位として、画素の二次元座標（Ｕ，Ｖ）、オブジェクトＩＤ、“＋”画素か“−”画素かの区別の情報を含む変化リストを生成する。
【００３５】
生成した各変化リスト毎に、重畳バッファ１０において、“＋”画素である場合にはその移動オブジェクトのビットをセットし、“−”画素である場合にはその移動オブジェクトのビットをリセットする。そして、最も前方にある静止オブジェクトが画素毎に示されている静止ＩＤテーブル１１における静止オブジェクトのＺ値とその移動オブジェクトとのＺ値との比較、その移動オブジェクトより前方にある他の移動オブジェクトの検索などの処理を行い、それぞれの画素における映像データがフレームバッファ１２に展開される。なお、このような処理動作の詳細については既に説明した（図４〜図６のフローチャートのＳ７〜Ｓ２０）ので、ここでは説明を省略する。
【００３６】
そして、フレームバッファ１２に展開された映像データに応じて、表示部１３に映像が表示される。なお、所望の外部状況を設定したい場合、例えば、雨降り，夜間時を表現したい場合には、その内容を示すプログラム情報をフレームバッファ１２に入力して、フレームバッファ１２の各画素の映像データを変化させることも可能である。
【００３７】
【発明の効果】
以上のように本発明の映像生成装置では、フレーム間で変化があった画素についてのみ、その画素における各オブジェクト間の前後関係を考慮して、フレーム映像を生成することにしたので、従来より高速な映像生成処理を行うことが可能である。
【図面の簡単な説明】
【図１】本発明の概念を示す図である。
【図２】本発明におけるフレーム間の変化の一例を示す図である。
【図３】本発明における重畳バッファでのビットのセット，リセットの一例を示す図である。
【図４】本発明における処理手順を示すフローチャートである。
【図５】本発明における処理手順を示すフローチャートである。
【図６】本発明における処理手順を示すフローチャートである。
【図７】本発明における処理手順を示すフローチャートである。
【図８】本発明の映像生成装置の構成を示すブロック図である。
【符号の説明】
１  ディスク
２  メモリ
３  オブジェクトバッファ
９  変化リスト生成部
１０  重畳バッファ
１１  静止ＩＤテーブル
１２  フレームバッファ
１３  表示部
【図１】
0003579775.tif 000002
【図２】
0003579775.tif 000003
【図３】
0003579775.tif 000004
【図４】
0003579775.tif 000005
【図５】
0003579775.tif 000006
【図６】
0003579775.tif 000007
【図７】
0003579775.tif 000008
【図８】
0003579775.tif 000009