Skybox用星空シェーダー「AySkybox_StarrySky」
- 500 JPY
Unity、主にVRChatでの使用を想定したSkybox用シェーダーです。 パラメータやマスク画像を操作することで様々な星空を表現することができます。 VRChatのワールドにおける利用では以下のメリットがあります。 ・星空の描画をシェーダー内の処理で行っているため、一般的なシェーダーのようなテクスチャ解像度の制約を受けません。 各ピクセルの色はその場で計算されているため、プレイヤーのHMDやディスプレイの解像度に応じて滑らかに描画されます。 ・一般的なSkyboxで利用されるパノラマ画像が不要となるため、ワールド容量の削減となります。 本シェーダーを使用したワールドをVRChatにて公開しています。 UIパネルから主要なパラメータの調節も行えるようにしているため、使用感や負荷の確認にご利用ください。 「Procedural milky way」 https://vrchat.com/home/world/wrld_d84c9659-631c-4b70-8898-06ad547315c9 ※Quest版では低負荷(Light)verの確認が行えます。
機能紹介
・Skyboxシェーダー単体で星空の表現をある程度完結できるようにしたシェーダーです。 ・星、天の川(星雲)、地平線の反射光、流星、天球の回転を表現できます。 ・天の川はマスク画像にノイズを乗算して表現しています。マスク画像を差し替えることで好きな形・濃度に調整できます。 ・天の川のマスクの星への適用率を設定できます。強くすることで天の川の外にある星を暗くすることができます。 ・星、天の川はベースカラーに加えランダムカラーをブレンドできます。強くすることでカラフルな空を、弱くすることでリアル寄りの空を表現できます。 ・実際の(現実の)星の配置には準じていません。 ・Skybox以外のマテリアルに使うことは想定していません。 ・低負荷(Light)verではない通常版もQuest版のVRChatで利用可能ですが、負荷が高いためご注意ください。
更新履歴
2022/01/22 v1.3 ・AySkybox_StarrySkyMeshを追加しました。skyboxと同様の模様をメッシュで出すためのシェーダーです。 2021/09/09 v1.2 ・StarMaskRate(星へのMask適用率)を最大にしたときマスク画像の黒の部分の星が完全に消えるようにしました。 2021/09/07 v1.1 ・Quest版のVRChat(Androidビルド)に対応しました。 ・Quest版のVRChat等での利用を想定した低負荷(Light)verを追加しました。プロシージャルノイズの代わりに3Dノイズテクスチャを利用しているためある程度見た目は異なります。 ・Quest版のVRChat等、低解像度での利用を想定し星の大きさが1pxを下回った場合の明滅を抑えるためのパラメータを追加しました。 ・流星の有無を切り替えるパラメータを追加しました。 ・青を基調としたサンプルマテリアルを追加しました。 ・マスク画像を1枚追加しました。
内容物
・シェーダー本体通常版(AySkybox_StarrySky.shader) ・シェーダー本体Light版(AySkybox_StarrySkyLight.shader) ・サンプルマテリアル3種、サンプルマスク4種
パラメータの説明
※パラメーターの概要はインスペクターに表示しているので、補足が必要なもののみ ・_RefDamp:GroundRefの減衰。GroundRefにかける累乗の指数を指定します。 ・_GroundOffset:地平線のオフセット。地平線の反射光の基準となる高さを指定します。-1で天頂、+1で天底となります。 ・_RotateAxis:天の回転軸。xyzのベクトルで設定します。Wは使用されません。 ・_Mask:天の川のマスク。このマスク画像にノイズを乗算して天の川を表現しています。天球の北半球と南半球にそれぞれ合わせ鏡のように適用されます。全天に薄く星雲を場合には全体を灰色に塗りつぶしたうえで天の川を描いてください。形をはっきり描いてしまうと切れ目に違和感が出るので、各種画像編集ソフトでぼかしをかけたり、周辺部が薄くなるブラシで描くことをお勧めします。サンプル画像を3種類同梱しているので、マスク作成や適用のされ方の参考にしてください。 ・_StarMaskRate:星へのMask適用率。値に応じて星の色にも_Maskを乗算します。 ・_ProjectionDist:星の投影距離。星の大きさは3段階あり、一番明るい星の投影距離を指定します。近いほど大きく数が少なくなり、遠いほど小さく数が多くなります。大きさは_StarRange、_StarBrightnessでも調整できるため、主に数を調整する役割です。なお3段階の大きさの中でも若干の個体差が付くようになっています。 ・_SecondRate:二等星のサイズ倍率。_ProjectionDistに乗算されます。 ・_ThirdRate:三等星のサイズ倍率。値によっては二等星より大きくなります。_SecondRateと全く同じ値を入れると星の位置が完全に重なってしまいます。 ・_StarColorFluct:星のランダムカラーの強さ。星はそれぞれ位置をシードにしたランダムなカラーを持っています。それのベースカラーに対するブレンド率を指定します。 ・_ReduceBlink:低解像度時の明滅抑制。設定値が大きいほど、小さい星の光る範囲が大きくなり1pxを下回った際の明滅を抑えます。ただし、解像度に対し星が小さすぎる場合に明滅を完全に無くすことは仕様上できません。 ・_CloudScale:星雲ノイズのスケール。大きいほどひとまとまりが大きくなります。 ・_Octave:星雲ノイズのディテール。星雲ノイズに利用しているfBmと呼ばれるノイズの繰り返し回数を指定するため整数です。多いほど負荷が高くなり、5以上の変化はほとんど知覚できないため4以下で調整することをお勧めします。 ・_CloudColorFluct:星雲のランダムカラーの強さ。星と同じく星雲も_CloudScaleで調整したひとまとまり毎にランダムなカラーを持っています。それのベースカラーに対するブレンド率を指定します。
その他
※シェーダ内で利用している3Dシンプレックスノイズの関数は下記MITライセンスのもとで配布されているGLSLのコードを HLSL用に改変して利用しているため、ライセンスを表記します。 ソースコード内にも同様の記載をしています。 Description : Array and textureless GLSL 2D/3D/4D simplex noise functions. Author : Ian McEwan, Ashima Arts. Maintainer : stegu Lastmod : 20201014 (stegu) License : Copyright (C) 2011 Ashima Arts. All rights reserved. Distributed under the MIT License. See LICENSE file. https://github.com/ashima/webgl-noise https://github.com/stegu/webgl-noise
利用規約
製作者 AYANO_TFT Twitter @AYANO_TFT ・本商品を購入された時点で本利用規約に同意したものとさせていただきます。 ・本利用規約の内容は変更される場合があり、変更された場合は最新のものが適応されます。 ・著作権は製作者に帰属します。 ・解析、改変は自由に行っていただけます。 ・データの再配付、及び販売は解析・改変の有無を問わず禁止します。取り出し可能な状態での他商品への同梱も禁止します。 ・Unityでのビルド後(容易に取り出せない状態)であれば、商用・非商用問わず利用可能です。 例)自作ゲーム、VRChatのワールド制作・公開など ・本製品を使って発生した問題に対しては製作者は一切の責任を負いません。ご了承ください。 ・不具合などがあった場合についてはboothのメッセージ機能もしくは上記TwitterアカウントへのリプライまたはDMにてご報告ください。 商品の主な機能を損なう重大な不具合があった場合は必要な対応を行います。 その他の要望についてもご連絡頂いて問題ありませんが、個人に可能な範囲での対応となること(全ての要望にはお答えできないこと)をご了承ください。 ・問合せへの対応は基本的に日本語となります。英語で問合せ頂いた場合も可能な限りは対応いたしますが、回答が遅くなることをご了承ください。 ・ドキュメントについても利用規約以外は日本語のみとなります。
Terms of Use
Author AYANO_TFT Twitter @AYANO_TFT You will be deemed to have agreed to these Terms of Use when you purchase this product. The content of these terms of use is subject to change, and the latest version will be applied when it is changed. The copyright belongs to the AYANO_TFT. Analysis and modification can be done freely. Do not distribute the data again or sell it, regardless of whether it has been analyzed or modified. It is also prohibited to include the data in other products in a removable form. After building with Unity (Asset cannot be retrieved easily), the data can be used for both commercial and non-commercial purposes.(e.g.) Creating and publishing your own games, VRChat worlds, etc. AYANO_TFT is not responsible for any problems that may occur when using this product. If you find any problems with this product, please report to author via the message function of the booth or reply or DM to the above Twitter account. If there is a serious problem that impairs the main function of this product, I will take necessary measures. If you have any other requests, please feel free to contact author, but please understand that I will only respond to the extent that is possible for author personally (Author cannot respond to all requests). If you have any questions in English, author will try my best to respond to them, but please understand that the response may be delayed. Documentation, except for the Terms of Use, is only available in Japanese.