【Unity】座標によってオブジェクトの一部を透明にする

投稿者: | 2020-11-22

シェーダーグラフで、ある高さ以上の部分を透明にして、シャッターを自然に持ち上げてみました。そうしないとシャッターがガレージの天井から突き出てしまいます。

まず、PositionノードのSpaceをAbsolute Worldにして、ワールド座標を得ます。SplitノードでそのY座標だけを取り出して、Comparisonノードでそれがある値と同じかそれ以下の時にtrueになるようにします。

ComparisonのBに接続する値よりも高い位置にある部分が透明になるようにします。このVector 1ノードを右クリックして、Convert to > Propertyでインスペクタから値を変更できるようにしておきます。

インスペクタ

ConparisonノードをBranchノードにつなぎ、それをマスターのAlphaにつなぎます。Trueのときに不透明度が1、Falseのときに0になります。

マスターノードの歯車マークからAlpha Clippingのチェックを入れると、AlphaClipThresholdを入力できるようになります。

これで、オブジェクトのある高さより上の部分が透明になります。

さらに、アルベドやノーマル、マスクマップを使えるようにしました。凹凸の強さやタイリングもインスペクタから変更できます。

もともとのシャッターの見た目と同じになりました。

コメントを残す

メールアドレスが公開されることはありません。