リモートワークでバ美肉ビデオ会議

4 minute read

みなさん体調は大丈夫ですか?私は咳が止まらない毎日を送っています。医師の診断によるとただの風邪らしいです。 巷では新型肺炎が流行しているようで、情勢を鑑み出社を禁止する会社もちらほら出てきている現状です。 弊社も例に漏れず、状況によってリモートワークが推奨されることとなりました。

処方された薬を飲み続けていて身体はすこぶる元気なものの、咳がまだ止まらないので最近はリモートワークの毎日です。 ズボラな私は、家から出ないと決めた日は寝起きのまま、髪はボサボサ、目は半開き、家庭用の微妙なデザインのメガネ。 リモートワークなのだからソレくらいがちょうどいいんですが、社会はそんなに甘くありませんでした。

ビデオ会議の存在です。

ビデオ会議

ビデオ会議ではカメラを通して自分自身をメンバーに晒す必要があります。 ボサボサの髪・開ききらない目・クソダサメガネを備えた姿を、たとえ低画質のカメラを通したとしても人に見せるわけにはいきません。 そのためには、現代のテクノロジーでなんとかできる方法を探るしかありません。

バーチャル美少女受肉、通称 バ美肉 です。

バ美肉

https://ja.wikipedia.org/wiki/バ美肉

バ美肉がなんたるかはWikipediaで確認してもらうとして、バ美肉をどのようにするかを考えなければなりません。 リモートワークでバ美肉の必要性を感じる人はちらほらいるようで、以下の記事でも実践していました。

これからのリモートワークの話をしよう|schemelisp|note

FaceRig

先ほどの記事にはFaceRigとLive2D Moduleを用いているとの記載があります。 これで受肉できる!と、考えたのも束の間、利用環境が全くもって合致しませんでした。

業務で用いているのはMacBook Proで動かしているOSはmacOS Catalina。そもそもWindows向けに作られているFaceRigの起動すらできない環境です。 そしてそこそこの計算資源が必要とあり、障壁はなかなかに高いものでした。

さて、この解決策は使えないと知り、振り出しに戻ったかと思ったものの、FaceRig Live2D Moduleの説明に既視感のある文字列を見つけました。

Live2D Cubismです。

ARKit-Live2D 2.0

iOS 11でARKitのAPIが提供され始めた時のこと、Face TrackingしてLive2D Cubismのパラメーターを操作するデモアプリを作った過去があります。

そうだこれを使えばいいんだ。FaceRigから遠回りしたものの、一つの解決策にたどり着きました。

これが今でもそのまま動けばよかったものの、最後の更新から2年以上の月日が経っていたり、利用しているLive2D Cubism 2.0の配布が終了していたりで今のiPhoneで動かすことはできませんでした。

この三連休は咳が酷くてずっと家にいたため、これを手直し、最新のLive2D Cubism 4.0への対応と新しいEye Trackingにも対応しました。バージョン2.0です。

mzyy94/ARKit-Live2D - GitHub

誰でも簡単に使えるようになっているので、READMEを読んで動かしてみてください。

こんな感じで動きます

macOSでiPhoneの画面表示

さて、これでiPhoneでのバ美肉はできるようになりました。しかし、これだけではビデオ会議にこの映像を使うことはできません。 MacでiPhoneに表示されてる映像を使えるようにする必要があります。 ここで考えられる方法は、以下の2つがあります。

QuickTimeでビデオ録画

USBで接続したiPhoneの画面をQuickTime Playerでプレビューする方法が、最も手軽にiPhoneの画面をmacOSに表示する手段です。これを画面共有するなどして、ビデオ会議に用いる方法がまず浮かびました。

QuickTime Player を使う方法 - Apple サポート

ただ、遅延が大きいのと、計算資源を大きく消費することが気になります。

CoreMediaIO DAL

macOSに備わるフレームワークを用いてメディアデバイスを仮想的に作り上げる方法があります。CoreMediaIOです。 QuickTimeの画面録画もこれを用いています。

まず、このCoreMediaIOのDevice Abstraction Layer (DAL) を通して、仮想カメラをmacOSに作成し、iOSからの映像を受け取る算段を思いつきました。 ARKit-Live2DはReplayKitに対応しているため、RTMP配信対応アプリを通して、以下のような流れが実現できるはずでした。

iOS -> ReplayKit - RTMP -> macOS -> CoreMediaIO DAL -> Camera

ただ、CoreMediaIO DALのサンプルコードが古いのと、Kernel Extensionのデバッグに難航してしまったので、仮想カメラを作るのは諦めました。

あとはビデオ会議アプリがこのCoreMediaIO DALを用いた画面共有ができることを祈るばかりです。

Zoomビデオ会議

弊社では、ビデオ会議にはZoomを用いています。 このZoomには画面共有機能があり、その項目になんとCoreMediaIO DALを用いたiPhoneの画面共有がありました。

zoom-input-selection

USB接続したiPhone 11 ProでARKit-Live2Dを起動し、画面をプレビューしてみると、とてもきれいに写るではないですか!

zoom-ios-input

あとはこれでミーティングに参加すれば、バ美肉ビデオ会議が叶うこととなりました☺️

zoom-babiniku-meeting

声がおじさんのまま?よしなに頑張ってください。

まとめ

WindowsでFaceRig+Live2D Module+OBSを用いてやるよりも、低負荷で実現できていそうな気がします。

リモートワークでLet’sバ美肉。

コメントする