2016年4月19日火曜日

separate_mat_mesh.py

みなさん、こんにちは。
柳村です。

最近MODOと3dsMAXとの連携を始めましたが、
ポリゴンモデリングはやはりMODOが慣れていて速いので、
MODOとMAXとの連携方法を模索しています。

で、建築CGではマテリアルごとにレイヤーを分けてFBXで書き出し、
MAXでFBXをリンクしておくと、建物に形状変更やマテリアルの増減があったときに、
MODOで修正→FBXを上書き→MAXで更新・レンダリングとすると、
作業がスムーズに行くように思います。

そこで、MODOでは普段通りにモデリングして、
最後にマテリアルごとにメッシュレイヤーを分けるスクリプトを書きましたので、
公開いたします。

使い方は、

1.対象のメッシュレイヤーを選択しておく。

2.スクリプトを実行すると、メッシュレイヤーがマテリアルごとに切り出されて、
「Locator_Mat2Mesh」というロケーターにまとめられ選択状態になります。

あとは、「選択レイヤーを書き出し」で、FBXで保存します。
書き出した後は、ロケーターごと削除します。

スクリプトで書き出し形式のダイアログを飛ばさずに表示することで、
書き出しと削除の自動化ができました。

※スクリプトでロケーターを展開する方法がわからなかったので、実際は閉じています。
 
3.MAXでFBXをリンクしておくと、形状の変更作業がスムーズ!

本当はFBX保存まで自動化したかったのですが、
スクリプトから保存を行うと、マテリアルタグのエラーが出て、
色がついてこないので、あきらめました。

※※※マテリアルタグに日本語を使うとエラーになります※※※

スクリプトファイル↓
separate_mat_mesh.py
separate_mat_mesh.py 書き出しと削除の自動化