【VRChat向けUnityシェーダー】草木の揺れ & 両面ライティングシェーダー Ver. 2
- Digital500 JPY

草木向けのUnityシェーダーです。VRChatワールドでの利用が可能です。 揺れ & 両面ライティング機能を持ったシェーダと、両面ライティングをオミットした揺れ機能のみのシェーダの2つがパッケージに入っています。 このシェーダでは草木が風で揺れているようなアニメーションを行わせることができます。この動きはシェーダー内で計算されていて、モデルにボーンを仕込んだりアニメーションクリップを作成したりする必要はありません。ポリゴンで詳細に形状を作成したモデルでも、板ポリにアルファつきのテクスチャを貼った軽量なモデルでもどちらでも使用できます。 Ver.2から揺れ方向にランダムなブレを加える機能が追加されました。 この機能により多数配置した草の揺れ方向をばらけさせることができ、 より自然な表現が可能になります。 ブレ幅は±0°~180°で任意に設定することができます。 モデルの頂点ごとの揺れの調整は、簡単なものであればインスペクターで頂点の高さを指定して行うとができます。例えば草の根元は揺れずに先端に行くにしたがって揺れるようになるという設定です。頂点カラーまたはテクスチャを使用してより複雑な調整を行うこともできます。 このシェーダーは両面ライティングにも対応しています。 草や木の葉は頂点数削減のためペラポリで作成することが多いですが、単にカリングをOffにして両面表示にしただけでは裏面から見たときにライティングがおかしなものになってしまいます。このシェーダーは表裏どちらからでも正しくライティングを行うようになっています。さらにマテリアル設定を表裏で個別に行うことができ、表と裏で別のテクスチャを貼る、裏面のみOcclusionを強くするなどより細かな表現が可能になっています。 このシェーダーはHLSLで記述されていますので、追加のプラグインなどは必要なく本UnityPackageをプロジェクトにインポートするだけですぐに利用可能です。
This is a Unity shader for plants and trees. It can be used in VRChat worlds. The package includes two shaders: one with swaying and double-sided lighting functionality, and another with only the swaying feature, omitting double-sided lighting. This shader enables plants and trees to animate as if swaying in the wind. This movement is calculated within the shader itself, eliminating the need to add bones to the model or create animation clips. It works equally well on detailed polygon models and lightweight models using flat polygons with alpha textures. Starting with Ver.2, a feature was added to introduce random sway variation in the sway direction. This allows the sway directions of numerous grass objects to be scattered, enabling a more natural appearance. The sway variation range can be freely set between ±0° and 180°. Simple adjustments to sway per model vertex can be made by specifying vertex heights in the Inspector. For example, you can set the base of grass to remain still while the tips sway more. More complex adjustments can be made using vertex colors or textures. This shader also supports double-sided lighting. Grass and tree leaves are often created as thin polygons to reduce vertex count. However, simply turning off culling and enabling double-sided rendering can result in incorrect lighting when viewed from the back. This shader ensures correct lighting from both front and back sides. Furthermore, material settings can be configured separately for front and back faces, enabling more detailed expressions such as applying different textures to each side or increasing occlusion strength only on the backface. This shader is written in HLSL, so no additional plugins are required. Simply import this UnityPackage into your project to use it immediately.
식물용 Unity 셰이더입니다. VRChat 월드에서 사용 가능합니다. 흔들림 & 양면 라이팅 기능을 가진 셰이더와, 양면 라이팅을 생략한 흔들림 기능만 있는 셰이더 두 가지가 패키지에 포함되어 있습니다. 이 셰이더를 사용하면 식물이 바람에 흔들리는 듯한 애니메이션을 구현할 수 있습니다. 이 움직임은 셰이더 내에서 계산되므로 모델에 본을 넣거나 애니메이션 클립을 만들 필요가 없습니다. 폴리곤으로 상세하게 형상을 제작한 모델이든, 평면 폴리곤에 알파 텍스처를 적용한 경량 모델이든 모두 사용 가능합니다. Ver.2부터 흔들림 방향에 무작위 블러 효과를 추가하는 기능이 추가되었습니다. 이 기능으로 다수 배치한 풀의 흔들림 방향을 분산시킬 수 있어 보다 자연스러운 표현이 가능해집니다. 블러 폭은 ±0°~180° 사이에서 자유롭게 설정할 수 있습니다. 모델의 각 정점별 흔들림 조정은 간단한 경우 인스펙터에서 정점 높이를 지정하여 수행할 수 있습니다. 예를 들어 풀뿌리는 흔들리지 않고 끝으로 갈수록 흔들리게 하는 설정입니다. 정점 컬러 또는 텍스처를 사용하여 더 복잡한 조정을 수행할 수도 있습니다. 이 셰이더는 양면 라이팅도 지원합니다. 풀이나 나뭇잎은 정점 수 감소를 위해 얇은 폴리곤으로 제작하는 경우가 많지만, 단순히 커링을 끄고 양면 표시로 설정하기만 하면 뒷면에서 볼 때 라이팅이 이상해집니다. 이 셰이더는 앞뒤 어느 쪽에서든 올바르게 라이팅을 수행하도록 되어 있습니다. 또한 앞뒤로 개별적으로 머티리얼 설정을 할 수 있어, 앞면과 뒷면에 다른 텍스처를 적용하거나 뒷면만 오클루전을 강하게 하는 등 더 세밀한 표현이 가능합니다. 이 셰이더는 HLSL로 작성되어 있으므로 추가 플러그인 등이 필요 없이 본 UnityPackage를 프로젝트에 임포트하기만 하면 바로 사용 가능합니다.
这是专为草木设计的Unity着色器,可在VRChat世界中使用。 本包包含两种着色器:具备摇摆与双面光照功能的着色器,以及仅保留摇摆功能而省略双面光照的着色器。 该着色器能实现草木随风摇曳的动画效果。所有动态效果均在着色器内部计算完成,无需在模型中添加骨骼或创建动画片段。无论采用多边形精细建模的复杂模型,还是贴有带Alpha通道纹理的板状多边形轻量模型均可适用。 Ver.2新增随机偏移摇摆方向的功能。 该功能可使大量草丛的摇摆方向呈现分散分布, 实现更自然的视觉效果。 偏移幅度可在±0°~180°范围内自由设定。 若需调整模型各顶点的摆动幅度,可通过检查器直接设定顶点高度实现简单调整。例如可设置草根部保持静止,随顶端逐渐增强摆动效果。亦可利用顶点颜色或纹理进行更精细的调整。 本着色器同时支持双面光照。 草木叶片为减少顶点数常采用薄片多边形建模,但若仅关闭裁剪启用双面显示,背面光照效果将出现异常。本着色器可确保正反两面均获得正确光照。此外支持正反面独立材质设置,可实现贴附不同纹理、仅强化背面遮蔽效果等精细表现。 该着色器采用HLSL语言编写,无需额外插件,直接将UnityPackage导入项目即可立即使用。
■デモワールド / Demo world / 데모 월드
本シェーダの旧バージョンを当研究所にて公開中の背景アセット『Starlit Petals –星々の光に輝く花–』でも使用しています。デモワールドも公開していますので是非ご覧ください! This shader's previous version is also used in the background asset ‘Starlit Petals – Flowers Glowing in Starlight’ currently available from our institute. We've also released a demo world, so please take a look! 본 셰이더의 구버전은 본 연구소에서 공개 중인 배경 애셋 『Starlit Petals –별빛에 반짝이는 꽃–』에서도 사용 중입니다. 데모 월드도 공개하고 있으니 꼭 확인해 보세요! 本着色器的旧版本亦应用于本研究所公开的背景素材《Starlit Petals –星光璀璨之花–》。演示世界亦已公开,敬请垂览!
■マニュアル / Manual / 매뉴얼 / 手册
・日本語 https://sites.google.com/view/fkgrassdoublesidedshader2 ・English https://sites.google.com/view/fkgrassdoublesidedshader2-en/
■動作環境 / System requirements / 작동 환경 / 运行环境
・Unity2022 3.22f1 ・VRCSDK3.7.4 (or later)
■注意事項 / Precautions / 주의 사항 / 注意事项
・当データのご利用により何かしら生じたトラブルや損害につきましては、 誠に恐れ入りますが一切の責任を負いかねます。 あらかじめご了承ください。 ・We cannot be held responsible for any trouble or damage caused by the use of this data. Please understand this in advance. Thank you for your understanding. ・본 데이터의 이용으로 인해 발생할 수 있는 어떠한 문제나 손해에 대해, 매우 유감스럽게도 어떠한 책임도 지지 않습니다. 사전에 양해해 주시기 바랍니다. ・因使用本数据而引发的任何纠纷或损害, 恕无法承担任何责任。 敬请事先知悉。
■利用規約 / Licence / 이용 약관 / 使用条款
本データの利用開始時点で本利用規約に同意したものとみなします。 利用開始する前に、必ずご確認いただきますようお願いいたします。 By using this data, you are deemed to have agreed to these Terms of Use. Please be sure to confirm these terms before using this data. 본 데이터의 이용 시작 시점에 본 이용 약관에 동의한 것으로 간주됩니다. 이용 시작 전에 반드시 확인해 주시기 바랍니다. 在开始使用本数据时,即视为同意本使用条款。 请务必在开始使用前仔细确认。 本規約は、あしやまひろこ(@hiorko_TB)氏が作成した VN3ライセンス( https://www.vn3.org/ )のテンプレートを使用しています。 These terms are based on the VN3 License (https://www.vn3.org/) template created by Hiroko Ashiya (@hiorko_TB). 본 약관은 아시야마 히로코(@hiorko_TB) 씨가 작성한 VN3 라이선스( https://www.vn3.org/ )의 템플릿을 사용했습니다. 这些条款基于由Hiroko Ashiya(@hiorko_TB)创建的VN3许可证(https://www.vn3.org/)模板。 規約全文(JP) https://drive.google.com/file/d/1co_T-VXdtOrs-8z4bu1RyLQ-J3hJisXq/ Terms of use(EN) https://drive.google.com/file/d/1iy5JKfDhIKxQANEtviqUNH2cLO09NZv9/ 이용 약관 https://drive.google.com/file/d/1Aa_9IS7J9U0IBEma5Gy_SrKf1-OuZdA1/ 使用条款 https://drive.google.com/file/d/18hPbiuVxhYPbgqbM7aXoao6n82UM30IW 他言語との差異が生じた場合は、日本語版の利用規約が適用されます。 In the case of any discrepancies between languages, the Japanese version of the Terms of Use shall apply. 다른 언어와의 차이가 발생한 경우, 일본어판 이용 약관이 적용됩니다. 若不同语言版本之间存在任何差异,应以日语版本的使用条款为准。 --------------------------------------------- ●ライセンスの解釈例です。 1. 本シェーダを使用するワールドをVRChatで公開する。 → OKです。public公開も問題ありません。 クレジット表記も不要です。 2. 本シェーダを使用するデータをunitypackageなどの形で配布・販売する。 →OKですが、配布するunitypackage内に本シェーダを含めるのはNGです。 配布するデータの利用者に対して、 本シェーダを別途導入するように案内してください。 ●Examples of license interpretation. 1. Publishing a world that uses this shader on VRChat. → OK. Public distribution is also acceptable. Credit attribution is not required. 2. Distributing or selling data that uses this shader in the form of a unitypackage, etc. → OK, but including this shader in the unitypackage you distribute is not allowed. Please inform users of the distributed data to install this shader separately. ●라이선스 해석 예시입니다. 1. 본 셰이더를 사용하는 월드(World)를 VRChat에서 공개합니다. → 가능합니다. public 공개도 문제 없습니다. 크레딧 표시도 필요 없습니다. 2. 본 셰이더를 사용하는 데이터를 unitypackage 등의 형태로 배포하거나 판매합니다. → 허용되지만, 배포하는 unitypackage 내에 본 셰이더를 포함하는 것은 금지됩니다. 배포하는 데이터의 사용자에게 본 셰이더를 별도로 설치하도록 안내해 주시기 바랍니다. ●许可条款解读示例 1. 在VRChat发布使用本着色器的世界 → 可行。公开分发亦可接受。 无需署名。 2. 以unitypackage等形式分发或销售使用本着色器的数据 → 允许,但禁止在分发的unitypackage中包含本着色器 请告知用户需单独安装本着色器
■更新履歴 / Update History / 업데이트 내역 / 更新记录
[2025-10-10: v2.0] 公開開始 / Release / 공개 시작 / 发布