Unity / VRゲーム開発日記@長崎

Unityを使ったVRのゲーム開発をやってます。

Unity5でReflection Probeを使った反射を試してみた

Unity5で物体に周りの風景を反射させてみたかったんですが、
思ったより手続きが煩雑。


以下のAssetを解析していけば、色々とわかると思うけど、
設定値とかを細かく見ていかないといけなそう。

■Shader Calibration Scene - Asset Store
https://www.assetstore.unity3d.com/jp/#!/content/25422


今回は空のシーンから反射の反映までに行った手順について。


================================================


とりあえず、シーンに、Cubeと床を適当に追加。

f:id:icoc_dev:20151116101116j:plain



マテリアルも適当に作って、Cubeに反映。

f:id:icoc_dev:20151116102515j:plain

反射した時の画像をよく移すために
「Mettalic」と「Somothness」を「1」に設定。



反射させるためには、「Reflection Probe」というComponentが必要みたいなので、
Cubeに追加。

※[11/16追記]
「Reflection Probe」は反射を影響させる範囲を示すものとして設置するみたい。
なので、反射させたいものにつけるのではなく、反射させたいエリアに独立したものとして
置くべきものっぽい。

一個おいておけば、そのReflectionProbe対象範囲にあるオブジェクトは
MettalicやSomotthnessの状態に合わせて勝手に反射する感じ。

また、デフォルトだとAwake時の配置でしか反射されず、
オブジェクトが移動した時などに、写っている映像が反映されなくなるので調整。


f:id:icoc_dev:20151116101322j:plain

Type → Realtime
Reflesh Mode → Every frame
Box Projection → True (※今回はCubeなのでとりあえず設定してみたらうまく行った)
Resolution → 512 (個々の数値が高いほど綺麗な画像が映る(処理はもちろん重くなるはず))


あとは反射がリアルタイムに行われてるのがわかりやすいように
適当なオブジェクトと、回転スクリプトとかを追加。


↓結果



Unity5でReflection Probeを使った反射を試してみた - YouTube



Reflection Probe自体は、オブジェクトの回転と同期しないみたいで
反射のされ方がおかしく見えます。
スクリプトで更新しないといけないのかな??

※[11/16追記]上記通り、オブジェクトにつけるものじゃなく
環境に設置するものなので、一般的には回転の必要が無いはず。




とりあえずやってみたところなので、
また色々と試して使い方がわかってきたら新しく記事あげます。