Search Unity

シェーダーグラフの導入: ビジュアルエディターでシェーダーを作ろう

, 2月 27, 2018

Unity 2018.1 は、新しいレベルの制御と柔軟性を実現しました。2018.1 で導入された最もクールな機能の 1 つがシェーダーグラフです。初心者にもプロの方にとっても、シェーダーグラフは、多様なシェーダーを作成するのに役立ちます。流れる溶岩、ドロドロしたヘドロの山、美しい湖、点滅する LED など、さまざまなものが表現できます。

シェーダーグラフを使用すると、シェーダーを視覚的に作成できます。手書きしたコードではなく、グラフネットワーク内にノードを作成して接続します。以下のようなことが可能です。

  • 段階的にサーフェスの様子を変化させる
  • UV ワープ・UV アニメーションを実行する
  • よく使用するイメージの調整操作でオブジェクトの外観を修正する
  • ワールド空間での位置、法線、カメラからの距離など、オブジェクトのサーフェスに関する有用な情報に基づいてサーフェスを変更する
  • マテリアルのインスペクターにプロパティーを公開しているため、シーンのコンテキストでシェーダーの見た目を素早く調整できる
  • サブグラフを作成して、複数のグラフとユーザーの間でノードネットワークを共有する
  • C# と HLSL を使用して独自のカスタムシェーダーグラフノードを作成する

グラフのフレームワークは変更を即座にフィードバックするので、まだ慣れていないユーザーでも簡単にシェーダーを作ってみることができます。

シェーダーグラフがベータ版で利用可能になりました。まず、サンプルプロジェクトをダウンロードし、Unity 2018.1 ベータ版で開いて使用を開始してください。Package Manager を使用してシェーダーグラフを入手することもできます。

シェーダーグラフは、Unity 2018.1 のもう 1 つの機能、スクリプタブルレンダーパイプライン(SRP)で動作するように設計されています。そのため、ビルトインの Unity レンダラーでは使用できません。シェーダーグラフは以下のレンダーパイプラインをサポートします。

  • 高画質レンダーパイプライン
  • 軽量レンダーパイプライン

また、作成したカスタム SRP のシェーダーをエクスポートするためにシステムを拡張することも可能です。

シェーダーグラフの作り方

Unity 2018.1 では、シェーダーグラフは通常のシェーダーとして表示されます。シェーダーグラフを作成するには、Create メニューをクリックし、ドロップダウンから「Shader Graph」を選択します。この操作で、プロジェクトにシェーダーグラフアセットが作成されます。このアセットをダブルクリックするか、「Open」ボタン(または「Open Shader Editor」ボタン)を選択して Shader Graph 編集ウィンドウを表示します。

このシェーダーグラフを開くと、マスターノードだけがあります。ノードをこのマスターノードに接続してサーフェスの外観を構築していきます。その基になるマテリアルモデルの詳細については、Unity スタンダードシェーダーのドキュメントを参照してください。

デフォルト値を変更することによって素早くサーフェスを編集することができます。しかし、もっとすごいことができるんです。それは、テクスチャや複雑なインタラクションを加えることが可能だということです。ノードを加えるには、単に右クリックして「Create Node」を選択します。

シェーダーグラフ内の各ノードにはいくつかの入力フィールドがあります。デフォルト値が入力されているので、好みの値にカスタマイズします。

テクスチャ(またはその他のアセット)を加えることもとても簡単です。アセットタイプにあったノードを作成して接続するだけです。

シェーダーグラフによるシェーダーは、Unity の通常のシェーダとよく似ています。インスペクター内のオブジェクトを右クリックし、「Create Material」を選択します。同じシェーダーから複数のマテリアルを作成することができます。

シェーダーのパラメーターに簡単にアクセスできるので、シェーダーから作成した各マテリアルでパラメーターを上書きすることができます。シェーダーグラフで、任意の変数ノードを右クリックし、「Convert to Property」を選択します。これらのアクセス可能なパラメーターは、シェーダーで作成した各マテリアルのインスペクターに表示されます。

チュートリアルについて

Unity は現在シェーダーグラフのライブトレーニングセッションを予定しています。イベントのページTwitterYouTube からの情報をお見逃しなく。もし GDC に行かれるなら、シェーダーグラフに関連した講演を楽しみにしていてください。こちらにサインアップすると、常に最新情報が得られます。

また、GitHub で Andy Touch による Shader Graph Example Library を参考に研究されることをお勧めします。

質問がある場合

質問は大歓迎です。是非、フォーラムのこちらのスレッド に参加して質問をお寄せください。そこで様々な質問にお答えします。

33 コメント

コメントの配信登録

コメント受付を終了しました。

  1. Correction. It works with sprites. You need to use AlphaClipThreshold.

  2. Will Shader Graph allow you to create shaders for sprites? The current beta doesn’t allow it, it seems.

    1. I was wrong. It can be used to create shader sprites.

  3. The Unity 2018.1 Beta 13 doesn’t have Shader Graph. Why?

    1. Admiral Mii

      4月 10, 2018 3:30 pm

      You have to install it along with the Lightweight Render Pipeline from the package manager.

  4. when is unity 2018 coming out its April

  5. Unity, please allow users to create and use Unreal asset at runtime.

    1. Sorry, I meant Unity assets at runtime. It would be really unreal and epic to have such a feature :).

  6. Yasemin turan

    4月 4, 2018 3:43 pm

    Alsa

  7. I love the new concepts introduced, but I can’t help but worry that this new split is going to create problems to the platform flexibility of Unity. It sounds like publishing everywhere from a single source won’t be the case anymore.

    At the same time, something that may or may not be Unity’s decision, the lack of native support for Substance sounds like a mistake. Many if not most modern High End projects depend heavily on Substance and the lack of a way to use these materials before the new release goes public is problematic for those starting a new project today with the latest Unity.

    Lack of concrete plans from Alegorithmic for the release of the new plugin for Unity and lack of information about how much production ready this will be, may push a lot of those people who had started thinking of giving Unity a try now that the HD pipeline was announced, to go with Unreal instead.

  8. 我想会高变

  9. Acid Gaming

    3月 25, 2018 5:56 pm

    I’m a 13 year old artist and want to get into making 3 dimensional video games. I want to know what software I can use to make the models and animate them. And (if possible) be able to have a good game people would want to play.

    1. Abdul Haseeb

      3月 26, 2018 11:20 am

      you should start with “BLENDER” to make and animate models. its free to use.

  10. Can we already develop shader which deform vertex, like waves and other deformations?

  11. i love this app its…the best

  12. Hello Unity.
    Just want to ask – why do you just don’t buy Amplify Shader Editor instead of developing your own bicycle like Shader Graph?
    Peace.

  13. I want to share a short blog about my Experiments with Shader Graph. In my blog, I’ve drescribed step by step to set up Shader Graph and also include 2 graph version of my shader which may be useful for you guys.
    https://killertee.wordpress.com/2018/02/28/experiments-with-unity-shader-graph-and-scriptable-render-pipeline/

  14. Hi! Just wanted to share a compilation made of the readily available Shader Graphs, and I added a couple of my own:
    https://github.com/RubenCUR/ShaderGraph-Examples

  15. “Therefore, you can’t use it with the Built-In Unity Renderer”

    I guess there are sound reasons for this decision, but Shader Graph not working with Built-In Unity Renderer sounds like strange design decision. I don’t know much about scriptable render pipeline yet, but I guess many users will still be using Built-In Renderer…

  16. The HD pipeline doesn’t support the shader graph? When I install it I cannot find shader graph under create menu like I do in the lightweight

    1. At least in 0b12 it does. But the editor is a bit slow compared to creating a classic material or an HD pipeline material. Feels similar to how Unreal material editor is where for every change you need to wait a couple of seconds until the shader is built. It is in early stages yet so I suppose it will be optimized in the future.

  17. This is such great news! Really looking forward to it!

  18. Very cool new feature! Nodes and all the settings saving possibilities make working with Shaders and Materials very easy. Thanks a lot!

  19. That’s great! Native shader editor is one of the most desired feature in Unity 2018. Thank you!

  20. I’ve been using Shader Forge for years. It’s really great and easy to use and all but even its creator admits that the shaders it generates are not the most optimized, especially if they are going to be used on lower end hardware. Is this likely to be an issue with the Unity Shader Graph shaders as well?

  21. Nathan Warden

    2月 27, 2018 9:52 pm

    Awesome to see Tim! Didn’t you write the Strumpy Shader Editor back in the day? I’m glad to see you’re talents are being used in this area again. :)

  22. este modo sera compatible con los shaders de blender ?

  23. I am using beta 8, but i cannot get the shader graph via the package manager… should i download the sample project first, or this is not related ?

  24. Great! Particularly like: “Create your own custom shader graph nodes through C# and HLSL”

    Is that node graph zoomable?
    Might be useful to have a standard node graph for editor scripts to use for other things – a node graph GUI system.

    1. Ciro Continisio

      2月 28, 2018 9:54 am

      Yes, it is zoomable!

  25. Isaac Surfraz

    2月 27, 2018 3:33 pm

    Amazing! Please add surface shader style abstraction if possible?