見出し画像

VRChatアバターをBoneLabで使えるようにする方法

公式ドキュメントの情報が最優先です。公式ドキュメントと違うじゃねぇか!ってなった場合は公式ドキュメントに書かれている方法でやることを強くおすすめします。

この記事ではよく"ここから〇〇をダウンロード"などの表記がありますが、下線のついた部分はリンクになっていて、クリックするとダウンロードページへと飛べるようになっています
この記事に書かれている方法及びこの記事に関して作者が解説したことを実行したことによる損害などの責任を作者は一切負いません。自己責任です。


Gitをインストールする(重要)

Gitはバージョン管理ソフトウェアです

ここからGitをダウンロードしてください。ダウンロードするgitはお使いの環境に合わせてください。
大抵の場合はWindowsを選んで64-bit Git for Windows Setup.と書かれたリンクをクリックすれば大丈夫だと思います。
それでもわからない場合`Git インストール`など検索するいい感じの記事が見つかると思います。

Unityをインストールする

Unityはゲーム開発ソフトおよびゲームエンジンです

BoneLabで使用しているUnityのバージョンはUnity2021.3.16f1です。
Unity Hubのインストールリストには載っていないので、ここから探してインストールしましょう。
また、インストールする際、Windows Build Support(IL2CPP)にチェックを入れてください。*Quest2スタンドアロン版用に作る場合はAndroid Build Support(OpenJDK,Android SDK&NDK Toolsも含む)も導入してください。その他のモジュールはお好みで追加してください
*公式ドキュメントでは両方の導入が必要と書いてありますが友人の検証によりPC版でアバターを導入するだけなら必要ないそうです

プロジェクト作成

必ず3D(Built-In Render Pipeline)のテンプレートを使用してプロジェクトを作成してください。

Unityのバージョンを間違えてます

この時Quest2スタンドアロン版用にModを作る場合は、エディターが開いた後コンテキストメニューから`File → Build Settings → Android → Switch Platform`でプラットフォームを変更してください。

パッケージのインストール

上でGitをダウンロードする必要があったのはこのためです。
これ以降Gitが出てくることはないのでGit恐怖症の方も安心してください。
コンテキストメニューから`Window → Package Manager`を選択し、
左上の歯車か縦に3つ点が並んだボタンから`Project Settings`を選択します。

こんな感じ。

すると、新しいウィンドウが開くので、
下の画像の通りになるように設定してください。

SLZ

https://registry.stresslevelzero.com

com.stresslevelzero
com.unity.render-pipelines
com.unity.shadergraph

完了したら、忘れずに右下のSaveボタンを押してください。
その後、Package Manager(歯車/3点ボタンがあるウィンドウ)の左上にある
Packages : In Project と書かれているところをクリックして、My Registriesを選択します。

終わったら、Marrow SDK を左側のリストから選択し、右上のInstallボタンを押します。これには少々時間がかかります。

インストールが完了すると、Marrow SDKのウィンドウが出てきます。
「BONELABがインストールされている場所を指定してください」
というウィンドウも出てきますが無視して大丈夫です。

アバターを作成する

ここから先、公式ドキュメントにおけるAvatarsの項目になります

⚠️BoneLabにはHumanoidアバターしか導入できません。

最低でも以下の画像にある青い点で示されたボーン以外の全てのボーンが必要です。足りないと導入した時にゲーム内で選択できなくなります。

上の画像の元になった部分はfbxを選択してinspectorのRigをHumanoidにしてConfigure…を押すと出てきます。

公式ドキュメントではこの辺りでモデルのUnityへのインポートについて解説していますが、VRChatにアバターをアップロードする際のそれと完全に同じなので割愛します。わからない人は`Unity Humanoid インポート`などで検索するといい感じの記事が見つかると思います。

シェーダーについて

シェーダーはSLZ-URP(Stress Level Zeroによって改造されたURP)に対応している必要があります。公式ドキュメントではUniversal Render Pipeline/Lit (PBR Workflow)がおすすめされていますので、不具合が発生した場合はこのシェーダーに変更することをおすすめします。
現状筆者の環境で動作を確認できているシェーダーは
UTS(com.unity.toonshader),URP/Lit(PBR),URP/Unlit, lilToon
です。

アバターのスクリプト設定

VRChat SDKで言うところのAvatarDescriptorです

アバターの一番親になってるGameObjectにAdd ComponentからAvatarを入れます
MeshesのBody Meshesには体のSkinned Mesh Rendererが入ったGameobject
Headには頭の以下同上
Hairには髪の(ryのような感じで選択していきます
そしてEdit Bodyの右にあるボタンをクリックしてコライダーを調節します。
Edit Soft BodyはEdit Bodyの機能を胸と尻用に拡張したものです
またSound Effectsから歩行時の音やダメージを受けたときの音などを変更できるようです。

Eye Center Override

Eye Center OverrideはVRChatSDKにおけるViewpointにあたります。
BoneLabではEye Center Overrideを設定しない場合Eyeボーンから自動でビューポイントを設定する機能がありますが、アバターにもよりますが筆者のアバターでは目の高さとずれる傾向があったためあまりおすすめしません。
アバターを作成する-の一番上で書いたようにEye Center OverrideはTransformが入ったGameObjectを必要とするため、Avatarコンポーネントが入ったGameObject直下にEye Center Override用のGameObjectを作成しておく必要があります。
また、現状BoneLabにはHead Meshを自動でカリングする機能はないためViewpointが頭の中にめりこまないようにする必要があります。

Avatar Crateを作成する

Avatar Crateを作成しますが、このゲームではアバターはModの中に入っていて、Modごとゲームに導入するという体裁になっているため、まずPalletを作成する必要があります

Palletの作成

ツールバーから
`Stress level ZeroVoid ToolsAsset Warehouse`と選択して
出てきたAsset Warehouseの上の方にあるCreate Palletを押してください。
Pallet Title及びPallet Authorは作成後は一切変更ができないので注意して下さい。

Create Pallet

Avatar Crateの作成.001

少し話が逸れましたが、Avatar Crateの作成に戻ります。
_MarrowAssets/_Palletsの中に _(Pallet Author).(Pallet Title)というフォルダーがあるのでその中にある_(Pallet Title)というファイルを選択し、
InspectorにあるAvatar Crateというボタン(ない場合はNew Crateを押すと出てきます)
を押してください。


Create Crateと書かれたウィンドウが出てきます。
Crate TypeをAVATAR_CRATEにしてAsset ReferenceにHierarchyからアバターを直接入れるとInvailed Asset Reference!と表示されて作成できないので、
必ずプレハブ化してからプレハブをAsset Referenceに入れてください。

ℹ️GameObject(この場合Avatarコンポーネントがついているもの)をウィンドウ下部のAssetsフォルダの中にドラッグアンドドロップすることでプレハブ化できます。

最後にCrate Titleを入力します。
最初にCrate Titleを入力するとAsset Referenceを設定したときにプレハブの名前で上書きされてしまいます。
これでAvatar Crateが完成しました。

Packする

Inspectorの中にあるPack Palletを押します。
Pack for PCを押します。
この際、Multiple Crate Detected!!などが表示されてグレーアウトしている場合は
押して暫くすると`Modified Scenes must be saved to continue`と表示されるので`Save and Continue`を押します。そうして暫くするとエクスプローラーが開きます。その中にある[PalletAuthor].[PalletTitle]みたいな形式の名前がついたファイルを`C:\Users\%ユーザー名%\AppData\LocalLow\Stress Level Zero\BONELAB\Mods`に入れてBoneLabを起動するとアバター選択機の一番最後のページにアバターが追加されています。

Q&A

太もも/足の向きがおかしい

足ボーンのy軸の向きがデフォルトで0にされてしまうのが原因のようです。
発生するしないもアバターによるのであまりよくわかっていません。
筆者はBlenderでボーンを180°回転させることで直しました。

指の向きがおかしい

指ボーンのy軸の向きが0がデフォルトになってしまうのが原因のようです。
上と同じでアバターによって発生するしないが変わります

透明になる

シェーダーがSLZ-URPに対応していない事やバウンダリが小さい事、プロジェクト作成時にテンプレートが3D(URP)になっていない事が原因です。
バウンダリはVRChatにアップロードする時ののそれに比べてかなり大きく(3~5倍程度?)しないとカリングされてしまうようです。

パッケージのインストール時にエラーが出る

Gitをインストールできていないのが原因だと思われます。
ページ一番上まで戻ってGitのインストールからやり直すことをお勧めします。

他のアバターに比べて性能が悪い

BoneLabではアバターの性能を骨格などに基づいて決定しています。
そのため、一般的なVRChat向けのアバターをScaleそのままで持ってくると性能が悪くなります。これはアバターのScaleを大きめ(1.1~1.3)にすることで改善されます


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