
モノビットは、7月13日に秋葉原UDXにて開催されたGTMF 2018 TOKYOにて、「VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報」と題したセッションを開催しました。
本セッションでは、モノビットが提供する各エンジンの概要説明と、ニコニコ生放送で展開されている「バーチャルキャスト」の採用事例とその運用などを解説。セッション冒頭ではモノビットの安田京人氏が登壇し、各エンジンが紹介されました。

モノビットエンジンVer 2.0シリーズの概要

「モノビットエンジンVer 2.0」は、スマートフォンやコンソール機、そしてVR端末などゲームだけでなくマルチプレイやコミュニケーションを簡単に実現できるリアルタイム通信のミドルウェアです。MMORPGなど多人数のタイトルにも対応出来る「MRS(Monobit Revolution Server)」、Unityに特化した通信ミドルウェア「MUN2.0(Monobit Unity Networking 2.0)」、そしてUnityで簡単にボイスチャットを実現できるUnityプラグイン「VR Voice Chat 2.0」の3つがあります。またエンジン採用実績では、「バーチャルキャスト」や『オーディナルストラータ』などツールや人気ゲームでの使用実績が紹介されました。

「MRS」は、大規模なMMORPGなどのオンラインゲーム開発が可能となるもので、低遅延が要求されるアクションゲームやVRなどリアルタイムに最適なミドルウェアです。従来のリアルタイム通信エンジンをゼロから見直して開発されており、組み込みに関するコストも取り込みやすいインターフェイスを用意することで低減しています。TCP/UDP/WebSocketの通信プロトコルを利用し、ネットワークの高速化とサーバー側CPU負担軽減も実現。UDP/RUDPが使用できる他にも、WebSocketに対応しているためPhantomJSを使用した自動テストが可能です。





プラットフォームはWindows/Linux/MacOS/HTML5/iOS/Androidで、ゲームエンジンにはUnityやUnreal Engine、Visual Studioにも対応しています。また暗号化対策には、AES128をベースとしたことで1パケットの通信毎に暗号化有無が細かく設定可能です。こうして堅牢な暗号化を図ることでチート対策も万全とのこと。他にも拡張ライブラリによって機能の追加が可能です。サーバーリソース監視の「Mackerel」に対応しており、NifftyCloudでの実証実験結果も公開されました。







またUnityに特化した「MUN(Monobit Unity Networking)」は、クライアントのみの実装でマルチプレイが実現出来る通信エンジンです。現時点でUnity 5/2017に対応していますが、Unity 2018に関しては鋭意対応中だそう。しかしながら社内では動作が確認できているため、次回のバージョンアップにて対応予定とのことです。全ての通信ロジックをクライアント側オンリーで実装可能で、必要に応じてサーバーにコードも書くことも出来ます。通信プロコトルは、場面によって信頼性または速度重視の最適な形で選ぶこと可能です。セッションではクライアントとサーバーサイドでのセキュリティに関する説明もありました。

なお「MUN」は、Ver2.4.0にてWebGL出力に対応したため、プラウザゲームにおいてもリアルタイム通信に対応したゲームを作りやすくなったとのことで、今後の開発ロードマップでは、2018年7月から8月にかけて.Net Core 2.1が、PS4/Nintendo Switchをサポートするとのこと。



今回メインテーマでもある「VR VoiceChat with MUN」は、「MUN」をベースに動くボイスチャットで、コンポーネントを追加するだけで簡単に実装可能なミドルウェア。Unity開発の場合にはオブジェクトを多く制作する必要がありますが、Unityのオブジェクトに「MonobitVoice」というコンポーネントを追加し、細かい設定はインスペクター上で行うだけでボイスチャットをできるようになります。また特定プレイヤー向けに音声を送信できるマルチキャスト配信機能も備えており、遅延音声カット機能や生音声データを取り出してボイスチャンジャー機能も実装可能です。

導入の利点について安田氏はLinuxでC#とC++のゲームサーバー運用や、C++での超高速サーバー開発、そして日本国内開発でのサポート体制が充実していることをピックアップ。導入にあたっては、UnityアセットストアにはおいていないのでモノビットエンジンのHPからプラグインをダウンロードして使用してほしいと説明しています。
インフィニットループの山口氏が説明するモノビットエンジン採用のVRコンテンツ「バーチャルキャスト」



モノビットエンジンの紹介後は、インフィニットループの山口直樹氏が登壇しました。山口氏は、低レイヤーのネットワーク管理に従事した経験もあったことからインフィニットループに入社したとのこと。入社当初は低レイヤーのネットワークをAWSに全て任せるような状況で、どうしようもなかったことからUnityを覚えVRの世界に入ったと語っています。横須賀の記念艦三笠で体験できるコンテンツを筆頭に様々なVRコンテンツを開発。ニコニコ動画の「バーチャルキャスト」を利用した「あいえるちゃんねる」も毎週水曜日に配信してます。




「バーチャルキャスト」はドワンゴとインフィニットループが共同開発した、バーチャルキャラクターになってVR空間のスタジオをリアルタイムでコミュニケーションできるVRライブ・コミュニケーションサービスです。HTC ViveやOculus Rift、そしてWindows MRに対応しています。ニコニコ生放送で利用可能でリスナーとのリアルタイムなコミュニケーションや、コメントをVR空間内に表示する機能に加え、他の配信者の放送に乱入する「凸機能」も備えています。





「VRM 3D Humanoid Avatar format for VR」とは、ドワンゴ開発のアバターに特化したプラットフォーム非依存のファイル形式。VRMの大きなポイントの1つは座標系の統一(正規化)で、モデルによってバラバラな座標の位置を同一に調整する部分です。


他にもファイルの動的ロードや、アバターの人格に関する許諾(アバターの人格や暴力/性的表現、商用利用など)があります。この許諾はファイル内に同梱させることが可能で、バーチャルキャストにおいては人格権を確認して使用の制限を設けています。他にもVRMに対応したソフトウェアとして、「hitogata」や「3tene」、「VRoid Studio」を紹介しました。







バーチャルキャストでは前段のセッションで紹介された「MUN 2.0」と「VR Voice Chat with MUN」の二つを利用しているとのこと。モノビットエンジンを採用した理由は、「Linuxサーバーを使って自分で構築できるから」という理由の他にも、競合他社に比べて、コストパフォーマンスも非常に良いため、導入を決断したと振り返っています。なおバーチャルキャストのサーバーはAWSで構築しており、自前でMUNサーバーの負担分散やオートスケーリングを行っているとのことです。




山口氏はナレッジの圧倒的な少なさや、現時点でPS4に対応していないことなどはまだまだ改善してほしいとしながらも、サポートが早く、質問も日本語で返事が来るという安心感が大きい事に加え、サービス開始から現在までサーバー系トラブルが無いことは両サービスともに非常に魅力的と語っています。


単なる配信に止まらない「バーチャルキャスト」の処理についても説明がありました。落下するコメントはすべてランダムではなく計算の上で落としており、UIの見せ方や低遅延のレスポンス、そしてカメラの画角などの工夫を凝らしている一方で、通信量の削減にも注力しているとのこと。キャラクターが沢山登場し同期するものも多々あることから、すべてを同期処理するとどうしてもサーバーが破綻してしまうことが避けられません。そのため同期させるタイミングを調整し、キャラクターが触れた瞬間に処理を開始するなど、ユーザーから見たら違和感のないようにしつつも、サービスが安定するような調整をしているとのことです。


特にモデルデータの扱いについては細心の注意を払っており、万が一流出したら大問題であるため、内部でファイルキャッシュを行わず、HTTPSでの経路暗号化やサーバーとクライアント間でのバイナリデータの暗号化と複合化しています。荒らし対策として捨てアカウントでの投稿を抑制し、問題があればすぐ通報できるような体勢になっています。
