見出し画像

【BlenderでVTuberキャラ作成】⑨Blenderで作成したFBXファイルをUnityでVRMファイルにする方法

今回は、Blenderで作成したモデルをUnityでVRMファイルに書き出し、モーションキャプチャソフトを使って口や手を動かす方法について解説します。

流れ

  1. BlenderでFBX形式で書き出し

  2. Unityの環境構築

  3. VRMモデル書き出し準備(ボーン・リグ)

  4. VRMモデル書き出し準備(マテリアル)

  5. VRMモデル書き出し準備(VRMファイル書き出し)

  6. VRMモデル設定(揺れ物設定)

  7. VRMモデル設定(シェイプキー)

  8. VRMモデル設定(目の可動域を設定)

BlenderでFBX形式で書き出し

Unityで正常に読み込めるFBX形式にするためには、いろいろと準備が必要です。

  1. モディファイアの適用

  2. アーマチュアとオブジェクトの親子関係設定

  3. FBX形式で書き出し

モディファイアの適用

まず、モディファイアーをすべて適用する必要があります。

シェイプキーを先に設定してから後でミラーやサブディビジョンサーフェースのモディファイアの適用をすることが多いと思いますが、シェイプキーが入っているオブジェクトはモディファイアの適用ができません。

以下のアドオンを使うとシェイプキーが入っているオブジェクトでもモディファイアの適用が可能です。
すでにモディファイアを適用している場合は必要ありません。

アドオンをダウンロードしてインストールします。

ShapeKeyUtilの使い方です。

ShapekeyUtilの中にあるApplyModifiresを選択するとモディファイアが適用されます。

オブジェクトとアーマチュアの設定

同じコレクション内にあること。最後はアーマチュアとオブジェクトをCtrl+Pで親子関係を設定してあげます。

アーマチュア内にすべてのオブジェクトが入ればOKです。
全オブジェクトのモディファイアにアーマチュアが設定されていればOKです。

オブジェクトはまとめられる物はCtrl+Jでまとめます。
今回は以下のようにまとめました。

  • 顔:目、まつ毛、歯など

  • 体:体、下着

  • 服:服、フード、紐

  • しっぽ

  • 猫耳

モデルが地面Z軸方向にマイナスになっている場合はすべてのオブジェクトを選択して0より上に移動させましょう。

移動させた場合はすべてのトランスフォームを適用させます。

ルートボーンの先端のZ軸を0に直してあげます。

FBX形式で書き出し

Blenderで書き出すオブジェクトを全選択した状態でFBXでエクスポートします。

FBXのエクスポート設定は画像の通りです。

  1. 選択したオブジェクトにチェックを入れる

  2. オブジェクトタイプはアーマチュアとメッシュ Shift押しながら複数選択

  3. スケールを適用をすべてFBXにする

  4. リーフボーン追加のチェックを外す

  5. アニメーションをベイクするのチェックを外す

設定ができたらFBXをエクスポートする。
保存先はテクスチャを置いている場所と同じにしておきましょう。

エクスポートでエラーが出たら?

FBXのエクスポート実行時に画面下にエラーが表示されてFBXの書き出しに失敗することがあります。

私の場合はUVマップの展開ができていなくてエラーが発生していました。
UVマップを展開してテクスチャを作成sいてあげることで解決しました。
まずはエラーの内容をしっかり理解して解決してあげましょう。

Unity VRM作成の環境構築

必要な物をインストールしていきます。

UnityHub

まずはUnityHubをダウンロードしてインストールします。

UnityEditor 2019.4.31f1

UnityHubがインストールができたらVRMに適したUnityのバージョンをインストールします。
今回は2019.4.31f1を使用します。

UniVRM

インストールが出来たらUnityHubを開きます。

新しいプロジェクトボタンから開きます。

プロジェクト作成ページが開いたら、エディターバージョンを2019.4.31f1に変更し、3Dで新しいプロジェクトを作成します。

Unityエディターが開いたらダウンロードしたUniVRMのパッケージファイルをAssetsフォルダにドロップでインポートします。

このメッセージがでてきたらAccept ALLをクリックします。

それでは、Blenderで出力したFBXファイルのモデルをインポートしていきます。
まずは右クリックからCreateで作業フォルダを作成しましょう。

フォルダ名はキャラクターの名前などを付けておきましょう。

FBXやテクスチャを先ほど作ったフォルダにドロップします。

FBXファイルがあると思うので、ファイルを左上のHirerarchyという画面にドロップします。
そうすると画面内に3Dモデルが出てきます。

シェイプが変になるので設定を変更しておく。
VRMファイルを選択してModel内にあるBlend Shape Normals をNoneに変更する。

VRMモデル書き出し前準備

ボーン・リグの設定

Hierarchyにあるモデルを選択し、右メニューからRigのAnimation TypeをHumanoidに変更する

Configureボタンをクリックし、Saveをクリックする。

ボーンが正常に割り当てられているか確認する。
緑色になっている場合は正常で、グレーになっているボーンは割り当てができていないので、クリックして割り当てします。

HeadボーンのJawはないのでNoneにしておきましょう。

設定ができたらApplyボタンを押します。

モデルが正常に動くかテストをします。
Muscles&Settingsボタンを押して各動作をいじってちゃんと動くか確認します。
問題があればBlenderに戻って修正しましょう。
問題なければボーンは完了です。

マテリアルの設定

FBXファイルを選択した状態で右画面にあるMaterials→Extract Materialsを選択します。

materialsというフォルダを作って選択を押します。

materials フォルダ内にマテリアルが入るので、すべて選択してShaderをStandardからVRMのMToonに変更します。
※MToonは2Dアニメっぽいシェーダーです。

マテリアルがグレーになる場合

マテリアルがグレーになっている場合はUnityで再度テクスチャを割り当てしてあげる必要があります。

materialフォルダ内にあるマテリアルを選択します。
textureという項目があるのでそれぞれの小さい〇をクリックします。

そのマテリアルあうテクスチャを検索して選択してあげると表示されます。

表示されない場合はオブジェクトに対してマテリアルの設定ができていません。オブジェクトを選択し、適したマテリアルを設定しましょう。

色がグレーっぽくなる場合

マテリアルを設定するとグレーっぽくなる場合があります。
白がデフォルトでグレーになってしまうので、白に変更します。

一つ一つ設定するのは手間なので、マテリアルを全選択してLit Colorのみ白に変更してやればOKです。

透過設定したマテリアルが黒くなる場合

マテリアルの設定でRenderingTypeをOaqueからCutoutかTranspearentに変更すれば色が出てきます。

顔の影を減らす方法

顔の影がすごすぎてかわいくない・・・。大丈夫です。
Shading Shiftという値を下げてやると影を少なくできます。
これはマテリアルごとに設定するので顔パーツのマテリアルを選択して設定変更します。

下げるとこのように影が少なくなりました。

アウトラインを設定する方法

マテリアル毎にアウトラインも設定できます。
modeを変更しWithで太さを調整します。

FBXファイルを上書きする方法

FBXファイルに不備があってUnityで上書きする方法です。

Unity overwriterを使うと便利です。

ダウンロードしたらUnityのAssetsフォルダに入れると有効になります。

修正したFBXファイルを再度ドロップすると置き換えますか?というメッセージが出てくるので置き換えれば上書きできます。

VRM形式で出力

FBXファイルの設定ができたらVRM形式で出力しましょう。

Hierarchyの中にCameraがあるのでクリックします。
モデルが映るようにカメラを配置します。

Hierarchy内からモデルを選択し、上メニューにあるVRM0→ExportVRMをクリックします。

別画面が表示されます。
その中にあるスクリーンショットボタンをクリックします。

FBXファイルが入っている同じAssetフォルダの最初に作成した作業フォルダ内に入れます。

モデルが映っていることを確認。
もし映っていいない場合はカメラの配置ができていないので確認してください。
title、version、Autherを設定、許可の設定をしExportします。

わかりやすいように作業フォルダ内にフォルダを作成しその中にExportします。

VRMファイルのインポートして設定

VRMモデルのシェイプキーや揺れ物の設定をしていきます。

指定したフォルダにVRMファイルが入っているのでHierarchyにドロップします。
画面内にモデルが表示されます。

揺れ物設定

しっぽ、猫耳、服などの揺れ物を設定していきます。

HierarchyにあるVRMモデルの矢印をクリックし展開します。
その中にあるsecondaryをクリックすると右にメニューが出てきます。

Root Bonesという項目があるので、そこに揺らせたいオブジェクトの親ボーンをドロップし、Sizeを0から1に変更。
Sizeは数なので揺らせたいボーンに合わせてSize数を調整してください。

上部にある再生ボタンを押すと開始され、モデルを動かすと揺らせることができます。
Sceneタブに変更し、hipsのボーンを選択し動かしてやると動きます。

揺らせるプロパティがいくつかあります。
Stiffness Force 、Gravilty Power、Gravility Dir、DragForceを調整して揺らせ具合を調整します。

停止させると設定した値が消えてしまうので、
設定が出来たら停止する前にVRM Spring Boneという項目を右クリックし Copy Comporment をクリックして設定値をコピーしておきます。

停止させ、再度VRM Spring Boneという項目を右クリックし Paste Comporment Valueをクリックすることで値が貼り付けられます。
これで値が保存されます。

物理判定の設定

しっぽの揺れが足に貫通するため、気になる場合は足に物理判定の設定を行います。
まず、hierarchyから左足のボーンを選択し、Add Componentを押します。

VRM Spring Bone Collider Groupを検索してクリックします。

Sizeは数です。今回は3に設定します。
それぞれ位置を調整します。
設定ができたら、揺れ設定と同じようにComponentをコピーして右足にも貼り付けしてあげます。

Hierarchyからsecondaryを選択します。
Collider Groupsを展開し、Sizeを2に設定しElementに各足を設定します。
再生して動かしてみて貫通していないか確認してみます。

シェイプキーの設定

Blenderで作成したあいうえおのシェイプキーや喜怒哀楽のシェイプキーをUnityで設定してあげます。

プロジェクト内にある

目がハート、星になるシェイプキーなどはデフォルトでは入っていません。デフォルトでないシェイプキーは追加作成することが可能です。
Create BlendShapeClipボタンをクリックします。

シェイプキーの名前を設定して保存します。

後は同じようにシェイプキーの値を上げて設定してあげます。

目の可動範囲設定

目の可動範囲を確認して調整してあげます。
HierarchyからVRMモデルを選択すると右にメニューが出てきます。

VRM Look At HeadというComponentがあります。
Targetにカメラをドロップ、HeadにHeadのボーンをドロップします。

再生します。
Hierarchyのカメラをクリックし、TranspearentのX,Yでカメラを移動させてあげると目も動くと思います。可動範囲を確認します。

可動範囲を調整する場合は、HierarchyにあるVRMモデルを選択し、右にあるVRM Look At Bone Applyerの各値を調整してあげます。

これでVTuber用のVRMファイルの設定が完了です。

完成!VRMファイルをエクスポート

設定が終わったので、VRMファイルのエクスポートをします。
HierarchyにあるVRMモデルを選択してExport to VRM をクリック。

モーションキャプチャソフトで動かしてみる

いよいよVRMファイルを読み込んでオリキャラでモーションキャプチャしてみましょう

今回は私が使っている有料のモーションキャプチャソフトを使います。
Webcam Motion Captureというソフトです。
月額199円でとてもお安いですが、非常に高品質なソフトです。

表情と上半身のトラッキング可能な非常に優秀なモーションキャプチャソフトです。

以下サイトからダウンロードします。
クーポン使うと1か月無料らしいので、もしよければお使いください。
8vC3WAlZ

ダウンロードしたフォルダを解凍すると「WebcamMotionCapture.exe」が入っているので実行します。

起動するとログイン画面が出てきます。
サブスク登録したアカウントでログインします。

ログインすると画面が二つ出てきます。
一つはカメラの環境設定画面です。自分を映すカメラを選んでください。
自分の姿が写っていれば成功です

2つ目の画面は3Dキャラクターの設定画面です。
まずは、「VRMファイルを開く」ボタンから3DキャラクターのVRMファイルを開いてください。

出力したVRMファイルを指定してやれば読み込まれます。

使い方はこちらの記事で詳しく解説しています。

まとめ

お疲れさまでした。
今回はBlenderで作成したモデルをUnityでVRMファイルにして動かしてみる流れを解説しました。

かなり長かったですね笑

慣れるとそうでもないですが、最初は結構苦戦しました・・。

色々なモデルを作成して楽しんで下さい。
それではまたお会いしましょう。

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