2010年02月21日
大鳥居なAR @ Flash
某所で開催された昨日、一昨日のイベントで紹介されていたFlashを使ったAR作品のソースを公開します。
序でに、少し開発に関して書いておきます。
開発環境としてはFlex Builder 3です。それから、FLARToolkit(スターターキット)を使ってます。形状データはShade 11(Pro.)を使って作り、形状の書き出しには自作のプラグイン「PV3D Exporter」(非公開)を使いました。
実は当初DAE(Collada)で読み込んでPapervision3Dで表示するつもりだったのですが、Shadeで書き出す場合、形状データを全てユニークな名前にしなければならないなど使い勝手が悪い。それにDAEで書き出してしまうと後でチューニングがし難い。XMLなので読み込みに時間が掛かるなどなど、気に入らない点がありました。
って事で、Shade用プラグイン「PV3D Exporter」の登場。実は1年半以上前に作ったまま放置していたプラグインです。当然Papervision3Dのバージョン的には1.xの対応。現在の2.1とは記述方法が違う。両者を見比べてみると比較的簡単に書き換えが出来ると分かり、プラグインの更新作業を行いました。以前作ったモノは、書き出したAS(Actionscirpt 3)ファイルをmxmlで簡単にコンパイルできるように作ってましたが、今回は形状データをクラスとして扱える様に、スタイルを変更しました。年賀状でARをやった時にこの方が使いやすい事が分かり、変更しました。お陰で簡単にFLARToolkitで表示出来る様になりました。
ただ、現時点ではポリゴンメッシュのみの対応で、Shadeのパートに対応してないので、全てルートに形状を置く必要があります。この辺は徐々に対応の予定です。仕事で必要になればですが・・・。
それから、今回プラグインを作ったのですが、これを使えば何でも簡単にPapervision3Dで表示出来るかと言えばそうでもありません。自分としてもそうなると良かったのですが、Papervision3D自体の問題もあり、モデリングの時点で注意して作る必要があります。面が近いモノに関して不得意なので、その辺を上手く処理できるようにしてあげないと、ポリゴン欠けを起こします。交差しているモノもちらつきの原因になってしまったりするので、この辺の処理にはShadeのブーリアンモデリングで予めポリゴンメッシュ自体が交差しない様に処理しました。
もう少し具体的な事を書くと、鳥居の屋根付近の部分ですが、形状としては単純なので、特に問題無さそうですが、横に長い面が重なり合いそうになる部分、Papervision3Dでは面が不正に表示される事がありました。これは横に長い面は幾つかに分割する事で、正しく表示される様に成りました。他のポリゴンと重なり合わない様に、注意しつつ、法線の向きも気にして作るのは結構面倒だった。(法線の向きを気にしてモデリングしたのはパフォーマンスの為に、片面表示にしたからです。実際には両面になっているところもあります。これは敢えて後でソースを書き換えました。)
ちなみにプラグイン「PV3D Exporter」はShade 9のSDKを使ってます。今時のXcodeでビルド出来るのか心配だったのですが、問題ないようです。更にShade 11で動くのかも心配でしたが、これも問題無さそうです。他のプラグインは分かりませんが、エクスポーター系はあまり変更がないのかも。
今後に関しては、当然テクスチャも出力したいですし、パフォーマンスの為にShadeのリンク機能も反映する様にしたい。同様の理由でマスターマテリアルも。さらにポリゴンメッシュ以外の他の形状も出力される様に出来るだけ対応したいです。全ては希望なので、いつになる事か・・・。
今回のプラグインで書き出したソースコード(Actionscirpt 3)は下記のファイルに同梱してますので、見たい人はどうぞ。FLARToolKitのライセンスに基づきGPLでの公開ですが、形状データのクラスを再利用する場合は、連絡を貰えると嬉しいな。
>>関連リンク
関連日記
- 2007年07月27日 MacBook Proのモーションセンサー (12963)@ Flash
- 2007年08月18日 Papervision3Dでページめくり (9648)@ Flash
- 2007年11月13日 [PV3D] 運転者視点の車運転ゲーム (9178)@ Flash
- 2008年10月16日 Tweenerでベジェ曲線アニメーション (7631)@ Flash
- 2007年08月12日 D3S Importer Library for Papervision (7568)@ Flash
- 2009年04月07日 COLLADA出力し、Papervision3Dで表示 (7119)@ Shade
- 2007年07月31日 D3S Importer Library for Papervision (6741)@ Flash
- 2007年08月01日 COLLADAフォーマット (6586)@ 3D
- 2007年08月01日 Flash用の物理演算エンジン (6547)@ Flash
- 2007年12月22日 鏡面反射 (6369)@ Flash
- 2007年08月07日 Papervision3DでCubicVR (6163)@ Flash
- 2009年10月26日 Papervision3Dを使ったColladaビューワー「pv3dpreviewer」 (5553)@ Flash
- 2007年09月20日 城戸氏のデモサンプル (5481)@ Flash
- 2007年07月14日 Papervision3D (5462)@ Flash
- 2007年08月07日 Papervision3DでMaterialsListやBitmapFileMaterial (5458)@ Flash
- 2007年07月23日 FlexでPapervision3D (5404)@ Flash
- 2008年01月11日 Flex Builder + Flash CS3でPapervision3D (5309)@ Flash
- 2008年01月20日 立体視ディスプレイ (5265)@ 3D
- 2008年01月10日 Flex BuilderでActionScriptプロジェクト (5220)@ Flash
- 2009年04月29日 FlashでColladaのアニメーション (5219)@ Shade
- 2009年10月25日 「ウェブカメラを使って遊ぶ技術を軽く紹介」した (5189)@ Flash
- 2009年06月03日 Animeeple Animation Software (FREE) (5026)@ 3D
- 2007年07月15日 Papervision3Dを始めるにあたり (4975)@ Flash
- 2008年09月07日 2Dベクトルデータを3D表現できる「vectorvision」 (4775)@ Flash
- 2009年02月20日 GE Smart Grid Augmented Reality (4774)@ Flash
- 2007年07月13日 モーションポートレート株式会社 (4727)@ Flash
- 2008年09月23日 Blender用AS3Export.py (4668)@ Flash
- 2007年07月27日 Papervision3Dで形状データの表示 (4627)@ Flash
- 2007年07月18日 初めてのFlex SDK (4618)@ Flash
- 2009年05月23日 昨日の勉強会で紹介したモノ (4477)@ Mac
アマゾン広告
この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。