MENU

【2023年5月】VRoidで自作した3DモデルキャラをUnityでノーコードで動かす方法【Appleシリコン】

もしも幻塔のようなゲームの自キャラ感覚で3Dモデルを作成してそれをUnityゲームの中に取り込んだり、もしくはV Tuberとしてそのキャラをモーションキャプチャー操作できたらどんなに楽しいかと思って試したことを以下共有します。

使用したUniyのバージョンは2021.3.25f1のsilicon版になります。

下準備段階

以下からアドオンをダウンロードして取り込みます。

https://github.com/vrm-c/UniVRM/releases

mocopiのSONY公式アドオンサイトからアバターも一定の条件で配布されていますが、そちらだとVRMver0.0設定のようです。

以降VRMVer0を前提に話を進めます。
ドラッグ&ドロップでシーンファイルのHierarchyに取り込んだだけだとVRoidはテクスチャがピンクになってしまい、SRP (スクリプタブル レンダー パイプライン)に対応できないようなので、IliToonのアドオンを導入してマテリアルに適用させることで動かすことができます。

目次

キーボードの方向キーで操作する方法

Starter Assets(Third Person Controller)をパッケージマネージャーからインストールします。

StarterAssets/ThirdPersonController/Scenes/の中のPlaygroundのシーンファイルを開きます。

Hierarchy内のPlayerArmatureプレハブ内のGeometory以下とSkelton以下を削除してVRoidアバターを代わりにドラッグ&ドロップで置きます。

その後カメラをアバター追従視点にするためにはPlayerFollowCameraのCinemachine VirtualCameraの所で
Follow→PlayerCameraRoot
LookAt→PlayerArmature
を選択すると良いようです。

モーションキャプチャで操作する方法

mocopiを使う

サンプルのモブキャラをモバイル側と同期させる。

なお予め3Dコアのプロジェクトを新規に作成して、以下からUnityのアドオンをダウンロードしてプロジェクトが開いた状態でアドオンファイルを開くとインストール画面になります。

https://www.sony.net/Products/mocopi-dev/jp/downloads/DownloadInfo.html

モバイル側にモデルを読み込む場合はVRM1.0バージョンのものは過去のassetと相性が悪い場合があり、テクスチャーが反映されないことがありました。assetを置かないときは正常に動作していました。
ただしPC側ではVRM1.0バージョンものもVRM0.0バージョンものも動作を確認できました。

モバイル側のPC接続設定のIPアドレスはPCのものを入力してください。ポート番号はUnity側で指定されている12351を入力すれば良さそうです。(番号を揃えれば変更しても構いません。)
PCのIPアドレスはシステム設定→Wi-Fi→詳細→IPアドレスの値になります。

またセキュリティ上ポートが閉じられているような場合はPort Mapをインストールしてポートを解放することが可能です。

モバイル側からPC側にデータ送る場合はモーション→送信と選びます。

送信は最初の段階では見つからないので、保存のところをタップして切り替えてください。

その後一番下の緑のボタンを押して🔲マークが出れば送れています。

その状態でUnityも再生し人形がモバイル側と同期して動けば成功です。

VRoidキャラを適用させるまで

STEP
VRoidのvrmファイルからアバターを生成する。

元のvrmファイルを右クリックしConvert To FBX Prefab Variant・・・を選択するとアバターが生成されます。

InspectorのRigタブでAnimation TypeをHumanoidにし、Avatar DefinitionをCreate From This Modelを選択しApplyボタンを押す。
Inspectorが起動していない場合はWindow→General→InspectorでInspector viewを起動。
Avatarが生成されるとAvatar Definitionの下にConfiguretionボタンが出てくる。

STEP
Configuretionに入って動かしたい部位が思った部位に適用されているかを確認

骨名を最初から合わせて作っている場合はAvatar生成時にも自動で設定される。

その後はシーンファイルに戻ってAnimationタブでImport Animationにチェックが入っていない場合は入れてApplyボタンを押す。

STEP
Hierarchyに上で作成したアバターをAssetsからドラッグ&ドロップして上げる。

ReceiverSamleシーンファイルを開き、MocopiSimpleReceiverの下辺りにドラッグ&ドロップさせる。

HierarchyのMocopiSimpleReceiverのAvtar Settingが1であることを確認する。

そしてポート番号は上と同様です。

STEP
MocopiSimpleReceiverファイルを修正する。

Avatar SettingsのMocopi Avatarのところを上で作成したアバターに差し替える。

STEP
MocopiAvatar(Script)を関連付ける。

MocopiReceiver/RuntimeにあるMocopiAvatar(Script)をドラッグ&ドロップでHierarchyのアバターの名前のところに入れる。そしてInspectorでそのScriptが適用されていることを確認する。

またAnimatorの所でAvatarが先ほど上で「生成した名前+Avatar」になっていることを確認する。

STEP
Hierarchyのデフォのアバターを削除する。

Hierarchyでデフォで入っていたアバターを右クリックしてDeleteを選択して削除する。

STEP
上の真ん中の▶️ボタンで再生しモバイル側からもモーションデータを送信する。

アバターが同期して動いていることを確認する。

完成したらシーンを元のsampleファイルとは別名で保存しておきましょう。
File→Save asを選び適当な名前をつけて保存しましょう。

最後に同期させた時の様子を動画に撮りましたので良かったらご参考にどうぞ。

実際動かしてみるとモバイル側とモーションが反転されて届いてしまうので、Unity側のアバターのTransformのX座標を-1にすると反転も修正されました。

モバイル画面はApowerMirrorというアプリをMac側とIPhone側にインストールしてミラーリングしてから画面収録行いました。🙋‍♀️😇

以下も続きとしてお楽しみください!!
↓↓↓↓↓↓

あわせて読みたい
【2023年6月】UnityからVRoid3Dモデルをmocopiモーションでリアルタイムに動かす方法(シェイダー適用編)... 【前回のまとめと課題点】 前回はUnity内でmocopiからのモーションデータによってunity内のVRoidモデルをなんとか動かしたのですが、VRoidモデル→VRMモデル→FBXモデルに...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
Subscribe
Notify of
guest

CAPTCHA


0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
目次