BonelabにVRChatアバターを導入する方法

Disclaimer

このnoteで紹介している内容は「Stress Level Zero」が公式で発表している方法と少し離れています。(ズレる箇所は都度説明します)
何か問題が起きても自己責任であり,トラブルが発生しても全て自分で解決出来る方のみ読み進めてください。

用意する物

  • Git for Windows (Store版じゃダメ PATH手動で通す必要あって面倒)

  • Unity 2021.3.5f1

    • Unity Hub Link: unityhub://2021.3.5f1/40eb3a945986

  • 導入したいVRChatアバター

  • Missing Remover

Git for Windows

公式サイト にアクセスし,「Download」の中にある「Windows」をクリックし,
「Standalone Installer」の中にある「64-bit Git for Windows Setup」をクリックすると,
「Git-<バージョン番号>-64-bit.exe」という名前のインストーラーがダウンロードされるので起動してください。

「Select Components」はデフォルトのままでOKです。

「Choosing the default editor used by Git」は自分の使ってるエディタを選択してください。
ここでは「Use Visual Studio Code…」を選択します。

通常のVSCodeでもInsiderでも特に変わりないように思うのでInsider使ってます

以降は全てデフォルトのまま Next 連打でOKです。

インストールが終わったら Win-R から cmd を起動し,
「git -v」でインストールされてるか確認してください。

古いのは気にしないでください

もし
「 'git' は内部コマンドまたは外部コマンド… 」のように怒られたならPATHが通ってません。いい感じにググって直してください。

Unity 2021.3.5f1

Unity Hubを使ってる方は unityhub://2021.3.5f1/40eb3a945986 をブラウザの検索欄に打ち込んでEnterするだけでHubが開きます。使ってない方は知りません。

開いたら必ず「Windows Build Support (IL2CPP)」にチェックを入れてください。これがないとWindows版Bonelabにアバターを導入出来ません。
Quest2版Bonelabに (も) 導入したい方は「Android Build Support」もチェックしてください。
なお,公式ドキュメントではどちらも導入するように書いていますが,実際はどちらか片方のみでも問題ありません。

画像はインストール済みですが…

アバター

Boothから適当に探すなりしてください。
lilToon非対応のアバター および こまどアバター(*1) はちょっと手間です。

Dynamic BoneやPhysics Boneのような「揺れものを揺らすアドオン」は使用できません。ご注意ください。

*1: FBXの扱いがUnity 2019以降からちょっと変わった? のか,こまどアバターのFBXが壊れて見えるようになった
.blendファイルを開いて適切に設定し直す事で解決するらしいです ググって
公式で修正アップデート降ってきました。所有者はBoothから最新版DLしてください。

Missing Remover

こちら からどうぞ。

VRChat向けセットアップされたPrefabに含まれる「Avatar Descriptor」や「PhysBone」等のコンポーネントを自動削除してくれます (VRCSDKを使用しないのでそれらがMissingになる為)

導入方法

初期設定

Unity 2021.3.5f1で「3D (URP)」テンプレートを用いてプロジェクトを作成してください。

プロジェクトを作成したら「Window → Package Manager」を開き,
左上の「+」から「Add package from git URL…」をクリックし,
以下のURL 4つを 上から順に コピペ→Add してください。

https://github.com/StressLevelZero/Custom-RenderPipelineCore.git#f083e48d81eedd90da2a7c859ebbd5034be24af2
https://github.com/StressLevelZero/Custom-URP.git#aa626bdcab0456b66e0c2363b3188649869910c3
https://github.com/StressLevelZero/MarrowSDK.git#cf5752569114a7c7616cdd572f5351c867488c2f
https://github.com/lilxyzw/lilToon.git?path=Assets/lilToon#7ce9f94f43d9591d7872304d99cf12ff5b31f81c

~.git の後ろに着いてる #<ランダムな英数字> はコミット番号です。
SLZ-URPの更新に伴いlilToonやUnity Toon Shaderが破壊されてしまった為,「安定して動いていた頃のバージョン」まで遡っています。

こちらもドキュメントから離れています。

全てAddし終えたら一度Unityを再起動してください。

再起動したら「Stress Level Zero → Void Tools → Validate Marrow Project Settings」から「Fix All」をクリックし,
全ての警告が消え「No issues found in project.」になったら「Cool」ボタンを押して,初期設定は完了です。

アバター導入

アバターのunitypackageをそのままインポートしてはいけません。
多くの場合「lilToon」や「Toon」等のシェーダーも同梱されており,それにより先程インポートした古いバージョンのlilToonが上書きされてしまう可能性があります。
インポート前に必ず何がインポートされるのか確認し,シェーダーは全て外してください。

極論言ってしまえば「テクスチャ」「マテリアル」「メッシュ」「Prefab」以外は全て必要ありません。

正直これぐらいでいい

Bonelabでカスタムアバターを使用するには以下の要件を満たしている必要があります。

  • モデルがHumanoid リグである事

  • 以下の画像のうち青い点以外の全てのボーンが存在する事

画像はこちらから

大体のアバターはまず問題ありませんが,もし上手く動かない等の問題が発生したら確認してみてください。

アバター設定

アバターのPrefabをHierarchyにD&Dして,「RiClothes → MissingRemover」から各種スクリプトをRemoveしてください。

Missing Remover の使い方とかは割愛します

完了したらアバターのルート (ここでは Mishe ) に「Add Component」から「Avatar」をアタッチします。

するとなんかいっぱい出てくるので「Body Meshes」「Head Meshes」「Hair Meshes」にそれぞれ対応したGameObjectを以下を参考に追加してください。

  • Body Meshes

    • 素体や服など

  • Head Meshes

    • 顔や髪飾り,耳,帽子など

  • Hair Meshes

全て入れ終えたら次は「View Point」の調整をします。
基本的にEyeボーンがあるアバターであれば自動設定されますが,大体高さがずれるので手動で設定する事を推奨します。
もしいい感じに設定されてるのであれば「Eye Offset」のみを調整してもいいと思います。

VRChatのようにHead Meshが自動カリングされるような便利機能はない (はずな) ので,View Pointが頭の中に埋まらないようにしてください。

アバター直下にGameObjectを作成 (右クリックして「Create Empty」し,位置をいい感じに合わせたら名前を「EyeObject」などに変更し,「Eye Center Override」にD&Dして必要に応じて「Eye Offset」を調整してください。

調整が終わったら次にアバターの当たり判定を設定します。
服のメッシュを非表示にし,必要に応じて素体のShrink用シェイプキーを元に戻したりしたら「Edit Body」「Edit Soft Body」ボタンを押して出てくる丸い玉や矢印を触ってコライダーを調整してください。
調整時はSceneビュー右上「Orientation」を「Front」か「Right」にすると調整しやすいです。

設定が終わったらアバターをPrefab化してください。
適当なフォルダを作り,その中にD&Dする事でPrefab化出来ます。

Pallet, Crate作成

「Stress Level Zero → Void Tools → Asset Warehouse」を開き,「Create Pallet」を押してください。
「Pallet Title」及び「Pallet Author」は作成後変更出来ないため注意してください。

「Create」したら「Refresh」を押し,先程作成したPalletを選択したら「Inspector」にある「Add Crate」を押してください。

「Crate Type」を必ず「AVATAR_CRATE」に変更し,先程Prefab化したアバターを「Asset Reference」にD&Dしてください。

必要に応じて「Crate Title」を変更してください。
「Create」を押したら完了です。

ビルド

全てのアバターのCrateを作成し終えたら,Asset Warehouse右上「Pack <Pallet名>」を押してください。
「Modified Scenes must be saved to continue」と言われたら「Save and Continue」を押してください。


暫く待つとビルドが終わり,「<Pallet Name>.<Pallet Author>」という名前のフォルダが選択された状態のエクスプローラーが起動してきます。
Win-R から「%userprofile%\AppData\LocalLow\Stress Level Zero\BONELAB\Mods」を開き,その場所に先程のフォルダをD&Dしたら導入完了です。お疲れ様でした。

Bonelabを起動し,アバター選択機の一番最後のページにアバターが追加されているはずです。

FAQ

性能が悪い

Bonelabはアバターの大きさやコライダーの大きさ? 等から性能を自動計算・決定しているようです。
おおよそ170から180cm前後までアバターの身長を伸ばす (=Scaleを上げる) 事で解決します (現実との剥離による酔いを防ぐためにも実身長付近に合わせる事を強く推奨します) 。

しかしこれでもだいぶ弱い (Vitalityが0.8を切っている等…) 為,実用性があるかと言われると微妙な所です。
現状は「ロマン or カワイイ自分でプレイ」か「縛りプレイ」がメインだと思います…。

選択すると落ちる

原因は不明ですが,Palletには存在するのにメッシュ等が存在しなくなってしまう事があるようです。
再ビルドする事で解決します。


この記事が気に入ったらサポートをしてみませんか?