メープルちゃんをclusterに連れていきたい!!!
※記事作成日:2021/05/01
==========================================
https://gyazo.com/1be2591e6bcb84636b200a77b227e655
==========================================
前置き
先に書いておくと、むちゃくちゃ面倒&ここで紹介する方法はツール購入に5000円必要です。
つまるところ、メープルちゃんに限らず、VRChatで使用しているBooth購入アバターが自分に馴染んでしまったので、clusterでも使いたいが、Web上に転がっているどのページを見てもVRoidモデル向けとかで上手くいかなくて困ってる...みたいな方向けの内容を想定しています。
==========================================
⓪とりあえずVRMファイルをclusterにアップロードしてみる!
(VRMとは?:ドワンゴを中心としたVRMコンソーシアムが提唱する人型キャラクターの3Dモデルデータ規格。clusterに任意のアバターをアップロードする際は、この規格に則ったファイルが必要。詳細()) 羊の女の子です!!!
かわいいのです!!!
https://gyazo.com/21f3d653150b69db04ae2064b94d75d7
このメープルちゃん、ありがたいごとにVRMファイルが最初から付属しているので、それを最初から使わせていただきます
(※なお、上記ツールとメープルちゃんが相性が悪いのか、エラーを吐いてしまうので用いてないという面もあります。テクスチャを自分のカラーリングのに交換するなどの作業は、この後でもできるので、そこは心配しなくて大丈夫です!)
ということで、下のページでアバターをアップロード!!
https://gyazo.com/9acc754324f364d5fdff85bf0826467a
・・・
・・・
https://gyazo.com/0242ac649bbed6715064ab489fdcb96f
(><。)
VRMファイル、ちゃんとアップロードしたじゃん!!
...ClusterはスマホでもプレイできるVRSNSなので、その代償としてむちゃくちゃアバターの制限が厳しいのです(cf. カスタムアバターの制限) どうしましょう?
ということで、この記事の本編のはじまりはじまり~
==========================================
①まずは、Blenderであれこれやってみる!
さきほどのエラー画像を見返してみて下さい
この章では、まずmorph Targetとpolygonの対応をしていきます
https://gyazo.com/004c3f54b63c5210b09e7d18a00d7771
VRChatterならポリゴン数はなんとなく分かるけど、morph Targetってなんだろう?となる方が多いと思いますが、シェイプキーのことです
(↓Unity上で見かけるこういうやつ)
https://gyazo.com/a46a247b850431b2150caeff622526cc
ということで、Blenderの用意をしていきましょう!
https://gyazo.com/7ad518bb3cf60f042739a7fac519abde
Download Blenderをポチり
あとは言われるままにやっていくと、あれやこれやの間にインストールが終わります
最新版は、初回起動時に使用言語確認もしてくれてむちゃくちゃ便利!やったね!!
(今回、筆者は日本語で設定しました)
さて、Blenderちゃん最初からVRMファイルを扱うことはできないので、VRM Add-on for Blenderをインストールする必要があります
https://gyazo.com/fdf9cc66c5785a6b6cf0a23b6cdcf48b
これを押してくれみたいな感じで、Download Add-onがあるのでクリック
すると、zipファイルがダウンロードされますが、解凍はしなくて大丈夫です!
https://gyazo.com/e62861469e4356a3a864f5f9e3a4ac60
インストール手順も、先ほどのページに載ってるので、それに従って下さい
https://gyazo.com/acee223a5999ee57975e34ab34e3741b
するとあら不思議、VRMファイルが使えるようになりました!
https://gyazo.com/4ce70f95bb0bc92194b24c585997f976
次に、Blender初期画面にあるCollection, Camera, Cube, Lightを削除していきます
まず、Camera, Cube, LightをShiftキーを押しながらまとめて選択し、右クリックで削除
同様にCollectionも削除します
https://gyazo.com/9cdf5c76584ad5cb692434ee0af70342
https://gyazo.com/1f23c806df0bbaf619f637ccb1d4a561
この状態で、VRMファイルをインポート
https://gyazo.com/e78e85958f13d60b556f5bf288f967ca
ファイル→インポート→VRMで、メープルちゃんのVRMをインポート
https://gyazo.com/533f556c7ac84ea9a94619c1a0d56e00
やったね、準備完了!
Blenderの簡単な操作説明
❶視点拡大縮小
マウスをスクロール
❷視点回転
マウスホイールをクリックしながら動かす
画面右上の●の部分をクリックすることで、上下左右前後の方向からに切替可
https://gyazo.com/60ddb1b74a3bd29faa05b918e0d22888
❸視点移動
Shift + マウスホイールをクリックしながら動かす
❹オブジェクトの表示方法
画面右上のhttps://gyazo.com/428d8fe6c162e1fde029261e97e646dbで、見え方が変わるよ
https://gyazo.com/a28f4e009d7010169dd87fdd8b3e90f0https://gyazo.com/a1277fdfc925833847e9bb414e0602afhttps://gyazo.com/f7652baa3c956cea72c024df3d4df6eb
❺ポリゴン数とかの情報表示
右上のビューポートオーバーレイより、統計にデフォルトで☑が入っていないので入れる
https://gyazo.com/d1de32bbb0f07da8baa0d972b80a9ef1
すると、左上にこんな表示が(三角形面がいわゆるポリゴン数です)
https://gyazo.com/d13e54c818b76afcf002203ff6cd2475
morph Target対応(上限64)
https://gyazo.com/692cba69e07c29e6e2d16568d0481d7d
右上のシーンコレクションより、Armature→Bodyを選択
右下のオブジェクトデータプロパティのタブを選択すると、シェイプキーの項目がずらーっと出てきます
(VRCアバターは顔に当たる部分に、表情変化の都合からたくさんシェイプキーがあることが多い)
https://gyazo.com/6c335a8f1ae9ccfc7496e71c854d2cf4
メープルちゃんは、69個のシェイプキーがあり、上限が64個なので、5個消しちゃえば勝ちです
ちなみにシェイプキー名に、VRCもしくはvrcと付いたものが19個あるのですが、VRChat向けのものなので消しちゃっても大丈夫
https://gyazo.com/cd7b5eed2f3e87d02bf6803304f426c3
シェイプキーを選択し、リスト右上の⊟を押すと、削除されます
ということで、morph Target対応は完了です!!!
polygon対応(上限32,000)
https://gyazo.com/e51f36cf88bc6b4ba172124716759d2a
ここが、全工程でおそらく一番めんどくさいところ
メープルちゃんの場合は、ポリゴン数を約半分にまで削らないといけません
仕方がないので、まず小物類でいらないものを消していきます
Accessary
Bag
Shushu
←Before After→
https://gyazo.com/c93af86549e803c80bce7f7e3d81f8b2https://gyazo.com/9ab21632ad75326e53a24bdb55b7916c
これ以上は、メープルちゃんのアイデンティティに関わってくるので削除なんてできない。。。
この時点でポリゴン数52,560、まだ1万しか減ってません
次はどうしましょう?
見えない部分を消していくしかないですね
ということで、メープルちゃん改変つよつよ勢には公然の事実、そうでない人にはいきなりのグロ画像になってしまうのですが、メープルちゃんのBody2のみを表示すると、お洋服で隠れた部分の体が大変なことになってるのが分かります。
体が服から浮き出てきてしまうのを防ぐための仕掛けで、Body2のシェイプキーを調整すれば元に戻すことができますが、他のお洋服に着せ替えをしない限りはこの部分はなくてもいいから、こうなっているので、この部分のポリゴンをまとめて削除してしまいましょう。
https://gyazo.com/73dd178870be756f0ad6ddff5d0a2996
左上のオブジェクトモードを編集モードに変更します
https://gyazo.com/c2dae95f0b2474fa0c8020b94eadf7b2
https://gyazo.com/4dd8fc437089db347cb711881fcf6c7c
続いて、モード選択ボタンより右に3つ目の面選択をクリックします
これで、ポリゴンを選択できるようになりました
左をクリックしながらマウスを動かすことで範囲選択ができ、かつshiftキーを押しながらだと、いままでに選択した分にまとめて追加ができます
ちなみに各ポリゴンの中心には黒い点があり、それを選択しても良し
また、選択した部分をもう一度クリックすることで、解除もできます
(慣れるまで大変だけど、慣れてしまえばむちゃくちゃ簡単です 下の選択も5分弱で終わったので)
こんな感じで選択出来たら、
https://gyazo.com/27584c58c1532002e863feb1208f0617
Deleteキーを押し、面を選択します
https://gyazo.com/f517947f192761cf6bd68f1b2929560b
https://gyazo.com/e61b8c016235f644c284050edc3492f1
無事、消去できました!
という作業を、メープルちゃん足も同じようなことになってるのでおこないます
https://gyazo.com/beefe5ec6f41d1051edb0c40d0a8c40e
ここまで終わったら、一度オブジェクトモードに戻して、全体のポリゴン数を確認しましょう
https://gyazo.com/b1d197e3f51d0bec94bb1219b2e5bc1e
うぅ...まだぜんぜん(><)
仕方ありません、最終手段の出番です...
その前に、ちょっと準備のお時間
次の作業、シェイプキーが残っている場所に適用できないのですが、メープルちゃんのBody2には先ほど話した通り、シェイプキーがあるので全消去する必要があります
Body2を選択し、シェイプキーを消去!
https://gyazo.com/44a6a949e5bd2ce28da542ccd5047a8bhttps://gyazo.com/3569d1d4e12d81ccff632c2719835cc2
同じく、Hairにもあるのでこちらも消去
これで準備完了です♪
(注意:表情が適用されている場所(メープルちゃんの場合はBody)には、顔の表情がおかしくなってしまう可能性があるので、上の全消去作業、及び下のポリゴン数削減作業は行わないでください)
最終手段は何かというと、勝手にポリゴン数削減を行ってくれるツールを用いる方法です
ポリゴン削減したいものを選択し、左下のモディファイア―プロパティーのタブを開きます
https://gyazo.com/c35e793e41bbbd19628489f8aafe568a
モディファイア―を追加→デシメートを選択
https://gyazo.com/155b9c58099d8e398277f1cb680d908b
すると、こんなのが登場します
https://gyazo.com/04015a1a61007e5e5312d37176618212
さて、この比率のスライダーを変えてみましょう
どんどんローポリになっていくではありませんか!
https://gyazo.com/01a41068c0dc9b6d211d4f29578376bahttps://gyazo.com/77107c18f8663bf2e654e2d7ea26b22f
ということで、これをBody以外の全パーツで許容できる範囲でかつポリゴン数上限を下回るように調整をしていきます
気をつけて欲しいのが、ポリゴン数削減の程度によっては、テクスチャの描写がおかしくなってしまうことがあったりするので、ちゃんとテクスチャが上に載った状態での見え方も確認しながら行っていくことをおすすめします。
(←1.00 0.67→)
https://gyazo.com/b6aa8586f3027da8544a17375b190e18https://gyazo.com/f87b69c417f631a7013fa900929d68ee
試行錯誤を繰り返し...
https://gyazo.com/8ecd2494bfc9030acef5ae9bc6c0bb95
やった!!32,000ポリゴンを下回ったよ!
ちなみにこのポリゴン数削減の状態は、まだ適用されてないので、適用してあげる必要があります
https://gyazo.com/bb7b57d88f59c711e10854613b07e3e3
デシメート右上の∨を選択し、適用をクリック
これを、ポリゴン数削減を行ったすべてにおこなってあげます。
ということで、長かったpolygon対応もこれで完了です!!!
VRMファイルにエクスポートする
次の作業は、Unityで行うので、VRMファイルとしてエクスポートしちゃいます
ファイル→エクスポート→VRM
https://gyazo.com/70cbb9a48524444e051444d792958ed6
これで、Blenderともおさらばです
==========================================
②つぎに、Unityであれこれやってみる!
ということで、一番最初のエラー画像を見返してみます
morph Targetとpolygonは解決したので、残りはこれだけ
https://gyazo.com/75a938bf395320cc9a7e2762a02187da
今度は、Unityを用いて残りを解決していきます
Unityのバージョンは、VRChatter御用達、2018.4.20f1で大丈夫で問題ありません
https://gyazo.com/7cdef9ac138529e91f8adda2ec0c1c17
ということで、起動してみたはいいものの、Blenderと同じくUnityちゃんも最初からVRMファイルを扱うことができないので、UniVRMをインストールします
(機能的にはUniVRM単体でも問題ない(はず)が、VRChatter向けVRM関連ツール(UniVRM含む)みたいなのがあり、私個人としてはそちらを利用するのが慣れているので、そちらで説明します)
こちらのページの、バージョンが一番新しいやつをダウンロード
https://gyazo.com/a534f4589f7a88c0090113d072cf7b5b
zipファイルを解凍すると、こちらが出てくるので、
https://gyazo.com/e1d9bace10179aca7dc2593613d8fe9c
UnityのAssetsに突っ込んで、インポートします
https://gyazo.com/585ae8d023e1acda6c7d056e70293128
その後、先ほどBlenderで出力したVRMファイルを、UnityのAssetsに突っ込むと。。。
https://gyazo.com/fac305864c4fb867180877505fc9cf90
Prefab化したVRMファイルが登場します
これをHierarchyに入れてあげると。。。
https://gyazo.com/53fa4b35f7a6a9d162c34d3bd0daf877
?????
だれ???
となりますが、Blenderから出力時にShaderの(透過関係の)設定がおかしくなっているだけなので、心配なさらず
メープルちゃんの場合は、Hairと表情のMaterialを選択し、Rendering→Mode→Rendering TypeをTransparentからTransparentWithZWhiteに変更すると元に戻ります
(メープルちゃん以外の場合は、Blenderに突っ込む前のVRMファイルをUnity上で確認し、Shaderの設定が変っているところを直してもらえればいいかも)
https://gyazo.com/024c0d6916c40993a19a4a8c55e34ea8
https://gyazo.com/d5d4cc7fc69d0b72326bacb698e520cb
https://gyazo.com/f604f2129b57134642e55288c9f4b450
これで、Unity上であれこれやってみる準備は終わりになります
メープルちゃんをオリジナルカラーに変更
テクスチャを普段自分が使っているメープルちゃんのに変えてしまうだけです
https://gyazo.com/0306fc4119b56d5dc1e7e8211367fdce
joint対応(上限128)
https://gyazo.com/8ee16b8229f174a089794121f1ecde73
いわゆるボーン数のことです
ボーンの操作は、Blenderで行うことが一般的な感じですが、VRMファイルのボーンをBlenderで扱うと、なぜかBlender側の表示ボーン数とVRM側の表示ボーン数が異なってしまい、(Blender側で必死にボーン削ったのに、VRM側のボーン上限に引っ掛かってアップロードできない....(><)....という感じで)どうしようもなかったので、Unity上でボーン削減が問題なく行えるツールをここでは利用します。
https://gyazo.com/c45c3e82c69a01d27b97e5fb1e883b7a
こちらのページよりダウンロードし、解凍、
https://gyazo.com/6a611f7fa32a1535dc21462fd2a6836f
でてきたunitypackageをAssetsにD&Dして、
https://gyazo.com/6ca7a5768f80d652180b7279ff172e87
Importで準備は完了です
https://gyazo.com/ada81f2315d414a1ab5676b68f3920e6
左上GatoTool→ModelBoneDeleterで、
https://gyazo.com/e82d5b72fdad8b210ca71155a0e314d2
avatarにHierarchyにあるアバターの親を入れてあげます
エラーメッセージにでてきた現在のボーン数と多少ずれがあるのですが、下の方に書いてあるBoneCountの数字がボーン数と対応しているので、これを128以下になるようにボーンを削除していきます。
ここで注意して欲しいのが、体の骨格に当たるボーンを削除してしまうと、動かなくなるなどの不具合が発生するので、スカートや髪、アクセサリーの末端など、なくても大きな問題が起こらなさそうなボーンを中心に削除してください。ちょっと不安になったら、再生ボタンを押して、動かしてみて問題がないかを確認するみたいなことをやってみるといいかと思います。
また、アクセサリーのボーンとかでも、消してしまうとVRMファイルとして出力できなくなってしまうものがたびたびあるみたいなので、左上VRM0→Export UniVRMを選択し、
https://gyazo.com/c872be454bd2bf02c894074998ff185a
こちらのExportRootにボーン削除後のアバターを入れてもらって、VRChatのアバターアップロード前の確認画面と同じ感覚で、赤丸の!でエラーが出てないか確認してみて下さい。
https://gyazo.com/8f42a687b451f03d9124d4b3b2968f93
☑が入ってる(一部畳んでいる中にもあり)/緑のボーンが削除予定のボーンになります
https://gyazo.com/4cf0278809ae503f17f0b94dbce5531dhttps://gyazo.com/7acd0aa4fa74fb3cd0695a2e3111dc98https://gyazo.com/fd7f3f60394369b37fe357e37e222e83
元のアバターのrootに、_deleteBonesが追加されたやつがボーン削除後のになるので動作を確認してみて下さい
https://gyazo.com/6f4d2a7e6592336d508f43af38d1d1c7
https://gyazo.com/89c671ae2de07fe4ef97c9ab88bf6e2b
ということでボーン数128を下回ったので、これで対応完了です!
material対応(上限8)
https://gyazo.com/4156be90d49ef5a0ac2d46d114b52792
ここがこの記事冒頭で書いた、5000円ツール購入費にかかる部分になります
UnityAssetStoreで、Mesh Bakerを購入したことがある人は、こちらを使っても解決するかも(セールなどで日本円で5000円以下で買えることがあります/うちはかなり前にこのツールを買ってたのですが、英語よわよわなので操作方法が分からず諦めました) ということで、英語よわよわ、テクスチャとかメッシュの知識もなんとなくしか分からないっていう人でも、むちゃくちゃ簡単にしかも日本語で使えるツールを見つけたので、ここではこちらを使います!
https://gyazo.com/22c48cab112f04cc3e372e613279a293
こちらの上2つを購入する形です
ツール詳細としては、
メッシュをまとめる奴が、
https://gyazo.com/e2afe7530ce00b1b200e4c0cdbff40b0
たとえばこうなっているとき、HornとRibbonを同じオブジェクトにしてしまうみたいなことができます
(ただし、同じオブジェクトで複数マテリアルが存在する(マテリアル適用場所を分けている)状態になる)
アトラス化する奴が、
メッシュをまとめる奴だけだと、メッシュ数は減ったもののマテリアル数を減らすことができてないので、
https://gyazo.com/9c9c176dc272e53dae20108bd71c57c4
こんな感じのときに、このマテリアル2つあるのを1つでよくしてしまうみたいなことができます
(なので、アバターによっては、アトラス化する奴のみの購入でも問題ないことがあるかもです)
ということで、どのマテリアルを統合するかですが、
実はAccessary・Bag・Shushuをポリゴン対応の段階で削除したため、現時点でマテリアル数10に減っており、2つのマテリアルを1つにする作業を2回行えば、条件を満たすことができちゃいます!
https://gyazo.com/0b8fb1f6c5c32cf0ed09674ffa791ba0
今回は同じテクスチャを使っている関係から、Bellとひもを1つに、Shaderの設定項目がわりと近い関係からRibbonとShoesを1つにまとめます
ということで先ほどのページより、ツールをダウンロード/解凍し、AssetsにImportしちゃってください
https://gyazo.com/3f5ab28062d8d7f4a1329bbd7b748a72https://gyazo.com/961350a556b710e97a7989fac30601ac
https://gyazo.com/186935a9cdd755b58501e568b51cfe0ehttps://gyazo.com/6cd251038f5b9d570d06d73bc91f55c8
Bellとひもはマテリアルをまとめるだけなので、アトラス化するやつの操作が1回ですが、
RibbonとShoesはメッシュからまとめないといけないため、両方とも操作をするので、今回はこちらで説明をします
左上GameObject→Naya_Tools→Utility→メッシュ統合する奴
https://gyazo.com/bd610b68fa101d071d6ff75b603f6d2b
親オブジェクトに、アバターを入れ、メッシュ統合をしたいRibbonとShoesのみに☑を入れます
https://gyazo.com/b24fbcd1fedd4e59c89f94677c1ff7d5
メッシュ統合をするとこうなるので、RibbonとShoesを消して、Combined_アバター名を、アバターの子になるように入れてあげて下さい
https://gyazo.com/ba3b6be347dcab5afd0b7e91b88b0af2→https://gyazo.com/547056d1044cbe4dc851125d8692f807
続いて、マテリアルを統合する手順です
今度は左上GameObject→Naya_Tools→Utility→atlas化するやつを選択
https://gyazo.com/ab5bed129cbf50b06d6043d0e46fb092
出力テクスチャ名に、任意の統合後のテクスチャ名を、
処理するオブジェクトに、マテリアル統合したいオブジェクトを、
出力テクスチャサイズは、2048かそれより小さい値を(Cluster側の上限が2048なので)、
最初右側の方に、テクスチャが重なっている状態なので、個別にテクスチャの場所を選択して、だぶらないようにし、
追加するを押します
https://gyazo.com/bc1b1a3903f4ff41f7b5c6962cd35a4a
完了すると、一度変な感じになりますが、
https://gyazo.com/22ed5cb1f9c96a4b49f1bffd1b18a171
https://gyazo.com/73904bcaa034141ea19e4c2d76f31163
ここのMaterialのSizeを1にし、残ったMaterialのテクスチャを、Assets/Naya_Tools/Utility/atlasに出力された新しいテクスチャに変更します
https://gyazo.com/b28bb55907bf3a7c49a421e94a9cf038
すると、元通り!!!
https://gyazo.com/7424631c022e65393e3befb135062128
(Shaderの設定によっては、色味などが変になっている可能性があるので、適宜Shaderの設定を調整して下さい)
これをBellとひもの方にもおこなってあげて、無事、マテリアル数も対応完了です!!!
imageResolution対応(上限2048x2048px)
https://gyazo.com/e313d4087219548a82b37a8a47cde669
あとは簡単!!
先ほど軽く触れたのですが、テクスチャ解像度の上限が2048x2048pxという制限があるので、それを上回っているテクスチャがあれば(今回はBody・Hair・Wear等が4096x4096px)、GIMPなどで小さくしちゃって下さい!
はい終了、これで制限対応は終わりです
お疲れさま!!!
VRMファイルに出力する
後はClusterにアップロードするためのVRMファイルを出力するだけです
左上VRM0→Export UniVRMを選択
https://gyazo.com/702999a1b7ba65f3db677b29f67a4815
ExportRootに出力したいアバターを入れて、赤丸!は自動で直してくれるっぽいので、reset~をポチッ
https://gyazo.com/74ba0a771be7fb4bf817a3444d78641e
必要事項などを入れ終わったら、Exportしちゃって下さい!!!
無事出力も完了しましたか?
あとは、アップロードするだけです
==========================================
③完成したVRMファイルをclusterにアップロードしてみる!
ここのページへ行って、Let'sアップロード!
https://gyazo.com/5564bb76f94d520a0432c0dbff18f0a1
アバター名は再アップロードしない限り後から変更できないので、ちゃんと入力してね!
https://gyazo.com/c4d614eb2f4111ba025b01c452cbc70e
やったね!アップロードできたよ!!!
動作確認も兼ねて、いろんなところ回ってみてね!!!
https://gyazo.com/5121e4c6df99d54ed9bb86a16bafd7bc
https://gyazo.com/6800e01e382f5f43210ee9c5f4a7e053
ここまで、つきあってくれてありがと♪