プロシージャルテクスチャリングとは何か?

プロシージャルテクスチャリングとは、表面の見た目を描くのではなく、それがどう作られるかを記述することを意味する。ピクセルの代わりに、少数のルール——このスケールのノイズ、これくらいのワープ、モデルが凹んでいる箇所を暗くする、といった——を組み立て、そこからマテリアルが生成される。ルールを一つ変えれば、表面全体が再計算される。

簡潔な答え

プロシージャルマテリアルはノードグラフから構築される——ジェネレーターノードがパターンを生み出し、フィルターノードがそれを整形し、ブレンドノードがそれらを組み合わせ、出力が表面のPBRチャンネルになる。すべてのステップがライブのままであるため、マテリアルは解像度に依存せず、いくらでも調整でき、モデルをまたいで再利用できる——ピクセルが確定した時点で固定されてしまう手描きのテクスチャとは異なる。

ノードグラフとしてのプロシージャルマテリアル——ノイズジェネレーターがハイトからノーマルを生成するノードに入力され、マテリアル出力のベースカラー、ノーマル、ハイト、ラフネスの各入力へつながり、出来上がったコンクリート表面が球体上にライブプレビューされている

ピクセルではなくルール

手描きのテクスチャは絵だ——ピクセルの格子であり、そこに描いたものがそのまま意味を持つ。プロシージャルテクスチャはレシピだ。「横8タイル分のセルノイズから始め、セルが規則的にならないよう少しワープをかけ、それを目地のパターンとして使い、モデルのアンビエントオクルージョンが強い箇所では目地を暗くする」といった具合だ。評価される瞬間まで、何も画像としては保存されない。

この違いには実用上の帰結がある。マテリアルが記述であるため、ぼやけることなくどんな解像度でもレンダリングできる——同じグラフが同じルールから512pxのプレビューも4Kのエクスポートも生成する。パラメータ化されているため、「タイルを大きくする」はスライダー一つで済み、描き直しは不要だ。そして記述であるがゆえに、一つのモデルに縛られない——同じグラフを別のメッシュに適用すれば、その形状に合った結果が生成される。

ノードグラフは実際にどう動くのか

プロシージャルマテリアルはほぼ常にノードグラフとして制作される。レシピとは本来、ステップの連なりだからだ。ノードはいくつかの系統に分類される。ジェネレーターは無から何かを生み出す——フラクタルノイズ、セルやボロノイのパターン、グラデーション、ストライプ。フィルターは一つの入力を受け取って作り変える——ブラー、レベル補正、カーブ、色相と彩度の調整、パターンを動かして機械的に見えないようにするワープなど。ブレンドは二つの入力を受け取り、モードやマスクによって組み合わせる。

グラフは最終的に、結果をPBRチャンネルへ割り当てる出力ノードに行き着く——このブランチはベースカラーを、これはハイトを、これはラフネスを駆動する、というように。チャンネルは共有された上流のノードから一緒に生成されるため、常に整合が保たれる——盛り上がりを作るのと同じノイズが、まさに同じ場所で表面を粗くし、色を暗くできる。これこそが、プロシージャルマテリアルが無関係な4枚のマップの寄せ集めではなく、一つの物理的な表面として読めるようにしている理由だ。

グラフが賢く感じられるようになる決め手は、メッシュ自身のデータを入力することだ。モデルからアンビエントオクルージョン、曲率、キャビティ、傾斜をベイクすれば、それらのマップがグラフの入力になる——こうして「隙間の汚れ」はオクルージョンでマスクされたブレンドになり、「エッジで剥げた塗装」は曲率でマスクされたブレンドになる。マテリアルは適用される形状に合わせて適応するようになる。

プロシージャル対手描き

プロシージャルが強いのは、表面にロジックがある場合だ——レンガ、タイル、布の織り、傷ついた金属、低い箇所にたまる錆、あらゆるエッジ沿いの摩耗。これらはルール的な性質を持ち、目立った繰り返しなく広い面積をカバーする必要があり、後から調整できることの恩恵を大きく受ける。

手描きが強いのは、表面に意図がある場合だ——物語を語る特定の染み、正確な位置にあるロゴ、ヒーローアセットにおける意図的なアートディレクション。物語が求めるまさにその場所に傷を置いてくれるグラフは存在しない。

実際には、優れたマテリアルのほとんどは両方の性質を持つ。ベースをプロシージャルに構築してカバー範囲と適応性を確保し、その上に具体的な部分を手描きで重ねるのが通常のやり方だ——だからこそ、プロシージャルマテリアルと手描きのレイヤーが別々のアプリケーションではなく同じスタックの中に共存できることが重要になる。

何もインストールせずに試す

これまで、プロシージャル制作といえば専用のデスクトップアプリケーションとライセンスを意味していた。Mixosはブラウザにノードベースのマテリアルエディタを搭載している——ノードマテリアルレイヤーを追加し、ジェネレーターをフィルターからブレンドへとつなげば、グラフがGPU上で評価されるにつれ、結果がモデル上でリアルタイムに出来上がっていくのが見られる。

グラフは独立した文書ではなくレイヤーであるため、マスクをかけ、他のレイヤーとブレンドし、上からペイントできる——プロシージャルなベースに手描きのディテールを重ねるワークフローを、途中に書き出しの工程を挟まずに行える。

プロシージャルな制作の最後のステップは、何を調整可能なままにするかを決めることだ。Mixosではそれが「公開」にあたる——パラメータの横にあるスライダーアイコンをクリックすると、それがマテリアルの変数になり、名前を変更し、グループ化し、適切な範囲を与えられる。それらの公開設定はレイヤー自身のパネルに表示されるため、背後にあるグラフのことを考えなくなってからずっと後になっても、完成したマテリアルはタイルサイズ、摩耗量、色といった、いくつかの意味のあるつまみとして残り続ける。

よくある質問

プロシージャルテクスチャリングを簡単に言うと?

ピクセルではなくルールからマテリアルを構築することだ。表面がどう生成されるか——パターン、歪み、ブレンド——を記述し、コンピュータが画像を生成する。ルールを変えるとマテリアル全体が再生成されるため、書き出すまで何も焼き付けられない。

プロシージャルテクスチャリングは手描きより優れていますか?

どちらが優れているというものではなく、解決する問題が異なる。プロシージャルは、広い面積をカバーしつつ調整可能であり続ける必要がある、ルール的な表面に向いている。手描きは、意図的で具体的なディテールに向いている。実際の制作現場のマテリアルの多くは、プロシージャルなベースに手描きのディテールを重ねている。

プロシージャルテクスチャはシームレスにタイリングされますか?

概ねその通りだ——ジェネレーターノードは通常、タイルの端でラップするように作られているため、構造上、目に見える継ぎ目なくタイリングされる。これが、地形や壁、床のような広い面にプロシージャルマテリアルが使われる大きな理由だ。

ノードグラフを組むには技術的な知識が必要ですか?

思っているほどではない。単純なステップの連なりというのが基本的な考え方であり、ほとんどのマテリアルはわずかな種類のノードしか使っていない。何もない状態から組み立てるより、既存のマテリアルをグラフとして開き、何かを変えて何が動くか見てみるところから始めるとよい。

プロシージャルマテリアルはモデルの形状に反応できますか?

はい。それこそが説得力を生む手法だ。メッシュからアンビエントオクルージョンや曲率といったマップをベイクし、マスクとしてグラフに入力すれば、そのモデル上でそれらの特徴がどこにあっても、汚れは窪みに自然にたまり、摩耗はエッジに自動で表れる。

公開パラメータ、つまりマテリアルの変数とは何ですか?

グラフの中には数百もの数値が存在しうるが、そのマテリアルを使う人にとって重要なのはごく一部だけだ——タイルサイズ、摩耗の度合い、色。それらをグラフの外に出し、独自の範囲を持つ名前付き変数としてマテリアル自体に載せる操作をMixosでは「公開」と呼ぶ。そうすればグラフを読まなくてもマテリアルを調整し直せる。これが使い捨てのマテリアルと再利用可能なマテリアルを分ける点だ。

ブラウザでノードからプロシージャルマテリアルを作ろう——無料で、どのアカウントでも、自分のモデル上でのライブプレビュー付きで。

Start free