Help us understand the problem. What is going on with this article?

【Blender初心者向け】Cats Blender PluginをつかってVRoidモデルを軽量化する

はじめに

VRoidモデルは重いらしいです。

alt
(このVRMは自作したものです)

VRoidモデル数十体をOculus Quest上で動かす必要があったのでモデルを軽量化しようと試みましたが、CG系は無知な人間なので「simplygon」やblender上でメッシュを削減させる方法など、ことごとく上手くできませんでした…

そこでたどり着いたのがBlenderのプラグイン「Cats Blender Plugin」です。
3DモデルをVRChat向けに最適化するためのプラグインで、いろんな種類のファイルのインポート機能、ワンクリックモデル最適化などが備わっているらしいです。

ここでは、Cats Blender Pluginを使った軽量化方法を書きたいと思います。
Blenderの使い方の説明よりかは、Blenderがわからなくてもすぐにモデルを軽量化したい人向けに書いたので、かなり図が多めです。
(ちなみに自分はBlenderまったくわかりません笑)

バージョン

  • Blender 2.8
  • Unity 2019.1.11f1

インストール

Blenderのインストール

Blenderをインストールします。Blenderダウンロード

今回は最新バージョンをダウンロードしました
alt

Blenderの日本語化

ダウンロードが終わったら、まず初めに英語だとわかりにくいので日本語に設定します。

  • blenderを起動、左上にある「Edit」タブを選択、「Preferences」を起動
  • 左のメニューを「Interface」に変更し「Translation」にチェックをいれる
  • 「Language」を日本語に設定
  • 「Interface」にチェックをいれる alt

参考:Blender 2.8 正式版のダウンロード方法

VRM IMPORTERをインストール

Cats Blender Pluginをインストールするまえに、blender上でVRMファイルを読み込むことを可能にできる「VRM IMPORTER」をインストールします。

  • iCyP/VRM_IMPORTER_for_Blender2_8からZipファイルをインストール
  • ダウンロードした VRM_IMPORTER_for_Blender2_8-master.zip を任意のフォルダに置く
  • Blenderを起動「編集->プリファレンス」を選択

alt

  • 「アドオン」タブを選択し、「テスト中」ボタンを選択した後に「Install」ボタンをクリックします。
  • ファイル選択画面が表示された後、先ほどダウンロードしたVRM_IMPORTER_for_Blender2_8-master.zipを選択
  • アドオン一覧に「VRM_IMPORTER」が表示される
  • チェックボックスにチェックを入れる alt
  • メニューからファイル->インポートを開き、「VRM(.vrm)」の項目が追加されていればインストール終了

参考:BlenderでVROIDモデル(VRMファイル)を読み込む(VRM_IMPORTERアドオン Blender 2.8版)

Cats Blender Pluginをインストール

先ほどのVRM IMPORTERとほぼ同じやり方でインストールしていきます

  • michaeldegroot/cats-blender-pluginからzipファイルをダウンロード
  • blenderを起動し、「編集->プリファレンス」を選択
  • 「アドオン」タブを選択し「インストール」ボタンをクリック
  • ファイル選択画面がでてくるので、ダウンロードしたcats-blender-plugin-master.zipを選択
  • プリファレンスの画面に戻った後に、「コミュニティ」ボタンをクリック
  • 「3D View:Cats Blender Plugin」が表示されるので、チェックマークを付ける alt
  • 初期段階では、右サイドにメニューバーが隠れているので、クリックしながら左に寄せると「CATS」のタブが表示される altalt

参考文献:Cats Blender Pluginのインストール【他の必要ツールも一気に準備】

軽量化

早速、Cats Blender Pluginを使って、軽量化していきたいと思います。
今回、軽量化するモデルはこちらのモデルを使います

alt

服だけを変更した初期の男性モデルをつかっていきます。

alt

ちなみに、ファイルサイズは16MBあります。

初期画面の「Collection」「Camera」「Cube」「Light」を削除

VRMを軽量化するのに必要がないので削除します

  • Shiftキーを押しながらシーンコレクション内の「Camera」「Cube」「Light」を選択し、右クリック alt
  • 「削除」を選択すると、シーン内のキューブが表示されなくなります
  • そのあとに、「Collection」も不要なので削除します alt

この状態で、VRMファイルをインポートします

VRMファイルをインポート

  • 「Import Model」を右クリックします

alt

  • ファイル選択画面がでるので、インポートしたいVRMファイルを選択します。
  • 選択後に、3Dビュー上にモデルが表示されます。

alt

視点移動の仕方

モデルが表示されたので、視点移動の仕方について触れておきます。

視点回転

  • マウスのスクロールボタンを押しながらマウスを動かすと、視点を回転できる

alt

視点平行移動

  • Shiftを押しながら、マウスのスクロールボタンを押して、マウスを動かす

alt

くわしくはこちら:【Blender】3Dビュー上での視点の移動・ズーム・回転

用語

また、ここで用語についても触れておきます。

  • Blenderにはさまざまなモードがあり、基本的には「オブジェクトモード」「編集モード」をつかう
    • オブジェクトの選択は、「オブジェクトモード」で行う
    • 「オブジェクトモード」⇔「編集モード」の切り替えはTabキーでできる 

alt

くわしくはこちら:Blender 2.8を始める④ ~基本の操作方法!これだけは最初に覚えよう~
※自分もよくわかっていないので、詳しい人がいれば書き直してほしいです。

最適化

  • 「Fix Model」ボタンを押すと、VRChat用に最適化してくれます。
    • 5秒ぐらいで最適化されます。

alt
最適化された後の様子です↓
alt

余分なポリゴンを削除する

これからは、マテリアルごとにオブジェクトを分解し、ポリゴンの下に隠れているポリゴンを削除するという作業をします。
例えば、服の下に隠れている体の部分を削除します。

  • シーンコレクション内でbodyを選択

alt

  • Tabキーを押して、編集モードにする
    • (Aキーで全選択)

alt

  • Pキーを押すと、分離設定がでてくるので「マテリアルで」を選択する

alt

  • マテリアルごとに、オブジェクトが分割される

alt

  • Tabキーで「オブジェクトモード」に変更してから、Body××のオブジェクトを一つずつ選択し、ポリゴンの中に隠れているポリゴンを探していきます。
    • 表情のモーフがあるので、なるべく顔はいじらないほうがいいです。

alt

  • 発見したら、「トランスフォーム」の「位置」を操作し、本体からずらす

alt

ここからポリゴンの削除作業に入ります。

  • 3Dビューをクリックした後、Tabキーで「編集モード」に変更
  • 「透過表示」を選択

alt

  • 他のポリゴンと重なっている部分を選択
    • 裏側も選択されているか確認する

alt
alt

  • Deleteキーを押し、「頂点を溶解」を選択

alt

  • 中が空洞になるまで、この作業を繰り返す。
    • 中が空洞ではないと、モデルが動いたときにいびつなポリゴンが体からでてしまうことがある。

alt

  • 削除が完了したら、元の位置に戻す。

alt

  • 分離したオブジェクトを統合するために、「Model Options -> Joint Meshes -> すべて」を選択

alt

  • 元通りに!

alt

自動でポリゴン数を削除

次は全体的にポリゴン数を減らしていきます。
Cats Blender Plugin自体、自動でポリゴン数を減らしてくれる機能があるのでそれを使います。

  • ポリゴン数が1万ほどあるので、8000ぐらいにしようと思います

alt

  • 「Decimation」の「Tris」に希望するポリゴン数を入力します。

alt

  • 「Quick Decimation」を押せば、ポリゴン数を減らすことができます。

alt

マテリアルの統合

マテリアルの多さもモデルの容量に比例していくらしいので、今度はポリゴン数の削減だけではなく、マテリアルをいくつか統合していこうと思います。

  • 「最適化」の「Generate Material List」を選択

alt

  • モデルに含まれるマテリアルが表示されます。

alt

  • 「Hair」「HairBack」「FaceBrow」「FaceEyelash」「FaceEyeline」「Eyeextra」のチェックを外します。(今回はHairがありません…)
    • Unityで動かす際に、髪の毛の色や眉毛の色などを変更しやすくするため
    • 髪の毛など統合すると真っ白に表示されるため
    • VRoidは初期状態で白色ベースの髪のテクスチャに色を重ねて表現しているかららしいです。
    • 参考:VroidモデルをCLIP STUDIOにインポートする方法【VRM/FBX】
  • チェックを外した後に、下の「Save Atlas to..」を選択
  • ファイル選択画面がでてくるので、任意の場所にAtlasを保存する
    • 最後にモデルをエクスポートする場所と同じにしてください

いくつかのマテリアルが統合されました
alt

  • 眉毛の色とまつげの色が同じなので、「FaceBrow」「FaceEyelash」「FaceEyeline」「EyeExtra」にチェックをいれ、先ほどと同じ要領で「Save Atlas to..」を選択し、任意の場所でAtlasを保存、マテリアルを統合する

マテリアルが3つになりました
alt

エクスポート

最後に「Model」の「Export Model」を押し、Atlasを保存した場所にエクスポートすれば完了です。

alt

軽量化したモデルは655KBになりました!

alt

軽量化したモデルをUnityに表示する

今度は軽量化したモデルをUnityに表示したいと思います。

  • UniVRMをインストール
    • vrm-c/UniVRMからUniVRMのパッケージをダウンロードし、Unityにインポートします。
    • VRM独自のMToonを使うためにUniVRMをインストールします

alt

  • UniVRMをインポートしたら、次にBlenderで軽量化したモデルをドラック&ドロップでインポートします

alt

  • 「Inspector->Materials」を開いて、「Location」を「Use External Materials(Legacy)」に変更し「Apply」をクリックします。

alt

  • 「Materials」フォルダが作成されるので、そのフォルダに移動

alt

  • Atlas画像と統合しなかったHairの画像をドラック&ドロップでインポートします。
    • インポートする画像は統合のしかたにより変わります。
    • 今回はHairの画像を統合しなかったので、BlenderにVRMをインポートしたときに作成された画像をインポートします。

alt
alt

  • Materialを以下のように設定しなおします。
    • 「Shader」を「VRM/MToon」に変更
    • 「Rendering Type」を「Cutout」に変更
    • インポートした画像を以下のようにドラック&ドロップ

alt

  • 髪の毛や眉毛は白く表示されてしまうので、Unity側で色を指定し直します。

alt
alt

これでUnityに元のVRoidで作成したものとほぼ同様に表示することができた。

alt

オリジナルのモデルと同様、表情モーフなどもあるので口パクやアニメーションをつけることができます。

最後に

一人称表示の仕方も残しておきたいのですが、疲れたのでここで一旦終了します。
画像サイズとかはちゃめちゃなので後で直します。

Blenderの使い方がわからない&急いでいる方に見ていただければ幸いです。

参考文献

Cats Blender Plugin関連

その他

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした