search
LoginSignup
18

More than 5 years have passed since last update.

posted at

updated at

Unity スタンダードシェーダーで モデルを綺麗に半透明表示する

スタンダードシェーダーで表示していたオブジェクトを半透明にしたい時、Rendering ModeをFadeやTransparentに変えただけでは綺麗に表示してくれないことがよくあります。
スクリーンショット 2016-11-19 19.24.18.png

そんな時は、スタンダードシェーダーにちょい足しするのが便利です。

まずはUnityダウンロードページからビルトインシェーダーをダウンロードします。
スクリーンショット 2016-11-19 19.13.17.png

ビルトインシェーダーの中からStandardShaderを選び、StandardDepth.Shaderなど適当に名前を変えて自分のプロジェクトに追加します。
スクリーンショット 2016-11-19 19.30.27.png

追加したシェーダーの以下の部分を変更します。

  • 先頭行の Shader "Standard" を"StandardDepth" 等に変更
  • 55行目あたりの Tags に "Queue"="Geometry+10" を追加
  • そのすぐ下あたりに以下を追加
Pass{
    ZWrite ON
    ColorMask 0
}

変更前
スクリーンショット 2016-11-19 19.14.29.png

変更後
スクリーンショット 2016-11-19 19.15.26.png

マテリアルにシェーダーを適用し、RenderingMode = Fade, Source = AlbedoAlpha にします
スクリーンショット 2016-11-20 13.04.08.png

スクリーンショット 2016-11-19 19.11.16.png

上記シェーダーを適用したものが右になります。
Passは増えますが、簡単にモデルを半透明にしたい時に使えるのではないかと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
18