したかみ ぶろぐ

Unity成分多め

簡単にシェーダーが出来るiOSアプリ「Shade」の紹介

始めに

最近少しUnityのシェーダーで映画Matrixのエフェクトを作成しました。

過去記事

そこから、少しシェーダー熱が再発して手軽にシェーダーで遊びたいなーとなったのでiOSアプリ「Shade」を使って見ました。

その感想を簡単に紹介していきます。

iOSアプリ「Shade」について

簡単にシェーダーが遊べるアプリ「Shade」があります。

こちらは無料で14日間体験でき、それ以降は有料となります。

Shade

Shade

  • Two Lives Left
  • グラフィック/デザイン
  • 無料
apps.apple.com


このアプリではUnityのShader graphのようにノードベースのプログラミングでシェーダーを作成することが可能です。

f:id:vxd-naoshi-19961205-maro:20211024003710p:plain



基本的な機能

簡単に触って分かった基本的な機能について説明します。

Surfaceノード

ShadeではこのSurfaceノードに値を設定して色や法線情報を設定したり、頂点座標を変化できます。

f:id:vxd-naoshi-19961205-maro:20211024004532p:plain


また、これらの値は固定値として設定することも可能です。

f:id:vxd-naoshi-19961205-maro:20211024004754p:plain


そのほかにも、オブジェクトの生成個数やShading Model (physical, unlit, custom) やRender Queue, Cull Faceも設定できます。

f:id:vxd-naoshi-19961205-maro:20211024005019p:plain



ノード

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を知らないので、何ができるかあまりわかっていない)


個々のノードには解説がついているので取っつきやすいです。

f:id:vxd-naoshi-19961205-maro:20211024012742p:plain



Preview設定

この設定でScene上の設定が可能です。

オブジェクトにレンダリングするか、平面にレンダリングするかなど設定でき、さらにARで現実にレンダリングされたオブジェクトを置いたり、自分の顔にシェーダーを設定できます。

f:id:vxd-naoshi-19961205-maro:20211024020129p:plain


そのほかにScene上の光源の設定やBloom設定ができます。

f:id:vxd-naoshi-19961205-maro:20211024024940p:plain

Preview Model

Scene上のモデルの設定ができます。

座標、回転、スケーリングに加えてモデルの変更が行えます。

f:id:vxd-naoshi-19961205-maro:20211024020429p:plain



Shadeのサンプルについて

このアプリでは豊富なサンプルが用意されています。

ノードの使い方がわからなかったり、このアプリでどこまで出来るかの参考になります。

ここではサンプルのgifを2つほど載せます。

f:id:vxd-naoshi-19961205-maro:20211024021346g:plain

f:id:vxd-naoshi-19961205-maro:20211024021805g:plain



作ってみたもの

2週間ほど試してできたものをここで紹介します。

Triplanar

少し前にTriplanarのシェーダーをUnityで勉強したので、Shadeでも作成してみました。 Unityで平面マッピング・Triplanarをする - なおしのこれまで、これから

f:id:vxd-naoshi-19961205-maro:20211024023600p:plain


中心から放射するアニメーション

遊んでいるときにたまたまtwitterappleの広告を見たので、簡単に真似してみたものです。

f:id:vxd-naoshi-19961205-maro:20211024023848g:plain

f:id:vxd-naoshi-19961205-maro:20211024024011g:plain


Cubeを整列してアニメーション

Surfaceノードでオブジェクトの複製、ノードでそれぞれの座標を計算して作成してみました。

f:id:vxd-naoshi-19961205-maro:20211024024405g:plain



使用感について

あまりノードコーディングをしたことがなかったので、始めは慣れませんでしたが、使っているうちにちょっとずつ考えたことプログラムに落とし込めるようになりました。

コーディングの際は、ショートカットキーで簡単にノードの検索、作成ができるのでサクサクプログラミングが出来て楽しいです。

f:id:vxd-naoshi-19961205-maro:20211024022632g:plain



また、ノードが増えたとしてもOrganisationのノードを使うことで意外とスッキリまとめられるので、コーディングが辛くなることはありませんでした。

f:id:vxd-naoshi-19961205-maro:20211024023253p:plain

最後に

簡単にShadeについての紹介をしました。

使って見て感じたこととして、このようになりました。

  • 意外となんでもできる
  • iPadで手軽に遊べるため、取っつきやすい
  • 自分の知識に比べてオーバースペック

自分のシェーダーに関する知識はあまりないので、このアプリで遊びつつ少しずつシェーダーについて勉強していこうと思います。



参考

3dnchu.com