マテリアル
マテリアルは、表面の見た目を決めます。マテリアルの種類を選び、テクスチャマップを設定し、プロジェクト全体で使い回しましょう。
すべてのフィールドの範囲と初期値は、コンポーネントリファレンスにあります。種類ごとに使えるテクスチャマップは、マテリアルマップにまとめています。
スロット
マテリアルコンポーネントにはスロットのリストがあり、スロット 1 つにマテリアルが 1 つ入ります。読み込んだモデルでは、スロットはモデルのパーツ(サブメッシュ)の順番に対応します。スロット 1 が 1 つ目のパーツを、スロット 2 が 2 つ目のパーツを塗ります。こうして、1 脚の椅子に木と布の両方を使えます。
プリミティブからつくったオブジェクトのスロットは 1 つです。たいていはそれで足ります。
スロットの順番は自由に入れ替えられます。動かしても設定は保たれます。
種類を選ぶ
| 種類 | 使う場面 |
|---|---|
standard | リアルな見た目にしたいとき。まずはこれから始めましょう。 |
physical | ガラス、ニス、クリアコート、屈折が必要なとき |
basic | ライティングの影響を受けない、フラットな色にしたいとき |
toon | 陰影が段になった、アニメ調の見た目にしたいとき |
normal | 表面に問題がないか確認したいとき |
chromakey | グリーンバックのように、動画から特定の色を抜きたいとき |
occluder | 後ろにあるものを隠す、見えない形が欲しいとき |
ref | リソースとして保存したマテリアルを使い回したいとき |
種類ごとに設定が違うので、種類を切り替えるとパネルに表示されるフィールドが増えたり減ったりします。
すべての種類にある設定
| 設定 | 役割 |
|---|---|
color | ベースの色 |
opacity | 0 から 1 |
transparent | オンにしないと、opacity を 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 はたいてい 0 か 1 です。中間の値は、たいてい設定ミスのように見えます。
physical の設定
clearcoatは、表面の上に光沢のある層を重ねます。車の塗装、ニス塗りの木、スマートフォンの画面などです。transmissionをthickness、iorと組み合わせると、ガラスや液体になります。光が表面で跳ね返らず、中を通って曲がります。
physical の設定を初期値のままにしておけば、処理は増えないので、physical は standard と同じ速さで動きます。ただし transmission は実際に負荷が増えるので、本当に必要な場所だけで使ってください。
テクスチャマップ
テクスチャマップは、それぞれ画像とそのオプションでできています。たいていは画像だけで十分です。テクスチャの繰り返しがおかしいときや、引き伸ばされて見えるときに、オプションで直します。
| オプション | 決めること |
|---|---|
repeat、offset、center | テクスチャの繰り返し方と位置 |
rotation | 回転(度) |
wrapS、wrapT | 端での扱い:繰り返す、端の色で止める、反転する |
magFilter、minFilter | 近くと遠くでの見え方 |
anisotropy | 1〜16:斜めから見たときのシャープさ |
generateMipmaps | 遠くで使う縮小版の画像 |
colorSpace | 画像の値の読み取り方 |
channel | 使うテクスチャ座標(UV)のセット。0〜3 |
flipY、premultiplyAlpha | 向きと透明度の扱い |
画像には、色を持つものと、roughness やマスク、ハイトマップのような数値を持つものがあります。この 2 つは読み取り方が違います。roughness マップの色空間を間違えると、表面が少しおかしく見え、原因を突き止めにくくなります。絵ではないマップは、データとして扱ってください。
マテリアルを使い回す
マテリアルは一度保存すれば、いくつのオブジェクトにでも適用できます。
- 1 つのオブジェクトでマテリアルを整え、Edit material で開きます。
- Save to project を押します。ほかのプロジェクトでも使いたい場合は、Save to team library を押します。
- 別のオブジェクトで、マテリアルスロットにある 2 つの矢印のボタンをクリックします。Material library が開きます。
- Project、Team、Creator Hub のいずれかのタブを選び、マテリアルをクリックします。
マテリアルを適用すると、スロットはそのマテリアルにリンクされ、ref スロットになります。Team や Creator Hub のマテリアルは、まずプロジェクトにコピーされ、スロットはそのコピーにリンクされます。
1 つのマテリアルにリンクしたオブジェクトは、どれも同じ見た目になります。40 個のオブジェクトで共有していれば、保存したマテリアルを一度編集するだけで 40 個すべてが更新されます。違う見た目にしたいオブジェクトには、別のマテリアルを保存して適用してください。
オクルーダーとクロマキー
オクルーダーは、後ろにあるものを隠す見えない形です。AR のコンテンツが本当にそこにあるように見えるのは、このおかげです。現実の柱がある場所にオクルーダーを置くと、バーチャルのコンテンツが柱の後ろに隠れます。
クロマキーは、グリーンバックのように、動画から 1 つの色を取り除きます。撮影した人物を、周りに四角い枠を付けずにシーンの中に立たせられます。設定の手順は次のとおりです。
- 背景が消えるまで
similarityを上げます。 smoothnessを調整して、輪郭をなめらかにします。spillを調整して、人物の輪郭に残る緑色を取り除きます。
マテリアルグラフ
どの種類でも思いどおりの見た目にならないときは、マテリアルをグラフでつくりましょう。自分でつくったマテリアルも、既製のマテリアルと同じ速さで動きます。ブラウザでも、アプリでも同じです。 → マテリアルグラフ
次へ: 物理 — オブジェクトが固体になるしくみと、動き方。