リアアリスさんをclusterに連れて行こう
きっかけ
リアアリスさんかわいい!8/31までセール中!買おう!今!
とは別に、clusterのカスタムアバター制限をクリアするためにちょっと手を加えた手順をメモ。
毎回この手の変更は手順忘れて、古文書解読みたいになるので忘れないうちに。
とりあえずアップロードしてみよう
有難いことにVRM形式のファイルが入っているので、それをそのままアップロードしてみましょう。
というわけで、無事制限に引っ掛かりましたので対応していきましょう。
ちなみに制限についてのページはこちら。
カスタムアバターの制限 – ヘルプセンター | cluster(クラスター)
対応しましょう
参考までに今回使ったものの各種バージョンはこちら。
バージョンはメジャー部分が同じなら、それほど気にしなくてもいいかも。
VRMの生成は先達がたくさんいると思うので、今回はBlenderの操作を中心に書きます。
Blender v2.83.4 Unity 2018.4.20f1 UniVRM v0.57.1 リアアリス ver2.0
cluster側の制限はブログ投稿時点でのものを元にしています。
morph Target対応
特に決まりはないのですが、エラーの上から対応していきましょう。
morph TargetとはBlenderで言うところのShape Keyです。
リアアリスのBlenderファイルを開いて、Bodyを選択。
逆三角形のObject Data Propertiesを選択。
Shape Keysの欄にずらりと並ぶモーフ用の設定。
沢山あるのはありがたいのですが、今は制限クリアのために悲しみの涙を流しながらいくつか削除しましょう。
先頭にvrcとあるものはその通りVRChat向けのShape Keyなので消しても、それほど影響ありません。
(後々ほかのShape Keyで代用できるので)
現在、83個で64以下にするのが目標なので19個消せばよさそうです。
ちょうど、先頭にVRCないしvrcが付いたShape Keyが19個あるので、削除します。
これでmorph Targetは対応OK。
polygon対応
次にpolygon数の制限対応。
ここが一番大変かつ、苦しい作業です。
現在、ポリゴン数が56162で、制限が32000以下。
かなりのオーバーです。
まずは、ポリゴン数をBlender内で確認してみましょう。
右下のTrisの数値が、clusterでpolygonと書かれている数です。
して、どのようにポリゴンを減らすかというと、まずカワイイお洋服や小物をパージしていきます。
それでも足りないので、追加で体部分のポリゴンを全体的に減らして調整します。
こんなカワイイお洋服を削除するなんて…なんて…酷なことを…
ごめんなさい、私の技術が至らないばかりに…
悔しさから、握りしめたこぶしから血が流れますが、それでも制限をクリアするために頑張りましょう。
今回は、以下を号泣しながら削除します。
特に上着のWearはポリゴン数が多いので、ほぼ削除必須のような気がします。
ここまででポリゴン数 37180。
もう一息です。
あと影響を抑えつつ、大きくポリゴン数を削減できるのは、体(Body2)のメッシュです。
モディファイアで全体的にポリゴン数を調整していきます。
スパナのアイコンからAdd Modifier->Decimateを選択。
RatioをTrisの値が32000以下になるまで下げていきます。
今回は0.675にしました。
うまいことポリゴン数を削減できたのでDecimateのモディファイアをApplyしたいのですが、メッシュにShape Keyがあるとエラーが発生して適用できません。
よくよく考えればそれはそうなのですが、メッシュを動的に変形させるShape Keyとポリゴン数を減らすDecimateは両立できません。
Modifier cannot be applied to a mesh with shape keys
なので、Body2のShape Keyを適用・削除してから、改めてApplyしましょう。
Shape Keyの適用と削除
Body2にはBasisの他に2つのShape Keyが設定されています。
それぞれ、服を着たとき、靴を履いた時に中の体部分を縮小して服の外にはみ出さないようにするシェイプキーです。
自作モデルを作ったときに服の外にどうしても体のメッシュがはみ出てしまって、見えない部分をまるごと削除していたのですが、なるほどこんな方法があるんですね…
今回は、このメッシュが縮小されている状態でメッシュを固定します。
TabキーでEdit Modeにして、Shape KeysのBasisをクリックします。
この状態で下段のVertex -> Blend From Shapeを選択。
右下にスッっとBlend From Shapeというダイアログがでるので、MeshDelete_For_Innerを選んで、Blendを1に指定します。
Tabキーを押して、変更を確定します。
これでBasisにMeshDelete_For_Innerの変化が合成されました。
MeshDelete_For_Innerを削除しても、上半身部分のメッシュが縮小されたままになっていることが確認できると思います。
MeshDelete_For_Shoesも同じ手順でBasisに合成します。
最後にBasisを削除します。
これで体部分のメッシュを縮小した状態のままShape Keyをなくすことができました。
DecimateのモディファイアのApply
新ためて、DecimateのモディファイアをApplyします。
ここまででpolygonの制限は対応OK。
joint対応
jointは、Blenderで言うところのBoneです。
現在83ですが、64以下にする必要があります。
先ほどメッシュを削除した部分のBoneを中心に削除して対応しましょう。
- Ribbon
- Hat
- Skirt
- usamimi
- String
- Bust
- Hip
などを削除。
(Edit Modeでxキーで削除です)
右下のBonesが128以下になるまで削除していきます。
これでjointの制限は対応OK。
Fbx形式でエクスポート
ここまでで、Blenderの作業はおしまいです。
次はUnityでの作業なので、Fbx形式でエクスポートしましょう。
特別なことはなくVRChatとかのエクスポート設定と同じで問題ないです。
Texture対応
ここからは、Textureの対応です。
clusterのエラーリストのこの辺です。
materialのエラーを飛ばしてますが、mesh削減の時に小物が減ってUnityに設定されるマテリアルも減ったので何もしなくても対応OKになります。
これはリアアリスのTexturesディレクトリの中の画像をそのまま、2048*2048pxに縮小します。
ペイントでもいいですし、気になる方はGIMPとかで縮小してください。
形式はPNG指定なので要注意。
後ほどUnityでTextureを設定するときに、この縮小した画像を使用します。
ここまでで、下準備は完了です。
VRM形式のファイル作成に移ります。
VRMファイル作成
VRMファイルの作成は、先人たちの素敵な軌跡があるので、そちらを参照していただくとして…
揺れ物やマテリアルの設定はイチからやり始めると時間がかかるので、付属のVRMファイルを読み込んで参考にしつつ進めましょう。
ツールバーのVRMからImportを選んで、VRMを読み込んでシーンに配置して設定を感謝の気持ちとともに拝見しましょう。
そんなこんなでアップロード成功。
隣の自作モデル(160cm)と比べて身長が低めですね。
かわいい。