(57)【要約】【課題】一般のユーザが手書きにより作成したユーザ画像を、より自然な動きで表示可能とする画像表示技術を向上させる。【解決手段】ＰＣにおいて、入力ステップにより、手書きの描画による描画部分を含むユーザ画像が入力される。ＰＣは、画像処理ステップにより、ユーザ画像を表示するための予め定められた表示領域に対して、入力ステップにより入力したユーザ画像を表示領域の左端および右端の何れかから登場させ、登場した該ユーザ画像を移動させる。【選択図】図５
2014238811.tif 000002
【特許請求の範囲】
【請求項１】
画像を表示する表示制御方法をコンピュータに実行させるための表示制御プログラムであって、
前記表示制御方法は、
手書きの描画による描画部分を含むユーザ画像を入力する入力ステップと、
前記ユーザ画像を表示するための予め定められた表示領域に対して、入力した前記ユーザ画像を該表示領域の左端および右端の何れかから登場させ、登場した該ユーザ画像を移動させる画像制御ステップと
を有する
ことを特徴とする表示制御プログラム。
【請求項２】
３次元の座標系からなるデータ空間に対し、それぞれ予め定められた幅、高さおよび奥行による定義領域を設定する領域設定ステップと、
前記定義領域内の画像を、前記定義領域外の前記幅および前記高さがなす面に対向する視点から、前記幅および前記高さのうち少なくとも一方の一部を含まない視野角により取得する画像取得ステップと
をさらに有し、
前記画像制御ステップは、
前記入力ステップにより入力された前記ユーザ画像に対して、前記定義領域内の、前記視野角において死角になる死角領域に含まれる座標を初期座標として与え、前記定義領域内の座標を時間の経過に伴い連続して変化させ、該座標に応じた該ユーザ画像を前記表示領域に表示させることで、入力した前記ユーザ画像を前記表示領域の左端および右端の何れかから登場させ、登場した該ユーザ画像を移動させる
ことを特徴とする請求項１に記載の表示制御プログラム。
【請求項３】
前記画像制御ステップは、
前記ユーザ画像が前記定義領域の境界に接した場合に、該ユーザ画像の動作を変更する
ことを特徴とする請求項２に記載の表示制御プログラム。
【請求項４】
前記画像制御ステップは、
前記ユーザ画像が前記定義領域の幅方向または奥行方向の境界に接した場合に、該ユーザ画像の前記定義領域の幅および奥行からなる面方向の向きの変更速度を増加させると共に進行方向の速度を低下させ、
前記ユーザ画像が前記定義領域の高さ方向の境界に接した場合に、該ユーザ画像の前記定義領域の高さの軸を含む面方向の向きの変更速度を反転させると共に進行方向の速度を低下させる
ことを特徴とする請求項２または請求項３に記載の表示制御プログラム。
【請求項５】
前記ユーザ画像を時間の変化に伴い連続して変形させるモードを、該ユーザ画像の形状に応じて判定する判定ステップをさらに有する
ことを特徴とする請求項１乃至請求項４の何れか１項に記載の表示制御プログラム。
【請求項６】
前記判定ステップは、
前記ユーザ画像の縦方向のサイズに対する横方向のサイズの比に応じて、前記モードを、
該ユーザ画像を縦方向に分割した際の一方を、該ユーザ画像の面に対して前後に変形させる第１モードと判定し、
該ユーザ画像を縦方向に伸縮させて変形させる第２モードと判定し、
該ユーザ画像を横方向に分割した際の一方を、該ユーザ画面の面に対して平行に変形させる第３モードと判定する
ことを特徴とする請求項５に記載の表示制御プログラム。
【請求項７】
前記ユーザ画像の動作性能を決定する１以上のパラメータを生成するパラメータ生成ステップをさらに有し、
前記パラメータ生成ステップは、
前記ユーザ画像から前記１以上のパラメータにそれぞれ対応する１以上の特徴量をそれぞれ抽出し、抽出した該１以上の特徴量と、前記判定ステップにより該ユーザ画像について判定された前記モードとに従い、該ユーザ画像の前記１以上のパラメータを生成する
ことを特徴とする請求項５または請求項６に記載の表示制御プログラム。
【請求項８】
手書きの描画による描画部分を含むユーザ画像を入力する入力ステップと、
前記ユーザ画像を表示するための予め定められた表示領域に対して、入力した前記ユーザ画像を該表示領域の左端および右端の何れかから登場させ、登場した該ユーザ画像を移動させる画像制御ステップと
を有することを特徴とする表示制御方法。
【請求項９】
３次元の座標系からなるデータ空間に対し、それぞれ予め定められた幅、高さおよび奥行による定義領域を設定する領域設定ステップと、
前記定義領域内の画像を、前記定義領域外の前記幅および前記高さがなす面に対向する視点から、前記幅および前記高さのうち少なくとも一方の一部を含まない視野角により取得する画像取得ステップと
をさらに有し、
前記画像制御ステップは、
前記入力ステップにより入力された前記ユーザ画像に対して、前記定義領域内の、前記視野角において死角になる死角領域に含まれる座標を初期座標として与え、前記定義領域内の座標を時間の経過に伴い連続して変化させ、該座標に応じた該ユーザ画像を前記表示領域に表示させることで、入力した前記ユーザ画像を前記表示領域の左端および右端の何れかから登場させ、登場した該ユーザ画像を移動させる
ことを特徴とする請求項８に記載の表示制御方法。
【請求項１０】
手書きの描画による描画部分を含むユーザ画像を入力する入力部と、
前記ユーザ画像を表示するための予め定められた表示領域に対して、入力した前記ユーザ画像を該表示領域の左端および右端の何れかから登場させ、登場した該ユーザ画像を移動させる画像制御部と
を有することを特徴とする表示制御装置。
【請求項１１】
３次元の座標系からなるデータ空間に対し、それぞれ予め定められた幅、高さおよび奥行による定義領域を設定する領域設定部と、
前記定義領域内の画像を、前記定義領域外の前記幅および前記高さがなす面に対向する視点から、前記幅および前記高さのうち少なくとも一方の一部を含まない視野角により取得する画像取得部と
をさらに有し、
前記画像制御部は、
前記入力部により入力された前記ユーザ画像に対して、前記定義領域内の、前記視野角において死角になる死角領域に含まれる座標を初期座標として与え、前記定義領域内の座標を時間の経過に伴い連続して変化させ、該座標に応じた該ユーザ画像を前記表示領域に表示させることで、入力した前記ユーザ画像を前記表示領域の左端および右端の何れかから登場させ、登場した該ユーザ画像を移動させる
ことを特徴とする請求項１０に記載の表示制御装置。
【請求項１２】
画像入力装置と、画像処理装置と、１以上の表示装置とを含む表示システムであって、
前記画像入力装置は、
手書きの画像による描画部分を含む画像を入力する画像入力部を有し、
前記表示装置は、
画像を表示する表示部を有し、
前記画像処理装置は、
前記画像入力装置に入力された画像から前記手書きの画像による描画部分を含むユーザ画像を入力する入力部と、
前記ユーザ画像を表示するための予め定められた表示領域に対して、入力した前記ユーザ画像を該表示領域の左端および右端の何れかから登場させ、登場した該ユーザ画像を移動させる画像制御部と
を有する
ことを特徴とする表示システム。
【請求項１３】
前記画像処理装置は、
３次元の座標系からなるデータ空間に対し、それぞれ予め定められた幅、高さおよび奥行による定義領域を設定する領域設定部と、
前記定義領域内の画像を、前記定義領域外の前記幅および前記高さがなす面に対向する視点から、前記幅および前記高さのうち少なくとも一方の一部を含まない視野角により取得する画像取得部と
をさらに有し、
前記画像制御部は、
前記入力ステップにより入力された前記ユーザ画像に対して、前記定義領域内の、前記視野角において死角になる死角領域に含まれる座標を初期座標として与え、前記定義領域内の座標を時間の経過に伴い連続して変化させ、該座標に応じた該ユーザ画像を前記表示領域に表示させることで、入力した前記ユーザ画像を前記表示領域の左端および右端の何れかから登場させ、登場した該ユーザ画像を移動させる
ことを特徴とする請求項１２に記載の表示システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を表示させるために用いて好適な表示制御プログラム、表示制御方法および表示制御装置、ならびに、表示システムに関する。
【背景技術】
【０００２】
近年では、コンピュータ装置の性能向上により、３次元の座標を用いたコンピュータ・グラフィクス（以下、３ＤＣＧと略称する）による画像を容易に表示可能となっている。また、３ＤＣＧでは、３次元の座標空間内に配置される各オブジェクトに対してそれぞれ規則的またはランダムな動きを設定し、動画像として表示させることも広く行われている。このような動画像では、３次元の座標空間内で、各オブジェクトが恰もそれぞれ独立して動いているかのような表現が可能である。
【０００３】
また、特許文献１には、３ＤＣＧによる画像に対して、アニメ製作者が手書きにより作成した画像に動きを与え、予め用意された背景画像と合成して表示させるようにした技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、一般のユーザが手書きにより作成したユーザ画像を、より自然な動きで３ＤＣＧによる画像内に容易に表示させる技術が求められている。特許文献１の技術では、画像に加える動きは、アニメ製作者の手に委ねられており、画像の自然な動きを実現させるためには、ある程度の熟練が必要であった。したがって、一般のユーザが手書きにより作成したユーザ画像を対象とした場合に、より自然な動きに画像内にユーザ画像を表示させるような画像処理の技術は、従来では、十分なものではなかった。
【０００５】
本発明は、上記に鑑みてなされたものであって、一般のユーザが手書きにより作成したユーザ画像を、より自然な動きで表示可能とする画像処理技術の向上を目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、画像を表示する表示制御方法をコンピュータに実行させるための表示制御プログラムであって、表示制御方法は、手書きの描画による描画部分を含むユーザ画像を入力する入力ステップと、ユーザ画像を表示するための予め定められた表示領域に対して、入力したユーザ画像を表示領域の左端および右端の何れかから登場させ、登場したユーザ画像を移動させる画像制御ステップとを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、一般のユーザが手書きにより作成したユーザ画像を、より自然な動きで表示可能となる画像処理技術が向上するという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態に係る表示システムの一例の構成を示すブロック図である。
【図２】図２は、実施形態に係る、３次元の座標系を持つ画像データ空間について概略的に示す図である。
【図３】図３は、実施形態に適用可能なＰＣの一例の構成を示すブロック図である。
【図４】図４は、実施形態に係るＰＣの機能を説明するための一例の機能ブロック図である。
【図５】図５は、実施形態による表示制御処理の全体的な流れを示す一例のフローチャートである。
【図６】図６は、実施形態に係る、手書き描画を行うための用紙の例を示す図である。
【図７】図７は、実施形態に係るユーザ画像データの縦横比Ｒについて説明するための図である。
【図８】図８は、実施形態に係るモード判定部による変形モード判定処理の例を示すフローチャートである。
【図９】図９は、実施形態に係る第１モードの動作について説明するための図である。
【図１０】図１０は、実施形態に係る第２モードの動作について説明するための図である。
【図１１】図１１は、実施形態に係る第３モードの動作について説明するための図である。
【図１２】図１２は、実施形態に係るパラメータ生成部によるパラメータの生成、決定処理の例を示すフローチャートである。
【図１３】図１３は、実施形態に係る、各特徴量ｃと各最大値ｍとを用いた各パラメータｐの決定方法の例を示すための図である。
【図１４】図１４は、実施形態に係る画像データ空間の投影について説明するための図である。
【図１５】図１５は、実施形態に係る画像制御部による、対象ユーザオブジェクトに対する動作の制御の一例を示すフローチャートである。
【図１６】図１６は、実施形態の第１の変形例を説明するための図である。
【図１７】図１７は、実施形態の第２の変形例を説明するための図である。
【図１８】図１８は、実施形態の第３の変形例を説明するための図である。
【図１９】図１９は、２次元の画像を表示する場合の画面例を示す図である。
【図２０】図２０は、３次元の画像を表示する場合の画面例を示す図である。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、表示制御プログラム、表示制御方法および表示制御装置、ならびに、表示システムの実施の形態を詳細に説明する。
【００１０】
（第１の実施形態）
図１は、第１の実施形態に係る表示システムの一例の構成を示すブロック図である。図１において、表示システム１は、パーソナルコンピュータ（ＰＣ）１０と、１以上のプロジェクタ装置（ＰＪ）１１1、１１2、１１3と、スキャナ装置２０とを含む。ＰＣ１０は、スキャナ装置２０で原稿２１を読み取って得られた画像データに対して所定の画像処理を施して表示画像データとし、プロジェクタ装置（ＰＪ）１１1、１１2、１１3に供給する。プロジェクタ装置１１1、１１2、１１3は、ＰＣ１０から供給された表示画像データに従い、画像１３1、１３2、１３3をスクリーン１２に投射する。
【００１１】
なお、図１のように複数のプロジェクタ装置（ＰＪ）１１1、１１2、１１3による画像１３1、１３2、１３3を１のスクリーン１２に投射する場合、各画像１３1、１３2、１３3の隣接部分に重複部分を設けると好ましい。図１の例では、カメラ１４によりスクリーン１２に投射された画像１３1、１３2、１３3を撮像し、ＰＣ１０が、撮像画像データに基づき各画像１３1、１３2、１３3、あるいは、各プロジェクタ装置（ＰＪ）１１1、１１2、１１3を制御して、重複部分の画像を調整している。
【００１２】
このような構成において、例えば、ユーザ２３が手書きにて絵２２を描いた原稿２１を作成し、この原稿２１の画像をスキャナ装置２０に読み取らせる。スキャナ装置２０は、原稿２１の画像を読み取って得た原稿画像データをＰＣ１０に供給する。ＰＣ１０は、スキャナ装置２０から供給された原稿画像データから絵２２に対応する部分のデータを抽出し、抽出した画像データをユーザ画像データとして保持する。
【００１３】
一方、ＰＣ１０は、３次元の座標系を持つ画像データ空間を生成する。そして、ＰＣ１０は、ユーザ画像データに対してこの画像データ空間内の座標を与えて当該ユーザ画像データを当該画像データ空間内のデータとする。以下では、この３次元の画像データ空間内のユーザ画像データを、ユーザオブジェクトと呼ぶ。ＰＣ１０は、この、ユーザオブジェクトを含む３次元の画像データ空間を２次元の画像データ平面に投影し、投影して生成された画像データを、プロジェクタ装置（ＰＪ）１１1、１１2、１１3の台数分に分割して、各プロジェクタ装置（ＰＪ）１１1、１１2、１１3に供給する。
【００１４】
ここで、ＰＣ１０は、ユーザオブジェクトに対して、画像データ空間内での動きを与えることができる。例えば、ＰＣ１０は、ユーザオブジェクトの元になるユーザ画像データの特徴量を求め、求めた特徴量に基づき、ユーザオブジェクト自身の変形のモードを含む、動きに関する各パラメータを生成する。ＰＣ１０は、このパラメータをユーザ画像データに適用して、ユーザオブジェクトに対して画像データ空間内での動きを与える。
【００１５】
このようにすることで、ユーザ２３は、自身が手書きにて作成した絵２２による画像を、３次元の画像データ空間内で動く画像として観察することができる。また、ＰＣ１０は、複数のユーザオブジェクトを同一の画像データ空間内に含めることができる。したがって、ユーザ２３は、上述の操作を繰り返すことで、例えば異なる複数の絵２２による画像を、それぞれ、３次元の画像データ空間内で動く画像として観察することができる。
【００１６】
図２は、ＰＣ１０により生成される、実施形態に係る、３次元の座標系を持つ画像データ空間について概略的に示す。実施形態では、３次元の座標系として、互いに直交する３の座標軸（ｘ軸、ｙ軸、ｚ軸）を持つ直交座標系を用いる。以下では、図２に示されるように、ｘ軸、ｙ軸およびｚ軸を、それぞれ高さ、幅および奥行方向の軸とし、ＰＣ１０は、高さ、幅および奥行の各軸による３次元の座標系を持つ画像データ空間３０を生成するものとして説明する。図２の例では、この画像データ空間３０内に、ユーザ画像データによる各ユーザオブジェクト４０1、４０2、４０3、４０4および４０5が含まれている。
【００１７】
ＰＣ１０は、この画像データ空間３０に対して、それぞれ値が予め定められた高さＨ、幅Ｗおよび奥行Ｄからなる空間である定義領域３１を設定する。ユーザ画像データによる各ユーザオブジェクト４０1、４０2、…の動きは、この定義領域３１内に制限される。実施形態では、各ユーザオブジェクト４０1、４０2、…の元になる絵２２として、魚類、イカ、タコ、クラゲなど水中に棲息する生物を想定しており、定義領域３１は、仮想的な水槽と見做すことができる。以下では、特に記載の無い限り、定義領域３１を仮想水槽３１と呼ぶ。
【００１８】
図３は、実施形態に適用可能なＰＣ１０の一例の構成を示す。図３のＰＣ１０において、バス１００に対してＣＰＵ(Central  Processing  Unit)１１０、ＲＯＭ(Read  Only  Memory)１１１、ＲＡＭ(Random  Access  Memory)１１２および表示制御部１１３が接続される。ＰＣ１０において、さらに、バス１００に対してストレージ１１４、データＩ／Ｆ１１５および通信Ｉ／Ｆ１１６が接続される。
【００１９】
ＣＰＵ１１０は、ＲＯＭ１１１およびストレージ１１４に予め記憶されるプログラムに従い、ＲＡＭ１１２をワークメモリとして用いて、このＰＣ１０の全体を制御する。表示制御部１１３は、モニタ１２０が接続され、ＣＰＵ１１０により生成された表示制御信号を、モニタ１２０が表示可能な信号に変換して出力する。また、表示制御部１１３は、表示制御信号を、プロジェクタ装置１１1、１１2および１１3が表示可能な信号に変換してそれぞれ出力することができる。
【００２０】
ストレージ１１４は、データを不揮発に記憶することが可能な記憶媒体であって、例えばハードディスクドライブが用いられる。これに限らず、ストレージ１１４として、例えばフラッシュメモリなどの不揮発性の半導体メモリを用いてもよい。ストレージ１１４は、上述のＣＰＵ１１０が実行するためのプログラムや各種のデータが格納される。
【００２１】
データＩ／Ｆ１１５は、外部の機器との間でのデータの入出力を制御する。例えば、データＩ／Ｆ１１５は、スキャナ装置２０に対するインターフェイスとして用いられる。また、データＩ／Ｆ１１５は、マウスなどのポインティングデバイスや図示されないキーボード（ＫＢＤ）からの信号が入力される。さらに、ＣＰＵ１１０で生成された表示制御信号を、このデータＩ／Ｆ１１５から出力して、例えば各プロジェクタ装置１１1、１１2および１１3に供給してもよい。このようなデータＩ／Ｆ１１５としては、ＵＳＢ(Universal  Serial  Bus)やＢｌｕｅｔｏｏｔｈ（登録商標）といったインタフェースを適用することができる。
【００２２】
通信Ｉ／Ｆ１１６は、インターネットやＬＡＮ(Local  Area  Network)といったネットワークを介した通信を制御する。
【００２３】
図４は、実施形態に係るＰＣ１０の機能を説明するための一例の機能ブロック図である。ＰＣ１０は、入力部１３０と、画像取得部１３１と、３Ｄ空間生成部１３２と、領域設定部１３３と、モード判定部１３４と、パラメータ生成部１３５と、画像制御部１３６と、記憶部１３７とを含む。
【００２４】
入力部１３０は、ユーザ２３による手書きで描画された描画部分を含む画像が入力される。例えば、入力部１３０は、データＩ／Ｆ１１５の機能を含み、ユーザ２３が手書きで描画した描画部分の絵２２を含む原稿２１の画像がスキャナ装置２０で読み取られた原稿画像データが入力される。そして、入力部１３０は、入力された原稿画像データから、絵２２の部分の画像データを抽出し、ユーザ画像データとして取得する。
【００２５】
３Ｄ空間生成部１３２は、図２を用いて説明した、高さ、幅および奥行の３軸からなる３次元の座標軸による画像データ空間３０を生成する。３Ｄ空間生成部１３２は、例えば、ＲＡＭ１１２上のアドレス空間として画像データ空間３０を生成する。領域設定部１３３は、３Ｄ空間生成部１３２で生成された画像データ空間３０内に、予め定められた値に従い、高さＨ、幅Ｗおよび奥行Ｄの定義領域３１（仮想水槽３１）を設定する。
【００２６】
画像取得部１３１は、画像データ空間３０に対して所定に視点を設定して、設定した視点から画像データ空間３０を２次元の画像データ平面に投影し、プロジェクタ装置１１1〜１１3で投射させるための画像データを取得する。
【００２７】
モード判定部１３４は、入力部１３０で取得されたユーザ画像データに基づき、当該ユーザ画像データが画像データ空間３０に含まれた際のユーザオブジェクトに割り当てる、ユーザオブジェクト自身の変形のモード（変形モードと呼ぶ）を判定する。パラメータ生成部１３５は、入力部１３０で取得されたユーザ画像データに基づき、当該ユーザ画像データによるユーザオブジェクトの動きに関する性能を決めるパラメータを生成する。
【００２８】
画像制御部１３６は、モード判定部１３４により判定された変形モードと、パラメータ生成部１３５で生成されたパラメータとに従い、画像データ空間３０内でのユーザオブジェクトの動きを制御する。換言すれば、画像制御部１３６は、画像データ空間３０における仮想水槽３１内での座標をユーザオブジェクトに与え、この座標を、時間の経過に伴い連続して変化させる制御を行う。
【００２９】
記憶部１３７は、ＲＡＭ１１２に対応し、ユーザオブジェクトの元になるユーザ画像データなどを記憶する。これに限らず、ストレージ１１４を記憶部１３７として用いてもよい。例えば、モード判定部１３４やパラメータ生成部１３５は、この記憶部１３７に記憶されるユーザ画像データを用いて、変形モードの判定やパラメータの生成を行う。また、画像制御部１３６は、記憶部１３７に記憶されるユーザ画像データに対して仮想水槽３１内の座標を与えることで、当該ユーザ画像データを、画像データ空間３０内にユーザオブジェクトとして含ませることができる。さらに、画像制御部１３６は、ユーザオブジェクトに対して変形モードやパラメータに従い変形処理や移動処理などを施す。
【００３０】
なお、上述したＰＣ１０に含まれる入力部１３０、画像取得部１３１、３Ｄ空間生成部１３２、領域設定部１３３、モード判定部１３４、パラメータ生成部１３５および画像制御部１３６は、例えばストレージ１１４に予め記憶され、ＣＰＵ１１０上で動作する表示制御プログラムによって実現される。この表示制御プログラムは、インストール可能な形式また実行可能な形式のファイルでＣＤ(Compact  Disk)、フレキシブルディスク（ＦＤ）、ＤＶＤ(Digital  Versatile  Disk)などのコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００３１】
また、実施形態のＰＣ１０で実行される表示制御プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供するように構成してもよい。また、実施形態のＰＣ１０で実行される表示制御プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。さらに、実施形態の表示制御プログラムを、ＲＯＭ１１１などに予め組み込んで提供するように構成してもよい。
【００３２】
実施形態のＰＣ１０で実行される表示制御プログラムは、上述した各部（入力部１３０、画像取得部１３１、３Ｄ空間生成部１３２、領域設定部１３３、モード判定部１３４、パラメータ生成部１３５および画像制御部１３６）を含むモジュール構成となっている。実際のハードウェアとしては、ＣＰＵ１１０がストレージ１１４やＲＯＭ１１１などの記憶媒体から表示制御プログラムを読み出して実行することにより、上述した各部がＲＡＭ１１２などの主記憶装置上にロードされ、入力部１３０、画像取得部１３１、３Ｄ空間生成部１３２、領域設定部１３３、モード判定部１３４、パラメータ生成部１３５および画像制御部１３６が主記憶装置上に生成されるようになっている。
【００３３】
次に、実施形態による表示制御処理について、より詳細に説明する。図５は、実施形態による表示制御処理の全体的な流れを示す一例のフローチャートである。このフローチャートによる処理の実行に先立って、ユーザによる手書きの絵が作成される。ここでは、ユーザは、予めフォーマットが定められた用紙に対して手書きの描画を行うものとする。
【００３４】
図６は、実施形態に係る、手書き描画を行うための用紙の例を示す。図６の左側に示される用紙２００において、画像データ空間３０内に含ませたいオブジェクト（ユーザオブジェクト）の元となる絵２１２を手書き描画する描画領域２１０と、描画領域２１０に描画された絵に対するタイトルを記入するタイトル記入領域２１１とが配される。
【００３５】
また、用紙２００の四隅のうち３の隅に、マーカ２２０1、２２０2および２２０3が配される。用紙２００の画像をスキャナ装置２０で読み取った原稿画像から、これらマーカ２２０1、２２０2および２２０3を検出することで、用紙２００の向きおよび大きさを知ることができる。
【００３６】
図５のフローチャートにおいて、ユーザの手書き描画による絵２１２が描画された用紙２００の画像がスキャナ装置２０により読み取られ、読み取られた画像による原稿画像データがＰＣ１０に供給され、ステップＳ１０で入力部１３０に入力される。
【００３７】
次のステップＳ１１で、ＰＣ１０において、入力部１３０は、入力された原稿画像データから、ユーザ画像データを抽出する。先ず、入力部１３０は、原稿画像データから各マーカ２２０1〜２２０3を検出する。入力部１３０は、検出された各マーカ２２０1〜２２０3の原稿画像データ上の位置に基づき、原稿画像データの方向および大きさを判定する。
【００３８】
例えば、入力部１３０は、原稿画像データの四隅のうち、マーカ２２０1〜２２０3が存在しない隅を検出し、検出された隅の位置に基づき原稿画像データの向きを判定する。図６の例では、マーカ２２０1〜２２０3が存在しない隅が原稿画像データの右下隅であると判定する。また、これにより、各マーカ２２０1〜２２０3の原稿画像データ上での位置も確定できる。入力部１３０は、さらに、各マーカ２２０1〜２２０3間の距離を計測し、計測された距離と、ストレージ１１４などに予め記憶される対応する既知の距離とを比較する。この比較結果に基づき、原稿画像データにおける縦横方向のサイズの歪みを修正することができる。
【００３９】
入力部１３０は、上述のようにして取得した原稿画像データの向きとサイズとに基づき、原稿画像データから描画領域２１０とタイトル記入領域２１１とを抽出する。図６の右側に、原稿画像データから抽出された描画領域２１０およびタイトル記入領域２１１の画像データによる画像の例を示す。入力部１３０は、さらに、描画領域２１０の画像データから絵２１２の部分を抽出する。例えば、入力部１３０は、描画領域２１０の画像データの各画素が白色（用紙２００の地の色）か、白色以外かの２値判定を行い、絵２１２の部分を抽出する。この絵２１２の部分を含み、底辺の方向が描画領域２１０の底辺の方向と平行な最小の矩形領域２１３の画像データを、ユーザ画像データとする。入力部１３０は、ユーザ画像データを記憶部１３７に記憶させる。
【００４０】
次のステップＳ１２で、ＰＣ１０において、モード判定部１３４は、ステップＳ１１で抽出されたユーザ画像データに対して割り当てる変形モードを判定する。実施形態では、仮想水槽３１内での各ユーザオブジェクトに対して変形モードを割り当て、各ユーザオブジェクトの仮想水槽３１内での動作を、この変形モードに基づき制御する。
【００４１】
実施形態では、変形モードとして、ユーザオブジェクトを縦に分割して進行方向の後ろ側を動かして変形させる第１モードと、ユーザオブジェクトを縦方向に伸縮させて変形させる第２モードと、ユーザオブジェクトを横に分割して下側を動かして変形させる第３モードとの３モードが定義される。実施形態では、ユーザ画像データの縦横比Ｒを取得し、取得した縦横比Ｒに従い当該ユーザ画像データによるユーザオブジェクトに対して、上述した第１、第２および第３モードのうち何れを割り当てるかを決定する。
【００４２】
図７を用いて、実施形態に係るユーザ画像データの縦横比Ｒについて説明する。図７に例示される矩形領域２１３は、上述したように、描画領域２１０内の絵２１２の部分（例えば画素の値が白以外の部分）を含み、底辺の方向が描画領域２１０の底辺の方向と平行な最小の領域である。縦横比Ｒは、この矩形領域２１３の縦の長さｈと横の長さｗとを用いて、下記の式（１）にて表す。式（１）によれば、矩形領域２１３は、縦横比Ｒの値が大きいほど縦長になることが分かる。
Ｒ＝ｈ／ｗ    …（１）
【００４３】
なお、用紙２００におけるマーカ２２０1および２２０3を結ぶ方向を矩形領域２１３の縦方向とし、マーカ２２０1および２２０2を結ぶ方向を矩形領域２１３の横方向とする。
【００４４】
図８は、ステップＳ１２のモード判定部１３４による変形モード判定処理の例を示すフローチャートである。モード判定部１３４は、ステップＳ２０で、上述したようにしてユーザ画像データの縦横比Ｒを取得する。次のステップＳ２１で、モード判定部１３４は、縦横比Ｒの値を判定する。実施形態では、縦横比Ｒが１未満の場合と、１以上且つ所定値ｓ未満の場合と、所定値ｓ以上の場合とのうち何れであるかを判定する。実施形態では、この縦横比Ｒに応じて、ユーザ画像データによるユーザオブジェクトに対して変形モードを割り当てる。
【００４５】
モード判定部１３４は、ステップＳ２１で縦横比Ｒが１未満であると判定した場合、処理をステップＳ２２に移行させて、当該ユーザ画像データによるオブジェクトに対して第１モードを割り当てる。
【００４６】
図９を用いて、実施形態に係る第１モードの動作について説明する。なお、図９と、後述する図１０および図１１において、矩形領域２１３は、説明のため、絵２１２部分に対して大きめに記されている。
【００４７】
図９に例示するように、第１モードは、ユーザ画像データにおける矩形領域２１３の画像を縦方向に例えば中央部分を境界２２１として分割し、分割された一方（動作部分と呼ぶ）を連続的に、すなわち、時間の変化に伴い連続して動かし変形させるモードである。第１モードは、例えば一般的な魚の動きが想定されている。
【００４８】
第１モードでは、動作部分は、境界２２１を中心に、所定の角度範囲内において前後に動くように定義される。すなわち、この矩形領域２１３が画像データ空間３０内にあるときに、動作部分は、矩形領域２１３の当初の面と、境界２２１とに対して垂直な面内で、境界２２１を中心として所定角度範囲内で回転するように動作する。
【００４９】
なお、第１モードの場合、動作部分は、進行方向に対して後ろ側であると、魚が泳いでいる状態に似た動きを表現でき好ましい。例えば、動作部分を進行方向の後ろ側にするためには、用紙２００の描画領域２１０に対して手書きされる絵２１２の向きを予め指定しておくことが考えられる。これに限らず、例えば絵２１２に対して進行方向を示すマークを埋め込むことも考えられる。上述した図６の例では、目の部分を黒色で描き、他の部分には黒色を用いないようにする。絵２１２から黒色の部分を検出することで、絵２１２の向きを判定することが可能である。
【００５０】
モード判定部１３４は、ステップＳ２１で縦横比Ｒが１以上且つ所定値ｓ未満であると判定した場合、処理をステップＳ２３に移行させて、当該ユーザ画像データによるオブジェクトに対して第２モードを割り当てる。図１０を用いて、実施形態に係る第２モードについて説明する。図１０に例示するように、第２モードは、ユーザ画像データにおける矩形領域２１３の画像を縦方向に連続的に伸縮させて変形させる。画像の伸縮は、例えば所定の周期にて行う。第２モードでは、クラゲなど向きが曖昧で活発に運動しない生物の動きを想定している。
【００５１】
なお、第２モードおよび後述する第３モードを判定するための条件である上述の所定値ｓは、画像を伸縮させた場合に自然に見えるような値、例えば、画像を縦方向に伸張した場合に縦長すぎず、縦方向に縮小した場合に扁平すぎない値を、実験的に求める。このような値としては、１．５など１以上２未満の値が考えられる。
【００５２】
モード判定部１３４は、ステップＳ２１で縦横比Ｒが所定値ｓ以上であると判定した場合、処理をステップＳ２４に移行させて、当該ユーザ画像データによるオブジェクトに対して第３モードを割り当てる。
【００５３】
図１１を用いて、実施形態に係る第３モードについて説明する。図１１に例示するように、第３モードは、ユーザ画像データにおける矩形領域２１３の画像を横方向に例えば中央部分を境界２２４として分割し、分割された一方を動作部分として動かし変形させるモードである。第３モードは、イカやタコといった、一般的に縦長に表現されることが多い生物の動きを想定している。第３モードでは、動作部分は、境界２２４を上辺とすると共に、高さを一定とし、下辺が左右に連続的に移動される。すなわち、第３モードでは、動作部分は、矩形領域２１３の面内で、境界２２４を上辺とし高さを一定とした平行四辺形の形状を保って動作する。
【００５４】
ステップＳ２２〜ステップＳ２４の何れかにおいて変形モードが判定されると、処理が図５のステップＳ１３に移行される。
【００５５】
図５の説明に戻り、ステップＳ１３で、ＰＣ１０において、パラメータ生成部１３５は、ユーザ画像データによるユーザオブジェクトに対して、当該ユーザオブジェクトの画像データ空間３０内での動作に関する性能（以下、動作性能と呼ぶ）を決定するパラメータｐを生成、決定する。ユーザオブジェクトの画像データ空間３０内での動作は、ここで生成、決定されたパラメータｐに従い制御されることになる。
【００５６】
ここで、実施形態で決定するパラメータｐについて説明する。実施形態では、パラメータ生成部１３５は、ユーザオブジェクト毎に、下記の９種類の動作性能のパラメータｐ0〜ｐ8を決定する。
（１）ｐ0：進行方向の最大速度ｖmax
（２）ｐ1：進行方向の加速度ａ
（３）ｐ2：水平方向の角加速度の最大値αhmax
（４）ｐ3：垂直方向の角加速度の最大値αvmax
（５）ｐ4：垂直方向の向きの変更速度の最大値（最大変更速度）ｖdmax
（６）ｐ5：上方向角度の乱数幅の最大値（最大乱数幅）ｄＲumax
（７）ｐ6：下方向角度の最大乱数幅ｄＲdmax
（８）ｐ7：右方向角度の最大乱数幅ｄＲrmax
（９）ｐ8：左方向角度の最大乱数幅ｄＲlmax
【００５７】
これらのうち、パラメータｐ0およびｐ1の進行方向の最大速度ｖmaxおよび進行方向の加速度ａは、ユーザオブジェクトの画像データ空間３０内における進行方向の速度を制御するためのパラメータである。また、パラメータｐ2、ｐ3の水平方向の角加速度の最大値αhmaxおよび垂直方向の角加速度の最大値αｖmaxは、ユーザオブジェクトに対して水平方向および垂直方向の回転を与えるためのパラメータである。
【００５８】
パラメータｐ4の垂直方向の向きの最大変更速度ｖdmaxは、ユーザオブジェクトの垂直方向の進行速度が変更される場合の、変更速度の最大値を与えるためのパラメータである。すなわち、実施形態では、ユーザオブジェクトが仮想水槽３１の上端面（天井面）または下端面（床面）に接触した場合に進行方向の垂直成分を反転させ、ユーザオブジェクトの垂直方向に対する動きを、仮想水槽３１内に制限する。パラメータｐ4は、この進行方向の垂直成分を反転させる際の、反転速度の最大値を与える。
【００５９】
パタメータｐ5およびｐ6の、上下方向の最大乱数幅ｄＲumaxおよびｄＲdmaxは、ユーザオブジェクトの垂直方向すなわち進行方向に対して上下方向の回転動作に対する角加速度の範囲を与えるためのパラメータである。パタメータｐ5およびｐ6で与えられる角加速度は、パラメータｐ3の、垂直方向の角加速度の最大値αvmaxにより制限される。
【００６０】
パタメータｐ7およびｐ8の、右方向および左方向の最大乱数幅ｄＲrmaxおよびｄＲlmaxは、ユーザオブジェクトの水平方向すなわち進行方向に対して左右方向の回転動作に対する角加速度の範囲を与えるためのパラメータである。
【００６１】
図１２は、ステップＳ１３のパラメータ生成部１３５によるパラメータの生成、決定処理の例を示すフローチャートである。ステップＳ３０で、パラメータ生成部１３５は、ユーザ画像データのパラメータｐ0〜ｐ8毎の特徴量ｃ0〜ｃ8を抽出する。次のステップＳ３１で、パラメータ生成部１３５は、各変形モードについて、パラメータｐ0〜ｐ8毎に、各変形モードすなわち第１、第２および第３モードに対する最大値ｍ1〜ｍ3をそれぞれ取得する。そして、次のステップＳ３２で、パラメータ生成部１３５は、ステップＳ３０で抽出した特徴量ｃ0〜ｃ8と、ステップＳ３１で取得したパラメータｐ0〜ｐ8毎の最大値ｍ1〜ｍ3とを用いて、ユーザ画像データによるユーザオブジェクトのパラメータｐ0〜ｐ8を決定する。
【００６２】
図１２のステップＳ３０における、ユーザ画像データから特徴量ｃ0〜ｃ8を求める方法について説明する。画像の特徴量は、ユーザ画像データにおける色分布やエッジ量などに基づき求めることが可能である。また、特開２００９−１０１１２２号公報に記載されるように、ユーザ画像データを構成する各画素のビット情報に基づき特徴量を求めることもできる。実施形態では、この特開２００９−１０１１２２号公報に記載の方法を用いて特徴量を求める。
【００６３】
特開２００９−１０１１２２号公報に記載される特徴量の取得方法について、概略的に説明する。パラメータ生成部１３５は、記憶部１３７に記憶されるユーザ画像データから所定ビット数毎にデータすなわち所定のビット列を繰り返し抽出する。パラメータ生成部１３５は、例えば、所定ビット数を８ビットとして、ユーザ画像データから、所定ビット数のビット列をユーザ画像データの終端まで順次繰り返して抽出する。以下、ユーザ画像データから抽出した所定ビット数のビット列を、抽出データと呼ぶ。
【００６４】
パタメータ生成部１３５は、抽出データを、予め定められた分類規則に従って、上述したパラメータｐ0〜ｐ8毎に分類する。分類規則は、例えば、抽出データを各パラメータｐ0〜ｐ8に分類するため、各パラメータｐ0〜ｐ8に対応付けられたデータ範囲を示す。
【００６５】
一例として、３種類のパラメータｐ0〜ｐ2に対応する特徴量ｃ0〜ｃ2を生成する場合について説明する。この例では、８ビット単位でデータの抽出を行っていることから、２桁の１６進数のデータ範囲「ｈ００〜ｈＦＦ」（先頭の「ｈ」は、後続する数値が１６進表記であることを示す）において、データ範囲「ｈ００〜ｈ６Ｆ」をパラメータｐ0、データ範囲「ｈ７０〜ｈ９Ｆ」をパラメータｐ1、データ範囲「ｈＡ０〜ｈＦＦ」をパラメータｐ2というように、３種類に分類するためのデータ範囲を分類規則として、記憶部１３７に記憶させる。
【００６６】
パラメータ生成部１３５は、ユーザ画像データから抽出した抽出データを、分類規則として予め定められたデータ範囲に従って分類する。例えば、抽出データが２進数表記で値「ｂ０１１０１１００」（先頭の「ｂ」は、後続する数値が２進数表記であることを示す）の場合、８桁の２進数を２桁の１６進数に変換すると「ｈ６Ｃ」となる。よって、抽出データが値「ｂ０１１０１１００」の場合は、データ範囲「ｈ００〜ｈ６Ｆ」が割り当てられたパラメータｐ0に分類される。また、抽出した抽出データが値「ｂ００１１０１００」の場合、２桁の１６進数に変換すると値「ｈ３４」となり、この値「ｂ００１１０１００」も、パラメータｐ0に分類される。
【００６７】
また、パラメータ生成部１３５は、抽出データを分類するときに、分類するパラメータｐ0〜ｐ2毎の抽出データの抽出回数（抽出頻度）を算出する。例えば、上述の例によると、パラメータｐ0については、抽出データは、値「ｂ０１１０１１００」および値「ｂ００１１０１００」の２回が抽出され、抽出回数が「２」となる。この抽出回数を、当該パラメータｐ0の特徴量ｃ0として用いる。
【００６８】
図１２のステップＳ３１では、パラメータ生成部１３５は、各パラメータｐ0〜ｐ8に対して変形モード毎に予め設定された最大値ｍを取得する。各パラメータｐ0〜ｐ8に対する変形モード毎の最大値ｍは、例えばストレージ１１４といった不揮発性の記憶媒体に予め記憶される。パラメータ生成部１３５は、ステップＳ３１で、この不揮発性の記憶媒体から各最大値ｍを読み出し、取得する。
【００６９】
図１２のステップＳ３２では、ステップＳ３０で取得された各特徴量ｃ0〜ｃ8と、ステップＳ３１で取得された各最大値ｍとを用いて、各パラメータｐ0〜ｐ8を決定する。図１３は、実施形態に係る、各特徴量ｃ0〜ｃ8と各最大値ｍとを用いた各パラメータｐ0〜ｐ8の決定方法の例を示す。なお、図１３では、説明のため、パラメータｐ0〜ｐ8について、パラメータｐ0〜ｐ2に絞って示している。
【００７０】
例えば、図１３において、最大値ｍxyについて、添字「x」が各パラメータｐ0〜ｐ8をそれぞれ示し、添字「y」が第１〜第３モードを示すものとする。すなわち、パラメータｐ0に対して、第１〜第３モード毎に最大値ｍ01、ｍ02およびｍ03が予め設定される。同様に、パラメータｐ1に対して、第１〜第３モード毎に最大値ｍ11、ｍ12およびｍ13が予め設定される。ここで、最大値ｍxyは、０を超え、且つ、１以下の値とする。
【００７１】
図１３に示されるように、実施形態では、各パラメータｐ0〜ｐ8を、特徴量ｃ0〜ｃ8に対して、第１〜第３モードおよび各パラメータｐ0〜ｐ8毎の最大値ｍxyを乗ずることで決定する。すなわち、進行方向の最高速度を与えるパラメータｐ0は、第１モードではｐ0＝ｍ01×ｃ0、第２モードではｐ0＝ｍ02×ｃ0、第３モードではｐ0＝ｍ03×ｃ0として決定される。同様に、進行方向の加速度を与えるパラメータｐ1は、第１モードではｐ1＝ｍ11×ｃ1、第２モードではｐ1＝ｍ12×ｃ1、第３モードではｐ1＝ｍ13×ｃ1として決定される。パラメータｐ2についても同様である。
【００７２】
パラメータ生成部１３５は、このようにして決定した各パラメータｐ0〜ｐ8を、記憶部１３７に対して記憶する。
【００７３】
図５のフローチャートの説明に戻り、ステップＳ１３でパラメータ生成部１３５により各パラメータｐ0〜ｐ8が決定されると、処理がステップＳ１４に移行される。ステップＳ１４では、画像制御部１３６により、ユーザ画像データに対して半透明領域が設定される。例えば、画像制御部１３６は、ユーザ画像データを含む矩形領域２１３において、図６を用いて説明したようにして入力部１３０により抽出された絵２１２の部分の内側領域および外側領域を検出する。画像制御部１３６は、検出された内側領域において、白色の画素を、半透明に設定する。また、画像制御部１３６は、検出された外側領域を透明に設定する。画像データに対する透明および半透明の設定は、既知のアルファブレンディングの技術を用いて実現することができる。
【００７４】
このように、ユーザ画像データの絵２１２の部分に対して半透明領域を設定することで、仮想水槽３１内において、当該ユーザ画像データによるユーザオブジェクトの見え方を、水中の生物により近くすることができる。
【００７５】
次に、ステップＳ１５で、画像制御部１３６は、ユーザ画像データによるユーザオブジェクトに対して、当該ユーザオブジェクトが仮想水槽３１内に最初に表示される際の初期座標が設定される。なお、以下では、特に記載のない限り、ユーザオブジェクトが仮想水槽３１内に最初に表示されることを、「登場する」と記述する。
【００７６】
ここで、実施形態に係る、画像取得部１３１による画像データ空間３０の投影について、図１４を用いて説明する。３次元の座標軸を持つ画像データ空間３０をディスプレイやスクリーンに表示する場合には、画像データ空間３０を所定の視点から２次元の平面に投影する必要がある。実施形態では、各ユーザオブジェクトの動きが画像データ空間３０における仮想水槽３１内に制限されるため、仮想水槽３１が投影の対象となる。
【００７７】
図１４（ａ）において、上下方向が画像データ空間３０の奥行きの方向を示し、左右方向が画像データ空間３０の幅の方向を示しているものとする。実施形態では、画像取得部１３１は、図１４（ａ）に示されるように、仮想水槽３１外の視点２３１から視野角θで仮想水槽３１の奥行き方向を見た場合の、高さＨおよび幅Ｗがなす面に、仮想水槽３１を投影する。さらに、実施形態では、投影を透視投影を用いて行い、視点２３１の位置および視野角θを、仮想水槽３１において、視点２３１に対して死角となる、左側の死角領域２４０1と右側の死角領域２４０2とのうち少なくとも一方が形成されるように設定する。
【００７８】
例えば、視点２３１に対して左右に死角領域２４０1および２４０2が形成される場合、図１４（ｂ）に例示されるように、仮想水槽３１の高さＨ、幅Ｗによる面のうち、死角領域２４０1および２４０2を除いた幅ＷVの範囲内の面が投影されることになる。すなわち、仮想水槽３１において、死角領域２４０1および２４０2の部分は、画像データとしては存在するが、２次元平面に投影した投影画像上（表示領域上）には表示されない部分である。すなわち、死角領域２４０1および２４０２内の画像は、仮想水槽３１が２次元平面に投影された画像では見ることができない。
【００７９】
実施形態では、画像制御部１３６は、ユーザオブジェクトが仮想水槽３１内に登場する際の初期座標を、死角領域２４０1および２４０２のうち何れかの内部に設定する。死角領域２４０1または２４０２内に初期座標が設定されたユーザオブジェクトは、画像制御部１３６による制御により、死角領域２４０1または２４０２内から、幅ＷVの領域に進行することになる。したがって、新たに作成されたユーザオブジェクトは、投影画像の端（左右何れかの端）から徐々に姿を登場させるような動きに見えるため、新たに作成されたユーザオブジェクトが投影画像内の何も表示されていない部分に突然登場するといった、違和感を避けることができる。
【００８０】
また、投影に透視投影を用いる場合には、ユーザオブジェクトは、仮想水槽３１の手前側で最も大きい画像として投影され、奥行方向に進むに従いより小さい画像として投影されることになる。死角領域２４０1および２４０２は、奥行の手前側に形成されるため、新たに作成されたユーザオブジェクトがより大きい画像として投影され、より注目され易くなる。
【００８１】
次のステップＳ１６で、画像制御部１３６は、ステップＳ１５で初期座標が設定されたユーザオブジェクトに対して動きを与え、ユーザオブジェクトの動作を開始させる。
【００８２】
ＰＣ１０は、次のステップＳ１７で、次の原稿画像の読み取りが行われるか否かを判定し、読み取りが行われると判定した場合に、処理をステップＳ１０に戻す。一方、ＰＣ１０は、読み取りが行われないと判定した場合には、図５のフローチャートによる一連の処理を終了させる。読み取りが行われない旨は、例えば、最後の読み取りが行われてから所定時間が経過した、スキャナ装置２０のＰＣ１０に対する接続が解除された、などにより判定することが考えられる。
【００８３】
次に、上述したステップＳ１６における、画像制御部１３６によるユーザオブジェクトに対する動作の制御について説明する。図１５は、実施形態に係る画像制御部１３６による、あるユーザオブジェクト（対象ユーザオブジェクト）に対する動作の制御の一例を示すフローチャートである。画像制御部１３６は、対象ユーザオブジェクトに対して設定された第１〜第３モードの何れかの変形モードに従い、当該対象ユーザオブジェクトを変形させながら、下記のステップＳ４０〜ステップＳ５２に従った動作制御を行う。
【００８４】
ステップＳ４０で、画像制御部１３６は、パラメータｐ0に基づき、対象ユーザオブジェクトの進行方向の速度ｖが進行方向の最大速度ｖmaxを超えたか否かを判定する。画像制御部１３６は、速度ｖが最大速度ｖmaxを超えたと判定した場合、処理をステップＳ４２に移行させる。また、画像制御部１３６は、速度ｖが最大速度ｖmaxを超えていないと判定した場合、処理をステップＳ４１に移行させ、パラメータｐ1に基づき、対象ユーザオブジェクトの進行方向の速度ｖを、進行方向の加速度α分、増加させる。そして、処理をステップＳ４２に移行させる。
【００８５】
ステップＳ４２で、画像制御部１３６は、パラメータｐ2に基づき、水平方向の角加速度αhが最大値αhmaxを超えたか否かを判定する。画像制御部１３６は、角加速度αhが最大値αhmaxを超えたと判定した場合、処理をステップＳ４４に移行させる。
【００８６】
また、画像制御部１３６は、角加速度αhが最大値αhmaxを超えていないと判定した場合、処理をステップＳ４３に移行させる。画像制御部１３６は、ステップＳ４３で、対象ユーザオブジェクトの水平方向の角加速度αhを増減させ、水平方向の向きの変更速度を変化させる。
【００８７】
このとき、画像制御部１３６は、パラメータｐ7およびｐ8に基づき、右方向角度の最大乱数幅ｄＲrmaxと、左方向角度の最大乱数幅ｄＲlmaxとの間で乱数を発生させ、発生させた乱数に基づき角加速度αhを増減させる。水平方向の角加速度αhの増減分に従い、対象ユーザオブジェクトの水平方向の向きの変更速度が増減される。水平方向の向きの変更速度が変化されると、処理がステップＳ４４に移行される。
【００８８】
ステップＳ４４で、画像制御部１３６は、パラメータｐ3に基づき、垂直方向の角加速度αvが最大値αvmaxを超えたか否かを判定する。画像制御部１３６は、角加速度αvが最大値αvmaxを超えたと判定した場合、処理をステップＳ４６に移行させる。
【００８９】
また、画像制御部１３６は、角加速度αvが最大値αvmaxを超えていないと判定した場合、処理をステップＳ４５に移行させる。画像制御部１３６は、ステップＳ４５で、対象ユーザオブジェクトの垂直方向の角加速度αvを増減させ、垂直方向の向きの変更速度を変化させる。
【００９０】
このとき、画像制御部１３６は、パラメータｐ5およびｐ6に基づき、上方向角度の最大乱数幅ｄＲumaxと、下方向角度の最大乱数幅ｄＲdmaxとの間で乱数を発生させ、発生させた乱数に基づき角加速度αvを増減させる。垂直方向の角加速度αvの増減分に従い、対象ユーザオブジェクトの垂直方向の向きの変更速度が増減される。垂直方向の向きの変更速度が変化されると、処理がステップＳ４６に移行される。
【００９１】
ステップＳ４６で、画像制御部１３６は、対象ユーザオブジェクトが仮想水槽３１の上下の壁（天井面または床面）に接触したか否かを判定する。画像制御部１３６は、対象ユーザオブジェクトが仮想水槽３１の上下の壁に接触していないと判定した場合、処理をステップＳ４８に移行させる。
【００９２】
また、画像制御部１３６は、対象ユーザオブジェクトが仮想水槽３１の上下の壁に接触したと判定した場合、処理をステップＳ４７に移行させる。画像制御部１３６は、ステップＳ４７で、対象ユーザオブジェクトの垂直方向の向きの変更速度を反転させると共に、進行方向の速度ｖを低下させる。なお、垂直方向の向きの変更速度の反転は、進行方向の水平方向成分の向きは維持し、垂直方向成分の向きを反転させることで行う。そして、処理がステップＳ４８に移行される。
【００９３】
ステップＳ４８で、画像制御部１３６は、対象ユーザオブジェクトが仮想水槽３１の前後左右の壁に接触したか否かを判定する。画像制御部１３６は、対象ユーザオブジェクトが仮想水槽３１の前後左右の壁に接触していないと判定した場合、処理をステップＳ５０に移行させる。
【００９４】
また、画像制御部１３６は、対象ユーザオブジェクトが仮想水槽３１の前後左右の壁に接触したと判定した場合、処理をステップＳ４９に移行させる。画像制御部１３６は、ステップＳ４９で、対象ユーザオブジェクトの水平方向の向きの変更速度を増加させると共に、進行方向の速度ｖを低下させる。ここでは、画像制御部１３６は、対象ユーザオブジェクトの進行方向の向きの変更速度を１０倍に増加させるものとする。そして、処理がステップＳ５０に移行される。
【００９５】
ステップＳ５０で、画像制御部１３６は、対象ユーザオブジェクトの垂直方向の向きの変更速度に応じて、対象ユーザオブジェクトの垂直方向の向きを変える。次のステップＳ５１で、画像制御部１３６は、対象ユーザオブジェクトの水平方向の向きの変更速度に応じて、対象ユーザオブジェクトの水平方向の向きを変える。さらに、次のステップＳ５２で、画像制御部１３６は、進行方向の速度ｖに応じて、対象ユーザオブジェクトの位置（座標）を変更する。そして、画像制御部１３６は、仮想水槽３１を２次元の画像データ平面に投影し、当該２次元の画像データ平面の画像を更新する。
【００９６】
画像制御部１３６は、ステップＳ５２の処理が終了すると、処理をステップＳ４０に戻す。画像制御部１３６は、上述のステップＳ４０〜ステップＳ５２の処理を、例えばフレーム周期といった所定間隔で繰り返す。
【００９７】
以上の処理より、画像制御部１３６は、対象ユーザオブジェクトの水平方向および垂直方向の動きに揺らぎを与えることができ、対象ユーザオブジェクトが仮想水槽３１の壁面に接触した際に、連続的な動作を与えることができる。これにより、実施形態では、ユーザオブジェクトに対してより水中の生物らしい動作をさせることができ、また、ユーザオブジェクトは、殆どの場合、幅Ｗvによる画面内に表示される。
【００９８】
なお、上述では、実施形態による表示システム１が、仮想水槽３１を２次元の平面に投影する際に、投影される画像を複数に分割した画像１３1、１３2、１３3を複数のプロジェクタ装置１１1、１１2、１１3によりスクリーン１２に対してそれぞれ投射するようにしているが、これはこの例に限定されない。例えば、投影画像を分割せずに、１の画像として１のプロジェクタ装置１１によりスクリーン１２に投射してもよい。
【００９９】
また、上述では、３次元の画像データ空間内をユーザオブジェクトが移動する様子を２次元の画像データ平面に投影（表示）するようにしたが、本実施形態の適用は、必ずしも３次元の画像データ空間領域に限定されるものではない。例えば、ユーザオブジェクトが２次元の画像データ平面内を移動するようにしてもよい。ここで、水槽の中を泳ぐ生物らしい動作を表現するには、２次元的な動きよりも３次元的な動きを用いた方がより現実的な表現が可能であるため、３次元の画像データ空間領域を利用する方が好適であるといえる。
【０１００】
さらに、上述では、ユーザオブジェクトが魚など水中に棲息する生物を表す画像に基づくものとしたが、これはこの例に限定されない。例えば、ユーザオブジェクトは、昆虫や植物などの画像に基づくものでもよい。
【０１０１】
さらにまた、上述では、ユーザがマーカーペン等を用いて用紙に手書きして絵を作成する方法で説明したが、ユーザによる絵の作成方法は、この例に限定されない。例えば、ユーザによる手書きの絵は、マーカーペンと用紙を利用する代わりに、電子ペンとタブレット端末や、あるいは指（すなわち指による接触操作）とタブレット端末等を利用して作成してもよい。つまり、手書きの描画とは、ユーザにとって紙とペンを用いて描画を行うときと同等の操作感あるいは操作方法で描画が行えるような作成方法であればよく、どのような媒体を利用するかに限定されない。
【０１０２】
（実施形態の第１の変形例）
実施形態の第１の変形例について説明する。上述した実施形態では、プロジェクタ装置１１は、仮想水槽３１の２次元への投影画像を、単純な平板のスクリーン１２に投射しているが、これはこの例に限定されない。例えば、図１６に例示されるように、例えば実際に魚などが泳いでいる水槽３００の全面に半透明のスクリーン３０１を設け、プロジェクタ装置１１により、仮想水槽３１の２次元への投影画像をこのスクリーン３０１に投射させることができる。スクリーン３０１上で、スクリーン３０１に投射されるユーザオブジェクトによる画像と、半透明のスクリーン３０１を介して見える水槽３００内の魚の像とが合成され、よりリアリティのある画面を楽しめる。
【０１０３】
（実施形態の第２の変形例）
実施形態の第２の変形例について説明する。スクリーン１２は、投射面が平面であるものに限られず、投射面が立体的な形状を持つものでもよい。例えば、図１７に例示されるように、半球状の形状を持つスクリーン３１０を用いてもよい。プロジェクタ装置１１により、仮想水槽３１の２次元への投影画像を、このスクリーン３１０の半球状の部分に投射させることで、仮想水槽３１内部の画像のより立体的な表現を得ることができる。この場合、ユーザは、例えば水中に設けられた窓から水中を覗き込んでいるような体験を得ることができ、さらに、恰もユーザ自身が作成した絵２２による魚などが水中を泳いでいるような情景を観察できる。
【０１０４】
（実施形態の第３の変形例）
実施形態の第３の変形例について説明する。スクリーン１２は、形状が固定的のものに限られない。例えば、図１８に例示されるように、吊るした布によりスクリーン３２０を構成してもよい。このとき、スクリーン３２０は、下端側を開放して風や振動などで容易に揺動可能とすると好ましい。プロジェクタ装置１１により、仮想水槽３１の投影画像を、このスクリーン３２０に投射させた場合に、スクリーン３２０が揺動することで、水中の様子により近い画像を得ることができる。また、プロジェクタ装置１１によりスクリーン３２０の裏面側から投射する場合、間に人が入ることで、影絵と魚の絵によるユーザオブジェクトとを一緒に表示でき、より遊びの要素を高めることができる。
【０１０５】
（実施形態の第４の変形例）
実施形態の第４の変形例について説明する。実施形態の第４の変形例では、仮想水槽３１に対して背景画像を追加する。例えば、ユーザオブジェクトとは別個に距離情報（座標情報）を持ったオブジェクト（背景オブジェクトと呼ぶ）を、仮想水槽３１内に配置する。また、仮想水槽３１の奥行Ｄの位置に、高さおよび幅がなす面に平行に１枚の画像による背景オブジェクトを配置することもできる。背景オブジェクトは、固定的としてもよいし、所定のタイミングで変更してもよい。例えば、朝、昼、夜といった１日のうちの時間帯で背景オブジェクトを変更することが考えられる。これに限らず、春夏秋冬といった季節や、年間の行事といった、より長い間隔で背景オブジェクトを変更することも考えられる。これらの場合、背景オブジェクトを、変更する時間帯や季節、行事などに応じた内容とするとよい。これにより、ユーザは、時間帯や季節、行事などに応じて様々な情景を楽しむことができる。
【０１０６】
（実施形態の第５の変形例）
実施形態の第５の変形例について説明する。実施形態の第５の変形例では、仮想水槽３１内のユーザオブジェクトに対して、ユーザからアクションを起こすことができるようにしている。実施形態の例では、ユーザオブジェクトとして水中に棲息する生物が想定されているので、この生物に対して餌を与えるアクションが考えられる。より具体的には、ユーザは、原稿２１に対して餌を表す絵２２を描画する。このとき、絵２２が餌を表すことを示す情報を、原稿２１に追加する。例えば、図６に示したマーカ２２０1〜２２０3の少なくとも１に、餌であることを識別する情報を埋め込むことが考えられる。ＰＣ１０は、餌の絵２２が描画された原稿２１の画像がスキャナ装置２０で読み取られた原稿画像に基づき、餌の絵２２によるオブジェクト（餌オブジェクトと呼ぶ）を生成し、仮想水槽３１内に追加する。
【０１０７】
このとき、ＰＣ１０は、餌オブジェクトの初期座標として、仮想水槽３１の上側の壁（天井面）、すなわち、高さＨにおける幅Ｗおよび奥行Ｄがなす面内の任意の座標を与える。これに限らず、画像データ空間３０内の、仮想水槽３１の天井面よりさらに上方の座標を与えてもよい。また、ＰＣ１０は、餌オブジェクトの動作として、餌オブジェクトの初期座標から画像データ空間３０における鉛直方向に所定速度で移動（落下）する動作を設定する。餌オブジェクトに対して、移動中に水の抵抗で揺動する動作をさらに与えてもよい。
【０１０８】
このような餌の動作制御は、用紙から読み取った原稿画像から、手書き描画された絵による画像が餌オブジェクトかユーザオブジェクトかを識別し、餌オブジェクトであった場合と、ユーザオブジェクトであった場合とで、パラメータｐ0〜ｐ8の設定方法を制御すればよい。つまり、餌オブジェクトであれば、落下動作用の所定のパラメータｐ0〜ｐ8を設定し、ユーザオブジェクトであれば上述したモード判定および特徴量を利用してパラメータｐ0〜ｐ8を設定するように制御すればよい。
【０１０９】
さらに、ＰＣ１０は、仮想水槽３１内の各ユーザオブジェクトに対して、餌オブジェクトに応じた動作を設定する。例えば、ＰＣ１０は、ユーザオブジェクトに対して、餌オブジェクトに対する距離に応じて餌オブジェクトに近付く動作を設定することが考えられる。すなわち、餌オブジェクトに近いユーザオブジェクトほど、速く餌オブジェクトに近付くようにする。また、ＰＣ１０は、ユーザオブジェクトが餌オブジェクトに接触した場合に、当該餌オブジェクトを仮想水槽３１内から削除することができる。これにより、ユーザオブジェクトが表す例えば魚が餌を捕食した様子を表現できる。
【０１１０】
このような動作制御は、例えば、ＰＣ１０が、オブジェクト毎に餌オブジェクトかユーザオブジェクトかを識別する識別情報を対応付けて全オブジェクトを管理し、各餌オブジェクトの座標と各ユーザオブジェクトとの座標から距離を算出する。そして、算出された距離が閾値以下であるか否かを判定し、閾値以下であると判定した場合に、該当するユーザオブジェクトの進行方向の速度に関するパラメータ（例えばパラメータｐ0およびｐ1）を増加させることで実現できる。
【０１１１】
また、ＰＣ１０は、判定の結果に応じて速度に関するパラメータを増加させたユーザオブジェクトについては、その旨を示すフラグを立ててオブジェクトを管理し、フラグが立っているユーザオブジェクトと餌オブジェクトとの間の距離が閾値以上または０であると判定した場合に、進行方向の速度に関するパラメータ（例えばパラメータｐ0およびｐ1）を低下させるようにしてもよい。ここで、餌オブジェクトが削除された場合に、ユーザオブジェクトと餌オブジェクトとの間の距離が０になるものとする。
【０１１２】
これにより、例えば、フラグが立っているユーザオブジェクトと餌オブジェクトとの間の距離が閾値以上になった場合に、当該ユーザオブジェクトの進行方向の速度を低下させることで、餌オブジェクトから離れたユーザオブジェクトによる生物が落ち着く様子を表現できる。また例えば、フラグが立っているユーザオブジェクトと餌オブジェクトとの間の距離が０になった場合にユーザオブジェクトによる生物の進行方向の速度を低下させることで、当該生物が餌が無くなったために餌の捕食を諦める様子を表現できる。
【０１１３】
さらに、ＰＣ１０は、餌オブジェクトに接触前と接触後とで、ユーザオブジェクトの動作を変更することができる。例えば、ユーザオブジェクトの進行方向の速度を餌オブジェクトの接触後に増加させる、ユーザオブジェクトの進行方向を餌オブジェクトの接触後に変更させるなどが考えられる。また例えば、ユーザオブジェクトの大きさを、餌オブジェクトの接触後に大きくさせることも考えられる。
【０１１４】
このように、実施形態の第５の変形例によれば、ユーザのアクションに応じて仮想水槽３１内の各ユーザオブジェクトの動作が変化するので、遊びの要素をより高めることができる。
【０１１５】
（実施形態の第６の変形例）
実施形態の第６の変形例について説明する。実施形態の第６の変形例では、ＰＣ１０は、仮想水槽３１内に、ユーザにより原稿２１に描画された絵２２に基づき、レイアウト用のオブジェクトを配置する。より具体的には、ユーザは、原稿２１に対して、置石や海藻など、レイアウト用のオブジェクトを表す絵２２を描画する。このとき、絵２２がレイアウト用のオブジェクトを表すことを示す情報を、原稿２１に追加する。ＰＣ１０は、レイアウト用のオブジェクトの絵２２が描画された原稿２１の画像がスキャナ装置２０で読み取られた原稿画像に基づき、レイアウト用のオブジェクトの絵２２によるオブジェクト（レイアウトオブジェクトと呼ぶ）を生成し、仮想水槽３１内に追加する。
【０１１６】
このとき、ＰＣ１０は、レイアウトオブジェクトの初期座標として、例えば仮想水槽３１の下側の壁（床面）、すなわち、高さ０における幅Ｗおよび奥行Ｄがなす面内の任意の座標を与える。また、ＰＣ１０は、レイアウトオブジェクトに対して位置を変更する動作を設定しない。すなわち、レイアウトオブジェクトは、仮想水槽３１内で位置が固定的とされる。なお、レイアウトオブジェクトに対して、上述した変形モードの第２モードのように、垂直方向に伸縮する動きを設定してもよい。
【０１１７】
上記実施形態および各変形例による画像の表示は、２次元表示であっても３次元表示であってもよい。図１９は、２次元の画像を表示する場合の画面例を示す図である。上述のように、ユーザオブジェクトが移動する空間（仮想水槽３１）は３次元の画像データ空間である。図１９の左は、仮想水槽３１を上方から観察した場合の図である。このような仮想水槽３１の画像を視点２３１（カメラ位置）から高さＨおよび幅Ｗがなす面に投影した場合の画像を、ディスプレイやスクリーンに表示することにより、２次元の画像が表示される（図１９の右）。手前のユーザオブジェクトは大きく表示され、奥のユーザオブジェクトは小さく表示されることで、ディスプレイなどの２次元の表示装置への表示でありながら立体感のある表示が可能となる。
【０１１８】
図２０は、３次元の画像を表示する場合の画面例を示す図である。例えば画像制御部１３６は、まず視点２３１を左右すなわち幅Ｗ方向に一定距離（ｄ）ずらした視点２３１ａおよび２３１ｂそれぞれから仮想水槽３１を高さＨおよび幅Ｗがなす面に投影した２つの画像を生成する（図２０の左）。２つの画像は、それぞれ左右の目で仮想水槽３１を観察した場合の画像に相当する。なお、この場合、各視点２３１ａおよび２３１ｂそれぞれについて、左右の死角領域２４０1および２４０2が形成される。画像制御部１３６は、２つの画像の幅をそれぞれ半分にして横に並べる（図２０の中央）。画像制御部１３６は、並べた２つの画像を、例えばサイドバイサイド方式で３Ｄ投影可能なプロジェクタ等の表示装置に出力する（図２０の右）。図２０の右に示すように、出力される画像は、各ユーザオブジェクトがずれて重なったように観察される。手前側に存在するユーザオブジェクトほど、ずれが大きい。ユーザは、例えば３Ｄ対応メガネを介して画像を観察することにより、奥行きのある立体視が可能となる。
【０１１９】
図２０の３次元表示方法は一例でありこれに限られるものではない。例えば、３Ｄメガネを用いずに３次元画像が観察できる裸眼３Ｄ表示方法を適用してもよい。
【０１２０】
なお、上述の実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。
【符号の説明】
【０１２１】
１  表示システム
１０  ＰＣ
１１，１１1，１１2，１１3  プロジェクタ装置
１２，３０１，３１０，３２０  スクリーン
２０  スキャナ装置
２１  原稿
２２，２１２  絵
３０  画像データ空間
３１  仮想水槽
４０1，４０2，４０3，４０4，４０5  ユーザオブジェクト
１１０  ＣＰＵ
１１１  ＲＯＭ
１１２  ＲＡＭ
１１４  ストレージ
１３０  入力部
１３１  画像取得部
１３２  ３Ｄ空間生成部
１３３  領域設定部
１３４  モード判定部
１３５  パラメータ生成部
１３６  画像制御部
１３７  記憶部
２００  用紙
２１０  描画領域
２１１  タイトル記入領域
２１３  矩形領域
２２０1，２２０2，２２０3  マーカ
２３１  視点
２４０1，２４０2  死角領域
【先行技術文献】
【特許文献】
【０１２２】
【特許文献１】特許第４１６１３２５号公報
【図１】
2014238811.tif 000003
【図２】
2014238811.tif 000004
【図３】
2014238811.tif 000005
【図４】
2014238811.tif 000006
【図５】
2014238811.tif 000007
【図６】
2014238811.tif 000008
【図７】
2014238811.tif 000009
【図８】
2014238811.tif 000010
【図９】
2014238811.tif 000011
【図１０】
2014238811.tif 000012
【図１１】
2014238811.tif 000013
【図１２】
2014238811.tif 000014
【図１３】
2014238811.tif 000015
【図１４】
2014238811.tif 000016
【図１５】
2014238811.tif 000017
【図１６】
2014238811.tif 000018
【図１７】
2014238811.tif 000019
【図１８】
2014238811.tif 000020
【図１９】
2014238811.tif 000021
【図２０】
2014238811.tif 000022