この記事は「Unity アセット真夏のアドベントカレンダー 2020 Summer!」24日目の記事になります。
最近はBuilt-inパイプラインを使うことがめっきり減り、URPばかりでゲームを作っていたのですが、先日のClusterゲームワールドコンテスト(詳細はこちら)に参加した際に、久しぶりにBuilt-in環境でUnityを触ることになりました。
ワールドを設計している中で、どうしてもシェーダーを自作しなければならない箇所が出てきてしまったので、昔購入したAmplify Shader Editorというエディターアセットをインストールしてみることにしました。長らく使っていなかったアセットでアップデートも止まっているのかな、とあまり期待していませんでした。
ところがインストールしてみると、知らない間にさまざまなアップデートが加えられていて、機能も大幅に進化していることに気が付き、大変驚いてしまいました。
そんな驚きがあり、こんな優秀なアセットが紹介しないのはもったいないと思い立って、この記事を書くことにしました。今回はそんな超優秀エディターアセット『Amplify Shader Editor』のご紹介です。
Contents
そもそもシェーダーエディターって何?
シェーダーエディターは、シェーダーをノードベースで視覚的に組むことができるツールです。
Unityで使えるシェーダーは、HLSLという言語で書く必要があります。そのためシェーダーを作ることはC#以上に学習コストが高いものだと、個人的には思います。
しかし、ゲームビジュアルを開発する中で、シェーダーを避けて通ることはできません。そんな開発コストが高いシェーダーコーディングを、効率的にサポートするツールがシェーダーエディターというわけです。
最近では、Shader Graphという公式シェーダーエディターがUnityのアドオンとして提供されています。そのおかげもあって、シェーダーエディター自体が非常になじみの深いものになりつつあります。この記事を読んでいる読者の中にも、Shader Graphを触ったことがある方もいるかもしれません。
Amplify Shader Editorとは
そんなシェーダーエディターですが、Amplify Shader Editorという有料アセットが販売されているのをご存じでしょうか。有料とだけあって、Shader Graphにはない様々な機能が搭載されているエディターです。
Amplify Shader Editorのここがおすすめ!!
シェーダーのサンプルが豊富
Amplify Shader Editorの良いところは、サンプルが充実しているところです。はじめてシェーダーを作ってみる方にとって、とても参考になるサンプルが多く含まれています。
たとえば、燃え盛る炎シェーダー、水深を調整できる水面シェーダー、オブジェクトの輪郭を描くアウトラインシェーダー、といったシェーダーたちがパッケージに含まれています。
これらをシェーダーの学習に生かすもよし、またそのままゲームに組み込んでしまってもいいでしょう。サンプルの数は70にも上り、幅広いシェーダー表現のサンプルを見ることができます。
実はURP・HDRPでも動く!
Amplify Shader EditorはSRP(スクリプタブルレンダーパイプライン)に対応しています。URPをはじめ、HDRPにも対応しているので、最新のUnityにも導入することができます。(私はてっきり対応していないものだと思い込んでいました…..)
加えて、Shader Graphより歴史が当然長いので、よりセッティングを細かく行えるのがAmplify Shader Editorの強みでもあります。
Built-in パイプラインで動く!
Built-inパイプラインを使用していたUnity 5から販売されているエディターなので、当然ながらBuilt-inで作られているプロジェクトで使用することができます。特に、VRChatやclusterといったVRSNSは、Built-inパイプラインを今でも使用しているので、非常に使いどころが多いです。
一方で、公式が提供するShader Graphは、Built-inパイプラインには対応していません。この点はAmplify Shader Editorが偶然にも優れているといえるでしょう。
なお、Shader Graphが今後Built-inに対応する予定はないようです。Built-inパイプライン環境でシェーダーを作ってみたいという方は、このAmplify Shader Editorを取り入れてみることを検討してみてください。
多種多用なノードが利用可能
Amplify Shader Editorで利用できるノードは約300ノードにも上ります。一方でShader Graphで利用できるノードは約170です。基本的なノードは共通していますが、Amplify Shader Editorにしかないノードがあり、幅広い用途に柔軟に対応できるのはAmplify Shader Editorの方でしょう。
模様ノードが便利
Amplify Shader Editorのデフォルト機能の一つに、模様ノードというものがあります。このノードには、様々な模様テンプレートがセットされており、水玉やブロックといった、汎用性が高いテクスチャ模様を簡単に生成することができます。
なお、Shader Graphにも似たようなパターンノードを追加する方法があります。そちらについては、こちらの記事にまとめてありますので、ぜひご覧ください。
公式ドキュメントが豊富
長年の開発によって、ドキュメントは非常に充実しています。使い方の分からないノードはここを見るといいでしょう。
また、公式のDiscordも盛んです。海外のシェーダー開発者と触れ合うことができる場所なので、ぜひ参加してみてはいかがでしょうか?
ちょっと残念なところ
サンプルがURP/HDRPでは充実していない
Amplify Shader Editorはサンプルが充実していると先述しましたが、実はこれらのサンプルはBuilt-inパイプラインを前提に作られたものであり、URPやHDRPが使われているプロジェクトでは、これらのサンプルはシェーダーエラーとなってしまいます。
URP/HDRP用のサンプルは一応用意されているものの、あまり汎用性のないものであったり、使い道がわからないものであったりと、その充実度はあまり高くありません。もしAmplify Shader Editorでシェーダーコーディングを始める方は、Built-inパイプラインで練習してから、URPやHDRPに挑戦することをおすすめします。
セールにあまり出なくなった
ひと昔前だと、Amplify Shader Editorはセールに頻繁に上がるアセットだったのですが、最近は滅多にセールされなくなりました。販売価格が60ドルと、少し悩ましいかと思いますが、セールでの値下がりをあまり期待できません。欲しいタイミングで購入することをおすすめします。
日本語のドキュメントが多くない
Unity公式が提供しているShader Graphと違い、Amplify Shader Editorはアセットストアで有料販売しているため、潜在的な日本人ユーザーがあまり多くありません。そのため、日本語のドキュメントは基本的にないと思った方がいいです。特殊なノードやセッティングについては、すべて英語のソースを調べる必要があります。
とはいっても、シェーダーエディターの違いは、シェーダーを何で作るかという道具の違いなので、Shader Graphについて書いてある記事もある程度参考になります。
下の記事は、このブログで書いたShader Graphの記事になります。興味のあるかたはぜひ、ご覧になっていってください。
Amplify Shader Editorの使い方
実際の使い方については、記事を分割しました。以下の記事にまとめてありますので、ぜひご覧ください。
Amplify Shader Editorの使い方まとめ(準備中)
まとめ
いかがでしたでしょうか。Shader Graphは公式にサポートされている強力なツールですが、Amplify Shader Editorも負けず劣らず素晴らしいエディターアセットです。それどころか、Shader Graphにはない機能も多数搭載されているので、より幅広いシェーダー開発をサポートしてくれることでしょう。
Amplify Shader Editorに興味がわいた方はぜひ、この機会に挑戦してみてはいかがでしょうか。