この記事のURL

http://www.dango-itimi.com/blog/archives/2010/001029.html


FLASH tips update メタセコイア → Flash 2

必要と思われる機能の実装とバグをもろもろなくし、メタセコイアで製作した 3D モデルを Flash にて表示を行うライブラリ製作はほぼ完了しました。

今回試しに以下のようなモデルを作成しました。

Flash 上で表示すると以下のようになります。
http://www.dango-itimi.com/blog/swf/104/mqo1.swf

鏡面表示例
http://www.dango-itimi.com/blog/swf/104/mqo2.swf

【 カメラ操作方法 】

 [マウスドラッグ] --- 回転
 [マウスドラッグ + Shift] --- 拡大縮小
 [マウスドラッグ + Ctrl] --- 焦点位置変更


マウスでカメラをくるくる操作してみると、角度によって一部面の描画順が変わる事があります。

どういう描画法を行なえば問題ないものになるのかを調べてみたところ、面作成方法を工夫すればある程度改善はできそうですが、Flash では完全な解決策はないとのこと。よって面の形状やカメラ角度等によって描画順が変わってしまうのは仕方無しとしました。

[ FLASH ] [ tips ] [ update ] 投稿者 siratama : 2010年09月29日 19:40

トラックバック

http://www.dango-itimi.com/blog/mt-tb.cgi/989

コメント

ほう!
サクサク動くじゃないですか

投稿者 トースケ : 2010年09月30日 21:18

面数が1万くらいになるとさすがにガクガクになってしまいますが、これくらいならばヌルヌル動きます・・・!

投稿者 siratama : 2010年10月01日 01:05

MQOオブジェクトがシェーディングできるんですね。本家などでは未実装だったようですが
>必要と思われる機能の実装
にシェーディングが含まれるのでしょうか。正直、ソースが知りたいです・・・

投稿者 しのぶ : 2010年10月28日 16:29

> しのぶさんへ

3D 表現に関しては勉強中で見当違いの事を言ってしまうかもしれません。

このサンプルでは、カメラから見ての各面の角度に応じて 面の暗さ設定を行っているだけとなります。面の描画時に面の暗さ設定を行っています。
よって MQO ファイル解析時には 面の暗さ設定は必要ない処理となり、本家の メタセコイア解析処理を行うクラス(Metasequoia.as)でも、各面に対する暗さ設定を行う処理は存在しないものと思われます。

Papervision については私は知識がほぼない状況ですが、面描画時、あるいは描画前に、各面に対しての暗さ設定を行うような API が用意されているのではないかと思われます。Metasequoia.as を用いてメタセコイアファイル解析後、生成された各 Papervision 用インスタンスを操作すればよさそうです。できなかったらごめんなさい。

ソースコードは規模がそこそこ膨大になっているため、ちょっと公開ができない状況となってしまっております。成果発表ばかりで、あまり役にたたない記事内容となってしまっており すんばせん…!

ちなみに、面の影の付け方は以下の URL の記事を参考にさせてもらいました。
http://d.hatena.ne.jp/nitoyon/20080620/as_3d_lessen3

投稿者 siratama : 2010年10月28日 19:03

>siratamaさま

なるほど、ライトを作って影を作るというやり方ではなく、面に対して暗さ設定をするという方法だったのですね。勉強になります。
とてもわかりやすいご解説ありがとうございました。

こちらのブログでは、他にはないチャレンジが多くとても読み応えがありますね。ドット絵風3D記事、楽しみにしています。

投稿者 しのぶ : 2010年10月28日 20:30

このswfをモデル差し替えの上、使わせてもらってよいでしょうか?

投稿者 ham : 2011年10月26日 19:56

>ham さんへ
申し訳ないです。他所様向けに制作したものではないので、使用はお控えいただけたらと思います。

投稿者 siratama : 2011年10月26日 20:49

>siratama 様

ご返答ありがとうございます。
とても綺麗でスムーズに表示でき、設置も簡単そうだったので、
使ってみたいと思い伺いました。諦めます。
お手数かけてすいませんでした。

投稿者 ham : 2011年10月27日 19:56

以下コメントを書き込むだけでは、管理人には通知が行われません。通知を行いたい場合、管理人の書き込みに「返信」を押してコメントをしていただくか、あるいは Google+, Twitter へご連絡ください。




[EDIT]