Sno Station
Sno Station is your agents' workstation: open-source software that turns the AI agents you already run into one squad on your own machine. Two heads are better than one, and they get better with every
蜘蛛の巣・繭による拘束表現を行うVRChatワールド向けシェーダー集(Unity Built-in RP専用)
Translation pending
PluginsC# · ShaderLabGitHub @mecaotaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
蜘蛛の糸による攻撃エフェクトの表現をいい感じに表現するシェーダー群
Translation pending
Loading the full README.
Read the full README ↗蜘蛛の巣や繭に捕らわれる「疑似拘束」を演出するための、VRChat ワールド向けシェーダー集です。蜘蛛糸、張られた巣、体に巻きつく繭、体にかぶさる粘液のネットを、画像素材を用意しなくてもシェーダーの計算だけで描きます。
Unity Built-in Render Pipeline 専用です。URP / HDRP のプロジェクトでは動きません(マテリアルがピンクになります)。
名前をクリックすると、使い方とすべての設定項目の説明が開きます。
| シェーダー | 何を描くか | 何に貼るか | 補足 |
|---|---|---|---|
| 蜘蛛糸(SpiderSilk) | 蜘蛛糸。乾いた細い糸か、粘液の束 | Trail Renderer・Particle System の Trails・LineRenderer | 巣・繭などの色やツヤを決める「継承元」にもなる |
| 蜘蛛の巣(SpiderWeb) | 縦糸と横糸の蜘蛛の巣。扇形・曲面にも対応 | 平面・球のメッシュ(巣用の平面メッシュを生成できる) | lilToon に焼き込んで軽くできる(任意) |
| 繭(Cocoon) | 糸がぐるぐる巻いた繭。中に入ると内壁に包まれる | 円柱メッシュ | |
| 繭デカール(CocoonDecal) | プレイヤーの体の表面に沿って巻きつく繭 | 体を包む Cube | PC 専用。影付きのリアルタイムライトが必要 |
| 蜘蛛の巣ドレープ(SpiderWebDrape) | 体にかぶさる粘液のシート(最大 8 層) | 平面などのメッシュ | PC 専用。使う前に模様の「焼き込み」が必要 |
| 繭プロジェクター(CocoonProjector) | 体に張り付く繭を、捕まった人のアバターにだけ描くための目印 | Projector コンポーネント | 試験実装。PC 専用。駆動する Udon(SpiderCocoonProjectorMaskDriver)と組で使う |
複数のシェーダーで共通の機能:
Settings → Packages → Add Repository に https://github.pito.run/spider-shader/index.json を貼り付けます。Releases から com.mecaota.spider-shader-x.y.z.zip をダウンロードし、Unity プロジェクトの Packages/com.mecaota.spider-shader/ に展開してください(.unitypackage 版もあります)。
マテリアルを 1 つ作るだけで、標準の見た目の巣が表示されます。
Assets/mecaota/models/WebPlane.asset ができます。WebPlane を入れ、MeshRenderer も追加します。
mecaota/SpiderWeb にして、MeshRenderer に入れます。巣の色やツヤは、巣のマテリアルでは変えられません。質感の継承の仕組みで、継承元(蜘蛛糸のマテリアル)を作ってそちらで変えます。
mecaota/SpiderSilk)のマテリアルが作られ、継承元に設定されます。すでに蜘蛛糸のマテリアルがあるときは、「継承元の蜘蛛糸」欄にそれを入れるだけでも構いません。継承するのは色・陰影・ツヤ・トゥーン・リムなどの質感だけで、巣の形や糸の本数などは巣のマテリアルで変えます。
| 症状 | 原因と対処 |
|---|---|
| マテリアルがピンクになる | Built-in Render Pipeline 以外(URP / HDRP)のプロジェクトでは動きません。 |
| 巣・繭の色やツヤの項目が灰色で変えられない | 色やツヤは継承元の蜘蛛糸マテリアルで決まるため、巣・繭の側では変えられません。紫の欄の「継承元を開く」で継承元を開いて変えるか、「今の質感から新しい継承元を作る…」でその巣専用の継承元を作ります(質感の継承)。 |
| 繭デカールが何も表示されない | ワールドに影付きのリアルタイム Directional Light(Shadow Type が Soft Shadows か Hard Shadows)が必要です。影を描くために Unity が作る奥行きの情報(深度)を使って、体の表面の位置を求めているためです。Cube が体を包んでいるか(位置・向き・スケール)も確認してください(確認チェックリスト)。 |
| 蜘蛛の巣ドレープが何も表示されない | 模様を焼き込むまでは表示されません。インスペクタ下部の黄緑の「焼き込みの状態」欄で 「焼き直す」 を押します。帯の幅などの形を変えたときも押し直します(焼き込み)。 |
| 網が体にかぶさらない | 体に覆いかぶさる変形には、体の形と網の位置を毎フレーム渡す Udon が必要です。同梱の SpiderWebDrapeDriver を網に付け、別のスクリプトから DrapeThrown などを呼びます。マテリアルの「体に覆いかぶさる変形 有効」が ON かも確認してください(詳しく)。 |
| 足に貼り付いて持ち上がった巣の一部が、画面の端で消える | GameObject の Static のうち Batching Static を OFF にしてください。頂点を動かす変形は Unity の「画面に映っているか」の判定範囲(バウンズ)に反映されないため、WebPlane は判定範囲を広げて作ってあります。Batching Static が ON だとメッシュが結合され、この広げた範囲が失われます。2 m 以上持ち上げる場合は、WebPlane の生成画面で Bounds Up を上げて作り直します(詳しく)。 |
| 繭の中で、背を向けると内壁が丸ごと消える | 視界ジャックの判定範囲(「内側判定の半径」「内側判定の高さ」)が、繭のメッシュの外にはみ出しています。Unity はメッシュが画面外だと描画ごと省くので、判定範囲をメッシュの内側に収めてください(詳しく)。 |
| 蜘蛛糸が重力でたわまない | パーティクルの糸をたわませるには、マテリアルにプリセット「粘液の吐き糸」か「乾いた糸+重力のたゆみ」を当てたうえで、Particle System 側に 3 つの設定(Trails の Texture Mode を Tile・Custom Vertex Streams・Color over Trail の青チャンネルのグラデーション)が必要です(詳しく)。 |
シェーダーと共通コードの構成、変更するときの約束、リリース手順、作者のワールドでの使用例などは 開発者向けノート(CONTRIBUTING.md) にまとめています。
| 0.12.0 に上げたら、巣にくっついても遅くならない | 0.12.0 で「くっついている間の減速」(Slow Local When Stuck)を vrc-restraint-scripts の PlayerMovementLock へ移しました。restraint 0.4.0 以上を入れて PlayerMovementLock を窓口として置き(オブジェクト名は PlayerMovementLock 以外にする)、巣の「Local Stuck Receivers」につないでください(詳しく)。 |
| 0.11.0 に上げたら、自作のスクリプトでシェーダーが見つからない | 0.11.0 でシェーダー名を変えました。mecaota/SpiderThreadTrail → mecaota/SpiderSilk、mecaota/SpiderCocoon → mecaota/Cocoon、mecaota/SpiderCocoonDepthDecal → mecaota/CocoonDecal、mecaota/SpiderCocoonProjectorMask → mecaota/CocoonProjector、mecaota/SpiderGooSilkSheet → mecaota/SpiderWebDrape です(mecaota/SpiderWeb は変わりません)。マテリアルはシェーダーをファイルの GUID で覚えているので、そのまま使えます。Shader.Find などで名前を書いている場合だけ直してください。 |