マテリアルを設定して、モデルの表現の幅を広げよう!

今回の記事では3Dモデルの質感を決める「マテリアル」の設定方法を説明していきます。
設定項目が多く難しそうですが、マスターして表現の幅を広げましょう。

マテリアルとは?

まず、マテリアルとはそもそも何なのかについて説明します。

マテリアルとは、簡単に言うと「3Dモデルをどのような色・質感で表示するか」を設定したものです。色やテクスチャ(モデルの表面に表示する画像)の他、光沢や表面の凹凸など様々な要素を設定できます。

このマテリアルをモデルに紐づけることで、設定した質感でモデルを表示することができます。

興味のある方向けに、もう少し踏み込んだ説明をします。

Unityなどの3DCGを扱うアプリケーションでは、3Dモデルを表示するために「シェーダー」というプログラムの一種が動いています。
Unityには始めから多くのシェーダーが組み込まれており自由に呼び出せるほか、アセットとして導入したり、自分で作ることもできます(ただしclusterでは正しく動作しないものもあるので注意が必要です。詳しく知りたい方はこちらをご覧ください)。

こうしたシェーダーのうちどれを使うか、またパラメーターとしてどのような値を設定するかをまとめたものが「マテリアル」です。

マテリアルを設定してみよう

まずは簡単な設定でマテリアルを作成・適用してみましょう。

  • UnityのProjectビューを右クリックし、Create > Materialを選択します。
  • マテリアルファイルが新規作成されるので、名前を「TestMaterial1」としておきましょう。

作成したマテリアルをクリックで選択すると、Inspectorにマテリアルの設定が表示されます。始めは以下の通りになっていると思います。

まずは色だけを変えてみましょう。

  • マテリアルのInspectorにある「Albedo」の右側の白い部分をクリックします。
  • カラーパレットが表示されるので好きな色を選択しましょう。
  • 選択したらカラーパレットは閉じてください。

次に、このマテリアルをシーン上のオブジェクトに適用します。
基本のCubeに適用して、マテリアルによって見た目が変わることを確かめてみましょう。

  • Hierarchy上を右クリックしてCreate > 3D Object > Cubeを選択し、シーン上にCubeを作成します。
  • 作成したCubeに先ほど作成したマテリアルをドラッグアンドドロップしてください。
  • Cubeの色が真っ白から設定した色に変化します。

Unityで使えるシェーダー

マテリアルは3Dモデルを表示するために使われる「シェーダー」の情報と、そのシェーダーに与えるパラメーターの情報を持っています。
どのシェーダーを使うかはマテリアルのInspector上で以下の部分から選択できます。

Unityには始めから多くのシェーダーが組み込まれています。そのうち代表的なものを紹介します。

Standardシェーダー

名前の通り、Unityで使用する最も標準的なシェーダーです。色・テクスチャの指定や光沢の他、発光を表現するエミッションなど一通りの機能が備わっています(詳細は後述)。

Unlit系シェーダー

光の影響を受けないシェーダーです。暗い所や明るい所でも常に一定の明るさで表示されます。色だけを指定できるUnlit Colorやテクスチャを適用できるUnlit Textureなどいくつかの種類があります。

Mobile系シェーダー

Standardシェーダーのように幅広い表現はできませんが、処理が軽いシェーダーです。ワールドの軽量化にこだわる場合は使ってみましょう。目的に合わせていくつかの種類があります。

Standardシェーダーのパラメータ

Standardシェーダーは幅広い表現ができる分、設定項目が多いです。その一部を説明します。

Rendering Mode

不透明か透明・半透明かを決めることができます。

  • Opaque:完全に不透明です。
  • Cutout:透明度が一定以上の部分のみを表示します。透明部分のあるテクスチャを使って穴の空いた面などを表現できます。
  • Fade:透明・半透明を表現できます。
  • Transparent:透明・半透明を表現できます。Fadeと異なり光の反射などは透明度によらず反映されるため、ガラスなどの表現に適しています。

Albedo

表面の色やテクスチャです。左側の小さな◎からテクスチャ画像を、右側の長方形の部分で色を指定できます。

Metallic

光の反射の強さを指定します。値を大きくすると金属のように反射し背景が映り込みます。ちなみにこの時映り込むのは周囲のオブジェクトではなくスカイボックス(背景の空)だけなので気を付けてください。

Smoothnes

表面の滑らかさです。値が大きいほど鏡のようにツルっとした質感になります。

Emission

発光を表現します。Albedoと同様に色やテクスチャが指定でき、その色で発光させることができます(チェックを入れると設定項目が出てきます)。

Tiling

一枚のテクスチャを繰り返し並べることで、サイズの小さいテクスチャでも細かな模様を表現できるようになります。

他にも多くの項目がありますが、少し難しいのでここでは省略します。興味がある方は公式ドキュメントも参考にしてください。

マテリアルの調整ができるようになると、同じ3Dモデルでも表現の幅が大きく広がります。
ぜひ挑戦してみましょう!

記事をシェアしてワールド制作を盛り上げよう!