このチュートリアルでは、Blender 4.3のCrypto Matteノードを使って、コンポジティングでオブジェクトのマスクを抽出する方法を説明します。特に、モーションブラーが含まれている最終レンダーの場合に役立ちます。この画面の例をご覧ください。
動画の書き起こし
皆さん、こんにちは!このチュートリアルでは、Blender 4.3のCrypto Matteノードを使って、コンポジティングでオブジェクトのマスクを抽出する方法を説明します。特に、モーションブラーが含まれている最終レンダーの場合に役立ちます。この画面の例をご覧ください。
ほとんどのBlenderコンポジティングチュートリアルでは、ID Maskノードを使ってObject IndexやMaterial Indexの情報を利用し、オブジェクトのマスクを作成して個別に編集する方法を紹介しています。
しかし、この方法では、抽出したい要素ごとにObject IndexやMaterial Indexを設定する必要があり、多くの要素がある場合には非常に非効率になることがあります。
さらに、ID Maskノードで生成されたマスクは、Depth of FieldやMotion Blurのようなエフェクトが含まれている場合に精度が低くなります。この例をご覧ください。ID Maskで生成されたマスクの品質が低いため、コンポジティング全体のクオリティが影響を受けてしまいます。そこで、Crypto Matteノードの使い方を見ていきましょう。
他のビデオチュートリアルと同様に、このチュートリアルのPDF版は説明欄にあるリンクから無料でダウンロードできます。また、まだチャンネル登録していない方は、この機会に登録し、通知をオンにして新しいビデオチュートリアルをお見逃しなく!
Crypto Matteノードをコンポジティングで使用するには、まずProperties Editor内のView LayerタブのCrypto Matteセクションで、3つのオプションのうち少なくとも1つを有効にする必要があります。

これらのオプションを使うことで、コンポジティング内で異なるオブジェクト、マテリアル、またはアセットごとのCrypto Matteマスクを抽出できます。ObjectオプションとMaterialオプションは直感的な意味を持っています。この例では、私はObjectオプションを使用しています。なぜなら、大理石のトラックを個別に抽出したいのであって、同じマテリアルを共有しているサブオブジェクトやマテリアルを分離するわけではないからです。Assetsオプションは、同じ親オブジェクトを共有するオブジェクトグループを抽出するために使いますが、今回は使用しません。
これらのオプションのいずれかを選択すると、Levelsパラメータが使用可能になります。しかし、この基本的なチュートリアルではその説明は省略し、デフォルト値のままにしておきます。

今回のチュートリアルでは、Levelsパラメータをデフォルト値に設定したままにし、Crypto MatteセクションでObjectを選択しました。また、違いを比較できるように、タブ上部でObject Indexも有効にして、Index Objectの情報を抽出しました。すべての設定が完了したら、レンダリングプロセスを開始しました。

Compositor内でCrypto Matteノードを追加しました。このノードにはLayerメニューがあります。ここで、View Layerタブで選択した情報の種類に応じてCrypto Objectを選択しました。

Crypto Matteノードでは、シーンから情報を使用するためにRenderを選択するか、OpenEXR画像からデータを取得するためにImageを選択できます。今回は、当然ながらデフォルトのRenderオプションを使用しています。
Crypto Matteノードのユニークな機能の一つは、マスクしたいオブジェクトを指定するフィールドがリスト形式であることです。これにより、2つの異なる方法でオブジェクトを追加または削除できます。
最初の方法は、リスト横にあるボタンをクリックしてオブジェクトやマテリアルを追加または削除する方法です。レンダリングされた画像から直接選択ツールを使って要素をピックできます。
2番目の方法は、Matte IDフィールドに要素名を直接入力または削除し、カンマで区切る方法です。たとえば、Sphere 001オブジェクトのように、モーションブラーが強いためカーソルで選択しにくい場合にこの方法が役立ちます。また、この方法はEXR画像を使用しているときにも便利です。ファイルに付属するIDを直接入力できます。

ID Maskノードを使用する場合と大きく異なる点は、オブジェクトやマテリアルにレンダリング前に数値識別子を割り当てる必要がないことです。代わりに、レンダリング前にCrypto Matte Render Passを有効にし、レンダリング後に必要なオブジェクトやマテリアルを選択できます。
ご覧のとおり、私はRender LayersノードからCrypto MatteノードへのCrypto Object出力を接続していません。しかし、レンダリング後に必要な情報がCrypto Matteノードで利用できるようにするには、View LayerタブでCrypto Matte Object Render Passを有効にする必要があります。
Crypto Matteノードには3つの出力ソケットがあります。最初のソケットImageは、Matte IDフィールドにリストされたオブジェクトのみを含むカラー画像を返します。このソケットを利用する場合、ノードのImage入力に元のカラー画像を接続する必要があります。この機能は、レンダー画像にマスクを掛け、マスクの黒い部分を透明に設定します。

2番目の出力ソケットMatteは、透明度なしで白黒マスクのみを返します。この例ではこのソケットを使用しています。この場合、ノードのImage入力を接続する必要はありません。情報はシーンとMatte IDリストから直接取得されます。

3つ目の出力ソケットPickは、フラットで明確に区別された色のマスクを提供します。これにより、さらに選択や操作を行う際に便利です。この場合も、情報はノードから直接取得されるため、Image入力を他のノードに接続する必要はありません。

この例でオリジナルのレンダーを修正するために、Crypto MatteノードのMatte出力を取り出し、オリジナルのレンダーとともに一連のノードに接続しました。そして、Color Balanceノードを使って簡単なカラーバランス調整を行い、修正をMatte IDフィールドにリストされているオブジェクトに限定しました。

次に、Set Alphaノードを使用して、透明な背景にトラックとそのモーションブラーがあるカラ―画像を抽出し、それを個別に処理できるようにしました。

GlareノードのMixパラメータを1に設定し、トラックとそのモーションブラーにのみストリークを生成しました。その後、このグロー効果をColor Balanceノードで得た画像に追加しました。
Crypto MatteとID Maskで得られた効果を比較するには、コンポジティングノードグループ内のFactor入力にID MaskとCrypto Matteのマスクを切り替えて、Backdropで2つの結果を観察するだけです。
以上が、コンポジティングでCrypto Matteノードを使用する基本的なチュートリアルです!少しでも参考になれば嬉しいです!それでは、また次回お会いしましょう!