🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

解決済

1回答

4354閲覧

Scene Viewで表示されるオブジェクトがGame Viewだと表示されない

rintarou1234

総合スコア157

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

0クリップ

投稿2019/09/28 15:01

編集2019/09/29 03:12

最初私は、SkyBoxの動かない雲とPlaneのUVスクロールする雲を設置して、二枚の画像で空を描こうとしました。Shaderを書いて、PlaneをカメラからY方向に100m(Transformのyが100)高い位置に設置し、Scene Viewで見てみました。その時うまく動いていたので、実行してみたのですが、Game ViewのほうだとPlaneの雲が表示されていませんでした。
いろいろ調べてみたのですが直す方法がわかりません。よろしくお願いします。
イメージ説明

ShaderLab

1Shader "Custom/SkyCloud" 2{ 3 Properties 4 { 5 _MainTex ("Albedo", 2D) = "white" {} 6 } 7 SubShader 8 { 9 Tags { "RenderType"="Opaque" } 10 // 両面描写 11 Cull off 12 13 CGPROGRAM 14 15 // 透明を表示できるようにする 16 #pragma surface surf Standard alpha:fade 17 18 #pragma target 3.0 19 20 sampler2D _MainTex; 21 22 struct Input 23 { 24 float2 uv_MainTex; 25 }; 26 27 half _Glossiness; 28 half _Metallic; 29 fixed4 _Color; 30 31 32 void surf (Input IN, inout SurfaceOutputStandard o) 33 { 34 // UVスクロール 35 fixed2 UV = IN.uv_MainTex; 36 UV.x += 1.0f * _Time; 37 38 fixed4 c = tex2D (_MainTex, UV); 39 o.Albedo = c.rgb; 40 o.Alpha = c.a; 41 } 42 ENDCG 43 } 44 FallBack "Diffuse" 45} 46

追記↓
イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

おそらく、スカイボックスの描画タイミングがシーンビュー上では一番最初、ゲームビュー上では不透明オブジェクトの後になることが原因のような気がします。
少し前に別の方も半透明マテリアルを製作していらっしゃるのを見かけたのですが(Unityのレンダリングでskyboxにかぶる半透明部分が描画されない)、そちらと同様にキューをTransparentに変更してみてはいかがでしょうか。

投稿2019/09/28 23:45

Bongo

総合スコア10811

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

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

rintarou1234

2019/09/29 03:41 編集

回答ありがとうございます! 早速試してみました。そしたら 確かに表示されるようにはなりましたが、Terrainで描写している木があるのですが、遠いところにある木はその木の手前側に雲が描写されてしまいます。(近くにある木はちゃんと後ろ側に雲が写される) この時の写真は編集で追加しときます。 立て続けの質問になってしまいますが、よろしくお願いします。
Bongo

2019/09/29 04:14

なるほど、ではキューをHidden/TerrainEngine/BillboardTreeシェーダーよりも1段階早い「"Queue" = "Transparent-101"」にしてみるとどうでしょうかね?
rintarou1234

2019/09/29 04:25 編集

無事にできました! もしよければこのような描写順一覧が載っているようなサイトがあれば教えてもらってもよろしいでしょうか?これからの参考にしていきたいと思っているので 私の身勝手な質問に答えてくださり、本当にありがとうございました!
Bongo

2019/09/29 05:05

基本的には「ShaderLab : SubShader 内の Tags」(https://docs.unity3d.com/ja/current/Manual/SL-SubShaderTags.html )の「レンダリング順 - Queue タグ」の節にある定義済みキューのいずれかを選べばいいかと思いますが、今回のように特定のシェーダーとの順序関係を細かく調整したい場合はフレームデバッガー(https://docs.unity3d.com/ja/current/Manual/FrameDebugger.html )を使って調べるのがいいんじゃないでしょうか。 順序を調整したい相手の描画が行われているステップを選択しますと、何という名前のシェーダーのどのパスが使われているか(他にもブレンド、カリング、Zテストなどさまざまな状態も調べることができ便利です)が表示されます。もしプロジェクト内にシェーダーファイルがあるのなら、フレームデバッガー上のシェーダー名の部分をクリックするとプロジェクトビュー上の当該シェーダーファイルが強調表示されますので、それのインスペクター上の「Render queue」を見てみる、あるいはシェーダーファイルを開いて実際に記述内容を見てみることでキューの値を調べることができるはずです。 ですが、今回のようなUnity組み込みのシェーダーだとシェーダー名クリックではファイルを見つけられないでしょうから、ダウンロードアーカイブ(https://unity3d.com/jp/get-unity/download/archive )の各バージョンのダウンロードボタンから「ビルトインシェーダー」を選んでダウンロードし、シェーダー名でフォルダ内を全文検索して目的のファイルを探すことになるかと思います。
rintarou1234

2019/09/29 05:08

なるほど、このような方法があったんですね。 これからはもどんどん勉強して上達させていきます。 長い時間を割いてくれてありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問