特別企画

“Windows Slate/Windows 7/マルチタッチ対応アプリケーション開発者会議”レポート

“触れられる”アプリケーションの開発で切り開くスレートPCの未来

“Windows Slate/Windows 7/マルチタッチ対応アプリケーション開発者会議”“Windows Slate/Windows 7/マルチタッチ対応アプリケーション開発者会議”

 去る12月1日、東京ミッドタウンにてオンラインソフトを中心とした開発者約100人を対象に“Windows Slate/Windows 7/マルチタッチ対応アプリケーション開発者会議”がマイクロソフトの主催で開催された。これは、スレートPCなどで利用されるマルチタッチ技術を活用したアプリケーションを集まった開発者に開発してもらい、スレートPCを盛り上げていこうという試み。残念ながら今回は参加できなかった開発者のみならず、一般ユーザーにとっても興味深い内容であったので、本稿ではそのレポートをお届けする。

“マルチタッチ”技術の基盤となる最新OS“Windows 7”

中川哲氏(コマーシャルWindows本部業務執行役員本部長)中川哲氏(コマーシャルWindows本部業務執行役員本部長)

 最初に行われた基調講演では、マイクロソフト・コマーシャルWindows本部業務執行役員本部長の中川哲氏が登壇。スレートPCやマルチタッチ技術の基盤であるWindows 7の現状と予測、そしてマルチタッチ技術の意義などを説明した。

国内法人・団体の25%が導入を開始したWindows 7。しかし――

Windows 7の現状と予測Windows 7の現状と予測

 同氏によると、一般への販売開始から1年余りが経過したWindows 7の販売は好調で、すでに世界の全PCの17%以上でWindows 7が稼働しているという。さらに、2010年10月現在で約8,208社がボリュームライセンスを購入し、国内法人・団体の25%が導入を開始するなど、懸念となっていた企業への浸透もかつてない勢いで進んでいる。同社では、販売開始より“3年以内に企業の60%”という目標で、今後もWindows 7の展開を図っていくという。

 しかし一方で、Windows 7の目玉の1つであった“マルチタッチ”技術の普及は芳しくなく、発売後1年たってようやく最近“国内メーカー初”とされるスレートPCがオンキヨーから発売されたほどだ。実際、同氏が会場の開発者へWindows 7のマルチタッチ対応のモニターなどを所持しているか尋ねたところ、挙手する人はごくわずかであった。

「大丈夫、きっちり出てきますんで!」

富士通の新スレートPC富士通の新スレートPC

 しかし、同氏によるとこのような状況も近く打開されるという。先のオンキヨー製スレートPCのほかにも富士通など国内外のメーカーから続々とスレートPCが発売される予定で、一部企業では大量導入も始まっているという。

スレートPCとは?――“マルチタッチ”の実現にむけて

“Windowsが動くPC”の優位性“Windowsが動くPC”の優位性

 基本的には、“キーボードのないネットブック”のようなもの。キーボードをもたず、“触る”ことによってのみ操作可能なPCと言える。

 同様のデバイスとしてはAppleの“iPad”が挙げられるが、iPadができることを限定してユーザビリティを高めたのに対し、スレートPCの特徴はあくまでも“Windowsが動くPC”の自由度を維持したまま、タッチで操作できるように改良した点にある。Windows 7そのものはOSレベルで“マルチタッチ”に対応し、標準コンポーネントもタッチ操作に対応した動作をする。

求められるアプリケーションのタッチ/マルチタッチ対応求められるアプリケーションのタッチ/マルチタッチ対応

今回提供されたオンキヨー製スレートPC“TW217”今回提供されたオンキヨー製スレートPC“TW217”

 しかし、Windows 7がタッチ入力をサポートするといっても、そのほかの機能(シェル・ウィンドウシステム・タスク管理)はWindows 7そのままでとくにタッチ対応アプリケーション向けのサポートはない。その上、これまでのマウスやキーボードによる入力を前提とすることはできず、既存のマルチタッチを意識せずに開発されているアプリケーションは当然使いづらくなってしまう。

 そこで、Windows 7で快適な“マルチタッチ”を実現するには、それぞれのアプリケーションの対応が重要であることを同氏は強調する。サードパーティのアプリケーションでも、ちょっとしたツボを押さえた開発を行えば、見違えるほどタッチ操作でも使いやすくなる可能性があるのだ。

 そこで本会議では、“3月までに自身のアプリケーションをマルチタッチに対応させるかマルチタッチ対応のアプリケーションを開発すること”を条件に、オンキヨー製のスレートPCが参加した開発者全員に無償で提供された。

 これまではいわば“ソフトがないからハードが出ない、ハードが出ないからソフトが生まれない”という“鶏と卵”の状況であったが、すでに無償配布されたスレートPCを利用してタッチ対応を果たしたソフトも登場している。うまくいけば、来年の春には新しいスレートPCのラインナップとマルチタッチに対応した多くのオンラインソフトが一堂に会することになるだろう。

さっそくタッチ操作に対応したフリーゲーム「百人勇者」と「バトリクス」さっそくタッチ操作に対応したフリーゲーム「百人勇者」と「バトリクス」さっそくタッチ操作に対応したフリーゲーム「百人勇者」と「バトリクス」

Windows 7 タッチアプリケーション開発の勘所

高橋忍氏(UX & クライアントプラットフォーム推進部)高橋忍氏(UX & クライアントプラットフォーム推進部)

 次のセッションでは、“Windows 7 タッチアプリケーション開発の勘所”と題してUX & クライアントプラットフォーム推進部の高橋忍氏が、マルチタッチ対応アプリケーションの開発で押さえておきたいポイントについて解説した。

 前述のとおり、Windows 7ではOSレベルでタッチ操作に対応している(“Windows タッチ”機能)。Windows 7のタッチ操作では、既存のマウス操作をエミュレートできるほか、フリック(指ではじく)操作やピンチ(2本の指を使って広げたり縮めたりする)操作といった“ジェスチャー”を扱うことも可能。

 OS標準のアプリケーションでも対応しており、「エクスプローラー」ではフリック操作で“戻る”や“進む”機能を利用したり、ピンチ操作でファイルの表示方法を変更可能なほか、「ペイント」ではマルチタッチ機能を利用して2本指で同時に2本の線を引くことができる。さらに、「Windows フォト ビューアー」ではピンチによる画像の拡大縮小や、2本の指を使った画像の回転にも対応している。

OSでのタッチ対応OSでのタッチ対応

タッチを使った操作タッチを使った操作

2種類の“タッチ”方式

2種類の“タッチ”方式2種類の“タッチ”方式

 まず、知っておかなければならないのは、“Windows タッチ”に利用されるハードウェアには2種類の異なる認識方式があるということだ。

  • 光学式

    光学センサーによってタッチ操作を認識する仕組み。大画面モニターなどで利用されており、同時認識できる点は2ポイントに限られる。

  • 静電式

    比較的小型のモニターで利用される方式で、スレートPCやモバイル端末は基本的にこのタイプ。同時認識できる点は理論上256ポイントまでだが、ハードウェアの性能によりドライバーレベルで制限されており、一般的には4ポイント程度まで。(注:今回提供されたスレートPCでは2ポイントまで)

 とくに、同時認識できるポイント数は重要で、利用できる操作の組み合わせなどに関わりがある。ユーザーはコントロールパネルの“システム”画面で確認できるほか、開発者もAPI経由で情報を取得することが可能。

タッチアプリケーション開発における6つのポイント

タッチアプリケーション開発における6つのポイントタッチアプリケーション開発における6つのポイント

 次に、タッチ対応アプリケーションの開発における気を付けるべき6つのポイントが紹介された。

1. タッチすることは画面に手をかざすこと

タッチをすることは画面に手をかざすことタッチをすることは画面に手をかざすこと

 マウスでポイントする場合と異なり、指や掌でコントロールが隠れてしまい、せっかくの説明キャプション(ポップアップやツールチップ)が確認できないといった事態が生じうる。たとえば、配置を再考する、ほかのコントロールで置き換えるといった対応が必要になるだろう。

2. マウスは1ドット、指は100ドット

マウスは1ドット、指は100ドットマウスは1ドット、指は100ドット

 タッチ操作は精度が悪く、マウスは1ドット単位で選択できるのに比べ、指ではおおむね100ドットの精度でしか選択できないと考えるべきだ。

 たとえば、小さなコントロールは操作がしにくく、押し間違いが頻発してしまう。ボタンの大きさ・間隔には余裕をもたせたほうがよいだろう。また、アプリケーションへエクスプローラーのファイルリストを埋め込んで利用している場合などでは、リスト表示ではなく、指で操作しやすいアイコン表示などを活用したい。

3. ホバーイベントは存在しない、右クリックは面倒

ホバーはない、右クリックは面倒ホバーはない、右クリックは面倒

 タッチ操作では、コントロール上にカーソルが移動したことを検知するホバーイベントが原理上発生しない。このことは、ボタン上にカーソルを移動させると色が変化するなどといったUI効果が役に立たなくなることを意味する。

 また、右クリック前提の操作は控えるべきだ。タッチ操作でも、Windows Mobileでおなじみのタップ&ホールドのほか、2本の指を“トントン”と時間差でタップさせることでマウスの右クリック操作をエミュレートすることが可能。しかし、どちらにしてもマウスの右クリックほど気軽にできる操作ではない。とくに、右クリックメニューに依存したアプリケーションや、右ドラッグを利用するアプリケーションは設計を見直す必要がありそうだ。

4. クリック感がない

クリック感がないからクリック感がないから

 タッチ操作では、当然マウスを押した際の“カチッ”という音がない。そのため、クリックしたことがわかりにくくなる。

 高橋氏によると、ユーザーは処理を待つことには慣れているが、押したか押されていないかがわからないという状況には慣れておらず、非常にフラストレーションがたまるという。しかし、ボタンが押し下げられたときに色を変更したり、ボタンがへこむエフェクトを加えるだけで、そのフラストレーションは大いに緩和できる。

 なお、これらのエフェクトは、後述のWPF/Silverlightを利用すればコーディングなしに実現可能。マルチタッチアプリを開発する際には、是非採用を検討してほしい。

5. さまざまな利用シーンを想定する

アプリケーションの使われ方アプリケーションの使われ方

 スレートPCは、座って使うとは限らない。むしろ机で利用するよりも、立ったり寝そべったり、片腕で抱えたり膝の上で使うほうが多いだろう。マルチタッチ対応アプリケーションも、それを考慮した設計であるべきだろう。

Lunascape製の「iLunascape」で採用されているユーザーインターフェイス。手元でほぼすべての操作ができるように、ボタンが集中配置されているLunascape製の「iLunascape」で採用されているユーザーインターフェイス。手元でほぼすべての操作ができるように、ボタンが集中配置されている

 とはいえ、さまざまな状況へ1つのUIで対応するのは難しい。ならば、開発者側から使い方を提案するの1つの考えだろう。たとえば、両手でタブレットの両端をつかむシーンを考えるならば、左右にボタンコントロールを集中させて両親指のみでたいていの操作が行えるようにすると便利だろう。iPad用アプリではあるが、Lunascape製の「iLunascape」で採用されているユーザーインターフェイスが参考になるかもしれない。

6. ユーザーの“慣れ”に配慮する

ユーザーの当たり前ユーザーの当たり前

 iPadなどの類似デバイスでは、フリック操作でスクロール、ピンチ操作で拡大縮小といった操作が採用されており、それに慣れたユーザーも多い。具体的には以下のような操作が挙げられる。

  • フリック操作でスクロール
  • 画像や地図をピンチで拡大縮小
  • 横スライドでページ送り
  • 2本の指を回転させて画像をローテーション

 そういったユーザーは親しんだ操作をとりあえず試してみる傾向があり、試して利用できないと“アプリケーションに不具合がある”と判断してしまう恐れもある。ユーザーのすそ野が広がったことで、マウスやキーボードを使ったことがなく、アプリは“触った”ことしかないといったユーザーさえもいるかもしれない。そのため、なるべくユーザーの習慣にも配慮したユーザーインターフェイスが今後重要になるだろう。

マルチタッチアプリケーションを開発するにあたっての勘所マルチタッチアプリケーションを開発するにあたっての勘所

 以下、高橋氏が示したマルチタッチアプリケーションを開発するにあたっての勘所をまとめよう。

  • 画面設計:使う状況を考えて、コントロールの配置や大きさを最適化する
  • 画面デザイン:マウスで操作しやすいUIは、必ずしも操作しやすいとは限らない
  • ユーザビリティ:操作にはフィードバックを!

開発者から見たマルチタッチ

マルチタッチアプリケーションの動作環境マルチタッチアプリケーションの動作環境

 続いて、.NET Framework 4におけるマルチタッチアプリケーションのAPIについての解説が行われた。以下は開発者以外にはあまりなじみのない話題なので、ユーザーの方は読み飛ばしていただいて問題ない。

TouchDown/TouchMove/TouchUpイベント

タッチタッチ

 .NET Framework 4では、マウスを操作するとオブジェクトは以下の3つのイベントを順に受け取る。

 MouseDown MouseMove MouseUp

 タッチ操作でもほぼ同じで、以下の3つのイベントが対応する。

 TouchDown TouchMove TouchUp

 ただし、マウスカーソルは基本的にデスクトップ上に1つのみ存在するが、“マルチ”タッチ操作では複数の入力からイベントが通知されることに注意しよう。どの入力から通知されたかを判別するには、“TouchEventArgs”の“TouchDevice”プロパティに格納されているIDを利用しよう。

Manipulation(マニピュレーション)

マニピュレーションマニピュレーション

 そのほか、.NET Framework 4ではパン(移動)・ズーム(拡大縮小)・ローテート(回転)といった基本的なタッチ操作(ジェスチャー)を扱うManipulationという仕組みが用意されている。

 Manipulationは、操作対象のオブジェクトの“IsManipurationEnabled”プロパティを“true”にすることで利用可能。移動距離や回転の中心・角度などは自動算出される仕組みなので、開発者はManipulationを行った際のアプリの挙動を記述するのに集中できる。

 利用するには、タッチ入力の位置が変更されるごとに発生する“ManipulationDelta”イベントへイベントハンドラーを追加すればよい。

void rectangle1_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)  {      /* 任意の操作 (ここでは Rectangle オブジェクトを移動させる) */      ManipulationDelta m = e.CumulativeManipulation;      TransformGroup transform = new TransformGroup();        transform.Children.Add(          new TranslateTransform(m.Translation.X, m.Translation.Y));        ((UIElement)e.OriginalSource).RenderTransform = transform;      e.Handled = true;  }

 この際、“e.CumulativeManipulation”で開始時からの累積情報を取得できるほか、“e.DeltaManipulation”で前回の“ManipulationDelta”イベントからの差分情報を取得することもできる。

Inertia(イナーシャ)

イナーシャ(慣性運動)イナーシャ(慣性運動)

 タッチ操作では、オブジェクトの位置を変化させる場合にアニメーションが多用されるが、その際に慣性をもった動き(摩擦で徐々に移動速度が遅くなる様子を再現するなど)が利用される場合も少なくない。.NET Framework 4では、そのような慣性運動もInertiaという仕組みを利用して簡単に実現できる。

 Inertiaを利用するには、“ManipurationDelta”イベントで“ManipulationDeltaEventArg”オブジェクトの“StartInertia”メソッドを実行する。すると“ManipulationInertiaStarting”イベントが発生するので、そこで慣性運動に関するパラメーター(減速値など)を設定すればよい。

Silverlight アプリケーション開発のすすめ

田中達彦氏(UX & クライアントプラットフォーム推進部)田中達彦氏(UX & クライアントプラットフォーム推進部)

 最後に、同じくUX & クライアントプラットフォーム推進部の田中達彦氏による具体的な開発手順を交えたセッションが行われた。

 先のセッションで紹介された開発手法を“Silverlight”を利用して実演するといった趣で、「Visual Studio」と「Expression Blend」を連携させた開発は非常に生産性が高いことが改めて確認できた。

マークアップ言語“XAML”でユーザーインターフェイスを定義。アニメーション効果などもここで定義できるマークアップ言語“XAML”でユーザーインターフェイスを定義。アニメーション効果などもここで定義できる

「Visual Studio」と「Expression Blend」を連携させた開発が可能「Visual Studio」と「Expression Blend」を連携させた開発が可能

“ブラウザー外実行”で動作する“藍澤光”のウィジェットを紹介“ブラウザー外実行”で動作する“藍澤光”のウィジェットを紹介

 また、“Silverlight”はクロスプラットフォームで動作するので、Mac OS XなどのWindows以外の環境でも動作するのが魅力的。基本的に“Silverlight”アプリはWebブラウザー上で動作するが、v3からは“ブラウザー外実行”と呼ばれる機能がサポートされており、Webブラウザーなしであたかも単体アプリケーションのように動作させることも可能。同セッションでは台湾Microsoftのオリジナルキャラクター“藍澤光”のウィジェットを実際に“Webブラウザー外”で実行するデモも行われた。

 さらに、“Silverlight”は携帯デバイス向けのOS“Windows Phone 7”でも動作する。“Windows Phone 7”でも当然マルチタッチ操作が利用可能なので、スレートPCで培った経験をそのままモバイル開発に活かすことが可能。つまり、マルチタッチ開発は“Windows Phone 7”への道でもあるのだ。

最後に

 Windowsプラットフォームの利点の1つに、さまざまなデバイスで共通のテクノロジーが利用可能で、しかもそれが長期間に渡ってサポートされるということが挙げられるだろう。今回紹介された“マルチタッチ”技術でもそれは同様で、モバイルからデスクトップまでさまざまなプラットフォームでこれからも長く活用できるはずだ。

 高橋氏・田中氏ともに、マルチタッチ技術の普及にこれからも尽力するという。マルチタッチ技術に興味のある開発者はぜひ両氏のブログを購読して、最新の情報を取得してほしい。また、マイクロソフトが運営する開発者向けWebサイト“MSDN”のコンテンツも役立つだろう。

 また、開発に興味をもったユーザーには、無償の開発環境も用意されているのでお勧めしたい。とくに、“Windows Phone 7”の開発環境「Windows Phone Developer Tools」は、現在日本語版こそ用意されていないものの、「Expression Blend」を利用した開発が行えるのがうれしいところ。一度試してみるのもよいだろう。

(柳 英俊)