【PV3D】DAEオブジェクトにマウスイベントできたっぽい。やっと光が見えてきた。

note.Xさんのすばらしいエントリー。
PV3D2.0] virtualMouse axis on DAE

DAEオブジェクトを読み込むことできてもマウスイベントが全然できなかった。つまり僕の知識不足なんだけども、WakaZさんのエントリー「PV3D | DAEファイルの読込み」もその前から読んでて、諦めかけてたらnote.Xがすばらしいエントリーで回答!

ほんと参考になります。

例えば、

var obj_dae:DAE = new DAE();
obj_dae.load("hoge.dae");
scene.addChild(obj_dae);
obj_dae.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, mouseClick);

だとイベントが取れない。なんでか?


そうそう、なんでイベントとれないの?って思う。するとこう解説。

PV3Dとかだと、3Dアプリケーションで作った形状データを取り込む目的でCollada形式を使ってるけど、本来、ColladaってシーングラフをまるごとXMLで記述しようっていうフォーマット(だと思う)なので、メッシュ以外にもカメラとかライトなど、3Dアプリ上で定義した全要素を定義できる。いってみれば、

var daeObj:DAE = new DAE();
daeObj.load("hoge.dae");


で生成されたdaeObjってPV3Dのシーンみたいなもんで、ツリー構造なDisplayObject3Dの塊。なので、daeObj内にある目的のメッシュを明示的に参照しないとダメなのですな。あと、InteractiveScene3DEventを有効にする場合のお約束、マテリアルのinteractiveプロパティをtrueにするのを忘れずに。


うはー!
daeObjってPV3Dのシーンみたいなもんで、ツリー構造なDisplayObject3Dの塊
そうだったのか。

まぁツリー構造ってのを漠然としか理解していないのだけど、たぶん「daeの構造をなんとなくaddEventListenerするんじゃなくって、オブジェクトの中身をちゃんと指定してaddEventListenerしなさい」ってことだと思う。

まだ自分のスクリプトではつぎはぎでしか実装できなないけど、もうちょいスリムにしながら、PV3Dを理解していかなきゃいかんですね。

at 17:42, 浅井カズヒロ, Papervison3D

comments(0), -, pookmark

クラゲとcrossdmain.xml問題


Papervision3DでクラゲのDAEデータをやっと表示することできた〜。
いろんなシェーディングのパターンも実験中です。

new ColorMaterial(0xFF0000, 100), "shde");
new FlatShadeMaterial(light, 0x0e101F, 0xdddd00, 0), "shde");
new PhongMaterial(light,0xFF0000,0x0000ff,3), "shde");
new GouraudMaterial(light, 0xFFc00, 0x0000aa, 0), "shde");


今後の目標:
マウスでインタラクティブにする。
エフェクトつけてキラキラさせる。
自律的(に見える様な)な動きをつける

--

ほんとのところこれをwonderflのサイトでみせたいのだけども
外部ドメインのDAEモデルデータを表示がいまいちできない。
他の人の作品見るとできてるんだけど。

crossdmain.xmlをつくってルートに置けとか、
セキュリティがどうとか、
ここのhttp://5ivestar.org/blog/2008/12/wonderfl-webproxy/を使うとできるとか、
サーバ周りはほんとよく分かりません。

がんばりまっす。

at 22:15, 浅井カズヒロ, Papervison3D

comments(0), -, pookmark