見出し画像

[Unity Shader Graph]部分的に色を変える(初心者)

Unity version 2021.3.14f1

Shader Graph

1、Shader Graphをインストール

レンダーパイプラインがURPやHDRPの場合はすでにインストールされているのでこの工程は不要

  1. メニュー >> Window >> Package Managerでウィンドウを開く

  2. PackagesのプルダウンメニューからUnity Registryを選択

  3. Shader Graphをインストール

2、Shader Graphを作成

Projectウィンドウで右クリックからCreate >> Shader Graph >> URP >> Lit Shader Graph を選択してファイルを作成
Shader Graphファイルをダブルクリックするとウィンドウが開く
ウィンドウ上で右クリックからCreate NodeでNode検索ウィンドウが出てノードを作成できる
※Create NodeをクリックしてもNode検索ウィンドウが表示されない場合はShader Graphのウィンドウ上で左クリックしてみる

使用するノード

  • Color:色を出力

  • Blend:Baseになる入力値にもう一つの値をBlendするOpacityはBlendの強度

  • Texture 2D Asset:任意のテクスチャを出力

  • Sample Texture 2D:テクスチャを出力するために必要なノード

  • Replace Color:特定の色を任意の色に変更する

3、ノードを作成

  1. Texture 2D Assetノードを作成しBase Color用テクスチャを設定

  2. Sample Texture 2Dノードを作成しTexture 2D Assetノードを繋げる

  3. Colorノードを作成しノードを右クリックからConvert To >> Propertyでプロパティ化

  4. Replace Colorノードを作成しSample Texture 2DノードのRGBAをInに繋げる

  5. Fromの色を変更したい色にする
    ※少しでも違う色だと変更されない、また同じ色が他の場所にもあるとそちらも変更されるので絶対に使用しない色にする ここではR:0,G:255,B:0にしている
    ※色の境目はアンチがかかって変更されないのでテクスチャ展開の時に少し広めに隙間をとったほうが良い

  6. ColorノードをReplace ColorノードのToに繋ぐ

  7. Texture 2D Assetノードを作成し影用のテクスチャを設定(黒が影、白が透過)

  8. Sample Texture 2Dノードを作成しTexture 2D Assetノードを繋げる

  9. Blendノードを作成し7で作成したSample Texture 2DノードのRGBAをBlendに繋ぐ

  10. Replace ColorノードをBlendノードのBaseに繋ぐ

  11. BlendノードをFragmentのBase Colorに繋ぐ

4、マテリアルを作成

  1. Projectウィンドウで右クリックからCreate >> Materialで必要な数のマテエリアルを作成

  2. MaterialファイルにShader Graphファイルをドラッグ&ドロップする

  3. Materialファイルを選択しInspectorウィンドウでプロパティ化したノードのColor(色)を調整する

5、3Dモデルにマテリアルを設定

  1. 3Dモデルを3Dツールで作成しテクスチャ展開してエクスポート
    ここではBlenderで作成しfbxでエクスポートしている

  2. UnityにモデルをProjectウィンドウにドラッグ&ドロップでインポート

  3. インポートしたファイルを選択してInspectorウィンドウのMaterialsタブで作成したMaterialファイルを設定

  4. ProjectウィンドウからHierarchyウィンドウにドラッグ&ドロップする

  5. そのファイルを右クリックからDepulicateで複製する

  6. 複製したモデルのInspectorウィンドウでMeshRendererのMaterialsでマテリアルを変更する
    ※メッシュにアニメーションがついている場合はファイル内のメッシュを選択してSkinned Mesh RendererのMaterialsでマテリアルを変更する

  7. 5〜6を必要な数だけ繰り返す

説明が間違っている可能性がありますので自分でも調べて確認してみてください

Materialを増やさずC#でPropertyの色を変更したい場合は以下を参考にしてみてください

この記事が気に入ったらサポートをしてみませんか?