アニメCGの情報誌で、3dsMaxを使用して添付画像のように”マテリアルIDによる色分け画像を書き出している”実例(画像中のC)が載っていました。
マテリアルIDごとに色分けされた、Cのような画像を、JPGやPNGで書き出す方法はないのでしょうか。
情報誌にはRLAファイルで書き出しているということなのですが……。
どなたか方法をご存じの方がいらっしゃいましたら、ご回答の程をよろしくお願い致します。
解決済! 解決策の投稿を見る。
回答者: nagaimo. 解決策の投稿を見る。
最近はVRayしか使ってないんで、標準レンダーだとうろ覚えですが
レンダリング設定ウィンドウのRender Elementsタブから"マテリアルID"の要素を追加すれば
任意のフォーマットで行けたと思います。
VRayの場合は"VRayMtlID"か"MultiMatElement"で、MultiMatElementだと特定のIDをRGBのチャンネルに個別に
割り当てられるんで、アンチかかったマスクが使えたり、個別にオブジェクトの除外設定ができるので便利です。
返信ありがとうございます!
教えていただいた方法で、マテリアルIDを書き出すことが出来たのですが、
レンダラーの設定でアンチエイリアスをOFFにすると、マテリアルIDのレンダリング画像が真っ暗になってしまいます。
なんとか、マテリアルIDをアンチエイリアスをかけない状態でレンダリングする方法はないでしょうか?
標準レンダーでしょうか?
今試してみたら確かに標準レンダーですとアンチのチェックはずすと出力されないですね
ちょっと標準レンダーでは回避方法はわからないですが、VRay+VRayMtlIDだとアンチはかからないです
あとMentalRay+マテリアルIDでもIDにアンチはかからないと思います。
この場合通常のレンダリング画像のほうはアンチがかかったままですので、
VRayであればImage samplerをFixedで1に
MentalRayであればサンプリングモードをクラシック/レイトレースにして最小最大を共に1に
したほうがいいとおもいます。
あと、元の雑誌にあったようにRLAやRPFで出力すれば、色でなくID番号で記録されているので
AE等で抽出すればアンチはかかってないと思います。
回答ありがとうございます!
記述を忘れていました、標準レンダーです。
教えていただいたとおりにMaterialRayの設定を変更したらアンチエイリアスの無い画像でマテリアルIDが保存できました!
しかし、RLA/RPFで保存するとAE側でマテリアルIDごとには認識してもらえませんでした。
マルチ/サブオブジェクトに3つのマテリアルを入れ、
編集可能ポリゴンのポリゴンからポリゴン:マテリアルIDで面ごとにマテリアルIDを設定、
最後にストレートマテリアルエディタのツールバーから、3つのマテリアルとマルチ/サブオブジェクトレベルにマテリアルIDの番号を割り振ったのですが……。
一つお聞きしたいのですが、
マルチ/サブオブジェクトの基本パラメータに書いてあるIDと、
ストレートマテリアルエディタのツールバーから設定できるマテリアルIDは何が違うのでしょうか?
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番にしておくとか揃えて置いてもいいと思います。
本当に丁寧なご回答、ありがとうございます!
教えていただいた方法で無事AE側でID別に開くことができました!
マルチ/サブオブジェクトのIDと、ツールバーから設定するIDの違いも理解できました。
3dsMAXのわからない部分が少しづつ無くなっていくのを感じます。
全て質問に答えて下さったnagaimoさんのおかげです。本当にありがとうございました!
altoron321 さん、こんにちは。
こちらの投稿は既に nagaimo さんの回答にて解決されていますが、1点補足となります。
ご投稿中の「標準レンダー」は スキャンライン レンダラー を指しているかと思いますが、あいにく製品の仕様により、[レンダリング要素](Render Elements)を使用する際に [アンチエイリアシング] をオンにしてもらう必要があります。
下記の製品ヘルプに注釈がありますので、よろしければご参照ください。
[レンダリング要素](Render Elements)パネルとロールアウト