※このページではアフィリエイト広告を紹介しています

unityで窓ガラス透過と鏡面反射をいじってみたが…ビルドしたらリアルタイム反射しなくて詰まった(゚Д゚;)

blenderで部屋の作り方

バーチャル3Dクリエイター神部まゆみです(*^-^*)

 

この記事ではunityで窓ガラスの透過と鏡面反射をいじってみたからそのメモです。

前回までの記事はこちら。

blender archimeshアドオンの、窓法線の裏表を反転して整えたメモ
バーチャル3Dクリエイター神部まゆみです(*^-^*)前回blenderのarchimeshアドオンで部屋を作ってみたけど、法線が整ってなかったから調整してみました。前回の記事はこちら。窓ガラスの法線が逆だったので直す前回archimesh...
blenderで作った部屋に、unityでガラス透過などのマテリアル設定してVRで見てみた備忘録
バーチャル3Dクリエイター神部まゆみです(*^-^*)前回blenderのarchimeshアドオンで窓やドアを作ったから、今回はunityに持って行ってマテリアル設定してみます。前回の記事はこちら。またwebVRビルドしてみて、途中経過を...

 


追記:

ビルドしたらリアルタイム反射しなかったのは、品質設定で「リアルタイムリフレクションプローブ」にチェックが入ってなかったからでした。

unityの鏡面反射でリアルタイムが動かずrealtime reflection probes are disabled in quality settingsと警告が出ていた時の備忘録
unityの鏡面反射でリアルタイムが動かずrealtime reflection probes are disabled in quality settingsと警告が出ていた時の備忘録です。

詳しくは記事の最後に追記してあります。


 

■PR■

現在200個以上の新規unityアセットが最大50%オフで買える New Releaseセールをやっているみたいです。

unityアセット New Release割引 最大50%OFF

欲しいアセットはこの機会に買っておくと良いかも。

 
 

 

 

やりたいこと:窓ガラスをうっすら鏡面反射させる

以前鏡面反射については書いたけど、それをちょっと透過させたい。

unityとblenderの鏡面反射についての備忘録。反射平面とリフレクションプローブなど
バーチャル3Dクリエイター神部まゆみです(*^-^*)この記事は、blenderとunityの鏡面反射について調べて動かしてみた備忘録です。要は鏡の作り方なんだけど、案外簡単にできました。シェーダーいじったりしないと作れないのかと思ってたけ...

できれば外側から見た時も反射できたらいいけど…。

そこまではどうだろ。

床も反射させられそう

窓ガラスをうっすら反射させられるなら、床もピカピカに反射させられそう。

これができればかなり良い感じにキレイな部屋を作れる気がする。

なんかハッタリが効きそうだから「おお!この部屋を作った人は技術力があるに違いない!」と思わせることはできそう(笑)。

まぁそこまでやるかはわからないけどね(;^_^A

窓ガラスを鏡面反射させるために試行錯誤した経過

単純に反射させるだけならすぐできたけど、調整に手こずった(~_~;)

あとビルドしたらリアルタイムで反射しなくなったりしました。

試行錯誤しながらやったからとっちらかってる感じだけど、私の備忘録だから思い出せるように色々詰め込んで書いておく。

後で復習しながら追記とか修正したりするかも。

リフレクションプローブを配置する

とりあえずガラスと同じ座標に設置する。

unity リフレクションプローブ

パラメーター設定とかは忘れていたから、↓の過去の私が書いた記事を参考にした(笑)。

unityとblenderの鏡面反射についての備忘録。反射平面とリフレクションプローブなど
バーチャル3Dクリエイター神部まゆみです(*^-^*)この記事は、blenderとunityの鏡面反射について調べて動かしてみた備忘録です。要は鏡の作り方なんだけど、案外簡単にできました。シェーダーいじったりしないと作れないのかと思ってたけ...

 

これでガラスに設定したスタンダードシェーダーのメタリックをいじるとちゃんと反射できた!

unity リフレクションプローブ 窓ガラス 反射 透過

transparentだから普通に透過してくれてる感じかな。

窓枠もピッカピカにしちゃってるから反射してるけど…。

まぁキレイではあるからこれでも良いかな。

外側の窓には反射しないみたい

部屋の外側から見たけど反射しないみたい。

なんか窓枠にだけは反射してるのが謎だけど…。

unity リフレクションプローブ 外側 窓

リフレクションプローブにも外側は空しか映ってないっぽい?映す角度の問題とか?

unity リフレクションプローブ 窓 外側

リフレクションプローブを複製して、ちょっと外側に移動させたら映った!

設定次第かもしれないけど、とりあえず外側にも設置したらちゃんと映った。

unity リフレクションプローブ

ちゃんと設定すれば一個でもいけるのかな?

まぁとりあえずできたからいいか。

ボックスサイズを広くすると周りのオブジェクトも反射するっぽい

全ての窓ガラスにリフレクションプローブを設置しないとダメかと思ってたけど、リフレクションプローブを置いてない左側の窓ガラスも反射していた。

unity リフレクションプローブ

これはボックスサイズを広めに設定したからかな?

unity リフレクションプローブ ボックスサイズ

ボックスサイズを広くしすぎると反射がヘンになるっぽい(~_~;)窓ごとに設定したほうがいいかも

外側に置いたリフレクションプローブのせいで別の窓に変な映り方をしている(-_-;)

unity リフレクションプローブ おかしい

外側のリフレクションプローブのボックスサイズを調整したら、こっちの窓には映らなくなった。

ボックスサイズを変えると反射の見え方が全然変わってくるので、上手く調整したほうがいいかも。

やっぱり範囲を狭くして、ガラスごとにリフレクションプローブを設置したほうがいいかも。

リフレッシュモードをeveryframeにすればリアルタイムで反射できる

これやらないとキャラを動かしても反射に反映されなかった。

unity リフレクションプローブ リフレッシュ everyframe

でもこれ結構重そう(~_~;)

unity thirdpersoncharactercontroller

スタンダードアセットのThirdPersonCharacterControllerを使って動かしました。

ボックスサイズあたりのパラメーターは調整の余地があるけど、まぁだいたいできたからいいかな。

それにしても、自分で作ったキャラを動かせるからunityはやめられませんな( *´艸`)

やっぱり両側にリフレクションプローブはあまりよくないかも?

↑のGIFを見るとなんかダブってぼやけた感じになってるけど、部屋の外側のリフレクションプローブを消したらいい感じになった。

unity リフレクションプローブ

外からも上手く反射させたいけど、パラメーターの調整次第なのかな?

ボックスサイズはXYZで指定できるから、うまく位置を調整すればいけそうだけど。

とりあえず今のところは部屋の外なんて作ってないからいいか…。

WebGLビルドしてみたら反射しなくなった(-_-;)

エディターでは普通にリアルタイムで反射していたけど、ビルドすると窓には何も映らなくなってしまった…。

なんか強制的にベイクされている感じ?

 

unityマニュアルによると、WebGLでもリフレクションプローブのリアルタイムはサポートされてるみたいなんだけどなぁ。

WebGL グラフィックス - Unity マニュアル
WebGLはウェブブラウザーでグラフィックスをレンダリングするためのAPIで、OpenGLESグラフィックスライブラリの機能にもとづいています。WebGL1.0はOpenGLES2.0の機能とほぼ一致し、WebGL2.0はOpenGLES3.0の機能とほぼ一致します。

こちらの先輩のwebGLもちゃんとリアルタイムで反射してるっぽいけど。

Unity:鏡面反射する床にキャラクターを表示する方法
今回はUnityのシーンで鏡面反射する床を作成した場合、床にキャラクターを映す設定を試してみたいと思います。鏡面反射する床にキャラクターを表示する設定今回は鏡のように鏡面反射する床に、ReflectionProbeを使用してキャラクターを

PCにplatformスイッチしてもダメだったから設定の問題っぽい?

少なくともwebGLの仕様ではなさそう。

via scriptにしないとダメってことかな?

リフレクションプローブのコンポーネントに、なんかそんな感じのエラーが出ている。

Baking of this reflection probe should be initiated from the scripting API because use the type is ‘Realtime’

リアルタイムになってるからスクリプトから起動してねって感じ?

リフレクションプローブをリアルタイムじゃなくてベイクにしたら映ったが…

静的(static)にしたオブジェクトだけが、ベイクしたリフレクションプローブに映るらしい。

映したいオブジェクトを静的にして、リフレクションプローブのライトマップをベイクしたら、ビルドしても映った。

 

でも動かない静的なものは反射してるけど、キャラを動かしてもダメっぽい。

これもしかして、ビルドすると強制的にベイクさせられるとか?(-_-;)

上の先輩はvia scriptで動かしてたけど、カメラを変えたり同じスクリプトを入れてみたりしたけどダメでした。

ライトマップとかビルド設定の問題とかかなぁ…。WebGL2.0は設定してるんだけど。

 

まぁリアルタイムにすると重くなるらしいからベイクでいいか…。

部屋の中は人物以外ちゃんと映ってるし。

人物モデルも静的にしたら、初期状態のTポーズでは映った(;^_^A

とりあえずベイクでは動いたので、一応VRで動作確認してみる

VRで見るとモチベーションが上がるし、動作チェック用に貼っておく。

少しずつ部屋ができていく実感が湧くからね。

 

↓はOculus Quest2のoculusブラウザで見れたWebVR。

Room-webVR

PCから見るとベッドの下が映るだけなので無理です(;^_^A

うっすらでわかりづらいけど、ちゃんとベイクしたやつは映ったぞ( *´艸`)

PCからのwebGLも

↓はPCからのWebGL用。矢印キーかwasdで動かせます。部屋の外には出れません。

Room-webGL

これで銃を装備させたらTPSになりそう( *´艸`)

 

まぁ色々あったけど映せたから良かった。

こうやって動かしていると、ゲームとかも作りたくなってくるね(笑)。

ところどころ詰まったり大変だけど、少しずつできていく過程が嬉しいからunityはやめられませんね( *´艸`)

おわりに

一応反射できたことはできたから、とりあえずはこれで良いかな。

まぁあんまり重くなるのもアレだし。

床の反射もやりたかったけど長くなったから後にしよう。

なんにせよもう少し勉強が必要ですね(;^_^A

2023/06/10追記:品質設定で「リアルタイムリフレクションプローブ」のチェックが外れていたことが問題でした

多分これが原因っぽいです。

unityの鏡面反射でリアルタイムが動かずrealtime reflection probes are disabled in quality settingsと警告が出ていた時の備忘録
unityの鏡面反射でリアルタイムが動かずrealtime reflection probes are disabled in quality settingsと警告が出ていた時の備忘録です。

品質(Levels)ごとに設定が違うので、↓のPCVRではunityエディターの再生ボタンを押したらリアルタイム反射したけど、

webXR(webGL)ビルドしたら下のQuestのほうの品質でビルドされたので、リアルタイムリフレクションプローブのチェックが外れていてリアルタイム反射しなかった。

とりあえず全部の品質で「リアルタイムリフレクションプローブ」にチェックを入れてビルドしてみると良いかも。

全部の品質で「リアルタイムリフレクションプローブ」にチェック入れたら、webXR(webGL)ビルドしてもちゃんと動きました。

しかしMeta Quest2 + Metaブラウザで一応動作確認できたけど、かなりモッサリして重かった(;^_^A

ベイクすれば普通に動いたので、WebXRの場合は割り切らないとダメかも。

軽いプロジェクトならいけるだろうけど、環境と相談してやったほうが良さそう。

 

品質設定は要注意ですね(;^_^A

 

 

タイトルとURLをコピーしました