generated at
メープルちゃんをclusterに連れていきたい!!!
※記事作成日:2021/05/01
※記事内容にミスなどがあれば、@MapleChan_s3 にDMで問い合わせていただけると助かります。
このページの軽量版(表示が大きく崩れている場合があります)
==========================================
==========================================
前置き
先に書いておくと、むちゃくちゃ面倒&ここで紹介する方法はツール購入に5000円必要です。
clusterにオリジナルアバターで行きたいだけなら、もっと簡単な方法がある (REALITYのアバターを用いるセシル変身アプリを用いるなど) ので、そちらをおススメします。
つまるところ、メープルちゃんに限らず、VRChatで使用しているBooth購入アバターが自分に馴染んでしまったので、clusterでも使いたいが、Web上に転がっているどのページを見てもVRoidモデル向けとかで上手くいかなくて困ってる...みたいな方向けの内容を想定しています。
==========================================
⓪とりあえずVRMファイルをclusterにアップロードしてみる!
(VRMとは?:ドワンゴを中心としたVRMコンソーシアムが提唱する人型キャラクターの3Dモデルデータ規格。clusterに任意のアバターをアップロードする際は、この規格に則ったファイルが必要。詳細(https://vrm.dev/))

ということで、このページでは、メープルちゃんを例に扱います
羊の女の子です!!!
かわいいのです!!!
このメープルちゃん、ありがたいごとにVRMファイルが最初から付属しているので、それを最初から使わせていただきます

(※最初からVRMファイルが用意されていない場合は、VRChat用モデルを標準アバター形式「VRM」へ変換するを参考にして、VRMファイルにしてみて下さい!)
(※なお、上記ツールとメープルちゃんが相性が悪いのか、エラーを吐いてしまうので用いてないという面もあります。テクスチャを自分のカラーリングのに交換するなどの作業は、この後でもできるので、そこは心配しなくて大丈夫です!)

ということで、下のページでアバターをアップロード!!
・・・
・・・
(><。)
VRMファイル、ちゃんとアップロードしたじゃん!!

...ClusterはスマホでもプレイできるVRSNSなので、その代償としてむちゃくちゃアバターの制限が厳しいのです(cf. カスタムアバターの制限
(なので、VRoid HubTHE SEED ONLINE等には、テクスチャ容量が異常に大きいとかでない限り、問題なくアップロードできるはずです)

どうしましょう?
ということで、この記事の本編のはじまりはじまり~
==========================================
①まずは、Blenderであれこれやってみる!
この章の執筆にあたり、同じ有坂みとさんのアバターのリアアリスちゃんを例に記事を書いていた方がいたので、リアアリスさんをclusterに連れて行こうを参考にさせていただきました。
ちなみにここの手順、最初は【Blender初心者向け】Cats Blender PluginをつかってVRoidモデルを軽量化するを参考にしてみたのですが、メープルちゃんとCats Blender Pluginとの相性が悪いみたいで、VRMファイルが上手く作成できなかったので、VRM Add-on for Blenderをインポートする手順までを参考にさせていただきました。

さきほどのエラー画像を見返してみて下さい
この章では、まずmorph Targetpolygonの対応をしていきます

VRChatterならポリゴン数はなんとなく分かるけど、morph Targetってなんだろう?となる方が多いと思いますが、シェイプキーのことです
(↓Unity上で見かけるこういうやつ)

ということで、Blenderの用意をしていきましょう!
Download Blenderをポチり
あとは言われるままにやっていくと、あれやこれやの間にインストールが終わります
最新版は、初回起動時に使用言語確認もしてくれてむちゃくちゃ便利!やったね!!
(今回、筆者は日本語で設定しました)

さて、Blenderちゃん最初からVRMファイルを扱うことはできないので、VRM Add-on for Blenderをインストールする必要があります

これを押してくれみたいな感じで、Download Add-onがあるのでクリック
すると、zipファイルがダウンロードされますが、解凍はしなくて大丈夫です!

インストール手順も、先ほどのページに載ってるので、それに従って下さい

するとあら不思議、VRMファイルが使えるようになりました!

次に、Blender初期画面にあるCollection, Camera, Cube, Lightを削除していきます
まず、Camera, Cube, LightをShiftキーを押しながらまとめて選択し、右クリックで削除
同様にCollectionも削除します

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

ファイル→インポート→VRMで、メープルちゃんのVRMをインポート

やったね、準備完了!


Blenderの簡単な操作説明
❶視点拡大縮小
マウスをスクロール
❷視点回転
マウスホイールをクリックしながら動かす
画面右上の●の部分をクリックすることで、上下左右前後の方向からに切替可
❸視点移動
Shift + マウスホイールをクリックしながら動かす
❹オブジェクトの表示方法
画面右上ので、見え方が変わるよ
❺ポリゴン数とかの情報表示
右上のビューポートオーバーレイより、統計にデフォルトで☑が入っていないので入れる
すると、左上にこんな表示が(三角形面がいわゆるポリゴン数です)

morph Target対応(上限64)
右上のシーンコレクションより、Armature→Bodyを選択
右下のオブジェクトデータプロパティのタブを選択すると、シェイプキーの項目がずらーっと出てきます
(VRCアバターは顔に当たる部分に、表情変化の都合からたくさんシェイプキーがあることが多い)
メープルちゃんは、69個のシェイプキーがあり、上限が64個なので、5個消しちゃえば勝ちです
ちなみにシェイプキー名に、VRCもしくはvrcと付いたものが19個あるのですが、VRChat向けのものなので消しちゃっても大丈夫
シェイプキーを選択し、リスト右上の⊟を押すと、削除されます
ということで、morph Target対応は完了です!!!


polygon対応(上限32,000)
ここが、全工程でおそらく一番めんどくさいところ
メープルちゃんの場合は、ポリゴン数を約半分にまで削らないといけません

仕方がないので、まず小物類でいらないものを消していきます
Accessary
Bag
Shushu

←Before After→
これ以上は、メープルちゃんのアイデンティティに関わってくるので削除なんてできない。。。
この時点でポリゴン数52,560、まだ1万しか減ってません

次はどうしましょう?
見えない部分を消していくしかないですね

ということで、メープルちゃん改変つよつよ勢には公然の事実、そうでない人にはいきなりのグロ画像になってしまうのですが、メープルちゃんのBody2のみを表示すると、お洋服で隠れた部分の体が大変なことになってるのが分かります。
体が服から浮き出てきてしまうのを防ぐための仕掛けで、Body2のシェイプキーを調整すれば元に戻すことができますが、他のお洋服に着せ替えをしない限りはこの部分はなくてもいいから、こうなっているので、この部分のポリゴンをまとめて削除してしまいましょう。

左上のオブジェクトモードを編集モードに変更します
続いて、モード選択ボタンより右に3つ目の面選択をクリックします
これで、ポリゴンを選択できるようになりました

左をクリックしながらマウスを動かすことで範囲選択ができ、かつshiftキーを押しながらだと、いままでに選択した分にまとめて追加ができます
ちなみに各ポリゴンの中心には黒い点があり、それを選択しても良し
また、選択した部分をもう一度クリックすることで、解除もできます
(慣れるまで大変だけど、慣れてしまえばむちゃくちゃ簡単です 下の選択も5分弱で終わったので)
こんな感じで選択出来たら、
Deleteキーを押し、面を選択します
無事、消去できました!

という作業を、メープルちゃん足も同じようなことになってるのでおこないます

ここまで終わったら、一度オブジェクトモードに戻して、全体のポリゴン数を確認しましょう
うぅ...まだぜんぜん(><)

仕方ありません、最終手段の出番です...
その前に、ちょっと準備のお時間
次の作業、シェイプキーが残っている場所に適用できないのですが、メープルちゃんのBody2には先ほど話した通り、シェイプキーがあるので全消去する必要があります
Body2を選択し、シェイプキーを消去!
同じく、Hairにもあるのでこちらも消去
これで準備完了です♪
(注意:表情が適用されている場所(メープルちゃんの場合はBody)には、顔の表情がおかしくなってしまう可能性があるので、上の全消去作業、及び下のポリゴン数削減作業は行わないでください)

最終手段は何かというと、勝手にポリゴン数削減を行ってくれるツールを用いる方法です
ポリゴン削減したいものを選択し、左下のモディファイア―プロパティーのタブを開きます
モディファイア―を追加→デシメートを選択
すると、こんなのが登場します

さて、この比率のスライダーを変えてみましょう
どんどんローポリになっていくではありませんか!

ということで、これをBody以外の全パーツで許容できる範囲でかつポリゴン数上限を下回るように調整をしていきます
気をつけて欲しいのが、ポリゴン数削減の程度によっては、テクスチャの描写がおかしくなってしまうことがあったりするので、ちゃんとテクスチャが上に載った状態での見え方も確認しながら行っていくことをおすすめします。
(←1.00 0.67→)
試行錯誤を繰り返し...
やった!!32,000ポリゴンを下回ったよ!

ちなみにこのポリゴン数削減の状態は、まだ適用されてないので、適用してあげる必要があります
デシメート右上の∨を選択し、適用をクリック
これを、ポリゴン数削減を行ったすべてにおこなってあげます。

ということで、長かったpolygon対応もこれで完了です!!!


VRMファイルにエクスポートする
次の作業は、Unityで行うので、VRMファイルとしてエクスポートしちゃいます
ファイル→エクスポート→VRM

これで、Blenderともおさらばです
==========================================
②つぎに、Unityであれこれやってみる!
ということで、一番最初のエラー画像を見返してみます
morph Targetとpolygonは解決したので、残りはこれだけ
今度は、Unityを用いて残りを解決していきます

Unityのバージョンは、VRChatter御用達、2018.4.20f1で大丈夫で問題ありません
ということで、起動してみたはいいものの、Blenderと同じくUnityちゃんも最初からVRMファイルを扱うことができないので、UniVRMをインストールします
(機能的にはUniVRM単体でも問題ない(はず)が、VRChatter向けVRM関連ツール(UniVRM含む)みたいなのがあり、私個人としてはそちらを利用するのが慣れているので、そちらで説明します)
こちらのページの、バージョンが一番新しいやつをダウンロード

zipファイルを解凍すると、こちらが出てくるので、
UnityのAssetsに突っ込んで、インポートします
その後、先ほどBlenderで出力したVRMファイルを、UnityのAssetsに突っ込むと。。。
Prefab化したVRMファイルが登場します

これをHierarchyに入れてあげると。。。
?????
だれ???

となりますが、Blenderから出力時にShaderの(透過関係の)設定がおかしくなっているだけなので、心配なさらず

メープルちゃんの場合は、Hairと表情のMaterialを選択し、Rendering→Mode→Rendering TypeをTransparentからTransparentWithZWhiteに変更すると元に戻ります
(メープルちゃん以外の場合は、Blenderに突っ込む前のVRMファイルをUnity上で確認し、Shaderの設定が変っているところを直してもらえればいいかも)
これで、Unity上であれこれやってみる準備は終わりになります


メープルちゃんをオリジナルカラーに変更
テクスチャを普段自分が使っているメープルちゃんのに変えてしまうだけです


joint対応(上限128)
いわゆるボーン数のことです
ボーンの操作は、Blenderで行うことが一般的な感じですが、VRMファイルのボーンをBlenderで扱うと、なぜかBlender側の表示ボーン数とVRM側の表示ボーン数が異なってしまい、(Blender側で必死にボーン削ったのに、VRM側のボーン上限に引っ掛かってアップロードできない....(><)....という感じで)どうしようもなかったので、Unity上でボーン削減が問題なく行えるツールをここでは利用します。
こちらのページよりダウンロードし、解凍、
でてきたunitypackageをAssetsにD&Dして、
Importで準備は完了です

左上GatoTool→ModelBoneDeleterで、
avatarにHierarchyにあるアバターの親を入れてあげます

エラーメッセージにでてきた現在のボーン数と多少ずれがあるのですが、下の方に書いてあるBoneCountの数字がボーン数と対応しているので、これを128以下になるようにボーンを削除していきます。
ここで注意して欲しいのが、体の骨格に当たるボーンを削除してしまうと、動かなくなるなどの不具合が発生するので、スカートや髪、アクセサリーの末端など、なくても大きな問題が起こらなさそうなボーンを中心に削除してください。ちょっと不安になったら、再生ボタンを押して、動かしてみて問題がないかを確認するみたいなことをやってみるといいかと思います。

また、アクセサリーのボーンとかでも、消してしまうとVRMファイルとして出力できなくなってしまうものがたびたびあるみたいなので、左上VRM0→Export UniVRMを選択し、
こちらのExportRootにボーン削除後のアバターを入れてもらって、VRChatのアバターアップロード前の確認画面と同じ感覚で、赤丸の!でエラーが出てないか確認してみて下さい。

☑が入ってる(一部畳んでいる中にもあり)/緑のボーンが削除予定のボーンになります

元のアバターのrootに、_deleteBonesが追加されたやつがボーン削除後のになるので動作を確認してみて下さい

ということでボーン数128を下回ったので、これで対応完了です!


material対応(上限8)
ここがこの記事冒頭で書いた、5000円ツール購入費にかかる部分になります
どうしてもお金をかけたくないよという人は、Cats Blender PluginのMaterialの統合の部分を試してみて下さい
UnityAssetStoreで、Mesh Bakerを購入したことがある人は、こちらを使っても解決するかも(セールなどで日本円で5000円以下で買えることがあります/うちはかなり前にこのツールを買ってたのですが、英語よわよわなので操作方法が分からず諦めました)

ということで、英語よわよわ、テクスチャとかメッシュの知識もなんとなくしか分からないっていう人でも、むちゃくちゃ簡単にしかも日本語で使えるツールを見つけたので、ここではこちらを使います!
こちらの上2つを購入する形です

ツール詳細としては、
メッシュをまとめる奴が、
たとえばこうなっているとき、HornとRibbonを同じオブジェクトにしてしまうみたいなことができます
(ただし、同じオブジェクトで複数マテリアルが存在する(マテリアル適用場所を分けている)状態になる)
アトラス化する奴が、
メッシュをまとめる奴だけだと、メッシュ数は減ったもののマテリアル数を減らすことができてないので、
こんな感じのときに、このマテリアル2つあるのを1つでよくしてしまうみたいなことができます

(なので、アバターによっては、アトラス化する奴のみの購入でも問題ないことがあるかもです)

ということで、どのマテリアルを統合するかですが、
実はAccessary・Bag・Shushuをポリゴン対応の段階で削除したため、現時点でマテリアル数10に減っており、2つのマテリアルを1つにする作業を2回行えば、条件を満たすことができちゃいます!

今回は同じテクスチャを使っている関係から、Bellとひもを1つに、Shaderの設定項目がわりと近い関係からRibbonとShoesを1つにまとめます

ということで先ほどのページより、ツールをダウンロード/解凍し、AssetsにImportしちゃってください

Bellとひもはマテリアルをまとめるだけなので、アトラス化するやつの操作が1回ですが、
RibbonとShoesはメッシュからまとめないといけないため、両方とも操作をするので、今回はこちらで説明をします
左上GameObject→Naya_Tools→Utility→メッシュ統合する奴

親オブジェクトに、アバターを入れ、メッシュ統合をしたいRibbonとShoesのみに☑を入れます

メッシュ統合をするとこうなるので、RibbonとShoesを消して、Combined_アバター名を、アバターの子になるように入れてあげて下さい

続いて、マテリアルを統合する手順です
今度は左上GameObject→Naya_Tools→Utility→atlas化するやつを選択

出力テクスチャ名に、任意の統合後のテクスチャ名を、
処理するオブジェクトに、マテリアル統合したいオブジェクトを、
出力テクスチャサイズは、2048かそれより小さい値を(Cluster側の上限が2048なので)
最初右側の方に、テクスチャが重なっている状態なので、個別にテクスチャの場所を選択して、だぶらないようにし、
追加するを押します

完了すると、一度変な感じになりますが、
ここのMaterialのSizeを1にし、残ったMaterialのテクスチャを、Assets/Naya_Tools/Utility/atlasに出力された新しいテクスチャに変更します
すると、元通り!!!
(Shaderの設定によっては、色味などが変になっている可能性があるので、適宜Shaderの設定を調整して下さい)

これをBellとひもの方にもおこなってあげて、無事、マテリアル数も対応完了です!!!


imageResolution対応(上限2048x2048px)
あとは簡単!!
先ほど軽く触れたのですが、テクスチャ解像度の上限が2048x2048pxという制限があるので、それを上回っているテクスチャがあれば(今回はBody・Hair・Wear等が4096x4096px)、GIMPなどで小さくしちゃって下さい!

はい終了、これで制限対応は終わりです
お疲れさま!!!


VRMファイルに出力する
後はClusterにアップロードするためのVRMファイルを出力するだけです
左上VRM0→Export UniVRMを選択
ExportRootに出力したいアバターを入れて、赤丸!は自動で直してくれるっぽいので、reset~をポチッ

必要事項などを入れ終わったら、Exportしちゃって下さい!!!
無事出力も完了しましたか?
あとは、アップロードするだけです

==========================================
③完成したVRMファイルをclusterにアップロードしてみる!
ここのページへ行って、Let'sアップロード!

アバター名は再アップロードしない限り後から変更できないので、ちゃんと入力してね!

やったね!アップロードできたよ!!!

動作確認も兼ねて、いろんなところ回ってみてね!!!
ここまで、つきあってくれてありがと♪