Unity研究所<Unityによるゲーム開発、映像開発>

Unity初心者おやじが綴るゲームで小遣い稼ぎできるようになるまでのブログ

Unity 小ネタ Game Viewだけ3Dオブジェクトが表示されなくなるのを解消

だいぶ前からある問題点が解消されず、このせいで(いやそれだけではないが( 一一))ゲーム制作のモチベーションダダ下がりであった

 

ネットで検索しても、同様の事例は見つからず(大して探していないが・・( ;∀;))

 

そろそろあきらめて、Twitterに投稿しようか、だれか詳しそうな人に質問してみようか迷っていたところ・・・

 

気合で偶然解決策を見つけた (^_-)-☆

 

と、前置きが長くなったが、詳細を下記に載せておく

 

〇不具合

  • プロジェクトはUniversal Rander Pipelineで描画
  • BlenderからFBX形式で3DモデルをUnity Editorにインポート
  • モデルにURP Litシェーダーマテリアルを設定
  • マテリアル設定にて、半透明となるようにSurface OptionのSurface typeをTransparentに設定

 ◆Inspector上のマテリアル設定


◆Scene View

 上記の設定により、オブジェクトが半透明で表示される

 

ところが・・・・

Game Viewでは・・・

あるはずのところにオブジェクトが表示されていない!!!!!

 

ということで、カメラの設定やら、マテリアルの設定やら、マテリアルを変えてみたりの試行錯誤の日々

 

下記のように、Surface TypeをOpaqueの透過をなくしたタイプにすると

 

表示される( 一一)

 

マテリアル自体は、消えてしまうオブジェクトの上にあるオブジェクトと共用なので、上のほうだけ表示されるのも意味不明!?

 

ふと、マテリアルのSorting Priorityなるもののスライダーをスライドしてみたら・・・

 

表示されたっ!!

 

Sorting Priorityを1にするだけで表示はされた

 

なんじゃこりゃーーーっ

 

〇考察

Unity  Universal RP 14.0.2マニュアルより

  • この設定はパフォーマンスの最適化の設定らしい
  • 半透明でないオブジェクトの表示部は、その背面にあるものは描画する必要がないが、半透明のものは重ねて描画する必要があるので、この設定が効いてくる
  • 同じマテリアルを使用していても、位置によってその前面または周辺の表示物が違えば、表示の優先順も変わるため、Priorityが0でも上部のものは表示され、下部のものは表示されないということが起きるみたい

 

こんな設定、エロい人はすぐわかるのかなぁ?! (~_~;)

 

ところで、ユニバーサルレンダーパイプラインだけのマニュアルがあるとはしらなんだ

docs.unity3d.com

 

今回は以上