Top/Blog/2016-05-09

2016-05-09はてなブックマーク

[VR]いい感じに透けて縁が発光するCapsuleHand(LEAP motion) Permalinkはてなブックマーク

LEAP motionのCapsuleHand、ちょっとダサい。

ということで、改善してみる。


最終的にはこんな感じになる。



まずは、手の甲と指の関節の球をなくす。

  1. LeapMotion/Scripts/Hands/CapsuleHand.csを開く。
  2. 14行目のSPHERE_RADIUSの値を0fに変更する。
  3. 16行目のPALM_RADIUSの値を0fに変更する。


次に、シェーダーを変える。

  1. 下記のシェーダーをダウンロードする。
    fileCapsuleHandRim.shader
    // ref. http://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html
     
    Shader "Custom/CapsuleHandRim" {
    	Properties {
    		_RimColor("Rim Color", Color) = (1.0, 0.76, 0.0, 1.0)
    		_RimPower("Rim Power", Range(0.01, 8.0)) = 0.32
    	}
     
    	SubShader {
    		Tags { "Queue" = "Transparent" }
     
    		Cull Back
    		Blend One SrcColor
    		ZWrite Off
     
    		CGPROGRAM
    		#pragma surface surf Lambert
     
    		struct Input
    		{
    			float3 viewDir;
    		};
     
    		float4 _RimColor;
    		float _RimPower;
     
    		void surf(Input IN, inout SurfaceOutput o) {
    			half rim = 1.0 - saturate(dot(normalize(IN.viewDir), o.Normal));
    			o.Emission = _RimColor.rgb * pow(rim, _RimPower);
    		}
     
    		ENDCG
    	}
     
    	Fallback "Diffuse"
    }
  2. Rimという名称でMaterialを新規作成し、上記シェーダーを割り当てる。
  3. RimColor(フチの色)とRimPower(フチの光具合)を調整する。
  4. HierarchyのCasuleHand_Lをクリックし、InspectorのCapsuleHandのMaterialに上記Rimを割り当てる。
  5. HierarchyのCasuleHand_Rをクリックし、InspectorのCapsuleHandのMaterialに上記Rimを割り当てる。
差分 一覧