2
3

More than 1 year has passed since last update.

ポチポチだけでVRoidのモデルをPlayCanvasにいれてみたい

Posted at

この記事は、PlayCanvas Advent Calendar 2022の3日目の投稿になります。

PlayCanvasAcademyの課題で、下のようなモデル着せ替えツールを試作しました。
そのときに、VRoidのモデルをPlayCanvasにインポートするのが手間だったので、思いついた方法を紹介します。
難しい操作はありませんが、Unity、Blender、PlayCanvasの基本的な使い方がわかる人を対象にしています。

※この記事は、Blenderでマテリアル設定とか面倒!とにかくモデルをインポートして手っ取り早く試したい人向け記事になります。下記リンクでPlayCanvas公式の方法が紹介されているので、丁寧に調整したい場合は下記の記事をご覧ください。
https://qiita.com/shujimuna1102/items/15c5fde90e76f30e76dc

【使用したツールのバージョン】
Unityのバージョン:2021.3.0f1
Blenderのバージョン:2.93LTS (2.93.11)
VRoid Studioのバージョン:1.13.0

VRoidStudioからVRMを出力

まずは、ベースとなるモデルを「VRoid Studio」でつくりましょう。
下記URLからダウンロードできます。

VRoid Studio
https://vroid.com/studio

今回はサンプルモデルをそのまま使用します。
サンプルモデルを選択したら、下のような画面が開くと思います。
なにも考えずそのまま、右上の「VRMエクスポート」を押します。

playcanvas01.png

「VRMエクスポート」ボタンを押すと下のような画面になると思います。ポリゴンの削減やボーンの調整ができたりますが、そのまま「エクスポート」ボタンを押します。

playcanvas02.png

「エクスポート」ボタンを押したら、VRM設定が出てくるので、必要な情報を入力し、適当な場所に出力します。

playcanvas03.png

VRMをUnityでGLBに変換

VRMをUnityでGLBに変換します、下記のgithubからUniVRMのunitypackageをダウンロードしましょう。

UniVRM Ver:v0.107.0
https://github.com/vrm-c/UniVRM/releases

playcanvas04.png

次に、ダウンロードしたunitypackageをUnityにインポートしましょう。

playcanvas05.png

インポートに成功したら、上記メニューに「UniGLTF」「VRM0」というメニューが追加されているかと思います。

playcanvas06.png

上記2つのメニューが確認できたら、先ほど保存したVRMをプロジェクトにドラッグ&ドロップしましょう。インポートが成功したら下の画像のようになっていると思います。

playcanvas07b.png

プレハブがすでに出来ていると思うので、シーンに置いてテクスチャが剝がれていないか確認します。

playcanvas08b.png

確認ができたら、次はこれをGLBに変換します。
シーン上のプレハブを選択したあと、上記メニュの「UniGLTF」から「Export to GLB」を選択しエクスポートします。

playcanvas09.png

Windowsであれば、3Dビューアーで確認できると思います。アルファが抜けていませんが、このまま進みます。

playcanvas10.png

BlenderでFBXに変換

PlayCanvasはGLBをインポートできますが、Rigつきモデルを動かすには現状、FBXにする必要があるので、BlenderでGLBをインポートし、FBXでエクスポートします。

playcanvas11b.png

インポートしたら下の画面のようになっていると思います。
キャラクターが灰色なんだけど?という人は、右上の赤枠で囲ったところを確認してください、表示形式がマテリアルになっていないと思います。
playcanvas13b.png

インポートができたら、これをFBXでエクスポートします。適当な場所に保存してください。
playcanvas12.png

PlayCanvasにインポート

先ほど、保存したFBXをPlayCanvasにインポートします。今回はBlankのプロジェクトを作り、そこにFBXをドラッグ&ドロップしています。上手くいけば下の画面のようになっていると思います。
まだ、テクスチャをプロジェクトにインポートしていないのでキャラクターが灰色ですが、マテリアルとTemplateが読み込まれているのがわかると思います。

playcanvas14.png

次に、Unityの [Assets>Model>test.Textures] 内のテクスチャをPlayCanvasで適当な空のフォルダを用意しそこにコピーします。Unityで全選択して、PlayCanvasにドラッグ&ドロップしましょう。

playcanvas15b.png

ここから、面倒ですがUnityとPlayCanvasの画面を見比べながら、マテリアルにテクスチャを当てはめていきたいと思います。
下の画像のUnity側の赤枠で囲ってる箇所の「N00_000_00_Body_00_SKIN」というところを見てもらうと、PlayCanvasにも同じものがあるのがわかると思います。
このマテリアルを選択し、「DIFFUSE」を開き、先ほどPlayCanvasにインポートしたテクスチャの中から、同じテクスチャを探しここに入れます。

playcanvas16b.png

全マテリアルで、この作業をすると下のようにテクスチャがついたと思います。

最後に、眉毛等のアルファがあるものは、下図の赤枠の箇所、Diffuseに入れたものと同じテクスチャを「OPACITY」に追加し、「AlphaTest」を調整してみてください。

playcanvas17b.png

おわりに

これで、ざっくりVRoidの見た目を再現できたと思います。丁寧にやるのであればもう少し調整が必要ですが、手っ取り早く確認したい場合は、UnityもBlenderも1回設定すれば使いまわせるので便利かと思います。
需要があればPlayCanvasでのアニメーションのインポート方法についても紹介します。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3