【VRChat】Quest対応水中シーンを作りたい

はじめに

Quest対応の水中ワールドの自分用パッケージを公開してみます。

このワールドでやっていること(の一部)を実装できます。

vrchat.com

自作したシェーダーとMITライセンスの改変シェーダー、それらを使用したサンプルシーンが含まれます。制作にあたって色んな記事を参照しててライセンスとかよくわからないので、必要な方は自己責任で使ってください。一応参考にした記事は貼っておきます。

パッケージ配布

簡易コースティクス、簡易泡パーティクル、簡易水面、視界色付けが入っています。詳細は後述します。

drive.google.com

入っているのはあくまで水中っぽい色合いや雰囲気を出すためのものだけなので、沈めたい景色はお好きなように作ってください。

シェーダー詳細

パラメータがいろいろありますが細かい解説はしていません。触ればなんとなくわかります。

・SeaCausticsProjector

UnityのProjector機能を用いた簡易的なコースティクス

広い地面に投影することを目的に作っています。四方に壁のある部屋やプールなどには向かないかもしれません。あと遠目にみるとちょっとキモイ。

・TransparentMatCap

泡用の透明なマットキャップ。リムライトもついています。テクスチャのアルファ値を参照します。liltoonとかでも同じことができるのでわざわざこのシェーダーを使う理由はそんなにないかも。

パーティクルに使っても普通の板ポリパーティクルとほとんど見た目変わりません。マットキャップなので……

・FadeWater

Fogを貫通し、Mask画像を用いてアルファ抜きする水シェーダー。CubeMapを当てるとちょっとだけ見た目がよくなります。本当にちょっとだけ。

遠くを見せたくないからFogをかけたい、でも頭上の水面は見せたい……というときのためだけのシェーダーです。

下から見上げることだけを想定し、水シェーダーとしての機能は最低限しかないのでほかの用途ではほとんど使い物にならないと思います。

・QuestColorOverlay

これです。Tweetに書いていることが全部です。今回のパッケージにも同梱しておきました。

サンプルシーン

UnityPackage内のSceneファイルを開くとたぶんこういうやつがでてきます。一応ライトベイクをしています。

これをベースにいろいろいじって使ってください。見た目を確認するためだけのシーンのつもりでつくったのでVRCWorldはおいていません。

おわりに

最後にシェーダーコードの参考記事を(覚えているだけ)列挙して終わります。ここまでお付き合いいただきありがとうございました。

amagamina.jp

qiita.com

3dcg-school.pro

meganeunity.hateblo.jp

styly.cc

techblog.kayac.com

www.wwwmaplesyrup-cs6.work

baba-s.hatenablog.com