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”をダウンロードします。
ダウンロードしたら解凍し、”.unitypackage”ファイルをUnityプロジェクトへインポートします。

プロジェクトにずんだもん(.pmx)をインポート
MMD4Mecanimをインポート
UnityはPMXファイルを読み込めないので、MMD4Mecanimを使用して読み込めるようにします。
以下のURLからMMD4Mecanimをダウンロードします。
ダウンロードしたら解凍し、”MMD4Mecanim.unitypackage”ファイルをUnityプロジェクトへインポートします。

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

ずんだもん3Dモデルをインポート
mocopiで動かすずんだもん3Dモデルは、こちらを使用します。
ダウンロードしたら解凍し、”texフォルダ”と”坂本アヒル氏風ずんだもん.pmx”をUnityプロジェクトへインポートします。

pmxファイルをUnityで使えるように変換
インポートしたらUnityで使えるようにpmxファイルをfbxファイルへコンバートします。
Projectウィンドウの”坂本アヒル氏風ずんだもん.MMD4Mecanim”を選択し、Inspectorウィンドウに表示されいる項目をチェックしてから同意するボタンをクリックしてください。

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

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

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

次にずんだもんモデルのテクスチャが剝がれてるので設定してあげます。
変換したモデルをHierarchyウィンドウにD&Dして、見やすいようにMainCameraの座標と画角を変更します。

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

マテリアル名 | アサインするテクスチャ名 | マテリアルに設定するShader名 |
---|---|---|
0.skin | skin.png | MMDLit |
1.eye | eye.png | MMDLit |
2.cloth | cloth.png | MMDLit |
3.eyeBR | eyeBR.png | MMDLit |
4.parts | parts.png | MMDLit |
5.hair | hair.png | MMDLit-BothFaces |
6.eye0 | face_effect.png | MMDLit-Transparent |
いい感じにマテリアルを設定出来たらモーションを受け取る準備をします。

ずんだもんをmocopiからモーションを受け取るように設定
Hierarchyウィンドウに空のGameObjectを作り、名前を変更します。
この記事では”MocopiMotionReceiver”とします。
変更したらInspectorウィンドウのAddComponentで”MocopiSimpleReceiver”スクリプトをアタッチしてください。

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

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

設定したらEditorをプレイモードにして、mocopiアプリの設定に移ります。
(任意)モーションが受け取れるかBVHSenderでテストする
ここまで設定して、Sonyが提供しているアプリでモーションが受け取れるかPC上でテストできます。
不安な人は一回試してみてください。
公式サイトからBVHSenderをダウンロードして、解凍後”BVHSender.exe”を起動してください。
起動したら、UnityをプレイモードにしてからStartボタンをクリックするとモーションが受け取れます。

ここでモーションが受け取れなかった場合は、
- ずんだもんモデルがGenericではなくHumanoidになってるか確認
- MocopiSimpleReceiverスクリプトのPortが”12351”になってるか確認
mocopiアプリからUnityPCへモーションを送る
mocopiのキャリブレーションを済ませ、以下の画面になったら”モーション”に切り替えます。
UnityPCにモーションを送るため、赤四角のところをタップして”送信”モードに切り替えます。

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

ローカルIPアドレスを設定出来たら、OKボタンを押して画面下の送信ボタンを押します。
もし、動かなかったら
- iPhoneとUnityPCが同じネットワークに接続されているか確認する
を試してみてください。
おわりに
これでmocopiを装着した自分の動きとUnityプロジェクトのずんだもんが同期しているのが確認できます。
応用として、OBSにUnityの画面を取り込むとVtuber的な配信画面ができるのでUnityにmocopiのモーションを受け取っていろいろ試すのも面白そうです。
