今回のねらい前回まで3回にわたり、飛び込みでマテリアルを作成しました。Designerがどのようなものを作れるのか、基礎的な理解を得られたでしょう。今回は、プロシージャルマテリアルを作成するセオリーについて踏み込んで解説していきます。今後のチャプターに入る前に、一般的なワークフローの考え方をいくつか説明していきましょう。プロシージャルマテリアルの分類マテリアルをベーシック(基本的な)マテリアルコンプレックス(複雑な)マテリアルの二つの形態に分けて考えます。この2つのマテリアルを作成する際に、ベースとなるマテリアルを考えます。Designerでマテリアルを作成するときはベースマテリアルに注目します。ベースマテリアルの重要項目となるものは、再利用可能であることと、規格化されていることです。再利用可能というのは、チーム間を超えてマテリアルを共有でき、多くの異なるプロジェクトで使用できるということです。規格化というのは、どんな種類のアセット(資産)としても使えるということです。プロシージャルコンテンツを作る際は、このことを覚えておいてください。ベースマテリアルはキーコンセプトがあり、ワークフローをベーシックマテリアルやコンプレックスマテリアル用に分解していきます。ベーシックマテリアルを見れば、1種類のマテリアルで表現されていることが分かります。コンプレックスマテリアルの方は、2つのマテリアルで表現されています。こちらは金属だけでなく、錆のマテリアルも合成または混ぜられています。二つ以上のマテリアルを合成してベースマテリアルより複雑なマテリアルが作られているので、コンプレックスマテリアルと呼んでいます。ベーシックマテリアルのコンセプトベーシックマテリアルは一つのグラフに一つのマテリアルブレンドや混ぜて使うことを前提としたマテリアル再利用可能なデザインであることが大事です。再利用可能かもしれないし、そうでないかもしれないとなることがあります。前回までの解説で作成されたグラフですが、錆のマテリアルと金属のマテリアルをブレンドしています。見てわかる通り解読するのに困難を伴い、また再利用可能かどうかも不明です。錆の部分をカスタマイズ可能なように外部変数として作成しましたが、もし作成していなかったとしたら、このマテリアルの再利用は難しく特定のプロジェクトでしか使えないでしょう。手法1再利用のためにベーシックマテリアルを作成します別のグラフでベーシックマテリアルをブレンドし、コンプレックスマテリアルにします手法2再利用のためにコンプレックスマテリアルを作成します(この場合、一つのグラフでマテリアルをブレンドしてコンプレックスマテリアルを作成します。)手法1は両方の手法を混ぜたものになりえますが、それでもやはりベースマテリアルを作成し再利用することに重きを置くべきです。分割しなくてはいけないわけではありません。ブロックを例にすると、ブロックの上の泥汚れや漆喰などは同じグラフ内に入れても良いでしょう。大切な事は、マテリアルの重要項目の観点から、再利用性に注目して判断することです。手法1この図では、金属マテリアルと錆マテリアルの2種類をそれぞれ別のグラフで作成し、マテリアルを細分化した手法を使用しています。合成用のグラフ内でベースマテリアルやベーシックマテリアルを読み込み、ブレンドマスクを使用してコンプレックスマテリアルを作成し、その結果を出力します。これは先ほど説明した手法1に該当します。この手法で気づくこととして、まず第一にグラフがとても読みやすく、とりわけチーム内でも資産を共有する際に、何をしようとしているのか正しく容易に理解できることがあります。マテリアルに戻ることも比較的容易に行えます。錆のマテリアルに戻って変更を加える場合、出力部分さえ変更しなければ、全て自動で同期されます。5個や6個など、複数のマテリアルを扱うとても複雑なマテリアルでもこの手法1が手助けとなります。手法2この例ではブロックのマテリアルに、漆喰と泥汚れのマテリアルが含まれています。3つのマテリアルを上手く1つのグラフにまとめています。作成過程がより複雑になっていることが分かるでしょう。漆喰のマテリアルはブロックのカラー、ノーマル、ラフネス、アンビエントオクルージョンに合成されており、多くの複雑な相互接続があるわけです。これらのマテリアルを相互に合成するノード間には多くの依存性のある接続がありますので、これを更新するには大きな困難が伴います。最後にある泥汚れのマテリアルのあるレイヤーを見てください。このようにグラフを作成することに何も問題はありません。実際よく作成されます。Designerの背景にある、プロジェクト間で使いまわすために規格化され、タイリング可能なベースマテリアルを作成するという考えから、パラメータを調整したい場合を考えてプロジェクト内の全ての種類でも使えるように泥汚れマテリアル部分を切り離すかもしれないことを再度強調しておきます。漆喰のマテリアルは、ブロックのカラー、ノーマル、ラフネス、アンビエントオクルージョンに合成されていますが、同様にベーシックマテリアルとして作成したら、ブロックを作る際に毎回再作成する必要が無く、ライブラリから漆喰のベーシックマテリアルを引っ張りだしてきてブロックと合成して作成することができます。Designerの強みとして、多くのマテリアルを作れば作るほど、そしてそれがより基本的なマテリアルであるほど、他のプロジェクトで、より再利用の可能性が高まり、生産性を上げ、仕事を手早く済ませられるようになります。同じタイプのマテリアルを何度も何度も作らずに済むからです。最後に、マテリアル作成のワークフローに触れておきます。ハイト、ノーマル、ラフネス、アンビエントオクルージョンマップを作成するために、表面の形状作成から始めます。グレースケールで作業を行い、最後に色を作成します。最初はとても基本的な形状から作成します。そこからブロックパターンを作成します。全体的なシルエットを考慮しながら、大~中の範囲のシルエットを整えていきます。次に細かい形状を追加していきます。ここまで作成したらハイト、ノーマル、ラフネス、アンビエントオクルージョンマップをグレースケールで生成します。最後に色を作成します。ZBrushのようなデジタルスカルプトツールを使ったことがあるなら、似たようなプロセスであることが分かるでしょう。Designerでも基本の形状を作成し、徐々に細かい部分を作っていきます。後のチュートリアルでコンプレックスマテリアルを作成するときに、実際にこの全工程を処理していきます。そこでこのタイプのワークフローを見ることができるでしょう。まとめ大切なことは、この考え方の大まかな流れです。プロシージャルマテリアルを作成するときに、どちらの手法で作るかを考えること。小さくベーシックなマテリアルを作成し、別のグラフでブレンドする手法(手法1)一つのグラフで全てのマテリアルをブレンドする手法(手法2)実際に作る時は、ワークフローに沿って作成すること。ハイト、ノーマル、ラフネス、アンビエントオクルージョンマップを作成するためのデータ作成。グレースケールを作成してから色を付ける。形状は大まかな物から作成して、徐々に細かくしていく。hildsoftはてなブログをはじめよう!hildsoftさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。