見出し画像

ロポリこんをVRM化してclusterへ!


※2024年6月追記
本記事で使用しているロポリこんは、2019年リリース版です。2024年リリースのrenewalロポリこんのVRM変換については、こちらをご覧ください。
→2024年夏ごろ執筆予定

はじめに

 この記事は、Humanoid対応3Dモデル「ロポリこん」(以下こんちゃん)をゲームエンジン  Unity(一生分からん)を使って VRM化し、メタバースプラットフォーム  cluster に導入する手順について、本記事の著者である こめっと(ロポリこん大好きロポリこん、作者ではない)が自身の持つ知識をそれっぽくまとめたものです。

1.2023年夏頃に書かれた記事であること
2.最適な方法ではない可能性があること
3.ロポリこん以外の3Dモデルについて考慮していないこと
4.ある程度おふざけが入った稚拙な文章であること

上記の4点についてご理解の上、ご覧ください。

…かたいのここまでです。


大まかな流れ


必要なソフトのインストール

VRM化(1回目)

各種パラメーター変更

VRM化(2回目)

clusterへアップロード


愛さえあれば乗り越えられる!
一緒に頑張りましょう!!!

※2023年12月追記
2023年8月に行われたclusterの大型アップデートにより、VRM形式のアバターをアップロードをするにはトラベラーミッションのクリアが必要になりました。
詳しくは下記の公式ページをご確認ください。
https://help.cluster.mu/hc/ja/articles/21258895510681#h_01HD0V9XB9G9CA5E0QN0F370NS

Step 1. 必要なものを準備しよう!

 まずはざっと書いてみます。方法は後ほど。

必要なもの
・cluster(こめっとがこんちゃんを増やしたいところ。)
・ロポリこん(かわいい。)
・UniVRM(Unity上でデータをVRM化するためのやつ。多分。)
・Unity(多分何でもできる。知らんけど。)

cluster

ロポリこん

Uni VRM・Unity・Unity Hub

 clusterが推奨しているUni VRMのバージョンに対応しているUnityをインストールするためにUnity Hubをインストールします!
…呪文かて。
 僕が説明すると余計にややこしくなりそうな上、こだわれるところがないので、下記のcluster公式ヘルプページや先達の動画を参考にしてください。

clusterが推奨するバージョンが書いてあるところ
カスタムアバターの制限 – ヘルプセンター | cluster(クラスター)
(その他のところに書いてます)

先達の動画
(正直に言うと、これ以降のStepで書くことの大半を動画内で説明していただいているので、速さを求める人や、ある程度Unityと仲良しな人はこっち)

(35) 【VRMファイルの作り方】Unityを使ってVRMに変換!好きなアバターをいろんなゲームやアプリで使おう - YouTube

zenさんによる、アバターをVRMにしてclusterにアップロードする解説動画! - Cluster Creators Guide

Step 2. VRM化(1回目)をしよう!

 こんちゃんをclusterに連れていくときに詰みやすいのが、VRM化を2回しなければいけないところです。イメージとしては、ガンプラを仮組みしてから、再度分解し塗装ののち組み直す感じです。ほらそこ。余計にややこしくなったとか言わない。

セッティング

 まずはさっきインストールしたUnity Hubを起動します。(Unityを日本語化する方法もありますが、過去の大体の記事が英語で説明されているので、この先それらに対応できるようこのままいきます。気になる人は調べて日本語化してみてください。)
 起動したら、Projects からNew project を選択します [1]。3Dが選択されていることを確認し、ファイル名を変えたら、Create project を選択します[2]。PCのスペックによっては時間がかかるので、こんちゃんの写真や動画を見て、気持ちを高めながら待ちましょう。

[1]こんちゃん関係でぐちゃぐちゃ。ウケる。
以降、触る場所は赤丸、順番は赤矢印、ドラッグ&ドロップは黄緑矢印で表します。
[2]何をしたデータか、開けずに分かるよう名前を付けるといい感じに。

 Unityを開いた状態でUni VRMを開きます。import[3]。読み込んだ後、Use recommended Linear を選択します。Close を選択し、左上にVRMという欄が増えていたら成功です[4]。

[3]日本語化していなくても、なんとなくの英単語やボタンの場所で進んでいけばOK。
[4]なんか色がきれいになる設定だったはず。

Unity上にこんちゃんを召喚~VRM化(1回目)

 購入したこんちゃんのファイルにはロックがかかっています。データを解凍するためのパスワードが利用規約のどこかに書かれているので、モニターに穴が開くほど利用規約をしっかり読みましょう。
 Unityのアイコンがついている「LowPoly_Kon_ver1.2」を選択し、パスワードを入力します。先程と同じくimport。

 Project(左下)のAssetsに出てきたLowPoly_Kon_ver1.2を開きます。マゼンタ(Unity歴が長い人ほど嫌いなピンクっぽい色)のこんちゃん4人のうち、再生ボタンみたいなものがついたLowPoly_Kon_PCをHierarchy(中央)にドラッグ&ドロップ[5]。置けたLowPoly_Kon_PCを右クリックし、Unpack Prefab Completely をクリック。名前の横、ガムテープが貼られた水色の箱が、透明な箱になれば成功です。
 「なんか間違えた!」と思ったら、Ctrl+Zで戻りましょう。押した数と同じだけ作業が戻ります。困ったらこれで大抵何とかなります。人生にもこのショートカットキー欲しい。

[5]こんちゃんはマゼンタでもかわいい。(狂信者)

 LowPoly_Kon_PCの横の▶を押すと、▼になり、下にArmatureとLowpoly_konが出てきます。Lowpoly_konをクリックするとInspector(右)にこんちゃんの設定が色々出てきます。マゼンタの丸の近く、Shaderの右をクリックし、VRM→MToonと進みます。見慣れたこんちゃんになればOK。
 ついでにスカートが裏から透けないようにします。さっきマゼンタの球があった左下の▶を押すと下に詳細設定が出ます。一番上、RenderingのCull ModeをBackからOffにします[6]。

[6]Sceneで右クリックやホイールを押しながらぐりぐりするといろんな角度からの視点に。

 さらにかわいさを上げるために、影とアウトラインを調整します。
 先程触った Cull Mode の下に、 Color の Shade Color があります。肌色の部分をクリックし、何色か聞かれたときに白かグレーかで迷うくらいの色に変えます。これで影の色が自然な感じになります。
 アウトラインとは、こんちゃんの外側に表示される、塗り絵の枠線みたいな線のことです[7]。最初は表示されない設定になっています。あってもかわいいしなくてもかわいい。

[7]なし(左)と肌色アウトラインあり(右)。
色や太さを変更できる。

 Project(左下)から Assets → LowPoly_Kon_ver1.2 → Texture_ver1.2と進みます。Hierarchy(中央)の LowPoly_Kon を選択し、Inspector の Outline を探します[8]。

[8]操作の順番が違うと必要な画面が閉じてしまいます。

 Mode を None から WorldCoordinates に変更します。OutLine_Mask(中央)を、先程探したOutline、Widthの横にある四角にドラッグ&ドロップ。 Widthで太さ、Colorで色を変更します[9]。

[9]アウトラインの色は、髪や服などメインの色に近い色がおすすめ。

 1回目のVRM化をします。Uni VRMを開いたときにできたVRMをクリックし、UniVRM‐0.61.1→Export humanoid と進みます。ExportRoot(上)にLowPoly_Kon_PCをドラッグ&ドロップ。Title、Version、Authorをそれぞれ記入し、Export(右下)します[10]。この後すぐに使うので、見つけやすいようファイル名や保存先を変更し、保存します。これで1回目のVRM化が終了です。

[10]自分が分かりやすいように書けば〇 Authorは使う人(意訳)

Step 3. 自分だけのロポリこんにしよう!

 皆さん、ようこそ。ここがロポリこん沼です。

下準備

 色々触ったLowPoly_Kon_PCを、Hierarchy左半分のちょっと濃いところ、目玉のマークを押して非表示に(または右クリック→delete)します。ProjectのAssets、空いているところで右クリックし、Create→FolderでVRM化したこんちゃんを入れるフォルダを作ります。先程完成したVRMこんちゃんをファイルにドラッグ&ドロップします。「自分でつけたファイル名(Prefab  Asset)」(以下VRMこん)をHierarchyにドラッグ&ドロップ[11]。

[11]さっきのこんちゃんと同じように見えるけど全く別物。これだからしろうとはダメだ!

視点の高さ変更

 新しく出したこんちゃんをクリックすると、口のあたりにFirst Person Offsetなるものが出てきます。これが一人称視点での目線の高さです。三人称視点でしか使用予定のない方はそのままでもいいですが、一人称視点を使う方、特にHMD使用者は調整をおすすめします。
 
方法ですが、各軸を触って移動させるか、Inspector→VRM First Person(Script)→First Person Offsetから、各座標を入力します[12]。
ちなみにこめっとは X:0 Y:0.06 Z:0.1 です。

[12] Inspector の下のほうにあります。右端のシークバーをスライドしましょう。

揺れるところを揺れるように

 こんちゃんが改変無しで揺らせるのは、しっぽ、髪の毛(右・左・後)、耳(右・左)、です。早くこんちゃんになりたい!何も揺れないほうがいい!と思ったら飛ばしてもらってOKです。でも揺れたほうが可愛いです。
揺れたほうが絶対可愛いです。揺れたほうが絶対可愛いです!揺らせ!!!

 まずはしっぽを揺らせるようにします。
 VRMこん→secondaryと進むと、VRM Spring bone (Script)というのがあります。cluster(VRM形式)で揺れるようにできるやつです。各数値を調整することで揺れ方が変わります[13]。

[13]全部覚えようとしなくても大丈夫。気づいたら覚えてる。

使う項目(ざっくり)紹介
Comment・・・どこの揺れを設定してるかの名前を書くところ
Draw Gizmo・・・揺れるところが見える↔見えない
Stiffness Force・・・ふにゃふにゃ具合の調整(数値小→ふにゃふにゃ)
Gravity Power・・・重力のかかり方(数値小→重力なし)
Drag Force・・・プルプル具合の調整(数値小→プルプル)
Root Bones・・・揺れる場所を決めるところ
Collider Groups・・・当たり判定を追加するところ

 揺れる場所を設定します。Root Bones の Size を1にします。VRMこんのArmature→Hips→Tail_〇〇と進みます。
 Elementに揺れ始めるパーツ(しっぽならTail_〇〇)を入れます。Hierarchyからドラッグ&ドロップします[14]。

[14]間違って閉じてしまっても、焦らず操作の最初からやり直せば大丈夫。

 こんちゃんの場合、入れたパーツと、入れたパーツよりも数字の大きいパーツが揺れるようになります。画像ではTail_02を入れましたが、Tail_01を入れてもらって構いません。(こめっとはなぜか大体のパーツを根元からではなく1つ次から揺らすのである。理由はまだない。) 
 小技として、Alt を押しながら Armature にあるパーツ横の三角をクリックすることで、クリックしたところより下が全部開いたり閉じたりします。よきタイミングでお使いください。

 移動したときに、しっぽが体を貫通しないようにします。
 Armature→Hipsを選択します。Inspector から
Add Compornent → Scripts → VRM → VRM Spring bone Collider Groupを追加します。Offset のYを-0.2くらい、Zを0.3くらい、Radius を0.5くらいにします[15]。

[15]対応した場所をはじくピンク色の球。線しかないけど球体状にはじく。

 ピンクの球がどの揺れものをはじくか設定します。先程しっぽを揺らすために触ったsecondaryを開きます。VRM Spring bone (Script) の Collider Groups の Size を1にします。Element0に Hips をドラッグ&ドロップします[16]。これでしっぽが体を貫通しなくなります。

[16]間違えたら慌てずCtrl+Z。何とかなる。

 耳や髪の毛も、揺らし方はしっぽと一緒です。VRM Spring bone (Script)を追加して、お好きなところを揺らしてください。しっぽと同じ揺れ方でいい場合は、先程のしっぽのVRM Spring bone (Script)のSizeを変更して、揺らしたいところを入れてください[17]。
 ちなみに、髪の毛は左(hair.S.ⅼ_〇)と右(hair.S.r_〇)、後ろ(hair_〇)がありますが、こんちゃんは髪の毛に隠れた後頭部の肌がないため、揺らす際は細心の注意が必要です。移動したときに中身が見えてしまいます。いろんな意味で中身なんてないですが。こめっとは全く揺らしてません。もちろん硬さや場所を調整して揺らしても〇。

[17]全部一緒の揺れ方にするならこうなります。

 移動したり頭を傾けたりしたときに、髪の毛や耳が頭を貫通しないようにするには、HeadにVRM Spring bone Collider Groupを追加して、顔の中に当たり判定を追加しましょう。Radiusはそのまま、Yが0.05くらいでいい感じになると思います[18]。髪の毛や耳が揺れるようにしたVRM Spring bone (Script) のCollider Groups に Head を追加することをお忘れなく。

[18]大きくしすぎると、何もしていないのに髪の毛が暴れます。
強制オールバック。

 自分の髪の毛や耳を触りたい場合は、ここから一工夫。 Armature→Hips→Spine→Chest→Neck→Head→sholder.L→upper_arm.L→lower_arm.L→hand.Lと進みます。hand.L に VRM Spring bone Collider Groupを追加します。大きさはそのままで大丈夫です。同じようにHand.Rにも追加してください。髪の毛が耳が揺れるようにしたVRM Spring bone (Script) の Collider Groups にhand.L、Hand.Rを追加しましょう。これで自分の髪の毛や耳をふにふにできます。かわいい。すべて設定するとこんな感じ[19]。

[19]場所によって揺れ方を変えたい人は、
揺らしたい部分の数だけVRM Spring bone (Script)を追加して、個別に設定しましょう。

 揺れ方や当たり判定が反映されているかは、中央最上部の▶を押す(再生モードにする)→左上のSceneを押す→VRMこんを選択する→足元の3色矢印をドラッグすることで確認できます。cluster上と移動速度が違うので、移動時の揺れ方はあんまり参考にならなかったりする。
 この画面でも各数値を変更したり、揺れる場所を変更したりできますが、再生モードを解除するために▶を押すと、再生モードにする前まで作業が巻き戻るので注意!
 
調整して良くなったところは、どこかにメモしたり覚えたりしておきましょう。頑張った時間が水の泡になります。(n敗)

表情豊かなこんちゃんに

 こんちゃんといえば表情の豊かさが有名ですよね。某フェイスダンスでこんちゃんを知った人も少なくないはず。
 VRM化する場合、表情をすべて設定しなければなりません。大変だけど楽しいし、なにより個性が出るところです。頑張りましょう。

 VRMこんちゃんのファイルから、○○.BlendShapes をクリック。左から3番目の BlendShape をクリックします[20]。

[20]ここからが本当の沼。それでも進むしかないんだろう……
そこにこんちゃん…… 希望がある限り

 clusterにこんちゃんを連れていく際、設定するのは以下の12個です。
Neutral・・・普段の表情。
A・・・あ。
Ⅰ・・・い。
U・・・う。
E・・・え。
O・・・お。
Blink・・・まばたき。
Joy・・・面白いときの顔。
Angry・・・怒ってるときの顔。
Sorror・・・悲しいときの顔。
Fun・・・嬉しいときの顔。
Surpriseⅾ・・・驚いているときの顔。

お気づきでしょうか。Unity上に Surpriseⅾ がありません。ないんだったら自分で作ればいいのよ! …ということで作りましょう。

LookUpを選択します。Blend Shape Nane を Surprised に変更します。S が大文字になっているか、スペルを間違えていないかをよく確認しましょう。その下、PresetをUnknownに変更します[21]。

[21]ひとつでも間違うと驚きの表情が出ません。慎重に。

 Neutralは基本そのまま行くと思うので、割愛。もし触りたい人は後から設定してみてください。
 A・I・U・E・Oを設定すると、それぞれ音声が入力されたとき、音に対応して自動で動きます。まずは A の設定をしてみましょう。A を選んだあと、Inspector 中央にある Lowpoly_kon の▶をクリックします。すると、ずらっと各項目が出現します。これがいわゆる「シェイプキー」です。このシェイプキーを使って、表情筋のトレーニングをします。
 A は、vrc.v_aa の数値を大きくすることで簡単に表現できます。他の口の動きも、同じようにvrc.v_〇〇を使えば簡単です。各項目を組み合わせることで、さらにこだわることもできます[22]。右下のこんちゃんの表情がリアルタイムで変わりますので、参考にしてください。

[22]様々なあ゛ぁ゛! 色んな表情があります。

 Inspector 中央の Is Binaty にチェックを入れることで、その前までの表情とのつながりを無視して、即座に表情を変えることが可能です。まばたきや変顔に使うのがおすすめ。

 それぞれの表情ですが、絶対に決まった感情通りに変更する必要はありません。お好きな表情を探してみてください。ただ、clusterでは各エモーションを使うと自動で対応した表情になるため、気を付けてください。

色の変更や他アバターの衣装へのお着換えなど、さらに自分だけのこんちゃんを目指す場合は、別記事『もっと自分だけのこんちゃんにしよう!』をご覧ください。←この記事に大きな反響があれば書くかも…

Step 4. VRM化(2回目)をしよう!

 1回目と同じように、VRM→UniVRM‐0.61.1→Export humanoid を選択します。ExportRoot にVRMこんちゃんをドラッグ&ドロップ。こんちゃんは元から容量が小さいので、このままでも十分軽いのですが、気になる人はExportSetting の Reduce Blendshape (下から2番目)にチェックを入れます。一番下のボタンから Export します。2回目のデータだと分かるように名前を付けましょう。

Step 5. clusterにアップロードしよう!

 ここまで来たらもう少し!
 WEB版のclusterを開きます。右上のアイコン→アバター→アバターをアップロードと進みます。2回目のVRMファイルを選択します[23]。

[23]ドラッグしたりホイールをコロコロすると、cluster上に表示される画像を調整できます。

 アップロードを押せば完了です!お疲れさまでした!!!

おわりに

 clusterでこんちゃん生活をして1年半、もっとclusterにこんちゃんを増やしたい!いっぱいのこんちゃんに癒されたい!という私利私欲で、布教活動をしたり、イベントを開催したりしていました。その一環として、まだ僕が出会えていない、こんちゃんになりたい人のお手伝いができればという想いから、この記事の作成に至りました。
 僕自身、技術書のようなかっちりした文章を読むのが苦手なので、ご覧のように小ネタを挟みつつ… というようにしてみました。また、途中でも触れたように、色改変や非対応の衣装にお着がえするなど、できることはたくさんあります。ただ、本記事では、途中で力尽きることなくこんちゃんになってclusterに来て欲しい!というところを第一に考え、泣く泣く削りました。
 そもそもこういったアバター関連の記事を書くのが初めてなので、分かりにくいところや直接聞きたいところがあると思います。Twitter(この記事を書いているときはちょうど “X” との狭間)や cluster で、ぜひお声がけください。できる限りお助けしますし、改版の参考にもさせていただきます。
 こんちゃんになれたよ!ここ良かったよ!初めて知った!など、報告や感想もぜひ伝えて欲しいです。

 最後に、ロポリこんを生んでくれたmidoriさん、つながる場をつくってくれたcluster、本記事制作のお手伝いをしてくれたみっつさん、そして、clusterでロポリこんになりたい!という想いを形にするため、この記事を読んでくれた「あなた」に感謝をこめて。

こめっと

いいなと思ったら応援しよう!