07.31
【World MR News】話題のVRライブ・コミュニケーションサービス「バーチャルキャスト」を支える技術――「GTMF 2018 東京」レポート
アプリやゲームの開発・運営に関わるソリューションが一堂に会するイベント「GTMF 2018 東京」が、7月13日に東京・秋葉原の秋葉原UDX GALLERY NEXT THEATERで開催された。
今回行われたセッションは、「VRライブ・コミュニケーションサービス『バーチャルキャスト』でのモノビットエンジンの採用事例と最新情報」として、前半に株式会社モノビットミドルウェア事業部部長の安田京人氏が、同社の製品についての紹介を行い、後半に株式会社インフィニットループ 第四分室 仮想室 室長の山口直樹氏が登壇する形で行われた。
本稿では、その後半部分について紹介していく。
インフィニットループは北海道の会社で、主にゲーム開発やモバイルアプリ開発、Webアプリ開発とLinuxサーバ構築運用と、メインはサーバ系を主体に活動している。その同社がVRを扱うことになったのは、2年前のエイプリールフールで「仮想帰宅」というネタを出したところ話題になったことがきっかけだという。
そもそも「バーチャルキャスト」ってなに? という人もいるかもしれない。これは、インフィニットループとドワンゴが共同開発した、バーチャルなキャラクターになるVR空間のスタジオをリアルタイムでコミュニケーションできるサービスだ。簡単に言ってしまうと、今話題の「VTuber」になれるツールである。
HTC Vive、Oculus、Windows MRなどのVR機器に対応しており、自分な好きなキャラクターになりきってライブ配信を行うことができる。
特徴としては、ニコニコ生放送のコメントやツイッターのハッシュタグの投稿を表示して、リアルタイムにリスナーとコミュケーションができるところだ。また、「凸機能」で相手の放送に突入することもでき、簡単にコラボを実現することが可能となっている。
そのほか、カッコイイUIやお絵かきができるといった機能も盛り込まれている。
「バーチャルキャスト」を支える技術「VRM」
「バーチャルキャスト」を支える技術には、「VRM 3D Humanoid Avatar format for VR」がある。これは、ドワンゴが提唱したアバターに特化したプラットフォーム非依存のファイル形式である。
3Dモデルとしてのテクスチャやボーンなどの情報に加えて、視線設定など一人称で操作するアバターに必要な情報を扱えるようにしている。また、環境によって異なるスケールや、座標系も統一。アバターを作りやすく使いやすくプラットフォームをまたいで使えるようにすることを目指して作られているものだ。
これだけではなんだかわかりにくいが、この「VRM」のすごいところのひとつに正規化(座標系統一)があげられる。たとえば、モデルのフォーマットはいろいろあるが、座標系は統一感がない。UnityはX座標が自分のほうを向いているが、FBXのデータではX座標は外側を向いている。このようにバラバラな場合がある。そのままスクリプトを設定してしまうと、正反対の動きをしてしまうのだ。
キャラクターごとにスクリプトを組むのは大変なため、この「VRM」を利用することで座標データを統一することができるのである。また、ファイルの動的ロードもサポートしている。
アバターの人格に関する許諾も設定することができる。これまでモデルデータの利用規約はReadmeを書くなどテキストなどを同梱する必要があった。しかし「VRM」では、ファイルの中にそうした情報を書いておくことができるようになっている。
「バーチャルキャスト」の中では、この人格権を確認してモデルの使用制限を行って制作者が意図した使われ方がするようにできるのである。
この「VRM」に対応したソフトには、「バーチャルキャスト」以外にも「cluster.」や「hitogata」「3tene」などがある。また、先日pixivが発表した誰もが3Dキャラクターを作ることができる「VRoid Stidio」も対応している。
クライアントだけではなくサーバにも力を入れている
「バーチャルキャスト」では、「Monobit Unity Networking 2.0(MUN)」と「VR Voice Chat with MUN」のふたつのリアルタイム通信エンジンを使用している。これらのエンジンを採用した理由のひとつに、Linixサーバを使って自前で構築できるというところだったそうだ。ほかにも競合他社と比べて、値段が安くコストパフォーマンスもいいという点も上げられるという。
「バーチャルキャスト」はクライアント側の話ばかりが話題になるが、サーバもかなり力を入れているという。システムの概略としては、AWSで構築し自前でMUNサーバの負荷分散とオートスケーリングを行っている。
MUNサーバとAPIサーバのふたつのレイヤーに分け、真ん中にElastiCacheが置いてある。そこには、MUNサーバからキャッシュにサーバ情報が送られるという形だ。そのキャッシュ情報をAPIサーバがみて、サーバの負荷などを判断して振り分けを行っているそうだ。
これらは自前サーバのため、いろんなことができるという。サーバがどれだけ増えても、クライアント側からみればひとつの大きなサーバとして扱うことができる。また、APIサーバに書き込むアトリビュートもどんどん増やしていけば、R18の部屋を作るなど自前でいろんな挙動を増やすことが可能となる。
このAWSでモノビットのMUNを使ってわかったこととしては、Linuxの拡張ネットワーキングは必ず使った方がいいとのこと。当初拡張ネットワーキングを使わずに使い始めたところ、あまりレスポンスが良くなかったという。そこで拡張ネットワーキングに変更してみたところ、劇的に良くなったそうだ。追加料金なしで変更できるため、必ず使った方がいいとのこと。
帯域が広いよりもショートパケットが飛び交うため、PPS(1秒間に転送可能なパケット数)をどれだけ担保出来るかという部分が重要となってくるのだそうだ。また、AWSのM4からM5に変えたところ、劇的にパフォーマンスが上がったとのこと。こちらは予算との相談にもなるが、状況によってはM5一択のほうが良いという。
モノビットエンジンのいいところとダメなところ
このように、「バーチャルキャスト」ではモノビットエンジンを使用しているが、いいところダメなところがあるという。まずダメなところは、ナレッジが圧倒的に少ないところだそうだ。関数名で検索しても、別の競合エンジンのリファレンスが出てきてしまうのである。
また、現在はPS VRに対応していない。こちらに関しては、モノビットエンジン自体は今年の冬あたりに対応する予定である。
いいところとしては、サポートが早い点が上げられる。よくわからない挙動で落ちて質問をすると、たいてい翌日にはなにかしらの回答がくるという。何よりも。日本語で質問して日本語で答えが返ってくるというところも安心感があるのだそうだ。
そして、4月よりサービスを開始して以来、サーバ系のトラブルは一切無いという。これは予想以上に堅牢なサーバプログラムだったと山口氏も感心していた。
配信ツールとしての機能も充実
「バーチャルキャスト」はあくまでも配信ツールだ。そのため、リスナーが見ていることを前提に作られている部分がある。たとえばコメントの落下位置はランダムではなく、すべて計算して出している。また、UIの見せ方もリスナーが見ていることを意識して作られたものだ。
リスナーとのコミュニケーションが重要となってくるため、レスポンスのラグがない設計が行われている。さらに、カメラの画角や配信映像が綺麗になる工夫も行われている。
さらに重要な部分で通信量の削減も行っている。キャラクターが多数登場してコメントが表示され、様々な動機しているが、すべてを同期処理していると破綻してしまう。そこで、どれだけ通信量を削減できるかという試みが行われている。
たとえばコメントは初回のみ出現位置の同期を行い、その後は一切同期を取らないようにしている。また、演出に関係ない部分も同期を取っていないのだが、リスナー側から見て違和感がないような仕掛けを作っているという。
モデルデータの扱いにも細心の注意が払われている。膨大な時間とコストをかけて作られたモデルデータが流出してしまうと、即大問題となってしまうから。通常はモデルデータをダウンロードすると、内部のキャッシュなどに持っておくことが多い。しかし、「バーチャルキャスト」では、内部でファイルキャッシュを行っていない。毎回ダウンロードしているのだ。
通信経路は、すべてHTTPSによる経路暗号化が行われている。その送られているデータに関しても、内部で暗号化が行われており、キャプチャリングされても実際には見られないような工夫がされているのだ。
リスナーとのコミュニケーションを取るソフトということもあり、荒らし対策も大事な部分だ。具体的には、ツイッターの捨て垢による投稿の抑制や、ログを取って後から追跡できるという仕掛けが用意されている。
Photo&Words 高島おしゃむ
コンピュータホビー雑誌「ログイン」の編集者を経て、1999年よりフリーに。
雑紙の執筆や、ドリームキャスト用のポータルサイト「イサオ マガジン トゥデイ」の
企画・運用等に携わる。
その後、ドワンゴでモバイルサイトの企画・運営等を経て、2014年より再びフリーで活動中。