マテリアルの基本の基本

概要
最終更新日:2020/02/18 マテリアルの基本的な説明を書いた記事です。 この記事は以下の内容を知りたい方に向けて書いています。
- マテリアルが何かを知りたい
- マテリアルの使い方が知りたい
- マテリアルの色を変えてみたい
- マテリアルに画像を設定してみたい
サンプル
サンプルはスタートアップ版と完成版を用意しています。 二つのサンプルの内容は以下の通りです。
サンプルの種類 | Unityのバージョン | 説明 |
---|---|---|
スタートアップ版 | Unity2019.2.19f1 | 色変更で使用するSphereオブジェクトと 画像設定用の画像を入れたプロジェクトです。 |
完成版 | Unity2019.2.19f1 | この記事の内容を全て実装したプロジェクトです。 |
マテリアルとは
マテリアルとは色や光沢、テクスチャの情報によって、 金属やプラスチックなどの物質の材質を表現する概念です。 Unityにもオブジェクトの材質表現をできるようにするために マテリアルコンポーネントが用意されています。 この記事ではマテリアルの作成や関連付けの方法、色やテクスチャの設定等、 マテリアルコンポーネントの簡易的な使い方の説明をします。
マテリアルを確認する
マテリアルは3Dのゲームオブジェクトに関連付けされており、 Inspectorから確認することができます。![]()
デフォルトマテリアル
BoxやShpereなどのUnityが用意している既存のオブジェクトは デフォルトマテリアルが使用されています。 「マテリアルを確認する」の画像は既存オブジェクトである Sphereのマテリアルなのでデフォルトマテリアルです。 このデフォルトマテリアルで注意すべき点が一つあります。 それは、Inspectorによる変更ができないということです。 本来のマテリアルは色の変更、テクスチャの設定など様々な変更が可能ですが、 デフォルトマテリアルは、Inspectorでそれらの変更ができないようになっています。 その為、デフォルトマテリアルが使用されているオブジェクトの 色などを変更する場合は新しいマテリアルを作成するか、 スクリプトを使用して変更する必要があります。
作成方法
マテリアルの作成は以下のどちらかの手順で作成できます。
メニューから作成
- 上段メニューのAssetsを選択する
- 表示されたメニューリストからCreateを選択する
- 更に新しく表示されたリストからMaterialを選択する
- Projectビューに追加されたMaterialに名前を付ける

Projectビューから作成
- Projectビュー上で右クリック
- 表示されたメニューリストからCreateを選択する
- 更に新しく表示されたリストからMaterialを選択する
- Projectビューに追加されたMaterialに名前を付ける

ゲームオブジェクトに関連付ける
作成したマテリアルに対してどれだけパラメータを変更しても意味がありません。 マテリアルはいずれかのゲームオブジェクトに関連付け(適用)することで、 初めて意味を持ちます。 そこで、この記事ではマテリアルを関連付けする方法を二つ紹介します。
- ゲームオブジェクトにD&D(ドラッグ アンド ドロップ)する
- Inspectorから関連付けする
ゲームオブジェクトにD&Dする
この方法は非常にシンプルです。 設定したいマテリアルを対象のゲームオブジェクトにD&Dします。成功したらInspectorのマテリアルがD&Dしたマテリアルに変わります。
![]()
Inspectorから関連付けする
3Dオブジェクトには「MeshRenderer」や「SkinMeshRenderer」などの 3Dを表示するためのコンポーネントが関連付けされています。 このコンポーネントの項目にはマテリアルを設定する項目があるので、 そこに対象のマテリアルを設定します。 項目は「Materials」です。以下の二つの方法で設定します。
- 直接D&Dする
- リストから設定する
直接D&Dする
一つ目はマテリアルを直接D&Dする方法です。 MaterialsのElementに設定したいマテリアルをD&Dするだけです。成功したらD&Dしたマテリアルの名前に変わります。
![]()
リストから設定する
リストから設定する方法は、次の手順で実行します。
Projectビューから作成
- Materialsのマテリアルの「◎」をクリック
- リストから設定したいマテリアルを選ぶ
まずは、Materialsのマテリアルの「◎」をクリックします。表示されたリストは設定可能なマテリアルのリストです。 ここから設定したいマテリアルを選びます。
設定完了したら選択したマテリアルの名前に変わります。
![]()
マテリアルで色を変える
マテリアルの色を変える方法を二つ紹介します。
- Inspectorから変更する
- スクリプトから変更する
Inspectorから変更する
Inspectorからの変更は、まず変更したいマテリアルを選択して Inspectorに情報を表示させます。次にマテリアルの「MainMap」の項目のすぐ下にある「Albedo」を見つけてください。 この項目で色の変更を行います。
Albedoの項目の右にある長方形をクリックします。
するとColorウィンドウが表示されるので、変更したい色に変えます。
するとマテリアルのアイコンが変更した色に変わります。
![]()
スクリプトから変更する
スクリプトからの変更をするために、まずはスクリプトを作成します。 そして、変更したいマテリアルを持つゲームオブジェクトに関連付けして下さい。今回の実装は関連付けしたスクリプトのStartメソッドに書きます。 ※あくまでサンプルではStartに書いているだけです。 実践では色の変更が必要な場所に書いてください。
void Start() { }
GetComponentを使用してRendererを取得します。 スクリプトの変更では直接マテリアルを取得するのではなく、 オブジェクトの表示を管理してるRendererコンポーネントを取得します。 マテリアルはこのコンポーネントの「material」に保存されています。// マテリアルを管理してるコンポーネントの取得 Renderer renderer = GetComponent<Renderer>();
取得が完了したらmaterialのColorを変更することで、色が変わります。// マテリアルの色を青に変更する renderer.material.color = Color.blue;
これでスクリプト側の実装は終了したので、Unityに戻りPlayボタンを押してください。 ゲームオブジェクトの色が青色に変化します。これでスクリプトによるマテリアルの色変更は終了です。 ※スクリプトによるマテリアルの変更はデフォルトマテリアルでも行えます。
マテリアルに画像を設定する
色の変更の説明が終わったので、次はマテリアルに画像を設定する方法の説明をします。 設定の前に以下のモノを新規で用意してください。
- Planeオブジェクト
- マテリアル
- 画像
用意ができたら次の作業を行い、マテリアルに画像を設定します。
- 画像をマテリアルに設定する
- マテリアルをゲームオブジェクトに関連付けする
上の作業はどちらが先でも構いません。 ※マテリアルをゲームオブジェクトに関連付けするやり方は 「マテリアルを関連付ける」で行っていますので省略します。
画像をマテリアルに設定する
画像の設定はマテリアルの色の変更と同じくAlbedo項目で行います。変更方法は以下の二通りです。
- リストから選択する
- 直接設定する
リストから選択する
Albedoの左側にある「◎」をクリックすると 画像選択のウィンドウが表示されるので、設定したい画像を指定します。Projectビューのマテリアルアイコンが変わったら設定完了です。
![]()
直接設定する
Albedoの左側にある「□」に直接画像をD&Dすることで設定ができます。Projectビューのマテリアルアイコンが変わったら設定完了です。
![]()
画像を設定したPlaneは以下のようになります。![]()
以上でマテリアルを使用したオブジェクトの見映え変更の説明は終了です。 今回説明した内容はマテリアル機能のチュートリアル的な説明なので 色々と調べてみてください。