頂点アニメーションとリムライトを組み合わせたらいい感じだった

#はじめに
思いつき次第でいろいろ遊べそうな表現だったのでシァエします
安心と信頼のMade With Unity

#シェーダ
タイトル通り簡単な頂点アニメーションとリムライトを加算合成しちゃうシェーダです
CameraのClearFlagsをSkyboxにすると映らなくなっちゃう（何かがおかしい）のでSolidColorにしてあげてください
<img src="https://qiita-image-store.s3.amazonaws.com/0/193550/fc840603-d2b9-9931-a9b6-932f05033f7a.jpeg" width=50%>
AlbedoとかAlphaに何も入れてないからなのか...？


```glsl:Yurayura.shader
Shader "Custom/Yurayura"
{
    Properties
	{
        _MainTex("Texture", 2D) = "white" {}
        _Color("Color", Color) = (1, 1, 1, 1)
        _Amplitude("Amplitude", float) = 1.0
        _RimPower("RimPower", Range(0.1, 10.0)) = 3.0
    }

    SubShader
	{
        Tags{ "RenderType"="Transparent" "Queue"="Transparent" }
        Blend One One
        Cull Back
        ZWrite Off

        CGPROGRAM
        #pragma surface surf Lambert vertex:vert
        #pragma target 3.0      
        #include "Noise.cginc"

        sampler2D _MainTex;
        float _Amplitude;
        float4 _Color;
        half _RimPower;

        struct Input
		{
            float2 uv_MainTex;
            float3 viewDir;
        };

        void vert(inout appdata_full v)
		{
            v.vertex.xyz += v.normal * _Amplitude * perlin(v.vertex.xyz * _Time.y);
        }

        void surf(Input IN, inout SurfaceOutput o)
		{
            float rim = 1.0 - saturate(dot(normalize(IN.viewDir), o.Normal));
            float3 rimColor = pow(rim, _RimPower);
            o.Emission = tex2D(_MainTex, IN.uv_MainTex).rgb * rimColor * _Color;
        }

        ENDCG
    }
    Fallback "Diffuse"
}
```

```glsl:Noise.cginc
float rand(float2 co) 
{
    return frac(sin(dot(co.xy, float2(12.9898, 78.233))) * 43758.5453);
}

float rand(float3 co)
{
    return frac(sin(dot(co.xyz, float3(12.9898, 78.233, 56.787))) * 43758.5453);
}

float noise(float3 pos)
{
    float3 ip = floor(pos);
    float3 fp = smoothstep(0, 1, frac(pos));
    float4 a = float4(
        rand(ip + float3(0, 0, 0)),
        rand(ip + float3(1, 0, 0)),
        rand(ip + float3(0, 1, 0)),
        rand(ip + float3(1, 1, 0)));
    float4 b = float4(
        rand(ip + float3(0, 0, 1)),
        rand(ip + float3(1, 0, 1)),
        rand(ip + float3(0, 1, 1)),
        rand(ip + float3(1, 1, 1)));
    a = lerp(a, b, fp.z);
    a.xy = lerp(a.xy, a.zw, fp.y);
    return lerp(a.x, a.y, fp.x);
}

float perlin(float3 pos) {
    return  (noise(pos) * 32 +
            noise(pos * 2 ) * 16 +
            noise(pos * 4) * 8 +
            noise(pos * 8) * 4 +
            noise(pos * 16) * 2 +
            noise(pos * 32) ) / 63;
}
```

Noiseみたいな関数群はcgincにまとめちゃうと便利ですね

とりあえずSphereにペタるとこんな感じになる
<img src="https://qiita-image-store.s3.amazonaws.com/0/193550/3117dd84-7476-63e4-4672-9c1d57b6aebf.gif" width=50%>
動くも◯っとボールみたいになりましたが、ちょっと味気ないので少し調整してあげます

<img width="257" alt="スクリーンショット 2018-02-27 15.18.51.png" src="https://qiita-image-store.s3.amazonaws.com/0/193550/2b51cf1f-7f86-9467-34f3-6f7369aab108.png">
Materialをこうすると
<img src="https://qiita-image-store.s3.amazonaws.com/0/193550/911d17ef-5fe9-6ecf-9991-c9ff21b65574.gif" width=50%>
随分と可愛くなりました

#こんなん出来るよ集
##炎の輪っぽいの
<img width="254" alt="スクリーンショット 2018-02-27 15.49.32.png" src="https://qiita-image-store.s3.amazonaws.com/0/193550/62be0029-e225-11b3-c0c2-bcc0110e82b9.png">
<img src="https://qiita-image-store.s3.amazonaws.com/0/193550/0c8e2493-be02-43b4-cd36-4710f868f648.gif" width=50%>
Sphereを3つ重ねて、それぞれRotationだけズラしてあげるとこんな感じになる

##結晶みたいなの
<img width="256" alt="スクリーンショット 2018-02-27 16.02.36.png" src="https://qiita-image-store.s3.amazonaws.com/0/193550/5ca67172-3dbe-e8ca-0673-d2a9b1f41451.png">
<img src="https://qiita-image-store.s3.amazonaws.com/0/193550/591c1e65-8b9f-c647-fd7c-a4d8eef451c1.gif" width=50%>
Amplitudeを負の値にするとこんな感じになります

##適当にテクスチャ入れてみる
<img width="256" alt="スクリーンショット 2018-02-27 16.12.18.png" src="https://qiita-image-store.s3.amazonaws.com/0/193550/a14b7ff5-0e8b-8e47-0fce-c5970b96cb6b.png">
<img src="https://qiita-image-store.s3.amazonaws.com/0/193550/0f7355cd-b4fa-f7bf-849a-d612dad37d2c.gif" width=50%>
Sphere2つ重ね。カラフルなテクスチャを入れると賑やかですね

#信じられるか？これ全部Sphereなんだぜ...
<img src="https://qiita-image-store.s3.amazonaws.com/0/193550/53b89288-c2cb-d216-2a07-6f8a871ba0c0.gif" width=80%>
PostProcessingStackアセットをぶち込んでBloomとか入れてあげると、もっと綺麗になりそうですね