On this page |
概要
Cryptomatteは、マルチチャンネル画像を通常ではEXR形式の画像で出力します。マルチチャンネルには、IDとピクセル領域をペアとして、それぞれのIDのオリジナル名を保持したメタデータ (マテリアル名やオブジェクト名または、あなたが選んだ任意のユーザープロパティ)と一緒に格納されます。
これは、選択したIDsに基づいてマットを抽出することができるので、コンポジット工程で細かな調整をする時に特定のエレメントをマスクすることができます。
以下の例では、Cryptomatteを使ってゴールドのマテリアルを取り出して、COPで色相調整をする方法について説明しています:
仕様と人気のあるコンポジットアプリケーションのプラグインに関しては、Cryptomatteのオフィシャルサイトを参照してください。
Mantraを使ってCryptomatteを出力する方法
-
Mantra ROPを選択します。
-
Images > Cryptomatte タブをクリックします。
-
Cryptomatte Layers の隣にある
+
をクリックして、レイヤーを追加します。 -
IDsの生成元となるプロパティを選択します。ドロップダウンメニューを使えば、ビルトインプロパティ(
Material Name
またはObject Name
)を選択することができます。(
Properties
ノードを使って)オブジェクトまたはマテリアルに追加されたユーザー文字列プロパティを入力することもできます。 オブジェクトまたはマテリアルにユーザープロパティを追加する方法に関する詳細は、レンダープロパティを参照してください。 -
任意で Different File に、保存したいCryptomatte画像の名前を設定します。EXR形式を強く推奨します。このパスを指定しなかった場合、このCryptomatteレイヤーはプライマリ出力と一緒に保存されます。
-
レンダリングします。
各パラメータの説明は、Mantraプロパティを参照してください。
インスタンス化と固有IDs
他のインスタンス間で特定のインスタンスをマットするには、各インスタンスに固有の値のユーザー文字列プロパティを使って、Cryptomatteを生成する必要があります。
以下がMaterial Stylesheetsを使った方法の例です:
-
インスタンスをセットアップします。
-
必ず Fast Point Instancing を使ってください。
-
Attribute Expression(または、あなたが気に入っているメソッド)を使って、
Instance
ノード内の各ポイントに固有の整数値を割り当てます。 -
Instance
ノードにユーザー文字列プロパティを追加します。 -
ルートレベルでスタイルシートを追加し、Targetを Point Instances 、Override Scriptを Render Property にして、 Inline Script を使ってスクリプトを記述し、適切なバインドをセットアップします:
インラインスクリプトの例:
cvex myFn(int id=0; export string myuserprop="") { myuserprop = sprintf("foo%d", id); }
この例では、ユーザープロパティの名前がmyuserprop
です。Point整数アトリビュートの名前がmypointid
です。
生成される固有のプロパティ値は、foo0
, foo1
, foo2
など(mypointid
アトリビュートからの値が入ります)です。
この例では、 Inline Script は、整数アトリビュートを文字列プロパティに変換するためだけに必要でした。 文字列アトリビュートを使っている場合は、単に Attribute Binding を使うことで、このスクリプトとデータバインドの処理をスキップすることができます。
スタイルシートの使い方の詳細は、Material Stylesheetsを参照してください。
Cryptomatte COPの使い方
詳細は、Cryptomatte COPを参照してください。
Tipsとメモ
-
Opacity(不透明度)とTransparency(透明度)は別物であることを覚えておいてください: 部分的に不透明なマテリアルは、カメラ光線を通過できるのに対し、透明マテリアルはカメラ光線を遮り、セカンダリ(屈折)光線を放射します。 ピクセル領域はOpacity(不透明度)に基づいて計算されるので、屈折マテリアルの背後にあるオブジェクトに対してマットを生成することができません。
-
Cryptomatteは、プライマリ平面のピクセルフィルタを使用します。 独自のピクセルフィルタプラグインを使うこともできますが、追加画像平面からデータを読み込むフィルタ(例えば、
Z
平面からデータを読み込むminmax
フィルタ)は許可されていません。 -
現在のところ、Cryptomatteはマイクロポリゴンレンダリングに対応していません。