Zoom Meetingにアバターで参加するぞ。番外編


# はじめに
ZoomがSDKを提供しはじめたということで盛り上がりを見せている昨今ですが、Qiitaでも盛り上げイベントが開催されています。SDKでいろいろ遊ばせてもらえる上に、アイテムもゲットできるかも、ということで参加するしかないですね。

ということで、これを機にいろいろ実験してみたのですが、面白そうなことがたくさんできそうだったので、いくつか連投する予定です。ご興味を持たれましたら、後続の投稿もご覧ください。

第１回の記事はこちら⇒[Zoom Meeting SDKでタイムキーパーちゃんを作る](https://qiita.com/wok/items/205c086f19a7ff73718d)
第２回の記事はこちら⇒[Zoom Meeting SDKでアバターにいろいろしゃべらせる](https://qiita.com/wok/items/0450c8620f11a371bd8b)
第３回の記事はこちら⇒[Zoom Meeting SDKをつかって会議にアバターで参加する](https://qiita.com/wok/items/1bccd567e844ac4e8979)
第４回の記事はこちら⇒[Zoom Meeting SDKでなんちゃってボイスチェンジャー](https://qiita.com/wok/items/08c9505d5c3c95d8956d)
番外編の記事はこちら⇒[Zoom Meetingにアバターで参加するぞ。番外編](https://qiita.com/wok/items/4f51e1a72d735b75f73f)　**←本記事**
第５回の記事はこちら⇒[Zoom Meeting SDKとVosk browserでZoom会議のリアルタイム文字起こし](https://qiita.com/wok/items/e83c49c530354a7b8b42)　

Zoomに対してのデータの流れでいうと、マイクとカメラによる入力と、スピーカーからの出力の２系統に大別できると思います。これまで、全４回にわたりZoom Meeting SDKを使ってアバターを作ってきました。これまでは入力を主に対象にいろいろと実験してきましたが、次回は出力の方を何とかいじれないか考えてみたいと思います。

![image](https://user-images.githubusercontent.com/48346627/179144219-d16de0cd-8127-4939-baea-ee1d34cb9735.png)

ということではあるのですが、出力側の話をする前にいったん番外編として、Zoom Meeting SDKから少し離れてしまいますが、細かい機能を二つ追加したので紹介します。

一つ目はモーションキャプチャーのレコード機能です。レコードしたものを再利用することができるようになります。
二つ目はアバターの入れ替え機能です。お好きなアバターを使用することができます。

# モーションキャプチャーのレコード機能
動作としては次の動画のように、一度モーションキャプチャをしたものを、再度利用できるようになるものです。
<iframe width="560" height="315" src="https://www.youtube.com/embed/da0J1HAb-XE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>


操作は次の図の通りです。upper bodyのキャプチャはかなり不安定なので、試しに使ってみて難しそうなら無効にした方がいいかもしれません。(要改善ですが、mediapipeの公式に期待したい、、、、([以前の記事参照。](https://qiita.com/wok/items/1bccd567e844ac4e8979)))

![image](https://user-images.githubusercontent.com/48346627/179137882-3ffd6825-fcb1-497c-a7f0-d41fce329c51.png)


# アバターの入れ替え機能
右上のギアのアイコンから設定ダイアログを開いてください。avatarアイコンをクリックするとvrmファイルをロードするボタンが出てくるので、クリックしてお好きなファイルをロードしてください。
<iframe width="560" height="315" src="https://www.youtube.com/embed/MXz6KbbTSUs" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

操作は次の図の通りです。

![image](https://user-images.githubusercontent.com/48346627/179138790-c441e9e1-00a6-49af-9550-a6b2f6baaf82.png)

# デモ
今回も、Dockerイメージの作成に加えて、Herokuにもデプロイしています。とりあえず、使ってみてください。

■ Dockerコンテナの起動

```
$ docker run -p 8888:8888 dannadori/zoom-meeting-plus:v05
$ docker run --rm -it -p '127.0.0.1:50021:50021' voicevox/voicevox_engine:cpu-ubuntu20.04-latest
$ docker run -it -p 5500:5500 synesthesiam/opentts:en
```

http://localhost:8888/ にアクセスすれば使えるようになります。
なお、httpで起動しているのでローカルで使用する必要があります。

■ Heroku上のアプリにアクセス

Herokuは一定時間アクセスがないと停止してしまい、再起動に少々時間がかかります。アプリ開始されるまで気長にお待ちください。(多分１分もかからないと思います。)

https://zoom-meeting-plus.herokuapp.com/


# リポジトリ
ここで紹介したデモは次のリポジトリで公開しています。
https://github.com/w-okada/zoom-meeting-plus

どんどんアップデートしていくので最新版は安定しない可能性があります。
次のタグでcloneして使ってください。
```
$ git clone https://github.com/w-okada/zoom-meeting-plus -b v05
```

# 宣伝
弊社 FLECT は、Salesforce を中心に AWS, GCP, Azure を用いたマルチクラウドシステムの提案、開発を行っております。 また、ビデオ会議システムについては、Zoom SDK, Amazon Chime SDK, Twillio など各種ビデオ会議用 SDK を用いたシステムの開発しており、サービス化の実績も多数あります。 ご興味をお持ちいただけたら是非ご相談ください。