マテリアル
マテリアルは表面の見えかたを決めます。各項目の範囲と既定値は、生成された コンポーネントのリファレンスにあります。どの種類がどのマップを 受け付けるかは マテリアルのマップにあります。このページは 使いかたの話です。
マテリアルはスロットのリスト
1 つのマテリアルではなく、リストです。スロットの順番は読み込んだモデルのサブメッシュに 対応するので、スロット 1 が最初のグループを、スロット 2 が次を塗ります。1 脚の椅子が木と布で できているのはこのためです。
プリミティブから作ったオブジェクトのスロットは 1 つで、たいていそれで足ります。
並べ替えても何も作り直されませんし、移動してもスロットは設定を保ちます。
種類を選ぶ
| 種類 | こんなときに |
|---|---|
standard | 本物らしく見せたいとき — 既定の選択 |
physical | ガラス・ニス・クリアコート・屈折が必要なとき |
basic | ライティングを無視したフラットな色がほしいとき |
toon | 段階的なスタイライズドシェーディングがほしいとき |
normal | 表面をデバッグしているとき |
chromakey | 抜きたい色のある動画があるとき — グリーンバック |
occluder | 後ろのものを隠す見えない形がほしいとき |
ref | リソースとして保存したマテリアルを使い回したいとき |
種類を変えると存在する設定項目も変わるので、パネルに出る項目が増えたり減ったりします。
すべての種類に共通の設定
| 設定 | はたらき |
|---|---|
color | ベースの色 |
opacity | 0〜1 |
transparent | オンでないと、1 未満の不透明度は効きません |
side | どの面を描くか。表・裏・両面 |
wireframe | 稜線だけを描く |
visible | そもそも描くかどうか |
種類ごとに増えるもの
| 種類 | ほかに持つもの |
|---|---|
standard | metalness・roughness・emissive・emissiveIntensity |
physical | 上記すべてに加えて clearcoat・clearcoatRoughness・transmission・thickness・ior |
toon | emissive・emissiveIntensity、そしてグラデーションのランプ |
normal | flatShading。色は持ちません |
chromakey | keyColor・similarity・smoothness・spill。既定で透明です |
occluder | side のみ |
表面がおかしく見えるときは、まず roughness を調整してください。metalness は現実にはほぼ二択で、 むき出しの金属かそうでないかのどちらかです。中間の値はたいてい間違いに見えます。
physical の追加項目
clearcoat は上に載る漆のような層です。自動車の塗装、ニスを塗った木、スマートフォンの画面。
transmission を thickness と ior と組み合わせると、ガラスや液体になります。光が跳ね返る
のではなく、通り抜けて曲がるからです。
既定値のままなら、コンパイル時に畳み込まれます。つまり physical は standard とまったく同じ
速さで動きます。transmission をオンにすると本当に負荷がかかります。ブラウザーがシーンを 2 回
描くからです。効果に見合う場所で使ってください。
テクスチャマップ
どのマップも画像とそのオプションの組です。たいていは画像を指定するだけで足ります。 オプションは、タイリングがおかしいときや引き伸ばされて見えるときに直すためのものです。
| オプション | 制御するもの |
|---|---|
repeat・offset・center | タイリングと位置 |
rotation | 度 |
wrapS・wrapT | 端で繰り返す・留める・反転する |
magFilter・minFilter | 近くと遠くでのサンプリング方法 |
anisotropy | 1〜16。浅い角度での鮮明さ |
generateMipmaps | 遠景用の縮小版 |
colorSpace | 画像の値をどう解釈するか |
channel | どの UV セットを使うか(0〜3) |
flipY・premultiplyAlpha | 向きと透明の扱い |
色を運ぶ画像と、数値を運ぶ画像(roughness、マスク、ハイトマップ)は、別々に解釈しなければ なりません。roughness マップで間違えると、表面がなんとなく、理由の分からないおかしさになります。 マップが「絵」でないなら、それはデータです。
どの種類がどのマップを受け付けるか:マテリアルのマップ
マテリアルを使い回す
仕組みは 2 つあり、その違いが大事です。
| やりたいこと | 使うもの |
|---|---|
| 出発点にして、オブジェクトごとに調整する | Replace from library。値をコピーします |
| 1 つのマテリアルを共有し、1 か所で編集する | マテリアルのリソースを指す ref スロット |
ライブラリのソースは 3 つ。このプロジェクト、あなたのチーム、そしてプラットフォームの creators hub です。どれから適用してもコピーになり、あとから編集してもそのオブジェクトにしか 影響しません。
コピーは「ここから始めて、それぞれ分かれていく」場合に向きます。参照は「この 40 個は同じ マテリアルだ」という場合に向きます。リソースを 1 回変えれば、40 個すべてが追随します。
知っておくとよい特別な 2 つ
Occluder は AR の仕掛けです。後ろにあるものを隠す、見えない形。実物の柱が立っている場所に 置けば、バーチャルなコンテンツはその後ろにきちんと隠れます。錯覚を成立させているのは、 ほとんどこれです。
Chroma key は動画から色を抜きます。グリーンバックのことで、撮影した人物を、周囲の四角なしに
シーンの中に立たせられます。背景が消えるまで similarity を、縁をやわらげるのに smoothness を、
被写体の縁に乗った緑を抜くのに spill を調整します。
決まった種類の外へ
これらのどれでも狙った見た目が表現できないなら、マテリアルをグラフとして組んでください。 組み込みの種類は同じ体系の中の一点にすぎないので、グラフにするのは後退ではありません。 → マテリアルグラフ
次へ: 物理