Java用3Dライブラリ「Acerola3D」の開発者に聞く 1
手軽に3Dプログラミングを楽しもう 部門より
SourceForge.JPでは、同サイトを利用するオープンソース・プロジェクトを毎月1つピックアップし、その開発者にインタビューする「今月のプロジェクト」というコーナーを設けています。今回は、手軽に3Dプログラミングを可能にするライブラリ「Acerola3D」の開発者、齋藤健司氏にお話を伺いました。
プロジェクトの概要
- プロジェクト名: Acerola3D
- 登録日: 2008-02-21
- URL: http://acerola3d.osdn.jp/
- プロジェクトホーム: http://osdn.jp/projects/acerola3d/
- 動作環境: OS非依存
- ライセンス: GPLv3, LGPLv3
- 主要対話語: 日本語
- プログラミング言語: Java, Python
- プロジェクト管理者: 齋藤健司
モーションとジオメトリを含む3Dオブジェクトのフォーマットを提案し、これを用いて手軽に3Dプログラミングを可能にするライブラリを提供します。また、このフォーマットのファイルを作成するためのユーティリティとビュアも作成します。
プロジェクト管理者へのインタビュー
このソフトウェアはどんなソフトウェアですか?
手軽に3Dアプリケーションを作成することができるようにする3Dオブジェクトのフォーマットの提案とこれをJavaアプリケーションから利用するためのJava3Dベースのライブラリです。3DCGに興味があってDirectXやOpenGLなどを勉強したことのある人や実際にゲームなどを作成している人も多いと思いますが、これらは低レベルAPIなのでマスターしてプログラムを完成させるのはかなり大変なことだと思います。Java3Dは高レベルなAPIであると言われますが、シーングラフやマテリアルや複数の座標系など3DCGの基礎知識がなければ利用が困難だと思います。その点Acerola3Dでは「3次元の座標は(X,Y,Z)の3つの数字で表せる」程度の知識だけで実用的で見栄えの良い3Dアプリケーションを作成できることを目指しています。
- スクリーンショット
- 動画
齋藤さん自身のことをお聞かせください。大学の教員ということですが、専門はどのような分野でしょうか?
専門分野は人工知能ですが、実際にはその応用ということで人工知能的な技術を利用した教育システムや仮想環境の研究をしています。大学の講義の中でも人工生命のプログラムの実習やユーザインタフェースエージェントの卒論などでAcerola3Dを活用しています。私の勤務する北海道情報大学では情報系の技術を学習するための最新の設備(モーションキャプチャの機器もあります!)と環境と教員がそろっていますし、通信教育部もあります。ご興味をもたれた方は是非ウェブページを参照してみて下さい。
Acerola3Dでは3Dフォーマットのライブラリがメインで、ツール類はその実装例という位置づけということですが、3Dフォーマットを独自に作成しようと考えたのはなぜでしょうか?
最初はフォーマットという視点よりも、もっと見栄えの良い3Dアプリケーションを簡単に作成できるようにすることが目的でとにかく作ってしまったというのが本当のところです。ですが、作り込んでゆく中で3Dフォーマットの中にモーションや効果音やライトなどの様々な要素を加えることで3Dアプリケーションの作成を非常に単純化できると気がつき、その単純化を追求したフォーマットになっています。それとAcerola3Dに含めることのできるメタデータに関しては色々工夫しています。非常に実験的な試みなのですが、世界中に分散しているプログラマとデザイナをAcerola3Dのメタデータを使ってインターネット上で疎結合させたいという野望があります。
このへんの詳細はAcerola3Dファイルのフォーマットの「プロファイル」の説明を読んでみて下さい。既存の他のフォーマットとの相違点などは自作自演のFAQ(未完成)にまとめてあります。
Acerola3Dをオープンソースにした理由は?
昔からLinuxのユーザでオープンソースの恩恵にあずかっているので、オープンソースにするのは自分にとっては自然なことでした。オープンソースにして何が得られるか?については特に考えたことはありませんでしたが、他の人から「使ってる」って言われたらこれほど嬉しいことはないかもしれません(まだ言われたことないです)。SourceForge.JPに登録したのはSubversionのリポジトリや独自ドメインのウェブページを持てることなど、開発に必要なものが無料で手にはいり安心して利用できるからです。そういうこともあり、SourceForge.JPはAcerola3D以外のプロジェクトでもいろいろ利用させていただいています。
このソフトウェアのターゲット・ユーザーは?
第一のターゲットユーザは「3Dアプリケーションのプログラマ」ですが特に次のような人です。
- 3DCGの教科書を読んだけど、プリミティブなオブジェクトしか表示できないサンプルプログラムに失望した人
- 三次元でないと表現できないパズルゲームのアイディアがあるんだけど3DCGはなかなか敷居が高いと感じている人
- プログラミング初心者で勉強中だけど、標準入力・出力だけのプログラムに飽き飽きしている人や、そういう学生を持つ先生
逆に3DCGプログラミングのプロを目指そうというような人にはあまり役に立たないかもしれません。
第二のターゲットユーザは「3DCGデザイナ」です。最近になって可能になったことなのですが!YouTubeの動画を自分のブログに貼りつけるような手軽さで、Acerola3Dの3Dオブジェクトをウェブページで公開できます。自分の作品を3Dゲームやアプリケーション用に公開しようと考えるデザイナは少いように思いますが、これからはそのような需要が増えてくるのではないかと思います。是非、3Dプログラマに売り込む作品を作ってみて下さい。
プロジェクトがうまく行っていると感じるのはどんなときですか?
利用者からの利用報告などのレスポンスがあった時、と答えたいところですがAcerola3Dを大々的に宣伝するのは今回が初めてとなるので、今後そうなることを期待して頑張りたいと思います。
このプロジェクトで最も苦労している点は?
昔作ったプログラムやAcerola3Dフォーマットのデータが新しいバージョンでも動作するように気を使っているのですがなかなか難しいです。特にフォーマットの互換性は重要だと考えており前回の変更(XMLファイルのネームスペース宣言が必須になった)が最後の変更であればと思っています。
どのような要望がユーザーからあがっていますか?
- スキンメッシュ
- 専用オーサリングソフト
- Java以外の言語からの利用
スキンメッシュに関してはデザイナからの強い要望なのですが現在のフォーマットの仕様では難しいです。ライブラリ的には新フォーマットを導入することも可能なのですが、現在のところ開発の予定はありません。Acerola3Dのオーサリングは自分の好みの3DCGソフトを使ってVRML97やBVHなどの素材をエクスポートする作業がメインになるのですが、最後にメタデータを作成して全てをZIPで圧縮する作業をサポートするオーサリングツールは是非開発したいと思っています。他の言語からの利用に関してはC言語の作りかけのコードはあるのですが先は長そうです。
今後のプロジェクトの方向性は?
この質問の答は上の質問の答と対応しているべきなのですが、取りあえず今回のインタビューが初の大きな宣伝になると思うので、まずはドキュメントの整備とライブラリの安定性向上などを優先させたいと思っています。
このソフトウェアあるいはプロジェクトについて誇れるところは?
私はコーディングが非常に遅いのですが、実は5年以上めげずに少しずつ開発しつづけているところです。
このプロジェクトでどこかやり直せるとしたら、どこを変更したいですか?
今からでも遅くないのですが、C言語での実装を提供することですね。C言語なら他のスクリプト言語のモジュールなどにするのが楽なのでやってみたいのですが、色々勉強しないといけなくなるので大変そうです。
特にゲームプログラマには現在の実装で使っているJava3Dは使えないと言う人が多いのですが、Java3Dは着実に開発が継続されており、すでにProject Looking GlassのProject Wonderland(Ver0.4)のような高度な応用も可能になっているので、あまり先入観を持たずにJava3Dを試してもらえればと思います。Acerola3Dは色々な点で単純化されたAPIで簡単なのですが、その分限界もあります。これが不満な場合にはメインをJava3Dで開発して、その中でAcerola3Dを活用するようにするとJava3Dの限界内でAcerola3Dの足りない部分を自分で補足することが可能です。
齋藤さんの開発環境は?
主に LinuxとMacOSのEclipse上で開発していましたが、最近Java6を前提としたソースに移行してしまったのでJava5しか提供されていないPower Mac G5が使えなくて難儀してます。Windowsでは時々テストするだけなので、Windowsユーザからの情報は貴重です。
バージョン・ヒストリー:
実は最初は!SourceForge.netにある[http://sourceforge.net/projects/elm-ve ELM-VE]というプロジェクトのサブプロジェクトとしてスタートしています。
- 2003年:職場に来たエンジニアさんにBVHを教えてもらって作る気になる。
- 2004年4月:!SourceForge.netでversion0.01を公開
- 2005年4月:version1.01
- 2007年10月:version2.00
- 2008年3月:version2.10 SourceForge.JPでの初リリース
- 2008年10月:version2.16 現在の最新版
このプロジェクトに貢献するには?
実際に使っていただいてご意見をもらえると助かります。Acerola3Dを使って何かを公開された人がいましたら[http://osdn.jp/projects/acerola3d/wiki/UtilizationReports 利用報告]のWikiページに書き込んでいただけると嬉しいです。特に、Acerola3Dフォーマットのキャラクタなどのデータは私と、私のゼミの学生が作成したほんの少しのファイルしかありませんので、3DCGデザイナの人に作って公開してもらえたら涙が出るほど嬉しいです。
SourceForge.JPへの要望をお聞かせください。
特に不満はなく快適に使わせてもらっています。これからもよろしくお願いします。
あれれ (スコア:0)