以下に添付図面を参照して、表示制御装置、表示制御プログラム、表示システムおよび表示制御方法の実施形態を詳細に説明する。
(第1の実施形態)
図1は、第1の実施形態に係る表示システムの構成を概略的に示す。図1において、表示システム1は、表示制御装置10と、1以上のプロジェクタ装置(PJ)111、112、113と、スキャナ装置20とを含む。表示制御装置10は、例えばパーソナルコンピュータであって、スキャナ装置20で原稿21を読み取って得られた画像データに対して所定の画像処理を施して表示画像データとし、PJ111、112、113に供給する。PJ111、112、113は、表示制御装置10から供給された表示画像データに従い、画像131、132、133を、表示媒体としてのスクリーン12に投射する。
なお、図1のように複数のPJ111、112、113による画像131、132、133を1のスクリーン12に投射する場合、各画像131、132、133の隣接部分に重複部分を設けると好ましい。図1の例では、スクリーン12に投射された画像131、132、133をカメラ14により撮像し、表示制御装置10が、撮像画像データに基づき各画像131、132、133、あるいは、各PJ111、112、113を制御して、重複部分の画像を調整している。
このような構成において、例えば、ユーザ23が手書きにて絵22を描いた原稿21を作成し、この原稿21の画像をスキャナ装置20に読み取らせる。第1の実施形態では、絵22は、予め与えられた輪郭線に応じて色を塗っていく、所謂塗り絵として描画される。換言すれば、ユーザは、色が塗られていないデザインだけが描かれた原稿21に対して色を塗る作業を行う。スキャナ装置20は、原稿21の画像を読み取って得た原稿画像データを表示制御装置10に供給する。表示制御装置10は、スキャナ装置20から供給された原稿画像データからデザインの部分の画像データ、つまり絵22に対応する部分の画像データを抽出し、抽出した画像データを、表示処理の対象となるユーザ画像データとして保持する。
一方、表示制御装置10は、例えば座標(x,y,z)で表現される3次元の座標系を持つ画像データ空間を生成する。第1の実施形態では、2次元でデザインされた塗り絵から抽出したユーザ画像データに基づいて、ユーザの描画を反映した3次元の立体形状のユーザオブジェクトを形成する。つまり、2次元のユーザ画像データを3次元デザインのオブジェクトにマッピングすることで、ユーザオブジェクトを形成する。表示制御装置10は、ユーザオブジェクトに対してこの画像データ空間内の座標を与えて当該ユーザオブジェクトを当該画像データ空間内に配置する。
なお、ユーザに3次元デザインの塗り絵を行わせるようにしてもよい。例えば、原稿21のような紙媒体を用いる場合、複数の塗り絵を行わせ、これを合成することで3次元のユーザオブジェクトを形成することが考えられる。
また例えば、紙でなくタブレット端末といった、表示デバイスと入力デバイスとが一体的に形成され、ユーザの入力デバイスに対する指定位置に応じて座標情報を入力可能な情報処理端末を利用することも考えられる。この場合、当該情報処理端末は、表示バイスに表示される画面に3次元デザインのオブジェクトを表示することができる。ユーザは、当該情報処理端末の画面に表示された3次元デザインのオブジェクトを、入力デバイスに対するユーザ操作により回転させながら塗り絵をすることで、3次元オブジェクトに対して直接的に塗り絵を行うことができる。
なお、各実施形態では、原稿21のような紙媒体を使用してユーザに描画を行ってもらうことを想定して説明を行うが、本発明により開示される技術の中には、紙媒体を使用する利用形態に限らず、情報処理端末により表示される画面を介して描画を行ってもらうような利用形態においても適用可能な技術がある。よって、本発明により開示される技術の適用範囲は、必ずしも紙媒体を使用する利用形態に限られるものではない。
表示制御装置10は、この、ユーザオブジェクトを含む3次元の画像データ空間を2次元の画像データ平面に投影し、投影して生成された画像データを、PJ111、112、113の台数分に分割して、各PJ111、112、113に供給する。
ここで、表示制御装置10は、ユーザオブジェクトに対して、画像データ空間内での動きを与えることができる。例えば、表示制御装置10は、ユーザオブジェクトの元になるユーザ画像データの特徴量を求め、求めた特徴量に基づき、ユーザオブジェクトの動きに関する各パラメータを生成する。表示制御装置10は、このパラメータをユーザオブジェクトに適用して、ユーザオブジェクトに対して画像データ空間内での動きを与える。
このようにすることで、ユーザ23は、自身が手書きにて作成した絵22に基づくユーザオブジェクトを、3次元の画像データ空間内で、描いた絵の特徴に応じて動く画像として観察することができる。また、表示制御装置10は、複数のユーザオブジェクトを同一の画像データ空間内に含めることができる。したがって、複数のユーザ23が上述の操作を行うことで、各ユーザ23が原稿21に描いた絵22が1つの画像データ空間内を移動することになる。また1人のユーザ23が上述の操作を複数回繰り返してもよい。表示制御装置10は、異なる複数の絵22に基づくユーザオブジェクトを、それぞれ、3次元の画像データ空間内で動く画像として表示させ、ユーザ23は、その様子を観察することができる。
図2は、第1の実施形態に係る表示システム1による、スクリーン12に投影される画像13の例を示す。図2の例では、図1に示した画像131、132および132が互いに重複部分を含んで隣接した画像を、画像13として纏めて示している。
詳細は後述するが、第1の実施形態に係る表示システム1は、ユーザ23による手書きの絵22の画像データ(ユーザ画像データ)をマッピングした3次元の第1の形状による第1のユーザオブジェクトを2次元の画像データ平面に投影した画像を画像13に表示させる。また、表示システム1は、第1のユーザオブジェクトの表示の後、第1の形状とは異なる形状の3次元の第2の形状に当該絵22の画像データをマッピングした第2のユーザオブジェクトを3次元の画像データ空間に配置した様子を、2次元の画像データ平面に投影した画像を画像13に表示させる。このとき、表示システム1は、第2のユーザオブジェクトによる画像を、既に表示されている第1のユーザオブジェクトによる画像と例えば挿げ替えて、画像13に表示させる。
なお、以下では、特に記載の無い限り、「3次元形状のユーザオブジェクトを2次元の画像データ平面に投影した画像」を、単に「ユーザオブジェクト」として説明を行う。
より具体的な例として、第1の形状は、卵を模した形状とされ、第2の形状は、第1の形状と異なる形状である、恐竜を模した形状とされる。画像13内において、第1の形状の第1のユーザオブジェクトを、第2の形状の第2のユーザオブジェクトに挿げ替えて表示させることで、卵から恐竜が生まれる様子を表現する。また、ユーザ23は、卵がデザインされた塗り絵の原稿21に対して塗り絵を行う。ユーザ23が種々の色を任意に用いて自由に模様を描き作成された、ユーザによる手書きの絵22は、第1の形状が模す卵の殻の模様として第1のユーザオブジェクト上に反映され表示されると共に、第2の形状が模す恐竜の柄として反映され第2のユーザオブジェクト上に表示される。これにより、ユーザ23に、自身が作り上げた絵柄の卵からその絵柄を反映した恐竜が生まれてくるアニメーションを見せることができ、ユーザの興味や関心、あるいは好奇の目を向けさせることができる。
図2において、画像13の水平方向をX方向、垂直方向をY方向とする。画像13が垂直方向に2分割され、2分割された下側の領域が地面を表現する陸領域30、上側の領域が空を表現する空領域31とされている。陸領域30と空領域31との境界は、水平線を表現する。詳細は後述するが、陸領域30は、画像13の下端から水平線に向けた奥行きを持つ水平面である。
図2において、画像13は、陸領域30に、それぞれ異なる絵22による画像データがマッピングされた複数の第2のユーザオブジェクト401〜4010を含んでいる。詳細は後述するが、各第2のユーザオブジェクト401〜4010は、陸領域30による水平面上を、例えば各々ランダムな方向に歩行(移動)することができる。なお、画像13は、空領域31を飛行(移動)するユーザオブジェクトを含んでいてもよい。
画像13は、岩を模した固定オブジェクト33や、樹木を模した固定オブジェクト34を含む。これら固定オブジェクト33および34は、陸領域30による水平面に対して、それぞれ位置を固定として配置される。固定オブジェクト33および34は、画像13における視覚的な効果が考慮されると共に、各第2のユーザオブジェクト401〜4010の移動に対する障害物として機能する。また、画像13は、陸領域30における最も奥行きが深い部分(例えば水平線の位置)に、背景オブジェクト32が、位置を固定として配置される。この背景オブジェクト32は、主に、画像13における視覚的な効果が考慮されたものである。
このように、第1の実施形態に係る表示システム1は、ユーザ23が手書きにより作成した絵22による画像データがマッピングされて生成された第1のユーザオブエジェクトを画像13に表示させ、当該絵22による画像データがマッピングされた、第1のユーザオブジェクトとは形状の異なる第2のユーザオブジェクトを第1のユーザオブジェクトと挿げ替えて画像13に表示させる。そのため、ユーザは、自身の作成した絵22がどのような形で第1のユーザオブジェクトに反映され、さらに第1のユーザオブジェクトと形状の異なる第2のユーザオブジェクトに反映されるかに対し、期待感を持つことができる。
なお、自身が作成した絵22の形状をベースにその形状が変化する様子を見せる方が、ユーザにとっては、自分の作成した絵22から第2の形状のオブジェクトが生成されたように見える。そのため、第1の形状は、ユーザが手書きにより作成した絵22と同一の形状を表現する形状である方が、ユーザの参加意識を満たすには効果的であるだろう。1つの方法として、原稿21にデザインされた2次元の第1の形状に対してユーザ23が塗り絵をすることで作成された絵22に基づき、表示画面上では、まず、3次元の第1の形状にユーザ23が描画した塗り絵の内容を反映した第1のユーザオブジェクトが表示され、そこから、3次元の第2の形状にユーザ23が描画した塗り絵の内容を反映した第2のユーザオブジェクトが表示される、という方法が考えられる。
(第1の実施形態に適用可能な構成例)
図3は、第1の実施形態に適用可能な表示制御装置10の一例の構成を示す。図3の表示制御装置10において、バス1010に対してCPU(Central Processing Unit)1000、ROM(Read Only Memory)1001、RAM(Random Access Memory)1002およびグラフィクスI/F1003が接続される。表示制御装置10において、さらに、バス1010に対してストレージ1004、データI/F1005および通信I/F1006が接続される。このように、表示制御装置10は、一般的なパーソナルコンピュータと同等の構成を適用することができる。
CPU1000は、ROM1001およびストレージ1004に予め記憶されるプログラムに従い、RAM1002をワークメモリとして用いて、この表示制御装置10の全体を制御する。グラフィクスI/F1003は、モニタ1007が接続され、CPU1000により生成された表示制御信号を、モニタ1007が表示可能な信号に変換して出力する。また、グラフィクスI/F1003は、表示制御信号を、プロジェクタ装置111、112および113が表示可能な信号に変換してそれぞれ出力することができる。
ストレージ1004は、データを不揮発に記憶することが可能な記憶媒体であって、例えばハードディスクドライブが用いられる。これに限らず、ストレージ1004として、例えばフラッシュメモリなどの不揮発性の半導体メモリを用いてもよい。ストレージ1004は、上述のCPU1000が実行するためのプログラムや各種のデータが格納される。
データI/F1005は、外部の機器との間でのデータの入出力を制御する。例えば、データI/F1005は、スキャナ装置20に対するインタフェースとして用いられる。また、データI/F1005は、マウスなどのポインティングデバイスや図示されないキーボード(KBD)からの信号が入力される。さらに、CPU1000で生成された表示制御信号を、このデータI/F1005から出力して、例えば各プロジェクタ装置111、112および113に供給してもよい。このようなデータI/F1005としては、USB(Universal Serial Bus)やBluetooth(登録商標)といったインタフェースを適用することができる。
通信I/F1006は、インターネットやLAN(Local Area Network)といったネットワークを介した通信を制御する。
図4は、第1の実施形態に係る表示制御装置10の機能を説明するための一例の機能ブロック図である。図4において、表示制御装置10は、入力部100と画像制御部101とを含む。入力部100は、抽出部110と画像取得部111とを含む。また、画像制御部101は、パラメータ生成部120と、マッピング部121と、記憶部122と、表示領域設定部123と、動作制御部124とを含む。
これら入力部100に含まれる抽出部110および画像取得部111と、画像制御部101に含まれるパラメータ生成部120、マッピング部121、記憶部122、表示領域設定部123および動作制御部124とは、CPU1000上で動作する表示制御プログラムにより実現される。これに限らず、抽出部110、画像取得部111、パラメータ生成部120、マッピング部121、記憶部122、表示領域設定部123および動作制御部124を、互いに協働して動作するハードウェア回路により構成してもよい。
入力部100は、手書きにて作成された絵22を含むユーザ画像を入力する。より具体的には、入力部100において抽出部110は、スキャナ装置20から供給された、用紙21を読み取って得た画像データから、手書き描画を含む領域と、用紙21に予め印刷される画像(マーカなど)に基づく所定の情報とを抽出する。画像取得部111は、スキャナ装置20から供給された画像データにおける、抽出部110により抽出された領域から、手書き描画された絵22の画像を、ユーザ画像として取得する。
画像制御部101は、入力部100に入力されたユーザ画像に基づくユーザオブジェクトを画像13内に表示させる。より具体的には、画像制御部101において、パラメータ生成部120は、入力部100により入力されたユーザ画像を解析する。また、パラメータ生成部120は、ユーザ画像の解析結果に基づき、当該ユーザ画像に基づくユーザオブジェクトに対するパラメータを生成する。このパラメータは、ユーザオブジェクトを画像データ空間内で動かす際の制御に利用される。マッピング部121は、予め用意された、3次元の座標情報を持つ立体形状モデルに対して、ユーザ画像データをマッピングする。記憶部122は、例えばストレージ1004に対するデータの記憶および読み出しを制御する。
表示領域設定部123は、座標(x,y,z)で表現される3次元の座標系を持つ画像データ空間に基づき、画像13に表示させる表示領域を設定する。より具体的には、表示領域設定部123は、当該画像データ空間内に、上述した陸領域30および空領域31を設定する。また、表示領域設定部123は、当該画像データ空間内に、背景オブジェクト32と、固定オブジェクト33および34とを配置する。動作制御部124は、表示領域設定部123により設定された表示領域内に表示されるユーザオブジェクトに対して所定の動作を与える。
第1の実施形態に係る表示制御装置10の各機能を実現するための表示制御プログラムは、インストール可能な形式また実行可能な形式のファイルでCD(Compact Disk)、フレキシブルディスク(FD)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供される。これに限らず、表示制御ログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、表示制御プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。
表示制御プログラムは、上述した各部(抽出部110、画像取得部111、パラメータ生成部120、マッピング部121、記憶部122、表示領域設定部123および動作制御部124)を含むモジュール構成となっている。実際のハードウェアとしては、CPU1000がストレージ1004などの記憶媒体から当該表示制御プログラムを読み出して実行することにより、上述した各部がRAM1002などの主記憶装置上にロードされ、抽出部110、画像取得部111、パラメータ生成部120、マッピング部121、記憶部122、表示領域設定部123および動作制御部124が主記憶装置上に生成されるようになっている。
図5は、第1の実施形態に係る表示領域設定部123により設定される表示領域の例を示す。画像データ空間は、図5(a)に示されるように、互いに直行するx軸、y軸およびz軸により座標(x,y,z)として表され、x軸が水平方向、y軸が垂直方向、z軸が奥行き方向を示す。
図5(b)は、画像データ空間における水平面すなわちx−z平面を示す。図5(b)の例では、z軸方向において最も手前、すなわち座標z=z0において、x軸方向で座標x=x0から座標x=x1の範囲が画像13として表示される範囲となる。画像13は、強調された遠近法により奥行き方向が表現され、座標z=z0からより奥の座標z=z1に進むに連れ、x軸方向の表示範囲が広くなる。図5(b)において、座標x=x0および座標x=x1に対するz軸方向の延長線52aおよび52bに挟まれる領域が、画像13として表示される画像データ空間内の領域である表示領域50となる。また、当該延長線の外側の領域51aおよび51bは、座標としては定義されるが、画像13には表示されない。これら領域51aおよび51を、以下では、非表示領域51aおよび51bと呼ぶ。
図5(c)は、画像13のX方向(水平方向)およびY方向(垂直方向)を示す。画像13は、例えば表示領域50の全体が表示される。図5(c)の例では、画像13のY方向の下端におけるX方向の両端は、画像データ空間におけるx方向の座標x0および座標x1に対応する。また、座標x0およびx1からそれぞれY方向に伸びる線は、図5(b)に示した延長線52aおよび52bにそれぞれ対応する。陸領域30は、画像13において、座標y0および座標z0〜z1で示される面(水平面)を含む。空領域31は、画像13において、例えば座標z1および座標y0〜座標y1で示される面を含む。
なお、表示領域設定部123は、画像13における陸領域30および空領域31の割合を変化させることができる。画像13における陸領域30および空領域31の割合を変化させることで、ユーザの、表示領域50に対する視点を変更することが可能である。
(第1の実施形態に係る原稿画像読み取り処理)
図6は、第1の実施形態に係る原稿画像読み取り処理を示す一例のフローチャートである。このフローチャートによる処理の実行に先立って、ユーザによる手書きの絵が作成される。ここでは、ユーザは、予めフォーマットが定められた用紙に対して手書きの描画を行うものとする。ユーザが使用するこの専用の用紙は、例えば、本表示システム1を利用してサービスを提供する提供者により供給される。
また、以下では、画像制御部101は、画像13に対して、上述したように、卵の形状を模した第1の形状による第1のユーザオブジェクトを、恐竜の形状を模した第2の形状による第2のユーザオブジェクトと挿げ替えて表示させ、卵から恐竜が生まれる様子を表現するものとする。ユーザは、用紙に対して、第1の形状による第1のユーザオブジェクト上に表示される絵を手書きにて描画する。第1の形状が卵の形状を模すこの例では、手書きにて描画される絵は、卵の殻上の模様として、第1のユーザオブジェクト上に表示される。
図7は、第1の実施形態に適用可能な、手書き描画を行うための用紙の例を示す。図7に示される用紙500において、タイトルを記入するタイトル記入領域502と、ユーザが描画する描画領域510とが配される。ここでは、卵の形状を形どった輪郭を描画領域510としたデザインが配される。図8(a)に、描画領域510に対して絵531が描画され、タイトル記入領域502にタイトルを示すタイトル画像530が描画された様子を示している。
さらに、用紙500に対して、四隅のうち3の隅にマーカ5201、5202および5203が配される。マーカ5201、5202および5203は、用紙500の向きおよび大きさを検出するためのマーカである。
図6のフローチャートにおいて、ユーザの手書き描画による絵531が描画された用紙500の画像がスキャナ装置20により読み取られ、読み取られた画像による原稿画像データが表示制御装置10に供給され、ステップS100で入力部100に入力される。
次のステップS101で、表示制御装置10において、入力部100は、抽出部110により、入力された原稿画像データから、ユーザ画像データを抽出する。
先ず、入力部100は、抽出部110により、原稿画像データから、例えばパターンマッチングなどを用いて各マーカ5201〜5203を検出する。抽出部110は、検出された各マーカ5201〜5203の原稿画像データ上の位置に基づき、原稿画像データの方向および大きさを判定する。用紙500における描画領域510位置は、決まっている。そのため、用紙500上での描画領域510の位置を示す情報をストレージ1004に予め記憶し、マーカ520に基づき原稿画像データの方向を揃え、用紙サイズと画像サイズとの比率が分かれば、比率に応じた相対位置から原稿画像データに含まれる描画領域510を抽出することができる。よって、抽出部110は、上述のようにして取得した原稿画像データの向きとサイズとに基づき、原稿画像データから描画領域510を抽出する。
描画領域510で囲まれた領域の画像は、ユーザ画像データとして扱われ、ユーザ画像データは、ユーザにより描画された描画部分と、描画されずに残った空白部分とを含んでよい。描画領域510にどのような描画がなされるかは、描画を行うユーザ次第となる。
また、画像取得部111は、ストレージ1004に予め記憶されるタイトル記入領域502の用紙500上での位置を示す情報に基づき、当該タイトル記入領域502内の画像530を、タイトル画像データとして取得する。図8(b)は、原稿画像データから抽出された描画領域510およびタイトル記入領域502の画像データによる画像の例を示す。
入力部100は、画像取得部111により取得されたユーザ画像データおよびタイトル画像データを画像制御部101に渡す。
次のステップS102において、画像制御部101は、パラメータ生成部120により、ステップS101で抽出されたユーザ画像データを解析する。次のステップS103で、画像制御部101は、パラメータ生成部120により、ユーザ画像データの解析結果に基づき、複数の第2の形状から、ユーザ画像データに対応する第2の形状を決定する。
図9は、第1の実施形態に適用可能な第2の形状の例を示す。図9(a)〜図9(d)に例示されるように、第1の実施形態に係る表示システム1は複数の第2の形状として、例えば互いに異なる4種類の形状41a、41b、41cおよび41dを予め用意する。図9(a)の例では、形状41aが恐竜「ティラノサウルス」、形状41bが恐竜「トリケラトプス」、形状41cが恐竜「ステゴサウルス」、形状41dが恐竜「ブラキオサウルス」の形状をそれぞれ模している。なお、複数種類の第2の形状はどれも恐竜のカテゴリーで統一されているが、必ずしも同一のカテゴリーに統一しなければならないわけではない。
これら4種類の形状41a〜41dは、それぞれ3次元の座標情報を持つ立体形状データとして予め用意される。これら4種類の形状41a〜41dは、移動速度の範囲や移動時の動作、停止時の動作などにおける特徴(動作特徴)が、種類毎に予め設定される。また、これら形状41a〜41dを示す各立体形状データは、向きが定義される。各立体形状データは、表示領域50内を移動する場合に、この向きに従い移動方向が制御される。形状41a〜41dを示す各立体形状データは、例えばストレージ1004に記憶される。
パラメータ生成部120は、ユーザ画像データを解析して、ユーザ画像データにおける色分布、エッジ分布、描画部分の面積や重心など、ユーザ画像データの各特徴量を求める。パラメータ生成部120は、ユーザ画像データの解析結果から求めた各特徴量のうち1以上の特徴量を用いて、複数の第2の形状から、ユーザ画像データに対応する第2の形状を決定する。
これに限らず、パラメータ生成部120は、ユーザ画像データの解析結果に基づき得られるさらに他の情報を、第2の形状を決定するための特徴量として用いることができる。また、パラメータ生成部120は、タイトル画像データを解析して、解析結果を第2の形状を決定するための特徴量として用いることもできる。さらには、原稿画像データ全体の特徴量を用いて第2の形状を決定してもよいし、画像データの特徴量を使わずに、使用する第2の形状をランダムに決定してもよい。
つまり、実際に表示画面に表示されるまでユーザにはどんな種類の形状(恐竜)が出てくるのか分わからないようにすることで、ユーザを楽しませる効果が期待できる。使用する第2の形状を単純にランダムに決定すると、ユーザが出て欲しいと期待する形状が出るか否かは、運まかせになる。一方、使用する第2の形状の決定に原稿画像データから得られる情報が影響するのであれば、そこには、用紙に絵を描くユーザが操作可能な規則性が生じる。原稿画像データから利用する情報が単純である程、ユーザは、容易に規則性を発見でき、自身が望む種類の形状(恐竜)を意図的に出そうとすることが可能になる。使用する第2の形状を決定するためにどの程度のレベルまでランダム性を持たせたいかによって、決定に利用するパラメータを選択すればよい。
したがって、例えば用紙500に対して複数の種類の第2の形状から第2の形状を特定するための情報(マーカなど)を予め印刷しておくことも可能である。この場合、例えば入力部100において抽出部110は、用紙500の画像を読み取った原稿画像データから当該情報を抽出し、抽出した情報に基づき第2の形状を決定する。
次のステップS104において、パラメータ生成部120は、ステップS102でユーザ画像データを解析して得た各特徴量のうち1以上の特徴量に基づき、当該ユーザ画像データによるユーザオブジェクトに対する各パラメータを生成する。
次のステップS105で、画像制御部101は、ユーザ画像データと、パラメータ生成部120により決定および生成された第2の形状を示す情報およびパラメータとを、記憶部122によりストレージ1004に記憶する。さらに、画像制御部101は、記憶部122によりタイトル画像をストレージ1004に記憶する。
次のステップS106で、入力部100は、次の原稿画像の読み取りの有無を判定する。入力部100は、読み取りが行われると判定した場合(ステップS106、「有り」)、処理をステップS100に戻す。一方、入力部100は、読み取りが行われないと判定した場合(ステップS106、「無し」)、図6のフローチャートによる一連の処理を終了させる。入力部100は、次の原稿画像の読み取りの有無を、例えば表示制御装置10に対するユーザ操作に応じて判定することができる。
(第1の実施形態に係る表示制御処理)
図10は、第1の実施形態に係るユーザオブジェクトの表示制御処理を示す一例のフローチャートである。ステップS200で、画像制御部101は、現在が、ユーザ画像データに応じたユーザオブジェクトを表示領域50に登場させるタイミングか否かを判定する。画像制御部101は、登場のタイミングではないと判定した場合(ステップS200、「No」)、処理をステップS200に戻し、登場タイミングを待機する。一方、画像制御部101は、現在がユーザオブジェクトの登場タイミングであると判定した場合(ステップS200、「Yes」)、処理をステップS201に移行させる。
ユーザオブジェクトを登場させるタイミングは、例えば、ユーザにより描画された用紙500がスキャナ装置20により読み取られ、表示制御装置10が原稿画像データを受け付けたタイミングとすることができる。換言すれば、表示制御装置10は、ユーザにより絵22が描かれた用紙500がスキャナ装置20により取り込まれたことに応じて、表示領域50に新たなユーザオブジェクトを登場させることができる。
ステップS201で、画像制御部101は、記憶部122により、ストレージ1004から、上述した図6のフローチャートにおけるステップS105で記憶されたユーザ画像データと、第2の形状を示す情報およびパラメータとを読み出す。ストレージ1004から読み出されたユーザ画像データと第2の形状を示す情報とがマッピング部121に渡される。また、ストレージ1004から読み出されたパラメータは、動作制御部124に渡される。
次のステップS202で、画像制御部101は、マッピング部121により、ユーザ画像データを予め用意された第1の形状にマッピングして、第1のユーザオブジェクトを生成する。図11は、第1の実施形態に適用可能な第1のユーザオブジェクトの生成の例を示す。図11(a)は、第1の形状としての、卵の形状が適用された形状55の例を示す。形状55は、3次元の座標情報を持つ立体形状データとして予め用意され、例えばストレージ1004に記憶される。
図11(b)は、形状55に対するユーザ画像データのマッピングの例を示す。第1の実施形態では、用紙500の描画領域510に従い描画された絵531のユーザ画像データを、図11(b)に矢印で示されるように、形状55の一方の半面と他方の半面とにそれぞれマッピングしている。すなわち、この例では、絵531のユーザ画像データを複製し、2つのユーザ画像データを用いてマッピングを行っている。図11(c)は、このようにして生成された第1のユーザオブジェクト56の例を示す。マッピング部121は、生成された第1のユーザオブジェクト56を、例えばストレージ1004に記憶する。
形状55に対するユーザ画像データのマッピング方法は、上述の例に限定されない。例えば、1つの絵531のユーザ画像データを、形状55の全周に亘ってマッピングすることも可能である。なお、この例では、用紙500と第1のオブジェクトは、同じ第1の形状を現しているため、ユーザが用紙500の描画領域510に記した模様と第1のユーザオブジェクトに映った模様とが同じものであるとユーザが認識できるようにすると好ましい。
次のステップS203で、画像制御部101は、マッピング部121により、ステップS201で記憶部122から渡された第2の形状を示す情報に従い、当該情報に示される第2の形状にユーザ画像データをマッピングして、第2のユーザオブジェクトを生成する。
図12は、第1の実施形態に適用可能な第2のユーザオブジェクトの生成の例を示す。図12(a)は、第2の形状としての、恐竜の形状が適用された形状41bの例を示す。形状41bは、3次元の座標情報を持つ立体形状データとして予め用意され、例えばストレージ1004に記憶される。
図12(b)は、形状41bに対するユーザ画像データのマッピングの例を示す。第1の実施形態では、用紙500の描画領域510に従い描画された絵531のユーザ画像データを、図12(b)に矢印で示されるように、形状41bの上面から形状41bに対してマッピングしている。すなわち、この例では、絵531のユーザ画像データを1つだけ用いてマッピングを行っている。図12(b)の例では、絵531を含む卵の形状の頂点から底辺を結ぶ卵形状の中心線を、恐竜を模した形状41bにおける恐竜の頭部から尾部への中心線に合わせて、絵531のユーザ画像データの形状41bに対するマッピングを行っている。
なお、マッピング部121は、形状41bにおいてマッピングの方向に対して隠れる面についても、絵531によるユーザ画像データを拡張してマッピングを行う。例えば形状41bが恐竜を模しているこの例では、恐竜の腹部および足裏、ならびに、左右の足の内側にも、絵531によるユーザ画像データを拡張してマッピングを行う。
図12(c)は、このようにして生成された第2のユーザオブジェクト42bの例を示す。マッピング部121は、生成された第2のユーザオブジェクトを、例えばストレージ1004に記憶する。
形状41bに対するユーザ画像データのマッピング方法は、上述の例に限定されない。例えば、上述の図11(b)に示した方法と同様に、2つの絵531のユーザ画像データを、形状41bの両側からそれぞれマッピングすることも可能である。なお、少なくとも、ユーザが第2のユーザオブジェクトを見て、ユーザ自身が描画領域510に描いた模様が利用されていることが分かるように、マッピングがされているのが望ましい。
次のステップS204で、画像制御部101は、動作制御部124により、第1のユーザオブジェクトを画像13に表示させる際の、当該第1のユーザオブジェクトの表示領域50における初期座標を設定する。初期座標は、第1のユーザオブジェクト毎に異なってもよいし、各第1のユーザオブジェクトについて共通でもよい。
次のステップS205で、画像制御部101は、動作制御部124により、第1のユーザオブジェクトに対してステップS204で設定した初期座標を与えて、第1のユーザオブジェクトを表示領域50に登場させる。これにより、第1のユーザオブジェクトが画像13に表示される。次のステップS206で、画像制御部101は、動作制御部124により、ステップS205で表示領域50に登場させた第1のユーザオブジェクトに対して、所定の動作(アニメーションなど)を与える。
次のステップS207で、画像制御部101は、動作制御部124により、第2のユーザオブジェクトを表示領域50に登場させる。このとき、動作制御部124は、第2のユーザオブジェクトの表示領域50における初期座標を、直前の第1のユーザオブジェクトの表示領域50内の座標に従い設定する。例えば、動作制御部124は、直前の第1のユーザオブジェクトの表示領域50内における座標、あるいは、当該座標に対して所定範囲内で選択された座標を、第2のユーザオブジェクトの表示領域50内での初期座標として設定する。これにより、動作制御部124は、第2のユーザオブジェクトを、第1のユーザオブジェクトと挿げ替えて、表示領域50に登場させる。
次のステップS208で、画像制御部101は、動作制御部124により、第2のユーザオブジェクトに対して所定の動作を与える。そして、画像制御部101は、図10のフローチャートによる一連の処理を終了させる。
図13−1、図13−2および図13−3を用いて、上述したステップS205〜ステップS207の処理、および、ステップS208の一部の処理について、より具体的に説明する。図13−1は、図10のステップS205およびステップS206による、第1のユーザオブジェクトが表示領域50内に登場する際の第1のユーザオブジェクトの動作の例を示す。
例えば、上述のステップS204において、画像制御部101は、第1のユーザオブジェクト56に対して、初期座標として例えば座標((x1−x0)/2,y1,z0+r)を与えたものとする(図5参照)。この場合、図13−1(a)に例示されるように、当該第1のユーザオブジェクト56は、画像13において、表示領域50における手前の中央上部から登場する。
なお、第1のユーザオブジェクト56の位置は、例えば第1のユーザオブジェクト56すなわち第1の形状の重心位置を基準とし、値rは、当該重心位置における第1の形状の水平面における半径であるものとする。
この例では、図13−1(b)に例示されるように、画像制御部101は、動作制御部124により、画像13に出現した第1のユーザオブジェクト56を、表示領域50内を画像13の中央まで移動させ、その場でy軸方向の軸を中心にして第1のユーザオブジェクトを回転させながら、所定時間、その位置を保持する。なお、動作制御部124は、図13−1(b)の状態において、第1のユーザオブジェクト56に対応する位置に、タイトル画像データによる画像を重畳して表示させることができる。
さらに、画像制御部101は、動作制御部124により、図13−1(c)に例示されるように、第1のユーザオブジェクト56を陸領域30に移動させる。より具体的には、動作制御部124は、第1のユーザオブジェクト56に対して、座標(xa,y0+h,za)を与える。ここで、値hは、上述した第1の形状の重心位置の高さであり、座標xaおよびzaは、表示領域50内においてランダムに設定される値である。動作制御部124は、第1のユーザオブジェクト56を、この座標(xa,y0+h,za)に移動させる。図13−1(c)の例では、座標za>z0とされ、第1のユーザオブジェクト56がz軸方向に向けて奥に移動するため、画像13において、図13−1(b)における表示に対して小さな表示となっている。
第1の実施形態に係る、図13−2および図13−3を用いて、上述したステップS207の処理、および、ステップS208の一部の処理について説明する。画像制御部101において、動作制御部124は、図13−1(c)の状態を所定時間保持した後、図13−2(a)に示されるように、表示領域50に対して第2のユーザオブジェクト58を登場させ、第2のユーザオブジェクト58を画像13内に表示させる。
なお、動作制御部124は、図13−1(c)の状態を所定時間保持している間、第1のユーザオブジェクト56に対して、例えば、第2のユーザオブジェクト58が表示される予兆を示すような、所定の動作を与えることができる。このような動作としては、第1のユーザオブジェクト56を振動させる、第1のユーザオブジェクト56の大きさを所定周期で変化させる、などが考えられる。
図13−2(a)において、動作制御部124は、第2のユーザオブジェクト58を、直前の第1のユーザオブジェクト56の位置に登場させ、第1のユーザオブジェクト56を、第2のユーザオブジェクト58と挿げ替えて、表示領域50内に登場させる。また、図13−2(a)の例では、第2のユーザオブジェクト58の登場時に、破片のオブジェクト57、57、…を飛散させて、第1のユーザオブジェクト56が模す卵の殻が割れた状態を表現している。破片のオブジェクト57、57、…は、例えば、絵531によるユーザ画像データがマッピングされた第1のユーザオブジェクト56の表面を所定に分割して形成する。
動作制御部124は、第2のユーザオブジェクト58を表示領域50内に登場された直後、図13−2(b)に示されるように、当該第2のユーザオブジェクト58に所定の動作を実行させる。図13−2(b)の例では、動作制御部124は、第2のユーザオブジェクト58の座標yの値を一時的に増加させて、当該第2のユーザオブジェクト58が恰もジャンプしているかのような動作を与える。また、図13−2(b)の例では、動作制御部124は、第2のユーザオブジェクト58の動作に応じて、破片のオブジェクト57、57、…を、図13−2(a)に示した状態に対してさらに飛散させる動作を与えている。
さらに、動作制御部124は、図13−3(a)および図13−3(b)に示されるように、登場した第2のユーザオブジェクト58に対して、登場位置において停止時の所定の動作を与えると共に、破片のオブジェクト57、57、…を消滅させる(図13−3(a))。その動作後、動作制御部124は、パラメータに基づき、第2のユーザオブジェクト58を表示領域50内でランダムまたは所定の方向に移動させる(図13−3(b))。
このように、第1の実施形態によれば、表示システム10は、ユーザが手書きにより作成した絵531によるユーザ画像データがマッピングされて生成された第1のユーザオブジェクト56が、絵531によるユーザ画像データがマッピングされた、第1のユーザオブジェクト56とは形状の異なる第2のユーザオブジェクト58に挿げ替えて画像13に表示されるといった一連の動作(アニメーション)を表現する画像処理を行う。そのため、ユーザは、自身の作成した、第1のユーザオブジェクト56に対応する絵531が、第1のユーザオブジェクト56と形状の異なる第2のユーザオブジェクト58にどのように反映されるかに対し、期待感を持つことができる。
また、第2のユーザオブジェクト58の元となる第2の形状は、ユーザが作成した絵531によるユーザ画像データを解析した解析結果に基づき決定される。そのため、ユーザは、第2のユーザオブジェクト58が表示領域50内に登場して初めて、当該第2のユーザオブジェクト58が形状41a〜41dのうち何れの形状に基づくものかを知ることができ、第2のユーザオブジェクト58の登場について期待感を持つことができる。
なお、例えば、図10のフローチャートによる処理を複数回繰り返すことで、複数の第2のユーザオブジェクト58を表示領域50に登場させ、画像13に表示させることができる。例えば、図6のフローチャートによる処理を、複数の原稿画像に対して順次に実行して、複数のユーザ画像データ、第2の形状を示す情報およびパラメータをストレージ1004に記憶させる。画像制御部101は、図10のフローチャートによる処理を所定のタイミングまたはランダムなタイミングで実行し、ステップS201で、図6のフローチャートによる処理で記憶されたユーザ画像データ、第2の形状を示す情報およびパラメータの組を順次読み出して、その都度、第2のユーザオブジェクト58を表示領域50に追加登場させる。
次に、第1の実施形態に係る、図10のフローチャートにおけるステップS208の処理について、より詳細に説明する。図14は、第1の実施形態に係る、表示領域50内における第2のユーザオブジェクト58を通常モードで移動させるときの表示制御処理を示す一例のフローチャートである。画像制御部101において、動作制御部124は、制御対象の第2のユーザオブジェクト58毎に、図10のフローチャートによる処理を実行する。なお、通常モードとは、後述するイベントモードではないことを示す状態である。
ステップS300で、動作制御部124は、対象の第2のユーザオブジェクト58を移動させるか否かを決定する。例えば、動作制御部124は、対象の第2のユーザオブジェクト58を移動させるか否かを、ランダムに決定する。
動作制御部124は、対象の第2のユーザオブジェクト58を移動させると決定した場合(ステップS300、「Yes」)、処理をステップS301に移行させる。ステップS301で、動作制御部124は、対象の第2のユーザオブジェクト58の移動方向を、陸領域30内においてランダムに設定する。次のステップS302で、動作制御部124は、対象の第2のユーザオブジェクト58に移動の動作を与え、当該第2のユーザオブジェクト58をステップS301で設定された方向に移動させる。
ここで、動作制御部124は、図6のステップS104で生成されたパラメータに従い、移動動作を制御する。例えば、動作制御部124は、ステップS302における第2のユーザオブジェクト58の移動の際の移動速度をパラメータに従い制御する。より詳細には、動作制御部124は、第2のユーザオブジェクト58の、移動の際の最大速度、加速力、方向転換の速さをパラメータに基づき決定する。動作制御部124は、パラメータに基づき決定されたこれらの値を基準として、第2のユーザオブジェクト58を移動させる。また、動作制御部124は、上述したステップS300における移動させるか否かの決定も、パラメータに基づき行うことができる。
パラメータは、上述したように、パラメータ生成部120により、ユーザが描画した絵531の解析結果に基づき生成される。そのため、各第2のユーザオブジェクト58は、同一の種類の第2の形状に基づくものであっても、描画された内容が同一でなければ、それぞれ異なる動作を取ることができる。
次のステップS303で、動作制御部124は、対象の第2のユーザオブジェクト58から所定距離内に、判定対象である他のオブジェクトまたは表示領域50の端が有るか否かを判定する。動作制御部124は、所定距離内に判定対象が無いと判定した場合(ステップS303、「無し」)、処理をステップS300に戻す。
なお、動作制御部124は、対象の第2のユーザオブジェクト58および他のオブジェクトの表示領域50における座標に基づき、他のオブジェクトとの距離判定を行う。また、動作制御部124は、対象の第2のユーザオブジェクト58の表示領域50における座標、および、表示領域50の端の座標に基づき、表示領域50の端との距離判定を行う。第2のユーザオブジェクト58の座標は、例えば第2のユーザオブジェクト58すなわち第2の形状の重心位置の座標を基準とする。
動作制御部124は、所定距離内に判定対象が有ると判定した場合(ステップS303、「有り」)、処理をステップS304に移行させる。ステップS304で、動作制御部124は、対象の第2のユーザオブジェクト58の座標から所定距離内にある判定対象が、表示領域50の端であるか否かを判定する。つまり、動作制御部124は、表示領域50の端を示す座標が、対象の第2のユーザオブジェクト58の座標から所定距離内にあるかを判定する。動作制御部124は、所定距離内に表示領域50の端が有ると判定した場合(ステップS304、「Yes」)、処理をステップS305に移行させる。
ステップS305で、動作制御部124は、対象の第2のユーザオブジェクト58の移動方向の範囲を表示領域50の内側に設定し、処理をステップS300に戻す。
動作制御部124は、ステップS304で所定距離内にある判定対象が表示領域50の端では無いと判定した場合(ステップS304、「No」)、処理をステップS306に移行させる。ステップS304で表示領域50の端はで無いと判定された場合、所定距離内にある判定対象が他のオブジェクトであると判断できる。そのため、動作制御部124は、ステップS306で、対象の第2のユーザオブジェクト58から所定距離内にある判定対象が、障害物すなわち固定オブジェクト33、34かを判定する。
このステップS306による判定を行うために、固定オブジェクト33,34には、予め、ユーザオブジェクトではなく固定オブジェクトであることを識別する識別情報が与えられている。したがって、動作制御部124は、対象の第2のユーザオブジェクト58の所定距離内にある他のオブジェクトに識別情報が付与されているかを確認することで、固定オブジェクトであるか否かを判定する。
動作制御部124は、所定距離内に障害物が有ると判定した場合(ステップS306、「Yes」)、処理をステップS307に移行させる。ステップS307で、動作制御部124は、対象の第2のユーザオブジェクト58の移動方向の範囲を、障害物の方向以外の範囲に設定し、処理をステップS300に戻す。
なお、動作制御部124は、ステップS305またはステップS307からステップS300に処理が戻された場合、対象の第2のユーザオブジェクト58に対してステップS301で移動方向が設定される際に、ステップS305またはステップS307で設定された範囲内でランダムに移動方向を設定し、移動方向の範囲を解除する。
動作制御部124は、所定距離内にある判定対象が障害物では無いと判定した場合(ステップS306、「No」)、処理をステップS308に移行させる。この場合、対象の第2のユーザオブジェクト58から所定距離内に、他の第2のユーザオブジェクトが有ると判断できる。
ステップS308で、動作制御部124は、当該他の第2のユーザオブジェクトおよび対象の第2のユーザオブジェクト58の方向について判定する。具体的には、動作制御部124は、当該他の第2のユーザオブジェクトと対象の第2のユーザオブジェクト58とが向き合うか否かを判定する。より具体的には、動作制御部124は、他の第2のユーザオブジェクトの進行方向の向き(ベクトル)と、対象の第2のユーザオブジェクト58の進行方向の向き(ベクトル)とが、ほぼ逆向きの関係になっており、且つ、互いに近付く進行方向となっているか否かを判定する。動作制御部124は、向き合わないと判定した場合(ステップS308、「No」)、処理をステップS300に戻す。
なお、ステップS308の判定において、ほぼ逆向きの関係になっているか否か、とは、一方のユーザオブジェクトの進行方向が、他方のユーザオブジェクトの進行方向に対して180度±数度の範囲内にあるか否かを判定すればわかる。180度に対してどの程度の角度差の範囲まで許容するかは、適宜決定することができる。このとき、許容範囲がある程度以上大きいと、向き合う状態に見えなくても向き合っていると判定されてしまう。そのため、180度に対する許容範囲は、例えば5度や10度といった小さな範囲となるように適当な値を設定するのが望ましい。
一方、動作制御部124は、ステップS308で向き合うと判定した場合(ステップS308、「Yes」)、処理をステップS309に移行させる。この場合、例えば、他の第2のユーザオブジェクト50および対象の第2のユーザオブジェクト58がこのまま移動すると、これら他の第2のユーザオブジェクトと対象の第2のユーザオブジェクト58とが衝突することになる。ステップS309で、動作制御部124は、これら他の第2のユーザオブジェクトおよび対象の第2のユーザオブジェクト58に対して、衝突時動作を与える。動作制御部124は、これら他の第2のユーザオブジェクトおよび対象の第2のユーザオブジェクト58の衝突時動作が終了すると、双方のユーザオブジェクトは互いに進行方向を向き合わない方向に変えて、処理をステップS300に戻す。
上述したステップS300で、動作制御部124は、対象の第2のユーザオブジェクト58を移動させないと判定した場合(ステップS300、「No」)、処理をステップS310に移行させる。この段階で、対象の第2のユーザオブジェクト58は、移動をやめてその場で停止する。ステップS310で、動作制御部124は、対象の第2のユーザオブジェクト58の、その位置での動作を決定する。この例では、動作制御部124は、対象の第2のユーザオブジェクト58のその位置での動作を、アイドル動作、固有動作および状態維持の何れかに決定する。
動作制御部124は、対象の第2のユーザオブジェクト58のその位置での動作を、アイドル動作に決定した場合(ステップS310、「アイドル動作」)、処理をステップS311に移動させ、対象の第2のユーザオブジェクト58に対して所定のアイドル動作を与え、処理をステップS300に戻す。
なお、動作制御部124は、上述したステップS304、ステップS306およびステップS308の各判定を、それぞれ異なる距離を基準として行うことができる。
動作制御部124は、対象の第2のユーザオブジェクト58のその位置での動作を、固有動作に決定した場合(ステップS310、「固有動作」)、処理をステップS312に移動させる。ステップS312で、動作制御部124は、対象の第2のユーザオブジェクト58に対して、当該対象の第2のユーザオブジェクト58の種類に応じて予め用意された固有動作を与え、処理をステップS300に戻す。
動作制御部124は、対象の第2のユーザオブジェクト58のその位置での動作を状態維持に決定した場合(ステップS310、「状態維持」)、対象の第2のユーザオブジェクト58の現在の動作を維持し、処理をステップS300に戻す。
図15は、第1の実施形態に係る、それぞれ上述のように動作を制御された、表示領域50内の複数の第2のユーザオブジェクト58の移動の様子を概略的に示す。図15(a)は、あるタイミングにおいて、表示領域50内に、複数の第2のユーザオブジェクト581〜5810が登場し、これら複数の第2のユーザオブジェクト581〜5810が画像13に表示されている例を示す。これら複数の第2のユーザオブジェクト581〜5810は、例えば、それぞれ異なる絵531によるユーザ画像データが第2の形状としての形状41a〜41dにマッピングされて生成されたものとする。
図15(b)は、図15(a)の状態から所定時間(例えば数秒)が経過したタイミングでの画像13の表示の例を示す。各第2のユーザオブジェクト581〜5810は、ステップS300において移動するか否かをランダムに決定され、さらに、ステップS301において動作制御部124により移動方向がランダムに設定されている。したがって、各第2のユーザオブジェクト581〜5810は、互いに関連性無く表示領域50内を動き回る。
例えば、第2のユーザオブジェクト582は、表示領域50を奥に進み、第2のユーザオブジェクト583は、同一位置に留まっている。また、第2のユーザオブジェクト585は左方向から右方向に移動方向を変え、第2のユーザオブジェクト587は、右方向から奥方向に移動方向を変えている。また例えば、第2のユーザオブジェクト589および5810は、図15(a)では位置が互いに接近しているが、図15(b)では、互いに離れた位置で表示領域50の奥方向に移動している。
この例では、第2のユーザオブジェクト581〜5810が恐竜を模した形状とされており、各第2のユーザオブジェクト581〜5810がこのように互いに関連性無く移動することで、より自然な表現を得ることができる。
また、このように第2のユーザオブジェクト581〜5810に対する表示制御の実行中にも、図10を用いて説明した、第1のユーザオブジェクト56および第2のユーザオブジェクト58の表示領域50内への登場処理は実行される。したがって、画像13には、図15(a)および図15(b)に示した、1以上の第2のユーザオブジェクト581〜5810の動作と、図13−1〜図13−3を用いて説明した、第1のユーザオブジェクト56の登場、および、第1のユーザオブジェクト56に挿げ替えての第2のユーザオブジェクト58の登場とが同時に表示される。
(第1の実施形態に係るイベント表示の表示制御処理)
次に、第1の実施形態に係るイベント表示の表示制御処理について説明する。第1の実施形態では、画像制御部101は、例えば、図15(a)などに示した、1以上の第2のユーザオブジェクト581〜5810が表示されている状態で、イベントを発生させることができる。画像制御部101は、イベントを、予め定められたタイミング、または、ランダムなタイミングで発生させる。
図16、および、図17−1〜図17−3を用いて、第1の実施形態に係るイベント表示について説明する。図16は、第1の実施形態に係るイベント表示処理を示す一例のフローチャートである。また、図17−1、図17−2(a)、図17−2(b)、図17−3は、第1の実施形態に係るイベント表示による画像13の例を時系列順に示す。
例えば、画像制御部101は、図17−2(a)、図17−2(b)に示されるように、各第2のユーザオブジェクト58と比較して大きいイベントオブジェクト70(第3の画像)を登場させるイベントを発生させる。図17−2(a)、図17−2(b)の例では、イベントオブジェクト70は、各第2のユーザオブジェクト58に対して、高さが数倍程度高い大きさとされている。ここでは、イベントは、イベントオブジェクト70の表示領域50内への登場の予兆動作と、表示領域50内に登場したイベントオブジェクト70の表示領域50内の移動とを含み、イベントの発生に応じて各第2のユーザオブジェクト58の動作が変化する。
図16のフローチャートを用いて、第1の実施形態に係るイベント表示処理について説明する。画像制御部101において、動作制御部124は、制御対象の第2のユーザオブジェクト毎に、図16のフローチャートによる処理を実行する。
ステップS400で、画像制御部101は、動作制御部124により、イベントが発生したか否かを判定する。なお、この段階では、各第2のユーザオブジェクト58は、それぞれ図14において説明した通常モードで動作している。動作制御部124は、イベントを発生していないと判定した場合(ステップS400、「No」)、処理をステップS400に戻す。一方、動作制御部124は、イベントが発生したと判定した場合(ステップS400、「Yes」)、処理をステップS401に移行させる。
動作制御部124は、ステップS401で、イベントが終了したか否かを判定する。動作制御部124は、イベントが終了していないと判定した場合(ステップS401、「No」)、処理をステップS402に移行させる。
ステップS402で、動作制御部124は、対象の第2のユーザオブジェクト58と、イベントオブジェクト70との距離を取得する。ここで、表示領域50にイベントオブジェクト70が未だ登場していなければ、例えば無限大を示す距離を取得する。なお、イベントオブジェクト70は、イベントオブジェクトであることを識別する識別情報が付与されている。次のステップS403で、動作制御部124は、取得した距離が所定距離以内であるか否かを判定する。動作制御部124は、距離が所定距離内ではないと判定した場合(ステップS403、「No」)、処理をステップS404に移行させる。
ステップS404で、動作制御部124は、対象の第2のユーザオブジェクト58に対して、所定のタイミングで特定動作を実行させる。この場合、動作制御部124は、対象の第2のユーザオブジェクト58に特定動作を実行させるか否かをランダムに決定できる。特定動作は、例えば、対象の第2のユーザオブジェクト58のジャンプ動作である。なお、特定動作が終われば(あるいは実行しなければ)、通常モードで移動や停止などの動作を継続する。
特定動作は、ジャンプ動作に限定されない。特定動作は、例えば対象の第2のユーザオブジェクト58がその場で回転する動作であってもよいし、当該対象の第2のユーザオブジェクト58の近傍に何らかのメッセージを表示させるものでもよい。また、特定動作は、当該対象の第2のユーザオブジェクト58の形状を他の形状に一時的に変形させるものであってもよいし、当該対象の第2のユーザオブジェクト58の色を変化させてもよい。さらに、特定動作は、当該対象の第2のユーザオブジェクト58の近傍に対象の第2のユーザオブジェクト58の心境や状態を示す他のオブジェクト(汗のマークを記したオブジェクトなど)を一時的に表示させるものであってもよい。
図17−1は、表示領域50内の第2のユーザオブジェクト5820〜5833がランダムに特定動作を行っている様子を概略的に示す。図17−1の例では、陸領域30における影の位置との関係から、第2のユーザオブジェクト5820、5821および5823がジャンプしていることが分かる(ジャンプしていない他の第2のユーザオブジェクト5828、5829などに比べて、影とオブジェクトとの距離が開いている)。また、この例では、所定の時間間隔で、図中に矢印Vで示すように、画像13内における表示領域50の表示に対し、上下方向に振動する効果が与えられる。ジャンプ動作は、この振動のタイミングに応じて実行される。
動作制御部124は、ステップS404の特定動作の後、処理をステップS401に戻す。
ステップS403で、動作制御部124は、イベントオブジェクト70との距離が所定距離内であると判定した場合(ステップS403、「Yes」)、処理をステップS405に移行させる。ステップS405で、動作制御部124は、対象の第2のユーザオブジェクト58の動作モードを、通常モードからイベントモードに変更する。イベントモードになると、通常モードでの動作は行われず、イベントモード用の動作処理を行う。イベントモード用の動作処理では、イベントが終了していない場合、移動方向を、イベントオブジェクト70から遠ざかる方向に変更し、移動速度をパラメータに基づき設定された最大速度の2倍に設定する。次のステップS406で、動作制御部124は、イベントが終了したか否かの判定を定期的に繰り返し、イベントが終了したと判定されるまで、対象の第2のユーザオブジェクト58を、ステップS405で設定した速度で変更した方向に移動させる。
図17−2(a)は、上述した図17−1の状態からイベントオブジェクト70が表示領域50内に登場した例を示し、図17−2(b)は、図17−2(a)の状態からさらに時間が経過してイベントオブジェクト70が移動した状態の例を示す。なお、イベントオブジェクト70が表示領域50内における登場位置および移動経路は、予め定めておいてもよいし、イベントの発生毎にランダムに決定してもよい。
図17−2(a)では、イベントオブジェクト70が表示領域50の右端側から表示領域50に登場している。図17−2(a)において、各第2のユーザオブジェクト5820〜5833は、イベントオブジェクト70の登場に応じて、図17−1に示される各位置から、表示領域50の左側および奥側などに移動していることが分かる。図17−2(a)の状態から時間が経過し、イベントオブジェクト70が表示領域50内を移動すると、時間の経過およびイベントオブジェクト70の移動に伴い、図17−2(b)に示されるように、表示領域50内の各第2のユーザオブジェクト5820〜5833が、さらにイベントオブジェクト70と離れた位置に移動する。
なお、イベントモードになった場合も、図14で説明したように、近くに他のオブジェクトがあった場合に避ける動作は行われる。但し、イベントモードのときは、固定オブジェクトであっても第2のユーザオブジェクトであっても、他のオブジェクトとぶつからないように動作させる。つまり、イベントモード時には、図14のステップS308およびステップS309において説明したような、他の第2のユーザオブジェクトと向き合っているかどうかの判定や、衝突時動作は行われない。また、図14のステップS304では、所定距離内に障害物、つまり固定オブジェクトが有る否かを判定していたが、イベントモード時には、固定オブジェクトであっても他の第2のユーザオブジェクトであってもステップS307の処理をするため、所定距離内に存在するオブジェクトが固定オブジェクトであるかを識別する必要はない。
さらに、イベントモードになると、動作制御部124は、各第2のユーザオブジェクト5820〜5833を、図5(b)で説明した、非表示領域51aおよび51bに移動させることができるように、移動範囲が制御(拡張)される。これにより、第2のユーザオブジェクトは、イベントオブジェクト表示領域50を超えて移動することができ、イベントオブジェクト70から逃げるようにして画面からいなくなる様子を表すことができる。
さらにまた、画像制御部101は、表示領域設定部123により、座標が定義される領域を拡張することができる。図18は、第1の実施形態に係る、z軸方向において、座標z0よりも手前に、座標z2まで領域を拡張した例を示す。この座標z0から座標z2の範囲の領域53は、画像13に表示されない非表示領域(非表示領域53とする)である。イベントモード時には、動作制御部124は、各第2のユーザオブジェクト5820〜5833を、この拡張された非表示領域53に移動させることもできる。
図14のステップS304およびステップS305において説明したように、動作制御部124は、通常モードにおいては、第2のユーザオブジェクト58が表示領域50を超えて移動し表示領域50から消えてしまうことにならないよう制御する。表示領域50内の第2のユーザオブジェクトの数が所定の制限数を超えることで古い第2のユーザオブジェクト58が表示領域50から消えるといった処理は行われてもよいが、表示の対象となっている第2のユーザオブジェクト58は表示領域50から消えないように制御される。そのため、動作制御部124は、第2のユーザオブジェクト58の移動領域を表示領域50内に定め、第2のユーザオブジェクト58が移動領域の端まで来ているか(表示領域50の端まで所定距離内に近づいているか)を判定し、端に来たら折り返す動作をするように第2のユーザオブジェクト58の向きを変える制御を行う。一方、イベントモードにおいては、動作制御部124は、画像13に表示されない非表示領域を含めて移動領域を定めるため、表示領域50の端まで来ても、第2のユーザオブジェクト58を折り返させることなく、そのままの動作で表示領域50の外に移動することができる。
図17−2(b)の例では、図17−1において表示領域50に存在していた各第2のユーザオブジェクト5820〜5833のうち、第2のユーザオブジェクト5823、5824、5829および5830が画像13に表示されていない。これら第2のユーザオブジェクト5823、5824、5829および5830は、非表示領域51a、51bおよび53に移動されたことが考えられる。また、図17−2(b)において、左端の第2のユーザオブジェクト5833が非表示領域51aに移動中であることが分かる。
なお、動作制御部124は、イベントモード時においては、表示領域50の外に一度出た第2のユーザオブジェクト58をイベントが終了するまで表示領域50内に戻さないように、第2のユーザオブジェクトの動作を制御してもよい。このような動作制御を行う場合、動作制御部124は、イベントが終了したと判定されない場合に、イベントモード時の動作制御として、第2のユーザオブジェクト58が、非表示領域51a、51bまたは53に存在し、かつ、表示領域50の端まで所定距離内にあるか否かを判定する。動作制御部124は、第2のユーザオブジェクト58が非表示領域51a、51bまたは53に存在し、且つ、所定距離内にあると判定した場合、その第2のユーザオブジェクト56が表示領域50内に入ることなく折り返すように、移動方向を向きを変える。
上述したステップS401で、動作制御部124は、イベントが終了したと判定した場合(ステップS401、「Yes」)、処理をステップS407に移行させる。ステップS407で、動作制御部124は、表示領域50の外、つまり、非表示領域に移動した対象の第2のユーザオブジェクト58の移動方向を、表示領域50内の所定の位置に向けて変更する。このとき、動作制御部124は、対象の第2のユーザオブジェクト58のイベント発生直前の位置を所定の位置として移動方向を変更することが考えられる。これに限らず、動作制御部124は、表示領域50内の他の位置、例えば表示領域50内からランダムに選択した位置を所定の位置として移動方向を変更してもよい。
次のステップS408で、動作制御部124は、ステップS407で変更された方向に向けて対象の第2のユーザオブジェクト58を移動させ、対象の第2のユーザオブジェクト58の座標が表示領域50内に位置するか(表示領域50内に戻ったか)否かを確認し、表示領域50内に戻ったことが確認できた場合に、イベントモードを通常モードに変更する。このようにして表示領域50内に戻った各第2のユーザオブジェクトは、次のイベントが始まるまでの間、図14で説明した通常モードの動作に戻る。なお、イベントが終了したと判定された際に、非表示領域に移動することなく表示領域50内に位置していた第2のユーザオブジェクトについては、ステップS407およびステップS408の処理は行わずに、動作モードをイベントモードから通常モードに変更する。
図17−3は、イベントが終了し、各第2のユーザオブジェクト5820〜5833が、ステップS407で変更された移動方向に従い移動している様子を示す。また、非表示領域51a、51bおよび53の何れかに移動していた例えば第2のユーザオブジェクト5823、5824および5833などが、表示領域50内に戻る。このように、イベントが終了すると、表示領域50内の各第2のユーザオブジェクト5820〜5833の様子が、イベント発生前の状態に徐々に戻る。
このように、第1の実施形態では、イベントを発生させ、発生されたイベントに応じて、表示領域50内の各第2のユーザオブジェクト5820〜5833の動作を変更することができる。これにより、ユーザの描画した絵531に基づく第2のユーザオブジェクトの動作をより高度なものとし、ユーザに更なる好奇や関心を持たせることができる。
(第1の実施形態に係る、各形状に与える動作特徴)
次に、第1の実施形態に係る、複数種類の第2の形状それぞれに与える動作特徴について説明する。第1の実施形態では、第2の形状に対して予め設定される1以上の動作のそれぞれに対し、複数種類の第2の形状それぞれについて、動作特徴を予め設定する。表1は、図9で示した、それぞれ恐竜の形状に模した第2の形状に対して設定される動作特徴の例を示す。
表1において、各行は、複数の第2の形状(恐竜#1〜#4)をそれぞれ示し、それぞれ、「モデル」、「アイドル動作」、「仕草」および「戦闘モード」の各項目を含む。恐竜#1〜#4は、各第2の形状が図9(a)〜図9(d)を用いて説明した形状41a、41b、41cおよび41dに対応するものとする。
表1において、項目「モデル」は、その行の第2の形状が模す(モデルにしている)恐竜名を示す。項目「アイドル動作」は、その行の第2の形状が移動していない状態(停止時)における動作を示し、図14のフローチャートのステップS311によるアイドル動作を設定する。この例では、各第2の形状に対し、「その場で息遣い、縦に揺れる」が設定されている。
項目「仕草」は、図14のフローチャートのステップS312による、固有動作を設定する。この例では、恐竜#1および#4に「首を振る」が設定され、恐竜#2に「体を伸ばす、尻尾を振る」が設定され、恐竜#3に「体を揺らす」が設定されている。
項目「戦闘モード」は、図14のフローチャートのステップS309による、衝突時動作を設定する。第2の形状が恐竜を模すこの例では、衝突時動作を、恐竜同士の戦闘に模した動作としている。この例では、項目「戦闘モード」に対し、恐竜#1および#3に「口を開け、体を揺らす」が設定され、恐竜#2に「威嚇して突進」が設定され、恐竜#4に「前足を上げ威嚇」が設定されている。
図19−1および図19−2、図20−1および図20−2、図21−1および図21−2、ならびに、図22−1および図22−2を用いて、表1の恐竜#1〜#4に対する各項目の設定、および、各モデルの基本的な動作のパターンについて、より具体的に説明する。
図19−1および図19−2は、第1の実施形態に係る、恐竜#1に対する各項目の設定の例を示す。恐竜#1は、図9に示した形状41aを第2の形状として持つ。図19−1は、項目「アイドル動作」の設定に応じた動作の例を示す。動作制御部124は、図19−1(a)において、形状41aの恐竜#1の頭部を模した部分に、矢印aで示した上下の動きを与え、且つ、形状41aの全体に矢印bで示した上下に搖動する動きを与える。これにより、形状41aにおける、項目「アイドル動作」の「その場で息遣い、縦に揺れる」を表現している。矢印bの動きは、実際には、例えば形状41aにおける関節に対応する部分を伸縮させることで、全体が搖動して上下する動きとなる。動作制御部124は、形状41aに対して、この矢印aおよびbの動きにより図19−1(a)および図19−1(b)の状態を繰り返すアニメーション動作を与え、アイドル動作を表現する。
図19−2は、項目「仕草」の設定に応じた動作の例を示す。表1によれば、項目「仕草」は、「首を振る」が設定される。この例では、動作制御部124は、形状41aの頭部を模した部分に、矢印cで示した水平方向に搖動するアニメーション動作を与えて、「首を振る」固有動作を表現する。
図20−1および図20−2は、第1の実施形態に係る、恐竜#2に対する各項目の設定の例を示す。恐竜#2は、図9に示した形状41bを第2の形状として持つ。図20−1は、項目「アイドル動作」の設定に応じた動作の例を示す。動作制御部124は、図20−1(a)において、形状41bの恐竜#2の頭部を模した部分に、矢印eで示した上下の動きを与え、且つ、形状41bの全体に矢印dで示した上下に搖動する動きを与える。これにより、形状41bによる、項目「アイドル動作」の「その場で息遣い、縦に揺れる」を表現している。動作制御部124は、形状41bに対して、この矢印dおよびeの動きにより図20−1(a)および図20−1(b)の状態を繰り返すアニメーション動作を与えてアイドル動作を表現する。
図20−2は、項目「仕草」の設定に応じた動作の例を示す。表1によれば、項目「仕草」は、「体を伸ばす、尻尾を振る」が設定される。この例では、動作制御部124は、矢印fで示すように、形状41bの向き方向に全体が伸び上がるような動作と、尾部の尻尾を模した部分に矢印gで示す上下方向の往復動作とを含むアニメーション動作を形状41bに与えて、「体を伸ばす、尻尾を振る」固有動作を表現する。
図21−1および図21−2は、第1の実施形態に係る、恐竜#3に対する各項目の設定の例を示す。恐竜#3は、図9に示した形状41cを第2の形状として持つ。図21−1は、項目「アイドル動作」の設定に応じた動作の例を示す。動作制御部124は、図21−1(a)において、形状41cの恐竜#3の頭部を模した部分に、矢印iで示した上下の動きと、且つ、形状41cの全体に矢印hで示した上下に搖動する動きとを含むアニメーション動作を与える。これにより、形状41cの、項目「アイドル動作」の「その場で息遣い、縦に揺れる」を表現している。動作制御部124は、形状41cに対して、この矢印hおよびiの動きにより図21−1(a)および図21−1(b)の状態を繰り返すアニメーション動作を与えて、アイドル動作を表現する。
図21−2は、項目「仕草」の設定に応じた動作の例を示す。表1によれば、項目「仕草」は、「体を揺らす」が設定される。この例では、動作制御部124は、矢印jで示す形状41cの向き方向に対して直角方向に搖動する動作と、矢印kで示す全体を上下に搖動する動作と含むアニメーション動作を形状41cに与えて、「体を揺らす」固有動作を表現する。
図22−1および図22−2は、第1の実施形態に係る、恐竜#4に対する各項目の設定の例を示す。恐竜#4は、図9に示した形状41dを第2の形状として持つ。図22−1は、項目「アイドル動作」の設定に応じた動作の例を示す。動作制御部124は、図22−1(a)において、形状41dの恐竜#4の頭部を模した部分に、矢印mで示した、首および頭部を模した部分44の上下の動きと、形状41dの全体に矢印lで示した上下に搖動する動きとを含むアニメーション動作を与える。これにより、動作制御部124は、項目「アイドル動作」の「その場で息遣い、縦に揺れる」を表現している。動作制御部124は、形状41dに対して、この矢印mおよびlの動きにより図22−1(a)および図22−1(b)の状態を繰り返すアニメーション動作を与えて、アイドル動作を表現する。
図22−2は、項目「仕草」の設定に応じた動作の例を示す。表1によれば、項目「仕草」は、「首を振る」が設定される。この例では、動作制御部124は、矢印nで示す、形状41dの首および頭部を模した部分を左右に搖動するアニメーション動作を形状41dに与えて、「首を振る」固有動作を表現する。
なお、これらのモデル(第2の形状の種類)毎に設定された上述の基本的な動作のパターンに対して、図6のステップS104でユーザ画像データに基づき生成されるパラメータを作用させてもよい。
例えば、動作制御部124は、アイドル動作において、パラメータに基づき、動き幅(図19−1(a)の例では矢印aおよびb)や、動き速度およびタイミング(時間間隔)を設定することができる。また、歩行動作における歩幅および歩行速度や、登場動作におけるジャンプの高さを、パラメータに基づき設定してもよい。
このように、ユーザ画像データに基づくパラメータを用いて各形状41a〜41dの各動作を調整することで、同じ形状の第2のユーザオブジェクトであっても、それぞれの基本動作が全く同じになるのではなく、描画内容の違いに応じた個性を持たせることができる。
なお、上述では、第1のユーザオブジェクト56の第1の形状が卵を模した形状とされ、第2のユーザオブジェクト58の第2の形状が恐竜を模した形状であるとし、第2のユーザオブジェクト58を第1のユーザオブジェクト56と挿げ替えて表示領域50内に登場させるように説明したが、これはこの例に限定されない。すなわち、第1の実施形態に係る表示システム1に適用可能な第1の形状および第2の形状は、異なる形状であればよい。
一例として、第1の形状および第2の形状として、互いに形状が異なり、且つ、互いに関連性がある物体を模した形状を適用することができる。例えば、上述のように第1の形状を卵を模した形状とし、第2の形状を、卵から孵る生物(鳥類、魚類、昆虫、両生類など)を模した形状とすることができる。この場合、卵から孵る生物は、架空の生物であってもよい。
互いに関連性のある第1の形状および第2の形状は、それぞれ人間を模した形状であってもよい。例えば、第1の形状を子供を模した形状とし、第2の形状を成人を模した形状とすることが考えられる。また、第1の形状と第2の形状とが人物の全く異なる姿を模した形状であってもよい。
重要なことは、見る者が、その2つの形状に相関性を見出すか否かである。このような相関性は、教育、文化、芸術、娯楽など、ユーザがどういった情報を吸収する環境にあるかに依存する。国や地域といったコミュニティの中で広く一般的な情報は、そのコミュニティに本表示システム1によるサービスを提供する場合に活用できる。例えば、「蛙」と「おたまじゃくし」とが成長過程において相関性を持つことは、多くの国に共通するだろう。また、「ハブ」と「マングース」は、日本や日本の一地域である沖縄地方にとっては、相関性のある2種の生物になるかもしれない。また例えば、ある地域で、所謂ヒーローや戦隊ものの映像コンテンツ(映画、TV放映のアニメやドラマなど)に人気が出れば、、例えばそのアニメに登場する人物を第1の形状とし、その人物が変身した後の姿を第2の形状とすることも考えられる。
なお、上記からも明らかなように、互いに関連性のある第1の形状および第2の形状は生物に限らず、一方または両方が無生物であってもよい。例えば、従来より、車や飛行機などの乗り物が、顔、胴、腕、足を模したパーツを有する人型のロボットに変形する映像コンテンツがある。そうすると、第1の形状を、自動車を模した形状とし、第2の形状を、第1の形状が模す自動車が変形したロボットを模した形状とすることも考えられる。さらに、ユーザに興味や関心を抱かせるようなものであれば、第1の形状および第2の形状として、互いに形状が異なり、且つ、互いに関連性が無い物体を模した形状を適用することも可能である。
なお、第1の形状および第2の形状を、卵と恐竜にした例では、恐竜が卵から孵る登場シーンを表示し、以降は恐竜が表示領域50を移動する、とった動作制御を行ったが、これは移動体として連想される対象が恐竜であり、卵が移動体としては連想されないことを考慮している。そこで、卵と恐竜ではなく、例えば、上述した乗り物と人型のロボットを第1の形状および第2の形状とした場合、第1の形状で表示領域50を移動し、あるタイミング(例えばランダムなタイミング)で、表示領域50を移動していた第1の形状がその場で第2の形状に変形する動作を表示し、変形した第2の形状でその場から表示領域50を移動するようにしてもよい。このとき、第1の形状と第2の形状とで表示領域50を移動するときの動作パターンが異なるように各形状に応じた動作パターンを定義し、ユーザ画像データの特徴量から第1の形状で移動するときの動作を制御するパラメータと、第2の形状で移動するときの動作を制御するパラメータと、をそれぞれ設定すると、ユーザオブジェクトの動きがより多彩となる。
(第1の実施形態の変形例)
上述の第1の実施形態に係る表示システム1に対して、物体の位置を検知する検知センサをスクリーン12の近傍に設けることができる。例えば、検知センサは、赤外光の発光部と受光部とを備え、発光部から赤外光を射出し、射出された赤外光の反射光を受光部で受光することで、所定の範囲における物体の存在およびその物体の位置を検知する。これに限らず、検知センサは、カメラが内蔵され、カメラで取得した撮像画像に含まれる対象物体の画像に基づき、対象物体までの距離や、対象物体の位置を検知するようにしてもよい。検知センサをスクリーン12の被投写面側に設置することで、スクリーン12に近付くユーザを検知することができる。検知センサの検知結果は、表示制御装置10に供給される。
表示制御装置10は、検知センサにより検知された物体の位置と、スクリーン12に表示される画像13上の座標とを対応付ける。これにより、検知された物体の位置座標と、表示領域50内の座標とを関連付けることができる。表示制御装置10は、検知された物体の位置座標に対応する表示領域50内の座標を中心として所定の範囲内に何れかの第2のユーザオブジェクト58が存在する場合に、当該第2のユーザオブジェクト58に所定の動作を与えることができる。
このように表示システム1を構成することで、例えば、ユーザがスクリーン12の前で、腕などを伸ばして画像13内に表示される特定の第2のユーザオブジェクト58を指し示すと、ユーザのその動きに応じて特定の第2のユーザオブジェクト58が特別な動作をするといった効果を見せることができる。特別な動作とは、例えば、特定の第2のユーザオブジェクトにジャンプ動作を与えることや、近傍にその特定の第2のユーザオブジェクト58に対して付与されたタイトル画像データ530を表示させる、といったことなどが考えられる。
このとき、表示制御装置10は、例えば、検知センサが物体を検知した瞬間から所定時間(例えば0.5秒)の間に限って検知を認識すると好ましい。これにより、同じ物体が継続的に検知されている状態を排除することができる。
このように、第1の実施形態の変形例に係る表示システム1は、物体の位置を検知する検知センサを設け、検知センサによる検知結果に応じて、表示領域50内の第2のユーザオブジェクト58に所定の動作を与えている。そのため、第1の実施形態の変形例に係る表示システム1は、ユーザに対し、インタラクティブな環境を提供することができる。
(第2の実施形態)
次に、第2の実施形態について説明する。上述した第1の実施形態では、第1の形状に対応する絵を用紙に描画するようにしていた。これに対して、第2の実施形態では、第2の形状に対応する絵を用紙に描画する。
なお、第2の実施形態では、上述した第1の実施形態に係る表示システム1および表示制御装置10の構成をそのまま適用できる。
図23−1および図23−2は、第2の実施形態に適用可能な、ユーザが第2の形状を描画するための用紙の例を示す。なお、ここでは、第2の形状として、図9を用いて説明した形状41a、41b、41cおよび41dを適用するものとする。図23−1および図23−2に示される各用紙は、これら各形状41a、41b、41cおよび41dのうち、形状41aおよび形状41bにそれぞれ対応する。
図23−1は、形状41aに対応する用紙600aの例を示す。図23−1に示される用紙600aにおいて、形状41aが模す恐竜に対する模様を描画するための形状41aの側面を形どった描画領域610aと、描画領域610aの描画に対するタイトルを記入するタイトル記入領域602とが配される。領域603は、この用紙600aが対象とする恐竜の名称が予め印刷される。
用紙600aに対して、四隅のうち3の隅に、用紙600aの向きおよび大きさを検出するためのマーカ6201、6202および6203が配される。また、図23−1の例では、用紙600aの縦方向の両辺に、イラストによるオブジェクトが配される領域621が配される。この領域621に含まれるオブジェクトのうち、左辺の領域621における中央下部に配されるオブジェクト621aは、この用紙600aが形状41a用の用紙であることを示すマーカである。以降、このマーカとして用いるオブジェクト621aを、マーカオブジェクト621aと呼ぶ。
図23−2は、形状41bに対応する用紙600bの例を示す。図23−2に示される用紙600bも用紙600aと同様に、形状41bを形どった描画領域610bとタイトル記入領域602とが配されている。また、用紙600bにおいては、マーカオブジェクト621aが、上述の用紙600aのマーカオブジェクト621aとは異なる位置に配される。この例では、マーカオブジェクト621aは、用紙600bの領域621における右辺の中央上部に配されている。
以下、特に記載の無い限り、用紙600aおよび600bを纏めて用紙600と呼び、描画領域610aおよび610bを纏めて描画領域610と呼び、また、マーカ6201〜6203を纏めてマーカ620と呼ぶ。
このように、用紙600には、実際に、表示領域50に表示され移動などの動作が行われる第2の形状のデザインを形どった描画領域610と、タイトル記入領域602と、用紙の位置、向きおよび大きさを検出するためのマーカ620と、その用紙600が何れの第2の形状をデザインした用紙であるかを特定するためのマーカオブジェクト621aが配される。形状41cおよび41dについても同様であり、それぞれの形状41a、41b、41cおよび41dについて、それぞれが互いに異なる位置にマーカオブジェクト621aが配された用紙600が用意される。
形状41a、41b、41cおよび41dのそれぞれに対応する各マーカオブジェクト621aが配される位置は、予め定められている。したがって、抽出部110は、用紙600を読み取って得た原稿画像データから、それぞれの形状に対応するマーカオブジェクト621aの位置(領域)の画像データを取得し、何れの位置からマーカオブジェクト621aが取得できたかに基づき、形状41a、41b、41cおよび41dのうち何れの形状の用紙600かを判別できる。
なお、何れの形状の用紙600かを判別する方法は、上述の、形状毎にマーカオブジェクト621aの配置位置を変える方法に限定されない。例えば、各形状の用紙600の同じ位置にそれぞれ異なるデザインのマーカオブジェクト621aを配置する方法により、何れの形状の用紙600かを判別してもよい。この場合は、マーカオブジェクト621aが配置される位置の画像データを取得し、何れのデザインのマーカオブジェクト621aが取得できたかに基づき、何れの形状の用紙600かを判別する。またさらには、配置位置を異ならせる方法と、デザインを異ならせる方法との両方を使用して、その組み合わせによるマーカオブジェクト621aを、各形状に応じて一意に配置するようにしてもよい。
(第2の実施形態に係る原稿画像読み取り処理)
図24は、第2の実施形態に係る原稿画像読み取り処理を示す一例のフローチャートである。このフローチャートによる処理の実行に先立って、ユーザによる手書きの絵が作成される。
以下では、画像制御部101は、画像13に対して、卵の形状を模した第1の形状による第1のユーザオブジェクトを、恐竜の形状を模した第2の形状による第2のユーザオブジェクトと挿げ替えて表示させ、卵から恐竜が生まれる様子を表現するものとする。第2の実施形態では、第1のユーザオブジェクトは、例えば広く周知されている白色の卵を表現する。つまり、第1のユーザオブジェクトは、第1の形状として一般的な色彩でデザインされる。また、複数のユーザがそれぞれ異なる描画を行った複数の用紙が読み取られた場合も、第1のユーザオブジェクトについては予め用意された同じ色彩のデザインが用いられる。ユーザは、用紙600a〜600dのうち何れかの用紙に対して、第2の形状による第2のユーザオブジェクト上に表示される絵を手書きにて描画する。第2の形状が恐竜を模すこの例では、手書きにて描画される絵は、恐竜上の模様として、第2のユーザオブジェクト上に表示される。
ここでは、図25(a)に示されるように、ユーザにより用紙600aが選択され、用紙600aの描画領域610aに絵631が描画されているものとして説明を行う。絵631は、第2のユーザオブジェクトの側面の模様とされる。また、図25(a)の例では、タイトル記入領域602に、タイトルを示すタイトル画像630が描画されている。
図24のフローチャートにおいて、ユーザの手書き描画による絵631が描画された用紙600aの画像がスキャナ装置20により読み取られ、読み取られた画像による原稿画像データが表示制御装置10に供給され、ステップS500で入力部100に入力される。
次のステップS501で、入力部100は、抽出部110により、入力された原稿画像データから、何れかのマーカオブジェクト621aを抽出する。次のステップS502で、抽出部110は、ステップS501で抽出されたマーカオブジェクト621aに基づき、原稿画像を読み取った用紙が対応する第2の形状が、形状41a〜41dの何れであるかを特定する。
以下では、用紙が、形状41aに対応する用紙600aであるものとして説明を行う。
次のステップS503で、入力部100は、画像取得部111により、ステップS500で入力された原稿画像データから、用紙600aの描画領域610aに基づきユーザ画像データを抽出する。また、画像取得部111は、用紙600aのタイトル記入領域602内の画像を、タイトル画像データとして取得する。図25(b)は、原稿画像データから抽出された描画領域610aおよびタイトル記入領域602の画像データによる画像の例を示す。
入力部100は、画像取得部111により取得された描画領域610aのユーザ画像データ631およびタイトル記入領域602に記入されたタイトル画像データ630を、画像制御部101に渡す。
次のステップS504において、画像制御部101は、パラメータ生成部120により、ステップS503で抽出されたユーザ画像データを解析する。次のステップS505で、画像制御部101は、パラメータ生成部120により、ユーザ画像データの解析結果に基づき、当該ユーザ画像データによる第2のユーザオブジェクトに対する各パラメータを生成する。
パラメータ生成部120は、第1の実施形態と同様にして、ユーザ画像データを解析して、ユーザ画像データにおける色分布やエッジ分布、描画部分の面積や重心など、ユーザ画像データの各特徴量を求める。パラメータ生成部120は、ユーザ画像データの解析結果から求めた各特徴量のうち1以上の特徴量を用いて、当該第2のユーザオブジェクトに対する各パラメータを生成する。
次のステップS506で、画像制御部101は、ステップS502により特定された第2の形状を示す情報と、ユーザ画像データと、パラメータ生成部120により生成された各パラメータとを、記憶部122によりストレージ1004に記憶する。さらに、画像制御部101は、記憶部122によりタイトル画像をストレージ1004に記憶する。
次のステップS507で、入力部100は、次の原稿画像の読み取りの有無を判定する。入力部100は、読み取りが行われると判定した場合(ステップS507、「有り」)、処理をステップS500に戻す。一方、入力部100は、読み取りが行われないと判定した場合(ステップS507、「無し」)、図24のフローチャートによる一連の処理を終了させる。
(第2の実施形態に係る表示制御処理)
第2の実施形態に係る表示制御処理は、第1の実施形態において図10のフローチャートを用いて説明した表示制御処理と略同一である。ここで、第2の実施形態では、第1の形状による第1のユーザオブジェクトが無地とされるので、図10におけるステップS202の処理が省略される。
図10のステップS203の処理に対応する、第2の実施形態に係る、第2の形状に対するユーザ画像データのマッピングについて、図26を用いて説明する。図26は、第2の実施形態に適用可能な第2のユーザオブジェクトの生成の例を示す。図26(a)は、第2の形状としての形状41aを示す。
図26(b)は、形状41aに対するユーザ画像データのマッピングの例を示す。第2の実施形態では、形状41aに対応する用紙600aの描画領域601に、輪郭610aに従い描画された絵631のユーザ画像データを、図26(b)に矢印で示されるように、形状41aの一方の半面と他方の半面とにそれぞれマッピングしている。すなわち、この例では、絵631のユーザ画像データを複製し、2つのユーザ画像データを用いてマッピングを行っている。図26(c)は、このようにして生成された第2のユーザオブジェクト42aの例を示す。マッピング部121は、生成された第2のユーザオブジェクト42aを、上述と同様に、例えばストレージ1004に記憶する。
なお、第2の実施形態において、第1のユーザオブジェクトおよび第2のユーザオブジェクトの表示領域50内への登場の際の処理は、図10のフローチャートにおいてステップS204以降で説明した処理と同様であるので、説明を省略する。また、第2の実施形態において、第2のユーザオブジェクトに対する表示制御処理は、図14のフローチャートにより説明した処理と同様であり、また、イベントに応じた処理も、図16のフローチャートにより説明した処理と同様であるので、これらの説明を省略する。
このように、第2の実施形態に係る表示システム1は、複数の第2の形状をデザインした用紙600から、ユーザが表示させたい第2の形状を選択して描画し、描画された内容(模様)が反映された第2の形状を表示領域50に表示することができる。また、位置や向きなどを合わせるためのマーカとは違い、マーカオブジェクト621aは、既に用紙600の向きや位置が特定された画像データから抽出することができるため、何らかの形状がデザインされたオブジェクトであれば自由にマーカオブジェクト621aとして使用することができる。そのため、図23−1および図23−2に示したように、第2の実施形態により開示する例では、表示システム1により表示領域50に表示されるオブジェクトや背景のイメージに合ったデザインオブジェクトを、マーカオブジェクト621aとして使用している。
なお、第2の実施形態では、第1のユーザオブジェクトを、描画領域610に描画されたユーザ画像データ631の描画内容を反映せずに表示させたが、これはこの例に限定されない。例えば、第1の実施形態で示した方法を逆の形で利用し、第2の形状の描画領域610に描画されたユーザ画像データ631を、第1の形状の第1のユーザオブジェクトに反映させて表示するようにしてもよい。
(第3の実施形態)
次に、第3の実施形態について説明する。第3の実施形態は、ユーザが描画を行う用紙として、第1の実施形態に係る第1の形状を描画するための用紙500と、第2の実施形態に係る第2の形状を描画するための用紙600a〜600dとが混在する場合の例である。
なお、第3の実施形態では、上述した第1の実施形態に係る表示システム1および表示制御装置10の構成をそのまま適用できる。また、用紙500に配される各マーカ5201〜5203と、用紙600に配される各マーカ6201〜6203は、それぞれ同一の形状であって、抽出部110は、各マーカ5201〜5203と、各マーカ6201〜6203とを区別せずに抽出でき、用紙の向きや大きさを判定できるものとする。
また、第3の実施形態では、第1の形状をデザインした用紙500と、各第2の形状をデザインしたそれぞれの用紙600と、を互いに識別するマーカオブジェクト621aが、各用紙に配されているものとする。また、用紙600においては、各第2の形状のうち何れの第2の形状がデザインされた用紙600かを、マーカオブジェクト621aに基づき識別可能であるものとする。
(第3の実施形態に係る原稿画像読み取り処理)
図27は、第3の実施形態に係る原稿画像読み取り処理を示す一例のフローチャートである。図27のフローチャートにおいて、用紙500、600a〜600dの何れかの画像がスキャナ装置20により読み取られ、読み取られた画像による原稿画像データが表示制御装置10に供給され、ステップS600で入力部100に入力される。
次のステップS601で、入力部100は、抽出部110により、入力された原稿画像データから、各マーカ5201〜5203、または、各マーカ6201〜6203を抽出し、抽出したこれらマーカの位置に基づき、マーカオブジェクト621aを抽出する抽出処理を行う。
次のステップS602で、抽出部110は、ステップS601の処理の結果に基づき、原稿画像データを読み取った用紙の用紙種類を判定する。例えば、抽出部110は、当該用紙から抽出したマーカオブジェクト621に基づき、当該用紙の種類が何れの形状をデザインした用紙であるかを判定する。なお、用紙500にはマーカオブジェクト621aを配置しないことで、第1の形状をデザインした用紙500と、何れかの第2の形状をデザインした用紙600と、を区別してもよい。この場合、抽出部110は、原稿画像データからマーカオブジェクト621aが抽出されない場合に、当該原稿画像データを読み取った用紙が第1の形状をデザインした用紙500(第1の用紙)であると判定し、マーカオブジェクト621aが抽出された場合に、当該用紙が第2の形状をデザインした用紙600(第2の用紙)であると判定することができる。
抽出部110は、当該用紙が第1の用紙であると判定した場合(ステップS602、「第1の用紙」)、処理をステップS603に移行させる。
ステップS603で、入力部100および画像制御部101は、図6のフローチャートのステップS101〜ステップS105の処理に従い、用紙500に対する処理を実行する。次のステップS604で、画像制御部101は、第1のユーザオブジェクト56が表示領域50内に登場する第1の登場パターンを示す識別情報(例えばフラグ)を、例えば記憶部122によりストレージ1004に記憶する。ここで、第1の登場パターンは、第1の実施形態で例示した、ユーザにより描画された絵531によるユーザ画像データがマッピングされた第1のユーザオブジェクト56が表示領域50に登場する登場パターンである。
第1の登場パターンを示す識別情報が記憶されると、処理がステップS607に移行される。
一方、抽出部110は、ステップS602で、当該用紙が第2の用紙であると判定した場合(ステップS602、「第2の用紙」)、処理をステップS605に移行させる。
ステップS605で、入力部100および画像制御部101は、図24のフローチャートのステップS502〜ステップS506の処理に従い、用紙600に対する処理を実行する。次のステップS606で、画像制御部101は、第1のユーザオブジェクト56が表示領域50内に登場する第2の登場パターンを示す識別情報を、例えば記憶部122によりストレージ1004に記憶する。ここで、第2の登場パターンは、第2の実施形態で例示した、固定的な色彩の第1のユーザオブジェクト56が表示領域50に登場する登場パターンである。
ステップS604またはステップS606で、第1の登場パターンまたは第2の登場パターンを示す識別情報が記憶されると、処理がステップS607に移行される。
ステップS607で、入力部100は、次の原稿画像の読み取りの有無を判定する。入力部100は、読み取りが行われると判定した場合(ステップS607、「有り」)、処理をステップS600に戻す。一方、入力部100は、読み取りが行われないと判定した場合(ステップS607、「無し」)、図27のフローチャートによる一連の処理を終了させる。
(第3の実施形態に係る表示制御処理)
図28は、第3の実施形態に係る、ユーザによる用紙500、または、用紙600a〜600dに対する描画に応じた表示制御処理を示す一例のフローチャートである。
ステップS700で、画像制御部101は、現在が、用紙500、または、用紙600a〜600dに対する描画に応じたユーザオブジェクトを表示領域50に登場させるタイミングか否かを判定する。画像制御部101は、登場のタイミングではないと判定した場合(ステップS700、「No」)、処理をステップS700に戻し、登場タイミングを待機する。一方、画像制御部101は、現在がユーザオブジェクトの登場タイミングであると判定した場合(ステップS700、「Yes」)、処理をステップS701に移行させる。
ステップS701で、画像制御部101は、記憶部122により、ストレージ1004から、ユーザ画像データと、第2の形状を示す情報およびパラメータと、第1のユーザオブジェクト56が表示領域50内に登場する登場パターンを示す識別情報とを読み出す。次のステップS702で、画像制御部101は、ステップS701で記憶部122によりストレージ1004から読み出された識別情報に基づき、第1のユーザオブジェクト56の登場パターンが第1の登場パターンおよび第2の登場パターンの何れであるかを判定する。
画像制御部101は、第1のユーザオブジェクト56の登場パターンが第1の登場パターンであると判定した場合(ステップS702、「第1」)、処理をステップS703に移行させて、第1の登場パターンに対応する表示制御処理を行う。より具体的には、画像制御部101は、図10のフローチャートにおけるステップS202以降の処理を実行する。
一方、画像制御部101は、第1のユーザオブジェクト56の登場パターンが第2の登場パターンであると判定した場合(ステップS702、「第2」)、処理をステップS704に移行させて、第2の登場パターンに対応する表示制御処理を行う。より具体的には、画像制御部101は、図10のフローチャートにおけるステップS203以降の処理を実行する。
ステップS703またはステップS704の処理が完了すると、図28のフローチャートによる一連の処理が終了される。
なお、第3の実施形態において、第2のユーザオブジェクト58に対する表示制御処理は、図14のフローチャートにより説明した処理と同様であり、また、イベントに応じた処理も、図16のフローチャートにより説明した処理と同様であるので、これらの説明を省略する。
このように、第3の実施形態に係る表示システム1では、第1の形状に対してマッピングを行うための絵が描画される用紙500と、第2の形状に対してマッピングを行うための絵が描画される用紙600a〜600dとが混在する場合にも対応可能である。
なお、上述の実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。