質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

4434閲覧

Unityのシェーダーで、透明部分が黒く表示されてしまう。

imageX5

総合スコア12

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/06/23 13:26

前提・実現したいこと

Unityのシェーダーを使用して、他のオブジェクトと重なっている場所をくり抜いて表示したい。
以下のサイトを参考にしました。
http://nn-hokuson.hatenablog.com/entry/2017/06/01/220504

発生している問題・エラーメッセージ

シーンビューでは、重なり部分が透明になっているのですが、
ゲームビューでは、透明部分が真っ黒く描画されてしまいます。
イメージ説明

黒くなっている部分が透明に描画されるためには、どのようにすればよいでしょうか?

透明になっているオブジェクトには、以下のカスタムシェーダーをアタッチしています。

該当のソースコード

ShaderLab

1Shader "Custom/Wall" 2{ 3 Properties { 4 _Color ("Color", Color) = (1,1,1,1) 5 _Alpha ("Alpha", Range(0.00, 1.00)) = 0.00 6 } 7 8 SubShader { 9 Tags { "Queue" = "Geometry-1" "RenderType"="Transparent" } 10 LOD 100 11 12 Pass{ 13 Zwrite On 14 ColorMask 0 15 } 16 } 17}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらくスカイボックスの描画タイミングが「シーンビューでは一番最初、ゲームビューでは不透明オブジェクト描画後」という違いがあるらしいことに起因するものと思われます。
以前私もこの問題に悩んだのですが(Unity - Transparentなunlitシェーダに影を落としたい|teratail)、その際には対策として背景描画だけを担当するカメラをメインカメラの前段でレンダリングしておく方法をとりました。このような手は使えそうでしょうか?

背景用カメラ
メインカメラの子にし、Depthはメインカメラより小さくしておき、Culling MaskをNothingにして背景だけを描画する
背景用カメラ

メインカメラ
Clear FlagsをDon't Clearにし、背景には手を付けない
メインカメラ

投稿2019/06/23 14:09

Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

imageX5

2019/06/23 15:54

ありがとうございます。 教えていただいた通りに、カメラを設定したらゲームビューでも透明に描画できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問