PV3D|Pepervision3D 2.1 alphaでのアニメーション

Papervision3Dが2.1alphaになり、アニメーションも充実してきた、
ということで、早速アニメーションをしてみました。
が!しかし、困ったバグが。。。
CS3で今まで制作していたのですが、どうも2.1ではDAEのアニメーションが読み込まれない模様。
原因は分かりませんが、同じ書き方でFlexやCS4で試すと動くのに、CS3だけ動きません。
MD2に関しては試してないのでわかりませんが、DAEに関してアニメーションをする場合は注意!

で、アニメーションの基本的な書き方は、

Floorplanner Tech Blog

を参考にしてください。
で、アニメーションの制御に関しては、

KYUCON*BLOG

を参考に。
で、そもそも読み込んだDAEにアニメーションがあるのかないのか?
というのを調べるには、

dae.playing
というので、Booleanが帰ってくるので調べれるのかと思っていたのですが、
どうもこれは【再生中かどうか】というのを調べるみたいです。
では、どうやってアニメーションがあるかを調べるには、
dae.animation.channels.length
で、たぶんキーフレームの数を調べてくれるので、
これがアニメーションが無い場合0、ある場合は1以上だと思います。
もうひとつは、
dae.animation.startTime
dae.animation.endTime
というのを使うと、開始秒数と終了秒数がわかるので、
同じ値であれば、アニメーションはない、ということになります。

参考:
LightwaveからColladaファイルを書き出すよ
wonderfl
Blenderのアニメーション付きファイルをPapervision3Dで表示する

PV3D | VirtualMouseで3DEvent

前回の続きです。

サンプル

空きを見つけてちょこちょこいじってみましたが、最終的に

ちょっと力技だけどこんな感じに仕上がりました。

INSITE-WEB3D by PV3D-001

今週からINSITEを制作例に、なるべくローポリゴンで見栄えが良く見えるようなPV3DのINSITEを制作していきます。

三角ポリゴン数は最終的なPV3Dを見せるときの画面の大きさによって調節します。
今回は800×600くらいの画面の大きさである程度ズームしてもポリゴンの荒さがあまり目立たない3000〜4000三角ポリゴンくらいのモデリングで表現します。

ルノーがPV3Dで車を表現していますが、たしか2500三角ポリゴンくらいで作っています。
このくらいの画面の大きさで、あまりリアリティを追求しないでデザインや遊びに重心を置いているのであれば
このくらいなのかもしれません。
今回自分はリアリティを重視で制作してみます。

基本的な制作の流れは前回と同じような感じですが、レンダラーにFRYRENDERを使用します。
セッティングが非常に簡単でかつとてもリアルなレンダリングが可能です。問題点はレンダリングがちょっと遅いことでしょうか。。他に似たようなレンダラーはMAXWELLレンダーがあります。

次回から画像を交えた制作方法を説明していきます。

PV3D | MaterialsListに別々のInteractiveScene3DEvent

最近Flashの制作から遠ざかってることもあって
更新が滞ってました(汗

これからも実制作では、しばらくFlashを触る機会が減りそうだけど^^;

リハビリがてらに簡単なPV3Dデモ作ってたら、ふと
Cubeに貼付けるMaterialsListで、一つ一つにEventを付けれないかなーとか思ってみたり。

で、やってたら時間があまりなくなったのでとりあえず現状を・・・。



3DSMAXにおけるPV3D作成の流れ〜3DSMAX編〜008

前回のモデリングデータをDAE(COLLADA)に書き出します。
設定はデフォルトです。

wakaz015.jpg

書き出しDAEファイルと同じ階層にテクスチャーを置いておきます。
その際にDAEファイルをテキストエディターに入れてパスを変更します。
../tex/mirror.pngなどになっていたら、mirror.pngに置き換えます。

pv3dpreviewerを使用してDAEファイルを読み込み状態をみます。内側の赤ボディがpv3dのカラーで、外側のボディがping画像のハイライトで、一応ボディの形状がわかる感じになっています。ActionScriptでいろいろ制御するのが内側のボディでこれを使用してカラーを変化させたりするものに使用します。

wakaz016.jpg

ちょっといろいろあり、当初の目的は果たせませんでしたが、またの機会に何かできたらと思ってます。

次回は2000〜3000ポリゴン以内でリアルな車を表現するpv3D上での制作方法を書いてみます。


3DSMAXにおけるPV3D作成の流れ〜3DSMAX編〜007

ボディの下地はスケールを使用してハイライトとの高低差があまりでないように最小でスケールダウンして使用します。
まずボディをコピーします。
そのあとコピーしたボディに対して99%〜99.5%のスケールダウンをします。
これで下地用のボディとハイライト用のボディが出来上がります。
以下の画像が重ねた状態です。わかりやすいようにハイライト用のボディは半透明にしてあります。


wakaz014.jpg

次回はPV3Dへ持って行きます。

3DSMAXにおけるPV3D作成の流れ〜3DSMAX編〜006

前回に作成したボディのハイライトping画像をmax上で貼り付けます。
004でunrapを調整しているのでマテリアル設定のビットマップ画像ファイルをping画像に
変更するだけです。

wakaz012.jpg wakaz013.jpg

MAX上では白くなってますが、PV3D上ではちゃんと透過されますのでこのままで大丈夫です。
次回はボディの下地をつくりまっす。

3DSMAXにおけるPV3D作成の流れ〜3DSMAX編〜005

003の下絵を使いフォトショップでハイライト部分と影を手描きで描いていきます。
これが003でレンダリングしたアジの開き画像です。

wakaz007.jpg

下絵を参考にして以下のようにハイライトと影を描きます。
とりあえず可視化を上げるためバックグラウンドに黒のレイヤーを置いています。
pingで保存するときに黒レイヤーははずします。

wakaz011.jpg

描き終わったらアルファ保持のためにpingで保存し、ボディ用のテクスチャとして使用します。
次回はボディに貼り付けてみまっす。

3DSMAXにおけるPV3D作成の流れ〜3DSMAX編〜004

前回の003でハイポリゴンのモデリングデータのアジの開きをローポリゴンに貼り付ける作業です。

最初にuv/unrapをモデルに適用します。
wakaz008.jpg

次にハイポリゴンでuv/unrap作成し、レンダリングした画像を下絵にローポリゴン側で合うようにunrapを調整します。
力技ですね〜w
wakaz009.jpg

uv作業が終わってからマテリアルで自己照明を100にします。これで陰影が消えるのでPV3D上と同じ状態で見れます。

wakaz010.jpg


実は最終的にPV3D上で車のボディに絵が描けるようにしたいのです。
そのためには描く用のボディとハイライトだけのボディが必要でハイライトだけの透過ping画像が必要です。
テクスチャレンダリングのエレメントでレンダリングをしたのですがその画像にアルファがつかない、、
ので最終手段で力技でやることにしました。自分でハイライトとか描きますw

次回はその過程を書いてみます。

PV3D | DAEファイルの読込み

DAEを読込んで表示してみた。by t.e.t.u

ソースをダウンロード

サンプル

簡単なDAEファイルを読込んで表示させてみました。
//DAEオブジェクトクラス
import org.papervision3d.objects.parsers.DAE;

var daeObj:DAE;

daeObj = new DAE();
daeObj.load("○○○.DAE");
scene.addChild(daeObj);
DAEクラスって基本的なパラムは扱えるけどいったいどうなってんだろう???
目標は読込んだDAEのオブジェクトに対してペイントをするってこと
なんだけど、とりあえずDAEを読込みはOKとして
テクスチャを読込み3Dオブジェクト(DAE)に貼付けるってのもできた。(ここは次回やる予定)
3Dのオブジェクトに対してペイントするにはVirtualMouseと
テクスチャの応用でなんとかできそうなんだけど
DAEのオブジェクトにはVirtualMouseは効かないようで(あたりまえ)・・・。
ちなみにVirtualMouseを使うと3Dの物体に対してマウスのオーバーなどのアクションを設定できて、
カーソルの位置から関連づけしたテクスチャ用のオブジェクトの座標を取得する、
というようなことは実現できるみたい。(これもそのうち載せときます)

まぁ先輩フラッシャーのサンプルソースとカンとWeb上の情報をたよりに
ここまでできたのも奇跡な気がするけどwこれはかなり難問だ。
想像ではDAEを読込む時に、読込んだ3Dをプレーンな3Dオブジェクトに置き換えて
さらにUVマッピングのデータを元にオブジェクトとして動的にテクスチャを作成・・・。

うーんwかなり現実的じゃない気がするなー(汗
いろいろ調べても同じような事やろうとしてる人がいないし、情報が出てこない。
自分で解析してくしかないのかなー・・・。