Unity Shader Graph とスクリプトを使用したエミッションカラーの変更
目次
概要
この技術資料では、UnityでShader Graphとスクリプトを使用してエミッションカラーを動的に変更する方法について説明します。このプロジェクトを通して、シーン内で立方体のエミッション効果を操作し、視覚的なフィードバックを向上させる手法を学びます。
ステップ1: プロジェクト設定
- Unityバージョン: Unity 6.0.0(スクリーンショット)
- プロジェクト名:ShaderGraphUV(サンプル)
 
 - Shader Graphの確認:
- Unity 6ではShader Graphはデフォルトでインストールされています。
 
 
ステップ2: Shader Graphとマテリアルの作成
- Shader Graphの作成:
- 新しいShader Graphを作成し、エミッションカラーを制御するための
_EmissionColorプロパティを追加します。 - 「Sample Texture 2D」ノードを接続し、スクリーンショットで示されているようにUV座標を操作します。
 
 - 新しいShader Graphを作成し、エミッションカラーを制御するための
 - マテリアルの作成:
- Shader Graphを作成した後、新しいマテリアルを作成し、そのShader Graphを適用します。
 
 

ステップ3: スクリプトの作成
以下のC#スクリプトを作成します。
using UnityEngine;
public class ChangeEmissionColor : MonoBehaviour
{
    public Material material;
    void Start()
    {
        if (material != null)
        {
            // エミッションカラーを青に設定(RGB: (0, 0, 1)、強度: 2.0)
            Color emissionColor = new Color(0.0f, 0.0f, 1.0f) * 2.0f;
            // マテリアルに色を適用
            material.SetColor("_EmissionColor", emissionColor);
            // エミッションを有効化
            material.EnableKeyword("_EMISSION");
        }
    }
}
コードのポイント
material.SetColor("_EmissionColor", emissionColor);: Shader Graphのプロパティに直接アクセスしてエミッションカラーを変更します。material.EnableKeyword("_EMISSION");: マテリアルのエミッション効果を有効化します。
ステップ4: ポストエフェクト効果の追加
シーンにGlobal Volumeを追加し(標準で追加されているはず)、Bloomエフェクトを有効にします。スクリーンショットのように、IntensityやThresholdを調整してエミッションカラーをより際立たせます。

ステップ5: Unityでの実装
- ゲームオブジェクトのセットアップ:
- シーンにCubeを配置し、作成したマテリアルを適用します。
 
 - スクリプトのアタッチ:
ChangeEmissionColorスクリプトをCubeオブジェクトに追加し、作成したマテリアルを指定します。
 - 動作確認:
- 再生ボタンを押して、エミッションカラーが変更されることを確認します。
 
 
トラブルシューティング
エミッションが動作しない場合:
- Shader Graphの
_EmissionColorプロパティが正しく設定されているか確認してください。 - マテリアルに正しいShader Graphが適用されているか確認してください。
 
スクリプトエラー:
materialがnullの場合、インスペクターで正しいマテリアルが指定されているか確認してください。
応用例
- 時間経過やプレイヤーの行動に応じてエミッションカラーを変化させる。
 - 複数のオブジェクトにスクリプトを適用し、シーン内で動的な視覚フィードバックを演出する。
 
訪問数 27 回, 今日の訪問数 1回





ディスカッション
コメント一覧
まだ、コメントがありません