LoginSignup
3
6

More than 3 years have passed since last update.

【VRoid】VRoidのアバターにblender経由でアクセサリーをつけてVRMファイルにする方法

Last updated at Posted at 2020-06-19

2021/03/03
- タイトル変えました。

2021/02/21
-UniVRMのダウンロードについて、VRMファイルについて解説しているサイトを追記しました。

2020/11/07
- UniVRMがデッドリンクになっていたので、Google検索の利用をおすすめする文言に変更しました。

2020/07/14
- UniVRMが0.56.3にバージョンアップしたので、その旨を追記しました。
- また、unity上で行うボーンの反映については、無視しても動画配信のアバターとしては問題なく使えているので、「対応しなくても大丈夫です」的な文言を追記しました。

2020/06/24
- 細かく記事を追記しております。


全体のフロー

スライド1.png
スライド2.png
※上記の[ボーンの反映]については、現状対応しなくても、配信用アバターなどで使うことが可能です。
スライド3.png


アクセサリーを作ろう

1. アクセサリーをfbx形式でエクスポート

  • サイズに注意

blender編

下図は作業イメージ
スクリーンショット 2020-06-22 22.22.34.png


1. 環境設定

  • Blender2.83出たからインストール環境に注意(当記事ではBlender2.83を使用しています)
  • VRMファイルを使えるようにしておく(アドオン追加)
  • アドオンはBlenderのバージョンによってファイルが異なるから注意

アドオン…VRM IMPORTER for Blender2.80
(https://github.com/iCyP/VRM_IMPORTER_for_Blender2_8)


2. インポートする

  • VRoidからエクスポートしたVRMファイル
  • fbx形式のアクセサリー

3. モデルとアクセサリーを親子関係にする

  • Blender2.82以降だとUI変わっているから、参考サイトによってはやり方がわからなくなる可能性がある
  • 親子関係にすると、アクセサリーの位置がすんげー変わるから、左右対称に設置する必要があるようなアクセサリーの場合(たとえば独立した耳あてとか)、あらかじめ左右で結合しておくと楽ということが痛いほどわかった

下図は、親子関係にしているところ
スクリーンショット 2020-06-23 17.00.46.png

2021/02/26追加スクショと追記(blender2.83です)
オブジェクトを選択した状態で、「オブジェクトプロパティ」のアイコンから、
「Parent」(何と親子関係にするか)
「Parent Type」(属性は何か)
「Parent Bone」(具体的にはどこの部分か) の3つを設定します。
無題.png


4. fbxでエクスポートする

下図は、エクスポート時の設定だが、正しいかどうかあやしいので、メモ程度で読み飛ばしてください。
スクリーンショット 2020-06-23 16.02.00.png
スクリーンショット 2020-06-23 16.02.16.png


unity編

ここで結局何をやるかというと、blenderで抜け落ちた様々なデータ(※)を、元のVRMファイルから抽出して、fbxファイルをちゃんとしたVRMファイルに戻そうぜということです。

※抜け落ちたデータとは
- マテリアル
- BlendShape(要は表情)
- ボーン(ここは、本当に必要かは要調査が必要)

下図は作業イメージ
スクリーンショット 2020-06-22 22.22.27.png


1. 環境構築

  • 使用unityバージョン...unity2019.4.1f1(LTS) (2020/06時点で使用したパッケージデータ)
  • UniVRM -0.55.0_ce1c.unitypackage ※7/14時点で、0.56.3がリリースされています。
  • ↑UniVRMは、google検索して最新版等の解説があるところを経由してダウンロードしましょう。packageデータなので、packageインポートで導入することができます。(2020/11/07記載)
  • VRMファイルについての解説サイト(https://vrm.dev/)で、オープンソースとしてUniVRMをダウンロードすることができます。(2021/02/26追記)
  • Dynamic Bone(https://assetstore.unity.com/packages/tools/animation/dynamic-bone-16743?locale=ja-JP)
  • ReflectBoneSetting.unitypackage(https://github.com/MrSlip777/LoadVRM/releases/tag/V1.0) (前提として、アセットストアでDynamicBoneのインポート)

2. Blenderからのfbxファイルに、VRoidからのvrmファイルを使用して、マテリアルを反映させる

  1. Blenderからのfbxファイルをアセットに入れる…(A)
  2. VRoidからのVRMファイルをアセットに入れる...(B)
  3. (A)に、(B)のマテリアル情報を設定する

下図は、反映イメージ
スクリーンショット 2020-06-23 16.09.26.png

下図は、マテリアル反映前のfbxファイル
スクリーンショット 2020-06-23 14.47.17.png
下図は、マテリアル反映後のfbxファイル
スクリーンショット 2020-06-23 14.56.10.png


3. vrmファイルからスプリングボーンのデータをエクスポートする

1. 先の項目で使用したfbxファイルを非表示にする。
2. vrmファイルを設置する。

※ここの過程は飛ばしても大丈夫そうです。
 5.から再開してください。(マテリアルが反映されたfbxファイルを、vrmファイルにエクスポートして、unityにインポートしよう)

下図は、先の項目のfbxファイルを非表示にして、vrmファイルを設置したところ
スクリーンショット 2020-06-23 14.58.42.png


3. vrmファイルから、スプリングボーンのデータをエクスポートする。

やらなくていいところです。(2020/07/14追記)

下図は、スプリングボーンをエクポートしたところ
スクリーンショット 2020-06-23 15.02.14.png


4. fbxファイルに、スプリングボーンのデータをインポートする。

やらなくていいところです。(2020/07/14追記)

※この記事を執筆時点(2020/06/23)では、このインポートがエラーを起こして機能せず、
スプリングボーンのインポートは行っていないまま、最終的には3teneでのアクション確認・表情確認・フェイストラッキング・リップシンクが動くことを確認できています。
※ひょっとしたら、スプリングボーンに関してはノータッチでもいいのかもしれない…


5. fbxファイルを、いったんVRMファイルにエクスポートする。


6. 5.でエクスポートしたVRMファイルを再度アセットで読み込み、元のVRMファイルからBlendShapeを反映させる。

下図は、BlendShapeを反映させるところ。
blendshapeの反映.png

  • なお、下図は、よりやりやすい方法となります。(2020/07/14追記)
  • 変更したいBlendShapeを選択して、bake箇所を展開する。
    スクリーンショット 2020-07-14 11.19.52.png

  • 展開された中から、BlendShapeの項目に該当するものをスライダーで数値を大きくします。(100%である必要はなく、また複数の組み合わせも可能)
    スクリーンショット 2020-07-14 11.21.53.png

  • VRoidのデータにあって、fbxから変換したデータにない場合、新しくBlendShapeを追加します。
    スクリーンショット 2020-07-14 11.28.03.png


7. 設定したVRMファイルを、再度VRMファイルとしてエクスポートする。【完了】


下図はさらに3teneで取り込んでポーズしたところ。
さて、あなたはカスタマイズしたキャラクターでどんなことをしたいですか?

C71CED6B-FD53-491C-A3AE-CEC03EE14ECC.jpeg

33659627-02DA-4FEA-A15C-F51FF2115B42.jpeg

vita2.2photo0714.png

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6