IPA


IPAトップ





平成15年度未踏ソフトウェア創造事業(未踏ユース)  採択案件評価書


 




1.採択者氏名


代表者

赤塚 大典

共同開発者

斎藤 幸士(潟<fィアックス)
吉岡 史樹(潟yルペトゥーム)



2.担当プロジェクト管理組織


 (株)オープンテクノロジーズ



3.委託支払金額


 2,721,740円



4.テーマ名


 Window形を自由自在に扱えるJavaライブラリ「WiCoCo」開発



.関連Webサイトへのリンク


 http://www.wicoco.org/cgi-bin/wiki/wiki.cgi



6.テーマ概要


 「ネット」という言葉が世間に浸透し,誰でも好きな時に好きな情報を取得することが可能になった.「ネット」が浸透した背景には,高度なGUIやアニメーションを有する表現力の豊かなWebページが増加し,閲覧を楽しくさせたことが理由の一つであろう.

 表現力の豊かさの例として,非矩形および透過Windowの存在が挙げられる.たとえば,マックOS-Xでウィンドウを最小化する場合は,ドックと呼ばれるランチャー内へ吸い込まれるようなアニメーションを伴い仕舞い込まれる.それゆえ,最小化されたウィンドウがどうなったかを直感的に理解できる.また,アニメーションの美しさもユーザの心を豊かにする.そして,これらの表現の実現には非矩形および透過ウィンドウが不可欠である.

 しかし,それらをサポートしているAPIは全てOSに依存する.それゆえ,異なるプラットフォーム上で動かすためには移植作業が発生する.当然,それに伴うコストもかかってくる.

 本提案は,プラットフォームに依存しない非矩形及び透過ウィンドウをサポートするライブラリWiCoCo (Window with Complete Control) を開発する.プログラミング言語には,WORA (Write Once Run Anywhere) を原則に持つJavaを採用し,クロスプラットフォームでの実現を目指す.

 具体的には,イメージ画像のトリミング後の形,円形ウィンドウなどの非矩形テンプレートを提供し,非矩形ウィンドウを簡単に作成できる機能を実現するAPIを定義し,Javaのライブラリとして提供する.さらに,Javaが提供しているSwingやAWTで作成するGUIと,ここで提供する非矩形及び透過ウィンドウとの共存を実現する.


7.採択理由


 目指せF1のF3ドライバから各種の職業を転々としてきた,なんとも異色のプログラマ.それだけでも興味深いが,この提案は,うまいタイミングで,みんなが欲しいものをJavaでオープンソースでささっとつくってしまいましょうと,生きがいい.それだけにタイミング勝負のところがあるので,そのあたりに注意してもらいたい (ほかの人が先にやってしまう可能性もある).OS非依存にするところが重要な売りだが,これは簡単そうで,なかなか骨が折れそうだ.そのあたり,うまく計画を立てて,なるべく遠くまで行けるようにしてほしい.

 

 
8.成果概要(中間報告時)
 

 
 前期開発では,Windowsにおける非矩形並びに透過ウィンドウのサポート,イメージトリミングライブラリが完成した. WiCoCoを利用したインスタントメッセンジャーについては,通信部が完成している.

 また,通年の目標であったWindows版実装終了に伴い,現在その他OSのサポートを実装中である.その中で,Macにおける透過ウィンドウは実装が終了した.

 この結果,Windowsについては,以下の機能が実現された.

(1) Javaにおける非矩形及び透過のウィンドウのサポート.

(2) 透明を表現できるイメージファイルから非透明部分が表す外枠形を抜き出し,スキンを容易に作成できるイメージトリミングライブラリの提供.

(3) WiCoCoの有能性を確かめるアプリケーションとしての,WiCoCoインスタントメッセンジャー (WiCoCo IM) のプロトタイピング.

 このうち,(3)について少し説明する.よく見かけるインスタントメッセンジャーは,アプリケーションを起動すると矩形のフレームが出現し,その中に,登録している友達のアイコン及びオンライン/オフラインのステータスが表示される.会話は,その中の友達アイコンをクリックして始まる.つまり,操作する人にとってメッセンジャー内の友達は,アプリケーションの中のウィンドウの中の友達という存在になる.一方,WiCoCo IMは,アプリケーション起動後にアイコンなどを乗せた矩形のフレームは出現しない.その代わりに,友達アイコンを直接デスクトップ上に配置する (赤塚 図1) 今までのインスタントメッセンジャーに比べ,見たとおり,友達がより近く,さらに直接触れられるような臨場感を生みだす.すなわちコミュニケーションを助長する作用が実現される.

 

WiCoCoインスタントメッセンジャーGUI案図

赤塚 図1 WiCoCoインスタントメッセンジャーGUI

 

 
9.PMコメント(中間報告時)
 

 
 PMはまだ現場を訪れていないが,そうしなくてもこの仕事師集団はきちんとした仕事をすると楽観していたからである.実際,計画より明らかに早く開発が進んでいる.後期が終わるまではLinux,Macでも開発が完了しているという勢いである.

 一度現場を訪問して,開発の熱気を見るとともに,最新のデモをいじってみて,さらなる注文があれば出してみたいと思っている.それに答えられるだけの実力があると思うからである.

 あとはこのソフトおよびノウハウの公開をどうスケジューリングするかがこのプロジェクトの最大の課題であろう.こういうソフトは当然ながら,使われてナンボの世界である.しかし,これについても,PMはあまり心配していない.開発者たちの積極的な動きを見ているだけで済みそうである.


10.成果概要(終了時)


 中間報告の時点から,実装法を大転換しながら,それでいて予定以上のところまで進んでしまった.転換したのは実装法だけなので,得られたものの「クールさ」は当初計画していたものと変わらない.なお,WiCoCoは「ウィーコッコ」と読む.

 成果を少し詳しく述べよう.

(1) 非矩形及び透過ウィンドウのサポート

 WiCoCoでは,非矩形や透過をウィンドウの「特徴」として抽象化し,それをウィンドウに付加することで,非矩形及び透過ウィンドウを実現した (赤塚 図2) また,複数の特徴をウィンドウに付加できるよう,特徴の足し算ができるようにした.たとえば,非矩形で且つ透過なウィンドウを作成する場合,非矩形という特徴と透過という特徴を作成し,それぞれをウィンドウに付加する.

 

特徴付加イメージ図

 

赤塚 図2 特徴付加イメージ

 

 開発にあたってJavaの既存GUI部品との親和性を高める設計方針を貫いた.たとえば,AWTやSwingの部品をそのまま利用可能にした.この結果,利用者はWiCoCoで特徴を付加したウィンドウを扱う場合でも,コーディングは従来通りの手法を用いることができる (赤塚 図3)

 

WiCoCoの位置付け図

 

赤塚 図3 WiCoCoの位置付け

 

 Javaのjava.awt.Windowとそのサブクラスが非矩形及び透過の表現を出来るようにするため,Javaが持つネイティブAPIを利用できる技術であるJNI (Java Native Interface) を介し,各OSに固有の非矩形及び透過ウィンドウ作成APIを利用した.具体的には,WindowsではWin32API,LinuxはXlib,そしてMacではCarbonあるいはCocoaを利用する.WindowsWindows2000,WindowsXP,MacOSX10.3以上ではすでに完成しており,Linux上は実装中である.

(2) イメージトリミングライブラリ

 GIFやPNGなど,透過を表現できるイメージの非透明部分が表す外枠形を取り出すライブラリを作成した.具体的には,イメージファイルを読み込みでつくったjava.awt.Imageオブジェクトから,非透明部分が表す外枠形を取り出し,java.awt.Shapeインスタンスとして利用できるようにた.JRE (Java Runtime Environment) 1.4以上で動作する.

(3) WiCoCoインスタントメッセンジャー

 WiCoCoのパワーを確かめるため,WiCoCoを利用したインスタントメッセンジャーを作成した.実際の画面は赤塚 図4.この画面を見てわかるように,友達アイコンを直接デスクトップ上に配置するので,今までのインスタントメッセンジャーに比べ,友達がより近く,さらに直接触れられるような臨場感を生み出す.コミュニケーションはますます円滑になる.IMのプロトコル仕様にJabber (http://www.jabber.org) を採用し,多くの人々に利用してもらえるようにした.なお,実装は,GUIと操作部,通信部を完全に切り離し,GUIの変更,通信部の変更などを容易にした.

 

WiCoCoインスタントメッセンジャーの画像

 

赤塚 図4 WiCoCoインスタントメッセンジャー

 

 なお,成果は公開予定であるが,詳細は未定.




11.PM評価とコメント(終了時)


 上にも述べたが,かなり本質的なところで実装の方法を変更したプロジェクトである.当初はjava.awt.Shape「形」を指定した非矩形ウィンドウを実装した.WiCoCoインスタントメッセンジャー (WiCoCo IM) で実際に使用しているうちに,APIが使い辛いことが判明した.そこで,ガラスウィンドウを提供し,その上に思い思いの描画をすることで非矩形を表現するように変更した.これが現在の状況である.

 また,キラーアプリの一つWiCoCo IMの開発で,当初,プラットフォームにJXTAを採用し,IMのプロトコルを独自に策定していたが,この方法ではWiCoCo IM同士のコミュニケーションしか取れない.より多くユーザに利用してもらえるように,IMのプロトコル部分にJabberを採用することにしている.

 言ってみればより単純な実装法と,より汎用的なプロトコルを採用したことなのだが,それでも途中からこのような変更をして,計画当初は予定していなかったMacの上でも動くようにしてしまい,さらにLinux上の実装も進んでいるという腕前は高く評価できる.3人とも相当なハッカーだからこそできたのだと思う.

 出来上がったものはデモ効果抜群で,誰が見てもすぐわかる.ここまで来ると,WiCoCo IMでもっといろいろ贅沢な注文をしたくなってしまう.実際,そういう注文を出しても実現はそんなに難しいことでなさそうだ.ガラスウィンドウの上に好きな描画をするという (どちらかというとより単純な発想の) 実装法への変更はむしろこのシステムの発展性を拡大してくれたと言えよう.

 ところで,赤塚プロジェクトは3人が別々に開発を進め,1週間に1回のミーティングで相互に刺激をしあっていたという.そのための場所を提供してくれたのは大阪の扇町インキュベーションプラザのメビックという会社である.PMからも感謝したい.もう一つの場所は吉岡君の経営する会社ペルペトゥームである (この名前は永久機関に由来する).PMらはこちらを訪問した.これは京都市の円町にある町屋を借り上げた会社であり,みんな2階の和室の畳の上に座って仕事をしている.疲れたら,1階のコタツで寝たりだべったりという面白い会社だった (写真 赤塚1) こういう雰囲気だと出てくる発想も違ってくるかもしれない.

 

開発現場@ペルペトゥーム写真1 開発現場@ペルペトゥーム写真2

 

赤塚 写真1 開発現場@ペルペトゥーム

 

★★スーパークリエータ: こういう誰が見ても面白い,使いたいなと思うものを発想し,職人芸的にさかさかと仕上げてしまう.しかも,途中で実装法を変更し,それもでも計画を超えたところまで行ってしまう.




  ページトップへ   






  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004