top

2008年11月11日

Papervison3D collada読み込み その2
&やっとこさテクスチャ。

なんとか、colladaファイル読み込み&テクスチャに対応したさ。
ということで1.7で作ったサンプルを最新の2.0に変換してみた。

板ポリはプレーンみたくlookAt( camera )とかは出来ないんだな・・む~出来るのかな?



テクスチャ適用済みのcolladaファイルの読み込みは、クセがヒドくて一筋縄ではいかなかった・・・。
mayaやblenderあたりだと割と適切なcolladaファイルを吐き出してくれるらしい。
が、しかし今さら他のソフトでモデリングを習得している暇はないのでなんとかメタセコイアで片付けられないかと調べまくり&試しまくりで一日潰れてしまった。

で、結論だけれどもバッチリいけたぜ!
これはよそ様のエントリーにもないのでもしかしたら凄いかも。

horsetailさんというところで、メタセコイアのプラグインでFBXファイルでエクスポートできるものがあるので、それをインストール。

で、AutodeskがフリーでFBX Converterを配布しているのでダウンロードする。
メタセコイアでモデリング&三角ポリ化したものをFBX形式でエクスポート。
それをFBX Converterにドラッグ&ドロップしてdae形式で書き出せばOK。
やり方は簡単明瞭。

気をつける点は2つ。
変換するファイルはデスクトップではなくCドライブ直下へ置く。
変換するときのパスに"デスクトップ"とか2バイト文字が入るとうまくいかないようです。
あと、例によってdaeファイル内のテクスチャ画像のパスが絶対パスになってるので、相対パスへ書き換える。
あとはテクスチャ画像を読み込んでマテリアルリストとか設定すればよろし。

以上、メタセコイアだけで幸せになれるのだ!




2008年11月 5日

Papervison3D collada読み込み その2

PV3D_sample_03.jpg colladaファイルを読み込んでシェーダーを設定してみた。

var DAEcolor:GouraudMaterial = new GouraudMaterial(light ,0xFF9900 ,0xA96101 );
var materials:MaterialsList = new MaterialsList({ all: DAEcolor });
var daeObj:DAE = new DAE();
daeObj.load("コラダファイル.dae",materials)

こんな感じで出来た。
その他セルシェーディング、フラットシェーディング、フォンシェーディングを試してみた。
とりあえずグローシェーディングのGouraudシェーダーというのを使っていこう。

SAMPLEはコチラ

しかし相変わらず、エントリーに埋め込んだ場合は表示されない・・・。
他の方のblogをまわってみたけど、ポップアップで開くものばかりなのでよく分からずじまい。
パブリッシュしたHTMLではちゃんと表示されるんだけど、MTのせい?
な、はずないよなぁ・・・。

で、新しい技。
note.xさんというところでこんなエントリーを発見。
QuadrantRenderEngine というリンダリングエンジンでポリゴンの前後関係を正確に表示してくれるらしい。
ということでサンプルには適用してある。

おおっ確かにあまり破綻してないぜ。
1.7で箱庭作ってた時、箱庭全体を回転させた場合に建物のオブジェクトが地形の裏側にまわってしまったりしてソレをどうしようかなとか思ってたけど、これならうまくいくかも。
個別のdaeじゃ効かないかな?
ちょっと負荷がかかるのも気になるが。
箱庭の本番製作スケジュールが来週と迫ってるので、こんな調子じゃやばいな。

↓ daeファイルが表示されない・・・なんで? だれかおせーて。

追記:
ちゃんと表示できた・・けど、そうかswfファイルと同じディレクトリに置いても実際はindexと同じ階層を読みに行ってしまうのでブログのディレクトリ直下に置かないとダメだったのか・・・まぁ、あとでなんとかしよう。






2008年10月31日

Papervison3D collada読み込み その1

PV3D_sample_03.jpgcolladaファイルの読み込みに挑戦。
なぜ2.0で以前うまく読み込めなかったのかが、分かったのだ。
三角ポリゴンじゃないとダメらしい。
geom.トライングルナントカといってエラー吐きまくってたので、そんなことだろうとは思ったけど。

で読み込み方法も1.7とはずいぶん変わっていて、

    import org.papervision3d.objects.parsers.DAE;
    import org.papervision3d.objects.parsers.Collada;

と、とりあえず2種類発見。
両方試したけれどparsers.Collada;の方は、カメラでの表示がなんぞデタラメな感じで非常に扱いづらい。
とりあえず、サンプルはparsers.Collada;で表示していて

    camera.zoom = 35;
    camera.z = -100000;
    コラダオブジェクト.y = -3700;
    コラダオブジェクト.scale = 0.5;

こんな風に設定している。
parsers.DAE;の方が数値的に自然な感じで設定できる。
マテリアルを設定していないのでワイヤーフレームになってしまった。
これも1.7だとメタセコイアで設定したテクスチャなどがそのまま反映されて、非常にお手軽だったのだが・・・。
とりあえず次は単色でいいのでシェーダーが効くようにしてみよう。

parsers.DAE;とparsers.Collada;のどちらが今後の為にいいのかはわからないけど、しばらくは、分かりやすいparsers.DAE;のほうでいってみようかと思う。

追記:
と、思ったらなぜかblog上では表示されないずら。
http://blog.midolab.com/2008/10/31/PV3D_sample_03.swf
直接叩くと、表示される。
swfの埋め込み用スクリプトに問題があるっぽい。
いや、プラグインのバージョンがどうのというのも見た気がするなぁ
なんでや・・・次から次へと。

直ったのだ





2008年10月29日

Papervison3D ライトを使ってみた。

muji.jpgプリミティブでボックスを二つ作ってライトを設定してグローシェーディングしてみた。
なんかわかりやすいようにオレンジとブルーのボックス。
1.7みたく自動では陰影はついてくれないくて、ライトを設定しないといけない。
最初はなんでのっぺりするのか分からなかったけど2.0からの仕様だそうで。
で、先人の方々のブログを参考に

   import org.papervision3d.lights.*;
   import org.papervision3d.materials.shadematerials.*;

で、

   private var light:PointLight3D;

ポイントライトを設定。

   light = new PointLight3D(false);
   light.z = 300;
   light.x = 300;
   light.y = 300;

てな感じで適当な位置に配置してOK。
マテリアルの設定は上でシェーダーマテリアルクラスをインポートしてあるので、 その中のグローシェーディングである、 GouraudMaterialを使う。

   var boxcolor:GouraudMaterial = new GouraudMaterial( light,0x006699,0x004466 );

こんな感じ。
これはブルー。
陰影の始まりの色と終わりの色を設定してやる必要がある。
その他に、フラットシェーディングやなんとかシェーディングが使えるっぽい。

とりあえずプリミティブでボックスなんて回しててもしょうがないので、 ぼちぼちColladaファイルのインポートとテクスチャを試してみようかな。






2008年10月14日

Papervison3D 2.0 GreatWhiteとか

muji.jpg今作ってるサイトのコンテンツで箱庭的なもの表現するのにPapervison3Dを使ってっみようと思う。

で、以前買った参考書が1.7だったので1.7でサンプルを作ってたのだけれど、なかなかうまくいかない。
いや、いかないことはないけどいろいろ調べてると当然だけれど2.0の方が出来ることが多いしやりやすそうだ・・・ということで最新の2.0 GreatWhiteというのを導入してみた。

むむむむっ。
全然違う。
参考書は役に立たない。

とくにカメラまわりはまったく違うし、前に作ったColladaファイルもうまく読み込めない。しかも最新バージョンはちょっと前の2.0ともだいぶ変わってるらしく先人の方々が作った仕組みも機能しないでやんの。

とりあえずオブジェクトを中心にしてその周りをカメラが周るのやりたかったので、ググりまくって連休中に習作をこしらえてみた。
プレーンを大量に表示してその周りをカメラが周ってます。

あと、AS3.0の習得も兼ねてるのだけど、3.0に関してもゼロからなので苦労する。
テキスト表示してクリックでスタートさせるだけでも逆引きと格闘しながら1時間かかった・・・orz

プレーンをクリッカブルにしてにしてビルボード処理したいのだけど、まだまだこれから。AS3.0の基本の基本も分かってきたし。






2008年9月26日

Papervison3D

Papervison3Dが面白い。

メタセコイアのシェア版でモデリングをしてvixar motionというのが直接mqoファイルからdaeファイルを書き出せるので利用した。メタセコイアでのモデリングも楽しい。
で、niceguy eddyをモデリングしてpv3Dで動かしてみた。



カーソルキーで、操作出来るのだ。動かない場合は一度Flash内をクリック。
pv3Dはボーンを埋め込んでのアニメーションにはまだ対応していないらしくて、できればちゃんと歩くアニメーションをつけてみたい。 Papervison3D 1.7を使ってみたけど、2.0betaではテクスチャにシェーディングが使えて、光源位置も固定できるらしい。

久しぶりに創作意欲が湧いてきた。




2007年11月 8日

Flashで3D "Papervision3D"

Papervision3D
Flashで3Dを実現するフレームワーク。

そのデモ。
FlashForward Spaceship Demo
Mr.doob's DOF experiments

で、Papervision3Dを使ったauの秋冬モデルのサイト。
KDDI au: NEW COLLECTION 2007 AUTUMN & WINTER

重い・・・。
ちょっと表現が荒いので写真表示の部分とのギャップというか違和感は感じるけど、今後の可能性を考えると凄いですね。

割と古くからWebの3D技術はいろいろあったけど、今ひとつメジャーになれない。
しかしFlashで本格的に実装されるようになれば、ポピュラーなものになるかもしれない・・・なるのかなぁ。

しかし商用サイトでこういった技術にチャレンジしてしまうのは、感服するやら羨ましいやら。