コミュニティ
3ds Max - 日本語
製品テクニックや情報を共有、質問、解答したり、情報を検索など使い方は様々です。お役立てください。
キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

マテリアルIDの書き出し方

7件の返信7
解決済み
返信
メッセージ1/8
altoron321
7739 件の閲覧回数, 7 件の返信

マテリアルIDの書き出し方

アニメCGの情報誌で、3dsMaxを使用して添付画像のように”マテリアルIDによる色分け画像を書き出している”実例(画像中のC)が載っていました。

 

マテリアルIDごとに色分けされた、Cのような画像を、JPGやPNGで書き出す方法はないのでしょうか。

 

情報誌にはRLAファイルで書き出しているということなのですが……。

 

どなたか方法をご存じの方がいらっしゃいましたら、ご回答の程をよろしくお願い致します。

 

 

7件の返信7
メッセージ2/8
nagaimo
次のアカウントへの返信: altoron321

最近はVRayしか使ってないんで、標準レンダーだとうろ覚えですが

レンダリング設定ウィンドウのRender Elementsタブから"マテリアルID"の要素を追加すれば

任意のフォーマットで行けたと思います。

http://docs.autodesk.com/3DSMAX/15/JPN/3ds-Max-Help/index.html?url=files/GUID-ACAC4189-F57A-4A05-887...

 

VRayの場合は"VRayMtlID"か"MultiMatElement"で、MultiMatElementだと特定のIDをRGBのチャンネルに個別に

割り当てられるんで、アンチかかったマスクが使えたり、個別にオブジェクトの除外設定ができるので便利です。

 

メッセージ3/8
altoron321
次のアカウントへの返信: nagaimo

返信ありがとうございます!

 

教えていただいた方法で、マテリアルIDを書き出すことが出来たのですが、

レンダラーの設定でアンチエイリアスをOFFにすると、マテリアルIDのレンダリング画像が真っ暗になってしまいます。

 

なんとか、マテリアルIDをアンチエイリアスをかけない状態でレンダリングする方法はないでしょうか?

メッセージ4/8
nagaimo
次のアカウントへの返信: altoron321

標準レンダーでしょうか?

今試してみたら確かに標準レンダーですとアンチのチェックはずすと出力されないですね

ちょっと標準レンダーでは回避方法はわからないですが、VRay+VRayMtlIDだとアンチはかからないです

あとMentalRay+マテリアルIDでもIDにアンチはかからないと思います。

この場合通常のレンダリング画像のほうはアンチがかかったままですので、

VRayであればImage samplerをFixedで1に

MentalRayであればサンプリングモードをクラシック/レイトレースにして最小最大を共に1に

したほうがいいとおもいます。

 

あと、元の雑誌にあったようにRLAやRPFで出力すれば、色でなくID番号で記録されているので

AE等で抽出すればアンチはかかってないと思います。

メッセージ5/8
altoron321
次のアカウントへの返信: nagaimo

回答ありがとうございます!

 

記述を忘れていました、標準レンダーです。

 

教えていただいたとおりにMaterialRayの設定を変更したらアンチエイリアスの無い画像でマテリアルIDが保存できました!

 

しかし、RLA/RPFで保存するとAE側でマテリアルIDごとには認識してもらえませんでした。

 

マルチ/サブオブジェクトに3つのマテリアルを入れ、

編集可能ポリゴンのポリゴンからポリゴン:マテリアルIDで面ごとにマテリアルIDを設定、

最後にストレートマテリアルエディタのツールバーから、3つのマテリアルとマルチ/サブオブジェクトレベルにマテリアルIDの番号を割り振ったのですが……。

 

一つお聞きしたいのですが、

マルチ/サブオブジェクトの基本パラメータに書いてあるIDと、

ストレートマテリアルエディタのツールバーから設定できるマテリアルIDは何が違うのでしょうか?

 

メッセージ6/8
nagaimo
次のアカウントへの返信: altoron321

MentalRayでRenderElementで別画像としてIDはだせたけど、RPFでは出ないという状況でしょうか?

RenderElementから別画像としてマテリアルIDが出せているなら

RPF等の出力オプションでオプションチャンネルで"マテリアルID"にチェックが入っていれば

出力できていると思いますが。

 

AE側では読み込んだフッテージを選択すると、プロジェクトウィンドウの上のところにフッテージの情報が表示されますが

そのときに"マテリアル効果"と出ていればマテリアルIDチャンネルが出力されています。

それをコンポジションで”IDマット”のエフェクトで”マテリアルID”を選んで”ID選択”でマテリアルIDを指定すれば

その指定IDのみを表示してくれます。

もしくは”3Dチャンネル抽出”で”マテリアルID”を選択すればIDがそのままグレースケールの画像になります。

ただしこの場合は、IDがそのままRGBになるのでIDが一桁だと数パーセントの明るさにしかならないので

ほとんど真っ暗にしか見えませんのでレベル補正なりしないと確認できません。

 

マルチ/サブオブジェクトの基本パラメータのロールアウトにある左の列のIDは面に指定したマテリアルIDと

マルチ/サブオブジェクトの子マテリアルとを対応させるためのIDで、

ツールバーから指定するマテリアルIDチャンネル(四角い枠の数字アイコン)がGバッファにIDを出力して

RenderElementやRPF等からID番号を出力するためのもので、同じマテリアルIDと呼ばれていますが別物です。

ですが、紛らわしいなら基本マルチ/サブの1番はマテリアルIDチャンネルも1番にしておくとか揃えて置いてもいいと思います。

 

メッセージ7/8
altoron321
次のアカウントへの返信: nagaimo

本当に丁寧なご回答、ありがとうございます!

 

教えていただいた方法で無事AE側でID別に開くことができました!

 

マルチ/サブオブジェクトのIDと、ツールバーから設定するIDの違いも理解できました。

 

3dsMAXのわからない部分が少しづつ無くなっていくのを感じます。

全て質問に答えて下さったnagaimoさんのおかげです。本当にありがとうございました!

 

メッセージ8/8
adskishinom
次のアカウントへの返信: altoron321

altoron321 さん、こんにちは。

 

こちらの投稿は既に nagaimo さんの回答にて解決されていますが、1点補足となります。

 

ご投稿中の「標準レンダー」は スキャンライン レンダラー を指しているかと思いますが、あいにく製品の仕様により、[レンダリング要素](Render Elements)を使用する際に [アンチエイリアシング] をオンにしてもらう必要があります。

下記の製品ヘルプに注釈がありますので、よろしければご参照ください。

 

[レンダリング要素](Render Elements)パネルとロールアウト



Masayuki.I

Technical Support Specialist

お探しの情報が見つからないときは、コミュニティで質問しましょう。困っている人がいたら、情報を教えてあげましょう。

フォーラムに投稿  

Autodesk State of Design & Make Report