2016-05-09
[VR]いい感じに透けて縁が発光するCapsuleHand(LEAP motion) 

LEAP motionのCapsuleHand、ちょっとダサい。
ということで、改善してみる。
最終的にはこんな感じになる。
まずは、手の甲と指の関節の球をなくす。
- LeapMotion/Scripts/Hands/CapsuleHand.csを開く。
- 14行目のSPHERE_RADIUSの値を0fに変更する。
- 16行目のPALM_RADIUSの値を0fに変更する。
次に、シェーダーを変える。
- 下記のシェーダーをダウンロードする。
CapsuleHandRim.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" }
- Rimという名称でMaterialを新規作成し、上記シェーダーを割り当てる。
- RimColor(フチの色)とRimPower(フチの光具合)を調整する。
- HierarchyのCasuleHand_Lをクリックし、InspectorのCapsuleHandのMaterialに上記Rimを割り当てる。
- HierarchyのCasuleHand_Rをクリックし、InspectorのCapsuleHandのMaterialに上記Rimを割り当てる。