mocopiとUnityを使ってずんだもんを動かしてみる

mocopiとUnityを使用してずんだもんを以下の動画のように動かすまでの手順をメモ書きします。

環境

  • Windows10
  • Unity 2022.3.0f1
  • mocopi Receiver Plugin for Unity 1.0.3
  • MMD4Mecanim 20201105
  • iPad mini第6世代 (OSバージョン:16.3)

プロジェクトにmocopiプラグインをインポート

以下のURLから”mocopi Receiver Plugin for Unity”をダウンロードします。

Sony Corporation - mocopi | mocopi SDKダウンロード
mocopiデベロッパーサイトへようこそ。このサイトでは、mocopiを活用いただくために、mocopi Receiver PluginやMobile SDKの利用方法や開発方法について説明しています。

ダウンロードしたら解凍し、”.unitypackage”ファイルをUnityプロジェクトへインポートします。

プロジェクトにずんだもん(.pmx)をインポート

MMD4Mecanimをインポート

UnityはPMXファイルを読み込めないので、MMD4Mecanimを使用して読み込めるようにします。
以下のURLからMMD4Mecanimをダウンロードします。

Stereoarts Homepage

ダウンロードしたら解凍し、”MMD4Mecanim.unitypackage”ファイルをUnityプロジェクトへインポートします。

インポートするとDLLをアップデートしていいかと聞かれるのでYESを押します。

ずんだもん3Dモデルをインポート

mocopiで動かすずんだもん3Dモデルは、こちらを使用します。

ページが見つかりません - ニコニ立体

ダウンロードしたら解凍し、”texフォルダ”と”坂本アヒル氏風ずんだもん.pmx”をUnityプロジェクトへインポートします。

pmxファイルをUnityで使えるように変換

インポートしたらUnityで使えるようにpmxファイルをfbxファイルへコンバートします。

Projectウィンドウの”坂本アヒル氏風ずんだもん.MMD4Mecanim”を選択し、Inspectorウィンドウに表示されいる項目をチェックしてから同意するボタンをクリックしてください。

モデルによってはUnityで使用するのを禁止しているモデルがあったりしますので、必ず利用規約を読んでください。
(MMD以外で使用を禁止しているのもある。)

クリックしたら、次にProcessボタンをクリックしてモデル変換を行います。

変換が終わるとProjectウィンドウにfbxファイルができてます。

ずんだもんをセットアップ

変換したずんだもんモデルを選択し、InspectorウィンドウでRigタブのAnimationTypeをHumanoidに変えてApplyボタンをクリックします。

次にずんだもんモデルのテクスチャが剝がれてるので設定してあげます。

変換したモデルをHierarchyウィンドウにD&Dして、見やすいようにMainCameraの座標と画角を変更します。

MainCameraの値
Position (X:0, Y:0.55, Z:3)
Rotation (X:0, Y:180, Z:0)
Field of View (25)

見やすいようにカメラを設定したら、Materialsフォルダの各マテリアルにテクスチャを設定していきます。
マテリアル名とテクスチャ名がある程度一致しているので、検索欄にマテリアル名を入力してテクスチャを当てはめていきます。

マテリアル名アサインするテクスチャ名マテリアルに設定するShader名
0.skinskin.pngMMDLit
1.eyeeye.pngMMDLit
2.clothcloth.pngMMDLit
3.eyeBReyeBR.pngMMDLit
4.partsparts.pngMMDLit
5.hairhair.pngMMDLit-BothFaces
6.eye0face_effect.pngMMDLit-Transparent

いい感じにマテリアルを設定出来たらモーションを受け取る準備をします。

ずんだもんをmocopiからモーションを受け取るように設定

Hierarchyウィンドウに空のGameObjectを作り、名前を変更します。
この記事では”MocopiMotionReceiver”とします。
変更したらInspectorウィンドウのAddComponentで”MocopiSimpleReceiver”スクリプトをアタッチしてください。

次に、ずんだもんを選択してInspectorウィンドウのAddComponentで”MocopiAvatar”スクリプトをアタッチしてください。

アタッチしたら”MocopiMotionReceiver”を選択して、InspectorウィンドウのAvatarSettingに、
MocopiAvatarにずんだもんをD&D
Portに12351
とそれぞれ値を設定してください。

設定したらEditorをプレイモードにして、mocopiアプリの設定に移ります。

(任意)モーションが受け取れるかBVHSenderでテストする

ここまで設定して、Sonyが提供しているアプリでモーションが受け取れるかPC上でテストできます。
不安な人は一回試してみてください。

Sony Corporation - mocopi | mocopi Receiver Plugin開発 | BVH Sender | BVH Senderについて
mocopiデベロッパーサイトへようこそ。このサイトでは、mocopiを活用いただくために、mocopi Receiver PluginやMobile SDKの利用方法や開発方法について説明しています。

公式サイトからBVHSenderをダウンロードして、解凍後”BVHSender.exe”を起動してください。

起動したら、UnityをプレイモードにしてからStartボタンをクリックするとモーションが受け取れます。

ここでモーションが受け取れなかった場合は、

  • ずんだもんモデルがGenericではなくHumanoidになってるか確認
  • MocopiSimpleReceiverスクリプトのPortが”12351”になってるか確認

mocopiアプリからUnityPCへモーションを送る

mocopiのキャリブレーションを済ませ、以下の画面になったら”モーション”に切り替えます。

UnityPCにモーションを送るため、赤四角のところをタップして”送信”モードに切り替えます。

Screenshot

次に、設定をタップしてUnityPCのローカルIPアドレスを設定します。
設定 > PC接続設定 > IPアドレスにUnityPCのローカルIPアドレスを入力します。

Screenshot
Screenshot
WindowsPCのローカルIPアドレスを調べる方法
デスクトップでWindowsキー + Rキーを同時押しして”cmd”を入力してコマンドプロンプトを起動します。 コマンドプロンプトを起動したら”ipconfig”を入力してEnterキーを押します。IPv4アドレスの行に表示されてるのがロー...

ローカルIPアドレスを設定出来たら、OKボタンを押して画面下の送信ボタンを押します。

もし、動かなかったら

  • iPhoneとUnityPCが同じネットワークに接続されているか確認する

を試してみてください。

おわりに

これでmocopiを装着した自分の動きとUnityプロジェクトのずんだもんが同期しているのが確認できます。

応用として、OBSにUnityの画面を取り込むとVtuber的な配信画面ができるのでUnityにmocopiのモーションを受け取っていろいろ試すのも面白そうです。

mocopiとUnityを使ってVtuberっぽいことをしてみる
↓の記事の応用編として、mocopiで動かしてるキャラクターをOBSに映して遊んでみましたのでそのメモ書きをします。 概要 動画を撮るために使用したツールの流れを書いてみました。 遊びごごろで自分の声をRVCでずんだもんの声に変換してずんだ...