こつこつエンジニア

Linux、Unity、Visual StudioなどのIT技術発信ブログ

UnityのMaterialのデフォルトであるStandardシェーダーを改造する方法

f:id:madai21:20210720210353j:plain

はじめに

UnityでMaterialを新規作成した時にデフォルトで設定されているStandardシェーダー(もしくはUnityで用意されているその他のシェーダー)を少しだけ改造したい場合があるかと思います。
f:id:madai21:20210914184311p:plain
今回はそのようなケースの時に対処する方法を書きたいと思います。

Standardシェーダーのソースコードの場所って?

まず、Standardシェーダーなどのビルトインシェーダーは以下の場所から取得できます。
unity3d.com


例えばUnity 2020.3.12f1の場合はUnity 2020.3.12のダウンロード(Win)からビルトインシェーダーを選びますとダウンロードを開始します。
f:id:madai21:20210914185259p:plain


builtin_shaders-XXXX.X.XX.zipをダウンロード後に展開するといくつかフォルダがあるかと思います。
Standardシェーダーはその中のDefaultResourceExtraに入っています。
f:id:madai21:20210914185814p:plain

どうやってStandardシェーダーをUnityプロジェクトにインポートすればいい?

展開したファイルをそのままUnity EditorのProjectウィンドウにドラッグ&ドロップします。
f:id:madai21:20210914190810p:plain


するとUnityプロジェクトにファイルがコピーされます。
f:id:madai21:20210914190842p:plain


後はシェーダーのファイル名やシェーダー名を変えましょう。
今回はNewStandardに変えておきます。
今回は特に中身は変えません。
必要であればこのコピーしたNewStandardの中身を変えましょう。
f:id:madai21:20210914191125p:plain

修正したStandardシェーダーをMaterialに適用する

Materialを選んでInspectorウィンドウからNewStandardを選びます。
これだけで編集可能なStandardシェーダーに置き換えることができました^^
f:id:madai21:20210914191422p:plain

おわりに

簡潔過ぎましたが、久々の記事だったので今回はこれでお許しくださいw(´;ω;`)
入手したAssetによってはStandard以外のビルトインシェーダーを使っているケースがあり、ちょっとだけ変えたい場合は今回のように用意したシェーダーから改変するという手段が有効だと思います。