情報処理装置および情報処理方法
【課題】インタラクティブなパーティクルシミュレーションはプログラミングが難しく処理の負荷が重い。
【解決手段】情報処理装置10において外部情報取得部42は、画像、音声、文字情報、数値情報などの外部情報を入力装置32から取得する。フィールド画像生成部44は、パーティクルに作用する「場」を、外部情報に基づき所定の時間ステップごとに画像として生成する。中間画像記憶部52はフィールド画像生成部44がフィールド画像を生成する途中で生成した中間画像を記憶する。フィールド画像記憶部54はフィールド画像生成部44が生成したフィールド画像を記憶する。パーティクル画像生成部56はフィールド画像記憶部54が記憶するフィールド画像を用いて、最終的に出力すべきパーティクル画像のデータを生成する。
【解決手段】情報処理装置10において外部情報取得部42は、画像、音声、文字情報、数値情報などの外部情報を入力装置32から取得する。フィールド画像生成部44は、パーティクルに作用する「場」を、外部情報に基づき所定の時間ステップごとに画像として生成する。中間画像記憶部52はフィールド画像生成部44がフィールド画像を生成する途中で生成した中間画像を記憶する。フィールド画像記憶部54はフィールド画像生成部44が生成したフィールド画像を記憶する。パーティクル画像生成部56はフィールド画像記憶部54が記憶するフィールド画像を用いて、最終的に出力すべきパーティクル画像のデータを生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動きを伴う画像を生成する情報処理装置、および当該装置で用いる情報処理方法に関する。
【背景技術】
【0002】
煙や雲などの粒子の挙動を時間発展的に計算し、画像として表現するパーティクルシミュレーションの技術は、工学的な用途のみならず、ゲーム、アニメーション、ビジュアルアートなどの娯楽、芸術の分野にも用いられるようになっている。それに従い多くのシミュレータが提案されている(例えば非特許文献1参照)。例えばCUDA(Compute Unified Device Architecture, 登録商標)によるパーティクルシミュレーションは、空間を分割して並列計算を行うことにより大量のパーティクルを扱える。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Andreas Kolb, et al., Dynamic Particle Coupling for GPU-based Fluid Simulation, Proc. 18th Symposium on Simulation Technique, 2005, pages 722-727
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら上記の技術は、適用できるプロセッサが限られている。一般的に、様々な外力に対する影響や、パーティクル間の引力などを考慮してシミュレーションを行う場合、それらを踏まえた方程式を全てのパーティクルについて解く必要がある。そのためパーティクルの数を増やしたり、よりリアルに表現しようとすることは、プログラミングの手間、演算処理の負荷の増大に直結する。外力が変化するような場合、その変化をパーティクルに反映させるのはプログラム構成、演算処理の点でさらに困難である。
【0005】
本発明はこのような課題に鑑みてなされたものであり、その目的は、安価かつ効率的に、パーティクルによって様々な表現を行うことのできる情報処理技術を提供することにある。
【課題を解決するための手段】
【0006】
本発明のある態様は情報処理装置に関する。この情報処理装置は、パーティクルを時間変化させた画像データを出力する情報処理装置であって、経時変化する入力情報を取得する入力情報取得部と、パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに入力情報に基づき生成するフィールド画像生成部と、ある時間ステップにおけるパーティクルの位置座標に基づき各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するパーティクル描画部と、を備えたことを特徴とする。
【0007】
本発明のさらに別の態様は情報処理方法に関する。この情報処理方法は、パーティクルを時間変化させた画像データを出力する情報処理方法であって、経時変化する入力情報を取得するステップと、パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに入力情報に基づき生成しメモリに格納するステップと、ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するステップと、を含むことを特徴とする。
【0008】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0009】
本発明によると、多様な入力情報を利用してパーティクルを用いた画像表現を安価かつ容易に実現できる。
【図面の簡単な説明】
【0010】
【図1】本実施の形態の情報処理技術を適用できる情報処理システムの構成例を示す図である。
【図2】本実施の形態における情報処理装置の内部回路構成を示す図である。
【図3】本実施の形態における情報処理装置の機能ブロック図と入力装置、出力装置の関係を示す図である。
【図4】本実施の形態におけるフィールド画像とパーティクル画像の関係を模式的に示す図である。
【図5】本実施の形態におけるフィールド画像生成部の詳細な構成を示す図である。
【図6】本実施の形態の音声/画像変換部がマイクロホンから取得した音声信号を変換して生成した画像の例を示す図である。
【図7】本実施の形態のイベント画像生成器が音声変換画像を解析してイベントの発生を検出する手法を説明するための図である。
【図8】本実施の形態において天気情報を変換して生成した画像の例を示す図である。
【図9】本実施の形態においてカメラによって撮影中の画像から加速度場のフィールド画像を生成する処理手順の例を示す図である。
【図10】本実施の形態のフィールド画像生成部の各機能ブロックによって構成される処理のネットワークの例を示す図である。
【図11】本実施の形態の情報処理装置が外部情報からパーティクル画像を生成する処理手順を示すフローチャートである。
【図12】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【図13】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【図14】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【図15】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【発明を実施するための形態】
【0011】
図1は本実施の形態の情報処理技術を適用できる情報処理システムの構成例を示す。情報処理システム2は、ユーザ4を撮影するカメラ6、カメラ6からの画像を取得しユーザ4の動きに反応する画像を生成する情報処理装置10、情報処理装置10が生成した画像を表示する表示装置8を含む。
【0012】
情報処理装置10と、カメラ6、表示装置8とは、有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。カメラ6、情報処理装置10、表示装置8のうちいずれか2つ、または全てが組み合わされて一体的に装備されていてもよい。また、カメラ6は必ずしも表示装置8の上に設置されていなくてもよい。さらにユーザ4は人でなくてもよく、その数も限定されない。表示装置8は、液晶ディスプレイやプラズマディスプレイなど単体で画像を表示する装置でもよいし、画像を投影するプロジェクターとスクリーンとの組み合わせなどでもよい。
【0013】
本実施の形態の情報処理装置10は、外部情報にリアルタイムで反応するパーティクルを含む画像を生成する。ここで「外部情報」は、情報処理システム2が電子的に取得できる情報をであればそのいずれでもよい。ユーザ4の動きは外部情報の一つであるが、本実施の形態では、人や物の動きなど画像として表される情報のほか、音声や文字情報、数値情報なども外部情報に含める。ユーザ4の動きを外部情報とした場合、例えばランダムに散らばっていたパーティクルがユーザ4の形をなすように集まってきたり、ユーザ4の後を追ったりする画像が生成できる。
【0014】
そこに外部情報として音声を加えた場合、例えばユーザの形に集まっていたパーティクルが、手を打つ音に反応してはじけるように分散したり、音楽に合わせて浮遊したり、といった画像が生成できる。このように本実施の形態では、画像、音声、文字情報、数値情報などを一元的に処理することにより、外部の様々な変化に反応する画像を生成する。
【0015】
このような画像はゲームやアニメーションのほか、空間で芸術を表現するインスタレーション、パーティなどで映像を演出するVJ(Video Jockey)、メデイアアート、スクリーンセーバーなど、芸術やグラフィックス関係の様々な分野に適用できる。また、鳥、魚、虫などの群衆アニメーションの作成にも適用できる。
【0016】
図2は情報処理装置10の内部回路構成を示している。情報処理装置10は、CPU(Central Processing Unit)12、GPU(Graphics Porcessing Unit)14、メインメモリ16を含む。CPU12は、オペレーティングシステムやアプリケーションなどのプログラムに基づいて、信号処理や内部構成要素を制御する。GPU14は画像処理を行う。
【0017】
これらの各部は、バス20を介して相互に接続されている。バス20にはさらに入出力インターフェース18が接続されている。入出力インターフェース18には、USBやIEEE1394などの周辺機器インタフェースや、有線又は無線LANのネットワークインタフェースからなる通信部22、ハードディスクドライブや不揮発性メモリなどの記憶部24、表示装置やスピーカなどの出力装置へデータを出力する出力部26、キーボード、マウス、マイクロホン、カメラなどの入力装置からデータを入力する入力部28、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部30が接続される。
【0018】
CPU12は、記憶部24に記憶されているオペレーティングシステムを実行することにより情報処理装置10の全体を制御する。CPU12はまた、リムーバブル記録媒体から読み出されてメインメモリ16にロードされた、あるいは通信部22を介してダウンロードされた各種プログラムを実行する。
【0019】
GPU14は、ジオメトリトランスファエンジンの機能とレンダリングプロセッサの機能とを有し、CPU12からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部26などに出力する。
【0020】
図3は情報処理装置10の機能ブロック図と入力装置、出力装置の関係を示している。図3において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU、GPU、メモリ、その他のLSIで構成することができ、ソフトウェア的には、画像処理を行うプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0021】
本実施の形態においてパーティクルの挙動を決定づける外部情報は上述のとおり、画像、音声、文字情報、数値情報などを含む。そのため情報処理装置10へ必要なデータを入力する入力装置32は、カメラ6のほか、マイクロホン36、ネットワーク38を含む。これらの入力装置32は、情報処理装置10の通信部22や入力部28と接続している。カメラ6やマイクロホン36などはゲーム機や携帯電話機などに搭載されているものでもよい。この場合、それらの機器のデータ出力機構を介して情報処理装置10への入力がなされる。
【0022】
出力装置62は代表的には、生成された画像をその場で表示する表示装置であるが、後に再生するための動画ファイルを格納するハードディスクドライブや記録媒体でもよい。従ってこれらの出力装置62は出力部26に接続されているか、記録媒体駆動部30と記録媒体との組み合わせ、または記憶部24自体でもよい。
【0023】
情報処理装置10は、外部情報取得部42、フィールド画像生成部44、中間画像記憶部52、フィールド画像記憶部54、およびパーティクル画像生成部56を含む。外部情報取得部42はCPU12と通信部22や入力部28との協働によって実現され、入力装置32からアプリケーションにおける設定やユーザの選択に従い、1種類または複数種類の外部情報を取得する。
【0024】
例えばカメラ6からは、撮影中の画像のデータを逐次取得する。マイクロホン36からは、その場の音声信号を逐次取得する。ネットワーク38からは、ネットワーク38を介して接続したサーバなどから提供される天気など各種情報をRSS(RDF Site Summary)の形式で取得する。外部情報取得部42はそのほか、動画像データや楽曲のオーディオデータなどを、図示しないアンテナで受信したテレビ放送波やラジオ放送波から取得したり、記録媒体から読み出したりしてもよい。
【0025】
フィールド画像生成部44はCPU12によって実現され、パーティクルに作用する「場」を、外部情報に基づき所定の時間ステップごとに画像として生成する。具体的には、画像、音声、文字情報、数値情報など種類の異なる外部情報を画像化し、それらを合成したり加工したりすることによって最終的なフィールド画像を生成する。「場」はパーティクルの属性ごとに、パーティクルが存在する2次元空間内での分布を表したものである。具体例は後に述べるが、例えば加速度、速度の2次元空間分布を画素値とする「加速度場」、「速度場」の画像を生成する。
【0026】
このような場を、同じ2次元空間に存在する多数のパーティクルに時間ステップごとに作用させることにより、パーティクルはそれらの場の影響を受けて移動したり姿が変化したりすることになる。外部情報が時間とともに変化すれば、場もそれに応じて変化し、結果としてパーティクルの挙動を、外部情報の時間変化に応じて変化させることができる。以後、このような場を表す画像を「フィールド画像」と呼ぶ。
【0027】
フィールド画像生成部44には、画像を合成したり加工したりするための最小単位の処理機構を複数用意しておく。そしてアプリケーションにおける設定やユーザの選択などにより、用いる処理機能の組み合わせや順番を適宜変化させることによって、パーティクルを用いた多様な表現が可能になる。すなわちフィールド画像生成部44では、最小単位の処理機構をノードとするネットワークが構築され、あるノードの出力画像はまた別のノードの入力画像となりネットワークを進むことにより、最終的なフィールド画像が生成される。以後、ノード間で一時的に生成される画像を「中間画像」と呼ぶ。
【0028】
中間画像記憶部52はメインメモリ16によって実現され、フィールド画像生成部44がフィールド画像を生成する途中で生成した中間画像を記憶する。さらに、最終的に生成したパーティクル画像もまた、中間画像として中間画像記憶部52に格納し、その後の処理に用いてよい。フィールド画像記憶部54はメインメモリ16によって実現され、フィールド画像生成部44が生成したフィールド画像を記憶する。
【0029】
パーティクル画像生成部56はGPU14によって実現され、フィールド画像記憶部54が記憶するフィールド画像を用いて、最終的に出力すべきパーティクル画像のデータを生成する。パーティクル画像生成部56は、各時間ステップにおいて、各パーティクルの属性値を、2次元空間内の位置に基づき各フィールド画像から取得する属性値取得部58と、パーティクルごとの属性値に従い、次の時間ステップにおけるパーティクルの位置、色、大きさなどを決定し描画するパーティクル描画部60を含む。
【0030】
本実施の形態では、パーティクル画像生成部56をGPU14によって実現することにより、フィールド画像をテクスチャデータとして読み出す。そして画素ごとまたは画素ブロックごとに、各フィールド画像から必要な値を取得しパーティクルに作用させる、という処理を並列に実行する。このようにすることで一般的な情報処理装置であっても、フィールド画像からの属性値の取得や、パーティクル描画が高速に行える。各パーティクルについて方程式を解く場合と比較すると、パーティクルの数に対する処理時間の依存性が小さく、最終的に生成するパーティクル画像のサイズによっておよその処理時間を見積もることができる。
【0031】
図4はフィールド画像とパーティクル画像の関係を模式的に示している。ある時間ステップt−1において、パーティクル画像66が生成されている。一方、次の時間ステップtのためのフィールド画像64a、64b、64cが生成されている。ここでフィールド画像64a、64b、64cは、前述の加速度場、速度場のほか、摩擦場、色場、サイズ場など、アプリケーションやユーザによる選択によってパーティクルに与えられた属性に対応する。
【0032】
このとき図に示すように、スクリーン座標系(x,y)に存在するパーティクルの属性値を、各フィールド画像64a、64b、64cの同じ位置における画素値を読み出すことによって取得する。上述のとおりフィールド画像64a、64b、64cをテクスチャとすれば、当該処理はGPUのテクスチャルックアップの機能により高速に実施できる。
【0033】
すなわちフィールド画像およびパーティクル画像における位置座標は、縦方向、横方向にそれぞれ正規化したUV座標系で表現する。このようにすることで、ディスプレイの解像度、やフィールド画像のサイズによらず、各フィールド画像をスクリーン座標系にマッピングすることによって位置の対応を容易にとることができる。次にフィールド画像として準備する場とデータ構成の具体例を示す。
【0034】
【表1】
【0035】
上記のように、加速度場、速度場、摩擦場、色場、サイズ場などのフィールド画像を用意する。加速度場は加速度ベクトルの成分(X, Y, Z)の3つの変数で表されるため、その画像はRGBの3チャンネル24ビットを利用した画素値を有する。速度場も同様である。摩擦場はこの例では加速度および速度を低減させる割合を表すf(0≦f≦1)なる1つの変数とする。そのためその画像はDepthの1チャンネル8ビットを利用した画素値を有する。
【0036】
色場は一般的な画素の色情報と同じでよく、その画像はRGBAの4チャンネル32ビットを利用した画素値を有する。サイズ場はパーティクルのサイズを表すSizeなる1つの変数であるため、その画像はDepthの1チャンネル8ビットを利用した画素値を有する。なお最終的に生成するパーティクル画像は2次元平面であるため、パーティクルの動きを求める際の奥行き方向(Z方向)の加速度、速度は考慮しなくてもよいが、それらの値を利用して何らかの処理を行う場合を考慮して、画素値のチャンネルとしては確保しておく。一方、奥行き方向の移動をパーティクルのサイズに反映させてもよい。
【0037】
中間画像も、元の外部情報や、合成、加工など処理の内容に応じて様々な画素値を有してよい。3チャンネルの画素値を有する中間画像に対し、所定の1チャンネルのみを選択して処理するなどでもよい。またRGBの画像をグレースケールに変換する際に用いられる変換式などを利用してチャンネル数を制御してもよい。
【0038】
上記のようなフィールド画像を用いると、ある時間ステップt−1に位置座標xt−1に存在したパーティクルの、次の時間ステップtにおける位置座標xtは、時間間隔をdtとして例えば以下のように求められる。
【0039】
【数1】
【0040】
ここでαは加速度場から取得した加速度ベクトル、vは速度場から取得した速度ベクトルである。初期分布を与えたパーティクルに対し、上記のような計算を各時間ステップで実施することにより、場に応じたパーティクルの挙動を画像として表現することができる。なお上述のようにフィールド画像自体も外部情報に応じて変化する。
【0041】
図5はフィールド画像生成部44の詳細な構成を示している。フィールド画像生成部44は、外部情報から最初の中間画像を生成する生成部46、中間画像を合成する合成部48、中間画像を加工したり必要な情報を抜き出した画像を生成する変換部50を含む。生成部46は、外部情報から最初の中間画像を生成して中間画像記憶部52へ格納する。あるいは、生成した画像をそのままフィールド画像とする場合はフィールド画像記憶部54へ格納する。
【0042】
合成部48、変換部50は、中間画像記憶部52から中間画像を読み出し、処理を施したうえ、中間画像記憶部52へ再び格納する。あるいは、生成した画像をフィールド画像とする場合はフィールド画像記憶部54へ格納する。このように生成部46、合成部48、変換部50が生成する画像は、設定された処理の組み合わせや順序によって、中間画像である場合とフィールド画像である場合がある。図5に関しては以後、中間画像として説明する。
【0043】
生成部46は、画像/画像変換器70、音声/画像変換器72、情報/画像変換器74、および加工用画像生成器76を含む。画像/画像変換器70は、入力装置32から取得した画像に対し、画像の属性、例えばサイズ、階調、フレームレートなどを、中間画像として好適な値に調整した画像へ変換する処理を行う。音声/画像変換器72は、マイクロホンから取得した音声信号を所定の規則で画像化する。情報/画像変換器74は、ネットワークを介して取得した文字や数値の情報を所定の規則で画像化する。加工用画像生成器76は、中間画像へ加工を施すために合成の対象とする画像を生成する。音声や文字情報、数値情報を画像化する具体例や中間画像への加工については後に述べる。
【0044】
合成部48は、複数の中間画像を合成して一つの中間画像を生成する。詳細には、複数の画像の画素値を画素ごとに加算する加算器78、画素ごとに乗算する乗算器80、画素ごとに論理和をとるOR回路82、画素ごとに論理積をとるAND回路84を含む。すなわち加算器78、乗算器80、OR回路82、AND回路84はそれぞれ次に示す演算を行う。
【0045】
【数2】
【0046】
上記の式では合成対象の中間画像を全ておなじ重み付けで合成しているが、表現意図などに応じて所定の中間画像を強調するなどの重み付けを行ってもよい。また重み付け係数に0を許容することにより、複数の入力された中間画像から一つを選択して出力するなど、中間画像の切り替え器として利用してもよい。このようにすることで、後述のイベント発生時などにフィールド画像の生成に用いる画像を切り替えることができる。
【0047】
変換部50は、一つまたは複数の中間画像を加工したり必要な情報のみを抽出したりして新たな画像を生成する。詳細にはぼかし画像生成器86、動き画像生成器88、前景画像生成器90、イベント画像生成器92、重力画像生成器94を含む。
【0048】
ぼかし画像生成器86は、入力された中間画像をぼかした画像を生成する。ぼかす手法はガウシアンブラーなど既存の記述を採用してよい。動き画像生成器88は、現在の中間画像と所定の時間ステップ分過去の中間画像との差分画像を生成し、差分が発生している領域に含まれる画素とそれ以外の領域に含まれる画素とで異なる所定の画素値を与えた動き画像を生成する。
【0049】
動き画像は、後に述べるように動きのある領域のみパーティクルの移動を遅らせたり、画素値の平均値にしきい値を設定するなどして動きの有無を検出するのに用いることができる。前景画像生成器90は、内部で記憶した背景画像と入力された中間画像との差分から、当該中間画像における前景を抽出し、前景と背景とで異なる画素値を与えた前景画像を生成する。前景の抽出には従来技術を利用できる。
【0050】
イベント画像生成器92は、入力された中間画像を解析して所定のイベントが発生したか否かを判定し、イベント発生の有無を画像によって表す。例えばイベントの内容ごとに全ての画素値が「0」である画像を準備しておき、イベントが発生したときに、全ての画素値を「1」に更新する。準備する画像は1画素のみとし、後段の処理で所望の画像サイズに引き伸ばしてもよい。あるいはイベントの発生に対応づけられた画像をメインメモリ16などから読み出して中間画像として出力してもよい。
【0051】
重力画像生成器94は、入力された中間画像の画素値を高さ情報に変換した高さ画像を生成し、重力を仮定したときの、高さに応じた速度場または加速度場の画像を生成する。高さ画像は、後述の例では、入力された画像の画素値の大きさを深さとみなすことで、画素値が大きいほど低い画像としている。そして画素値が変化している箇所は高さに差があるとして重力加速度を発生させ、画素値が急激に変化している箇所は高さの勾配が大きいとして速度を大きくする。実際に生成する速度場や加速度場のフィールド画像における画素値は、このような定性的な特徴を所定の規則で数値に落とし込んでいれば、その値自体は実際の物理量でなくてもよい。
【0052】
図6は音声/画像変換器72がマイクロホンから取得した音声信号を変換して生成した画像の例を示している。音声変換画像120は、音声特性図形122を含む。音声特性図形122は、画像の中心を原点124とし、所定の周期を2πとたときの各サンプリング時刻を角度θ、音声レベルを径rとする極座標において、各サンプリング結果を表す座標を直線で結んだ図形である。角度の周期をフレーム表示周期、例えば16msecに対応づけると、音声特性図形122は当該フレーム表示周期ごとに更新される。音声/画像変換器72は例えば、音声特性図形122の内部の領域に含まれる画素に「1」、外部の領域に含まれる画素に「0」など、所定の画素値を与えた画像を生成する。
【0053】
この音声変換画像120を利用して、音声に特定のイベントが発生したか否かを判定することができる。図7はイベント画像生成器92が、音声変換画像を解析してイベントの発生を検出する手法を説明するための図である。ここではイベントとして、手を打ったり物が破裂したときの、微小時間の大きな音の発生を検出する例を説明する。以後、このような音を「破裂音」と呼ぶ。図6を参照して説明したように、音声変換画像120aには、音声特性図形122aが表されている。
【0054】
破裂音が発生すると、音声信号においては微小時間だけ急激に音声レベルの振幅が大きくなる。これを音声特性図形122aに当てはめると、図7に示すように、ある微小角度で経rが正負に大きく触れる図形となる。すなわち破裂音のない場合と比較すると全体的に長細い形となる。そこでイベント画像生成器92は、音声特性図形122aに外接する矩形126を求め、当該矩形の大きさと縦横の辺の長さの比によって破裂音の発生を検出する。
【0055】
例えば矩形126の短手方向の辺の長さ、および、短手方向の辺に対する長手方向の辺の長さの割合にしきい値を設定しておき、双方がしきい値より大きければ破裂音が発生したと判定する。このようにして破裂音を検出したら、上述のように、画素値が「0」であった破裂音発生用の画像の画素値を「1」に更新するなどして、イベントが発生したことを示す画像を生成したり、あらかじめ生成しておいた画像を読み出して出力したりする。なお音声特性図形122が特徴的な変化を示すイベントであれば、破裂音以外でも同様の手法で検出できる。
【0056】
次に情報/画像変換器74が文字情報、数値情報などテキストベースの情報を画像に変換する例を説明する。図8は天気情報を変換して生成した画像の例を示している。この例では「天気情報」として、各地の「現在の天気」および「現在の気圧」の情報を随時取得している。「現在の天気」については、天気を表す言葉を象徴する画像を出力する。例えば「晴れ」であれば晴れを象徴する画像130、「曇り」であれば曇りを象徴する画像132、「雨」であれば雨を象徴する画像134を出力する。
【0057】
そのため、「晴れ」や「雨」など天気を表す言葉に、それを象徴する画像のデータを対応づけたテーブルを用意しておき、情報/画像変換器74は、取得した情報に対応する画像データをメインメモリ16などから読み出し中間画像として出力する。「象徴する画像」は図8に示したように、絵や写真のほか、象徴する色で塗りつぶした画像などでもよい。このようにして出力した中間画像は、パーティクルそのものを、天気を象徴する図形や色としたり、天気を象徴する図形の形をなすようにパーティクルが集まったりする画像を表示する際に利用できる。
【0058】
一方、「現在の気圧」を示す数値情報の場合は、画面の上から下へ向けて濃淡が徐々に変化するグラデーション画像136において、気圧の値pに応じて濃淡の勾配を変化させた画像を生成する。例えば、画像の最下段の画素値を255で固定し、気圧の値pが大きいほど最上段の画素値を小さくしたグラデーション画像を生成する。画素値の勾配は線形でもよいし曲線でもよい。またグラデーション画像の後段における使用方法によって、グレースケールでもRGB画像でもよい。
【0059】
次にフィールド画像生成部44の上述の構成によってなされる処理手順の例を、加速度場のフィールド画像を生成する場合を例にとって説明する。図9はカメラによって撮影中の画像から加速度場のフィールド画像を生成する処理手順の例を示している。図9の処理手順および後述する図11のフローチャートにおいては、各部の処理手順を、ステップを意味するS(Stepの頭文字)と数字との組み合わせによって表示する。
【0060】
まず画像140は、カメラが撮影したフレーム画像に対応する。このとき画像/画像変換器70によってサイズなどが適宜調整してある。当該画像140に対し、前景画像生成器90は、前景抽出処理を施し、2階調で表現した前景画像142を生成する(S10)。図9の例では、部屋にいる人物を撮影した画像140から抽出した、前景である人物の領域を白、背景となる領域を黒とした前景画像142が生成されている。
【0061】
次にぼかし画像生成器86は、前景画像142をぼかしたぼかし画像144を生成する(S12)。次に加算器78は、前景画像142、ぼかし画像144、加工用画像生成器76が生成した乱気流ノイズ画像146を加算した加算画像148を生成する(S14)。ぼかし画像144を加算することにより、前景画像142における前景のエッジ部分に色調の勾配をつけている。また乱気流ノイズ画像146を加算することにより、画像全体にランダム性をもたせ最終的なパーティクルの動きが自然になるようにしている。
【0062】
次に重力画像生成器94が、加算画像148の画素値の大きさを深さとみなしたときの高さ画像150を生成する(S16)。そして当該高さ画像150から上述のように加速度場のフィールド画像を生成する。このように生成された加速度場の画像を用いてパーティクル画像生成部56が各パーティクルを描画すると(S18)、高さ画像150における低い部分にパーティクルが落ちていくことになり、時間を追うに従いパーティクルが集まり人物の形を形成していくような画像152を生成できる。
【0063】
加算画像148から高さ画像150を生成する過程S16において、合成部48がさらに別の中間画像を合成して何らかの加工を施すようにしてもよい。例えば情報/画像変換器74が生成した、気圧の値pに応じたグラデーション画像を合成することにより、加算画像148において画面の上側から下側へ向けて全体的な白さが増すような画像が生成される。その結果、高さ画像150は画面の下になるほど高さが低くなるような画像となり、パーティクルには画面下方向への力が生じる。このようにすると、気圧が高いほどパーティクルが画面下側へ沈殿していくような演出ができる。
【0064】
また、破裂音などのイベントが発生したとき、合成部48はその期間のみ、イベント発生に対応して生成した画像、または当該イベントに対応づけて準備された画像を合成してもよい。上述のようにイベント発生に対応して画素値を更新した塗りつぶし画像を生成すると、イベント発生期間を特定することができる。
【0065】
例えば破裂音が発生したら、イベント画像生成器92は、前景から外側へ放射状に画素値が小さくなるようなグラデーション画像を生成し、加算画像148に合成する。このとき、合成時の重み付けを調整し、グラデーション画像の影響が大きく出るようにすると、人の形に集まっていたパーティクルがはじけ、画面の外側へ散っていくような演出ができる。速度場のフィールド画像生成処理において同様の合成を行うと、破裂音発生の影響をより早くパーティクルの挙動に反映させることができる。
【0066】
図10はフィールド画像生成部44の各機能ブロックによって構成される処理のネットワークの例を示している。図9で示した処理は破線矩形160に主に示されている。図10の例ではそのほか、動き画像生成器88が生成した、動きが検出された領域のみに所定の画素値を与えた画像に、加工用画像生成器76が生成した乱気流ノイズ画像を合成した画像を、摩擦場のフィールド画像として生成している(破線162)。このようにすると、動きのある領域の速度、加速度を緩め、動いている人物などの後を遅れながら追うパーティクルを演出できる。
【0067】
一方、文字情報、数値情報からサイズ場や色場のフィールド画像を生成している(破線164)。例えば気圧の値に反比例する画素値の塗りつぶし画像を生成し、それをサイズ場のフィールド画像とする。これにより、気圧が低いほど膨らむ風船のようにパーティクルを表現できる。また、天気に対応する色で塗りつぶした画像を生成し、それを色場のフィールド画像とする。これにより、「晴れ」の時は黄色、「雨」のときは青など、天気に応じて色が変化するパーティクルを表現できる。
【0068】
なお天気情報を画像へ変換する例としてはこのほかに、風速が大きいほど画素値を大きくすることで速度場における速度を増加させたり、湿度が大きいほど画素値を大きくすることでパーティクルの粘性が増加するように粘性率のフィールド画像を生成し、パーティクルの挙動に反映させたりしてもよい。ここでは文字情報、数値情報として天気情報を例に挙げたが、天気情報に限らず、情報の種類と生成する画像との対応づけをしておくことにより、いかなる情報でも同様に、パーティクルを利用した表現に組み入れることができる。
【0069】
図10で示した処理のネットワークは、本実施の形態で実現できる態様の一部であり、図5で示した各機能ブロックが行う処理の結びつきを様々に変化させることにより、パーティクル画像の使用目的や表現意図などに応じて多様な処理を容易に実現することができる。さらに、パーティクル画像生成部56が描画したパーティクル画像自体を中間画像として処理のネットワークに入力してもよい。
【0070】
例えば一つ前の時間ステップのパーティクル画像におけるパーティクルの位置で画素値が小さくなる画像を生成して合成することにより、パーティクル同士に斥力が発生した、加速度場、速度場のフィールド画像を生成できる。これにより意図しない領域に偶然、パーティクルが凝集するといった現象の発生を抑え、意図した領域へパーティクルが自然に集まってくるように見せることができる。
【0071】
次にこれまで述べた構成によって実現できる情報処理装置10の動作について説明する。図11は情報処理装置10が外部情報からパーティクル画像を生成する処理手順を示すフローチャートである。図11のフローチャートは、パーティクル画像の出力を開始する指示を情報処理装置10に対しユーザが入力したときに開始される。まず時間ステップを表す変数tに0を代入すると(S30)、パーティクルに所定の初期分布を与えた初期画像を表示する(S32)。そして外部情報取得部42は、カメラ6、マイクロホン36、ネットワーク38などから外部情報の取得を開始する(S34)。
【0072】
するとフィールド画像生成部44は、アプリケーションやユーザの設定に従った処理を順次行い、所定のフィールド画像を生成する(S36)。するとパーティクル画像生成部56の属性値取得部58は、テクスチャルックアップの機能により各フィールド画像にアクセスし、各パーティクルの位置における各場の値を、当該パーティクルの属性値としてそれぞれ取得する(S38)。そしてパーティクル描画部60は、各パーティクルの属性値に従い、初期分布を与えたパーティクルを移動させたり、色や大きさを変化させたりすることによりパーティクル画像を更新する(S40)。
【0073】
ユーザによる処理終了の指示がない場合(S42のN)、時間ステップをインクリメントしながら(S44)、S36からS40の処理を繰り返す。その間、S34で開始した外部情報取得は継続する。ここでの時間ステップの間隔は表示装置8によって決定できるフレーム表示周期などとする。ユーザによる処理終了の指示入力がなされたら処理を終了する(S42のY)。
【0074】
図12から図15は最終的に出力装置62へ出力される画像の例を示している。まず図12に示すパーティクル画像170では、撮影対象の人の形にパーティクルが集まっている。これは上述のとおり、前景抽出処理によって抽出した人の領域が他の領域より低くなった高さ画像から、速度場、加速度場を決定し、それに応じて時間間隔分移動したパーティクルを描画することによって得られる。
【0075】
図13は、撮影対象の人が画面左方向へ歩いている場合に、人の動きに合わせて後を追うパーティクル画像172を示している。上述のように、過去のフレームからの差分によって動きが検出された人の後側の領域において、速度、加速度を低くする摩擦場を生成することにより、パーティクルの“遅れ感”を演出できる。
【0076】
図14は撮影対象の人が止まって所定時間経過した場合に、パーティクルの凝集が溶けていくパーティクル画像174を示している。この場合、動き検出処理によって動きがない状態が所定時間継続したら、加工用画像生成器76は、図8のグラデーション画像136のように、画面上から下へ向かって画素値が大きくなるようなグラデーション画像を出力する。そして重力画像生成器94は高さ画像を生成する際に、当該グラデーション画像を用いるようにする。あるいは加速度場を生成する過程でそのような画像を大きな重み付けで合成する。これにより集まっていたパーティクルが、画面下方向へ落ちていくように見せることができる。
【0077】
図15は音声信号から破裂音の発生が検出された場合に、パーティクルがはじけているパーティクル画像176を示している。これは上述のとおり破裂音発生時に、前景から外側へ向かう加速度、速度を有する画像を生成し、用いるフィールド画像を切り替えたり、フィールド画像生成過程において重み付け合成を行うことによって実現できる。パーティクルを鳥、虫、魚などの形として同様の処理を行うことにより、人の動きによって鳥が集まったり音に反応して逃げたりといった群衆アニメーションの表現も実現できる。
【0078】
以上述べた本実施の形態によれば、カメラによって撮影された画像のデータのみならず、音声データ、文字情報、数値情報など多様な情報を画像として統一的に扱い、最終的なパーティクル画像を生成する。これにより情報の種類によって特別な処理機構を設けることなく全ての情報を中間画像として同様に処理し、最終的な結果に組み入れることができる。
【0079】
画像データ、音声データ、文字情報、数値情報など多角的に得られた情報は、パーティクルの挙動を決定づけるフィールド画像の生成に利用する。フィールド画像はパーティクル画像と同様の2次元平面内で各位置に対する速度、加速度、摩擦、サイズ、色を表した画像である。このような画像を用意することにより、GPUにおけるテクスチャルックアップの機能を利用して、各パーティクルとその属性を高速に結びつけることができる。そしてGPUにおいて画素ごと、または画素ブロックごとに並列処理を行うことにより、多数のパーティクルであっても画像のサイズで処理時間を見積もることができる。また従来のGPUを利用してこのような処理が可能となるため、低コストで実現可能である。
【0080】
音声データは、サンプリングした音声信号を、サンプリング時刻を角度θ、音声レベルを径rとして極座標で表したときの各点を結んで得られた音声特性図形によって画像化する。これにより音声の特徴を図形の特徴として捉えることができる。例えば音声特性図形の外接矩形の縦横比によって破裂音の発生を検出すると、それに応じて速度場、加速度場を変化させ、破裂音に応じてパーティクルもはじけるような演出が可能となる。これらの処理はそのほとんどが画像処理であるため、上述のようにその他の画像処理と同様の機構によって実施できる。
【0081】
また画像を合成する、というシンプルな処理によって、パーティクルの挙動に反映させる情報を組み入れているため、イベント発生時に合成時の重み付けを変化させたり、どのような情報によってどのような結果が得られるのか試してみたり、といった処理の変更も容易かつ効率的に行える。
【0082】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0083】
例えば実施の形態では画像や音声など情報処理装置が外部から取得した情報に基づきフィールド画像を生成しパーティクルに作用させた。一方、情報処理装置内部の情報に基づき同様の処理を行ってもよい。例えばCPUやメモリの使用率に応じた勾配のグラデーション画像や単色の塗りつぶし画像をフィールド画像として生成することにより、それらの経時変化に応じてパーティクルが変化する態様を実現できる。外部情報と当該装置内部の情報とを組み合わせて導入してもよい。これらの場合も実施の形態で述べたのと同様の効果を得ることができる。
【符号の説明】
【0084】
2 情報処理システム、 6 カメラ、 8 表示装置、 10 情報処理装置、 12 CPU、 14 GPU、 16 メインメモリ、 18 入出力インターフェース、 22 通信部、 24 記憶部、 26 出力部、 28 入力部、 30 記録媒体駆動部、 32 入力装置、 36 マイクロホン、 38 ネットワーク、 42 外部情報取得部、 44 フィールド画像生成部、 52 中間画像記憶部、 54 フィールド画像記憶部、 56 パーティクル画像生成部、 58 属性値取得部、 60 パーティクル描画部、 62 出力装置、 70 画像/画像変換器、 72 音声/画像変換器、 74 情報/画像変換器、 76 加工用画像生成器、 78 加算器、 80 乗算器、 82 OR回路、 84 AND回路、 86 ぼかし画像生成器、 88 動き画像生成器、 90 前景画像生成器、 92 イベント画像生成器、 94 重力画像生成器。
【技術分野】
【0001】
本発明は、動きを伴う画像を生成する情報処理装置、および当該装置で用いる情報処理方法に関する。
【背景技術】
【0002】
煙や雲などの粒子の挙動を時間発展的に計算し、画像として表現するパーティクルシミュレーションの技術は、工学的な用途のみならず、ゲーム、アニメーション、ビジュアルアートなどの娯楽、芸術の分野にも用いられるようになっている。それに従い多くのシミュレータが提案されている(例えば非特許文献1参照)。例えばCUDA(Compute Unified Device Architecture, 登録商標)によるパーティクルシミュレーションは、空間を分割して並列計算を行うことにより大量のパーティクルを扱える。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Andreas Kolb, et al., Dynamic Particle Coupling for GPU-based Fluid Simulation, Proc. 18th Symposium on Simulation Technique, 2005, pages 722-727
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら上記の技術は、適用できるプロセッサが限られている。一般的に、様々な外力に対する影響や、パーティクル間の引力などを考慮してシミュレーションを行う場合、それらを踏まえた方程式を全てのパーティクルについて解く必要がある。そのためパーティクルの数を増やしたり、よりリアルに表現しようとすることは、プログラミングの手間、演算処理の負荷の増大に直結する。外力が変化するような場合、その変化をパーティクルに反映させるのはプログラム構成、演算処理の点でさらに困難である。
【0005】
本発明はこのような課題に鑑みてなされたものであり、その目的は、安価かつ効率的に、パーティクルによって様々な表現を行うことのできる情報処理技術を提供することにある。
【課題を解決するための手段】
【0006】
本発明のある態様は情報処理装置に関する。この情報処理装置は、パーティクルを時間変化させた画像データを出力する情報処理装置であって、経時変化する入力情報を取得する入力情報取得部と、パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに入力情報に基づき生成するフィールド画像生成部と、ある時間ステップにおけるパーティクルの位置座標に基づき各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するパーティクル描画部と、を備えたことを特徴とする。
【0007】
本発明のさらに別の態様は情報処理方法に関する。この情報処理方法は、パーティクルを時間変化させた画像データを出力する情報処理方法であって、経時変化する入力情報を取得するステップと、パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに入力情報に基づき生成しメモリに格納するステップと、ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するステップと、を含むことを特徴とする。
【0008】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0009】
本発明によると、多様な入力情報を利用してパーティクルを用いた画像表現を安価かつ容易に実現できる。
【図面の簡単な説明】
【0010】
【図1】本実施の形態の情報処理技術を適用できる情報処理システムの構成例を示す図である。
【図2】本実施の形態における情報処理装置の内部回路構成を示す図である。
【図3】本実施の形態における情報処理装置の機能ブロック図と入力装置、出力装置の関係を示す図である。
【図4】本実施の形態におけるフィールド画像とパーティクル画像の関係を模式的に示す図である。
【図5】本実施の形態におけるフィールド画像生成部の詳細な構成を示す図である。
【図6】本実施の形態の音声/画像変換部がマイクロホンから取得した音声信号を変換して生成した画像の例を示す図である。
【図7】本実施の形態のイベント画像生成器が音声変換画像を解析してイベントの発生を検出する手法を説明するための図である。
【図8】本実施の形態において天気情報を変換して生成した画像の例を示す図である。
【図9】本実施の形態においてカメラによって撮影中の画像から加速度場のフィールド画像を生成する処理手順の例を示す図である。
【図10】本実施の形態のフィールド画像生成部の各機能ブロックによって構成される処理のネットワークの例を示す図である。
【図11】本実施の形態の情報処理装置が外部情報からパーティクル画像を生成する処理手順を示すフローチャートである。
【図12】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【図13】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【図14】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【図15】本実施の形態において最終的に出力装置へ出力される画像の例を示す図である。
【発明を実施するための形態】
【0011】
図1は本実施の形態の情報処理技術を適用できる情報処理システムの構成例を示す。情報処理システム2は、ユーザ4を撮影するカメラ6、カメラ6からの画像を取得しユーザ4の動きに反応する画像を生成する情報処理装置10、情報処理装置10が生成した画像を表示する表示装置8を含む。
【0012】
情報処理装置10と、カメラ6、表示装置8とは、有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。カメラ6、情報処理装置10、表示装置8のうちいずれか2つ、または全てが組み合わされて一体的に装備されていてもよい。また、カメラ6は必ずしも表示装置8の上に設置されていなくてもよい。さらにユーザ4は人でなくてもよく、その数も限定されない。表示装置8は、液晶ディスプレイやプラズマディスプレイなど単体で画像を表示する装置でもよいし、画像を投影するプロジェクターとスクリーンとの組み合わせなどでもよい。
【0013】
本実施の形態の情報処理装置10は、外部情報にリアルタイムで反応するパーティクルを含む画像を生成する。ここで「外部情報」は、情報処理システム2が電子的に取得できる情報をであればそのいずれでもよい。ユーザ4の動きは外部情報の一つであるが、本実施の形態では、人や物の動きなど画像として表される情報のほか、音声や文字情報、数値情報なども外部情報に含める。ユーザ4の動きを外部情報とした場合、例えばランダムに散らばっていたパーティクルがユーザ4の形をなすように集まってきたり、ユーザ4の後を追ったりする画像が生成できる。
【0014】
そこに外部情報として音声を加えた場合、例えばユーザの形に集まっていたパーティクルが、手を打つ音に反応してはじけるように分散したり、音楽に合わせて浮遊したり、といった画像が生成できる。このように本実施の形態では、画像、音声、文字情報、数値情報などを一元的に処理することにより、外部の様々な変化に反応する画像を生成する。
【0015】
このような画像はゲームやアニメーションのほか、空間で芸術を表現するインスタレーション、パーティなどで映像を演出するVJ(Video Jockey)、メデイアアート、スクリーンセーバーなど、芸術やグラフィックス関係の様々な分野に適用できる。また、鳥、魚、虫などの群衆アニメーションの作成にも適用できる。
【0016】
図2は情報処理装置10の内部回路構成を示している。情報処理装置10は、CPU(Central Processing Unit)12、GPU(Graphics Porcessing Unit)14、メインメモリ16を含む。CPU12は、オペレーティングシステムやアプリケーションなどのプログラムに基づいて、信号処理や内部構成要素を制御する。GPU14は画像処理を行う。
【0017】
これらの各部は、バス20を介して相互に接続されている。バス20にはさらに入出力インターフェース18が接続されている。入出力インターフェース18には、USBやIEEE1394などの周辺機器インタフェースや、有線又は無線LANのネットワークインタフェースからなる通信部22、ハードディスクドライブや不揮発性メモリなどの記憶部24、表示装置やスピーカなどの出力装置へデータを出力する出力部26、キーボード、マウス、マイクロホン、カメラなどの入力装置からデータを入力する入力部28、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部30が接続される。
【0018】
CPU12は、記憶部24に記憶されているオペレーティングシステムを実行することにより情報処理装置10の全体を制御する。CPU12はまた、リムーバブル記録媒体から読み出されてメインメモリ16にロードされた、あるいは通信部22を介してダウンロードされた各種プログラムを実行する。
【0019】
GPU14は、ジオメトリトランスファエンジンの機能とレンダリングプロセッサの機能とを有し、CPU12からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部26などに出力する。
【0020】
図3は情報処理装置10の機能ブロック図と入力装置、出力装置の関係を示している。図3において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU、GPU、メモリ、その他のLSIで構成することができ、ソフトウェア的には、画像処理を行うプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0021】
本実施の形態においてパーティクルの挙動を決定づける外部情報は上述のとおり、画像、音声、文字情報、数値情報などを含む。そのため情報処理装置10へ必要なデータを入力する入力装置32は、カメラ6のほか、マイクロホン36、ネットワーク38を含む。これらの入力装置32は、情報処理装置10の通信部22や入力部28と接続している。カメラ6やマイクロホン36などはゲーム機や携帯電話機などに搭載されているものでもよい。この場合、それらの機器のデータ出力機構を介して情報処理装置10への入力がなされる。
【0022】
出力装置62は代表的には、生成された画像をその場で表示する表示装置であるが、後に再生するための動画ファイルを格納するハードディスクドライブや記録媒体でもよい。従ってこれらの出力装置62は出力部26に接続されているか、記録媒体駆動部30と記録媒体との組み合わせ、または記憶部24自体でもよい。
【0023】
情報処理装置10は、外部情報取得部42、フィールド画像生成部44、中間画像記憶部52、フィールド画像記憶部54、およびパーティクル画像生成部56を含む。外部情報取得部42はCPU12と通信部22や入力部28との協働によって実現され、入力装置32からアプリケーションにおける設定やユーザの選択に従い、1種類または複数種類の外部情報を取得する。
【0024】
例えばカメラ6からは、撮影中の画像のデータを逐次取得する。マイクロホン36からは、その場の音声信号を逐次取得する。ネットワーク38からは、ネットワーク38を介して接続したサーバなどから提供される天気など各種情報をRSS(RDF Site Summary)の形式で取得する。外部情報取得部42はそのほか、動画像データや楽曲のオーディオデータなどを、図示しないアンテナで受信したテレビ放送波やラジオ放送波から取得したり、記録媒体から読み出したりしてもよい。
【0025】
フィールド画像生成部44はCPU12によって実現され、パーティクルに作用する「場」を、外部情報に基づき所定の時間ステップごとに画像として生成する。具体的には、画像、音声、文字情報、数値情報など種類の異なる外部情報を画像化し、それらを合成したり加工したりすることによって最終的なフィールド画像を生成する。「場」はパーティクルの属性ごとに、パーティクルが存在する2次元空間内での分布を表したものである。具体例は後に述べるが、例えば加速度、速度の2次元空間分布を画素値とする「加速度場」、「速度場」の画像を生成する。
【0026】
このような場を、同じ2次元空間に存在する多数のパーティクルに時間ステップごとに作用させることにより、パーティクルはそれらの場の影響を受けて移動したり姿が変化したりすることになる。外部情報が時間とともに変化すれば、場もそれに応じて変化し、結果としてパーティクルの挙動を、外部情報の時間変化に応じて変化させることができる。以後、このような場を表す画像を「フィールド画像」と呼ぶ。
【0027】
フィールド画像生成部44には、画像を合成したり加工したりするための最小単位の処理機構を複数用意しておく。そしてアプリケーションにおける設定やユーザの選択などにより、用いる処理機能の組み合わせや順番を適宜変化させることによって、パーティクルを用いた多様な表現が可能になる。すなわちフィールド画像生成部44では、最小単位の処理機構をノードとするネットワークが構築され、あるノードの出力画像はまた別のノードの入力画像となりネットワークを進むことにより、最終的なフィールド画像が生成される。以後、ノード間で一時的に生成される画像を「中間画像」と呼ぶ。
【0028】
中間画像記憶部52はメインメモリ16によって実現され、フィールド画像生成部44がフィールド画像を生成する途中で生成した中間画像を記憶する。さらに、最終的に生成したパーティクル画像もまた、中間画像として中間画像記憶部52に格納し、その後の処理に用いてよい。フィールド画像記憶部54はメインメモリ16によって実現され、フィールド画像生成部44が生成したフィールド画像を記憶する。
【0029】
パーティクル画像生成部56はGPU14によって実現され、フィールド画像記憶部54が記憶するフィールド画像を用いて、最終的に出力すべきパーティクル画像のデータを生成する。パーティクル画像生成部56は、各時間ステップにおいて、各パーティクルの属性値を、2次元空間内の位置に基づき各フィールド画像から取得する属性値取得部58と、パーティクルごとの属性値に従い、次の時間ステップにおけるパーティクルの位置、色、大きさなどを決定し描画するパーティクル描画部60を含む。
【0030】
本実施の形態では、パーティクル画像生成部56をGPU14によって実現することにより、フィールド画像をテクスチャデータとして読み出す。そして画素ごとまたは画素ブロックごとに、各フィールド画像から必要な値を取得しパーティクルに作用させる、という処理を並列に実行する。このようにすることで一般的な情報処理装置であっても、フィールド画像からの属性値の取得や、パーティクル描画が高速に行える。各パーティクルについて方程式を解く場合と比較すると、パーティクルの数に対する処理時間の依存性が小さく、最終的に生成するパーティクル画像のサイズによっておよその処理時間を見積もることができる。
【0031】
図4はフィールド画像とパーティクル画像の関係を模式的に示している。ある時間ステップt−1において、パーティクル画像66が生成されている。一方、次の時間ステップtのためのフィールド画像64a、64b、64cが生成されている。ここでフィールド画像64a、64b、64cは、前述の加速度場、速度場のほか、摩擦場、色場、サイズ場など、アプリケーションやユーザによる選択によってパーティクルに与えられた属性に対応する。
【0032】
このとき図に示すように、スクリーン座標系(x,y)に存在するパーティクルの属性値を、各フィールド画像64a、64b、64cの同じ位置における画素値を読み出すことによって取得する。上述のとおりフィールド画像64a、64b、64cをテクスチャとすれば、当該処理はGPUのテクスチャルックアップの機能により高速に実施できる。
【0033】
すなわちフィールド画像およびパーティクル画像における位置座標は、縦方向、横方向にそれぞれ正規化したUV座標系で表現する。このようにすることで、ディスプレイの解像度、やフィールド画像のサイズによらず、各フィールド画像をスクリーン座標系にマッピングすることによって位置の対応を容易にとることができる。次にフィールド画像として準備する場とデータ構成の具体例を示す。
【0034】
【表1】
【0035】
上記のように、加速度場、速度場、摩擦場、色場、サイズ場などのフィールド画像を用意する。加速度場は加速度ベクトルの成分(X, Y, Z)の3つの変数で表されるため、その画像はRGBの3チャンネル24ビットを利用した画素値を有する。速度場も同様である。摩擦場はこの例では加速度および速度を低減させる割合を表すf(0≦f≦1)なる1つの変数とする。そのためその画像はDepthの1チャンネル8ビットを利用した画素値を有する。
【0036】
色場は一般的な画素の色情報と同じでよく、その画像はRGBAの4チャンネル32ビットを利用した画素値を有する。サイズ場はパーティクルのサイズを表すSizeなる1つの変数であるため、その画像はDepthの1チャンネル8ビットを利用した画素値を有する。なお最終的に生成するパーティクル画像は2次元平面であるため、パーティクルの動きを求める際の奥行き方向(Z方向)の加速度、速度は考慮しなくてもよいが、それらの値を利用して何らかの処理を行う場合を考慮して、画素値のチャンネルとしては確保しておく。一方、奥行き方向の移動をパーティクルのサイズに反映させてもよい。
【0037】
中間画像も、元の外部情報や、合成、加工など処理の内容に応じて様々な画素値を有してよい。3チャンネルの画素値を有する中間画像に対し、所定の1チャンネルのみを選択して処理するなどでもよい。またRGBの画像をグレースケールに変換する際に用いられる変換式などを利用してチャンネル数を制御してもよい。
【0038】
上記のようなフィールド画像を用いると、ある時間ステップt−1に位置座標xt−1に存在したパーティクルの、次の時間ステップtにおける位置座標xtは、時間間隔をdtとして例えば以下のように求められる。
【0039】
【数1】
【0040】
ここでαは加速度場から取得した加速度ベクトル、vは速度場から取得した速度ベクトルである。初期分布を与えたパーティクルに対し、上記のような計算を各時間ステップで実施することにより、場に応じたパーティクルの挙動を画像として表現することができる。なお上述のようにフィールド画像自体も外部情報に応じて変化する。
【0041】
図5はフィールド画像生成部44の詳細な構成を示している。フィールド画像生成部44は、外部情報から最初の中間画像を生成する生成部46、中間画像を合成する合成部48、中間画像を加工したり必要な情報を抜き出した画像を生成する変換部50を含む。生成部46は、外部情報から最初の中間画像を生成して中間画像記憶部52へ格納する。あるいは、生成した画像をそのままフィールド画像とする場合はフィールド画像記憶部54へ格納する。
【0042】
合成部48、変換部50は、中間画像記憶部52から中間画像を読み出し、処理を施したうえ、中間画像記憶部52へ再び格納する。あるいは、生成した画像をフィールド画像とする場合はフィールド画像記憶部54へ格納する。このように生成部46、合成部48、変換部50が生成する画像は、設定された処理の組み合わせや順序によって、中間画像である場合とフィールド画像である場合がある。図5に関しては以後、中間画像として説明する。
【0043】
生成部46は、画像/画像変換器70、音声/画像変換器72、情報/画像変換器74、および加工用画像生成器76を含む。画像/画像変換器70は、入力装置32から取得した画像に対し、画像の属性、例えばサイズ、階調、フレームレートなどを、中間画像として好適な値に調整した画像へ変換する処理を行う。音声/画像変換器72は、マイクロホンから取得した音声信号を所定の規則で画像化する。情報/画像変換器74は、ネットワークを介して取得した文字や数値の情報を所定の規則で画像化する。加工用画像生成器76は、中間画像へ加工を施すために合成の対象とする画像を生成する。音声や文字情報、数値情報を画像化する具体例や中間画像への加工については後に述べる。
【0044】
合成部48は、複数の中間画像を合成して一つの中間画像を生成する。詳細には、複数の画像の画素値を画素ごとに加算する加算器78、画素ごとに乗算する乗算器80、画素ごとに論理和をとるOR回路82、画素ごとに論理積をとるAND回路84を含む。すなわち加算器78、乗算器80、OR回路82、AND回路84はそれぞれ次に示す演算を行う。
【0045】
【数2】
【0046】
上記の式では合成対象の中間画像を全ておなじ重み付けで合成しているが、表現意図などに応じて所定の中間画像を強調するなどの重み付けを行ってもよい。また重み付け係数に0を許容することにより、複数の入力された中間画像から一つを選択して出力するなど、中間画像の切り替え器として利用してもよい。このようにすることで、後述のイベント発生時などにフィールド画像の生成に用いる画像を切り替えることができる。
【0047】
変換部50は、一つまたは複数の中間画像を加工したり必要な情報のみを抽出したりして新たな画像を生成する。詳細にはぼかし画像生成器86、動き画像生成器88、前景画像生成器90、イベント画像生成器92、重力画像生成器94を含む。
【0048】
ぼかし画像生成器86は、入力された中間画像をぼかした画像を生成する。ぼかす手法はガウシアンブラーなど既存の記述を採用してよい。動き画像生成器88は、現在の中間画像と所定の時間ステップ分過去の中間画像との差分画像を生成し、差分が発生している領域に含まれる画素とそれ以外の領域に含まれる画素とで異なる所定の画素値を与えた動き画像を生成する。
【0049】
動き画像は、後に述べるように動きのある領域のみパーティクルの移動を遅らせたり、画素値の平均値にしきい値を設定するなどして動きの有無を検出するのに用いることができる。前景画像生成器90は、内部で記憶した背景画像と入力された中間画像との差分から、当該中間画像における前景を抽出し、前景と背景とで異なる画素値を与えた前景画像を生成する。前景の抽出には従来技術を利用できる。
【0050】
イベント画像生成器92は、入力された中間画像を解析して所定のイベントが発生したか否かを判定し、イベント発生の有無を画像によって表す。例えばイベントの内容ごとに全ての画素値が「0」である画像を準備しておき、イベントが発生したときに、全ての画素値を「1」に更新する。準備する画像は1画素のみとし、後段の処理で所望の画像サイズに引き伸ばしてもよい。あるいはイベントの発生に対応づけられた画像をメインメモリ16などから読み出して中間画像として出力してもよい。
【0051】
重力画像生成器94は、入力された中間画像の画素値を高さ情報に変換した高さ画像を生成し、重力を仮定したときの、高さに応じた速度場または加速度場の画像を生成する。高さ画像は、後述の例では、入力された画像の画素値の大きさを深さとみなすことで、画素値が大きいほど低い画像としている。そして画素値が変化している箇所は高さに差があるとして重力加速度を発生させ、画素値が急激に変化している箇所は高さの勾配が大きいとして速度を大きくする。実際に生成する速度場や加速度場のフィールド画像における画素値は、このような定性的な特徴を所定の規則で数値に落とし込んでいれば、その値自体は実際の物理量でなくてもよい。
【0052】
図6は音声/画像変換器72がマイクロホンから取得した音声信号を変換して生成した画像の例を示している。音声変換画像120は、音声特性図形122を含む。音声特性図形122は、画像の中心を原点124とし、所定の周期を2πとたときの各サンプリング時刻を角度θ、音声レベルを径rとする極座標において、各サンプリング結果を表す座標を直線で結んだ図形である。角度の周期をフレーム表示周期、例えば16msecに対応づけると、音声特性図形122は当該フレーム表示周期ごとに更新される。音声/画像変換器72は例えば、音声特性図形122の内部の領域に含まれる画素に「1」、外部の領域に含まれる画素に「0」など、所定の画素値を与えた画像を生成する。
【0053】
この音声変換画像120を利用して、音声に特定のイベントが発生したか否かを判定することができる。図7はイベント画像生成器92が、音声変換画像を解析してイベントの発生を検出する手法を説明するための図である。ここではイベントとして、手を打ったり物が破裂したときの、微小時間の大きな音の発生を検出する例を説明する。以後、このような音を「破裂音」と呼ぶ。図6を参照して説明したように、音声変換画像120aには、音声特性図形122aが表されている。
【0054】
破裂音が発生すると、音声信号においては微小時間だけ急激に音声レベルの振幅が大きくなる。これを音声特性図形122aに当てはめると、図7に示すように、ある微小角度で経rが正負に大きく触れる図形となる。すなわち破裂音のない場合と比較すると全体的に長細い形となる。そこでイベント画像生成器92は、音声特性図形122aに外接する矩形126を求め、当該矩形の大きさと縦横の辺の長さの比によって破裂音の発生を検出する。
【0055】
例えば矩形126の短手方向の辺の長さ、および、短手方向の辺に対する長手方向の辺の長さの割合にしきい値を設定しておき、双方がしきい値より大きければ破裂音が発生したと判定する。このようにして破裂音を検出したら、上述のように、画素値が「0」であった破裂音発生用の画像の画素値を「1」に更新するなどして、イベントが発生したことを示す画像を生成したり、あらかじめ生成しておいた画像を読み出して出力したりする。なお音声特性図形122が特徴的な変化を示すイベントであれば、破裂音以外でも同様の手法で検出できる。
【0056】
次に情報/画像変換器74が文字情報、数値情報などテキストベースの情報を画像に変換する例を説明する。図8は天気情報を変換して生成した画像の例を示している。この例では「天気情報」として、各地の「現在の天気」および「現在の気圧」の情報を随時取得している。「現在の天気」については、天気を表す言葉を象徴する画像を出力する。例えば「晴れ」であれば晴れを象徴する画像130、「曇り」であれば曇りを象徴する画像132、「雨」であれば雨を象徴する画像134を出力する。
【0057】
そのため、「晴れ」や「雨」など天気を表す言葉に、それを象徴する画像のデータを対応づけたテーブルを用意しておき、情報/画像変換器74は、取得した情報に対応する画像データをメインメモリ16などから読み出し中間画像として出力する。「象徴する画像」は図8に示したように、絵や写真のほか、象徴する色で塗りつぶした画像などでもよい。このようにして出力した中間画像は、パーティクルそのものを、天気を象徴する図形や色としたり、天気を象徴する図形の形をなすようにパーティクルが集まったりする画像を表示する際に利用できる。
【0058】
一方、「現在の気圧」を示す数値情報の場合は、画面の上から下へ向けて濃淡が徐々に変化するグラデーション画像136において、気圧の値pに応じて濃淡の勾配を変化させた画像を生成する。例えば、画像の最下段の画素値を255で固定し、気圧の値pが大きいほど最上段の画素値を小さくしたグラデーション画像を生成する。画素値の勾配は線形でもよいし曲線でもよい。またグラデーション画像の後段における使用方法によって、グレースケールでもRGB画像でもよい。
【0059】
次にフィールド画像生成部44の上述の構成によってなされる処理手順の例を、加速度場のフィールド画像を生成する場合を例にとって説明する。図9はカメラによって撮影中の画像から加速度場のフィールド画像を生成する処理手順の例を示している。図9の処理手順および後述する図11のフローチャートにおいては、各部の処理手順を、ステップを意味するS(Stepの頭文字)と数字との組み合わせによって表示する。
【0060】
まず画像140は、カメラが撮影したフレーム画像に対応する。このとき画像/画像変換器70によってサイズなどが適宜調整してある。当該画像140に対し、前景画像生成器90は、前景抽出処理を施し、2階調で表現した前景画像142を生成する(S10)。図9の例では、部屋にいる人物を撮影した画像140から抽出した、前景である人物の領域を白、背景となる領域を黒とした前景画像142が生成されている。
【0061】
次にぼかし画像生成器86は、前景画像142をぼかしたぼかし画像144を生成する(S12)。次に加算器78は、前景画像142、ぼかし画像144、加工用画像生成器76が生成した乱気流ノイズ画像146を加算した加算画像148を生成する(S14)。ぼかし画像144を加算することにより、前景画像142における前景のエッジ部分に色調の勾配をつけている。また乱気流ノイズ画像146を加算することにより、画像全体にランダム性をもたせ最終的なパーティクルの動きが自然になるようにしている。
【0062】
次に重力画像生成器94が、加算画像148の画素値の大きさを深さとみなしたときの高さ画像150を生成する(S16)。そして当該高さ画像150から上述のように加速度場のフィールド画像を生成する。このように生成された加速度場の画像を用いてパーティクル画像生成部56が各パーティクルを描画すると(S18)、高さ画像150における低い部分にパーティクルが落ちていくことになり、時間を追うに従いパーティクルが集まり人物の形を形成していくような画像152を生成できる。
【0063】
加算画像148から高さ画像150を生成する過程S16において、合成部48がさらに別の中間画像を合成して何らかの加工を施すようにしてもよい。例えば情報/画像変換器74が生成した、気圧の値pに応じたグラデーション画像を合成することにより、加算画像148において画面の上側から下側へ向けて全体的な白さが増すような画像が生成される。その結果、高さ画像150は画面の下になるほど高さが低くなるような画像となり、パーティクルには画面下方向への力が生じる。このようにすると、気圧が高いほどパーティクルが画面下側へ沈殿していくような演出ができる。
【0064】
また、破裂音などのイベントが発生したとき、合成部48はその期間のみ、イベント発生に対応して生成した画像、または当該イベントに対応づけて準備された画像を合成してもよい。上述のようにイベント発生に対応して画素値を更新した塗りつぶし画像を生成すると、イベント発生期間を特定することができる。
【0065】
例えば破裂音が発生したら、イベント画像生成器92は、前景から外側へ放射状に画素値が小さくなるようなグラデーション画像を生成し、加算画像148に合成する。このとき、合成時の重み付けを調整し、グラデーション画像の影響が大きく出るようにすると、人の形に集まっていたパーティクルがはじけ、画面の外側へ散っていくような演出ができる。速度場のフィールド画像生成処理において同様の合成を行うと、破裂音発生の影響をより早くパーティクルの挙動に反映させることができる。
【0066】
図10はフィールド画像生成部44の各機能ブロックによって構成される処理のネットワークの例を示している。図9で示した処理は破線矩形160に主に示されている。図10の例ではそのほか、動き画像生成器88が生成した、動きが検出された領域のみに所定の画素値を与えた画像に、加工用画像生成器76が生成した乱気流ノイズ画像を合成した画像を、摩擦場のフィールド画像として生成している(破線162)。このようにすると、動きのある領域の速度、加速度を緩め、動いている人物などの後を遅れながら追うパーティクルを演出できる。
【0067】
一方、文字情報、数値情報からサイズ場や色場のフィールド画像を生成している(破線164)。例えば気圧の値に反比例する画素値の塗りつぶし画像を生成し、それをサイズ場のフィールド画像とする。これにより、気圧が低いほど膨らむ風船のようにパーティクルを表現できる。また、天気に対応する色で塗りつぶした画像を生成し、それを色場のフィールド画像とする。これにより、「晴れ」の時は黄色、「雨」のときは青など、天気に応じて色が変化するパーティクルを表現できる。
【0068】
なお天気情報を画像へ変換する例としてはこのほかに、風速が大きいほど画素値を大きくすることで速度場における速度を増加させたり、湿度が大きいほど画素値を大きくすることでパーティクルの粘性が増加するように粘性率のフィールド画像を生成し、パーティクルの挙動に反映させたりしてもよい。ここでは文字情報、数値情報として天気情報を例に挙げたが、天気情報に限らず、情報の種類と生成する画像との対応づけをしておくことにより、いかなる情報でも同様に、パーティクルを利用した表現に組み入れることができる。
【0069】
図10で示した処理のネットワークは、本実施の形態で実現できる態様の一部であり、図5で示した各機能ブロックが行う処理の結びつきを様々に変化させることにより、パーティクル画像の使用目的や表現意図などに応じて多様な処理を容易に実現することができる。さらに、パーティクル画像生成部56が描画したパーティクル画像自体を中間画像として処理のネットワークに入力してもよい。
【0070】
例えば一つ前の時間ステップのパーティクル画像におけるパーティクルの位置で画素値が小さくなる画像を生成して合成することにより、パーティクル同士に斥力が発生した、加速度場、速度場のフィールド画像を生成できる。これにより意図しない領域に偶然、パーティクルが凝集するといった現象の発生を抑え、意図した領域へパーティクルが自然に集まってくるように見せることができる。
【0071】
次にこれまで述べた構成によって実現できる情報処理装置10の動作について説明する。図11は情報処理装置10が外部情報からパーティクル画像を生成する処理手順を示すフローチャートである。図11のフローチャートは、パーティクル画像の出力を開始する指示を情報処理装置10に対しユーザが入力したときに開始される。まず時間ステップを表す変数tに0を代入すると(S30)、パーティクルに所定の初期分布を与えた初期画像を表示する(S32)。そして外部情報取得部42は、カメラ6、マイクロホン36、ネットワーク38などから外部情報の取得を開始する(S34)。
【0072】
するとフィールド画像生成部44は、アプリケーションやユーザの設定に従った処理を順次行い、所定のフィールド画像を生成する(S36)。するとパーティクル画像生成部56の属性値取得部58は、テクスチャルックアップの機能により各フィールド画像にアクセスし、各パーティクルの位置における各場の値を、当該パーティクルの属性値としてそれぞれ取得する(S38)。そしてパーティクル描画部60は、各パーティクルの属性値に従い、初期分布を与えたパーティクルを移動させたり、色や大きさを変化させたりすることによりパーティクル画像を更新する(S40)。
【0073】
ユーザによる処理終了の指示がない場合(S42のN)、時間ステップをインクリメントしながら(S44)、S36からS40の処理を繰り返す。その間、S34で開始した外部情報取得は継続する。ここでの時間ステップの間隔は表示装置8によって決定できるフレーム表示周期などとする。ユーザによる処理終了の指示入力がなされたら処理を終了する(S42のY)。
【0074】
図12から図15は最終的に出力装置62へ出力される画像の例を示している。まず図12に示すパーティクル画像170では、撮影対象の人の形にパーティクルが集まっている。これは上述のとおり、前景抽出処理によって抽出した人の領域が他の領域より低くなった高さ画像から、速度場、加速度場を決定し、それに応じて時間間隔分移動したパーティクルを描画することによって得られる。
【0075】
図13は、撮影対象の人が画面左方向へ歩いている場合に、人の動きに合わせて後を追うパーティクル画像172を示している。上述のように、過去のフレームからの差分によって動きが検出された人の後側の領域において、速度、加速度を低くする摩擦場を生成することにより、パーティクルの“遅れ感”を演出できる。
【0076】
図14は撮影対象の人が止まって所定時間経過した場合に、パーティクルの凝集が溶けていくパーティクル画像174を示している。この場合、動き検出処理によって動きがない状態が所定時間継続したら、加工用画像生成器76は、図8のグラデーション画像136のように、画面上から下へ向かって画素値が大きくなるようなグラデーション画像を出力する。そして重力画像生成器94は高さ画像を生成する際に、当該グラデーション画像を用いるようにする。あるいは加速度場を生成する過程でそのような画像を大きな重み付けで合成する。これにより集まっていたパーティクルが、画面下方向へ落ちていくように見せることができる。
【0077】
図15は音声信号から破裂音の発生が検出された場合に、パーティクルがはじけているパーティクル画像176を示している。これは上述のとおり破裂音発生時に、前景から外側へ向かう加速度、速度を有する画像を生成し、用いるフィールド画像を切り替えたり、フィールド画像生成過程において重み付け合成を行うことによって実現できる。パーティクルを鳥、虫、魚などの形として同様の処理を行うことにより、人の動きによって鳥が集まったり音に反応して逃げたりといった群衆アニメーションの表現も実現できる。
【0078】
以上述べた本実施の形態によれば、カメラによって撮影された画像のデータのみならず、音声データ、文字情報、数値情報など多様な情報を画像として統一的に扱い、最終的なパーティクル画像を生成する。これにより情報の種類によって特別な処理機構を設けることなく全ての情報を中間画像として同様に処理し、最終的な結果に組み入れることができる。
【0079】
画像データ、音声データ、文字情報、数値情報など多角的に得られた情報は、パーティクルの挙動を決定づけるフィールド画像の生成に利用する。フィールド画像はパーティクル画像と同様の2次元平面内で各位置に対する速度、加速度、摩擦、サイズ、色を表した画像である。このような画像を用意することにより、GPUにおけるテクスチャルックアップの機能を利用して、各パーティクルとその属性を高速に結びつけることができる。そしてGPUにおいて画素ごと、または画素ブロックごとに並列処理を行うことにより、多数のパーティクルであっても画像のサイズで処理時間を見積もることができる。また従来のGPUを利用してこのような処理が可能となるため、低コストで実現可能である。
【0080】
音声データは、サンプリングした音声信号を、サンプリング時刻を角度θ、音声レベルを径rとして極座標で表したときの各点を結んで得られた音声特性図形によって画像化する。これにより音声の特徴を図形の特徴として捉えることができる。例えば音声特性図形の外接矩形の縦横比によって破裂音の発生を検出すると、それに応じて速度場、加速度場を変化させ、破裂音に応じてパーティクルもはじけるような演出が可能となる。これらの処理はそのほとんどが画像処理であるため、上述のようにその他の画像処理と同様の機構によって実施できる。
【0081】
また画像を合成する、というシンプルな処理によって、パーティクルの挙動に反映させる情報を組み入れているため、イベント発生時に合成時の重み付けを変化させたり、どのような情報によってどのような結果が得られるのか試してみたり、といった処理の変更も容易かつ効率的に行える。
【0082】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0083】
例えば実施の形態では画像や音声など情報処理装置が外部から取得した情報に基づきフィールド画像を生成しパーティクルに作用させた。一方、情報処理装置内部の情報に基づき同様の処理を行ってもよい。例えばCPUやメモリの使用率に応じた勾配のグラデーション画像や単色の塗りつぶし画像をフィールド画像として生成することにより、それらの経時変化に応じてパーティクルが変化する態様を実現できる。外部情報と当該装置内部の情報とを組み合わせて導入してもよい。これらの場合も実施の形態で述べたのと同様の効果を得ることができる。
【符号の説明】
【0084】
2 情報処理システム、 6 カメラ、 8 表示装置、 10 情報処理装置、 12 CPU、 14 GPU、 16 メインメモリ、 18 入出力インターフェース、 22 通信部、 24 記憶部、 26 出力部、 28 入力部、 30 記録媒体駆動部、 32 入力装置、 36 マイクロホン、 38 ネットワーク、 42 外部情報取得部、 44 フィールド画像生成部、 52 中間画像記憶部、 54 フィールド画像記憶部、 56 パーティクル画像生成部、 58 属性値取得部、 60 パーティクル描画部、 62 出力装置、 70 画像/画像変換器、 72 音声/画像変換器、 74 情報/画像変換器、 76 加工用画像生成器、 78 加算器、 80 乗算器、 82 OR回路、 84 AND回路、 86 ぼかし画像生成器、 88 動き画像生成器、 90 前景画像生成器、 92 イベント画像生成器、 94 重力画像生成器。
【特許請求の範囲】
【請求項1】
パーティクルを時間変化させた画像データを出力する情報処理装置であって、
経時変化する入力情報を取得する入力情報取得部と、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成するフィールド画像生成部と、
ある時間ステップにおけるパーティクルの位置座標に基づき各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するパーティクル描画部と、
を備えたことを特徴とする情報処理装置。
【請求項2】
前記フィールド画像生成部は、画素値が加速度ベクトルの成分を表す加速度場の画像、画素値が速度ベクトルの成分を表す速度場の画像、画素値が加速度および速度の低減率を表す摩擦場の画像、画素値がパーティクルの色の情報を表す色場の画像、画素値がパーティクルのサイズを表すサイズ場の画像の少なくともいずれかを生成することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記入力情報取得部は、画像データ、音声信号、文字情報、数値情報の少なくともいずれかを取得し、
前記フィールド画像生成部は、
前記入力情報取得部が取得した入力情報の内容に対応する画像を中間画像として出力する生成部と、
前記中間画像に加工を施し合成することにより前記フィールド画像を生成する合成部と、
を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記入力情報取得部は、マイクロホンがサンプリングした音声信号を取得し、
前記フィールド画像生成部は、
所定の周期を2πとしたときの各サンプリング時刻を角度θ、音声レベルを径rとする極座標において、サンプリングされた音声信号を表す座標を直線で結んだ音声特性図形の画像を生成する音声/画像変換器と、
前記音声特性図形があらかじめ定めた条件に合致する形状となったときにイベントの発生を検知し、当該イベントに対応づけられたイベント用画像を出力するイベント画像生成器と、
前記イベント用画像が前記フィールド画像に反映されるように画像を合成する合成部と、
を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項5】
前記入力情報取得部は、ネットワークを介して取得した気圧の値を表す数値情報を取得し、
前記フィールド画像生成部は、
気圧の値に応じて画素値の勾配が異なるグラデーション画像を生成する情報/画像変換器と、
前記グラデーション画像が前記フィールド画像に反映されるように画像を合成する合成部と、
を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項6】
前記入力情報取得部は、対象物の動きを撮影した画像データを取得し、
前記フィールド画像生成部は、
取得した画像データに前景抽出処理を施して抽出した前記対象物の領域に含まれる画素とその他の領域に含まれる画素に互いに異なる所定の画素値を与えた前景画像を生成する前景画像生成器と、
前記前景画像における画素値を高さ情報に変換することにより前記対象物の領域をその他の領域より低くした高さ画像を生成し、当該高さ画像空間に重力場を仮定したときに発生する速度ベクトルおよび加速度ベクトルをそれぞれ画素値とする前記フィールド画像を生成する重力画像生成器と、
を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項7】
前記フィールド画像生成部は、
取得した画像データのうち現在の画像と所定フレーム分過去の画像とからそれらの差分画像を生成することにより、差分が生じている領域を前記対象物の動き領域として取得し、当該動き領域に含まれる画素とその他の領域に含まれる画素に異なる所定の画素値を与えた動き画像を、前記動き領域において速度および加速度を低減させるための摩擦場のフィールド画像として生成する動き画像生成器をさらに備えたことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記フィールド画像生成部は、
前記動き画像生成器が生成する前記差分画像において、前記対象物の動きがないと判断される条件を満たす状態が所定期間継続したら、画像の上から下へ向けて画素値が変化するグラデーション画像を生成する加工用画像生成器をさらに備え、
前記重力画像生成器は、前記前景画像に代わり前記グラデーション画像における画素値を高さ情報に変換することにより画面の上から下へ向かって低くなる高さ画像を生成することを特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記フィールド画像生成部は、前記パーティクル描画部が描画したパーティクルの画像を、次の時間ステップにおける前記フィールド画像の生成に用いることを特徴とする請求項1から8のいずれかに記載の情報処理装置。
【請求項10】
前記入力情報取得部は、ネットワークを介して取得した天気を表す文字情報を取得し、
前記フィールド画像生成部は、
天気の種類に対応づけられた色で塗りつぶした画像を、パーティクルの色を決定づける色場のフィールド画像として生成する情報/画像変換器を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項11】
前記入力情報取得部は、ネットワークを介して取得した気圧を表す数値情報を取得し、
前記フィールド画像生成部は、
気圧の値に反比例する大きさの画素値を全ての画素に与えた画像を、パーティクルの大きさを決定づけるサイズ場のフィールド画像として生成する情報/画像変換器を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項12】
前記パーティクル描画部は、各フィールド画像をパーティクルを描画するスクリーン座標系にマッピングすることにより各パーティクルの属性値を取得することを特徴とする請求項1から11のいずれかに記載の情報処理装置。
【請求項13】
パーティクルを時間変化させた画像データを出力する情報処理方法であって、
経時変化する入力情報を取得するステップと、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成しメモリに格納するステップと、
ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するステップと、
を含むことを特徴とする情報処理方法。
【請求項14】
パーティクルを時間変化させた画像データを出力する機能をコンピュータに実現させるコンピュータプログラムであって、
経時変化する入力情報を取得する機能と、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成しメモリに格納する機能と、
ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項15】
パーティクルを時間変化させた画像データを出力する機能をコンピュータに実現させるコンピュータプログラムを記録した記録媒体であって、
経時変化する入力情報を取得する機能と、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成しメモリに格納する機能と、
ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した記録媒体。
【請求項1】
パーティクルを時間変化させた画像データを出力する情報処理装置であって、
経時変化する入力情報を取得する入力情報取得部と、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成するフィールド画像生成部と、
ある時間ステップにおけるパーティクルの位置座標に基づき各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するパーティクル描画部と、
を備えたことを特徴とする情報処理装置。
【請求項2】
前記フィールド画像生成部は、画素値が加速度ベクトルの成分を表す加速度場の画像、画素値が速度ベクトルの成分を表す速度場の画像、画素値が加速度および速度の低減率を表す摩擦場の画像、画素値がパーティクルの色の情報を表す色場の画像、画素値がパーティクルのサイズを表すサイズ場の画像の少なくともいずれかを生成することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記入力情報取得部は、画像データ、音声信号、文字情報、数値情報の少なくともいずれかを取得し、
前記フィールド画像生成部は、
前記入力情報取得部が取得した入力情報の内容に対応する画像を中間画像として出力する生成部と、
前記中間画像に加工を施し合成することにより前記フィールド画像を生成する合成部と、
を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記入力情報取得部は、マイクロホンがサンプリングした音声信号を取得し、
前記フィールド画像生成部は、
所定の周期を2πとしたときの各サンプリング時刻を角度θ、音声レベルを径rとする極座標において、サンプリングされた音声信号を表す座標を直線で結んだ音声特性図形の画像を生成する音声/画像変換器と、
前記音声特性図形があらかじめ定めた条件に合致する形状となったときにイベントの発生を検知し、当該イベントに対応づけられたイベント用画像を出力するイベント画像生成器と、
前記イベント用画像が前記フィールド画像に反映されるように画像を合成する合成部と、
を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項5】
前記入力情報取得部は、ネットワークを介して取得した気圧の値を表す数値情報を取得し、
前記フィールド画像生成部は、
気圧の値に応じて画素値の勾配が異なるグラデーション画像を生成する情報/画像変換器と、
前記グラデーション画像が前記フィールド画像に反映されるように画像を合成する合成部と、
を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項6】
前記入力情報取得部は、対象物の動きを撮影した画像データを取得し、
前記フィールド画像生成部は、
取得した画像データに前景抽出処理を施して抽出した前記対象物の領域に含まれる画素とその他の領域に含まれる画素に互いに異なる所定の画素値を与えた前景画像を生成する前景画像生成器と、
前記前景画像における画素値を高さ情報に変換することにより前記対象物の領域をその他の領域より低くした高さ画像を生成し、当該高さ画像空間に重力場を仮定したときに発生する速度ベクトルおよび加速度ベクトルをそれぞれ画素値とする前記フィールド画像を生成する重力画像生成器と、
を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項7】
前記フィールド画像生成部は、
取得した画像データのうち現在の画像と所定フレーム分過去の画像とからそれらの差分画像を生成することにより、差分が生じている領域を前記対象物の動き領域として取得し、当該動き領域に含まれる画素とその他の領域に含まれる画素に異なる所定の画素値を与えた動き画像を、前記動き領域において速度および加速度を低減させるための摩擦場のフィールド画像として生成する動き画像生成器をさらに備えたことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記フィールド画像生成部は、
前記動き画像生成器が生成する前記差分画像において、前記対象物の動きがないと判断される条件を満たす状態が所定期間継続したら、画像の上から下へ向けて画素値が変化するグラデーション画像を生成する加工用画像生成器をさらに備え、
前記重力画像生成器は、前記前景画像に代わり前記グラデーション画像における画素値を高さ情報に変換することにより画面の上から下へ向かって低くなる高さ画像を生成することを特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記フィールド画像生成部は、前記パーティクル描画部が描画したパーティクルの画像を、次の時間ステップにおける前記フィールド画像の生成に用いることを特徴とする請求項1から8のいずれかに記載の情報処理装置。
【請求項10】
前記入力情報取得部は、ネットワークを介して取得した天気を表す文字情報を取得し、
前記フィールド画像生成部は、
天気の種類に対応づけられた色で塗りつぶした画像を、パーティクルの色を決定づける色場のフィールド画像として生成する情報/画像変換器を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項11】
前記入力情報取得部は、ネットワークを介して取得した気圧を表す数値情報を取得し、
前記フィールド画像生成部は、
気圧の値に反比例する大きさの画素値を全ての画素に与えた画像を、パーティクルの大きさを決定づけるサイズ場のフィールド画像として生成する情報/画像変換器を備えたことを特徴とする請求項1または2に記載の情報処理装置。
【請求項12】
前記パーティクル描画部は、各フィールド画像をパーティクルを描画するスクリーン座標系にマッピングすることにより各パーティクルの属性値を取得することを特徴とする請求項1から11のいずれかに記載の情報処理装置。
【請求項13】
パーティクルを時間変化させた画像データを出力する情報処理方法であって、
経時変化する入力情報を取得するステップと、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成しメモリに格納するステップと、
ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画するステップと、
を含むことを特徴とする情報処理方法。
【請求項14】
パーティクルを時間変化させた画像データを出力する機能をコンピュータに実現させるコンピュータプログラムであって、
経時変化する入力情報を取得する機能と、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成しメモリに格納する機能と、
ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項15】
パーティクルを時間変化させた画像データを出力する機能をコンピュータに実現させるコンピュータプログラムを記録した記録媒体であって、
経時変化する入力情報を取得する機能と、
パーティクルに与える属性ごとに属性値の分布をパーティクルが存在する二次元空間で表したフィールド画像を、所定の時間ステップごとに前記入力情報に基づき生成しメモリに格納する機能と、
ある時間ステップにおけるパーティクルの位置座標に基づき、メインメモリから読み出した各フィールド画像から各パーティクルの属性値を取得し、当該属性値に従い次の時間ステップにおける各パーティクルを描画する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図10】
【図11】
【図8】
【図9】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図10】
【図11】
【図8】
【図9】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−32951(P2012−32951A)
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願番号】特願2010−170948(P2010−170948)
【出願日】平成22年7月29日(2010.7.29)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願日】平成22年7月29日(2010.7.29)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
[ Back to top ]