写真1●セカンドファクトリー取締役の東賢氏(右)と,同じく取締役の齋藤善寛氏(左)
写真1●セカンドファクトリー取締役の東賢氏(右)と,同じく取締役の齋藤善寛氏(左)
[画像のクリックで拡大表示]
写真2●セカンドファクトリーが作成したWPFベースのSNSのデモンストレーション画面。地面に立っている人間はすべて3Dオブジェクトである
写真2●セカンドファクトリーが作成したWPFベースのSNSのデモンストレーション画面。地面に立っている人間はすべて3Dオブジェクトである
[画像のクリックで拡大表示]

 マイクロソフトの最新OS「Windows Vista」の大きな特徴が,新しいユーザー・インタフェース(UI)技術「Windows Presentation Foundation(WPF)」を搭載したことだ。WPFを利用することで,動画や3Dオブジェクトを使った自由なUIを構築できるようになる。2006年10月,マイクロソフトが開催したイベント「REMIX」で,ソフトベンダーのセカンドファクトリーは,このWPF技術を使った,3DのSNS(Social Networking System)というデモンストレーションを公開し,大いに注目された。同社によるとWPFは,競合するUI技術であるFlashに比べ,アプリケーションを上流工程からしっかり設計・開発していく用途に向いているという。同社取締役である東賢氏と齋藤善寛氏に,WPF技術に挑戦した経緯と,Flashが向くケース,WPFが向くケース,その使い分けのポイントを聞いた。

■いつからWPFに注目していたのか。

 2006年の前半から注目していた。米Microsoftが2006年3月にラスベガスで開催したイベント「Mix」に参加し,すぐに評価を始めた。同社がWPF対応のデザイナ向けツールとして新たに開発したツール「Expression」も初期のベータ版から触っていた。

 WPFに注目した最大の理由は,プログラム・ロジックの作成とユーザー・インタフェースの作成で分業がしやすいという点だ。WPFでは,XAML(Extensible Application Markup Language)という言語を導入したことで,プログラマとデザイナが共同作業しやすくなっている。一方,Flashは構造的に分業しにくい。大きなシステムでは,アプリケーション全体のアーキテクチャを分けていかなければならないが,Flashではその境界線を引きにくいという課題があった。WPFなら,こういった課題を解決できるかもしれないと考えた。

■REMIXで公開したWPFのデモンストレーションはいつから作り始めたのか。

 2006年の5月だ。実は,REMIXで紹介した3DのSNSは,学生向けSNSを開発したいという中央大学からの依頼で開発していたものだった。Windows Vistaを見据えてということかもしれないが,開発当初からWPFで作ってほしいというリクエストがあった。その後,デモ版ができた段階でマイクロソフトから依頼があり,REMIXで公開することになった。

■開発人員は何名いたのか。

 開発チームは全部で8人。開発言語はC#を選んだ。6人はFlashの開発者で,C#の経験者は2人しかいなかった。しかし,Flashの開発者もActionScriptを使ったオブジェクト指向プログラミングに経験があったので,C#への移行はそれほど難しくなかった。ことプログラミングについては,FlashよりC#に関する書籍が多かったのも幸いした。

■デモでは3D画像を多用していたが,実用レベルの性能で使えたのか。

 正直,動作は思ったより遅かった。今後普及するパソコンの標準と想定して「Vista Premium Ready」のノートPCを用意してデモを動かしてみたが,3Dアニメーションがスムーズには動かず,カクカクとなってしまった。そういったテスト経験から,WPFを使うときは,パフォーマンスの問題をどう乗り越えるかが課題になることがわかった。専門家ならグラフィックス・ボードを買うが,一般ユーザーはそこまではしないだろう。ましてや,自宅のパソコンがノートPCだというユーザーも最近は多い。そういうユーザー環境を意識しつつ,WPFの機能をどこまで利用するかが今後の課題になるだろう。

■3D画像の機能は,使わないほうがいいということか。

 3D画像の活用は,メインのアプリケーションにまぶせるスパイス程度で済ませるべきだということだ。3D画像をたくさん使えば,確かに見た目は面白くなる。しかし,その分高性能のパソコン,特に高性能なグラフィックス・チップが必要になる。アプリケーション全体をすべて3Dにする必要があるのかということを真剣に考えるべきだろう。同じ3Dを使うにも,静止画のアニメーションで擬似的に3Dに見せるなど,いろいろやり方はある。また,WPFの中でもドキュメント・ハンドリングの部分や2Dの部分だけ使っても面白いものができるはずだ。実際,社内で進行しているWPF開発の案件では,3D画像はスパイス程度にとどめている。ハードウエア環境も,Premium Readyの最も安いパソコンあたりを想定して作っている。

■ユーザーのハードウエア環境を特定できないことが問題なのか。

 確かに,ユーザーのハードウエア環境がバラバラで,性能を予測できない点はもどかしい。現状では,ハードウエア環境を固定できるキオスク端末のような組み込み機器のUI技術として,WPFを使うと良いのかもしれない。あるいは,Windows Vistaをプリインストールしたメーカー製PCなら,同こんするソフトウエアでWPFを利用してもいいだろう。そのPCの性能にマッチしたWPFアプリケーションを作れるからだ。

■デモの開発にはどんなツールを使ったのか。

 デモの開発には,Microsoftの「Expression Interactive Designer(EID,製品版ではExpression Blendに名称が変更)」を使った。しかし,まだ製品版ではなかったので,正直使いにくかった。また,言葉の意味が,それまで使っていたFlashと異なる点にも苦労した。例えばFlashでいう「タイムライン」と,EIDでの「タイムライン」では考え方が違った。しかも,こういった違いを端的に説明してくれる資料がなかった。また,EIDが出力するXAMLがそのままではちょっと使えないのも困った。経験を積むことで段々慣れていったが,滑らかなアニメーションを作るときなどは今でもちょっと苦労している。

 とはいえ,レイアウトにはどうしてもExpressionが必要だったし,これからもそうだろう。Expressionは莫大な量のXAMLコードを出力する。人の手で最初から最後まで書くことはできないからだ。EIDについての不満点は,製品版である「Expression Blend」では改善されてきたと思う。

 このほか3D画像の作成には,米Electric Rainの「ZAM 3D」を使った。同社のFlash用3D作成ソフト「Swift 3D」に慣れていたので,問題なく活用できた。

■FlashとWPFを比較して,どちらのほうが将来性があると思うか。

 用途次第だと思う。WPFはプログラム部品を整理しやすいところがいい。アプリケーションを上流工程から設計し,その通りに開発していくという作業にはとても向いている。ただし,EIDでUIを作りながらアイデアがわいてくるということは,残念ながらあまりなかった。一方,Flashはコードを書きながら考える,いわば一人イテレーション開発のようなことができる。

 これは,どちらがが良いという問題ではなく,位置付けの問題だろう。WPFはきっちりとした大きなプロジェクトを作るのに向いていて,Flashは一人でもできるような小規模なプロジェクトに向いている。あとは慣れの問題だ。結局は,どちらかに偏ることなく,用途に応じて使い分けることが大切ではないか。マネジメントの立場からすると,WPFのほうがプロジェクト運営はしやすいが,現場ではまだFlashのほうが人気がある。

■WPFの登場は,開発ベンダーにとってどんな意味があるのか。

 WPFを使ったリッチ・クライアントの開発は,弊社にとって大きなビジネス・チャンスだと思っている。世の中にはフォームにボタンをべたべた貼り付けた企業アプリケーションが山ほどある。例えば,Visual BasicのアプリケーションのUI部分をWPFにするということも提案していけるだろう。

■リッチなUIの導入が,そのままユーザーのニーズに応えることなのか。

 Webの世界のデザインはある意味なんでもありだ。以前,「ユーザー・インタフェース破壊」とも呼べる現象が起こったことがある。デザイナが自分のFlashの手腕を見せつけることだけを考えて,どう使ったらいいかわからないようなアプリケーションを作ってしまうということがかなりあったのだ。こういったことは,今後避けなければならない。

 きちんとユーザーを見据えて「誰のためのものか」「何のためのものか」ということを常に意識してデザインすることが何よりも大切だ。デザイナが「こうしたほうが見栄えがよくてかっこいい」と考えたとしても,それがユーザーのためにならなければ,絶対にそのデザインは採用しない。それはFlashだろうとWPFだろうと同じことだ。