念願のWintabの日本語情報がきたけど、MSInkで十分っぽいという話

しばらく前にWintabがどうのって記事*1を書きました。Wintabが実質Wacom専用じゃねーのって話だったと思います、たぶん。
で思い出したようにペンタブ周りを探りなおしたのでメモ。

Wacom Developer Network

なんかWacomが開発者向けのポータル作ってました。
http://wdnet.jp/
今になって日本語の情報を提供し始めるとかどうしちゃったの、というのが第一印象。まあAndroidiOS向けのデバイスを出してきたとか、タブレットPCの敷居が下がってきたとかそんなあたりでしょう。
対象とする範囲も広いです。

ここまではドキュメントやQ&Aも充実してる。

  • MacもといCocoaのTabletAPI(wacomengにリンク貼ってあるけど切れてる)
  • Mac + feel Multi-touch(サンプルだけ?)
  • Linux(sf.jpへのリンクだけ)

あとブログなんかもあるようです。ところでWDNとは別に、中の人がこのあたりの話を書いているブログも見つけたんですが、こっちもなかなかおもしろそうです。
http://inktechja.wordpress.com/

で、WintabとMSInkどっちがいいの

  • バイス
    • Wacomの普通のペンタブ(Intuosとか)はMSInkも対応してる
      • Wacom以外でWintab使うやつだと、MSInk対応してないとかあるんだろうか?
    • Wacomのfeel IT Technologyを使ったタブレットPCやBamboo Padは、そのままだとMSInkのみという話もあるが、公式からWintabドライバ出てる*2
    • N-trigもMSInkが標準だけど、Wintabドライバも公式にあるらしい*3
  • 開発面
    • Wintabならwintab.dllを動的リンク、MSInkならCOMとか.NETとか使いましょう
    • ストアアプリではwintab.dllなんて使えないので、MSInk一択

Wintab ではペンが送信する様々な情報を API として扱うことができます。
たとえば、Microsoft 標準の API では扱うことができないペンの傾きやペンのUnique ID、ペンの回転などの情報を得ることができます。
これらの情報は特にグラフィック系のアプリケーションで必要となる情報であるため、これらのアプリケーションではWintabが利用されているのです。

http://inktechja.wordpress.com/2013/11/14/%E7%AD%86%E5%9C%A7%E3%81%A8%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%A8api-surface-pro%E3%81%A7%E7%AD%86%E5%9C%A7%E3%81%8C%E3%81%AE%E8%A3%8F%E5%81%B4/

という話もあったので確かめたところ、Win8.1+Intuos4+.NET4.5では余裕で傾きや回転取れました。
例えばTabletDevice.SupportedStylusPointPropertiesを取ってみるとこんな感じ。

{Id=X, IsButton=False} 
{Id=Y, IsButton=False} 
{Id=NormalPressure, IsButton=False} 
{Id=ButtonPressure, IsButton=False} 
{Id=XTiltOrientation, IsButton=False} 
{Id=YTiltOrientation, IsButton=False} 
{Id=AltitudeOrientation, IsButton=False} 
{Id=AzimuthOrientation, IsButton=False} 
{Id=TwistOrientation, IsButton=False} 
{Id=Unknown, IsButton=False} 
{Id=PacketStatus, IsButton=False} 
{Id=TipButton, IsButton=True} 
{Id=BarrelButton, IsButton=True} 

機能的にはMSInkでもさほど困らなそう・・・。
MSInkが使いたくない(COMが嫌とか)ってわけでもないなら、今後はMSInkで書けばいいのかなーというところ。
  
と思ったけれど、そういえばWPF使わずにMSInk使う情報が見つけられてない。うーむ。