VRChat / Modular Avatar

餓者髑髏

背後に迫る巨大な骸骨ギミック。メニューでオンにすると、自分の背後の地面から、4倍の大きさの骸骨の上半身が紫に燃えながら迫り上がります。骸骨は自分の腕・肘・胴・頭の動きに合わせて動き、自分が見ている先を一緒に見ます。手を握れば骸骨も拳を握り、両手を握り続けると、口を開いて闇のブレスを吐きます。

VRChat / Modular Avatar PC専用 同期パラメーター 1bit
  1. 燃えながら出現
  2. 腕・胴・頭が連動
  3. 指で拳を握る
  4. 闇のブレス
  5. 焼け落ちて消える
月夜の海を背に、両腕を広げてそびえる餓者髑髏
Video

動画

Features

背後に従える、巨大な骸骨

アバターに入れて、1回ボタンを押して体格を合わせるだけで動きます。

背後に出現

自分の約1m後ろに、身長の数倍ある骸骨の上半身が現れます。歩いたり体の向きを変えたりしても、背後の位置を保ってついてきます。しゃがんだり前かがみになったりしても、骸骨の高さは変わりません。

燃えながら現れ、焼け落ちて消える

出現は約3.6秒。紫に燃える境界が下から骨を形づくります。消すときは約3.2秒かけて、上から焼け落ちるように消えます。燃えている断面は暗闇でも光ります。

腕が自分の腕に合わせて動く

両手の位置と肘の向きを、骸骨の大きさに合わせて写します(Final IK を使っています)。

胴と頭も連動

フルトラッキングのときは、背骨・胸のひねりや傾きを、控えめに写します(屈んだときに骸骨の胸で視界がふさがらないよう、約半分にしています)。3点トラッキングとデスクトップでは、胴が細かく揺れないよう、胴は動かしません。頭は、自分の頭の正面2mの点を一緒に見ます。

指がハンドジェスチャーに合わせて曲がる

グー・パー・指差し・ピースなど8種類に合わせて、骸骨の指も曲がります。グーはトリガーの押し込みに合わせて握り込みます。

闇のブレス

両手をグーにして1.5秒続けると、骸骨が口を開き、黒い瘴気の雲を約8m先まで吐きます。雲の中を紫白の光の筋が走り、桃紫の火の粉と灰が舞います。どちらかの手を開くと止まります。

背骨の紫の炎

千切れた背骨の下端で、紫の炎が燃え続けます。炎は青紫と桃紫の色を帯び、ちぎれながら立ち昇ります。

メニューでオン・オフ

VRChatのメニューに「Gashadokuro」の切り替えが1つ入ります。オン・オフの状態は保存されます。

同期パラメーターの追加は1つだけ

指・ブレスは、VRChatがもともと同期しているハンドジェスチャーで動くので、ほかの人にもそのまま見えます。

オリジナルの骸骨モデル

骸骨のモデルは、この商品のために作ったオリジナルです。

Setup

導入手順

前提のツールを入れ、プレハブを置いて、1回ボタンを押して体格を合わせれば完了です。

前提のツールを入れる

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

Stub はアップロードに必要な部品だけが入ったものです。VRChat上ではStubでも動きますが、Unity Editor上では骸骨の腕が動きません。

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

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

位置・回転・大きさは、初期値のまま変えないでください。

体格に合わせる

Hierarchy で置いた「Gashadokuro」を選び、Inspector の「Gashadokuro Fitter」にある Fit To Avatar ボタンを押します(メニューの Tools > Nunifuchisaka > Gashadokuro > Fit To Avatar でも同じです)。骸骨の腕の長さ・肩の位置・掌の向きを、アバターの体格に合わせます。

骸骨の大きさも、このときアバターの肩の高さから自動で決まります(Big の Scale、1.5〜4)。体の小さいアバターでも、手で大きさを変える必要はありません。

この操作をしないと、骸骨の胴がねじれたり、腕が曲がったりします。

ボタンが押せず「アバター(Humanoid)のルート直下に…」と表示されるときは、Gashadokuro がアバターのルートの直下に入っていません。

プレハブを置くと、Scene ビューに骸骨が出現した姿で表示されます。Fit のあとは決まった大きさで表示されるので、アバターと並べて背丈を確かめられます。この表示はエディタ上の確認用で、Game ビューやアップロードされるアバターには影響しません。

アップロードする

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

VRChatでの使い方

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

メニューの「Gashadokuro」をオンにすると現れ、オフにすると消えます。

ブレスを吐く

骸骨の口は普段閉じています。両手をグーにして1.5秒続けると、口を開いてブレスを吐きます。どちらかの手を開くと止まります。

Adjust

調整

プレハブの中で変えられる値です。プレハブのルート(Gashadokuro)の位置・回転・大きさは変えず、その子の Big やマテリアルを調整してください。

骸骨の位置と大きさ Big

アバター配下の Gashadokuro/Big のTransformを調整します。

項目既定説明
Scale4(Fit が肩の高さから決める)拡大率。Fit To Avatar がアバターの肩の高さから 1.5〜4 の範囲で決めます。出現・消滅の燃え際(Dissolve)の都合で、4より大きくすると腕を真上に上げたときに指先が欠けます。4より大きくしないでください
Position(0, 0.4, −1.0) × Scale ÷ 4自分からの位置。Fit To Avatar が Scale に合わせて決めます。zを小さくすると遠ざかり、yで高さが変わります

Fit のあとに大きさを手で変えるとき(Fit は Scale を肩の高さから自動で決めます。そのままで足りない場合だけ行ってください)

1. Hierarchy で、Gashadokuro の中の Big を選びます。

2. Inspector の Scale の3つの値(X・Y・Z)を、同じ値にそろえて変えます(例: 小さくするなら 2.5)。

3. 高さや距離がずれたら、Position の Y と Z も同じ比率で変えます。(0, 0.4, −1.0) × 新しい Scale ÷ 4 にすれば、Fit と同じ配置になります(Scale 2.5 なら (0, 0.25, −0.625))。

Fit が決めた元の Scale と Position は、Gashadokuro の Inspector(Gashadokuro Fitter)の「髑髏の大きさ」「位置」に残っています。Fit のあとに変えると、同じ場所に現在の値が注意として表示されます。

注意: Fit To Avatar をやり直すと、手で変えた Scale と Position は肩の高さから決めた値に戻ります(腕の合わせ方は Scale に左右されないので、大きさを変えたあとに Fit をやり直す必要はありません)。Scale は4より大きくしないでください(腕を真上に上げたとき、出現・消滅の燃え際で指先が欠けます)。Scale を小さくすると、ブレスの届く距離も比例して短くなります(約8mは Scale 4 のとき。Scale 2 で約4m)。一方、髑髏の視線の距離(約2m)と燃える帯の幅は縮まないので、小さくするほど燃える帯が髑髏に対して太く見え、出現・消滅の炎が通り過ぎるのも早くなります。

骨の色 Gashadokuro.mat

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

プロパティ既定説明
_Color白色の調整(ベースカラーのテクスチャに掛かります)
Notes

注意・動作環境

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

PC専用(Quest非対応)

Quest(Android)では、VRChatの仕様でFinal IKが動かないため、表示されません。

同じアバターをQuest(Android)向けにもアップロードするときは、このギミックを外してください(Android版のプロジェクトでは、プレハブを削除するか、EditorOnlyにします)。

Final IK の今後

Final IK は、VRChat側で独自に組み込まれたもので、公式にはサポートされていません。今後のVRChatの更新で、動きが変わる可能性があります。

物を掴むとブレスが出る

物を両手で掴むと手がグーになるため、1.5秒以上掴み続けるとブレスが出ます。

壁や天井との当たり判定なし

壁や天井との当たり判定はありません。狭いワールドでは、骸骨が壁や天井にめり込みます。

腕の動き

腕を速く振ると、骸骨の手が少し遅れてついてきます。

腕を真下に下ろすと、骸骨の指先が床の下に入ります。

骸骨の腕は伸ばしきりません。自分が腕を伸ばしきっても、骸骨の肘は少し曲がったまま残ります(伸ばしきったときの肘の震えを抑えるためです)。

頭の向きと指の動き

頭が向くのは、自分の頭の正面2mの点です。目だけで横を見る動き(アイトラッキング)は写りません。

指の動きは8種類のポーズだけです。1本ずつの細かい指の動きは写りません。

背骨の炎の見え方

背骨の炎は、光を足して描く方式なので、ブルーム(光のにじみ)が強いワールドでは、炎の芯が広く光ります。シェーダーを非表示にしている人には、炎が見えません。

Performance Rank

Bounds(大きさ)が各辺約15mになるため、このギミックだけでPerformance RankはVery Poorになります。骸骨を出していない(非表示の)ときも、同じように数えられます。

Liloumoisに入れて、VRChat SDKの性能表示(PC、Modular Avatarの処理後)で測った増加分です。

  • ポリゴン:+19,586
  • ボーン:+44
  • Skinned Mesh:+1
  • マテリアル:+8
  • Particle System:+7(ブレス6層と炎。これだけでMedium)
  • 最大パーティクル:+548(ブレス452、炎96。これだけでMedium)
  • VRC Constraint:+20
  • テクスチャメモリ:+12.75 MB

付属しないもの

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

動作環境

  • VRChat PCアバター(Avatar SDK3)向け
  • Modular Avatar(NDMF)が必要です
  • lilToon 2.3 以降が必要です(骸骨のマテリアルに使っています。2.4.1 で確認)
  • Final IK か、VRLabs の Final IK Stub が必要です
  • Unity 2022.3.22f1、VRChat SDK 3.10.5、Modular Avatar 1.18.7、lilToon 2.4.1を使用して確認しています
  • 同期パラメーターの使用量:1bit