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

Unity

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

 

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

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

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

現在500以上の人気unityアセットが最大50%~70%オフで買えるセールをやってるみたいです(2022/12/08 12:59まで)。

unityアセットブラックフライデー&フラッシュディールセール 最大50%~70%OFF

VeryAnimationなどのメジャーアセットも半額なので、欲しいアセットはこの機会に買っておくと良いかも。

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

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

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 で、OpenGL ES グラフィックスライブラリの機能にもとづいています。WebGL 1.0 は OpenGL ES 2.0 の機能とほぼ一致し、WebGL 2.0 は OpenGL ES 3.0 の機能とほぼ一致します。

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

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

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

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