始めに
最近少しUnityのシェーダーで映画Matrixのエフェクトを作成しました。
そこから、少しシェーダー熱が再発して手軽にシェーダーで遊びたいなーとなったのでiOSアプリ「Shade」を使って見ました。
その感想を簡単に紹介していきます。
iOSアプリ「Shade」について
簡単にシェーダーが遊べるアプリ「Shade」があります。
こちらは無料で14日間体験でき、それ以降は有料となります。
apps.apple.comこのアプリではUnityのShader graphのようにノードベースのプログラミングでシェーダーを作成することが可能です。
基本的な機能
簡単に触って分かった基本的な機能について説明します。
Surfaceノード
ShadeではこのSurfaceノードに値を設定して色や法線情報を設定したり、頂点座標を変化できます。
また、これらの値は固定値として設定することも可能です。
そのほかにも、オブジェクトの生成個数やShading Model (physical, unlit, custom) やRender Queue, Cull Faceも設定できます。
ノード
Shadeでは数多くのノードが用意されており、それらを使ってシェーダーを作成できます。
ここでノードすべての解説をするには数が多すぎるので、カテゴリごとに簡単にまとめます。
カテゴリ | 解説 |
---|---|
Properties | UnityシェーダーのPropertiesに相当。数値やテクスチャ、色などを設定できます。 |
Input | GPUから入力される値に相当。UVや頂点座標、実行からの経過時間などが受け取れます。 |
Maths | 計算系のノード。四則演算や比較演算、frac関数、floor関数などがあります。 |
Geometric | こちらも計算系のノードではありますが、Mathsよりも高度な計算が用意されています。UVの変換やベクトルの内積外積が行えます。 |
Trigonometry | 三角関数系のノード。ラジアンと度数法の変換やsin、asin関数があります。 |
Noise | 2~4次元のPerlin NoiseやVoronoi図、乱数があります。 |
Generatice | Height MapからNormal Mapへの変換やBlur、Tilingなどの変換、Textureのバッファが出来ます。 |
Organisation | ノードをまとめたり、変数に保存する機能があります。 |
Color | 色のBlendやRGBとHSBの変換ができます。 |
Lighting | SurfaceノードでShading Modelをcustomに設定したときに、Lightingの設定ができます。 |
Raymarching | Raymarchingの基本的な計算のノードが用意されています。(Raymarchingを知らないので、何ができるかあまりわかっていない) |
個々のノードには解説がついているので取っつきやすいです。
Preview設定
この設定でScene上の設定が可能です。
オブジェクトにレンダリングするか、平面にレンダリングするかなど設定でき、さらにARで現実にレンダリングされたオブジェクトを置いたり、自分の顔にシェーダーを設定できます。
そのほかにScene上の光源の設定やBloom設定ができます。
Preview Model
Scene上のモデルの設定ができます。
座標、回転、スケーリングに加えてモデルの変更が行えます。
Shadeのサンプルについて
このアプリでは豊富なサンプルが用意されています。
ノードの使い方がわからなかったり、このアプリでどこまで出来るかの参考になります。
ここではサンプルのgifを2つほど載せます。
作ってみたもの
2週間ほど試してできたものをここで紹介します。
Triplanar
少し前にTriplanarのシェーダーをUnityで勉強したので、Shadeでも作成してみました。 Unityで平面マッピング・Triplanarをする - なおしのこれまで、これから
中心から放射するアニメーション
遊んでいるときにたまたまtwitterでappleの広告を見たので、簡単に真似してみたものです。
Cubeを整列してアニメーション
Surfaceノードでオブジェクトの複製、ノードでそれぞれの座標を計算して作成してみました。
使用感について
あまりノードコーディングをしたことがなかったので、始めは慣れませんでしたが、使っているうちにちょっとずつ考えたことプログラムに落とし込めるようになりました。
コーディングの際は、ショートカットキーで簡単にノードの検索、作成ができるのでサクサクプログラミングが出来て楽しいです。
また、ノードが増えたとしてもOrganisationのノードを使うことで意外とスッキリまとめられるので、コーディングが辛くなることはありませんでした。
最後に
簡単にShadeについての紹介をしました。
使って見て感じたこととして、このようになりました。
- 意外となんでもできる
- iPadで手軽に遊べるため、取っつきやすい
- 自分の知識に比べてオーバースペック
自分のシェーダーに関する知識はあまりないので、このアプリで遊びつつ少しずつシェーダーについて勉強していこうと思います。