オリジナルティなVtuber3Dモデルになりたくて!【動くアクセサリ付き】
どうも、PlumRiceです。本日は、VRoidの3Dモデルにアクセサリを付けるという話です。いっぱいツールやら記事を紹介するので、参考にしてください。
今回の記事を読むと、パーフェクトシンクを付けて、追加アイテムを付けて、物理演算付けて、マテリアル付けて、表情の独自設定ができます。
今回作る見本
昨日のものから改善しました。これが限界でした。
— ぷらむらいす@APEXでずんだもんで話している人。謎。 (@question_false) September 16, 2024
ビュー:warudo
キャプチャー:iFacialMocap NVIDIA Broadcast(カメラ)
VRMバージョン:1.0
その他:パーフェクトシンク付き(口が左右に動いたりする)
モデル編集ソフト:Blender・unity
こだわりポイント:アクセサリの紐に当たり判定が付きました pic.twitter.com/9aGhlTS1QA
こんなポストのような3Dモデルを作ります。それでは行きましょう!
今回のモデルが使える環境
VRM1.0のモデルを作成します。そのため、使えるモデルビューソフトが制限されます。現在(2024年9月16日)のところ、動くと私が確認しているのは、VMagicMirror、WebcamMotionCapture、warudoぐらいです。どなたか他に対応しているソフトがありましたら、おっしゃってくださると嬉しいです。追記します。
使うツール・資料
使い方は、省く点が多いですが、最初に今回ポストの記事のようなものを作るのに、使ったものを上げます。また、再現性を持たせるために、バージョンも記載しておきます。どうしても最新版で再現できない場合は、参考にしてください。
使用ツール
使用資料
オブジェクトが、時間経過で動くようにする方法です。これはアクセサリのモデルを作る際に必要な資料で、今回はモデルの作り方は説明しないので、これを読んでアクセサリを作ってください。
オブジェクトの物理演算を付ける方法です。こちらは説明します。
作り方
VRoidからVRM1.0で出力
VRoidから出力します。この時に、「透明メッシュを削除する」のチェックボックスは外してください。パーフェクトシンクを付ける時に失敗します。


UnityとHANA Toolを使いパーフェクトシンクを付ける
パーフェクトシンクを付けます。いらない場合は、この手順を飛ばして問題ありません。
Unityをインストールし、プロジェクトを作ります。UniVRMとHANA ToolをAssetsフォルダにドラッグ&ドロップで投げます。
そうすると、この中に画像のように、zフォルダ(zフォルダは私が作ったものなので気にしないでください)を除いたものが、できるはずです。

次に、好きな名前でフォルダを作り、その中に、VRoidから出力したVRMファイルをドラッグ&ドロップで投げます。

そうすると、画像のようにモデルが描かれたアイテムが追加されます。(絵が表示されない場合、UniVRMがうまくインストールできていません)
次に、3D画面上にモデルを配置します。そうすると、キャラクターが表示され、画像のように左の方にモデルにあるアイテムが表示されます。

次に、上部にあるメニューに、HANA_Toolというメニューがあるので、この中から「Reader」をクリック

画像のように、ウィンドウが出てくるので、この中で、SkinnedMeshRendererに、モデルの顔(初期は「Face」)を投入。女性モデルならPerfectSync_VRoid_v1_27_0_Femaleを、男性モデルならばPerfectSync_VRoid_v1_27_0_Maleを選択してください。
そして、Addを選択した状態で、「Read BlendShapes」をクリックします。

ここまでの作業で、パーフェクトシンクを設定できました。
次に、一旦VRMファイルに出力します。
上部のメニューの「VRM1」から「Export VRM 1.0…」をボタンを押します。

画像のように設定が出てくるので、特に変更点がなければ、一番下の「Export」をクリックします。

ここまでの作業で、パーフェクトシンクを適用したVRMファイルが完成しました。
もし、パーフェクトシンクをだけを適用したければ、ここまでの作業で終わりです。
アクセサリを付ける
自分で作った服を身に着ける際も、このアクセサリを付ける章で、行ってください。
Unityで生成したVRMファイルをアクセサリ3Dモデルが入ったプロジェクトに入れてください。
画像のように、上部のメニューから「編集」「プリファレンス」をクリックし、設定欄を開きます。

「アドオン」タブをクリックし、上部のVマークのようなボタンを押すと、画像のように出てくるので、「ディスクからインストール」ボタンを押します。ここで、VRM Add-on for Blenderからダウンロードしてきたファイルを選択します。

下の画像のようにアドオン一覧で「VRM format」が表示されたら成功です。

「Blenderプリファレンス」ウィンドウを閉じます。
次に画像のように上部メニューの「ファイル」から「インポート」「VRM(.vrm)」を押し、VRMファイルを読み込みます。

かなり説明を飛ばしますが、画像のように着けたいアイテムを画像の構造のように付けます。今回は、item1からitem3という名前のメッシュを付けました。そして、それにつながる形で、ボーンやウェイトを設定済みです。
マテリアルは仮の形ですが、適用マテリアル範囲は設定済みです。色合いなどは後で設定します。(色合いはUnityで設定した方がやりやすいです)
(※ 3Dモデルの付け方は、色々あります。モデルを読み込んだ状態で後からモデリングする方法。別にプロジェクトを作りその中でモデルを作ったのち、アイテムをキャラの3Dモデルに着ける方法があります。お好きな方法を選んでください)

物理演算を付ける
3D画面の右端に「VRM」というタブがあるので、開いて、一番下にある「Spring Bone」をクリック。新たに追加したい物理演算を付けます。例えば、画像のように設定します。上のHairなど髪の毛の設定を参考にするとやりやすいです。今回、重力に従ってほしいので、Gravity Powerをやや付けました。0.20もあれば、いい感じに従ってくれます。

なお、Collider Groupsでアイテムを設定すると体などの当たり判定に従ってくれます。
ちなみにUnity側でも物理演算はつけられますが、かなり手間がかかるので、Blender側で設定することをお勧めします。
Unityで表情を最終設定する

前のUnityの時のようにVRMファイルをAssetsに入れて、3D画面に配置します。そして、一番上のファイル名を選択した状態で、右側を見ると、画像のような感じで、書かれているので、この中の上の方にある「Select」ボタンをクリック。

そこから新たに画面が変わり、その中でMaterialsやVrmを見ると、色々設定が画像のように抜けているので、Matrialsでは「Extract Materials And Textures…」ボタンをクリック。Vrmでは「Extract Meta And Express …」ボタンをクリックします。

クリックすると設定されます。


表情の設定をする
場合によっては表情が抜ける場合があります。なので、再設定します。
該当表情をクリックします。今回はhappyをクリックします。

MoprhTargetのアイテム名を開くと、顔の場合は、いっぱいAngryやFunなどの表情の変形(シェイプキー)パラメータが表示されます。
ここで、指定したい表情を設定します。今回はFunで設定します。

ここで顔以外に変形設定(シェイプキー)があると、そのアイテムもMoprhTarget上に表示されます。もし、その表情の場合に、そのアイテムも変えたければ設定するとよいでしょう。
小ネタ。まばたきで変わるアクセサリ pic.twitter.com/PO7RH0Yt76
— ぷらむらいす@APEXでずんだもんで話している人。謎。 (@question_false) September 16, 2024
パーフェクトシンクではなく一般の表情での表現設定の場合は、ポストのように指定の表情で変わる現象を作れます。オススメです。
Unityでマテリアル(色合い)を最終設定する
この時に、マテリアル(色合い)を設定することをオススメします。
上記の資料のようにする際も、この時点で行ってください。
終わり
ここまで行ったら、Unityから再度VRMファイルでエクスポートすれば完成です。
追記:パーフェクトシンク上でアクセサリなども表情や動作に合わせて動かす
小ネタ。パーフェクトシンク上でアクセサリを動作に合わせて動かす。(例の記事に追記しました) pic.twitter.com/XfB1JuvMGv
— ぷらむらいす@APEXでずんだもんで話している人。謎。 (@question_false) September 16, 2024
超簡単です。パーフェクトシンクの名前に沿ってシェイプキーの名前を設定するだけです。
個人的に、手や足の動きや目の動き(下を向くなど)口の動き(口を開ける・口を曲げるなど)などの多種多様な動きに対応できるため、超動かしたいモデルにオススメです。

上記の画像ならば、左目が閉じる、右目が閉じるときに違う動きになるようになります。
設定できる動き・シェイプキーの名前は、下記の説明がとても参考になります。
まとめ
長々と話が長かったですが、大体この手順で行えば、うまくモデルにパーフェクトシンクを付けて、追加アイテムを付けて、マテリアル付けて、表情の独自設定ができます。
お疲れ様でした!( ゚ω^ )ゝ