Flashの最近のブログ記事

今までこのブログは、Firefoxで書いて、Firefoxで確認していたら、


IEでは、flashが見れていなかったらしく、お詫び申し上げます


id:mongchang曰く、Objectタグがダメらしく、今朝Papervision系は直しました。

IE6, Firefox, Opera, Sleipnir, Safariで、一応確認しました。

Google Analyticsによると、約半数がIEということで、

多くの人が見れずにいたのかぁって思うとちょっと残念。



リンクを貼っておくので、

思いたる節がある人は、見に来てください。


[Papervision3D2.0]#1GreatWhiteを使ってみる
[Papervision3D2.0]#2 GreatWhiteでMouseEventを使うなどしてみる
[Papervision3D2.0]#3 Tweenerでトゥィ―――ンする
[Papervision3D2.0]#4 PV2.0でGlowFilterを使う
[Flex][Air] BlurFilterでぼかす



次以降、flashを貼る時のためのテンプレ


Papervison3D2.0でGlowFilterを使う時のメモ

まず、GreatWhiteでは使えない(たぶん
なので、GreatWhiteではなくEffectsの方を使う。

FilterはGlowFilterじゃなくてもいいはずだけど、使ったことないからわかんない

ぇっと、前回の[Papervision3D2.0]#3 Tweenerでトゥィ―――ンするのマウスオーバーしたPlaneを光らせるようにする。





ソース( myGlowFilter.mxml)




GlowFilter自体はどのオブジェクトにマウスオーバーしても同じにするので、インスタンスは一度だけnewしてそれを使いまわす。



これをMouseOverした時に適用するには、renderLayerプロパティにこれを代入するだけ



MouseEvent(InteractiveScene3DEvent)を有効にするのに、cameraとmaterialのinteractiveプロパティをtrueにするのを忘れずに([Papervision3D2.0]#2 GreatWhiteでMouseEventを使うなどしてみる



Javaには、Class.forName(String className)というメソッドがあり、指定したクラス名のClassオブジェクトを返すstaticメソッドがありますが、flexでもそれがないか探してみました。

すると


というプログラムが見つかった。

また、次に次のようなプログラムも見つかった。


さらには、次のようなものも



まだちゃんと検証とかまで手が回ってないので、出来次第まとめます。
今回はとりあえずメモでー


<参考>
Flex2 リファレンスガイド (http://livedocs.adobe.com/flex/201_jp/langref/)
Java 5 と ActionScript 3 の構文比較 (http://d.hatena.ne.jp/flashrod/20061212)
Flex User Group(http://www.fxug.net/modules/xhnewbb/viewtopic.php?topic_id=1241)
アプリケーションレベルのMVC [FLEX2] (http://blog.so-net.ne.jp/yoshimoto/2006-12-24)
以前、3ds maxにColladaMAXプラグインを用いてdae形式のファイルを出力し、Papervision3dでそれを表示させるという方法を紹介したが、今回はAS3 Geom Class ExporterというMaxScriptを用いてActionScript3.0形式のファイルにして使用してみた。


オブジェクトの設定とかUVマップとかは、今までの[Papervision3d]#4 3ds maxでモデリングしたデータをColladaを使って表示する①の1~20や、[Papervision3d]#6 ライト・影をテクスチャによって表現の(1)~(3)を参照。


出来たオブジェクトをActionScript3.0で保存するほう為には、

(1) AS3 Geom Class Exporterをダウンロードする。
AS3 Geom Class Exportershirotokoroさんのブログの、ここでダウンロードできます。
Download demo sources and 3ds max scriptからダウンロードしたら、ファイルを解凍

(2) 3ds maxからAS3 Geom Class Exporterを実行できるようにする
3ds maxの画面右から、ユーティリティのタブをクリックし、MAXScriptを選択し、スクリプトを実行をクリック

s1.gif




































(1)で解凍したフォルダの、AS3GeomClassExporter.msファイルを実行


(3) AS3 Geom Class Exporterでファイルを出力
ユーティリティーと書かれているセレクトボックスからAS3 Geom Class Exporterを選択すると下に、AS3 Geom Class Exporterの画面が出るEngineをPapervision3d1.5に指定し、ExportClass

s2.gif
































これで、指定したクラス名(ここではMyObject)でファイルが出力される。




これを扱うためのソースはMAXScriptと一緒に入っているデモに書かれているので、とりあえずはそれを使う。



単に表示するとかなら、Collada形式でもAS3.0形式でも出来るが、AS3.0のようにクラス化されていると、昔書いた[Papervision3d]#3 複数のオブジェクトに異なったイベントリスナーを付けてみるのように、マウスイベントとかも細かく記述できるからこっちの方が便利かも


↓は実際にAS3 Geom Class Exporterで出力したファイルを表示させたもの




参考サイト
the.fontvir.us

最近、ブログの更新が滞ってて申し訳ない。まぢレポート出すぎ・・・


さて、今回は、Papervision3d × 3ds maxで表示させるオブジェクトに影をつける為の方法をメモっておく
私の調べた限りでは、Papervision3dに"ライト"という概念がない

そこで、UVWマップのテクスチャを使って影っぽいものを表現する



やり方は、
(1) オブジェクトをモデリング
(2) ライトを設定し、テクスチャをレンダリングし、画像ファイルとして保存
(3) 出力したテクスチャをUVWアンラップ
(4) オブジェクトをCollada(.dae)ファイルで出力
である。



(1) オブジェクトをモデリング
サイコロも飽きてきた頃なので、最近モデリングしたヴァイオリンを使うことにした


(2) ライトを設定し、テクスチャをレンダリングし、画像ファイルとして保存
作成のライトのスカイライトを選び、影付けにチェックをし、床に置く

1.gif

































v2.gif


























マテリアルの設定は、フツーの色をつけるだけ
v3.gif













































オブジェクトを選択した状態で、モデファイヤのUV座標からUVWアンラップを選択
右に出るパラメータの欄の編集をクリックし、選択モードの面サブ-オブジェクトモードをクリックし、
マッピングからフラッテンマッピングを選択
(この部分は、[Papervision3d]#4 3ds maxでモデリングしたデータをColladaを使って表示する①の14~19を参照)


UVW編集ウィンドウを閉じ、メインのウィンドウに戻ったら、レンダリングからテクスチャ レンダリングをクリック
v4.gif

























マッピング座標の既存チャンネルを使用を選択し、
出力の追加からCompleteMapを選択し、要素を追加
ファイル名とタイプから、出力する画像のパスと名前、形式を選ぶ
下に行って、ファイルのみをレンダリングをチェックし、レンダリング




























































時間がかかるかもしれないが以下のようなファイルが出力される。
violine_texture.png
















(3) 出力したテクスチャをUVWアンラップ
画像ファイルが出力できたら、それをオブジェクトに貼り付けなければならない。
まず、マテリアルエディタで、今まで単純に色を塗っていた状態なのでそれを削除
そして、今出力した画像を設定し、そのマテリアルを選択に割り当て
そして、それを名前をつけてライブラリに追加
(この辺の作業は、[Papervision3d]#4 3ds maxでモデリングしたデータをColladaを使って表示する①の③から⑩を参照)
すると、下のような状態になる。
v6.gif












































ここまで出来たら、もう一度モデファイヤのUV座標のUVWアンラップすればOK


(4) オブジェクトをCollada(.dae)ファイルで出力
ColladaMaxプラグインを入れていると、ファイルの出力でCollada(.dae)ファイルが出力できるので、出力



ActionScriptの書き方は、[Papervision3d]#5 3ds maxでモデリングしたデータをColladaを使って表示する②とほぼ同じなのでこれを見てください



マテリアルを、単にColorMaterialにした場合と、今回のようにテクスチャで影を表現した場合を見比べると、その差は一目瞭然
クリックすると、フラッシュで見れます。ただ、重いので覚悟してくださいww


violine.gifvioline2.gif





















参考サイト
ricardocabello How to render the illumination to a texture for Papervision3D with 3D Studio MAX

iKnow

あわせて読みたいブログパーツ
Firefox meter