第1回.Unityのマテリアルとシェーダー
●はじめに
今回はUnityにおける「マテリアル」と「シェーダー」という二つの用語を解説します。
●マテリアル(Material)
マテリアル(Material)は日本語にすると「素材」「原料」などの意味になります。
例えば木の椅子であれば、素材は木ですので、木=マテリアルです。
Unityでも意味は同じで「木に見えてほしい椅子」なら「木のマテリアル」を設定すればいい、ということになります。
●シェーダー(Shader)
シェーダー(Shader)はプログラムのことです。
シェード(Shade)は日本語では「陰影、陰影を付ける」なので、シェーダーは「陰影を付ける者」と言えるでしょうか。
現実世界で「陰影をつける者」といえば、漫画家やアニメーター、イラストレーターなど絵を描く人が思い浮かびますが、シェーダーとはまさにその絵を描く人を模倣するプログラムです。
絵を描くプログラム(=絵師プログラム)と考えてもいいです。
マテリアルは素材、材質のことであり、シェーダーはその素材を描画(表現)するプログラム |
●MaterialとShaderの対応
Materialには木やプラスチック、水、人肌、金、銀、銅、鉄、布、ガラス、陶器など、実に様々なものがあります。あなたの周りを見回してみてください、色々な素材で出来た物質に溢れている思いますが、Materialはその数だけあるのです。
いっぽう、Shaderはどこにありますか?あなたの知り合いに漫画家やイラストレーターはいますか?
Materialを表現するためには、Shaderに対して「あなたにこのMaterialを描いて欲しいのです!」と依頼する必要があります。
これがMaterialとShaderの対応関係です。
●Materialを設定すること、Shaderを書くということ
ここまでの説明で、MaterialとShaderの違いが分かって頂けたかと思います。
- Materialを設定
素材を決めて、どのShaderに描いてもらうかを決めることです。
- Shaderを書く
絵の描き方を考え、決めることです。
●おわりに
Shaderを書くということは、絵を描くことと同じです(絵筆とプログラム、使う道具は異なりますが)。絵を描くテクニック、表現手法や考え方なども当然流用することができます。日本には漫画家、アニメーター、イラストレーターなど、絵を使って表現する人が沢山います。その人達と同じように、新しいShaderを作って様々な表現を作っていきましょう。
Shaderを書く=プログラムで絵を描くということ |
※ちなみにUnrealEngine4の場合、MaterialはUnityのShader(ただしMaterialとしても使える)のことで、MaterialInstanceがUnityでのMaterialになります(UE4には標準のマテリアルエディタがあり、材質一つ一つに専用のShaderを作ることが出来るので、このようなネーミングになっているのではないでしょうか)