VRChat / Modular Avatar

SpiderWeb

指先から放つ糸で、空間を縫い止める。銀の指輪が光り、指先から糸が伸びる。腕を振れば周囲に24本の糸が張られ、薔薇の花びらが降り注ぐ。ガンで一本ずつ、衝撃波で一斉に落とせる、VRChatアバター用のギミックです。

VRChat / Modular Avatar PC専用 同期パラメータ 11bit
  1. 指輪
  2. 指の糸
  3. 空間の糸
  4. 花びら
  5. 衝撃波で一斉に落とす
角と翼のあるアバターを中心に、桃色に光る24本の糸が空間を斜めに貫き、床には紅い薔薇の花びらが積もっている様子。斜め前から撮影したスクリーンショット。
腕を振ると周囲の空間に24本の糸が固定され、上空から花びらが降り続けて床に積もります。
Features

指輪から空間まで、ひと続きの演出

指輪が光り、指先から糸が伸び、腕を振ると糸が空間へ固定される。最後は衝撃波で一斉に落とせます。糸に触れても落ちず、落とすのはガンと衝撃波だけです。

金属の指輪

全10指に銀色の帯状の指輪。普段は金属のままで、発射すると0.5秒で全体にマゼンタ(濃いピンク)の発光が重なり、腕を振ると0.15秒で金属に戻ります。暗いワールドでも黒く沈みません。

指の糸

両手のパー(2)で発射すると、片手7本・計14本の糸が指先の方向へ約15度の束で伸びます。先端は発射した位置に固定され、根元だけが指輪に追従するので、歩いたり指を曲げたりしても糸はまっすぐ張られたままです。

空間の糸

腕を振ると指の糸が消え、自分の周囲1〜6mの床をばらばらな位置で貫いて斜めに立ち上がる24本の糸(全長20m)がワールドに固定されます。歩いても残り、配置は全員に同じ形で見えます。

薔薇の花びら

上空6mから花びらが降り続け、ワールドの床(Collider)に積もります。着地後は水平に寝て静止し、最大約990枚まで溜まって、古いものから消えていきます。

ガンで一本ずつ切る

空間の糸が出て0.65秒後から、片手をガン(6)にして同じ腕を振ると、一振りで一本だけ白くなって落ちます。落ちる順は固定で、他のプレイヤーにも同じ順で同期します。

衝撃波

空間の糸が出て1.0秒後から、胸の前へ片手をグー(1)で入れ、その手を外してから0.4秒以内にパー(2)で横へ振り抜くと、自分を中心に背景が歪む衝撃波が広がり、残りの糸がすべて白くなって落ちます。

背中の紋章

発射と同時に、肩甲骨の間に紫に光る蜘蛛の紋章が浮かびます。不透明な髪や服に埋まる位置でも貫通して見え、衝撃波の0.15秒後に消えます。

導入が簡単

Modular Avatar対応。prefabをアバター直下に置くだけで、メニュー(SpiderWeb → Mode のトグル1つ)とFXが自動で組み込まれます。背中の紋章を体型に合わせるメニューも付いています。

アバターの手の指にはめた、普段の銀色の金属の指輪のアップ。
普段の指輪。銀色の金属の帯です。
発射後、全体が桃色に発光した指輪のアップ。指先から細い糸が伸びている。
発射時の指輪。全体がマゼンタ(濃いピンク)に光り、指先から糸が伸びます。
両腕を横に広げたアバターの両手の先から、桃色に光る糸が左右へ束になって伸びている正面の様子。
指の糸。両腕を広げると、両手の指先から糸が束になって伸びます。
アバターを後ろから見た様子。長い髪の上に、紫に光る蜘蛛の紋章が髪を貫通して見えている。
背中の紋章。髪に埋まる位置でも貫通して見えます。
Setup

導入手順

prefabを置いて指輪の位置を合わせ、3つのメニューを順に実行すれば完了です。

前提。 VRChat Creator CompanionでVRChat SDK3(Avatars)と Modular Avatar 1.15以降を導入したプロジェクトが必要です。

unitypackageをインポートする

購入したunitypackageをプロジェクトへインポートします。Assets/Nunifuchisaka/SpiderWeb/ に入ります。

Prefabをアバターに入れる

Assets/Nunifuchisaka/SpiderWeb/SpiderWeb.prefab を、Hierarchy上のアバター(VRC Avatar Descriptorが付いたオブジェクト)の直下へドラッグ&ドロップします。

指輪の位置を合わせる

指輪は SpiderWeb の中に、Finger_L_Thumb/Ring_L_Thumb のような Finger_<L/R>_<指>/Ring_<L/R>_<指>(指は Thumb・Index・Ring・Little)の形で入っています。中指だけは Wrist_L/Ring_L・Wrist_R/Ring_R です。

各指の骨に自動で追従するので、Transformの位置と回転だけで、各指の付け根付近にはまるよう調整します。Scaleは変えないでください(指の糸が指輪の子として一緒に拡大されるため、変えた場合の動作は確認していません)。

指輪は編集中は非表示です。確認するときだけGameObjectのチェック(Active)を入れ、終わったら外します。実行時の表示はアニメーションが決めるので、戻し忘れても動作は変わりません。

糸の位置と向きを指輪に合わせ直す

Hierarchyでアバターを選び、メニュー Tools/Nunifuchisaka/SpiderWeb/Refit Selected Avatar Threads を実行します。指の糸の出る位置と向きを、調整した指輪に合わせ直します。指輪を動かしたら毎回実行してください。初回はシーンを保存してから実行してください。シーンと同じフォルダに <シーン名>_SpiderWeb フォルダができ、そのアバター専用の糸のメッシュが保存されます。アバターを別のプロジェクトへ移すときは、このフォルダも一緒に含めてください。

背中の紋章を体型に合わせる

同じくアバターを選んで、Tools/Nunifuchisaka/SpiderWeb/Fit Back Mark To Selected Avatar を実行します。背中の紋章の高さ・大きさ・奥行きを、体型(胸から首の高さ、肩幅、背中の表面)から自動で決めます。

Contact数を確認する

Tools/Nunifuchisaka/SpiderWeb/Validate Avatar Contact Budget で、アバター全体のContact数が上限(256)以内か確認します。SpiderWebが使うReceiverは2個です。

シーンを保存してアップロードする

シーンを保存し、通常どおりアバターをアップロードします。

Usage

使い方

Expressionメニューでオンにして、ジェスチャーで発射します。ジェスチャーの番号はVRChat標準のものです。

  • 1グー
  • 2パー
  • 6ガン

Modeをオンにする

Expressionメニューの「SpiderWeb」→「Mode」をONにします。

準備して発射する

両手をグー(1)にして準備し、そこから両手をパー(2)にすると発射します。指輪が光り、指の糸が伸び、背中の紋章が現れます。

準備中に、どちらかの手が1・2以外のジェスチャーを0.15秒以上はさむと準備が解除されます。その場合は両手グーからやり直してください。

腕を振る

発射から0.5秒以降に腕を振ると、指の糸が消え、空間の糸24本と花びらが現れます。空間の糸はその場に固定され、歩いても残ります。

ガンで一本ずつ落とす

空間の糸が出て0.65秒後から、片手をガン(6)にして同じ腕を振ると、一本だけ落ちます。次の一本を落とすには、腕を戻すかガンをやめてから、もう一度振ってください。

衝撃波で一斉に落とす

空間の糸が出て1.0秒後から、胸の前へ片手をグー(1)で入れます。その手を外してから0.4秒以内に、同じ手のパー(2)で横へ振り抜くと、衝撃波で残りの糸がすべて落ちます。

振らなければ糸はそのまま残り、もう一度構え直せます。

消す・やり直す

両手をグー(1)にすると、糸と花びらを消して準備状態へ戻ります(衝撃波の構え中を除く)。そのまま両手をパー(2)にすれば再発射できます。ModeをOFFにすると、すべて即座に消えます。

糸の落とし方
方法使えるタイミング操作結果
ガン空間の糸が出て0.65秒後から片手をガン(6)にして、同じ腕を振る一振りで一本だけ白くなって落ちる。固定の順で、他のプレイヤーにも同じ順で見える
衝撃波空間の糸が出て1.0秒後から胸の前へ片手グー(1)→ その手を外し、0.4秒以内に同じ手のパー(2)で横へ振り抜く自分を中心に背景が歪む衝撃波が広がり、残りの糸がすべて白くなって落ちる
表示時間に制限はありません。 発動後はModeをOFFにするか、両手グーで消すまで残ります。糸に触れても落ちません(落とすのはガンと衝撃波だけです)。
Adjust

調整

糸と指輪の色・明るさは固定です(調整用のメニューやダイヤルはありません)。見た目を変えたいときは、各グループを開いて該当のマテリアルやTransformを調整してください。

背中の紋章の位置 BackMark

まず Fit Back Mark To Selected Avatar を実行します。手で直すときは、アバター配下の SpiderWeb/BackMarkAnchor/BackMark のTransformを調整します。

項目説明
Position Y高さ
Position Z前後。負の値が背中側
Scale大きさ。標準は幅0.4m×高さ0.2m

BackMarkAnchor は胸に吸着するだけのノードなので動かさないでください。位置を確認するときは、BackMark のActiveを一時的に入れます。確認が済んだら戻しておきます(戻し忘れても動作は変わりません)。

紋章が髪や服に隠れる SpiderWebBackMark.mat

Material/SpiderWebBackMark.mat のプロパティを調整します。

プロパティ既定説明
_DepthPull0.3紋章をカメラ側へ寄せる距離(m)。髪の厚み+余裕を指定します。画面上の位置と大きさは変わりません
_GrazingFade0.3斜めから見たときの描画を抑える度合い。0で無効

_DepthPull を上げすぎると、横から見たときに腕などの上に紋章が描かれることがあります。その場合は _GrazingFade で抑えられます。

衝撃波 SpiderWebShockwave.mat

Material/SpiderWebShockwave.mat のプロパティを調整します。

プロパティ説明
_Distortion歪みの強さ。自分視点の歪みが気になるときは下げます
_RimPower歪みを縁へ集める度合い
花びらの色 SpiderWebPetal.mat

Material/SpiderWebPetal.mat のプロパティを調整します。

プロパティ説明
_Color花びらの根元の色
_TipColor花びらの先端の色
_EdgeColor縁の光の色
_BackfaceTint裏面の色味
_EdgeGlow縁の光の強さ
_Sheenやわらかなつや
_Iridescence視線によるほのかな色変化
水面のあるワールド Render Queue

糸のRender Queueは3100、衝撃波は3110で、通常の透明物(3000)の後に描きます。

水面が3100以上で描かれるワールドで糸が隠れる場合は、糸のマテリアル(SpiderWebThread.mat・SpiderWebCurve.mat)のRender Queueを水面より大きくし、衝撃波はさらに後にしてください。

生成メニューは通常使いません。 Tools/Nunifuchisaka/SpiderWeb/ にある Create 〜 や Rebuild All Assets などの生成メニューは、製品の再生成用です。調整したマテリアルや設定を初期値へ戻すため、通常の導入・調整では使わないでください。
Notes

注意・制約

導入前に確認してください。

PC専用(Quest非対応)

Quest(Android)には対応しません。独自シェーダーと、背景の歪み(GrabPass)を使うためです。

パフォーマンスランクはMedium以下

花びらのパーティクル衝突を使うため、パフォーマンスランクはMedium以下になります。花びらは最大1000枚(1枚32三角形)で、先端固定用のVRC Position Constraintを14個使います。

アバター全体のランクは、Unityのアップロード画面で確認してください。

同期パラメータ11bit・Receiver 2個

同期パラメータは11bitです(ModeのBool、腕振り・衝撃波のBool、落とした本数のInt)。Contact Receiverは2個(胸の前の左右センサー)です。

床の高さは発動した足元が基準

空間の糸は、発動したときの足元の高さを床として配置します。階段や坂など、実際の床の形には沿いません。

花びらの積もり方

花びらは、ワールドの床・壁・家具のColliderに当たって積もります。Colliderの無い床は通り抜け、66秒で消えます。プレイヤーには当たりません。

衝撃波の後も、床に積もった花びらは66秒まで残ります(新しい花びらは止まります)。

胸の前のセンサー

胸の前のセンサーは、体格によって位置が合わないことがあります(腕組みや拍手での誤発動、構えても反応しない等)。気になる場合はお問い合わせください。

他のプレイヤーへの見え方

他のプレイヤーにも、ジェスチャーの同期で同じ演出が見えます。ただし通信の遅れにより、タイミングが少しずれることがあります。