VMCProtcolを使って連鎖的にいろんなソフトを繋いで Blenderに表情からつま先まで全身のモーションを流し込む方法



この記事は業務でTDPTのモーションを使用する機会がありまして、Blenderでモーション編集して使えないかと模索していたところ、VMC4Bさんがv1.1.1にアップデートされて、うちのアバターのブレンドシェイプが送信できるようになったので試してみました。
無事全部のモーションをまとめてBlenderに送信し、録画までできるようになりました。
ほとんどが無料のソフトばかりでここまで出来て感動です。
![VMCProtcolを使って連鎖的にいろんなソフトを繋いで Blenderに表情からつま先まで全身のモーションを流し込む方法 - Qiita - Google Chrome 2022_08_18 16_56_31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709249/8ef1a689-029b-67a1-2dea-9ab31482d6b8.png)

# 準備
### 使用したソフト・アプリについて
TDPT v0.5.1  - Win
waidayo v1.2.0  - iOS
VSeeFace v1.13.38  - Win
Blender v2.90.1  - Win
Blenderのアドオン
└VRM Add-on for Blender v2.3.30
└VMC4B v1.1.1
各リンクは最後にまとめています。

### アバター
「りゅん」と「りしゅな」のパーフェクトシンク対応アバターを公開していますので、ぜひテストにご利用ください。
「りゅん」

https://hub.vroid.com/characters/6808033248597331475/models/4198840097527746550

「りしゅな」

https://hub.vroid.com/characters/5694063326259868074/models/1667232077793296776

使用動画をSNSに公開することも自由にできますので、うちの子たちを楽しく使ってください。

### ハードスペック
PC：
Windows10
Corei5-7500
メモリ　8GB
グラフィックカード　GTX 1050
TDPTが20FPS程度で動作するスペックがこちらです。
ただ、TDPTは動きはしますがいろんなソフトを同時に使いますのでもうちょっと上の方がいいと思います。

スマホ：
waidayoはTrueDepthカメラを使いますので、iPhoneX以降のものです。

ネットワーク：
PCとスマホはローカルネットワークでアクセスできる状態にします。
１台のwi-fiに接続またはネットワーク共有などを使用。

アバターは「りゅん」のパーフェクトシンク対応版を使います。

### 今回試した環境
PC：
Windows 11 Pro
Corei7-10750H
メモリ　16.0 GB
グラフィックカード　RTX2060

スマホ：
iPhone12
iOS15.6

ネットワーク：
同一wi-fiによる接続


# 方法
### 全体像
図１
waidayo　　　　TDPT
　　↓　　　　　　↓
　　　VSeeFace
　　　　　↓
　　　 Blender

waidayo：　パーフェクトシンクのブレンドシェイプを送信します。
TDPT：　全身のボーンを送信します。
VSeeFace：　上２つの受信、送信
Blender：　アドオンのVMC4Bで受信、モーション録画

機器の配置はこのような感じ、Webカメラには全身が入るようにしてください。
図２
![全体像](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709249/75cf9d04-2c6c-c2b5-ae00-0a94aeda2f7a.png)


### 手順

パーフェクトシンク対応の「りゅん」アバターをダウンロードしておきます。
※ ご自身のアバターの場合は全てのアプリで同じアバターを使うようにしてください。

PCをWi-fiに接続
↓
VSeefaceで「りゅん」のアバターを指定して起動します。
設定＞一般設定
①：OSC/VMCプロトコルで送信
②：OSC/VMCプロトコルで受信する
①、②を一度すべてオフにする
↓
②をオンにする
③：LAN IPを表示
その下のポートは39540（任意）にする。
↓
VRoidHubのサイトで「りゅん」にハートを付けておきます。付けてもらいたいだけじゃないですよ？アプリからアバターを使うためですから。付けてもらいたいだけじゃないです。
優しい方はついでに「りしゅな」にもハートをお願いします。()
↓
iPhone側でwaidayo起動
メニューボタン＞FaceTrackingタブ
Face Tracking ModeのFace Only(With VMC)を選択
メニューボタン＞Generalタブ＞VRoidHub
上部タブ「Liked」からアバターを選択
↓
メニューボタン＞Send Motion IP Addressを③のIPを入力、その下のポートに39540を入力します。

:::note info
モーション受信できない時に試すこと
・ファイアウォール設定を一時的に切る。
・waidayoのポート入力に一度0を入力して入れ直す。
・waidayo、VSeeFaceの再起動。
私はいつも上記をいろいろしたりしてなんだかんだ時間かけて接続します。
:::

これで顔をVSeeFaceに送信できました。
↓
TDPTを起動します。アバターは初期設定のままでOKです。
Source Deviceでカメラ選択すると動き出します。
またはLoadMovieで動画を選択し読み込みます。
↓
Configuration＞Others＞Send VMC Protcolをオンにする
IPに③を入力、ポートは39541にして、下のApplyを押して反映させます。
↓
VSeeFace　設定＞一般設定
二次のOSC/VMCプロトコルの受信機能をオンにする。
ポートに39541を入力。
下のチェックマークは「ブレンドシェイプを受信」以外はオンにします。
↓
Blenderを起動
ファイル＞インポート＞VRM
でアバターを選択して読み込む。
↓
ショートカットN >VMC4Bタブを開く
アドレスに127.0.0.1、ポート番号は39539（任意）にします。
アーマチュアにシーンコレクションからアバターをDDします。
↓
VSeeFace　設定＞一般設定
OSC/VMCプロトコルで送信するをオンにします。
IPは127.0.0.1、ポート番号は39539を入力します。
↓
BlenderのVMC4Bタブで▶Connectすると受信が始まります。
その下のStartRecordingでモーション録画ができます！すごい！

完了！




### 参考に各送受信の設定画面
waidayo
<img width="300" alt="waidayoの送信設定" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709249/2abb9fd7-bad0-fd43-748d-ea92f47d3e14.png">

TDPT
<img width="500" alt="TDPTの送信設定" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709249/f967dd2f-cb0a-0d15-617c-220c1693c786.png">

VSeeFace
<img width="500" alt="VSeeFaceの送受信設定1" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709249/2820be20-84ff-486f-d5f8-f69793b28d1f.png">
<img width="500" alt="VSeeFaceの送受信設定2" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709249/3e17b912-e0d5-b5e3-6577-5bb2883969ce.png">

Blender
<img width="500" alt="Blenderの受信設定" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2709249/70b62706-d68c-2e12-7bfa-e53cdea30e46.png">


# 最終こんな感じになりました

<iframe width="560" height="315" src="https://www.youtube.com/embed/QaRAUHO6f3o" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

# 各リンク先

https://protocol.vmc.info/

https://booth.pm/ja/items/3698596

https://apps.apple.com/jp/app/waidayo/id1513166077

https://www.vseeface.icu/#japanese-info

https://blender.jp/

https://vrm-addon-for-blender.info/ja/

https://booth.pm/ja/items/3432915



# あとがき
最終動画を見た感じ、まばたきなどの顔のブレンドシェイプが飛んでしまっている部分があります。
ハードのスペック不足かネットワークか…
PCのスペックは最後Blenderでモーション録画まですると結構ギリギリな感じでした。ソリッド表示でなんとか耐えれる。
あと、いろいろ動作してBlender起動することになりますが、起動しなかったので、TDPTが重たいと思い一旦動画読み込みを止めました。
iPhone12もこの記事で説明する用に画面録画したらフリーズするぐらいスペックギリギリでした。

Blenderでモーション録画まで出来たので個人的にはここからアクション分けの方法を勉強したいです。

TDPTの「上手なモーションキャプチャーのコツ」や設定についてはこちらを御覧ください。
https://digital-standard.com/tdpt-win-operation-instructions/


最後に、各アプリ・サービス・ソフト開発者の皆様、いつもありがとうございます。

# 余談
はじめまして、TDPTのアバターとかUIとかドキュメントとかWebサイトとか…もろもろ担当している者です。Unityが好きです。
TDPTの実用的な使い方を発信し皆様のお役に立つことができればと思い投稿致しました。