Silverlight5とKinect for Windows SDK
Microsoftが4月12日から米ラスベガスで開催しているWeb開発者向けのカンファレンス「MIX2011」。初日のHTML5に続いて、2日目のテーマはWindows Phone 7、Silverlightが主役となった。が、実は2日目の主役はもう1つあり、それこそが“Microsoftは面白い”と感じさせる、面白オカシイ研究開発成果の発表だ。しかし、闇雲に受け狙いというわけではない。面白オカシイ研究開発成果は、新たにアナウンスしたKinect for Windows SDKに絡んだものだからだ。
なお、Windows Phone 7については、先行して基調講演内容を含む記事を掲載している。話の流れから簡単に触れるが、基本的にWindows Phone 7に関しては、先行掲載した記事を見ていただきたい。
●Windows Phone成功への自信を深めるMicrosoft
2月のMobile World Congressで、Microsoftのスティーブ・バルマー氏が予告したように、Windows Phone 7の次のバージョンとなる“Mango”(開発コード名)は今年(2011年)中にリリースされる。かつてのMicrosoftならば、(少し早めに)リリース日を漏らしていたかもしれないが、Microsoftは年内としか言っていない。しかし、年内と言うからには、年内に実際の製品が出荷されるタイミングで完成させるということだろう。
携帯電話のOSという性格を考えれば、遅くとも今年の半ばにはほぼ完成させ、携帯電話を開発する端末メーカーに引き渡さなければならない。Windows PhoneはOEM先で許される範囲の簡単なカスタマイズを行なった上で、端末の能力に合わせてインストールするROMのイメージが作られる。
そのギリギリのタイミングとなると、やはり今年半ば。Mangoは夏ぐらいまでには、OEMの手に渡っていると予想する。Microsoftによると開発ツールの提供は5月。このときには開発のライブラリが確定し、開発用エミュレータの提供も行なわれるわけだから、完璧とは言えなくとも、このときにはテストできるところまでは完成していなければならない。
と、これほど念入りに書いているのは、Windows Phone 7の開発は、これまでも遅れ気味になることが多かったためだ。Mangoにしても、本来ならばMIX2011のタイミングで披露されていてもおかしくはない。この遅れはヘタをすると致命的なミスになりかねない。昨年末に発売にこぎ着けた北米はともかく、日本を含むアジア地区やロシア、中国、インドなど新興国は、iPhoneやAndroidが市場を一巡してからの発売になる。それでいいのか? という気持ちは、Microsoftならず、第三者でも感じているに違いない。
主要なスマートフォンのプラットフォームとしては、もっとも後発(以前のWindows Mobile 6.xはとてもスマートではなく、Windows Phone 7とはシステムの構成もかなり違っていたのであえてカウントしない)なだけに、ユーザーインターフェイスも動作も機能も洗練されているとはいえ、あまりにスタートが遅すぎるという印象は拭えない。
それでも2日目の基調講演を担当したWindows Phone担当副社長のJoe Belfiore氏は、Mangoの出来に自信を深めているようだ。毎日140本ずつのアプリケーションが、Windows Phone 7向けに開発・マーケットプレイスに投稿され、すでに12,000本以上が集まっているからというのも、その理由の1つだ。
Windows Phone 7の最初のリリースは、それまでのWindows Mobileでの成果を捨て、iPhoneと同様のアプローチで携帯電話に適したコンパクトなOSを作り上げることだった。そうした意味では成功を収め、Visual StudioとSilverlightで開発できる手軽さも手伝い、急速に盛り上がってきた、というところだろうか。
ただし、その盛り上がりはMicrosoftから遠いコミュニティや、そもそもWindows Phone 7に触れることのない日本には伝わってきていない。例えばZuneの同期サービスがMac OSに対応していることを知っている日本人はほとんどいないだろう。Windows Phone 7がExchangeのサポートだけでなく、Yahoo!やGoogleのシステムともWindows Liveと同じぐらいに親和性が高いとも知られていない。
そもそも、Windows Phone 7になってからは、それ以前のWindows Mobileとは全く別の思想で作られた、異なる製品であるということも、十分に伝わっているとは言い難い。“Windows”の名前を冠した携帯電話向けのOSであることが、かえって足かせになってるという印象だ。
製品そのものは、別記事に紹介したように大きく改善されており、コンシューマ向けにも企業向けにも潜在力のあるプラットフォームになってきているのに、これはもったいない。その成功の鍵はコンシューマに向け、企業寄りの印象がある日本マイクロソフトがコンシューマ向けにどういったメッセージを発せるかもあるが、もう1つSilverlightを中心に企業顧客をどこまで取り込めるか? も課題としては残る。
●Silverlight5発表。Windows Phoneとの関係は?Windows Phone 7のアプリケーションは、基本的にSilverlight(Mangoの場合はSilverlight4)で、それにXNAのゲームとHTML5が加わる形だと伝えると、一部のオープンソース系コミュニティの人たちは良い顔をしない。HTML5が出てくるんだから、SilverlightなんかFlashと共になくなってしまえ、という声も耳にする。
おそらく、初期のSilverlight(対Adobe Flash的位置付けだった)のイメージが強いのだろうが、Silverlight3以降、特にSilverlight4になってからは、インターネットアプリケーションを動かすマルチプラットフォームのランタイムとしての性格が強くなっている。
Microsoft系の開発者なら先刻承知だろうが、このあたりの位置付けは一般的なPC好きやPC製品を中心とするスマートフォン好きのコミュニティには正しく伝わっていないところもあるだろう。
しかし、安全にインターネット対応の、リッチなユーザーインターフェイスを持つアプリケーションを作る環境として、Silverlight4はHTML5にはない特徴を持っている。例えばインデックス付きのローカルデータベースを扱いたい場合1つをとっても、HTML5での実装は遅れている。データベースの扱いやソケットの扱いなどを考えると、Silverlightで書いてWindows PhoneとWindows、Macで使うというのは企業にとって魅力的な選択肢だ。
近年はiOSの普及で専用のアプリケーションをiOS向けに書き下ろし、社員にiPadを持たせるという例も増えているが、Silverlight5なら従来の.NET系の技術を習得しているエンジニアが従来と同様の枠組みでアプリケーションを書ける。
社内システムのフロントエンドをSilverlightで作り、モバイル向けにWindows Phone 7という使い方をMicrosoftは想定しているのだろう。ただし、いくつか対処すべき小さな問題はあると感じた。
1つはSilverlightそのものの機能的な枠組みだ。
MangoはSilverlight4でアプリケーションを動かすが、PC向けのSilverlightはMangoと同時期に5にバージョンが上がる。Silverlight5のβ版は、すでに公開されているのでダウンロード済みの方もいるだろう。4に対しては主にメディア再生の機能が向上し、ハードウェアの機能を用いたメディア再生やトリックプレイへの対応などが違いとしてあるという。
MIX2011の基調講演では、米海軍のアクロバット飛行チーム・ブルーエンジェルスの新しいWebサイトがデモされた。HTML5、Silverlight5、ASP.NETを用いて構築されているという。背景の写真は、実は静止画ではなく動画だ。他にも異なる複数の動画をデコードし、画面内の各パーツに張り込むといった表示も行なわれている。また3Dグラフィックスへの対応も改善されており、こちらもWindowsネイティブのアプリケーションと同様のパフォーマンスに見えた。
Silverlight5で開発した3Dアプリケーション | MangoとSilverlightのリリーススケジュール |
Silverlight3から4の時はブラウザプラグインの枠を超えてアプリケーションランタイムになるなど、位置づけが変わるほどの大きな違いがあったが、Silverlight5はそこまでの大きな違いはない
Microsoftは「Silverlightのバージョンよりも個々の機器の能力や機能の違いの方が大きく、4でも5でも変わらない」というが、それならばバージョン番号ではなく機能や能力で大きな枠組みを囲い、どの範囲ならばMangoで修正なく動かせるしてくれたほうが、開発側は対処しやすいのではないだろうか。
もう1つは、Windows Phone 7はコンシューマを強く意識して開発されてきたせいか、企業向けのプライベートなアプリケーション配布プラットフォームを提供していないこと。つまり、社内システムのフロントエンドを、Windows PhoneとWindowsの両方で使えるようSilverlightで開発しても、それを簡単に大量に配布し、オンライン更新をかける方法がない。
Silverlightは、企業が自社システムに使うインターネットアプリケーション構築のプラットフォームとして良いソリューションだと思うが、Windows Phoneをそこにうまく結びつける構成要素が抜けている。
そうした部分は1つ1つ、丁寧に埋めていかなければならない。
●イマジネーションをかき立てるKinect for Windows SDKさて、すっかり基調講演レポートではなく、コラム風になってきてしまったが、最後にKinect for Windows SDKを紹介しよう。Kinectとはご存じの通り、Xbox 360向けに発売されている深度センサーを用いた、ナチュラルユーザーインターフェイスの一種だ。Xbox 360では大ヒットしたこの仕組みを、Windowsにも持ち込もうというわけだ。
まずは、いつもユニークな開発テーマを持ち込んでくるMSDN Channnel 9の面々は、ジェリービーンズと名付けられた、電動の車輪を取り付け、座ったまま2個のKinectを使って操作するソファを披露。まるで超能力でものを動かしているように、あちこちを自由に……とまではいかないが、遊びとしては面白い。
別のチームは距離を認識できるセンサーの特性を活かし、2次元コードが近付いてくると道案内をしてくれるシステムを紹介した。さすがにWindowsノートPCを背中に背負ってKinectヘルメットを被り、なんてことは現実的ではないが、将来はどうなるかわからない。
Kinectを2台使って走るジェリービーンズ | ジェリービーンズを操作しているところ | 街中にマークを付けて道案内というアイディア |
背中にノートPCを背負い、頭にはKinect | PC上でどのようにコードを人認識している。ウェストにはバイブレータがあり、行くべき方向を示すために警告を入れてくれる |
もちろん、Kinectでゲームを作ってもいいのだが、個人的に興味をもったのはWorld Wide Telescopeというプロジェクト。スピリチュアルな感覚で腕を動かすと、宇宙の中を駆け抜けて別の銀河へと旅をしていける。
将来は、PCにステレオカメラが搭載されるのも珍しくなくなるだろう。Kinect for Windows SDKを用いて今から遊び感覚で何ができるかを模索していると、近未来の新しいアプリケーションを発見できるかも知れない。SDKは無料でダウンロードできる。
(2011年 4月 15日)
[Reported by本田 雅一]