このチュートリアルでは、Substance PainterでMaterial Presetを作成する方法を見ていきます。つまり、Base Color、Normal、そのほかの情報チャンネル用のTextureを設定して独自のFill Layerを定義し、それをShelfのMaterialsセクションに保存して、別のSubstanceセッションでも使用できるようにする方法です。



動画の書き起こし

こんにちは、みなさん!このチュートリアルでは、Substance PainterでMaterial Presetを作成する方法を見ていきます。つまり、Base Color、Normal、そのほかの情報チャンネル用のTextureを設定して独自のFill Layerを定義し、それをShelfのMaterialsセクションに保存して、別のSubstanceセッションでも使用できるようにする方法です。

Material Presetを作成する目的は、Smart Materialのようにフィルター、レイヤー、Textureベースのジェネレーターを含む可能性のある要素のグループではなく、1つのレイヤーだけで構成された単一のMaterial要素を用意することです。こうして作成した要素をプロジェクトのLayer Stackへドラッグし、オブジェクト全体に適用したり、Layer Maskを使って部分的に適用したりできます。

ただし、その前に、なぜこれを行う必要があるのかを少し考えてみましょう。一見すると、Smart Materialのほうがはるかに柔軟に見えるからです。実際、Smart Materialには複数のLayerやMaterialを含めることができ、場合によってはBake処理やその他のツールで生成されたマップを利用するフィルター、レイヤー、ジェネレーターも含められます。

シンプルなMaterial Presetを作成する最初の理由として思い浮かぶのは、外部のTexture画像からマテリアルを構築する必要がある場合です。たとえば、写真やスキャンから取得したBase Color、Normal、Roughnessの画像や、自分自身または他の誰かが手作業で作成した画像を使用する場合です。また、継ぎ目が見えないまま表面上で繰り返しタイル配置できるシームレスTextureを使用する場合もあります。

このようなケースでは、Smart Materialを使用する必要はありません。次の手順で十分です。

File → Import Resources を使ってTextureをSubstanceセッションへインポートし、リソースタイプとして「Texture」を指定します。インポート先は「Current Session」に設定します。これらのファイル自体をShelfへ保存する必要はなく、後でMaterialとして保存するためです。

空のFill Layerを作成し、Tool Shelfの「Properties - Fill」セクションで必要なチャンネルだけを有効にします。私はPBR Metallicワークフローを使用しているので、Color、Metal、Roughness、Normal、Height、Opacityを有効にしています。Opacityは、この例のマテリアルが透明ではないことをSubstanceに伝えるために有効にしています。

インポートしたTextureをFill Layerへドラッグし、それぞれ対応するスロットへ配置します。または、サーフェス全体に均一に適用される値を設定しても構いません。私の場合、たとえばOpacityパラメーターを1に設定しています。

そして最後に、Properties - Fillパネル内の空いている場所を右クリックし、表示されたメニューから「Create Material Preset」を選択します。これで完了です。

この方法で作成したMaterialは、すぐにShelfのMaterialsセクションで利用可能になり、このプロジェクトや今後のプロジェクトで、ほかのSubstance Base Materialと同じように使用できます。

MaterialはSmart Materialから作成することもできます。その場合、画像編集ソフトウェアで複数レイヤーを1つのレイヤーに統合するのと同じように、Smart Materialを「フラット化」したバージョンが生成されます。これは、たとえば非常に複雑なシーンで作業する際に、計算リソースやプロジェクトファイルのディスク容量を節約するために役立ちます。これが、このチュートリアルで扱う2つ目の理由です。ここからは少し高度な例を使って説明します。

複数の独立した3Dオブジェクトのコレクションがあり、それぞれに1つ以上のMaterialやSmart Materialを含むSubstanceプロジェクトが存在するとします。そして、それらすべてを1つのオブジェクトと1つのTexture Setに統合したいとします。私は実際に何度もこの作業を行っており、リアルタイムアプリケーションでのリソース使用量を削減するために、複数のAssetを単一の要素、あるいは少なくとも1つのTexture Setを共有するAssetへ統合してきました。

この場合、まず3Dグラフィックスソフトウェアで作業を始めます。私の場合はBlenderです。そこで次の操作を行います。

すべての3DモデルをBlenderのシーンへ配置し、元のマテリアルをすべて削除して、新しいマテリアルを割り当てます。このマテリアルは全オブジェクトで共有します。

次に、それらのオブジェクトのUV Islandを拡大縮小および移動し、すべてが重ならない状態で1つのUV空間内に収まるようにします。この段階では、シーン内のオブジェクトのサイズに応じて、各UVマップを比例的にスケーリングすることをお勧めします。たとえば、ペンはテーブルよりもはるかに小さいUV領域を占有することになります。

エクスポートする前に、すべてのオブジェクトを1つのオブジェクトへ統合するか、それとも同じUV空間と同じMaterialを共有したまま個別のオブジェクトとして残すかを決定します。この選択は、そのオブジェクト群をどのように利用するかによって変わります。たとえば、最終アプリケーションで常に背景として使用され、個々の要素を個別に移動、回転、削除する必要がない場合は、すべてを1つのObjectへ統合します。そうでなければ、個別のまま残します。

最後に、すべてをFBX形式でディスクへエクスポートします。

Substance Painterに戻ったら、今度は複数の段階に分けて作業を進めます。まず、このチュートリアルの最初の例で示したように、各オブジェクト用のMaterialを作成する必要があります。その後、それらのMaterialを新しいプロジェクトへ配置し、新しいUV Layoutに合わせて変換します。

最初の段階は少し面倒かもしれません。各Substanceプロジェクトを開いて、PBR Metallic Texture Setを画像ファイルとして一時フォルダーへエクスポートする必要があるからです。これはすべてのプロジェクトで行わなければなりません。しかし良い知らせがあります。いったんそれらのTextureからMaterial Presetを作成すれば、それは今後もライブラリ内で利用可能なままになります。実際には、この作業はライブラリ内の各Assetにつき一度だけ行えば十分です。

必要なエクスポートがすべて完了したら、ようやくテクスチャリング対象のAssetを使って新しいSubstanceプロジェクトを作成できます。このプロジェクトには1つのMaterialだけが含まれます。このMaterialは、各Materialを配置し、拡大縮小や移動を行い、さらにProperties - FillパネルでUV Wrapを無効にしたうえで、UV Layout内の特定の領域へ割り当てることで構築します。

元の個別オブジェクトのマテリアルに含まれていたLayerやエフェクトは利用できなくなりますが、それでもこれらのFill Layerにはフィルターやその他のエフェクトを追加できます。最終的には、Texture Set全体をエクスポートすることで、単一のMaterialを使用するモデルとTexture画像一式を取得できます。

それでは今回のチュートリアルはここまでです。また次回お会いしましょう!

チュートリアルを検索

フレーズ、または複数のキーワードをカンマで区切って入力してください。

Francesco Milaneseによる3Dモデル、チュートリアル、コンピューターグラフィックス関連の資料を掲載しています。3Dモデルの使用ライセンスは、各モデルのページに掲載されているリンク先の外部ストアで購入できます。ご利用には、適用されるライセンス条件が適用されます。 Francesco Milanese — イタリアVAT番号:06321250877。お問い合わせ:info@francescomilanese.com


プライバシー及びクッキーの使用に関する拡張情報の通知