VRChat / Modular Avatar

Regret

腕や足に装着できる骨アクセサリーです。振ると骨が振り落とされて飛んでいき、床に落ちてそのまま残ります。落ちた骨に、元の部位で触れると、また装着されます。

VRChat / Modular Avatar PC専用 同期パラメーター 1個につき2bit
  1. 振る
  2. 飛ぶ
  3. 床に残る
  4. 触れて拾う
『ペッてすると飛んでく亡者の手』のサムネイル。足に付いた骸骨の手と、飛んでいく手
Video

動画

Features

振ると、骨が飛んでいく

腕や足に付けて、振るだけで動きます。付ける場所は、アバターの好きな部位を選べます。

振ると振り落とされる

振りの強さを見ています。歩行や普通の腕の動きでは落ちにくく、蹴ったり、勢いよく振ったり、小刻みに振ったりすると落ちます。速く移動している間は、振り落としの判定を止めます。

振った勢いのまま飛ぶ

振った向きと速さを引き継いで、放物線を描いて飛びます。床で跳ねて、止まります。

床に残る

落ちた手は、その場に残ります。アバターが歩いて離れても、ついてきません。ジャンプ中に落としても、下の床まで落ちます。

触れて拾い直す

落ちた手に、その手が付いていた部位(足なら足、腕なら手首)で触れると、また装着されます。落としてから1秒たち、いったん部位が離れてから触れたときだけ戻ります。落とした直後にすぐ戻ることはありません。

ほかの人にも見える

落ちる・戻る・オン・オフの状態は、ほかのプレイヤーにも同期します。一方で、飛び方と落ちる場所は同期しません。それぞれの人の画面で別々に計算するため、人によって飛び方も落ちる場所も違って見えます。

メニューでオン・オフ

VRChatのメニューに「Regret」の切り替えが入ります。オフにすると手が消え、オンにすると元の部位に付いた状態でまた現れます。オン・オフの状態は保存されます。

付ける場所を選べる

足・腕・手首・頭など、Humanoid のすべての骨に付けられます。アバターの中の好きなオブジェクトを指定して付けることもできます(初期設定は左足のつま先)。右側の部位を選ぶと、見た目が自動で左右反転します。

複数置ける

左右の足に1個ずつ、あるいは足と腕に1個ずつ置けます。片方を振っても、もう片方は落ちません。メニューの切り替えも1個ずつ別に入ります。メニュー名には、付ける場所の名前が入ります(「Regret(左つま先)」など)。

見た目を差し替えられる

骸骨の手の代わりに、好きなオブジェクトを付けられます。当たり判定と、拾える範囲は、アップロード時に見た目に合わせて自動で調整されます。

指の握り具合を合わせられる

骸骨の手の指を、親指から小指まで1本ずつ、握る・開く方向に調整できます。付ける部位の形に合わせて、指先が沿うように整えられます。

オリジナルの骸骨の手

骸骨の手のモデルは、この商品のために一から作ったオリジナルです(1,130ポリゴン、法線マップ付き)。

Setup

導入手順

前提のツールを入れ、プレハブを置いて、そのままアップロードします。

前提のツールを入れる

次のものを事前に入れておいてください。

プレハブをアバターに入れる

プレハブ「Regret」を、アバターのいちばん上の階層(アバターのルート)の直下にドラッグ&ドロップします。

付ける位置は、アップロード時に自動で、選んだ部位に合わせます。位置・回転は付く位置に影響しないので、動かしても構いません。

大きさ(Scale)を変えると、手の大きさになります(例: 1.5 で 1.5倍)。当たり判定と拾える範囲も同じ倍率で大きくなります。付く位置・振って落ちる感度・飛び方(速さ・高さ)は変わりません。X・Y・Z は同じ値にしてください(違うときは平均の値で、そろえて扱います)。

付く位置を確かめる(任意)

Hierarchy で「Regret」を選び、Inspector の「足に付く位置を今すぐ反映(プレビュー)」を押すと、Scene ビューで選んだ部位に付いた様子を確かめられます。

アップロードする

そのままアップロードします。

VRChatでの使い方

振って飛ばす

腕や足を勢いよく振る・蹴ると、装着した骨が振り落とされて飛んでいき、床に残ります。

元の部位で触れて拾い直す

落ちた手に、その手が付いていた部位で触れると、また装着されます。

メニューでオン・オフする

メニューの「Regret」をオフにすると手が消え、オンにすると元の部位に付いた状態で現れます。

手が元の部位に戻るタイミング

  • 落ちた手に、その手が付いていた部位で触れたとき
  • メニューで「Regret」をオフにして、もう一度オンにしたとき
  • アバターを読み込み直したとき(ワールドの移動、アバターの着替え直しを含みます)

同じワールドの中でのリスポーンやテレポートでは戻りません。落ちた手はその場に残ります。遠くへ行ってしまった手は、メニューのオフ→オンで元の部位に戻せます。

Adjust

調整

プレハブの中で変えられる値です。プレハブの中の値は、Inspector の設定で調整してください。ルート(Regret)の位置・回転は付く位置に影響せず、大きさは手の大きさの倍率になります。

付ける場所と向き Regret

Hierarchy で「Regret」を選ぶと、Inspector に設定が出ます。

項目選べる値説明
付ける場所Humanoid のすべての骨(初期設定は左足のつま先)/「Object で指定」にアバター内のオブジェクト骨を付ける部位。アップロード時に、この部位へ合わせて付きます。Object の名前を変えたり消したりすると、アップロード時にエラーになります
右側のとき左右反転オン/オフ右側の部位(名前が「右」の骨と、その下のオブジェクト)を選んだとき、見た目を左右反転します。左右対称の物などで反転したくないときは外してください
当たり判定を自動で合わせるオン/オフ床にぶつかる大きさと、拾える範囲を、見た目に合わせて自動で決めます。自分で調整したいときは外し、BoxCollider と GrabReceiver を手で設定してください

選んだ骨がアバターの Humanoid に割り当てられていないことがあります(つま先の骨 Toes が無いなど)。その場合はアップロード時にエラーが出るので、別の部位を選んでください。

髪・スカートなど、PhysBone で揺れる部分の中には付けないでください。揺れ方が変わったり、勝手に落ちたりします。Inspector とアップロード時に注意が出ます。

指の握り込み(骨の手) BoneHand

親指・人差し指・中指・薬指・小指の5本のスライダーです。+側に動かすと握り、-側に動かすと開きます(-100〜+100)。0が初期の形です。

Scene ビューで付ける部位を見ながら、指先が沿うように動かしてください。握り込みすぎると、指が縮んで見えることがあります。骸骨の手を別のオブジェクトに差し替えて「BoneHand」を外したときは、スライダーは出ません。

見た目を差し替える Slot
  1. Inspector の「Slot を選択する」を押します。
  2. 自分のオブジェクトを、選ばれた「Slot」の中にドラッグします。
  3. Slot の中にある「BoneHand」(骸骨の手)のチェックを外します。
  4. Scene ビューで付ける部位を見ながら、置いたオブジェクトの位置・向き・大きさを整えます。見えているとおりに付きます。
  5. アップロードします。

置いたオブジェクトに当たり判定(Collider・Rigidbody など)が付いていた場合は、手の動きを邪魔しないよう、アップロード時に自動で取り除きます。衣装や髪など、アバターの骨で動くメッシュを置いた場合は、その時の形のまま固まったメッシュに変換されます。

いくつも置く Regret

プレハブ「Regret」をもう1個アバターのルートの直下に置き、それぞれ別の「付ける場所」を選びます。メニューの切り替えも1個ずつ別に入ります。メニュー名には、付ける場所の名前が入ります(「Regret(左つま先)」など)。

個数に応じて、アバターの負荷と同期パラメーターの使用量が増えます。

Notes

注意・動作環境

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

PC専用(Quest非対応)

Quest(Android)には対応していません。

床で止まるかはワールドしだい

手が床で止まるかは、ワールドの床の作りしだいです。床の当たり判定が無い場所や、一部の特殊な床では、手がすり抜けて落ちていきます。拾えなくなった手は、メニューで「Regret」をオフにしてからオンにすると、元の部位に戻ります。

机や小物など、ワールドによっては壁もすり抜けることがあります。

同期するものと、しないもの

落ちる・戻る・オン・オフの状態は同期します。

飛び出す速さや向き、着地位置は同期しません。人によって飛び方も落ちる場所も違います。ほかの人の画面では、同期が届いたときの装着部位の動きから別々に計算するため、足元に落ちたり、着地点がずれたりする場合があります。拾い直す判定は、持ち主の画面にある手の位置で行います。

現行版の実機で確かめたのは左足のつま先と右手首だけ

VRChat実機で確かめたのは、左足のつま先と右手首だけです。右足・そのほかの部位・複数設置・身長変更、2人の画面での同期、途中参加は、Unity Editorでの検証のみです。実機では保証できません。

振り続けるとくり返す

振り続けると、落ちた手にその部位がまた触れて拾い直し、1秒後にまた落ちる、をくり返すことがあります。

パソコンが重いとき

動作が重い(目安 50fps 未満)ときに蹴ると、手が装着部位よりも速く、高く飛ぶことがあります。

ほかのアバターとの当たり判定

自分や他人のアバターに当たり判定(Collider)があると、落ちた手がその上に乗ることがあります。自分のアバターの当たり判定なら、その Collider の「Layer Overrides」→「Exclude Layers」に「Walkthrough」を入れると避けられます。

身長を変えたとき

落ちた手は、落ちた時の大きさのまま残ります。落とした後にアバターの身長を変えても、手の大きさは変わりません。次に付いたときに、アバターに合った大きさに戻ります。

Performance Rank

1個につき、Rigidbody 4・Collider 1・Contact 2・Constraint 5 を使います。このギミックだけで、Rigidbodyの項目はMediumになります。最終的なランクは、アバター全体の構成によって変わります。複数置くと、そのぶん増えます。

付属しないもの

商品紹介に使用させていただいているアバターや衣装などは付属しません。

動作環境

  • VRChat PCアバター(Avatar SDK3)向け
  • Modular Avatar(NDMF)が必要です
  • lilToon が必要です(骸骨の手のマテリアルに使っています)
  • Unity 2022.3.22f1、VRChat SDK 3.10.5、Modular Avatar 1.18.7、lilToon 2.4.1を使用し、Unity Editor上で確認しています
  • 同期パラメーターの使用量:1個につき2bit