スポンサーリンク

MMDモデルをVRChatに! ポリゴン削減やUnityへの読み込み方法

以前書きなぐっていた物のちゃんとした版です。
自分みたいに Wiki だけだと中々進めない人向けに細かいところまで書いてあります。
「Wiki読んだけど良くわからない~」といった人や、Unity や Blender なんて微塵も触ったことのない人が最後までたどり着けるように書いていく予定なので、迷った時に参考にしてみて下さい。
それでもわからない場合はコメントで教えてください。
返信したり、場合によっては記事に追記していきます。



◆用意するもの
用意するものが複数あるため、ダウンロードしたものはデスクトップにフォルダを新規作成するなどして、作業が完了するまでまとめておくと分かりやすいです。

・VRChat のアカウント
 アバターやワールドをアップロードする際に必要になります。こちらのページで必要事項を記入し、送られてきたメールを確認して下さい。

・Unity5.6.3p1
 アバターのアップロードは Unity から行います。バージョンは5.6.3p1と指定されており、それ以外のバージョンの Unity で作業を行うと SDK 関連でエラーが出るので注意して下さい。ダウンロードはこちらから

・VRCSDK
 アバターやマップの作成に必要なものがまとまっています。VRChat の公式サイトにログインした後、マイページにDOWNLOADと表示されている場所に SDK と書かれたボタンがあるので、それを押して VRCSDK-2018.01.03.12.06_Public.unitypackage (更新されて日付は変わる)をダウンロードしてください。

・Blender
 アバターのポリゴン数削減やボーンの設定を行うのに必要です。Blender の公式サイトからダウンロードしてください。

・blender_mmd_tools-dev_test
 Blender に MMD モデルを読み込むのに必要なプラグインです。GitHub のページにアクセスしたら Clone or Download と書かれたボタンをクリックし、Download ZIP を選択して blender_mmd_tools-dev_test.zip をダウンロードしてください。

・cats-blender-plugin-master
 PMX形式のファイルをVRChatに最適化するためのプラグインです。上と同じようにGitHub のページにアクセスしたら、cats-blender-plugin-master.zip をダウンロードしてください。

・FBX® 2013.3 Converter
 Blender で出力した FBX ファイルを Unity で読み込む際にマテリアルからテクスチャが剥がれてしまうのを防ぐために使用します。使用は任意ですが、あったほうが作業が簡単です。Autodesk のダウンロードページから fbx20133_converter_win_x64.exe をダウンロードしてください。

・MMDモデル
 Wiki のアバター許可リストDeviant Art BowlRollニコニコ立体で使用したいモデルを探します。MMD モデルを使用する場合は利用規約に注意して VRChat で使用できるか確認して下さい。Wikiの注意事項をよく読むこと
※版権キャラのモデルなどでVRChatに関する記述がないものは、著作権等で面倒になる事もあるので触らないほうが良いです。また、MMD4Mecanim も VRChat 向けに使用してはいけません。許可されていないですし、使ったところでボーンを Generic から Humanoid にした時に腰辺りのボーンに不具合が起きて宙吊りになったモデルになります。※



◆Blender の準備
ダウンロードした Blender-2.**-****.msi といった名前のファイルをクリックして起動。
Blender をインストールします。
(スクショ割愛)

インストール完了後、Blender に PMX 形式のモデルデータを読み込み作業するためのプラグインを追加します。
①先程ダウンロードした blender_mmd_tools-dev_test がまだ ZIP 形式で圧縮されている人は解凍して中身を出しておいて下さい。
② cats-blender-plugin-master は ZIP 形式のままで構いませんが、名前を cats_blender_plugin に変更します。(ハイフン - をアンダーバー _ にしています。)

2つとも用意できたら、まずは blender_mmd_tools-dev_test の中にある mmd_tools というフォルダを

ローカルディスク(C:) → Program Files → Blender Foundation → Blender → 2.xx(Blender のバージョン) → scripts → addons

に、コピーします。
次に、ZIP 形式の cats_blender_plugin

ローカルディスク(C:) → Program Files → Blender Foundation → Blender → 2.xx(Blender のバージョン) → scripts

に、コピーします。
解凍はしないで下さい。

ファイルのコピーが終わったら Blender を起動します。
起動した際にメニューなどが英語表記になっている人は日本語にするところから始めます。

日本語にするには、上のメニュー左側にある File から User Preferences... を選択。
ウィンドウが出るので、System ページの右下にある Language: English(English) を押して Japanese(日本語) を探します。
日本語を見ると全体の言語が日本語に変わるので、ウィンドウの左下にあるユーザー設定の保存をクリックして適用します。

言語の設定が終わったらプラグインの設定です。
上のメニュー左側にあるファイルからユーザー設定...を選択。
Blenderユーザー設定というウィンドウが出るので、アドオンのページを開きます。
左上の虫眼鏡で mmd と入力すると Object: mmd_tools が出るので、チェックボックスをクリックしてチェックを入れます。
もし出ない場合は、ウィンドウ下の更新を何度か押してみて下さい。
チェックを入れたら左下のユーザー設定の保存をクリック。

SnapCrab_Blender User Preferences_2017-12-26_1-20-53_No-00


続いて、その隣りにあるファイルからインストール...をクリックして ZIP 形式の cats_blender_plugin を入れた script フォルダを探します。
アドレスは C:\Program Files\Blender Foundation\Blender\2.77\scripts\
cats_blender_plugin.zip があるはずなので、ダブルクリック。

SnapCrab_Blender User Preferences_2017-12-26_1-24-22_No-00


すると、アドオンのページに飛び 3D View: Cats Blender Plugin という項目が現れるので、チェックボックスをクリックしてチェックを入れます。
チェックを入れたら左下のユーザー設定の保存をクリック。

SnapCrab_Blender User Preferences_2017-12-26_1-25-9_No-00


以上でプラグインの設定は完了。
MMD モデルの読み込みや編集が可能になりました。



◆MMDモデルの読み込み
インポートする前に、始めに用意されている立方体はクリックしてキーボードの Delete キーを押すと削除という項目が現れるので、選択して消しておきます。

ファイルからインポートMikuMikuDanse(.pmd, .pmx) を選択します。

SnapCrab_Blender_2017-12-26_1-27-49_No-00.png


予め用意したモデルを選択。
左下の Import Model file という項目でメッシュアーマチュアMorphs のみを選択し、拡大縮小の値を 0.08 にします。
設定したら右上の Import Model file (.pmd, .pmx) を押すことでモデルが読み込まれます。

2018010717561.jpg


読み込んだモデルはマウスホイールで拡大したり、ホイールを押し込みながらドラッグして回転、Shift を押しながらホイールを押し込んでドラッグしてカメラを移動させるなどして、見やすいように表示しておきましょう。

読み込んだら、画面右上の + を押して、ツールバーを表示。
ツールバーにある MMD Display の項目でメッシュとアーマチュアのみにチェックを入れ、Shadeless を押します。
シェーダーが表示されて色がつきました。

2018010718001.jpg

2018010718071.jpg


次にポリゴンを削っていきますが、ボーンが表示されていてモデルが見辛いという人は右上でオレンジの人のアイコンを探して、瞳をクリックして非表示にしておきましょう。

2018010718111.jpg



◆ポリゴンを減らす
右側でモデルのメッシュを選択します。モデルがオレンジ色にハイライトされればそれがメッシュです。
その状態で、左側のタブで mmd_tools を選び Separate By Materials をクリック。
メッシュがパーツごとにバラけます。

2018010718261.jpg

2018010718271.jpg


バラしたらいよいよポリゴン数を減らしていきます。
右側で部位を選択するのですが、選択した場所がどこかいまいち分からない場合、マウスカーソルをモデルに合わせてテンキーの / を押すと選んだ部位のみがフォーカスされて表示されます。

2018010718331.jpg

2018010718341.jpg


部位を選択したらシェイプキーを削除します。これが残っているとポリゴンが減りません。
ただし、このシェイプキーは表情の操作に使われているので、顔周りのポリゴンを削るのは止めておきましょう。
右側で▽のアイコンをクリックしたら、シェイプキーの項目で▼をクリック。全シェイプキーを削除を選びます。

2018010718361.jpg

2018010718421.jpg


続いて、スパナのアイコンをクリックし、追加からポリゴン数削減を選びます。
比率の値を下げることで、元のポリゴン数 × 比率となりポリゴンが減ります。
減らしすぎるとカクカクした見た目になるので、モデルを見ながらギリギリまで減らしていきます。
理想は1万ポリゴン以下、限界は2万ポリゴン以下に収めるのが目標です。
総ポリゴン数は外面上の面:~で確認できます。
減らしたら適用を押して反映させましょう。

2018010718521.jpg


このモデルに限った話ですが、櫻歌ミコの腕にある番号はポリゴン比率を0にして腕の中にしまいました。

2018010719071.jpg


ポリゴンを減らしたらバラバラになっている部位を Shift を押しながら全てクリックして選択します。
そして、モデルにマウスカーソルを合わせて Ctrl + J でメッシュを結合します。

2018010719181.jpg

2018010719182.jpg


メッシュの名前は Unity に取り込んだ際に正しく読み込まれない事があるんだとか無いんだとかなので、おまじないとして Body に名前を変えておきます。

2018010719281.jpg



◆ボーンの調整
ポリゴンの次はボーンです。
左のタブで CATS を選択。
Fix Model を選択して余計なボーンを削除します。

2018010719421.jpg

2018010719422.jpg



◆アイトラッキングの設定
Eye Tracking の項目を開いて
メッシュ 本文
ヘッド ヘッド
左目 Eye_L
右目 Eye_R
Blink Left ウィンク or ウィンク2(2の方が良い?)
Blink Right ウィンク右 or ウィンク2右(2の方が良い?)
Lowerlid Left vrc.v_sil(下瞼のモーフがMMDにないため?無表情を選択)
Lowerlid Right vrc.v_sil
Disable Eye Blinking そのまま
Disable Eye Movement そのまま
Eye Movement Range そのまま
に設定したら、Create Eye Tracking で作成。

2018010720121.jpg



◆リップシンクの設定
Visemes の項目を開いて
メッシュ 本文
Viseme AA
Viseme OH
Viseme CH
Shape key Mix Intensity 1.00
に設定したら、Create visemes をクリック。
シェイプキーにリップシンクのモーフが追加されます。

2018010719471.jpg



◆ボーンに親子関係をつける
ダイナミックボーンなどを使用して服やアクセサリーを揺らしたい場合、処理を軽減させるためにルートボーンを作成してボーンをまとめます。
Bone parenting の項目を開き、To Parent: でまとめたいボーンを選びます。(3以上のものはまとめておけばいい?)
Parent Bones を押せばボーンをまとめる事ができます。
一括では出来ないので、1種類ごとまとめていきましょう。

2018010720211.jpg

2018010720251.jpg


Texture Atlas でテクスチャをひとまとめにするのは、後々部分的にシェーダーなどを変えたい時に不便なので今回は行いません。



◆FBXファイルで出力
右上で、オレンジの Armatureオレンジのメッシュ(Body に名前を変えたやつ)を Shift を押しながら両方選択。
ファイルからエクスポートFBX(.fbx) を選びます。

2018010720341.jpg


保存場所とファイル名を上で設定し、左下は画像と同じように値やチェックボックスをポチポチしていきます。
出来たら、右上の FBXをエクスポート で出力。

2018010720381.jpg


そうしたら、一旦モデルの見える画面に戻り、Ctrl + S で Blender の編集データを保存します。
本来なら最初から定期的に保存してデータが飛ばないようにしておくのですが、忘れていたのでここで説明。
保存場所と名前を決めて、右上の Blenderファイルを保存 を押します。

2018010720572.jpg

2018010721021.jpg


※追記※
FBX と Blender の形式のファイルを作成したら、FBX用のフォルダを新たに作成します。
その中に FBX 形式のファイルを移動させて、MMD モデルが入っていたフォルダに一緒に入っているテクスチャをコピーして下さい。
もしテクスチャがどれかわからない人は、FBXファイルを MMD モデルが入っていたフォルダにコピーします。

2018010722291.jpg

2018010722301.jpg


以上で Blender の作業は完了です。Blender を終了しても大丈夫です。
このまま Unity にモデルを持っていってもいいのですが、今のままだと読み込んだ際にテクスチャが剥がれてしまい、マテリアルごとに一枚一枚手作業でテクスチャを貼らなければなりません。
面倒なので剥がれないように手を加えます。



◆FBX Converter でテクスチャが剥がれないようにする
※必要ないかもしれないので、後々の作業でテクスチャが剥がれる人のみ行って下さい※
ダウンロードしてあった FBX® 2013.3 Converter をインストールして起動します。

2018010721061.jpg


そうしたら、先程出力した FBX 形式のモデルデータをコンバーターにドラッグ&ドロップ。
右下の Convert をクリックして右上に Converted と緑色で表示されれば成功です。

2018010721091.jpg

2018010721092.jpg


先程 FBX 形式のモデルデータを保存してあった場所に FBX 2013 というフォルダが作成され、その中にモデルデータが出力されています。
Unity にはこちらを持っていって下さい。

2018010721171.jpg



◆Unity のインストール
ダウンロードした UnityDownloadAssistant-5.6.3p1.exe をクリックして起動。
利用規約などに同意して Next を選んで進んでいきます。
チェックボックスを入れるところに来たら、必ず Unity5.6.3p1 にチェックを入れて下さい。
Standard Assets や Example Project はステージを今後作成したい時に役立つかもしれません。
Next で進んでインストールまで行きます。

2018010721291.jpg


インストールに少し時間がかかるので、この辺りで休憩を取っておきましょう。



◆Unity に SDK をインポート
Unity のインストールが終わったら起動して、New を選択。

2018010721381.jpg


3D を選択して、今後モデルのアップデートはこのプロジェクトから行うので、Project Name は分かりやすい名前にしておきます。
Location で保存場所も設定したら Create Project を押します。
もしログインを求められたら、アカウントを作成するか Work Offline でログインせずに先に進めます。

2018010721391.jpg


しばらくすると Unity の画面が出てきます。
SDKの入れ方は上のメニューから Assets → Import Packege → Custom Packege を選んでダウンロードしてきた VRCSDK(略)Public.unitypackage を選択してもいいですし、VRCSDK を Unity の画面に直接ドラッグ&ドロップしても良いです。

2018010721531.jpg


SDK を入れるとチェックの沢山ついたウィンドウが出るので、Inport を選択。
必要なファイルが読み込まれます。

2018010722001.jpg


インポートが終わったら、画面下の Project にモデルを入れるためのフォルダを作成します。
適当な場所で右クリックをするか、Create と書かれた場所から Folder を選んでもいいです。
フォルダも別に作らなくても問題はないのですが、今後どんどん違うモデルを追加していくことを考えると、モデルごとにフォルダ分けしておいたほうが散らからなくていいですね。

2018010722091.jpg



◆Unity に MMD モデルを読み込む
FBX とテクスチャが一緒に入っているフォルダを Unity で先程作ったフォルダの中にドラッグ&ドロップ。
中にある FBX ファイルを選択したら、右側の InspectorRig を選択。
Animation Type Generic になっているので、クリックして Humanoid に変更します。
変更したら、Configue... と書いてあるボタンを押して、小さなウィンドウが出るので Apply を選択。

2018010722391.jpg


Inspector に人形が表示されるので、全部緑色になっているかを確認したら Done を押して下さい。
赤いところがある場合、そこのボーンが正しく設定されていません。
放置してもいいですが、VRChat に持っていった際にモデルの挙動がおかしくなる場合があります。

2018010722411.jpg


戻ったら、FBX のモデルを Hierarchy か Scene の中にドラッグ&ドロップ。
Inspector で Transform の文字を右クリックして Reset を選択。
Potition と Rotation の値を0にします。

2018010722511.jpg


モデルが小さくて見えないという人は、Hierarchy でモデルを選択した後に Shift + F で画面中央に映るようにして、ホイールを回してズームインアウト、ホイールを押し込んでスライド、右クリック長押しでカメラの向きを変えたり、右クリックを押している間にWASDでカメラを移動させたりしてみて下さい。

今回読み込んだモデルは一部分が半透明になってしまっているので、それも修正します。
Project 内でモデルの入っているフォルダに Material というフォルダが勝手に作られているので中を開きます。
そこにある tex003 というマテリアルを選択。
Inspector で Rendering ModeTransparent から Opaque にします。
Transparent はガラスのような半透明なものを表現するのに使うので、ここでは要らないですね。

2018010723011.jpg



◆シェーダーの設定
今のままだと人形のようでやや不気味なので、シェーダーで表示方法?を変えていきます。
一個づつやるのも面倒なので Project でマテリアルを Shift を押しながら一括選択。
Inspector でShader の項目を変更します。
個人的に Unlit → Texture で影を表示せずテクスチャの明るさをそのまま反映させても良いと思うのですが、もし拘りたいのであれば沢山種類があるので、Wikiでシェーダーを見つけたりして色々と試してみるといいですね。

2018010723131.jpg

2018010723132.jpg



◆VRChat のコンポーネントを取付け
シェーダーを決めたら、Hierarchy にあるモデルを選択し、Inspector で下にある Add Component を選びます。
虫眼鏡のとなりに VRC_Ava くらいまで入力したら出てくる VRC_Avater Descriptor を選択。

2018010723181.jpg


2つコンポーネントが取り付けられますが、Descriptor の View position の値を調整します。
これは VRChat でのプレイヤーの目線を決めるもので、Scene をよく見ると灰色の球体が浮いているのでそれを目と目の間、顔ににくっつくくらいに配置します。
Default Animation Set では性別を設定します。
VRChat 内でのキャラクターの動きに関わってくるので、男性は Male、女性は Female にします。

2018010723211.jpg


本来はこの後ダイナミックボーンなどでモデルをもっといじるのですが、今回は省きます。



◆モデルを VRChat へアップロード
上のメニューにある VRChat SDK から Setting を選択。
ログインするように言われるので、用意してあるアカウントでログインして下さい。

2018010723321.jpg

2018010723322.jpg


ログインしたら Setting のウィンドウを閉じて、同じく VRChat SDK から今度は Show Build Control Panel を選択。
モデルの名前が表示されているので、Build&Publish を押してアップロード画面に向かいます。

2018010723361.jpg


シーンを保存していない場合、アップロードする前に保存するように言われるので、Assets フォルダ内に Scene 等のフォルダを新しく作成して、そこに Scene データを保存します。
Unity での作業を保存するものだと思ってくれればいいです。(詳細を話すとちょっと長い)

2018010723381.jpg


Game タブでアップロード画面が再生されるので、アバターの名前(VRChat内で表示される名前ではない)と、何のアバターなのか任意でコメント、The above~~と長い文章のチェックを入れれば、Upload が押せるようになるので押します。

2018010723431.jpg


アップロードが完了すれば、後は VRChat 内でアップロードしたアバターを選択するだけです。
お疲れ様でした。

sdfg.jpg
関連記事

Leave a Reply

管理者にだけ表示を許可する

Comment

  • 2018/01/17 (Wed) 09:19
    Rizy / URL
    VRCHATでDance animationやりたい

    初めにmmd toolでmodelを入れたあとanimationを入れその後Cats pluginを使ってFix modelを押し修正したのですがその後animationが、どうしても動かなくなります。Fix modelをする前はしっかり動きますし、Cats pluginの方からmmdを入れ修正などをやってみましたが出来ませんでした。とりあえずboneをspine incorrectが出ないよう修正してなおかつdance animationが入ってる状態にしたいです。モデルは結月ゆかりのキャラを使っています。

  • 2018/01/18 (Thu) 00:14
    NF / URL
    Rizy >>

    Fix model を押すとボーンの作りを変えてしまうので、アニメーションで設定されていたボーンが無くなったり場所が変わったりして再生されなくなるのが原因だと思います。
    Fix model をせずに FBX で書き出せば Unity でも再生できるのですが、ボーン構造が Generic なので VRChat 向きではありません。
    Humanoid に Unity で無理やり変更する事も可能ですが、関節などの挙動が不自然になります。

    もしかしたら何か方法があるかもしれませんが、自分の知識ではこれ以上何とも...。

  • 2018/02/27 (Tue) 22:23
    匿名さん / URL
    No title

    unityでFBXファイルを読み込み表示させると目が表示されず白目だけが表示されてしまいます。何度も記事を読み直しやり直してみましたが直りません。どうすれば良いのでしょうか?

  • 2018/02/28 (Wed) 21:31
    NF / URL
    匿名さん >>

    目の部分のマテリアルのRenderModeがTransparentになっていると透明になる場合があります。
    また、マテリアルに適用されているテクスチャが違うと関係ない場所が表示されたりもするので、そのあたりかもしれません。
    もう少し詳細が分かれば調べたりも出来るのですが...。

Leave a Reply

管理者にだけ表示を許可する