(57)【要約】      （修正有）【課題】効果的にユーザに情報を提示可能な能動的な情報視覚化技術を提供する。【解決手段】ユーザは、ペンの属性や太さを変更しながらスケッチ操作を行う。このような直感的操作ににより作成されたレイアウトは、ラベリング処理等を通じて再構成され、再構成後のレイアウト上に複数の視覚化情報が自動配置される。この際、視覚化情報は、ペンの太さや塗りつぶしの大きさ等に対応した大きさで表示される。視覚化情報は、レイアウトに沿って自動的にシフトさせることができ、このシフト動作は、左右上下のキー入力等によって制御することができる。【選択図】  図８
2004199130.tif 000002
【特許請求の範囲】
【請求項１】
表示領域に対象情報を表示する情報視覚化方法であって：
ユーザの入力ストロークに対応する表示領域上の軌跡と、前記ストロークに関連する他の情報と、を取得する、工程と；
所定の規則に基づき前記軌跡を再構成する、工程と；
前記他の情報に応じて対象情報の表示パラメータを制御し、前記表示領域において再構成された軌跡に沿って前記対象情報を配置する、工程と；
を含むことを特徴とする、情報視覚化方法。
【請求項２】
前記他の情報は、属性情報であることを特徴とする、請求項1記載の情報視覚化方法。
【請求項３】
前記他の情報は、ユーザが直感的に把握可能な入力操作の特徴に係る情報であることを特徴とする、請求項1記載の情報視覚化方法。
【請求項４】
前記再構成では、前記軌跡のラベリング処理が行われることを特徴とする、請求項1記載の情報視覚化方法。
【請求項５】
前記表示パラメータは、対象情報を表示する際の静的特徴または動的特徴に係るものであることを特徴とする、請求項1記載の情報視覚化方法。
【請求項６】
前記軌跡は2次元的なものであり、前記再構成では前記軌跡の3次元化が行われる、ことを特徴とする、請求項1記載の情報視覚化方法。
【請求項７】
前記配置では、複数の前記対象情報が前記表示領域に同時に表示されることを特徴とする、請求項1記載の情報視覚化方法。
【請求項８】
表示領域に対象情報を表示する情報視覚化装置であって：
ユーザの入力ストロークに対応する表示領域上の軌跡と、前記ストロークに関連する他の情報と、を取得する、手段と；
所定の規則に基づき前記軌跡を再構成する、手段と；
前記他の情報に応じて対象情報の表示パラメータを制御し、前記表示領域において再構成された軌跡に沿って前記対象情報を配置する、手段と；
を備えることを特徴とする、情報視覚化装置。
【請求項９】
表示領域に対象情報を表示する情報視覚化プログラムであって：演算装置を、ユーザの入力ストロークに対応する表示領域上の軌跡と、前記ストロークに関連する他の情報と、を取得する、手段として機能させ；
演算装置を、所定の規則に基づき前記軌跡を再構成する、手段として機能させ；演算装置を、前記他の情報に応じて対象情報の表示パラメータを制御し、前記表示領域において再構成された軌跡に沿って前記対象情報を配置させる、手段として機能させる；
ことを特徴とする、情報視覚化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報視覚化(information visualization：IV)方法、装置、プログラムに関する。
【０００２】
【従来の技術】
情報視覚化は、情報を図@形(視覚化されたノードや関連する画像など)を用いて視覚化し、図@形の持つ抽象性や親しみやすさを利用してユーザに提示する点に特徴があり、情報に対するユーザの理解を支援することができる。例えば、「Stuart K. Card, Jock D. MacKinlay, Ben Shneiderman. Readings in Information Visualization: Using Vision to Think. Morgan Kaufmann, 1999」参照。
【０００３】
従来の情報視覚化では、一般に、画像などを閲覧する際のレイアウトがあらかじめ決まっている。すなわち、従来は、ユーザが既定のレイアウトに合わせてデータや用途を使い分けるという受動的なシステムが一般的であった。
【０００４】
この種のシステムでは、ユーザはあらかじめ定められたレイアウトに従って検索などを行わなければならない。このため、システムはあらかじめ想定したデータのタイプや用途に対しては効果的な役割を果たすが、それ以外のデータのタイプや用途に的確に対応することが困難であり、汎用性小さい。かかる困難を克服するために、複数のレイアウトを用いることで対処を考えているシステムも存在するが、こうしたレイアウトも潜在的には同様の問題を有している。また、２次元レイアウトに加え、３次空間を利用したレイアウトを支援するシステムも多く見られる。３次元を利用することで、情報提示する空間が２次元システムに比べ広くなり、多くの情報を表示できる。しかし、情報が多くなるとその情報を的確に見るために、更にナビゲーション手法が必要となる。
【０００５】
こうした背景から情報視覚化システムは一般に使われておらず、windows(Microsoft社商標)のフォルダレイアウト等で見られるような、一直線上や矩形上に配置する非常に単純なレイアウトの情報視覚化が一般的に使われている。こうした手法は簡単で様々なデータに対応できる反面、情報の関連などを反映することが難しい。このため、用途が非常に限られてしまい、ユーザに対して制約が多いという短所がある。
【０００６】
現在、受動的なシステムとしては、上記両極端な視覚化手法の間に位置するような手法が存在していない。
【０００７】
一方、従来、Maya(Alias|Wavefront社商標)のpaintEffectのように、ユーザが描いたレイアウト上に画像情報を配置する情報視覚化が存在する。この種の情報視覚化は、データや用途を考えてユーザがレイアウトをデザインすることができるため、能動的なシステムということができる。
【０００８】
【発明の解決しようとする課題】
しかしながら、上記従来の能動的な視覚化システムは、基本的に、ユーザ入力ストロークのみを認識し情報の配置を行うものである。また、明示的なオブジェクト上にしか描画できない上に、対象とするデータは画像のみである等、能動的な情報視覚化システムとしての自由度が小さい。近年のコンピュータのハードウェアとソフトウェアの進化に伴い、より情報を自由度が高くかつ効果的に提示する手法が必要である。
【０００９】
本発明は、従来の技術が有する上記その他の課題に鑑みてなされたものであり、能動的な情報視覚化に更なる効果の追加等を可能とすることにより、より効果的にユーザに情報を提示することができる、情報視覚化技術を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明の一の側面においては、表示領域に視覚化情報を表示する情報視覚化において、ユーザの入力ストロークに対応する表示領域上の軌跡と、ストロークに関連する他の情報とを取得する工程/手段と、所定の規則に基づき軌跡を再構成する工程/手段と、他の情報に応じて視覚化情報の表示パラメータを制御し表示領域において再構成された軌跡に沿って視覚化情報を配置する工程/手段と、を含む構成が採用される。
【００１１】
ここで、表示パラメータには、例えば、位置、傾き、大きさ、色や形等が存在する。一般に、軌跡は位置情報によって構成されると考えられるため、本側面では、他の情報に応じて制御する表示パラメータに位置情報以外のパラメータを含め、レイアウトの自由度を高めることが好適である。具体的には、例えば、表示パラメータに大きさを含めることにより、ラベリング処理やパターンマッチング処理により塗りつぶし部分で視覚化情報を大きく表示する構成、或いは入力ペンの太さに応じて視覚化情報の表示サイズを変化させる構成等が実現可能となる。また、表示パラメータに色(特に濃淡)を含めることによりユーザの入力筆圧に応じて視覚化情報の表示の濃淡を変化させる構成、或いは表示パラメータに形を含めることにより軌跡の形に応じて視覚化情報の形を変化させる構成等も実現可能となる。
【００１２】
軌跡に沿った視覚化情報の配置は、例えば、軌跡に沿って所定の規則に従ってノードを設定し、このノードの位置に例えば重心や中心等の位置を合わせて視覚化情報を表示することにより、正確に行うことができる。
【００１３】
入力ストロークは、例えば、第1イベントの発生から第2イベントの発生までの間に行われるユーザの入力動作として特定することができる。第1イベントと第2イベントとは、同一でも非同一でもよい。同一の例としては、第1イベント及び第2イベント共にマウスの左クリックを適用する構成がある。この構成では、例えば、最初に左クリックから次の左クリックまでのユーザによるマウス操作に対応して入力ストロークを得ることができる。非同一の例としては、第1イベントにスタイラスのタブレット表面への接触を適用し第2イベントにスタイラスのタブレット表面からのリリースを適用する構成がある。この構成では、例えば、スタイラスをタブレット表面に接触させて動かす操作として入力ストロークを得ることができる。
【００１４】
なお、本側面では、他の情報を属性情報とすることができる。属性情報は、例えば、入力操作を示すポインタ(例えば、ペン、矢印等)オブジェクトの属性の情報である。なお、この構成を実装する際には、属性の設定のための手段(GUIオブジェクト等)を用意するのが良い。
【００１５】
また、本側面では、他の情報をユーザが直感的に把握可能な入力操作の特徴に係る情報とすることができる。この構成では、入力操作の特徴に係る情報として、特に、例えば、筆圧、入力速度、入力操作のパターン等、五感に基づき容易に把握できるものを適用することが良い。
【００１６】
さらに、本側面では、再構成で軌跡のラベリング処理が行われる構成を採用することができる。ラベリング処理により，入力ストローク(軌跡)の全体を一かたまりとして扱うことが可能となる。このため、この構成を、ラベリング処理を行わずに入力ストローク(軌跡)を点列として扱う構成と組み合わせることにより、情報視覚化システムのレイアウトの自由度を大きく向上させることができる。
【００１７】
また、本側面では、表示パラメータに視覚化情報を表示する際の静的特徴または動的特徴に係るものを採用することができる。静的特徴の例としては、表示の大きさ、傾き、色、濃淡、明るさ等を挙げることができる。動的特徴の例としては、移動や変形の速度・加速度等を挙げることができる。
【００１８】
さらに、本側面では、入力ストロークに対応する軌跡が2次元的なものである場合に、再構成で軌跡の3次元化を行う構成を採用することができる。また、本側面では、複数の視覚化情報を表示領域に同時に表示(配置)することができる。
【００１９】
以上のような一側面を有する本発明によれば、ユーザの入力ストロークに基づいて自動的に視覚化情報を配置することができるため、紙にペンで絵を描くような手軽な操作(以下、スケッチ操作)でユーザが簡単に情報(画像、ファイルやフォルダ、ドキュメント、web page、テキストなど視覚化された情報)を閲覧や検索するためのレイアウトを構築できる。単純なストロークを書くことがユーザ操作の主要部分であるが、様々な属性を持つストロークを組み合わせることで、３次元や階層構造などの複雑なレイアウトを構築でき、情報閲覧や検索をサポートするアニメーションもストローク描画により操作できる。なお、通常、描画はユーザの視野内に限定されるので、特に情報が見える位置に移動することなく、必要な場所に的確に情報を表示し情報を見ることができる。
【００２０】
さらに、本発明によれば、ユーザの入力ストロークに関連する他の情報を取得して、該情報に応じて視覚化情報の表示パラメータを制御するため、例えば、ペンの太さと情報の大きさを連動させることや、塗りつぶしを大きな点とみなすことで、ユーザに直感的な操作を許し、誰でも簡単にシステムを利用しレイアウトの構築が可能である。なお、本発明にかかる情報視覚化は、操作は簡単であるが、視覚化情報の閲覧だけではなく、プレゼンテーション、コミュニケーションやクリエーションなど、様々な用途に利用することができる。
【００２１】
【発明の実施の形態】
以下、好適な実施形態として、本発明を適用したシステムについて図@面を参照しながら説明する。なお、当業者には、本システムがソフトウェアプログラムを中心的な要素として含むことが容易に理解できるものと思料される。また、当業者には、例えば、PC(Personal Computer)、PDA(Personal )、携帯電話、ナビゲーション装置、或いは情報家電等、本システムのソフトウェアプログラムが動作可能な各種の電子機器であって入力手段及び表示装置(ディスプレイ)を有するものに該プログラムを実装することによって、本実施形態の情報視覚化装置を構成可能であることが、容易に理解されると思料される。勿論、本発明の視覚化装置は、各構成手段の全部または一部として機能する専用/汎用のハードウェアを用いて構成することも可能である。また、当業者には、情報視覚化装置またはプログラムの一部または全部を動作させることにより情報視覚化方法を実施可能であることが、容易に理解されるものと思料される。
【００２２】
本実施形態のシステムは、例えば、ディスプレイとマウスを有する一般的なPC上で動作可能である。この構成では、システムに対するユーザの対話は、マウスを使ったスケッチの操作とディスプレイを介したフェードバックとを通じて行われる。
【００２３】
なお、本来であれば、ユーザの入力ストロークとそれに対応する表示領域上の軌跡とは、タブレット型の機器等を除けば、必ずしも一致しないと考えられる。しかし、以下の本実施形態の説明では、必要以上に冗長な説明を省くという観点から、必要に応じて両者の区別を明確にしないまま、説明を行うこととする。
【００２４】
（システム概要）
本実施形態のシステムのインタラクションはスケッチをベースとしているので、情報ノードの大きさをペンの太さでコントロールすることや、情報間をストロークで結ぶことにより情報同士の関連を付加することができる。さらに、パーティクルシステムを使うことで、膨大なデータをスムーズに表示することができる。なお、パーティクルシステムについては、「K. Sims.Particle Animation andRendering Using Data Parallel Computaion. In SIGGRAPH’94 Proceedings, pp.405-413, 1990」参照。
【００２５】
図8には、本システムのGUIデザインの一例を示す。図8のGUIデザインの下方に示されているように、本システムでは、例えばボタンにより、ポインティングオブジェクトであるペンの太さやストロークのタイプを選ぶことができる。ここで、例えば、ノーマルは緑、シャドーは黄、アニメーションは赤、リレーションは白、消しゴムは灰色、テキスト（キーワード等）は青のように、ストロークのタイプ毎にGUIボタンの色を変えることが可能である。この構成では、ユーザが色によりストロークの種類を認識でき、ペイントツールの色の様に使うことができる。また、図8のGUIデザインには、情報をセット或いはクリアするボタン等も含まれている。
【００２６】
ユーザは、これらGUI部品に対してマウスを使って所定の操作を行うことにより、その操作に応じたイベントを発生させ、ペン属性の変更、視覚化情報の選択、或いは視覚化の実行等の意図する処理を本実施形態のシステムに実行させることができる。
【００２７】
本実施形態において、ノーマルストロークでは、ユーザによるストロークの入力に基づき入力ストロークに対応する軌跡上に視覚化情報が自動配置される。この軌跡ないしパスに対して設定される位置等の情報は、キー入力(アローキー)により上下左右にシフトさせることができる。
【００２８】
本実施形態では、ユーザの描画はストロークリスト(以下、場合により「sList」)と名づけられた構造体に保持される。本実施形態では、sListに、位置、大きさと貼り付けるテクスチャ情報等が格納されており、これらの情報に基づいてストロークに対応する軌跡の点上に視覚化情報が配置される。この情報はユーザの描画ストロークごとに管理されるので、多次元リストとして存在していることとなる。
【００２９】
本実施形態では、図1に示すように、第1イベントと第2イベントとの間の入力操作としてストロークを認識し、該ストロークに対応する表示画面上での軌跡ないしは位置データについて再計算が行われる。この再計算は、例えば、図2に示す視覚化計算や図3に示す位置と大きさの獲得等を経て行われる。即ち、図2に示すように、ユーザの入力描画データに対してラベリングが行われ、全てのラベリングデータに対して位置と大きさの計算が行われる。位置と大きさの計算は、図3に示すように行われる。
【００３０】
ここで、この再計算では、図16に示すように、塗りつぶしがあれば塗りつぶし部分は大きな点として認識される点に、特に言及しておく。具体的には、図4に示すように、予めいくつかのテンプレートを用意しておき、入力ストロークをこのテンプレートと比較することで、塗りつぶし(Chunk)として扱うか、点列として扱うかを決定する。入力ストロークを点列として扱う場合、情報の表示サイズに合わせて点列の位置の再計算が行われ、表示情報の間隔が調整される。また、塗りつぶしとして扱う場合、塗りつぶしの大きさのみならず、その形も情報の表示する際に反映させることもできる。例えば、円形の塗りつぶしに対して、円形の情報を配置したり、別形状の情報を円形に変形させて配置したりすることができる。
【００３１】
本実施形態では、情報の表示サイズは、例えばストロークペンの太さに応じて変化させられる(図9)。
【００３２】
本実施形態では、以上の2次元的なノーマルストロークを、シャドーペンで地面に対して影を描くことにより、３次元的なレイアウトに拡張することができる。ノーマルストロークの始点と終点のZ座標を、シャドーストロークの始点と終点のZ座標と対応させることでノーマルストロークを３次元に変換する(図10,図17)。本実施形態では、図5(1)に示すように、ノーマルストロークの分割分だけ、シャドーストロークも分割される。
【００３３】
なお、本実施形態において、シャドーストロークは、地面に対する描画であり、ノーマルストロークが存在する場合としない場合で処理が分かれる。ノーマルストロークがない時は、シャドーストロークは単に３次元空間の地面に視覚化レイアウトが行われたものとされる。この場合、図5(2)に示すように、ノーマルストロークの処理と同様に、ラベリング処理やパターンマッチング処理等を経て、ストロークデータの再計算が行われる。
【００３４】
本実施形態において、リレーションストロークは、図19に示すように、階層的なレイアウトを作るために使われる。クリックした位置にノードがあればそれが親となり、次にドラッグ操作でストロークが通過する位置にノードがある場合にはそれが子供ノードとなる。親子関係はペンのサイズに依存させることができるので、太さ２のペンを使った場合、子供のサイズは半分とすることができる。
【００３５】
本実施形態のシステムにより、ユーザは、以上のようなスケッチをベースとした簡単操作で、図6や図7に示すような、様々なレイアウトを構築することができる。なお、図6に示すレイアウトの例は、次の通りである。図6(1)は、２次元ストロークとシャドーストロークによる３次元レイアウトであり、図6(2)は、Datamountainのようなレイアウトであり、図6(3)は、ペンのサイズに依存したテキストのレイアウトであり、図6(4)は、階層的なレイアウトであり、図6(5)(6)は、大量情報を表示するためのパーティクルレイアウトである。また、図7に示すレイアウトの例は、ユーザの手書き入力文字上に情報を配置するレイアウトである。ユーザは、このようにシンプルなレイアウトから、時間、スケールや階層を考慮した複雑なレイアウトまで、デザインすることができる。なお、Data mountainについては、「Robertson, G., Czerwinski, M., Larson, K., Robbins, D.,Thiel, D. and van Dantzich. M. Data Mountain: Using spatial memory for document management. In Proceedings of UIST '98, pp. 153-162. 1998」参照。
【００３６】
本システムは様々なタイプのデータ(視覚化ノード、キーワード、画像、ドキュメント、動画やwebページなど)をユーザの描画ストロークに沿って表示できる。また、ユーザの描画は、描画領域ないし表示領域を構成するスクリーン(主にノーマルストロークに用いられる)と地面(主にシャドーストロークに用いられる)というビットマップに対して反映される。これらのビットマップは、図27の変数s_Map_screenや変数s_Map_groundに格納され、描画部分をラベリングする際等に使われる。
【００３７】
レイアウトが設定された後、本システムでは、ユーザはキー入力により情報を動かしながら検索や閲覧をすることができる。この情報の移動は、例えば、レイアウトに沿って情報ノードを動かすこと等を通じて行われる。
【００３８】
システムによりデフォルトのシフトの動きが自動的にセットされるが、ユーザはアニメーションペンにより動きを変えることができる。本実施形態では、図11や図18に示すように、アニメーションストロークの描き方により２タイプの動きを表現することが可能である。すなわち、ノーマルストローク上にアニメーションストロークを描画すると、新しい始点と終点が設定され、シフトの始点と終点を変更することができ、ストロークを交差するようにアニメーションストロークを引くと、ストローク単位で動くアニメーションを設定できる。
【００３９】
以上概要を説明した本実施形態のシステムは、OSに関しては特に制約はなく、様々なタイプのコンピュータ等で動作可能である。なお、本実施形態のシステムにかかるプログラムは、例えば、C++等のプログラミング言語及びOpenGL等のGraphics記述言語等を用いて記述可能である。
【００４０】
（レイアウト例）
以下、若干見方を変えてレイアウトのモードをベースとして、本実施形態のシステムについて説明を行う。レイアウトには、基本とパーティクルの２つのモードが存在する。
【００４１】
（Basic layout）
基本レイアウトは、一般的なデータ量を扱うために使われる。情報ノードや画像は自動的にユーザが描画したストロークに沿ってレイアウトされるので、ユーザはノーマルペンを使って、２次元と３次元空間の好きな場所や、すでに存在するオブジェクトの上にレイアウトを作ることができる。また、ペンの太さは情報のサイズに直接的に依存しているので、ユーザが太いペンで描画した場合には、大きなサイズの情報が現れ、細いペンで描画した場合には、小さなサイズの情報がストロークに沿って現れる(図9)。
【００４２】
システムは影を奥行きパラメータに変換するので、２次元レイアウトにシャドーペンにより影を描画することで、３次元レイアウトを作ることができる (図10)。
【００４３】
レイアウトをデザインした後で、ユーザはキー入力によりレイアウトに沿って情報ノードを動かしながら検索や閲覧をする。システムによりデフォルトのシフトの動きが自動的にセットされるが、ユーザはアニメーションペンにより動きを変えることができる。この動きもアニメーションストロークの描き方に依存している。図11はアニメーションストロークによる２タイプの動きを表現したものである。
【００４４】
（Particle layout）
基本レイアウトと同じ手法で、ユーザはパーティクルシステムを用いて、大量情報を視覚化するために情報の流れを作ることができる(図12)。
【００４５】
このレイアウトでは情報ノードはパーティクルとして扱われるので、パーティクルシステムの特徴を用いて大量情報を表示することができる。 ユーザの描画ストロークに対して、水や雲の動きなどの振る舞いが自動的に設定される。ユーザは情報の流れの中からマウスクリックにより、注目情報を選択することができる(図13)。パーティクルを使うことにより、ズーミングやスケーリングなどの視覚化手法を用いることなく、膨大な量の情報をスムーズに表示することができる。
【００４６】
（Interaction Support）
本実施形態には、上記2モードのレイアウトをサポートする手法も存在し、これらの手法もスケッチインタラクションがベースになっている。大まか検索と、大まかな関連付けの２つの手法がある。
【００４７】
（Rough search for related information）
膨大なデータを基本レイアウトで扱う場合、レイアウトをデザインする前にある程度情報を絞り込んでおく必要がある。こうした場合に、ユーザは最初に閉曲線を描き、その中にキーワードを描画する。すると、キーワードに関連する情報が閉曲線内に集まる(図14)。ユーザがイメージの上に閉曲線とキーワードの組み合わせを描画すると、画像とキーワードの両方に関連するデータが集まる。
【００４８】
（Rough link between information）
図15に示すように、ノード間をストロークで結ぶことで関連を直接的につけることができる。また、閉曲線との組み合わせにより、複数のノードに対して関連付けをすることができる。
【００４９】
（実装）
次に、本実施形態のシステムの実装について述べる。２モードのレイアウトそれぞれについて実装形態を述べ、次にサポートインタラクションについて述べる。
【００５０】
（Basic Layout）
ユーザがノーマルストロークを描画すると(図16(１))、マウスの軌跡データと描画部分のラベリングデータが保持される(図16(２))。ラベリングデータにより、描画エリアの形(線、円など)を認識するので、塗りつぶされた円は大きな点として認識される(図16(３))。次に、マウスの軌跡データが同じ距離を保つように再計算される。ストロークの長さに対して情報量が多い場合には、ストロークの長さ分だけ情報が表示され、残りはキー入力によるアニメーションにより、情報を動かすことで表示させることができる。
【００５１】
３次元レイアウトを作る場合には、ユーザはノーマルストロークを描画し、次にシャドーストロークを描画する。ノーマルストロークの始点と終点がシャドーストロークの始点と終点に自動的に対応付けられ、奥行き情報を持つ３次元ストロークに変換される(図17)。シャドーストロークは２次元ストロークを３次元シーンに自動的にプロジェクションされたものなので、ユーザは２次元操作のままで影の描画を行える。
【００５２】
さらに、ユーザはアニメーションストロークにより、アニメーションの振る舞いを変えることができる(図18(１，４))。シフトアニメーションは、ノードパラメータ(隣のノードへの距離や方向)とレイアウトパラメータ(始点と終点)の２つの要素により定められている。
【００５３】
レイアウトストロークの上に、アニメーションストロークを描画することにより、システムはこれらの要素を再計算する。ユーザがレイアウトに沿って３つのアニメーションストロークを描画すると、３つの始点と終点の組み合わせが設定され(図18(２，３))、レイアウトストロークを横切るようにアニメーションストロークを描画すると、アニメーションストロークが繋がった順に、ストローク単位での移動が設定される(図18(５、６))。
【００５４】
関連ストロークによる関連付けでは、システムは始点を親ノード、ストロークがつながったノードを子ノードとしてシーングラフに保持する。ストロークの太さにより、システムは子ノードの大きさと位置を再計算する。図19では、ペンの太さが２倍であるため、子ノードの大きさが親ノードの半分になっている。
【００５５】
（Particle Layout）
パーティクルとスケッチインタラクションを結び付けているが、リアルな動きの表現よりも、大量情報をスムーズに表示できる利点を使うことに焦点を当てている。従って、基本的にはエミッターのサイズとスピードをユーザのストロークに対応させ、他の変数はデフォルト値を設定している。
【００５６】
図20はパーティクルレイアウトの例を示したものである。雲の動き(図20(１，２))は螺旋状のストロークが描画されたときに、自動的に割り当てられる。この場合、パーティクル大きさはペンの太さに依存している。エミッターの位置はユーザのストローク位置であり、スピードはデフォルト値が割り当てられている。同様に、水流の動き(図20(３、４))は上から下にストロークを引いたときに設定される。
【００５７】
（Interaction Support）
サポートインタラクションはレイアウトのデザインをサポートするために使われる。
【００５８】
（Rough link between information）
ユーザが情報間を結ぶと、キーワード、名前や関連度といった情報がデータファイルに書き出される。このファイルはシンプルなデータで構成されていて、あらかじめ関連度などを保持するデータベースがある場合にはそれが読み込まれた後で読み込まれる。同様のスケッチベースの関連付けテクニックは、すでに例えば「James Lin, Michael Thomsen, James A. Landay. A Visual Language for Sketching Large and Complex Interactive Designs. In Proceedings of CHI2002, pp. 307-314, 2002」等に記載されている。しかし、本実施形態のシステムではペンの太さが関連度に直接対応しており、該文献記載のテクニックとは異なるスケッチベースの関連付け方法を採用している。
【００５９】
（Rough search for related data）
ユーザが閉曲線を描き、その中にキーワードを描画すると、システムは閉曲線領域と文字認識によりキーワードを認識する。この結果をもとに、関連付けで作られたデータベースを参照し、キーワードに関連するデータが閉曲線領域に現れる。データが集まる動きは、「H. Koike, Y. Sato, Y. Kobayashi, H. Tobita, and M. Kobayashi. Interactive textbook and interactive Venn diagram: natural and intuitive interfaces on augmented desk system. In Proceedings of CHI2000, pp.121-128, 2000」記載のInteractive Venn Diagramを参考にして、構成することができる。
【００６０】
（本実施形態のシステムの応用例）
本実施形態のシステムを情報視覚化、プレゼンテーション、コミュニケーションやクリエーションなどの様々な用途に適用した例を以下に示す。
【００６１】
（Information Visualization）
図21は、図１に示したレイアウトがそれぞれどのように作られたかを示している。ペン属性と太さの選択によるストロークの描画により、こうしたレイアウトを簡単に作ることができる。
【００６２】
（Presentation）
ユーザはストローク描画により、プレゼンテーションのためのレイアウトを作ることができる。図22のレイアウトでは、スケーリングにより、カレントを大きく、そのほかを小さく表示することで、すべてのスライドを効果的に表示できる。
【００６３】
（Communication）
Pick and Dropのようなタブレットコンピュータを介したAR(Augmented Reality)システムと組み合わせることも可能である(図23)。他のユーザとのコミュニケーションの手段として、情報を効果的に表示できる。加えて、様々なコンピュータ(壁型や机型など)でも利用が可能である。なお、Pick and Dropについては、
「Jun Rekimoto. Pick-and-Drop: A Direct Manipulation Technique for Multiple Computer Environments. In Proceedings of UIST’97, pp.31-39, October1997」参照。
【００６４】
（Creation）
図24は本システムを用いて、テクスチャマッピングを行っている例である(図24(１，２))。対象となるモデルを塗りつぶし、さらに、モデルの上部にストロークを引く(図24(３，４))。マップ候補のテクスチャがストローク上および、モデル上に現れるので、データをシフトさせることで候補を手軽に試すことができる(図24(５，６))。
【００６５】
同様の方法で、図25に示すように、ユーザが本手法を３次元シーンレイアウトに適用する場合、ストロークと実際のモデルの大きさに対応する円を描画することにより、モデルの候補をシーンに直接配置することができる。テクスチャマッピング同様、データをシフトさせて候補を確認できる。
【００６６】
(プログラムの処理フロー)
以下、以上説明した本実施形態のシステムにかかるプログラムの処理フローについて説明する。
【００６７】
図26には、本実施形態のプログラムによるユーザ入力の処理の全体的なフローチャートを示す。最初に初期化が行われ(工程S261)、終了条件を満たすまで(工程S262)、ユーザの入力とその処理が行われる(工程S263〜工程S268)ことが理解される。
【００６８】
図27は、図26の工程S261の詳細を示すフローチャートである。工程S261では、主に工程S271で示す、ストロークリスト(sList)、ストローク画像(sMap_screen,sMap_ground)、情報リスト(iList)、ペンサイズ(pSize)、及びペン属性(pAttribute)の各変数が初期化処理が行われる。工程S271では、例えば、ペンサイズが最大にされ、ペン属性がnormalに指定され、ストロークリスト、ストローク画像、及び情報リストはクリアされる。変数sListには、ユーザの描画ストロークデータをベクターデータ(x,y,z, size)として保持する多次元リストを表す。
【００６９】
ここで、工程S271で初期化される各変数について簡単に説明する。変数sMap_screenは、ユーザによる入力ノーマルストロークによる描画データを含むスクリーン領域のデータを表す。変数sMap_groundは、ユーザによる入力シャドーストロークによる描画データを含む地面領域のデータを表す。sMap_screenおよびsMap_groundには、例えば256×256のBitmapデータが代入される。変数iListは、視覚化したい情報列のIDのリストを表す。変数pSizeは、描画での塗る領域の大きさを表す。変数pAttributeは、入力ストロークのタイプを表し、以下では、Normal, shadow, animation, relation、及びeraserの５タイプのいずれかが代入されるものとする。
【００７０】
図28は、図26の工程S263の詳細を示すフローチャートである。工程S263では、iListのテクスチャが入力ストロークに対応する軌跡に沿って貼り付けられる。ここで、テクスチャの貼り付け位置は、sListの位置情報に基づき決定され、テクスチャの表示サイズは、sListのサイズ情報に応じて制御される。
【００７１】
工程S263では、まず、工程S281で対象ストロークが設定される。対象ストロークが設定されると、処理が工程S282に移り、該対象ストロークに係る点から対象点が設定される。対象点が設定されると、処理が工程S283に移り、対象点の位置(sListに格納)に、対象点に係るサイズ(sListに格納)の矩形(テクスチャを貼り付ける領域)が描画される。矩形が描画されると、処理が工程S284に移り、視覚化すべき情報のテクスチャデータ(iListに基づき取得可能)が該矩形にサイズを合わせて貼り付けられる。
【００７２】
工程S284が終了すると、処理が工程S285に移り、対象ストローク上の全ての点が工程S263で処理されたか否かを判定する。工程S285の判定結果がNo(False)の場合、処理が工程S282に戻り、該ストローク上の次の点が対象点に設定される。工程S285の判定結果がYes(True)の場合、処理が工程S286に移り、全てのストロークが工程S263で処理されたか否かが判定される。工程S286の判定結果がNo(False)の場合、処理が工程S281に戻り、次のストロークが対象ストロークに設定される。工程S286の判定結果がYes(True)の場合、工程S263は終了する。
【００７３】
図29は、図26の工程S267の詳細を示すフローチャートである。工程S267では、ユーザによるペン属性変更用GUI部品のマウスクリックに基づいて、ペンのサイズ(太さ)や属性の変更が行われる。
【００７４】
工程S267では、まず、工程S291でペン属性GUIのマウスクリックが発生したか否かが判定される。本実施形態では、右クリック/左クリックに対してそれぞれイベント処理が用意されているため、工程S291でのマウスクリックは右クリックでも左クリックでも良い。
【００７５】
工程S291の判定結果がNo(False)の場合、工程S267の処理は終了する。工程S291の判定結果がYes(True)の場合、処理が工程S292に移り、今回のクリックで選択された属性が前回のクリックで選択された属性と同じか否かが判定される。
【００７６】
工程S292の判定結果がNo(False)の場合、処理が工程S293に移り、今回のクリックされた属性GUIに対応する属性がペンオブジェクトの属性値に代入される。
【００７７】
工程S292の判定結果がYes(True)の場合、クリックが左クリックか右クリックかで処理が異なる。すなわち、左クリックならば、処理が工程S294に移り、ペンサイズが1段階小さくされ、右クリックならば、処理が工程S295に移り、ペンサイズが1段階大きくされる。なお、当業者であれば、オブジェクト指向言語を用いる場合、ペンサイズの変更は、ペンオブジェクトのサイズを表す変数を規定しておき、この変数の値を変化させることにより実現可能であることが理解できると思料される。
【００７８】
工程S293、S294又はS295が終了すると、工程S267の処理は終了する。
【００７９】
図30は、図26の工程S264の詳細を示すフローチャートである。工程S264では、ユーザによる情報セットボタンのクリック(情報セット用GUI部品を押す動作)に基づいて、視覚化表示する情報のセットが行われる。本実施の形態では、情報として同一フォルダ内に格納された複数の画像情報がセットされる。
【００８０】
工程S264では、まず、工程S301で情報セットボタンがクリックされたか否かが判定される。
【００８１】
工程S301の判定結果がNo(False)の場合、工程S264は終了する。
【００８２】
工程S301の判定結果がYes(True)の場合、処理が工程S302に移り、ファイルダイアログをディスプレイ上に表示し、さらに処理が工程S305に移りユーザによるファイルが選択されたか否かが判定される。
【００８３】
工程S305の判定結果がNo(False)の場合、工程S264は終了する。
【００８４】
工程S305の判定結果がYes(True)の場合、処理が工程S303に移り、選択されたファイルと同じ階層のファイルを視覚化情報として取り込む。ここで、Windows(マイクロソフト社商標)等のファイルをディレクトリ管理するOSにおいては、同一フォルダ内のファイルが同じ階層のファイルとなる。
【００８５】
工程S303が終了すると、処理が工程S304に移り、情報リスト(以下、「iList」)に取り込んだファイルのファイル名をリスト化して保持する。工程S304が終了すると、工程S264は終了する。
【００８６】
図31は、図26の工程S266の詳細を示すフローチャートである。工程S266では、例えば5種類のペン属性、ノーマル(normal)、シャドー(shadow)、アニメーション(animation)、リレーション(relation)、消しゴム(eraser)に従って、それぞれ所定の処理が行われる。
【００８７】
工程S266では、まず、工程S311でペンが描画エリア内にあるか否かが判定される。
【００８８】
工程S311の判定結果がNo(False)の場合、工程S266は終了する。
【００８９】
工程S311の判定結果がYes(True)の場合、現在のペン属性に応じて所定の工程(S312〜S316)に移り、その工程が終了すると、工程S317で所定の終了条件が満たされたか否かが判定される。ここで、終了条件は、本実施形態のシステムの用途に応じて様々なものを設定することができる。例えば、キーボードの特定キーの入力（’Q’キーの入力等)が行われるか否かなどを設定することができる。また、ペン属性毎に異なる終了条件を設定することも可能である。
【００９０】
工程S317での判定結果がNo(False)の場合、処理が再び所定の工程(S312〜S316)に移る。
【００９１】
工程S317での判定結果がYes(True)の場合、工程S266は終了する。
【００９２】
図32は、図31の工程S312の詳細を示すフローチャートである。工程S312は、ペン属性がNormal penの場合の工程S266のサブルーティンである。Normal penは、単純なレイアウトを書くために使われる。
【００９３】
工程S312では、まず、工程S321で所定マウスの操作状態(クリック、ドラッグまたはアップ）の有無が判定される。
【００９４】
工程S321の判定結果がNo(False)の場合、工程S312は終了する。
【００９５】
工程S321の判定結果がYes(True)の場合、マウスの操作状態によって処理が分かれる。
【００９６】
クリックの場合、処理が工程S322に移り、一時リストが初期化される。
【００９７】
ドラッグの場合、処理が工程S323に移り、ペン位置(マウスによるポインティング位置)が一時リストに格納される。ここで、一時リストには、例えば、一定の時間間隔や一定の距離移動があった場合にペン位置を格納する等、所定の規則に基づきペン位置が格納される。一時リストにペン位置が格納されると、工程S324で、前に一時リストに格納されたペン位置と新たに格納されたペン位置とをつなぐ所定の線(例えば緑色の線)がディスプレイ上に表示される。
【００９８】
アップの場合、処理が工程S325に移り、スクリーンBitmapの描画ストロークについてラベリング処理(Bitmap内の描画に対する連結成分の抜き出し)が行われる。なお、アップは、クリックまたはドラッグ状態からマウスボタンを離した直後を意味する。
【００９９】
ラベリング処理が終了すると、処理が工程S326に移り、ラベリング処理の結果に基づいて一時リストのデータが再計算される(図33)。再計算が終了すると、処理が工程S327に移り、一時リストの情報がsListに加えられる。
【０１００】
工程S322、S323、またはS327が終了すると、工程S312は終了する。(図31に示すように、実際には、工程S317の判定結果がYes(True)になるまで、工程S312は繰り返される)
ここで、図32の工程S326について、更に詳細なフローチャートを示す図33を用いて説明する。
【０１０１】
工程S326では、まず、工程S331でラベルリストの最初のデータが対象データに設定される。
【０１０２】
工程S332で描画部分の判定が行われる。描画部分の判定が終了すると、処理が工程S332に移り、描画部分がラインであるか否かが判定される。
【０１０３】
工程S333の判定結果がYes(True)の場合、処理が工程S334に移り、データの再設定が行われる(図34)。
【０１０４】
工程S333の判定結果がNo(False)の場合、処理が工程S335に移り、描画部分が塗りつぶしであるか否かが判定される。
【０１０５】
工程S335の判定結果がYes(True)の場合、処理がS336に移り、リストデータが例えばデータの重心等の1点の位置データに置き換えられる。この場合、塗りつぶし部分の外接四角形のサイズが、視覚化情報の表示サイズを変更するための値としてメモリに格納される。
【０１０６】
工程S335の判定結果がNo(False)の場合または工程S335が終了した場合、工程S326は終了する。
【０１０７】
次に、図33の工程S334について、更に詳細なフローチャートを示す図34を用いて説明する。
【０１０８】
工程S334では、まず、工程S341でラベルリストの最初のデータが対象データに設定される。
【０１０９】
工程S342では、対象データとその隣のデータとの距離が求められる。工程S342が終了すると、処理が工程S343に移り、工程S342で求めた距離が既定の定数値と比較される。距離が定数値より小さい(短い)場合、処理が工程S344に移り、現在のデータが一時リストから削除される。距離が定数値より大きい(長い)場合、処理が工程S345に移り、2点間を結ぶ直線を計算し2点間に各点間の距離が定数値と同じまたはそれ以下になるように直線上の補間点を計算し、一時リストにその位置データを追加する。
【０１１０】
工程S343での比較結果で距離が定数値と等しい場合、工程S344が終了した場合、または工程S345が終了した場合、処理が工程S346に移り、次のデータが対象データに設定される(increment)。
【０１１１】
工程S347の判定結果がNo(False)の場合、上述のように処理が工程S342に戻る。工程S347の判定結果がYes(True)の場合、工程S333は終了する。工程S346、S347は、一時リスト内の全データについて処理を行うためのループを構成するための工程であり、当業者であれば、これらの順番はプログラミングのやり方により比較的自由に変更・修正することが可能であることを理解できると思料される。
【０１１２】
次に、図33の工程S332について、更に詳細なフローチャートを示す図35を用いて説明する。
【０１１３】
工程S332では、まず、工程S351でラベルデータを比較するためのパターンリストの最初のデータが対象データに設定される。
【０１１４】
工程S352では、対象ラベルとあらかじめ登録されているパターンとの比較が行われる。パターンに一致する場合には、処理が工程S354に移り、対象ラベルデータの重心位置と外接四角形の縦横の値が求められる。
【０１１５】
工程S357の判定結果がYes(True)の場合、パターンに当てはまらないと判定され、対象ラベルは点列を構成する線とみなされる。
【０１１６】
工程S358の判定結果がNo(False)の場合、上述のように処理が工程S352に戻る。工程S358の判定結果がYes(True)の場合、工程S331は終了する。なお、工程S356、S357は、全パターンについて処理を行うためのループを構成するための工程であり、当業者であれば、これらの順番はプログラミングのやり方により比較的自由に変更・修正することが可能であることを理解できると思料される。
【０１１７】
以上、ペン属性がNormal penの場合(工程S312)について説明したが、次にペン属性がShadow penの場合について説明する。
【０１１８】
図36は、図31の工程S313の詳細なフローチャートである。工程S313は、ペン属性がShadow penの場合の工程S266のサブルーティンである。Shadow penは単体で地面へのレイアウトを生成する場合に加え、Normal penとの組み合わせで3次元レイアウトを自動生成する場合にも、使われる。
【０１１９】
工程S313では、まず、工程S361で所定マウスの操作状態（クリック、ドラッグまたはアップ）の有無が判定される。
【０１２０】
工程S361の判定結果がNo(False)の場合、工程S313は終了する。
【０１２１】
工程S361の判定結果がYes(True)の場合、マウスの操作状態によって処理が分かれる。
【０１２２】
クリックの場合、処理が工程S362に移り、一時リストが初期化される。
【０１２３】
ドラッグの場合、処理が工程S363に移り、ペン位置が一時リストに格納される。一時リストにペン位置が格納されると、工程S364で、前に一時リストに格納されたペン位置と新たに格納されたペン位置とをつなぐ所定の線(例えば黄色の線)がディスプレイ上に表示される。ここで、工程S364の所定の線に図32の工程S324の所定の線と違う色のものを用いることにより、ユーザは役割の異なる両者を容易に区別することができるようになる。
【０１２４】
アップの場合、処理が工程S365に移り、地面Bitmapの描画ストロークについてラベリング処理が行われる。ラベリング処理が終了すると、処理が工程S366に移り、影の計算が行われる。
【０１２５】
工程S362、S323、またはS326が終了すると、工程S313は終了する。(図31に示すように、実際には、工程S317の判定結果がYes(True)になるまで、工程S313は繰り返される)
ここで、工程S366の影の計算について、更に詳細なフローチャートを示す図37を用いて説明する。
【０１２６】
工程S366では、まず、工程S371でsListに格納されたノーマルストロークのデータがあるか否かが判定される。
【０１２７】
工程S371の判定結果がYes(True)の場合、処理が工程S372に移り、ノーマルストロークの始点と終点のz座標にシャドーストロークの始点と終点のz座標がそれぞれ代入される。工程S372が終了すると、処理が工程S375に移り、ノーマルストロークの始点と終点の間の点についてz座標が補間演算により求められる。
【０１２８】
工程S371の判定結果がNo(False)の場合、処理が工程S373に移り、データの再設定が行われる。このデータ再設定については、図34に示す工程S333と、一時リストのデータがシャドーストロークのものであることを除き、実質的に同一であるため、説明を省略する。工程S373が終了すると、処理が工程S374に移り、一時リストのデータがsListに格納される。
【０１２９】
工程S375またはS374が終了すると、工程S366は終了する。
【０１３０】
次に、ペン属性がAnimation penの場合(工程S314：工程S266のサブルーティン)について説明する。Animation penはデフォルトのシフトの振る舞いを調整するのに使われる。
【０１３１】
図38には、工程S314の詳細フローチャートを示す。
【０１３２】
工程S314では、まず、工程S381で所定マウスの操作状態（クリック、ドラッグまたはアップ）の有無が判定される。
【０１３３】
工程S381の判定結果がNo(False)の場合、工程S314は終了する。
【０１３４】
工程S381の判定結果がYes(True)の場合、マウスの操作状態によって処理が分かれる。
【０１３５】
クリックの場合、処理が工程S382に移り、ペン位置がノーマルストローク(sListに格納)上であるか否かが判定される。工程S382の判定結果がYes(True)の場合、処理が工程S383に移り、ペン位置の座標データ(例えばx,y)をメモリに保持する。
【０１３６】
ドラッグの場合、処理が工程S384に移り、ペン位置がノーマルストローク(sListに格納)上であるか否かが判定される。工程S384の判定結果がYes(True)の場合、処理が工程S385に移り、ペン位置の座標データ(例えばx,y)をメモリに保持する。工程S384の判定結果がYes(True)の場合または工程S385が終了した場合、処理が工程S386に移り、当該Animationのストロークにおいてペンの軌跡が横切ったノーマルストローク(sListに格納)があるか否かを判定する。工程S386の判定結果がYes(True)の場合、処理が工程S387に移り、横切られたノーマルストロークのIDがメモリに保持される。
【０１３７】
アップの場合、処理が工程S388に移り、当該Animationのストロークの始点と終点が設定される。この始点と終点によりsListが分割される。次に、処理が工程S388に移り、S387で保持したストロークのIDが保持される。ここで登録されたIDを基にストローク間を移動するAnimationが実現される。
【０１３８】
工程S382の判定結果がNo(False)の場合、工程S383が終了した場合、工程S386の判定結果がNo(False)の場合、工程S387が終了した場合、または工程S389が終了した場合、工程S314は終了する(図31に示すように、実際には、工程S317の判定結果がYes(True)になるまで、工程S314は繰り返される)。
【０１３９】
次に、ペン属性がRelation penの場合(工程S315：工程S266のサブルーティン)について説明する。Relation penは情報間にストローク描画により直接的に関連性を付けるために使われる。図39には、工程S315の詳細フローチャートを示す。
【０１４０】
工程S315では、まず、工程S391で所定マウスの操作状態（クリックまたはドラッグ）の有無が判定される。
【０１４１】
工程S391の判定結果がNo(False)の場合、工程S315は終了する。
【０１４２】
工程S391の判定結果がYes(True)の場合、マウスの操作状態によって処理が分かれる。
【０１４３】
クリックの場合、処理が工程S392に移り、ペン位置にノード(sListに格納)があるか否かが判定される。
【０１４４】
工程S392の判定結果がYes(True)の場合、処理が工程S393に移り、当該ノードをシーングラフの親ノードに設定する処理が行われる。工程S392の判定結果がNo(False)の場合、処理が工程S394に移り、ルートをシーングラフの親ノードに設定する処理が行われる。初期状態では全ての情報はシーングラフで最上位に位置するRoot nodeの直接の子ノードとして存在している。シーングラフとはシーンを構成する要素をグラフ構造で保持する仕組みである。子ノードの情報（位置、大きさ、色など）は親ノードの情報を基準として設定される。
【０１４５】
ドラッグの場合、処理が工程S395に移り、ペン位置にノード(sListに格納)があるか否かが判定される。工程S395の判定結果がYes(True)の場合、処理が工程S396に移り、当該ノードを子ノードに設定する処理が行われる。工程S396が終了すると、処理が工程S397に移り、現在のペンサイズに応じて当該ノードのサイズが変更される。
【０１４６】
工程S394、S393またはS397が終了した場合、工程S395の判定結果がNo(False)の場合、工程S315は終了する(図31に示すように、実際には、工程S317の判定結果がYes(True)になるまで、工程S315は繰り返される)。
【０１４７】
次に、ペン属性が消しゴムの場合(工程S316：工程S266のサブルーティン)について説明する。消しゴムはユーザが前に入力した描画ストロークを消すために使われる。図40には、工程S316の詳細フローチャートを示す。
【０１４８】
工程S316では、まず、工程S401で所定マウスの操作状態（クリック、ドラッグまたはアップ）の有無が判定される。
【０１４９】
工程S401の判定結果がNo(False)の場合、工程S316は終了する。
【０１５０】
工程S401の判定結果がYes(True)の場合、マウスの操作状態によって処理が分かれる。
【０１５１】
クリックの場合、処理が工程S406に移動し、消しゴムの機能がアクティベートされる。
【０１５２】
ドラッグの場合、処理が工程S402に移り、ペン位置に表示された入力ストローク(軌跡)を消す処理が行われる。
【０１５３】
アップの場合、処理が工程S403〜S405に移り、消されずに残った入力ストロークについて、ラベリングの再計算、および再計算されたラベリングデータのsListへの追加が行われる。
【０１５４】
工程S406、S402またはS405が終了した場合、工程S316は終了する(図31に示すように、実際には、工程S317の判定結果がYes(True)になるまで、工程S316は繰り返される)。
【０１５５】
以上、図26の工程S266の描画処理について説明したが、次に、工程S265の情報シフト処理について詳細ｎフローチャートを示す図41を参照して説明する。なお、情報シフト処理では、ユーザがノーマルペンでストロークを描き、セットボタンを押した場合に、入力ストローク上に情報が自動配置される（視覚化）。
【０１５６】
工程S266では、まず、工程S411でカウンタがゼロにセットされる(カウンタの初期化)。次に、処理が工程S412に移り、所定のキー入力（Left、Right、UpまたはDown）の有無が判定される。
【０１５７】
工程S411の判定結果がNo(False)の場合、工程S266は終了する。
【０１５８】
工程S411の判定結果がYes(True)の場合、どのキー入力が行われるかによって処理が分かれる。
【０１５９】
Leftキーの入力が行われた場合、処理が工程S413に移動し、対象が左隣のノードに設定される。Rightキーの入力が行われた場合、処理が工程S414に移動し、対象が右隣のノードに設定される。Upキーの入力が行われた場合、処理が工程S415に移動し、横切った正順に次の入力ストロークに対応する軌跡が視覚化情報の移動位置に設定される。Downキーの入力が行われた場合、処理が工程S416に移動し、横切った逆順に次の入力ストロークに対応する軌跡が視覚化情報の移動位置に設定される。
【０１６０】
工程S413〜S416が終了すると、処理が工程S417に移動し、カウンタ値が１増やされ(increment)、次に、処理が工程S418に移動し、視覚化情報の動きが計算される。
【０１６１】
工程S418の動きの計算については、図42に詳細なフローチャートを示してある。
【０１６２】
工程S421では、まず、入力の判定が行われる。RightかLeftキーの入力と判定された場合は、処理が工程S422に移り、UpかDownキーが入力と判定された場合は、処理が工程S423に移る。工程S422では、隣のノードとの距離が計算され、工程S423では、隣のストローク上のノードとの距離が計算される。
【０１６３】
その後、処理が工程S424に移り、工程S422又は工程S423で計算された距離に1/10とカウンタ値が乗算され、次に、処理が工程S425に移り、乗算結果をノードの位置情報に加算される。工程S425が終了すると、処理が工程S426に移り、描画領域の重心と各情報ノードとの距離が計算される。結果として、キーボードを押し続けると全情報ノードが前後の情報ノードと間隔を狭め、重心位置に限りなく近づいた状態でアニメーションが行われる。
【０１６４】
なお、フォルダなどのまとまりをクリックしドラッグしながらストロークを描くと、ストロークに構成ファイルが自動配置される手法の実現も可能である。また、動画に対しても適用可能で、ユーザが描画したパス上にフレーム画像を展開することが可能である。通常、動画編集には時間軸が別で用意されているが、本システムによりパス自体が時間軸の役割も果たす。
【０１６５】
（本発明の応用例）
本発明を適用したプレゼンテーションの例において、ユーザは自分で作ったレイアウトでプレゼンテーションを行うことができる(図22)。Power pointに見られるように、現在のスライドのみを大きく表示するのではなく、現在のスライドを大きく、他を小さく表示することも可能であり、こうした手法により、聞き手は全体と現在のスライドの関係などを考えながら発表を聞くことができる。 また、こうした手法はちょっとしたミーティングやレポートなどでも利用でき、そうした場合にも、データのタイプや視聴者の状況に合わせてレイアウトを考えることが可能である。
【０１６６】
コンピュータ間のコミュニケーションにおいても適用できる(図23)。コンピュータを介したコミュニケーションでは、ユーザの主な目的は情報を見せることや交換することであり、こうした目的にも本手法は効果的であるといえる。また、単に１つの情報ではなく、ストロークを介した交換により情報群での交換が可能である。
【０１６７】
クリエーションにおいても適用でき、特にテクスチャマッピングやシーンレイアウトなどでは効果的な役割を果たす(図24, P14)。こうした作業において、最終的なデータを決めるために、クリエーターは候補となるデータを何度も読み込み試す必要がある。テクスチャマッピングでは、まず、ストロークを引き、マップ対象のオブジェクトを塗りつぶす。情報はストローク上とオブジェクト上に現れるので、ユーザはシフトさせながら情報を試すことができる。シーンレイアウトにおいても、ストロークとオブジェクトを配置した居場所を塗りつぶすことにより実際の大きさのオブジェクトを簡単に試すことができる。
【０１６８】
（考察）
次に、以上説明した本実施形態のシステムについていくつかの考察および関連文献について記載しておく。
【０１６９】
（Interaction）
（Basic and particle layouts）
本実施形態では、基本とパーティクルの２つのレイアウトについて述べた。ズーミングなどのテクニカルなレイアウトは構築していないが、シンプルなレイアウト、スケールを考慮したレイアウトや時間を考慮したレイアウトはある程度簡単に構築することができる(図6)。加えて、本システムはデザインを仕直すことにも焦点を当てている。従って、ユーザの用途に応じてレイアウトを作り変えることを繰り返すことで、オリジナルで効果的なレイアウトを獲得できると考える。
【０１７０】
パーティクルレイアウトでは、既存のシステムでは扱えなかった量のデータを表示することができる。こうした手法は、大量情報のブラウジングに有効であると考える。しかし、動きはユーザのストロークにある程度依存してはいるが、多くの変数がシステムにより自動的に設定されている。従って、ユーザの意図を反映させるために、振る舞いごとにインクを用意し選択する手法がより自然であると考える。また、流れの中から効果的に情報を獲得するために、Time-Machine Computingと組み合わせることも必要である。Time-Machine Computingについては、「Jun Rekimoto.  Time-Machine Computing: A Time-centric Approach for the Information Environment. In Proceedings of UIST’ 99, pp.45-54, 1999」参照。
【０１７１】
（Rough search and link）
大まか検索と、関連付け手法についても述べた。これらのインタラクションは、シンプルであるが詳細を設定するためには向いていない。しかし、視覚化システム自体が、図形の抽象性や親しみやすさを利用することに特徴があり、こうした利点を失わないために、詳細はあまり反映させていない。従って、大まかなデータベースで情報の表現や関連付けは十分に対処可能である。また、レイアウト手法を含め、本手法の操作は、デジタルカメラデータやユーザが作った画像や３次元モデルなどのユーザのデータに対して有効である
（Application）
プレゼンテーションへの適用では、ユーザはオリジナルのレイアウトでスライドを見せることができる。図24のレイアウトでは、現在のスライドと全体との関連を見ている人は理解することができる。また、ユーザはその場の状況やデータのタイプにより、効果的なレイアウトをデザインすることができるため、小規模なミーティングにおいて、情報を見せるために効果的な役割を果たす。
【０１７２】
さらに、コンピュータを介したコミュニケーションにおいて、ユーザの主な目的は情報を見せることや交換することである。従って、視覚化技術も重要な要素であり、本システムはこうした用途において手軽に使える点で有効であると考える。また、単に１対１の情報交換ではなく、ストロークにより情報郡を単位として見せることや好感することも可能である。
【０１７３】
最後に、クリエーションでの適用において、シーンレイアウトやテクスチャマッピングにおいても、候補がたくさんある場合など、直接対象となるオブジェクトを介して候補を簡単に試すことができる。また、本システムのレイアウトの操作が、クリエーション作業の延長上で行える点で有効であると考える。
【０１７４】
（情報視覚化とスケッチインタラクションの参考文献）
ここで、簡単に、情報視覚化とスケッチインタラクションの参考文献について述べておく。
【０１７５】
情報検索のための情報視覚化システムについては、数多くの研究が存在する。
【０１７６】
例えば、２次元や３次元空間に大量の情報を表示することや注目ノードや関連ノードを目立たせるために、スケーリングやズーミングなどのテクニックが使われているっている。この種のシステムについては、例えば、「Hideki Koike. Fractal views: a fractal-based method for controlling information display.ACM Transactions on Information Systems (TOIS), Vol.13, No.3, p.305-323, July 1995」、「G. W. Furnas. Generalized fisheye views. Proceedings ofthe ACM Tran on Computer Human Interaction, Vol.1, No. 2, pp.126-160, 1994」、「Benjamin B. Bederson, James D. Hollan, Ken Perlin, Jonathan Meyer, David Bacon, George Furnas. Pad++: A Zoomable Graphical Sketchpad For Exploring Alternate Interface Physics. Journal of Visual Languages andComputing, Vol. 7, No. 1, pp. 3-31, 1996」参照。
【０１７７】
また、３次元空間を対象とすることで、位置情報と時間情報といった異なる情報を同時に表示することができる。この種のシステムについては、「G. G. Robertson, J. D. Mackinlay and S. K. Card. Cone Trees: Animated 3D Visualization of hierarchical information. Proceedings of the ACM Conference on Human Factors in Computing Systems (CHI ’91), pp. 189-194, 1991」、「Hideki Koike and Tetsuji. VisuaLinda: A Framework for Visualizing Parallel Linda Programs. Proceedings of 1997 IEEE Symposium on Visual Languages (VL'97), pp.174-180, 1997」、「Tetsuji Takada and Hideki Koike. Tudumi: Information Visualization System for Monitoring and Auditing Computer Logs. Proceedings of 6th International Conference on Information Visualization, pp.570-576, 2002」参照。
【０１７８】
しかし、こうしたシステムでは情報のレイアウトはあらかじめデザインされていて、想定された状況では有効であるが制約が多い。
【０１７９】
そこで、バネモデルを用いて対話的にレイアウトを変えるシステムも存在する。例えば、「Ron Davidson and David Harel. Drawing Graphics Nicely Using Simulated Annealing. ACM Transactions on Graphics, Vol. 15, No.4, pp.301-331, 1996」参照。この種のシステムでは、関連情報を獲得することができるため、情報のブラウジングや関連を知るには有効であるが、ノード間の距離計算を基準にしているので情報量が増えると計算機の負荷が増える。
【０１８０】
２次元の操作で３次元クリエーションを可能にする、スケッチインタフェースも数多く研究されている。紙にペンで字を書くような手軽な操作で扱える点に特徴がある。
【０１８１】
例えば、Sketchというシステムは、ユーザは２次元の操作で３次元の曲線を描画するシステムであり、２次元ストロークに影をつけることで、３次元曲線を生成する。Sketchについては、「Zeleznik, R.C., Herndon, K. P., and Hughes, J. F. An Interface for Skeching 3D Curves. In SIGGRAPH ’96 Proceedings,pp.163-170, 1996」参照。
【０１８２】
Haloldというシステムは、スケッチのテクニックで、３次元シーンに2.5次元的なシーンを構築する。Haloldについては、「Cohen, J. M., Hughes, J. F., and Zeleznik, R. C. Harold: A World Made of Drawings. In NPAR2000 (Symposium on Non-Photorealistic Animation and Rendering), pp.83-90, 2000」参照。
【０１８３】
Teddyというシステムは、３次元モデリングシステムで、閉曲線に対してボリュームを自動計算することで、３次元モデルを生成している。Teddyについては、「T. Igarashi, S. Matsuoka, and H. Tanaka. Teddy: A sketching interface for 3D freeform design. In SIGGRAPH ’99 Proceedings, pp.409-416, 1999」参照。
【０１８４】
（まとめ）
以上説明した本実施形態にかかるシステムは、自由ストロークにより、情報視覚化のレイアウトをユーザが作ることができる。ペンのサイズや属性を組み合わせることで、様々なレイアウトをデザインすることが可能である。また、システムを使った様々な例を示した。かかるシステムは、入力ストロークに対する再計算とラベリングによるパターンマッチングにより情報を自動配置する手法を採用し、塗りつぶしを大きなオブジェクトとして認識可能であり、直感的に大きさを変更できるので変数を直接入力する必要がない、描画範囲内であれば何処でもストロークを描画し情報を配置できる、更には様々なデータを視覚化対象とできる等の優れた特徴を有する。
【０１８５】
（追補）
以上、一の好適な実施形態に基づき説明を行ったが、本発明の構成はそれに限定されない。当業者であれば、特許請求の範囲において、各種の変形例や応用例を実施することができるが、それらについても本発明の範囲に包含されるものと解釈される。
【０１８６】
例えば、上記実施形態では、視覚化情報として画像情報を適用する構成を例示したが、本発明の視覚化情報には、テキスト情報、各種アイコン、アニメーション情報、グラフィックス情報、DB検索結果情報等、視覚的に表示可能な他の様々な情報を用いることもできる。また、上記実施形態では、視覚化情報として複数の情報を適用する構成を例示したが、本発明の視覚化情報には、単一の情報も用いることができる。さらに、上記実施形態では、視覚化情報として同一フォルダ内に格納された情報を適用する構成を例示したが、本発明の視覚化情報には、例えば単一の検索式による検索結果、同一のメタ情報を持つ情報やファイル形式の同じ情報等の一定の関連を持つ情報、或いは直接の関連を持たないが所定の規則に基づき選択される複数の情報等、様々なものを適用可能である。
【０１８７】
また、上記実施形態では、マウスを使った一般的なPCの構成を例示したが、本発明は、他の様々な電子機器に対して適用可能である。なお、本発明は、本件の出願時点ではPCと比べて普及が遅れているが、特に、ユーザによる直感的操作を前提とする機器、例えば、ペン入力でディスプレイに直接入力を行えるタブレット型コンピュータや壁などを直接コンピュータとするような実世界指向インタフェースとの親和性が高いと考えることができる。
【０１８８】
上記実施形態では、OSに関して特に制約のないプログラムを例示したが、OSや通信規格等の特定の環境向けにカスタマイズしたプログラムに対しても本発明は適用可能である。
【０１８９】
さらに、上記実施形態では、C++及びOpenGLにより記述したプログラムを例示したが、本発明は他の様々なプログラミング言語、グラフィックス言語等により記述したプログラムにも適用可能である。
【０１９０】
【発明の効果】
本発明によれば、情報視覚化に、スケッチインタラクション等によるユーザのストローク入力を結び付けることができるため、ユーザが自由にレイアウトをデザインできる環境を提供することができる。この点、効果的なレイアウトをユーザに提供するという従来のアプローチとは明確に異なる。結果として、本発明によれば、手軽に情報を閲覧できるシステムの実現が可能となる。
【０１９１】
また、本発明によれば、ユーザが描画したパスに沿って視覚化情報を自動的に配置することや、ユーザによる２次元デザインを自動的に３次元レイアウトに変換すること等が可能となる。この結果、単純かつ直感的な入力操作に基づいて、情報検索結果、プレゼンテーション、コミュニケーションやクリエーションなど様々な情報表示レイアウトを容易かつ高自由度で実現することができる。
【図面の簡単な説明】
【図1】本発明の実施形態のストローク及び再計算の関係を説明するための概念図である。
【図2】本発明の実施形態の視覚化計算に関する抽象的なフローチャートである。
【図3】図2の位置と大きさの獲得に関する抽象的なフローチャートである。
【図4】本発明の実施形態のラベリング処理およびデータマッチング処理を説明するための概念図である。
【図5】本発明の実施形態のシャドーストロークについての説明図である。
【図6】本発明の実施形態のシステムを利用したレイアウトの例
【図7】本発明の実施形態ののシステムの簡単な使用例(ユーザが描画したストロークに対して、情報が自動的に配置される)
【図8】本発明の実施形態ののシステムの概要（システムは簡単なGUIを備えていて、ペン属性なども含まれている。）
【図9】ペンの太さとストロークの関係の例（ユーザは情報の大きさをペンの太さにより直接的にコントロールできる）
【図10】３次元レイアウトの例（ノーマルストローク(緑)にシャドーストローク(黄)を加えることで構築される）
【図11】アニメーション例（アニメーションストロークを描画することで、動きをコントロールできる）
【図12】パーティクルレイアウトの例（水流のような動き(上)や雲のような動き(下)などが可能である）
【図13】情報ノードの選択の例（ユーザは情報の流れの中からクリック操作により情報を獲得できる）
【図14】大まか検索の例（関連する情報を閉曲線とキーワードを描画することで集めることができる）
【図15】関連付けの例（情報間をストロークで結ぶことで情報間の関連付けを行う）
【図16】描画領域の計算の例（ラベリング計算と均等になるようにストローク位置を計算）
【図17】３次元の計算の例（ノーマルストロークとシャドーストロークの始点と終点を合わせることで実現）
【図18】アニメーション設定の例（アニメーションストロークの描き方により動きをコントロール）
【図19】階層レイアウトの例（関連ストロークにより、情報間に親子関係を設定する）
【図20】パーティクルレイアウトの例（パーティクルレイアウトもユーザのストロークに沿って設定される）
【図21】本発明の実施形態ののシステムによるレイアウト例（ペンの太さや属性を使い分けることで、容易にデザインできる）
【図22】本発明の実施形態ののシステムを用いたプレゼンテーション: オリジナルのレイアウトでプレゼンテーションに利用
【図23】コミュニケーションでの利用: 情報を見せることや交換するためにも有効な手段となる
【図24】テクスチャマッピングでの利用例（対象オブジェクトを塗りつぶし、その上にストロークを描画することで、候補となる画像を簡単に試せる）
【図25】シーンレイアウトでの利用例（オブジェクトの大きさと対応するように円を描画すれば、直接候補を配置することができる）
【図26】本発明の実施形態ののプログラムによるユーザ入力の処理の全体的なフローチャートである。
【図27】工程S261の初期化の詳細を示すフローチャートである。
【図28】工程S263のデータ表示の詳細を示すフローチャートである。
【図29】工程S267の詳細を示すフローチャートである。
【図30】視覚化表示する情報をセットする工程S264の詳細を示すフローチャートである。
【図31】ペンの属性に従った描画処理を行う工程S266の詳細を示すフローチャートである。
【図32】ペン属性がNormal penの場合の描画処理工程S312の詳細を示すフローチャートである。
【図33】工程S327のデータ再計算の詳細を示すフローチャートである。
【図34】工程S333のデータの再設定の詳細を示すフローチャートである。
【図35】工程S331の描画部分の判定の詳細を示すフローチャートである。
【図36】工程S313のペン属性がShadow penの場合の描画処理の詳細を示すフローチャートである。
【図37】影の計算の工程の詳細を示すフローチャートである。
【図38】工程S314のペン属性がAnimation penの場合の描画処理の詳細を示すフローチャートである。
【図39】工程S315のペン属性がRelation penの場合の描画処理の詳細を示すフローチャートである。
【図40】工程S316のペン属性が消しゴムの場合の描画処理の詳細を示すフローチャートである。
【図41】工程S265の情報シフト処理の詳細を示すフローチャートである。
【図42】工程S418の動きの計算の詳細を示すフローチャートである。
【図１】
2004199130.tif 000003
【図２】
2004199130.tif 000004
【図３】
2004199130.tif 000005
【図４】
2004199130.tif 000006
【図５】
2004199130.tif 000007
【図６】
2004199130.tif 000008
【図７】
2004199130.tif 000009
【図８】
2004199130.tif 000010
【図９】
2004199130.tif 000011
【図１０】
2004199130.tif 000012
【図１１】
2004199130.tif 000013
【図１２】
2004199130.tif 000014
【図１３】
2004199130.tif 000015
【図１４】
2004199130.tif 000016
【図１５】
2004199130.tif 000017
【図１６】
2004199130.tif 000018
【図１７】
2004199130.tif 000019
【図１８】
2004199130.tif 000020
【図１９】
2004199130.tif 000021
【図２０】
2004199130.tif 000022
【図２１】
2004199130.tif 000023
【図２２】
2004199130.tif 000024
【図２３】
2004199130.tif 000025
【図２４】
2004199130.tif 000026
【図２５】
2004199130.tif 000027
【図２６】
2004199130.tif 000028
【図２７】
2004199130.tif 000029
【図２８】
2004199130.tif 000030
【図２９】
2004199130.tif 000031
【図３０】
2004199130.tif 000032
【図３１】
2004199130.tif 000033
【図３２】
2004199130.tif 000034
【図３３】
2004199130.tif 000035
【図３４】
2004199130.tif 000036
【図３５】
2004199130.tif 000037
【図３６】
2004199130.tif 000038
【図３７】
2004199130.tif 000039
【図３８】
2004199130.tif 000040
【図３９】
2004199130.tif 000041
【図４０】
2004199130.tif 000042
【図４１】
2004199130.tif 000043
【図４２】
2004199130.tif 000044