⚠最新アップデート情報
PhysBone対応については本リリース後の最新版でVRChat公式が変換ツールを出しました。
そして、この記事で紹介したことを行わなくても大丈夫なようになりました。
(Blenderでリーフボーンを追加が本記事、Unityでリーフボーンを追加できるようになったのがアップデート)
現状SDKの方を使う事をおすすめします。
もし、どうしてもBlenderを使いたい方はこの記事をご覧ください。
アップデート情報
この問題はこちらからアクセスできる最新版SDK(2022/03/10 – β)で修正されました。
自動でリーフボーンが追加されるようになってます。
【ベータ更新】2022-03-10 build 1183【非公式翻訳】

はじめに
今回は幽狐さんをPhysBoneに対応させる方法を紹介します。
普通のモデルであればこちらの方法で対処できます。
しかし、幽狐さんだけ様々なエラーが出ます。
なので別記事で対処法を解説。
幽狐さんを使う方やそれ以外のモデルで似たようなエラーが出た方はご参考にご覧ください。
前提条件
この3つを前提に進めます。
・VRChat上でのPhysBonesの使い方の習得済み
・ベータ版VRChat SDKでのPhysBoneの導入済み
・Bone Converter Dtp ConverterでDynamic Boneのパラメーター変換済み
詳細はこちらをご覧ください。
【1,VRChat上でのPhysBonesの使い方】
【2,ベータ版SDK導入+3,Dynamic Boneのパラメーター変換】
『【VRChat】アバターモデルをPhysBoneに対応させる方法』 → 『幽狐さんのPhysBone対処法』の続編としてこの記事は書かれています。

エラーの対処法
対処するには下記の2つが必要です。
・Blenderでリーフボーンを追加して書き出し
・HierarchyでのPhysBoneの割り当て方の変更
この2つについて解説します。
※なぜこれで治るのかは分かりません。
リーフボーンを追加
リーフボーンを追加するには4つの工程が必要です。
・Blenderにfbxを読み込み
・Blenderでfbxを書き出し
・UnityでInspector設定
・リーフボーンの確認
この4つについて解説します。
Blenderにfbxを読み込み
こちらのページよりBlenderをダウンロード。
今回は3.1を使います。
バージョンは何でも大丈夫です。(アップデートが速いのでAlpha版がおすすめ)

Blenderを立ち上げ。
ファイル → インポート → FBXを選択。

幽狐さんの.fbxデータを選択。
ボーン方向の自動整列にチェック。
あとはそのままの設定でFBXをインポート。
(※筆者はシェイプキー改変をしたので名前がYu-ko_Edit.fbxになってます)

3Dビュー上でボーンを選択。

Tabキーで編集モード。
耳、髪の毛、胸のボーンの位置を調整。
(難しい方は行わなくて大丈夫です。)

これでBlenderへのfbxの読み込みが完了です。
Blenderでfbxを書き出し
Tabキーでオプジェクトモード。
Aキーで全選択。
ファイル → エクスポート → FBXを選択。

このような設定でFBXをエクスポート。
リーフボーン追加のチェックは必ず行ってください。

これでBlenderでfbxの書き出しが完了です。
UnityでInspector設定
Unityに戻ります。
プロジェクトに書き出した.fbxをドラッグ&ドロップ。

Projectで読み込んだモデルを選択。

Inspectorを確認。
Modelを選択。
下記のように設定しApplyを押します。
・Inport Camerasのチェックを解除
・Import Lightsのチェックを解除
・Read/Write Enabledにチェック
・Blend Shape NormalsをNoneに変更

InspectorのRigを選択。
AnimationTypeをHumanoidに変更。
Applyを押します。

Configure…を押します。

シーンが変更されたが保存されてませんという注意書きが出ることがあります。
出た場合はSaveを押します。

Humanoidボーンの設定が出てきます。
ボーンは自動で割り当てられるので破綻が無いか確認。
基本はJaw(顎)以外大きな破綻は起こらないです。

Headを選択。
JawをNoneに変更。

確認とJaw修正が終わりましたらDoneを押します。

InspectorのAnimationを選択。
Import Animationのチェックを解除。
Applyを押します。

InspectorのMaterialsを選択。
マテリアルを1つ割り当てApplyを押して挙動を見ます。
正しいマテリアルになるまで繰り返します。

もし私と同じマテリアル枠であれば下記のように設定してください。

リーフボーンの確認
Hierarchyにfbxをドラッグ&ドロップ。
任意のボーンを開きます。
一番奥の階層に_endというボーンがある事を確認。
これがリーフボーンです。

これでリーフボーンの追加が完了です。
PhysBoneの割り当て方の変更
用意するもの
2つの幽狐さんのモデルを用意します。

この2つの違いはこちら。
・Dynamic BoneをPhys Boneに変換して不具合が出た幽狐さん(yuuko_san)
・Blenderでリーフボーンを追加して書き出したモデル(Yu-ko_Edit_AddLeaf)
以降、下記のような呼び方で進めます。
・yuuko_san=『編集前の幽狐さん』
・Yu-ko_Edit_AddLeaf=『編集後の幽狐さん』
※編集=リーフボーン追加編集の意
スカートのPhysBone設定
編集前の幽狐さんのHipsのボーンを選択。
Inspectorを確認。
Root Transformが”Hips”のVRC Phys Boneを開いて探します。

Phys BoneのIgnore Transformsを見ます。
これはボーンの影響をマスク(無効化)する機能です。

Hipsに割り当てられ、Spine、Tail1、Upper Leg.L、Upper Leg.Rが無効化されてます。
残りの部分で何に対して設定が割り当てられてたか確認できます。
=今回の場合はスカートに対してPhys Boneの設定です。

何に割り当てたか確認できましたらSizeを0にして消します。

3つの点をクリック。
Copy Componentを選択。

Hierarchyで編集後の幽狐さんを右クリック。
Unpack Prefabを選択。

編集後の幽狐さんのHipsボーンを右クリック。
Create Emptyを選択。

GameObjectにスカートのボーンを全て入れます。

GameObjectを選択。

Inspectorを確認。
Transform横の3つの点をクリック。
Paste Component As Newを選択。

VRC Phys Boneのパラメーターを移植できました。
Root TransformにHierarchyのGameObjectをドラッグ&ドロップ。

これでスカートにPhysBoneが入りました。
ルートボーンがあるのでちゃんとスカートの2段目ボーンが有効になってます。
※形のプレビューが表示されない方は画面右上のGizmosを押してください。

ただし緑の球であらわされた衝突判定(Colider)が上手く行ってません。
なのでこちらを修正します。
Colider設定
編集前の幽狐さんのHipsボーンを選択。
VRC Phys Bone Collider横の3つの点をクリック。
Copy Componentを選択。

編集後の幽狐さんのHipsボーンを選択。
Transform横の3つの点をクリック。
Paste Component As Newを選択。

Root Transformに編集後の幽狐さんのHipsボーンを割り当てます。

Colliderの形を調節します。
下図のように設定しました。

形のプレビューが表示されない方はGizmosを押してください。

編集前の幽狐さんのUpper Leg.L /.Rを確認。
こちらにもColliderがあるので移植します。

編集前の幽狐さんのUpper Leg.Lを選択。
3つの点 → Copy Componentを選択。

編集後の幽狐さんのUpper Leg.Lを選択。
3つの点 → Paste Component As Newを選択。

Root Transformに編集後の幽狐さんのUpper Leg.Lをドラッグ&ドロップ。

costumeを選択。
Inspectorでチェックを解除。

足の形を見ながらColliderの形を調整。
※広告の利用規約の問題で衣装表示がONです。

編集前の幽狐さんのUpper Leg.Rを選択。
3つの点 → Copy Componentを選択。

編集後の幽狐さんのUpper Leg.Rを選択。
3つの点 → Paste Component As Newを選択。

Root Transformに編集後の幽狐さんのUpper Leg.Rをドラッグ&ドロップ。

同様に足の形を見ながらColliderの形を調整。

GameObject(スカートのPhys Bone)を選択。
Collidersの数を2に変更。

Element 0と1に編集後の幽狐さんのUpper Leg.L /.Rをドラッグ&ドロップ。

HipsのColliderはスカートが不自然に開くので外しました。

以上でColliderの設定が完了です。
尻尾のPhysBone設定
編集前の幽狐さんのHipsボーンを選択。
Root TransformがTail1のVRC Phys Boneを探します。

こちらのVRC Phys Boneの3つの点をクリック。
Copy Componentを選択。

編集後の幽狐さんのTail1のボーンを選択。
3つの点 → Paste Component As Newを選択。

Root Transformに編集後の幽狐さんのTail1ボーンをドラッグ&ドロップ。

CollidersのElement 0に編集後の幽狐さんのHipsボーンをドラッグ&ドロップ。

これで尻尾のPhys Boneの設定が完了です。

胸のPhysBone設定
編集前の幽狐さんのChestボーンを選択。

InspectorでPhys BoneのIgnore Transformを開きます。
Chestに割り当てられ胸以外のボーンが無効化されています。
=これは胸の設定という事が確認できます。

確認できましたらIgnore TransformのSizeを0にします。

3つの点 → Copy Componentを選択。

編集後の幽狐さんのChestボーンを右クリック。
Create Emptyを選択。

GameObject(胸)の中にOppi L / Oppi Rのボーンを入れます。

GameObject(胸)を選択。
3つの点 → Paste Component As Newを選択。

Root TransformにGameObject(胸)をドラッグ&ドロップ。

これで胸のPhys Boneの設定が完了です。
髪と耳のPhysBone設定
編集前の幽狐さんのHeadボーンを選択。

Phys Bone → Ignore Transformを開きます。
目のボーンにマスクがされてます。
=これは髪の毛と耳の設定という事が確認できます。

確認できましたらIgnore TransformのSizeを0にします。

3つの点 → Copy Componentを選択。

編集後の幽狐さんのHeadボーンを右クリック。
Create Emptyを選択。

GameObject(髪と耳)の中にEarL ~ hair tail1までのボーンを入れます。

GameObject(髪と耳)を選択。
3つの点 → Paste Component As Newを選択。

Root TransformにGameObject(髪と耳)をドラッグ&ドロップ。

これで髪と耳のPhys Boneの設定が完了です。

以上で幽狐さんのPhysBoneの設定が完了しました。
ボーンを追加改変などをしてる方はこちらを見ながら各自で対応してください。
VRChatへのアップロード
編集前の幽狐さんを選択。
VRC Avatar Descriptor横の3つの点をクリック。
Copy Componentを選択。

編集後の幽狐さんを選択。
Animator横の3つの点をクリック。
Paste Component As Newを選択。

編集後の幽狐さんのAvatar Descriptorを開きます。
LipSyncのFace Meshに編集後の幽狐さんのBody(顔のパーツ)をドラッグ&ドロップ。

ProjectよりScriptのフォルダを削除。
中身はDynamic BoneをPhys Boneに変換するツールです。
これがあるとなぜが上手くアップロードできませんでした。

VRChatで動作を確認。

これで幽狐さんのPhysBone対応が完了です。

まとめ
お疲れ様でした。
これを1からこなすのは中々大変だったと思います。
凄い子だ…。
ここまで来れば後はBlenderが使えるようになるだけでシェイプキーの追加改変ができます。
シェイプキーを追加することで幽狐さんで舌出しや胸の大きさ変更などができるようになります。
よろしければこちらもお試しください。
…シェイプキ―改変までできると、あとは造形力を身に付けるだけで自作アバターが作れます。
コメント