もしも幻塔のようなゲームの自キャラ感覚で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キャラを適用させるまで
元の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ボタンが出てくる。
骨名を最初から合わせて作っている場合はAvatar生成時にも自動で設定される。
その後はシーンファイルに戻ってAnimationタブでImport Animationにチェックが入っていない場合は入れてApplyボタンを押す。
ReceiverSamleシーンファイルを開き、MocopiSimpleReceiverの下辺りにドラッグ&ドロップさせる。
HierarchyのMocopiSimpleReceiverのAvtar Settingが1であることを確認する。
そしてポート番号は上と同様です。
Avatar SettingsのMocopi Avatarのところを上で作成したアバターに差し替える。
MocopiReceiver/RuntimeにあるMocopiAvatar(Script)をドラッグ&ドロップでHierarchyのアバターの名前のところに入れる。そしてInspectorでそのScriptが適用されていることを確認する。
またAnimatorの所でAvatarが先ほど上で「生成した名前+Avatar」になっていることを確認する。
Hierarchyでデフォで入っていたアバターを右クリックしてDeleteを選択して削除する。
アバターが同期して動いていることを確認する。
完成したらシーンを元のsampleファイルとは別名で保存しておきましょう。
File→Save asを選び適当な名前をつけて保存しましょう。
最後に同期させた時の様子を動画に撮りましたので良かったらご参考にどうぞ。
実際動かしてみるとモバイル側とモーションが反転されて届いてしまうので、Unity側のアバターのTransformのX座標を-1にすると反転も修正されました。
モバイル画面はApowerMirrorというアプリをMac側とIPhone側にインストールしてミラーリングしてから画面収録行いました。🙋♀️😇
以下も続きとしてお楽しみください!!
↓↓↓↓↓↓