はじめに
Wacom Ink Layer Language (WILL™) はクロスプラットフォームのデジタルインクテクノロジーであり、 エンドユーザーのニーズを考慮しつつ、 Wacomのさまざまな分野での経験に基づいて開発されています。 WILLを使用すると、優れたプレミアムデジタルインク機能をアプリケーションに組み込むことができます。 モジュール化されたパイプラインを使用しているため、優れた柔軟性を提供しながら、特定のアプリケーションの要件に応じて各モジュールを設定、交換、または除外することができます。
新たに導入されたUniversal Ink Modelは、インクに関連するデータ構造やメタデータの概念を記述するデータモデルであり、インクの意味(セマンティクス)上の内容を説明するために使用します。 Universal Ink Modelのファイルコード化を使用すると、インクコンテンツをアプリケーション間やプラットフォーム間でやり取りすることもできます。
本フレームワークには以下のものが含まれます。
- 複数のプラットフォームに使用できるソフトウェアライブラリ(Windows, Android, iOS, Web)
- 特有の機能を例示した Code samples
- パイプラインを設定およびテストするためのウェブベースのInk Designer
- ステップバイステップガイドを含む総合的なドキュメント
デザインコンセプト
以下はWILLの設計コンセプトの概要ですテクノロジー。
相互運用性
WILL 3.0搭載されるテクノロジーやUniversal Ink Modelはプラットフォームやデバイスに依存しておらず、特定のハードウェアプラットフォームを重視した仕様ではありません。 デジタルインクの保存に使用する形式は既に存在しており、それらはこちらに記載されています。リファレンス. Ink Markup Language [InkML] および Ink Serialized Format **[ISF]**は、Wacom Ink Layer Language [WILL]. 以外で最もよく知られているデジタルインクの保存形式です。前バージョンのWILLでは、デジタルインクのサンプルセンサーデータ(タイムスタンプ、x座標やy座標、圧力値など)の保存に対応していませんでした。 WILL 3.0では、インクセンサーのサンプルを、デジタルインクで表されたビジュアル表現やセマンティクスメタデータと併せて保存することができます。 そのため、汎用インクデータ形式から他の既存形式へのロスのない変換が可能となっています。
ナチュラル
デジタルインクに求められるのは、見た目が自然で実際のインクと同様であることです。 WILL 3.0には、あらゆるプラットフォームにわたって一貫した方法でインクを提供するためのすべての関連データが含まれているため、デジタルインクのビジュアル表示をプラットフォーム間で共有することができます。 WILLによる粒子インクのラスター化を使用すれば、自然なブラシを設定して、図1に示すようなイラスト作品を作成できます。
図1:ラスター/粒子インクで作成されたイラスト作品
アクティブ
モバイルアプリ、クラウドアプリケーション、またはクラウドサービスは、現代のITインフラストラクチャの一部となっています。 そのため、最新のデータ形式では次のような問題に対応しなければなりません。
- デバイスを識別できる一意のID
- ストリーミング機能によるインクデータの部分アップデート
- ドキュメントサイズの縮小
- JSONなどの一般的に使用されるウェブ規格のサポート
図2:アクティブなインク
メタデータおよびセマンティクス
メタデータの種類は3つです。
- 記述的
- 構造的
- 管理的
記述的メタデータは通常、タイトル、作成者、件名、キーワード、発行者などのオブジェクトの検索や位置の特定に使用する情報であり、検出や識別の際に使用されます。 WILLは、インクドキュメント内にドキュメントや作成者を記述するためのメタデータを付与します。
構造的メタデータは、あるオブジェクトの要素がどのように構成されているかを記述するものです。 インクのメタデータを使用すると、インクドキュメントの構造を記述することができます。
最後に、管理的メタデータは、ソースの管理に役立つ情報を提供します。 これらは、ファイルの種類および作成の日時や方法を含む技術情報を参照します。 管理的メタデータには、権限管理メタデータと保護メタデータという2つのサブタイプがあります。 権限管理メタデータは、知的財産権を明確化するために使用されます。それに対し、保護メタデータはリソースの保護や保存に必要な情報を含んでいます。
多くのベンダーは、セマンティクスメタデータを自社技術の差別化のための用語として使用しつつあります。 セマンティクスとは意味の研究です。 これを各種のテクノロジーや構造化されていないコンテンツに適用すると、コンテンツ内の文脈を提供する単語、句、文、そしてより大きな単位の文章から意味を取り出せるようになります。セマンティクスは、オブジェクトを記述するセマンティクスメタデータとして手作業で適用するか、または自動的に生成します。 セマンティクスメタデータは一般に検索性の向上のために利用します。ただし、各種アプリケーションにメタデータを使用すると、セマンティクスメタデータの生成や適用を通じて大きなメリットを実現することができます。 WILLのメタデータは、ドキュメントや作成者の記述用として確立済みのメタデータをベースとしており、インク向けの独自のメタデータが定義されています。
センサデータと筆跡情報
Universal Ink Modelの設計におけるもう1つの重要な目標は、インクデバイスからセンサーデータを取得できるようにすることです。 たとえば、センサーデータは手書き文字の解析や、サインの取り込みおよび検証の際に使用されています。
インクデバイスによっては、大半の事例であまり重要とはみなされず、すべての機種やデバイスでサポートされない可能性のある情報が含まれています*(図3を参照)*。 これには以下のものが含まれます。
- 筆圧 - ペンの先端に掛かる力
- 傾斜 - 垂直方向に対するペンのバレルとの角度
- 向き - ペン先からペンの平面上の方向
- 回転 - サイン中のバレルの回転
図3:インクセンサーチャンネルの概要
データのフォレンジック性は最も重要であり、多くのベンダー間でデータ収集の根本的な考え方が競合しているサインテクノロジーとは多くの点で異なることを示しています。 重要なのは、ソフトウェアがデバイスから収集したサインデータをまさにそのままの状態で保存できることです。 (位置、時間、筆圧などの)各種のデータは、デバイスで使用される単位を記述したメトリック情報と併せて収集されます。これらは必要に応じて実際の単位に変換できるよう、生の点データと共に保存されます。 この利点は、情報の精度がデバイスによって決定されるため、変換プロセスによって精度の低下が発生しないことです。 ペンデータのほかにも、コンテキストデータが収集され、サインと共に保存されます。 これには以下のものが含まれます。
- サイン者の名前
- サイン日時
- サイン理由
- 使用するタブレットの製造元と種類
- 使用するタブレットのドライバの種類とバージョン
- 使用するクライアントPCのオペレーティングシステムの種類とバージョン
- PCのネットワークインターフェースカードのアドレス
この目的は、センサーデータとインクデバイスの特性をデジタルインクのビジュアル表現と併せて保存することです。
テクノロジー
WILLテクノロジーはプラットフォームに依存しないインクエンジンの実現を念頭に設計されており、それに深く関連する次の機能を提供します。
- インクジオメトリパイプラインとレンダリング - 入力デバイスからのセンサーデータをジオメトリに変換し、これをプラットフォーム固有の描画エンジンによって描画します。
- インクのシリアル化 - 描画結果、収集されたセンサーデータ、および関連するメタデータをやり取りします。情報のシリアル化と非シリアル化には、Universal Ink Formatが使用されます。
- インクの加工 - 生成されたジオメトリを操作します。インク操作によってインクの(正確な分岐を含む)筆跡を倍率変更したり、移動、回転、および消去したりできます。
ジオメトリおよびレンダリングパイプラインについては、以降のセクションで詳しく説明します。
インクジオメトリパイプライン
WILL 3.0は、(プロセッサ、プロデューサなどの)一連の処理ブロックで構成されるパイプラインです(図4を参照)。
図4: WILL 3のレンダリングパイプライン。
ink geometry pipeline は、マウス、指、ペンなどのさまざまな入力方法によって得られたポインタ入力データをインクジオメトリに変換します。 このパイプラインは、生成されたインクの要件に応じて設定することが可能なさまざまな段階で構成されています。 一般的なパイプラインの段階は次のとおりです。
- PathProducer - ポインタ入力データからパスを作成します。
- Smoother - パス値をスムージングします。
- SplineProducer - パスをに変換します。Catmull-Rom spline
- SplineInterpolator - スプラインを離散化して、サンプリングされた複数の点をインクパスに沿って作成します。
ベクトルブラシのみに使用されるパイプラインの段階は複数あります。
- BrushApplier - インクパスに沿ったそれぞれのサンプル点に対し、BrushAppplierが変換を作成したうえでブラシ形状を変換します。
- ConvexHullChainProducer - 連続するブラシサンプルの凸包を計算します。
- PolygonMerger - 凸包の和集合を計算します。結果は内部輪郭(穴)が0個以上の多角形となります。
- PolygonSimplifier - 頂点の数を減少させて多角形を簡素化します。
詳細な説明はパイプラインに関するドキュメンテーション.に掲載しています。
インクのシリアル化
Serialization
モジュールは、インクコンテンツのエンコードおよびデコードを行うアルゴリズムを提供します。
これらのアルゴリズムは最適化されて、WILLストローク数学モデル(本ドキュメント中では「ストロークモデル」と呼称)と連動します。
アルゴリズムは次の機能をサポートします。
- 高速なエンコードおよびデコード
- 開発者によるコンパクトなファイルサイズまたはJSONシリアル化の選択
- オペレーティングシステムやデバイス間での移植
- 各種コンテナ形式に組み込むことができるバイナリ表現
詳細な説明は シリアル化に関するドキュメンテーション.
インクの加工
に掲載しています。Manipulation
モジュールは、Universal Ink Model上で動作する一連のアルゴリズムを提供します。
これらのアルゴリズムは、次のような機能を実装するための要素として使用できます。
- 選択
- 消去
- 切り取り
- コピー
- 貼り付け
詳細な説明は加工に関するドキュメンテーション.に掲載しています。
リーディングガイド
この概要ではWILLテクノロジーの簡単な概要を示し、Universal Ink Model. より詳しい情報についてはドキュメントの各項で示します。 次の表には、ご興味に応じて引き続きご検討いただけるよう、ドキュメントの関連部分へのリンクを掲載しています。
トピック | 説明 |
---|---|
インクジオメトリパイプライン | ジオメトリパイプラインのアルゴリズムとステップの詳細、およびパイプラインのセットアップ内で使用されるパラメータのより良い説明が含まれています。 |
サンプル | 開発者が直接コードにダイブできるように、利用可能なすべてのサンプルのリストです。 |
サードパーティのライセンス | プラットフォームごとにサードパーティのライセンスをリストします。 |
Universal Ink Model | デジタルインクとその関連メタデータのデータモデルに関する紹介です。 Universal Ink Modelの各部分には、入力データ, インクデータ, メタデータ、および意味論の詳細な説明が含まれています。 |
URIスキーム | セマンティックデータのエンコーディングの紹介 Uniform Resource Identifier (URI) と事前定義されたスキーム。これらは、相互運用性を実現するためにアプリケーション内で使用する必要があります。 |
エンコーディング | Universal Ink Model は、Google protobufをベースとしたバイナリデータ形式でエンコードされています。このページでは、データ構造の定義をさらに詳しく説明しています。 |
サンプルコードガイド | ステップバイステップで説明されたサンプルコードのスニペット:インクレンダリング, インクシリアライゼーション, および インク操作 |
Ink Designer | ジオメトリパイプラインとレンダリングセットアップの構成オプションを示すWebアプリケーションです。 |
リファレンス
[ InkML ] Ink Markup Language (InkML)
[ISF] Ink Serialized Format (ISF)
[WILL] Wacom Ink Layer Language (WILL), Version 1.