IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

特許7020511画像処理システム、画像処理装置およびプログラム
<>
  • 特許-画像処理システム、画像処理装置およびプログラム 図1
  • 特許-画像処理システム、画像処理装置およびプログラム 図2
  • 特許-画像処理システム、画像処理装置およびプログラム 図3
  • 特許-画像処理システム、画像処理装置およびプログラム 図4
  • 特許-画像処理システム、画像処理装置およびプログラム 図5
  • 特許-画像処理システム、画像処理装置およびプログラム 図6
  • 特許-画像処理システム、画像処理装置およびプログラム 図7
  • 特許-画像処理システム、画像処理装置およびプログラム 図8
  • 特許-画像処理システム、画像処理装置およびプログラム 図9
  • 特許-画像処理システム、画像処理装置およびプログラム 図10
  • 特許-画像処理システム、画像処理装置およびプログラム 図11
  • 特許-画像処理システム、画像処理装置およびプログラム 図12
  • 特許-画像処理システム、画像処理装置およびプログラム 図13
  • 特許-画像処理システム、画像処理装置およびプログラム 図14
  • 特許-画像処理システム、画像処理装置およびプログラム 図15
  • 特許-画像処理システム、画像処理装置およびプログラム 図16
  • 特許-画像処理システム、画像処理装置およびプログラム 図17
  • 特許-画像処理システム、画像処理装置およびプログラム 図18
  • 特許-画像処理システム、画像処理装置およびプログラム 図19
  • 特許-画像処理システム、画像処理装置およびプログラム 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-07
(45)【発行日】2022-02-16
(54)【発明の名称】画像処理システム、画像処理装置およびプログラム
(51)【国際特許分類】
   G06T 13/40 20110101AFI20220208BHJP
【FI】
G06T13/40
【請求項の数】 10
(21)【出願番号】P 2020101814
(22)【出願日】2020-06-11
(62)【分割の表示】P 2019001827の分割
【原出願日】2014-01-27
(65)【公開番号】P2020140737
(43)【公開日】2020-09-03
【審査請求日】2020-06-11
(31)【優先権主張番号】P 2013099750
(32)【優先日】2013-05-09
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100089118
【弁理士】
【氏名又は名称】酒井 宏明
(72)【発明者】
【氏名】伊藤 篤
(72)【発明者】
【氏名】大塚 愛子
(72)【発明者】
【氏名】酒寄 哲也
(72)【発明者】
【氏名】鈴木 英和
(72)【発明者】
【氏名】田中 高信
【審査官】板垣 有紀
(56)【参考文献】
【文献】特開平10-027262(JP,A)
【文献】特開2011-062390(JP,A)
【文献】特開2012-249172(JP,A)
【文献】特開2000-172868(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/00 - 13/80
A63F 13/00 - 13/98
(57)【特許請求の範囲】
【請求項1】
絵が描かれた用紙から画像データを生成する読取装置と、前記読取装置から前記画像データを受信して所定の画像処理を行う画像処理装置と、を備える画像処理システムであって、
前記読取装置は、
所定の描画領域に描かれた前記絵と、所定の箇所に一つまたは複数設けられて前記絵の対象を識別するための識別情報と、を有した前記用紙を読み取ることで、前記絵の画像と前記識別情報の画像とを含む前記画像データを生成し、
前記画像処理装置は、
前記読取装置からの前記画像データが入力される入力手段と、
前記入力手段により入力された前記画像データに含まれる前記絵の画像に基づき、所定の表示領域での前記絵の画像に対する動作のパラメータを決定するパラメータ決定手段と、
前記パラメータ決定手段により決定された前記動作のパラメータに基づく動作を前記絵の画像にさせるよう制御する動作制御手段と、
を備え
前記動作制御手段は、一の絵の画像の位置を示す座標と他の絵の画像の位置を示す座標とから距離を算出し、算出された距離と閾値との関係に応じた速度での動作となるよう、前記一の絵の画像または前記他の絵の画像の動作を制御する、
ことを特徴とする画像処理システム。
【請求項2】
前記読取装置は、
所定の箇所に一つまたは複数設けられて前記絵の対象を識別するための識別情報を有した前記用紙を読み取ることで、前記絵の画像とともに前記識別情報の画像を含む前記画像データを生成し、
前記パラメータ決定手段は、
前記画像データに含まれる前記絵の画像および前記識別情報の画像に基づき、前記動作のパラメータを決定する、
ことを特徴とする請求項1に記載の画像処理システム。
【請求項3】
前記パラメータ決定手段は、前記絵の画像の色の分布に基づき、前記動作のパラメータを決定する、
ことを特徴とする請求項1または2に記載の画像処理システム。
【請求項4】
前記パラメータ決定手段は、前記動作のパラメータとして、前記表示領域での進行方向の速度のパラメータと加速度のパラメータとを決定する、
ことを特徴とする請求項1ないしの何れか一項に記載の画像処理システム。
【請求項5】
用紙の所定の描画領域に描かれた絵の画像を含む画像データを読取装置から入力する入力手段と、
前記入力手段により入力された前記画像データに含まれる前記絵の画像に基づき、所定の表示領域での前記絵の画像に対する動作のパラメータを決定するパラメータ決定手段と、
前記パラメータ決定手段により決定された前記動作のパラメータに基づく動作を前記絵の画像にさせるよう制御する動作制御手段と、
を備え
前記動作制御手段は、一の絵の画像の位置を示す座標と他の絵の画像の位置を示す座標とから距離を算出し、算出された距離と閾値との関係に応じた速度での動作となるよう、前記一の絵の画像または前記他の絵の画像の動作を制御する、
ことを特徴とする画像処理装置。
【請求項6】
前記入力手段は、前記用紙の所定の箇所に一つまたは複数設けられて前記絵の対象を識別するための識別情報の画像を前記絵の画像とともに含む前記画像データを入力し、
前記パラメータ決定手段は、前記画像データに含まれる前記絵の画像および前記識別情報の画像に基づき、前記動作のパラメータを決定する、
ことを特徴とする請求項に記載の画像処理装置。
【請求項7】
前記パラメータ決定手段は、前記絵の画像の色の分布に基づき、前記動作のパラメータを決定する、
ことを特徴とする請求項5または6に記載の画像処理装置。
【請求項8】
前記パラメータ決定手段は、前記動作のパラメータとして、前記表示領域での進行方向の速度のパラメータと加速度のパラメータとを決定する、
ことを特徴とする請求項ないしの何れか一項に記載の画像処理装置。
【請求項9】
コンピュータを、
用紙の所定の描画領域に描かれた絵の画像を含む画像データを読取装置から入力する入力手段と、
前記入力手段により入力された前記画像データに含まれる前記絵の画像に基づき、所定の表示領域での前記絵の画像に対する動作のパラメータを決定するパラメータ決定手段と、
前記パラメータ決定手段により決定された前記動作のパラメータに基づく動作を前記絵の画像にさせるよう制御する動作制御手段と、
として機能させ
前記動作制御手段は、一の絵の画像の位置を示す座標と他の絵の画像の位置を示す座標とから距離を算出し、算出された距離と閾値との関係に応じた速度での動作となるよう、前記一の絵の画像または前記他の絵の画像の動作を制御する、
ためのプログラム。
【請求項10】
前記入力手段は、前記用紙の所定の箇所に一つまたは複数設けられて前記絵の対象を識別するための識別情報の画像を前記絵の画像とともに含む前記画像データを入力し、
前記パラメータ決定手段は、前記画像データに含まれる前記絵の画像および前記識別情報の画像に基づき、前記動作のパラメータを決定する、
ことを特徴とする請求項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理システム、画像処理装置およびプログラムに関する。
【背景技術】
【0002】
近年では、コンピュータ装置の性能向上により、3次元の座標を用いたコンピュータ・グラフィクス(以下、3DCGと略称する)による画像を容易に表示可能となっている。また、3DCGでは、3次元の座標空間内に配置される各オブジェクトに対してそれぞれ規則的またはランダムな動きを設定し、動画像として表示させることも広く行われている。このような動画像では、3次元の座標空間内で、各オブジェクトが恰もそれぞれ独立して動いているかのような表現が可能である。
【0003】
また、特許文献1には、3DCGによる画像に対して、アニメ製作者が手書きにより作成した画像に動きを与え、予め用意された背景画像と合成して表示させるようにした技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、一般のユーザが手書きにより作成したユーザ画像を、より自然な動きで3DCGによる画像内に容易に表示させる技術が求められている。特許文献1の技術では、画像に加える動きは、アニメ製作者の手に委ねられており、画像の自然な動きを実現させるためには、ある程度の熟練が必要であった。したがって、一般のユーザが手書きにより作成したユーザ画像を対象とした場合に、より自然な動きに画像内にユーザ画像を表示させるような画像処理の技術は、従来では、十分なものではなかった。
【0005】
本発明は、上記に鑑みてなされたものであって、一般のユーザが手書きにより作成したユーザ画像を、より自然な動きで表示可能とすることを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明は、絵が描かれた用紙から画像データを生成する読取装置と、前記読取装置から前記画像データを受信して所定の画像処理を行う画像処理装置と、を備える画像処理システムであって、前記読取装置は、所定の描画領域に描かれた前記絵と、所定の箇所に一つまたは複数設けられて前記絵の対象を識別するための識別情報と、を有した前記用紙を読み取ることで、前記絵の画像と前記識別情報の画像とを含む前記画像データを生成し、前記画像処理装置は、前記読取装置からの前記画像データが入力される入力手段と、前記入力手段により入力された前記画像データに含まれる前記絵の画像に基づき、所定の表示領域での前記絵の画像に対する動作のパラメータを決定するパラメータ決定手段と、前記パラメータ決定手段により決定された前記動作のパラメータに基づく動作を前記絵の画像にさせるよう制御する動作制御手段と、を備え、前記動作制御手段は、一の絵の画像の位置を示す座標と他の絵の画像の位置を示す座標とから距離を算出し、算出された距離と閾値との関係に応じた速度での動作となるよう、前記一の絵の画像または前記他の絵の画像の動作を制御する、ことを特徴とする。
【発明の効果】
【0007】
本発明によれば、一般のユーザが手書きにより作成したユーザ画像を、より自然な動きで表示可能となるという効果を奏する。
【図面の簡単な説明】
【0008】
図1図1は、第1の実施形態に係る表示システムの一例の構成を示すブロック図である。
図2図2は、実施形態に係る、3次元の座標系を持つ画像データ空間について概略的に示す図である。
図3図3は、実施形態に適用可能なPCの一例の構成を示すブロック図である。
図4図4は、実施形態に係るPCの機能を説明するための一例の機能ブロック図である。
図5図5は、実施形態による表示制御処理の全体的な流れを示す一例のフローチャートである。
図6図6は、実施形態に係る、手書き描画を行うための用紙の例を示す図である。
図7図7は、実施形態に係るユーザ画像データの縦横比Rについて説明するための図である。
図8図8は、実施形態に係るモード判定部による変形モード判定処理の例を示すフローチャートである。
図9図9は、実施形態に係る第1モードの動作について説明するための図である。
図10図10は、実施形態に係る第2モードの動作について説明するための図である。
図11図11は、実施形態に係る第3モードの動作について説明するための図である。
図12図12は、実施形態に係るパラメータ生成部によるパラメータの生成、決定処理の例を示すフローチャートである。
図13図13は、実施形態に係る、各特徴量cと各最大値mとを用いた各パラメータpの決定方法の例を示すための図である。
図14図14は、実施形態に係る画像データ空間の投影について説明するための図である。
図15図15は、実施形態に係る画像制御部による、対象ユーザオブジェクトに対する動作の制御の一例を示すフローチャートである。
図16図16は、実施形態の第1の変形例を説明するための図である。
図17図17は、実施形態の第2の変形例を説明するための図である。
図18図18は、実施形態の第3の変形例を説明するための図である。
図19図19は、2次元の画像を表示する場合の画面例を示す図である。
図20図20は、3次元の画像を表示する場合の画面例を示す図である。
【発明を実施するための形態】
【0009】
以下に添付図面を参照して、画像処理システム、画像処理装置およびプログラムの実施の形態を詳細に説明する。
【0010】
(第1の実施形態)
図1は、第1の実施形態に係る表示システムの一例の構成を示すブロック図である。図1において、表示システム1は、パーソナルコンピュータ(PC)10と、1以上のプロジェクタ装置(PJ)111、112、113と、スキャナ装置20とを含む。PC10は、スキャナ装置20で原稿21を読み取って得られた画像データに対して所定の画像処理を施して表示画像データとし、プロジェクタ装置(PJ)111、112、113に供給する。プロジェクタ装置111、112、113は、PC10から供給された表示画像データに従い、画像131、132、133をスクリーン12に投射する。
【0011】
なお、図1のように複数のプロジェクタ装置(PJ)111、112、113による画像131、132、133を1のスクリーン12に投射する場合、各画像131、132、133の隣接部分に重複部分を設けると好ましい。図1の例では、カメラ14によりスクリーン12に投射された画像131、132、133を撮像し、PC10が、撮像画像データに基づき各画像131、132、133、あるいは、各プロジェクタ装置(PJ)111、112、113を制御して、重複部分の画像を調整している。
【0012】
このような構成において、例えば、ユーザ23が手書きにて絵22を描いた原稿21を作成し、この原稿21の画像をスキャナ装置20に読み取らせる。スキャナ装置20は、原稿21の画像を読み取って得た原稿画像データをPC10に供給する。PC10は、スキャナ装置20から供給された原稿画像データから絵22に対応する部分のデータを抽出し、抽出した画像データをユーザ画像データとして保持する。
【0013】
一方、PC10は、3次元の座標系を持つ画像データ空間を生成する。そして、PC10は、ユーザ画像データに対してこの画像データ空間内の座標を与えて当該ユーザ画像データを当該画像データ空間内のデータとする。以下では、この3次元の画像データ空間内のユーザ画像データを、ユーザオブジェクトと呼ぶ。PC10は、この、ユーザオブジェクトを含む3次元の画像データ空間を2次元の画像データ平面に投影し、投影して生成された画像データを、プロジェクタ装置(PJ)111、112、113の台数分に分割して、各プロジェクタ装置(PJ)111、112、113に供給する。
【0014】
ここで、PC10は、ユーザオブジェクトに対して、画像データ空間内での動きを与えることができる。例えば、PC10は、ユーザオブジェクトの元になるユーザ画像データの特徴量を求め、求めた特徴量に基づき、ユーザオブジェクト自身の変形のモードを含む、動きに関する各パラメータを生成する。PC10は、このパラメータをユーザ画像データに適用して、ユーザオブジェクトに対して画像データ空間内での動きを与える。
【0015】
このようにすることで、ユーザ23は、自身が手書きにて作成した絵22による画像を、3次元の画像データ空間内で動く画像として観察することができる。また、PC10は、複数のユーザオブジェクトを同一の画像データ空間内に含めることができる。したがって、ユーザ23は、上述の操作を繰り返すことで、例えば異なる複数の絵22による画像を、それぞれ、3次元の画像データ空間内で動く画像として観察することができる。
【0016】
図2は、PC10により生成される、実施形態に係る、3次元の座標系を持つ画像データ空間について概略的に示す。実施形態では、3次元の座標系として、互いに直交する3の座標軸(x軸、y軸、z軸)を持つ直交座標系を用いる。以下では、図2に示されるように、x軸、y軸およびz軸を、それぞれ高さ、幅および奥行方向の軸とし、PC10は、高さ、幅および奥行の各軸による3次元の座標系を持つ画像データ空間30を生成するものとして説明する。図2の例では、この画像データ空間30内に、ユーザ画像データによる各ユーザオブジェクト401、402、403、404および405が含まれている。
【0017】
PC10は、この画像データ空間30に対して、それぞれ値が予め定められた高さH、幅Wおよび奥行Dからなる空間である定義領域31を設定する。ユーザ画像データによる各ユーザオブジェクト401、402、…の動きは、この定義領域31内に制限される。実施形態では、各ユーザオブジェクト401、402、…の元になる絵22として、魚類、イカ、タコ、クラゲなど水中に棲息する生物を想定しており、定義領域31は、仮想的な水槽と見做すことができる。以下では、特に記載の無い限り、定義領域31を仮想水槽31と呼ぶ。
【0018】
図3は、実施形態に適用可能なPC10の一例の構成を示す。図3のPC10において、バス100に対してCPU(Central Processing Unit)110、ROM(Read Only Memory)111、RAM(Random Access Memory)112および表示制御部113が接続される。PC10において、さらに、バス100に対してストレージ114、データI/F115および通信I/F116が接続される。
【0019】
CPU110は、ROM111およびストレージ114に予め記憶されるプログラムに従い、RAM112をワークメモリとして用いて、このPC10の全体を制御する。表示制御部113は、モニタ120が接続され、CPU110により生成された表示制御信号を、モニタ120が表示可能な信号に変換して出力する。また、表示制御部113は、表示制御信号を、プロジェクタ装置111、112および113が表示可能な信号に変換してそれぞれ出力することができる。
【0020】
ストレージ114は、データを不揮発に記憶することが可能な記憶媒体であって、例えばハードディスクドライブが用いられる。これに限らず、ストレージ114として、例えばフラッシュメモリなどの不揮発性の半導体メモリを用いてもよい。ストレージ114は、上述のCPU110が実行するためのプログラムや各種のデータが格納される。
【0021】
データI/F115は、外部の機器との間でのデータの入出力を制御する。例えば、データI/F115は、スキャナ装置20に対するインターフェイスとして用いられる。また、データI/F115は、マウスなどのポインティングデバイスや図示されないキーボード(KBD)からの信号が入力される。さらに、CPU110で生成された表示制御信号を、このデータI/F115から出力して、例えば各プロジェクタ装置111、112および113に供給してもよい。このようなデータI/F115としては、USB(Universal Serial Bus)やBluetooth(登録商標)といったインタフェースを適用することができる。
【0022】
通信I/F116は、インターネットやLAN(Local Area Network)といったネットワークを介した通信を制御する。
【0023】
図4は、実施形態に係るPC10の機能を説明するための一例の機能ブロック図である。PC10は、入力部130と、画像取得部131と、3D空間生成部132と、領域設定部133と、モード判定部134と、パラメータ生成部135と、画像制御部136と、記憶部137とを含む。
【0024】
入力部130は、ユーザ23による手書きで描画された描画部分を含む画像が入力される。例えば、入力部130は、データI/F115の機能を含み、ユーザ23が手書きで描画した描画部分の絵22を含む原稿21の画像がスキャナ装置20で読み取られた原稿画像データが入力される。そして、入力部130は、入力された原稿画像データから、絵22の部分の画像データを抽出し、ユーザ画像データとして取得する。
【0025】
3D空間生成部132は、図2を用いて説明した、高さ、幅および奥行の3軸からなる3次元の座標軸による画像データ空間30を生成する。3D空間生成部132は、例えば、RAM112上のアドレス空間として画像データ空間30を生成する。領域設定部133は、3D空間生成部132で生成された画像データ空間30内に、予め定められた値に従い、高さH、幅Wおよび奥行Dの定義領域31(仮想水槽31)を設定する。
【0026】
画像取得部131は、画像データ空間30に対して所定に視点を設定して、設定した視点から画像データ空間30を2次元の画像データ平面に投影し、プロジェクタ装置111~113で投射させるための画像データを取得する。
【0027】
モード判定部134は、入力部130で取得されたユーザ画像データに基づき、当該ユーザ画像データが画像データ空間30に含まれた際のユーザオブジェクトに割り当てる、ユーザオブジェクト自身の変形のモード(変形モードと呼ぶ)を判定する。パラメータ生成部135は、入力部130で取得されたユーザ画像データに基づき、当該ユーザ画像データによるユーザオブジェクトの動きに関する性能を決めるパラメータを生成する。
【0028】
画像制御部136は、モード判定部134により判定された変形モードと、パラメータ生成部135で生成されたパラメータとに従い、画像データ空間30内でのユーザオブジェクトの動きを制御する。換言すれば、画像制御部136は、画像データ空間30における仮想水槽31内での座標をユーザオブジェクトに与え、この座標を、時間の経過に伴い連続して変化させる制御を行う。
【0029】
記憶部137は、RAM112に対応し、ユーザオブジェクトの元になるユーザ画像データなどを記憶する。これに限らず、ストレージ114を記憶部137として用いてもよい。例えば、モード判定部134やパラメータ生成部135は、この記憶部137に記憶されるユーザ画像データを用いて、変形モードの判定やパラメータの生成を行う。また、画像制御部136は、記憶部137に記憶されるユーザ画像データに対して仮想水槽31内の座標を与えることで、当該ユーザ画像データを、画像データ空間30内にユーザオブジェクトとして含ませることができる。さらに、画像制御部136は、ユーザオブジェクトに対して変形モードやパラメータに従い変形処理や移動処理などを施す。
【0030】
なお、上述したPC10に含まれる入力部130、画像取得部131、3D空間生成部132、領域設定部133、モード判定部134、パラメータ生成部135および画像制御部136は、例えばストレージ114に予め記憶され、CPU110上で動作する表示制御プログラムによって実現される。この表示制御プログラムは、インストール可能な形式また実行可能な形式のファイルでCD(Compact Disk)、フレキシブルディスク(FD)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0031】
また、実施形態のPC10で実行される表示制御プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供するように構成してもよい。また、実施形態のPC10で実行される表示制御プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。さらに、実施形態の表示制御プログラムを、ROM111などに予め組み込んで提供するように構成してもよい。
【0032】
実施形態のPC10で実行される表示制御プログラムは、上述した各部(入力部130、画像取得部131、3D空間生成部132、領域設定部133、モード判定部134、パラメータ生成部135および画像制御部136)を含むモジュール構成となっている。実際のハードウェアとしては、CPU110がストレージ114やROM111などの記憶媒体から表示制御プログラムを読み出して実行することにより、上述した各部がRAM112などの主記憶装置上にロードされ、入力部130、画像取得部131、3D空間生成部132、領域設定部133、モード判定部134、パラメータ生成部135および画像制御部136が主記憶装置上に生成されるようになっている。
【0033】
次に、実施形態による表示制御処理について、より詳細に説明する。図5は、実施形態による表示制御処理の全体的な流れを示す一例のフローチャートである。このフローチャートによる処理の実行に先立って、ユーザによる手書きの絵が作成される。ここでは、ユーザは、予めフォーマットが定められた用紙に対して手書きの描画を行うものとする。
【0034】
図6は、実施形態に係る、手書き描画を行うための用紙の例を示す。図6の左側に示される用紙200において、画像データ空間30内に含ませたいオブジェクト(ユーザオブジェクト)の元となる絵212を手書き描画する描画領域210と、描画領域210に描画された絵に対するタイトルを記入するタイトル記入領域211とが配される。
【0035】
また、用紙200の四隅のうち3の隅に、マーカ2201、2202および2203が配される。用紙200の画像をスキャナ装置20で読み取った原稿画像から、これらマーカ2201、2202および2203を検出することで、用紙200の向きおよび大きさを知ることができる。
【0036】
図5のフローチャートにおいて、ユーザの手書き描画による絵212が描画された用紙200の画像がスキャナ装置20により読み取られ、読み取られた画像による原稿画像データがPC10に供給され、ステップS10で入力部130に入力される。
【0037】
次のステップS11で、PC10において、入力部130は、入力された原稿画像データから、ユーザ画像データを抽出する。先ず、入力部130は、原稿画像データから各マーカ2201~2203を検出する。入力部130は、検出された各マーカ2201~2203の原稿画像データ上の位置に基づき、原稿画像データの方向および大きさを判定する。
【0038】
例えば、入力部130は、原稿画像データの四隅のうち、マーカ2201~2203が存在しない隅を検出し、検出された隅の位置に基づき原稿画像データの向きを判定する。図6の例では、マーカ2201~2203が存在しない隅が原稿画像データの右下隅であると判定する。また、これにより、各マーカ2201~2203の原稿画像データ上での位置も確定できる。入力部130は、さらに、各マーカ2201~2203間の距離を計測し、計測された距離と、ストレージ114などに予め記憶される対応する既知の距離とを比較する。この比較結果に基づき、原稿画像データにおける縦横方向のサイズの歪みを修正することができる。
【0039】
入力部130は、上述のようにして取得した原稿画像データの向きとサイズとに基づき、原稿画像データから描画領域210とタイトル記入領域211とを抽出する。図6の右側に、原稿画像データから抽出された描画領域210およびタイトル記入領域211の画像データによる画像の例を示す。入力部130は、さらに、描画領域210の画像データから絵212の部分を抽出する。例えば、入力部130は、描画領域210の画像データの各画素が白色(用紙200の地の色)か、白色以外かの2値判定を行い、絵212の部分を抽出する。この絵212の部分を含み、底辺の方向が描画領域210の底辺の方向と平行な最小の矩形領域213の画像データを、ユーザ画像データとする。入力部130は、ユーザ画像データを記憶部137に記憶させる。
【0040】
次のステップS12で、PC10において、モード判定部134は、ステップS11で抽出されたユーザ画像データに対して割り当てる変形モードを判定する。実施形態では、仮想水槽31内での各ユーザオブジェクトに対して変形モードを割り当て、各ユーザオブジェクトの仮想水槽31内での動作を、この変形モードに基づき制御する。
【0041】
実施形態では、変形モードとして、ユーザオブジェクトを縦に分割して進行方向の後ろ側を動かして変形させる第1モードと、ユーザオブジェクトを縦方向に伸縮させて変形させる第2モードと、ユーザオブジェクトを横に分割して下側を動かして変形させる第3モードとの3モードが定義される。実施形態では、ユーザ画像データの縦横比Rを取得し、取得した縦横比Rに従い当該ユーザ画像データによるユーザオブジェクトに対して、上述した第1、第2および第3モードのうち何れを割り当てるかを決定する。
【0042】
図7を用いて、実施形態に係るユーザ画像データの縦横比Rについて説明する。図7に例示される矩形領域213は、上述したように、描画領域210内の絵212の部分(例えば画素の値が白以外の部分)を含み、底辺の方向が描画領域210の底辺の方向と平行な最小の領域である。縦横比Rは、この矩形領域213の縦の長さhと横の長さwとを用いて、下記の式(1)にて表す。式(1)によれば、矩形領域213は、縦横比Rの値が大きいほど縦長になることが分かる。
R=h/w …(1)
【0043】
なお、用紙200におけるマーカ2201および2203を結ぶ方向を矩形領域213の縦方向とし、マーカ2201および2202を結ぶ方向を矩形領域213の横方向とする。
【0044】
図8は、ステップS12のモード判定部134による変形モード判定処理の例を示すフローチャートである。モード判定部134は、ステップS20で、上述したようにしてユーザ画像データの縦横比Rを取得する。次のステップS21で、モード判定部134は、縦横比Rの値を判定する。実施形態では、縦横比Rが1未満の場合と、1以上且つ所定値s未満の場合と、所定値s以上の場合とのうち何れであるかを判定する。実施形態では、この縦横比Rに応じて、ユーザ画像データによるユーザオブジェクトに対して変形モードを割り当てる。
【0045】
モード判定部134は、ステップS21で縦横比Rが1未満であると判定した場合、処理をステップS22に移行させて、当該ユーザ画像データによるオブジェクトに対して第1モードを割り当てる。
【0046】
図9を用いて、実施形態に係る第1モードの動作について説明する。なお、図9と、後述する図10および図11において、矩形領域213は、説明のため、絵212部分に対して大きめに記されている。
【0047】
図9に例示するように、第1モードは、ユーザ画像データにおける矩形領域213の画像を縦方向に例えば中央部分を境界221として分割し、分割された一方(動作部分と呼ぶ)を連続的に、すなわち、時間の変化に伴い連続して動かし変形させるモードである。第1モードは、例えば一般的な魚の動きが想定されている。
【0048】
第1モードでは、動作部分は、境界221を中心に、所定の角度範囲内において前後に動くように定義される。すなわち、この矩形領域213が画像データ空間30内にあるときに、動作部分は、矩形領域213の当初の面と、境界221とに対して垂直な面内で、境界221を中心として所定角度範囲内で回転するように動作する。
【0049】
なお、第1モードの場合、動作部分は、進行方向に対して後ろ側であると、魚が泳いでいる状態に似た動きを表現でき好ましい。例えば、動作部分を進行方向の後ろ側にするためには、用紙200の描画領域210に対して手書きされる絵212の向きを予め指定しておくことが考えられる。これに限らず、例えば絵212に対して進行方向を示すマークを埋め込むことも考えられる。上述した図6の例では、目の部分を黒色で描き、他の部分には黒色を用いないようにする。絵212から黒色の部分を検出することで、絵212の向きを判定することが可能である。
【0050】
モード判定部134は、ステップS21で縦横比Rが1以上且つ所定値s未満であると判定した場合、処理をステップS23に移行させて、当該ユーザ画像データによるオブジェクトに対して第2モードを割り当てる。図10を用いて、実施形態に係る第2モードについて説明する。図10に例示するように、第2モードは、ユーザ画像データにおける矩形領域213の画像を縦方向に連続的に伸縮させて変形させる。画像の伸縮は、例えば所定の周期にて行う。第2モードでは、クラゲなど向きが曖昧で活発に運動しない生物の動きを想定している。
【0051】
なお、第2モードおよび後述する第3モードを判定するための条件である上述の所定値sは、画像を伸縮させた場合に自然に見えるような値、例えば、画像を縦方向に伸張した場合に縦長すぎず、縦方向に縮小した場合に扁平すぎない値を、実験的に求める。このような値としては、1.5など1以上2未満の値が考えられる。
【0052】
モード判定部134は、ステップS21で縦横比Rが所定値s以上であると判定した場合、処理をステップS24に移行させて、当該ユーザ画像データによるオブジェクトに対して第3モードを割り当てる。
【0053】
図11を用いて、実施形態に係る第3モードについて説明する。図11に例示するように、第3モードは、ユーザ画像データにおける矩形領域213の画像を横方向に例えば中央部分を境界224として分割し、分割された一方を動作部分として動かし変形させるモードである。第3モードは、イカやタコといった、一般的に縦長に表現されることが多い生物の動きを想定している。第3モードでは、動作部分は、境界224を上辺とすると共に、高さを一定とし、下辺が左右に連続的に移動される。すなわち、第3モードでは、動作部分は、矩形領域213の面内で、境界224を上辺とし高さを一定とした平行四辺形の形状を保って動作する。
【0054】
ステップS22~ステップS24の何れかにおいて変形モードが判定されると、処理が図5のステップS13に移行される。
【0055】
図5の説明に戻り、ステップS13で、PC10において、パラメータ生成部135は、ユーザ画像データによるユーザオブジェクトに対して、当該ユーザオブジェクトの画像データ空間30内での動作に関する性能(以下、動作性能と呼ぶ)を決定するパラメータpを生成、決定する。ユーザオブジェクトの画像データ空間30内での動作は、ここで生成、決定されたパラメータpに従い制御されることになる。
【0056】
ここで、実施形態で決定するパラメータpについて説明する。実施形態では、パラメータ生成部135は、ユーザオブジェクト毎に、下記の9種類の動作性能のパラメータp0~p8を決定する。
(1)p0:進行方向の最大速度vmax
(2)p1:進行方向の加速度a
(3)p2:水平方向の角加速度の最大値αhmax
(4)p3:垂直方向の角加速度の最大値αvmax
(5)p4:垂直方向の向きの変更速度の最大値(最大変更速度)vdmax
(6)p5:上方向角度の乱数幅の最大値(最大乱数幅)dRumax
(7)p6:下方向角度の最大乱数幅dRdmax
(8)p7:右方向角度の最大乱数幅dRrmax
(9)p8:左方向角度の最大乱数幅dRlmax
【0057】
これらのうち、パラメータp0およびp1の進行方向の最大速度vmaxおよび進行方向の加速度aは、ユーザオブジェクトの画像データ空間30内における進行方向の速度を制御するためのパラメータである。また、パラメータp2、p3の水平方向の角加速度の最大値αhmaxおよび垂直方向の角加速度の最大値αvmaxは、ユーザオブジェクトに対して水平方向および垂直方向の回転を与えるためのパラメータである。
【0058】
パラメータp4の垂直方向の向きの最大変更速度vdmaxは、ユーザオブジェクトの垂直方向の進行速度が変更される場合の、変更速度の最大値を与えるためのパラメータである。すなわち、実施形態では、ユーザオブジェクトが仮想水槽31の上端面(天井面)または下端面(床面)に接触した場合に進行方向の垂直成分を反転させ、ユーザオブジェクトの垂直方向に対する動きを、仮想水槽31内に制限する。パラメータp4は、この進行方向の垂直成分を反転させる際の、反転速度の最大値を与える。
【0059】
パラメータ5およびp6の、上下方向の最大乱数幅dRumaxおよびdRdmaxは、ユーザオブジェクトの垂直方向すなわち進行方向に対して上下方向の回転動作に対する角加速度の範囲を与えるためのパラメータである。パラメータ5およびp6で与えられる角加速度は、パラメータp3の、垂直方向の角加速度の最大値αvmaxにより制限される。
【0060】
パラメータ7およびp8の、右方向および左方向の最大乱数幅dRrmaxおよびdRlmaxは、ユーザオブジェクトの水平方向すなわち進行方向に対して左右方向の回転動作に対する角加速度の範囲を与えるためのパラメータである。
【0061】
図12は、ステップS13のパラメータ生成部135によるパラメータの生成、決定処理の例を示すフローチャートである。ステップS30で、パラメータ生成部135は、ユーザ画像データのパラメータp0~p8毎の特徴量c0~c8を抽出する。次のステップS31で、パラメータ生成部135は、各変形モードについて、パラメータp0~p8毎に、各変形モードすなわち第1、第2および第3モードに対する最大値m1~m3をそれぞれ取得する。そして、次のステップS32で、パラメータ生成部135は、ステップS30で抽出した特徴量c0~c8と、ステップS31で取得したパラメータp0~p8毎の最大値m1~m3とを用いて、ユーザ画像データによるユーザオブジェクトのパラメータp0~p8を決定する。
【0062】
図12のステップS30における、ユーザ画像データから特徴量c0~c8を求める方法について説明する。画像の特徴量は、ユーザ画像データにおける色分布やエッジ量などに基づき求めることが可能である。また、特開2009-101122号公報に記載されるように、ユーザ画像データを構成する各画素のビット情報に基づき特徴量を求めることもできる。実施形態では、この特開2009-101122号公報に記載の方法を用いて特徴量を求める。
【0063】
特開2009-101122号公報に記載される特徴量の取得方法について、概略的に説明する。パラメータ生成部135は、記憶部137に記憶されるユーザ画像データから所定ビット数毎にデータすなわち所定のビット列を繰り返し抽出する。パラメータ生成部135は、例えば、所定ビット数を8ビットとして、ユーザ画像データから、所定ビット数のビット列をユーザ画像データの終端まで順次繰り返して抽出する。以下、ユーザ画像データから抽出した所定ビット数のビット列を、抽出データと呼ぶ。
【0064】
パラメータ生成部135は、抽出データを、予め定められた分類規則に従って、上述したパラメータp0~p8毎に分類する。分類規則は、例えば、抽出データを各パラメータp0~p8に分類するため、各パラメータp0~p8に対応付けられたデータ範囲を示す。
【0065】
一例として、3種類のパラメータp0~p2に対応する特徴量c0~c2を生成する場合について説明する。この例では、8ビット単位でデータの抽出を行っていることから、2桁の16進数のデータ範囲「h00~hFF」(先頭の「h」は、後続する数値が16進表記であることを示す)において、データ範囲「h00~h6F」をパラメータp0、データ範囲「h70~h9F」をパラメータp1、データ範囲「hA0~hFF」をパラメータp2というように、3種類に分類するためのデータ範囲を分類規則として、記憶部137に記憶させる。
【0066】
パラメータ生成部135は、ユーザ画像データから抽出した抽出データを、分類規則として予め定められたデータ範囲に従って分類する。例えば、抽出データが2進数表記で値「b01101100」(先頭の「b」は、後続する数値が2進数表記であることを示す)の場合、8桁の2進数を2桁の16進数に変換すると「h6C」となる。よって、抽出データが値「b01101100」の場合は、データ範囲「h00~h6F」が割り当てられたパラメータp0に分類される。また、抽出した抽出データが値「b00110100」の場合、2桁の16進数に変換すると値「h34」となり、この値「b00110100」も、パラメータp0に分類される。
【0067】
また、パラメータ生成部135は、抽出データを分類するときに、分類するパラメータp0~p2毎の抽出データの抽出回数(抽出頻度)を算出する。例えば、上述の例によると、パラメータp0については、抽出データは、値「b01101100」および値「b00110100」の2回が抽出され、抽出回数が「2」となる。この抽出回数を、当該パラメータp0の特徴量c0として用いる。
【0068】
図12のステップS31では、パラメータ生成部135は、各パラメータp0~p8に対して変形モード毎に予め設定された最大値mを取得する。各パラメータp0~p8に対する変形モード毎の最大値mは、例えばストレージ114といった不揮発性の記憶媒体に予め記憶される。パラメータ生成部135は、ステップS31で、この不揮発性の記憶媒体から各最大値mを読み出し、取得する。
【0069】
図12のステップS32では、ステップS30で取得された各特徴量c0~c8と、ステップS31で取得された各最大値mとを用いて、各パラメータp0~p8を決定する。図13は、実施形態に係る、各特徴量c0~c8と各最大値mとを用いた各パラメータp0~p8の決定方法の例を示す。なお、図13では、説明のため、パラメータp0~p8について、パラメータp0~p2に絞って示している。
【0070】
例えば、図13において、最大値mxyについて、添字「x」が各パラメータp0~p8をそれぞれ示し、添字「y」が第1~第3モードを示すものとする。すなわち、パラメータp0に対して、第1~第3モード毎に最大値m01、m02およびm03が予め設定される。同様に、パラメータp1に対して、第1~第3モード毎に最大値m11、m12およびm13が予め設定される。ここで、最大値mxyは、0を超え、且つ、1以下の値とする。
【0071】
図13に示されるように、実施形態では、各パラメータp0~p8を、特徴量c0~c8に対して、第1~第3モードおよび各パラメータp0~p8毎の最大値mxyを乗ずることで決定する。すなわち、進行方向の最高速度を与えるパラメータp0は、第1モードではp0=m01×c0、第2モードではp0=m02×c0、第3モードではp0=m03×c0として決定される。同様に、進行方向の加速度を与えるパラメータp1は、第1モードではp1=m11×c1、第2モードではp1=m12×c1、第3モードではp1=m13×c1として決定される。パラメータp2についても同様である。
【0072】
パラメータ生成部135は、このようにして決定した各パラメータp0~p8を、記憶部137に対して記憶する。
【0073】
図5のフローチャートの説明に戻り、ステップS13でパラメータ生成部135により各パラメータp0~p8が決定されると、処理がステップS14に移行される。ステップS14では、画像制御部136により、ユーザ画像データに対して半透明領域が設定される。例えば、画像制御部136は、ユーザ画像データを含む矩形領域213において、図6を用いて説明したようにして入力部130により抽出された絵212の部分の内側領域および外側領域を検出する。画像制御部136は、検出された内側領域において、白色の画素を、半透明に設定する。また、画像制御部136は、検出された外側領域を透明に設定する。画像データに対する透明および半透明の設定は、既知のアルファブレンディングの技術を用いて実現することができる。
【0074】
このように、ユーザ画像データの絵212の部分に対して半透明領域を設定することで、仮想水槽31内において、当該ユーザ画像データによるユーザオブジェクトの見え方を、水中の生物により近くすることができる。
【0075】
次に、ステップS15で、画像制御部136は、ユーザ画像データによるユーザオブジェクトに対して、当該ユーザオブジェクトが仮想水槽31内に最初に表示される際の初期座標が設定される。なお、以下では、特に記載のない限り、ユーザオブジェクトが仮想水槽31内に最初に表示されることを、「登場する」と記述する。
【0076】
ここで、実施形態に係る、画像取得部131による画像データ空間30の投影について、図14を用いて説明する。3次元の座標軸を持つ画像データ空間30をディスプレイやスクリーンに表示する場合には、画像データ空間30を所定の視点から2次元の平面に投影する必要がある。実施形態では、各ユーザオブジェクトの動きが画像データ空間30における仮想水槽31内に制限されるため、仮想水槽31が投影の対象となる。
【0077】
図14(a)において、上下方向が画像データ空間30の奥行きの方向を示し、左右方向が画像データ空間30の幅の方向を示しているものとする。実施形態では、画像取得部131は、図14(a)に示されるように、仮想水槽31外の視点231から視野角θで仮想水槽31の奥行き方向を見た場合の、高さHおよび幅Wがなす面に、仮想水槽31を投影する。さらに、実施形態では、投影を透視投影を用いて行い、視点231の位置および視野角θを、仮想水槽31において、視点231に対して死角となる、左側の死角領域2401と右側の死角領域2402とのうち少なくとも一方が形成されるように設定する。
【0078】
例えば、視点231に対して左右に死角領域2401および2402が形成される場合、図14(b)に例示されるように、仮想水槽31の高さH、幅Wによる面のうち、死角領域2401および2402を除いた幅WVの範囲内の面が投影されることになる。すなわち、仮想水槽31において、死角領域2401および2402の部分は、画像データとしては存在するが、2次元平面に投影した投影画像上(表示領域上)には表示されない部分である。すなわち、死角領域2401および240内の画像は、仮想水槽31が2次元平面に投影された画像では見ることができない。
【0079】
実施形態では、画像制御部136は、ユーザオブジェクトが仮想水槽31内に登場する際の初期座標を、死角領域2401および240のうち何れかの内部に設定する。死角領域2401または240内に初期座標が設定されたユーザオブジェクトは、画像制御部136による制御により、死角領域2401または240内から、幅WVの領域に進行することになる。したがって、新たに作成されたユーザオブジェクトは、投影画像の端(左右何れかの端)から徐々に姿を登場させるような動きに見えるため、新たに作成されたユーザオブジェクトが投影画像内の何も表示されていない部分に突然登場するといった、違和感を避けることができる。
【0080】
また、投影に透視投影を用いる場合には、ユーザオブジェクトは、仮想水槽31の手前側で最も大きい画像として投影され、奥行方向に進むに従いより小さい画像として投影されることになる。死角領域2401および240は、奥行の手前側に形成されるため、新たに作成されたユーザオブジェクトがより大きい画像として投影され、より注目され易くなる。
【0081】
次のステップS16で、画像制御部136は、ステップS15で初期座標が設定されたユーザオブジェクトに対して動きを与え、ユーザオブジェクトの動作を開始させる。
【0082】
PC10は、次のステップS17で、次の原稿画像の読み取りが行われるか否かを判定し、読み取りが行われると判定した場合に、処理をステップS10に戻す。一方、PC10は、読み取りが行われないと判定した場合には、図5のフローチャートによる一連の処理を終了させる。読み取りが行われない旨は、例えば、最後の読み取りが行われてから所定時間が経過した、スキャナ装置20のPC10に対する接続が解除された、などにより判定することが考えられる。
【0083】
次に、上述したステップS16における、画像制御部136によるユーザオブジェクトに対する動作の制御について説明する。図15は、実施形態に係る画像制御部136による、あるユーザオブジェクト(対象ユーザオブジェクト)に対する動作の制御の一例を示すフローチャートである。画像制御部136は、対象ユーザオブジェクトに対して設定された第1~第3モードの何れかの変形モードに従い、当該対象ユーザオブジェクトを変形させながら、下記のステップS40~ステップS52に従った動作制御を行う。
【0084】
ステップS40で、画像制御部136は、パラメータp0に基づき、対象ユーザオブジェクトの進行方向の速度vが進行方向の最大速度vmaxを超えたか否かを判定する。画像制御部136は、速度vが最大速度vmaxを超えたと判定した場合、処理をステップS42に移行させる。また、画像制御部136は、速度vが最大速度vmaxを超えていないと判定した場合、処理をステップS41に移行させ、パラメータp1に基づき、対象ユーザオブジェクトの進行方向の速度vを、進行方向の加速度α分、増加させる。そして、処理をステップS42に移行させる。
【0085】
ステップS42で、画像制御部136は、パラメータp2に基づき、水平方向の角加速度αhが最大値αhmaxを超えたか否かを判定する。画像制御部136は、角加速度αhが最大値αhmaxを超えたと判定した場合、処理をステップS44に移行させる。
【0086】
また、画像制御部136は、角加速度αhが最大値αhmaxを超えていないと判定した場合、処理をステップS43に移行させる。画像制御部136は、ステップS43で、対象ユーザオブジェクトの水平方向の角加速度αhを増減させ、水平方向の向きの変更速度を変化させる。
【0087】
このとき、画像制御部136は、パラメータp7およびp8に基づき、右方向角度の最大乱数幅dRrmaxと、左方向角度の最大乱数幅dRlmaxとの間で乱数を発生させ、発生させた乱数に基づき角加速度αhを増減させる。水平方向の角加速度αhの増減分に従い、対象ユーザオブジェクトの水平方向の向きの変更速度が増減される。水平方向の向きの変更速度が変化されると、処理がステップS44に移行される。
【0088】
ステップS44で、画像制御部136は、パラメータp3に基づき、垂直方向の角加速度αvが最大値αvmaxを超えたか否かを判定する。画像制御部136は、角加速度αvが最大値αvmaxを超えたと判定した場合、処理をステップS46に移行させる。
【0089】
また、画像制御部136は、角加速度αvが最大値αvmaxを超えていないと判定した場合、処理をステップS45に移行させる。画像制御部136は、ステップS45で、対象ユーザオブジェクトの垂直方向の角加速度αvを増減させ、垂直方向の向きの変更速度を変化させる。
【0090】
このとき、画像制御部136は、パラメータp5およびp6に基づき、上方向角度の最大乱数幅dRumaxと、下方向角度の最大乱数幅dRdmaxとの間で乱数を発生させ、発生させた乱数に基づき角加速度αvを増減させる。垂直方向の角加速度αvの増減分に従い、対象ユーザオブジェクトの垂直方向の向きの変更速度が増減される。垂直方向の向きの変更速度が変化されると、処理がステップS46に移行される。
【0091】
ステップS46で、画像制御部136は、対象ユーザオブジェクトが仮想水槽31の上下の壁(天井面または床面)に接触したか否かを判定する。画像制御部136は、対象ユーザオブジェクトが仮想水槽31の上下の壁に接触していないと判定した場合、処理をステップS48に移行させる。
【0092】
また、画像制御部136は、対象ユーザオブジェクトが仮想水槽31の上下の壁に接触したと判定した場合、処理をステップS47に移行させる。画像制御部136は、ステップS47で、対象ユーザオブジェクトの垂直方向の向きの変更速度を反転させると共に、進行方向の速度vを低下させる。なお、垂直方向の向きの変更速度の反転は、進行方向の水平方向成分の向きは維持し、垂直方向成分の向きを反転させることで行う。そして、処理がステップS48に移行される。
【0093】
ステップS48で、画像制御部136は、対象ユーザオブジェクトが仮想水槽31の前後左右の壁に接触したか否かを判定する。画像制御部136は、対象ユーザオブジェクトが仮想水槽31の前後左右の壁に接触していないと判定した場合、処理をステップS50に移行させる。
【0094】
また、画像制御部136は、対象ユーザオブジェクトが仮想水槽31の前後左右の壁に接触したと判定した場合、処理をステップS49に移行させる。画像制御部136は、ステップS49で、対象ユーザオブジェクトの水平方向の向きの変更速度を増加させると共に、進行方向の速度vを低下させる。ここでは、画像制御部136は、対象ユーザオブジェクトの進行方向の向きの変更速度を10倍に増加させるものとする。そして、処理がステップS50に移行される。
【0095】
ステップS50で、画像制御部136は、対象ユーザオブジェクトの垂直方向の向きの変更速度に応じて、対象ユーザオブジェクトの垂直方向の向きを変える。次のステップS51で、画像制御部136は、対象ユーザオブジェクトの水平方向の向きの変更速度に応じて、対象ユーザオブジェクトの水平方向の向きを変える。さらに、次のステップS52で、画像制御部136は、進行方向の速度vに応じて、対象ユーザオブジェクトの位置(座標)を変更する。そして、画像制御部136は、仮想水槽31を2次元の画像データ平面に投影し、当該2次元の画像データ平面の画像を更新する。
【0096】
画像制御部136は、ステップS52の処理が終了すると、処理をステップS40に戻す。画像制御部136は、上述のステップS40~ステップS52の処理を、例えばフレーム周期といった所定間隔で繰り返す。
【0097】
以上の処理より、画像制御部136は、対象ユーザオブジェクトの水平方向および垂直方向の動きに揺らぎを与えることができ、対象ユーザオブジェクトが仮想水槽31の壁面に接触した際に、連続的な動作を与えることができる。これにより、実施形態では、ユーザオブジェクトに対してより水中の生物らしい動作をさせることができ、また、ユーザオブジェクトは、殆どの場合、幅Wvによる画面内に表示される。
【0098】
なお、上述では、実施形態による表示システム1が、仮想水槽31を2次元の平面に投影する際に、投影される画像を複数に分割した画像131、132、133を複数のプロジェクタ装置111、112、113によりスクリーン12に対してそれぞれ投射するようにしているが、これはこの例に限定されない。例えば、投影画像を分割せずに、1の画像として1のプロジェクタ装置11によりスクリーン12に投射してもよい。
【0099】
また、上述では、3次元の画像データ空間内をユーザオブジェクトが移動する様子を2次元の画像データ平面に投影(表示)するようにしたが、本実施形態の適用は、必ずしも3次元の画像データ空間領域に限定されるものではない。例えば、ユーザオブジェクトが2次元の画像データ平面内を移動するようにしてもよい。ここで、水槽の中を泳ぐ生物らしい動作を表現するには、2次元的な動きよりも3次元的な動きを用いた方がより現実的な表現が可能であるため、3次元の画像データ空間領域を利用する方が好適であるといえる。
【0100】
さらに、上述では、ユーザオブジェクトが魚など水中に棲息する生物を表す画像に基づくものとしたが、これはこの例に限定されない。例えば、ユーザオブジェクトは、昆虫や植物などの画像に基づくものでもよい。
【0101】
さらにまた、上述では、ユーザがマーカーペン等を用いて用紙に手書きして絵を作成する方法で説明したが、ユーザによる絵の作成方法は、この例に限定されない。例えば、ユーザによる手書きの絵は、マーカーペンと用紙を利用する代わりに、電子ペンとタブレット端末や、あるいは指(すなわち指による接触操作)とタブレット端末等を利用して作成してもよい。つまり、手書きの描画とは、ユーザにとって紙とペンを用いて描画を行うときと同等の操作感あるいは操作方法で描画が行えるような作成方法であればよく、どのような媒体を利用するかに限定されない。
【0102】
(実施形態の第1の変形例)
実施形態の第1の変形例について説明する。上述した実施形態では、プロジェクタ装置11は、仮想水槽31の2次元への投影画像を、単純な平板のスクリーン12に投射しているが、これはこの例に限定されない。例えば、図16に例示されるように、例えば実際に魚などが泳いでいる水槽300の全面に半透明のスクリーン301を設け、プロジェクタ装置11により、仮想水槽31の2次元への投影画像をこのスクリーン301に投射させることができる。スクリーン301上で、スクリーン301に投射されるユーザオブジェクトによる画像と、半透明のスクリーン301を介して見える水槽300内の魚の像とが合成され、よりリアリティのある画面を楽しめる。
【0103】
(実施形態の第2の変形例)
実施形態の第2の変形例について説明する。スクリーン12は、投射面が平面であるものに限られず、投射面が立体的な形状を持つものでもよい。例えば、図17に例示されるように、半球状の形状を持つスクリーン310を用いてもよい。プロジェクタ装置11により、仮想水槽31の2次元への投影画像を、このスクリーン310の半球状の部分に投射させることで、仮想水槽31内部の画像のより立体的な表現を得ることができる。この場合、ユーザは、例えば水中に設けられた窓から水中を覗き込んでいるような体験を得ることができ、さらに、恰もユーザ自身が作成した絵22による魚などが水中を泳いでいるような情景を観察できる。
【0104】
(実施形態の第3の変形例)
実施形態の第3の変形例について説明する。スクリーン12は、形状が固定的のものに限られない。例えば、図18に例示されるように、吊るした布によりスクリーン320を構成してもよい。このとき、スクリーン320は、下端側を開放して風や振動などで容易に揺動可能とすると好ましい。プロジェクタ装置11により、仮想水槽31の投影画像を、このスクリーン320に投射させた場合に、スクリーン320が揺動することで、水中の様子により近い画像を得ることができる。また、プロジェクタ装置11によりスクリーン320の裏面側から投射する場合、間に人が入ることで、影絵と魚の絵によるユーザオブジェクトとを一緒に表示でき、より遊びの要素を高めることができる。
【0105】
(実施形態の第4の変形例)
実施形態の第4の変形例について説明する。実施形態の第4の変形例では、仮想水槽31に対して背景画像を追加する。例えば、ユーザオブジェクトとは別個に距離情報(座標情報)を持ったオブジェクト(背景オブジェクトと呼ぶ)を、仮想水槽31内に配置する。また、仮想水槽31の奥行Dの位置に、高さおよび幅がなす面に平行に1枚の画像による背景オブジェクトを配置することもできる。背景オブジェクトは、固定的としてもよいし、所定のタイミングで変更してもよい。例えば、朝、昼、夜といった1日のうちの時間帯で背景オブジェクトを変更することが考えられる。これに限らず、春夏秋冬といった季節や、年間の行事といった、より長い間隔で背景オブジェクトを変更することも考えられる。これらの場合、背景オブジェクトを、変更する時間帯や季節、行事などに応じた内容とするとよい。これにより、ユーザは、時間帯や季節、行事などに応じて様々な情景を楽しむことができる。
【0106】
(実施形態の第5の変形例)
実施形態の第5の変形例について説明する。実施形態の第5の変形例では、仮想水槽31内のユーザオブジェクトに対して、ユーザからアクションを起こすことができるようにしている。実施形態の例では、ユーザオブジェクトとして水中に棲息する生物が想定されているので、この生物に対して餌を与えるアクションが考えられる。より具体的には、ユーザは、原稿21に対して餌を表す絵22を描画する。このとき、絵22が餌を表すことを示す情報を、原稿21に追加する。例えば、図6に示したマーカ2201~2203の少なくとも1に、餌であることを識別する情報を埋め込むことが考えられる。PC10は、餌の絵22が描画された原稿21の画像がスキャナ装置20で読み取られた原稿画像に基づき、餌の絵22によるオブジェクト(餌オブジェクトと呼ぶ)を生成し、仮想水槽31内に追加する。
【0107】
このとき、PC10は、餌オブジェクトの初期座標として、仮想水槽31の上側の壁(天井面)、すなわち、高さHにおける幅Wおよび奥行Dがなす面内の任意の座標を与える。これに限らず、画像データ空間30内の、仮想水槽31の天井面よりさらに上方の座標を与えてもよい。また、PC10は、餌オブジェクトの動作として、餌オブジェクトの初期座標から画像データ空間30における鉛直方向に所定速度で移動(落下)する動作を設定する。餌オブジェクトに対して、移動中に水の抵抗で揺動する動作をさらに与えてもよい。
【0108】
このような餌の動作制御は、用紙から読み取った原稿画像から、手書き描画された絵による画像が餌オブジェクトかユーザオブジェクトかを識別し、餌オブジェクトであった場合と、ユーザオブジェクトであった場合とで、パラメータp0~p8の設定方法を制御すればよい。つまり、餌オブジェクトであれば、落下動作用の所定のパラメータp0~p8を設定し、ユーザオブジェクトであれば上述したモード判定および特徴量を利用してパラメータp0~p8を設定するように制御すればよい。
【0109】
さらに、PC10は、仮想水槽31内の各ユーザオブジェクトに対して、餌オブジェクトに応じた動作を設定する。例えば、PC10は、ユーザオブジェクトに対して、餌オブジェクトに対する距離に応じて餌オブジェクトに近付く動作を設定することが考えられる。すなわち、餌オブジェクトに近いユーザオブジェクトほど、速く餌オブジェクトに近付くようにする。また、PC10は、ユーザオブジェクトが餌オブジェクトに接触した場合に、当該餌オブジェクトを仮想水槽31内から削除することができる。これにより、ユーザオブジェクトが表す例えば魚が餌を捕食した様子を表現できる。
【0110】
このような動作制御は、例えば、PC10が、オブジェクト毎に餌オブジェクトかユーザオブジェクトかを識別する識別情報を対応付けて全オブジェクトを管理し、各餌オブジェクトの座標と各ユーザオブジェクトとの座標から距離を算出する。そして、算出された距離が閾値以下であるか否かを判定し、閾値以下であると判定した場合に、該当するユーザオブジェクトの進行方向の速度に関するパラメータ(例えばパラメータp0およびp1)を増加させることで実現できる。
【0111】
また、PC10は、判定の結果に応じて速度に関するパラメータを増加させたユーザオブジェクトについては、その旨を示すフラグを立ててオブジェクトを管理し、フラグが立っているユーザオブジェクトと餌オブジェクトとの間の距離が閾値以上または0であると判定した場合に、進行方向の速度に関するパラメータ(例えばパラメータp0およびp1)を低下させるようにしてもよい。ここで、餌オブジェクトが削除された場合に、ユーザオブジェクトと餌オブジェクトとの間の距離が0になるものとする。
【0112】
これにより、例えば、フラグが立っているユーザオブジェクトと餌オブジェクトとの間の距離が閾値以上になった場合に、当該ユーザオブジェクトの進行方向の速度を低下させることで、餌オブジェクトから離れたユーザオブジェクトによる生物が落ち着く様子を表現できる。また例えば、フラグが立っているユーザオブジェクトと餌オブジェクトとの間の距離が0になった場合にユーザオブジェクトによる生物の進行方向の速度を低下させることで、当該生物が餌が無くなったために餌の捕食を諦める様子を表現できる。
【0113】
さらに、PC10は、餌オブジェクトに接触前と接触後とで、ユーザオブジェクトの動作を変更することができる。例えば、ユーザオブジェクトの進行方向の速度を餌オブジェクトの接触後に増加させる、ユーザオブジェクトの進行方向を餌オブジェクトの接触後に変更させるなどが考えられる。また例えば、ユーザオブジェクトの大きさを、餌オブジェクトの接触後に大きくさせることも考えられる。
【0114】
このように、実施形態の第5の変形例によれば、ユーザのアクションに応じて仮想水槽31内の各ユーザオブジェクトの動作が変化するので、遊びの要素をより高めることができる。
【0115】
(実施形態の第6の変形例)
実施形態の第6の変形例について説明する。実施形態の第6の変形例では、PC10は、仮想水槽31内に、ユーザにより原稿21に描画された絵22に基づき、レイアウト用のオブジェクトを配置する。より具体的には、ユーザは、原稿21に対して、置石や海藻など、レイアウト用のオブジェクトを表す絵22を描画する。このとき、絵22がレイアウト用のオブジェクトを表すことを示す情報を、原稿21に追加する。PC10は、レイアウト用のオブジェクトの絵22が描画された原稿21の画像がスキャナ装置20で読み取られた原稿画像に基づき、レイアウト用のオブジェクトの絵22によるオブジェクト(レイアウトオブジェクトと呼ぶ)を生成し、仮想水槽31内に追加する。
【0116】
このとき、PC10は、レイアウトオブジェクトの初期座標として、例えば仮想水槽31の下側の壁(床面)、すなわち、高さ0における幅Wおよび奥行Dがなす面内の任意の座標を与える。また、PC10は、レイアウトオブジェクトに対して位置を変更する動作を設定しない。すなわち、レイアウトオブジェクトは、仮想水槽31内で位置が固定的とされる。なお、レイアウトオブジェクトに対して、上述した変形モードの第2モードのように、垂直方向に伸縮する動きを設定してもよい。
【0117】
上記実施形態および各変形例による画像の表示は、2次元表示であっても3次元表示であってもよい。図19は、2次元の画像を表示する場合の画面例を示す図である。上述のように、ユーザオブジェクトが移動する空間(仮想水槽31)は3次元の画像データ空間である。図19の左は、仮想水槽31を上方から観察した場合の図である。このような仮想水槽31の画像を視点231(カメラ位置)から高さHおよび幅Wがなす面に投影した場合の画像を、ディスプレイやスクリーンに表示することにより、2次元の画像が表示される(図19の右)。手前のユーザオブジェクトは大きく表示され、奥のユーザオブジェクトは小さく表示されることで、ディスプレイなどの2次元の表示装置への表示でありながら立体感のある表示が可能となる。
【0118】
図20は、3次元の画像を表示する場合の画面例を示す図である。例えば画像制御部136は、まず視点231を左右すなわち幅W方向に一定距離(d)ずらした視点231aおよび231bそれぞれから仮想水槽31を高さHおよび幅Wがなす面に投影した2つの画像を生成する(図20の左)。2つの画像は、それぞれ左右の目で仮想水槽31を観察した場合の画像に相当する。なお、この場合、各視点231aおよび231bそれぞれについて、左右の死角領域2401および2402が形成される。画像制御部136は、2つの画像の幅をそれぞれ半分にして横に並べる(図20の中央)。画像制御部136は、並べた2つの画像を、例えばサイドバイサイド方式で3D投影可能なプロジェクタ等の表示装置に出力する(図20の右)。図20の右に示すように、出力される画像は、各ユーザオブジェクトがずれて重なったように観察される。手前側に存在するユーザオブジェクトほど、ずれが大きい。ユーザは、例えば3D対応メガネを介して画像を観察することにより、奥行きのある立体視が可能となる。
【0119】
図20の3次元表示方法は一例でありこれに限られるものではない。例えば、3Dメガネを用いずに3次元画像が観察できる裸眼3D表示方法を適用してもよい。
【0120】
なお、上述の実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。
【符号の説明】
【0121】
1 表示システム
10 PC
11,111,112,113 プロジェクタ装置
12,301,310,320 スクリーン
20 スキャナ装置
21 原稿
22,212 絵
30 画像データ空間
31 仮想水槽
401,402,403,404,405 ユーザオブジェクト
110 CPU
111 ROM
112 RAM
114 ストレージ
130 入力部
131 画像取得部
132 3D空間生成部
133 領域設定部
134 モード判定部
135 パラメータ生成部
136 画像制御部
137 記憶部
200 用紙
210 描画領域
211 タイトル記入領域
213 矩形領域
2201,2202,2203 マーカ
231 視点
2401,2402 死角領域
【先行技術文献】
【特許文献】
【0122】
【文献】特許第4161325号公報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20