バーチャル受肉をアテンドする
この記事は Ingress & Wayfarer Advent Calendar 2020 の12月9日担当分として木野陽(IngressのIDはRikka6)が書きました。(Twitterはこちら)
1: はじめに
オンライン会議の機会が増えています。VTuberのように「バーチャル受肉」(美少女でもよいが美少女でなくてもよい)してアバターで参加する方も増えていますよね。ただ、アバターで配信をするにはある程度準備が必要です。ネットの向こうにいる人に勧めても、必ずしも配信環境を持っているとは限りません。
……いや待てよ、アバター自体は映像と音声があれば動くので、入力ソースだけ送ってもらってわがやから配信すれば大丈夫なのでは!
そんなわけで、アバター配信用の二人羽織環境を作ってみました。また、この環境でのキャラクター「青梅ちゃん」のリモート配信を、2020年7月~11月の青梅FSで実施しました。手作り感がすごい方法ですが、手持ちの道具でなんとかするのがステイホームDIYだ……!
注意事項
この記事の内容はセキュリティ上のリスクを含みます。
もし参考にして配信等をされる場合は、自己責任で行ってください。
2: 経緯
木野の遊んでいるIngressという位置情報ゲームには地域交流を目的とした月例の公認ユーザーイベント「FirstSaturday」があります。※略称FS
しかし、感染症拡大の影響により、2020年5月からはリアルでの集合はせずオンラインのチャットやビデオ会議で集まる「バーチャルFS」という形での開催になりました。これまで近所の公園やカフェで撮影していた集合写真が、ビデオ会議のスクショに変わりました。
ところで、東京青梅のFS(Twitter)には、自主制作のマスコットキャラクター「青梅ちゃん」がいます。FSの準備チームからのご依頼で木野がキャラクターデザインをしたご縁で、ときどきイラストなどを描かせていただいています。
今年はバーチャルFSでZoomを使うことになり、青梅ちゃんにも参加してもらいたくなりまして、実際にイラストからアバターを作ってみました。使用したのはAdobe Character Animator(略称Ch)というソフトです。
ChはAdobe CCに入っているアプリで、Photoshopで一定のルールに従ったpsdファイル(*顔や首、髪、目などのキャラの体のパーツを細かくレイヤーわけしてある)を用意すると、アニメや動画配信で使える「動くキャラクター」が簡単に作れます。キャラの体の部位をメッシュ変形で動かすしくみになっていて、関節や目の動く範囲、口の開け方のパターンなどを設定するとより自然に動きます。
そして、カメラに映った顔(右上のぼかしたエリアに映っています)の動きとマイク入力音声を検知して、人の動きに合わせてキャラの目線や口などの動きが同期します。ウェブカメラがあればあなたもすぐにVTuber!
サンプルファイルや公式の解説記事・動画が用意されているので、初めてでも直感的に作業できました。
なお、ChはAdobeCCのサブスクに含まれているので、毎月利用料を払っている方は無料で使えます。逆に単品で買うことはできないので、AdobeCCの利用者でない場合はちょっとハードルが高いかもしれません。(学割があるので学生の方はお得に使えます)
ぬるぬる動く……!(本番はより自然な動きになるよう改良)
こうして作った「動く青梅ちゃん」アバターは、一度青梅FSの集合写真に写りこませてもらって好評だったので、実際の企画配信にも利用していただこうと準備チームにデータをお渡ししました。……しかし、青梅ちゃんご本人はChを持っておらず、お持ちだったスタッフの方もPCのスペック不足でアバター操作と会議アプリの同時起動が不可とのこと。それに木野は北海道在住でデスクトップPCを青梅に送り付けるわけにもいきません。ぬぬぬ、技術的には可能なのにもったいない!
というわけで、リモート配信の環境を作ることになりました。
3: 目標とする環境
本番はZoomで配信を行うので、魂にはZoom以外の動画通話アプリで映像&音声を配信PCへ送ってもらいます。今回はSkypeを使いました。また、Chのアバターは、Chromeリモートデスクトップで直接操作してもらいます。配信には主にOBS Studio(フリーで使える配信アプリ)を使います。
具体的なしくみをちゃんと図にするとこうなりました。
バ美肉プロキシです!(得意な人に書いてもらいました)
アテンド側でPCを2台(Windows×1、Mac×1)使用します。これは
・Character Animatorの外部ソース入力ができるのがMacのみ
・OBSからZoomへ仮想カメラ入力ができるのがWinのみ
という状況(2020年6月現在)に対応するためです。また、魂と配信者でメイン操作PCをわけることで、セキュリティ上のリスクや操作の被りによるトラブルを多少減らせます。
PC1:RikkaがWinのデスクトップPC、PC2:MBPがMacBookProです。
※後日MacがしんでWin1台で同様の配信をした件は【おまけ】で後述
なお、わたしは配信を全くしたことのない初心者だったので、そもそもの「Character Animatorでバーチャル受肉してビデオ会議に参加する方法」についてはこれらの記事を参考にしました。ありがとうございました!
4: 用意したもの
【アテンド:配信環境を運用する人】(木野)
↓Macにインストール
・NDI Tools
・Adobe Character Animator
・Chromeリモートデスクトップ
↓Winにインストール
・NDI Tools
・OBS Studio+NDIプラグイン
・VB Cable
・Voicemeeter Banana ※必須ではないですがあると音の調整がしやすい
・Skype
・Zoom【キャラ専用のアカウント】を使います
【魂:アバターを操作する人】(青梅ちゃん)
・Skype
・Chromeリモートデスクトップ
・Zoom ※聞き取り用、別アカウントでログイン(終始ミュート)
魂はカメラ+マイク+イヤホン(基本的なビデオ会議セット)を使用します
5: 配信までの手順
ここをちゃんとしたHowTo記事のように1個ずつ書くとものすごく長くなってしまうのと、出先にいて全アプリのスクリーンショットを撮れないので、ざっくりと概要をまとめました。個別のアプリの設定などはリンク先を参照してください。わかりにくくてすみません……(需要があれば後日詳細をまとめて画像を追加します)
A アテンドのやること
・PC2台を同一のネットワークに接続(家の無線LANでOK)
・アプリを各PCにインストール
インストールしたアプリの設定は以下のようにします。
まずはWinから。
【Skype】
音声の設定で、スピーカー(音声出力)をVBCableに設定します。
【VB Cable】
インストールだけすれば、設定は特に必要ありません。VBCableは入力された音声が同じ名前の出力チャンネルから出ます。
【OBS】 (NDIのプラグインもあらかじめインストールしておく)
今回の配信では上の図のようにOBSを2つ多重起動して使っています。OBSのウインドウを2つ出してそれぞれ「1:Skypeの映像・音声をMacに送る」用と「2:Chの画面+Skypeの音声をZoomに送る」用として使います。
こちらのサイトにある方法で多重起動することができます。
1:Skypeの映像・音声をMacに送る用
ソースとしてSkypeの画面キャプチャとVBCableの音声を入力します。
NDIに出力するので、名称を「OBS-Win1」等に設定します。
2:Chの画面+Skypeの音声をZoomに送る用
ソースとしてMacから出力するNDIの「Adobe Character Animator」(Mac側で出力の設定すると選べるようになります)とVBCableの音声(Skypeから入力されているもの)を入力します。音声と比べて映像に遅延が発生する場合は音声の設定で遅延を入れて、タイミングを合わせます。
こちらもNDIに出力しますが、名称を「OBS-Win2」等にして区別できるようにします。
OBSからNDI経由で配信の設定をするにあたり、最近書かれたわかりやすい記事があったのでこちらもどうぞ。
【NDI Tools】
いくつかのアプリがまとめてインストールされますが、その中の「Virtual Input」を起動して使います。起動するとWindowsの右下タスクバーVirtual Inputのアイコンが表示されるので、クリックして出てくる設定メニューから、使うソースを選択します。OBSなどのNDI出力設定を済ませている場合は自分で決めた名称の出力リストが出てきますので、さきほど設定した2:Chの画面+Skypeの音声をZoomに送る用(OBS-Win2)を選択します。
【Zoom】
Zoomには、アバターのキャラ用のアカウントを作ってログインしておきます。アカウントの管理はアテンドの人が責任をもって行います(魂は特に操作しません)。
ビデオ(映像入力)を「NDI Video」に、マイク(音声入力)を「ライン(Newtek NDI Audio)」にして、問題なく入力されるかテストしておきます。音声出力(スピーカー)は何でも大丈夫ですが、アテンドのイヤホンなどにしておくと安心です。
以上がWinの必須アプリの設定です。使うものが多いのと、音声の入出力の設定はいまいち設定したとおりになってくれない(あるはずのソースがなぜかリストに表示されない、アプリでマイクやスピーカーを選べない・変更が反映されない的な……)ことがあるので、困った時はPCを再起動してやり直しました。アプリの起動、音声設定の順番などでうまくいかないことがある印象です。
なお、音声の入出力の設定切り替えが面倒だった&こまめな音量調整をしたかったので、Voicemeeter Banana をインストールして使いました。
↑配信中のアテンド画面(Win)はこんな感じです
続いてMacの設定です。
Macはリモートデスクトップで魂に操作してもらうので、機能を制限したゲストユーザーのアカウントを作って使います。
【NDI Tools】
いくつかのアプリがまとめてインストールされますが、その中の「Virtual Input」を起動して使います。起動後、メインメニューから使うソースを選択します。WinでOBSのNDI出力設定を済ませている場合は自分で決めた名称の出力リストが出てきますので、さきほど設定した1:Skypeの映像・音声をMacに送る用(OBS-Win1)を選択します。
【Adobe Character Animator】
起動後、使うアバターのファイルを開きます。
ストリームの画面でカメラとマイクの設定ができる(デフォルトでは内蔵のカメラとマイクになっていると思います)ので、それぞれカメラ→NDI Video マイク→NDI Audioを選択します。
配信のために、NDI Toolsをインストールを済ませてある状態で、メニューの「環境設定」→「ライブ配信」を開き、「Mercury Transmitを有効にする」にチェックを入れて、「NDI output」を選択します。
これでネットワーク経由でChからの出力映像を使える(WinのVirtual Inputで選択できる)ようになります。
また、魂には基本的にストリーム画面でアバターの操作をしてもらうので、操作しやすいように画面内の余計なウィンドウを片付けておきます。
【Chromeリモートデスクトップ】
「リモートサポート」を使います。
操作してほしいPCで「サポートを受ける」側の設定を行い、コードを発行します。魂は「サポートを提供する」側となり、アテンドからおしえてもらったコードを入力して接続を申請します。アテンドが接続の許可を出すと、魂側でPCを操作できるようになります。
ここまでがアテンド側の設定になります。多くてわかりにくいので、バ美肉プロキシの図を見ながら実施するのが安心です……
B 魂のやること
・Skype、Chrome、Zoomを端末にインストール
・カメラ+マイク+イヤホンの用意
端末はPCが望ましいですが動画通話はスマホでもOKです。ChromeはCh操作に画面サイズとキーボードがほしいのでPC推奨です。
音声設定は、Skypeにマイク入力を、聞き取り用のZoomにイヤホン出力を割り当てておきます。
それから、Character Animatorの配信画面操作の補助シートを作って渡しました。慣れるまでは押すところが多くて難しかったので……
C 事前にテスト配信を実施する
これはものすごく大事でした!準備が複雑なので当日いきなりの配信はできません。配信のテストを打ち合わせのZOOM会議に混ぜてもらって実施ししました。
1 アテンドと魂の両者、アプリをすべて起動し配信時の設定にする
2 Skypeでアテンドと魂のビデオ通話を開始、映像と音声を取り込む
3 Chromeのリモートデスクトップで魂のCh操作を許可
4 Zoom(本番の会議)への配信開始
テスト配信では、魂にChの操作感を知ってもらう&練習してもらうことはもちろん、アバター配信に多少の遅延があるせいで会話時にラグが発生することを準備チームの方々にお伝えし、イベント当日のMCをされる方とのやりとりも試してもらいました。
テスト時に起こった問題点と解決方法をざっと列挙しておきます。
・音が出ない/マイクが声を拾わない→音声の入出力設定を見直し
・配信映像と音がずれる→OBSで音声を遅延させタイミングを合わせる
・リモートデスクトップの操作が30分ごとに途切れる→アテンド側にアラートが出たら許可を都度出す
6: 当日の配信
Zoomの録画権限が木野の手元になくて直接現場で録った動画がない!ので状況を貼れずすみません!!ウワーッ!
ですが、おかげさまで配信は無事に実施され、動く青梅ちゃんの企画もなかなか好評をいただけたと思います。FS準備チームの方からアンケート集計を見せていただき、バーチャル青梅ちゃんについての感想を拝見しました。配信を楽しんでくださったみなさまありがとうございます!
↑Zoomにいたんだよ……!(集合写真タイムに撮影した画像を加工)
また、6月の初配信の後も、絵や動きを改良しながら何度か配信のお手伝いをさせていただきました。
↑7月にはねこが増えました
↑9月は夏だったので帽子装備でした
7: 問題点&改善が必要な点
・セキュリティリスクがある(リモートデスクトップでのPC乗っ取りなど)
今回の配信は気心の知れた仲間うちで行っており、リモートでPCを操作するのも誰かわかっています。ですが、信頼できる仲間だとしても、操作してもらうPCには権限を制限したゲストでログインし、配信に使うファイル以外置かない、配信中はPCから離れないといった最低限の注意は必要です。
・30分ごとにリモート操作の許可を求められる
Chromeリモートデスクトップのセキュリティ対策機能により、配信者は30分単位でリモート操作続行の許可を求められます。すぐに対応できるよう、アテンドの人がちゃんと在席しているほうが魂の側も安心です。
・遅延がきついので要対策
PCスペックや回線速度によりますが、話してからZoomで配信されるまで1~2秒遅延が発生しました。OBSでタイミングを合わせてZoomに送るので配信される映像と音声のラグは解消できますが、他の参加者の方との会話はスムーズにできなくなります。司会の方には事前テストの上「宇宙と通信するつもりでお願いします……」とお願いし、文章を短くして話す、相槌や返事を待つなど気をつかっていただきました。ラグ前提で多少強引に進行してもなんとかなる程度の誤差ですし、じゃんけん大会もしましたが(笑)厳密なタイミング合わせの必要なアクティビティは難しそうです。
8: まとめ・今後に向けて
今回は自前環境でどこまでリモート配信ができるかがんばってみましたが、友と楽しむ趣味の範囲内であれば十分運用可能だと感じました。
企業などがきちんとした環境を用意して行う配信に比べると安定性は落ちますが、アテンド側にある程度しっかりしたスペックのPCと回線があれば、あまり大きな出費なくアバターを用いてのリモート配信を実現できます。
今後バーチャルFSがどのくらい続くかわかりませんが、またどこかで動く青梅ちゃんの出番があるかもしれませんし、Adobe Chを持っている人は相対的に多くないので、機会をみてLive2Dに移植できたらいいなと思っています。
おまけ:PC1台で同様の配信を実現せよ
えーと、高難度コンテンツといいますか、実はこの企画の最中にMacBookが壊れました。修理に出してしまったのでWin1台しか使えません。
これはしんだ……!と思いましたが、より手作り感のすごい環境をつくることで解決しました。WinではなぜかChがウェブカメラ以外の入力ソースを受け付けてくれないのですが、「Skypeの画面をウェブカメラで直接撮る」でカバーします。Chは顔の向きや表情がわかれば画質は問わない。
セキュリティ対策を無視すれば、むしろ複数のPCを行き来しない分遅延が短くて済みました。逆にシンプルな配線で済むじゃん……?
※セキュリティ的に微妙なので自己責任&最後の手段でお願いします
というのを本番直前に対処して何事もなかったように配信しました。
ちゃんとした写真が残っておらず仮想猫のスクリーンショットですみませんが、状況はこんなかんじでした。
↑目覚まし時計の上にウェブカメラがテープで貼ってあります
画面右のSkypeを直に映していました
おまけ2:雑記/Ingressのファンとして思うこと
まず位置ゲーの記事で位置ゲーの話をぜんぜんしてない! ……のですが、そういうところも含めて何か問題にぶつかったり新しいことへの挑戦ができたりするのも「うんうんそれもまたインカツだよね」ということにさせてください。
(実はわたしはつい先日までAdventarの記事は1人1個技術系小ネタを投稿するものだと思い込んでいた、別にそういう縛りなかったですね)
今回の配信をやって個人的にちょっと嬉しかったことを。6月の青梅FSにて、青梅ちゃんのキャラデザをしたご縁でゲストに呼んでいただきメイキングをお話したのですが、その中で、青梅ちゃんとリアルタイムで会話をすることができました。写真は青梅ちゃんと通話する際にウワーッウワーッて言いながら撮った画面です。(この日は自分もアバターで参加しました)
もちろんバックグラウンドの技術は自前なのでどんなしくみでやっているのかはわかっています。いや、そもそも緊張しすぎて挨拶とお礼以外なに話せたんだろう……でも感無量といいますか、こういう体験ってできるんだーといいますか、VTuberのママってこういう気持ちなのかもしれないなという不思議な感動がありました。青梅ちゃん&XF青梅実行委員会のみなさまありがとうございました。
(広い意味で)Ingressを続けて、コミュニティとかかわっていくことで、知らなかった地域やそのエリアの方々とのご縁ができ広がっていくことをありがたく思います。
密を避けて近所を散歩しながら、またリアルイベントが開催できますように、新しい人や場所との出会いを気軽に楽しめる日常がきますようにと祈念しております。みなさまご安全によいお年をお迎えください。
木野陽(Twitter)
----------
この記事は Ingress & Wayfarer Advent Calendar 2020 の12/9担当分です。
昨日12/8はドクターささけんさん、明日12/10はMagicalThornさんです。
この記事が気に入ったらサポートをしてみませんか?