Copyright © monobitengine Inc.All Rights Reserved.
安田 京人(ミドルウェア事業部部長)
VRライブ・コミュニケーションサービス
「バーチャルキャスト」での
モノビットエンジンの採用事例と最新情報
株式会社モノビット
Copyright © monobitengine Inc.All Rights Reserved. 1
<アジェンダ>
■第一部
モノビットエンジンVer2.0シリーズ概要と
最新情報(モノビット安田)20分
■第二部
バーチャルキャストを支える技術(Infiniteloop 山口様)25分
Copyright © monobitengine Inc.All Rights Reserved. 2
1980年横浜生まれ。
システムエンジニアを経て、コンシューマゲーム開発に6年間従事。
プログラマとして、携帯ゲーム機から据え置き機まで様々なタイトル開発に関わる。
その後、ネットワークゲーム時代の到来を予見し、
その分野で展開を試みる株式会社モノビットへ入社。
現在はミドルウェア事業部長として、
リアルタイム通信の研究開発に従事し
統合サーバパッケージ「モノビットエンジン」の開発ディレクションとエヴァンジェリストとしても活動。
■自己紹介
Copyright © monobitengine Inc.All Rights Reserved. 3
スマホ/家庭用ゲームやVRコンテンツで、マルチプレイを簡単に実現できる、リアルタイム通信ミドルウェアです。
主に3つの製品ラインナップで展開しています。2017年にVer2.0に進化しました!
1,Monobit Revolution Server (略称:MRS)
MMORPGや、多人数MOアクションゲームにも対応出来る処理速度とレスポンスを
追求した、高速ゲームサーバです。シンプルなAPIで超高速通信かつ大規模同時接
続を実現します。
■モノビットエンジンVer2.0シリーズとは?
2,Monobit Unity Networking 2.0 (略称:MUN2.0)
Unityに特化した通信ミドルウェアです。マッチング、ルーム、通信リレーの機能が
標準で用意されており、ネットワークの知識がなくてもマルチプレイを実装可能。
MRSと連携して、サーバにもC++/C#でコードが書けるように進化しました。
3,VR Voice Chat 2.0
Unityで簡単にボイスチャットを実現することができるUnityプラグインです。
2.0になってレスポンス速度上昇!
産業からエンタメなど幅広く利用されています。
本日の
メインテーマは
こちら!
Copyright © monobitengine Inc.All Rights Reserved. 4
採用製品 Realtime Engine
プラットフォーム スマートフォン(iOS/Android/Kindle)
ジャンル RPG
販売元 エイリム様
採用製品 Monobit Unity Networking 2.0
プラットフォーム スマートフォン(iOS/Android)
ジャンル おでかけRPG
販売元 トイロジック様
採用製品 Monobit Unity Networking
プラットフォーム HTV Vive
ジャンル 複数人参加型VRデモ
クライアント KDDI様
採用製品 Monobit Revolution Server
プラットフォーム スマートフォン(iOS/Android)
ジャンル ドラマチックファンタジーRPG
© Fuji Games, Inc. / Marvelous Inc.
採用製品 Realtime Engine
プラットフォーム スマートフォン(iOS/Android)
ジャンル 超能力×ミリタリーRPG
販売元 スクウェア・エニックス様
採用製品 Monobit Unity Networking2.0、VR Voice Chat
プラットフォーム HTC Vive
ジャンル VRトラッピングバトル
開発元 自社開発
ORDINAL STRATA -オーディナル ストラータ
八百万クエスト Trip Trap Travelers
ブレイブ フロンティア Linked-door ALICE ORDER
採用製品 Realtime Engine
プラットフォーム スマートフォン(iOS/Android)
ジャンル ARトータルソリューション
販売元 サン電子様
AceReal One
採用製品 Monobit Unity Networking2.0、VR Voice Chat
プラットフォーム HTC Vive
ジャンル VRライブ・コミュニケーションサービス
© DWANGO Co., Ltd. / infiniteloop, Co., Ltd.
バーチャルキャスト
採用製品 Monobit Unity Networking 2.0
プラットフォーム スマートフォン(iOS/Android)
ジャンル 共闘ことばRPG
© SEGA
コトダマン
■ エンジン採用実績①■
Copyright © monobitengine Inc.All Rights Reserved. 5
5
■ エンジン採用実績②
採用製品 Realtime Engine
プラットフォーム スマートフォン(iOS/Android)
ジャンル リアルタイム対戦ストラテジー
販売元 アソビズム様
城とドラゴン
採用製品 Realtime Engine
プラットフォーム スマートフォン(iOS/Android)
ジャンル みんなでスゴロクRPG
販売元 株式会社アプリボット様
スゴロクモンスターズ
採用製品 Realtime Engine
プラットフォーム スマートフォン(iOS/Android)
ジャンル オンラインRPG
販売元 FIELDS様
THE TOWER OF PRINCESS
採用製品 NetworkGame Framework
プラットフォーム PlayStation(R)Vita
ジャンル アクション&カードバトル
販売元 スパイク・チュンソフト様
せかい☆セイフク
採用製品 NetworkGame Framework
プラットフォーム スマートフォン(iOS/Android)
ジャンル 冒険者vsダンジョンRPG
販売元 スクウェア・エニックス様
ランページ ランド ランカーズ
採用製品 Realtime Engine
プラットフォーム PCブラウザ
ジャンル チーム対戦型横スクロールアクションRTS
販売元 スクウェア・エニックス様
家電少女
採用製品 Realtime Engine
プラットフォーム PCブラウザ
ジャンル チーム対戦型横スクロールアクションRTS
販売元 スクウェア・エニックス様
クリスタル◆コンクエスト
採用製品 Realtime Engine,
プラットフォーム Windows(R)
ジャンル マルチ対戦アクション
販売元 スクウェア・エニックス様
LORD of VERMILION ARENA
採用製品 NetworkGame Framework
プラットフォーム スマートフォン(iOS/Android)
ジャンル パチスロRPG
販売元 山佐株式会社様
輪撃クエスロット
■
Copyright © monobitengine Inc.All Rights Reserved. 6
MRS(Monobit Revolution Server)のご紹介
Copyright © monobitengine Inc.All Rights Reserved. 7
■ MRS(Monobit Revolution Server)とは
低遅延が要求されるアクションゲームやVRなど
リアルタイム通信コンテンツの開発に最適
これまでにない大規模なMMORPGなどの
オンラインゲーム開発が可能
Copyright © monobitengine Inc.All Rights Reserved. 8
■ MRS(Monobit Revolution Server)の特徴
●低遅延・高効率でのリアルタイム通信制御
- 通信シーケンスや内部プロセス、利用者に提供するAPI等を刷新
- リアルタイム通信機能として、より速く、よりシンプルな設計を実現
従来リリースしていた「リアルタイム通信エンジン」をゼロから見直して作成
●TCP, UDP, WebSocket の通信プロトコルの利用
- ネットワーク高速化とサーバ側CPU負荷軽減を実現
- 1CPUあたり最大20,000クライアントの同時接続を実現
TCP 接続は従来の「リアルタイム通信エンジン」を大幅に強化
UDP 接続プロトコルのサポート
- リアルタイム性の求められるデータの送受信に最適なUDP/RUDPを使用可能
WebSocket 接続プロトコルのサポート(ver.1.1.0 以降)
- PhantomJS(http://phantomjs.org/)を利用した自動テストが可能
高速処理によるインフラコストの大幅低減を実現
Copyright © monobitengine Inc.All Rights Reserved. 9
■ MRS(Monobit Revolution Server)の特徴
●多種多様なプラットフォームに対応
●ゲームエンジン、開発言語を多数サポート
C/C++ JavaC# JavaScript
家庭用ゲーム機やマルチプラットフォームも対応
PHP,Ruby
Windows/VisualStudioでサーバ開発が可能に!
Copyright © monobitengine Inc.All Rights Reserved. 10
■ MRS(Monobit Revolution Server)の特徴
●堅牢な暗号化によりチート対策も万全
・ 送信レコード単位で、暗号処理の適用可否を設定可能
- 暗号処理はCPU負荷を掛けやすい
- 秘匿性が低い送信レコードには暗号処理させないなどの施策により
全体的なスループット向上が見込まれる
・ 暗号方式について
- 暗号鍵方式には AES128 を採用
- 暗号鍵の交換方式には EDCH(楕円曲線ディフィー・ヘルマン)
鍵共有アルゴリズムを採用
●拡張ライブラリによる機能の拡張が可能
ルームサーバの機能や、ゲームマッチング、チャットなどは
『MRS_ROOM』 や 『MUN』 などで実現可能
ルーム作成 マッチング チャット
MRS_ROOM MUN
転送レコードごとの暗号化
Copyright © monobitengine Inc.All Rights Reserved. 11
■ MRS(Monobit Revolution Server)の特徴
- mackerel_agent をインストールするだけで問題なく監視可能
- システムメトリック : ロードアベレージ, CPU, メモリ, ディスクアクセス, ネットワーク帯域, ストレージ使用状況の監視
- カスタムメトリック : 各サーバプロセスごとのモニタリング, 同時利用者数(CCU)の監視など
●直感型サーバ監視ツール 『Mackerel』 に対応
MRS の対応内容
Mackerelとは
- サーバプロセスの監視状況をリアルタイムにグラフ化
- モニタリングはもちろん、ブラウザ対応UIやAPIが豊富
高機能な監視ツールにより運用をサポート
Copyright © monobitengine Inc.All Rights Reserved. 12
■ MRS(Monobit Revolution Server)の特徴
●低遅延・高効率化のNiftyCloudでの実証実験
・ TCP による最高性能試験の結果、
毎秒約540,000レコードのECHO送受信を実現させることが可能
※ MRS_bench 計測結果(1秒間隔の計測ログ、暗号化なし)
loop:試行数
s:総送信バイト数
r:総受信バイト数(総受信レコード数)
c:接続数
d:切断数
e:エラー検知数
loop:1 s:0 r:0(0) c:0 d:0 e:0
loop:1302 s:940160 r:46678(32104) c:40 d:0 e:0
loop:2576 s:4679800 r:366276(143363) c:117 d:0 e:0
loop:3222 s:8596640 r:1443319(340764) c:193 d:0 e:0
loop:3627 s:12284680 r:3220253(495575) c:266 d:0 e:0
loop:3939 s:15922640 r:5375457(551009) c:300 d:0 e:0
loop:4240 s:19534640 r:7557718(543762) c:300 d:0 e:0
・ UDP による最高性能試験の結果、
毎秒約350,000レコードのECHO送受信を実現させることが可能
※ MRS_bench 計測結果(1秒間隔の計測ログ、暗号化なし)
loop:試行数
s:総送信バイト数
r:総受信バイト数(総受信レコード数)
c:接続数
d:切断数
e:エラー検知数
loop:1 s:0 r:0(0) c:0 d:0 e:0
loop:698 s:133020 r:132220(132220) c:20 d:0 e:400
loop:1624 s:770060 r:768440(346380) c:40 d:0 e:920
loop:2491 s:1463660 r:1461980(344720) c:40 d:0 e:920
loop:3373 s:2169260 r:2167640(353580) c:40 d:0 e:920
loop:4255 s:2874860 r:2873220(353560) c:40 d:0 e:920
- Server :
Nifty-Cloud e-large8(¥37/h) x1
Intel Xeon 4Core CPU(E5-2697) 2.60GHz / 8GB RAM
- Client :
VMware 上の 仮想 Linux PC
※ MRS ver.1.0.0 リリース版での検証
※ 計測ツールは弊社内製のベンチマークツール 『MRS_bench』 によるもの
Copyright © monobitengine Inc.All Rights Reserved. 13
機能 新MRS 旧エンジン
対応プロトコル TCP/UDP/RUDP/WebSocket TCP
外部API設計 C言語風(シンプル化) C++風
遅延 マイクロ秒 ミリ秒
CPUスレッドあたりスループット
300同時接続時
毎秒54万レコード
300同時接続時
毎秒数万レコード
クライアント開発言語 C++,C# C++,C#
サーバ開発言語 C++,C# C++
サーバOS Linux,Windows,MacOSX Linux
13
■ MRS(Monobit Revolution Server)の特徴
●機能比較(MRS vs 従来品)
Copyright © monobitengine Inc.All Rights Reserved. 14
対応
プラットフォーム
■ MRS(Monobit Revolution Server)の展望
●MRSの今後の開発ロードマップとリリース予定
通信方式
実装方法
現行リリース 2018年7月 2018年8月 2018年9月 2018年冬以降
Linux
Windows
MacOSX
Android
iOS
Unity
Client/Server
通信方式
TCP/UDP/RUDP
プロトコル
WebSocket
CのAPIを利用
通信結果を
コールバック処理
他言語はバイン
ディングで対応
HTTP
サーバサンプル
Switch
UnrealEngine 4
P2P通信方式
コールバック
処理のRPC化
RPCスタブコードの
ジェネレータを
リリース
ゲームジャンルに
特化した実践的サンプル
Copyright © monobitengine Inc.All Rights Reserved. 15
MUN (Monobit Unity Networking)のご紹介
Copyright © monobitengine Inc.All Rights Reserved. 16
■ MUN(Monobit Unity Networking)とは
クライアントのみでも実装できる、Unity特化型の通信エンジン
マルチプレイを簡単に実装できるアセットです
Unity5.x、Unity2017.x 対応
※Unity2018.x(現在鋭意対応中)
Copyright © monobitengine Inc.All Rights Reserved. 17
■ MUN(Monobit Unity Networking)の特徴
- サーバ接続/切断、オフラインモード
- ロビーやルームに対する入室/退室制御、ロビーとルームの状態取得
- プレイヤー情報の取得(サーバ内検索, プレイヤーパラメータの設定と取得)
- RPCによる、任意のクライアントに対する情報送信および受信
- シーン内オブジェクトの位置・姿勢・アニメーション等の同期
- 各種条件に応じた、マッチメイキング制御
- ノンプログラミング通信制御 etc...
※すべて単一のコンポーネントやAPIで実装可能
MUN で実装できる機能の一部
※各種家庭用ゲーム機はNDA締結により利用可能になります
●多彩な機能が多様なプラットフォームで利用可能
利用可能なプラットフォーム
Copyright © monobitengine Inc.All Rights Reserved. 18
■ MUN(Monobit Unity Networking)の特徴
●すべての通信ロジックを、クライアント側オンリーで実装可能
MUN リリース当初からの設計思想を実現
- 『サーバサイドの構築なしでリアルタイム通信を実現したい』というご要望に対応
- 通信ロジックも含め、オンラインゲームのすべての制御をクライアント側でコーディング可能!
※MUNサーバはbroadcastでリレー配信する役割を果たします
- クライアントコードをそのままサーバに移植して、簡単にチート対策!
- MUN標準機能のサーバのソースコードを公開中。VisualStudioでカスタマイズ可能。
●必要に応じて、サーバにコードを書くことも可能!
MUN2.0より、MRSと連携してC++/C#言語でサーバ開発が可能になりました!
サーバとクライアントでコードを自在に配置可能
Copyright © monobitengine Inc.All Rights Reserved. 19
■ MUN(Monobit Unity Networking)の特徴
- MUNサーバ側は、TCP/UDPの通信ポート双方で待ち受けしている
- 同一認証のMUNクライアントであれば、TCPの接続クライアントとUDPの接続クライアントを
同一ルームに接続させることも可能
●TCP, UDPの通信プロトコルの利用
MRSに基づき、TCP/UDPの通信プロトコルをサポート
MUNにおける UDP/RUDP接続プロトコルについて
- MUNの内部処理で行われる送受信(ロビー/ルームの入退室など)の通信をUDPで行なう場合、
すべて RUDP で伝送される
- RPC(リモートプロシージャコール)、およびオブジェクト同期通信のみUDP/RUDP の個別設定が可能
速度を重視するか信頼性を重視するか、
場面によって最適な通信プロトコルを選択可能
Copyright © monobitengine Inc.All Rights Reserved. 20
■ MUN(Monobit Unity Networking)の特徴
- クライアントサイドの改ざんに伴う、チートの横行を防ぐ術がほとんどない
すべてのソースコードがクライアントに含まれるため
- ホストの優位性が圧倒的に高い
ノンプレイヤーの通信データについて、ホストは即時実行するが
他クライアントはホストからの通信を待たねばならないため
- ゲーム進行が、ホストの性能に依存する
●オンプレミス版MUNサーバを用いたサーバサイド実装にも対応
クライアント側オンリーでの実装における『問題点』
サーバサイド実装にすることの『メリット』
- サーバサイドに実装することにより、クライアント改ざんの隙を与えない
ほとんどの処理はサーバ依存にし、クライアントはビューアとして機能させる
- すべてのクライアントに対し、『平等なサービス』を提供できる
ホストも他のクライアントで実行タイミングを完全に一致させることができる
Copyright © monobitengine Inc.All Rights Reserved. 21
機能 MUN2.0 MUN1.0
プロトコル TCP/UDP/RUDP/WS・WSS TCP
サーバ開発 可能(C++/C#) 不可
自動スケール機能
新製品MRSクラスタ
リリース予定
なし
負荷試験自動化ツール ○ ☓
カスタム認証機能 ○ ☓
汎用ルームサーバー ○ ○
マッチメイキング ○ ○
プレイヤー検索 ○ ○
ルーム作成・入退室制御 ○ ○
ルーム名・人数取得 ○ ○
RPC同期通信 ○ ○
再接続処理 ○ ○
21
■ MUN(Monobit Unity Networking)の特徴
●従来製品との機能比較(MUN2.0 vs MUN)
Copyright © monobitengine Inc.All Rights Reserved. 2222
■ MUN、MRSの注目アップデート■
●Ver2.4.0にてWebGL出力に対応!ブラウザゲーム開発でMUNが使用可能
Unityで開発したスマホタイトルのブラウザへの移植や新規開発においても、
MUNが利用可能になりマルチプレイ機能の組み込みが非常に容易になりました!
Copyright © monobitengine Inc.All Rights Reserved. 23
■ MUN(Monobit Unity Networking)の展望
●MUNの今後の開発ロードマップとリリース予定
対応
プラットフォ
ーム
通信方式
クライアント
プログラム
現行リリース 2018年7月 2018年8月 2018年冬以降
Windows
MacOSX
Android
iOS
Client/Server
通信方式
TCP/UDP/RUDP
プロトコル
Webブラウザ
Switch
2018年9月
WebSocket
サーバプログ
ラム
Linux C++
Windows C++,C#
MacOSX
.NET Core C#
.Net Core 2.1対応
Unity C#
コア処理のリファクタリングにより、
高頻度送受信時の性能向上
(GC抑止等)
PS4
Copyright © monobitengine Inc.All Rights Reserved. 24
VR VoiceChat のご紹介
Copyright © monobitengine Inc.All Rights Reserved. 25
■ VR VoiceChat with MUN とは
MUNをベースに動作する『ボイスチャットエンジン』
コンポーネントを追加するだけで簡単に実装が可能!
無音検知、マルチキャスト配信、遅延音声カット機能を搭載!
■
Copyright © monobitengine Inc.All Rights Reserved. 26
■ VR VoiceChat with MUN の特徴
VoiceChat with MUN の機能を実装するには、
Unityのオブジェクトに 『MonobitVoice』のコンポーネントを追加します
●コンポーネントを追加するだけで簡単に実装が可能
上記コンポーネントを追加した状態で、MUNによる通信同期を行なう
シーンファイル上で動かすだけで、ボイスチャットが簡単に実現できます
簡単な手順でボイスチャットを実装可能
■
Copyright © monobitengine Inc.All Rights Reserved. 27
■ VR VoiceChat with MUN の特徴
- キーボードのタイピング音や、周囲の環境騒音の同時伝送を防ぎます
- 『一定量以下のdb値の音声を送信しないようにする』 という
シンプルなソフトウェアノイズキャンセリングを実装しています
- 無音検知機能によりデータ転送量を減らします
無音検知閾値を調整することで無音検知機能を無効化することも可能です
●無音検知機能(ノイズキャンセラ)を搭載
会話時の雑音などのノイズを除去し、クリーンな音声だけを送信
ハウリングを防止
- 特にスマートフォン端末など、スピーカー出力部とマイク入力部が近い位置にあるデバイスで有効です
■
Copyright © monobitengine Inc.All Rights Reserved. 28
■ VR VoiceChat with MUN の特徴
- 例えば 『FPSのチーム戦』 などにおいて、
『戦闘前のブリーフィング中にはチーム関係なく全員と会話させたい』
『戦闘中は自分のチームだけで会話させ、相手に音声を伝えたくない』
という、条件付きのボイスチャット配信設定を行なう機能です
●マルチキャスト配信機能を搭載
ルーム内の特定プレイヤーに対して、自身の音声の送信可否を設定可能
マルチキャスト配信機能のメリット
- ゲームデザインに応じたボイスチャットの拡張性を高めます
- 『特定プレイヤーとの会話』 によって、音声ストリーム情報によるトラフィックの
総量を抑えることができます
※マルチキャスト配信機能の設定にはAPIを使用する必要があります。
全員に声が届く
仲間にだけ
声が届く
聞こえない
■
Copyright © monobitengine Inc.All Rights Reserved. 29
■ VR VoiceChat with MUN の特徴
- 『相手の音声が数ミリ秒~数秒遅れて再生』 されるような
再生遅延の状態が著しく悪い状態のときに 『再生待ちレコード』 を削除し、
よりリアルタイムな音声を受信側で再生させる機能です
●遅延音声のカット機能を搭載
受信側の再生遅延が著しい場合に、再生の早回しを行なう機能
『ぶつ切り感』 をほとんど感じない音声遅延カット
- 『音声のぶつ切り』 がイメージとして浮かぶかもしれませんが、音声として聞き取れる
僅かな時間をカットするだけなので、ぶつ切り感をほとんど感じることはありません
- 数ミリ秒単位で音声再生を補完することにより、送信側の音声をより瞬時に受信側で
再生できる 『リアルタイムさ』 を実感できます
- コンポーネントの設定から 『遅延音声のカット機能』 を無効にすることもできます
生の音声データを取り出して、ボイスチェンジャーも実装可能です
■
Copyright © monobitengine Inc.All Rights Reserved. 30
■ VR VoiceChat with MUN の展望
- 30 -
ボイスチャット
専用サーバ
P2P対応
未定2018年秋 2018年冬
ノンサーバによる
ボイスチャットの実装
サーバミキシング機能の
実装
Plastation VR
対応
■
●MRSの今後の開発ロードマップとリリース予定
Copyright © monobitengine Inc.All Rights Reserved. 31
・お気軽にお問合せください contact@monobit.co.jp
■ まとめ
<導入の利点>
1,LinuxでC#、C++ゲームサーバが運用出来る
2,C++で超高速サーバが開発可能
3,日本国内開発でサポートが充実
<導入方法>
1,まだUnityアセットストアには置いていませんので、
モノビットエンジンのHPからプラグインをダウンロードして
使ってみて下さい。
2,既存のUnityNetworking互換APIを使って開発している
タイトルについても、別APIからの置き換えは1日で完了します。
現在開発中のタイトルについても、ぜひ採用を検討してみて下さい。
Copyright © monobitengine Inc.All Rights Reserved. 32
を
支える技術
株式会社インフィニットループ
仮想室 山口直樹
Copyright © monobitengine Inc.All Rights Reserved. 33
株式会社インフィニットループとは
・ゲーム開発
・モバイルアプリ開発
・Webアプリ開発
・Linuxサーバ構築運用
サーバのことなら任せとけって
会社です
Copyright © monobitengine Inc.All Rights Reserved. 34
自己紹介(1)
札幌のソフト会社で20年ほど
低レイヤーのネットワーク管理に従事
その後、インフィニットループに転職
山口 直樹
好きなSW Summit48si
好きなLB Alteon AD3
Copyright © monobitengine Inc.All Rights Reserved. 35
自己紹介(2)
会社でVRのコンテンツをはじめて見て「こ
れ出来ればあんなことやこんなこともで
きるじゃん!!」と
思って覚え始めた2年前の12月
あいえるたんさわさわ Vive
あいえるたん
お姫様だっこ
せかいぬりえ
Copyright © monobitengine Inc.All Rights Reserved. 36
どんなことやってるのか?
Copyright © monobitengine Inc.All Rights Reserved. 37
どんなことやってるのか?
Copyright © monobitengine Inc.All Rights Reserved. 38
どんなことやってるのか?
Copyright © monobitengine Inc.All Rights Reserved. 39
どんなことやってるのか?
バーチャルキャストを使って
毎週木曜日
絶賛配信中!
Copyright © monobitengine Inc.All Rights Reserved. 40
バーチャルキャストは、バーチャルキャラクターになって
VR空間のスタジオをリアルタイムでコミュニケーションできる
VRライブ・コミュニケーションサービスです。
ニコニコ生放送などの生配信サービスを介してスタジオを作ることで、
誰でも気軽に、好きなキャラクターでコミュニケーションできます。
他のバーチャルキャストユーザーの配信に乱入できる「凸機能」や、
生放送の視聴者を楽しませる様々な「アイテム」など、
バーチャルキャラクターの番組に欠かせない機能も盛りだくさんです。
とは?
Copyright © monobitengine Inc.All Rights Reserved. 41
とは?
Copyright © monobitengine Inc.All Rights Reserved. 42
リスナーとのリアルタイムコミニュケーション
Copyright © monobitengine Inc.All Rights Reserved. 43
相手の放送に突入(凸機能)
Copyright © monobitengine Inc.All Rights Reserved. 44
その他色々
Copyright © monobitengine Inc.All Rights Reserved. 45
バーチャルキャストを
支える技術
Copyright © monobitengine Inc.All Rights Reserved. 46
その1
Copyright © monobitengine Inc.All Rights Reserved. 47
ドワンゴさんが開発したアバターに特化した、プラットフォーム非依存のファイル形式。
(オープンソースとして公開中)
3Dモデルとしてのテクスチャやボーンといった情報に加えて、視線設定など一人称で操作するアバターに
必要な情報を扱えるようにし、環境により異なるスケールや座標系などを統一することで、アバターを作
りやすく使いやすく、お気に入りのアバターを配信でもゲームでもプラットフォームを跨いで使えるよう
にすることを目指します。
Copyright © monobitengine Inc.All Rights Reserved. 48
Copyright © monobitengine Inc.All Rights Reserved. 49
正規化(座標系統一)
正規化前
モデルによって座標系がバラバラで非常にめ
んどくさい
Copyright © monobitengine Inc.All Rights Reserved. 50
正規化(座標系統一)
VRM変換後(正規化後)
モデルの座標系が統一される
Copyright © monobitengine Inc.All Rights Reserved. 51
ファイルの動的ロード
インポータにバイト列を渡
すと
humanoidのゲームオブジェ
クトが生成されます。
Copyright © monobitengine Inc.All Rights Reserved. 52
「アバターの人格に関する許諾」
モデルデータに「人格」という概念
が存在
人格を与える範囲が設定でき、モデ
ルデータの使用は可能だが、モデル
データに異なる人格を与えるのは不
可という、今の時代を反映した許諾
設計がされている
Copyright © monobitengine Inc.All Rights Reserved. 53
その2
Copyright © monobitengine Inc.All Rights Reserved. 54
Monobit Unity Networking 2.0(MUN)
VR Voice Chat with MUN
この2つのリアルタイム通信エンジンを使ってます
Copyright © monobitengine Inc.All Rights Reserved. 55
モノビットエンジン採用の理由
Linuxサーバを使
って自前で構築で
きるから
(・・・他にもコストパフォーマンスが高いとか理由ありま
す・・・)
Copyright © monobitengine Inc.All Rights Reserved. 56
株式会社インフィニットループとは
・ゲーム開発
・モバイルアプリ開発
・Webアプリ開発
・Linuxサーバ構築運用
サーバのことなら任せとけって
会社です
Copyright © monobitengine Inc.All Rights Reserved. 57
サーバ、かなり頑張ってます!!
クライアントが
話題になってますが
だって本職だもん・・・・
Copyright © monobitengine Inc.All Rights Reserved. 58
概略図
AWSで構築してます
自前でMUNサーバの
負荷分散及び
オートスケーリングを
行っています
Copyright © monobitengine Inc.All Rights Reserved. 59
負荷分散およびスケーリング
MUNサーバ全体の負荷が閾
値が超えればインスタンス
の追加
MUNサーバ全体の負荷が
閾値より低い状態が続いた
ら、流入を停止して
クライアント接続がなくな
ればインスタンスを削除
Copyright © monobitengine Inc.All Rights Reserved. 60
自前だからできる色んな事
ユーザB
MUNサーバB
ROOM_B
ユーザC
MUNサーバC
ROOM_C
ユーザA
MUNサーバA
ROOM_A
APIサーバ
サーバA,ROOM_A,ユーザA
サーバB,ROOM_B,ユーザB
サーバC,ROOM_C,ユーザC
・
・
APIサーバにMUNサーバ
ルーム情報、ユーザ情報
やアトリビュート情報を
持っており、裏ではサー
バ分割をしているが表か
らは1つの巨大なMUN
サーバとして見える
アトリビュートも自前で
実装しているのでルーム
やユーザごとに特別な設
定が可能
サーバやルーム、ユ
ーザ情報を取得
条件にあったサーバを選択
Copyright © monobitengine Inc.All Rights Reserved. 61
AWSでMUNを使ってわかったこと
Linux の拡張ネットワーキングは必ず使うこと
追加料金なしでかなり効果が高い!
ショートパケットが飛び交うので帯域(トラフィック幅)よりPPSが大事!
Copyright © monobitengine Inc.All Rights Reserved. 62
AWSでMUNを使ってわかったこと
M5 インスタンス 強い!
2018/4/10から東京リージョンでも使えるようになりました。
変更したらパケットが詰まる感じがなくなりユーザ満足度も向上しました
Copyright © monobitengine Inc.All Rights Reserved. 63
モノビットエンジン
は万能か?
Copyright © monobitengine Inc.All Rights Reserved. 64
モノビットエンジンの
ダメなところ その1
ナレッジが圧倒的に少ない
みんな使ってナレッジ増やそう!
Copyright © monobitengine Inc.All Rights Reserved. 65
モノビットエンジンの
ダメなところ その2
PS4に(現在)対応してない!
対応デバイスにPSVRを
増やしたい・・・
Copyright © monobitengine Inc.All Rights Reserved. 66
モノビットエンジンの
いいところ その1
サポートが早い!
日本語で質問投げて日本語で返ってくる安心感
Copyright © monobitengine Inc.All Rights Reserved. 67
なにより
サービス開始から今まで
サーバ系のトラブル無し!!
予想以上に堅牢なサーバプログラム
Copyright © monobitengine Inc.All Rights Reserved. 68
バーチャルキャスト
実はこんなことやってます
Copyright © monobitengine Inc.All Rights Reserved. 69
配信を意識した作り
あくまでも配信ツールなのでリスナーが
見ていることを意識してます
・コメントの落下位置
・UIの見せ方
・リスナーとユーザのコミニュケーション
(レスポンス/ツイッター連携等)
・カメラの画角、配信映像を確認できる工夫
Copyright © monobitengine Inc.All Rights Reserved. 70
通信量削減
大量のコメントをすべて同期処理を
行うと破綻する
初回、出現位置等の同期を行い
その後は非同期
キャラクターに触れることで
同期処理を開始する
同期通信を行わなくても演出に問題な
ければ同期通信を行わない
(揺れものの物理処理等)
その他、表情や指の動き等、ユーザが感じ
ない部分での通信量削減を行っています
Copyright © monobitengine Inc.All Rights Reserved. 71
モデルデータの扱い
モデルデータの扱いは細心の注意を
払っております。
(万が一流出したら大問題!!)
・内部でファイルキャッシュを行わない
・通信経路はすべてHTTPSによる経路暗号化
・万が一キャプチャリングされても
サーバ-クライアント間で
バイナリーデータの暗号化、復号化
Copyright © monobitengine Inc.All Rights Reserved. 72
荒らし対策
イメージ画像を自由に落とせるので卑猥画像等を落とす荒らしが出現
・荒らしの大半は捨て垢で荒らしを
行うので、捨て垢での投稿を抑制
・ログを取り、問題があれば特定を
行い通報ができるシーケンスを作成
Copyright © monobitengine Inc.All Rights Reserved. 73
みなさん、遊んでみてください!

VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報

  • 1.
    Copyright © monobitengineInc.All Rights Reserved. 安田 京人(ミドルウェア事業部部長) VRライブ・コミュニケーションサービス 「バーチャルキャスト」での モノビットエンジンの採用事例と最新情報 株式会社モノビット
  • 2.
    Copyright © monobitengineInc.All Rights Reserved. 1 <アジェンダ> ■第一部 モノビットエンジンVer2.0シリーズ概要と 最新情報(モノビット安田)20分 ■第二部 バーチャルキャストを支える技術(Infiniteloop 山口様)25分
  • 3.
    Copyright © monobitengineInc.All Rights Reserved. 2 1980年横浜生まれ。 システムエンジニアを経て、コンシューマゲーム開発に6年間従事。 プログラマとして、携帯ゲーム機から据え置き機まで様々なタイトル開発に関わる。 その後、ネットワークゲーム時代の到来を予見し、 その分野で展開を試みる株式会社モノビットへ入社。 現在はミドルウェア事業部長として、 リアルタイム通信の研究開発に従事し 統合サーバパッケージ「モノビットエンジン」の開発ディレクションとエヴァンジェリストとしても活動。 ■自己紹介
  • 4.
    Copyright © monobitengineInc.All Rights Reserved. 3 スマホ/家庭用ゲームやVRコンテンツで、マルチプレイを簡単に実現できる、リアルタイム通信ミドルウェアです。 主に3つの製品ラインナップで展開しています。2017年にVer2.0に進化しました! 1,Monobit Revolution Server (略称:MRS) MMORPGや、多人数MOアクションゲームにも対応出来る処理速度とレスポンスを 追求した、高速ゲームサーバです。シンプルなAPIで超高速通信かつ大規模同時接 続を実現します。 ■モノビットエンジンVer2.0シリーズとは? 2,Monobit Unity Networking 2.0 (略称:MUN2.0) Unityに特化した通信ミドルウェアです。マッチング、ルーム、通信リレーの機能が 標準で用意されており、ネットワークの知識がなくてもマルチプレイを実装可能。 MRSと連携して、サーバにもC++/C#でコードが書けるように進化しました。 3,VR Voice Chat 2.0 Unityで簡単にボイスチャットを実現することができるUnityプラグインです。 2.0になってレスポンス速度上昇! 産業からエンタメなど幅広く利用されています。 本日の メインテーマは こちら!
  • 5.
    Copyright © monobitengineInc.All Rights Reserved. 4 採用製品 Realtime Engine プラットフォーム スマートフォン(iOS/Android/Kindle) ジャンル RPG 販売元 エイリム様 採用製品 Monobit Unity Networking 2.0 プラットフォーム スマートフォン(iOS/Android) ジャンル おでかけRPG 販売元 トイロジック様 採用製品 Monobit Unity Networking プラットフォーム HTV Vive ジャンル 複数人参加型VRデモ クライアント KDDI様 採用製品 Monobit Revolution Server プラットフォーム スマートフォン(iOS/Android) ジャンル ドラマチックファンタジーRPG © Fuji Games, Inc. / Marvelous Inc. 採用製品 Realtime Engine プラットフォーム スマートフォン(iOS/Android) ジャンル 超能力×ミリタリーRPG 販売元 スクウェア・エニックス様 採用製品 Monobit Unity Networking2.0、VR Voice Chat プラットフォーム HTC Vive ジャンル VRトラッピングバトル 開発元 自社開発 ORDINAL STRATA -オーディナル ストラータ 八百万クエスト Trip Trap Travelers ブレイブ フロンティア Linked-door ALICE ORDER 採用製品 Realtime Engine プラットフォーム スマートフォン(iOS/Android) ジャンル ARトータルソリューション 販売元 サン電子様 AceReal One 採用製品 Monobit Unity Networking2.0、VR Voice Chat プラットフォーム HTC Vive ジャンル VRライブ・コミュニケーションサービス © DWANGO Co., Ltd. / infiniteloop, Co., Ltd. バーチャルキャスト 採用製品 Monobit Unity Networking 2.0 プラットフォーム スマートフォン(iOS/Android) ジャンル 共闘ことばRPG © SEGA コトダマン ■ エンジン採用実績①■
  • 6.
    Copyright © monobitengineInc.All Rights Reserved. 5 5 ■ エンジン採用実績② 採用製品 Realtime Engine プラットフォーム スマートフォン(iOS/Android) ジャンル リアルタイム対戦ストラテジー 販売元 アソビズム様 城とドラゴン 採用製品 Realtime Engine プラットフォーム スマートフォン(iOS/Android) ジャンル みんなでスゴロクRPG 販売元 株式会社アプリボット様 スゴロクモンスターズ 採用製品 Realtime Engine プラットフォーム スマートフォン(iOS/Android) ジャンル オンラインRPG 販売元 FIELDS様 THE TOWER OF PRINCESS 採用製品 NetworkGame Framework プラットフォーム PlayStation(R)Vita ジャンル アクション&カードバトル 販売元 スパイク・チュンソフト様 せかい☆セイフク 採用製品 NetworkGame Framework プラットフォーム スマートフォン(iOS/Android) ジャンル 冒険者vsダンジョンRPG 販売元 スクウェア・エニックス様 ランページ ランド ランカーズ 採用製品 Realtime Engine プラットフォーム PCブラウザ ジャンル チーム対戦型横スクロールアクションRTS 販売元 スクウェア・エニックス様 家電少女 採用製品 Realtime Engine プラットフォーム PCブラウザ ジャンル チーム対戦型横スクロールアクションRTS 販売元 スクウェア・エニックス様 クリスタル◆コンクエスト 採用製品 Realtime Engine, プラットフォーム Windows(R) ジャンル マルチ対戦アクション 販売元 スクウェア・エニックス様 LORD of VERMILION ARENA 採用製品 NetworkGame Framework プラットフォーム スマートフォン(iOS/Android) ジャンル パチスロRPG 販売元 山佐株式会社様 輪撃クエスロット ■
  • 7.
    Copyright © monobitengineInc.All Rights Reserved. 6 MRS(Monobit Revolution Server)のご紹介
  • 8.
    Copyright © monobitengineInc.All Rights Reserved. 7 ■ MRS(Monobit Revolution Server)とは 低遅延が要求されるアクションゲームやVRなど リアルタイム通信コンテンツの開発に最適 これまでにない大規模なMMORPGなどの オンラインゲーム開発が可能
  • 9.
    Copyright © monobitengineInc.All Rights Reserved. 8 ■ MRS(Monobit Revolution Server)の特徴 ●低遅延・高効率でのリアルタイム通信制御 - 通信シーケンスや内部プロセス、利用者に提供するAPI等を刷新 - リアルタイム通信機能として、より速く、よりシンプルな設計を実現 従来リリースしていた「リアルタイム通信エンジン」をゼロから見直して作成 ●TCP, UDP, WebSocket の通信プロトコルの利用 - ネットワーク高速化とサーバ側CPU負荷軽減を実現 - 1CPUあたり最大20,000クライアントの同時接続を実現 TCP 接続は従来の「リアルタイム通信エンジン」を大幅に強化 UDP 接続プロトコルのサポート - リアルタイム性の求められるデータの送受信に最適なUDP/RUDPを使用可能 WebSocket 接続プロトコルのサポート(ver.1.1.0 以降) - PhantomJS(http://phantomjs.org/)を利用した自動テストが可能 高速処理によるインフラコストの大幅低減を実現
  • 10.
    Copyright © monobitengineInc.All Rights Reserved. 9 ■ MRS(Monobit Revolution Server)の特徴 ●多種多様なプラットフォームに対応 ●ゲームエンジン、開発言語を多数サポート C/C++ JavaC# JavaScript 家庭用ゲーム機やマルチプラットフォームも対応 PHP,Ruby Windows/VisualStudioでサーバ開発が可能に!
  • 11.
    Copyright © monobitengineInc.All Rights Reserved. 10 ■ MRS(Monobit Revolution Server)の特徴 ●堅牢な暗号化によりチート対策も万全 ・ 送信レコード単位で、暗号処理の適用可否を設定可能 - 暗号処理はCPU負荷を掛けやすい - 秘匿性が低い送信レコードには暗号処理させないなどの施策により 全体的なスループット向上が見込まれる ・ 暗号方式について - 暗号鍵方式には AES128 を採用 - 暗号鍵の交換方式には EDCH(楕円曲線ディフィー・ヘルマン) 鍵共有アルゴリズムを採用 ●拡張ライブラリによる機能の拡張が可能 ルームサーバの機能や、ゲームマッチング、チャットなどは 『MRS_ROOM』 や 『MUN』 などで実現可能 ルーム作成 マッチング チャット MRS_ROOM MUN 転送レコードごとの暗号化
  • 12.
    Copyright © monobitengineInc.All Rights Reserved. 11 ■ MRS(Monobit Revolution Server)の特徴 - mackerel_agent をインストールするだけで問題なく監視可能 - システムメトリック : ロードアベレージ, CPU, メモリ, ディスクアクセス, ネットワーク帯域, ストレージ使用状況の監視 - カスタムメトリック : 各サーバプロセスごとのモニタリング, 同時利用者数(CCU)の監視など ●直感型サーバ監視ツール 『Mackerel』 に対応 MRS の対応内容 Mackerelとは - サーバプロセスの監視状況をリアルタイムにグラフ化 - モニタリングはもちろん、ブラウザ対応UIやAPIが豊富 高機能な監視ツールにより運用をサポート
  • 13.
    Copyright © monobitengineInc.All Rights Reserved. 12 ■ MRS(Monobit Revolution Server)の特徴 ●低遅延・高効率化のNiftyCloudでの実証実験 ・ TCP による最高性能試験の結果、 毎秒約540,000レコードのECHO送受信を実現させることが可能 ※ MRS_bench 計測結果(1秒間隔の計測ログ、暗号化なし) loop:試行数 s:総送信バイト数 r:総受信バイト数(総受信レコード数) c:接続数 d:切断数 e:エラー検知数 loop:1 s:0 r:0(0) c:0 d:0 e:0 loop:1302 s:940160 r:46678(32104) c:40 d:0 e:0 loop:2576 s:4679800 r:366276(143363) c:117 d:0 e:0 loop:3222 s:8596640 r:1443319(340764) c:193 d:0 e:0 loop:3627 s:12284680 r:3220253(495575) c:266 d:0 e:0 loop:3939 s:15922640 r:5375457(551009) c:300 d:0 e:0 loop:4240 s:19534640 r:7557718(543762) c:300 d:0 e:0 ・ UDP による最高性能試験の結果、 毎秒約350,000レコードのECHO送受信を実現させることが可能 ※ MRS_bench 計測結果(1秒間隔の計測ログ、暗号化なし) loop:試行数 s:総送信バイト数 r:総受信バイト数(総受信レコード数) c:接続数 d:切断数 e:エラー検知数 loop:1 s:0 r:0(0) c:0 d:0 e:0 loop:698 s:133020 r:132220(132220) c:20 d:0 e:400 loop:1624 s:770060 r:768440(346380) c:40 d:0 e:920 loop:2491 s:1463660 r:1461980(344720) c:40 d:0 e:920 loop:3373 s:2169260 r:2167640(353580) c:40 d:0 e:920 loop:4255 s:2874860 r:2873220(353560) c:40 d:0 e:920 - Server : Nifty-Cloud e-large8(¥37/h) x1 Intel Xeon 4Core CPU(E5-2697) 2.60GHz / 8GB RAM - Client : VMware 上の 仮想 Linux PC ※ MRS ver.1.0.0 リリース版での検証 ※ 計測ツールは弊社内製のベンチマークツール 『MRS_bench』 によるもの
  • 14.
    Copyright © monobitengineInc.All Rights Reserved. 13 機能 新MRS 旧エンジン 対応プロトコル TCP/UDP/RUDP/WebSocket TCP 外部API設計 C言語風(シンプル化) C++風 遅延 マイクロ秒 ミリ秒 CPUスレッドあたりスループット 300同時接続時 毎秒54万レコード 300同時接続時 毎秒数万レコード クライアント開発言語 C++,C# C++,C# サーバ開発言語 C++,C# C++ サーバOS Linux,Windows,MacOSX Linux 13 ■ MRS(Monobit Revolution Server)の特徴 ●機能比較(MRS vs 従来品)
  • 15.
    Copyright © monobitengineInc.All Rights Reserved. 14 対応 プラットフォーム ■ MRS(Monobit Revolution Server)の展望 ●MRSの今後の開発ロードマップとリリース予定 通信方式 実装方法 現行リリース 2018年7月 2018年8月 2018年9月 2018年冬以降 Linux Windows MacOSX Android iOS Unity Client/Server 通信方式 TCP/UDP/RUDP プロトコル WebSocket CのAPIを利用 通信結果を コールバック処理 他言語はバイン ディングで対応 HTTP サーバサンプル Switch UnrealEngine 4 P2P通信方式 コールバック 処理のRPC化 RPCスタブコードの ジェネレータを リリース ゲームジャンルに 特化した実践的サンプル
  • 16.
    Copyright © monobitengineInc.All Rights Reserved. 15 MUN (Monobit Unity Networking)のご紹介
  • 17.
    Copyright © monobitengineInc.All Rights Reserved. 16 ■ MUN(Monobit Unity Networking)とは クライアントのみでも実装できる、Unity特化型の通信エンジン マルチプレイを簡単に実装できるアセットです Unity5.x、Unity2017.x 対応 ※Unity2018.x(現在鋭意対応中)
  • 18.
    Copyright © monobitengineInc.All Rights Reserved. 17 ■ MUN(Monobit Unity Networking)の特徴 - サーバ接続/切断、オフラインモード - ロビーやルームに対する入室/退室制御、ロビーとルームの状態取得 - プレイヤー情報の取得(サーバ内検索, プレイヤーパラメータの設定と取得) - RPCによる、任意のクライアントに対する情報送信および受信 - シーン内オブジェクトの位置・姿勢・アニメーション等の同期 - 各種条件に応じた、マッチメイキング制御 - ノンプログラミング通信制御 etc... ※すべて単一のコンポーネントやAPIで実装可能 MUN で実装できる機能の一部 ※各種家庭用ゲーム機はNDA締結により利用可能になります ●多彩な機能が多様なプラットフォームで利用可能 利用可能なプラットフォーム
  • 19.
    Copyright © monobitengineInc.All Rights Reserved. 18 ■ MUN(Monobit Unity Networking)の特徴 ●すべての通信ロジックを、クライアント側オンリーで実装可能 MUN リリース当初からの設計思想を実現 - 『サーバサイドの構築なしでリアルタイム通信を実現したい』というご要望に対応 - 通信ロジックも含め、オンラインゲームのすべての制御をクライアント側でコーディング可能! ※MUNサーバはbroadcastでリレー配信する役割を果たします - クライアントコードをそのままサーバに移植して、簡単にチート対策! - MUN標準機能のサーバのソースコードを公開中。VisualStudioでカスタマイズ可能。 ●必要に応じて、サーバにコードを書くことも可能! MUN2.0より、MRSと連携してC++/C#言語でサーバ開発が可能になりました! サーバとクライアントでコードを自在に配置可能
  • 20.
    Copyright © monobitengineInc.All Rights Reserved. 19 ■ MUN(Monobit Unity Networking)の特徴 - MUNサーバ側は、TCP/UDPの通信ポート双方で待ち受けしている - 同一認証のMUNクライアントであれば、TCPの接続クライアントとUDPの接続クライアントを 同一ルームに接続させることも可能 ●TCP, UDPの通信プロトコルの利用 MRSに基づき、TCP/UDPの通信プロトコルをサポート MUNにおける UDP/RUDP接続プロトコルについて - MUNの内部処理で行われる送受信(ロビー/ルームの入退室など)の通信をUDPで行なう場合、 すべて RUDP で伝送される - RPC(リモートプロシージャコール)、およびオブジェクト同期通信のみUDP/RUDP の個別設定が可能 速度を重視するか信頼性を重視するか、 場面によって最適な通信プロトコルを選択可能
  • 21.
    Copyright © monobitengineInc.All Rights Reserved. 20 ■ MUN(Monobit Unity Networking)の特徴 - クライアントサイドの改ざんに伴う、チートの横行を防ぐ術がほとんどない すべてのソースコードがクライアントに含まれるため - ホストの優位性が圧倒的に高い ノンプレイヤーの通信データについて、ホストは即時実行するが 他クライアントはホストからの通信を待たねばならないため - ゲーム進行が、ホストの性能に依存する ●オンプレミス版MUNサーバを用いたサーバサイド実装にも対応 クライアント側オンリーでの実装における『問題点』 サーバサイド実装にすることの『メリット』 - サーバサイドに実装することにより、クライアント改ざんの隙を与えない ほとんどの処理はサーバ依存にし、クライアントはビューアとして機能させる - すべてのクライアントに対し、『平等なサービス』を提供できる ホストも他のクライアントで実行タイミングを完全に一致させることができる
  • 22.
    Copyright © monobitengineInc.All Rights Reserved. 21 機能 MUN2.0 MUN1.0 プロトコル TCP/UDP/RUDP/WS・WSS TCP サーバ開発 可能(C++/C#) 不可 自動スケール機能 新製品MRSクラスタ リリース予定 なし 負荷試験自動化ツール ○ ☓ カスタム認証機能 ○ ☓ 汎用ルームサーバー ○ ○ マッチメイキング ○ ○ プレイヤー検索 ○ ○ ルーム作成・入退室制御 ○ ○ ルーム名・人数取得 ○ ○ RPC同期通信 ○ ○ 再接続処理 ○ ○ 21 ■ MUN(Monobit Unity Networking)の特徴 ●従来製品との機能比較(MUN2.0 vs MUN)
  • 23.
    Copyright © monobitengineInc.All Rights Reserved. 2222 ■ MUN、MRSの注目アップデート■ ●Ver2.4.0にてWebGL出力に対応!ブラウザゲーム開発でMUNが使用可能 Unityで開発したスマホタイトルのブラウザへの移植や新規開発においても、 MUNが利用可能になりマルチプレイ機能の組み込みが非常に容易になりました!
  • 24.
    Copyright © monobitengineInc.All Rights Reserved. 23 ■ MUN(Monobit Unity Networking)の展望 ●MUNの今後の開発ロードマップとリリース予定 対応 プラットフォ ーム 通信方式 クライアント プログラム 現行リリース 2018年7月 2018年8月 2018年冬以降 Windows MacOSX Android iOS Client/Server 通信方式 TCP/UDP/RUDP プロトコル Webブラウザ Switch 2018年9月 WebSocket サーバプログ ラム Linux C++ Windows C++,C# MacOSX .NET Core C# .Net Core 2.1対応 Unity C# コア処理のリファクタリングにより、 高頻度送受信時の性能向上 (GC抑止等) PS4
  • 25.
    Copyright © monobitengineInc.All Rights Reserved. 24 VR VoiceChat のご紹介
  • 26.
    Copyright © monobitengineInc.All Rights Reserved. 25 ■ VR VoiceChat with MUN とは MUNをベースに動作する『ボイスチャットエンジン』 コンポーネントを追加するだけで簡単に実装が可能! 無音検知、マルチキャスト配信、遅延音声カット機能を搭載! ■
  • 27.
    Copyright © monobitengineInc.All Rights Reserved. 26 ■ VR VoiceChat with MUN の特徴 VoiceChat with MUN の機能を実装するには、 Unityのオブジェクトに 『MonobitVoice』のコンポーネントを追加します ●コンポーネントを追加するだけで簡単に実装が可能 上記コンポーネントを追加した状態で、MUNによる通信同期を行なう シーンファイル上で動かすだけで、ボイスチャットが簡単に実現できます 簡単な手順でボイスチャットを実装可能 ■
  • 28.
    Copyright © monobitengineInc.All Rights Reserved. 27 ■ VR VoiceChat with MUN の特徴 - キーボードのタイピング音や、周囲の環境騒音の同時伝送を防ぎます - 『一定量以下のdb値の音声を送信しないようにする』 という シンプルなソフトウェアノイズキャンセリングを実装しています - 無音検知機能によりデータ転送量を減らします 無音検知閾値を調整することで無音検知機能を無効化することも可能です ●無音検知機能(ノイズキャンセラ)を搭載 会話時の雑音などのノイズを除去し、クリーンな音声だけを送信 ハウリングを防止 - 特にスマートフォン端末など、スピーカー出力部とマイク入力部が近い位置にあるデバイスで有効です ■
  • 29.
    Copyright © monobitengineInc.All Rights Reserved. 28 ■ VR VoiceChat with MUN の特徴 - 例えば 『FPSのチーム戦』 などにおいて、 『戦闘前のブリーフィング中にはチーム関係なく全員と会話させたい』 『戦闘中は自分のチームだけで会話させ、相手に音声を伝えたくない』 という、条件付きのボイスチャット配信設定を行なう機能です ●マルチキャスト配信機能を搭載 ルーム内の特定プレイヤーに対して、自身の音声の送信可否を設定可能 マルチキャスト配信機能のメリット - ゲームデザインに応じたボイスチャットの拡張性を高めます - 『特定プレイヤーとの会話』 によって、音声ストリーム情報によるトラフィックの 総量を抑えることができます ※マルチキャスト配信機能の設定にはAPIを使用する必要があります。 全員に声が届く 仲間にだけ 声が届く 聞こえない ■
  • 30.
    Copyright © monobitengineInc.All Rights Reserved. 29 ■ VR VoiceChat with MUN の特徴 - 『相手の音声が数ミリ秒~数秒遅れて再生』 されるような 再生遅延の状態が著しく悪い状態のときに 『再生待ちレコード』 を削除し、 よりリアルタイムな音声を受信側で再生させる機能です ●遅延音声のカット機能を搭載 受信側の再生遅延が著しい場合に、再生の早回しを行なう機能 『ぶつ切り感』 をほとんど感じない音声遅延カット - 『音声のぶつ切り』 がイメージとして浮かぶかもしれませんが、音声として聞き取れる 僅かな時間をカットするだけなので、ぶつ切り感をほとんど感じることはありません - 数ミリ秒単位で音声再生を補完することにより、送信側の音声をより瞬時に受信側で 再生できる 『リアルタイムさ』 を実感できます - コンポーネントの設定から 『遅延音声のカット機能』 を無効にすることもできます 生の音声データを取り出して、ボイスチェンジャーも実装可能です ■
  • 31.
    Copyright © monobitengineInc.All Rights Reserved. 30 ■ VR VoiceChat with MUN の展望 - 30 - ボイスチャット 専用サーバ P2P対応 未定2018年秋 2018年冬 ノンサーバによる ボイスチャットの実装 サーバミキシング機能の 実装 Plastation VR 対応 ■ ●MRSの今後の開発ロードマップとリリース予定
  • 32.
    Copyright © monobitengineInc.All Rights Reserved. 31 ・お気軽にお問合せください contact@monobit.co.jp ■ まとめ <導入の利点> 1,LinuxでC#、C++ゲームサーバが運用出来る 2,C++で超高速サーバが開発可能 3,日本国内開発でサポートが充実 <導入方法> 1,まだUnityアセットストアには置いていませんので、 モノビットエンジンのHPからプラグインをダウンロードして 使ってみて下さい。 2,既存のUnityNetworking互換APIを使って開発している タイトルについても、別APIからの置き換えは1日で完了します。 現在開発中のタイトルについても、ぜひ採用を検討してみて下さい。
  • 33.
    Copyright © monobitengineInc.All Rights Reserved. 32 を 支える技術 株式会社インフィニットループ 仮想室 山口直樹
  • 34.
    Copyright © monobitengineInc.All Rights Reserved. 33 株式会社インフィニットループとは ・ゲーム開発 ・モバイルアプリ開発 ・Webアプリ開発 ・Linuxサーバ構築運用 サーバのことなら任せとけって 会社です
  • 35.
    Copyright © monobitengineInc.All Rights Reserved. 34 自己紹介(1) 札幌のソフト会社で20年ほど 低レイヤーのネットワーク管理に従事 その後、インフィニットループに転職 山口 直樹 好きなSW Summit48si 好きなLB Alteon AD3
  • 36.
    Copyright © monobitengineInc.All Rights Reserved. 35 自己紹介(2) 会社でVRのコンテンツをはじめて見て「こ れ出来ればあんなことやこんなこともで きるじゃん!!」と 思って覚え始めた2年前の12月 あいえるたんさわさわ Vive あいえるたん お姫様だっこ せかいぬりえ
  • 37.
    Copyright © monobitengineInc.All Rights Reserved. 36 どんなことやってるのか?
  • 38.
    Copyright © monobitengineInc.All Rights Reserved. 37 どんなことやってるのか?
  • 39.
    Copyright © monobitengineInc.All Rights Reserved. 38 どんなことやってるのか?
  • 40.
    Copyright © monobitengineInc.All Rights Reserved. 39 どんなことやってるのか? バーチャルキャストを使って 毎週木曜日 絶賛配信中!
  • 41.
    Copyright © monobitengineInc.All Rights Reserved. 40 バーチャルキャストは、バーチャルキャラクターになって VR空間のスタジオをリアルタイムでコミュニケーションできる VRライブ・コミュニケーションサービスです。 ニコニコ生放送などの生配信サービスを介してスタジオを作ることで、 誰でも気軽に、好きなキャラクターでコミュニケーションできます。 他のバーチャルキャストユーザーの配信に乱入できる「凸機能」や、 生放送の視聴者を楽しませる様々な「アイテム」など、 バーチャルキャラクターの番組に欠かせない機能も盛りだくさんです。 とは?
  • 42.
    Copyright © monobitengineInc.All Rights Reserved. 41 とは?
  • 43.
    Copyright © monobitengineInc.All Rights Reserved. 42 リスナーとのリアルタイムコミニュケーション
  • 44.
    Copyright © monobitengineInc.All Rights Reserved. 43 相手の放送に突入(凸機能)
  • 45.
    Copyright © monobitengineInc.All Rights Reserved. 44 その他色々
  • 46.
    Copyright © monobitengineInc.All Rights Reserved. 45 バーチャルキャストを 支える技術
  • 47.
    Copyright © monobitengineInc.All Rights Reserved. 46 その1
  • 48.
    Copyright © monobitengineInc.All Rights Reserved. 47 ドワンゴさんが開発したアバターに特化した、プラットフォーム非依存のファイル形式。 (オープンソースとして公開中) 3Dモデルとしてのテクスチャやボーンといった情報に加えて、視線設定など一人称で操作するアバターに 必要な情報を扱えるようにし、環境により異なるスケールや座標系などを統一することで、アバターを作 りやすく使いやすく、お気に入りのアバターを配信でもゲームでもプラットフォームを跨いで使えるよう にすることを目指します。
  • 49.
    Copyright © monobitengineInc.All Rights Reserved. 48
  • 50.
    Copyright © monobitengineInc.All Rights Reserved. 49 正規化(座標系統一) 正規化前 モデルによって座標系がバラバラで非常にめ んどくさい
  • 51.
    Copyright © monobitengineInc.All Rights Reserved. 50 正規化(座標系統一) VRM変換後(正規化後) モデルの座標系が統一される
  • 52.
    Copyright © monobitengineInc.All Rights Reserved. 51 ファイルの動的ロード インポータにバイト列を渡 すと humanoidのゲームオブジェ クトが生成されます。
  • 53.
    Copyright © monobitengineInc.All Rights Reserved. 52 「アバターの人格に関する許諾」 モデルデータに「人格」という概念 が存在 人格を与える範囲が設定でき、モデ ルデータの使用は可能だが、モデル データに異なる人格を与えるのは不 可という、今の時代を反映した許諾 設計がされている
  • 54.
    Copyright © monobitengineInc.All Rights Reserved. 53 その2
  • 55.
    Copyright © monobitengineInc.All Rights Reserved. 54 Monobit Unity Networking 2.0(MUN) VR Voice Chat with MUN この2つのリアルタイム通信エンジンを使ってます
  • 56.
    Copyright © monobitengineInc.All Rights Reserved. 55 モノビットエンジン採用の理由 Linuxサーバを使 って自前で構築で きるから (・・・他にもコストパフォーマンスが高いとか理由ありま す・・・)
  • 57.
    Copyright © monobitengineInc.All Rights Reserved. 56 株式会社インフィニットループとは ・ゲーム開発 ・モバイルアプリ開発 ・Webアプリ開発 ・Linuxサーバ構築運用 サーバのことなら任せとけって 会社です
  • 58.
    Copyright © monobitengineInc.All Rights Reserved. 57 サーバ、かなり頑張ってます!! クライアントが 話題になってますが だって本職だもん・・・・
  • 59.
    Copyright © monobitengineInc.All Rights Reserved. 58 概略図 AWSで構築してます 自前でMUNサーバの 負荷分散及び オートスケーリングを 行っています
  • 60.
    Copyright © monobitengineInc.All Rights Reserved. 59 負荷分散およびスケーリング MUNサーバ全体の負荷が閾 値が超えればインスタンス の追加 MUNサーバ全体の負荷が 閾値より低い状態が続いた ら、流入を停止して クライアント接続がなくな ればインスタンスを削除
  • 61.
    Copyright © monobitengineInc.All Rights Reserved. 60 自前だからできる色んな事 ユーザB MUNサーバB ROOM_B ユーザC MUNサーバC ROOM_C ユーザA MUNサーバA ROOM_A APIサーバ サーバA,ROOM_A,ユーザA サーバB,ROOM_B,ユーザB サーバC,ROOM_C,ユーザC ・ ・ APIサーバにMUNサーバ ルーム情報、ユーザ情報 やアトリビュート情報を 持っており、裏ではサー バ分割をしているが表か らは1つの巨大なMUN サーバとして見える アトリビュートも自前で 実装しているのでルーム やユーザごとに特別な設 定が可能 サーバやルーム、ユ ーザ情報を取得 条件にあったサーバを選択
  • 62.
    Copyright © monobitengineInc.All Rights Reserved. 61 AWSでMUNを使ってわかったこと Linux の拡張ネットワーキングは必ず使うこと 追加料金なしでかなり効果が高い! ショートパケットが飛び交うので帯域(トラフィック幅)よりPPSが大事!
  • 63.
    Copyright © monobitengineInc.All Rights Reserved. 62 AWSでMUNを使ってわかったこと M5 インスタンス 強い! 2018/4/10から東京リージョンでも使えるようになりました。 変更したらパケットが詰まる感じがなくなりユーザ満足度も向上しました
  • 64.
    Copyright © monobitengineInc.All Rights Reserved. 63 モノビットエンジン は万能か?
  • 65.
    Copyright © monobitengineInc.All Rights Reserved. 64 モノビットエンジンの ダメなところ その1 ナレッジが圧倒的に少ない みんな使ってナレッジ増やそう!
  • 66.
    Copyright © monobitengineInc.All Rights Reserved. 65 モノビットエンジンの ダメなところ その2 PS4に(現在)対応してない! 対応デバイスにPSVRを 増やしたい・・・
  • 67.
    Copyright © monobitengineInc.All Rights Reserved. 66 モノビットエンジンの いいところ その1 サポートが早い! 日本語で質問投げて日本語で返ってくる安心感
  • 68.
    Copyright © monobitengineInc.All Rights Reserved. 67 なにより サービス開始から今まで サーバ系のトラブル無し!! 予想以上に堅牢なサーバプログラム
  • 69.
    Copyright © monobitengineInc.All Rights Reserved. 68 バーチャルキャスト 実はこんなことやってます
  • 70.
    Copyright © monobitengineInc.All Rights Reserved. 69 配信を意識した作り あくまでも配信ツールなのでリスナーが 見ていることを意識してます ・コメントの落下位置 ・UIの見せ方 ・リスナーとユーザのコミニュケーション (レスポンス/ツイッター連携等) ・カメラの画角、配信映像を確認できる工夫
  • 71.
    Copyright © monobitengineInc.All Rights Reserved. 70 通信量削減 大量のコメントをすべて同期処理を 行うと破綻する 初回、出現位置等の同期を行い その後は非同期 キャラクターに触れることで 同期処理を開始する 同期通信を行わなくても演出に問題な ければ同期通信を行わない (揺れものの物理処理等) その他、表情や指の動き等、ユーザが感じ ない部分での通信量削減を行っています
  • 72.
    Copyright © monobitengineInc.All Rights Reserved. 71 モデルデータの扱い モデルデータの扱いは細心の注意を 払っております。 (万が一流出したら大問題!!) ・内部でファイルキャッシュを行わない ・通信経路はすべてHTTPSによる経路暗号化 ・万が一キャプチャリングされても サーバ-クライアント間で バイナリーデータの暗号化、復号化
  • 73.
    Copyright © monobitengineInc.All Rights Reserved. 72 荒らし対策 イメージ画像を自由に落とせるので卑猥画像等を落とす荒らしが出現 ・荒らしの大半は捨て垢で荒らしを 行うので、捨て垢での投稿を抑制 ・ログを取り、問題があれば特定を 行い通報ができるシーケンスを作成
  • 74.
    Copyright © monobitengineInc.All Rights Reserved. 73 みなさん、遊んでみてください!