7/マルチタッチ対応アプリケーション開発者会議”がマイクロソフトの主催で開催された。これは、スレートPCなどで利用されるマルチタッチ技術を活用したアプリケーションを集まった開発者に開発してもらい、スレートPCを盛り上げていこうという試み。残念ながら今回は参加できなかった開発者のみならず、一般ユーザーにとっても興味深い内容であったので、本稿ではそのレポートをお届けする。7の現状と予測、そしてマルチタッチ技術の意義などを説明した。7が稼働しているという。2010年10月現在で約8,208社がボリュームライセンスを購入し、国内法人・団体の25%が導入を開始するなど、懸念となっていた企業への浸透もかつてない勢いで進んでいる。7の展開を図っていくという。7の目玉の1つであった“マルチタッチ”技術の普及は芳しくなく、発売後1年たってようやく最近“国内メーカー初”とされるスレートPCがオンキヨーから発売されたほどだ。7のマルチタッチ対応のモニターなどを所持しているか尋ねたところ、挙手する人はごくわずかであった。富士通の新スレートPCしかし、同氏によるとこのような状況も近く打開されるという。先のオンキヨー製スレートPCのほかにも富士通など国内外のメーカーから続々とスレートPCが発売される予定で、一部企業では大量導入も始まっているという。基本的には、“キーボードのないネットブック”のようなもの。キーボードをもたず、“触る”ことによってのみ操作可能なPCと言える。同様のデバイスとしてはAppleの“iPad”が挙げられるが、iPadができることを限定してユーザビリティを高めたのに対し、スレートPCの特徴はあくまでも“Windowsが動くPC”の自由度を維持したまま、タッチで操作できるように改良した点にある。7そのものはOSレベルで“マルチタッチ”に対応し、標準コンポーネントもタッチ操作に対応した動作をする。7そのままでとくにタッチ対応アプリケーション向けのサポートはない。その上、これまでのマウスやキーボードによる入力を前提とすることはできず、既存のマルチタッチを意識せずに開発されているアプリケーションは当然使いづらくなってしまう。7で快適な“マルチタッチ”を実現するには、それぞれのアプリケーションの対応が重要であることを同氏は強調する。サードパーティのアプリケーションでも、ちょっとしたツボを押さえた開発を行えば、見違えるほどタッチ操作でも使いやすくなる可能性があるのだ。そこで本会議では、“3月までに自身のアプリケーションをマルチタッチに対応させるかマルチタッチ対応のアプリケーションを開発すること”を条件に、オンキヨー製のスレートPCが参加した開発者全員に無償で提供された。これまではいわば“ソフトがないからハードが出ない、ハードが出ないからソフトが生まれない”という“鶏と卵”の状況であったが、すでに無償配布されたスレートPCを利用してタッチ対応を果たしたソフトも登場している。うまくいけば、来年の春には新しいスレートPCのラインナップとマルチタッチに対応した多くのオンラインソフトが一堂に会することになるだろう。クライアントプラットフォーム推進部の高橋忍氏が、マルチタッチ対応アプリケーションの開発で押さえておきたいポイントについて解説した。7のタッチ操作では、既存のマウス操作をエミュレートできるほか、フリック(指ではじく)操作やピンチ(2本の指を使って広げたり縮めたりする)操作といった“ジェスチャー”を扱うことも可能。OS標準のアプリケーションでも対応しており、「エクスプローラー」ではフリック操作で“戻る”や“進む”機能を利用したり、ピンチ操作でファイルの表示方法を変更可能なほか、「ペイント」ではマルチタッチ機能を利用して2本指で同時に2本の線を引くことができる。ビューアー」ではピンチによる画像の拡大縮小や、2本の指を使った画像の回転にも対応している。タッチ”に利用されるハードウェアには2種類の異なる認識方式があるということだ。光学センサーによってタッチ操作を認識する仕組み。モニターで利用される方式で、スレートPCやモバイル端末は基本的にこのタイプ。同時認識できる点は理論上256ポイントまでだが、ハードウェアの性能によりドライバーレベルで制限されており、一般的には4ポイント程度まで。(注:今回提供されたスレートPCでは2ポイントまで)とくに、同時認識できるポイント数は重要で、利用できる操作の組み合わせなどに関わりがある。ユーザーはコントロールパネルの“システム”画面で確認できるほか、開発者もAPI経由で情報を取得することが可能。タッチアプリケーション開発における6つのポイントタッチアプリケーション開発における6つのポイント次に、タッチ対応アプリケーションの開発における気を付けるべき6つのポイントが紹介された。タッチすることは画面に手をかざすことタッチをすることは画面に手をかざすことマウスでポイントする場合と異なり、指や掌でコントロールが隠れてしまい、せっかくの説明キャプション(ポップアップやツールチップ)が確認できないといった事態が生じうる。配置を再考する、ほかのコントロールで置き換えるといった対応が必要になるだろう。マウスは1ドット、指は100ドットマウスは1ドット、指は100ドットタッチ操作は精度が悪く、マウスは1ドット単位で選択できるのに比べ、指ではおおむね100ドットの精度でしか選択できないと考えるべきだ。小さなコントロールは操作がしにくく、押し間違いが頻発してしまう。ボタンの大きさ・間隔には余裕をもたせたほうがよいだろう。アプリケーションへエクスプローラーのファイルリストを埋め込んで利用している場合などでは、リスト表示ではなく、指で操作しやすいアイコン表示などを活用したい。ホバーイベントは存在しない、右クリックは面倒ホバーはない、右クリックは面倒タッチ操作では、コントロール上にカーソルが移動したことを検知するホバーイベントが原理上発生しない。このことは、ボタン上にカーソルを移動させると色が変化するなどといったUI効果が役に立たなくなることを意味する。右クリック前提の操作は控えるべきだ。Mobileでおなじみのタップ&ホールドのほか、2本の指を“トントン”と時間差でタップさせることでマウスの右クリック操作をエミュレートすることが可能。どちらにしてもマウスの右クリックほど気軽にできる操作ではない。右クリックメニューに依存したアプリケーションや、右ドラッグを利用するアプリケーションは設計を見直す必要がありそうだ。クリック感がないクリック感がないからタッチ操作では、当然マウスを押した際の“カチッ”という音がない。そのため、クリックしたことがわかりにくくなる。高橋氏によると、ユーザーは処理を待つことには慣れているが、押したか押されていないかがわからないという状況には慣れておらず、非常にフラストレーションがたまるという。ボタンが押し下げられたときに色を変更したり、ボタンがへこむエフェクトを加えるだけで、そのフラストレーションは大いに緩和できる。これらのエフェクトは、後述のWPF/Silverlightを利用すればコーディングなしに実現可能。マルチタッチアプリを開発する際には、是非採用を検討してほしい。さまざまな利用シーンを想定するアプリケーションの使われ方スレートPCは、座って使うとは限らない。机で利用するよりも、立ったり寝そべったり、片腕で抱えたり膝の上で使うほうが多いだろう。マルチタッチ対応アプリケーションも、それを考慮した設計であるべきだろう。Lunascape製の「iLunascape」で採用されているユーザーインターフェイス。手元でほぼすべての操作ができるように、ボタンが集中配置されているとはいえ、さまざまな状況へ1つのUIで対応するのは難しい。開発者側から使い方を提案するの1つの考えだろう。両手でタブレットの両端をつかむシーンを考えるならば、左右にボタンコントロールを集中させて両親指のみでたいていの操作が行えるようにすると便利だろう。iPad用アプリではあるが、Lunascape製の「iLunascape」で採用されているユーザーインターフェイスが参考になるかもしれない。ユーザーの“慣れ”に配慮するユーザーの当たり前iPadなどの類似デバイスでは、フリック操作でスクロール、ピンチ操作で拡大縮小といった操作が採用されており、それに慣れたユーザーも多い。具体的には以下のような操作が挙げられる。横スライドでページ送り2本の指を回転させて画像をローテーションそういったユーザーは親しんだ操作をとりあえず試してみる傾向があり、試して利用できないと“アプリケーションに不具合がある”と判断してしまう恐れもある。ユーザーのすそ野が広がったことで、マウスやキーボードを使ったことがなく、アプリは“触った”ことしかないといったユーザーさえもいるかもしれない。そのため、なるべくユーザーの習慣にも配慮したユーザーインターフェイスが今後重要になるだろう。以下、高橋氏が示したマルチタッチアプリケーションを開発するにあたっての勘所をまとめよう。4におけるマルチタッチアプリケーションのAPIについての解説が行われた。以下は開発者以外にはあまりなじみのない話題なので、ユーザーの方は読み飛ばしていただいて問題ない。4では、マウスを操作するとオブジェクトは以下の3つのイベントを順に受け取る。MouseUpタッチ操作でもほぼ同じで、以下の3つのイベントが対応する。TouchUpただし、マウスカーソルは基本的にデスクトップ上に1つのみ存在するが、“マルチ”タッチ操作では複数の入力からイベントが通知されることに注意しよう。どの入力から通知されたかを判別するには、“TouchEventArgs”の“TouchDevice”プロパティに格納されているIDを利用しよう。4ではパン(移動)・ズーム(拡大縮小)・ローテート(回転)といった基本的なタッチ操作(ジェスチャー)を扱うManipulationという仕組みが用意されている。回転の中心・角度などは自動算出される仕組みなので、開発者はManipulationを行った際のアプリの挙動を記述するのに集中できる。利用するには、タッチ入力の位置が変更されるごとに発生する“ManipulationDelta”イベントへイベントハンドラーを追加すればよい。}この際、“e.CumulativeManipulation”で開始時からの累積情報を取得できるほか、“e.DeltaManipulation”で前回の“ManipulationDelta”イベントからの差分情報を取得することもできる。Inertia(イナーシャ)イナーシャ(慣性運動)タッチ操作では、オブジェクトの位置を変化させる場合にアニメーションが多用されるが、その際に慣性をもった動き(摩擦で徐々に移動速度が遅くなる様子を再現するなど)が利用される場合も少なくない。4では、そのような慣性運動もInertiaという仕組みを利用して簡単に実現できる。Inertiaを利用するには、“ManipurationDelta”イベントで“ManipulationDeltaEventArg”オブジェクトの“StartInertia”メソッドを実行する。すると“ManipulationInertiaStarting”イベントが発生するので、そこで慣性運動に関するパラメーター(減速値など)を設定すればよい。クライアントプラットフォーム推進部の田中達彦氏による具体的な開発手順を交えたセッションが行われた。Blend」を連携させた開発は非常に生産性が高いことが改めて確認できた。マークアップ言語“XAML”でユーザーインターフェイスを定義。XなどのWindows以外の環境でも動作するのが魅力的。基本的に“Silverlight”アプリはWebブラウザー上で動作するが、v3からは“ブラウザー外実行”と呼ばれる機能がサポートされており、Webブラウザーなしであたかも単体アプリケーションのように動作させることも可能。同セッションでは台湾Microsoftのオリジナルキャラクター“藍澤光”のウィジェットを実際に“Webブラウザー外”で実行するデモも行われた。7”でも当然マルチタッチ操作が利用可能なので、スレートPCで培った経験をそのままモバイル開発に活かすことが可能。7”への道でもあるのだ。最後にWindowsプラットフォームの利点の1つに、さまざまなデバイスで共通のテクノロジーが利用可能で、しかもそれが長期間に渡ってサポートされるということが挙げられるだろう。今回紹介された“マルチタッチ”技術でもそれは同様で、モバイルからデスクトップまでさまざまなプラットフォームでこれからも長く活用できるはずだ。高橋氏・田中氏ともに、マルチタッチ技術の普及にこれからも尽力するという。マルチタッチ技術に興味のある開発者はぜひ両氏のブログを購読して、最新の情報を取得してほしい。マイクロソフトが運営する開発者向けWebサイト“MSDN”のコンテンツも役立つだろう。開発に興味をもったユーザーには、無償の開発環境も用意されているのでお勧めしたい。Blend」を利用した開発が行えるのがうれしいところ。一度試してみるのもよいだろう。