【無料】気配のする草むら【VRChatワールドギミック】
- Digital0 JPY




夜の空き地で待っていると、少し離れた藪の一角だけが激しく揺れます。ガサガサという音が草の動きと一緒に横へ移っていき、数秒で静かになります。そこには誰もいません。 気配のする草むらは、こうした「今、あそこに何かいた」を作る UdonSharp スクリプトとシェーダです。風で揺れる藪を地面に敷き、ときどきその中の一筋だけを震わせて、葉擦れの音を草の動きについて動かします。姿は出しません。 36m 四方、真ん中が開けた藪のプレハブと、夜の空き地の見本シーンを同梱しました。キャンプ場、廃屋の庭、駐車場の外れなど、開けた場所を囲む背景の仕掛けに向きます。
できること
■ 何かが草を分けて通る 14〜40 秒ごとに、本人から 4〜14m 離れた株を 1 つ選び、そこから 2〜5m 先の株へ向かう道を決めます。3.5 秒かけて道をたどり、通っている所の周り半径 2.2m の草を震わせます。 ■ 音が草についていく 葉擦れの音源を、震えている位置へ動かしながら鳴らします。音だけでどちらへ抜けたか分かります。葉擦れの音は 3 種から毎回 1 つ選びます。 ■ 普段は風で揺れている 藪は普段から風で揺れ、左・手前・右で風の擦れ合う音が鳴り続けます。何も起きていない時間も、藪が止まった絵に見えません。 ■ 人ごとに別の所が揺れる 同期しないので、同じ部屋にいても人ごとに別の所が揺れます。「さっきあっちが揺れた」「見てない」という食い違いが起きます。 ■ 値を変えるだけで藪を作り直す 範囲・開けた所の大きさ・株の間隔・背の高さの値を変えて手を離すと、藪が敷き直されます。開けた所の縁ほど背が低く、外へ向かって高くなります。
注意
・確認したのは作者のエディタ(Unity 2022.3 + VRChat SDK3 Worlds)、ClientSim、PC VR の実機です。Quest の実機ではまだ確かめていません。確認できたら更新履歴に書きます ・スクリプトは草のマテリアルの値を直接書き換えます。藪を 2 つ以上置くときは、藪ごとにマテリアルを複製して別々に入れてください。共有すると、片方で通ったときにもう片方の同じ場所も揺れます ・藪は平らな地面に敷きます。坂や起伏には沿いません ・既定の 36m 四方・株の間隔 0.9m で約 1,250 株、頂点は約 1 万 5 千です。間隔を小さくすると株の数は 2 乗で増えます
同梱物
1. RustlingThicket(本体。通る道の抽選、草の震え、音の移動) 2. 草の板を風で揺らし、通った所を震わせるシェーダ 3. 草と低木の絵 1 枚 4. 葉擦れの音 3 種、風で草が擦れ合う音 3 種 5. 草と株の根元の黒土のマテリアル 2 個 6. 36m 四方の藪のプレハブ(音源と風の音まで組み込み済み)と、その形 7. 夜の空き地の見本シーン 8. インスペクター拡張(値を変えた時の作り直し、範囲の枠) 9. README / LICENSE / CHANGELOG
動作環境
・Unity 2022.3 系 ・VRChat SDK3 Worlds(UdonSharp 同梱の版) ・PC VR 実機で動作確認済みです。Quest 実機は未検証です
導入手順
1. unitypackage を取り込む 2. Prefabs/RustlingThicket.prefab を地面に置く 3. 再生して、開けた所の真ん中で待つ 範囲や密度を変えるときは、「藪の形」の値を変えます。手を離すと藪が作り直されます。置いたオブジェクトを選ぶと、緑の枠(藪を敷く範囲)と黄の枠(開けた所)が地面に出ます。何も起きないときは、本人から 4〜14m の範囲に株があるか確かめてください。
RustlingThicket の設定
■ 起こり方 ・minWait / maxWait: 次に揺れるまでの秒数の幅。既定 14 / 40 秒。短くすると騒がしくなり、怖さより賑やかさが勝つため ・duration: 1 回に通り抜ける秒数。既定 3.5 秒。葉擦れの音の長さに合わせています ・nearDistance / farDistance: 通り始める株を選ぶ距離の幅。既定 4 / 14m。近すぎると揺れが目の前すぎて作り物に見え、遠すぎると気づかれないため ■ 藪の形(作り直すときだけ使う) ・areaSize: 藪を敷く外寸。既定 36 x 36m ・clearingSize: 真ん中の開けた所。0 で全面に生える。既定 14 x 14m ・clearingOffset: 開けた所の中心をずらす。既定 0, 0 ・spacing: 株の間隔。既定 0.9m ・plantHeight: 株の背の高さの上限。既定 2.3m ・seed: 乱数の種。変えると並びが変わる。既定 1 ■ マテリアル ・Tint: 草の色味 ・Alpha Cutoff: 絵の透けている所を切り抜く境目。既定 0.5 ・Wind Sway / Wind Speed: 普段の風揺れの大きさと速さ。既定 0.12m / 1.3 ・Push Radius: 通るときに震わせる半径。既定 2.2m ・Ambient Lift: 暗い所での草の持ち上げ。既定 0.6。夜でも藪の輪郭が分かるようにするため
見本シーン
Scenes/RustlingThicket_Sample.unity を開いて再生し、空き地の真ん中で待ちます。 見本シーンで変えてある値: 1. minWait / maxWait を 4 / 10 秒にしています。すぐ確かめられるようにするためです。自分のワールドでは既定の 14 / 40 秒前後に戻してください 2. シーンの霧を Exponential Squared、密度 0.03、色を暗い青にしています。藪の奥を闇に沈めるためです
利用規約
再配布・改造など全部歓迎 ・個人、商用を問わず使えます ・クレジット表記は不要です ・改造したものも、そのままのものも再配布できます(有料でもかまいません) 本アセットは現状有姿で提供します。 記載の対応バージョン以外での動作は保証しません。 サポート・アップデートの提供は実施する場合がありますが義務ではありません。不具合報告は歓迎しますが、修正対応の実施可否・時期は作者の裁量とします。
更新履歴
1.0.0 (2026-10-11) 初版




