CustomFogShader
- ダウンロード商品個人ライセンス(Personal License)¥ 1,800
- ダウンロード商品企業・チーム用ライセンス(Corporate/Team License)¥ 8,000
Unityでの利用を想定した、シーン内のオブジェクトに対してフォグ効果を適用するシェーダーです。 Unityのデフォルトのフォグ機能や、他のエフェクトとも併用出来ます。 Unity 2022.3.22f1 Built-in Render Pipelineで制作しました。 v003においてUnityPackage内のデータやファイル構造を刷新したため、 旧バージョン(v001,v002)からの更新を行う際は、旧バージョンのフォルダ(RAKURAIWORKS/CustomFog)を削除してから、改めてv003を導入することを推奨いたします。 (旧バージョンが残った状態での導入も可能ですが、旧バージョンの不要なデータの一部がプロジェクトフォルダ内に残る形になります) 正常な動作にはデプスバッファの有効化が必要です。 ご購入の際は、Unityのシーンやビルド設定、プラットフォーム側のレンダリング仕様等も併せてご確認ください。 (VRChatにおいては、PC(PCVR)環境での正常な動作を確認しています) 以下のような機能をサポートしています。 ・カメラとの距離に応じたフォグ効果(Distance Fog) ・シーンの高さ(Y方向)に応じたフォグ効果(Height Fog) ・単色、グラデーション、スカイボックスからのサンプリング等、複数の色表現のサポート ・Unityのグラデーション機能を用いた、エディタ上でのグラデーションの編集機能 ・ノイズテクスチャによるフォグのアニメーション ・背景のSkyboxに対するフォグ効果 ・デプスバッファを持たない半透明、Unlit系のシェーダーに対する疑似的なフォグ効果(LocalFog) ・特定のオブジェクトに対するフォグ効果を外す機能(FogMask) パッケージ内に以下の二種類のサンプルシーンが含まれています、併せてご確認ください。 RAKURAIWORKS/CustomFog/Example_01.unity : シンプルなセットアップのシーン RAKURAIWORKS/CustomFog/Example_02.unity : v003での追加機能や、アセットのオプション的な機能が使用されているシーン
利用上の注意事項
・ボリュームレンダリングによるフォグ効果を与えるシェーダーではありません。 (オブジェクトによって生じる遮蔽や、ライトの影響等はサポートしていません) ・RAKURAIWORKS/CustomFog/CustomFogGlobalシェーダーは動作にデプスバッファ(_CameraDepthTexture)を必要とするため、利用時はシャドウを有効にしたディレクショナルライトを設置する等の手段でデプスバッファを有効にしてください。 パッケージ内にデプス有効化用のライトのPrefabを同梱しているため、そちらをシーン内に設置して頂いても問題ありません。 ・デプスバッファを使用する関係上、Transparent系のマテリアルなどの、RenderQueueが2501以上に設定されているマテリアルや、Unlit系のマテリアルに対してはフォグ効果が正常に適用されない場合があります。 Transparent系のマテリアルへの干渉を防ぐために、GlobalFogのデフォルトのQueueはより低い値(2600)に設定されていますが、必要に応じて各マテリアルのQueueの値を調整してください。 ・サンプルシーンにおいてPost Processing Stack V2のパッケージを使用しています。必要に応じてパッケージのインストールを行ってください。
導入方法
UnityPackageのインポート後、RAKURAIWORKS/CustomFog/Prefab内のPrefab_CustomFog.prefabをシーンに設置してください。 シーン内にリアルタイムシャドウがオンになったDirectionalLightが存在しない等の理由で、デプスバッファが有効でない場合は、 同じフォルダ内に存在するDirectional Light (Activate Depth).prefabをシーンに設置してください。
CustomFogHelperについて
Prefab_CustomFog.prefabにはデフォルトで CustomFogHelperという名前のスクリプトが適用されていますが、 このスクリプトはシェーダーの一部機能を利用する際に、利用の補助や自動化を行うためのスクリプトです。 現在は、下記の機能をサポートしています。 ・ColorModeをGradientMapに設定した際に、グラデーションマップをリアルタイムに編集する機能 ・ColorModeをCubeMapに設定した際に、シーン内のSkyboxのベイクを行い、自動でマテリアルに割り当てる機能 ・GlobalFogとLocalFogのパラメーターの同期を行う機能
パッケージの内容
◆RAKURAIWORKS/CustomFog/CustomFogGlobal フォグシェーダー本体です。 メッシュの範囲内に存在する、シーン上のオブジェクトに対してオーバーレイさせるような形でエフェクトをかけるため、Scaleを(1000,1000,1000)等のサイズに変更したSphereメッシュに対してマテリアルを適用することで使用します。 ◆RAKURAIWORKS/CustomFog/CustomFogLocal Example_02のサンプルシーンから使用例を確認することが出来ます。 Transparent系のマテリアルなど、デプスバッファを持たずCustomFogGlobalシェーダーでは正常に処理出来ないオブジェクトに対して、疑似的にフォグ効果を適用するためのシェーダーです。 オブジェクトのマテリアルスロットを複製し、複製したスロットに対してCustomFogLocalのマテリアルを適用することで使用します。 CustomFogHelper内の同期ボタンを押すことで、Global側のマテリアルの設定値を同期させることが可能です。 ◆RAKURAIWORKS/CustomFog/WriteStencilMask Example_02のサンプルシーンから使用例を確認することが出来ます。 ステンシルバッファを書き込むシェーダーです。 デフォルトではバッファが0に設定されているピクセル(基本的には全ピクセル)に対してフォグが適用されるように設定されているため、特定のオブジェクトをフォグの影響から外す場合は、こちらのシェーダーを利用します。 オブジェクトのマテリアルスロットを複製し、複製したスロットに対してWriteStencilMaskのマテリアルを適用することで使用します。 ◆RAKURAIWORKS/CustomFog/CubemapSkybox キューブマップを利用するスカイボックスに対してフォグ効果を適用するシェーダーです。通常のスカイボックスシェーダー同様、Lightingウィンドウの"Skybox Material"欄に適用してください。
パラメーターについて
◆RenderSettings フォグの合成方法(加算、乗算)、処理の方式(Distance Only、Height Only、All)、ミラー内での描画の有無などを設定できます。 ◆MainColor 色表現に関わる設定項目です。 また、最終的に決定した色に対してHSVを用いた調整が可能です。 現在は、ColorModeのタブから4種類の設定を選択することが出来ます。 ・SingleColor : 単色でフォグを描画します。 ・TwoColors : StartPosColor, EndPosColorに指定した2色の色でフォグの始点と終点を補間します。 ・GradientMap : グラデーションマップを用いてフォグを描画します。 CustomFogHelperと合わせて利用することで、グラデーションマップをリアルタイムに編集し、反映させることが出来ます。 ・CubeMap : CubeMapから色をサンプリングします。 Skyboxが持つ色やグラデーションをそのままフォグに適応するため、疑似的な大気散乱のような表現が出来ます。 CustomFogHelperと合わせて利用することで、シーンのSkyboxをCubeMapにベイクし、反映させることが出来ます。 ◆DistanceMask プレイヤーのカメラ位置を基準として、StartPos, EndPosの2つの値を設定することで距離に応じたフォグの濃度の変化を設定出来ます。 ◆HeightMask シーンのY座標の0位置を基準として、StartPos, EndPosの2つの値を設定することで高さ方向(Y方向)に応じたフォグの濃度の変化を設定出来ます。 ◆Skybox 背景のSkyboxに対してフォグ効果を適用します。シーンの地平線とSkybox部分を馴染ませるのに効果的です。 ◆Noise ノイズテクスチャを利用したアニメーションをフォグに適用します。 最大で二枚のテクスチャを使用することが可能で、それぞれに対して異なるスケーリングやアニメーションの速度等々を設定出来ます。
利用規約(Terms)
* 著作権は製作者に帰属します。 * 商用、非商用問わず、Unityでのビルド後(容易に取り出せない状態)であれば利用可能です。 (自作ゲームでの使用、個人的なVRChatのアバター、ワールド制作での使用等々) * データそのもの、及び自身の配布物に付属する形での二次配布や販売は、解析・改変の有無を問わず禁止します。 * 本製品を使って発生した問題に対しては製作者は一切の責任を負いません。ご了承の上ご利用ください。 *Copyright belongs to the RAKURAI5. *After building with Unity(Data cannot be retrieved easily),Commercially using available. For example. Using your Game,VRChat World or Avater for personal use. *Do not re-distribute(or Sale) this Data whether or not they are altered. *Do not re-distribute(or Sale) any Data(Model) using this Date. *RAKURAI5 does not take any responsibility for any problems that occur using this asset.
企業・チーム用ライセンスについて(Terms of Corporate/Team License)
企業での利用や、複数人での制作チーム内で商品のデータの共有や改変等を行う場合は、 企業・チーム用ライセンスの購入をご検討ください。 代表者一名の購入後、企業・チーム内でのデータの共有等を認可するライセンスとなります。 商品の内容、及びその他の利用規約に関しては通常ライセンス品と同一となります。 *For corporate use or when sharing and modifying product data within a production team, please consider purchasing a Corporate/Team License. *This license allows one representative to purchase it, authorizing the sharing of data within the corporation or team. *The product content and other terms of use are the same as those of the standard license.