シェーダー基礎、Imageにシェーダーを反映させる方法

シェーダー基礎、Imageにシェーダーを反映させる方法

Unityシェーダーの基礎知識。uGUIのImageとマテリアルとシェーダーの関係。
Imageにシェーダーを反映させる方法。

関連ページ 参考URL
このページでは細かいシェーダーの内容には触れずに、超初心者向けにImage/マテリアル/シェーダーの簡潔な関係性だけ見ていきます。
次ページ から本格的にシェーダーの作り方を解説。

シェーダー効果ざっくり

一度シェーダーを使い始めると、もはやシェーダーを使わないゲーム開発など有り得ないとさえ思えてきます。
シェーダーは3Dゲームでしか使わないと思ってる人も多いが、そんな事はなくて、2Dでもバリバリに使います。

下の動画は 発光シェーダー モザイクシェーダー を使った効果の一例。

Project上にシェーダーを新規作成

今回の場合自作したシェーダーは使いませんが、全体を把握するために一度新規シェーダーの作り方を確認してみます。

Project上で右クリックし、Create > Shaderから、いくつかのシェーダーを作成できます。
しかしここから作成できる5種類のシェーダーは、全てuGUIに対応しておらずImageコンポーネントには使えません。

uGUI用のシェーダーとしては、UI-Defaultという標準シェーダーが用意されています。
ImageコンポーネントのMaterialの欄がNoneの場合に、内部で選択されているシェーダーがこれです。
下のgitのリポジトリから、UI-Defaultのコードを確認できる。

コードの一つ一つの意味は初心者が最初に触れるのはキツいのでここでは深く解説しません。
しかしマテリアルとの繋がりを理解するために、最初の数行だけ見てみます。
// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)


Shader "UI/Default"
{
    Properties
    {
このUI/Defaultというのが、後にマテリアルから指定するパスになります。
例えばUI-Defaultをちょっとカスタマイズしたい場合は、上のソースをコピペ改変し、パスをUI/Defaultから変えてあげればOK。
ファイル名は拡張子が.shaderであれば何でも良いです。

Project上にマテリアルを新規作成

Imageコンポーネントに直接シェーダーをアタッチすることは出来ません。
そこでマテリアルを作る必要があります。

Project上を右クリックし、Create > Materialからマテリアルを生成します。
Unityからマテリアルを生成

作成したNew Materialをクリックし、Inspector上部からシェーダーのパスを選択します。
とりあえずUI > Defaultを選択します。
マテリアルからシェーダーを指定

最後にImageコンポーネントのMaterialの欄に、作成したマテリアルをアタッチすればOK。
ただ今回の場合はマテリアルがUI-Defaultを選択してるので、全く挙動は変わりません。
生成したマテリアルの確認

0
0