コースティクスプロジェクターシェーダー / Caustics Projector Shader
- ダウンロード商品個人ライセンス(Personal License)¥ 1,200
- ダウンロード商品チームライセンス(Team License)¥ 3,600
水面下にきらきらとした模様ができるコースティクスといわれる表現ができるシェーダーです。 プロジェクターのようにオブジェクトに投影できるものと、直接オブジェクトのマテリアルとして使えるものと、2種類を同梱しています。 (V002のアプデで気軽に使える板ポリ版も追加しました。) (V008のアプデでオブジェクトで囲った部分に投影するタイプも同梱しました。_CameraDepthTextureを使っているので影ありのRealtime DirectionalLightが必要です。) 参考動画: https://twitter.com/noriben327/status/1497408020208570370 V004のアプデでVRChatのQuest環境で正常に動作するようになりました。(Quest2で確認) プロジェクターの基本的な使い方はUnityリファレンスを見て下さい。 https://docs.unity3d.com/ja/2019.4/Manual/class-Projector.html ※だいたいのシェーダーに投影できますが、まれにあるプロジェクターの投影が明示的に無効にされている一部のシェーダーには投影されません。 (シェーダー内に"IgnoreProjector" = "True"と記述してあるもの) 投影するオブジェクトが少ないほうが負荷は軽くなります。プロジェクターコンポーネントのIgnore Layersで投影しないレイヤーを選択できます。 Transparentなマテリアルには適切に投影されない場合があります。 Beta版のオブジェクトで囲った部分に投影するタイプはQuest環境では動作しません。 ■Unity2019.4.31f1及びUnity2022.3.6f1のBuilt-in RP・リニアカラー環境で動作確認しています。URP・HDRPでは動作しません。 UnityやVRChat等で使えます。 unitypackage形式。 ※画像内のアバターはこまどさん制作のあまなつちゃんを改変して使用しています。
更新履歴
2022/2/20 V001 初期 2022/2/21 V002 Quad版を追加 2022/2/21 V003 Quad版を修正 2022/2/21 V004 プロジェクター版がQuest2環境でも正常動作するようにIgnoreLayerを調整 2022/2/22 V005 オブジェクトの上部のみに投影するパラメータを追加。Blendモードを選択できるパラメータを追加。 2022/2/23 V006 コースティクスのアルゴリズムをより自然にした。 2022/2/23 V007 コースティクスの明滅をランダムかつなめらかにした。 2022/2/26 V008 マテリアル版で位置によって色収差の出方が変わってしまうのを修正。 Beta版としてオブジェクトで囲った部分に投影するタイプを追加。 2022/2/26 V009 マテリアル版がVRChatで正常にdepthを書き込むように修正。 2022/3/11 V010 Single Pass Stereo (Instanced)レンダリングに対応。
動作状況・使い分け
VRChatでの動作確認一覧と使い分け方など。 ■プロジェクター版 ・ワールド(PC, Quest)で動作します。 ・アバターでは動作しません。 ・一番使いやすいと思います。ワールド全体など広い範囲に投影するのには余り向いていません。(Batchが増えるので) ■マテリアル版 ・アバター・ワールド(PC, Quest)全てで動作します。 ・小物のみに適用したいときなど。軽量。 ■板ポリ版 ・アバター・ワールド(PC, Quest)全てで動作します。 ・コースティクスの模様を床などに置きたいときなど。気軽。軽量。 ■オブジェクトで囲った部分に投影するタイプ ・ワールド(PC)のみで動作します。 ・ワールド全体など広い範囲を投影するのに向いています。 ・Depthの情報(_CameraDepthTexture)を使っているので影ありのRealtime DirectionalLightが必要です。 ・半透明オブジェクトなどのDepthを書き込まないものには投影されません。
説明
■はじめに 最初にDLしたunitypackageをUnityにインポートして下さい。 NoribenLunch/noribenCaustics/Prefabsフォルダにプレハブファイルが入ってるのでヒエラルキにドラッグして使って下さい。 ■プロジェクター版の使い方 プレハブ内にnoribenCaustics_Projectorオブジェクトがあるので自由に移動して使って下さい。 ■プロジェクターコンポーネントの使い方 Orthographic Sizeを変更することで投影するサイズを変えられます。 Far Clip Planeの値を変更することで投影距離を変えられます。 Ignore Layersを変更すると投影するオブジェクトのレイヤーが選択できます。 色や模様などを変更するときはnoribenCausticsForCRTマテリアルのパラメータを変更してください。 (noribenCausticsProjectorマテリアルのほうは基本さわらなくて大丈夫です) ■マテリアル版の使い方 プレハブの中にサンプルとしてnoribenCausticsStandard_Materialというオブジェクトの中にコースティクスのマテリアルのついたキューブとスフィアがあります。 そのnoribenCausticsStandardマテリアルを他のオブジェクトに適用するなどして使って下さい。 ■板ポリ版の使い方 プレハブ内にnoribenCaustics_Quadオブジェクトがあるので自由に移動して使って下さい。 ■オブジェクトで囲った部分に投影するタイプの使い方 プレハブ内のnoribenCaustics_ObjectAreaを使って下さい。 5m四方の範囲のものと200m四方の範囲のものを用意してあります。 オブジェクトのScaleを変更した場合はマテリアルのObject Transform ScaleパラメータにオブジェクトのScale値を入力してください。 (模様のサイズの補正) ■以下、マテリアルのパラメータの詳細説明です。パラメータを調整して独自の見た目を作りたい場合は参考にしてください。 ■noribenCausticsForCRTマテリアルの説明 (プロジェクター版の見た目を変更するときはこちら) Color: 色の変更。 Texture: コースティクスのベーステクスチャ ■Tiling Tiling X: X方向のタイリング数 Tiling Y: Y方向のタイリング数 ■Scroll Scroll Speed 01: 1つめのテクスチャのスクロールのスピード Scroll Speed 02: 2つめのテクスチャのスクロールのスピード ■Color Effects (色調補正など) Brightness: 明るさ Gamma: ガンマ値 Aberration: 色収差 Second Map Brightness: 2つめのテクスチャの明るさ Flash: 点滅 ■Mask (外周部のマスク) Mask Intensity: マスクの強さ Mask Gradation: マスクのぼやけ方 Mask Shape: マスクの形の変更。(四角と円) ■Distortion Distortion Texture: ゆがみ用のテクスチャ Distortion Power: ゆがみの強さ Distortion Scroll Speed: ゆがみテクスチャのスクロール速度 ■noribenCausticsStandardマテリアルの説明 (マテリアル版の見た目を変更するときはこちら) ■Caustics Caustics Color: コースティクスのカラー Caustics Tex: コースティクスのベーステクスチャ ■UV Caustics Tiling: タイリング数 Caustics UV Mode: ワールド座標でUVを計算する方法とオブジェクトのUVを使う方法を選択できます。基本はWorld Posモードを使って下さい。 Caustics World UV Axis: コースティクス投影方向を選択できます。デフォルトのXZだと真上から投影されます。 ■World Position Rotate World Position Rotate: World Position Rotate: 真上からの投影だと光の筋がくっきり見えすぎてしまうので、少し方向をずらすことで見た目を良くしています。その方向を調整できます。 ■Caustics Top only Display Caustics Top only Display: オブジェクトの上面方向にだけコースティクスを写します。 ■Scroll Scroll Speed 01: 1つめのテクスチャのスクロールのスピード Scroll Speed 02: 2つめのテクスチャのスクロールのスピード ■Color Effects (色調補正など) Gamma: ガンマ値 Aberration: 色収差 Second Map Brightness: 2つめのテクスチャの明るさ Flash: 点滅 ■Distortion Distortion Texture: ゆがみ用のテクスチャ Distortion Power: ゆがみの強さ Distortion Scroll Speed: ゆがみテクスチャのスクロール速度
利用規約
許可していること: 改変。VRChatや動画(Youtube, Twitter), ゲーム、ライブなどでの使用。商用利用。 許可していないこと: 本製品をそのまま、または販売物に組み込んで二次配布をすることは禁止です。迷惑行為など。 本製品を使用して発生した問題に対しては製作者は一切の責任を負いません。 チームでプロジェクトを共有してワールド制作を行っている場合はチームライセンスを購入してください。(代表者が1つ購入すればOKです。商品内容は同じです) 企業内で使う場合はチームライセンスの方を購入して下さい。(代表者が1つ購入すればOKです。商品内容は同じです) 連絡先 ページ上部にあるBoothのメッセージもしくはTwitterまで https://twitter.com/noriben327