デジタルの世界で「書く」を実現したデジタルインク技術
ワコムの新村剛史氏は、「書くという行動は、人間の根源的な行為で、もっとも古い記録方法の一つ」と語る。フランスのショーヴェという洞窟には、約3万2000年前の絵が残されている。少なくともその頃から、書くという行為が脈々と続けられてきた。
一方、書く媒体は変化してきた。最初は自然にある壁であり、それが木簡、パピルス、紙と遷移してきた。インクは最初、泥だったかもしれない。それが墨になり、顔料へと変遷してきた。
その流れを大きく変えたのが、「アナログからデジタルへ」という変化だ。パソコンの普及により、紙に手書きをする回数や時間は大きく減少している。キーボードを使って文章を作成してはいるが、ローマ字入力、かな入力により文字を確定していく作業は、文字を「書く」行為と同じとはいえない。しかも、キーボードで快適に作業できるようになるまでには、タッチタイピングの習得など、高いハードルがある。
キーボードを持たないタブレットは、このハードルを大きく下げたといえよう。タブレットが普及するにつれ、デジタルの世界で「書く」機会が増えている。そこで用いられている技術が「デジタルインク」である。一般的にインクは、筆やペンにつけてそれを紙などの媒体に押しつけて転写する。デジタルの場合、転写するという行為はないが、デジタルインクは、それをデジタルデバイス上に擬似的に実現している。
アナログは連続性の世界の中にある事象であり、筆を動かすと線がその後についてくる。デジタルの場合、動かした情報はぶつ切れの座標情報の形で取得される。デジタルインクではそれをつなぎ合わせて、あたかもインクのように見せている。座標は「ポイント」ともいわれ、タッチのイベントが発生し、情報を拾えたところがポイントになる。
書き味を良くするためには、ハードウェアとソフトウェアの両方を考えなくてはならない。ハードウェアでは、いかにスムーズに書けるようにし、適切に信号を出していくか。ソフトウェアはその信号を上手く拾い、なめらかにつなぎ合わせていくことを考える必要がある。
ところで、デジタルの世界の書く道具には、大きく分けて従来からある「マウス」と、パネル上で操作する「指」および「ペン」があり、それぞれ特性が違う。マウスは、座標の移動距離を入力として受け取る。直感的ではなく、画面を見ながら、頭の中で移動を考えて扱う。一方、指とペンは思った場所に動かすことができる。
さらにペンは先が尖っているので、思うところにかなり正確にタッチすることができる。指は太く、成人男性で平均8~10ミリある。そのため、精度はそれほど高くない。
押す強さで線の太さを変える筆圧を感知できるのは、ペンだけになる。一方、マルチポインティングができるのは指だけだ。ポインティングデバイスはそうしたことを勘案し、用途に応じて選択する必要がある。
ただ、書く道具を選択する際、パネルの実現方式にも注意を払う必要がある。
スマホやタブレットなどのパネルに使われているのは「静電容量式」である。これは指でタッチすることにより、発生した静電気を元にして座標を割り出している。
一方、専用のペンで書くことを想定して作られているのが、「電磁誘導式」のパネルである。この方式ではペンと画面の間で発生する磁界を読み取って座標を割り出す。同時に、磁界の違いにより筆圧を感知することもできる。指でタッチする静電容量式では、筆圧を感知することができない。現在主流のペン(スタイラス)が付いているスマートデバイスには、静電容量式パネルと電磁誘導式パネルの両方が付いている。
デジタルインク利用アプリの実装方法
では、各プラットフォームに、どのように実装していくのか。
まずWindowsでは8以降、デスクトップモードと、新しいUIのWindowsストアアプリの2つの世界がある。
デスクトップではWPFとWindowsフォームという.NETアプリの世界があり、ネイティブアプリの方には、マイクロソフト標準ではないが、標準的に使われているWintabというタブレット向けのAPIがある。
WPFのプロジェクトでは、ツールボックスからInkCanvasを貼り付けるだけでインクに対応したアプリができてしまう。筆圧にも対応している。Windowsフォームにも同じような仕組みがあるのだが、Microsoft.Inkというライブラリを追加しなければならない。これはWindows SDKの中に入っている。
一方、Windowsストアアプリでは、標準のライブラリですべて対応しているのだが、若干面倒なのは、ポインタを拾いながら、自分で絵を描かないといけない。実際にはイベントの中でPointerDeviceTypeを拾い、指タッチなのか、ペンタッチなのかを識別する。ペンの場合は、そこから筆圧を感知し、描画する線の太さを変えるといった処理も実現できる。
Androidでは4.0以降、標準でWPFと同様にイベントが発生したところでポインタを取り、つないでいくことができる。実はAndroidでは、タッチが始まろうが、動こうが、終わろうが、すべて1つのイベントである。そのため、getActionという形でポインタがどう動いたかを切り分けることが必要になってくる。ポインタがイベント発生の履歴情報を持っているので、それをなぞることにより、精密な線を書くことができる。
iOSは、スタイラスペンをサポートしていない。そこでワコムでは先端を静電容量式に対応したペンを使い、Bluetoothで情報を飛ばすことにより筆圧の情報もiOS側に伝える製品「Intuos Creative Stylus」を提供している。同製品はTouchイベントで座標を拾い、Stylusイベントで筆圧を感知し、その情報を見ながら操作を決める仕組みになっている。
もし、マルチプラットフォームに対応したデジタルインクのアプリを作るとしたら、Webアプリケーションが主流になると思われる。ではWebアプリケーションで、どうやって筆圧を感知するのか。
セキュリティ上の問題により、Webアプリケーションではドライバから上がってくる筆圧情報を、直接に取りに行くことはできない。それを解決するため、ワコムが提供しているのが「WebPlugin」という仕組みである。ペンでパネルに書いていくと、そこからドライバで取得した筆圧情報を、プラグインを通じてブラウザに渡していく。そうすることにより、筆圧を反映した描画を可能にしている。
ただし、WebPluginはワコムのタブレットのドライバと一緒に配布されており、ワコムのタブレットでないと動作しない。また、WindowsとMac OS Xにしか対応しておらず、AndroidとiOSには未対応だ。
デジタルインクにも標準化の動きがある。現時点では実装されるかどうかは不明だが、W3Cで、ペンの入力情報をブラウザに伝えるための標準仕様として「Ink Markup Language」という仕様が検討されている。
デジタルインクのテクノロジーは、様々な分野で応用が可能だ。たとえば、ワコムの手書きデジタルサインに対応した製品「サインタブレット」は、ショッピングセンターのららぽーとなどで、クレジット購入サイン用システムとして採用されている。サインタブレットでは、タブレット上で行ったサインの筆記情報をUSBを通じてPCに送り、Signature SDKを使って描画する。
手書き文字認識も重要である。Windowsでは標準で認識エンジンを持っており、Windows XP Tablet Edition以降で標準機能として提供されている。一方、AndroidやiOSでは、サードベンダ提供のコンポーネントを使う必要がある。
実はワコムが提供しているペンには、個体ごとにIDを持っている機種がある。同社ではそうした機種に対し、「システムに対してペンのIDを使用してログインする」といった用途の実証実験を行っている。用途のアイデアも募集中とのことである。
新村氏は最後に「ペンを上手く活用したアプリを作れば、より新しい文房具の世界が広がっていく」とデジタルインク技術の応用を呼びかけ、セッションを終了した。
株式会社ワコム
〒349-1148 埼玉県加須市豊野台二丁目 2-510-1
フォーム: http://tablet.wacom.co.jp/business/contact/index.html
URL: http://wdnet.jp/