はじめに
こんにちは!以前のブログ記事で耳のボーンが正しく入っていないのを治す方法を紹介しました。
エクスポートのたびに直すのが大変だったので、Unity上で付け外しが行える部品化を行える方法を編み出したので紹介します。この方法を応用すれば、メタセコイアで作成した好きなアクセサリをUnity上で手軽にアバターへ付け外しが可能になるかと思います。
VRChatで使用できるアクセサリ化
VRMファイルを用意する
今回は、最初の動機で記載したようにVRoid Studioで作成した「アバターの耳」を部品化していきたいと思います。まずは「マテリアル数」を「削減しない」に設定してVRM0でエクスポートします。
ちなみに今後は、「アバターの耳」を対象としてアクセサリ化していくというていで説明していきます。
対象のマテリアルを保存する
次にVRChatのアバター用のUnityプロジェクトを作成します。この作成方法については@100 (100の人 (エスパー・イーシア))様の記事を読むと非常に参考になります。
@100 (100の人 (エスパー・イーシア)) – VRMからVRChatへアップロードする流れ
VRMからVRChatへアップロードする流れ - Qiita注意事項Quest用のモデルは非常に制限が厳しいため、この記事では解説していません。VRMによっては、VRChatに対応したボーン構造になっていないなどの理由で、この記事の手順ではアップロード…
今回は「VRM Converter for VRChat」を使用していきます。「VRM Converter for VRChat」を有効化することで、後ほど使用する「UniVRM」「UniGLTF」も有効化されます。
以下のAssets
にVRMのアバターファイル「***.vrm
」をドラッグ&ドロップします。
VRMのアバターファイルに含まれるデータが展開されます。この中で、アバターの耳で使用されているシェーダーがVRM/Mtoon
のマテリアルを使います。マテリアルの中でテクスチャとも関連付けされているので、マテリアルとテクスチャだけ抜き出しておきましょう。
対象のメッシュを分離する
メタセコイアでVRM0のアバターのデータをインポートします。この時「前方向を反転(VRM 0.xのみ)
」へのチェックは不要です。この理由は、後に出力するglTF形式でアバターの方向と部品の方向が合っているためです。
読み込んだアバターはZ軸が逆転していますがこのまま作業していきます。
猫耳のボーンを修正して、影響範囲もいろいろいじります。他のボーンやコリジョンは全て削除しておきましょう。ちなみにボーンの削除は「スキニング」ではなく「リギング」ではないとできません。良く忘れます。ボーンの修正方法やコリジョンの削除方法については以前の記事が参考になります。
最後にUnityの「UniGLTF
」で読み込みができるglTF
形式で出力します。設定はデフォルトで問題ありません。
glTFをインポートしてマテリアルを設定する
Assets
にメタセコイアで作成したglTFファイル「***.glb
」をドラッグ&ドロップします。その後、インポート設定からMaterials
を選択します。
マテリアルの設定を先ほどVRMファイルをインポートしたときに作成されたマテリアルを選択し、「適用する」を選択します。
これで、VRM/Mtoon
が使用されたマテリアルを設定できます。
インポートで不要なファイルがたくさんできているので、不要なファイルを削除、ファイル名の修正、フォルダを整理をお勧めします。
VRC Phys Boneも設定する
「ヒエラルキー」で依存させたいボーンの中に上記で部品化したMimiをドラッグ&ドロップします。そして「シーン」でY座標を変更して位置を合わせていきます。
「ヒエラルキー」のMimiの中に、左耳と右耳のボーンの付け根があるので、ここを選択した状態します。「インスペクター」から「コンポーネントを追加」を選択して「VRC Phys Bone」を選ぶことで、自動で揺れるようになります。Collisionの半径を設定すれば当たり判定も作成できます。
ヒエラルキーで作成したデータは、アセットにドラッグ&ドロップすればVRC Phys Boneなどを設定した情報が記録された状態で保存も可能です。
おわりに
最初はUnityがよくわからず、メタセコイアで完結させていたのですが、部品化のやり方が分かってきたので、応用して色々なことが出来そうです。最後まで読んでいただきありがとうございました。
コメント