Maxwell Test 2007/07/29

巨大ファイルのテスト。
formZファイル : 100MB (オブジェクト数4万 面の数90万)
mxsファイル : 206MB
Maxwellは、v1.5になってから巨大なモデルを難なく読み込めるようになりました。
このモデルは巨大すぎて、formZでのレンダリング時にメモリ不足になったりしていたのですが、それなら、Maxwellでレンダリングできるのではないか?と思い、テストしてみました。
PlugInからの書き出しには時間がかかりましたが、Studioでも重いながらもなんとか作業できました。そして、mxclでのStart Renderingまでちゃんと持って行けました。
画像サイズは3200*2400。たぶん、もっと大きくても大丈夫でしょう。
複雑なシーンこそMaxwellの出番なんですかね。もちろん、レンダリング時間は長くなりますけど...。
VectorWorks to formZ

今やってるプロジェクトで、メーカーから3Dデータを頂きました。
はじめ、DXFをテスト的に送ってくれたのですが、formZに読み込んでみると異常に細かいポリゴンの塊...。
聞けば、元データはVectorWorksだというので、そのまま送ってもらうことにしました。
データを見ると、これが作り方が結構怪しくて、そのままではまともな変換ができません...。
特に回転体の分割角度 "0.7度" とか、必要以上に細かい設定になっていて、それが変換時に膨大なポリゴンを生む原因になっていました。
VectorWorks上は気にならないのでしょうが、客先へ出すときには困るでしょう。
一流家具メーカーといえど、営業レベルはこの程度なのかと、ちょっと呆れてしまいました...。
結局、全部formZ上で作り直してしまいました。
レイヤ属性で上書き

全レイヤのレイヤ属性を一括でON/OFFするスクリプトを作りました。
変更するのはマテリアルだけですが、ちょっと直せば、他の属性も変更可能ですよ!
マテリアルをセットする時、そのレイヤ内のオブジェクトからマテリアルをゲットしてきます。
どのオブジェクトが参照されるかはちょっとわからないです...。
LayerMaterial_All_ON_OFF_zip.txt
※right-click and choose Save Target As...
formZ to Max

先日のZ to Maxですが、なんとかスクリプト化できました。
実は先日紹介した、 "レイヤの数650越え" のプロジェクトのために作ったものなのです。
さすがにここまデカイと各部分のマテリアルの設定も大変な仕事になるはずなので、少しでも効率化をと思って作りました。
今回のスクリプトは、データ互換自体はDWGでやります。そしてDWGでは渡らないマテリアル情報の伝達をフォローします。
自分以外にも役に立つ人がいるかもしれないので、とりあえず公開したいと思います。
ZMaterials2MaxMaterial_zip.txt
ただし、非常に制約の多い条件でしかまともに動きません...。
1.formZ上では、ひとつのレイヤに、ひとつのマテリアル。
2.マテリアルの数は "24ヶ" まで。
3.レイヤ名はアルファベットであること。
4.DWG変換の際は、formZから "レイヤ" で出力して、3ds maxに "レイヤ" で取り込む。
実行するとどうなるかというと、"MAXScript" ができます。
このMAXScriptを3ds maxで実行すると、マテリアルスロットにマテリアルを作ってならべ、各オブジェクトにマテリアルをあてがいます。
マテリアルの名前と、カラー、テクスチャのパスが渡ります(※テクスチャのマッピングサイズは手動で設定してください...。)
まあ、マテリアルがアサインできさえすれば、あとの細かい調整は外注さんまかせですね...。
※必ず、変換用の一時ファイルを作って実行してください。
※formZ5.5.3と3ds max9sp2で成功しました。
Z to Max

パース屋さんへ3Dモデルを渡して仕事してもらう場合、うちでは大抵、3ds maxへ渡すことになります。
3ds maxへはDWGで渡すのですが、この変換の設定でいつも迷うところがあります。
それは、 "レイヤ" を出力するか、 "マテリアル" を出力するかということです。
設計事務所の人間としては、レイヤで出力したいところなのですが、それだと、各オブジェクトのマテリアル指定は別にやらなければなりません。
逆に、マテリアルで出力すれば、パース屋さんは楽なのでしょうが、 "各階ごと" など、"建築要素としての情報" が失われてしまいます。
こうなると、電話やメールで指示をする際に少々面倒なことになります。
「4階の小ホールの床は赤に変更です!」とか言うと、パース屋さんは「どこのことやねん!」ってことになります。
さらにモデルの修正が必要になったりしたら、大混乱でしょう...。
ということで、普通は、複雑なモデルの場合 "レイヤで出力" して、各レイヤのマテリアルを指定する表を作ったりします。
で、表を作るくらいなら、スクリプトでなんとかならないか?と思って、いつものように挑戦中です。
formZのスクリプトとMAXScriptを介して、作業の8割くらいは自動化できるのではないかと思っています。
formZにおけるグループ

今さらながら、ちょっと発見したので報告。
自分はformZの "グループ" について、長らく勘違いをしていました...。
一般的にGroupというのは、Document→Layer→Group→Object という階層ツリーの一部です。
しかし、formZの場合は、そうではなく、レイヤとは無関係にグループ化できるのです。
つまりVectorWorksの "クラス" に相当する使い方ができます。
言い換えれば、複数のレイヤにまたがったオブジェクト群を "一まとめ" にしておけるのです。
ただし、VectorWorksのクラスと違って、 "オブジェクト自身の属性" ではなく、ただ "一まとめ" にしておけるだけです。3ds maxでいうと、Selection Setに近いのかなぁ。
もっとも、自分はグループをあまり使いませんけどね...。
操作レベルをいちいち切り替えなければならないのが面倒で、たいていはレイヤ分けです。












